commit 5102831435b4603c2cd1abeb1b225a6ce871f77c Author: roberto Date: Wed Aug 11 10:53:06 2010 +0000 Subida inicial de tecsitel con el repaso del módulo de contactos git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES2/trunk@1 b2cfbe5a-eba1-4a0c-8b32-7feea0a119f2 diff --git a/Build/Build.fbl6 b/Build/Build.fbl6 new file mode 100644 index 0000000..bf8d048 Binary files /dev/null and b/Build/Build.fbl6 differ diff --git a/Build/Build.fbpInf b/Build/Build.fbpInf new file mode 100644 index 0000000..f02fa4c --- /dev/null +++ b/Build/Build.fbpInf @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + 00:05:14 + 22/06/2010 17:34:41 + True + + diff --git a/Build/Build.fbz6 b/Build/Build.fbz6 new file mode 100644 index 0000000..befbde2 Binary files /dev/null and b/Build/Build.fbz6 differ diff --git a/Build/Installer.fbpInf b/Build/Installer.fbpInf new file mode 100644 index 0000000..7b7175e --- /dev/null +++ b/Build/Installer.fbpInf @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + 00:00:00 + 30/12/1899 + True + + diff --git a/Build/Installer.fbpInf.bak b/Build/Installer.fbpInf.bak new file mode 100644 index 0000000..528efe6 --- /dev/null +++ b/Build/Installer.fbpInf.bak @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + 00:00:00 + 30/12/1899 + True + + diff --git a/Build/Installer.fbz6 b/Build/Installer.fbz6 new file mode 100644 index 0000000..d503aad Binary files /dev/null and b/Build/Installer.fbz6 differ diff --git a/Build/UploadFTP.fbpInf b/Build/UploadFTP.fbpInf new file mode 100644 index 0000000..0c4fb7a --- /dev/null +++ b/Build/UploadFTP.fbpInf @@ -0,0 +1,17 @@ + + + + + + + + + + + + + 00:00:00 + 30/12/1899 + True + + diff --git a/Build/UploadFTP.fbz6 b/Build/UploadFTP.fbz6 new file mode 100644 index 0000000..1d5f794 Binary files /dev/null and b/Build/UploadFTP.fbz6 differ diff --git a/Database/Migracion/SCRIPT para migración tecsitel.TXT b/Database/Migracion/SCRIPT para migración tecsitel.TXT new file mode 100644 index 0000000..3e25938 --- /dev/null +++ b/Database/Migracion/SCRIPT para migración tecsitel.TXT @@ -0,0 +1,299 @@ +delete from contactos_categorias; +delete from contactos_direcciones; +delete from contactos_datos_banco; +delete from clientes_dtos_proveedores; +delete from agentes_comisiones; +delete from clientes_datos; +delete from proveedores_datos; +delete from personal_datos; + +delete from pedidos_cliente_detalles; +delete from albaranes_cliente_detalles; +delete from facturas_cliente_detalles; +delete from pagos_cliente; +delete from facturas_cliente; +delete from albaranes_cliente; +delete from pedidos_cliente; + +delete from pedidos_proveedor_detalles; +delete from albaranes_proveedor_detalles; +delete from facturas_proveedor_detalles; +delete from pagos_proveedor; +delete from facturas_proveedor; +delete from albaranes_proveedor; +delete from pedidos_proveedor; + +delete from comisiones_liquidadas; +delete from contactos; + + +Extract MetaData con cmapos blob, lanzar script en nueva base de datos + +CREATE TABLE PROVEEDORES ( + CODIGO VARCHAR(10) NOT NULL, + NIFCIF VARCHAR(10) CHARACTER SET ISO8859_1, + NOMBRE VARCHAR(100) CHARACTER SET ISO8859_1, + CALLE VARCHAR(150) CHARACTER SET ISO8859_1, + NUMERO VARCHAR(20) CHARACTER SET ISO8859_1, + PISO VARCHAR(20) CHARACTER SET ISO8859_1, + CODIGOPOSTAL VARCHAR(5) CHARACTER SET ISO8859_1, + POBLACION VARCHAR(40) CHARACTER SET ISO8859_1, + PROVINCIA VARCHAR(30) CHARACTER SET ISO8859_1, + TELEFONO1 VARCHAR(30) CHARACTER SET ISO8859_1, + TELEFONO2 VARCHAR(30) CHARACTER SET ISO8859_1, + FAX VARCHAR(30) CHARACTER SET ISO8859_1, + CORREO VARCHAR(60) CHARACTER SET ISO8859_1, + PERSONACONTACTO VARCHAR(100) CHARACTER SET ISO8859_1, + OBSERVACIONES BLOB SUB_TYPE 1 SEGMENT SIZE 100 CHARACTER SET ISO8859_1, + CODIGOCLIENTE VARCHAR(10), + ETIQUETADO SMALLINT, + ULTIMOCAMBIO TIMESTAMP +); + +ALTER TABLE PROVEEDORES ADD CONSTRAINT PK_PROVEEDORES PRIMARY KEY (CODIGO); + +CREATE TABLE SUCURSALESPROVEEDOR ( + CODIGOPROVEEDOR VARCHAR(10) NOT NULL, + CODIGO SMALLINT NOT NULL, + CALLE VARCHAR(150), + NUMERO VARCHAR(20), + PISO VARCHAR(20), + CODIGOPOSTAL VARCHAR(5), + POBLACION VARCHAR(40), + PROVINCIA VARCHAR(30), + TELEFONO1 VARCHAR(30), + TELEFONO2 VARCHAR(30), + FAX VARCHAR(30), + CORREO VARCHAR(60), + PERSONACONTACTO VARCHAR(100) +); +ALTER TABLE SUCURSALESPROVEEDOR ADD CONSTRAINT PK_SUCURSALESPROVEEDOR PRIMARY KEY (CODIGOPROVEEDOR, CODIGO); +ALTER TABLE SUCURSALESPROVEEDOR ADD FOREIGN KEY (CODIGOPROVEEDOR) REFERENCES PROVEEDORES (CODIGO) ON DELETE CASCADE ON UPDATE NO ACTION; + + +COMMIT WORK; + +/*DATOS*/ + + +Poner generador de ID_CONTACTOS a 1 + +DECLARE EXTERNAL FUNCTION substr + CSTRING(255), SMALLINT, SMALLINT + RETURNS CSTRING(255) FREE_IT + ENTRY_POINT 'IB_UDF_substr' MODULE_NAME 'ib_udf'; + + +insert into CONTACTOS +(ID, REFERENCIA, NIF_CIF, NOMBRE, CALLE, POBLACION, PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, +FAX, EMAIL_1, PERSONA_CONTACTO, NOTAS) + +select +GEN_ID(GEN_CONTACTOS_ID, 1), +proveedores.CODIGO AS REFERENCIA, +proveedores.NIFCIF AS NIF_CIF, +proveedores.NOMBRE AS NOMBRE, +(COALESCE(proveedores.CALLE,'') || ', ' || COALESCE(proveedores.NUMERO,'') || ' ' || COALESCE(proveedores.PISO,'')) AS CALLE, +proveedores.POBLACION AS POBLACION, +proveedores.PROVINCIA AS PROVINCIA, +proveedores.CODIGOPOSTAL AS CODIGO_POSTAL, +substr(proveedores.TELEFONO1,1,25) AS TELEFONO_1, +substr(proveedores.TELEFONO2,1,25) AS TELEFONO_2, +substr(proveedores.FAX,1,25) AS FAX, +proveedores.CORREO AS EMAIL_1, +proveedores.PERSONACONTACTO AS PERSONA_CONTACTO, +proveedores.OBSERVACIONES AS NOTAS + +from proveedores; + +insert into contactos_categorias +(ID_CONTACTO, ID_CATEGORIA) +select ID, 2 +from contactos; + +insert into proveedores_datos +(ID_PROVEEDOR, ID_TIPO_IVA) +select CONTACTOS.ID, 1 +from CONTACTOS +left join contactos_categorias on contactos_categorias.id_contacto = contactos.id +where contactos_categorias.id_categoria = 2; + +delete from proveedores_datos +where proveedores_datos.id_proveedor in ( +select CONTACTOS.ID +from CONTACTOS +left join proveedores on proveedores.codigo = contactos.referencia +WHERE proveedores.CODIGOCLIENTE is not null); + +insert into proveedores_datos +(ID_PROVEEDOR, ID_TIPO_IVA, CODIGO_ASIGNADO) +select CONTACTOS.ID, 2, proveedores.CODIGOCLIENTE +from CONTACTOS +left join proveedores on proveedores.codigo = contactos.referencia +WHERE proveedores.CODIGOCLIENTE is not null; + +INSERT INTO CONTACTOS_DIRECCIONES +(ID, ID_CONTACTO, CALLE, POBLACION, PROVINCIA, CODIGO_POSTAL, PERSONA_CONTACTO, + TELEFONO, MOVIL, FAX, EMAIL) +/* Insertamos la sucursales de los proveedores */ +select +GEN_ID(GEN_CONTACTOS_DIR_ID, 1), +contactos.id AS ID_CONTACTO, +(COALESCE(sucursalesproveedor.CALLE,'') || ', ' || COALESCE(sucursalesproveedor.NUMERO,'') || ' ' || COALESCE(sucursalesproveedor.PISO,'')) AS CALLE, +sucursalesproveedor.POBLACION AS POBLACION, +sucursalesproveedor.PROVINCIA AS PROVINCIA, +sucursalesproveedor.CODIGOPOSTAL AS CODIGO_POSTAL, +sucursalesproveedor.PERSONACONTACTO AS PERSONA_CONTACTO, +substr(sucursalesproveedor.TELEFONO1,1,25) AS TELEFONO, +substr(sucursalesproveedor.TELEFONO2,1,25) AS MOVIL, +substr(sucursalesproveedor.FAX,1,25) AS FAX, +sucursalesproveedor.CORREO AS EMAIL +from sucursalesproveedor +left join contactos on contactos.referencia = sucursalesproveedor.codigoproveedor +left join contactos_categorias on contactos_categorias.id_contacto = contactos.id +where contactos_categorias.id_categoria = 2 +and (COALESCE(sucursalesproveedor.CALLE,'') || ', ' || COALESCE(sucursalesproveedor.NUMERO,'') || ' ' || COALESCE(sucursalesproveedor.PISO,'')) <> ','; + + + +Extract MetaData con cmapos blob, lanzar script en nueva base de datos + +CREATE TABLE CLIENTES ( + CODIGO VARCHAR(10) NOT NULL, + NIFCIF VARCHAR(10) CHARACTER SET ISO8859_1, + NOMBRE VARCHAR(100) CHARACTER SET ISO8859_1, + CALLE VARCHAR(150) CHARACTER SET ISO8859_1, + NUMERO VARCHAR(20) CHARACTER SET ISO8859_1, + PISO VARCHAR(20) CHARACTER SET ISO8859_1, + CODIGOPOSTAL VARCHAR(5) CHARACTER SET ISO8859_1, + POBLACION VARCHAR(40) CHARACTER SET ISO8859_1, + PROVINCIA VARCHAR(30) CHARACTER SET ISO8859_1, + TELEFONO1 VARCHAR(30) CHARACTER SET ISO8859_1, + TELEFONO2 VARCHAR(30) CHARACTER SET ISO8859_1, + FAX VARCHAR(30) CHARACTER SET ISO8859_1, + CORREO VARCHAR(60) CHARACTER SET ISO8859_1, + PERSONACONTACTO VARCHAR(100) CHARACTER SET ISO8859_1, + OBSERVACIONES BLOB SUB_TYPE 1 SEGMENT SIZE 100 CHARACTER SET ISO8859_1, + BANCO VARCHAR(100) CHARACTER SET ISO8859_1, + IVA FLOAT DEFAULT 0, + DESCUENTO FLOAT DEFAULT 0, + TIPOCLIENTE VARCHAR(50) CHARACTER SET ISO8859_1, + ETIQUETADO SMALLINT, + ULTIMOCAMBIO TIMESTAMP +); +ALTER TABLE CLIENTES ADD CONSTRAINT PK_CLIENTES PRIMARY KEY (CODIGO); + +CREATE TABLE SUCURSALESCLIENTE ( + CODIGOCLIENTE VARCHAR(10) NOT NULL, + CODIGO SMALLINT NOT NULL, + CALLE VARCHAR(150), + NUMERO VARCHAR(20), + PISO VARCHAR(20), + CODIGOPOSTAL VARCHAR(5), + POBLACION VARCHAR(40), + PROVINCIA VARCHAR(30), + TELEFONO1 VARCHAR(30), + TELEFONO2 VARCHAR(30), + FAX VARCHAR(30), + CORREO VARCHAR(60), + PERSONACONTACTO VARCHAR(100) +); +ALTER TABLE SUCURSALESCLIENTE ADD CONSTRAINT PK_SUCURSALESCLIENTE PRIMARY KEY (CODIGOCLIENTE, CODIGO); +ALTER TABLE SUCURSALESCLIENTE ADD FOREIGN KEY (CODIGOCLIENTE) REFERENCES CLIENTES (CODIGO) ON DELETE CASCADE ON UPDATE NO ACTION; + + +insert into CONTACTOS +(ID, REFERENCIA, NIF_CIF, NOMBRE, CALLE, POBLACION, PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, +FAX, EMAIL_1, PERSONA_CONTACTO, NOTAS) + +select +GEN_ID(GEN_CONTACTOS_ID, 1), +clientes.CODIGO AS REFERENCIA, +clientes.NIFCIF AS NIF_CIF, +clientes.NOMBRE AS NOMBRE, +(COALESCE(clientes.CALLE,'') || ', ' || COALESCE(clientes.NUMERO,'') || ' ' || COALESCE(clientes.PISO,'')) AS CALLE, +clientes.POBLACION AS POBLACION, +clientes.PROVINCIA AS PROVINCIA, +clientes.CODIGOPOSTAL AS CODIGO_POSTAL, +substr(clientes.TELEFONO1,1,25) AS TELEFONO_1, +substr(clientes.TELEFONO2,1,25) AS TELEFONO_2, +substr(clientes.FAX,1,25) AS FAX, +clientes.CORREO AS EMAIL_1, +clientes.PERSONACONTACTO AS PERSONA_CONTACTO, +clientes.OBSERVACIONES AS NOTAS + +from clientes; + + +insert into contactos_categorias +(ID_CONTACTO, ID_CATEGORIA) +select ID, 1 +from contactos +where ID not in (select ID_CONTACTO from contactos_categorias); + + +MIRAR SI TODOS LOS CLIENTES TIENEN DESCUENTO NULL +select * +from clientes +where descuento is not null; + + +MIRAR SI TODOS LOS CLIENTES TIENEN IVA 16% +select DISTINCT IVA +from clientes; + +//Establecemos el tipo de iva al 16 para todos los clientes +insert into clientes_datos +(ID_CLIENTE, ID_TIPO_IVA, REGIMEN_IVA) +select CONTACTOS.ID, 1, 'General' +from CONTACTOS +left join contactos_categorias on contactos_categorias.id_contacto = contactos.id +where contactos_categorias.id_categoria = 1; + +SET GENERATOR GEN_CONTACTOS_DATOS_BANCO_ID TO 1; + + +insert into contactos_datos_banco +(ID, ID_contacto, titular) +select GEN_ID(GEN_CONTACTOS_DATOS_BANCO_ID, 1), CONTACTOS.ID, clientes.banco +from CONTACTOS +left join clientes on clientes.codigo = contactos.referencia +WHERE clientes.banco is not null; + + +//Insertamos la distintas sucursales de cliente +INSERT INTO CONTACTOS_DIRECCIONES +(ID, ID_CONTACTO, CALLE, POBLACION, PROVINCIA, CODIGO_POSTAL, PERSONA_CONTACTO, + TELEFONO, MOVIL, FAX, EMAIL) + +select + +GEN_ID(GEN_CONTACTOS_DIR_ID, 1), +contactos.id AS ID_CONTACTO, +(COALESCE(sucursalescliente.CALLE,'') || ', ' || COALESCE(sucursalescliente.NUMERO,'') || ' ' || COALESCE(sucursalescliente.PISO,'')) AS CALLE, +sucursalescliente.POBLACION AS POBLACION, +sucursalescliente.PROVINCIA AS PROVINCIA, +sucursalescliente.CODIGOPOSTAL AS CODIGO_POSTAL, +sucursalescliente.PERSONACONTACTO AS PERSONA_CONTACTO, +substr(sucursalescliente.TELEFONO1,1,25) AS TELEFONO, +substr(sucursalescliente.TELEFONO2,1,25) AS MOVIL, +substr(sucursalescliente.FAX,1,25) AS FAX, +sucursalescliente.CORREO AS EMAIL + +from sucursalescliente +left join contactos on contactos.referencia = sucursalescliente.codigocliente +left join contactos_categorias on contactos_categorias.id_contacto = contactos.id +where contactos_categorias.id_categoria = 1 +and (COALESCE(sucursalescliente.CALLE,'') || ', ' || COALESCE(sucursalescliente.NUMERO,'') || ' ' || COALESCE(sucursalescliente.PISO,'')) <> ','; + + +drop table sucursalesproveedor; +DROP TABLE PROVEEDORES; +drop table sucursalescliente; +DROP TABLE CLIENTES; + + +insert into empresas_contactos +(ID, ID_empresa, ID_contacto) +select GEN_ID(GEN_EMPRESAS_CONTACTOS_ID, 1), 1, id +from contactos; \ No newline at end of file diff --git a/Database/RodaxSoftware.FactuGES.Database.proj b/Database/RodaxSoftware.FactuGES.Database.proj new file mode 100644 index 0000000..fcbe48f --- /dev/null +++ b/Database/RodaxSoftware.FactuGES.Database.proj @@ -0,0 +1,75 @@ + + + + + %22 + + + + sysdba + masterkey + localhost + false + $(MSBuildProjectDirectory)\Scripts + $(MSBuildProjectDirectory)\..\Tools + $(MSBuildProjectDirectory)\..\Output + $(ToolsFolder)\ISQL\isql.exe + Debug + + + + $(CodeOutputFolder)\Debug\Database + + + $(CodeOutputFolder)\Release\Database + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Database/_db_enviroment.bat b/Database/_db_enviroment.bat new file mode 100644 index 0000000..e82b976 --- /dev/null +++ b/Database/_db_enviroment.bat @@ -0,0 +1,14 @@ +rem Full path to the firebird isql utility. +SET ISQL="..\Tools\ISQL\isql.exe" + +SET DB_LOGIN=-USER SYSDBA -PASSWORD masterkey + +rem DB ALIAS +SET DB_ALIAS=FACTUGES.FDB +SET DB_ALIAS_TEST=FACTUGES_TEST.FDB + +set DB_SQL_SCRIPT=scripts\factuges.sql +set DB_SQL_SYSDATA=scripts\factuges.sql + +set DB_DEBUG_PATH=..\output\debug\database +set DB_RELEASE_PATH=..\output\release\database \ No newline at end of file diff --git a/Database/db_execute.bat b/Database/db_execute.bat new file mode 100644 index 0000000..f374007 --- /dev/null +++ b/Database/db_execute.bat @@ -0,0 +1,67 @@ +rem @echo off +call _db_enviroment.bat + +if "%1" == "drop" goto drop +if "%1" == "create" goto create +if "%1" == "extract" goto extract +if "%1" == "insert_data" goto insert_data +if "%1" == "recreate" goto recreate +goto ayuda + +:recreate +call %0 drop +IF %ERRORLEVEL% == 1 GOTO ERROR +call %0 create +IF %ERRORLEVEL% == 1 GOTO ERROR +call %0 insert_data +IF %ERRORLEVEL% == 1 GOTO ERROR +goto end + +:drop +echo Borrando la base de datos %DB_ALIAS%... +IF EXIST "%DB_DEBUG_PATH%\%DB_ALIAS%" DEL %DB_DEBUG_PATH%\%DB_ALIAS% +IF %ERRORLEVEL% == 1 GOTO ERROR +goto done + +:create +echo Creando la base de datos %DB_ALIAS% en %DB_DEBUG_PATH%\%DB_ALIAS% +%ISQL% -i %DB_SQL_SCRIPT% %DB_LOGIN% -q +IF %ERRORLEVEL% == 1 GOTO ERROR +move %DB_ALIAS% "%DB_DEBUG_PATH%" +goto done + +:extract +echo Extrayendo %DB_ALIAS% al script SQL %DB_SQL_SCRIPT%... +IF EXIST %DB_SQL_SCRIPT% DEL %DB_SQL_SCRIPT% +%ISQL% -a -d %DB_ALIAS% %DB_LOGIN% -o %DB_SQL_SCRIPT% %DB_DEBUG_PATH%\%DB_ALIAS% -b +IF %ERRORLEVEL% == 1 GOTO ERROR +goto done + +:insert_data +echo Insertando datos del sistema en %DB_ALIAS%... +%ISQL% -i %DB_SQL_SYSDATA% %DB_LOGIN% %DB_DEBUG_PATH%\%DB_ALIAS% +IF %ERRORLEVEL% == 1 GOTO ERROR +goto done + +:error +ECHO Se ha producido un error!!!! +goto end + +:ayuda +echo Modo de uso: %0 [create / drop / extract] +echo ------------ +echo create: crear la base de datos %DB_ALIAS% (la borra antes si ya existe) +echo drop: borrar la base de datos %DB_ALIAS% +echo extract: extrae los metadatos de la BD a un fichero SQL (%DB_SQL_SCRIPT%) +echo insert_data: extrae los metadatos de la BD a un fichero SQL (%DB_SQL_SCRIPT%) +echo. +echo recreate: rehacer la BD: borrarla si existe, crearla e insertar los datos del sistema +echo. +goto end + +:done +echo Hecho! +echo. +goto end + +:end diff --git a/Database/scripts/factuges.sql b/Database/scripts/factuges.sql new file mode 100644 index 0000000..12362db --- /dev/null +++ b/Database/scripts/factuges.sql @@ -0,0 +1,4052 @@ +/******************************************************************************/ +/**** Generated by IBExpert 2007.05.03 23/09/2008 10:55:38 ****/ +/******************************************************************************/ + +SET SQL DIALECT 3; + +SET NAMES ISO8859_1; + +CREATE DATABASE 'FACTUGES.FDB' PAGE_SIZE 4096 +DEFAULT CHARACTER SET ISO8859_1; + +/******************************************************************************/ +/**** User Defined Functions ****/ +/******************************************************************************/ + +DECLARE EXTERNAL FUNCTION F_RTFTOTEXT + CString(32767) + RETURNS CString(32767) + ENTRY_POINT 'RtfToText' MODULE_NAME 'udf_RtfToText.dll'; + +DECLARE EXTERNAL FUNCTION "MOD" + INTEGER, + INTEGER + RETURNS DOUBLE PRECISION BY VALUE + ENTRY_POINT 'IB_UDF_mod' MODULE_NAME 'ib_udf'; + + +DECLARE EXTERNAL FUNCTION STRLEN + CSTRING(254) + RETURNS INTEGER BY VALUE + ENTRY_POINT 'IB_UDF_strlen' MODULE_NAME 'ib_udf'; + + +DECLARE EXTERNAL FUNCTION SUBSTR + CSTRING(254), + SMALLINT, + SMALLINT + RETURNS CSTRING(254) FREE_IT + ENTRY_POINT 'IB_UDF_substr' MODULE_NAME 'ib_udf'; + + + + +/******************************************************************************/ +/**** Domains ****/ +/******************************************************************************/ + +CREATE DOMAIN TIPO_BINARIO AS +BLOB SUB_TYPE 0 SEGMENT SIZE 80; + +CREATE DOMAIN TIPO_BOOLEANO AS +SMALLINT; + +CREATE DOMAIN TIPO_CANTIDAD AS +NUMERIC(11,2); + +CREATE DOMAIN TIPO_CONCEPTO AS +VARCHAR(2000); + +CREATE DOMAIN TIPO_ID AS +INTEGER; + +CREATE DOMAIN TIPO_IMPORTE AS +NUMERIC(11,2); + +CREATE DOMAIN TIPO_NOTAS AS +BLOB SUB_TYPE 1 SEGMENT SIZE 80; + +CREATE DOMAIN TIPO_PERFIL AS +VARCHAR(15); + +CREATE DOMAIN TIPO_PORCENTAJE AS +FLOAT; + +CREATE DOMAIN TIPO_USUARIO AS +VARCHAR(30); + +/******************************************************************************/ +/**** Generators ****/ +/******************************************************************************/ + +CREATE GENERATOR GEN_AGENTES_COMISIONES_ID; +SET GENERATOR GEN_AGENTES_COMISIONES_ID TO 1; + +CREATE GENERATOR GEN_ALBARANES_CLI_DETALLES_ID; +SET GENERATOR GEN_ALBARANES_CLI_DETALLES_ID TO 1; + +CREATE GENERATOR GEN_ALBARANES_CLI_ID; +SET GENERATOR GEN_ALBARANES_CLI_ID TO 1; + +CREATE GENERATOR GEN_ALBARANES_PRO_DETALLES_ID; +SET GENERATOR GEN_ALBARANES_PRO_DETALLES_ID TO 1; + +CREATE GENERATOR GEN_ALBARANES_PRO_ID; +SET GENERATOR GEN_ALBARANES_PRO_ID TO 1; + +CREATE GENERATOR GEN_ALMACENES_ID; +SET GENERATOR GEN_ALMACENES_ID TO 1; + +CREATE GENERATOR GEN_ARTICULOS_ID; +SET GENERATOR GEN_ARTICULOS_ID TO 1; + +CREATE GENERATOR GEN_ARTICULOS_PROVEEDORES_ID; +SET GENERATOR GEN_ARTICULOS_PROVEEDORES_ID TO 1; + +CREATE GENERATOR GEN_CATEGORIAS_ID; +SET GENERATOR GEN_CATEGORIAS_ID TO 1; + +CREATE GENERATOR GEN_CLIENTES_DTOS_PROV_ID; +SET GENERATOR GEN_CLIENTES_DTOS_PROV_ID TO 1; + +CREATE GENERATOR GEN_CLIENTES_GRUPOS_ID; +SET GENERATOR GEN_CLIENTES_GRUPOS_ID TO 1; + +CREATE GENERATOR GEN_COMISIONES_LIQUID_ID; +SET GENERATOR GEN_COMISIONES_LIQUID_ID TO 1; + +CREATE GENERATOR GEN_CONFIGURACION_ID; +SET GENERATOR GEN_CONFIGURACION_ID TO 1; + +CREATE GENERATOR GEN_CONTACTOS_DATOS_BANCO_ID; +SET GENERATOR GEN_CONTACTOS_DATOS_BANCO_ID TO 1; + +CREATE GENERATOR GEN_CONTACTOS_DIR_ID; +SET GENERATOR GEN_CONTACTOS_DIR_ID TO 1; + +CREATE GENERATOR GEN_CONTACTOS_ID; +SET GENERATOR GEN_CONTACTOS_ID TO 1; + +CREATE GENERATOR GEN_CONTACTOS_PERSONAL_ID; +SET GENERATOR GEN_CONTACTOS_PERSONAL_ID TO 1; + +CREATE GENERATOR GEN_EMPLEADOS_GRUPOS_ID; +SET GENERATOR GEN_EMPLEADOS_GRUPOS_ID TO 1; + +CREATE GENERATOR GEN_EMPRESAS_CONTACTOS_ID; +SET GENERATOR GEN_EMPRESAS_CONTACTOS_ID TO 1; + +CREATE GENERATOR GEN_EMPRESAS_DATOS_BANCO_ID; +SET GENERATOR GEN_EMPRESAS_DATOS_BANCO_ID TO 1; + +CREATE GENERATOR GEN_EMPRESAS_ID; +SET GENERATOR GEN_EMPRESAS_ID TO 1; + +CREATE GENERATOR GEN_EMPRESAS_USUARIOS_ID; +SET GENERATOR GEN_EMPRESAS_USUARIOS_ID TO 1; + +CREATE GENERATOR GEN_FABRICANTES_ID; +SET GENERATOR GEN_FABRICANTES_ID TO 1; + +CREATE GENERATOR GEN_FACTURAS_CLIENTE_ID; +SET GENERATOR GEN_FACTURAS_CLIENTE_ID TO 1; + +CREATE GENERATOR GEN_FACTURAS_PROVEEDOR_ID; +SET GENERATOR GEN_FACTURAS_PROVEEDOR_ID TO 1; + +CREATE GENERATOR GEN_FACTURA_CLIENTE_DETALLES_ID; +SET GENERATOR GEN_FACTURA_CLIENTE_DETALLES_ID TO 1; + +CREATE GENERATOR GEN_FACTURA_PROV_DETALLES_ID; +SET GENERATOR GEN_FACTURA_PROV_DETALLES_ID TO 1; + +CREATE GENERATOR GEN_FAMILIAS_ID; +SET GENERATOR GEN_FAMILIAS_ID TO 1; + +CREATE GENERATOR GEN_FORMAS_PAGO_ID; +SET GENERATOR GEN_FORMAS_PAGO_ID TO 1; + +CREATE GENERATOR GEN_FORMAS_PAGO_PLAZOS_ID; +SET GENERATOR GEN_FORMAS_PAGO_PLAZOS_ID TO 1; + +CREATE GENERATOR GEN_INFORMES_ID; +SET GENERATOR GEN_INFORMES_ID TO 1; + +CREATE GENERATOR GEN_MOVIMIENTOS_ID; +SET GENERATOR GEN_MOVIMIENTOS_ID TO 1; + +CREATE GENERATOR GEN_OBRAS_EJECUCIONES_ID; +SET GENERATOR GEN_OBRAS_EJECUCIONES_ID TO 1; + +CREATE GENERATOR GEN_OBRAS_EJEC_PRESUPUESTOS_ID; +SET GENERATOR GEN_OBRAS_EJEC_PRESUPUESTOS_ID TO 1; + +CREATE GENERATOR GEN_OBRAS_EJEC_PEDIDOS_PROV_ID; +SET GENERATOR GEN_OBRAS_EJEC_PEDIDOS_PROV_ID TO 1; + +CREATE GENERATOR GEN_PAGOS_CLIENTE_ID; +SET GENERATOR GEN_PAGOS_CLIENTE_ID TO 1; + +CREATE GENERATOR GEN_PAGOS_PROVEEDOR_ID; +SET GENERATOR GEN_PAGOS_PROVEEDOR_ID TO 1; + +CREATE GENERATOR GEN_PEDIDOS_CLI_DETALLES_ID; +SET GENERATOR GEN_PEDIDOS_CLI_DETALLES_ID TO 1; + +CREATE GENERATOR GEN_PEDIDOS_CLI_ID; +SET GENERATOR GEN_PEDIDOS_CLI_ID TO 1; + +CREATE GENERATOR GEN_PEDIDOS_PROV_DETALLES_ID; +SET GENERATOR GEN_PEDIDOS_PROV_DETALLES_ID TO 1; + +CREATE GENERATOR GEN_PEDIDOS_PROV_ID; +SET GENERATOR GEN_PEDIDOS_PROV_ID TO 1; + +CREATE GENERATOR GEN_PEDIDOS_PROV_PEDIDOS_ID; +SET GENERATOR GEN_PEDIDOS_PROV_PEDIDOS_ID TO 1; + +CREATE GENERATOR GEN_PERMISOSEX_ID; +SET GENERATOR GEN_PERMISOSEX_ID TO 1; + +CREATE GENERATOR GEN_PERMISOS_ID; +SET GENERATOR GEN_PERMISOS_ID TO 1; + +CREATE GENERATOR GEN_PRESUPUESTOS_CLI_DETALLE_ID; +SET GENERATOR GEN_PRESUPUESTOS_CLI_DETALLE_ID TO 1; + +CREATE GENERATOR GEN_PRESUPUESTOS_CLI_ID; +SET GENERATOR GEN_PRESUPUESTOS_CLI_ID TO 1; + +CREATE GENERATOR GEN_PROVEEDORES_GRUPOS_ID; +SET GENERATOR GEN_PROVEEDORES_GRUPOS_ID TO 1; + +CREATE GENERATOR GEN_RECIBOS_CLIENTE_ID; +SET GENERATOR GEN_RECIBOS_CLIENTE_ID TO 1; + +CREATE GENERATOR GEN_RECIBOS_PROVEEDOR_ID; +SET GENERATOR GEN_RECIBOS_PROVEEDOR_ID TO 1; + +CREATE GENERATOR GEN_REFERENCIAS_ID; +SET GENERATOR GEN_REFERENCIAS_ID TO 1; + +CREATE GENERATOR GEN_REMESAS_CLIENTE_ID; +SET GENERATOR GEN_REMESAS_CLIENTE_ID TO 1; + +CREATE GENERATOR GEN_REMESAS_PROVEEDOR_ID; +SET GENERATOR GEN_REMESAS_PROVEEDOR_ID TO 1; + +CREATE GENERATOR GEN_TIENDA_WEB_ID; +SET GENERATOR GEN_TIENDA_WEB_ID TO 1; + +CREATE GENERATOR GEN_TIPOS_IVA_ID; +SET GENERATOR GEN_TIPOS_IVA_ID TO 1; + +CREATE GENERATOR GEN_UNIDADES_MEDIDA_ID; +SET GENERATOR GEN_UNIDADES_MEDIDA_ID TO 1; + +CREATE GENERATOR GEN_USUARIOS_ID; +SET GENERATOR GEN_USUARIOS_ID TO 1; + + + +/******************************************************************************/ +/**** Tables ****/ +/******************************************************************************/ + + + +CREATE TABLE AGENTES_COMISIONES ( + ID TIPO_ID NOT NULL, + ID_AGENTE TIPO_ID DEFAULT 0 NOT NULL, + ID_PROVEEDOR SMALLINT DEFAULT 0 NOT NULL, + COMISION TIPO_PORCENTAJE DEFAULT 0 +); + +CREATE TABLE ALBARANES_CLIENTE ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + ID_CLIENTE TIPO_ID, + FECHA_ALBARAN DATE, + ID_ALMACEN TIPO_ID, + ID_PEDIDO TIPO_ID, + ID_FACTURA TIPO_ID, + TIPO VARCHAR(1), + REFERENCIA VARCHAR(255), + ID_DIRECCION TIPO_ID, + CALLE VARCHAR(255), + CODIGO_POSTAL VARCHAR(10), + POBLACION VARCHAR(255), + PROVINCIA VARCHAR(255), + PERSONA_CONTACTO VARCHAR(255), + TELEFONO VARCHAR(25), + IMPORTE_NETO TIPO_IMPORTE, + IMPORTE_PORTE TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_DESCUENTO TIPO_IMPORTE, + BASE_IMPONIBLE TIPO_IMPORTE, + IVA TIPO_PORCENTAJE, + IMPORTE_IVA TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + OBSERVACIONES TIPO_NOTAS, + INCIDENCIAS TIPO_NOTAS, + INCIDENCIAS_ACTIVAS SMALLINT DEFAULT 0 NOT NULL, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO, + ID_FORMA_PAGO TIPO_ID, + FECHA_ENVIO DATE, + FECHA_RECEPCION DATE, + FECHA_PREVISTA_ENVIO DATE, + REFERENCIA_CLIENTE VARCHAR(255), + ID_ALBARAN_DEV TIPO_ID +); + +CREATE TABLE ALBARANES_CLIENTE_DETALLES ( + ID TIPO_ID NOT NULL, + ID_ALBARAN TIPO_ID NOT NULL, + POSICION INTEGER, + TIPO_DETALLE VARCHAR(25), + ID_ARTICULO TIPO_ID, + CONCEPTO TIPO_CONCEPTO, + CANTIDAD TIPO_CANTIDAD, + UNIDAD_MEDIDA VARCHAR(255), + IMPORTE_UNIDAD TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_PORTE TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + VISIBLE TIPO_BOOLEANO, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + ID_PEDIDO TIPO_ID +); + +CREATE TABLE ALBARANES_PROVEEDOR ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + ID_PROVEEDOR TIPO_ID, + ID_DIRECCION TIPO_ID, + PERSONA_CONTACTO_PROV VARCHAR(255), + FECHA_ALBARAN DATE, + ID_PEDIDO TIPO_ID, + ID_FACTURA TIPO_ID, + TIPO VARCHAR(1), + REFERENCIA VARCHAR(255), + CALLE VARCHAR(255), + CODIGO_POSTAL VARCHAR(10), + POBLACION VARCHAR(255), + PROVINCIA VARCHAR(255), + PERSONA_CONTACTO VARCHAR(255), + TELEFONO VARCHAR(25), + BASE_IMPONIBLE TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_DESCUENTO TIPO_IMPORTE, + IVA TIPO_PORCENTAJE, + IMPORTE_IVA TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + OBSERVACIONES TIPO_NOTAS, + INCIDENCIAS TIPO_NOTAS, + INCIDENCIAS_ACTIVAS SMALLINT DEFAULT 0 NOT NULL, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO, + ID_ALMACEN TIPO_ID, + ID_FORMA_PAGO TIPO_ID, + IMPORTE_NETO TIPO_IMPORTE, + IMPORTE_PORTE TIPO_IMPORTE, + REFERENCIA_PROVEEDOR VARCHAR(255), + REF_FACTURA_PROV VARCHAR(255), + ID_ALBARAN TIPO_ID, + ID_ALBARAN_DEV TIPO_ID +); + +CREATE TABLE ALBARANES_PROVEEDOR_DETALLES ( + ID TIPO_ID NOT NULL, + ID_ALBARAN TIPO_ID NOT NULL, + POSICION INTEGER, + TIPO_DETALLE VARCHAR(25), + ID_ARTICULO TIPO_ID, + CONCEPTO TIPO_CONCEPTO, + CANTIDAD TIPO_CANTIDAD, + UNIDAD_MEDIDA VARCHAR(255), + IMPORTE_UNIDAD TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_PORTE TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + VISIBLE TIPO_BOOLEANO, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + ID_PEDIDO TIPO_ID +); + +CREATE TABLE ALMACENES ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID NOT NULL, + TIPO_ALMACEN VARCHAR(10), + NOMBRE VARCHAR(255), + CALLE VARCHAR(255), + PROVINCIA VARCHAR(255), + POBLACION VARCHAR(255), + CODIGO_POSTAL VARCHAR(10), + TELEFONO VARCHAR(25), + MOVIL VARCHAR(25), + FAX VARCHAR(25), + PERSONA_CONTACTO VARCHAR(255), + OBSERVACIONES TIPO_NOTAS, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO +); + +CREATE TABLE ARTICULOS ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + REFERENCIA VARCHAR(255), + DESCRIPCION VARCHAR(255), + FAMILIA VARCHAR(255), + UNIDAD_MEDIDA VARCHAR(255), + IMAGEN TIPO_BINARIO, + COMISIONABLE TIPO_BOOLEANO, + ID_PROVEEDOR TIPO_ID, + REFERENCIA_PROV VARCHAR(255), + PRECIO_COSTE TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + PRECIO_NETO TIPO_IMPORTE, + PRECIO_PORTE TIPO_IMPORTE, + TIENDA_WEB TIPO_BOOLEANO DEFAULT 0, + FABRICANTE VARCHAR(255), + REFERENCIA_FABR VARCHAR(255), + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO, + INVENTARIABLE TIPO_BOOLEANO, + ELIMINADO TIPO_BOOLEANO, + PARAM_MARGEN FLOAT, + TIEMPO INTEGER, + PARAM_TIEMPO FLOAT, + MANO_OBRA TIPO_IMPORTE +); + +CREATE TABLE ARTICULOS_PROVEEDORES ( + ID TIPO_ID NOT NULL, + ID_ARTICULO TIPO_ID, + ID_PROVEEDOR TIPO_ID, + REFERENCIA_PROV VARCHAR(255), + PRECIO_COSTE TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + PRECIO_NETO TIPO_IMPORTE, + PRECIO_PORTE TIPO_IMPORTE, + PRECIO_PVP_VENTA TIPO_IMPORTE, + PRECIO_PVP_TOTAL TIPO_IMPORTE +); + +CREATE TABLE CATEGORIAS ( + ID TIPO_ID NOT NULL, + CATEGORIA VARCHAR(255) NOT NULL +); + +CREATE TABLE CLIENTES_DATOS ( + ID_CLIENTE TIPO_ID NOT NULL, + ID_AGENTE TIPO_ID, + GRUPO_CLIENTE VARCHAR(255), + NOMBRE_COMERCIAL VARCHAR(255), + VENCIMIENTO_FACTURAS INTEGER, + BLOQUEADO TIPO_BOOLEANO DEFAULT 0 NOT NULL, + REGIMEN_IVA VARCHAR(255), + MOTIVO_BLOQUEO VARCHAR(255), + RECARGO_EQUIVALENCIA TIPO_BOOLEANO, + ID_TIPO_IVA TIPO_ID, + ID_FORMA_PAGO TIPO_ID, + TIENDA_WEB TIPO_BOOLEANO, + DESCUENTO TIPO_PORCENTAJE, + RAPEL SMALLINT, + EMAIL_ADMINISTRACION VARCHAR(255), + CODIGO_ASIGNADO VARCHAR(255), + VENCIMIENTO_FACTURAS_1 SMALLINT, + VENCIMIENTO_FACTURAS_2 SMALLINT, + VENCIMIENTO_FACTURAS_3 SMALLINT, + FELICITACION TIPO_BOOLEANO +); + +CREATE TABLE CLIENTES_DTOS_PROVEEDORES ( + ID TIPO_ID NOT NULL, + ID_CLIENTE TIPO_ID DEFAULT 0 NOT NULL, + ID_PROVEEDOR SMALLINT DEFAULT 0 NOT NULL, + DESCUENTO TIPO_PORCENTAJE DEFAULT 0 +); + +CREATE TABLE CLIENTES_GRUPOS ( + ID TIPO_ID NOT NULL, + DESCRIPCION VARCHAR(255) +); + +CREATE TABLE COMISIONES_LIQUIDADAS ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + REFERENCIA VARCHAR(255), + ID_AGENTE TIPO_ID, + DESCRIPCION VARCHAR(255), + FECHA DATE, + IMPORTE_TOTAL TIPO_IMPORTE, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO +); + +CREATE TABLE CONFIGURACION ( + ID TIPO_ID NOT NULL, + CODIGO VARCHAR(50) NOT NULL, + VALOR VARCHAR(255) NOT NULL, + ID_EMPRESA TIPO_ID +); + +CREATE TABLE CONTACTOS ( + ID TIPO_ID NOT NULL, + NIF_CIF VARCHAR(15), + NOMBRE VARCHAR(255) NOT NULL, + CALLE VARCHAR(255), + POBLACION VARCHAR(255), + PROVINCIA VARCHAR(255), + CODIGO_POSTAL VARCHAR(10), + TELEFONO_1 VARCHAR(25), + TELEFONO_2 VARCHAR(25), + MOVIL_1 VARCHAR(25), + MOVIL_2 VARCHAR(25), + FAX VARCHAR(25), + EMAIL_1 VARCHAR(255), + EMAIL_2 VARCHAR(255), + PAGINA_WEB VARCHAR(255), + NOTAS TIPO_NOTAS, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO, + REFERENCIA VARCHAR(255), + PERSONA_CONTACTO VARCHAR(255) +); + +CREATE TABLE CONTACTOS_CATEGORIAS ( + ID_CONTACTO TIPO_ID NOT NULL, + ID_CATEGORIA TIPO_ID NOT NULL +); + +CREATE TABLE CONTACTOS_DATOS_BANCO ( + ID TIPO_ID NOT NULL, + ID_CONTACTO TIPO_ID NOT NULL, + TITULAR VARCHAR(255), + ENTIDAD VARCHAR(15), + SUCURSAL VARCHAR(15), + DC VARCHAR(15), + CUENTA VARCHAR(15), + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP +); + +CREATE TABLE CONTACTOS_DATOS_PERSONAL ( + ID TIPO_ID NOT NULL, + ID_CONTACTO TIPO_ID NOT NULL, + NOMBRE VARCHAR(255), + PUESTO VARCHAR(255), + TELEFONO VARCHAR(25), + MOVIL VARCHAR(25), + FAX VARCHAR(25), + EMAIL VARCHAR(255), + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP +); + +CREATE TABLE CONTACTOS_DIRECCIONES ( + ID TIPO_ID NOT NULL, + ID_CONTACTO TIPO_ID NOT NULL, + CALLE VARCHAR(255), + POBLACION VARCHAR(255), + PROVINCIA VARCHAR(255), + CODIGO_POSTAL VARCHAR(10), + PERSONA_CONTACTO VARCHAR(255), + NOMBRE VARCHAR(255), + TELEFONO VARCHAR(25), + MOVIL VARCHAR(25), + FAX VARCHAR(25), + EMAIL VARCHAR(255), + NOTAS TIPO_NOTAS, + PORTE TIPO_IMPORTE, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP +); + +CREATE TABLE EMPLEADOS_DATOS ( + ID_EMPLEADO TIPO_ID NOT NULL, + FECHA_NACIMIENTO DATE, + CATEGORIA VARCHAR(255), + FECHA_ALTA_EMPRESA DATE, + FORMACION_BASE TIPO_NOTAS, + FORMACION_COMPLE TIPO_NOTAS, + FORMACION_RECIBIDA TIPO_NOTAS, + EXPERIENCIA TIPO_NOTAS, + CONTRATO VARCHAR(255), + DURACION VARCHAR(255), + FECHA_BAJA DATE, + CAUSA_BAJA VARCHAR(255) +); + +CREATE TABLE AGENTES_DATOS ( + ID_AGENTE TIPO_ID NOT NULL, + FECHA_ALTA_EMPRESA DATE, + FECHA_BAJA DATE, + CAUSA_BAJA VARCHAR(255) +); + +CREATE TABLE EMPLEADOS_GRUPOS ( + ID TIPO_ID NOT NULL, + DESCRIPCION VARCHAR(255) +); + +CREATE TABLE EMPRESAS ( + ID TIPO_ID NOT NULL, + NIF_CIF VARCHAR(15), + NOMBRE VARCHAR(255), + RAZON_SOCIAL VARCHAR(255), + CALLE VARCHAR(255), + POBLACION VARCHAR(255), + PROVINCIA VARCHAR(255), + CODIGO_POSTAL VARCHAR(10), + TELEFONO_1 VARCHAR(25), + TELEFONO_2 VARCHAR(25), + MOVIL_1 VARCHAR(25), + MOVIL_2 VARCHAR(25), + FAX VARCHAR(25), + EMAIL_1 VARCHAR(255), + EMAIL_2 VARCHAR(255), + PAGINA_WEB VARCHAR(255), + NOTAS TIPO_NOTAS, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO, + LOGOTIPO TIPO_BINARIO, + REGISTRO_MERCANTIL VARCHAR(255), + PARAM_TIEMPO TIPO_IMPORTE, + PARAM_MARGEN TIPO_PORCENTAJE, + ID_TIPO_IVA SMALLINT, + ID_FORMA_PAGO SMALLINT, + ID_ALMACEN SMALLINT +); + +CREATE TABLE EMPRESAS_CONTACTOS ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID NOT NULL, + ID_CONTACTO TIPO_ID NOT NULL +); + +CREATE TABLE EMPRESAS_DATOS_BANCO ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID NOT NULL, + NOMBRE VARCHAR(255), + ENTIDAD VARCHAR(15), + SUCURSAL VARCHAR(15), + DC VARCHAR(15), + CUENTA VARCHAR(15), + SUFIJO_N19 VARCHAR(3), + SUFIJO_N58 VARCHAR(3), + IBAN VARCHAR(255) COLLATE ES_ES, + SWIFT VARCHAR(255) COLLATE ES_ES +); + +CREATE TABLE EMPRESAS_USUARIOS ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID NOT NULL, + ID_USUARIO TIPO_ID NOT NULL +); + +CREATE TABLE FABRICANTES ( + ID TIPO_ID NOT NULL, + DESCRIPCION VARCHAR(255) +); + +CREATE TABLE FACTURAS_CLIENTE ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + REFERENCIA VARCHAR(255), + FECHA_FACTURA DATE, + FECHA_VENCIMIENTO DATE, + FECHA_RETENCION DATE, + BASE_IMPONIBLE TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_DESCUENTO TIPO_IMPORTE, + DESCRIPCION_DESCUENTO VARCHAR(255) COLLATE ES_ES, + IVA TIPO_PORCENTAJE, + IMPORTE_IVA TIPO_IMPORTE, + RE TIPO_PORCENTAJE, + IMPORTE_RE TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + OBSERVACIONES TIPO_NOTAS, + ID_CLIENTE TIPO_ID, + NIF_CIF VARCHAR(15), + NOMBRE VARCHAR(255), + ID_DIRECCION TIPO_ID, + CALLE VARCHAR(255), + POBLACION VARCHAR(255), + PROVINCIA VARCHAR(255), + CODIGO_POSTAL VARCHAR(10), + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO, + ID_FORMA_PAGO TIPO_ID, + IMPORTE_NETO TIPO_IMPORTE, + IMPORTE_PORTE TIPO_IMPORTE, + ID_TIPO_IVA TIPO_ID, + RECARGO_EQUIVALENCIA TIPO_BOOLEANO, + ID_COMISION_LIQUIDADA TIPO_ID, + DATOS_BANCARIOS VARCHAR(255), + CLIENTE_FINAL VARCHAR(255), + RETENCION TIPO_PORCENTAJE, + IMPORTE_RETENCION TIPO_IMPORTE +); + +CREATE TABLE FACTURAS_CLIENTE_DETALLES ( + ID TIPO_ID NOT NULL, + ID_FACTURA TIPO_ID NOT NULL, + POSICION INTEGER, + TIPO_DETALLE VARCHAR(25), + ID_ARTICULO TIPO_ID, + CONCEPTO TIPO_CONCEPTO, + CANTIDAD TIPO_CANTIDAD, + UNIDAD_MEDIDA VARCHAR(255), + IMPORTE_UNIDAD TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_PORTE TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + VISIBLE TIPO_BOOLEANO, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP +); + +CREATE TABLE FACTURAS_PROVEEDOR ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + REFERENCIA VARCHAR(255), + REFERENCIA_PROVEEDOR VARCHAR(255), + FECHA_FACTURA DATE, + BASE_IMPONIBLE TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_DESCUENTO TIPO_IMPORTE, + IVA TIPO_PORCENTAJE, + IMPORTE_IVA TIPO_IMPORTE, + RE TIPO_PORCENTAJE, + IMPORTE_RE TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + OBSERVACIONES TIPO_NOTAS, + ID_PROVEEDOR TIPO_ID, + NIF_CIF VARCHAR(15), + NOMBRE VARCHAR(255), + CALLE VARCHAR(255), + POBLACION VARCHAR(255), + PROVINCIA VARCHAR(255), + CODIGO_POSTAL VARCHAR(10), + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO, + ID_FORMA_PAGO TIPO_ID, + IMPORTE_NETO TIPO_IMPORTE, + IMPORTE_PORTE TIPO_IMPORTE, + ID_TIPO_IVA TIPO_ID, + RECARGO_EQUIVALENCIA TIPO_BOOLEANO, + DATOS_BANCARIOS VARCHAR(255), + FECHA_VENCIMIENTO DATE +); + +CREATE TABLE FACTURAS_PROVEEDOR_DETALLES ( + ID TIPO_ID NOT NULL, + ID_FACTURA TIPO_ID NOT NULL, + POSICION INTEGER, + TIPO_DETALLE VARCHAR(25), + ID_ARTICULO TIPO_ID, + CONCEPTO TIPO_CONCEPTO, + CANTIDAD TIPO_CANTIDAD, + UNIDAD_MEDIDA VARCHAR(255), + IMPORTE_UNIDAD TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_PORTE TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + VISIBLE TIPO_BOOLEANO, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP +); + +CREATE TABLE FACTURAS_PROVEEDOR_PEDIDOS ( + ID TIPO_ID NOT NULL, + ID_FACTURA TIPO_ID NOT NULL, + ID_PEDIDO TIPO_ID, + IMPORTE_TOTAL TIPO_IMPORTE, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP +); + +CREATE TABLE FAMILIAS ( + ID TIPO_ID NOT NULL, + DESCRIPCION VARCHAR(255) +); + +CREATE TABLE FORMAS_PAGO ( + ID TIPO_ID NOT NULL, + REFERENCIA VARCHAR(255), + DESCRIPCION VARCHAR(255), + TITULAR VARCHAR(255), + ENTIDAD VARCHAR(15), + SUCURSAL VARCHAR(15), + DC VARCHAR(15), + CUENTA VARCHAR(15) +); + +CREATE TABLE FORMAS_PAGO_PLAZOS ( + ID TIPO_ID NOT NULL, + ID_FORMA_PAGO TIPO_ID NOT NULL, + NUM_DIAS SMALLINT, + PORCENTAJE TIPO_PORCENTAJE +); + +CREATE TABLE INFORMES ( + ID SMALLINT NOT NULL, + ID_EMPRESA TIPO_ID, + CATEGORIA VARCHAR(30), + CONTROLLER VARCHAR(255), + ICONO SMALLINT, + NOMBRE VARCHAR(50), + DESCRIPCION VARCHAR(255), + ORDEN SMALLINT, + MODIFICABLE CHAR(1), + VISTA BLOB SUB_TYPE 2 SEGMENT SIZE 4096, + TIPO_AGRUPACION TIPO_ID +); + +CREATE TABLE MOVIMIENTOS ( + ID TIPO_ID NOT NULL, + ID_ALMACEN TIPO_ID, + ID_ARTICULO TIPO_ID, + FECHA_MOVIMIENTO DATE, + TIPO VARCHAR(1), + CANTIDAD TIPO_CANTIDAD, + CAUSA TIPO_CONCEPTO, + ID_ALMACEN_RESERVA TIPO_ID +); + +CREATE TABLE OBRAS_DATOS ( + ID_ALMACEN TIPO_ID NOT NULL, + ID_CLIENTE TIPO_ID +); + +CREATE TABLE OBRAS_EJECUCIONES ( + ID TIPO_ID NOT NULL, + ID_OBRA TIPO_ID, + FECHA_INICIO DATE, + FECHA_FIN DATE, + ID_SUBCONTRATA TIPO_ID, + OBSERVACIONES TIPO_NOTAS, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP +); + +CREATE TABLE OBRAS_EJECUCIONES_PRESUPUESTOS ( + ID TIPO_ID NOT NULL, + ID_EJECUCION TIPO_ID, + ID_PRESUPUESTO TIPO_ID +); + +CREATE TABLE OBRAS_EJECUCIONES_PEDIDOS_PROV ( + ID TIPO_ID NOT NULL, + ID_EJECUCION TIPO_ID, + ID_PEDIDO TIPO_ID, + ID_PRESUPUESTO TIPO_ID +); + + +CREATE TABLE PAGOS_CLIENTE ( + ID TIPO_ID NOT NULL, + ID_RECIBO TIPO_ID, + TIPO VARCHAR(255), + FECHA_PAGO DATE, + TITULAR VARCHAR(255), + ENTIDAD VARCHAR(15), + SUCURSAL VARCHAR(15), + DC VARCHAR(15), + CUENTA VARCHAR(15), + FECHA_ALTA DATE, + FECHA_MODIFICACION DATE, + USUARIO TIPO_USUARIO +); + +CREATE TABLE PAGOS_PROVEEDOR ( + ID TIPO_ID NOT NULL, + ID_RECIBO TIPO_ID, + TIPO VARCHAR(255), + FECHA_PAGO DATE, + TITULAR VARCHAR(255), + ENTIDAD VARCHAR(15), + SUCURSAL VARCHAR(15), + DC VARCHAR(15), + CUENTA VARCHAR(15), + FECHA_ALTA DATE, + FECHA_MODIFICACION DATE, + USUARIO TIPO_USUARIO +); + +CREATE TABLE PEDIDOS_CLIENTE ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + ID_CLIENTE TIPO_ID, + REFERENCIA VARCHAR(255), + FECHA_PEDIDO DATE, + CALLE VARCHAR(255), + CODIGO_POSTAL VARCHAR(10), + POBLACION VARCHAR(255), + PROVINCIA VARCHAR(255), + PERSONA_CONTACTO VARCHAR(255), + TELEFONO VARCHAR(25), + OBSERVACIONES TIPO_NOTAS, + INCIDENCIAS TIPO_NOTAS, + INCIDENCIAS_ACTIVAS SMALLINT DEFAULT 0 NOT NULL, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO, + IMPORTE_NETO TIPO_IMPORTE, + IMPORTE_PORTE TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_DESCUENTO TIPO_IMPORTE, + BASE_IMPONIBLE TIPO_IMPORTE, + IVA TIPO_PORCENTAJE, + IMPORTE_IVA TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + ID_FORMA_PAGO TIPO_ID, + REF_TIENDA_WEB INTEGER, + FECHA_PREVISTA_ENVIO DATE, + REFERENCIA_CLIENTE VARCHAR(255) +); + +CREATE TABLE PEDIDOS_CLIENTE_DETALLES ( + ID TIPO_ID NOT NULL, + ID_PEDIDO TIPO_ID NOT NULL, + POSICION INTEGER, + TIPO_DETALLE VARCHAR(25), + ID_ARTICULO TIPO_ID, + CONCEPTO TIPO_CONCEPTO, + CANTIDAD TIPO_CANTIDAD, + IMPORTE_UNIDAD TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_PORTE TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + VISIBLE TIPO_BOOLEANO, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP +); + +CREATE TABLE PEDIDOS_PROVEEDOR ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + ID_PROVEEDOR TIPO_ID, + ID_DIRECCION TIPO_ID, + PERSONA_CONTACTO_PROV VARCHAR(255), + REFERENCIA VARCHAR(255), + FECHA_PEDIDO DATE, + FECHA_CONFIRMACION DATE, + FECHA_ENTREGA DATE, + ID_ALMACEN TIPO_ID, + ID_OBRA TIPO_ID, + OBSERVACIONES TIPO_NOTAS, + INCIDENCIAS TIPO_NOTAS, + INCIDENCIAS_ACTIVAS SMALLINT DEFAULT 0 NOT NULL, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO, + CALLE VARCHAR(255), + CODIGO_POSTAL VARCHAR(10), + POBLACION VARCHAR(255), + PROVINCIA VARCHAR(255), + PERSONA_CONTACTO VARCHAR(255), + TELEFONO VARCHAR(25), + ID_PEDIDO_CLIENTE TIPO_ID, + IMPORTE_NETO TIPO_IMPORTE, + IMPORTE_PORTE TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_DESCUENTO TIPO_IMPORTE, + BASE_IMPONIBLE TIPO_IMPORTE, + IVA TIPO_PORCENTAJE, + IMPORTE_IVA TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + ID_FORMA_PAGO TIPO_ID, + FECHA_ENVIO DATE, + ID_FACTURA TIPO_ID, + REF_FACTURA_PROV VARCHAR(255) COLLATE ES_ES +); + +CREATE TABLE PEDIDOS_PROVEEDOR_DETALLES ( + ID TIPO_ID NOT NULL, + ID_PEDIDO TIPO_ID NOT NULL, + POSICION INTEGER, + TIPO_DETALLE VARCHAR(25), + ID_ARTICULO TIPO_ID, + CONCEPTO TIPO_CONCEPTO, + CANTIDAD TIPO_CANTIDAD, + UNIDAD_MEDIDA VARCHAR(255), + IMPORTE_UNIDAD TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_PORTE TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + VISIBLE TIPO_BOOLEANO, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP +); + +CREATE TABLE PERMISOS ( + ID TIPO_ID NOT NULL, + ID_USUARIO TIPO_ID, + MODULO VARCHAR(50), + NOMBRECOMP VARCHAR(50), + CHECKSUM VARCHAR(250) +); + +CREATE TABLE PERMISOSEX ( + ID TIPO_ID NOT NULL, + ID_USUARIO TIPO_ID, + MODULO VARCHAR(50), + NOMBRECOMP VARCHAR(50), + NOMBREFORM VARCHAR(50), + CHECKSUM VARCHAR(250) +); + +CREATE TABLE POBLACIONES ( + ID TIPO_ID NOT NULL, + ID_PROVINCIA TIPO_ID NOT NULL, + DESCRIPCION VARCHAR(255) NOT NULL +); + +CREATE TABLE PRESUPUESTOS_CLIENTE ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + ID_CLIENTE TIPO_ID, + REFERENCIA VARCHAR(255), + REFERENCIA_AUX VARCHAR(255), + FECHA_PRESUPUESTO DATE, + FECHA_DECISION DATE, + SITUACION VARCHAR(255), + PORTADA TIPO_NOTAS, + MEMORIA TIPO_NOTAS, + OBSERVACIONES TIPO_NOTAS, + INCIDENCIAS TIPO_NOTAS, + INCIDENCIAS_ACTIVAS SMALLINT DEFAULT 0 NOT NULL, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO, + IMPORTE_NETO TIPO_IMPORTE, + IMPORTE_PORTE TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_DESCUENTO TIPO_IMPORTE, + BASE_IMPONIBLE TIPO_IMPORTE, + IVA TIPO_PORCENTAJE, + IMPORTE_IVA TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + ID_FORMA_PAGO TIPO_ID, + REFERENCIA_CLIENTE VARCHAR(255), + CLIENTE_FINAL VARCHAR(255), + ID_FACTURA TIPO_ID, + PERSONA_CONTACTO VARCHAR(255), + ID_DIRECCION TIPO_ID, + DESCRIPCION_BONIFICACION VARCHAR(255) COLLATE ES_ES, + IMPORTE_BONIFICACION TIPO_IMPORTE +); + +CREATE TABLE PRESUPUESTOS_CLIENTE_DETALLES ( + ID TIPO_ID NOT NULL, + ID_PRESUPUESTO TIPO_ID NOT NULL, + POSICION INTEGER, + TIPO_DETALLE VARCHAR(25), + ID_ARTICULO TIPO_ID, + CONCEPTO TIPO_CONCEPTO, + CANTIDAD TIPO_CANTIDAD, + UNIDAD_MEDIDA VARCHAR(255), + IMPORTE_UNIDAD TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_PORTE TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + VISIBLE TIPO_BOOLEANO, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP +); + +CREATE TABLE PROVEEDORES_DATOS ( + ID_PROVEEDOR TIPO_ID NOT NULL, + DESCUENTO TIPO_PORCENTAJE, + REGIMEN_IVA VARCHAR(255), + ID_TIPO_IVA TIPO_ID, + ID_FORMA_PAGO TIPO_ID, + TIENDA_WEB TIPO_BOOLEANO, + EMAIL_ADMINISTRACION VARCHAR(255), + GRUPO_PROVEEDOR VARCHAR(255), + DESCRIPCION_PROVEEDOR VARCHAR(255), + CODIGO_ASIGNADO VARCHAR(255), + CERTIFICACION VARCHAR(255), + HOMOLOGADO SMALLINT, + SUBCONTRATA TIPO_BOOLEANO, + VENCIMIENTO_FACTURAS_1 SMALLINT, + VENCIMIENTO_FACTURAS_2 SMALLINT, + VENCIMIENTO_FACTURAS_3 SMALLINT +); + +CREATE TABLE PROVEEDORES_GRUPOS ( + ID TIPO_ID NOT NULL, + DESCRIPCION VARCHAR(255) +); + +CREATE TABLE PROVINCIAS ( + ID TIPO_ID NOT NULL, + DESCRIPCION VARCHAR(255) NOT NULL +); + +CREATE TABLE RECIBOS_CLIENTE ( + ID TIPO_ID NOT NULL, + ID_FACTURA TIPO_ID, + REFERENCIA VARCHAR(255), + FECHA_EMISION DATE, + FECHA_VENCIMIENTO DATE, + DESCRIPCION VARCHAR(255), + OBSERVACIONES VARCHAR(255), + IMPORTE TIPO_IMPORTE, + OTROS_GASTOS TIPO_IMPORTE, + FECHA_ALTA DATE, + FECHA_MODIFICACION DATE, + USUARIO TIPO_USUARIO, + ID_REMESA TIPO_ID, + ID_RECIBO_COMPENSADO INTEGER +); + +CREATE TABLE RECIBOS_PROVEEDOR ( + ID TIPO_ID NOT NULL, + ID_FACTURA TIPO_ID, + REFERENCIA VARCHAR(255), + REFERENCIA_PROVEEDOR VARCHAR(255), + FECHA_EMISION DATE, + FECHA_VENCIMIENTO DATE, + DESCRIPCION VARCHAR(255), + OBSERVACIONES VARCHAR(255), + IMPORTE TIPO_IMPORTE, + OTROS_GASTOS TIPO_IMPORTE, + FECHA_ALTA DATE, + FECHA_MODIFICACION DATE, + USUARIO TIPO_USUARIO, + ID_REMESA TIPO_ID, + ID_RECIBO_COMPENSADO INTEGER +); + +CREATE TABLE REFERENCIAS ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + CODIGO VARCHAR(50) NOT NULL, + VALOR VARCHAR(255) NOT NULL, + DESCRIPCION VARCHAR(255) +); + +CREATE TABLE REMESAS_CLIENTE ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + REFERENCIA VARCHAR(255), + FECHA_REMESA DATE, + IMPORTE_TOTAL TIPO_IMPORTE, + DESCRIPCION VARCHAR(255), + FECHA_ALTA DATE, + FECHA_MODIFICACION DATE, + USUARIO TIPO_USUARIO, + ID_DATOS_BANCO TIPO_ID, + TIPO VARCHAR(40) +); + +CREATE TABLE REMESAS_PROVEEDOR ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + REFERENCIA VARCHAR(255), + FECHA_REMESA DATE, + IMPORTE_TOTAL TIPO_IMPORTE, + DESCRIPCION VARCHAR(255), + FECHA_ALTA DATE, + FECHA_MODIFICACION DATE, + USUARIO TIPO_USUARIO, + ID_DATOS_BANCO TIPO_ID, + TIPO VARCHAR(40) +); + +CREATE TABLE TIENDA_WEB ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID NOT NULL, + TIENDA_ACTIVA TIPO_BOOLEANO DEFAULT 0 NOT NULL, + ULTIMA_ACTUALIZACION TIMESTAMP, + BDSERVER VARCHAR(255), + BDPORT VARCHAR(20), + BDNAME VARCHAR(255), + BDUSER VARCHAR(255), + BDPASS VARCHAR(255) +); + +CREATE TABLE TIPOS_IVA ( + ID TIPO_ID NOT NULL, + REFERENCIA VARCHAR(255), + DESCRIPCION VARCHAR(255), + IVA TIPO_PORCENTAJE, + RE TIPO_PORCENTAJE +); + +CREATE TABLE UNIDADES_MEDIDA ( + ID TIPO_ID NOT NULL, + DESCRIPCION VARCHAR(255) +); + +CREATE TABLE USUARIOS ( + ID TIPO_ID NOT NULL, + USERNAME VARCHAR(30), + LOGIN TIPO_USUARIO, + PASS VARCHAR(250), + PASSEXPIRED DATE, + BLOQUEADO TIPO_BOOLEANO, + EMAIL VARCHAR(150), + USERDAYSSUN INTEGER, + PRIVILEGED INTEGER, + TIPO CHAR(1), + ID_PERFIL TIPO_ID, + CHECKSUM VARCHAR(250) +); + +CREATE TABLE USUARIOS_EVENTOS ( + APLICACION VARCHAR(250), + ID_USUARIO TIPO_ID, + FECHA CHAR(10), + HORA CHAR(8), + FORM VARCHAR(250), + TITULO_FORM VARCHAR(100), + EVENTO VARCHAR(50), + NOTAS TIPO_NOTAS, + TNAME VARCHAR(20) +); + +CREATE TABLE USUARIOS_LOGON ( + LOGONID CHAR(38) NOT NULL, + ID_USUARIO TIPO_ID, + APLICACION VARCHAR(50), + EQUIPO VARCHAR(50), + DATA VARCHAR(14) +); + + + +/******************************************************************************/ +/**** Views ****/ +/******************************************************************************/ + + +/* View: V_ALB_CLI_SITUACION */ +CREATE VIEW V_ALB_CLI_SITUACION( + ID, + SITUACION) +AS +SELECT ALBARANES_CLIENTE.ID, + case when (FECHA_RECEPCION is not null) then 'SERVIDO' + when (FECHA_ENVIO is null) then 'PENDIENTE' + when (FECHA_ENVIO <= current_date) then 'ENVIADO' + when (FECHA_ENVIO > current_date) then 'PENDIENTE' + else 'N/A' + end as SITUACION +FROM ALBARANES_CLIENTE +; + + + +/* View: V_ALB_CLI_DETALLES */ +CREATE VIEW V_ALB_CLI_DETALLES( + ID_ALBARAN, + ID_PEDIDO, + SITUACION, + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD) +AS +SELECT ALBARANES_CLIENTE_DETALLES.ID_ALBARAN, + ALBARANES_CLIENTE_DETALLES.ID_PEDIDO, + V_ALB_CLI_SITUACION.SITUACION, + ALBARANES_CLIENTE.ID_ALMACEN, + COALESCE(ALBARANES_CLIENTE_DETALLES.ID_ARTICULO, 0), + SUM(COALESCE(ALBARANES_CLIENTE_DETALLES.CANTIDAD, 0)) + +FROM ALBARANES_CLIENTE_DETALLES +INNER JOIN ALBARANES_CLIENTE +ON (ALBARANES_CLIENTE_DETALLES.ID_ALBARAN = ALBARANES_CLIENTE.ID) +INNER JOIN V_ALB_CLI_SITUACION +ON (ALBARANES_CLIENTE_DETALLES.ID_ALBARAN = V_ALB_CLI_SITUACION.ID) + +/*Mantenemos los articulos inventariables y aquellos que no existan en nuestro catlogo con el fin de no falsear la situacin de los pedidos +LEFT JOIN ARTICULOS +ON (ALBARANES_CLIENTE_DETALLES.ID_ARTICULO = ARTICULOS.ID) + +WHERE (ALBARANES_CLIENTE_DETALLES.ID_ARTICULO is not null) +AND (ARTICULOS.INVENTARIABLE = 1) +*/ + +group BY ALBARANES_CLIENTE_DETALLES.ID_ALBARAN, + ALBARANES_CLIENTE_DETALLES.ID_PEDIDO, + V_ALB_CLI_SITUACION.SITUACION, + ALBARANES_CLIENTE.ID_ALMACEN, + ALBARANES_CLIENTE_DETALLES.ID_ARTICULO +; + + + +/* View: V_ALB_PROV_DETALLES */ +CREATE VIEW V_ALB_PROV_DETALLES( + ID_ALBARAN, + ID_PEDIDO, + ID_ALMACEN, + ID_ARTICULO, + DESCRIPCION, + CANTIDAD) +AS +SELECT ALBARANES_PROVEEDOR_DETALLES.ID_ALBARAN, + ALBARANES_PROVEEDOR.ID_PEDIDO, + ALBARANES_PROVEEDOR.ID_ALMACEN, + COALESCE(ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO, 0), + CASE + WHEN ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO IS NULL THEN ALBARANES_PROVEEDOR_DETALLES.CONCEPTO + ELSE NULL + END, + SUM (COALESCE(ALBARANES_PROVEEDOR_DETALLES.CANTIDAD, 0)) AS CANTIDAD +FROM ALBARANES_PROVEEDOR_DETALLES INNER JOIN ALBARANES_PROVEEDOR ON (ALBARANES_PROVEEDOR_DETALLES.ID_ALBARAN = ALBARANES_PROVEEDOR.ID) + +/*Mantenemos los articulos inventariables y aquellos que no existan en nuestro catlogo con el fin de no falsear la situacin de los pedidos +LEFT JOIN ARTICULOS +ON (ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID) + +WHERE (ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO is not null) +AND (ARTICULOS.INVENTARIABLE = 1) +*/ + +GROUP BY ALBARANES_PROVEEDOR_DETALLES.ID_ALBARAN, + ALBARANES_PROVEEDOR.ID_PEDIDO, + ALBARANES_PROVEEDOR.ID_ALMACEN, + ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO, + 5 +; + + +/* View: V_ALBARANES_CLIENTE */ +CREATE VIEW V_ALBARANES_CLIENTE( + ID, + ID_EMPRESA, + ID_CLIENTE, + NOMBRE, + FECHA_ALBARAN, + REFERENCIA, + REFERENCIA_CLIENTE, + TIPO, + SITUACION, + ID_ALMACEN, + NOMBRE_ALMACEN, + ID_PEDIDO, + REF_PEDIDO, + ID_FACTURA, + REF_FACTURA, + ID_DIRECCION, + CALLE, + CODIGO_POSTAL, + POBLACION, + PROVINCIA, + PERSONA_CONTACTO, + TELEFONO, + IMPORTE_NETO, + IMPORTE_PORTE, + DESCUENTO, + IMPORTE_DESCUENTO, + BASE_IMPONIBLE, + IVA, + IMPORTE_IVA, + IMPORTE_TOTAL, + OBSERVACIONES, + INCIDENCIAS, + INCIDENCIAS_ACTIVAS, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + ID_FORMA_PAGO, + FECHA_PREVISTA_ENVIO, + FECHA_ENVIO, + FECHA_RECEPCION) +AS +SELECT + ALBARANES_CLIENTE.ID, + ALBARANES_CLIENTE.ID_EMPRESA, + ALBARANES_CLIENTE.ID_CLIENTE, + CONTACTOS.NOMBRE, + ALBARANES_CLIENTE.FECHA_ALBARAN, + ALBARANES_CLIENTE.REFERENCIA, + ALBARANES_CLIENTE.REFERENCIA_CLIENTE, + ALBARANES_CLIENTE.TIPO, + TRIM(V_ALB_CLI_SITUACION.SITUACION), + ALBARANES_CLIENTE.ID_ALMACEN, + ALMACENES.NOMBRE AS NOMBRE_ALMACEN, + ALBARANES_CLIENTE.ID_PEDIDO, + PEDIDOS_CLIENTE.REFERENCIA AS REF_PEDIDO, + ALBARANES_CLIENTE.ID_FACTURA, + FACTURAS_CLIENTE.REFERENCIA AS REF_FACTURA, + ALBARANES_CLIENTE.ID_DIRECCION, + ALBARANES_CLIENTE.CALLE, + ALBARANES_CLIENTE.CODIGO_POSTAL, + ALBARANES_CLIENTE.POBLACION, + ALBARANES_CLIENTE.PROVINCIA, + ALBARANES_CLIENTE.PERSONA_CONTACTO, + ALBARANES_CLIENTE.TELEFONO, + ALBARANES_CLIENTE.IMPORTE_NETO, + ALBARANES_CLIENTE.IMPORTE_PORTE, + ALBARANES_CLIENTE.DESCUENTO, + ALBARANES_CLIENTE.IMPORTE_DESCUENTO, + ALBARANES_CLIENTE.BASE_IMPONIBLE, + ALBARANES_CLIENTE.IVA, + ALBARANES_CLIENTE.IMPORTE_IVA, + ALBARANES_CLIENTE.IMPORTE_TOTAL, + ALBARANES_CLIENTE.OBSERVACIONES, + ALBARANES_CLIENTE.INCIDENCIAS, + ALBARANES_CLIENTE.INCIDENCIAS_ACTIVAS, + ALBARANES_CLIENTE.FECHA_ALTA, + ALBARANES_CLIENTE.FECHA_MODIFICACION, + ALBARANES_CLIENTE.USUARIO, + ALBARANES_CLIENTE.ID_FORMA_PAGO, + ALBARANES_CLIENTE.FECHA_PREVISTA_ENVIO, + ALBARANES_CLIENTE.FECHA_ENVIO, + ALBARANES_CLIENTE.FECHA_RECEPCION +FROM + ALBARANES_CLIENTE + LEFT OUTER JOIN CONTACTOS ON (CONTACTOS.ID = ALBARANES_CLIENTE.ID_CLIENTE) + LEFT OUTER JOIN PEDIDOS_CLIENTE ON (PEDIDOS_CLIENTE.ID = ALBARANES_CLIENTE.ID_PEDIDO) + LEFT OUTER JOIN FACTURAS_CLIENTE ON (FACTURAS_CLIENTE.ID = ALBARANES_CLIENTE.ID_FACTURA) + LEFT OUTER JOIN V_ALB_CLI_SITUACION ON (V_ALB_CLI_SITUACION.ID = ALBARANES_CLIENTE.ID) + LEFT OUTER JOIN ALMACENES ON (ALMACENES.ID = ALBARANES_CLIENTE.ID_ALMACEN) +; + + + +/* View: V_ALBARANES_PROVEEDOR */ +CREATE VIEW V_ALBARANES_PROVEEDOR( + ID, + ID_EMPRESA, + ID_PROVEEDOR, + NOMBRE, + ID_DIRECCION, + PERSONA_CONTACTO_PROV, + FECHA_ALBARAN, + REFERENCIA, + REFERENCIA_PROVEEDOR, + TIPO, + ID_ALMACEN, + TIPO_ALMACEN, + NOMBRE_ALMACEN, + ID_PEDIDO, + REF_PED_PROVEEDOR, + ID_FACTURA, + REF_FACTURA, + REF_FACTURA_PROV, + CALLE, + CODIGO_POSTAL, + POBLACION, + PROVINCIA, + PERSONA_CONTACTO, + TELEFONO, + IMPORTE_NETO, + IMPORTE_PORTE, + DESCUENTO, + IMPORTE_DESCUENTO, + BASE_IMPONIBLE, + IVA, + IMPORTE_IVA, + IMPORTE_TOTAL, + OBSERVACIONES, + INCIDENCIAS, + INCIDENCIAS_ACTIVAS, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + ID_FORMA_PAGO, + ID_ALBARAN, + REFERENCIA_ALBARAN) +AS +SELECT + ALBARANES_PROVEEDOR.ID, + ALBARANES_PROVEEDOR.ID_EMPRESA, + ALBARANES_PROVEEDOR.ID_PROVEEDOR, + CONTACTOS.NOMBRE, + ALBARANES_PROVEEDOR.ID_DIRECCION, + ALBARANES_PROVEEDOR.PERSONA_CONTACTO_PROV, + ALBARANES_PROVEEDOR.FECHA_ALBARAN, + ALBARANES_PROVEEDOR.REFERENCIA, + ALBARANES_PROVEEDOR.REFERENCIA_PROVEEDOR, + ALBARANES_PROVEEDOR.TIPO, + ALBARANES_PROVEEDOR.ID_ALMACEN, + ALMACENES.TIPO_ALMACEN, + ALMACENES.NOMBRE AS NOMBRE_ALMACEN, + ALBARANES_PROVEEDOR.ID_PEDIDO, + PEDIDOS_PROVEEDOR.REFERENCIA AS REF_PED_PROVEEDOR, + ALBARANES_PROVEEDOR.ID_FACTURA, + FACTURAS_PROVEEDOR.REFERENCIA AS REF_FACTURA, + ALBARANES_PROVEEDOR.REF_FACTURA_PROV, + ALBARANES_PROVEEDOR.CALLE, + ALBARANES_PROVEEDOR.CODIGO_POSTAL, + ALBARANES_PROVEEDOR.POBLACION, + ALBARANES_PROVEEDOR.PROVINCIA, + ALBARANES_PROVEEDOR.PERSONA_CONTACTO, + ALBARANES_PROVEEDOR.TELEFONO, + ALBARANES_PROVEEDOR.IMPORTE_NETO, + ALBARANES_PROVEEDOR.IMPORTE_PORTE, + ALBARANES_PROVEEDOR.DESCUENTO, + ALBARANES_PROVEEDOR.IMPORTE_DESCUENTO, + ALBARANES_PROVEEDOR.BASE_IMPONIBLE, + ALBARANES_PROVEEDOR.IVA, + ALBARANES_PROVEEDOR.IMPORTE_IVA, + ALBARANES_PROVEEDOR.IMPORTE_TOTAL, + ALBARANES_PROVEEDOR.OBSERVACIONES, + ALBARANES_PROVEEDOR.INCIDENCIAS, + ALBARANES_PROVEEDOR.INCIDENCIAS_ACTIVAS, + ALBARANES_PROVEEDOR.FECHA_ALTA, + ALBARANES_PROVEEDOR.FECHA_MODIFICACION, + ALBARANES_PROVEEDOR.USUARIO, + ALBARANES_PROVEEDOR.ID_FORMA_PAGO, + ALBARANES_PROVEEDOR.ID_ALBARAN, + ALB2.REFERENCIA AS REFERENCIA_ALBARAN +FROM + ALBARANES_PROVEEDOR + INNER JOIN CONTACTOS ON (CONTACTOS.ID = ALBARANES_PROVEEDOR.ID_PROVEEDOR) + LEFT OUTER JOIN PEDIDOS_PROVEEDOR ON (PEDIDOS_PROVEEDOR.ID = ALBARANES_PROVEEDOR.ID_PEDIDO) + LEFT OUTER JOIN FACTURAS_PROVEEDOR ON (FACTURAS_PROVEEDOR.ID = ALBARANES_PROVEEDOR.ID_FACTURA) + LEFT OUTER JOIN ALMACENES ON (ALMACENES.ID = ALBARANES_PROVEEDOR.ID_ALMACEN) + LEFT OUTER JOIN ALBARANES_PROVEEDOR ALB2 ON (ALB2.ID = ALBARANES_PROVEEDOR.ID_ALBARAN) +; + + + +/* View: V_ALMACENES */ +CREATE VIEW V_ALMACENES( + ID, + ID_EMPRESA, + NOMBRE, + CALLE, + PROVINCIA, + POBLACION, + CODIGO_POSTAL, + TELEFONO, + MOVIL, + FAX, + PERSONA_CONTACTO, + OBSERVACIONES, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO) +AS +SELECT ALMACENES.ID, ALMACENES.ID_EMPRESA, ALMACENES.NOMBRE, + ALMACENES.CALLE, ALMACENES.PROVINCIA, ALMACENES.POBLACION, ALMACENES.CODIGO_POSTAL, + ALMACENES.TELEFONO, ALMACENES.MOVIL, ALMACENES.FAX, ALMACENES.PERSONA_CONTACTO, + ALMACENES.OBSERVACIONES, ALMACENES.FECHA_ALTA, ALMACENES.FECHA_MODIFICACION, ALMACENES.USUARIO +FROM ALMACENES +WHERE ALMACENES.TIPO_ALMACEN = 'ALMACEN' +; + + + +/* View: V_ARTICULOS_PARA_COMPRA */ +CREATE VIEW V_ARTICULOS_PARA_COMPRA( + ID, + ID_EMPRESA, + REFERENCIA, + DESCRIPCION, + UNIDAD_MEDIDA, + FAMILIA, + IMAGEN, + COMISIONABLE, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + REFERENCIA_PROV, + PRECIO_COSTE, + PRECIO_PORTE, + DESCUENTO, + PRECIO_NETO, + INVENTARIABLE, + ID_PROVEEDOR, + NOMBRE_PROVEEDOR, + ELIMINADO, + FABRICANTE, + REFERENCIA_FABR, + PARAM_MARGEN, + PRECIO_PVP_VENTA, + TIEMPO, + PARAM_TIEMPO, + MANO_OBRA, + PRECIO_PVP_TOTAL, + ID_ARTICULO) +AS +SELECT ARTICULOS.ID, ARTICULOS.ID_EMPRESA, ARTICULOS.REFERENCIA, ARTICULOS.DESCRIPCION, + ARTICULOS.UNIDAD_MEDIDA, ARTICULOS.FAMILIA, ARTICULOS.IMAGEN, + ARTICULOS.COMISIONABLE, ARTICULOS.FECHA_ALTA, + ARTICULOS.FECHA_MODIFICACION, ARTICULOS.USUARIO, + ARTICULOS_PROVEEDORES.REFERENCIA_PROV, + ARTICULOS_PROVEEDORES.PRECIO_COSTE, + ARTICULOS_PROVEEDORES.PRECIO_PORTE, + ARTICULOS_PROVEEDORES.DESCUENTO, + ARTICULOS_PROVEEDORES.PRECIO_NETO, + ARTICULOS.INVENTARIABLE, + ARTICULOS_PROVEEDORES.ID_PROVEEDOR, + CONTACTOS.NOMBRE AS NOMBRE_PROVEEDOR, + ARTICULOS.ELIMINADO, + ARTICULOS.FABRICANTE, + ARTICULOS.REFERENCIA_FABR, + ARTICULOS.PARAM_MARGEN, + ARTICULOS_PROVEEDORES.PRECIO_PVP_VENTA, + ARTICULOS.TIEMPO, + ARTICULOS.PARAM_TIEMPO, + ARTICULOS.MANO_OBRA, + ARTICULOS_PROVEEDORES.PRECIO_PVP_TOTAL, + ARTICULOS.ID +FROM ARTICULOS +LEFT OUTER JOIN ARTICULOS_PROVEEDORES ON (ARTICULOS_PROVEEDORES.ID_ARTICULO = ARTICULOS.ID) +LEFT OUTER JOIN CONTACTOS ON (CONTACTOS.ID = ARTICULOS_PROVEEDORES.ID_PROVEEDOR) +WHERE (ARTICULOS.ELIMINADO = 0) +; + + + +/* View: V_ARTICULOS_PVP_MAX */ +CREATE VIEW V_ARTICULOS_PVP_MAX( + ID_ARTICULO, + PRECIO_PVP_VENTA, + PRECIO_PVP_TOTAL) +AS +select +ID_ARTICULO, MAX(COALESCE(PRECIO_PVP_VENTA,0)) as PRECIO_PVP_VENTA, MAX(COALESCE(PRECIO_PVP_TOTAL,0)) as PRECIO_PVP_TOTAL +from ARTICULOS_PROVEEDORES +group by 1 +; + + + +/* View: V_ARTICULOS_PARA_VENTA */ +CREATE VIEW V_ARTICULOS_PARA_VENTA( + ID, + ID_EMPRESA, + REFERENCIA, + DESCRIPCION, + UNIDAD_MEDIDA, + FAMILIA, + IMAGEN, + COMISIONABLE, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + REFERENCIA_PROV, + PRECIO_COSTE, + PRECIO_PORTE, + DESCUENTO, + PRECIO_NETO, + INVENTARIABLE, + ELIMINADO, + FABRICANTE, + REFERENCIA_FABR, + PARAM_MARGEN, + PRECIO_PVP_VENTA, + TIEMPO, + PARAM_TIEMPO, + MANO_OBRA, + PRECIO_PVP_TOTAL) +AS +SELECT ARTICULOS.ID, ARTICULOS.ID_EMPRESA, ARTICULOS.REFERENCIA, ARTICULOS.DESCRIPCION, + ARTICULOS.UNIDAD_MEDIDA, ARTICULOS.FAMILIA, ARTICULOS.IMAGEN, + ARTICULOS.COMISIONABLE, ARTICULOS.FECHA_ALTA, + ARTICULOS.FECHA_MODIFICACION, ARTICULOS.USUARIO, + +/*Estos Campos se necesitan para que no se tenga que tocar la lgica de seleccin de articulos de toda la aplicacin*/ + '' as REFERENCIA_PROV, + 0 as PRECIO_COSTE, + 0 as PRECIO_PORTE, + 0 as DESCUENTO, + 0 as PRECIO_NETO, + + ARTICULOS.INVENTARIABLE, + ARTICULOS.ELIMINADO, + ARTICULOS.FABRICANTE, + ARTICULOS.REFERENCIA_FABR, + ARTICULOS.PARAM_MARGEN, + V_ARTICULOS_PVP_MAX.PRECIO_PVP_VENTA, + ARTICULOS.TIEMPO, + ARTICULOS.PARAM_TIEMPO, + ARTICULOS.MANO_OBRA, + V_ARTICULOS_PVP_MAX.PRECIO_PVP_TOTAL + +FROM ARTICULOS +LEFT OUTER JOIN V_ARTICULOS_PVP_MAX ON (V_ARTICULOS_PVP_MAX.ID_ARTICULO = ARTICULOS.ID) +WHERE (ARTICULOS.ELIMINADO = 0) +; + + + +/* View: V_CONTACTOS */ +CREATE VIEW V_CONTACTOS( + ID, + ID_CATEGORIA, + NIF_CIF, + NOMBRE, + PERSONA_CONTACTO, + CALLE, + POBLACION, + PROVINCIA, + CODIGO_POSTAL, + TELEFONO_1, + TELEFONO_2, + MOVIL_1, + MOVIL_2, + FAX, + EMAIL_1, + EMAIL_2, + PAGINA_WEB, + NOTAS, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + ID_EMPRESA, + REFERENCIA) +AS +SELECT CONTACTOS.ID, + CONTACTOS_CATEGORIAS.ID_CATEGORIA, + CONTACTOS.NIF_CIF, + CONTACTOS.NOMBRE, + CONTACTOS.PERSONA_CONTACTO, + CONTACTOS.CALLE, + CONTACTOS.POBLACION, + CONTACTOS.PROVINCIA, + CONTACTOS.CODIGO_POSTAL, + CONTACTOS.TELEFONO_1, + CONTACTOS.TELEFONO_2, + CONTACTOS.MOVIL_1, + CONTACTOS.MOVIL_2, + CONTACTOS.FAX, + CONTACTOS.EMAIL_1, + CONTACTOS.EMAIL_2, + CONTACTOS.PAGINA_WEB, + CONTACTOS.NOTAS, + CONTACTOS.FECHA_ALTA, + CONTACTOS.FECHA_MODIFICACION, + CONTACTOS.USUARIO, + EMPRESAS_CONTACTOS.ID_EMPRESA, + CONTACTOS.REFERENCIA +FROM CONTACTOS + INNER JOIN CONTACTOS_CATEGORIAS ON (CONTACTOS_CATEGORIAS.ID_CONTACTO = + CONTACTOS.ID) + INNER JOIN EMPRESAS_CONTACTOS ON (EMPRESAS_CONTACTOS.ID_CONTACTO = + CONTACTOS.ID) +; + + + +/* View: V_CLIENTES */ +/* View: V_CLIENTES */ +CREATE VIEW V_CLIENTES( + ID, + ID_CATEGORIA, + NIF_CIF, + NOMBRE, + PERSONA_CONTACTO, + CALLE, + POBLACION, + PROVINCIA, + CODIGO_POSTAL, + TELEFONO_1, + TELEFONO_2, + MOVIL_1, + MOVIL_2, + FAX, + EMAIL_1, + EMAIL_2, + PAGINA_WEB, + NOTAS, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + ID_EMPRESA, + REFERENCIA, + ID_AGENTE, + GRUPO_CLIENTE, + NOMBRE_COMERCIAL, + VENCIMIENTO_FACTURAS_1, + VENCIMIENTO_FACTURAS_2, + VENCIMIENTO_FACTURAS_3, + BLOQUEADO, + AGENTE, + RAPEL, + EMAIL_ADMINISTRACION, + REGIMEN_IVA, + MOTIVO_BLOQUEO, + RECARGO_EQUIVALENCIA, + ID_TIPO_IVA, + ID_FORMA_PAGO, + TIENDA_WEB, + CODIGO_ASIGNADO, + DESCUENTO, + FELICITACION) +AS +SELECT + V_CONTACTOS.ID, + V_CONTACTOS.ID_CATEGORIA, + V_CONTACTOS.NIF_CIF, + V_CONTACTOS.NOMBRE, + V_CONTACTOS.PERSONA_CONTACTO, + V_CONTACTOS.CALLE, + V_CONTACTOS.POBLACION, + V_CONTACTOS.PROVINCIA, + V_CONTACTOS.CODIGO_POSTAL, + V_CONTACTOS.TELEFONO_1, + V_CONTACTOS.TELEFONO_2, + V_CONTACTOS.MOVIL_1, + V_CONTACTOS.MOVIL_2, + V_CONTACTOS.FAX, + V_CONTACTOS.EMAIL_1, + V_CONTACTOS.EMAIL_2, + V_CONTACTOS.PAGINA_WEB, + V_CONTACTOS.NOTAS, + V_CONTACTOS.FECHA_ALTA, + V_CONTACTOS.FECHA_MODIFICACION, + V_CONTACTOS.USUARIO, + V_CONTACTOS.ID_EMPRESA, + V_CONTACTOS.REFERENCIA, + CLIENTES_DATOS.ID_AGENTE, + CLIENTES_DATOS.GRUPO_CLIENTE, + CLIENTES_DATOS.NOMBRE_COMERCIAL, + CLIENTES_DATOS.VENCIMIENTO_FACTURAS_1, + CLIENTES_DATOS.VENCIMIENTO_FACTURAS_2, + CLIENTES_DATOS.VENCIMIENTO_FACTURAS_3, + CLIENTES_DATOS.BLOQUEADO, + CONTACTOS.NOMBRE AS AGENTE, + CLIENTES_DATOS.RAPEL, + CLIENTES_DATOS.EMAIL_ADMINISTRACION, + CLIENTES_DATOS.REGIMEN_IVA, + CLIENTES_DATOS.MOTIVO_BLOQUEO, + CLIENTES_DATOS.RECARGO_EQUIVALENCIA, + CLIENTES_DATOS.ID_TIPO_IVA, + CLIENTES_DATOS.ID_FORMA_PAGO, + CLIENTES_DATOS.TIENDA_WEB, + CLIENTES_DATOS.CODIGO_ASIGNADO, + CLIENTES_DATOS.DESCUENTO, + CLIENTES_DATOS.FELICITACION +FROM + V_CONTACTOS + LEFT OUTER JOIN CLIENTES_DATOS ON (V_CONTACTOS.ID = CLIENTES_DATOS.ID_CLIENTE) + LEFT OUTER JOIN CONTACTOS ON (CLIENTES_DATOS.ID_AGENTE = CONTACTOS.ID) +WHERE + V_CONTACTOS.ID_CATEGORIA = 1 +; + +CREATE VIEW V_AGENTES( + ID, + ID_CATEGORIA, + NIF_CIF, + NOMBRE, + PERSONA_CONTACTO, + CALLE, + POBLACION, + PROVINCIA, + CODIGO_POSTAL, + TELEFONO_1, + TELEFONO_2, + MOVIL_1, + MOVIL_2, + FAX, + EMAIL_1, + EMAIL_2, + PAGINA_WEB, + NOTAS, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + ID_EMPRESA, + REFERENCIA, + FECHA_ALTA_EMPRESA, + FECHA_BAJA, + CAUSA_BAJA) +AS +SELECT V_CONTACTOS.ID, + V_CONTACTOS.ID_CATEGORIA, + V_CONTACTOS.NIF_CIF, + V_CONTACTOS.NOMBRE, + V_CONTACTOS.PERSONA_CONTACTO, + V_CONTACTOS.CALLE, + V_CONTACTOS.POBLACION, + V_CONTACTOS.PROVINCIA, + V_CONTACTOS.CODIGO_POSTAL, + V_CONTACTOS.TELEFONO_1, + V_CONTACTOS.TELEFONO_2, + V_CONTACTOS.MOVIL_1, + V_CONTACTOS.MOVIL_2, + V_CONTACTOS.FAX, + V_CONTACTOS.EMAIL_1, + V_CONTACTOS.EMAIL_2, + V_CONTACTOS.PAGINA_WEB, + V_CONTACTOS.NOTAS, + V_CONTACTOS.FECHA_ALTA, + V_CONTACTOS.FECHA_MODIFICACION, + V_CONTACTOS.USUARIO, + V_CONTACTOS.ID_EMPRESA, V_CONTACTOS.REFERENCIA, + AGENTES_DATOS.FECHA_ALTA_EMPRESA, + AGENTES_DATOS.FECHA_BAJA, + AGENTES_DATOS.CAUSA_BAJA + FROM V_CONTACTOS +INNER JOIN AGENTES_DATOS ON (AGENTES_DATOS.ID_AGENTE = V_CONTACTOS.ID) + WHERE V_CONTACTOS.ID_CATEGORIA = 3 +; + +/* View: V_EMPLEADOS */ +CREATE VIEW V_EMPLEADOS( + ID, + ID_CATEGORIA, + NIF_CIF, + NOMBRE, + PERSONA_CONTACTO, + CALLE, + POBLACION, + PROVINCIA, + CODIGO_POSTAL, + TELEFONO_1, + TELEFONO_2, + MOVIL_1, + MOVIL_2, + FAX, + EMAIL_1, + EMAIL_2, + PAGINA_WEB, + NOTAS, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + ID_EMPRESA, + REFERENCIA, + FECHA_NACIMIENTO, + CATEGORIA, + FECHA_ALTA_EMPRESA, + FORMACION_BASE, + FORMACION_COMPLE, + FORMACION_RECIBIDA, + EXPERIENCIA, + CONTRATO, + DURACION, + FECHA_BAJA, + CAUSA_BAJA) +AS +SELECT V_CONTACTOS.ID, + V_CONTACTOS.ID_CATEGORIA, + V_CONTACTOS.NIF_CIF, + V_CONTACTOS.NOMBRE, + V_CONTACTOS.PERSONA_CONTACTO, + V_CONTACTOS.CALLE, + V_CONTACTOS.POBLACION, + V_CONTACTOS.PROVINCIA, + V_CONTACTOS.CODIGO_POSTAL, + V_CONTACTOS.TELEFONO_1, + V_CONTACTOS.TELEFONO_2, + V_CONTACTOS.MOVIL_1, + V_CONTACTOS.MOVIL_2, + V_CONTACTOS.FAX, + V_CONTACTOS.EMAIL_1, + V_CONTACTOS.EMAIL_2, + V_CONTACTOS.PAGINA_WEB, + V_CONTACTOS.NOTAS, + V_CONTACTOS.FECHA_ALTA, + V_CONTACTOS.FECHA_MODIFICACION, + V_CONTACTOS.USUARIO, + V_CONTACTOS.ID_EMPRESA, + V_CONTACTOS.REFERENCIA, + + EMPLEADOS_DATOS.FECHA_NACIMIENTO, + EMPLEADOS_DATOS.CATEGORIA, + EMPLEADOS_DATOS.FECHA_ALTA_EMPRESA, + EMPLEADOS_DATOS.FORMACION_BASE, + EMPLEADOS_DATOS.FORMACION_COMPLE, + EMPLEADOS_DATOS.FORMACION_RECIBIDA, + EMPLEADOS_DATOS.EXPERIENCIA, + EMPLEADOS_DATOS.CONTRATO, + EMPLEADOS_DATOS.DURACION, + EMPLEADOS_DATOS.FECHA_BAJA, + EMPLEADOS_DATOS.CAUSA_BAJA + +FROM V_CONTACTOS +INNER JOIN EMPLEADOS_DATOS ON (EMPLEADOS_DATOS.ID_EMPLEADO = V_CONTACTOS.ID) +WHERE V_CONTACTOS.ID_CATEGORIA = 3 +; + +/* View: V_REC_FAC_CLI */ +CREATE VIEW V_REC_FAC_CLI( + ID_FACTURA, + NUM_RECIBOS) +AS +SELECT FACTURAS_CLIENTE.ID, COUNT(RECIBOS_CLIENTE.ID) +FROM FACTURAS_CLIENTE +LEFT JOIN RECIBOS_CLIENTE +ON (RECIBOS_CLIENTE.ID_FACTURA = FACTURAS_CLIENTE.ID) +GROUP BY FACTURAS_CLIENTE.ID +; + + + +/* View: V_REC_CLI_SITUACION */ +CREATE VIEW V_REC_CLI_SITUACION( + ID_RECIBO, + SITUACION) +AS +SELECT RECIBOS_CLIENTE.ID, +CASE WHEN (COUNT(PAGOS_CLIENTE.ID_RECIBO)=0) THEN 'PENDIENTE' + WHEN (MOD(COUNT(PAGOS_CLIENTE.ID_RECIBO), 2)=0) THEN 'DEVUELTO' + ELSE 'COBRADO' +END +FROM RECIBOS_CLIENTE +LEFT JOIN PAGOS_CLIENTE +ON (PAGOS_CLIENTE.ID_RECIBO = RECIBOS_CLIENTE.ID) +GROUP BY RECIBOS_CLIENTE.ID +; + + + +/* View: V_REC_FAC_CLI_COBRADOS */ +CREATE VIEW V_REC_FAC_CLI_COBRADOS( + ID_FACTURA, + NUM_REC_COBRADOS) +AS +SELECT RECIBOS_CLIENTE.ID_FACTURA, COUNT(V_REC_CLI_SITUACION.ID_RECIBO) +FROM V_REC_CLI_SITUACION LEFT JOIN RECIBOS_CLIENTE ON + (RECIBOS_CLIENTE.ID = V_REC_CLI_SITUACION.ID_RECIBO) +WHERE (TRIM(V_REC_CLI_SITUACION.SITUACION) = 'COBRADO') +GROUP BY RECIBOS_CLIENTE.ID_FACTURA +; + + + +/* View: V_FAC_CLI_SITUACION */ +CREATE VIEW V_FAC_CLI_SITUACION( + ID_FACTURA, + SITUACION) +AS +SELECT ID_FACTURA, +CASE + WHEN ((SUM(NUM_RECIBOS) = 0) + OR (SUM(NUM_REC_COBRADOS) = 0)) THEN 'PENDIENTE' + WHEN (SUM(NUM_RECIBOS) = SUM(NUM_REC_COBRADOS)) THEN 'PAGADA' + ELSE 'PARCIALMENTE PAGADA' +END AS SITUACION +FROM +( + SELECT ID_FACTURA, NUM_RECIBOS, 0 AS NUM_REC_COBRADOS + FROM V_REC_FAC_CLI + UNION ALL + SELECT ID_FACTURA, 0 AS NUM_RECIBOS, NUM_REC_COBRADOS + FROM V_REC_FAC_CLI_COBRADOS +) +GROUP BY ID_FACTURA +; + + + +/* View: V_REC_FAC_PRO */ +CREATE VIEW V_REC_FAC_PRO( + ID_FACTURA, + NUM_RECIBOS) +AS +SELECT FACTURAS_PROVEEDOR.ID, COUNT(RECIBOS_PROVEEDOR.ID) +FROM FACTURAS_PROVEEDOR +LEFT JOIN RECIBOS_PROVEEDOR +ON (RECIBOS_PROVEEDOR.ID_FACTURA = FACTURAS_PROVEEDOR.ID) +GROUP BY FACTURAS_PROVEEDOR.ID +; + + + +/* View: V_REC_PRO_SITUACION */ +CREATE VIEW V_REC_PRO_SITUACION( + ID_RECIBO, + SITUACION) +AS +SELECT RECIBOS_PROVEEDOR.ID, +CASE WHEN (COUNT(PAGOS_PROVEEDOR.ID_RECIBO)=0) THEN 'PENDIENTE' + WHEN (MOD(COUNT(PAGOS_PROVEEDOR.ID_RECIBO), 2)=0) THEN 'DEVUELTO' + ELSE 'PAGADO' +END +FROM RECIBOS_PROVEEDOR +LEFT JOIN PAGOS_PROVEEDOR +ON (PAGOS_PROVEEDOR.ID_RECIBO = RECIBOS_PROVEEDOR.ID) +GROUP BY RECIBOS_PROVEEDOR.ID +; + + + +/* View: V_REC_FAC_PRO_PAGADOS */ +CREATE VIEW V_REC_FAC_PRO_PAGADOS( + ID_FACTURA, + NUM_REC_PAGADOS) +AS +SELECT RECIBOS_PROVEEDOR.ID_FACTURA, COUNT(V_REC_PRO_SITUACION.ID_RECIBO) +FROM V_REC_PRO_SITUACION LEFT JOIN RECIBOS_PROVEEDOR ON + (RECIBOS_PROVEEDOR.ID = V_REC_PRO_SITUACION.ID_RECIBO) +WHERE (TRIM(V_REC_PRO_SITUACION.SITUACION) = 'PAGADO') +GROUP BY RECIBOS_PROVEEDOR.ID_FACTURA +; + + + +/* View: V_FAC_PRO_SITUACION */ +CREATE VIEW V_FAC_PRO_SITUACION( + ID_FACTURA, + SITUACION) +AS +SELECT ID_FACTURA, +CASE + WHEN ((SUM(NUM_RECIBOS) = 0) + OR (SUM(NUM_REC_PAGADOS) = 0)) THEN 'PENDIENTE' + WHEN (SUM(NUM_RECIBOS) = SUM(NUM_REC_PAGADOS)) THEN 'PAGADA' + ELSE 'PARCIALMENTE PAGADA' +END AS SITUACION +FROM +( + SELECT ID_FACTURA, NUM_RECIBOS, 0 AS NUM_REC_PAGADOS + FROM V_REC_FAC_PRO + UNION ALL + SELECT ID_FACTURA, 0 AS NUM_RECIBOS, NUM_REC_PAGADOS + FROM V_REC_FAC_PRO_PAGADOS +) +GROUP BY ID_FACTURA +; + + + +/* View: V_FACTURAS_CLIENTE */ +CREATE VIEW V_FACTURAS_CLIENTE( + ID, + ID_EMPRESA, + REFERENCIA, + TIPO, + ID_COMISION_LIQUIDADA, + FECHA_FACTURA, + FECHA_VENCIMIENTO, + FECHA_RETENCION, + SITUACION, + BASE_IMPONIBLE, + DESCUENTO, + IMPORTE_DESCUENTO, + IVA, + IMPORTE_IVA, + RE, + IMPORTE_RE, + IMPORTE_TOTAL, + OBSERVACIONES, + ID_CLIENTE, + NIF_CIF, + NOMBRE, + ID_DIRECCION, + CALLE, + POBLACION, + PROVINCIA, + CODIGO_POSTAL, + DATOS_BANCARIOS, + CLIENTE_FINAL, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + ID_FORMA_PAGO, + RECARGO_EQUIVALENCIA, + ID_TIPO_IVA, + IMPORTE_NETO, + IMPORTE_PORTE, + ID_AGENTE, + REFERENCIA_COMISION, + RETENCION, + IMPORTE_RETENCION) + AS +SELECT FACTURAS_CLIENTE.ID, + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.REFERENCIA, + CASE WHEN (FACTURAS_CLIENTE.IMPORTE_TOTAL < 0) THEN 'A' ELSE 'F' END AS TIPO, + FACTURAS_CLIENTE.ID_COMISION_LIQUIDADA, + FACTURAS_CLIENTE.FECHA_FACTURA, + FACTURAS_CLIENTE.FECHA_VENCIMIENTO, + FACTURAS_CLIENTE.FECHA_RETENCION, + TRIM(V_FAC_CLI_SITUACION.SITUACION), + FACTURAS_CLIENTE.BASE_IMPONIBLE, + FACTURAS_CLIENTE.DESCUENTO, + FACTURAS_CLIENTE.IMPORTE_DESCUENTO, + FACTURAS_CLIENTE.IVA, + FACTURAS_CLIENTE.IMPORTE_IVA, + FACTURAS_CLIENTE.RE, + FACTURAS_CLIENTE.IMPORTE_RE, + FACTURAS_CLIENTE.IMPORTE_TOTAL, + FACTURAS_CLIENTE.OBSERVACIONES, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE.NIF_CIF, + FACTURAS_CLIENTE.NOMBRE, + FACTURAS_CLIENTE.ID_DIRECCION, + FACTURAS_CLIENTE.CALLE, + FACTURAS_CLIENTE.POBLACION, + FACTURAS_CLIENTE.PROVINCIA, + FACTURAS_CLIENTE.CODIGO_POSTAL, + FACTURAS_CLIENTE.DATOS_BANCARIOS, + FACTURAS_CLIENTE.CLIENTE_FINAL, + FACTURAS_CLIENTE.FECHA_ALTA, + FACTURAS_CLIENTE.FECHA_MODIFICACION, + FACTURAS_CLIENTE.USUARIO, + FACTURAS_CLIENTE.ID_FORMA_PAGO, + FACTURAS_CLIENTE.RECARGO_EQUIVALENCIA, + FACTURAS_CLIENTE.ID_TIPO_IVA, + FACTURAS_CLIENTE.IMPORTE_NETO, + FACTURAS_CLIENTE.IMPORTE_PORTE, + CLIENTES_DATOS.ID_AGENTE, + COMISIONES_LIQUIDADAS.REFERENCIA, + FACTURAS_CLIENTE.RETENCION, + FACTURAS_CLIENTE.IMPORTE_RETENCION + FROM V_FAC_CLI_SITUACION + LEFT JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = V_FAC_CLI_SITUACION.ID_FACTURA) + LEFT JOIN COMISIONES_LIQUIDADAS + ON (COMISIONES_LIQUIDADAS.ID = FACTURAS_CLIENTE.ID_COMISION_LIQUIDADA) + LEFT JOIN CLIENTES_DATOS + ON (CLIENTES_DATOS.ID_CLIENTE = FACTURAS_CLIENTE.ID_CLIENTE); +; + + +/* View: V_FACTURAS_PROVEEDOR */ +CREATE VIEW V_FACTURAS_PROVEEDOR( + ID, + ID_EMPRESA, + REFERENCIA, + TIPO, + REFERENCIA_PROVEEDOR, + FECHA_FACTURA, + FECHA_VENCIMIENTO, + SITUACION, + BASE_IMPONIBLE, + DESCUENTO, + IMPORTE_DESCUENTO, + IVA, + IMPORTE_IVA, + RE, + IMPORTE_RE, + IMPORTE_TOTAL, + OBSERVACIONES, + ID_PROVEEDOR, + NIF_CIF, + NOMBRE, + CALLE, + POBLACION, + PROVINCIA, + CODIGO_POSTAL, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + ID_FORMA_PAGO, + RECARGO_EQUIVALENCIA, + ID_TIPO_IVA, + IMPORTE_NETO, + IMPORTE_PORTE, + DATOS_BANCARIOS) +AS +SELECT FACTURAS_PROVEEDOR.ID, + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR.REFERENCIA, + CASE WHEN (FACTURAS_PROVEEDOR.IMPORTE_TOTAL < 0) THEN 'A' ELSE 'F' END AS TIPO, + FACTURAS_PROVEEDOR.REFERENCIA_PROVEEDOR, + FACTURAS_PROVEEDOR.FECHA_FACTURA, + FACTURAS_PROVEEDOR.FECHA_VENCIMIENTO, + TRIM(V_FAC_PRO_SITUACION.SITUACION), + FACTURAS_PROVEEDOR.BASE_IMPONIBLE, + FACTURAS_PROVEEDOR.DESCUENTO, + FACTURAS_PROVEEDOR.IMPORTE_DESCUENTO, + FACTURAS_PROVEEDOR.IVA, + FACTURAS_PROVEEDOR.IMPORTE_IVA, + FACTURAS_PROVEEDOR.RE, + FACTURAS_PROVEEDOR.IMPORTE_RE, + FACTURAS_PROVEEDOR.IMPORTE_TOTAL, + FACTURAS_PROVEEDOR.OBSERVACIONES, + FACTURAS_PROVEEDOR.ID_PROVEEDOR, + FACTURAS_PROVEEDOR.NIF_CIF, + FACTURAS_PROVEEDOR.NOMBRE, + FACTURAS_PROVEEDOR.CALLE, + FACTURAS_PROVEEDOR.POBLACION, + FACTURAS_PROVEEDOR.PROVINCIA, + FACTURAS_PROVEEDOR.CODIGO_POSTAL, + FACTURAS_PROVEEDOR.FECHA_ALTA, + FACTURAS_PROVEEDOR.FECHA_MODIFICACION, + FACTURAS_PROVEEDOR.USUARIO, + FACTURAS_PROVEEDOR.ID_FORMA_PAGO, + FACTURAS_PROVEEDOR.RECARGO_EQUIVALENCIA, + FACTURAS_PROVEEDOR.ID_TIPO_IVA, + FACTURAS_PROVEEDOR.IMPORTE_NETO, + FACTURAS_PROVEEDOR.IMPORTE_PORTE, + FACTURAS_PROVEEDOR.DATOS_BANCARIOS + FROM V_FAC_PRO_SITUACION + LEFT JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = V_FAC_PRO_SITUACION.ID_FACTURA) + LEFT JOIN PROVEEDORES_DATOS + ON (PROVEEDORES_DATOS.ID_PROVEEDOR = FACTURAS_PROVEEDOR.ID_PROVEEDOR) +; + + + +/* View: V_HIS_MOV_ALB_CLI */ +CREATE VIEW V_HIS_MOV_ALB_CLI( + FECHA, + ID_ALMACEN, + ID_ARTICULO, + TIPO_MOVIMIENTO, + CANTIDAD, + CAUSA) +AS +SELECT + ALBARANES_CLIENTE.FECHA_ALBARAN, + V_ALB_CLI_DETALLES.ID_ALMACEN, + V_ALB_CLI_DETALLES.ID_ARTICULO, + CASE WHEN V_ALB_CLI_DETALLES.CANTIDAD < 0 THEN 'E' + ELSE 'S' END, + (-1)*V_ALB_CLI_DETALLES.CANTIDAD, + CASE WHEN ALBARANES_CLIENTE.IMPORTE_TOTAL < 0 THEN 'Orden de devolucin de cliente ' || ALBARANES_CLIENTE.REFERENCIA + ELSE 'Albarn de cliente ' || ALBARANES_CLIENTE.REFERENCIA END + +FROM V_ALB_CLI_DETALLES +LEFT JOIN ALBARANES_CLIENTE +ON (V_ALB_CLI_DETALLES.ID_ALBARAN = ALBARANES_CLIENTE.ID) + +WHERE (V_ALB_CLI_DETALLES.ID_ALMACEN IS NOT NULL) +AND (V_ALB_CLI_DETALLES.SITUACION in ('ENVIADO', 'SERVIDO')) +; + + + +/* View: V_HIS_MOV_ALB_PROV */ +CREATE VIEW V_HIS_MOV_ALB_PROV( + FECHA, + ID_ALMACEN, + ID_ARTICULO, + TIPO_MOVIMIENTO, + CANTIDAD, + CAUSA) +AS +SELECT + ALBARANES_PROVEEDOR.FECHA_ALBARAN, + V_ALB_PROV_DETALLES.ID_ALMACEN, + V_ALB_PROV_DETALLES.ID_ARTICULO, + CASE WHEN V_ALB_PROV_DETALLES.CANTIDAD < 0 THEN 'S' + ELSE 'E' END, + V_ALB_PROV_DETALLES.CANTIDAD, + CASE WHEN ALBARANES_PROVEEDOR.IMPORTE_TOTAL < 0 THEN 'Orden de devolucin ' || ALBARANES_PROVEEDOR.REFERENCIA + ELSE 'Albarn de proveedor ' || ALBARANES_PROVEEDOR.REFERENCIA END + + +FROM V_ALB_PROV_DETALLES +LEFT JOIN ALBARANES_PROVEEDOR +ON (V_ALB_PROV_DETALLES.ID_ALBARAN = ALBARANES_PROVEEDOR.ID) +WHERE (V_ALB_PROV_DETALLES.ID_ALMACEN IS NOT NULL) +; + + + +/* View: V_HIS_MOV_REGULARIZACIONES */ +CREATE VIEW V_HIS_MOV_REGULARIZACIONES( + FECHA, + ID_ALMACEN, + ID_ARTICULO, + TIPO_MOVIMIENTO, + CANTIDAD, + CAUSA) +AS +SELECT FECHA_MOVIMIENTO, ID_ALMACEN, ID_ARTICULO, TIPO, +CASE WHEN TIPO = 'S' THEN (-1)* CANTIDAD + ELSE CANTIDAD END, +'Regularizacin por - ' || CAUSA +FROM MOVIMIENTOS +; + + + +/* View: V_HIS_MOV_AUX */ +CREATE VIEW V_HIS_MOV_AUX( + FECHA, + ID_ALMACEN, + ID_ARTICULO, + TIPO_MOVIMIENTO, + CANTIDAD, + CAUSA) +AS +SELECT + FECHA, + ID_ALMACEN, + ID_ARTICULO, + TIPO_MOVIMIENTO, + CANTIDAD, + CAUSA +FROM V_HIS_MOV_ALB_PROV +UNION ALL +SELECT + FECHA, + ID_ALMACEN, + ID_ARTICULO, + TIPO_MOVIMIENTO, + CANTIDAD, + CAUSA +FROM V_HIS_MOV_ALB_CLI +UNION ALL +SELECT + FECHA, + ID_ALMACEN, + ID_ARTICULO, + TIPO_MOVIMIENTO, + CANTIDAD, + CAUSA +FROM V_HIS_MOV_REGULARIZACIONES +; + + + +/* View: V_HISTORICO_MOVIMIENTOS */ +CREATE VIEW V_HISTORICO_MOVIMIENTOS( + FECHA, + ID_ALMACEN, + ID_EMPRESA, + NOMBRE_ALMACEN, + ID_ARTICULO, + FAMILIA, + REFERENCIA, + UNIDAD_MEDIDA, + FABRICANTE, + REFERENCIA_FABR, + DESCRIPCION, + TIPO_MOVIMIENTO, + CANTIDAD, + CAUSA) +AS +SELECT + V_HIS_MOV_AUX.FECHA, + V_HIS_MOV_AUX.ID_ALMACEN, + ALMACENES.ID_EMPRESA, + ALMACENES.NOMBRE, + V_HIS_MOV_AUX.ID_ARTICULO, + ARTICULOS.FAMILIA, + ARTICULOS.REFERENCIA, + ARTICULOS.UNIDAD_MEDIDA, + ARTICULOS.FABRICANTE, + ARTICULOS.REFERENCIA_FABR, + ARTICULOS.DESCRIPCION, + V_HIS_MOV_AUX.TIPO_MOVIMIENTO, + V_HIS_MOV_AUX.CANTIDAD, + V_HIS_MOV_AUX.CAUSA + +FROM V_HIS_MOV_AUX +LEFT JOIN ALMACENES ON (ALMACENES.ID = V_HIS_MOV_AUX.ID_ALMACEN) +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = V_HIS_MOV_AUX.ID_ARTICULO) + +WHERE (V_HIS_MOV_AUX.ID_ARTICULO <> 0) +AND (ARTICULOS.INVENTARIABLE = 1) +; + + +/* View: V_INV_DETALLE_RESERVAS */ +CREATE VIEW V_INV_DETALLE_RESERVAS( + ID, + ID_EMPRESA, + ID_ALMACEN, + NOMBRE_ALMACEN, + FECHA_RESERVA, + CAUSA_RESERVA, + ID_ARTICULO, + REFERENCIA, + DESCRIPCION, + FAMILIA, + UNIDAD_MEDIDA, + FABRICANTE, + REFERENCIA_FABR, + CANTIDAD, + ID_ALMACEN_RESERVA, + NOMBRE_ALMACEN_RESERVA, + ID_EMPRESA_ALMACEN_RESERVA) +AS +select movimientos.id, almacenes1.ID_EMPRESA, movimientos.ID_ALMACEN, almacenes1.nombre as nombre_almacen, +movimientos.fecha_movimiento as fecha_reserva, movimientos.causa, movimientos.id_articulo, +articulos.referencia, articulos.descripcion, articulos.familia, +articulos.unidad_medida, articulos.fabricante, articulos.referencia_fabr, +movimientos.cantidad, movimientos.id_almacen_reserva, +almacenes2.nombre as nombre_almacen_reserva, almacenes2.id_empresa +from movimientos +left join almacenes almacenes1 on (almacenes1.ID = movimientos.ID_ALMACEN) +left join almacenes almacenes2 on (almacenes2.ID = movimientos.ID_ALMACEN_RESERVA) +left join articulos on (articulos.id = movimientos.id_articulo) +where tipo = 'R' +; +; + + + +/* View: V_INV_ENTRADAS_ALB */ +CREATE VIEW V_INV_ENTRADAS_ALB( + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD) +AS +SELECT ID_ALMACEN, ID_ARTICULO, SUM(CANTIDAD) +FROM V_ALB_PROV_DETALLES +WHERE (ID_ALMACEN IS NOT NULL) +GROUP BY ID_ALMACEN, ID_ARTICULO +; + + + +/* View: V_INV_ENTRADAS_MOV */ +CREATE VIEW V_INV_ENTRADAS_MOV( + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD) +AS +SELECT ID_ALMACEN, ID_ARTICULO, SUM(CANTIDAD) +FROM MOVIMIENTOS +WHERE TIPO = 'E' +GROUP BY ID_ALMACEN, ID_ARTICULO +; + + + +/* View: V_INV_ENTRADAS_AUX */ +CREATE VIEW V_INV_ENTRADAS_AUX( + TIPO, + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD) +AS +SELECT 'ALB', + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD +FROM V_INV_ENTRADAS_ALB +UNION ALL +SELECT 'MOV', + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD +FROM V_INV_ENTRADAS_MOV +; + + + +/* View: V_INV_ENTRADAS */ +CREATE VIEW V_INV_ENTRADAS( + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD) +AS +SELECT +ID_ALMACEN, +ID_ARTICULO, +SUM(CANTIDAD) as CANTIDAD +FROM V_INV_ENTRADAS_AUX + +GROUP BY ID_ALMACEN, + ID_ARTICULO +; + + + +/* View: V_PED_PROV_ARTICULOS_RECIBIDOS */ +CREATE VIEW V_PED_PROV_ARTICULOS_RECIBIDOS( + ID_PEDIDO, + ID_ARTICULO, + DESCRIPCION, + CANTIDAD) +AS +SELECT ID_PEDIDO, ID_ARTICULO, DESCRIPCION, + SUM(CANTIDAD) AS CANTIDAD +FROM V_ALB_PROV_DETALLES +WHERE (ID_PEDIDO is not null) +GROUP BY ID_PEDIDO, ID_ARTICULO, DESCRIPCION; + + +/* View: V_PED_PROV_DETALLES */ +CREATE VIEW V_PED_PROV_DETALLES( + ID_PEDIDO, + ID_ALMACEN, + ID_ARTICULO, + DESCRIPCION, + CANTIDAD) +AS +SELECT PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO, + PEDIDOS_PROVEEDOR.ID_ALMACEN, + COALESCE(PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO, 0), + CASE + WHEN PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO IS NULL THEN PEDIDOS_PROVEEDOR_DETALLES.CONCEPTO + ELSE NULL + END, + SUM(COALESCE(PEDIDOS_PROVEEDOR_DETALLES.CANTIDAD, 0)) + +FROM PEDIDOS_PROVEEDOR_DETALLES +LEFT JOIN PEDIDOS_PROVEEDOR +ON (PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO = PEDIDOS_PROVEEDOR.ID) + +/*Mantenemos los articulos inventariables y aquellos que no existan en nuestro catlogo con el fin de no falsear la situacin de los pedidos +LEFT JOIN ARTICULOS +ON (PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID) + +WHERE (PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO is not null) +AND (ARTICULOS.INVENTARIABLE = 1) +*/ + +GROUP BY PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO, + PEDIDOS_PROVEEDOR.ID_ALMACEN, + PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO, + 4; + + + +/* View: V_PED_PROV_ARTICULOS_AUX */ +CREATE VIEW V_PED_PROV_ARTICULOS_AUX( + ID_PEDIDO, + ID_ARTICULO, + DESCRIPCION, + CANTIDAD_PEDIDA, + CANTIDAD_RECIBIDA) +AS +SELECT + V_PED_PROV_DETALLES.ID_PEDIDO, + V_PED_PROV_DETALLES.ID_ARTICULO, + V_PED_PROV_DETALLES.DESCRIPCION, + V_PED_PROV_DETALLES.CANTIDAD AS CANTIDAD_PEDIDA, + 0 as CANTIDAD_RECIBIDA +FROM V_PED_PROV_DETALLES +UNION ALL +SELECT + V_PED_PROV_ARTICULOS_RECIBIDOS.ID_PEDIDO, + V_PED_PROV_ARTICULOS_RECIBIDOS.ID_ARTICULO, + V_PED_PROV_ARTICULOS_RECIBIDOS.DESCRIPCION, + NULL as CANTIDAD_PEDIDA, + V_PED_PROV_ARTICULOS_RECIBIDOS.CANTIDAD AS CANTIDAD_RECIBIDA +FROM V_PED_PROV_ARTICULOS_RECIBIDOS +; + + +/* View: V_PED_PROV_ARTICULOS */ +CREATE VIEW V_PED_PROV_ARTICULOS( + ID_PEDIDO, + ID_ARTICULO, + DESCRIPCION, + CANTIDAD_PEDIDA, + CANTIDAD_RECIBIDA, + CANTIDAD_PENDIENTE) +AS +SELECT ID_PEDIDO, + /*PEDIDOS_PROVEEDOR.ID_ALMACEN,*/ + ID_ARTICULO, + DESCRIPCION, + SUM(CANTIDAD_PEDIDA) as CANTIDAD_PEDIDA, + SUM(CANTIDAD_RECIBIDA) as CANTIDAD_RECIBIDA, + SUM(CANTIDAD_PEDIDA) - SUM(CANTIDAD_RECIBIDA) as CANTIDAD_PENDIENTE +FROM V_PED_PROV_ARTICULOS_AUX +/* +LEFT JOIN PEDIDOS_PROVEEDOR +ON (PEDIDOS_PROVEEDOR.ID = V_PED_PROV_ARTICULOS_AUX.ID_PEDIDO) +*/ +GROUP BY ID_PEDIDO, + /*PEDIDOS_PROVEEDOR.ID_ALMACEN,*/ + ID_ARTICULO, + DESCRIPCION +HAVING SUM(CANTIDAD_PEDIDA) IS NOT NULL +; + + + +/* View: V_INV_ENTRADAS_PENDIENTES */ +CREATE VIEW V_INV_ENTRADAS_PENDIENTES( + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD) +AS +SELECT PEDIDOS_PROVEEDOR.ID_ALMACEN, V_PED_PROV_ARTICULOS.ID_ARTICULO, SUM(V_PED_PROV_ARTICULOS.CANTIDAD_PENDIENTE) +FROM V_PED_PROV_ARTICULOS +LEFT JOIN PEDIDOS_PROVEEDOR +ON (PEDIDOS_PROVEEDOR.ID = V_PED_PROV_ARTICULOS.ID_PEDIDO) +WHERE (PEDIDOS_PROVEEDOR.ID_ALMACEN IS NOT NULL) +GROUP BY PEDIDOS_PROVEEDOR.ID_ALMACEN, V_PED_PROV_ARTICULOS.ID_ARTICULO +; + + + +/* View: V_INV_RESERVAS_AUX */ +CREATE VIEW V_INV_RESERVAS_AUX( + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD) +AS +SELECT ID_ALMACEN, ID_ARTICULO, SUM(CANTIDAD) +FROM V_ALB_CLI_DETALLES +WHERE (ID_ALMACEN IS NOT NULL) +AND (SITUACION = 'PENDIENTE') +GROUP BY ID_ALMACEN, ID_ARTICULO +UNION ALL +SELECT ID_ALMACEN, + ID_ARTICULO, + CANTIDAD +FROM MOVIMIENTOS +WHERE TIPO = 'R' +; + + + +/* View: V_INV_RESERVAS */ +CREATE VIEW V_INV_RESERVAS( + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD) +AS +SELECT ID_ALMACEN, ID_ARTICULO, SUM(CANTIDAD) +FROM V_INV_RESERVAS_AUX +GROUP BY ID_ALMACEN, ID_ARTICULO +; + + + +/* View: V_INV_SALIDAS_ALB */ +CREATE VIEW V_INV_SALIDAS_ALB( + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD) +AS +SELECT ID_ALMACEN, ID_ARTICULO, SUM(CANTIDAD) +FROM V_ALB_CLI_DETALLES +WHERE (ID_ALMACEN IS NOT NULL) +AND (SITUACION in ('ENVIADO', 'SERVIDO')) +GROUP BY ID_ALMACEN, ID_ARTICULO +; + + + +/* View: V_INV_SALIDAS_MOV */ +CREATE VIEW V_INV_SALIDAS_MOV( + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD) +AS +SELECT ID_ALMACEN, ID_ARTICULO, SUM(CANTIDAD) +FROM MOVIMIENTOS +WHERE TIPO = 'S' +GROUP BY ID_ALMACEN, ID_ARTICULO +; + + + +/* View: V_INV_SALIDAS_AUX */ +CREATE VIEW V_INV_SALIDAS_AUX( + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD) +AS +SELECT ID_ALMACEN, + ID_ARTICULO, + CANTIDAD +FROM V_INV_SALIDAS_ALB +UNION ALL +SELECT ID_ALMACEN, + ID_ARTICULO, + CANTIDAD +FROM V_INV_SALIDAS_MOV +; + + + +/* View: V_INV_SALIDAS */ +CREATE VIEW V_INV_SALIDAS( + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD) +AS +SELECT +ID_ALMACEN, +ID_ARTICULO, +SUM(CANTIDAD) as CANTIDAD +FROM V_INV_SALIDAS_AUX + +GROUP BY ID_ALMACEN, + ID_ARTICULO +; + + + +/* View: V_INV_STOCK_AUX */ +CREATE VIEW V_INV_STOCK_AUX( + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD_ENTRADA, + CANTIDAD_SALIDA) +AS +SELECT ID_ALMACEN, + ID_ARTICULO, + CANTIDAD as CANTIDAD_ENTRADA, + 0 as CANTIDAD_SALIDA +FROM V_INV_ENTRADAS +UNION ALL +SELECT ID_ALMACEN, + ID_ARTICULO, + 0 as CANTIDAD_ENTRADA, + CANTIDAD as CANTIDAD_SALIDA +FROM V_INV_SALIDAS +; + + + +/* View: V_INV_STOCK */ +CREATE VIEW V_INV_STOCK( + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD) +AS +SELECT +ID_ALMACEN, +ID_ARTICULO, +(SUM(CANTIDAD_ENTRADA) - SUM(CANTIDAD_SALIDA)) as CANTIDAD +FROM V_INV_STOCK_AUX +GROUP BY ID_ALMACEN, + ID_ARTICULO +; + + + +/* View: V_INVENTARIO_AUX */ +CREATE VIEW V_INVENTARIO_AUX( + ID_ALMACEN, + ID_ARTICULO, + STOCK, + PENDIENTE_RECEPCION, + RESERVA) +AS +SELECT ID_ALMACEN, ID_ARTICULO, CANTIDAD as STOCK, 0 as PENDIENTES, 0 as RESERVADAS +FROM V_INV_STOCK +UNION ALL +SELECT ID_ALMACEN, ID_ARTICULO, 0 as STOCK, CANTIDAD as PENDIENTES, 0 AS RESERVADAS +FROM V_INV_ENTRADAS_PENDIENTES +UNION ALL +SELECT ID_ALMACEN, ID_ARTICULO, 0 as STOCK, 0 as PENDIENTES, CANTIDAD AS RESERVADAS +FROM V_INV_RESERVAS +; + + + +/* View: V_INVENTARIO */ +CREATE VIEW V_INVENTARIO( + ID_ALMACEN, + ID_EMPRESA, + TIPO_ALMACEN, + NOMBRE, + ID_ARTICULO, + REFERENCIA, + FAMILIA, + DESCRIPCION, + REFERENCIA_FAB, + UNIDAD_MEDIDA, + STOCK, + UNIDADES_ALMACEN, + RESERVA, + PENDIENTE_RECEPCION) +AS +SELECT ID_ALMACEN, + ALMACENES.ID_EMPRESA, + ALMACENES.TIPO_ALMACEN, + ALMACENES.NOMBRE, + ID_ARTICULO, + ARTICULOS.REFERENCIA, + ARTICULOS.FAMILIA, + ARTICULOS.DESCRIPCION, + ARTICULOS.REFERENCIA_FABR, + ARTICULOS.UNIDAD_MEDIDA, +/* COALESCE(ARTICULOS.PRECIO_NETO,0) as PRECIO_NETO,*/ + (SUM(STOCK) - SUM(RESERVA)) as STOCK, + SUM(STOCK) as UNIDADES_ALMACEN, + + /*Si las unidades son negativas no se tiene en cuenta el coste*/ +/* CASE WHEN (SUM(STOCK) < 0) THEN 0 + ELSE (COALESCE(ARTICULOS.PRECIO_NETO,0) * SUM(STOCK)) + END as COSTE_UNIDADES, +*/ + SUM(RESERVA) as RESERVA, + SUM(PENDIENTE_RECEPCION) as PENDIENTE_RECEPCION + +FROM V_INVENTARIO_AUX +LEFT JOIN ARTICULOS +ON (ARTICULOS.ID = V_INVENTARIO_AUX.ID_ARTICULO) +LEFT JOIN ALMACENES +ON (ALMACENES.ID = V_INVENTARIO_AUX.ID_ALMACEN) + +WHERE (ID_ARTICULO <> 0) +AND (ARTICULOS.ELIMINADO = 0) +AND (ARTICULOS.INVENTARIABLE = 1) + +GROUP BY ID_ALMACEN, + ALMACENES.ID_EMPRESA, + ALMACENES.TIPO_ALMACEN, + ALMACENES.NOMBRE, + ID_ARTICULO, + ARTICULOS.REFERENCIA, + ARTICULOS.FAMILIA, + ARTICULOS.DESCRIPCION, + ARTICULOS.REFERENCIA_FABR, + ARTICULOS.UNIDAD_MEDIDA +/* ARTICULOS.PRECIO_NETO*/ + +/*QUITAMOS AQUELLAS TUPLAS DE LAS QUE NO TENEMOS UNIDADES EN EL ALAMCEN, NO HAY RESERVAS NI PEDIDOS PENDIENTES DE RECIBIR*/ +HAVING ((SUM(STOCK) <> 0 ) OR (SUM(RESERVA) <> 0) OR (SUM(PENDIENTE_RECEPCION) <> 0)) +; + + +/* View: V_OBRAS */ +CREATE VIEW V_OBRAS( + ID, + ID_EMPRESA, + NOMBRE, + CALLE, + PROVINCIA, + POBLACION, + CODIGO_POSTAL, + TELEFONO, + MOVIL, + FAX, + PERSONA_CONTACTO, + OBSERVACIONES, + ID_CLIENTE, + NOMBRE_CLIENTE, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + ID_EJECUCION) +AS +SELECT ALMACENES.ID, ALMACENES.ID_EMPRESA, ALMACENES.NOMBRE, + ALMACENES.CALLE, ALMACENES.PROVINCIA, ALMACENES.POBLACION, ALMACENES.CODIGO_POSTAL, + ALMACENES.TELEFONO, ALMACENES.MOVIL, ALMACENES.FAX, ALMACENES.PERSONA_CONTACTO, + ALMACENES.OBSERVACIONES, OBRAS_DATOS.ID_CLIENTE, CLIENTES.NOMBRE AS NOMBRE_CLIENTE, + ALMACENES.FECHA_ALTA, ALMACENES.FECHA_MODIFICACION, ALMACENES.USUARIO, + CASE + WHEN (OBRAS_EJECUCIONES.FECHA_INICIO IS NULL) THEN NULL + WHEN (OBRAS_EJECUCIONES.FECHA_INICIO IS NOT NULL) THEN OBRAS_EJECUCIONES.ID + END AS ID_EJECUCION +FROM ALMACENES +INNER JOIN OBRAS_DATOS ON (OBRAS_DATOS.ID_ALMACEN = ALMACENES.ID) +LEFT OUTER JOIN CONTACTOS AS CLIENTES ON (CLIENTES.ID = OBRAS_DATOS.ID_CLIENTE) +LEFT OUTER JOIN OBRAS_EJECUCIONES ON ((OBRAS_EJECUCIONES.ID_OBRA = ALMACENES.ID) AND (OBRAS_EJECUCIONES.FECHA_FIN IS NULL)) +WHERE ALMACENES.TIPO_ALMACEN = 'OBRA'; + + +/* View: V_OBRAS_EJECUCIONES */ +CREATE VIEW V_OBRAS_EJECUCIONES( + ID, + ID_OBRA, + FECHA_INICIO, + FECHA_FIN, + ID_SUBCONTRATA, + NOMBRE, + IMPORTE_GASTOS, + IMPORTE_INGRESOS, + IMPORTE_TOTAL, + OBSERVACIONES, + FECHA_ALTA, + FECHA_MODIFICACION) +AS +SELECT + OBRAS_EJECUCIONES.ID, + OBRAS_EJECUCIONES.ID_OBRA, + OBRAS_EJECUCIONES.FECHA_INICIO, + OBRAS_EJECUCIONES.FECHA_FIN, + OBRAS_EJECUCIONES.ID_SUBCONTRATA, + CONTACTOS.NOMBRE, + COALESCE(SUM(PEDIDOS_PROVEEDOR.BASE_IMPONIBLE), 0) IMPORTE_GASTOS, + COALESCE(SUM(PRESUPUESTOS_CLIENTE.BASE_IMPONIBLE), 0) IMPORTE_INGRESOS, + COALESCE(SUM(PRESUPUESTOS_CLIENTE.BASE_IMPONIBLE), 0) - COALESCE(SUM(PEDIDOS_PROVEEDOR.BASE_IMPONIBLE), 0) IMPORTE_TOTAL, + OBRAS_EJECUCIONES.OBSERVACIONES, + OBRAS_EJECUCIONES.FECHA_ALTA, + OBRAS_EJECUCIONES.FECHA_MODIFICACION +FROM OBRAS_EJECUCIONES + LEFT OUTER JOIN CONTACTOS ON (CONTACTOS.ID = OBRAS_EJECUCIONES.ID_SUBCONTRATA) + LEFT OUTER JOIN OBRAS_EJECUCIONES_PRESUPUESTOS ON (OBRAS_EJECUCIONES_PRESUPUESTOS.ID_EJECUCION = OBRAS_EJECUCIONES.ID) + LEFT OUTER JOIN PRESUPUESTOS_CLIENTE ON (PRESUPUESTOS_CLIENTE.ID = OBRAS_EJECUCIONES_PRESUPUESTOS.ID_PRESUPUESTO) + LEFT OUTER JOIN OBRAS_EJECUCIONES_PEDIDOS_PROV ON (OBRAS_EJECUCIONES_PEDIDOS_PROV.ID_EJECUCION = OBRAS_EJECUCIONES.ID) + LEFT OUTER JOIN PEDIDOS_PROVEEDOR ON (PEDIDOS_PROVEEDOR.ID = OBRAS_EJECUCIONES_PEDIDOS_PROV.ID_PEDIDO) +GROUP BY + OBRAS_EJECUCIONES.ID, + OBRAS_EJECUCIONES.ID_OBRA, + OBRAS_EJECUCIONES.FECHA_INICIO, + OBRAS_EJECUCIONES.FECHA_FIN, + OBRAS_EJECUCIONES.ID_SUBCONTRATA, + CONTACTOS.NOMBRE, + OBRAS_EJECUCIONES.OBSERVACIONES, + OBRAS_EJECUCIONES.FECHA_ALTA, + OBRAS_EJECUCIONES.FECHA_MODIFICACION; + + +/* View: V_PED_PROV_SITUACION */ +CREATE VIEW V_PED_PROV_SITUACION( + ID_PEDIDO, + SITUACION) +AS +SELECT ID_PEDIDO, +CASE WHEN (SUM(CANTIDAD_PENDIENTE) > 0) AND (SUM(CANTIDAD_RECIBIDA) = 0) THEN 'PENDIENTE' + WHEN (SUM(CANTIDAD_PENDIENTE) <= 0) THEN 'RECIBIDO' + WHEN (SUM(CANTIDAD_PENDIENTE) > 0) AND (SUM(CANTIDAD_RECIBIDA) > 0) THEN 'PARCIAL' + ELSE 'N/A' +END AS SITUACION +FROM V_PED_PROV_ARTICULOS +GROUP BY V_PED_PROV_ARTICULOS.ID_PEDIDO +; + + + +/* View: V_PEDIDOS_PROVEEDOR */ +CREATE VIEW V_PEDIDOS_PROVEEDOR( + ID, + ID_EMPRESA, + ID_PROVEEDOR, + NOMBRE, + ID_DIRECCION, + PERSONA_CONTACTO_PROV, + REFERENCIA, + SITUACION, + FECHA_ENVIO, + FECHA_PEDIDO, + FECHA_CONFIRMACION, + FECHA_ENTREGA, + ID_ALMACEN, + TIPO_ALMACEN, + NOMBRE_ALMACEN, + ID_OBRA, + NOMBRE_OBRA, + OBSERVACIONES, + IMPORTE_TOTAL, + INCIDENCIAS, + INCIDENCIAS_ACTIVAS, + CALLE, + POBLACION, + PROVINCIA, + CODIGO_POSTAL, + PERSONA_CONTACTO, + TELEFONO, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + ID_PEDIDO_CLIENTE, + REF_PED_CLIENTE, + IMPORTE_NETO, + IMPORTE_PORTE, + DESCUENTO, + IMPORTE_DESCUENTO, + BASE_IMPONIBLE, + IVA, + IMPORTE_IVA, + ID_FORMA_PAGO, + ID_FACTURA, + REF_FACTURA_PROV) +AS +SELECT + PEDIDOS_PROVEEDOR.ID, + PEDIDOS_PROVEEDOR.ID_EMPRESA, + PEDIDOS_PROVEEDOR.ID_PROVEEDOR, + CONTACTOS.NOMBRE, + PEDIDOS_PROVEEDOR.ID_DIRECCION, + PEDIDOS_PROVEEDOR.PERSONA_CONTACTO_PROV, + PEDIDOS_PROVEEDOR.REFERENCIA, + TRIM(V_PED_PROV_SITUACION.SITUACION), + PEDIDOS_PROVEEDOR.FECHA_ENVIO, + PEDIDOS_PROVEEDOR.FECHA_PEDIDO, + PEDIDOS_PROVEEDOR.FECHA_CONFIRMACION, + PEDIDOS_PROVEEDOR.FECHA_ENTREGA, + PEDIDOS_PROVEEDOR.ID_ALMACEN, + ALMACENES.TIPO_ALMACEN, + ALMACENES.NOMBRE AS NOMBRE_ALMACEN, + PEDIDOS_PROVEEDOR.ID_OBRA, + OBRAS.NOMBRE AS NOMBRE_OBRA, + PEDIDOS_PROVEEDOR.OBSERVACIONES, + PEDIDOS_PROVEEDOR.IMPORTE_TOTAL, + PEDIDOS_PROVEEDOR.INCIDENCIAS, + PEDIDOS_PROVEEDOR.INCIDENCIAS_ACTIVAS, + PEDIDOS_PROVEEDOR.CALLE, + PEDIDOS_PROVEEDOR.POBLACION, + PEDIDOS_PROVEEDOR.PROVINCIA, + PEDIDOS_PROVEEDOR.CODIGO_POSTAL, + PEDIDOS_PROVEEDOR.PERSONA_CONTACTO, + PEDIDOS_PROVEEDOR.TELEFONO, + PEDIDOS_PROVEEDOR.FECHA_ALTA, + PEDIDOS_PROVEEDOR.FECHA_MODIFICACION, + PEDIDOS_PROVEEDOR.USUARIO, + PEDIDOS_PROVEEDOR.ID_PEDIDO_CLIENTE, + PEDIDOS_CLIENTE.REFERENCIA AS REF_PED_CLIENTE, + PEDIDOS_PROVEEDOR.IMPORTE_NETO, + PEDIDOS_PROVEEDOR.IMPORTE_PORTE, + PEDIDOS_PROVEEDOR.DESCUENTO, + PEDIDOS_PROVEEDOR.IMPORTE_DESCUENTO, + PEDIDOS_PROVEEDOR.BASE_IMPONIBLE, + PEDIDOS_PROVEEDOR.IVA, + PEDIDOS_PROVEEDOR.IMPORTE_IVA, + PEDIDOS_PROVEEDOR.ID_FORMA_PAGO, + PEDIDOS_PROVEEDOR.ID_FACTURA, + FACTURAS_PROVEEDOR.REFERENCIA + +FROM + PEDIDOS_PROVEEDOR + INNER JOIN CONTACTOS ON (PEDIDOS_PROVEEDOR.ID_PROVEEDOR = CONTACTOS.ID) + LEFT OUTER JOIN V_PED_PROV_SITUACION ON (V_PED_PROV_SITUACION.ID_PEDIDO = PEDIDOS_PROVEEDOR.ID) + LEFT OUTER JOIN ALMACENES ON (ALMACENES.ID = PEDIDOS_PROVEEDOR.ID_ALMACEN) + LEFT OUTER JOIN ALMACENES OBRAS ON (OBRAS.ID = PEDIDOS_PROVEEDOR.ID_OBRA) + LEFT OUTER JOIN PEDIDOS_CLIENTE ON (PEDIDOS_CLIENTE.ID = PEDIDOS_PROVEEDOR.ID_PEDIDO_CLIENTE) + LEFT OUTER JOIN FACTURAS_PROVEEDOR ON (FACTURAS_PROVEEDOR.ID = PEDIDOS_PROVEEDOR.ID_FACTURA) +; + + + +/* View: V_PRESUPUESTOS_CLIENTE */ +CREATE VIEW V_PRESUPUESTOS_CLIENTE( + ID, + ID_EMPRESA, + FECHA_PRESUPUESTO, + FECHA_DECISION, + REFERENCIA, + REFERENCIA_AUX, + SITUACION, + ID_CLIENTE, + ID_DIRECCION, + NIF_CIF, + NOMBRE, + REFERENCIA_CLIENTE, + CLIENTE_FINAL, + PORTADA, + MEMORIA, + OBSERVACIONES, + INCIDENCIAS, + INCIDENCIAS_ACTIVAS, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + IMPORTE_NETO, + IMPORTE_PORTE, + DESCUENTO, + IMPORTE_DESCUENTO, + BASE_IMPONIBLE, + IVA, + IMPORTE_IVA, + IMPORTE_TOTAL, + ID_FORMA_PAGO, + ID_FACTURA, + FACTURA, + PERSONA_CONTACTO, + DESCRIPCION_BONIFICACION, + IMPORTE_BONIFICACION) +AS +SELECT + PRESUPUESTOS_CLIENTE.ID, + PRESUPUESTOS_CLIENTE.ID_EMPRESA, + PRESUPUESTOS_CLIENTE.FECHA_PRESUPUESTO, + PRESUPUESTOS_CLIENTE.FECHA_DECISION, + PRESUPUESTOS_CLIENTE.REFERENCIA, + PRESUPUESTOS_CLIENTE.REFERENCIA_AUX, + PRESUPUESTOS_CLIENTE.SITUACION, + PRESUPUESTOS_CLIENTE.ID_CLIENTE, + PRESUPUESTOS_CLIENTE.ID_DIRECCION, + CONTACTOS.NIF_CIF, + CONTACTOS.NOMBRE, + PRESUPUESTOS_CLIENTE.REFERENCIA_CLIENTE, + PRESUPUESTOS_CLIENTE.CLIENTE_FINAL, + PRESUPUESTOS_CLIENTE.PORTADA, + PRESUPUESTOS_CLIENTE.MEMORIA, + PRESUPUESTOS_CLIENTE.OBSERVACIONES, + PRESUPUESTOS_CLIENTE.INCIDENCIAS, + PRESUPUESTOS_CLIENTE.INCIDENCIAS_ACTIVAS, + PRESUPUESTOS_CLIENTE.FECHA_ALTA, + PRESUPUESTOS_CLIENTE.FECHA_MODIFICACION, + PRESUPUESTOS_CLIENTE.USUARIO, + PRESUPUESTOS_CLIENTE.IMPORTE_NETO, + PRESUPUESTOS_CLIENTE.IMPORTE_PORTE, + PRESUPUESTOS_CLIENTE.DESCUENTO, + PRESUPUESTOS_CLIENTE.IMPORTE_DESCUENTO, + PRESUPUESTOS_CLIENTE.BASE_IMPONIBLE, + PRESUPUESTOS_CLIENTE.IVA, + PRESUPUESTOS_CLIENTE.IMPORTE_IVA, + PRESUPUESTOS_CLIENTE.IMPORTE_TOTAL, + PRESUPUESTOS_CLIENTE.ID_FORMA_PAGO, + PRESUPUESTOS_CLIENTE.ID_FACTURA, + FACTURAS_CLIENTE.REFERENCIA, + PRESUPUESTOS_CLIENTE.PERSONA_CONTACTO, + PRESUPUESTOS_CLIENTE.DESCRIPCION_BONIFICACION, + PRESUPUESTOS_CLIENTE.IMPORTE_BONIFICACION +FROM + PRESUPUESTOS_CLIENTE + INNER JOIN CONTACTOS ON (CONTACTOS.ID = PRESUPUESTOS_CLIENTE.ID_CLIENTE) + LEFT OUTER JOIN FACTURAS_CLIENTE ON (FACTURAS_CLIENTE.ID = PRESUPUESTOS_CLIENTE.ID_FACTURA) +; + + + +/* View: V_PROVEEDORES */ +CREATE VIEW V_PROVEEDORES( + ID, + ID_CATEGORIA, + NIF_CIF, + NOMBRE, + PERSONA_CONTACTO, + CALLE, + POBLACION, + PROVINCIA, + CODIGO_POSTAL, + TELEFONO_1, + TELEFONO_2, + MOVIL_1, + MOVIL_2, + FAX, + EMAIL_1, + EMAIL_2, + PAGINA_WEB, + NOTAS, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + ID_EMPRESA, + REFERENCIA, + DESCUENTO, + DESCRIPCION_PROVEEDOR, + CODIGO_ASIGNADO, + GRUPO_PROVEEDOR, + REGIMEN_IVA, + ID_TIPO_IVA, + ID_FORMA_PAGO, + TIENDA_WEB, + HOMOLOGADO, + CERTIFICACION, + SUBCONTRATA, + EMAIL_ADMINISTRACION, + VENCIMIENTO_FACTURAS_1, + VENCIMIENTO_FACTURAS_2, + VENCIMIENTO_FACTURAS_3) +AS +SELECT + V_CONTACTOS.ID, + V_CONTACTOS.ID_CATEGORIA, + V_CONTACTOS.NIF_CIF, + V_CONTACTOS.NOMBRE, + V_CONTACTOS.PERSONA_CONTACTO, + V_CONTACTOS.CALLE, + V_CONTACTOS.POBLACION, + V_CONTACTOS.PROVINCIA, + V_CONTACTOS.CODIGO_POSTAL, + V_CONTACTOS.TELEFONO_1, + V_CONTACTOS.TELEFONO_2, + V_CONTACTOS.MOVIL_1, + V_CONTACTOS.MOVIL_2, + V_CONTACTOS.FAX, + V_CONTACTOS.EMAIL_1, + V_CONTACTOS.EMAIL_2, + V_CONTACTOS.PAGINA_WEB, + V_CONTACTOS.NOTAS, + V_CONTACTOS.FECHA_ALTA, + V_CONTACTOS.FECHA_MODIFICACION, + V_CONTACTOS.USUARIO, + V_CONTACTOS.ID_EMPRESA, + V_CONTACTOS.REFERENCIA, + PROVEEDORES_DATOS.DESCUENTO, + PROVEEDORES_DATOS.DESCRIPCION_PROVEEDOR, + PROVEEDORES_DATOS.CODIGO_ASIGNADO, + PROVEEDORES_DATOS.GRUPO_PROVEEDOR, + PROVEEDORES_DATOS.REGIMEN_IVA, + PROVEEDORES_DATOS.ID_TIPO_IVA, + PROVEEDORES_DATOS.ID_FORMA_PAGO, + PROVEEDORES_DATOS.TIENDA_WEB, + PROVEEDORES_DATOS.HOMOLOGADO, + PROVEEDORES_DATOS.CERTIFICACION, + PROVEEDORES_DATOS.SUBCONTRATA, + PROVEEDORES_DATOS.EMAIL_ADMINISTRACION, + PROVEEDORES_DATOS.VENCIMIENTO_FACTURAS_1, + PROVEEDORES_DATOS.VENCIMIENTO_FACTURAS_2, + PROVEEDORES_DATOS.VENCIMIENTO_FACTURAS_3 + +FROM + V_CONTACTOS + INNER JOIN PROVEEDORES_DATOS ON (PROVEEDORES_DATOS.ID_PROVEEDOR = V_CONTACTOS.ID) +WHERE + V_CONTACTOS.ID_CATEGORIA = 2 +; + + + +/* View: V_REC_CLI_COMPENSADOS */ +CREATE VIEW V_REC_CLI_COMPENSADOS( + ID_RECIBO, + IMPORTE_TOTAL_COMPENSADO) +AS +select ID_RECIBO_COMPENSADO, SUM((IMPORTE + OTROS_GASTOS)) as IMPORTE_TOTAL +from RECIBOS_CLIENTE +where ID_RECIBO_COMPENSADO is not null +group by ID_RECIBO_COMPENSADO +; + + + +/* View: V_REC_PRO_COMPENSADOS */ +CREATE VIEW V_REC_PRO_COMPENSADOS( + ID_RECIBO, + IMPORTE_TOTAL_COMPENSADO) +AS +select ID_RECIBO_COMPENSADO, SUM((IMPORTE + OTROS_GASTOS)) as IMPORTE_TOTAL +from RECIBOS_PROVEEDOR +where ID_RECIBO_COMPENSADO is not null +group by ID_RECIBO_COMPENSADO +; + + +/* View: V_RECIBOS_CLIENTE */ +CREATE VIEW V_RECIBOS_CLIENTE( + ID, + ID_RECIBO_COMPENSADO, + REFERENCIA_REC_COMPENSADO, + REFERENCIA, + SITUACION, + ID_FACTURA, + ID_REMESA, + REFERENCIA_REMESA, + FECHA_EMISION, + FECHA_VENCIMIENTO, + DESCRIPCION, + OBSERVACIONES, + IMPORTE, + OTROS_GASTOS, + IMPORTE_TOTAL, + FECHA_FACTURA, + FORMA_PAGO_FACTURA, + IMPORTE_FACTURA, + ID_EMPRESA, + DATOS_BANCARIOS, + ID_CLIENTE, + NOMBRE_CLIENTE, + NIF_CIF_CLIENTE, + CALLE_CLIENTE, + POBLACION_CLIENTE, + CODIGO_POSTAL_CLIENTE, + PROVINCIA_CLIENTE, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO) +AS +SELECT RECIBOS_CLIENTE.ID, + RECIBOS_CLIENTE.ID_RECIBO_COMPENSADO, + RECIBO_COMPENSADO1.REFERENCIA, + RECIBOS_CLIENTE.REFERENCIA, + CASE + WHEN RECIBOS_CLIENTE.ID_RECIBO_COMPENSADO IS NULL + THEN TRIM(V_REC_CLI_SITUACION.SITUACION) + ELSE TRIM(RECIBO_COMPENSADO2.SITUACION) + END, + RECIBOS_CLIENTE.ID_FACTURA, + RECIBOS_CLIENTE.ID_REMESA, REMESAS_CLIENTE.REFERENCIA as REFERENCIA_REMESA, + RECIBOS_CLIENTE.FECHA_EMISION, RECIBOS_CLIENTE.FECHA_VENCIMIENTO, RECIBOS_CLIENTE.DESCRIPCION, + RECIBOS_CLIENTE.OBSERVACIONES, RECIBOS_CLIENTE.IMPORTE, RECIBOS_CLIENTE.OTROS_GASTOS, + COALESCE(RECIBOS_CLIENTE.IMPORTE, 0) + COALESCE(RECIBOS_CLIENTE.OTROS_GASTOS, 0) + COALESCE(V_REC_CLI_COMPENSADOS.IMPORTE_TOTAL_COMPENSADO, 0), + + FACTURAS_CLIENTE.FECHA_FACTURA, FORMAS_PAGO.DESCRIPCION, FACTURAS_CLIENTE.IMPORTE_TOTAL, + FACTURAS_CLIENTE.ID_EMPRESA, FACTURAS_CLIENTE.DATOS_BANCARIOS, + + CONTACTOS.ID as ID_CLIENTE, CONTACTOS.NOMBRE, CONTACTOS.NIF_CIF, CONTACTOS.CALLE, CONTACTOS.POBLACION, CONTACTOS.CODIGO_POSTAL, CONTACTOS.PROVINCIA, + + RECIBOS_CLIENTE.FECHA_ALTA, + RECIBOS_CLIENTE.FECHA_MODIFICACION, + RECIBOS_CLIENTE.USUARIO + +FROM RECIBOS_CLIENTE +LEFT JOIN V_REC_CLI_SITUACION +ON (V_REC_CLI_SITUACION.ID_RECIBO = RECIBOS_CLIENTE.ID) +LEFT JOIN FACTURAS_CLIENTE +ON (FACTURAS_CLIENTE.ID = RECIBOS_CLIENTE.ID_FACTURA) +LEFT JOIN FORMAS_PAGO +ON (FORMAS_PAGO.ID = FACTURAS_CLIENTE.ID_FORMA_PAGO) +LEFT JOIN CONTACTOS +ON (CONTACTOS.ID = FACTURAS_CLIENTE.ID_CLIENTE) +LEFT JOIN REMESAS_CLIENTE +ON (REMESAS_CLIENTE.ID = RECIBOS_CLIENTE.ID_REMESA) +LEFT JOIN V_REC_CLI_COMPENSADOS +ON (V_REC_CLI_COMPENSADOS.ID_RECIBO = RECIBOS_CLIENTE.ID) +LEFT JOIN RECIBOS_CLIENTE RECIBO_COMPENSADO1 +ON (RECIBO_COMPENSADO1.ID = RECIBOS_CLIENTE.ID_RECIBO_COMPENSADO) +LEFT JOIN V_REC_CLI_SITUACION RECIBO_COMPENSADO2 +ON (RECIBO_COMPENSADO2.ID_RECIBO = RECIBOS_CLIENTE.ID_RECIBO_COMPENSADO) +; + +/* View: V_RECIBOS_PROVEEDOR */ +CREATE VIEW V_RECIBOS_PROVEEDOR( + ID, + ID_RECIBO_COMPENSADO, + REFERENCIA_REC_COMPENSADO, + REFERENCIA, + REFERENCIA_PROVEEDOR, + SITUACION, + ID_FACTURA, + ID_REMESA, + REFERENCIA_REMESA, + FECHA_EMISION, + FECHA_VENCIMIENTO, + DESCRIPCION, + OBSERVACIONES, + IMPORTE, + OTROS_GASTOS, + IMPORTE_TOTAL, + REFERENCIA_FACTURA_PROV, + FECHA_FACTURA, + FORMA_PAGO_FACTURA, + IMPORTE_FACTURA, + ID_EMPRESA, + DATOS_BANCARIOS, + ID_PROVEEDOR, + NOMBRE_PROVEEDOR, + NIF_CIF_PROVEEDOR, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO) +AS +SELECT RECIBOS_PROVEEDOR.ID, + RECIBOS_PROVEEDOR.ID_RECIBO_COMPENSADO, + RECIBO_COMPENSADO1.REFERENCIA, + RECIBOS_PROVEEDOR.REFERENCIA, + RECIBOS_PROVEEDOR.REFERENCIA_PROVEEDOR, + CASE + WHEN RECIBOS_PROVEEDOR.ID_RECIBO_COMPENSADO IS NULL + THEN TRIM(V_REC_PRO_SITUACION.SITUACION) + ELSE TRIM(RECIBO_COMPENSADO2.SITUACION) + END, + RECIBOS_PROVEEDOR.ID_FACTURA, + RECIBOS_PROVEEDOR.ID_REMESA, REMESAS_PROVEEDOR.REFERENCIA as REFERENCIA_REMESA, + RECIBOS_PROVEEDOR.FECHA_EMISION, RECIBOS_PROVEEDOR.FECHA_VENCIMIENTO, RECIBOS_PROVEEDOR.DESCRIPCION, + RECIBOS_PROVEEDOR.OBSERVACIONES, RECIBOS_PROVEEDOR.IMPORTE, RECIBOS_PROVEEDOR.OTROS_GASTOS, + COALESCE(RECIBOS_PROVEEDOR.IMPORTE, 0) + COALESCE(RECIBOS_PROVEEDOR.OTROS_GASTOS, 0) + COALESCE(V_REC_PRO_COMPENSADOS.IMPORTE_TOTAL_COMPENSADO, 0), + + FACTURAS_PROVEEDOR.REFERENCIA_PROVEEDOR, FACTURAS_PROVEEDOR.FECHA_FACTURA, + FORMAS_PAGO.DESCRIPCION, FACTURAS_PROVEEDOR.IMPORTE_TOTAL, + FACTURAS_PROVEEDOR.ID_EMPRESA, FACTURAS_PROVEEDOR.DATOS_BANCARIOS, + + CONTACTOS.ID as ID_PROVEEDOR, CONTACTOS.NOMBRE, CONTACTOS.NIF_CIF, + + RECIBOS_PROVEEDOR.FECHA_ALTA, + RECIBOS_PROVEEDOR.FECHA_MODIFICACION, + RECIBOS_PROVEEDOR.USUARIO + +FROM RECIBOS_PROVEEDOR +LEFT JOIN V_REC_PRO_SITUACION +ON (V_REC_PRO_SITUACION.ID_RECIBO = RECIBOS_PROVEEDOR.ID) +LEFT JOIN FACTURAS_PROVEEDOR +ON (FACTURAS_PROVEEDOR.ID = RECIBOS_PROVEEDOR.ID_FACTURA) +LEFT JOIN FORMAS_PAGO +ON (FORMAS_PAGO.ID = FACTURAS_PROVEEDOR.ID_FORMA_PAGO) +LEFT JOIN CONTACTOS +ON (CONTACTOS.ID = FACTURAS_PROVEEDOR.ID_PROVEEDOR) +LEFT JOIN REMESAS_PROVEEDOR +ON (REMESAS_PROVEEDOR.ID = RECIBOS_PROVEEDOR.ID_REMESA) +LEFT JOIN V_REC_PRO_COMPENSADOS +ON (V_REC_PRO_COMPENSADOS.ID_RECIBO = RECIBOS_PROVEEDOR.ID) +LEFT JOIN RECIBOS_PROVEEDOR RECIBO_COMPENSADO1 +ON (RECIBO_COMPENSADO1.ID = RECIBOS_PROVEEDOR.ID_RECIBO_COMPENSADO) +LEFT JOIN V_REC_PRO_SITUACION RECIBO_COMPENSADO2 +ON (RECIBO_COMPENSADO2.ID_RECIBO = RECIBOS_PROVEEDOR.ID_RECIBO_COMPENSADO) +; + +CREATE VIEW V_REMESAS_CLIENTE( + ID, + ID_EMPRESA, + REFERENCIA, + TIPO, + FECHA_REMESA, + DESCRIPCION, + ID_DATOS_BANCO, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + NOMBRE, + ENTIDAD, + SUCURSAL, + DC, + CUENTA, + SUFIJO_N19, + SUFIJO_N58, + IMPORTE_TOTAL) +AS +SELECT + REMESAS_CLIENTE.ID, + REMESAS_CLIENTE.ID_EMPRESA, + REMESAS_CLIENTE.REFERENCIA, + REMESAS_CLIENTE.TIPO, + REMESAS_CLIENTE.FECHA_REMESA, + REMESAS_CLIENTE.DESCRIPCION, + REMESAS_CLIENTE.ID_DATOS_BANCO, + REMESAS_CLIENTE.FECHA_ALTA, + REMESAS_CLIENTE.FECHA_MODIFICACION, + REMESAS_CLIENTE.USUARIO, + EMPRESAS_DATOS_BANCO.NOMBRE, + EMPRESAS_DATOS_BANCO.ENTIDAD, + EMPRESAS_DATOS_BANCO.SUCURSAL, + EMPRESAS_DATOS_BANCO.DC, + EMPRESAS_DATOS_BANCO.CUENTA, + EMPRESAS_DATOS_BANCO.SUFIJO_N19, + EMPRESAS_DATOS_BANCO.SUFIJO_N58, + SUM(COALESCE(RECIBOS_CLIENTE.IMPORTE,0) + COALESCE(RECIBOS_CLIENTE.OTROS_GASTOS,0) + COALESCE(V_REC_CLI_COMPENSADOS.IMPORTE_TOTAL_COMPENSADO,0)) as IMPORTE_TOTAL + +FROM + REMESAS_CLIENTE + LEFT OUTER JOIN EMPRESAS_DATOS_BANCO ON (EMPRESAS_DATOS_BANCO.ID = REMESAS_CLIENTE.ID_DATOS_BANCO) + LEFT OUTER JOIN RECIBOS_CLIENTE ON (RECIBOS_CLIENTE.ID_REMESA = REMESAS_CLIENTE.ID) + LEFT OUTER JOIN V_REC_CLI_COMPENSADOS ON (V_REC_CLI_COMPENSADOS.ID_RECIBO = RECIBOS_CLIENTE.ID) +GROUP BY 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 +; + +CREATE VIEW V_REMESAS_PROVEEDOR( + ID, + ID_EMPRESA, + REFERENCIA, + TIPO, + FECHA_REMESA, + DESCRIPCION, + ID_DATOS_BANCO, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + NOMBRE, + ENTIDAD, + SUCURSAL, + DC, + CUENTA, + SUFIJO_N19, + SUFIJO_N58, + IMPORTE_TOTAL) +AS +SELECT + REMESAS_PROVEEDOR.ID, + REMESAS_PROVEEDOR.ID_EMPRESA, + REMESAS_PROVEEDOR.REFERENCIA, + REMESAS_PROVEEDOR.TIPO, + REMESAS_PROVEEDOR.FECHA_REMESA, + REMESAS_PROVEEDOR.DESCRIPCION, + REMESAS_PROVEEDOR.ID_DATOS_BANCO, + REMESAS_PROVEEDOR.FECHA_ALTA, + REMESAS_PROVEEDOR.FECHA_MODIFICACION, + REMESAS_PROVEEDOR.USUARIO, + EMPRESAS_DATOS_BANCO.NOMBRE, + EMPRESAS_DATOS_BANCO.ENTIDAD, + EMPRESAS_DATOS_BANCO.SUCURSAL, + EMPRESAS_DATOS_BANCO.DC, + EMPRESAS_DATOS_BANCO.CUENTA, + EMPRESAS_DATOS_BANCO.SUFIJO_N19, + EMPRESAS_DATOS_BANCO.SUFIJO_N58, + SUM(COALESCE(RECIBOS_PROVEEDOR.IMPORTE,0) + COALESCE(RECIBOS_PROVEEDOR.OTROS_GASTOS,0) + COALESCE(V_REC_PRO_COMPENSADOS.IMPORTE_TOTAL_COMPENSADO,0)) as IMPORTE_TOTAL + +FROM + REMESAS_PROVEEDOR + LEFT OUTER JOIN EMPRESAS_DATOS_BANCO ON (EMPRESAS_DATOS_BANCO.ID = REMESAS_PROVEEDOR.ID_DATOS_BANCO) + LEFT OUTER JOIN RECIBOS_PROVEEDOR ON (RECIBOS_PROVEEDOR.ID_REMESA = REMESAS_PROVEEDOR.ID) + LEFT OUTER JOIN V_REC_PRO_COMPENSADOS ON (V_REC_PRO_COMPENSADOS.ID_RECIBO = RECIBOS_PROVEEDOR.ID) +GROUP BY 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 +; + +/******************************************************************************/ +/**** Primary Keys ****/ +/******************************************************************************/ + +ALTER TABLE AGENTES_COMISIONES ADD CONSTRAINT PK_AGENTES_COMISIONES PRIMARY KEY (ID); +ALTER TABLE ALBARANES_CLIENTE ADD CONSTRAINT PK_ALBARAN_CLIENTE PRIMARY KEY (ID); +ALTER TABLE ALBARANES_CLIENTE_DETALLES ADD CONSTRAINT PK_ALBARANES_CLIENTE_DETALLES PRIMARY KEY (ID); +ALTER TABLE ALBARANES_PROVEEDOR ADD CONSTRAINT PK_ALBARAN_PROVEEDOR PRIMARY KEY (ID); +ALTER TABLE ALBARANES_PROVEEDOR_DETALLES ADD CONSTRAINT PK_ALBARANES_PROVEEDOR_DETALLES PRIMARY KEY (ID); +ALTER TABLE ALMACENES ADD CONSTRAINT PK_ALMACENES PRIMARY KEY (ID); +ALTER TABLE ARTICULOS ADD CONSTRAINT PK_ARTICULOS PRIMARY KEY (ID); +ALTER TABLE ARTICULOS_PROVEEDORES ADD CONSTRAINT PK_ARTICULOS_PROVEEDORES PRIMARY KEY (ID); +ALTER TABLE CATEGORIAS ADD CONSTRAINT PK_CATEGORIAS PRIMARY KEY (ID); +ALTER TABLE CLIENTES_DATOS ADD CONSTRAINT PK_CLIENTES_DATOS PRIMARY KEY (ID_CLIENTE); +ALTER TABLE CLIENTES_DTOS_PROVEEDORES ADD CONSTRAINT PK_CLIENTES_DTOS_PROV PRIMARY KEY (ID); +ALTER TABLE CLIENTES_GRUPOS ADD CONSTRAINT PK_CLIENTES_GRUPOS PRIMARY KEY (ID); +ALTER TABLE COMISIONES_LIQUIDADAS ADD CONSTRAINT PK_COMISIONES_LIQUIDADAS PRIMARY KEY (ID); +ALTER TABLE CONFIGURACION ADD CONSTRAINT PK_CONFIGURACION PRIMARY KEY (ID); +ALTER TABLE CONTACTOS ADD CONSTRAINT PK_CONTACTOS PRIMARY KEY (ID); +ALTER TABLE CONTACTOS_CATEGORIAS ADD CONSTRAINT PK_CONTACTOS_CATEGORIAS PRIMARY KEY (ID_CONTACTO, ID_CATEGORIA); +ALTER TABLE CONTACTOS_DATOS_BANCO ADD CONSTRAINT PK_CONTACTOS_DATOS_BANCO PRIMARY KEY (ID); +ALTER TABLE CONTACTOS_DATOS_PERSONAL ADD CONSTRAINT PK_CONTACTOS_DATOS_PER PRIMARY KEY (ID); +ALTER TABLE CONTACTOS_DIRECCIONES ADD CONSTRAINT PK_CONTACTOS_DIR PRIMARY KEY (ID); +ALTER TABLE EMPLEADOS_DATOS ADD CONSTRAINT PK_EMPLEADOS_DATOS PRIMARY KEY (ID_EMPLEADO); +ALTER TABLE AGENTES_DATOS ADD CONSTRAINT PK_AGENTES_DATOS PRIMARY KEY (ID_AGENTE); +ALTER TABLE EMPLEADOS_GRUPOS ADD CONSTRAINT PK_EMPLEADOS_GRUPOS PRIMARY KEY (ID); +ALTER TABLE EMPRESAS ADD CONSTRAINT PK_EMPRESAS PRIMARY KEY (ID); +ALTER TABLE EMPRESAS_CONTACTOS ADD CONSTRAINT PK_EMPRESAS_CONTACTOS PRIMARY KEY (ID); +ALTER TABLE EMPRESAS_DATOS_BANCO ADD CONSTRAINT PK_EMPRESAS_DATOS_BANCO PRIMARY KEY (ID); +ALTER TABLE EMPRESAS_USUARIOS ADD CONSTRAINT PK_EMPRESAS_USUARIOS PRIMARY KEY (ID); +ALTER TABLE FABRICANTES ADD PRIMARY KEY (ID); +ALTER TABLE FACTURAS_CLIENTE ADD CONSTRAINT PK_FACTURAS_CLIENTE PRIMARY KEY (ID); +ALTER TABLE FACTURAS_CLIENTE_DETALLES ADD CONSTRAINT PK_FACTURAS_CLIENTE_DETALLES PRIMARY KEY (ID); +ALTER TABLE FACTURAS_PROVEEDOR ADD CONSTRAINT PK_FACTURAS_PROVEEDOR PRIMARY KEY (ID); +ALTER TABLE FACTURAS_PROVEEDOR_DETALLES ADD CONSTRAINT PK_FACTURAS_PROVEEDOR_DETALLES PRIMARY KEY (ID); +ALTER TABLE FACTURAS_PROVEEDOR_PEDIDOS ADD CONSTRAINT PK_FACTURAS_PROVEEDOR_PEDIDOS PRIMARY KEY (ID); +ALTER TABLE FAMILIAS ADD CONSTRAINT PK_FAMILIAS PRIMARY KEY (ID); +ALTER TABLE FORMAS_PAGO ADD PRIMARY KEY (ID); +ALTER TABLE FORMAS_PAGO_PLAZOS ADD PRIMARY KEY (ID); +ALTER TABLE INFORMES ADD CONSTRAINT PK_INFORMES PRIMARY KEY (ID); +ALTER TABLE MOVIMIENTOS ADD CONSTRAINT PK_MOVIMIENTOS PRIMARY KEY (ID); +ALTER TABLE OBRAS_EJECUCIONES ADD CONSTRAINT PK_OBRAS_EJE PRIMARY KEY (ID); +ALTER TABLE OBRAS_EJECUCIONES_PRESUPUESTOS ADD CONSTRAINT PK_OBRAS_EJE_PRE PRIMARY KEY (ID); +ALTER TABLE OBRAS_EJECUCIONES_PEDIDOS_PROV ADD CONSTRAINT PK_OBRAS_EJE_PED_PROV PRIMARY KEY (ID); +ALTER TABLE PAGOS_CLIENTE ADD CONSTRAINT PK_PAGOS_CLIENTE PRIMARY KEY (ID); +ALTER TABLE PAGOS_PROVEEDOR ADD CONSTRAINT PK_PAGOS_PROVEEDOR PRIMARY KEY (ID); +ALTER TABLE PEDIDOS_CLIENTE ADD CONSTRAINT PK_PEDIDOS_CLIENTE PRIMARY KEY (ID); +ALTER TABLE PEDIDOS_CLIENTE_DETALLES ADD CONSTRAINT PK_PEDIDOS_CLIENTE_DETALLES PRIMARY KEY (ID); +ALTER TABLE PEDIDOS_PROVEEDOR ADD CONSTRAINT PK_PEDIDOS_PROVEEDOR PRIMARY KEY (ID); +ALTER TABLE PEDIDOS_PROVEEDOR_DETALLES ADD CONSTRAINT PK_PEDIDOS_PROVEEDOR_DETALLES PRIMARY KEY (ID); +ALTER TABLE PERMISOS ADD CONSTRAINT PK_PERMISOS PRIMARY KEY (ID); +ALTER TABLE PERMISOSEX ADD CONSTRAINT PK_PERMISOSEX PRIMARY KEY (ID); +ALTER TABLE POBLACIONES ADD CONSTRAINT PK_POBLACIONES PRIMARY KEY (ID); +ALTER TABLE PRESUPUESTOS_CLIENTE ADD CONSTRAINT PK_PRESUPUESTOS_CLIENTE PRIMARY KEY (ID); +ALTER TABLE PRESUPUESTOS_CLIENTE_DETALLES ADD CONSTRAINT PK_PRESUPUESTOS_CLIENTE_DETALLE PRIMARY KEY (ID); +ALTER TABLE PROVEEDORES_DATOS ADD CONSTRAINT PK_PROVEEDORES_DATOS PRIMARY KEY (ID_PROVEEDOR); +ALTER TABLE PROVEEDORES_GRUPOS ADD CONSTRAINT PK_PROVEEDORES_GRUPOS PRIMARY KEY (ID); +ALTER TABLE PROVINCIAS ADD CONSTRAINT PK_PROVINCIAS PRIMARY KEY (ID); +ALTER TABLE RECIBOS_CLIENTE ADD CONSTRAINT PK_RECIBOS_CLIENTE PRIMARY KEY (ID); +ALTER TABLE RECIBOS_PROVEEDOR ADD CONSTRAINT PK_RECIBOS_PROVEEDOR PRIMARY KEY (ID); +ALTER TABLE REFERENCIAS ADD CONSTRAINT PK_REFERENCIAS PRIMARY KEY (ID); +ALTER TABLE REMESAS_CLIENTE ADD CONSTRAINT PK_REMESAS_CLIENTE PRIMARY KEY (ID); +ALTER TABLE REMESAS_PROVEEDOR ADD CONSTRAINT PK_REMESAS_PROVEEDOR PRIMARY KEY (ID); +ALTER TABLE TIENDA_WEB ADD CONSTRAINT PK_TIENDA_WEB PRIMARY KEY (ID); +ALTER TABLE TIPOS_IVA ADD PRIMARY KEY (ID); +ALTER TABLE UNIDADES_MEDIDA ADD PRIMARY KEY (ID); +ALTER TABLE USUARIOS ADD CONSTRAINT PK_USUARIOS PRIMARY KEY (ID); +ALTER TABLE USUARIOS_LOGON ADD CONSTRAINT PK_USUARIOS_LOGON PRIMARY KEY (LOGONID); + + +/******************************************************************************/ +/**** Foreign Keys ****/ +/******************************************************************************/ + +ALTER TABLE ALBARANES_CLIENTE ADD CONSTRAINT FK_ALBARAN_CLIENTE1 FOREIGN KEY (ID_CLIENTE) REFERENCES CONTACTOS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE ALBARANES_CLIENTE ADD CONSTRAINT FK_ALBARAN_CLIENTE2 FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE ALBARANES_CLIENTE ADD CONSTRAINT FK_ALBARAN_CLIENTE3 FOREIGN KEY (ID_PEDIDO) REFERENCES PEDIDOS_CLIENTE (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE ALBARANES_CLIENTE ADD CONSTRAINT FK_ALBARAN_CLIENTE4 FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_CLIENTE (ID) ON DELETE SET NULL ON UPDATE SET NULL; +ALTER TABLE ALBARANES_PROVEEDOR ADD CONSTRAINT FK_ALBARANES_PROVEEDOR3 FOREIGN KEY (ID_PEDIDO) REFERENCES PEDIDOS_PROVEEDOR (ID) ON DELETE NO ACTION ON UPDATE CASCADE; +ALTER TABLE ALBARANES_PROVEEDOR ADD CONSTRAINT FK_ALBARANES_PROVEEDOR4 FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_PROVEEDOR (ID) ON DELETE SET NULL ON UPDATE CASCADE; +ALTER TABLE ALBARANES_PROVEEDOR ADD CONSTRAINT FK_ALBARAN_PROVEEDOR1 FOREIGN KEY (ID_PROVEEDOR) REFERENCES CONTACTOS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE ALBARANES_PROVEEDOR ADD CONSTRAINT FK_ALBARAN_PROVEEDOR2 FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE ALMACENES ADD CONSTRAINT FK_ALMACENES_EMPRESAS FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE ARTICULOS ADD CONSTRAINT FK_ARTICULOS_EMPRESA FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE COMISIONES_LIQUIDADAS ADD CONSTRAINT FK_COMISIONES_LIQUIDADAS FOREIGN KEY (ID_AGENTE) REFERENCES CONTACTOS (ID); +ALTER TABLE EMPRESAS_CONTACTOS ADD CONSTRAINT FK_EMPRESAS_CONTACTOS FOREIGN KEY (ID_CONTACTO) REFERENCES CONTACTOS (ID) ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE EMPRESAS_DATOS_BANCO ADD CONSTRAINT FK_EMPRESAS_DATOS_BANCO FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE FACTURAS_CLIENTE ADD CONSTRAINT FK_FACTURAS_CLIENTE_EMPRESAS FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE FACTURAS_PROVEEDOR ADD CONSTRAINT FK_FACTURAS_PROVEEDOR_EMPRESAS FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE MOVIMIENTOS ADD CONSTRAINT FK_MOVIMIENTOS2 FOREIGN KEY (ID_ALMACEN) REFERENCES ALMACENES (ID); +ALTER TABLE OBRAS_EJECUCIONES_PRESUPUESTOS ADD CONSTRAINT FK_OBRAS_EJE_PRE_1 FOREIGN KEY (ID_EJECUCION) REFERENCES OBRAS_EJECUCIONES (ID); +ALTER TABLE OBRAS_EJECUCIONES_PRESUPUESTOS ADD CONSTRAINT FK_OBRAS_EJE_PRE_2 FOREIGN KEY (ID_PRESUPUESTO) REFERENCES PRESUPUESTOS_CLIENTE (ID); +ALTER TABLE OBRAS_EJECUCIONES_PEDIDOS_PROV ADD CONSTRAINT FK_OBRAS_EJE_PED_PROV_1 FOREIGN KEY (ID_EJECUCION) REFERENCES OBRAS_EJECUCIONES (ID); +ALTER TABLE OBRAS_EJECUCIONES_PEDIDOS_PROV ADD CONSTRAINT FK_OBRAS_EJE_PED_PROV_2 FOREIGN KEY (ID_PEDIDO) REFERENCES PEDIDOS_PROVEEDOR (ID); +ALTER TABLE OBRAS_EJECUCIONES_PEDIDOS_PROV ADD CONSTRAINT FK_OBRAS_EJE_PED_PROV_3 FOREIGN KEY (ID_PRESUPUESTO) REFERENCES PRESUPUESTOS_CLIENTE (ID); +ALTER TABLE PAGOS_CLIENTE ADD CONSTRAINT FK_PAGOS_CLIENTE FOREIGN KEY (ID_RECIBO) REFERENCES RECIBOS_CLIENTE (ID); +ALTER TABLE PAGOS_PROVEEDOR ADD CONSTRAINT FK_PAGOS_PROVEEDOR FOREIGN KEY (ID_RECIBO) REFERENCES RECIBOS_PROVEEDOR (ID); +ALTER TABLE PEDIDOS_CLIENTE ADD CONSTRAINT FK_PEDIDOS_CLIENTE FOREIGN KEY (ID_CLIENTE) REFERENCES CONTACTOS (ID); +ALTER TABLE PEDIDOS_CLIENTE ADD CONSTRAINT FK_PEDIDOS_CLIENTE_ID_EMPRESA FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID); +ALTER TABLE PEDIDOS_PROVEEDOR ADD CONSTRAINT FK_PEDIDOS_PROVEEDOR FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID); +ALTER TABLE PEDIDOS_PROVEEDOR ADD CONSTRAINT FK_PEDIDOS_PROVEEDOR2 FOREIGN KEY (ID_PROVEEDOR) REFERENCES CONTACTOS (ID); +ALTER TABLE PEDIDOS_PROVEEDOR ADD CONSTRAINT FK_PEDIDOS_PROVEEDOR_1 FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_PROVEEDOR (ID) ON DELETE SET NULL ON UPDATE CASCADE; +ALTER TABLE PRESUPUESTOS_CLIENTE ADD CONSTRAINT FK_PRESUPUESTOS_CLIENTE_1 FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID); +ALTER TABLE PRESUPUESTOS_CLIENTE ADD CONSTRAINT FK_PRESUPUESTOS_CLIENTE_2 FOREIGN KEY (ID_CLIENTE) REFERENCES CONTACTOS (ID); +ALTER TABLE PRESUPUESTOS_CLIENTE ADD CONSTRAINT FK_PRESUPUESTOS_CLIENTE_3 FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_CLIENTE (ID) ON DELETE SET NULL ON UPDATE SET NULL; +ALTER TABLE RECIBOS_CLIENTE ADD CONSTRAINT FK_RECIBOS_CLIENTE FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_CLIENTE (ID) ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE RECIBOS_CLIENTE ADD CONSTRAINT FK_RECIBOS_CLIENTE2 FOREIGN KEY (ID_REMESA) REFERENCES REMESAS_CLIENTE (ID) ON DELETE SET NULL ON UPDATE SET NULL; +ALTER TABLE RECIBOS_PROVEEDOR ADD CONSTRAINT FK_RECIBOS_PROVEEDOR FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_PROVEEDOR (ID) ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE RECIBOS_PROVEEDOR ADD CONSTRAINT FK_RECIBOS_PROVEEDOR1 FOREIGN KEY (ID_REMESA) REFERENCES REMESAS_PROVEEDOR (ID) ON DELETE SET NULL ON UPDATE SET NULL; +ALTER TABLE REMESAS_CLIENTE ADD CONSTRAINT FK_REMESAS_CLIENTE FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID); +ALTER TABLE REMESAS_PROVEEDOR ADD CONSTRAINT FK_REMESAS_PROVEEDOR FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID); +ALTER TABLE TIENDA_WEB ADD CONSTRAINT FK_EMPRESAS_TIENDA_WEB FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE CASCADE ON UPDATE CASCADE; + + +/******************************************************************************/ +/**** Indices ****/ +/******************************************************************************/ + +CREATE INDEX IDX_AGENTES_COMISIONES1 ON AGENTES_COMISIONES (ID_AGENTE); +CREATE INDEX IDX_AGENTES_COMISIONES2 ON AGENTES_COMISIONES (ID_PROVEEDOR); +CREATE INDEX IDX_ALBARANES_CLIENTE1 ON ALBARANES_CLIENTE (ID_FORMA_PAGO); +CREATE INDEX IDX_ALBARANES_CLIENTE2 ON ALBARANES_CLIENTE (TIPO); +CREATE INDEX ALBARANES_CLIENTE_IDX1 ON ALBARANES_CLIENTE (ID_ALMACEN); +CREATE INDEX ALBARANES_CLIENTE_IDX2 ON ALBARANES_CLIENTE (ID_DIRECCION); +CREATE INDEX ALBARANES_CLIENTE_IDX3 ON ALBARANES_CLIENTE (FECHA_ALBARAN); +CREATE INDEX IDX_ALBARANES_CLIENTE_DETALLES ON ALBARANES_CLIENTE_DETALLES (ID_ARTICULO); +CREATE INDEX IDX_ALBARANES_CLIENTE_DETALLES1 ON ALBARANES_CLIENTE_DETALLES (ID_ALBARAN); +CREATE INDEX ALBARANES_CLIENTE_DETALLES_IDX1 ON ALBARANES_CLIENTE_DETALLES (ID_PEDIDO); +CREATE INDEX IDX_ALBARANES_PROVEEDOR1 ON ALBARANES_PROVEEDOR (ID_ALMACEN); +CREATE INDEX IDX_ALBARANES_PROVEEDOR2 ON ALBARANES_PROVEEDOR (ID_FORMA_PAGO); +CREATE INDEX IDX_ALBARANES_PROVEEDOR3 ON ALBARANES_PROVEEDOR (TIPO); +CREATE INDEX ALBARANES_PROVEEDOR_IDX1 ON ALBARANES_PROVEEDOR (ID_ALBARAN); +CREATE INDEX ALBARANES_PROVEEDOR_IDX2 ON ALBARANES_PROVEEDOR (FECHA_ALBARAN); +CREATE INDEX IDX_ALBARANES_PROV_DETALLES ON ALBARANES_PROVEEDOR_DETALLES (ID_ALBARAN); +CREATE INDEX IDX_ALBARANES_PROV_DETALLES1 ON ALBARANES_PROVEEDOR_DETALLES (ID_ARTICULO); +CREATE INDEX ALBARANES_PROVEEDOR_DETALL_IDX1 ON ALBARANES_PROVEEDOR_DETALLES (ID_PEDIDO); +CREATE INDEX ALMACENES_IDX1 ON ALMACENES (TIPO_ALMACEN); +CREATE INDEX ARTICULOS_PROVEEDORES_IDX1 ON ARTICULOS_PROVEEDORES (ID_ARTICULO); +CREATE INDEX ARTICULOS_PROVEEDORES_IDX2 ON ARTICULOS_PROVEEDORES (ID_PROVEEDOR); +CREATE INDEX IDX_CLIENTES_DATOS ON CLIENTES_DATOS (ID_TIPO_IVA); +CREATE INDEX IDX_CLIENTES_DATOS1 ON CLIENTES_DATOS (ID_FORMA_PAGO); +CREATE INDEX IDX_CLIENTES_DATOS_ID_AGENTE ON CLIENTES_DATOS (ID_AGENTE); +CREATE INDEX IDX_CLIENTES_DTOS_PROV_ID_CLI ON CLIENTES_DTOS_PROVEEDORES (ID_CLIENTE); +CREATE INDEX IDX_CLIENTES_DTOS_PROV_ID_PROV ON CLIENTES_DTOS_PROVEEDORES (ID_PROVEEDOR); +CREATE INDEX IDX_COMISIONES_LIQUIDADAS ON COMISIONES_LIQUIDADAS (ID_EMPRESA); +CREATE INDEX IDX_CONFIGURACION ON CONFIGURACION (ID_EMPRESA); +CREATE INDEX IDX_CONTACTOS_CATEGORIAS ON CONTACTOS_CATEGORIAS (ID_CONTACTO); +CREATE INDEX IDX_CONTACTOS_CATEGORIAS1 ON CONTACTOS_CATEGORIAS (ID_CATEGORIA); +CREATE INDEX IDX_CONTACTOS_DATOS_BANCO ON CONTACTOS_DATOS_BANCO (ID_CONTACTO); +CREATE INDEX IDX_CONTACTOS_PER_ID_CONTACTO ON CONTACTOS_DATOS_PERSONAL (ID_CONTACTO); +CREATE INDEX IDX_CONTACTOS_DIR_ID_CONTACTO ON CONTACTOS_DIRECCIONES (ID_CONTACTO); +CREATE INDEX IDX_EMPRESAS_CONTACTOS ON EMPRESAS_CONTACTOS (ID_EMPRESA, ID_CONTACTO); +CREATE INDEX IDX_EMPRESAS_USUARIOS ON EMPRESAS_USUARIOS (ID_EMPRESA, ID_USUARIO); +CREATE INDEX IDX_FACTURAS_CLIENTE ON FACTURAS_CLIENTE (ID_FORMA_PAGO); +CREATE INDEX IDX_FACTURAS_CLIENTE1 ON FACTURAS_CLIENTE (ID_TIPO_IVA); +CREATE INDEX IDX_FACTURAS_CLIENTE2 ON FACTURAS_CLIENTE (ID_COMISION_LIQUIDADA); +CREATE INDEX IDX_FACTURAS_CLIENTE3 ON FACTURAS_CLIENTE (ID_CLIENTE); +CREATE INDEX FACTURAS_CLIENTE_IDX1 ON FACTURAS_CLIENTE (FECHA_FACTURA); +CREATE INDEX FACTURAS_CLIENTE_IDX2 ON FACTURAS_CLIENTE (FECHA_VENCIMIENTO); +CREATE INDEX IDX_FACTURAS_CLIENTE_DETALLES1 ON FACTURAS_CLIENTE_DETALLES (ID_FACTURA); +CREATE INDEX IDX_FACTURAS_CLIENTE_DETALLES2 ON FACTURAS_CLIENTE_DETALLES (ID_ARTICULO); +CREATE INDEX IDX_FACTURAS_PROVEEDOR ON FACTURAS_PROVEEDOR (ID_PROVEEDOR); +CREATE INDEX IDX_FACTURAS_PROVEEDOR1 ON FACTURAS_PROVEEDOR (ID_FORMA_PAGO); +CREATE INDEX IDX_FACTURAS_PROVEEDOR2 ON FACTURAS_PROVEEDOR (ID_TIPO_IVA); +CREATE INDEX FACTURAS_PROVEEDOR_IDX1 ON FACTURAS_PROVEEDOR (FECHA_FACTURA); +CREATE INDEX FACTURAS_PROVEEDOR_IDX2 ON FACTURAS_PROVEEDOR (FECHA_VENCIMIENTO); +CREATE INDEX IDX_FACTURAS_PROVEEDOR_DETALLES ON FACTURAS_PROVEEDOR_DETALLES (ID_ARTICULO); +CREATE INDEX FACTURAS_PROVEEDOR_DETALLE_IDX1 ON FACTURAS_PROVEEDOR_DETALLES (ID_FACTURA); +CREATE INDEX IDX_FACTURAS_PROVEEDOR_PEDIDOS ON FACTURAS_PROVEEDOR_PEDIDOS (ID_PEDIDO); +CREATE INDEX FACTURAS_PROVEEDOR_PEDIDOS_IDX1 ON FACTURAS_PROVEEDOR_PEDIDOS (ID_FACTURA); +CREATE INDEX IDX_FORMAS_PAGO_PLAZOS ON FORMAS_PAGO_PLAZOS (ID_FORMA_PAGO); +CREATE INDEX IDX_INFORMES ON INFORMES (ID_EMPRESA); +CREATE INDEX IDX_MOVIMIENTOS ON MOVIMIENTOS (TIPO); +CREATE INDEX MOVIMIENTOS_IDX1 ON MOVIMIENTOS (ID_ARTICULO); +CREATE INDEX MOVIMIENTOS_IDX2 ON MOVIMIENTOS (FECHA_MOVIMIENTO); +CREATE INDEX MOVIMIENTOS_IDX3 ON MOVIMIENTOS (ID_ALMACEN_RESERVA); +CREATE INDEX OBRAS_DATOS_IDX1 ON OBRAS_DATOS (ID_ALMACEN); +CREATE INDEX OBRAS_DATOS_IDX2 ON OBRAS_DATOS (ID_CLIENTE); +CREATE INDEX PAGOS_CLIENTE_IDX1 ON PAGOS_CLIENTE (FECHA_PAGO); +CREATE INDEX PAGOS_PROVEEDOR_IDX1 ON PAGOS_PROVEEDOR (FECHA_PAGO); +CREATE INDEX IDX_PEDIDOS_CLIENTE ON PEDIDOS_CLIENTE (ID_FORMA_PAGO); +CREATE INDEX PEDIDOS_CLIENTE_IDX1 ON PEDIDOS_CLIENTE (FECHA_PEDIDO); +CREATE INDEX IDX_PEDIDOS_CLIENTE_DETALLES ON PEDIDOS_CLIENTE_DETALLES (ID_PEDIDO); +CREATE INDEX IDX_PEDIDOS_CLIENTE_DETALLES1 ON PEDIDOS_CLIENTE_DETALLES (ID_ARTICULO); +CREATE INDEX IDX_PEDIDOS_PROVEEDOR ON PEDIDOS_PROVEEDOR (ID_PEDIDO_CLIENTE); +CREATE INDEX IDX_PEDIDOS_PROVEEDOR1 ON PEDIDOS_PROVEEDOR (ID_ALMACEN); +CREATE INDEX IDX_PEDIDOS_PROVEEDOR2 ON PEDIDOS_PROVEEDOR (ID_FORMA_PAGO); +CREATE INDEX IDX_PEDIDOS_PROVEEDOR3 ON PEDIDOS_PROVEEDOR (ID_OBRA); +CREATE INDEX IDX_PEDIDOS_PROVEEDOR4 ON PEDIDOS_PROVEEDOR (ID_PROVEEDOR); +CREATE INDEX PEDIDOS_PROVEEDOR_IDX1 ON PEDIDOS_PROVEEDOR (FECHA_PEDIDO); +CREATE INDEX IDX_PEDIDOS_PROVEEDOR_DETALLES ON PEDIDOS_PROVEEDOR_DETALLES (ID_ARTICULO); +CREATE INDEX PEDIDOS_PROVEEDOR_DETALLES_IDX1 ON PEDIDOS_PROVEEDOR_DETALLES (ID_PEDIDO); +CREATE INDEX POBLACIONES_IDX1 ON POBLACIONES (ID_PROVINCIA); +CREATE INDEX PRESUPUESTOS_CLIENTE_IDX1 ON PRESUPUESTOS_CLIENTE (FECHA_PRESUPUESTO); +CREATE INDEX PRESUPUESTOS_CLIENTE_DETAL_IDX1 ON PRESUPUESTOS_CLIENTE_DETALLES (ID_PRESUPUESTO); +CREATE INDEX PRESUPUESTOS_CLIENTE_DETAL_IDX2 ON PRESUPUESTOS_CLIENTE_DETALLES (ID_ARTICULO); +CREATE INDEX IDX_PROVEEDORES_DATOS ON PROVEEDORES_DATOS (ID_TIPO_IVA); +CREATE INDEX IDX_PROVEEDORES_DATOS1 ON PROVEEDORES_DATOS (ID_FORMA_PAGO); +CREATE INDEX IDX_RECIBOS_CLIENTE ON RECIBOS_CLIENTE (ID_RECIBO_COMPENSADO); +CREATE INDEX RECIBOS_CLIENTE_IDX1 ON RECIBOS_CLIENTE (FECHA_EMISION); +CREATE INDEX RECIBOS_CLIENTE_IDX2 ON RECIBOS_CLIENTE (FECHA_VENCIMIENTO); +CREATE INDEX IDX_RECIBOS_PROVEEDOR ON RECIBOS_PROVEEDOR (ID_RECIBO_COMPENSADO); +CREATE INDEX RECIBOS_PROVEEDOR_IDX1 ON RECIBOS_PROVEEDOR (FECHA_EMISION); +CREATE INDEX RECIBOS_PROVEEDOR_IDX2 ON RECIBOS_PROVEEDOR (FECHA_VENCIMIENTO); +CREATE INDEX IDX_REFERENCIAS ON REFERENCIAS (ID_EMPRESA); +CREATE INDEX IDX_REMESAS_CLIENTE ON REMESAS_CLIENTE (ID_DATOS_BANCO); +CREATE INDEX REMESAS_CLIENTE_IDX1 ON REMESAS_CLIENTE (FECHA_REMESA); +CREATE INDEX IDX_REMESAS_PROVEEDOR ON REMESAS_PROVEEDOR (ID_DATOS_BANCO); +CREATE INDEX REMESAS_PROVEEDOR_IDX1 ON REMESAS_PROVEEDOR (FECHA_REMESA); + + +/******************************************************************************/ +/**** Stored Procedures ****/ +/******************************************************************************/ + +SET TERM ^ ; + +CREATE PROCEDURE PRO_ART_RECALCULAR_PVP ( + ID_EMPRESA INTEGER, + PARAM_MARGEN NUMERIC(2,2), + PARAM_TIEMPO NUMERIC(11,2)) +AS +declare variable id_articulo integer; +declare variable mano_obra numeric(11,2); +begin + UPDATE ARTICULOS + SET PARAM_TIEMPO = :PARAM_TIEMPO, + PARAM_MARGEN = :PARAM_MARGEN, + MANO_OBRA = (TIEMPO * :PARAM_TIEMPO) + WHERE ID_EMPRESA = :ID_EMPRESA; + + for select ID, MANO_OBRA + from articulos + where ID_EMPRESA = :ID_EMPRESA + into :ID_ARTICULO, :MANO_OBRA + do + begin + update articulos_proveedores + set PRECIO_PVP_VENTA = (PRECIO_NETO + PRECIO_PORTE) * (((:PARAM_MARGEN) / 100) + 1), + PRECIO_PVP_TOTAL = ((PRECIO_NETO + PRECIO_PORTE) * (((:PARAM_MARGEN) / 100) + 1)) + :MANO_OBRA + where id_articulo = :ID_ARTICULO; + end + + suspend; +end +^ + + +CREATE PROCEDURE PRO_PRES_CAPITULOS ( + AID INTEGER) +RETURNS ( + ID INTEGER, + ID_PRESUPUESTO INTEGER, + POSICION INTEGER, + TIPO_DETALLE VARCHAR(25), + CONCEPTO VARCHAR(2000), + IMPORTE_TOTAL NUMERIC(11,2), + VISIBLE SMALLINT) +AS +declare variable num_filas integer; +declare variable contador integer; +declare variable existe numeric(11,2); +declare variable total_acumulado numeric(11,2); +begin + existe = 0; + total_acumulado = 0.0; + contador = 0; + num_filas = 0; + + /* Existe el presupuesto? */ + for select count(*) + from presupuestos_cliente_detalles + where id_presupuesto = :AID + into :num_filas + do + begin + if (num_filas = 0) then + suspend; + end + + /* Ver si hay conceptos al principio sin capitulos */ + for select id, id_presupuesto, posicion, tipo_detalle + from presupuestos_cliente_detalles + where id_presupuesto = :AID + order by id_presupuesto, posicion + rows 1 + into :ID, :ID_PRESUPUESTO, :POSICION, :TIPO_DETALLE + do + begin + if (TIPO_DETALLE = 'Concepto') then + EXISTE = 1; + end + + if (existe = 1) then + begin + contador = 0; + /* Existen conceptos sin capitulo */ + for select tipo_detalle, importe_total, coalesce(visible, 1) + from presupuestos_cliente_detalles + where id_presupuesto = :AID + order by id_presupuesto, posicion + into :TIPO_DETALLE, :IMPORTE_TOTAL, :VISIBLE + do + begin + contador = contador + 1; + + if ((visible <> 0) and (tipo_detalle = 'Concepto')) then + total_acumulado = total_acumulado + importe_total; + + if ((tipo_detalle <> 'Concepto') or (contador = num_filas)) then + begin + importe_total = total_acumulado; + tipo_detalle = 'Titulo'; + concepto = 'General'; + visible = 1; + ID = -1; + posicion = -1; + suspend; + break; + end + end + end + + + for select id, id_presupuesto, posicion, tipo_detalle, F_RTFTOTEXT(concepto) as concepto, + importe_total, coalesce(visible, 1) + from presupuestos_cliente_detalles + where ((tipo_detalle = 'Titulo') or (tipo_detalle = 'Titulo opcional'))and id_presupuesto = :AID + order by id_presupuesto, posicion + into :ID, :ID_PRESUPUESTO, :POSICION, :TIPO_DETALLE, :CONCEPTO, + :IMPORTE_TOTAL, :VISIBLE + do + suspend; +end +^ + + +CREATE PROCEDURE PRO_PRES_CAPITULOS_CONCEPTOS ( + AID INTEGER) +RETURNS ( + ID INTEGER, + ID_PRESUPUESTO INTEGER, + POSICION INTEGER, + TIPO_DETALLE VARCHAR(25), + ID_CAPITULO INTEGER, + ID_ARTICULO INTEGER, + REFERENCIA VARCHAR(255), + CONCEPTO VARCHAR(2000), + CANTIDAD NUMERIC(11,2), + UNIDAD_MEDIDA VARCHAR(255), + IMPORTE_UNIDAD NUMERIC(11,2), + DESCUENTO NUMERIC(2,2), + IMPORTE_PORTE NUMERIC(11,2), + IMPORTE_TOTAL NUMERIC(11,2), + VISIBLE SMALLINT) +AS +declare variable capitulo_actual integer; +begin +capitulo_actual = -1; +ID_CAPITULO = -1; +for select pre.id, pre.id_presupuesto, pre.posicion, pre.tipo_detalle, + pre.id_articulo, articulos.referencia, + F_RTFTOTEXT(F_RTFTOTEXT(pre.CONCEPTO)) as CONCEPTO, + pre.cantidad, pre.unidad_medida, + case + when (pre.descuento <> 0) then (pre.importe_total / pre.cantidad) + else pre.importe_unidad + end as importe_unidad, + pre.descuento, pre.importe_porte, + pre.importe_total, coalesce(pre.visible, 1) + from presupuestos_cliente_detalles pre + left join articulos on (pre.id_articulo = articulos.id) + where pre.id_presupuesto = :AID + order by pre.id_presupuesto, pre.posicion + into :ID, :ID_PRESUPUESTO, :POSICION, :TIPO_DETALLE, :ID_ARTICULO, + :REFERENCIA, :CONCEPTO, :CANTIDAD, :UNIDAD_MEDIDA, :IMPORTE_UNIDAD, :DESCUENTO, + :IMPORTE_PORTE, :IMPORTE_TOTAL, :VISIBLE +do + begin + if (:tipo_detalle <> 'Concepto') then + begin + capitulo_actual = :ID; + ID_CAPITULO = capitulo_actual; + end + else + suspend; + end +end +^ + + +CREATE PROCEDURE PRO_PRES_RESUMEN ( + AID INTEGER) +RETURNS ( + ID INTEGER, + ID_PRESUPUESTO INTEGER, + POSICION INTEGER, + TIPO_DETALLE VARCHAR(25), + CONCEPTO VARCHAR(2000), + IMPORTE_TOTAL NUMERIC(11,2), + VISIBLE SMALLINT) +AS +declare variable num_capitulos integer; +declare variable num_filas integer; +declare variable contador integer; +declare variable existe numeric(11,2); +declare variable total_acumulado numeric(11,2); +declare variable concepto_capitulo varchar(2000); +declare variable tipo varchar(25); +begin + existe = 0; + total_acumulado = 0.0; + contador = 0; + num_filas = 0; + num_capitulos = 0; + concepto_capitulo = ''; + tipo = ''; + + /* Existe el presupuesto? */ + for select count(*) + from presupuestos_cliente_detalles + where id_presupuesto = :AID + into :num_filas + do + begin + if (num_filas = 0) then + suspend; + end + + /* Ver si hay conceptos al principio sin capitulos */ + for select id, id_presupuesto, posicion, tipo_detalle + from presupuestos_cliente_detalles + where id_presupuesto = :AID + order by id_presupuesto, posicion + rows 1 + into :ID, :ID_PRESUPUESTO, :POSICION, :TIPO_DETALLE + do + begin + if (TIPO_DETALLE = 'Concepto') then + EXISTE = 1; + end + + num_capitulos = 1; + if (existe = 1) then + begin + contador = 0; + /* Existen conceptos sin capitulo */ + for select tipo_detalle, coalesce(importe_total,0), coalesce(visible, 1) + from presupuestos_cliente_detalles + where id_presupuesto = :AID + order by id_presupuesto, posicion + into :TIPO_DETALLE, :IMPORTE_TOTAL, :VISIBLE + do + begin + contador = contador + 1; + + if ((visible <> 0) and (tipo_detalle = 'Concepto')) then + total_acumulado = total_acumulado + importe_total; + + if ((tipo_detalle <> 'Concepto') or (contador = num_filas)) then + begin + importe_total = total_acumulado; + tipo_detalle = 'Titulo'; + if (num_capitulos > 1) then + concepto = 'CAPTULO ' || num_capitulos ||'. General'; + else + concepto = 'General'; + visible = 1; + ID = -1; + posicion = -1; + suspend; + break; + end + end + end + + /* Tratar el resto de las filas */ + for select id, id_presupuesto, posicion, tipo_detalle, + F_RTFTOTEXT(concepto) as concepto, coalesce(importe_total,0), coalesce(visible, 1) + from presupuestos_cliente_detalles + where id_presupuesto = :AID and + tipo_detalle in ('Titulo', 'Titulo opcional', 'Subtotal') + order by posicion + into :ID, :ID_PRESUPUESTO, :POSICION, :TIPO_DETALLE, :CONCEPTO, + :IMPORTE_TOTAL, :VISIBLE + do + begin + contador = contador + 1; + if ((tipo_detalle = 'Titulo') or (tipo_detalle = 'Titulo opcional')) then + begin + concepto_capitulo = concepto; + tipo = tipo_detalle; + end + if (tipo_detalle = 'Subtotal') then + begin + concepto = 'CAPTULO ' || num_capitulos || '. ' || concepto_capitulo; + tipo_detalle = tipo; + num_capitulos = num_capitulos + 1; + suspend; + end + end +end +^ + +SET TERM ; ^ + +/******************************************************************************/ +/**** Descriptions ****/ +/******************************************************************************/ + diff --git a/Database/scripts/factuges.sql.bak b/Database/scripts/factuges.sql.bak new file mode 100644 index 0000000..b949fb0 --- /dev/null +++ b/Database/scripts/factuges.sql.bak @@ -0,0 +1,4050 @@ +/******************************************************************************/ +/**** Generated by IBExpert 2007.05.03 23/09/2008 10:55:38 ****/ +/******************************************************************************/ + +SET SQL DIALECT 3; + +SET NAMES ISO8859_1; + +CREATE DATABASE 'FACTUGES.FDB' PAGE_SIZE 4096 +DEFAULT CHARACTER SET ISO8859_1; + +/******************************************************************************/ +/**** User Defined Functions ****/ +/******************************************************************************/ + +DECLARE EXTERNAL FUNCTION F_RTFTOTEXT + CString(32767) + RETURNS CString(32767) + ENTRY_POINT 'RtfToText' MODULE_NAME 'udf_RtfToText.dll'; + +DECLARE EXTERNAL FUNCTION "MOD" + INTEGER, + INTEGER + RETURNS DOUBLE PRECISION BY VALUE + ENTRY_POINT 'IB_UDF_mod' MODULE_NAME 'ib_udf'; + + +DECLARE EXTERNAL FUNCTION STRLEN + CSTRING(254) + RETURNS INTEGER BY VALUE + ENTRY_POINT 'IB_UDF_strlen' MODULE_NAME 'ib_udf'; + + +DECLARE EXTERNAL FUNCTION SUBSTR + CSTRING(254), + SMALLINT, + SMALLINT + RETURNS CSTRING(254) FREE_IT + ENTRY_POINT 'IB_UDF_substr' MODULE_NAME 'ib_udf'; + + + + +/******************************************************************************/ +/**** Domains ****/ +/******************************************************************************/ + +CREATE DOMAIN TIPO_BINARIO AS +BLOB SUB_TYPE 0 SEGMENT SIZE 80; + +CREATE DOMAIN TIPO_BOOLEANO AS +SMALLINT; + +CREATE DOMAIN TIPO_CANTIDAD AS +NUMERIC(11,2); + +CREATE DOMAIN TIPO_CONCEPTO AS +VARCHAR(2000); + +CREATE DOMAIN TIPO_ID AS +INTEGER; + +CREATE DOMAIN TIPO_IMPORTE AS +NUMERIC(11,2); + +CREATE DOMAIN TIPO_NOTAS AS +BLOB SUB_TYPE 1 SEGMENT SIZE 80; + +CREATE DOMAIN TIPO_PERFIL AS +VARCHAR(15); + +CREATE DOMAIN TIPO_PORCENTAJE AS +FLOAT; + +CREATE DOMAIN TIPO_USUARIO AS +VARCHAR(30); + +/******************************************************************************/ +/**** Generators ****/ +/******************************************************************************/ + +CREATE GENERATOR GEN_AGENTES_COMISIONES_ID; +SET GENERATOR GEN_AGENTES_COMISIONES_ID TO 1; + +CREATE GENERATOR GEN_ALBARANES_CLI_DETALLES_ID; +SET GENERATOR GEN_ALBARANES_CLI_DETALLES_ID TO 1; + +CREATE GENERATOR GEN_ALBARANES_CLI_ID; +SET GENERATOR GEN_ALBARANES_CLI_ID TO 1; + +CREATE GENERATOR GEN_ALBARANES_PRO_DETALLES_ID; +SET GENERATOR GEN_ALBARANES_PRO_DETALLES_ID TO 1; + +CREATE GENERATOR GEN_ALBARANES_PRO_ID; +SET GENERATOR GEN_ALBARANES_PRO_ID TO 1; + +CREATE GENERATOR GEN_ALMACENES_ID; +SET GENERATOR GEN_ALMACENES_ID TO 1; + +CREATE GENERATOR GEN_ARTICULOS_ID; +SET GENERATOR GEN_ARTICULOS_ID TO 1; + +CREATE GENERATOR GEN_ARTICULOS_PROVEEDORES_ID; +SET GENERATOR GEN_ARTICULOS_PROVEEDORES_ID TO 1; + +CREATE GENERATOR GEN_CATEGORIAS_ID; +SET GENERATOR GEN_CATEGORIAS_ID TO 1; + +CREATE GENERATOR GEN_CLIENTES_DTOS_PROV_ID; +SET GENERATOR GEN_CLIENTES_DTOS_PROV_ID TO 1; + +CREATE GENERATOR GEN_CLIENTES_GRUPOS_ID; +SET GENERATOR GEN_CLIENTES_GRUPOS_ID TO 1; + +CREATE GENERATOR GEN_COMISIONES_LIQUID_ID; +SET GENERATOR GEN_COMISIONES_LIQUID_ID TO 1; + +CREATE GENERATOR GEN_CONFIGURACION_ID; +SET GENERATOR GEN_CONFIGURACION_ID TO 1; + +CREATE GENERATOR GEN_CONTACTOS_DATOS_BANCO_ID; +SET GENERATOR GEN_CONTACTOS_DATOS_BANCO_ID TO 1; + +CREATE GENERATOR GEN_CONTACTOS_DIR_ID; +SET GENERATOR GEN_CONTACTOS_DIR_ID TO 1; + +CREATE GENERATOR GEN_CONTACTOS_ID; +SET GENERATOR GEN_CONTACTOS_ID TO 1; + +CREATE GENERATOR GEN_CONTACTOS_PERSONAL_ID; +SET GENERATOR GEN_CONTACTOS_PERSONAL_ID TO 1; + +CREATE GENERATOR GEN_EMPLEADOS_GRUPOS_ID; +SET GENERATOR GEN_EMPLEADOS_GRUPOS_ID TO 1; + +CREATE GENERATOR GEN_EMPRESAS_CONTACTOS_ID; +SET GENERATOR GEN_EMPRESAS_CONTACTOS_ID TO 1; + +CREATE GENERATOR GEN_EMPRESAS_DATOS_BANCO_ID; +SET GENERATOR GEN_EMPRESAS_DATOS_BANCO_ID TO 1; + +CREATE GENERATOR GEN_EMPRESAS_ID; +SET GENERATOR GEN_EMPRESAS_ID TO 1; + +CREATE GENERATOR GEN_EMPRESAS_USUARIOS_ID; +SET GENERATOR GEN_EMPRESAS_USUARIOS_ID TO 1; + +CREATE GENERATOR GEN_FABRICANTES_ID; +SET GENERATOR GEN_FABRICANTES_ID TO 1; + +CREATE GENERATOR GEN_FACTURAS_CLIENTE_ID; +SET GENERATOR GEN_FACTURAS_CLIENTE_ID TO 1; + +CREATE GENERATOR GEN_FACTURAS_PROVEEDOR_ID; +SET GENERATOR GEN_FACTURAS_PROVEEDOR_ID TO 1; + +CREATE GENERATOR GEN_FACTURA_CLIENTE_DETALLES_ID; +SET GENERATOR GEN_FACTURA_CLIENTE_DETALLES_ID TO 1; + +CREATE GENERATOR GEN_FACTURA_PROV_DETALLES_ID; +SET GENERATOR GEN_FACTURA_PROV_DETALLES_ID TO 1; + +CREATE GENERATOR GEN_FAMILIAS_ID; +SET GENERATOR GEN_FAMILIAS_ID TO 1; + +CREATE GENERATOR GEN_FORMAS_PAGO_ID; +SET GENERATOR GEN_FORMAS_PAGO_ID TO 1; + +CREATE GENERATOR GEN_FORMAS_PAGO_PLAZOS_ID; +SET GENERATOR GEN_FORMAS_PAGO_PLAZOS_ID TO 1; + +CREATE GENERATOR GEN_INFORMES_ID; +SET GENERATOR GEN_INFORMES_ID TO 1; + +CREATE GENERATOR GEN_MOVIMIENTOS_ID; +SET GENERATOR GEN_MOVIMIENTOS_ID TO 1; + +CREATE GENERATOR GEN_OBRAS_EJECUCIONES_ID; +SET GENERATOR GEN_OBRAS_EJECUCIONES_ID TO 1; + +CREATE GENERATOR GEN_OBRAS_EJEC_PRESUPUESTOS_ID; +SET GENERATOR GEN_OBRAS_EJEC_PRESUPUESTOS_ID TO 1; + +CREATE GENERATOR GEN_OBRAS_EJEC_PEDIDOS_PROV_ID; +SET GENERATOR GEN_OBRAS_EJEC_PEDIDOS_PROV_ID TO 1; + +CREATE GENERATOR GEN_PAGOS_CLIENTE_ID; +SET GENERATOR GEN_PAGOS_CLIENTE_ID TO 1; + +CREATE GENERATOR GEN_PAGOS_PROVEEDOR_ID; +SET GENERATOR GEN_PAGOS_PROVEEDOR_ID TO 1; + +CREATE GENERATOR GEN_PEDIDOS_CLI_DETALLES_ID; +SET GENERATOR GEN_PEDIDOS_CLI_DETALLES_ID TO 1; + +CREATE GENERATOR GEN_PEDIDOS_CLI_ID; +SET GENERATOR GEN_PEDIDOS_CLI_ID TO 1; + +CREATE GENERATOR GEN_PEDIDOS_PROV_DETALLES_ID; +SET GENERATOR GEN_PEDIDOS_PROV_DETALLES_ID TO 1; + +CREATE GENERATOR GEN_PEDIDOS_PROV_ID; +SET GENERATOR GEN_PEDIDOS_PROV_ID TO 1; + +CREATE GENERATOR GEN_PEDIDOS_PROV_PEDIDOS_ID; +SET GENERATOR GEN_PEDIDOS_PROV_PEDIDOS_ID TO 1; + +CREATE GENERATOR GEN_PERMISOSEX_ID; +SET GENERATOR GEN_PERMISOSEX_ID TO 1; + +CREATE GENERATOR GEN_PERMISOS_ID; +SET GENERATOR GEN_PERMISOS_ID TO 1; + +CREATE GENERATOR GEN_PRESUPUESTOS_CLI_DETALLE_ID; +SET GENERATOR GEN_PRESUPUESTOS_CLI_DETALLE_ID TO 1; + +CREATE GENERATOR GEN_PRESUPUESTOS_CLI_ID; +SET GENERATOR GEN_PRESUPUESTOS_CLI_ID TO 1; + +CREATE GENERATOR GEN_PROVEEDORES_GRUPOS_ID; +SET GENERATOR GEN_PROVEEDORES_GRUPOS_ID TO 1; + +CREATE GENERATOR GEN_RECIBOS_CLIENTE_ID; +SET GENERATOR GEN_RECIBOS_CLIENTE_ID TO 1; + +CREATE GENERATOR GEN_RECIBOS_PROVEEDOR_ID; +SET GENERATOR GEN_RECIBOS_PROVEEDOR_ID TO 1; + +CREATE GENERATOR GEN_REFERENCIAS_ID; +SET GENERATOR GEN_REFERENCIAS_ID TO 1; + +CREATE GENERATOR GEN_REMESAS_CLIENTE_ID; +SET GENERATOR GEN_REMESAS_CLIENTE_ID TO 1; + +CREATE GENERATOR GEN_REMESAS_PROVEEDOR_ID; +SET GENERATOR GEN_REMESAS_PROVEEDOR_ID TO 1; + +CREATE GENERATOR GEN_TIENDA_WEB_ID; +SET GENERATOR GEN_TIENDA_WEB_ID TO 1; + +CREATE GENERATOR GEN_TIPOS_IVA_ID; +SET GENERATOR GEN_TIPOS_IVA_ID TO 1; + +CREATE GENERATOR GEN_UNIDADES_MEDIDA_ID; +SET GENERATOR GEN_UNIDADES_MEDIDA_ID TO 1; + +CREATE GENERATOR GEN_USUARIOS_ID; +SET GENERATOR GEN_USUARIOS_ID TO 1; + + + +/******************************************************************************/ +/**** Tables ****/ +/******************************************************************************/ + + + +CREATE TABLE AGENTES_COMISIONES ( + ID TIPO_ID NOT NULL, + ID_AGENTE TIPO_ID DEFAULT 0 NOT NULL, + ID_PROVEEDOR SMALLINT DEFAULT 0 NOT NULL, + COMISION TIPO_PORCENTAJE DEFAULT 0 +); + +CREATE TABLE ALBARANES_CLIENTE ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + ID_CLIENTE TIPO_ID, + FECHA_ALBARAN DATE, + ID_ALMACEN TIPO_ID, + ID_PEDIDO TIPO_ID, + ID_FACTURA TIPO_ID, + TIPO VARCHAR(1), + REFERENCIA VARCHAR(255), + ID_DIRECCION TIPO_ID, + CALLE VARCHAR(255), + CODIGO_POSTAL VARCHAR(10), + POBLACION VARCHAR(255), + PROVINCIA VARCHAR(255), + PERSONA_CONTACTO VARCHAR(255), + TELEFONO VARCHAR(25), + IMPORTE_NETO TIPO_IMPORTE, + IMPORTE_PORTE TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_DESCUENTO TIPO_IMPORTE, + BASE_IMPONIBLE TIPO_IMPORTE, + IVA TIPO_PORCENTAJE, + IMPORTE_IVA TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + OBSERVACIONES TIPO_NOTAS, + INCIDENCIAS TIPO_NOTAS, + INCIDENCIAS_ACTIVAS SMALLINT DEFAULT 0 NOT NULL, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO, + ID_FORMA_PAGO TIPO_ID, + FECHA_ENVIO DATE, + FECHA_RECEPCION DATE, + FECHA_PREVISTA_ENVIO DATE, + REFERENCIA_CLIENTE VARCHAR(255), + ID_ALBARAN_DEV TIPO_ID +); + +CREATE TABLE ALBARANES_CLIENTE_DETALLES ( + ID TIPO_ID NOT NULL, + ID_ALBARAN TIPO_ID NOT NULL, + POSICION INTEGER, + TIPO_DETALLE VARCHAR(25), + ID_ARTICULO TIPO_ID, + CONCEPTO TIPO_CONCEPTO, + CANTIDAD TIPO_CANTIDAD, + UNIDAD_MEDIDA VARCHAR(255), + IMPORTE_UNIDAD TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_PORTE TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + VISIBLE TIPO_BOOLEANO, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + ID_PEDIDO TIPO_ID +); + +CREATE TABLE ALBARANES_PROVEEDOR ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + ID_PROVEEDOR TIPO_ID, + ID_DIRECCION TIPO_ID, + PERSONA_CONTACTO_PROV VARCHAR(255), + FECHA_ALBARAN DATE, + ID_PEDIDO TIPO_ID, + ID_FACTURA TIPO_ID, + TIPO VARCHAR(1), + REFERENCIA VARCHAR(255), + CALLE VARCHAR(255), + CODIGO_POSTAL VARCHAR(10), + POBLACION VARCHAR(255), + PROVINCIA VARCHAR(255), + PERSONA_CONTACTO VARCHAR(255), + TELEFONO VARCHAR(25), + BASE_IMPONIBLE TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_DESCUENTO TIPO_IMPORTE, + IVA TIPO_PORCENTAJE, + IMPORTE_IVA TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + OBSERVACIONES TIPO_NOTAS, + INCIDENCIAS TIPO_NOTAS, + INCIDENCIAS_ACTIVAS SMALLINT DEFAULT 0 NOT NULL, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO, + ID_ALMACEN TIPO_ID, + ID_FORMA_PAGO TIPO_ID, + IMPORTE_NETO TIPO_IMPORTE, + IMPORTE_PORTE TIPO_IMPORTE, + REFERENCIA_PROVEEDOR VARCHAR(255), + REF_FACTURA_PROV VARCHAR(255), + ID_ALBARAN TIPO_ID, + ID_ALBARAN_DEV TIPO_ID +); + +CREATE TABLE ALBARANES_PROVEEDOR_DETALLES ( + ID TIPO_ID NOT NULL, + ID_ALBARAN TIPO_ID NOT NULL, + POSICION INTEGER, + TIPO_DETALLE VARCHAR(25), + ID_ARTICULO TIPO_ID, + CONCEPTO TIPO_CONCEPTO, + CANTIDAD TIPO_CANTIDAD, + UNIDAD_MEDIDA VARCHAR(255), + IMPORTE_UNIDAD TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_PORTE TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + VISIBLE TIPO_BOOLEANO, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + ID_PEDIDO TIPO_ID +); + +CREATE TABLE ALMACENES ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID NOT NULL, + TIPO_ALMACEN VARCHAR(10), + NOMBRE VARCHAR(255), + CALLE VARCHAR(255), + PROVINCIA VARCHAR(255), + POBLACION VARCHAR(255), + CODIGO_POSTAL VARCHAR(10), + TELEFONO VARCHAR(25), + MOVIL VARCHAR(25), + FAX VARCHAR(25), + PERSONA_CONTACTO VARCHAR(255), + OBSERVACIONES TIPO_NOTAS, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO +); + +CREATE TABLE ARTICULOS ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + REFERENCIA VARCHAR(255), + DESCRIPCION VARCHAR(255), + FAMILIA VARCHAR(255), + UNIDAD_MEDIDA VARCHAR(255), + IMAGEN TIPO_BINARIO, + COMISIONABLE TIPO_BOOLEANO, + ID_PROVEEDOR TIPO_ID, + REFERENCIA_PROV VARCHAR(255), + PRECIO_COSTE TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + PRECIO_NETO TIPO_IMPORTE, + PRECIO_PORTE TIPO_IMPORTE, + TIENDA_WEB TIPO_BOOLEANO DEFAULT 0, + FABRICANTE VARCHAR(255), + REFERENCIA_FABR VARCHAR(255), + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO, + INVENTARIABLE TIPO_BOOLEANO, + ELIMINADO TIPO_BOOLEANO, + PARAM_MARGEN FLOAT, + TIEMPO INTEGER, + PARAM_TIEMPO FLOAT, + MANO_OBRA TIPO_IMPORTE +); + +CREATE TABLE ARTICULOS_PROVEEDORES ( + ID TIPO_ID NOT NULL, + ID_ARTICULO TIPO_ID, + ID_PROVEEDOR TIPO_ID, + REFERENCIA_PROV VARCHAR(255), + PRECIO_COSTE TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + PRECIO_NETO TIPO_IMPORTE, + PRECIO_PORTE TIPO_IMPORTE, + PRECIO_PVP_VENTA TIPO_IMPORTE, + PRECIO_PVP_TOTAL TIPO_IMPORTE +); + +CREATE TABLE CATEGORIAS ( + ID TIPO_ID NOT NULL, + CATEGORIA VARCHAR(255) NOT NULL +); + +CREATE TABLE CLIENTES_DATOS ( + ID_CLIENTE TIPO_ID NOT NULL, + ID_AGENTE TIPO_ID, + GRUPO_CLIENTE VARCHAR(255), + NOMBRE_COMERCIAL VARCHAR(255), + VENCIMIENTO_FACTURAS INTEGER, + BLOQUEADO TIPO_BOOLEANO DEFAULT 0 NOT NULL, + REGIMEN_IVA VARCHAR(255), + MOTIVO_BLOQUEO VARCHAR(255), + RECARGO_EQUIVALENCIA TIPO_BOOLEANO, + ID_TIPO_IVA TIPO_ID, + ID_FORMA_PAGO TIPO_ID, + TIENDA_WEB TIPO_BOOLEANO, + DESCUENTO TIPO_PORCENTAJE, + RAPEL SMALLINT, + EMAIL_ADMINISTRACION VARCHAR(255), + CODIGO_ASIGNADO VARCHAR(255), + VENCIMIENTO_FACTURAS_1 SMALLINT, + VENCIMIENTO_FACTURAS_2 SMALLINT, + VENCIMIENTO_FACTURAS_3 SMALLINT, + FELICITACION TIPO_BOOLEANO +); + +CREATE TABLE CLIENTES_DTOS_PROVEEDORES ( + ID TIPO_ID NOT NULL, + ID_CLIENTE TIPO_ID DEFAULT 0 NOT NULL, + ID_PROVEEDOR SMALLINT DEFAULT 0 NOT NULL, + DESCUENTO TIPO_PORCENTAJE DEFAULT 0 +); + +CREATE TABLE CLIENTES_GRUPOS ( + ID TIPO_ID NOT NULL, + DESCRIPCION VARCHAR(255) +); + +CREATE TABLE COMISIONES_LIQUIDADAS ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + REFERENCIA VARCHAR(255), + ID_AGENTE TIPO_ID, + DESCRIPCION VARCHAR(255), + FECHA DATE, + IMPORTE_TOTAL TIPO_IMPORTE, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO +); + +CREATE TABLE CONFIGURACION ( + ID TIPO_ID NOT NULL, + CODIGO VARCHAR(50) NOT NULL, + VALOR VARCHAR(255) NOT NULL, + ID_EMPRESA TIPO_ID +); + +CREATE TABLE CONTACTOS ( + ID TIPO_ID NOT NULL, + NIF_CIF VARCHAR(15), + NOMBRE VARCHAR(255) NOT NULL, + CALLE VARCHAR(255), + POBLACION VARCHAR(255), + PROVINCIA VARCHAR(255), + CODIGO_POSTAL VARCHAR(10), + TELEFONO_1 VARCHAR(25), + TELEFONO_2 VARCHAR(25), + MOVIL_1 VARCHAR(25), + MOVIL_2 VARCHAR(25), + FAX VARCHAR(25), + EMAIL_1 VARCHAR(255), + EMAIL_2 VARCHAR(255), + PAGINA_WEB VARCHAR(255), + NOTAS TIPO_NOTAS, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO, + REFERENCIA VARCHAR(255), + PERSONA_CONTACTO VARCHAR(255) +); + +CREATE TABLE CONTACTOS_CATEGORIAS ( + ID_CONTACTO TIPO_ID NOT NULL, + ID_CATEGORIA TIPO_ID NOT NULL +); + +CREATE TABLE CONTACTOS_DATOS_BANCO ( + ID TIPO_ID NOT NULL, + ID_CONTACTO TIPO_ID NOT NULL, + TITULAR VARCHAR(255), + ENTIDAD VARCHAR(15), + SUCURSAL VARCHAR(15), + DC VARCHAR(15), + CUENTA VARCHAR(15), + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP +); + +CREATE TABLE CONTACTOS_DATOS_PERSONAL ( + ID TIPO_ID NOT NULL, + ID_CONTACTO TIPO_ID NOT NULL, + NOMBRE VARCHAR(255), + PUESTO VARCHAR(255), + TELEFONO VARCHAR(25), + MOVIL VARCHAR(25), + FAX VARCHAR(25), + EMAIL VARCHAR(255), + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP +); + +CREATE TABLE CONTACTOS_DIRECCIONES ( + ID TIPO_ID NOT NULL, + ID_CONTACTO TIPO_ID NOT NULL, + CALLE VARCHAR(255), + POBLACION VARCHAR(255), + PROVINCIA VARCHAR(255), + CODIGO_POSTAL VARCHAR(10), + PERSONA_CONTACTO VARCHAR(255), + NOMBRE VARCHAR(255), + TELEFONO VARCHAR(25), + MOVIL VARCHAR(25), + FAX VARCHAR(25), + EMAIL VARCHAR(255), + NOTAS TIPO_NOTAS, + PORTE TIPO_IMPORTE, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP +); + +CREATE TABLE EMPLEADOS_DATOS ( + ID_EMPLEADO TIPO_ID NOT NULL, + FECHA_NACIMIENTO DATE, + CATEGORIA VARCHAR(255), + FECHA_ALTA_EMPRESA DATE, + FORMACION_BASE TIPO_NOTAS, + FORMACION_COMPLE TIPO_NOTAS, + FORMACION_RECIBIDA TIPO_NOTAS, + EXPERIENCIA TIPO_NOTAS, + CONTRATO VARCHAR(255), + DURACION VARCHAR(255), + FECHA_BAJA DATE, + CAUSA_BAJA VARCHAR(255) +); + +CREATE TABLE AGENTES_DATOS ( + ID_AGENTE TIPO_ID NOT NULL, + FECHA_ALTA_EMPRESA DATE, + FECHA_BAJA DATE, + CAUSA_BAJA VARCHAR(255) +); + +CREATE TABLE EMPLEADOS_GRUPOS ( + ID TIPO_ID NOT NULL, + DESCRIPCION VARCHAR(255) +); + +CREATE TABLE EMPRESAS ( + ID TIPO_ID NOT NULL, + NIF_CIF VARCHAR(15), + NOMBRE VARCHAR(255), + RAZON_SOCIAL VARCHAR(255), + CALLE VARCHAR(255), + POBLACION VARCHAR(255), + PROVINCIA VARCHAR(255), + CODIGO_POSTAL VARCHAR(10), + TELEFONO_1 VARCHAR(25), + TELEFONO_2 VARCHAR(25), + MOVIL_1 VARCHAR(25), + MOVIL_2 VARCHAR(25), + FAX VARCHAR(25), + EMAIL_1 VARCHAR(255), + EMAIL_2 VARCHAR(255), + PAGINA_WEB VARCHAR(255), + NOTAS TIPO_NOTAS, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO, + LOGOTIPO TIPO_BINARIO, + REGISTRO_MERCANTIL VARCHAR(255), + PARAM_TIEMPO TIPO_IMPORTE, + PARAM_MARGEN TIPO_PORCENTAJE, + ID_TIPO_IVA SMALLINT, + ID_FORMA_PAGO SMALLINT, + ID_ALMACEN SMALLINT +); + +CREATE TABLE EMPRESAS_CONTACTOS ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID NOT NULL, + ID_CONTACTO TIPO_ID NOT NULL +); + +CREATE TABLE EMPRESAS_DATOS_BANCO ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID NOT NULL, + NOMBRE VARCHAR(255), + ENTIDAD VARCHAR(15), + SUCURSAL VARCHAR(15), + DC VARCHAR(15), + CUENTA VARCHAR(15), + SUFIJO_N19 VARCHAR(3), + SUFIJO_N58 VARCHAR(3), + IBAN VARCHAR(255) COLLATE ES_ES, + SWIFT VARCHAR(255) COLLATE ES_ES +); + +CREATE TABLE EMPRESAS_USUARIOS ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID NOT NULL, + ID_USUARIO TIPO_ID NOT NULL +); + +CREATE TABLE FABRICANTES ( + ID TIPO_ID NOT NULL, + DESCRIPCION VARCHAR(255) +); + +CREATE TABLE FACTURAS_CLIENTE ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + REFERENCIA VARCHAR(255), + FECHA_FACTURA DATE, + FECHA_VENCIMIENTO DATE, + FECHA_RETENCION DATE, + BASE_IMPONIBLE TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_DESCUENTO TIPO_IMPORTE, + DESCRIPCION_DESCUENTO VARCHAR(255) COLLATE ES_ES, + IVA TIPO_PORCENTAJE, + IMPORTE_IVA TIPO_IMPORTE, + RE TIPO_PORCENTAJE, + IMPORTE_RE TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + OBSERVACIONES TIPO_NOTAS, + ID_CLIENTE TIPO_ID, + NIF_CIF VARCHAR(15), + NOMBRE VARCHAR(255), + ID_DIRECCION TIPO_ID, + CALLE VARCHAR(255), + POBLACION VARCHAR(255), + PROVINCIA VARCHAR(255), + CODIGO_POSTAL VARCHAR(10), + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO, + ID_FORMA_PAGO TIPO_ID, + IMPORTE_NETO TIPO_IMPORTE, + IMPORTE_PORTE TIPO_IMPORTE, + ID_TIPO_IVA TIPO_ID, + RECARGO_EQUIVALENCIA TIPO_BOOLEANO, + ID_COMISION_LIQUIDADA TIPO_ID, + DATOS_BANCARIOS VARCHAR(255), + CLIENTE_FINAL VARCHAR(255), + RETENCION TIPO_PORCENTAJE, + IMPORTE_RETENCION TIPO_IMPORTE +); + +CREATE TABLE FACTURAS_CLIENTE_DETALLES ( + ID TIPO_ID NOT NULL, + ID_FACTURA TIPO_ID NOT NULL, + POSICION INTEGER, + TIPO_DETALLE VARCHAR(25), + ID_ARTICULO TIPO_ID, + CONCEPTO TIPO_CONCEPTO, + CANTIDAD TIPO_CANTIDAD, + UNIDAD_MEDIDA VARCHAR(255), + IMPORTE_UNIDAD TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_PORTE TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + VISIBLE TIPO_BOOLEANO, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP +); + +CREATE TABLE FACTURAS_PROVEEDOR ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + REFERENCIA VARCHAR(255), + REFERENCIA_PROVEEDOR VARCHAR(255), + FECHA_FACTURA DATE, + BASE_IMPONIBLE TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_DESCUENTO TIPO_IMPORTE, + IVA TIPO_PORCENTAJE, + IMPORTE_IVA TIPO_IMPORTE, + RE TIPO_PORCENTAJE, + IMPORTE_RE TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + OBSERVACIONES TIPO_NOTAS, + ID_PROVEEDOR TIPO_ID, + NIF_CIF VARCHAR(15), + NOMBRE VARCHAR(255), + CALLE VARCHAR(255), + POBLACION VARCHAR(255), + PROVINCIA VARCHAR(255), + CODIGO_POSTAL VARCHAR(10), + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO, + ID_FORMA_PAGO TIPO_ID, + IMPORTE_NETO TIPO_IMPORTE, + IMPORTE_PORTE TIPO_IMPORTE, + ID_TIPO_IVA TIPO_ID, + RECARGO_EQUIVALENCIA TIPO_BOOLEANO, + DATOS_BANCARIOS VARCHAR(255), + FECHA_VENCIMIENTO DATE +); + +CREATE TABLE FACTURAS_PROVEEDOR_DETALLES ( + ID TIPO_ID NOT NULL, + ID_FACTURA TIPO_ID NOT NULL, + POSICION INTEGER, + TIPO_DETALLE VARCHAR(25), + ID_ARTICULO TIPO_ID, + CONCEPTO TIPO_CONCEPTO, + CANTIDAD TIPO_CANTIDAD, + UNIDAD_MEDIDA VARCHAR(255), + IMPORTE_UNIDAD TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_PORTE TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + VISIBLE TIPO_BOOLEANO, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP +); + +CREATE TABLE FACTURAS_PROVEEDOR_PEDIDOS ( + ID TIPO_ID NOT NULL, + ID_FACTURA TIPO_ID NOT NULL, + ID_PEDIDO TIPO_ID, + IMPORTE_TOTAL TIPO_IMPORTE, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP +); + +CREATE TABLE FAMILIAS ( + ID TIPO_ID NOT NULL, + DESCRIPCION VARCHAR(255) +); + +CREATE TABLE FORMAS_PAGO ( + ID TIPO_ID NOT NULL, + REFERENCIA VARCHAR(255), + DESCRIPCION VARCHAR(255), + TITULAR VARCHAR(255), + ENTIDAD VARCHAR(15), + SUCURSAL VARCHAR(15), + DC VARCHAR(15), + CUENTA VARCHAR(15) +); + +CREATE TABLE FORMAS_PAGO_PLAZOS ( + ID TIPO_ID NOT NULL, + ID_FORMA_PAGO TIPO_ID NOT NULL, + NUM_DIAS SMALLINT, + PORCENTAJE TIPO_PORCENTAJE +); + +CREATE TABLE INFORMES ( + ID SMALLINT NOT NULL, + ID_EMPRESA TIPO_ID, + CATEGORIA VARCHAR(30), + CONTROLLER VARCHAR(255), + ICONO SMALLINT, + NOMBRE VARCHAR(50), + DESCRIPCION VARCHAR(255), + ORDEN SMALLINT, + MODIFICABLE CHAR(1), + VISTA BLOB SUB_TYPE 2 SEGMENT SIZE 4096, + TIPO_AGRUPACION TIPO_ID +); + +CREATE TABLE MOVIMIENTOS ( + ID TIPO_ID NOT NULL, + ID_ALMACEN TIPO_ID, + ID_ARTICULO TIPO_ID, + FECHA_MOVIMIENTO DATE, + TIPO VARCHAR(1), + CANTIDAD TIPO_CANTIDAD, + CAUSA TIPO_CONCEPTO, + ID_ALMACEN_RESERVA TIPO_ID +); + +CREATE TABLE OBRAS_DATOS ( + ID_ALMACEN TIPO_ID NOT NULL, + ID_CLIENTE TIPO_ID +); + +CREATE TABLE OBRAS_EJECUCIONES ( + ID TIPO_ID NOT NULL, + ID_OBRA TIPO_ID, + FECHA_INICIO DATE, + FECHA_FIN DATE, + ID_SUBCONTRATA TIPO_ID, + OBSERVACIONES TIPO_NOTAS, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP +); + +CREATE TABLE OBRAS_EJECUCIONES_PRESUPUESTOS ( + ID TIPO_ID NOT NULL, + ID_EJECUCION TIPO_ID, + ID_PRESUPUESTO TIPO_ID +); + +CREATE TABLE OBRAS_EJECUCIONES_PEDIDOS_PROV ( + ID TIPO_ID NOT NULL, + ID_EJECUCION TIPO_ID, + ID_PEDIDO TIPO_ID, + ID_PRESUPUESTO TIPO_ID +); + + +CREATE TABLE PAGOS_CLIENTE ( + ID TIPO_ID NOT NULL, + ID_RECIBO TIPO_ID, + TIPO VARCHAR(255), + FECHA_PAGO DATE, + TITULAR VARCHAR(255), + ENTIDAD VARCHAR(15), + SUCURSAL VARCHAR(15), + DC VARCHAR(15), + CUENTA VARCHAR(15), + FECHA_ALTA DATE, + FECHA_MODIFICACION DATE, + USUARIO TIPO_USUARIO +); + +CREATE TABLE PAGOS_PROVEEDOR ( + ID TIPO_ID NOT NULL, + ID_RECIBO TIPO_ID, + TIPO VARCHAR(255), + FECHA_PAGO DATE, + TITULAR VARCHAR(255), + ENTIDAD VARCHAR(15), + SUCURSAL VARCHAR(15), + DC VARCHAR(15), + CUENTA VARCHAR(15), + FECHA_ALTA DATE, + FECHA_MODIFICACION DATE, + USUARIO TIPO_USUARIO +); + +CREATE TABLE PEDIDOS_CLIENTE ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + ID_CLIENTE TIPO_ID, + REFERENCIA VARCHAR(255), + FECHA_PEDIDO DATE, + CALLE VARCHAR(255), + CODIGO_POSTAL VARCHAR(10), + POBLACION VARCHAR(255), + PROVINCIA VARCHAR(255), + PERSONA_CONTACTO VARCHAR(255), + TELEFONO VARCHAR(25), + OBSERVACIONES TIPO_NOTAS, + INCIDENCIAS TIPO_NOTAS, + INCIDENCIAS_ACTIVAS SMALLINT DEFAULT 0 NOT NULL, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO, + IMPORTE_NETO TIPO_IMPORTE, + IMPORTE_PORTE TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_DESCUENTO TIPO_IMPORTE, + BASE_IMPONIBLE TIPO_IMPORTE, + IVA TIPO_PORCENTAJE, + IMPORTE_IVA TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + ID_FORMA_PAGO TIPO_ID, + REF_TIENDA_WEB INTEGER, + FECHA_PREVISTA_ENVIO DATE, + REFERENCIA_CLIENTE VARCHAR(255) +); + +CREATE TABLE PEDIDOS_CLIENTE_DETALLES ( + ID TIPO_ID NOT NULL, + ID_PEDIDO TIPO_ID NOT NULL, + POSICION INTEGER, + TIPO_DETALLE VARCHAR(25), + ID_ARTICULO TIPO_ID, + CONCEPTO TIPO_CONCEPTO, + CANTIDAD TIPO_CANTIDAD, + IMPORTE_UNIDAD TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_PORTE TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + VISIBLE TIPO_BOOLEANO, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP +); + +CREATE TABLE PEDIDOS_PROVEEDOR ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + ID_PROVEEDOR TIPO_ID, + ID_DIRECCION TIPO_ID, + PERSONA_CONTACTO_PROV VARCHAR(255), + REFERENCIA VARCHAR(255), + FECHA_PEDIDO DATE, + FECHA_CONFIRMACION DATE, + FECHA_ENTREGA DATE, + ID_ALMACEN TIPO_ID, + ID_OBRA TIPO_ID, + OBSERVACIONES TIPO_NOTAS, + INCIDENCIAS TIPO_NOTAS, + INCIDENCIAS_ACTIVAS SMALLINT DEFAULT 0 NOT NULL, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO, + CALLE VARCHAR(255), + CODIGO_POSTAL VARCHAR(10), + POBLACION VARCHAR(255), + PROVINCIA VARCHAR(255), + PERSONA_CONTACTO VARCHAR(255), + TELEFONO VARCHAR(25), + ID_PEDIDO_CLIENTE TIPO_ID, + IMPORTE_NETO TIPO_IMPORTE, + IMPORTE_PORTE TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_DESCUENTO TIPO_IMPORTE, + BASE_IMPONIBLE TIPO_IMPORTE, + IVA TIPO_PORCENTAJE, + IMPORTE_IVA TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + ID_FORMA_PAGO TIPO_ID, + FECHA_ENVIO DATE, + ID_FACTURA TIPO_ID, + REF_FACTURA_PROV VARCHAR(255) COLLATE ES_ES +); + +CREATE TABLE PEDIDOS_PROVEEDOR_DETALLES ( + ID TIPO_ID NOT NULL, + ID_PEDIDO TIPO_ID NOT NULL, + POSICION INTEGER, + TIPO_DETALLE VARCHAR(25), + ID_ARTICULO TIPO_ID, + CONCEPTO TIPO_CONCEPTO, + CANTIDAD TIPO_CANTIDAD, + UNIDAD_MEDIDA VARCHAR(255), + IMPORTE_UNIDAD TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_PORTE TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + VISIBLE TIPO_BOOLEANO, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP +); + +CREATE TABLE PERMISOS ( + ID TIPO_ID NOT NULL, + ID_USUARIO TIPO_ID, + MODULO VARCHAR(50), + NOMBRECOMP VARCHAR(50), + CHECKSUM VARCHAR(250) +); + +CREATE TABLE PERMISOSEX ( + ID TIPO_ID NOT NULL, + ID_USUARIO TIPO_ID, + MODULO VARCHAR(50), + NOMBRECOMP VARCHAR(50), + NOMBREFORM VARCHAR(50), + CHECKSUM VARCHAR(250) +); + +CREATE TABLE POBLACIONES ( + ID TIPO_ID NOT NULL, + ID_PROVINCIA TIPO_ID NOT NULL, + DESCRIPCION VARCHAR(255) NOT NULL +); + +CREATE TABLE PRESUPUESTOS_CLIENTE ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + ID_CLIENTE TIPO_ID, + REFERENCIA VARCHAR(255), + REFERENCIA_AUX VARCHAR(255), + FECHA_PRESUPUESTO DATE, + FECHA_DECISION DATE, + SITUACION VARCHAR(255), + PORTADA TIPO_NOTAS, + MEMORIA TIPO_NOTAS, + OBSERVACIONES TIPO_NOTAS, + INCIDENCIAS TIPO_NOTAS, + INCIDENCIAS_ACTIVAS SMALLINT DEFAULT 0 NOT NULL, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO, + IMPORTE_NETO TIPO_IMPORTE, + IMPORTE_PORTE TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_DESCUENTO TIPO_IMPORTE, + BASE_IMPONIBLE TIPO_IMPORTE, + IVA TIPO_PORCENTAJE, + IMPORTE_IVA TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + ID_FORMA_PAGO TIPO_ID, + REFERENCIA_CLIENTE VARCHAR(255), + CLIENTE_FINAL VARCHAR(255), + ID_FACTURA TIPO_ID, + PERSONA_CONTACTO VARCHAR(255), + ID_DIRECCION TIPO_ID, + DESCRIPCION_BONIFICACION VARCHAR(255) COLLATE ES_ES, + IMPORTE_BONIFICACION TIPO_IMPORTE +); + +CREATE TABLE PRESUPUESTOS_CLIENTE_DETALLES ( + ID TIPO_ID NOT NULL, + ID_PRESUPUESTO TIPO_ID NOT NULL, + POSICION INTEGER, + TIPO_DETALLE VARCHAR(25), + ID_ARTICULO TIPO_ID, + CONCEPTO TIPO_CONCEPTO, + CANTIDAD TIPO_CANTIDAD, + UNIDAD_MEDIDA VARCHAR(255), + IMPORTE_UNIDAD TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_PORTE TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + VISIBLE TIPO_BOOLEANO, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP +); + +CREATE TABLE PROVEEDORES_DATOS ( + ID_PROVEEDOR TIPO_ID NOT NULL, + DESCUENTO TIPO_PORCENTAJE, + REGIMEN_IVA VARCHAR(255), + ID_TIPO_IVA TIPO_ID, + ID_FORMA_PAGO TIPO_ID, + TIENDA_WEB TIPO_BOOLEANO, + EMAIL_ADMINISTRACION VARCHAR(255), + GRUPO_PROVEEDOR VARCHAR(255), + DESCRIPCION_PROVEEDOR VARCHAR(255), + CODIGO_ASIGNADO VARCHAR(255), + CERTIFICACION VARCHAR(255), + HOMOLOGADO SMALLINT, + SUBCONTRATA TIPO_BOOLEANO, + VENCIMIENTO_FACTURAS_1 SMALLINT, + VENCIMIENTO_FACTURAS_2 SMALLINT, + VENCIMIENTO_FACTURAS_3 SMALLINT +); + +CREATE TABLE PROVEEDORES_GRUPOS ( + ID TIPO_ID NOT NULL, + DESCRIPCION VARCHAR(255) +); + +CREATE TABLE PROVINCIAS ( + ID TIPO_ID NOT NULL, + DESCRIPCION VARCHAR(255) NOT NULL +); + +CREATE TABLE RECIBOS_CLIENTE ( + ID TIPO_ID NOT NULL, + ID_FACTURA TIPO_ID, + REFERENCIA VARCHAR(255), + FECHA_EMISION DATE, + FECHA_VENCIMIENTO DATE, + DESCRIPCION VARCHAR(255), + OBSERVACIONES VARCHAR(255), + IMPORTE TIPO_IMPORTE, + OTROS_GASTOS TIPO_IMPORTE, + FECHA_ALTA DATE, + FECHA_MODIFICACION DATE, + USUARIO TIPO_USUARIO, + ID_REMESA TIPO_ID, + ID_RECIBO_COMPENSADO INTEGER +); + +CREATE TABLE RECIBOS_PROVEEDOR ( + ID TIPO_ID NOT NULL, + ID_FACTURA TIPO_ID, + REFERENCIA VARCHAR(255), + REFERENCIA_PROVEEDOR VARCHAR(255), + FECHA_EMISION DATE, + FECHA_VENCIMIENTO DATE, + DESCRIPCION VARCHAR(255), + OBSERVACIONES VARCHAR(255), + IMPORTE TIPO_IMPORTE, + OTROS_GASTOS TIPO_IMPORTE, + FECHA_ALTA DATE, + FECHA_MODIFICACION DATE, + USUARIO TIPO_USUARIO, + ID_REMESA TIPO_ID, + ID_RECIBO_COMPENSADO INTEGER +); + +CREATE TABLE REFERENCIAS ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + CODIGO VARCHAR(50) NOT NULL, + VALOR VARCHAR(255) NOT NULL, + DESCRIPCION VARCHAR(255) +); + +CREATE TABLE REMESAS_CLIENTE ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + REFERENCIA VARCHAR(255), + FECHA_REMESA DATE, + IMPORTE_TOTAL TIPO_IMPORTE, + DESCRIPCION VARCHAR(255), + FECHA_ALTA DATE, + FECHA_MODIFICACION DATE, + USUARIO TIPO_USUARIO, + ID_DATOS_BANCO TIPO_ID, + TIPO VARCHAR(40) +); + +CREATE TABLE REMESAS_PROVEEDOR ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + REFERENCIA VARCHAR(255), + FECHA_REMESA DATE, + IMPORTE_TOTAL TIPO_IMPORTE, + DESCRIPCION VARCHAR(255), + FECHA_ALTA DATE, + FECHA_MODIFICACION DATE, + USUARIO TIPO_USUARIO, + ID_DATOS_BANCO TIPO_ID, + TIPO VARCHAR(40) +); + +CREATE TABLE TIENDA_WEB ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID NOT NULL, + TIENDA_ACTIVA TIPO_BOOLEANO DEFAULT 0 NOT NULL, + ULTIMA_ACTUALIZACION TIMESTAMP, + BDSERVER VARCHAR(255), + BDPORT VARCHAR(20), + BDNAME VARCHAR(255), + BDUSER VARCHAR(255), + BDPASS VARCHAR(255) +); + +CREATE TABLE TIPOS_IVA ( + ID TIPO_ID NOT NULL, + REFERENCIA VARCHAR(255), + DESCRIPCION VARCHAR(255), + IVA TIPO_PORCENTAJE, + RE TIPO_PORCENTAJE +); + +CREATE TABLE UNIDADES_MEDIDA ( + ID TIPO_ID NOT NULL, + DESCRIPCION VARCHAR(255) +); + +CREATE TABLE USUARIOS ( + ID TIPO_ID NOT NULL, + USERNAME VARCHAR(30), + LOGIN TIPO_USUARIO, + PASS VARCHAR(250), + PASSEXPIRED DATE, + BLOQUEADO TIPO_BOOLEANO, + EMAIL VARCHAR(150), + USERDAYSSUN INTEGER, + PRIVILEGED INTEGER, + TIPO CHAR(1), + ID_PERFIL TIPO_ID, + CHECKSUM VARCHAR(250) +); + +CREATE TABLE USUARIOS_EVENTOS ( + APLICACION VARCHAR(250), + ID_USUARIO TIPO_ID, + FECHA CHAR(10), + HORA CHAR(8), + FORM VARCHAR(250), + TITULO_FORM VARCHAR(100), + EVENTO VARCHAR(50), + NOTAS TIPO_NOTAS, + TNAME VARCHAR(20) +); + +CREATE TABLE USUARIOS_LOGON ( + LOGONID CHAR(38) NOT NULL, + ID_USUARIO TIPO_ID, + APLICACION VARCHAR(50), + EQUIPO VARCHAR(50), + DATA VARCHAR(14) +); + + + +/******************************************************************************/ +/**** Views ****/ +/******************************************************************************/ + + +/* View: V_ALB_CLI_SITUACION */ +CREATE VIEW V_ALB_CLI_SITUACION( + ID, + SITUACION) +AS +SELECT ALBARANES_CLIENTE.ID, + case when (FECHA_RECEPCION is not null) then 'SERVIDO' + when (FECHA_ENVIO is null) then 'PENDIENTE' + when (FECHA_ENVIO <= current_date) then 'ENVIADO' + when (FECHA_ENVIO > current_date) then 'PENDIENTE' + else 'N/A' + end as SITUACION +FROM ALBARANES_CLIENTE +; + + + +/* View: V_ALB_CLI_DETALLES */ +CREATE VIEW V_ALB_CLI_DETALLES( + ID_ALBARAN, + ID_PEDIDO, + SITUACION, + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD) +AS +SELECT ALBARANES_CLIENTE_DETALLES.ID_ALBARAN, + ALBARANES_CLIENTE_DETALLES.ID_PEDIDO, + V_ALB_CLI_SITUACION.SITUACION, + ALBARANES_CLIENTE.ID_ALMACEN, + COALESCE(ALBARANES_CLIENTE_DETALLES.ID_ARTICULO, 0), + SUM(COALESCE(ALBARANES_CLIENTE_DETALLES.CANTIDAD, 0)) + +FROM ALBARANES_CLIENTE_DETALLES +INNER JOIN ALBARANES_CLIENTE +ON (ALBARANES_CLIENTE_DETALLES.ID_ALBARAN = ALBARANES_CLIENTE.ID) +INNER JOIN V_ALB_CLI_SITUACION +ON (ALBARANES_CLIENTE_DETALLES.ID_ALBARAN = V_ALB_CLI_SITUACION.ID) + +/*Mantenemos los articulos inventariables y aquellos que no existan en nuestro catlogo con el fin de no falsear la situacin de los pedidos +LEFT JOIN ARTICULOS +ON (ALBARANES_CLIENTE_DETALLES.ID_ARTICULO = ARTICULOS.ID) + +WHERE (ALBARANES_CLIENTE_DETALLES.ID_ARTICULO is not null) +AND (ARTICULOS.INVENTARIABLE = 1) +*/ + +group BY ALBARANES_CLIENTE_DETALLES.ID_ALBARAN, + ALBARANES_CLIENTE_DETALLES.ID_PEDIDO, + V_ALB_CLI_SITUACION.SITUACION, + ALBARANES_CLIENTE.ID_ALMACEN, + ALBARANES_CLIENTE_DETALLES.ID_ARTICULO +; + + + +/* View: V_ALB_PROV_DETALLES */ +CREATE VIEW V_ALB_PROV_DETALLES( + ID_ALBARAN, + ID_PEDIDO, + ID_ALMACEN, + ID_ARTICULO, + DESCRIPCION, + CANTIDAD) +AS +SELECT ALBARANES_PROVEEDOR_DETALLES.ID_ALBARAN, + ALBARANES_PROVEEDOR.ID_PEDIDO, + ALBARANES_PROVEEDOR.ID_ALMACEN, + COALESCE(ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO, 0), + CASE + WHEN ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO IS NULL THEN ALBARANES_PROVEEDOR_DETALLES.CONCEPTO + ELSE NULL + END, + SUM (COALESCE(ALBARANES_PROVEEDOR_DETALLES.CANTIDAD, 0)) AS CANTIDAD +FROM ALBARANES_PROVEEDOR_DETALLES INNER JOIN ALBARANES_PROVEEDOR ON (ALBARANES_PROVEEDOR_DETALLES.ID_ALBARAN = ALBARANES_PROVEEDOR.ID) + +/*Mantenemos los articulos inventariables y aquellos que no existan en nuestro catlogo con el fin de no falsear la situacin de los pedidos +LEFT JOIN ARTICULOS +ON (ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID) + +WHERE (ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO is not null) +AND (ARTICULOS.INVENTARIABLE = 1) +*/ + +GROUP BY ALBARANES_PROVEEDOR_DETALLES.ID_ALBARAN, + ALBARANES_PROVEEDOR.ID_PEDIDO, + ALBARANES_PROVEEDOR.ID_ALMACEN, + ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO, + 5 +; + + +/* View: V_ALBARANES_CLIENTE */ +CREATE VIEW V_ALBARANES_CLIENTE( + ID, + ID_EMPRESA, + ID_CLIENTE, + NOMBRE, + FECHA_ALBARAN, + REFERENCIA, + REFERENCIA_CLIENTE, + TIPO, + SITUACION, + ID_ALMACEN, + NOMBRE_ALMACEN, + ID_PEDIDO, + REF_PEDIDO, + ID_FACTURA, + REF_FACTURA, + ID_DIRECCION, + CALLE, + CODIGO_POSTAL, + POBLACION, + PROVINCIA, + PERSONA_CONTACTO, + TELEFONO, + IMPORTE_NETO, + IMPORTE_PORTE, + DESCUENTO, + IMPORTE_DESCUENTO, + BASE_IMPONIBLE, + IVA, + IMPORTE_IVA, + IMPORTE_TOTAL, + OBSERVACIONES, + INCIDENCIAS, + INCIDENCIAS_ACTIVAS, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + ID_FORMA_PAGO, + FECHA_PREVISTA_ENVIO, + FECHA_ENVIO, + FECHA_RECEPCION) +AS +SELECT + ALBARANES_CLIENTE.ID, + ALBARANES_CLIENTE.ID_EMPRESA, + ALBARANES_CLIENTE.ID_CLIENTE, + CONTACTOS.NOMBRE, + ALBARANES_CLIENTE.FECHA_ALBARAN, + ALBARANES_CLIENTE.REFERENCIA, + ALBARANES_CLIENTE.REFERENCIA_CLIENTE, + ALBARANES_CLIENTE.TIPO, + TRIM(V_ALB_CLI_SITUACION.SITUACION), + ALBARANES_CLIENTE.ID_ALMACEN, + ALMACENES.NOMBRE AS NOMBRE_ALMACEN, + ALBARANES_CLIENTE.ID_PEDIDO, + PEDIDOS_CLIENTE.REFERENCIA AS REF_PEDIDO, + ALBARANES_CLIENTE.ID_FACTURA, + FACTURAS_CLIENTE.REFERENCIA AS REF_FACTURA, + ALBARANES_CLIENTE.ID_DIRECCION, + ALBARANES_CLIENTE.CALLE, + ALBARANES_CLIENTE.CODIGO_POSTAL, + ALBARANES_CLIENTE.POBLACION, + ALBARANES_CLIENTE.PROVINCIA, + ALBARANES_CLIENTE.PERSONA_CONTACTO, + ALBARANES_CLIENTE.TELEFONO, + ALBARANES_CLIENTE.IMPORTE_NETO, + ALBARANES_CLIENTE.IMPORTE_PORTE, + ALBARANES_CLIENTE.DESCUENTO, + ALBARANES_CLIENTE.IMPORTE_DESCUENTO, + ALBARANES_CLIENTE.BASE_IMPONIBLE, + ALBARANES_CLIENTE.IVA, + ALBARANES_CLIENTE.IMPORTE_IVA, + ALBARANES_CLIENTE.IMPORTE_TOTAL, + ALBARANES_CLIENTE.OBSERVACIONES, + ALBARANES_CLIENTE.INCIDENCIAS, + ALBARANES_CLIENTE.INCIDENCIAS_ACTIVAS, + ALBARANES_CLIENTE.FECHA_ALTA, + ALBARANES_CLIENTE.FECHA_MODIFICACION, + ALBARANES_CLIENTE.USUARIO, + ALBARANES_CLIENTE.ID_FORMA_PAGO, + ALBARANES_CLIENTE.FECHA_PREVISTA_ENVIO, + ALBARANES_CLIENTE.FECHA_ENVIO, + ALBARANES_CLIENTE.FECHA_RECEPCION +FROM + ALBARANES_CLIENTE + LEFT OUTER JOIN CONTACTOS ON (CONTACTOS.ID = ALBARANES_CLIENTE.ID_CLIENTE) + LEFT OUTER JOIN PEDIDOS_CLIENTE ON (PEDIDOS_CLIENTE.ID = ALBARANES_CLIENTE.ID_PEDIDO) + LEFT OUTER JOIN FACTURAS_CLIENTE ON (FACTURAS_CLIENTE.ID = ALBARANES_CLIENTE.ID_FACTURA) + LEFT OUTER JOIN V_ALB_CLI_SITUACION ON (V_ALB_CLI_SITUACION.ID = ALBARANES_CLIENTE.ID) + LEFT OUTER JOIN ALMACENES ON (ALMACENES.ID = ALBARANES_CLIENTE.ID_ALMACEN) +; + + + +/* View: V_ALBARANES_PROVEEDOR */ +CREATE VIEW V_ALBARANES_PROVEEDOR( + ID, + ID_EMPRESA, + ID_PROVEEDOR, + NOMBRE, + ID_DIRECCION, + PERSONA_CONTACTO_PROV, + FECHA_ALBARAN, + REFERENCIA, + REFERENCIA_PROVEEDOR, + TIPO, + ID_ALMACEN, + TIPO_ALMACEN, + NOMBRE_ALMACEN, + ID_PEDIDO, + REF_PED_PROVEEDOR, + ID_FACTURA, + REF_FACTURA, + REF_FACTURA_PROV, + CALLE, + CODIGO_POSTAL, + POBLACION, + PROVINCIA, + PERSONA_CONTACTO, + TELEFONO, + IMPORTE_NETO, + IMPORTE_PORTE, + DESCUENTO, + IMPORTE_DESCUENTO, + BASE_IMPONIBLE, + IVA, + IMPORTE_IVA, + IMPORTE_TOTAL, + OBSERVACIONES, + INCIDENCIAS, + INCIDENCIAS_ACTIVAS, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + ID_FORMA_PAGO, + ID_ALBARAN, + REFERENCIA_ALBARAN) +AS +SELECT + ALBARANES_PROVEEDOR.ID, + ALBARANES_PROVEEDOR.ID_EMPRESA, + ALBARANES_PROVEEDOR.ID_PROVEEDOR, + CONTACTOS.NOMBRE, + ALBARANES_PROVEEDOR.ID_DIRECCION, + ALBARANES_PROVEEDOR.PERSONA_CONTACTO_PROV, + ALBARANES_PROVEEDOR.FECHA_ALBARAN, + ALBARANES_PROVEEDOR.REFERENCIA, + ALBARANES_PROVEEDOR.REFERENCIA_PROVEEDOR, + ALBARANES_PROVEEDOR.TIPO, + ALBARANES_PROVEEDOR.ID_ALMACEN, + ALMACENES.TIPO_ALMACEN, + ALMACENES.NOMBRE AS NOMBRE_ALMACEN, + ALBARANES_PROVEEDOR.ID_PEDIDO, + PEDIDOS_PROVEEDOR.REFERENCIA AS REF_PED_PROVEEDOR, + ALBARANES_PROVEEDOR.ID_FACTURA, + FACTURAS_PROVEEDOR.REFERENCIA AS REF_FACTURA, + ALBARANES_PROVEEDOR.REF_FACTURA_PROV, + ALBARANES_PROVEEDOR.CALLE, + ALBARANES_PROVEEDOR.CODIGO_POSTAL, + ALBARANES_PROVEEDOR.POBLACION, + ALBARANES_PROVEEDOR.PROVINCIA, + ALBARANES_PROVEEDOR.PERSONA_CONTACTO, + ALBARANES_PROVEEDOR.TELEFONO, + ALBARANES_PROVEEDOR.IMPORTE_NETO, + ALBARANES_PROVEEDOR.IMPORTE_PORTE, + ALBARANES_PROVEEDOR.DESCUENTO, + ALBARANES_PROVEEDOR.IMPORTE_DESCUENTO, + ALBARANES_PROVEEDOR.BASE_IMPONIBLE, + ALBARANES_PROVEEDOR.IVA, + ALBARANES_PROVEEDOR.IMPORTE_IVA, + ALBARANES_PROVEEDOR.IMPORTE_TOTAL, + ALBARANES_PROVEEDOR.OBSERVACIONES, + ALBARANES_PROVEEDOR.INCIDENCIAS, + ALBARANES_PROVEEDOR.INCIDENCIAS_ACTIVAS, + ALBARANES_PROVEEDOR.FECHA_ALTA, + ALBARANES_PROVEEDOR.FECHA_MODIFICACION, + ALBARANES_PROVEEDOR.USUARIO, + ALBARANES_PROVEEDOR.ID_FORMA_PAGO, + ALBARANES_PROVEEDOR.ID_ALBARAN, + ALB2.REFERENCIA AS REFERENCIA_ALBARAN +FROM + ALBARANES_PROVEEDOR + INNER JOIN CONTACTOS ON (CONTACTOS.ID = ALBARANES_PROVEEDOR.ID_PROVEEDOR) + LEFT OUTER JOIN PEDIDOS_PROVEEDOR ON (PEDIDOS_PROVEEDOR.ID = ALBARANES_PROVEEDOR.ID_PEDIDO) + LEFT OUTER JOIN FACTURAS_PROVEEDOR ON (FACTURAS_PROVEEDOR.ID = ALBARANES_PROVEEDOR.ID_FACTURA) + LEFT OUTER JOIN ALMACENES ON (ALMACENES.ID = ALBARANES_PROVEEDOR.ID_ALMACEN) + LEFT OUTER JOIN ALBARANES_PROVEEDOR ALB2 ON (ALB2.ID = ALBARANES_PROVEEDOR.ID_ALBARAN) +; + + + +/* View: V_ALMACENES */ +CREATE VIEW V_ALMACENES( + ID, + ID_EMPRESA, + NOMBRE, + CALLE, + PROVINCIA, + POBLACION, + CODIGO_POSTAL, + TELEFONO, + MOVIL, + FAX, + PERSONA_CONTACTO, + OBSERVACIONES, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO) +AS +SELECT ALMACENES.ID, ALMACENES.ID_EMPRESA, ALMACENES.NOMBRE, + ALMACENES.CALLE, ALMACENES.PROVINCIA, ALMACENES.POBLACION, ALMACENES.CODIGO_POSTAL, + ALMACENES.TELEFONO, ALMACENES.MOVIL, ALMACENES.FAX, ALMACENES.PERSONA_CONTACTO, + ALMACENES.OBSERVACIONES, ALMACENES.FECHA_ALTA, ALMACENES.FECHA_MODIFICACION, ALMACENES.USUARIO +FROM ALMACENES +WHERE ALMACENES.TIPO_ALMACEN = 'ALMACEN' +; + + + +/* View: V_ARTICULOS_PARA_COMPRA */ +CREATE VIEW V_ARTICULOS_PARA_COMPRA( + ID, + ID_EMPRESA, + REFERENCIA, + DESCRIPCION, + UNIDAD_MEDIDA, + FAMILIA, + IMAGEN, + COMISIONABLE, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + REFERENCIA_PROV, + PRECIO_COSTE, + PRECIO_PORTE, + DESCUENTO, + PRECIO_NETO, + INVENTARIABLE, + ID_PROVEEDOR, + NOMBRE_PROVEEDOR, + ELIMINADO, + FABRICANTE, + REFERENCIA_FABR, + PARAM_MARGEN, + PRECIO_PVP_VENTA, + TIEMPO, + PARAM_TIEMPO, + MANO_OBRA, + PRECIO_PVP_TOTAL, + ID_ARTICULO) +AS +SELECT ARTICULOS.ID, ARTICULOS.ID_EMPRESA, ARTICULOS.REFERENCIA, ARTICULOS.DESCRIPCION, + ARTICULOS.UNIDAD_MEDIDA, ARTICULOS.FAMILIA, ARTICULOS.IMAGEN, + ARTICULOS.COMISIONABLE, ARTICULOS.FECHA_ALTA, + ARTICULOS.FECHA_MODIFICACION, ARTICULOS.USUARIO, + ARTICULOS_PROVEEDORES.REFERENCIA_PROV, + ARTICULOS_PROVEEDORES.PRECIO_COSTE, + ARTICULOS_PROVEEDORES.PRECIO_PORTE, + ARTICULOS_PROVEEDORES.DESCUENTO, + ARTICULOS_PROVEEDORES.PRECIO_NETO, + ARTICULOS.INVENTARIABLE, + ARTICULOS_PROVEEDORES.ID_PROVEEDOR, + CONTACTOS.NOMBRE AS NOMBRE_PROVEEDOR, + ARTICULOS.ELIMINADO, + ARTICULOS.FABRICANTE, + ARTICULOS.REFERENCIA_FABR, + ARTICULOS.PARAM_MARGEN, + ARTICULOS_PROVEEDORES.PRECIO_PVP_VENTA, + ARTICULOS.TIEMPO, + ARTICULOS.PARAM_TIEMPO, + ARTICULOS.MANO_OBRA, + ARTICULOS_PROVEEDORES.PRECIO_PVP_TOTAL, + ARTICULOS.ID +FROM ARTICULOS +LEFT OUTER JOIN ARTICULOS_PROVEEDORES ON (ARTICULOS_PROVEEDORES.ID_ARTICULO = ARTICULOS.ID) +LEFT OUTER JOIN CONTACTOS ON (CONTACTOS.ID = ARTICULOS_PROVEEDORES.ID_PROVEEDOR) +WHERE (ARTICULOS.ELIMINADO = 0) +; + + + +/* View: V_ARTICULOS_PVP_MAX */ +CREATE VIEW V_ARTICULOS_PVP_MAX( + ID_ARTICULO, + PRECIO_PVP_VENTA, + PRECIO_PVP_TOTAL) +AS +select +ID_ARTICULO, MAX(COALESCE(PRECIO_PVP_VENTA,0)) as PRECIO_PVP_VENTA, MAX(COALESCE(PRECIO_PVP_TOTAL,0)) as PRECIO_PVP_TOTAL +from ARTICULOS_PROVEEDORES +group by 1 +; + + + +/* View: V_ARTICULOS_PARA_VENTA */ +CREATE VIEW V_ARTICULOS_PARA_VENTA( + ID, + ID_EMPRESA, + REFERENCIA, + DESCRIPCION, + UNIDAD_MEDIDA, + FAMILIA, + IMAGEN, + COMISIONABLE, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + REFERENCIA_PROV, + PRECIO_COSTE, + PRECIO_PORTE, + DESCUENTO, + PRECIO_NETO, + INVENTARIABLE, + ELIMINADO, + FABRICANTE, + REFERENCIA_FABR, + PARAM_MARGEN, + PRECIO_PVP_VENTA, + TIEMPO, + PARAM_TIEMPO, + MANO_OBRA, + PRECIO_PVP_TOTAL) +AS +SELECT ARTICULOS.ID, ARTICULOS.ID_EMPRESA, ARTICULOS.REFERENCIA, ARTICULOS.DESCRIPCION, + ARTICULOS.UNIDAD_MEDIDA, ARTICULOS.FAMILIA, ARTICULOS.IMAGEN, + ARTICULOS.COMISIONABLE, ARTICULOS.FECHA_ALTA, + ARTICULOS.FECHA_MODIFICACION, ARTICULOS.USUARIO, + +/*Estos Campos se necesitan para que no se tenga que tocar la lgica de seleccin de articulos de toda la aplicacin*/ + '' as REFERENCIA_PROV, + 0 as PRECIO_COSTE, + 0 as PRECIO_PORTE, + 0 as DESCUENTO, + 0 as PRECIO_NETO, + + ARTICULOS.INVENTARIABLE, + ARTICULOS.ELIMINADO, + ARTICULOS.FABRICANTE, + ARTICULOS.REFERENCIA_FABR, + ARTICULOS.PARAM_MARGEN, + V_ARTICULOS_PVP_MAX.PRECIO_PVP_VENTA, + ARTICULOS.TIEMPO, + ARTICULOS.PARAM_TIEMPO, + ARTICULOS.MANO_OBRA, + V_ARTICULOS_PVP_MAX.PRECIO_PVP_TOTAL + +FROM ARTICULOS +LEFT OUTER JOIN V_ARTICULOS_PVP_MAX ON (V_ARTICULOS_PVP_MAX.ID_ARTICULO = ARTICULOS.ID) +WHERE (ARTICULOS.ELIMINADO = 0) +; + + + +/* View: V_CONTACTOS */ +CREATE VIEW V_CONTACTOS( + ID, + ID_CATEGORIA, + NIF_CIF, + NOMBRE, + PERSONA_CONTACTO, + CALLE, + POBLACION, + PROVINCIA, + CODIGO_POSTAL, + TELEFONO_1, + TELEFONO_2, + MOVIL_1, + MOVIL_2, + FAX, + EMAIL_1, + EMAIL_2, + PAGINA_WEB, + NOTAS, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + ID_EMPRESA, + REFERENCIA) +AS +SELECT CONTACTOS.ID, + CONTACTOS_CATEGORIAS.ID_CATEGORIA, + CONTACTOS.NIF_CIF, + CONTACTOS.NOMBRE, + CONTACTOS.PERSONA_CONTACTO, + CONTACTOS.CALLE, + CONTACTOS.POBLACION, + CONTACTOS.PROVINCIA, + CONTACTOS.CODIGO_POSTAL, + CONTACTOS.TELEFONO_1, + CONTACTOS.TELEFONO_2, + CONTACTOS.MOVIL_1, + CONTACTOS.MOVIL_2, + CONTACTOS.FAX, + CONTACTOS.EMAIL_1, + CONTACTOS.EMAIL_2, + CONTACTOS.PAGINA_WEB, + CONTACTOS.NOTAS, + CONTACTOS.FECHA_ALTA, + CONTACTOS.FECHA_MODIFICACION, + CONTACTOS.USUARIO, + EMPRESAS_CONTACTOS.ID_EMPRESA, + CONTACTOS.REFERENCIA +FROM CONTACTOS + INNER JOIN CONTACTOS_CATEGORIAS ON (CONTACTOS_CATEGORIAS.ID_CONTACTO = + CONTACTOS.ID) + INNER JOIN EMPRESAS_CONTACTOS ON (EMPRESAS_CONTACTOS.ID_CONTACTO = + CONTACTOS.ID) +; + + + +/* View: V_CLIENTES */ +/* View: V_CLIENTES */ +CREATE VIEW V_CLIENTES( + ID, + ID_CATEGORIA, + NIF_CIF, + NOMBRE, + PERSONA_CONTACTO, + CALLE, + POBLACION, + PROVINCIA, + CODIGO_POSTAL, + TELEFONO_1, + TELEFONO_2, + MOVIL_1, + MOVIL_2, + FAX, + EMAIL_1, + EMAIL_2, + PAGINA_WEB, + NOTAS, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + ID_EMPRESA, + REFERENCIA, + ID_AGENTE, + GRUPO_CLIENTE, + NOMBRE_COMERCIAL, + VENCIMIENTO_FACTURAS_1, + VENCIMIENTO_FACTURAS_2, + VENCIMIENTO_FACTURAS_3, + BLOQUEADO, + AGENTE, + RAPEL, + EMAIL_ADMINISTRACION, + REGIMEN_IVA, + MOTIVO_BLOQUEO, + RECARGO_EQUIVALENCIA, + ID_TIPO_IVA, + ID_FORMA_PAGO, + TIENDA_WEB, + CODIGO_ASIGNADO, + DESCUENTO, + FELICITACION) +AS +SELECT + V_CONTACTOS.ID, + V_CONTACTOS.ID_CATEGORIA, + V_CONTACTOS.NIF_CIF, + V_CONTACTOS.NOMBRE, + V_CONTACTOS.PERSONA_CONTACTO, + V_CONTACTOS.CALLE, + V_CONTACTOS.POBLACION, + V_CONTACTOS.PROVINCIA, + V_CONTACTOS.CODIGO_POSTAL, + V_CONTACTOS.TELEFONO_1, + V_CONTACTOS.TELEFONO_2, + V_CONTACTOS.MOVIL_1, + V_CONTACTOS.MOVIL_2, + V_CONTACTOS.FAX, + V_CONTACTOS.EMAIL_1, + V_CONTACTOS.EMAIL_2, + V_CONTACTOS.PAGINA_WEB, + V_CONTACTOS.NOTAS, + V_CONTACTOS.FECHA_ALTA, + V_CONTACTOS.FECHA_MODIFICACION, + V_CONTACTOS.USUARIO, + V_CONTACTOS.ID_EMPRESA, + V_CONTACTOS.REFERENCIA, + CLIENTES_DATOS.ID_AGENTE, + CLIENTES_DATOS.GRUPO_CLIENTE, + CLIENTES_DATOS.NOMBRE_COMERCIAL, + CLIENTES_DATOS.VENCIMIENTO_FACTURAS_1, + CLIENTES_DATOS.VENCIMIENTO_FACTURAS_2, + CLIENTES_DATOS.VENCIMIENTO_FACTURAS_3, + CLIENTES_DATOS.BLOQUEADO, + CONTACTOS.NOMBRE AS AGENTE, + CLIENTES_DATOS.RAPEL, + CLIENTES_DATOS.EMAIL_ADMINISTRACION, + CLIENTES_DATOS.REGIMEN_IVA, + CLIENTES_DATOS.MOTIVO_BLOQUEO, + CLIENTES_DATOS.RECARGO_EQUIVALENCIA, + CLIENTES_DATOS.ID_TIPO_IVA, + CLIENTES_DATOS.ID_FORMA_PAGO, + CLIENTES_DATOS.TIENDA_WEB, + CLIENTES_DATOS.CODIGO_ASIGNADO, + CLIENTES_DATOS.DESCUENTO, + CLIENTES_DATOS.FELICITACION +FROM + V_CONTACTOS + LEFT OUTER JOIN CLIENTES_DATOS ON (V_CONTACTOS.ID = CLIENTES_DATOS.ID_CLIENTE) + LEFT OUTER JOIN CONTACTOS ON (CLIENTES_DATOS.ID_AGENTE = CONTACTOS.ID) +WHERE + V_CONTACTOS.ID_CATEGORIA = 1 +; + +CREATE VIEW V_AGENTES( + ID, + ID_CATEGORIA, + NIF_CIF, + NOMBRE, + CALLE, + POBLACION, + PROVINCIA, + CODIGO_POSTAL, + TELEFONO_1, + TELEFONO_2, + MOVIL_1, + MOVIL_2, + FAX, + EMAIL_1, + EMAIL_2, + PAGINA_WEB, + NOTAS, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + ID_EMPRESA, + REFERENCIA, + FECHA_ALTA_EMPRESA, + FECHA_BAJA, + CAUSA_BAJA) +AS +SELECT V_CONTACTOS.ID, + V_CONTACTOS.ID_CATEGORIA, + V_CONTACTOS.NIF_CIF, + V_CONTACTOS.NOMBRE, + V_CONTACTOS.CALLE, + V_CONTACTOS.POBLACION, + V_CONTACTOS.PROVINCIA, + V_CONTACTOS.CODIGO_POSTAL, + V_CONTACTOS.TELEFONO_1, + V_CONTACTOS.TELEFONO_2, + V_CONTACTOS.MOVIL_1, + V_CONTACTOS.MOVIL_2, + V_CONTACTOS.FAX, + V_CONTACTOS.EMAIL_1, + V_CONTACTOS.EMAIL_2, + V_CONTACTOS.PAGINA_WEB, + V_CONTACTOS.NOTAS, + V_CONTACTOS.FECHA_ALTA, + V_CONTACTOS.FECHA_MODIFICACION, + V_CONTACTOS.USUARIO, + V_CONTACTOS.ID_EMPRESA, V_CONTACTOS.REFERENCIA, + AGENTES_DATOS.FECHA_ALTA_EMPRESA, + AGENTES_DATOS.FECHA_BAJA, + AGENTES_DATOS.CAUSA_BAJA + FROM V_CONTACTOS +INNER JOIN AGENTES_DATOS ON (AGENTES_DATOS.ID_AGENTE = V_CONTACTOS.ID) + WHERE V_CONTACTOS.ID_CATEGORIA = 3 +; + +/* View: V_EMPLEADOS */ +CREATE VIEW V_EMPLEADOS( + ID, + ID_CATEGORIA, + NIF_CIF, + NOMBRE, + PERSONA_CONTACTO, + CALLE, + POBLACION, + PROVINCIA, + CODIGO_POSTAL, + TELEFONO_1, + TELEFONO_2, + MOVIL_1, + MOVIL_2, + FAX, + EMAIL_1, + EMAIL_2, + PAGINA_WEB, + NOTAS, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + ID_EMPRESA, + REFERENCIA, + FECHA_NACIMIENTO, + CATEGORIA, + FECHA_ALTA_EMPRESA, + FORMACION_BASE, + FORMACION_COMPLE, + FORMACION_RECIBIDA, + EXPERIENCIA, + CONTRATO, + DURACION, + FECHA_BAJA, + CAUSA_BAJA) +AS +SELECT V_CONTACTOS.ID, + V_CONTACTOS.ID_CATEGORIA, + V_CONTACTOS.NIF_CIF, + V_CONTACTOS.NOMBRE, + V_CONTACTOS.PERSONA_CONTACTO, + V_CONTACTOS.CALLE, + V_CONTACTOS.POBLACION, + V_CONTACTOS.PROVINCIA, + V_CONTACTOS.CODIGO_POSTAL, + V_CONTACTOS.TELEFONO_1, + V_CONTACTOS.TELEFONO_2, + V_CONTACTOS.MOVIL_1, + V_CONTACTOS.MOVIL_2, + V_CONTACTOS.FAX, + V_CONTACTOS.EMAIL_1, + V_CONTACTOS.EMAIL_2, + V_CONTACTOS.PAGINA_WEB, + V_CONTACTOS.NOTAS, + V_CONTACTOS.FECHA_ALTA, + V_CONTACTOS.FECHA_MODIFICACION, + V_CONTACTOS.USUARIO, + V_CONTACTOS.ID_EMPRESA, + V_CONTACTOS.REFERENCIA, + + EMPLEADOS_DATOS.FECHA_NACIMIENTO, + EMPLEADOS_DATOS.CATEGORIA, + EMPLEADOS_DATOS.FECHA_ALTA_EMPRESA, + EMPLEADOS_DATOS.FORMACION_BASE, + EMPLEADOS_DATOS.FORMACION_COMPLE, + EMPLEADOS_DATOS.FORMACION_RECIBIDA, + EMPLEADOS_DATOS.EXPERIENCIA, + EMPLEADOS_DATOS.CONTRATO, + EMPLEADOS_DATOS.DURACION, + EMPLEADOS_DATOS.FECHA_BAJA, + EMPLEADOS_DATOS.CAUSA_BAJA + +FROM V_CONTACTOS +INNER JOIN EMPLEADOS_DATOS ON (EMPLEADOS_DATOS.ID_EMPLEADO = V_CONTACTOS.ID) +WHERE V_CONTACTOS.ID_CATEGORIA = 3 +; + +/* View: V_REC_FAC_CLI */ +CREATE VIEW V_REC_FAC_CLI( + ID_FACTURA, + NUM_RECIBOS) +AS +SELECT FACTURAS_CLIENTE.ID, COUNT(RECIBOS_CLIENTE.ID) +FROM FACTURAS_CLIENTE +LEFT JOIN RECIBOS_CLIENTE +ON (RECIBOS_CLIENTE.ID_FACTURA = FACTURAS_CLIENTE.ID) +GROUP BY FACTURAS_CLIENTE.ID +; + + + +/* View: V_REC_CLI_SITUACION */ +CREATE VIEW V_REC_CLI_SITUACION( + ID_RECIBO, + SITUACION) +AS +SELECT RECIBOS_CLIENTE.ID, +CASE WHEN (COUNT(PAGOS_CLIENTE.ID_RECIBO)=0) THEN 'PENDIENTE' + WHEN (MOD(COUNT(PAGOS_CLIENTE.ID_RECIBO), 2)=0) THEN 'DEVUELTO' + ELSE 'COBRADO' +END +FROM RECIBOS_CLIENTE +LEFT JOIN PAGOS_CLIENTE +ON (PAGOS_CLIENTE.ID_RECIBO = RECIBOS_CLIENTE.ID) +GROUP BY RECIBOS_CLIENTE.ID +; + + + +/* View: V_REC_FAC_CLI_COBRADOS */ +CREATE VIEW V_REC_FAC_CLI_COBRADOS( + ID_FACTURA, + NUM_REC_COBRADOS) +AS +SELECT RECIBOS_CLIENTE.ID_FACTURA, COUNT(V_REC_CLI_SITUACION.ID_RECIBO) +FROM V_REC_CLI_SITUACION LEFT JOIN RECIBOS_CLIENTE ON + (RECIBOS_CLIENTE.ID = V_REC_CLI_SITUACION.ID_RECIBO) +WHERE (TRIM(V_REC_CLI_SITUACION.SITUACION) = 'COBRADO') +GROUP BY RECIBOS_CLIENTE.ID_FACTURA +; + + + +/* View: V_FAC_CLI_SITUACION */ +CREATE VIEW V_FAC_CLI_SITUACION( + ID_FACTURA, + SITUACION) +AS +SELECT ID_FACTURA, +CASE + WHEN ((SUM(NUM_RECIBOS) = 0) + OR (SUM(NUM_REC_COBRADOS) = 0)) THEN 'PENDIENTE' + WHEN (SUM(NUM_RECIBOS) = SUM(NUM_REC_COBRADOS)) THEN 'PAGADA' + ELSE 'PARCIALMENTE PAGADA' +END AS SITUACION +FROM +( + SELECT ID_FACTURA, NUM_RECIBOS, 0 AS NUM_REC_COBRADOS + FROM V_REC_FAC_CLI + UNION ALL + SELECT ID_FACTURA, 0 AS NUM_RECIBOS, NUM_REC_COBRADOS + FROM V_REC_FAC_CLI_COBRADOS +) +GROUP BY ID_FACTURA +; + + + +/* View: V_REC_FAC_PRO */ +CREATE VIEW V_REC_FAC_PRO( + ID_FACTURA, + NUM_RECIBOS) +AS +SELECT FACTURAS_PROVEEDOR.ID, COUNT(RECIBOS_PROVEEDOR.ID) +FROM FACTURAS_PROVEEDOR +LEFT JOIN RECIBOS_PROVEEDOR +ON (RECIBOS_PROVEEDOR.ID_FACTURA = FACTURAS_PROVEEDOR.ID) +GROUP BY FACTURAS_PROVEEDOR.ID +; + + + +/* View: V_REC_PRO_SITUACION */ +CREATE VIEW V_REC_PRO_SITUACION( + ID_RECIBO, + SITUACION) +AS +SELECT RECIBOS_PROVEEDOR.ID, +CASE WHEN (COUNT(PAGOS_PROVEEDOR.ID_RECIBO)=0) THEN 'PENDIENTE' + WHEN (MOD(COUNT(PAGOS_PROVEEDOR.ID_RECIBO), 2)=0) THEN 'DEVUELTO' + ELSE 'PAGADO' +END +FROM RECIBOS_PROVEEDOR +LEFT JOIN PAGOS_PROVEEDOR +ON (PAGOS_PROVEEDOR.ID_RECIBO = RECIBOS_PROVEEDOR.ID) +GROUP BY RECIBOS_PROVEEDOR.ID +; + + + +/* View: V_REC_FAC_PRO_PAGADOS */ +CREATE VIEW V_REC_FAC_PRO_PAGADOS( + ID_FACTURA, + NUM_REC_PAGADOS) +AS +SELECT RECIBOS_PROVEEDOR.ID_FACTURA, COUNT(V_REC_PRO_SITUACION.ID_RECIBO) +FROM V_REC_PRO_SITUACION LEFT JOIN RECIBOS_PROVEEDOR ON + (RECIBOS_PROVEEDOR.ID = V_REC_PRO_SITUACION.ID_RECIBO) +WHERE (TRIM(V_REC_PRO_SITUACION.SITUACION) = 'PAGADO') +GROUP BY RECIBOS_PROVEEDOR.ID_FACTURA +; + + + +/* View: V_FAC_PRO_SITUACION */ +CREATE VIEW V_FAC_PRO_SITUACION( + ID_FACTURA, + SITUACION) +AS +SELECT ID_FACTURA, +CASE + WHEN ((SUM(NUM_RECIBOS) = 0) + OR (SUM(NUM_REC_PAGADOS) = 0)) THEN 'PENDIENTE' + WHEN (SUM(NUM_RECIBOS) = SUM(NUM_REC_PAGADOS)) THEN 'PAGADA' + ELSE 'PARCIALMENTE PAGADA' +END AS SITUACION +FROM +( + SELECT ID_FACTURA, NUM_RECIBOS, 0 AS NUM_REC_PAGADOS + FROM V_REC_FAC_PRO + UNION ALL + SELECT ID_FACTURA, 0 AS NUM_RECIBOS, NUM_REC_PAGADOS + FROM V_REC_FAC_PRO_PAGADOS +) +GROUP BY ID_FACTURA +; + + + +/* View: V_FACTURAS_CLIENTE */ +CREATE VIEW V_FACTURAS_CLIENTE( + ID, + ID_EMPRESA, + REFERENCIA, + TIPO, + ID_COMISION_LIQUIDADA, + FECHA_FACTURA, + FECHA_VENCIMIENTO, + FECHA_RETENCION, + SITUACION, + BASE_IMPONIBLE, + DESCUENTO, + IMPORTE_DESCUENTO, + IVA, + IMPORTE_IVA, + RE, + IMPORTE_RE, + IMPORTE_TOTAL, + OBSERVACIONES, + ID_CLIENTE, + NIF_CIF, + NOMBRE, + ID_DIRECCION, + CALLE, + POBLACION, + PROVINCIA, + CODIGO_POSTAL, + DATOS_BANCARIOS, + CLIENTE_FINAL, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + ID_FORMA_PAGO, + RECARGO_EQUIVALENCIA, + ID_TIPO_IVA, + IMPORTE_NETO, + IMPORTE_PORTE, + ID_AGENTE, + REFERENCIA_COMISION, + RETENCION, + IMPORTE_RETENCION) + AS +SELECT FACTURAS_CLIENTE.ID, + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.REFERENCIA, + CASE WHEN (FACTURAS_CLIENTE.IMPORTE_TOTAL < 0) THEN 'A' ELSE 'F' END AS TIPO, + FACTURAS_CLIENTE.ID_COMISION_LIQUIDADA, + FACTURAS_CLIENTE.FECHA_FACTURA, + FACTURAS_CLIENTE.FECHA_VENCIMIENTO, + FACTURAS_CLIENTE.FECHA_RETENCION, + TRIM(V_FAC_CLI_SITUACION.SITUACION), + FACTURAS_CLIENTE.BASE_IMPONIBLE, + FACTURAS_CLIENTE.DESCUENTO, + FACTURAS_CLIENTE.IMPORTE_DESCUENTO, + FACTURAS_CLIENTE.IVA, + FACTURAS_CLIENTE.IMPORTE_IVA, + FACTURAS_CLIENTE.RE, + FACTURAS_CLIENTE.IMPORTE_RE, + FACTURAS_CLIENTE.IMPORTE_TOTAL, + FACTURAS_CLIENTE.OBSERVACIONES, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE.NIF_CIF, + FACTURAS_CLIENTE.NOMBRE, + FACTURAS_CLIENTE.ID_DIRECCION, + FACTURAS_CLIENTE.CALLE, + FACTURAS_CLIENTE.POBLACION, + FACTURAS_CLIENTE.PROVINCIA, + FACTURAS_CLIENTE.CODIGO_POSTAL, + FACTURAS_CLIENTE.DATOS_BANCARIOS, + FACTURAS_CLIENTE.CLIENTE_FINAL, + FACTURAS_CLIENTE.FECHA_ALTA, + FACTURAS_CLIENTE.FECHA_MODIFICACION, + FACTURAS_CLIENTE.USUARIO, + FACTURAS_CLIENTE.ID_FORMA_PAGO, + FACTURAS_CLIENTE.RECARGO_EQUIVALENCIA, + FACTURAS_CLIENTE.ID_TIPO_IVA, + FACTURAS_CLIENTE.IMPORTE_NETO, + FACTURAS_CLIENTE.IMPORTE_PORTE, + CLIENTES_DATOS.ID_AGENTE, + COMISIONES_LIQUIDADAS.REFERENCIA, + FACTURAS_CLIENTE.RETENCION, + FACTURAS_CLIENTE.IMPORTE_RETENCION + FROM V_FAC_CLI_SITUACION + LEFT JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = V_FAC_CLI_SITUACION.ID_FACTURA) + LEFT JOIN COMISIONES_LIQUIDADAS + ON (COMISIONES_LIQUIDADAS.ID = FACTURAS_CLIENTE.ID_COMISION_LIQUIDADA) + LEFT JOIN CLIENTES_DATOS + ON (CLIENTES_DATOS.ID_CLIENTE = FACTURAS_CLIENTE.ID_CLIENTE); +; + + +/* View: V_FACTURAS_PROVEEDOR */ +CREATE VIEW V_FACTURAS_PROVEEDOR( + ID, + ID_EMPRESA, + REFERENCIA, + TIPO, + REFERENCIA_PROVEEDOR, + FECHA_FACTURA, + FECHA_VENCIMIENTO, + SITUACION, + BASE_IMPONIBLE, + DESCUENTO, + IMPORTE_DESCUENTO, + IVA, + IMPORTE_IVA, + RE, + IMPORTE_RE, + IMPORTE_TOTAL, + OBSERVACIONES, + ID_PROVEEDOR, + NIF_CIF, + NOMBRE, + CALLE, + POBLACION, + PROVINCIA, + CODIGO_POSTAL, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + ID_FORMA_PAGO, + RECARGO_EQUIVALENCIA, + ID_TIPO_IVA, + IMPORTE_NETO, + IMPORTE_PORTE, + DATOS_BANCARIOS) +AS +SELECT FACTURAS_PROVEEDOR.ID, + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR.REFERENCIA, + CASE WHEN (FACTURAS_PROVEEDOR.IMPORTE_TOTAL < 0) THEN 'A' ELSE 'F' END AS TIPO, + FACTURAS_PROVEEDOR.REFERENCIA_PROVEEDOR, + FACTURAS_PROVEEDOR.FECHA_FACTURA, + FACTURAS_PROVEEDOR.FECHA_VENCIMIENTO, + TRIM(V_FAC_PRO_SITUACION.SITUACION), + FACTURAS_PROVEEDOR.BASE_IMPONIBLE, + FACTURAS_PROVEEDOR.DESCUENTO, + FACTURAS_PROVEEDOR.IMPORTE_DESCUENTO, + FACTURAS_PROVEEDOR.IVA, + FACTURAS_PROVEEDOR.IMPORTE_IVA, + FACTURAS_PROVEEDOR.RE, + FACTURAS_PROVEEDOR.IMPORTE_RE, + FACTURAS_PROVEEDOR.IMPORTE_TOTAL, + FACTURAS_PROVEEDOR.OBSERVACIONES, + FACTURAS_PROVEEDOR.ID_PROVEEDOR, + FACTURAS_PROVEEDOR.NIF_CIF, + FACTURAS_PROVEEDOR.NOMBRE, + FACTURAS_PROVEEDOR.CALLE, + FACTURAS_PROVEEDOR.POBLACION, + FACTURAS_PROVEEDOR.PROVINCIA, + FACTURAS_PROVEEDOR.CODIGO_POSTAL, + FACTURAS_PROVEEDOR.FECHA_ALTA, + FACTURAS_PROVEEDOR.FECHA_MODIFICACION, + FACTURAS_PROVEEDOR.USUARIO, + FACTURAS_PROVEEDOR.ID_FORMA_PAGO, + FACTURAS_PROVEEDOR.RECARGO_EQUIVALENCIA, + FACTURAS_PROVEEDOR.ID_TIPO_IVA, + FACTURAS_PROVEEDOR.IMPORTE_NETO, + FACTURAS_PROVEEDOR.IMPORTE_PORTE, + FACTURAS_PROVEEDOR.DATOS_BANCARIOS + FROM V_FAC_PRO_SITUACION + LEFT JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = V_FAC_PRO_SITUACION.ID_FACTURA) + LEFT JOIN PROVEEDORES_DATOS + ON (PROVEEDORES_DATOS.ID_PROVEEDOR = FACTURAS_PROVEEDOR.ID_PROVEEDOR) +; + + + +/* View: V_HIS_MOV_ALB_CLI */ +CREATE VIEW V_HIS_MOV_ALB_CLI( + FECHA, + ID_ALMACEN, + ID_ARTICULO, + TIPO_MOVIMIENTO, + CANTIDAD, + CAUSA) +AS +SELECT + ALBARANES_CLIENTE.FECHA_ALBARAN, + V_ALB_CLI_DETALLES.ID_ALMACEN, + V_ALB_CLI_DETALLES.ID_ARTICULO, + CASE WHEN V_ALB_CLI_DETALLES.CANTIDAD < 0 THEN 'E' + ELSE 'S' END, + (-1)*V_ALB_CLI_DETALLES.CANTIDAD, + CASE WHEN ALBARANES_CLIENTE.IMPORTE_TOTAL < 0 THEN 'Orden de devolucin de cliente ' || ALBARANES_CLIENTE.REFERENCIA + ELSE 'Albarn de cliente ' || ALBARANES_CLIENTE.REFERENCIA END + +FROM V_ALB_CLI_DETALLES +LEFT JOIN ALBARANES_CLIENTE +ON (V_ALB_CLI_DETALLES.ID_ALBARAN = ALBARANES_CLIENTE.ID) + +WHERE (V_ALB_CLI_DETALLES.ID_ALMACEN IS NOT NULL) +AND (V_ALB_CLI_DETALLES.SITUACION in ('ENVIADO', 'SERVIDO')) +; + + + +/* View: V_HIS_MOV_ALB_PROV */ +CREATE VIEW V_HIS_MOV_ALB_PROV( + FECHA, + ID_ALMACEN, + ID_ARTICULO, + TIPO_MOVIMIENTO, + CANTIDAD, + CAUSA) +AS +SELECT + ALBARANES_PROVEEDOR.FECHA_ALBARAN, + V_ALB_PROV_DETALLES.ID_ALMACEN, + V_ALB_PROV_DETALLES.ID_ARTICULO, + CASE WHEN V_ALB_PROV_DETALLES.CANTIDAD < 0 THEN 'S' + ELSE 'E' END, + V_ALB_PROV_DETALLES.CANTIDAD, + CASE WHEN ALBARANES_PROVEEDOR.IMPORTE_TOTAL < 0 THEN 'Orden de devolucin ' || ALBARANES_PROVEEDOR.REFERENCIA + ELSE 'Albarn de proveedor ' || ALBARANES_PROVEEDOR.REFERENCIA END + + +FROM V_ALB_PROV_DETALLES +LEFT JOIN ALBARANES_PROVEEDOR +ON (V_ALB_PROV_DETALLES.ID_ALBARAN = ALBARANES_PROVEEDOR.ID) +WHERE (V_ALB_PROV_DETALLES.ID_ALMACEN IS NOT NULL) +; + + + +/* View: V_HIS_MOV_REGULARIZACIONES */ +CREATE VIEW V_HIS_MOV_REGULARIZACIONES( + FECHA, + ID_ALMACEN, + ID_ARTICULO, + TIPO_MOVIMIENTO, + CANTIDAD, + CAUSA) +AS +SELECT FECHA_MOVIMIENTO, ID_ALMACEN, ID_ARTICULO, TIPO, +CASE WHEN TIPO = 'S' THEN (-1)* CANTIDAD + ELSE CANTIDAD END, +'Regularizacin por - ' || CAUSA +FROM MOVIMIENTOS +; + + + +/* View: V_HIS_MOV_AUX */ +CREATE VIEW V_HIS_MOV_AUX( + FECHA, + ID_ALMACEN, + ID_ARTICULO, + TIPO_MOVIMIENTO, + CANTIDAD, + CAUSA) +AS +SELECT + FECHA, + ID_ALMACEN, + ID_ARTICULO, + TIPO_MOVIMIENTO, + CANTIDAD, + CAUSA +FROM V_HIS_MOV_ALB_PROV +UNION ALL +SELECT + FECHA, + ID_ALMACEN, + ID_ARTICULO, + TIPO_MOVIMIENTO, + CANTIDAD, + CAUSA +FROM V_HIS_MOV_ALB_CLI +UNION ALL +SELECT + FECHA, + ID_ALMACEN, + ID_ARTICULO, + TIPO_MOVIMIENTO, + CANTIDAD, + CAUSA +FROM V_HIS_MOV_REGULARIZACIONES +; + + + +/* View: V_HISTORICO_MOVIMIENTOS */ +CREATE VIEW V_HISTORICO_MOVIMIENTOS( + FECHA, + ID_ALMACEN, + ID_EMPRESA, + NOMBRE_ALMACEN, + ID_ARTICULO, + FAMILIA, + REFERENCIA, + UNIDAD_MEDIDA, + FABRICANTE, + REFERENCIA_FABR, + DESCRIPCION, + TIPO_MOVIMIENTO, + CANTIDAD, + CAUSA) +AS +SELECT + V_HIS_MOV_AUX.FECHA, + V_HIS_MOV_AUX.ID_ALMACEN, + ALMACENES.ID_EMPRESA, + ALMACENES.NOMBRE, + V_HIS_MOV_AUX.ID_ARTICULO, + ARTICULOS.FAMILIA, + ARTICULOS.REFERENCIA, + ARTICULOS.UNIDAD_MEDIDA, + ARTICULOS.FABRICANTE, + ARTICULOS.REFERENCIA_FABR, + ARTICULOS.DESCRIPCION, + V_HIS_MOV_AUX.TIPO_MOVIMIENTO, + V_HIS_MOV_AUX.CANTIDAD, + V_HIS_MOV_AUX.CAUSA + +FROM V_HIS_MOV_AUX +LEFT JOIN ALMACENES ON (ALMACENES.ID = V_HIS_MOV_AUX.ID_ALMACEN) +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = V_HIS_MOV_AUX.ID_ARTICULO) + +WHERE (V_HIS_MOV_AUX.ID_ARTICULO <> 0) +AND (ARTICULOS.INVENTARIABLE = 1) +; + + +/* View: V_INV_DETALLE_RESERVAS */ +CREATE VIEW V_INV_DETALLE_RESERVAS( + ID, + ID_EMPRESA, + ID_ALMACEN, + NOMBRE_ALMACEN, + FECHA_RESERVA, + CAUSA_RESERVA, + ID_ARTICULO, + REFERENCIA, + DESCRIPCION, + FAMILIA, + UNIDAD_MEDIDA, + FABRICANTE, + REFERENCIA_FABR, + CANTIDAD, + ID_ALMACEN_RESERVA, + NOMBRE_ALMACEN_RESERVA, + ID_EMPRESA_ALMACEN_RESERVA) +AS +select movimientos.id, almacenes1.ID_EMPRESA, movimientos.ID_ALMACEN, almacenes1.nombre as nombre_almacen, +movimientos.fecha_movimiento as fecha_reserva, movimientos.causa, movimientos.id_articulo, +articulos.referencia, articulos.descripcion, articulos.familia, +articulos.unidad_medida, articulos.fabricante, articulos.referencia_fabr, +movimientos.cantidad, movimientos.id_almacen_reserva, +almacenes2.nombre as nombre_almacen_reserva, almacenes2.id_empresa +from movimientos +left join almacenes almacenes1 on (almacenes1.ID = movimientos.ID_ALMACEN) +left join almacenes almacenes2 on (almacenes2.ID = movimientos.ID_ALMACEN_RESERVA) +left join articulos on (articulos.id = movimientos.id_articulo) +where tipo = 'R' +; +; + + + +/* View: V_INV_ENTRADAS_ALB */ +CREATE VIEW V_INV_ENTRADAS_ALB( + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD) +AS +SELECT ID_ALMACEN, ID_ARTICULO, SUM(CANTIDAD) +FROM V_ALB_PROV_DETALLES +WHERE (ID_ALMACEN IS NOT NULL) +GROUP BY ID_ALMACEN, ID_ARTICULO +; + + + +/* View: V_INV_ENTRADAS_MOV */ +CREATE VIEW V_INV_ENTRADAS_MOV( + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD) +AS +SELECT ID_ALMACEN, ID_ARTICULO, SUM(CANTIDAD) +FROM MOVIMIENTOS +WHERE TIPO = 'E' +GROUP BY ID_ALMACEN, ID_ARTICULO +; + + + +/* View: V_INV_ENTRADAS_AUX */ +CREATE VIEW V_INV_ENTRADAS_AUX( + TIPO, + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD) +AS +SELECT 'ALB', + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD +FROM V_INV_ENTRADAS_ALB +UNION ALL +SELECT 'MOV', + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD +FROM V_INV_ENTRADAS_MOV +; + + + +/* View: V_INV_ENTRADAS */ +CREATE VIEW V_INV_ENTRADAS( + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD) +AS +SELECT +ID_ALMACEN, +ID_ARTICULO, +SUM(CANTIDAD) as CANTIDAD +FROM V_INV_ENTRADAS_AUX + +GROUP BY ID_ALMACEN, + ID_ARTICULO +; + + + +/* View: V_PED_PROV_ARTICULOS_RECIBIDOS */ +CREATE VIEW V_PED_PROV_ARTICULOS_RECIBIDOS( + ID_PEDIDO, + ID_ARTICULO, + DESCRIPCION, + CANTIDAD) +AS +SELECT ID_PEDIDO, ID_ARTICULO, DESCRIPCION, + SUM(CANTIDAD) AS CANTIDAD +FROM V_ALB_PROV_DETALLES +WHERE (ID_PEDIDO is not null) +GROUP BY ID_PEDIDO, ID_ARTICULO, DESCRIPCION; + + +/* View: V_PED_PROV_DETALLES */ +CREATE VIEW V_PED_PROV_DETALLES( + ID_PEDIDO, + ID_ALMACEN, + ID_ARTICULO, + DESCRIPCION, + CANTIDAD) +AS +SELECT PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO, + PEDIDOS_PROVEEDOR.ID_ALMACEN, + COALESCE(PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO, 0), + CASE + WHEN PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO IS NULL THEN PEDIDOS_PROVEEDOR_DETALLES.CONCEPTO + ELSE NULL + END, + SUM(COALESCE(PEDIDOS_PROVEEDOR_DETALLES.CANTIDAD, 0)) + +FROM PEDIDOS_PROVEEDOR_DETALLES +LEFT JOIN PEDIDOS_PROVEEDOR +ON (PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO = PEDIDOS_PROVEEDOR.ID) + +/*Mantenemos los articulos inventariables y aquellos que no existan en nuestro catlogo con el fin de no falsear la situacin de los pedidos +LEFT JOIN ARTICULOS +ON (PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID) + +WHERE (PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO is not null) +AND (ARTICULOS.INVENTARIABLE = 1) +*/ + +GROUP BY PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO, + PEDIDOS_PROVEEDOR.ID_ALMACEN, + PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO, + 4; + + + +/* View: V_PED_PROV_ARTICULOS_AUX */ +CREATE VIEW V_PED_PROV_ARTICULOS_AUX( + ID_PEDIDO, + ID_ARTICULO, + DESCRIPCION, + CANTIDAD_PEDIDA, + CANTIDAD_RECIBIDA) +AS +SELECT + V_PED_PROV_DETALLES.ID_PEDIDO, + V_PED_PROV_DETALLES.ID_ARTICULO, + V_PED_PROV_DETALLES.DESCRIPCION, + V_PED_PROV_DETALLES.CANTIDAD AS CANTIDAD_PEDIDA, + 0 as CANTIDAD_RECIBIDA +FROM V_PED_PROV_DETALLES +UNION ALL +SELECT + V_PED_PROV_ARTICULOS_RECIBIDOS.ID_PEDIDO, + V_PED_PROV_ARTICULOS_RECIBIDOS.ID_ARTICULO, + V_PED_PROV_ARTICULOS_RECIBIDOS.DESCRIPCION, + NULL as CANTIDAD_PEDIDA, + V_PED_PROV_ARTICULOS_RECIBIDOS.CANTIDAD AS CANTIDAD_RECIBIDA +FROM V_PED_PROV_ARTICULOS_RECIBIDOS +; + + +/* View: V_PED_PROV_ARTICULOS */ +CREATE VIEW V_PED_PROV_ARTICULOS( + ID_PEDIDO, + ID_ARTICULO, + DESCRIPCION, + CANTIDAD_PEDIDA, + CANTIDAD_RECIBIDA, + CANTIDAD_PENDIENTE) +AS +SELECT ID_PEDIDO, + /*PEDIDOS_PROVEEDOR.ID_ALMACEN,*/ + ID_ARTICULO, + DESCRIPCION, + SUM(CANTIDAD_PEDIDA) as CANTIDAD_PEDIDA, + SUM(CANTIDAD_RECIBIDA) as CANTIDAD_RECIBIDA, + SUM(CANTIDAD_PEDIDA) - SUM(CANTIDAD_RECIBIDA) as CANTIDAD_PENDIENTE +FROM V_PED_PROV_ARTICULOS_AUX +/* +LEFT JOIN PEDIDOS_PROVEEDOR +ON (PEDIDOS_PROVEEDOR.ID = V_PED_PROV_ARTICULOS_AUX.ID_PEDIDO) +*/ +GROUP BY ID_PEDIDO, + /*PEDIDOS_PROVEEDOR.ID_ALMACEN,*/ + ID_ARTICULO, + DESCRIPCION +HAVING SUM(CANTIDAD_PEDIDA) IS NOT NULL +; + + + +/* View: V_INV_ENTRADAS_PENDIENTES */ +CREATE VIEW V_INV_ENTRADAS_PENDIENTES( + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD) +AS +SELECT PEDIDOS_PROVEEDOR.ID_ALMACEN, V_PED_PROV_ARTICULOS.ID_ARTICULO, SUM(V_PED_PROV_ARTICULOS.CANTIDAD_PENDIENTE) +FROM V_PED_PROV_ARTICULOS +LEFT JOIN PEDIDOS_PROVEEDOR +ON (PEDIDOS_PROVEEDOR.ID = V_PED_PROV_ARTICULOS.ID_PEDIDO) +WHERE (PEDIDOS_PROVEEDOR.ID_ALMACEN IS NOT NULL) +GROUP BY PEDIDOS_PROVEEDOR.ID_ALMACEN, V_PED_PROV_ARTICULOS.ID_ARTICULO +; + + + +/* View: V_INV_RESERVAS_AUX */ +CREATE VIEW V_INV_RESERVAS_AUX( + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD) +AS +SELECT ID_ALMACEN, ID_ARTICULO, SUM(CANTIDAD) +FROM V_ALB_CLI_DETALLES +WHERE (ID_ALMACEN IS NOT NULL) +AND (SITUACION = 'PENDIENTE') +GROUP BY ID_ALMACEN, ID_ARTICULO +UNION ALL +SELECT ID_ALMACEN, + ID_ARTICULO, + CANTIDAD +FROM MOVIMIENTOS +WHERE TIPO = 'R' +; + + + +/* View: V_INV_RESERVAS */ +CREATE VIEW V_INV_RESERVAS( + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD) +AS +SELECT ID_ALMACEN, ID_ARTICULO, SUM(CANTIDAD) +FROM V_INV_RESERVAS_AUX +GROUP BY ID_ALMACEN, ID_ARTICULO +; + + + +/* View: V_INV_SALIDAS_ALB */ +CREATE VIEW V_INV_SALIDAS_ALB( + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD) +AS +SELECT ID_ALMACEN, ID_ARTICULO, SUM(CANTIDAD) +FROM V_ALB_CLI_DETALLES +WHERE (ID_ALMACEN IS NOT NULL) +AND (SITUACION in ('ENVIADO', 'SERVIDO')) +GROUP BY ID_ALMACEN, ID_ARTICULO +; + + + +/* View: V_INV_SALIDAS_MOV */ +CREATE VIEW V_INV_SALIDAS_MOV( + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD) +AS +SELECT ID_ALMACEN, ID_ARTICULO, SUM(CANTIDAD) +FROM MOVIMIENTOS +WHERE TIPO = 'S' +GROUP BY ID_ALMACEN, ID_ARTICULO +; + + + +/* View: V_INV_SALIDAS_AUX */ +CREATE VIEW V_INV_SALIDAS_AUX( + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD) +AS +SELECT ID_ALMACEN, + ID_ARTICULO, + CANTIDAD +FROM V_INV_SALIDAS_ALB +UNION ALL +SELECT ID_ALMACEN, + ID_ARTICULO, + CANTIDAD +FROM V_INV_SALIDAS_MOV +; + + + +/* View: V_INV_SALIDAS */ +CREATE VIEW V_INV_SALIDAS( + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD) +AS +SELECT +ID_ALMACEN, +ID_ARTICULO, +SUM(CANTIDAD) as CANTIDAD +FROM V_INV_SALIDAS_AUX + +GROUP BY ID_ALMACEN, + ID_ARTICULO +; + + + +/* View: V_INV_STOCK_AUX */ +CREATE VIEW V_INV_STOCK_AUX( + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD_ENTRADA, + CANTIDAD_SALIDA) +AS +SELECT ID_ALMACEN, + ID_ARTICULO, + CANTIDAD as CANTIDAD_ENTRADA, + 0 as CANTIDAD_SALIDA +FROM V_INV_ENTRADAS +UNION ALL +SELECT ID_ALMACEN, + ID_ARTICULO, + 0 as CANTIDAD_ENTRADA, + CANTIDAD as CANTIDAD_SALIDA +FROM V_INV_SALIDAS +; + + + +/* View: V_INV_STOCK */ +CREATE VIEW V_INV_STOCK( + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD) +AS +SELECT +ID_ALMACEN, +ID_ARTICULO, +(SUM(CANTIDAD_ENTRADA) - SUM(CANTIDAD_SALIDA)) as CANTIDAD +FROM V_INV_STOCK_AUX +GROUP BY ID_ALMACEN, + ID_ARTICULO +; + + + +/* View: V_INVENTARIO_AUX */ +CREATE VIEW V_INVENTARIO_AUX( + ID_ALMACEN, + ID_ARTICULO, + STOCK, + PENDIENTE_RECEPCION, + RESERVA) +AS +SELECT ID_ALMACEN, ID_ARTICULO, CANTIDAD as STOCK, 0 as PENDIENTES, 0 as RESERVADAS +FROM V_INV_STOCK +UNION ALL +SELECT ID_ALMACEN, ID_ARTICULO, 0 as STOCK, CANTIDAD as PENDIENTES, 0 AS RESERVADAS +FROM V_INV_ENTRADAS_PENDIENTES +UNION ALL +SELECT ID_ALMACEN, ID_ARTICULO, 0 as STOCK, 0 as PENDIENTES, CANTIDAD AS RESERVADAS +FROM V_INV_RESERVAS +; + + + +/* View: V_INVENTARIO */ +CREATE VIEW V_INVENTARIO( + ID_ALMACEN, + ID_EMPRESA, + TIPO_ALMACEN, + NOMBRE, + ID_ARTICULO, + REFERENCIA, + FAMILIA, + DESCRIPCION, + REFERENCIA_FAB, + UNIDAD_MEDIDA, + STOCK, + UNIDADES_ALMACEN, + RESERVA, + PENDIENTE_RECEPCION) +AS +SELECT ID_ALMACEN, + ALMACENES.ID_EMPRESA, + ALMACENES.TIPO_ALMACEN, + ALMACENES.NOMBRE, + ID_ARTICULO, + ARTICULOS.REFERENCIA, + ARTICULOS.FAMILIA, + ARTICULOS.DESCRIPCION, + ARTICULOS.REFERENCIA_FABR, + ARTICULOS.UNIDAD_MEDIDA, +/* COALESCE(ARTICULOS.PRECIO_NETO,0) as PRECIO_NETO,*/ + (SUM(STOCK) - SUM(RESERVA)) as STOCK, + SUM(STOCK) as UNIDADES_ALMACEN, + + /*Si las unidades son negativas no se tiene en cuenta el coste*/ +/* CASE WHEN (SUM(STOCK) < 0) THEN 0 + ELSE (COALESCE(ARTICULOS.PRECIO_NETO,0) * SUM(STOCK)) + END as COSTE_UNIDADES, +*/ + SUM(RESERVA) as RESERVA, + SUM(PENDIENTE_RECEPCION) as PENDIENTE_RECEPCION + +FROM V_INVENTARIO_AUX +LEFT JOIN ARTICULOS +ON (ARTICULOS.ID = V_INVENTARIO_AUX.ID_ARTICULO) +LEFT JOIN ALMACENES +ON (ALMACENES.ID = V_INVENTARIO_AUX.ID_ALMACEN) + +WHERE (ID_ARTICULO <> 0) +AND (ARTICULOS.ELIMINADO = 0) +AND (ARTICULOS.INVENTARIABLE = 1) + +GROUP BY ID_ALMACEN, + ALMACENES.ID_EMPRESA, + ALMACENES.TIPO_ALMACEN, + ALMACENES.NOMBRE, + ID_ARTICULO, + ARTICULOS.REFERENCIA, + ARTICULOS.FAMILIA, + ARTICULOS.DESCRIPCION, + ARTICULOS.REFERENCIA_FABR, + ARTICULOS.UNIDAD_MEDIDA +/* ARTICULOS.PRECIO_NETO*/ + +/*QUITAMOS AQUELLAS TUPLAS DE LAS QUE NO TENEMOS UNIDADES EN EL ALAMCEN, NO HAY RESERVAS NI PEDIDOS PENDIENTES DE RECIBIR*/ +HAVING ((SUM(STOCK) <> 0 ) OR (SUM(RESERVA) <> 0) OR (SUM(PENDIENTE_RECEPCION) <> 0)) +; + + +/* View: V_OBRAS */ +CREATE VIEW V_OBRAS( + ID, + ID_EMPRESA, + NOMBRE, + CALLE, + PROVINCIA, + POBLACION, + CODIGO_POSTAL, + TELEFONO, + MOVIL, + FAX, + PERSONA_CONTACTO, + OBSERVACIONES, + ID_CLIENTE, + NOMBRE_CLIENTE, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + ID_EJECUCION) +AS +SELECT ALMACENES.ID, ALMACENES.ID_EMPRESA, ALMACENES.NOMBRE, + ALMACENES.CALLE, ALMACENES.PROVINCIA, ALMACENES.POBLACION, ALMACENES.CODIGO_POSTAL, + ALMACENES.TELEFONO, ALMACENES.MOVIL, ALMACENES.FAX, ALMACENES.PERSONA_CONTACTO, + ALMACENES.OBSERVACIONES, OBRAS_DATOS.ID_CLIENTE, CLIENTES.NOMBRE AS NOMBRE_CLIENTE, + ALMACENES.FECHA_ALTA, ALMACENES.FECHA_MODIFICACION, ALMACENES.USUARIO, + CASE + WHEN (OBRAS_EJECUCIONES.FECHA_INICIO IS NULL) THEN NULL + WHEN (OBRAS_EJECUCIONES.FECHA_INICIO IS NOT NULL) THEN OBRAS_EJECUCIONES.ID + END AS ID_EJECUCION +FROM ALMACENES +INNER JOIN OBRAS_DATOS ON (OBRAS_DATOS.ID_ALMACEN = ALMACENES.ID) +LEFT OUTER JOIN CONTACTOS AS CLIENTES ON (CLIENTES.ID = OBRAS_DATOS.ID_CLIENTE) +LEFT OUTER JOIN OBRAS_EJECUCIONES ON ((OBRAS_EJECUCIONES.ID_OBRA = ALMACENES.ID) AND (OBRAS_EJECUCIONES.FECHA_FIN IS NULL)) +WHERE ALMACENES.TIPO_ALMACEN = 'OBRA'; + + +/* View: V_OBRAS_EJECUCIONES */ +CREATE VIEW V_OBRAS_EJECUCIONES( + ID, + ID_OBRA, + FECHA_INICIO, + FECHA_FIN, + ID_SUBCONTRATA, + NOMBRE, + IMPORTE_GASTOS, + IMPORTE_INGRESOS, + IMPORTE_TOTAL, + OBSERVACIONES, + FECHA_ALTA, + FECHA_MODIFICACION) +AS +SELECT + OBRAS_EJECUCIONES.ID, + OBRAS_EJECUCIONES.ID_OBRA, + OBRAS_EJECUCIONES.FECHA_INICIO, + OBRAS_EJECUCIONES.FECHA_FIN, + OBRAS_EJECUCIONES.ID_SUBCONTRATA, + CONTACTOS.NOMBRE, + COALESCE(SUM(PEDIDOS_PROVEEDOR.BASE_IMPONIBLE), 0) IMPORTE_GASTOS, + COALESCE(SUM(PRESUPUESTOS_CLIENTE.BASE_IMPONIBLE), 0) IMPORTE_INGRESOS, + COALESCE(SUM(PRESUPUESTOS_CLIENTE.BASE_IMPONIBLE), 0) - COALESCE(SUM(PEDIDOS_PROVEEDOR.BASE_IMPONIBLE), 0) IMPORTE_TOTAL, + OBRAS_EJECUCIONES.OBSERVACIONES, + OBRAS_EJECUCIONES.FECHA_ALTA, + OBRAS_EJECUCIONES.FECHA_MODIFICACION +FROM OBRAS_EJECUCIONES + LEFT OUTER JOIN CONTACTOS ON (CONTACTOS.ID = OBRAS_EJECUCIONES.ID_SUBCONTRATA) + LEFT OUTER JOIN OBRAS_EJECUCIONES_PRESUPUESTOS ON (OBRAS_EJECUCIONES_PRESUPUESTOS.ID_EJECUCION = OBRAS_EJECUCIONES.ID) + LEFT OUTER JOIN PRESUPUESTOS_CLIENTE ON (PRESUPUESTOS_CLIENTE.ID = OBRAS_EJECUCIONES_PRESUPUESTOS.ID_PRESUPUESTO) + LEFT OUTER JOIN OBRAS_EJECUCIONES_PEDIDOS_PROV ON (OBRAS_EJECUCIONES_PEDIDOS_PROV.ID_EJECUCION = OBRAS_EJECUCIONES.ID) + LEFT OUTER JOIN PEDIDOS_PROVEEDOR ON (PEDIDOS_PROVEEDOR.ID = OBRAS_EJECUCIONES_PEDIDOS_PROV.ID_PEDIDO) +GROUP BY + OBRAS_EJECUCIONES.ID, + OBRAS_EJECUCIONES.ID_OBRA, + OBRAS_EJECUCIONES.FECHA_INICIO, + OBRAS_EJECUCIONES.FECHA_FIN, + OBRAS_EJECUCIONES.ID_SUBCONTRATA, + CONTACTOS.NOMBRE, + OBRAS_EJECUCIONES.OBSERVACIONES, + OBRAS_EJECUCIONES.FECHA_ALTA, + OBRAS_EJECUCIONES.FECHA_MODIFICACION; + + +/* View: V_PED_PROV_SITUACION */ +CREATE VIEW V_PED_PROV_SITUACION( + ID_PEDIDO, + SITUACION) +AS +SELECT ID_PEDIDO, +CASE WHEN (SUM(CANTIDAD_PENDIENTE) > 0) AND (SUM(CANTIDAD_RECIBIDA) = 0) THEN 'PENDIENTE' + WHEN (SUM(CANTIDAD_PENDIENTE) <= 0) THEN 'RECIBIDO' + WHEN (SUM(CANTIDAD_PENDIENTE) > 0) AND (SUM(CANTIDAD_RECIBIDA) > 0) THEN 'PARCIAL' + ELSE 'N/A' +END AS SITUACION +FROM V_PED_PROV_ARTICULOS +GROUP BY V_PED_PROV_ARTICULOS.ID_PEDIDO +; + + + +/* View: V_PEDIDOS_PROVEEDOR */ +CREATE VIEW V_PEDIDOS_PROVEEDOR( + ID, + ID_EMPRESA, + ID_PROVEEDOR, + NOMBRE, + ID_DIRECCION, + PERSONA_CONTACTO_PROV, + REFERENCIA, + SITUACION, + FECHA_ENVIO, + FECHA_PEDIDO, + FECHA_CONFIRMACION, + FECHA_ENTREGA, + ID_ALMACEN, + TIPO_ALMACEN, + NOMBRE_ALMACEN, + ID_OBRA, + NOMBRE_OBRA, + OBSERVACIONES, + IMPORTE_TOTAL, + INCIDENCIAS, + INCIDENCIAS_ACTIVAS, + CALLE, + POBLACION, + PROVINCIA, + CODIGO_POSTAL, + PERSONA_CONTACTO, + TELEFONO, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + ID_PEDIDO_CLIENTE, + REF_PED_CLIENTE, + IMPORTE_NETO, + IMPORTE_PORTE, + DESCUENTO, + IMPORTE_DESCUENTO, + BASE_IMPONIBLE, + IVA, + IMPORTE_IVA, + ID_FORMA_PAGO, + ID_FACTURA, + REF_FACTURA_PROV) +AS +SELECT + PEDIDOS_PROVEEDOR.ID, + PEDIDOS_PROVEEDOR.ID_EMPRESA, + PEDIDOS_PROVEEDOR.ID_PROVEEDOR, + CONTACTOS.NOMBRE, + PEDIDOS_PROVEEDOR.ID_DIRECCION, + PEDIDOS_PROVEEDOR.PERSONA_CONTACTO_PROV, + PEDIDOS_PROVEEDOR.REFERENCIA, + TRIM(V_PED_PROV_SITUACION.SITUACION), + PEDIDOS_PROVEEDOR.FECHA_ENVIO, + PEDIDOS_PROVEEDOR.FECHA_PEDIDO, + PEDIDOS_PROVEEDOR.FECHA_CONFIRMACION, + PEDIDOS_PROVEEDOR.FECHA_ENTREGA, + PEDIDOS_PROVEEDOR.ID_ALMACEN, + ALMACENES.TIPO_ALMACEN, + ALMACENES.NOMBRE AS NOMBRE_ALMACEN, + PEDIDOS_PROVEEDOR.ID_OBRA, + OBRAS.NOMBRE AS NOMBRE_OBRA, + PEDIDOS_PROVEEDOR.OBSERVACIONES, + PEDIDOS_PROVEEDOR.IMPORTE_TOTAL, + PEDIDOS_PROVEEDOR.INCIDENCIAS, + PEDIDOS_PROVEEDOR.INCIDENCIAS_ACTIVAS, + PEDIDOS_PROVEEDOR.CALLE, + PEDIDOS_PROVEEDOR.POBLACION, + PEDIDOS_PROVEEDOR.PROVINCIA, + PEDIDOS_PROVEEDOR.CODIGO_POSTAL, + PEDIDOS_PROVEEDOR.PERSONA_CONTACTO, + PEDIDOS_PROVEEDOR.TELEFONO, + PEDIDOS_PROVEEDOR.FECHA_ALTA, + PEDIDOS_PROVEEDOR.FECHA_MODIFICACION, + PEDIDOS_PROVEEDOR.USUARIO, + PEDIDOS_PROVEEDOR.ID_PEDIDO_CLIENTE, + PEDIDOS_CLIENTE.REFERENCIA AS REF_PED_CLIENTE, + PEDIDOS_PROVEEDOR.IMPORTE_NETO, + PEDIDOS_PROVEEDOR.IMPORTE_PORTE, + PEDIDOS_PROVEEDOR.DESCUENTO, + PEDIDOS_PROVEEDOR.IMPORTE_DESCUENTO, + PEDIDOS_PROVEEDOR.BASE_IMPONIBLE, + PEDIDOS_PROVEEDOR.IVA, + PEDIDOS_PROVEEDOR.IMPORTE_IVA, + PEDIDOS_PROVEEDOR.ID_FORMA_PAGO, + PEDIDOS_PROVEEDOR.ID_FACTURA, + FACTURAS_PROVEEDOR.REFERENCIA + +FROM + PEDIDOS_PROVEEDOR + INNER JOIN CONTACTOS ON (PEDIDOS_PROVEEDOR.ID_PROVEEDOR = CONTACTOS.ID) + LEFT OUTER JOIN V_PED_PROV_SITUACION ON (V_PED_PROV_SITUACION.ID_PEDIDO = PEDIDOS_PROVEEDOR.ID) + LEFT OUTER JOIN ALMACENES ON (ALMACENES.ID = PEDIDOS_PROVEEDOR.ID_ALMACEN) + LEFT OUTER JOIN ALMACENES OBRAS ON (OBRAS.ID = PEDIDOS_PROVEEDOR.ID_OBRA) + LEFT OUTER JOIN PEDIDOS_CLIENTE ON (PEDIDOS_CLIENTE.ID = PEDIDOS_PROVEEDOR.ID_PEDIDO_CLIENTE) + LEFT OUTER JOIN FACTURAS_PROVEEDOR ON (FACTURAS_PROVEEDOR.ID = PEDIDOS_PROVEEDOR.ID_FACTURA) +; + + + +/* View: V_PRESUPUESTOS_CLIENTE */ +CREATE VIEW V_PRESUPUESTOS_CLIENTE( + ID, + ID_EMPRESA, + FECHA_PRESUPUESTO, + FECHA_DECISION, + REFERENCIA, + REFERENCIA_AUX, + SITUACION, + ID_CLIENTE, + ID_DIRECCION, + NIF_CIF, + NOMBRE, + REFERENCIA_CLIENTE, + CLIENTE_FINAL, + PORTADA, + MEMORIA, + OBSERVACIONES, + INCIDENCIAS, + INCIDENCIAS_ACTIVAS, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + IMPORTE_NETO, + IMPORTE_PORTE, + DESCUENTO, + IMPORTE_DESCUENTO, + BASE_IMPONIBLE, + IVA, + IMPORTE_IVA, + IMPORTE_TOTAL, + ID_FORMA_PAGO, + ID_FACTURA, + FACTURA, + PERSONA_CONTACTO, + DESCRIPCION_BONIFICACION, + IMPORTE_BONIFICACION) +AS +SELECT + PRESUPUESTOS_CLIENTE.ID, + PRESUPUESTOS_CLIENTE.ID_EMPRESA, + PRESUPUESTOS_CLIENTE.FECHA_PRESUPUESTO, + PRESUPUESTOS_CLIENTE.FECHA_DECISION, + PRESUPUESTOS_CLIENTE.REFERENCIA, + PRESUPUESTOS_CLIENTE.REFERENCIA_AUX, + PRESUPUESTOS_CLIENTE.SITUACION, + PRESUPUESTOS_CLIENTE.ID_CLIENTE, + PRESUPUESTOS_CLIENTE.ID_DIRECCION, + CONTACTOS.NIF_CIF, + CONTACTOS.NOMBRE, + PRESUPUESTOS_CLIENTE.REFERENCIA_CLIENTE, + PRESUPUESTOS_CLIENTE.CLIENTE_FINAL, + PRESUPUESTOS_CLIENTE.PORTADA, + PRESUPUESTOS_CLIENTE.MEMORIA, + PRESUPUESTOS_CLIENTE.OBSERVACIONES, + PRESUPUESTOS_CLIENTE.INCIDENCIAS, + PRESUPUESTOS_CLIENTE.INCIDENCIAS_ACTIVAS, + PRESUPUESTOS_CLIENTE.FECHA_ALTA, + PRESUPUESTOS_CLIENTE.FECHA_MODIFICACION, + PRESUPUESTOS_CLIENTE.USUARIO, + PRESUPUESTOS_CLIENTE.IMPORTE_NETO, + PRESUPUESTOS_CLIENTE.IMPORTE_PORTE, + PRESUPUESTOS_CLIENTE.DESCUENTO, + PRESUPUESTOS_CLIENTE.IMPORTE_DESCUENTO, + PRESUPUESTOS_CLIENTE.BASE_IMPONIBLE, + PRESUPUESTOS_CLIENTE.IVA, + PRESUPUESTOS_CLIENTE.IMPORTE_IVA, + PRESUPUESTOS_CLIENTE.IMPORTE_TOTAL, + PRESUPUESTOS_CLIENTE.ID_FORMA_PAGO, + PRESUPUESTOS_CLIENTE.ID_FACTURA, + FACTURAS_CLIENTE.REFERENCIA, + PRESUPUESTOS_CLIENTE.PERSONA_CONTACTO, + PRESUPUESTOS_CLIENTE.DESCRIPCION_BONIFICACION, + PRESUPUESTOS_CLIENTE.IMPORTE_BONIFICACION +FROM + PRESUPUESTOS_CLIENTE + INNER JOIN CONTACTOS ON (CONTACTOS.ID = PRESUPUESTOS_CLIENTE.ID_CLIENTE) + LEFT OUTER JOIN FACTURAS_CLIENTE ON (FACTURAS_CLIENTE.ID = PRESUPUESTOS_CLIENTE.ID_FACTURA) +; + + + +/* View: V_PROVEEDORES */ +CREATE VIEW V_PROVEEDORES( + ID, + ID_CATEGORIA, + NIF_CIF, + NOMBRE, + PERSONA_CONTACTO, + CALLE, + POBLACION, + PROVINCIA, + CODIGO_POSTAL, + TELEFONO_1, + TELEFONO_2, + MOVIL_1, + MOVIL_2, + FAX, + EMAIL_1, + EMAIL_2, + PAGINA_WEB, + NOTAS, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + ID_EMPRESA, + REFERENCIA, + DESCUENTO, + DESCRIPCION_PROVEEDOR, + CODIGO_ASIGNADO, + GRUPO_PROVEEDOR, + REGIMEN_IVA, + ID_TIPO_IVA, + ID_FORMA_PAGO, + TIENDA_WEB, + HOMOLOGADO, + CERTIFICACION, + SUBCONTRATA, + EMAIL_ADMINISTRACION, + VENCIMIENTO_FACTURAS_1, + VENCIMIENTO_FACTURAS_2, + VENCIMIENTO_FACTURAS_3) +AS +SELECT + V_CONTACTOS.ID, + V_CONTACTOS.ID_CATEGORIA, + V_CONTACTOS.NIF_CIF, + V_CONTACTOS.NOMBRE, + V_CONTACTOS.PERSONA_CONTACTO, + V_CONTACTOS.CALLE, + V_CONTACTOS.POBLACION, + V_CONTACTOS.PROVINCIA, + V_CONTACTOS.CODIGO_POSTAL, + V_CONTACTOS.TELEFONO_1, + V_CONTACTOS.TELEFONO_2, + V_CONTACTOS.MOVIL_1, + V_CONTACTOS.MOVIL_2, + V_CONTACTOS.FAX, + V_CONTACTOS.EMAIL_1, + V_CONTACTOS.EMAIL_2, + V_CONTACTOS.PAGINA_WEB, + V_CONTACTOS.NOTAS, + V_CONTACTOS.FECHA_ALTA, + V_CONTACTOS.FECHA_MODIFICACION, + V_CONTACTOS.USUARIO, + V_CONTACTOS.ID_EMPRESA, + V_CONTACTOS.REFERENCIA, + PROVEEDORES_DATOS.DESCUENTO, + PROVEEDORES_DATOS.DESCRIPCION_PROVEEDOR, + PROVEEDORES_DATOS.CODIGO_ASIGNADO, + PROVEEDORES_DATOS.GRUPO_PROVEEDOR, + PROVEEDORES_DATOS.REGIMEN_IVA, + PROVEEDORES_DATOS.ID_TIPO_IVA, + PROVEEDORES_DATOS.ID_FORMA_PAGO, + PROVEEDORES_DATOS.TIENDA_WEB, + PROVEEDORES_DATOS.HOMOLOGADO, + PROVEEDORES_DATOS.CERTIFICACION, + PROVEEDORES_DATOS.SUBCONTRATA, + PROVEEDORES_DATOS.EMAIL_ADMINISTRACION, + PROVEEDORES_DATOS.VENCIMIENTO_FACTURAS_1, + PROVEEDORES_DATOS.VENCIMIENTO_FACTURAS_2, + PROVEEDORES_DATOS.VENCIMIENTO_FACTURAS_3 + +FROM + V_CONTACTOS + INNER JOIN PROVEEDORES_DATOS ON (PROVEEDORES_DATOS.ID_PROVEEDOR = V_CONTACTOS.ID) +WHERE + V_CONTACTOS.ID_CATEGORIA = 2 +; + + + +/* View: V_REC_CLI_COMPENSADOS */ +CREATE VIEW V_REC_CLI_COMPENSADOS( + ID_RECIBO, + IMPORTE_TOTAL_COMPENSADO) +AS +select ID_RECIBO_COMPENSADO, SUM((IMPORTE + OTROS_GASTOS)) as IMPORTE_TOTAL +from RECIBOS_CLIENTE +where ID_RECIBO_COMPENSADO is not null +group by ID_RECIBO_COMPENSADO +; + + + +/* View: V_REC_PRO_COMPENSADOS */ +CREATE VIEW V_REC_PRO_COMPENSADOS( + ID_RECIBO, + IMPORTE_TOTAL_COMPENSADO) +AS +select ID_RECIBO_COMPENSADO, SUM((IMPORTE + OTROS_GASTOS)) as IMPORTE_TOTAL +from RECIBOS_PROVEEDOR +where ID_RECIBO_COMPENSADO is not null +group by ID_RECIBO_COMPENSADO +; + + +/* View: V_RECIBOS_CLIENTE */ +CREATE VIEW V_RECIBOS_CLIENTE( + ID, + ID_RECIBO_COMPENSADO, + REFERENCIA_REC_COMPENSADO, + REFERENCIA, + SITUACION, + ID_FACTURA, + ID_REMESA, + REFERENCIA_REMESA, + FECHA_EMISION, + FECHA_VENCIMIENTO, + DESCRIPCION, + OBSERVACIONES, + IMPORTE, + OTROS_GASTOS, + IMPORTE_TOTAL, + FECHA_FACTURA, + FORMA_PAGO_FACTURA, + IMPORTE_FACTURA, + ID_EMPRESA, + DATOS_BANCARIOS, + ID_CLIENTE, + NOMBRE_CLIENTE, + NIF_CIF_CLIENTE, + CALLE_CLIENTE, + POBLACION_CLIENTE, + CODIGO_POSTAL_CLIENTE, + PROVINCIA_CLIENTE, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO) +AS +SELECT RECIBOS_CLIENTE.ID, + RECIBOS_CLIENTE.ID_RECIBO_COMPENSADO, + RECIBO_COMPENSADO1.REFERENCIA, + RECIBOS_CLIENTE.REFERENCIA, + CASE + WHEN RECIBOS_CLIENTE.ID_RECIBO_COMPENSADO IS NULL + THEN TRIM(V_REC_CLI_SITUACION.SITUACION) + ELSE TRIM(RECIBO_COMPENSADO2.SITUACION) + END, + RECIBOS_CLIENTE.ID_FACTURA, + RECIBOS_CLIENTE.ID_REMESA, REMESAS_CLIENTE.REFERENCIA as REFERENCIA_REMESA, + RECIBOS_CLIENTE.FECHA_EMISION, RECIBOS_CLIENTE.FECHA_VENCIMIENTO, RECIBOS_CLIENTE.DESCRIPCION, + RECIBOS_CLIENTE.OBSERVACIONES, RECIBOS_CLIENTE.IMPORTE, RECIBOS_CLIENTE.OTROS_GASTOS, + COALESCE(RECIBOS_CLIENTE.IMPORTE, 0) + COALESCE(RECIBOS_CLIENTE.OTROS_GASTOS, 0) + COALESCE(V_REC_CLI_COMPENSADOS.IMPORTE_TOTAL_COMPENSADO, 0), + + FACTURAS_CLIENTE.FECHA_FACTURA, FORMAS_PAGO.DESCRIPCION, FACTURAS_CLIENTE.IMPORTE_TOTAL, + FACTURAS_CLIENTE.ID_EMPRESA, FACTURAS_CLIENTE.DATOS_BANCARIOS, + + CONTACTOS.ID as ID_CLIENTE, CONTACTOS.NOMBRE, CONTACTOS.NIF_CIF, CONTACTOS.CALLE, CONTACTOS.POBLACION, CONTACTOS.CODIGO_POSTAL, CONTACTOS.PROVINCIA, + + RECIBOS_CLIENTE.FECHA_ALTA, + RECIBOS_CLIENTE.FECHA_MODIFICACION, + RECIBOS_CLIENTE.USUARIO + +FROM RECIBOS_CLIENTE +LEFT JOIN V_REC_CLI_SITUACION +ON (V_REC_CLI_SITUACION.ID_RECIBO = RECIBOS_CLIENTE.ID) +LEFT JOIN FACTURAS_CLIENTE +ON (FACTURAS_CLIENTE.ID = RECIBOS_CLIENTE.ID_FACTURA) +LEFT JOIN FORMAS_PAGO +ON (FORMAS_PAGO.ID = FACTURAS_CLIENTE.ID_FORMA_PAGO) +LEFT JOIN CONTACTOS +ON (CONTACTOS.ID = FACTURAS_CLIENTE.ID_CLIENTE) +LEFT JOIN REMESAS_CLIENTE +ON (REMESAS_CLIENTE.ID = RECIBOS_CLIENTE.ID_REMESA) +LEFT JOIN V_REC_CLI_COMPENSADOS +ON (V_REC_CLI_COMPENSADOS.ID_RECIBO = RECIBOS_CLIENTE.ID) +LEFT JOIN RECIBOS_CLIENTE RECIBO_COMPENSADO1 +ON (RECIBO_COMPENSADO1.ID = RECIBOS_CLIENTE.ID_RECIBO_COMPENSADO) +LEFT JOIN V_REC_CLI_SITUACION RECIBO_COMPENSADO2 +ON (RECIBO_COMPENSADO2.ID_RECIBO = RECIBOS_CLIENTE.ID_RECIBO_COMPENSADO) +; + +/* View: V_RECIBOS_PROVEEDOR */ +CREATE VIEW V_RECIBOS_PROVEEDOR( + ID, + ID_RECIBO_COMPENSADO, + REFERENCIA_REC_COMPENSADO, + REFERENCIA, + REFERENCIA_PROVEEDOR, + SITUACION, + ID_FACTURA, + ID_REMESA, + REFERENCIA_REMESA, + FECHA_EMISION, + FECHA_VENCIMIENTO, + DESCRIPCION, + OBSERVACIONES, + IMPORTE, + OTROS_GASTOS, + IMPORTE_TOTAL, + REFERENCIA_FACTURA_PROV, + FECHA_FACTURA, + FORMA_PAGO_FACTURA, + IMPORTE_FACTURA, + ID_EMPRESA, + DATOS_BANCARIOS, + ID_PROVEEDOR, + NOMBRE_PROVEEDOR, + NIF_CIF_PROVEEDOR, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO) +AS +SELECT RECIBOS_PROVEEDOR.ID, + RECIBOS_PROVEEDOR.ID_RECIBO_COMPENSADO, + RECIBO_COMPENSADO1.REFERENCIA, + RECIBOS_PROVEEDOR.REFERENCIA, + RECIBOS_PROVEEDOR.REFERENCIA_PROVEEDOR, + CASE + WHEN RECIBOS_PROVEEDOR.ID_RECIBO_COMPENSADO IS NULL + THEN TRIM(V_REC_PRO_SITUACION.SITUACION) + ELSE TRIM(RECIBO_COMPENSADO2.SITUACION) + END, + RECIBOS_PROVEEDOR.ID_FACTURA, + RECIBOS_PROVEEDOR.ID_REMESA, REMESAS_PROVEEDOR.REFERENCIA as REFERENCIA_REMESA, + RECIBOS_PROVEEDOR.FECHA_EMISION, RECIBOS_PROVEEDOR.FECHA_VENCIMIENTO, RECIBOS_PROVEEDOR.DESCRIPCION, + RECIBOS_PROVEEDOR.OBSERVACIONES, RECIBOS_PROVEEDOR.IMPORTE, RECIBOS_PROVEEDOR.OTROS_GASTOS, + COALESCE(RECIBOS_PROVEEDOR.IMPORTE, 0) + COALESCE(RECIBOS_PROVEEDOR.OTROS_GASTOS, 0) + COALESCE(V_REC_PRO_COMPENSADOS.IMPORTE_TOTAL_COMPENSADO, 0), + + FACTURAS_PROVEEDOR.REFERENCIA_PROVEEDOR, FACTURAS_PROVEEDOR.FECHA_FACTURA, + FORMAS_PAGO.DESCRIPCION, FACTURAS_PROVEEDOR.IMPORTE_TOTAL, + FACTURAS_PROVEEDOR.ID_EMPRESA, FACTURAS_PROVEEDOR.DATOS_BANCARIOS, + + CONTACTOS.ID as ID_PROVEEDOR, CONTACTOS.NOMBRE, CONTACTOS.NIF_CIF, + + RECIBOS_PROVEEDOR.FECHA_ALTA, + RECIBOS_PROVEEDOR.FECHA_MODIFICACION, + RECIBOS_PROVEEDOR.USUARIO + +FROM RECIBOS_PROVEEDOR +LEFT JOIN V_REC_PRO_SITUACION +ON (V_REC_PRO_SITUACION.ID_RECIBO = RECIBOS_PROVEEDOR.ID) +LEFT JOIN FACTURAS_PROVEEDOR +ON (FACTURAS_PROVEEDOR.ID = RECIBOS_PROVEEDOR.ID_FACTURA) +LEFT JOIN FORMAS_PAGO +ON (FORMAS_PAGO.ID = FACTURAS_PROVEEDOR.ID_FORMA_PAGO) +LEFT JOIN CONTACTOS +ON (CONTACTOS.ID = FACTURAS_PROVEEDOR.ID_PROVEEDOR) +LEFT JOIN REMESAS_PROVEEDOR +ON (REMESAS_PROVEEDOR.ID = RECIBOS_PROVEEDOR.ID_REMESA) +LEFT JOIN V_REC_PRO_COMPENSADOS +ON (V_REC_PRO_COMPENSADOS.ID_RECIBO = RECIBOS_PROVEEDOR.ID) +LEFT JOIN RECIBOS_PROVEEDOR RECIBO_COMPENSADO1 +ON (RECIBO_COMPENSADO1.ID = RECIBOS_PROVEEDOR.ID_RECIBO_COMPENSADO) +LEFT JOIN V_REC_PRO_SITUACION RECIBO_COMPENSADO2 +ON (RECIBO_COMPENSADO2.ID_RECIBO = RECIBOS_PROVEEDOR.ID_RECIBO_COMPENSADO) +; + +CREATE VIEW V_REMESAS_CLIENTE( + ID, + ID_EMPRESA, + REFERENCIA, + TIPO, + FECHA_REMESA, + DESCRIPCION, + ID_DATOS_BANCO, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + NOMBRE, + ENTIDAD, + SUCURSAL, + DC, + CUENTA, + SUFIJO_N19, + SUFIJO_N58, + IMPORTE_TOTAL) +AS +SELECT + REMESAS_CLIENTE.ID, + REMESAS_CLIENTE.ID_EMPRESA, + REMESAS_CLIENTE.REFERENCIA, + REMESAS_CLIENTE.TIPO, + REMESAS_CLIENTE.FECHA_REMESA, + REMESAS_CLIENTE.DESCRIPCION, + REMESAS_CLIENTE.ID_DATOS_BANCO, + REMESAS_CLIENTE.FECHA_ALTA, + REMESAS_CLIENTE.FECHA_MODIFICACION, + REMESAS_CLIENTE.USUARIO, + EMPRESAS_DATOS_BANCO.NOMBRE, + EMPRESAS_DATOS_BANCO.ENTIDAD, + EMPRESAS_DATOS_BANCO.SUCURSAL, + EMPRESAS_DATOS_BANCO.DC, + EMPRESAS_DATOS_BANCO.CUENTA, + EMPRESAS_DATOS_BANCO.SUFIJO_N19, + EMPRESAS_DATOS_BANCO.SUFIJO_N58, + SUM(COALESCE(RECIBOS_CLIENTE.IMPORTE,0) + COALESCE(RECIBOS_CLIENTE.OTROS_GASTOS,0) + COALESCE(V_REC_CLI_COMPENSADOS.IMPORTE_TOTAL_COMPENSADO,0)) as IMPORTE_TOTAL + +FROM + REMESAS_CLIENTE + LEFT OUTER JOIN EMPRESAS_DATOS_BANCO ON (EMPRESAS_DATOS_BANCO.ID = REMESAS_CLIENTE.ID_DATOS_BANCO) + LEFT OUTER JOIN RECIBOS_CLIENTE ON (RECIBOS_CLIENTE.ID_REMESA = REMESAS_CLIENTE.ID) + LEFT OUTER JOIN V_REC_CLI_COMPENSADOS ON (V_REC_CLI_COMPENSADOS.ID_RECIBO = RECIBOS_CLIENTE.ID) +GROUP BY 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 +; + +CREATE VIEW V_REMESAS_PROVEEDOR( + ID, + ID_EMPRESA, + REFERENCIA, + TIPO, + FECHA_REMESA, + DESCRIPCION, + ID_DATOS_BANCO, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + NOMBRE, + ENTIDAD, + SUCURSAL, + DC, + CUENTA, + SUFIJO_N19, + SUFIJO_N58, + IMPORTE_TOTAL) +AS +SELECT + REMESAS_PROVEEDOR.ID, + REMESAS_PROVEEDOR.ID_EMPRESA, + REMESAS_PROVEEDOR.REFERENCIA, + REMESAS_PROVEEDOR.TIPO, + REMESAS_PROVEEDOR.FECHA_REMESA, + REMESAS_PROVEEDOR.DESCRIPCION, + REMESAS_PROVEEDOR.ID_DATOS_BANCO, + REMESAS_PROVEEDOR.FECHA_ALTA, + REMESAS_PROVEEDOR.FECHA_MODIFICACION, + REMESAS_PROVEEDOR.USUARIO, + EMPRESAS_DATOS_BANCO.NOMBRE, + EMPRESAS_DATOS_BANCO.ENTIDAD, + EMPRESAS_DATOS_BANCO.SUCURSAL, + EMPRESAS_DATOS_BANCO.DC, + EMPRESAS_DATOS_BANCO.CUENTA, + EMPRESAS_DATOS_BANCO.SUFIJO_N19, + EMPRESAS_DATOS_BANCO.SUFIJO_N58, + SUM(COALESCE(RECIBOS_PROVEEDOR.IMPORTE,0) + COALESCE(RECIBOS_PROVEEDOR.OTROS_GASTOS,0) + COALESCE(V_REC_PRO_COMPENSADOS.IMPORTE_TOTAL_COMPENSADO,0)) as IMPORTE_TOTAL + +FROM + REMESAS_PROVEEDOR + LEFT OUTER JOIN EMPRESAS_DATOS_BANCO ON (EMPRESAS_DATOS_BANCO.ID = REMESAS_PROVEEDOR.ID_DATOS_BANCO) + LEFT OUTER JOIN RECIBOS_PROVEEDOR ON (RECIBOS_PROVEEDOR.ID_REMESA = REMESAS_PROVEEDOR.ID) + LEFT OUTER JOIN V_REC_PRO_COMPENSADOS ON (V_REC_PRO_COMPENSADOS.ID_RECIBO = RECIBOS_PROVEEDOR.ID) +GROUP BY 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 +; + +/******************************************************************************/ +/**** Primary Keys ****/ +/******************************************************************************/ + +ALTER TABLE AGENTES_COMISIONES ADD CONSTRAINT PK_AGENTES_COMISIONES PRIMARY KEY (ID); +ALTER TABLE ALBARANES_CLIENTE ADD CONSTRAINT PK_ALBARAN_CLIENTE PRIMARY KEY (ID); +ALTER TABLE ALBARANES_CLIENTE_DETALLES ADD CONSTRAINT PK_ALBARANES_CLIENTE_DETALLES PRIMARY KEY (ID); +ALTER TABLE ALBARANES_PROVEEDOR ADD CONSTRAINT PK_ALBARAN_PROVEEDOR PRIMARY KEY (ID); +ALTER TABLE ALBARANES_PROVEEDOR_DETALLES ADD CONSTRAINT PK_ALBARANES_PROVEEDOR_DETALLES PRIMARY KEY (ID); +ALTER TABLE ALMACENES ADD CONSTRAINT PK_ALMACENES PRIMARY KEY (ID); +ALTER TABLE ARTICULOS ADD CONSTRAINT PK_ARTICULOS PRIMARY KEY (ID); +ALTER TABLE ARTICULOS_PROVEEDORES ADD CONSTRAINT PK_ARTICULOS_PROVEEDORES PRIMARY KEY (ID); +ALTER TABLE CATEGORIAS ADD CONSTRAINT PK_CATEGORIAS PRIMARY KEY (ID); +ALTER TABLE CLIENTES_DATOS ADD CONSTRAINT PK_CLIENTES_DATOS PRIMARY KEY (ID_CLIENTE); +ALTER TABLE CLIENTES_DTOS_PROVEEDORES ADD CONSTRAINT PK_CLIENTES_DTOS_PROV PRIMARY KEY (ID); +ALTER TABLE CLIENTES_GRUPOS ADD CONSTRAINT PK_CLIENTES_GRUPOS PRIMARY KEY (ID); +ALTER TABLE COMISIONES_LIQUIDADAS ADD CONSTRAINT PK_COMISIONES_LIQUIDADAS PRIMARY KEY (ID); +ALTER TABLE CONFIGURACION ADD CONSTRAINT PK_CONFIGURACION PRIMARY KEY (ID); +ALTER TABLE CONTACTOS ADD CONSTRAINT PK_CONTACTOS PRIMARY KEY (ID); +ALTER TABLE CONTACTOS_CATEGORIAS ADD CONSTRAINT PK_CONTACTOS_CATEGORIAS PRIMARY KEY (ID_CONTACTO, ID_CATEGORIA); +ALTER TABLE CONTACTOS_DATOS_BANCO ADD CONSTRAINT PK_CONTACTOS_DATOS_BANCO PRIMARY KEY (ID); +ALTER TABLE CONTACTOS_DATOS_PERSONAL ADD CONSTRAINT PK_CONTACTOS_DATOS_PER PRIMARY KEY (ID); +ALTER TABLE CONTACTOS_DIRECCIONES ADD CONSTRAINT PK_CONTACTOS_DIR PRIMARY KEY (ID); +ALTER TABLE EMPLEADOS_DATOS ADD CONSTRAINT PK_EMPLEADOS_DATOS PRIMARY KEY (ID_EMPLEADO); +ALTER TABLE AGENTES_DATOS ADD CONSTRAINT PK_AGENTES_DATOS PRIMARY KEY (ID_AGENTE); +ALTER TABLE EMPLEADOS_GRUPOS ADD CONSTRAINT PK_EMPLEADOS_GRUPOS PRIMARY KEY (ID); +ALTER TABLE EMPRESAS ADD CONSTRAINT PK_EMPRESAS PRIMARY KEY (ID); +ALTER TABLE EMPRESAS_CONTACTOS ADD CONSTRAINT PK_EMPRESAS_CONTACTOS PRIMARY KEY (ID); +ALTER TABLE EMPRESAS_DATOS_BANCO ADD CONSTRAINT PK_EMPRESAS_DATOS_BANCO PRIMARY KEY (ID); +ALTER TABLE EMPRESAS_USUARIOS ADD CONSTRAINT PK_EMPRESAS_USUARIOS PRIMARY KEY (ID); +ALTER TABLE FABRICANTES ADD PRIMARY KEY (ID); +ALTER TABLE FACTURAS_CLIENTE ADD CONSTRAINT PK_FACTURAS_CLIENTE PRIMARY KEY (ID); +ALTER TABLE FACTURAS_CLIENTE_DETALLES ADD CONSTRAINT PK_FACTURAS_CLIENTE_DETALLES PRIMARY KEY (ID); +ALTER TABLE FACTURAS_PROVEEDOR ADD CONSTRAINT PK_FACTURAS_PROVEEDOR PRIMARY KEY (ID); +ALTER TABLE FACTURAS_PROVEEDOR_DETALLES ADD CONSTRAINT PK_FACTURAS_PROVEEDOR_DETALLES PRIMARY KEY (ID); +ALTER TABLE FACTURAS_PROVEEDOR_PEDIDOS ADD CONSTRAINT PK_FACTURAS_PROVEEDOR_PEDIDOS PRIMARY KEY (ID); +ALTER TABLE FAMILIAS ADD CONSTRAINT PK_FAMILIAS PRIMARY KEY (ID); +ALTER TABLE FORMAS_PAGO ADD PRIMARY KEY (ID); +ALTER TABLE FORMAS_PAGO_PLAZOS ADD PRIMARY KEY (ID); +ALTER TABLE INFORMES ADD CONSTRAINT PK_INFORMES PRIMARY KEY (ID); +ALTER TABLE MOVIMIENTOS ADD CONSTRAINT PK_MOVIMIENTOS PRIMARY KEY (ID); +ALTER TABLE OBRAS_EJECUCIONES ADD CONSTRAINT PK_OBRAS_EJE PRIMARY KEY (ID); +ALTER TABLE OBRAS_EJECUCIONES_PRESUPUESTOS ADD CONSTRAINT PK_OBRAS_EJE_PRE PRIMARY KEY (ID); +ALTER TABLE OBRAS_EJECUCIONES_PEDIDOS_PROV ADD CONSTRAINT PK_OBRAS_EJE_PED_PROV PRIMARY KEY (ID); +ALTER TABLE PAGOS_CLIENTE ADD CONSTRAINT PK_PAGOS_CLIENTE PRIMARY KEY (ID); +ALTER TABLE PAGOS_PROVEEDOR ADD CONSTRAINT PK_PAGOS_PROVEEDOR PRIMARY KEY (ID); +ALTER TABLE PEDIDOS_CLIENTE ADD CONSTRAINT PK_PEDIDOS_CLIENTE PRIMARY KEY (ID); +ALTER TABLE PEDIDOS_CLIENTE_DETALLES ADD CONSTRAINT PK_PEDIDOS_CLIENTE_DETALLES PRIMARY KEY (ID); +ALTER TABLE PEDIDOS_PROVEEDOR ADD CONSTRAINT PK_PEDIDOS_PROVEEDOR PRIMARY KEY (ID); +ALTER TABLE PEDIDOS_PROVEEDOR_DETALLES ADD CONSTRAINT PK_PEDIDOS_PROVEEDOR_DETALLES PRIMARY KEY (ID); +ALTER TABLE PERMISOS ADD CONSTRAINT PK_PERMISOS PRIMARY KEY (ID); +ALTER TABLE PERMISOSEX ADD CONSTRAINT PK_PERMISOSEX PRIMARY KEY (ID); +ALTER TABLE POBLACIONES ADD CONSTRAINT PK_POBLACIONES PRIMARY KEY (ID); +ALTER TABLE PRESUPUESTOS_CLIENTE ADD CONSTRAINT PK_PRESUPUESTOS_CLIENTE PRIMARY KEY (ID); +ALTER TABLE PRESUPUESTOS_CLIENTE_DETALLES ADD CONSTRAINT PK_PRESUPUESTOS_CLIENTE_DETALLE PRIMARY KEY (ID); +ALTER TABLE PROVEEDORES_DATOS ADD CONSTRAINT PK_PROVEEDORES_DATOS PRIMARY KEY (ID_PROVEEDOR); +ALTER TABLE PROVEEDORES_GRUPOS ADD CONSTRAINT PK_PROVEEDORES_GRUPOS PRIMARY KEY (ID); +ALTER TABLE PROVINCIAS ADD CONSTRAINT PK_PROVINCIAS PRIMARY KEY (ID); +ALTER TABLE RECIBOS_CLIENTE ADD CONSTRAINT PK_RECIBOS_CLIENTE PRIMARY KEY (ID); +ALTER TABLE RECIBOS_PROVEEDOR ADD CONSTRAINT PK_RECIBOS_PROVEEDOR PRIMARY KEY (ID); +ALTER TABLE REFERENCIAS ADD CONSTRAINT PK_REFERENCIAS PRIMARY KEY (ID); +ALTER TABLE REMESAS_CLIENTE ADD CONSTRAINT PK_REMESAS_CLIENTE PRIMARY KEY (ID); +ALTER TABLE REMESAS_PROVEEDOR ADD CONSTRAINT PK_REMESAS_PROVEEDOR PRIMARY KEY (ID); +ALTER TABLE TIENDA_WEB ADD CONSTRAINT PK_TIENDA_WEB PRIMARY KEY (ID); +ALTER TABLE TIPOS_IVA ADD PRIMARY KEY (ID); +ALTER TABLE UNIDADES_MEDIDA ADD PRIMARY KEY (ID); +ALTER TABLE USUARIOS ADD CONSTRAINT PK_USUARIOS PRIMARY KEY (ID); +ALTER TABLE USUARIOS_LOGON ADD CONSTRAINT PK_USUARIOS_LOGON PRIMARY KEY (LOGONID); + + +/******************************************************************************/ +/**** Foreign Keys ****/ +/******************************************************************************/ + +ALTER TABLE ALBARANES_CLIENTE ADD CONSTRAINT FK_ALBARAN_CLIENTE1 FOREIGN KEY (ID_CLIENTE) REFERENCES CONTACTOS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE ALBARANES_CLIENTE ADD CONSTRAINT FK_ALBARAN_CLIENTE2 FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE ALBARANES_CLIENTE ADD CONSTRAINT FK_ALBARAN_CLIENTE3 FOREIGN KEY (ID_PEDIDO) REFERENCES PEDIDOS_CLIENTE (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE ALBARANES_CLIENTE ADD CONSTRAINT FK_ALBARAN_CLIENTE4 FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_CLIENTE (ID) ON DELETE SET NULL ON UPDATE SET NULL; +ALTER TABLE ALBARANES_PROVEEDOR ADD CONSTRAINT FK_ALBARANES_PROVEEDOR3 FOREIGN KEY (ID_PEDIDO) REFERENCES PEDIDOS_PROVEEDOR (ID) ON DELETE NO ACTION ON UPDATE CASCADE; +ALTER TABLE ALBARANES_PROVEEDOR ADD CONSTRAINT FK_ALBARANES_PROVEEDOR4 FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_PROVEEDOR (ID) ON DELETE SET NULL ON UPDATE CASCADE; +ALTER TABLE ALBARANES_PROVEEDOR ADD CONSTRAINT FK_ALBARAN_PROVEEDOR1 FOREIGN KEY (ID_PROVEEDOR) REFERENCES CONTACTOS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE ALBARANES_PROVEEDOR ADD CONSTRAINT FK_ALBARAN_PROVEEDOR2 FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE ALMACENES ADD CONSTRAINT FK_ALMACENES_EMPRESAS FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE ARTICULOS ADD CONSTRAINT FK_ARTICULOS_EMPRESA FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE COMISIONES_LIQUIDADAS ADD CONSTRAINT FK_COMISIONES_LIQUIDADAS FOREIGN KEY (ID_AGENTE) REFERENCES CONTACTOS (ID); +ALTER TABLE EMPRESAS_CONTACTOS ADD CONSTRAINT FK_EMPRESAS_CONTACTOS FOREIGN KEY (ID_CONTACTO) REFERENCES CONTACTOS (ID) ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE EMPRESAS_DATOS_BANCO ADD CONSTRAINT FK_EMPRESAS_DATOS_BANCO FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE FACTURAS_CLIENTE ADD CONSTRAINT FK_FACTURAS_CLIENTE_EMPRESAS FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE FACTURAS_PROVEEDOR ADD CONSTRAINT FK_FACTURAS_PROVEEDOR_EMPRESAS FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE MOVIMIENTOS ADD CONSTRAINT FK_MOVIMIENTOS2 FOREIGN KEY (ID_ALMACEN) REFERENCES ALMACENES (ID); +ALTER TABLE OBRAS_EJECUCIONES_PRESUPUESTOS ADD CONSTRAINT FK_OBRAS_EJE_PRE_1 FOREIGN KEY (ID_EJECUCION) REFERENCES OBRAS_EJECUCIONES (ID); +ALTER TABLE OBRAS_EJECUCIONES_PRESUPUESTOS ADD CONSTRAINT FK_OBRAS_EJE_PRE_2 FOREIGN KEY (ID_PRESUPUESTO) REFERENCES PRESUPUESTOS_CLIENTE (ID); +ALTER TABLE OBRAS_EJECUCIONES_PEDIDOS_PROV ADD CONSTRAINT FK_OBRAS_EJE_PED_PROV_1 FOREIGN KEY (ID_EJECUCION) REFERENCES OBRAS_EJECUCIONES (ID); +ALTER TABLE OBRAS_EJECUCIONES_PEDIDOS_PROV ADD CONSTRAINT FK_OBRAS_EJE_PED_PROV_2 FOREIGN KEY (ID_PEDIDO) REFERENCES PEDIDOS_PROVEEDOR (ID); +ALTER TABLE OBRAS_EJECUCIONES_PEDIDOS_PROV ADD CONSTRAINT FK_OBRAS_EJE_PED_PROV_3 FOREIGN KEY (ID_PRESUPUESTO) REFERENCES PRESUPUESTOS_CLIENTE (ID); +ALTER TABLE PAGOS_CLIENTE ADD CONSTRAINT FK_PAGOS_CLIENTE FOREIGN KEY (ID_RECIBO) REFERENCES RECIBOS_CLIENTE (ID); +ALTER TABLE PAGOS_PROVEEDOR ADD CONSTRAINT FK_PAGOS_PROVEEDOR FOREIGN KEY (ID_RECIBO) REFERENCES RECIBOS_PROVEEDOR (ID); +ALTER TABLE PEDIDOS_CLIENTE ADD CONSTRAINT FK_PEDIDOS_CLIENTE FOREIGN KEY (ID_CLIENTE) REFERENCES CONTACTOS (ID); +ALTER TABLE PEDIDOS_CLIENTE ADD CONSTRAINT FK_PEDIDOS_CLIENTE_ID_EMPRESA FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID); +ALTER TABLE PEDIDOS_PROVEEDOR ADD CONSTRAINT FK_PEDIDOS_PROVEEDOR FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID); +ALTER TABLE PEDIDOS_PROVEEDOR ADD CONSTRAINT FK_PEDIDOS_PROVEEDOR2 FOREIGN KEY (ID_PROVEEDOR) REFERENCES CONTACTOS (ID); +ALTER TABLE PEDIDOS_PROVEEDOR ADD CONSTRAINT FK_PEDIDOS_PROVEEDOR_1 FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_PROVEEDOR (ID) ON DELETE SET NULL ON UPDATE CASCADE; +ALTER TABLE PRESUPUESTOS_CLIENTE ADD CONSTRAINT FK_PRESUPUESTOS_CLIENTE_1 FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID); +ALTER TABLE PRESUPUESTOS_CLIENTE ADD CONSTRAINT FK_PRESUPUESTOS_CLIENTE_2 FOREIGN KEY (ID_CLIENTE) REFERENCES CONTACTOS (ID); +ALTER TABLE PRESUPUESTOS_CLIENTE ADD CONSTRAINT FK_PRESUPUESTOS_CLIENTE_3 FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_CLIENTE (ID) ON DELETE SET NULL ON UPDATE SET NULL; +ALTER TABLE RECIBOS_CLIENTE ADD CONSTRAINT FK_RECIBOS_CLIENTE FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_CLIENTE (ID) ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE RECIBOS_CLIENTE ADD CONSTRAINT FK_RECIBOS_CLIENTE2 FOREIGN KEY (ID_REMESA) REFERENCES REMESAS_CLIENTE (ID) ON DELETE SET NULL ON UPDATE SET NULL; +ALTER TABLE RECIBOS_PROVEEDOR ADD CONSTRAINT FK_RECIBOS_PROVEEDOR FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_PROVEEDOR (ID) ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE RECIBOS_PROVEEDOR ADD CONSTRAINT FK_RECIBOS_PROVEEDOR1 FOREIGN KEY (ID_REMESA) REFERENCES REMESAS_PROVEEDOR (ID) ON DELETE SET NULL ON UPDATE SET NULL; +ALTER TABLE REMESAS_CLIENTE ADD CONSTRAINT FK_REMESAS_CLIENTE FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID); +ALTER TABLE REMESAS_PROVEEDOR ADD CONSTRAINT FK_REMESAS_PROVEEDOR FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID); +ALTER TABLE TIENDA_WEB ADD CONSTRAINT FK_EMPRESAS_TIENDA_WEB FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE CASCADE ON UPDATE CASCADE; + + +/******************************************************************************/ +/**** Indices ****/ +/******************************************************************************/ + +CREATE INDEX IDX_AGENTES_COMISIONES1 ON AGENTES_COMISIONES (ID_AGENTE); +CREATE INDEX IDX_AGENTES_COMISIONES2 ON AGENTES_COMISIONES (ID_PROVEEDOR); +CREATE INDEX IDX_ALBARANES_CLIENTE1 ON ALBARANES_CLIENTE (ID_FORMA_PAGO); +CREATE INDEX IDX_ALBARANES_CLIENTE2 ON ALBARANES_CLIENTE (TIPO); +CREATE INDEX ALBARANES_CLIENTE_IDX1 ON ALBARANES_CLIENTE (ID_ALMACEN); +CREATE INDEX ALBARANES_CLIENTE_IDX2 ON ALBARANES_CLIENTE (ID_DIRECCION); +CREATE INDEX ALBARANES_CLIENTE_IDX3 ON ALBARANES_CLIENTE (FECHA_ALBARAN); +CREATE INDEX IDX_ALBARANES_CLIENTE_DETALLES ON ALBARANES_CLIENTE_DETALLES (ID_ARTICULO); +CREATE INDEX IDX_ALBARANES_CLIENTE_DETALLES1 ON ALBARANES_CLIENTE_DETALLES (ID_ALBARAN); +CREATE INDEX ALBARANES_CLIENTE_DETALLES_IDX1 ON ALBARANES_CLIENTE_DETALLES (ID_PEDIDO); +CREATE INDEX IDX_ALBARANES_PROVEEDOR1 ON ALBARANES_PROVEEDOR (ID_ALMACEN); +CREATE INDEX IDX_ALBARANES_PROVEEDOR2 ON ALBARANES_PROVEEDOR (ID_FORMA_PAGO); +CREATE INDEX IDX_ALBARANES_PROVEEDOR3 ON ALBARANES_PROVEEDOR (TIPO); +CREATE INDEX ALBARANES_PROVEEDOR_IDX1 ON ALBARANES_PROVEEDOR (ID_ALBARAN); +CREATE INDEX ALBARANES_PROVEEDOR_IDX2 ON ALBARANES_PROVEEDOR (FECHA_ALBARAN); +CREATE INDEX IDX_ALBARANES_PROV_DETALLES ON ALBARANES_PROVEEDOR_DETALLES (ID_ALBARAN); +CREATE INDEX IDX_ALBARANES_PROV_DETALLES1 ON ALBARANES_PROVEEDOR_DETALLES (ID_ARTICULO); +CREATE INDEX ALBARANES_PROVEEDOR_DETALL_IDX1 ON ALBARANES_PROVEEDOR_DETALLES (ID_PEDIDO); +CREATE INDEX ALMACENES_IDX1 ON ALMACENES (TIPO_ALMACEN); +CREATE INDEX ARTICULOS_PROVEEDORES_IDX1 ON ARTICULOS_PROVEEDORES (ID_ARTICULO); +CREATE INDEX ARTICULOS_PROVEEDORES_IDX2 ON ARTICULOS_PROVEEDORES (ID_PROVEEDOR); +CREATE INDEX IDX_CLIENTES_DATOS ON CLIENTES_DATOS (ID_TIPO_IVA); +CREATE INDEX IDX_CLIENTES_DATOS1 ON CLIENTES_DATOS (ID_FORMA_PAGO); +CREATE INDEX IDX_CLIENTES_DATOS_ID_AGENTE ON CLIENTES_DATOS (ID_AGENTE); +CREATE INDEX IDX_CLIENTES_DTOS_PROV_ID_CLI ON CLIENTES_DTOS_PROVEEDORES (ID_CLIENTE); +CREATE INDEX IDX_CLIENTES_DTOS_PROV_ID_PROV ON CLIENTES_DTOS_PROVEEDORES (ID_PROVEEDOR); +CREATE INDEX IDX_COMISIONES_LIQUIDADAS ON COMISIONES_LIQUIDADAS (ID_EMPRESA); +CREATE INDEX IDX_CONFIGURACION ON CONFIGURACION (ID_EMPRESA); +CREATE INDEX IDX_CONTACTOS_CATEGORIAS ON CONTACTOS_CATEGORIAS (ID_CONTACTO); +CREATE INDEX IDX_CONTACTOS_CATEGORIAS1 ON CONTACTOS_CATEGORIAS (ID_CATEGORIA); +CREATE INDEX IDX_CONTACTOS_DATOS_BANCO ON CONTACTOS_DATOS_BANCO (ID_CONTACTO); +CREATE INDEX IDX_CONTACTOS_PER_ID_CONTACTO ON CONTACTOS_DATOS_PERSONAL (ID_CONTACTO); +CREATE INDEX IDX_CONTACTOS_DIR_ID_CONTACTO ON CONTACTOS_DIRECCIONES (ID_CONTACTO); +CREATE INDEX IDX_EMPRESAS_CONTACTOS ON EMPRESAS_CONTACTOS (ID_EMPRESA, ID_CONTACTO); +CREATE INDEX IDX_EMPRESAS_USUARIOS ON EMPRESAS_USUARIOS (ID_EMPRESA, ID_USUARIO); +CREATE INDEX IDX_FACTURAS_CLIENTE ON FACTURAS_CLIENTE (ID_FORMA_PAGO); +CREATE INDEX IDX_FACTURAS_CLIENTE1 ON FACTURAS_CLIENTE (ID_TIPO_IVA); +CREATE INDEX IDX_FACTURAS_CLIENTE2 ON FACTURAS_CLIENTE (ID_COMISION_LIQUIDADA); +CREATE INDEX IDX_FACTURAS_CLIENTE3 ON FACTURAS_CLIENTE (ID_CLIENTE); +CREATE INDEX FACTURAS_CLIENTE_IDX1 ON FACTURAS_CLIENTE (FECHA_FACTURA); +CREATE INDEX FACTURAS_CLIENTE_IDX2 ON FACTURAS_CLIENTE (FECHA_VENCIMIENTO); +CREATE INDEX IDX_FACTURAS_CLIENTE_DETALLES1 ON FACTURAS_CLIENTE_DETALLES (ID_FACTURA); +CREATE INDEX IDX_FACTURAS_CLIENTE_DETALLES2 ON FACTURAS_CLIENTE_DETALLES (ID_ARTICULO); +CREATE INDEX IDX_FACTURAS_PROVEEDOR ON FACTURAS_PROVEEDOR (ID_PROVEEDOR); +CREATE INDEX IDX_FACTURAS_PROVEEDOR1 ON FACTURAS_PROVEEDOR (ID_FORMA_PAGO); +CREATE INDEX IDX_FACTURAS_PROVEEDOR2 ON FACTURAS_PROVEEDOR (ID_TIPO_IVA); +CREATE INDEX FACTURAS_PROVEEDOR_IDX1 ON FACTURAS_PROVEEDOR (FECHA_FACTURA); +CREATE INDEX FACTURAS_PROVEEDOR_IDX2 ON FACTURAS_PROVEEDOR (FECHA_VENCIMIENTO); +CREATE INDEX IDX_FACTURAS_PROVEEDOR_DETALLES ON FACTURAS_PROVEEDOR_DETALLES (ID_ARTICULO); +CREATE INDEX FACTURAS_PROVEEDOR_DETALLE_IDX1 ON FACTURAS_PROVEEDOR_DETALLES (ID_FACTURA); +CREATE INDEX IDX_FACTURAS_PROVEEDOR_PEDIDOS ON FACTURAS_PROVEEDOR_PEDIDOS (ID_PEDIDO); +CREATE INDEX FACTURAS_PROVEEDOR_PEDIDOS_IDX1 ON FACTURAS_PROVEEDOR_PEDIDOS (ID_FACTURA); +CREATE INDEX IDX_FORMAS_PAGO_PLAZOS ON FORMAS_PAGO_PLAZOS (ID_FORMA_PAGO); +CREATE INDEX IDX_INFORMES ON INFORMES (ID_EMPRESA); +CREATE INDEX IDX_MOVIMIENTOS ON MOVIMIENTOS (TIPO); +CREATE INDEX MOVIMIENTOS_IDX1 ON MOVIMIENTOS (ID_ARTICULO); +CREATE INDEX MOVIMIENTOS_IDX2 ON MOVIMIENTOS (FECHA_MOVIMIENTO); +CREATE INDEX MOVIMIENTOS_IDX3 ON MOVIMIENTOS (ID_ALMACEN_RESERVA); +CREATE INDEX OBRAS_DATOS_IDX1 ON OBRAS_DATOS (ID_ALMACEN); +CREATE INDEX OBRAS_DATOS_IDX2 ON OBRAS_DATOS (ID_CLIENTE); +CREATE INDEX PAGOS_CLIENTE_IDX1 ON PAGOS_CLIENTE (FECHA_PAGO); +CREATE INDEX PAGOS_PROVEEDOR_IDX1 ON PAGOS_PROVEEDOR (FECHA_PAGO); +CREATE INDEX IDX_PEDIDOS_CLIENTE ON PEDIDOS_CLIENTE (ID_FORMA_PAGO); +CREATE INDEX PEDIDOS_CLIENTE_IDX1 ON PEDIDOS_CLIENTE (FECHA_PEDIDO); +CREATE INDEX IDX_PEDIDOS_CLIENTE_DETALLES ON PEDIDOS_CLIENTE_DETALLES (ID_PEDIDO); +CREATE INDEX IDX_PEDIDOS_CLIENTE_DETALLES1 ON PEDIDOS_CLIENTE_DETALLES (ID_ARTICULO); +CREATE INDEX IDX_PEDIDOS_PROVEEDOR ON PEDIDOS_PROVEEDOR (ID_PEDIDO_CLIENTE); +CREATE INDEX IDX_PEDIDOS_PROVEEDOR1 ON PEDIDOS_PROVEEDOR (ID_ALMACEN); +CREATE INDEX IDX_PEDIDOS_PROVEEDOR2 ON PEDIDOS_PROVEEDOR (ID_FORMA_PAGO); +CREATE INDEX IDX_PEDIDOS_PROVEEDOR3 ON PEDIDOS_PROVEEDOR (ID_OBRA); +CREATE INDEX IDX_PEDIDOS_PROVEEDOR4 ON PEDIDOS_PROVEEDOR (ID_PROVEEDOR); +CREATE INDEX PEDIDOS_PROVEEDOR_IDX1 ON PEDIDOS_PROVEEDOR (FECHA_PEDIDO); +CREATE INDEX IDX_PEDIDOS_PROVEEDOR_DETALLES ON PEDIDOS_PROVEEDOR_DETALLES (ID_ARTICULO); +CREATE INDEX PEDIDOS_PROVEEDOR_DETALLES_IDX1 ON PEDIDOS_PROVEEDOR_DETALLES (ID_PEDIDO); +CREATE INDEX POBLACIONES_IDX1 ON POBLACIONES (ID_PROVINCIA); +CREATE INDEX PRESUPUESTOS_CLIENTE_IDX1 ON PRESUPUESTOS_CLIENTE (FECHA_PRESUPUESTO); +CREATE INDEX PRESUPUESTOS_CLIENTE_DETAL_IDX1 ON PRESUPUESTOS_CLIENTE_DETALLES (ID_PRESUPUESTO); +CREATE INDEX PRESUPUESTOS_CLIENTE_DETAL_IDX2 ON PRESUPUESTOS_CLIENTE_DETALLES (ID_ARTICULO); +CREATE INDEX IDX_PROVEEDORES_DATOS ON PROVEEDORES_DATOS (ID_TIPO_IVA); +CREATE INDEX IDX_PROVEEDORES_DATOS1 ON PROVEEDORES_DATOS (ID_FORMA_PAGO); +CREATE INDEX IDX_RECIBOS_CLIENTE ON RECIBOS_CLIENTE (ID_RECIBO_COMPENSADO); +CREATE INDEX RECIBOS_CLIENTE_IDX1 ON RECIBOS_CLIENTE (FECHA_EMISION); +CREATE INDEX RECIBOS_CLIENTE_IDX2 ON RECIBOS_CLIENTE (FECHA_VENCIMIENTO); +CREATE INDEX IDX_RECIBOS_PROVEEDOR ON RECIBOS_PROVEEDOR (ID_RECIBO_COMPENSADO); +CREATE INDEX RECIBOS_PROVEEDOR_IDX1 ON RECIBOS_PROVEEDOR (FECHA_EMISION); +CREATE INDEX RECIBOS_PROVEEDOR_IDX2 ON RECIBOS_PROVEEDOR (FECHA_VENCIMIENTO); +CREATE INDEX IDX_REFERENCIAS ON REFERENCIAS (ID_EMPRESA); +CREATE INDEX IDX_REMESAS_CLIENTE ON REMESAS_CLIENTE (ID_DATOS_BANCO); +CREATE INDEX REMESAS_CLIENTE_IDX1 ON REMESAS_CLIENTE (FECHA_REMESA); +CREATE INDEX IDX_REMESAS_PROVEEDOR ON REMESAS_PROVEEDOR (ID_DATOS_BANCO); +CREATE INDEX REMESAS_PROVEEDOR_IDX1 ON REMESAS_PROVEEDOR (FECHA_REMESA); + + +/******************************************************************************/ +/**** Stored Procedures ****/ +/******************************************************************************/ + +SET TERM ^ ; + +CREATE PROCEDURE PRO_ART_RECALCULAR_PVP ( + ID_EMPRESA INTEGER, + PARAM_MARGEN NUMERIC(2,2), + PARAM_TIEMPO NUMERIC(11,2)) +AS +declare variable id_articulo integer; +declare variable mano_obra numeric(11,2); +begin + UPDATE ARTICULOS + SET PARAM_TIEMPO = :PARAM_TIEMPO, + PARAM_MARGEN = :PARAM_MARGEN, + MANO_OBRA = (TIEMPO * :PARAM_TIEMPO) + WHERE ID_EMPRESA = :ID_EMPRESA; + + for select ID, MANO_OBRA + from articulos + where ID_EMPRESA = :ID_EMPRESA + into :ID_ARTICULO, :MANO_OBRA + do + begin + update articulos_proveedores + set PRECIO_PVP_VENTA = (PRECIO_NETO + PRECIO_PORTE) * (((:PARAM_MARGEN) / 100) + 1), + PRECIO_PVP_TOTAL = ((PRECIO_NETO + PRECIO_PORTE) * (((:PARAM_MARGEN) / 100) + 1)) + :MANO_OBRA + where id_articulo = :ID_ARTICULO; + end + + suspend; +end +^ + + +CREATE PROCEDURE PRO_PRES_CAPITULOS ( + AID INTEGER) +RETURNS ( + ID INTEGER, + ID_PRESUPUESTO INTEGER, + POSICION INTEGER, + TIPO_DETALLE VARCHAR(25), + CONCEPTO VARCHAR(2000), + IMPORTE_TOTAL NUMERIC(11,2), + VISIBLE SMALLINT) +AS +declare variable num_filas integer; +declare variable contador integer; +declare variable existe numeric(11,2); +declare variable total_acumulado numeric(11,2); +begin + existe = 0; + total_acumulado = 0.0; + contador = 0; + num_filas = 0; + + /* Existe el presupuesto? */ + for select count(*) + from presupuestos_cliente_detalles + where id_presupuesto = :AID + into :num_filas + do + begin + if (num_filas = 0) then + suspend; + end + + /* Ver si hay conceptos al principio sin capitulos */ + for select id, id_presupuesto, posicion, tipo_detalle + from presupuestos_cliente_detalles + where id_presupuesto = :AID + order by id_presupuesto, posicion + rows 1 + into :ID, :ID_PRESUPUESTO, :POSICION, :TIPO_DETALLE + do + begin + if (TIPO_DETALLE = 'Concepto') then + EXISTE = 1; + end + + if (existe = 1) then + begin + contador = 0; + /* Existen conceptos sin capitulo */ + for select tipo_detalle, importe_total, coalesce(visible, 1) + from presupuestos_cliente_detalles + where id_presupuesto = :AID + order by id_presupuesto, posicion + into :TIPO_DETALLE, :IMPORTE_TOTAL, :VISIBLE + do + begin + contador = contador + 1; + + if ((visible <> 0) and (tipo_detalle = 'Concepto')) then + total_acumulado = total_acumulado + importe_total; + + if ((tipo_detalle <> 'Concepto') or (contador = num_filas)) then + begin + importe_total = total_acumulado; + tipo_detalle = 'Titulo'; + concepto = 'General'; + visible = 1; + ID = -1; + posicion = -1; + suspend; + break; + end + end + end + + + for select id, id_presupuesto, posicion, tipo_detalle, F_RTFTOTEXT(concepto) as concepto, + importe_total, coalesce(visible, 1) + from presupuestos_cliente_detalles + where ((tipo_detalle = 'Titulo') or (tipo_detalle = 'Titulo opcional'))and id_presupuesto = :AID + order by id_presupuesto, posicion + into :ID, :ID_PRESUPUESTO, :POSICION, :TIPO_DETALLE, :CONCEPTO, + :IMPORTE_TOTAL, :VISIBLE + do + suspend; +end +^ + + +CREATE PROCEDURE PRO_PRES_CAPITULOS_CONCEPTOS ( + AID INTEGER) +RETURNS ( + ID INTEGER, + ID_PRESUPUESTO INTEGER, + POSICION INTEGER, + TIPO_DETALLE VARCHAR(25), + ID_CAPITULO INTEGER, + ID_ARTICULO INTEGER, + REFERENCIA VARCHAR(255), + CONCEPTO VARCHAR(2000), + CANTIDAD NUMERIC(11,2), + UNIDAD_MEDIDA VARCHAR(255), + IMPORTE_UNIDAD NUMERIC(11,2), + DESCUENTO NUMERIC(2,2), + IMPORTE_PORTE NUMERIC(11,2), + IMPORTE_TOTAL NUMERIC(11,2), + VISIBLE SMALLINT) +AS +declare variable capitulo_actual integer; +begin +capitulo_actual = -1; +ID_CAPITULO = -1; +for select pre.id, pre.id_presupuesto, pre.posicion, pre.tipo_detalle, + pre.id_articulo, articulos.referencia, + F_RTFTOTEXT(F_RTFTOTEXT(pre.CONCEPTO)) as CONCEPTO, + pre.cantidad, pre.unidad_medida, + case + when (pre.descuento <> 0) then (pre.importe_total / pre.cantidad) + else pre.importe_unidad + end as importe_unidad, + pre.descuento, pre.importe_porte, + pre.importe_total, coalesce(pre.visible, 1) + from presupuestos_cliente_detalles pre + left join articulos on (pre.id_articulo = articulos.id) + where pre.id_presupuesto = :AID + order by pre.id_presupuesto, pre.posicion + into :ID, :ID_PRESUPUESTO, :POSICION, :TIPO_DETALLE, :ID_ARTICULO, + :REFERENCIA, :CONCEPTO, :CANTIDAD, :UNIDAD_MEDIDA, :IMPORTE_UNIDAD, :DESCUENTO, + :IMPORTE_PORTE, :IMPORTE_TOTAL, :VISIBLE +do + begin + if (:tipo_detalle <> 'Concepto') then + begin + capitulo_actual = :ID; + ID_CAPITULO = capitulo_actual; + end + else + suspend; + end +end +^ + + +CREATE PROCEDURE PRO_PRES_RESUMEN ( + AID INTEGER) +RETURNS ( + ID INTEGER, + ID_PRESUPUESTO INTEGER, + POSICION INTEGER, + TIPO_DETALLE VARCHAR(25), + CONCEPTO VARCHAR(2000), + IMPORTE_TOTAL NUMERIC(11,2), + VISIBLE SMALLINT) +AS +declare variable num_capitulos integer; +declare variable num_filas integer; +declare variable contador integer; +declare variable existe numeric(11,2); +declare variable total_acumulado numeric(11,2); +declare variable concepto_capitulo varchar(2000); +declare variable tipo varchar(25); +begin + existe = 0; + total_acumulado = 0.0; + contador = 0; + num_filas = 0; + num_capitulos = 0; + concepto_capitulo = ''; + tipo = ''; + + /* Existe el presupuesto? */ + for select count(*) + from presupuestos_cliente_detalles + where id_presupuesto = :AID + into :num_filas + do + begin + if (num_filas = 0) then + suspend; + end + + /* Ver si hay conceptos al principio sin capitulos */ + for select id, id_presupuesto, posicion, tipo_detalle + from presupuestos_cliente_detalles + where id_presupuesto = :AID + order by id_presupuesto, posicion + rows 1 + into :ID, :ID_PRESUPUESTO, :POSICION, :TIPO_DETALLE + do + begin + if (TIPO_DETALLE = 'Concepto') then + EXISTE = 1; + end + + num_capitulos = 1; + if (existe = 1) then + begin + contador = 0; + /* Existen conceptos sin capitulo */ + for select tipo_detalle, coalesce(importe_total,0), coalesce(visible, 1) + from presupuestos_cliente_detalles + where id_presupuesto = :AID + order by id_presupuesto, posicion + into :TIPO_DETALLE, :IMPORTE_TOTAL, :VISIBLE + do + begin + contador = contador + 1; + + if ((visible <> 0) and (tipo_detalle = 'Concepto')) then + total_acumulado = total_acumulado + importe_total; + + if ((tipo_detalle <> 'Concepto') or (contador = num_filas)) then + begin + importe_total = total_acumulado; + tipo_detalle = 'Titulo'; + if (num_capitulos > 1) then + concepto = 'CAPTULO ' || num_capitulos ||'. General'; + else + concepto = 'General'; + visible = 1; + ID = -1; + posicion = -1; + suspend; + break; + end + end + end + + /* Tratar el resto de las filas */ + for select id, id_presupuesto, posicion, tipo_detalle, + F_RTFTOTEXT(concepto) as concepto, coalesce(importe_total,0), coalesce(visible, 1) + from presupuestos_cliente_detalles + where id_presupuesto = :AID and + tipo_detalle in ('Titulo', 'Titulo opcional', 'Subtotal') + order by posicion + into :ID, :ID_PRESUPUESTO, :POSICION, :TIPO_DETALLE, :CONCEPTO, + :IMPORTE_TOTAL, :VISIBLE + do + begin + contador = contador + 1; + if ((tipo_detalle = 'Titulo') or (tipo_detalle = 'Titulo opcional')) then + begin + concepto_capitulo = concepto; + tipo = tipo_detalle; + end + if (tipo_detalle = 'Subtotal') then + begin + concepto = 'CAPTULO ' || num_capitulos || '. ' || concepto_capitulo; + tipo_detalle = tipo; + num_capitulos = num_capitulos + 1; + suspend; + end + end +end +^ + +SET TERM ; ^ + +/******************************************************************************/ +/**** Descriptions ****/ +/******************************************************************************/ + diff --git a/Database/scripts/factuges_listapoblaciones.sql b/Database/scripts/factuges_listapoblaciones.sql new file mode 100644 index 0000000..e677467 --- /dev/null +++ b/Database/scripts/factuges_listapoblaciones.sql @@ -0,0 +1,33066 @@ +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1, 1, 'Aberasturi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2, 1, 'Alegria Dulantzi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3, 1, 'Amurrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4, 1, 'Antoana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5, 1, 'Araya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6, 1, 'Artziniega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7, 1, 'Amarita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8, 1, 'Ariez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9, 1, 'Armion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10, 1, 'Arroyabe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11, 1, 'Baos Ebro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12, 1, 'Barambio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13, 1, 'Berantevilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14, 1, 'Berguenda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15, 1, 'Boveda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16, 1, 'Carcamo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17, 1, 'Durana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18, 1, 'Elciego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19, 1, 'Espejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20, 1, 'Gamarra Mayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21, 1, 'Gauna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22, 1, 'Ibaguen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23, 1, 'Izarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24, 1, 'Labastida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25, 1, 'Laguardia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26, 1, 'Lapuebla Labarca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27, 1, 'Lezama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28, 1, 'Luiaondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29, 1, 'Llodio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30, 1, 'Maestu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31, 1, 'Menagarai'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32, 1, 'Nanclares Oca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (33, 1, 'Okondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (34, 1, 'Osma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (35, 1, 'Oyon-Oion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (36, 1, 'Peacerrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (37, 1, 'Pobes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (38, 1, 'Puentelarra-Zubilarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (39, 1, 'Quejana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (40, 1, 'Respalditza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (41, 1, 'Ribabellosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (42, 1, 'Salinas Aana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (43, 1, 'Salinillas Buradon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (44, 1, 'Salvatierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (45, 1, 'Santa Cruz Campezo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (46, 1, 'Urbina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (47, 1, 'Villabuena de Alava-Eskuernaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (48, 1, 'Villanae'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (49, 1, 'Legutiano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (50, 1, 'Vitoria-Gasteiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (51, 1, 'Zambrana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (52, 1, 'Murgia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (53, 1, 'Zuazo Cuartango'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (54, 1, 'Ozaeta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (55, 1, 'Ibarra Aramaio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (56, 1, 'Gopegui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (57, 1, 'Elburgo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (58, 1, 'Llanteno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (59, 1, 'Barriobusto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (60, 1, 'Bernedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (61, 1, 'Elvillar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (62, 1, 'Labraza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (63, 1, 'Lagran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (64, 1, 'Lanciego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (65, 1, 'Leza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (66, 1, 'Moreda de Alava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (67, 1, 'Navaridas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (68, 1, 'Ordoana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (69, 1, 'Pipaon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (70, 1, 'Samaniego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (71, 1, 'Villanueva Valdegovia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (72, 1, 'Yecora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (73, 1, 'Paganos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (74, 1, 'Albeniz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (75, 1, 'Acilu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (76, 1, 'Adana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (77, 1, 'Alaiza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (78, 1, 'Arrieta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (79, 1, 'Arrizala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (80, 1, 'Aspuru'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (81, 1, 'Chinchetru'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (82, 1, 'Eguileor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (83, 1, 'Ezquerecocha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (84, 1, 'Gaceo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (85, 1, 'Guereu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (86, 1, 'Heredia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (87, 1, 'Iturrieta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (88, 1, 'Langarica'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (89, 1, 'Luzuriaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (90, 1, 'Narvaja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (91, 1, 'Ullivarri Jauregui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (92, 1, 'Zuazo San Millan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (93, 1, 'Alda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (94, 1, 'Atauri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (95, 1, 'Azaceta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (96, 1, 'Bujanda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (97, 1, 'Contrasta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (98, 1, 'Echavarri Urtupia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (99, 1, 'Eguileta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (100, 1, 'Erenchun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (101, 1, 'Ibisate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (102, 1, 'Larrea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (103, 1, 'Onraita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (104, 1, 'Oteo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (105, 1, 'Roitegui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (106, 1, 'Sabando'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (107, 1, 'Troconiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (108, 1, 'Ullivarri Arana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (109, 1, 'Virgala Mayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (110, 1, 'Apellaniz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (111, 1, 'Orbiso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (112, 1, 'San Vicente Arana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (113, 1, 'Dallo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (114, 1, 'Arlucea Marquinez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (115, 1, 'Marquinez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (116, 1, 'Urarte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (117, 1, 'Quintana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (118, 1, 'San Roman Campezo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (119, 1, 'Urturi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (120, 1, 'Alangua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (121, 1, 'Andoin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (122, 1, 'Eguino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (123, 1, 'Opacua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (124, 1, 'San Roman San Millan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (125, 1, 'Urabain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (126, 1, 'Vicua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (127, 1, 'Arbulo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (128, 1, 'Arcaute'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (129, 1, 'Arcaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (130, 1, 'Argandoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (131, 1, 'Ascarza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (132, 1, 'Elorriaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (133, 1, 'Hijona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (134, 1, 'Zurbano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (135, 1, 'Arriola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (136, 1, 'Galarreta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (137, 1, 'Gordoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (138, 1, 'Zalduondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (139, 1, 'Castillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (140, 1, 'Gardelegui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (141, 1, 'Angostina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (142, 1, 'Cripan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (143, 1, 'Bolivar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (144, 1, 'Monasterioguren'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (145, 1, 'Oquina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (146, 1, 'Ullibarri Olleros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (147, 1, 'Alecha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (148, 1, 'Arenaza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (149, 1, 'Cicujano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (150, 1, 'Leorza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (151, 1, 'Musitu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (152, 1, 'Corres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (153, 1, 'Virgala Menor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (154, 1, 'Manzanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (155, 1, 'Delica'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (156, 1, 'Murga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (157, 1, 'Saracho'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (158, 1, 'Zuaza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (159, 1, 'Basabe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (160, 1, 'Corro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (161, 1, 'Gurendes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (162, 1, 'Fresneda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (163, 1, 'Lalastra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (164, 1, 'Pinedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (165, 1, 'Valluerca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (166, 1, 'Berganzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (167, 1, 'Ocio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (168, 1, 'Santa Cruz Fierro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (169, 1, 'Mendiola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (170, 1, 'Margarita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (171, 1, 'Trespuentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (172, 1, 'Villodas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (173, 1, 'Aranguiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (174, 1, 'Armentia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (175, 1, 'Artaza Foronda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (176, 1, 'Asteguieta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (177, 1, 'Estarrona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (178, 1, 'Hueto Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (179, 1, 'Lermanda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (180, 1, 'Lopidana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (181, 1, 'Mendiguren'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (182, 1, 'Mendoza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (183, 1, 'Ullivarri Via'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (184, 1, 'Yurre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (185, 1, 'Zuazo de Vitoria-Zuhatzu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (186, 1, 'Comunion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (187, 1, 'Fontecha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (188, 1, 'Apreguindana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (189, 1, 'Gujuli'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (190, 1, 'Oyardo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (191, 1, 'Unza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (192, 1, 'Uzquiano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (193, 1, 'Apodaca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (194, 1, 'Echavarri Via'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (195, 1, 'Zaitegui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (196, 1, 'Antezana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (197, 1, 'Guerea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (198, 1, 'Legarda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (199, 1, 'Mandojana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (200, 1, 'Ilarraza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (201, 1, 'Junguitu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (202, 1, 'Matauco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (203, 1, 'Oreitia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (204, 1, 'Ullivarri Arrazua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (205, 1, 'Etura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (206, 1, 'Marieta Larrinzar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (207, 1, 'Subijana Alava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (208, 1, 'Morillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (209, 1, 'Subijana Morillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (210, 1, 'Anda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (211, 1, 'Jocano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (212, 1, 'Santa Eulalia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (213, 1, 'Azcoaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (214, 1, 'Elosu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (215, 1, 'Ollerias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (216, 1, 'Olaeta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (217, 1, 'Landa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (218, 1, 'Luco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (219, 1, 'Ullivarri Gamboa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (220, 1, 'Arriaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (221, 1, 'Artaza Ribera Alta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (222, 1, 'Barron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (223, 1, 'Escota'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (224, 1, 'Gomecha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (225, 1, 'Ormijana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (226, 1, 'Paul'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (227, 1, 'Aperregui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (228, 1, 'Arejola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (229, 1, 'Domaiquia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (230, 1, 'Gamiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (231, 1, 'Gobeo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (232, 1, 'Hueto Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (233, 1, 'Izarza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (234, 1, 'Letona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (235, 1, 'Luquiano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (236, 1, 'Manurga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (237, 1, 'Mendarozqueta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (238, 1, 'Miano Mayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (239, 1, 'Otazu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (240, 1, 'Urrunaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (241, 1, 'Vitoriano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (242, 1, 'Amezaga Asparrena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (243, 1, 'Andollu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (244, 1, 'Aua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (245, 1, 'Astulez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (246, 1, 'Audicana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (247, 1, 'Bachicabo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (248, 1, 'Barrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (249, 1, 'Caranca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (250, 1, 'Eguilaz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (251, 1, 'Estavillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (252, 1, 'Guevara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (253, 1, 'Ibarguren'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (254, 1, 'Ilarduya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (255, 1, 'Laserna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (256, 1, 'Lubiano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (257, 1, 'Maturana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (258, 1, 'Mezquia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (259, 1, 'Mioma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (260, 1, 'Munain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (261, 1, 'Nograro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (262, 1, 'Ocariz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (263, 1, 'Payueta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (264, 1, 'Quejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (265, 1, 'Salcedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (266, 1, 'Barria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (267, 1, 'Tobillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (268, 1, 'Tuesta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (269, 1, 'Turiso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (270, 1, 'Villafria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (271, 1, 'Villaverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (272, 1, 'Viaspre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (273, 1, 'Antezana Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (274, 1, 'Gaceta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (275, 1, 'Navarrete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (276, 1, 'Lasarte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (277, 1, 'Berrosteguieta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (278, 1, 'Cerio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (279, 1, 'Baroja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (280, 1, 'Montoria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (281, 1, 'Mendijur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (282, 1, 'Hermua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (283, 1, 'Alcedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (284, 1, 'Sobron Bajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (285, 1, 'Amezaga Zuya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (286, 1, 'Guillerna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (287, 1, 'Zarate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (288, 1, 'Guinea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (289, 1, 'Echavarri Cuartango'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (290, 1, 'Urbina Eza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (291, 1, 'Anucita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (292, 1, 'Lacervilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (293, 1, 'Lahoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (294, 1, 'Lasierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (295, 1, 'Nubilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (296, 1, 'Ribera Valdegovia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (297, 1, 'Tuyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (298, 1, 'Villaluenga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (299, 1, 'Villamardones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (300, 1, 'Basquiuelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (301, 1, 'Arbigano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (302, 1, 'Archua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (303, 1, 'Arriano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (304, 1, 'Guillarte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (305, 1, 'Luna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (306, 1, 'Montevite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (307, 1, 'Ollavarre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (308, 1, 'Villamanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (309, 1, 'Caicedo Sopea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (310, 1, 'San Miguel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (311, 1, 'Villabezana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (312, 1, 'El Campillar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (313, 1, 'Herea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (314, 1, 'Leciana Oca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (315, 1, 'Oceca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (316, 1, 'Belunza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (317, 1, 'Inoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (318, 1, 'Abornicano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (319, 1, 'Uncella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (320, 1, 'Mendivil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (321, 1, 'Altube'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (322, 1, 'Martioda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (323, 1, 'Faido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (324, 1, 'Escanzana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (325, 1, 'Berroci'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (326, 1, 'Loza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (327, 1, 'Tobera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (328, 1, 'Quintanilla Ribera Baja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (329, 1, 'Salmanton'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (330, 1, 'Maroo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (331, 1, 'Lecamaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (332, 1, 'Santurde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (333, 1, 'Villamaderne'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (334, 1, 'Barajuen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (335, 1, 'Echaguen Aramaio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (336, 1, 'Uribarri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (337, 1, 'Abecia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (338, 1, 'Caicedo Yuso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (339, 1, 'Ribaguda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (340, 1, 'Sarria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (341, 1, 'Andagoya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (342, 1, 'Catadiano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (343, 1, 'Villafranca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (344, 1, 'Zumelzu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (345, 1, 'Mijancas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (346, 1, 'Echaguen Cigoitia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (347, 1, 'Gamarra Menor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (348, 1, 'Retana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (349, 1, 'Alzaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (350, 1, 'Larrimbe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (351, 1, 'Marquina Zuya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (352, 1, 'Retes Llanteno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (353, 1, 'Sendadiano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (354, 1, 'Foronda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (355, 1, 'Crispijana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (356, 1, 'Sojoguti'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (357, 1, 'Acosta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (358, 1, 'Berricano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (359, 1, 'Igay'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (360, 1, 'Jugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (361, 1, 'Beotegui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (362, 1, 'Ganzaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (363, 1, 'Izoria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (364, 1, 'Leciana Camino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (365, 1, 'Apricano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (366, 1, 'Cestafe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (367, 1, 'Murua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (368, 1, 'Olano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (369, 1, 'Molinilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (370, 1, 'Viloria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (371, 1, 'Lejarzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (372, 1, 'Madaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (373, 1, 'Menoyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (374, 1, 'Miano Menor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (375, 1, 'Retes Tudela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (376, 1, 'Aloria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (377, 1, 'Tertanga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (378, 1, 'Portilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (379, 1, 'Erbi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (380, 1, 'Caserios San Pedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (381, 1, 'Artomaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (382, 1, 'Sojo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (383, 1, 'Santa Coloma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (384, 1, 'Costera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (385, 1, 'Mendieta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (386, 1, 'Abetxuko'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (387, 1, 'Arechavaleta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (388, 1, 'Argomaniz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (389, 1, 'Arzubiaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (390, 1, 'Goiain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (391, 1, 'Nanclares Gamboa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (392, 1, 'Ondategui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (393, 1, 'Ali'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (394, 1, 'Betolaza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (395, 1, 'Ciriano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (396, 1, 'Buruaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (397, 1, 'Olabezar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (398, 1, 'Aguiiga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (399, 1, 'Acebedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (400, 1, 'Aes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (401, 1, 'Arechaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (402, 1, 'Arreo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (403, 1, 'Assa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (404, 1, 'Astobiza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (405, 1, 'Atiega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (406, 1, 'Bellojin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (407, 1, 'Betoo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (408, 1, 'Campijo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (409, 1, 'Ciorraga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (410, 1, 'Echegoyen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (411, 1, 'Eribe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (412, 1, 'Esquivel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (413, 1, 'Estibaliz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (414, 1, 'Garabo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (415, 1, 'Garayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (416, 1, 'Gordelliz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (417, 1, 'Jauregui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (418, 1, 'Lacorzana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (419, 1, 'Larrazcueta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (420, 1, 'Lujo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (421, 1, 'Melledes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (422, 1, 'Mendiguren Este'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (423, 1, 'Marinda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (424, 1, 'Mimbredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (425, 1, 'Nafarrate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (426, 1, 'Ondona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (427, 1, 'Quintanilla Valdegovia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (428, 1, 'Urizar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (429, 1, 'Villambrosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (430, 1, 'Zuazola Barrundia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (431, 1, 'Elguea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (432, 1, 'Arraga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (433, 1, 'Arriola Aramaio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (434, 1, 'Lacorzanilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (435, 1, 'Zubillaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (436, 1, 'Jundiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (437, 1, 'Larrinoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (438, 1, 'Castillo Sopea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (439, 1, 'Ullivarri Cuartango'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (440, 1, 'Urbina Basabe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (441, 1, 'Onsoo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (442, 1, 'Aramaio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (443, 1, 'Oyon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (444, 1, 'Valle de Ayala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (445, 1, 'Villarreal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (446, 1, 'Municipio Aramaio Exclusivo Publicacion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (447, 2, 'Albacete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (448, 2, 'Alcaraz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (449, 2, 'Almansa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (450, 2, 'Casas Ibaez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (451, 2, 'Caudete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (452, 2, 'Chinchilla Monte Aragon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (453, 2, 'Elche de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (454, 2, 'Fuentealbilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (455, 2, 'La Gineta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (456, 2, 'Hellin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (457, 2, 'Madrigueras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (458, 2, 'Mahora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (459, 2, 'Minaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (460, 2, 'Povedilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (461, 2, 'Pozo Caada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (462, 2, 'La Roda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (463, 2, 'Tarazona Mancha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (464, 2, 'Tobarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (465, 2, 'Villarrobledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (466, 2, 'Yeste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (467, 2, 'Las Minas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (468, 2, 'Alborea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (469, 2, 'Ferez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (470, 2, 'Letur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (471, 2, 'Socovos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (472, 2, 'Alpera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (473, 2, 'Bonete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (474, 2, 'Montealegre Castillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (475, 2, 'Ontur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (476, 2, 'Albatana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (477, 2, 'Cordovilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (478, 2, 'Fuente Alamo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (479, 2, 'Santiago Mora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (480, 2, 'Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (481, 2, 'Hoya Gonzalo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (482, 2, 'Villar Chinchilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (483, 2, 'Corral Rubio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (484, 2, 'Higueruela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (485, 2, 'Petrola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (486, 2, 'Agramon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (487, 2, 'Isso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (488, 2, 'El Bonillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (489, 2, 'Lezuza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (490, 2, 'Balazote'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (491, 2, 'Barrax'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (492, 2, 'La Herrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (493, 2, 'Munera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (494, 2, 'Ossa Montiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (495, 2, 'Tiriez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (496, 2, 'Villalgordo Jucar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (497, 2, 'Montalvos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (498, 2, 'Fuensanta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (499, 2, 'Ayna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (500, 2, 'Bogarra'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (501, 2, 'Lietor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (502, 2, 'Paterna Madera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (503, 2, 'Alcadozo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (504, 2, 'Peas San Pedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (505, 2, 'Pozohondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (506, 2, 'Cotillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (507, 2, 'Riopar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (508, 2, 'Molinicos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (509, 2, 'El Pardal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (510, 2, 'Pearrubia Elche Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (511, 2, 'Villaverde Guadalimar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (512, 2, 'El Salobral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (513, 2, 'Santa Ana Albacete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (514, 2, 'Casas Lazaro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (515, 2, 'Pozuelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (516, 2, 'San Pedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (517, 2, 'El Ballestero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (518, 2, 'El Jardin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (519, 2, 'Robledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (520, 2, 'Bienservida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (521, 2, 'Masegoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (522, 2, 'Reolid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (523, 2, 'Peascosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (524, 2, 'Salobre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (525, 2, 'Vianos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (526, 2, 'Villapalacios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (527, 2, 'Viveros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (528, 2, 'Alatoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (529, 2, 'Carcelen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (530, 2, 'Casas Juan Nuez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (531, 2, 'Pozo-Lorente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (532, 2, 'Valdeganga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (533, 2, 'Villavaliente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (534, 2, 'Abengibre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (535, 2, 'Alcala Jucar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (536, 2, 'Balsa Ves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (537, 2, 'Cenizate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (538, 2, 'Casas Ves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (539, 2, 'Golosalvo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (540, 2, 'Jorquera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (541, 2, 'Motilleja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (542, 2, 'Navas Jorquera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (543, 2, 'La Recueja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (544, 2, 'Villa Ves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (545, 2, 'Villamalea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (546, 2, 'Villatoya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (547, 2, 'Casas Arroyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (548, 2, 'Los Olmos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (549, 2, 'Tazona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (550, 2, 'Arguellite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (551, 2, 'Fuente Higuera Yeste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (552, 2, 'Fuentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (553, 2, 'Majada Carrasca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (554, 2, 'Plael'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (555, 2, 'Sege'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (556, 2, 'Turrilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (557, 2, 'Casas Letur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (558, 2, 'Casicas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (559, 2, 'Abejuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (560, 2, 'Yetas Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (561, 2, 'Nerpio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (562, 2, 'Pedro Andres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (563, 2, 'Vizcable'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (564, 2, 'Arroyo Morote'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (565, 2, 'Arroyo Sujayar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (566, 2, 'Boche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (567, 2, 'Claras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (568, 2, 'Cortijo Juliana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (569, 2, 'Los Chorreones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (570, 2, 'Gontar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (571, 2, 'Graya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (572, 2, 'Jartos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (573, 2, 'Juan Quilez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (574, 2, 'La Donar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (575, 2, 'Llano Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (576, 2, 'Moropeche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (577, 2, 'La Moraleda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (578, 2, 'Paules'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (579, 2, 'Rala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (580, 2, 'Raspilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (581, 2, 'Tus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (582, 2, 'Parolis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (583, 2, 'Mora Santa Quiteria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (584, 2, 'Villares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (585, 2, 'Nava Campana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (586, 2, 'Caada Agra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (587, 2, 'Mingogil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (588, 2, 'Vicorto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (589, 2, 'La Yunquera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (590, 2, 'Estacion Chinchilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (591, 2, 'Las Anorias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (592, 2, 'Campamento Roblellano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (593, 2, 'Los Alejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (594, 2, 'Casas Cerro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (595, 2, 'Cilleruelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (596, 2, 'Los Collados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (597, 2, 'Cucharal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (598, 2, 'La Dehesa Ayna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (599, 2, 'Las Eras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (600, 2, 'Moriscote'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (601, 2, 'Pesebre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (602, 2, 'Serradiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (603, 2, 'Casa Cabeza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (604, 2, 'La Loma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (605, 2, 'El Toril'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (606, 2, 'Casas Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (607, 2, 'Arroyofrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (608, 2, 'Solanilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (609, 2, 'Tolosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (610, 2, 'El Viso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (611, 2, 'Ituero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (612, 2, 'Cubas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (613, 2, 'La Sierra Letur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (614, 2, 'Horna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (615, 2, 'La Noguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (616, 2, 'Estacion Minaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (617, 2, 'Casas Juan Gil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (618, 2, 'El Horcajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (619, 2, 'La Hoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (620, 2, 'Canaleja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (621, 2, 'Cantoblanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (622, 2, 'La Gila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (623, 2, 'Mariminguez Alcala Jucar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (624, 2, 'Zulema'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (625, 2, 'La Alfera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (626, 2, 'Beg'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (627, 2, 'La Casa Noguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (628, 2, 'Marchana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (629, 2, 'Pajareles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (630, 2, 'La Venta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (631, 2, 'Caada Provencio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (632, 2, 'Mesones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (633, 2, 'Pinilla Molinicos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (634, 2, 'Torre Pedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (635, 2, 'La Felipa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (636, 2, 'Aljube'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (637, 2, 'Villegas Mardos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (638, 2, 'Casica Madroo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (639, 2, 'La Zarza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (640, 2, 'Caada Buendia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (641, 2, 'El Caar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (642, 2, 'Cortijos Cura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (643, 2, 'Casasola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (644, 2, 'La Herreria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (645, 2, 'Argamason'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (646, 2, 'Bellotar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (647, 2, 'Campillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (648, 2, 'Casa Aparicio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (649, 2, 'Casillas Marin Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (650, 2, 'Casillas Marin Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (651, 2, 'Oncebreros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (652, 2, 'Berro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (653, 2, 'Caadas Haches Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (654, 2, 'Caadas Haches Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (655, 2, 'La Dehesa Val'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (656, 2, 'Navalengua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (657, 2, 'Tobarblanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (658, 2, 'Las Yeguarizas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (659, 2, 'La Solana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (660, 2, 'El Carrascal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (661, 2, 'San Rafael'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (662, 2, 'El Sahuco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (663, 2, 'Casas Pea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (664, 2, 'Sotuelamos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (665, 2, 'Ventas Alcolea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (666, 2, 'Bormate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (667, 2, 'Campoalbillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (668, 2, 'La Grajuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (669, 2, 'Hijar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (670, 2, 'Mullidar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (671, 2, 'Casablanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (672, 2, 'Caadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (673, 2, 'Los Chorretites Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (674, 2, 'La Dehesa Nerpio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (675, 2, 'Huebras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (676, 2, 'Jutia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (677, 2, 'Arteaga Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (678, 2, 'Cerroblanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (679, 2, 'Zorio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (680, 2, 'Burrueco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (681, 2, 'Fuenlabrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (682, 2, 'El Cubillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (683, 2, 'Los Chospes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (684, 2, 'Pinilla Chinchilla Monte Aragon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (685, 2, 'Fuente Higuera Molinicos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (686, 2, 'Las Casas Haches'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (687, 2, 'Las Mohedas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (688, 2, 'Potiche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (689, 2, 'Tinajeros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (690, 2, 'Carboneras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (691, 2, 'Las Animas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (692, 2, 'Caada Morote'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (693, 2, 'Las Hoyas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (694, 2, 'Casa Caete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (695, 2, 'Pozo Jara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (696, 2, 'La Rambla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (697, 2, 'Baos Tus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (698, 2, 'Collado Carrascas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (699, 2, 'Los Giles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (700, 2, 'Las Quebradas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (701, 2, 'La Tejeruela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (702, 2, 'Aguas Nuevas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (703, 2, 'Batan Puerto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (704, 2, 'Casa Rosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (705, 2, 'Cortijo Tortas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (706, 2, 'Rio Madera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (707, 2, 'Sierra Agua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (708, 2, 'Caada Juncosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (709, 2, 'Casa Nueva Peas San Pedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (710, 2, 'Los Charcones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (711, 2, 'Fuente Carrasca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (712, 2, 'Vegallera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (713, 2, 'El Ginete Ayna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (714, 2, 'La Navazuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (715, 2, 'Royo Odrea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (716, 2, 'El Rubial'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (717, 2, 'La Sarguilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (718, 2, 'El Villarejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (719, 2, 'Nava Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (720, 2, 'Nava Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (721, 2, 'Pearrubia Masegoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (722, 2, 'Umbria Yeste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (723, 2, 'Los Anguijes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (724, 2, 'Cancarix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (725, 2, 'Minateda Horca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (726, 2, 'La Torrecica'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (727, 2, 'Uchea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (728, 2, 'Cilanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (729, 2, 'Campillo Doblas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (730, 2, 'Campillo Virgen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (731, 2, 'Casa Nueva Paterna Madera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (732, 2, 'Los Catalmarejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (733, 2, 'Los Pocicos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (734, 2, 'Santa Marta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (735, 2, 'Abuzaderas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (736, 2, 'Agra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (737, 2, 'Aguasol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (738, 2, 'Alcantarilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (739, 2, 'Alcozarejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (740, 2, 'El Altico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (741, 2, 'Bacariza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (742, 2, 'El Barrio Milagro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (743, 2, 'Los Belmontes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (744, 2, 'Fabricas de Riopar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (745, 2, 'Bojadillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (746, 2, 'Bolos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (747, 2, 'Calzada Vergara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (748, 2, 'Campamento'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (749, 2, 'Cantero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (750, 2, 'Caada Tobarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (751, 2, 'Caada Salobral Molina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (752, 2, 'Caravaca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (753, 2, 'Carrascosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (754, 2, 'Casa Blanca Rioteros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (755, 2, 'Casa Capitan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (756, 2, 'Casa Monjas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (757, 2, 'Casa Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (758, 2, 'Casa Hita El Cuartico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (759, 2, 'Casas Abajo San Pedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (760, 2, 'Casas Don Pedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (761, 2, 'Las Casas Collado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (762, 2, 'Las Casas Pino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (763, 2, 'Cerrolobo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (764, 2, 'El Colmenar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (765, 2, 'Cortijo Herrero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (766, 2, 'El Cuartico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (767, 2, 'Cueva Molino Piedras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (768, 2, 'La Dehesa Letur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (769, 2, 'La Dehesa Riopar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (770, 2, 'El Fontanar Alarcn'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (771, 2, 'Fontanar Vias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (772, 2, 'La Fuensanta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (773, 2, 'Fuente Pino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (774, 2, 'Fuente Taif'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (775, 2, 'Fuente Carrasca Nerpio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (776, 2, 'Las Fuentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (777, 2, 'Los Gabrieles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (778, 2, 'El Jinete Lietor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (779, 2, 'El Gollizo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (780, 2, 'Graos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (781, 2, 'El Griego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (782, 2, 'La Higuera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (783, 2, 'Horca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (784, 2, 'Horno Ciego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (785, 2, 'Hoya Mala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (786, 2, 'La Humosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (787, 2, 'Javieres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (788, 2, 'San Cristobal de la Laguna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (789, 2, 'El Laminador'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (790, 2, 'El Lugar Nuevo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (791, 2, 'Los Llanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (792, 2, 'Maldonado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (793, 2, 'Mendez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (794, 2, 'Las Mesillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (795, 2, 'Mesta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (796, 2, 'Moharras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (797, 2, 'La Molata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (798, 2, 'El Molinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (799, 2, 'El Morcillar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (800, 2, 'Los Morenos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (801, 2, 'El Nogueron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (802, 2, 'La Pared'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (803, 2, 'La Parrilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (804, 2, 'Partidores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (805, 2, 'Perchel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (806, 2, 'Perichan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (807, 2, 'Pinares Jucar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (808, 2, 'Pozo Bueno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (809, 2, 'Pozo Pea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (810, 2, 'Los Prados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (811, 2, 'Los Prados Yeste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (812, 2, 'La Pulgosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (813, 2, 'Quejigal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (814, 2, 'Riachuelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (815, 2, 'Rio Cotillas Resinera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (816, 2, 'Riopar Viejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (817, 2, 'El Roble'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (818, 2, 'El Royo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (819, 2, 'Santa Ana Alcadozo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (820, 2, 'Santa Ana Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (821, 2, 'Talave'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (822, 2, 'Tindavar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (823, 2, 'Tranco Lobo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (824, 2, 'Umbria Angulo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (825, 2, 'El Valero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (826, 2, 'Vandelaras Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (827, 2, 'Vandelaras Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (828, 2, 'Venta Mendoza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (829, 2, 'El Villar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (830, 2, 'Villar Pozo Rubio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (831, 2, 'Casas Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (832, 2, 'Rincon Moro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (833, 2, 'El Maeso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (834, 2, 'Estacion Agramon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (835, 2, 'Casagrande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (836, 2, 'La Tejera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (837, 2, 'Umbria Letur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (838, 2, 'El Tobar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (839, 2, 'El Pozuelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (840, 2, 'Lagunas Ruidera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (841, 2, 'Las Casas Ramon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (842, 2, 'Los Vizcainos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (843, 3, 'Albatera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (844, 3, 'Alcoy-Alcoi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (845, 3, 'Alguea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (846, 3, 'Alicante-Alacant'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (847, 3, 'Almoradi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (848, 3, 'Altea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (849, 3, 'Aspe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (850, 3, 'Benejuzar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (851, 3, 'Beniarbeig'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (852, 3, 'Benidorm'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (853, 3, 'Benissa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (854, 3, 'Biar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (855, 3, 'Callosa Ensarria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (856, 3, 'Callosa Segura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (857, 3, 'El Campello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (858, 3, 'Castalla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (859, 3, 'Catral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (860, 3, 'Cocentaina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (861, 3, 'Cox'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (862, 3, 'Crevillente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (863, 3, 'Denia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (864, 3, 'Dolores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (865, 3, 'Elche-Elx'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (866, 3, 'Elda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (867, 3, 'Gata Gorgos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (868, 3, 'Granja Rocamora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (869, 3, 'Guardamar Segura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (870, 3, 'Hondon Nieves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (871, 3, 'Ibi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (872, 3, 'Jalon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (873, 3, 'Javea-Xabia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (874, 3, 'Jijona-Xixona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (875, 3, 'Monforte Cid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (876, 3, 'Monovar-Monover'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (877, 3, 'Mutxamel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (878, 3, 'Muro de Alcoy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (879, 3, 'Novelda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (880, 3, 'Ondara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (881, 3, 'Onil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (882, 3, 'Orihuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (883, 3, 'Pedreguer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (884, 3, 'Pego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (885, 3, 'Pinoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (886, 3, 'Redovan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (887, 3, 'Rodriguillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (888, 3, 'Rojales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (889, 3, 'La Romana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (890, 3, 'Salinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (891, 3, 'San Juan de Alicante'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (892, 3, 'San Vicente del Raspeig'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (893, 3, 'Santa Pola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (894, 3, 'Sax'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (895, 3, 'Teulada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (896, 3, 'Tibi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (897, 3, 'Torrevieja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (898, 3, 'Vergel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (899, 3, 'Villajoyosa-La Vila Joiosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (900, 3, 'Villena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (901, 3, 'Banyeres de Mariola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (902, 3, 'Bigastro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (903, 3, 'Benijofar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (904, 3, 'Jacarilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (905, 3, 'Miraflor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (906, 3, 'Setla Mirarrosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (907, 3, 'Petrer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (908, 3, 'Calpe-Calp'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (909, 3, 'Rafal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (910, 3, 'Beniarres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (911, 3, 'La Nucia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (912, 3, 'Polop'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (913, 3, 'Alfaz Pi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (914, 3, 'Benitachell-P.Nou Benitatxell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (915, 3, 'Benejama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (916, 3, 'Campo Mirra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (917, 3, 'Caada Caada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (918, 3, 'Agost'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (919, 3, 'Alcalali'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (920, 3, 'Benimeli'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (921, 3, 'Rafol Almunia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (922, 3, 'Sagra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (923, 3, 'Sanet Negrals'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (924, 3, 'Torrellano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (925, 3, 'Lorcha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (926, 3, 'Orba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (927, 3, 'Benidoleig'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (928, 3, 'Tormos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (929, 3, 'Daya Nueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (930, 3, 'Puebla Rocamora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (931, 3, 'San Miguel Salinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (932, 3, 'Pilar de la Horadada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (933, 3, 'La Campaneta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (934, 3, 'San Bartolome'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (935, 3, 'Algorfa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (936, 3, 'Daya Vieja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (937, 3, 'Playa San Juan Condomina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (938, 3, 'Aguas Busot'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (939, 3, 'Finestrat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (940, 3, 'Relleu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (941, 3, 'Sella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (942, 3, 'Torremanzanas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (943, 3, 'Orxeta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (944, 3, 'Busot'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (945, 3, 'Agres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (946, 3, 'Alcocer Planes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (947, 3, 'Alfafara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (948, 3, 'Almudaina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (949, 3, 'Alcala Jovada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (950, 3, 'Benillup'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (951, 3, 'Benimarfull'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (952, 3, 'Planes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (953, 3, 'Casas Seor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (954, 3, 'Chinorlet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (955, 3, 'Benilloba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (956, 3, 'Benasau'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (957, 3, 'Balones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (958, 3, 'Benifallim'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (959, 3, 'Cuatretondeta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (960, 3, 'Gorga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (961, 3, 'Millena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (962, 3, 'Penaguila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (963, 3, 'Benimasot'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (964, 3, 'Tollos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (965, 3, 'Adsubia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (966, 3, 'Alcolecha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (967, 3, 'Beniali'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (968, 3, 'Vall Ebo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (969, 3, 'San Fulgencio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (970, 3, 'Benferri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (971, 3, 'Hondon Frailes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (972, 3, 'Gayanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (973, 3, 'Lliber'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (974, 3, 'La Aparecida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (975, 3, 'Facheca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (976, 3, 'Famorca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (977, 3, 'Realengo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (978, 3, 'Formentera Segura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (979, 3, 'Los Montesinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (980, 3, 'San Isidro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (981, 3, 'Benimantell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (982, 3, 'Guadalest'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (983, 3, 'Beniarda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (984, 3, 'Benifato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (985, 3, 'Confrides'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (986, 3, 'Dehesa Campoamor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (987, 3, 'La Jara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (988, 3, 'Benisiva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (989, 3, 'La Marina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (990, 3, 'Fleix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (991, 3, 'Benichembla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (992, 3, 'Parcent'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (993, 3, 'Murla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (994, 3, 'Castell Castells'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (995, 3, 'Bolulla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (996, 3, 'Tarbena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (997, 3, 'Torremendo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (998, 3, 'El Altet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (999, 3, 'Desamparados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1000, 3, 'Molins'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1001, 3, 'Rada Moraira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1002, 3, 'Orito'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1003, 3, 'Algayat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1004, 3, 'Moraira-Teulada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1005, 3, 'Canalosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1006, 3, 'Los Rocamoras de la Murada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1007, 3, 'La Murada Los Vicentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1008, 3, 'Beniaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1009, 3, 'Benirrama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1010, 3, 'Benisili'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1011, 3, 'Carroja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1012, 3, 'Patro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1013, 3, 'Torrelamata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1014, 3, 'Llosa Camacho'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1015, 3, 'Abdet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1016, 3, 'El Bacarot'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1017, 3, 'El Rebolledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1018, 3, 'Tangel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1019, 3, 'Benialfaqui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1020, 3, 'Catamarruch'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1021, 3, 'Margarida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1022, 3, 'Caada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1023, 3, 'Verdegas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1024, 3, 'Torre Horadada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1025, 3, 'Alcudia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1026, 3, 'Forna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1027, 3, 'Encebras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1028, 3, 'Ubeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1029, 3, 'La Encina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1030, 3, 'Jesus Pobre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1031, 3, 'Moralet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1032, 3, 'Parroquia la Matanza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1033, 3, 'Benimaurell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1034, 3, 'Campell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1035, 3, 'Alqueria Aznar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1036, 3, 'Senija'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1037, 3, 'Playa San Juan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1038, 3, 'El Altet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1039, 3, 'Vall Laguart'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1040, 3, 'Ares Bosque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1041, 3, 'La Hoya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1042, 3, 'Camino Beniel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1043, 3, 'Algars'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1044, 3, 'San Felipe Neri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1045, 3, 'Alzabares Alto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1046, 3, 'Daimes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1047, 3, 'El Rebalso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1048, 3, 'Barbarroja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1049, 3, 'Chirles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1050, 3, 'Caada de Biar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1051, 3, 'La Solana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1052, 3, 'Derramador'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1053, 3, 'Fontilles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1054, 3, 'Acequia Palacios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1055, 3, 'Aduanas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1056, 3, 'Aeropuerto Alicante'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1057, 3, 'Albir'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1058, 3, 'Albufera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1059, 3, 'Alcoraya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1060, 3, 'Algoda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1061, 3, 'Algoros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1062, 3, 'Alhama Springs'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1063, 3, 'Alqueria Benifloret'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1064, 3, 'Alqueria Jorda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1065, 3, 'Altabix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1066, 3, 'Altea Vella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1067, 3, 'Los Arenales del Sol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1068, 3, 'Arneva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1069, 3, 'Asprella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1070, 3, 'Vall Alcala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1071, 3, 'Los Balcones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1072, 3, 'Ballestera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1073, 3, 'Las Bayas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1074, 3, 'Benamar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1075, 3, 'Benitaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1076, 3, 'Raiguero Bonanza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1077, 3, 'Caballusa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1078, 3, 'Cabo Roig (Dehesa Campoamor)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1079, 3, 'Cala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1080, 3, 'Callosilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1081, 3, 'Camino Callosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1082, 3, 'Campo Guardamar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1083, 3, 'Canastel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1084, 3, 'Caada Trigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1085, 3, 'Carrus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1086, 3, 'Lo Cartagena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1087, 3, 'Casas Ibaez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1088, 3, 'Casas Maestre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1089, 3, 'Casas Menor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1090, 3, 'Casicas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1091, 3, 'Castillo Don Juan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1092, 3, 'Cela Nuez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1093, 3, 'Cementerio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1094, 3, 'Ciudad Quesada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1095, 3, 'Els Poblets'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1096, 3, 'Colonia Santa Isabel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1097, 3, 'Los Collereros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1098, 3, 'Correntias Bajas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1099, 3, 'Correntias Medias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1100, 3, 'Coveta Fuma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1101, 3, 'Culebron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1102, 3, 'El Chaparral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1103, 3, 'Los Dolores Catral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1104, 3, 'Los Dolores Callosa Segura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1105, 3, 'Escorratel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1106, 3, 'Espejeras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1107, 3, 'La Estacion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1108, 3, 'Estacion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1109, 3, 'Estacion de Monovar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1110, 3, 'Fanadix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1111, 3, 'Font Calent'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1112, 3, 'Moraira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1113, 3, 'Hondon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1114, 3, 'Los Huertos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1115, 3, 'Hurchillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1116, 3, 'Ifach'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1117, 3, 'Inmediaciones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1118, 3, 'Isla Plana Nueva Tabarca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1119, 3, 'Jubalcoy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1120, 3, 'Lel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1121, 3, 'Heredades'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1122, 3, 'Llombay'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1123, 3, 'Maitino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1124, 3, 'Barrio Mariano Cases'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1125, 3, 'Marnes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1126, 3, 'Lo Martinez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1127, 3, 'Matola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1128, 3, 'Media Legua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1129, 3, 'Molino Ondara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1130, 3, 'Molino Ciudad'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1131, 3, 'Mudamiento'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1132, 3, 'Olla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1133, 3, 'Palacio Arpella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1134, 3, 'Palmeral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1135, 3, 'Cabo de Las Huertas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1136, 3, 'Paredon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1137, 3, 'Pasaje Mina Rodes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1138, 3, 'La Pedrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1139, 3, 'Penella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1140, 3, 'Perleta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1141, 3, 'Pinar Campo Verde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1142, 3, 'Pinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1143, 3, 'La Plana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1144, 3, 'Playa Muchavista'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1145, 3, 'Pozoblanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1146, 3, 'Pueblo Nuevo San Rafael'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1147, 3, 'Punta Prima'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1148, 3, 'Pusol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1149, 3, 'Raspeig'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1150, 3, 'Rincon Pablos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1151, 3, 'La Romana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1152, 3, 'El Salar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1153, 3, 'El Salse'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1154, 3, 'San Carlos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1155, 3, 'San Jose'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1156, 3, 'Santa Eulalia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1157, 3, 'Santa Faz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1158, 3, 'Torre Rico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1159, 3, 'Torregroses'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1160, 3, 'Tres Fuentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1161, 3, 'Turballos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1162, 3, 'Urbanova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1163, 3, 'Valverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1164, 3, 'Pla de la Vallonga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1165, 3, 'Vereda Cubos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1166, 3, 'Villa Martin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1167, 3, 'Villafranqueza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1168, 3, 'Altea Hills Y Zona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1169, 3, 'Las Virtudes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1170, 3, 'La Zafra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1171, 3, 'La Zenia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1172, 3, 'Rebolledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1173, 3, 'Cabo de Las Huertas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1174, 3, 'La Estacion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1175, 3, 'Marina Oasis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1176, 3, 'Baradello-Sargento'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1177, 3, 'Rocio del Mar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1178, 3, 'Gran Alacant'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1179, 3, 'Debeses'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1180, 3, 'Nucleo Orihuela-Costa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1181, 3, 'San Isidro de Albatera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1182, 3, 'Els Poblet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1183, 3, 'Grao de Gandia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1184, 3, 'Orcheta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1185, 3, 'La Mata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1186, 3, 'Caada del Fenollar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1187, 3, 'Bacarot'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1188, 3, 'Pedreras, Las ( Petrel)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1189, 3, 'Sant Joan,De,Playa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1190, 3, 'Aigues'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1191, 3, 'Playa Muchavista-Campello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1192, 3, 'Vall Gallinera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1193, 3, 'Montgo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1194, 3, 'Els Poblets'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1195, 3, 'Mil Palmeras Urb.'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1196, 4, 'Adra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1197, 4, 'Almeria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1198, 4, 'Benahadux'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1199, 4, 'Berja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1200, 4, 'Chirivel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1201, 4, 'Fiana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1202, 4, 'Gador'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1203, 4, 'Gergal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1204, 4, 'Partaloa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1205, 4, 'Pechina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1206, 4, 'Purchena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1207, 4, 'Rioja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1208, 4, 'Roquetas de Mar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1209, 4, 'Seron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1210, 4, 'Sorbas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1211, 4, 'Tabernas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1212, 4, 'Tijola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1213, 4, 'Albox'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1214, 4, 'Cantoria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1215, 4, 'Cuevas Almanzora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1216, 4, 'Garrucha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1217, 4, 'Huercal Overa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1218, 4, 'Macael'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1219, 4, 'Maria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1220, 4, 'Olula Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1221, 4, 'Oria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1222, 4, 'Velez Blanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1223, 4, 'Velez-Rubio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1224, 4, 'Vera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1225, 4, 'Zurgena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1226, 4, 'Dalias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1227, 4, 'El Ejido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1228, 4, 'Antas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1229, 4, 'Viator'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1230, 4, 'Huercal Almeria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1231, 4, 'Abla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1232, 4, 'Carboneras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1233, 4, 'Balerma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1234, 4, 'Pulpi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1235, 4, 'Alhama de Almeria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1236, 4, 'Alicun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1237, 4, 'Almocita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1238, 4, 'Beires'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1239, 4, 'Canjayar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1240, 4, 'Fondon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1241, 4, 'Huecija'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1242, 4, 'Illar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1243, 4, 'Instincion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1244, 4, 'Laujar Andarax'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1245, 4, 'Ohanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1246, 4, 'Padules'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1247, 4, 'Ragol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1248, 4, 'Lucar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1249, 4, 'Nijar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1250, 4, 'Los Gallardos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1251, 4, 'Somontin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1252, 4, 'Urracal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1253, 4, 'Bayarque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1254, 4, 'Lubrin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1255, 4, 'Alboloduy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1256, 4, 'Alhabia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1257, 4, 'Alsodux'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1258, 4, 'Bentarique'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1259, 4, 'Fines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1260, 4, 'Mojacar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1261, 4, 'Santa Cruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1262, 4, 'Santa Fe Mondujar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1263, 4, 'Terque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1264, 4, 'Turre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1265, 4, 'Aguadulce'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1266, 4, 'El Parador de Las Hortichuelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1267, 4, 'Fuente Victoria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1268, 4, 'Armua Almanzora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1269, 4, 'Arboleas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1270, 4, 'San Isidro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1271, 4, 'Balanegra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1272, 4, 'Campohermoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1273, 4, 'Las Marinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1274, 4, 'La Mojonera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1275, 4, 'Las Norias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1276, 4, 'Atochares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1277, 4, 'Puebloblanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1278, 4, 'Abrucena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1279, 4, 'Nacimiento'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1280, 4, 'Escullar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1281, 4, 'Doa Maria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1282, 4, 'Albanchez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1283, 4, 'Cobdar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1284, 4, 'Chercos Nuevo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1285, 4, 'Lijar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1286, 4, 'Tahal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1287, 4, 'Alcudia Monteagud'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1288, 4, 'Sufli'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1289, 4, 'Sierro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1290, 4, 'Bayarcal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1291, 4, 'Paterna Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1292, 4, 'Alcolea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1293, 4, 'Guainos Bajos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1294, 4, 'Huebro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1295, 4, 'El Alquian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1296, 4, 'Olula Castro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1297, 4, 'Senes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1298, 4, 'Velefique'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1299, 4, 'Castro Filabres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1300, 4, 'Enix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1301, 4, 'Felix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1302, 4, 'Vicar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1303, 4, 'Darrical'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1304, 4, 'Lucainena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1305, 4, 'Lucainena Torres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1306, 4, 'Uleila Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1307, 4, 'Alcontar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1308, 4, 'Bacares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1309, 4, 'Benitagla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1310, 4, 'Benizalon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1311, 4, 'Laroya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1312, 4, 'Taberno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1313, 4, 'Bedar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1314, 4, 'La Fuente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1315, 4, 'Almanzora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1316, 4, 'El Arroyo Aceituno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1317, 4, 'Turrillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1318, 4, 'La Hoya Cantoria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1319, 4, 'Guardias Viejas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1320, 4, 'Matagorda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1321, 4, 'Santa Maria Aguila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1322, 4, 'El Cabo Gata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1323, 4, 'La Caada San Urbano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1324, 4, 'Palomares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1325, 4, 'La Alqueria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1326, 4, 'La Barriada Alcora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1327, 4, 'Higueral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1328, 4, 'El Hijate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1329, 4, 'Santa Maria Nieva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1330, 4, 'Llano Olleres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1331, 4, 'Tauro Antas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1332, 4, 'Benitorafe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1333, 4, 'El Contador'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1334, 4, 'Los Molinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1335, 4, 'Guazamara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1336, 4, 'La Caada Caepla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1337, 4, 'Los Menas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1338, 4, 'El Saltador Huercal Overa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1339, 4, 'Topares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1340, 4, 'El Rio Chico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1341, 4, 'El Marchal Enix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1342, 4, 'Alfaix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1343, 4, 'Pozo Higuera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1344, 4, 'Benecid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1345, 4, 'La Cinta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1346, 4, 'La Mela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1347, 4, 'La Hoya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1348, 4, 'Burjulu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1349, 4, 'Las Herrerias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1350, 4, 'Los Lobos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1351, 4, 'Urcal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1352, 4, 'Villaricos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1353, 4, 'El Campillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1354, 4, 'La Serena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1355, 4, 'Gochar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1356, 4, 'El Barranquete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1357, 4, 'Los Andreses'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1358, 4, 'Los Llanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1359, 4, 'Santopetar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1360, 4, 'El Puente Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1361, 4, 'Saladar Leche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1362, 4, 'La Aljambra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1363, 4, 'Gafarillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1364, 4, 'Almajalejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1365, 4, 'Las Norias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1366, 4, 'Goar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1367, 4, 'Santa Barbara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1368, 4, 'Aulago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1369, 4, 'Las Cabreras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1370, 4, 'Los Tonosas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1371, 4, 'Los Gazquez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1372, 4, 'La Mata Bolaimi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1373, 4, 'El Puertecico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1374, 4, 'Los Alias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1375, 4, 'Llano Espino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1376, 4, 'El Llano Animas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1377, 4, 'Las Pocicas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1378, 4, 'Los Pardos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1379, 4, 'Los Cerricos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1380, 4, 'El Margen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1381, 4, 'El Palances'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1382, 4, 'El Cucador'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1383, 4, 'La Fuente Higuera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1384, 4, 'Las Casas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1385, 4, 'El Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1386, 4, 'Jauca Alta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1387, 4, 'Los Claveros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1388, 4, 'Fuencaliente Calera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1389, 4, 'Angostos Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1390, 4, 'El Congo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1391, 4, 'Chercos Viejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1392, 4, 'Las Alcubillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1393, 4, 'Los Donatos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1394, 4, 'Hirmes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1395, 4, 'Amarguilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1396, 4, 'Las Cuevas Medinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1397, 4, 'El Largo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1398, 4, 'El Pozo Frailes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1399, 4, 'El Viso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1400, 4, 'Albaricoques'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1401, 4, 'San Jose'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1402, 4, 'Fernan Perez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1403, 4, 'Las Negras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1404, 4, 'Rodalquilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1405, 4, 'Los Nietos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1406, 4, 'Los Escullos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1407, 4, 'La Muleria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1408, 4, 'El Chive'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1409, 4, 'El Pilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1410, 4, 'Grima'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1411, 4, 'El Puntal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1412, 4, 'Herradura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1413, 4, 'Gafares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1414, 4, 'Moras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1415, 4, 'El Fonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1416, 4, 'Los Alamillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1417, 4, 'Los Aznares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1418, 4, 'El Convoy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1419, 4, 'Pilar Jaravia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1420, 4, 'San Juan Terreros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1421, 4, 'Los Soleres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1422, 4, 'Puebla Vicar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1423, 4, 'San Roque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1424, 4, 'Fuente Amarga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1425, 4, 'La Curva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1426, 4, 'San Francisco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1427, 4, 'San Agustin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1428, 4, 'Venta Gutierrez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1429, 4, 'Hortichuelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1430, 4, 'El Toril'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1431, 4, 'La Alcazaba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1432, 4, 'Lance Virgen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1433, 4, 'El Canal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1434, 4, 'Venta Nueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1435, 4, 'Las Cuatro Higueras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1436, 4, 'Marraque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1437, 4, 'El Pocico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1438, 4, 'El Marchal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1439, 4, 'Los Matreros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1440, 4, 'Castala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1441, 4, 'La Pearrodada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1442, 4, 'Hornillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1443, 4, 'Los Castaos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1444, 4, 'La Huelga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1445, 4, 'La Herreria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1446, 4, 'Gacia Alto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1447, 4, 'Gacia Bajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1448, 4, 'Polopos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1449, 4, 'La Cueva Pajaro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1450, 4, 'El Saltador Bajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1451, 4, 'El Cumbrero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1452, 4, 'La Islica'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1453, 4, 'El Llano Don Antonio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1454, 4, 'El Argamason'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1455, 4, 'La Perulera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1456, 4, 'Los Morillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1457, 4, 'La Ermita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1458, 4, 'Loma Cabrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1459, 4, 'Las Salinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1460, 4, 'El Boticario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1461, 4, 'Venta Gaspar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1462, 4, 'San Vicente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1463, 4, 'La Canal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1464, 4, 'Cortijo Navarro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1465, 4, 'Pozo San Jose'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1466, 4, 'Cortijo Llano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1467, 4, 'Tarambana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1468, 4, 'La Venta Viso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1469, 4, 'El Cosario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1470, 4, 'La Rambla Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1471, 4, 'Saliente Alto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1472, 4, 'Campillo Gata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1473, 4, 'El Arroyo Aceituno Arboleas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1474, 4, 'Agua Amarga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1475, 4, 'Almocaizar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1476, 4, 'Los Collados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1477, 4, 'Loma Bosque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1478, 4, 'Los Martinez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1479, 4, 'Mizala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1480, 4, 'Los Perales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1481, 4, 'El Rio Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1482, 4, 'Agua Medio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1483, 4, 'Los Guiraos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1484, 4, 'La Rambla Aljibe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1485, 4, 'La Rambla Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1486, 4, 'Terreros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1487, 4, 'Los Dioses'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1488, 4, 'La Fuente Negro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1489, 4, 'Los Carasoles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1490, 4, 'Cela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1491, 4, 'Espeliz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1492, 4, 'Gacia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1493, 4, 'Los Gateros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1494, 4, 'Marcelinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1495, 4, 'El Marchal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1496, 4, 'Los Guiraos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1497, 4, 'Los Navarretes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1498, 4, 'Oro Verde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1499, 4, 'Pago Aguilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1500, 4, 'Pago Escuchagranos'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1501, 4, 'El Peon Bajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1502, 4, 'El Prado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1503, 4, 'La Rambla Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1504, 4, 'La Rambla Honda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1505, 4, 'El Reconco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1506, 4, 'Las Cunas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1507, 4, 'Abejuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1508, 4, 'Abriojal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1509, 4, 'El Aceituno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1510, 4, 'La Alameda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1511, 4, 'Alara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1512, 4, 'La Alcantarilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1513, 4, 'La Alqueria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1514, 4, 'Arroyo Albanchez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1515, 4, 'El Arroyo Medina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1516, 4, 'El Barranco Quiles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1517, 4, 'Campico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1518, 4, 'Canales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1519, 4, 'Canalejas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1520, 4, 'La Canalica'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1521, 4, 'Las Cantinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1522, 4, 'Caadas Lizaran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1523, 4, 'La Caada Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1524, 4, 'La Carrasca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1525, 4, 'La Casa Blanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1526, 4, 'El Cerrogordo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1527, 4, 'Collado Muro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1528, 4, 'El Cortijo Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1529, 4, 'El Charche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1530, 4, 'Los Choles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1531, 4, 'Daimuz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1532, 4, 'Domenes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1533, 4, 'Doa Juana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1534, 4, 'El Espadin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1535, 4, 'La Fuenblanquilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1536, 4, 'La Fuente Royo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1537, 4, 'German'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1538, 4, 'La Heredad'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1539, 4, 'Los Herreras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1540, 4, 'La Hojilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1541, 4, 'Jauro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1542, 4, 'La Losilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1543, 4, 'Los Llanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1544, 4, 'El Madroo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1545, 4, 'Los Manolones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1546, 4, 'Los Maas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1547, 4, 'Moraton'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1548, 4, 'Las Norias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1549, 4, 'Nudos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1550, 4, 'Los Nudos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1551, 4, 'La Parra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1552, 4, 'El Patio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1553, 4, 'Pechina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1554, 4, 'La Perla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1555, 4, 'La Perulaca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1556, 4, 'La Piedra Amarilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1557, 4, 'Pilancon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1558, 4, 'Los Pocos Bollos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1559, 4, 'Los Ramales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1560, 4, 'Rambla Morales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1561, 4, 'Rambla Marques'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1562, 4, 'La Rambla Higuera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1563, 4, 'Ramil Alto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1564, 4, 'El Rio Mula'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1565, 4, 'El Roquez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1566, 4, 'Solana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1567, 4, 'Los Torrentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1568, 4, 'El Vizcaino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1569, 4, 'La Yegua Baja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1570, 4, 'Los Yesos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1571, 4, 'El Barranco Lobos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1572, 4, 'El Sabinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1573, 4, 'El Cercado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1574, 4, 'El Piar Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1575, 4, 'Derde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1576, 4, 'Ruescas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1577, 4, 'Pujaire'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1578, 4, 'El Solanillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1579, 4, 'Ocaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1580, 4, 'Almerimar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1581, 4, 'Retamar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1582, 4, 'La Isleta Moro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1583, 4, 'La Brea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1584, 4, 'Alfahuara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1585, 4, 'La Concepcion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1586, 4, 'La Loma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1587, 4, 'Las Labores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1588, 4, 'El Campico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1589, 4, 'La Alfoquia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1590, 4, 'Las Alcubillas Altas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1591, 4, 'El Arroyo Medina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1592, 4, 'Fuente Mojon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1593, 4, 'La Ramblica'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1594, 4, 'Saliente Bajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1595, 4, 'Cojos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1596, 4, 'Limaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1597, 4, 'Gafares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1598, 4, 'El Molino Tarahal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1599, 4, 'Gor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1600, 4, 'Las Piedras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1601, 4, 'Molinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1602, 4, 'Costacabana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1603, 4, 'Almerimar-El Ejido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1604, 4, 'La Envia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1605, 4, 'Llanos Caadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1606, 4, 'Benecid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1607, 4, 'Ocaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1608, 5, 'Adanero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1609, 5, 'Aldeavieja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1610, 5, 'Arenas San Pedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1611, 5, 'Arevalo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1612, 5, 'Arevalo E F C'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1613, 5, 'Aveinte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1614, 5, 'Avila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1615, 5, 'El Barco de Avila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1616, 5, 'Berrocalejo Aragona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1617, 5, 'Bohoyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1618, 5, 'Cebreros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1619, 5, 'Pascualcobo Pascualcobo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1620, 5, 'Mediana Voltoya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1621, 5, 'Muana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1622, 5, 'Muogalindo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1623, 5, 'Munogrande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1624, 5, 'Narros Castillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1625, 5, 'Navalperal Pinares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1626, 5, 'Las Navas Marques'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1627, 5, 'Padiernos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1628, 5, 'Parador Gredos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1629, 5, 'Peguerinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1630, 5, 'Piedrahita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1631, 5, 'Salvadios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1632, 5, 'Sanchidrian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1633, 5, 'San Pedro del Arroyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1634, 5, 'Santa Maria Caballeros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1635, 5, 'El Tiemblo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1636, 5, 'Velayos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1637, 5, 'Vicolozano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1638, 5, 'Villafranca Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1639, 5, 'Villatoro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1640, 5, 'La Aliseda Tormes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1641, 5, 'Hoyos Collado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1642, 5, 'Hoyos Espino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1643, 5, 'Herguijuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1644, 5, 'Navacepeda Tormes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1645, 5, 'Zapardiel Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1646, 5, 'Los Llanos Tormes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1647, 5, 'Navalperal Tormes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1648, 5, 'Navarredonda Gredos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1649, 5, 'Medinilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1650, 5, 'El Hoyo Pinares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1651, 5, 'El Arenal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1652, 5, 'Mombeltran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1653, 5, 'San Esteban Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1654, 5, 'Santa Cruz Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1655, 5, 'San Bartolome Pinares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1656, 5, 'El Hornillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1657, 5, 'La Adrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1658, 5, 'Casavieja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1659, 5, 'Santa Maria Tietar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1660, 5, 'Gavilanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1661, 5, 'Lanzahita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1662, 5, 'Mijares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1663, 5, 'Pedro Bernardo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1664, 5, 'Piedralaves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1665, 5, 'Sotillo Adrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1666, 5, 'Candeleda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1667, 5, 'Poyales Hoyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1668, 5, 'Guisando'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1669, 5, 'Becedas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1670, 5, 'Junciana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1671, 5, 'El Losar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1672, 5, 'Cabezas Villar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1673, 5, 'Gilbuena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1674, 5, 'Barraco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1675, 5, 'Burgohondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1676, 5, 'Navaluenga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1677, 5, 'Navalmoral de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1678, 5, 'San Juan Nava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1679, 5, 'Fresnedilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1680, 5, 'San Miguel Corneja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1681, 5, 'Maello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1682, 5, 'Hoyocasero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1683, 5, 'Casas Puerto Villatoro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1684, 5, 'Navacepedilla Corneja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1685, 5, 'Higuera de Las Dueas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1686, 5, 'Cuevas Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1687, 5, 'Villanueva Campillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1688, 5, 'Casillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1689, 5, 'Navalacruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1690, 5, 'Santa Maria Berrocal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1691, 5, 'Flores de Avila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1692, 5, 'Muotello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1693, 5, 'La Caada El Herradon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1694, 5, 'Santa Cruz Pinares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1695, 5, 'Tornadizos Avila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1696, 5, 'El Herradon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1697, 5, 'Palacios de Goda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1698, 5, 'San Bartolome Bejar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1699, 5, 'La Serrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1700, 5, 'Bercial Zapardiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1701, 5, 'Bernuy-Zapardiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1702, 5, 'Cabezas del Pozo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1703, 5, 'Cantiveros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1704, 5, 'Crespos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1705, 5, 'Fontiveros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1706, 5, 'Madrigal Altas Torres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1707, 5, 'Nava de Arevalo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1708, 5, 'Las Berlanas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1709, 5, 'El Bohodon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1710, 5, 'Cardeosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1711, 5, 'Gotarrendura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1712, 5, 'Hernansancho'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1713, 5, 'Pealba de Avila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1714, 5, 'Tiosillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1715, 5, 'Villanueva Gomez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1716, 5, 'Navahondilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1717, 5, 'Cillan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1718, 5, 'Chamartin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1719, 5, 'Gallegos Sobrinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1720, 5, 'Martiherrero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1721, 5, 'Miruea Infanzones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1722, 5, 'Muico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1723, 5, 'San Juan Olmo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1724, 5, 'Solana Rioalmar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1725, 5, 'Blascosancho'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1726, 5, 'Mingorria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1727, 5, 'Pajares de Adaja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1728, 5, 'Pozanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1729, 5, 'Santo Domingo Posadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1730, 5, 'San Juan Molinillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1731, 5, 'Navarredondilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1732, 5, 'Herreros Suso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1733, 5, 'Blascomillan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1734, 5, 'Gimialcon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1735, 5, 'Muosancho'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1736, 5, 'Blacha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1737, 5, 'Casasola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1738, 5, 'Gallegos Altamiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1739, 5, 'Sanchorreja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1740, 5, 'Avellaneda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1741, 5, 'Aldea Rey Nio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1742, 5, 'La Aldehuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1743, 5, 'Colilla La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1744, 5, 'Hontanares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1745, 5, 'La Parra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1746, 5, 'Ramacastaas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1747, 5, 'Villarejo Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1748, 5, 'Amavida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1749, 5, 'Pradosegar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1750, 5, 'Santiago Collado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1751, 5, 'Fresno El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1752, 5, 'Horcajo Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1753, 5, 'Navasequilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1754, 5, 'Narrillos Alamo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1755, 5, 'Fuente Sauz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1756, 5, 'Rivilla Barajas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1757, 5, 'Collado de Contreras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1758, 5, 'La Alamedilla Berrocal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1759, 5, 'Albornos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1760, 5, 'Monsalupe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1761, 5, 'Papatrigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1762, 5, 'Riocabado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1763, 5, 'San Juan Encinilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1764, 5, 'Navaquesera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1765, 5, 'Horcajuelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1766, 5, 'Mamblas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1767, 5, 'Vadillo Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1768, 5, 'Rasueros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1769, 5, 'San Lorenzo Tormes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1770, 5, 'La Carrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1771, 5, 'Santa Lucia Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1772, 5, 'Balbarda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1773, 5, 'Malpartida Corneja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1774, 5, 'Solana Avila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1775, 5, 'Navalonguilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1776, 5, 'Navatejares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1777, 5, 'Umbrias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1778, 5, 'Nava Barco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1779, 5, 'San Miguel Serrezuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1780, 5, 'Diego Alvaro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1781, 5, 'Narros Salduea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1782, 5, 'Espinosa Caballeros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1783, 5, 'Orbita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1784, 5, 'La Lastra Cano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1785, 5, 'La Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1786, 5, 'Gutierre Muoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1787, 5, 'Puerto Castilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1788, 5, 'Tormellas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1789, 5, 'Navadijos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1790, 5, 'Cepeda Mora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1791, 5, 'Langa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1792, 5, 'Aldeanueva Santa Cruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1793, 5, 'Castellanos Zapardiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1794, 5, 'Santo Tome Zabarcos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1795, 5, 'San Martin Pimpollar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1796, 5, 'Gemuo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1797, 5, 'Villaflor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1798, 5, 'La Horcajada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1799, 5, 'Sotalvo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1800, 5, 'Navatalgordo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1801, 5, 'Pedro Rodriguez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1802, 5, 'San Vicente Arevalo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1803, 5, 'Barroman'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1804, 5, 'Brabos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1805, 5, 'Riofrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1806, 5, 'San Esteban Zapardiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1807, 5, 'San Martin Vega Alberche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1808, 5, 'Sigeres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1809, 5, 'Solosancho'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1810, 5, 'Aldeaseca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1811, 5, 'Cabezas Alambre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1812, 5, 'Donjimeno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1813, 5, 'Fuentes Ao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1814, 5, 'Moraleja Matacabras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1815, 5, 'Cisla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1816, 5, 'Villanueva Aceral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1817, 5, 'Sinlabajos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1818, 5, 'Garganta Villar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1819, 5, 'Navalosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1820, 5, 'Arevalillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1821, 5, 'El Miron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1822, 5, 'Encinares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1823, 5, 'Gilgarcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1824, 5, 'Blascoeles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1825, 5, 'Tremedal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1826, 5, 'Mengamuoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1827, 5, 'Niharra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1828, 5, 'Zapardiel Canada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1829, 5, 'Horcajo Torres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1830, 5, 'Salobral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1831, 5, 'La Hija Dios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1832, 5, 'Ojos Albos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1833, 5, 'Villar Corneja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1834, 5, 'Martinez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1835, 5, 'Santa Maria Arroyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1836, 5, 'Grandes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1837, 5, 'Mironcillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1838, 5, 'Navarrevisca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1839, 5, 'Serranillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1840, 5, 'Hoyos Miguel Muoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1841, 5, 'Bernuy Salinero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1842, 5, 'Urraca Miguel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1843, 5, 'Marlin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1844, 5, 'Bularros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1845, 5, 'Donvidas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1846, 5, 'Villanueva Avila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1847, 5, 'Neila San Miguel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1848, 5, 'Mancera Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1849, 5, 'San Garcia Ingelmos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1850, 5, 'Bonilla Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1851, 5, 'Mesegar Corneja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1852, 5, 'Tortoles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1853, 5, 'Vega Santa Maria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1854, 5, 'San Esteban de Los Patos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1855, 5, 'Tolbaos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1856, 5, 'Constanzana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1857, 5, 'Baterna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1858, 5, 'Robledillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1859, 5, 'Villaviciosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1860, 5, 'Riatas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1861, 5, 'Valdecasa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1862, 5, 'Manjabalago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1863, 5, 'Oco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1864, 5, 'El Raso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1865, 5, 'Sanchicorto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1866, 5, 'Canales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1867, 5, 'El Oso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1868, 5, 'San Pascual'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1869, 5, 'Narros del Puerto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1870, 5, 'Becedillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1871, 5, 'Cabizuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1872, 5, 'Hoyorredondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1873, 5, 'Vita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1874, 5, 'Benitos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1875, 5, 'Narrillos Rebollar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1876, 5, 'La Zarza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1877, 5, 'La Angostura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1878, 5, 'El Barrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1879, 5, 'Collado Miron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1880, 5, 'Los Guijuelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1881, 5, 'Hermosillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1882, 5, 'Narrillos San Leonardo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1883, 5, 'Navaescurial'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1884, 5, 'Navamediana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1885, 5, 'Navamojada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1886, 5, 'Carpio Medianero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1887, 5, 'El Parral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1888, 5, 'Viegra Moraa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1889, 5, 'Casas Sebastian Perez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1890, 5, 'Mercadillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1891, 5, 'Los Narros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1892, 5, 'Pasarilla Rebollar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1893, 5, 'Vallehondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1894, 5, 'Magazos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1895, 5, 'Noharre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1896, 5, 'Palacios Rubios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1897, 5, 'Vinaderos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1898, 5, 'Muez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1899, 5, 'Aldealabad Miron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1900, 5, 'Cabaas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1901, 5, 'Castilblanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1902, 5, 'Muoyerro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1903, 5, 'Canaleja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1904, 5, 'Casas Abad'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1905, 5, 'Casas Maripedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1906, 5, 'Hustias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1907, 5, 'Retuerta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1908, 5, 'Venta Veguillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1909, 5, 'Cereceda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1910, 5, 'Lancharejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1911, 5, 'Navalguijo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1912, 5, 'Navalmoro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1913, 5, 'Pascual Muoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1914, 5, 'Duruelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1915, 5, 'Morauela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1916, 5, 'San Bartolome Corneja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1917, 5, 'Cabezas Bonilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1918, 5, 'Chaherrero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1919, 5, 'Muomer Peco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1920, 5, 'Pajarejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1921, 5, 'El Barquillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1922, 5, 'Navamorisca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1923, 5, 'San Bartolome Tormes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1924, 5, 'Mazalinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1925, 5, 'El Soto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1926, 5, 'Salobralejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1927, 5, 'Muochas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1928, 5, 'Muopepe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1929, 5, 'Navandrinal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1930, 5, 'Villarejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1931, 5, 'Palacios Corneja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1932, 5, 'Cabezas Altas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1933, 5, 'El Ajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1934, 5, 'Casa Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1935, 5, 'Barajas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1936, 5, 'La Rinconada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1937, 5, 'Rinconada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1938, 5, 'Palacios Becedas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1939, 5, 'Poveda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1940, 5, 'San Cristobal Trabancos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1941, 5, 'La Lastra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1942, 5, 'Navalmahillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1943, 5, 'Los Cuartos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1944, 5, 'Brieva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1945, 5, 'Venta Rasquilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1946, 5, 'Barrio Arriba Puerto Castilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1947, 5, 'Navamures'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1948, 5, 'Santiago de Aravalle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1949, 5, 'Guarea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1950, 5, 'Navalsauz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1951, 5, 'Navahermosa Corneja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1952, 5, 'Valdemolinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1953, 5, 'La Higuera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1954, 5, 'Aldealabad'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1955, 5, 'Carrascalejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1956, 5, 'Hoyo Guija'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1957, 5, 'Serrania'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1958, 5, 'Los Loros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1959, 5, 'Los Molinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1960, 5, 'Ortigosa Rioalmar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1961, 5, 'Hurtumpascual'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1962, 5, 'Gamonal Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1963, 5, 'Viegrade Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1964, 5, 'Blascojimeno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1965, 5, 'El Hoyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1966, 5, 'Casas Navancuerda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1967, 5, 'Santiuste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1968, 5, 'Nogal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1969, 5, 'Valdelaguna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1970, 5, 'Navamuana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1971, 5, 'Altamiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1972, 5, 'Pascualgrande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1973, 5, 'Cardedal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1974, 5, 'Casillas Chicapierna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1975, 5, 'Cortos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1976, 5, 'Escalonilla Tolbaos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1977, 5, 'Gallegos San Vicente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1978, 5, 'Jaraices'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1979, 5, 'La Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1980, 5, 'Las Navas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1981, 5, 'Ortigosa Tormes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1982, 5, 'Saornil Voltoya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1983, 5, 'Villamayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1984, 5, 'Zorita Molinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1985, 5, 'Barrio Arriba Pradosegar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1986, 5, 'La Caada Piedrahita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1987, 5, 'El Collado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1988, 5, 'La Estacion Sanchidrian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1989, 5, 'Las Marias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1990, 5, 'Palacio Castronuevo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1991, 5, 'Pascualcobo Riocabado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1992, 5, 'Pesquera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1993, 5, 'San Juan Bautista'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1994, 5, 'San Martin Cabezas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1995, 5, 'Urbanizacion Loma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1996, 5, 'Urbanizacion Valpinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1997, 5, 'Ventosa Cuesta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1998, 5, 'Zarzal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (1999, 5, 'Riofraguas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2000, 5, 'Navarregadilla'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2001, 5, 'Bandadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2002, 5, 'Palacio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2003, 5, 'El Alamo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2004, 5, 'Tornadizos Arevalo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2005, 5, 'Escalonilla Riofrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2006, 5, 'Collado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2007, 5, 'Ciudad Ducal Las Navas Marques'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2008, 5, 'La Estacion Las Navas Marques'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2009, 5, 'Las Lastras Sotillo Adrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2010, 5, 'Calas Guisando Cebreros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2011, 5, 'Casas Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2012, 5, 'La Carrera Hoyorredondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2013, 5, 'Las Casas Camino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2014, 5, 'La Almohalla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2015, 5, 'Garganta Hornos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2016, 5, 'Villaverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2017, 5, 'Blasconuo Matacabras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2018, 5, 'Cabezas Bajas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2019, 5, 'Morisco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2020, 5, 'Zona Pantano San Juan Cebreros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2021, 5, 'Navahonda Navahondilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2022, 5, 'Navapark Navahondilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2023, 5, 'Puente Nuevo El Tiemblo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2024, 5, 'El Castillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2025, 5, 'El Rehoyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2026, 5, 'Convento Duruelo El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2027, 5, 'Las Damas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2028, 5, 'Bellas Vistas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2029, 5, 'La Cabaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2030, 5, 'Navalpino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2031, 5, 'La Via'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2032, 5, 'Charco Cabras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2033, 5, 'El Queixal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2034, 5, 'Santa Leonor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2035, 5, 'La Dehesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2036, 5, 'Mirador Valdetejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2037, 5, 'Los Rosales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2038, 5, 'Fuente Salud'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2039, 5, 'La Atalaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2040, 5, 'Cerro Guisando'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2041, 5, 'Puente Burguillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2042, 5, 'Pinar Puenteviejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2043, 5, 'La Alameda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2044, 5, 'Zapata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2045, 5, 'Bercimuelle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2046, 5, 'Arroyo Parra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2047, 5, 'Puente de la Gaznata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2048, 5, 'La Colilla (Poligono)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2049, 5, 'Las Cruceras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2050, 5, 'La Lagunilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2051, 5, 'Rivillas de la Caada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2052, 6, 'Aceuchal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2053, 6, 'Alange'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2054, 6, 'Alburquerque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2055, 6, 'Alconchel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2056, 6, 'Almendralejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2057, 6, 'Arroyo San Servan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2058, 6, 'Azuaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2059, 6, 'Badajoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2060, 6, 'Barcarrota'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2061, 6, 'Bienvenida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2062, 6, 'Bodonal Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2063, 6, 'Burguillos Cerro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2064, 6, 'Cabeza Buey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2065, 6, 'Calamonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2066, 6, 'Calzadilla Barros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2067, 6, 'Campanario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2068, 6, 'Castuera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2069, 6, 'Corte Peleas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2070, 6, 'Don Benito'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2071, 6, 'Esparragosa Lares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2072, 6, 'Fregenal Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2073, 6, 'Fuenlabrada Montes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2074, 6, 'Fuente Cantos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2075, 6, 'Fuente Maestre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2076, 6, 'Fuentes Leon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2077, 6, 'Granja Torrehermosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2078, 6, 'Guarea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2079, 6, 'Herrera Duque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2080, 6, 'Higuera Vargas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2081, 6, 'Higuera la Real'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2082, 6, 'Jerez Caballeros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2083, 6, 'Lobon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2084, 6, 'Llerena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2085, 6, 'Malcocinado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2086, 6, 'Malpartida Serena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2087, 6, 'Medellin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2088, 6, 'Medina Torres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2089, 6, 'Merida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2090, 6, 'Monesterio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2091, 6, 'Montijo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2092, 6, 'Oliva Frontera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2093, 6, 'Olivenza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2094, 6, 'Puebla Alcocer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2095, 6, 'Puebla de la Calzada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2096, 6, 'Puebla Sancho Perez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2097, 6, 'Quintana Serena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2098, 6, 'El Raposo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2099, 6, 'Ribera Fresno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2100, 6, 'Salvaleon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2101, 6, 'San Vicente Alcantara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2102, 6, 'Santa Amalia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2103, 6, 'Sta.Marta de Barros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2104, 6, 'Los Santos Maimona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2105, 6, 'Segura Leon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2106, 6, 'Talarrubias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2107, 6, 'Talavera la Real'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2108, 6, 'Usagre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2109, 6, 'Valdetorres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2110, 6, 'Valencia Ventoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2111, 6, 'Valverde Merida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2112, 6, 'Valle Matamoros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2113, 6, 'Valle Santa Ana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2114, 6, 'Villafranca de Los Barros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2115, 6, 'Villagarcia Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2116, 6, 'Villagonzalo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2117, 6, 'Villalba Barros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2118, 6, 'Villanueva Serena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2119, 6, 'Villanueva Fresno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2120, 6, 'Villar Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2121, 6, 'Zafra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2122, 6, 'Zalamea Serena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2123, 6, 'Zarza Alange'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2124, 6, 'Roca de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2125, 6, 'Benquerencia Serena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2126, 6, 'Solana Barros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2127, 6, 'Esparragalejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2128, 6, 'La Garrovilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2129, 6, 'Acedera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2130, 6, 'Casas Don Pedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2131, 6, 'Navalvillar Pela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2132, 6, 'Orellana Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2133, 6, 'Orellana Vieja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2134, 6, 'Pealsordo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2135, 6, 'Zarza Capilla Viejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2136, 6, 'Zarza Capilla Nuevo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2137, 6, 'Ahillones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2138, 6, 'Berlanga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2139, 6, 'Valverde Llerena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2140, 6, 'La Estacion Guarea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2141, 6, 'La Haba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2142, 6, 'Cabeza la Vaca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2143, 6, 'Calera Leon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2144, 6, 'Salvatierra Barros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2145, 6, 'Castilblanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2146, 6, 'Torremegia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2147, 6, 'Almorchon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2148, 6, 'Monterrubio Serena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2149, 6, 'Helechal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2150, 6, 'Aljucen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2151, 6, 'Montemolin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2152, 6, 'Pallares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2153, 6, 'Atalaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2154, 6, 'Puebla Maestre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2155, 6, 'Hornachos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2156, 6, 'Mengabril'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2157, 6, 'Maguilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2158, 6, 'Zahinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2159, 6, 'Mirandilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2160, 6, 'La Coronada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2161, 6, 'Magacela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2162, 6, 'Cristina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2163, 6, 'Don Alvaro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2164, 6, 'Cheles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2165, 6, 'Feria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2166, 6, 'La Morera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2167, 6, 'La Parra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2168, 6, 'Valencia Mombuey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2169, 6, 'Barbao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2170, 6, 'Guadiana Caudillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2171, 6, 'Valdelacalzada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2172, 6, 'Hinojosa Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2173, 6, 'Peraleda Zaucejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2174, 6, 'Oliva Merida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2175, 6, 'La Albuera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2176, 6, 'Almendral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2177, 6, 'Nogales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2178, 6, 'Torre Miguel Sesmero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2179, 6, 'Alconera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2180, 6, 'Campillo Llerena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2181, 6, 'Higuera Llerena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2182, 6, 'Llera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2183, 6, 'Valencia Torres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2184, 6, 'Valdecaballeros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2185, 6, 'Esparragosa Serena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2186, 6, 'Retamal Llerena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2187, 6, 'Valle Serena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2188, 6, 'Higuera Serena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2189, 6, 'Villar Rena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2190, 6, 'Trujillanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2191, 6, 'San Pedro Merida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2192, 6, 'Rena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2193, 6, 'Garbayuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2194, 6, 'El Carrascalejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2195, 6, 'La Nava Santiago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2196, 6, 'Baterno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2197, 6, 'Garlitos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2198, 6, 'Risco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2199, 6, 'Sancti Spiritus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2200, 6, 'Siruela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2201, 6, 'Tamurejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2202, 6, 'Balboa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2203, 6, 'Guadajira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2204, 6, 'Villafranco Guadiana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2205, 6, 'Pueblonuevo del Guadiana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2206, 6, 'Novelda Guadiana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2207, 6, 'Sagrajas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2208, 6, 'Valdebotoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2209, 6, 'Alcazaba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2210, 6, 'Gevora Caudillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2211, 6, 'Helechosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2212, 6, 'Entrerrios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2213, 6, 'Valdivia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2214, 6, 'Valverde Burguillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2215, 6, 'Puebla Obando'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2216, 6, 'Taliga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2217, 6, 'Carmonita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2218, 6, 'Cordobilla Lacara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2219, 6, 'Torremayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2220, 6, 'Capilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2221, 6, 'Casas Reina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2222, 6, 'Fuente Arco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2223, 6, 'Reina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2224, 6, 'Trasierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2225, 6, 'La Lapa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2226, 6, 'San Francisco Olivenza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2227, 6, 'Valuengo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2228, 6, 'Brovales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2229, 6, 'La Bazana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2230, 6, 'San Rafael Olivenza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2231, 6, 'Gargaligas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2232, 6, 'Los Guadalperales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2233, 6, 'Zurbaran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2234, 6, 'Palomas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2235, 6, 'Puebla Reina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2236, 6, 'La Codosera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2237, 6, 'Valverde de Leganes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2238, 6, 'Manchita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2239, 6, 'Puebla Prior'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2240, 6, 'El Torviscal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2241, 6, 'Santa Maria Nava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2242, 6, 'Entrin Bajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2243, 6, 'Villarta Montes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2244, 6, 'Vegas Altas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2245, 6, 'Ruecas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2246, 6, 'Obando'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2247, 6, 'Bohonal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2248, 6, 'Palazuelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2249, 6, 'Peloche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2250, 6, 'La Nava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2251, 6, 'San Benito Contienda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2252, 6, 'San Jorge Alor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2253, 6, 'Villarreal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2254, 6, 'Vivares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2255, 6, 'Hernan Cortes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2256, 6, 'La Guarda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2257, 6, 'Docenario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2258, 6, 'Cortegana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2259, 6, 'Retamal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2260, 6, 'Castillo Encomienda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2261, 6, 'Torrefresneda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2262, 6, 'Los Molinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2263, 6, 'Yelbes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2264, 6, 'Puebla Alcollarin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2265, 6, 'La Cardenchosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2266, 6, 'Conquista Guadiana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2267, 6, 'Alvarado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2268, 6, 'Lacara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2269, 6, 'Aldea de Retamal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2270, 6, 'Puerto Hurraco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2271, 6, 'Entrin Alto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2272, 6, 'Valdehornillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2273, 6, 'Santo Domingo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2274, 6, 'El Marco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2275, 6, 'La Rabaza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2276, 6, 'La Tojera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2277, 6, 'Puerto Pea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2278, 6, 'Encomienda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2279, 6, 'La Corchuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2280, 6, 'Galizuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2281, 6, 'Perales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2282, 6, 'Campomanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2283, 6, 'Albala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2284, 6, 'Pantano Zujar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2285, 6, 'Convento Rocita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2286, 6, 'Estacion Aljucen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2287, 6, 'Medellin E F C'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2288, 6, 'Alcobaza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2289, 6, 'La Cortezona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2290, 6, 'Los Fresnos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2291, 6, 'La Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2292, 6, 'Santa Engracia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2293, 6, 'Las Carboneras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2294, 6, 'Coto Murillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2295, 6, 'Matanegra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2296, 6, 'Acinipo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2297, 6, 'Bacoco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2298, 6, 'Botoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2299, 6, 'Buen Suceso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2300, 6, 'Casas Don Juan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2301, 6, 'Palacio Quemado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2302, 6, 'La Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2303, 6, 'Cabrahiga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2304, 6, 'Cornicabra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2305, 6, 'Cubillana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2306, 6, 'Dehesa Piedrabuena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2307, 6, 'Don Tello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2308, 6, 'Encomienda Moro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2309, 6, 'Escobar El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2310, 6, 'Estacion El Carrascalejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2311, 6, 'Machal El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2312, 6, 'Nuestra Seora Estrella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2313, 6, 'Nuestra Seora Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2314, 6, 'San Isidro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2315, 6, 'Tiendas Las'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2316, 6, 'El Torviscal Villar Rena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2317, 6, 'San Marcos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2318, 6, 'Caserio la Portuguesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2319, 6, 'Cortijo Tamboril'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2320, 6, 'Los Arcos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2321, 6, 'Cortijo Becerra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2322, 6, 'Corral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2323, 6, 'Barranco Egido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2324, 6, 'Dehesa Navahermosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2325, 6, 'Nava Arenosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2326, 6, 'El Palazuelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2327, 6, 'Cortijo Quica'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2328, 6, 'Casa Cucaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2329, 6, 'Yelves (Medellin)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2330, 6, 'La Codofera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2331, 7, 'Eivissa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2332, 7, 'Alaior'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2333, 7, 'Alcudia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2334, 7, 'Algaida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2335, 7, 'Andratx'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2336, 7, 'Arta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2337, 7, 'Binissalem'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2338, 7, 'Buger'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2339, 7, 'Bunyola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2340, 7, 'Cabaneta La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2341, 7, 'Caimari'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2342, 7, 'Campanet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2343, 7, 'Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2344, 7, 'Capdepera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2345, 7, 'Ciutadella Menorca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2346, 7, 'Consell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2347, 7, 'Sesgleieta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2348, 7, 'Felanitx'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2349, 7, 'Ferreries'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2350, 7, 'Eivissa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2351, 7, 'Inca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2352, 7, 'Lluc'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2353, 7, 'Llucmajor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2354, 7, 'Mahon-Mao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2355, 7, 'Manacor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2356, 7, 'Es Mercadal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2357, 7, 'Montuiri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2358, 7, 'Muro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2359, 7, 'Palma de Mallorca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2360, 7, 'Petra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2361, 7, 'Son Veri Nou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2362, 7, 'Pollensa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2363, 7, 'Pont Dinca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2364, 7, 'Porreres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2365, 7, 'Porto Cristo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2366, 7, 'Portol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2367, 7, 'Pobla Sa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2368, 7, 'Port Dalcudia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2369, 7, 'Port Pollenca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2370, 7, 'Port Soller'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2371, 7, 'Randa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2372, 7, 'Sant Antoni Portmany'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2373, 7, 'Sant Clemente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2374, 7, 'Sant Joan Labritja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2375, 7, 'Sant Joan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2376, 7, 'Sant Llorenc Cardassar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2377, 7, 'Sant Llorenc Balafia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2378, 7, 'Sant Lluis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2379, 7, 'Sant Rafel Sa Creu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2380, 7, 'Sencelles(Sancelles)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2381, 7, 'Santa Eulalia del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2382, 7, 'Santa Margalida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2383, 7, 'Santa Maria Cami'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2384, 7, 'Puerto de Pollensa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2385, 7, 'Santanyi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2386, 7, 'Selva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2387, 7, 'Sineu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2388, 7, 'Soller'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2389, 7, 'Pla Son Nebot'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2390, 7, 'Son Servera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2391, 7, 'Valldemosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2392, 7, 'Es Castell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2393, 7, 'Vilafranca Bonany'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2394, 7, 'Cala Ratjada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2395, 7, 'Lloseta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2396, 7, 'Llubi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2397, 7, 'Calvia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2398, 7, 'Esporles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2399, 7, 'Lloret Vistalegre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2400, 7, 'Portocolom'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2401, 7, 'Cas Concos Des Cavaller'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2402, 7, 'Shorta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2403, 7, 'Galilea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2404, 7, 'Puigpunyent'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2405, 7, 'Alqueria Blanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2406, 7, 'Costitx'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2407, 7, 'Maria Salut'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2408, 7, 'Deia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2409, 7, 'Biniaraix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2410, 7, 'Fornalutx'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2411, 7, 'Salines Ses'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2412, 7, 'Paguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2413, 7, 'Port Dandratx'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2414, 7, 'Coll Den Rebassa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2415, 7, 'Establiments'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2416, 7, 'Es Secar Real'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2417, 7, 'Son Sardina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2418, 7, 'Saranjassa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2419, 7, 'Sarenal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2420, 7, 'Fornells'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2421, 7, 'S''illot'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2422, 7, 'Sindioteria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2423, 7, 'Sant Jordi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2424, 7, 'Sa Casa Blanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2425, 7, 'Mancor Vall'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2426, 7, 'Ariany'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2427, 7, 'Biniali'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2428, 7, 'Capdella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2429, 7, 'Baalbufar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2430, 7, 'Santa Eugenia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2431, 7, 'Son Carrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2432, 7, 'Estellencs'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2433, 7, 'Sarraco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2434, 7, 'Pina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2435, 7, 'Es Migjorn Gran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2436, 7, 'Can Picafort'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2437, 7, 'Es Pillari'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2438, 7, 'Sant Josep Sa Talaia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2439, 7, 'Calobra Sa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2440, 7, 'Es Llombards'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2441, 7, 'Cala Dor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2442, 7, 'Calonge'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2443, 7, 'Palmanova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2444, 7, 'Portals Nous'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2445, 7, 'Moscari'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2446, 7, 'Colonia Sant Jordi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2447, 7, 'Son Macia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2448, 7, 'Sant Elm (San Telmo)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2449, 7, 'Sant Francesc Formentera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2450, 7, 'Biniamar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2451, 7, 'Sant Jordi Ses Salines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2452, 7, 'Cala Murada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2453, 7, 'Sant Carles Peralta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2454, 7, 'Santa Gertrudis Fruitera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2455, 7, 'Sant Agusti Vedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2456, 7, 'Sestanyol Migjorn'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2457, 7, 'Colonia Sant Pere'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2458, 7, 'Ciudadela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2459, 7, 'Son Ferriol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2460, 7, 'Cala Estancia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2461, 7, 'S''arenal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2462, 7, 'Cas Catala Illetas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2463, 7, 'Genova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2464, 7, 'Sa Vileta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2465, 7, 'Alaro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2466, 7, 'Sa Creu Vermella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2467, 7, 'Sant Josep'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2468, 7, 'El Mal Pas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2469, 7, 'Camp Mar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2470, 7, 'Biniagual'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2471, 7, 'Orient'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2472, 7, 'Palmanyola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2473, 7, 'Portopetro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2474, 7, 'Ses Covetes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2475, 7, 'Sa Rapita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2476, 7, 'Costa Calma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2477, 7, 'Torrenova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2478, 7, 'Santa Ponsa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2479, 7, 'Formentor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2480, 7, 'Costa Den Blanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2481, 7, 'Jornets'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2482, 7, 'Ruberts'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2483, 7, 'Cala Figuera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2484, 7, 'Cala Santanyi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2485, 7, 'Son Fuster'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2486, 7, 'Cala Bona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2487, 7, 'Cala Millor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2488, 7, 'Sant Mateu Daubarca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2489, 7, 'Santa Agnes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2490, 7, 'Santa Galdana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2491, 7, 'Alcalfar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2492, 7, 'Binibequer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2493, 7, 'Binissafuller'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2494, 7, 'Sant Tomas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2495, 7, 'El Pilar de la Mola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2496, 7, 'Sant Miquel Balansat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2497, 7, 'Sant Vicent Sa Cala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2498, 7, 'Cubells Es'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2499, 7, 'Llucmacanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2500, 7, 'Pla Na Tesa'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2501, 7, 'Carritxo El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2502, 7, 'Son Mesquida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2503, 7, 'Son Negre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2504, 7, 'Son Serra Marina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2505, 7, 'Cala San Vicenc'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2506, 7, 'Cala En Porter'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2507, 7, 'Pujols Es - Formentera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2508, 7, 'Galatzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2509, 7, 'Cales Mallorca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2510, 7, 'Escorca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2511, 7, 'Nuestra Se\Ora Jesus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2512, 7, 'Sillot'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2513, 7, 'Sullastrar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2514, 7, 'Sant Ferran Ses Roques'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2515, 7, 'Santandria Isla Menorca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2516, 7, 'Torret'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2517, 7, 'Trebeluger'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2518, 7, 'Son Proenc'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2519, 7, 'Cala Salmonia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2520, 7, 'Almudaina Isla Menorca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2521, 7, 'Las Alquerias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2522, 7, 'El Arenal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2523, 7, 'Arenal Den Castell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2524, 7, 'Sa Argamasa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2525, 7, 'Bahia Azul'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2526, 7, 'Bahia Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2527, 7, 'Baix Puig'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2528, 7, 'Barracas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2529, 7, 'Barranch Isla Menorca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2530, 7, 'Barrio Sa Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2531, 7, 'Bellavista'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2532, 7, 'Bens Vall'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2533, 7, 'Betlem'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2534, 7, 'Biniancolla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2535, 7, 'Binibecavell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2536, 7, 'Binidali Isla Menorca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2537, 7, 'Binifadet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2538, 7, 'Biniparrell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2539, 7, 'Bon Aire'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2540, 7, 'Bus Castell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2541, 7, 'Can Negreta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2542, 7, 'Cabrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2543, 7, 'Las Cadenas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2544, 7, 'Cala Bassa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2545, 7, 'Cala En Blanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2546, 7, 'Cala Blava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2547, 7, 'Cala Conta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2548, 7, 'Cala Coral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2549, 7, 'Cala Ferrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2550, 7, 'Cala Grasio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2551, 7, 'Cala Llamp'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2552, 7, 'Porrasa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2553, 7, 'Cala Llenya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2554, 7, 'Cala Llombarts'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2555, 7, 'Cala Llonga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2556, 7, 'Cala Llonga -Mahon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2557, 7, 'Cala Mesquida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2558, 7, 'Cala Mondrago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2559, 7, 'Cala Morell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2560, 7, 'Cala Moreia Cala Morlanda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2561, 7, 'Cala Muli'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2562, 7, 'Cala Pi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2563, 7, 'Cales Piques'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2564, 7, 'Cala Sant Esteve'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2565, 7, 'Cala San Vicente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2566, 7, 'Sometimes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2567, 7, 'Cala Tarida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2568, 7, 'Cala Tirant'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2569, 7, 'Cala Vadella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2570, 7, 'Cala Vinyas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2571, 7, 'Cala Bosc'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2572, 7, 'La Caleta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2573, 7, 'El Calo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2574, 7, 'Calo Real'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2575, 7, 'Can Capelli'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2576, 7, 'Can Furnet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2577, 7, 'Can Guillano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2578, 7, 'Can Pep Simo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2579, 7, 'Can Ramon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2580, 7, 'Can Singala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2581, 7, 'Can Tirana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2582, 7, 'Es Canar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2583, 7, 'Can Pastilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2584, 7, 'Es Canutells'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2585, 7, 'Canyamel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2586, 7, 'El Cap Berberia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2587, 7, 'Cap Negre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2588, 7, 'Capellans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2589, 7, 'Sa Carroca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2590, 7, 'Cas Canar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2591, 7, 'Pont D''inca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2592, 7, 'Cas Catala Nou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2593, 7, 'Cas Germa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2594, 7, 'Cas Perets'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2595, 7, 'Castellitx'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2596, 7, 'Castillo Bendinat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2597, 7, 'Sant Francesc de S''estany'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2598, 7, 'Sa Coma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2599, 7, 'Consey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2600, 7, 'La Costa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2601, 7, 'Costa Pinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2602, 7, 'Ses Coves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2603, 7, 'Els Delfins'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2604, 7, 'El Dorado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2605, 7, 'Dragonera Isla Mallorca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2606, 7, 'Es Figueral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2607, 7, 'Font Sa Cala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2608, 7, 'Bendinat Village'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2609, 7, 'Es Garrovers'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2610, 7, 'George Sand'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2611, 7, 'El Grao Isla Menorca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2612, 7, 'Hortella Nou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2613, 7, 'Isla Aire'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2614, 7, 'La Joya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2615, 7, 'Llucalary'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2616, 7, 'Lluch Alcari'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2617, 7, 'Les Meravelles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2618, 7, 'Marratxinet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2619, 7, 'La Mola Isla Menorca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2620, 7, 'Sa Mola -Felanitx-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2621, 7, 'Es Muli'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2622, 7, 'Es Murta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2623, 7, 'Na Macaret'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2624, 7, 'Es Nogueral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2625, 7, 'Nova Valldemosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2626, 7, 'Las Ollerias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2627, 7, 'Ses Pahises'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2628, 7, 'El Palmer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2629, 7, 'Las Palmeras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2630, 7, 'Playa Codola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2631, 7, 'Playa Den Bossa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2632, 7, 'Playa Den Bossa San Jose'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2633, 7, 'Sestany Den Mas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2634, 7, 'Playa Tropicana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2635, 7, 'La Porrasa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2636, 7, 'El Port Valldemosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2637, 7, 'Port Des Canonge'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2638, 7, 'Port Des Torrent'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2639, 7, 'Port Nou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2640, 7, 'Port Verd'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2641, 7, 'Portinatx'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2642, 7, 'Cala Anguila Cala Mendia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2643, 7, 'Pou Nou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2644, 7, 'Puerto Addaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2645, 7, 'Puerto San Miguel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2646, 7, 'Puig D''en Valls'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2647, 7, 'Puig Des Bassons'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2648, 7, 'Puig Delfin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2649, 7, 'Puig Roig'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2650, 7, 'Puigmajor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2651, 7, 'Punchuat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2652, 7, 'Punta Galera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2653, 7, 'Punta Prima'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2654, 7, 'Es Rafals'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2655, 7, 'Sa Roca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2656, 7, 'Roca Llisa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2657, 7, 'Ses Rotgetes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2658, 7, 'La Sabina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2659, 7, 'Salgar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2660, 7, 'Las Salinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2661, 7, 'Cabo Blanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2662, 7, 'Ses Salinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2663, 7, 'Sant Agusti'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2664, 7, 'Cala Sant Antoni'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2665, 7, 'San Francisco Paula'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2666, 7, 'San Jaime Mediterraneo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2667, 7, 'San Juan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2668, 7, 'La Serpentona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2669, 7, 'Sa Serra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2670, 7, 'Serra Morena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2671, 7, 'Sestanyol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2672, 7, 'Shostalot'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2673, 7, 'La Siesta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2674, 7, 'Sol Mallorca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2675, 7, 'Son Arrosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2676, 7, 'Son Bou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2677, 7, 'Son Caldero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2678, 7, 'Bendinat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2679, 7, 'Son Espanyol Son Sardina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2680, 7, 'Son Fe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2681, 7, 'Son Ferrandell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2682, 7, 'Son Ferrer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2683, 7, 'Son Font'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2684, 7, 'Sos Fuyes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2685, 7, 'Son Gual'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2686, 7, 'Son Morell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2687, 7, 'Son Moro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2688, 7, 'Son Net'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2689, 7, 'Son Parc'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2690, 7, 'Son Ramonell Nou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2691, 7, 'Son San Juan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2692, 7, 'Son Valls'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2693, 7, 'Son Vida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2694, 7, 'Son Vitamina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2695, 7, 'Sa Sorda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2696, 7, 'Toraixa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2697, 7, 'El Toro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2698, 7, 'Torre Ram'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2699, 7, 'Torre Saura Isla Menorca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2700, 7, 'Torre Soli Nou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2701, 7, 'Torre Trencade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2702, 7, 'Trepuco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2703, 7, 'Tres Alquerias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2704, 7, 'Tudons'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2705, 7, 'Ullaro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2706, 7, 'La Vall'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2707, 7, 'Vall Den March'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2708, 7, 'Venda Es Bernats'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2709, 7, 'Es Verger'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2710, 7, 'El Vila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2711, 7, 'Sa Mesquida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2712, 7, 'Estacion Naval'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2713, 7, 'Urbanizacion Horizonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2714, 7, 'Urbanizacion Cala Blanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2715, 7, 'Lhorta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2716, 7, 'Barcares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2717, 7, 'Binixiquer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2718, 7, 'California'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2719, 7, 'San Jordi Ses Salines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2720, 7, 'Cala Carbo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2721, 7, 'Cala Nova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2722, 7, 'Domingos Grans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2723, 7, 'La Canal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2724, 7, 'Los Almendros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2725, 7, 'Isla Blanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2726, 7, 'Magaluf'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2727, 7, 'Playas Fornells'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2728, 7, 'Playa Muro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2729, 7, 'Polig. Ind. de Marratxi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2730, 7, 'Pol Indu Can Valero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2731, 7, 'Pol.Ind.Son Castello(Mallorca)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2732, 7, 'Portals Vells'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2733, 7, 'Na Xamena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2734, 7, 'Shangri La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2735, 7, 'Son Serralta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2736, 7, 'Tamarinda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2737, 7, 'Urbanizacion Sa Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2738, 7, 'Coves Noves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2739, 7, 'Cales Coves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2740, 7, 'L''albufera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2741, 7, 'Urbanizacion Son Maixella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2742, 7, 'Pobla La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2743, 7, 'Son Ametllar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2744, 7, 'S''illot'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2745, 7, 'Urb. Caleta de Santandria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2746, 7, 'Villacarlos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2747, 7, 'El Molinar-Palma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2748, 7, 'Talamanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2749, 7, 'San Francesc Xavier'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2750, 7, 'Cala Bou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2751, 7, 'Sant Antoni de Portmany'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2752, 7, 'Son Caliu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2753, 7, 'Peguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2754, 7, 'Por Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2755, 7, 'Cala Llarga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2756, 7, 'Santa Ines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2757, 7, 'San Antonio Abat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2758, 7, 'Porto Pi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2759, 7, 'Pont D''inca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2760, 7, 'Carretera Arta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2761, 7, 'Marratxi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2762, 7, 'Serra Nova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2763, 7, 'Arenal-Llucmajor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2764, 7, 'Figueretas(Eivissa)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2765, 7, 'San Salvador de Bubal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2766, 7, 'Palma de Mallorca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2767, 7, 'Son Serra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2768, 7, 'Las Maravillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2769, 7, 'Cala N''bosch'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2770, 7, 'Playa de Palma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2771, 7, 'Son Cartellot'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2772, 7, 'Illetas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2773, 7, 'San Fernando'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2774, 7, 'Son Cervera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2775, 7, 'Son Jaumell(Capdepera)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2776, 7, 'Urb.Bahia Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2777, 7, 'Urb.Bahia Azul(Llucmajor)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2778, 7, 'Ntra Sra del Pilar(Pilar de la Mola)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2779, 7, 'Sant Francesc Xavier'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2780, 7, 'Esporles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2781, 7, 'Playa Muchavista-Campello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2782, 7, 'Port D''inca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2783, 7, 'Puerto Alcudia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2784, 8, 'Sant Pere de Ribes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2785, 8, 'Aguilar Segarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2786, 8, 'Alella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2787, 8, 'La Munia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2788, 8, 'Alpens'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2789, 8, 'Lametlla Valles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2790, 8, 'Arenys de Mar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2791, 8, 'Arenys Munt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2792, 8, 'Argentona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2793, 8, 'Artes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2794, 8, 'Avinyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2795, 8, 'Avinyonet Penedes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2796, 8, 'Aiguafreda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2797, 8, 'Badalona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2798, 8, 'El Badorc'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2799, 8, 'Balenya Estacio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2800, 8, 'Balsareny'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2801, 8, 'Barcelona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2802, 8, 'La Batlloria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2803, 8, 'Castellbell I Vilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2804, 8, 'Begues'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2805, 8, 'Berga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2806, 8, 'Bigues I Riells'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2807, 8, 'Borreda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2808, 8, 'El Bruc'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2809, 8, 'Les Cabanyes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2810, 8, 'Cabrera Mar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2811, 8, 'Cabrils'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2812, 8, 'Calaf'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2813, 8, 'Caldes de Montbui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2814, 8, 'Caldes Destrac'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2815, 8, 'Calella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2816, 8, 'Callus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2817, 8, 'Campins'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2818, 8, 'Canet Mar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2819, 8, 'Canoves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2820, 8, 'Cantonigros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2821, 8, 'Canyamars'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2822, 8, 'Canyelles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2823, 8, 'Capellades'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2824, 8, 'Cardedeu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2825, 8, 'Cardona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2826, 8, 'Carme'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2827, 8, 'Castellar Valles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2828, 8, 'Castellbisbal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2829, 8, 'Castelldefels'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2830, 8, 'Castellfollit Riubregos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2831, 8, 'Castelloli'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2832, 8, 'Castellterol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2833, 8, 'Castellvi Rosanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2834, 8, 'Centelles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2835, 8, 'Cervello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2836, 8, 'Collbato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2837, 8, 'Copons'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2838, 8, 'Corbera Llobregat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2839, 8, 'Cornella de Llobregat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2840, 8, 'Cubelles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2841, 8, 'Dosrius'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2842, 8, 'Esparreguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2843, 8, 'Esplugues de Llobregat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2844, 8, 'Montmany Figaro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2845, 8, 'La Floresta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2846, 8, 'Folgueroles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2847, 8, 'Fonollosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2848, 8, 'Les Fonts -Terrassa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2849, 8, 'Les Franqueses del Valles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2850, 8, 'La Garriga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2851, 8, 'Gava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2852, 8, 'Gelida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2853, 8, 'Gironella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2854, 8, 'La Granada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2855, 8, 'Granollers'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2856, 8, 'Gualba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2857, 8, 'Guardiola Font Rubi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2858, 8, 'Santa Maria Dhorta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2859, 8, 'L''hospitalet de Llobregat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2860, 8, 'Els Hostalets Balenya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2861, 8, 'Els Hostalets Pierola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2862, 8, 'Igualada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2863, 8, 'Jorba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2864, 8, 'Lavit'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2865, 8, 'La Llacuna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2866, 8, 'La Llavinera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2867, 8, 'Llerona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2868, 8, 'Llinars Valles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2869, 8, 'Llica Damunt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2870, 8, 'Llia de Vall'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2871, 8, 'Malgrat Mar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2872, 8, 'Manlleu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2873, 8, 'Manresa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2874, 8, 'Marganell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2875, 8, 'Martorell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2876, 8, 'Martorelles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2877, 8, 'El Masnou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2878, 8, 'Masquefa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2879, 8, 'Matadepera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2880, 8, 'Mataro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2881, 8, 'Mediona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2882, 8, 'Molins Rei'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2883, 8, 'Mollet Valles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2884, 8, 'Montcada I Reixac'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2885, 8, 'Montgat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2886, 8, 'Monistrol de Montserrat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2887, 8, 'Els Monjos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2888, 8, 'Montesquiu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2889, 8, 'Montmelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2890, 8, 'Montornes Valles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2891, 8, 'Montseny'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2892, 8, 'Montserrat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2893, 8, 'Moia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2894, 8, 'Navarcles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2895, 8, 'Navas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2896, 8, 'Odena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2897, 8, 'Olesa de Bonesvalls'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2898, 8, 'Olesa de Montserrat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2899, 8, 'Olivella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2900, 8, 'Olost'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2901, 8, 'Ordal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2902, 8, 'Orista'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2903, 8, 'Orrius'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2904, 8, 'Palafolls'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2905, 8, 'Palau de Plegamans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2906, 8, 'La Palma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2907, 8, 'Palleja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2908, 8, 'El Papiol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2909, 8, 'Parets Valles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2910, 8, 'Perafita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2911, 8, 'Piera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2912, 8, 'Pineda Mar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2913, 8, 'El Pla Penedes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2914, 8, 'La Pobla Claramunt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2915, 8, 'La Pobla Lillet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2916, 8, 'Polinya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2917, 8, 'El Pont Vilomara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2918, 8, 'El Prat Llobregat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2919, 8, 'Prats Llucanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2920, 8, 'Els Prats Rei'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2921, 8, 'Premia Dalt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2922, 8, 'Premia Mar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2923, 8, 'Puigdalber'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2924, 8, 'Puig Reig'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2925, 8, 'Rajadell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2926, 8, 'Riells Fai'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2927, 8, 'Cerdanyola Valles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2928, 8, 'Calldetenes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2929, 8, 'La Roca Valles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2930, 8, 'Roda de Ter'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2931, 8, 'Rubi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2932, 8, 'Sabadell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2933, 8, 'Sallavinera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2934, 8, 'Sallent'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2935, 8, 'Santpedor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2936, 8, 'Sant Iscle Vallalta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2937, 8, 'Sant Adria Besos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2938, 8, 'Sant Agusti Llucanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2939, 8, 'Sant Andreu Barca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2940, 8, 'Sant Andreu Llavaneres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2941, 8, 'Sant Antoni Vilamajor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2942, 8, 'Sant Boi Llobregat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2943, 8, 'Sant Boi Llucanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2944, 8, 'Sant Celoni'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2945, 8, 'Sant Climent Llobregat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2946, 8, 'Sant Cugat del Valles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2947, 8, 'Sant Esteve Palautordera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2948, 8, 'Sant Esteve Sesrovires'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2949, 8, 'Sant Fost Campsentelles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2950, 8, 'Sant Feliu Codines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2951, 8, 'Sant Feliu de Llobregat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2952, 8, 'Sant Feliu Sasserra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2953, 8, 'Sant Fruitos Bages'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2954, 8, 'Vilassar Dalt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2955, 8, 'Sant Joan Despi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2956, 8, 'Vilassar Mar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2957, 8, 'Sant Llorenc Savall'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2958, 8, 'Sant Marti Centelles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2959, 8, 'Sant Marti Sarroca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2960, 8, 'Sant Marti Sesgueioles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2961, 8, 'Sant Marti Tous'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2962, 8, 'Sant Mateu Bages'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2963, 8, 'Sant Pau Dordal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2964, 8, 'Sant Pere Ribes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2965, 8, 'Sant Pere Riudebitlles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2966, 8, 'Sant Pere Torello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2967, 8, 'Sant Pere Vilamajor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2968, 8, 'Sant Pol Mar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2969, 8, 'Sant Quinti Mediona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2970, 8, 'Sant Quirze Safaja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2971, 8, 'Sant Quirze Besora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2972, 8, 'Sant Sadurni Danoia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2973, 8, 'Sant Salvador Guardiola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2974, 8, 'Sant Vicenc Castellet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2975, 8, 'Sant Vicenc Horts'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2976, 8, 'Sant Vicenc Montalt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2977, 8, 'Sant Vicenc Torello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2978, 8, 'Santa Coloma Cervello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2979, 8, 'Santa Coloma Gramenet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2980, 8, 'Santa Creu Joglars'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2981, 8, 'Santa Eulalia Puig Oriol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2982, 8, 'Santa Eulalia Riuprimer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2983, 8, 'Santa Eulalia Roncana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2984, 8, 'Santa Fe del Montseny'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2985, 8, 'Santa Agnes Malanyanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2986, 8, 'Santa Margarida de Montbui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2987, 8, 'Barbera del Valles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2988, 8, 'Santa Maria Besora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2989, 8, 'Santa Maria Corco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2990, 8, 'Lestany'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2991, 8, 'Santa Maria Dolo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2992, 8, 'Santa Maria Palautordera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2993, 8, 'Santa Perpetua Mogoda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2994, 8, 'Santa Susanna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2995, 8, 'Sentfores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2996, 8, 'Sentmenat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2997, 8, 'El Serradet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2998, 8, 'Seva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (2999, 8, 'Sitges'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3000, 8, 'Sora'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3001, 8, 'Suria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3002, 8, 'Tavernoles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3003, 8, 'Taradell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3004, 8, 'Terrassa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3005, 8, 'Teia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3006, 8, 'Tiana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3007, 8, 'Tona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3008, 8, 'Tordera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3009, 8, 'Torello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3010, 8, 'Torrelles Foix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3011, 8, 'Torrelles Llobregat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3012, 8, 'La Torre Dorista'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3013, 8, 'Ullastrell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3014, 8, 'Vacarisses'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3015, 8, 'Vallbona Danoia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3016, 8, 'Valldoreix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3017, 8, 'Vallgorguina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3018, 8, 'Vallirana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3019, 8, 'Vallromanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3020, 8, 'Vic'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3021, 8, 'Vilada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3022, 8, 'Viladecavalls'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3023, 8, 'Viladecans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3024, 8, 'Santa Eugenia Berga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3025, 8, 'Vilanova Valles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3026, 8, 'Sant Julia Vilatorta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3027, 8, 'Vilobi Penedes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3028, 8, 'Vilafranca Penedes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3029, 8, 'Vilalba Sasserra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3030, 8, 'Vilanova I Geltru'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3031, 8, 'Sant Hipolit Voltrega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3032, 8, 'Sant Quirze Valles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3033, 8, 'Bellprat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3034, 8, 'Guardiola Bergueda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3035, 8, 'Casserres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3036, 8, 'Cercs'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3037, 8, 'Pontons'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3038, 8, 'Bellaterra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3039, 8, 'Montmaneu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3040, 8, 'Sant Marti Sescorts'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3041, 8, 'Castellar Nhug'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3042, 8, 'Monistrol de Calders'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3043, 8, 'Calders'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3044, 8, 'Baga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3045, 8, 'Sant Just Desvern'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3046, 8, 'La Nou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3047, 8, 'Vilanova Sau'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3048, 8, 'Avia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3049, 8, 'Mura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3050, 8, 'Fals'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3051, 8, 'Santa Cecilia Voltrega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3052, 8, 'Sant Cebria Vallalta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3053, 8, 'Argencola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3054, 8, 'Calonge Segarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3055, 8, 'Canovellas (Canovelles)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3056, 8, 'Castellgali'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3057, 8, 'Castellnou Bages'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3058, 8, 'Gallifa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3059, 8, 'Sant Bartomeu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3060, 8, 'La Llagosta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3061, 8, 'Orpi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3062, 8, 'Rubio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3063, 8, 'Sant Llorenc Dhortons'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3064, 8, 'Santa Maria Miralles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3065, 8, 'Tagamanent'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3066, 8, 'Rellinars'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3067, 8, 'Lespunyola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3068, 8, 'Les Masies Roda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3069, 8, 'Muntanyola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3070, 8, 'Montclar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3071, 8, 'Montmajor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3072, 8, 'Saldes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3073, 8, 'Sant Sadurni Dosormort'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3074, 8, 'Serrateix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3075, 8, 'Tavertet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3076, 8, 'Vallcebre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3077, 8, 'Figols'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3078, 8, 'Fogars de la Selva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3079, 8, 'Gisclareny'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3080, 8, 'Lluca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3081, 8, 'Sant Marti Dalbars'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3082, 8, 'Sobremunt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3083, 8, 'Talamanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3084, 8, 'Capolat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3085, 8, 'Castellar Riu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3086, 8, 'La Quar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3087, 8, 'Sagas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3088, 8, 'Santa Maria Merles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3089, 8, 'La Blava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3090, 8, 'Castellcir'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3091, 8, 'Castell Lareny'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3092, 8, 'Granera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3093, 8, 'Pujalt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3094, 8, 'Sant Jaume Frontanya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3095, 8, 'Veciana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3096, 8, 'Vilanova del Cami'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3097, 8, 'La Torre Claramunt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3098, 8, 'Pacs Penedes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3099, 8, 'Sant Cugat Sesgarrigues'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3100, 8, 'Santa Fe Penedes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3101, 8, 'Sant Joan Vilatorrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3102, 8, 'El Brull'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3103, 8, 'Collsuspina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3104, 8, 'La Costa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3105, 8, 'Fogars Montclus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3106, 8, 'Mosqueroles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3107, 8, 'Gaia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3108, 8, 'Olvan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3109, 8, 'La Mambla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3110, 8, 'Saderra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3111, 8, 'Pruit'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3112, 8, 'Rupit'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3113, 8, 'Gurb'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3114, 8, 'Malla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3115, 8, 'Sant Bartomeu Grau'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3116, 8, 'Vilanova Despoia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3117, 8, 'Rofes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3118, 8, 'Sant Miquel Dolerdola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3119, 8, 'Coromines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3120, 8, 'Garraf'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3121, 8, 'Montnegre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3122, 8, 'Sant Pere Molanta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3123, 8, 'Viver'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3124, 8, 'Sant Cristofol Castellbell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3125, 8, 'Larbocar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3126, 8, 'Cantallops'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3127, 8, 'Corro Damunt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3128, 8, 'La Guardia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3129, 8, 'Barri Vilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3130, 8, 'Canaletes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3131, 8, 'Sant Genis Palafolls'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3132, 8, 'Castellfollit Boix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3133, 8, 'La Gleva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3134, 8, 'Torrellebreta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3135, 8, 'Vinyoles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3136, 8, 'Malanyeu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3137, 8, 'Maians'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3138, 8, 'Les Cases Ca Lavi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3139, 8, 'Can Cartro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3140, 8, 'El Caso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3141, 8, 'El Cint'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3142, 8, 'Cornet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3143, 8, 'Esgraiola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3144, 8, 'Lavern'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3145, 8, 'Munter'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3146, 8, 'El Pago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3147, 8, 'Puigmolto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3148, 8, 'La Rectoria Sant Pau'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3149, 8, 'Rocafort'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3150, 8, 'Rossinyol Coforb'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3151, 8, 'Samalus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3152, 8, 'Sant Corneli'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3153, 8, 'Sant Pau Pinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3154, 8, 'Sant Sebastia Montmajor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3155, 8, 'Sorba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3156, 8, 'Les Torres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3157, 8, 'Vilalleons'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3158, 8, 'Vilanoveta Roquetes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3159, 8, 'Bergus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3160, 8, 'Marata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3161, 8, 'Can Catassus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3162, 8, 'Monistrol D''anoia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3163, 8, 'La Prua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3164, 8, 'Els Casots'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3165, 8, 'Can Rossell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3166, 8, 'Castelltallat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3167, 8, 'Salo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3168, 8, 'Lempalme'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3169, 8, 'Laliberc'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3170, 8, 'Malla Casa Rectoral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3171, 8, 'La Cantina Llinars'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3172, 8, 'Les Casesnoves Can Pardo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3173, 8, 'Castellet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3174, 8, 'Clariana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3175, 8, 'Gornal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3176, 8, 'Les Masuques'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3177, 8, 'Torrelletas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3178, 8, 'La Colonia Rosal Berga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3179, 8, 'Cabrianes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3180, 8, 'Gargalla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3181, 8, 'Bonavista'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3182, 8, 'Les Parellades'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3183, 8, 'Santa Maria de Martorelles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3184, 8, 'Moja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3185, 8, 'El Carrer Rosell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3186, 8, 'Can Vidal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3187, 8, 'El Pala Torroella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3188, 8, 'Les Valls Torroella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3189, 8, 'Lalou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3190, 8, 'Comelles Guixaro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3191, 8, 'Oris'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3192, 8, 'Coaner'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3193, 8, 'Ripollet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3194, 8, 'La Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3195, 8, 'Can Font I Marc'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3196, 8, 'Can Marcet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3197, 8, 'Can Mata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3198, 8, 'Antius'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3199, 8, 'El Raval Torrelletes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3200, 8, 'Lespa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3201, 8, 'Can Canals'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3202, 8, 'Can Paixano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3203, 8, 'Cabrera Digualada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3204, 8, 'El Carrer Beulaigua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3205, 8, 'Les Casesnoves Riera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3206, 8, 'Les Casesroges'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3207, 8, 'Colonia Jorba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3208, 8, 'La Colonia Lacambra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3209, 8, 'Els Comtals'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3210, 8, 'Conill'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3211, 8, 'Les Conilleres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3212, 8, 'La Farga Bebie'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3213, 8, 'Les Fonts Sant Quirze Valles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3214, 8, 'La Fortesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3215, 8, 'Llinars Castellar Riu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3216, 8, 'Macaners'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3217, 8, 'Sant Jaume Sesoliveres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3218, 8, 'Sant Joan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3219, 8, 'Sant Jordi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3220, 8, 'Sant Marcal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3221, 8, 'Sant Pere Sacarrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3222, 8, 'Sant Roma Sau'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3223, 8, 'Sant Sebastia Gorgs'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3224, 8, 'Santuari Munts'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3225, 8, 'Les Tarumbes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3226, 8, 'Vallvidrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3227, 8, 'Pla Can Parellada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3228, 8, 'Les Casetes Den Raspall'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3229, 8, 'Serrat Santa Margarida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3230, 8, 'Els Masets Cosins'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3231, 8, 'La Bleda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3232, 8, 'Pedritxes Pla Bonaire'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3233, 8, 'Santa Creu Dolorda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3234, 8, 'Bruger'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3235, 8, 'La Rierada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3236, 8, 'Sant Bartomeu Quadra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3237, 8, 'La Torreta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3238, 8, 'Les Gunyoles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3239, 8, 'La Rapita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3240, 8, 'Can Batista'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3241, 8, 'Can Rovira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3242, 8, 'Font Dabril'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3243, 8, 'Lladoners'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3244, 8, 'Vallpineda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3245, 8, 'Poligon Industrial Santiga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3246, 8, 'Viladomiu Nova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3247, 8, 'Viladomiu Vella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3248, 8, 'Can Bou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3249, 8, 'Colonia Soldevila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3250, 8, 'Nosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3251, 8, 'La Rebeia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3252, 8, 'Vilafruns'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3253, 8, 'La Galera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3254, 8, 'Lametlla Merola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3255, 8, 'La Botjosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3256, 8, 'Colonia Bosc Montalegre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3257, 8, 'La Florida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3258, 8, 'Sant Pere Vim'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3259, 8, 'Sant Marti Torroella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3260, 8, 'Poligon Industrial Can Pelegri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3261, 8, 'Sant Pau'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3262, 8, 'Granollers Plana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3263, 8, 'La Panadella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3264, 8, 'Fogars Tordera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3265, 8, 'Sant Medir Ciutat Nois'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3266, 8, 'Sant Genis de Palafolls'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3267, 8, 'Gava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3268, 8, 'Salelles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3269, 8, 'Santa Maria Vilalba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3270, 8, 'La Beguda Alta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3271, 8, 'Ciutat Badia Cerdanyola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3272, 8, 'Badia del Valles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3273, 8, 'Casetes Gornal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3274, 8, 'Les Planes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3275, 8, 'Grauges'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3276, 8, 'Ca Naguilera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3277, 8, 'Can Manent'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3278, 8, 'Pineda Bages'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3279, 8, 'Els Hostalets'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3280, 8, 'Montjuic'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3281, 8, 'Font Rubi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3282, 8, 'Les Botigues Sitges'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3283, 8, 'Castellar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3284, 8, 'Sant Pau Guardia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3285, 8, 'Camps'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3286, 8, 'Castelladral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3287, 8, 'Sant Salvador Torroella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3288, 8, 'Viladellops'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3289, 8, 'Lestacio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3290, 8, 'Monistrolet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3291, 8, 'Sant Joan Samora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3292, 8, 'Joncadella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3293, 8, 'Espiells'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3294, 8, 'Can Bas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3295, 8, 'Segur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3296, 8, 'Can Gras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3297, 8, 'Coll Sacreu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3298, 8, 'Bruguera La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3299, 8, 'Baricentre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3300, 8, 'Ferreria La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3301, 8, 'Raval Les Coromines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3302, 8, 'Torrebonica'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3303, 8, 'Viladordis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3304, 8, 'Obiols'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3305, 8, 'Travil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3306, 8, 'Ametlla de Casserres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3307, 8, 'Fonogedell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3308, 8, 'Espinalbet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3309, 8, 'Rodonella La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3310, 8, 'Mare Deu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3311, 8, 'Casetes Les'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3312, 8, 'Pont Cabrianes El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3313, 8, 'Malniu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3314, 8, 'Can Serra I Pedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3315, 8, 'Comas Las'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3316, 8, 'Gall I Viladoms'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3317, 8, 'Grevalosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3318, 8, 'Sants Metges'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3319, 8, 'Torrents'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3320, 8, 'La Colonia Rosal Olvan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3321, 8, 'Molina La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3322, 8, 'Sant Miquel Terradelles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3323, 8, 'Sant Julia Vallcebre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3324, 8, 'Gallecs'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3325, 8, 'Font Bou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3326, 8, 'Alany'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3327, 8, 'Durfort'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3328, 8, 'Mirambelll'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3329, 8, 'Soler El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3330, 8, 'Valldeperes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3331, 8, 'Astor L'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3332, 8, 'Boixadors'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3333, 8, 'Valls Torroella Les'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3334, 8, 'Casa Vila Rosa La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3335, 8, 'Alfou I Sant Jaume'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3336, 8, 'Pungolas Las'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3337, 8, 'Sant Julia Dalfou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3338, 8, 'Canyes I Sant Elies Les'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3339, 8, 'Sant Miquel Sesperxes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3340, 8, 'Santa Susanna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3341, 8, 'Can Ram'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3342, 8, 'Albarells'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3343, 8, 'Carbasi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3344, 8, 'Clariana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3345, 8, 'Plans D En Ferran Els'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3346, 8, 'Porquerises'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3347, 8, 'Rocamora Contrats'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3348, 8, 'Sant Genis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3349, 8, 'Can Sabater'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3350, 8, 'Can Soler'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3351, 8, 'Espelt L'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3352, 8, 'Fon Mas Arnau La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3353, 8, 'Samunta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3354, 8, 'Sant Marti Macana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3355, 8, 'Pla Rubio El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3356, 8, 'Montfalco El Gros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3357, 8, 'Santa Maria Cami'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3358, 8, 'Can Bondia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3359, 8, 'Quintanes Les'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3360, 8, 'Colonia Ymbern'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3361, 8, 'Santa Llucia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3362, 8, 'Sorreigs'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3363, 8, 'Sant Bartomeu Sesgorgues'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3364, 8, 'Salles Serra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3365, 8, 'Can Bros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3366, 8, 'Can Bou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3367, 8, 'Can Cairat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3368, 8, 'Can Creixell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3369, 8, 'Pierola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3370, 8, 'Beguda Alta La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3371, 8, 'Beguda Alta La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3372, 8, 'Beguda Baixa La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3373, 8, 'Urbanizacion Guardia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3374, 8, 'Viladecaballs de Calders'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3375, 8, 'Vall Marfa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3376, 8, 'Sant Cugat Raco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3377, 8, 'Sant Marti I Fucimanya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3378, 8, 'Sant Ponc'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3379, 8, 'Serraima'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3380, 8, 'Frau La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3381, 8, 'Pla Grasetes El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3382, 8, 'Sant Vicenc Vilarassau'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3383, 8, 'Sant Feliuet Terrassola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3384, 8, 'Sant Joan Dolo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3385, 8, 'Sant Joan Montdarn'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3386, 8, 'Fuirosos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3387, 8, 'Olzinelles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3388, 8, 'Castanya La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3389, 8, 'Sant Jaume Viladroer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3390, 8, 'Parador Nacional Vic'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3391, 8, 'Raval Dolost El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3392, 8, 'Raval Sant Feliu Saserra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3393, 8, 'Raval Santa Eugenia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3394, 8, 'Sant Andreu Bancells'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3395, 8, 'Sant Pere Castanyadell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3396, 8, 'Can Margarit'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3397, 8, 'Casetes Can Tetes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3398, 8, 'Maset Noia El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3399, 8, 'Alzinar L'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3400, 8, 'Casesnoves Les'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3401, 8, 'Fanga La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3402, 8, 'Quadra Dagulladols La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3403, 8, 'Can Ponts I Subal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3404, 8, 'Can Soler Roset'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3405, 8, 'Campdasens'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3406, 8, 'Sapera Mas Riera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3407, 8, 'Rovira Roja La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3408, 8, 'Costa La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3409, 8, 'Cal Claramunt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3410, 8, 'Muscarola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3411, 8, 'Rovira La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3412, 8, 'Cantallops'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3413, 8, 'Cal Respall Dels Horts'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3414, 8, 'Riera La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3415, 8, 'Sant Marti Sadevesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3416, 8, 'Berna La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3417, 8, 'Can Coral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3418, 8, 'Llombardes Les'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3419, 8, 'Mas Bertran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3420, 8, 'Santa Maria Foix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3421, 8, 'Torres Les'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3422, 8, 'Vallcarca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3423, 8, 'Can Parellada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3424, 8, 'Rocallisa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3425, 8, 'Sant Marcal Masies'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3426, 8, 'Gallecs'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3427, 8, 'Pedrasanta Can Canyameres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3428, 8, 'Sant Andreu Vola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3429, 8, 'Valiellas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3430, 8, 'La Verneda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3431, 8, 'Parc Princeps'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3432, 8, 'Can Bosch'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3433, 8, 'Canada Park'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3434, 8, 'El Lledoner'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3435, 8, 'Can Ros Abagots'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3436, 8, 'Castellar Vell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3437, 8, 'Can Olivella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3438, 8, 'La Vallensana Badalona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3439, 8, 'La Vallensana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3440, 8, 'Casa Gallart'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3441, 8, 'Olerdola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3442, 8, 'Can Massuet-El Far'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3443, 8, 'Sant Julia Cerdanyola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3444, 8, 'Badia del Valles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3445, 8, 'Urbanizacion Casablanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3446, 8, 'Urb. Muntanya Rodona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3447, 8, 'Les Planes de Vallvidrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3448, 8, 'Masias de Roda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3449, 8, 'Urbanitzacio Tordera Parc'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3450, 8, 'Palma de Cervello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3451, 8, 'Urbanizacion Terrabrava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3452, 8, 'Urbanizacion El Mas Mora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3453, 8, 'Els Prats de Rei'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3454, 8, 'Rocamar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3455, 8, 'Vallpineda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3456, 8, 'Urbanizacion Can Sola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3457, 8, 'Urbanitzaci Castelnou-Can Mir'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3458, 8, 'Sant Feliu del Raco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3459, 8, 'Can Sant Joan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3460, 8, 'Can Cuias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3461, 8, 'Mas Rampinyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3462, 8, 'Fontpineda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3463, 8, 'Pol.Ind.La Ferreria (Montcada I Reixac)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3464, 8, 'Raval Bellavista'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3465, 8, 'Molsosa Plans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3466, 8, 'Les Roquetes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3467, 8, 'Corro Davall'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3468, 8, 'Corbera Dalt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3469, 8, 'Les Roquetes del Garraf'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3470, 8, 'Llussa de Munt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3471, 8, 'Colonia Rosal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3472, 8, 'Abrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3473, 8, 'Ciutat Badia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3474, 8, 'Mateixa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3475, 8, 'Sant Pere Sallavinera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3476, 8, 'Santa Margarida I Els Monjos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3477, 8, 'Bellmunt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3478, 8, 'La Tallada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3479, 8, 'Gosol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3480, 8, 'Santa Margarita Y Los Monjos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3481, 8, 'Sant Teodor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3482, 8, 'El Figuero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3483, 8, 'Castellvi de la Marca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3484, 8, 'Gabas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3485, 8, 'Badia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3486, 8, 'Masies Voltrega Les'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3487, 8, 'Rupit Pruit'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3488, 8, 'Torrelavit'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3489, 8, 'Badia del Valles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3490, 8, 'Urb.Terra Brava(Tordera)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3491, 8, 'La Palma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3492, 8, 'Subirats'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3493, 9, 'Ameyugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3494, 9, 'Aranda Duero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3495, 9, 'Belorado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3496, 9, 'Berberana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3497, 9, 'Berlangas Roa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3498, 9, 'Berzosa Bureba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3499, 9, 'Briviesca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3500, 9, 'Bugedo'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3501, 9, 'Burgos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3502, 9, 'Calzada Bureba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3503, 9, 'Cameno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3504, 9, 'Castil Peones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3505, 9, 'Espinosa Monteros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3506, 9, 'Cubo Bureba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3507, 9, 'Estepar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3508, 9, 'Fuentespina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3509, 9, 'Grisalea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3510, 9, 'Gumiel Hizan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3511, 9, 'Hoyales Roa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3512, 9, 'Lerma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3513, 9, 'Milagros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3514, 9, 'Santuario Santa Casilda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3515, 9, 'Miranda Ebro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3516, 9, 'Monasterio Rodilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3517, 9, 'Oquillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3518, 9, 'Oron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3519, 9, 'Pampliega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3520, 9, 'Pancorvo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3521, 9, 'Pardilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3522, 9, 'Pradanos Bureba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3523, 9, 'Pradoluengo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3524, 9, 'La Puebla de Arganzon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3525, 9, 'Quintanapalla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3526, 9, 'Quintanavides'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3527, 9, 'Roa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3528, 9, 'Rubena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3529, 9, 'Santa Maria Ribarredonda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3530, 9, 'Santa Olalla Bureba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3531, 9, 'Sarracin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3532, 9, 'Sedano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3533, 9, 'Ubierna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3534, 9, 'Villafria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3535, 9, 'Villafranca Montes Oca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3536, 9, 'Villasana Mena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3537, 9, 'Arija'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3538, 9, 'Medina Pomar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3539, 9, 'Oa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3540, 9, 'Villarcayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3541, 9, 'Moneo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3542, 9, 'Nofuentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3543, 9, 'Villasante'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3544, 9, 'Poza Sal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3545, 9, 'Salas Bureba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3546, 9, 'Cornudilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3547, 9, 'Trespaderne'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3548, 9, 'Sasamon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3549, 9, 'Tardajos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3550, 9, 'Melgar Fernamental'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3551, 9, 'Villadiego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3552, 9, 'Villasandino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3553, 9, 'Baos Valdearados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3554, 9, 'Caleruega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3555, 9, 'Villanueva Gumiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3556, 9, 'Mahamud'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3557, 9, 'Santa Maria Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3558, 9, 'Tordomar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3559, 9, 'Villahoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3560, 9, 'Villalbilla de Burgos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3561, 9, 'Pedrosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3562, 9, 'Soncillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3563, 9, 'Virtus Estacion Fc'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3564, 9, 'Barbadillo Mercado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3565, 9, 'Cuevas San Clemente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3566, 9, 'Hortiguela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3567, 9, 'Quintanar Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3568, 9, 'Salas Infantes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3569, 9, 'Canicosa Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3570, 9, 'Hontoria Pinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3571, 9, 'Regumiel Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3572, 9, 'Vilviestre del Pinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3573, 9, 'Arauzo Miel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3574, 9, 'Covarrubias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3575, 9, 'Huerta Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3576, 9, 'Palacios Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3577, 9, 'Pinilla Barruecos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3578, 9, 'Mecerreyes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3579, 9, 'Neila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3580, 9, 'Villagonzalo Pedernales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3581, 9, 'Cerezo Riotiron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3582, 9, 'Busto Bureba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3583, 9, 'Castrillo Reina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3584, 9, 'Albaina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3585, 9, 'Aastro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3586, 9, 'Argote'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3587, 9, 'Armentia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3588, 9, 'Trevio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3589, 9, 'Quintana Martin Galindez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3590, 9, 'Celadilla Sotobrin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3591, 9, 'Quintanaortuo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3592, 9, 'Quintanilla Vivar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3593, 9, 'Rioseras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3594, 9, 'Sotopalacios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3595, 9, 'Villanueva Rio Ubierna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3596, 9, 'Vivar Cid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3597, 9, 'Castrillo Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3598, 9, 'Fuentecen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3599, 9, 'Horra La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3600, 9, 'San Zadornil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3601, 9, 'Bajauri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3602, 9, 'Aguilar de Bureba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3603, 9, 'Barrios Bureba Los'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3604, 9, 'Bobeda Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3605, 9, 'Castriciones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3606, 9, 'Cerca La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3607, 9, 'Criales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3608, 9, 'Extramiana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3609, 9, 'Fresnillo Dueas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3610, 9, 'Fresno Losa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3611, 9, 'Lechedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3612, 9, 'Momediano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3613, 9, 'Oteo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3614, 9, 'Pedrosa Tobalina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3615, 9, 'Perex'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3616, 9, 'Pino Bureba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3617, 9, 'Quincoces Yuso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3618, 9, 'Quintana Entrepeas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3619, 9, 'Quintanilla Ojada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3620, 9, 'Quintanilla Montecabezas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3621, 9, 'Rio Losa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3622, 9, 'Robredo Losa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3623, 9, 'San Llorente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3624, 9, 'San Martin Losa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3625, 9, 'San Pantaleon Losa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3626, 9, 'Terrazos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3627, 9, 'Vadocondes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3628, 9, 'Vesgas Las'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3629, 9, 'Villaluenga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3630, 9, 'Montejo Bricia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3631, 9, 'Santa Gadea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3632, 9, 'Bercedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3633, 9, 'Cogollos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3634, 9, 'Frias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3635, 9, 'Quintanarraya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3636, 9, 'Villalmanzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3637, 9, 'Anguix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3638, 9, 'Obecuri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3639, 9, 'Olmedillo Roa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3640, 9, 'Santo Domingo Silos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3641, 9, 'Torresandino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3642, 9, 'La Aguilera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3643, 9, 'Gumiel Mercado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3644, 9, 'Padilla Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3645, 9, 'Sotillo Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3646, 9, 'Quisicedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3647, 9, 'Vallejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3648, 9, 'Rabanera Pinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3649, 9, 'Castrojeriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3650, 9, 'Hinestrosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3651, 9, 'Villasilos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3652, 9, 'Villaveta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3653, 9, 'Castrillo Matajudios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3654, 9, 'Pedrosa Principe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3655, 9, 'Arroyo San Zadornil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3656, 9, 'San Millan San Zadornil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3657, 9, 'Parte Bureba La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3658, 9, 'Quemada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3659, 9, 'San Juan Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3660, 9, 'Zazuar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3661, 9, 'Quintanilla San Garcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3662, 9, 'Barbadillo Herreros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3663, 9, 'Barbadillo Pez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3664, 9, 'Huerta Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3665, 9, 'Huerta Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3666, 9, 'Monterrubio Demanda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3667, 9, 'Riocavado Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3668, 9, 'Tolbaos Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3669, 9, 'Tolbaos Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3670, 9, 'Hierro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3671, 9, 'Adrada Haza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3672, 9, 'Fuentelisendo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3673, 9, 'Fuentemolinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3674, 9, 'Fuentenebro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3675, 9, 'Hontangas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3676, 9, 'Moradillo Roa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3677, 9, 'Nava Roa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3678, 9, 'San Martin Rubiales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3679, 9, 'La Sequera Haza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3680, 9, 'Valdezate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3681, 9, 'Vallejimeno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3682, 9, 'Pedrosa Rio Urbel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3683, 9, 'Pearanda Duero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3684, 9, 'Fresneda Sierra Tiron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3685, 9, 'Tubilla Lago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3686, 9, 'San Miguel Pedroso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3687, 9, 'Buniel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3688, 9, 'La Vid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3689, 9, 'Castaares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3690, 9, 'Fuentelcesped'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3691, 9, 'Padrones Bureba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3692, 9, 'Cantabrana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3693, 9, 'Rucandio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3694, 9, 'Aguas Candidas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3695, 9, 'Madrid Las Caderechas Barrio Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3696, 9, 'Citores Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3697, 9, 'Hozabejas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3698, 9, 'Rio Quintanilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3699, 9, 'Quintanaopio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3700, 9, 'Hontoria Valdearados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3701, 9, 'Herrera Valdivielso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3702, 9, 'Condado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3703, 9, 'Quecedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3704, 9, 'Valhermosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3705, 9, 'Valdenoceda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3706, 9, 'Arroyo Valdivielso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3707, 9, 'Puente Arenas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3708, 9, 'Toba Valdivielso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3709, 9, 'Tartales Montes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3710, 9, 'Quintana Valdivielso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3711, 9, 'Poblacion Valdivielso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3712, 9, 'Hoz Valdivielso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3713, 9, 'El Almie'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3714, 9, 'Santa Olalla Valdivielso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3715, 9, 'Panizares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3716, 9, 'Arenillas Muo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3717, 9, 'Arroyal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3718, 9, 'Barcina Montes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3719, 9, 'Caizar Argao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3720, 9, 'Cascajares Bureba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3721, 9, 'Cascajares Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3722, 9, 'Las Celadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3723, 9, 'Eterna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3724, 9, 'Garganchon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3725, 9, 'Huermeces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3726, 9, 'Isar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3727, 9, 'Mansilla de Burgos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3728, 9, 'Marmellar Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3729, 9, 'Miraveche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3730, 9, 'Navas Bureba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3731, 9, 'La Nuez Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3732, 9, 'Padilla de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3733, 9, 'Palacios Benaver'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3734, 9, 'Pedrosa Muo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3735, 9, 'Puras Villafranca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3736, 9, 'Quintanadueas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3737, 9, 'Quintanaelez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3738, 9, 'Las Quintanillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3739, 9, 'Ros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3740, 9, 'Santa Cruz Valle Urbion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3741, 9, 'Santibaez Zarzaguda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3742, 9, 'San Vicente Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3743, 9, 'Los Tremellos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3744, 9, 'Valmala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3745, 9, 'Vallarta Bureba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3746, 9, 'Villagalijo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3747, 9, 'Villanueva Argao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3748, 9, 'Villarmentero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3749, 9, 'Villarmero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3750, 9, 'Zumel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3751, 9, 'Zueda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3752, 9, 'Arauzo Salce'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3753, 9, 'Arauzo Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3754, 9, 'Cabezon Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3755, 9, 'La Gallega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3756, 9, 'Hacinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3757, 9, 'Hinojar Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3758, 9, 'Mamolar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3759, 9, 'Pealba Castro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3760, 9, 'Arandilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3761, 9, 'Bahabon Esgueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3762, 9, 'Brazacorta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3763, 9, 'Campillo Aranda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3764, 9, 'Cilleruelo de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3765, 9, 'Cilleruelo Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3766, 9, 'Corua Conde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3767, 9, 'Fontioso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3768, 9, 'Pineda Trasmonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3769, 9, 'Pinilla Trasmonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3770, 9, 'Santa Cruz Salceda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3771, 9, 'Torregalindo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3772, 9, 'Coto Valverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3773, 9, 'Zangandez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3774, 9, 'Castrillo Solarana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3775, 9, 'Nebreda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3776, 9, 'Revilla Cabriada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3777, 9, 'Solarana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3778, 9, 'Torrecilla Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3779, 9, 'Villafruela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3780, 9, 'Villamayor Montes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3781, 9, 'Zael'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3782, 9, 'Castresana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3783, 9, 'Castrobarto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3784, 9, 'Colina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3785, 9, 'Salinas Rosio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3786, 9, 'Villabasil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3787, 9, 'Villaventin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3788, 9, 'Santa Gadea Cid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3789, 9, 'Bozoo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3790, 9, 'Encio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3791, 9, 'Torrepadre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3792, 9, 'Royuela Rio Franco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3793, 9, 'Valluercanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3794, 9, 'Altable'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3795, 9, 'Villanueva Teba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3796, 9, 'Carcedo Burgos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3797, 9, 'Cardeadijo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3798, 9, 'Modubar Emparedada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3799, 9, 'San Pedro Cardea Monasterio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3800, 9, 'Quintanilla Ausines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3801, 9, 'Revilla Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3802, 9, 'Cubillo Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3803, 9, 'Hontoria Cantera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3804, 9, 'Madrigal Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3805, 9, 'Madrigalejo Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3806, 9, 'Retuerta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3807, 9, 'Revillarruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3808, 9, 'Santibaez Val'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3809, 9, 'Tejada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3810, 9, 'Villariezo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3811, 9, 'Arlanzon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3812, 9, 'Ibeas Juarros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3813, 9, 'Pineda Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3814, 9, 'San Millan Juarros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3815, 9, 'Urrez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3816, 9, 'Villasur Herreros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3817, 9, 'San Mames Burgos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3818, 9, 'Frandovinez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3819, 9, 'Contreras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3820, 9, 'Fresno Riotiron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3821, 9, 'Cabia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3822, 9, 'Cayuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3823, 9, 'Albillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3824, 9, 'Villovela Esgueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3825, 9, 'Guzman'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3826, 9, 'Quintanamanvirgo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3827, 9, 'Bentretea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3828, 9, 'Arcos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3829, 9, 'Tortoles Esgueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3830, 9, 'Villaverde Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3831, 9, 'Cillaperlata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3832, 9, 'Rezmondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3833, 9, 'Castrillo Riopisuerga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3834, 9, 'Zarzosa Riopisuerga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3835, 9, 'Villangomez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3836, 9, 'Celada Camino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3837, 9, 'Hormaza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3838, 9, 'Villagutierrez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3839, 9, 'Haza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3840, 9, 'La Cueva Roa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3841, 9, 'Valcavado Roa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3842, 9, 'Mambrilla Castrejon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3843, 9, 'Boada Roa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3844, 9, 'Pedrosa Duero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3845, 9, 'Villaescusa Roa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3846, 9, 'Villalbilla Gumiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3847, 9, 'Mazuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3848, 9, 'Presencio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3849, 9, 'Ciadoncha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3850, 9, 'Olmillos Muo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3851, 9, 'Celada Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3852, 9, 'Covanera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3853, 9, 'Montorio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3854, 9, 'Nidaguila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3855, 9, 'La Piedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3856, 9, 'Riocerezo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3857, 9, 'San Felices'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3858, 9, 'Sargentes Lora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3859, 9, 'Sotragero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3860, 9, 'Tubilla Agua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3861, 9, 'Urbel Castillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3862, 9, 'Villanueva Odra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3863, 9, 'Villahizan Trevio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3864, 9, 'Grijalba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3865, 9, 'Aldea Pinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3866, 9, 'Belbimbre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3867, 9, 'Barrio Muo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3868, 9, 'Villalba Losa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3869, 9, 'Cabaes Esgueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3870, 9, 'Villalba Duero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3871, 9, 'Sordillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3872, 9, 'Villazopeque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3873, 9, 'Navas Pinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3874, 9, 'Los Balbases'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3875, 9, 'Santibaez Esgueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3876, 9, 'Terradillos Esgueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3877, 9, 'Villaverde Mogina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3878, 9, 'Villasidro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3879, 9, 'Quintana Pidio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3880, 9, 'Quintanillabon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3881, 9, 'Vilea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3882, 9, 'La Vid Bureba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3883, 9, 'Solduengo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3884, 9, 'Espinosa Cervera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3885, 9, 'Villavieja Muo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3886, 9, 'Quintanilla Somuo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3887, 9, 'Mazuelo Muo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3888, 9, 'Valdeande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3889, 9, 'Villamedianilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3890, 9, 'Hornillos Camino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3891, 9, 'Vallegera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3892, 9, 'Villaquiran Infantes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3893, 9, 'Villaldemiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3894, 9, 'Tamaron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3895, 9, 'Iglesias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3896, 9, 'Revilla Vallegera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3897, 9, 'Valles Palenzuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3898, 9, 'Peral Arlanza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3899, 9, 'Puentedura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3900, 9, 'Quintanilla Agua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3901, 9, 'Santa Ines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3902, 9, 'Tordueles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3903, 9, 'Barrio Bricia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3904, 9, 'Dobro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3905, 9, 'Paradores Barrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3906, 9, 'Alcocero Mola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3907, 9, 'Villanasur Rio Oca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3908, 9, 'Palazuelos Muo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3909, 9, 'Itero Castillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3910, 9, 'Olmillos Sasamon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3911, 9, 'Castrillo Murcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3912, 9, 'Arenillas Riopisuerga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3913, 9, 'Palacios Riopisuerga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3914, 9, 'Yudego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3915, 9, 'Galbarros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3916, 9, 'Reinoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3917, 9, 'Fresnea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3918, 9, 'Viloria Rioja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3919, 9, 'Bascuana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3920, 9, 'Santa Maria Invierno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3921, 9, 'Arraya Oca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3922, 9, 'Villaescusa Sombria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3923, 9, 'Cerraton Juarros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3924, 9, 'Villambistia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3925, 9, 'Espinosa Camino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3926, 9, 'Castildelgado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3927, 9, 'Cornejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3928, 9, 'Ciruelos Cervera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3929, 9, 'Santa Maria Mercadillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3930, 9, 'Quintanaloranco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3931, 9, 'Castil Carrias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3932, 9, 'Carrias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3933, 9, 'Bauelos Bureba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3934, 9, 'Cilleruelo Bezana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3935, 9, 'Villayerno Morquillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3936, 9, 'Guma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3937, 9, 'Redecilla Camino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3938, 9, 'Ibrillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3939, 9, 'Villamayor Trevio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3940, 9, 'Quintanilla Rebollar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3941, 9, 'Terminon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3942, 9, 'Santa Cecilia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3943, 9, 'Castellanos Castro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3944, 9, 'Hontanas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3945, 9, 'Redecilla Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3946, 9, 'Villaquiran Puebla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3947, 9, 'Atapuerca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3948, 9, 'Barrios Colina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3949, 9, 'Castrillo Val'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3950, 9, 'Fresno Rodilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3951, 9, 'Modubar Cuesta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3952, 9, 'Salguero Juarros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3953, 9, 'San Adrian Juarros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3954, 9, 'San Medel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3955, 9, 'Santa Cruz Juarros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3956, 9, 'Santovenia Oca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3957, 9, 'Ages'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3958, 9, 'Quintanilla Coco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3959, 9, 'Revenga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3960, 9, 'Villafuertes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3961, 9, 'Guadilla Villamar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3962, 9, 'Palazuelos Villadiego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3963, 9, 'Rioparaiso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3964, 9, 'Santa Maria Ananuez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3965, 9, 'Tagarrosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3966, 9, 'Gredilla la Polera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3967, 9, 'Hontomin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3968, 9, 'Mata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3969, 9, 'Tosantos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3970, 9, 'Villamayor Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3971, 9, 'Nava Ordunte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3972, 9, 'Santecilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3973, 9, 'Bisjueces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3974, 9, 'Manzanedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3975, 9, 'Villalain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3976, 9, 'Castil Lences'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3977, 9, 'Fuentebureba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3978, 9, 'Lences'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3979, 9, 'Llano Bureba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3980, 9, 'Piernigas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3981, 9, 'Quintanabureba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3982, 9, 'Rojas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3983, 9, 'Humada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3984, 9, 'Tapia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3985, 9, 'Villamartin Villadiego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3986, 9, 'Villavedon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3987, 9, 'Villusto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3988, 9, 'Amaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3989, 9, 'La Parte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3990, 9, 'Salazar Amaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3991, 9, 'Sandoval Reina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3992, 9, 'Sotresgudo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3993, 9, 'Avellanosa Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3994, 9, 'Buezo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3995, 9, 'Medinilla Dehesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3996, 9, 'Rabe Calzadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3997, 9, 'Revillalcon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3998, 9, 'Salinillas Bureba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (3999, 9, 'San Pedro Samuel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4000, 9, 'Valdeajos'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4001, 9, 'Villamiel Muo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4002, 9, 'Villandiego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4003, 9, 'Villorejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4004, 9, 'Aguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4005, 9, 'Baranda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4006, 9, 'Bocos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4007, 9, 'Gayangos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4008, 9, 'Loma Montija'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4009, 9, 'Mozares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4010, 9, 'Noceco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4011, 9, 'Quintanilla Pienza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4012, 9, 'Torme'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4013, 9, 'Basconcillos Tozo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4014, 9, 'Ahedo Butron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4015, 9, 'Masa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4016, 9, 'Pesadas de Burgos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4017, 9, 'Quintanilla Mata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4018, 9, 'Santa Cruz Tozo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4019, 9, 'Valbonilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4020, 9, 'Vallunquera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4021, 9, 'Villatuelda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4022, 9, 'La Revilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4023, 9, 'Barcina Barco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4024, 9, 'San Martin Don'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4025, 9, 'Valderrama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4026, 9, 'Cueva Juarros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4027, 9, 'Cuzcurrita Juarros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4028, 9, 'Palazuelos Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4029, 9, 'Lodoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4030, 9, 'Paramo Arroyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4031, 9, 'Olmos Atapuerca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4032, 9, 'Villegas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4033, 9, 'Mozoncillo Juarros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4034, 9, 'Rabanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4035, 9, 'Madrid Caderechas Barrio Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4036, 9, 'Quintanilla-Sobresierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4037, 9, 'Hurones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4038, 9, 'Argomedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4039, 9, 'Bezana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4040, 9, 'Cilleruelo Bricia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4041, 9, 'Herbosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4042, 9, 'Virtus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4043, 9, 'Suzana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4044, 9, 'Villalomez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4045, 9, 'Avellanosa Muo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4046, 9, 'Iglesiarrubia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4047, 9, 'Paules Agua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4048, 9, 'Pinedillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4049, 9, 'Santa Maria Tajadura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4050, 9, 'Torrecitores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4051, 9, 'Cernegula'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4052, 9, 'La Molina Ubierna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4053, 9, 'Peahorada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4054, 9, 'Quintanarruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4055, 9, 'Villaverde Peahorada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4056, 9, 'Hermosilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4057, 9, 'Penches'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4058, 9, 'Moncalvillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4059, 9, 'Campolara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4060, 9, 'Carazo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4061, 9, 'Cebrecos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4062, 9, 'Marmellar Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4063, 9, 'Valdorros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4064, 9, 'Villatoro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4065, 9, 'Arenillas Villadiego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4066, 9, 'Barcenillas Ribero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4067, 9, 'Ribero El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4068, 9, 'Robredo Temio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4069, 9, 'Tobes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4070, 9, 'Villanueva la Lastra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4071, 9, 'Zuzones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4072, 9, 'Hocina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4073, 9, 'Quintanas Valdelucio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4074, 9, 'Gamonal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4075, 9, 'Castellanos Bureba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4076, 9, 'Pinilla Moros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4077, 9, 'Vizcainos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4078, 9, 'San Millan Lara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4079, 9, 'Temio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4080, 9, 'Abajas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4081, 9, 'Quintana Prados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4082, 9, 'Pangua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4083, 9, 'Villanueva Montes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4084, 9, 'Cespedes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4085, 9, 'La Quintana Rueda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4086, 9, 'Santa Cruz Andino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4087, 9, 'Villacanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4088, 9, 'Villacomparada Rueda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4089, 9, 'Villarias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4090, 9, 'Mion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4091, 9, 'Casillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4092, 9, 'Santotis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4093, 9, 'Sotillo Rioja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4094, 9, 'Andino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4095, 9, 'Barrios Villadiego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4096, 9, 'Cadianos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4097, 9, 'Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4098, 9, 'Escao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4099, 9, 'Pinillos Esgueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4100, 9, 'Quintanilla Adrianos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4101, 9, 'Susinos Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4102, 9, 'Tubilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4103, 9, 'Villalbilla Villadiego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4104, 9, 'Villaute'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4105, 9, 'La Aldea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4106, 9, 'Ayuelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4107, 9, 'Barruelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4108, 9, 'Fresnedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4109, 9, 'Incinillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4110, 9, 'Quintanilla Carretas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4111, 9, 'Remolino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4112, 9, 'Salazar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4113, 9, 'Barrasa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4114, 9, 'Villalazara de Montija'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4115, 9, 'Villanueva Blanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4116, 9, 'Concejero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4117, 9, 'Villanueva Carretas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4118, 9, 'Piedrahita Juarros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4119, 9, 'Entrambasaguas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4120, 9, 'Irus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4121, 9, 'Sopeano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4122, 9, 'Vallejo Mena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4123, 9, 'Villanueva Mena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4124, 9, 'Villasuso Mena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4125, 9, 'Villayuda O la Ventilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4126, 9, 'Cebolleros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4127, 9, 'Jaramillo Fuente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4128, 9, 'Mijangos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4129, 9, 'Quintana Maria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4130, 9, 'Villacienzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4131, 9, 'Pradolamata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4132, 9, 'Urria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4133, 9, 'Villapanillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4134, 9, 'Villavedeo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4135, 9, 'Uzquiano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4136, 9, 'Guinicio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4137, 9, 'Montaana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4138, 9, 'Puentedey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4139, 9, 'Quintanabaldo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4140, 9, 'Covides'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4141, 9, 'Vizmalo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4142, 9, 'Valpuesta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4143, 9, 'Olmos Picaza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4144, 9, 'Cojobar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4145, 9, 'Menamayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4146, 9, 'Barrio Diaz Ruiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4147, 9, 'Lao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4148, 9, 'Ayoluengo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4149, 9, 'Maltranilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4150, 9, 'Gijano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4151, 9, 'Arroyuelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4152, 9, 'Hoyuelos Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4153, 9, 'Moradillo Sedano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4154, 9, 'Vivanco Mena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4155, 9, 'Escobados Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4156, 9, 'Renuncio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4157, 9, 'Tobar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4158, 9, 'Pedrosa Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4159, 9, 'Torres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4160, 9, 'Villanueva Matamala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4161, 9, 'Barcenas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4162, 9, 'Veguecilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4163, 9, 'Moriana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4164, 9, 'Villanueva Soportilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4165, 9, 'Lastras Teza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4166, 9, 'Villacian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4167, 9, 'Teza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4168, 9, 'Barriga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4169, 9, 'Rufrancos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4170, 9, 'Lomana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4171, 9, 'Prada La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4172, 9, 'Pangusion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4173, 9, 'Ranera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4174, 9, 'Brulles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4175, 9, 'Ircio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4176, 9, 'Cardeajimeno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4177, 9, 'Valdazo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4178, 9, 'Hornes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4179, 9, 'Para'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4180, 9, 'San Cristobal Almendres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4181, 9, 'Santocildes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4182, 9, 'Gredilla Sedano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4183, 9, 'Paresotas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4184, 9, 'Dosante'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4185, 9, 'Santillan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4186, 9, 'Campillo Mena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4187, 9, 'Arroyo Muo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4188, 9, 'Doroo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4189, 9, 'Pariza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4190, 9, 'Burgueta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4191, 9, 'Villanueva Oca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4192, 9, 'Busto Trevio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4193, 9, 'Zurbitu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4194, 9, 'Ocilla Ladrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4195, 9, 'San Llorente Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4196, 9, 'Tablada Rudron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4197, 9, 'Santa Coloma Rudron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4198, 9, 'Villao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4199, 9, 'Angosto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4200, 9, 'Villanueva Puerta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4201, 9, 'Coculina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4202, 9, 'Cucho'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4203, 9, 'San Martin Zar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4204, 9, 'Arrieta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4205, 9, 'Monasterio Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4206, 9, 'Montuenga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4207, 9, 'Obarenes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4208, 9, 'Ruyales Agua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4209, 9, 'Tartales Cilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4210, 9, 'Villalacre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4211, 9, 'Fuidio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4212, 9, 'Cueva Cardiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4213, 9, 'Villagonzalo Arenas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4214, 9, 'Cereceda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4215, 9, 'Manciles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4216, 9, 'Palazuelos Cuesta Urria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4217, 9, 'Arroyo Salas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4218, 9, 'Terrazas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4219, 9, 'Castrovido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4220, 9, 'Torres Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4221, 9, 'Ocon Villafranca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4222, 9, 'Pradilla Hoz Arreba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4223, 9, 'Villamediana San Roman'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4224, 9, 'Ahedo Linares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4225, 9, 'Quintanilla Valdebodres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4226, 9, 'Carcedo Bureba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4227, 9, 'Rosio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4228, 9, 'Santurde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4229, 9, 'Cogullos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4230, 9, 'Doa Santos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4231, 9, 'Escalada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4232, 9, 'Orbaneja Castillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4233, 9, 'Villatomil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4234, 9, 'Golernio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4235, 9, 'Imiruri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4236, 9, 'Saraso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4237, 9, 'San Vicentejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4238, 9, 'Villanueva Tobera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4239, 9, 'Franco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4240, 9, 'Bustillo Villarcayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4241, 9, 'Briongos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4242, 9, 'Quintanilla Escalada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4243, 9, 'Quintanilla San Roman'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4244, 9, 'Hoz Arreba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4245, 9, 'Villate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4246, 9, 'Zalduendo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4247, 9, 'El Vado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4248, 9, 'Villamorico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4249, 9, 'Villamiel Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4250, 9, 'Recuenco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4251, 9, 'Riba La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4252, 9, 'Rosales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4253, 9, 'Landraves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4254, 9, 'La Parte Sotoscueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4255, 9, 'Robredo Pueblas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4256, 9, 'Pesquera Ebro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4257, 9, 'Ahedo Pueblas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4258, 9, 'Villaves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4259, 9, 'Iglesiapinta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4260, 9, 'San Vicente Villamezan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4261, 9, 'Caniego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4262, 9, 'San Martin Porres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4263, 9, 'Cidad Valdeporres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4264, 9, 'San Martin Ollas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4265, 9, 'Arana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4266, 9, 'Grandival'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4267, 9, 'Marauri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4268, 9, 'Moscador Trevio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4269, 9, 'Muergas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4270, 9, 'Ozana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4271, 9, 'Pedruzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4272, 9, 'Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4273, 9, 'Bardauri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4274, 9, 'Bascones Agua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4275, 9, 'Bayas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4276, 9, 'Cortes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4277, 9, 'Crucero El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4278, 9, 'Hontoria Riofranco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4279, 9, 'Horna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4280, 9, 'Lechedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4281, 9, 'Retortillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4282, 9, 'Saldaa de Burgos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4283, 9, 'Santa Maria Garoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4284, 9, 'Santa Olalla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4285, 9, 'Santelices'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4286, 9, 'Villalonquejar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4287, 9, 'Villimar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4288, 9, 'Ascarza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4289, 9, 'Ternero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4290, 9, 'San Martin Ubierna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4291, 9, 'San Pedro Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4292, 9, 'Quintanilla Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4293, 9, 'Porquera Butron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4294, 9, 'Villalbos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4295, 9, 'Tornadijo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4296, 9, 'Villoviado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4297, 9, 'Los Corrales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4298, 9, 'Nave La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4299, 9, 'Cubillos Rojo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4300, 9, 'La Orden'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4301, 9, 'Paralacuesta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4302, 9, 'San Pelayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4303, 9, 'Barcena Pienza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4304, 9, 'Quintanilla Sopea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4305, 9, 'Valtierra Rio Pisuerga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4306, 9, 'Modubar San Cebrian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4307, 9, 'Rio Trueba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4308, 9, 'Rio Lunada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4309, 9, 'Barcenillas Cerezos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4310, 9, 'Cueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4311, 9, 'Villamartin Sotoscueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4312, 9, 'Villabascones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4313, 9, 'Quintanilla Sotoscueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4314, 9, 'Entrambosrios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4315, 9, 'Las Rozas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4316, 9, 'Peacoba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4317, 9, 'Castroceniza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4318, 9, 'Hortezuelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4319, 9, 'Villanueva Carazo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4320, 9, 'Melgosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4321, 9, 'Barruelo Villadiego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4322, 9, 'Cuevas Amaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4323, 9, 'Castromorca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4324, 9, 'Bascuuelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4325, 9, 'Bortedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4326, 9, 'Barrio Panizares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4327, 9, 'Hoyos Tozo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4328, 9, 'San Mames Abar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4329, 9, 'Arcellares Tozo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4330, 9, 'Trashaedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4331, 9, 'Talamillo Tozo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4332, 9, 'Fuente Urbel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4333, 9, 'La Nuez Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4334, 9, 'Terradillos Sedano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4335, 9, 'Quintanilla Vias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4336, 9, 'Quintanalara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4337, 9, 'Torrelara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4338, 9, 'Paules Lara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4339, 9, 'Lara Infantes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4340, 9, 'Mambrillas Lara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4341, 9, 'Villaespasa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4342, 9, 'Jaramillo Quemado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4343, 9, 'Piedrahita Muo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4344, 9, 'Rebolledo Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4345, 9, 'Caizar Amaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4346, 9, 'Quintanilla Rio Fresno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4347, 9, 'Barrio San Felices'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4348, 9, 'Los Valcarceres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4349, 9, 'Fuencivil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4350, 9, 'Quintanilla Presa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4351, 9, 'Fuencaliente Lucio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4352, 9, 'Llanillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4353, 9, 'Pedrosa Valdelucio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4354, 9, 'Corralejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4355, 9, 'Rebolledo Traspea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4356, 9, 'Fuenteodra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4357, 9, 'Ordejon Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4358, 9, 'Fuencaliente Puerta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4359, 9, 'Solano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4360, 9, 'Ordejon Abajo Santa Maria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4361, 9, 'Solanas Valdelucio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4362, 9, 'San Martin Humada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4363, 9, 'Corconte Balneario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4364, 9, 'Bezares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4365, 9, 'Rioseco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4366, 9, 'Lezana Mena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4367, 9, 'Butrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4368, 9, 'Maltrana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4369, 9, 'Siguenza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4370, 9, 'Hinojal Riopisuerga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4371, 9, 'Sotovellanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4372, 9, 'Aguillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4373, 9, 'Ajarte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4374, 9, 'Araico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4375, 9, 'Dordoniz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4376, 9, 'Meana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4377, 9, 'Mesanza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4378, 9, 'Moraza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4379, 9, 'Ogueta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4380, 9, 'Samiano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4381, 9, 'San Esteban Trevio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4382, 9, 'San Martin de Galvarin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4383, 9, 'Saseta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4384, 9, 'Taravero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4385, 9, 'Humienta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4386, 9, 'Quintanilla Urrilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4387, 9, 'Paradores Mena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4388, 9, 'Calzada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4389, 9, 'Angulo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4390, 9, 'Anzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4391, 9, 'Ayega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4392, 9, 'Burcea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4393, 9, 'Cadagua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4394, 9, 'Cardeuela Riopico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4395, 9, 'Castrecias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4396, 9, 'Herran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4397, 9, 'Higon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4398, 9, 'Lastras Eras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4399, 9, 'Medianas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4400, 9, 'Montecillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4401, 9, 'Montejo San Miguel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4402, 9, 'Orbaneja Riopico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4403, 9, 'Partearroyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4404, 9, 'Quintanilla-Pedro Abarca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4405, 9, 'Quintanilla Riopico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4406, 9, 'Quintanilla Santa Gadea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4407, 9, 'Renedo Escalera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4408, 9, 'Riba Valdelucio La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4409, 9, 'San Pantaleon Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4410, 9, 'Santiago Tudela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4411, 9, 'Siones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4412, 9, 'Tinieblas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4413, 9, 'Tobera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4414, 9, 'Ungo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4415, 9, 'Vallejuelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4416, 9, 'Villaescusa Tobalina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4417, 9, 'Villela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4418, 9, 'Vilviestre Muo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4419, 9, 'Acea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4420, 9, 'Montejo Cebas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4421, 9, 'Navagos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4422, 9, 'Leva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4423, 9, 'Villoruebo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4424, 9, 'Cilieza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4425, 9, 'Cotar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4426, 9, 'Gete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4427, 9, 'Mazueco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4428, 9, 'Mijala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4429, 9, 'Olmosalbos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4430, 9, 'Rabe Escuderos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4431, 9, 'Relloso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4432, 9, 'Santa Olaja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4433, 9, 'Ventosilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4434, 9, 'Villahizan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4435, 9, 'Villota'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4436, 9, 'La Rebolleda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4437, 9, 'Ranedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4438, 9, 'Lomas Villamediana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4439, 9, 'Escobados Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4440, 9, 'Sinovas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4441, 9, 'Galarde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4442, 9, 'Ura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4443, 9, 'Rio Sia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4444, 9, 'Rioseco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4445, 9, 'Borcos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4446, 9, 'Ruyales Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4447, 9, 'Llorengoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4448, 9, 'Cubillos Losa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4449, 9, 'Eras Las'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4450, 9, 'Lastras Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4451, 9, 'Hedesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4452, 9, 'Redondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4453, 9, 'San Miguel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4454, 9, 'Rublacedo Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4455, 9, 'Rublacedo Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4456, 9, 'Rebolledillo Orden'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4457, 9, 'Arceo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4458, 9, 'Artieta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4459, 9, 'Carrasquedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4460, 9, 'Leciana Mena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4461, 9, 'Ovilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4462, 9, 'La Presilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4463, 9, 'Ribota Ordunte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4464, 9, 'Santa Maria Llano Tudela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4465, 9, 'Taranco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4466, 9, 'Viergol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4467, 9, 'Arnedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4468, 9, 'Castrillo Bezana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4469, 9, 'Montoto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4470, 9, 'Escuderos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4471, 9, 'Gallejones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4472, 9, 'Castrillo Rucios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4473, 9, 'Brizuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4474, 9, 'Paul'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4475, 9, 'Villalmondar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4476, 9, 'Villamor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4477, 9, 'Ezquerra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4478, 9, 'Santa Olalla Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4479, 9, 'Hinojar Cervera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4480, 9, 'Villahernando'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4481, 9, 'Quintanar Urria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4482, 9, 'Villanoo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4483, 9, 'Vigo El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4484, 9, 'Mion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4485, 9, 'Boada Villadiego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4486, 9, 'Montiano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4487, 9, 'Ordejon Ordunte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4488, 9, 'Hornillalastra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4489, 9, 'Pereda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4490, 9, 'San Quirce'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4491, 9, 'Ahedo Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4492, 9, 'Melgosa Villadiego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4493, 9, 'San Pedro Hoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4494, 9, 'Caborredondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4495, 9, 'Peones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4496, 9, 'Revillagodos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4497, 9, 'San Juan Ortega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4498, 9, 'Acedillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4499, 9, 'Ael'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4500, 9, 'Ahedo Bureba'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4501, 9, 'Ailanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4502, 9, 'Alarcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4503, 9, 'Albacastro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4504, 9, 'Aldea Portillo Busto La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4505, 9, 'Almendres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4506, 9, 'Aostri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4507, 9, 'Arce'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4508, 9, 'Arconada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4509, 9, 'Arges'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4510, 9, 'Arreba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4511, 9, 'Avellanosa Rioja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4512, 9, 'Azucarera Leopoldo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4513, 9, 'Baillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4514, 9, 'Bauelos Rudron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4515, 9, 'Barcena Bureba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4516, 9, 'Barrio Cuesta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4517, 9, 'Barrio Lucio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4518, 9, 'Barriosuso Santibaez Val'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4519, 9, 'Barriosuso Villarcayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4520, 9, 'Bascones Zamanzas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4521, 9, '%Sotill%'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4522, 9, 'Bricia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4523, 9, 'Busnela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4524, 9, 'Bustillo Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4525, 9, 'Cabaas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4526, 9, 'Cabauela La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4527, 9, 'Campino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4528, 9, 'Casares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4529, 9, 'Cidad Ebro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4530, 9, 'Ciella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4531, 9, 'Cirion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4532, 9, 'Cobos Junto Molina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4533, 9, 'Congosto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4534, 9, 'Consortes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4535, 9, 'Cormenzana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4536, 9, 'Cortiguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4537, 9, 'Crespo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4538, 9, 'Cubilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4539, 9, 'Cubillejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4540, 9, 'Cubillo Butron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4541, 9, 'Cubillo Cesar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4542, 9, 'Cuestaedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4543, 9, 'Cueva Manzanedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4544, 9, 'Cuezva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4545, 9, 'Escanduso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4546, 9, 'Espinosa Juarros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4547, 9, 'Espinosa Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4548, 9, 'Espinosilla San Bartolome'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4549, 9, 'Estacion La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4550, 9, 'Gabaes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4551, 9, 'Garoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4552, 9, 'Gobantes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4553, 9, 'Haedillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4554, 9, 'Hedeso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4555, 9, 'Herrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4556, 9, 'Hiniestra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4557, 9, 'Hormazuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4558, 9, 'Hormiguero El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4559, 9, 'Hornillalatorre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4560, 9, 'Hornillayuso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4561, 9, 'Hoz Mena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4562, 9, 'Hozalla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4563, 9, 'Huespeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4564, 9, 'Huidobro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4565, 9, 'Icedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4566, 9, 'Leciana Tobalina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4567, 9, 'Lermilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4568, 9, 'Linares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4569, 9, 'Linares Bricia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4570, 9, 'Loranquillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4571, 9, 'Lorcio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4572, 9, 'Lorilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4573, 9, 'Lozares Tobalina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4574, 9, 'Llano Mena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4575, 9, 'Mahallos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4576, 9, 'Mambliga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4577, 9, 'Manzanedillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4578, 9, 'Marcillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4579, 9, 'Matalindo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4580, 9, 'Mijaraluenga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4581, 9, 'Molina Portillo Busto La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4582, 9, 'Moradillo Castillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4583, 9, 'Movilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4584, 9, 'Mozoncillo Oca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4585, 9, 'Mozuelos Sedano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4586, 9, 'Mundilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4587, 9, 'Mundoval'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4588, 9, 'Munilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4589, 9, 'Murita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4590, 9, 'Nela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4591, 9, 'Nocedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4592, 9, 'Nuestra Seora Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4593, 9, 'Ojeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4594, 9, 'Opio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4595, 9, 'Orbaanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4596, 9, 'Pajares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4597, 9, 'Pealba Manzanedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4598, 9, 'Poblacion Arreba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4599, 9, 'Pomar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4600, 9, 'Portilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4601, 9, 'Pradanos Tozo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4602, 9, 'Presillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4603, 9, 'Priorato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4604, 9, 'Promediano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4605, 9, 'Puentes Amaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4606, 9, 'Quintana Pino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4607, 9, 'Quintana Rojo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4608, 9, 'Quintanaedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4609, 9, 'Quintanaentello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4610, 9, 'Quintanalacuesta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4611, 9, 'Quintanaloma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4612, 9, 'Quintanamace'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4613, 9, 'Quintanarrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4614, 9, 'Quintanaseca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4615, 9, 'Quintanilla Caberojas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4616, 9, 'Quintanilla Cabe Soto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4617, 9, 'Quintanilla Monte Juarros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4618, 9, 'Quintanilla Cabrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4619, 9, 'Quintanilla Colina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4620, 9, 'Quintanilla Sociguenza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4621, 9, 'Quintanilleja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4622, 9, 'Rad La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4623, 9, 'El Rebollar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4624, 9, 'Las Rebolledas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4625, 9, 'Revilla Herran La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4626, 9, 'Revilla Pienza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4627, 9, 'Riao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4628, 9, 'Rio Mena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4629, 9, 'Robredo Zamanzas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4630, 9, 'Robredo Sobresierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4631, 9, 'Rupelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4632, 9, 'San Andres Montearados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4633, 9, 'San Cibrian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4634, 9, 'San Clemente Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4635, 9, 'San Cristobal Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4636, 9, 'San Martin Rojo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4637, 9, 'San Miguel Cornezuelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4638, 9, 'San Otero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4639, 9, 'Santa Coloma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4640, 9, 'Santa Cruz Mena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4641, 9, 'Santa Marina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4642, 9, 'Santiuste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4643, 9, 'Sobrepea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4644, 9, 'Soto Bureba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4645, 9, 'Tablada Villadiego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4646, 9, 'Tabliega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4647, 9, 'Taabueyes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4648, 9, 'Tobalinilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4649, 9, 'Torrepadierne'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4650, 9, 'Tubilleja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4651, 9, 'Tudanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4652, 9, 'Turrientes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4653, 9, 'Turzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4654, 9, 'Valdearnedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4655, 9, 'Valdelacuesta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4656, 9, 'Valdelateja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4657, 9, 'Valderias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4658, 9, 'Valmayor Cuesta Urria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4659, 9, 'Valtierra Albacastro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4660, 9, 'Valujera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4661, 9, 'Valverde Miranda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4662, 9, 'Vallejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4663, 9, 'Valluerca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4664, 9, 'Ventades'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4665, 9, 'Viadas Las'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4666, 9, 'Villabascones Bezana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4667, 9, 'Villaescobedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4668, 9, 'Villaescusa Butron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4669, 9, 'Villaescusa Solana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4670, 9, 'Villalambrus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4671, 9, 'Villalbilla Sobresierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4672, 9, 'Villalibado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4673, 9, 'Villalta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4674, 9, 'Villalval'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4675, 9, 'Villamagrin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4676, 9, 'Villamediana Lomas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4677, 9, 'Villamezan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4678, 9, 'Villamoron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4679, 9, 'Villamudria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4680, 9, 'Villanueva Rosales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4681, 9, 'Villanueva Carrales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4682, 9, 'Villanueva Rampalay'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4683, 9, 'Villaran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4684, 9, 'Villasopliz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4685, 9, 'Villataras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4686, 9, 'Villota Junta Villalba Losa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4687, 9, 'Virues'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4688, 9, 'Zaballa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4689, 9, 'Las Quintanillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4690, 9, 'Cibasan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4691, 9, 'Dospueblos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4692, 9, 'Monte Mata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4693, 9, 'Trespueblos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4694, 9, 'Villafria San Zadornil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4695, 9, 'Villacomparada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4696, 9, 'Betarres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4697, 9, 'Casanova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4698, 9, 'Parayuelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4699, 9, 'San Juan Capital'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4700, 9, 'Sopea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4701, 9, 'Nava de Mena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4702, 9, 'Maltranilla de Mena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4703, 9, 'Condado de Valdivielso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4704, 9, 'Ventas de Armentia(Condado de Trevio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4705, 9, 'Valle de Mena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4706, 9, 'Las Hormazas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4707, 9, 'Los Ausines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4708, 9, 'Ciella de Valle de Mena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4709, 9, 'Araduenga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4710, 10, 'Albala del Caudillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4711, 10, 'Alcantara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4712, 10, 'Alcuescar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4713, 10, 'Aldea del Cano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4714, 10, 'Aldeanueva del Camino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4715, 10, 'Aldeanueva de la Vera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4716, 10, 'Aliseda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4717, 10, 'Almaraz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4718, 10, 'Arroyo de la Luz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4719, 10, 'Baos de Montemayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4720, 10, 'Caceres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4721, 10, 'Brozas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4722, 10, 'Caaveral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4723, 10, 'Casar de Caceres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4724, 10, 'Casas de Don Antonio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4725, 10, 'Casas de Millan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4726, 10, 'Casatejada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4727, 10, 'Coria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4728, 10, 'Cuacos de Yuste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4729, 10, 'Garganta la Olla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4730, 10, 'Garrovillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4731, 10, 'El Gordo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4732, 10, 'Guijo de Santa Barbara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4733, 10, 'Herguijuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4734, 10, 'Hervas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4735, 10, 'Herreruela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4736, 10, 'Jaraicejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4737, 10, 'Jaraiz de la Vera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4738, 10, 'Jarandilla de la Vera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4739, 10, 'Logrosan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4740, 10, 'Losar de la Vera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4741, 10, 'Madrigal de la Vera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4742, 10, 'Madroera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4743, 10, 'Malpartida Caceres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4744, 10, 'Malpartida de Plasencia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4745, 10, 'Membrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4746, 10, 'Miajadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4747, 10, 'Montanchez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4748, 10, 'Navalmoral de la Mata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4749, 10, 'Navas del Madroo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4750, 10, 'Oliva de Plasencia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4751, 10, 'Peraleda de la Mata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4752, 10, 'Plasencia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4753, 10, 'Salorino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4754, 10, 'Saucedilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4755, 10, 'Sierra de Fuentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4756, 10, 'Talaveruela de la Vera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4757, 10, 'Torrejoncillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4758, 10, 'Trujillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4759, 10, 'Valencia de Alcantara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4760, 10, 'Valverde de la Vera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4761, 10, 'Viandar de la Vera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4762, 10, 'Villar de Plasencia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4763, 10, 'Zorita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4764, 10, 'Villanueva Vera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4765, 10, 'Pasaron de la Vera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4766, 10, 'Guadalupe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4767, 10, 'Caamero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4768, 10, 'La Garganta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4769, 10, 'Mirabel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4770, 10, 'Serradilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4771, 10, 'Talayuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4772, 10, 'Hoyos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4773, 10, 'Moraleja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4774, 10, 'Perales del Puerto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4775, 10, 'La Cumbre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4776, 10, 'Deleitosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4777, 10, 'Hinojal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4778, 10, 'Monroy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4779, 10, 'Santiago del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4780, 10, 'Talavan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4781, 10, 'Cabezuela del Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4782, 10, 'Casas del Castaar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4783, 10, 'Jerte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4784, 10, 'Navaconcejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4785, 10, 'Tornavacas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4786, 10, 'Arroyomolinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4787, 10, 'Valdesalor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4788, 10, 'Aldeacentenera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4789, 10, 'Torrecillas de la Tiesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4790, 10, 'Madrigalejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4791, 10, 'Tejeda de Tietar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4792, 10, 'Montehermoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4793, 10, 'Valdelacasa de Tajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4794, 10, 'Villar del Pedroso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4795, 10, 'Ahigal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4796, 10, 'Guijo de Granadilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4797, 10, 'Arroyomolinos de la Vera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4798, 10, 'Santibaez Bajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4799, 10, 'Alia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4800, 10, 'Ibahernando'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4801, 10, 'Puerto Santa Cruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4802, 10, 'Santa Cruz de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4803, 10, 'Escurial'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4804, 10, 'Valdefuentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4805, 10, 'Torremocha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4806, 10, 'Guijo de Coria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4807, 10, 'Guijo de Galisteo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4808, 10, 'Villanueva de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4809, 10, 'Villa del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4810, 10, 'Garciaz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4811, 10, 'Pozuelo de Zarzon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4812, 10, 'Majadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4813, 10, 'Santiago Alcantara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4814, 10, 'Conquista de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4815, 10, 'Abadia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4816, 10, 'La Granja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4817, 10, 'Zarza de Granadilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4818, 10, 'Almoharin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4819, 10, 'Torre de Santa Maria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4820, 10, 'Valdemorales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4821, 10, 'Galisteo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4822, 10, 'Estorninos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4823, 10, 'Mata de Alcantara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4824, 10, 'Villa del Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4825, 10, 'Acehuche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4826, 10, 'Ceclavin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4827, 10, 'Piedras Albas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4828, 10, 'Zarza la Mayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4829, 10, 'Barrado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4830, 10, 'Garguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4831, 10, 'Rebollar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4832, 10, 'El Torno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4833, 10, 'Cabrero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4834, 10, 'Piornal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4835, 10, 'Valdastillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4836, 10, 'Torreorgaz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4837, 10, 'Torrequemada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4838, 10, 'Villamesias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4839, 10, 'Cilleros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4840, 10, 'San Martin de Trevejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4841, 10, 'Villamiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4842, 10, 'Acebo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4843, 10, 'Eljas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4844, 10, 'Valverde Fresno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4845, 10, 'Belvis de Monroy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4846, 10, 'Bohonal de Ibor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4847, 10, 'Casas de Belvis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4848, 10, 'Mesas de Ibor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4849, 10, 'Millanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4850, 10, 'Castaar de Ibor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4851, 10, 'Fresnedoso de Ibor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4852, 10, 'Navalvillar de Ibor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4853, 10, 'Peraleda de San Roman'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4854, 10, 'Torremenga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4855, 10, 'Serrejon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4856, 10, 'Carrascalejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4857, 10, 'Valdehuncar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4858, 10, 'Casas de Miravete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4859, 10, 'Higuera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4860, 10, 'Romangordo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4861, 10, 'Holguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4862, 10, 'Riolobos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4863, 10, 'Plasenzuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4864, 10, 'Robledillo de Trujillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4865, 10, 'Salvatierra de Santiago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4866, 10, 'Cedillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4867, 10, 'Herrera de Alcantara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4868, 10, 'Carcaboso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4869, 10, 'Valdeobispo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4870, 10, 'Torrejon El Rubio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4871, 10, 'Botija'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4872, 10, 'Zarza de Montanchez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4873, 10, 'Aceituna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4874, 10, 'Pedroso de Acim'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4875, 10, 'Benquerencia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4876, 10, 'Ruanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4877, 10, 'Santa Ana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4878, 10, 'Gargantilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4879, 10, 'Calzadilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4880, 10, 'Casas de Don Gomez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4881, 10, 'Casillas de Coria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4882, 10, 'Pescueza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4883, 10, 'Portaje'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4884, 10, 'Portezuelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4885, 10, 'Toril'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4886, 10, 'Cadalso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4887, 10, 'Gata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4888, 10, 'Santibaez El Alto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4889, 10, 'Torre de Don Miguel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4890, 10, 'Villasbuenas de Gata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4891, 10, 'Hernan-Perez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4892, 10, 'Santa Cruz de Paniagua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4893, 10, 'Torrecilla de Los Angeles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4894, 10, 'Abertura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4895, 10, 'Alcollarin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4896, 10, 'Campo Lugar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4897, 10, 'Grimaldo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4898, 10, 'Berzocana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4899, 10, 'Navezuelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4900, 10, 'Robledillo de la Vera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4901, 10, 'Morcillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4902, 10, 'Casar de Palomero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4903, 10, 'Cerezo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4904, 10, 'Marchagaz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4905, 10, 'Mohedas de Granadilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4906, 10, 'Palomero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4907, 10, 'La Pesga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4908, 10, 'Cabezabellosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4909, 10, 'Casas del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4910, 10, 'Santa Marta Magasca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4911, 10, 'Collado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4912, 10, 'Caminomorisco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4913, 10, 'Casares de Las Hurdes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4914, 10, 'Nuomoral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4915, 10, 'Pinofranqueado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4916, 10, 'Vegas de Coria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4917, 10, 'Carbajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4918, 10, 'Huelaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4919, 10, 'Descargamaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4920, 10, 'Robledillo de Gata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4921, 10, 'Valdecaas de Tajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4922, 10, 'Jarilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4923, 10, 'Aldea del Obispo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4924, 10, 'Berrocalejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4925, 10, 'Navatrasierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4926, 10, 'Segura de Toro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4927, 10, 'Aldehuela de Jerte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4928, 10, 'Cabezo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4929, 10, 'Ladrillar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4930, 10, 'Las Mestas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4931, 10, 'Cachorrilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4932, 10, 'La Calera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4933, 10, 'Campillo de Deleitosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4934, 10, 'Garvin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4935, 10, 'Cabaas del Castillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4936, 10, 'Retamosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4937, 10, 'Robledollano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4938, 10, 'Roturas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4939, 10, 'Solana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4940, 10, 'Fragosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4941, 10, 'La Moheda de Gata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4942, 10, 'Rincon del Obispo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4943, 10, 'Alagon -Galisteo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4944, 10, 'Valdeiigos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4945, 10, 'Rincon de Ballesteros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4946, 10, 'Vegaviana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4947, 10, 'Horcajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4948, 10, 'Vega de Mesillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4949, 10, 'Azabal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4950, 10, 'Rivera Oveja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4951, 10, 'Barquilla de Pinares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4952, 10, 'Tietar del Caudillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4953, 10, 'Pueblonuevo de Miramontes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4954, 10, 'Rosalejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4955, 10, 'Las Huertas de Cansa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4956, 10, 'Palazuelo-Empalme'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4957, 10, 'Santa Maria de Las Lomas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4958, 10, 'Pizarro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4959, 10, 'Estacion de Arroyo-Malpartida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4960, 10, 'Pago de San Clemente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4961, 10, 'Fernando V'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4962, 10, 'Aceitunilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4963, 10, 'Asegur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4964, 10, 'Rubiaco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4965, 10, 'Casar de Miajadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4966, 10, 'Cambroncino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4967, 10, 'El Bronco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4968, 10, 'Centro Militar Santa Ana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4969, 10, 'Belen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4970, 10, 'Huertas de la Magdalena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4971, 10, 'San Gil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4972, 10, 'Valdencin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4973, 10, 'El Batan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4974, 10, 'Cerezal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4975, 10, 'Pajares de la Rivera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4976, 10, 'Pradochano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4977, 10, 'Valderrosas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4978, 10, 'Valrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4979, 10, 'Puebla de Argeme'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4980, 10, 'Trevejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4981, 10, 'La Borrega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4982, 10, 'Alcorneo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4983, 10, 'Las Casias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4984, 10, 'Jola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4985, 10, 'Las Lanchuelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4986, 10, 'El Pino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4987, 10, 'Puerto Roque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4988, 10, 'San Pedro de Los Majarretes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4989, 10, 'Pedro-Muoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4990, 10, 'Aldehuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4991, 10, 'Carabusino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4992, 10, 'Castillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4993, 10, 'El Gasco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4994, 10, 'Huetre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4995, 10, 'Ovejuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4996, 10, 'Robledo -Casares Hurdes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4997, 10, 'Sauceda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4998, 10, 'Arrolobos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (4999, 10, 'Avellanar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5000, 10, 'Cambron'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5001, 10, 'Casarrubia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5002, 10, 'El Corchero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5003, 10, 'Dehesilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5004, 10, 'Erias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5005, 10, 'La Fontaera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5006, 10, 'Heras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5007, 10, 'Huerta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5008, 10, 'Martilandran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5009, 10, 'Mesegal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5010, 10, 'Muela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5011, 10, 'Riomalo de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5012, 10, 'Riomalo de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5013, 10, 'Robledo -Pinofranqueado-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5014, 10, 'Almansa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5015, 10, 'Almendral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5016, 10, 'Alonso de Ojeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5017, 10, 'Arco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5018, 10, 'Atalaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5019, 10, 'Atoquedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5020, 10, 'Avarientos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5021, 10, 'Baldio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5022, 10, 'La Barquilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5023, 10, 'La Bazagona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5024, 10, 'Acea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5025, 10, 'Caadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5026, 10, 'Casablanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5027, 10, 'El Centenillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5028, 10, 'La Estacion -Caaveral-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5029, 10, 'Fuente del Sapo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5030, 10, 'Estacion Ferrocarril'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5031, 10, 'Guadisa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5032, 10, 'Haza de la Concepcion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5033, 10, 'La Herguijuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5034, 10, 'Jarilla del Sur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5035, 10, 'Lomas del Medio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5036, 10, 'Lomas del Poniente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5037, 10, 'Lomas del Saliente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5038, 10, 'Malladas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5039, 10, 'La Mata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5040, 10, 'Maulique'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5041, 10, 'Mirabel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5042, 10, 'Pantano de Cijara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5043, 10, 'Pantano de Gabriel Y Galan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5044, 10, 'Pantano de Navabuena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5045, 10, 'Parrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5046, 10, 'Pedrizas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5047, 10, 'La Perala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5048, 10, 'Pob.Perm. Hidroelect. Espaola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5049, 10, 'Poligono Industrial Aldea Moret'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5050, 10, 'Poligono Industrial Capellanias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5051, 10, 'Poligono Industrial Casar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5052, 10, 'Poligono Industrial Campo Arauelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5053, 10, 'Poligono Industrial Miajadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5054, 10, 'Poligono Industrial Plasencia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5055, 10, 'Porciones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5056, 10, 'La Quinta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5057, 10, 'El Rincon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5058, 10, 'El Robledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5059, 10, 'Rozacorderos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5060, 10, 'Salto Cedillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5061, 10, 'Salto de Torrejon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5062, 10, 'Sartalejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5063, 10, 'Solana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5064, 10, 'El Soto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5065, 10, 'Teso Moreno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5066, 10, 'Urbanizacion Monte Casar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5067, 10, 'Urbanizacion Vias Mata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5068, 10, 'Urdimalas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5069, 10, 'Valdemoreno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5070, 10, 'Valrio -Montehermoso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5071, 10, 'Villarreal de San Carlos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5072, 10, 'Viuelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5073, 10, 'La Miera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5074, 10, 'Casias Bajas Las'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5075, 10, 'Palazuelo-Empalme'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5076, 10, 'Las Capellanias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5077, 10, 'Zafrilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5078, 10, 'Mae Mae'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5079, 10, 'Palacio Blanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5080, 10, 'La Calera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5081, 10, '9999'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5082, 11, 'Alcala de Los Gazules'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5083, 11, 'Algeciras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5084, 11, 'Algodonales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5085, 11, 'Arcos de la Frontera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5086, 11, 'Barbate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5087, 11, 'Los Barrios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5088, 11, 'Bonanza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5089, 11, 'Bornos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5090, 11, 'Cadiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5091, 11, 'Campano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5092, 11, 'Zahara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5093, 11, 'Conil de la Frontera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5094, 11, 'Chiclana de la Frontera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5095, 11, 'Chipiona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5096, 11, 'Facinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5097, 11, 'Jerez de la Frontera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5098, 11, 'Grazalema'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5099, 11, 'Guadiaro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5100, 11, 'Jimena de la Frontera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5101, 11, 'Estacion Jimena de la Frontera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5102, 11, 'La Linea de la Concepcion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5103, 11, 'Medina-Sidonia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5104, 11, 'Olvera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5105, 11, 'Paterna de Rivera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5106, 11, 'El Pelayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5107, 11, 'Prado del Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5108, 11, 'Puerto Real'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5109, 11, 'El Puerto de Santa Maria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5110, 11, 'Rota'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5111, 11, 'Sanlucar de Barrameda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5112, 11, 'San Fernando'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5113, 11, 'San Martin del Tesorillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5114, 11, 'Estacion Ferrea -San Roque-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5115, 11, 'San Roque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5116, 11, 'Sancti Petri-La Barrosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5117, 11, 'Tarifa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5118, 11, 'Ubrique'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5119, 11, 'Vejer de la Frontera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5120, 11, 'Villamartin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5121, 11, 'Alcala del Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5122, 11, 'Setenil de Las Bodegas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5123, 11, 'Torre Alhaquime'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5124, 11, 'Trebujena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5125, 11, 'Benalup'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5126, 11, 'El Gastor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5127, 11, 'Zahara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5128, 11, 'Algar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5129, 11, 'Espera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5130, 11, 'San Jose del Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5131, 11, 'Villaluenga del Rosario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5132, 11, 'El Bosque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5133, 11, 'Benaocaz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5134, 11, 'Valdelagrana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5135, 11, 'Puerto Serrano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5136, 11, 'San Pablo de Buceite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5137, 11, 'La Barca de la Florida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5138, 11, 'Estella del Marques'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5139, 11, 'Jose Antonio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5140, 11, 'San Isidro del Guadalete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5141, 11, 'El Torno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5142, 11, 'Torrecera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5143, 11, 'Guadalcacin del Caudillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5144, 11, 'Nueva Jarilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5145, 11, 'Benamahoma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5146, 11, 'Tahivilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5147, 11, 'Coto de Bornos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5148, 11, 'La Muela -Algodonales-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5149, 11, 'Gaidovar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5150, 11, 'Almoraima'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5151, 11, 'Sotogrande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5152, 11, 'Campamento'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5153, 11, 'Malcocinado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5154, 11, 'Zahara de Los Atunes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5155, 11, 'Arroyomolinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5156, 11, 'Jedula'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5157, 11, 'Carteya-Guadarranque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5158, 11, 'Ventas Nuevas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5159, 11, 'Doa Blanca-Poblado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5160, 11, 'El Puerto de Santa Maria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5161, 11, 'Base Naval'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5162, 11, 'Castellar de la Frontera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5163, 11, 'La Algaida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5164, 11, 'Jarana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5165, 11, 'El Portal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5166, 11, 'El Almarchal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5167, 11, 'La Zarzuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5168, 11, 'La Ina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5169, 11, 'Palmones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5170, 11, 'Los Naveros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5171, 11, 'La Barca-Vejer de la Frontera-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5172, 11, 'Los Caos de Meca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5173, 11, 'La Cartuja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5174, 11, 'Casa de Postas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5175, 11, 'Getares-San Garcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5176, 11, 'Las Lomas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5177, 11, 'La Muela-Vejer de la Frontera-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5178, 11, 'El Palomar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5179, 11, 'La Parra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5180, 11, 'Roche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5181, 11, 'Pozo Amargo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5182, 11, 'Montealegre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5183, 11, 'Los Badalejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5184, 11, 'Betis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5185, 11, 'Casas de Porro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5186, 11, 'El Chaparral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5187, 11, 'El Lentiscal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5188, 11, 'Realillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5189, 11, 'Bolonia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5190, 11, 'Paloma Baja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5191, 11, 'Setenil Efc'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5192, 11, 'Santa Lucia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5193, 11, 'El Palmar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5194, 11, 'Campamento'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5195, 11, 'Rio San Pedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5196, 11, 'Taraguilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5197, 11, 'Puente Mayorga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5198, 11, 'San Enrique'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5199, 11, 'Torreguadiaro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5200, 11, 'Carteya-Guadarranque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5201, 11, 'Pueblo Nuevo de Guadiaro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5202, 11, 'Cantarranas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5203, 11, 'El Caal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5204, 11, 'Jandilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5205, 11, 'Siduea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5206, 11, 'Gibalbin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5207, 11, 'Mesas de Asta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5208, 11, 'Los Llanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5209, 11, 'Los Repastaderos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5210, 11, 'Las Tablas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5211, 11, 'La Oliva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5212, 11, 'La Barrosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5213, 11, 'Cortijo la Mesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5214, 11, 'Pago del Humo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5215, 11, 'Urbanizacion San Andres Golf'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5216, 11, 'Almajar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5217, 11, 'Balbaina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5218, 11, 'Coto de la Isleta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5219, 11, 'Garaina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5220, 11, 'Las Nieves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5221, 11, 'San Ignacio-Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5222, 11, 'Serrano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5223, 11, 'Sierra San Cristobal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5224, 11, 'Vallealto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5225, 11, 'Barriada Meadero de la Reina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5226, 11, 'San Jose del Pedroso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5227, 11, 'Base Naval'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5228, 11, 'El Bercial'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5229, 11, 'La Mata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5230, 11, 'Rincones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5231, 11, 'Arsenal de la Carraca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5232, 11, 'Cortijillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5233, 11, 'Estacion Ferrea -Los Barrios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5234, 11, 'La Polvorilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5235, 11, 'Guadacorte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5236, 11, 'Termino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5237, 11, 'Zabal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5238, 11, 'San Diego -San Roque-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5239, 11, 'Castillo de Castellar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5240, 11, 'El Alamillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5241, 11, 'El Bujeo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5242, 11, 'Las Caheruelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5243, 11, 'Caada de la Jara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5244, 11, 'La Costa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5245, 11, 'La Herrumbrosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5246, 11, 'Pedro Valiente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5247, 11, 'La Pea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5248, 11, 'Las Pias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5249, 11, 'El Pulido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5250, 11, 'El Cuarton'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5251, 11, 'Los Zorrillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5252, 11, 'Aina-Polila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5253, 11, 'Cuartillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5254, 11, 'Lomopardo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5255, 11, 'Macharnudo Alto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5256, 11, 'Solete Alto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5257, 11, 'Torre Melgarejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5258, 11, 'Alcornocalejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5259, 11, 'Casablanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5260, 11, 'Fuente del Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5261, 11, 'Los Isletes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5262, 11, 'Torrecera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5263, 11, 'Abrajanejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5264, 11, 'Los Barrancos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5265, 11, 'Concejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5266, 11, 'El Drago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5267, 11, 'Fuensanta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5268, 11, 'La Garrapata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5269, 11, 'El Guijo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5270, 11, 'La Sierpe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5271, 11, 'Toronjil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5272, 11, 'Vallejas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5273, 11, 'Vega de Los Molinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5274, 11, 'El Yugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5275, 11, 'Los Hurones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5276, 11, 'Dehesilla de Algar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5277, 11, 'La Jarda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5278, 11, 'La Cierva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5279, 11, 'Ermita de Las Montaas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5280, 11, 'Manzanete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5281, 11, 'Ribera de la Oliva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5282, 11, 'San Ambrosio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5283, 11, 'Sierra del Retin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5284, 11, 'El Soto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5285, 11, 'Zahora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5286, 11, 'Barrio Nuevo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5287, 11, 'Roche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5288, 11, 'Urbanizacion Atlanterra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5289, 11, 'Montecote'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5290, 11, 'Najara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5291, 11, 'Los Parralejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5292, 11, 'Patria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5293, 11, 'La Caada del Rosal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5294, 11, 'Las Cobatillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5295, 11, 'El Esparragal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5296, 11, 'Fraja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5297, 11, 'Jautor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5298, 11, 'Los Larios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5299, 11, 'Pagana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5300, 11, 'Patrite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5301, 11, 'Porquerizas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5302, 11, 'Los Alburejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5303, 11, 'La Canaleja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5304, 11, 'Cucarrete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5305, 11, 'Charco Dulce'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5306, 11, 'Los Hardales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5307, 11, 'Huelvacar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5308, 11, 'Arenal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5309, 11, 'Campo-Huerta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5310, 11, 'Fuente Alta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5311, 11, 'Los Juncales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5312, 11, 'Madrigueras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5313, 11, 'La Nava Y Lapa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5314, 11, 'Arroyo Molino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5315, 11, 'Era de la Via'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5316, 11, 'El Jaral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5317, 11, 'Cabaas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5318, 11, 'Guadamanil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5319, 11, 'Lijar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5320, 11, 'La Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5321, 11, 'Valle Hermoso Alto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5322, 11, 'Valle Hermoso Bajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5323, 11, 'Zaframagon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5324, 11, 'Venta de Leche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5325, 11, 'Bocaleones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5326, 11, 'Las Casas -Zahara-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5327, 11, 'Cabeza Gorda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5328, 11, 'El Romero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5329, 11, 'Montenegral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5330, 11, 'Puerto Sotogrande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5331, 11, 'Tres Caminos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5332, 11, 'Chorruelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5333, 11, 'Zanona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5334, 11, 'La Ballena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5335, 11, 'Barriada de Fatima -Espera-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5336, 11, 'Nuestra Seora Santos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5337, 11, 'La Alcaidesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5338, 11, 'San Roque Golf'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5339, 11, 'Las Algamitas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5340, 11, 'Montecastillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5341, 11, 'La Perdiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5342, 11, 'Arcos de la Frontera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5343, 11, 'Arcos de la Frontera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5344, 11, 'La Pedrosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5345, 11, 'Baldio Cuerpo Hombre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5346, 11, 'Baldio Gallardo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5347, 11, 'Las Brevas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5348, 11, 'Caada Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5349, 11, 'Marchenilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5350, 11, 'La Marroquina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5351, 11, 'Los Pinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5352, 11, 'Puente la Guarea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5353, 11, 'Puerto Parada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5354, 11, 'Barriada Rajamancera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5355, 11, 'Sambana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5356, 11, 'Pago Majales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5357, 11, 'Vega de Los Molinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5358, 11, 'El Mojo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5359, 11, 'Algar Vejer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5360, 11, 'Barriada Chacona -Jarana-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5361, 11, 'Complejo Penitenciario El Puerto Santa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5362, 11, 'El Marquesado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5363, 11, 'Base Naval'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5364, 11, 'San Jose Obrero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5365, 11, 'Poblacion San Carlos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5366, 11, 'Benzu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5367, 11, 'Ceuta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5368, 12, 'Albocacer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5369, 12, 'Alcala de Xivert'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5370, 12, 'Alcossebre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5371, 12, 'L''alcora-Alcora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5372, 12, 'Almazora-Almassora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5373, 12, 'Almenara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5374, 12, 'Altura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5375, 12, 'Ares del Maestre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5376, 12, 'Betxi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5377, 12, 'Benasal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5378, 12, 'Benicarlo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5379, 12, 'Benicasim-Benicassim'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5380, 12, 'Burriana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5381, 12, 'Canet Lo Roig'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5382, 12, 'Castellfort'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5383, 12, 'Castellnovo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5384, 12, 'Castellon de la Plana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5385, 12, 'Cinctorres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5386, 12, 'Les Coves de Vinroma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5387, 12, 'Culla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5388, 12, 'Chert-Xert'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5389, 12, 'Chilches'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5390, 12, 'Figueroles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5391, 12, 'Geldo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5392, 12, 'La Jana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5393, 12, 'Jerica'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5394, 12, 'Lucena del Cid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5395, 12, 'La Llosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5396, 12, 'Moncofa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5397, 12, 'Morella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5398, 12, 'Navajas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5399, 12, 'Nules'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5400, 12, 'Onda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5401, 12, 'Oropesa del Mar-Orpesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5402, 12, 'Portell de Morella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5403, 12, 'El Port de Burriana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5404, 12, 'Rossell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5405, 12, 'La Salzadella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5406, 12, 'Peiscola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5407, 12, 'San Jorge'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5408, 12, 'Sant Mateu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5409, 12, 'Santa Magdalena Pulpis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5410, 12, 'Segorbe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5411, 12, 'Soneja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5412, 12, 'Torreblanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5413, 12, 'Traiguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5414, 12, 'La Vall D''uixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5415, 12, 'Villafranca del Cid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5416, 12, 'Vilar de Canes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5417, 12, 'Villarreal-Vila-Real'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5418, 12, 'Villavieja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5419, 12, 'Vinaros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5420, 12, 'Viver'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5421, 12, 'Tales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5422, 12, 'Sueras-Suera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5423, 12, 'Tirig'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5424, 12, 'Artana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5425, 12, 'Eslida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5426, 12, 'Ribesalbes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5427, 12, 'Sot de Ferrer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5428, 12, 'Calig'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5429, 12, 'Cervera del Maestre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5430, 12, 'Forcall'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5431, 12, 'Atzeneta del Maestrat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5432, 12, 'Benafigos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5433, 12, 'Costur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5434, 12, 'Useras-Les Useres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5435, 12, 'Vistabella del Maestrazgo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5436, 12, 'Benlloch'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5437, 12, 'Borriol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5438, 12, 'Cabanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5439, 12, 'La Pobla Tornesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5440, 12, 'Torre Endomenech'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5441, 12, 'Vall D''alba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5442, 12, 'Vilafames'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5443, 12, 'Vilanova D''alcolea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5444, 12, 'Alfondeguilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5445, 12, 'Gatova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5446, 12, 'Arauel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5447, 12, 'Benafer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5448, 12, 'Caudiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5449, 12, 'Cirat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5450, 12, 'Montan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5451, 12, 'Montanejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5452, 12, 'Puebla de Arenoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5453, 12, 'Chodos-Xodos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5454, 12, 'Sant Joan de Moro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5455, 12, 'La Torre D''en Besora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5456, 12, 'Algimia de Almonacid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5457, 12, 'Almedijar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5458, 12, 'Azuebar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5459, 12, 'Bejis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5460, 12, 'Chovar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5461, 12, 'Fuente la Reina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5462, 12, 'Gaibiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5463, 12, 'Matet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5464, 12, 'Pealva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5465, 12, 'Pina de Montalgrao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5466, 12, 'Sacaet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5467, 12, 'Teresa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5468, 12, 'Toras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5469, 12, 'Villanueva de Viver'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5470, 12, 'Castillo de Villamalefa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5471, 12, 'Cati'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5472, 12, 'Cortes de Arenoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5473, 12, 'Ludiente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5474, 12, 'San Vicente-Cortes de Arenoso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5475, 12, 'Villahermosa del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5476, 12, 'Zucaina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5477, 12, 'El Toro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5478, 12, 'El Grao -Moncofa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5479, 12, 'Sarratella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5480, 12, 'Sierra Engarceran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5481, 12, 'Ayodar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5482, 12, 'Fuentes de Ayodar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5483, 12, 'Villamalur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5484, 12, 'Ain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5485, 12, 'Alcudia de Veo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5486, 12, 'Torralba del Pinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5487, 12, 'Barracas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5488, 12, 'Vall de Almonacid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5489, 12, 'Xiva de Morella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5490, 12, 'Villores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5491, 12, 'La Mata de Morella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5492, 12, 'Higueras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5493, 12, 'Pavias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5494, 12, 'Castell de Cabres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5495, 12, 'Corachar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5496, 12, 'Toga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5497, 12, 'Vallat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5498, 12, 'Argelita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5499, 12, 'Fanzara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5500, 12, 'Espadilla'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5501, 12, 'La Pobla de Benifassa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5502, 12, 'Campos Arenoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5503, 12, 'Ballestar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5504, 12, 'Boixar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5505, 12, 'Herbes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5506, 12, 'Zorita del Maestrazgo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5507, 12, 'Olocau del Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5508, 12, 'Todolella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5509, 12, 'Ortells'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5510, 12, 'Palanques'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5511, 12, 'Fredes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5512, 12, 'Vallibona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5513, 12, 'Torrechiva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5514, 12, 'Araya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5515, 12, 'Els Ibarsos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5516, 12, 'Artesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5517, 12, 'Los Calpes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5518, 12, 'Ermita San Jose'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5519, 12, 'Fuente San Jose'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5520, 12, 'Fuente En-Segures'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5521, 12, 'Giraba de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5522, 12, 'Masia Pla de Lluch'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5523, 12, 'El Tormo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5524, 12, 'Veo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5525, 12, 'Torrenostra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5526, 12, 'La Alqueria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5527, 12, 'Grupo Perpetuo Socorro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5528, 12, 'Cedraman'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5529, 12, 'Novaliches'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5530, 12, 'El Empalme'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5531, 12, 'Torre la Sal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5532, 12, 'Bel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5533, 12, 'La Foya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5534, 12, 'Els Rosildos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5535, 12, 'Playa Benafeli'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5536, 12, 'La Playa de la Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5537, 12, 'Santuario Balma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5538, 12, 'La Avella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5539, 12, 'Vallivana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5540, 12, 'Masada del Sordo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5541, 12, 'Playa de Nules'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5542, 12, 'Grao de Castellon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5543, 12, 'Ventorrillo El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5544, 12, 'Pla del Sabater'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5545, 12, 'Monllat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5546, 12, 'Sales de Matella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5547, 12, 'Pulido El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5548, 12, 'Las Crevadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5549, 12, 'Rios de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5550, 12, 'Canales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5551, 12, 'Anroig'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5552, 12, 'La Baseta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5553, 12, 'Barrio-Mar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5554, 12, 'Casablanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5555, 12, 'San Rafael del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5556, 12, 'Urb. L''abeller'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5557, 12, 'Aguas Blancas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5558, 12, 'Els Albaches'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5559, 12, 'El Albadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5560, 12, 'Las Alboredas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5561, 12, 'El Alga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5562, 12, 'Almedijar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5563, 12, 'Alquerias del Nio Perdido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5564, 12, 'Alquerias Santa Barbara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5565, 12, 'Alquerias Valencia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5566, 12, 'Les Amplaries'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5567, 12, 'Los Angeles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5568, 12, 'Apeadero de Bechi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5569, 12, 'Arteas de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5570, 12, 'La Artejuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5571, 12, 'Las Artesas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5572, 12, 'Artiguillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5573, 12, 'Atalayas-Valdancher'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5574, 12, 'Azafranares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5575, 12, 'El Bancal Roig'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5576, 12, 'La Barona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5577, 12, 'El Barranco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5578, 12, 'Barranquet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5579, 12, 'Basa Ensaera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5580, 12, 'La Basa Povils'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5581, 12, 'La Basanova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5582, 12, 'Benachera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5583, 12, 'Benasques'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5584, 12, 'Benitandus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5585, 12, 'Berola de Grau'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5586, 12, 'La Vespa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5587, 12, 'Bibioj'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5588, 12, 'La Bodega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5589, 12, 'La Boneta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5590, 12, 'El Borseral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5591, 12, 'El Bosque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5592, 12, 'Bovalar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5593, 12, 'Bovalar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5594, 12, 'Bovalar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5595, 12, 'El Brusalet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5596, 12, 'El Cabezo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5597, 12, 'La Calzada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5598, 12, 'El Cambrel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5599, 12, 'Campas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5600, 12, 'Canet Capt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5601, 12, 'Los Cantos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5602, 12, 'La Caada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5603, 12, 'El Cauelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5604, 12, 'Cap de Roure'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5605, 12, 'Cap Terme'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5606, 12, 'Cap de Terme -Atzeneta-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5607, 12, 'Capicorp'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5608, 12, 'El Carbo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5609, 12, 'Cariena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5610, 12, 'Casa Iserte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5611, 12, 'Casa Negra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5612, 12, 'Casetes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5613, 12, 'Les Casetes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5614, 12, 'El Castell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5615, 12, 'Castellons'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5616, 12, 'Censal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5617, 12, 'Les Cloches del Sort'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5618, 12, 'Codina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5619, 12, 'Coll D''ares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5620, 12, 'Coll de Rualda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5621, 12, 'El Colladillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5622, 12, 'El Collado Blanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5623, 12, 'Los Collados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5624, 12, 'Urb. la Coma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5625, 12, 'Convento'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5626, 12, 'Convento del Carmen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5627, 12, 'Corbo de Baix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5628, 12, 'Corbo D''alt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5629, 12, 'El Corral Era'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5630, 12, 'El Corral de la Ombria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5631, 12, 'Coscollosa Zafra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5632, 12, 'Coto Arrocero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5633, 12, 'Cuartico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5634, 12, 'La Cueva Santa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5635, 12, 'La Chirivilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5636, 12, 'Chisquerol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5637, 12, 'El Chorrico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5638, 12, 'La Dehesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5639, 12, 'Desierto de Las Palmas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5640, 12, 'Les Deveses'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5641, 12, 'Els Dumenches'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5642, 12, 'La Ermita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5643, 12, 'Les Ermites'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5644, 12, 'El Ermitorio San Miguel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5645, 12, 'La Esperanza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5646, 12, 'La Estacion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5647, 12, 'Estacion La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5648, 12, 'Venta de San Antonio-Estacion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5649, 12, 'La Estacion Ferrocarril'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5650, 12, 'Estepar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5651, 12, 'Extramuros Geldo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5652, 12, 'La Fabrica de Giner'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5653, 12, 'Fadrell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5654, 12, 'El Figueral Polo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5655, 12, 'Les Figueretes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5656, 12, 'Font D''en Torres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5657, 12, 'La Font de Beca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5658, 12, 'La Font Talla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5659, 12, 'La Foya Bale'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5660, 12, 'La Foya Estreta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5661, 12, 'La Foya Sabater'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5662, 12, 'Foyes D''alt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5663, 12, 'Fuente de la Salud'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5664, 12, 'Las Fuentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5665, 12, 'La Garcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5666, 12, 'Giraba de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5667, 12, 'La Granella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5668, 12, 'La Llacova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5669, 12, 'El Grevolar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5670, 12, 'Gumbau'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5671, 12, 'Herbeset'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5672, 12, 'Omblanch'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5673, 12, 'Hostal del Mestre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5674, 12, 'Hostal Nou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5675, 12, 'Hoyanado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5676, 12, 'Islas Columbretes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5677, 12, 'La Laguna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5678, 12, 'Las Lomas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5679, 12, 'Llano de la Caada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5680, 12, 'Pla de la Marquesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5681, 12, 'Les Llergueres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5682, 12, 'Els Llivis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5683, 12, 'Les Llometes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5684, 12, 'Magdalena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5685, 12, 'Marrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5686, 12, 'Mas Barranch Dels Horts'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5687, 12, 'Mas Blanch'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5688, 12, 'Mas D''albalat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5689, 12, 'Mas D''alentao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5690, 12, 'Mas D''en Chorda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5691, 12, 'Mas D''en Fabona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5692, 12, 'Mas D''en Fuster'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5693, 12, 'Mas Den Pallares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5694, 12, 'Mas Den Rieres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5695, 12, 'Mas D''estaca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5696, 12, 'Mas Aceite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5697, 12, 'Mas de Agut'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5698, 12, 'Mas D''albalat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5699, 12, 'Mas de Barrachi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5700, 12, 'Mas de Barrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5701, 12, 'Mas de Belenguer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5702, 12, 'Mas de Belladona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5703, 12, 'Mas de Calaf'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5704, 12, 'Mas de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5705, 12, 'Mas de Carretera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5706, 12, 'Mas de Castillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5707, 12, 'Mas de Catala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5708, 12, 'Mas Cervello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5709, 12, 'Mas de Cervera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5710, 12, 'Mas de Colom'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5711, 12, 'Mas de Cholito'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5712, 12, 'Mas de Domingo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5713, 12, 'Mas de Don Juan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5714, 12, 'Mas de Enqueixa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5715, 12, 'Mas Enretor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5716, 12, 'Mas de Ensavi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5717, 12, 'Mas Esteve'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5718, 12, 'Mas de Fau'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5719, 12, 'Mas de Gualet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5720, 12, 'Mas de Herrero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5721, 12, 'Mas de la Bella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5722, 12, 'Mas de la Blanqueta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5723, 12, 'Mas de la Blaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5724, 12, 'Mas de la Bolta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5725, 12, 'Mas de la Estala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5726, 12, 'Mas de la Mariana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5727, 12, 'Mas Marina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5728, 12, 'Mas de la Matisa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5729, 12, 'Mas de la Mora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5730, 12, 'Mas de la Obrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5731, 12, 'Mas de la Palanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5732, 12, 'Mas de la Pinella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5733, 12, 'Mas de la Sena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5734, 12, 'Mas de la Vall'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5735, 12, 'Mas de Les Solanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5736, 12, 'Mas de Manzano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5737, 12, 'Mas de Miralles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5738, 12, 'Mas de Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5739, 12, 'Mas de Montino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5740, 12, 'Mas de Patarrum'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5741, 12, 'Mas Roures'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5742, 12, 'Mas Roures'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5743, 12, 'Mas de Toribio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5744, 12, 'Mas de Trilles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5745, 12, 'Mas de Valenti'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5746, 12, 'Mas de Vidal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5747, 12, 'Mas del Blau'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5748, 12, 'Mas del Coll'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5749, 12, 'Mas Collet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5750, 12, 'Mas del Curro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5751, 12, 'Mas Mayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5752, 12, 'Mas Pollo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5753, 12, 'Mas del Regall'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5754, 12, 'Mas del Seco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5755, 12, 'Mas del Surco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5756, 12, 'Mas Tiricha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5757, 12, 'Mas del Ventero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5758, 12, 'Mas del Vilas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5759, 12, 'Els Bancalas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5760, 12, 'Mas Dels Calduch'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5761, 12, 'Mas Dels Chulos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5762, 12, 'Mas Dels Oms'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5763, 12, 'Mas Dels Sants'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5764, 12, 'Mas de Les Solanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5765, 12, 'Mas Roig'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5766, 12, 'Mas-Quemado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5767, 12, 'La Masadica'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5768, 12, 'Mascarell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5769, 12, 'Masdavall'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5770, 12, 'Masia Andreu de Dalt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5771, 12, 'La Coloma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5772, 12, 'Masia Costereta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5773, 12, 'Masia D''enguasch'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5774, 12, 'Mas D''abad'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5775, 12, 'Masia de Adelantado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5776, 12, 'Masia de Antoli'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5777, 12, 'Masia de Artijuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5778, 12, 'Masia Barranco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5779, 12, 'Masia de Benachera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5780, 12, 'Masia de Benicabo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5781, 12, 'La Masia de Brusca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5782, 12, 'Masia de Cabezo Royo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5783, 12, 'Masia de Cap-Blanch'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5784, 12, 'Masia de Capote'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5785, 12, 'Mas de Carruano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5786, 12, 'Masia de Cerdana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5787, 12, 'Correntilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5788, 12, 'Masia de Cucalon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5789, 12, 'Masia de Custodio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5790, 12, 'Masia de Dols'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5791, 12, 'Masia Estepar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5792, 12, 'Masia de Evaristo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5793, 12, 'Masia de Fabra Lloma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5794, 12, 'Masia de Flors'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5795, 12, 'Masia de Fuentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5796, 12, 'Masia Gargan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5797, 12, 'Masia de Gasque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5798, 12, 'Masia de Gatella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5799, 12, 'Masia de Gimeno Viejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5800, 12, 'Masia Grau'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5801, 12, 'Masia de Guardamar de Dalt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5802, 12, 'Masia de Jaime Vicente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5803, 12, 'Masia de Juncosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5804, 12, 'Masia Bartola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5805, 12, 'Masia de la Costa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5806, 12, 'Masia de la Cruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5807, 12, 'Masia de la Loma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5808, 12, 'Masia Lloma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5809, 12, 'Masia de la Llometa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5810, 12, 'Masia de la Parra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5811, 12, 'Masia la Solana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5812, 12, 'Masia de la Tejeria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5813, 12, 'Masia de la Torreta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5814, 12, 'Masia de Les Clapises'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5815, 12, 'Masia de Los Perez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5816, 12, 'Masia de Mampel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5817, 12, 'El Molinet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5818, 12, 'Masia de Mollon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5819, 12, 'Masia de Monfort'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5820, 12, 'Masia de Monlleo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5821, 12, 'Masia de Montolio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5822, 12, 'Masia de Negre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5823, 12, 'Paulo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5824, 12, 'Masia Ramia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5825, 12, 'Masia de Reduela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5826, 12, 'Masia de Roblasco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5827, 12, 'Masia del Romeo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5828, 12, 'Masia de Roque Chiva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5829, 12, 'Masia de Royo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5830, 12, 'Masia de Salvador'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5831, 12, 'Masia de San Juan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5832, 12, 'Masia Santa Maria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5833, 12, 'Masia de Segarra de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5834, 12, 'Masia de Selma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5835, 12, 'Masia Toni'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5836, 12, 'Masia de Troncho'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5837, 12, 'Masia de Uoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5838, 12, 'Masia Vilarroig'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5839, 12, 'Masia de Villalonga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5840, 12, 'Masia del Andaluz de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5841, 12, 'Masia del Andaluz de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5842, 12, 'Masia del Bale'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5843, 12, 'Masia del Corral Nou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5844, 12, 'Masia Cullero Arrufat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5845, 12, 'Masia del Hostal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5846, 12, 'Masia del Molar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5847, 12, 'Masia del Moro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5848, 12, 'Mas Dels Oms'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5849, 12, 'Masia del Plano de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5850, 12, 'Masia del Plano de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5851, 12, 'Masia del Pozo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5852, 12, 'Masia del Prado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5853, 12, 'Masia del Rano O de Ignacio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5854, 12, 'Masia del Rebollo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5855, 12, 'Masia del Rul'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5856, 12, 'Masia Salando'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5857, 12, 'Masia del Seor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5858, 12, 'Masia Bels'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5859, 12, 'Mas Dels Frares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5860, 12, 'Masia Dels Racons'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5861, 12, 'Masia El Camino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5862, 12, 'Masia El Carmelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5863, 12, 'Masia de Enramon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5864, 12, 'Masia Font Nueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5865, 12, 'Masia Magraile'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5866, 12, 'Masia Mel Pla Torreta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5867, 12, 'Masia Paredes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5868, 12, 'Masia Pati'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5869, 12, 'Mas D''en Ramona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5870, 12, 'Riu Sec'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5871, 12, 'Masia Samper'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5872, 12, 'Masia Tafol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5873, 12, 'Els Terrers Blancs'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5874, 12, 'Masia Villarrelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5875, 12, 'Masias Blancas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5876, 12, 'Masias de Parrela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5877, 12, 'Masias del Cristo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5878, 12, 'Masias del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5879, 12, 'Els Masos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5880, 12, 'Meanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5881, 12, 'Las Mezquitas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5882, 12, 'Miralcamp'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5883, 12, 'Los Molares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5884, 12, 'Moli Azor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5885, 12, 'Moli Nou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5886, 12, 'El Molinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5887, 12, 'Molinell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5888, 12, 'Molino de Matutano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5889, 12, 'Coll I Moll'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5890, 12, 'Montalba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5891, 12, 'Monteblanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5892, 12, 'Urb. Montecristina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5893, 12, 'Monte Mar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5894, 12, 'Voltans de Montornes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5895, 12, 'La Monzona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5896, 12, 'Morella la Vella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5897, 12, 'Les Mosqueres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5898, 12, 'Nuestra Seora Lledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5899, 12, 'La Ovejera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5900, 12, 'El Palasiet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5901, 12, 'Las Palmas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5902, 12, 'El Pantano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5903, 12, 'Pantano del Sichar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5904, 12, 'El Parral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5905, 12, 'La Parreta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5906, 12, 'La Parreta Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5907, 12, 'Partida Baig'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5908, 12, 'Partida Dalt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5909, 12, 'Partida de la Garrofera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5910, 12, 'Partida de Les Trahuantes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5911, 12, 'Partida Forma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5912, 12, 'Partida Tanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5913, 12, 'Partida Vilar de la Call'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5914, 12, 'Patos Catalana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5915, 12, 'La Pelechaneta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5916, 12, 'Pea Rocha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5917, 12, 'Perchet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5918, 12, 'Los Pereagustins'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5919, 12, 'El Pinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5920, 12, 'Pinella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5921, 12, 'Pla Red'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5922, 12, 'Plana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5923, 12, 'El Plano de Herrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5924, 12, 'Playa La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5925, 12, 'Playa Renega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5926, 12, 'Las Playetas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5927, 12, 'Poblados Maritimos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5928, 12, 'Posada de San Miguel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5929, 12, 'Pou de Encabaez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5930, 12, 'Pou de Encalvo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5931, 12, 'Pou del Coixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5932, 12, 'Pou Enserrans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5933, 12, 'El Povet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5934, 12, 'La Presola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5935, 12, 'El Pron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5936, 12, 'Els Puchols de Baix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5937, 12, 'Els Puchols de Dalt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5938, 12, 'La Pobla D''alcolea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5939, 12, 'Raco Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5940, 12, 'Racholar de Matilda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5941, 12, 'Rafalafena Antrilles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5942, 12, 'Rambla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5943, 12, 'Rambla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5944, 12, 'Les Ramblelles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5945, 12, 'Ramell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5946, 12, 'El Refugio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5947, 12, 'Riera La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5948, 12, 'Rio Sonella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5949, 12, 'Rios de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5950, 12, 'La Roca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5951, 12, 'Roques de Llao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5952, 12, 'Rosers'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5953, 12, 'El Salvador'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5954, 12, 'San Antonio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5955, 12, 'San Jose'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5956, 12, 'San Juan de Peagolosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5957, 12, 'San Marcos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5958, 12, 'San Pablo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5959, 12, 'San Pedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5960, 12, 'Santa Agueda San Antonio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5961, 12, 'Santa Elena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5962, 12, 'Santa Quiteria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5963, 12, 'Les Santes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5964, 12, 'El Single'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5965, 12, 'El Sol Foya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5966, 12, 'Solades'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5967, 12, 'Sotarrani'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5968, 12, 'Subarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5969, 12, 'Taxida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5970, 12, 'Teada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5971, 12, 'El Tis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5972, 12, 'Toll'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5973, 12, 'Urb. El Tomillar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5974, 12, 'Torcas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5975, 12, 'Torre de Matella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5976, 12, 'Torre San Vicente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5977, 12, 'Torre Baron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5978, 12, 'Torre-Beltran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5979, 12, 'El Tosalet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5980, 12, 'La Umbria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5981, 12, 'Venta de San Antonio-Estacion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5982, 12, 'Venta Guillamon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5983, 12, 'Venta San Vicente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5984, 12, 'Les Ventes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5985, 12, 'Els Vilarets'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5986, 12, 'Villa Lola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5987, 12, 'Villamargo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5988, 12, 'Las Villas -Benicassim-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5989, 12, 'Villatorcas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5990, 12, 'Virgen de Gracia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5991, 12, 'Playa de Chilches'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5992, 12, 'Ribera de Cabanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5993, 12, 'Alquerias del Nio Perdido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5994, 12, 'La Estacion -Almenara-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5995, 12, 'Molinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5996, 12, 'Casas del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5997, 12, 'Las Crevadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5998, 12, 'Ribera Cabanes El Empalme'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (5999, 12, 'Ribera Cabanes Playa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6000, 12, 'Grao de Castellon'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6001, 12, 'Ondara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6002, 13, 'Abenojar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6003, 13, 'Alameda de Cervera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6004, 13, 'Alcazar de San Juan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6005, 13, 'Alcolea de Calatrava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6006, 13, 'Alcubillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6007, 13, 'Aldea del Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6008, 13, 'Almaden'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6009, 13, 'Almadenejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6010, 13, 'Almagro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6011, 13, 'Almodovar del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6012, 13, 'Almuradiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6013, 13, 'Arenales de San Gregorio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6014, 13, 'Arenas de San Juan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6015, 13, 'Argamasilla de Alba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6016, 13, 'Argamasilla de Calatrava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6017, 13, 'Ballesteros de Calatrava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6018, 13, 'Bolaos de Calatrava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6019, 13, 'Brazatortas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6020, 13, 'Calzada de Calatrava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6021, 13, 'Campo de Criptana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6022, 13, 'Caada de Calatrava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6023, 13, 'Caracuel de Calatrava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6024, 13, 'Carrion de Calatrava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6025, 13, 'Castellar de Santiago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6026, 13, 'Ciudad Real'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6027, 13, 'Cinco Casas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6028, 13, 'Corral de Calatrava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6029, 13, 'Cozar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6030, 13, 'Chillon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6031, 13, 'Daimiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6032, 13, 'Fernancaballero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6033, 13, 'Fuencaliente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6034, 13, 'Fuente El Fresno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6035, 13, 'Granatula de Calatrava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6036, 13, 'Herencia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6037, 13, 'Porzuna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6038, 13, 'Villanueva de Los Infantes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6039, 13, 'Las Labores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6040, 13, 'Malagon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6041, 13, 'Manzanares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6042, 13, 'Membrilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6043, 13, 'Miguelturra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6044, 13, 'Moral de Calatrava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6045, 13, 'Navalpino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6046, 13, 'Pedro Muoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6047, 13, 'Piedrabuena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6048, 13, 'Poblete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6049, 13, 'Pozuelo de Calatrava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6050, 13, 'Los Pozuelos de Calatrava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6051, 13, 'Puerto Lapice'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6052, 13, 'Puertollano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6053, 13, 'Santa Cruz de Mudela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6054, 13, 'Socuellamos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6055, 13, 'La Solana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6056, 13, 'Tomelloso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6057, 13, 'Torralba de Calatrava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6058, 13, 'Torre de Juan Abad'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6059, 13, 'Torrenueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6060, 13, 'Valdepeas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6061, 13, 'Valenzuela de Calatrava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6062, 13, 'La Estacion de Brazatortas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6063, 13, 'Villahermosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6064, 13, 'Villamayor de Calatrava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6065, 13, 'Villanueva de la Fuente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6066, 13, 'Villar del Pozo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6067, 13, 'Villarrubia de Los Ojos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6068, 13, 'Villarta de San Juan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6069, 13, 'Viso del Marques'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6070, 13, 'Villamanrique'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6071, 13, 'Estacion Rio Zancara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6072, 13, 'Albaladejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6073, 13, 'Montiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6074, 13, 'Santa Cruz Caamos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6075, 13, 'Terrinches'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6076, 13, 'Cabezarrubias del Puerto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6077, 13, 'Hinojosas de Calatrava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6078, 13, 'Mestanza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6079, 13, 'Alamillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6080, 13, 'Almedina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6081, 13, 'Puebla del Principe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6082, 13, 'Fuenllana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6083, 13, 'Luciana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6084, 13, 'Cabezarados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6085, 13, 'Guadalmez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6086, 13, 'Alhambra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6087, 13, 'Carrizosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6088, 13, 'Agudo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6089, 13, 'Valdemanco del Esteras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6090, 13, 'Saceruela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6091, 13, 'Puebla de Don Rodrigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6092, 13, 'Villanueva de San Carlos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6093, 13, 'Cortijos de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6094, 13, 'Alcoba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6095, 13, 'Anchuras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6096, 13, 'Arroba de Los Montes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6097, 13, 'Fontanarejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6098, 13, 'Horcajo de Los Montes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6099, 13, 'Picon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6100, 13, 'San Carlos del Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6101, 13, 'Solana del Pino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6102, 13, 'Navas de Estena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6103, 13, 'Retuerta del Bullaque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6104, 13, 'San Lorenzo de Calatrava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6105, 13, 'Cortijos de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6106, 13, 'Llanos del Caudillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6107, 13, 'Ruidera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6108, 13, 'Huertezuelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6109, 13, 'Venta de Cardenas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6110, 13, 'Tirteafuera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6111, 13, 'Ballesteros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6112, 13, 'Santa Quiteria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6113, 13, 'La Alameda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6114, 13, 'La Calera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6115, 13, 'El Lobillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6116, 13, 'Pozo de la Serna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6117, 13, 'Los Quiles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6118, 13, 'Retamar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6119, 13, 'El Robledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6120, 13, 'Santa Maria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6121, 13, 'El Torno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6122, 13, 'El Trincheto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6123, 13, 'Valdehierro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6124, 13, 'Veredas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6125, 13, 'Viuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6126, 13, 'Las Virtudes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6127, 13, 'Caamares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6128, 13, 'Cristo del Espiritu Santo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6129, 13, 'Peralvillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6130, 13, 'Las Peralosas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6131, 13, 'El Sotillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6132, 13, 'Fontanosas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6133, 13, 'Gargantiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6134, 13, 'Navacerrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6135, 13, 'Piedrala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6136, 13, 'Fuencaliente -Malagon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6137, 13, 'San Benito'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6138, 13, 'Pueblonuevo del Bullaque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6139, 13, 'Bienvenida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6140, 13, 'Minas del Horcajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6141, 13, 'Belvis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6142, 13, 'El Villar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6143, 13, 'El Alcornocal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6144, 13, 'Villanueva Franco (Consolacion)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6145, 13, 'Las Huertas del Sauceral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6146, 13, 'Encinacaida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6147, 13, 'Charco del Tamujo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6148, 13, 'Asdrubal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6149, 13, 'Umbria de Fresnedas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6150, 13, 'Bazan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6151, 13, 'El Hoyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6152, 13, 'Solanilla del Tamaral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6153, 13, 'Villalba de Calatrava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6154, 13, 'Navalrincon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6155, 13, 'Gamonoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6156, 13, 'Valdeazogues'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6157, 13, 'Las Tiosillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6158, 13, 'Enjambre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6159, 13, 'Las Casas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6160, 13, 'Valverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6161, 13, 'Minas Diogenes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6162, 13, 'Muelle Maria-Isabel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6163, 13, 'Ojailen-Brazatortas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6164, 13, 'La Garganta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6165, 13, 'Las Casas del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6166, 13, 'Herrera de la Mancha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6167, 13, 'Las Islas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6168, 13, 'Los Mirones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6169, 13, 'Navalajarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6170, 13, 'Navalmedio de Morales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6171, 13, 'Navas de la Condesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6172, 13, 'Pealajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6173, 13, 'La Poblachuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6174, 13, 'Las Povedillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6175, 13, 'Puentes Piedrala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6176, 13, 'Las Rabinadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6177, 13, 'San Bruno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6178, 13, 'Las Tablillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6179, 13, 'Ventillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6180, 13, 'El Fresno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6181, 13, 'Campillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6182, 13, 'El Bonal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6183, 14, 'Sdamuz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6184, 14, 'Aguilar de la Frontera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6185, 14, 'Alcaracejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6186, 14, 'Alcolea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6187, 14, 'Almedinilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6188, 14, 'Almodovar del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6189, 14, 'Aora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6190, 14, 'Baena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6191, 14, 'Belalcazar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6192, 14, 'Belmez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6193, 14, 'Benameji'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6194, 14, 'Bujalance'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6195, 14, 'Cabra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6196, 14, 'Caete de Las Torres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6197, 14, 'Carcabuey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6198, 14, 'Cardea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6199, 14, 'La Carlota'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6200, 14, 'El Carpio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6201, 14, 'Bembezar del Caudillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6202, 14, 'Cordoba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6203, 14, 'Castro del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6204, 14, 'Doa Mencia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6205, 14, 'Dos Torres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6206, 14, 'Encinas Reales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6207, 14, 'Espejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6208, 14, 'Espiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6209, 14, 'Fernan-Nuez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6210, 14, 'Fuente Obejuna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6211, 14, 'Fuente-Tojar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6212, 14, 'Hinojosa del Duque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6213, 14, 'Hornachuelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6214, 14, 'Iznajar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6215, 14, 'Lucena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6216, 14, 'Luque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6217, 14, 'Montalban de Cordoba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6218, 14, 'Montemayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6219, 14, 'Montilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6220, 14, 'Montoro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6221, 14, 'Monturque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6222, 14, 'Moratalla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6223, 14, 'Moriles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6224, 14, 'Nueva Carteya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6225, 14, 'Palma del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6226, 14, 'Pedro Abad'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6227, 14, 'Pedroche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6228, 14, 'Pearroya-Pueblonuevo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6229, 14, 'Posadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6230, 14, 'Pozoblanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6231, 14, 'Priego de Cordoba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6232, 14, 'Puente Genil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6233, 14, 'La Rambla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6234, 14, 'Rute'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6235, 14, 'Santaella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6236, 14, 'Torrecampo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6237, 14, 'Villa del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6238, 14, 'Villafranca de Cordoba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6239, 14, 'Villaharta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6240, 14, 'Villanueva de Cordoba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6241, 14, 'Villanueva del Duque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6242, 14, 'Villaviciosa de Cordoba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6243, 14, 'Zagrilla Baja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6244, 14, 'Zambra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6245, 14, 'Zamoranos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6246, 14, 'Zuheros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6247, 14, 'Villaralto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6248, 14, 'El Viso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6249, 14, 'Valenzuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6250, 14, 'Fuente Palmera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6251, 14, 'San Sebastian de Ballesteros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6252, 14, 'La Victoria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6253, 14, 'Obejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6254, 14, 'Fuente la Lancha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6255, 14, 'Los Blazquez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6256, 14, 'La Granjuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6257, 14, 'Valsequillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6258, 14, 'Villanueva del Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6259, 14, 'Guadalcazar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6260, 14, 'Quintana -La Carlota-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6261, 14, 'El Guijo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6262, 14, 'La Coronada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6263, 14, 'Ojuelos Altos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6264, 14, 'Conquista'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6265, 14, 'Rivero de Posadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6266, 14, 'Azuel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6267, 14, 'Santa Eufemia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6268, 14, 'Santa Cruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6269, 14, 'La Guijarrosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6270, 14, 'Palenciana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6271, 14, 'Albendin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6272, 14, 'Aldea de Fuente Carretero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6273, 14, 'Ochavillo del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6274, 14, 'Algallarin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6275, 14, 'El Calonge'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6276, 14, 'San Antonio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6277, 14, 'El Alcornocal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6278, 14, 'Caada del Gamo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6279, 14, 'La Cardenchosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6280, 14, 'Los Morenos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6281, 14, 'Navalcuervo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6282, 14, 'Ojuelos Bajos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6283, 14, 'Los Panchez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6284, 14, 'Posadilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6285, 14, 'Encinarejo de Cordoba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6286, 14, 'Argallon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6287, 14, 'Cuenca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6288, 14, 'Piconcillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6289, 14, 'Porvenir de la Industria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6290, 14, 'Llanos de Don Juan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6291, 14, 'Villarrubia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6292, 14, 'Cerro Muriano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6293, 14, 'Santa Maria de Trassierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6294, 14, 'Fuencubierta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6295, 14, 'Mesas del Guadalora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6296, 14, 'Ermita Virgen de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6297, 14, 'Gaena-Casas Gallegas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6298, 14, 'Venta del Charco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6299, 14, 'El Higueral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6300, 14, 'El Tejar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6301, 14, 'El Esparragal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6302, 14, 'El Tarajal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6303, 14, 'El Cauelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6304, 14, 'Campo Nubes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6305, 14, 'Sileras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6306, 14, 'La Concepcion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6307, 14, 'Las Lagunillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6308, 14, 'Sotogordo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6309, 14, 'Palomar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6310, 14, 'Puerto Alegre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6311, 14, 'Ribera Baja Primera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6312, 14, 'Vadofresno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6313, 14, 'Jauja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6314, 14, 'Azores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6315, 14, 'Las Higueras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6316, 14, 'Cespedes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6317, 14, 'Maruanas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6318, 14, 'El Hoyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6319, 14, 'Doa Rama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6320, 14, 'Ermita de la Esperanza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6321, 14, 'La Montiela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6322, 14, 'Cordobilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6323, 14, 'El Vacar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6324, 14, 'Caada del Rabadan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6325, 14, 'La Herreria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6326, 14, 'Huertos Familiares S.Fernando'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6327, 14, 'Silillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6328, 14, 'La Ventilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6329, 14, 'Villalon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6330, 14, 'Villar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6331, 14, 'Los Algarbes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6332, 14, 'El Castellar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6333, 14, 'Monte Alto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6334, 14, 'La Paz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6335, 14, 'El Arrecife'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6336, 14, 'La Celada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6337, 14, 'Chica-Carlota'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6338, 14, 'El Garabato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6339, 14, 'Las Pinedas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6340, 14, 'El Rinconcillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6341, 14, 'Ventorros de Balerma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6342, 14, 'Pealosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6343, 14, 'Morente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6344, 14, 'El Alambique'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6345, 14, 'Bracana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6346, 14, 'La Fuente Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6347, 14, 'Venta de Las Navas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6348, 14, 'Barahona Soto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6349, 14, 'El Mojon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6350, 14, 'Lagar Gracia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6351, 14, 'La Mina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6352, 14, 'Los Arenales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6353, 14, 'Castil de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6354, 14, 'Algar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6355, 14, 'Corona Algaida Y Gata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6356, 14, 'Fuente del Conde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6357, 14, 'La Camorra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6358, 14, 'Llano del Espinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6359, 14, 'Venta Valero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6360, 14, 'Bocas del Riguelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6361, 14, 'El Rabanal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6362, 14, 'Navas del Selpillar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6363, 14, 'La Hoz -Rute-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6364, 14, 'Las Piedras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6365, 14, 'Los Mochos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6366, 14, 'El Higueron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6367, 14, 'El Fontanar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6368, 14, 'La Estacion -Luque-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6369, 14, 'Los Villares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6370, 14, 'Navas Las'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6371, 14, 'La Poyata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6372, 14, 'Salado El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6373, 14, 'El Solvito'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6374, 14, 'Genilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6375, 14, 'Las Paradejas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6376, 14, 'Estacion de Obejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6377, 14, 'El Nacimiento'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6378, 14, 'La Carrasca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6379, 14, 'Majaneque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6380, 14, 'Las Quemadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6381, 14, 'La Cubertilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6382, 14, 'Puebla de la Parrilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6383, 14, 'Pantano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6384, 14, 'Huertas del Ingeniero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6385, 14, 'Zagrilla Alta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6386, 14, 'El Poleo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6387, 14, 'Anjaron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6388, 14, 'Arroyuelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6389, 14, 'Dehesa del Caaveral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6390, 14, 'Nuestra Seora de Linares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6391, 14, 'El Jaramillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6392, 14, 'Veredon El Mohino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6393, 14, 'Central Termica Puente Nuevo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6394, 14, 'Palomares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6395, 14, 'El Vacar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6396, 14, 'El Adelantado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6397, 14, 'Castillo de la Albaida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6398, 14, 'Castill Rubio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6399, 14, 'Cierzos Y Cabreras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6400, 14, 'Jarales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6401, 14, 'Navas de Mingo Rubio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6402, 14, 'Alarconas Y Antorchas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6403, 14, 'Campo de Aras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6404, 14, 'Charco del Novillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6405, 14, 'Los Juncares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6406, 14, 'Nava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6407, 14, 'Los Pechos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6408, 14, 'Santa Brigida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6409, 14, 'Santo Domingo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6410, 14, 'Valchillon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6411, 14, 'Vega de Santa Lucia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6412, 14, 'La Alcaidia -Cabra-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6413, 14, 'Arroyo de Priego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6414, 14, 'Barranco del Lobo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6415, 14, 'Burbunera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6416, 14, 'Los Cansinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6417, 14, 'Casillas de Velasco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6418, 14, 'Cerro del Humo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6419, 14, 'Los Chirimeros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6420, 14, 'Emparedada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6421, 14, 'Las Ermitas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6422, 14, 'Huertas Bocas del Salado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6423, 14, 'Jarata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6424, 14, 'Martin Gonzalez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6425, 14, 'Navasequilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6426, 14, 'Los Olivares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6427, 14, 'Palomarejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6428, 14, 'Los Piedros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6429, 14, 'Pragdena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6430, 14, 'Puente Viejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6431, 14, 'Riofrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6432, 14, 'Torrecilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6433, 14, 'Torres Cabrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6434, 14, 'El Aguila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6435, 14, 'Las Aljabaras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6436, 14, 'Los Aranda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6437, 14, 'Los Arenales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6438, 14, 'Arroyo de Granada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6439, 14, 'Arroyo del Cerezo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6440, 14, 'Arroyo Tijeras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6441, 14, 'Los Concejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6442, 14, 'Estacion de Espiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6443, 14, 'Fuente Alamo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6444, 14, 'La Graja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6445, 14, 'Granadilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6446, 14, 'La Hoz -Iznajar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6447, 14, 'La Huelga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6448, 14, 'Huertas del Sol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6449, 14, 'Lope Amargo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6450, 14, 'Los Lopez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6451, 14, 'Llano del Mesto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6452, 14, 'Madroal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6453, 14, 'Medina Azahara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6454, 14, 'Los Molares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6455, 14, 'Nava de Los Corchos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6456, 14, 'Paterna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6457, 14, 'Pedro Diaz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6458, 14, 'Redondo Alto Y Bajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6459, 14, 'La Salud'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6460, 14, 'San Calixto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6461, 14, 'Los Santos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6462, 14, 'Solerche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6463, 14, 'La Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6464, 14, 'Cerro Muriano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6465, 14, 'El Cauelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6466, 14, 'Las Quemadillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6467, 14, 'El Carril'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6468, 14, 'La Golondrina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6469, 14, 'Laguna de Zoar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6470, 14, 'Zamacon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6471, 14, 'Cuesta Blanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6472, 14, 'Las Huertas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6473, 14, 'Los Llanos de Rueda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6474, 14, 'Vizcantar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6475, 14, 'Los Llanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6476, 14, 'Nuestra Seora del Rosario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6477, 14, 'Aladid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6478, 14, 'Fuentiduea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6479, 14, 'Manosalva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6480, 14, 'La Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6481, 14, 'Cachiporro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6482, 14, 'Chaparral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6483, 14, 'Dehesa de Las Alcantarillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6484, 14, 'Madroiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6485, 14, 'Santa Clara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6486, 14, 'El Entredicho'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6487, 14, 'Lago del Fresno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6488, 14, 'La Cruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6489, 14, 'Dehesa de Potros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6490, 14, 'Maria Aparicio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6491, 14, 'La Alcantarilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6492, 14, 'La Benita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6493, 14, 'Carretera Estacion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6494, 14, 'El Martinete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6495, 14, 'Bernabe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6496, 14, 'Fuente Dura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6497, 14, 'Molino del Marques'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6498, 14, 'El Portazgo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6499, 14, 'Garci-Calvo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6500, 14, 'Carchena'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6501, 14, 'Torre del Puerto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6502, 14, 'El Alcaide de Cordoba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6503, 14, 'Urbanizacion Parrilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6504, 14, 'Poligono Industrial Las Quemadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6505, 14, 'La Balanzona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6506, 14, 'Las Jaras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6507, 14, 'Solanas del Pilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6508, 14, 'Abolafia de la Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6509, 14, 'Estacion de Fernan Nuez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6510, 14, 'Santa Rosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6511, 14, 'Venta del Rio Anzur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6512, 14, 'Zurreon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6513, 14, 'La Ballesta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6514, 14, 'Fuente Agria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6515, 14, 'Mina de la Concepcion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6516, 14, 'Todosaires'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6517, 14, 'Barrio San Vicente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6518, 14, 'Dehesa de Yeguas Y Baldio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6519, 14, 'Dehesilla Y Majada Vieja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6520, 14, 'La Adelfilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6521, 14, 'La Albarrana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6522, 14, 'El Alta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6523, 14, 'Valdeinfierno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6524, 14, 'Reinilla Y Ladrillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6525, 14, 'Los Corrales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6526, 14, 'Mesas de Bembezar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6527, 14, 'Las Mezquetillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6528, 14, 'La Sevillana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6529, 14, 'Marbella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6530, 14, 'Los Montes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6531, 14, 'Peillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6532, 14, 'Cortijo Blanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6533, 14, 'La Magdalena Y Tintin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6534, 14, 'San Francisco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6535, 14, 'La Sierra O Buenavista'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6536, 14, 'La Zarza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6537, 14, 'Campia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6538, 14, 'La Estacion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6539, 14, 'Cid Toledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6540, 14, 'Los Llanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6541, 14, 'Piedras de Varo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6542, 14, 'La Armada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6543, 14, 'La Mora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6544, 14, 'Puerto Viejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6545, 14, 'Arriel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6546, 14, 'La Barqueta -Palma del Rio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6547, 14, 'El Carrascal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6548, 14, 'La Chirritana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6549, 14, 'La Estacion -Palma del Rio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6550, 14, 'Pimentada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6551, 14, 'El Pizon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6552, 14, 'El Rincon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6553, 14, 'Calamon Alto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6554, 14, 'Los Campillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6555, 14, 'Domingo Adoves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6556, 14, 'Lagar Alto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6557, 14, 'La Plata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6558, 14, 'Las Angosturas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6559, 14, 'Jaula'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6560, 14, 'Los Prados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6561, 14, 'Huertas Nuevas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6562, 14, 'Isla del Obispo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6563, 14, 'Majada Vieja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6564, 14, 'El Remolino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6565, 14, 'La Ribera Alta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6566, 14, 'Jurisdiccion Cuatro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6567, 14, 'Jurisdiccion Cinco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6568, 14, 'Campullas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6569, 14, 'Caada de Zambra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6570, 14, 'Cerrillo Zambra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6571, 14, 'Civico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6572, 14, 'Cortijuelos de Zambra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6573, 14, 'Fuente de Las Caas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6574, 14, 'Isla Alta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6575, 14, 'Isla Baja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6576, 14, 'Portugalejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6577, 14, 'Rio Anzur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6578, 14, 'El Vadillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6579, 14, 'Las Viboras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6580, 14, 'Casillas de Velasco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6581, 14, 'Siete Torres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6582, 14, 'Mojonera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6583, 14, 'Estacion Belalcazar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6584, 14, 'Huertas Bajas Segunda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6585, 14, 'Ribera Baja Segunda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6586, 14, 'Arenales Segundo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6587, 14, 'Llanos del Castillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6588, 14, 'La Gitana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6589, 14, 'Huertas Duque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6590, 14, 'Rivera Alta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6591, 14, 'Siete Fincas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6592, 15, 'Ares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6593, 15, 'Arzua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6594, 15, 'Baio -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6595, 15, 'Bertamirans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6596, 15, 'Betanzos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6597, 15, 'Boiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6598, 15, 'Brion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6599, 15, 'O Burgo -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6600, 15, 'Carballo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6601, 15, 'Cario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6602, 15, 'Cedeira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6603, 15, 'Cee'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6604, 15, 'Corcubion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6605, 15, 'Coristanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6606, 15, 'A Corua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6607, 15, 'Dumbria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6608, 15, 'Espasante -San Juan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6609, 15, 'Fene'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6610, 15, 'Ferrol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6611, 15, 'Fisterra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6612, 15, 'A Graa-Santa Rosa de Viterbo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6613, 15, 'Jubia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6614, 15, 'Laxe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6615, 15, 'Melide'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6616, 15, 'Ponte Mera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6617, 15, 'Mio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6618, 15, 'Mugardos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6619, 15, 'Muros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6620, 15, 'Negreira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6621, 15, 'Noia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6622, 15, 'Ordes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6623, 15, 'Ortigueira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6624, 15, 'Padron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6625, 15, 'Ribeira Palmeira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6626, 15, 'A Pobra Do Caramial'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6627, 15, 'Puente Pasaje'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6628, 15, 'Pontedeume'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6629, 15, 'Maon Puerto Barquero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6630, 15, 'Sada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6631, 15, 'San Sadurnio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6632, 15, 'Riveira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6633, 15, 'Santiago de Compostela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6634, 15, 'Vimianzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6635, 15, 'As Pontes de Garcia Rodriguez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6636, 15, 'Rianxo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6637, 15, 'Esclavitud'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6638, 15, 'Oleiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6639, 15, 'Outes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6640, 15, 'Malpica de Bergantios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6641, 15, 'Carral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6642, 15, 'Buo -San Estebo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6643, 15, 'Laracha Caion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6644, 15, 'Ponteceso Corme'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6645, 15, 'Maianca -San Cosme-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6646, 15, 'Ponteceso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6647, 15, 'Lians -Santa Eulalia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6648, 15, 'Bergondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6649, 15, 'Pontevea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6650, 15, 'Teo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6651, 15, 'Solleiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6652, 15, 'Portosin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6653, 15, 'Porto Do Son'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6654, 15, 'Ponte Do Porto -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6655, 15, 'Camarias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6656, 15, 'Cesuras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6657, 15, 'Curtis-Estacion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6658, 15, 'Teijeiro -Curtis-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6659, 15, 'Sobrado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6660, 15, 'Camelle-Divino Espiritu Santo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6661, 15, 'Muxia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6662, 15, 'Muxia Quintans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6663, 15, 'Oza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6664, 15, 'Cambre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6665, 15, 'Manios -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6666, 15, 'Muxia Molinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6667, 15, 'Dexo -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6668, 15, 'Serra de Outes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6669, 15, 'Sigueiro -Oroso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6670, 15, 'Neao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6671, 15, 'Capela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6672, 15, 'Arteixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6673, 15, 'Moeche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6674, 15, 'Felgosas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6675, 15, 'As Somozas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6676, 15, 'Dodro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6677, 15, 'Paderne'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6678, 15, 'Irixoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6679, 15, 'Aranga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6680, 15, 'Monfero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6681, 15, 'Laracha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6682, 15, 'Abegondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6683, 15, 'Ribeira -Outes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6684, 15, 'Redes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6685, 15, 'Seijo -Mugardos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6686, 15, 'Rois'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6687, 15, 'Santa Comba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6688, 15, 'A Baa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6689, 15, 'Aguio -Nosa Seora Do Carme-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6690, 15, 'Corrubedo -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6691, 15, 'Cerceda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6692, 15, 'Valdovio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6693, 15, 'Coiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6694, 15, 'Cacheiras -San Simon de Ons-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6695, 15, 'Sardieiro -San Juan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6696, 15, 'Vilarmaior'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6697, 15, 'Carnota'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6698, 15, 'O Pindo -San Clemente-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6699, 15, 'Lira -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6700, 15, 'Culleredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6701, 15, 'Xanceda -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6702, 15, 'Portobravo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6703, 15, 'Balcaide'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6704, 15, 'A Calle-Pomar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6705, 15, 'Camino Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6706, 15, 'Maon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6707, 15, 'Foro -Vilasantar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6708, 15, 'Touro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6709, 15, 'Boimorto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6710, 15, 'Liares -Costa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6711, 15, 'O Pino - Arca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6712, 15, 'Vilasantar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6713, 15, 'Bertamirans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6714, 15, 'Cabanas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6715, 15, 'O Casal de Larao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6716, 15, 'Sobrado Las Cruces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6717, 15, 'Estacion -Ordes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6718, 15, 'Vedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6719, 15, 'Sol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6720, 15, 'Meixonfrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6721, 15, 'Bembibre -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6722, 15, 'Muro -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6723, 15, 'Tordoia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6724, 15, 'Trazo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6725, 15, 'Mazaricos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6726, 15, 'A Sionlla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6727, 15, 'As Pedridas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6728, 15, 'Louro -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6729, 15, 'Guisamo -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6730, 15, 'Pesqueira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6731, 15, 'Escarabote'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6732, 15, 'Abanqueiro -San Cristobal-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6733, 15, 'Boiro Sar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6734, 15, 'Naron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6735, 15, 'Xavia -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6736, 15, 'Roxos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6737, 15, 'Montio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6738, 15, 'Morquintian -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6739, 15, 'Souto -Paderne Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6740, 15, 'Soutorredondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6741, 15, 'Vilanova -Recesende-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6742, 15, 'Bormoio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6743, 15, 'Calvarios -Ortigueira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6744, 15, 'Campo Longo -Pontedeume-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6745, 15, 'Carta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6746, 15, 'Chan Da Aldea -Carnoedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6747, 15, 'Mesoiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6748, 15, 'Empalme As Pontes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6749, 15, 'Goive de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6750, 15, 'Iglesia -Ares-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6751, 15, 'Jiao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6752, 15, 'Juane'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6753, 15, 'Budian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6754, 15, 'Ponte Noval'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6755, 15, 'Queijeiro -San Jorge-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6756, 15, 'Cobas -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6757, 15, 'Raris -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6758, 15, 'O Real -Melide-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6759, 15, 'Zas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6760, 15, 'Marmancou-Santiago Compostela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6761, 15, 'Fraga -Bergondo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6762, 15, 'O Burgo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6763, 15, 'Ponte Porco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6764, 15, 'Bares -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6765, 15, 'Extramundi de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6766, 15, 'Herbon -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6767, 15, 'Biduido Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6768, 15, 'Bergondo Poligono'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6769, 15, 'A Torre -Valdovio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6770, 15, 'Jestal -Monfero-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6771, 15, 'Santuario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6772, 15, 'Penateixa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6773, 15, 'Biduido de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6774, 15, 'Atalaia -Rianxo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6775, 15, 'Quintans -Rianxo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6776, 15, 'Rao -Rianxo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6777, 15, 'Cerdido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6778, 15, 'Rianxo Iglesia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6779, 15, 'Xens'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6780, 15, 'Naron San Mateo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6781, 15, 'Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6782, 15, 'Vista Alegre -Naron-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6783, 15, 'Nelle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6784, 15, 'Payosaco -Laracha-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6785, 15, 'Mosteiro -Naron-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6786, 15, 'Feria -Naron-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6787, 15, 'Vilacornelle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6788, 15, 'Pousada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6789, 15, 'Perillo -Santa Leocadia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6790, 15, 'Bemantes -Santo Tome-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6791, 15, 'Sarandon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6792, 15, 'Amio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6793, 15, 'A Rocha Vella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6794, 15, 'San Marcos-Santiago Compostela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6795, 15, 'Berdoias -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6796, 15, 'Leiro -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6797, 15, 'Perbes -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6798, 15, 'San Mamede -Vedra-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6799, 15, 'Vilanova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6800, 15, 'Apeadeiro -Cambre-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6801, 15, 'Santiago Iglesario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6802, 15, 'O Sisto -Santiago Compostela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6803, 15, 'A Peregrina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6804, 15, 'Eixo (Santiago)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6805, 15, 'Castellana -Aranga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6806, 15, 'Agoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6807, 15, 'Corredoira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6808, 15, 'A Brea -Benza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6809, 15, 'Campos -Teo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6810, 15, 'Chanteiro -Ares-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6811, 15, 'Grela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6812, 15, 'Greleira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6813, 15, 'Iglesia la Teo Luou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6814, 15, 'La Iglesia -Vaamonde-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6815, 15, 'Iglesia -Grandal-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6816, 15, 'Xian -Trobe-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6817, 15, 'Meleato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6818, 15, 'Montesalgueiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6819, 15, 'Noia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6820, 15, 'Outeiro de Barracido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6821, 15, 'Regueirio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6822, 15, 'Ribados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6823, 15, 'Taraza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6824, 15, 'Vilanova -Recesende-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6825, 15, 'Cambas -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6826, 15, 'Dia Tres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6827, 15, 'Xabroal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6828, 15, 'Trianes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6829, 15, 'Muniferral -San Cristobal-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6830, 15, 'Lavandeira -Cabanas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6831, 15, 'Tordoia Tarroeira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6832, 15, 'Bexo -Dodro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6833, 15, 'Garita -As Somozas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6834, 15, 'Noia Carreira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6835, 15, 'Boqueixon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6836, 15, 'Igrexa -Roo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6837, 15, 'Peon Pedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6838, 15, 'Abeleira -Tordoia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6839, 15, 'Pino de Val'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6840, 15, 'A Susana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6841, 15, 'Batanes -Arteixo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6842, 15, 'Bretal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6843, 15, 'Campo -Barraan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6844, 15, 'Canduas -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6845, 15, 'Enchousas -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6846, 15, 'Iglesia -Recemel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6847, 15, 'Latas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6848, 15, 'Fontelo -Coiros-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6849, 15, 'Goleta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6850, 15, 'Touro Quintas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6851, 15, 'Vilar Touro Vilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6852, 15, 'Cando -San Tirso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6853, 15, 'Eirige Vilasantar Curtis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6854, 15, 'Cesullas -San Esteban-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6855, 15, 'Valadares -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6856, 15, 'Augapesada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6857, 15, 'Guimarans -Ames-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6858, 15, 'Santo -Ames-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6859, 15, 'Muros Abelleira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6860, 15, 'A Pereiria -San Xian-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6861, 15, 'Lestimoo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6862, 15, 'Pazos -Divino Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6863, 15, 'A Piolla -Cabana-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6864, 15, 'Tal de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6865, 15, 'Lanza -San Mamed-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6866, 15, 'Iglesia -Mesia San Cristobal-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6867, 15, 'Areas -Boimorto-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6868, 15, 'Bayuca -Oroso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6869, 15, 'Castro -Oroso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6870, 15, 'Nos -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6871, 15, 'Pieiro de Abaixo -Boimorto-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6872, 15, 'Frades Ponte Carreira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6873, 15, 'Antes -San Cosme-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6874, 15, 'Quintans -Porto Do Son-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6875, 15, 'Campo Maon Graas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6876, 15, 'Campo Xesteda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6877, 15, 'Peiro de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6878, 15, 'Rodis -San Martin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6879, 15, 'Figueiras -Cedeira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6880, 15, 'San Andres de Teixido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6881, 15, 'Medin -Paderne-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6882, 15, 'Vigo -San Julian-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6883, 15, 'Brandaas Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6884, 15, 'Igrexa -Vila Do Abade-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6885, 15, 'Tordoia Santaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6886, 15, 'Cimadevila -Frades-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6887, 15, 'Cruceiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6888, 15, 'Montaos -Santa Cruz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6889, 15, 'Loibas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6890, 15, 'Sobrado Meson'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6891, 15, 'Meson Do Vento -Ordes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6892, 15, 'Riboira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6893, 15, 'Muxia Senande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6894, 15, 'Vilarmide'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6895, 15, 'Pousada de Arriba -Sobrado-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6896, 15, 'Chao Da Aldea -Cabanas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6897, 15, 'Esmelle -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6898, 15, 'Cabaas Xavariz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6899, 15, 'As Lamas -Cee-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6900, 15, 'Brion Bastavales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6901, 15, 'Vilar -San Roman-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6902, 15, 'Cal de San Mamed'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6903, 15, 'Malpica Pasacondia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6904, 15, 'Iria Flavia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6905, 15, 'Rumille'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6906, 15, 'Dumbria Farrapa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6907, 15, 'Agro Chao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6908, 15, 'Belmil -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6909, 15, 'Cabana -Toques-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6910, 15, 'Pieiro -Toques-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6911, 15, 'Portocelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6912, 15, 'Villamor de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6913, 15, 'Uxes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6914, 15, 'Dorneda -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6915, 15, 'Serantes -San Xulian-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6916, 15, 'Casas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6917, 15, 'Ezaro -Santa Uxia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6918, 15, 'Igrexa -Buxantes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6919, 15, 'A Iglesia -Monte-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6920, 15, 'Lires -Santo Estevo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6921, 15, 'Pieiro -Rois-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6922, 15, 'Socamio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6923, 15, 'Vilachan -Rois-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6924, 15, 'Visantoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6925, 15, 'O Viso -Carnota-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6926, 15, 'Sande -A Capela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6927, 15, 'Vilardemouros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6928, 15, 'A Vrea O Pino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6929, 15, 'Cruceiro -O Pino-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6930, 15, 'Lestrove -Dodro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6931, 15, 'Tarroeira -O Pino-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6932, 15, 'Vilar -Gonzar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6933, 15, 'Torelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6934, 15, 'Frais -Cambre-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6935, 15, 'Pasarela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6936, 15, 'Faeira -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6937, 15, 'Lamas -As Pontes de G.R.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6938, 15, 'Donios -San Roman-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6939, 15, 'Mandia -Santa Uxia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6940, 15, 'Vila Iglesia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6941, 15, 'Ferrol San Jorge'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6942, 15, 'San Fiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6943, 15, 'Villa de Bares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6944, 15, 'Campo Iglesia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6945, 15, 'Domende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6946, 15, 'Baias -San Antolin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6947, 15, 'Bandoja -San Martin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6948, 15, 'Estorde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6949, 15, 'Gures'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6950, 15, 'Loiba -San Xulian-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6951, 15, 'Castelo Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6952, 15, 'Chao Da Via'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6953, 15, 'Gandara -Carnota-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6954, 15, 'Maio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6955, 15, 'Arou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6956, 15, 'Cibran -Vedra-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6957, 15, 'Cornado -Vedra-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6958, 15, 'Lousame'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6959, 15, 'Marquio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6960, 15, 'Queiroga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6961, 15, 'Rodela Iglesia Somozas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6962, 15, 'San Pedro -Vedra-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6963, 15, 'Lousame Vilacoba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6964, 15, 'Vilachave -As Somozas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6965, 15, 'Caminogrande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6966, 15, 'Eirixado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6967, 15, 'Formariz -Cabanas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6968, 15, 'A Iglesia -Iris-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6969, 15, 'Pedregal -Cabanas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6970, 15, 'Portanxil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6971, 15, 'Grixoa -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6972, 15, 'Oroso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6973, 15, 'Marracin de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6974, 15, 'Mercuto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6975, 15, 'Rodeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6976, 15, 'San Sadurnio Iglesiafeita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6977, 15, 'Santa Sabia -San Xulian-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6978, 15, 'Serra -Oza Dos Rios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6979, 15, 'Souto -Capela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6980, 15, 'Malpica A Tremoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6981, 15, 'Vilasusa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6982, 15, 'Cabaas Laraxe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6983, 15, 'Suevos -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6984, 15, 'Banzas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6985, 15, 'A Carreira -Outes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6986, 15, 'Portomouro -San Cristobal-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6987, 15, 'Iglesia -Fojado-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6988, 15, 'Curtis Paradela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6989, 15, 'Ponte Nafonso -Outes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6990, 15, 'Regueira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6991, 15, 'Santaya -Curtis-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6992, 15, 'Xora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6993, 15, 'Casal -Culleredo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6994, 15, 'Godulfes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6995, 15, 'Graa -Fisteus-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6996, 15, 'Graa de la Iglesia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6997, 15, 'Iglesia -Fisteus-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6998, 15, 'Illana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (6999, 15, 'Ourille'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7000, 15, 'Outeiro'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7001, 15, 'Pachote'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7002, 15, 'Pau Do Lobo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7003, 15, 'Pousada -Rianxo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7004, 15, 'Silvar -Culleredo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7005, 15, 'Teaio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7006, 15, 'Traxeito'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7007, 15, 'Serantes -Outes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7008, 15, 'Campos -Curtis-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7009, 15, 'Caresma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7010, 15, 'Casal -Vilamaior Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7011, 15, 'Casal -Val Do Dubra-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7012, 15, 'Erviou -San Cristobo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7013, 15, 'Guindiboo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7014, 15, 'San Sadurnio Gulpilleira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7015, 15, 'A Igrexa -Paramos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7016, 15, 'Iglesia -Bean-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7017, 15, 'Iglesia -Pereira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7018, 15, 'Pazo -Parada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7019, 15, 'Queira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7020, 15, 'Quintan -Val Do Dubra-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7021, 15, 'Rua -Buscas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7022, 15, 'Sobre Dos Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7023, 15, 'Troitosende -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7024, 15, 'Bascuas -Val Do Dubra-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7025, 15, 'Cenda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7026, 15, 'Cotio -Cabanas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7027, 15, 'Lousada -Cabanas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7028, 15, 'Liares -Vilarmaior-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7029, 15, 'Nogueirido -Vilarmaior-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7030, 15, 'San Andres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7031, 15, 'Agris -Mazaricos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7032, 15, 'Caldebarcos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7033, 15, 'Campoduro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7034, 15, 'Carballal -Aranga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7035, 15, 'Coluns -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7036, 15, 'Coiros Combarro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7037, 15, 'Corneira -San Cristobo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7038, 15, 'Cruceiro -A Baa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7039, 15, 'Fonte Paredes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7040, 15, 'Iglesia -Visantoa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7041, 15, 'Milreo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7042, 15, 'Baa Nanton'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7043, 15, 'Porta Dos Caos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7044, 15, 'Puente-Cesures -Padron-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7045, 15, 'Quilmas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7046, 15, 'Reborica'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7047, 15, 'Recebes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7048, 15, 'Saa -As Pontes de G.R.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7049, 15, 'San Cibran -A Baa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7050, 15, 'Seoane -A Baa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7051, 15, 'Mamoa -Ames-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7052, 15, 'San Mamede'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7053, 15, 'Sean'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7054, 15, 'Corbeixe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7055, 15, 'A Pedreira -Ferrol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7056, 15, 'Sabugueira (Santiago)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7057, 15, 'Franza -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7058, 15, 'Gallada de Pieiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7059, 15, 'Barrio -Culleredo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7060, 15, 'Ledoo -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7061, 15, 'Flores -Aranga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7062, 15, 'Malpica Cambre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7063, 15, 'Erbecedo -Divino Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7064, 15, 'Rabadeira -Coristanco-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7065, 15, 'Castrelos -Leira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7066, 15, 'Castelo -O Pino-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7067, 15, 'Fraga Alta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7068, 15, 'Iglesia -Vios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7069, 15, 'Gandara -Riveira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7070, 15, 'Lobelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7071, 15, 'Eirexe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7072, 15, 'Corral Do Medio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7073, 15, 'Meire -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7074, 15, 'Eirexe -Folladela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7075, 15, 'Carreira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7076, 15, 'Paradela -San Paio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7077, 15, 'Monte Da Feira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7078, 15, 'Pezobre -San Cristobo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7079, 15, 'Lamelas -As Pontes de G.R.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7080, 15, 'Porta -A Capela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7081, 15, 'Regalados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7082, 15, 'Pastoriza -Rianxo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7083, 15, 'Castrobo -Coristanco-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7084, 15, 'Travesas -Santa Comba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7085, 15, 'Iglesia -Villantime-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7086, 15, 'Porto Son Tarrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7087, 15, 'Caamao -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7088, 15, 'Novas -Porto Do Son-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7089, 15, 'Penas -Porto Do Son-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7090, 15, 'Agra -Porto Do Son-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7091, 15, 'Capela -Rianxo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7092, 15, 'Callobre -San Juan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7093, 15, 'Canedos -Mesos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7094, 15, 'Casablanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7095, 15, 'Cruceiro -Barbeiros-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7096, 15, 'Cruceiro -Mercurin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7097, 15, 'Curra -Mazaricos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7098, 15, 'Eiron -San Fins-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7099, 15, 'A Iglesia -Boado-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7100, 15, 'A Igrexa -Portomeiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7101, 15, 'Liares -Mazaricos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7102, 15, 'Sambollo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7103, 15, 'Vilario -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7104, 15, 'Celas -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7105, 15, 'Boedo -Culleredo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7106, 15, 'A Igrexa -Papucin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7107, 15, 'Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7108, 15, 'Maroxo de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7109, 15, 'Muia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7110, 15, 'Sanfins'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7111, 15, 'San Martio -Zas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7112, 15, 'Chao Da Aldea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7113, 15, 'Xesteira -Touro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7114, 15, 'Xufres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7115, 15, 'Orro -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7116, 15, 'Chao -As Pontes de G.R.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7117, 15, 'Vilar -Rianxo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7118, 15, 'Abeleiras -Mazaricos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7119, 15, 'Zas Meanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7120, 15, 'Miarzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7121, 15, 'Pastoriza -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7122, 15, 'Penadeiriz -As Somozas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7123, 15, 'Toca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7124, 15, 'Pazos -Vilasantar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7125, 15, 'Gude'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7126, 15, 'Pastoriza -As Somozas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7127, 15, 'Trasdoroa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7128, 15, 'Sada Veigue'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7129, 15, 'Cerceda Picota'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7130, 15, 'Iglesia la As Pontes Garcia Rodriguez D'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7131, 15, 'As Torres -Carballo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7132, 15, 'Arnados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7133, 15, 'Rebordelos -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7134, 15, 'Agro Do Mestre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7135, 15, 'Irexe -Restande-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7136, 15, 'Mordomo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7137, 15, 'Boao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7138, 15, 'Cabanela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7139, 15, 'Aplazadoiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7140, 15, 'Matio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7141, 15, 'A Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7142, 15, 'Amoreira -Porto Do Son-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7143, 15, 'Alboreda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7144, 15, 'Noal -San Vicente-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7145, 15, 'Adina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7146, 15, 'Xesteira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7147, 15, 'Balbis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7148, 15, 'Pazo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7149, 15, 'A Iglesia O Pino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7150, 15, 'Baltar -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7151, 15, 'Xibeiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7152, 15, 'Iglesia -Oins-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7153, 15, 'Penso-Cabaas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7154, 15, 'Touro Turces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7155, 15, 'Touro Chaos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7156, 15, 'Ardilleiro Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7157, 15, 'Pedreira -Arzua-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7158, 15, 'Vilar Valle Dubra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7159, 15, 'Verdia -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7160, 15, 'Camio Real'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7161, 15, 'Goians'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7162, 15, 'San Martio -Santa Comba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7163, 15, 'Estivadia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7164, 15, 'Laas -Santa Baia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7165, 15, 'A Igrexa -A Baa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7166, 15, 'Esparis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7167, 15, 'Tembra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7168, 15, 'Igrexa A'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7169, 15, 'Brion -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7170, 15, 'Quinteiro -A Baa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7171, 15, 'Cruz -A Baa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7172, 15, 'Santa Comba Freixeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7173, 15, 'Barral -Cesuras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7174, 15, 'Meitufe -Ordes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7175, 15, 'Teixoeiras As'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7176, 15, 'Tordoia Castieiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7177, 15, 'A Castieira Trazo Monzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7178, 15, 'O Cruceiro la Iglesia Juanceda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7179, 15, 'Santiago Vilario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7180, 15, 'Pumar O'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7181, 15, 'Ventas Do Lenguelle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7182, 15, 'Polveira A'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7183, 15, 'Oa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7184, 15, 'Cruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7185, 15, 'Cabeza de Lobo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7186, 15, 'Boiro Bembibre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7187, 15, 'Carral -Arzua-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7188, 15, 'Ledesma -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7189, 15, 'Camporrapado -Oural-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7190, 15, 'Coira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7191, 15, 'Canduas -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7192, 15, 'Casilla -Aparral-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7193, 15, 'Moucho'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7194, 15, 'Bustomayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7195, 15, 'Casal Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7196, 15, 'Raon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7197, 15, 'Amenedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7198, 15, 'Pias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7199, 15, 'Cha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7200, 15, 'Rilo -Cesuras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7201, 15, 'Guitiriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7202, 15, 'Restrebas -Monfero-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7203, 15, 'Rebordochao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7204, 15, 'Coucenabeira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7205, 15, 'Vilario -Curtis-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7206, 15, 'Laracha Santa Marta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7207, 15, 'A Barreira -Valdovio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7208, 15, 'Barreira -Lousame-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7209, 15, 'Lestaio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7210, 15, 'Maroas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7211, 15, 'Carballeira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7212, 15, 'Xallas de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7213, 15, 'San Cristobo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7214, 15, 'Limideiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7215, 15, 'Bustelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7216, 15, 'Escabia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7217, 15, 'Vilelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7218, 15, 'San Xiao de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7219, 15, 'Romaris'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7220, 15, 'Freijo San Sadurnio Lamas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7221, 15, 'Meizoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7222, 15, 'Casanova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7223, 15, 'San Martio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7224, 15, 'Castieiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7225, 15, 'Abeledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7226, 15, 'Amoreira -Valdovio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7227, 15, 'Creo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7228, 15, 'Tal de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7229, 15, 'Lario -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7230, 15, 'Cances -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7231, 15, 'A Silva -Cerceda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7232, 15, 'Montefaro -Valdovio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7233, 15, 'Pioy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7234, 15, 'Torre de San Bartolome'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7235, 15, 'Armadadocando'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7236, 15, 'Sanda -Sobrado-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7237, 15, 'Cainzos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7238, 15, 'Graa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7239, 15, 'Candedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7240, 15, 'Merlan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7241, 15, 'Gondre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7242, 15, 'Miguelares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7243, 15, 'Zain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7244, 15, 'Souto -Paderne Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7245, 15, 'Cubelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7246, 15, 'Iglesia As Pontes Garcia Rodriguez Frei'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7247, 15, 'Riberas -Maon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7248, 15, 'San Martio de Arriba -Melide-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7249, 15, 'Melide Maceda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7250, 15, 'Ortigueira Peneiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7251, 15, 'Pousada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7252, 15, 'Sangoedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7253, 15, 'Requia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7254, 15, 'Iglesario Ortigueira Devesos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7255, 15, 'Burreiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7256, 15, 'Iglesia Ortigueira Yermo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7257, 15, 'Ermida -Ortigueira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7258, 15, 'San Salvador'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7259, 15, 'Vilar de Celtigos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7260, 15, 'A Painza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7261, 15, 'Santa Comba A Illa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7262, 15, 'Barro de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7263, 15, 'Viseo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7264, 15, 'Castelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7265, 15, 'Frixe -Santa Leocadia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7266, 15, 'Nemia -San Cristobo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7267, 15, 'A Penseira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7268, 15, 'Leis -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7269, 15, 'Cruz de Agrelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7270, 15, 'Moa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7271, 15, 'Fonte Santaia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7272, 15, 'Gosende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7273, 15, 'Campo -As Pontes de G.R.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7274, 15, 'Serres -San Juan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7275, 15, 'Ramil -Rus-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7276, 15, 'Calvos -Carballo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7277, 15, 'Cives de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7278, 15, 'Seorio -Mazaricos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7279, 15, 'Xendil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7280, 15, 'Queiro -Porto Do Son-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7281, 15, 'Aboi -Frades-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7282, 15, 'Denle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7283, 15, 'Abelenda -Coristanco-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7284, 15, 'Santa Comba Carballal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7285, 15, 'Comians'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7286, 15, 'Iglesario -Montemaior-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7287, 15, 'Meneiroas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7288, 15, 'Vilaserio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7289, 15, 'Cruceiro -Cabana-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7290, 15, 'A Mata -Cabana-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7291, 15, 'Cabana Vilaseco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7292, 15, 'Lieiro -Carballo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7293, 15, 'Pia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7294, 15, 'Rueiro -Cuns-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7295, 15, 'Salgueiras -Seavia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7296, 15, 'Olveira -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7297, 15, 'Serramo -San Sebastian-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7298, 15, 'Carreira -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7299, 15, 'Zas Pazos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7300, 15, 'A Fonte Espio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7301, 15, 'Villar Zas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7302, 15, 'Entrecruces -San Senxo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7303, 15, 'Tarambollo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7304, 15, 'Braas Verdes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7305, 15, 'Boudaeira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7306, 15, 'Avio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7307, 15, 'Vioxo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7308, 15, 'Pajareiras de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7309, 15, 'Vilamaior -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7310, 15, 'Porta Da Pena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7311, 15, 'Campelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7312, 15, 'Mens -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7313, 15, 'Malpica Barizo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7314, 15, 'Pereiro As Pontes Garcia Rodriguez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7315, 15, 'Aparral de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7316, 15, 'Castriz -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7317, 15, 'Sestelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7318, 15, 'Castenda -Boqueixon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7319, 15, 'Carantoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7320, 15, 'Outeiro -Mio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7321, 15, 'Gallado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7322, 15, 'Vila -Muniferral-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7323, 15, 'Pedre -Fene-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7324, 15, 'Figueiroa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7325, 15, 'Corredoira -Naron-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7326, 15, 'Outes Miras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7327, 15, 'A Iglesia -Castrofeito-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7328, 15, 'Taboada -O Pino-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7329, 15, 'Chao de Ombre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7330, 15, 'Iglesia As Pontes Garcia Rodriguez San'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7331, 15, 'Corrubedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7332, 15, 'O Faro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7333, 15, 'Portomouro -San Cristobal-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7334, 15, 'La Iglesia Ortigueira San Cristobal Cou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7335, 15, 'Valdovio Barreiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7336, 15, 'Ortoo -San Juan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7337, 15, 'Moras -San Esteban-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7338, 15, 'Cobas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7339, 15, 'Arca -Santa Eulalia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7340, 15, 'Figeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7341, 15, 'Santa Cruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7342, 15, 'Santa Uxia de Riveira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7343, 15, 'Sofan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7344, 15, 'El Temple -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7345, 15, 'Puerto Aguio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7346, 15, 'Barallobre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7347, 15, 'Magalofes -San Xurxo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7348, 15, 'Perlio -San Estevo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7349, 15, 'San Valentin -Fene-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7350, 15, 'Brion -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7351, 15, 'Porto de Santa Cruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7352, 15, 'Perillo -Santa Leocadia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7353, 15, 'Badio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7354, 15, 'Sigeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7355, 15, 'Ambroa (San Tirso Via)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7356, 15, 'Limodre -Santa Olalla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7357, 15, 'Naron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7358, 15, 'Rua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7359, 15, 'Pedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7360, 15, 'Bergondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7361, 15, 'Riocovo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7362, 15, 'Cabana de Bergantios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7363, 15, 'Carollo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7364, 15, 'Xocin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7365, 15, 'A Barciela -Santo Andre-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7366, 15, 'Sorrizo -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7367, 15, 'Meicende -Arteixo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7368, 15, 'Cristimil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7369, 15, 'Imende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7370, 15, 'Mazaricos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7371, 15, 'Moeche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7372, 15, 'Freitido de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7373, 15, 'Neda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7374, 15, 'Paderne'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7375, 15, 'As Calles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7376, 15, 'Rois'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7377, 15, 'As Somozas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7378, 15, 'Busel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7379, 15, 'Touro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7380, 15, 'Trazo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7381, 15, 'Valdovio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7382, 15, 'Covelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7383, 15, 'Puente Pasaje'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7384, 15, 'Figueiras Santiago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7385, 15, 'Cobelo -Abegondo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7386, 15, 'Villa Puerto Son'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7387, 15, 'Vedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7388, 15, 'Vilasantar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7389, 15, 'Vilarmaior'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7390, 15, 'Bares -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7391, 15, 'Mouga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7392, 15, 'Corrubedo -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7393, 15, 'Brea -O Pino-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7394, 15, 'El Barquero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7395, 15, 'Rial'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7396, 15, 'Vimieiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7397, 15, 'Campo Da Aldea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7398, 15, 'Ribadulla -Santa Cruz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7399, 15, 'Santa Maria -Ortigueira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7400, 15, 'Searez de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7401, 15, 'O Milladoiro -Ames-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7402, 15, 'Monte Toques'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7403, 15, 'Lale'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7404, 15, 'Vilarjuan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7405, 15, 'Gulfar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7406, 15, 'Vista Alegre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7407, 15, 'Arderis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7408, 15, 'La Iglesia Oroso Oroso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7409, 15, 'Outes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7410, 15, 'Riveira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7411, 15, 'Fornelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7412, 15, 'San Martin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7413, 15, 'Sigras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7414, 15, 'Lorbe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7415, 15, 'Pino -Val Do Dubra-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7416, 15, 'Toques'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7417, 15, 'Xanceda-El Salvador'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7418, 15, 'Gastrar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7419, 15, 'Arillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7420, 15, 'Perlio -San Estevo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7421, 15, 'O Leboreiro -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7422, 15, 'Pedrouzos -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7423, 15, 'Hacea Da Ma(Culleredo)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7424, 15, 'Cerceda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7425, 15, 'Gonzar -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7426, 15, 'O Pino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7427, 15, 'Santiso Barazon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7428, 15, 'Mourazos -San Jorge-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7429, 15, 'Santiso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7430, 15, 'Andeade -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7431, 15, 'Bendaa -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7432, 15, 'Cimadevila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7433, 15, 'Rois Buxan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7434, 15, 'Leroo -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7435, 15, 'Lago-Valdovio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7436, 15, 'Sorribas -Santo Tomas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7437, 15, 'Quintans Ames Ameixenda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7438, 15, 'Lens -San Paio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7439, 15, 'Sobrado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7440, 15, 'Ames -Santo Tomas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7441, 15, 'Ames Trasmonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7442, 15, 'Cabanas -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7443, 15, 'Ermida -Divino Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7444, 15, 'Souto -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7445, 15, 'Cornanda -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7446, 15, 'Bugallido-S.Pedro de Negreira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7447, 15, 'Landeira -San Esteban-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7448, 15, 'Lueiro -Santa Eulalia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7449, 15, 'Portor -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7450, 15, 'Bazar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7451, 15, 'Cicere -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7452, 15, 'Fontecada -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7453, 15, 'Villarraso -San Lorenzo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7454, 15, 'Mera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7455, 15, 'Piadela -San Esteban-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7456, 15, 'Castro -Santa Maria de Mio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7457, 15, 'Porzomillos -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7458, 15, 'Peiro de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7459, 15, 'Borneiro -San Juan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7460, 15, 'Corcoesto -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7461, 15, 'Cundins -San Paio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7462, 15, 'Esto -San Juan Bautista-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7463, 15, 'Silvarredonda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7464, 15, 'Razo -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7465, 15, 'Castro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7466, 15, 'Seavia -San Mamede-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7467, 15, 'Olveiroa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7468, 15, 'Dumbria Salgueiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7469, 15, 'Cerqueda -San Cristobo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7470, 15, 'Muxia Bardullas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7471, 15, 'Buituron -San Tirso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7472, 15, 'Caberta -San Felix-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7473, 15, 'Santa Maria Da O'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7474, 15, 'Ozon -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7475, 15, 'Tourian -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7476, 15, 'Vilastose -San Ciprian-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7477, 15, 'Cores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7478, 15, 'Jornes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7479, 15, 'Langueiron -San Julian-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7480, 15, 'Ponteceso Niones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7481, 15, 'Calo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7482, 15, 'Vimianzo Carantoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7483, 15, 'Carnes -San Cristobo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7484, 15, 'Tines -Santa Baia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7485, 15, 'Brandomil -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7486, 15, 'Castro Zas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7487, 15, 'Santa Sia de Roma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7488, 15, 'Bealo -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7489, 15, 'Cures -San Andres-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7490, 15, 'Fruime -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7491, 15, 'Lesende -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7492, 15, 'Beba -San Xulian-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7493, 15, 'Chacin -Santa Olaia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7494, 15, 'Sanamil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7495, 15, 'Isorna -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7496, 15, 'Frades'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7497, 15, 'Moar -Santa Eulalia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7498, 15, 'Cristimil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7499, 15, 'As Pontes de Garcia Rodriguez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7500, 15, 'Villestro -Santa Maria-'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7501, 15, 'El Temple -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7502, 15, 'Corti{As'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7503, 15, 'Eirabella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7504, 15, 'Leireta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7505, 15, 'Ames Oca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7506, 15, 'Cortegada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7507, 15, 'Eirapedria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7508, 15, 'Covas -Pieiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7509, 15, 'Sisalde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7510, 15, 'Santa Cecilia -Arteixo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7511, 15, 'Hortas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7512, 15, 'Barro de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7513, 15, 'Vilar -A Baa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7514, 15, 'Vilar de Suso -A Baa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7515, 15, 'Outeiro A Baa Outeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7516, 15, 'Trece -A Baa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7517, 15, 'Faxin -A Baa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7518, 15, 'Beluso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7519, 15, 'Moimenta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7520, 15, 'Mieites'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7521, 15, 'Betanzos Xan Rozo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7522, 15, 'Ardesende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7523, 15, 'Boqueixon Sergude'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7524, 15, 'La Iglesia -Sergude-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7525, 15, 'Noente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7526, 15, 'Pazos -Boqueixon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7527, 15, 'Santaya -Codeso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7528, 15, 'Lestedo -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7529, 15, 'Mourentans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7530, 15, 'Vilar -Brion-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7531, 15, 'Beres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7532, 15, 'Brio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7533, 15, 'Cabana Carballal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7534, 15, 'Frinle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7535, 15, 'Iao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7536, 15, 'Anos -San Esteban-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7537, 15, 'Santa Marina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7538, 15, 'Aon -Berdillo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7539, 15, 'Naron Carballo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7540, 15, 'Crucero -Naron-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7541, 15, 'Imende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7542, 15, 'Rodo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7543, 15, 'Vilar Do Carballo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7544, 15, 'A Cabra -Carral-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7545, 15, 'As Travesas -Carral-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7546, 15, 'Casaldalbre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7547, 15, 'Rodis -San Martin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7548, 15, 'Gonton'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7549, 15, 'Viris'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7550, 15, 'Regoelle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7551, 15, 'Frades Tarrio Papucin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7552, 15, 'Lousame Pousada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7553, 15, 'Ces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7554, 15, 'Pedreira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7555, 15, 'Placente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7556, 15, 'Suevos -Mazaricos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7557, 15, 'Cuia -Mazaricos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7558, 15, 'Castelo -Muxia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7559, 15, 'Pesadoira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7560, 15, 'Negreira San Martio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7561, 15, 'Marcelle -Negreira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7562, 15, 'Maio Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7563, 15, 'Calle -Ordes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7564, 15, 'Fosado -Ordes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7565, 15, 'Orellan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7566, 15, 'Castro Oroso Trasmonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7567, 15, 'Pieiron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7568, 15, 'Oza Callobre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7569, 15, 'Chantada -Paderne-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7570, 15, 'Condos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7571, 15, 'Sas -Paderne-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7572, 15, 'Tercio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7573, 15, 'San Amede'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7574, 15, 'Sinde -Padron-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7575, 15, 'Ponteceso Campara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7576, 15, 'Ponteceso Frojan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7577, 15, 'Sergude'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7578, 15, 'Orellan -Porto Do Son-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7579, 15, 'Vacariza -Rianxo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7580, 15, 'Ribeira Muios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7581, 15, 'Francelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7582, 15, 'Madelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7583, 15, 'Frieiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7584, 15, 'Picotos -Santa Comba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7585, 15, 'Sabaceda -Santa Comba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7586, 15, 'Santa Comba Boaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7587, 15, 'Santa Comba Padreiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7588, 15, 'Cotoleira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7589, 15, 'Barbeira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7590, 15, 'O Castro -Freixeiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7591, 15, 'Truebe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7592, 15, 'Vilar Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7593, 15, 'Guldriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7594, 15, 'Trasvea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7595, 15, 'Mourentan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7596, 15, 'Frais'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7597, 15, 'Cuns -Outes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7598, 15, 'Lantarou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7599, 15, 'Rates'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7600, 15, 'Silva -Teo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7601, 15, 'Ambroa -Tordoia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7602, 15, 'Tordoia Carballal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7603, 15, 'Liste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7604, 15, 'Vilar -Castenda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7605, 15, 'Vilarchan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7606, 15, 'Obra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7607, 15, 'Pousada -Touro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7608, 15, 'Tarrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7609, 15, 'Trazo Millarada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7610, 15, 'Penas -Valdovio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7611, 15, 'Abelenda -Val Do Dubra-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7612, 15, 'Insua -Val Do Dubra-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7613, 15, 'Malvares -Val Do Dubra-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7614, 15, 'Paradela -Vedra-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7615, 15, 'Quintans -Vimianzo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7616, 15, 'Pudenza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7617, 15, 'Budian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7618, 15, 'Sisto -Zas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7619, 15, 'Romelle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7620, 15, 'Zas Langueiron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7621, 15, 'Baizana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7622, 15, 'Rial de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7623, 15, 'Abellas -Zas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7624, 15, 'Montellos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7625, 15, 'Carnota Canedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7626, 15, 'Panches'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7627, 15, 'Carral Canedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7628, 15, 'Herves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7629, 15, 'Bornalle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7630, 15, 'Muxia Suxo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7631, 15, 'Areas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7632, 15, 'Bugalleira -Ponteceso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7633, 15, 'Busto -Santa Comba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7634, 15, 'Fonteculler'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7635, 15, 'A Baixa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7636, 15, 'San Martio -Riveira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7637, 15, 'Fornelos -Zas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7638, 15, 'Oza Santa Cruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7639, 15, 'Chave'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7640, 15, 'Eirexa -Tallara-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7641, 15, 'Asenso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7642, 15, 'Merexo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7643, 15, 'Santa Margarita -Naron-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7644, 15, 'Noia Pontenafonso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7645, 15, 'Vilar Costoya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7646, 15, 'Pousada -Padron-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7647, 15, 'Morono'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7648, 15, 'Salceda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7649, 15, 'Carballosa -Porto Do Son-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7650, 15, 'Basoas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7651, 15, 'Rianxo Rial'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7652, 15, 'Codesedas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7653, 15, 'Mouromorto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7654, 15, 'Cornide -Teo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7655, 15, 'Rua de Francos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7656, 15, 'Sollans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7657, 15, 'Regoufe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7658, 15, 'Bustelo -Teo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7659, 15, 'Penelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7660, 15, 'Sestelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7661, 15, 'Nande -Vedra-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7662, 15, 'Reboredo -Vimianzo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7663, 15, 'A Andragalla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7664, 15, 'Vila -Zas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7665, 15, 'Orosa -Aranga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7666, 15, 'Rodio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7667, 15, 'Novi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7668, 15, 'Ansean'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7669, 15, 'Dumbria Lucin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7670, 15, 'Vilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7671, 15, 'Pasacondia-Aldeola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7672, 15, 'Godon -Mazaricos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7673, 15, 'Vilar de Sobremonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7674, 15, 'Porto Son Curro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7675, 15, 'Laranga -Xuo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7676, 15, 'Serans -Porto Do Son-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7677, 15, 'Cobas -Rois-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7678, 15, 'Meiquiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7679, 15, 'Almozara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7680, 15, 'Esmorode'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7681, 15, 'Mallon -Cicere-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7682, 15, 'Outeiro -Castriz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7683, 15, 'Pereira -Vilamaior-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7684, 15, 'Rebordelos -Santa Comba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7685, 15, 'Rendos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7686, 15, 'Tribaldes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7687, 15, 'Curros -Toques-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7688, 15, 'Vimianzo Padreiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7689, 15, 'Netoma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7690, 15, 'Beo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7691, 15, 'Mundin -Cedeira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7692, 15, 'Chamin -Santa Eulalia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7693, 15, 'Boente -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7694, 15, 'Lamas -Sergude-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7695, 15, 'Bustelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7696, 15, 'Vilacha -O Pino-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7697, 15, 'Campos -Arzua-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7698, 15, 'Laracha San Cristobo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7699, 15, 'Cobas -Teo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7700, 15, 'Fernande -Ames-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7701, 15, 'Carballotorto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7702, 15, 'Baa Castro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7703, 15, 'Louredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7704, 15, 'Anide'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7705, 15, 'Francos -A Baa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7706, 15, 'Paredes -A Baa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7707, 15, 'Valia Laas A Ba\A'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7708, 15, 'Couto Carballo -Ordoeste-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7709, 15, 'Boiro Cadarnojo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7710, 15, 'Enseo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7711, 15, 'Insuachan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7712, 15, 'Montaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7713, 15, 'Pumares -Boqueixon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7714, 15, 'Rubial -Boqueixon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7715, 15, 'Babenzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7716, 15, 'Ninans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7717, 15, 'Pedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7718, 15, 'Pedrouzo -Cabana-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7719, 15, 'Rectoral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7720, 15, 'Rieiro -Cabana-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7721, 15, 'Alboris'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7722, 15, 'Carracha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7723, 15, 'Castelo -Carballo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7724, 15, 'Rapadoiro -Carballo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7725, 15, 'Guntian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7726, 15, 'Lagarteira -Carballo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7727, 15, 'Paradela -Carballo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7728, 15, 'Carballo Castrillon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7729, 15, 'Parada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7730, 15, 'Aron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7731, 15, 'Vilarnovo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7732, 15, 'Pasada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7733, 15, 'Tedin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7734, 15, 'Codesos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7735, 15, 'Morancelle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7736, 15, 'Tablilla -Cerceda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7737, 15, 'Londoo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7738, 15, 'Alvarellos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7739, 15, 'Campo de Berdeogas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7740, 15, 'Gestosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7741, 15, 'San Crimenzo -Dumbria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7742, 15, 'Ameneiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7743, 15, 'Cha Da Maria -Esmelle-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7744, 15, 'Lodeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7745, 15, 'Laracha Fontenla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7746, 15, 'Santa Margarita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7747, 15, 'Carantoa -Lousame-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7748, 15, 'Guiende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7749, 15, 'Cerquides'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7750, 15, 'Ardeleiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7751, 15, 'Filgueira -Lousame-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7752, 15, 'Malpica Leduzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7753, 15, 'Busto -Mazaricos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7754, 15, 'Cabanude'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7755, 15, 'Lago -Mazaricos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7756, 15, 'Antes -San Cosme-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7757, 15, 'Albores de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7758, 15, 'Corbeira -Mazaricos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7759, 15, 'Espigas-Vilaferreiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7760, 15, 'Garea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7761, 15, 'Visantoa -San Martin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7762, 15, 'Soutelo -Mesia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7763, 15, 'Calzada -Mesia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7764, 15, 'San Xian -Muros-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7765, 15, 'Aobres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7766, 15, 'Sorna -Muxia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7767, 15, 'Muxia Castro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7768, 15, 'Morpeguite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7769, 15, 'Cobeluda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7770, 15, 'Queis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7771, 15, 'Ceilan -Outes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7772, 15, 'Gosende -Outes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7773, 15, 'Pino Gradamil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7774, 15, 'Amenal -O Pino-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7775, 15, 'Campo -O Pino-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7776, 15, 'Limioa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7777, 15, 'Porto Son la Iglesia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7778, 15, 'Parada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7779, 15, 'Ermida -Rianxo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7780, 15, 'Vilario -Urdilde-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7781, 15, 'Freixo -San Sadurnio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7782, 15, 'Alon de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7783, 15, 'A Cabreira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7784, 15, 'Tapia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7785, 15, 'Vilarnovo -Freixeiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7786, 15, 'Recarei -Santa Comba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7787, 15, 'Alon de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7788, 15, 'Choren'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7789, 15, 'Vilanova -Sobrado-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7790, 15, 'Loureiro -Teo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7791, 15, 'Campo de Arriba -Tordoia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7792, 15, 'Tordoia Anxeriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7793, 15, 'Abongo Leobalde Tordoia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7794, 15, 'Vilar -Vila Do Abade-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7795, 15, 'Painza Numide Tordoia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7796, 15, 'Junquera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7797, 15, 'Quintas -Enquerentes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7798, 15, 'Lestrove -Trazo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7799, 15, 'Portomedal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7800, 15, 'Rebordelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7801, 15, 'Riobo -Valdovio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7802, 15, 'Vimianzo Vilaseco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7803, 15, 'Figaredo Carantoa Vimianzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7804, 15, 'Seorans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7805, 15, 'Lavandeira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7806, 15, 'Pedramaior -Zas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7807, 15, 'Ribas -Teo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7808, 15, 'Balteiro -Riveira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7809, 15, 'Santiso -Aranga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7810, 15, 'San Salvador'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7811, 15, 'Servia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7812, 15, 'Pumardorio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7813, 15, 'Chazo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7814, 15, 'Comoxo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7815, 15, 'Foxacos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7816, 15, 'Baltar -Naron-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7817, 15, 'Currelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7818, 15, 'Valdovio Carreira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7819, 15, 'Mio Chao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7820, 15, 'San Payo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7821, 15, 'Roo -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7822, 15, 'Cerdelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7823, 15, 'Insua -Arteixo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7824, 15, 'Margarida -Cabana-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7825, 15, 'Riotorto -Ponteceso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7826, 15, 'Nogueiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7827, 15, 'Aldea de Cela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7828, 15, 'Beldoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7829, 15, 'San Roman -Abegondo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7830, 15, 'Corredoiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7831, 15, 'Arceo -San Vicente-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7832, 15, 'Cotaro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7833, 15, 'Carboal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7834, 15, 'Filgueira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7835, 15, 'Irixoa Lapido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7836, 15, 'Vilar -Lousame-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7837, 15, 'Eirexe Abeancos Melide'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7838, 15, 'Sanxiao -Melide-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7839, 15, 'Roxal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7840, 15, 'Vilanova -San Sadurnio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7841, 15, 'Vaamonde -Toques-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7842, 15, 'Tordoia Barral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7843, 15, 'Carballadrade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7844, 15, 'Carballal -Castenda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7845, 15, 'Quintans -Paramos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7846, 15, 'Cernadas -Vilasantar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7847, 15, 'Orbellido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7848, 15, 'Vilaestevez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7849, 15, 'Agarea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7850, 15, 'Vila Pino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7851, 15, 'Astande de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7852, 15, 'Laracha Lemaio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7853, 15, 'Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7854, 15, 'Filgueira-Malpica Bergantios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7855, 15, 'Sendon -Muxia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7856, 15, 'Agrodosio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7857, 15, 'Carballedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7858, 15, 'Villacid de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7859, 15, 'Astrar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7860, 15, 'Vilasuso -Tallo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7861, 15, 'Xallas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7862, 15, 'Guillufe -Tordoia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7863, 15, 'Arroeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7864, 15, 'Noaio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7865, 15, 'Coruxo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7866, 15, 'Calo -Ames-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7867, 15, 'Pior -Ames-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7868, 15, 'Ameixenda -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7869, 15, 'Cruxeiras -Ames-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7870, 15, 'Vilaverde -Ames-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7871, 15, 'Carballo -Ames-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7872, 15, 'Suevos -Ames-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7873, 15, 'Pousadoiro -Aranga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7874, 15, 'Roris -Arteixo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7875, 15, 'Fortesende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7876, 15, 'Canzobre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7877, 15, 'Orxal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7878, 15, 'Seixas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7879, 15, 'Guldris'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7880, 15, 'Chave de Ponte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7881, 15, 'Osebe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7882, 15, 'Vioxo de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7883, 15, 'Salao Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7884, 15, 'Aldemunde-Sta.Maria Magdalena-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7885, 15, 'Adrao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7886, 15, 'Cornido -Carnota-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7887, 15, 'Sisalde Maior'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7888, 15, 'Porcar -Cee-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7889, 15, 'Ruibo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7890, 15, 'A Carbaliza -Cee-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7891, 15, 'Sembra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7892, 15, 'Brea -Cerceda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7893, 15, 'Pedamua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7894, 15, 'Calvario -Cerceda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7895, 15, 'Gosende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7896, 15, 'A Devesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7897, 15, 'Chain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7898, 15, 'Sarteguas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7899, 15, 'Mions -Dumbria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7900, 15, 'Castro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7901, 15, 'Hospital'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7902, 15, 'Vilar -Fisterra-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7903, 15, 'Bujan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7904, 15, 'Padris'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7905, 15, 'Sardieiro de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7906, 15, 'Iglesario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7907, 15, 'Corgo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7908, 15, 'Coens'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7909, 15, 'Gandarela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7910, 15, 'Fontefria -Lousame-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7911, 15, 'Comparada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7912, 15, 'Silvarredonda -Lousame-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7913, 15, 'Os Resios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7914, 15, 'Brion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7915, 15, 'Ribadeza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7916, 15, 'Grille'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7917, 15, 'Junqueira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7918, 15, 'Xesto -Beba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7919, 15, 'Fornis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7920, 15, 'Manda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7921, 15, 'San Cristobo -Mazaricos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7922, 15, 'Campelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7923, 15, 'Montellos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7924, 15, 'Montrove'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7925, 15, 'Ansimonde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7926, 15, 'Bollo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7927, 15, 'Buia Vilanova Mio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7928, 15, 'San Ramon -Moeche-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7929, 15, 'Silvosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7930, 15, 'Mintirans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7931, 15, 'Trasufre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7932, 15, 'Lourido -Muxia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7933, 15, 'Fumieo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7934, 15, 'Cibran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7935, 15, 'Pedralonga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7936, 15, 'Reibo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7937, 15, 'Trece'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7938, 15, 'Barbazan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7939, 15, 'Piaxe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7940, 15, 'Gorgal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7941, 15, 'Barcula'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7942, 15, 'Nouche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7943, 15, 'Vilasuso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7944, 15, 'Castenda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7945, 15, 'Cas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7946, 15, 'Villacid de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7947, 15, 'Costa -Oroso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7948, 15, 'Estacion Garga Trasmonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7949, 15, 'Valverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7950, 15, 'Feas -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7951, 15, 'Penela -Ortigueira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7952, 15, 'Rocha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7953, 15, 'Pol -Ortigueira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7954, 15, 'Cabanamoura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7955, 15, 'O Vilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7956, 15, 'Outon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7957, 15, 'Bandin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7958, 15, 'Casal -Padron-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7959, 15, 'Corral -Padron-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7960, 15, 'Rial -Padron-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7961, 15, 'Casas Novas Tallo Ponteceso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7962, 15, 'Outon -Outes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7963, 15, 'Picadizo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7964, 15, 'Espasandin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7965, 15, 'Portocarreiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7966, 15, 'Arman'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7967, 15, 'Amarelle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7968, 15, 'A Castieira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7969, 15, 'Vilarqueimado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7970, 15, 'Marantes -San Vicente-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7971, 15, 'Casanova -Nogueira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7972, 15, 'Aido -Teo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7973, 15, 'Insua -Teo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7974, 15, 'Cachons'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7975, 15, 'Cepeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7976, 15, 'San Julian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7977, 15, 'Cimadevila -Toques-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7978, 15, 'Montelen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7979, 15, 'Fontan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7980, 15, 'Vilaroscuro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7981, 15, 'Arcai de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7982, 15, 'Pontraga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7983, 15, 'Trazo Breixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7984, 15, 'Merelle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7985, 15, 'Gontar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7986, 15, 'Vilalba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7987, 15, 'Cabada -Val Do Dubra-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7988, 15, 'A Igrexa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7989, 15, 'Breanca -Vilarmaior-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7990, 15, 'Lobeiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7991, 15, 'Vimianzo Casas Novas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7992, 15, 'Currais'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7993, 15, 'Rial de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7994, 15, 'A Braa -Zas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7995, 15, 'Rosende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7996, 15, 'Rus -Zas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7997, 15, 'Bragaa -Toques-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7998, 15, 'Gasamans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (7999, 15, 'Bugallido -San Pedro de Ames-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8000, 15, 'Vilouta'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8001, 15, 'Maques'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8002, 15, 'Frean -Arteixo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8003, 15, 'Bosende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8004, 15, 'Torneiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8005, 15, 'Rial'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8006, 15, 'Ferraces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8007, 15, 'Vilar de Cerdeiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8008, 15, 'Vilar Cima'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8009, 15, 'Mundris'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8010, 15, 'Buenavista'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8011, 15, 'Ramil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8012, 15, 'Loureiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8013, 15, 'Vidaloiso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8014, 15, 'Busto de Frades'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8015, 15, 'Fontefria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8016, 15, 'Bello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8017, 15, 'Millan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8018, 15, 'Ameixenda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8019, 15, 'Paradoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8020, 15, 'Cambre San Roque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8021, 15, 'Outeirios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8022, 15, 'Bas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8023, 15, 'Centeas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8024, 15, 'La Iglesia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8025, 15, 'Taramuo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8026, 15, 'San Jose'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8027, 15, 'Vilanova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8028, 15, 'Picardel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8029, 15, 'Barroso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8030, 15, 'Curras de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8031, 15, 'Cuca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8032, 15, 'Bregua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8033, 15, 'Castelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8034, 15, 'Touzas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8035, 15, 'Castieira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8036, 15, 'Castro -Fisterra-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8037, 15, 'Suarriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8038, 15, 'Crucero Nuevo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8039, 15, 'Aldaris'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8040, 15, 'Enxilde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8041, 15, 'Figueira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8042, 15, 'Campo Capela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8043, 15, 'Fonte Fria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8044, 15, 'Tuas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8045, 15, 'Vilar Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8046, 15, 'Villaverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8047, 15, 'Ordes Adran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8048, 15, 'Campo del Sino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8049, 15, 'Ventosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8050, 15, 'La Iglesia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8051, 15, 'Corbelle -Ortigueira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8052, 15, 'Mastontan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8053, 15, 'Carleo de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8054, 15, 'Suso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8055, 15, 'Amarelle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8056, 15, 'Cerdeira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8057, 15, 'Barcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8058, 15, 'Ferreiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8059, 15, 'Agrafoxo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8060, 15, 'As Quintas -S. de Compostela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8061, 15, 'Albudio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8062, 15, 'O Lamascal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8063, 15, 'Froja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8064, 15, 'Guiso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8065, 15, 'Porto Salgueiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8066, 15, 'Fondevila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8067, 15, 'Castrillon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8068, 15, 'Pazos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8069, 15, 'Touro Oca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8070, 15, 'Aldea de Xavestre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8071, 15, 'Campo Do Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8072, 15, 'Pereiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8073, 15, 'Pantin -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8074, 15, 'Grijoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8075, 15, 'Devesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8076, 15, 'Novelle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8077, 15, 'Arjomil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8078, 15, 'Borreiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8079, 15, 'Pereiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8080, 15, 'Arton'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8081, 15, 'Albergueria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8082, 15, 'Liares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8083, 15, 'Rioseco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8084, 15, 'Pontemaceira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8085, 15, 'Corredoira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8086, 15, 'Bamela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8087, 15, 'Gonselle de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8088, 15, 'Barouta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8089, 15, 'Soutullo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8090, 15, 'Chamin -Santa Eulalia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8091, 15, 'Boente de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8092, 15, 'Fruzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8093, 15, 'Filgueira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8094, 15, 'Vilarnovo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8095, 15, 'Barreiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8096, 15, 'Alde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8097, 15, 'Prousor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8098, 15, 'Cantalarrana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8099, 15, 'Vilar Da Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8100, 15, 'Buchain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8101, 15, 'San Mamed'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8102, 15, 'Rial'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8103, 15, 'Cotobade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8104, 15, 'Riba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8105, 15, 'Ferreiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8106, 15, 'Reguengo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8107, 15, 'Baa Menlle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8108, 15, 'Graa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8109, 15, 'Gas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8110, 15, 'Verea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8111, 15, 'Graso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8112, 15, 'Landeiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8113, 15, 'Pazos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8114, 15, 'Valmayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8115, 15, 'Pieiro Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8116, 15, 'Casaldesuso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8117, 15, 'Milleiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8118, 15, 'Boqueixon Loureda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8119, 15, 'Noenlle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8120, 15, 'Guisande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8121, 15, 'O Outeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8122, 15, 'Chave de Carballo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8123, 15, 'Saime'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8124, 15, 'Cantelar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8125, 15, 'Alfonsin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8126, 15, 'Vexo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8127, 15, 'Forxan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8128, 15, 'Dombate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8129, 15, 'Fontela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8130, 15, 'Camafreita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8131, 15, 'Feal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8132, 15, 'Cambre Gosende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8133, 15, 'A Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8134, 15, 'Estevez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8135, 15, 'Regueira Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8136, 15, 'Granja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8137, 15, 'Vilela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8138, 15, 'Vilar de Uz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8139, 15, 'Vilar de Cidre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8140, 15, 'Cabrois'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8141, 15, 'Gosende -Carral-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8142, 15, 'Ameas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8143, 15, 'Abrigosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8144, 15, 'Fadibon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8145, 15, 'Canosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8146, 15, 'Pereira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8147, 15, 'San Julian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8148, 15, 'Picota'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8149, 15, 'Pedregal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8150, 15, 'Lagoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8151, 15, 'Cerdeira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8152, 15, 'Barreiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8153, 15, 'Pazos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8154, 15, 'Sandian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8155, 15, 'Sucadio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8156, 15, 'Tasende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8157, 15, 'Castrillon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8158, 15, 'Coiros Ois'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8159, 15, 'Xalo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8160, 15, 'Hermida de Ternande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8161, 15, 'Vilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8162, 15, 'Pexegueiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8163, 15, 'Vacariza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8164, 15, 'Cheo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8165, 15, 'Rilo -Ferrol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8166, 15, 'Vigo -Fisterra-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8167, 15, 'Fonsa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8168, 15, 'Fontelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8169, 15, 'Cabanas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8170, 15, 'Requesende -Laracha-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8171, 15, 'Gestal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8172, 15, 'Vilario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8173, 15, 'Condesuso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8174, 15, 'Cernado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8175, 15, 'Cuia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8176, 15, 'Bexeres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8177, 15, 'Castro -Lousame-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8178, 15, 'Maxide'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8179, 15, 'Abeixon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8180, 15, 'Marracin de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8181, 15, 'Vilar Reconco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8182, 15, 'Porto Do Fondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8183, 15, 'Espigas-Vilaferreiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8184, 15, 'Cumbrans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8185, 15, 'Cornes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8186, 15, 'Gosolfre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8187, 15, 'Fontemourente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8188, 15, 'Melide Pieiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8189, 15, 'Pior'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8190, 15, 'Carballeira -Visantoa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8191, 15, 'Mio Barbeita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8192, 15, 'Riomaior'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8193, 15, 'Castelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8194, 15, 'Amira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8195, 15, 'Armear'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8196, 15, 'Bouzas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8197, 15, 'Cartel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8198, 15, 'Xurarantes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8199, 15, 'Vilachan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8200, 15, 'Doso -San Lourenzo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8201, 15, 'Liares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8202, 15, 'Vila de Anca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8203, 15, 'San Vicente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8204, 15, 'Redemuios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8205, 15, 'Curxido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8206, 15, 'Fornos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8207, 15, 'Portocamio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8208, 15, 'Mouris'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8209, 15, 'Agrelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8210, 15, 'Sampayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8211, 15, 'Zampao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8212, 15, 'Pedre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8213, 15, 'Rua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8214, 15, 'Cubelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8215, 15, 'Estacion Oroso Villacid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8216, 15, 'Adega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8217, 15, 'A Corga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8218, 15, 'Villardigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8219, 15, 'Ousesende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8220, 15, 'A Famelga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8221, 15, 'Moledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8222, 15, 'Crespos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8223, 15, 'Esperante'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8224, 15, 'Agra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8225, 15, 'A Rua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8226, 15, 'Vilaboa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8227, 15, 'Outeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8228, 15, 'Pozos Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8229, 15, 'Villarrel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8230, 15, 'Pazo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8231, 15, 'Castro O Pino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8232, 15, 'San Miguel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8233, 15, 'Pino Ramil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8234, 15, 'Calle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8235, 15, 'Outeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8236, 15, 'Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8237, 15, 'Pumar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8238, 15, 'Rabal de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8239, 15, 'Vilaseco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8240, 15, 'Lardeiros de Medin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8241, 15, 'Pena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8242, 15, 'Pieiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8243, 15, 'Brantuas de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8244, 15, 'Brantuas de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8245, 15, 'Figueiroa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8246, 15, 'Carrasqueira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8247, 15, 'Porto Do Souto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8248, 15, 'Pardias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8249, 15, 'Regueira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8250, 15, 'Boebre -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8251, 15, 'Parga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8252, 15, 'Sisto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8253, 15, 'Sa de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8254, 15, 'Mantoo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8255, 15, 'Calo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8256, 15, 'Resua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8257, 15, 'Goltar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8258, 15, 'Campelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8259, 15, 'Paradela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8260, 15, 'Figueiroa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8261, 15, 'Bralo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8262, 15, 'Silvarredonda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8263, 15, 'Xei'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8264, 15, 'Souto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8265, 15, 'Vilar Abade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8266, 15, 'Quintans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8267, 15, 'Chao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8268, 15, 'Albeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8269, 15, 'As Antes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8270, 15, 'Aran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8271, 15, 'Rieiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8272, 15, 'As Figueiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8273, 15, 'Castieira A'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8274, 15, 'Boaa de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8275, 15, 'Estevez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8276, 15, 'As Abeleiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8277, 15, 'O Outeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8278, 15, 'Pragais'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8279, 15, 'Os Fornos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8280, 15, 'Abuin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8281, 15, 'Aldea Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8282, 15, 'A Sionlla de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8283, 15, 'Roan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8284, 15, 'As Moas de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8285, 15, 'Correxins'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8286, 15, 'Folgoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8287, 15, 'San Benito'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8288, 15, 'Chain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8289, 15, 'Balada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8290, 15, 'Balocas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8291, 15, 'Dombrete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8292, 15, 'Vilario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8293, 15, 'Parque Montouto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8294, 15, 'Vilar Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8295, 15, 'Teo Lamas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8296, 15, 'Ponte Queimadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8297, 15, 'Vilouriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8298, 15, 'Baldaio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8299, 15, 'Casal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8300, 15, 'Pazo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8301, 15, 'Ribeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8302, 15, 'Vilasal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8303, 15, 'Abres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8304, 15, 'Vilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8305, 15, 'Peton'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8306, 15, 'Nogueira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8307, 15, 'Pedrouzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8308, 15, 'Santiavedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8309, 15, 'Salgueiroas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8310, 15, 'Penelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8311, 15, 'Oleiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8312, 15, 'Malvares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8313, 15, 'Mecende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8314, 15, 'Meixome'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8315, 15, 'Paradela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8316, 15, 'Barral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8317, 15, 'Codesal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8318, 15, 'Pieiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8319, 15, 'Millares Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8320, 15, 'Castro Touro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8321, 15, 'Touro Sar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8322, 15, 'Pena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8323, 15, 'Foxas -San Breixo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8324, 15, 'Arinteiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8325, 15, 'Vilanova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8326, 15, 'Basebe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8327, 15, 'Castro -Prevedios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8328, 15, 'Mince'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8329, 15, 'Toja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8330, 15, 'Porcariza -Touro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8331, 15, 'Covas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8332, 15, 'Vilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8333, 15, 'Viao Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8334, 15, 'Ponte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8335, 15, 'Pereiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8336, 15, 'Vilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8337, 15, 'Cerradelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8338, 15, 'Arnexo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8339, 15, 'Rieiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8340, 15, 'Cebei'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8341, 15, 'Cornes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8342, 15, 'Valdovio Vilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8343, 15, 'Caneiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8344, 15, 'Lagares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8345, 15, 'Valdovio Villarrube'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8346, 15, 'Cotelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8347, 15, 'Vilapedre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8348, 15, 'Pieiro -Vedra-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8349, 15, 'Texo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8350, 15, 'Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8351, 15, 'Manlle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8352, 15, 'Santa Comba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8353, 15, 'Vilanova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8354, 15, 'Pieiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8355, 15, 'Tras Cean'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8356, 15, 'Campolongo -Vimianzo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8357, 15, 'Moreira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8358, 15, 'Reparada -Vimianzo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8359, 15, 'Castromil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8360, 15, 'Carballa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8361, 15, 'Coluns'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8362, 15, 'Sobreira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8363, 15, 'Vermello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8364, 15, 'Vilar de Lamas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8365, 15, 'Couto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8366, 15, 'Boiro Cespon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8367, 15, 'Miron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8368, 15, 'Escras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8369, 15, 'Loutoo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8370, 15, 'As Cortes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8371, 15, 'Pozacas-Leduzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8372, 15, 'A Pedrosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8373, 15, 'Bareango'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8374, 15, 'Vilario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8375, 15, 'Pino Quintas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8376, 15, 'Garabanxa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8377, 15, 'Deseiro de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8378, 15, 'Beis -Arzua-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8379, 15, 'Caxusa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8380, 15, 'Soutullos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8381, 15, 'Mato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8382, 15, 'Vioxo de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8383, 15, 'Salao Pequeno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8384, 15, 'Pousada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8385, 15, 'Cotaredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8386, 15, 'Montefurado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8387, 15, 'Boimir'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8388, 15, 'Mercurin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8389, 15, 'Espiritu Santo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8390, 15, 'Coiron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8391, 15, 'Boimir'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8392, 15, 'Via -Laracha-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8393, 15, 'Cernande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8394, 15, 'Catasol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8395, 15, 'Becollo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8396, 15, 'Taramancos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8397, 15, 'O Barco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8398, 15, 'Rial'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8399, 15, 'Samil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8400, 15, 'Cimadevila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8401, 15, 'Esperelle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8402, 15, 'Outon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8403, 15, 'Casal Do Poo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8404, 15, 'O Loureiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8405, 15, 'Bustelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8406, 15, 'Vilardante'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8407, 15, 'Vilaboa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8408, 15, 'Vilar Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8409, 15, 'O Carballal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8410, 15, 'Sarela de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8411, 15, 'Vilares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8412, 15, 'Restande -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8413, 15, 'Maxais'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8414, 15, 'Xerman'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8415, 15, 'Pousada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8416, 15, 'Viogrande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8417, 15, 'Canicoba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8418, 15, 'Feal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8419, 15, 'Larao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8420, 15, 'Riveira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8421, 15, 'Vilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8422, 15, 'Follente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8423, 15, 'Teixidon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8424, 15, 'Pazos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8425, 15, 'Quintans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8426, 15, 'Rieiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8427, 15, 'Vilamarta de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8428, 15, 'Mallas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8429, 15, 'Hermedesujo de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8430, 15, 'San Salvador'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8431, 15, 'Serantes -Muxia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8432, 15, 'San Martio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8433, 15, 'Saleirons'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8434, 15, 'Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8435, 15, 'Vila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8436, 15, 'Texexe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8437, 15, 'Chaves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8438, 15, 'Agromaior'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8439, 15, 'Fampousa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8440, 15, 'Vesia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8441, 15, 'Emes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8442, 15, 'Guimarans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8443, 15, 'Pazo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8444, 15, 'Meimendre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8445, 15, 'Parajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8446, 15, 'Manle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8447, 15, 'Vigobo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8448, 15, 'Suevos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8449, 15, 'Vilacoba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8450, 15, 'Cesta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8451, 15, 'Forno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8452, 15, 'Vilario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8453, 15, 'Castri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8454, 15, 'Pieiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8455, 15, 'Chamusqueira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8456, 15, 'Barbalde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8457, 15, 'Ferrol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8458, 15, 'Figueroa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8459, 15, 'Calvelo de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8460, 15, 'Covas de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8461, 15, 'Prearada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8462, 15, 'Ramiscosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8463, 15, 'Salto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8464, 15, 'Brandeas Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8465, 15, 'Leixoada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8466, 15, 'Nogaredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8467, 15, 'Trasmonte -San Esteban-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8468, 15, 'Rioxunto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8469, 15, 'Campo de Bragunde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8470, 15, 'Bamiro -San Mamede-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8471, 15, 'O Milladoiro -Ames-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8472, 15, 'Braa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8473, 15, 'Penaposta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8474, 15, 'Outon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8475, 15, 'Pedra Do Sal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8476, 15, 'Souto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8477, 15, 'Belles de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8478, 15, 'A Cuncheira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8479, 15, 'Ferreiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8480, 15, 'Moreda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8481, 15, 'Castro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8482, 15, 'Fafian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8483, 15, 'Curro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8484, 15, 'Vilarelle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8485, 15, 'Portorraro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8486, 15, 'Brueiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8487, 15, 'Gas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8488, 15, 'Murujeses'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8489, 15, 'Esperela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8490, 15, 'Casal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8491, 15, 'Loibo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8492, 15, 'Calzada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8493, 15, 'Paza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8494, 15, 'Valdeviatos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8495, 15, 'Pena Do Traste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8496, 15, 'Montemuio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8497, 15, 'Covia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8498, 15, 'Cimadevila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8499, 15, 'Inxerto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8500, 15, 'Conga'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8501, 15, 'Sego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8502, 15, 'Moares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8503, 15, 'Busto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8504, 15, 'Duei'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8505, 15, 'A Chisca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8506, 15, 'Perecova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8507, 15, 'Moimentos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8508, 15, 'Xallas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8509, 15, 'O Porto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8510, 15, 'Castro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8511, 15, 'Reboredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8512, 15, 'Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8513, 15, 'Formaris'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8514, 15, 'Gamas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8515, 15, 'Vilamayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8516, 15, 'Balsoma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8517, 15, 'Santiago Pereiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8518, 15, 'Gamil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8519, 15, 'Miramontes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8520, 15, 'Nemenzo -Santa Cristina-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8521, 15, 'Sanxuas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8522, 15, 'Frades'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8523, 15, 'A Ponte Alvar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8524, 15, 'San Payo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8525, 15, 'Garabal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8526, 15, 'Bargo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8527, 15, 'Barral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8528, 15, 'Aradas-Santiago de Compostela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8529, 15, 'Carlexo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8530, 15, 'Feans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8531, 15, 'Reborido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8532, 15, 'Souto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8533, 15, 'Campo Iglesia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8534, 15, 'Liares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8535, 15, 'Barazon Pequeno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8536, 15, 'Carballido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8537, 15, 'Villar Ferreiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8538, 15, 'Pobanza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8539, 15, 'Quintas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8540, 15, 'Recouso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8541, 15, 'Mariaos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8542, 15, 'Villalbarro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8543, 15, 'Touro Empalme'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8544, 15, 'Pedrouzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8545, 15, 'A Arnoba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8546, 15, 'A Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8547, 15, 'Guris'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8548, 15, 'O Porto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8549, 15, 'O Castro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8550, 15, 'Zabuceda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8551, 15, 'O Rial'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8552, 15, 'O Combel de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8553, 15, 'O Combel de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8554, 15, 'Sartaia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8555, 15, 'Fonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8556, 15, 'Porto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8557, 15, 'Campo de Carlexo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8558, 15, 'Calzande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8559, 15, 'Laxe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8560, 15, 'Caxadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8561, 15, 'Cerban'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8562, 15, 'Comareiro -Serramo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8563, 15, 'Carneo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8564, 15, 'Quintans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8565, 15, 'Vilar de Costa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8566, 15, 'Castrelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8567, 15, 'Gueima'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8568, 15, 'Iglesia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8569, 15, 'Gosende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8570, 15, 'Fontorto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8571, 15, 'Hospital'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8572, 15, 'Astrai'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8573, 15, 'Feas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8574, 15, 'O Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8575, 15, 'A Ribeira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8576, 15, 'Seble'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8577, 15, 'Arosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8578, 15, 'O Couto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8579, 15, 'Trieiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8580, 15, 'Canedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8581, 15, 'Villarboy -Monfero-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8582, 15, 'Villafail'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8583, 15, 'Fondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8584, 15, 'Cornes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8585, 15, 'Leston Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8586, 15, 'Pando'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8587, 15, 'Vistavos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8588, 15, 'Labexo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8589, 15, 'Vilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8590, 15, 'Pedros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8591, 15, 'Gandarela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8592, 15, 'Ameixeiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8593, 15, 'Niarelle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8594, 15, 'San Tome'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8595, 15, 'Neiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8596, 15, 'Porqueira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8597, 15, 'Feans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8598, 15, 'Trasbarcala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8599, 15, 'Cornado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8600, 15, 'Rons'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8601, 15, 'Castelan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8602, 15, 'Couso de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8603, 15, 'La Iglesia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8604, 15, 'Vilar Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8605, 15, 'Vilar de Ordoeste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8606, 15, 'Libreiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8607, 15, 'Vilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8608, 15, 'Carballos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8609, 15, 'Vilar Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8610, 15, 'Noicela -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8611, 15, 'Arganosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8612, 15, 'San Saturnino -Carballo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8613, 15, 'Calvelo de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8614, 15, 'Outeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8615, 15, 'Casal de Maria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8616, 15, 'Cra. del Meson -Cerceda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8617, 15, 'Mixon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8618, 15, 'Chao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8619, 15, 'Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8620, 15, 'Iglesia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8621, 15, 'Pieiro de Vales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8622, 15, 'Figueredo de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8623, 15, 'Hermida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8624, 15, 'Castro de Ares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8625, 15, 'Vilaverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8626, 15, 'Pieiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8627, 15, 'Mira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8628, 15, 'Carrizal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8629, 15, 'Centia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8630, 15, 'Brenlla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8631, 15, 'Pereiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8632, 15, 'Vilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8633, 15, 'Rececinde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8634, 15, 'Amboada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8635, 15, 'Buxan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8636, 15, 'Leston'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8637, 15, 'Valencia -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8638, 15, 'Erbelleira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8639, 15, 'Agrilloi de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8640, 15, 'Figueroa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8641, 15, 'Gatiande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8642, 15, 'Lume de Suso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8643, 15, 'Coton'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8644, 15, 'Edrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8645, 15, 'Esternande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8646, 15, 'Gandria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8647, 15, 'Pazo Trabe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8648, 15, 'Pazo Vello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8649, 15, 'Soutullo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8650, 15, 'Arixon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8651, 15, 'Nogueira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8652, 15, 'Portoquintans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8653, 15, 'Serra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8654, 15, 'Casanova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8655, 15, 'Outeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8656, 15, 'Fontao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8657, 15, 'Taberna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8658, 15, 'San Mauro -Boiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8659, 15, 'Vilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8660, 15, 'Pazo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8661, 15, 'Reboredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8662, 15, 'Quintas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8663, 15, 'Casal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8664, 15, 'Ferrulleira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8665, 15, 'Iglesario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8666, 15, 'Sanfis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8667, 15, 'Marfulo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8668, 15, 'Melgueiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8669, 15, 'Rens'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8670, 15, 'Lousame Corral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8671, 15, 'Pascual'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8672, 15, 'Puente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8673, 15, 'Ginzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8674, 15, 'Gosende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8675, 15, 'Xuanzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8676, 15, 'Villardel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8677, 15, 'Casas Grandes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8678, 15, 'Abegondo Sarandones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8679, 15, 'Geixade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8680, 15, 'Plaza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8681, 15, 'Seixurra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8682, 15, 'Curras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8683, 15, 'Poceira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8684, 15, 'Borducedo Pequeo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8685, 15, 'Insua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8686, 15, 'Reino -Ames-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8687, 15, 'Calzada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8688, 15, 'Iglesia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8689, 15, 'Sobrado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8690, 15, 'Edreira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8691, 15, 'Portochan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8692, 15, 'Guiliade -Betanzos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8693, 15, 'Curras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8694, 15, 'Arosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8695, 15, 'Pieiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8696, 15, 'Quioy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8697, 15, 'Engas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8698, 15, 'Giadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8699, 15, 'Vilaboa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8700, 15, 'Ardilleiro Pequeo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8701, 15, 'Outeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8702, 15, 'Santabaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8703, 15, 'Vilas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8704, 15, 'Iglesia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8705, 15, 'Ternande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8706, 15, 'Samin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8707, 15, 'Carballal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8708, 15, 'Ordes Grela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8709, 15, 'Folgueira -Culleredo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8710, 15, 'Ril'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8711, 15, 'Cicho'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8712, 15, 'Insua -Paderne-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8713, 15, 'Melide Vitiriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8714, 15, 'Candail'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8715, 15, 'A Lagoa -Bergondo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8716, 15, 'Soeiro -San Julian-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8717, 15, 'Larin -San Esteban-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8718, 15, 'Nos -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8719, 15, 'Sigueiro -Santiago Compostela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8720, 15, 'Frexufre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8721, 15, 'Armuo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8722, 15, 'Montouto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8723, 15, 'San Vincenzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8724, 15, 'Montao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8725, 15, 'Vilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8726, 15, 'Boimil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8727, 15, 'Ferreria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8728, 15, 'Abeleira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8729, 15, 'Brazal de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8730, 15, 'Carracedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8731, 15, 'Marraxon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8732, 15, 'Miron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8733, 15, 'Nimo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8734, 15, 'Vilardante'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8735, 15, 'Vilafabeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8736, 15, 'Caneiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8737, 15, 'Hermida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8738, 15, 'Sobrevila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8739, 15, 'Campoverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8740, 15, 'Pouparia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8741, 15, 'Farrapas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8742, 15, 'Eirexa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8743, 15, 'Abelleira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8744, 15, 'Sardecoiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8745, 15, 'Foxo Do Cabrito'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8746, 15, 'Vilares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8747, 15, 'Pontealbar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8748, 15, 'Calvario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8749, 15, 'Campo Do Hospital'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8750, 15, 'Trasmonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8751, 15, 'Cachopal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8752, 15, 'Eirexe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8753, 15, 'Horta -Cabanas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8754, 15, 'Salmonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8755, 15, 'Rendal de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8756, 15, 'Merelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8757, 15, 'Magro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8758, 15, 'Parao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8759, 15, 'Subeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8760, 15, 'Sangorzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8761, 15, 'Estraviz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8762, 15, 'Santa Uxia de Riveira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8763, 15, 'Meson Da Auga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8764, 15, 'Ias -San Xurxo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8765, 15, 'Covas (Ames)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8766, 15, 'Mecende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8767, 15, 'Aldeagrande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8768, 15, 'Nos -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8769, 15, 'Iqas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8770, 15, 'Almeiras -San Julian-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8771, 15, 'Rutis -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8772, 15, 'Cacheiras -San Simon de Ons-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8773, 15, 'San Adrian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8774, 15, 'Reis(Teo)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8775, 15, 'Nos -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8776, 15, 'Santa Cristina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8777, 15, 'El Seijal (Seijal)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8778, 15, 'Padreiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8779, 15, 'Bentin Bugallido Ames'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8780, 15, 'Santa Gema'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8781, 15, 'Val Dubra - Lugar Pousada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8782, 15, 'Nespereira -Teo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8783, 15, 'Fonteculler'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8784, 15, 'Sta.Cecilia(Naron)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8785, 15, 'Marrozos -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8786, 15, 'O Graxal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8787, 15, 'Mesia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8788, 15, 'Montrove'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8789, 15, 'Urdilde -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8790, 15, 'Pantin -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8791, 15, 'San Juan Villanueva(Mio)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8792, 15, 'O Milladoiro -Ames-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8793, 16, 'El Acebron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8794, 16, 'Alcazar del Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8795, 16, 'Almodovar del Pinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8796, 16, 'Belinchon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8797, 16, 'Belmonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8798, 16, 'Cabrejas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8799, 16, 'Campillo de Altobuey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8800, 16, 'Cuenca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8801, 16, 'Carrascosa del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8802, 16, 'Fuente de Pedro Naharro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8803, 16, 'Horcajo de Santiago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8804, 16, 'Huelves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8805, 16, 'Huete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8806, 16, 'Las Mesas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8807, 16, 'Minglanilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8808, 16, 'Mota del Cuervo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8809, 16, 'Motilla del Palancar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8810, 16, 'El Pedernoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8811, 16, 'Las Pedroeras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8812, 16, 'Pozorrubio de Santiago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8813, 16, 'El Provencio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8814, 16, 'Puebla del Salvador'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8815, 16, 'Quintanar del Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8816, 16, 'Santa Maria de Los Llanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8817, 16, 'San Clemente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8818, 16, 'Saelices'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8819, 16, 'Tarancon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8820, 16, 'Torrubia del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8821, 16, 'Tribaldos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8822, 16, 'Ucles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8823, 16, 'Villamayor de Santiago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8824, 16, 'Villarrubio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8825, 16, 'Villanueva de la Jara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8826, 16, 'Torrejoncillo del Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8827, 16, 'Almendros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8828, 16, 'Casasimarro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8829, 16, 'Barajas de Melo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8830, 16, 'Montalbo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8831, 16, 'Villares del Saz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8832, 16, 'Iniesta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8833, 16, 'Santa Cruz Moya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8834, 16, 'Mariana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8835, 16, 'Sotos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8836, 16, 'Las Majadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8837, 16, 'Villalba de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8838, 16, 'Zarzuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8839, 16, 'Beamud'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8840, 16, 'Vega del Codorno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8841, 16, 'Huelamo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8842, 16, 'Tragacete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8843, 16, 'Ua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8844, 16, 'Valdemeca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8845, 16, 'Arguisuelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8846, 16, 'Caete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8847, 16, 'Salvacaete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8848, 16, 'Carboneras de Guadazaon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8849, 16, 'Fuentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8850, 16, 'Reillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8851, 16, 'Cardenete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8852, 16, 'Mira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8853, 16, 'Narboneta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8854, 16, 'Villora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8855, 16, 'Hontanaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8856, 16, 'Osa de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8857, 16, 'Tresjuncos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8858, 16, 'Salinas del Manzano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8859, 16, 'Boniches'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8860, 16, 'Campillos-Paravientos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8861, 16, 'Fuentelespino de Moya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8862, 16, 'Aliaguilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8863, 16, 'Talayuelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8864, 16, 'Landete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8865, 16, 'Villar de Caas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8866, 16, 'Villarejo de Fuentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8867, 16, 'Fuentelespino de Haro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8868, 16, 'Villaescusa de Haro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8869, 16, 'Los Hinojosos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8870, 16, 'Puebla de Almenara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8871, 16, 'Villar del Humo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8872, 16, 'Alcala de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8873, 16, 'Huerguina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8874, 16, 'Henarejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8875, 16, 'San Martin de Boniches'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8876, 16, 'Buendia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8877, 16, 'Garcinarro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8878, 16, 'Jabalera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8879, 16, 'Mazarulleque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8880, 16, 'Vellisca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8881, 16, 'Casas de Benitez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8882, 16, 'Casas de Fernando Alonso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8883, 16, 'Casas de Haro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8884, 16, 'Casas de Los Pinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8885, 16, 'Pozoamargo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8886, 16, 'Sisante'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8887, 16, 'Vara de Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8888, 16, 'El Cubillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8889, 16, 'Garaballa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8890, 16, 'Enguidanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8891, 16, 'Albalate de Las Nogueras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8892, 16, 'Caamares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8893, 16, 'Caizares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8894, 16, 'Chillaron de Cuenca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8895, 16, 'Priego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8896, 16, 'Torralba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8897, 16, 'Beteta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8898, 16, 'Carrascosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8899, 16, 'Villaconejos de Trabaque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8900, 16, 'Villar de Domingo Garcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8901, 16, 'Fuertescusa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8902, 16, 'Cervera del Llano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8903, 16, 'Olivares de Jucar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8904, 16, 'San Lorenzo de la Parrilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8905, 16, 'Valera de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8906, 16, 'Valverde de Jucar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8907, 16, 'El Tobar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8908, 16, 'Poyatos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8909, 16, 'Algarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8910, 16, 'Casas de Garcimolina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8911, 16, 'Santo Domingo de Moya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8912, 16, 'La Almarcha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8913, 16, 'Castillo de Garcimuoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8914, 16, 'La Hinojosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8915, 16, 'Arcas del Villar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8916, 16, 'Villar de Olalla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8917, 16, 'Buenache de Alarcon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8918, 16, 'Casas de Guijarro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8919, 16, 'Honrubia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8920, 16, 'Hontecillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8921, 16, 'Olmedilla de Alarcon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8922, 16, 'Albaladejo del Cuende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8923, 16, 'Albendea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8924, 16, 'Valdeolivas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8925, 16, 'La Alberca de Zancara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8926, 16, 'Santa Maria Campo Rus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8927, 16, 'El Caavate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8928, 16, 'Castillejo de Iniesta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8929, 16, 'Graja de Iniesta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8930, 16, 'Los Huertos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8931, 16, 'Leganiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8932, 16, 'Palomares del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8933, 16, 'Yemeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8934, 16, 'La Peraleja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8935, 16, 'Saceda del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8936, 16, 'El Pozuelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8937, 16, 'Villar del Saz de Arcas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8938, 16, 'Horcajada de la Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8939, 16, 'Naharros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8940, 16, 'Villar del Horno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8941, 16, 'Huerta del Marquesado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8942, 16, 'Zafrilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8943, 16, 'Ledaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8944, 16, 'Monteagudo de Las Salinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8945, 16, 'Campillos-Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8946, 16, 'Laguna del Marquesado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8947, 16, 'Villaverde Y Pasaconsol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8948, 16, 'Paredes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8949, 16, 'La Parra de Las Vegas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8950, 16, 'Villar de la Encina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8951, 16, 'Rada de Haro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8952, 16, 'La Frontera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8953, 16, 'Carrascosa de Haro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8954, 16, 'Casillas de Ranera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8955, 16, 'Graja de Campalbo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8956, 16, 'Tejadillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8957, 16, 'Pajaroncillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8958, 16, 'Gabaldon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8959, 16, 'Arandilla del Arroyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8960, 16, 'Masegosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8961, 16, 'Gascuea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8962, 16, 'Moncalvillo del Huete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8963, 16, 'Portalrubio de Guadamajud'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8964, 16, 'Tinajas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8965, 16, 'Valdemoro del Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8966, 16, 'La Ventosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8967, 16, 'Villalba del Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8968, 16, 'Villanueva de Guadamejud'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8969, 16, 'Caada del Hoyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8970, 16, 'La Cierva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8971, 16, 'Valdemoro-Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8972, 16, 'Monreal del Llano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8973, 16, 'Alcohujate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8974, 16, 'Caaveruelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8975, 16, 'Belmontejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8976, 16, 'Tortola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8977, 16, 'Valdeganga de Cuenca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8978, 16, 'Arcos de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8979, 16, 'Portilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8980, 16, 'Valdemorillo de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8981, 16, 'Villalgordo del Marquesado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8982, 16, 'El Hito'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8983, 16, 'Loranca del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8984, 16, 'Olmedilla del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8985, 16, 'Rozalen del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8986, 16, 'Saceda-Trasierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8987, 16, 'Valparaiso de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8988, 16, 'Valparaiso de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8989, 16, 'Fresneda de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8990, 16, 'Castillejo-Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8991, 16, 'Pajaron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8992, 16, 'Santa Maria del Val'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8993, 16, 'Valsalobre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8994, 16, 'Valtablado Beteta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8995, 16, 'Cueva del Hierro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8996, 16, 'Alarcon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8997, 16, 'Valhermoso de la Fuente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8998, 16, 'Valverdejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (8999, 16, 'Jabaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9000, 16, 'San Pedro Palmiches'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9001, 16, 'Canalejas del Arroyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9002, 16, 'Castejon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9003, 16, 'Bascuana de San Pedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9004, 16, 'Cuevas de Velasco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9005, 16, 'Villar del Maestre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9006, 16, 'Villar del Saz de Navalon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9007, 16, 'Sotoca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9008, 16, 'Navalon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9009, 16, 'Arcos de la Cantera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9010, 16, 'Fuentesclaras del Chillaron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9011, 16, 'Tondos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9012, 16, 'Sacedoncillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9013, 16, 'Zarza de Tajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9014, 16, 'La Pesquera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9015, 16, 'Villagarcia del Llano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9016, 16, 'Ribatajada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9017, 16, 'Ribatajadilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9018, 16, 'Collados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9019, 16, 'Solera de Gabaldon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9020, 16, 'Paracuellos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9021, 16, 'Caaveras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9022, 16, 'Buciegas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9023, 16, 'Bolliga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9024, 16, 'Olmeda del Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9025, 16, 'Barchin del Hoyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9026, 16, 'Valeria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9027, 16, 'Lagunaseca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9028, 16, 'Castillo-Albaraez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9029, 16, 'Arrancacepas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9030, 16, 'Olmedilla de Eliz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9031, 16, 'El Picazo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9032, 16, 'Rubielos Altos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9033, 16, 'Rubielos Bajos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9034, 16, 'Pozoseco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9035, 16, 'Torrubia del Castillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9036, 16, 'Pinarejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9037, 16, 'Caadajuncosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9038, 16, 'Atalaya del Caavate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9039, 16, 'Tebar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9040, 16, 'Villarejo-Periesteban'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9041, 16, 'Montalbanejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9042, 16, 'Almonacid del Marquesado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9043, 16, 'Zafra de Zancara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9044, 16, 'Villarta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9045, 16, 'Villalpardo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9046, 16, 'El Herrumblar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9047, 16, 'Olmeda de la Cuesta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9048, 16, 'Culebras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9049, 16, 'El Peral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9050, 16, 'Buenache de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9051, 16, 'Valdecabras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9052, 16, 'Villarejo Seco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9053, 16, 'Abia de la Obispalia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9054, 16, 'Colliga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9055, 16, 'Poveda de la Obispalia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9056, 16, 'Villanueva de Los Escuderos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9057, 16, 'Barbalimpia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9058, 16, 'Fresneda de Altarejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9059, 16, 'Altarejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9060, 16, 'Alconchel de la Estrella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9061, 16, 'Mota de Altarejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9062, 16, 'Huerta de la Obispalia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9063, 16, 'Villarejo-Sobrehuerta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9064, 16, 'Castillejo del Romeral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9065, 16, 'Valdecolmenas de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9066, 16, 'Pineda de Giguela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9067, 16, 'Bonilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9068, 16, 'Caracenilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9069, 16, 'Verdelpino de Huete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9070, 16, 'Piqueras del Castillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9071, 16, 'Fuentesbuenas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9072, 16, 'Villarejo del Espartal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9073, 16, 'Villarejo de la Peuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9074, 16, 'Valdecolmenas de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9075, 16, 'Ribagorda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9076, 16, 'Torrecilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9077, 16, 'Salmeroncillos de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9078, 16, 'Villar del Infantado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9079, 16, 'Vindel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9080, 16, 'Alcantud'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9081, 16, 'Palomera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9082, 16, 'La Melgosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9083, 16, 'Mohorte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9084, 16, 'Villar del Aguila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9085, 16, 'Campamento Los Palancares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9086, 16, 'Chumillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9087, 16, 'Pedro Izquierdo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9088, 16, 'Las Rinconadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9089, 16, 'Manzaneruela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9090, 16, 'Valdecaas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9091, 16, 'Noheda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9092, 16, 'Villarejo de Fuentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9093, 16, 'La Olmeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9094, 16, 'Casas de Roldan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9095, 16, 'Casas Santa Cruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9096, 16, 'Casas Nuevas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9097, 16, 'Alcahozo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9098, 16, 'Fuenseca Cuenca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9099, 16, 'El Arrabal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9100, 16, 'Batan de San Pedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9101, 16, 'La Caada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9102, 16, 'Caavedija'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9103, 16, 'Caracena del Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9104, 16, 'Carrascosilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9105, 16, 'Casalonga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9106, 16, 'Casas de Alonso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9107, 16, 'Casas Loma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9108, 16, 'Casas de Las Monjas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9109, 16, 'Cerro de Tejeras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9110, 16, 'El Collado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9111, 16, 'Colladoverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9112, 16, 'Colliguilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9113, 16, 'El Congosto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9114, 16, 'Los Demetrios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9115, 16, 'Los Estesos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9116, 16, 'Los Eustaquios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9117, 16, 'Iberdrola S.A.'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9118, 16, 'Higueruela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9119, 16, 'Hortizuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9120, 16, 'Hoya del Peral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9121, 16, 'Huercemes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9122, 16, 'Huerta de Marojales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9123, 16, 'La Langa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9124, 16, 'La Losa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9125, 16, 'Los Llanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9126, 16, 'Martiniega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9127, 16, 'Las Minas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9128, 16, 'El Molino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9129, 16, 'Molinos de Papel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9130, 16, 'Moya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9131, 16, 'La Nogueruela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9132, 16, 'Nohales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9133, 16, 'Olmedilla de Arcas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9134, 16, 'Las Olmedillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9135, 16, 'Pajares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9136, 16, 'Pantano de Buendia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9137, 16, 'Los Pavos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9138, 16, 'Los Perales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9139, 16, 'Pearrota'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9140, 16, 'El Perchel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9141, 16, 'Perona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9142, 16, 'Pinar Jabaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9143, 16, 'Puente de Vadillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9144, 16, 'Salmeroncillos de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9145, 16, 'Salto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9146, 16, 'Salto de Villalba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9147, 16, 'Herreria de Santa Cristina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9148, 16, 'El Simarro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9149, 16, 'Solan de Cabras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9150, 16, 'El Tejar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9151, 16, 'El Tio Miguelete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9152, 16, 'Torrelengua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9153, 16, 'Valdecabrillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9154, 16, 'La Veredilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9155, 16, 'Villa-Paz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9156, 16, 'Villalba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9157, 16, 'Villalbilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9158, 16, 'Villar de Cantos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9159, 16, 'Villas-Viejas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9160, 16, 'Villaseca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9161, 16, 'Vista Hermosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9162, 16, 'Las Zomas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9163, 16, 'Los Oteros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9164, 16, 'Sol-Marina "Santa Cruz"'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9165, 16, 'La Losilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9166, 16, 'Molino de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9167, 16, 'Venta Pinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9168, 16, 'Los Llecos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9169, 16, 'El Carmen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9170, 16, 'H. del Pastor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9171, 16, 'Puente de Don Juan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9172, 16, 'Casa Cerron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9173, 16, 'Monte de Las Mozas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9174, 16, 'Casas de Juan Fernandez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9175, 16, 'Casas del Olmo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9176, 16, 'Ribera de San Benito'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9177, 16, 'Ribera de San Hermenegildo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9178, 16, 'Santiago de la Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9179, 16, 'La Encomienda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9180, 16, 'Dehesa Vieja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9181, 16, 'Rento Villar Lobos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9182, 16, 'Santuario Consolacion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9183, 17, 'Agullana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9184, 17, 'Albanya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9185, 17, 'Albons'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9186, 17, 'Alp'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9187, 17, 'Amer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9188, 17, 'Angles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9189, 17, 'Arbucies'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9190, 17, 'Argelaguer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9191, 17, 'L''armentera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9192, 17, 'Beget'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9193, 17, 'Begur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9194, 17, 'La Vajol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9195, 17, 'Banyoles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9196, 17, 'Bas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9197, 17, 'Bascara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9198, 17, 'Bellcaire D''emporda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9199, 17, 'Besalu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9200, 17, 'Bescano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9201, 17, 'La Bisbal D''emporda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9202, 17, 'Blanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9203, 17, 'Borrassa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9204, 17, 'Breda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9205, 17, 'Cabanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9206, 17, 'Cadaques'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9207, 17, 'Caldes de Malavella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9208, 17, 'Vilanant'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9209, 17, 'Calonge'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9210, 17, 'Camallera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9211, 17, 'Campdevanol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9212, 17, 'Camprodon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9213, 17, 'Cantallops'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9214, 17, 'Capmany'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9215, 17, 'Queralbs'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9216, 17, 'Cassa de la Selva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9217, 17, 'Castellfollit de la Roca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9218, 17, 'Castello D''empuries'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9219, 17, 'Celra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9220, 17, 'Cervia de Ter'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9221, 17, 'Cistella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9222, 17, 'Siuret'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9223, 17, 'Colera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9224, 17, 'Colomers'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9225, 17, 'Darnius'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9226, 17, 'Das'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9227, 17, 'L''escala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9228, 17, 'Espinelves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9229, 17, 'Espolla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9230, 17, 'Masarac'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9231, 17, 'La Farga de Bebie'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9232, 17, 'Figueres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9233, 17, 'Fornells de la Muntanya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9234, 17, 'Fortia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9235, 17, 'Garriguella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9236, 17, 'Girona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9237, 17, 'Gombren'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9238, 17, 'Hostalric'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9239, 17, 'Jafre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9240, 17, 'La Jonquera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9241, 17, 'Els Limits'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9242, 17, 'Llado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9243, 17, 'Llagostera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9244, 17, 'Llambilles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9245, 17, 'Llanars'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9246, 17, 'Llana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9247, 17, 'Llers'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9248, 17, 'Llivia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9249, 17, 'Lloret de Mar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9250, 17, 'Les Llosses'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9251, 17, 'Maanet de Cabrenys'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9252, 17, 'Maanet de la Selva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9253, 17, 'Maia de Montcal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9254, 17, 'Medinya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9255, 17, 'Mieres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9256, 17, 'Mollet de Peralada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9257, 17, 'Mollo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9258, 17, 'Montagut'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9259, 17, 'Navata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9260, 17, 'Nuria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9261, 17, 'Ogassa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9262, 17, 'Oix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9263, 17, 'Olot'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9264, 17, 'Osor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9265, 17, 'Palafrugell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9266, 17, 'Palamos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9267, 17, 'Palau-Saverdera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9268, 17, 'Palmerola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9269, 17, 'Pals'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9270, 17, 'Pau'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9271, 17, 'Peralada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9272, 17, 'La Pinya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9273, 17, 'Les Planes D''hostoles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9274, 17, 'Planoles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9275, 17, 'Pont de Molins'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9276, 17, 'Pontos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9277, 17, 'Portbou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9278, 17, 'Les Preses'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9279, 17, 'L''espluga de Francoli'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9280, 17, 'El Port de la Selva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9281, 17, 'Puigcerda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9282, 17, 'Quart'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9283, 17, 'Rabos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9284, 17, 'Ribes de Freser'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9285, 17, 'Riudaura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9286, 17, 'Ripoll'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9287, 17, 'Riudarenes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9288, 17, 'Roses'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9289, 17, 'Rupia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9290, 17, 'Vilarnadal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9291, 17, 'Sant Climent Sescebes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9292, 17, 'Sant Feliu de Buixalleu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9293, 17, 'Sant Feliu de Guixols'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9294, 17, 'Sant Feliu de Pallerols'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9295, 17, 'Sant Hilari Sacalm'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9296, 17, 'Sant Jaume de Llierca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9297, 17, 'Sant Jordi Desvalls'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9298, 17, 'Sant Joan de Les Abadesses'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9299, 17, 'Sant Joan Les Fonts'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9300, 17, 'Sant Lloren de la Muga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9301, 17, 'Sant Pau de Seguries'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9302, 17, 'Sant Pere Pescador'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9303, 17, 'Sant Privat D''en Bas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9304, 17, 'Santa Coloma de Farners'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9305, 17, 'Vilademuls'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9306, 17, 'Santa Pau'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9307, 17, 'La Selva de Mar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9308, 17, 'Setcases'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9309, 17, 'Sils'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9310, 17, 'Terrades'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9311, 17, 'Torroella de Montgri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9312, 17, 'Tortella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9313, 17, 'Tossa de Mar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9314, 17, 'Ulla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9315, 17, 'Ullastret'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9316, 17, 'Vallfogona Ripolles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9317, 17, 'La Vall de Santa Creu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9318, 17, 'La Vall de Bianya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9319, 17, 'Estanyol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9320, 17, 'Verges'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9321, 17, 'Vidra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9322, 17, 'Vidreres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9323, 17, 'Vilabertran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9324, 17, 'Viladamat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9325, 17, 'Viladrau'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9326, 17, 'Vilafant'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9327, 17, 'Vilajuiga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9328, 17, 'Vilallonga de Ter'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9329, 17, 'Vilamacolum'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9330, 17, 'Vilamaniscle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9331, 17, 'Vilanova de la Muga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9332, 17, 'Vila-Sacra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9333, 17, 'Sant Marti D''aravo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9334, 17, 'La Cellera de Ter'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9335, 17, 'Bordils'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9336, 17, 'Flaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9337, 17, 'Ger'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9338, 17, 'Santa Cristina D''aro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9339, 17, 'Fontanilles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9340, 17, 'Platja D''aro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9341, 17, 'Riells I Viabrea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9342, 17, 'Vilobi D''onyar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9343, 17, 'Riudellots de la Selva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9344, 17, 'La Molina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9345, 17, 'Bolvir'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9346, 17, 'Torroella de Fluvia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9347, 17, 'Age'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9348, 17, 'Vilallobent'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9349, 17, 'Joanet -Arbucies-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9350, 17, 'Urus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9351, 17, 'Gualta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9352, 17, 'Campllong'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9353, 17, 'Fornells de la Selva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9354, 17, 'All'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9355, 17, 'Isovol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9356, 17, 'Olopte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9357, 17, 'Cabanelles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9358, 17, 'Crespia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9359, 17, 'Esponella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9360, 17, 'Joanetes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9361, 17, 'Palau-Sator'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9362, 17, 'Peratallada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9363, 17, 'Regencos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9364, 17, 'Sant Feliu de Boada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9365, 17, 'Campelles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9366, 17, 'Meranges'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9367, 17, 'Parlava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9368, 17, 'Cornella del Terri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9369, 17, 'Serinya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9370, 17, 'Siurana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9371, 17, 'Garrigas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9372, 17, 'Palau de Santa Eulalia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9373, 17, 'Vilamalla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9374, 17, 'Canet D''adri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9375, 17, 'Llora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9376, 17, 'Sant Esteve de Llemena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9377, 17, 'Sant Gregori'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9378, 17, 'Sant Marti Llemena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9379, 17, 'Sant Miquel de Campmajor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9380, 17, 'Riumors'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9381, 17, 'La Colonia Santa Maria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9382, 17, 'Llaes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9383, 17, 'Sant Bernabe de Les Tenes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9384, 17, 'Sant Miquel Sacot'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9385, 17, 'Sant Miquel de Fluvia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9386, 17, 'Fontclara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9387, 17, 'Sant Julia de Boada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9388, 17, 'Garrigoles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9389, 17, 'Ventallo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9390, 17, 'La Tallada D''emporda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9391, 17, 'Vilopriu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9392, 17, 'Viladasens'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9393, 17, 'Gauses'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9394, 17, 'Foixa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9395, 17, 'Queixans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9396, 17, 'Llampaies'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9397, 17, 'Saus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9398, 17, 'Vilaur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9399, 17, 'Sant Mori'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9400, 17, 'Baell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9401, 17, 'Casavells'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9402, 17, 'Madremanya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9403, 17, 'Monells'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9404, 17, 'Serra de Daro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9405, 17, 'Cora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9406, 17, 'La Pera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9407, 17, 'Cruilles-Monells-Sant Sadurni'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9408, 17, 'Juia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9409, 17, 'Sant Joan de Mollet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9410, 17, 'Sant Marti Vell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9411, 17, 'Sant Sadurni -Cruilles-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9412, 17, 'Neva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9413, 17, 'Fonteta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9414, 17, 'Fontanals de Cerdanya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9415, 17, 'Sarria de Dalt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9416, 17, 'Massanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9417, 17, 'Torrent'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9418, 17, 'Ultramort'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9419, 17, 'Marza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9420, 17, 'Santa Llogaia D''alguema'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9421, 17, 'El Far D''emporda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9422, 17, 'Sant Andreu Salou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9423, 17, 'Biure'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9424, 17, 'Perello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9425, 17, 'Aiguaviva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9426, 17, 'Brunyola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9427, 17, 'Sant Marti Sapresa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9428, 17, 'Cladells'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9429, 17, 'Llabia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9430, 17, 'Vilamari'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9431, 17, 'Boadella D''emporda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9432, 17, 'Les Escaules'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9433, 17, 'La Creueta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9434, 17, 'Castell D''emporda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9435, 17, 'Palol de Revardit'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9436, 17, 'Els Pantans de Montbarbat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9437, 17, 'L''estartit'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9438, 17, 'Batet -Ribes de Freser-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9439, 17, 'Solar-Ventola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9440, 17, 'Guils de Cerdanya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9441, 17, 'Pardines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9442, 17, 'Saneja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9443, 17, 'Vulpellac'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9444, 17, 'Llofriu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9445, 17, 'Avinyonet de Puigventos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9446, 17, 'Porqueres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9447, 17, 'Sant Julia de Ramis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9448, 17, 'Bonmati'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9449, 17, 'Granollers de Rocacorba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9450, 17, 'Cartella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9451, 17, 'Vilablareix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9452, 17, 'Vall-Llobrega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9453, 17, 'Rocagrossa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9454, 17, 'Sant Salvador de Bianya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9455, 17, 'Sant Dalmai'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9456, 17, 'Sarria de Ter'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9457, 17, 'Serres Les'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9458, 17, 'L''esparra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9459, 17, 'Arenys D''emporda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9460, 17, 'Batet -Olot-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9461, 17, 'Beguda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9462, 17, 'Beuda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9463, 17, 'Calella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9464, 17, 'Camos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9465, 17, 'Cassa de Pelras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9466, 17, 'Castell-Platja D''aro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9467, 17, 'Colonia Les Mines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9468, 17, 'La Farres -Fontcoberta-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9469, 17, 'Fonolleres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9470, 17, 'Fontcoberta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9471, 17, 'Freixenet de Dalt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9472, 17, 'Garriga La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9473, 17, 'Grions'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9474, 17, 'L''herand'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9475, 17, 'Hostalets Els'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9476, 17, 'Jordana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9477, 17, 'Marenya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9478, 17, 'Mas Fumats'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9479, 17, 'Matajudaica'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9480, 17, 'Mont-Ras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9481, 17, 'L''oliva -El Far D''emporda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9482, 17, 'Ordis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9483, 17, 'Orfes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9484, 17, 'Orriols'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9485, 17, 'Pubol -La Pera-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9486, 17, 'Ravos del Terri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9487, 17, 'Rama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9488, 17, 'Riudellots de la Creu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9489, 17, 'Sales de Llierca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9490, 17, 'Sant Ferriol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9491, 17, 'Sant Marti Sacalm'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9492, 17, 'Sant Sadurni de Sovelles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9493, 17, 'Sant Aniol de Finestres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9494, 17, 'Sant Esteve de Guialbes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9495, 17, 'Sant Iscle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9496, 17, 'La Solana Amunt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9497, 17, 'La Solana Avall'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9498, 17, 'Susqueda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9499, 17, 'Tor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9500, 17, 'Urtx'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9501, 17, 'Vilavenut'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9502, 17, 'Viabrea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9503, 17, 'Empuriabrava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9504, 17, 'Serrat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9505, 17, 'Sant Antoni de Calonge'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9506, 17, 'Llafranc'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9507, 17, 'S''agaro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9508, 17, 'Tamariu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9509, 17, 'Salt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9510, 17, 'Sant Julia del Llor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9511, 17, 'Pedrinya -La Pera-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9512, 17, 'Aeroport'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9513, 17, 'Forallac'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9514, 17, 'Montfulla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9515, 17, 'Vilanna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9516, 17, 'Adri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9517, 17, 'El Pasteral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9518, 17, 'Plantadis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9519, 17, 'Domeny'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9520, 17, 'Ginestar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9521, 17, 'Taiala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9522, 17, 'Batet -Olot-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9523, 17, 'Borgonya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9524, 17, 'Cors'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9525, 17, 'Pujals Dels Cavallers'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9526, 17, 'Santa Llogaia del Terri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9527, 17, 'Veinat Den Faras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9528, 17, 'Sant Esteve D''en Bas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9529, 17, 'El Torn'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9530, 17, 'Falgons'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9531, 17, 'Raset'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9532, 17, 'Riuras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9533, 17, 'Barri Estacio -Sant Marti Vell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9534, 17, 'Barri Dels Angels'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9535, 17, 'Veinat de Franciac'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9536, 17, 'Veinat de Can Pou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9537, 17, 'Santa Pellaia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9538, 17, 'Palol D''onyar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9539, 17, 'Veinat de la Pequenya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9540, 17, 'Veinat Lhostal Nou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9541, 17, 'Salitja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9542, 17, 'Espinavell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9543, 17, 'Tregura de Dalt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9544, 17, 'Calabuig'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9545, 17, 'Espinavessa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9546, 17, 'Aigueta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9547, 17, 'Riells'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9548, 17, 'Vilatenim'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9549, 17, 'Vilajoan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9550, 17, 'Taravaus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9551, 17, 'Montiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9552, 17, 'Saldet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9553, 17, 'Galliners'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9554, 17, 'Ollers'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9555, 17, 'Parets D''emporda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9556, 17, 'Sant Maral de Quarantella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9557, 17, 'Terradelles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9558, 17, 'Vilademi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9559, 17, 'Vilafreser'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9560, 17, 'Poligon Pont del Princep'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9561, 17, 'Cap Vol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9562, 17, 'Sils'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9563, 17, 'Mata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9564, 17, 'Rocabruna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9565, 17, 'Veinat de Fluvia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9566, 17, 'Batet Veinat Baix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9567, 17, 'La Canya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9568, 17, 'Camioneta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9569, 17, 'Sant Marti del Clot'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9570, 17, 'Canapost'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9571, 17, 'Sant Climent de Peralta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9572, 17, 'Santa Susanna de Peralta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9573, 17, 'Ermedas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9574, 17, 'Bruguerol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9575, 17, 'Vilarroma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9576, 17, 'Els Masos de Pals'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9577, 17, 'Masella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9578, 17, 'Zona Resid. del Golf -Bolvir-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9579, 17, 'Sanavastre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9580, 17, 'Estoll'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9581, 17, 'Escadarcs'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9582, 17, 'El Vilar Durtx'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9583, 17, 'Greixer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9584, 17, 'Ventajola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9585, 17, 'Sant Esteve de Vallespirans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9586, 17, 'Santa Maria de Matamala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9587, 17, 'Planes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9588, 17, 'Bruguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9589, 17, 'Brucs'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9590, 17, 'Baga-Amunt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9591, 17, 'Baga-Avall'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9592, 17, 'Comafreda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9593, 17, 'Solei Avall'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9594, 17, 'Dorria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9595, 17, 'Toses'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9596, 17, 'Canyelles-Almadrava-Puig-Rom'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9597, 17, 'Sant Pol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9598, 17, 'Bell-Lloc'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9599, 17, 'Romanya de la Selva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9600, 17, 'Lliors'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9601, 17, 'El Rieral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9602, 17, 'El Vidal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9603, 17, 'Gaserans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9604, 17, 'Castanyet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9605, 17, 'Les Mallorquines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9606, 17, 'Vallcanera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9607, 17, 'Veinat Granota'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9608, 17, 'Empuries'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9609, 17, 'Cinc Claus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9610, 17, 'Montgo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9611, 17, 'Canet D''adri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9612, 17, 'Pelacal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9613, 17, 'Vila-Robau'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9614, 17, 'Valveralla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9615, 17, 'Pedret I Marza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9616, 17, 'Valldavia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9617, 17, 'Sant Medir'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9618, 17, 'Pujals Dels Pagesos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9619, 17, 'Fanals'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9620, 17, 'S.A.F.A.- Estacio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9621, 17, 'Esclanya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9622, 17, 'Puig de Sant Ramon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9623, 17, 'Rossell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9624, 17, 'Enclave Palmerola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9625, 17, 'Bartroli'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9626, 17, 'La Canal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9627, 17, 'El Carrasquet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9628, 17, 'Casademunt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9629, 17, 'Coll El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9630, 17, 'Collfred'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9631, 17, 'Coma La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9632, 17, 'Creu de L''ar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9633, 17, 'Les Escanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9634, 17, 'Les Llosses'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9635, 17, 'Milany'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9636, 17, 'Palou Gros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9637, 17, 'Palou Xic'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9638, 17, 'Plana La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9639, 17, 'El Plans -Vidra-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9640, 17, 'Pujol El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9641, 17, 'Sant Bartomeu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9642, 17, 'Vilavella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9643, 17, 'Platrave'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9644, 17, 'Masvidal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9645, 17, 'Centenys'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9646, 17, 'Vilert'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9647, 17, 'Guell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9648, 17, 'Migdia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9649, 17, 'Rajoleries'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9650, 17, 'Queixas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9651, 17, 'Colonia Estabanell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9652, 17, 'L''hostalet -Lloret de Mar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9653, 17, 'Les Olives'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9654, 17, 'Santa Eulalia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9655, 17, 'Valldolitg Iii'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9656, 17, 'La Creueta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9657, 17, 'Sant Mateu de Montnegre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9658, 17, 'Font Rubi -Camprodon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9659, 17, 'El Remei'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9660, 17, 'Aiguaviva Parc'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9661, 17, 'Capsacosta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9662, 17, 'Fogueres de Montsoriu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9663, 17, 'Els Pantans de Montbarbat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9664, 17, 'Empuriabrava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9665, 17, 'Can Fornaca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9666, 17, 'Valveralla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9667, 17, 'Constantins'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9668, 17, 'Pladevall (Ayuntamiento Les Preses)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9669, 17, 'La Cellera de Ter'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9670, 17, 'La Vall Den Bas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9671, 17, 'Peralada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9672, 18, 'Albolote'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9673, 18, 'Albuol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9674, 18, 'Alhama de Granada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9675, 18, 'Alhendin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9676, 18, 'Almuecar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9677, 18, 'Armilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9678, 18, 'Atarfe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9679, 18, 'Los Baos -Cortes Y Graena-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9680, 18, 'Baza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9681, 18, 'Benalua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9682, 18, 'Bracana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9683, 18, 'Campotejar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9684, 18, 'Caniles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9685, 18, 'Cijuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9686, 18, 'Cullar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9687, 18, 'Diezma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9688, 18, 'Durcal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9689, 18, 'Las Gabias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9690, 18, 'Galera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9691, 18, 'Granada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9692, 18, 'Guadix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9693, 18, 'Huescar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9694, 18, 'Huetor de Santillan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9695, 18, 'Huetor Tajar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9696, 18, 'Illora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9697, 18, 'Iznalloz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9698, 18, 'Lachar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9699, 18, 'Lanjaron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9700, 18, 'Loja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9701, 18, 'Montefrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9702, 18, 'Motril'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9703, 18, 'Orce'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9704, 18, 'Orgiva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9705, 18, 'Otura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9706, 18, 'Padul'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9707, 18, 'Pinos Puente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9708, 18, 'Puebla de Don Fadrique'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9709, 18, 'Purullena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9710, 18, 'Salar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9711, 18, 'Salobrea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9712, 18, 'Santa Fe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9713, 18, 'Tocon -Illora-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9714, 18, 'Torrenueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9715, 18, 'Velez de Benaudalla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9716, 18, 'Viznar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9717, 18, 'La Zubia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9718, 18, 'Calahonda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9719, 18, 'Zujar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9720, 18, 'Fuente Vaqueros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9721, 18, 'Maracena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9722, 18, 'Churriana de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9723, 18, 'Gojar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9724, 18, 'Alquife'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9725, 18, 'Chauchina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9726, 18, 'Cullar Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9727, 18, 'Peligros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9728, 18, 'Ogijares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9729, 18, 'La Rabita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9730, 18, 'Castell de Ferro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9731, 18, 'Moraleda de Zafayona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9732, 18, 'Benamaurel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9733, 18, 'Jerez del Marquesado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9734, 18, 'Lanteira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9735, 18, 'Aldeire'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9736, 18, 'La Calahorra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9737, 18, 'Alcudia de Guadix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9738, 18, 'Esfiliana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9739, 18, 'Alomartes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9740, 18, 'La Peza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9741, 18, 'Fonelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9742, 18, 'Pedro Martinez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9743, 18, 'Guadahortuna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9744, 18, 'Montejicar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9745, 18, 'Castillejar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9746, 18, 'Alfacar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9747, 18, 'Lentegi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9748, 18, 'Dilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9749, 18, 'Lecrin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9750, 18, 'Dolar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9751, 18, 'Hueneja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9752, 18, 'Romilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9753, 18, 'Villanueva de Las Torres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9754, 18, 'Villanueva Mesia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9755, 18, 'Algarinejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9756, 18, 'Purchil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9757, 18, 'Castril'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9758, 18, 'Huetor Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9759, 18, 'Niguelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9760, 18, 'Albondon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9761, 18, 'Cuevas del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9762, 18, 'Deifontes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9763, 18, 'Albuuelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9764, 18, 'Melegis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9765, 18, 'Restabal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9766, 18, 'Saleres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9767, 18, 'Cortes de Baza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9768, 18, 'Bayacas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9769, 18, 'Caar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9770, 18, 'Carataunas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9771, 18, 'Soportujar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9772, 18, 'Busquistar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9773, 18, 'Bubion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9774, 18, 'Capileira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9775, 18, 'Castaras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9776, 18, 'Ferreirola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9777, 18, 'Mecina Fondales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9778, 18, 'Pampaneira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9779, 18, 'Pitres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9780, 18, 'Portugos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9781, 18, 'Torvizcon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9782, 18, 'Trevelez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9783, 18, 'Cozvijar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9784, 18, 'Molvizar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9785, 18, 'Cadiar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9786, 18, 'Berchules'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9787, 18, 'Lobras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9788, 18, 'Mecina Bombaron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9789, 18, 'Narila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9790, 18, 'Yator'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9791, 18, 'Juviles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9792, 18, 'Ugijar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9793, 18, 'Valor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9794, 18, 'Yegen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9795, 18, 'Laroles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9796, 18, 'Mairena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9797, 18, 'Picena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9798, 18, 'Alamedilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9799, 18, 'Mecina Alfahar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9800, 18, 'Almegijar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9801, 18, 'Calicasas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9802, 18, 'Cogollos de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9803, 18, 'Guevejar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9804, 18, 'Jun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9805, 18, 'Nivar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9806, 18, 'Pulianas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9807, 18, 'Benalua de Las Villas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9808, 18, 'Colomera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9809, 18, 'Valderrubio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9810, 18, 'Gualchos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9811, 18, 'La Herradura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9812, 18, 'Piar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9813, 18, 'Darro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9814, 18, 'Dudar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9815, 18, 'Guejar-Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9816, 18, 'Cenes de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9817, 18, 'Pinos Genil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9818, 18, 'Quentar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9819, 18, 'Beznar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9820, 18, 'Fuensanta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9821, 18, 'Loreto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9822, 18, 'Peuelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9823, 18, 'Las Vertientes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9824, 18, 'Venta Quemada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9825, 18, 'Cacin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9826, 18, 'Gor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9827, 18, 'La Mamola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9828, 18, 'Gobernador'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9829, 18, 'Moreda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9830, 18, 'Torre-Cardela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9831, 18, 'Itrabo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9832, 18, 'Monachil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9833, 18, 'Jete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9834, 18, 'Pinos del Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9835, 18, 'Montillana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9836, 18, 'Zagra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9837, 18, 'Ventorros de San Jose'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9838, 18, 'Conchar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9839, 18, 'Belicena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9840, 18, 'Buenavista'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9841, 18, 'Santa Cruz del Comercio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9842, 18, 'Alicun de Ortega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9843, 18, 'Dehesas de Guadix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9844, 18, 'Turon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9845, 18, 'Murtas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9846, 18, 'Jorairatar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9847, 18, 'Freila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9848, 18, 'Zujaira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9849, 18, 'Otivar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9850, 18, 'Zafarraya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9851, 18, 'Ventas de Zafarraya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9852, 18, 'Riofrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9853, 18, 'El Chaparral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9854, 18, 'Beas Granada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9855, 18, 'Escuzar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9856, 18, 'Agron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9857, 18, 'Chimeneas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9858, 18, 'La Malaha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9859, 18, 'Ventas de Huelma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9860, 18, 'Dehesas Viejas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9861, 18, 'Moclin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9862, 18, 'Tozar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9863, 18, 'Olivares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9864, 18, 'Tiena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9865, 18, 'Limones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9866, 18, 'Puerto Lope'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9867, 18, 'Jatar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9868, 18, 'Sierra Nevada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9869, 18, 'Arenas del Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9870, 18, 'Fornes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9871, 18, 'Jayena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9872, 18, 'Ferreira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9873, 18, 'Izbor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9874, 18, 'Domingo Perez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9875, 18, 'Guajar Alto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9876, 18, 'Guajar Faraguit'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9877, 18, 'Guajar Fondon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9878, 18, 'Laborcillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9879, 18, 'Campo Camara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9880, 18, 'Huelago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9881, 18, 'El Margen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9882, 18, 'Beas de Guadix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9883, 18, 'Marchal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9884, 18, 'Lugros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9885, 18, 'Policar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9886, 18, 'Cherin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9887, 18, 'Los Tablones -Orgiva-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9888, 18, 'Acequias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9889, 18, 'Sorvilan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9890, 18, 'Alcazar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9891, 18, 'Polopos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9892, 18, 'Rubite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9893, 18, 'Charches'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9894, 18, 'Lujar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9895, 18, 'Acula'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9896, 18, 'Alcutar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9897, 18, 'Casanueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9898, 18, 'Trasmulas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9899, 18, 'Fuentes de Cesna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9900, 18, 'Pulpite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9901, 18, 'Venta del Peral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9902, 18, 'El Bejarin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9903, 18, 'Albuan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9904, 18, 'Cogollos de Guadix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9905, 18, 'Pedro Ruiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9906, 18, 'Almaciles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9907, 18, 'Venta Micena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9908, 18, 'Bogarre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9909, 18, 'Gorafe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9910, 18, 'Cortijo Molineta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9911, 18, 'Lobres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9912, 18, 'Baul'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9913, 18, 'Nechite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9914, 18, 'Notaez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9915, 18, 'Hernan-Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9916, 18, 'Escoznar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9917, 18, 'Alqueria del Fargue'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9918, 18, 'Lancha del Genil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9919, 18, 'Golco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9920, 18, 'Timar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9921, 18, 'Cajar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9922, 18, 'Ambroz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9923, 18, 'Hijar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9924, 18, 'Lopera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9925, 18, 'Graena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9926, 18, 'Paulenca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9927, 18, 'Atalbeitar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9928, 18, 'Cojayar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9929, 18, 'Mecina Tedel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9930, 18, 'Nieles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9931, 18, 'Obeilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9932, 18, 'Fuente Nueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9933, 18, 'El Jau'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9934, 18, 'Almontaras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9935, 18, 'Bacor-Olivar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9936, 18, 'Los Carriones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9937, 18, 'Castillo de Tajarja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9938, 18, 'Las Cucharetas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9939, 18, 'La Garnatilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9940, 18, 'Los Laneros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9941, 18, 'Minas del Marquesado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9942, 18, 'El Turro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9943, 18, 'Fuente Vera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9944, 18, 'Fatima'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9945, 18, 'Cebas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9946, 18, 'San Clemente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9947, 18, 'Carramaiza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9948, 18, 'Cuevas de Puente Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9949, 18, 'Puente Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9950, 18, 'Cuevas de Luna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9951, 18, 'Valenzuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9952, 18, 'Rejano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9953, 18, 'Balax'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9954, 18, 'Los Gallardos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9955, 18, 'Canales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9956, 18, 'El Frances'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9957, 18, 'Los Carlos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9958, 18, 'Los Galvez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9959, 18, 'Olivar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9960, 18, 'Cortijos del Cura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9961, 18, 'Las Juntas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9962, 18, 'Haza del Trigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9963, 18, 'Melicena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9964, 18, 'Rambla Agua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9965, 18, 'Belerda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9966, 18, 'Sillar Baja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9967, 18, 'Los Villares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9968, 18, 'La Alqueria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9969, 18, 'Alfornon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9970, 18, 'Pozo Iglesias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9971, 18, 'Cenascuras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9972, 18, 'Las Vias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9973, 18, 'La Ermita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9974, 18, 'La Teja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9975, 18, 'Poloria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9976, 18, 'Los Montoros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9977, 18, 'Las Canteras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9978, 18, 'Jubar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9979, 18, 'Pantano de Los Bermejales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9980, 18, 'Loma de Marcos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9981, 18, 'Rambla de Valdiquin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9982, 18, 'Agustines Y Tijola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9983, 18, 'Ogijares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9984, 18, 'La Paz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9985, 18, 'Delgadillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9986, 18, 'Acebuches'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9987, 18, 'Rio Seco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9988, 18, 'Tocon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9989, 18, 'Martin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9990, 18, 'Romilla la Nueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9991, 18, 'La Carrera de la Via'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9992, 18, 'Los Morones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9993, 18, 'Fuente Camacho'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9994, 18, 'La Palma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9995, 18, 'Ventorros de la Laguna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9996, 18, 'Cotilfar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9997, 18, 'Terre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9998, 18, 'Venta de Andar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (9999, 18, 'Ventorros de Balerma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10000, 18, 'Estacion de Moreda'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10001, 18, 'Las Yeseras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10002, 18, 'Trujillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10003, 18, 'Carchuna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10004, 18, 'Murchas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10005, 18, 'Chite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10006, 18, 'Mondujar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10007, 18, 'Los Pinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10008, 18, 'El Cortijo Bajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10009, 18, 'Puntalon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10010, 18, 'Los Corrales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10011, 18, 'Lojilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10012, 18, 'Anzola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10013, 18, 'Los Arenales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10014, 18, 'Fortaleza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10015, 18, 'Cumbres Verdes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10016, 18, 'Campo Humano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10017, 18, 'Canaleja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10018, 18, 'Caparacena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10019, 18, 'Corcoles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10020, 18, 'Cortijo de Baratas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10021, 18, 'Los Gitanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10022, 18, 'Huertas Y Cercados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10023, 18, 'Milanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10024, 18, 'Los Molinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10025, 18, 'Palancar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10026, 18, 'Pilas de Algaida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10027, 18, 'Plines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10028, 18, 'Las Puertas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10029, 18, 'El Rescate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10030, 18, 'Rincon de Turca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10031, 18, 'La Viuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10032, 18, 'Los Pualeros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10033, 18, 'La Rambla del Banco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10034, 18, 'Las Torres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10035, 18, 'La Umbria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10036, 18, 'Vallequemado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10037, 18, 'Albuuelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10038, 18, 'La Alhondiguilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10039, 18, 'Barranco Ferrer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10040, 18, 'Bucor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10041, 18, 'Buenavista'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10042, 18, 'Bugejar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10043, 18, 'Los Casimiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10044, 18, 'El Collado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10045, 18, 'Cuesta del Largo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10046, 18, 'Cuesta Vieja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10047, 18, 'Cuevas de Salas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10048, 18, 'Los Chaulines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10049, 18, 'Estacion de Pedro-Martinez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10050, 18, 'Fuente Caldera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10051, 18, 'Los Garcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10052, 18, 'El Hacho'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10053, 18, 'Los Llanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10054, 18, 'El Molinillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10055, 18, 'Los Morenos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10056, 18, 'Los Pastores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10057, 18, 'La Saucedilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10058, 18, 'El Serval'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10059, 18, 'Sierra de Ojete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10060, 18, 'Agicampe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10061, 18, 'Cortijo de la Orozca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10062, 18, 'Los Hospitales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10063, 18, 'Las Cuevas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10064, 18, 'Gelibra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10065, 18, 'La Jamula'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10066, 18, 'Rio de Baza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10067, 18, 'Los Archillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10068, 18, 'Los Caballeros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10069, 18, 'Loma del Aire'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10070, 18, 'Los Cozares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10071, 18, 'Dehesa de Los Montes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10072, 18, 'La Esperanza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10073, 18, 'Faucena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10074, 18, 'Los Guerras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10075, 18, 'La Huertezuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10076, 18, 'Jabalcon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10077, 18, 'La Jauca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10078, 18, 'Moncayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10079, 18, 'Los Morales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10080, 18, 'La Noria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10081, 18, 'El Peon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10082, 18, 'Los Pergueres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10083, 18, 'Pilas Dedil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10084, 18, 'Prado Negro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10085, 18, 'Rambla Carlonca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10086, 18, 'Royo del Serval'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10087, 18, 'La Solana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10088, 18, 'Tamojares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10089, 18, 'Torre Abeca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10090, 18, 'Las Torres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10091, 18, 'La Umbria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10092, 18, 'Los Vargas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10093, 18, 'Santa Juliana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10094, 18, 'Zaidin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10095, 18, 'Poblado Industrial Mercagranada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10096, 18, 'Bobadilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10097, 18, 'Cerrillo de Maracena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10098, 18, 'Barriada Colora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10099, 18, 'Fuente Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10100, 18, 'Miranevada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10101, 18, 'Las Chozas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10102, 18, 'La Zahora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10103, 18, 'Gabia Chica'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10104, 18, 'La Torrecilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10105, 18, 'Vias Las'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10106, 18, 'Barrio de la Vega -Monachil-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10107, 18, 'El Barrichuelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10108, 18, 'Arenales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10109, 18, 'Llanos Silva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10110, 18, 'Poligono Industrial Asegra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10111, 18, 'Pulianillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10112, 18, 'Cortijo del Aire'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10113, 18, 'Parque del Cubillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10114, 18, 'Poligono Industrial Juncaril Albolote'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10115, 18, 'Hurpe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10116, 18, 'Poligono Industrial Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10117, 18, 'Sierra Elvira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10118, 18, 'Casa Real'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10119, 18, 'Peinado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10120, 18, 'Fuente Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10121, 18, 'Poligono Industrial Juncaril Peligros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10122, 18, 'Alitaje'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10123, 18, 'Buenavista'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10124, 18, 'San Pascual'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10125, 18, 'Casas Bajas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10126, 18, 'Barranco del Oro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10127, 18, 'Chorreras Molinillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10128, 18, 'Peon El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10129, 18, 'Los Baos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10130, 18, 'Cerro Camello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10131, 18, 'Valdeiglesias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10132, 18, 'El Almendral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10133, 18, 'Rincon de Los Reinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10134, 18, 'Venta Leche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10135, 18, 'Balsillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10136, 18, 'San Nicolas del Moro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10137, 18, 'Bodurria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10138, 18, 'Maclite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10139, 18, 'Las Molineras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10140, 18, 'Los Olmos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10141, 18, 'Uclias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10142, 18, 'La Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10143, 18, 'La Colonia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10144, 18, 'Baos de Zujar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10145, 18, 'La Solana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10146, 18, 'Montenegro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10147, 18, 'Fuentezuelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10148, 18, 'Los Llanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10149, 18, 'Cuesta de Almendros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10150, 18, 'La Haza de Herrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10151, 18, 'Las Morenas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10152, 18, 'Los Ramblones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10153, 18, 'Los Sapos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10154, 18, 'Los Sevillanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10155, 18, 'Capileira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10156, 18, 'Mecina Fondales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10157, 18, 'Marchal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10158, 18, 'Los Moras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10159, 18, 'Cuevas de Lavaderas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10160, 18, 'Cuevas San Marcos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10161, 18, 'Los Isidros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10162, 18, 'La Sacristia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10163, 18, 'El Sauco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10164, 18, 'La Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10165, 18, 'Barrio Nuevo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10166, 18, 'Pinar de la Vidriera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10167, 18, 'Torralba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10168, 18, 'Casas de Don Juan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10169, 18, 'Cortijos Nuevos de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10170, 18, 'Cortijos Nuevos del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10171, 18, 'Lobrega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10172, 18, 'Toscana Nueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10173, 18, 'San Antonio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10174, 18, 'Virgen de Begoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10175, 18, 'Camarate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10176, 18, 'Cortes Y Graena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10177, 18, 'Rambla de Cauzon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10178, 18, 'Rambla de la Matanza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10179, 18, 'Valdemanzanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10180, 18, 'El Pocico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10181, 18, 'El Raposo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10182, 18, 'Los Balcones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10183, 18, 'Estacion de Gorafe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10184, 18, 'Los Balcones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10185, 18, 'Estacion de Guadix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10186, 18, 'Estacion La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10187, 18, 'Estacion de la Calahorra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10188, 18, 'Vista Alegre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10189, 18, 'Marchalejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10190, 18, 'Rivera del Fardes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10191, 18, 'Rambla Agua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10192, 18, 'La Trinidad'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10193, 18, 'Los Oqueales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10194, 18, 'Rambla de Los Lobos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10195, 18, 'Barcinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10196, 18, 'El Frage'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10197, 18, 'Los Montalbanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10198, 18, 'Onitar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10199, 18, 'Camargo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10200, 18, 'Manzanillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10201, 18, 'Las Caadillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10202, 18, 'Cuesta de la Valdesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10203, 18, 'Marchena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10204, 18, 'El Puente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10205, 18, 'Las Barreras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10206, 18, 'Cerro Negro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10207, 18, 'Pago Y Benisalte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10208, 18, 'Aguadero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10209, 18, 'Barcaile'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10210, 18, 'Urbanizacion El Puntal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10211, 18, 'Venta del Fraile'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10212, 18, 'Tablate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10213, 18, 'Calardos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10214, 18, 'Estacion de Huetor Tajar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10215, 18, 'Venta Nueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10216, 18, 'Caada del Junco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10217, 18, 'Dehesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10218, 18, 'Las Huertas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10219, 18, 'Las Rozuelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10220, 18, 'Los Galvez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10221, 18, 'Los Huecos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10222, 18, 'La Ermita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10223, 18, 'El Pozuelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10224, 18, 'Velilla-Taramay'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10225, 18, 'El Romeral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10226, 18, 'Jolucar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10227, 18, 'Velilla-Taramay'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10228, 18, 'Los Tablones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10229, 18, 'El Varadero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10230, 18, 'Las Ventillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10231, 18, 'Bargis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10232, 18, 'Fregenite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10233, 18, 'Los Gallegos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10234, 18, 'Olias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10235, 18, 'Los Romeras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10236, 18, 'Los Barriales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10237, 18, 'Las Casillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10238, 18, 'Castillo de Baos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10239, 18, 'Haza del Lino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10240, 18, 'Los Diaz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10241, 18, 'La Caleta-Guardia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10242, 18, 'Los Yesos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10243, 18, 'La Gorgoracha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10244, 18, 'Lagos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10245, 18, 'Cuesta Blanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10246, 18, 'La Esperanza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10247, 18, 'La Fabrica'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10248, 18, 'El Frontil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10249, 18, 'Manzanil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10250, 18, 'Venta del Rayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10251, 18, 'Venta Santa Barbara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10252, 18, 'Cuevas del Negro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10253, 18, 'El Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10254, 18, 'Valle del Zalabi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10255, 18, 'Vegas del Genil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10256, 18, 'Cortes Y Graena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10257, 18, 'Cullar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10258, 19, 'Alcolea del Pinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10259, 19, 'Azuqueca de Henares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10260, 19, 'Brihuega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10261, 19, 'Chiloeches'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10262, 19, 'Fontanar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10263, 19, 'Guadalajara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10264, 19, 'Jadraque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10265, 19, 'Mandayona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10266, 19, 'Romancos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10267, 19, 'Siguenza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10268, 19, 'Torija'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10269, 19, 'Trijueque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10270, 19, 'Yunquera de Henares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10271, 19, 'Cabanillas del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10272, 19, 'Iriepal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10273, 19, 'Marchamalo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10274, 19, 'Humanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10275, 19, 'Alustante'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10276, 19, 'Sacedon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10277, 19, 'Cogolludo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10278, 19, 'Atienza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10279, 19, 'Orea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10280, 19, 'Cifuentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10281, 19, 'Molina de Aragon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10282, 19, 'Maranchon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10283, 19, 'Pastrana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10284, 19, 'Mondejar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10285, 19, 'Albalate de Zorita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10286, 19, 'Almonacid de Zorita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10287, 19, 'Albares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10288, 19, 'Almoguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10289, 19, 'Mazuecos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10290, 19, 'Horche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10291, 19, 'Yebra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10292, 19, 'Checa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10293, 19, 'Alcocer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10294, 19, 'Auon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10295, 19, 'Tendilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10296, 19, 'Pealver'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10297, 19, 'Illana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10298, 19, 'Corduente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10299, 19, 'El Casar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10300, 19, 'Anguita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10301, 19, 'Uceda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10302, 19, 'Algora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10303, 19, 'Sauca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10304, 19, 'Torremocha del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10305, 19, 'Taracena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10306, 19, 'Valdenoches'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10307, 19, 'Almadrones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10308, 19, 'Ledanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10309, 19, 'Gajanejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10310, 19, 'Alovera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10311, 19, 'Arbeteta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10312, 19, 'Armallones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10313, 19, 'Azaon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10314, 19, 'Gargoles de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10315, 19, 'Pealen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10316, 19, 'Peralveche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10317, 19, 'Poveda de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10318, 19, 'El Recuenco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10319, 19, 'Fuencemillan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10320, 19, 'Trillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10321, 19, 'Villanueva de Alcoron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10322, 19, 'Zaorejas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10323, 19, 'Mohernando'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10324, 19, 'Aragoncillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10325, 19, 'Canales de Molina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10326, 19, 'Herreria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10327, 19, 'Cillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10328, 19, 'Rillo de Gallo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10329, 19, 'Rueda de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10330, 19, 'Tortuera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10331, 19, 'Anchuela del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10332, 19, 'Estables'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10333, 19, 'Prados Redondos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10334, 19, 'Chera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10335, 19, 'Torrubia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10336, 19, 'Hinojosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10337, 19, 'Milmarcos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10338, 19, 'Torete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10339, 19, 'Fuentelsaz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10340, 19, 'Torrecuadrada de Molina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10341, 19, 'Campillo de Dueas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10342, 19, 'Concha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10343, 19, 'Labros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10344, 19, 'Selas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10345, 19, 'Anquela del Pedregal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10346, 19, 'Lebrancon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10347, 19, 'Torremochuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10348, 19, 'Ventosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10349, 19, 'Amayas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10350, 19, 'Baos de Tajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10351, 19, 'Megina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10352, 19, 'El Pobo de Dueas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10353, 19, 'Pinilla de Molina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10354, 19, 'Pradilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10355, 19, 'Taravilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10356, 19, 'Traid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10357, 19, 'Cubillejo del Sitio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10358, 19, 'Pardos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10359, 19, 'Adobes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10360, 19, 'Cuevas Labradas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10361, 19, 'Teroleja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10362, 19, 'Piqueras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10363, 19, 'Castellar de la Muela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10364, 19, 'Escalera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10365, 19, 'Hombrados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10366, 19, 'El Pedregal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10367, 19, 'Terzaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10368, 19, 'Tordelpalo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10369, 19, 'Chequilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10370, 19, 'Tierzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10371, 19, 'Tordellego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10372, 19, 'Valhermoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10373, 19, 'Aldehuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10374, 19, 'Fuembellida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10375, 19, 'Usanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10376, 19, 'Cubillejo de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10377, 19, 'Tartanedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10378, 19, 'Peralejos de Las Truchas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10379, 19, 'Setiles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10380, 19, 'Tordesilos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10381, 19, 'Otilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10382, 19, 'Motos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10383, 19, 'Alcoroches'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10384, 19, 'Morenilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10385, 19, 'Anchuela del Pedregal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10386, 19, 'Torremocha del Pinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10387, 19, 'Lupiana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10388, 19, 'Torrejon del Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10389, 19, 'Escariche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10390, 19, 'Escopete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10391, 19, 'Mazarete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10392, 19, 'Espinosa de Henares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10393, 19, 'Sayaton'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10394, 19, 'Pareja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10395, 19, 'Santa Maria del Espino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10396, 19, 'Iniestola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10397, 19, 'Fuentelviejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10398, 19, 'Romanones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10399, 19, 'Cobeta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10400, 19, 'Olmeda de Cobeta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10401, 19, 'Villar de Cobeta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10402, 19, 'Saelices de la Sal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10403, 19, 'Pozo de Guadalajara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10404, 19, 'Ciruelos del Pinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10405, 19, 'Luzon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10406, 19, 'Codes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10407, 19, 'Clares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10408, 19, 'Turmiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10409, 19, 'Mochales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10410, 19, 'Algar de Mesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10411, 19, 'La Yunta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10412, 19, 'Armua de Tajua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10413, 19, 'Balbacil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10414, 19, 'Anquela del Ducado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10415, 19, 'Luzaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10416, 19, 'Hortezuela de Ocen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10417, 19, 'Riba de Saelices'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10418, 19, 'Sotodosos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10419, 19, 'Villarejo de Medina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10420, 19, 'Arbancon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10421, 19, 'Galapagos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10422, 19, 'Villel de Mesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10423, 19, 'Quer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10424, 19, 'Padilla del Ducado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10425, 19, 'Pioz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10426, 19, 'Ruguilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10427, 19, 'Embid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10428, 19, 'Hueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10429, 19, 'Huetos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10430, 19, 'Morillejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10431, 19, 'Cendejas de la Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10432, 19, 'Bujalaro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10433, 19, 'Castilforte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10434, 19, 'Valdeavellano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10435, 19, 'Ablanque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10436, 19, 'Huertahernando'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10437, 19, 'Budia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10438, 19, 'Berninches'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10439, 19, 'Alhondiga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10440, 19, 'Moratilla de Los Meleros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10441, 19, 'Millana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10442, 19, 'Escamilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10443, 19, 'Corcoles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10444, 19, 'Atanzon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10445, 19, 'Centenera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10446, 19, 'Loranca de Tajua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10447, 19, 'Aranzueque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10448, 19, 'Hontoba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10449, 19, 'Masegoso de Tajua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10450, 19, 'Driebes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10451, 19, 'Fuentenovilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10452, 19, 'Pozo de Almoguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10453, 19, 'Fuentelencina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10454, 19, 'Salmeron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10455, 19, 'Tortola de Henares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10456, 19, 'Hita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10457, 19, 'Malaga del Fresno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10458, 19, 'Valdesaz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10459, 19, 'Valfermoso de Tajua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10460, 19, 'Cendejas del Padrastro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10461, 19, 'Muduex'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10462, 19, 'Miralrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10463, 19, 'Tamajon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10464, 19, 'Robledillo de Mohernando'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10465, 19, 'Baides'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10466, 19, 'Casa de Uceda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10467, 19, 'El Cubillo de Uceda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10468, 19, 'Fuentelahiguera de Albatages'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10469, 19, 'Mesones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10470, 19, 'Valdepeas de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10471, 19, 'Villaseca de Uceda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10472, 19, 'Viuelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10473, 19, 'Bustares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10474, 19, 'Miedes de Atienza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10475, 19, 'Galve de Sorbe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10476, 19, 'Campisabalos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10477, 19, 'Cantalojas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10478, 19, 'Condemios de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10479, 19, 'Riofrio del Llano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10480, 19, 'Somolinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10481, 19, 'Puebla de Belea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10482, 19, 'Heras de Ayuso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10483, 19, 'Torre del Burgo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10484, 19, 'Valdearenas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10485, 19, 'Villaseca de Henares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10486, 19, 'Mirabueno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10487, 19, 'Castejon de Henares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10488, 19, 'Medranda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10489, 19, 'Villanueva de la Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10490, 19, 'Valdeaveruelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10491, 19, 'Utande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10492, 19, 'Valdenuo Fernandez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10493, 19, 'Casasana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10494, 19, 'Archilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10495, 19, 'Tomellosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10496, 19, 'Aguilar de Anguita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10497, 19, 'Hiendelaencina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10498, 19, 'Sacecorbo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10499, 19, 'Abanades'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10500, 19, 'Canredondo'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10501, 19, 'Esplegares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10502, 19, 'Ocentejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10503, 19, 'Renales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10504, 19, 'Matillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10505, 19, 'La Toba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10506, 19, 'Horna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10507, 19, 'Las Inviernas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10508, 19, 'El Sotillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10509, 19, 'Membrillera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10510, 19, 'Paredes de Siguenza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10511, 19, 'La Huerce'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10512, 19, 'Fuentes de la Alcarria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10513, 19, 'Riosalido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10514, 19, 'Malaguilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10515, 19, 'Gualda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10516, 19, 'Valdeconcha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10517, 19, 'Sienes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10518, 19, 'El Cardoso de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10519, 19, 'Caamares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10520, 19, 'Alarilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10521, 19, 'Alcuneza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10522, 19, 'La Cabrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10523, 19, 'Guijosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10524, 19, 'Moratilla de Henares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10525, 19, 'Palazuelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10526, 19, 'Pelegrina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10527, 19, 'Pozancos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10528, 19, 'Alocen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10529, 19, 'Chillarn Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10530, 19, 'Duron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10531, 19, 'Mantiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10532, 19, 'El Olivar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10533, 19, 'Barbatona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10534, 19, 'Valfermoso de Las Monjas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10535, 19, 'Carrascosa de Henares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10536, 19, 'Zorita de Los Canes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10537, 19, 'Caspueas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10538, 19, 'Condemios de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10539, 19, 'Garbajosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10540, 19, 'Tortonda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10541, 19, 'Valdegrudas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10542, 19, 'Villaverde del Ducado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10543, 19, 'Caizar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10544, 19, 'Rebollosa de Hita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10545, 19, 'Ciruelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10546, 19, 'Aldeanueva de Guadalajara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10547, 19, 'Riba de Santiuste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10548, 19, 'Copernal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10549, 19, 'Gargoles de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10550, 19, 'Henche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10551, 19, 'Solanillos del Extremo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10552, 19, 'Balconete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10553, 19, 'Argecilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10554, 19, 'Canales del Ducado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10555, 19, 'La Fuensavian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10556, 19, 'Hontanares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10557, 19, 'Irueste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10558, 19, 'Laranueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10559, 19, 'Malacuera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10560, 19, 'Matarrubia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10561, 19, 'Navalpotro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10562, 19, 'Olmeda del Extremo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10563, 19, 'Pajares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10564, 19, 'Puebla de Valles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10565, 19, 'Retiendas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10566, 19, 'Robledo de Corpes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10567, 19, 'San Andres del Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10568, 19, 'Torrebelea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10569, 19, 'La Torresavian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10570, 19, 'Yelamos de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10571, 19, 'Yelamos de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10572, 19, 'Angn'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10573, 19, 'La Bodera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10574, 19, 'Cincovillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10575, 19, 'Zarzuela de Jadraque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10576, 19, 'Alique'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10577, 19, 'Bauelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10578, 19, 'Casas de San Galindo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10579, 19, 'Castilblanco de Henares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10580, 19, 'Renera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10581, 19, 'Romanillos de Atienza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10582, 19, 'Congostrina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10583, 19, 'Albendiego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10584, 19, 'Aldeanueva de Atienza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10585, 19, 'Palmaces de Jadraque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10586, 19, 'Yela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10587, 19, 'Torrecuadrada de Los Valles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10588, 19, 'Aragosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10589, 19, 'Valverde de Los Arroyos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10590, 19, 'Yebes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10591, 19, 'Muriel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10592, 19, 'La Puerta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10593, 19, 'Taragudo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10594, 19, 'Viana de Mondejar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10595, 19, 'San Andres del Congosto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10596, 19, 'Veguillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10597, 19, 'Villaviciosa de Tajua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10598, 19, 'Campillo de Ranas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10599, 19, 'Majaelrayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10600, 19, 'Castilmimbre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10601, 19, 'La Barbolla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10602, 19, 'Bujarrabal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10603, 19, 'Carabias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10604, 19, 'Cubillas del Pinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10605, 19, 'Estriegana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10606, 19, 'Imon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10607, 19, 'La Olmeda de Jadraque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10608, 19, 'Padilla de Hita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10609, 19, 'Ures'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10610, 19, 'Valdelcubo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10611, 19, 'Alboreca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10612, 19, 'Olmedillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10613, 19, 'Cerezo de Mohernando'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10614, 19, 'Cortes de Tajua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10615, 19, 'Pinilla de Jadraque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10616, 19, 'Villares de Jadraque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10617, 19, 'Alcolea de Las Peas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10618, 19, 'Sotoca de Tajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10619, 19, 'Valderrebollo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10620, 19, 'Val de San Garcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10621, 19, 'Oter'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10622, 19, 'Cogollor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10623, 19, 'Torrecuadradilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10624, 19, 'Montarron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10625, 19, 'Negredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10626, 19, 'Villanueva de Argecilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10627, 19, 'La Mierla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10628, 19, 'Aleas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10629, 19, 'Belea de Sorbe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10630, 19, 'Rebollosa de Jadraque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10631, 19, 'Valdarachas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10632, 19, 'Torremocha de Jadraque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10633, 19, 'Alaminos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10634, 19, 'Alpedrete de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10635, 19, 'Razbona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10636, 19, 'Tortuero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10637, 19, 'Valdesotos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10638, 19, 'Jirueque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10639, 19, 'Cercadillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10640, 19, 'Monasterio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10641, 19, 'Arroyo de Las Fraguas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10642, 19, 'Gascuea de Bornova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10643, 19, 'Hijes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10644, 19, 'Huermeces del Cerro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10645, 19, 'La Miosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10646, 19, 'La Nava de Jadraque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10647, 19, 'Las Navas de Jadraque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10648, 19, 'El Ordial'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10649, 19, 'Pradena de Atienza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10650, 19, 'Santiuste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10651, 19, 'Tordelrabano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10652, 19, 'Torrecilla del Ducado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10653, 19, 'Ujados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10654, 19, 'Valtablado del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10655, 19, 'Viana de Jadraque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10656, 19, 'Barriopedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10657, 19, 'Almiruete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10658, 19, 'Palancares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10659, 19, 'Cendejas del Padrastro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10660, 19, 'La Loma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10661, 19, 'Moranchel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10662, 19, 'Robleluengo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10663, 19, 'Santamera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10664, 19, 'Tobillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10665, 19, 'Villacorza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10666, 19, 'Cabida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10667, 19, 'Colmenar de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10668, 19, 'Bocigano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10669, 19, 'Corralejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10670, 19, 'Pealba de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10671, 19, 'Semillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10672, 19, 'Las Brisas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10673, 19, 'El Clavin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10674, 19, 'Pealagos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10675, 19, 'Poblado Central Nuclear'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10676, 19, 'Salto de Bolarque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10677, 19, 'Santa Clara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10678, 19, 'Sotolargo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10679, 19, 'Tordelloso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10680, 19, 'Valdelagua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10681, 19, 'Valsalobre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10682, 19, 'Zarzuela de Galve'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10683, 19, 'Madrigal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10684, 19, 'Campillejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10685, 19, 'El Espinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10686, 19, 'Roblelacasa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10687, 19, 'Alpedroches'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10688, 19, 'Bochones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10689, 19, 'Casillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10690, 19, 'Naharros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10691, 19, 'Umbralejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10692, 19, 'Valdepinillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10693, 19, 'Jodra del Pinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10694, 19, 'Carrascosa de Tajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10695, 19, 'Sanatorio de Alcohete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10696, 19, 'Castilnuevo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10697, 19, 'Cardeosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10698, 19, 'Rienda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10699, 19, 'Ribarredonda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10700, 19, 'Albolleque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10701, 19, 'Torre de Valdealmendras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10702, 19, 'Algarga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10703, 19, 'Terraza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10704, 19, 'Estacion Baides'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10705, 19, 'Robledarcas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10706, 19, 'Cirueches'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10707, 19, 'Anguix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10708, 19, 'Picazo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10709, 19, 'Tabladillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10710, 19, 'Las Anclas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10711, 19, 'Civica'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10712, 19, 'Valdealmendras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10713, 19, 'Bujalcayado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10714, 19, 'El Atance'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10715, 19, 'Mojares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10716, 19, 'Cereceda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10717, 19, 'Los Barrancos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10718, 19, 'El Mirador'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10719, 19, 'La Beltraneja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10720, 19, 'El Clavin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10721, 19, 'Arcipreste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10722, 19, 'Las Dehesas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10723, 19, 'Pearrubia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10724, 19, 'Parque de Las Castillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10725, 19, 'Caraquiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10726, 19, 'Residencial Montelar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10727, 19, 'Santa Agueda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10728, 19, 'Ciruelos del Pinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10729, 20, 'Irun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10730, 20, 'Donostia-San Sebastian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10731, 20, 'Tolosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10732, 20, 'Azpeitia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10733, 20, 'Zestoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10734, 20, 'Deba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10735, 20, 'Eibar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10736, 20, 'Hondarribia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10737, 20, 'Hernani'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10738, 20, 'Ibarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10739, 20, 'Arrasate-Mondragon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10740, 20, 'Oati'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10741, 20, 'Pasai San Pedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10742, 20, 'Renteria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10743, 20, 'Bergara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10744, 20, 'Ordizia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10745, 20, 'Zarautz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10746, 20, 'Zumarraga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10747, 20, 'Zumaia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10748, 20, 'Alegia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10749, 20, 'Alzola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10750, 20, 'Arantzazu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10751, 20, 'Aretxabaleta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10752, 20, 'Arroa Goikoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10753, 20, 'Asteasu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10754, 20, 'Ataun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10755, 20, 'Aia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10756, 20, 'Azkoitia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10757, 20, 'Berrobi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10758, 20, 'Brinkola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10759, 20, 'Zegama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10760, 20, 'Zizurkil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10761, 20, 'Elgoibar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10762, 20, 'Elgeta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10763, 20, 'Eskoriatza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10764, 20, 'Gabiria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10765, 20, 'Idiazabal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10766, 20, 'Iraeta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10767, 20, 'Lazkao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10768, 20, 'Legorreta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10769, 20, 'Lizartza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10770, 20, 'Lizarrusti'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10771, 20, 'Matximenta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10772, 20, 'Azpilgoeta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10773, 20, 'Mutriku'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10774, 20, 'Mutiloa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10775, 20, 'Arroa Behekoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10776, 20, 'Olaberria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10777, 20, 'Orendain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10778, 20, 'Otzaurte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10779, 20, 'Errezil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10780, 20, 'San Gregorio -Ataun-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10781, 20, 'Segura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10782, 20, 'Bidania'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10783, 20, 'Zaldibia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10784, 20, 'Zaartu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10785, 20, 'Abaltzisketa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10786, 20, 'Aduna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10787, 20, 'Aguinaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10788, 20, 'Aginaga -Usurbil-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10789, 20, 'Aizarna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10790, 20, 'Aizarnazabal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10791, 20, 'Aizpurucho'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10792, 20, 'Albiztur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10793, 20, 'Aldaba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10794, 20, 'Alegia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10795, 20, 'Alkiza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10796, 20, 'Altzaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10797, 20, 'Altzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10798, 20, 'Altzola -Aia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10799, 20, 'Amasa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10800, 20, 'Amezketa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10801, 20, 'Andoain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10802, 20, 'Angiozar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10803, 20, 'Anoeta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10804, 20, 'Antzuola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10805, 20, 'Arama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10806, 20, 'Araotz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10807, 20, 'Aratz-Erreka'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10808, 20, 'Arrate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10809, 20, 'Arriaran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10810, 20, 'Askizu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10811, 20, 'Cortacogain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10812, 20, 'Astigarreta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10813, 20, 'Astigarribia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10814, 20, 'Aia -Ataun-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10815, 20, 'Aztiria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10816, 20, 'Baliarrain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10817, 20, 'Beasain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10818, 20, 'Bedaio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10819, 20, 'Bedaio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10820, 20, 'Beizama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10821, 20, 'Belauntza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10822, 20, 'Berastegi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10823, 20, 'Caseta Ataun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10824, 20, 'Zerain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10825, 20, 'Echegarate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10826, 20, 'Eldua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10827, 20, 'Elduain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10828, 20, 'Elosu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10829, 20, 'Aginaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10830, 20, 'Erdoizta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10831, 20, 'Ergoiena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10832, 20, 'Ergoyena -Ataun-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10833, 20, 'Ezkio-Itsaso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10834, 20, 'Gaintza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10835, 20, 'Garagartza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10836, 20, 'Garagarza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10837, 20, 'Garin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10838, 20, 'Gaztelu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10839, 20, 'Goiatz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10840, 20, 'Andre Mariaren de Guadalupe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10841, 20, 'Getaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10842, 20, 'Hernialde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10843, 20, 'Ibaarrieta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10844, 20, 'Ikaztegieta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10845, 20, 'Itziar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10846, 20, 'Itsaso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10847, 20, 'Arrasate-Mondragon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10848, 20, 'Irura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10849, 20, 'Itsasondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10850, 20, 'Larraul'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10851, 20, 'Lasarte-Oria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10852, 20, 'Lastur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10853, 20, 'Laurgain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10854, 20, 'Leaburu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10855, 20, 'Legazpi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10856, 20, 'Arkarazo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10857, 20, 'Loiola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10858, 20, 'Lubeltzaberri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10859, 20, 'Madariaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10860, 20, 'Maltzaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10861, 20, 'Martires Azkoitia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10862, 20, 'Osintxu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10863, 20, 'Zubillaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10864, 20, 'Meaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10865, 20, 'Murguimendi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10866, 20, 'Nuarbe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10867, 20, 'Oikia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10868, 20, 'Olarrain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10869, 20, 'Olatz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10870, 20, 'Olabarrieta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10871, 20, 'Oati'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10872, 20, 'Orexa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10873, 20, 'Orio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10874, 20, 'Ormaiztegi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10875, 20, 'Pagoaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10876, 20, 'Pasai Antxo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10877, 20, 'Pasai Donibane'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10878, 20, 'Soraluze-Placencia Las Armas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10879, 20, 'Leintz-Gatzaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10880, 20, 'San Lorenzo-Sallabente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10881, 20, 'Aozaratza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10882, 20, 'Artadi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10883, 20, 'San Pedro Aia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10884, 20, 'San Prudentzio -Getaria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10885, 20, 'Gesalibar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10886, 20, 'Santa Lutzi-Anduaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10887, 20, 'Santa Marina -Errezil-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10888, 20, 'Santuaran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10889, 20, 'Saturraran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10890, 20, 'Sorabilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10891, 20, 'Telleriarte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10892, 20, 'Lasao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10893, 20, 'Udala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10894, 20, 'Ugaldetxo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10895, 20, 'Ugartemendi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10896, 20, 'Urbia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10897, 20, 'Urdaneta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10898, 20, 'Uribarri -Oati-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10899, 20, 'Urnieta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10900, 20, 'Urquia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10901, 20, 'Urkizu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10902, 20, 'Urrestilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10903, 20, 'Ursuaran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10904, 20, 'Urteta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10905, 20, 'Urto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10906, 20, 'Usarza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10907, 20, 'Usurbil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10908, 20, 'Zumarraga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10909, 20, 'Zizurkil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10910, 20, 'Areantza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10911, 20, 'Villabona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10912, 20, 'Zubieta -Usurbil-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10913, 20, 'Bedoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10914, 20, 'Galartza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10915, 20, 'Goroeta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10916, 20, 'Izurieta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10917, 20, 'Larrino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10918, 20, 'Apotzaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10919, 20, 'Bolibar-Ugazua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10920, 20, 'Gellao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10921, 20, 'Marin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10922, 20, 'Mazmela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10923, 20, 'Mendiola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10924, 20, 'Zarimutz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10925, 20, 'Urruxola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10926, 20, 'Elorregi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10927, 20, 'Urretxu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10928, 20, 'Lezo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10929, 20, 'Oiartzun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10930, 20, 'Aldaola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10931, 20, 'Altzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10932, 20, 'Errezil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10933, 20, 'Astigarraga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10934, 20, 'Epele'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10935, 20, 'Ereozu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10936, 20, 'Igeldo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10937, 20, 'Jaizubia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10938, 20, 'Oria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10939, 20, 'Santa Marina -Errezil-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10940, 20, 'Sierra Aralar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10941, 20, 'Iurre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10942, 20, 'Zubieta -Usurbil-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10943, 20, 'Urasandi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10944, 20, 'Lasao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10945, 20, 'Soraluze-Placencia Las Armas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10946, 20, 'Pasaia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10947, 20, 'Trin Txerte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10948, 20, 'Zestoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10949, 20, 'Hondarribia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10950, 20, 'Alegia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10951, 20, 'Eskoriatza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10952, 20, 'Lasarte-Oria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10953, 20, 'Bidegoyan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10954, 20, 'Pasaia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10955, 20, 'Mendaro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10956, 20, 'Leaburu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10957, 20, 'Ezkio-Itsaso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10958, 20, 'Altzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10959, 21, 'Almonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10960, 21, 'Aracena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10961, 21, 'Ayamonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10962, 21, 'Beas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10963, 21, 'Bollullos Par del Condado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10964, 21, 'Bonares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10965, 21, 'Cala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10966, 21, 'El Campillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10967, 21, 'Cartaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10968, 21, 'Cortegana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10969, 21, 'Cumbres de Enmedio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10970, 21, 'Cumbres Mayores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10971, 21, 'Chucena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10972, 21, 'Escacena del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10973, 21, 'Galaroza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10974, 21, 'Gibraleon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10975, 21, 'Higuera de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10976, 21, 'Hinojos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10977, 21, 'Huelva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10978, 21, 'Isla Cristina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10979, 21, 'Jabugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10980, 21, 'Lepe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10981, 21, 'Manzanilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10982, 21, 'Minas de Riotinto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10983, 21, 'Moguer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10984, 21, 'Nerva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10985, 21, 'Niebla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10986, 21, 'La Palma del Condado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10987, 21, 'Palos de la Frontera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10988, 21, 'Paterna del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10989, 21, 'Arroyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10990, 21, 'Rociana del Condado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10991, 21, 'San Juan del Puerto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10992, 21, 'Santa Olalla del Cala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10993, 21, 'Trigueros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10994, 21, 'Valverde del Camino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10995, 21, 'Villalba del Alcor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10996, 21, 'Villarrasa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10997, 21, 'Zalamea la Real'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10998, 21, 'Zufre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (10999, 21, 'Calaas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11000, 21, 'Castao del Robledo'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11001, 21, 'Aljaraque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11002, 21, 'Punta Umbria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11003, 21, 'Arroyomolinos de Leon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11004, 21, 'El Repilado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11005, 21, 'Corteconcepcion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11006, 21, 'El Cerro de Andevalo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11007, 21, 'Almonaster la Real'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11008, 21, 'Encinasola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11009, 21, 'Cumbres San Bartolome'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11010, 21, 'Lucena Puerto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11011, 21, 'Fuenteheridos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11012, 21, 'Las Herrerias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11013, 21, 'Puebla de Guzman'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11014, 21, 'San Bartolome de la Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11015, 21, 'Alosno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11016, 21, 'Tharsis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11017, 21, 'Alajar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11018, 21, 'Aroche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11019, 21, 'Rosal de la Frontera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11020, 21, 'Cortelazor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11021, 21, 'Los Marines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11022, 21, 'Puerto Moral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11023, 21, 'Valdelarco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11024, 21, 'El Almendro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11025, 21, 'Villanueva de Los Castillejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11026, 21, 'Campofrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11027, 21, 'La Granada de Rio-Tinto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11028, 21, 'Linares de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11029, 21, 'Santa Ana la Real'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11030, 21, 'El Granado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11031, 21, 'Sanlucar de Guadiana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11032, 21, 'La Nava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11033, 21, 'Berrocal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11034, 21, 'San Silvestre de Guzman'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11035, 21, 'Villablanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11036, 21, 'Caaveral de Leon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11037, 21, 'Hinojales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11038, 21, 'Paymogo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11039, 21, 'Santa Barbara Casa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11040, 21, 'Cabezas Rubias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11041, 21, 'Villanueva de Las Cruces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11042, 21, 'La Zarza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11043, 21, 'Canaleja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11044, 21, 'Estacion de Almonaster'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11045, 21, 'Corrales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11046, 21, 'Isla de Canela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11047, 21, 'Isla Moral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11048, 21, 'Los Romeros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11049, 21, 'Veredas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11050, 21, 'Jabuguillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11051, 21, 'Valdezufre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11052, 21, 'Cueva de la Mora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11053, 21, 'La Antilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11054, 21, 'Candon -Beas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11055, 21, 'Minas de Cala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11056, 21, 'Mazagon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11057, 21, 'Aguafria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11058, 21, 'Patras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11059, 21, 'La Joya O Soloviejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11060, 21, 'Navahermosa -Galaroza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11061, 21, 'Castauelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11062, 21, 'Corterrangel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11063, 21, 'La Umbria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11064, 21, 'Torre la Higuera-Matalascaas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11065, 21, 'Carboneras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11066, 21, 'Sotiel Coronada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11067, 21, 'Calabazares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11068, 21, 'La Dehesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11069, 21, 'El Rompido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11070, 21, 'Marigenta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11071, 21, 'Valdelamusa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11072, 21, 'El Villar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11073, 21, 'Las Cefias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11074, 21, 'La Corte -Cortegana-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11075, 21, 'San Telmo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11076, 21, 'Perrunal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11077, 21, 'Ventas de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11078, 21, 'Montes de San Benito'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11079, 21, 'Molares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11080, 21, 'Traslasierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11081, 21, 'La Corte -Santa Ana la Real-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11082, 21, 'Las Delgadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11083, 21, 'La Redondela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11084, 21, 'El Rocio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11085, 21, 'Puerto Lucia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11086, 21, 'El Collado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11087, 21, 'Los Bodegones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11088, 21, 'Los Cabezudos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11089, 21, 'El Mustio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11090, 21, 'Escalada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11091, 21, 'Gil Marquez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11092, 21, 'Acebuche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11093, 21, 'La Isabel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11094, 21, 'Fuente de la Corcha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11095, 21, 'Las Chinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11096, 21, 'La Peuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11097, 21, 'El Pozuelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11098, 21, 'El Buitron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11099, 21, 'El Judio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11100, 21, 'Tujena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11101, 21, 'Puerto de la Laja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11102, 21, 'Montepuerto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11103, 21, 'Dehesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11104, 21, 'Concepcion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11105, 21, 'Bellavista'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11106, 21, 'Las Chinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11107, 21, 'La Joya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11108, 21, 'La Laguna del Portil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11109, 21, 'Las Madres del Avitor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11110, 21, 'Mazagon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11111, 21, 'Los Millares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11112, 21, 'Navahermosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11113, 21, 'Pinos Los'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11114, 21, 'Poligono Industrial Tartessos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11115, 21, 'Puntales Los'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11116, 21, 'Ribera La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11117, 21, 'Rincon El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11118, 21, 'Tariquejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11119, 21, 'Islantilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11120, 21, 'Pozo del Camino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11121, 21, 'Sta. Olalla Cala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11122, 21, 'La Zarza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11123, 22, 'Albalate de Cinca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11124, 22, 'Alcampell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11125, 22, 'Alcolea de Cinca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11126, 22, 'Alcubierre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11127, 22, 'Alfantega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11128, 22, 'Almudevar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11129, 22, 'Almunia de San Juan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11130, 22, 'Anzanigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11131, 22, 'Canfranc-Estacion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11132, 22, 'Ayerbe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11133, 22, 'Ballobar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11134, 22, 'Barbastro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11135, 22, 'Belver de Cinca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11136, 22, 'Benabarre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11137, 22, 'Bernues'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11138, 22, 'Binaced'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11139, 22, 'Binefar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11140, 22, 'Candasnos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11141, 22, 'Canfranc'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11142, 22, 'Castejon del Puente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11143, 22, 'Castejon de Monegros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11144, 22, 'Castiello de Jaca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11145, 22, 'Albelda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11146, 22, 'Esplus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11147, 22, 'Esquedas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11148, 22, 'Fraga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11149, 22, 'Graen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11150, 22, 'Graus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11151, 22, 'Huesca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11152, 22, 'Jaca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11153, 22, 'Loscorrales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11154, 22, 'Lupien-Ortilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11155, 22, 'Monzon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11156, 22, 'Osso de Cinca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11157, 22, 'Pealba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11158, 22, 'Plasencia del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11159, 22, 'La Puebla de Castro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11160, 22, 'Pueyo Santa Cruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11161, 22, 'Quinzano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11162, 22, 'Robres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11163, 22, 'Sabianigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11164, 22, 'San Esteban de Litera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11165, 22, 'Sariena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11166, 22, 'Selgua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11167, 22, 'Senes de Alcubierre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11168, 22, 'Tamarite de Litera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11169, 22, 'Tardienta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11170, 22, 'Torralba de Aragon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11171, 22, 'Torres del Obispo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11172, 22, 'Triste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11173, 22, 'Villanua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11174, 22, 'Zaidin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11175, 22, 'Torrente de Cinca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11176, 22, 'Bolea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11177, 22, 'Loarre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11178, 22, 'Azanuy-Alins'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11179, 22, 'Peralta de la Sal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11180, 22, 'Lanaja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11181, 22, 'Cofita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11182, 22, 'Fonz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11183, 22, 'Velilla de Cinca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11184, 22, 'Altorricon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11185, 22, 'Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11186, 22, 'Foradada del Toscar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11187, 22, 'Samper'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11188, 22, 'Seira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11189, 22, 'Perarrua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11190, 22, 'Santaliestra Y San Quilez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11191, 22, 'Ainsa-Sobrarbe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11192, 22, 'Biescas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11193, 22, 'Escuer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11194, 22, 'Gavin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11195, 22, 'Senegue'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11196, 22, 'Sorripas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11197, 22, 'Yesero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11198, 22, 'Castejon de Sos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11199, 22, 'Benasque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11200, 22, 'Sahun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11201, 22, 'Broto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11202, 22, 'Linas de Broto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11203, 22, 'Fiscal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11204, 22, 'Parador Ordesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11205, 22, 'Torla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11206, 22, 'Boltaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11207, 22, 'Lafortunada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11208, 22, 'Labuerda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11209, 22, 'Laspua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11210, 22, 'Bubal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11211, 22, 'Hoz de Jaca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11212, 22, 'Panticosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11213, 22, 'Piedrafita de Jaca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11214, 22, 'El Pueyo de Jaca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11215, 22, 'Sallent de Gallego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11216, 22, 'Tramacastilla de Tena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11217, 22, 'Escarrilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11218, 22, 'Bielsa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11219, 22, 'Puertolas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11220, 22, 'Tella-Sin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11221, 22, 'Eriste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11222, 22, 'Valcarca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11223, 22, 'Sarsa de Surta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11224, 22, 'Morillo de Liena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11225, 22, 'Plan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11226, 22, 'El Run'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11227, 22, 'Sin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11228, 22, 'Sarvise'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11229, 22, 'Villanova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11230, 22, 'Anso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11231, 22, 'Aragues del Puerto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11232, 22, 'Berdun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11233, 22, 'Binies'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11234, 22, 'Embun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11235, 22, 'Fago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11236, 22, 'Hecho'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11237, 22, 'Jasa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11238, 22, 'Javierregay'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11239, 22, 'Ontiena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11240, 22, 'Sandinies'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11241, 22, 'Santa Cilia Jaca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11242, 22, 'Santa Engracia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11243, 22, 'Sena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11244, 22, 'Siresa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11245, 22, 'Urdues'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11246, 22, 'Villanueva de Sigena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11247, 22, 'Viu -Torla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11248, 22, 'Alcala de Gurrea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11249, 22, 'Gurrea de Gallego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11250, 22, 'Montmesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11251, 22, 'Ortilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11252, 22, 'Poleino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11253, 22, 'Aso de Sobremonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11254, 22, 'Santa Cruz de la Seros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11255, 22, 'Lalueza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11256, 22, 'El Grado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11257, 22, 'Estada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11258, 22, 'Estadilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11259, 22, 'Aisa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11260, 22, 'Borau'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11261, 22, 'Esposa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11262, 22, 'Sinues'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11263, 22, 'Bisaurri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11264, 22, 'Chia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11265, 22, 'Bailo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11266, 22, 'Larues'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11267, 22, 'Sarsamarcuello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11268, 22, 'Pallaruelo de Monegros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11269, 22, 'Villarreal de la Canal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11270, 22, 'Aguero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11271, 22, 'Riglos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11272, 22, 'Almuniente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11273, 22, 'Barbues'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11274, 22, 'Sangarren'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11275, 22, 'Torres de Barbues'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11276, 22, 'Castelflorite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11277, 22, 'Lastanosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11278, 22, 'El Tormillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11279, 22, 'Estiche de Cinca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11280, 22, 'Pomar de Cinca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11281, 22, 'Santalecina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11282, 22, 'Secastilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11283, 22, 'Acumuer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11284, 22, 'Martes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11285, 22, 'Frula'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11286, 22, 'Montesusin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11287, 22, 'El Temple'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11288, 22, 'San Jorge'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11289, 22, 'Valsalada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11290, 22, 'Artasona del Llano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11291, 22, 'Adahuesca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11292, 22, 'Albero Alto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11293, 22, 'Albero Bajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11294, 22, 'Alberuela de la Liena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11295, 22, 'Alcala del Obispo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11296, 22, 'Alquezar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11297, 22, 'Arcusa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11298, 22, 'Argavieso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11299, 22, 'Barcabo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11300, 22, 'Bierge'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11301, 22, 'Buera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11302, 22, 'Callen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11303, 22, 'Castillazuelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11304, 22, 'Colungo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11305, 22, 'Faanas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11306, 22, 'Huerta de Vero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11307, 22, 'Lascasas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11308, 22, 'Monflorite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11309, 22, 'Morrano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11310, 22, 'Novales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11311, 22, 'Olson'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11312, 22, 'Piraces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11313, 22, 'Pozan de Vero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11314, 22, 'Pueyo de Faanas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11315, 22, 'Radiquero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11316, 22, 'Rodellar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11317, 22, 'Salas Altas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11318, 22, 'Salas Bajas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11319, 22, 'Salillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11320, 22, 'Sesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11321, 22, 'Tabernas de Isuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11322, 22, 'Vicien'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11323, 22, 'Banastas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11324, 22, 'Chimillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11325, 22, 'Apies'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11326, 22, 'Arascues'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11327, 22, 'Arguis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11328, 22, 'Bentue de Rasal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11329, 22, 'Igries'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11330, 22, 'Nueno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11331, 22, 'Sabayes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11332, 22, 'Abiego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11333, 22, 'Alberuela de Tubo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11334, 22, 'Angues'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11335, 22, 'Antillon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11336, 22, 'Azara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11337, 22, 'Azlor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11338, 22, 'Banaries'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11339, 22, 'Barbuales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11340, 22, 'Berbegal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11341, 22, 'Bespen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11342, 22, 'Blecua Y Torres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11343, 22, 'Casbas de Huesca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11344, 22, 'Conchel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11345, 22, 'Costean'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11346, 22, 'Cregenzan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11347, 22, 'Cuarte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11348, 22, 'Curbe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11349, 22, 'Huerto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11350, 22, 'Ibieca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11351, 22, 'Junzano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11352, 22, 'Lagunarrota'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11353, 22, 'Laluenga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11354, 22, 'Laperdiguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11355, 22, 'Lascellas-Ponzano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11356, 22, 'Liesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11357, 22, 'Peralta de Alcofea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11358, 22, 'Peraltilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11359, 22, 'Pertusa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11360, 22, 'Ponzano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11361, 22, 'San Lorenzo del Flumen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11362, 22, 'Sieso de Huesca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11363, 22, 'Sodeto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11364, 22, 'Torres de Alcanadre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11365, 22, 'Torres de Montes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11366, 22, 'Tramaced'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11367, 22, 'Uson'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11368, 22, 'Valfarta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11369, 22, 'Valfonda de Santa Ana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11370, 22, 'Velillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11371, 22, 'Yebra de Basa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11372, 22, 'Baells'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11373, 22, 'Estopian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11374, 22, 'Camporrells'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11375, 22, 'Castillonroy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11376, 22, 'Baldellou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11377, 22, 'Tierrantona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11378, 22, 'Palo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11379, 22, 'Saravillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11380, 22, 'San Juan de Plan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11381, 22, 'Gistain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11382, 22, 'Albalatillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11383, 22, 'Caldearenas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11384, 22, 'Javierrelatre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11385, 22, 'Espin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11386, 22, 'Fanlillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11387, 22, 'Orus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11388, 22, 'San Julian de Basa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11389, 22, 'Sobas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11390, 22, 'Algayon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11391, 22, 'Cantalobos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11392, 22, 'Capdesaso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11393, 22, 'La Cartuja de Monegros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11394, 22, 'Orillena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11395, 22, 'San Juan del Flumen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11396, 22, 'La Puebla de Fantova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11397, 22, 'La Paul'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11398, 22, 'Vencillon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11399, 22, 'Biscarrues'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11400, 22, 'Barbaruens'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11401, 22, 'Bonansa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11402, 22, 'Bono'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11403, 22, 'Castanesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11404, 22, 'Espes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11405, 22, 'Laspaules'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11406, 22, 'Montanuy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11407, 22, 'Neril'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11408, 22, 'Aren'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11409, 22, 'Betesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11410, 22, 'Puente de Montaana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11411, 22, 'Santorens'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11412, 22, 'Tolva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11413, 22, 'Llert'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11414, 22, 'Chalamera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11415, 22, 'Miralsot'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11416, 22, 'Luzas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11417, 22, 'Sopeira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11418, 22, 'Viacamp Y Litera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11419, 22, 'Arto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11420, 22, 'Sietamo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11421, 22, 'Naval'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11422, 22, 'Abizanda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11423, 22, 'Hoz de Barbastro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11424, 22, 'Coscojuela de Fantova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11425, 22, 'Barangua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11426, 22, 'Borres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11427, 22, 'Cartirana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11428, 22, 'Castillo de Leres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11429, 22, 'Hostal de Ipies'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11430, 22, 'Jabarrella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11431, 22, 'Lanave'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11432, 22, 'Larres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11433, 22, 'Lasieso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11434, 22, 'Latras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11435, 22, 'Orna de Gallego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11436, 22, 'Osan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11437, 22, 'Sardas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11438, 22, 'San Feliu de Veri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11439, 22, 'Venta de Ballerias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11440, 22, 'Puibolea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11441, 22, 'Bellestar Huesca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11442, 22, 'El Sas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11443, 22, 'Enate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11444, 22, 'Rasal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11445, 22, 'Tierz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11446, 22, 'Salinas de Jaca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11447, 22, 'Villalangua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11448, 22, 'Puente la Reina de Jaca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11449, 22, 'Escalona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11450, 22, 'Lierta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11451, 22, 'Aler'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11452, 22, 'Aratores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11453, 22, 'Beranuy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11454, 22, 'Cajigar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11455, 22, 'Castigaleu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11456, 22, 'Lascuarre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11457, 22, 'La Puebla de Roda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11458, 22, 'Capella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11459, 22, 'Liguerre de Ara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11460, 22, 'Lamasadera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11461, 22, 'Laguarres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11462, 22, 'Abay'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11463, 22, 'Araguas del Solano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11464, 22, 'Ascara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11465, 22, 'Asieso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11466, 22, 'Atares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11467, 22, 'Banaguas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11468, 22, 'Canias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11469, 22, 'Guasillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11470, 22, 'Noves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11471, 22, 'Almudafar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11472, 22, 'Anies'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11473, 22, 'Arbues'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11474, 22, 'Besians'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11475, 22, 'Betes de Sobremonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11476, 22, 'Buesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11477, 22, 'Estallo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11478, 22, 'Pompenillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11479, 22, 'Yosa de Sobremonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11480, 22, 'Parzan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11481, 22, 'Alins del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11482, 22, 'Calasanz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11483, 22, 'Gabasa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11484, 22, 'Atiart'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11485, 22, 'Buetas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11486, 22, 'La Cabezonada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11487, 22, 'Charo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11488, 22, 'El Humo de Rain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11489, 22, 'El Humo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11490, 22, 'Formigales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11491, 22, 'Fosado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11492, 22, 'Fuendecampo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11493, 22, 'Alujan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11494, 22, 'Alueza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11495, 22, 'Morillo de Monclus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11496, 22, 'El Pocino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11497, 22, 'Rain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11498, 22, 'Salinas de Trillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11499, 22, 'San Juan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11500, 22, 'Solipueyo'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11501, 22, 'Troncedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11502, 22, 'Fragen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11503, 22, 'Salinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11504, 22, 'Molinias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11505, 22, 'Aneto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11506, 22, 'Borrastre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11507, 22, 'Artasona del Llano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11508, 22, 'Hospital'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11509, 22, 'Sagarras Bajas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11510, 22, 'La Almunia del Romeral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11511, 22, 'Ayera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11512, 22, 'Bandalies'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11513, 22, 'Los Molinos -Loporzano-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11514, 22, 'Sipan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11515, 22, 'Aguas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11516, 22, 'Arbanies'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11517, 22, 'Barluenga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11518, 22, 'Castejon de Arbanies'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11519, 22, 'Castilsabas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11520, 22, 'Coscullano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11521, 22, 'Chibluco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11522, 22, 'Loporzano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11523, 22, 'Loscertales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11524, 22, 'Panzano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11525, 22, 'San Julian de Banzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11526, 22, 'Santa Eulalia la Mayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11527, 22, 'Sasa del Abadiado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11528, 22, 'La Pea Estacion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11529, 22, 'Santa Cilia de Panzano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11530, 22, 'Yequeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11531, 22, 'Alerre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11532, 22, 'Linas de Marcuello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11533, 22, 'Santa Engracia de Loarre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11534, 22, 'Serraduy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11535, 22, 'Roda de Isabena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11536, 22, 'Serveto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11537, 22, 'Abella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11538, 22, 'Aguascaldas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11539, 22, 'Aguinaliu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11540, 22, 'Almazorre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11541, 22, 'Antenza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11542, 22, 'Arasan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11543, 22, 'Ardanuy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11544, 22, 'Paules de Sarsa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11545, 22, 'Asque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11546, 22, 'Bellestar -Graus-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11547, 22, 'Benavente de Aragon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11548, 22, 'Benifons'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11549, 22, 'Betorz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11550, 22, 'Biescas -Valle de Bardaji-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11551, 22, 'Binacua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11552, 22, 'Caladrones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11553, 22, 'Castarne'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11554, 22, 'Castillo del Pla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11555, 22, 'Ciscar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11556, 22, 'Ejep'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11557, 22, 'Eresue'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11558, 22, 'Escane'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11559, 22, 'Espluga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11560, 22, 'Estaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11561, 22, 'Estet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11562, 22, 'Fonchanina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11563, 22, 'Forcat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11564, 22, 'Fornillos Huesca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11565, 22, 'Fornillos -Ilche-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11566, 22, 'Fraella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11567, 22, 'Gabas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11568, 22, 'Ginaste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11569, 22, 'Guel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11570, 22, 'Hospitaled'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11571, 22, 'Vial'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11572, 22, 'Viu -Foradada de Toscar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11573, 22, 'Ilche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11574, 22, 'Javierre del Obispo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11575, 22, 'Juseu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11576, 22, 'Labata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11577, 22, 'Lecina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11578, 22, 'Liri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11579, 22, 'Litera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11580, 22, 'Marcen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11581, 22, 'Mediano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11582, 22, 'Monesma -Ilche-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11583, 22, 'Morilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11584, 22, 'Navarri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11585, 22, 'Noales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11586, 22, 'Olivan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11587, 22, 'Olvena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11588, 22, 'Oros Alto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11589, 22, 'Oros Bajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11590, 22, 'Panillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11591, 22, 'Permisan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11592, 22, 'Pilzan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11593, 22, 'Pociello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11594, 22, 'Pueyo de Marguillen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11595, 22, 'Purroy de la Solana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11596, 22, 'Ramastue'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11597, 22, 'Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11598, 22, 'Samitier'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11599, 22, 'San Martin de Veri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11600, 22, 'Santa Maria de la Nuez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11601, 22, 'Santa Maura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11602, 22, 'Senz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11603, 22, 'Seiu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11604, 22, 'Serrate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11605, 22, 'El Soler'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11606, 22, 'Sos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11607, 22, 'Torrelabad'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11608, 22, 'Torre de Obato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11609, 22, 'Ubiergo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11610, 22, 'Urmella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11611, 22, 'Vilas del Turbon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11612, 22, 'Las Ventas de Santa Lucia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11613, 22, 'Sesue'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11614, 22, 'Las Colladas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11615, 22, 'Bestue'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11616, 22, 'Belsierre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11617, 22, 'Quicena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11618, 22, 'Rivera de Vall'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11619, 22, 'Centenero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11620, 22, 'Ena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11621, 22, 'Santa Maria -Peas de Riglos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11622, 22, 'Las Bellostas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11623, 22, 'Latre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11624, 22, 'San Vicente -Caldearenas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11625, 22, 'Chisagues'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11626, 22, 'Lascorz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11627, 22, 'Nerin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11628, 22, 'Fanlo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11629, 22, 'Buerba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11630, 22, 'Vio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11631, 22, 'Puyarruego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11632, 22, 'Aquilue'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11633, 22, 'Serue'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11634, 22, 'Huerrios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11635, 22, 'Egea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11636, 22, 'Candanchu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11637, 22, 'Formigal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11638, 22, 'Lacuadrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11639, 22, 'Somanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11640, 22, 'Oto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11641, 22, 'Abena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11642, 22, 'Ara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11643, 22, 'Baraguas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11644, 22, 'Botaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11645, 22, 'Guasa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11646, 22, 'Villarrue'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11647, 22, 'Cerler'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11648, 22, 'Anciles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11649, 22, 'Aurin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11650, 22, 'Beleder'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11651, 22, 'Buales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11652, 22, 'Campamento'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11653, 22, 'Margudgued'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11654, 22, 'Sieste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11655, 22, 'Losanglis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11656, 22, 'Arro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11657, 22, 'Guaso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11658, 22, 'El Pueyo de Araguas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11659, 22, 'Los Molinos -Pueyo de Araguas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11660, 22, 'Torre de Esera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11661, 22, 'Monesma Y Cajigar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11662, 22, 'Merli'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11663, 22, 'Calvera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11664, 22, 'Torre la Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11665, 22, 'Villacarli'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11666, 22, 'Abi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11667, 22, 'Ariestolas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11668, 22, 'Puerto Astun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11669, 22, 'Baos de Panticosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11670, 22, 'Barrio Estacion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11671, 22, 'Bescos de Garcipollera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11672, 22, 'La Estacion de Selgua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11673, 22, 'Javierre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11674, 22, 'Lardies'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11675, 22, 'Martillue'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11676, 22, 'Sobrecastell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11677, 22, 'Tormos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11678, 22, 'Torreciudad'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11679, 22, 'Usana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11680, 22, 'Fontellas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11681, 22, 'Castillo Pompien'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11682, 22, 'Sabianigo Alto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11683, 22, 'El Puente de Sabianigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11684, 22, 'Las Casas de Nuevo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11685, 22, 'El Poblado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11686, 22, 'Real Monasterio Sigena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11687, 22, 'Poligono Industrial Tierz Loporzano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11688, 22, 'Valle Cinca Poligono Industrial'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11689, 22, 'Urbanizacion El Tozal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11690, 22, 'Lago de Barasona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11691, 22, 'Albella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11692, 22, 'Arresa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11693, 22, 'Banaston'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11694, 22, 'Berganuy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11695, 22, 'Burceat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11696, 22, 'El Casal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11697, 22, 'Ceresa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11698, 22, 'Javierre de Ara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11699, 22, 'Latas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11700, 22, 'Nacha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11701, 22, 'Navasa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11702, 22, 'Ola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11703, 22, 'Saganta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11704, 22, 'San Felices de Ara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11705, 22, 'Abenilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11706, 22, 'Abenozas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11707, 22, 'Aguilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11708, 22, 'Aineto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11709, 22, 'Alastuey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11710, 22, 'Alins'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11711, 22, 'Almunia de San Lorenzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11712, 22, 'Las Almunias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11713, 22, 'Allue'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11714, 22, 'Araguas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11715, 22, 'Ardanue'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11716, 22, 'Arguisal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11717, 22, 'Arraso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11718, 22, 'Arres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11719, 22, 'Ascaso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11720, 22, 'Asin de Broto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11721, 22, 'Bacamorta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11722, 22, 'Ballabriga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11723, 22, 'Bara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11724, 22, 'Barbenuta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11725, 22, 'Baros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11726, 22, 'Belarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11727, 22, 'Belsue'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11728, 22, 'Bergua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11729, 22, 'Biascas de Obarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11730, 22, 'Binue'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11731, 22, 'Buisan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11732, 22, 'Campodarbe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11733, 22, 'Camporrotuno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11734, 22, 'Casa Consistorial'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11735, 22, 'Caserras del Castillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11736, 22, 'Castarlenas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11737, 22, 'Castejon de Sobrarbe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11738, 22, 'Castellazo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11739, 22, 'Castiello de Guarga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11740, 22, 'Centenera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11741, 22, 'Ceresola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11742, 22, 'Cires'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11743, 22, 'Coscojuela de Sobrarbe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11744, 22, 'El Coscollar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11745, 22, 'Cuatrocorz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11746, 22, 'Chiriveta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11747, 22, 'Denuy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11748, 22, 'Eres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11749, 22, 'Eripol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11750, 22, 'Escanilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11751, 22, 'Escuain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11752, 22, 'Espes Alto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11753, 22, 'Espierba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11754, 22, 'Espierre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11755, 22, 'Espuendolas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11756, 22, 'Estall'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11757, 22, 'Gabarret'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11758, 22, 'Gesera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11759, 22, 'Gillue'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11760, 22, 'Gracionepel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11761, 22, 'Grasa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11762, 22, 'Guardia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11763, 22, 'Las Herrerias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11764, 22, 'Ipas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11765, 22, 'Ipies'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11766, 22, 'Isun de Basa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11767, 22, 'Janovas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11768, 22, 'Jarlata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11769, 22, 'Lacort'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11770, 22, 'Laguarta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11771, 22, 'Lamata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11772, 22, 'Larrede'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11773, 22, 'Lasaosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11774, 22, 'Latorre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11775, 22, 'Latorrecilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11776, 22, 'Layes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11777, 22, 'Leres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11778, 22, 'Llagunas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11779, 22, 'Molino de Villobas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11780, 22, 'Molinos Los'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11781, 22, 'Montaana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11782, 22, 'Monte Julia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11783, 22, 'Montesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11784, 22, 'Morens'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11785, 22, 'Morillo de Sampietro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11786, 22, 'La Muera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11787, 22, 'Muro de Bellos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11788, 22, 'Navasilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11789, 22, 'Nocito'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11790, 22, 'Odina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11791, 22, 'Oncins'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11792, 22, 'Orante'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11793, 22, 'Ordoves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11794, 22, 'Osia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11795, 22, 'Padarniu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11796, 22, 'Pano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11797, 22, 'Pardina La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11798, 22, 'Pardina La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11799, 22, 'Pardina Sierrahun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11800, 22, 'Pardinella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11801, 22, 'Pardinilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11802, 22, 'Partida Fajarnes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11803, 22, 'Pertenencia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11804, 22, 'Piedramorrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11805, 22, 'Piana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11806, 22, 'Planillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11807, 22, 'El Plano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11808, 22, 'Presa del Gallego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11809, 22, 'La Puebla del Mon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11810, 22, 'Pueyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11811, 22, 'Pueyo El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11812, 22, 'Puimolar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11813, 22, 'Puipullin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11814, 22, 'Reperos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11815, 22, 'Revilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11816, 22, 'Riguala de Serraduy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11817, 22, 'Sala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11818, 22, 'Salinas de Hoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11819, 22, 'San Esteban del Mall'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11820, 22, 'San Felices'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11821, 22, 'San Juste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11822, 22, 'San Lorenzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11823, 22, 'San Lorien'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11824, 22, 'San Martin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11825, 22, 'San Miguel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11826, 22, 'San Pedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11827, 22, 'San Vicente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11828, 22, 'Santa Ana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11829, 22, 'Santa Eulalia de la Pea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11830, 22, 'Santa Maria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11831, 22, 'Santa Olaria de Ara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11832, 22, 'Sasal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11833, 22, 'Satue'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11834, 22, 'El Soto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11835, 22, 'Suelves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11836, 22, 'Suils'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11837, 22, 'Torre Baro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11838, 22, 'Torrelisa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11839, 22, 'Ulle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11840, 22, 'Vadiello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11841, 22, 'Valonga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11842, 22, 'La Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11843, 22, 'Villaplana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11844, 22, 'La Vileta de Serraduy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11845, 22, 'Villanovilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11846, 22, 'Visalibons'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11847, 22, 'Yeba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11848, 22, 'Yespola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11849, 22, 'Zurita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11850, 22, 'Majones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11851, 22, 'Poblado Monsanto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11852, 22, 'Las Pueblas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11853, 22, 'Rafales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11854, 22, 'San Martin de Solana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11855, 22, 'Santa Maria del Pilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11856, 22, 'Torregrosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11857, 22, 'Liguerre Cinca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11858, 22, 'Morillo de Tou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11859, 22, 'Lastiesas Bajas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11860, 22, 'Lastiesas Altas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11861, 22, 'Fraginal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11862, 22, 'Badaguas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11863, 22, 'Camporredondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11864, 22, 'La Mariosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11865, 22, 'El Grado Guaso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11866, 22, 'Gerbe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11867, 22, 'Las Cambras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11868, 22, 'Ervera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11869, 22, 'Artasona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11870, 22, 'Yaso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11871, 22, 'Jabierre de Olson'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11872, 22, 'Sarratillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11873, 22, 'Frontera del Portalet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11874, 22, 'Ibort'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11875, 22, 'Murillo de Gallego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11876, 22, 'Mipanas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11877, 22, 'Santa Barbara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11878, 22, 'Las Peas Riglos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11879, 22, 'Fuente de Montaana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11880, 23, 'Albanchez de Ubeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11881, 23, 'Alcala la Real'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11882, 23, 'Alcaudete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11883, 23, 'Andujar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11884, 23, 'Arjona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11885, 23, 'Arjonilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11886, 23, 'Linarejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11887, 23, 'Baeza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11888, 23, 'Bailen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11889, 23, 'Baos de la Encina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11890, 23, 'Beas de Segura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11891, 23, 'Begijar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11892, 23, 'Cambil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11893, 23, 'Campillo de Arenas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11894, 23, 'Carboneros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11895, 23, 'Carchel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11896, 23, 'Carchelejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11897, 23, 'La Carolina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11898, 23, 'Las Casillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11899, 23, 'Castillo de Locubin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11900, 23, 'Cazorla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11901, 23, 'Espeluy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11902, 23, 'Fuensanta de Martos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11903, 23, 'La Guardia de Jaen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11904, 23, 'Guarroman'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11905, 23, 'Lahiguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11906, 23, 'Higuera de Calatrava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11907, 23, 'Huelma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11908, 23, 'Huesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11909, 23, 'Ibros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11910, 23, 'Iznatoraf'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11911, 23, 'Jabalquinto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11912, 23, 'Jaen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11913, 23, 'Jamilena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11914, 23, 'Jodar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11915, 23, 'Linares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11916, 23, 'Lopera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11917, 23, 'Mancha Real'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11918, 23, 'Marmolejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11919, 23, 'Martos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11920, 23, 'Mengibar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11921, 23, 'Noalejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11922, 23, 'Peal de Becerro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11923, 23, 'Pegalajar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11924, 23, 'Porcuna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11925, 23, 'Quesada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11926, 23, 'Rus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11927, 23, 'Sabiote'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11928, 23, 'Santa Elena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11929, 23, 'Santiago de Calatrava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11930, 23, 'Torre del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11931, 23, 'Torredonjimeno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11932, 23, 'Torreperogil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11933, 23, 'Torres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11934, 23, 'Ubeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11935, 23, 'Vilches'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11936, 23, 'Villacarrillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11937, 23, 'Villanueva del Arzobispo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11938, 23, 'Villanueva de la Reina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11939, 23, 'Villargordo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11940, 23, 'Peallana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11941, 23, 'La Yedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11942, 23, 'Arquillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11943, 23, 'Navas de San Juan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11944, 23, 'Santisteban del Puerto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11945, 23, 'Sorihuela del Guadalimar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11946, 23, 'Castellar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11947, 23, 'Pozo Alcon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11948, 23, 'Bedmar Y Garciez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11949, 23, 'La Iruela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11950, 23, 'Cazalilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11951, 23, 'Canena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11952, 23, 'Lupion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11953, 23, 'Cabra del Santo Cristo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11954, 23, 'Chilluevar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11955, 23, 'Santo Tome'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11956, 23, 'Los Villares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11957, 23, 'Jimena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11958, 23, 'Arroyo del Ojanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11959, 23, 'Orcera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11960, 23, 'Puente de Genave'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11961, 23, 'La Puerta de Segura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11962, 23, 'Siles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11963, 23, 'Benatae'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11964, 23, 'Belmez de la Moraleda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11965, 23, 'Solera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11966, 23, 'Chiclana de Segura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11967, 23, 'Montizon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11968, 23, 'Fuerte del Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11969, 23, 'Valdepeas de Jaen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11970, 23, 'Torres de Albanchez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11971, 23, 'Segura de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11972, 23, 'Aldeahermosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11973, 23, 'Venta Santos (Montizon)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11974, 23, 'Ventas del Carrizal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11975, 23, 'Genave'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11976, 23, 'Frailes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11977, 23, 'Escauela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11978, 23, 'Villardompardo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11979, 23, 'Larva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11980, 23, 'Ribera Alta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11981, 23, 'Santa Ana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11982, 23, 'Hinojares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11983, 23, 'Torrequebradilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11984, 23, 'Aldeaquemada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11985, 23, 'Hornos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11986, 23, 'Pontones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11987, 23, 'Santiago de la Espada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11988, 23, 'Torreblascopedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11989, 23, 'Bobadilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11990, 23, 'Villarrodrigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11991, 23, 'Garciez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11992, 23, 'Charilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11993, 23, 'Monte Lope-Alvarez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11994, 23, 'Puente del Obispo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11995, 23, 'Camporredondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11996, 23, 'La Ropera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11997, 23, 'Poblado San Julian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11998, 23, 'Guadalen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (11999, 23, 'Guadalimar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12000, 23, 'Campillo del Rio'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12001, 23, 'Arroturas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12002, 23, 'Mogon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12003, 23, 'Los Villares -Andujar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12004, 23, 'Solana de Torralba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12005, 23, 'Donadio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12006, 23, 'Agrupacion de Santo Tome'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12007, 23, 'Valdecazorla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12008, 23, 'Sotogordo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12009, 23, 'Vados de Torralba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12010, 23, 'Veracruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12011, 23, 'San Miguel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12012, 23, 'El Marmol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12013, 23, 'Agrupacion de Mogon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12014, 23, 'Llanos del Sotillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12015, 23, 'Vegas de Triana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12016, 23, 'Arbuniel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12017, 23, 'El Ojuelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12018, 23, 'Trujala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12019, 23, 'Carrasco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12020, 23, 'Cortijos Nuevos-Segura Sierra-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12021, 23, 'Rihornos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12022, 23, 'El Campillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12023, 23, 'La Porrosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12024, 23, 'Los Mochuelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12025, 23, 'El Molar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12026, 23, 'Fontanar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12027, 23, 'La Fernandina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12028, 23, 'Gutar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12029, 23, 'La Isabela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12030, 23, 'La Mesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12031, 23, 'Navas de Tolosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12032, 23, 'Peolite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12033, 23, 'Santa Eulalia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12034, 23, 'La Carrasca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12035, 23, 'Ermita Nueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12036, 23, 'Las Grageras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12037, 23, 'Hortichuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12038, 23, 'Mures'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12039, 23, 'La Pedriza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12040, 23, 'Puente Ortega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12041, 23, 'Burunchel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12042, 23, 'Aulabar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12043, 23, 'Caada Catena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12044, 23, 'Cuevas de Ambrosio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12045, 23, 'Prados de Armijo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12046, 23, 'Megatin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12047, 23, 'Belmez de la Moraleda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12048, 23, 'Guadabraz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12049, 23, 'Belerda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12050, 23, 'Puente de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12051, 23, 'Miraelrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12052, 23, 'Noguerones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12053, 23, 'La Quinteria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12054, 23, 'Las Infantas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12055, 23, 'Tiscar-Don Pedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12056, 23, 'El Acebuchar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12057, 23, 'Martin Malo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12058, 23, 'Ribera Baja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12059, 23, 'Ponton Alto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12060, 23, 'La Cerradura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12061, 23, 'Los Rosales -Quesada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12062, 23, 'Onsares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12063, 23, 'Caserias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12064, 23, 'Los Rios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12065, 23, 'Fuente Alamo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12066, 23, 'Venta de Agramaderos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12067, 23, 'Hornos -Peal de Becerro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12068, 23, 'La Matea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12069, 23, 'Villalobos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12070, 23, 'Cuenca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12071, 23, 'Sabariego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12072, 23, 'La Rabita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12073, 23, 'Saltillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12074, 23, 'Chozas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12075, 23, 'Estacion de Espeluy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12076, 23, 'Puerto Blanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12077, 23, 'Los Rosales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12078, 23, 'Cortijo de Los Caliz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12079, 23, 'El Reguelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12080, 23, 'Vadohornillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12081, 23, 'Las Ventas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12082, 23, 'Zocueca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12083, 23, 'Caada Morales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12084, 23, 'La Platera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12085, 23, 'Tranco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12086, 23, 'Valdemarin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12087, 23, 'Alharilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12088, 23, 'Agracea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12089, 23, 'Los Pascuales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12090, 23, 'El Cerezo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12091, 23, 'Huerta del Manco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12092, 23, 'Miller'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12093, 23, 'Las Nogueras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12094, 23, 'El Patronato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12095, 23, 'Los Teatinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12096, 23, 'Vites'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12097, 23, 'Fuente Carrasca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12098, 23, 'Guijalbas Los'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12099, 23, 'Los Motas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12100, 23, 'San Jose'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12101, 23, 'Coto-Rios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12102, 23, 'Estacion de Huesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12103, 23, 'Estacion de Cabra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12104, 23, 'Caada Arada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12105, 23, 'Llanos de Arriba-Yeguerizos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12106, 23, 'Los Yeguerizos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12107, 23, 'Las Piedras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12108, 23, 'Los Santiagos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12109, 23, 'Fuente Pinilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12110, 23, 'El Frontil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12111, 23, 'Toya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12112, 23, 'Moralejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12113, 23, 'Arroyo Frio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12114, 23, 'Venta Cabrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12115, 23, 'Bonache'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12116, 23, 'Catena Alto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12117, 23, 'El Batan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12118, 23, 'El Robledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12119, 23, 'Arroyo Canales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12120, 23, 'Las Panochas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12121, 23, 'El Altico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12122, 23, 'Cortijuelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12123, 23, 'Collejares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12124, 23, 'Santa Emilia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12125, 23, 'Rincon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12126, 23, 'Las Fuentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12127, 23, 'Cortijo Nuevo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12128, 23, 'Ceal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12129, 23, 'El Palomar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12130, 23, 'San Martin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12131, 23, 'Tobos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12132, 23, 'Los Cauelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12133, 23, 'Casas de Carrasco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12134, 23, 'Loma de Maria Angela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12135, 23, 'Fuente Segura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12136, 23, 'Casicas del Rio Segura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12137, 23, 'Las Gorgollitas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12138, 23, 'Marchena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12139, 23, 'La Muela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12140, 23, 'El Parralejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12141, 23, 'Peguera del Madroo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12142, 23, 'La Toba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12143, 23, 'Cabrita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12144, 23, 'Zamora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12145, 23, 'El Almiceran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12146, 23, 'La Bolera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12147, 23, 'Casas de Estepa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12148, 23, 'La Caleruela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12149, 23, 'Rambla de la Teja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12150, 23, 'Herrera-Puente del Condado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12151, 23, 'El Centenillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12152, 23, 'La Salina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12153, 23, 'Los Chopos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12154, 23, 'La Ballestera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12155, 23, 'El Artuedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12156, 23, 'Poyotello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12157, 23, 'Huelga Utrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12158, 23, 'Los Anchos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12159, 23, 'Las Escuelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12160, 23, 'Sierra Villas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12161, 23, 'Hoya del Salobral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12162, 23, 'Capellania'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12163, 23, 'El Tovar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12164, 23, 'Miranda del Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12165, 23, 'Jabalcuz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12166, 23, 'Ventorrillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12167, 23, 'Peas de Majalcoron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12168, 23, 'Cequia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12169, 23, 'Tramaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12170, 23, 'Vadillo Castril'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12171, 23, 'Puente de la Cerrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12172, 23, 'Prados Umbria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12173, 23, 'Venta Cardador'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12174, 23, 'El Salon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12175, 23, 'Hoyo Piedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12176, 23, 'Los Atascaderos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12177, 23, 'Arroyo Venancia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12178, 23, 'Don Domingo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12179, 23, 'Las Quebradas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12180, 23, 'Los Ruices'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12181, 23, 'Marchena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12182, 23, 'Prado Moro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12183, 23, 'El Vadico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12184, 23, 'Nacimiento Tobos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12185, 23, 'Arroyo Blanquillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12186, 23, 'Arroyo Quebrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12187, 23, 'Cortijo Vites'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12188, 23, 'Venta Rampias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12189, 23, 'Salto Miller'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12190, 23, 'La Fuente Higuera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12191, 23, 'La Alberquilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12192, 23, 'El Pelon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12193, 23, 'El Puerto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12194, 23, 'Cortijada Aceras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12195, 23, 'Venta Pantalones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12196, 23, 'Caada Hazadilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12197, 23, 'Pozuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12198, 23, 'Puente Tablas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12199, 23, 'Villar Bajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12200, 23, 'Arroyo Frio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12201, 23, 'Fuente Espino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12202, 23, 'El Porrosillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12203, 23, 'Puertollano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12204, 23, 'Venta Pescador'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12205, 23, 'Estacion Linares-Baeza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12206, 23, 'Puente Nuevo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12207, 23, 'Puerto Alto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12208, 23, 'Baos de Agua Hedionda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12209, 23, 'El Madroo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12210, 23, 'La Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12211, 23, 'Chircales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12212, 23, 'La Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12213, 23, 'La Alfavila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12214, 23, 'Los Barrancos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12215, 23, 'Las Cabreras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12216, 23, 'Marroquin-Encina Hermosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12217, 23, 'Puerto-La Nava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12218, 23, 'Caada de Alcala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12219, 23, 'La Goleta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12220, 23, 'Maroteras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12221, 23, 'Virgen de la Cabeza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12222, 23, 'La Condesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12223, 23, 'La Crujia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12224, 23, 'Rincon de San Ildefonso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12225, 23, 'Reculo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12226, 23, 'La Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12227, 23, 'El Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12228, 23, 'Cortijo Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12229, 23, 'Estrella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12230, 23, 'Sierra de El Almiceran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12231, 23, 'Bruel Alto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12232, 23, 'Bruel Bajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12233, 23, 'Acra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12234, 23, 'Caada de la Cierva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12235, 23, 'Los Guindos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12236, 23, 'Ocho Casas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12237, 23, 'Raso Guindo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12238, 23, 'Bda. del Puente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12239, 23, 'Las Palomeras-Salto Mang'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12240, 23, 'Arrayanes-La Cruz-La Laguna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12241, 23, 'Estacion Vadollano Naquer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12242, 23, 'Magdalena Castro-Los Tercios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12243, 23, 'Torrubia-Valenzuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12244, 23, 'Las Juntas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12245, 23, 'Jarafe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12246, 23, 'La Laguna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12247, 23, 'Posadas Ricas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12248, 23, 'Bardazoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12249, 23, 'Caada de la Madera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12250, 23, 'Los Goldines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12251, 23, 'Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12252, 23, 'Barranco de la Montesina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12253, 23, 'El Moralico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12254, 23, 'Caada Incosa-Cerro Pelado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12255, 23, 'Garciez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12256, 23, 'Casillas de Mures'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12257, 23, 'El Porche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12258, 23, 'Arroyo Maguillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12259, 23, 'El Caaveral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12260, 23, 'La Yuca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12261, 24, 'Ardon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12262, 24, 'Astorga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12263, 24, 'La Baeza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12264, 24, 'Bembibre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12265, 24, 'Benamariel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12266, 24, 'Benavides'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12267, 24, 'Benazolve'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12268, 24, 'Busdongo de Arbas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12269, 24, 'Cacabelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12270, 24, 'Cembranos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12271, 24, 'Hospital de Orbigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12272, 24, 'Leon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12273, 24, 'Onzonilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12274, 24, 'La Pola de Gordon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12275, 24, 'Ponferrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12276, 24, 'La Robla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12277, 24, 'Santa Colomba de Somoza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12278, 24, 'Santa Lucia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12279, 24, 'Sahagun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12280, 24, 'Toral de Los Vados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12281, 24, 'Valdevimbre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12282, 24, 'Valencia de Don Juan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12283, 24, 'Veguellina de Orbigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12284, 24, 'Villace'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12285, 24, 'Villafranca del Bierzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12286, 24, 'Villamanin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12287, 24, 'Villamaan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12288, 24, 'Cistierna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12289, 24, 'Sabero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12290, 24, 'Boar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12291, 24, 'La Ercina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12292, 24, 'Matallana de Torio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12293, 24, 'La Vecilla de Curueo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12294, 24, 'Vegaquemada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12295, 24, 'Gordoncillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12296, 24, 'Valderas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12297, 24, 'Villameca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12298, 24, 'Carrizo de la Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12299, 24, 'Mansilla de Las Mulas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12300, 24, 'Torre del Bierzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12301, 24, 'Santa Maria del Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12302, 24, 'Val de San Roman'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12303, 24, 'Vega de Magaz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12304, 24, 'Caboalles de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12305, 24, 'Villablino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12306, 24, 'Villaseca de Laciana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12307, 24, 'Carmenes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12308, 24, 'Valdearcos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12309, 24, 'Laguna de Negrillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12310, 24, 'Toreno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12311, 24, 'Matarrosa del Sil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12312, 24, 'Palacios del Sil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12313, 24, 'Paramo del Sil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12314, 24, 'Algadefe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12315, 24, 'Cimanes de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12316, 24, 'Toral de Los Guzmanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12317, 24, 'Villademor de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12318, 24, 'Villamandos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12319, 24, 'Villaquejida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12320, 24, 'Riao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12321, 24, 'San Justo de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12322, 24, 'San Andres del Rabanedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12323, 24, 'Destriana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12324, 24, 'San Miguel de Las Dueas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12325, 24, 'Cremenes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12326, 24, 'Buron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12327, 24, 'Lario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12328, 24, 'Polvoredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12329, 24, 'Castrillo de Cepeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12330, 24, 'Cogorderos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12331, 24, 'Sueros de Cepeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12332, 24, 'Villamejil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12333, 24, 'Canales-La Magdalena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12334, 24, 'Otero de Las Dueas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12335, 24, 'Ciera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12336, 24, 'Brauelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12337, 24, 'Combarros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12338, 24, 'Manzanal del Puerto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12339, 24, 'Cabrillanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12340, 24, 'Piedrafita de Babia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12341, 24, 'Palacios de la Valduerna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12342, 24, 'Villalobar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12343, 24, 'Cebrones del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12344, 24, 'San Martin de Torres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12345, 24, 'Valcabado del Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12346, 24, 'La Antigua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12347, 24, 'Pozuelo del Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12348, 24, 'San Adrian del Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12349, 24, 'Fabero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12350, 24, 'Lillo del Bierzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12351, 24, 'Vega de Espinareda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12352, 24, 'Castrocontrigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12353, 24, 'Nogarejas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12354, 24, 'Los Barrios de Luna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12355, 24, 'Congosto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12356, 24, 'Lucillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12357, 24, 'Molinaferrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12358, 24, 'San Martin del Camino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12359, 24, 'Santa Marina del Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12360, 24, 'Villamor de Orbigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12361, 24, 'Palanquinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12362, 24, 'Villacelama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12363, 24, 'Villanueva de Las Manzanas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12364, 24, 'Folgoso de la Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12365, 24, 'La Ribera de Folgoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12366, 24, 'Alija del Infantado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12367, 24, 'Navianos de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12368, 24, 'La Nora del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12369, 24, 'San Emiliano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12370, 24, 'Sena de Luna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12371, 24, 'Posada de Valdeon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12372, 24, 'Oseja de Sajambre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12373, 24, 'Puerto Ponton'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12374, 24, 'Vega de Valcarce'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12375, 24, 'Trabadelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12376, 24, 'Altobar de la Encomienda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12377, 24, 'Moscas del Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12378, 24, 'Roperuelos del Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12379, 24, 'Saludes de Castroponce'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12380, 24, 'San Juan de Torres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12381, 24, 'Gradefes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12382, 24, 'Quintana de Rueda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12383, 24, 'Valdepolo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12384, 24, 'Llamas Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12385, 24, 'Las Omaas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12386, 24, 'Boca de Huergano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12387, 24, 'Acebedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12388, 24, 'Liegos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12389, 24, 'Maraa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12390, 24, 'La Ua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12391, 24, 'Castrillo de la Valduerna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12392, 24, 'Quintanilla de Babia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12393, 24, 'Bercianos del Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12394, 24, 'Villasabariego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12395, 24, 'Villafae'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12396, 24, 'Villarente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12397, 24, 'Villafale'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12398, 24, 'Villimer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12399, 24, 'Villaburbula'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12400, 24, 'Palazuelo de Eslonza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12401, 24, 'Villacontilde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12402, 24, 'Valle de Mansilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12403, 24, 'Vega de Los Arboles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12404, 24, 'Villiguer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12405, 24, 'Matallana de Valmadrigal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12406, 24, 'Matadeon de Los Oteros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12407, 24, 'Castrotierra de Valmadrigal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12408, 24, 'Vallecillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12409, 24, 'Gordaliza del Pino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12410, 24, 'Bercianos del Real Camino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12411, 24, 'Joarilla de Las Matas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12412, 24, 'Valverde-Enrique'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12413, 24, 'Santa Cristina de Valmadrigal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12414, 24, 'Villamoratiel de Las Matas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12415, 24, 'Albires'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12416, 24, 'Izagre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12417, 24, 'Santas Martas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12418, 24, 'Valderrey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12419, 24, 'Cabreros del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12420, 24, 'Carneros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12421, 24, 'La Carrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12422, 24, 'Otero de Escarpizo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12423, 24, 'Quintana del Castillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12424, 24, 'Sopea de Carneros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12425, 24, 'Villaobispo de Otero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12426, 24, 'Brimeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12427, 24, 'Valdelafuente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12428, 24, 'Camponaraya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12429, 24, 'Caboalles de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12430, 24, 'Lumajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12431, 24, 'Cubillas de Rueda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12432, 24, 'Robles de Laciana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12433, 24, 'Sosas de Laciana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12434, 24, 'Dehesas Barrio Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12435, 24, 'Cubillos del Sil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12436, 24, 'Fresno de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12437, 24, 'Mataluenga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12438, 24, 'Lugueros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12439, 24, 'Nocedo de Curueo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12440, 24, 'Valdeteja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12441, 24, 'Caldevilla de Valdeon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12442, 24, 'Cordianes de Valdeon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12443, 24, 'Prada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12444, 24, 'Santa Marina Valdeon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12445, 24, 'Soto de Valdeon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12446, 24, 'Prado de la Guzpea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12447, 24, 'Prioro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12448, 24, 'Puente Almuhey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12449, 24, 'Valderrueda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12450, 24, 'Besande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12451, 24, 'Siero de la Reina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12452, 24, 'Valverde de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12453, 24, 'Barrillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12454, 24, 'Barrio de Nuestra Seora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12455, 24, 'Moral del Condado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12456, 24, 'Santa Colomba Curueo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12457, 24, 'Santibaez de Porma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12458, 24, 'Vegas del Condado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12459, 24, 'Villanueva del Condado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12460, 24, 'Morgovejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12461, 24, 'Barcena del Bierzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12462, 24, 'Fuentes Nuevas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12463, 24, 'Posada del Bierzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12464, 24, 'La Aldea del Puente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12465, 24, 'Saelices del Payuelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12466, 24, 'Villahibiera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12467, 24, 'Villalquite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12468, 24, 'Villamondrin de Rueda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12469, 24, 'Iguea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12470, 24, 'Quintana de Fuseros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12471, 24, 'Almanza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12472, 24, 'Riello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12473, 24, 'Rioseco de Tapia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12474, 24, 'Rodiezmo de la Tercia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12475, 24, 'Luyego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12476, 24, 'Priaranza de la Valduerna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12477, 24, 'Tabuyo del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12478, 24, 'Estebanez de la Calzada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12479, 24, 'Turcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12480, 24, 'Villares de Orbigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12481, 24, 'Bustillo del Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12482, 24, 'Villadangos del Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12483, 24, 'Olleros de Sabero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12484, 24, 'Saelices de Sabero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12485, 24, 'Santa Elena de Jamuz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12486, 24, 'Castrocalbon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12487, 24, 'Jimenez de Jamuz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12488, 24, 'Villanueva de Jamuz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12489, 24, 'San Esteban de Nogales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12490, 24, 'Quintana del Marco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12491, 24, 'Castrillo de San Pelayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12492, 24, 'Huerga de Frailes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12493, 24, 'Santa Marinica'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12494, 24, 'Villazala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12495, 24, 'Valdesandinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12496, 24, 'Noceda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12497, 24, 'San Pelayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12498, 24, 'Corbillos de Los Oteros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12499, 24, 'Gusendos de Los Oteros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12500, 24, 'Pajares de Los Oteros'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12501, 24, 'Cubillas de Los Oteros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12502, 24, 'Riego de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12503, 24, 'La Mata de Curueo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12504, 24, 'Pardesivil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12505, 24, 'Campazas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12506, 24, 'Castrofuerte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12507, 24, 'Villaornate Y Castro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12508, 24, 'Santa Maria de Ordas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12509, 24, 'Pedrosa del Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12510, 24, 'Castilfale'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12511, 24, 'Carbajal de Fuentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12512, 24, 'Matanza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12513, 24, 'Valdemora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12514, 24, 'Villabraz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12515, 24, 'Valdespino Ceron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12516, 24, 'Zalamillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12517, 24, 'Villabalter'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12518, 24, 'Ferral del Bernesga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12519, 24, 'La Vega de Almanza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12520, 24, 'Manzaneda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12521, 24, 'Quintanilla de Yuso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12522, 24, 'Truchas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12523, 24, 'Sahechores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12524, 24, 'Genestacio de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12525, 24, 'Cofial'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12526, 24, 'Puebla de Lillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12527, 24, 'Reyero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12528, 24, 'Anciles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12529, 24, 'Fuentes de Los Oteros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12530, 24, 'Valdesaz de Los Oteros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12531, 24, 'Armellada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12532, 24, 'Nistal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12533, 24, 'San Roman de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12534, 24, 'Puente de Domingo Florez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12535, 24, 'Santibaez de Rueda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12536, 24, 'Pesquera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12537, 24, 'Modino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12538, 24, 'Villafer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12539, 24, 'El Villar de Santiago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12540, 24, 'Sardonedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12541, 24, 'Villavante'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12542, 24, 'Acebes del Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12543, 24, 'Antoanes del Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12544, 24, 'Grisuela del Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12545, 24, 'Matalobos del Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12546, 24, 'La Milla del Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12547, 24, 'San Pedro de Pegas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12548, 24, 'Cuevas del Sil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12549, 24, 'Laguna Dalga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12550, 24, 'Pobladura de Pelayo Garcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12551, 24, 'San Pedro Dueas-Laguna Dalga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12552, 24, 'Santa Cristina del Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12553, 24, 'Soguillo del Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12554, 24, 'Villaestrigo del Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12555, 24, 'Zambroncinos del Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12556, 24, 'Zotes del Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12557, 24, 'Grajal de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12558, 24, 'Valdemorilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12559, 24, 'Toral de Merayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12560, 24, 'Fuentes de Peacorada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12561, 24, 'Santa Olaja Varga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12562, 24, 'Quintanilla de Sollamas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12563, 24, 'San Roman de Los Caballeros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12564, 24, 'Villaviciosa de la Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12565, 24, 'Murias de Paredes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12566, 24, 'Vegarienza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12567, 24, 'Santa Maria de la Isla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12568, 24, 'Santibaez de la Isla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12569, 24, 'Priaranza del Bierzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12570, 24, 'Reliegos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12571, 24, 'Mansilla Mayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12572, 24, 'Villamoros de Mansilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12573, 24, 'Villaverde de Sandoval'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12574, 24, 'El Burgo Ranero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12575, 24, 'Calzadilla de Los Hermanillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12576, 24, 'Las Graeras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12577, 24, 'Villamuio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12578, 24, 'Noceda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12579, 24, 'Barniedo de la Reina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12580, 24, 'Los Espejos de la Reina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12581, 24, 'Llanaves de la Reina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12582, 24, 'Portilla de la Reina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12583, 24, 'Villafrea de la Reina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12584, 24, 'Huerga de Garavalles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12585, 24, 'Matilla de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12586, 24, 'Oteruelo de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12587, 24, 'Requejo de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12588, 24, 'San Roman El Antiguo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12589, 24, 'Santa Colomba de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12590, 24, 'Soto de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12591, 24, 'Vecilla de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12592, 24, 'Veguellina de Fondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12593, 24, 'Posadilla de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12594, 24, 'San Cristobal de la Polantera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12595, 24, 'Seison de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12596, 24, 'Villagarcia de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12597, 24, 'Villamediana de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12598, 24, 'Escobar de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12599, 24, 'Berlanga del Bierzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12600, 24, 'Langre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12601, 24, 'Ocero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12602, 24, 'Sancedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12603, 24, 'San Miguel de Langre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12604, 24, 'Antimio de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12605, 24, 'Ardoncino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12606, 24, 'Banuncias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12607, 24, 'Chozas de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12608, 24, 'Chozas de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12609, 24, 'Meizara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12610, 24, 'Mozondiga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12611, 24, 'Villar de Mazarife'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12612, 24, 'Borrenes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12613, 24, 'Tapia de la Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12614, 24, 'La Aldea de la Valdoncina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12615, 24, 'Fresno del Camino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12616, 24, 'Montejos del Camino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12617, 24, 'Oncina de la Valdoncina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12618, 24, 'Robledo de la Valdoncina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12619, 24, 'San Miguel del Camino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12620, 24, 'Valverde de la Virgen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12621, 24, 'La Virgen del Camino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12622, 24, 'Cimanes del Tejar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12623, 24, 'Cea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12624, 24, 'San Pedro de Valderaduey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12625, 24, 'Villacalabuey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12626, 24, 'Villamol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12627, 24, 'Villapeceil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12628, 24, 'La Valgoma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12629, 24, 'Candin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12630, 24, 'Pereda de Ancares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12631, 24, 'Quintanilla del Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12632, 24, 'Redipollos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12633, 24, 'La Riera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12634, 24, 'Riolago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12635, 24, 'Robledo de Caldas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12636, 24, 'Robledo de la Valduerna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12637, 24, 'San Felix de Arce'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12638, 24, 'Salas de la Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12639, 24, 'San Feliz de Orbigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12640, 24, 'San Martin de la Falamosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12641, 24, 'San Pedro de Paradela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12642, 24, 'Santibaez de Valdeiglesias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12643, 24, 'Torrebarrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12644, 24, 'Torre de Babia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12645, 24, 'Torrestio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12646, 24, 'Valdesamario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12647, 24, 'Vega de Viejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12648, 24, 'Val de San Roman'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12649, 24, 'Velilla de la Valduerna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12650, 24, 'Vidanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12651, 24, 'Abelgas de Luna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12652, 24, 'Aralla de Luna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12653, 24, 'Argovejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12654, 24, 'Audanzas del Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12655, 24, 'Barcena de la Abadia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12656, 24, 'Carrocera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12657, 24, 'Cazanuecos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12658, 24, 'Cerezal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12659, 24, 'Corniero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12660, 24, 'Cospedal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12661, 24, 'La Cueta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12662, 24, 'Fontoria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12663, 24, 'Gavilanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12664, 24, 'Genestosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12665, 24, 'Grajal de Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12666, 24, 'Jabares de Los Oteros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12667, 24, 'La Majua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12668, 24, 'Nogales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12669, 24, 'Palazuelo de Orbigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12670, 24, 'Pinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12671, 24, 'Quilos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12672, 24, 'Rabanal de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12673, 24, 'Villadepalos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12674, 24, 'Villafeliz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12675, 24, 'Villanueva de la Tercia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12676, 24, 'Villar del Yermo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12677, 24, 'Villasecino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12678, 24, 'Villomar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12679, 24, 'Zuares del Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12680, 24, 'Huergas de Babia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12681, 24, 'Buiza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12682, 24, 'Antoan del Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12683, 24, 'Calzada del Coto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12684, 24, 'Palazuelo de Boar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12685, 24, 'Vega de Antoan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12686, 24, 'Villasimpliz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12687, 24, 'Albares de la Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12688, 24, 'Las Ventas de Albares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12689, 24, 'Corullon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12690, 24, 'Mansilla del Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12691, 24, 'Urdiales del Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12692, 24, 'Villarrin del Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12693, 24, 'Villarrodrigo de Las Regueras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12694, 24, 'Huergas de Gordon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12695, 24, 'Peredilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12696, 24, 'Garfin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12697, 24, 'Nava de Los Caballeros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12698, 24, 'Valdealcon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12699, 24, 'Villanofar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12700, 24, 'La Mata de la Riba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12701, 24, 'Palacios de Rueda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12702, 24, 'San Cipriano de Rueda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12703, 24, 'Vega de Monasterio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12704, 24, 'Mena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12705, 24, 'Campo de Villavidel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12706, 24, 'Carbajal de la Legua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12707, 24, 'Lorenzana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12708, 24, 'Sariegos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12709, 24, 'Villavidel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12710, 24, 'Azadinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12711, 24, 'Barrientos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12712, 24, 'Carral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12713, 24, 'Castrillo de Las Piedras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12714, 24, 'Garao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12715, 24, 'Cascantes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12716, 24, 'Cortiguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12717, 24, 'Santa Ana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12718, 24, 'La Seca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12719, 24, 'Valdefuentes del Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12720, 24, 'Valle de Las Casas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12721, 24, 'Villapadierna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12722, 24, 'Cifuentes de Rueda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12723, 24, 'Rueda del Almirante'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12724, 24, 'San Miguel de Escalada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12725, 24, 'Carracedelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12726, 24, 'Carracedo del Monasterio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12727, 24, 'Orallo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12728, 24, 'Marne'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12729, 24, 'Villaturiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12730, 24, 'Quintanilla de Rueda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12731, 24, 'San Pedro Dueas Galleguillos Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12732, 24, 'Genicera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12733, 24, 'Castrillo de Los Polvazares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12734, 24, 'Vegacervera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12735, 24, 'Espinosa de la Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12736, 24, 'La Mata del Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12737, 24, 'Riego de Ambros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12738, 24, 'Otero -Villadecanes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12739, 24, 'Carande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12740, 24, 'Horcadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12741, 24, 'Grulleros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12742, 24, 'Soto Y Amio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12743, 24, 'Vega de Infanzones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12744, 24, 'Villamartin del Sil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12745, 24, 'Tombrio de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12746, 24, 'Villazanzo de Valderaduey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12747, 24, 'Beberino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12748, 24, 'Cabornera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12749, 24, 'Folledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12750, 24, 'Friera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12751, 24, 'Geras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12752, 24, 'Llombera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12753, 24, 'Nocedo de Gordon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12754, 24, 'Cabanillas de San Justo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12755, 24, 'San Justo de Cabanillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12756, 24, 'La Granja San Vicente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12757, 24, 'San Andres de Las Puentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12758, 24, 'San Pedro Castaero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12759, 24, 'Tremor de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12760, 24, 'Viloria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12761, 24, 'Pio de Sajambre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12762, 24, 'Ribota de Sajambre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12763, 24, 'Robledo de Las Traviesas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12764, 24, 'Soto de Sajambre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12765, 24, 'Oteruelo de la Valdoncina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12766, 24, 'Peranzanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12767, 24, 'Celadilla del Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12768, 24, 'Posada de la Valduerna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12769, 24, 'Pinilla de la Valderia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12770, 24, 'Valle de Finolledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12771, 24, 'Miambres de la Valduerna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12772, 24, 'Redelga de la Valduerna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12773, 24, 'Velilla de la Reina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12774, 24, 'Villalis de la Valduerna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12775, 24, 'Ribas de la Valduerna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12776, 24, 'Porqueros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12777, 24, 'Regueras de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12778, 24, 'Regueras de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12779, 24, 'Tremor de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12780, 24, 'Villamontan de la Valduerna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12781, 24, 'Villasinta de Torio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12782, 24, 'Encinedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12783, 24, 'Hinojo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12784, 24, 'Azares del Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12785, 24, 'Quintana Y Congosto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12786, 24, 'Fojedo del Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12787, 24, 'Castrovega de Valmadrigal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12788, 24, 'Luengos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12789, 24, 'Malillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12790, 24, 'San Miguel de Montaan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12791, 24, 'Valdespino de Vaca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12792, 24, 'Villadecanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12793, 24, 'Villeza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12794, 24, 'Villamartin de la Abadia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12795, 24, 'Villagallegos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12796, 24, 'Villibae'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12797, 24, 'Bariones de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12798, 24, 'Magaz de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12799, 24, 'San Pedro de Los Oteros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12800, 24, 'Santa Maria Oteros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12801, 24, 'Fontanil de Los Oteros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12802, 24, 'Castromudarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12803, 24, 'Villaverde de Arcayos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12804, 24, 'Mancilleros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12805, 24, 'Roderos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12806, 24, 'San Justo de Las Regueras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12807, 24, 'Toldanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12808, 24, 'Valdesogo de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12809, 24, 'Valdesogo de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12810, 24, 'Villarroae'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12811, 24, 'Moral de Orbigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12812, 24, 'Quintana del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12813, 24, 'Villaverde la Chiquita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12814, 24, 'Arenillas de Valderaduey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12815, 24, 'Boeza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12816, 24, 'Grajalejo de Las Matas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12817, 24, 'Pobladura del Bernesga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12818, 24, 'Santa Olaja de la Accion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12819, 24, 'Villamarco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12820, 24, 'Nava de Los Oteros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12821, 24, 'Rebollar de Los Oteros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12822, 24, 'Riego del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12823, 24, 'San Justo de Los Oteros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12824, 24, 'Joara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12825, 24, 'Banecidas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12826, 24, 'Castellanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12827, 24, 'Santa Maria Monte Cea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12828, 24, 'Villacintor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12829, 24, 'Villamizar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12830, 24, 'Celada de Cea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12831, 24, 'Gigosos de Los Oteros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12832, 24, 'Morilla de Los Oteros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12833, 24, 'Pobladura de Los Oteros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12834, 24, 'Velilla de Los Oteros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12835, 24, 'Riosequillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12836, 24, 'San Martin de la Cueza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12837, 24, 'Sotillo de Cea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12838, 24, 'Villalebrin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12839, 24, 'Villalman'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12840, 24, 'Alcuetas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12841, 24, 'Cabaas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12842, 24, 'Fafilas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12843, 24, 'Quintanilla de Los Oteros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12844, 24, 'San Roman de Los Oteros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12845, 24, 'Fuentes de Carbajal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12846, 24, 'Arganza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12847, 24, 'Caldas de Luna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12848, 24, 'Carucedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12849, 24, 'Castropodame'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12850, 24, 'San Millan de Los Caballeros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12851, 24, 'Torneros de la Valderia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12852, 24, 'Turienzo Castaero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12853, 24, 'Villaverde de Los Cestos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12854, 24, 'Villoria de Orbigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12855, 24, 'Carbajal de Valderaduey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12856, 24, 'Castrillo de Valderaduey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12857, 24, 'Renedo de Valderaduey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12858, 24, 'Velilla de Valderaduey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12859, 24, 'Villadiego de Cea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12860, 24, 'Villavelasco de Valderaduey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12861, 24, 'Cabrera de Almanza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12862, 24, 'Calaveras de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12863, 24, 'Canalejas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12864, 24, 'Cebanico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12865, 24, 'Corcos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12866, 24, 'Espinosa de Almanza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12867, 24, 'Mondreganes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12868, 24, 'La Riba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12869, 24, 'Aleje'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12870, 24, 'Villafruela de Porma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12871, 24, 'Calaveras de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12872, 24, 'El Otero de Valdetuejar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12873, 24, 'Renedo de Valdetuejar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12874, 24, 'San Martin de Valdetuejar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12875, 24, 'Arcayos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12876, 24, 'Bustillo de Cea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12877, 24, 'Castroae'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12878, 24, 'Codornillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12879, 24, 'Mozos de Cea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12880, 24, 'Saelices del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12881, 24, 'Santa Maria Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12882, 24, 'Valdavida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12883, 24, 'Valdescapa de Cea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12884, 24, 'Villaceran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12885, 24, 'Villamartin de Don Sancho'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12886, 24, 'Villaselan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12887, 24, 'Carrizal -Valderrueda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12888, 24, 'Quintanilla -Cebanico-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12889, 24, 'Valcuende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12890, 24, 'Villamorisca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12891, 24, 'San Pedro Bercianos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12892, 24, 'Torneros del Bernesga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12893, 24, 'Vilecha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12894, 24, 'Antimio de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12895, 24, 'Viloria de la Jurisdiccion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12896, 24, 'La Milla del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12897, 24, 'La Valcueva-Palazuelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12898, 24, 'Naredo de Fenar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12899, 24, 'Orzonaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12900, 24, 'Pardave'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12901, 24, 'Robledo de Fenar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12902, 24, 'Robles de la Valcueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12903, 24, 'Serrilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12904, 24, 'Villalfeide'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12905, 24, 'Candemuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12906, 24, 'Robledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12907, 24, 'Truebano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12908, 24, 'Villargusan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12909, 24, 'Taranilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12910, 24, 'Villacorta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12911, 24, 'Galleguillos de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12912, 24, 'Villarejo de Orbigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12913, 24, 'Requejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12914, 24, 'Villaverde de la Abadia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12915, 24, 'Calzada de la Valderia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12916, 24, 'San Felix de la Valderia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12917, 24, 'Castrotierra de la Valduerna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12918, 24, 'San Felix de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12919, 24, 'Sotillos de Sabero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12920, 24, 'Toral de Fondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12921, 24, 'Toralino de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12922, 24, 'Valle de la Valduerna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12923, 24, 'Villarnera de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12924, 24, 'Barrio de la Tercia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12925, 24, 'Los Barrios de Gordon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12926, 24, 'Camplongo de Arbas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12927, 24, 'Casares de Arbas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12928, 24, 'Cubillas de Arbas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12929, 24, 'Golpejar de la Tercia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12930, 24, 'Pendilla de Arbas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12931, 24, 'Poladura de la Tercia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12932, 24, 'San Martin de la Tercia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12933, 24, 'Tonin de Arbas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12934, 24, 'Velilla de la Tercia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12935, 24, 'Viadangos de Arbas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12936, 24, 'Millaro de la Tercia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12937, 24, 'Cobrana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12938, 24, 'Quintanilla del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12939, 24, 'Narayola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12940, 24, 'Almuzara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12941, 24, 'Campo -Carmenes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12942, 24, 'Campo -Ponferrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12943, 24, 'Candanedo de Fenar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12944, 24, 'Canseco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12945, 24, 'Cillanueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12946, 24, 'Felmin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12947, 24, 'Fresnellino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12948, 24, 'Gete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12949, 24, 'Lavandera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12950, 24, 'Magaz de Cepeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12951, 24, 'Pedrosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12952, 24, 'Pereje'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12953, 24, 'Piedrafita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12954, 24, 'Piornedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12955, 24, 'Pontedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12956, 24, 'Rabanal de Fenar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12957, 24, 'Rimor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12958, 24, 'San Andres de Montejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12959, 24, 'San Cibrian -Ardon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12960, 24, 'San Esteban de Valdueza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12961, 24, 'San Lorenzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12962, 24, 'Solana de Fenar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12963, 24, 'Valdefrancos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12964, 24, 'Valverdin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12965, 24, 'Vanidodes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12966, 24, 'Villagaton'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12967, 24, 'Villanueva Pontedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12968, 24, 'Brugos de Fenar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12969, 24, 'San Clemente de Valdueza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12970, 24, 'Herreros de Rueda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12971, 24, 'Llamas de Rueda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12972, 24, 'Olleros de Alba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12973, 24, 'Sorribos de Alba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12974, 24, 'Campohermoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12975, 24, 'La Candana de Curueo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12976, 24, 'Sopea de Curueo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12977, 24, 'Arlanza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12978, 24, 'Losada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12979, 24, 'Rodanillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12980, 24, 'Rozuelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12981, 24, 'San Esteban del Toral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12982, 24, 'Santibaez del Toral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12983, 24, 'El Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12984, 24, 'Villaviciosa de San Miguel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12985, 24, 'Viales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12986, 24, 'Tedejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12987, 24, 'Cuadros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12988, 24, 'Chana de Somoza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12989, 24, 'Murias de Rechivaldo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12990, 24, 'Otero de Curueo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12991, 24, 'Pedredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12992, 24, 'Santibaez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12993, 24, 'Valdepielago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12994, 24, 'Baillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12995, 24, 'La Baa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12996, 24, 'Castrillo de Cabrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12997, 24, 'Corporales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12998, 24, 'La Cuesta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (12999, 24, 'Cunas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13000, 24, 'Iruela'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13001, 24, 'Losadilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13002, 24, 'Nogar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13003, 24, 'Odollo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13004, 24, 'Pozos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13005, 24, 'Quintanilla de Losada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13006, 24, 'Robledo de Losada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13007, 24, 'Santa Eulalia Cabrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13008, 24, 'Trabazos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13009, 24, 'Truchillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13010, 24, 'Valdavido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13011, 24, 'Villar del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13012, 24, 'Villarino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13013, 24, 'San Pedro de Trones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13014, 24, 'Balboa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13015, 24, 'Arcahueja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13016, 24, 'Libran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13017, 24, 'Santa Marina del Sil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13018, 24, 'Villar de Las Traviesas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13019, 24, 'Valtuille de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13020, 24, 'Valtuille de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13021, 24, 'Villabuena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13022, 24, 'Pobladura de Somoza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13023, 24, 'Benuza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13024, 24, 'Castroquilame'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13025, 24, 'Lomba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13026, 24, 'Magaz de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13027, 24, 'Pombriego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13028, 24, 'Sigueya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13029, 24, 'Silvan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13030, 24, 'Sotillo de Cabrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13031, 24, 'Vega de Yeres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13032, 24, 'Marrubio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13033, 24, 'Morla de la Valderia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13034, 24, 'Noceda de Cabrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13035, 24, 'Robledo de Sobrecastro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13036, 24, 'Saceda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13037, 24, 'Santalavilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13038, 24, 'Yebra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13039, 24, 'Yeres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13040, 24, 'Castrohinojo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13041, 24, 'Forna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13042, 24, 'Llamas de Cabrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13043, 24, 'Villaquilambre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13044, 24, 'San Pedro Mallo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13045, 24, 'Las Salas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13046, 24, 'Fontecha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13047, 24, 'Palacios de Fontecha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13048, 24, 'Pobladura de Fontecha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13049, 24, 'Santa Catalina Somoza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13050, 24, 'Brazuelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13051, 24, 'Pradorrey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13052, 24, 'Alcaidon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13053, 24, 'Ambasaguas de Curueo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13054, 24, 'Ambasmestas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13055, 24, 'Arbas del Puerto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13056, 24, 'Armunia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13057, 24, 'Barrio de Buenos Aires'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13058, 24, 'Barrio de la Sal-Paraiso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13059, 24, 'Barrio de Las Ollas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13060, 24, 'Barrio de Pinilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13061, 24, 'Benamarias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13062, 24, 'Campamento'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13063, 24, 'Compostilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13064, 24, 'Corbon del Sil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13065, 24, 'Cuatrovientos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13066, 24, 'El Espino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13067, 24, 'Flores del Sil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13068, 24, 'Fontun de la Tercia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13069, 24, 'Almazcara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13070, 24, 'Los Llanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13071, 24, 'Navatejera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13072, 24, 'Otero de Naraguantes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13073, 24, 'Paradaseca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13074, 24, 'Paradela del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13075, 24, 'Penedelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13076, 24, 'Pieros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13077, 24, 'Placa La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13078, 24, 'Puente de Alba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13079, 24, 'Puente de Orbigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13080, 24, 'La Puerta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13081, 24, 'Remellan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13082, 24, 'San Mames de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13083, 24, 'San Roman de Bembibre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13084, 24, 'Santa Cruz de Montes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13085, 24, 'Santa Marina Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13086, 24, 'Santalla del Bierzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13087, 24, 'Santo Tomas de Las Ollas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13088, 24, 'Sesamo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13089, 24, 'Trobajo del Camino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13090, 24, 'Trobajo del Cerecedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13091, 24, 'Ventosilla de la Tercia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13092, 24, 'Vilela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13093, 24, 'Villacedre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13094, 24, 'Villamoros de Las Regueras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13095, 24, 'Villaobispo de Las Regueras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13096, 24, 'Zacos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13097, 24, 'Canales-La Magdalena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13098, 24, 'Gualtares de Orbigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13099, 24, 'Devesa de Curueo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13100, 24, 'Otero -Ponferrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13101, 24, 'Valdeviejas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13102, 24, 'Mallo de Luna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13103, 24, 'Mora de Luna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13104, 24, 'Portilla de Luna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13105, 24, 'Vega de Caballeros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13106, 24, 'Santa Maria de Ordas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13107, 24, 'Cabanillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13108, 24, 'Valsemana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13109, 24, 'Acisa de Las Arrimadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13110, 24, 'Fresnedo de Valdellorma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13111, 24, 'Laiz de Las Arrimadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13112, 24, 'Oceja de Valdellorma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13113, 24, 'Palacio de Valdellorma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13114, 24, 'Santa Colomba Arrimadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13115, 24, 'La Serna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13116, 24, 'Valporquero de Rueda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13117, 24, 'Yugueros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13118, 24, 'Almagarinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13119, 24, 'Pobladura de Las Regueras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13120, 24, 'Rodrigatos de Las Regueras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13121, 24, 'Vierdes de Sajambre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13122, 24, 'Paradilla de Gordon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13123, 24, 'Llama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13124, 24, 'Robledo de la Guzpea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13125, 24, 'Tejerina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13126, 24, 'Ferreras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13127, 24, 'La Mata de Monteagudo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13128, 24, 'Alcedo de Alba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13129, 24, 'Santiago Millas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13130, 24, 'Quintana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13131, 24, 'Raneros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13132, 24, 'Ribaseca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13133, 24, 'Santovenia de la Valdoncina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13134, 24, 'Villanueva del Carnero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13135, 24, 'Huerga de Garavalles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13136, 24, 'Carbajosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13137, 24, 'Corbillos de la Sobarriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13138, 24, 'Golpejar de la Sobarriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13139, 24, 'Navafria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13140, 24, 'Paradilla de la Sobarriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13141, 24, 'Sanfelismo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13142, 24, 'Santa Olaja de Porma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13143, 24, 'Santovenia del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13144, 24, 'Solanilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13145, 24, 'Tendal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13146, 24, 'Valdefresno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13147, 24, 'Villacete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13148, 24, 'Villacil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13149, 24, 'Villafeliz de la Sobarriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13150, 24, 'Villalboe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13151, 24, 'Villaseca de la Sobarriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13152, 24, 'Villavente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13153, 24, 'Tolibia de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13154, 24, 'Tolibia de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13155, 24, 'Aviados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13156, 24, 'Montuerto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13157, 24, 'Ranedo de Curueo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13158, 24, 'Caminayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13159, 24, 'Cegoal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13160, 24, 'La Sota de Valderrueda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13161, 24, 'Soto de Valderrueda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13162, 24, 'Valverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13163, 24, 'Robledo de Torio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13164, 24, 'Villanueva del Arbol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13165, 24, 'Alija de la Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13166, 24, 'Castrillo de la Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13167, 24, 'Marialba de la Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13168, 24, 'Santa Olaja de la Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13169, 24, 'Calamocos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13170, 24, 'Columbrianos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13171, 24, 'Llamas de Laciana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13172, 24, 'Llanos de Alba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13173, 24, 'Molinaseca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13174, 24, 'Rioscuro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13175, 24, 'Sorriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13176, 24, 'Valmartino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13177, 24, 'La Vid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13178, 24, 'Villager de Laciana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13179, 24, 'Villalibre de la Jurisdiccion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13180, 24, 'Villanueva de Carrizo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13181, 24, 'Felechares de la Valderia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13182, 24, 'Huelde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13183, 24, 'Villacidayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13184, 24, 'Azadon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13185, 24, 'Secarejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13186, 24, 'Villarroquel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13187, 24, 'Valdore'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13188, 24, 'Verdiago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13189, 24, 'Meroy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13190, 24, 'Las Murias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13191, 24, 'Barrillos de Las Arrimadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13192, 24, 'Corral de Las Arrimadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13193, 24, 'La Vega de Robledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13194, 24, 'Carbajal de Rueda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13195, 24, 'San Bartolome de Rueda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13196, 24, 'Coladilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13197, 24, 'Morales del Arcediano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13198, 24, 'Valporquero de Torio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13199, 24, 'Celada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13200, 24, 'Alcoba de la Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13201, 24, 'Colinas del Campo Martin Moro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13202, 24, 'Pallide'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13203, 24, 'Viego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13204, 24, 'Sorribas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13205, 24, 'Rabanal de Luna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13206, 24, 'Santiago del Molinillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13207, 24, 'Ferreras del Puerto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13208, 24, 'Ambasaguas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13209, 24, 'Tombrio de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13210, 24, 'Vega de Gordon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13211, 24, 'Valle de Vegacervera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13212, 24, 'Cerezales del Condado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13213, 24, 'Espanillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13214, 24, 'San Vicente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13215, 24, 'Pealba de Cilleros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13216, 24, 'Valdealiso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13217, 24, 'Viayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13218, 24, 'Benllera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13219, 24, 'Santiago de Las Villas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13220, 24, 'Villavieja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13221, 24, 'Fresnedelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13222, 24, 'Sobredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13223, 24, 'Finolledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13224, 24, 'Salas de Los Barrios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13225, 24, 'Campaana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13226, 24, 'Ozuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13227, 24, 'Dragonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13228, 24, 'Hervededo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13229, 24, 'Lombillo de Los Barrios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13230, 24, 'San Clemente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13231, 24, 'San Juan de la Mata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13232, 24, 'Villar de Los Barrios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13233, 24, 'Andiuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13234, 24, 'Villalibre de Somoza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13235, 24, 'Murias de Pedredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13236, 24, 'Lagunas de Somoza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13237, 24, 'Villar de Golfer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13238, 24, 'Villarmeriel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13239, 24, 'Castro de Cepeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13240, 24, 'Bustos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13241, 24, 'Tejados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13242, 24, 'Fresno de la Valduerna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13243, 24, 'Tabuyuelo de Jamuz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13244, 24, 'Las Lomas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13245, 24, 'San Cristobal de Valdueza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13246, 24, 'Orellan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13247, 24, 'Horta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13248, 24, 'Acebo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13249, 24, 'Cueto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13250, 24, 'Rabanal del Camino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13251, 24, 'Huerga del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13252, 24, 'Quiones del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13253, 24, 'Canedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13254, 24, 'Campelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13255, 24, 'San Miguel de Arganza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13256, 24, 'Matachana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13257, 24, 'Sampron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13258, 24, 'Rabanal de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13259, 24, 'La Portela de Valcarce'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13260, 24, 'Moon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13261, 24, 'Espinareda de Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13262, 24, 'Santa Leocadia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13263, 24, 'Santiago de la Valduerna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13264, 24, 'Sotogayoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13265, 24, 'Villamayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13266, 24, 'Villarrabines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13267, 24, 'Voznuevo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13268, 24, 'Ribera de Grajal O Polvorosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13269, 24, 'Castaeiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13270, 24, 'Chandevillar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13271, 24, 'Villafeile'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13272, 24, 'Villarios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13273, 24, 'Castaoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13274, 24, 'Pumarin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13275, 24, 'Cantejeira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13276, 24, 'Busmayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13277, 24, 'Campo de Liebre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13278, 24, 'Barjas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13279, 24, 'Moldes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13280, 24, 'Vegas Do Seo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13281, 24, 'Corrales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13282, 24, 'Mosteiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13283, 24, 'Albaredos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13284, 24, 'Compludo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13285, 24, 'Oville'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13286, 24, 'Rucayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13287, 24, 'Valdecastillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13288, 24, 'Cerecedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13289, 24, 'Grandoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13290, 24, 'Veneros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13291, 24, 'Felechas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13292, 24, 'Colle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13293, 24, 'Las Llamas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13294, 24, 'Las Bodas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13295, 24, 'San Juan de Paluezas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13296, 24, 'La Chana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13297, 24, 'Veldedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13298, 24, 'Retuerto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13299, 24, 'Cuenabres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13300, 24, 'Vegacerneja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13301, 24, 'La Malladina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13302, 24, 'Valle del Agua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13303, 24, 'Barrio de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13304, 24, 'Barrio de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13305, 24, 'Los Rubios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13306, 24, 'El Teso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13307, 24, 'Balouta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13308, 24, 'Tejedo de Ancares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13309, 24, 'Suertes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13310, 24, 'Sorbeira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13311, 24, 'Lumeras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13312, 24, 'La Barosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13313, 24, 'Lago de Carucedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13314, 24, 'Las Medulas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13315, 24, 'Pobladura de Yuso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13316, 24, 'Cadafresnas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13317, 24, 'Melezna Mazos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13318, 24, 'Viariz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13319, 24, 'Hornija'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13320, 24, 'Villagroy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13321, 24, 'Ocejo de la Pea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13322, 24, 'La Velilla de Valdore'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13323, 24, 'Lois'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13324, 24, 'Ciguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13325, 24, 'Salamon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13326, 24, 'Villayandre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13327, 24, 'Remolina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13328, 24, 'Valbuena del Roblo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13329, 24, 'Cabaas de la Dornilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13330, 24, 'Robledino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13331, 24, 'Fresnedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13332, 24, 'Riosequino de Torio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13333, 24, 'Fontanos de Torio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13334, 24, 'Garrafe de Torio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13335, 24, 'Palazuelo de Torio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13336, 24, 'Villaverde de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13337, 24, 'Villaverde de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13338, 24, 'San Feliz de Torio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13339, 24, 'Pedrun de Torio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13340, 24, 'Matueca de Torio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13341, 24, 'Manzaneda de Torio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13342, 24, 'Ruiforco de Torio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13343, 24, 'Palacio de Torio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13344, 24, 'Villarmun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13345, 24, 'Santa Olaja de Eslonza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13346, 24, 'Mellanzos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13347, 24, 'Valduvieco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13348, 24, 'Espina de Tremor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13349, 24, 'Cabaeros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13350, 24, 'Villamorico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13351, 24, 'Pobladura de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13352, 24, 'Filiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13353, 24, 'Boisan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13354, 24, 'Quintanilla de Somoza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13355, 24, 'Onamio Y Poblado M.S.P.'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13356, 24, 'Vivero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13357, 24, 'Los Bayos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13358, 24, 'Montrondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13359, 24, 'Fasgar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13360, 24, 'Vegapujin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13361, 24, 'Lazado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13362, 24, 'Senra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13363, 24, 'Villabandin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13364, 24, 'Posada de Omaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13365, 24, 'Barrio de la Puente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13366, 24, 'Villanueva de Omaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13367, 24, 'Gestoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13368, 24, 'Villarrubin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13369, 24, 'Arnado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13370, 24, 'Oencia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13371, 24, 'Lusio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13372, 24, 'Castropetre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13373, 24, 'Arnadelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13374, 24, 'Susae del Sil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13375, 24, 'Matalavilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13376, 24, 'Tejedo del Sil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13377, 24, 'Valseco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13378, 24, 'Villarino del Sil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13379, 24, 'Salientes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13380, 24, 'Salentinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13381, 24, 'Anllares del Sil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13382, 24, 'Argayo del Sil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13383, 24, 'Santa Cruz del Sil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13384, 24, 'Sorbeda del Sil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13385, 24, 'Salio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13386, 24, 'Chano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13387, 24, 'Guimara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13388, 24, 'Trascastro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13389, 24, 'Cariseda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13390, 24, 'Villanueva de Valdueza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13391, 24, 'Valdecaada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13392, 24, 'Montes de Valdueza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13393, 24, 'Pealba de Santiago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13394, 24, 'Bouzas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13395, 24, 'Cain de Valdeon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13396, 24, 'Paradela de Muces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13397, 24, 'Solle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13398, 24, 'San Feliz de Las Lavanderas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13399, 24, 'Escuredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13400, 24, 'Abano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13401, 24, 'Palaciosmil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13402, 24, 'Donillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13403, 24, 'La Veguellina -Quint.Castillo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13404, 24, 'Morriondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13405, 24, 'Riofrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13406, 24, 'Torneros de Jamuz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13407, 24, 'Palacios de Jamuz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13408, 24, 'Herreros de Jamuz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13409, 24, 'Quintanilla de Florez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13410, 24, 'Escaro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13411, 24, 'Salce'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13412, 24, 'Curuea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13413, 24, 'Marzan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13414, 24, 'Sosas del Cumbral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13415, 24, 'Cirujales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13416, 24, 'Garuea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13417, 24, 'Santibaez de Arienza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13418, 24, 'Rosales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13419, 24, 'Santibaez de la Lomba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13420, 24, 'Inicio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13421, 24, 'Trascastro de Luna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13422, 24, 'Oterico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13423, 24, 'La Urz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13424, 24, 'Tabladillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13425, 24, 'San Martin de Agostedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13426, 24, 'Villar de Ciervos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13427, 24, 'Valdemanzanas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13428, 24, 'Turienzo Caballeros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13429, 24, 'Adrados de Ordas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13430, 24, 'Callejo de Ordas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13431, 24, 'Villarrodrigo de Ordas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13432, 24, 'Santibaez de Ordas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13433, 24, 'Selga de Ordas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13434, 24, 'Formigones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13435, 24, 'Villapodambre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13436, 24, 'Valdespino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13437, 24, 'Cabarcos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13438, 24, 'Cabeza de Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13439, 24, 'Portela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13440, 24, 'Sobrado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13441, 24, 'Cancela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13442, 24, 'Lago de Omaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13443, 24, 'Villayuste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13444, 24, 'Santovenia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13445, 24, 'Camposalinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13446, 24, 'Villaceid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13447, 24, 'Valdelaloba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13448, 24, 'Pradilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13449, 24, 'San Facundo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13450, 24, 'San Fiz Do Seo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13451, 24, 'Parada de Soto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13452, 24, 'Sotoparada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13453, 24, 'Villar de Corrales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13454, 24, 'Moral de Valcarce'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13455, 24, 'Pradela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13456, 24, 'Sotelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13457, 24, 'Correcillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13458, 24, 'La Mata de Berbula'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13459, 24, 'Valdefuentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13460, 24, 'Curillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13461, 24, 'Murias de Ponjos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13462, 24, 'Ponjos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13463, 24, 'Paladin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13464, 24, 'La Utrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13465, 24, 'San Pedro de Olleros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13466, 24, 'Burbia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13467, 24, 'Penoselo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13468, 24, 'San Martin de Moreda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13469, 24, 'Moreda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13470, 24, 'Villadesoto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13471, 24, 'La Laguna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13472, 24, 'La Faba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13473, 24, 'El Castro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13474, 24, 'Lindoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13475, 24, 'Las Herrerias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13476, 24, 'Ransinde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13477, 24, 'Ruitelan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13478, 24, 'La Braa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13479, 24, 'San Julian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13480, 24, 'Villasinde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13481, 24, 'La Losilla Y San Adrian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13482, 24, 'Lugan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13483, 24, 'La Devesa de Boar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13484, 24, 'Santa Maria del Monte Condado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13485, 24, 'Secos de Porma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13486, 24, 'Villamayor del Condado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13487, 24, 'San Cipriano del Condado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13488, 24, 'San Vicente del Condado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13489, 24, 'Castrillo de Porma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13490, 24, 'Castro del Condado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13491, 24, 'Parandones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13492, 24, 'Tejeira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13493, 24, 'Porcarizas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13494, 24, 'Villar de Acero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13495, 24, 'La Veguellina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13496, 24, 'Cela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13497, 24, 'Prado de Paradias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13498, 24, 'Puente de Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13499, 24, 'Paradia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13500, 24, 'Los Barrios de Nistoso'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13501, 24, 'Villar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13502, 24, 'Culebros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13503, 24, 'Tabladas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13504, 24, 'Ucedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13505, 24, 'Requejo Y Corus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13506, 24, 'La Silva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13507, 24, 'Montealegre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13508, 24, 'San Esteban de Villacalviel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13509, 24, 'Villacalviel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13510, 24, 'Fontoria de Cepeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13511, 24, 'Quintana de Fon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13512, 24, 'Valdeiglesias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13513, 24, 'La Flecha de Torio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13514, 24, 'Valdeprado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13515, 24, 'Carrizal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13516, 24, 'Mataotero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13517, 24, 'Omaon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13518, 24, 'Iglesia del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13519, 24, 'Pandorado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13520, 24, 'Valverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13521, 24, 'Campo del Agua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13522, 24, 'Quintela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13523, 24, 'El Ganso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13524, 24, 'Anllarinos del Sil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13525, 24, 'Bonillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13526, 24, 'Requejo de Pradorrey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13527, 24, 'Rodrigatos de la Obispalia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13528, 24, 'Guimil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13529, 24, 'Adrados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13530, 24, 'Valdehuesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13531, 24, 'Orones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13532, 24, 'Vozmediano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13533, 24, 'Casasuertes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13534, 24, 'Arborbuena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13535, 24, 'Getino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13536, 24, 'Rodillazo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13537, 24, 'Piedrasecha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13538, 24, 'Cuevas de Viayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13539, 24, 'San Pedro de Foncollada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13540, 24, 'Sobrepea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13541, 24, 'Valderilla de Torio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13542, 24, 'Abadengo de Torio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13543, 24, 'Piedras Albas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13544, 24, 'Busnadiego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13545, 24, 'Paradasolana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13546, 24, 'Pedregal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13547, 24, 'Sotico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13548, 24, 'Faro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13549, 24, 'Isoba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13550, 24, 'San Cibrian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13551, 24, 'San Isidro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13552, 24, 'Alejico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13553, 24, 'Santa Marina de Somoza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13554, 24, 'Viforcos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13555, 24, 'La Maluenga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13556, 24, 'Argaoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13557, 24, 'Rabanal Viejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13558, 24, 'Riocastrillo de Ordas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13559, 24, 'Pobladura de Luna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13560, 24, 'Irian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13561, 24, 'Bobia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13562, 24, 'Foncebadon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13563, 24, 'Villalmonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13564, 24, 'La Espina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13565, 24, 'La Red de Valdetuejar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13566, 24, 'Las Muecas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13567, 24, 'Vallejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13568, 24, 'La Veguellina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13569, 24, 'Villar de Otero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13570, 24, 'Laballos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13571, 24, 'Bargelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13572, 24, 'Argenteiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13573, 24, 'San Tirso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13574, 24, 'Cernada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13575, 24, 'Las Lamas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13576, 24, 'Candanedo de Boar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13577, 24, 'Llamera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13578, 24, 'Represa del Condado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13579, 24, 'Revilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13580, 24, 'Canalejas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13581, 24, 'Castrillino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13582, 24, 'Cabaas Raras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13583, 24, 'Cerezal de Tremor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13584, 24, 'Gallegos de Curueo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13585, 24, 'Lago de Babia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13586, 24, 'Lordemanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13587, 24, 'Oteruelo de la Valduerna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13588, 24, 'Quintanilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13589, 24, 'Cuevas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13590, 24, 'Saguera de Luna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13591, 24, 'Irede de Luna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13592, 24, 'Voces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13593, 24, 'Sabugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13594, 24, 'Rodicol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13595, 24, 'Torrecillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13596, 24, 'Primajas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13597, 24, 'Andarraso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13598, 24, 'Socil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13599, 24, 'Guisatecha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13600, 24, 'Villarin de Riello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13601, 24, 'Bonella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13602, 24, 'Folloso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13603, 24, 'La Velilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13604, 24, 'Campo la Lomba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13605, 24, 'Arienza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13606, 24, 'Villaverde de Omaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13607, 24, 'Villadepan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13608, 24, 'La Omauela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13609, 24, 'Cornombre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13610, 24, 'Villar de Omaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13611, 24, 'Castro la Lomba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13612, 24, 'Robledo de Omaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13613, 24, 'Ariego de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13614, 24, 'Ariego de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13615, 24, 'Llamazares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13616, 24, 'Redilluera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13617, 24, 'Cerulleda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13618, 24, 'La Braa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13619, 24, 'Redipuertas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13620, 24, 'Arintero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13621, 24, 'Villaverde de la Cuerna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13622, 24, 'Valdorria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13623, 24, 'Valbuena de la Encomienda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13624, 24, 'Lamagrande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13625, 24, 'Villarmarin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13626, 24, 'Villanueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13627, 24, 'Parajis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13628, 24, 'Fuente de Oliva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13629, 24, 'Ruideferros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13630, 24, 'Espinareda de Ancares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13631, 24, 'Suarbol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13632, 24, 'Villasumil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13633, 24, 'El Carril'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13634, 24, 'Villarratel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13635, 24, 'Manzaneda de Omaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13636, 24, 'Piedralba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13637, 24, 'Villar del Puerto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13638, 24, 'Ceide Y Orrios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13639, 24, 'Quintanilla de Combarros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13640, 24, 'Valbueno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13641, 24, 'Casasola de Rueda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13642, 24, 'Posadina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13643, 24, 'El Castillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13644, 24, 'Poligono Industrial Onzonilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13645, 24, 'Villacedre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13646, 24, 'Leiroso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13647, 24, 'Labaniego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13648, 24, 'Barrio Magdalena Carrocera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13649, 24, 'Puente Villarente Valdefresno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13650, 24, 'Pte. Villarente de Villaturiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13651, 24, 'Las Ventas Albares Bembibre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13652, 24, 'Barrio Vecilla Valdepielago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13653, 24, 'Sanvitul'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13654, 24, 'Mansilla del Esla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13655, 24, 'Matavenero Y Poibueno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13656, 24, 'Monteleon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13657, 24, 'Matanza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13658, 24, 'Posada de la Valduerna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13659, 24, 'Villarrando'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13660, 25, 'Adrall'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13661, 25, 'Ager'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13662, 25, 'Agramunt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13663, 25, 'Els Alamus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13664, 25, 'Alas I Cerc'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13665, 25, 'L''albages'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13666, 25, 'Albatarrec'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13667, 25, 'Albesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13668, 25, 'L''albi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13669, 25, 'Alcano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13670, 25, 'Alcarras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13671, 25, 'Alcoletge'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13672, 25, 'Alentorn'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13673, 25, 'Alfarras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13674, 25, 'Algerri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13675, 25, 'Alguaire'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13676, 25, 'Almacelles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13677, 25, 'Almatret'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13678, 25, 'Almenar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13679, 25, 'Anglesola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13680, 25, 'Arbeca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13681, 25, 'Els Arcs'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13682, 25, 'Arfa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13683, 25, 'Aristot'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13684, 25, 'Arseguel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13685, 25, 'Artesa Lleida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13686, 25, 'Artesa de Segre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13687, 25, 'Arties'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13688, 25, 'La Sentiu de Sio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13689, 25, 'Aspa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13690, 25, 'Aubert'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13691, 25, 'Les Avellanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13692, 25, 'Aitona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13693, 25, 'Balaguer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13694, 25, 'Banys Sant Vicenc Els'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13695, 25, 'Barbens'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13696, 25, 'Baro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13697, 25, 'Bassella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13698, 25, 'Belianes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13699, 25, 'Bellcaire D''urgell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13700, 25, 'Bell-Lloc D''urgell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13701, 25, 'Bellmunt D''urgell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13702, 25, 'Bellpuig'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13703, 25, 'Bellver de Cerdanya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13704, 25, 'Bellvis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13705, 25, 'Benavent de Segria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13706, 25, 'Biosca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13707, 25, 'Boldu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13708, 25, 'Bor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13709, 25, 'Es Bordes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13710, 25, 'Les Borges Blanques'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13711, 25, 'Bossost'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13712, 25, 'Bovera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13713, 25, 'Butsenit'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13714, 25, 'Butsenit Durgell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13715, 25, 'Camarasa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13716, 25, 'Castellciutat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13717, 25, 'Castelldans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13718, 25, 'Castellnou de Bassella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13719, 25, 'Castellnou de Carcolze'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13720, 25, 'Castellnou de Seana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13721, 25, 'Castello Farfanya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13722, 25, 'Castellsera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13723, 25, 'Sero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13724, 25, 'Cervera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13725, 25, 'Cervia de Les Garrigues'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13726, 25, 'Ciutadilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13727, 25, 'El Cogul'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13728, 25, 'Colldelrat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13729, 25, 'Collfred'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13730, 25, 'Coll de Nargo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13731, 25, 'Conques'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13732, 25, 'Corbins'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13733, 25, 'Cubells'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13734, 25, 'Escalo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13735, 25, 'L''espluga Calba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13736, 25, 'Espot'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13737, 25, 'Estach'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13738, 25, 'Esterri D''aneu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13739, 25, 'Figuerola D''orcau'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13740, 25, 'La Floresta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13741, 25, 'Fondarella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13742, 25, 'Foradada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13743, 25, 'La Fuliola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13744, 25, 'Gerb'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13745, 25, 'Gerri de la Sal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13746, 25, 'Golmes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13747, 25, 'La Granadella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13748, 25, 'La Granja D''escarp'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13749, 25, 'Granyena de Segarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13750, 25, 'Granyena de Les Garrigues'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13751, 25, 'Guardia Durgell La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13752, 25, 'Guardia Noguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13753, 25, 'Guardiola Segre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13754, 25, 'La Guardia-Lada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13755, 25, 'Guimera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13756, 25, 'La Guingueta D''aneu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13757, 25, 'Guissona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13758, 25, 'Ivars D''urgell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13759, 25, 'Isona I Conca Della'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13760, 25, 'Juncosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13761, 25, 'Juneda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13762, 25, 'Lleida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13763, 25, 'Les'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13764, 25, 'Linyola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13765, 25, 'Llardecans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13766, 25, 'Llavorsi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13767, 25, 'Llimiana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13768, 25, 'Llorens de Rocafort'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13769, 25, 'Malda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13770, 25, 'Martinet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13771, 25, 'Massalcoreig'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13772, 25, 'Maials'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13773, 25, 'Menarguens'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13774, 25, 'Miralcamp'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13775, 25, 'Mollerussa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13776, 25, 'Montferrer I Castellbo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13777, 25, 'Montgai'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13778, 25, 'Montargull'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13779, 25, 'Montclar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13780, 25, 'Montella I Martinet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13781, 25, 'Montoliu Lleida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13782, 25, 'Nalec'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13783, 25, 'Noves de Segre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13784, 25, 'Ogern'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13785, 25, 'Oliana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13786, 25, 'Les Oluges'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13787, 25, 'Els Omellons'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13788, 25, 'Els Omells de Na Gaia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13789, 25, 'Organya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13790, 25, 'Os de Balaguer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13791, 25, 'Palanca Noves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13792, 25, 'El Palau D''anglesola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13793, 25, 'La Parroquia D''horto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13794, 25, 'Penelles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13795, 25, 'Peramola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13796, 25, 'El Pla de Sant Tirs'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13797, 25, 'El Poal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13798, 25, 'La Pobla de Cervoles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13799, 25, 'Bellaguarda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13800, 25, 'La Pobla de Segur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13801, 25, 'Ponts'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13802, 25, 'La Portella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13803, 25, 'Pradell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13804, 25, 'Prats I Sansor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13805, 25, 'Preixana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13806, 25, 'Preixens'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13807, 25, 'Prullans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13808, 25, 'Puiggros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13809, 25, 'Puigverd Lleida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13810, 25, 'Raimat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13811, 25, 'Rialp'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13812, 25, 'Riu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13813, 25, 'Rocafort de Vallbona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13814, 25, 'Rocallaura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13815, 25, 'Rossello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13816, 25, 'Salardu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13817, 25, 'Salas de Pallars'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13818, 25, 'Sant Guim de Freixenet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13819, 25, 'Sant Lloren de Montgai'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13820, 25, 'Sant Marti Malda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13821, 25, 'Sant Ramon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13822, 25, 'Sanauja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13823, 25, 'Sarroca de Lleida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13824, 25, 'La Seu D''urgell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13825, 25, 'Seros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13826, 25, 'El Soleras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13827, 25, 'Solsona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13828, 25, 'Sort'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13829, 25, 'Soses'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13830, 25, 'Sudanell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13831, 25, 'Suterranya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13832, 25, 'Tarrega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13833, 25, 'Tarres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13834, 25, 'Termens'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13835, 25, 'Tiurana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13836, 25, 'Tora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13837, 25, 'Els Torms'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13838, 25, 'Tornabous'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13839, 25, 'Torrebesses'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13840, 25, 'Torrefarrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13841, 25, 'Torregrossa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13842, 25, 'Torrelameu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13843, 25, 'Torres de Segre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13844, 25, 'Tremp'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13845, 25, 'Tudela de Segre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13846, 25, 'Valencia D''aneu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13847, 25, 'Vallbona de Les Monges'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13848, 25, 'Vallfogona de Balaguer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13849, 25, 'Vall-Llebrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13850, 25, 'Vallverd'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13851, 25, 'Les Ventoses'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13852, 25, 'Verdu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13853, 25, 'Vielha E Mijaran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13854, 25, 'Vilagrassa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13855, 25, 'Vilamitjana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13856, 25, 'Vilanova de L''aguda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13857, 25, 'Vilanova Bellpuig'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13858, 25, 'Vilanova de Meia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13859, 25, 'Vilanova de Segria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13860, 25, 'Vila-Sana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13861, 25, 'El Vilosell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13862, 25, 'Vilves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13863, 25, 'Alpicat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13864, 25, 'Vilanova de la Barca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13865, 25, 'Vinaixa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13866, 25, 'Tarros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13867, 25, 'Torre-Serona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13868, 25, 'Sant Llorenc Morunys'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13869, 25, 'Malpartit'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13870, 25, 'Bescaran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13871, 25, 'Estamariu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13872, 25, 'Lles de Cerdanya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13873, 25, 'Castellbo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13874, 25, 'Sant Antoli I Vilanova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13875, 25, 'Sidamon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13876, 25, 'Gavet de la Conca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13877, 25, 'Tartareu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13878, 25, 'Vilanova de la Sal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13879, 25, 'Aransa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13880, 25, 'Mussa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13881, 25, 'La Coma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13882, 25, 'Gosol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13883, 25, 'Fulleda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13884, 25, 'Oliola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13885, 25, 'Montornes de Segarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13886, 25, 'Arcavell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13887, 25, 'La Farga de Moles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13888, 25, 'El Pont de Suert'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13889, 25, 'Les Pallargues'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13890, 25, 'Ivorra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13891, 25, 'Fornols'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13892, 25, 'Sorribes -La Vansa I Fornols-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13893, 25, 'Tuixent'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13894, 25, 'El Querforadat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13895, 25, 'Toloriu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13896, 25, 'Vilaller'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13897, 25, 'Lladurs'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13898, 25, 'Peramea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13899, 25, 'Baen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13900, 25, 'La Guardia D''ares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13901, 25, 'Taus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13902, 25, 'Canejan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13903, 25, 'Talavera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13904, 25, 'Ardevol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13905, 25, 'Santuari Mare de Deu de Pinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13906, 25, 'Vallmanya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13907, 25, 'Ribera de Cardos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13908, 25, 'Tirvia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13909, 25, 'La Vall de Boi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13910, 25, 'Boi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13911, 25, 'Valls -Guixers-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13912, 25, 'Alins'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13913, 25, 'Gausac'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13914, 25, 'Puigverd D''agramunt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13915, 25, 'Tarroja de Segarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13916, 25, 'Bellmunt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13917, 25, 'Civit'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13918, 25, 'Pallerols -Talavera-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13919, 25, 'Pavia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13920, 25, 'Araos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13921, 25, 'Areu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13922, 25, 'Ainet de Besan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13923, 25, 'Noris'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13924, 25, 'Cabanabona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13925, 25, 'Vilamajor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13926, 25, 'Roni'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13927, 25, 'Arestui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13928, 25, 'Baiasca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13929, 25, 'Montenartro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13930, 25, 'Cabo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13931, 25, 'Pujal El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13932, 25, 'El Vilar de Cabo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13933, 25, 'Isil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13934, 25, 'Sorpe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13935, 25, 'Bellver D''osso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13936, 25, 'Osso de Sio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13937, 25, 'Ars'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13938, 25, 'Asnurri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13939, 25, 'Civis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13940, 25, 'Sant Joan Fumat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13941, 25, 'Espaen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13942, 25, 'Montoliu de Segarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13943, 25, 'Els Castells'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13944, 25, 'Sant Salvador de Tolo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13945, 25, 'Gimenells I El Pla de la Font'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13946, 25, 'Pla de la Font'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13947, 25, 'Suchs'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13948, 25, 'El Mas de Bondia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13949, 25, 'Garzola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13950, 25, 'Arros -Vielha E Mijaran-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13951, 25, 'Betlan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13952, 25, 'Montcorbau'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13953, 25, 'Vilamos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13954, 25, 'Vila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13955, 25, 'Mont'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13956, 25, 'Pont D''arros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13957, 25, 'Vilac'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13958, 25, 'Casau'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13959, 25, 'Naves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13960, 25, 'Alinya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13961, 25, 'Son'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13962, 25, 'Estaras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13963, 25, 'Cellers'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13964, 25, 'Sunyer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13965, 25, 'Alfes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13966, 25, 'Figols I Alinya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13967, 25, 'L''ametlla -Camarasa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13968, 25, 'Fontllonga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13969, 25, 'Figuerola de Meia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13970, 25, 'Les Masies -Coll de Nargo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13971, 25, 'Alos de Balaguer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13972, 25, 'Arres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13973, 25, 'Bagergue'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13974, 25, 'Bausen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13975, 25, 'Escunhau'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13976, 25, 'Gessa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13977, 25, 'Tredos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13978, 25, 'Unha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13979, 25, 'Montpalau'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13980, 25, 'Vergos-Guerrejat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13981, 25, 'Aravell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13982, 25, 'Bellestar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13983, 25, 'Oden'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13984, 25, 'Gavarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13985, 25, 'Mas Claret'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13986, 25, 'Rubinat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13987, 25, 'Sant Pere Dels Arquells'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13988, 25, 'Cambrils'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13989, 25, 'Agullo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13990, 25, 'Cora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13991, 25, 'Fontdepou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13992, 25, 'La Regola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13993, 25, 'Vilamajor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13994, 25, 'Travesseres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13995, 25, 'Viliella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13996, 25, 'Estais'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13997, 25, 'Claravalls'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13998, 25, 'Santa Maria de Montmagastrell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (13999, 25, 'Castellar de la Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14000, 25, 'Montfalco D''agramunt'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14001, 25, 'Castellnou D''osso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14002, 25, 'Gualter'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14003, 25, 'Durro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14004, 25, 'Estana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14005, 25, 'Garos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14006, 25, 'Llesp'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14007, 25, 'Villec'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14008, 25, 'L''aranyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14009, 25, 'El Canos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14010, 25, 'Concabella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14011, 25, 'Hostafrancs'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14012, 25, 'Montcortes -Els Plans de Sio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14013, 25, 'Mussa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14014, 25, 'Ratera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14015, 25, 'Farrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14016, 25, 'Burg'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14017, 25, 'Mallolis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14018, 25, 'Montesclado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14019, 25, 'Sant Climen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14020, 25, 'El Pont de Claverol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14021, 25, 'Sant Marti de Canals'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14022, 25, 'Sossis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14023, 25, 'Aramunt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14024, 25, 'Claverol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14025, 25, 'Pessonada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14026, 25, 'Hortoneda -Conca de Dalt-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14027, 25, 'Massoteres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14028, 25, 'Lhostal Nou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14029, 25, 'El Miracle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14030, 25, 'Alfarras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14031, 25, 'Bellvei'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14032, 25, 'Castellmeja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14033, 25, 'Sedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14034, 25, 'El Llor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14035, 25, 'Riber'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14036, 25, 'Torrefeta I Florejacs'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14037, 25, 'Alos D''isil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14038, 25, 'Embonui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14039, 25, 'Freixa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14040, 25, 'Les Llagunes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14041, 25, 'Malmercat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14042, 25, 'Puigforniu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14043, 25, 'Rubio -Soriguera-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14044, 25, 'Soriguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14045, 25, 'Tornafort'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14046, 25, 'Vilamur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14047, 25, 'Puigcercos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14048, 25, 'Montcortes -Baix Pallars-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14049, 25, 'Bretui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14050, 25, 'Benavent de la Conca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14051, 25, 'Orcau'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14052, 25, 'Ivars de Noguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14053, 25, 'Sant Roma D''abella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14054, 25, 'Malpas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14055, 25, 'Montau'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14056, 25, 'Prades'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14057, 25, 'Molsosa Plans La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14058, 25, 'Viu de Llevata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14059, 25, 'Ortedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14060, 25, 'Cerc'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14061, 25, 'Abella de la Conca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14062, 25, 'Escart'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14063, 25, 'Montanissell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14064, 25, 'La Cardosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14065, 25, 'Castellnou D''oluges'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14066, 25, 'Comabella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14067, 25, 'La Prenyanosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14068, 25, 'Sant Guim de la Plana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14069, 25, 'Vicfred'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14070, 25, 'Talarn'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14071, 25, 'Senet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14072, 25, 'Tentellatge'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14073, 25, 'Valldora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14074, 25, 'Mont-Nou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14075, 25, 'Altron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14076, 25, 'Bernui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14077, 25, 'Erinya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14078, 25, 'Llessui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14079, 25, 'Sorre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14080, 25, 'Surp'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14081, 25, 'Esterri de Cardos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14082, 25, 'Lladorre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14083, 25, 'Fonolleres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14084, 25, 'Les Esglesies'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14085, 25, 'Senterada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14086, 25, 'Sarroca de Bellera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14087, 25, 'Granyanella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14088, 25, 'Mora La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14089, 25, 'Caregue'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14090, 25, 'Seuri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14091, 25, 'Molsosa Vila Seca La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14092, 25, 'Ribelles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14093, 25, 'Enviny'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14094, 25, 'Llarven'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14095, 25, 'Montardit'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14096, 25, 'La Pobleta de Bellvei'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14097, 25, 'Plana La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14098, 25, 'Xerallo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14099, 25, 'Molinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14100, 25, 'La Torre de Cabdella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14101, 25, 'La Central de Capdella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14102, 25, 'La Mola D''amunt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14103, 25, 'Mont-Ros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14104, 25, 'Ainet de Cardos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14105, 25, 'Florejacs'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14106, 25, 'Nuncarga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14107, 25, 'Trago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14108, 25, 'Unarre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14109, 25, 'Vilamantells'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14110, 25, 'El Castell de Santa Maria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14111, 25, 'Freixenet de Segarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14112, 25, 'Masies Melio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14113, 25, 'La Rabassa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14114, 25, 'Sant Guim de la Rabassa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14115, 25, 'Sant Domi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14116, 25, 'La Tallada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14117, 25, 'Aulas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14118, 25, 'El Castellet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14119, 25, 'Els Masos de Tamurcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14120, 25, 'Sapeira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14121, 25, 'Torogo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14122, 25, 'La Torre de Tamurcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14123, 25, 'Gra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14124, 25, 'La Morana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14125, 25, 'Palou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14126, 25, 'Selvanera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14127, 25, 'Sant Marti de la Morana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14128, 25, 'Talteull'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14129, 25, 'Espiguet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14130, 25, 'Alzina Ribelles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14131, 25, 'Aidi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14132, 25, 'La Fora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14133, 25, 'Tossal El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14134, 25, 'Aguiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14135, 25, 'Aiguabella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14136, 25, 'Albet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14137, 25, 'Altadill'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14138, 25, 'Aransis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14139, 25, 'Astell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14140, 25, 'Alberola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14141, 25, 'Basturs'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14142, 25, 'Berros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14143, 25, 'Biscarri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14144, 25, 'Boixols'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14145, 25, 'Capdella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14146, 25, 'La Sisquella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14147, 25, 'Espui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14148, 25, 'Ferran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14149, 25, 'Gramenet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14150, 25, 'Gramuntell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14151, 25, 'Guardiola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14152, 25, 'Gospi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14153, 25, 'Josa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14154, 25, 'Llindars'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14155, 25, 'Oveix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14156, 25, 'Palauet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14157, 25, 'Toralla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14158, 25, 'Portell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14159, 25, 'Montardit de Baix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14160, 25, 'Sant Andreu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14161, 25, 'Tavascan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14162, 25, 'Vilalta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14163, 25, 'Vilamitjana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14164, 25, 'Viver de Segarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14165, 25, 'La Curullada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14166, 25, 'Lluars'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14167, 25, 'Santa Linya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14168, 25, 'Betren'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14169, 25, 'Casarilh'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14170, 25, 'Torres D''alas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14171, 25, 'Lladros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14172, 25, 'Vilanova de Banat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14173, 25, 'Fontsagrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14174, 25, 'Sant Serni'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14175, 25, 'Anya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14176, 25, 'Erill-La-Vall'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14177, 25, 'Taull'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14178, 25, 'Palau de Noguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14179, 25, 'Sistero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14180, 25, 'Mafet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14181, 25, 'Mont-Roig'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14182, 25, 'Pelagalls'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14183, 25, 'Adraen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14184, 25, 'Cornellana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14185, 25, 'Guils del Canto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14186, 25, 'Milla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14187, 25, 'Pallerols'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14188, 25, 'Montfalco Murallat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14189, 25, 'Arros -Esterri de Cardos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14190, 25, 'Escalarre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14191, 25, 'Jou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14192, 25, 'La Rapita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14193, 25, 'Bar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14194, 25, 'Sant Cristofol de la Vall'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14195, 25, 'Sant Joan Vinyafrescal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14196, 25, 'Sant Marti de Barcedana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14197, 25, 'El Pont de Bar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14198, 25, 'Calbinya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14199, 25, 'Almenara Alta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14200, 25, 'Boren'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14201, 25, 'Romanins'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14202, 25, 'Alzina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14203, 25, 'Torrec'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14204, 25, 'Pauls de Flamicell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14205, 25, 'Donzell D''urgell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14206, 25, 'Anserall'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14207, 25, 'Castellar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14208, 25, 'Montfar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14209, 25, 'Cassibros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14210, 25, 'Surri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14211, 25, 'Gaver'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14212, 25, 'Llivia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14213, 25, 'Argolell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14214, 25, 'Briano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14215, 25, 'La Baronia de Sant Oisme'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14216, 25, 'Almassor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14217, 25, 'Altet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14218, 25, 'La Figuerosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14219, 25, 'Santa Fe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14220, 25, 'Sant Miquel de la Vall'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14221, 25, 'El Talladell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14222, 25, 'Vernet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14223, 25, 'Baqueira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14224, 25, 'El Gos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14225, 25, 'Arro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14226, 25, 'Anas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14227, 25, 'Bonestarre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14228, 25, 'Escas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14229, 25, 'Berani'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14230, 25, 'Rodes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14231, 25, 'Cortas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14232, 25, 'Ellar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14233, 25, 'Nas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14234, 25, 'Talltendre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14235, 25, 'Gavas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14236, 25, 'Cerbi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14237, 25, 'Boldis Jussa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14238, 25, 'Estaon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14239, 25, 'Arcalis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14240, 25, 'Barceloneta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14241, 25, 'Ossera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14242, 25, 'Sant Pere'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14243, 25, 'Covet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14244, 25, 'Els Obacs'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14245, 25, 'La Torre de Fluvia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14246, 25, 'Rubio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14247, 25, 'Almacelletes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14248, 25, 'Malacara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14249, 25, 'El Pont D''alentorn'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14250, 25, 'El Pedris'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14251, 25, 'Vergos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14252, 25, 'Aguilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14253, 25, 'Altes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14254, 25, 'Olp'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14255, 25, 'Castissent'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14256, 25, 'Baltarga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14257, 25, 'Pi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14258, 25, 'Lalsina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14259, 25, 'Pobella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14260, 25, 'Ansovell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14261, 25, 'Sarroca de Lleida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14262, 25, 'La Mata de Pinyana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14263, 25, 'Montmagastre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14264, 25, 'Orden'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14265, 25, 'El Vilet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14266, 25, 'Els Hostalets-Ribera Urgellet-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14267, 25, 'Baldomar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14268, 25, 'Montsonis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14269, 25, 'Anfesta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14270, 25, 'Cabestany'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14271, 25, 'Bressui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14272, 25, 'Isavarre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14273, 25, 'El Pujal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14274, 25, 'Pontaut'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14275, 25, 'Gotarta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14276, 25, 'Alta-Riba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14277, 25, 'Santa Maria Meia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14278, 25, 'Tordera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14279, 25, 'Plandogau'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14280, 25, 'Guarda-Si-Venes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14281, 25, 'Politg'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14282, 25, 'Boldis Sobira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14283, 25, 'Aineto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14284, 25, 'Escos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14285, 25, 'Mencui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14286, 25, 'Cardet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14287, 25, 'Coll'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14288, 25, 'Perves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14289, 25, 'Sisquer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14290, 25, 'Santa Creu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14291, 25, 'Erdo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14292, 25, 'Es Bordes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14293, 25, 'Buira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14294, 25, 'Estavill'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14295, 25, 'Castellestao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14296, 25, 'La Clua Daguilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14297, 25, 'L''ametlla-Montoliu de Segarra-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14298, 25, 'El Pont D''orrit'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14299, 25, 'La Llena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14300, 25, 'Estaron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14301, 25, 'Baixos de Calbinya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14302, 25, 'Vilagrasseta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14303, 25, 'Serradell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14304, 25, 'Torallola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14305, 25, 'Orted'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14306, 25, 'Montagut'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14307, 25, 'Mas del Lleo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14308, 25, 'Comiols'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14309, 25, 'Folquer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14310, 25, 'Marcovau'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14311, 25, 'Argentera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14312, 25, 'Boada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14313, 25, 'Sant Josep de Fontdepou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14314, 25, 'La Maana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14315, 25, 'Monestir D''avellanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14316, 25, 'Sant Jordi de Moller'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14317, 25, 'Beders'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14318, 25, 'Olia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14319, 25, 'Pedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14320, 25, 'Santa Eugenia Nerella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14321, 25, 'Santa Magdalena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14322, 25, 'Reixac'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14323, 25, 'Malgrat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14324, 25, 'Pomar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14325, 25, 'Seana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14326, 25, 'Montale'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14327, 25, 'Ballestar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14328, 25, 'El Castell del Remei'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14329, 25, 'Els Falcons'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14330, 25, 'L''albages'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14331, 25, 'Palau'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14332, 25, 'Pallerols'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14333, 25, 'Puig'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14334, 25, 'Sant Cristofol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14335, 25, 'Sant Marti'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14336, 25, 'La Serra -La Baronia de Rialb-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14337, 25, 'La Torra -La Baronia de Rialb-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14338, 25, 'Vilaplana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14339, 25, 'Mirambell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14340, 25, 'Lloberola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14341, 25, 'Les Anoves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14342, 25, 'El Castell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14343, 25, 'Claret'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14344, 25, 'Cosco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14345, 25, 'Cortiuda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14346, 25, 'Castellebre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14347, 25, 'Matamargo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14348, 25, 'Sant Just D''ardevol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14349, 25, 'Miralpeix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14350, 25, 'Claret'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14351, 25, 'Fontanet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14352, 25, 'Llanera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14353, 25, 'Sant Serni de Llanera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14354, 25, 'Vallferosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14355, 25, 'Sarais'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14356, 25, 'Abella D''adons'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14357, 25, 'Adons'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14358, 25, 'Casos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14359, 25, 'Castello de Tor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14360, 25, 'Erta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14361, 25, 'Irgo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14362, 25, 'Peranera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14363, 25, 'La Baronia de Rialb'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14364, 25, 'Sarroqueta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14365, 25, 'La Bastida D''ortons'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14366, 25, 'El Ges'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14367, 25, 'Cava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14368, 25, 'Sallent Dorganya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14369, 25, 'Valldarques'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14370, 25, 'Canelles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14371, 25, 'Llobera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14372, 25, 'Perles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14373, 25, 'La Vall del Mig'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14374, 25, 'Avellanet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14375, 25, 'Canturri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14376, 25, 'Carmeniu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14377, 25, 'Cassovall'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14378, 25, 'Les Eres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14379, 25, 'Sant Joan de L''erm'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14380, 25, 'Saulet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14381, 25, 'Sallent-Monferrer I Castellbo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14382, 25, 'Sendes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14383, 25, 'Seix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14384, 25, 'Solanell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14385, 25, 'Turbias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14386, 25, 'Navines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14387, 25, 'Tora de Tost'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14388, 25, 'Os de Civis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14389, 25, 'Sant Antoni'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14390, 25, 'Castellas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14391, 25, 'Bellpui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14392, 25, 'Biscarbo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14393, 25, 'Junyent'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14394, 25, 'Miravall'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14395, 25, 'Trejuvell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14396, 25, 'Colldarnart'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14397, 25, 'Ceuro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14398, 25, 'Clara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14399, 25, 'Clariana de Cardener'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14400, 25, 'Hortoneda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14401, 25, 'Sant Just Joval'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14402, 25, 'Sant Pon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14403, 25, 'Sisquer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14404, 25, 'Castelltort'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14405, 25, 'La Corriu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14406, 25, 'Guixers'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14407, 25, 'Montcalb'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14408, 25, 'Montpol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14409, 25, 'Timoneda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14410, 25, 'Els Torrents'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14411, 25, 'Peracamps'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14412, 25, 'Torredenago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14413, 25, 'Besora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14414, 25, 'Busa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14415, 25, 'Les Cases de Posada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14416, 25, 'Linya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14417, 25, 'Pegueroles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14418, 25, 'La Selva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14419, 25, 'La Valldan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14420, 25, 'Brics'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14421, 25, 'El Castellvell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14422, 25, 'Olius'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14423, 25, 'Madrona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14424, 25, 'Mirave'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14425, 25, 'Pinell de Solsones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14426, 25, 'Sallent -Pinell de Solsones-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14427, 25, 'Freixinet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14428, 25, 'Riner'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14429, 25, 'Santasusagna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14430, 25, 'Su'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14431, 25, 'Tor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14432, 25, 'Portillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14433, 25, 'Ginestarre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14434, 25, 'Glorieta Montesclado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14435, 25, 'Burgo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14436, 25, 'Dorve'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14437, 25, 'Llavorre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14438, 25, 'Lleret'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14439, 25, 'Romadriu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14440, 25, 'Sant Roma de Tavernoles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14441, 25, 'Riudovelles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14442, 25, 'La Rua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14443, 25, 'Ancs'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14444, 25, 'Balestui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14445, 25, 'Bresca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14446, 25, 'Buseu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14447, 25, 'El Comte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14448, 25, 'Cortscastell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14449, 25, 'Enseu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14450, 25, 'Mentui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14451, 25, 'Peracal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14452, 25, 'Pujol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14453, 25, 'Sellui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14454, 25, 'Useu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14455, 25, 'El Meull'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14456, 25, 'Puigmaana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14457, 25, 'Vilamolat de Mur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14458, 25, 'Mata-Solana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14459, 25, 'Mereia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14460, 25, 'Perolet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14461, 25, 'Tolo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14462, 25, 'Llorda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14463, 25, 'Mas de Sant Marti'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14464, 25, 'Siall'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14465, 25, 'El Mas de Solduga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14466, 25, 'Rivert'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14467, 25, 'Alsamora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14468, 25, 'Beniure'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14469, 25, 'Castellnou de Montsec'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14470, 25, 'Estorm'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14471, 25, 'Moro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14472, 25, 'Sant Esteve de la Sarga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14473, 25, 'La Torre D''amargos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14474, 25, 'Avellanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14475, 25, 'La Bastida de Bellera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14476, 25, 'Sas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14477, 25, 'Benes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14478, 25, 'Castellnou D''avellanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14479, 25, 'Manyanet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14480, 25, 'El Mensull'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14481, 25, 'Santa Coloma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14482, 25, 'Sentis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14483, 25, 'Vilella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14484, 25, 'Burguet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14485, 25, 'Cadolla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14486, 25, 'Cervoles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14487, 25, 'Laren'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14488, 25, 'Naens'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14489, 25, 'Puigcerver'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14490, 25, 'Reguard'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14491, 25, 'Antist'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14492, 25, 'Bretui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14493, 25, 'Claramunt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14494, 25, 'Claret'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14495, 25, 'Eroles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14496, 25, 'Figols Conca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14497, 25, 'Gurp'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14498, 25, 'Puigverd Talarn'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14499, 25, 'Sant Adria Tendrui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14500, 25, 'Santa Engracia'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14501, 25, 'Tendrui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14502, 25, 'Begos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14503, 25, 'Benos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14504, 25, 'Bordius'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14505, 25, 'Campespin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14506, 25, 'Torreneral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14507, 25, 'Escarla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14508, 25, 'Espills'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14509, 25, 'Espluga de Serra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14510, 25, 'Esplugafreda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14511, 25, 'Tercui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14512, 25, 'La Clua -Artesa de Segre-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14513, 25, 'La Vall D''ariet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14514, 25, 'Els Masos de Milla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14515, 25, 'Anas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14516, 25, 'Cellers'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14517, 25, 'Castellar de Tost'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14518, 25, 'Forn I Caferna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14519, 25, 'Tora de Tost'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14520, 25, 'Arguestugues'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14521, 25, 'Montargull-La Vansa I Fornols-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14522, 25, 'Sorribes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14523, 25, 'Pampe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14524, 25, 'La Pedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14525, 25, 'Berros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14526, 25, 'Sant Sebastia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14527, 25, 'Collmorter'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14528, 25, 'Mur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14529, 25, 'Sensui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14530, 25, 'Clua Conca La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14531, 25, 'Llusa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14532, 25, 'Emball'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14533, 25, 'Casinhau'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14534, 25, 'Moron I Mola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14535, 25, 'Pradet-Eth'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14536, 25, 'Pursingles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14537, 25, 'Sant Joan de Toran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14538, 25, 'Pinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14539, 25, 'El Pi de Sant Just'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14540, 25, 'Llobera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14541, 25, 'Canalda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14542, 25, 'Malagarriga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14543, 25, 'Arduix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14544, 25, 'El Pont de Suert'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14545, 25, 'Lhostal Nou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14546, 25, 'Port del Comte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14547, 25, 'Llinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14548, 25, 'Trepadus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14549, 25, 'Les Cases de la Serra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14550, 25, 'Sant Mer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14551, 25, 'Utxesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14552, 25, 'Partida Grao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14553, 25, 'Vielha E Mijaran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14554, 25, 'Ribera D''urgellet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14555, 25, 'Partida de Rufea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14556, 25, 'Els Hostalets-Ribera D''ondara-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14557, 25, 'Arros -Esterri de Cardos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14558, 25, 'Montanuy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14559, 25, 'La Vall de Boi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14560, 25, 'La Vall de Boi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14561, 26, 'Aguilar del Rio Alhama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14562, 26, 'Albelda de Iregua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14563, 26, 'Alberite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14564, 26, 'Alcanadre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14565, 26, 'Aldeanueva de Ebro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14566, 26, 'Alesanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14567, 26, 'Alfaro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14568, 26, 'Anguciana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14569, 26, 'Arenzana de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14570, 26, 'Arnedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14571, 26, 'Ausejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14572, 26, 'Autol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14573, 26, 'Azofra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14574, 26, 'Badaran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14575, 26, 'Baos de Rio Tobia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14576, 26, 'Brias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14577, 26, 'Briones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14578, 26, 'Calahorra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14579, 26, 'Cardenas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14580, 26, 'Casalarreina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14581, 26, 'Cenicero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14582, 26, 'Cervera del Rio Alhama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14583, 26, 'Cuzcurrita de Rio Tiron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14584, 26, 'Fuenmayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14585, 26, 'Gimileo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14586, 26, 'Haro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14587, 26, 'Herramelluri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14588, 26, 'Hormilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14589, 26, 'Huercanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14590, 26, 'Leiva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14591, 26, 'Logroo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14592, 26, 'Najera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14593, 26, 'Nalda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14594, 26, 'Navarrete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14595, 26, 'Ochanduri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14596, 26, 'Ollauri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14597, 26, 'Pradejon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14598, 26, 'Quel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14599, 26, 'Rincon de Soto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14600, 26, 'Rodezno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14601, 26, 'San Asensio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14602, 26, 'Santo Domingo de la Calzada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14603, 26, 'San Vicente de la Sonsierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14604, 26, 'Tirgo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14605, 26, 'Tormantos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14606, 26, 'Torrecilla En Cameros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14607, 26, 'Torremontalbo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14608, 26, 'Tudelilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14609, 26, 'Uruuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14610, 26, 'Villamediana de Iregua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14611, 26, 'El Villar de Arnedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14612, 26, 'Arnedillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14613, 26, 'Arnedillo Balneario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14614, 26, 'Canillas de Rio Tuerto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14615, 26, 'Caas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14616, 26, 'Cornago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14617, 26, 'Entrena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14618, 26, 'Ezcaray'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14619, 26, 'Herce'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14620, 26, 'Igea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14621, 26, 'Lardero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14622, 26, 'Munilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14623, 26, 'Murillo de Rio Leza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14624, 26, 'Ojacastro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14625, 26, 'Santurde de Rioja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14626, 26, 'Santurdejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14627, 26, 'Santa Eulalia Bajera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14628, 26, 'Torrecilla Sobre Alesanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14629, 26, 'Valgaon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14630, 26, 'Villar de Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14631, 26, 'Enciso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14632, 26, 'Castaares de Rioja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14633, 26, 'Graon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14634, 26, 'Anguiano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14635, 26, 'Treviana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14636, 26, 'Bobadilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14637, 26, 'Matute'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14638, 26, 'Tobia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14639, 26, 'Baares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14640, 26, 'Hervias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14641, 26, 'Medrano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14642, 26, 'San Torcuato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14643, 26, 'Berceo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14644, 26, 'Estollo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14645, 26, 'San Millan de la Cogolla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14646, 26, 'Tricio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14647, 26, 'Abalos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14648, 26, 'Ortigosa de Cameros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14649, 26, 'El Rasillo de Cameros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14650, 26, 'Villanueva de Cameros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14651, 26, 'Corera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14652, 26, 'Galilea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14653, 26, 'El Redal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14654, 26, 'Hormilleja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14655, 26, 'Sorzano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14656, 26, 'Almarza de Cameros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14657, 26, 'Pinillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14658, 26, 'Villaverde de Rioja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14659, 26, 'Villoslada de Cameros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14660, 26, 'Brieva de Cameros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14661, 26, 'Canales de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14662, 26, 'Ledesma de la Cogolla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14663, 26, 'Mansilla de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14664, 26, 'Pedroso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14665, 26, 'Ventrosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14666, 26, 'Villavelayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14667, 26, 'Viniegra de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14668, 26, 'Viniegra de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14669, 26, 'Cihuri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14670, 26, 'Sajazarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14671, 26, 'Cordovin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14672, 26, 'Sojuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14673, 26, 'Leza de Rio Leza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14674, 26, 'Ribafrecha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14675, 26, 'Trevijano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14676, 26, 'Ajamil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14677, 26, 'Cabezon de Cameros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14678, 26, 'Jalon de Cameros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14679, 26, 'Laguna de Cameros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14680, 26, 'Muro En Cameros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14681, 26, 'Rabanera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14682, 26, 'San Roman de Cameros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14683, 26, 'Soto En Cameros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14684, 26, 'Terroba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14685, 26, 'Aleson'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14686, 26, 'Bezares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14687, 26, 'Camprovin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14688, 26, 'Castroviejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14689, 26, 'Manjarres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14690, 26, 'Santa Coloma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14691, 26, 'Cidamon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14692, 26, 'Zarraton'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14693, 26, 'Hornos de Moncalvillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14694, 26, 'Sotes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14695, 26, 'Ventosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14696, 26, 'Ciruea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14697, 26, 'Manzanares de Rioja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14698, 26, 'Villarta-Quintana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14699, 26, 'Ciriuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14700, 26, 'Gallinero de Rioja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14701, 26, 'Lumbreras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14702, 26, 'Nieva de Cameros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14703, 26, 'Agoncillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14704, 26, 'Venta Luz Lumbreras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14705, 26, 'Cabreton'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14706, 26, 'Rincon de Olivedo O Las Casas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14707, 26, 'Valverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14708, 26, 'Foncea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14709, 26, 'Fonzaleche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14710, 26, 'San Millan de Yecora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14711, 26, 'Villalba de Rioja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14712, 26, 'Villalobar de Rioja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14713, 26, 'Villaseca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14714, 26, 'Arrubal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14715, 26, 'Islallana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14716, 26, 'Viguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14717, 26, 'Bergasa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14718, 26, 'Los Molinos de Ocon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14719, 26, 'Muro de Aguas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14720, 26, 'Villarroya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14721, 26, 'Nestares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14722, 26, 'Pradillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14723, 26, 'Arenzana de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14724, 26, 'Villarejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14725, 26, 'Gravalos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14726, 26, 'Prejano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14727, 26, 'Clavijo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14728, 26, 'El Cortijo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14729, 26, 'Gallinero de Cameros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14730, 26, 'Lagunilla del Jubera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14731, 26, 'Ventas Blancas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14732, 26, 'La Union de Los Tres Ejercitos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14733, 26, 'Santa Engracia del Jubera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14734, 26, 'Ventas del Bao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14735, 26, 'Rivas de Tereso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14736, 26, 'Valdeperillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14737, 26, 'Morales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14738, 26, 'Corporales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14739, 26, 'Ocon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14740, 26, 'Baos de Rioja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14741, 26, 'Daroca de Rioja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14742, 26, 'Zorraquin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14743, 26, 'Santa Eulalia Somera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14744, 26, 'Quintanar de Rioja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14745, 26, 'Castilseco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14746, 26, 'Cellorigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14747, 26, 'Galbarruli'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14748, 26, 'Pajares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14749, 26, 'San Andres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14750, 26, 'Montemediano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14751, 26, 'Valdegutur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14752, 26, 'Valdemadera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14753, 26, 'Navajun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14754, 26, 'Jubera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14755, 26, 'Hornillos de Cameros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14756, 26, 'Murillo de Calahorra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14757, 26, 'Inestrillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14758, 26, 'Torre En Cameros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14759, 26, 'Aldeanueva de Cameros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14760, 26, 'Aldealobos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14761, 26, 'Pealoscintos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14762, 26, 'Pipaona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14763, 26, 'Las Ruedas de Ocon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14764, 26, 'Santa Lucia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14765, 26, 'Ambas Aguas O Entrambas Aguas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14766, 26, 'Amunartia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14767, 26, 'Arviza O Arvizabarrena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14768, 26, 'Ayabarrena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14769, 26, 'Azarrulla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14770, 26, 'Bergasillas Somera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14771, 26, 'Bergasillas Somera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14772, 26, 'Bucesta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14773, 26, 'Carbonera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14774, 26, 'Casas Blancas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14775, 26, 'Castaares de Las Cuevas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14776, 26, 'Cuzcurritilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14777, 26, 'La Estacion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14778, 26, 'El Horcajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14779, 26, 'Larriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14780, 26, 'Mahave'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14781, 26, 'Oteruelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14782, 26, 'Panzares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14783, 26, 'Pazuengos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14784, 26, 'Pecia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14785, 26, 'Posadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14786, 26, 'Puente Madre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14787, 26, 'Quintana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14788, 26, 'Recajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14789, 26, 'Ribabellosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14790, 26, 'El Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14791, 26, 'Robres del Castillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14792, 26, 'San Anton'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14793, 26, 'Santo Asensio de Los Cantos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14794, 26, 'San Bartolome'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14795, 26, 'San Felices'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14796, 26, 'San Martin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14797, 26, 'San Vicente -Robres Castillo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14798, 26, 'Santa Cecilia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14799, 26, 'Santa Maria En Cameros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14800, 26, 'Santa Marina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14801, 26, 'El Sequero Agoncillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14802, 26, 'Somalo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14803, 26, 'Tabladas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14804, 26, 'Tondeluna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14805, 26, 'Torremua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14806, 26, 'Ulizarna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14807, 26, 'Urdanta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14808, 26, 'Uyarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14809, 26, 'Vadillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14810, 26, 'Varea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14811, 26, 'Velasco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14812, 26, 'Velilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14813, 26, 'El Villar -Enciso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14814, 26, 'Zaldierna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14815, 26, 'Zarzosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14816, 26, 'Zenzano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14817, 26, 'Peroblasco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14818, 26, 'Las Ruedas de Enciso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14819, 26, 'Casas Blancas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14820, 26, 'La Pineda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14821, 27, 'Abadin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14822, 27, 'Ferreria -O Incio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14823, 27, 'Baralla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14824, 27, 'Becerrea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14825, 27, 'Boveda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14826, 27, 'Burela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14827, 27, 'Castroverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14828, 27, 'Cervo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14829, 27, 'Chantada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14830, 27, 'Devesa -Santa Olaia Ribadeo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14831, 27, 'Escairon -O Saviao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14832, 27, 'Fazouro -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14833, 27, 'Ferreira -Sta.Maria Valadouro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14834, 27, 'Ferreira de Panton-Santa Maria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14835, 27, 'A Fonsagrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14836, 27, 'Foz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14837, 27, 'Gomean -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14838, 27, 'Guitiriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14839, 27, 'Santa Cruz Incio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14840, 27, 'Xove'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14841, 27, 'Lugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14842, 27, 'Mondoedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14843, 27, 'Monforte de Lemos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14844, 27, 'As Nogais'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14845, 27, 'Ourol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14846, 27, 'Puebla San Xulian -S. Xulian-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14847, 27, 'Quiroga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14848, 27, 'Rabade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14849, 27, 'Ribadeo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14850, 27, 'San Clodio -Ribas de Sil-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14851, 27, 'San Cibrao -Cervo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14852, 27, 'San Cosme de Barreiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14853, 27, 'San Miguel de Reinante-S.Migue'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14854, 27, 'Samos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14855, 27, 'Sarria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14856, 27, 'Vilalba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14857, 27, 'Vilanova -Lourenza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14858, 27, 'Viveiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14859, 27, 'Puebla de Parga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14860, 27, 'Celtigos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14861, 27, 'Taboada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14862, 27, 'Chao -Xermade-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14863, 27, 'Muras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14864, 27, 'Xermade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14865, 27, 'Guntin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14866, 27, 'Monterroso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14867, 27, 'Palas de Rei'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14868, 27, 'Baamonde -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14869, 27, 'Begonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14870, 27, 'Ribeiras de Lea -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14871, 27, 'Castro de Rei'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14872, 27, 'Meira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14873, 27, 'A Pontenova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14874, 27, 'As Rodrigas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14875, 27, 'A Pastoriza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14876, 27, 'Pacios -Paradela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14877, 27, 'Triacastela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14878, 27, 'Feira Do Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14879, 27, 'O Vicedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14880, 27, 'Laxosa -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14881, 27, 'Pedrafita Do Cebreiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14882, 27, 'Casanova -Roupar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14883, 27, 'Trabada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14884, 27, 'O Corgo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14885, 27, 'A Seara -Alfoz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14886, 27, 'Sober'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14887, 27, 'Portomarin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14888, 27, 'Nadela -Pena-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14889, 27, 'Seoane -Barreiros-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14890, 27, 'Vilamar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14891, 27, 'Barrela -Carballedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14892, 27, 'Amedin-Regueiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14893, 27, 'Folgoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14894, 27, 'Friol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14895, 27, 'Navia de Suarna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14896, 27, 'Outeiro de Rei -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14897, 27, 'San Roman -Cervantes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14898, 27, 'Moman -San Mamed-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14899, 27, 'Castro -Torre-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14900, 27, 'Triaba -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14901, 27, 'A Pobra de Brollon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14902, 27, 'O Cadavo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14903, 27, 'A Igrexa-Lourenza San Adriano-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14904, 27, 'A Igrexa -Lourenza Santo Tome-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14905, 27, 'Antas de Ulla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14906, 27, 'Mosteiro -San Salvador Pol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14907, 27, 'A Currada -Ribadeo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14908, 27, 'Salcedo -Ribadeo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14909, 27, 'Arneiro -Cospeito-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14910, 27, 'Muimenta -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14911, 27, 'Castroncan -Santa Marta-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14912, 27, 'Renche -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14913, 27, 'Chao de Pousadoiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14914, 27, 'O Santo Estevo -A Pontenova-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14915, 27, 'Santalla -A Pontenova-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14916, 27, 'Toimil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14917, 27, 'Vilaronte -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14918, 27, 'Conforto -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14919, 27, 'Barbadelo-Sarria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14920, 27, 'Escardel -Gomean-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14921, 27, 'A Fontaneira -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14922, 27, 'A Airexa -Gundivos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14923, 27, 'Martian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14924, 27, 'Muxueira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14925, 27, 'Outeiro -Santaballa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14926, 27, 'O Vilar -Trabada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14927, 27, 'Merille -Santa Eulalia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14928, 27, 'A Volta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14929, 27, 'Carretera -Trobo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14930, 27, 'Goiriz Vilalba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14931, 27, 'A Lagoa -Xermade-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14932, 27, 'Rosende -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14933, 27, 'Val -O Incio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14934, 27, 'Marei -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14935, 27, 'Carrizo -Vilalba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14936, 27, 'Santo Estevo -Vilalba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14937, 27, 'Doncos -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14938, 27, 'Noceda -San Xoan As Nogais-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14939, 27, 'Vilaseor -Castro de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14940, 27, 'Bretoa -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14941, 27, 'O Chao Da Aldea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14942, 27, 'O Carme -Ourol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14943, 27, 'A Igrexa -Xerdiz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14944, 27, 'Negueira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14945, 27, 'O Barredal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14946, 27, 'Carpaceira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14947, 27, 'A Ponte -Cubelas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14948, 27, 'Reme de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14949, 27, 'Remourelle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14950, 27, 'San Vicente -Ribadeo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14951, 27, 'Sendin -Ribadeo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14952, 27, 'A Torre -Vilaosende-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14953, 27, 'O Souto Novo -Foz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14954, 27, 'A Orrea -Santa Comba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14955, 27, 'O Agro -Ourol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14956, 27, 'A Igrexa -Ambosores-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14957, 27, 'Penabade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14958, 27, 'Sabugueiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14959, 27, 'O Vilario -Ourol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14960, 27, 'Adromar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14961, 27, 'O Alto -A Pastoriza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14962, 27, 'O Barreiro -Ubeda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14963, 27, 'Celeiro de Mariaos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14964, 27, 'A Igrexa -A Aguarda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14965, 27, 'Loboso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14966, 27, 'Lodas -A Pastoriza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14967, 27, 'Alvare -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14968, 27, 'O Melle -A Pastoriza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14969, 27, 'Montouto -A Pastoriza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14970, 27, 'Os Vias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14971, 27, 'A Rebolada -A Pastoriza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14972, 27, 'Requian -A Pastoriza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14973, 27, 'Sa -A Pastoriza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14974, 27, 'Fomia -O Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14975, 27, 'A Igrexa -Reigosa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14976, 27, 'O Mosteiro -O Vicedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14977, 27, 'San Roque -O Vicedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14978, 27, 'Temes -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14979, 27, 'Gondan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14980, 27, 'A Rilleira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14981, 27, 'O Corbeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14982, 27, 'Vilamartin P.-S.Xoan Degolado-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14983, 27, 'Vilamartin Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14984, 27, 'Toxeiras -Viveiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14985, 27, 'A Abelleira -Viveiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14986, 27, 'Santo Andre de Boimente -S.A.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14987, 27, 'Calvoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14988, 27, 'Cota -San Martin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14989, 27, 'Cima de Vila -Friol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14990, 27, 'Sobrado -Viveiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14991, 27, 'Quinta -Friol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14992, 27, 'O Valado -Valcarria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14993, 27, 'O Vilar -Ousa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14994, 27, 'Vilar -Galdo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14995, 27, 'Coto -O Corgo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14996, 27, 'Chao de Bravos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14997, 27, 'Paradela -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14998, 27, 'A Vacariza -O Corgo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (14999, 27, 'Cendoi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15000, 27, 'Moscan'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15001, 27, 'Vilar -O Paramo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15002, 27, 'As Acernadas -Alfoz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15003, 27, 'Cadeirido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15004, 27, 'O Chao -Alfoz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15005, 27, 'Graanova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15006, 27, 'Umeiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15007, 27, 'A Igrexa -As Oiras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15008, 27, 'Bagoi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15009, 27, 'A Bailada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15010, 27, 'Barbeito -Alfoz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15011, 27, 'Hedreira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15012, 27, 'Plazuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15013, 27, 'Saamil -Begonte-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15014, 27, 'Santa Comba -Castro de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15015, 27, 'Aspai -San Cipriano-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15016, 27, 'Barrio de Baixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15017, 27, 'Candai de Baixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15018, 27, 'Cabadas -Outeiro de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15019, 27, 'Cova -O Paramo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15020, 27, 'Furco -San Gregorio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15021, 27, 'Gondai'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15022, 27, 'Iglesia Outeiro Rei'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15023, 27, 'Lobagueira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15024, 27, 'Martul -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15025, 27, 'Milleiros -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15026, 27, 'Outeiro -Friolfe-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15027, 27, 'Pacios -Carballedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15028, 27, 'Paredes -O Paramo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15029, 27, 'Quintela -Pieiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15030, 27, 'Reboreda -Outeiro de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15031, 27, 'Riveiria -Cova-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15032, 27, 'Rubias -Carballedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15033, 27, 'San Mamede -Carballedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15034, 27, 'Santa Cristina -Carballedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15035, 27, 'Seixas -Duancos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15036, 27, 'Tolda -Carballedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15037, 27, 'Vicinte -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15038, 27, 'Vilaquinte -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15039, 27, 'Vilarmosteiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15040, 27, 'Lavandeira -Negueira de Muiz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15041, 27, 'Ouviao -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15042, 27, 'Vilaseca -Negueira de Muiz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15043, 27, 'Acebedo -Guitiriz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15044, 27, 'Agrua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15045, 27, 'Bustelo -Negueira de Muiz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15046, 27, 'Carretera -Guitiriz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15047, 27, 'O Chao -Foz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15048, 27, 'Doncide'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15049, 27, 'Ferreiros -Santo Andre-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15050, 27, 'O Pazo -O Vicedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15051, 27, 'San Acisclo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15052, 27, 'Santa Marta -Friol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15053, 27, 'Trasmonte -Mondoedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15054, 27, 'Ver -Foz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15055, 27, 'Vilarchan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15056, 27, 'Vilasuso -O Vicedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15057, 27, 'As Arriras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15058, 27, 'Hermunde -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15059, 27, 'Iglesia -Duancos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15060, 27, 'Pidre -A Pastoriza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15061, 27, 'Campo Do Rollo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15062, 27, 'Seixosmil -San Isidro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15063, 27, 'Veiga Guntin Pallares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15064, 27, 'Vilar de Mouros -Meira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15065, 27, 'A Abelaira -A Pastoriza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15066, 27, 'O Barral -Mondoedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15067, 27, 'Carreiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15068, 27, 'A Corota'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15069, 27, 'Eirexe -Monte de Meda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15070, 27, 'Laia -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15071, 27, 'A Louseira -Meira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15072, 27, 'San Martin de Lua-San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15073, 27, 'Maceda -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15074, 27, 'Abesada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15075, 27, 'O Acevo -A Fonsagrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15076, 27, 'Baltar -Begonte-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15077, 27, 'Barbeitos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15078, 27, 'Buide'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15079, 27, 'Campo Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15080, 27, 'Campo Ribadeo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15081, 27, 'Castillon -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15082, 27, 'O Castro Da Igrexa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15083, 27, 'Eirexalba -Santo Estevo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15084, 27, 'Cerredo -A Fonsagrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15085, 27, 'Dontide'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15086, 27, 'Xesta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15087, 27, 'Monteseiro -San Bartolo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15088, 27, 'Montouto -A Fonsagrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15089, 27, 'Laiosa -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15090, 27, 'Ponte -Uriz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15091, 27, 'O Portal -Ourol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15092, 27, 'Rinlo -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15093, 27, 'Vilarmean'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15094, 27, 'Castro Carballedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15095, 27, 'A Cazolga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15096, 27, 'A Covela -Lourenza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15097, 27, 'A Igrexa -Cabanas Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15098, 27, 'A Insua -Barreiros-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15099, 27, 'Oural -Lourenza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15100, 27, 'Castelo -San Salvador Outeiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15101, 27, 'Peroxa -Outeiro de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15102, 27, 'Perra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15103, 27, 'Caboi -San Martin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15104, 27, 'A Lastra -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15105, 27, 'Cruceiro -Abadin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15106, 27, 'Pereira -A Pobra de Brollon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15107, 27, 'Sobrado -Baralla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15108, 27, 'Oural -Sarria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15109, 27, 'Veiga Da Acea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15110, 27, 'Meson -Coea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15111, 27, 'As Lobeiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15112, 27, 'Labrada -A Pobra de Brollon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15113, 27, 'O Chao -O Vicedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15114, 27, 'Campo -Bendia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15115, 27, 'Besteburiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15116, 27, 'Casti'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15117, 27, 'Rubian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15118, 27, 'A Igrexa -Vilaforman-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15119, 27, 'A Igrexa -Sante-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15120, 27, 'Basilias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15121, 27, 'Barral -Labrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15122, 27, 'Corral Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15123, 27, 'A Pena -Cervo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15124, 27, 'Calde -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15125, 27, 'Teixeiro Lugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15126, 27, 'Ribas Pequenas -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15127, 27, 'Campodola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15128, 27, 'San Miguel de Montefurado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15129, 27, 'Pacios Da Serra -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15130, 27, 'A Rega -Muras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15131, 27, 'Debodas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15132, 27, 'Casavella Muras Muras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15133, 27, 'O Castieiro -Xermade-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15134, 27, 'A Ladrela -Xermade-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15135, 27, 'Castrolazaro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15136, 27, 'San Mamede -Portomarin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15137, 27, 'Vilar de Donas -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15138, 27, 'Valos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15139, 27, 'Manan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15140, 27, 'Baxan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15141, 27, 'Vilalba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15142, 27, 'Vilaouruz -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15143, 27, 'Vilacha Becerrea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15144, 27, 'Cereixal -San Xose-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15145, 27, 'San Martin Da Ribeira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15146, 27, 'Barcias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15147, 27, 'A Airexa -Freixo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15148, 27, 'A Airexa -Pieira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15149, 27, 'Pacios -Pieira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15150, 27, 'Sonan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15151, 27, 'Estrada -Monforte de Lemos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15152, 27, 'Pozas -Monforte de Lemos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15153, 27, 'O Sisto -Foz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15154, 27, 'Outeiro-Saboleiro-Tellado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15155, 27, 'O Cargadoiro -Cabanas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15156, 27, 'A Silvosa -O Valadouro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15157, 27, 'Noceda -Ribadeo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15158, 27, 'Santo Tome -Outeiro de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15159, 27, 'San Claudio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15160, 27, 'Vigo -Outeiro de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15161, 27, 'O Sucastro -Xermade-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15162, 27, 'Modia -Guitiriz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15163, 27, 'Portovello -Guitiriz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15164, 27, 'Ramos -Guitiriz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15165, 27, 'Figueirua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15166, 27, 'Santiago de Acevo -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15167, 27, 'Orosa -San Andres-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15168, 27, 'Quindous -San Xusto-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15169, 27, 'Padornelo -Cervantes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15170, 27, 'Calvario -Sarria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15171, 27, 'Tor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15172, 27, 'Torno -Ribas de Mio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15173, 27, 'A Lama -Pedrafita-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15174, 27, 'Currillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15175, 27, 'Carballido (Vilalba)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15176, 27, 'Albarello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15177, 27, 'Carelle Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15178, 27, 'A Cerveira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15179, 27, 'O Sanche -Xermade-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15180, 27, 'Abrairas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15181, 27, 'San Xulian -Palas de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15182, 27, 'Vilalence'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15183, 27, 'Castelo -Loureiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15184, 27, 'Pintin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15185, 27, 'Retizos -Sta. Maria Madanela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15186, 27, 'Martin -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15187, 27, 'A Palloza -Vilalba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15188, 27, 'San Vicente -Argozon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15189, 27, 'San Miguel -Chantada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15190, 27, 'Limion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15191, 27, 'Vilarmide -O Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15192, 27, 'A Igrexa -Viveiron-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15193, 27, 'Rua -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15194, 27, 'Lamas de Campos -San Roque-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15195, 27, 'O Fondo Da Vila -Mondoedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15196, 27, 'Estelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15197, 27, 'Vilares -Baralla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15198, 27, 'Chaio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15199, 27, 'Presa Boa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15200, 27, 'Vilalpape -San Bartolomeo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15201, 27, 'Pesqueiras -Panton-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15202, 27, 'O Barreal -Ribeiras de Mio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15203, 27, 'Graa -Buriz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15204, 27, 'Xunto A Igrexa -Guitiriz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15205, 27, 'Vilares -San Vicente-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15206, 27, 'Palacio -Sarria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15207, 27, 'Romeo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15208, 27, 'A Degrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15209, 27, 'Albaron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15210, 27, 'Fonte Vila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15211, 27, 'Cubelo -Pacios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15212, 27, 'Vilaluz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15213, 27, 'Bogo -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15214, 27, 'Vilarxubin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15215, 27, 'Os Teixedais'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15216, 27, 'Porto Ribadeo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15217, 27, 'Paradavella -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15218, 27, 'Biville -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15219, 27, 'Pieira -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15220, 27, 'Campo Puebla Brollon Veiga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15221, 27, 'Almuia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15222, 27, 'Tomade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15223, 27, 'Segade Lugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15224, 27, 'Marce -Panton-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15225, 27, 'Freixido -O Valadouro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15226, 27, 'Monte -Mos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15227, 27, 'Seceda -San Silvestre-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15228, 27, 'O Campo -Ferreiros-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15229, 27, 'Santa Cristina -Antas de Ulla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15230, 27, 'O Castro Antas Ulla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15231, 27, 'Santa Maria -Antas de Ulla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15232, 27, 'Alvidron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15233, 27, 'San Mamede de Aguela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15234, 27, 'Suar -Antas de Ulla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15235, 27, 'Lebesende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15236, 27, 'Eirexe -Antas de Ulla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15237, 27, 'Lebruxo -Santo Tome-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15238, 27, 'Traspena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15239, 27, 'Cellan de Mosteiro -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15240, 27, 'Miranda -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15241, 27, 'Arxemil -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15242, 27, 'Vilacha -San Xulian-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15243, 27, 'Adai -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15244, 27, 'Pedrafita -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15245, 27, 'Suouteiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15246, 27, 'Campo Da Feira -Guimarei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15247, 27, 'San Martio -Condes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15248, 27, 'A Laxe -Friol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15249, 27, 'A Pereira -Carballo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15250, 27, 'A Porreira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15251, 27, 'Pedramaior'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15252, 27, 'O Carregal -Friol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15253, 27, 'A Cabana -Nodar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15254, 27, 'Samede -Friol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15255, 27, 'Tain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15256, 27, 'Laxes -Miraz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15257, 27, 'A Calle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15258, 27, 'Pacio -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15259, 27, 'Xia -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15260, 27, 'Campo Da Feira -Roimil-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15261, 27, 'As Laxes -Vilafiz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15262, 27, 'Pieiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15263, 27, 'Santa Euxea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15264, 27, 'Grolos -Santa Cruz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15265, 27, 'Lousada Guntin Pallares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15266, 27, 'Arriba -Guntin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15267, 27, 'Penela -Guntin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15268, 27, 'Terlama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15269, 27, 'Reboleira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15270, 27, 'Traslama Dos Ferreiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15271, 27, 'Guimil -Monterroso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15272, 27, 'Salgueiros -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15273, 27, 'Vilamaior -Monterroso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15274, 27, 'Ligonde -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15275, 27, 'Tarrio de Buxercos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15276, 27, 'Ferreira -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15277, 27, 'Aguas Santas -San Xurxo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15278, 27, 'Curbian -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15279, 27, 'Bruzos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15280, 27, 'Moredo -San Fiz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15281, 27, 'Cuia -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15282, 27, 'Pambre -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15283, 27, 'San Miguel -Palas de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15284, 27, 'Moimentos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15285, 27, 'San Vicente -Paradela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15286, 27, 'Aldosende -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15287, 27, 'Gonzar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15288, 27, 'Soengas de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15289, 27, 'Zoo -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15290, 27, 'Seteventos -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15291, 27, 'Reiriz -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15292, 27, 'Valdorraca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15293, 27, 'Currelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15294, 27, 'Seixo -Guitiriz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15295, 27, 'Airexe -Benade-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15296, 27, 'Labio -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15297, 27, 'Crecente Lugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15298, 27, 'Torible'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15299, 27, 'Seoane Lugo Alto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15300, 27, 'Ventosios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15301, 27, 'Raa Lugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15302, 27, 'Rioxoan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15303, 27, 'Ferreiros de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15304, 27, 'San Ciprian -Palas de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15305, 27, 'Vilameixe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15306, 27, 'Lexo -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15307, 27, 'Bouza -Xermar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15308, 27, 'Muios -Cospeito-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15309, 27, 'Vigo -Pol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15310, 27, 'Vilamea -Pol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15311, 27, 'Mostaz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15312, 27, 'Seoane -San Xoan de Folgoso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15313, 27, 'Loureiro -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15314, 27, 'Bendollo -Santabaia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15315, 27, 'Vilaster -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15316, 27, 'Naron -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15317, 27, 'Vilamaior -Guntin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15318, 27, 'Pedragosa -O Incio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15319, 27, 'Rubian de Cima -San Vicente-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15320, 27, 'Ponte de Louzara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15321, 27, 'Vilar Do Robledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15322, 27, 'Chelo -Samos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15323, 27, 'Trascastro -Samos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15324, 27, 'Paderne -Santo Estevo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15325, 27, 'Outeiro -Castroverde-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15326, 27, 'Vilabade -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15327, 27, 'Fornelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15328, 27, 'A Arnela -Alfoz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15329, 27, 'Andreade -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15330, 27, 'Bariz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15331, 27, 'Mosteirovello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15332, 27, 'Santa Maria -Samos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15333, 27, 'Vilamea -Quiroga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15334, 27, 'Besarredonda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15335, 27, 'Cruz de Outeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15336, 27, 'Foilebar -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15337, 27, 'San Eufrasio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15338, 27, 'Aldea -Ribas de Sil-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15339, 27, 'A Meda -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15340, 27, 'San Cibrao -Castroverde-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15341, 27, 'Bardaos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15342, 27, 'San Pedro -Baran-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15343, 27, 'Balsa -San Breixo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15344, 27, 'A Lama Da Vila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15345, 27, 'Rieiro -Abadin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15346, 27, 'As Bargaas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15347, 27, 'A Paiola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15348, 27, 'Belesar -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15349, 27, 'O Adro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15350, 27, 'Santiago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15351, 27, 'Campomaior -Vilalba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15352, 27, 'O Pendello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15353, 27, 'Ferreira -Vilalba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15354, 27, 'Santalla -Vilalba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15355, 27, 'Montaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15356, 27, 'Moreda -Vilalba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15357, 27, 'A Parrocha -Nete-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15358, 27, 'Carracedo -Vilalba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15359, 27, 'Atadoira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15360, 27, 'Regueirio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15361, 27, 'Grandela -Vilalba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15362, 27, 'Roman -Santa Eulalia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15363, 27, 'O Pazo -Samarugo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15364, 27, 'Casas Novas Vilalba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15365, 27, 'Carretera Vilalba Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15366, 27, 'Valado -Vilalba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15367, 27, 'Carballal -Vilapedre-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15368, 27, 'Aldea -Moman-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15369, 27, 'Costa -Cospeito-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15370, 27, 'A Casavella -Cazas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15371, 27, 'Lousada -San Andres-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15372, 27, 'O Seo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15373, 27, 'Abadin -Vilalba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15374, 27, 'Barredo Castroverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15375, 27, 'Pena -Santa Maria Madanela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15376, 27, 'O Campo Do Arco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15377, 27, 'Ferramulin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15378, 27, 'A Seara -Sta. Maria Magdalena-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15379, 27, 'Parte A'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15380, 27, 'O Codeso -Xermade-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15381, 27, 'Xudan -Santa Maria Madanela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15382, 27, 'A Penela -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15383, 27, 'Peites -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15384, 27, 'Outeiro (Lugo)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15385, 27, 'Galieiro -Labrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15386, 27, 'Xere -Guntin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15387, 27, 'Pedraza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15388, 27, 'Barreiro -Ribadeo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15389, 27, 'San Xiao de Rubias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15390, 27, 'Fonteformosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15391, 27, 'Riocereixa -Sta. M. Magdalena-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15392, 27, 'Veiga de Braas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15393, 27, 'Zanfoga -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15394, 27, 'Pacios -San Lourenzo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15395, 27, 'Padornelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15396, 27, 'Louzarela -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15397, 27, 'Quinta -Santa Eulalia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15398, 27, 'Vilamane -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15399, 27, 'Vilar de Frades'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15400, 27, 'Fontaron -Sancti Spiritus-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15401, 27, 'Eixibron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15402, 27, 'Guilfrey -Santa Eulalia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15403, 27, 'Pradela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15404, 27, 'Robledo -Donis-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15405, 27, 'Vilanova -Cervantes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15406, 27, 'Vilar de Mouros -Cervantes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15407, 27, 'A Ponte de Doiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15408, 27, 'Vilaspasantes -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15409, 27, 'Noceda-San Pedro de Cervantes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15410, 27, 'Vilarello Da Irexa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15411, 27, 'Vilanova Do Pedregal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15412, 27, 'Vilarnovo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15413, 27, 'Donis -San Fiz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15414, 27, 'Noceda -San Pedro de Folgoso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15415, 27, 'Paderne -Folgoso Do Courel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15416, 27, 'Queizan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15417, 27, 'Vallo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15418, 27, 'Covas-Mosteirin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15419, 27, 'Moia -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15420, 27, 'Paradela -Navia de Suarna-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15421, 27, 'Silvouta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15422, 27, 'Mosteiro -El Salvador Navia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15423, 27, 'Son'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15424, 27, 'Tores -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15425, 27, 'Ribeira -San Estebo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15426, 27, 'Camilo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15427, 27, 'Larxentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15428, 27, 'Murias -Navia de Suarna-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15429, 27, 'Rao -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15430, 27, 'A Burdalla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15431, 27, 'Albaredos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15432, 27, 'A Arribada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15433, 27, 'Corneas -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15434, 27, 'Sampaio -Baleira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15435, 27, 'Albaredo -Baleira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15436, 27, 'Cabreira -Baleira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15437, 27, 'Vilar -Cuia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15438, 27, 'Pacios -Sta. Maria Fonsagrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15439, 27, 'A Pereirua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15440, 27, 'A Veiga de Logares -S. Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15441, 27, 'O Ventorrillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15442, 27, 'San Martin de Arroxo-S.Martio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15443, 27, 'San Pedro -Rio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15444, 27, 'Vilabol de Suarna-Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15445, 27, 'Lamas de Moreira -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15446, 27, 'Carballido-S.Maria Fonsagrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15447, 27, 'Vilardiaz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15448, 27, 'Santo Andre -A Fonsagrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15449, 27, 'Maderne -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15450, 27, 'As Pozas -A Fonsagrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15451, 27, 'A Labiada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15452, 27, 'Vilarchao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15453, 27, 'Ouviaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15454, 27, 'Outariz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15455, 27, 'Santalla -Santalla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15456, 27, 'Os Vaos -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15457, 27, 'Galegos -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15458, 27, 'Ludeiro -Antas de Ulla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15459, 27, 'Gradoi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15460, 27, 'A Florida -Friol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15461, 27, 'A Castronela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15462, 27, 'Romariz -Guitiriz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15463, 27, 'Vilar -Poutomillos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15464, 27, 'Marcoi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15465, 27, 'Pena Lugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15466, 27, 'Outeiro -Boveda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15467, 27, 'Morgade -Carballedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15468, 27, 'Marrubio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15469, 27, 'Carballal -Folgoso Do Courel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15470, 27, 'Vilamor -San Vicente-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15471, 27, 'Esmoriz -San Xulian-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15472, 27, 'O Campo -Chantada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15473, 27, 'Esmeriz -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15474, 27, 'Outeiro -Mariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15475, 27, 'Lagoa -Chantada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15476, 27, 'Fiolleda -San Cosme-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15477, 27, 'Souto -Monforte de Lemos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15478, 27, 'Sindran -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15479, 27, 'Pacio Monforte Lemos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15480, 27, 'Amandi -Panton-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15481, 27, 'Budian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15482, 27, 'Parada Dos Montes -Santa Ines-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15483, 27, 'Vilacha -San Mamede-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15484, 27, 'Penadexo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15485, 27, 'Rio de Bois'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15486, 27, 'Vilar de Lor -San Xose-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15487, 27, 'Aldea -Encieira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15488, 27, 'Covas -Quiroga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15489, 27, 'Cereixido -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15490, 27, 'Vilarmel -San Lourenzo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15491, 27, 'Lama de Paio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15492, 27, 'A Broza -Santo Tome-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15493, 27, 'Segan de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15494, 27, 'A Pereira -O Saviao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15495, 27, 'San Vicente -O Saviao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15496, 27, 'O Priorato -O Saviao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15497, 27, 'Arxeriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15498, 27, 'Vilarreme'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15499, 27, 'Aiaz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15500, 27, 'Outeiro -Ousende-'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15501, 27, 'Rebordondiego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15502, 27, 'A Airexa -Lobios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15503, 27, 'Barreiros -Sober-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15504, 27, 'Vilacha -Sober-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15505, 27, 'Xian -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15506, 27, 'Souto -Boveda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15507, 27, 'O Vilar -Rio Barba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15508, 27, 'Suaxe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15509, 27, 'Toimil -Xove-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15510, 27, 'Bouzoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15511, 27, 'Churiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15512, 27, 'Vilauxe (Chantada)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15513, 27, 'Eirexe -Milleiros-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15514, 27, 'Mato -Monte-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15515, 27, 'Eirexe -Mourelos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15516, 27, 'Balsa Pequena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15517, 27, 'A Rigueira -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15518, 27, 'Castro Portela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15519, 27, 'O Loureiro -Xove-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15520, 27, 'As Penas Agudas -Xove-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15521, 27, 'Vilacha -Xove-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15522, 27, 'Vacariza -Abadin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15523, 27, 'Louxas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15524, 27, 'Soldon -Quiroga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15525, 27, 'Campo -Begonte-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15526, 27, 'Santa Marta -Begonte-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15527, 27, 'Visua -Santa Eufemia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15528, 27, 'Quetesende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15529, 27, 'Airexe -Trasliste-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15530, 27, 'Vilela -Ribadeo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15531, 27, 'Anzas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15532, 27, 'Paradapiol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15533, 27, 'Lamas -San Isidro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15534, 27, 'Toldaos -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15535, 27, 'Eirexe -Nogueira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15536, 27, 'Nullan -San Cosmede-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15537, 27, 'A Alence -Santa Lucia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15538, 27, 'Vilario -Silan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15539, 27, 'A Picheira -Silan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15540, 27, 'A Aspera -O Vicedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15541, 27, 'Alta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15542, 27, 'Bazar Lugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15543, 27, 'Bocamaos -San Xiao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15544, 27, 'Burgo Lugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15545, 27, 'Taboy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15546, 27, 'Casas Da Via-Fazai'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15547, 27, 'Conturiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15548, 27, 'Coeo -San Vicente-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15549, 27, 'Cuia Lugo Cuia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15550, 27, 'Esperante Lugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15551, 27, 'Gondar Lugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15552, 27, 'Lamas Lugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15553, 27, 'Monte Meda Lugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15554, 27, 'Recimil Lugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15555, 27, 'Santa Comba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15556, 27, 'Soar -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15557, 27, 'Bagueixos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15558, 27, 'Ramil Lugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15559, 27, 'Mos -San Xulian-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15560, 27, 'Barreiros-S.Cosme Castroverde-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15561, 27, 'Outeiro de Rei -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15562, 27, 'Cellan de Calvos-San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15563, 27, 'Espasande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15564, 27, 'A Frairia -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15565, 27, 'Goi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15566, 27, 'Masoucos -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15567, 27, 'Mirandela -Santo Andre-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15568, 27, 'Paramo -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15569, 27, 'Pereirama -San Xulian-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15570, 27, 'A Pumarega -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15571, 27, 'Riomol -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15572, 27, 'Seres -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15573, 27, 'Souto Castroverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15574, 27, 'Tordea -San Tome-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15575, 27, 'Uriz -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15576, 27, 'Vilalle -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15577, 27, 'Ferroi -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15578, 27, 'Francos -El Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15579, 27, 'Gomelle -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15580, 27, 'Lamela -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15581, 27, 'San Mamede -Guntin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15582, 27, 'San Cibrao -Guntin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15583, 27, 'Mosteiro -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15584, 27, 'Mougan -Santa Maria Madanela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15585, 27, 'San Roman'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15586, 27, 'Sirvian -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15587, 27, 'Vilamea -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15588, 27, 'Vilamerelle -San Vicente-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15589, 27, 'Villermao -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15590, 27, 'Zolle -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15591, 27, 'Bergazo -San Pedro Felix-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15592, 27, 'Cabreiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15593, 27, 'Quinte -Santa Eulalia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15594, 27, 'Donalbai -San Cristobo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15595, 27, 'Silvarrei -San Juan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15596, 27, 'Aranza -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15597, 27, 'Berselos -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15598, 27, 'Francos -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15599, 27, 'Guimarei'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15600, 27, 'San Martio -Baralla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15601, 27, 'Pacios -Santa Maria Baralla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15602, 27, 'Penarrubia -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15603, 27, 'Pol -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15604, 27, 'Pousada -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15605, 27, 'Recesende -San Cirilo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15606, 27, 'Riva de Neira -Santa Eulalia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15607, 27, 'Sixirei -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15608, 27, 'Teixeira -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15609, 27, 'Vale'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15610, 27, 'Vilachambre -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15611, 27, 'Vilarpunteiro -Santa Marta-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15612, 27, 'Vilartelin -Santa Eufemia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15613, 27, 'Agueira -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15614, 27, 'Armesto -San Roman-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15615, 27, 'Cascalla -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15616, 27, 'Ferreiros de Balboa-Sta.Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15617, 27, 'Furco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15618, 27, 'Guillen -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15619, 27, 'Morcelle -San Xulian-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15620, 27, 'Ouson -San Adriano-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15621, 27, 'Pando -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15622, 27, 'Sevane -San Xoan de Becerrea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15623, 27, 'Tortes -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15624, 27, 'Vilaiz -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15625, 27, 'Castelo -Cervantes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15626, 27, 'Guntin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15627, 27, 'San Pedro -Cervantes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15628, 27, 'Lamas -San Xiao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15629, 27, 'Pando (Cervantes)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15630, 27, 'Vilapun -Santa Comba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15631, 27, 'Vilasante -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15632, 27, 'Vilaver -San Xusto-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15633, 27, 'Castaedo -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15634, 27, 'Muis -San Xose-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15635, 27, 'Penamil -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15636, 27, 'Ribon -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15637, 27, 'Sebane -San Xoan de Navia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15638, 27, 'Quinta -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15639, 27, 'Santo Andre -Santo Andre-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15640, 27, 'Vilaicente -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15641, 27, 'Cebreiro -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15642, 27, 'Fonfria -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15643, 27, 'Hospital -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15644, 27, 'Lousada -San Vicente-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15645, 27, 'Veiga de Forcas -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15646, 27, 'Beascos -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15647, 27, 'San Salvador de Bubal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15648, 27, 'Bucios -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15649, 27, 'Cartelos -San Estevo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15650, 27, 'Erbedeiro -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15651, 27, 'Pradeda -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15652, 27, 'Chantada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15653, 27, 'Belesar -San Bartolomeu-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15654, 27, 'Muradelle -Sampaio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15655, 27, 'Fronton'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15656, 27, 'Seguin -Santo Andre-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15657, 27, 'Toldaos -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15658, 27, 'Tribas -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15659, 27, 'Vilamelle -San Cibrao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15660, 27, 'Chave -San Saturnino-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15661, 27, 'Diomondi -San Pelaxio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15662, 27, 'Fion(O Savi{Ao)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15663, 27, 'Frean -Santa Cecilia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15664, 27, 'Louredo -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15665, 27, 'Ousende -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15666, 27, 'Sobreda -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15667, 27, 'Vilacaiz -San Xulian-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15668, 27, 'Vilaesteva -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15669, 27, 'Vilatan -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15670, 27, 'Vilelos -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15671, 27, 'Xuvencos -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15672, 27, 'Doade -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15673, 27, 'Arxiz -San Paio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15674, 27, 'Buin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15675, 27, 'Castelo -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15676, 27, 'Frade -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15677, 27, 'Gondulfe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15678, 27, 'Friamonde -Insua-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15679, 27, 'Vilar -Insua-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15680, 27, 'Pieira -Santa Maria Taboada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15681, 27, 'Vilar de Cabalos -Santabaia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15682, 27, 'San Fiz -Antas de Ulla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15683, 27, 'Amoexa -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15684, 27, 'Fradegas -Antas de Ulla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15685, 27, 'Cibreiro -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15686, 27, 'Cutian -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15687, 27, 'Facha -San Xulian-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15688, 27, 'Peibas -San Lorenzo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15689, 27, 'O Rial'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15690, 27, 'Santiso -Santabaia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15691, 27, 'Vilanue -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15692, 27, 'Pardellas -Friol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15693, 27, 'San Cibrao -Friol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15694, 27, 'Seoane -San Xoan de Friol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15695, 27, 'Santa Maria -Lagostelle-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15696, 27, 'Guitiriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15697, 27, 'Cumbraos -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15698, 27, 'O Fente -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15699, 27, 'Fufin -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15700, 27, 'Gundin -San Cristovo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15701, 27, 'Leborei -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15702, 27, 'Marzan -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15703, 27, 'Milleiros -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15704, 27, 'San Lourenzo -Monterroso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15705, 27, 'Pol -San Cibrao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15706, 27, 'Sambreixo -Monterroso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15707, 27, 'O Bispo -Monterroso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15708, 27, 'Vilanova -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15709, 27, 'Viloide -San Cristovo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15710, 27, 'Fontecuberta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15711, 27, 'Lestedo(Palas Rei)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15712, 27, 'Mato -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15713, 27, 'Mosteiro(Palas de Rei)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15714, 27, 'Pidre -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15715, 27, 'San Xusto -Palas de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15716, 27, 'Sambreixo -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15717, 27, 'Vilarede'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15718, 27, 'A Braa -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15719, 27, 'Fonteo -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15720, 27, 'Pousada -San Lourenzo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15721, 27, 'Olleros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15722, 27, 'Cereixido -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15723, 27, 'Cuijas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15724, 27, 'Freixo -San Xulian-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15725, 27, 'Logares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15726, 27, 'Vilardongo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15727, 27, 'A Trapa -San Cibran-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15728, 27, 'O Trobo -Sta.Maria Fonsagrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15729, 27, 'San Pedro de Ernes -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15730, 27, 'Rio de Porto-S.Brais Barqueiri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15731, 27, 'Baltar -San Pedro Fiz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15732, 27, 'Penamazada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15733, 27, 'Cirio -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15734, 27, 'Vilamea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15735, 27, 'Navallos -San Pedro Ribeira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15736, 27, 'A Augaxosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15737, 27, 'O Vilar de Santiago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15738, 27, 'Freituxe -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15739, 27, 'Guntin -San Cristovo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15740, 27, 'Martin -San Cristovo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15741, 27, 'Remesar -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15742, 27, 'Eimer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15743, 27, 'Tuimil -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15744, 27, 'Xullan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15745, 27, 'Vilarbuxan -San Bartolomeo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15746, 27, 'Santa Eufemia -Folgoso Courel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15747, 27, 'Meiraos -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15748, 27, 'Teixeira -Folgoso Do Courel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15749, 27, 'Mercurin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15750, 27, 'Moreda -Folgoso Do Courel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15751, 27, 'Pieira -Folgoso Do Courel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15752, 27, 'Castelo -Santo Tome-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15753, 27, 'Goo -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15754, 27, 'Hospital -San Pedro Fiz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15755, 27, 'Pacios O Incio Pacios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15756, 27, 'Reboiro -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15757, 27, 'Rendar -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15758, 27, 'Trascastro -Santa Eulalia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15759, 27, 'Vilarxoan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15760, 27, 'Vilasouto -San Mamede-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15761, 27, 'Gullade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15762, 27, 'Pieira -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15763, 27, 'Reigada -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15764, 27, 'Valverde -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15765, 27, 'Castrosante -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15766, 27, 'Cereixa -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15767, 27, 'A Pobra de Brollon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15768, 27, 'Liares -San Cosme-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15769, 27, 'Pino -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15770, 27, 'Salcedo -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15771, 27, 'Bendillo -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15772, 27, 'Ponte Soldon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15773, 27, 'Encieira -Santa Isabel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15774, 27, 'Fisteus -San Mamede-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15775, 27, 'Hospital -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15776, 27, 'Anguieiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15777, 27, 'Centeais -Quiroga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15778, 27, 'Coballos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15779, 27, 'Nocedo -San Lourenzo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15780, 27, 'Parteme -Quiroga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15781, 27, 'Outeiro -Sta.Maria de Quiroga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15782, 27, 'Paradaseca -San Marcos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15783, 27, 'Sequeiros -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15784, 27, 'Vilanuide -San Antonio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15785, 27, 'Bustelo de Lor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15786, 27, 'Xestoso -Quiroga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15787, 27, 'Nogueira -Nosa Sra. Das Neves-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15788, 27, 'Rairos -Santa Lucia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15789, 27, 'Mourelle -O Corgo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15790, 27, 'Reinante-Praia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15791, 27, 'Reinante -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15792, 27, 'Cangas -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15793, 27, 'Nois -San Xiao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15794, 27, 'Santa Cecilia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15795, 27, 'Vilaosende -Santa Olaia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15796, 27, 'Fornea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15797, 27, 'Vilapena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15798, 27, 'Cerceda -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15799, 27, 'Lapio -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15800, 27, 'Armea -Lama-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15801, 27, 'Carracedo -San Vicente-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15802, 27, 'Galegos -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15803, 27, 'Lagos -Santa Eulalia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15804, 27, 'Lama -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15805, 27, 'Lancara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15806, 27, 'Monseiro -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15807, 27, 'Neira -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15808, 27, 'Vilafiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15809, 27, 'Ronfe -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15810, 27, 'Souto Lancara Souto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15811, 27, 'Toldaos -San Vicente-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15812, 27, 'Touville -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15813, 27, 'Vilaesteva -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15814, 27, 'Vilambran -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15815, 27, 'Vilouzan -San Estebo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15816, 27, 'Baran -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15817, 27, 'Cortes -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15818, 27, 'Ferreiros -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15819, 27, 'Francos -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15820, 27, 'Loio (Paradela)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15821, 27, 'Santa Cristina -Paradela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15822, 27, 'Santalla -Paradela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15823, 27, 'Suar -San Lorenzo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15824, 27, 'Vilaragunte -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15825, 27, 'Adai -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15826, 27, 'Gondrame -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15827, 27, 'Grallas -Santo Estebo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15828, 27, 'Pieiro -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15829, 27, 'Reascos -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15830, 27, 'Ribeira -San Mamede-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15831, 27, 'Saa -Santiago de O Paramo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15832, 27, 'San Andres Da Ribeira-S.Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15833, 27, 'Vilasante -Santa Cruz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15834, 27, 'Vileiriz -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15835, 27, 'Bagude -San Bartolomeu-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15836, 27, 'Leon -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15837, 27, 'Nespereira -San Ciprian-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15838, 27, 'Sabadelle -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15839, 27, 'Vilarbasin -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15840, 27, 'Estraxiz -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15841, 27, 'Formigueiros -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15842, 27, 'Freixo -San Silvestre-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15843, 27, 'Frollais -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15844, 27, 'Loureiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15845, 27, 'Lousada -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15846, 27, 'San Cristovo de Louzara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15847, 27, 'Montan -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15848, 27, 'Pascais -Santa Eulalia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15849, 27, 'San Cristovo Do Real'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15850, 27, 'San Martio Do Real'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15851, 27, 'Reiriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15852, 27, 'Romelle -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15853, 27, 'Santalla -San Xose-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15854, 27, 'Suide -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15855, 27, 'Teivilide -San Xiao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15856, 27, 'Castelo Dos Infantes-Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15857, 27, 'Corvelle -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15858, 27, 'Chanca -San Mamede-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15859, 27, 'Ferreiros -San Saturnino-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15860, 27, 'Frades'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15861, 27, 'Lier -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15862, 27, 'Lousadela -Santo Estevo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15863, 27, 'San Andres Paradela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15864, 27, 'Rubin -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15865, 27, 'San Antolin -Santa Eufemia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15866, 27, 'San Xulian -Sarria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15867, 27, 'Vilamaior -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15868, 27, 'Vilapedre Sarria Vilapedre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15869, 27, 'Cancelo -San Cristovo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15870, 27, 'Monte -Sta. Maria Triacastela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15871, 27, 'Cereixedo -Cervantes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15872, 27, 'Vilar (Cospeito)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15873, 27, 'Xustas -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15874, 27, 'Portocelo -San Tirso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15875, 27, 'Camporredondo -Baralla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15876, 27, 'Biduedo -Baralla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15877, 27, 'Furis de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15878, 27, 'Vilacote'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15879, 27, 'Outeiro Viveiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15880, 27, 'A Igrexa -Galdo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15881, 27, 'A Seara -Mondoedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15882, 27, 'Vilacemil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15883, 27, 'Pousa -A Pobra de Brollon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15884, 27, 'Guin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15885, 27, 'O Folgueiro -O Vicedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15886, 27, 'Penelas -Outeiro de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15887, 27, 'Vales -Boveda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15888, 27, 'Curro -Chantada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15889, 27, 'San Martin de Suarna-S.Martio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15890, 27, 'Seoane -A Fonsagrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15891, 27, 'Xegunde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15892, 27, 'Castelo Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15893, 27, 'Distriz -San Andres-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15894, 27, 'Fontes -Reigada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15895, 27, 'Gonta -Palas de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15896, 27, 'Saa -Palas de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15897, 27, 'Xestrar Palas Rei Carballal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15898, 27, 'San Vicente -Palas de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15899, 27, 'Barxamaior'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15900, 27, 'Seixo -Pedrafita Do Cebreiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15901, 27, 'Rubiais'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15902, 27, 'Cima de Vila -Pol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15903, 27, 'Vilaxuste -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15904, 27, 'Encima Da Vila -Meilan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15905, 27, 'Vilaseca -Riotorto-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15906, 27, 'Arxemil -Sober-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15907, 27, 'Horta -Vilalba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15908, 27, 'San Martio -Xermade-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15909, 27, 'Paredes -Antas de Ulla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15910, 27, 'Verin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15911, 27, 'Fontes -Becerrea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15912, 27, 'Bullan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15913, 27, 'Vilar de Cancelada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15914, 27, 'Mazaira -Carballedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15915, 27, 'Trasar de Carballo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15916, 27, 'Cela -Cervantes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15917, 27, 'Piornedo -Cervantes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15918, 27, 'Erosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15919, 27, 'Casteda -Chantada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15920, 27, 'Fondo de Vila -Sabadelle-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15921, 27, 'Guisande -Cospeito-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15922, 27, 'Costa Da Zapateira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15923, 27, 'Souto -Cereixido-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15924, 27, 'Moreira -A Fonsagrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15925, 27, 'Vilagocende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15926, 27, 'Vilamaior -Trobo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15927, 27, 'Louteiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15928, 27, 'Santa Maria -Pigara-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15929, 27, 'Lousadela -Guntin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15930, 27, 'Xubin -Guntin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15931, 27, 'Fontes -Caneda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15932, 27, 'Pereira -Pieira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15933, 27, 'Regueira -Monforte de Lemos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15934, 27, 'Lucencia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15935, 27, 'Montecalvo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15936, 27, 'Castelo -As Nogais-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15937, 27, 'Folloval'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15938, 27, 'Bargo -Panton-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15939, 27, 'Foxos -Pedrafita Do Cebreiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15940, 27, 'Santalla -Pedrafita Cebreiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15941, 27, 'Lousada -Portomarin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15942, 27, 'Telo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15943, 27, 'Piquin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15944, 27, 'O Arroxo -Sober-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15945, 27, 'Guntis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15946, 27, 'Carretera -Alba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15947, 27, 'Sar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15948, 27, 'Infesta -Pino-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15949, 27, 'Ferreirabella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15950, 27, 'Veiga -Outeiro de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15951, 27, 'Chaos -Viveiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15952, 27, 'Vilapol -Xove-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15953, 27, 'A Aldea de Abaixo -Xove-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15954, 27, 'O Alto de Lago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15955, 27, 'Toiriz -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15956, 27, 'Camba -Xove-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15957, 27, 'Toiral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15958, 27, 'Espiarcao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15959, 27, 'Paredes -Abadin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15960, 27, 'Zoan -Abadin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15961, 27, 'Faya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15962, 27, 'Agrela -Alfoz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15963, 27, 'Vilar -Pousada Baleira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15964, 27, 'Lamas -Baralla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15965, 27, 'Xunto A la Iglesia -Barreiros-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15966, 27, 'Insua -Begonte-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15967, 27, 'Senande -Begonte-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15968, 27, 'Vila Grande -Begonte-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15969, 27, 'Ribeira Boveda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15970, 27, 'Barxa -Castro de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15971, 27, 'Carballas -Castro de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15972, 27, 'Carballosa -Mos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15973, 27, 'Cruz -Castro de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15974, 27, 'Outeiro -Castro de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15975, 27, 'Furis de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15976, 27, 'Vilar de Cas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15977, 27, 'O Eixo -Cervo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15978, 27, 'Gondras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15979, 27, 'Iglesia -Castelo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15980, 27, 'O Barrio -O Corgo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15981, 27, 'Rioaveso -Santa Eulalia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15982, 27, 'Tenencia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15983, 27, 'Raulfe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15984, 27, 'O Caritel -Foz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15985, 27, 'Cordido -San Xiao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15986, 27, 'A Espieira -Foz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15987, 27, 'Eirexe -Entrambasaguas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15988, 27, 'Outeiro -Vila de Mouros-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15989, 27, 'Souto -O Incio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15990, 27, 'San Pedro -Lancara-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15991, 27, 'Barbain Lugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15992, 27, 'Belesar Lugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15993, 27, 'Carballal Lugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15994, 27, 'Santoio-Tabernas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15995, 27, 'Seoane Lugo Pena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15996, 27, 'O Castro -Mondoedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15997, 27, 'O Burgo -Mondoedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15998, 27, 'O Outeiro -Mondoedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (15999, 27, 'Santo Andre -Mondoedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16000, 27, 'Curros -Mondoedo-'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16001, 27, 'Xercido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16002, 27, 'Lousada -Mondoedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16003, 27, 'Virigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16004, 27, 'Couto -Outeiro de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16005, 27, 'Meidonin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16006, 27, 'Constante -Outeiro de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16007, 27, 'Castro -Guillar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16008, 27, 'Ver -Outeiro de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16009, 27, 'A Santa Maria -Panton-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16010, 27, 'Freixedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16011, 27, 'O Barrio -Eire-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16012, 27, 'Pousada -Santa Catarina-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16013, 27, 'Seselle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16014, 27, 'Sanxes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16015, 27, 'Lieiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16016, 27, 'San Xulian -Portomarin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16017, 27, 'Carballo de Hospital'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16018, 27, 'Campos Vila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16019, 27, 'Aian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16020, 27, 'Teivente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16021, 27, 'Veiga Sarria Veiga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16022, 27, 'Cazon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16023, 27, 'Vilacha -O Saviao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16024, 27, 'Vilamor -O Saviao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16025, 27, 'Agra -O Saviao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16026, 27, 'Cruceiro -Taboada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16027, 27, 'Outeiro -Esperante-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16028, 27, 'Tuiriz -Taboada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16029, 27, 'Lendorrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16030, 27, 'Faquios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16031, 27, 'Ider'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16032, 27, 'Santabaia -Taboada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16033, 27, 'Santalla -Triacastela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16034, 27, 'Area'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16035, 27, 'O Portocio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16036, 27, 'Iglesia Viveiro Viveiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16037, 27, 'Gondar -Xove-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16038, 27, 'Ceranzos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16039, 27, 'O Barreiro -Xove-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16040, 27, 'Saa -Lancara-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16041, 27, 'Pacios -A Penela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16042, 27, 'Pedrosa -Abadin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16043, 27, 'Beloi -Alfoz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16044, 27, 'Millares -Baleira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16045, 27, 'O Couto -Barreiros-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16046, 27, 'Torallo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16047, 27, 'Vigo -Begonte-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16048, 27, 'San Paio -Castroverde-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16049, 27, 'Francelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16050, 27, 'Quinzan Das Peras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16051, 27, 'Saa -Santa Locaia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16052, 27, 'Veiga -Mao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16053, 27, 'Santa Cristina -O Incio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16054, 27, 'Souto -Muro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16055, 27, 'Fontenova Gundin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16056, 27, 'Argonde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16057, 27, 'Corral Abaixo-C.Arriba-Penelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16058, 27, 'Fontemaior Lugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16059, 27, 'Vilacha -Ribas de Mio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16060, 27, 'Seivane Lugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16061, 27, 'San Vicente -Mondoedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16062, 27, 'Centeas -Mondoedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16063, 27, 'Vilaverde -Mondoedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16064, 27, 'Subida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16065, 27, 'Pacios -Espasantes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16066, 27, 'Rigueira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16067, 27, 'O Acevro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16068, 27, 'Neipin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16069, 27, 'Novaes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16070, 27, 'Couxela -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16071, 27, 'Carballo -O Saviao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16072, 27, 'Galegos -O Saviao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16073, 27, 'Quinzan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16074, 27, 'Fontao -Vilela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16075, 27, 'Vilar -Triacastela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16076, 27, 'A Trabe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16077, 27, 'Vilar -Xove-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16078, 27, 'San Cristobal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16079, 27, 'Illade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16080, 27, 'Cordal -Abadin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16081, 27, 'Terraxis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16082, 27, 'Vilaseor -Abadin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16083, 27, 'Pieiros -Alfoz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16084, 27, 'Rececendes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16085, 27, 'Penela -Antas de Ulla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16086, 27, 'Vilar Dos Adrios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16087, 27, 'Vilarin -Cubilledo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16088, 27, 'Pena -Baralla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16089, 27, 'Ponte de Neira -Baralla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16090, 27, 'Tucende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16091, 27, 'Lagua -Becerrea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16092, 27, 'Raia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16093, 27, 'Seber'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16094, 27, 'Faxilde -Castroverde-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16095, 27, 'Castedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16096, 27, 'Motin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16097, 27, 'Quinzan Da Vila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16098, 27, 'Quintela -Laxe-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16099, 27, 'Riopedroso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16100, 27, 'Souto -Nogueira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16101, 27, 'Rabelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16102, 27, 'Grandela -Cospeito-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16103, 27, 'Moman de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16104, 27, 'Casablanca -Roas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16105, 27, 'Vilasuso -Cospeito-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16106, 27, 'Santalla -Cospeito-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16107, 27, 'Romeor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16108, 27, 'Miraz -Folgoso Do Courel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16109, 27, 'Vilela -Folgoso Do Courel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16110, 27, 'Xestoso de Riba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16111, 27, 'Fumaior'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16112, 27, 'Castaoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16113, 27, 'San Pedro de Neiro (A Fonsagrada)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16114, 27, 'Xestoso de Baxo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16115, 27, 'O Freixido -Friol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16116, 27, 'Viladonega -Guitiriz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16117, 27, 'Moreiras -Guntin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16118, 27, 'Tosende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16119, 27, 'Fruxil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16120, 27, 'Vilar Vara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16121, 27, 'Vilaestevez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16122, 27, 'Castro -Boveda Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16123, 27, 'Farxocos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16124, 27, 'Villalvite Lugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16125, 27, 'Castro -Portomarin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16126, 27, 'Casas Novas -Portomarin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16127, 27, 'Tudriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16128, 27, 'Margaride -Quiroga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16129, 27, 'Soan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16130, 27, 'Figueiredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16131, 27, 'Cartea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16132, 27, 'Meiroi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16133, 27, 'Praducelo -Samos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16134, 27, 'Nande -Samos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16135, 27, 'Vigo Do Real'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16136, 27, 'Quintela -Froian-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16137, 27, 'Callas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16138, 27, 'Lezoce'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16139, 27, 'Pieiro -Diomondi-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16140, 27, 'Pieiro -Segan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16141, 27, 'Buxan -O Saviao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16142, 27, 'O Castro -Gundivos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16143, 27, 'Suairexa -Neiras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16144, 27, 'Vidas -Taboada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16145, 27, 'Sobrecedo de Riba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16146, 27, 'Vilela -O Vicedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16147, 27, 'Catarou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16148, 27, 'Portochao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16149, 27, 'Carballido -Esperante-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16150, 27, 'Val Lugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16151, 27, 'Campa Da Barra-Soario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16152, 27, 'Ferreria -Santa Maria Maior-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16153, 27, 'A Igrexa -Viloalle-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16154, 27, 'Zoan -Mondoedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16155, 27, 'Rio -Chavaga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16156, 27, 'Calvos -Monforte de Lemos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16157, 27, 'Broza -Monforte de Lemos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16158, 27, 'Coea -Navia de Suarna-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16159, 27, 'Figueira -Navia de Suarna-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16160, 27, 'Xueus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16161, 27, 'Caxigal -Outeiro de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16162, 27, 'Agrolento'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16163, 27, 'Veleigan -Gondrame-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16164, 27, 'Fontela -A Pastoriza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16165, 27, 'Fonfria -Pol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16166, 27, 'Baille'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16167, 27, 'Vilarxuane'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16168, 27, 'Souto de Mogos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16169, 27, 'Aldeguer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16170, 27, 'Xubin -Abadin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16171, 27, 'Cabaza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16172, 27, 'Naron -Becerrea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16173, 27, 'Queizan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16174, 27, 'Veiga Do Pumar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16175, 27, 'Torviso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16176, 27, 'O Bidueiro -Friol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16177, 27, 'Leboriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16178, 27, 'Vigo -Mosteiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16179, 27, 'Astariz Lugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16180, 27, 'Sandolfe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16181, 27, 'Penadedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16182, 27, 'Coence'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16183, 27, 'Mariz -Portomarin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16184, 27, 'Marcon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16185, 27, 'Carballo de Lor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16186, 27, 'Torre Ribadeo Cedofeita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16187, 27, 'Sadrarin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16188, 27, 'Cabaceira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16189, 27, 'Outeiro -Fafian-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16190, 27, 'Felon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16191, 27, 'Forcados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16192, 27, 'Susmil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16193, 27, 'Campo Verde -Sober-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16194, 27, 'Vilarbetote'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16195, 27, 'Pena -Oleiros-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16196, 27, 'A Torre de Vilamiron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16197, 27, 'Cibrisqueiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16198, 27, 'A Muia -Baleira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16199, 27, 'Santalla -Cervantes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16200, 27, 'Dumia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16201, 27, 'Gudin -Friol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16202, 27, 'Gandaras -Monforte de Lemos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16203, 27, 'Devesas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16204, 27, 'Nogueira -Monforte de Lemos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16205, 27, 'Carreira -Palas de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16206, 27, 'Outeiro -Cabana-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16207, 27, 'Guian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16208, 27, 'Lourixe -Pol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16209, 27, 'Souto -Loseiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16210, 27, 'Fonteabuin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16211, 27, 'Cimadevila -Brosmos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16212, 27, 'San Cristovo -O Corgo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16213, 27, 'San Andres -O Corgo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16214, 27, 'A Espieira -Barreiros-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16215, 27, 'Ferron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16216, 27, 'Maente -Foz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16217, 27, 'Castro Alfonsin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16218, 27, 'Cabana -Abadin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16219, 27, 'Moar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16220, 27, 'Fontepresa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16221, 27, 'Cabanela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16222, 27, 'Augalevada -Abadin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16223, 27, 'Leiras -Montouto-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16224, 27, 'O Gorvidal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16225, 27, 'Mendreiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16226, 27, 'O Castro -A Degolada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16227, 27, 'Matela -Baralla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16228, 27, 'Os Mazos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16229, 27, 'Val -Baralla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16230, 27, 'A Mocha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16231, 27, 'Castelmaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16232, 27, 'San Pedro -Becerrea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16233, 27, 'Nantin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16234, 27, 'Pontes de Gatin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16235, 27, 'Lousadela -Begonte-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16236, 27, 'Lousao -Begonte-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16237, 27, 'Cima Da Vila -Begonte-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16238, 27, 'Aldea -Baldomar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16239, 27, 'Os Corras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16240, 27, 'Marco -Carral-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16241, 27, 'A Cigueira -Begonte-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16242, 27, 'Barrio E Burgo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16243, 27, 'Vila -Pena San Vicente-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16244, 27, 'Enxerto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16245, 27, 'Vilar Do Monte -Aguada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16246, 27, 'Outeiro de Bucios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16247, 27, 'Vales -Castro de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16248, 27, 'Carril -Castro de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16249, 27, 'Oroxe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16250, 27, 'Vilar -Outeiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16251, 27, 'Sandamil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16252, 27, 'Gracian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16253, 27, 'Peredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16254, 27, 'Pereira -Castroverde-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16255, 27, 'Porcin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16256, 27, 'San Tome -Cervantes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16257, 27, 'Vilarello -Cervantes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16258, 27, 'San Martin Das Caadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16259, 27, 'San Miguel -Cervantes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16260, 27, 'Pacios -O Corgo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16261, 27, 'O Hospital -O Corgo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16262, 27, 'Rubial -O Corgo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16263, 27, 'Manan -San Cosme-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16264, 27, 'Campelo -San Xulian-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16265, 27, 'O Souto -Chamoso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16266, 27, 'Chavin -O Corgo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16267, 27, 'San Fiz -O Corgo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16268, 27, 'Tumbo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16269, 27, 'Panciegas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16270, 27, 'Xermar -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16271, 27, 'Paredes -Cospeito-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16272, 27, 'Rebordelos -Cospeito-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16273, 27, 'Bogalloso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16274, 27, 'Monte -Bestar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16275, 27, 'Porto Do Sal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16276, 27, 'Fontesalgueira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16277, 27, 'Corral -Roas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16278, 27, 'Toxeiro -Cospeito-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16279, 27, 'Devesa -Chantada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16280, 27, 'Frean -Lincora-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16281, 27, 'Mosteiro -Chantada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16282, 27, 'Eiroa -Chantada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16283, 27, 'Caibe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16284, 27, 'Vilardamos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16285, 27, 'Vilamea -Argozon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16286, 27, 'Costoira -Chantada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16287, 27, 'Meixide Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16288, 27, 'A Senza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16289, 27, 'Vigo -Chantada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16290, 27, 'Argozon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16291, 27, 'Soutariz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16292, 27, 'Vilasivil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16293, 27, 'Gromaz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16294, 27, 'O Vila de Carballido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16295, 27, 'Silvacha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16296, 27, 'Vilamaior -S.M. de Arroxo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16297, 27, 'Santa Xulia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16298, 27, 'Castro -Cuias-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16299, 27, 'Viladriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16300, 27, 'Chain -A Fonsagrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16301, 27, 'Outonais'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16302, 27, 'Arquide'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16303, 27, 'San Mamede -A Fonsagrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16304, 27, 'Vilafrime'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16305, 27, 'Airixin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16306, 27, 'Liares de Bidul'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16307, 27, 'Vilasindre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16308, 27, 'A Ermida -Foz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16309, 27, 'A Retorta -Friol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16310, 27, 'Rosende -Friol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16311, 27, 'Cela -Friol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16312, 27, 'Corvite -Guitiriz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16313, 27, 'Casasnovas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16314, 27, 'Pena -Vilares-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16315, 27, 'Sampaio -Guntin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16316, 27, 'Vilar Guntin Pallares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16317, 27, 'Zaide'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16318, 27, 'Noceda -San Xoan O Incio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16319, 27, 'San Salvador -O Incio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16320, 27, 'Martin -O Incio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16321, 27, 'Teimoi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16322, 27, 'Viladiga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16323, 27, 'Cedron Susaos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16324, 27, 'Vigo de Galegos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16325, 27, 'San Martio -Oleiros-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16326, 27, 'Quintela -Trasliste-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16327, 27, 'Rego Pereira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16328, 27, 'Buratai'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16329, 27, 'Santa Eufemia Lugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16330, 27, 'Lamaboa Lugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16331, 27, 'Manzoi Lugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16332, 27, 'Castro -Meilan de Lugo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16333, 27, 'Hospital Lugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16334, 27, 'Aldea Abaixo Lugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16335, 27, 'Vila Lugo Rubias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16336, 27, 'Pacios-Verin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16337, 27, 'Corvelle Lugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16338, 27, 'Airexe-Muxa de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16339, 27, 'Vilamoure'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16340, 27, 'Ferreira -Mondoedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16341, 27, 'O Souto -Santa Maria Maior-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16342, 27, 'A Campa -Mondoedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16343, 27, 'A Aldea -Figueiras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16344, 27, 'Barral de Cima'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16345, 27, 'A Braa -Mondoedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16346, 27, 'Moural'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16347, 27, 'Soutoxuane'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16348, 27, 'A Calvela -Mondoedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16349, 27, 'O Chao Do Val'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16350, 27, 'Guillade -Mondoedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16351, 27, 'Cinsa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16352, 27, 'Pallares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16353, 27, 'Probeiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16354, 27, 'Bodegas -Monforte de Lemos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16355, 27, 'Seoane -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16356, 27, 'Sestelo -Monterroso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16357, 27, 'As Cuias -Muras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16358, 27, 'Pascal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16359, 27, 'Villaverde -Navia de Suarna-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16360, 27, 'Aigas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16361, 27, 'Robledo -Rao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16362, 27, 'Vilagoncide'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16363, 27, 'Pousada -Ourol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16364, 27, 'O Chao de Xerdiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16365, 27, 'O Combarro -Ourol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16366, 27, 'Vilar -Outeiro de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16367, 27, 'Buxan -Outeiro de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16368, 27, 'Feira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16369, 27, 'Gayoso (Outeiro de Rei)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16370, 27, 'Matela -Sta. Maria Magdalena-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16371, 27, 'Pazo -Outeiro de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16372, 27, 'Pape -Outeiro de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16373, 27, 'Avieira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16374, 27, 'Vilar -Remonde-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16375, 27, 'San Pedro -Palas de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16376, 27, 'Frean -Panton-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16377, 27, 'Galegos -Panton-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16378, 27, 'Vilar de Ortelle -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16379, 27, 'Tellada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16380, 27, 'Castro Paradela Castro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16381, 27, 'Bermil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16382, 27, 'Outeiro de Pena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16383, 27, 'Vilar de Penas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16384, 27, 'Marquide -A Pastoriza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16385, 27, 'Mourelle -A Pastoriza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16386, 27, 'As Abegas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16387, 27, 'Mioto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16388, 27, 'A Igrexa -Reigosa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16389, 27, 'Estreito'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16390, 27, 'Foxaca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16391, 27, 'A Bouza -A Pastoriza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16392, 27, 'San Pedro -Pedrafita Cebreiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16393, 27, 'Celeiro-Pedrafita Do Cebreiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16394, 27, 'Vilar A Pontenova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16395, 27, 'Curras -A Pontenova-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16396, 27, 'San Paio -A Pontenova-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16397, 27, 'Vilaxe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16398, 27, 'O Hospital -Portomarin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16399, 27, 'Aldea de Arriba-Pobra Brollon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16400, 27, 'Valladolid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16401, 27, 'Pacios Da Veiga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16402, 27, 'Lama -Eixon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16403, 27, 'Corral -A Pobra de Brollon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16404, 27, 'Airavella -A Pobra de Brollon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16405, 27, 'Campaza -A Pobra de Brollon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16406, 27, 'Lamas de Lor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16407, 27, 'Penasrubias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16408, 27, 'Sa -Ribadeo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16409, 27, 'Magdalena -Ribadeo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16410, 27, 'O Pouxaneiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16411, 27, 'Lourido Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16412, 27, 'Vilei'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16413, 27, 'Aguiada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16414, 27, 'Vilaesteva -Sarria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16415, 27, 'Outeiro -Goian-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16416, 27, 'Currial'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16417, 27, 'Vilarello -Sarria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16418, 27, 'Vilagudin -Sarria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16419, 27, 'San Fiz -Reimondez-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16420, 27, 'Tremeado -Sarria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16421, 27, 'Barrio -Sarria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16422, 27, 'Vilar Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16423, 27, 'Goimil -Sarria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16424, 27, 'Belesar -O Saviao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16425, 27, 'Pesqueiras -O Saviao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16426, 27, 'Xixiriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16427, 27, 'Alperiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16428, 27, 'Susavila -O Saviao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16429, 27, 'Sanxumil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16430, 27, 'Moradela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16431, 27, 'Francos -Doade-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16432, 27, 'Canton'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16433, 27, 'Barantes de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16434, 27, 'O Campo -Bulso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16435, 27, 'O Campo -Pinol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16436, 27, 'Matama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16437, 27, 'A Vacariza -Sober-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16438, 27, 'Pedrouzos -Taboada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16439, 27, 'Millan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16440, 27, 'Xestoso -Taboada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16441, 27, 'Curro -Taboada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16442, 27, 'Sobrecedo de Baixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16443, 27, 'San Martio -Trabada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16444, 27, 'Trabadela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16445, 27, 'O Campon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16446, 27, 'Pontellas -O Vicedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16447, 27, 'A Rabilonga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16448, 27, 'A Veigalonga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16449, 27, 'Carboeiro -Oleiros-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16450, 27, 'Pegos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16451, 27, 'Penarredonda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16452, 27, 'Caldeiron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16453, 27, 'As Casasnovas -Goiriz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16454, 27, 'Ramil -Vilalba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16455, 27, 'Esperido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16456, 27, 'Rioaveso -San Xurxo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16457, 27, 'Vilamartin -Vilalba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16458, 27, 'Trastoi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16459, 27, 'Vilanova -Santaballa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16460, 27, 'Marcelle -Torre-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16461, 27, 'Penadrade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16462, 27, 'A Touza -Xermade-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16463, 27, 'Eiriz -Chantada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16464, 27, 'Meda -Monforte de Lemos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16465, 27, 'Outeiro Palas Rei Alba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16466, 27, 'Vilela Pequena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16467, 27, 'Sirgueiros -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16468, 27, 'Ferreira -Santa Maria Guntin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16469, 27, 'Guldriz de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16470, 27, 'Aguada de Riba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16471, 27, 'Carretera -Gaibor-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16472, 27, 'Vilouta de Baixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16473, 27, 'Vilaleo de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16474, 27, 'Santalla -Lancara-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16475, 27, 'Corral de Abaixo -Lancara-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16476, 27, 'Airexe -Lama-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16477, 27, 'Pedra -Lancara-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16478, 27, 'Toiran -El Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16479, 27, 'Castro Seixas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16480, 27, 'Camouco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16481, 27, 'Ribado -Palas de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16482, 27, 'Casanova -Mato-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16483, 27, 'Vilaseor -Palas de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16484, 27, 'Pazo -Palas de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16485, 27, 'Corral -Palas de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16486, 27, 'Villarramil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16487, 27, 'Xende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16488, 27, 'Gradon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16489, 27, 'Alto Roca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16490, 27, 'Castro -Santa Cruz Guitiriz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16491, 27, 'Funsin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16492, 27, 'Eirexe -Gondel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16493, 27, 'O Campo Do Prado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16494, 27, 'Saviao -Pol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16495, 27, 'A Horta -Cervantes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16496, 27, 'O Fabal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16497, 27, 'Fulgueiroa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16498, 27, 'Vilance'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16499, 27, 'San Miguel -Monterroso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16500, 27, 'Pudio'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16501, 27, 'Fondo de Vila -O Saviao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16502, 27, 'A Torre -O Saviao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16503, 27, 'Morgade -Sarria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16504, 27, 'Nogueiras -Sarria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16505, 27, 'Vilanova -Froian-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16506, 27, 'Peruscallo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16507, 27, 'Vilar Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16508, 27, 'Sixto -Meixente-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16509, 27, 'Pape -Sarria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16510, 27, 'Vilapedre -Friol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16511, 27, 'O Outeiro -Lea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16512, 27, 'Anafreita -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16513, 27, 'San Martio Friol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16514, 27, 'A Vila Grande -Friol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16515, 27, 'Mundin -Friol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16516, 27, 'Palloza Vilalba Boizan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16517, 27, 'Aran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16518, 27, 'Fontedor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16519, 27, 'Lameiros -Tardade-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16520, 27, 'Igrexa -Xoiban-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16521, 27, 'Vilouriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16522, 27, 'Abelleiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16523, 27, 'Suairexa -Figueiroa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16524, 27, 'Loureiro -Baleira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16525, 27, 'Pasada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16526, 27, 'Vilardoi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16527, 27, 'Chandeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16528, 27, 'O Albeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16529, 27, 'Barreiro -Vilares-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16530, 27, 'Ferreiros -Guitiriz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16531, 27, 'Vilamiron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16532, 27, 'Outeiro -Moreda de Panton-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16533, 27, 'Guisande -O Paramo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16534, 27, 'Lamas -Samos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16535, 27, 'Pumarin de Riba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16536, 27, 'Touzon -Becerrea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16537, 27, 'Vilar -Prevesos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16538, 27, 'Campo Outeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16539, 27, 'Pedron -Castro de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16540, 27, 'Ancado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16541, 27, 'Granda -Ramil-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16542, 27, 'San Estebo -O Corgo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16543, 27, 'A Casanova -O Corgo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16544, 27, 'Lago -O Corgo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16545, 27, 'O Campo -Farnadeiros-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16546, 27, 'A Estrada -Sabarei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16547, 27, 'Vilaceleiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16548, 27, 'Lebesen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16549, 27, 'Mota (Guntin)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16550, 27, 'Ourol de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16551, 27, 'Xuriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16552, 27, 'Pacios -Navallos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16553, 27, 'Outeiro -A Vide-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16554, 27, 'Eibedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16555, 27, 'Salvador'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16556, 27, 'As Pedras -As Nocedas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16557, 27, 'Porto de Lobos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16558, 27, 'Carranchousa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16559, 27, 'Hedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16560, 27, 'Gabin -Outeiro de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16561, 27, 'Cruceiro -Outeiro de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16562, 27, 'Eiras -O Paramo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16563, 27, 'Sinde -A Pastoriza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16564, 27, 'Manxar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16565, 27, 'Lamartin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16566, 27, 'Penso -Taboada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16567, 27, 'Pucios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16568, 27, 'Bouzal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16569, 27, 'Carril -Trabada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16570, 27, 'A Valboa-Santa Maria Madanela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16571, 27, 'Os Novas -O Valadouro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16572, 27, 'Pereira Vilalba Lanzos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16573, 27, 'Outeiro -Baran-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16574, 27, 'A Regada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16575, 27, 'Barreiros -A Pontenova-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16576, 27, 'Vilagarcia -Baleira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16577, 27, 'A Pereira -Corneas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16578, 27, 'Vilauriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16579, 27, 'Viladonga -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16580, 27, 'Vilacizal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16581, 27, 'Meigonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16582, 27, 'Mantelle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16583, 27, 'Vilamaior -Monforte de Lemos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16584, 27, 'Vilarin -Doncos Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16585, 27, 'Busgulmar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16586, 27, 'A Estacion -Panton-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16587, 27, 'Portocarreira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16588, 27, 'Cortias -Paradela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16589, 27, 'Outeiro -Castro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16590, 27, 'Pena -Paradela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16591, 27, 'Lagoa -O Paramo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16592, 27, 'San Vicente -O Paramo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16593, 27, 'O Regueiral -Pol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16594, 27, 'Parada -Samos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16595, 27, 'San Xil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16596, 27, 'Rosende -Pena Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16597, 27, 'Couso -Sarria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16598, 27, 'Santalla -O Incio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16599, 27, 'Pacios -Rebordaos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16600, 27, 'Lamapodre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16601, 27, 'O Trobo -O Valadouro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16602, 27, 'O Leirado -O Valadouro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16603, 27, 'O Campo -O Valadouro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16604, 27, 'Guxeva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16605, 27, 'Sitios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16606, 27, 'Vilar de Eiriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16607, 27, 'San Cristovo -Chantada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16608, 27, 'Quinta -Agrade-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16609, 27, 'Pieiro -Chantada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16610, 27, 'Soilan -Pereira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16611, 27, 'Vilasol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16612, 27, 'Rousende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16613, 27, 'Pedrouzos -Toldaos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16614, 27, 'As Pedregosas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16615, 27, 'San Pedro -O Incio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16616, 27, 'Barbain -O Incio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16617, 27, 'Escourido -Viveiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16618, 27, 'Campo -Aldixe-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16619, 27, 'Cabeceira -Abadin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16620, 27, 'Butarreira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16621, 27, 'Queirogal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16622, 27, 'Padornelo -Baleira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16623, 27, 'San Romao -Baleira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16624, 27, 'Vilares Baleira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16625, 27, 'Vigo -Bacurin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16626, 27, 'O Folgar -Friol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16627, 27, 'A Torre Da Luz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16628, 27, 'Meizaran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16629, 27, 'Pasantes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16630, 27, 'Vilar -Cangas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16631, 27, 'Estrada -Panton-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16632, 27, 'Mourisco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16633, 27, 'Rieiro -A Fonsagrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16634, 27, 'Pantaras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16635, 27, 'Vilario -Ribas de Sil-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16636, 27, 'Pedrido -Trabada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16637, 27, 'A Telleira -O Valadouro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16638, 27, 'Curras -Galgao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16639, 27, 'Reguenga -Guntin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16640, 27, 'Vilabol -As Nogais-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16641, 27, 'Vilanova Lugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16642, 27, 'Cacabelos Lugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16643, 27, 'Santa Marta Lugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16644, 27, 'Maira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16645, 27, 'Vilamaior Lugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16646, 27, 'Campos-Corral Arriba-C. Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16647, 27, 'Marzas -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16648, 27, 'Cima de Vila -Carballedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16649, 27, 'Cambillan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16650, 27, 'San Romau -Carballedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16651, 27, 'Robra -San Pedro Felix-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16652, 27, 'Cerxedo -Paradela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16653, 27, 'Cotaron -Cospeito-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16654, 27, 'Rabada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16655, 27, 'O Souto -Xermade-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16656, 27, 'Franquean -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16657, 27, 'Vilasante -Antas de Ulla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16658, 27, 'Lamas -Ribeira de Piquin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16659, 27, 'Busmullan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16660, 27, 'Porfia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16661, 27, 'Sabugos-Pedrafita Do Cebreiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16662, 27, 'Vilarin Do Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16663, 27, 'Modreiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16664, 27, 'Busgardin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16665, 27, 'A Igrexa -Silan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16666, 27, 'Armea -Lama-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16667, 27, 'Laxe-Daquelcabo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16668, 27, 'Souto -Arcos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16669, 27, 'Santa Uxia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16670, 27, 'O Pedroso -Chantada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16671, 27, 'Garabelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16672, 27, 'Sampaio -Chantada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16673, 27, 'Matos(Panton)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16674, 27, 'Brea -Bascuas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16675, 27, 'Vilasantan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16676, 27, 'Vilar de Nuo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16677, 27, 'Porto Da Moura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16678, 27, 'Carboeiro -Graa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16679, 27, 'Alaxe -Corvite-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16680, 27, 'Egoeiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16681, 27, 'Billetes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16682, 27, 'Celme'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16683, 27, 'Barral -Castromayor-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16684, 27, 'A Rexedoira -Alfoz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16685, 27, 'A Somoza -Antas de Ulla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16686, 27, 'Bertosende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16687, 27, 'Valderia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16688, 27, 'A Condomia Baralla Neira Rei'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16689, 27, 'A Pedreira -Barreiros-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16690, 27, 'Novas -Barreiros-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16691, 27, 'A Val Do Cainzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16692, 27, 'Horta -Becerrea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16693, 27, 'Montaadagra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16694, 27, 'Buisan -Becerrea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16695, 27, 'Coto -Becerrea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16696, 27, 'Freixo -Becerrea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16697, 27, 'Cantiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16698, 27, 'Boveda -Santa Eulalia Begonte-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16699, 27, 'Roibas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16700, 27, 'Tras Do Castro -Begonte-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16701, 27, 'Eirexe -Begonte-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16702, 27, 'Leboradas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16703, 27, 'Aldea -Illan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16704, 27, 'Illan de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16705, 27, 'Ferreira -Begonte-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16706, 27, 'Gandaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16707, 27, 'Penagrande -Begonte-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16708, 27, 'Martin -Begonte-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16709, 27, 'Eirexa -Begonte-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16710, 27, 'Airexe Carballedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16711, 27, 'Ceides'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16712, 27, 'Veiga -Carballedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16713, 27, 'O Vao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16714, 27, 'Aldea de Baixo -Castro de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16715, 27, 'Saa -Castro de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16716, 27, 'Riba de Mio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16717, 27, 'Castrillon -Castro de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16718, 27, 'Lombas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16719, 27, 'Riamonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16720, 27, 'Xantes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16721, 27, 'Vilanova -Paradela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16722, 27, 'O Pieiro -Folgosa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16723, 27, 'Vilacorve'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16724, 27, 'Carracido -Cospeito-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16725, 27, 'Insua -Cospeito-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16726, 27, 'Pino Cospeito'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16727, 27, 'Acernadas -Cospeito-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16728, 27, 'Cabana -Cospeito-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16729, 27, 'Lamacamio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16730, 27, 'Uriz -Chantada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16731, 27, 'Carballedo -Chantada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16732, 27, 'Santa Rosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16733, 27, 'Vilamea -Viana-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16734, 27, 'Eiriz -Folgoso Do Courel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16735, 27, 'A Campa -Folgoso Do Courel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16736, 27, 'Lladairo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16737, 27, 'Fongate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16738, 27, 'San Breixo -A Fonsagrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16739, 27, 'Vilabol de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16740, 27, 'A Sendia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16741, 27, 'Liares A Fonsagrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16742, 27, 'Teixeira -Pacios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16743, 27, 'Braa -Vega de Logares-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16744, 27, 'Liares de Vilafurada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16745, 27, 'Estoupelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16746, 27, 'Naraxa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16747, 27, 'Sancedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16748, 27, 'Vilacendoi -Foz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16749, 27, 'Macedo -Friol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16750, 27, 'Villaldar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16751, 27, 'Sanguiedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16752, 27, 'Codesal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16753, 27, 'Trasparga -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16754, 27, 'Vilanova -Guitiriz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16755, 27, 'Treilan -Guntin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16756, 27, 'Santa Cruz de Oural'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16757, 27, 'Os Baos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16758, 27, 'San Martio -Rio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16759, 27, 'Gradin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16760, 27, 'Souto -Toiran-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16761, 27, 'Augalevada -Lancara-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16762, 27, 'Penelas -Lourenza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16763, 27, 'Vilar -Lourenza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16764, 27, 'Bodegas -Lourenza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16765, 27, 'Portanova-Trasfontao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16766, 27, 'Vilarvente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16767, 27, 'Porto Lugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16768, 27, 'Tellado Lugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16769, 27, 'Fontela-Vigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16770, 27, 'Pieiro Meira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16771, 27, 'A Cruz Da Carreira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16772, 27, 'A Pena Moura -Mondoedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16773, 27, 'Encima Da Vila -Mondoedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16774, 27, 'Ogrobe -Mondoedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16775, 27, 'Regueiro -Bascos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16776, 27, 'Campelo -Monforte de Lemos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16777, 27, 'Marexe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16778, 27, 'San Mamede -Monforte de Lemos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16779, 27, 'Val Monforte Lemos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16780, 27, 'Pacios -Seoane-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16781, 27, 'O Castro -Novelua-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16782, 27, 'Pieiro -Monterroso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16783, 27, 'Freixeiro -Navia de Suarna-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16784, 27, 'Coro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16785, 27, 'Ferreiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16786, 27, 'A Pia -As Nogais-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16787, 27, 'Chan de Vilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16788, 27, 'O Grandal -Ourol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16789, 27, 'Fompedria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16790, 27, 'Trabanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16791, 27, 'Francos Outeiro Rei Francos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16792, 27, 'Arcos -Santa Maria Chantada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16793, 27, 'Codeseda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16794, 27, 'Ulloa -Curbian-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16795, 27, 'Vilar de Ulloa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16796, 27, 'Chorexe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16797, 27, 'Puricelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16798, 27, 'Seoane -Panton-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16799, 27, 'Nadal -Panton-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16800, 27, 'Vilaxilde -Panton-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16801, 27, 'As Ribas -A Pastoriza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16802, 27, 'Rigueira A Pastoriza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16803, 27, 'A Torre -A Pastoriza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16804, 27, 'Coterces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16805, 27, 'Chandepena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16806, 27, 'Rabaceira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16807, 27, 'Trabazos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16808, 27, 'Acibo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16809, 27, 'Castro Pol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16810, 27, 'Lamarcide'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16811, 27, 'Lugar de Arriba-Pobra Brollon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16812, 27, 'San Martio de Alvaredos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16813, 27, 'Cei'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16814, 27, 'Frieira A Nova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16815, 27, 'Campos -Ribas del Sil-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16816, 27, 'Mestre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16817, 27, 'Barangon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16818, 27, 'Real E Salgados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16819, 27, 'O Mazo -Ferreiravella-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16820, 27, 'A Pena Do Couso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16821, 27, 'Portela -Samos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16822, 27, 'Bustofrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16823, 27, 'Vilar Real'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16824, 27, 'Betote de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16825, 27, 'Arxevide'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16826, 27, 'Santo Estevo -Lousadela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16827, 27, 'A Barxa -O Saviao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16828, 27, 'Corneas -O Saviao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16829, 27, 'Santa Cruz -O Saviao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16830, 27, 'Nogueira -Anllo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16831, 27, 'Viloriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16832, 27, 'Vilar Mouros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16833, 27, 'Deilas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16834, 27, 'Airexe -Cerdeda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16835, 27, 'Ouriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16836, 27, 'Taboada Dos Freires-Sta.Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16837, 27, 'Sequeiro -Trabada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16838, 27, 'A Retorta -Trabada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16839, 27, 'Queixadoiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16840, 27, 'O Morgallon -O Vicedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16841, 27, 'As Turbelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16842, 27, 'Carregal -Vilalba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16843, 27, 'Picoi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16844, 27, 'Buxiban'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16845, 27, 'Rebordelo Vilalba Codesido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16846, 27, 'Goiriz Villalba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16847, 27, 'Agadin de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16848, 27, 'Cabreiros -Sta.Maria Xermade-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16849, 27, 'O Reguengo -Xermade-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16850, 27, 'Castieiras -Xermade-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16851, 27, 'Paderne -Panton-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16852, 27, 'Serode'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16853, 27, 'Mer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16854, 27, 'A Vacaloura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16855, 27, 'Mudia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16856, 27, 'Iglesia -Triaba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16857, 27, 'Meixonfrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16858, 27, 'Nespereira -Carballedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16859, 27, 'Papelle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16860, 27, 'Cimadevila -Liaran-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16861, 27, 'Vilavella -Pol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16862, 27, 'Ribeira -A Pobra de Brollon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16863, 27, 'Pieiro Lugo Pieiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16864, 27, 'O Rato -Ribadeo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16865, 27, 'Viana Chantada Viana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16866, 27, 'Abrente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16867, 27, 'Eirexa -Galegos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16868, 27, 'Lamela -Carballedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16869, 27, 'Carralmaior'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16870, 27, 'Carreira -Outeiro de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16871, 27, 'Fraga Alta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16872, 27, 'Mato -Begonte-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16873, 27, 'Fontela -Caboi-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16874, 27, 'Barciela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16875, 27, 'Parapar -O Paramo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16876, 27, 'Reboredo -Xove-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16877, 27, 'A Fonte -A Pobra de Brollon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16878, 27, 'Santome'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16879, 27, 'Leganitos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16880, 27, 'A Agueira -Alfoz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16881, 27, 'Sabarei de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16882, 27, 'Xillan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16883, 27, 'Parada -Folgoso Do Courel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16884, 27, 'Armental -Guntin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16885, 27, 'Corral Abaixo-C.Arriba-Penelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16886, 27, 'Esteba -Monterroso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16887, 27, 'Cabana -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16888, 27, 'Remesar -Panton-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16889, 27, 'Montecelos -Taboada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16890, 27, 'A Ermida -Xermade-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16891, 27, 'Raposeira -Guitiriz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16892, 27, 'Santa Maria -Outeiro de Rei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16893, 27, 'Valonga -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16894, 27, 'Camposo -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16895, 27, 'Cela -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16896, 27, 'Maceda-Corvo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16897, 27, 'Sabarei (O Corgo)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16898, 27, 'Veral -San Vicente-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16899, 27, 'Bascuas(Lugo)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16900, 27, 'San Pedro de Neiro -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16901, 27, 'Boveda -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16902, 27, 'Camoira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16903, 27, 'Carballido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16904, 27, 'Fixos -Santa Marta-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16905, 27, 'San Roman -Santa Cristina-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16906, 27, 'Piquin -Santalla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16907, 27, 'Cubilledo -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16908, 27, 'San Pedro de Benquerencia-S.P.'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16909, 27, 'Cangas -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16910, 27, 'Villamarin -San Fiz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16911, 27, 'Bolmente -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16912, 27, 'Pedreda -San Vicente-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16913, 27, 'Carballedo -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16914, 27, 'Villapene -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16915, 27, 'Fornas (Chantada)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16916, 27, 'Rececende -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16917, 27, 'Mariz -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16918, 27, 'Santiago de Saa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16919, 27, 'Santa Cruz -Baralla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16920, 27, 'Covas -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16921, 27, 'Campia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16922, 27, 'Rio Barba -San Paulo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16923, 27, 'Atan -Santo Estevo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16924, 27, 'Torbeo -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16925, 27, 'Aguas Santas -San Xurxo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16926, 27, 'O Saviao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16927, 27, 'Ribas de Sil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16928, 27, 'Barreiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16929, 27, 'Lourenza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16930, 27, 'Alfoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16931, 27, 'Cervantes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16932, 27, 'O Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16933, 27, 'Baleira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16934, 27, 'Ribeira de Piquin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16935, 27, 'Pol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16936, 27, 'Folgoso Do Courel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16937, 27, 'Negueira de Muiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16938, 27, 'Panton'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16939, 27, 'O Valadouro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16940, 27, 'Carballedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16941, 27, 'Cospeito'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16942, 27, 'O Incio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16943, 27, 'Paradela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16944, 27, 'Riotorto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16945, 27, 'Burela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16946, 27, 'Ferreira -Quiroga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16947, 27, 'Mazoi -Santa Eulalia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16948, 27, 'Mato -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16949, 27, 'Freixo -San Xulian-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16950, 27, 'Piugos(Lugo)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16951, 27, 'Codesido -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16952, 27, 'Rebordaos -Santa Eulalia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16953, 27, 'San Martio de Corvelle-S.Mart'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16954, 27, 'Outeiro -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16955, 27, 'Ombreiro -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16956, 27, 'La Barrela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16957, 28, 'Madrid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16958, 28, 'Ajalvir'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16959, 28, 'El Alamo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16960, 28, 'Alcala de Henares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16961, 28, 'Alcobendas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16962, 28, 'Alcorcon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16963, 28, 'Algete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16964, 28, 'Alpedrete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16965, 28, 'Aranjuez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16966, 28, 'El Atazar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16967, 28, 'Arganda del Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16968, 28, 'San Jose de Valderas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16969, 28, 'Becerril de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16970, 28, 'Belmonte de Tajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16971, 28, 'El Boalo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16972, 28, 'Brunete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16973, 28, 'Buitrago del Lozoya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16974, 28, 'Bustarviejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16975, 28, 'Cabanillas de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16976, 28, 'La Cabrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16977, 28, 'Cadalso de Los Vidrios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16978, 28, 'Campo Real'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16979, 28, 'Aravaca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16980, 28, 'Orusco de Tajua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16981, 28, 'Carabaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16982, 28, 'Cerceda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16983, 28, 'Cercedilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16984, 28, 'Ciempozuelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16985, 28, 'Cobea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16986, 28, 'Colmenar de Oreja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16987, 28, 'Colmenar Viejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16988, 28, 'Collado Mediano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16989, 28, 'Collado Villalba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16990, 28, 'Coslada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16991, 28, 'Chinchon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16992, 28, 'Soto del Real'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16993, 28, 'Daganzo de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16994, 28, 'El Escorial'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16995, 28, 'Belvis de Jarama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16996, 28, 'Fuenlabrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16997, 28, 'Fuentiduea de Tajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16998, 28, 'Galapagar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (16999, 28, 'Gargantilla del Lozoya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17000, 28, 'Getafe'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17001, 28, 'Grion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17002, 28, 'Guadalix de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17003, 28, 'Guadarrama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17004, 28, 'Madrid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17005, 28, 'Hoyo de Manzanares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17006, 28, 'Leganes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17007, 28, 'Loeches'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17008, 28, 'Lozoya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17009, 28, 'Lozoyuela-Navas-Sieteiglesias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17010, 28, 'Majadahonda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17011, 28, 'Manzanares El Real'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17012, 28, 'Las Matas -Las Rozas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17013, 28, 'Meco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17014, 28, 'Miraflores de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17015, 28, 'El Molar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17016, 28, 'Los Molinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17017, 28, 'Moralzarzal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17018, 28, 'Morata de Tajua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17019, 28, 'Mostoles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17020, 28, 'Navacerrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17021, 28, 'Navalcarnero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17022, 28, 'Paracuellos de Jarama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17023, 28, 'Fortuna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17024, 28, 'Parla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17025, 28, 'Pedrezuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17026, 28, 'Perales de Tajua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17027, 28, 'Pinto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17028, 28, 'Los Hueros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17029, 28, 'Pozuelo de Alarcon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17030, 28, 'Pozuelo del Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17031, 28, 'Puente Arganda Arganda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17032, 28, 'Puerto de Navacerrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17033, 28, 'Rascafria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17034, 28, 'Robledo de Chavela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17035, 28, 'Robregordo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17036, 28, 'Las Rozas de Madrid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17037, 28, 'San Agustin de Guadalix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17038, 28, 'San Fernando de Henares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17039, 28, 'San Martin de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17040, 28, 'San Martin de Valdeiglesias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17041, 28, 'San Sebastian de Los Reyes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17042, 28, 'Talamanca de Jarama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17043, 28, 'Tielmes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17044, 28, 'Torrejon de Ardoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17045, 28, 'Torrejon de Velasco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17046, 28, 'Torrelaguna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17047, 28, 'La Estacion -Torrelodones-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17048, 28, 'Torrelodones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17049, 28, 'Torres de la Alameda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17050, 28, 'Valdemorillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17051, 28, 'Valdemoro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17052, 28, 'Valdilecha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17053, 28, 'Collado Villalba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17054, 28, 'El Vellon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17055, 28, 'El Ventorrillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17056, 28, 'Venturada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17057, 28, 'El Pardo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17058, 28, 'Villaconejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17059, 28, 'Villa del Prado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17060, 28, 'Villarejo de Salvanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17061, 28, 'Villaviciosa de Odon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17062, 28, 'La Estacion Y Pajares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17063, 28, 'Colmenarejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17064, 28, 'Somosierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17065, 28, 'Valdetorres de Jarama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17066, 28, 'Villanueva de la Caada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17067, 28, 'Fuente El Saz de Jarama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17068, 28, 'Montejo de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17069, 28, 'Los Santos de la Humosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17070, 28, 'Horcajo de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17071, 28, 'Cubas de la Sagra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17072, 28, 'La Estacion de Robledo Chavela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17073, 28, 'Mejorada del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17074, 28, 'Humanes de Madrid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17075, 28, 'Chapineria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17076, 28, 'Navalagamella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17077, 28, 'Colmenar del Arroyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17078, 28, 'Canencia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17079, 28, 'Valdelaguna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17080, 28, 'Santa Maria de la Alameda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17081, 28, 'Estremera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17082, 28, 'Cenicientos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17083, 28, 'Villanueva del Pardillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17084, 28, 'Villamanta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17085, 28, 'Quijorna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17086, 28, 'Valdemaqueda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17087, 28, 'Fresnedillas de la Oliva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17088, 28, 'Ambite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17089, 28, 'Navalafuente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17090, 28, 'Navas del Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17091, 28, 'Garganta de Los Montes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17092, 28, 'El Berrueco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17093, 28, 'Villamanrique de Tajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17094, 28, 'Valdaracete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17095, 28, 'Titulcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17096, 28, 'Torremocha de Jarama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17097, 28, 'Boadilla del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17098, 28, 'Sevilla la Nueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17099, 28, 'Casarrubuelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17100, 28, 'Nuevo Baztan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17101, 28, 'Brea de Tajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17102, 28, 'Velilla de San Antonio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17103, 28, 'Pelayos de la Presa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17104, 28, 'Rozas de Puerto Real'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17105, 28, 'Camarma de Esteruelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17106, 28, 'Anchuelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17107, 28, 'Santorcaz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17108, 28, 'Corpa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17109, 28, 'Pezuela de Las Torres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17110, 28, 'Valverde de Alcala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17111, 28, 'Villalbilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17112, 28, 'Alalpardo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17113, 28, 'Rivas-Vaciamadrid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17114, 28, 'Villar del Olmo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17115, 28, 'Olmeda de Las Fuentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17116, 28, 'Valdeavero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17117, 28, 'Villamantilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17118, 28, 'Villanueva de Perales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17119, 28, 'Aldea del Fresno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17120, 28, 'Moraleja de Enmedio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17121, 28, 'Mataelpino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17122, 28, 'Valdepielagos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17123, 28, 'Zarzalejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17124, 28, 'Fresno de Torote'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17125, 28, 'Ribatejada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17126, 28, 'Gascones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17127, 28, 'Villavieja del Lozoya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17128, 28, 'Patones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17129, 28, 'Torrejon de la Calzada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17130, 28, 'Batres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17131, 28, 'Serranillos del Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17132, 28, 'Arroyomolinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17133, 28, 'Navas de Buitrago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17134, 28, 'La Acebeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17135, 28, 'La Serna del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17136, 28, 'Cervera de Buitrago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17137, 28, 'Robledillo de la Jara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17138, 28, 'Reduea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17139, 28, 'La Hiruela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17140, 28, 'Horcajuelo de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17141, 28, 'Madarcos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17142, 28, 'Piuecar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17143, 28, 'Pradena del Rincon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17144, 28, 'Puebla de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17145, 28, 'Valdemanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17146, 28, 'Braojos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17147, 28, 'Navarredonda Y San Mames'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17148, 28, 'Oteruelo del Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17149, 28, 'Pinilla del Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17150, 28, 'Manjiron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17151, 28, 'Berzosa del Lozoya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17152, 28, 'Paredes de Buitrago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17153, 28, 'Serrada de la Fuente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17154, 28, 'La Moraleja -Alcobendas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17155, 28, 'Alameda del Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17156, 28, 'Valdeolmos-Alalpardo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17157, 28, 'Sieteiglesias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17158, 28, 'Ea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17159, 28, 'El Espartal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17160, 28, 'San Mames'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17161, 28, 'El Cuadron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17162, 28, 'Gandullas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17163, 28, 'Robledondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17164, 28, 'La Maraosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17165, 28, 'Rivas de Jarama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17166, 28, 'Tres Cantos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17167, 28, 'Aoslos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17168, 28, 'Polig. Ind. Aymair (San Martin Vega)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17169, 28, 'Miraflores -Fuenlabrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17170, 28, 'Rivas-Vaciamadrid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17171, 28, 'Covibar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17172, 28, 'Fuente del Fresno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17173, 28, 'Alamin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17174, 28, 'Alamos Bulara Pozuelo Alarcon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17175, 28, 'El Alcor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17176, 28, 'Algodor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17177, 28, 'Los Angeles -Pozuelo Alarcon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17178, 28, 'Arroyo de Trofas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17179, 28, 'Atalaya Real'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17180, 28, 'El Bercial -Getafe-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17181, 28, 'El Encinar de Los Reyes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17182, 28, 'El Encinar Y San Alberto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17183, 28, 'La Berzosilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17184, 28, 'Bonanza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17185, 28, 'La Cabaa -Pozuelo de Alarcon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17186, 28, 'Las Cabezuelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17187, 28, 'Camorritos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17188, 28, 'Canto Blanco Villanueva Caada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17189, 28, 'Canto del Pico -Torrelodones-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17190, 28, 'Castillo Villaviciosa Villaviciosa Odon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17191, 28, 'Cazadero Real'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17192, 28, 'Las Encinas Pozuelo Alarcon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17193, 28, 'Los Endrinales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17194, 28, 'Cerro Nieves Villaviciosa Odon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17195, 28, 'Cerro de Los Angeles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17196, 28, 'Ciudad San Ignacio El Escorial'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17197, 28, 'San Ramon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17198, 28, 'Santo Domingo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17199, 28, 'El Enebral Torrelodones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17200, 28, 'Espaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17201, 28, 'Las Colinas -Moraleja Enmedio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17202, 28, 'Colonia San Francisco Madrid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17203, 28, 'Varela -Torrelodones-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17204, 28, 'El Congosto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17205, 28, 'Montenebro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17206, 28, 'Real Cortijo de San Isidro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17207, 28, 'Corua Veinte Las Rozas Madrid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17208, 28, 'Costa de Madrid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17209, 28, 'Cotos de Monterrey -Venturada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17210, 28, 'Cuelgamuros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17211, 28, 'Las Cuestas -Galapagar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17212, 28, 'La Chopera -Las Rozas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17213, 28, 'Encinar del Alberche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17214, 28, 'La Estacion-Sta.Maria Alameda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17215, 28, 'La Estacion Y la Venta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17216, 28, 'Eurovillas-Las Villas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17217, 28, 'Famet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17218, 28, 'Fuente del Hito'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17219, 28, 'El Gasco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17220, 28, 'El Goloso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17221, 28, 'Grandes Valles Guadarrama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17222, 28, 'La Granjilla -S.S. Reyes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17223, 28, 'Guadamonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17224, 28, 'El Guijo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17225, 28, 'Hormigueras Leganes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17226, 28, 'Huertos Familiares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17227, 28, 'Humera -Pozuelo de Alarcon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17228, 28, 'I.N.T.A. -Torrejon de Ardoz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17229, 28, 'Jarabeltran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17230, 28, 'Los Jarales -Galapagar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17231, 28, 'Javacruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17232, 28, 'Las Lomas -Boadilla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17233, 28, 'Los Llanos -Alpedrete-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17234, 28, 'Los Manantiales-Sevilla Nueva-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17235, 28, 'Las Marias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17236, 28, 'Media Luna Guadarrama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17237, 28, 'El Mirador de Baztan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17238, 28, 'Miralpantano Guadalix Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17239, 28, 'Molino la Hoz-Nuevo Club Golf'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17240, 28, 'Monasterio Antiguo San Lorenzo El Escor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17241, 28, 'Monte Acevedo -Nuevo Baztan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17242, 28, 'Montealegre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17243, 28, 'Monte Alina-Prado Largo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17244, 28, 'Monte Ana Galapagar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17245, 28, 'Monteclaro -Pozuelo Alarcon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17246, 28, 'Monte de Las Encinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17247, 28, 'Monte Encinar El Escorial'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17248, 28, 'Monte Rozas -Las Rozas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17249, 28, 'Navalespino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17250, 28, 'Navallera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17251, 28, 'La Navata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17252, 28, 'Los Negrales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17253, 28, 'Nido del Aguila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17254, 28, 'Ntra Sra Carmen Y S.Antonio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17255, 28, 'Nuevo Camarma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17256, 28, 'Nuevo Chinchon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17257, 28, 'Nuevo Versalles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17258, 28, 'El Olivar Mejorada Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17259, 28, 'Olivar de Miraval'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17260, 28, 'El Paraiso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17261, 28, 'Parquelagos -Galapagar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17262, 28, 'La Parra -Santa Maria Alameda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17263, 28, 'Patones de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17264, 28, 'Pea Gato Manzanares Real'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17265, 28, 'Los Peascales -Torrelodones-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17266, 28, 'El Peon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17267, 28, 'Peralejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17268, 28, 'Perales del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17269, 28, 'Pinar de Las Rozas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17270, 28, 'Pinares Llanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17271, 28, 'Pinilla de Buitrago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17272, 28, 'Pino Alto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17273, 28, 'Urb. Pino Centinela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17274, 28, 'Pinosol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17275, 28, 'La Ponderosa de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17276, 28, 'La Poveda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17277, 28, 'Las Praderas El Boalo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17278, 28, 'Prado del Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17279, 28, 'Monte Alina-Prado Largo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17280, 28, 'Santillana Y Presa del Villar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17281, 28, 'El Puerto de Galapagar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17282, 28, 'Race -San Sebastian Reyes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17283, 28, 'Los Ranchos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17284, 28, 'Raya del Palancar-Guadamonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17285, 28, 'Reajo del Roble'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17286, 28, 'El Picon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17287, 28, 'Urb. Jarama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17288, 28, 'El Retamar -Moralzarzal-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17289, 28, 'Rio Cofio -Robledo de Chavela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17290, 28, 'El Robledal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17291, 28, 'Roncesvalles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17292, 28, 'Las Rozuelas -Torrelodones-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17293, 28, 'El Pocillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17294, 28, 'San Lorenzo de El Escorial'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17295, 28, 'San Millan Moraleja Enmedio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17296, 28, 'San Muriel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17297, 28, 'San Muriel Cerceda El Boalo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17298, 28, 'San Muriel Mataelpino El Boalo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17299, 28, 'Santa Elena San Martin Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17300, 28, 'Santa Maria Villanueva Pardillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17301, 28, 'Serracines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17302, 28, 'La Serranilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17303, 28, 'Silillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17304, 28, 'Somosaguas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17305, 28, 'El Soto de la Moraleja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17306, 28, 'Soto de Viuelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17307, 28, 'La Suiza Espaola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17308, 28, 'Tablada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17309, 28, 'Valdecabaas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17310, 28, 'Valdeperales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17311, 28, 'Valderrios Estremera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17312, 28, 'Valdesqui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17313, 28, 'Venta de Mea Y Calcetas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17314, 28, 'Venta la Rubia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17315, 28, 'Ventorro del Cano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17316, 28, 'Villafranca del Castillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17317, 28, 'Villamejor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17318, 28, 'Los Villares -Arganda del Rey-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17319, 28, 'Eurovillas-Las Villas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17320, 28, 'Via Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17321, 28, 'Las Yucas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17322, 28, 'Las Zorreras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17323, 28, 'Zulema'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17324, 28, 'Los Robles -Torrelodones-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17325, 28, 'La Micaela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17326, 28, 'Virgen de Iziar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17327, 28, 'Los Berrocales del Jarama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17328, 28, 'I.N.T.A. -Paracuellos Jarama-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17329, 28, 'El Castillo-Torrejon de Ardoz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17330, 28, 'El Berrocal -Becerril Sierra-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17331, 28, 'El Berrocal El Boalo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17332, 28, 'Cerro Alarcon -Valdemorillo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17333, 28, 'Ciudalcampo -Colmenar Viejo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17334, 28, 'Ciudalcampo -S.S. Reyes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17335, 28, 'El Encinar de Los Reyes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17336, 28, 'Entrepinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17337, 28, 'Entrepinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17338, 28, 'Monteprincipe -Alcorcon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17339, 28, 'Urb. Monteprincipe -Boadilla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17340, 28, 'Pqe. de Boadilla del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17341, 28, 'El Quion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17342, 28, 'Los Peascales -Torrelodones-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17343, 28, 'El Alamo -Fuenlabrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17344, 28, 'Pol. Albarreja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17345, 28, 'Pol. Ind. Albresa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17346, 28, 'Poligono Industrial Azque Alcala Henare'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17347, 28, 'Poligono Industrial Bauelos Alcala Hen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17348, 28, 'Cobo-Calleja -Fuenlabrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17349, 28, 'Cordel de la Carrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17350, 28, 'Poligono Industrial Cysa Arganda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17351, 28, 'Poligono Industrial Estacion Pinto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17352, 28, 'Poligono Industrial Mejorada Mejorada C'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17353, 28, 'Poligono Industrial Guijar Arganda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17354, 28, 'Poligono Industrial Olivar Arganda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17355, 28, 'Poligono Industrial Finanzauto Arganda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17356, 28, 'Poligono Industrial la Toca Fuenlabrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17357, 28, 'Las Arenas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17358, 28, 'Pol.Ind.Fronteras San Fernando'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17359, 28, 'Pol.Ind.Los Angeles Getafe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17360, 28, 'Pol.Ind.Los Caballos Humanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17361, 28, 'Poligono Industrial Los Calahorros Huma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17362, 28, 'Los Frailes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17363, 28, 'Poligono Industrial Los Robles Arganda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17364, 28, 'Pol. El Malvar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17365, 28, 'Poligono Industrial Matagallegos Fuenla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17366, 28, 'Poligono Industrial Mobeco Fuenlabrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17367, 28, 'Poligono Industrial Nio Remedio Fuenla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17368, 28, 'Poligono Industrial Nuasa la Postura Va'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17369, 28, 'Poligono Industrial Puente Viejo Argand'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17370, 28, 'Poligono Industrial Sevilla Fuenlabrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17371, 28, 'Poligono Industrial Sonsoles Fuenlabrad'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17372, 28, 'Poligono Industrial Uranga Fuenlabrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17373, 28, 'Valdelagua-S.Agustin Guadalix-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17374, 28, 'Valdelagua Sevilla Nueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17375, 28, 'Zna. Industrial -Alcobendas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17376, 28, 'Zna. Industrial -S.S. Reyes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17377, 28, 'Valcotos Rascafria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17378, 28, 'Serranillo la Torreza Chinchon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17379, 28, 'Cerro Alarcon -Navalagamella-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17380, 28, 'Campamento Militar San Pedro Colmenar V'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17381, 28, 'Parque Coimbra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17382, 28, 'El Serranillo la Torreza Chinchon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17383, 28, 'Arroyo Butarque Cerro Castaar Leganes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17384, 28, 'Bellavista -Galapagar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17385, 28, 'Berzosa -Hoyo de Manzanares-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17386, 28, 'Calipo Ii -Navalcarnero-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17387, 28, 'Las Castellanas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17388, 28, 'Los Cortijos -Sevilla Nueva-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17389, 28, 'Dominio Fontenebro-C.Villalba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17390, 28, 'El Pealar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17391, 28, 'Pol. Industrial Leganes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17392, 28, 'Urb. de Golf de Las Rozas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17393, 28, 'Vallefresnos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17394, 28, 'El Bosque -Villaviciosa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17395, 28, 'Campodon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17396, 28, 'Campodon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17397, 28, 'Los Arroyos -El Escorial-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17398, 28, 'Fuente la Teja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17399, 28, 'La Pedriza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17400, 28, 'Pea Cuervo Paracuellos Jarama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17401, 28, 'Presa de Puentes Viejas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17402, 28, 'Puente la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17403, 28, 'Rio Guadarrama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17404, 28, 'Emisora de Onda Corta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17405, 28, 'Monteprincipe Pozuelo Alarcon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17406, 28, 'Estacion del Plantio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17407, 28, 'Zona Industrial Paracuellos Paracuellos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17408, 28, 'Zona Industrial Humanes Madrid Humanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17409, 28, 'Entrealamos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17410, 28, 'Parque-Rozas -Las Rozas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17411, 28, 'Urb. Punta Galea -Las Rozas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17412, 28, 'Conmar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17413, 28, 'Estacion Transmisora Marina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17414, 28, 'Club Deportivo Valdelaguila Villalbilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17415, 28, 'El Gurugu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17416, 28, 'Zona Industrial Carretera Madrid Argand'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17417, 28, 'Eurovillas Villar Olmo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17418, 28, 'Cinco Villas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17419, 28, 'La Fuensanta Lozoya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17420, 28, 'Los Berrocales -Alpedrete-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17421, 28, 'Valdencina -Alpedrete-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17422, 28, 'Montellano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17423, 28, 'Vista Real'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17424, 28, 'La Ponderosa de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17425, 28, 'Colonia El Rebollar El Boalo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17426, 28, 'Urb. Montesclaros -El Boalo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17427, 28, 'Serrania de la Paloma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17428, 28, 'El Corzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17429, 28, 'Las Minas Galapagar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17430, 28, 'El Pinar Puente Nuevo Galapagar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17431, 28, 'Guadamolinos Guadarrama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17432, 28, 'Mata Rosal Navacerrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17433, 28, 'Los Jarales -Torrelodones-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17434, 28, 'Los Llanos Escorial El Escorial'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17435, 28, 'La Hoya -Sta.Maria la Alameda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17436, 28, 'La Junta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17437, 28, 'La Paradilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17438, 28, 'Las Herreras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17439, 28, 'El Pimpollar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17440, 28, 'Pea Rosal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17441, 28, 'El Mirador del Romero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17442, 28, 'Dehesa -Valdemorillo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17443, 28, 'Pqe. Infantas -Valdemorillo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17444, 28, 'El Nogal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17445, 28, 'Valderrey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17446, 28, 'Los Chartales Colmenar Viejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17447, 28, 'Poligono Industrial Sur Colmenar Viejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17448, 28, 'Poligono Industrial Suroeste Colmenar V'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17449, 28, 'Vistasierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17450, 28, 'El Mirador Cadalso Cadalso Vidrios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17451, 28, 'El Morro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17452, 28, 'San Juan -Navas del Rey-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17453, 28, 'Mirador Pelayos Pelayos Presa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17454, 28, 'San Juan -Pelayos de la Presa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17455, 28, 'Las Cumbres San Martin Valdeiglesias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17456, 28, 'Cotorredondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17457, 28, 'El Valle de Los Rosales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17458, 28, 'El Pinar -Cubas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17459, 28, 'El Soto -Cubas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17460, 28, 'La Mocha Chica'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17461, 28, 'Los Burdiales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17462, 28, 'Pesadilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17463, 28, 'Valdelamasa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17464, 28, 'Villanueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17465, 28, 'La Aldehuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17466, 28, 'Vereda de Los Estudiantes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17467, 28, 'Alcotan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17468, 28, 'Las Rozas de Madrid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17469, 28, 'Conjunto Olimpia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17470, 28, 'Corua Xxi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17471, 28, 'Entremontes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17472, 28, 'Las Mansiones Rozas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17473, 28, 'El Mirador Rozas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17474, 28, 'Monte Alto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17475, 28, 'Monte Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17476, 28, 'Monte Lomas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17477, 28, 'Parque Matas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17478, 28, 'Residencial Atenas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17479, 28, 'Residencial Corinto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17480, 28, 'Residencial Pavia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17481, 28, 'Salonica'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17482, 28, 'Seorio Rozas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17483, 28, 'Los Servales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17484, 28, 'La Caada -Villavieja Lozoya-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17485, 28, 'La Caada -Villavieja Lozoya-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17486, 28, 'Campillo de San Isidro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17487, 28, 'Casa Eulogio -Rivas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17488, 28, 'El Negralejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17489, 28, 'El Piul'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17490, 28, 'El Porcal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17491, 28, 'Rivas-Vaciamadrid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17492, 28, 'Jardin de Serracines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17493, 28, 'Los Caminos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17494, 28, 'Parque Arzobispo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17495, 28, 'Castillejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17496, 28, 'La Flamenca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17497, 28, 'Las Infantas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17498, 28, 'Aldehuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17499, 28, 'San Miguel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17500, 28, 'Los Angeles'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17501, 28, 'La Boyeriza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17502, 28, 'Gozquez de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17503, 28, 'Gozquez de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17504, 28, 'Isla Santa Teresa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17505, 28, 'El Pingarron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17506, 28, 'Soto Pajares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17507, 28, 'Vallequillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17508, 28, 'Sierra de Tajua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17509, 28, 'Dehesa Arenales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17510, 28, 'Pearrubia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17511, 28, 'Buenameson'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17512, 28, 'Castillo de Tajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17513, 28, 'Cobos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17514, 28, 'El Verdugal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17515, 28, 'Cerca Pernal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17516, 28, 'Estacion Gascones-Buitrago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17517, 28, 'Navarro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17518, 28, 'Palancar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17519, 28, 'Prado Empeado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17520, 28, 'Terreros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17521, 28, 'Los Grifos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17522, 28, 'Chaparritas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17523, 28, 'Los Llanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17524, 28, 'Las Cabezas-Villavieja Lozoya-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17525, 28, 'El Tercio de la Laguna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17526, 28, 'Arroyo Sauces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17527, 28, 'Pea Redondera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17528, 28, 'La Roca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17529, 28, 'Sierra Bonita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17530, 28, 'Las Dehesas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17531, 28, 'La Fuenfria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17532, 28, 'Los Barrizales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17533, 28, 'Los Linos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17534, 28, 'Monte Golf'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17535, 28, 'Navalquejigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17536, 28, 'Berzalejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17537, 28, 'Parque Colinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17538, 28, 'El Molino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17539, 28, 'Los Palacios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17540, 28, 'Monte Pinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17541, 28, 'Urb. la Herradura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17542, 28, 'Las Peas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17543, 28, 'El Campillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17544, 28, 'La Granjilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17545, 28, 'Las Radas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17546, 28, 'Monte Escorial'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17547, 28, 'La Pizarra-Felipe Ii'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17548, 28, 'La Pizarrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17549, 28, 'Tres Dehesas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17550, 28, 'Bustarnuevo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17551, 28, 'La Pesquera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17552, 28, 'El Robledal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17553, 28, 'Los Lagunazos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17554, 28, 'El Montecillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17555, 28, 'Tierra Iglesia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17556, 28, 'El Tomillar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17557, 28, 'Las Arreturas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17558, 28, 'El Asonante'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17559, 28, 'Cerrillo Valentin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17560, 28, 'El Chaparral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17561, 28, 'El Erial'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17562, 28, 'La Sima'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17563, 28, 'Los Rancajales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17564, 28, 'La Fabrica'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17565, 28, 'Cerro Matallera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17566, 28, 'Colonia Inmaculada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17567, 28, 'Miraval'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17568, 28, 'Los Chaparrales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17569, 28, 'El Portazgo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17570, 28, 'Ribera Alberche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17571, 28, 'Soto Verde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17572, 28, 'Encinasola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17573, 28, 'Valle del Sol-Colmenar Arroyo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17574, 28, 'Inta Nasa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17575, 28, 'El Molar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17576, 28, 'La Dehesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17577, 28, 'Las Escuelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17578, 28, 'Los Manzanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17579, 28, 'Perales de Milla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17580, 28, 'La Malpuesta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17581, 28, 'El Bosque -Villaviciosa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17582, 28, 'El Mirador'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17583, 28, 'Mariblanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17584, 28, 'Carril Toledano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17585, 28, 'Madrid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17586, 28, 'Caserio de Perales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17587, 28, 'Caaveral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17588, 28, 'Pqe. Empresarial Las Rozas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17589, 28, 'Peas Albas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17590, 28, 'Arganda del Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17591, 28, 'Valdepastores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17592, 28, 'Cantoblanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17593, 28, 'Montemorillo -Valdemorillo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17594, 28, 'Urtajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17595, 28, 'Valle de San Juan-Los Vallejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17596, 28, 'Madrid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17597, 28, 'Prado Norte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17598, 28, 'El Soto de la Moraleja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17599, 28, 'Collado Villalba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17600, 28, 'Brea de Tajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17601, 28, 'Maselo Useras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17602, 28, 'Madrid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17603, 28, 'Aravaca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17604, 28, 'Las Rozas de Madrid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17605, 28, 'Plantio,El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17606, 28, 'Valdemuillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17607, 28, 'Madrid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17608, 28, 'Boadilla del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17609, 28, 'Barajas de Madrid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17610, 29, 'Alameda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17611, 29, 'Algarrobo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17612, 29, 'Alhaurin El Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17613, 29, 'Alhaurin de la Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17614, 29, 'Alora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17615, 29, 'Antequera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17616, 29, 'Archidona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17617, 29, 'Bobadilla-Estacion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17618, 29, 'Campanillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17619, 29, 'Campillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17620, 29, 'Estacion -Cartama-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17621, 29, 'Cartama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17622, 29, 'Casabermeja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17623, 29, 'Colmenar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17624, 29, 'Competa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17625, 29, 'Coin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17626, 29, 'Cortes de la Frontera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17627, 29, 'Churriana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17628, 29, 'Estepona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17629, 29, 'Fuengirola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17630, 29, 'Fuente de Piedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17631, 29, 'Humilladero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17632, 29, 'Malaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17633, 29, 'Marbella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17634, 29, 'Carranque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17635, 29, 'Mollina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17636, 29, 'Monda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17637, 29, 'Ojen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17638, 29, 'Pizarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17639, 29, 'Puerto de la Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17640, 29, 'Rincon de la Victoria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17641, 29, 'Sayalonga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17642, 29, 'Torre del Mar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17643, 29, 'Torrox'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17644, 29, 'Salto del Negro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17645, 29, 'Velez-Malaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17646, 29, 'Villanueva del Rosario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17647, 29, 'Villanueva del Trabuco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17648, 29, 'Almargen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17649, 29, 'Arriate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17650, 29, 'Benaojan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17651, 29, 'Caete la Real'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17652, 29, 'Casares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17653, 29, 'Gaucin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17654, 29, 'Manilva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17655, 29, 'Montejaque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17656, 29, 'Ronda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17657, 29, 'Teba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17658, 29, 'Cuevas Bajas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17659, 29, 'Nerja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17660, 29, 'Sierra de Yeguas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17661, 29, 'Mijas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17662, 29, 'Villanueva Concepcion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17663, 29, 'Cuevas de San Marcos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17664, 29, 'Ardales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17665, 29, 'Carratraca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17666, 29, 'Periana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17667, 29, 'Riogordo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17668, 29, 'Estacion de Archidona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17669, 29, 'Villanueva de Algaidas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17670, 29, 'Alozaina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17671, 29, 'El Burgo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17672, 29, 'Casarabonela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17673, 29, 'Tolox'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17674, 29, 'Yunquera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17675, 29, 'Frigiliana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17676, 29, 'Villanueva de Tapia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17677, 29, 'Almogia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17678, 29, 'Alfarnate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17679, 29, 'Alfarnatejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17680, 29, 'Algatocin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17681, 29, 'Alpandeire'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17682, 29, 'Atajate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17683, 29, 'Benadalid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17684, 29, 'Benahavis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17685, 29, 'Benalauria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17686, 29, 'Benarraba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17687, 29, 'Bobadilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17688, 29, 'Cartajima'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17689, 29, 'Cartaojal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17690, 29, 'El Colmenar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17691, 29, 'Cuevas del Becerro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17692, 29, 'El Chorro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17693, 29, 'Farajan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17694, 29, 'Genalguacil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17695, 29, 'Guaro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17696, 29, 'Igualeja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17697, 29, 'Istan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17698, 29, 'Jimera de Libar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17699, 29, 'Jubrique'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17700, 29, 'Juzcar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17701, 29, 'Torrox-Costa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17702, 29, 'Parauta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17703, 29, 'Pujerra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17704, 29, 'Serrato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17705, 29, 'Villanueva de Cauche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17706, 29, 'San Pedro de Alcantara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17707, 29, 'Archez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17708, 29, 'Caleta de Velez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17709, 29, 'Canillas de Albaida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17710, 29, 'Benajarafe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17711, 29, 'Mondron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17712, 29, 'Estacion de Salinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17713, 29, 'Maro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17714, 29, 'Las Mellizas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17715, 29, 'Valle de Abdalajis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17716, 29, 'Arenas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17717, 29, 'Benamocarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17718, 29, 'Benamargosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17719, 29, 'Iznate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17720, 29, 'Benalmadena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17721, 29, 'Alcaucin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17722, 29, 'Almachar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17723, 29, 'El Borge'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17724, 29, 'Canillas de Aceituno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17725, 29, 'Comares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17726, 29, 'Cutar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17727, 29, 'Los Romanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17728, 29, 'Salares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17729, 29, 'Sedella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17730, 29, 'Viuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17731, 29, 'Arroyo Miel-Benalmadena-Costa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17732, 29, 'Benagalbon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17733, 29, 'Macharaviaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17734, 29, 'Moclinejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17735, 29, 'Totalan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17736, 29, 'Montecorto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17737, 29, 'Joya Nogales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17738, 29, 'Olias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17739, 29, 'Puente de Salia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17740, 29, 'Elviria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17741, 29, 'Triana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17742, 29, 'Navahermosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17743, 29, 'Zalea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17744, 29, 'La Indiana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17745, 29, 'El Albaicin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17746, 29, 'Caada del Real Tesoro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17747, 29, 'Chilches'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17748, 29, 'Almayate Alto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17749, 29, 'Almayate Bajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17750, 29, 'Bda. Estacion -Jimera Libar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17751, 29, 'Parrilla-Zamarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17752, 29, 'Villafranco del Guadalhorce'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17753, 29, 'Torremolinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17754, 29, 'Llanos de Antequera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17755, 29, 'Valdes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17756, 29, 'Cerralba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17757, 29, 'Santa Rosalia-Maqueda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17758, 29, 'Corumbela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17759, 29, 'Benaque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17760, 29, 'Cancelada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17761, 29, 'Lagos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17762, 29, 'Gibralgalia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17763, 29, 'Hoyo Tabares-Moreno Y Vicenta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17764, 29, 'Parchite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17765, 29, 'Algarrobo-Costa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17766, 29, 'La Atalaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17767, 29, 'La Cala del Moral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17768, 29, 'San Luis de Sabinillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17769, 29, 'Torre de Benagalbon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17770, 29, 'Carvajal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17771, 29, 'Arroyo Miel-Benalmadena-Costa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17772, 29, 'La Cimada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17773, 29, 'Mijas-Costa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17774, 29, 'Alqueria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17775, 29, 'El Romeral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17776, 29, 'Santa Amalia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17777, 29, 'Sexmo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17778, 29, 'Barriada Estacion -Benaojan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17779, 29, 'Las Chapas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17780, 29, 'Barriada Estacion -Alora-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17781, 29, 'Calahonda-Chaparral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17782, 29, 'Calypso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17783, 29, 'Riviera del Sol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17784, 29, 'Huertas del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17785, 29, 'Nueva Andalucia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17786, 29, 'La Sauceda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17787, 29, 'El Salitre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17788, 29, 'Genal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17789, 29, 'La Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17790, 29, 'Opayar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17791, 29, 'Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17792, 29, 'Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17793, 29, 'El Robledal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17794, 29, 'Puente Rio Genal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17795, 29, 'La Araa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17796, 29, 'Torre Alqueria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17797, 29, 'Secadero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17798, 29, 'Pasada de Granadillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17799, 29, 'Rio Bermuza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17800, 29, 'Trapiche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17801, 29, 'Los Carvajales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17802, 29, 'Daimalos Vados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17803, 29, 'Los Morales-Santa Maria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17804, 29, 'Sanguijuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17805, 29, 'Pantano del Chorro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17806, 29, 'La Zubia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17807, 29, 'Jaboneros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17808, 29, 'Santo Pitar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17809, 29, 'Arroyo Coche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17810, 29, 'Arroyo Molinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17811, 29, 'Barranco de Zafra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17812, 29, 'Barranco del Sol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17813, 29, 'Campo de Camara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17814, 29, 'Monterroso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17815, 29, 'Los Nuez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17816, 29, 'Casapalma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17817, 29, 'Comendador'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17818, 29, 'Doa Ana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17819, 29, 'Fahala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17820, 29, 'Peral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17821, 29, 'Yeseras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17822, 29, 'Cajiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17823, 29, 'Cabrillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17824, 29, 'Alqueria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17825, 29, 'Huertas Y Montes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17826, 29, 'Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17827, 29, 'Solano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17828, 29, 'Arroyo Coche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17829, 29, 'Vega Santa Maria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17830, 29, 'Las Lagunas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17831, 29, 'Huertas Y Lomas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17832, 29, 'Las Lomas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17833, 29, 'Dehesilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17834, 29, 'El Castillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17835, 29, 'Arroyo Ancon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17836, 29, 'Arroyo Corrales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17837, 29, 'Arroyo Gevar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17838, 29, 'Casablanquilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17839, 29, 'Sabinal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17840, 29, 'Vega Malilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17841, 29, 'Vega Morales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17842, 29, 'Lagunillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17843, 29, 'Camino Real'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17844, 29, 'Chapera-Madroal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17845, 29, 'Moheda-Portales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17846, 29, 'Caravaca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17847, 29, 'Gonzalo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17848, 29, 'Majada del Moro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17849, 29, 'El Robledal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17850, 29, 'La Sauceda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17851, 29, 'Camorra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17852, 29, 'Arroyo Casarabonela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17853, 29, 'Rivera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17854, 29, 'Los Arenosos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17855, 29, 'Sancho Jaen-Huertas Nuevas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17856, 29, 'Lifa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17857, 29, 'Villalon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17858, 29, 'Peacerrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17859, 29, 'Los Molinos-Sijuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17860, 29, 'Rio de la Miel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17861, 29, 'Entrerrios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17862, 29, 'Valtocado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17863, 29, 'Catalan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17864, 29, 'Cortijo Blanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17865, 29, 'Marchamona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17866, 29, 'Parrilla-Zamarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17867, 29, 'Arroyo de Las Caas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17868, 29, 'Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17869, 29, 'Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17870, 29, 'Cortijillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17871, 29, 'Espino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17872, 29, 'Pilarejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17873, 29, 'Toril'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17874, 29, 'Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17875, 29, 'Las Rozas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17876, 29, 'Rubite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17877, 29, 'La Aldea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17878, 29, 'Los Castillejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17879, 29, 'Herrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17880, 29, 'Los Paulas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17881, 29, 'Cortijuelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17882, 29, 'El Padron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17883, 29, 'Jorox'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17884, 29, 'La Atalaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17885, 29, 'Ramirez Ermita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17886, 29, 'Las Casillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17887, 29, 'Valverdes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17888, 29, 'Los Marines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17889, 29, 'Masmullar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17890, 29, 'Cuevas Romo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17891, 29, 'Venta Baja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17892, 29, 'Las Chozas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17893, 29, 'Zorrilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17894, 29, 'Portugalejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17895, 29, 'Los Villalones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17896, 29, 'Los Frailes-Frontones-Higueras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17897, 29, 'El Velerin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17898, 29, 'Resinera-Voladilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17899, 29, 'Huertas Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17900, 29, 'El Alamo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17901, 29, 'Mariandana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17902, 29, 'El Conde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17903, 29, 'Aguirre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17904, 29, 'Los Millanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17905, 29, 'Los Morenos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17906, 29, 'Casilla Carpintero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17907, 29, 'Guadalmina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17908, 29, 'La Millana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17909, 29, 'Ardite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17910, 29, 'Los Gamez Pitas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17911, 29, 'Cerros del Lago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17912, 29, 'Parque Tecnologico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17913, 29, 'La Chullera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17914, 29, 'Las Caadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17915, 29, 'El Tarajal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17916, 29, 'La Cala -Mijas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17917, 29, 'Las Chapas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17918, 29, 'Barriada Estacion -Alora-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17919, 29, 'Barriada Estacion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17920, 29, 'El Morche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17921, 29, 'La Cala del Moral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17922, 29, 'Alhucemas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17923, 29, 'Chafarinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17924, 29, 'Peon Velez Gomera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17925, 29, 'Melilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17926, 30, 'Abanilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17927, 30, 'Abaran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17928, 30, 'Aguilas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17929, 30, 'La Alberca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17930, 30, 'Albudeite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17931, 30, 'Albujon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17932, 30, 'Alcantarilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17933, 30, 'Los Alcazares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17934, 30, 'El Algar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17935, 30, 'Alguazas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17936, 30, 'Alhama de Murcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17937, 30, 'Alquerias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17938, 30, 'Archena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17939, 30, 'Balsicas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17940, 30, 'Los Baos -Fortuna-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17941, 30, 'Araina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17942, 30, 'Beniajan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17943, 30, 'Beniel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17944, 30, 'Blanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17945, 30, 'Bullas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17946, 30, 'Cabezo de Torres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17947, 30, 'Calasparra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17948, 30, 'Caravaca de la Cruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17949, 30, 'Cartagena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17950, 30, 'Cehegin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17951, 30, 'Ceuti'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17952, 30, 'Cieza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17953, 30, 'Espinardo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17954, 30, 'Fortuna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17955, 30, 'Jumilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17956, 30, 'Librilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17957, 30, 'Lorca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17958, 30, 'Lorqui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17959, 30, 'Puerto Lumbreras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17960, 30, 'Molina de Segura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17961, 30, 'Monteagudo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17962, 30, 'Moratalla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17963, 30, 'Mula'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17964, 30, 'Murcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17965, 30, 'La Palma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17966, 30, 'El Palmar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17967, 30, 'Pliego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17968, 30, 'Pozo Estrecho'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17969, 30, 'La Puebla de Mula'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17970, 30, 'Santomera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17971, 30, 'San Javier'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17972, 30, 'San Pedro del Pinatar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17973, 30, 'Santiago de la Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17974, 30, 'Torre-Pacheco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17975, 30, 'Las Torres de Cotillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17976, 30, 'Totana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17977, 30, 'Ulea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17978, 30, 'La Union'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17979, 30, 'Villanueva del Rio Segura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17980, 30, 'Yecla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17981, 30, 'Ricote'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17982, 30, 'Dolores -Torre-Pacheco-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17983, 30, 'Fuente Alamo de Murcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17984, 30, 'Valentin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17985, 30, 'Los Dolores -Cartagena-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17986, 30, 'Campos del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17987, 30, 'Torrealta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17988, 30, 'Mazarron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17989, 30, 'Puerto de Mazarron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17990, 30, 'La Aljorra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17991, 30, 'Ojos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17992, 30, 'Barinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17993, 30, 'Macisvenda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17994, 30, 'Almendricos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17995, 30, 'Balsapintada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17996, 30, 'Jimenado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17997, 30, 'Roldan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17998, 30, 'Aledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (17999, 30, 'La Copa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18000, 30, 'Corvera'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18001, 30, 'Cuevas de Reyllo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18002, 30, 'Las Palas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18003, 30, 'La Pinilla -Fuente Alamo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18004, 30, 'Valladolises'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18005, 30, 'Zeneta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18006, 30, 'Yechar -Mula-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18007, 30, 'La Manga del Mar Menor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18008, 30, 'Esparragal Murcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18009, 30, 'Archivel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18010, 30, 'Barranda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18011, 30, 'Hoya del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18012, 30, 'La Alqueria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18013, 30, 'Fuente del Pino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18014, 30, 'Lobosillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18015, 30, 'Los Martinez del Puerto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18016, 30, 'La Puebla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18017, 30, 'La Paca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18018, 30, 'Doa Ines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18019, 30, 'Campillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18020, 30, 'Coy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18021, 30, 'Zarcilla de Ramos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18022, 30, 'Aviles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18023, 30, 'Raspay'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18024, 30, 'Alumbres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18025, 30, 'Los Belones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18026, 30, 'Tentegorra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18027, 30, 'Venta de la Virgen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18028, 30, 'Canteras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18029, 30, 'Los Urrutias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18030, 30, 'La Aparecida Lentiscar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18031, 30, 'Barqueros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18032, 30, 'San Isidro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18033, 30, 'Cuesta Blanca de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18034, 30, 'Molinos Marfagones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18035, 30, 'Avileses'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18036, 30, 'Sucina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18037, 30, 'Perin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18038, 30, 'Tallante'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18039, 30, 'Fuente Librilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18040, 30, 'Pozo Los Palos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18041, 30, 'El Berro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18042, 30, 'Cehegin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18043, 30, 'Torrente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18044, 30, 'La Parroquia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18045, 30, 'Portman'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18046, 30, 'Roche Bajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18047, 30, 'Cabo de Palos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18048, 30, 'Caadas de San Pedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18049, 30, 'Los Cantareros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18050, 30, 'Los Almagros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18051, 30, 'Canovas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18052, 30, 'El Escobar -Fuente Alamo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18053, 30, 'El Estrecho -Fuente Alamo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18054, 30, 'El Canton'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18055, 30, 'Caada de la Lea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18056, 30, 'El Raal de Murcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18057, 30, 'Vista Alegre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18058, 30, 'Esparragal -Puerto Lumbreras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18059, 30, 'Ifre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18060, 30, 'Hortichuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18061, 30, 'Los Pulpites'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18062, 30, 'La Florida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18063, 30, 'San Pedro Cotillas Antigua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18064, 30, 'El Partidor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18065, 30, 'La Loma -Torres de Cotillas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18066, 30, 'Macaneo Ventorrillos Reales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18067, 30, 'La Media Legua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18068, 30, 'Cabezo de la Plata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18069, 30, 'La Grajuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18070, 30, 'Los Narejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18071, 30, 'Los Infiernos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18072, 30, 'Roda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18073, 30, 'Esparragal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18074, 30, 'Goar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18075, 30, 'Casas Nuevas -Mula-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18076, 30, 'Lebor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18077, 30, 'Santa Ana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18078, 30, 'El Mirador'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18079, 30, 'Pozo Aledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18080, 30, 'San Cayetano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18081, 30, 'Santa Rosalia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18082, 30, 'Torre Montijo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18083, 30, 'Los Marines -Calasparra-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18084, 30, 'Llano del Beal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18085, 30, 'El Raiguero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18086, 30, 'Sangonera Verde O Ermita Nueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18087, 30, 'Torre Teatinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18088, 30, 'Los Arejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18089, 30, 'Los Garcias Cartagena Miranda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18090, 30, 'Ribera de Molina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18091, 30, 'Beal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18092, 30, 'El Estrecho de San Gines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18093, 30, 'La Tercia -Gea Y Truyols-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18094, 30, 'Estacion Ferrea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18095, 30, 'El Moral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18096, 30, 'La Murta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18097, 30, 'Fuensanta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18098, 30, 'Zarzadilla de Totana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18099, 30, 'Las Librilleras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18100, 30, 'Madroeras Y El Llano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18101, 30, 'Los Royos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18102, 30, 'Fenazar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18103, 30, 'Los Valientes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18104, 30, 'Capres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18105, 30, 'La Matanza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18106, 30, 'Rambla Salada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18107, 30, 'Las Terreras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18108, 30, 'La Encarnacion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18109, 30, 'Barranco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18110, 30, 'Benablon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18111, 30, 'Navares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18112, 30, 'Pinilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18113, 30, 'Pozo Higuera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18114, 30, 'San Jose Artesano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18115, 30, 'Singla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18116, 30, 'Campillo de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18117, 30, 'Campillo de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18118, 30, 'La Almudema'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18119, 30, 'Los Beatos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18120, 30, 'Casa Castillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18121, 30, 'La Garapacha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18122, 30, 'Los Torraos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18123, 30, 'Las Casicas -Fortuna-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18124, 30, 'Fuente Blanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18125, 30, 'Pea Zafra de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18126, 30, 'Las Pullas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18127, 30, 'Guadalupe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18128, 30, 'Leiva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18129, 30, 'El Llano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18130, 30, 'Matanzas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18131, 30, 'Casillas de Murcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18132, 30, 'El Cabildo Y la Campana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18133, 30, 'Las Encebras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18134, 30, 'Matalentisco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18135, 30, 'Los Estrechos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18136, 30, 'El Labradorcico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18137, 30, 'Los Melenchones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18138, 30, 'Calabardina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18139, 30, 'El Mojon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18140, 30, 'Rodeo Primero O Huatazales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18141, 30, 'Campo Lopez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18142, 30, 'Ventorrillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18143, 30, 'Los Piuelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18144, 30, 'Miranda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18145, 30, 'Los Camachos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18146, 30, 'Palacios Blancos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18147, 30, 'Los Paganes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18148, 30, 'El Nio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18149, 30, 'Los Baos -Mula-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18150, 30, 'Agua Amarga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18151, 30, 'Zarzalico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18152, 30, 'Casa Rivera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18153, 30, 'Calar de la Santa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18154, 30, 'Caada de la Cruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18155, 30, 'Otos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18156, 30, 'La Tercia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18157, 30, 'El Sabinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18158, 30, 'Vite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18159, 30, 'Berrandino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18160, 30, 'Majada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18161, 30, 'La Alberquilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18162, 30, 'Caada del Trigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18163, 30, 'La Raja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18164, 30, 'Torre del Rico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18165, 30, 'Los Abades Y Las Norias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18166, 30, 'Escombreras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18167, 30, 'Agua Salada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18168, 30, 'Valle de Escombreras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18169, 30, 'El Aguila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18170, 30, 'Ajauque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18171, 30, 'El Alamillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18172, 30, 'El Alamillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18173, 30, 'La Alberquilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18174, 30, 'La Alberquilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18175, 30, 'El Consejero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18176, 30, 'La Alcanara Y Los Bucanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18177, 30, 'Algaida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18178, 30, 'El Algaidon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18179, 30, 'Algameca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18180, 30, 'El Algarrobo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18181, 30, 'Algezar Y El Llano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18182, 30, 'Algezares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18183, 30, 'El Aljibe Y Brencas de Sicilia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18184, 30, 'El Aljibejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18185, 30, 'Aljucer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18186, 30, 'Almadenes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18187, 30, 'Alporchones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18188, 30, 'Las Alquerias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18189, 30, 'Alquibla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18190, 30, 'La Alquibla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18191, 30, 'Altico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18192, 30, 'Altobordo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18193, 30, 'Altritar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18194, 30, 'Los Allozos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18195, 30, 'Amarguillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18196, 30, 'Ambros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18197, 30, 'Los Andreos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18198, 30, 'La Aparecida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18199, 30, 'Apiche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18200, 30, 'El Arco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18201, 30, 'Los Arcos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18202, 30, 'Ardal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18203, 30, 'Arrayan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18204, 30, 'Arroyo Alazor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18205, 30, 'Arroyo Blanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18206, 30, 'Arroyo Tercero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18207, 30, 'Los Arroyos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18208, 30, 'Ascoy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18209, 30, 'La Asomada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18210, 30, 'La Atalaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18211, 30, 'Atalaya Y Las Plazas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18212, 30, 'La Atalaya Y Los Urreas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18213, 30, 'Atamaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18214, 30, 'El Ave Y Los Simones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18215, 30, 'La Azacaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18216, 30, 'El Azaraque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18217, 30, 'Azarbe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18218, 30, 'La Azohia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18219, 30, 'Bajil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18220, 30, 'Los Balanzas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18221, 30, 'Baldazos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18222, 30, 'Balonga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18223, 30, 'Balsicas de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18224, 30, 'La Baa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18225, 30, 'Baos de Gilico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18226, 30, 'Baos Y Mendigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18227, 30, 'Las Barracas Manga M Menor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18228, 30, 'Las Barracas -Alhama Murcia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18229, 30, 'Barranco de Los Asensios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18230, 30, 'Barranco de Los Hilarios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18231, 30, 'Barranco de Seca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18232, 30, 'Barranco Hondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18233, 30, 'Barratera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18234, 30, 'Barriada Santiago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18235, 30, 'Barrio de la Aurora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18236, 30, 'Barrio de Las Toscas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18237, 30, 'La Basca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18238, 30, 'Las Balsicas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18239, 30, 'Bayna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18240, 30, 'Los Beltranes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18241, 30, 'Benamor de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18242, 30, 'Los Berengueles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18243, 30, 'La Bermeja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18244, 30, 'El Bezon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18245, 30, 'Bolnuevo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18246, 30, 'Bolvax'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18247, 30, 'El Boqueron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18248, 30, 'Borricen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18249, 30, 'Los Brianes Los Garcias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18250, 30, 'Burete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18251, 30, 'Cabecico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18252, 30, 'Cabezo de la Jara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18253, 30, 'El Cabezo -Bullas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18254, 30, 'El Cabezo -Lorca-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18255, 30, 'El Cabezo de Vista Alegre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18256, 30, 'Cabezuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18257, 30, 'Los Cachorros Y Amaritos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18258, 30, 'Cagitan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18259, 30, 'Cala Reona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18260, 30, 'Calantin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18261, 30, 'Torre de Los Martinez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18262, 30, 'Calnegre Y Los Curas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18263, 30, 'Los Camachos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18264, 30, 'Cambron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18265, 30, 'Los Cambroneros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18266, 30, 'Cno. Molinos -Totana-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18267, 30, 'Cno. Torreta -Totana-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18268, 30, 'Campana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18269, 30, 'El Campanero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18270, 30, 'Lo Campero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18271, 30, 'Campico Blanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18272, 30, 'El Campillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18273, 30, 'El Campillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18274, 30, 'Campillo de Adentro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18275, 30, 'Campillo de Los Jimenez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18276, 30, 'Campillo Y Suertes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18277, 30, 'Los Campillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18278, 30, 'Campo Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18279, 30, 'Campo Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18280, 30, 'Campo Coy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18281, 30, 'Campo Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18282, 30, 'Campo Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18283, 30, 'Campo de la Paca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18284, 30, 'Matanzas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18285, 30, 'Campo Nubla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18286, 30, 'Campotejar Alta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18287, 30, 'Campotejar Baja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18288, 30, 'Campules'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18289, 30, 'Canadillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18290, 30, 'La Canaleja Y El Pardo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18291, 30, 'Las Canales -Aledo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18292, 30, 'Las Canales -Lorca-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18293, 30, 'Canara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18294, 30, 'Caneja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18295, 30, 'Cantalgallo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18296, 30, 'El Cantal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18297, 30, 'Los Cantareros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18298, 30, 'Los Cantos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18299, 30, 'Caada de Canara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18300, 30, 'Caada de Gallego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18301, 30, 'Caada de Mena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18302, 30, 'Caada del Molinero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18303, 30, 'Caada Hermosa Y Jofre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18304, 30, 'Caada Honda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18305, 30, 'Caarejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18306, 30, 'Los Caavates'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18307, 30, 'Los Caos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18308, 30, 'Gauelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18309, 30, 'Capel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18310, 30, 'El Caracolero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18311, 30, 'El Carche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18312, 30, 'Cardenas Y Pradico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18313, 30, 'El Carmoli'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18314, 30, 'La Carrasca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18315, 30, 'El Carrascalejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18316, 30, 'Carrascoy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18317, 30, 'Carrasquilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18318, 30, 'Carrasquilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18319, 30, 'Caada de Cartin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18320, 30, 'Casa Alta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18321, 30, 'Casa Blanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18322, 30, 'Casa Blanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18323, 30, 'Casa Castillo Y El Vado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18324, 30, 'Casa de Eras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18325, 30, 'Purias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18326, 30, 'Casa de Los Garcia -Moratalla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18327, 30, 'Casas de Los Sordos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18328, 30, 'Casa de Panes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18329, 30, 'Casa del Rincon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18330, 30, 'La Casa Molina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18331, 30, 'Casa Palacio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18332, 30, 'Casa Puerto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18333, 30, 'Casa Requena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18334, 30, 'Casablanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18335, 30, 'Las Casas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18336, 30, 'Las Casas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18337, 30, 'Casas Altas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18338, 30, 'Casas de Aledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18339, 30, 'Casas de Egea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18340, 30, 'Casas Murcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18341, 30, 'Casas de Pea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18342, 30, 'Casas de Rubio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18343, 30, 'Casas de San Felix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18344, 30, 'Las Casas del Aljibe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18345, 30, 'Casas del Carril'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18346, 30, 'Casas del Hondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18347, 30, 'Casas del Molino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18348, 30, 'Casas Nuevas -Cartagena-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18349, 30, 'Casas Nuevas -Lorca-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18350, 30, 'Casas Nuevas Y de Gallardo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18351, 30, 'La Casica'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18352, 30, 'Casicas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18353, 30, 'Las Casicas -Cartagena-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18354, 30, 'Las Casicas -Fuente Alamo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18355, 30, 'Las Casicas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18356, 30, 'Las Casicas -Lorca-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18357, 30, 'Las Casicas -Puerto Lumbreras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18358, 30, 'Casicas de San Juan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18359, 30, 'Casicas del Portal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18360, 30, 'La Casilla -Lorca-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18361, 30, 'Los Castillejos Cartagena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18362, 30, 'Los Castillejos la Puebla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18363, 30, 'El Castillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18364, 30, 'Los Cautivos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18365, 30, 'Los Cegarras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18366, 30, 'Los Cegarras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18367, 30, 'Los Celdranes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18368, 30, 'El Cementerio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18369, 30, 'Cobaticas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18370, 30, 'Cobatillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18371, 30, 'Las Cobatillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18372, 30, 'El Cobo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18373, 30, 'Cocon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18374, 30, 'El Cocon Y Los Clementes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18375, 30, 'Collado Gil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18376, 30, 'Comala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18377, 30, 'La Condomina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18378, 30, 'La Condomina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18379, 30, 'Los Conesas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18380, 30, 'Los Conesas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18381, 30, 'Los Conventos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18382, 30, 'Cope'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18383, 30, 'La Corona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18384, 30, 'Corverica'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18385, 30, 'Corvillones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18386, 30, 'La Costera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18387, 30, 'El Coto Fortuna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18388, 30, 'Cruz de Cabai'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18389, 30, 'Cuartos de Rotas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18390, 30, 'Cuesta Alta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18391, 30, 'Cuesta de Galifa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18392, 30, 'Cuesta de Gos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18393, 30, 'Cuesta de la Escarihuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18394, 30, 'Cuesta de Mellado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18395, 30, 'Cuesta Blanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18396, 30, 'Cueva de Pagan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18397, 30, 'Las Cuevas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18398, 30, 'Cuevas de Las Salinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18399, 30, 'Chaparral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18400, 30, 'Charan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18401, 30, 'La Charca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18402, 30, 'El Charco de Molina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18403, 30, 'El Charcon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18404, 30, 'Los Charcos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18405, 30, 'Cherro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18406, 30, 'El Chicamo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18407, 30, 'El Chopillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18408, 30, 'Churra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18409, 30, 'Churra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18410, 30, 'Los Churtales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18411, 30, 'Los Diaz Corvera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18412, 30, 'Los Diaz -Fuente Alamo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18413, 30, 'La Doctora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18414, 30, 'Don Gonzalo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18415, 30, 'Don Judas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18416, 30, 'La Egesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18417, 30, 'Era Alta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18418, 30, 'Ermita de Burgos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18419, 30, 'Ermita de Los Carrascos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18420, 30, 'Ermita de Los Navarros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18421, 30, 'Ermita Santa Barbara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18422, 30, 'Ermita del Ramonete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18423, 30, 'Los Escabeas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18424, 30, 'La Escarihuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18425, 30, 'Escobar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18426, 30, 'Esparragueral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18427, 30, 'Las Esperanzas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18428, 30, 'El Espinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18429, 30, 'La Estacion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18430, 30, 'Estacion Ferrocarril'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18431, 30, 'Estacion Ferrocarril'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18432, 30, 'Los Estrases'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18433, 30, 'El Estrecho'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18434, 30, 'Feli'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18435, 30, 'Ficaira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18436, 30, 'Los Flores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18437, 30, 'Fontanares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18438, 30, 'Fotuya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18439, 30, 'Franceses Y Manchones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18440, 30, 'Fuente Morra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18441, 30, 'Fuente de Meca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18442, 30, 'La Galera Y Los Jopos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18443, 30, 'Galifa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18444, 30, 'Gauelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18445, 30, 'Los Garres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18446, 30, 'Garrobillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18447, 30, 'Garrobo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18448, 30, 'Gebas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18449, 30, 'Gilico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18450, 30, 'Ginete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18451, 30, 'Los Gomez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18452, 30, 'Los Granadicos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18453, 30, 'El Granero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18454, 30, 'La Granja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18455, 30, 'El Bohio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18456, 30, 'Los Puertos de Santa Barbara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18457, 30, 'Los Guardianes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18458, 30, 'Los Guerreros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18459, 30, 'La Guia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18460, 30, 'Los Guijarros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18461, 30, 'Henares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18462, 30, 'Los Heredias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18463, 30, 'La Herrea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18464, 30, 'Hinojar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18465, 30, 'El Hondon Y Los Jeronimos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18466, 30, 'El Hornico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18467, 30, 'Horno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18468, 30, 'Hoya Noguera Y Cuadrados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18469, 30, 'Hoyahermosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18470, 30, 'Hoyamorena -Torre-Pacheco-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18471, 30, 'La Huerta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18472, 30, 'Huerta del Abad'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18473, 30, 'Las Huertas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18474, 30, 'Los Huertos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18475, 30, 'Los Huertas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18476, 30, 'Humbrias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18477, 30, 'La Hurona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18478, 30, 'Hurtado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18479, 30, 'Inazares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18480, 30, 'Inchola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18481, 30, 'Isla Plana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18482, 30, 'Islas Menores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18483, 30, 'Javali Nuevo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18484, 30, 'Javali Viejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18485, 30, 'Los Jordanes Y Romeras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18486, 30, 'Lo Jorge'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18487, 30, 'La Junquera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18488, 30, 'Las Lentiscosas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18489, 30, 'Lo Leon Y Torre Mochuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18490, 30, 'Lichor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18491, 30, 'La Loma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18492, 30, 'Las Lomas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18493, 30, 'Las Lomas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18494, 30, 'Las Lomas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18495, 30, 'Los Lopez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18496, 30, 'Los Lopez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18497, 30, 'Los Lorcas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18498, 30, 'Los Lorentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18499, 30, 'Las Lorigas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18500, 30, 'Luchena'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18501, 30, 'Las Lumbreras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18502, 30, 'La Luz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18503, 30, 'Llano de Brujas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18504, 30, 'Los Llanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18505, 30, 'Los Madriles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18506, 30, 'Los Madriles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18507, 30, 'Mafraque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18508, 30, 'La Magdalena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18509, 30, 'La Majadilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18510, 30, 'Los Maldonados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18511, 30, 'Malverde Y Carrascas de Soto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18512, 30, 'La Manchica'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18513, 30, 'Mar de Cristal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18514, 30, 'Marco Vazquez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18515, 30, 'Marchena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18516, 30, 'Los Marines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18517, 30, 'Los Mayordomos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18518, 30, 'Mazuza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18519, 30, 'Nonduermas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18520, 30, 'La Media Legua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18521, 30, 'Los Medinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18522, 30, 'Medrano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18523, 30, 'Mendieta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18524, 30, 'Los Meroos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18525, 30, 'Mesillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18526, 30, 'Mignazares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18527, 30, 'Los Milicianos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18528, 30, 'La Mina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18529, 30, 'Mina Blanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18530, 30, 'Mingrano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18531, 30, 'Mingrano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18532, 30, 'Moharque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18533, 30, 'Los Molares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18534, 30, 'La Molata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18535, 30, 'El Molinillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18536, 30, 'Molino de Carrasco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18537, 30, 'Molino de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18538, 30, 'Molino Derribado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18539, 30, 'Moralejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18540, 30, 'Morales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18541, 30, 'Los Morenos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18542, 30, 'Moreras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18543, 30, 'Los Mortolitos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18544, 30, 'Los Muoces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18545, 30, 'Las Murtas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18546, 30, 'Nares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18547, 30, 'Los Navarros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18548, 30, 'Los Navarros Bajos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18549, 30, 'Nazaret'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18550, 30, 'Los Nicolases'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18551, 30, 'Los Nietos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18552, 30, 'Noguericas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18553, 30, 'Nonihay'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18554, 30, 'La ora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18555, 30, 'orica'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18556, 30, 'Los Odres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18557, 30, 'Olmillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18558, 30, 'Orihuelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18559, 30, 'Orilla Y Piero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18560, 30, 'Las Pachecas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18561, 30, 'Lo Pagan -San Pedro Pinatar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18562, 30, 'Pago Tocino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18563, 30, 'Los Palacios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18564, 30, 'Palma de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18565, 30, 'El Palmero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18566, 30, 'Pantaleo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18567, 30, 'Pantano de Alfonso Xiii'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18568, 30, 'Pantano de Puentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18569, 30, 'Pantano de Valdeinfierno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18570, 30, 'Parada de Los Coches'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18571, 30, 'El Pardo -Lorca-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18572, 30, 'Los Paredes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18573, 30, 'La Parra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18574, 30, 'Puente Pasico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18575, 30, 'Ifre-Pastrana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18576, 30, 'Patio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18577, 30, 'La Pava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18578, 30, 'Los Pavos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18579, 30, 'Las Pedreras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18580, 30, 'Pelile Y El Jurado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18581, 30, 'Pearanda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18582, 30, 'Las Peas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18583, 30, 'El Peoso Y la Colonia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18584, 30, 'Perana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18585, 30, 'Los Perdigones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18586, 30, 'Los Perez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18587, 30, 'Los Perez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18588, 30, 'Los Perez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18589, 30, 'Los Perez de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18590, 30, 'Los Perez de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18591, 30, 'Piezas de Costa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18592, 30, 'Pinar Hermoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18593, 30, 'La Piqueta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18594, 30, 'El Plan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18595, 30, 'Plantones de Mata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18596, 30, 'Playa Honda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18597, 30, 'El Porche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18598, 30, 'El Portus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18599, 30, 'Prados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18600, 30, 'Puebla de Soto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18601, 30, 'Puente Tocinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18602, 30, 'El Puerto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18603, 30, 'Puerto Muriel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18604, 30, 'Las Pujantas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18605, 30, 'Pulgara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18606, 30, 'El Puntal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18607, 30, 'Los Rabales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18608, 30, 'La Rambla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18609, 30, 'Rambla de Charrara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18610, 30, 'Rambla del Pino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18611, 30, 'La Rambla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18612, 30, 'Las Ramblas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18613, 30, 'Los Ramos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18614, 30, 'Rauda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18615, 30, 'La Raya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18616, 30, 'Redon Y Venta de Ceferino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18617, 30, 'Rellano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18618, 30, 'El Reolid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18619, 30, 'Las Reposaderas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18620, 30, 'Retamalejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18621, 30, 'Retamosa -Mula-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18622, 30, 'Retamosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18623, 30, 'Ribazo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18624, 30, 'El Rincon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18625, 30, 'Rincon de Beniscornia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18626, 30, 'Rincon de la Casa Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18627, 30, 'Rincon de Las Coles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18628, 30, 'Rincon de Seca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18629, 30, 'Rincon del Gallego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18630, 30, 'Rincon del Sastre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18631, 30, 'El Rincon Y El Mingrano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18632, 30, 'Rincon Y Las Ramblicas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18633, 30, 'Rincones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18634, 30, 'Los Rincones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18635, 30, 'La Risca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18636, 30, 'Los Rizos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18637, 30, 'Rodeo Segundo O de Enmedio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18638, 30, 'Los Romera Los Vidales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18639, 30, 'Caadas del Romero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18640, 30, 'Los Roses -La Aljorra-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18641, 30, 'Los Roses'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18642, 30, 'Los Roses'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18643, 30, 'Los Rosiques'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18644, 30, 'Rucian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18645, 30, 'Los Ruices'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18646, 30, 'Los Ruices'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18647, 30, 'Los Ruices'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18648, 30, 'El Sabinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18649, 30, 'Los Saez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18650, 30, 'El Saladillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18651, 30, 'El Saladillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18652, 30, 'Salado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18653, 30, 'Las Salinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18654, 30, 'Salmeron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18655, 30, 'Los Salobrales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18656, 30, 'El Saltador'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18657, 30, 'El Salto de la Virgen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18658, 30, 'Salvarejo Y Reverte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18659, 30, 'San Gines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18660, 30, 'San Gines de la Jara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18661, 30, 'San Jose de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18662, 30, 'San Jose Montaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18663, 30, 'San Jose Obrero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18664, 30, 'San Julian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18665, 30, 'San Roque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18666, 30, 'Los Sanchez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18667, 30, 'Santa Cruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18668, 30, 'Santa Gertrudis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18669, 30, 'Santo Angel de Murcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18670, 30, 'Los Santos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18671, 30, 'Santuario de la Fuensanta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18672, 30, 'El Secano Lugarico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18673, 30, 'Los Segados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18674, 30, 'Los Serranos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18675, 30, 'Los Serranos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18676, 30, 'La Sierra -Totana-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18677, 30, 'Siscar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18678, 30, 'La Solana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18679, 30, 'Los Suertes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18680, 30, 'Tarquinales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18681, 30, 'Tarragoya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18682, 30, 'Tebar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18683, 30, 'La Tejera Y la Alqueria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18684, 30, 'La Tercia Murcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18685, 30, 'Termino de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18686, 30, 'Tirieza Baja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18687, 30, 'Tirieza Y El Gigante'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18688, 30, 'El Tolle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18689, 30, 'Toma del Agua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18690, 30, 'Los Topares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18691, 30, 'Los Torralbas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18692, 30, 'La Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18693, 30, 'La Torre Y El Charco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18694, 30, 'Torre Junco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18695, 30, 'Torre Guil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18696, 30, 'Torreaguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18697, 30, 'Torrealvilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18698, 30, 'Torreblanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18699, 30, 'Torrejuncos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18700, 30, 'Las Torrentas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18701, 30, 'Trapajuar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18702, 30, 'Traviesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18703, 30, 'Triana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18704, 30, 'Los Tuelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18705, 30, 'Morata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18706, 30, 'La Umbria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18707, 30, 'El Vainazo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18708, 30, 'Valdelentisco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18709, 30, 'Valdio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18710, 30, 'Venta del Coronel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18711, 30, 'Venta de Jimenez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18712, 30, 'Venta de la Arboleda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18713, 30, 'Venta de Las Palas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18714, 30, 'Venta del Seorito'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18715, 30, 'Venta de Los Carrascos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18716, 30, 'Venta Puales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18717, 30, 'Las Ventanas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18718, 30, 'Ventarique'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18719, 30, 'Ventarique'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18720, 30, 'Los Ventorrillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18721, 30, 'La Vereda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18722, 30, 'La Vereda Murcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18723, 30, 'Los Vicentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18724, 30, 'Los Vicentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18725, 30, 'Los Vicentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18726, 30, 'Los Vidales -Miranda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18727, 30, 'Los Vidales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18728, 30, 'Viles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18729, 30, 'Villaespesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18730, 30, 'Villarreal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18731, 30, 'Las Vias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18732, 30, 'Los Vivancos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18733, 30, 'Xiquena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18734, 30, 'Zaen de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18735, 30, 'Zaen de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18736, 30, 'Los Zancarrones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18737, 30, 'Zarandona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18738, 30, 'La Zarza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18739, 30, 'La Zarza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18740, 30, 'Zolozuelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18741, 30, 'Zuiga Y la Juncosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18742, 30, 'Las Zurraderas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18743, 30, 'La Voz Negra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18744, 30, 'Calarreona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18745, 30, 'Todosol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18746, 30, 'Los Nietos Viejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18747, 30, 'Roche Alto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18748, 30, 'Goar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18749, 30, 'Baos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18750, 30, 'La Gineta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18751, 30, 'Romeral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18752, 30, 'La Espada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18753, 30, 'Los Alamos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18754, 30, 'Collado de Tallante'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18755, 30, 'Peas Blancas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18756, 30, 'Pozo Anton'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18757, 30, 'Estacion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18758, 30, 'Albarda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18759, 30, 'Raiguero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18760, 30, 'Zarza La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18761, 30, 'Los Dolores Murcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18762, 30, 'San Benito'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18763, 30, 'Santiago Y Zaraiche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18764, 30, 'Sangonera la Seca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18765, 30, 'La Hornera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18766, 30, 'La Alcayna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18767, 30, 'Altorreal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18768, 30, 'Urbanizacion El Chorrico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18769, 30, 'Urbanizacion El Pino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18770, 30, 'Los Conejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18771, 30, 'El Rodeo de la Ermita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18772, 30, 'Lo Jurado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18773, 30, 'Los Carriones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18774, 30, 'El Higueral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18775, 30, 'El Realenco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18776, 30, 'Los Simonetes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18777, 30, 'Lo Baturno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18778, 30, 'La Grana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18779, 30, 'El Mojon -San Pedro Pinatar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18780, 30, 'Punta Brava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18781, 30, 'Las Flotas de Butron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18782, 30, 'Las Caadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18783, 30, 'Rodeo Tercero O Los Tenderos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18784, 30, 'Ainas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18785, 30, 'Valdelpino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18786, 30, 'Veredilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18787, 30, 'Montysol de Espua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18788, 30, 'Culebrina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18789, 30, 'La Merced'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18790, 30, 'Pinilla Y Garrobillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18791, 30, 'Puntarron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18792, 30, 'Los Llanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18793, 30, 'Almazara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18794, 30, 'Los Dolores -Cartagena-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18795, 30, 'Roman'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18796, 30, 'Casas Caada Trigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18797, 30, 'La Manga del Mar Menor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18798, 30, 'El Carche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18799, 30, 'La Hoya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18800, 30, 'Las Lomas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18801, 30, 'Los Curas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18802, 30, 'Puntas de Calnegre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18803, 30, 'Caada Hermosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18804, 30, 'El Puntarron -Sangonera Seca-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18805, 30, 'Iglesia de Morata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18806, 30, 'Collado de Liron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18807, 30, 'Nogalte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18808, 30, 'Casa Nueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18809, 30, 'Hondares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18810, 30, 'Cuevas Norte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18811, 30, 'La Pila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18812, 30, 'Lo Romero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18813, 30, 'Parazuelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18814, 30, 'Santiago El Mayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18815, 30, 'Casa Pernias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18816, 30, 'Rincon de Los Huertos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18817, 30, 'Campillo(Campos Aviacion)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18818, 30, 'La Manga Club'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18819, 30, 'San Isidro de la Magdalena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18820, 30, 'Benizar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18821, 30, 'Nonduermas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18822, 30, 'Puertos de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18823, 30, 'Gea Y Truyols'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18824, 30, 'Cehegin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18825, 30, 'La ora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18826, 30, 'Torre-Pacheco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18827, 30, 'Ramonete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18828, 30, 'Espinardo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18829, 30, 'Santiago El Mayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18830, 30, 'Los Barreros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18831, 30, 'Alhama de Murcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18832, 30, 'Las Flotas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18833, 30, 'La Alberca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18834, 30, 'El Llano -Molina de Segura-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18835, 30, 'Escucha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18836, 30, 'Ranero O Barrio del Rosario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18837, 30, 'El Puntal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18838, 30, 'Santiago de la Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18839, 30, 'La Arboleja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18840, 30, 'Molinos Margargones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18841, 31, 'Abarzuza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18842, 31, 'Abaurregaina-Abaurrea Alta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18843, 31, 'Ablitas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18844, 31, 'Acedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18845, 31, 'Aguilar de Codes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18846, 31, 'Aibar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18847, 31, 'Aldatz -Larraun-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18848, 31, 'Almandoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18849, 31, 'Altsasu-Alsasua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18850, 31, 'Allo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18851, 31, 'Ancin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18852, 31, 'Andosilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18853, 31, 'Aniz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18854, 31, 'Anotz -Ollo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18855, 31, 'Ansoain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18856, 31, 'Aezcar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18857, 31, 'Aoiz-Agoitz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18858, 31, 'Arazuri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18859, 31, 'Arbizu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18860, 31, 'Los Arcos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18861, 31, 'Areso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18862, 31, 'Arguedas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18863, 31, 'Aribe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18864, 31, 'Arizala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18865, 31, 'Arizkun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18866, 31, 'Arostegui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18867, 31, 'Arraioz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18868, 31, 'Arribe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18869, 31, 'Arroniz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18870, 31, 'Arruazu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18871, 31, 'Artajona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18872, 31, 'Artazu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18873, 31, 'Artieda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18874, 31, 'Asiain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18875, 31, 'Astrain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18876, 31, 'Arantza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18877, 31, 'Azagra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18878, 31, 'Azkarate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18879, 31, 'Azpilkueta -Baztan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18880, 31, 'Bakaiku'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18881, 31, 'Barasoain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18882, 31, 'Bargota'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18883, 31, 'Eneriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18884, 31, 'Beire'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18885, 31, 'Belascoain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18886, 31, 'Berbinzana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18887, 31, 'Beriain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18888, 31, 'Berrioplano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18889, 31, 'Berriosuso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18890, 31, 'Berroeta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18891, 31, 'Betelu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18892, 31, 'Buuel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18893, 31, 'Auritz-Burguete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18894, 31, 'Burgui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18895, 31, 'Cabanillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18896, 31, 'Cadreita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18897, 31, 'Campanas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18898, 31, 'Caparroso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18899, 31, 'Carcar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18900, 31, 'Carcastillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18901, 31, 'Cascante'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18902, 31, 'Caseda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18903, 31, 'Castejon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18904, 31, 'Ziga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18905, 31, 'Cintruenigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18906, 31, 'Cirauqui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18907, 31, 'Corella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18908, 31, 'Dantxarinea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18909, 31, 'Dicastillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18910, 31, 'Domeo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18911, 31, 'Etxalar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18912, 31, 'Etxarri-Aranatz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18913, 31, 'Etxauri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18914, 31, 'Elizondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18915, 31, 'Eratsun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18916, 31, 'Ezcaroz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18917, 31, 'Erratzu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18918, 31, 'Erro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18919, 31, 'Eslava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18920, 31, 'Esparza de Salazar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18921, 31, 'Aurizberri-Espinal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18922, 31, 'Espronceda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18923, 31, 'Estella-Lizarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18924, 31, 'Eugi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18925, 31, 'Eulate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18926, 31, 'Errazkin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18927, 31, 'Ezkurra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18928, 31, 'Falces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18929, 31, 'Fitero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18930, 31, 'Balneario de Fitero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18931, 31, 'Fontellas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18932, 31, 'Funes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18933, 31, 'Fustiana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18934, 31, 'Gallipienzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18935, 31, 'Gallues'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18936, 31, 'Garde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18937, 31, 'Garinoain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18938, 31, 'Garralda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18939, 31, 'Gartzain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18940, 31, 'Genevilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18941, 31, 'Goi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18942, 31, 'Gorriti'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18943, 31, 'Guesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18944, 31, 'Huarte-Uharte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18945, 31, 'Uharte-Arakil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18946, 31, 'Uitzi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18947, 31, 'Ibero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18948, 31, 'Iciz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18949, 31, 'Igal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18950, 31, 'Iraizotz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18951, 31, 'Irurita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18952, 31, 'Irurozqui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18953, 31, 'Irurtzun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18954, 31, 'Isaba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18955, 31, 'Izal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18956, 31, 'Jaurrieta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18957, 31, 'Javier'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18958, 31, 'Lakuntza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18959, 31, 'Larraga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18960, 31, 'Larrasoaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18961, 31, 'Larrion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18962, 31, 'Latasa -Imoz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18963, 31, 'Lekaroz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18964, 31, 'Lekunberri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18965, 31, 'Legarda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18966, 31, 'Leitza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18967, 31, 'Lerga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18968, 31, 'Lerin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18969, 31, 'Lesaka'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18970, 31, 'Lezaun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18971, 31, 'Liedena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18972, 31, 'Lizarraga -Ergoien-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18973, 31, 'Lizoain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18974, 31, 'Lodosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18975, 31, 'Lumbier'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18976, 31, 'Maeru'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18977, 31, 'Maraon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18978, 31, 'Marcilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18979, 31, 'Murchante'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18980, 31, 'Amaiur-Maya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18981, 31, 'Melida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18982, 31, 'Mendavia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18983, 31, 'Mendigorria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18984, 31, 'Metauten'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18985, 31, 'Milagro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18986, 31, 'Miranda de Arga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18987, 31, 'Monreal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18988, 31, 'Monteagudo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18989, 31, 'Muez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18990, 31, 'Mugiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18991, 31, 'Murillo El Cuende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18992, 31, 'Murillo El Fruto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18993, 31, 'Navascues'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18994, 31, 'Noain -Valle de Elorz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18995, 31, 'Obanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18996, 31, 'Ochagavia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18997, 31, 'Olague'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18998, 31, 'Olave'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (18999, 31, 'Olazti-Olazagutia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19000, 31, 'Olite'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19001, 31, 'Ollacarizqueta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19002, 31, 'Oricain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19003, 31, 'Oronoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19004, 31, 'Oronz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19005, 31, 'Ororbia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19006, 31, 'Oroz-Betelu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19007, 31, 'Ostiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19008, 31, 'Oteiza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19009, 31, 'Pamplona-Irua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19010, 31, 'Peralta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19011, 31, 'Pitillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19012, 31, 'Puente la Reina-Gares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19013, 31, 'Pueyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19014, 31, 'Ribaforada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19015, 31, 'Roncal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19016, 31, 'Orreaga-Roncesvalles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19017, 31, 'Sada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19018, 31, 'Salinas de Oro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19019, 31, 'San Adrian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19020, 31, 'Sanguesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19021, 31, 'San Martin de Unx'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19022, 31, 'San Migel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19023, 31, 'Sansol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19024, 31, 'Santacara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19025, 31, 'Doneztebe-Santesteban'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19026, 31, 'San Vicente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19027, 31, 'Sarries'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19028, 31, 'Sartaguda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19029, 31, 'Sesma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19030, 31, 'Sunbilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19031, 31, 'Tafalla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19032, 31, 'Torralba del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19033, 31, 'Traibuenas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19034, 31, 'Tudela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19035, 31, 'Ujue'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19036, 31, 'Unzue'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19037, 31, 'Urbiola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19038, 31, 'Urdazubi-Urdax'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19039, 31, 'Urroz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19040, 31, 'Urzainqui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19041, 31, 'Uscarres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19042, 31, 'Ustes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19043, 31, 'Uztarroz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19044, 31, 'Uztegi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19045, 31, 'Luzaide-Valcarlos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19046, 31, 'Valtierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19047, 31, 'Bera-Vera de Bidasoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19048, 31, 'Vergalijo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19049, 31, 'Viana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19050, 31, 'Vidangoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19051, 31, 'Villafranca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19052, 31, 'Villanueva de Yerri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19053, 31, 'Biskarreta-Gerendiain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19054, 31, 'Villatuerta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19055, 31, 'Zubiri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19056, 31, 'Zudaire'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19057, 31, 'Zuiga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19058, 31, 'Baraibar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19059, 31, 'Izalzu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19060, 31, 'Erice -Iza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19061, 31, 'Cortes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19062, 31, 'Aorbe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19063, 31, 'Berrizaun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19064, 31, 'Igantzi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19065, 31, 'Zubielqui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19066, 31, 'Arbeiza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19067, 31, 'Torres del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19068, 31, 'Urdiain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19069, 31, 'Arano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19070, 31, 'Goizueta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19071, 31, 'Arellano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19072, 31, 'Ziordia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19073, 31, 'Beruete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19074, 31, 'Igoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19075, 31, 'Jauntsarats'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19076, 31, 'Badostain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19077, 31, 'Egues'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19078, 31, 'Aspurz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19079, 31, 'Biguezal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19080, 31, 'Castillonuevo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19081, 31, 'Erbiti'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19082, 31, 'Orokieta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19083, 31, 'Ucar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19084, 31, 'Lorca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19085, 31, 'Hiriberri-Villanueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19086, 31, 'Yesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19087, 31, 'Riezu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19088, 31, 'Arrarats'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19089, 31, 'Arrieta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19090, 31, 'Mendivil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19091, 31, 'Murieta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19092, 31, 'Armaanzas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19093, 31, 'Ibilcieta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19094, 31, 'Etxaleku'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19095, 31, 'Eraso -Imotz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19096, 31, 'Goldaratz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19097, 31, 'Muskitz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19098, 31, 'Oskotz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19099, 31, 'Urritza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19100, 31, 'Zarrantz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19101, 31, 'Orbara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19102, 31, 'Orbaitzeta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19103, 31, 'Aria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19104, 31, 'Hiriberri-Villanueva de Aezkoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19105, 31, 'Lazagurria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19106, 31, 'Iturmendi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19107, 31, 'Abaurrepea-Abaurrea Baja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19108, 31, 'Garaioa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19109, 31, 'Villanueva de Arce'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19110, 31, 'Aintzioa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19111, 31, 'Ardaitz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19112, 31, 'Zilbeti'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19113, 31, 'Esnotz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19114, 31, 'Lintzoain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19115, 31, 'Loizu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19116, 31, 'Mezkiritz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19117, 31, 'Orondritz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19118, 31, 'Ituren'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19119, 31, 'Zubieta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19120, 31, 'Alli'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19121, 31, 'Astitz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19122, 31, 'Iribas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19123, 31, 'Madotz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19124, 31, 'Oderitz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19125, 31, 'Albiasu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19126, 31, 'Arruitz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19127, 31, 'Azpirotz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19128, 31, 'Etxarri -Larraun-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19129, 31, 'Lezaeta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19130, 31, 'Mendaza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19131, 31, 'Asarta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19132, 31, 'Mirafuentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19133, 31, 'Nazar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19134, 31, 'Ubago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19135, 31, 'Azuelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19136, 31, 'Cabredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19137, 31, 'Cabrega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19138, 31, 'Desojo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19139, 31, 'Mues'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19140, 31, 'Otiano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19141, 31, 'Echarren de Guirguillano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19142, 31, 'Guirguillano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19143, 31, 'Beintza-Labaien'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19144, 31, 'Donamaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19145, 31, 'Oitz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19146, 31, 'Urrotz Doneztebe Santesteban'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19147, 31, 'Abaigar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19148, 31, 'Aizpun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19149, 31, 'Arraiza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19150, 31, 'Azanza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19151, 31, 'Munarriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19152, 31, 'Urdanoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19153, 31, 'Arteta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19154, 31, 'Beasoain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19155, 31, 'Egillor -Ollo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19156, 31, 'Iltzarbe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19157, 31, 'Ollo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19158, 31, 'Saldise'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19159, 31, 'Senosiain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19160, 31, 'Ultzurrun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19161, 31, 'Galbarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19162, 31, 'Gastiain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19163, 31, 'Narcue'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19164, 31, 'Ulibarri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19165, 31, 'Viloria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19166, 31, 'Artica'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19167, 31, 'Arteaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19168, 31, 'Ganuza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19169, 31, 'Ollobarren'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19170, 31, 'Ollogoyen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19171, 31, 'Zufia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19172, 31, 'El Busto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19173, 31, 'Lapoblacion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19174, 31, 'Meano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19175, 31, 'Aranarache'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19176, 31, 'Artaza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19177, 31, 'Baquedano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19178, 31, 'Echavarri -Allin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19179, 31, 'Etayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19180, 31, 'Eulz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19181, 31, 'Galdeano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19182, 31, 'Iguzquiza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19183, 31, 'Labeaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19184, 31, 'Larraona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19185, 31, 'Legaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19186, 31, 'Oco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19187, 31, 'Olejua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19188, 31, 'Piedramillera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19189, 31, 'Sorlada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19190, 31, 'Muruarte de Reta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19191, 31, 'Olcoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19192, 31, 'Biurrun-Olcoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19193, 31, 'Tirapu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19194, 31, 'Adios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19195, 31, 'Muruzabal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19196, 31, 'Uterga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19197, 31, 'Oloriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19198, 31, 'Orisoain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19199, 31, 'Arlegui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19200, 31, 'Esparza de Galar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19201, 31, 'Esquiroz -Galar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19202, 31, 'Galar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19203, 31, 'Olaz Subiza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19204, 31, 'Salinas de Pamplona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19205, 31, 'Subiza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19206, 31, 'Noain -Valle de Elorz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19207, 31, 'Zulueta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19208, 31, 'Iraeta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19209, 31, 'Orcoyen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19210, 31, 'Ekai'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19211, 31, 'Etxarren -Arakil-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19212, 31, 'Egiarreta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19213, 31, 'Satrustegi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19214, 31, 'Ihabar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19215, 31, 'Zuhatzu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19216, 31, 'Arguiano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19217, 31, 'Arzoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19218, 31, 'Estenoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19219, 31, 'Guembe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19220, 31, 'Irujo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19221, 31, 'Iturgoyen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19222, 31, 'Muzqui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19223, 31, 'Vidaurre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19224, 31, 'Arizaleta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19225, 31, 'Azcona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19226, 31, 'Ugar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19227, 31, 'Ayegui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19228, 31, 'Bearin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19229, 31, 'Grocin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19230, 31, 'Ibiricu de Yerri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19231, 31, 'Dorrao-Torrano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19232, 31, 'Unanu -Ergoien-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19233, 31, 'Aras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19234, 31, 'Nuestra Seora de Codes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19235, 31, 'Itsaso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19236, 31, 'Udabe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19237, 31, 'Saldias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19238, 31, 'Aritzu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19239, 31, 'Burutain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19240, 31, 'Egozkue'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19241, 31, 'Etsain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19242, 31, 'Etulain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19243, 31, 'Leazkue'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19244, 31, 'Olaldea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19245, 31, 'Eskirotz -Esteribar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19246, 31, 'Urdaniz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19247, 31, 'Iragi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19248, 31, 'Eguaras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19249, 31, 'Lacar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19250, 31, 'Errotz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19251, 31, 'Urritzola -Arakil-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19252, 31, 'Petilla de Aragon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19253, 31, 'Figarol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19254, 31, 'Gabarderal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19255, 31, 'Rada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19256, 31, 'Rocaforte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19257, 31, 'Leache'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19258, 31, 'Tulebras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19259, 31, 'Barillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19260, 31, 'Beramendi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19261, 31, 'Imarcoain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19262, 31, 'Izurzu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19263, 31, 'Muniain -Guesalaz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19264, 31, 'Atondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19265, 31, 'Muru-Astrain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19266, 31, 'Paternain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19267, 31, 'Undiano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19268, 31, 'Barindano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19269, 31, 'Ecala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19270, 31, 'Eraul'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19271, 31, 'Gollano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19272, 31, 'Murugarren'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19273, 31, 'Nagore'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19274, 31, 'Uriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19275, 31, 'Zurucuain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19276, 31, 'Artavia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19277, 31, 'Aranguren'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19278, 31, 'Labiano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19279, 31, 'Laquidain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19280, 31, 'Mutilva Alta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19281, 31, 'Mutilva Baja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19282, 31, 'Tajonar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19283, 31, 'Zolina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19284, 31, 'Legasa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19285, 31, 'Narbarte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19286, 31, 'Zabal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19287, 31, 'Azqueta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19288, 31, 'Barbarin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19289, 31, 'Luquin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19290, 31, 'Morentin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19291, 31, 'Muniain de la Solana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19292, 31, 'Villamayor de Monjardin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19293, 31, 'Adoain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19294, 31, 'Ayechu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19295, 31, 'Ayesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19296, 31, 'Elcoaz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19297, 31, 'Olleta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19298, 31, 'Ongoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19299, 31, 'Artozqui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19300, 31, 'Azparren'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19301, 31, 'Intza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19302, 31, 'Leranotz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19303, 31, 'Torres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19304, 31, 'Zabalegui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19305, 31, 'Noain -Valle de Elorz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19306, 31, 'San Isidro del Pinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19307, 31, 'Aguinaga -Iza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19308, 31, 'Aldaba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19309, 31, 'Cia -Iza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19310, 31, 'Gulina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19311, 31, 'Iza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19312, 31, 'Larumbe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19313, 31, 'Sarasa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19314, 31, 'Bariain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19315, 31, 'Setoain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19316, 31, 'Zabalza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19317, 31, 'Ripodas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19318, 31, 'Tabar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19319, 31, 'Arre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19320, 31, 'Aizoain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19321, 31, 'Ciaurriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19322, 31, 'Gascue'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19323, 31, 'Osacain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19324, 31, 'Ripa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19325, 31, 'Zandio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19326, 31, 'Sorauren'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19327, 31, 'Zizur Mayor-Zizur Nagusia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19328, 31, 'Abinzano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19329, 31, 'Celigueta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19330, 31, 'Ezperun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19331, 31, 'Idocin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19332, 31, 'Izco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19333, 31, 'Salinas de Ibargoiti'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19334, 31, 'Amatriain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19335, 31, 'Artariain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19336, 31, 'Iracheta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19337, 31, 'Leoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19338, 31, 'Alloz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19339, 31, 'Murillo de Yerri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19340, 31, 'Beunza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19341, 31, 'Tiebas-Muruarte de Reta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19342, 31, 'Gazolaz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19343, 31, 'Aos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19344, 31, 'Ardanaz de Izagaondoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19345, 31, 'Artazcoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19346, 31, 'Izcue'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19347, 31, 'Izu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19348, 31, 'Lizasoain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19349, 31, 'Torre de Pea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19350, 31, 'Unciti'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19351, 31, 'Marcalain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19352, 31, 'Alkotz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19353, 31, 'Amillano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19354, 31, 'Araitz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19355, 31, 'Arraitz-Orkin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19356, 31, 'Ballariain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19357, 31, 'Zenotz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19358, 31, 'Eltso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19359, 31, 'Eltzaburu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19360, 31, 'Gorrontz-Olano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19361, 31, 'Gerendiain -Ultzama-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19362, 31, 'Ilarregi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19363, 31, 'Suarbe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19364, 31, 'Lantz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19365, 31, 'Larragueta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19366, 31, 'Larraintzar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19367, 31, 'Lizaso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19368, 31, 'Loza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19369, 31, 'Muneta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19370, 31, 'Urritzola-Galain -Ultzama-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19371, 31, 'Zugarramurdi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19372, 31, 'Gallipienzo Nuevo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19373, 31, 'Auza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19374, 31, 'Sarasate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19375, 31, 'Murillo de Longuida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19376, 31, 'Izurdiaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19377, 31, 'Idoate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19378, 31, 'Turrillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19379, 31, 'Lizarraga de Izagaondoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19380, 31, 'Zuazu -Izagaondoa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19381, 31, 'Aramendia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19382, 31, 'Ciriza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19383, 31, 'Elcarte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19384, 31, 'Elgorriaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19385, 31, 'Ventas Ultzama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19386, 31, 'Vidaurreta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19387, 31, 'Artaiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19388, 31, 'Indurain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19389, 31, 'Iriso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19390, 31, 'Reta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19391, 31, 'Artajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19392, 31, 'Ecay -Longuida-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19393, 31, 'Larrangoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19394, 31, 'Mendioroz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19395, 31, 'Meoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19396, 31, 'Oscariz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19397, 31, 'Sansoain -Urraul Bajo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19398, 31, 'Uroz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19399, 31, 'Villaveta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19400, 31, 'Yarnoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19401, 31, 'Ilarratz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19402, 31, 'Osteritz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19403, 31, 'Saigots'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19404, 31, 'Irotz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19405, 31, 'Olloki'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19406, 31, 'Sagaseta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19407, 31, 'Zabaldika'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19408, 31, 'Lizarragabengoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19409, 31, 'Ochovi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19410, 31, 'Anocibar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19411, 31, 'Akerreta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19412, 31, 'Beorburu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19413, 31, 'Berasain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19414, 31, 'Ciganda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19415, 31, 'Erice -Atez-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19416, 31, 'Garciriain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19417, 31, 'Irure'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19418, 31, 'Larrayoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19419, 31, 'Latasa -Odieta-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19420, 31, 'Nuin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19421, 31, 'Osacar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19422, 31, 'Sarasibar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19423, 31, 'Unzu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19424, 31, 'Zuriain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19425, 31, 'Alzorriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19426, 31, 'Azoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19427, 31, 'Cemborain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19428, 31, 'Cildoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19429, 31, 'Echague'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19430, 31, 'Enderiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19431, 31, 'Ilurdotz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19432, 31, 'Maquirriain -Ezcabarte-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19433, 31, 'Najurieta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19434, 31, 'Olaiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19435, 31, 'Orrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19436, 31, 'Redin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19437, 31, 'Solchaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19438, 31, 'Ustarroz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19439, 31, 'Zabalceta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19440, 31, 'Anoz -Ezcabarte-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19441, 31, 'Idoi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19442, 31, 'Inbuluzketa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19443, 31, 'Imirizaldu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19444, 31, 'Sagues'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19445, 31, 'Zariquiegui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19446, 31, 'Belzunce'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19447, 31, 'Ubani'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19448, 31, 'Zalba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19449, 31, 'Beortegui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19450, 31, 'Eusa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19451, 31, 'Zuasti -Iza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19452, 31, 'Aristregui -Juslapea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19453, 31, 'Navaz -Juslapea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19454, 31, 'Urtasun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19455, 31, 'Azpa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19456, 31, 'Etxeberri -Arakil-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19457, 31, 'Eparoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19458, 31, 'Garisoain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19459, 31, 'Irurre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19460, 31, 'Lerate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19461, 31, 'Olza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19462, 31, 'Osinaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19463, 31, 'Oteiza -Berrioplano-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19464, 31, 'Usetxi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19465, 31, 'Aberin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19466, 31, 'Ardanaz -Egues-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19467, 31, 'Echarri Echauri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19468, 31, 'Gaintza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19469, 31, 'Gartzaron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19470, 31, 'Mendilibarri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19471, 31, 'Ihaben'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19472, 31, 'Iruela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19473, 31, 'Elia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19474, 31, 'Arbonies'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19475, 31, 'Nardues-Aldunate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19476, 31, 'Berriozar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19477, 31, 'Burlada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19478, 31, 'Villava-Atarrabia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19479, 31, 'Arandigoyen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19480, 31, 'Elcano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19481, 31, 'Baraain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19482, 31, 'Larraya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19483, 31, 'Lerruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19484, 31, 'Zalain Lesaka'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19485, 31, 'Ariz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19486, 31, 'Itoiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19487, 31, 'Bozate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19488, 31, 'Beartzun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19489, 31, 'Auritz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19490, 31, 'San Martin de Amescoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19491, 31, 'Agorreta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19492, 31, 'Aintzialde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19493, 31, 'Aitasemegi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19494, 31, 'Aizarotz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19495, 31, 'Aizkorbe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19496, 31, 'Alkainzuriain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19497, 31, 'Alkasoaldea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19498, 31, 'Alkaiaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19499, 31, 'Arce'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19500, 31, 'Arguiariz'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19501, 31, 'Arielz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19502, 31, 'Ariztegi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19503, 31, 'Arleta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19504, 31, 'Aroztegia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19505, 31, 'Arkiskil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19506, 31, 'Arribiltoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19507, 31, 'Artikutza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19508, 31, 'Askarraga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19509, 31, 'Atallu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19510, 31, 'Aurkidi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19511, 31, 'Eguillor -Atez-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19512, 31, 'Aientsa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19513, 31, 'Azkar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19514, 31, 'Azkota'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19515, 31, 'Aldunate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19516, 31, 'Alkerdi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19517, 31, 'Alzuza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19518, 31, 'Ameztia -Zubieta-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19519, 31, 'Antxoritz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19520, 31, 'Antzanborda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19521, 31, 'Apaioa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19522, 31, 'Azoleta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19523, 31, 'Azkilarrea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19524, 31, 'Barbatain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19525, 31, 'Eguzkialdea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19526, 31, 'Benegorri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19527, 31, 'Berro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19528, 31, 'Berroya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19529, 31, 'Biurrana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19530, 31, 'El Bocal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19531, 31, 'Bordalarrea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19532, 31, 'Elio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19533, 31, 'Carrascal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19534, 31, 'Katazpegi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19535, 31, 'Kaule'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19536, 31, 'Zia -Vera de Bidasoa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19537, 31, 'Cizur Menor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19538, 31, 'Cordovilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19539, 31, 'Dornaku'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19540, 31, 'Etxaide Elizondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19541, 31, 'Echalaz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19542, 31, 'Etxartea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19543, 31, 'Etxerri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19544, 31, 'Elbete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19545, 31, 'Xantelerreka-Elzaurdia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19546, 31, 'Endara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19547, 31, 'Endarlatsa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19548, 31, 'Eransus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19549, 31, 'Erasote'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19550, 31, 'Erreka'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19551, 31, 'Espidealdea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19552, 31, 'Espoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19553, 31, 'La Estacion -Caparroso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19554, 31, 'Estacion Biurrun-Campanas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19555, 31, 'Garrues'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19556, 31, 'Gaztelu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19557, 31, 'Gongora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19558, 31, 'Gorostapolo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19559, 31, 'Gorosurreta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19560, 31, 'Gorraiz -Egues-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19561, 31, 'Gorriztaran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19562, 31, 'Grez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19563, 31, 'Guelbenzu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19564, 31, 'Gendulain -Esteribar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19565, 31, 'Guendulain -Odieta-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19566, 31, 'Sengariz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19567, 31, 'Ezcaniz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19568, 31, 'Orbaitzetako Ola-Fb.Orbaitzeta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19569, 31, 'Frain -Lesaka-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19570, 31, 'Frain -Igantzi-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19571, 31, 'Fundacion Ondarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19572, 31, 'Gaindola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19573, 31, 'Gainekoleta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19574, 31, 'Garaitarreta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19575, 31, 'Guerendiain -Noain-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19576, 31, 'Uharte Lekaroz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19577, 31, 'Ibiricu -Egues-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19578, 31, 'Igurin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19579, 31, 'Ilundain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19580, 31, 'Imizcoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19581, 31, 'Iarbil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19582, 31, 'Irache'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19583, 31, 'Irisarri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19584, 31, 'Iso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19585, 31, 'Izotzaldea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19586, 31, 'Janariz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19587, 31, 'Lakain-Apezborro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19588, 31, 'Landibar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19589, 31, 'Larrapil-Sarriku'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19590, 31, 'Larraun -Orbaitzeta-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19591, 31, 'Latsaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19592, 31, 'Urb. Lasaitasuna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19593, 31, 'Latse'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19594, 31, 'Lecaun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19595, 31, 'Legardeta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19596, 31, 'Leorlaz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19597, 31, 'Lete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19598, 31, 'Leyun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19599, 31, 'Liberri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19600, 31, 'Lozen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19601, 31, 'Lurriztiederra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19602, 31, 'Lusarreta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19603, 31, 'Madaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19604, 31, 'Maquirriain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19605, 31, 'Mardea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19606, 31, 'Maieta Sakulu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19607, 31, 'Mendillorri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19608, 31, 'Mendrasa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19609, 31, 'Moriones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19610, 31, 'Murillo-Berroya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19611, 31, 'Napal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19612, 31, 'Nardues-Andurra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19613, 31, 'Nabaz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19614, 31, 'Piedadeko Gaina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19615, 31, 'Oharriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19616, 31, 'Ola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19617, 31, 'Olazur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19618, 31, 'Olaverri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19619, 31, 'Olaz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19620, 31, 'Ordoki'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19621, 31, 'Oricin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19622, 31, 'Oriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19623, 31, 'Orizki'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19624, 31, 'Orradre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19625, 31, 'Otano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19626, 31, 'Otazu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19627, 31, 'Oieregi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19628, 31, 'Ozcoidi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19629, 31, 'Pekotxeta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19630, 31, 'Kintoa-Quinto Real -Erro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19631, 31, 'Recajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19632, 31, 'Sansomain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19633, 31, 'Saragueta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19634, 31, 'Sarekoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19635, 31, 'Sarriguren'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19636, 31, 'Seorio de Sarria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19637, 31, 'El Soto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19638, 31, 'Suro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19639, 31, 'Suspela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19640, 31, 'Suspelttiki'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19641, 31, 'Tartazu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19642, 31, 'Telleria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19643, 31, 'La Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19644, 31, 'Uli-Bajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19645, 31, 'Unanua -Igantzi-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19646, 31, 'Urbicain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19647, 31, 'Urra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19648, 31, 'Urrasun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19649, 31, 'Urricelqui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19650, 31, 'Urritzokieta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19651, 31, 'Urrutia -Erasun-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19652, 31, 'Urrutia -Saldias-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19653, 31, 'Urumea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19654, 31, 'Usi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19655, 31, 'Usun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19656, 31, 'Uzquita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19657, 31, 'Viguria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19658, 31, 'Yelz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19659, 31, 'Zabalza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19660, 31, 'Zala Lesaca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19661, 31, 'Zalain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19662, 31, 'Zandueta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19663, 31, 'Zoroquiain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19664, 31, 'Zozaia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19665, 31, 'Zuaztoi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19666, 31, 'Zunzarren'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19667, 31, 'Zigaurre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19668, 31, 'Marlada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19669, 31, 'Pertalats'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19670, 31, 'Gorraiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19671, 31, 'Lacabe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19672, 31, 'Aitzano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19673, 31, 'Hiriberri-Villanueva de Aezkoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19674, 31, 'Torres -Noain-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19675, 31, 'Eratsun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19676, 31, 'Mutilva Baja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19677, 31, 'Mugairi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19678, 31, 'Zizur Mayor-Zizur Nagusia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19679, 32, 'Allariz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19680, 32, 'Bande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19681, 32, 'O Barco de Valdeorras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19682, 32, 'O Carballio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19683, 32, 'Castro Caldelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19684, 32, 'Celanova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19685, 32, 'Dacon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19686, 32, 'Xinzo de Limia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19687, 32, 'Maside'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19688, 32, 'Melon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19689, 32, 'Ourense'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19690, 32, 'Os Peares -Nosa Sra. Do Pilar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19691, 32, 'A Pobra de Trives'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19692, 32, 'Ribadavia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19693, 32, 'A Rua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19694, 32, 'Campo O'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19695, 32, 'Verin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19696, 32, 'Viana Do Bolo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19697, 32, 'Vilamartin de Valdeorras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19698, 32, 'A Barca de Barbantes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19699, 32, 'Luintra -Santa Baia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19700, 32, 'Larouco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19701, 32, 'Xunqueira de Ambia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19702, 32, 'Parada de Sil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19703, 32, 'Lobios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19704, 32, 'Mugueimes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19705, 32, 'A Terracha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19706, 32, 'A Vila -Lobeira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19707, 32, 'Outeiro-Cruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19708, 32, 'Baos de Molgas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19709, 32, 'Carballeda -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19710, 32, 'A Forxa -Punxin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19711, 32, 'Leiro Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19712, 32, 'Maceda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19713, 32, 'Os Milagres Do Medo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19714, 32, 'Manzaneda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19715, 32, 'Cortegada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19716, 32, 'Cea -San Cristovo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19717, 32, 'Albarellos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19718, 32, 'Cualedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19719, 32, 'Barbadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19720, 32, 'A Merca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19721, 32, 'Paderne de Allariz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19722, 32, 'Abelleira Maceda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19723, 32, 'San Cibrao Das Vias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19724, 32, 'Sandias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19725, 32, 'Vilar de Santos -San Juan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19726, 32, 'Beade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19727, 32, 'Fustans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19728, 32, 'Ramiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19729, 32, 'Carballo -Verea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19730, 32, 'Pior'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19731, 32, 'San Amaro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19732, 32, 'Podentes -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19733, 32, 'Sarreaus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19734, 32, 'Trasmiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19735, 32, 'Vilar de Barrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19736, 32, 'Baltar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19737, 32, 'Os Blancos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19738, 32, 'Taboadela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19739, 32, 'Santos Xusto E Pastor (Avion)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19740, 32, 'O Irixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19741, 32, 'S.Miguel de Bidueira-S.Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19742, 32, 'Esgos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19743, 32, 'Outomuro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19744, 32, 'Vilamarin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19745, 32, 'Laza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19746, 32, 'Amoeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19747, 32, 'Castrelo Do Val'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19748, 32, 'Barral -Nosa Seora Das Neves-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19749, 32, 'Xubin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19750, 32, 'A Teixeira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19751, 32, 'Montederramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19752, 32, 'Barra de Mio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19753, 32, 'A Peroxa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19754, 32, 'O Pereiro de Aguiar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19755, 32, 'Calvos de Randin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19756, 32, 'Xunqueira de Espadanedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19757, 32, 'Oimbra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19758, 32, 'A Veiga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19759, 32, 'O Bolo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19760, 32, 'Boboras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19761, 32, 'Beariz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19762, 32, 'Rubia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19763, 32, 'Sobradelo -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19764, 32, 'Quintela de Leirado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19765, 32, 'A Gudia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19766, 32, 'A Mezquita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19767, 32, 'Rios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19768, 32, 'Vilardevos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19769, 32, 'Vilario de Conso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19770, 32, 'Chandrexa -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19771, 32, 'La Fontaia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19772, 32, 'San Roque de Crespos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19773, 32, 'Forxa -Porqueira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19774, 32, 'Toen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19775, 32, 'Coba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19776, 32, 'Los Prados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19777, 32, 'Cartelle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19778, 32, 'Vilario Frio -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19779, 32, 'Pontebarxas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19780, 32, 'Herrante- San Cibrao Das Vinhas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19781, 32, 'Astariz -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19782, 32, 'Meizo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19783, 32, 'Oleiros -Castrelo de Mio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19784, 32, 'Arnuide -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19785, 32, 'Rairiz de Veiga -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19786, 32, 'Vilaza -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19787, 32, 'Rioseco -Paderne de Allariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19788, 32, 'Santa Cruz -Santa Cruz O Bolo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19789, 32, 'A Seara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19790, 32, 'Seixalbo -San Breixo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19791, 32, 'Sobrado -Gomesende-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19792, 32, 'Trasariz -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19793, 32, 'Borruga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19794, 32, 'O Canizo -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19795, 32, 'Cebolio -Bon Xesus-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19796, 32, 'O Cruce -San Amaro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19797, 32, 'Cudeiro -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19798, 32, 'Fradelo -San Vicenzo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19799, 32, 'Freixido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19800, 32, 'Partovia -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19801, 32, 'Rairo -Santa Lucia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19802, 32, 'Vila Rei'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19803, 32, 'O Casal -Cortegada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19804, 32, 'Cerdeira-Santa Maria Madanela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19805, 32, 'O Pombar -A Teixeira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19806, 32, 'Pueblo Carretera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19807, 32, 'Sas de Penelas -San Fiz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19808, 32, 'A Granxa -Montealegre-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19809, 32, 'Penelas -Castro Caldelas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19810, 32, 'Santa Maria Do Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19811, 32, 'Arcos -Sandias-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19812, 32, 'Cristosende -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19813, 32, 'La Iglesia-Xunqueira Espadan.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19814, 32, 'Somoza -A Rua-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19815, 32, 'A Vilavella -Sta.Maria Cabeza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19816, 32, 'Cantoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19817, 32, 'Borran -Vilar de Barrio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19818, 32, 'Sobrado Do Bispo -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19819, 32, 'Santigoso -San Simon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19820, 32, 'A Bola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19821, 32, 'Trasmiras -Celanova-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19822, 32, 'Toran -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19823, 32, 'O Cruceiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19824, 32, 'Porqueiros -Santo Andre-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19825, 32, 'Santa Comba -S. Trocado Bande-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19826, 32, 'Barrio -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19827, 32, 'Facos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19828, 32, 'Xermeade -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19829, 32, 'Prado -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19830, 32, 'Vide -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19831, 32, 'Arzadegos -Santa Baia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19832, 32, 'Barbantes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19833, 32, 'Cenlle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19834, 32, 'Figueiredo -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19835, 32, 'San Miguel Do Campo -S.Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19836, 32, 'Ponte Ambia de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19837, 32, 'San Lourenzo -Paderne Allariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19838, 32, 'Solbeira -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19839, 32, 'Vilarchao -Coles-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19840, 32, 'Vioas -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19841, 32, 'Arcos -San Lorenzo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19842, 32, 'Corgomo -Santa Coloma-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19843, 32, 'Valencia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19844, 32, 'Cados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19845, 32, 'O Alcouce -Nogueira de Ramuin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19846, 32, 'Anllo Pequeno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19847, 32, 'Armariz -San Cristovo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19848, 32, 'Cerreda -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19849, 32, 'Eiras -Santa Ouxea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19850, 32, 'Requeixo Nogueira Ramuin Faramontaos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19851, 32, 'La Iglesia -Nogueira Ramuin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19852, 32, 'Pieiro -San Amaro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19853, 32, 'O Outeiro -Navio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19854, 32, 'A Pallota -San Amaro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19855, 32, 'Picornio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19856, 32, 'Santo Estevo de Ribas de Sil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19857, 32, 'Vilanova -Nogueira de Ramuin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19858, 32, 'Vilar -Nogueira de Ramuin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19859, 32, 'Cambeo -Santo Estevo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19860, 32, 'Chavola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19861, 32, 'Farnadeiros -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19862, 32, 'Ferreiros -Coles-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19863, 32, 'Gustei -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19864, 32, 'As Maus -Muios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19865, 32, 'Meriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19866, 32, 'Nocedo Do Val -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19867, 32, 'Quines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19868, 32, 'A Barra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19869, 32, 'Requias -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19870, 32, 'Ribela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19871, 32, 'Santa Maria -Coles-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19872, 32, 'Gondulfes -Santa Cruz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19873, 32, 'Bentraces -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19874, 32, 'Carballeda de Valdeorras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19875, 32, 'Casaio -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19876, 32, 'El Condado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19877, 32, 'Couso de Salas -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19878, 32, 'Dadin -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19879, 32, 'Derrasa Roupeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19880, 32, 'Xocin -Porqueira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19881, 32, 'Langullo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19882, 32, 'Looa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19883, 32, 'A Medua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19884, 32, 'Mosteiro -A Pobra de Trives-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19885, 32, 'Pacio -A Pobra de Trives-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19886, 32, 'Paradela -Santo Antonio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19887, 32, 'Paradela de Abeleda -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19888, 32, 'Pedria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19889, 32, 'O Pieiro -Barbadas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19890, 32, 'Reigada -Sta. Maria Magdalena-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19891, 32, 'O Rial -Porqueira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19892, 32, 'Robledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19893, 32, 'A Rua -O Irixo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19894, 32, 'Sabadelle -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19895, 32, 'San Xusto -San Xusto-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19896, 32, 'San Lourenzo -Porqueira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19897, 32, 'San Mamede de Sobreganade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19898, 32, 'San Martio -Manzaneda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19899, 32, 'San Paio -Baltar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19900, 32, 'Servoi -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19901, 32, 'Tixos -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19902, 32, 'Tosende -San Lourenzo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19903, 32, 'A Valenza -San Bernabe-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19904, 32, 'Viladequinta -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19905, 32, 'Vilamaior Boullosa-Sta. Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19906, 32, 'Villarino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19907, 32, 'Loiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19908, 32, 'Portela Do Trigal -Santa Ana-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19909, 32, 'Abavides -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19910, 32, 'Aceredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19911, 32, 'Chamosios -Santa Baia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19912, 32, 'Entoma -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19913, 32, 'Escornabois -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19914, 32, 'Ganceiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19915, 32, 'Lardeira -San Tirso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19916, 32, 'Pereiras -Taboadela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19917, 32, 'Riodolas -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19918, 32, 'Santigoso -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19919, 32, 'Soulecin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19920, 32, 'Veredo -Taboadela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19921, 32, 'Vilar de Lebres -S. Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19922, 32, 'Vilario -O Barco Valdeorras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19923, 32, 'Casoio -San Xulian-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19924, 32, 'Amiudal -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19925, 32, 'Baiste -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19926, 32, 'Barroso -Santa Baia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19927, 32, 'Candeda -San Bernabeu-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19928, 32, 'Caseiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19929, 32, 'Corcores -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19930, 32, 'Cortegazas -Santo Antonio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19931, 32, 'Cortias -Castrelo de Mio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19932, 32, 'Couso -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19933, 32, 'Correxais -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19934, 32, 'Escudeiros -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19935, 32, 'San Vicente de Leira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19936, 32, 'Domiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19937, 32, 'Pambre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19938, 32, 'Quinta -Ramiras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19939, 32, 'Souto Ramiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19940, 32, 'Vilaboa -Paizas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19941, 32, 'Figueiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19942, 32, 'Parada -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19943, 32, 'Fontefria -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19944, 32, 'Trasalba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19945, 32, 'Marcelle-Xunqueira Espadanedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19946, 32, 'Pardeconde-Xunqueira Espadan.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19947, 32, 'Valilongo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19948, 32, 'Boazo -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19949, 32, 'Freande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19950, 32, 'Lodoselo -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19951, 32, 'Nocelo Da Pena -San Lourenzo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19952, 32, 'Paradia -Sta. Maria Madalena-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19953, 32, 'Perrelos -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19954, 32, 'Ourantes -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19955, 32, 'Pedra Do Sol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19956, 32, 'Pedrafita -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19957, 32, 'Vilaseca -San Roman-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19958, 32, 'Castieira -San Lourenzo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19959, 32, 'Sabuguido -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19960, 32, 'Edrada -Vilario de Conso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19961, 32, 'Seoane -San Xoan de Rio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19962, 32, 'A Cruz -San Xoan de Rio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19963, 32, 'Medos -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19964, 32, 'Mouruas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19965, 32, 'Barxa -O Bolo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19966, 32, 'Celavente -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19967, 32, 'Lentellais -San Simon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19968, 32, 'San Martio -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19969, 32, 'Cadavos -Santa Maria Madanela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19970, 32, 'Castromil-Nosa Sra.Da Encarna-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19971, 32, 'A Esculqueira -Santa Eufemia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19972, 32, 'Manzalvos -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19973, 32, 'Meson de Erosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19974, 32, 'O Pereiro -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19975, 32, 'S. Lourenzo Pentes-S.Lourenzo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19976, 32, 'Tameiron -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19977, 32, 'O Castro -Laza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19978, 32, 'Cerdedelo -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19979, 32, 'Matama -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19980, 32, 'Retorta -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19981, 32, 'Soutelo Verde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19982, 32, 'Estevesios -San Mamede-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19983, 32, 'Mixos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19984, 32, 'A Pousa -Monterrei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19985, 32, 'Vences -Santa Baia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19986, 32, 'Chaguazoso -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19987, 32, 'Casteloais -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19988, 32, 'Guntumil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19989, 32, 'Fitoiro -San Paio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19990, 32, 'Faramontaos -San Xes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19991, 32, 'Pereira -A Merca-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19992, 32, 'Almoite -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19993, 32, 'Corvillon -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19994, 32, 'Enxames -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19995, 32, 'Entrambosrios -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19996, 32, 'Espino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19997, 32, 'Florderrei Vello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19998, 32, 'Vilar de Gomareite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (19999, 32, 'Gomariz -Esgos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20000, 32, 'Xares -Santa Maria-'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20001, 32, 'Lamalonga -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20002, 32, 'Meixide -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20003, 32, 'Olas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20004, 32, 'Proente -Santo Andre-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20005, 32, 'Ponte -Santa Maria Magdalena-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20006, 32, 'Requeixo -San Andres-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20007, 32, 'San Lorenzo -San Lorenzo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20008, 32, 'Seiro -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20009, 32, 'Seoane -San Juan de A Veiga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20010, 32, 'Froxas Das Vias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20011, 32, 'Terroso -Santa Cruz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20012, 32, 'A Mezquita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20013, 32, 'Vilarello Da Cota-Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20014, 32, 'Vilario -Baos de Molgas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20015, 32, 'Zarracos -Santo Andre-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20016, 32, 'Concieiro -S.Vicente Paderne-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20017, 32, 'Golpellas -Santa Baia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20018, 32, 'Paiseo Paderne Allariz Mourisco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20019, 32, 'O Pazo -Paderne de Allariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20020, 32, 'San Gines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20021, 32, 'Prado -Castrelo de Mio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20022, 32, 'Vide -Castrelo de Mio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20023, 32, 'Curras -San Cibrao Das Vias-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20024, 32, 'La Iglesia San Ciprian Vias Rante'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20025, 32, 'La Venda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20026, 32, 'Castrelo de Abaixo -Sta.Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20027, 32, 'Castrelo de Cima -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20028, 32, 'Cimadevila Gomesende Poulo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20029, 32, 'Os Chaos -Gomesende-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20030, 32, 'Florderrei -Rios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20031, 32, 'Gomesende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20032, 32, 'A Eirexa -Rios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20033, 32, 'O Navallo -San Vicente-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20034, 32, 'Outeiro Da Guia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20035, 32, 'Progo -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20036, 32, 'Rabal -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20037, 32, 'Rubios -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20038, 32, 'San Cristovo -Rios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20039, 32, 'Caridad'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20040, 32, 'Flariz -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20041, 32, 'Guimarei'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20042, 32, 'Infesta -San Vicenzo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20043, 32, 'A Madanela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20044, 32, 'Medeiros -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20045, 32, 'A Salgueira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20046, 32, 'S.Cristovo-S.Cristovo Monterre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20047, 32, 'Sandin -Monterrei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20048, 32, 'Cabreiroa -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20049, 32, 'Casa Do Vento'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20050, 32, 'Feces de Abaixo -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20051, 32, 'Forcas -San Mamede-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20052, 32, 'Paradellas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20053, 32, 'Tamaguelos -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20054, 32, 'O Val -Parada de Sil-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20055, 32, 'O Valado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20056, 32, 'Vilamea -Baos de Molgas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20057, 32, 'Casas Dos Montes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20058, 32, 'As Chas -Sta. Maria Das Neves-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20059, 32, 'O Rosal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20060, 32, 'San Cibrao -Santa Cruz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20061, 32, 'A Castellana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20062, 32, 'Noalla -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20063, 32, 'Pazos -Soutopenedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20064, 32, 'A Abeleda -San Vicente-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20065, 32, 'Bobadela -Xunqueira de Ambia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20066, 32, 'Bustelio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20067, 32, 'Cerdeira -Xunqueira de Ambia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20068, 32, 'Cesures -San Clemente-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20069, 32, 'Ferbenza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20070, 32, 'A Pousa -Xunqueira de Ambia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20071, 32, 'Sta.Maria Do Monte -S.Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20072, 32, 'Vales -O Barco de Valdeorras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20073, 32, 'Abedes -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20074, 32, 'Leboreiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20075, 32, 'Caxide -Santa Cristina-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20076, 32, 'Parada Do Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20077, 32, 'Couso de Limia -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20078, 32, 'A Feira Vella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20079, 32, 'A Illa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20080, 32, 'Venceans -Santo Tome-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20081, 32, 'Vilar -Avion-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20082, 32, 'Cambela -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20083, 32, 'Untes -San Esteban-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20084, 32, 'Arnado -San Clemente-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20085, 32, 'A Portela -Xan Xulian-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20086, 32, 'Pumares -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20087, 32, 'Vilar -Maceda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20088, 32, 'Santiso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20089, 32, 'Castro de Escuadro -Sta.Baia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20090, 32, 'Porto -Vilar de Barrio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20091, 32, 'Quintela -Canedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20092, 32, 'Celeiron -Maceda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20093, 32, 'A Costa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20094, 32, 'Tioira -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20095, 32, 'Penaverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20096, 32, 'A Xironda -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20097, 32, 'Lamas -Cualedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20098, 32, 'A Lucenza -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20099, 32, 'Montes -Santa Baia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20100, 32, 'Souto O'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20101, 32, 'Atas -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20102, 32, 'Baldriz -San Bartolomeu-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20103, 32, 'Vilarellos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20104, 32, 'Vilela -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20105, 32, 'A Veiga de Cascalla -Sta.Cruz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20106, 32, 'As Estibadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20107, 32, 'El Real'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20108, 32, 'San Martio -Cualedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20109, 32, 'El Porto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20110, 32, 'O Barrio Cascalla-N.S.Asuncion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20111, 32, 'Biobra -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20112, 32, 'O Castelo -Rubia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20113, 32, 'Covas -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20114, 32, 'Mosteiro -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20115, 32, 'Vilar de Silva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20116, 32, 'Rubias -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20117, 32, 'O Tellado -Ramiras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20118, 32, 'Vilar Ourense'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20119, 32, 'Rante -Santo Andre-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20120, 32, 'Caveanca-Turei'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20121, 32, 'A Canle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20122, 32, 'Casal Do Regueiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20123, 32, 'Pea Folenche -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20124, 32, 'Sobrado -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20125, 32, 'Santa Eufemia -Celanova-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20126, 32, 'O Castro de Beiro -Sto.Andre-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20127, 32, 'Palmes -San Mamede-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20128, 32, 'Guamil -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20129, 32, 'Oulego -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20130, 32, 'Robledo Rubiana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20131, 32, 'Fonte Arcada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20132, 32, 'Xestosa -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20133, 32, 'Carreiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20134, 32, 'O Outeiro -Bande-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20135, 32, 'Regadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20136, 32, 'Merens -San Cibran-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20137, 32, 'Vilar de Cas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20138, 32, 'Rabio -San Bieito-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20139, 32, 'Monterredondo -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20140, 32, 'Sanguedo -Baos de Molgas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20141, 32, 'Gorgua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20142, 32, 'Loureses'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20143, 32, 'Nocedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20144, 32, 'Vilar -Os Blancos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20145, 32, 'Vilar -Padrenda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20146, 32, 'Cortegada -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20147, 32, 'Penalva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20148, 32, 'Condado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20149, 32, 'Viveiro -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20150, 32, 'Caseta -Celanova-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20151, 32, 'Freixo -Santa Cristina-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20152, 32, 'A Gandarela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20153, 32, 'La Puebla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20154, 32, 'Rabal Da Igrexa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20155, 32, 'A Ramallosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20156, 32, 'Sampaio -Veiga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20157, 32, 'Xagoaza -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20158, 32, 'Millarouso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20159, 32, 'Barxa -San Tome-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20160, 32, 'Orga -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20161, 32, 'Outarelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20162, 32, 'Pousa -Castro Caldelas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20163, 32, 'San Martio -Castro Caldelas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20164, 32, 'Mugares -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20165, 32, 'O Val -Castro Caldelas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20166, 32, 'O Pacio -Alais-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20167, 32, 'A Pereira -San Facundo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20168, 32, 'A Manchica -Nosa Sra. Lourdes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20169, 32, 'Parderrubias -Santa Olaia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20170, 32, 'Alixo -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20171, 32, 'Aldea de Deva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20172, 32, 'A Anagaza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20173, 32, 'O Castro -San Nicolao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20174, 32, 'Cruceiro -Pontedeva-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20175, 32, 'A Encomenda -Santo Antonio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20176, 32, 'Freans -Pontedeva-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20177, 32, 'Somoza -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20178, 32, 'Campo Redondo -Santo Andre-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20179, 32, 'Cotaros -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20180, 32, 'Chavolas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20181, 32, 'Fornelos -San Bartolomeu-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20182, 32, 'A Groba -Ribadavia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20183, 32, 'Leirado -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20184, 32, 'Pena Petada -Santo Estevo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20185, 32, 'O Seixo -Santo Anxo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20186, 32, 'Souto -Quintela de Leirado-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20187, 32, 'Mocios -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20188, 32, 'As Corrainzas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20189, 32, 'Chandoiro -San Ramon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20190, 32, 'Paredes -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20191, 32, 'Roblido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20192, 32, 'Puga -San Mamede-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20193, 32, 'Esposende -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20194, 32, 'Soutipedre -San Marcos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20195, 32, 'Feas -San Anton-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20196, 32, 'A Pedrosa -Cualedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20197, 32, 'Queirugas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20198, 32, 'Placin -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20199, 32, 'Tamallancos -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20200, 32, 'Arrabaldo Ourense'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20201, 32, 'Caldelios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20202, 32, 'O Carballo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20203, 32, 'A Fonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20204, 32, 'Moreiras -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20205, 32, 'Mourazos -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20206, 32, 'Pazos -Sarreaus-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20207, 32, 'Sabugueiro de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20208, 32, 'Valados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20209, 32, 'Vilamaior -Verin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20210, 32, 'Vilario -Monte Longo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20211, 32, 'Pacios -A Peroxa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20212, 32, 'Tintores -Santa Cristina-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20213, 32, 'Mandin -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20214, 32, 'O Picouto -Ramiras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20215, 32, 'Bouzas -O Lago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20216, 32, 'Castromarigo -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20217, 32, 'A Cortella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20218, 32, 'Feces de Cima -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20219, 32, 'Fumaces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20220, 32, 'A Lama -Cenlle-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20221, 32, 'Laroa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20222, 32, 'O Mourisco -Rios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20223, 32, 'Mouriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20224, 32, 'Osoo -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20225, 32, 'Penavaqueira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20226, 32, 'Pereira -Rairiz de Veiga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20227, 32, 'Pradolongo -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20228, 32, 'Santo Antoio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20229, 32, 'Sanguedo -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20230, 32, 'San Martio Dos Peros -Baltar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20231, 32, 'San Pedro -O Burgo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20232, 32, 'San Pedro -Xinzo de Limia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20233, 32, 'Trandeiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20234, 32, 'Trelle -Nosa Sra. Dos Anxos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20235, 32, 'Valdin -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20236, 32, 'A Veiga Das Meas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20237, 32, 'Vilamaior -Castro Caldelas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20238, 32, 'Buxan -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20239, 32, 'San Mamede -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20240, 32, 'El Campo -A Pobra de Trives-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20241, 32, 'Moldes -San Mamede-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20242, 32, 'Mouriscados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20243, 32, 'Rubillon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20244, 32, 'Camposancos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20245, 32, 'O Chao -Chandrexa de Queixa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20246, 32, 'Garabelos -Baltar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20247, 32, 'Beran -San Breixo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20248, 32, 'Parada Seca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20249, 32, 'Bieite -Santo Adrao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20250, 32, 'Soutelio -Laza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20251, 32, 'Cadelia -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20252, 32, 'A Veiga de Seixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20253, 32, 'Zamorela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20254, 32, 'Cortegada -Rios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20255, 32, 'Faramontaos -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20256, 32, 'Pedrosa -Rios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20257, 32, 'Quintela -Ribeiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20258, 32, 'Forcadela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20259, 32, 'Mosteiro Xinzo Limia Mosteiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20260, 32, 'Paredes -Leiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20261, 32, 'San Vitoiro -Xinzo de Limia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20262, 32, 'Xamiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20263, 32, 'A Caseta -Maceda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20264, 32, 'Solveira -Xinzo de Limia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20265, 32, 'Cameixa -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20266, 32, 'Laxas -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20267, 32, 'Lamela -Boboras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20268, 32, 'Paredes -Xinzo de Limia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20269, 32, 'Casar -Leiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20270, 32, 'Covas -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20271, 32, 'Corzos -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20272, 32, 'Feas -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20273, 32, 'Paradela -Calvos de Randin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20274, 32, 'Randin -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20275, 32, 'Serois'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20276, 32, 'Vilar -Calvos de Randin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20277, 32, 'Vilario -Calvos de Randin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20278, 32, 'Fondo de Vila -Boboras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20279, 32, 'Pareisas -Santo Antonio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20280, 32, 'Pazo -Boboras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20281, 32, 'Quenlle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20282, 32, 'A Fraga -San Bartolomeu-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20283, 32, 'Prado -Santa Cruz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20284, 32, 'Riobo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20285, 32, 'A Reza -A Arnoia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20286, 32, 'Casal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20287, 32, 'Folgoso -Sarreaus-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20288, 32, 'Armariz -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20289, 32, 'Albite -Muios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20290, 32, 'Soutadoiro -Santa Isabel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20291, 32, 'Olelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20292, 32, 'Carpazas -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20293, 32, 'Rebordondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20294, 32, 'Espio -Oimbra-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20295, 32, 'Bouses -Santa Baia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20296, 32, 'Videferre -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20297, 32, 'Pentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20298, 32, 'Erosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20299, 32, 'Parada Serra -S. Lucas Gudia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20300, 32, 'Camba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20301, 32, 'Carraxo -San Bieito-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20302, 32, 'S.Cristovo-S.Cristovo Vilario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20303, 32, 'Pazos San Cibrao Vias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20304, 32, 'Vilanova -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20305, 32, 'Oseira -Santa Maria la Real-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20306, 32, 'Novas -San Nicolao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20307, 32, 'As Maus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20308, 32, 'Granja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20309, 32, 'Pior -San Lourenzo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20310, 32, 'A Albergueria -Sta.Maria Laza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20311, 32, 'Vila -Santa Maria Magdalena-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20312, 32, 'Lapela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20313, 32, 'A Notaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20314, 32, 'Labandeira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20315, 32, 'Pousafoles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20316, 32, 'San Mamede -A Pobra de Trives-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20317, 32, 'Prada -San Andres-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20318, 32, 'San Facundo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20319, 32, 'Salon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20320, 32, 'Covelo -San Lourenzo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20321, 32, 'O Pacio -Santa Tegra Abeleda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20322, 32, 'Besteiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20323, 32, 'Vieiro -Verea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20324, 32, 'Sabucedo -Verea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20325, 32, 'Orega -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20326, 32, 'Abelenda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20327, 32, 'Vilar de Condes -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20328, 32, 'Abeledos Montederramo Abeledos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20329, 32, 'Sas Do Monte -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20330, 32, 'Verducedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20331, 32, 'Bustelo -Xunqueira de Ambia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20332, 32, 'Casasoa -Xunqueira de Ambia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20333, 32, 'Covelo -Melon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20334, 32, 'Loureiro -Nogueira de Ramuin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20335, 32, 'Ruxil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20336, 32, 'Rebordechau -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20337, 32, 'Sobredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20338, 32, 'O Robledo -Vilamartin V.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20339, 32, 'Cima de Costa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20340, 32, 'Mirallos -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20341, 32, 'Lamas -Santa Maria de Xinzo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20342, 32, 'Morgade -San Tome-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20343, 32, 'Parada de Ribeira -S.Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20344, 32, 'Ganade -San Bartolomeu-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20345, 32, 'Requeixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20346, 32, 'Fornelos de Filloas-Sta.Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20347, 32, 'Entrecinsa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20348, 32, 'Pradoalbar -Santo Andre-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20349, 32, 'Lampaza -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20350, 32, 'Ribas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20351, 32, 'Teixido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20352, 32, 'A Trabe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20353, 32, 'Pixeiros -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20354, 32, 'Solveira -Santo Adrao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20355, 32, 'Villaseco Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20356, 32, 'Grixoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20357, 32, 'Paradela -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20358, 32, 'Tabazoa de Umoso -S.Sebastian-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20359, 32, 'Xacebans -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20360, 32, 'Corredoira -Toen-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20361, 32, 'A Hedreira -Avion-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20362, 32, 'Lebozan -Santa Cruz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20363, 32, 'Correa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20364, 32, 'A Ermida -Beariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20365, 32, 'Doade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20366, 32, 'Regueiro de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20367, 32, 'Toro -San Lourenzo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20368, 32, 'Os Casares -Verea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20369, 32, 'Cexo Verea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20370, 32, 'Frixe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20371, 32, 'El Parao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20372, 32, 'O Reino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20373, 32, 'Bainte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20374, 32, 'A Outraldea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20375, 32, 'Cardeita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20376, 32, 'Grobas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20377, 32, 'Vales -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20378, 32, 'Correchouso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20379, 32, 'Bangueses de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20380, 32, 'Petin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20381, 32, 'Barxa -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20382, 32, 'Cernado -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20383, 32, 'Cepedelo -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20384, 32, 'Chaguazoso -San Bernabe-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20385, 32, 'Lamasdeite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20386, 32, 'Venta Capilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20387, 32, 'Meda -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20388, 32, 'Berrande -San Bartolomeu-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20389, 32, 'Ramilo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20390, 32, 'Bouza -Viana Do Bolo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20391, 32, 'Quintela de Edroso -S.Cosmede-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20392, 32, 'Veiga de Nostre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20393, 32, 'Cardelle -San Silvestre-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20394, 32, 'Candosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20395, 32, 'Cuas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20396, 32, 'Quereo -San Cristovo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20397, 32, 'Lama Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20398, 32, 'Vilariofrio -S. Cristovo Cea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20399, 32, 'Espieira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20400, 32, 'Parada -O Irixo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20401, 32, 'Sueirexa -O Irixo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20402, 32, 'Carracedo Da Serra -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20403, 32, 'Riomao -Santo Tomas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20404, 32, 'Faramontaos San Cristovo Cea Via'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20405, 32, 'Ardesende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20406, 32, 'A Teixeira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20407, 32, 'Barracel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20408, 32, 'San Pedro de Trasverea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20409, 32, 'Taboazas As'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20410, 32, 'O Piornedo -Santa Eufemia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20411, 32, 'Fontefria -Castrelo Do Val-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20412, 32, 'Campobecerros -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20413, 32, 'Portocamba -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20414, 32, 'Torneiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20415, 32, 'Bubaces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20416, 32, 'Sever -San Lourenzo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20417, 32, 'Pradorramisquedo -S.Sebastian-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20418, 32, 'San Paio -Lobios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20419, 32, 'Bembibre -Santo Andre-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20420, 32, 'Parada -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20421, 32, 'Mende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20422, 32, 'Santa Marta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20423, 32, 'Sobrado -O Pereiro de Aguiar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20424, 32, 'Abrucios -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20425, 32, 'Boveda -San Paio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20426, 32, 'Velle -Santa Marta-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20427, 32, 'Rouzos -San Cibrao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20428, 32, 'Brues -San Pedro Felix-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20429, 32, 'Xurenzas -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20430, 32, 'A Piteira -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20431, 32, 'Sagra -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20432, 32, 'Esposende -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20433, 32, 'Osmo -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20434, 32, 'Garabas -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20435, 32, 'Coiras -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20436, 32, 'Vilamoure -Santo Estevo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20437, 32, 'Lamas -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20438, 32, 'Longos -Santa Eulalia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20439, 32, 'Mandras -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20440, 32, 'Vilaseco -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20441, 32, 'Rio -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20442, 32, 'Sobreira -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20443, 32, 'Pardeconde -Esgos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20444, 32, 'Lobaces -Esgos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20445, 32, 'Gabin -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20446, 32, 'La Medorra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20447, 32, 'Nogueira -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20448, 32, 'Ramil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20449, 32, 'Fea -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20450, 32, 'Burgo O'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20451, 32, 'Folgoso -Santiago Castro Cald.'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20452, 32, 'Nogueira de Ramuin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20453, 32, 'A Edrada -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20454, 32, 'Pradomao -San Xiao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20455, 32, 'Gueral -S.Martio de A Peroxa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20456, 32, 'Santa Maria de Augas Santas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20457, 32, 'Coedo -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20458, 32, 'San Vitoiro -San Vitoiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20459, 32, 'Seoane -San Xoan de Allariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20460, 32, 'Torneiros -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20461, 32, 'Niodaguia -San Lourenzo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20462, 32, 'Corvelle -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20463, 32, 'Garabelos -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20464, 32, 'Guin -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20465, 32, 'Vilar -San Pedro Fiz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20466, 32, 'Poedo -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20467, 32, 'Presqueira -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20468, 32, 'Pexeiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20469, 32, 'Castelaus -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20470, 32, 'Golpellas -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20471, 32, 'Lobas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20472, 32, 'Rioseco -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20473, 32, 'Fechas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20474, 32, 'Vilanova Infantes -S.Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20475, 32, 'Galez -San Fiz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20476, 32, 'A Graa -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20477, 32, 'A Cela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20478, 32, 'Grou -San Mamede-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20479, 32, 'Torno -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20480, 32, 'Parada de Ventosa -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20481, 32, 'Candas -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20482, 32, 'Congostro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20483, 32, 'Sabariz -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20484, 32, 'Zapeaus -Santo Adrao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20485, 32, 'Pieira de Arcos -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20486, 32, 'Bresmaus -San Bartolomeu-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20487, 32, 'O Freixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20488, 32, 'Soutomaior -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20489, 32, 'San Xurxo Da Touza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20490, 32, 'Lobaces -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20491, 32, 'Gontan -Santo Andre-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20492, 32, 'Portela -Santa Baia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20493, 32, 'Maus -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20494, 32, 'Padreda -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20495, 32, 'Parada de Outeiro-Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20496, 32, 'Boado -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20497, 32, 'Cima de Ribeira -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20498, 32, 'Damil -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20499, 32, 'Gudin -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20500, 32, 'Moreiras -San Tome-'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20501, 32, 'Pieira Seca -Santo Andre-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20502, 32, 'Remuio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20503, 32, 'Balde -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20504, 32, 'Muimenta -San Xiao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20505, 32, 'O Barco de Valdeorras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20506, 32, 'Couxil -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20507, 32, 'Vilar de Vacas -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20508, 32, 'Louredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20509, 32, 'Zaparin -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20510, 32, 'Santo Tome -Leiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20511, 32, 'Casardeita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20512, 32, 'Freas de Eiras -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20513, 32, 'Grixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20514, 32, 'Paizas -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20515, 32, 'Sanin -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20516, 32, 'Chao de Castro -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20517, 32, 'As Ermidas -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20518, 32, 'Xava -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20519, 32, 'Paradela -San Sebastian-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20520, 32, 'Tuxe -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20521, 32, 'Valdanta -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20522, 32, 'Pusmazan -San Mateo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20523, 32, 'Santa Cruz-Sta.Cruz Carballeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20524, 32, 'Seadur -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20525, 32, 'Requeixo -San Bartolomeu-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20526, 32, 'S.Miguel de Bidueira-S.Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20527, 32, 'Portomourisco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20528, 32, 'Navea -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20529, 32, 'San Xulian -San Xulian-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20530, 32, 'Baos -San Felix-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20531, 32, 'Candeda -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20532, 32, 'Carracedo -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20533, 32, 'Casdenodres -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20534, 32, 'Castromao -Sta. Maria A Veiga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20535, 32, 'Corexido -San Esteban-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20536, 32, 'Edreira -Santa Columba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20537, 32, 'Prado -San Esteban-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20538, 32, 'Vilaboa -Santa Lucia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20539, 32, 'Caldesios -Santa Cristina-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20540, 32, 'Froxais -San Brais-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20541, 32, 'Edroso -San Roman-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20542, 32, 'Morisca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20543, 32, 'Penouta -San Bartolomeu-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20544, 32, 'Pinza -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20545, 32, 'Pradocabalos -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20546, 32, 'Rubiais -San Cibrao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20547, 32, 'San Martio -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20548, 32, 'Vilardemilo -S.Maria Madanela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20549, 32, 'Vilarmeao -Santo Anton-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20550, 32, 'Cernego -San Victor-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20551, 32, 'Conso -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20552, 32, 'Mormentelos -Nosa Sra. Da O-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20553, 32, 'Pepin -San Vicente-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20554, 32, 'Carzoa -San Roque-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20555, 32, 'Trez -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20556, 32, 'Rabal -Santo Andre-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20557, 32, 'A Trepa -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20558, 32, 'Tamagos -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20559, 32, 'Moialde -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20560, 32, 'Soutochao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20561, 32, 'Vilar de Cervos -San Vicente-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20562, 32, 'As Ventas Da Barreira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20563, 32, 'Guntimil -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20564, 32, 'Cachamuia -O Pereiro Aguiar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20565, 32, 'Castadon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20566, 32, 'Santo Estevo -Carballeda Avia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20567, 32, 'Sobral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20568, 32, 'Coucieiro -Padrenda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20569, 32, 'Freanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20570, 32, 'Teimende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20571, 32, 'Vilavidal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20572, 32, 'A Facha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20573, 32, 'Cruceiro -San Amaro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20574, 32, 'Rabal -Trasmiras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20575, 32, 'Gomariz -Baltar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20576, 32, 'Montecelo -Baltar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20577, 32, 'Outar de Pregos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20578, 32, 'Rubias -Calvos de Randin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20579, 32, 'Beiro de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20580, 32, 'Sande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20581, 32, 'Teixugueiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20582, 32, 'Muntian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20583, 32, 'San Pedro -Cartelle-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20584, 32, 'Parvon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20585, 32, 'Saceda -Cualedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20586, 32, 'Ferreiros -Entrimo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20587, 32, 'O Casal -Entrimo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20588, 32, 'Faramontaos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20589, 32, 'Sabucedo -Cartelle-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20590, 32, 'Moreiras -Gomesende-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20591, 32, 'Paredes -Gomesende-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20592, 32, 'Nogueiroa -O Irixo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20593, 32, 'Gaias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20594, 32, 'Sabariz -Lobeira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20595, 32, 'Senderiz -Lobeira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20596, 32, 'Torneiros -Lobeira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20597, 32, 'Vilario Lobeira Vilario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20598, 32, 'Baldemir'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20599, 32, 'Xendive -Lobios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20600, 32, 'Pugedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20601, 32, 'Padrendo Lobios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20602, 32, 'Requeixo -Lobios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20603, 32, 'A Ibia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20604, 32, 'Reparade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20605, 32, 'Taboadela -Muios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20606, 32, 'Grixo -Padrenda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20607, 32, 'Morgade -Padrenda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20608, 32, 'Cinco Nogueiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20609, 32, 'O Toxal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20610, 32, 'Nigueiroa -Rairiz de Veiga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20611, 32, 'Calvos -Ramiras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20612, 32, 'A Corredoira -Ramiras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20613, 32, 'Prexigueiro -Ribadavia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20614, 32, 'Covelas -Rios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20615, 32, 'Domiz -Rios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20616, 32, 'Pousada -Rios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20617, 32, 'Oval'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20618, 32, 'Viduedo -San Cristovo de Cea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20619, 32, 'Cerredelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20620, 32, 'Zadagos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20621, 32, 'Padroso -Sarreaus-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20622, 32, 'Cardeo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20623, 32, 'Mones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20624, 32, 'Penouzos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20625, 32, 'Feilas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20626, 32, 'Devesa -Vilardevos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20627, 32, 'Guillamil -Santo Andre-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20628, 32, 'Monteveloso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20629, 32, 'Vilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20630, 32, 'Villamea -Lobios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20631, 32, 'San Millao -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20632, 32, 'As Airas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20633, 32, 'A Vila -Lobios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20634, 32, 'Prencibe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20635, 32, 'O Valoiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20636, 32, 'Nogueira -A Abeleda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20637, 32, 'Sixtin -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20638, 32, 'Amiadoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20639, 32, 'Gundias -Allariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20640, 32, 'Queiroas Da Igrexa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20641, 32, 'Vilar de Flores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20642, 32, 'Cornoces -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20643, 32, 'Loureiro -Amoeiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20644, 32, 'Calvelo -Baos de Molgas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20645, 32, 'Meaman'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20646, 32, 'Pereiras -Boboras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20647, 32, 'Moreiras -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20648, 32, 'Vecoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20649, 32, 'Vecoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20650, 32, 'Vilacha -Boboras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20651, 32, 'San Tome -San Tome-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20652, 32, 'Albin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20653, 32, 'A Bouza -Castrelo de Mio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20654, 32, 'As Bouzas -Castrelo de Mio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20655, 32, 'Casardeita -Castrelo de Mio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20656, 32, 'Freas -Castrelo de Mio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20657, 32, 'Noallo de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20658, 32, 'Nogueiredo -Castrelo de Mio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20659, 32, 'Ramiras -Castrelo de Mio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20660, 32, 'Santo Estevo-Castrelo de Mio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20661, 32, 'San Pedro -Castrelo de Mio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20662, 32, 'Souto Castrelo Mio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20663, 32, 'Traveso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20664, 32, 'Troncoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20665, 32, 'Vilarnaz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20666, 32, 'Pazos de Abeleda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20667, 32, 'Sobradelo -Xunqueira de Ambia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20668, 32, 'Barrio -A Merca-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20669, 32, 'O Val -A Merca-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20670, 32, 'Vilacha -A Merca-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20671, 32, 'Corneira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20672, 32, 'Baldrei'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20673, 32, 'Carguizoi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20674, 32, 'A Couzada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20675, 32, 'Xinzo Da Costa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20676, 32, 'Piuca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20677, 32, 'Sarreaus -Tioira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20678, 32, 'O Bolo -Maside-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20679, 32, 'Louredo -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20680, 32, 'Eiradela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20681, 32, 'Vilauxe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20682, 32, 'A Casalta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20683, 32, 'Cebreiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20684, 32, 'Chaodarcas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20685, 32, 'Cimadevila -Melias-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20686, 32, 'A Lamela -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20687, 32, 'Ordelles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20688, 32, 'Pregigueiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20689, 32, 'San Benito Da Veiga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20690, 32, 'Vilaboa -O Pereiro de Aguiar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20691, 32, 'Sas de Xunqueira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20692, 32, 'Belmonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20693, 32, 'Calvos -San Cibrao Das Vias-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20694, 32, 'A Carballeira -S.Cibrao Vias-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20695, 32, 'Rante -Santo Andre-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20696, 32, 'Vilanova-San Cibrao Das Vias-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20697, 32, 'Andrade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20698, 32, 'Vilario Das Poldras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20699, 32, 'Codosedo -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20700, 32, 'Boveda -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20701, 32, 'Fiestras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20702, 32, 'Pena -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20703, 32, 'Rebordacha -Xinzo de Limia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20704, 32, 'Pazos de Arenteiro-S.Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20705, 32, 'Meije'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20706, 32, 'Sanguedo -Castrelo Do Val-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20707, 32, 'Touros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20708, 32, 'San Cristovo -Ramiras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20709, 32, 'Bangueses de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20710, 32, 'A Portela de Portomourisco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20711, 32, 'A Ponte -A Arnoia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20712, 32, 'Lobosandaus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20713, 32, 'Pereira -Bande-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20714, 32, 'Os Cuquexos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20715, 32, 'Fonte Moreiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20716, 32, 'Gabian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20717, 32, 'Paradela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20718, 32, 'San Pedro Dos Nabos -O Bolo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20719, 32, 'Pol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20720, 32, 'Boedes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20721, 32, 'La Armada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20722, 32, 'O Bagullo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20723, 32, 'Baldariz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20724, 32, 'O Carballal -Cartelle-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20725, 32, 'Freixoso de Penela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20726, 32, 'Pereda -Cartelle-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20727, 32, 'Os Pereiros -Cartelle-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20728, 32, 'Ulfe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20729, 32, 'Aguil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20730, 32, 'Fontelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20731, 32, 'Guxinde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20732, 32, 'Lantemil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20733, 32, 'Queguas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20734, 32, 'Folgoso -Esgos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20735, 32, 'As Meiroas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20736, 32, 'Matama -Gomesende-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20737, 32, 'Baxin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20738, 32, 'Irixo de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20739, 32, 'Saavedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20740, 32, 'Arcucelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20741, 32, 'Chaos -Lobeira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20742, 32, 'As Conchas -Lobeira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20743, 32, 'Buscalque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20744, 32, 'Compostela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20745, 32, 'Esperanzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20746, 32, 'Ludeiros -Lobios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20747, 32, 'Casasoa -Maceda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20748, 32, 'Cimadevila -Maceda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20749, 32, 'San Paio -Maside-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20750, 32, 'Barcia -Melon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20751, 32, 'Vilaverde -Melon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20752, 32, 'Vivenzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20753, 32, 'A Abelleira -Muios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20754, 32, 'Cerdedo -Muios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20755, 32, 'Pazo -Muios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20756, 32, 'Villauriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20757, 32, 'Ferreiros -Padrenda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20758, 32, 'Lordelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20759, 32, 'Pardieiros -O Pereiro Aguiar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20760, 32, 'Quintela -O Pereiro de Aguiar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20761, 32, 'Reboredo -O Pereiro de Aguiar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20762, 32, 'Corvelle -A Peroxa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20763, 32, 'O Coto -A Peroxa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20764, 32, 'Carballal -Petin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20765, 32, 'San Paio -Petin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20766, 32, 'A Filgueira -Porqueira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20767, 32, 'Lovios -Porqueira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20768, 32, 'A Pousa -Punxin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20769, 32, 'Azureiros -Rairiz de Veiga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20770, 32, 'Ludro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20771, 32, 'Padroso -Rairiz de Veiga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20772, 32, 'Rosen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20773, 32, 'Covelas -Ramiras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20774, 32, 'O Pazo -Ramiras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20775, 32, 'Ver'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20776, 32, 'O Viso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20777, 32, 'Cambela -San Xoan de Rio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20778, 32, 'Romariz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20779, 32, 'San Paio -Rios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20780, 32, 'Cristimil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20781, 32, 'Pieles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20782, 32, 'Santa Locaia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20783, 32, 'Celeiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20784, 32, 'Trellerma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20785, 32, 'Barreiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20786, 32, 'Gondesende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20787, 32, 'Pitelos -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20788, 32, 'Fornelos de Cova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20789, 32, 'Santo Agostio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20790, 32, 'Tabazoa de Edroso -Sta. Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20791, 32, 'Alemparte -Vilar de Barrio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20792, 32, 'Cancillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20793, 32, 'San Miguel -Vilar de Barrio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20794, 32, 'Arzoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20795, 32, 'Bustelo -Vilardevos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20796, 32, 'Muimenta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20797, 32, 'Rexosende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20798, 32, 'Soutocovo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20799, 32, 'Vilario Da Veiga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20800, 32, 'A Fiestra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20801, 32, 'Nogueira -Boazo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20802, 32, 'Cerdeira -O Irixo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20803, 32, 'Peaguda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20804, 32, 'Penelas -Rairiz de Veiga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20805, 32, 'Soutogrande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20806, 32, 'Soutelo -Vilario de Conso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20807, 32, 'Anfeoz -Santa Baia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20808, 32, 'Pidre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20809, 32, 'Gudes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20810, 32, 'Soutelo de Ribeira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20811, 32, 'A Gorgoloza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20812, 32, 'Baxeles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20813, 32, 'Oliveira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20814, 32, 'La Pela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20815, 32, 'Liares -Avion-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20816, 32, 'O Noval -Gomesende-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20817, 32, 'Carballeira A'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20818, 32, 'Vilar-Pinto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20819, 32, 'Abelenda -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20820, 32, 'Boeiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20821, 32, 'Castro de Covas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20822, 32, 'Frieira -O Pereiro de Aguiar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20823, 32, 'Lamagrande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20824, 32, 'La Medorra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20825, 32, 'Outeiro -Trios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20826, 32, 'Pedraio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20827, 32, 'O Tombo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20828, 32, 'Vilarchao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20829, 32, 'Caserio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20830, 32, 'Cerdedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20831, 32, 'O Lameirio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20832, 32, 'Bretelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20833, 32, 'Valverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20834, 32, 'Figueiroa -Boboras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20835, 32, 'Nogueira -Boboras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20836, 32, 'Vilario -Carballeda de Avia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20837, 32, 'Porto de Eguas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20838, 32, 'Pacios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20839, 32, 'Terzas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20840, 32, 'Seixadelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20841, 32, 'Carracedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20842, 32, 'A Barxia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20843, 32, 'Rebordios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20844, 32, 'Melon de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20845, 32, 'A Esfarrapa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20846, 32, 'O Xen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20847, 32, 'Estrumil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20848, 32, 'Dona Elvira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20849, 32, 'Bouzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20850, 32, 'Quinta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20851, 32, 'Vilela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20852, 32, 'Beiro de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20853, 32, 'Saa -Carballeda de Avia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20854, 32, 'A Veiga -Carballeda de Avia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20855, 32, 'Feal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20856, 32, 'Leborin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20857, 32, 'Puentefechas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20858, 32, 'Sampedro -Celanova-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20859, 32, 'Menaz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20860, 32, 'Fradalvite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20861, 32, 'A Santa Cruz -Lobeira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20862, 32, 'Pias -Maceda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20863, 32, 'Seoane -Manzaneda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20864, 32, 'Trabazos -Manzaneda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20865, 32, 'Carreira Maside'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20866, 32, 'Costanza -Maside-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20867, 32, 'San Fiz -Maside-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20868, 32, 'Soutelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20869, 32, 'Souto -Nogueira de Ramuin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20870, 32, 'Xirei'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20871, 32, 'Outeiro -Cusanca-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20872, 32, 'A Graa -Xunqueira Espadanedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20873, 32, 'O Castro -Verea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20874, 32, 'Negrelle -Melon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20875, 32, 'Guimil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20876, 32, 'Agra -Padrenda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20877, 32, 'Carballal -Padrenda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20878, 32, 'A Quinta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20879, 32, 'Esmoriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20880, 32, 'Agra -O Pereiro de Aguiar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20881, 32, 'O Outeiro-S.Marta de Moreiras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20882, 32, 'Vilaboa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20883, 32, 'Canices'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20884, 32, 'O Viao -Punxin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20885, 32, 'Carraguedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20886, 32, 'O Reguengo -Ramiras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20887, 32, 'Silvaoscura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20888, 32, 'Vilanova -Ramiras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20889, 32, 'Bustelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20890, 32, 'Costademonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20891, 32, 'Tarrazo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20892, 32, 'Taboadela -Paderne de Allariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20893, 32, 'A Gradeira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20894, 32, 'O Souto -Rios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20895, 32, 'Toubes -San Cristobo de Cea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20896, 32, 'Villarino Frio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20897, 32, 'Soutelo -A Teixeira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20898, 32, 'Castelo -Trasmiras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20899, 32, 'A Fraira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20900, 32, 'Traseirexa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20901, 32, 'Sas -Sarreaus-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20902, 32, 'A Portela Da Quinta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20903, 32, 'Amea -Sarreaus-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20904, 32, 'Xiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20905, 32, 'A Boga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20906, 32, 'Rubias -Punxin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20907, 32, 'As Caldas -Partovia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20908, 32, 'Cabaleiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20909, 32, 'Tarreirigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20910, 32, 'As Cortes -San Xoan de Rio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20911, 32, 'Acevido -San Xoan de Rio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20912, 32, 'Asperelo E Olin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20913, 32, 'Merouzo Pequeno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20914, 32, 'Vilar de Paio Muiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20915, 32, 'Oroso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20916, 32, 'Borulfe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20917, 32, 'Bouzas -Vilamarin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20918, 32, 'Abelaira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20919, 32, 'Valias -San Cibrao Das Vias-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20920, 32, 'A Touza -San Xoan de Rio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20921, 32, 'San Miguel -San Xoan de Rio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20922, 32, 'Valdonedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20923, 32, 'Val de Miotos-San Xoan de Rio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20924, 32, 'San Xulian -San Xoan de Rio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20925, 32, 'O Xunquedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20926, 32, 'Abelaido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20927, 32, 'Castromao -San Xoan de Rio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20928, 32, 'Cima de Vila -San Xoan de Rio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20929, 32, 'Barxes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20930, 32, 'Cerdal -Gomesende-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20931, 32, 'Domecelle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20932, 32, 'Gendive'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20933, 32, 'O Moreiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20934, 32, 'O Mosqueiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20935, 32, 'Muios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20936, 32, 'O Outeiro -San Xoan de Rio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20937, 32, 'Pascais'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20938, 32, 'Penedo -Boboras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20939, 32, 'O Pomar -A Arnoia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20940, 32, 'Razamonde -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20941, 32, 'Requeixo de Valverde-Sta.Maria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20942, 32, 'San Miguel -Allariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20943, 32, 'Cimadevila -S.Marta Moreiras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20944, 32, 'A Pola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20945, 32, 'A Hermida -Castrelo de Mio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20946, 32, 'Coira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20947, 32, 'A Rigueira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20948, 32, 'San Silvestre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20949, 32, 'O Castro -Viana Do Bolo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20950, 32, 'Reigoso -Castrelo de Mio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20951, 32, 'Sampaio -Rabal-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20952, 32, 'Quintela -Santa Comba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20953, 32, 'Espieiro -Avion-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20954, 32, 'Penedo -Avion-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20955, 32, 'Sonelle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20956, 32, 'Orros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20957, 32, 'Orosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20958, 32, 'Os Casares O Irixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20959, 32, 'Cabanelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20960, 32, 'A Vila -Punxin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20961, 32, 'Veiga de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20962, 32, 'Alvarin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20963, 32, 'Forcadas -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20964, 32, 'Chavean -San Bartolomeu-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20965, 32, 'Vilario -Avion-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20966, 32, 'S.Cristovo-S.Cristovo Chandrex'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20967, 32, 'Laioso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20968, 32, 'Pumares -Allariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20969, 32, 'Barreal -A Bola-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20970, 32, 'Villarellos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20971, 32, 'Os Vilares -Celanova-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20972, 32, 'A Lampaza -Celanova-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20973, 32, 'Cerdal -A Bola-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20974, 32, 'Berredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20975, 32, 'Mercedes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20976, 32, 'Touron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20977, 32, 'Vilamea -Laza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20978, 32, 'Vilarda -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20979, 32, 'Toutelle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20980, 32, 'As Ribadas -San Xoan de Rio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20981, 32, 'Abertesga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20982, 32, 'Nogueira -Leiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20983, 32, 'Nogueira -Lobeira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20984, 32, 'A Corga -Sandias-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20985, 32, 'Albeiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20986, 32, 'A Lavandeira -Sandias-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20987, 32, 'Confurco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20988, 32, 'Fenteira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20989, 32, 'A Bergueira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20990, 32, 'Pazos Ermos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20991, 32, 'Pieiro -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20992, 32, 'A Eirexa -Toen-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20993, 32, 'San Fiz -Toen-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20994, 32, 'Aldea de Souto -Cortegada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20995, 32, 'Tamicelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20996, 32, 'Roucos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20997, 32, 'Cangues -Santo Estevo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20998, 32, 'Subirol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (20999, 32, 'Couso -O Irixo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21000, 32, 'Coucieiro -O Irixo-'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21001, 32, 'Barro -Loureiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21002, 32, 'Alen -O Irixo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21003, 32, 'A Touza -Esgos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21004, 32, 'Melon de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21005, 32, 'Cima de Vila -Cenlle-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21006, 32, 'Sadurnin -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21007, 32, 'Pesqueiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21008, 32, 'Carretera Castro Caldelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21009, 32, 'O Prado -Cartelle-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21010, 32, 'Oleiros -Cartelle-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21011, 32, 'Sanguedo -Cartelle-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21012, 32, 'Mosteiro -O Carballio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21013, 32, 'Celeiros -O Bolo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21014, 32, 'Vilar -A Bola-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21015, 32, 'San Pedro -A Bola-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21016, 32, 'Rubias -A Bola-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21017, 32, 'Pardavedra -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21018, 32, 'Vila -Boboras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21019, 32, 'Saa -Boboras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21020, 32, 'Liarios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21021, 32, 'O Igresario -Albarellos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21022, 32, 'Trarigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21023, 32, 'Rodeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21024, 32, 'Turzas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21025, 32, 'Xordos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21026, 32, 'Guntin -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21027, 32, 'O Mosteiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21028, 32, 'Aguis -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21029, 32, 'Sabucedo Dos Peros -Baltar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21030, 32, 'Barxacova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21031, 32, 'Outeiro de Laxe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21032, 32, 'As Quintas de San Trocado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21033, 32, 'San Cristovo -Paderne Allariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21034, 32, 'S.Salvador de Mourisco-S.Salv.'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21035, 32, 'El Barrio -Paderne de Allariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21036, 32, 'Pereiro Ourense'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21037, 32, 'Naves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21038, 32, 'Fechos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21039, 32, 'As Curuxeiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21040, 32, 'Casardomato Ourense'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21041, 32, 'Abeleda Ourense'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21042, 32, 'Requeixo -Loa Do Monte-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21043, 32, 'Requeixo Nogueira Ramuin Armariz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21044, 32, 'La Rasa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21045, 32, 'Cachaldora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21046, 32, 'Albergueria -Nogueira Ramuin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21047, 32, 'Pazos -Muios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21048, 32, 'Barrio -Cados-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21049, 32, 'Palleiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21050, 32, 'Faquin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21051, 32, 'O Rodicio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21052, 32, 'Santabaia -Amoeiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21053, 32, 'Carnos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21054, 32, 'Taboazas -Avion-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21055, 32, 'Guede -Baos de Molgas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21056, 32, 'Xocin -Baos de Molgas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21057, 32, 'San Pedro de Ribeira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21058, 32, 'Santa Ouxea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21059, 32, 'Ricovanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21060, 32, 'As Antas -Beariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21061, 32, 'Penela -Boboras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21062, 32, 'Parada -Boboras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21063, 32, 'Ventosa -Boboras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21064, 32, 'Covas -A Bola-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21065, 32, 'Chao Das Donas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21066, 32, 'Valbuxan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21067, 32, 'Pintas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21068, 32, 'Padroso -Calvos de Randin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21069, 32, 'Vila -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21070, 32, 'Banga -Santa Baia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21071, 32, 'Bagarelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21072, 32, 'Costoia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21073, 32, 'Trigas -Lobas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21074, 32, 'Esgueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21075, 32, 'Souto -Piteira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21076, 32, 'A Veiga -O Baron-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21077, 32, 'Sabuz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21078, 32, 'Santa Catalina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21079, 32, 'Parada -Castrelo de Mio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21080, 32, 'Fechias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21081, 32, 'Rabal de Riba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21082, 32, 'Bouzadrago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21083, 32, 'Garabelos -Gomesende-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21084, 32, 'Couto -Gomesende-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21085, 32, 'A Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21086, 32, 'Ermille'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21087, 32, 'Souto -Lobeira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21088, 32, 'Taboazas -Lobeira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21089, 32, 'Gustomeao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21090, 32, 'Guende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21091, 32, 'Quintela -Lobios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21092, 32, 'Devesa -Lobios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21093, 32, 'Parada -Maceda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21094, 32, 'Escuadro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21095, 32, 'Bustavalle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21096, 32, 'Moces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21097, 32, 'Matusios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21098, 32, 'Merouzo Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21099, 32, 'Vilaboa -A Merca-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21100, 32, 'Pioi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21101, 32, 'A Pousa -Muios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21102, 32, 'Santigueiro -Parada de Sil-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21103, 32, 'A Senra -Parada de Sil-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21104, 32, 'Verengo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21105, 32, 'A Costrela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21106, 32, 'San Cibrao -A Peroxa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21107, 32, 'As Cuartas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21108, 32, 'Gulfariz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21109, 32, 'Pousada -A Peroxa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21110, 32, 'Casundila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21111, 32, 'Turzavella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21112, 32, 'A Pousa -A Peroxa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21113, 32, 'Moire'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21114, 32, 'A Corna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21115, 32, 'Reboreda -Porqueira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21116, 32, 'Nocelo -Porqueira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21117, 32, 'Xinzo de Deva -Pontedeva-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21118, 32, 'Trado Pequeno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21119, 32, 'Forxan -Quintela de Leirado-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21120, 32, 'Fraguas -Quintela de Leirado-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21121, 32, 'Chedas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21122, 32, 'Filgueiras -Rairiz de Veiga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21123, 32, 'Quilmelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21124, 32, 'Crespos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21125, 32, 'Lama de Paio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21126, 32, 'Aldea Do Muio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21127, 32, 'San Tome -Ramiras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21128, 32, 'Fraguas -Ramiras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21129, 32, 'Vilario -Ramiras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21130, 32, 'Almariz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21131, 32, 'O Seixo -Ribadavia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21132, 32, 'Arboiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21133, 32, 'A Silva -Rios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21134, 32, 'Santa Baia -Rios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21135, 32, 'Vilario Das Touzas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21136, 32, 'Veiguia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21137, 32, 'O Hospicio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21138, 32, 'Pazos -San Amaro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21139, 32, 'O Outeiro -Beariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21140, 32, 'Xinzo -San Amaro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21141, 32, 'Gontan -San Amaro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21142, 32, 'A Mioteira-S.Cibrao Das Vias-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21143, 32, 'Carballo -S. Cibrao Das Vias-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21144, 32, 'Ponte-Mandras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21145, 32, 'Betar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21146, 32, 'Pazos -San Cristovo de Cea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21147, 32, 'Ariz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21148, 32, 'Casar de Maria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21149, 32, 'Pasadan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21150, 32, 'A Telleira -Taboadela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21151, 32, 'Freixendo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21152, 32, 'Outeiro -Toen-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21153, 32, 'Celeiron -Toen-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21154, 32, 'Casal de Bispo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21155, 32, 'Ourille -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21156, 32, 'Umoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21157, 32, 'Castieira -Viana Do Bolo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21158, 32, 'Seoane de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21159, 32, 'Belcrime Pilo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21160, 32, 'A Ria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21161, 32, 'A Seara -Vilar de Barrio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21162, 32, 'Laioso -Vilar de Santos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21163, 32, 'Toxedio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21164, 32, 'As Casas Da Veiga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21165, 32, 'Santa Comba de Baroncelle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21166, 32, 'A Bemposta -Vilardevos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21167, 32, 'Barxela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21168, 32, 'Agro Maior'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21169, 32, 'Nocelo -Baos de Molgas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21170, 32, 'Vilaseco -San Donato-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21171, 32, 'Gueral de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21172, 32, 'Gueral de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21173, 32, 'Barral -Cenlle-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21174, 32, 'O Viso -Gomesende-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21175, 32, 'Parroeira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21176, 32, 'Vigueira de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21177, 32, 'Carballeda -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21178, 32, 'Souto -San Salvador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21179, 32, 'Alongos -San Martio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21180, 32, 'Santa Maria Ponte-Sta.Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21181, 32, 'Albaredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21182, 32, 'Regueiro de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21183, 32, 'Neboeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21184, 32, 'Cacharrequille'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21185, 32, 'O Souto -Allariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21186, 32, 'Pacios -Allariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21187, 32, 'San Mamede -Allariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21188, 32, 'A Pousada -Allariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21189, 32, 'A Acea -Allariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21190, 32, 'Boeixos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21191, 32, 'Belecon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21192, 32, 'Fervenza -Bande-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21193, 32, 'Santa Eufemia -Baos Molgas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21194, 32, 'O Ponton -Barbadas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21195, 32, 'Os Liares -Beariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21196, 32, 'Outeiro -Astureses'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21197, 32, 'Balboa -Boboras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21198, 32, 'O Forriolo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21199, 32, 'O Outeiro -Sorga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21200, 32, 'Santiago -Calvos de Randin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21201, 32, 'As Fermosas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21202, 32, 'O Varon -Seoane de Arcos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21203, 32, 'Varille'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21204, 32, 'A Teixeira -Cartelle-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21205, 32, 'Madarnas -Cartelle-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21206, 32, 'San Martio -Cartelle-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21207, 32, 'Doniz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21208, 32, 'Xinzo de Teixugueiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21209, 32, 'O Peto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21210, 32, 'Noallo de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21211, 32, 'Covelas -Castrelo de Mio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21212, 32, 'Fondo de Vila -Castrelo Mio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21213, 32, 'Seorin -Castrelo de Mio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21214, 32, 'Souto -Macendo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21215, 32, 'Tallon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21216, 32, 'Vilela -Castrelo de Mio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21217, 32, 'Os Espieiros-Castro Caldelas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21218, 32, 'Lugar de Arriba -C. Caldelas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21219, 32, 'Castomas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21220, 32, 'A Ventosa -Castro Caldelas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21221, 32, 'As Lamas -Celanova-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21222, 32, 'O Terrado -Celanova-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21223, 32, 'Amedo -Celanova-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21224, 32, 'Quintairos -Bobadela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21225, 32, 'O Carballo -Celanova-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21226, 32, 'San Martin -Celanova-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21227, 32, 'Carfaxio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21228, 32, 'Gueral -Celanova-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21229, 32, 'Saa -Cenlle-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21230, 32, 'Penas Albas -Coles-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21231, 32, 'Seara Vella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21232, 32, 'Casanova de Melias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21233, 32, 'San Lourenzo -Coles-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21234, 32, 'Cales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21235, 32, 'Vilar Da Barra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21236, 32, 'Leirado -Cortegada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21237, 32, 'Pazo -Cortegada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21238, 32, 'Os Muios -Cortegada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21239, 32, 'Vilaverde -Cortegada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21240, 32, 'Moimenta -Cualedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21241, 32, 'Reloeira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21242, 32, 'Vilar -Entrimo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21243, 32, 'Quinta Do Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21244, 32, 'Queiruganes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21245, 32, 'Seoane de Oleiros -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21246, 32, 'Arnoia Seca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21247, 32, 'Tixosa -Gomesende-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21248, 32, 'A Venda Capela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21249, 32, 'A Lama -O Irixo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21250, 32, 'Soutelio -O Irixo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21251, 32, 'O Barrocal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21252, 32, 'Cebral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21253, 32, 'Sidre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21254, 32, 'Quintero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21255, 32, 'O Outeiro -Readegos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21256, 32, 'Cima de Vila -Xunqueira Ambia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21257, 32, 'Fondo de Vila-Xunqueira Ambia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21258, 32, 'Salgueiros -Xunqueira Ambia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21259, 32, 'Vilario Do Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21260, 32, 'A Brandela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21261, 32, 'O Covelo -Xunqueira de Ambia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21262, 32, 'A Siota'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21263, 32, 'San Roman'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21264, 32, 'Meas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21265, 32, 'Reguengo -Lobios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21266, 32, 'As Lamas -Maceda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21267, 32, 'Cubeiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21268, 32, 'Manzos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21269, 32, 'Campelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21270, 32, 'Fontao -A Merca-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21271, 32, 'Forxas Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21272, 32, 'O Campo -A Merca-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21273, 32, 'Xen -A Merca-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21274, 32, 'Pazos de Olas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21275, 32, 'Nigueiroa -A Merca-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21276, 32, 'Rubillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21277, 32, 'Covas Do Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21278, 32, 'Picos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21279, 32, 'Beiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21280, 32, 'Turei -Ramiras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21281, 32, 'Zain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21282, 32, 'Astres -Vilar de Astres-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21283, 32, 'Ousende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21284, 32, 'Saa -Paderne de Allariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21285, 32, 'Ermide -Paderne de Allariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21286, 32, 'Amean -Padrenda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21287, 32, 'As Lamas -Padrenda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21288, 32, 'Aldea Souto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21289, 32, 'Cela Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21290, 32, 'Nogueira -Padrenda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21291, 32, 'O Couto -Parada de Sil-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21292, 32, 'Purdeus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21293, 32, 'Valdemiotos -Parada de Sil-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21294, 32, 'San Lourenzo -Parada de Sil-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21295, 32, 'Outeiromeao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21296, 32, 'A Recheda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21297, 32, 'Amido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21298, 32, 'A Vila -A Peroxa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21299, 32, 'O Souto -A Peroxa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21300, 32, 'Senra -Pior-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21301, 32, 'Carpaceiras -Pior-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21302, 32, 'Lousado -Pior-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21303, 32, 'O Outeiro -Coiras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21304, 32, 'Mormenta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21305, 32, 'Fontefria -Rairiz de Veiga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21306, 32, 'Curras -Rairiz de Veiga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21307, 32, 'A Costa -Ramiras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21308, 32, 'Marnotos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21309, 32, 'Vilaboa -Rubias-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21310, 32, 'Covelia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21311, 32, 'Sanfitoiro -San Xoan de Rio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21312, 32, 'Pena Do Souto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21313, 32, 'Miros -Rios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21314, 32, 'San Roque -San Amaro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21315, 32, 'O Aciveiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21316, 32, 'Penedo -San Cibrao Das Vias-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21317, 32, 'Mosteiron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21318, 32, 'Faton'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21319, 32, 'Monteagudo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21320, 32, 'Ermida -San Cristovo de Cea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21321, 32, 'Tellado -San Cristovo de Cea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21322, 32, 'Santa Ana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21323, 32, 'A Fontela -Sandias-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21324, 32, 'Meilas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21325, 32, 'A Venda Nova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21326, 32, 'O Outeiro Taboadela Mezquita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21327, 32, 'Pazos -Taboadela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21328, 32, 'Abeledo -Taboadela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21329, 32, 'A Venta Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21330, 32, 'As Quintas -Taboadela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21331, 32, 'San Fiz -Taboadela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21332, 32, 'Xocios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21333, 32, 'Pumar -Taboadela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21334, 32, 'A Petada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21335, 32, 'Santas -Taboadela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21336, 32, 'O Outeiro -Toran-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21337, 32, 'Ribo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21338, 32, 'A Carretera Toen Puga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21339, 32, 'Casas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21340, 32, 'Santabaya -Trasmiras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21341, 32, 'Os Pardieiros -Trasmiras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21342, 32, 'Soutelo -Trasmiras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21343, 32, 'Seixas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21344, 32, 'A Auguela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21345, 32, 'Ledime'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21346, 32, 'Casal de Abade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21347, 32, 'Outeiro -Sanguedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21348, 32, 'Paredes -Verea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21349, 32, 'Seoane de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21350, 32, 'Louzaregos -Santa Maria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21351, 32, 'Mosexos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21352, 32, 'Santa Maria de Froxais'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21353, 32, 'A Penela -Vilamarin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21354, 32, 'O Vilar -Vilamarin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21355, 32, 'A Pena -Vilamarin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21356, 32, 'Pazos de Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21357, 32, 'Portamieiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21358, 32, 'O Vieiro -Vilar de Santos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21359, 32, 'Cabeza de Manzaneda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21360, 32, 'O Rial -Allariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21361, 32, 'Santa Baia -Allariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21362, 32, 'A Enfestela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21363, 32, 'Penama -Allariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21364, 32, 'Queiroas Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21365, 32, 'Requeixo de Queiroas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21366, 32, 'Tosende -Allariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21367, 32, 'Outeiro de Torneiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21368, 32, 'A Portela -Allariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21369, 32, 'Guimaras -Allariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21370, 32, 'A Quinta -Allariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21371, 32, 'Abelenda -Cortegada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21372, 32, 'Batallas -Boboras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21373, 32, 'Borraxas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21374, 32, 'Cibreiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21375, 32, 'Costa -Boboras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21376, 32, 'Distriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21377, 32, 'Eixan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21378, 32, 'A Granxa -Boboras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21379, 32, 'O Vao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21380, 32, 'Barro -O Carballio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21381, 32, 'Batallas -O Carballio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21382, 32, 'Bertamil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21383, 32, 'Bouteiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21384, 32, 'Pontarriza -O Carballio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21385, 32, 'Quintela -O Carballio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21386, 32, 'A Reguenga -O Carballio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21387, 32, 'Varon Pequeo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21388, 32, 'O Coutio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21389, 32, 'Os Fios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21390, 32, 'Vilar -Parada de Sil-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21391, 32, 'As Casarizas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21392, 32, 'As Cerdeiras -A Peroxa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21393, 32, 'Outeiro de Carracedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21394, 32, 'Conchouso -Vilarrubin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21395, 32, 'Poin de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21396, 32, 'Reza -A Peroxa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21397, 32, 'Vispin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21398, 32, 'A Mourisca -Quintela Leirado-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21399, 32, 'Rio de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21400, 32, 'Castrelo -Rairiz de Veiga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21401, 32, 'Xuxa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21402, 32, 'Outeiro -Rairiz de Veiga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21403, 32, 'A Raoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21404, 32, 'San Miguel -Rairiz de Veiga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21405, 32, 'Covelias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21406, 32, 'Maceira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21407, 32, 'Penavegosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21408, 32, 'Maoas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21409, 32, 'Casanova -Salamonde-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21410, 32, 'Castro -San Amaro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21411, 32, 'Piroo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21412, 32, 'Infesta -San Cibrao Das Vias-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21413, 32, 'Santa Marta -San Cibrao Vias-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21414, 32, 'O Barrio -Taboadela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21415, 32, 'Quintela Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21416, 32, 'Quintela Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21417, 32, 'A Veiga -A Teixeira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21418, 32, 'Castieiras -Toen-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21419, 32, 'Fonte-Larelle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21420, 32, 'Larelle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21421, 32, 'Paredes -Toen-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21422, 32, 'Barreiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21423, 32, 'Breixome de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21424, 32, 'Breixome de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21425, 32, 'A Venda -Vilar de Santos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21426, 32, 'O Pousadoiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21427, 32, 'Eiras-Lavandeira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21428, 32, 'A Quinta -Cenlle-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21429, 32, 'Abellas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21430, 32, 'O Folon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21431, 32, 'Fonteblanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21432, 32, 'Reguenga -Gomesende-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21433, 32, 'Vial -Gomesende-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21434, 32, 'Casal -A Merca-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21435, 32, 'Compostela -A Merca-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21436, 32, 'Saceda -Nogueira de Ramuin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21437, 32, 'Val Do Pereiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21438, 32, 'Eiravedra -Paderne de Allariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21439, 32, 'O Moredo -Paderne de Allariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21440, 32, 'Moas -Paderne de Allariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21441, 32, 'A Vacariza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21442, 32, 'Quintela -Castro Caldelas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21443, 32, 'Ruidos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21444, 32, 'Bouzas -Parada de Sil-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21445, 32, 'A Medorra -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21446, 32, 'Madanela -Castro Caldelas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21447, 32, 'Eirexa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21448, 32, 'Xenqueira de Arribia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21449, 32, 'Zainza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21450, 32, 'Arnelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21451, 32, 'As Ventelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21452, 32, 'Graa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21453, 32, 'Casnaloba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21454, 32, 'Pazos -Armental-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21455, 32, 'Torre -Seoane-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21456, 32, 'Penaflor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21457, 32, 'Santo Estevo -Allariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21458, 32, 'Espieiros -San Breixo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21459, 32, 'Cardanachama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21460, 32, 'A Torre -Urros-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21461, 32, 'A Pousa -Allariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21462, 32, 'Delas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21463, 32, 'Zafra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21464, 32, 'A Seara -O Carballio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21465, 32, 'Paradela -O Carballio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21466, 32, 'A Granxa -O Carballio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21467, 32, 'As Forcadas -Bande-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21468, 32, 'A Ponte Liares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21469, 32, 'As Pegas -Sandias-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21470, 32, 'A Cruz -San Amaro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21471, 32, 'Santa Maria de Reza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21472, 32, 'A Espasa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21473, 32, 'O Carballio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21474, 32, 'Bozqueimado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21475, 32, 'Poligono Industrial'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21476, 32, 'Carballeda de Valdeorras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21477, 32, 'Santa Cruz Da Rabeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21478, 32, 'Santa Marta de Noalla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21479, 32, 'Barbadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21480, 32, 'Queizas -San Pedro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21481, 32, 'A Rua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21482, 32, 'Pazos -San Fiz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21483, 32, 'Pazos(Verin)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21484, 32, 'A Bola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21485, 32, 'San Xoan de Rio -San Xoan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21486, 32, 'San Cristovo de Cea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21487, 32, 'A Arnoia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21488, 32, 'Avion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21489, 32, 'Castrelo de Mio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21490, 32, 'Coles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21491, 32, 'Entrimo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21492, 32, 'Lobeira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21493, 32, 'Lobios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21494, 32, 'Monterrei'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21495, 32, 'Muios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21496, 32, 'Nogueira de Ramuin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21497, 32, 'Padrenda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21498, 32, 'Porqueira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21499, 32, 'Pontedeva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21500, 32, 'Punxin'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21501, 32, 'Verea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21502, 32, 'Cortegada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21503, 32, 'Lo\A del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21504, 32, 'O Retiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21505, 32, 'Casmartio -O Pereiro Aguiar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21506, 32, 'O Carballio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21507, 33, 'La Felguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21508, 33, 'Alto Pajares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21509, 33, 'San Juan de la Arena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21510, 33, 'Arriondas -Parres-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21511, 33, 'Aviles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21512, 33, 'Balmori'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21513, 33, 'Ballota -Cudillero-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21514, 33, 'Beleo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21515, 33, 'Belmonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21516, 33, 'Borines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21517, 33, 'Soto de Dueas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21518, 33, 'Cabaaquinta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21519, 33, 'Caborana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21520, 33, 'Cadavedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21521, 33, 'Caldas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21522, 33, 'Campomanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21523, 33, 'Cancienes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21524, 33, 'Candas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21525, 33, 'Cangas del Narcea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21526, 33, 'Cangas de Onis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21527, 33, 'Caravia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21528, 33, 'Carcedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21529, 33, 'Caridad La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21530, 33, 'Cartavio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21531, 33, 'Casiellas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21532, 33, 'Castropol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21533, 33, 'Ceceda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21534, 33, 'Boal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21535, 33, 'Colombres -Ribadedeva-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21536, 33, 'Colunga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21537, 33, 'Colloto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21538, 33, 'Cornellana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21539, 33, 'Covadonga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21540, 33, 'Cudillero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21541, 33, 'Entrego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21542, 33, 'Espina La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21543, 33, 'La Felguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21544, 33, 'Figueras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21545, 33, 'Gijon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21546, 33, 'Grado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21547, 33, 'Infiesto -Piloa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21548, 33, 'Lastres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21549, 33, 'Libardon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21550, 33, 'Lieres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21551, 33, 'Luanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21552, 33, 'Luarca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21553, 33, 'Lugones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21554, 33, 'Llanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21555, 33, 'Mieres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21556, 33, 'Miranda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21557, 33, 'Moreda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21558, 33, 'Muros de Nalon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21559, 33, 'El Musel-Arnao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21560, 33, 'Nava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21561, 33, 'Navia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21562, 33, 'Norea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21563, 33, 'Novellana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21564, 33, 'Nueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21565, 33, 'Olloniego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21566, 33, 'Ortiguera -Coaa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21567, 33, 'Oviedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21568, 33, 'Pajares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21569, 33, 'Pendueles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21570, 33, 'Piedras Blancas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21571, 33, 'Pola de Allande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21572, 33, 'Pola de Laviana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21573, 33, 'Pola de Lena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21574, 33, 'Pola de Siero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21575, 33, 'Posada -Llanes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21576, 33, 'Posada -Llanera-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21577, 33, 'Pravia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21578, 33, 'Puente Fierros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21579, 33, 'Puerto de Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21580, 33, 'Ribadesella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21581, 33, 'Salas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21582, 33, 'Salinas -Castrillon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21583, 33, 'Naves -Llanes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21584, 33, 'Sames'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21585, 33, 'San Esteban -Pravia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21586, 33, 'San Juan de Nieva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21587, 33, 'Santullano -Mieres-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21588, 33, 'Sevares -Piloa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21589, 33, 'Soto del Barco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21590, 33, 'Soto de Luia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21591, 33, 'Sotrondio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21592, 33, 'Tapia de Casariego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21593, 33, 'Tineo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21594, 33, 'Trevias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21595, 33, 'Trubia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21596, 33, 'Tudela Veguin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21597, 33, 'Vegadeo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21598, 33, 'Vidiago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21599, 33, 'Villabona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21600, 33, 'Villahormes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21601, 33, 'Las Vegas-Corvera de Asturias-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21602, 33, 'Villamayor -Piloa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21603, 33, 'Villapedre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21604, 33, 'Villaviciosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21605, 33, 'Santa Eulalia -Cabranes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21606, 33, 'Turon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21607, 33, 'San Miguel -Tazones-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21608, 33, 'Nozaleda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21609, 33, 'Vega -Sariego-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21610, 33, 'Ante la Iglesia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21611, 33, 'La Calle -Villaviciosa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21612, 33, 'Panes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21613, 33, 'Barcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21614, 33, 'Anleo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21615, 33, 'Celorio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21616, 33, 'Ibias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21617, 33, 'Grullos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21618, 33, 'San Roman -Candamo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21619, 33, 'Mortera la Candamo Aces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21620, 33, 'Pieres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21621, 33, 'Navelgas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21622, 33, 'Porrua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21623, 33, 'Coaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21624, 33, 'Santianes -Pravia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21625, 33, 'Berron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21626, 33, 'Barzana -Quiros-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21627, 33, 'Proaza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21628, 33, 'San Martin -Teverga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21629, 33, 'Villanueva -Santo Adriano-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21630, 33, 'Soto de Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21631, 33, 'Santa Eulalia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21632, 33, 'Vega -Riosa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21633, 33, 'Fenigonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21634, 33, 'Mallecina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21635, 33, 'Malleza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21636, 33, 'Priero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21637, 33, 'Llaranes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21638, 33, 'San Julian -Bimenes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21639, 33, 'Grandas de Salime'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21640, 33, 'Illano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21641, 33, 'Pesoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21642, 33, 'Pimiango'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21643, 33, 'Carbayin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21644, 33, 'Collanzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21645, 33, 'Hueria -Cocain-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21646, 33, 'Cuello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21647, 33, 'Perabeles de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21648, 33, 'Santullano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21649, 33, 'Rioturbio Vegadotos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21650, 33, 'Figaredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21651, 33, 'Ablaa de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21652, 33, 'Caliero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21653, 33, 'Cordovero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21654, 33, 'Escoredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21655, 33, 'Folgueras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21656, 33, 'Inclan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21657, 33, 'Loro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21658, 33, 'Palacion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21659, 33, 'Puentevega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21660, 33, 'Selgas de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21661, 33, 'Villafria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21662, 33, 'Villarigan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21663, 33, 'Garganta -Langreo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21664, 33, 'Tuilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21665, 33, 'Lugar de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21666, 33, 'Benia de Onis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21667, 33, 'Las Arenas -Cabrales-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21668, 33, 'Carrea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21669, 33, 'Ortiguero -Cabrales-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21670, 33, 'Poo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21671, 33, 'La Robellada -Onis-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21672, 33, 'Villar -Onis-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21673, 33, 'Corao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21674, 33, 'Intriago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21675, 33, 'Mestas de Con'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21676, 33, 'Soto de Cangas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21677, 33, 'San Claudio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21678, 33, 'Campo de Caso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21679, 33, 'Coballes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21680, 33, 'Rioseco -Sobrescobio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21681, 33, 'Tanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21682, 33, 'Lecees'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21683, 33, 'Condado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21684, 33, 'El Censo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21685, 33, 'Santiago del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21686, 33, 'Miagon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21687, 33, 'Serandinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21688, 33, 'Alles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21689, 33, 'Santa Eulalia Oscos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21690, 33, 'San Martin de Oscos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21691, 33, 'Villanueva de Oscos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21692, 33, 'Ferrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21693, 33, 'Vioo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21694, 33, 'Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21695, 33, 'Barredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21696, 33, 'Campo Iglesia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21697, 33, 'Nueva La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21698, 33, 'Puron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21699, 33, 'San Antolin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21700, 33, 'Pumar El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21701, 33, 'Degaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21702, 33, 'Llano -San Tirso de Abres-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21703, 33, 'Bustiello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21704, 33, 'Taramundi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21705, 33, 'Cabriton'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21706, 33, 'Manzanedo -Villaviciosa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21707, 33, 'Villayon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21708, 33, 'Ables'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21709, 33, 'Vega -Illas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21710, 33, 'Villa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21711, 33, 'Torre La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21712, 33, 'Soto de Agues'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21713, 33, 'Villamorey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21714, 33, 'Granda -Cangas de Onis-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21715, 33, 'Sellao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21716, 33, 'Triongo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21717, 33, 'Aroles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21718, 33, 'Arroyo Gijon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21719, 33, 'Bernueces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21720, 33, 'Huerces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21721, 33, 'Caldones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21722, 33, 'Carbainos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21723, 33, 'Carcedo Gijon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21724, 33, 'Fano -Gijon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21725, 33, 'Figar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21726, 33, 'Fontaciera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21727, 33, 'Cabuees'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21728, 33, 'Granda de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21729, 33, 'Mareo de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21730, 33, 'Monteana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21731, 33, 'Pavierna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21732, 33, 'La Pedrera -Gijon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21733, 33, 'Rebollada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21734, 33, 'San Andres -Gijon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21735, 33, 'San Antonio -Gijon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21736, 33, 'Santa Eulalia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21737, 33, 'Cenero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21738, 33, 'Sotiello Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21739, 33, 'Tueya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21740, 33, 'Vega -Serin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21741, 33, 'Cornollo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21742, 33, 'Corias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21743, 33, 'Quinzanas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21744, 33, 'Repolles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21745, 33, 'Caleao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21746, 33, 'Pintueles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21747, 33, 'Cadanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21748, 33, 'Duesos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21749, 33, 'Campiellos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21750, 33, 'Pola de Somiedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21751, 33, 'Venta Las Ranas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21752, 33, 'Arbon -Villayon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21753, 33, 'El Lado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21754, 33, 'Puertas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21755, 33, 'Boquerizo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21756, 33, 'Noriega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21757, 33, 'Villanueva -Ribadedeva-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21758, 33, 'Santa Cruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21759, 33, 'Villabre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21760, 33, 'Leorio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21761, 33, 'La Campana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21762, 33, 'Tresgrandas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21763, 33, 'Abiegos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21764, 33, 'Boinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21765, 33, 'Coruja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21766, 33, 'Admiracion de la Iglesia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21767, 33, 'Alto la Iglesia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21768, 33, 'Empalme'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21769, 33, 'La Ferrian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21770, 33, 'Fondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21771, 33, 'Fundial'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21772, 33, 'Huerno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21773, 33, 'Regueral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21774, 33, 'Santa Eulalia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21775, 33, 'Barres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21776, 33, 'Vidosa San Ignacio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21777, 33, 'Iboya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21778, 33, 'Nieva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21779, 33, 'Perdones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21780, 33, 'Romadonga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21781, 33, 'Susacasa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21782, 33, 'Tua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21783, 33, 'San Pedro Villoria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21784, 33, 'Tolivia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21785, 33, 'Villoria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21786, 33, 'Restiello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21787, 33, 'San Pedro -Grado-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21788, 33, 'Santianes Molene'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21789, 33, 'Las Villas -Grado-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21790, 33, 'Ladine'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21791, 33, 'Doiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21792, 33, 'Marzaniella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21793, 33, 'Argaoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21794, 33, 'Braaverniz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21795, 33, 'Casamori'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21796, 33, 'Collado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21797, 33, 'Fonfria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21798, 33, 'Manzanedo -Villaviciosa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21799, 33, 'Bezanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21800, 33, 'Foz La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21801, 33, 'Pendones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21802, 33, 'Soto -Caso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21803, 33, 'Tarna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21804, 33, 'Bueres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21805, 33, 'Govezanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21806, 33, 'Nieves -Caso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21807, 33, 'Orle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21808, 33, 'Carballo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21809, 33, 'Limes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21810, 33, 'Berducedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21811, 33, 'Villa La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21812, 33, 'Barcena del Monasterio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21813, 33, 'Borres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21814, 33, 'La Cabuerna -Tineo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21815, 33, 'Campiello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21816, 33, 'Fastias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21817, 33, 'Gera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21818, 33, 'Mortera La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21819, 33, 'Obona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21820, 33, 'Tablado -Tineo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21821, 33, 'Villatresmil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21822, 33, 'Fenosa La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21823, 33, 'Casas de Alcanar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21824, 33, 'San Cristobal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21825, 33, 'Tabla La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21826, 33, 'Villeirin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21827, 33, 'Aguera de Castaedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21828, 33, 'Cibuyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21829, 33, 'Gedrez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21830, 33, 'Monasterio de Hermo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21831, 33, 'Vega de Rengos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21832, 33, 'Venta Nueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21833, 33, 'El Cuadro -Castrillon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21834, 33, 'Moire'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21835, 33, 'Arcallana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21836, 33, 'La Castaal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21837, 33, 'Mones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21838, 33, 'Ardisana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21839, 33, 'Los Callejos -Llanes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21840, 33, 'Cortines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21841, 33, 'Malateria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21842, 33, 'Mere'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21843, 33, 'Rales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21844, 33, 'Riocaliente -Llanes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21845, 33, 'Santa Maria del Mar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21846, 33, 'Roda La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21847, 33, 'Robledo -Anayo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21848, 33, 'Felechosas -S.M. Rey Aurelio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21849, 33, 'Padrun -Mieres-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21850, 33, 'Villallana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21851, 33, 'Melendreros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21852, 33, 'Pedrero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21853, 33, 'Piera -Bimenes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21854, 33, 'Rubiera La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21855, 33, 'Santa Gadea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21856, 33, 'Taballes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21857, 33, 'Texuca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21858, 33, 'Veneros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21859, 33, 'Frecha La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21860, 33, 'Herias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21861, 33, 'Cerredo -Degaa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21862, 33, 'Rebollar -Degaa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21863, 33, 'Ceal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21864, 33, 'Otero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21865, 33, 'Santa Eulalia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21866, 33, 'Armada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21867, 33, 'Capareda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21868, 33, 'Carabanzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21869, 33, 'Carraluz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21870, 33, 'Cruz La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21871, 33, 'Espinedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21872, 33, 'Fresnosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21873, 33, 'Piera de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21874, 33, 'Piera -Lena-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21875, 33, 'Pontones Los'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21876, 33, 'Riospaso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21877, 33, 'Sotiello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21878, 33, 'Tablado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21879, 33, 'Telledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21880, 33, 'Tios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21881, 33, 'Tornin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21882, 33, 'Tuiza de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21883, 33, 'Peruyes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21884, 33, 'Tiana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21885, 33, 'Vericioso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21886, 33, 'Busloe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21887, 33, 'Campo -Morcin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21888, 33, 'Campo Iglesia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21889, 33, 'Castandiello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21890, 33, 'Fresnedo -Teverga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21891, 33, 'Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21892, 33, 'San Salvador'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21893, 33, 'Paeda-Nueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21894, 33, 'Belerda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21895, 33, 'Colladas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21896, 33, 'Cuestespines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21897, 33, 'Escobal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21898, 33, 'Baia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21899, 33, 'Urbies Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21900, 33, 'Urbies Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21901, 33, 'Villandio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21902, 33, 'Campiello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21903, 33, 'Taja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21904, 33, 'Urria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21905, 33, 'Jomezana de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21906, 33, 'Jomezana de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21907, 33, 'Fontoria -Belmonte de Miranda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21908, 33, 'San Martin de Lodon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21909, 33, 'Selviella-Belmonte de Miranda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21910, 33, 'Las Segadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21911, 33, 'Tudela de Agueria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21912, 33, 'Urbies'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21913, 33, 'Deva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21914, 33, 'El Bustio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21915, 33, 'Valdepares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21916, 33, 'El Franco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21917, 33, 'Castro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21918, 33, 'La Riera -Somiedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21919, 33, 'Quiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21920, 33, 'Andrin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21921, 33, 'Lavandera -Gijon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21922, 33, 'Ruedes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21923, 33, 'Antromero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21924, 33, 'Godina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21925, 33, 'Riberas -Soto del Barco-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21926, 33, 'Villamejan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21927, 33, 'Puerto -Oviedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21928, 33, 'Ferrero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21929, 33, 'Viodo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21930, 33, 'Verdicio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21931, 33, 'Godos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21932, 33, 'Niao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21933, 33, 'Llandellena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21934, 33, 'San Roman'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21935, 33, 'Collia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21936, 33, 'Sandiche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21937, 33, 'Ozanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21938, 33, 'Pulide -Castrillon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21939, 33, 'Bustiello Mieres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21940, 33, 'Llanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21941, 33, 'Pino El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21942, 33, 'Pola del Pino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21943, 33, 'Traspando'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21944, 33, 'Artedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21945, 33, 'Casomera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21946, 33, 'Felechosa -Aller-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21947, 33, 'Llamas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21948, 33, 'Murias -Aller-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21949, 33, 'Rellayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21950, 33, 'Santibaez de Murias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21951, 33, 'Trelles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21952, 33, 'Villacondide'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21953, 33, 'Vivedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21954, 33, 'Santa Eulalia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21955, 33, 'Valdemora -Candamo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21956, 33, 'San Justo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21957, 33, 'Viego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21958, 33, 'Siones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21959, 33, 'Narganes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21960, 33, 'Cenera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21961, 33, 'Buelles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21962, 33, 'Gallegos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21963, 33, 'Faidiello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21964, 33, 'Fresnedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21965, 33, 'Oles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21966, 33, 'Fenolleda -Candamo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21967, 33, 'Caleyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21968, 33, 'Perlavia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21969, 33, 'Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21970, 33, 'Viso El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21971, 33, 'Bello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21972, 33, 'Pelugano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21973, 33, 'Hueria de Urbies'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21974, 33, 'Braillin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21975, 33, 'La Duerna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21976, 33, 'Otero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21977, 33, 'La Riera -Cangas de Onis-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21978, 33, 'Villar de Gallegos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21979, 33, 'Arenas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21980, 33, 'Beloncio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21981, 33, 'Loredo -Mieres-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21982, 33, 'Avin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21983, 33, 'Ayones -Valdes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21984, 33, 'Taranes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21985, 33, 'Santa Eulalia -Morcin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21986, 33, 'Cabos -Pravia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21987, 33, 'Faces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21988, 33, 'Ferreros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21989, 33, 'Enfistiella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21990, 33, 'Llamero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21991, 33, 'Mortera la Candamo San Tirso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21992, 33, 'Rozada de Bazuelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21993, 33, 'Villanueva Llamero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21994, 33, 'Villanueva Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21995, 33, 'Levinco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21996, 33, 'Berbes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21997, 33, 'El Carmen -Langreo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21998, 33, 'Cuerres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (21999, 33, 'Miyares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22000, 33, 'San Roman'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22001, 33, 'Santianes -Ribadesella-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22002, 33, 'Valle El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22003, 33, 'Aguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22004, 33, 'Cruces -San Esteban-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22005, 33, 'Bones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22006, 33, 'Borbolla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22007, 33, 'Corollos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22008, 33, 'Meras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22009, 33, 'Paredes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22010, 33, 'Santa Eulalia -Llanes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22011, 33, 'Sequeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22012, 33, 'Tablizo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22013, 33, 'Vega -Ribadesella-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22014, 33, 'Buelna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22015, 33, 'Cueto El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22016, 33, 'La Granda -Gozon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22017, 33, 'La Granda Carreo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22018, 33, 'Navalon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22019, 33, 'La Piera -Gozon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22020, 33, 'Capellania'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22021, 33, 'Cazamular'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22022, 33, 'Cimadevilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22023, 33, 'Medio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22024, 33, 'Los Pisones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22025, 33, 'Santa Ana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22026, 33, 'Pueblo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22027, 33, 'Sobrefoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22028, 33, 'Laneo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22029, 33, 'Llonin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22030, 33, 'Mier'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22031, 33, 'Trescares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22032, 33, 'Bada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22033, 33, 'Caranga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22034, 33, 'Castro -Grandas de Salime-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22035, 33, 'Cedemonio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22036, 33, 'San Juan de Parres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22037, 33, 'La Regla de Perandones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22038, 33, 'Sograndio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22039, 33, 'Vallobil -Parres-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22040, 33, 'Rozadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22041, 33, 'Vega de Ouria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22042, 33, 'Bullaso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22043, 33, 'El Gumio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22044, 33, 'Herias -Illano-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22045, 33, 'Mortera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22046, 33, 'Muas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22047, 33, 'Riocastiello -Tineo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22048, 33, 'Venta la Esperanza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22049, 33, 'Carrio -Villayon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22050, 33, 'Ferreirela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22051, 33, 'Nonide'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22052, 33, 'Ponticiella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22053, 33, 'Trabada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22054, 33, 'Valdedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22055, 33, 'Valle -Villayon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22056, 33, 'Villamiana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22057, 33, 'Cerezal El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22058, 33, 'Sorrodiles de Cibea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22059, 33, 'La Arquera -Salas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22060, 33, 'Escobio El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22061, 33, 'Celles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22062, 33, 'Tresali'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22063, 33, 'Valle -Piloa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22064, 33, 'El Cabanin -Santa Rosa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22065, 33, 'Ferroes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22066, 33, 'Garganta La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22067, 33, 'Lavares -Llanera-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22068, 33, 'Salgueiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22069, 33, 'Congostinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22070, 33, 'Loriana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22071, 33, 'San Juan -El Franco-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22072, 33, 'Lavio -Salas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22073, 33, 'Pedrosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22074, 33, 'Raeces -Las Regueras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22075, 33, 'Vega del Ciego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22076, 33, 'Conforcos -Aller-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22077, 33, 'Pesquerin -Piloa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22078, 33, 'Toriello -Ribadesella-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22079, 33, 'Arancedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22080, 33, 'La Braa -El Franco-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22081, 33, 'Lebredo -El Franco-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22082, 33, 'Los Bustios -Aller-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22083, 33, 'Llanos de Someron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22084, 33, 'Villa -Cangas de Onis-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22085, 33, 'Zanzabornin -Carreo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22086, 33, 'Castaera -Villayon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22087, 33, 'Oneta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22088, 33, 'Piera -Cudillero-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22089, 33, 'Silvamayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22090, 33, 'La Vara -Bimenes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22091, 33, 'Castiello Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22092, 33, 'Grases de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22093, 33, 'Piedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22094, 33, 'Serandi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22095, 33, 'Alvare -Grado-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22096, 33, 'Raeces -Grado-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22097, 33, 'Santa Eufemia -Salas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22098, 33, 'Suarias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22099, 33, 'Acebal -Laviana-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22100, 33, 'Alevia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22101, 33, 'Artosa -Valdes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22102, 33, 'Buspriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22103, 33, 'Carbajal -Laviana-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22104, 33, 'Felguerina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22105, 33, 'Gestoso -San Jose-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22106, 33, 'Javita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22107, 33, 'Llamo -Riosa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22108, 33, 'Monticelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22109, 33, 'Pelorde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22110, 33, 'Pescal -Cangas del Narcea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22111, 33, 'Porzun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22112, 33, 'Rengos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22113, 33, 'Raicedo -Colunga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22114, 33, 'La Ronda -Coaa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22115, 33, 'Tebongo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22116, 33, 'Vendilles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22117, 33, 'Yernes Y Tameza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22118, 33, 'Silvallana -Castropol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22119, 33, 'Sirviella -Onis-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22120, 33, 'Moanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22121, 33, 'Cuaba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22122, 33, 'Fresnedo Quiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22123, 33, 'Mazuco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22124, 33, 'Inguanzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22125, 33, 'Molina La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22126, 33, 'Villar de Cienfuegos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22127, 33, 'Bermiego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22128, 33, 'Fondos de Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22129, 33, 'Pernus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22130, 33, 'Prado -Teverga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22131, 33, 'Puente de Seaza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22132, 33, 'Serantes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22133, 33, 'Teijeira -San Martin de Oscos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22134, 33, 'Vigaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22135, 33, 'Miudes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22136, 33, 'Latores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22137, 33, 'Villagime'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22138, 33, 'Casares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22139, 33, 'Aguera del Coto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22140, 33, 'Cecos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22141, 33, 'Corbero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22142, 33, 'Ferreria La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22143, 33, 'Laron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22144, 33, 'Mestas Las Cangas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22145, 33, 'Pradias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22146, 33, 'Villanueva -Teverga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22147, 33, 'Villarmental'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22148, 33, 'Vis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22149, 33, 'Playa Aguilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22150, 33, 'Linares -Allande-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22151, 33, 'San Martin del Valledor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22152, 33, 'Parajas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22153, 33, 'Villalain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22154, 33, 'Bustantigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22155, 33, 'Rebollo El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22156, 33, 'Bendon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22157, 33, 'Santa Coloma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22158, 33, 'La Roza -Allande-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22159, 33, 'Lago -Allande-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22160, 33, 'Valverde Allande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22161, 33, 'San Salvador del Valledor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22162, 33, 'Villadecabo -Allande-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22163, 33, 'Iboyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22164, 33, 'Tremado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22165, 33, 'Prada -Allande-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22166, 33, 'San Emiliano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22167, 33, 'Salcedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22168, 33, 'Villagrufe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22169, 33, 'Otero -Aller-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22170, 33, 'Amieva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22171, 33, 'Begega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22172, 33, 'Ciguedres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22173, 33, 'San Bartolome'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22174, 33, 'Villaverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22175, 33, 'Abedul'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22176, 33, 'San Martin de Ondes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22177, 33, 'San Esteban'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22178, 33, 'Montovo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22179, 33, 'Villar de San Pedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22180, 33, 'Braavara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22181, 33, 'Camarmea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22182, 33, 'Tielve'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22183, 33, 'Bulnes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22184, 33, 'Sotres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22185, 33, 'Fresnedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22186, 33, 'Madiedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22187, 33, 'Bohiles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22188, 33, 'Llamas del Mouro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22189, 33, 'Onon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22190, 33, 'Mieldes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22191, 33, 'Villalar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22192, 33, 'Puelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22193, 33, 'Vallado -Cangas del Narcea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22194, 33, 'Besullo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22195, 33, 'Porley'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22196, 33, 'Ambres -Cangas del Narcea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22197, 33, 'Fuentes de Las Montaas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22198, 33, 'Puenticiella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22199, 33, 'Linares del Acebo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22200, 33, 'Cerezaliz -Cangas del Narcea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22201, 33, 'Vega del Tallo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22202, 33, 'Regla de Naviego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22203, 33, 'Villacibran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22204, 33, 'Otero -Cangas del Narcea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22205, 33, 'Genestoso -Cangas del Narcea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22206, 33, 'Gillon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22207, 33, 'Riomolin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22208, 33, 'San Cristobal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22209, 33, 'Murias -Castropol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22210, 33, 'Candaosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22211, 33, 'Balmonte -Castropol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22212, 33, 'Monteavaro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22213, 33, 'Arco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22214, 33, 'Campaones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22215, 33, 'Rondiella La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22216, 33, 'Resiellas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22217, 33, 'Tablado -Degaa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22218, 33, 'Villalmarzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22219, 33, 'Rioseco -Baldornon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22220, 33, 'Rioseco -Caldones-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22221, 33, 'Loredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22222, 33, 'Rubiano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22223, 33, 'Vitos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22224, 33, 'La Mesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22225, 33, 'Llandepereira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22226, 33, 'Peafuente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22227, 33, 'Pelou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22228, 33, 'Riodeporcos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22229, 33, 'Marentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22230, 33, 'Seroiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22231, 33, 'Valdeferreiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22232, 33, 'Sena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22233, 33, 'Valdebueyes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22234, 33, 'Santiso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22235, 33, 'Boiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22236, 33, 'San Clemente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22237, 33, 'Sierra La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22238, 33, 'Torga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22239, 33, 'Omente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22240, 33, 'Bao -Ibias-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22241, 33, 'Luia -Ibias-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22242, 33, 'Fondodevilla -Ibias-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22243, 33, 'Villarmeirin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22244, 33, 'Morentan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22245, 33, 'Navedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22246, 33, 'Pato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22247, 33, 'Tamagordas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22248, 33, 'Cabaas Las'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22249, 33, 'Cortina La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22250, 33, 'El Cabo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22251, 33, 'La Venta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22252, 33, 'Santirso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22253, 33, 'Quintanas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22254, 33, 'Fontoria -Valdes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22255, 33, 'Argumoso -Valdes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22256, 33, 'Carboniella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22257, 33, 'Leiriella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22258, 33, 'Gallinero Barcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22259, 33, 'Faedal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22260, 33, 'Belen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22261, 33, 'Pena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22262, 33, 'Bustiello de Paredes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22263, 33, 'Bustiello de Ayones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22264, 33, 'Castaedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22265, 33, 'Murias Las'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22266, 33, 'Ferrera Gabitos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22267, 33, 'Villanueva -Llanes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22268, 33, 'Riensena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22269, 33, 'Paxio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22270, 33, 'Depata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22271, 33, 'Villaestremeri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22272, 33, 'Cardeo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22273, 33, 'Verdera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22274, 33, 'La Cueva Baja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22275, 33, 'Busmargali'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22276, 33, 'Braes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22277, 33, 'Gamonedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22278, 33, 'Cofio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22279, 33, 'Llerandi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22280, 33, 'Tospe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22281, 33, 'Rozagas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22282, 33, 'Ruenes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22283, 33, 'Oceo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22284, 33, 'Braavieja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22285, 33, 'Cobayas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22286, 33, 'Robledo -Cereceda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22287, 33, 'La Marea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22288, 33, 'Cuerrias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22289, 33, 'Tejedal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22290, 33, 'Cazo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22291, 33, 'Carangas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22292, 33, 'Casielles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22293, 33, 'Sandamias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22294, 33, 'Llanuces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22295, 33, 'Ricabo -Quiros-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22296, 33, 'Cortes -Quiros-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22297, 33, 'Pedroveya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22298, 33, 'Granda -Las Regueras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22299, 33, 'Puerma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22300, 33, 'Biedes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22301, 33, 'Alea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22302, 33, 'Calabrez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22303, 33, 'Palomar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22304, 33, 'Vara -Riosa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22305, 33, 'Viescas -Salas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22306, 33, 'Cermoo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22307, 33, 'Soto de Los Infantes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22308, 33, 'Idarga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22309, 33, 'Piorno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22310, 33, 'Labiaron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22311, 33, 'Pousadoiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22312, 33, 'La Trapa-Santa Eulalia Oscos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22313, 33, 'Lourido -San Tirso de Abres-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22314, 33, 'Lavares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22315, 33, 'Vare'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22316, 33, 'Valcarcel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22317, 33, 'Robledo -Somiedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22318, 33, 'Orderias Las'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22319, 33, 'Piguea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22320, 33, 'Cores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22321, 33, 'Villamor -Somiedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22322, 33, 'Villar de Vildas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22323, 33, 'Perlunes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22324, 33, 'Veigas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22325, 33, 'Saliencia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22326, 33, 'Valle de Lago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22327, 33, 'El Puerto -Somiedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22328, 33, 'Caunedo -Somiedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22329, 33, 'Acevedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22330, 33, 'Veguia La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22331, 33, 'Arredondas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22332, 33, 'Ouria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22333, 33, 'Bres -Taramundi-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22334, 33, 'Navallo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22335, 33, 'Tueres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22336, 33, 'Nieres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22337, 33, 'Bebares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22338, 33, 'Puentecastro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22339, 33, 'Genestaza -Tineo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22340, 33, 'Monterizo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22341, 33, 'Rellanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22342, 33, 'Genestosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22343, 33, 'Cezures'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22344, 33, 'La Cebedal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22345, 33, 'Collada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22346, 33, 'Folguerua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22347, 33, 'Pedregal El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22348, 33, 'Recorba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22349, 33, 'El Baradal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22350, 33, 'Porciles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22351, 33, 'Sobrado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22352, 33, 'Sorriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22353, 33, 'Sangoedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22354, 33, 'San Felix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22355, 33, 'Arganza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22356, 33, 'Calleras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22357, 33, 'Oteda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22358, 33, 'Martul'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22359, 33, 'Luaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22360, 33, 'Santa Mera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22361, 33, 'San Justo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22362, 33, 'Busto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22363, 33, 'Parlero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22364, 33, 'Herias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22365, 33, 'Couz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22366, 33, 'Barandon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22367, 33, 'Almurfe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22368, 33, 'Combo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22369, 33, 'Moal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22370, 33, 'Monasterio del Coto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22371, 33, 'Santullano -Somiedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22372, 33, 'Uria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22373, 33, 'Vega de Horreo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22374, 33, 'Villamayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22375, 33, 'Cua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22376, 33, 'Linares -Lena-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22377, 33, 'Pumedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22378, 33, 'Mohias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22379, 33, 'Faes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22380, 33, 'Los Campos -Corvera-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22381, 33, 'Seguenco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22382, 33, 'Montefurado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22383, 33, 'Puerto de Leitariegos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22384, 33, 'Santianes de Ola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22385, 33, 'Llenin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22386, 33, 'Gamonedo -Cangas de Onis-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22387, 33, 'Puerto de Tarna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22388, 33, 'Vibao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22389, 33, 'Santa Ana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22390, 33, 'Insierto -Valdecuna-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22391, 33, 'El Medio -Grado-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22392, 33, 'San Martin -Los Valles-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22393, 33, 'Condarco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22394, 33, 'La Bouga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22395, 33, 'Vigaa -Belmonte de Miranda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22396, 33, 'Caldevilla Piloa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22397, 33, 'Riosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22398, 33, 'Parres -Llanes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22399, 33, 'Merilles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22400, 33, 'Soto de la Barca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22401, 33, 'San Roque del Acebal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22402, 33, 'Fuente de Louteiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22403, 33, 'La Piera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22404, 33, 'Folgueiras Os Coutos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22405, 33, 'La Roza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22406, 33, 'Herreria de Meredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22407, 33, 'Las Morteras -Somiedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22408, 33, 'Reguero San Roman Candamo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22409, 33, 'El Llano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22410, 33, 'Rio-Aller'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22411, 33, 'Castaera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22412, 33, 'Alvariza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22413, 33, 'Queruas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22414, 33, 'Caces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22415, 33, 'Piera -Oviedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22416, 33, 'Malvedo -Casorvida-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22417, 33, 'Nubledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22418, 33, 'Camina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22419, 33, 'Campos Los'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22420, 33, 'Corias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22421, 33, 'Sierra La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22422, 33, 'Roces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22423, 33, 'Espinedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22424, 33, 'Villademar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22425, 33, 'San Juan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22426, 33, 'Magdalena -Cudillero-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22427, 33, 'Juliana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22428, 33, 'Rotella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22429, 33, 'Santa Marina de Obanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22430, 33, 'San Juan -Castropol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22431, 33, 'San Luis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22432, 33, 'Franca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22433, 33, 'Sales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22434, 33, 'Gobiendes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22435, 33, 'Granda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22436, 33, 'Viella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22437, 33, 'Vallin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22438, 33, 'Folgueras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22439, 33, 'Bobes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22440, 33, 'Meres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22441, 33, 'Bedavo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22442, 33, 'Linares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22443, 33, 'Cantera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22444, 33, 'San Vicente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22445, 33, 'Las Ventas -Proaza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22446, 33, 'Porciles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22447, 33, 'Vistalegre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22448, 33, 'Llantrales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22449, 33, 'San Juan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22450, 33, 'Biedes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22451, 33, 'Lozana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22452, 33, 'Solvay'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22453, 33, 'Villuir'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22454, 33, 'Almua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22455, 33, 'Pruvia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22456, 33, 'Castro El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22457, 33, 'Cayes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22458, 33, 'Naon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22459, 33, 'Fonciello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22460, 33, 'Fresneda La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22461, 33, 'Pedrera La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22462, 33, 'Poo -Llanes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22463, 33, 'Pancar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22464, 33, 'Cue'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22465, 33, 'Portilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22466, 33, 'Oyanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22467, 33, 'Boo de Aller'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22468, 33, 'Sotiello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22469, 33, 'Casanueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22470, 33, 'Castro El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22471, 33, 'Agueria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22472, 33, 'Villanueva -Aller-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22473, 33, 'Valdefarrucos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22474, 33, 'Somado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22475, 33, 'Reborio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22476, 33, 'Pruneda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22477, 33, 'Folgueras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22478, 33, 'Espin El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22479, 33, 'Salcedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22480, 33, 'Villalonga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22481, 33, 'La Mortera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22482, 33, 'Manzaneda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22483, 33, 'Llada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22484, 33, 'Llordal -Castrillon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22485, 33, 'Arnao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22486, 33, 'Chavolas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22487, 33, 'El Castro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22488, 33, 'Barzanas -Castrillon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22489, 33, 'Campiello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22490, 33, 'Las Vallinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22491, 33, 'Villar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22492, 33, 'Vegarrozadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22493, 33, 'San Adriano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22494, 33, 'Barredos Los'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22495, 33, 'Entralgo -Laviana-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22496, 33, 'Celleruelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22497, 33, 'Iguanzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22498, 33, 'Vega Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22499, 33, 'San Feliz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22500, 33, 'La Lavandera'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22501, 33, 'Las Vegas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22502, 33, 'Santa Cruz -Mieres-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22503, 33, 'Vegalafonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22504, 33, 'Cortina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22505, 33, 'Peule'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22506, 33, 'La Moral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22507, 33, 'Santa Marina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22508, 33, 'Sendin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22509, 33, 'Las Mazas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22510, 33, 'La Cruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22511, 33, 'Abantro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22512, 33, 'Villar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22513, 33, 'Rebollar El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22514, 33, 'Careses'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22515, 33, 'La Carrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22516, 33, 'Posada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22517, 33, 'Forfontia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22518, 33, 'Lugarin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22519, 33, 'La Cabaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22520, 33, 'Lavandera -Siero-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22521, 33, 'Rayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22522, 33, 'Cardoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22523, 33, 'Niembro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22524, 33, 'Naves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22525, 33, 'Quintana -Llanes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22526, 33, 'Bricia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22527, 33, 'Lledias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22528, 33, 'Lugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22529, 33, 'San Cucufate de Llanera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22530, 33, 'Portiella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22531, 33, 'Lineres -Llanera-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22532, 33, 'Peaullan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22533, 33, 'Agones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22534, 33, 'Bances'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22535, 33, 'Caedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22536, 33, 'Vigo -Navia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22537, 33, 'Ardines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22538, 33, 'Collera -Ribadesella-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22539, 33, 'Ardesaldo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22540, 33, 'Godan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22541, 33, 'Otero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22542, 33, 'Lamuo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22543, 33, 'Blimea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22544, 33, 'Santa Barbara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22545, 33, 'Corralon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22546, 33, 'San Martin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22547, 33, 'Rey Aurelio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22548, 33, 'San Mames -S.M. Rey Aurelio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22549, 33, 'El Viso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22550, 33, 'Calambre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22551, 33, 'Brieves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22552, 33, 'Nora -Oviedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22553, 33, 'Anieves -Agueria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22554, 33, 'Box'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22555, 33, 'Pianton'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22556, 33, 'Antrialgo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22557, 33, 'Mones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22558, 33, 'Miyares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22559, 33, 'Melarde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22560, 33, 'Cereceda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22561, 33, 'La Goleta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22562, 33, 'Torin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22563, 33, 'Vistalegre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22564, 33, 'Villabazal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22565, 33, 'Canabatan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22566, 33, 'Repedroso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22567, 33, 'Lago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22568, 33, 'Linares -Mieres-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22569, 33, 'Santa Marina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22570, 33, 'San Andres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22571, 33, 'Cabojal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22572, 33, 'San Jose'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22573, 33, 'Santullano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22574, 33, 'Siejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22575, 33, 'Corigos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22576, 33, 'Ara -Riosa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22577, 33, 'Nijeres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22578, 33, 'Suares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22579, 33, 'Martimporra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22580, 33, 'Tuenes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22581, 33, 'Coto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22582, 33, 'Arenas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22583, 33, 'Valsera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22584, 33, 'Santo Emiliano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22585, 33, 'Santa Rosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22586, 33, 'Valdecuna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22587, 33, 'Bimeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22588, 33, 'Palacio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22589, 33, 'Sueros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22590, 33, 'La Pea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22591, 33, 'La Rebollada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22592, 33, 'Seana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22593, 33, 'Cabanin -La Pea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22594, 33, 'Rollo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22595, 33, 'Escalada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22596, 33, 'Murias -Mieres-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22597, 33, 'Terronal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22598, 33, 'Sarzol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22599, 33, 'Tejera Hueria Pea Mieres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22600, 33, 'Pelliceira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22601, 33, 'Santa Comba Os Coutos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22602, 33, 'Lijou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22603, 33, 'Carbayal -Illano-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22604, 33, 'Trones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22605, 33, 'Nieres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22606, 33, 'Sama de Grado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22607, 33, 'Argame'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22608, 33, 'Valduno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22609, 33, 'Ferreros -Ribera de Arriba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22610, 33, 'Pereda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22611, 33, 'Tellego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22612, 33, 'Barreda -Siero-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22613, 33, 'La Collada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22614, 33, 'Aguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22615, 33, 'Castaedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22616, 33, 'Cuevas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22617, 33, 'Las Estacas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22618, 33, 'Leiguarda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22619, 33, 'Llamoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22620, 33, 'Quintana -Belmonte de Miranda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22621, 33, 'Ambas -Grado-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22622, 33, 'Coalla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22623, 33, 'El Fresno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22624, 33, 'Corvera de Asturias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22625, 33, 'Pereda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22626, 33, 'Rodiles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22627, 33, 'Sorribas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22628, 33, 'Tolinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22629, 33, 'Villamarin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22630, 33, 'Villandas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22631, 33, 'Bandujo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22632, 33, 'Linares -Proaza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22633, 33, 'Proacina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22634, 33, 'Las Agueras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22635, 33, 'Arrojo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22636, 33, 'Casares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22637, 33, 'Cienfuegos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22638, 33, 'Lindes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22639, 33, 'Castaedo del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22640, 33, 'Tuon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22641, 33, 'Aguino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22642, 33, 'Clavillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22643, 33, 'Pigueces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22644, 33, 'Ujo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22645, 33, 'Carrea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22646, 33, 'La Focella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22647, 33, 'Santianes -Teverga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22648, 33, 'Torce'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22649, 33, 'Santa Marina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22650, 33, 'Aramil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22651, 33, 'Arguelles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22652, 33, 'Collado -Siero-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22653, 33, 'Feleches'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22654, 33, 'Vega de Pope'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22655, 33, 'Bonielles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22656, 33, 'Peadrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22657, 33, 'Cocain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22658, 33, 'Corros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22659, 33, 'Entrevias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22660, 33, 'Navarro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22661, 33, 'Villa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22662, 33, 'Murias -Candamo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22663, 33, 'Selgas de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22664, 33, 'Alava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22665, 33, 'El Caleyo -Oviedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22666, 33, 'Millara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22667, 33, 'Santullano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22668, 33, 'Porceyo -Gijon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22669, 33, 'Albuerne'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22670, 33, 'Carrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22671, 33, 'Porceyo -Gijon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22672, 33, 'Ambas -Carreo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22673, 33, 'Escamplero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22674, 33, 'Baugues'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22675, 33, 'Bocines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22676, 33, 'La Corredoria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22677, 33, 'Hevia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22678, 33, 'Pandenes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22679, 33, 'Torazo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22680, 33, 'Ambas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22681, 33, 'Celada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22682, 33, 'Fuentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22683, 33, 'La Magdalena -Villaviciosa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22684, 33, 'Nievares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22685, 33, 'Peon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22686, 33, 'Quintes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22687, 33, 'Quintueles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22688, 33, 'Rales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22689, 33, 'Carceda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22690, 33, 'Fuentes de Corbero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22691, 33, 'Larna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22692, 33, 'Naviego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22693, 33, 'Noceda de Rengos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22694, 33, 'Oballo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22695, 33, 'Piera -Cangas del Narcea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22696, 33, 'Posada de Rengos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22697, 33, 'Tainas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22698, 33, 'Villategil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22699, 33, 'Sisterna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22700, 33, 'Tormaleo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22701, 33, 'San Roman'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22702, 33, 'Arangas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22703, 33, 'Berodia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22704, 33, 'Labra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22705, 33, 'Villanueva -Cangas de Onis-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22706, 33, 'Zardon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22707, 33, 'Castiello -Parres-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22708, 33, 'Fios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22709, 33, 'El Remedio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22710, 33, 'Cuenya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22711, 33, 'Sierra -Nava-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22712, 33, 'Lodea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22713, 33, 'Castrillon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22714, 33, 'La Ronda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22715, 33, 'Gozon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22716, 33, 'Piera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22717, 33, 'Presno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22718, 33, 'Tol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22719, 33, 'Prendones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22720, 33, 'Villarpedre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22721, 33, 'Alienes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22722, 33, 'Santiago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22723, 33, 'Piera -Navia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22724, 33, 'Polavieja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22725, 33, 'Guiar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22726, 33, 'Barro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22727, 33, 'Carriles Los'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22728, 33, 'La Pereda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22729, 33, 'Caraves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22730, 33, 'Merodio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22731, 33, 'Serrapio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22732, 33, 'Cabezon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22733, 33, 'Casorvida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22734, 33, 'Columbiello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22735, 33, 'Felgueras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22736, 33, 'Muon Cimero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22737, 33, 'Parana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22738, 33, 'San Miguel del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22739, 33, 'Zureda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22740, 33, 'Tozo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22741, 33, 'Ferrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22742, 33, 'Lorio -Laviana-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22743, 33, 'Carrandi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22744, 33, 'Lue'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22745, 33, 'La Llera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22746, 33, 'Pivierda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22747, 33, 'Junco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22748, 33, 'Linares -Ribadesella-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22749, 33, 'Bimenes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22750, 33, 'Celon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22751, 33, 'Villavaser'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22752, 33, 'Naraval'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22753, 33, 'Villanueva de Raadoiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22754, 33, 'Pozon -Tineo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22755, 33, 'San Facundo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22756, 33, 'San Fructuoso -Tineo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22757, 33, 'San Martin de Semproniana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22758, 33, 'Santa Eulalia -Tineo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22759, 33, 'Santianes -Tineo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22760, 33, 'Troncedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22761, 33, 'Cotorraso -Lena-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22762, 33, 'Trapa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22763, 33, 'Linares -Caldones-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22764, 33, 'Robledo -Gijon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22765, 33, 'Villanueva -Grado-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22766, 33, 'Molledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22767, 33, 'Tuernes El Pequeo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22768, 33, 'Robledo -Llanera-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22769, 33, 'Rebollada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22770, 33, 'Folgueiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22771, 33, 'Arenas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22772, 33, 'Fuentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22773, 33, 'San Cristobal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22774, 33, 'Las Rozas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22775, 33, 'Barzanallana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22776, 33, 'Premoo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22777, 33, 'Tahoces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22778, 33, 'La Quintana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22779, 33, 'Sanzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22780, 33, 'El Cabo -Carreo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22781, 33, 'Pie de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22782, 33, 'La Piera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22783, 33, 'Juncedo-Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22784, 33, 'Morente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22785, 33, 'El Pando'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22786, 33, 'Terees'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22787, 33, 'Bargaedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22788, 33, 'Silvon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22789, 33, 'Francos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22790, 33, 'Lendiglesia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22791, 33, 'Sampol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22792, 33, 'Sarceda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22793, 33, 'Villanueva -Boal-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22794, 33, 'Canales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22795, 33, 'Arboleya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22796, 33, 'Castiello -Cabranes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22797, 33, 'Cotariella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22798, 33, 'Giranes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22799, 33, 'Cuero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22800, 33, 'Abancea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22801, 33, 'Cobos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22802, 33, 'Linde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22803, 33, 'Llamera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22804, 33, 'Monco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22805, 33, 'Morzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22806, 33, 'Palacio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22807, 33, 'Villar de Adrales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22808, 33, 'La Estrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22809, 33, 'Pejan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22810, 33, 'San Martin de Los Eiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22811, 33, 'Tiendas Las'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22812, 33, 'Trascastro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22813, 33, 'Trasmonte de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22814, 33, 'Villar de Bimeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22815, 33, 'Portiella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22816, 33, 'Biescas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22817, 33, 'Bruelles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22818, 33, 'Cabanal -Cangas del Narcea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22819, 33, 'Castrosin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22820, 33, 'Cerecedo de Besullo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22821, 33, 'Irrondo de Besullo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22822, 33, 'Nando'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22823, 33, 'Otas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22824, 33, 'Robledo de Tainas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22825, 33, 'San Pedro de Coliema'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22826, 33, 'Sillaso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22827, 33, 'Olicio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22828, 33, 'Terano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22829, 33, 'Igena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22830, 33, 'Isongo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22831, 33, 'Pen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22832, 33, 'Rebollada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22833, 33, 'Arganzua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22834, 33, 'Santa Eulaia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22835, 33, 'Pampiedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22836, 33, 'Orilles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22837, 33, 'Carbes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22838, 33, 'Cien'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22839, 33, 'Cirieo -Amieva-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22840, 33, 'Villaverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22841, 33, 'Aguerina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22842, 33, 'Alcedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22843, 33, 'Balbona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22844, 33, 'Castaera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22845, 33, 'Oviana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22846, 33, 'Antoana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22847, 33, 'Cutiellos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22848, 33, 'La Banda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22849, 33, 'Ramera de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22850, 33, 'Brul'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22851, 33, 'Loroe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22852, 33, 'Braaseca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22853, 33, 'Andina -El Franco-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22854, 33, 'Mendones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22855, 33, 'Peadecabras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22856, 33, 'Rebollada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22857, 33, 'Romaelle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22858, 33, 'San Julian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22859, 33, 'Sueiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22860, 33, 'Peaferruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22861, 33, 'Piera -Cenero-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22862, 33, 'Camporriundo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22863, 33, 'Borondes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22864, 33, 'Llamas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22865, 33, 'Moutas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22866, 33, 'Palacio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22867, 33, 'Nores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22868, 33, 'Panicera -Grado-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22869, 33, 'Reconco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22870, 33, 'Somines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22871, 33, 'Fornos Los'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22872, 33, 'Villagarcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22873, 33, 'Folgosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22874, 33, 'Nogueiron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22875, 33, 'Ferreira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22876, 33, 'Bustelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22877, 33, 'Villares de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22878, 33, 'Montaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22879, 33, 'Gio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22880, 33, 'Villar de Bullaso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22881, 33, 'Borias -Laviana-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22882, 33, 'Corian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22883, 33, 'Fechaladrona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22884, 33, 'Merujal -Laviana-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22885, 33, 'Lloro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22886, 33, 'Ordaliego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22887, 33, 'Pomarada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22888, 33, 'El Palacio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22889, 33, 'Retrulles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22890, 33, 'Tuiza de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22891, 33, 'Biescas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22892, 33, 'Menudeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22893, 33, 'Vallin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22894, 33, 'Canedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22895, 33, 'Lendepea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22896, 33, 'Piniello -Valdes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22897, 33, 'Sabugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22898, 33, 'Caroyas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22899, 33, 'Los Pieiros -Valdes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22900, 33, 'Turuelles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22901, 33, 'Busto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22902, 33, 'Ovienes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22903, 33, 'Arees'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22904, 33, 'Barredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22905, 33, 'Carbayal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22906, 33, 'Andrin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22907, 33, 'Galguera -Llanes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22908, 33, 'Belmonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22909, 33, 'Rioseco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22910, 33, 'Debodes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22911, 33, 'Pria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22912, 33, 'Villa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22913, 33, 'Carcarosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22914, 33, 'Villamartin Alto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22915, 33, 'Viobes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22916, 33, 'Vidural'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22917, 33, 'Cacabellos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22918, 33, 'Masenga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22919, 33, 'Omedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22920, 33, 'Pedroso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22921, 33, 'El Llagu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22922, 33, 'Priaes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22923, 33, 'San Andres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22924, 33, 'Fresnidiello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22925, 33, 'Collado Llames'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22926, 33, 'Montealea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22927, 33, 'Torao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22928, 33, 'Vita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22929, 33, 'Bodes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22930, 33, 'Aballe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22931, 33, 'Bores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22932, 33, 'Sardeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22933, 33, 'San Vicente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22934, 33, 'Matosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22935, 33, 'Ambingue'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22936, 33, 'Viboli'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22937, 33, 'San Bartolome'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22938, 33, 'Aciera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22939, 33, 'Tene'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22940, 33, 'Aguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22941, 33, 'Cogollo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22942, 33, 'Premio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22943, 33, 'Quejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22944, 33, 'Abeo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22945, 33, 'Granda -Ribadesella-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22946, 33, 'Nocedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22947, 33, 'Labarejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22948, 33, 'Grandiella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22949, 33, 'Casandresin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22950, 33, 'Faedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22951, 33, 'Ovanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22952, 33, 'Pende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22953, 33, 'Pevidal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22954, 33, 'Socolina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22955, 33, 'Vegacebron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22956, 33, 'El Couz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22957, 33, 'Escobal El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22958, 33, 'Salcido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22959, 33, 'San Andres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22960, 33, 'Antigua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22961, 33, 'Barganiza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22962, 33, 'Huergo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22963, 33, 'Rebollada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22964, 33, 'Santiago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22965, 33, 'Urria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22966, 33, 'Veneros -Soto del Barco-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22967, 33, 'Campos Y Salave'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22968, 33, 'Freije'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22969, 33, 'Torre La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22970, 33, 'Rebollada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22971, 33, 'Barredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22972, 33, 'Bustellan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22973, 33, 'Las Tabiernas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22974, 33, 'Vega Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22975, 33, 'Vivente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22976, 33, 'Posada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22977, 33, 'Bustellon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22978, 33, 'Bustoburniego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22979, 33, 'Coldobrero -Tineo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22980, 33, 'Las Colladas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22981, 33, 'Eiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22982, 33, 'Escarden'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22983, 33, 'El Faedal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22984, 33, 'Folgueras de Cornas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22985, 33, 'Fuentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22986, 33, 'Luciernas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22987, 33, 'Mirallo de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22988, 33, 'Orrea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22989, 33, 'Relloso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22990, 33, 'Sabadel de Troncedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22991, 33, 'Trabazo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22992, 33, 'Valsoredo -Tineo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22993, 33, 'Villacin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22994, 33, 'Villameana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22995, 33, 'Areas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22996, 33, 'Bustelo de Meredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22997, 33, 'Montouto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22998, 33, 'San Miguel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (22999, 33, 'Camoca de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23000, 33, 'Muslera'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23001, 33, 'Buslad'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23002, 33, 'La Busta -Villaviciosa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23003, 33, 'Fabares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23004, 33, 'Liero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23005, 33, 'La Lloraza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23006, 33, 'Santa Eugenia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23007, 33, 'Tuero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23008, 33, 'Pojos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23009, 33, 'Busmente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23010, 33, 'Lendelforno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23011, 33, 'Lendequintana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23012, 33, 'Villartorey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23013, 33, 'Fojo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23014, 33, 'Argaosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23015, 33, 'Sieriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23016, 33, 'Crucero -Tineo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23017, 33, 'El Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23018, 33, 'Monterrey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23019, 33, 'Villares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23020, 33, 'San Pelayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23021, 33, 'Bargana -Laviana-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23022, 33, 'Mestas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23023, 33, 'Remoria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23024, 33, 'Riofabar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23025, 33, 'Collado Escobal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23026, 33, 'Murias -Santa Eulalia Oscos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23027, 33, 'Valle de San Agustin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23028, 33, 'Corondeo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23029, 33, 'Buslavin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23030, 33, 'La Figuerina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23031, 33, 'Taralle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23032, 33, 'Comba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23033, 33, 'Forniellas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23034, 33, 'Fonteta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23035, 33, 'Villar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23036, 33, 'Fresneda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23037, 33, 'Pervis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23038, 33, 'Modreros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23039, 33, 'Vega La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23040, 33, 'Villar de Zuepos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23041, 33, 'Quintanal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23042, 33, 'Dolia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23043, 33, 'Coba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23044, 33, 'Ouria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23045, 33, 'Escobal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23046, 33, 'La Encrucijada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23047, 33, 'Pandiellas -Candamo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23048, 33, 'Parrucas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23049, 33, 'Ovilley'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23050, 33, 'Villar de Lantero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23051, 33, 'Tabladiello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23052, 33, 'Villadestre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23053, 33, 'Becerrales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23054, 33, 'Valleciello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23055, 33, 'Cadrijuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23056, 33, 'Castro de Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23057, 33, 'Ridera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23058, 33, 'Avelleras -Las Montaas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23059, 33, 'Acio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23060, 33, 'La Via'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23061, 33, 'Pladano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23062, 33, 'Pandiello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23063, 33, 'Folgueraju'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23064, 33, 'Siero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23065, 33, 'Vegameoro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23066, 33, 'Parada la Vieja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23067, 33, 'Parada la Nueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23068, 33, 'Tremado del Coto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23069, 33, 'Soto de Cibuyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23070, 33, 'Dagueo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23071, 33, 'Entrevias -Cangas del Narcea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23072, 33, 'Araniego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23073, 33, 'Sierra de Castaedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23074, 33, 'Llanos Los'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23075, 33, 'Regla de Cibea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23076, 33, 'Tablado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23077, 33, 'Riotorno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23078, 33, 'Jalon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23079, 33, 'Otriello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23080, 33, 'Las Defradas de Ambres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23081, 33, 'Llano El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23082, 33, 'Tresano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23083, 33, 'Villaverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23084, 33, 'Prieres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23085, 33, 'La Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23086, 33, 'Bourio -Castropol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23087, 33, 'Santa Colomba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23088, 33, 'Aides'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23089, 33, 'Nadou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23090, 33, 'Beldredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23091, 33, 'Villar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23092, 33, 'La Cruciada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23093, 33, 'Gallinal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23094, 33, 'Sisiello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23095, 33, 'Riera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23096, 33, 'La Cuadra -Gijon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23097, 33, 'Arroyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23098, 33, 'Melendrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23099, 33, 'Monte El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23100, 33, 'San Pelayo Sienra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23101, 33, 'Cima de Grado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23102, 33, 'Murias Las'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23103, 33, 'Villahizoy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23104, 33, 'Las Corujas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23105, 33, 'Robledo -Grado-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23106, 33, 'Noceda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23107, 33, 'Momalo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23108, 33, 'Vio del Pedrouco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23109, 33, 'Pando'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23110, 33, 'Vilarello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23111, 33, 'Villarcebollin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23112, 33, 'Villares de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23113, 33, 'Folgueiras de Boiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23114, 33, 'Muria La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23115, 33, 'Valvaler'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23116, 33, 'Dou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23117, 33, 'Pieira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23118, 33, 'Andeo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23119, 33, 'Castaosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23120, 33, 'Centenales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23121, 33, 'Alguerdo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23122, 33, 'Busante'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23123, 33, 'Fresno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23124, 33, 'Villaoril'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23125, 33, 'Villarin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23126, 33, 'Villardecendias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23127, 33, 'San Esteban'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23128, 33, 'San Esteban'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23129, 33, 'Zorera La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23130, 33, 'La Fresnosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23131, 33, 'Buelles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23132, 33, 'Navedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23133, 33, 'La Cortina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23134, 33, 'Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23135, 33, 'Boronas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23136, 33, 'Fixuecas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23137, 33, 'Foyedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23138, 33, 'Godon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23139, 33, 'Saliente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23140, 33, 'Ablanedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23141, 33, 'Sapinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23142, 33, 'Modreros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23143, 33, 'Busindre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23144, 33, 'Espiniella de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23145, 33, 'Aristebano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23146, 33, 'Lago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23147, 33, 'Tabladiello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23148, 33, 'Freal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23149, 33, 'Somorto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23150, 33, 'Folgueras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23151, 33, 'Pandiello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23152, 33, 'Cavandi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23153, 33, 'Argul'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23154, 33, 'Frecha La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23155, 33, 'Peruyero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23156, 33, 'Moro El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23157, 33, 'Ligueria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23158, 33, 'Rozapanera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23159, 33, 'Pandavenes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23160, 33, 'Cuerrias -Maza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23161, 33, 'Cadenaba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23162, 33, 'Valdidiello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23163, 33, 'Prada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23164, 33, 'Fuejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23165, 33, 'Gallinero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23166, 33, 'Buscabrero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23167, 33, 'Villarmor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23168, 33, 'Las Rubias -Salas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23169, 33, 'Buspol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23170, 33, 'Mouruso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23171, 33, 'Quintanas Las'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23172, 33, 'Folgueras del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23173, 33, 'Couto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23174, 33, 'Parada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23175, 33, 'Fondal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23176, 33, 'Tejedal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23177, 33, 'La Cerezal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23178, 33, 'Fajera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23179, 33, 'Colinas de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23180, 33, 'Ordial'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23181, 33, 'El Peligro -Tineo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23182, 33, 'Ponte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23183, 33, 'Uz La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23184, 33, 'Campo de Sobrado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23185, 33, 'Fontalba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23186, 33, 'Ablaneda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23187, 33, 'Villanueva de Sorriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23188, 33, 'Carriles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23189, 33, 'Torayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23190, 33, 'Espinaredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23191, 33, 'La Azorera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23192, 33, 'Conceyin -Siero-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23193, 33, 'Molejon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23194, 33, 'Espina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23195, 33, 'La Penacoba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23196, 33, 'Regodeseves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23197, 33, 'Santa Marina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23198, 33, 'Villar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23199, 33, 'Castiello -Villaviciosa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23200, 33, 'Piedrafita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23201, 33, 'Loredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23202, 33, 'Bullimeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23203, 33, 'Busmayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23204, 33, 'Loujedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23205, 33, 'Revoqueira -San Martin Oscos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23206, 33, 'San Pelayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23207, 33, 'San Pedro Agueira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23208, 33, 'Villarquille'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23209, 33, 'Teijeira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23210, 33, 'Ventoso -Santa Eulalia Oscos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23211, 33, 'Villamartin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23212, 33, 'Sarceda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23213, 33, 'Solmayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23214, 33, 'Espasande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23215, 33, 'Caballeros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23216, 33, 'La Bustariega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23217, 33, 'Las Vias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23218, 33, 'Villarin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23219, 33, 'Coto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23220, 33, 'La Peral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23221, 33, 'Pineda -Somiedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23222, 33, 'Arenas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23223, 33, 'Matafoyada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23224, 33, 'Penadecabras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23225, 33, 'Abraido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23226, 33, 'Castro El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23227, 33, 'Silvallana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23228, 33, 'Calvin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23229, 33, 'Teijo -Taramundi-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23230, 33, 'Santamarina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23231, 33, 'Turia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23232, 33, 'Vigidel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23233, 33, 'Langreo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23234, 33, 'Vero -San Martin Rey Aurelio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23235, 33, 'Dosango'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23236, 33, 'Tiraa -Laviana-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23237, 33, 'Sienra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23238, 33, 'Fresnedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23239, 33, 'Cuesta de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23240, 33, 'Vega de Cien'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23241, 33, 'Llamigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23242, 33, 'Pesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23243, 33, 'Puertas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23244, 33, 'Cardo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23245, 33, 'La Parte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23246, 33, 'Figaredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23247, 33, 'Telea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23248, 33, 'Santa Marina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23249, 33, 'Longoria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23250, 33, 'Otero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23251, 33, 'Becea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23252, 33, 'Llano de Con'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23253, 33, 'Soto de la Ensertal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23254, 33, 'Narciandi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23255, 33, 'Cao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23256, 33, 'Cardes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23257, 33, 'Olgo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23258, 33, 'Villar de Posada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23259, 33, 'Fondos Villa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23260, 33, 'Trubia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23261, 33, 'Quintana -Gijon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23262, 33, 'Cabaas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23263, 33, 'Llandosu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23264, 33, 'Vega Peridiello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23265, 33, 'Seaza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23266, 33, 'Genra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23267, 33, 'Los Lodos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23268, 33, 'Ovies'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23269, 33, 'Alvare'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23270, 33, 'Buso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23271, 33, 'Cotina -Morcin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23272, 33, 'Fanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23273, 33, 'Villa de Sub'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23274, 33, 'Quintanal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23275, 33, 'Allence'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23276, 33, 'Vegafriosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23277, 33, 'Travesedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23278, 33, 'Recuevo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23279, 33, 'Cuevas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23280, 33, 'Santa Maria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23281, 33, 'Aguera de Carriles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23282, 33, 'Ansaras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23283, 33, 'Barreiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23284, 33, 'Barzana de San Facundo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23285, 33, 'Burgazal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23286, 33, 'Las Cabaas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23287, 33, 'Castaera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23288, 33, 'Cerviago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23289, 33, 'Colinas de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23290, 33, 'El Espin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23291, 33, 'Llaneces de la Barca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23292, 33, 'Magarin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23293, 33, 'Murias -Tineo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23294, 33, 'Pelontre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23295, 33, 'Piedratecha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23296, 33, 'Piera de San Felix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23297, 33, 'Puente de Tua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23298, 33, 'Fresnedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23299, 33, 'Semellon de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23300, 33, 'Mirallo de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23301, 33, 'Samblismo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23302, 33, 'San Esteban de Relamiego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23303, 33, 'La Silva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23304, 33, 'Peueco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23305, 33, 'Ovana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23306, 33, 'La Barrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23307, 33, 'Robriguero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23308, 33, 'Viay'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23309, 33, 'Valdredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23310, 33, 'Camas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23311, 33, 'Villares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23312, 33, 'Castaeras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23313, 33, 'Lloreda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23314, 33, 'Monteril'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23315, 33, 'Caleya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23316, 33, 'El Llanon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23317, 33, 'Los Llanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23318, 33, 'Cimadevilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23319, 33, 'Viescas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23320, 33, 'Villaxermonde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23321, 33, 'Cabanella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23322, 33, 'Beifar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23323, 33, 'Bolgues -Las Regueras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23324, 33, 'La Mortera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23325, 33, 'Arbeyales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23326, 33, 'La Bernadal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23327, 33, 'Bullacente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23328, 33, 'Buspaulin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23329, 33, 'Orderias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23330, 33, 'Paniceros -Tineo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23331, 33, 'Cadamancio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23332, 33, 'Caes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23333, 33, 'Cueli'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23334, 33, 'Mogovio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23335, 33, 'Poreo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23336, 33, 'Villaverde la Marina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23337, 33, 'Castanedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23338, 33, 'Quintana -Pravia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23339, 33, 'Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23340, 33, 'San Miguel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23341, 33, 'Santa Eulalia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23342, 33, 'Castaedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23343, 33, 'Santiago Cerredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23344, 33, 'Pando'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23345, 33, 'La Pedrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23346, 33, 'Quintana -Nava-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23347, 33, 'Aguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23348, 33, 'Fuejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23349, 33, 'Parades'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23350, 33, 'Fresnedal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23351, 33, 'Atalaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23352, 33, 'Villabona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23353, 33, 'San Pedro de Nora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23354, 33, 'Ronderos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23355, 33, 'Toriezo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23356, 33, 'Muriellos Cimero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23357, 33, 'La Puente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23358, 33, 'Gradura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23359, 33, 'Villaluz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23360, 33, 'Villarmou -Tineo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23361, 33, 'Villarpadriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23362, 33, 'La Vinada -Tineo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23363, 33, 'Vega de Mualen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23364, 33, 'Truebano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23365, 33, 'Vallamonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23366, 33, 'Vallinaferrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23367, 33, 'Tamallanes de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23368, 33, 'Valles de Teso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23369, 33, 'Tejero -Sobrado-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23370, 33, 'Berdules'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23371, 33, 'Illaso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23372, 33, 'Sabariz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23373, 33, 'Silvarronda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23374, 33, 'Torce'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23375, 33, 'Fano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23376, 33, 'Solis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23377, 33, 'Molleda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23378, 33, 'Aguda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23379, 33, 'Beloo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23380, 33, 'Bobia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23381, 33, 'Garvelles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23382, 33, 'El Espin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23383, 33, 'Linares -Lavandera-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23384, 33, 'Pedroco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23385, 33, 'Picun -Gijon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23386, 33, 'Reboria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23387, 33, 'Salcedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23388, 33, 'Ore'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23389, 33, 'Pedrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23390, 33, 'Pontigon -Valdes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23391, 33, 'Ranon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23392, 33, 'Rellon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23393, 33, 'Rellon de Meras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23394, 33, 'Remedios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23395, 33, 'San Pelayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23396, 33, 'Villar de Ayones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23397, 33, 'Anduerga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23398, 33, 'Cenizal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23399, 33, 'Fozalguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23400, 33, 'La Granda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23401, 33, 'La Miranda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23402, 33, 'Noval'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23403, 33, 'Piera -Llanera-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23404, 33, 'Santa Rosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23405, 33, 'Tuernes El Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23406, 33, 'Vendon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23407, 33, 'San Cucufate de Llanera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23408, 33, 'Villayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23409, 33, 'El Ablanedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23410, 33, 'El Cogollo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23411, 33, 'Peanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23412, 33, 'El Vallin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23413, 33, 'Las Vegas de San Esteban'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23414, 33, 'Cesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23415, 33, 'El Solano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23416, 33, 'Vega Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23417, 33, 'Bao Y Barayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23418, 33, 'Braa Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23419, 33, 'Casadoiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23420, 33, 'Cortinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23421, 33, 'El Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23422, 33, 'Regla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23423, 33, 'Sante'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23424, 33, 'Teifaros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23425, 33, 'Villaoril'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23426, 33, 'La Barraca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23427, 33, 'Limanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23428, 33, 'Manjoya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23429, 33, 'Lugarin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23430, 33, 'Lugido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23431, 33, 'Bendones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23432, 33, 'Pozoval -Oviedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23433, 33, 'Quintaniella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23434, 33, 'Arobes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23435, 33, 'Cividiello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23436, 33, 'Granda -Parres-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23437, 33, 'Hueges'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23438, 33, 'Lago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23439, 33, 'Prunales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23440, 33, 'Vega de Los Caseros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23441, 33, 'La Barcena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23442, 33, 'Berones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23443, 33, 'Bierces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23444, 33, 'La Infiesta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23445, 33, 'Melendreras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23446, 33, 'Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23447, 33, 'Sieres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23448, 33, 'Travesera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23449, 33, 'Villabajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23450, 33, 'Villarriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23451, 33, 'Viyao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23452, 33, 'La Castaal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23453, 33, 'Fungal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23454, 33, 'Lomparte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23455, 33, 'Perriella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23456, 33, 'Las Pieras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23457, 33, 'Alcedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23458, 33, 'Camango'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23459, 33, 'Meluerda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23460, 33, 'Sardedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23461, 33, 'Villamondrid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23462, 33, 'Soto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23463, 33, 'Tezangos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23464, 33, 'Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23465, 33, 'Ablanedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23466, 33, 'Allence'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23467, 33, 'Barcena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23468, 33, 'El Barrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23469, 33, 'La Borra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23470, 33, 'Braasivil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23471, 33, 'Casazorrina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23472, 33, 'Cueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23473, 33, 'Eiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23474, 33, 'Figares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23475, 33, 'Las Gallinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23476, 33, 'Loris -Salas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23477, 33, 'Quintana -Salas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23478, 33, 'San Marcelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23479, 33, 'Villarraba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23480, 33, 'Rimada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23481, 33, 'Aveno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23482, 33, 'Barbales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23483, 33, 'Buenavista'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23484, 33, 'La Calabaza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23485, 33, 'Corripos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23486, 33, 'Cuadrielles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23487, 33, 'Figarona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23488, 33, 'Fozana de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23489, 33, 'Fozana de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23490, 33, 'Fuentemelga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23491, 33, 'La Granja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23492, 33, 'La Madera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23493, 33, 'Meson la Tabla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23494, 33, 'Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23495, 33, 'Munco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23496, 33, 'Vega de Poja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23497, 33, 'Orviz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23498, 33, 'Valdesoto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23499, 33, 'La Plazuela -Siero-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23500, 33, 'Pueblo'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23501, 33, 'Pumarin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23502, 33, 'Rioseco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23503, 33, 'San Pedro -Siero-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23504, 33, 'Solad'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23505, 33, 'Taraa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23506, 33, 'La Vallina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23507, 33, 'Venta de Soto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23508, 33, 'Villanueva -Siero-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23509, 33, 'La Carretera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23510, 33, 'Castrovaselle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23511, 33, 'Villanueva Collado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23512, 33, 'Hospital'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23513, 33, 'Jaren'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23514, 33, 'Outeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23515, 33, 'Penela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23516, 33, 'Reiriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23517, 33, 'Villamil -Tapia de Casariego-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23518, 33, 'Villargomil -Tapia Casariego-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23519, 33, 'Cuarteles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23520, 33, 'Casares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23521, 33, 'Combarcio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23522, 33, 'Ese de Calleras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23523, 33, 'Llaneces de Calleras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23524, 33, 'Graa de Guiar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23525, 33, 'Grandamea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23526, 33, 'Jaraz de Meredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23527, 33, 'Penzol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23528, 33, 'Refojos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23529, 33, 'Restrepo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23530, 33, 'Vega de Villar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23531, 33, 'Vinjoy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23532, 33, 'Las Arenas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23533, 33, 'Arguerin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23534, 33, 'Atilan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23535, 33, 'Bayones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23536, 33, 'Bozanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23537, 33, 'Cuinya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23538, 33, 'Espina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23539, 33, 'Lavares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23540, 33, 'Onon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23541, 33, 'La Pedrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23542, 33, 'Pentanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23543, 33, 'La Pola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23544, 33, 'San Martin -Mar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23545, 33, 'Quintana Villaviciosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23546, 33, 'Roces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23547, 33, 'Sandin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23548, 33, 'Santa Cecilia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23549, 33, 'San Feliz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23550, 33, 'Sebrayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23551, 33, 'Sietes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23552, 33, 'Solares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23553, 33, 'Santa Cecilia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23554, 33, 'Villar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23555, 33, 'Villaverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23556, 33, 'Busto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23557, 33, 'La Eria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23558, 33, 'Ballongo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23559, 33, 'Belandres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23560, 33, 'Caedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23561, 33, 'La Garaba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23562, 33, 'Villapaada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23563, 33, 'Vega de Anzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23564, 33, 'Lada -Langreo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23565, 33, 'La Canga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23566, 33, 'La Nisal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23567, 33, 'Los Sotos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23568, 33, 'Boroes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23569, 33, 'Fornos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23570, 33, 'La Llera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23571, 33, 'Muera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23572, 33, 'Redondina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23573, 33, 'Ribota'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23574, 33, 'Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23575, 33, 'Soto de Lorio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23576, 33, 'Viescabozada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23577, 33, 'Vallinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23578, 33, 'Busantiane'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23579, 33, 'Buseco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23580, 33, 'Cabornas -Valdes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23581, 33, 'Calella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23582, 33, 'La Candanosa de Barcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23583, 33, 'Colinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23584, 33, 'Constancios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23585, 33, 'Corros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23586, 33, 'Faedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23587, 33, 'La Fajera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23588, 33, 'Laada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23589, 33, 'Longrey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23590, 33, 'Mafalla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23591, 33, 'Ordobaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23592, 33, 'Barganaz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23593, 33, 'Luarnes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23594, 33, 'La Laguna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23595, 33, 'Cabo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23596, 33, 'La Fuente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23597, 33, 'Corigos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23598, 33, 'Pumarada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23599, 33, 'Prelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23600, 33, 'Pandiello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23601, 33, 'Arriondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23602, 33, 'Carabao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23603, 33, 'Vion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23604, 33, 'San Pedro de Corias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23605, 33, 'Tandes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23606, 33, 'Vallinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23607, 33, 'Viliella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23608, 33, 'Villar de Bergame'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23609, 33, 'Villarino de Limes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23610, 33, 'Cabovilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23611, 33, 'Calera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23612, 33, 'Cespedera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23613, 33, 'La Cuesta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23614, 33, 'Dormon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23615, 33, 'El Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23616, 33, 'El Cabo -Carreo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23617, 33, 'Albandi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23618, 33, 'San Martin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23619, 33, 'Sebades'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23620, 33, 'La Campa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23621, 33, 'La Loba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23622, 33, 'Llodares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23623, 33, 'Pipe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23624, 33, 'Romadorio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23625, 33, 'Arguiol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23626, 33, 'Barrionuevo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23627, 33, 'Campas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23628, 33, 'Lantoira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23629, 33, 'Samagan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23630, 33, 'Vega de Los Molinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23631, 33, 'Lebredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23632, 33, 'Vilavedelle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23633, 33, 'Meiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23634, 33, 'Porto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23635, 33, 'Cubia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23636, 33, 'Naveda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23637, 33, 'Bospolin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23638, 33, 'Aguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23639, 33, 'Raeces de Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23640, 33, 'Valcabo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23641, 33, 'Puente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23642, 33, 'Cueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23643, 33, 'Calavero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23644, 33, 'Castro de Limes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23645, 33, 'Lindota'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23646, 33, 'Moral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23647, 33, 'Tremado de Carballo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23648, 33, 'Villar de Naviego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23649, 33, 'Nalio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23650, 33, 'Las Cruces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23651, 33, 'Yerbo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23652, 33, 'Veyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23653, 33, 'Valdarieme'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23654, 33, 'Ules'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23655, 33, 'La Mata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23656, 33, 'San Martin de Forcallao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23657, 33, 'Revallines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23658, 33, 'Rendaliego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23659, 33, 'La Rebollada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23660, 33, 'Raitan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23661, 33, 'Millariega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23662, 33, 'Gramedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23663, 33, 'Faedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23664, 33, 'La Espesura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23665, 33, 'Chano de Canero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23666, 33, 'Collanzo -Mieres-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23667, 33, 'Caunedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23668, 33, 'Caicorrida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23669, 33, 'Armiello -Mieres-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23670, 33, 'Anzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23671, 33, 'Villamartin de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23672, 33, 'La Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23673, 33, 'Santullano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23674, 33, 'San Pedro Tiraa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23675, 33, 'Riego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23676, 33, 'Montico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23677, 33, 'Monte Moris'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23678, 33, 'La Isla -Colunga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23679, 33, 'Frieres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23680, 33, 'Las Codes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23681, 33, 'Berzana -Tineo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23682, 33, 'Leces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23683, 33, 'Argancinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23684, 33, 'Villasonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23685, 33, 'San Pedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23686, 33, 'Monon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23687, 33, 'La Vega de Truelles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23688, 33, 'Puerto San Isidro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23689, 33, 'Llananzanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23690, 33, 'Villar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23691, 33, 'Eno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23692, 33, 'Carricedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23693, 33, 'Ondes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23694, 33, 'Villanueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23695, 33, 'Ferredal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23696, 33, 'Fuentes Cabadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23697, 33, 'Treve'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23698, 33, 'Merou -Boal-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23699, 33, 'Guerdies'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23700, 33, 'Peella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23701, 33, 'Villar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23702, 33, 'Genestral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23703, 33, 'La Mafalla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23704, 33, 'Romio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23705, 33, 'Mendiello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23706, 33, 'Cuadriellas de Villalaez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23707, 33, 'Los Tablados de Villarmental'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23708, 33, 'Robledo de Biforco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23709, 33, 'Vegaperpera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23710, 33, 'Escrita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23711, 33, 'Villamarin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23712, 33, 'Braas Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23713, 33, 'Parrondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23714, 33, 'Villaoril de Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23715, 33, 'Caldevilla de Rengos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23716, 33, 'Jarceley'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23717, 33, 'La Legua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23718, 33, 'Villar Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23719, 33, 'Villar de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23720, 33, 'Cabaaderecha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23721, 33, 'Bujandi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23722, 33, 'Las Vinadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23723, 33, 'Ferradal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23724, 33, 'Lanteiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23725, 33, 'Tomentosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23726, 33, 'Trio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23727, 33, 'Villarin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23728, 33, 'Esteler'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23729, 33, 'Llosoiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23730, 33, 'Orbaelle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23731, 33, 'Mestas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23732, 33, 'Carrandena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23733, 33, 'Lloreda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23734, 33, 'Cipiello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23735, 33, 'Carroceiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23736, 33, 'La Aldea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23737, 33, 'Carcedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23738, 33, 'La Caborna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23739, 33, 'El Lobio -Grado-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23740, 33, 'La Fueja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23741, 33, 'Santa Cristina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23742, 33, 'La Coba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23743, 33, 'Villarmayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23744, 33, 'Villamayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23745, 33, 'Folgoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23746, 33, 'Llanelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23747, 33, 'La Cebosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23748, 33, 'Grandiella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23749, 33, 'Valdelafaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23750, 33, 'Cuesta Los Valles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23751, 33, 'Braavieja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23752, 33, 'Braalamosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23753, 33, 'Maramuiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23754, 33, 'Reconcos -Telledo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23755, 33, 'Arquillina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23756, 33, 'Braarronda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23757, 33, 'Rozos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23758, 33, 'Carlangas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23759, 33, 'Arnizo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23760, 33, 'Enverniego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23761, 33, 'Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23762, 33, 'Paladeperre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23763, 33, 'Gallinero de Arcallana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23764, 33, 'Busmourisco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23765, 33, 'La Gamotosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23766, 33, 'Panizales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23767, 33, 'Puga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23768, 33, 'Buda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23769, 33, 'Allende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23770, 33, 'Picones -Llanes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23771, 33, 'El Carbayon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23772, 33, 'San Bernardo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23773, 33, 'Grillero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23774, 33, 'Corral de Ujo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23775, 33, 'Felguerua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23776, 33, 'Camino de la Quinta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23777, 33, 'La Pasera -Norea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23778, 33, 'Villafria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23779, 33, 'La Vara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23780, 33, 'Las Cortes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23781, 33, 'Murias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23782, 33, 'Ladines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23783, 33, 'Sinariega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23784, 33, 'Collado de Andrin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23785, 33, 'La Roza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23786, 33, 'Villarmarzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23787, 33, 'Omedal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23788, 33, 'El Pico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23789, 33, 'Cadapereda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23790, 33, 'San Martin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23791, 33, 'Priesca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23792, 33, 'Omedas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23793, 33, 'La Rebollada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23794, 33, 'Cuevas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23795, 33, 'Las Llanas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23796, 33, 'Paladin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23797, 33, 'Andinas -Ribadedeva-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23798, 33, 'Barredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23799, 33, 'Daner'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23800, 33, 'Borreras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23801, 33, 'Candamo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23802, 33, 'Villarin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23803, 33, 'Arbodas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23804, 33, 'Los Caleyos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23805, 33, 'Bousoo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23806, 33, 'Illano -San Martin de Oscos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23807, 33, 'Busqueimado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23808, 33, 'Goje'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23809, 33, 'Trasdacorda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23810, 33, 'Las Carangas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23811, 33, 'Buseco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23812, 33, 'El Fresno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23813, 33, 'San Tirso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23814, 33, 'Paeda-Vieja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23815, 33, 'Villaux'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23816, 33, 'La Llamera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23817, 33, 'Truebano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23818, 33, 'Jarias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23819, 33, 'Vega de Acevedin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23820, 33, 'Pelogra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23821, 33, 'Santelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23822, 33, 'Baodecangas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23823, 33, 'Cancelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23824, 33, 'Tingas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23825, 33, 'Villarede'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23826, 33, 'Cua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23827, 33, 'Santa Marta -Tineo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23828, 33, 'Carbajal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23829, 33, 'San Pedro Barcena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23830, 33, 'La Rebollosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23831, 33, 'Peafolgueros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23832, 33, 'Cerecedo del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23833, 33, 'La Corcolina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23834, 33, 'Mallayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23835, 33, 'Pereda de Sangoedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23836, 33, 'Villafronte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23837, 33, 'Corniella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23838, 33, 'La Prohida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23839, 33, 'Foz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23840, 33, 'El Raadoiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23841, 33, 'Bustiello de la Cabuerna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23842, 33, 'Nafarea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23843, 33, 'Vijande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23844, 33, 'Cobre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23845, 33, 'Vilarello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23846, 33, 'Moratin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23847, 33, 'Barcena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23848, 33, 'Moriyon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23849, 33, 'Castiello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23850, 33, 'Arbazal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23851, 33, 'Arnin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23852, 33, 'La Miyar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23853, 33, 'Ternin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23854, 33, 'Cabaas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23855, 33, 'Vallinaoscura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23856, 33, 'Candanosa de Bustefollado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23857, 33, 'Enjamenas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23858, 33, 'Cuerres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23859, 33, 'Pacios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23860, 33, 'Riomaon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23861, 33, 'Aguasmestas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23862, 33, 'Ordoo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23863, 33, 'La Collada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23864, 33, 'Otero Gozon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23865, 33, 'Villaescusa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23866, 33, 'Beronda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23867, 33, 'Castromouran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23868, 33, 'Campa San Juan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23869, 33, 'San Emeterio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23870, 33, 'Frejulfe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23871, 33, 'Bardasqueda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23872, 33, 'Selce'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23873, 33, 'Bello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23874, 33, 'Villaldin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23875, 33, 'Villar de Buspol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23876, 33, 'Lantero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23877, 33, 'Los Cardos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23878, 33, 'Porciles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23879, 33, 'Rodiles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23880, 33, 'Ron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23881, 33, 'Quintela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23882, 33, 'La Canal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23883, 33, 'Anes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23884, 33, 'Fabal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23885, 33, 'Villajulian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23886, 33, 'Anzas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23887, 33, 'Castro de Ayones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23888, 33, 'Riopinoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23889, 33, 'Concernoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23890, 33, 'El Villar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23891, 33, 'San Saturnino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23892, 33, 'Rozadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23893, 33, 'Villaruiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23894, 33, 'Selorio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23895, 33, 'Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23896, 33, 'Sanzadornin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23897, 33, 'Camocha -Vega-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23898, 33, 'La Roza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23899, 33, 'El Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23900, 33, 'Bustiello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23901, 33, 'Eslabayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23902, 33, 'Semellon de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23903, 33, 'Olla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23904, 33, 'La Grandela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23905, 33, 'La Barrosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23906, 33, 'Otur -Valdes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23907, 33, 'Colloto -Siero-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23908, 33, 'Laviana -Gozon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23909, 33, 'Veria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23910, 33, 'Carbayin -Santa Marta-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23911, 33, 'Arenas -Santiago-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23912, 33, 'Barros -Langreo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23913, 33, 'La Cruz de Illas -Castrillon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23914, 33, 'San Cristobal -Castrillon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23915, 33, 'Trasona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23916, 33, 'La Foz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23917, 33, 'Teverga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23918, 33, 'Ranon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23919, 33, 'Cuadrovea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23920, 33, 'San Antonio -Piloa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23921, 33, 'Santurio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23922, 33, 'Molleda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23923, 33, 'Candanal -Villaviciosa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23924, 33, 'Pillarno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23925, 33, 'Villares de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23926, 33, 'San Pedro de Las Montaas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23927, 33, 'Masanti'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23928, 33, 'Gua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23929, 33, 'Espinedo(Campomanes)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23930, 33, 'Piloa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23931, 33, 'Piera -Castropol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23932, 33, 'Puente Miera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23933, 33, 'San Pedro Tiraa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23934, 33, 'Naveces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23935, 33, 'Piedeloro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23936, 33, 'La Foz -Morcin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23937, 33, 'Aller'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23938, 33, 'Cabranes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23939, 33, 'Candamo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23940, 33, 'Carreo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23941, 33, 'Corvera de Asturias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23942, 33, 'Llanera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23943, 33, 'Morcin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23944, 33, 'Mazas -Morcin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23945, 33, 'Parres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23946, 33, 'Ponga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23947, 33, 'Ribadedeva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23948, 33, 'Ribera de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23949, 33, 'San Martin del Rey Aurelio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23950, 33, 'Sariego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23951, 33, 'Siero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23952, 33, 'Valdes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23953, 33, 'Prendes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23954, 33, 'Ventosa -Candamo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23955, 33, 'Tiana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23956, 33, 'Arroes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23957, 33, 'Soto de Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23958, 33, 'Ciao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23959, 33, 'Las Regueras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23960, 33, 'San Martin de Laspra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23961, 33, 'San Martin de Luia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23962, 33, 'Caldueo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23963, 33, 'Illas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23964, 33, 'Riao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23965, 33, 'Zardain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23966, 33, 'Villaperez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23967, 33, 'Marcenado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23968, 33, 'La Gallina -Tuilla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23969, 33, 'Sama -Langreo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23970, 33, 'Santiago de Arenas (Pola de Siero)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23971, 33, 'Peamellera Alta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23972, 33, 'Feleches'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23973, 33, 'Urb. Soto de Llanera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23974, 33, 'Hontoria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23975, 34, 'Aguilar de Campoo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23976, 34, 'Alar del Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23977, 34, 'Baltanas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23978, 34, 'Barruelo de Santullan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23979, 34, 'Becerril de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23980, 34, 'Dueas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23981, 34, 'Magaz de Pisuerga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23982, 34, 'Palencia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23983, 34, 'Paredes de Nava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23984, 34, 'Quintana del Puente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23985, 34, 'Reinoso de Cerrato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23986, 34, 'Torquemada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23987, 34, 'Venta de Baos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23988, 34, 'Villada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23989, 34, 'Villarramiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23990, 34, 'Villaviudas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23991, 34, 'Villodrigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23992, 34, 'Herrera de Pisuerga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23993, 34, 'Cervera de Pisuerga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23994, 34, 'Castromocho'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23995, 34, 'Villamuriel de Cerrato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23996, 34, 'Carrion de Los Condes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23997, 34, 'Fromista'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23998, 34, 'Guardo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (23999, 34, 'Monzon de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24000, 34, 'Pia de Campos'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24001, 34, 'Saldaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24002, 34, 'Santibaez de la Pea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24003, 34, 'Velilla del Rio Carrion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24004, 34, 'Palenzuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24005, 34, 'Grijota'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24006, 34, 'Amusco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24007, 34, 'Astudillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24008, 34, 'Marcilla de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24009, 34, 'Osorno la Mayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24010, 34, 'Santillana de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24011, 34, 'Camporredondo de Alba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24012, 34, 'Cevico de la Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24013, 34, 'Abarca de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24014, 34, 'Soto de Cerrato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24015, 34, 'Vertavillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24016, 34, 'Ampudia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24017, 34, 'San Salvador de Cantamuda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24018, 34, 'Hontoria de Cerrato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24019, 34, 'Cisneros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24020, 34, 'Villalumbroso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24021, 34, 'Castrejon de la Pea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24022, 34, 'Espinosa de Villagonzalo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24023, 34, 'Boadilla de Rioseco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24024, 34, 'Tabanera de Cerrato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24025, 34, 'Villahan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24026, 34, 'Revenga de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24027, 34, 'Salinas de Pisuerga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24028, 34, 'Autillo de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24029, 34, 'Frechilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24030, 34, 'Fuentes de Nava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24031, 34, 'Guaza de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24032, 34, 'Mazariegos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24033, 34, 'Mazuecos de Valdeginate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24034, 34, 'Villamartin de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24035, 34, 'Pomar de Valdivia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24036, 34, 'Itero de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24037, 34, 'Melgar de Yuso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24038, 34, 'Villaherreros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24039, 34, 'Congosto de Valdavia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24040, 34, 'Respenda de la Pea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24041, 34, 'Abia de Las Torres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24042, 34, 'Villasarracino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24043, 34, 'Castrillo de Villavega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24044, 34, 'Ayuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24045, 34, 'Arenillas de San Pelayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24046, 34, 'Barcena de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24047, 34, 'La Puebla de Valdavia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24048, 34, 'Tabanera de Valdavia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24049, 34, 'Valderrabano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24050, 34, 'Villaeles de Valdavia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24051, 34, 'Villanuo de Valdavia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24052, 34, 'Villasila de Valdavia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24053, 34, 'Buenavista de Valdavia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24054, 34, 'Braosera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24055, 34, 'Cordovilla la Real'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24056, 34, 'Hornillos de Cerrato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24057, 34, 'Villaumbrales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24058, 34, 'Castrillo de Onielo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24059, 34, 'Cevico Navero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24060, 34, 'Villaconancio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24061, 34, 'Hermedes de Cerrato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24062, 34, 'Husillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24063, 34, 'Tariego de Cerrato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24064, 34, 'Boadilla del Camino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24065, 34, 'Poblacion de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24066, 34, 'Espinosa de Cerrato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24067, 34, 'Herrera de Valdecaas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24068, 34, 'Meneses de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24069, 34, 'Villamediana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24070, 34, 'Polvorosa de Valdavia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24071, 34, 'Renedo de Valdavia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24072, 34, 'Cascon de la Nava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24073, 34, 'San Cebrian de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24074, 34, 'Villadiezma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24075, 34, 'Fuentes de Valdepero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24076, 34, 'Lantadilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24077, 34, 'Villacidaler'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24078, 34, 'Villaluenga de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24079, 34, 'Baquerin de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24080, 34, 'Alba de Cerrato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24081, 34, 'Valdeolmillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24082, 34, 'Canduela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24083, 34, 'Antiguedad'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24084, 34, 'Villalcazar de Sirga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24085, 34, 'Arconada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24086, 34, 'Villovieco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24087, 34, 'Villoldo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24088, 34, 'Mantinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24089, 34, 'Villalba de Guardo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24090, 34, 'Autilla del Pino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24091, 34, 'Pedraza de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24092, 34, 'Revilla de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24093, 34, 'Santa Cecilia del Alcor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24094, 34, 'Torremormojon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24095, 34, 'Valoria del Alcor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24096, 34, 'Pradanos de Ojeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24097, 34, 'Palacios del Alcor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24098, 34, 'Santoyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24099, 34, 'Villalaco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24100, 34, 'Otero de Guardo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24101, 34, 'Vallejo de Orbo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24102, 34, 'Riosmenudos de la Pea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24103, 34, 'El Barrio de la Puebla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24104, 34, 'Cillamayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24105, 34, 'Pino del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24106, 34, 'Villalobon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24107, 34, 'Ribas de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24108, 34, 'Barriosuso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24109, 34, 'La Vid de Ojeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24110, 34, 'Capillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24111, 34, 'Cornon de la Pea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24112, 34, 'Pino de Viduerna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24113, 34, 'Tarilonte de la Pea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24114, 34, 'Viduerna de la Pea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24115, 34, 'Velilla de Tarilonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24116, 34, 'Villafria de la Pea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24117, 34, 'Villaoliva de la Pea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24118, 34, 'Villaverde de la Pea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24119, 34, 'Intorcisa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24120, 34, 'Mueca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24121, 34, 'Ventosa de Pisuerga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24122, 34, 'Quintanaluengos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24123, 34, 'Muda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24124, 34, 'San Cebrian de Muda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24125, 34, 'Barrios de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24126, 34, 'Santa Olaja de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24127, 34, 'Fresno del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24128, 34, 'Quintanadiez de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24129, 34, 'Micieces de Ojeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24130, 34, 'Villanueva de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24131, 34, 'Cubillas de Cerrato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24132, 34, 'Barrio San Vicente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24133, 34, 'Requena de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24134, 34, 'Villerias de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24135, 34, 'Areos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24136, 34, 'Becerril del Carpio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24137, 34, 'Manquillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24138, 34, 'Perales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24139, 34, 'Villaldavin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24140, 34, 'Villarmentero de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24141, 34, 'Tamara de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24142, 34, 'Dehesa de Romanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24143, 34, 'Santibaez de Ecla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24144, 34, 'Arenillas de Nuo Perez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24145, 34, 'Mianes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24146, 34, 'Robladillo de Ucieza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24147, 34, 'San Mames de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24148, 34, 'Villamorco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24149, 34, 'Villasabariego de Ucieza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24150, 34, 'Abastas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24151, 34, 'Aoza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24152, 34, 'Cardeosa de Volpejera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24153, 34, 'Villanueva del Rebollar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24154, 34, 'Villatoquite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24155, 34, 'Villavega de Ojeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24156, 34, 'Osornillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24157, 34, 'Villabermudo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24158, 34, 'Collazos de Boedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24159, 34, 'Paramo de Boedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24160, 34, 'Revilla de Collazos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24161, 34, 'Calzada de Los Molinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24162, 34, 'Las Cabaas de Castilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24163, 34, 'Aviante de la Pea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24164, 34, 'Calahorra de Boedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24165, 34, 'Sotobaado Y Priorato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24166, 34, 'Villodre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24167, 34, 'Villarrabe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24168, 34, 'Arbejal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24169, 34, 'Cubillo de Castrejon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24170, 34, 'Pison de Castrejon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24171, 34, 'Gainas de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24172, 34, 'Lobera de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24173, 34, 'Amayuelas de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24174, 34, 'Amayuelas de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24175, 34, 'Cantoral de la Pea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24176, 34, 'Villalcon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24177, 34, 'Cabria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24178, 34, 'Cobos de Cerrato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24179, 34, 'Membrillar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24180, 34, 'Olleros de Pisuerga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24181, 34, 'Pedrosa de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24182, 34, 'Pozo de Urama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24183, 34, 'San Roman de la Cuba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24184, 34, 'Traspea de la Pea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24185, 34, 'Valcabadillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24186, 34, 'Valoria de Aguilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24187, 34, 'Villanueva de la Pea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24188, 34, 'Villameriel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24189, 34, 'Bahillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24190, 34, 'Gozon de Ucieza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24191, 34, 'Itero Seco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24192, 34, 'Villota del Duque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24193, 34, 'Fuente-Andrino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24194, 34, 'Renedo de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24195, 34, 'La Serna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24196, 34, 'Lomas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24197, 34, 'Villamelendro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24198, 34, 'Villaren de Valdivia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24199, 34, 'Boada de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24200, 34, 'Lomilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24201, 34, 'Mave'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24202, 34, 'Nogal de Las Huertas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24203, 34, 'Poblacion de Cerrato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24204, 34, 'Quintanilla de Las Torres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24205, 34, 'San Pedro de Cansoles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24206, 34, 'Valdecaas de Cerrato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24207, 34, 'Villallano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24208, 34, 'Villaturde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24209, 34, 'Revilla de Pomar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24210, 34, 'Villajimena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24211, 34, 'Valle de Cerrato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24212, 34, 'Becerril Carpio Barrio Santa Maria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24213, 34, 'Becerril Carpio Barrio San Pedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24214, 34, 'Oteros de Boedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24215, 34, 'Castrillo de Don Juan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24216, 34, 'Celadilla del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24217, 34, 'Valles de Valdavia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24218, 34, 'Villasur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24219, 34, 'Bascones de Ojeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24220, 34, 'San Cebrian de Buena Madre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24221, 34, 'Villafruel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24222, 34, 'Villorquite del Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24223, 34, 'Payo de Ojeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24224, 34, 'Alba de Los Cardaos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24225, 34, 'Cardao de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24226, 34, 'Barajores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24227, 34, 'Fontecha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24228, 34, 'Recueva de la Pea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24229, 34, 'Camasobres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24230, 34, 'El Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24231, 34, 'Casavegas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24232, 34, 'Lebanza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24233, 34, 'Lores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24234, 34, 'Los Llazos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24235, 34, 'Piedrasluengas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24236, 34, 'San Juan de Redondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24237, 34, 'Santa Maria de Redondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24238, 34, 'Tremaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24239, 34, 'Corvio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24240, 34, 'Matamorisca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24241, 34, 'Nestar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24242, 34, 'Villavega de Aguilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24243, 34, 'Loma de Castrejon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24244, 34, 'Roscales de la Pea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24245, 34, 'Portillejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24246, 34, 'Poza de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24247, 34, 'Quintanilla de Onsoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24248, 34, 'Relea de la Loma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24249, 34, 'Renedo del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24250, 34, 'Santervas de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24251, 34, 'Valenoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24252, 34, 'Vega de Doa Olimpa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24253, 34, 'Velillas del Duque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24254, 34, 'Villalafuente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24255, 34, 'Villanueva del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24256, 34, 'Villaproviano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24257, 34, 'Villapun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24258, 34, 'Villarmienzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24259, 34, 'Villarrobejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24260, 34, 'Villarrodrigo de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24261, 34, 'Villalbeto de la Pea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24262, 34, 'Cervatos de la Cueza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24263, 34, 'Riberos de la Cueza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24264, 34, 'Abastillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24265, 34, 'Bustillo de Santullan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24266, 34, 'Nava de Santullan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24267, 34, 'San Cristobal de Boedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24268, 34, 'Santa Cruz de Boedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24269, 34, 'Santa Maria de Nava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24270, 34, 'Sotillo de Boedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24271, 34, 'Verbios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24272, 34, 'Villabellaco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24273, 34, 'Villaneceriel de Boedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24274, 34, 'Villanueva de la Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24275, 34, 'Villaprovedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24276, 34, 'Zorita del Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24277, 34, 'Valbuena de Pisuerga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24278, 34, 'Salcedillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24279, 34, 'Celada de Roblecedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24280, 34, 'Estalaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24281, 34, 'Herreruela de Castilleria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24282, 34, 'Liguerzana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24283, 34, 'Polentinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24284, 34, 'Rueda de Pisuerga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24285, 34, 'San Felices de Castilleria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24286, 34, 'San Martin de Los Herreros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24287, 34, 'Vallespinoso de Cervera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24288, 34, 'Valsadornin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24289, 34, 'Vaes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24290, 34, 'Ventanilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24291, 34, 'Verdea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24292, 34, 'Bustillo de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24293, 34, 'Hijosa de Boedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24294, 34, 'Olmos de Ojeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24295, 34, 'Perapertu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24296, 34, 'Pozuelos del Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24297, 34, 'Quintanatello de Ojeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24298, 34, 'San Martin de Perapertu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24299, 34, 'Valle de Santullan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24300, 34, 'Villamoronta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24301, 34, 'Villanueva Nabos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24302, 34, 'Villelga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24303, 34, 'Barcenilla de Pisuerga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24304, 34, 'Carbonera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24305, 34, 'Castil de Vela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24306, 34, 'Castrillejo de la Olma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24307, 34, 'Cembrero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24308, 34, 'San Martin del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24309, 34, 'Santa Cruz del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24310, 34, 'Santiago del Val'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24311, 34, 'Torre de Los Molinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24312, 34, 'Villaescusa de Las Torres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24313, 34, 'Villamuera de la Cueza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24314, 34, 'Villanueva del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24315, 34, 'Villemar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24316, 34, 'Villorquite de Herrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24317, 34, 'San Andres de Valdelomar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24318, 34, 'Menaza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24319, 34, 'Grijera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24320, 34, 'Valdespina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24321, 34, 'Vega de Riacos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24322, 34, 'Villabasta de Valdavia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24323, 34, 'Villantodrigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24324, 34, 'Acera de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24325, 34, 'Moarves de Ojeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24326, 34, 'San Andres de la Regla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24327, 34, 'San Pedro de Ojeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24328, 34, 'Villaescusa de Ecla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24329, 34, 'Villosilla de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24330, 34, 'Villota del Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24331, 34, 'Naveros de Pisuerga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24332, 34, 'Olmos de Pisuerga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24333, 34, 'La Lastra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24334, 34, 'Triollo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24335, 34, 'Vidrieros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24336, 34, 'Monasterio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24337, 34, 'Orbo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24338, 34, 'Paredes de Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24339, 34, 'Resoba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24340, 34, 'Santibaez de Resoba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24341, 34, 'Valberzoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24342, 34, 'Arroyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24343, 34, 'Baos de la Pea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24344, 34, 'Berzosa de Los Hidalgos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24345, 34, 'Bustillo del Paramo de Carrion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24346, 34, 'Calzadilla de la Cueza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24347, 34, 'Lagartos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24348, 34, 'Ledigos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24349, 34, 'Moratinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24350, 34, 'Poblacion de Arroyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24351, 34, 'Quintanilla de la Cueza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24352, 34, 'San Nicolas del Real Camino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24353, 34, 'Santana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24354, 34, 'Terradillos de Los Templarios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24355, 34, 'Villambran de Cea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24356, 34, 'Villanueva de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24357, 34, 'Perazancas de Ojeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24358, 34, 'Colmenares de Ojeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24359, 34, 'Dehesa de Montejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24360, 34, 'Albala de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24361, 34, 'Amayuelas de Ojeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24362, 34, 'Bascones de Valdivia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24363, 34, 'Berzosilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24364, 34, 'Cordovilla de Aguilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24365, 34, 'Cornoncillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24366, 34, 'Cozuelos de Ojeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24367, 34, 'Cubillo de Ojeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24368, 34, 'Cuillas del Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24369, 34, 'Foldada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24370, 34, 'Gama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24371, 34, 'Gramedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24372, 34, 'Helecha de Valdivia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24373, 34, 'Lagunilla de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24374, 34, 'Lastrilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24375, 34, 'Matalbaniega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24376, 34, 'Montoto de Ojeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24377, 34, 'Moslares de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24378, 34, 'Matabuena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24379, 34, 'Olea de Boedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24380, 34, 'Olleros de Paredes Rubias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24381, 34, 'Pison de Ojeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24382, 34, 'Poblacion de Soto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24383, 34, 'Porquera de Los Infantes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24384, 34, 'Pozancos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24385, 34, 'Puentetoma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24386, 34, 'Quintanas de Hormiguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24387, 34, 'Rabanal de Los Caballeros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24388, 34, 'Rebanal de Las Llantas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24389, 34, 'Rebolledo de la Inera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24390, 34, 'Renedo Inera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24391, 34, 'Renedo de Zalima'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24392, 34, 'San Llorente del Paramo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24393, 34, 'San Mames de Zalima'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24394, 34, 'San Martin del Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24395, 34, 'Santa Maria de Mave'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24396, 34, 'Santillan de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24397, 34, 'Valdegama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24398, 34, 'Vallespinoso de Aguilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24399, 34, 'Vega de Bur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24400, 34, 'Vergao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24401, 34, 'Villacibio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24402, 34, 'Villacuende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24403, 34, 'Villambroz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24404, 34, 'Villanueva de Henares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24405, 34, 'Villotilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24406, 34, 'San Quirce del Rio Pisuerga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24407, 34, 'Bascones de Ebro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24408, 34, 'Porquera de Santullan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24409, 34, 'Revilla de Santullan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24410, 34, 'Belmonte de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24411, 34, 'Barrio de San Pedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24412, 34, 'Barrio de Santa Maria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24413, 34, 'Camesa de Valdivia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24414, 34, 'Cementos Hontoria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24415, 34, 'Cezura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24416, 34, 'Ciudad Jardin Virgen Milagro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24417, 34, 'Col.Mili. Infantil Gral.Varela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24418, 34, 'Dehesa de Cordovilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24419, 34, 'Dehesa de Matanzas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24420, 34, 'Villafruela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24421, 34, 'Dehesa de Villandrando'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24422, 34, 'Dehesilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24423, 34, 'Esquileo de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24424, 34, 'Esquileo de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24425, 34, 'La Estacion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24426, 34, 'Gomez Manrique'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24427, 34, 'Las Heras de la Pea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24428, 34, 'Monte la Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24429, 34, 'Nogales de Pisuerga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24430, 34, 'Los Olmillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24431, 34, 'Rayaces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24432, 34, 'Ruesga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24433, 34, 'San Andres de Arroyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24434, 34, 'San Isidro de Dueas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24435, 34, 'San Martin del Obispo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24436, 34, 'Vado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24437, 34, 'Valdebustos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24438, 34, 'Baos de Cerrato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24439, 34, 'Calabazanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24440, 34, 'Respenda de Aguilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24441, 34, 'Cardao de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24442, 34, 'Aguanares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24443, 34, 'San Quirce del Rio Pisuerga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24444, 34, 'La Pernia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24445, 35, 'Agaete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24446, 35, 'Aguimes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24447, 35, 'Antigua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24448, 35, 'Arucas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24449, 35, 'Arrecife'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24450, 35, 'Baaderos-San Andres (Arucas)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24451, 35, 'Buenlugar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24452, 35, 'Carrizal -Ingenio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24453, 35, 'Casillas del Angel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24454, 35, 'Firgas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24455, 35, 'Galdar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24456, 35, 'Gran Tarajal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24457, 35, 'Santa Maria de Guia de Gran C.'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24458, 35, 'Haria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24459, 35, 'Ingenio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24460, 35, 'Jinamar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24461, 35, 'Moya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24462, 35, 'La Oliva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24463, 35, 'Las Palmas de Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24464, 35, 'Puerto del Rosario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24465, 35, 'Huertas del Palmar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24466, 35, 'San Bartolome'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24467, 35, 'San Bartolome de Tirajana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24468, 35, 'Vega de San Mateo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24469, 35, 'Santa Brigida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24470, 35, 'Santa Lucia de Tirajana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24471, 35, 'Tafira Alta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24472, 35, 'Tamaraceite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24473, 35, 'Telde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24474, 35, 'Temisas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24475, 35, 'Teror'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24476, 35, 'Teguise'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24477, 35, 'Tetir'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24478, 35, 'Tiagua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24479, 35, 'Tinajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24480, 35, 'Tuineje'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24481, 35, 'Valsequillo de Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24482, 35, 'Valleseco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24483, 35, 'Tejeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24484, 35, 'Artenara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24485, 35, 'San Nicolas de Tolentino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24486, 35, 'Femes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24487, 35, 'Playa Blanca -Yaiza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24488, 35, 'Yaiza-Uga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24489, 35, 'Tias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24490, 35, 'Puerto del Carmen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24491, 35, 'Arrieta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24492, 35, 'Orzola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24493, 35, 'Ye'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24494, 35, 'Betancuria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24495, 35, 'Giniginamar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24496, 35, 'Pajara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24497, 35, 'Tarajalejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24498, 35, 'Vega Rio Palmas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24499, 35, 'Corralejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24500, 35, 'Lajares'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24501, 35, 'Sardina Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24502, 35, 'Vecindario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24503, 35, 'Castillo del Romeral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24504, 35, 'Juan Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24505, 35, 'Maspalomas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24506, 35, 'Tablero El Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24507, 35, 'Arguineguin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24508, 35, 'Mogan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24509, 35, 'Playa de Mogan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24510, 35, 'El Risco -Agaete-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24511, 35, 'Fontanales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24512, 35, 'Tasarte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24513, 35, 'La Ampuyenta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24514, 35, 'El Salobre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24515, 35, 'Llanos de la Concepcion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24516, 35, 'Valle de Santa Ines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24517, 35, 'Villaverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24518, 35, 'Agua de Bueyes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24519, 35, 'Tesejerague'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24520, 35, 'Tiscamanita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24521, 35, 'Toto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24522, 35, 'Valles de Ortega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24523, 35, 'Gando'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24524, 35, 'Cambalud Trapiche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24525, 35, 'Casablanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24526, 35, 'Caideros Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24527, 35, 'Fagajesto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24528, 35, 'Hoya Pineda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24529, 35, 'Juncalillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24530, 35, 'Saucillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24531, 35, 'Guime'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24532, 35, 'Llanos Caleta Sobradillo Isla Gran Cana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24533, 35, 'Barranco Hondo de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24534, 35, 'Sardina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24535, 35, 'Anzofe Y El Salon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24536, 35, 'Montaa Alta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24537, 35, 'Tres Cruces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24538, 35, 'San Juan Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24539, 35, 'Arguineguin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24540, 35, 'Arbejales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24541, 35, 'Lanzarote'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24542, 35, 'Madrelagua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24543, 35, 'Valsendero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24544, 35, 'El Doctoral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24545, 35, 'La Angostura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24546, 35, 'Atalaya La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24547, 35, 'El Madroal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24548, 35, 'San Agustin -Maspalomas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24549, 35, 'Tenteniguada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24550, 35, 'Valle San Roque de Valsequillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24551, 35, 'Vegas Las'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24552, 35, 'Casas Blancas Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24553, 35, 'Fataga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24554, 35, 'Macher'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24555, 35, 'Yaiza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24556, 35, 'Las Rosas Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24557, 35, 'Caseron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24558, 35, 'Monagas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24559, 35, 'Troyanas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24560, 35, 'Zamora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24561, 35, 'Zumacal Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24562, 35, 'Barranco Hondo de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24563, 35, 'Casa Costero Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24564, 35, 'Tenoya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24565, 35, 'San Lorenzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24566, 35, 'Ariez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24567, 35, 'Cueva Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24568, 35, 'Las Lagunetas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24569, 35, 'La Lechuza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24570, 35, 'Utiaca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24571, 35, 'La Yedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24572, 35, 'Carrizal El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24573, 35, 'El Chorrillo Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24574, 35, 'El Espinillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24575, 35, 'El Roque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24576, 35, 'La Solana -Tejeda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24577, 35, 'La Brea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24578, 35, 'El Caracol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24579, 35, 'Cazadores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24580, 35, 'La Garita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24581, 35, 'La Higuera Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24582, 35, 'Lomo Magullo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24583, 35, 'Majadilla La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24584, 35, 'Las Medianias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24585, 35, 'Ojos de Garza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24586, 35, 'La Pardilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24587, 35, 'Valle de Casares Y Solana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24588, 35, 'Anzofe Y El Salon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24589, 35, 'El Palmar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24590, 35, 'Caadas Boticarias Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24591, 35, 'Casas Nuevas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24592, 35, 'Era de Mota'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24593, 35, 'El Helechal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24594, 35, 'El Hoyo Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24595, 35, 'Lomitos de Correa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24596, 35, 'Mancha Blanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24597, 35, 'La Vegueta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24598, 35, 'Guatiza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24599, 35, 'Soo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24600, 35, 'El Alamo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24601, 35, 'Miraflor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24602, 35, 'La Bodeguilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24603, 35, 'La Caldera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24604, 35, 'Casas de Aguilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24605, 35, 'El Palmital'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24606, 35, 'Cruce de Arinaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24607, 35, 'Hoya Pineda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24608, 35, 'La Lechucilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24609, 35, 'Los Lomitos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24610, 35, 'Vergara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24611, 35, 'Lomo Gordo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24612, 35, 'Padilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24613, 35, 'Cruce de Arinaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24614, 35, 'Playa del Hombre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24615, 35, 'Los Rosales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24616, 35, 'San Felipe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24617, 35, 'Santa Cristina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24618, 35, 'Valle de Santa Ines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24619, 35, 'Tres Palmas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24620, 35, 'El Hormiguero Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24621, 35, 'Casas de Veneguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24622, 35, 'El Cuchillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24623, 35, 'La Santa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24624, 35, 'Los Dragos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24625, 35, 'Lance'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24626, 35, 'Lomo Blanco Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24627, 35, 'Acusa Verde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24628, 35, 'Las Arbejas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24629, 35, 'Corua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24630, 35, 'Las Cuevas Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24631, 35, 'Las Hoyas Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24632, 35, 'El Juncal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24633, 35, 'Lugarejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24634, 35, 'Timagada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24635, 35, 'El Toscon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24636, 35, 'Las Rosadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24637, 35, 'Maguez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24638, 35, 'Uga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24639, 35, 'Maspalomas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24640, 35, 'Los Llanetes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24641, 35, 'Las Breas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24642, 35, 'El Hornillo Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24643, 35, 'La Playa -S.Nicolas Tolentino-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24644, 35, 'El Sao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24645, 35, 'Triquivijate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24646, 35, 'Lomontero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24647, 35, 'Rincon El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24648, 35, 'San Isidro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24649, 35, 'Barranco la Montaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24650, 35, 'Caldereta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24651, 35, 'El Roque -La Oliva-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24652, 35, 'Tindaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24653, 35, 'Vallebron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24654, 35, 'Guinate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24655, 35, 'Acusa Verde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24656, 35, 'Cuevas Caidas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24657, 35, 'Culata La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24658, 35, 'Degollada La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24659, 35, 'Juan Gomez Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24660, 35, 'El Majuelo Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24661, 35, 'El Rincon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24662, 35, 'Cuatro Puertas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24663, 35, 'La Gavia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24664, 35, 'El Goro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24665, 35, 'Las Huesas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24666, 35, 'El Mojon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24667, 35, 'Barranco Pinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24668, 35, 'Lomo Pino Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24669, 35, 'El Agazal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24670, 35, 'Mozaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24671, 35, 'Muique'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24672, 35, 'Tao-Tiagua (Teguise)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24673, 35, 'Espartero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24674, 35, 'Puerto Rico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24675, 35, 'Morro Jable'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24676, 35, 'Mala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24677, 35, 'La Lajita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24678, 35, 'Los Silos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24679, 35, 'La Cantera Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24680, 35, 'Barranco de Juan Ingles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24681, 35, 'Rincon El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24682, 35, 'Barranco Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24683, 35, 'Las Cuevecillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24684, 35, 'Las Casillas Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24685, 35, 'La Punta Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24686, 35, 'Gui Gui Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24687, 35, 'Cercados de Espinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24688, 35, 'Caleta de Soria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24689, 35, 'La Solana Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24690, 35, 'Barranco del Laurel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24691, 35, 'Corvo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24692, 35, 'La Jurada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24693, 35, 'Lomo Rivero Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24694, 35, 'Tablero Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24695, 35, 'Caleta de Famara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24696, 35, 'Nazaret'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24697, 35, 'Tahiche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24698, 35, 'Teseguite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24699, 35, 'Los Valles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24700, 35, 'Aldea Blanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24701, 35, 'Ayacata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24702, 35, 'Los Cercados Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24703, 35, 'Fronton'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24704, 35, 'La Plata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24705, 35, 'Culata La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24706, 35, 'Risco Blanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24707, 35, 'Taidia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24708, 35, 'La Asomada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24709, 35, 'Conil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24710, 35, 'Masdache'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24711, 35, 'Aguatona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24712, 35, 'Tabayesco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24713, 35, 'Punta Mujeres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24714, 35, 'Las Playitas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24715, 35, 'Corte La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24716, 35, 'Tinocas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24717, 35, 'Ojero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24718, 35, 'El Islote'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24719, 35, 'Montaa Blanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24720, 35, 'Casa Ayala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24721, 35, 'Playas de Telde(Telde)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24722, 35, 'Barranco del Pino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24723, 35, 'Lo Blanco Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24724, 35, 'La Pea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24725, 35, 'San Jose Alamo Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24726, 35, 'Playa Honda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24727, 35, 'Tocodoman'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24728, 35, 'Guisguey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24729, 35, 'Tefia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24730, 35, 'Colonia Rural Garcia Escamez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24731, 35, 'La Matilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24732, 35, 'El Matorral Isla Fuerteventura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24733, 35, 'El Time'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24734, 35, 'Montaa la Data'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24735, 35, 'Ajuy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24736, 35, 'Tesjuates'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24737, 35, 'El Estanco Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24738, 35, 'Pasadilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24739, 35, 'Barranquillo Andres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24740, 35, 'Los Peones -Mogan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24741, 35, 'Soria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24742, 35, 'Asomada La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24743, 35, 'Pino Santo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24744, 35, 'Chilegua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24745, 35, 'Mezquez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24746, 35, 'Cardon -Pajara-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24747, 35, 'El Toscon de Las Palmas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24748, 35, 'Ayagaures'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24749, 35, 'Almatriche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24750, 35, 'La Milagrosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24751, 35, 'Los Altabacales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24752, 35, 'Argana Alta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24753, 35, 'Bascamao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24754, 35, 'La Calzada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24755, 35, 'Cardonal Cruz de Pineda (Arucas)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24756, 35, 'Cardones Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24757, 35, 'Caleta de Sebo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24758, 35, 'Casitas Las'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24759, 35, 'El Cotillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24760, 35, 'Cruz de Pineda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24761, 35, 'Costa Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24762, 35, 'Caserones Los'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24763, 35, 'Cendro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24764, 35, 'Costa Teguise'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24765, 35, 'Gamonal San Jose'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24766, 35, 'Los Giles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24767, 35, 'Las Goteras Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24768, 35, 'Garcia Ruiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24769, 35, 'Goleta La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24770, 35, 'El Golfo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24771, 35, 'Los Hornos del Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24772, 35, 'Hoya del Gamonal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24773, 35, 'Los Hoyos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24774, 35, 'Jacomar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24775, 35, 'Juan Xxiii'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24776, 35, 'Los Juagarzos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24777, 35, 'Llano Blanco Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24778, 35, 'Las Mesas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24779, 35, 'Las Marciegas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24780, 35, 'Marzagan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24781, 35, 'Oasis El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24782, 35, 'La Pedrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24783, 35, 'Playa de Salinetas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24784, 35, 'Puerto de Las Nieves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24785, 35, 'Patalavaca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24786, 35, 'La Playa de Tauro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24787, 35, 'La Playa de Veneguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24788, 35, 'Playa del Ingles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24789, 35, 'El Cable'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24790, 35, 'Quintanilla Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24791, 35, 'Las Remudas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24792, 35, 'Rosiana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24793, 35, 'Rosiana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24794, 35, 'San Andres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24795, 35, 'San Francisco de Paula'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24796, 35, 'Santidad'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24797, 35, 'San Fernando Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24798, 35, 'Tara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24799, 35, 'Trapiche Isla Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24800, 35, 'Trasmontaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24801, 35, 'Trujillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24802, 35, 'Tecen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24803, 35, 'Tasartico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24804, 35, 'Valle de Los Nueve'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24805, 35, 'Visvique'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24806, 35, 'Vecindad de Enfrente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24807, 35, 'Vegas Las'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24808, 35, 'Caada-Honda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24809, 35, 'Casa Roman'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24810, 35, 'Costa Ayala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24811, 35, 'Almatriche Bajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24812, 35, 'Cuevas Blancas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24813, 35, 'Dragonal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24814, 35, 'Era Cardon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24815, 35, 'El Fondillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24816, 35, 'Hoya Andrea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24817, 35, 'Lomo Blanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24818, 35, 'Lomo Los Frailes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24819, 35, 'Las Majadillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24820, 35, 'La Matula'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24821, 35, 'Las Mesas Altas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24822, 35, 'Las Mesas Bajas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24823, 35, 'Las Perreras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24824, 35, 'Piletas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24825, 35, 'El Pintor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24826, 35, 'El Salto del Negro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24827, 35, 'El Secadero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24828, 35, 'Siete Puertas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24829, 35, 'Suerte La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24830, 35, 'Tafira Baja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24831, 35, 'Las Torres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24832, 35, 'El Zardo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24833, 35, 'Monte Lentiscal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24834, 35, 'Portales Castillos Los'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24835, 35, 'Barranco de Las Madres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24836, 35, 'Cortijo El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24837, 35, 'Los Dolores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24838, 35, 'Las Pellas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24839, 35, 'Risco El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24840, 35, 'San Anton'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24841, 35, 'Zumacal El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24842, 35, 'Cabo Verde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24843, 35, 'Carreteria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24844, 35, 'Doramas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24845, 35, 'Los Tiles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24846, 35, 'Guanchia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24847, 35, 'San Isidro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24848, 35, 'Barranquillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24849, 35, 'Carpinteras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24850, 35, 'San Jose'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24851, 35, 'Vega de Enmedio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24852, 35, 'Aserrador El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24853, 35, 'Casas del Lomo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24854, 35, 'La Higuerilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24855, 35, 'Lomo de Los Santos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24856, 35, 'Los Manantiales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24857, 35, 'Camaretas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24858, 35, 'Corte La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24859, 35, 'Risco Prieto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24860, 35, 'Aeropuerto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24861, 35, 'Casas Benitez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24862, 35, 'Cuesta Ramon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24863, 35, 'Mercalaspalmas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24864, 35, 'Jinamar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24865, 35, 'Aeropuerto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24866, 35, 'Los Arenales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24867, 35, 'Calero El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24868, 35, 'Callejon del Castillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24869, 35, 'La Colomba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24870, 35, 'Goteras Las'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24871, 35, 'Jerez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24872, 35, 'Lomo de la Herradura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24873, 35, 'Lomo del Cementerio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24874, 35, 'Marpequea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24875, 35, 'La Matanza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24876, 35, 'Montaa de Las Palmas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24877, 35, 'Palmital El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24878, 35, 'Piletillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24879, 35, 'Jinamar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24880, 35, 'San Antonio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24881, 35, 'San Isidro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24882, 35, 'San Jose de Las Longueras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24883, 35, 'Cardon El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24884, 35, 'Ceron El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24885, 35, 'Colmenar Alto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24886, 35, 'Hoya de San Gregorio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24887, 35, 'Barranco de Juan Ingles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24888, 35, 'Lomo Fregenal El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24889, 35, 'Llano Frailes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24890, 35, 'Mocanes Los'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24891, 35, 'El Montaon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24892, 35, 'Moradas Las'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24893, 35, 'Vueltas Las'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24894, 35, 'Los Berrazales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24895, 35, 'Casas del Camino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24896, 35, 'Guayedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24897, 35, 'Llanos Los'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24898, 35, 'San Pedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24899, 35, 'Casa Job'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24900, 35, 'Pico Viento de Las Palmas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24901, 35, 'Los Quintanas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24902, 35, 'Artejevez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24903, 35, 'Playa de Tasarte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24904, 35, 'Barranquillo Frio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24905, 35, 'El Calabozo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24906, 35, 'El Junquillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24907, 35, 'Mondragones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24908, 35, 'Paso Maria de Los Santos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24909, 35, 'Verdejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24910, 35, 'Pino Gordo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24911, 35, 'La Banda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24912, 35, 'Los Corralillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24913, 35, 'Vargas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24914, 35, 'Playa del Burrero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24915, 35, 'Los Almacigos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24916, 35, 'Aquamarina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24917, 35, 'Las Burrillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24918, 35, 'El Caidero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24919, 35, 'Canarios I'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24920, 35, 'Canarios Ii-Iii-Iv-V'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24921, 35, 'Casillas Las'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24922, 35, 'El Cercado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24923, 35, 'Cornisa del Suroeste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24924, 35, 'Cortadores de Puerto Rico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24925, 35, 'Filipinas Las'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24926, 35, 'Hornillo El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24927, 35, 'El Horno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24928, 35, 'Horno de la Teja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24929, 35, 'La Humbridilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24930, 35, 'Lomoquiebre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24931, 35, 'Llanos Los'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24932, 35, 'Molino Viento El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24933, 35, 'Los Navarros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24934, 35, 'Palmito'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24935, 35, 'Pasitos Los'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24936, 35, 'Pie Cuesta El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24937, 35, 'Platero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24938, 35, 'La Playa del Cura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24939, 35, 'Pueblo de Tauro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24940, 35, 'La Rosilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24941, 35, 'Tabaibales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24942, 35, 'Taurito'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24943, 35, 'La Verga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24944, 35, 'El Zao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24945, 35, 'Agualatente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24946, 35, 'Berriel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24947, 35, 'La Florida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24948, 35, 'Hoya Garcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24949, 35, 'Lomito de Taidia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24950, 35, 'Lomo de la Palma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24951, 35, 'Llanillo El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24952, 35, 'Matorral El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24953, 35, 'Montaa La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24954, 35, 'Sequero El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24955, 35, 'Los Sitios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24956, 35, 'Veril El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24957, 35, 'Cruce El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24958, 35, 'Las Lagunas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24959, 35, 'El Morisco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24960, 35, 'Parral Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24961, 35, 'La Rueda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24962, 35, 'La Sorrueda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24963, 35, 'Argana Baja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24964, 35, 'Maneje'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24965, 35, 'Charco Palo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24966, 35, 'Aeropuerto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24967, 35, 'Las Cabreras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24968, 35, 'Las Caletas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24969, 35, 'Island Homes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24970, 35, 'Las Laderas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24971, 35, 'Urb. Oasis de Nazaret'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24972, 35, 'Los Mojones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24973, 35, 'Vega de Tegoyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24974, 35, 'La Santa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24975, 35, 'Playa Quemada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24976, 35, 'Urbanizacion Montaa Baja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24977, 35, 'Casillas de Morales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24978, 35, 'Cardon (Tuineje)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24979, 35, 'El Charco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24980, 35, 'Rosas de Los James'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24981, 35, 'Teguitar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24982, 35, 'Los Estancos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24983, 35, 'Puerto Lajas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24984, 35, 'Hoyas del Cavadero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24985, 35, 'Lomo del Peon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24986, 35, 'Palmito'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24987, 35, 'Palo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24988, 35, 'Casas Blancas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24989, 35, 'Casas Blancas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24990, 35, 'Barranco del Pinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24991, 35, 'El Estanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24992, 35, 'Artedara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24993, 35, 'Ingenio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24994, 35, 'Montaa Blanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24995, 35, 'San Jose Alamo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24996, 35, 'Las Rosas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24997, 35, 'El Castillo -Antigua-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24998, 35, 'Urb. Caada del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (24999, 35, 'San Fernando -Maspalomas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25000, 35, 'Parque Holandes'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25001, 35, 'Playa de Arinaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25002, 35, 'Esquinzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25003, 35, 'Los Portales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25004, 35, 'El Tablero -Maspalomas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25005, 35, 'Jandia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25006, 35, 'Las Palmas de Gran Canaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25007, 35, 'Telde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25008, 35, 'Sardina -Santa Lucia Tirajana-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25009, 35, 'Tiagua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25010, 35, 'La Atalaya -Santa Brigida-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25011, 35, 'Palmas Naval, Las'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25012, 35, 'Sardina -Santa Lucia Tirajana-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25013, 35, 'Fuerteventura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25014, 35, 'Caleta de Caballo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25015, 35, 'Valderrama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25016, 35, 'Costa Antigua (Fuerteventura)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25017, 35, 'San Francisco Javier -Arucas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25018, 35, 'Costa Calma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25019, 35, 'Hoya del Pozo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25020, 35, 'La Galera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25021, 35, 'Urb.Montalex(San Lorenzo)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25022, 35, 'Arguineguin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25023, 35, 'Caleta de Fuste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25024, 35, 'Fuerteventura Jandia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25025, 36, 'Vigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25026, 36, 'Arcade -Santiago P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25027, 36, 'Seixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25028, 36, 'Baiona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25029, 36, 'A Rua Nova de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25030, 36, 'Bueu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25031, 36, 'Caldas de Reis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25032, 36, 'Caldelas -San Martin P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25033, 36, 'Cambados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25034, 36, 'Camposancos -Santa Isabel P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25035, 36, 'Cangas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25036, 36, 'Canido -Vigo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25037, 36, 'A Caiza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25038, 36, 'Combarro -San Roque P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25039, 36, 'Cuntis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25040, 36, 'A Estrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25041, 36, 'Gondomar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25042, 36, 'Goian -San Cristobal P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25043, 36, 'O Grove'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25044, 36, 'A Guarda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25045, 36, 'Guillarey -San Mamed P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25046, 36, 'Lalin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25047, 36, 'Marin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25048, 36, 'Moaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25049, 36, 'Mondariz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25050, 36, 'Mondariz-Balneario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25051, 36, 'As Neves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25052, 36, 'Nigran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25053, 36, 'Panxon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25054, 36, 'Pontevedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25055, 36, 'O Porrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25056, 36, 'Ponteareas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25057, 36, 'Pontecesures'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25058, 36, 'Raxo -San Gregorio P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25059, 36, 'A Ramallosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25060, 36, 'Redondela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25061, 36, 'O Rosal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25062, 36, 'Salvaterra -San Lorenzo P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25063, 36, 'Sanxenxo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25064, 36, 'Silleda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25065, 36, 'Soutomaior'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25066, 36, 'Estribela -Lourizan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25067, 36, 'Tomio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25068, 36, 'Tui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25069, 36, 'Vigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25070, 36, 'Vilagarcia de Arousa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25071, 36, 'Vilaxoan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25072, 36, 'Vilanova de Arousa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25073, 36, 'A Illa de Arousa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25074, 36, 'Caldelas -Ponte-Caldelas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25075, 36, 'Salceda de Caselas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25076, 36, 'Catoira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25077, 36, 'Bandeira -Silleda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25078, 36, 'Pedreira -A Lama-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25079, 36, 'Crecente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25080, 36, 'Chan -Carballedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25081, 36, 'Sacos San Xurxo Cotobade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25082, 36, 'Aguasantas Cotobade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25083, 36, 'Borela -San Martio P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25084, 36, 'O Coto -Cotobade-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25085, 36, 'Covas -Cotobade-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25086, 36, 'Igrexario -Loureiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25087, 36, 'Martices -Cotobade-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25088, 36, 'Viascon -Santiago P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25089, 36, 'O Val -Cotobade-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25090, 36, 'Sacos Santa Maria Cotobade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25091, 36, 'Vilanova -Cotobade-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25092, 36, 'Lameiro -Campo Lameiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25093, 36, 'O Covelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25094, 36, 'Fornelos de Montes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25095, 36, 'Portas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25096, 36, 'Maceira -San Salvador P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25097, 36, 'Portonovo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25098, 36, 'Valga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25099, 36, 'Barciademera -San Martio P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25100, 36, 'Moraa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25101, 36, 'Poio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25102, 36, 'Vilasobroso -San Martin P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25103, 36, 'Prado -San Martio A.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25104, 36, 'Mos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25105, 36, 'A Barcia -Meis-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25106, 36, 'Ribadumia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25107, 36, 'Mosteiro -Meis-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25108, 36, 'O Redondelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25109, 36, 'San Antonio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25110, 36, 'Cadron -San Esteban A.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25111, 36, 'Casas Novas -Lalin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25112, 36, 'Agolada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25113, 36, 'Castro -Dozon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25114, 36, 'Cobas -Lalin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25115, 36, 'Maceiras -San Remigio A.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25116, 36, 'Oia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25117, 36, 'Porto -Oia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25118, 36, 'Pedornes -San Mamed P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25119, 36, 'Pazos de Borben'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25120, 36, 'Covas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25121, 36, 'Ponte Dena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25122, 36, 'Albarellos -Santa Maria A.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25123, 36, 'Rodeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25124, 36, 'Tecedeiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25125, 36, 'Peroselo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25126, 36, 'Vilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25127, 36, 'Forcarei'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25128, 36, 'Cerdedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25129, 36, 'Merza -Santa Maria P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25130, 36, 'Vila de Cruces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25131, 36, 'Forzanes Pontecaldelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25132, 36, 'Botos -San Xoan P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25133, 36, 'Ponte Sampaio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25134, 36, 'Muimenta -San Lorenzo P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25135, 36, 'Cima de Vila -Portas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25136, 36, 'Curras -Romay-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25137, 36, 'Estacion -Portas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25138, 36, 'Vilanovia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25139, 36, 'Armenteira -Santa Maria P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25140, 36, 'Alvite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25141, 36, 'Cabo Da Raa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25142, 36, 'Campio -Pazos de Borben-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25143, 36, 'Cuartos de Borben'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25144, 36, 'Fraga Do Rei -Pazos de Borben-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25145, 36, 'A Ermida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25146, 36, 'Igrexa -Amoedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25147, 36, 'Iglesia -Dozon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25148, 36, 'Vilaboa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25149, 36, 'Castros -Cerdedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25150, 36, 'Foxo Corvelle O'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25151, 36, 'Praza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25152, 36, 'Codeseda -San Xurxo P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25153, 36, 'Vea A Estrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25154, 36, 'Sestelo -Vilanova de Arousa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25155, 36, 'Feria -Rodeiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25156, 36, 'Portela -San Cristobal P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25157, 36, 'Campo -Oia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25158, 36, 'Os Loureiros -Oia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25159, 36, 'Loureza -San Mamed P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25160, 36, 'Soutelo -Forcarei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25161, 36, 'Rozados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25162, 36, 'Cruceiro -Forcarei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25163, 36, 'Cachafeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25164, 36, 'Vilar -Forcarei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25165, 36, 'Presqueiras Forcarei'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25166, 36, 'Sixto -Forcarei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25167, 36, 'Iglesia -Dosiglesias-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25168, 36, 'Baladelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25169, 36, 'Cotio -Forcarei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25170, 36, 'San Bartolome -Forcarei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25171, 36, 'Lusquios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25172, 36, 'Pazo Pontevedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25173, 36, 'Pazos Pontevedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25174, 36, 'As Pontes -Bora-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25175, 36, 'A Ruibal -Salcedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25176, 36, 'Sobral Pontevedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25177, 36, 'Tilve Bouza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25178, 36, 'Touceda -Alba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25179, 36, 'Covadaspera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25180, 36, 'Cabaleiro Pontevedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25181, 36, 'O Arco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25182, 36, 'O Corval'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25183, 36, 'A Igrexa -Xeve-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25184, 36, 'Ons'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25185, 36, 'Artoo -Santalla P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25186, 36, 'Barrio Do Carmen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25187, 36, 'Laxe -Agolada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25188, 36, 'Giesta A Lama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25189, 36, 'Ramallal -A Lama-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25190, 36, 'Meirol -San Andres P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25191, 36, 'Congostra -O Covelo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25192, 36, 'Cruceiro -Oliveira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25193, 36, 'Lourizan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25194, 36, 'Fonte Da Pedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25195, 36, 'Hermida -O Covelo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25196, 36, 'Junqueiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25197, 36, 'Nogueira -Crecente-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25198, 36, 'Portocortias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25199, 36, 'Pousa -Ribeira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25200, 36, 'Candean'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25201, 36, 'Sobral Y Barreira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25202, 36, 'Souto Y Outeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25203, 36, 'Tarrio -Vilanova de Arousa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25204, 36, 'Touron -Santa Maria P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25205, 36, 'Vilarchan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25206, 36, 'Cotobade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25207, 36, 'Casal -Ponteareas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25208, 36, 'Seca -Ponteareas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25209, 36, 'Cruceiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25210, 36, 'Iglesia Ponteareas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25211, 36, 'Soutio -Ponteareas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25212, 36, 'Bargiela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25213, 36, 'Puo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25214, 36, 'Outeiro Fernando'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25215, 36, 'Portela -Mos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25216, 36, 'Espieira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25217, 36, 'Gandon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25218, 36, 'O Pieiro -Aldan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25219, 36, 'San Cibran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25220, 36, 'O Seixo -Cangas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25221, 36, 'Hio -San Andres P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25222, 36, 'Fornelos -O Rosal-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25223, 36, 'Martin -O Rosal-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25224, 36, 'Marzan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25225, 36, 'Medas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25226, 36, 'Pancenteo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25227, 36, 'Cunchada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25228, 36, 'Castro A Estrada Castro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25229, 36, 'Moucho -Vinseiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25230, 36, 'Sequeros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25231, 36, 'Vila Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25232, 36, 'Acua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25233, 36, 'Balteiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25234, 36, 'Cachofes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25235, 36, 'Domedio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25236, 36, 'Pedre -San Estebo P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25237, 36, 'Campos O Grove'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25238, 36, 'Andras -San Lorenzo P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25239, 36, 'Salcidos -San Lorenzo P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25240, 36, 'Cobres Vilaboa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25241, 36, 'Muio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25242, 36, 'Cruceiro -O Rosal-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25243, 36, 'Igrexa -As Eiras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25244, 36, 'Paradela -O Rosal-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25245, 36, 'Pias -O Rosal-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25246, 36, 'Franqueira -Santa Maria P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25247, 36, 'Gorgullon -Caldas de Reis-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25248, 36, 'Sequeiros -Caldas de Reis-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25249, 36, 'Valeixe -Santa Cristina P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25250, 36, 'Gandara -Mos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25251, 36, 'Outeiro -Mos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25252, 36, 'Arcos Cuntis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25253, 36, 'Cequeril -Santa Maria P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25254, 36, 'Couselo -San Miguel A.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25255, 36, 'A Igrexa-Pieiro San Mamed A.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25256, 36, 'Novas -Cuntis-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25257, 36, 'San Ildefonso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25258, 36, 'Teao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25259, 36, 'Pardellas -Mos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25260, 36, 'Roublin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25261, 36, 'Abades -Santa Maria P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25262, 36, 'Agrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25263, 36, 'Ansemil -San Pedro A.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25264, 36, 'Aragonza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25265, 36, 'Barro -Parada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25266, 36, 'Barro -Siador-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25267, 36, 'Cabodevila -Silleda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25268, 36, 'O Campos -Pieiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25269, 36, 'Castrovite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25270, 36, 'Xestoso -Santa Maria P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25271, 36, 'Goris'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25272, 36, 'Iglesia -Moalde-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25273, 36, 'Iglesia -Rellas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25274, 36, 'Lazara -Refoxos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25275, 36, 'Medialdea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25276, 36, 'Oleiros -San Miguel A.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25277, 36, 'Portio -Silleda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25278, 36, 'Reboredo -Silleda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25279, 36, 'Reguenga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25280, 36, 'Carballoso -Ribadumia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25281, 36, 'Carrasqueira -Ribadumia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25282, 36, 'Leiromean'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25283, 36, 'Puente Arnelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25284, 36, 'Casardoo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25285, 36, 'Rosende -Silleda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25286, 36, 'Cardigonde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25287, 36, 'Eirexe -Graba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25288, 36, 'Escuadro -San Salvador P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25289, 36, 'Freixeiro -Laro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25290, 36, 'Iglesia -Breixa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25291, 36, 'Iglesia -Cabeiras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25292, 36, 'Cequelinos -San Miguel P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25293, 36, 'Cruceiro -Barcela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25294, 36, 'Hermida -Arbo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25295, 36, 'San Juan -Arbo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25296, 36, 'Eidos de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25297, 36, 'Campo Redondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25298, 36, 'Carballeira -Nigoi-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25299, 36, 'Os Casares -A Estrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25300, 36, 'Curantes -San Miguel P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25301, 36, 'A Devesa A Estrada Remesar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25302, 36, 'Igrexa -Vea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25303, 36, 'A Igrexa -Rubin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25304, 36, 'Cruz -A Estrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25305, 36, 'Mota -A Estrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25306, 36, 'A Mouteira -A Estrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25307, 36, 'Pepe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25308, 36, 'Pernaviva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25309, 36, 'A Pia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25310, 36, 'O Pieiro -Vea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25311, 36, 'Remirans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25312, 36, 'San Pedro -A Estrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25313, 36, 'Santa Vaia -A Estrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25314, 36, 'Sesto E Fondo Da Vila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25315, 36, 'Soutio -A Estrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25316, 36, 'Tabeiros -Santiago P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25317, 36, 'Viladafonso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25318, 36, 'Aldea Grande -Aguions-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25319, 36, 'Carbia -Vea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25320, 36, 'Castrelo de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25321, 36, 'As Covas -A Estrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25322, 36, 'Cruces -A Estrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25323, 36, 'A Cruz -Cira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25324, 36, 'Fontenlo -Couso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25325, 36, 'O Outeiro -Lagartons-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25326, 36, 'Parada A Estrada Parada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25327, 36, 'Pieiro -Cora-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25328, 36, 'Quinteiro de Arca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25329, 36, 'Sabucedo -San Lourenzo P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25330, 36, 'Xesteira -Cotobade-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25331, 36, 'Cernadelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25332, 36, 'Codesas -Forcarei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25333, 36, 'Portela de Lamas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25334, 36, 'Filloy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25335, 36, 'Graa de Umia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25336, 36, 'Lerce'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25337, 36, 'Masgalan de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25338, 36, 'Quintillan -San Pedro P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25339, 36, 'Rabadeiras -Forcarei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25340, 36, 'Taboadelo Forcarey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25341, 36, 'Valladares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25342, 36, 'Valias -Forcarei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25343, 36, 'Paredes -Vilaboa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25344, 36, 'Godoi-Carricova E Fondevila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25345, 36, 'A Portela -Codeseda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25346, 36, 'Alende -Campo Lameiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25347, 36, 'Armonda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25348, 36, 'Cerdeiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25349, 36, 'Cimadevila -Campo Lameiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25350, 36, 'Couso -San Cristobal A.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25351, 36, 'Laxe -Campo Lameiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25352, 36, 'Muimenta -Santa Maria P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25353, 36, 'Painceiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25354, 36, 'Praderrei'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25355, 36, 'San Martin -Caldas de Reis-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25356, 36, 'Serrallo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25357, 36, 'Chacente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25358, 36, 'Fuentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25359, 36, 'Outeiro -Mougas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25360, 36, 'Balboa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25361, 36, 'Carballo Do Pazo -Vigo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25362, 36, 'Caritel -Santa Maria P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25363, 36, 'Amorin -San Juan P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25364, 36, 'Casalpaio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25365, 36, 'Corpio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25366, 36, 'Costa -Moaa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25367, 36, 'Iglesia -Millerada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25368, 36, 'Igrexa -Barcala-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25369, 36, 'Igrexa -Noceda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25370, 36, 'Igrexa -Tebra-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25371, 36, 'Lubian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25372, 36, 'Monte -Curras-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25373, 36, 'Montillon de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25374, 36, 'Renda E Traspedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25375, 36, 'Romariz -Soutomaior-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25376, 36, 'Souto -Barcala-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25377, 36, 'Torre -Vilatuxe-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25378, 36, 'Torron -Tomio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25379, 36, 'Vendanova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25380, 36, 'Vilacrespo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25381, 36, 'Vilamean -San Bento P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25382, 36, 'Vilardematos -Forcadela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25383, 36, 'Vistalegre -Lalin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25384, 36, 'San Miguel -Forcarei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25385, 36, 'Adelan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25386, 36, 'Cruceiro -A Estrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25387, 36, 'Fontelas -Rodeiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25388, 36, 'Lagoa -Agolada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25389, 36, 'Trascastro -Agolada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25390, 36, 'Albergueria -Moraa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25391, 36, 'Asperelo -San Martin A.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25392, 36, 'A Laxe -Moraa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25393, 36, 'San Miguel -Gurgueiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25394, 36, 'San Salvador -Rodeiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25395, 36, 'Souto -Moraa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25396, 36, 'Verlas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25397, 36, 'Aldea de Arriba -Prado Canda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25398, 36, 'Bugaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25399, 36, 'Cascardoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25400, 36, 'Costa -Castelanes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25401, 36, 'Prado -San Salvador P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25402, 36, 'Couto -Mondariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25403, 36, 'Lougares -San Felix P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25404, 36, 'Graa Covelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25405, 36, 'Iglesia -Pieiro San Xoan P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25406, 36, 'Costa -Godones-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25407, 36, 'Cancelo -Baiona-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25408, 36, 'Lourido -O Covelo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25409, 36, 'Rio -Baredo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25410, 36, 'Bouzas -A Caiza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25411, 36, 'Cantalarrana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25412, 36, 'Casco Salvaterra Mio Fornelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25413, 36, 'Castieira -Redondela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25414, 36, 'Castros -Mos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25415, 36, 'Cores -Catoira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25416, 36, 'Figueroa -San Martio P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25417, 36, 'Folgoso -A Caiza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25418, 36, 'Gondar -Catoira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25419, 36, 'Iglesia -Mos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25420, 36, 'A Igrexa -Negros-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25421, 36, 'Insua -Cerdedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25422, 36, 'Loureiro -Cerdedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25423, 36, 'Porto-Cabeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25424, 36, 'Saramagoso -Redondela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25425, 36, 'Soutoxuste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25426, 36, 'O Souto -Redondela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25427, 36, 'Tarrio -Catoira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25428, 36, 'Tomonde -Santa Maria P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25429, 36, 'Vilalen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25430, 36, 'Vilar -Cerdedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25431, 36, 'Bouzon -Sanxenxo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25432, 36, 'Aios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25433, 36, 'Candean de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25434, 36, 'A Igrexa -Vilar de Infesta-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25435, 36, 'Covelo -Poio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25436, 36, 'Riodama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25437, 36, 'Aren'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25438, 36, 'Castro -Gondomar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25439, 36, 'Galisteo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25440, 36, 'Gundian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25441, 36, 'Lousado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25442, 36, 'Domaio -San Pedro P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25443, 36, 'Soutelo -San Vicente P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25444, 36, 'Panascal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25445, 36, 'Alen -Pazos de Borben-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25446, 36, 'Eidovello -Ribadetea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25447, 36, 'Gandara -Bugarin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25448, 36, 'Oliveira -Arnoso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25449, 36, 'Portelia -Oliveira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25450, 36, 'Souto -Ribadetea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25451, 36, 'Costa -Salvaterra de Mio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25452, 36, 'Alxan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25453, 36, 'Aranza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25454, 36, 'O Cabalo -Pazos de Borben-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25455, 36, 'Confurco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25456, 36, 'Cortellas -Soutomaior-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25457, 36, 'Mosteiro -Pazos de Borben-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25458, 36, 'As Muras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25459, 36, 'Curro -Santa Maria P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25460, 36, 'Padron -Redondela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25461, 36, 'Pereiro -Ginzo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25462, 36, 'Picoto -Areas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25463, 36, 'Portela -Ginzo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25464, 36, 'Pousio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25465, 36, 'San Marcos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25466, 36, 'Sequeiros -Pazos de Borben-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25467, 36, 'Souto -Ginzo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25468, 36, 'Estacion de Portela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25469, 36, 'A Ameixoada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25470, 36, 'Burguete -Fiolledo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25471, 36, 'Capilla -Quintela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25472, 36, 'Feira -Salvaterra de Mio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25473, 36, 'A Iglesia -Porto-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25474, 36, 'Rocha -Ponteareas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25475, 36, 'Estivada -Mos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25476, 36, 'Latiza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25477, 36, 'Moreira -Soutomaior-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25478, 36, 'Outeiro de Reis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25479, 36, 'Casas Novas -Baia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25480, 36, 'Casco -Mondariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25481, 36, 'Castro -Ponteareas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25482, 36, 'Cortellas -Ponteareas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25483, 36, 'Couso -Ponteareas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25484, 36, 'Curras Salvaterra Mio Arantei'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25485, 36, 'Chan de Gandara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25486, 36, 'Chan -Mondariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25487, 36, 'Feria Nueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25488, 36, 'Hermida -Pias-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25489, 36, 'Lomba -Fozara-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25490, 36, 'Pallares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25491, 36, 'Parada -Ponteareas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25492, 36, 'Pedreira -Ponteareas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25493, 36, 'Portal Adentro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25494, 36, 'Portela -Oliveira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25495, 36, 'Portela -Padrones-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25496, 36, 'Quinta -Agolada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25497, 36, 'Quintela -Santa Comba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25498, 36, 'Ramallal -Ponteareas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25499, 36, 'Ravelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25500, 36, 'Sampaio -Agolada-'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25501, 36, 'Sangorza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25502, 36, 'Vigaira -Ponteareas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25503, 36, 'Vias -As Neves-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25504, 36, 'Iglesia As Neves Rubios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25505, 36, 'Barreiro -Ponteareas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25506, 36, 'Armada -Mondariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25507, 36, 'Barro -Mondariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25508, 36, 'Buenos Aires'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25509, 36, 'Cima'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25510, 36, 'Coutada -Ponteareas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25511, 36, 'Covas -Forcarei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25512, 36, 'Chan de Espio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25513, 36, 'Dadin -Sanxenxo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25514, 36, 'Eirado -Ponteareas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25515, 36, 'Fraga Do Rei -Salvaterra Mio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25516, 36, 'Lama -Crecente-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25517, 36, 'Nogueiro -Salvaterra de Mio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25518, 36, 'Pouso -Salvaterra de Mio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25519, 36, 'Puzo -Ponteareas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25520, 36, 'Quintans -Mondariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25521, 36, 'Regueiro -Crecente-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25522, 36, 'A Ribeira A Estrada Ribeira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25523, 36, 'San Roque -Leirado-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25524, 36, 'Santo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25525, 36, 'Sijas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25526, 36, 'Souto -Gulanes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25527, 36, 'Urcela -Cristiade-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25528, 36, 'Barja -Ponteareas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25529, 36, 'Ganade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25530, 36, 'Granxa -Baiona-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25531, 36, 'Portelia -Cristiade-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25532, 36, 'Urgal -Baiona-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25533, 36, 'Alemparte -Ponteareas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25534, 36, 'Iglesario O'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25535, 36, 'Pintens'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25536, 36, 'Sobrans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25537, 36, 'Carreira -Ponteareas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25538, 36, 'Herbello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25539, 36, 'Portelia -Bugarin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25540, 36, 'Rao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25541, 36, 'Herville'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25542, 36, 'Sabrexo -Santa Maria A.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25543, 36, 'Cernadela -Mondariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25544, 36, 'Chaleira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25545, 36, 'Chan Da Iglesia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25546, 36, 'Arcade de Riba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25547, 36, 'Campo Do Mouro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25548, 36, 'Casal -Carbia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25549, 36, 'Costa -Ribarteme-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25550, 36, 'Freixo -San Roque P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25551, 36, 'Iglesia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25552, 36, 'Lores -San Miguel P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25553, 36, 'Pazo Crecente Rebordechan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25554, 36, 'Saboy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25555, 36, 'Sancharredonda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25556, 36, 'Aldea Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25557, 36, 'A Bouza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25558, 36, 'Picon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25559, 36, 'Estacion -As Neves-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25560, 36, 'Carregal-Freixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25561, 36, 'Rego -Crecente-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25562, 36, 'Coaxe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25563, 36, 'Outeirio -Catoira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25564, 36, 'Portocelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25565, 36, 'Souto Da Vila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25566, 36, 'Nerga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25567, 36, 'Limens'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25568, 36, 'Vilanova -Cangas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25569, 36, 'Gonda -A Caiza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25570, 36, 'Devesa de Arriba -Forcarei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25571, 36, 'Carballal -Mondariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25572, 36, 'Carboentes -San Esteban P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25573, 36, 'Fafian -Santiago P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25574, 36, 'San Paio -Rodeiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25575, 36, 'Santa Maria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25576, 36, 'Bouzon -Tomio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25577, 36, 'Salcedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25578, 36, 'Amosa -Camanzo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25579, 36, 'Gres -Santiago P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25580, 36, 'Alemparte -Rodeiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25581, 36, 'Vilela -Santa Maria A.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25582, 36, 'Az -San Cristobal A.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25583, 36, 'Igrexa -Pinzas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25584, 36, 'Mourigas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25585, 36, 'Mosteiro -Barrantes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25586, 36, 'Pedreiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25587, 36, 'Mioteira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25588, 36, 'Iglesia -Liares-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25589, 36, 'Barreiras -Taboexa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25590, 36, 'San Pedro de Batallanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25591, 36, 'Aldea -Cerdeira-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25592, 36, 'Pieiro -As Neves-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25593, 36, 'San Simon -Tui-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25594, 36, 'Souto -Pesegueiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25595, 36, 'Estrada -Malvas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25596, 36, 'Capilla -Sendelle-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25597, 36, 'Negrelos -San Ciprian P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25598, 36, 'Pazo -Taborda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25599, 36, 'Santa Eulalia de Batallans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25600, 36, 'Mourelle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25601, 36, 'Eirexe -Pedroso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25602, 36, 'Padrosos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25603, 36, 'Touzosas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25604, 36, 'Mercado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25605, 36, 'Santa Baia -A Caiza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25606, 36, 'San Isidro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25607, 36, 'Finzans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25608, 36, 'Vilacoba -San Juan P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25609, 36, 'Cillarga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25610, 36, 'Mouro -Ponteareas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25611, 36, 'Mourigade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25612, 36, 'Cabreira -San Miguel P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25613, 36, 'Outeiro -Moraa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25614, 36, 'Moraa -San Lourenzo A.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25615, 36, 'Iglesia Moraa Moraa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25616, 36, 'Bargantans Moraa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25617, 36, 'Comboa -Soutomaior-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25618, 36, 'Aldariz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25619, 36, 'Coruxo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25620, 36, 'Campo -Rodeiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25621, 36, 'Cardalda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25622, 36, 'Castro -Ouzande-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25623, 36, 'Pereiro -Poio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25624, 36, 'San Vicente Do Mar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25625, 36, 'Mosteiro -Gondomar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25626, 36, 'Alende -Moraa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25627, 36, 'San Cibran -Vigo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25628, 36, 'Cerdeirias -Vila de Cruces-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25629, 36, 'Guntin -A Caiza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25630, 36, 'Souto -Mondariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25631, 36, 'Insua -Santa Marina P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25632, 36, 'Vilar -Nigran-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25633, 36, 'Torroa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25634, 36, 'Acevedo -Oia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25635, 36, 'Vincios -Santa Marina P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25636, 36, 'Aragunde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25637, 36, 'Catoira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25638, 36, 'Iglesia -Paramos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25639, 36, 'Souto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25640, 36, 'Ameixeira -San Bernabe P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25641, 36, 'Eidos -Baiona-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25642, 36, 'Villamaior -Vilanova Arousa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25643, 36, 'San Jorge de Sacos(Cotobade)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25644, 36, 'A Escusa -O Porrio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25645, 36, 'Vilaverde -Forcarei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25646, 36, 'Couselo -O Rosal-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25647, 36, 'Casaldrago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25648, 36, 'Casalderrique'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25649, 36, 'Prado -Gondomar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25650, 36, 'Bastida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25651, 36, 'Rosende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25652, 36, 'Coto de Arriba-Caldas de Reis-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25653, 36, 'Regengo -Caldas de Reis-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25654, 36, 'Paradela -Caldas de Reis-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25655, 36, 'Beade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25656, 36, 'Fabeira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25657, 36, 'Busto -Dimo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25658, 36, 'Iglesia -Cesar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25659, 36, 'Souto -Caldas de Reis-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25660, 36, 'Porrans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25661, 36, 'San Blas -Ponteareas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25662, 36, 'Vilario -Poio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25663, 36, 'Paraimas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25664, 36, 'Vilar -Valga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25665, 36, 'Igrexa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25666, 36, 'Asorei -Santa Maria A.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25667, 36, 'A Senra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25668, 36, 'Cebreiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25669, 36, 'Seixido A Lama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25670, 36, 'Cruceiro -A Lama-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25671, 36, 'Ramil -A Lama-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25672, 36, 'San Lorenzo -A Lama-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25673, 36, 'Chain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25674, 36, 'Caneda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25675, 36, 'Carrasqueira -Ponteareas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25676, 36, 'Cedelle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25677, 36, 'Donon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25678, 36, 'Cuia -Cerdedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25679, 36, 'Sanguiedo -Santa Maria A.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25680, 36, 'Moy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25681, 36, 'Traspielas -Santa Maria P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25682, 36, 'Ventin A Berducido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25683, 36, 'Estacas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25684, 36, 'Coruxeira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25685, 36, 'Entrerrios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25686, 36, 'Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25687, 36, 'Brocos -San Miguel P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25688, 36, 'Marcelin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25689, 36, 'Monte -Agolada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25690, 36, 'Axiaz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25691, 36, 'San Ciprian -Gondomar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25692, 36, 'Maceira -San Martio P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25693, 36, 'Cercio -Santiago P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25694, 36, 'Campo -Bermes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25695, 36, 'Gresande -Santiago P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25696, 36, 'Gesta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25697, 36, 'Sello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25698, 36, 'Lebozan -Santiago A.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25699, 36, 'Portomartin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25700, 36, 'Bustelos -Lalin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25701, 36, 'Saborida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25702, 36, 'Cancelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25703, 36, 'Xustans -San Martio P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25704, 36, 'Pereira -Rodeiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25705, 36, 'Guillar -Santa Maria P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25706, 36, 'Cambeses'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25707, 36, 'Agudelo -San Martio P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25708, 36, 'Mane'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25709, 36, 'Valias -Barro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25710, 36, 'Pazo -Moraa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25711, 36, 'Gandara -Caldas de Reis-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25712, 36, 'Duxame -San Miguel A.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25713, 36, 'Susovila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25714, 36, 'Brandariz -San Miguel P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25715, 36, 'Aldea E Fondevila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25716, 36, 'Fonte de Lara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25717, 36, 'Pazos -Agolada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25718, 36, 'Souto A Estrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25719, 36, 'Pregal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25720, 36, 'Ganon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25721, 36, 'Campo -Valga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25722, 36, 'Playa America'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25723, 36, 'Berducido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25724, 36, 'Xeve Pontevedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25725, 36, 'Loimil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25726, 36, 'Monte Figueirido Vilaboa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25727, 36, 'Barro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25728, 36, 'San Vicente Do Mar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25729, 36, 'Meao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25730, 36, 'Vilalonga -San Pedro P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25731, 36, 'Poligono Industrial Vincios Gondomar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25732, 36, 'Amoedo -San Saturnino P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25733, 36, 'Moscoso -San Pelagio P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25734, 36, 'Nespereira -San Martin P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25735, 36, 'Chapela -San Fausto P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25736, 36, 'Veiga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25737, 36, 'Bargiela Bellocan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25738, 36, 'Ermelo -Santiago A.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25739, 36, 'Poio -San Salvador P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25740, 36, 'Campezo Poio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25741, 36, 'Cora -San Miguel P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25742, 36, 'Lerez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25743, 36, 'Baro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25744, 36, 'San Julian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25745, 36, 'A Guarda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25746, 36, 'Os Praceres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25747, 36, 'A Somoza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25748, 36, 'Vinseiro -Santa Cristina P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25749, 36, 'Dornelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25750, 36, 'Fiestras -San Martin P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25751, 36, 'Martixe -San Cristobal A.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25752, 36, 'Ponte Sampaio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25753, 36, 'Pazos Silleda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25754, 36, 'Mougas -Santa Eugenia P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25755, 36, 'Aobre -San Pedro A.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25756, 36, 'Illa Da Toxa -O Grove-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25757, 36, 'Mourentan -San Cristobal P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25758, 36, 'Ferreiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25759, 36, 'Loo -San Mamed P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25760, 36, 'Obra -Santo Tome A.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25761, 36, 'A Estrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25762, 36, 'Aios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25763, 36, 'Alxan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25764, 36, 'Vidueiros -Santa Maria P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25765, 36, 'Vilarello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25766, 36, 'Eidian -Santiago A.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25767, 36, 'Esperante -San Cibrao A.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25768, 36, 'Feira -Salvaterra de Mio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25769, 36, 'Ramil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25770, 36, 'Sesto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25771, 36, 'Val Agolada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25772, 36, 'Alemparte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25773, 36, 'Iglesia Cruz A Estrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25774, 36, 'Barcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25775, 36, 'Bermes Lalin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25776, 36, 'Illa Da Toxa -O Grove-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25777, 36, 'Cabeiras -San Sebastian P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25778, 36, 'Barcela -San Juan P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25779, 36, 'Doade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25780, 36, 'Galegos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25781, 36, 'Ludeiro -Lalin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25782, 36, 'Palmou -San Xoan A.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25783, 36, 'Rodis -San Xiao A.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25784, 36, 'Celamos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25785, 36, 'Val'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25786, 36, 'Veiga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25787, 36, 'Vilanova -San Xoan P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25788, 36, 'Vilatuxe -San Lorenzo P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25789, 36, 'Zobra -Santa Maria P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25790, 36, 'Alceme -Santa Maria P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25791, 36, 'Barro -Mondariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25792, 36, 'Mouriscados -San Ciprian P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25793, 36, 'Sabajanes Mondariz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25794, 36, 'Portacurbo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25795, 36, 'Arbo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25796, 36, 'Oitaven -San Vicente P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25797, 36, 'Antas -Santiago P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25798, 36, 'Barcia -Santa Ana P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25799, 36, 'Anceu Pontecaldelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25800, 36, 'Barbudo Pontecaldelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25801, 36, 'Taboadelo -Santiago P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25802, 36, 'Ribadelouro -Santa Columba P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25803, 36, 'Carracedo -Santa Marina P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25804, 36, 'Sayar -San Esteban P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25805, 36, 'Portela -Santa Eulalia P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25806, 36, 'Cosoirado -Santa Maria P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25807, 36, 'Rebon Moraa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25808, 36, 'Bretoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25809, 36, 'Tenorio -San Pedro P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25810, 36, 'Almofrei Cotobade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25811, 36, 'Silvoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25812, 36, 'Baltar -Ponte-Caldelas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25813, 36, 'Buchabad'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25814, 36, 'Miron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25815, 36, 'Reigosa -Ponte-Caldelas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25816, 36, 'Mosteiro -Dozon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25817, 36, 'Costeira -O Porrio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25818, 36, 'O Casal O Porrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25819, 36, 'Romay -San Xulian P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25820, 36, 'Marcosende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25821, 36, 'Sorrego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25822, 36, 'Lomba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25823, 36, 'Costa -Ferreiroa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25824, 36, 'Borraxeiros -San Cristobo P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25825, 36, 'Belpellos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25826, 36, 'Cutian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25827, 36, 'San Lourenzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25828, 36, 'Cristelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25829, 36, 'Surreira -Petan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25830, 36, 'Lomba -Arbo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25831, 36, 'Filgueira -San Pedro P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25832, 36, 'Berrozo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25833, 36, 'Olives A Estrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25834, 36, 'Caritel -Santa Maria P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25835, 36, 'Cuspedrios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25836, 36, 'Xordedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25837, 36, 'Cerquido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25838, 36, 'Calvelle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25839, 36, 'Famelga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25840, 36, 'A Graa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25841, 36, 'Pazos -Borela-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25842, 36, 'Travazos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25843, 36, 'Paraos -Cotobade-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25844, 36, 'Redonda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25845, 36, 'Vila de Riba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25846, 36, 'Dorna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25847, 36, 'Fentans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25848, 36, 'Loureiros Cotobade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25849, 36, 'Iglesario Pontevedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25850, 36, 'Fontanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25851, 36, 'Mandelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25852, 36, 'Bua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25853, 36, 'Constela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25854, 36, 'Cope'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25855, 36, 'Parada de Achas -Santiago P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25856, 36, 'Formigueiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25857, 36, 'Parada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25858, 36, 'Parada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25859, 36, 'Redondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25860, 36, 'Pieiro -San Xoan P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25861, 36, 'Meira -Santa Eulalia P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25862, 36, 'Albeos -San Juan P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25863, 36, 'Parada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25864, 36, 'Sebil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25865, 36, 'Mesego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25866, 36, 'Magan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25867, 36, 'Amear'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25868, 36, 'Gouxa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25869, 36, 'As Pereiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25870, 36, 'Xubrei'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25871, 36, 'Orazo -San Pedro A.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25872, 36, 'Fixo Forcarei'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25873, 36, 'Malburgo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25874, 36, 'Outeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25875, 36, 'Freaza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25876, 36, 'San Vicente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25877, 36, 'Cristin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25878, 36, 'Basadroa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25879, 36, 'Fraga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25880, 36, 'Vilas -Gondomar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25881, 36, 'Peso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25882, 36, 'Laxedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25883, 36, 'Lamela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25884, 36, 'Laje'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25885, 36, 'Vila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25886, 36, 'Outeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25887, 36, 'Busto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25888, 36, 'Fofan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25889, 36, 'Touton -San Mateo P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25890, 36, 'Fontan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25891, 36, 'Iglesia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25892, 36, 'Calvo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25893, 36, 'Penagrande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25894, 36, 'Carrasqueira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25895, 36, 'Chandebrito'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25896, 36, 'Torrente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25897, 36, 'Fraga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25898, 36, 'Sobreiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25899, 36, 'Esfarrapada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25900, 36, 'Bordel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25901, 36, 'Abelenda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25902, 36, 'Parada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25903, 36, 'Porta Do Conde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25904, 36, 'Briallos -San Cristobal P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25905, 36, 'Barreiro -Ribadumia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25906, 36, 'Laxas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25907, 36, 'Sa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25908, 36, 'Alxen -San Pelayo P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25909, 36, 'Agrela -Salvaterra de Mio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25910, 36, 'Chans As'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25911, 36, 'Pontecia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25912, 36, 'Cimadevila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25913, 36, 'Tebra Tomio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25914, 36, 'Paredes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25915, 36, 'Pedrafita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25916, 36, 'Vilarello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25917, 36, 'Salgueiros -Vila de Cruces-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25918, 36, 'Piloo -Santa Maria P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25919, 36, 'Gandara -Gondomar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25920, 36, 'Castrogudin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25921, 36, 'Devesa Pontevedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25922, 36, 'Sabaris Bispo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25923, 36, 'O Pozo Negro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25924, 36, 'Santa Cristina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25925, 36, 'Gargamala Mondariz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25926, 36, 'Vilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25927, 36, 'Aldea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25928, 36, 'Pigarzos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25929, 36, 'Vrea -Vila de Cruces-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25930, 36, 'San Mauro -Barro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25931, 36, 'Condado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25932, 36, 'Montecelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25933, 36, 'Dozon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25934, 36, 'Graa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25935, 36, 'Pousada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25936, 36, 'Guisande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25937, 36, 'Ribela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25938, 36, 'O Valado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25939, 36, 'Morao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25940, 36, 'Castro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25941, 36, 'Gargallons'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25942, 36, 'Fragas Campo Lameiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25943, 36, 'Parada -Campo Lameiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25944, 36, 'Paredes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25945, 36, 'Lamosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25946, 36, 'Chan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25947, 36, 'Outeiro A Guarda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25948, 36, 'Budio -San Salvador P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25949, 36, 'Couso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25950, 36, 'Viladesuso -San Miguel P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25951, 36, 'Fixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25952, 36, 'Dorvisou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25953, 36, 'Valeixe -Santa Cristina P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25954, 36, 'Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25955, 36, 'Verdugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25956, 36, 'Buxel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25957, 36, 'Caeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25958, 36, 'Castro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25959, 36, 'Acebedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25960, 36, 'Liares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25961, 36, 'Birrete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25962, 36, 'Barosela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25963, 36, 'Trambosrios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25964, 36, 'Picota'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25965, 36, 'Graa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25966, 36, 'Morgade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25967, 36, 'Cequeril -Santa Maria P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25968, 36, 'Quireza -Santo Tome P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25969, 36, 'Triaba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25970, 36, 'Faxil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25971, 36, 'Eirexe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25972, 36, 'A Moa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25973, 36, 'Outeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25974, 36, 'Pazos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25975, 36, 'Quintas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25976, 36, 'Salgueiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25977, 36, 'Sobradelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25978, 36, 'Trasande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25979, 36, 'Trasmonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25980, 36, 'Alperiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25981, 36, 'Carballude'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25982, 36, 'Castieiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25983, 36, 'Castro Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25984, 36, 'Cello -San Martio A.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25985, 36, 'Goleta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25986, 36, 'Muios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25987, 36, 'Parada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25988, 36, 'Rielo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25989, 36, 'Sanxurxo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25990, 36, 'Souto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25991, 36, 'Soutullo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25992, 36, 'Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25993, 36, 'Fofe -San Miguel A-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25994, 36, 'Rial'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25995, 36, 'Carballal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25996, 36, 'Garrida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25997, 36, 'Postemiron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25998, 36, 'Nande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (25999, 36, 'Portavedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26000, 36, 'A Torre'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26001, 36, 'Carboeiro de Francia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26002, 36, 'Abealla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26003, 36, 'Alemparte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26004, 36, 'Pareizo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26005, 36, 'Castro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26006, 36, 'Pazo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26007, 36, 'Quintela Crecente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26008, 36, 'Empiade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26009, 36, 'Extrema'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26010, 36, 'Andon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26011, 36, 'Forno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26012, 36, 'Murada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26013, 36, 'Barrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26014, 36, 'Espieiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26015, 36, 'Grela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26016, 36, 'Muras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26017, 36, 'Bustelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26018, 36, 'Pardalongas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26019, 36, 'Ventin A Fornelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26020, 36, 'Lardoeira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26021, 36, 'Ruiriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26022, 36, 'Chan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26023, 36, 'Merelle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26024, 36, 'Granja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26025, 36, 'Cabo Vila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26026, 36, 'Tallos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26027, 36, 'Alen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26028, 36, 'Lamosa -San Bartolome P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26029, 36, 'Aldea Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26030, 36, 'Lobarias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26031, 36, 'Coiedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26032, 36, 'Guillade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26033, 36, 'Frieira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26034, 36, 'Tixosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26035, 36, 'Mandelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26036, 36, 'Mullerboa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26037, 36, 'Castro -Santa Baia P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26038, 36, 'Vilario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26039, 36, 'Serrapio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26040, 36, 'Fondos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26041, 36, 'Outeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26042, 36, 'Tresaldeas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26043, 36, 'Ameal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26044, 36, 'Fieitoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26045, 36, 'Baltar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26046, 36, 'Cesarios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26047, 36, 'Faramentans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26048, 36, 'Riba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26049, 36, 'Anllada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26050, 36, 'Ducio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26051, 36, 'Piso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26052, 36, 'Soutelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26053, 36, 'Loureiro Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26054, 36, 'Folgar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26055, 36, 'Pena Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26056, 36, 'Quinta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26057, 36, 'Ponte-Ribadil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26058, 36, 'Cerneira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26059, 36, 'Cesantes -San Pedro P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26060, 36, 'Aboal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26061, 36, 'Reariz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26062, 36, 'Avilleira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26063, 36, 'Gabian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26064, 36, 'Rosende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26065, 36, 'Salgueiral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26066, 36, 'Conchidos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26067, 36, 'Armada Navalexo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26068, 36, 'Pastoriza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26069, 36, 'Castieira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26070, 36, 'Couso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26071, 36, 'Valboa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26072, 36, 'Silvan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26073, 36, 'Silvan Meis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26074, 36, 'A Chan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26075, 36, 'Cojo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26076, 36, 'Rubindo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26077, 36, 'Ventosela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26078, 36, 'O Bruido E A Cacharela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26079, 36, 'A Ribeira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26080, 36, 'Ulla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26081, 36, 'Viso de Abaixo E Viso Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26082, 36, 'Sieiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26083, 36, 'Subion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26084, 36, 'Parafita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26085, 36, 'Castrotion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26086, 36, 'Paredes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26087, 36, 'Eirexe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26088, 36, 'Basteiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26089, 36, 'Bemposta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26090, 36, 'San Torcado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26091, 36, 'As Quinta A Estrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26092, 36, 'Tosar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26093, 36, 'Celeiron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26094, 36, 'Parama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26095, 36, 'Fragoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26096, 36, 'Vis de Correa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26097, 36, 'Carboeirio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26098, 36, 'Curro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26099, 36, 'Senra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26100, 36, 'Castrelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26101, 36, 'Vilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26102, 36, 'Candaedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26103, 36, 'Freande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26104, 36, 'Pastoriza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26105, 36, 'A Pena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26106, 36, 'Serrape'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26107, 36, 'Fontao E Vilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26108, 36, 'Outeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26109, 36, 'Reboredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26110, 36, 'Sulago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26111, 36, 'Caseda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26112, 36, 'Taboada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26113, 36, 'Outeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26114, 36, 'Penasgarfas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26115, 36, 'Amedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26116, 36, 'Regufe -Sello-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26117, 36, 'Vilasancho'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26118, 36, 'Carballios -Lalin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26119, 36, 'Paredes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26120, 36, 'Leboro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26121, 36, 'Calque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26122, 36, 'Xabalde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26123, 36, 'Raestras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26124, 36, 'Carretera Lalin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26125, 36, 'Barciela -Lalin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26126, 36, 'Vilario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26127, 36, 'Erbo de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26128, 36, 'Ramil -Lalin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26129, 36, 'Cotarelo -Lalin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26130, 36, 'Castelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26131, 36, 'Sisto Dozon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26132, 36, 'Lagoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26133, 36, 'Pereiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26134, 36, 'Riazo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26135, 36, 'Gallamonde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26136, 36, 'Couso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26137, 36, 'Moa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26138, 36, 'Baroncelle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26139, 36, 'Pardesoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26140, 36, 'Valbon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26141, 36, 'Carballeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26142, 36, 'A Salgosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26143, 36, 'Rabadans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26144, 36, 'Oural'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26145, 36, 'Lenguda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26146, 36, 'Rae de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26147, 36, 'Taboexa -Santa Maria P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26148, 36, 'Batallanes As Neves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26149, 36, 'Crespos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26150, 36, 'Aboal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26151, 36, 'Portela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26152, 36, 'Santa Baya Do Mato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26153, 36, 'Lordelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26154, 36, 'Poe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26155, 36, 'Barbeira la Lama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26156, 36, 'Aluncia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26157, 36, 'Regodobargo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26158, 36, 'Paradela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26159, 36, 'Gabian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26160, 36, 'San Mauro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26161, 36, 'Couago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26162, 36, 'Airoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26163, 36, 'Calvos -San Adrian P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26164, 36, 'Umia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26165, 36, 'San Xusto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26166, 36, 'Portela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26167, 36, 'Devesa Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26168, 36, 'San Xian -O Rosal-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26169, 36, 'O Carballal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26170, 36, 'Paderne'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26171, 36, 'Sambad'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26172, 36, 'A Pedreira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26173, 36, 'Samuelle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26174, 36, 'Casal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26175, 36, 'A Ponte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26176, 36, 'Bouzada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26177, 36, 'Carregal de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26178, 36, 'Tomada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26179, 36, 'Achan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26180, 36, 'Eirexe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26181, 36, 'Os Martores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26182, 36, 'Tarrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26183, 36, 'Costa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26184, 36, 'Castro E San Roque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26185, 36, 'Querguizo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26186, 36, 'Amil -San Mamed P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26187, 36, 'Castro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26188, 36, 'Apedrado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26189, 36, 'O Covelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26190, 36, 'Queimadia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26191, 36, 'Medons'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26192, 36, 'Carrascal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26193, 36, 'Cima Vila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26194, 36, 'Liares -A Lama-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26195, 36, 'Reguengo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26196, 36, 'Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26197, 36, 'Porto de Bouzas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26198, 36, 'Bouzon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26199, 36, 'Sante'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26200, 36, 'Bascuas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26201, 36, 'Barravaite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26202, 36, 'Carderrey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26203, 36, 'Iglesia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26204, 36, 'Vilanova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26205, 36, 'Breixia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26206, 36, 'Arantei -San Pedro P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26207, 36, 'Rae'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26208, 36, 'Barral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26209, 36, 'Folon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26210, 36, 'Bouza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26211, 36, 'A Quinta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26212, 36, 'Canadelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26213, 36, 'A Peralba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26214, 36, 'Rebon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26215, 36, 'Sestelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26216, 36, 'Cernedo -A Lama-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26217, 36, 'A Somoza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26218, 36, 'Lornes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26219, 36, 'Gontad'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26220, 36, 'Casal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26221, 36, 'Rebordelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26222, 36, 'Guillade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26223, 36, 'Laxes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26224, 36, 'Loureiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26225, 36, 'Oleiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26226, 36, 'Curujeiras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26227, 36, 'Ibia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26228, 36, 'Casas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26229, 36, 'Paradela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26230, 36, 'Bustelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26231, 36, 'Sesetelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26232, 36, 'Meda -Silleda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26233, 36, 'Sar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26234, 36, 'Xubin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26235, 36, 'Arosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26236, 36, 'Ladeira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26237, 36, 'Vilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26238, 36, 'Bazar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26239, 36, 'Cascaxide'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26240, 36, 'Basteiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26241, 36, 'Taboadavella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26242, 36, 'Forcas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26243, 36, 'Sobrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26244, 36, 'Hermida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26245, 36, 'Casia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26246, 36, 'Bragaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26247, 36, 'Badoucos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26248, 36, 'Mato Lalin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26249, 36, 'San Martio A Estrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26250, 36, 'Casqueiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26251, 36, 'Fanteira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26252, 36, 'A Chan Cotobade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26253, 36, 'As Lagoas -Cotobade-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26254, 36, 'O Cadabo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26255, 36, 'Santo Domingo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26256, 36, 'Valiaxemia Forcarey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26257, 36, 'A Carballeira A Estrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26258, 36, 'Docabo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26259, 36, 'Padin -Campo Lameiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26260, 36, 'Rozas -Campo Lameiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26261, 36, 'Hermida Vigario Pontevedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26262, 36, 'Salgueiro -Cotobade-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26263, 36, 'Paravedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26264, 36, 'Vilan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26265, 36, 'Portela As Neves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26266, 36, 'Os Vilares -Valga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26267, 36, 'Vilamean -Cuntis-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26268, 36, 'As Abas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26269, 36, 'Quintenla -O Porrio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26270, 36, 'Portela -Oia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26271, 36, 'Aldea -Oia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26272, 36, 'Bonaval'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26273, 36, 'Mabia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26274, 36, 'Cima de Vila -A Caiza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26275, 36, 'Castieira -Petan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26276, 36, 'Aldea A Caiza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26277, 36, 'Almuia -A Caiza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26278, 36, 'Castro de Abaixo -A Caiza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26279, 36, 'Cota'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26280, 36, 'Sibei'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26281, 36, 'Senande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26282, 36, 'Temperan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26283, 36, 'Touzal Do Barreiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26284, 36, 'Trovisca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26285, 36, 'Vilario A Caiza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26286, 36, 'Parte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26287, 36, 'Parada -Dozon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26288, 36, 'Nogueiras -Dozon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26289, 36, 'Mizoite de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26290, 36, 'Vilachan Do Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26291, 36, 'Bravos -Tomio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26292, 36, 'Cruceiro de Santiago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26293, 36, 'Cesar Caldas Reis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26294, 36, 'Asar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26295, 36, 'Calvelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26296, 36, 'Casaldomato -Caldas de Reis-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26297, 36, 'Medelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26298, 36, 'Cotarel -O Covelo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26299, 36, 'Filgueira -Cerdedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26300, 36, 'Liares -Campo Lameiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26301, 36, 'Cima Da Vila -Fornelos de M.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26302, 36, 'O Miron -Salvaterra de Mio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26303, 36, 'Uma -San Andres P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26304, 36, 'Refoxos -Oia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26305, 36, 'Santa Comba -Oia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26306, 36, 'Coto de Abajo -Caldas de Reis-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26307, 36, 'Custeu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26308, 36, 'Fondo de Vila -O Covelo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26309, 36, 'Loureiros -O Covelo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26310, 36, 'Vilanova -O Covelo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26311, 36, 'Fucarelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26312, 36, 'Cuia -Silleda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26313, 36, 'Camporrapado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26314, 36, 'Pedrouzo -Silleda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26315, 36, 'Lama -Silleda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26316, 36, 'Penela -Rodeiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26317, 36, 'Santa Eulalia -Rodeiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26318, 36, 'Torre de Carboentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26319, 36, 'Ourin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26320, 36, 'Faran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26321, 36, 'Barbeitos Rodeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26322, 36, 'Barregallos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26323, 36, 'Barrio Rodeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26324, 36, 'Cristimil -Rodeiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26325, 36, 'Cuarro Do Medio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26326, 36, 'Barrio Vila Cruces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26327, 36, 'Lamego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26328, 36, 'A Pena Vila Cruces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26329, 36, 'Tiraba -Vila de Cruces-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26330, 36, 'Orza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26331, 36, 'Pinlle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26332, 36, 'Abollo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26333, 36, 'Souto Vila Cruces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26334, 36, 'Fervenza -Vila de Cruces-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26335, 36, 'Pazo Vila Cruces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26336, 36, 'Cima de Aldea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26337, 36, 'Camanceiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26338, 36, 'Cirela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26339, 36, 'Guieral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26340, 36, 'Lareo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26341, 36, 'Pousadoiro -Vila de Cruces-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26342, 36, 'Brandomes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26343, 36, 'Pastoriza Vila Cruces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26344, 36, 'Caxide -Vila de Cruces-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26345, 36, 'Corredoira -Vila de Cruces-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26346, 36, 'Saides'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26347, 36, 'Vilapouca -Tui-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26348, 36, 'Vilanova Tui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26349, 36, 'Devesa Tui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26350, 36, 'Cruz -Tui-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26351, 36, 'Ventoselo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26352, 36, 'Grifa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26353, 36, 'Portelia -A Lama-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26354, 36, 'Porto -A Lama-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26355, 36, 'Carreiro -A Lama-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26356, 36, 'Cendon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26357, 36, 'Fentosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26358, 36, 'Cavadosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26359, 36, 'Covas -Cerdedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26360, 36, 'Chamadoira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26361, 36, 'Carballas -Cerdedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26362, 36, 'Quinta -Cerdedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26363, 36, 'Framil -Cerdedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26364, 36, 'Fontenla -Moraa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26365, 36, 'Casias -Agolada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26366, 36, 'Coto -Mondariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26367, 36, 'Outerelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26368, 36, 'Rua -Mondariz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26369, 36, 'Torrados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26370, 36, 'Iglesia Lalin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26371, 36, 'Vilasoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26372, 36, 'Vilar Do Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26373, 36, 'Reguengo -Lalin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26374, 36, 'Portos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26375, 36, 'Somoza -Lalin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26376, 36, 'Ribeira -Lalin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26377, 36, 'Baxan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26378, 36, 'Quintela -Lalin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26379, 36, 'Golmar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26380, 36, 'Vilar de Xestal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26381, 36, 'Sonxil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26382, 36, 'Noceda de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26383, 36, 'Vento -Lalin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26384, 36, 'Toimil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26385, 36, 'Pena -Lalin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26386, 36, 'Borralla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26387, 36, 'Castro de Cabras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26388, 36, 'Lamas Lalin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26389, 36, 'Insua -Lalin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26390, 36, 'Meixomin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26391, 36, 'Barrio Lalin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26392, 36, 'Acebedo -Lalin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26393, 36, 'Cruz -Santiso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26394, 36, 'Des'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26395, 36, 'Chares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26396, 36, 'Mato Lalin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26397, 36, 'Milleiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26398, 36, 'Vilar Lalin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26399, 36, 'Renda E Traspedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26400, 36, 'Orosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26401, 36, 'Vendexa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26402, 36, 'Rocaforte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26403, 36, 'Porto A Estrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26404, 36, 'A Rabeta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26405, 36, 'O Outeiro A Estrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26406, 36, 'Lagos -A Estrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26407, 36, 'Parada A Estrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26408, 36, 'Mesadoiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26409, 36, 'Seixo -A Estrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26410, 36, 'Montillon de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26411, 36, 'Torreboredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26412, 36, 'Pearo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26413, 36, 'Sandan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26414, 36, 'Grela -A Estrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26415, 36, 'Vilaboa A Estrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26416, 36, 'Nodar -A Estrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26417, 36, 'Xustin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26418, 36, 'San Tome -A Estrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26419, 36, 'Gonxar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26420, 36, 'A Somoza A Estrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26421, 36, 'Vilar A Estrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26422, 36, 'Moimenta -A Estrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26423, 36, 'Oca de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26424, 36, 'Requian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26425, 36, 'Ribas A Estrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26426, 36, 'Baltar -A Estrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26427, 36, 'Aldea Grande A Estrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26428, 36, 'Balseiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26429, 36, 'Barro A Estrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26430, 36, 'Bede'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26431, 36, 'Brei'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26432, 36, 'Calvelo -A Estrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26433, 36, 'Campos A Estrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26434, 36, 'As Carballas A Estrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26435, 36, 'Godoi-Carricova E Fondevila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26436, 36, 'Castrelo de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26437, 36, 'Castro-Ramiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26438, 36, 'Chain -A Estrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26439, 36, 'Consolacion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26440, 36, 'Eiriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26441, 36, 'Enviande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26442, 36, 'Escaris'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26443, 36, 'Fonteboa -A Estrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26444, 36, 'Penela -A Estrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26445, 36, 'Prado A Estrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26446, 36, 'Santa Maria -A Estrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26447, 36, 'Marcenlos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26448, 36, 'Pousada A Estrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26449, 36, 'Vilar A Estrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26450, 36, 'O Pazo A Estrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26451, 36, 'Quintas A Estrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26452, 36, 'Sanlouzans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26453, 36, 'San Martin A Estrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26454, 36, 'O Foxo A Estrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26455, 36, 'Frende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26456, 36, 'Frean'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26457, 36, 'Godoi A Estrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26458, 36, 'Golmados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26459, 36, 'Gondomar de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26460, 36, 'Gonten'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26461, 36, 'Eirexe Silleda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26462, 36, 'Cortizada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26463, 36, 'Saborin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26464, 36, 'Failde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26465, 36, 'Borralleiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26466, 36, 'Nogueiras -Lalin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26467, 36, 'Nogueiras -Lalin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26468, 36, 'Pontegil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26469, 36, 'Entrecastrelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26470, 36, 'Fraga Do Rey -Ponteareas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26471, 36, 'Golfariz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26472, 36, 'Serra -Ponteareas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26473, 36, 'Sobreira -Vilaboa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26474, 36, 'Souto Ponteareas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26475, 36, 'A Toxeira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26476, 36, 'Cabanelas -A Estrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26477, 36, 'Bumio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26478, 36, 'Adoufe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26479, 36, 'Vilapouca -A Estrada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26480, 36, 'A Ribeira A Estrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26481, 36, 'Aldea A Caiza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26482, 36, 'Firveda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26483, 36, 'Pioy -O Covelo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26484, 36, 'Croas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26485, 36, 'Carris'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26486, 36, 'Rio de Camba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26487, 36, 'Encostada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26488, 36, 'Cruz Ponteareas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26489, 36, 'Outeiro de Castro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26490, 36, 'Frinjo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26491, 36, 'Atean'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26492, 36, 'Porcallos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26493, 36, 'Fontecabalos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26494, 36, 'Palio de Abaixo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26495, 36, 'Campo Lalin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26496, 36, 'Vilamea -Lalin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26497, 36, 'Penas -Lalin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26498, 36, 'Montouto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26499, 36, 'Rodelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26500, 36, 'Montrigo'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26501, 36, 'Vales -Gresande-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26502, 36, 'Santon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26503, 36, 'Vilamaior -Lalin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26504, 36, 'Porto Do Carrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26505, 36, 'Puxallos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26506, 36, 'Cabreira -Lalin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26507, 36, 'Lodeiron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26508, 36, 'Ois Pequeno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26509, 36, 'Bustelo -Lalin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26510, 36, 'Abeleda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26511, 36, 'Carrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26512, 36, 'Atalaia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26513, 36, 'As Quintas A Estrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26514, 36, 'Quinta Lalin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26515, 36, 'Broullon -Moaa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26516, 36, 'Vilaxoan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26517, 36, 'Ventosela -Forcarei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26518, 36, 'Campos -Forcarei-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26519, 36, 'Iglesia Forcarei'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26520, 36, 'Levoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26521, 36, 'Vila Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26522, 36, 'Vila -Agolada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26523, 36, 'Lamas -Agolada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26524, 36, 'Capela -Agolada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26525, 36, 'Costela Agolada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26526, 36, 'Casal -Fornelos de Montes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26527, 36, 'Soutosico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26528, 36, 'Ois Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26529, 36, 'Outeiro Lalin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26530, 36, 'Loucenzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26531, 36, 'Rivas -Lalin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26532, 36, 'Costoia -Lalin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26533, 36, 'Cima Do Alle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26534, 36, 'Carracedo -Lalin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26535, 36, 'Burgo -Lalin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26536, 36, 'Xar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26537, 36, 'Eido Bajo A Lama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26538, 36, 'Cortegada -A Lama-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26539, 36, 'Carballeira -A Lama-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26540, 36, 'Campelo -A Lama-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26541, 36, 'Aldea A Lama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26542, 36, 'Muios -A Lama-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26543, 36, 'Gaiola -A Lama-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26544, 36, 'Vila de Cruces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26545, 36, 'Souto Vila Cruces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26546, 36, 'Pousada -Vila de Cruces-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26547, 36, 'Penela -Vila de Cruces-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26548, 36, 'Pampin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26549, 36, 'Madrosende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26550, 36, 'Iglesia Vila Cruces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26551, 36, 'Fontarcada Vila Cruces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26552, 36, 'Combarro -Vila de Cruces-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26553, 36, 'Dosmestres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26554, 36, 'Castro Vila Cruces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26555, 36, 'Casal Vila Cruces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26556, 36, 'Capela -Vila de Cruces-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26557, 36, 'Alcobre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26558, 36, 'Vilario -Vila de Cruces-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26559, 36, 'Vilar Silleda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26560, 36, 'Santa Maria -Silleda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26561, 36, 'Regalade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26562, 36, 'Quinteiro -Silleda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26563, 36, 'Porta-Pieiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26564, 36, 'Ouzande -Silleda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26565, 36, 'Outeiro Silleda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26566, 36, 'Outeiro Silleda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26567, 36, 'Laxe -Silleda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26568, 36, 'Framian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26569, 36, 'Cumbraos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26570, 36, 'Costela Silleda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26571, 36, 'Carral -Silleda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26572, 36, 'Arcos -Silleda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26573, 36, 'Andamollo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26574, 36, 'Aldea Grande -Silleda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26575, 36, 'Alfonsios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26576, 36, 'Vilaxuste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26577, 36, 'Trasulfe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26578, 36, 'Suime'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26579, 36, 'Outeiro Rodeiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26580, 36, 'Arcas -Rodeiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26581, 36, 'Fervenza -Rodeiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26582, 36, 'Coreixas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26583, 36, 'Bardelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26584, 36, 'Agrosagro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26585, 36, 'Grobas-Fenteira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26586, 36, 'Caroi Meis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26587, 36, 'Iglesia Lalin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26588, 36, 'Vilar -Vilaboa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26589, 36, 'A Carballeira A Estrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26590, 36, 'Galan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26591, 36, 'A Pereira -Silleda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26592, 36, 'Soutelo -Ponteareas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26593, 36, 'Pereiras -O Covelo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26594, 36, 'Iglesia Nigran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26595, 36, 'Hermida -Rodeiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26596, 36, 'Carballido -Moaa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26597, 36, 'Castro E San Roque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26598, 36, 'Ludeiro -Lalin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26599, 36, 'Iglesia Arbo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26600, 36, 'Coto de Galos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26601, 36, 'Currelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26602, 36, 'Chicoreiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26603, 36, 'Rebordechan -O Covelo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26604, 36, 'Perros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26605, 36, 'Quinta -Rodeiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26606, 36, 'Vilagarcia de Arousa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26607, 36, 'Camos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26608, 36, 'Tomeza Los Quios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26609, 36, 'Ardan -Santa Maria P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26610, 36, 'A Carballeira -Lourizan-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26611, 36, 'Otero Gozon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26612, 36, 'Figueiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26613, 36, 'Veiga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26614, 36, 'Chapela -San Fausto P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26615, 36, 'Silvoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26616, 36, 'Buchabad'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26617, 36, 'Cotobade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26618, 36, 'Lameiro -Campo Lameiro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26619, 36, 'Dozon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26620, 36, 'Fornelos de Montes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26621, 36, 'A Lama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26622, 36, 'Meao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26623, 36, 'Meis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26624, 36, 'Oia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26625, 36, 'Pazos de Borben'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26626, 36, 'Portas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26627, 36, 'Poio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26628, 36, 'Valga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26629, 36, 'Campao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26630, 36, 'Samieira -Santa Maria P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26631, 36, 'Mourente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26632, 36, 'Baion -San Juan P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26633, 36, 'Monteporreiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26634, 36, 'Monteporreiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26635, 36, 'Carabelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26636, 36, 'Alba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26637, 36, 'Parda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26638, 36, 'Figueiro Vilaboa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26639, 36, 'Sisan -San Clemente P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26640, 36, 'Aldeanova (Lantao)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26641, 36, 'Sanguieda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26642, 36, 'Monteporreiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26643, 36, 'Vilanova de Arousa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26644, 37, 'Alba de Tormes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26645, 37, 'Aldehuela de la Boveda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26646, 37, 'Bejar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26647, 37, 'La Cabeza de Bejar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26648, 37, 'Calvarrasa de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26649, 37, 'Candelario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26650, 37, 'Cantagallo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26651, 37, 'Cantaracillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26652, 37, 'Ciudad Rodrigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26653, 37, 'Encinas de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26654, 37, 'La Fuente de San Esteban'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26655, 37, 'Fuentes de Bejar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26656, 37, 'Garcihernandez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26657, 37, 'Guijo de Avila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26658, 37, 'Guijuelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26659, 37, 'Ledesma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26660, 37, 'Ledrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26661, 37, 'Lumbrales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26662, 37, 'Macotera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26663, 37, 'Matilla de Los Caos del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26664, 37, 'La Maya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26665, 37, 'Nava de Bejar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26666, 37, 'Pearanda de Bracamonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26667, 37, 'Puerto de Bejar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26668, 37, 'Salamanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26669, 37, 'San Muoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26670, 37, 'Sancti-Spiritus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26671, 37, 'Santa Marta de Tormes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26672, 37, 'Santibaez Bejar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26673, 37, 'Tabera de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26674, 37, 'La Velles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26675, 37, 'Ventosa del Rio Almar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26676, 37, 'Villar de Peralonso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26677, 37, 'Villaseco de Los Gamitos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26678, 37, 'Villavieja de Yeltes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26679, 37, 'Vitigudino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26680, 37, 'Yecla de Yeltes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26681, 37, 'Gomecello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26682, 37, 'Fresno Alhandiga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26683, 37, 'Fuentes de Ooro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26684, 37, 'Ciperez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26685, 37, 'Martin de Yeltes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26686, 37, 'Boada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26687, 37, 'Tamames'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26688, 37, 'Barruecopardo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26689, 37, 'Hinojosa de Duero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26690, 37, 'Linares de Riofrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26691, 37, 'San Esteban de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26692, 37, 'San Miguel de Valero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26693, 37, 'Gallegos de Argaan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26694, 37, 'Carrascal del Obispo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26695, 37, 'Montejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26696, 37, 'Abusejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26697, 37, 'Sepulcro-Hilario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26698, 37, 'Lagunilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26699, 37, 'Cabrillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26700, 37, 'Cantalapiedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26701, 37, 'Alaraz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26702, 37, 'Malpartida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26703, 37, 'Boveda del Rio Almar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26704, 37, 'Mancera de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26705, 37, 'Salmoral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26706, 37, 'Villalba de Los Llanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26707, 37, 'Las Casas del Conde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26708, 37, 'Miranda del Castaar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26709, 37, 'San Martin del Castaar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26710, 37, 'Sequeros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26711, 37, 'Villanueva del Conde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26712, 37, 'Mozarbez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26713, 37, 'Valdecarros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26714, 37, 'Aldeadavila Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26715, 37, 'Valero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26716, 37, 'Villar de Gallimazo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26717, 37, 'Saucelle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26718, 37, 'Fuenterroble de Salvatierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26719, 37, 'Los Santos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26720, 37, 'Nava de Sotrobal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26721, 37, 'La Alberca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26722, 37, 'Cerezal de Peahorcada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26723, 37, 'Masueco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26724, 37, 'Mieza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26725, 37, 'Babilafuente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26726, 37, 'Tordillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26727, 37, 'Villoria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26728, 37, 'Villoruela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26729, 37, 'Espino de la Orbada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26730, 37, 'Parada de Rubiales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26731, 37, 'El Pedroso de la Armua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26732, 37, 'Cantalpino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26733, 37, 'Palaciosrubios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26734, 37, 'Villaflores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26735, 37, 'Zorita de la Frontera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26736, 37, 'Aldeanueva de Figueroa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26737, 37, 'Aldeatejada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26738, 37, 'Navacarros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26739, 37, 'La Hoya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26740, 37, 'Santiago de la Puebla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26741, 37, 'La Zarza de Pumareda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26742, 37, 'Cespedosa de Tormes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26743, 37, 'Aldearrubia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26744, 37, 'Pizarral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26745, 37, 'Topas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26746, 37, 'Aldeaseca de la Frontera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26747, 37, 'Calzada de Valdunciel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26748, 37, 'Valdelosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26749, 37, 'Valdunciel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26750, 37, 'Morille'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26751, 37, 'Navales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26752, 37, 'Sanchotello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26753, 37, 'San Pedro de Rozados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26754, 37, 'Sorihuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26755, 37, 'El Tejado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26756, 37, 'Aldea del Obispo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26757, 37, 'Carpio de Azaba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26758, 37, 'Endrinal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26759, 37, 'Espeja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26760, 37, 'Garcibuey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26761, 37, 'Martiago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26762, 37, 'Peralejos de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26763, 37, 'Villar de Ciervo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26764, 37, 'Cilleros El Hondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26765, 37, 'El Cerro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26766, 37, 'Peacaballera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26767, 37, 'El Campo de Pearanda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26768, 37, 'Barbadillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26769, 37, 'Calzada de Don Diego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26770, 37, 'Robliza de Cojos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26771, 37, 'Monterrubio de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26772, 37, 'Pedrosillo de Los Aires'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26773, 37, 'Berrocal de Salvatierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26774, 37, 'Aldeavieja de Tormes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26775, 37, 'Salvatierra de Tormes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26776, 37, 'Retortillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26777, 37, 'Vega de Tirados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26778, 37, 'Herguijuela de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26779, 37, 'Madroal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26780, 37, 'San Domingo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26781, 37, 'Cepeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26782, 37, 'Sotoserrano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26783, 37, 'Mogarraz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26784, 37, 'Campillo de Salvatierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26785, 37, 'Vilvestre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26786, 37, 'El Bodon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26787, 37, 'Fuenteguinaldo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26788, 37, 'El Payo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26789, 37, 'Navasfrias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26790, 37, 'Ahigal de Los Aceiteros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26791, 37, 'Baobarez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26792, 37, 'Bogajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26793, 37, 'Fuenteliante'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26794, 37, 'Olmedo de Camaces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26795, 37, 'San Felices de Los Gallegos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26796, 37, 'Frades de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26797, 37, 'Membribe de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26798, 37, 'Las Veguillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26799, 37, 'Cristobal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26800, 37, 'Valdefuentes de Sangusin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26801, 37, 'El Maillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26802, 37, 'Morasverdes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26803, 37, 'Casillas de Flores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26804, 37, 'Buenamadre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26805, 37, 'Campillo de Azaba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26806, 37, 'Ituero de Azaba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26807, 37, 'Puebla de Azaba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26808, 37, 'Aldehuela de Yeltes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26809, 37, 'La Albergueria de Argaan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26810, 37, 'Peaparda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26811, 37, 'Robleda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26812, 37, 'Montemayor del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26813, 37, 'Castillejo de Azaba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26814, 37, 'Guadapero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26815, 37, 'Serradilla del Arroyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26816, 37, 'Serradilla del Llano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26817, 37, 'Santibaez de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26818, 37, 'Alba de Yeltes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26819, 37, 'Dios Le Guarde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26820, 37, 'Doinos de Ledesma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26821, 37, 'Zafron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26822, 37, 'Arabayona de Mogica'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26823, 37, 'Poveda de Las Cintas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26824, 37, 'Paradinas de San Juan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26825, 37, 'Ragama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26826, 37, 'Aldearrodrigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26827, 37, 'El Arco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26828, 37, 'Forfoleda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26829, 37, 'San Pelayo de Guarea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26830, 37, 'Palacios Arzobispo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26831, 37, 'Santiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26832, 37, 'Zamayon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26833, 37, 'Villasrubias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26834, 37, 'El Sahugo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26835, 37, 'Armenteros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26836, 37, 'Gallegos de Solmiron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26837, 37, 'Horcajo Medianero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26838, 37, 'El Cubo de Don Sancho'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26839, 37, 'Villares de la Reina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26840, 37, 'Villarmayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26841, 37, 'La Mata de Ledesma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26842, 37, 'Bercimuelle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26843, 37, 'Barbalos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26844, 37, 'Narros de Matalayegua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26845, 37, 'Vecinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26846, 37, 'Agueda del Caudillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26847, 37, 'Sanjuanejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26848, 37, 'Campo de Ledesma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26849, 37, 'Monleras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26850, 37, 'Villaseco de Los Reyes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26851, 37, 'Terradillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26852, 37, 'Torrejon de Alba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26853, 37, 'Casafranca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26854, 37, 'Bocacara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26855, 37, 'Las Torres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26856, 37, 'Arapiles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26857, 37, 'Miranda de Azan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26858, 37, 'La Alameda de Gardon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26859, 37, 'Monforte de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26860, 37, 'Cerralbo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26861, 37, 'Pozos de Hinojo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26862, 37, 'Sobradillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26863, 37, 'San Miguel del Robledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26864, 37, 'Valdecarpinteros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26865, 37, 'Villasbuenas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26866, 37, 'Encinasola de Los Comendadores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26867, 37, 'Guadramiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26868, 37, 'Monleon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26869, 37, 'Villares de Yeltes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26870, 37, 'Santa Teresa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26871, 37, 'Torresmenudas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26872, 37, 'Pelabravo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26873, 37, 'Golpejas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26874, 37, 'Anaya de Alba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26875, 37, 'Larrodrigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26876, 37, 'Huerta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26877, 37, 'La Encina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26878, 37, 'Escurial de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26879, 37, 'Navarredonda de la Rinconada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26880, 37, 'La Rinconada de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26881, 37, 'Tejeda Y Segoyuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26882, 37, 'Villar de la Yegua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26883, 37, 'Barquilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26884, 37, 'Rollan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26885, 37, 'Tenebron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26886, 37, 'Pitiegua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26887, 37, 'Cabezabellosa de la Calzada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26888, 37, 'Pelayos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26889, 37, 'Galinduste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26890, 37, 'Pajares de la Laguna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26891, 37, 'Villaverde de Guarea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26892, 37, 'Pedrosillo El Ralo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26893, 37, 'Castellanos de Moriscos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26894, 37, 'Moriscos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26895, 37, 'Cereceda de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26896, 37, 'Nava de Francia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26897, 37, 'El Cabaco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26898, 37, 'Cilleros de la Bastida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26899, 37, 'Aldeanueva de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26900, 37, 'La Bastida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26901, 37, 'Navamorales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26902, 37, 'La Bouza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26903, 37, 'Puerto Seguro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26904, 37, 'Puente del Congosto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26905, 37, 'La Orbada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26906, 37, 'Pearandilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26907, 37, 'Arcediano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26908, 37, 'Tardaguila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26909, 37, 'Valderrodrigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26910, 37, 'Alconada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26911, 37, 'Doinos Salamanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26912, 37, 'Calvarrasa de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26913, 37, 'Fresnedoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26914, 37, 'Almendra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26915, 37, 'El Tornadizo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26916, 37, 'Villamayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26917, 37, 'Castillejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26918, 37, 'Monsagro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26919, 37, 'Encinas de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26920, 37, 'Sieteiglesias de Tormes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26921, 37, 'Perea de la Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26922, 37, 'Villarino de Los Aires'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26923, 37, 'Martinamor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26924, 37, 'Cabrerizos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26925, 37, 'Belea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26926, 37, 'Castillejo de Martin Viejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26927, 37, 'Serranillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26928, 37, 'Saelices El Chico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26929, 37, 'Martillan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26930, 37, 'Sexmiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26931, 37, 'Villar de Argaan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26932, 37, 'Aldealengua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26933, 37, 'Coca de Alba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26934, 37, 'Negrilla de Palencia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26935, 37, 'Palencia de Negrilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26936, 37, 'Chagarcia Medianero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26937, 37, 'Quejigal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26938, 37, 'San Cristobal de la Cuesta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26939, 37, 'Boadilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26940, 37, 'Portillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26941, 37, 'La Sagrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26942, 37, 'Florida de Liebana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26943, 37, 'Parada de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26944, 37, 'Encina de San Silvestre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26945, 37, 'Valdelacasa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26946, 37, 'La Tala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26947, 37, 'Sardon de Los Frailes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26948, 37, 'Valdesangil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26949, 37, 'Revalvos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26950, 37, 'Trabanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26951, 37, 'Palacios de Salvatierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26952, 37, 'Tarazona de Guarea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26953, 37, 'San Pedro del Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26954, 37, 'El Manzano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26955, 37, 'Valdemierque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26956, 37, 'La Alamedilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26957, 37, 'Muoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26958, 37, 'Navalmoral de Bejar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26959, 37, 'Sanchon de la Sagrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26960, 37, 'Agallas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26961, 37, 'Aldeaseca de Alba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26962, 37, 'Bermellar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26963, 37, 'Cabeza de Framontanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26964, 37, 'Carbajosa de la Sagrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26965, 37, 'Castellanos de Villiquera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26966, 37, 'Galisancho'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26967, 37, 'Molinillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26968, 37, 'Sando'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26969, 37, 'Santa Maria de Los Llanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26970, 37, 'Santa Maria de Sando'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26971, 37, 'Valdelageve'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26972, 37, 'Villasdardo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26973, 37, 'Navagallega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26974, 37, 'Herguijuela de Ciudad Rodrigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26975, 37, 'Saldeana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26976, 37, 'Pelarrodriguez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26977, 37, 'Cabezuela Salvatierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26978, 37, 'Monterrubio de Armua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26979, 37, 'Peromingo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26980, 37, 'San Morales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26981, 37, 'Gajates'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26982, 37, 'Pedraza de Alba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26983, 37, 'Pedrosillo de Alba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26984, 37, 'Peramato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26985, 37, 'Traguntia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26986, 37, 'Villagonzalo de Tormes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26987, 37, 'Buenavista'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26988, 37, 'Castraz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26989, 37, 'La Moralita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26990, 37, 'Almenara de Tormes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26991, 37, 'Amatos de Alba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26992, 37, 'Aover de Tormes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26993, 37, 'El Milano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26994, 37, 'Puebla de Yeltes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26995, 37, 'La Fregeneda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26996, 37, 'La Redonda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26997, 37, 'Berrocal de Huebra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26998, 37, 'Barceo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (26999, 37, 'Carrasco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27000, 37, 'Majuges'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27001, 37, 'Sanchon de la Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27002, 37, 'Las Uces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27003, 37, 'Valsalabroso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27004, 37, 'La Vidola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27005, 37, 'Aldeacipreste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27006, 37, 'La Calzada de Bejar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27007, 37, 'Colmenar de Montemayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27008, 37, 'Horcajo de Montemayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27009, 37, 'Valdehijaderos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27010, 37, 'El Tomillar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27011, 37, 'Canillas de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27012, 37, 'Cabeza del Caballo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27013, 37, 'Cordovilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27014, 37, 'Moriigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27015, 37, 'Francos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27016, 37, 'Machacon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27017, 37, 'Amatos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27018, 37, 'Nuevo Naharros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27019, 37, 'La Pea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27020, 37, 'Palomares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27021, 37, 'Palacinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27022, 37, 'Carbajosa de Armua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27023, 37, 'Carrascal de Barregas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27024, 37, 'Ejeme'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27025, 37, 'Espadaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27026, 37, 'Galindo Y Perahuy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27027, 37, 'Gejo de Los Reyes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27028, 37, 'Gejuelo del Barro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27029, 37, 'Grandes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27030, 37, 'Herguijuela del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27031, 37, 'La Mata de Armua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27032, 37, 'Peralejos de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27033, 37, 'Puebla de San Medel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27034, 37, 'Puertas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27035, 37, 'Santa Olalla Yeltes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27036, 37, 'La Sierpe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27037, 37, 'Tremedal de Tormes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27038, 37, 'Valverdon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27039, 37, 'Vallejera de Riofrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27040, 37, 'Zarapicos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27041, 37, 'Aldeaseca de Armua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27042, 37, 'Castillejo de Dos Casas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27043, 37, 'Pastores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27044, 37, 'Villarmuerto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27045, 37, 'Juzbado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27046, 37, 'Moronta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27047, 37, 'Albergueria de Herguijuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27048, 37, 'Valverde de Valdelacasa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27049, 37, 'Garcirrey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27050, 37, 'Ahigal de Villarino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27051, 37, 'Villar de Samaniego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27052, 37, 'Brincones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27053, 37, 'Casas de Monleon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27054, 37, 'Iruelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27055, 37, 'Robledo Hermoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27056, 37, 'Coca de Huebra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27057, 37, 'Hondura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27058, 37, 'Pinedas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27059, 37, 'El Pino de Tormes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27060, 37, 'San Medel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27061, 37, 'Cilloruelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27062, 37, 'Palomares de Alba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27063, 37, 'Navarredonda de Salvatierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27064, 37, 'Cerezal de Puertas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27065, 37, 'Fuentes de Masueco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27066, 37, 'El Groo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27067, 37, 'Manceras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27068, 37, 'Villanueva de Los Pavones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27069, 37, 'Barreras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27070, 37, 'Casasola de la Encomienda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27071, 37, 'Herrezuelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27072, 37, 'Barceino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27073, 37, 'Escuernavacas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27074, 37, 'Villargordo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27075, 37, 'Pealvo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27076, 37, 'Iigo Blasco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27077, 37, 'Rebollosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27078, 37, 'Cortos de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27079, 37, 'Carpio-Bernardo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27080, 37, 'La Lurda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27081, 37, 'La Atalaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27082, 37, 'Corporario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27083, 37, 'Zamarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27084, 37, 'Fuentebuena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27085, 37, 'Cespedosa de Agadones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27086, 37, 'El Casarito'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27087, 37, 'Ventas de Garriel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27088, 37, 'Berganciano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27089, 37, 'Carrascalejo de Huebra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27090, 37, 'Carrascal de Velambelez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27091, 37, 'Galleguillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27092, 37, 'Gema'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27093, 37, 'Navahombela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27094, 37, 'Nuevo Poblado -Fresno-Alhandi-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27095, 37, 'Peralejos de Solis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27096, 37, 'Picones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27097, 37, 'Santa Ines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27098, 37, 'Turra de Alba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27099, 37, 'Valbuena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27100, 37, 'Vegas de Domingo Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27101, 37, 'Villarejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27102, 37, 'El Encinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27103, 37, 'Vistahermosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27104, 37, 'Valdelamatanza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27105, 37, 'Iigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27106, 37, 'Cuatro Calzadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27107, 37, 'Ivanrey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27108, 37, 'La Magdalena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27109, 37, 'Cabeza de Diego Gomez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27110, 37, 'Carnero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27111, 37, 'La Casilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27112, 37, 'Coquilla de Huebra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27113, 37, 'Domingo Seor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27114, 37, 'Paradinas de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27115, 37, 'Segoyuela de Los Cornejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27116, 37, 'Tirados de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27117, 37, 'Sanchogomez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27118, 37, 'Colonia Matacan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27119, 37, 'Peasolana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27120, 37, 'Colonia Matacan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27121, 37, 'Base Aerea de Matacan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27122, 38, 'Adeje'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27123, 38, 'La Caleta -Adeje-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27124, 38, 'Agulo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27125, 38, 'Alajero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27126, 38, 'Alojera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27127, 38, 'Alcala -Guia de Isora-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27128, 38, 'Aldea Blanca -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27129, 38, 'Arafo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27130, 38, 'Araya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27131, 38, 'Arguayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27132, 38, 'Arico El Nuevo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27133, 38, 'Arona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27134, 38, 'Arure'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27135, 38, 'Bajamar -S.C. la Laguna-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27136, 38, 'Barlovento'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27137, 38, 'Barranco Hondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27138, 38, 'San Pedro de Brea Alta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27139, 38, 'San Jose -Brea Baja-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27140, 38, 'Candelaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27141, 38, 'Chimiche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27142, 38, 'Chio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27143, 38, 'Temocoda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27144, 38, 'El Medano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27145, 38, 'El Paso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27146, 38, 'Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27147, 38, 'El Salto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27148, 38, 'La Escalona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27149, 38, 'El Escobonal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27150, 38, 'Fasnia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27151, 38, 'Los Canarios -Fuencaliente P.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27152, 38, 'Garachico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27153, 38, 'Santo Domingo -Garafia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27154, 38, 'Granadilla de Abona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27155, 38, 'Guamasa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27156, 38, 'Guia de Isora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27157, 38, 'Guimar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27158, 38, 'Puertito de Guimar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27159, 38, 'El Guincho -Garachico-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27160, 38, 'Hermigua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27161, 38, 'Icod El Alto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27162, 38, 'Icor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27163, 38, 'Igueste de San Andres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27164, 38, 'Igueste -Candelaria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27165, 38, 'La Esperanza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27166, 38, 'San Cristobal de la Laguna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27167, 38, 'La Guancha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27168, 38, 'La Matanza de Acentejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27169, 38, 'La Medida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27170, 38, 'La Orotava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27171, 38, 'La Victoria de Acentejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27172, 38, 'La Zarza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27173, 38, 'Las Galletas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27174, 38, 'Las Manchas -El Paso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27175, 38, 'Las Tricias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27176, 38, 'Los Abrigos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27177, 38, 'Los Cristianos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27178, 38, 'Los Llanos de Aridane'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27179, 38, 'Los Naranjeros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27180, 38, 'Los Sauces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27181, 38, 'Lomo Pelado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27182, 38, 'San Isidro de Sta.Cruz de Tfe.'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27183, 38, 'Llano del Moro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27184, 38, 'Masca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27185, 38, 'Villa de Mazo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27186, 38, 'Playa de San Juan -Guia Isora-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27187, 38, 'Playa de Santiago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27188, 38, 'Buen Paso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27189, 38, 'Poris de Abona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27190, 38, 'Puerto de la Cruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27191, 38, 'Puerto de la Estaca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27192, 38, 'Puerto de Santiago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27193, 38, 'Puntagorda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27194, 38, 'Punta del Hidalgo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27195, 38, 'Puntallana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27196, 38, 'Los Realejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27197, 38, 'La Cuesta -S.C. la Laguna-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27198, 38, 'San Andres de Sta.Cruz de Tfe.'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27199, 38, 'San Isidro -Granadilla Abona-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27200, 38, 'San Juan de la Rambla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27201, 38, 'San Miguel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27202, 38, 'San Sebastian de la Gomera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27203, 38, 'Santiago del Teide'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27204, 38, 'Santa Cruz de la Palma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27205, 38, 'Santa Cruz de Tenerife'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27206, 38, 'Santa Ursula'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27207, 38, 'El Sauzal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27208, 38, 'El Sobradillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27209, 38, 'El Tablero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27210, 38, 'Taco (San Cristobal de la Laguna)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27211, 38, 'Tacoronte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27212, 38, 'Taganana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27213, 38, 'Taguluche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27214, 38, 'Tamaimo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27215, 38, 'El Tanque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27216, 38, 'Tazacorte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27217, 38, 'Tegueste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27218, 38, 'Tejina -S.C. la Laguna-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27219, 38, 'Tejina -Guia de Isora-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27220, 38, 'La Tierra del Trigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27221, 38, 'Tijarafe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27222, 38, 'Tijoco Bajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27223, 38, 'Valle de San Lorenzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27224, 38, 'Valle de Guerra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27225, 38, 'Valle Gran Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27226, 38, 'Vallehermoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27227, 38, 'Valverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27228, 38, 'Lomo Oliva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27229, 38, 'Vilaflor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27230, 38, 'Buenavista del Norte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27231, 38, 'Los Silos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27232, 38, 'Icod de Los Vinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27233, 38, 'Don Pedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27234, 38, 'Gallegos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27235, 38, 'Juan Adalid-El Mudo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27236, 38, 'Franceses'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27237, 38, 'Juan Adalid-El Mudo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27238, 38, 'El Palmar -Garafia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27239, 38, 'El Tablado -Garafia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27240, 38, 'La Galga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27241, 38, 'Mocanal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27242, 38, 'San Andres -Valverde-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27243, 38, 'Taibique'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27244, 38, 'Cruz Santa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27245, 38, 'Taucho'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27246, 38, 'Frontera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27247, 38, 'Isora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27248, 38, 'Sabinosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27249, 38, 'Las Cuevecitas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27250, 38, 'Malpais -Candelaria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27251, 38, 'Los Campitos Santa Cruz Tenerife'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27252, 38, 'El Granel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27253, 38, 'La Vega -Icod de Los Vinos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27254, 38, 'El Amparo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27255, 38, 'Cueva del Viento'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27256, 38, 'Cueva del Agua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27257, 38, 'La Fajana Garafia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27258, 38, 'Hoya Grande -Garafia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27259, 38, 'Llano Negro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27260, 38, 'La Mata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27261, 38, 'Roque del Faro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27262, 38, 'Charco del Pino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27263, 38, 'La Laja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27264, 38, 'Ravelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27265, 38, 'Playa de la Arena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27266, 38, 'Los Valles -S.C. la Laguna-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27267, 38, 'Barranco de Las Lajas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27268, 38, 'San Marcos -Icod de Los Vinos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27269, 38, 'Genoves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27270, 38, 'San Juan del Reparo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27271, 38, 'Erese'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27272, 38, 'Guarazoca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27273, 38, 'La Palmita -Agulo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27274, 38, 'Las Rosas -Agulo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27275, 38, 'Buzanada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27276, 38, 'Tigalate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27277, 38, 'Tiguerorte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27278, 38, 'Monte de Luna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27279, 38, 'La Rosa -Villa de Mazo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27280, 38, 'Malpaises Villa Mazo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27281, 38, 'La Sabina -Villa de Mazo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27282, 38, 'Las Indias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27283, 38, 'Los Quemados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27284, 38, 'Las Caletas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27285, 38, 'Santa Catalina -La Guancha-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27286, 38, 'Guancha Abajo Isla Tenerife'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27287, 38, 'Erjos del Tanque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27288, 38, 'San Antonio Isla Tenerife'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27289, 38, 'Santo Domingo -La Guancha-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27290, 38, 'Las Rosas-Los Llanos Aridane-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27291, 38, 'Las Manchas-Llanos de Aridane-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27292, 38, 'Todoque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27293, 38, 'Puerto Naos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27294, 38, 'Machado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27295, 38, 'La Sombrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27296, 38, 'Lomo de Mena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27297, 38, 'El Cercado -Vallehermoso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27298, 38, 'Tamargada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27299, 38, 'Tazo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27300, 38, 'Amagar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27301, 38, 'Arecida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27302, 38, 'Casa Hacienda Tijarafe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27303, 38, 'El Jesus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27304, 38, 'Tinizara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27305, 38, 'La Vizcaina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27306, 38, 'La Perdoma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27307, 38, 'Pino Alto -La Orotava-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27308, 38, 'Jama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27309, 38, 'La Montaeta -Garachico-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27310, 38, 'Beltran Isla San Miguel Palma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27311, 38, 'Cabo Blanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27312, 38, 'Callejones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27313, 38, 'Chirche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27314, 38, 'Guaza -Arona-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27315, 38, 'Las Ledas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27316, 38, 'Lomito Fragoso Y Honduras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27317, 38, 'San Cristobal de la Laguna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27318, 38, 'Torviscas Alto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27319, 38, 'La Montaa -Brea Baja-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27320, 38, 'San Antonio -Brea Baja-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27321, 38, 'Velhoco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27322, 38, 'Caleta -Valverde-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27323, 38, 'Las Casas -Frontera-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27324, 38, 'Echedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27325, 38, 'Los Llanillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27326, 38, 'Pozo Salud Frontera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27327, 38, 'La Restinga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27328, 38, 'Tamaduste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27329, 38, 'Tior'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27330, 38, 'Antoncojo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27331, 38, 'Las Hayas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27332, 38, 'Los Blanquitos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27333, 38, 'Las Vegas-Granadilla de Abona-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27334, 38, 'Almaciga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27335, 38, 'El Bailadero Santa Cruz Tenerife'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27336, 38, 'La Cumbrilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27337, 38, 'Jardina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27338, 38, 'Roque Negro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27339, 38, 'Taborno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27340, 38, 'Casas Afur Santa Cruz Tenerife'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27341, 38, 'Santa Lucia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27342, 38, 'Barranco Santiago -S.S.Gomera-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27343, 38, 'Epina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27344, 38, 'Imada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27345, 38, 'Los Loros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27346, 38, 'Arguayoda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27347, 38, 'San Jose de Los Llanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27348, 38, 'La Cuesta -Barlovento-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27349, 38, 'Lomo Machin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27350, 38, 'La Palmita -Barlovento-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27351, 38, 'Topaciegas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27352, 38, 'Los Acevios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27353, 38, 'Arguamul'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27354, 38, 'Ayamosna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27355, 38, 'Barranco Santiago O Guarimiar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27356, 38, 'Benchijigua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27357, 38, 'El Cedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27358, 38, 'Erque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27359, 38, 'Erquito'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27360, 38, 'Las Cabezadas -Barlovento-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27361, 38, 'Jerdue'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27362, 38, 'Lo del Gato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27363, 38, 'Seima'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27364, 38, 'Tejiade'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27365, 38, 'Las Toscas San Sebastian Gomera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27366, 38, 'Vegaipala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27367, 38, 'Igualero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27368, 38, 'San Miguel de Geneto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27369, 38, 'El Jaral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27370, 38, 'Armeime'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27371, 38, 'Tijoco Alto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27372, 38, 'Realejo Alto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27373, 38, 'Las Ledas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27374, 38, 'Brea Alta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27375, 38, 'Chamorga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27376, 38, 'La Dama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27377, 38, 'La Rajita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27378, 38, 'Tigaday'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27379, 38, 'El Castillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27380, 38, 'El Barrial'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27381, 38, 'Cruz de Tea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27382, 38, 'El Desierto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27383, 38, 'Zamora Alta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27384, 38, 'Botazo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27385, 38, 'El Llanito'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27386, 38, 'El Socorro -Brea Baja-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27387, 38, 'La Cuesta -Valverde-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27388, 38, 'La Montaeta -Los Realejos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27389, 38, 'Jedey -El Paso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27390, 38, 'El Estanquillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27391, 38, 'Las Moraditas -Adeje-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27392, 38, 'El Draguito'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27393, 38, 'La Florida -La Orotava-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27394, 38, 'Aguamansa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27395, 38, 'El Rincon -La Orotava-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27396, 38, 'Las Manchas -Santiago Teide-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27397, 38, 'Las Puntas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27398, 38, 'Valle de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27399, 38, 'Lance El Isla Tenerife'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27400, 38, 'Ifonche Y Benitez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27401, 38, 'Benijos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27402, 38, 'Fuente Nueva-S.Andres Y Sauces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27403, 38, 'Hoya de Farrais'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27404, 38, 'Las Llanadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27405, 38, 'Targa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27406, 38, 'Tigaiga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27407, 38, 'La Vera -Puerto de la Cruz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27408, 38, 'Lomo del Balo -Valle Gran Rey-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27409, 38, 'Pinoleris'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27410, 38, 'El Palmar -Buenavista Norte-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27411, 38, 'El Fronton -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27412, 38, 'La Vera-San Juan de la Rambla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27413, 38, 'El Charco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27414, 38, 'Ruigomez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27415, 38, 'Erjos del Tanque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27416, 38, 'La Hidalga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27417, 38, 'Macayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27418, 38, 'San Andres Y Sauces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27419, 38, 'Las Casas de la Cumbre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27420, 38, 'Las Rosas-S.Juan de la Rambla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27421, 38, 'Tenagua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27422, 38, 'Pedro Alvarez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27423, 38, 'Lomo de Las Bodegas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27424, 38, 'Las Portelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27425, 38, 'El Draguillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27426, 38, 'Chayofa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27427, 38, 'La Vera-Carril'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27428, 38, 'Degollada Peraza San Sebastian Gomera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27429, 38, 'Las Eras -Fasnia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27430, 38, 'Los Roques'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27431, 38, 'Las Abiertas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27432, 38, 'La Concepcion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27433, 38, 'La Costa Fuencaliente Palma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27434, 38, 'Aguatavar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27435, 38, 'Almacigos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27436, 38, 'El Bueno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27437, 38, 'El Cabrito'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27438, 38, 'La Caldera -El Paso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27439, 38, 'Callao Salvaje'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27440, 38, 'Las Caadas del Teide'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27441, 38, 'Los Carrizales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27442, 38, 'Cruz del Camino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27443, 38, 'La Cuesta -S.C. la Laguna-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27444, 38, 'Abades'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27445, 38, 'Chejelipes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27446, 38, 'Las Eras -Arico-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27447, 38, 'La Florida -Icod de Los Vinos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27448, 38, 'La Florida -Arico-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27449, 38, 'Fuente del Bardo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27450, 38, 'Inchereda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27451, 38, 'La Jaca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27452, 38, 'El Jorado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27453, 38, 'Miraverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27454, 38, 'Las Montaas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27455, 38, 'Palm-Mar -Arona-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27456, 38, 'Playa Las Americas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27457, 38, 'Playa de Las Americas -Arona-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27458, 38, 'La Punta -Tijarafe-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27459, 38, 'Quise'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27460, 38, 'Redondo Icod Los Vinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27461, 38, 'San Miguel de Tajao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27462, 38, 'El Socorro -Guimar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27463, 38, 'El Tablado -Guimar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27464, 38, 'Teno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27465, 38, 'Vera de Erques'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27466, 38, 'Temijiraque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27467, 38, 'Tenesedra Valverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27468, 38, 'Acantilados de Los Gigantes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27469, 38, 'Acojeja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27470, 38, 'Agua Garcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27471, 38, 'Las Aguas-S.Juan de la Rambla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27472, 38, 'Las Arenas -La Orotava-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27473, 38, 'Las Arenas Puerto Cruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27474, 38, 'Aripe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27475, 38, 'El Atajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27476, 38, 'Atogo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27477, 38, 'La Azadilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27478, 38, 'Los Baldios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27479, 38, 'El Bebedero -La Orotava-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27480, 38, 'Los Bellos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27481, 38, 'Benijo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27482, 38, 'Bermudez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27483, 38, 'Buenavista de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27484, 38, 'Buenavista de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27485, 38, 'Las Cabezadas -Hermigua-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27486, 38, 'La Caldera -Adeje-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27487, 38, 'Caleta de Interian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27488, 38, 'Las Caletillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27489, 38, 'Callejon de Ordaiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27490, 38, 'Cno. Chasna-Montijos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27491, 38, 'Los Canarios-San Juan Rambla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27492, 38, 'Los Cancajos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27493, 38, 'Las Candias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27494, 38, 'El Cantillo -Santa Ursula-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27495, 38, 'El Cardal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27496, 38, 'La Caridad'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27497, 38, 'Casa de la Seda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27498, 38, 'Las Casas -Hermigua-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27499, 38, 'Casas del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27500, 38, 'Catalanes'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27501, 38, 'Los Colmeneros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27502, 38, 'El Corralete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27503, 38, 'La Corujera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27504, 38, 'Cruz Chiquita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27505, 38, 'Cruz del Roque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27506, 38, 'La Cuesta -Brea Alta-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27507, 38, 'Cuesta de la Villa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27508, 38, 'Cueva Bermeja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27509, 38, 'El Curato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27510, 38, 'Chajaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27511, 38, 'Chiguergue'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27512, 38, 'La Dehesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27513, 38, 'El Durazno -La Orotava-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27514, 38, 'El Durazno -Puerto de la Cruz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27515, 38, 'Faabe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27516, 38, 'Farrobillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27517, 38, 'La Fuente Nueva -Arico-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27518, 38, 'El Fuerte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27519, 38, 'Los Granados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27520, 38, 'Guayonje'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27521, 38, 'El Guincho-Golf del Sur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27522, 38, 'El Guro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27523, 38, 'El Hornillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27524, 38, 'Las Hoyetas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27525, 38, 'Ibo Alfaro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27526, 38, 'Jarales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27527, 38, 'Juan Fernandez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27528, 38, 'Juan Mayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27529, 38, 'La Juncia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27530, 38, 'Lepe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27531, 38, 'Lomo Bermejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27532, 38, 'Lomo de Los Gomeros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27533, 38, 'Lomo del Centro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27534, 38, 'Lomo Oliva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27535, 38, 'Lomo Oscuro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27536, 38, 'La Longuera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27537, 38, 'La Luz -La Orotava-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27538, 38, 'Llano Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27539, 38, 'Llano la Palma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27540, 38, 'Los Llanos -Valverde-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27541, 38, 'Madre del Agua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27542, 38, 'Maria Jimenez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27543, 38, 'Medianas de la Vera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27544, 38, 'El Carreton'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27545, 38, 'Las Mercedes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27546, 38, 'Mesa del Mar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27547, 38, 'Miranda -Brea Alta-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27548, 38, 'Miranda -Santa Cruz la Palma-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27549, 38, 'El Molinito'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27550, 38, 'Las Montaetas -Valverde-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27551, 38, 'Monte de Brea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27552, 38, 'Monteforte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27553, 38, 'El Morro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27554, 38, 'Las Nieves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27555, 38, 'Las Nuevitas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27556, 38, 'Orotava -San Andres Y Sauces-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27557, 38, 'El Ortigal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27558, 38, 'Las Palmas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27559, 38, 'Palmarejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27560, 38, 'Palo Blanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27561, 38, 'Las Palomas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27562, 38, 'Las Paredes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27563, 38, 'Pavon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27564, 38, 'Piedra Romana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27565, 38, 'Playa de la Calera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27566, 38, 'La Polvacera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27567, 38, 'La Portalina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27568, 38, 'El Portezuelo -Tegueste-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27569, 38, 'Las Poyatas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27570, 38, 'El Pris'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27571, 38, 'Puerto -Tazacorte-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27572, 38, 'Puerto de la Madera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27573, 38, 'Punta Brava-Puerto de la Cruz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27574, 38, 'La Puntilla -Valle Gran Rey-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27575, 38, 'Los Quevedos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27576, 38, 'La Quilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27577, 38, 'Quinta Zoca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27578, 38, 'La Rambla -Los Realejos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27579, 38, 'La Rambla-S.Juan de la Rambla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27580, 38, 'Los Rechazos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27581, 38, 'La Resbala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27582, 38, 'El Retamal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27583, 38, 'Los Reyes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27584, 38, 'Roque de Las Bodegas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27585, 38, 'El Roque -San Andres Y Sauces-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27586, 38, 'Rosa de Las Piedras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27587, 38, 'Sabina Alta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27588, 38, 'San Antonio Y Pilar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27589, 38, 'San Bernardo -Los Silos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27590, 38, 'San Jeronimo -La Orotava-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27591, 38, 'San Jose -Los Silos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27592, 38, 'San Jose -S.Juan de la Rambla-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27593, 38, 'San Juan -San Andres Y Sauces-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27594, 38, 'San Jeronimo Los Perales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27595, 38, 'San Pedro-San Andres Y Sauces-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27596, 38, 'San Simon -Villa de Mazo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27597, 38, 'Santa Barbara -Icod Los Vinos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27598, 38, 'Santa Catalina -Hermigua-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27599, 38, 'Santa Maria del Mar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27600, 38, 'El Socorro -Tegueste-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27601, 38, 'El Tabaibal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27602, 38, 'Tajace de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27603, 38, 'Las Tierritas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27604, 38, 'Tosca de Ana Maria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27605, 38, 'La Tosca -Barlovento-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27606, 38, 'El Toscal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27607, 38, 'La Torre -Valverde-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27608, 38, 'Trevejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27609, 38, 'Valle Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27610, 38, 'Valle Brosque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27611, 38, 'Valle Crispin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27612, 38, 'Valle Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27613, 38, 'Velazquez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27614, 38, 'La Vera -Santa Ursula-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27615, 38, 'La Verada San Andres Sauces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27616, 38, 'Verada de Las Lomadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27617, 38, 'El Viatico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27618, 38, 'Vueltas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27619, 38, 'Las Zocas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27620, 38, 'Geneto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27621, 38, 'Radazul'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27622, 38, 'Tabaiba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27623, 38, 'La Vica'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27624, 38, 'Los Menores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27625, 38, 'San Miguel de Tajao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27626, 38, 'La Caleta -Los Silos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27627, 38, 'Brezal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27628, 38, 'Garachico-San Andres Y Sauces-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27629, 38, 'Llano El Pino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27630, 38, 'El Pinar -Tijarafe-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27631, 38, 'Cho'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27632, 38, 'Adelantado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27633, 38, 'Aguerche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27634, 38, 'Los Alamos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27635, 38, 'Los Altos-Arroyos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27636, 38, 'Los Andenes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27637, 38, 'Las Angustias Los Llanos Aridane'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27638, 38, 'Arico Viejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27639, 38, 'Azanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27640, 38, 'Bajos Y Tagoro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27641, 38, 'Banda de Las Rosas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27642, 38, 'Barranco de la Madera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27643, 38, 'Barranco del Rio-S.Cruz Palma-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27644, 38, 'Barranco Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27645, 38, 'Barranco Hondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27646, 38, 'Los Barrancos -Guimar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27647, 38, 'Las Barreras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27648, 38, 'Ampliacion Olivos-Bda Fyffes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27649, 38, 'Los Barros -Llanos de Aridane-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27650, 38, 'Betenama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27651, 38, 'El Bufadero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27652, 38, 'La Caleta -Guimar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27653, 38, 'La Camella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27654, 38, 'Los Campitos -Llanos Aridane-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27655, 38, 'Campo de Golf -Tacoronte-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27656, 38, 'Las Cancelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27657, 38, 'Candelaria -Sta.Cruz la Palma-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27658, 38, 'La Cantera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27659, 38, 'Las Canteras -Buenavista Norte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27660, 38, 'Las Canteras -Tegueste-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27661, 38, 'Las Caas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27662, 38, 'Cardon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27663, 38, 'La Carrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27664, 38, 'Las Casas Altas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27665, 38, 'Castro -Granadilla de Abona-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27666, 38, 'La Cisnera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27667, 38, 'El Convento -La Guancha-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27668, 38, 'La Costa -Tazacorte-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27669, 38, 'Costa del Silencio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27670, 38, 'Las Cruces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27671, 38, 'Las Crucitas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27672, 38, 'Cruz Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27673, 38, 'Los Cuervos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27674, 38, 'Cuesta del Llano de la Cruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27675, 38, 'Las Cuevas -La Orotava-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27676, 38, 'Los Chapines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27677, 38, 'Chimaje'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27678, 38, 'Las Chumberas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27679, 38, 'Daute'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27680, 38, 'La Degollada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27681, 38, 'Dehesa Alta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27682, 38, 'Dehesa Baja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27683, 38, 'Las Dehesas Puerto Cruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27684, 38, 'El Dorador'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27685, 38, 'Fagundo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27686, 38, 'La Fajana-Fuentecaliente Palma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27687, 38, 'Finca Espaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27688, 38, 'La Florida -Arona-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27689, 38, 'El Fraile'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27690, 38, 'El Fronton -Sta.Cruz la Palma-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27691, 38, 'Los Frontones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27692, 38, 'Fuente la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27693, 38, 'Las Fuentes -Guia de Isora-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27694, 38, 'Los Gavilanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27695, 38, 'La Glorieta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27696, 38, 'El Gomero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27697, 38, 'Los Gomez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27698, 38, 'Gracia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27699, 38, 'Guajara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27700, 38, 'Hacienda Perdida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27701, 38, 'Hermosilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27702, 38, 'La Higuera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27703, 38, 'Hoya de Pablo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27704, 38, 'Hoya Grande-S.Andres Y Sauces-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27705, 38, 'Hoya Los Pablos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27706, 38, 'Hoyo del Barrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27707, 38, 'El Infierno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27708, 38, 'Jardin del Sol Las Toscas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27709, 38, 'Laguna de Santiago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27710, 38, 'Las Lajitas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27711, 38, 'Lodero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27712, 38, 'Lomo Blanco -La Guancha-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27713, 38, 'Pedro Alvarez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27714, 38, 'Lomo del Balo -Guia de Isora-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27715, 38, 'Lomo Espanta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27716, 38, 'Lomo Guanche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27717, 38, 'El Lomo Morin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27718, 38, 'Las Longueras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27719, 38, 'Llano de Mendez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27720, 38, 'Llano Grande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27721, 38, 'La Marzaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27722, 38, 'La Mancha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27723, 38, 'Marazul'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27724, 38, 'Marina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27725, 38, 'Molina -Tegueste-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27726, 38, 'Molino del Viento'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27727, 38, 'El Molledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27728, 38, 'Las Montaetas -La Guancha-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27729, 38, 'Monte -Villa de Mazo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27730, 38, 'Monte de Pueblo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27731, 38, 'Montijos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27732, 38, 'Los Naranjos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27733, 38, 'Nombre de Dios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27734, 38, 'Padilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27735, 38, 'Pajara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27736, 38, 'El Palomar -Tegueste-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27737, 38, 'Paso de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27738, 38, 'Paso de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27739, 38, 'Los Pedregales-Llanos Aridane-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27740, 38, 'Pencatinta Iboybo Adeje'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27741, 38, 'El Pinalete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27742, 38, 'El Pinar -Puntagorda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27743, 38, 'El Pinque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27744, 38, 'Los Placeres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27745, 38, 'El Planto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27746, 38, 'Playa Paraiso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27747, 38, 'El Pocito'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27748, 38, 'Poleal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27749, 38, 'Poligono Industrial Guimar Arafo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27750, 38, 'La Portada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27751, 38, 'Prismar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27752, 38, 'El Puertito -Adeje-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27753, 38, 'El Puerto Rambla la Quinta Realejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27754, 38, 'Punta Prieta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27755, 38, 'Punta Prieta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27756, 38, 'La Quinta -Adeje-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27757, 38, 'Los Quintos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27758, 38, 'Ramirez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27759, 38, 'El Retamar -Santiago Teide-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27760, 38, 'Ricasa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27761, 38, 'Los Rodeos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27762, 38, 'El Roque -Puntagorda-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27763, 38, 'El Roque -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27764, 38, 'Roque de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27765, 38, 'Roque de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27766, 38, 'Las Rosas Arona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27767, 38, 'Las Rosas -El Rosario-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27768, 38, 'Las Rosas -Valverde-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27769, 38, 'La Sabinita -Arico-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27770, 38, 'La Sabinita -Arona-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27771, 38, 'San Agustin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27772, 38, 'San Antonio -La Orotava-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27773, 38, 'San Benito'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27774, 38, 'San Borondon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27775, 38, 'San Eugenio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27776, 38, 'San Felipe -Icod de Los Vinos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27777, 38, 'San Gonzalo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27778, 38, 'San Lazaro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27779, 38, 'San Luis -Tegueste-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27780, 38, 'San Miguel -La Orotava-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27781, 38, 'San Pedro de Daute'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27782, 38, 'San Vicente -Los Realejos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27783, 38, 'El Sauce'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27784, 38, 'Sobre la Fuente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27785, 38, 'Las Sorribas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27786, 38, 'Tacande'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27787, 38, 'Tajuya -Los Llanos de Aridane-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27788, 38, 'Tajuya -El Paso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27789, 38, 'Tamaide -San Miguel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27790, 38, 'Tamarco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27791, 38, 'Tarajal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27792, 38, 'Tesbabo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27793, 38, 'Tierra de Costa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27794, 38, 'Tincer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27795, 38, 'Triana -Los Llanos de Aridane-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27796, 38, 'Triana -El Paso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27797, 38, 'Las Toscas -Sta.Cruz de Palma-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27798, 38, 'Tunez -Arona-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27799, 38, 'La Vega -S.C. la Laguna-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27800, 38, 'Vega de Las Mercedes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27801, 38, 'Vento'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27802, 38, 'La Verada -Sta. Cruz de Palma-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27803, 38, 'Vicacaro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27804, 38, 'Zamora Baja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27805, 38, 'El Tanque-San Andres Y Sauces-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27806, 38, 'San Isidro -El Rosario-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27807, 38, 'Llano Moro Sta Cruz de Tenerife'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27808, 38, 'Poligono Industrial Guimar Candelaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27809, 38, 'Pol. Ind. Valle de Guimar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27810, 38, 'Los Llanos de Aridane'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27811, 38, 'Buzanada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27812, 38, 'Cuevas Blancas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27813, 38, 'Valleseco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27814, 38, 'Barranco del Rio -Arico-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27815, 38, 'Aaza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27816, 38, 'Costa Adeje'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27817, 38, 'El Guincho-Golf del Sur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27818, 38, 'Guargacho'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27819, 38, 'San Eugenio Alto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27820, 38, 'Playas de Faabe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27821, 38, 'La Gallega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27822, 38, 'Teror'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27823, 38, 'Villa de Arico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27824, 38, 'Guargacho'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27825, 38, 'Adeje'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27826, 38, 'Los Cristianos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27827, 38, 'Tranadia de Abona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27828, 38, 'La Gallega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27829, 38, 'Puerto Santiago Los Gigantes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27830, 38, 'Extension Armeime-Las Rosas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27831, 38, 'El Chorrillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27832, 38, 'Hoya Fria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27833, 38, 'Las Charifas San Miguel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27834, 38, 'Ciudad Universitaria (La Laguna)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27835, 38, 'Los Olivos-La Postura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27836, 38, 'El Rosario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27837, 38, 'San Andres Y Sauces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27838, 38, 'Villa de Mazo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27839, 38, 'Tabaiba Alta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27840, 38, 'Los Rodeos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27841, 38, 'Los Abriguitos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27842, 38, 'Brea Baja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27843, 38, 'Villa Isabel (Arona)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27844, 38, 'Residencial Torrelaguna(La Laguna)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27845, 38, 'Costa del Silencio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27846, 38, 'San Miguel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27847, 38, 'Urbanizacion Costanera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27848, 38, 'San Miguel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27849, 38, 'Trada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27850, 38, 'Urb.El Chacon(La Laguna)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27851, 38, 'La Cuesta -S.C. la Laguna-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27852, 39, 'Alceda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27853, 39, 'Ampuero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27854, 39, 'Arenas de Igua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27855, 39, 'Arroyo -Las Rozas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27856, 39, 'El Astillero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27857, 39, 'Gama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27858, 39, 'Barcena de Pie de Concha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27859, 39, 'Beranga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27860, 39, 'Cabezon de la Sal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27861, 39, 'Las Caldas de Besaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27862, 39, 'Caranceja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27863, 39, 'Cartes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27864, 39, 'Castro-Urdiales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27865, 39, 'La Cavada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27866, 39, 'Cicero -Barcena de Cicero-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27867, 39, 'Colindres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27868, 39, 'Comillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27869, 39, 'Corconte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27870, 39, 'Corrales Los'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27871, 39, 'Elechas -Marina de Cudeyo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27872, 39, 'Entrambasaguas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27873, 39, 'Escalante'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27874, 39, 'Guarnizo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27875, 39, 'El Puente -Guriezo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27876, 39, 'Hazas de Cesto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27877, 39, 'Hoz de Anero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27878, 39, 'Laredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27879, 39, 'Liendo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27880, 39, 'El Mercadillo -Lierganes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27881, 39, 'Limpias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27882, 39, 'Mioo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27883, 39, 'Molledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27884, 39, 'Noja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27885, 39, 'Onton'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27886, 39, 'Otaes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27887, 39, 'Pesquera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27888, 39, 'Pesues'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27889, 39, 'Puente San Miguel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27890, 39, 'Puente Viesgo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27891, 39, 'Ramales de la Victoria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27892, 39, 'Reinosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27893, 39, 'Renedo -Pielagos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27894, 39, 'La Iglesia -Ruiloba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27895, 39, 'Santander'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27896, 39, 'Santillana del Mar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27897, 39, 'Santoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27898, 39, 'San Vicente de la Barquera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27899, 39, 'Solares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27900, 39, 'Solorzano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27901, 39, 'Suances'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27902, 39, 'Torrelavega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27903, 39, 'Udalla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27904, 39, 'Viernoles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27905, 39, 'Villaverde de Pontones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27906, 39, 'Villaverde de Trucios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27907, 39, 'Mataporquera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27908, 39, 'Potes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27909, 39, 'Cobreces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27910, 39, 'Badames'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27911, 39, 'Santa Cruz de Bezana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27912, 39, 'Suesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27913, 39, 'Saron -Santa. Maria de Cayon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27914, 39, 'Selaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27915, 39, 'Villacarriedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27916, 39, 'San Miguel de Meruelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27917, 39, 'Polanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27918, 39, 'Vargas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27919, 39, 'Miengo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27920, 39, 'Orua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27921, 39, 'Rivero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27922, 39, 'Polientes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27923, 39, 'Luzmela-Mazcuerras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27924, 39, 'Ruente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27925, 39, 'Cabuerniga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27926, 39, 'Samano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27927, 39, 'Arredondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27928, 39, 'Matienzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27929, 39, 'Veguilla -Soba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27930, 39, 'Corvera de Toranzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27931, 39, 'Vega de Pas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27932, 39, 'Ogarrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27933, 39, 'Requejada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27934, 39, 'Soto de la Marina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27935, 39, 'Quijas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27936, 39, 'Reocin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27937, 39, 'Novales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27938, 39, 'Ruerrero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27939, 39, 'San Martin de Elines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27940, 39, 'Villanueva de la Nia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27941, 39, 'Bielva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27942, 39, 'Espinilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27943, 39, 'Matamorosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27944, 39, 'Puentenansa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27945, 39, 'Camaleo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27946, 39, 'Santa Cruz -Molledo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27947, 39, 'Liencres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27948, 39, 'San Miguel de Luena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27949, 39, 'San Vicente de Toranzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27950, 39, 'Iruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27951, 39, 'San Martin de Villafufre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27952, 39, 'Socobio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27953, 39, 'Pedrea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27954, 39, 'Pontejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27955, 39, 'Penagos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27956, 39, 'Villanueva -Villaescusa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27957, 39, 'Villanueva de la Pea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27958, 39, 'Ajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27959, 39, 'Saro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27960, 39, 'Argoos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27961, 39, 'Arnuero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27962, 39, 'Adal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27963, 39, 'Hazas -Soba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27964, 39, 'Saja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27965, 39, 'Gibaja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27966, 39, 'Regules'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27967, 39, 'Casatablas -Rozas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27968, 39, 'Mirones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27969, 39, 'San Roque de Riomiera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27970, 39, 'Aguera -Guriezo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27971, 39, 'Barreda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27972, 39, 'Entrambasmestas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27973, 39, 'Heras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27974, 39, 'Parbayon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27975, 39, 'Las Rozas de Valdearroyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27976, 39, 'Vega -Villafufre-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27977, 39, 'Castillo Pedroso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27978, 39, 'Cudon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27979, 39, 'Mogro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27980, 39, 'Prezanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27981, 39, 'Hinojedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27982, 39, 'Mar -Polanco-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27983, 39, 'Posadillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27984, 39, 'Rinconeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27985, 39, 'Silio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27986, 39, 'La Hayuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27987, 39, 'Pumalverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27988, 39, 'Roiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27989, 39, 'Treceo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27990, 39, 'Cerrazo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27991, 39, 'Villapresente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27992, 39, 'Barcena Mayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27993, 39, 'Barcenillas -Ruente-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27994, 39, 'Correpoco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27995, 39, 'Lamia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27996, 39, 'Los Tojos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27997, 39, 'Ucieda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27998, 39, 'Castillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (27999, 39, 'Guemes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28000, 39, 'Isla -Arnuero-'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28001, 39, 'Escobedo -Villafufre-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28002, 39, 'Rasillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28003, 39, 'San Pedro del Romeral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28004, 39, 'La Carcoba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28005, 39, 'Cotillo -Anievas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28006, 39, 'Nocina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28007, 39, 'Rioseco -Guriezo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28008, 39, 'Celis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28009, 39, 'Cosio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28010, 39, 'La Lastra -Tudanca-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28011, 39, 'Lombraa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28012, 39, 'Puente del Arrudo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28013, 39, 'Quintanilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28014, 39, 'Rasines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28015, 39, 'La Herran -Corrales de Buelna-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28016, 39, 'Helguera -Reocin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28017, 39, 'Villayuso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28018, 39, 'Riocorvo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28019, 39, 'Santiago -Cartes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28020, 39, 'Lamadrid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28021, 39, 'Caviedes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28022, 39, 'Labarces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28023, 39, 'San Vicente del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28024, 39, 'Vallines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28025, 39, 'Tama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28026, 39, 'Vega de Liebana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28027, 39, 'Cabezon de Liebana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28028, 39, 'Pesaguero Laparte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28029, 39, 'Cosgaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28030, 39, 'Espinama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28031, 39, 'Hornedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28032, 39, 'Somo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28033, 39, 'Galizano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28034, 39, 'Penilla La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28035, 39, 'Santibaez -Villacarriedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28036, 39, 'Las Presillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28037, 39, 'Praves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28038, 39, 'Boo -Pielagos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28039, 39, 'La Revilla -San Vte. Barquera-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28040, 39, 'Esles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28041, 39, 'Lloreda -Sta. Maria de Cayon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28042, 39, 'Queveda -Santillana del Mar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28043, 39, 'San Roman -Santa Maria Cayon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28044, 39, 'El Tejo -Valdaliga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28045, 39, 'La Vega -Valdaliga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28046, 39, 'Sel de la Carrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28047, 39, 'Arroyal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28048, 39, 'Fontibre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28049, 39, 'La Costana -Campoo de Yuso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28050, 39, 'La Cocina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28051, 39, 'San Pedro -Valdaliga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28052, 39, 'Pechon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28053, 39, 'Serdio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28054, 39, 'Llano -Las Rozas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28055, 39, 'Mata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28056, 39, 'San Miguel de Aguayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28057, 39, 'Santiurde de Reinosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28058, 39, 'Helguera -Molledo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28059, 39, 'San Mames de Meruelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28060, 39, 'Riao de Ibio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28061, 39, 'Herrera de Ibio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28062, 39, 'Casar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28063, 39, 'Santullan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28064, 39, 'Talledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28065, 39, 'Cerdigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28066, 39, 'Islares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28067, 39, 'Orion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28068, 39, 'Allendelagua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28069, 39, 'Cohio Puente Viesgo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28070, 39, 'Hijas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28071, 39, 'Coo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28072, 39, 'Omoo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28073, 39, 'Argomilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28074, 39, 'La Poblacion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28075, 39, 'Abionzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28076, 39, 'Aloos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28077, 39, 'Tezanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28078, 39, 'Barriopalacio -Anievas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28079, 39, 'Bostronizo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28080, 39, 'Calga -Anievas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28081, 39, 'Pedredo -Arenas de Igua-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28082, 39, 'San Cristobal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28083, 39, 'Villasuso -Anievas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28084, 39, 'Barrio Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28085, 39, 'Cabarceno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28086, 39, 'Sobarzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28087, 39, 'Borlea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28088, 39, 'San Martin -Santiurde Toranzo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28089, 39, 'Villasevil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28090, 39, 'Resconorio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28091, 39, 'Rudaguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28092, 39, 'Orea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28093, 39, 'Toanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28094, 39, 'Ojebar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28095, 39, 'Vejoris'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28096, 39, 'Unquera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28097, 39, 'Barcenilla -Pielagos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28098, 39, 'Fresneda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28099, 39, 'Renedo -Cabuerniga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28100, 39, 'Sopea -Cabuerniga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28101, 39, 'Teran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28102, 39, 'Viaa -Cabuerniga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28103, 39, 'Pie de Concha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28104, 39, 'Pujayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28105, 39, 'Riba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28106, 39, 'Valle -Ruesga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28107, 39, 'Llerana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28108, 39, 'Retortillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28109, 39, 'Puente Pumar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28110, 39, 'Salceda -Polaciones-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28111, 39, 'San Mames'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28112, 39, 'Santa Eulalia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28113, 39, 'Tresabuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28114, 39, 'Uznayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28115, 39, 'Ahedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28116, 39, 'La Aparecida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28117, 39, 'Cerbiago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28118, 39, 'Belmonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28119, 39, 'Valvanuz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28120, 39, 'Pisuea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28121, 39, 'Buyezo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28122, 39, 'Frama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28123, 39, 'Piasca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28124, 39, 'Valdeprado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28125, 39, 'Carasa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28126, 39, 'Maliao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28127, 39, 'La Hermida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28128, 39, 'La Montaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28129, 39, 'Bolmir'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28130, 39, 'Caeda -Campoo de Enmedio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28131, 39, 'Luey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28132, 39, 'Barcenaciones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28133, 39, 'Cabanzon -Herrerias-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28134, 39, 'Carandia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28135, 39, 'Zurita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28136, 39, 'Bedico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28137, 39, 'San Miguel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28138, 39, 'Villar -Soba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28139, 39, 'Quintana -Soba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28140, 39, 'San Pedro -Soba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28141, 39, 'Arce'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28142, 39, 'Gandarilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28143, 39, 'Villabaez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28144, 39, 'Callecedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28145, 39, 'Cotillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28146, 39, 'La Laguna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28147, 39, 'Barreda -Pesaguero-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28148, 39, 'Bueras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28149, 39, 'Fresnedo -Soba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28150, 39, 'Pomaluengo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28151, 39, 'Ruiseada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28152, 39, 'San Miguel de Aras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28153, 39, 'San Pantaleon de Aras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28154, 39, 'San Sebastian de Garabandal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28155, 39, 'Sea -Limpias-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28156, 39, 'Secadura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28157, 39, 'Bareyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28158, 39, 'Aja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28159, 39, 'Santayana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28160, 39, 'Cades'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28161, 39, 'Camijanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28162, 39, 'Esanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28163, 39, 'Trebuesto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28164, 39, 'Hortigal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28165, 39, 'Ubiarco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28166, 39, 'Cos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28167, 39, 'Fresnedo -Alfoz de Lloredo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28168, 39, 'Lloredo -Alfoz de Lloredo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28169, 39, 'Barrio -Vega de Liebana-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28170, 39, 'Bores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28171, 39, 'Campollo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28172, 39, 'Enterrias -Vega de Liebana-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28173, 39, 'Ledantes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28174, 39, 'Pollayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28175, 39, 'El Tojo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28176, 39, 'Tollo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28177, 39, 'Toranzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28178, 39, 'Tudes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28179, 39, 'Vada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28180, 39, 'Valmeo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28181, 39, 'Villaverde -Vega de Liebana-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28182, 39, 'Barago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28183, 39, 'Dobarganes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28184, 39, 'Dobres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28185, 39, 'Lusa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28186, 39, 'Prio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28187, 39, 'Soberado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28188, 39, 'Valcayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28189, 39, 'Vejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28190, 39, 'Abanillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28191, 39, 'Arenal -Penagos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28192, 39, 'Bustablado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28193, 39, 'La Busta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28194, 39, 'Ciguenza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28195, 39, 'Cueva La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28196, 39, 'Monegro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28197, 39, 'Orzales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28198, 39, 'Carmona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28199, 39, 'Trillayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28200, 39, 'Prases'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28201, 39, 'Santiurde de Toranzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28202, 39, 'Valmoreda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28203, 39, 'Llanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28204, 39, 'Bustancilles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28205, 39, 'Abiada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28206, 39, 'Barrio -Hermandad Campoo Suso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28207, 39, 'Entrambasaguas -Hermandad C.S.'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28208, 39, 'Naveda -Hermandad de Campo S.-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28209, 39, 'Paracuelles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28210, 39, 'Salces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28211, 39, 'Villacantid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28212, 39, 'Celada de Los Calderones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28213, 39, 'Hoz de Abiada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28214, 39, 'Villar -Hermandad Campoo Suso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28215, 39, 'Incedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28216, 39, 'Lebea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28217, 39, 'La Revilla -Soba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28218, 39, 'Sangas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28219, 39, 'San Juan -Soba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28220, 39, 'San Martin -Soba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28221, 39, 'Rozas -Soba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28222, 39, 'Rozadio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28223, 39, 'Collado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28224, 39, 'Astrana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28225, 39, 'Lavin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28226, 39, 'Pilas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28227, 39, 'Rehoyos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28228, 39, 'Villaverde -Soba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28229, 39, 'Nates'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28230, 39, 'Ormas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28231, 39, 'Proao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28232, 39, 'Rada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28233, 39, 'La Serna-Hermandad Campoo Suso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28234, 39, 'Soto -Hermandad Campoo Suso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28235, 39, 'Susvilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28236, 39, 'Camino -Hermandad Campoo Suso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28237, 39, 'Mia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28238, 39, 'Aniezo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28239, 39, 'Caloca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28240, 39, 'Cambarco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28241, 39, 'Cueva -Pesaguero-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28242, 39, 'Lamedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28243, 39, 'Lomea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28244, 39, 'Obargo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28245, 39, 'San Andres-Cabezon de Liebana-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28246, 39, 'Torices'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28247, 39, 'Castro -Cillorigo Castro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28248, 39, 'Esponzues'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28249, 39, 'Guardamino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28250, 39, 'Mijares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28251, 39, 'Pando -Santiurde de Toranzo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28252, 39, 'Penilla -Santiurde de Toranzo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28253, 39, 'Pondra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28254, 39, 'Riancho'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28255, 39, 'Rumoroso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28256, 39, 'Soa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28257, 39, 'Vendejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28258, 39, 'Helgueras -Val de San Vicente-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28259, 39, 'Tarrueza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28260, 39, 'Canales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28261, 39, 'Cobijon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28262, 39, 'Dua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28263, 39, 'El Llano -Udias-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28264, 39, 'Rodezas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28265, 39, 'Toporias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28266, 39, 'Valoria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28267, 39, 'La Virgen -Udias-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28268, 39, 'Cillero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28269, 39, 'Cucayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28270, 39, 'Izara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28271, 39, 'Lanchares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28272, 39, 'Poblacion de Suso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28273, 39, 'Suano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28274, 39, 'Mogrovejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28275, 39, 'Lerones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28276, 39, 'Mazandrero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28277, 39, 'Santotis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28278, 39, 'Totero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28279, 39, 'Lantueno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28280, 39, 'Linares -Pearrubia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28281, 39, 'Rioseco -Santiurde de Reinosa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28282, 39, 'Somballe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28283, 39, 'Valcaba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28284, 39, 'Moncalian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28285, 39, 'Lomea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28286, 39, 'Pejanda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28287, 39, 'Pembes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28288, 39, 'Barago Carretera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28289, 39, 'Dos Amantes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28290, 39, 'Ojedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28291, 39, 'Abao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28292, 39, 'San Martin de Quevedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28293, 39, 'Argueso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28294, 39, 'La Acebosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28295, 39, 'Helguero -Ramales de Victoria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28296, 39, 'Tresviso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28297, 39, 'Turieno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28298, 39, 'Rabago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28299, 39, 'San Pedro de Las Baheras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28300, 39, 'Santa Maria de Cayon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28301, 39, 'Las Carcobas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28302, 39, 'Cabrojo -Cabezon de la Sal-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28303, 39, 'Liandres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28304, 39, 'Pando -Ruiloba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28305, 39, 'Periedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28306, 39, 'Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28307, 39, 'Trasierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28308, 39, 'Avellanedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28309, 39, 'Hermosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28310, 39, 'Los Llaos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28311, 39, 'Mijarojos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28312, 39, 'Lafuente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28313, 39, 'Riao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28314, 39, 'Igollo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28315, 39, 'Tagle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28316, 39, 'Escobedo -Camargo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28317, 39, 'Casamaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28318, 39, 'Luriezo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28319, 39, 'Santiago -Medio Cudeyo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28320, 39, 'San Vitores -Medio Cudeyo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28321, 39, 'Quintana de Toranzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28322, 39, 'Areos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28323, 39, 'Otero -Herrerias-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28324, 39, 'Angustina Voto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28325, 39, 'Orejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28326, 39, 'San Vitores -Valdeprado Rio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28327, 39, 'Mercadal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28328, 39, 'Corral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28329, 39, 'Selviejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28330, 39, 'Yermo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28331, 39, 'Armao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28332, 39, 'Cabaes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28333, 39, 'Cobea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28334, 39, 'Colio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28335, 39, 'Congarna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28336, 39, 'Estrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28337, 39, 'Lon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28338, 39, 'Pendes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28339, 39, 'Prellezo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28340, 39, 'Bodia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28341, 39, 'Cahecho'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28342, 39, 'Horna de Ebro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28343, 39, 'Liao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28344, 39, 'Obregon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28345, 39, 'Pumarea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28346, 39, 'Salarzon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28347, 39, 'San Pedro -Cillorigo Castro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28348, 39, 'Vallejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28349, 39, 'Vion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28350, 39, 'Cervatos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28351, 39, 'Villasuso -Cieza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28352, 39, 'Maoo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28353, 39, 'Celucos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28354, 39, 'Obeso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28355, 39, 'Portillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28356, 39, 'Riclones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28357, 39, 'Baro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28358, 39, 'Beares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28359, 39, 'Besoy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28360, 39, 'La Frecha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28361, 39, 'Las Ilces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28362, 39, 'Los Llanos -Camaleo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28363, 39, 'Llaves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28364, 39, 'Pido'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28365, 39, 'Redo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28366, 39, 'San Pelayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28367, 39, 'Trevio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28368, 39, 'Brez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28369, 39, 'Tanarrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28370, 39, 'Isequilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28371, 39, 'La Puente del Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28372, 39, 'Rebollar de Ebro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28373, 39, 'Villaescusa de Ebro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28374, 39, 'Rocamundo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28375, 39, 'El Mazo -Valdaliga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28376, 39, 'Quintanilla de An'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28377, 39, 'Herreria La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28378, 39, 'Ruanales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28379, 39, 'Villota de Elines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28380, 39, 'Arenillas de Ebro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28381, 39, 'Espinosa de Bricia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28382, 39, 'Vidular'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28383, 39, 'Bejes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28384, 39, 'Bustaleguin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28385, 39, 'La Sota'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28386, 39, 'Llanez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28387, 39, 'San Mames de Aras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28388, 39, 'Padierniga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28389, 39, 'San Bartolome de Los Montes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28390, 39, 'Vegaloscorrales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28391, 39, 'Villapaderne'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28392, 39, 'Sebrango'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28393, 39, 'Ruijas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28394, 39, 'Sobrepea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28395, 39, 'Villaverde de Hito'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28396, 39, 'Campo de Ebro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28397, 39, 'Arguebanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28398, 39, 'Cuena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28399, 39, 'Olea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28400, 39, 'Las Henestrosas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28401, 39, 'Sotillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28402, 39, 'Reocin de Los Molinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28403, 39, 'Valdeprado del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28404, 39, 'Hormiguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28405, 39, 'Mentera Barruelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28406, 39, 'Villaescusa-Campoo de Enmedio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28407, 39, 'Fresno del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28408, 39, 'Bustiyerro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28409, 39, 'Vega Corredor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28410, 39, 'Quintana La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28411, 39, 'Caborredondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28412, 39, 'Barreda -Pesaguero-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28413, 39, 'Cambarco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28414, 39, 'Casares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28415, 39, 'Somaniego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28416, 39, 'Ceceo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28417, 39, 'Campo Cruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28418, 39, 'Pontones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28419, 39, 'Cubas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28420, 39, 'Puente Aguero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28421, 39, 'Anaz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28422, 39, 'Bustantegua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28423, 39, 'Campillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28424, 39, 'Pedroso -Villacarriedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28425, 39, 'Penilla -Villafufre-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28426, 39, 'Villafufre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28427, 39, 'Rubayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28428, 39, 'Setien'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28429, 39, 'Aguero -Marina de Cudeyo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28430, 39, 'Ongayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28431, 39, 'Puente Avios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28432, 39, 'San Vicente de Leon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28433, 39, 'Ibio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28434, 39, 'Selores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28435, 39, 'Cobejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28436, 39, 'Rascon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28437, 39, 'Estacion La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28438, 39, 'Herada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28439, 39, 'San Bartolome de Meruelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28440, 39, 'Ruilobuca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28441, 39, 'Trasvia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28442, 39, 'Rioturbio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28443, 39, 'Muorrodero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28444, 39, 'El Barcenal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28445, 39, 'Perrozo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28446, 39, 'Pieres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28447, 39, 'Cicera -Pearrubia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28448, 39, 'Navedo -Pearrubia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28449, 39, 'Fontecha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28450, 39, 'Villasuso -Campoo de Yuso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28451, 39, 'Bustamante'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28452, 39, 'Santa Maria de Aguayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28453, 39, 'Celada Marlantes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28454, 39, 'Fombellida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28455, 39, 'La Abadilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28456, 39, 'Acereda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28457, 39, 'Adino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28458, 39, 'Aes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28459, 39, 'Aliezo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28460, 39, 'Alisas -Arredondo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28461, 39, 'Ambrosero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28462, 39, 'Anero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28463, 39, 'Angostina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28464, 39, 'Arcera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28465, 39, 'El Arco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28466, 39, 'Arenosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28467, 39, 'Arronte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28468, 39, 'Arroyo -Santillana del Mar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28469, 39, 'Ason'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28470, 39, 'El Avellanal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28471, 39, 'Azoos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28472, 39, 'Balbacienta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28473, 39, 'Baltezana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28474, 39, 'Baranda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28475, 39, 'Barcena -Santiurde de Toranzo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28476, 39, 'La Barcena -Ampuero-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28477, 39, 'Barcena de Cudon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28478, 39, 'Barcena de Ebro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28479, 39, 'La Barquera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28480, 39, 'Barrio Obrero -Polanco-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28481, 39, 'Barros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28482, 39, 'Barruelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28483, 39, 'Bernales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28484, 39, 'Bollacin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28485, 39, 'Boo -Astillero-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28486, 39, 'Borroto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28487, 39, 'Bosque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28488, 39, 'Bulco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28489, 39, 'Bustasur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28490, 39, 'Bustriguado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28491, 39, 'Cabanzo -Noja-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28492, 39, 'Cabrojo -Rionansa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28493, 39, 'Cacicedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28494, 39, 'La Cagigoja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28495, 39, 'Callejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28496, 39, 'Camargo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28497, 39, 'Camino El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28498, 39, 'Camplengo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28499, 39, 'Campuzano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28500, 39, 'Candolias'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28501, 39, 'Cantolla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28502, 39, 'Caedo -Soba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28503, 39, 'Cara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28504, 39, 'Carazon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28505, 39, 'Caramigel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28506, 39, 'Carrascal de Cocejon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28507, 39, 'Carrejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28508, 39, 'Carriazo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28509, 39, 'Casa del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28510, 39, 'Casavieja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28511, 39, 'Casillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28512, 39, 'Castrillo del Haya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28513, 39, 'Ceceas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28514, 39, 'Cereceda -Rasines-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28515, 39, 'Cerecedas -Argoos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28516, 39, 'Cires'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28517, 39, 'Concha La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28518, 39, 'La Concha -Villaescusa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28519, 39, 'El Condado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28520, 39, 'Cornocio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28521, 39, 'Corra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28522, 39, 'Cortiguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28523, 39, 'Cortinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28524, 39, 'Barcena de Cicero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28525, 39, 'Cristo Carasa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28526, 39, 'Cuchia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28527, 39, 'Cueto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28528, 39, 'Dualez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28529, 39, 'Dueso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28530, 39, 'La Edilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28531, 39, 'La Encina -Santa Maria Cayon-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28532, 39, 'Entrepuentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28533, 39, 'Las Fraguas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28534, 39, 'Francos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28535, 39, 'Fresnedo -Solorzano-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28536, 39, 'Fresno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28537, 39, 'Gajano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28538, 39, 'Ganzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28539, 39, 'Garzon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28540, 39, 'Golbardo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28541, 39, 'Gornazo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28542, 39, 'Hazas -Liendo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28543, 39, 'Helgueras -Noja-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28544, 39, 'Herran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28545, 39, 'Herrera -Camargo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28546, 39, 'Barrio Hoz de Marron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28547, 39, 'Hoznayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28548, 39, 'La Iglesia -Arredondo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28549, 39, 'Irias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28550, 39, 'Iseca Nueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28551, 39, 'Iseca Vieja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28552, 39, 'Isequilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28553, 39, 'Isla de Pedrosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28554, 39, 'Jain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28555, 39, 'Landeral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28556, 39, 'Langre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28557, 39, 'Larteme'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28558, 39, 'La Lastra -Escalante-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28559, 39, 'Liermo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28560, 39, 'La Lombana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28561, 39, 'Lombera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28562, 39, 'Loredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28563, 39, 'Llano -San Felices de Buelna-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28564, 39, 'Los Llares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28565, 39, 'Llatazos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28566, 39, 'Magdalena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28567, 39, 'Marron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28568, 39, 'Matarrepudio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28569, 39, 'El Mazo -Ramales de Victoria-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28570, 39, 'Mediadoro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28571, 39, 'Mendina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28572, 39, 'Mieses'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28573, 39, 'Mollaneda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28574, 39, 'Molleda -Val de San Vicente-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28575, 39, 'Mompia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28576, 39, 'Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28577, 39, 'Montehano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28578, 39, 'Montes Claros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28579, 39, 'Mortera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28580, 39, 'Muriedas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28581, 39, 'Navajeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28582, 39, 'Nestares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28583, 39, 'Noval -Liendo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28584, 39, 'Ocejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28585, 39, 'Ontaneda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28586, 39, 'Ontoria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28587, 39, 'Palacio -Noja-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28588, 39, 'Los Palacios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28589, 39, 'Pandos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28590, 39, 'Pedreo -Rionansa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28591, 39, 'Pedroso -Noja-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28592, 39, 'Penilla -Luena-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28593, 39, 'Peacastillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28594, 39, 'Perujo El'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28595, 39, 'Pesquera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28596, 39, 'Piedrahita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28597, 39, 'Pieragullano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28598, 39, 'Pilas Las'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28599, 39, 'Pomar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28600, 39, 'Portilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28601, 39, 'El Prado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28602, 39, 'Puente La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28603, 39, 'Puerta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28604, 39, 'Pumares Los'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28605, 39, 'Quijano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28606, 39, 'Quintana -Penagos-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28607, 39, 'Regolfo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28608, 39, 'El Rellano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28609, 39, 'Requejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28610, 39, 'Revilla -Camargo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28611, 39, 'Revilla -Riotuerto-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28612, 39, 'Revilla -Guriezo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28613, 39, 'Riao de Escalante'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28614, 39, 'Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28615, 39, 'Riolastras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28616, 39, 'Rionegro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28617, 39, 'Rioseco -Rionansa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28618, 39, 'Ris'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28619, 39, 'Riva La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28620, 39, 'Rocillo -Ampuero-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28621, 39, 'Rocillo -Liendo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28622, 39, 'Rocillo -Rasines-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28623, 39, 'Rota-Fonegra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28624, 39, 'Roza La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28625, 39, 'Rubarcena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28626, 39, 'Rucandio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28627, 39, 'Rumoroso Mijares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28628, 39, 'Salto del Oso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28629, 39, 'San Andres -Valdeprado Rio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28630, 39, 'San Andres -Luena-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28631, 39, 'San Esteban'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28632, 39, 'San Juan -Colindres-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28633, 39, 'San Juan de Raicedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28634, 39, 'San Martin de Hoyos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28635, 39, 'San Mateo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28636, 39, 'San Roman'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28637, 39, 'San Roque -Colindres-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28638, 39, 'San Salvador'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28639, 39, 'Sancibrian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28640, 39, 'Santa Agueda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28641, 39, 'Santa Cruz -Guriezo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28642, 39, 'Santa Cruz -Rasines-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28643, 39, 'Santa Marina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28644, 39, 'Santa Olalla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28645, 39, 'Santillan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28646, 39, 'Santiuste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28647, 39, 'Santo Toribio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28648, 39, 'Santolaja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28649, 39, 'Sarceda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28650, 39, 'Santibaez -Cabezon de la Sal-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28651, 39, 'Sel del Manzano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28652, 39, 'Seminario Pontificio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28653, 39, 'La Serna -Arenas de Igua-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28654, 39, 'Sierra Alcomba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28655, 39, 'Sierra de Ibio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28656, 39, 'Sierra Elsa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28657, 39, 'Sierrapando'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28658, 39, 'Soano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28659, 39, 'Sobremazas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28660, 39, 'Sobrepenilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28661, 39, 'Socueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28662, 39, 'Solamaza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28663, 39, 'Solana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28664, 39, 'Somahoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28665, 39, 'Somarriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28666, 39, 'Sopenilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28667, 39, 'Sopea -Liendo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28668, 39, 'Sovilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28669, 39, 'Tabernilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28670, 39, 'Tabladillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28671, 39, 'Tanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28672, 39, 'Tarriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28673, 39, 'Torcollano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28674, 39, 'Tresagua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28675, 39, 'Torres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28676, 39, 'Tudanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28677, 39, 'Valdecilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28678, 39, 'Valdicio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28679, 39, 'Valles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28680, 39, 'Valles Los'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28681, 39, 'Veares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28682, 39, 'La Veguilla -Reocin-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28683, 39, 'Ventorrillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28684, 39, 'Vernejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28685, 39, 'Villamoico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28686, 39, 'Villanueva -Valdaliga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28687, 39, 'Villanueva -Liendo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28688, 39, 'Villanueva-Villaverde Trucios-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28689, 39, 'Villaparte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28690, 39, 'Villaviad'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28691, 39, 'Villegar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28692, 39, 'Vioo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28693, 39, 'Virgen de la Pea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28694, 39, 'Vispieres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28695, 39, 'Viveda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28696, 39, 'Yuso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28697, 39, 'Llueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28698, 39, 'Laiseca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28699, 39, 'Castanedo -Ribamontan Al Mar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28700, 39, 'Pesaguero Laparte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28701, 39, 'Malataja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28702, 39, 'Sobrelapea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28703, 39, 'Bercedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28704, 39, 'Carrascal de San Miguel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28705, 39, 'Llayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28706, 39, 'Aldea de Ebro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28707, 39, 'Casasola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28708, 39, 'Treto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28709, 39, 'Bucarrero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28710, 39, 'Tarriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28711, 39, 'Calgar -Lierganes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28712, 39, 'La Costera -Lierganes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28713, 39, 'Los Prados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28714, 39, 'La Raada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28715, 39, 'Rubalcaba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28716, 39, 'Vega La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28717, 39, 'Ancillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28718, 39, 'Renedo -Las Rozas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28719, 39, 'Barriopalacio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28720, 39, 'Servillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28721, 39, 'Quintanamanil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28722, 39, 'Villanueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28723, 39, 'Bimon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28724, 39, 'El Cerro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28725, 39, 'Helguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28726, 39, 'Barcena de Carriedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28727, 39, 'Concha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28728, 39, 'Aldueso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28729, 39, 'Aradillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28730, 39, 'Camesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28731, 39, 'La Quintana -Valdeolea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28732, 39, 'Las Quintanillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28733, 39, 'Rebolledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28734, 39, 'Guzparras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28735, 39, 'Viaa -Vega de Pas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28736, 39, 'La Gurueba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28737, 39, 'El Alvareo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28738, 39, 'El Portillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28739, 39, 'La Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28740, 39, 'Yera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28741, 39, 'Lomba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28742, 39, 'La Aguilera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28743, 39, 'Aldano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28744, 39, 'Calseca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28745, 39, 'Montecillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28746, 39, 'Poblacion de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28747, 39, 'Riopanero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28748, 39, 'Sel de la Pea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28749, 39, 'Tablado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28750, 39, 'Rocias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28751, 39, 'El Haya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28752, 39, 'Rucandio -Valderredible-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28753, 39, 'Quintanilla de Rucandio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28754, 39, 'Castrillo de Valdelomar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28755, 39, 'Mata de Hoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28756, 39, 'Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28757, 39, 'La Peredilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28758, 39, 'Vegalosvados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28759, 39, 'Morilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28760, 39, 'Riosapero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28761, 39, 'Reinosilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28762, 39, 'Los Pumares -Herrerias-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28763, 39, 'Soto -Villacarriedo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28764, 39, 'Mortesante'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28765, 39, 'Caldas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28766, 39, 'Roza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28767, 39, 'Arenas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28768, 39, 'Cotera La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28769, 39, 'Bustillo del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28770, 39, 'San Cristobal del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28771, 39, 'San Martin de Valdelomar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28772, 39, 'Salcedo -Valderredible-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28773, 39, 'Linto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28774, 39, 'Renedo de Bricia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28775, 39, 'Palacio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28776, 39, 'Ason -Arredondo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28777, 39, 'Quintana -Campoo de Yuso-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28778, 39, 'Servillejas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28779, 39, 'La Venta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28780, 39, 'Sel del Tojo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28781, 39, 'Susilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28782, 39, 'Pandillo -Vega de Pas-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28783, 39, 'Burio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28784, 39, 'Coterillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28785, 39, 'Torquiendo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28786, 39, 'Bustasur -Luena-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28787, 39, 'Extremera -Lierganes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28788, 39, 'La Rabia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28789, 39, 'Posajo Penias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28790, 39, 'Alisas -Ampuero-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28791, 39, 'Vear de Udalla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28792, 39, 'Lendagua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28793, 39, 'El Llano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28794, 39, 'Lugarejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28795, 39, 'Ranero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28796, 39, 'La Pesquera -Laredo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28797, 39, 'Ribamontan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28798, 39, 'Bustidoo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28799, 39, 'Cubillo de Ebro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28800, 39, 'Camaleo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28801, 39, 'Corvera de Toranzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28802, 39, 'Valdaliga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28803, 39, 'Hoyos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28804, 39, 'La Serna -Valderredible-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28805, 39, 'Soto Rucandio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28806, 39, 'Castillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28807, 39, 'Alfoz de Lloredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28808, 39, 'Voto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28809, 39, 'Villaescusa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28810, 39, 'Casar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28811, 39, 'Santillana del Mar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28812, 39, 'Los Corrales de Buelna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28813, 39, 'Ruesga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28814, 39, 'Cillorigo de Liebana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28815, 39, 'Castaeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28816, 39, 'Pearrubia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28817, 39, 'Barrio -Vega de Liebana-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28818, 39, 'Noja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28819, 39, 'Liendo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28820, 39, 'Ruiloba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28821, 39, 'Meruelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28822, 39, 'Guriezo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28823, 39, 'San Felices de Buelna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28824, 39, 'Lierganes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28825, 39, 'Pamanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28826, 39, 'Mazcuerras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28827, 39, 'Cabuergurniga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28828, 39, 'Herrera -Camargo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28829, 39, 'Puente Arce (Valle del Pielago)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28830, 40, 'Aguilafuente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28831, 40, 'Aldea Real'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28832, 40, 'Bernardos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28833, 40, 'Bernuy de Porreros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28834, 40, 'Boceguillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28835, 40, 'Cabezuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28836, 40, 'Cantalejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28837, 40, 'Cantimpalos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28838, 40, 'Carbonero El Mayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28839, 40, 'Castillejo de Mesleon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28840, 40, 'Cerezo de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28841, 40, 'Cuellar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28842, 40, 'Escalona del Prado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28843, 40, 'El Espinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28844, 40, 'Estacion de El Espinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28845, 40, 'Fuentepelayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28846, 40, 'San Ildefonso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28847, 40, 'Honrubia Cuesta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28848, 40, 'Hontalbilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28849, 40, 'Labajos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28850, 40, 'La Losa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28851, 40, 'Martin Muoz de Las Posadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28852, 40, 'Montuenga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28853, 40, 'Mozoncillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28854, 40, 'Navalmanzano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28855, 40, 'Navas de Riofrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28856, 40, 'Navas de San Antonio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28857, 40, 'Otero de Herreros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28858, 40, 'Revenga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28859, 40, 'Riaza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28860, 40, 'San Cristobal de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28861, 40, 'Sanchonuo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28862, 40, 'San Rafael'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28863, 40, 'Segovia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28864, 40, 'Sepulveda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28865, 40, 'Turegano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28866, 40, 'Valverde del Majano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28867, 40, 'Veganzones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28868, 40, 'Villacastin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28869, 40, 'Coca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28870, 40, 'Ayllon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28871, 40, 'Nava de la Asuncion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28872, 40, 'Santa Maria la Real de Nieva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28873, 40, 'Bercimuel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28874, 40, 'Campo de San Pedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28875, 40, 'Pinarejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28876, 40, 'Lastras de Cuellar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28877, 40, 'Navas de Oro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28878, 40, 'Zamarramala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28879, 40, 'Santiuste de San Juan Bautista'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28880, 40, 'Pradena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28881, 40, 'Frumales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28882, 40, 'Vallelado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28883, 40, 'Arroyo de Cuellar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28884, 40, 'Navafria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28885, 40, 'Fuenterrebollo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28886, 40, 'Valdesimonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28887, 40, 'Abades'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28888, 40, 'Samboal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28889, 40, 'Ortigosa del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28890, 40, 'Miguelaez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28891, 40, 'Arcones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28892, 40, 'Matabuena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28893, 40, 'Mudrian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28894, 40, 'Sauquillo de Cabezas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28895, 40, 'Collado Hermoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28896, 40, 'Zarzuela del Pinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28897, 40, 'Chae'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28898, 40, 'Fresneda de Cuellar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28899, 40, 'Fuente El Olmo de Iscar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28900, 40, 'Villaverde de Iscar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28901, 40, 'Pinarnegrillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28902, 40, 'El Guijar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28903, 40, 'Muoveros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28904, 40, 'San Pedro de Gaillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28905, 40, 'Chavida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28906, 40, 'Pedraza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28907, 40, 'Campo de Cuellar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28908, 40, 'Ceguilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28909, 40, 'Gallegos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28910, 40, 'La Matilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28911, 40, 'Sebulcor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28912, 40, 'Nieva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28913, 40, 'Ortigosa de Pestao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28914, 40, 'Mata de Cuellar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28915, 40, 'Carbonero de Ahusin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28916, 40, 'Encinillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28917, 40, 'Roda de Eresma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28918, 40, 'Tabanera la Luenga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28919, 40, 'Valseca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28920, 40, 'Yanguas de Eresma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28921, 40, 'Gomezserracin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28922, 40, 'Narros de Cuellar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28923, 40, 'Escarabajosa de Cabezas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28924, 40, 'Ciruelos de Coca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28925, 40, 'Fuente Santa Cruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28926, 40, 'Villagonzalo de Coca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28927, 40, 'Villeguillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28928, 40, 'Aldeanueva del Codonal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28929, 40, 'Aldehuela del Codonal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28930, 40, 'Moraleja de Coca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28931, 40, 'Navalilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28932, 40, 'Hontanares de Eresma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28933, 40, 'Los Huertos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28934, 40, 'Fuentiduea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28935, 40, 'Calabazas de Fuentiduea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28936, 40, 'Cozuelos de Fuentiduea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28937, 40, 'Fuentepiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28938, 40, 'Sacramenia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28939, 40, 'San Miguel de Bernuy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28940, 40, 'Vegafria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28941, 40, 'Fuente El Olmo de Fuentiduea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28942, 40, 'Torrecilla del Pinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28943, 40, 'Aldeasoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28944, 40, 'Fuentesauco de Fuentiduea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28945, 40, 'Fuentesoto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28946, 40, 'Membibre de la Hoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28947, 40, 'Olombrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28948, 40, 'Valtiendas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28949, 40, 'Martin Miguel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28950, 40, 'Torreadrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28951, 40, 'Cobos de Fuentiduea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28952, 40, 'Aldeonsancho'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28953, 40, 'Torre Val de San Pedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28954, 40, 'El Arenal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28955, 40, 'Arevalillo de Cega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28956, 40, 'Rebollo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28957, 40, 'San Cristobal de Cuellar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28958, 40, 'Cuevas de Provanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28959, 40, 'Cubillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28960, 40, 'Anaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28961, 40, 'Ae'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28962, 40, 'Armua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28963, 40, 'Remondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28964, 40, 'Carrascal del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28965, 40, 'Torreiglesias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28966, 40, 'Puebla de Pedraza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28967, 40, 'Hoyuelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28968, 40, 'Melque de Cercos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28969, 40, 'Chatun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28970, 40, 'Pecharroman'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28971, 40, 'Garcillan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28972, 40, 'Fuentiduea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28973, 40, 'Donhierro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28974, 40, 'Montejo de Arevalo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28975, 40, 'Ituero Y Lama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28976, 40, 'Zarzuela del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28977, 40, 'Maderuelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28978, 40, 'Moral de Hornuez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28979, 40, 'Dehesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28980, 40, 'Dehesa Mayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28981, 40, 'Fuentes de Cuellar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28982, 40, 'Lovingos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28983, 40, 'Adrados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28984, 40, 'Barbolla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28985, 40, 'Vivar de Fuentiduea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28986, 40, 'Hontoria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28987, 40, 'Casla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28988, 40, 'Otones de Benjumea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28989, 40, 'Villaverde de Montejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28990, 40, 'Valdevacas de Montejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28991, 40, 'Fresno de la Fuente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28992, 40, 'Pradales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28993, 40, 'Carabias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28994, 40, 'Montejo de la Vega Serrezuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28995, 40, 'Cerezo de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28996, 40, 'Villarejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28997, 40, 'Siguero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28998, 40, 'Sigueruelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (28999, 40, 'Riofrio de Riaza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29000, 40, 'Turrubuelo'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29001, 40, 'Grajera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29002, 40, 'Pajarejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29003, 40, 'Cedillo de la Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29004, 40, 'Cilleruelo de San Mames'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29005, 40, 'Fuentemizarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29006, 40, 'Valdevarnes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29007, 40, 'Riaguas San Bartolome'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29008, 40, 'Corral de Ayllon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29009, 40, 'Fresno de Cantespino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29010, 40, 'Alconada de Maderuelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29011, 40, 'Aldealengua de Santa Maria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29012, 40, 'Languilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29013, 40, 'Ribota'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29014, 40, 'Domingo Garcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29015, 40, 'Juarros de Voltoya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29016, 40, 'Ochando'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29017, 40, 'Laguna Rodrigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29018, 40, 'Pinilla Ambroz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29019, 40, 'Tabladillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29020, 40, 'Aragoneses'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29021, 40, 'Balisa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29022, 40, 'Paradinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29023, 40, 'Villoslada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29024, 40, 'Palazuelos de Eresma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29025, 40, 'Espirdo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29026, 40, 'Tizneros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29027, 40, 'La Higuera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29028, 40, 'Trescasas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29029, 40, 'Sonsoto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29030, 40, 'Torrecaballeros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29031, 40, 'Basardilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29032, 40, 'Brieva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29033, 40, 'Adrada de Piron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29034, 40, 'Losana de Piron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29035, 40, 'Santo Domingo de Piron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29036, 40, 'La Cuesta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29037, 40, 'Carrascal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29038, 40, 'Sotosalbos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29039, 40, 'La Salceda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29040, 40, 'Arahuetes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29041, 40, 'Madrona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29042, 40, 'Fuentemilanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29043, 40, 'Juarros de Riomoros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29044, 40, 'Marazuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29045, 40, 'Marazoleja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29046, 40, 'Escobar de Polendos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29047, 40, 'Pinillos de Polendos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29048, 40, 'Cabaas de Polendos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29049, 40, 'Caballar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29050, 40, 'Valleruela de Pedraza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29051, 40, 'Valleruela de Sepulveda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29052, 40, 'Castrojimeno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29053, 40, 'Aldealcorvo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29054, 40, 'Villafranca del Condado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29055, 40, 'Perorrubio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29056, 40, 'Santa Marta del Cerro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29057, 40, 'Castroserna de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29058, 40, 'Villar de Sobrepea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29059, 40, 'Aldeonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29060, 40, 'Encinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29061, 40, 'Navares de Ayuso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29062, 40, 'Navares de En Medio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29063, 40, 'Navares de Las Cuevas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29064, 40, 'Duraton'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29065, 40, 'Sotillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29066, 40, 'Duruelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29067, 40, 'Perosillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29068, 40, 'Laguna de Contreras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29069, 40, 'Castro de Fuentiduea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29070, 40, 'Monterrubio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29071, 40, 'Vegas de Matute'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29072, 40, 'Lastras del Pozo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29073, 40, 'Marugan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29074, 40, 'Muopedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29075, 40, 'Bercial'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29076, 40, 'Cobos de Segovia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29077, 40, 'Etreros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29078, 40, 'Sangarcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29079, 40, 'Jemenuo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29080, 40, 'Codorniz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29081, 40, 'Rapariegos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29082, 40, 'Tolocirio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29083, 40, 'Martin Muoz de la Dehesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29084, 40, 'Pajares de Pedraza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29085, 40, 'Cabanillas del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29086, 40, 'Aldehorno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29087, 40, 'Aldeanueva de la Serrezuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29088, 40, 'San Cristobal de Segovia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29089, 40, 'Villovela de Piron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29090, 40, 'Aldeanueva del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29091, 40, 'Barahona de Fresno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29092, 40, 'San Jose'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29093, 40, 'Bernuy de Coca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29094, 40, 'Cascajares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29095, 40, 'Castroserna de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29096, 40, 'Miguel Ibaez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29097, 40, 'Moraleja de Cuellar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29098, 40, 'Pajares de Fresno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29099, 40, 'Pelayos del Arroyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29100, 40, 'Riahuelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29101, 40, 'Saldaa de Ayllon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29102, 40, 'Santa Maria de Riaza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29103, 40, 'Sequera de Fresno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29104, 40, 'Valdeprados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29105, 40, 'Ventosilla Y Tejadilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29106, 40, 'La Lastrilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29107, 40, 'Hinojosas del Cerro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29108, 40, 'Valle de Tabladillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29109, 40, 'Estebanvela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29110, 40, 'Valvieja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29111, 40, 'Santibaez de Ayllon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29112, 40, 'Grado del Pico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29113, 40, 'Villaseca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29114, 40, 'Castrillo de Sepulveda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29115, 40, 'Urueas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29116, 40, 'Castroserracin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29117, 40, 'El Muyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29118, 40, 'Madriguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29119, 40, 'El Negredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29120, 40, 'Serracin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29121, 40, 'Becerril'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29122, 40, 'Alquite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29123, 40, 'Villacorta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29124, 40, 'Rebollar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29125, 40, 'Tejares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29126, 40, 'Yanguas Eresma E F C'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29127, 40, 'Escarabajosa de Cuellar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29128, 40, 'Torregutierrez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29129, 40, 'Pascuales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29130, 40, 'La Mata -Santiuste de Pedraza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29131, 40, 'La Rades'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29132, 40, 'Requijada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29133, 40, 'La Velilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29134, 40, 'Tabanera del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29135, 40, 'Consuegra de Murera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29136, 40, 'Martincano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29137, 40, 'Santovenia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29138, 40, 'Valle de San Pedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29139, 40, 'Valsain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29140, 40, 'La Pradera de Navalhorno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29141, 40, 'Pearubias de Piron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29142, 40, 'Torredondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29143, 40, 'Castillejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29144, 40, 'Colladillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29145, 40, 'Francos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29146, 40, 'La Mata -Arcones-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29147, 40, 'La Nava'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29148, 40, 'Valdesaz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29149, 40, 'Arconcillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29150, 40, 'Alconadilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29151, 40, 'Barrio de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29152, 40, 'Huerta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29153, 40, 'Mata de Quintanar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29154, 40, 'Mazagatos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29155, 40, 'El Olmillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29156, 40, 'Soto de Sepulveda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29157, 40, 'Torrecilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29158, 40, 'Aldehuela de Sepulveda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29159, 40, 'Aldeanueva del Campanario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29160, 40, 'Barrio Santa Cruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29161, 40, 'Berrocal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29162, 40, 'Galindez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29163, 40, 'Matamala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29164, 40, 'Martin Muoz de Ayllon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29165, 40, 'Vellosillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29166, 40, 'Aldeasaz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29167, 40, 'Aldehuela -Torrecaballeros-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29168, 40, 'Los Angeles de San Rafael'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29169, 40, 'Caicosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29170, 40, 'La Fuente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29171, 40, 'El Olmo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29172, 40, 'Orejanilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29173, 40, 'Parral de Villovela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29174, 40, 'Rades de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29175, 40, 'Revilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29176, 40, 'Rosuero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29177, 40, 'San Martin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29178, 40, 'Sanchopedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29179, 40, 'Tanarro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29180, 40, 'Tejadilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29181, 40, 'Villalvilla de Montejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29182, 40, 'Perogordo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29183, 40, 'Burgomillodo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29184, 40, 'Parque Robledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29185, 40, 'Pinar Jardin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29186, 40, 'Condado de Castilnovo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29187, 41, 'Aguadulce'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29188, 41, 'Alanis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29189, 41, 'Albaida del Aljarafe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29190, 41, 'Alcala de Guadaira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29191, 41, 'Alcala del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29192, 41, 'Alcolea del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29193, 41, 'La Algaba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29194, 41, 'Algamitas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29195, 41, 'Almaden de la Plata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29196, 41, 'Almensilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29197, 41, 'Arahal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29198, 41, 'Aznalcazar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29199, 41, 'Aznalcollar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29200, 41, 'Bellavista'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29201, 41, 'Benacazon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29202, 41, 'Bollullos de la Mitacion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29203, 41, 'Bormujos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29204, 41, 'Brenes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29205, 41, 'Burguillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29206, 41, 'Las Cabezas de San Juan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29207, 41, 'Camas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29208, 41, 'La Campana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29209, 41, 'Cantillana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29210, 41, 'Carmona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29211, 41, 'Carrion de Los Cespedes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29212, 41, 'Casariche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29213, 41, 'Castilblanco de Los Arroyos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29214, 41, 'Castilleja de Guzman'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29215, 41, 'Castilleja de la Cuesta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29216, 41, 'Castilleja del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29217, 41, 'El Castillo de Las Guardas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29218, 41, 'Cazalla de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29219, 41, 'Constantina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29220, 41, 'Coria del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29221, 41, 'Coripe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29222, 41, 'El Coronil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29223, 41, 'Dos Hermanas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29224, 41, 'Ecija'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29225, 41, 'Espartinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29226, 41, 'Estepa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29227, 41, 'Fuentes de Andalucia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29228, 41, 'Gelves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29229, 41, 'Gerena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29230, 41, 'Gilena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29231, 41, 'Gines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29232, 41, 'Guadalcanal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29233, 41, 'Guillena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29234, 41, 'Herrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29235, 41, 'Huevar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29236, 41, 'Lebrija'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29237, 41, 'Lora de Estepa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29238, 41, 'Lora del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29239, 41, 'La Luisiana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29240, 41, 'Mairena del Alcor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29241, 41, 'Mairena del Aljarafe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29242, 41, 'Marchena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29243, 41, 'Montellano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29244, 41, 'Moron de la Frontera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29245, 41, 'Olivares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29246, 41, 'Osuna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29247, 41, 'Los Palacios Y Villafranca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29248, 41, 'Palomares del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29249, 41, 'Paradas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29250, 41, 'Pedrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29251, 41, 'El Pedroso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29252, 41, 'Peaflor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29253, 41, 'Pilas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29254, 41, 'Pruna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29255, 41, 'La Puebla de Cazalla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29256, 41, 'La Puebla de Los Infantes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29257, 41, 'La Puebla del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29258, 41, 'El Real de la Jara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29259, 41, 'La Rinconada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29260, 41, 'La Roda de Andalucia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29261, 41, 'El Ronquillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29262, 41, 'Los Rosales -Tocina-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29263, 41, 'Salteras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29264, 41, 'Santiponce'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29265, 41, 'El Saucejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29266, 41, 'Sevilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29267, 41, 'San Juan de Aznalfarache'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29268, 41, 'Sanlucar la Mayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29269, 41, 'Tomares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29270, 41, 'Tocina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29271, 41, 'Umbrete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29272, 41, 'Utrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29273, 41, 'Valencina de la Concepcion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29274, 41, 'El Cuervo de Sevilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29275, 41, 'Villamanrique de la Condesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29276, 41, 'Villanueva del Ariscal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29277, 41, 'Villanueva del Rio Y Minas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29278, 41, 'Villaverde del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29279, 41, 'El Viso del Alcor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29280, 41, 'El Rubio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29281, 41, 'Los Molares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29282, 41, 'La Lantejuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29283, 41, 'Las Navas de la Concepcion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29284, 41, 'Badolatosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29285, 41, 'Villanueva de San Juan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29286, 41, 'San Nicolas del Puerto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29287, 41, 'El Garrobo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29288, 41, 'Los Corrales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29289, 41, 'Martin de la Jara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29290, 41, 'Marinaleda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29291, 41, 'El Madroo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29292, 41, 'Las Pajanosas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29293, 41, 'Guadalema de Los Quintero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29294, 41, 'Esquivel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29295, 41, 'El Viar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29296, 41, 'San Ignacio del Viar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29297, 41, 'Torre de la Reina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29298, 41, 'Valdeflores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29299, 41, 'Villafranco del Guadalquivir'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29300, 41, 'Caada Rosal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29301, 41, 'El Campillo -La Luisiana-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29302, 41, 'San Jose de la Rinconada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29303, 41, 'Coca de la Piera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29304, 41, 'Corcoya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29305, 41, 'El Palmar de Troya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29306, 41, 'Matarredonda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29307, 41, 'La Mezquitilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29308, 41, 'Puerto Encina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29309, 41, 'Poblado de Alfonso Xiii'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29310, 41, 'Guadajoz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29311, 41, 'Vegas de Almenara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29312, 41, 'La Vereda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29313, 41, 'El Priorato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29314, 41, 'Setefilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29315, 41, 'Marisma Y Puntales Adriano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29316, 41, 'Los Chapatales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29317, 41, 'Maribaez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29318, 41, 'Pinzon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29319, 41, 'Marismillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29320, 41, 'Sacramento'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29321, 41, 'San Leandro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29322, 41, 'Vetaherrado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29323, 41, 'El Trobal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29324, 41, 'Trajano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29325, 41, 'Valdezorras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29326, 41, 'Juan Anton'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29327, 41, 'La Alcornocosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29328, 41, 'Soledad'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29329, 41, 'Los Perez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29330, 41, 'Los Perenos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29331, 41, 'Quinto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29332, 41, 'Villanueva del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29333, 41, 'Cepija'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29334, 41, 'Archidona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29335, 41, 'La Aulaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29336, 41, 'Arroyo de la Plata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29337, 41, 'El Peralejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29338, 41, 'El Alamo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29339, 41, 'Villargordo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29340, 41, 'Cerro Perea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29341, 41, 'Isla Redonda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29342, 41, 'Villanueva del Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29343, 41, 'La Ganchosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29344, 41, 'El Pintado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29345, 41, 'Poblado de Colinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29346, 41, 'Villanueva Pitamo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29347, 41, 'Cerrado de Miura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29348, 41, 'Cerro del Hierro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29349, 41, 'Estacion Ferrocarril'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29350, 41, 'El Carbonal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29351, 41, 'El Torbiscal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29352, 41, 'El Riguelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29353, 41, 'Isla del Vicario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29354, 41, 'Rabanillo-Gamo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29355, 41, 'La Aceuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29356, 41, 'La Monclova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29357, 41, 'Mudapelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29358, 41, 'El Palomar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29359, 41, 'Pol. El Gordillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29360, 41, 'Estacion Navalagrulla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29361, 41, 'Torrequinto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29362, 41, 'Carchena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29363, 41, 'El Acebuchal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29364, 41, 'La Rambla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29365, 41, 'Mariena del Aljarate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29366, 41, 'Fuente del Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29367, 41, 'Las Caadillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29368, 41, 'Montequinto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29369, 41, 'El Castillo de Las Guardas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29370, 41, 'Minas del Castillo Las Guardas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29371, 42, 'Agreda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29372, 42, 'Almazan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29373, 42, 'Arcos de Jalon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29374, 42, 'Burgo de Osma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29375, 42, 'Carbonera de Frentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29376, 42, 'Golmayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29377, 42, 'Medinaceli'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29378, 42, 'Santa Maria de Huerta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29379, 42, 'Soria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29380, 42, 'Valdealvillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29381, 42, 'Villaciervos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29382, 42, 'Torralba del Moral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29383, 42, 'San Leonardo de Yague'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29384, 42, 'Matamala de Almazan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29385, 42, 'Quintana Redonda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29386, 42, 'Tardelcuende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29387, 42, 'Abejar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29388, 42, 'Cabrejas del Pinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29389, 42, 'Covaleda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29390, 42, 'Duruelo de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29391, 42, 'Sotillo del Rincon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29392, 42, 'Navaleno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29393, 42, 'El Royo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29394, 42, 'Salduero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29395, 42, 'San Esteban de Gormaz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29396, 42, 'Vinuesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29397, 42, 'Bayubas de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29398, 42, 'Bayubas de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29399, 42, 'Berlanga de Duero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29400, 42, 'Quintanas de Gormaz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29401, 42, 'Tajueco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29402, 42, 'Valdenebro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29403, 42, 'Olvega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29404, 42, 'Pozalmuro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29405, 42, 'Muro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29406, 42, 'Moron de Almazan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29407, 42, 'Molinos de Duero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29408, 42, 'Valdeavellano de Tera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29409, 42, 'Salinas de Medinaceli'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29410, 42, 'Cubilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29411, 42, 'Muriel Viejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29412, 42, 'Talveila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29413, 42, 'Cueva de Agreda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29414, 42, 'Fuentelmonge'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29415, 42, 'Monteagudo de Las Vicarias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29416, 42, 'Seron de Nagima'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29417, 42, 'Torlengua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29418, 42, 'Almarza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29419, 42, 'Garray'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29420, 42, 'Cihuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29421, 42, 'Deza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29422, 42, 'Candilichera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29423, 42, 'Mazalvete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29424, 42, 'Ojuel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29425, 42, 'Peroniel del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29426, 42, 'Almenar de Soria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29427, 42, 'Esteras de Lubia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29428, 42, 'Cabrejas del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29429, 42, 'Gomara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29430, 42, 'Mazateron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29431, 42, 'Tejado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29432, 42, 'Aliud'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29433, 42, 'Ledesma de Soria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29434, 42, 'Almazul'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29435, 42, 'Devanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29436, 42, 'Vadillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29437, 42, 'Montenegro de Cameros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29438, 42, 'Fuentetoba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29439, 42, 'Aldealices'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29440, 42, 'Almajano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29441, 42, 'Ausejo de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29442, 42, 'Castilfrio de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29443, 42, 'Cirujales del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29444, 42, 'Los Villares de Soria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29445, 42, 'Aldealafuente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29446, 42, 'Casarejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29447, 42, 'Ucero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29448, 42, 'Herreros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29449, 42, 'Pedrajas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29450, 42, 'Castilruiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29451, 42, 'Magaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29452, 42, 'Valdelagua del Cerro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29453, 42, 'Fuentestrun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29454, 42, 'Fuentes de Magaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29455, 42, 'Trevago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29456, 42, 'El Collado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29457, 42, 'Oncala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29458, 42, 'Ventosa de San Pedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29459, 42, 'San Pedro Manrique'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29460, 42, 'Huerteles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29461, 42, 'Aldealseor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29462, 42, 'San Andres de San Pedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29463, 42, 'Matalebreras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29464, 42, 'Velilla de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29465, 42, 'Matasejun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29466, 42, 'Barriomartin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29467, 42, 'Bocigas de Perales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29468, 42, 'Castillejo de Robledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29469, 42, 'Langa de Duero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29470, 42, 'Mio de San Esteban'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29471, 42, 'La Poveda de Soria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29472, 42, 'Valdanzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29473, 42, 'Valdanzuelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29474, 42, 'Calataazor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29475, 42, 'Muriel de la Fuente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29476, 42, 'Judes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29477, 42, 'Iruecha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29478, 42, 'Cubo de la Solana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29479, 42, 'Lubia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29480, 42, 'Rabanera del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29481, 42, 'Tardajos de Duero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29482, 42, 'Miranda de Duero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29483, 42, 'Ituero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29484, 42, 'Almarail'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29485, 42, 'Buberos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29486, 42, 'Villaseca de Arciel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29487, 42, 'Pinilla del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29488, 42, 'Borobia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29489, 42, 'Noviercas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29490, 42, 'Yanguas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29491, 42, 'Villar del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29492, 42, 'Renieblas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29493, 42, 'Villar del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29494, 42, 'Valdegea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29495, 42, 'Aldealpozo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29496, 42, 'Utrilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29497, 42, 'Almaluez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29498, 42, 'Aguaviva de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29499, 42, 'Los Rabanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29500, 42, 'Espeja de San Marcelino'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29501, 42, 'Santa Maria Hoyas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29502, 42, 'Aldehuela de Periaez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29503, 42, 'Espejon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29504, 42, 'Cidones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29505, 42, 'Vozmediano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29506, 42, 'Borjabad'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29507, 42, 'Valdenarros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29508, 42, 'Rioseco de Soria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29509, 42, 'Torralba del Burgo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29510, 42, 'Torreblacos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29511, 42, 'Blacos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29512, 42, 'Valderrodilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29513, 42, 'Hinojosa del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29514, 42, 'Alentisque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29515, 42, 'Bliecos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29516, 42, 'Caamaque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29517, 42, 'Majan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29518, 42, 'Momblona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29519, 42, 'Valtuea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29520, 42, 'Velilla de Los Ajos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29521, 42, 'Layna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29522, 42, 'Alcubilla de Las Peas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29523, 42, 'Ambrona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29524, 42, 'Beltejar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29525, 42, 'Conquezuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29526, 42, 'Mezquetillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29527, 42, 'Mio de Medinaceli'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29528, 42, 'Radona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29529, 42, 'Romanillos Medinaceli'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29530, 42, 'Yelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29531, 42, 'Barca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29532, 42, 'Rebollo de Duero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29533, 42, 'Velamazan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29534, 42, 'Ciria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29535, 42, 'Torrubia de Soria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29536, 42, 'Tajahuerce'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29537, 42, 'Reznos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29538, 42, 'Caltojar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29539, 42, 'Ciruela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29540, 42, 'Retortillo de Soria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29541, 42, 'Narros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29542, 42, 'Suellacabras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29543, 42, 'Carrascosa de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29544, 42, 'Cuevas de Ayllon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29545, 42, 'Hoz de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29546, 42, 'Hoz de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29547, 42, 'Montejo de Tiermes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29548, 42, 'Morcuera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29549, 42, 'Valderroman'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29550, 42, 'Liceras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29551, 42, 'Noviales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29552, 42, 'Alcubilla del Marques'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29553, 42, 'Fuentearmegil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29554, 42, 'Lodares de Osma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29555, 42, 'Santiuste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29556, 42, 'Valdemaluque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29557, 42, 'Carrascosa de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29558, 42, 'Alcoba de la Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29559, 42, 'Alcubilla de Avellaneda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29560, 42, 'Arevalo de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29561, 42, 'Torrearevalo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29562, 42, 'Ventosa de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29563, 42, 'Zayas de Bascones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29564, 42, 'Arenillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29565, 42, 'Barcones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29566, 42, 'Rello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29567, 42, 'La Riba de Escalote'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29568, 42, 'Sagides'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29569, 42, 'Chaorna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29570, 42, 'Carazuelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29571, 42, 'Aldehuela del Rincon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29572, 42, 'Villar del Ala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29573, 42, 'Vilviestre de Los Nabos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29574, 42, 'Baraona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29575, 42, 'Cobertelada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29576, 42, 'Villasayas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29577, 42, 'Fuencaliente Medinaceli'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29578, 42, 'Aldea de San Esteban'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29579, 42, 'Atauta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29580, 42, 'Ines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29581, 42, 'Matanza de Soria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29582, 42, 'Olmillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29583, 42, 'Pedraja de San Esteban'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29584, 42, 'Pealba de San Esteban'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29585, 42, 'Piquera de San Esteban'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29586, 42, 'Quintanilla de Tres Barrios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29587, 42, 'Rejas de San Esteban'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29588, 42, 'Soto de San Esteban'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29589, 42, 'Velilla de San Esteban'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29590, 42, 'Villalvaro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29591, 42, 'Matute de Almazan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29592, 42, 'Somaen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29593, 42, 'Velilla de Medinaceli'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29594, 42, 'Jubera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29595, 42, 'La Alameda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29596, 42, 'Carabantes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29597, 42, 'Aguilar de Montuenga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29598, 42, 'Montuenga de Soria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29599, 42, 'Valdeprado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29600, 42, 'Cigudosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29601, 42, 'Miana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29602, 42, 'Barcebal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29603, 42, 'Barcebalejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29604, 42, 'Berzosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29605, 42, 'Valdegrulla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29606, 42, 'Valdelubiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29607, 42, 'Aldehuela de Calataazor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29608, 42, 'Arancon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29609, 42, 'Cortos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29610, 42, 'La Olmeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29611, 42, 'Vilde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29612, 42, 'Abion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29613, 42, 'Nolay'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29614, 42, 'Arbujuelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29615, 42, 'Salinas de Medinaceli'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29616, 42, 'Urex de Medinaceli'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29617, 42, 'Valverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29618, 42, 'Alalo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29619, 42, 'Andaluz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29620, 42, 'Brias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29621, 42, 'Estacion Berlanga Duero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29622, 42, 'Hortezuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29623, 42, 'Lumias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29624, 42, 'Morales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29625, 42, 'Benamira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29626, 42, 'Adradas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29627, 42, 'Ontalvilla de Almazan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29628, 42, 'Taroda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29629, 42, 'Pobar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29630, 42, 'Las Aldehuelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29631, 42, 'Los Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29632, 42, 'Coscurita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29633, 42, 'Santa Cruz de Yanguas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29634, 42, 'Valloria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29635, 42, 'Vizmanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29636, 42, 'Camparaon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29637, 42, 'La Cuenca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29638, 42, 'Las Fraguas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29639, 42, 'Molinos de Razon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29640, 42, 'La Muela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29641, 42, 'Nafria la Llana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29642, 42, 'Navalcaballo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29643, 42, 'Nodalo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29644, 42, 'Villabuena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29645, 42, 'Almantiga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29646, 42, 'Balluncar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29647, 42, 'La Barbolla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29648, 42, 'Covarrubias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29649, 42, 'Chercoles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29650, 42, 'Fuentelaldea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29651, 42, 'Fuentelcarro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29652, 42, 'Lodares del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29653, 42, 'Monasterio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29654, 42, 'Puebla de Eca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29655, 42, 'La Revilla de Calataazor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29656, 42, 'La Seca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29657, 42, 'Tejerizas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29658, 42, 'Ventosa de Fuentepinilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29659, 42, 'Nepas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29660, 42, 'Viana de Duero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29661, 42, 'Casillas de Berlanga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29662, 42, 'Castil de Tierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29663, 42, 'Nomparedes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29664, 42, 'Sauquillo de Boices'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29665, 42, 'Borchicayada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29666, 42, 'Escobosa de Almazan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29667, 42, 'Neguillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29668, 42, 'Seuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29669, 42, 'Soliedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29670, 42, 'Arguijo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29671, 42, 'Cubo de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29672, 42, 'Gallinero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29673, 42, 'Rebollar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29674, 42, 'Rollamienta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29675, 42, 'San Andres Soria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29676, 42, 'Tera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29677, 42, 'Villaverde del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29678, 42, 'Izana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29679, 42, 'Estepa de San Juan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29680, 42, 'La Losilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29681, 42, 'Cardejon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29682, 42, 'Castejon del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29683, 42, 'Jaray'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29684, 42, 'Bordeje'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29685, 42, 'Centenera del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29686, 42, 'Frechilla de Almazan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29687, 42, 'Fuentegelmes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29688, 42, 'Jodra de Cardos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29689, 42, 'La Miosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29690, 42, 'Pinilla del Olmo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29691, 42, 'Torremediana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29692, 42, 'Villalba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29693, 42, 'San Felices'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29694, 42, 'Ocenilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29695, 42, 'Oteruelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29696, 42, 'Toledillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29697, 42, 'Torreandaluz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29698, 42, 'Alpanseque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29699, 42, 'Marazovel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29700, 42, 'Carrascosa de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29701, 42, 'Villanueva de Gormaz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29702, 42, 'Recuerda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29703, 42, 'Boos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29704, 42, 'Fresno de Caracena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29705, 42, 'Gormaz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29706, 42, 'Portillo de Soria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29707, 42, 'Aavieja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29708, 42, 'Beraton'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29709, 42, 'Alcozar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29710, 42, 'Lodares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29711, 42, 'Zayas de Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29712, 42, 'Aylagas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29713, 42, 'Abioncillo de Calataazor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29714, 42, 'Cerbon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29715, 42, 'Bordecorex'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29716, 42, 'Paones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29717, 42, 'Aguilera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29718, 42, 'Ventosilla de San Juan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29719, 42, 'Fuentelsaz de Soria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29720, 42, 'Valverde de Los Ajos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29721, 42, 'Valtajeros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29722, 42, 'Sotos del Burgo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29723, 42, 'Fuentelarbol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29724, 42, 'Fuentepinilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29725, 42, 'Las Cuevas Soria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29726, 42, 'Los Llamosos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29727, 42, 'Osona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29728, 42, 'Valderrueda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29729, 42, 'Montaves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29730, 42, 'Palacio de San Pedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29731, 42, 'Centenera de Andaluz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29732, 42, 'Quintanas Rubias de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29733, 42, 'Quintanas Rubias de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29734, 42, 'Torresuso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29735, 42, 'Cascajosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29736, 42, 'Sauquillo del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29737, 42, 'Cenegro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29738, 42, 'Fuentecambron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29739, 42, 'Galapagares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29740, 42, 'Nograles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29741, 42, 'La Perera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29742, 42, 'Ligos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29743, 42, 'Torrao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29744, 42, 'Torremocha de Ayllon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29745, 42, 'Azcamellas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29746, 42, 'Blocona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29747, 42, 'Tozalmoro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29748, 42, 'Fuensauco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29749, 42, 'Omeaca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29750, 42, 'La Milana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29751, 42, 'Santa Maria del Prado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29752, 42, 'Moux'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29753, 42, 'Perdices'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29754, 42, 'La Rubia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29755, 42, 'Cuellar de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29756, 42, 'Fuentelfresno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29757, 42, 'Chavaler'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29758, 42, 'Ciaduea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29759, 42, 'Fuente Tovar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29760, 42, 'Cubo de Hogueras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29761, 42, 'Fuentetecha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29762, 42, 'Ribarroya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29763, 42, 'Martialay'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29764, 42, 'Tapiela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29765, 42, 'Ontalvilla de Valcorba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29766, 42, 'Alconaba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29767, 42, 'Duaez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29768, 42, 'Villarraso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29769, 42, 'Santervas de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29770, 42, 'Dombellas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29771, 42, 'Tardesillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29772, 42, 'Buitrago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29773, 42, 'Canredondo de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29774, 42, 'Fuentecantos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29775, 42, 'Paredesroyas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29776, 42, 'Zarabes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29777, 42, 'Ventosa del Ducado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29778, 42, 'Hinojosa de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29779, 42, 'Langosto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29780, 42, 'Fuencaliente del Burgo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29781, 42, 'Guijosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29782, 42, 'La Hinojosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29783, 42, 'Orillares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29784, 42, 'Santervas del Burgo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29785, 42, 'Zayuelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29786, 42, 'Quintanilla de Nuo Pedro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29787, 42, 'Alparrache'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29788, 42, 'Zamajon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29789, 42, 'Villanueva de Zamajon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29790, 42, 'Boices'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29791, 42, 'Villaciervitos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29792, 42, 'Quintanarejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29793, 42, 'Herrera de Soria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29794, 42, 'Pinilla de Caraduea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29795, 42, 'Aylloncillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29796, 42, 'Pedraza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29797, 42, 'Portelrubio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29798, 42, 'Derroadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29799, 42, 'Espejo de Tera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29800, 42, 'Quioneria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29801, 42, 'Valdeavellano de Ucero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29802, 42, 'Valdelinares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29803, 42, 'Segoviela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29804, 42, 'Nafria de Ucero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29805, 42, 'Rejas de Ucero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29806, 42, 'La Rasa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29807, 42, 'Valdealbin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29808, 42, 'El Espino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29809, 42, 'Cantalucia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29810, 42, 'Fuentecantales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29811, 42, 'Valvenedizo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29812, 42, 'Torrevicente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29813, 42, 'Tarancuea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29814, 42, 'Madruedano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29815, 42, 'Esteras Medinaceli'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29816, 42, 'Arganza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29817, 42, 'Las Casas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29818, 42, 'Estacion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29819, 42, 'Montenegro de Agreda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29820, 42, 'Osma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29821, 42, 'Torralba de Arciel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29822, 42, 'Torretartajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29823, 42, 'Villaseca Somera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29824, 42, 'Muecas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29825, 42, 'Cabanillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29826, 42, 'Sauquillo de Paredes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29827, 42, 'Caracena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29828, 42, 'Canos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29829, 42, 'Portelarbol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29830, 42, 'Sepulveda de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29831, 42, 'Abanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29832, 42, 'Valdespina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29833, 42, 'Riotuerto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29834, 42, 'Castro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29835, 42, 'La Laguna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29836, 42, 'Santa Cecilia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29837, 42, 'Santa Ines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29838, 42, 'Aldehuela de Agreda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29839, 42, 'Fuentes de Agreda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29840, 42, 'Bretun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29841, 42, 'Villartoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29842, 42, 'Matute de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29843, 42, 'Caicera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29844, 42, 'Valdelavilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29845, 42, 'Mosarejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29846, 43, 'Sant Pere I Sant Pau'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29847, 43, 'Alcanar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29848, 43, 'Alcover'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29849, 43, 'L''aldea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29850, 43, 'Aldover'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29851, 43, 'Alforja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29852, 43, 'Alio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29853, 43, 'Altafulla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29854, 43, 'L''ametlla de Mar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29855, 43, 'L''ampolla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29856, 43, 'Amposta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29857, 43, 'L''arbo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29858, 43, 'L''argilaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29859, 43, 'Arnes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29860, 43, 'Asco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29861, 43, 'Banyeres del Penedes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29862, 43, 'Barbera de la Conca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29863, 43, 'Batea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29864, 43, 'Bellmunt del Priorat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29865, 43, 'Belltall'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29866, 43, 'Bellvei'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29867, 43, 'Benifallet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29868, 43, 'Benissanet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29869, 43, 'La Bisbal de Falset'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29870, 43, 'La Bisbal del Penedes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29871, 43, 'Blancafort'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29872, 43, 'Les Borges del Camp'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29873, 43, 'Bot'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29874, 43, 'Brafim'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29875, 43, 'Cabra del Camp'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29876, 43, 'Calafell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29877, 43, 'Cambrils'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29878, 43, 'La Canonja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29879, 43, 'Capanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29880, 43, 'Castellvell del Camp'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29881, 43, 'Deltebre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29882, 43, 'La Senia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29883, 43, 'Conesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29884, 43, 'Constanti'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29885, 43, 'Corbera D''ebre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29886, 43, 'Cornudella de Montsant'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29887, 43, 'Creixell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29888, 43, 'Xerta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29889, 43, 'L''espluga de Francoli'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29890, 43, 'Falset'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29891, 43, 'La Fatarella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29892, 43, 'Flix'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29893, 43, 'Fores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29894, 43, 'Freginals'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29895, 43, 'La Galera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29896, 43, 'Gandesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29897, 43, 'Garcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29898, 43, 'Ginestar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29899, 43, 'Godall'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29900, 43, 'Els Guiamets'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29901, 43, 'Horta de Sant Joan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29902, 43, 'L''hospitalet de L''infant'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29903, 43, 'Jesus I Maria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29904, 43, 'El Lloar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29905, 43, 'Llorac'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29906, 43, 'Lloren del Penedes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29907, 43, 'Mara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29908, 43, 'Masdenverge'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29909, 43, 'Maslloren'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29910, 43, 'El Masroig'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29911, 43, 'La Maso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29912, 43, 'El Mila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29913, 43, 'Miravet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29914, 43, 'El Molar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29915, 43, 'Castell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29916, 43, 'Montblanc'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29917, 43, 'Montbrio del Camp'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29918, 43, 'Montferri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29919, 43, 'Mont-Roig del Camp'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29920, 43, 'Mora D''ebre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29921, 43, 'Mora la Nova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29922, 43, 'El Morell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29923, 43, 'La Morera de Montsant'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29924, 43, 'Nulles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29925, 43, 'La Palma D''ebre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29926, 43, 'Passanant'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29927, 43, 'Pauls'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29928, 43, 'Perafort'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29929, 43, 'El Perello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29930, 43, 'El Pinell de Brai'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29931, 43, 'Pira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29932, 43, 'El Pla de Santa Maria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29933, 43, 'La Pobla de Massaluca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29934, 43, 'La Pobla de Montornes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29935, 43, 'Poboleda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29936, 43, 'El Pont D''armentera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29937, 43, 'Porrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29938, 43, 'Prades'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29939, 43, 'Prat de Comte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29940, 43, 'Pratdip'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29941, 43, 'Reus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29942, 43, 'La Riba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29943, 43, 'Riba-Roja D''ebre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29944, 43, 'La Riera de Gaia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29945, 43, 'Riudecanyes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29946, 43, 'Riudecols'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29947, 43, 'Riudoms'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29948, 43, 'Rocafort de Queralt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29949, 43, 'Rodonya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29950, 43, 'El Rourell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29951, 43, 'Salomo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29952, 43, 'Salou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29953, 43, 'Sant Carles de la Rapita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29954, 43, 'Sant Jaume Dels Domenys'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29955, 43, 'Santa Barbara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29956, 43, 'Santa Coloma de Queralt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29957, 43, 'Santa Oliva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29958, 43, 'Santes Creus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29959, 43, 'Sarral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29960, 43, 'La Secuita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29961, 43, 'La Selva del Camp'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29962, 43, 'Solivella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29963, 43, 'Tarragona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29964, 43, 'Tivenys'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29965, 43, 'Tivissa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29966, 43, 'Torredembarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29967, 43, 'La Torre de L''espanyol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29968, 43, 'Tortosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29969, 43, 'Ulldecona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29970, 43, 'Ulldemolins'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29971, 43, 'Vallclara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29972, 43, 'Vallfogona de Riucorb'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29973, 43, 'Vallmoll'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29974, 43, 'Valls'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29975, 43, 'Vandellos-Hospitalet L''infant'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29976, 43, 'El Vendrell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29977, 43, 'Vilabella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29978, 43, 'Vilallonga del Camp'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29979, 43, 'Vilanova de Prades'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29980, 43, 'Vila-Rodona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29981, 43, 'Vila-Seca de Solcina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29982, 43, 'Les Cases D''alcanar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29983, 43, 'La Vilella Baixa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29984, 43, 'Vilalba Dels Arcs'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29985, 43, 'Vimbodi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29986, 43, 'Vinyols I Els Arcs'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29987, 43, 'Figuerola del Camp'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29988, 43, 'Roda de Bara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29989, 43, 'Vinebre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29990, 43, 'El Catllar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29991, 43, 'Vilaverd'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29992, 43, 'L''aleixar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29993, 43, 'Vilaplana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29994, 43, 'Sant Jaume D''enveja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29995, 43, 'Mas de Barberans'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29996, 43, 'Urb. Platja de la Mora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29997, 43, 'Pradell de la Teixeta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29998, 43, 'Arboli'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (29999, 43, 'Cabaces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30000, 43, 'Juncosa de Montmell'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30001, 43, 'Albinyana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30002, 43, 'La Figuera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30003, 43, 'Barri Maritim de Comarruga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30004, 43, 'L''argentera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30005, 43, 'Duesaigues'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30006, 43, 'Almoster'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30007, 43, 'Botarell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30008, 43, 'Cunit'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30009, 43, 'Rasquera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30010, 43, 'Camarles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30011, 43, 'Bonastre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30012, 43, 'Margalef'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30013, 43, 'Caseres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30014, 43, 'Els Garidells'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30015, 43, 'La Pobla de Mafumet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30016, 43, 'Cirera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30017, 43, 'Albio -Llorac-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30018, 43, 'Montbrio de la Marca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30019, 43, 'Querol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30020, 43, 'Poble Nou del Delta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30021, 43, 'Scala-Dei'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30022, 43, 'Senan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30023, 43, 'Capafonts'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30024, 43, 'La Febro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30025, 43, 'Les Roques'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30026, 43, 'Pobla -Sta.Coloma de Queralt-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30027, 43, 'La Torre de Fontaubella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30028, 43, 'Alcanar-Platja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30029, 43, 'Alfara de Carles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30030, 43, 'Puigpelat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30031, 43, 'Biure'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30032, 43, 'Les Piles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30033, 43, 'L''albiol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30034, 43, 'Masos de Vespella de Gaia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30035, 43, 'Savalla del Comtat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30036, 43, 'Pontils'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30037, 43, 'Barri de Segura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30038, 43, 'Colldejou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30039, 43, 'Santa Isabel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30040, 43, 'Rauric'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30041, 43, 'Vilanova D''escornalbou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30042, 43, 'La Cadeneta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30043, 43, 'Farena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30044, 43, 'Mont-Ral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30045, 43, 'Olles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30046, 43, 'La Carronya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30047, 43, 'Siurana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30048, 43, 'Cornudella -S. Jaume Domenys-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30049, 43, 'Lletger'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30050, 43, 'La Torregassa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30051, 43, 'Vallverd'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30052, 43, 'Aiguaviva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30053, 43, 'Canferre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30054, 43, 'Bitem'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30055, 43, 'Campredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30056, 43, 'Els Muntells'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30057, 43, 'Picamoixons'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30058, 43, 'Reguers -Tortosa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30059, 43, 'Cornudella de Montsant'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30060, 43, 'Miami Playa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30061, 43, 'Les Ventalles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30062, 43, 'San Salvador'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30063, 43, 'Les Gunyoles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30064, 43, 'Puigdelfi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30065, 43, 'Vistabella -La Secuita-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30066, 43, 'Renau'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30067, 43, 'La Pineda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30068, 43, 'La Plana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30069, 43, 'Gratallops'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30070, 43, 'Darmos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30071, 43, 'Serra D''almos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30072, 43, 'Aguilo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30073, 43, 'Les Peces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30074, 43, 'Aiguamurcia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30075, 43, 'L''alba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30076, 43, 'Les Ordres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30077, 43, 'Pla de Manlleu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30078, 43, 'Les Pobles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30079, 43, 'Vilardida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30080, 43, 'Maspujols'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30081, 43, 'La Nou de Gaia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30082, 43, 'Ferran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30083, 43, 'Torroja del Priorat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30084, 43, 'Barri de Saifores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30085, 43, 'Sant Miquel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30086, 43, 'Fontscaldes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30087, 43, 'Guardia Dels Prats'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30088, 43, 'Ligallo del Ganguil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30089, 43, 'Masboquera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30090, 43, 'Masmolets'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30091, 43, 'Masriudoms'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30092, 43, 'Els Pallaresos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30093, 43, 'Roquetes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30094, 43, 'Vinallop'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30095, 43, 'Balada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30096, 43, 'Balada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30097, 43, 'Lilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30098, 43, 'Masarbones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30099, 43, 'Montalegre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30100, 43, 'El Montmell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30101, 43, 'Segur de Calafell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30102, 43, 'Valentins'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30103, 43, 'Viladeperdius'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30104, 43, 'Tamarit'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30105, 43, 'Miami Playa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30106, 43, 'Sant Joan del Pas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30107, 43, 'Can Vies'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30108, 43, 'Barri Maritim de Comarruga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30109, 43, 'Mas D''enric'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30110, 43, 'Collblanch'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30111, 43, 'Gatets'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30112, 43, 'Monnars'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30113, 43, 'Universidad Laboral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30114, 43, 'Ardenya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30115, 43, 'Vespella de Gaia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30116, 43, 'Plana La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30117, 43, 'Vilardida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30118, 43, 'Bonretorn'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30119, 43, 'Bellisens'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30120, 43, 'Industrias Quimicas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30121, 43, 'Sant Joan Dels Arcs'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30122, 43, 'Albarca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30123, 43, 'Torre La'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30124, 43, 'Les Irles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30125, 43, 'Les Voltes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30126, 43, 'Llaberia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30127, 43, 'Arboet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30128, 43, 'Rojals'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30129, 43, 'Poblet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30130, 43, 'Guialmons'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30131, 43, 'Sant Magi de Rocamora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30132, 43, 'Pontils'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30133, 43, 'Vallespinosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30134, 43, 'Santa Rosa de Lima'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30135, 43, 'El Papiolet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30136, 43, 'Sant Vicen de Calders'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30137, 43, 'Aeropuerto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30138, 43, 'Complejo Industrial Enpetrol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30139, 43, 'Canpot'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30140, 43, 'Casetes de Puigmolto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30141, 43, 'Llacuneta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30142, 43, 'Casa Gallart'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30143, 43, 'Cardo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30144, 43, 'Prenafeta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30145, 43, 'Les Cases D''alcanar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30146, 43, 'Jesus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30147, 43, 'La Vilella Alta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30148, 43, 'Valldossera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30149, 43, 'Raval de Jess'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30150, 43, 'Castellet I la Gornal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30151, 43, 'La Gornal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30152, 43, 'Barri Maritim del Francas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30153, 43, 'La Pobla de Mafumet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30154, 43, 'Bonavista'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30155, 43, 'Urb. Priorat de Banyeres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30156, 43, 'Poble Nou del Delta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30157, 43, 'Els Masos de Coma-Ruga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30158, 43, 'Barri Maritim de Comarruga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30159, 43, 'Les Masuques'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30160, 43, 'Rocallisa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30161, 43, 'La Vilella Alta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30162, 43, 'Castellet I la Gornal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30163, 43, 'Alcanar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30164, 43, 'La Pobla de Mafumet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30165, 43, 'Roda de Bara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30166, 43, 'Barri Maritim de Comarruga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30167, 43, 'Campclar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30168, 43, 'L''ampolla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30169, 43, 'Vila-Seca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30170, 43, 'Seltebre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30171, 43, 'Torreforta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30172, 44, 'Albarracin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30173, 44, 'Alcaiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30174, 44, 'Aguaviva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30175, 44, 'Bronchales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30176, 44, 'Calanda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30177, 44, 'Alcorisa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30178, 44, 'Alfambra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30179, 44, 'Aliaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30180, 44, 'Andorra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30181, 44, 'Baguena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30182, 44, 'Gea de Albarracin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30183, 44, 'Beceite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30184, 44, 'Calaceite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30185, 44, 'Caminreal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30186, 44, 'Castellote'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30187, 44, 'Cella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30188, 44, 'Fuentes Claras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30189, 44, 'Noguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30190, 44, 'Orihuela del Tremedal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30191, 44, 'Manzanera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30192, 44, 'Mas de Las Matas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30193, 44, 'Montalban'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30194, 44, 'Mora de Rubielos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30195, 44, 'La Puebla de Valverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30196, 44, 'Teruel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30197, 44, 'Rubielos de Mora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30198, 44, 'Torres de Albarracin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30199, 44, 'Tramacastilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30200, 44, 'La Puebla de Hijar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30201, 44, 'Monreal del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30202, 44, 'Calamocha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30203, 44, 'Santa Eulalia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30204, 44, 'Sarrion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30205, 44, 'Utrillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30206, 44, 'Valbona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30207, 44, 'Valdealgorfa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30208, 44, 'Valderrobres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30209, 44, 'Villarquemado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30210, 44, 'Torrijo del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30211, 44, 'Escucha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30212, 44, 'Castelseras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30213, 44, 'Albalate del Arzobispo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30214, 44, 'Hijar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30215, 44, 'Samper de Calanda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30216, 44, 'Urrea de Gaen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30217, 44, 'Belmonte de San Jose'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30218, 44, 'Torrecilla de Alcaiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30219, 44, 'Burbaguena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30220, 44, 'San Martin del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30221, 44, 'Alloza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30222, 44, 'Valjunquera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30223, 44, 'Alba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30224, 44, 'Villafranca del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30225, 44, 'Caude'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30226, 44, 'Torrelacarcel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30227, 44, 'Torremocha de Jiloca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30228, 44, 'Singra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30229, 44, 'Jabaloyas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30230, 44, 'El Vallecillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30231, 44, 'Moscardon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30232, 44, 'Terriente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30233, 44, 'Saldon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30234, 44, 'Toril Y Masegoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30235, 44, 'Valdecuenca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30236, 44, 'Bezas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30237, 44, 'Calomarde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30238, 44, 'Frias de Albarracin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30239, 44, 'Royuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30240, 44, 'Griegos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30241, 44, 'Guadalaviar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30242, 44, 'Pozondon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30243, 44, 'Rodenas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30244, 44, 'Villar del Cobo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30245, 44, 'Monterde de Albarracin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30246, 44, 'Castel de Cabra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30247, 44, 'Foz-Calanda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30248, 44, 'Cedrillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30249, 44, 'Monteagudo del Castillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30250, 44, 'Corbalan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30251, 44, 'Linares de Mora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30252, 44, 'Mosqueruela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30253, 44, 'Nogueruelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30254, 44, 'Puertomingalvo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30255, 44, 'Valdelinares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30256, 44, 'Cabra de Mora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30257, 44, 'Alcala de la Selva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30258, 44, 'Ario'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30259, 44, 'Oliete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30260, 44, 'Alacon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30261, 44, 'Muniesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30262, 44, 'Navarrete del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30263, 44, 'Las Parras de Castellote'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30264, 44, 'Monroyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30265, 44, 'Blesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30266, 44, 'San Blas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30267, 44, 'La Codoera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30268, 44, 'La Caada de Verich'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30269, 44, 'La Ginebrosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30270, 44, 'Gudar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30271, 44, 'Palomar de Arroyos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30272, 44, 'Camarena de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30273, 44, 'La Iglesuela del Cid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30274, 44, 'Gargallo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30275, 44, 'Villel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30276, 44, 'El Cuervo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30277, 44, 'Mas de la Cabrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30278, 44, 'Tramacastiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30279, 44, 'Cubla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30280, 44, 'Valacloche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30281, 44, 'Cascante del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30282, 44, 'Albentosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30283, 44, 'Torrijas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30284, 44, 'El Castellar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30285, 44, 'Olba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30286, 44, 'Rubiales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30287, 44, 'Bello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30288, 44, 'Odon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30289, 44, 'Tornos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30290, 44, 'Barrachina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30291, 44, 'Cutanda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30292, 44, 'Godos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30293, 44, 'Olalla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30294, 44, 'El Poyo del Cid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30295, 44, 'Torrecilla del Rebollar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30296, 44, 'Baon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30297, 44, 'Cosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30298, 44, 'Rubielos de la Cerida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30299, 44, 'Torralba de Los Sisones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30300, 44, 'Villalba de Los Morales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30301, 44, 'Blancas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30302, 44, 'Ojos Negros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30303, 44, 'Pozuel del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30304, 44, 'Arcos de Las Salinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30305, 44, 'San Agustin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30306, 44, 'Libros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30307, 44, 'Riodeva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30308, 44, 'Villastar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30309, 44, 'Formiche Alto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30310, 44, 'Formiche Bajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30311, 44, 'Fuentes de Rubielos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30312, 44, 'Cretas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30313, 44, 'Fuentespalda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30314, 44, 'Pearroya de Tastavins'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30315, 44, 'La Virgen de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30316, 44, 'El Pobo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30317, 44, 'Allepuz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30318, 44, 'Cantavieja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30319, 44, 'Caada de Benatanduz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30320, 44, 'Fortanete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30321, 44, 'Villarroya de Los Pinares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30322, 44, 'Villarluengo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30323, 44, 'Lechago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30324, 44, 'Alobras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30325, 44, 'Tormon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30326, 44, 'Veguillas de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30327, 44, 'Abejuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30328, 44, 'Celadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30329, 44, 'Concud'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30330, 44, 'Camarillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30331, 44, 'Mezquita de Jarque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30332, 44, 'Perales del Alfambra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30333, 44, 'Rillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30334, 44, 'Argente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30335, 44, 'Camaas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30336, 44, 'Lidon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30337, 44, 'Visiedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30338, 44, 'Cuevas Labradas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30339, 44, 'Peralejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30340, 44, 'Escorihuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30341, 44, 'Orrios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30342, 44, 'Tortajada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30343, 44, 'Villalba Baja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30344, 44, 'Vivel del Rio Martin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30345, 44, 'Segura de Los Baos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30346, 44, 'Martin del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30347, 44, 'Obon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30348, 44, 'Josa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30349, 44, 'Huesa del Comun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30350, 44, 'Arens de Lledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30351, 44, 'La Hoz de la Vieja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30352, 44, 'Fornoles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30353, 44, 'La Portellada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30354, 44, 'Lledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30355, 44, 'La Fresneda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30356, 44, 'Torre del Compte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30357, 44, 'Mazaleon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30358, 44, 'Valdeltormo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30359, 44, 'La Cerollera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30360, 44, 'Rafales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30361, 44, 'Cortes de Aragon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30362, 44, 'Alcaine'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30363, 44, 'Torre de Arcas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30364, 44, 'Torrevelilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30365, 44, 'Rudilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30366, 44, 'Plou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30367, 44, 'Puigmoreno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30368, 44, 'Valmuel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30369, 44, 'Berge'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30370, 44, 'Molinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30371, 44, 'Loscos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30372, 44, 'Monforte de Moyuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30373, 44, 'Nogueras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30374, 44, 'Badenas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30375, 44, 'Ferreruela de Huerva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30376, 44, 'Santa Cruz de Nogueras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30377, 44, 'Lagueruela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30378, 44, 'Cucalon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30379, 44, 'Luco de Jiloca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30380, 44, 'Bea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30381, 44, 'Caizar del Olivar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30382, 44, 'Ejulve'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30383, 44, 'Estercuel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30384, 44, 'Torre de Arcas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30385, 44, 'La Zoma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30386, 44, 'Azaila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30387, 44, 'Vinaceite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30388, 44, 'Mirambel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30389, 44, 'Tronchon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30390, 44, 'Bordon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30391, 44, 'Luco de Bordon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30392, 44, 'La Mata de Los Olmos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30393, 44, 'Los Olmos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30394, 44, 'Crivillen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30395, 44, 'Villaspesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30396, 44, 'Pancrudo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30397, 44, 'Fuentes Calientes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30398, 44, 'El Campillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30399, 44, 'Castralvo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30400, 44, 'Jarque de la Val'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30401, 44, 'Villalba Alta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30402, 44, 'Castejon de Tornos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30403, 44, 'Pitarque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30404, 44, 'La Cuba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30405, 44, 'Cuevas de Almuden'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30406, 44, 'Caada Vellida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30407, 44, 'Hinojosa de Jarque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30408, 44, 'Galve'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30409, 44, 'Ababuj'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30410, 44, 'Aguilar del Alfambra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30411, 44, 'Aldehuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30412, 44, 'Castelnou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30413, 44, 'Jatiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30414, 44, 'Fuenferrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30415, 44, 'Villahermosa del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30416, 44, 'Villanueva del Rebollar Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30417, 44, 'Lanzuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30418, 44, 'Almohaja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30419, 44, 'Peracense'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30420, 44, 'Villar del Salz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30421, 44, 'Cuevas de Caart'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30422, 44, 'Dos Torres de Mercader'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30423, 44, 'Ladruan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30424, 44, 'Seno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30425, 44, 'Alpees'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30426, 44, 'Corbaton'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30427, 44, 'Cuevas de Portalrubio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30428, 44, 'Portalrubio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30429, 44, 'La Rambla de Martin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30430, 44, 'Aguaton'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30431, 44, 'Buea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30432, 44, 'Miravete de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30433, 44, 'Jorcas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30434, 44, 'Valdeconejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30435, 44, 'Torre Los Negros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30436, 44, 'Cervera del Rincon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30437, 44, 'Valdecebro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30438, 44, 'El Colladico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30439, 44, 'Piedrahita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30440, 44, 'Mezquita de Loscos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30441, 44, 'Anadon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30442, 44, 'Armillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30443, 44, 'Cuencabuena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30444, 44, 'Allueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30445, 44, 'Collados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30446, 44, 'Fonfria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30447, 44, 'Salcedillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30448, 44, 'Nueros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30449, 44, 'Valverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30450, 44, 'Castelvispal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30451, 44, 'Son del Puerto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30452, 44, 'Cobatillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30453, 44, 'Maicas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30454, 44, 'Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30455, 44, 'Cirujeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30456, 44, 'Abenfigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30457, 44, 'Peas Royas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30458, 44, 'Jaganta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30459, 44, 'Los Giles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30460, 44, 'Los Pertegaces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30461, 44, 'Los Villanuevas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30462, 44, 'La Escaleruela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30463, 44, 'Fuen del Cepo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30464, 44, 'Las Granjas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30465, 44, 'Las Parras de Martin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30466, 44, 'Alcotas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30467, 44, 'Las Alhambras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30468, 44, 'Los Olmos de Manzanera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30469, 44, 'Villarejo de Los Olmos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30470, 44, 'Arroyofrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30471, 44, 'Los Mases'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30472, 44, 'Salobral Gascones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30473, 44, 'Mas de Navarrete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30474, 44, 'Las Planas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30475, 44, 'La Caadilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30476, 44, 'Sierra Menera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30477, 44, 'Montoro de Mezquita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30478, 44, 'Estacion Mora de Rubielos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30479, 44, 'Estacion Rubielos de Mora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30480, 44, 'La Guea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30481, 44, 'Masegoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30482, 44, 'El Villarejo -Terriente-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30483, 44, 'Los Cerezos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30484, 44, 'Los Alagones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30485, 44, 'Aldehuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30486, 44, 'Bda. Obrera del Sur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30487, 44, 'Lavaderos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30488, 44, 'Castillas Bezas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30489, 44, 'El Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30490, 44, 'Valle Cabriel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30491, 44, 'El Crespol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30492, 44, 'Sollavientos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30493, 44, 'Collado de la Grulla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30494, 44, 'Paraiso Bajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30495, 44, 'Los Dines O Ibaez Bajos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30496, 44, 'Los Ramones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30497, 44, 'La Tosca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30498, 44, 'Los Baltasares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30499, 44, 'Collado Royo Poviles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30500, 44, 'La Hoz'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30501, 44, 'Mas Blanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30502, 44, 'Mases Y Tamboril'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30503, 44, 'Los Pastores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30504, 44, 'Los Peiros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30505, 44, 'Pozo Muela Puntalico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30506, 44, 'Solana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30507, 44, 'Torremocha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30508, 44, 'Umbria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30509, 44, 'Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30510, 44, 'Casas de San Juan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30511, 45, 'Ajofrin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30512, 45, 'Alameda de la Sagra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30513, 45, 'Almorox'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30514, 45, 'Aover de Tajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30515, 45, 'Belvis de la Jara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30516, 45, 'Azucaica'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30517, 45, 'Bargas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30518, 45, 'Borox'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30519, 45, 'Burguillos de Toledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30520, 45, 'Cabaas de la Sagra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30521, 45, 'Calera Y Chozas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30522, 45, 'La Calzada de Oropesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30523, 45, 'Carmena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30524, 45, 'El Carpio de Tajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30525, 45, 'Carriches'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30526, 45, 'El Casar de Escalona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30527, 45, 'Casarrubios del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30528, 45, 'Cebolla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30529, 45, 'Cedillo del Condado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30530, 45, 'Ciruelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30531, 45, 'Mazarambroz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30532, 45, 'Consuegra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30533, 45, 'Corral de Almaguer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30534, 45, 'Cuerva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30535, 45, 'Dosbarrios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30536, 45, 'Domingo Perez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30537, 45, 'Erustes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30538, 45, 'Escalona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30539, 45, 'Escalonilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30540, 45, 'Esquivias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30541, 45, 'Fuensalida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30542, 45, 'Galvez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30543, 45, 'Las Herencias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30544, 45, 'Guadamur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30545, 45, 'La Guardia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30546, 45, 'Illescas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30547, 45, 'Lagartera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30548, 45, 'Chozas de Canales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30549, 45, 'Lillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30550, 45, 'Madridejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30551, 45, 'Magan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30552, 45, 'Camarena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30553, 45, 'Maqueda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30554, 45, 'La Mata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30555, 45, 'Menasalbas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30556, 45, 'Mentrida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30557, 45, 'Mesegar de Tajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30558, 45, 'Miguel Esteban'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30559, 45, 'Mocejon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30560, 45, 'Mora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30561, 45, 'Navahermosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30562, 45, 'Los Navalmorales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30563, 45, 'Los Navalucillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30564, 45, 'Noblejas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30565, 45, 'Noves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30566, 45, 'Ocaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30567, 45, 'Olias del Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30568, 45, 'Orgaz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30569, 45, 'Oropesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30570, 45, 'Otero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30571, 45, 'Pantoja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30572, 45, 'Polan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30573, 45, 'Portillo de Toledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30574, 45, 'La Puebla de Almoradiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30575, 45, 'La Puebla de Montalban'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30576, 45, 'El Puente del Arzobispo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30577, 45, 'Quero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30578, 45, 'Quintanar de la Orden'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30579, 45, 'Quismondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30580, 45, 'Recas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30581, 45, 'Rielves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30582, 45, 'El Romeral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30583, 45, 'San Martin de Pusa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30584, 45, 'Santa Cruz del Retamar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30585, 45, 'Santa Cruz de la Zarza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30586, 45, 'Santa Olalla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30587, 45, 'Sonseca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30588, 45, 'Talavera de la Reina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30589, 45, 'Tembleque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30590, 45, 'El Toboso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30591, 45, 'Toledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30592, 45, 'Torralba de Oropesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30593, 45, 'La Torre de Esteban Hambran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30594, 45, 'Torrijos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30595, 45, 'Urda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30596, 45, 'Santo Domingo-Caudilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30597, 45, 'Valmojado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30598, 45, 'Valdeverdeja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30599, 45, 'Las Ventas Con Pea Aguilera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30600, 45, 'Villacaas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30601, 45, 'La Villa de Don Fadrique'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30602, 45, 'Villafranca de Los Caballeros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30603, 45, 'Villaluenga de la Sagra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30604, 45, 'Villanueva de Alcardete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30605, 45, 'Villarrubia de Santiago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30606, 45, 'Villaseca de la Sagra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30607, 45, 'Villatobas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30608, 45, 'Los Yebenes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30609, 45, 'Yepes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30610, 45, 'Yuncos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30611, 45, 'Alcaudete de la Jara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30612, 45, 'Camuas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30613, 45, 'Noez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30614, 45, 'Sesea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30615, 45, 'Sesea Nuevo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30616, 45, 'San Pablo de Los Montes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30617, 45, 'Villamiel de Toledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30618, 45, 'Huerta de Valdecarabanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30619, 45, 'Las Ventas de Retamosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30620, 45, 'Camarenilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30621, 45, 'Carranque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30622, 45, 'Ugena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30623, 45, 'Lominchar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30624, 45, 'Nombela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30625, 45, 'San Martin de Montalban'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30626, 45, 'Herreruela de Oropesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30627, 45, 'Cardiel de Los Montes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30628, 45, 'Castillo de Bayuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30629, 45, 'El Real de San Vicente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30630, 45, 'Gamonal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30631, 45, 'Navalcan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30632, 45, 'Parrillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30633, 45, 'Velada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30634, 45, 'Yunclillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30635, 45, 'Cabezamesada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30636, 45, 'Navamorcuende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30637, 45, 'Pulgar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30638, 45, 'Yuncler'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30639, 45, 'Pelahustan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30640, 45, 'Almonacid de Toledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30641, 45, 'Mascaraque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30642, 45, 'Villanueva de Bogas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30643, 45, 'Aldea En Cabo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30644, 45, 'Nambroca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30645, 45, 'Villaminaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30646, 45, 'Cobisa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30647, 45, 'Cazalegas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30648, 45, 'Los Cerralbos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30649, 45, 'Arcicollar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30650, 45, 'Malpica de Tajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30651, 45, 'Hinojosa de San Vicente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30652, 45, 'San Roman de Los Montes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30653, 45, 'Aldeanueva de Barbarroya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30654, 45, 'El Viso de San Juan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30655, 45, 'Lucillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30656, 45, 'Gerindote'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30657, 45, 'El Campillo de la Jara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30658, 45, 'La Estrella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30659, 45, 'Hormigos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30660, 45, 'Alcaizo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30661, 45, 'Aldeanueva de San Bartolome'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30662, 45, 'Burujon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30663, 45, 'Caleruela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30664, 45, 'Huecas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30665, 45, 'Yeles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30666, 45, 'Cabaas de Yepes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30667, 45, 'Ontigola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30668, 45, 'Robledo del Mazo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30669, 45, 'La Nava de Ricomalillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30670, 45, 'Sevilleja de la Jara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30671, 45, 'Alcolea de Tajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30672, 45, 'Torrico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30673, 45, 'Puerto de San Vicente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30674, 45, 'Navalmoralejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30675, 45, 'Albarreal de Tajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30676, 45, 'Mohedas de la Jara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30677, 45, 'Las Ventas de San Julian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30678, 45, 'Cobeja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30679, 45, 'Garciotum'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30680, 45, 'Nuo Gomez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30681, 45, 'Cervera de Los Montes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30682, 45, 'Marrupe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30683, 45, 'Mejorada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30684, 45, 'Montesclaros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30685, 45, 'Segurilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30686, 45, 'Sotillo de Las Palomas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30687, 45, 'Paredes de Escalona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30688, 45, 'Azutan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30689, 45, 'Pepino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30690, 45, 'Almendral de la Caada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30691, 45, 'La Iglesuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30692, 45, 'Sartajada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30693, 45, 'Numancia de la Sagra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30694, 45, 'Palomeque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30695, 45, 'Turleque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30696, 45, 'Arges'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30697, 45, 'El Membrillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30698, 45, 'Buenasbodas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30699, 45, 'Totanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30700, 45, 'Casasbuenas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30701, 45, 'Villarejo de Montalban'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30702, 45, 'Buenaventura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30703, 45, 'Layos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30704, 45, 'Manzaneque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30705, 45, 'Villamuelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30706, 45, 'Villasequilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30707, 45, 'Chueca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30708, 45, 'Marjaliza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30709, 45, 'Espinoso del Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30710, 45, 'La Pueblanueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30711, 45, 'Retamoso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30712, 45, 'San Bartolome de Las Abiertas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30713, 45, 'Santa Ana Pusa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30714, 45, 'Torrecilla de la Jara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30715, 45, 'Alcabon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30716, 45, 'Alberche del Caudillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30717, 45, 'Talavera la Nueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30718, 45, 'El Bercial'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30719, 45, 'La Rinconada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30720, 45, 'Bernuy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30721, 45, 'San Antonio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30722, 45, 'Las Vegas Y San Antonio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30723, 45, 'Montearagon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30724, 45, 'Hontanar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30725, 45, 'Piedraescrita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30726, 45, 'Arisgotas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30727, 45, 'La Fresneda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30728, 45, 'Robledo del Buey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30729, 45, 'Fuentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30730, 45, 'Los Alares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30731, 45, 'Casalgordo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30732, 45, 'Gargantilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30733, 45, 'Las Hunfrias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30734, 45, 'Robledillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30735, 45, 'Navaltoril'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30736, 45, 'Valdeazores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30737, 45, 'Minas Santa Quiteria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30738, 45, 'Puerto Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30739, 45, 'Las Navillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30740, 45, 'Illan de Vacas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30741, 45, 'Barcience'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30742, 45, 'Aceca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30743, 45, 'El Casar de Talavera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30744, 45, 'Caserio Palacio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30745, 45, 'El Castaar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30746, 45, 'Colonia Iberia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30747, 45, 'Corchuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30748, 45, 'Los Cuartos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30749, 45, 'El Gran Chaparral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30750, 45, 'Las Nieves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30751, 45, 'Serranillos Playa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30752, 45, 'La Estacion de Sesea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30753, 45, 'Calalberche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30754, 45, 'Calypo Fado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30755, 45, 'Urbanizaciones Olias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30756, 45, 'Los Llanos Casa Catorro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30757, 45, 'El Avion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30758, 45, 'Capellania'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30759, 45, 'Finca Encinasola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30760, 45, 'La Morera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30761, 45, 'Valdecastaos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30762, 45, 'Monteviejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30763, 45, 'Villescas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30764, 46, 'Albaida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30765, 46, 'Albaida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30766, 46, 'Albalat de la Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30767, 46, 'Albalat Dels Tarongers'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30768, 46, 'Alberic'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30769, 46, 'Alborache'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30770, 46, 'Alcantera de Xuquer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30771, 46, 'Alzira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30772, 46, 'L''alcudia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30773, 46, 'L''alcudia de Crespins'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30774, 46, 'Alfara de Algimia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30775, 46, 'Alfarp'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30776, 46, 'Alfarrasi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30777, 46, 'Algar de Palancia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30778, 46, 'Algemesi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30779, 46, 'Algimia de Alfara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30780, 46, 'Alginet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30781, 46, 'Almoines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30782, 46, 'Almussafes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30783, 46, 'L''alqueria de la Comtessa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30784, 46, 'Anna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30785, 46, 'Antella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30786, 46, 'Ayacor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30787, 46, 'Aielo de Malferit'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30788, 46, 'Ayora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30789, 46, 'Barx'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30790, 46, 'Barraca Aigues Vives'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30791, 46, 'Bellreguard'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30792, 46, 'Bellus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30793, 46, 'Benaguasil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30794, 46, 'Benavites'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30795, 46, 'Beneixida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30796, 46, 'Benetusser'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30797, 46, 'Beniarjo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30798, 46, 'Benifairo de la Valldigna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30799, 46, 'Benifairo de Les Valls'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30800, 46, 'Benifaio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30801, 46, 'Beniganim'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30802, 46, 'Benimamet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30803, 46, 'Benimodo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30804, 46, 'Benimuslem'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30805, 46, 'Betera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30806, 46, 'Bicorp'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30807, 46, 'Bocairent'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30808, 46, 'Bolbaite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30809, 46, 'Buol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30810, 46, 'Burjassot'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30811, 46, 'Campo Arcis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30812, 46, 'Camporrobles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30813, 46, 'Canals'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30814, 46, 'Canet D''en Berenguer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30815, 46, 'Carcaixent'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30816, 46, 'Carcer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30817, 46, 'Carlet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30818, 46, 'Casinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30819, 46, 'Castello de Rugat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30820, 46, 'Catadau'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30821, 46, 'Catarroja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30822, 46, 'Caudete de Las Fuentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30823, 46, 'Cofrentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30824, 46, 'Corbera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30825, 46, 'Quart de Les Valls'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30826, 46, 'Quartell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30827, 46, 'Quatretonda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30828, 46, 'Cullera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30829, 46, 'Chelva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30830, 46, 'Chella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30831, 46, 'Chera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30832, 46, 'Cheste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30833, 46, 'Chiva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30834, 46, 'Dos Aguas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30835, 46, 'Enguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30836, 46, 'Estivella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30837, 46, 'Faura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30838, 46, 'Favara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30839, 46, 'Foios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30840, 46, 'La Font D''en Carros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30841, 46, 'La Font de la Figuera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30842, 46, 'Fuenterrobles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30843, 46, 'Gavarda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30844, 46, 'Gandia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30845, 46, 'Genoves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30846, 46, 'Gilet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30847, 46, 'Godelleta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30848, 46, 'Grau I Platja de Gandia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30849, 46, 'Guadasequies'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30850, 46, 'Guadassuar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30851, 46, 'Hervideros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30852, 46, 'Jalance'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30853, 46, 'Xeraco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30854, 46, 'Jarafuel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30855, 46, 'Xativa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30856, 46, 'Xeresa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30857, 46, 'Lliria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30858, 46, 'Losa del Obispo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30859, 46, 'Llocnou de Sant Jeroni'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30860, 46, 'Llauri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30861, 46, 'Llombai'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30862, 46, 'Llosa de Ranes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30863, 46, 'Macastre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30864, 46, 'Manises'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30865, 46, 'Manuel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30866, 46, 'Masalaves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30867, 46, 'Massamagrell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30868, 46, 'Mogente-Moixent'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30869, 46, 'Monserrat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30870, 46, 'Montaverner'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30871, 46, 'Montesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30872, 46, 'Montichelvo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30873, 46, 'Montroy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30874, 46, 'Naquera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30875, 46, 'Navarres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30876, 46, 'Novele-Novetle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30877, 46, 'Oliva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30878, 46, 'L''olleria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30879, 46, 'Ontinyent'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30880, 46, 'Palma de Gandia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30881, 46, 'Paterna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30882, 46, 'El Perello'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30883, 46, 'Petres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30884, 46, 'Picassent'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30885, 46, 'Ponton'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30886, 46, 'Portera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30887, 46, 'Potries'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30888, 46, 'La Pobla del Duc'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30889, 46, 'La Pobla Llarga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30890, 46, 'La Pobla de Vallbona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30891, 46, 'Puerto de Sagunto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30892, 46, 'Puig'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30893, 46, 'Puol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30894, 46, 'Quesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30895, 46, 'Rafelbuol-Rafelbunyol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30896, 46, 'Rafelcofer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30897, 46, 'Rafelguaraf'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30898, 46, 'Rafol de Salem'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30899, 46, 'Real de Montroi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30900, 46, 'Requena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30901, 46, 'Rotgla Y Corbera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30902, 46, 'Rotova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30903, 46, 'Sagunto-Sagunt'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30904, 46, 'Salem'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30905, 46, 'El Saler'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30906, 46, 'San Antonio de Requena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30907, 46, 'San Juan de Enova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30908, 46, 'Segart'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30909, 46, 'Senyera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30910, 46, 'Serra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30911, 46, 'Siete Aguas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30912, 46, 'Silla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30913, 46, 'Simat de la Valldigna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30914, 46, 'Sollana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30915, 46, 'Sueca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30916, 46, 'Sumacarcer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30917, 46, 'Tavernes de la Valldigna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30918, 46, 'Teresa de Cofrentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30919, 46, 'Torrent'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30920, 46, 'Torres Torres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30921, 46, 'Turis'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30922, 46, 'Utiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30923, 46, 'Vallada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30924, 46, 'Valencia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30925, 46, 'Venta del Moro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30926, 46, 'Villalonga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30927, 46, 'Vilamarxant'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30928, 46, 'Villanueva de Castellon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30929, 46, 'Villar del Arzobispo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30930, 46, 'Villargordo del Cabriel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30931, 46, 'Yatova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30932, 46, 'Daimus'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30933, 46, 'Miramar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30934, 46, 'Guardamar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30935, 46, 'Riba-Roja de Turia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30936, 46, 'Atzeneta D''albaida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30937, 46, 'Piles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30938, 46, 'Picanya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30939, 46, 'Benicull'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30940, 46, 'Polinya de Xuquer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30941, 46, 'Real de Gandia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30942, 46, 'Benisano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30943, 46, 'Riola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30944, 46, 'Alaquas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30945, 46, 'Aldaia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30946, 46, 'Alcacer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30947, 46, 'Massalfassar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30948, 46, 'Museros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30949, 46, 'La Pobla de Farnals'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30950, 46, 'Las Casas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30951, 46, 'Los Corrales -Utiel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30952, 46, 'Las Cuevas de Utiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30953, 46, 'Alboraya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30954, 46, 'La Caada -Paterna-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30955, 46, 'Rebollar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30956, 46, 'Llutxent'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30957, 46, 'Sinarcas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30958, 46, 'Moncada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30959, 46, 'Cotes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30960, 46, 'Pedralba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30961, 46, 'Chulilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30962, 46, 'Paiporta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30963, 46, 'Benicolet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30964, 46, 'Calles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30965, 46, 'Benirredra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30966, 46, 'Rocafort'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30967, 46, 'Quart de Poblet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30968, 46, 'Aras de Alpuente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30969, 46, 'Titaguas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30970, 46, 'Tuejar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30971, 46, 'Barrio Arroyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30972, 46, 'Casas de Eufemia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30973, 46, 'Derramador'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30974, 46, 'Duques'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30975, 46, 'Roma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30976, 46, 'Barxeta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30977, 46, 'Lugar Nuevo de Fenollet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30978, 46, 'Ademuz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30979, 46, 'Casas Altas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30980, 46, 'Casas Bajas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30981, 46, 'Torrebaja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30982, 46, 'La Torre -Utiel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30983, 46, 'Casas del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30984, 46, 'Pedrones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30985, 46, 'Los Isidros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30986, 46, 'Ruices'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30987, 46, 'Beniatjar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30988, 46, 'Benisoda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30989, 46, 'Carricola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30990, 46, 'Otos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30991, 46, 'Castielfabib'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30992, 46, 'Los Santos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30993, 46, 'Vallanca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30994, 46, 'Belgida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30995, 46, 'Bufali'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30996, 46, 'Sempere'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30997, 46, 'Cerda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30998, 46, 'Sellent'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (30999, 46, 'Torrella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31000, 46, 'Sot de Chera'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31001, 46, 'Alpuente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31002, 46, 'Puebla de San Miguel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31003, 46, 'Palomar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31004, 46, 'Valles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31005, 46, 'Benageber'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31006, 46, 'Cortes de Pallas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31007, 46, 'Millares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31008, 46, 'Benisuera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31009, 46, 'Albuixech'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31010, 46, 'Llanera de Ranes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31011, 46, 'Alcublas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31012, 46, 'Andilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31013, 46, 'Bugarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31014, 46, 'Gestalgar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31015, 46, 'Higueruelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31016, 46, 'Olocau'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31017, 46, 'La Yesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31018, 46, 'Fontanars Dels Alforins'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31019, 46, 'Pinet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31020, 46, 'Estubeny'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31021, 46, 'Zarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31022, 46, 'Ayelo de Rugat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31023, 46, 'Castellonet de la Conquesta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31024, 46, 'Terrateig'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31025, 46, 'Tavernes Blanques'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31026, 46, 'L''eliana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31027, 46, 'La Pobleta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31028, 46, 'Oset'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31029, 46, 'San Isidro de Benageber'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31030, 46, 'San Antonio de Benageber'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31031, 46, 'El Romani'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31032, 46, 'Hortunas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31033, 46, 'Casas del Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31034, 46, 'Casas de Moya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31035, 46, 'Los Marcos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31036, 46, 'Las Monjas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31037, 46, 'Domeo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31038, 46, 'San Juan de Requena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31039, 46, 'Playa -Tavernes-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31040, 46, 'Playa -Oliva-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31041, 46, 'Torre Cerda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31042, 46, 'La Cuevarruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31043, 46, 'Aldea Seor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31044, 46, 'Torrent de Fenollet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31045, 46, 'Camping la Dorada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31046, 46, 'El Retorno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31047, 46, 'Tous'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31048, 46, 'Loriguilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31049, 46, 'Grau I Platja de Gandia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31050, 46, 'El Oro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31051, 46, 'Venta Gaeta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31052, 46, 'Masias -Moncada-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31053, 46, 'Omet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31054, 46, 'Ahillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31055, 46, 'Losilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31056, 46, 'Villar de Tejas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31057, 46, 'La Font Figuera Estacion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31058, 46, 'Les Cases de Barcena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31059, 46, 'Bonrepos I Mirambell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31060, 46, 'Almassera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31061, 46, 'Vinalesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31062, 46, 'Mas de Jacinto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31063, 46, 'El Saler'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31064, 46, 'La Almeza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31065, 46, 'Baldovar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31066, 46, 'Campo de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31067, 46, 'Campo de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31068, 46, 'El Collado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31069, 46, 'Corcolilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31070, 46, 'La Cuevarruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31071, 46, 'Obispo Hernandez O Eras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31072, 46, 'Anahuir'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31073, 46, 'Torre Lloris'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31074, 46, 'Campo Polideportivo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31075, 46, 'El Hontanar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31076, 46, 'Mareny Sant Lloren'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31077, 46, 'Albal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31078, 46, 'Emperador'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31079, 46, 'Fortaleny'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31080, 46, 'Marxuquera Baixa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31081, 46, 'Platja de Bellreguard'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31082, 46, 'Benifaraig'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31083, 46, 'El Palmar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31084, 46, 'Cojos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31085, 46, 'Pantano de Benageber'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31086, 46, 'Casas de Pradas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31087, 46, 'Jaraguas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31088, 46, 'Arroyo Cerezo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31089, 46, 'Marines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31090, 46, 'Alfafar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31091, 46, 'Xirivella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31092, 46, 'Godella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31093, 46, 'Lugar Nuevo de la Corona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31094, 46, 'Mislata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31095, 46, 'Sedavi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31096, 46, 'Beniparrell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31097, 46, 'Massanassa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31098, 46, 'Albalat Dels Sorells'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31099, 46, 'L''enova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31100, 46, 'La Granja de la Costera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31101, 46, 'Ador'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31102, 46, 'Alfauir'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31103, 46, 'Almisera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31104, 46, 'Benifla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31105, 46, 'Palmera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31106, 46, 'Rugat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31107, 46, 'Alfara del Patriarca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31108, 46, 'Meliana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31109, 46, 'Casas de Penen de Albosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31110, 46, 'Negron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31111, 46, 'Mas del Olmo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31112, 46, 'El Val de la Sabina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31113, 46, 'Mas de Los Mudos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31114, 46, 'La Cabezuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31115, 46, 'Castilblanques'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31116, 46, 'Los Herreros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31117, 46, 'Viuelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31118, 46, 'Fuen Vich'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31119, 46, 'Casas de Sotos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31120, 46, 'Pla de Corrals'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31121, 46, 'Cuesta del Rato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31122, 46, 'Borboto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31123, 46, 'Carpesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31124, 46, 'Massarrojos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31125, 46, 'Pinedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31126, 46, 'El Perellonet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31127, 46, 'Alboy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31128, 46, 'Alfinach'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31129, 46, 'Artaj'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31130, 46, 'Balneario de Fuente Podrida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31131, 46, 'Barraca Aigues Vives'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31132, 46, 'Domeo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31133, 46, 'Bellavista Alginet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31134, 46, 'Bonanza Naquera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31135, 46, 'Cabes Bort'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31136, 46, 'Calderon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31137, 46, 'Carambolo Chiva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31138, 46, 'Urb. Casas de Medina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31139, 46, 'Casas Pantano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31140, 46, 'Poligono Industrial Castilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31141, 46, 'Colonia Monte Hermoso Torrent'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31142, 46, 'Cruz de Gracia -Paterna-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31143, 46, 'Cruz de Gracia -Godella-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31144, 46, 'Cumbres Calicanto -Godelleta-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31145, 46, 'Cumbres de Calicanto -Torrent-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31146, 46, 'Cumbres de S.Antonio -Paterna-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31147, 46, 'Urb. Cumbres S.Antonio-Betera-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31148, 46, 'Cumbres de Valencia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31149, 46, 'Delicias del Realon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31150, 46, 'Urb. Helios'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31151, 46, 'El Alt Monserrat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31152, 46, 'Azagador'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31153, 46, 'El Bosque Chiva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31154, 46, 'Urb. El Hontanar -Utiel-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31155, 46, 'El Morqui'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31156, 46, 'El Murtal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31157, 46, 'El Pedregal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31158, 46, 'Pinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31159, 46, 'El Realengo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31160, 46, 'El Remedio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31161, 46, 'Albalat Dels Tarongers'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31162, 46, 'Tochar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31163, 46, 'El Tremolar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31164, 46, 'El Vedat -Alberic-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31165, 46, 'Poligono Industrial Encolsa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31166, 46, 'Torrent'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31167, 46, 'Faro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31168, 46, 'Pol. Fuente del Jarro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31169, 46, 'Fuente Oro Naquera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31170, 46, 'La Canaleja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31171, 46, 'La Caada -Requena-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31172, 46, 'La Coma -Paterna-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31173, 46, 'La Drova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31174, 46, 'La Garrofera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31175, 46, 'La Muela Chulilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31176, 46, 'Las Lomas Naquera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31177, 46, 'Nogueras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31178, 46, 'Las Palomas Torrent'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31179, 46, 'La Torre Barrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31180, 46, 'Loma de la Virgen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31181, 46, 'Los Monasterios -Puol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31182, 46, 'Lladro Puig'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31183, 46, 'Lladro Rafelbuol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31184, 46, 'Urb. Llanorel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31185, 46, 'Mahuella Taula.Rafalell V.Bell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31186, 46, 'Maravisa Pobla Vallbona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31187, 46, 'Mareny de Barraquetes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31188, 46, 'Mas Camarena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31189, 46, 'Mas Camarena Paterna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31190, 46, 'Pol. Industrial Mediterraneo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31191, 46, 'Pol. Industrial Mediterraneo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31192, 46, 'Monte Horquera Villamarchante'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31193, 46, 'Montortal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31194, 46, 'Mont Ros Naquera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31195, 46, 'Monte Jucar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31196, 46, 'Monte Mayor Manises'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31197, 46, 'Monte Picayo Puzol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31198, 46, 'Playamonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31199, 46, 'Monte Real Torrent'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31200, 46, 'Monte Rosado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31201, 46, 'Montes Segart Segart'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31202, 46, 'Navalon de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31203, 46, 'Oasis de San Vicente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31204, 46, 'Olimar Chiva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31205, 46, 'Otonel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31206, 46, 'Pantano de Benageber'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31207, 46, 'Partida de Gausa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31208, 46, 'Urb. Pedralvilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31209, 46, 'Poligono Industrial Pla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31210, 46, 'Almarda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31211, 46, 'Playa -Pobla de Farnals-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31212, 46, 'Playa del Puig'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31213, 46, 'Playa de Xeraco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31214, 46, 'Port Saplaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31215, 46, 'Mahuella Taula.Rafalell V.Bell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31216, 46, 'Rambla Seca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31217, 46, 'Rio Juanes Yatova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31218, 46, 'Salto de Millares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31219, 46, 'San Cristobal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31220, 46, 'San Francisco -Picassent-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31221, 46, 'Urb. San Gerardo-Monteblanco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31222, 46, 'Santo Domingo Chiva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31223, 46, 'Sierra-Mar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31224, 46, 'Mahuella Taula.Rafalell V.Bell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31225, 46, 'Torre de Porta Coeli'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31226, 46, 'Tosalnou'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31227, 46, 'Tros Alt Torrent'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31228, 46, 'Pol.Ind. Vara Quart'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31229, 46, 'Villar de Olmos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31230, 46, 'Poligono Industrial Virgen Salud'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31231, 46, 'Vistabella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31232, 46, 'Torrealta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31233, 46, 'Cogullada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31234, 46, 'Estenas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31235, 46, 'Mareny de Vilches'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31236, 46, 'Playa de Daims'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31237, 46, 'Sesga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31238, 46, 'El Castellar-L''oliveral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31239, 46, 'Pueblo Nuevo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31240, 46, 'Barrio Luz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31241, 46, 'La Presa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31242, 46, 'San Francisco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31243, 46, 'Porta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31244, 46, 'San Jose Artesano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31245, 46, 'Masia del Juez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31246, 46, 'Monte-Vedat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31247, 46, 'Carrascalet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31248, 46, 'Casas Jijara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31249, 46, 'Santa Maria de Bonaire'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31250, 46, 'Barrio de Villariezo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31251, 46, 'Montaeta de la Font'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31252, 46, 'Berfull'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31253, 46, 'Riu-Rau'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31254, 46, 'Casas de Madrona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31255, 46, 'San Benito'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31256, 46, 'La Malla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31257, 46, 'Masia Arnal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31258, 46, 'Providencia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31259, 46, 'Porta Coeli'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31260, 46, 'San Antonio Llombay'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31261, 46, 'Marxuquera Alta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31262, 46, 'Playa -Piles-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31263, 46, 'Papelera de San Jorge'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31264, 46, 'Sorio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31265, 46, 'Aljorf'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31266, 46, 'Barriete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31267, 46, 'Chicanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31268, 46, 'Ochandos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31269, 46, 'Turquia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31270, 46, 'Sancti Spiritu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31271, 46, 'Les Palmeres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31272, 46, 'Bega de Mar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31273, 46, 'Monte Santos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31274, 46, 'Contreras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31275, 46, 'El Brosquil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31276, 46, 'Caada Seca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31277, 46, 'La Pobla de Vallbona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31278, 46, 'Casas de Caballero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31279, 46, 'Casas de Carcel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31280, 46, 'Casas de Cuadra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31281, 46, 'Casas de Gimenez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31282, 46, 'Casas de la Manchega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31283, 46, 'El Chopo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31284, 46, 'Estacion de Los Valles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31285, 46, 'La Hortichuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31286, 46, 'Hoyo de Villarta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31287, 46, 'Los Sardineros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31288, 46, 'La Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31289, 46, 'Vizcota'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31290, 46, 'Salto de Cofrentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31291, 46, 'Playa de Canet D''en Berenguer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31292, 46, 'Beniferri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31293, 46, 'Ausias March'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31294, 46, 'Parque Tecnologico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31295, 46, 'Sierra Perenchiza Torrent'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31296, 46, 'Sierra Perenchiza Chiva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31297, 46, 'Ventas del Poyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31298, 46, 'Playa -Miramar-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31299, 46, 'Playa -Puol-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31300, 46, 'Montesano Paterna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31301, 46, 'Montesano -Betera-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31302, 46, 'Marines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31303, 46, 'Hospital Militar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31304, 46, 'Fuente Almaguer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31305, 46, 'La Ermita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31306, 46, 'Casa Foya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31307, 46, 'Venta Carbonell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31308, 46, 'Piscifactoria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31309, 46, 'Despoblado Rosalay'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31310, 46, 'Urbanizacion Los Lagos Alginet'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31311, 46, 'Barrio del Cristo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31312, 46, 'Poblado Cortes-La Muela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31313, 46, 'Terramelar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31314, 46, 'Poligono Industrial El Coscollar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31315, 46, 'Pla de Les Clotxes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31316, 46, 'El Periquillo (Betera)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31317, 46, 'El Brucar(Betera)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31318, 46, 'La Conarda -Betera-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31319, 46, 'Colonia Les Penyes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31320, 46, 'Pla de Aljups'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31321, 46, 'Puerto de Sagunto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31322, 46, 'El Romeral-Nuevas Villas (Marines)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31323, 46, 'Colonia Venta Cabrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31324, 46, 'Oliva Nova(Oliva)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31325, 46, 'Monte-Vedat'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31326, 46, 'La Olivereta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31327, 46, 'Mercovasa (Puig)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31328, 46, 'Polg.Ind.Masia del Juez (Torrent)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31329, 46, 'Masia Pavias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31330, 46, 'Masia Calabarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31331, 46, 'Cortichelles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31332, 46, 'Grau I Platja de Gandia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31333, 46, 'Santo Domingo Torrent'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31334, 46, 'San Miguel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31335, 46, 'Beniopa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31336, 46, 'Masia del Oliveral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31337, 46, 'La Palla Vallbona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31338, 46, 'Llano de Quart'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31339, 46, 'La Caada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31340, 46, 'Benicalap'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31341, 46, 'Gatova'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31342, 46, 'L''alcudia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31343, 46, 'Villanueva de Castellon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31344, 46, 'Alzira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31345, 46, 'Xirivella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31346, 46, 'Agullent'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31347, 47, 'Valladolid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31348, 47, 'Boecillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31349, 47, 'Cabezon de Pisuerga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31350, 47, 'Fontihoyuelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31351, 47, 'Iscar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31352, 47, 'Laguna de Duero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31353, 47, 'Matapozuelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31354, 47, 'Medina del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31355, 47, 'Medina de Rioseco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31356, 47, 'Nava del Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31357, 47, 'Olmedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31358, 47, 'La Pedraja de Portillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31359, 47, 'Peafiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31360, 47, 'Alaejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31361, 47, 'Pozaldez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31362, 47, 'Rueda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31363, 47, 'La Seca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31364, 47, 'Siete Iglesias de Trabancos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31365, 47, 'Simancas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31366, 47, 'Tordesillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31367, 47, 'Tudela de Duero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31368, 47, 'Valdestillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31369, 47, 'Valladolid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31370, 47, 'Viana de Cega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31371, 47, 'Villacarralon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31372, 47, 'Villalon de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31373, 47, 'Mayorga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31374, 47, 'Mojados'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31375, 47, 'Pedrajas de San Esteban'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31376, 47, 'Viloria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31377, 47, 'Alcazaren'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31378, 47, 'Montemayor de Pililla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31379, 47, 'La Parrilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31380, 47, 'Castromonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31381, 47, 'Peaflor de Hornija'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31382, 47, 'Torrelobaton'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31383, 47, 'Cigales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31384, 47, 'San Miguel del Arroyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31385, 47, 'Aldeamayor de San Martin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31386, 47, 'Villaverde de Medina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31387, 47, 'Carpio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31388, 47, 'Castrejon de Trabancos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31389, 47, 'Fresno El Viejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31390, 47, 'Nueva Villa de Las Torres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31391, 47, 'Torrecilla de la Orden'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31392, 47, 'Campaspero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31393, 47, 'Valoria la Buena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31394, 47, 'Camporredondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31395, 47, 'Bahabon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31396, 47, 'Cogeces del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31397, 47, 'Torrescarcela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31398, 47, 'Zaratan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31399, 47, 'Quintanilla de Onesimo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31400, 47, 'Sardon de Duero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31401, 47, 'Llano de Olmedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31402, 47, 'Mucientes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31403, 47, 'Tordehumos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31404, 47, 'Villabragima'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31405, 47, 'Villagarcia de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31406, 47, 'Traspinedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31407, 47, 'Santovenia de Pisuerga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31408, 47, 'Bocos de Duero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31409, 47, 'Corrales de Duero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31410, 47, 'Curiel de Duero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31411, 47, 'San Llorente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31412, 47, 'Valdearcos de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31413, 47, 'Amusquillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31414, 47, 'Bercero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31415, 47, 'Canillas de Esgueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31416, 47, 'Casasola de Arion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31417, 47, 'Castrillo-Tejeriego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31418, 47, 'Castronuevo de Esgueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31419, 47, 'Castroverde de Cerrato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31420, 47, 'Encinas de Esgueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31421, 47, 'Esguevillas de Esgueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31422, 47, 'Fombellida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31423, 47, 'Mota del Marques'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31424, 47, 'Olmos de Esgueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31425, 47, 'Pedrosa del Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31426, 47, 'Pia de Esgueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31427, 47, 'Renedo de Esgueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31428, 47, 'Torre de Esgueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31429, 47, 'Vega de Valdetronco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31430, 47, 'Villaco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31431, 47, 'Villafuerte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31432, 47, 'Villalar de Los Comuneros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31433, 47, 'Villanueva de Los Infantes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31434, 47, 'Villarmentero de Esgueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31435, 47, 'Villavaquerin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31436, 47, 'Portillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31437, 47, 'Serrada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31438, 47, 'Barcial de la Loma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31439, 47, 'Palazuelo de Vedija'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31440, 47, 'Villafrechos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31441, 47, 'Villamuriel de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31442, 47, 'Torrecilla de la Abadesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31443, 47, 'Castronuo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31444, 47, 'Pollos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31445, 47, 'Villanueva de Duero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31446, 47, 'Villanubla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31447, 47, 'Pozal de Gallinas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31448, 47, 'La Zarza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31449, 47, 'Rodilana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31450, 47, 'Corcos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31451, 47, 'Hornillos de Eresma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31452, 47, 'Aguilar de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31453, 47, 'Becilla de Valderaduey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31454, 47, 'Berrueces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31455, 47, 'Ceinos de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31456, 47, 'La Union de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31457, 47, 'Urones de Castroponce'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31458, 47, 'Cubillas de Santa Marta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31459, 47, 'Quintanilla de Trigueros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31460, 47, 'Trigueros del Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31461, 47, 'Fuensaldaa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31462, 47, 'Ataquines'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31463, 47, 'Benafarces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31464, 47, 'Tiedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31465, 47, 'Bobadilla del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31466, 47, 'Brahojos de Medina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31467, 47, 'El Campillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31468, 47, 'Villabaez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31469, 47, 'Ventosa de la Cuesta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31470, 47, 'Montealegre de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31471, 47, 'Palacios de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31472, 47, 'Villalba de Los Alcores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31473, 47, 'Pesquera de Duero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31474, 47, 'Piel de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31475, 47, 'Piel de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31476, 47, 'Roturas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31477, 47, 'La Mudarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31478, 47, 'Valdenebro de Los Valles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31479, 47, 'Santiago del Arroyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31480, 47, 'Wamba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31481, 47, 'Aldea de San Miguel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31482, 47, 'Almenara de Adaja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31483, 47, 'Bocigas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31484, 47, 'Fuente-Olmedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31485, 47, 'Geria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31486, 47, 'Fuente El Sol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31487, 47, 'Lomoviejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31488, 47, 'Cervillego de la Cruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31489, 47, 'Rubi de Bracamonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31490, 47, 'Cogeces de Iscar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31491, 47, 'Megeces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31492, 47, 'Villavicencio de Caballeros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31493, 47, 'Padilla de Duero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31494, 47, 'Quintanilla de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31495, 47, 'Valbuena de Duero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31496, 47, 'Cisterniga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31497, 47, 'San Bernardo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31498, 47, 'Bustillo de Chaves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31499, 47, 'Cabezon de Valderaduey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31500, 47, 'Castroponce'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31501, 47, 'Melgar de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31502, 47, 'Melgar de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31503, 47, 'Monasterio de Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31504, 47, 'Saelices de Mayorga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31505, 47, 'Santervas de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31506, 47, 'Vega de Ruiponce'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31507, 47, 'Villacreces'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31508, 47, 'Villagomez la Nueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31509, 47, 'Villalba de la Loma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31510, 47, 'Villanueva de la Condesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31511, 47, 'Zorita de la Loma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31512, 47, 'Velliza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31513, 47, 'Matilla de Los Caos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31514, 47, 'Villan de Tordesillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31515, 47, 'Robladillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31516, 47, 'Villafranca de Duero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31517, 47, 'Adalia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31518, 47, 'San Cebrian de Mazote'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31519, 47, 'Velascalvaro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31520, 47, 'Muriel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31521, 47, 'Castrodeza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31522, 47, 'Moral de la Reina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31523, 47, 'Olivares de Duero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31524, 47, 'Ciguuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31525, 47, 'Cuenca de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31526, 47, 'Castrillo de Duero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31527, 47, 'Olmos de Peafiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31528, 47, 'San Miguel del Pino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31529, 47, 'Villamarciel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31530, 47, 'Villacid de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31531, 47, 'San Roman de Hornija'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31532, 47, 'Herrin de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31533, 47, 'Bolaos de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31534, 47, 'Valdunquillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31535, 47, 'Villalan de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31536, 47, 'Rabano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31537, 47, 'Canalejas de Peafiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31538, 47, 'Fompedraza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31539, 47, 'Torre de Peafiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31540, 47, 'Molpeceres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31541, 47, 'Villanueva de Los Caballeros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31542, 47, 'Uruea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31543, 47, 'Villardefrades'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31544, 47, 'Villavellid'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31545, 47, 'San Pedro de Latarce'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31546, 47, 'Roales de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31547, 47, 'Langayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31548, 47, 'Manzanillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31549, 47, 'Morales de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31550, 47, 'Villaesper'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31551, 47, 'Tamariz de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31552, 47, 'Villabaruz de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31553, 47, 'Gaton de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31554, 47, 'Villafrades de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31555, 47, 'Santa Eufemia del Arroyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31556, 47, 'Foncastin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31557, 47, 'Villalbarba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31558, 47, 'San Martin de Valveni'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31559, 47, 'Valverde de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31560, 47, 'Cabreros del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31561, 47, 'Gomeznarro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31562, 47, 'San Vicente del Palacio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31563, 47, 'Villanueva de San Mancio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31564, 47, 'Villavieja del Cerro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31565, 47, 'Melida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31566, 47, 'Moraleja de Las Panaderas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31567, 47, 'La Overuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31568, 47, 'Marzales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31569, 47, 'Castrobol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31570, 47, 'Gallegos de Hornija'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31571, 47, 'Santibaez Valcorba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31572, 47, 'Aguasal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31573, 47, 'Aldeyuso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31574, 47, 'Villasexmir'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31575, 47, 'Berceruelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31576, 47, 'Puras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31577, 47, 'Salvador de Zapardiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31578, 47, 'Ramiro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31579, 47, 'Velilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31580, 47, 'Gordaliza de la Loma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31581, 47, 'Aldealbar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31582, 47, 'San Pablo de la Moraleja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31583, 47, 'Villalba de Adaja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31584, 47, 'Quintanilla del Molar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31585, 47, 'Puente Duero-Esparragal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31586, 47, 'Barruelo del Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31587, 47, 'San Pelayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31588, 47, 'Torrecilla de la Torre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31589, 47, 'San Salvador'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31590, 47, 'Torrecilla del Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31591, 47, 'Castromembibre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31592, 47, 'Pobladura de Sotiedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31593, 47, 'Arroyo de la Encomienda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31594, 47, 'Honcalada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31595, 47, 'Pinar de Antequera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31596, 47, 'Herrera de Duero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31597, 47, 'Pozuelo de la Orden'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31598, 47, 'Pedroso de la Abadesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31599, 47, 'La Flecha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31600, 47, 'Hibridos Americanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31601, 47, 'El Pinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31602, 47, 'Retuerta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31603, 47, 'La Santa Espina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31604, 47, 'Vegalatorre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31605, 47, 'Aguilarejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31606, 47, 'Calabazas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31607, 47, 'Los Villaesteres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31608, 47, 'Navabuena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31609, 47, 'Pinar de Simancas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31610, 47, 'Sardoncillo O la Granja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31611, 47, 'Villa-Sanz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31612, 47, 'Herreros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31613, 47, 'Granja Muedra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31614, 47, 'Viloria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31615, 47, 'Arroyo de la Encomienda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31616, 47, 'Cabezon de Pisuerga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31617, 48, 'Abadio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31618, 48, 'Ajangiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31619, 48, 'Bakio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31620, 48, 'Alonsotegi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31621, 48, 'Amorebieta-Etxano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31622, 48, 'Elexalde -Amoroto-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31623, 48, 'Apatamonasterio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31624, 48, 'Arakaldo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31625, 48, 'Celaya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31626, 48, 'Munitibar-Arbatzegi Gerrikaitz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31627, 48, 'La Arboleda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31628, 48, 'San Miguel de Linares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31629, 48, 'Las Arenas-Areeta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31630, 48, 'Armintza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31631, 48, 'Arrankudiaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31632, 48, 'Arrazola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31633, 48, 'Arratzu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31634, 48, 'Agarre -Arrieta-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31635, 48, 'Arrigorriaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31636, 48, 'Asua-Lauroeta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31637, 48, 'Axpe -Atxondo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31638, 48, 'Busturi-Axpe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31639, 48, 'Basigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31640, 48, 'San Vicente de Barakaldo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31641, 48, 'Barinaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31642, 48, 'Elexalde -Barrika-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31643, 48, 'La Rigada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31644, 48, 'Berango'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31645, 48, 'Bermeo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31646, 48, 'Erribera -Berriatua-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31647, 48, 'Olakueta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31648, 48, 'Bilbao-Bilbo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31649, 48, 'Bolibar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31650, 48, 'Concha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31651, 48, 'Las Carreras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31652, 48, 'Herriko Plaza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31653, 48, 'Plaza-Elexondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31654, 48, 'Zubialde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31655, 48, 'Zierbena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31656, 48, 'Loiu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31657, 48, 'La Cuesta-Aldapa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31658, 48, 'Derio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31659, 48, 'Ugarana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31660, 48, 'Durango'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31661, 48, 'Ea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31662, 48, 'Etxano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31663, 48, 'Erbera O San Andres-Etxebarria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31664, 48, 'Elantxobe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31665, 48, 'Elorrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31666, 48, 'Asterrika'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31667, 48, 'Elexalde-Zeeta -Ereo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31668, 48, 'Ermua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31669, 48, 'Elexalde -Gamiz Fika-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31670, 48, 'Elexalde -Forua-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31671, 48, 'Fruiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31672, 48, 'Galdakao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31673, 48, 'San Pedro-Galdames Beitia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31674, 48, 'Gallarta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31675, 48, 'Ergoien -Gamiz Fika-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31676, 48, 'Garay'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31677, 48, 'Garai -Gatika-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31678, 48, 'Arteaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31679, 48, 'Sandamendi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31680, 48, 'Elexalde -Gorliz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31681, 48, 'Riotorto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31682, 48, 'Traslavia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31683, 48, 'Guees'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31684, 48, 'Gernika-Lumo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31685, 48, 'Eguen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31686, 48, 'Ibarrangelu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31687, 48, 'Elixaldea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31688, 48, 'Ispaster-Elexalde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31689, 48, 'Izurtza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31690, 48, 'Lanestosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31691, 48, 'Larrabetzu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31692, 48, 'Larrauri-Markaida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31693, 48, 'Lemoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31694, 48, 'Urizar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31695, 48, 'Lekeitio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31696, 48, 'Mallabia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31697, 48, 'Maaria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31698, 48, 'Markina-Xemein'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31699, 48, 'Ergoien -Maruri-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31700, 48, 'Elexalde -Mendata-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31701, 48, 'Zelaia -Mendexa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31702, 48, 'Natxitua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31703, 48, 'Ugao-Miraballes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31704, 48, 'Meakaur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31705, 48, 'Ugarte -Muxika-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31706, 48, 'Mundaka'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31707, 48, 'Mungia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31708, 48, 'Aulesti'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31709, 48, 'Murueta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31710, 48, 'Elexalde -Nabarniz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31711, 48, 'Otxandio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31712, 48, 'Ondarroa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31713, 48, 'Ordua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31714, 48, 'Zubiaur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31715, 48, 'Ortuella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31716, 48, 'Sukarrieta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31717, 48, 'Plentzia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31718, 48, 'Kortezubi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31719, 48, 'Trucios-Turtzioz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31720, 48, 'Errigoiti'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31721, 48, 'Valle de Trapaga-Trapagaran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31722, 48, 'Aretxalde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31723, 48, 'Santurtzi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31724, 48, 'Sestao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31725, 48, 'Sodupe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31726, 48, 'San Juan -Muskiz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31727, 48, 'Basozabal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31728, 48, 'Moreaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31729, 48, 'Mercadillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31730, 48, 'Ubide'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31731, 48, 'Ubilla-Urberuaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31732, 48, 'La Campa -Urduliz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31733, 48, 'Urkiola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31734, 48, 'Balmaseda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31735, 48, 'Elexalde -Bedia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31736, 48, 'Areatza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31737, 48, 'Elexalde -Igorre-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31738, 48, 'Zaldibar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31739, 48, 'Mimetiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31740, 48, 'Arteaga-San Martin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31741, 48, 'Zaratamo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31742, 48, 'Zollo-Elexalde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31743, 48, 'Bedarona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31744, 48, 'Elotxelerri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31745, 48, 'Elizalde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31746, 48, 'Akorda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31747, 48, 'Mesterika'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31748, 48, 'Zaramillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31749, 48, 'Pobea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31750, 48, 'Iruzubieta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31751, 48, 'Metxika'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31752, 48, 'Elexalde-Olabarri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31753, 48, 'La Herrera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31754, 48, 'Otxaran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31755, 48, 'Andra Mari'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31756, 48, 'Elexalde -Leioa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31757, 48, 'San Esteban -Etxebarri-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31758, 48, 'Basauri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31759, 48, 'Portugalete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31760, 48, 'Zugastieta Oca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31761, 48, 'Akorda-Bollar -Ereo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31762, 48, 'Atxika-Errekalde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31763, 48, 'Atxuri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31764, 48, 'Aeropuerto de Sondika'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31765, 48, 'Agirre -Muxika-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31766, 48, 'Jose Antonio Aguirre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31767, 48, 'Agarre -Bermeo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31768, 48, 'Agirre-Aperribai'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31769, 48, 'Ahedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31770, 48, 'Ajuria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31771, 48, 'Albiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31772, 48, 'Almika'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31773, 48, 'Aldana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31774, 48, 'Aldai'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31775, 48, 'Alen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31776, 48, 'Altamira-San Kristobal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31777, 48, 'Sollano-Llantada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31778, 48, 'Ambasaguas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31779, 48, 'Ametzola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31780, 48, 'Andekos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31781, 48, 'Andikoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31782, 48, 'Andra Mari -Gorliz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31783, 48, 'Andra-Mari -Morga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31784, 48, 'Meakabarrena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31785, 48, 'Andraka'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31786, 48, 'Arene-Pelaio Deuna -Bermeo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31787, 48, 'Aranguren'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31788, 48, 'Getxo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31789, 48, 'Arbaiza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31790, 48, 'Arkotxa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31791, 48, 'Areatza -Gorliz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31792, 48, 'El Arenao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31793, 48, 'Aresandiaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31794, 48, 'Argiano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31795, 48, 'Ariatza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31796, 48, 'Arostegieta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31797, 48, 'Arronategi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31798, 48, 'Arta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31799, 48, 'Artatza -Leioa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31800, 48, 'La Pea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31801, 48, 'Artika'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31802, 48, 'Altzuaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31803, 48, 'San Roman'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31804, 48, 'Astepe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31805, 48, 'Aurrekoetxe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31806, 48, 'Autzagane'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31807, 48, 'Baldatika'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31808, 48, 'La Balastera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31809, 48, 'Balparda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31810, 48, 'Barainka'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31811, 48, 'Bargondia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31812, 48, 'Olabarrieta-Las Barrietas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31813, 48, 'Barroeta -Bedia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31814, 48, 'Amalloa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31815, 48, 'Gorocica Elizalde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31816, 48, 'Cezura'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31817, 48, 'Treto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31818, 48, 'San Julian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31819, 48, 'Aldeacueva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31820, 48, 'Anguerechu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31821, 48, 'Bustillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31822, 48, 'Barrutia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31823, 48, 'Lanzas Agudas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31824, 48, 'Ugaran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31825, 48, 'Presa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31826, 48, 'Ranero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31827, 48, 'San Esteban-Galdames Goitia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31828, 48, 'Solarte-Gallete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31829, 48, 'Las Torcachas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31830, 48, 'Basauntz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31831, 48, 'Zeinka-Zearregi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31832, 48, 'Kanala -Gauteguiz de Arteaga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31833, 48, 'Laga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31834, 48, 'Laida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31835, 48, 'Eroso-Ugarte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31836, 48, 'Ibarra -Orozko-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31837, 48, 'Ipiaburu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31838, 48, 'Lendoo Behekoa-Lendoo Abajo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31839, 48, 'Mespelerreka-El Regato'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31840, 48, 'La Quadra -Guees-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31841, 48, 'Altzaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31842, 48, 'Kobaron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31843, 48, 'Basetxeta-Atxoste -Ereo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31844, 48, 'Gabika'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31845, 48, 'Santa Cruz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31846, 48, 'Iratzagorria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31847, 48, 'Zaldu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31848, 48, 'Avellaneda-Urrestieta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31849, 48, 'Libano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31850, 48, 'Undurraga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31851, 48, 'Anteparaluzeta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31852, 48, 'Mekoleta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31853, 48, 'Basinagre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31854, 48, 'Cueto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31855, 48, 'Aspiuntza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31856, 48, 'Ermitabarri-Ibarra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31857, 48, 'Ariltza-Olatzar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31858, 48, 'Arkulanda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31859, 48, 'Gainko-Oleaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31860, 48, 'La Acea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31861, 48, 'Uribe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31862, 48, 'Asterria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31863, 48, 'Altzusta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31864, 48, 'Montellano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31865, 48, 'Bezi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31866, 48, 'Neguri -Getxo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31867, 48, 'Algorta -Getxo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31868, 48, 'Meaka'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31869, 48, 'Segur de Calafell'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31870, 48, 'Basetxeta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31871, 48, 'Basondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31872, 48, 'Belako'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31873, 48, 'Cruces -Barakaldo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31874, 48, 'Bengoetxea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31875, 48, 'Bernagoitia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31876, 48, 'Bernales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31877, 48, 'Berreaga -Mungia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31878, 48, 'Berreo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31879, 48, 'Berrio-Aldape'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31880, 48, 'Biaez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31881, 48, 'Boroa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31882, 48, 'Botiola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31883, 48, 'Burbustu-Altamira'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31884, 48, 'Butroe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31885, 48, 'Buya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31886, 48, 'Cadegal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31887, 48, 'La Calera del Prado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31888, 48, 'El Callejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31889, 48, 'El Castao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31890, 48, 'Goierria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31891, 48, 'La Cerca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31892, 48, 'Cotorrio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31893, 48, 'Elortza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31894, 48, 'Kukullaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31895, 48, 'Kurtxiaga-Arropain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31896, 48, 'Chaco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31897, 48, 'Txabarri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31898, 48, 'Demiku'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31899, 48, 'Duraona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31900, 48, 'Eitua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31901, 48, 'Elejabeitia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31902, 48, 'Elguero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31903, 48, 'Emerando -Mungia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31904, 48, 'Traa-Matiena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31905, 48, 'Esparta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31906, 48, 'Eskerika'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31907, 48, 'Esturu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31908, 48, 'Euba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31909, 48, 'Gazeta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31910, 48, 'Galindo-Salcedillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31911, 48, 'Gallartu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31912, 48, 'Gambe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31913, 48, 'Gandia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31914, 48, 'Gardata-Artika'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31915, 48, 'Gaztelu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31916, 48, 'Gaztelua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31917, 48, 'Gazaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31918, 48, 'Goikolexea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31919, 48, 'Goitioltza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31920, 48, 'Gorgolas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31921, 48, 'Gorordo Gatica'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31922, 48, 'Goierri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31923, 48, 'Goiherri -Erandio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31924, 48, 'Goiherri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31925, 48, 'Geldo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31926, 48, 'Gerediaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31927, 48, 'Gerrika'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31928, 48, 'Gezala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31929, 48, 'Gutiolo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31930, 48, 'Goiuria (Durango)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31931, 48, 'Herboso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31932, 48, 'Ibarguen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31933, 48, 'Ibarra -Gamiz Fika-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31934, 48, 'Ibarrola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31935, 48, 'Icazurietas Inchaurragas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31936, 48, 'Barrio San Ignacio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31937, 48, 'Igartua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31938, 48, 'Iguria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31939, 48, 'Ilunzar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31940, 48, 'Intxaurbizkar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31941, 48, 'Indusi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31942, 48, 'Irauregi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31943, 48, 'Isla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31944, 48, 'Isuzkitza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31945, 48, 'Iturreta -Markina Xemein-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31946, 48, 'Iturreta -Mendexa-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31947, 48, 'Jauregi-Ieuri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31948, 48, 'Jarralta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31949, 48, 'Algorta -Getxo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31950, 48, 'Lamiako'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31951, 48, 'Lamindao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31952, 48, 'Larrabasterra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31953, 48, 'Laukariz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31954, 48, 'Lauroeta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31955, 48, 'Laxier'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31956, 48, 'Leagi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31957, 48, 'Leaniz-Miota'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31958, 48, 'Lekerika -Nabarniz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31959, 48, 'Lekeriketa -Elorrio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31960, 48, 'Libarona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31961, 48, 'Likona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31962, 48, 'Madalena -Berriatua-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31963, 48, 'Maguma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31964, 48, 'Mandaluiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31965, 48, 'Manzaneda de Biaez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31966, 48, 'Maua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31967, 48, 'Larrauri-Markaida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31968, 48, 'Marmiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31969, 48, 'Matamoros-Burzaco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31970, 48, 'Traa-Matiena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31971, 48, 'Matienzo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31972, 48, 'Meabe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31973, 48, 'Mentxakaeta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31974, 48, 'Mendazona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31975, 48, 'Mendiola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31976, 48, 'Mendiondo -Laukiz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31977, 48, 'Mendiondo -Urduliz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31978, 48, 'Mendoza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31979, 48, 'Mendraka'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31980, 48, 'Andra Mari -Getxo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31981, 48, 'Mercabilbao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31982, 48, 'Mereludi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31983, 48, 'Merika'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31984, 48, 'Molinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31985, 48, 'Morgaondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31986, 48, 'Moiordin-Barrondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31987, 48, 'Las Muecas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31988, 48, 'Murgoitio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31989, 48, 'Murueta -Orozko-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31990, 48, 'Narea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31991, 48, 'Nocedal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31992, 48, 'Oba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31993, 48, 'Okango'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31994, 48, 'Otzerimendi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31995, 48, 'Odiaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31996, 48, 'Izartza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31997, 48, 'Etxebarri Doneztebeko Elizatea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31998, 48, 'Olabe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (31999, 48, 'Olatxua-Olabarri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32000, 48, 'Olarra'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32001, 48, 'Olazabal -Dima-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32002, 48, 'Oma'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32003, 48, 'Oarte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32004, 48, 'La Orconera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32005, 48, 'Usparitxa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32006, 48, 'Oromio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32007, 48, 'Oromio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32008, 48, 'Orozketa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32009, 48, 'Amorebieta-Etxano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32010, 48, 'Pando'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32011, 48, 'Pandozales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32012, 48, 'Parkotxa-Barrionuevo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32013, 48, 'Paules'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32014, 48, 'Legizamon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32015, 48, 'La Pea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32016, 48, 'Peueco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32017, 48, 'El Peso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32018, 48, 'Arriaundi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32019, 48, 'Poligono Bakiola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32020, 48, 'El Ponton-Urarte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32021, 48, 'Larreineta-La Reineta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32022, 48, 'Rioseco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32023, 48, 'Las Ribas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32024, 48, 'Boluaga-La Baluga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32025, 48, 'San Agustin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32026, 48, 'Aranoltza-San Antolin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32027, 48, 'San Roque -La Cuesta-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32028, 48, 'San Cipriano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32029, 48, 'San Esteban -Carranza-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32030, 48, 'Santimami -Zamudio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32031, 48, 'San Martin de Carral'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32032, 48, 'Elexalde -Basauri-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32033, 48, 'Mikel Deuna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32034, 48, 'San Miguel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32035, 48, 'San Pedro -Lumo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32036, 48, 'Arene-Pelaio Deuna -Bermeo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32037, 48, 'Sanchosolo-San Pedro Goicuria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32038, 48, 'Sangrices'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32039, 48, 'Zangroiz -Sondika-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32040, 48, 'Emerandos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32041, 48, 'Santa Luzia-Elgetzu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32042, 48, 'Santecilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32043, 48, 'Santelices'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32044, 48, 'Santiago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32045, 48, 'Saratxaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32046, 48, 'Sarasola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32047, 48, 'Sarria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32048, 48, 'Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32049, 48, 'Solatxi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32050, 48, 'Soloan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32051, 48, 'Soscao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32052, 48, 'El Suceso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32053, 48, 'Superpuerto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32054, 48, 'Totorika'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32055, 48, 'Trapaga-Causo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32056, 48, 'Traslosheros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32057, 48, 'Triano -Abanto Zierbena-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32058, 48, 'Ereo -Bedia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32059, 48, 'Ugarte -Artea-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32060, 48, 'Ugarte -Gatika-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32061, 48, 'Ugarte -Valle de Trapaga-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32062, 48, 'Ugeraga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32063, 48, 'Uparan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32064, 48, 'Urbanizacion Jatabe Berri Maruri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32065, 48, 'Unbe-Mendi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32066, 48, 'Urezarantze'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32067, 48, 'Uribarri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32068, 48, 'Uribarri-Zabaleta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32069, 48, 'Urigoiti'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32070, 48, 'Uriondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32071, 48, 'Urioste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32072, 48, 'Urkizu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32073, 48, 'Urresti'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32074, 48, 'Urrutia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32075, 48, 'Usansolo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32076, 48, 'Sukarrieta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32077, 48, 'Bikarregi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32078, 48, 'Bildosola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32079, 48, 'Villanueva Presa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32080, 48, 'Billela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32081, 48, 'Bista Alegre Muxika'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32082, 48, 'Iurreta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32083, 48, 'Zalbide'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32084, 48, 'Barrika'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32085, 48, 'Zallo -Gernika-Lumo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32086, 48, 'Zuloaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32087, 48, 'Zurbano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32088, 48, 'Dobaran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32089, 48, 'Zabaloetxe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32090, 48, 'Ander Deuna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32091, 48, 'San Juan -Igorre-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32092, 48, 'San Lorentzo -Berriz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32093, 48, 'San Martin-Albizuelexaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32094, 48, 'Zubero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32095, 48, 'Gerrikaitz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32096, 48, 'Eitzaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32097, 48, 'Belandia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32098, 48, 'Lendoo Goikoa-Lendoo Arriba-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32099, 48, 'Mendeika'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32100, 48, 'Etxebarri Doneztebeko Elizatea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32101, 48, 'Bilaoko Esparrua-Cca.Villao-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32102, 48, 'Gumuzio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32103, 48, 'Okamika'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32104, 48, 'Lariz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32105, 48, 'Unamuntzaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32106, 48, 'Galarza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32107, 48, 'Gordon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32108, 48, 'El Ventorro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32109, 48, 'Jurisdiccion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32110, 48, 'Urbieta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32111, 48, 'Gure Mendi'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32112, 48, 'Urkizaur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32113, 48, 'San Pelaio -Bakio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32114, 48, 'Goitisolo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32115, 48, 'Bentalde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32116, 48, 'Artzalde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32117, 48, 'Malabrigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32118, 48, 'Azkarai'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32119, 48, 'Monte Berreaga Urbanizacion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32120, 48, 'Teknologi Elkartegia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32121, 48, 'Sanfuentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32122, 48, 'Arriaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32123, 48, 'Astrabudua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32124, 48, 'Erandio Goikoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32125, 48, 'Lutxana-Enekuri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32126, 48, 'Arcocha Goikoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32127, 48, 'La Herrera Ekialdea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32128, 48, 'La Reineta Bekoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32129, 48, 'El Villar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32130, 48, 'Elorriaga -Kortezubi-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32131, 48, 'Sabino Arana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32132, 48, 'Erandio Goikoa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32133, 48, 'Sangroniz -Loiu-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32134, 48, 'San Mames -Derio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32135, 48, 'San Antolin -Derio-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32136, 48, 'Olabarri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32137, 48, 'Murtatza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32138, 48, 'Jauregi-Ieuri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32139, 48, 'Ibarra -Bedia-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32140, 48, 'Bidekoetxe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32141, 48, 'Astietxea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32142, 48, 'Garaioltza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32143, 48, 'Sertutxa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32144, 48, 'Loiu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32145, 48, 'Las Arenas-Areeta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32146, 48, 'Las Arenas-Areeta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32147, 48, 'Zubieta -Gordexola-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32148, 48, 'Larrabetzu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32149, 48, 'Lutxana -Barakaldo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32150, 48, 'Zeberio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32151, 48, 'Valle de Trapaga-Trapagaran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32152, 48, 'Areatza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32153, 48, 'La Arboleda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32154, 48, 'Zorroza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32155, 48, 'Muxika'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32156, 48, 'El Campillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32157, 48, 'Gordexola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32158, 48, 'San Juan -Muskiz-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32159, 48, 'Abanto Zierbena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32160, 48, 'Amoroto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32161, 48, 'Arantzazu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32162, 48, 'Munitibar-Arbatzegi Gerrikaitz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32163, 48, 'Arrieta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32164, 48, 'Atxondo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32165, 48, 'Berriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32166, 48, 'Busturia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32167, 48, 'Carranza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32168, 48, 'Zeberio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32169, 48, 'Galdames'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32170, 48, 'Gamiz-Fika'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32171, 48, 'Gautegiz Arteaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32172, 48, 'Gernika-Lumo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32173, 48, 'Lemoiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32174, 48, 'Markina-Xemein'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32175, 48, 'Morga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32176, 48, 'Muxika'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32177, 48, 'Muskiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32178, 48, 'Abadio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32179, 48, 'Amorebieta-Etxano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32180, 48, 'Etxebarri Doneztebeko Elizatea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32181, 48, 'Arcentales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32182, 48, 'Gorliz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32183, 48, 'Barakaldo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32184, 48, 'Barrika'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32185, 48, 'Bedia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32186, 48, 'Berriatua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32187, 48, 'Artea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32188, 48, 'Zeanuri'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32189, 48, 'Dima'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32190, 48, 'Erandio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32191, 48, 'Ereo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32192, 48, 'Etxebarria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32193, 48, 'Forua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32194, 48, 'Gatika'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32195, 48, 'Mendata'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32196, 48, 'Getxo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32197, 48, 'Gordexola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32198, 48, 'Gizaburuaga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32199, 48, 'Igorre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32200, 48, 'Ispaster'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32201, 48, 'Laukiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32202, 48, 'Lezama'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32203, 48, 'Maruri-Jatabe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32204, 48, 'Loiu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32205, 48, 'Mendexa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32206, 48, 'Meaka'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32207, 48, 'Nabarniz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32208, 48, 'Orozko'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32209, 48, 'Sopelana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32210, 48, 'Sondika'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32211, 48, 'Sopuerta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32212, 48, 'Ugao-Miraballes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32213, 48, 'Urduliz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32214, 48, 'Valle de Trapaga-Trapagaran'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32215, 48, 'Zalla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32216, 48, 'Zamudio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32217, 48, 'Leioa (Lejona)'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32218, 48, 'Fruiz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32219, 48, 'Zierbena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32220, 48, 'Arratzu'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32221, 48, 'Leioa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32222, 48, 'Leioa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32223, 48, 'Oromio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32224, 48, 'Abanto Zierbena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32225, 48, 'Artea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32226, 49, 'Benavente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32227, 49, 'La Boveda de Toro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32228, 49, 'Corrales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32229, 49, 'Fuentelapea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32230, 49, 'Fuentesauco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32231, 49, 'Guarrate'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32232, 49, 'Moraleja del Vino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32233, 49, 'Toro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32234, 49, 'Villalpando'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32235, 49, 'Zamora'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32236, 49, 'Villaralbo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32237, 49, 'Madridanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32238, 49, 'Santa Cristina Polvorosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32239, 49, 'Villanueva de Campean'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32240, 49, 'Santa Clara Avedillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32241, 49, 'Puebla de Sanabria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32242, 49, 'El Puente -Galende-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32243, 49, 'Vadillo de la Guarea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32244, 49, 'Alcaices'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32245, 49, 'San Cristobal de Entrevias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32246, 49, 'Granja Florencia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32247, 49, 'Jambrina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32248, 49, 'Montamarta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32249, 49, 'Villaescusa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32250, 49, 'Peleas de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32251, 49, 'El Cubo de Tierra del Vino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32252, 49, 'Cabaas de Sayago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32253, 49, 'Caizal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32254, 49, 'Peausende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32255, 49, 'Pinilla de Toro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32256, 49, 'Vezdemarban'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32257, 49, 'Villalonso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32258, 49, 'Villavendimio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32259, 49, 'Aspariegos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32260, 49, 'Benegiles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32261, 49, 'Monfarracinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32262, 49, 'Fonfria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32263, 49, 'Muelas del Pan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32264, 49, 'Trefacio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32265, 49, 'Castroverde de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32266, 49, 'Villalcampo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32267, 49, 'Castrogonzalo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32268, 49, 'Cerecinos de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32269, 49, 'San Esteban del Molar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32270, 49, 'Villardondiego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32271, 49, 'Camarzana de Tera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32272, 49, 'Mombuey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32273, 49, 'San Pedro de Ceque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32274, 49, 'Santibaez de Tera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32275, 49, 'Santibaez de Vidriales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32276, 49, 'Villardeciervos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32277, 49, 'Bermillo de Sayago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32278, 49, 'Almeida de Sayago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32279, 49, 'Fermoselle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32280, 49, 'Luelmo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32281, 49, 'Moralina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32282, 49, 'Muga de Sayago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32283, 49, 'Villar del Buey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32284, 49, 'Pereruela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32285, 49, 'Villanueva del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32286, 49, 'Fuentes de Ropel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32287, 49, 'San Miguel del Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32288, 49, 'Morales de Toro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32289, 49, 'Coreses'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32290, 49, 'Fresno de la Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32291, 49, 'Carbajales de Alba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32292, 49, 'Losacio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32293, 49, 'Muga de Alba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32294, 49, 'Andavias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32295, 49, 'Manzanal del Barco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32296, 49, 'Losacino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32297, 49, 'Gema'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32298, 49, 'Casaseca de Las Chanas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32299, 49, 'El Piero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32300, 49, 'San Miguel de la Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32301, 49, 'Argujillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32302, 49, 'Venialbo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32303, 49, 'La Hiniesta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32304, 49, 'Santovenia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32305, 49, 'Granja de Moreruela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32306, 49, 'Manganeses de la Lampreana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32307, 49, 'Pajares de la Lampreana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32308, 49, 'Revellinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32309, 49, 'San Agustin del Pozo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32310, 49, 'Villafafila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32311, 49, 'Villarrin de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32312, 49, 'Castronuevo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32313, 49, 'Belver de Los Montes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32314, 49, 'Caizo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32315, 49, 'Villamor de Los Escuderos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32316, 49, 'El Maderal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32317, 49, 'Sanzoles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32318, 49, 'Villabuena del Puente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32319, 49, 'El Pego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32320, 49, 'Galende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32321, 49, 'Asturianos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32322, 49, 'Muelas de Los Caballeros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32323, 49, 'Palacios de Sanabria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32324, 49, 'Mahide'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32325, 49, 'San Vitero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32326, 49, 'Fuentespreadas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32327, 49, 'Moraleja de Sayago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32328, 49, 'Morales del Vino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32329, 49, 'El Perdigon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32330, 49, 'Pobladura del Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32331, 49, 'San Roman del Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32332, 49, 'La Torre del Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32333, 49, 'Villalobos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32334, 49, 'Valdescorriel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32335, 49, 'Vega de Villalobos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32336, 49, 'Colinas de Trasmonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32337, 49, 'Quiruelas de Vidriales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32338, 49, 'Morales de Rey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32339, 49, 'Arrabalde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32340, 49, 'Villabrazaro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32341, 49, 'Ribadelago de Franco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32342, 49, 'Manganeses de la Polvorosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32343, 49, 'Lubian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32344, 49, 'Requejo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32345, 49, 'Ceadea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32346, 49, 'Cerezal de Aliste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32347, 49, 'Sejas de Aliste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32348, 49, 'Trabazos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32349, 49, 'Rabanales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32350, 49, 'Villamor de Cadozos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32351, 49, 'Matilla de Arzon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32352, 49, 'Santa Colomba Carabias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32353, 49, 'Villanueva de Azoague'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32354, 49, 'Almaraz de Duero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32355, 49, 'Villaseco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32356, 49, 'Arcenillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32357, 49, 'Algodre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32358, 49, 'Gallegos del Pan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32359, 49, 'Villalube'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32360, 49, 'Cubillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32361, 49, 'Faramontanos de Tabara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32362, 49, 'Ferreras de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32363, 49, 'Moreruela de Tabara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32364, 49, 'Perilla de Castro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32365, 49, 'Pozuelo de Tabara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32366, 49, 'Santa Eulalia de Tabara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32367, 49, 'Tabara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32368, 49, 'Valcabado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32369, 49, 'Abezames'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32370, 49, 'Pozoantiguo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32371, 49, 'Arquillinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32372, 49, 'Cerecinos del Carrizal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32373, 49, 'Torres del Carrizal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32374, 49, 'Villalba de la Lampreana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32375, 49, 'Castrillo de la Guarea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32376, 49, 'Vallesa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32377, 49, 'Riego del Camino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32378, 49, 'San Martin de Valderaduey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32379, 49, 'Tapioles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32380, 49, 'Villamayor de Campos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32381, 49, 'Villardefallaves'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32382, 49, 'Villardiga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32383, 49, 'Pedralba de la Praderia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32384, 49, 'Calabor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32385, 49, 'Lobeznos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32386, 49, 'Rionegro del Puente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32387, 49, 'Vega de Tera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32388, 49, 'Calzadilla de Tera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32389, 49, 'Bustillo del Oro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32390, 49, 'Fuentesecas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32391, 49, 'Malva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32392, 49, 'Santa Croya de Tera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32393, 49, 'Santa Marta de Tera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32394, 49, 'Tagarabuena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32395, 49, 'Molacillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32396, 49, 'Moreruela de Los Infanzones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32397, 49, 'Alcubilla de Nogales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32398, 49, 'Fresno de la Polvorosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32399, 49, 'Santa Maria de la Vega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32400, 49, 'Villaferruea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32401, 49, 'Palacios del Pan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32402, 49, 'Rabano de Aliste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32403, 49, 'Cuelgamures'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32404, 49, 'Villalazan'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32405, 49, 'Nuez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32406, 49, 'Vidayanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32407, 49, 'Peleas de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32408, 49, 'San Marcial'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32409, 49, 'Litos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32410, 49, 'Morales de Valverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32411, 49, 'Villanueva de Las Peras'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32412, 49, 'Torrefrades'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32413, 49, 'Fresno de Sayago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32414, 49, 'Matilla la Seca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32415, 49, 'Arcos de la Polvorosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32416, 49, 'Milles de la Polvorosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32417, 49, 'Santa Colomba Monjas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32418, 49, 'Barcial del Barco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32419, 49, 'Breto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32420, 49, 'Villaveza del Agua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32421, 49, 'Cional'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32422, 49, 'Codesal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32423, 49, 'Pueblica de Valverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32424, 49, 'San Pedro de Zamudia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32425, 49, 'Santa Maria de Valverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32426, 49, 'Ayoo de Vidriales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32427, 49, 'Bercianos de Vidriales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32428, 49, 'Fuente Encalada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32429, 49, 'Coomonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32430, 49, 'Maire de Castroponce'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32431, 49, 'Fariza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32432, 49, 'Figueruela de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32433, 49, 'Alfaraz de Sayago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32434, 49, 'Escuadro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32435, 49, 'Viuela de Sayago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32436, 49, 'Gallegos del Rio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32437, 49, 'Abelon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32438, 49, 'Ganame'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32439, 49, 'Moral de Sayago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32440, 49, 'Ferreras de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32441, 49, 'Brime de Urz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32442, 49, 'Granucillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32443, 49, 'Manzanal de Arriba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32444, 49, 'Sagallos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32445, 49, 'Burganes de Valverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32446, 49, 'Navianos de Valverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32447, 49, 'Villanazar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32448, 49, 'Vias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32449, 49, 'Ungilde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32450, 49, 'Otero de Bodas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32451, 49, 'Vigo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32452, 49, 'San Cebrian de Castro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32453, 49, 'Donado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32454, 49, 'Espadaedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32455, 49, 'Justel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32456, 49, 'Mayalde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32457, 49, 'Rosinos de Vidriales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32458, 49, 'San Pedro de la Via'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32459, 49, 'Tardemezar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32460, 49, 'Torregamones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32461, 49, 'Villadepera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32462, 49, 'Villardiegua de la Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32463, 49, 'Peleagonzalo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32464, 49, 'San Martin de Castaeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32465, 49, 'Valdefinjas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32466, 49, 'Fontanillas de Castro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32467, 49, 'Cibanal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32468, 49, 'Barrio de Lomba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32469, 49, 'Castro de Sanabria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32470, 49, 'Cazurra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32471, 49, 'Otero de Sanabria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32472, 49, 'Tola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32473, 49, 'Prado'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32474, 49, 'Quintanilla del Olmo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32475, 49, 'Pontejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32476, 49, 'Roales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32477, 49, 'Rosinos de la Requejada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32478, 49, 'Sitrama de Tera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32479, 49, 'Valparaiso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32480, 49, 'Tardobispo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32481, 49, 'Videmala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32482, 49, 'Fadon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32483, 49, 'Fresnadillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32484, 49, 'Piuel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32485, 49, 'Tamame'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32486, 49, 'Tudera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32487, 49, 'Villamor de la Ladre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32488, 49, 'Badilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32489, 49, 'Cozcurrita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32490, 49, 'Mamoles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32491, 49, 'Palazuelo de Sayago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32492, 49, 'Pasariegos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32493, 49, 'Zafara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32494, 49, 'Pueblica de Campean'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32495, 49, 'Las Enillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32496, 49, 'Sobradillo de Palomares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32497, 49, 'Arcillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32498, 49, 'Argain'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32499, 49, 'Gamones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32500, 49, 'Sogo'); +COMMIT WORK; +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32501, 49, 'Almendra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32502, 49, 'Cernecina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32503, 49, 'Malillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32504, 49, 'Mogatar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32505, 49, 'Monumenta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32506, 49, 'Figueruela de Sayago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32507, 49, 'Formariz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32508, 49, 'Fornillos de Fermoselle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32509, 49, 'Pinilla de Fermoselle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32510, 49, 'Abraveses de Tera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32511, 49, 'Aguilar de Tera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32512, 49, 'Bercianos de Valverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32513, 49, 'Micereces de Tera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32514, 49, 'Bretocino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32515, 49, 'Cunquilla de Vidriales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32516, 49, 'Friera de Valverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32517, 49, 'Mozar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32518, 49, 'Olmillos de Valverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32519, 49, 'Quintanilla de Urz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32520, 49, 'Vecilla de Trasmonte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32521, 49, 'Villaveza de Valverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32522, 49, 'Melgar de Tera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32523, 49, 'Pumarejo de Tera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32524, 49, 'Calzada de Tera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32525, 49, 'Grijalba de Vidriales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32526, 49, 'Moratones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32527, 49, 'Pozuelo de Vidriales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32528, 49, 'Villaobispo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32529, 49, 'Cotanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32530, 49, 'Quintanilla del Monte'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32531, 49, 'Junquera de Tera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32532, 49, 'Milla de Tera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32533, 49, 'Olleros de Tera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32534, 49, 'Peque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32535, 49, 'Carbellino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32536, 49, 'Roelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32537, 49, 'Salce'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32538, 49, 'Entrala'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32539, 49, 'Vecilla de la Polvorosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32540, 49, 'Bamba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32541, 49, 'Cabaas de Tera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32542, 49, 'San Juanico El Nuevo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32543, 49, 'Casaseca de Campean'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32544, 49, 'Olmo de la Guarea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32545, 49, 'Fuente El Carnero'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32546, 49, 'Castropepe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32547, 49, 'Piedrahita de Castro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32548, 49, 'Pedrazales'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32549, 49, 'Padornelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32550, 49, 'Castellanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32551, 49, 'Escober de Tabara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32552, 49, 'Matellanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32553, 49, 'Mellanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32554, 49, 'Riego de Lomba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32555, 49, 'Robledo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32556, 49, 'Santa Colomba Sanabria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32557, 49, 'Ufones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32558, 49, 'Brime de Sog'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32559, 49, 'Cubo de Benavente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32560, 49, 'Molezuelas de la Carballeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32561, 49, 'Ribas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32562, 49, 'Sesnandez de Tabara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32563, 49, 'Ua de Quintana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32564, 49, 'Vivinera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32565, 49, 'Abejera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32566, 49, 'Cabaas de Aliste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32567, 49, 'Campogrande de Aliste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32568, 49, 'Riofrio de Aliste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32569, 49, 'Sarracin de Aliste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32570, 49, 'Paladinos del Valle'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32571, 49, 'Santiago de la Requejada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32572, 49, 'Samir de Los Caos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32573, 49, 'San Roman de Los Infantes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32574, 49, 'La Tuda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32575, 49, 'Brandilanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32576, 49, 'Castro de Alcaices'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32577, 49, 'Ferreruela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32578, 49, 'San Martin de Tabara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32579, 49, 'Boya'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32580, 49, 'San Pedro de Las Herrerias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32581, 49, 'Terroso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32582, 49, 'Arcillera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32583, 49, 'Bermillo de Alba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32584, 49, 'Carrascal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32585, 49, 'Fornillos de Aliste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32586, 49, 'Moveros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32587, 49, 'Rabanillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32588, 49, 'San Ciprian -San Justo-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32589, 49, 'Otero de Sariegos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32590, 49, 'Marquiz de Alba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32591, 49, 'Olmillos de Castro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32592, 49, 'Paramio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32593, 49, 'Cervantes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32594, 49, 'Navianos de Alba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32595, 49, 'Robleda-Cervantes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32596, 49, 'San Juan de la Cuesta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32597, 49, 'Vegalatrave'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32598, 49, 'San Pedro de Las Cuevas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32599, 49, 'Pino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32600, 49, 'Pobladura de Valderaduey'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32601, 49, 'Quintanilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32602, 49, 'Valleluengo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32603, 49, 'Bercianos de Aliste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32604, 49, 'Campillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32605, 49, 'Carbajosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32606, 49, 'Domez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32607, 49, 'Ferreros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32608, 49, 'Lober'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32609, 49, 'Ricobayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32610, 49, 'San Blas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32611, 49, 'San Cristobal de Aliste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32612, 49, 'San Juan del Rebollar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32613, 49, 'San Vicente de la Cabeza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32614, 49, 'Santa Eulalia del Rio Negro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32615, 49, 'Tolilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32616, 49, 'Triufe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32617, 49, 'Valdeperdices'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32618, 49, 'Vega de Nuez'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32619, 49, 'Villaflor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32620, 49, 'Villar de Farfon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32621, 49, 'Villarino de Cebal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32622, 49, 'Flores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32623, 49, 'El Poyo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32624, 49, 'Valer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32625, 49, 'Puercas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32626, 49, 'San Justo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32627, 49, 'Villalverde'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32628, 49, 'Avedillo de Sanabria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32629, 49, 'Barrio de Rabano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32630, 49, 'Cobreros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32631, 49, 'Coso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32632, 49, 'Cubelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32633, 49, 'Hermisende'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32634, 49, 'Limianos de Sanabria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32635, 49, 'Ilanes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32636, 49, 'Rabano de Sanabria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32637, 49, 'Rozas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32638, 49, 'San Martin del Terroso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32639, 49, 'San Miguel de Lomba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32640, 49, 'San Roman de Sanabria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32641, 49, 'Sotillo de Sanabria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32642, 49, 'Villanueva de Valrojo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32643, 49, 'Rihonor de Castilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32644, 49, 'Santa Cruz de Abranes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32645, 49, 'Palazuelo de Las Cuevas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32646, 49, 'Quintana de Sanabria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32647, 49, 'Fradellos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32648, 49, 'Grisuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32649, 49, 'Cernadilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32650, 49, 'Linarejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32651, 49, 'Sandin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32652, 49, 'San Salvador de Palazuelo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32653, 49, 'Valdemerilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32654, 49, 'Santa Cruz de Los Cuerragos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32655, 49, 'Folgoso de la Carballeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32656, 49, 'Pedroso de la Carballeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32657, 49, 'Villanueva de Los Corchos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32658, 49, 'Losilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32659, 49, 'Santa Eufemia del Barco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32660, 49, 'Aciberos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32661, 49, 'Castrelos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32662, 49, 'Castromil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32663, 49, 'Chanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32664, 49, 'Las Hedradas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32665, 49, 'Hedroso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32666, 49, 'San Ciprian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32667, 49, 'La Tejera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32668, 49, 'Pobladura de Aliste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32669, 49, 'Las Torres de Aliste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32670, 49, 'Sampil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32671, 49, 'Manzanal de Los Infantes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32672, 49, 'Donadillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32673, 49, 'Dornillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32674, 49, 'Lanseros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32675, 49, 'Otero de Los Centenos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32676, 49, 'Sejas de Sanabria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32677, 49, 'Porto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32678, 49, 'Pias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32679, 49, 'Barjacoba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32680, 49, 'Villanueva de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32681, 49, 'Gallegos del Campo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32682, 49, 'Moldones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32683, 49, 'Riomanzanas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32684, 49, 'Villarino de Manzanas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32685, 49, 'Figueruela de Abajo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32686, 49, 'Cerdillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32687, 49, 'Murias'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32688, 49, 'Villarino de Sanabria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32689, 49, 'Latedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32690, 49, 'San Martin del Pedroso'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32691, 49, 'Villarino Tras la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32692, 49, 'Anta de Rioconejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32693, 49, 'Carbajalinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32694, 49, 'Doney de la Requejada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32695, 49, 'Escuredo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32696, 49, 'Gusandanos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32697, 49, 'Monterrubio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32698, 49, 'Rionegrito'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32699, 49, 'Villarejo de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32700, 49, 'Alcorcillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32701, 49, 'Santa Ana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32702, 49, 'San Mamed'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32703, 49, 'Letrillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32704, 49, 'Utrera de la Encomienda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32705, 49, 'Carbajales de la Encomienda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32706, 49, 'Faramontanos de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32707, 49, 'Vega del Castillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32708, 49, 'Gramedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32709, 49, 'Valdespino'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32710, 49, 'Fresno de la Carballeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32711, 49, 'Remesal'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32712, 49, 'Vime de Sanabria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32713, 49, 'Val de Santa Maria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32714, 49, 'Entrepeas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32715, 49, 'Lagarejos de la Carballeda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32716, 49, 'Rioconejos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32717, 49, 'Villar de Los Pisones'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32718, 49, 'Cerezal de Sanabria'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32719, 49, 'Vide de Alba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32720, 49, 'Castillo de Alba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32721, 49, 'Villageriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32722, 49, 'Congosta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32723, 49, 'Carracedo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32724, 49, 'San Miguel del Esla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32725, 49, 'La Encomienda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32726, 49, 'La Estacion -Coreses-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32727, 49, 'La Estacion -Toro-'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32728, 49, 'Flechas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32729, 49, 'Moncabril'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32730, 49, 'Monte la Reina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32731, 49, 'Paradores de Castrogonzalo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32732, 49, 'Ribadelago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32733, 49, 'Salto de Castro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32734, 49, 'Salto de Villalcampo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32735, 49, 'San Pelayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32736, 49, 'La Tabla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32737, 49, 'Villaguer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32738, 49, 'Villaveza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32739, 49, 'La Maana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32740, 49, 'Dehesa de Mazares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32741, 49, 'Ribas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32742, 49, 'Piuel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32743, 50, 'Agon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32744, 50, 'Aguaron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32745, 50, 'Alagon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32746, 50, 'Alcala de Ebro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32747, 50, 'Alfajarin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32748, 50, 'Alhama de Aragon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32749, 50, 'La Almolda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32750, 50, 'Almonacid de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32751, 50, 'La Almunia de Doa Godina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32752, 50, 'Anion'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32753, 50, 'Ariza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32754, 50, 'Ateca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32755, 50, 'Belchite'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32756, 50, 'Borja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32757, 50, 'Brea de Aragon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32758, 50, 'Bubierca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32759, 50, 'Bujaraloz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32760, 50, 'Calatayud'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32761, 50, 'Calatorao'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32762, 50, 'Cariena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32763, 50, 'Casetas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32764, 50, 'Caspe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32765, 50, 'Cervera de la Caada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32766, 50, 'Cetina'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32767, 50, 'Cosuenda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32768, 50, 'Daroca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32769, 50, 'Ejea de Los Caballeros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32770, 50, 'Embid de la Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32771, 50, 'Epila'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32772, 50, 'El Frasno'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32773, 50, 'Frescano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32774, 50, 'Fuentes de Jiloca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32775, 50, 'Gallur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32776, 50, 'Garrapinillos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32777, 50, 'Grisel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32778, 50, 'Illueca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32779, 50, 'Juslibol'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32780, 50, 'Leciena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32781, 50, 'Lucena de Jalon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32782, 50, 'Luceni'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32783, 50, 'Lumpiaque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32784, 50, 'Magallon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32785, 50, 'Malon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32786, 50, 'Maluenda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32787, 50, 'Mallen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32788, 50, 'Monzalbarba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32789, 50, 'Monreal de Ariza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32790, 50, 'Morata de Jalon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32791, 50, 'Morata de Jiloca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32792, 50, 'Mores'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32793, 50, 'Movera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32794, 50, 'La Muela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32795, 50, 'Murillo de Gallego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32796, 50, 'Osera de Ebro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32797, 50, 'Pedrola'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32798, 50, 'Peaflor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32799, 50, 'Perdiguera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32800, 50, 'Pina de Ebro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32801, 50, 'Pinseque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32802, 50, 'Puebla de Alfinden'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32803, 50, 'Purroy'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32804, 50, 'Remolinos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32805, 50, 'Ricla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32806, 50, 'Rueda de Jalon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32807, 50, 'Salillas de Jalon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32808, 50, 'San Juan de Mozarrifar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32809, 50, 'San Mateo de Gallego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32810, 50, 'Santuario de Misericordia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32811, 50, 'Sabian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32812, 50, 'Sos del Rey Catolico'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32813, 50, 'Tarazona'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32814, 50, 'Tauste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32815, 50, 'Terrer'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32816, 50, 'Torralba de Ribota'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32817, 50, 'Velilla de Jiloca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32818, 50, 'Villafeliche'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32819, 50, 'Villafranca de Ebro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32820, 50, 'Villamayor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32821, 50, 'Villanueva de Gallego'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32822, 50, 'Zaragoza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32823, 50, 'Zuera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32824, 50, 'Figueruelas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32825, 50, 'Jaraba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32826, 50, 'El Burgo de Ebro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32827, 50, 'Fuentes de Ebro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32828, 50, 'Quinto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32829, 50, 'Fuendejalon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32830, 50, 'Sadaba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32831, 50, 'Ainzon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32832, 50, 'Torrellas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32833, 50, 'Escatron'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32834, 50, 'Torres de Berrellen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32835, 50, 'Novallas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32836, 50, 'Utebo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32837, 50, 'Paniza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32838, 50, 'Paracuellos de la Ribera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32839, 50, 'Boquieni'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32840, 50, 'Villarroya de la Sierra'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32841, 50, 'Novillas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32842, 50, 'Mequinenza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32843, 50, 'Ibdes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32844, 50, 'Pradilla de Ebro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32845, 50, 'Cabaas de Ebro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32846, 50, 'Paracuellos de Jiloca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32847, 50, 'Gelsa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32848, 50, 'Sastago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32849, 50, 'Cartuja Baja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32850, 50, 'Azuara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32851, 50, 'Letux'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32852, 50, 'Munebrega'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32853, 50, 'Pastriz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32854, 50, 'Nuevalos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32855, 50, 'Bisimbre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32856, 50, 'Layana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32857, 50, 'Uncastillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32858, 50, 'Encinacorba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32859, 50, 'Bardallur'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32860, 50, 'Grisen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32861, 50, 'Plasencia de Jalon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32862, 50, 'Urrea de Jalon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32863, 50, 'Salvatierra de Esca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32864, 50, 'Biota'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32865, 50, 'Barboles'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32866, 50, 'Pleitas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32867, 50, 'Castiliscar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32868, 50, 'Jaulin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32869, 50, 'Maria de Huerva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32870, 50, 'Muel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32871, 50, 'Herrera de Los Navarros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32872, 50, 'Longares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32873, 50, 'Botorrita'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32874, 50, 'Tosos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32875, 50, 'Mezalocha'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32876, 50, 'Villanueva de Huerva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32877, 50, 'Fuendetodos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32878, 50, 'Aguilon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32879, 50, 'Cuarte de Huerva'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32880, 50, 'Cadrete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32881, 50, 'Bureta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32882, 50, 'Mozota'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32883, 50, 'Used'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32884, 50, 'Mediana de Aragon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32885, 50, 'Moros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32886, 50, 'Villalengua'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32887, 50, 'Bijuesca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32888, 50, 'Torrijo de la Caada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32889, 50, 'Montaana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32890, 50, 'Nuez de Ebro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32891, 50, 'Farlete'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32892, 50, 'Monegrillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32893, 50, 'Arandiga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32894, 50, 'Chodes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32895, 50, 'Mesones de Isuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32896, 50, 'Niguella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32897, 50, 'Tierga'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32898, 50, 'Trasobares'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32899, 50, 'Alfamen'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32900, 50, 'Chiprana'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32901, 50, 'Lecera'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32902, 50, 'Santa Cruz de Grio'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32903, 50, 'Tobed'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32904, 50, 'Codos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32905, 50, 'Inoges'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32906, 50, 'Valtorres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32907, 50, 'La Viluea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32908, 50, 'Erla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32909, 50, 'Luna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32910, 50, 'Las Pedrosas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32911, 50, 'Sierra de Luna'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32912, 50, 'La Zaida'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32913, 50, 'Pozuelo de Aragon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32914, 50, 'Aranda de Moncayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32915, 50, 'Maella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32916, 50, 'La Joyosa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32917, 50, 'Alpartir'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32918, 50, 'Fabara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32919, 50, 'Nonaspe'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32920, 50, 'Jarque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32921, 50, 'Tabuenca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32922, 50, 'Pozuel de Ariza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32923, 50, 'Embid de Ariza'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32924, 50, 'Moyuela'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32925, 50, 'Belmonte de Gracian'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32926, 50, 'Mara'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32927, 50, 'Miedes de Aragon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32928, 50, 'Bordalba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32929, 50, 'Villalba de Perejil'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32930, 50, 'Piedratajada'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32931, 50, 'Acered'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32932, 50, 'Valpalmas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32933, 50, 'Alarba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32934, 50, 'Atea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32935, 50, 'Torres'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32936, 50, 'Castejon de Valdejasa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32937, 50, 'Sobradiel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32938, 50, 'Villar de Los Navarros'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32939, 50, 'Villanueva de Jiloca'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32940, 50, 'Gotor'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32941, 50, 'Ontinar de Salz'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32942, 50, 'Barrio Santa Isabel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32943, 50, 'Cinco Olivas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32944, 50, 'Velilla de Ebro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32945, 50, 'Alborge'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32946, 50, 'Alforque'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32947, 50, 'El Buste'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32948, 50, 'Talamantes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32949, 50, 'Ambel'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32950, 50, 'Bulbuente'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32951, 50, 'Lorbes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32952, 50, 'Sigues'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32953, 50, 'Tiermas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32954, 50, 'Esco'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32955, 50, 'Mianos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32956, 50, 'Artieda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32957, 50, 'Longas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32958, 50, 'Ruesta'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32959, 50, 'Navardun'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32960, 50, 'Urries'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32961, 50, 'Lobera de Onsella'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32962, 50, 'Isuerre'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32963, 50, 'Undues de Lerda'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32964, 50, 'Campillo de Aragon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32965, 50, 'Cimballa'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32966, 50, 'Undues Pintano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32967, 50, 'Bagues'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32968, 50, 'Pintano'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32969, 50, 'Fayon'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32970, 50, 'Biel-Fuencalderas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32971, 50, 'Fuencalderas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32972, 50, 'Luesia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32973, 50, 'Farasdues'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32974, 50, 'Sofuentes'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32975, 50, 'Almonacid de la Cuba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32976, 50, 'Bardena del Caudillo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32977, 50, 'El Bayo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32978, 50, 'Godojos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32979, 50, 'Pinsoro'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32980, 50, 'El Sabinar'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32981, 50, 'Santa Anastasia'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32982, 50, 'Valarea'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32983, 50, 'Castejon de Las Armas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32984, 50, 'Los Fayos'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32985, 50, 'Malpica de Arba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32986, 50, 'Oseja'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32987, 50, 'Carenas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32988, 50, 'Rivas'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32989, 50, 'Monton'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32990, 50, 'Abanto'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32991, 50, 'Asin'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32992, 50, 'Calcena'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32993, 50, 'Castejon de Alarba'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32994, 50, 'Clares de Ribota'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32995, 50, 'Codo'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32996, 50, 'El Frago'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32997, 50, 'Lacorvilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32998, 50, 'Malanquilla'); +INSERT INTO POBLACIONES (ID, ID_PROVINCIA, DESCRIPCION) VALUES (32999, 50, 'Manchones'); + +COMMIT WORK; diff --git a/Database/scripts/factuges_listaprovincias.sql b/Database/scripts/factuges_listaprovincias.sql new file mode 100644 index 0000000..7614369 --- /dev/null +++ b/Database/scripts/factuges_listaprovincias.sql @@ -0,0 +1,54 @@ +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (1, 'lava'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (2, 'Albacete'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (3, 'Alicante'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (4, 'Almera'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (5, 'vila'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (6, 'Badajoz'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (7, 'Baleares'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (8, 'Barcelona'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (9, 'Burgos'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (10, 'Cceres'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (11, 'Cdiz'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (12, 'Castelln'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (13, 'Ciudad Real'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (14, 'Crdoba'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (15, 'La Corua'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (16, 'Cuenca'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (17, 'Gerona'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (18, 'Granada'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (19, 'Guadalajara'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (20, 'Guipzcoa'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (21, 'Huelva'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (22, 'Huesca'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (23, 'Jan'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (24, 'Len'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (25, 'Lrida'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (26, 'La Rioja'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (27, 'Lugo'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (28, 'Madrid'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (29, 'Mlaga'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (30, 'Murcia'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (31, 'Navarra'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (32, 'Orense'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (33, 'Asturias'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (34, 'Palencia'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (35, 'Las Palmas'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (36, 'Pontevedra'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (37, 'Salamanca'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (38, 'Santa Cruz de Tenerife'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (39, 'Cantabria'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (40, 'Segovia'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (41, 'Sevilla'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (42, 'Soria'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (43, 'Tarragona'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (44, 'Teruel'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (45, 'Toledo'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (46, 'Valencia'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (47, 'Valladolid'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (48, 'Vizcaya'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (49, 'Zamora'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (50, 'Zaragoza'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (51, 'Ceuta'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (52, 'Melilla'); +INSERT INTO PROVINCIAS (ID, DESCRIPCION) VALUES (85, 'Andorra'); +COMMIT WORK; diff --git a/Database/scripts/factuges_sysdata.sql b/Database/scripts/factuges_sysdata.sql new file mode 100644 index 0000000..d6c8d4c --- /dev/null +++ b/Database/scripts/factuges_sysdata.sql @@ -0,0 +1,194 @@ +SET SQL DIALECT 3; + +SET NAMES UTF8; + +INSERT INTO CATEGORIAS (ID, CATEGORIA) VALUES (1, 'CLIENTE'); +INSERT INTO CATEGORIAS (ID, CATEGORIA) VALUES (2, 'PROVEEDOR'); +INSERT INTO CATEGORIAS (ID, CATEGORIA) VALUES (3, 'AGENTE'); +INSERT INTO CATEGORIAS (ID, CATEGORIA) VALUES (4, 'EMPLEADO'); +SET GENERATOR GEN_CATEGORIAS_ID TO 4; +COMMIT WORK; + +INSERT INTO INFORMES (ID, ID_EMPRESA, CATEGORIA, CONTROLLER, ICONO, NOMBRE, DESCRIPCION, ORDEN, MODIFICABLE, TIPO_AGRUPACION) VALUES (1, 1, 'VENTAS ARTICULOS', 'InfVentasArticuloController', 4, 'Ventas por artculo', 'Informe de ventas por artculo', NULL, 'S', NULL); +INSERT INTO INFORMES (ID, ID_EMPRESA, CATEGORIA, CONTROLLER, ICONO, NOMBRE, DESCRIPCION, ORDEN, MODIFICABLE, TIPO_AGRUPACION) VALUES (2, 1, 'VENTAS ARTICULOS', 'InfVentasArticuloController', 4, 'Ventas por cliente', 'Informe de ventas por cliente y artculo', NULL, 'S', NULL); +INSERT INTO INFORMES (ID, ID_EMPRESA, CATEGORIA, CONTROLLER, ICONO, NOMBRE, DESCRIPCION, ORDEN, MODIFICABLE, TIPO_AGRUPACION) VALUES (3, 1, 'VENTAS ARTICULOS', 'InfVentasArticuloController', 4, 'Ventas por agente y cliente', 'Informe de ventas por agente y cliente', NULL, 'S', NULL); +INSERT INTO INFORMES (ID, ID_EMPRESA, CATEGORIA, CONTROLLER, ICONO, NOMBRE, DESCRIPCION, ORDEN, MODIFICABLE, TIPO_AGRUPACION) VALUES (4, 1, 'MARGEN ARTICULOS', 'InfMargenArticuloController', 0, 'Margen (promedio) por artculo', 'Informe de margen por artculo teniendo en cuenta el precio neto de venta promedio', NULL, 'S', 0); +INSERT INTO INFORMES (ID, ID_EMPRESA, CATEGORIA, CONTROLLER, ICONO, NOMBRE, DESCRIPCION, ORDEN, MODIFICABLE, TIPO_AGRUPACION) VALUES (5, 1, 'VENTAS ARTICULOS', 'InfVentasArticuloController', 4, 'Ventas por proveedor', 'Informe de ventas por proveedor y artculo', NULL, 'S', NULL); +INSERT INTO INFORMES (ID, ID_EMPRESA, CATEGORIA, CONTROLLER, ICONO, NOMBRE, DESCRIPCION, ORDEN, MODIFICABLE, TIPO_AGRUPACION) VALUES (6, 1, 'MARGEN ARTICULOS', 'InfMargenArticuloController', 0, 'Margen (promedio) por cliente', 'Informe de margen por artculo agrupado por cliente teniendo en cuenta el precio neto de venta promedio', NULL, 'S', 1); +INSERT INTO INFORMES (ID, ID_EMPRESA, CATEGORIA, CONTROLLER, ICONO, NOMBRE, DESCRIPCION, ORDEN, MODIFICABLE, TIPO_AGRUPACION) VALUES (7, 1, 'MARGEN ARTICULOS', 'InfMargenArticuloController', 0, 'Margen (promedio) por agente y cliente', 'Informe de margen por artculo agrupado por agente y cliente teniendo en cuenta el precio neto de venta promedio', NULL, 'S', 1); +INSERT INTO INFORMES (ID, ID_EMPRESA, CATEGORIA, CONTROLLER, ICONO, NOMBRE, DESCRIPCION, ORDEN, MODIFICABLE, TIPO_AGRUPACION) VALUES (8, 1, 'MARGEN ARTICULOS', 'InfMargenArticuloController', 2, 'Margen (ult. venta) por artculo', 'Informe de margen por artculo teniendo en cuenta el precio neto de ltima venta', NULL, 'S', 0); +INSERT INTO INFORMES (ID, ID_EMPRESA, CATEGORIA, CONTROLLER, ICONO, NOMBRE, DESCRIPCION, ORDEN, MODIFICABLE, TIPO_AGRUPACION) VALUES (9, 1, 'MARGEN ARTICULOS', 'InfMargenArticuloController', 2, 'Margen (ult.venta) por clientes', 'Informe de margen por artculo agrupado por cliente teniendo en cuenta el precio neto de ltima venta', NULL, 'S', 1); +INSERT INTO INFORMES (ID, ID_EMPRESA, CATEGORIA, CONTROLLER, ICONO, NOMBRE, DESCRIPCION, ORDEN, MODIFICABLE, TIPO_AGRUPACION) VALUES (10, 1, 'MARGEN ARTICULOS', 'InfMargenArticuloController', 2, 'Margen (ult. venta) por agente y cliente', 'Informe de margen por artculo agrupado por agente y cliente teniendo en cuenta el precio neto de ltima venta', NULL, 'S', 1); +INSERT INTO INFORMES (ID, ID_EMPRESA, CATEGORIA, CONTROLLER, ICONO, NOMBRE, DESCRIPCION, ORDEN, MODIFICABLE, TIPO_AGRUPACION) VALUES (11, 1, 'VENTAS ARTICULOS', 'InfVentasArticuloController', 4, 'Ventas articulo por fecha y cliente', 'Informe de ventas con frcha y factura agrupado por cliente', NULL, 'S', NULL); +INSERT INTO INFORMES (ID, ID_EMPRESA, CATEGORIA, CONTROLLER, ICONO, NOMBRE, DESCRIPCION, ORDEN, MODIFICABLE, TIPO_AGRUPACION) VALUES (12, 1, 'MARGEN ARTICULOS', 'InfMargenArticuloController', 0, 'Margen ventas - compras pro', 'Informe que nos da el margen de las ventas de un periodo de tiempo en base al importe neto de compras promedio', NULL, 'S', 2); +SET GENERATOR GEN_INFORMES_ID TO 13; +COMMIT WORK; + + + +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (1, 'REF_FACTURAS_CLIENTE', 'EL/0001', 1, 'Ref. facturas de cliente'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (2, 'REF_PEDIDOS_CLIENTE', '00001', 1, 'Ref. pedidos de cliente'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (3, 'REF_PEDIDOS_PROVEEDOR', '00001', 1, 'Ref. pedidos de proveedor'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (4, 'REF_ALBARANES_CLIENTE', '00001', 1, 'Ref. albaranes de cliente'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (5, 'REF_ALBARANES_PROVEEDOR', '00001', 1, 'Ref. albaranes de proveedor'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (6, 'REF_REMESAS_CLIENTE', '00001', 1, 'Ref. remesas de cliente'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (7, 'REF_COMISIONES', '00001', 1, 'Ref. liquidaciones de comision'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (8, 'REF_FACTURAS_PROVEEDOR', '2010/0001', 1, 'Ref. facturas de proveedor'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (9, 'REF_ALBARANES_DEV_CLIENTE', '00001', 1, 'Ref. ordenes de devolucion de cliente'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (10, 'REF_ALBARANES_DEV_PROVEEDOR', '00001', 1, 'Ref. ordenes de devolucion de proveedor'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (11, 'REF_REMESAS_PROVEEDOR', '00001', 1, 'Ref. remesas de proveedor'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (12, 'REF_ABONOS_CLIENTE', 'AB-EL/0001', 1, 'Ref. abonos de cliente'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (13, 'REF_ABONOS_PROVEEDOR', 'A. 2010/0001', 1, 'Ref. abonos de proveedor'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (14, 'REF_FACTURAS_CLIENTE', 'NFC/0001', 2, 'Ref. facturas de cliente'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (15, 'REF_PEDIDOS_CLIENTE', 'NPC/0001', 2, 'Ref. pedidos de cliente'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (16, 'REF_PEDIDOS_PROVEEDOR', 'NPP/0001', 2, 'Ref. pedidos de proveedor'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (17, 'REF_ALBARANES_CLIENTE', 'NAC/0001', 2, 'Ref. albaranes de cliente'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (18, 'REF_ALBARANES_PROVEEDOR', 'NAP/0001', 2, 'Ref. albaranes de proveedor'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (19, 'REF_REMESAS_CLIENTE', 'NRC/0001', 2, 'Ref. remesas de cliente'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (20, 'REF_COMISIONES', 'NL/0001', 2, 'Ref. liquidaciones de comision'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (21, 'REF_FACTURAS_PROVEEDOR', 'NFP/0001', 2, 'Ref. facturas de proveedor'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (22, 'REF_ALBARANES_DEV_CLIENTE', 'NOC/0001', 2, 'Ref. ordenes de devolucion de cliente'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (23, 'REF_ALBARANES_DEV_PROVEEDOR', 'NOP/0001', 2, 'Ref. ordenes de devolucion de proveedor'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (24, 'REF_REMESAS_PROVEEDOR', 'NRP/0001', 2, 'Ref. remesas de proveedor'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (25, 'REF_ABONOS_CLIENTE', 'NFAC/0001', 2, 'Ref. abonos de cliente'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (26, 'REF_ABONOS_PROVEEDOR', 'NFAP/0001', 2, 'Ref. abonos de proveedor'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (27, 'REF_CLIENTES', '0000000001', NULL, 'Ref. clientes'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (28, 'REF_PROVEEDORES', '0000000001', NULL, 'Ref. proveedores'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (29, 'REF_AGENTES', '00001', NULL, 'Ref. agentes'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (30, 'REF_ARTICULOS', '1', NULL, 'Ref. artculos'); +SET GENERATOR GEN_REFERENCIAS_ID TO 31; +COMMIT WORK; + +INSERT INTO TIPOS_IVA (ID, REFERENCIA, DESCRIPCION, IVA, RE) VALUES (2, 'IVA16', 'IVA16', 16, 4); +INSERT INTO TIPOS_IVA (ID, REFERENCIA, DESCRIPCION, IVA, RE) VALUES (3, 'IVA4', 'IVA4', 4, 0.5); +INSERT INTO TIPOS_IVA (ID, REFERENCIA, DESCRIPCION, IVA, RE) VALUES (4, 'IVA7', 'IVA7', 7, 1); +INSERT INTO TIPOS_IVA (ID, REFERENCIA, DESCRIPCION, IVA, RE) VALUES (6, 'EXENTO', 'EXTRANJERO', 0, 0); +INSERT INTO TIPOS_IVA (ID, REFERENCIA, DESCRIPCION, IVA, RE) VALUES (1, 'IVA20', 'IVA20', 20, NULL); +INSERT INTO TIPOS_IVA (ID, REFERENCIA, DESCRIPCION, IVA, RE) VALUES (7, '18%', '18%', 18, 4); +SET GENERATOR GEN_TIPOS_IVA_ID TO 8; +COMMIT WORK; + +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (8, '15', '15 dias', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (12, 'TALON30', 'Talon 30 DIAS', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (7, 'CONTADO', 'Pago al contado', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (13, '30', '30 DIAS', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (14, '30-60-90', '3 PLAZOS', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (53, '30-60', 'DOS PAGOS', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (20, '60', '60 dias', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (21, '90', '90 dias', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (23, 'TALON60', 'TALON 60 DIAS', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (29, '45', '45 dias', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (30, '90-120-150', '90-120-150', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (32, 'TALON90', 'TALON 90 DIAS', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (33, 'GRATUITO', 'SIN CARGO', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (34, '30-60-90-120', '30-60-90-120', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (35, '30-60-90-120-150-180', '30-60-90-120-150-180', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (36, '60-90-120', '60-90-120', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (37, '90-120', '90-120', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (38, 'TRANSF/CCM 30 DIAS', 'TRANSFERENCIA BANCARIA', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (39, 'CARGO EN CCM', 'CARGO EN CCM', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (40, 'TRASF/ CAIXA C.', 'TRANSFERENCIA CAIXA CATALUA', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (44, '60-90', '2 PLAZOS', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (41, '7 PAGOS', '120-150-180-210-240-270-300', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (49, 'TRASF N/F CCM.', 'TRANSFERENCIA A NUESTRO FAVOR CCM.', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (48, 'CINCO PAGOS', 'CINCO PAGOS', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (50, 'DESCARGA', 'PAGO A LA ENTREGA', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (51, 'VISA', 'PAGO POR VISA', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (54, '30-45', '2 PAGOS', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (55, 'TALON', 'TALON', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (56, 'TRANS. 10 DIAS', 'TRANSF. 10 DIAS', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (57, ' 1 DIA', 'UN DIA', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (58, 'TALON120 DIAS', 'TALON 120 DIAS', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (61, '30-60-90-120-150', '30-60-90-120-150', NULL, NULL, NULL, NULL, NULL); +SET GENERATOR GEN_FORMAS_PAGO_ID TO 62; +COMMIT WORK; + + +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (65, 42, 60, 50); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (12, 14, 30, 33.33); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (13, 14, 60, 33.33); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (14, 14, 90, 33.34); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (93, 53, 30, 50); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (19, 12, 30, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (20, 23, 60, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (6, 8, 15, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (29, 29, 45, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (30, 30, 90, 33.33); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (23, 20, 60, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (24, 21, 90, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (31, 30, 120, 33.33); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (32, 30, 150, 33.34); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (33, 32, 90, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (34, 7, 0, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (35, 34, 30, 25); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (36, 34, 60, 25); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (37, 34, 90, 25); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (38, 34, 120, 25); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (39, 35, 30, 16.67); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (40, 35, 60, 16.67); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (41, 35, 90, 16.67); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (42, 35, 120, 16.66); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (43, 35, 150, 16.67); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (44, 35, 180, 16.67); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (45, 36, 60, 33.33); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (46, 36, 90, 33.33); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (47, 36, 120, 33.33); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (48, 37, 90, 50); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (49, 37, 120, 50); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (50, 38, 30, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (66, 42, 90, 50); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (67, 43, 60, 50); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (68, 43, 90, 50); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (69, 44, 60, 50); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (70, 44, 90, 50); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (82, 48, 30, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (57, 13, 30, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (72, 46, 30, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (73, 46, 60, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (74, 46, 90, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (75, 46, 120, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (76, 46, 150, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (77, 47, 30, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (58, 41, 120, 14.29); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (59, 41, 150, 14.29); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (60, 41, 180, 14.29); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (61, 41, 210, 14.29); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (62, 41, 240, 14.29); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (63, 41, 270, 14.29); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (64, 41, 300, 14.29); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (78, 47, 60, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (79, 47, 90, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (80, 47, 120, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (81, 47, 150, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (83, 48, 60, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (84, 48, 90, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (85, 48, 120, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (86, 48, 150, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (87, 40, 0, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (88, 50, 1, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (89, 51, 1, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (90, 49, 1, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (91, 52, 60, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (92, 39, NULL, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (94, 53, 60, 50); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (95, 54, 30, 50); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (96, 54, 45, 50); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (97, 56, 10, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (100, 58, 120, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (101, 57, NULL, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (102, 55, 0, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (103, 59, 0, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (104, 33, NULL, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (106, 61, 30, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (107, 61, 60, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (108, 61, 90, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (109, 61, 120, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (110, 61, 150, 20); +SET GENERATOR GEN_FORMAS_PAGO_PLAZOS_ID TO 111; +COMMIT WORK; + +INSERT INTO EMPRESAS (ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, FECHA_ALTA, FECHA_MODIFICACION, USUARIO, REGISTRO_MERCANTIL, ID_TIPO_IVA) VALUES (1, 'B82780453', 'Luis Len Representaciones S.L.', NULL, 'C/ Sur, 4, Bajo 1', 'Moraleja de Enmedio', 'Madrid', '28950', '916004041', NULL, NULL, NULL, '916093287', NULL, NULL, NULL, NULL, NULL, NULL, '', 7); +INSERT INTO EMPRESAS (ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, FECHA_ALTA, FECHA_MODIFICACION, USUARIO, REGISTRO_MERCANTIL, ID_TIPO_IVA) VALUES (2, 'ssss2', 'ssssss', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7); +SET GENERATOR GEN_EMPRESAS_ID TO 3; +COMMIT WORK; + diff --git a/Database/scripts/factuges_sysdata.sql.bak b/Database/scripts/factuges_sysdata.sql.bak new file mode 100644 index 0000000..8fa6714 --- /dev/null +++ b/Database/scripts/factuges_sysdata.sql.bak @@ -0,0 +1,193 @@ +SET SQL DIALECT 3; + +SET NAMES UTF8; + +INSERT INTO CATEGORIAS (ID, CATEGORIA) VALUES (1, 'CLIENTE'); +INSERT INTO CATEGORIAS (ID, CATEGORIA) VALUES (2, 'PROVEEDOR'); +INSERT INTO CATEGORIAS (ID, CATEGORIA) VALUES (3, 'AGENTE'); +SET GENERATOR GEN_CATEGORIAS_ID TO 4; +COMMIT WORK; + +INSERT INTO INFORMES (ID, ID_EMPRESA, CATEGORIA, CONTROLLER, ICONO, NOMBRE, DESCRIPCION, ORDEN, MODIFICABLE, TIPO_AGRUPACION) VALUES (1, 1, 'VENTAS ARTICULOS', 'InfVentasArticuloController', 4, 'Ventas por artculo', 'Informe de ventas por artculo', NULL, 'S', NULL); +INSERT INTO INFORMES (ID, ID_EMPRESA, CATEGORIA, CONTROLLER, ICONO, NOMBRE, DESCRIPCION, ORDEN, MODIFICABLE, TIPO_AGRUPACION) VALUES (2, 1, 'VENTAS ARTICULOS', 'InfVentasArticuloController', 4, 'Ventas por cliente', 'Informe de ventas por cliente y artculo', NULL, 'S', NULL); +INSERT INTO INFORMES (ID, ID_EMPRESA, CATEGORIA, CONTROLLER, ICONO, NOMBRE, DESCRIPCION, ORDEN, MODIFICABLE, TIPO_AGRUPACION) VALUES (3, 1, 'VENTAS ARTICULOS', 'InfVentasArticuloController', 4, 'Ventas por agente y cliente', 'Informe de ventas por agente y cliente', NULL, 'S', NULL); +INSERT INTO INFORMES (ID, ID_EMPRESA, CATEGORIA, CONTROLLER, ICONO, NOMBRE, DESCRIPCION, ORDEN, MODIFICABLE, TIPO_AGRUPACION) VALUES (4, 1, 'MARGEN ARTICULOS', 'InfMargenArticuloController', 0, 'Margen (promedio) por artculo', 'Informe de margen por artculo teniendo en cuenta el precio neto de venta promedio', NULL, 'S', 0); +INSERT INTO INFORMES (ID, ID_EMPRESA, CATEGORIA, CONTROLLER, ICONO, NOMBRE, DESCRIPCION, ORDEN, MODIFICABLE, TIPO_AGRUPACION) VALUES (5, 1, 'VENTAS ARTICULOS', 'InfVentasArticuloController', 4, 'Ventas por proveedor', 'Informe de ventas por proveedor y artculo', NULL, 'S', NULL); +INSERT INTO INFORMES (ID, ID_EMPRESA, CATEGORIA, CONTROLLER, ICONO, NOMBRE, DESCRIPCION, ORDEN, MODIFICABLE, TIPO_AGRUPACION) VALUES (6, 1, 'MARGEN ARTICULOS', 'InfMargenArticuloController', 0, 'Margen (promedio) por cliente', 'Informe de margen por artculo agrupado por cliente teniendo en cuenta el precio neto de venta promedio', NULL, 'S', 1); +INSERT INTO INFORMES (ID, ID_EMPRESA, CATEGORIA, CONTROLLER, ICONO, NOMBRE, DESCRIPCION, ORDEN, MODIFICABLE, TIPO_AGRUPACION) VALUES (7, 1, 'MARGEN ARTICULOS', 'InfMargenArticuloController', 0, 'Margen (promedio) por agente y cliente', 'Informe de margen por artculo agrupado por agente y cliente teniendo en cuenta el precio neto de venta promedio', NULL, 'S', 1); +INSERT INTO INFORMES (ID, ID_EMPRESA, CATEGORIA, CONTROLLER, ICONO, NOMBRE, DESCRIPCION, ORDEN, MODIFICABLE, TIPO_AGRUPACION) VALUES (8, 1, 'MARGEN ARTICULOS', 'InfMargenArticuloController', 2, 'Margen (ult. venta) por artculo', 'Informe de margen por artculo teniendo en cuenta el precio neto de ltima venta', NULL, 'S', 0); +INSERT INTO INFORMES (ID, ID_EMPRESA, CATEGORIA, CONTROLLER, ICONO, NOMBRE, DESCRIPCION, ORDEN, MODIFICABLE, TIPO_AGRUPACION) VALUES (9, 1, 'MARGEN ARTICULOS', 'InfMargenArticuloController', 2, 'Margen (ult.venta) por clientes', 'Informe de margen por artculo agrupado por cliente teniendo en cuenta el precio neto de ltima venta', NULL, 'S', 1); +INSERT INTO INFORMES (ID, ID_EMPRESA, CATEGORIA, CONTROLLER, ICONO, NOMBRE, DESCRIPCION, ORDEN, MODIFICABLE, TIPO_AGRUPACION) VALUES (10, 1, 'MARGEN ARTICULOS', 'InfMargenArticuloController', 2, 'Margen (ult. venta) por agente y cliente', 'Informe de margen por artculo agrupado por agente y cliente teniendo en cuenta el precio neto de ltima venta', NULL, 'S', 1); +INSERT INTO INFORMES (ID, ID_EMPRESA, CATEGORIA, CONTROLLER, ICONO, NOMBRE, DESCRIPCION, ORDEN, MODIFICABLE, TIPO_AGRUPACION) VALUES (11, 1, 'VENTAS ARTICULOS', 'InfVentasArticuloController', 4, 'Ventas articulo por fecha y cliente', 'Informe de ventas con frcha y factura agrupado por cliente', NULL, 'S', NULL); +INSERT INTO INFORMES (ID, ID_EMPRESA, CATEGORIA, CONTROLLER, ICONO, NOMBRE, DESCRIPCION, ORDEN, MODIFICABLE, TIPO_AGRUPACION) VALUES (12, 1, 'MARGEN ARTICULOS', 'InfMargenArticuloController', 0, 'Margen ventas - compras pro', 'Informe que nos da el margen de las ventas de un periodo de tiempo en base al importe neto de compras promedio', NULL, 'S', 2); +SET GENERATOR GEN_INFORMES_ID TO 13; +COMMIT WORK; + + + +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (1, 'REF_FACTURAS_CLIENTE', 'EL/0001', 1, 'Ref. facturas de cliente'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (2, 'REF_PEDIDOS_CLIENTE', '00001', 1, 'Ref. pedidos de cliente'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (3, 'REF_PEDIDOS_PROVEEDOR', '00001', 1, 'Ref. pedidos de proveedor'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (4, 'REF_ALBARANES_CLIENTE', '00001', 1, 'Ref. albaranes de cliente'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (5, 'REF_ALBARANES_PROVEEDOR', '00001', 1, 'Ref. albaranes de proveedor'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (6, 'REF_REMESAS_CLIENTE', '00001', 1, 'Ref. remesas de cliente'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (7, 'REF_COMISIONES', '00001', 1, 'Ref. liquidaciones de comision'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (8, 'REF_FACTURAS_PROVEEDOR', '2010/0001', 1, 'Ref. facturas de proveedor'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (9, 'REF_ALBARANES_DEV_CLIENTE', '00001', 1, 'Ref. ordenes de devolucion de cliente'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (10, 'REF_ALBARANES_DEV_PROVEEDOR', '00001', 1, 'Ref. ordenes de devolucion de proveedor'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (11, 'REF_REMESAS_PROVEEDOR', '00001', 1, 'Ref. remesas de proveedor'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (12, 'REF_ABONOS_CLIENTE', 'AB-EL/0001', 1, 'Ref. abonos de cliente'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (13, 'REF_ABONOS_PROVEEDOR', 'A. 2010/0001', 1, 'Ref. abonos de proveedor'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (14, 'REF_FACTURAS_CLIENTE', 'NFC/0001', 2, 'Ref. facturas de cliente'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (15, 'REF_PEDIDOS_CLIENTE', 'NPC/0001', 2, 'Ref. pedidos de cliente'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (16, 'REF_PEDIDOS_PROVEEDOR', 'NPP/0001', 2, 'Ref. pedidos de proveedor'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (17, 'REF_ALBARANES_CLIENTE', 'NAC/0001', 2, 'Ref. albaranes de cliente'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (18, 'REF_ALBARANES_PROVEEDOR', 'NAP/0001', 2, 'Ref. albaranes de proveedor'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (19, 'REF_REMESAS_CLIENTE', 'NRC/0001', 2, 'Ref. remesas de cliente'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (20, 'REF_COMISIONES', 'NL/0001', 2, 'Ref. liquidaciones de comision'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (21, 'REF_FACTURAS_PROVEEDOR', 'NFP/0001', 2, 'Ref. facturas de proveedor'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (22, 'REF_ALBARANES_DEV_CLIENTE', 'NOC/0001', 2, 'Ref. ordenes de devolucion de cliente'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (23, 'REF_ALBARANES_DEV_PROVEEDOR', 'NOP/0001', 2, 'Ref. ordenes de devolucion de proveedor'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (24, 'REF_REMESAS_PROVEEDOR', 'NRP/0001', 2, 'Ref. remesas de proveedor'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (25, 'REF_ABONOS_CLIENTE', 'NFAC/0001', 2, 'Ref. abonos de cliente'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (26, 'REF_ABONOS_PROVEEDOR', 'NFAP/0001', 2, 'Ref. abonos de proveedor'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (27, 'REF_CLIENTES', '0000000001', NULL, 'Ref. clientes'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (28, 'REF_PROVEEDORES', '0000000001', NULL, 'Ref. proveedores'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (29, 'REF_AGENTES', '00001', NULL, 'Ref. agentes'); +INSERT INTO REFERENCIAS (ID, CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES (30, 'REF_ARTICULOS', '1', NULL, 'Ref. artculos'); +SET GENERATOR GEN_REFERENCIAS_ID TO 31; +COMMIT WORK; + +INSERT INTO TIPOS_IVA (ID, REFERENCIA, DESCRIPCION, IVA, RE) VALUES (2, 'IVA16', 'IVA16', 16, 4); +INSERT INTO TIPOS_IVA (ID, REFERENCIA, DESCRIPCION, IVA, RE) VALUES (3, 'IVA4', 'IVA4', 4, 0.5); +INSERT INTO TIPOS_IVA (ID, REFERENCIA, DESCRIPCION, IVA, RE) VALUES (4, 'IVA7', 'IVA7', 7, 1); +INSERT INTO TIPOS_IVA (ID, REFERENCIA, DESCRIPCION, IVA, RE) VALUES (6, 'EXENTO', 'EXTRANJERO', 0, 0); +INSERT INTO TIPOS_IVA (ID, REFERENCIA, DESCRIPCION, IVA, RE) VALUES (1, 'IVA20', 'IVA20', 20, NULL); +INSERT INTO TIPOS_IVA (ID, REFERENCIA, DESCRIPCION, IVA, RE) VALUES (7, '18%', '18%', 18, 4); +SET GENERATOR GEN_TIPOS_IVA_ID TO 8; +COMMIT WORK; + +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (8, '15', '15 dias', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (12, 'TALON30', 'Talon 30 DIAS', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (7, 'CONTADO', 'Pago al contado', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (13, '30', '30 DIAS', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (14, '30-60-90', '3 PLAZOS', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (53, '30-60', 'DOS PAGOS', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (20, '60', '60 dias', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (21, '90', '90 dias', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (23, 'TALON60', 'TALON 60 DIAS', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (29, '45', '45 dias', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (30, '90-120-150', '90-120-150', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (32, 'TALON90', 'TALON 90 DIAS', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (33, 'GRATUITO', 'SIN CARGO', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (34, '30-60-90-120', '30-60-90-120', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (35, '30-60-90-120-150-180', '30-60-90-120-150-180', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (36, '60-90-120', '60-90-120', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (37, '90-120', '90-120', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (38, 'TRANSF/CCM 30 DIAS', 'TRANSFERENCIA BANCARIA', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (39, 'CARGO EN CCM', 'CARGO EN CCM', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (40, 'TRASF/ CAIXA C.', 'TRANSFERENCIA CAIXA CATALUA', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (44, '60-90', '2 PLAZOS', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (41, '7 PAGOS', '120-150-180-210-240-270-300', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (49, 'TRASF N/F CCM.', 'TRANSFERENCIA A NUESTRO FAVOR CCM.', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (48, 'CINCO PAGOS', 'CINCO PAGOS', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (50, 'DESCARGA', 'PAGO A LA ENTREGA', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (51, 'VISA', 'PAGO POR VISA', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (54, '30-45', '2 PAGOS', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (55, 'TALON', 'TALON', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (56, 'TRANS. 10 DIAS', 'TRANSF. 10 DIAS', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (57, ' 1 DIA', 'UN DIA', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (58, 'TALON120 DIAS', 'TALON 120 DIAS', NULL, NULL, NULL, NULL, NULL); +INSERT INTO FORMAS_PAGO (ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA) VALUES (61, '30-60-90-120-150', '30-60-90-120-150', NULL, NULL, NULL, NULL, NULL); +SET GENERATOR GEN_FORMAS_PAGO_ID TO 62; +COMMIT WORK; + + +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (65, 42, 60, 50); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (12, 14, 30, 33.33); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (13, 14, 60, 33.33); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (14, 14, 90, 33.34); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (93, 53, 30, 50); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (19, 12, 30, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (20, 23, 60, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (6, 8, 15, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (29, 29, 45, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (30, 30, 90, 33.33); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (23, 20, 60, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (24, 21, 90, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (31, 30, 120, 33.33); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (32, 30, 150, 33.34); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (33, 32, 90, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (34, 7, 0, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (35, 34, 30, 25); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (36, 34, 60, 25); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (37, 34, 90, 25); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (38, 34, 120, 25); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (39, 35, 30, 16.67); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (40, 35, 60, 16.67); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (41, 35, 90, 16.67); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (42, 35, 120, 16.66); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (43, 35, 150, 16.67); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (44, 35, 180, 16.67); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (45, 36, 60, 33.33); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (46, 36, 90, 33.33); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (47, 36, 120, 33.33); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (48, 37, 90, 50); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (49, 37, 120, 50); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (50, 38, 30, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (66, 42, 90, 50); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (67, 43, 60, 50); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (68, 43, 90, 50); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (69, 44, 60, 50); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (70, 44, 90, 50); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (82, 48, 30, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (57, 13, 30, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (72, 46, 30, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (73, 46, 60, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (74, 46, 90, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (75, 46, 120, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (76, 46, 150, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (77, 47, 30, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (58, 41, 120, 14.29); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (59, 41, 150, 14.29); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (60, 41, 180, 14.29); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (61, 41, 210, 14.29); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (62, 41, 240, 14.29); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (63, 41, 270, 14.29); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (64, 41, 300, 14.29); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (78, 47, 60, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (79, 47, 90, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (80, 47, 120, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (81, 47, 150, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (83, 48, 60, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (84, 48, 90, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (85, 48, 120, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (86, 48, 150, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (87, 40, 0, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (88, 50, 1, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (89, 51, 1, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (90, 49, 1, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (91, 52, 60, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (92, 39, NULL, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (94, 53, 60, 50); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (95, 54, 30, 50); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (96, 54, 45, 50); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (97, 56, 10, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (100, 58, 120, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (101, 57, NULL, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (102, 55, 0, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (103, 59, 0, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (104, 33, NULL, 100); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (106, 61, 30, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (107, 61, 60, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (108, 61, 90, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (109, 61, 120, 20); +INSERT INTO FORMAS_PAGO_PLAZOS (ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE) VALUES (110, 61, 150, 20); +SET GENERATOR GEN_FORMAS_PAGO_PLAZOS_ID TO 111; +COMMIT WORK; + +INSERT INTO EMPRESAS (ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, FECHA_ALTA, FECHA_MODIFICACION, USUARIO, REGISTRO_MERCANTIL, ID_TIPO_IVA) VALUES (1, 'B82780453', 'Luis Len Representaciones S.L.', NULL, 'C/ Sur, 4, Bajo 1', 'Moraleja de Enmedio', 'Madrid', '28950', '916004041', NULL, NULL, NULL, '916093287', NULL, NULL, NULL, NULL, NULL, NULL, '', 7); +INSERT INTO EMPRESAS (ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, FECHA_ALTA, FECHA_MODIFICACION, USUARIO, REGISTRO_MERCANTIL, ID_TIPO_IVA) VALUES (2, 'ssss2', 'ssssss', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7); +SET GENERATOR GEN_EMPRESAS_ID TO 3; +COMMIT WORK; + diff --git a/Database/udfs/funciones.pas b/Database/udfs/funciones.pas new file mode 100644 index 0000000..b0001ae --- /dev/null +++ b/Database/udfs/funciones.pas @@ -0,0 +1,237 @@ +unit funciones; + +interface + +function RtfToText(Cadena: PChar): PChar; cdecl; export; + +implementation + +uses + Forms, Classes, SysUtils, StdCtrls, ComCtrls; + + +// Esta funcin falla cuando hay caracteres especiales en el texto (, por ejemplo). +// Mejor la de abajo. + +function RtfToText2(Cadena: PChar): PChar; +var + i: integer; + CadenaAux1: String; + +begin + //Si no tiene ninguna llave no esta guardado como rtf + if (Pos('{', Cadena) = 0) then + Result := Cadena + else + //Esta guardado con rtf + begin + //Quitamos todo lo que est antes de \fs1x + i := Pos('\fs', Cadena); + CadenaAux1 := Copy(Cadena, i, StrLen(Cadena)-1); + + //Quitamos la parte de delante \fs1x + i:= Pos(' ', CadenaAux1); + CadenaAux1 := Copy(PChar(CadenaAux1), i+1, StrLen(PChar(CadenaAux1))-1); + + //Quitamos todo lo de la parte de atras a partir de la primera barra \ que tengamos + i:= Pos('\', CadenaAux1); + CadenaAux1 := Copy(PChar(CadenaAux1), 0, i-1); + + Result := PChar(CadenaAux1); + end; +end; + + +{ + Convert RTF enabled text to plain. + http://www.delphipraxis.net/topic45179.html +} + +// HAY QUE LIMPIAR LA CADENA DE ENTRADA DE SALTOS DE LNEA (#$D#$A) POR QUE +// SI NO, NO ES UNA CADENA CON TEXTO RTF VLIDO + +function RtfToText(Cadena: PChar): PChar; +const + SaltoLinea = #13#10; //--> #$D#$A +var + aSource: string; // <- Para almacenar la cadena de entrada sin saltos de lnea + Source: string; + NChar: Integer; + + function ProcessGroupRecursevly: string; + + function HexToInt(HexStr: String): Integer; + begin + result := StrToInt('$' + HexStr); + end; + + procedure SkipStar; + var + BracesOpened: Integer; + Escaped: Boolean; + begin + BracesOpened:=1; + Escaped:=false; + while BracesOpened>0 + do begin + Inc (NChar); + case Source [NChar] of + '{': if Escaped + then Escaped:=false + else Inc (BracesOpened); + '}': if Escaped + then Escaped:=false + else Dec (BracesOpened); + '\': Escaped:=not Escaped; + else Escaped:=false; + end; + end; + end; + + function UnicodeCharCode2ANSIChar (aCode: LongInt): Char; + type + TUnicode2ANSITable=array [$0410..$044f] of Char; + const + Unicode2ANSITable: TUnicode2AnsiTable=('', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', + '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''); + begin + if (Low (Unicode2ANSITable)<=aCode) and (aCode<=High (Unicode2ANSITable)) then + UnicodeCharCode2ANSIChar:=Unicode2ANSITable [aCode] + else UnicodeCharCode2ANSIChar:='?'; + end; + + var + Control, NumericValue, TextValue: string; + begin + Result:=''; + Inc (NChar); + while NChar<=Length (Source) + do case Source [NChar] of + '{': Result:=Result+ProcessGroupRecursevly; + '}': begin + Inc (NChar); + Break; + end; + '\': begin + Inc (NChar); + case Source [NChar] of + '''': begin + Result:=Result+Chr (HexToInt (Copy (Source, NChar+1, 2))); + Inc (NChar, 3); + end; + '~': Result:=Result+#$20; + '*': SkipStar; + 'a'..'z': begin + Control:=''; + while Source [NChar] in ['a'..'z'] + do begin + Control:=Control+Source [NChar]; + Inc (NChar); + end; + if Source [NChar]='-' + then begin + NumericValue:=Source [NChar]; + Inc (NChar); + end + else NumericValue:=''; + while Source [NChar] in ['0'..'9'] + do begin + NumericValue:=NumericValue+Source [NChar]; + Inc (NChar); + end; + if Source [NChar]='{' + then ProcessGroupRecursevly; + TextValue:=''; + if not (Source [NChar] in ['a'..'z', '{', '}', '\']) + then begin + Inc (NChar); + while not (Source [NChar] in ['{', '}', '\']) + do begin + TextValue:=TextValue+Source [NChar]; + Inc (NChar); + end; + end; + if (Control='line') or (Control='par') + then Result:=Result+#$0D#$0A + else if Control='tab' + then Result:=Result+#$09 + else if Control='u' + then Result:=Result+UnicodeCharCode2ANSIChar (StrToInt (NumericValue)) + else if Control='colortbl' + then TextValue:=''; + if Length (TextValue)>0 + then if (not ((TextValue [Length (TextValue)]=';') and (Source [NChar]='}'))) + then begin + Result:=Result+TextValue; + TextValue:=''; + end; + end; + else begin + Result:=Result+Source [NChar]; + Inc (NChar); + end; + end; + end; + else begin + Result:=Result+Source [NChar]; + Inc (NChar); + end; + end; + end; + + function InitSource: Boolean; + var + BracesCount: Integer; + Escaped: Boolean; + begin + if Copy (aSource, 1, 5) <> '{\rtf' then + InitSource:=false + else begin + Source:=''; + BracesCount:=0; + Escaped:=false; + NChar:=1; + while (NChar<=Length (aSource)) and (BracesCount>=0) + do begin + if not (aSource [NChar] in [#$0D, #$0A]) + then begin + Source:=Source+aSource [NChar]; + case aSource [NChar] of + '{': if not Escaped + then Inc (BracesCount) + else Escaped:=false; + '}': if not Escaped + then Dec (BracesCount) + else Escaped:=false; + '\': Escaped:=true; + else Escaped:=false; + end; + end; + Inc (NChar); + end; + InitSource:=BracesCount=0; + end; + end; + +begin + // Hay que quitar el salto de lnea al final de la aSource RTF + aSource := Copy(Cadena, 1, length(Cadena)-2); + + // Cambiar los saltos de lnea que no son de RTF por un caracter para + // que se limpien. + aSource := StringReplace(aSource, SaltoLinea, '^', [rfreplaceall]); + + if InitSource then + begin + NChar:=1; + Result:= PChar(ProcessGroupRecursevly); + end + else + Result := PChar(aSource); +end; + +end. + + + + diff --git a/Database/udfs/udf_RtfToText.bdsproj b/Database/udfs/udf_RtfToText.bdsproj new file mode 100644 index 0000000..959bb9b --- /dev/null +++ b/Database/udfs/udf_RtfToText.bdsproj @@ -0,0 +1,498 @@ + + + + + + + + + + + + udf_RtfToText.dpr + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + + + + + + EUREKALOG;EUREKALOG_VER5 + + False + + + + + + False + + + True + False + + + + $00000000 + + + + False + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + + Muststang Peak EasyListview Runtime Package + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + + + + diff --git a/Database/udfs/udf_RtfToText.dll b/Database/udfs/udf_RtfToText.dll new file mode 100644 index 0000000..d326ff5 Binary files /dev/null and b/Database/udfs/udf_RtfToText.dll differ diff --git a/Database/udfs/udf_RtfToText.dpr b/Database/udfs/udf_RtfToText.dpr new file mode 100644 index 0000000..6f3b600 --- /dev/null +++ b/Database/udfs/udf_RtfToText.dpr @@ -0,0 +1,17 @@ +library udf_RtfToText; + +uses + ComServ, + funciones in 'funciones.pas'; + +exports + DllGetClassObject, + DllCanUnloadNow, + DllRegisterServer, + DllUnregisterServer, + RtfToText; + +{$R *.RES} + +begin +end. diff --git a/Database/udfs/udf_RtfToText.dproj b/Database/udfs/udf_RtfToText.dproj new file mode 100644 index 0000000..5ba99a5 --- /dev/null +++ b/Database/udfs/udf_RtfToText.dproj @@ -0,0 +1,593 @@ + + + {5eb7350e-c612-4139-a532-3b8a4617e544} + udf_RtfToText.dpr + Debug + AnyCPU + DCC32 + udf_RtfToText.dll + + + 7.0 + False + False + 0 + 3 + EUREKALOG;EUREKALOG_VER5;RELEASE + + + 7.0 + 3 + DEBUG + + + Delphi.Personality + + +FalseTrueFalse + + + FalseFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Muststang Peak EasyListview Runtime Package + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + udf_RtfToText.dpr + + + + + MainSource + + + + + diff --git a/Database/udfs/udf_RtfToText.drc b/Database/udfs/udf_RtfToText.drc new file mode 100644 index 0000000..1dc586b --- /dev/null +++ b/Database/udfs/udf_RtfToText.drc @@ -0,0 +1,451 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +#define Consts_SDockZoneHasNoCtl 65312 +#define Consts_SDockZoneVersionConflict 65313 +#define Consts_SANSIEncoding 65314 +#define Consts_SASCIIEncoding 65315 +#define Consts_SUnicodeEncoding 65316 +#define Consts_SBigEndianEncoding 65317 +#define Consts_SUTF8Encoding 65318 +#define Consts_SUTF7Encoding 65319 +#define Consts_SmkcEnd 65328 +#define Consts_SmkcHome 65329 +#define Consts_SmkcLeft 65330 +#define Consts_SmkcUp 65331 +#define Consts_SmkcRight 65332 +#define Consts_SmkcDown 65333 +#define Consts_SmkcIns 65334 +#define Consts_SmkcDel 65335 +#define Consts_SmkcShift 65336 +#define Consts_SmkcCtrl 65337 +#define Consts_SmkcAlt 65338 +#define Consts_SIconToClipboard 65339 +#define Consts_SDuplicateMenus 65340 +#define Consts_SDockedCtlNeedsName 65341 +#define Consts_SDockTreeRemoveError 65342 +#define Consts_SDockZoneNotFound 65343 +#define Consts_SMsgDlgOK 65344 +#define Consts_SMsgDlgCancel 65345 +#define Consts_SMsgDlgHelp 65346 +#define Consts_SMsgDlgAbort 65347 +#define Consts_SMsgDlgRetry 65348 +#define Consts_SMsgDlgIgnore 65349 +#define Consts_SMsgDlgAll 65350 +#define Consts_SMsgDlgNoToAll 65351 +#define Consts_SMsgDlgYesToAll 65352 +#define Consts_SmkcBkSp 65353 +#define Consts_SmkcTab 65354 +#define Consts_SmkcEsc 65355 +#define Consts_SmkcEnter 65356 +#define Consts_SmkcSpace 65357 +#define Consts_SmkcPgUp 65358 +#define Consts_SmkcPgDn 65359 +#define Consts_SCancelButton 65360 +#define Consts_SYesButton 65361 +#define Consts_SNoButton 65362 +#define Consts_SHelpButton 65363 +#define Consts_SCloseButton 65364 +#define Consts_SIgnoreButton 65365 +#define Consts_SRetryButton 65366 +#define Consts_SAbortButton 65367 +#define Consts_SAllButton 65368 +#define Consts_SCannotDragForm 65369 +#define Consts_SMsgDlgWarning 65370 +#define Consts_SMsgDlgError 65371 +#define Consts_SMsgDlgInformation 65372 +#define Consts_SMsgDlgConfirm 65373 +#define Consts_SMsgDlgYes 65374 +#define Consts_SMsgDlgNo 65375 +#define Consts_SImageWriteFail 65376 +#define Consts_SWindowDCError 65377 +#define Consts_SWindowClass 65378 +#define Consts_SCannotFocus 65379 +#define Consts_SParentRequired 65380 +#define Consts_SMDIChildNotVisible 65381 +#define Consts_SVisibleChanged 65382 +#define Consts_SCannotShowModal 65383 +#define Consts_SMenuIndexError 65384 +#define Consts_SMenuReinserted 65385 +#define Consts_SMenuNotFound 65386 +#define Consts_SNoTimers 65387 +#define Consts_SGroupIndexTooLow 65388 +#define Consts_SNoMDIForm 65389 +#define Consts_SControlParentSetToSelf 65390 +#define Consts_SOKButton 65391 +#define RTLConsts_SWriteError 65392 +#define HelpIntfs_hNoTableOfContents 65393 +#define HelpIntfs_hNothingFound 65394 +#define HelpIntfs_hNoContext 65395 +#define HelpIntfs_hNoContextFound 65396 +#define HelpIntfs_hNoTopics 65397 +#define Consts_SInvalidBitmap 65398 +#define Consts_SInvalidIcon 65399 +#define Consts_SChangeIconSize 65400 +#define Consts_SUnknownClipboardFormat 65401 +#define Consts_SOutOfResources 65402 +#define Consts_SNoCanvasHandle 65403 +#define Consts_SInvalidImageSize 65404 +#define Consts_SInvalidImageList 65405 +#define Consts_SImageIndexError 65406 +#define Consts_SImageReadFail 65407 +#define RTLConsts_SInvalidPropertyPath 65408 +#define RTLConsts_SInvalidPropertyValue 65409 +#define RTLConsts_SInvalidRegType 65410 +#define RTLConsts_SListCapacityError 65411 +#define RTLConsts_SListCountError 65412 +#define RTLConsts_SListIndexError 65413 +#define RTLConsts_SMemoryStreamError 65414 +#define RTLConsts_SPropertyException 65415 +#define RTLConsts_SReadError 65416 +#define RTLConsts_SReadOnlyProperty 65417 +#define RTLConsts_SRegGetDataFailed 65418 +#define RTLConsts_SResNotFound 65419 +#define RTLConsts_SSeekNotImplemented 65420 +#define RTLConsts_SSortedListError 65421 +#define RTLConsts_SUnknownGroup 65422 +#define RTLConsts_SUnknownProperty 65423 +#define ComConst_SNoCloseActiveServer1 65424 +#define ComConst_SNoCloseActiveServer2 65425 +#define RTLConsts_SAncestorNotFound 65426 +#define RTLConsts_SAssignError 65427 +#define RTLConsts_SBitsIndexError 65428 +#define RTLConsts_SCantWriteResourceStreamError 65429 +#define RTLConsts_SCheckSynchronizeError 65430 +#define RTLConsts_SClassNotFound 65431 +#define RTLConsts_SDuplicateClass 65432 +#define RTLConsts_SDuplicateItem 65433 +#define RTLConsts_SDuplicateName 65434 +#define RTLConsts_SDuplicateString 65435 +#define RTLConsts_SFCreateErrorEx 65436 +#define RTLConsts_SFOpenErrorEx 65437 +#define RTLConsts_SInvalidImage 65438 +#define RTLConsts_SInvalidName 65439 +#define SysConst_SShortDayNameWed 65440 +#define SysConst_SShortDayNameThu 65441 +#define SysConst_SShortDayNameFri 65442 +#define SysConst_SShortDayNameSat 65443 +#define SysConst_SLongDayNameSun 65444 +#define SysConst_SLongDayNameMon 65445 +#define SysConst_SLongDayNameTue 65446 +#define SysConst_SLongDayNameWed 65447 +#define SysConst_SLongDayNameThu 65448 +#define SysConst_SLongDayNameFri 65449 +#define SysConst_SLongDayNameSat 65450 +#define ComConst_SOleError 65451 +#define ComConst_SNoMethod 65452 +#define ComConst_SVarNotObject 65453 +#define ComConst_STooManyParams 65454 +#define ComConst_SAutomationWarning 65455 +#define SysConst_SShortMonthNameDec 65456 +#define SysConst_SLongMonthNameJan 65457 +#define SysConst_SLongMonthNameFeb 65458 +#define SysConst_SLongMonthNameMar 65459 +#define SysConst_SLongMonthNameApr 65460 +#define SysConst_SLongMonthNameMay 65461 +#define SysConst_SLongMonthNameJun 65462 +#define SysConst_SLongMonthNameJul 65463 +#define SysConst_SLongMonthNameAug 65464 +#define SysConst_SLongMonthNameSep 65465 +#define SysConst_SLongMonthNameOct 65466 +#define SysConst_SLongMonthNameNov 65467 +#define SysConst_SLongMonthNameDec 65468 +#define SysConst_SShortDayNameSun 65469 +#define SysConst_SShortDayNameMon 65470 +#define SysConst_SShortDayNameTue 65471 +#define SysConst_SAssertError 65472 +#define SysConst_SAbstractError 65473 +#define SysConst_SModuleAccessViolation 65474 +#define SysConst_SOSError 65475 +#define SysConst_SUnkOSError 65476 +#define SysConst_SShortMonthNameJan 65477 +#define SysConst_SShortMonthNameFeb 65478 +#define SysConst_SShortMonthNameMar 65479 +#define SysConst_SShortMonthNameApr 65480 +#define SysConst_SShortMonthNameMay 65481 +#define SysConst_SShortMonthNameJun 65482 +#define SysConst_SShortMonthNameJul 65483 +#define SysConst_SShortMonthNameAug 65484 +#define SysConst_SShortMonthNameSep 65485 +#define SysConst_SShortMonthNameOct 65486 +#define SysConst_SShortMonthNameNov 65487 +#define SysConst_SVarArrayBounds 65488 +#define SysConst_SVarArrayLocked 65489 +#define SysConst_SInvalidVarCast 65490 +#define SysConst_SInvalidVarOp 65491 +#define SysConst_SInvalidVarOpWithHResultWithPrefix 65492 +#define SysConst_SVarTypeCouldNotConvert 65493 +#define SysConst_SVarTypeConvertOverflow 65494 +#define SysConst_SVarOverflow 65495 +#define SysConst_SVarInvalid 65496 +#define SysConst_SVarBadType 65497 +#define SysConst_SVarNotImplemented 65498 +#define SysConst_SVarUnexpected 65499 +#define SysConst_SExternalException 65500 +#define SysConst_SAssertionFailed 65501 +#define SysConst_SIntfCastError 65502 +#define SysConst_SSafecallException 65503 +#define SysConst_SUnderflow 65504 +#define SysConst_SInvalidPointer 65505 +#define SysConst_SInvalidCast 65506 +#define SysConst_SAccessViolationArg3 65507 +#define SysConst_SAccessViolationNoArg 65508 +#define SysConst_SStackOverflow 65509 +#define SysConst_SControlC 65510 +#define SysConst_SPrivilege 65511 +#define SysConst_SException 65512 +#define SysConst_SExceptTitle 65513 +#define SysConst_SInvalidFormat 65514 +#define SysConst_SArgumentMissing 65515 +#define SysConst_SDispatchError 65516 +#define SysConst_SReadAccess 65517 +#define SysConst_SWriteAccess 65518 +#define SysConst_SVarArrayCreate 65519 +#define SysConst_SInvalidInteger 65520 +#define SysConst_SOutOfMemory 65521 +#define SysConst_SInOutError 65522 +#define SysConst_SFileNotFound 65523 +#define SysConst_SInvalidFilename 65524 +#define SysConst_STooManyOpenFiles 65525 +#define SysConst_SAccessDenied 65526 +#define SysConst_SEndOfFile 65527 +#define SysConst_SDiskFull 65528 +#define SysConst_SInvalidInput 65529 +#define SysConst_SDivByZero 65530 +#define SysConst_SRangeError 65531 +#define SysConst_SIntOverflow 65532 +#define SysConst_SInvalidOp 65533 +#define SysConst_SZeroDivide 65534 +#define SysConst_SOverflow 65535 +STRINGTABLE +BEGIN + Consts_SDockZoneHasNoCtl, " - Dock zone has no control" + Consts_SDockZoneVersionConflict, "Error loading dock zone from the stream. Expecting version %d, but found %d." + Consts_SANSIEncoding, "ANSI" + Consts_SASCIIEncoding, "ASCII" + Consts_SUnicodeEncoding, "Unicode" + Consts_SBigEndianEncoding, "Big Endian Unicode" + Consts_SUTF8Encoding, "UTF-8" + Consts_SUTF7Encoding, "UTF-7" + Consts_SmkcEnd, "End" + Consts_SmkcHome, "Home" + Consts_SmkcLeft, "Left" + Consts_SmkcUp, "Up" + Consts_SmkcRight, "Right" + Consts_SmkcDown, "Down" + Consts_SmkcIns, "Ins" + Consts_SmkcDel, "Del" + Consts_SmkcShift, "Shift+" + Consts_SmkcCtrl, "Ctrl+" + Consts_SmkcAlt, "Alt+" + Consts_SIconToClipboard, "Clipboard does not support Icons" + Consts_SDuplicateMenus, "Menu '%s' is already being used by another form" + Consts_SDockedCtlNeedsName, "Docked control must have a name" + Consts_SDockTreeRemoveError, "Error removing control from dock tree" + Consts_SDockZoneNotFound, " - Dock zone not found" + Consts_SMsgDlgOK, "OK" + Consts_SMsgDlgCancel, "Cancel" + Consts_SMsgDlgHelp, "&Help" + Consts_SMsgDlgAbort, "&Abort" + Consts_SMsgDlgRetry, "&Retry" + Consts_SMsgDlgIgnore, "&Ignore" + Consts_SMsgDlgAll, "&All" + Consts_SMsgDlgNoToAll, "N&o to All" + Consts_SMsgDlgYesToAll, "Yes to &All" + Consts_SmkcBkSp, "BkSp" + Consts_SmkcTab, "Tab" + Consts_SmkcEsc, "Esc" + Consts_SmkcEnter, "Enter" + Consts_SmkcSpace, "Space" + Consts_SmkcPgUp, "PgUp" + Consts_SmkcPgDn, "PgDn" + Consts_SCancelButton, "Cancel" + Consts_SYesButton, "&Yes" + Consts_SNoButton, "&No" + Consts_SHelpButton, "&Help" + Consts_SCloseButton, "&Close" + Consts_SIgnoreButton, "&Ignore" + Consts_SRetryButton, "&Retry" + Consts_SAbortButton, "Abort" + Consts_SAllButton, "&All" + Consts_SCannotDragForm, "Cannot drag a form" + Consts_SMsgDlgWarning, "Warning" + Consts_SMsgDlgError, "Error" + Consts_SMsgDlgInformation, "Information" + Consts_SMsgDlgConfirm, "Confirm" + Consts_SMsgDlgYes, "&Yes" + Consts_SMsgDlgNo, "&No" + Consts_SImageWriteFail, "Failed to write ImageList data to stream" + Consts_SWindowDCError, "Error creating window device context" + Consts_SWindowClass, "Error creating window class" + Consts_SCannotFocus, "Cannot focus a disabled or invisible window" + Consts_SParentRequired, "Control '%s' has no parent window" + Consts_SMDIChildNotVisible, "Cannot hide an MDI Child Form" + Consts_SVisibleChanged, "Cannot change Visible in OnShow or OnHide" + Consts_SCannotShowModal, "Cannot make a visible window modal" + Consts_SMenuIndexError, "Menu index out of range" + Consts_SMenuReinserted, "Menu inserted twice" + Consts_SMenuNotFound, "Sub-menu is not in menu" + Consts_SNoTimers, "Not enough timers available" + Consts_SGroupIndexTooLow, "GroupIndex cannot be less than a previous menu item's GroupIndex" + Consts_SNoMDIForm, "Cannot create form. No MDI forms are currently active" + Consts_SControlParentSetToSelf, "A control cannot have itself as its parent" + Consts_SOKButton, "OK" + RTLConsts_SWriteError, "Stream write error" + HelpIntfs_hNoTableOfContents, "Unable to find a Table of Contents" + HelpIntfs_hNothingFound, "No help found for %s" + HelpIntfs_hNoContext, "No context-sensitive help installed" + HelpIntfs_hNoContextFound, "No help found for context" + HelpIntfs_hNoTopics, "No topic-based help system installed" + Consts_SInvalidBitmap, "Bitmap image is not valid" + Consts_SInvalidIcon, "Icon image is not valid" + Consts_SChangeIconSize, "Cannot change the size of an icon" + Consts_SUnknownClipboardFormat, "Unsupported clipboard format" + Consts_SOutOfResources, "Out of system resources" + Consts_SNoCanvasHandle, "Canvas does not allow drawing" + Consts_SInvalidImageSize, "Invalid image size" + Consts_SInvalidImageList, "Invalid ImageList" + Consts_SImageIndexError, "Invalid ImageList Index" + Consts_SImageReadFail, "Failed to read ImageList data from stream" + RTLConsts_SInvalidPropertyPath, "Invalid property path" + RTLConsts_SInvalidPropertyValue, "Invalid property value" + RTLConsts_SInvalidRegType, "Invalid data type for '%s'" + RTLConsts_SListCapacityError, "List capacity out of bounds (%d)" + RTLConsts_SListCountError, "List count out of bounds (%d)" + RTLConsts_SListIndexError, "List index out of bounds (%d)" + RTLConsts_SMemoryStreamError, "Out of memory while expanding memory stream" + RTLConsts_SPropertyException, "Error reading %s%s%s: %s" + RTLConsts_SReadError, "Stream read error" + RTLConsts_SReadOnlyProperty, "Property is read-only" + RTLConsts_SRegGetDataFailed, "Failed to get data for '%s'" + RTLConsts_SResNotFound, "Resource %s not found" + RTLConsts_SSeekNotImplemented, "%s.Seek not implemented" + RTLConsts_SSortedListError, "Operation not allowed on sorted list" + RTLConsts_SUnknownGroup, "%s not in a class registration group" + RTLConsts_SUnknownProperty, "Property %s does not exist" + ComConst_SNoCloseActiveServer1, "There are still active COM objects in this application. One or more clients may have references to these objects, so manually closing " + ComConst_SNoCloseActiveServer2, "this application may cause those client application(s) to fail.\r\n\r\nAre you sure you want to close this application?" + RTLConsts_SAncestorNotFound, "Ancestor for '%s' not found" + RTLConsts_SAssignError, "Cannot assign a %s to a %s" + RTLConsts_SBitsIndexError, "Bits index out of range" + RTLConsts_SCantWriteResourceStreamError, "Can't write to a read-only resource stream" + RTLConsts_SCheckSynchronizeError, "CheckSynchronize called from thread $%x, which is NOT the main thread" + RTLConsts_SClassNotFound, "Class %s not found" + RTLConsts_SDuplicateClass, "A class named %s already exists" + RTLConsts_SDuplicateItem, "List does not allow duplicates ($0%x)" + RTLConsts_SDuplicateName, "A component named %s already exists" + RTLConsts_SDuplicateString, "String list does not allow duplicates" + RTLConsts_SFCreateErrorEx, "Cannot create file \"%s\". %s" + RTLConsts_SFOpenErrorEx, "Cannot open file \"%s\". %s" + RTLConsts_SInvalidImage, "Invalid stream format" + RTLConsts_SInvalidName, "''%s'' is not a valid component name" + SysConst_SShortDayNameWed, "Wed" + SysConst_SShortDayNameThu, "Thu" + SysConst_SShortDayNameFri, "Fri" + SysConst_SShortDayNameSat, "Sat" + SysConst_SLongDayNameSun, "Sunday" + SysConst_SLongDayNameMon, "Monday" + SysConst_SLongDayNameTue, "Tuesday" + SysConst_SLongDayNameWed, "Wednesday" + SysConst_SLongDayNameThu, "Thursday" + SysConst_SLongDayNameFri, "Friday" + SysConst_SLongDayNameSat, "Saturday" + ComConst_SOleError, "OLE error %.8x" + ComConst_SNoMethod, "Method '%s' not supported by automation object" + ComConst_SVarNotObject, "Variant does not reference an automation object" + ComConst_STooManyParams, "Dispatch methods do not support more than 64 parameters" + ComConst_SAutomationWarning, "COM Server Warning" + SysConst_SShortMonthNameDec, "Dec" + SysConst_SLongMonthNameJan, "January" + SysConst_SLongMonthNameFeb, "February" + SysConst_SLongMonthNameMar, "March" + SysConst_SLongMonthNameApr, "April" + SysConst_SLongMonthNameMay, "May" + SysConst_SLongMonthNameJun, "June" + SysConst_SLongMonthNameJul, "July" + SysConst_SLongMonthNameAug, "August" + SysConst_SLongMonthNameSep, "September" + SysConst_SLongMonthNameOct, "October" + SysConst_SLongMonthNameNov, "November" + SysConst_SLongMonthNameDec, "December" + SysConst_SShortDayNameSun, "Sun" + SysConst_SShortDayNameMon, "Mon" + SysConst_SShortDayNameTue, "Tue" + SysConst_SAssertError, "%s (%s, line %d)" + SysConst_SAbstractError, "Abstract Error" + SysConst_SModuleAccessViolation, "Access violation at address %p in module '%s'. %s of address %p" + SysConst_SOSError, "System Error. Code: %d.\r\n%s" + SysConst_SUnkOSError, "A call to an OS function failed" + SysConst_SShortMonthNameJan, "Jan" + SysConst_SShortMonthNameFeb, "Feb" + SysConst_SShortMonthNameMar, "Mar" + SysConst_SShortMonthNameApr, "Apr" + SysConst_SShortMonthNameMay, "May" + SysConst_SShortMonthNameJun, "Jun" + SysConst_SShortMonthNameJul, "Jul" + SysConst_SShortMonthNameAug, "Aug" + SysConst_SShortMonthNameSep, "Sep" + SysConst_SShortMonthNameOct, "Oct" + SysConst_SShortMonthNameNov, "Nov" + SysConst_SVarArrayBounds, "Variant or safe array index out of bounds" + SysConst_SVarArrayLocked, "Variant or safe array is locked" + SysConst_SInvalidVarCast, "Invalid variant type conversion" + SysConst_SInvalidVarOp, "Invalid variant operation" + SysConst_SInvalidVarOpWithHResultWithPrefix, "Invalid variant operation (%s%.8x)\n%s" + SysConst_SVarTypeCouldNotConvert, "Could not convert variant of type (%s) into type (%s)" + SysConst_SVarTypeConvertOverflow, "Overflow while converting variant of type (%s) into type (%s)" + SysConst_SVarOverflow, "Variant overflow" + SysConst_SVarInvalid, "Invalid argument" + SysConst_SVarBadType, "Invalid variant type" + SysConst_SVarNotImplemented, "Operation not supported" + SysConst_SVarUnexpected, "Unexpected variant error" + SysConst_SExternalException, "External exception %x" + SysConst_SAssertionFailed, "Assertion failed" + SysConst_SIntfCastError, "Interface not supported" + SysConst_SSafecallException, "Exception in safecall method" + SysConst_SUnderflow, "Floating point underflow" + SysConst_SInvalidPointer, "Invalid pointer operation" + SysConst_SInvalidCast, "Invalid class typecast" + SysConst_SAccessViolationArg3, "Access violation at address %p. %s of address %p" + SysConst_SAccessViolationNoArg, "Access violation" + SysConst_SStackOverflow, "Stack overflow" + SysConst_SControlC, "Control-C hit" + SysConst_SPrivilege, "Privileged instruction" + SysConst_SException, "Exception %s in module %s at %p.\r\n%s%s\r\n" + SysConst_SExceptTitle, "Application Error" + SysConst_SInvalidFormat, "Format '%s' invalid or incompatible with argument" + SysConst_SArgumentMissing, "No argument for format '%s'" + SysConst_SDispatchError, "Variant method calls not supported" + SysConst_SReadAccess, "Read" + SysConst_SWriteAccess, "Write" + SysConst_SVarArrayCreate, "Error creating variant or safe array" + SysConst_SInvalidInteger, "'%s' is not a valid integer value" + SysConst_SOutOfMemory, "Out of memory" + SysConst_SInOutError, "I/O error %d" + SysConst_SFileNotFound, "File not found" + SysConst_SInvalidFilename, "Invalid filename" + SysConst_STooManyOpenFiles, "Too many open files" + SysConst_SAccessDenied, "File access denied" + SysConst_SEndOfFile, "Read beyond end of file" + SysConst_SDiskFull, "Disk full" + SysConst_SInvalidInput, "Invalid numeric input" + SysConst_SDivByZero, "Division by zero" + SysConst_SRangeError, "Range check error" + SysConst_SIntOverflow, "Integer overflow" + SysConst_SInvalidOp, "Invalid floating point operation" + SysConst_SZeroDivide, "Floating point division by zero" + SysConst_SOverflow, "Floating point overflow" +END + +/* c:\archivos de programa\codegear\rad studio\5.0\lib\Controls.res */ +/* c:\archivos de programa\codegear\rad studio\5.0\lib\Buttons.res */ +/* c:\archivos de programa\codegear\rad studio\5.0\lib\ExtDlgs.res */ +/* C:\Codigo\Database\udfs\udf_RtfToText.RES */ +/* C:\Codigo\Database\udfs\udf_RtfToText.drf */ diff --git a/Database/udfs/udf_RtfToText.drc.bak b/Database/udfs/udf_RtfToText.drc.bak new file mode 100644 index 0000000..433507d --- /dev/null +++ b/Database/udfs/udf_RtfToText.drc.bak @@ -0,0 +1,451 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +#define Consts_SDockZoneHasNoCtl 65312 +#define Consts_SDockZoneVersionConflict 65313 +#define Consts_SANSIEncoding 65314 +#define Consts_SASCIIEncoding 65315 +#define Consts_SUnicodeEncoding 65316 +#define Consts_SBigEndianEncoding 65317 +#define Consts_SUTF8Encoding 65318 +#define Consts_SUTF7Encoding 65319 +#define Consts_SmkcEnd 65328 +#define Consts_SmkcHome 65329 +#define Consts_SmkcLeft 65330 +#define Consts_SmkcUp 65331 +#define Consts_SmkcRight 65332 +#define Consts_SmkcDown 65333 +#define Consts_SmkcIns 65334 +#define Consts_SmkcDel 65335 +#define Consts_SmkcShift 65336 +#define Consts_SmkcCtrl 65337 +#define Consts_SmkcAlt 65338 +#define Consts_SIconToClipboard 65339 +#define Consts_SDuplicateMenus 65340 +#define Consts_SDockedCtlNeedsName 65341 +#define Consts_SDockTreeRemoveError 65342 +#define Consts_SDockZoneNotFound 65343 +#define Consts_SMsgDlgOK 65344 +#define Consts_SMsgDlgCancel 65345 +#define Consts_SMsgDlgHelp 65346 +#define Consts_SMsgDlgAbort 65347 +#define Consts_SMsgDlgRetry 65348 +#define Consts_SMsgDlgIgnore 65349 +#define Consts_SMsgDlgAll 65350 +#define Consts_SMsgDlgNoToAll 65351 +#define Consts_SMsgDlgYesToAll 65352 +#define Consts_SmkcBkSp 65353 +#define Consts_SmkcTab 65354 +#define Consts_SmkcEsc 65355 +#define Consts_SmkcEnter 65356 +#define Consts_SmkcSpace 65357 +#define Consts_SmkcPgUp 65358 +#define Consts_SmkcPgDn 65359 +#define Consts_SCancelButton 65360 +#define Consts_SYesButton 65361 +#define Consts_SNoButton 65362 +#define Consts_SHelpButton 65363 +#define Consts_SCloseButton 65364 +#define Consts_SIgnoreButton 65365 +#define Consts_SRetryButton 65366 +#define Consts_SAbortButton 65367 +#define Consts_SAllButton 65368 +#define Consts_SCannotDragForm 65369 +#define Consts_SMsgDlgWarning 65370 +#define Consts_SMsgDlgError 65371 +#define Consts_SMsgDlgInformation 65372 +#define Consts_SMsgDlgConfirm 65373 +#define Consts_SMsgDlgYes 65374 +#define Consts_SMsgDlgNo 65375 +#define Consts_SImageWriteFail 65376 +#define Consts_SWindowDCError 65377 +#define Consts_SWindowClass 65378 +#define Consts_SCannotFocus 65379 +#define Consts_SParentRequired 65380 +#define Consts_SMDIChildNotVisible 65381 +#define Consts_SVisibleChanged 65382 +#define Consts_SCannotShowModal 65383 +#define Consts_SMenuIndexError 65384 +#define Consts_SMenuReinserted 65385 +#define Consts_SMenuNotFound 65386 +#define Consts_SNoTimers 65387 +#define Consts_SGroupIndexTooLow 65388 +#define Consts_SNoMDIForm 65389 +#define Consts_SControlParentSetToSelf 65390 +#define Consts_SOKButton 65391 +#define RTLConsts_SWriteError 65392 +#define HelpIntfs_hNoTableOfContents 65393 +#define HelpIntfs_hNothingFound 65394 +#define HelpIntfs_hNoContext 65395 +#define HelpIntfs_hNoContextFound 65396 +#define HelpIntfs_hNoTopics 65397 +#define Consts_SInvalidBitmap 65398 +#define Consts_SInvalidIcon 65399 +#define Consts_SChangeIconSize 65400 +#define Consts_SUnknownClipboardFormat 65401 +#define Consts_SOutOfResources 65402 +#define Consts_SNoCanvasHandle 65403 +#define Consts_SInvalidImageSize 65404 +#define Consts_SInvalidImageList 65405 +#define Consts_SImageIndexError 65406 +#define Consts_SImageReadFail 65407 +#define RTLConsts_SInvalidPropertyPath 65408 +#define RTLConsts_SInvalidPropertyValue 65409 +#define RTLConsts_SInvalidRegType 65410 +#define RTLConsts_SListCapacityError 65411 +#define RTLConsts_SListCountError 65412 +#define RTLConsts_SListIndexError 65413 +#define RTLConsts_SMemoryStreamError 65414 +#define RTLConsts_SPropertyException 65415 +#define RTLConsts_SReadError 65416 +#define RTLConsts_SReadOnlyProperty 65417 +#define RTLConsts_SRegGetDataFailed 65418 +#define RTLConsts_SResNotFound 65419 +#define RTLConsts_SSeekNotImplemented 65420 +#define RTLConsts_SSortedListError 65421 +#define RTLConsts_SUnknownGroup 65422 +#define RTLConsts_SUnknownProperty 65423 +#define ComConst_SNoCloseActiveServer1 65424 +#define ComConst_SNoCloseActiveServer2 65425 +#define RTLConsts_SAncestorNotFound 65426 +#define RTLConsts_SAssignError 65427 +#define RTLConsts_SBitsIndexError 65428 +#define RTLConsts_SCantWriteResourceStreamError 65429 +#define RTLConsts_SCheckSynchronizeError 65430 +#define RTLConsts_SClassNotFound 65431 +#define RTLConsts_SDuplicateClass 65432 +#define RTLConsts_SDuplicateItem 65433 +#define RTLConsts_SDuplicateName 65434 +#define RTLConsts_SDuplicateString 65435 +#define RTLConsts_SFCreateErrorEx 65436 +#define RTLConsts_SFOpenErrorEx 65437 +#define RTLConsts_SInvalidImage 65438 +#define RTLConsts_SInvalidName 65439 +#define SysConst_SShortDayNameWed 65440 +#define SysConst_SShortDayNameThu 65441 +#define SysConst_SShortDayNameFri 65442 +#define SysConst_SShortDayNameSat 65443 +#define SysConst_SLongDayNameSun 65444 +#define SysConst_SLongDayNameMon 65445 +#define SysConst_SLongDayNameTue 65446 +#define SysConst_SLongDayNameWed 65447 +#define SysConst_SLongDayNameThu 65448 +#define SysConst_SLongDayNameFri 65449 +#define SysConst_SLongDayNameSat 65450 +#define ComConst_SOleError 65451 +#define ComConst_SNoMethod 65452 +#define ComConst_SVarNotObject 65453 +#define ComConst_STooManyParams 65454 +#define ComConst_SAutomationWarning 65455 +#define SysConst_SShortMonthNameDec 65456 +#define SysConst_SLongMonthNameJan 65457 +#define SysConst_SLongMonthNameFeb 65458 +#define SysConst_SLongMonthNameMar 65459 +#define SysConst_SLongMonthNameApr 65460 +#define SysConst_SLongMonthNameMay 65461 +#define SysConst_SLongMonthNameJun 65462 +#define SysConst_SLongMonthNameJul 65463 +#define SysConst_SLongMonthNameAug 65464 +#define SysConst_SLongMonthNameSep 65465 +#define SysConst_SLongMonthNameOct 65466 +#define SysConst_SLongMonthNameNov 65467 +#define SysConst_SLongMonthNameDec 65468 +#define SysConst_SShortDayNameSun 65469 +#define SysConst_SShortDayNameMon 65470 +#define SysConst_SShortDayNameTue 65471 +#define SysConst_SAssertError 65472 +#define SysConst_SAbstractError 65473 +#define SysConst_SModuleAccessViolation 65474 +#define SysConst_SOSError 65475 +#define SysConst_SUnkOSError 65476 +#define SysConst_SShortMonthNameJan 65477 +#define SysConst_SShortMonthNameFeb 65478 +#define SysConst_SShortMonthNameMar 65479 +#define SysConst_SShortMonthNameApr 65480 +#define SysConst_SShortMonthNameMay 65481 +#define SysConst_SShortMonthNameJun 65482 +#define SysConst_SShortMonthNameJul 65483 +#define SysConst_SShortMonthNameAug 65484 +#define SysConst_SShortMonthNameSep 65485 +#define SysConst_SShortMonthNameOct 65486 +#define SysConst_SShortMonthNameNov 65487 +#define SysConst_SVarArrayBounds 65488 +#define SysConst_SVarArrayLocked 65489 +#define SysConst_SInvalidVarCast 65490 +#define SysConst_SInvalidVarOp 65491 +#define SysConst_SInvalidVarOpWithHResultWithPrefix 65492 +#define SysConst_SVarTypeCouldNotConvert 65493 +#define SysConst_SVarTypeConvertOverflow 65494 +#define SysConst_SVarOverflow 65495 +#define SysConst_SVarInvalid 65496 +#define SysConst_SVarBadType 65497 +#define SysConst_SVarNotImplemented 65498 +#define SysConst_SVarUnexpected 65499 +#define SysConst_SExternalException 65500 +#define SysConst_SAssertionFailed 65501 +#define SysConst_SIntfCastError 65502 +#define SysConst_SSafecallException 65503 +#define SysConst_SUnderflow 65504 +#define SysConst_SInvalidPointer 65505 +#define SysConst_SInvalidCast 65506 +#define SysConst_SAccessViolationArg3 65507 +#define SysConst_SAccessViolationNoArg 65508 +#define SysConst_SStackOverflow 65509 +#define SysConst_SControlC 65510 +#define SysConst_SPrivilege 65511 +#define SysConst_SException 65512 +#define SysConst_SExceptTitle 65513 +#define SysConst_SInvalidFormat 65514 +#define SysConst_SArgumentMissing 65515 +#define SysConst_SDispatchError 65516 +#define SysConst_SReadAccess 65517 +#define SysConst_SWriteAccess 65518 +#define SysConst_SVarArrayCreate 65519 +#define SysConst_SInvalidInteger 65520 +#define SysConst_SOutOfMemory 65521 +#define SysConst_SInOutError 65522 +#define SysConst_SFileNotFound 65523 +#define SysConst_SInvalidFilename 65524 +#define SysConst_STooManyOpenFiles 65525 +#define SysConst_SAccessDenied 65526 +#define SysConst_SEndOfFile 65527 +#define SysConst_SDiskFull 65528 +#define SysConst_SInvalidInput 65529 +#define SysConst_SDivByZero 65530 +#define SysConst_SRangeError 65531 +#define SysConst_SIntOverflow 65532 +#define SysConst_SInvalidOp 65533 +#define SysConst_SZeroDivide 65534 +#define SysConst_SOverflow 65535 +STRINGTABLE +BEGIN + Consts_SDockZoneHasNoCtl, " - Dock zone has no control" + Consts_SDockZoneVersionConflict, "Error loading dock zone from the stream. Expecting version %d, but found %d." + Consts_SANSIEncoding, "ANSI" + Consts_SASCIIEncoding, "ASCII" + Consts_SUnicodeEncoding, "Unicode" + Consts_SBigEndianEncoding, "Big Endian Unicode" + Consts_SUTF8Encoding, "UTF-8" + Consts_SUTF7Encoding, "UTF-7" + Consts_SmkcEnd, "End" + Consts_SmkcHome, "Home" + Consts_SmkcLeft, "Left" + Consts_SmkcUp, "Up" + Consts_SmkcRight, "Right" + Consts_SmkcDown, "Down" + Consts_SmkcIns, "Ins" + Consts_SmkcDel, "Del" + Consts_SmkcShift, "Shift+" + Consts_SmkcCtrl, "Ctrl+" + Consts_SmkcAlt, "Alt+" + Consts_SIconToClipboard, "Clipboard does not support Icons" + Consts_SDuplicateMenus, "Menu '%s' is already being used by another form" + Consts_SDockedCtlNeedsName, "Docked control must have a name" + Consts_SDockTreeRemoveError, "Error removing control from dock tree" + Consts_SDockZoneNotFound, " - Dock zone not found" + Consts_SMsgDlgOK, "OK" + Consts_SMsgDlgCancel, "Cancel" + Consts_SMsgDlgHelp, "&Help" + Consts_SMsgDlgAbort, "&Abort" + Consts_SMsgDlgRetry, "&Retry" + Consts_SMsgDlgIgnore, "&Ignore" + Consts_SMsgDlgAll, "&All" + Consts_SMsgDlgNoToAll, "N&o to All" + Consts_SMsgDlgYesToAll, "Yes to &All" + Consts_SmkcBkSp, "BkSp" + Consts_SmkcTab, "Tab" + Consts_SmkcEsc, "Esc" + Consts_SmkcEnter, "Enter" + Consts_SmkcSpace, "Space" + Consts_SmkcPgUp, "PgUp" + Consts_SmkcPgDn, "PgDn" + Consts_SCancelButton, "Cancel" + Consts_SYesButton, "&Yes" + Consts_SNoButton, "&No" + Consts_SHelpButton, "&Help" + Consts_SCloseButton, "&Close" + Consts_SIgnoreButton, "&Ignore" + Consts_SRetryButton, "&Retry" + Consts_SAbortButton, "Abort" + Consts_SAllButton, "&All" + Consts_SCannotDragForm, "Cannot drag a form" + Consts_SMsgDlgWarning, "Warning" + Consts_SMsgDlgError, "Error" + Consts_SMsgDlgInformation, "Information" + Consts_SMsgDlgConfirm, "Confirm" + Consts_SMsgDlgYes, "&Yes" + Consts_SMsgDlgNo, "&No" + Consts_SImageWriteFail, "Failed to write ImageList data to stream" + Consts_SWindowDCError, "Error creating window device context" + Consts_SWindowClass, "Error creating window class" + Consts_SCannotFocus, "Cannot focus a disabled or invisible window" + Consts_SParentRequired, "Control '%s' has no parent window" + Consts_SMDIChildNotVisible, "Cannot hide an MDI Child Form" + Consts_SVisibleChanged, "Cannot change Visible in OnShow or OnHide" + Consts_SCannotShowModal, "Cannot make a visible window modal" + Consts_SMenuIndexError, "Menu index out of range" + Consts_SMenuReinserted, "Menu inserted twice" + Consts_SMenuNotFound, "Sub-menu is not in menu" + Consts_SNoTimers, "Not enough timers available" + Consts_SGroupIndexTooLow, "GroupIndex cannot be less than a previous menu item's GroupIndex" + Consts_SNoMDIForm, "Cannot create form. No MDI forms are currently active" + Consts_SControlParentSetToSelf, "A control cannot have itself as its parent" + Consts_SOKButton, "OK" + RTLConsts_SWriteError, "Stream write error" + HelpIntfs_hNoTableOfContents, "Unable to find a Table of Contents" + HelpIntfs_hNothingFound, "No help found for %s" + HelpIntfs_hNoContext, "No context-sensitive help installed" + HelpIntfs_hNoContextFound, "No help found for context" + HelpIntfs_hNoTopics, "No topic-based help system installed" + Consts_SInvalidBitmap, "Bitmap image is not valid" + Consts_SInvalidIcon, "Icon image is not valid" + Consts_SChangeIconSize, "Cannot change the size of an icon" + Consts_SUnknownClipboardFormat, "Unsupported clipboard format" + Consts_SOutOfResources, "Out of system resources" + Consts_SNoCanvasHandle, "Canvas does not allow drawing" + Consts_SInvalidImageSize, "Invalid image size" + Consts_SInvalidImageList, "Invalid ImageList" + Consts_SImageIndexError, "Invalid ImageList Index" + Consts_SImageReadFail, "Failed to read ImageList data from stream" + RTLConsts_SInvalidPropertyPath, "Invalid property path" + RTLConsts_SInvalidPropertyValue, "Invalid property value" + RTLConsts_SInvalidRegType, "Invalid data type for '%s'" + RTLConsts_SListCapacityError, "List capacity out of bounds (%d)" + RTLConsts_SListCountError, "List count out of bounds (%d)" + RTLConsts_SListIndexError, "List index out of bounds (%d)" + RTLConsts_SMemoryStreamError, "Out of memory while expanding memory stream" + RTLConsts_SPropertyException, "Error reading %s%s%s: %s" + RTLConsts_SReadError, "Stream read error" + RTLConsts_SReadOnlyProperty, "Property is read-only" + RTLConsts_SRegGetDataFailed, "Failed to get data for '%s'" + RTLConsts_SResNotFound, "Resource %s not found" + RTLConsts_SSeekNotImplemented, "%s.Seek not implemented" + RTLConsts_SSortedListError, "Operation not allowed on sorted list" + RTLConsts_SUnknownGroup, "%s not in a class registration group" + RTLConsts_SUnknownProperty, "Property %s does not exist" + ComConst_SNoCloseActiveServer1, "There are still active COM objects in this application. One or more clients may have references to these objects, so manually closing " + ComConst_SNoCloseActiveServer2, "this application may cause those client application(s) to fail.\r\n\r\nAre you sure you want to close this application?" + RTLConsts_SAncestorNotFound, "Ancestor for '%s' not found" + RTLConsts_SAssignError, "Cannot assign a %s to a %s" + RTLConsts_SBitsIndexError, "Bits index out of range" + RTLConsts_SCantWriteResourceStreamError, "Can't write to a read-only resource stream" + RTLConsts_SCheckSynchronizeError, "CheckSynchronize called from thread $%x, which is NOT the main thread" + RTLConsts_SClassNotFound, "Class %s not found" + RTLConsts_SDuplicateClass, "A class named %s already exists" + RTLConsts_SDuplicateItem, "List does not allow duplicates ($0%x)" + RTLConsts_SDuplicateName, "A component named %s already exists" + RTLConsts_SDuplicateString, "String list does not allow duplicates" + RTLConsts_SFCreateErrorEx, "Cannot create file \"%s\". %s" + RTLConsts_SFOpenErrorEx, "Cannot open file \"%s\". %s" + RTLConsts_SInvalidImage, "Invalid stream format" + RTLConsts_SInvalidName, "''%s'' is not a valid component name" + SysConst_SShortDayNameWed, "Wed" + SysConst_SShortDayNameThu, "Thu" + SysConst_SShortDayNameFri, "Fri" + SysConst_SShortDayNameSat, "Sat" + SysConst_SLongDayNameSun, "Sunday" + SysConst_SLongDayNameMon, "Monday" + SysConst_SLongDayNameTue, "Tuesday" + SysConst_SLongDayNameWed, "Wednesday" + SysConst_SLongDayNameThu, "Thursday" + SysConst_SLongDayNameFri, "Friday" + SysConst_SLongDayNameSat, "Saturday" + ComConst_SOleError, "OLE error %.8x" + ComConst_SNoMethod, "Method '%s' not supported by automation object" + ComConst_SVarNotObject, "Variant does not reference an automation object" + ComConst_STooManyParams, "Dispatch methods do not support more than 64 parameters" + ComConst_SAutomationWarning, "COM Server Warning" + SysConst_SShortMonthNameDec, "Dec" + SysConst_SLongMonthNameJan, "January" + SysConst_SLongMonthNameFeb, "February" + SysConst_SLongMonthNameMar, "March" + SysConst_SLongMonthNameApr, "April" + SysConst_SLongMonthNameMay, "May" + SysConst_SLongMonthNameJun, "June" + SysConst_SLongMonthNameJul, "July" + SysConst_SLongMonthNameAug, "August" + SysConst_SLongMonthNameSep, "September" + SysConst_SLongMonthNameOct, "October" + SysConst_SLongMonthNameNov, "November" + SysConst_SLongMonthNameDec, "December" + SysConst_SShortDayNameSun, "Sun" + SysConst_SShortDayNameMon, "Mon" + SysConst_SShortDayNameTue, "Tue" + SysConst_SAssertError, "%s (%s, line %d)" + SysConst_SAbstractError, "Abstract Error" + SysConst_SModuleAccessViolation, "Access violation at address %p in module '%s'. %s of address %p" + SysConst_SOSError, "System Error. Code: %d.\r\n%s" + SysConst_SUnkOSError, "A call to an OS function failed" + SysConst_SShortMonthNameJan, "Jan" + SysConst_SShortMonthNameFeb, "Feb" + SysConst_SShortMonthNameMar, "Mar" + SysConst_SShortMonthNameApr, "Apr" + SysConst_SShortMonthNameMay, "May" + SysConst_SShortMonthNameJun, "Jun" + SysConst_SShortMonthNameJul, "Jul" + SysConst_SShortMonthNameAug, "Aug" + SysConst_SShortMonthNameSep, "Sep" + SysConst_SShortMonthNameOct, "Oct" + SysConst_SShortMonthNameNov, "Nov" + SysConst_SVarArrayBounds, "Variant or safe array index out of bounds" + SysConst_SVarArrayLocked, "Variant or safe array is locked" + SysConst_SInvalidVarCast, "Invalid variant type conversion" + SysConst_SInvalidVarOp, "Invalid variant operation" + SysConst_SInvalidVarOpWithHResultWithPrefix, "Invalid variant operation (%s%.8x)\n%s" + SysConst_SVarTypeCouldNotConvert, "Could not convert variant of type (%s) into type (%s)" + SysConst_SVarTypeConvertOverflow, "Overflow while converting variant of type (%s) into type (%s)" + SysConst_SVarOverflow, "Variant overflow" + SysConst_SVarInvalid, "Invalid argument" + SysConst_SVarBadType, "Invalid variant type" + SysConst_SVarNotImplemented, "Operation not supported" + SysConst_SVarUnexpected, "Unexpected variant error" + SysConst_SExternalException, "External exception %x" + SysConst_SAssertionFailed, "Assertion failed" + SysConst_SIntfCastError, "Interface not supported" + SysConst_SSafecallException, "Exception in safecall method" + SysConst_SUnderflow, "Floating point underflow" + SysConst_SInvalidPointer, "Invalid pointer operation" + SysConst_SInvalidCast, "Invalid class typecast" + SysConst_SAccessViolationArg3, "Access violation at address %p. %s of address %p" + SysConst_SAccessViolationNoArg, "Access violation" + SysConst_SStackOverflow, "Stack overflow" + SysConst_SControlC, "Control-C hit" + SysConst_SPrivilege, "Privileged instruction" + SysConst_SException, "Exception %s in module %s at %p.\r\n%s%s\r\n" + SysConst_SExceptTitle, "Application Error" + SysConst_SInvalidFormat, "Format '%s' invalid or incompatible with argument" + SysConst_SArgumentMissing, "No argument for format '%s'" + SysConst_SDispatchError, "Variant method calls not supported" + SysConst_SReadAccess, "Read" + SysConst_SWriteAccess, "Write" + SysConst_SVarArrayCreate, "Error creating variant or safe array" + SysConst_SInvalidInteger, "'%s' is not a valid integer value" + SysConst_SOutOfMemory, "Out of memory" + SysConst_SInOutError, "I/O error %d" + SysConst_SFileNotFound, "File not found" + SysConst_SInvalidFilename, "Invalid filename" + SysConst_STooManyOpenFiles, "Too many open files" + SysConst_SAccessDenied, "File access denied" + SysConst_SEndOfFile, "Read beyond end of file" + SysConst_SDiskFull, "Disk full" + SysConst_SInvalidInput, "Invalid numeric input" + SysConst_SDivByZero, "Division by zero" + SysConst_SRangeError, "Range check error" + SysConst_SIntOverflow, "Integer overflow" + SysConst_SInvalidOp, "Invalid floating point operation" + SysConst_SZeroDivide, "Floating point division by zero" + SysConst_SOverflow, "Floating point overflow" +END + +/* c:\archivos de programa\codegear\rad studio\5.0\lib\Controls.res */ +/* c:\archivos de programa\codegear\rad studio\5.0\lib\Buttons.res */ +/* c:\archivos de programa\codegear\rad studio\5.0\lib\ExtDlgs.res */ +/* C:\Codigo Tecsitel\Database\udfs\udf_RtfToText.RES */ +/* C:\Codigo Tecsitel\Database\udfs\udf_RtfToText.drf */ diff --git a/Database/udfs/udf_RtfToText.res b/Database/udfs/udf_RtfToText.res new file mode 100644 index 0000000..4f90713 Binary files /dev/null and b/Database/udfs/udf_RtfToText.res differ diff --git a/Database/udfs/udf_RtfToText.sql b/Database/udfs/udf_RtfToText.sql new file mode 100644 index 0000000..63ccf15 --- /dev/null +++ b/Database/udfs/udf_RtfToText.sql @@ -0,0 +1,4 @@ +DECLARE EXTERNAL FUNCTION F_RTFTOTEXT + CString(32767) +RETURNS CString(32767) +ENTRY_POINT 'RtfToText' MODULE_NAME 'udf_RtfToText.dll'; \ No newline at end of file diff --git a/Enviroment.config b/Enviroment.config new file mode 100644 index 0000000..c676d66 --- /dev/null +++ b/Enviroment.config @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + diff --git a/Installer/factuges.aup b/Installer/factuges.aup new file mode 100644 index 0000000..b2f70c9 Binary files /dev/null and b/Installer/factuges.aup differ diff --git a/Installer/factuges.iss b/Installer/factuges.iss new file mode 100644 index 0000000..3a915ec --- /dev/null +++ b/Installer/factuges.iss @@ -0,0 +1,62 @@ +[Setup] +AppID={code:GetAppID|''} +AppName=FactuGES2 +AppVerName=FactuGES2 v{code:GetAppVersion} +AppPublisher=Rodax Software S.L. +AppPublisherURL=http://www.rodax-software.com +AppSupportURL=http://www.rodax-software.com +AppUpdatesURL=http://www.rodax-software.com +DefaultDirName={sd}\Rodax Software\FactuGES2 +DefaultGroupName=FactuGES2 +AllowNoIcons=true +OutputDir=Output +OutputBaseFilename=factuges2setup +Compression=lzma +SolidCompression=true +InfoBeforeFile= +InternalCompressLevel=ultra +MinVersion=0,5.01.2600 + +[Languages] +Name: spanish; MessagesFile: compiler:Languages\Spanish.isl + +[Tasks] +Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons} +Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked + +[Files] +Source: Input\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: version.dat +Source: Input\update.ico; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs +Source: Input\version.dat; DestDir: {tmp}; Flags: dontcopy +; NOTE: Don't use "Flags: ignoreversion" on any shared system files + +[Icons] +Name: {group}\FactuGES2; Filename: {app}\FactuGES.exe; WorkingDir: {app} +Name: {userdesktop}\FactuGES2; Filename: {app}\FactuGES.exe; Tasks: desktopicon; WorkingDir: {app}; Languages: +Name: {group}\Comprobar actualizaciones; Filename: {app}\FactuGES.exe; WorkingDir: {app}; Parameters: CheckNow; Comment: Comprobar si hay nuevas actualizaciones de FactuGES2; IconFilename: {app}\update.ico +Name: {group}\{cm:UninstallProgram,FactuGES2}; Filename: {uninstallexe} + +[Run] +Filename: {app}\FactuGES.exe; Description: {cm:LaunchProgram,FactuGES2}; Flags: nowait postinstall skipifsilent + +[Registry] +Root: HKLM; Subkey: Software\Rodax Software; ValueType: string; ValueName: Version; ValueData: {code:GetAppVersion|''}; Flags: uninsdeletekey + +[LangOptions] +LanguageName=Spanish +LanguageID=$0C0A + +[Code] +function GetAppVersion(param: String): String; + var + AppVersion: String; + begin + ExtractTemporaryFile('version.dat'); + LoadStringFromFile(ExpandConstant('{tmp}\version.dat'), AppVersion); + Result := AppVersion; + end; + +function GetAppID(param: String): String; + begin + Result := 'FactuGES2'; + end; diff --git a/Installer/librerias.txt b/Installer/librerias.txt new file mode 100644 index 0000000..1852040 --- /dev/null +++ b/Installer/librerias.txt @@ -0,0 +1,77 @@ +ccpackD11.bpl +cfpack_d11.bpl +cxDataD11.bpl +cxEditorsD11.bpl +cxExportD11.bpl +cxExtEditorsD11.bpl +cxGridD11.bpl +cxIntl6D11.bpl +cxIntlPrintSys3D11.bpl +cxLibraryD11.bpl +cxPageControlD11.bpl +cxTreeListD11.bpl +DataAbstract_Core_D11.bpl +dclcxLibraryD11.bpl +dxBarD11.bpl +dxBarExtItemsD11.bpl +dxComnD11.bpl +dxGDIPlusD11.bpl +dxLayoutControlD11.bpl +dxPSCoreD11.bpl +dxPScxCommonD11.bpl +dxPScxGrid6LnkD11.bpl +dxPSLnksD11.bpl +dxPsPrVwAdvD11.bpl +dxThemeD11.bpl +dxCored11.bpl +frx11.bpl +frxe11.bpl +frxTee11.bpl +fs11.bpl +fsTee11.bpl +GUISDK_D11R.bpl +Jcl110.bpl +JclVcl110.bpl +JSDialog100.bpl +JvAppFrmD11R.bpl +JvCmpD11R.bpl +JvCoreD11R.bpl +JvCtrlsD11R.bpl +JvCustomD11R.bpl +JvDlgsD11R.bpl +JvGlobusD11R.bpl +JvJansD11R.bpl +JvMMD11R.bpl +JvPageCompsD11R.bpl +JvStdCtrlsD11R.bpl +JvSystemD11R.bpl +pckMD5.bpl +pckUCDataConnector.bpl +pckUserControl_RT.bpl +PluginSDK_D11R.bpl +PngComponentsD10.bpl +PNG_D10.bpl +RemObjects_Core_D11.bpl +tb2k_d10.bpl +tbx_d10.bpl + +adortl100.bpl +bdertl100.bpl +dbrtl100.bpl +dclIndyCore100.bpl +designide100.bpl +dsnap100.bpl +IndyCore100.bpl +IndyProtocols100.bpl +IndySystem100.bpl +rtl100.bpl +tee7100.bpl +teeUI7100.bpl +vcl100.bpl +vclactnband100.bpl +vcldb100.bpl +vcljpg100.bpl +vclshlctrls100.bpl +vclsmp100.bpl +vclx100.bpl +xmlrtl100.bpl \ No newline at end of file diff --git a/Resources/Firmas Tecsitel/Fima Tecsitel2.jpg b/Resources/Firmas Tecsitel/Fima Tecsitel2.jpg new file mode 100644 index 0000000..374b836 Binary files /dev/null and b/Resources/Firmas Tecsitel/Fima Tecsitel2.jpg differ diff --git a/Resources/Firmas Tecsitel/Fima Tecsitel2.png b/Resources/Firmas Tecsitel/Fima Tecsitel2.png new file mode 100644 index 0000000..1b720cd Binary files /dev/null and b/Resources/Firmas Tecsitel/Fima Tecsitel2.png differ diff --git a/Resources/Firmas Tecsitel/Firma Tecsitel Mantenimiento.png b/Resources/Firmas Tecsitel/Firma Tecsitel Mantenimiento.png new file mode 100644 index 0000000..bdc58ca Binary files /dev/null and b/Resources/Firmas Tecsitel/Firma Tecsitel Mantenimiento.png differ diff --git a/Resources/Firmas Tecsitel/Firma Tecsitel.png b/Resources/Firmas Tecsitel/Firma Tecsitel.png new file mode 100644 index 0000000..1ab3a30 Binary files /dev/null and b/Resources/Firmas Tecsitel/Firma Tecsitel.png differ diff --git a/Resources/Firmas Tecsitel/Firma-Tecsitel-Mantenimiento.bmp b/Resources/Firmas Tecsitel/Firma-Tecsitel-Mantenimiento.bmp new file mode 100644 index 0000000..26bfe69 Binary files /dev/null and b/Resources/Firmas Tecsitel/Firma-Tecsitel-Mantenimiento.bmp differ diff --git a/Resources/Firmas Tecsitel/Firma-Tecsitel-Mantenimiento.gif b/Resources/Firmas Tecsitel/Firma-Tecsitel-Mantenimiento.gif new file mode 100644 index 0000000..f3dbe04 Binary files /dev/null and b/Resources/Firmas Tecsitel/Firma-Tecsitel-Mantenimiento.gif differ diff --git a/Resources/Firmas Tecsitel/Firma-Tecsitel-Mantenimiento.jpg b/Resources/Firmas Tecsitel/Firma-Tecsitel-Mantenimiento.jpg new file mode 100644 index 0000000..e5b8e8e Binary files /dev/null and b/Resources/Firmas Tecsitel/Firma-Tecsitel-Mantenimiento.jpg differ diff --git a/Resources/Firmas Tecsitel/Firma-Tecsitel.gif b/Resources/Firmas Tecsitel/Firma-Tecsitel.gif new file mode 100644 index 0000000..7912bff Binary files /dev/null and b/Resources/Firmas Tecsitel/Firma-Tecsitel.gif differ diff --git a/Resources/Iconos/Agenda/16x16/Date-Time.png b/Resources/Iconos/Agenda/16x16/Date-Time.png new file mode 100644 index 0000000..fe95a0f Binary files /dev/null and b/Resources/Iconos/Agenda/16x16/Date-Time.png differ diff --git a/Resources/Iconos/Agenda/24x24/Date-Time.png b/Resources/Iconos/Agenda/24x24/Date-Time.png new file mode 100644 index 0000000..665b7ac Binary files /dev/null and b/Resources/Iconos/Agenda/24x24/Date-Time.png differ diff --git a/Resources/Iconos/Agenda/28x28/Date-Time.png b/Resources/Iconos/Agenda/28x28/Date-Time.png new file mode 100644 index 0000000..90f2320 Binary files /dev/null and b/Resources/Iconos/Agenda/28x28/Date-Time.png differ diff --git a/Resources/Iconos/Albaranes de cliente/16x16/Budget.png b/Resources/Iconos/Albaranes de cliente/16x16/Budget.png new file mode 100644 index 0000000..74922f8 Binary files /dev/null and b/Resources/Iconos/Albaranes de cliente/16x16/Budget.png differ diff --git a/Resources/Iconos/Albaranes de cliente/16x16/Devolucion.png b/Resources/Iconos/Albaranes de cliente/16x16/Devolucion.png new file mode 100644 index 0000000..404988d Binary files /dev/null and b/Resources/Iconos/Albaranes de cliente/16x16/Devolucion.png differ diff --git a/Resources/Iconos/Albaranes de cliente/16x16/Letters patent.png b/Resources/Iconos/Albaranes de cliente/16x16/Letters patent.png new file mode 100644 index 0000000..2a70568 Binary files /dev/null and b/Resources/Iconos/Albaranes de cliente/16x16/Letters patent.png differ diff --git a/Resources/Iconos/Albaranes de cliente/16x16/pagado.png b/Resources/Iconos/Albaranes de cliente/16x16/pagado.png new file mode 100644 index 0000000..274231a Binary files /dev/null and b/Resources/Iconos/Albaranes de cliente/16x16/pagado.png differ diff --git a/Resources/Iconos/Albaranes de cliente/24x24/Budget.png b/Resources/Iconos/Albaranes de cliente/24x24/Budget.png new file mode 100644 index 0000000..da50997 Binary files /dev/null and b/Resources/Iconos/Albaranes de cliente/24x24/Budget.png differ diff --git a/Resources/Iconos/Albaranes de cliente/24x24/Devolucion.png b/Resources/Iconos/Albaranes de cliente/24x24/Devolucion.png new file mode 100644 index 0000000..37a1fcd Binary files /dev/null and b/Resources/Iconos/Albaranes de cliente/24x24/Devolucion.png differ diff --git a/Resources/Iconos/Albaranes de cliente/24x24/Letters patent.png b/Resources/Iconos/Albaranes de cliente/24x24/Letters patent.png new file mode 100644 index 0000000..f82a076 Binary files /dev/null and b/Resources/Iconos/Albaranes de cliente/24x24/Letters patent.png differ diff --git a/Resources/Iconos/Albaranes de cliente/28x28/Budget.png b/Resources/Iconos/Albaranes de cliente/28x28/Budget.png new file mode 100644 index 0000000..ff77e52 Binary files /dev/null and b/Resources/Iconos/Albaranes de cliente/28x28/Budget.png differ diff --git a/Resources/Iconos/Albaranes de cliente/28x28/Devolucion.png b/Resources/Iconos/Albaranes de cliente/28x28/Devolucion.png new file mode 100644 index 0000000..ba56ab7 Binary files /dev/null and b/Resources/Iconos/Albaranes de cliente/28x28/Devolucion.png differ diff --git a/Resources/Iconos/Albaranes de cliente/28x28/Letters patent.png b/Resources/Iconos/Albaranes de cliente/28x28/Letters patent.png new file mode 100644 index 0000000..4b30b6f Binary files /dev/null and b/Resources/Iconos/Albaranes de cliente/28x28/Letters patent.png differ diff --git a/Resources/Iconos/Albaranes de proveedor/16x16/Budget.png b/Resources/Iconos/Albaranes de proveedor/16x16/Budget.png new file mode 100644 index 0000000..74922f8 Binary files /dev/null and b/Resources/Iconos/Albaranes de proveedor/16x16/Budget.png differ diff --git a/Resources/Iconos/Albaranes de proveedor/16x16/Devolucion.png b/Resources/Iconos/Albaranes de proveedor/16x16/Devolucion.png new file mode 100644 index 0000000..404988d Binary files /dev/null and b/Resources/Iconos/Albaranes de proveedor/16x16/Devolucion.png differ diff --git a/Resources/Iconos/Albaranes de proveedor/24x24/Budget.png b/Resources/Iconos/Albaranes de proveedor/24x24/Budget.png new file mode 100644 index 0000000..da50997 Binary files /dev/null and b/Resources/Iconos/Albaranes de proveedor/24x24/Budget.png differ diff --git a/Resources/Iconos/Albaranes de proveedor/24x24/Devolucion.png b/Resources/Iconos/Albaranes de proveedor/24x24/Devolucion.png new file mode 100644 index 0000000..37a1fcd Binary files /dev/null and b/Resources/Iconos/Albaranes de proveedor/24x24/Devolucion.png differ diff --git a/Resources/Iconos/Albaranes de proveedor/28x28/Budget.png b/Resources/Iconos/Albaranes de proveedor/28x28/Budget.png new file mode 100644 index 0000000..ff77e52 Binary files /dev/null and b/Resources/Iconos/Albaranes de proveedor/28x28/Budget.png differ diff --git a/Resources/Iconos/Albaranes de proveedor/28x28/Devolucion.png b/Resources/Iconos/Albaranes de proveedor/28x28/Devolucion.png new file mode 100644 index 0000000..ba56ab7 Binary files /dev/null and b/Resources/Iconos/Albaranes de proveedor/28x28/Devolucion.png differ diff --git a/Resources/Iconos/Almacenes/16x16/Box-Closed-2.png b/Resources/Iconos/Almacenes/16x16/Box-Closed-2.png new file mode 100644 index 0000000..35c88b2 Binary files /dev/null and b/Resources/Iconos/Almacenes/16x16/Box-Closed-2.png differ diff --git a/Resources/Iconos/Almacenes/16x16/nuevoalmacen.png b/Resources/Iconos/Almacenes/16x16/nuevoalmacen.png new file mode 100644 index 0000000..0d7d5b8 Binary files /dev/null and b/Resources/Iconos/Almacenes/16x16/nuevoalmacen.png differ diff --git a/Resources/Iconos/Almacenes/24x24/Box-Closed-2.png b/Resources/Iconos/Almacenes/24x24/Box-Closed-2.png new file mode 100644 index 0000000..7aeec56 Binary files /dev/null and b/Resources/Iconos/Almacenes/24x24/Box-Closed-2.png differ diff --git a/Resources/Iconos/Almacenes/24x24/nuevoalmacen.png b/Resources/Iconos/Almacenes/24x24/nuevoalmacen.png new file mode 100644 index 0000000..1ddabab Binary files /dev/null and b/Resources/Iconos/Almacenes/24x24/nuevoalmacen.png differ diff --git a/Resources/Iconos/Almacenes/28x28/Box-Closed-2.png b/Resources/Iconos/Almacenes/28x28/Box-Closed-2.png new file mode 100644 index 0000000..89db7f4 Binary files /dev/null and b/Resources/Iconos/Almacenes/28x28/Box-Closed-2.png differ diff --git a/Resources/Iconos/Artículos/16x16/Image.png b/Resources/Iconos/Artículos/16x16/Image.png new file mode 100644 index 0000000..1c2bd1b Binary files /dev/null and b/Resources/Iconos/Artículos/16x16/Image.png differ diff --git a/Resources/Iconos/Artículos/16x16/Insert.png b/Resources/Iconos/Artículos/16x16/Insert.png new file mode 100644 index 0000000..a6dde0f Binary files /dev/null and b/Resources/Iconos/Artículos/16x16/Insert.png differ diff --git a/Resources/Iconos/Artículos/16x16/Note-Edit.png b/Resources/Iconos/Artículos/16x16/Note-Edit.png new file mode 100644 index 0000000..ae68288 Binary files /dev/null and b/Resources/Iconos/Artículos/16x16/Note-Edit.png differ diff --git a/Resources/Iconos/Artículos/16x16/Remove.png b/Resources/Iconos/Artículos/16x16/Remove.png new file mode 100644 index 0000000..332ae88 Binary files /dev/null and b/Resources/Iconos/Artículos/16x16/Remove.png differ diff --git a/Resources/Iconos/Artículos/16x16/Swap.png b/Resources/Iconos/Artículos/16x16/Swap.png new file mode 100644 index 0000000..bf54e00 Binary files /dev/null and b/Resources/Iconos/Artículos/16x16/Swap.png differ diff --git a/Resources/Iconos/Artículos/16x16/articulos.png b/Resources/Iconos/Artículos/16x16/articulos.png new file mode 100644 index 0000000..acbaca9 Binary files /dev/null and b/Resources/Iconos/Artículos/16x16/articulos.png differ diff --git a/Resources/Iconos/Artículos/16x16/comisionable.png b/Resources/Iconos/Artículos/16x16/comisionable.png new file mode 100644 index 0000000..0b5765e Binary files /dev/null and b/Resources/Iconos/Artículos/16x16/comisionable.png differ diff --git a/Resources/Iconos/Artículos/16x16/liberar.png b/Resources/Iconos/Artículos/16x16/liberar.png new file mode 100644 index 0000000..0f05e97 Binary files /dev/null and b/Resources/Iconos/Artículos/16x16/liberar.png differ diff --git a/Resources/Iconos/Artículos/16x16/no_comisionable.png b/Resources/Iconos/Artículos/16x16/no_comisionable.png new file mode 100644 index 0000000..187e6ad Binary files /dev/null and b/Resources/Iconos/Artículos/16x16/no_comisionable.png differ diff --git a/Resources/Iconos/Artículos/16x16/recibirpedido.png b/Resources/Iconos/Artículos/16x16/recibirpedido.png new file mode 100644 index 0000000..8d0db7f Binary files /dev/null and b/Resources/Iconos/Artículos/16x16/recibirpedido.png differ diff --git a/Resources/Iconos/Artículos/16x16/reservar.png b/Resources/Iconos/Artículos/16x16/reservar.png new file mode 100644 index 0000000..475c2f8 Binary files /dev/null and b/Resources/Iconos/Artículos/16x16/reservar.png differ diff --git a/Resources/Iconos/Artículos/24x24/Image.png b/Resources/Iconos/Artículos/24x24/Image.png new file mode 100644 index 0000000..e7e2e3a Binary files /dev/null and b/Resources/Iconos/Artículos/24x24/Image.png differ diff --git a/Resources/Iconos/Artículos/24x24/Insert.png b/Resources/Iconos/Artículos/24x24/Insert.png new file mode 100644 index 0000000..55fa057 Binary files /dev/null and b/Resources/Iconos/Artículos/24x24/Insert.png differ diff --git a/Resources/Iconos/Artículos/24x24/Note-Edit.png b/Resources/Iconos/Artículos/24x24/Note-Edit.png new file mode 100644 index 0000000..639ffa6 Binary files /dev/null and b/Resources/Iconos/Artículos/24x24/Note-Edit.png differ diff --git a/Resources/Iconos/Artículos/24x24/Remove.png b/Resources/Iconos/Artículos/24x24/Remove.png new file mode 100644 index 0000000..96872cd Binary files /dev/null and b/Resources/Iconos/Artículos/24x24/Remove.png differ diff --git a/Resources/Iconos/Artículos/24x24/Swap.png b/Resources/Iconos/Artículos/24x24/Swap.png new file mode 100644 index 0000000..12cece4 Binary files /dev/null and b/Resources/Iconos/Artículos/24x24/Swap.png differ diff --git a/Resources/Iconos/Artículos/24x24/articulos.png b/Resources/Iconos/Artículos/24x24/articulos.png new file mode 100644 index 0000000..c638dfe Binary files /dev/null and b/Resources/Iconos/Artículos/24x24/articulos.png differ diff --git a/Resources/Iconos/Artículos/24x24/liberar.png b/Resources/Iconos/Artículos/24x24/liberar.png new file mode 100644 index 0000000..40be139 Binary files /dev/null and b/Resources/Iconos/Artículos/24x24/liberar.png differ diff --git a/Resources/Iconos/Artículos/24x24/recibirpedido.png b/Resources/Iconos/Artículos/24x24/recibirpedido.png new file mode 100644 index 0000000..87a39a0 Binary files /dev/null and b/Resources/Iconos/Artículos/24x24/recibirpedido.png differ diff --git a/Resources/Iconos/Artículos/24x24/reservar.png b/Resources/Iconos/Artículos/24x24/reservar.png new file mode 100644 index 0000000..a380fe5 Binary files /dev/null and b/Resources/Iconos/Artículos/24x24/reservar.png differ diff --git a/Resources/Iconos/Artículos/28x28/Image.png b/Resources/Iconos/Artículos/28x28/Image.png new file mode 100644 index 0000000..08988ff Binary files /dev/null and b/Resources/Iconos/Artículos/28x28/Image.png differ diff --git a/Resources/Iconos/Artículos/28x28/Insert.png b/Resources/Iconos/Artículos/28x28/Insert.png new file mode 100644 index 0000000..1cf6ee4 Binary files /dev/null and b/Resources/Iconos/Artículos/28x28/Insert.png differ diff --git a/Resources/Iconos/Artículos/28x28/Note-Edit.png b/Resources/Iconos/Artículos/28x28/Note-Edit.png new file mode 100644 index 0000000..c30be68 Binary files /dev/null and b/Resources/Iconos/Artículos/28x28/Note-Edit.png differ diff --git a/Resources/Iconos/Artículos/28x28/Remove.png b/Resources/Iconos/Artículos/28x28/Remove.png new file mode 100644 index 0000000..f4f4bb2 Binary files /dev/null and b/Resources/Iconos/Artículos/28x28/Remove.png differ diff --git a/Resources/Iconos/Artículos/28x28/Swap.png b/Resources/Iconos/Artículos/28x28/Swap.png new file mode 100644 index 0000000..2e23a78 Binary files /dev/null and b/Resources/Iconos/Artículos/28x28/Swap.png differ diff --git a/Resources/Iconos/Artículos/28x28/articulos.png b/Resources/Iconos/Artículos/28x28/articulos.png new file mode 100644 index 0000000..95147f2 Binary files /dev/null and b/Resources/Iconos/Artículos/28x28/articulos.png differ diff --git a/Resources/Iconos/Artículos/28x28/liberar.png b/Resources/Iconos/Artículos/28x28/liberar.png new file mode 100644 index 0000000..bd5c233 Binary files /dev/null and b/Resources/Iconos/Artículos/28x28/liberar.png differ diff --git a/Resources/Iconos/Artículos/28x28/recibirpedido.png b/Resources/Iconos/Artículos/28x28/recibirpedido.png new file mode 100644 index 0000000..15c5985 Binary files /dev/null and b/Resources/Iconos/Artículos/28x28/recibirpedido.png differ diff --git a/Resources/Iconos/Artículos/28x28/reservar.png b/Resources/Iconos/Artículos/28x28/reservar.png new file mode 100644 index 0000000..06ba9c5 Binary files /dev/null and b/Resources/Iconos/Artículos/28x28/reservar.png differ diff --git a/Resources/Iconos/Asientos/16x16/Cerrar.png b/Resources/Iconos/Asientos/16x16/Cerrar.png new file mode 100644 index 0000000..e0a2644 Binary files /dev/null and b/Resources/Iconos/Asientos/16x16/Cerrar.png differ diff --git a/Resources/Iconos/Asientos/16x16/Tick.png b/Resources/Iconos/Asientos/16x16/Tick.png new file mode 100644 index 0000000..5d813a4 Binary files /dev/null and b/Resources/Iconos/Asientos/16x16/Tick.png differ diff --git a/Resources/Iconos/Asientos/24x24/Cerrar.png b/Resources/Iconos/Asientos/24x24/Cerrar.png new file mode 100644 index 0000000..f421f36 Binary files /dev/null and b/Resources/Iconos/Asientos/24x24/Cerrar.png differ diff --git a/Resources/Iconos/Asientos/24x24/Tick.png b/Resources/Iconos/Asientos/24x24/Tick.png new file mode 100644 index 0000000..8712680 Binary files /dev/null and b/Resources/Iconos/Asientos/24x24/Tick.png differ diff --git a/Resources/Iconos/Asientos/28x28/Cerrar.png b/Resources/Iconos/Asientos/28x28/Cerrar.png new file mode 100644 index 0000000..f690bb7 Binary files /dev/null and b/Resources/Iconos/Asientos/28x28/Cerrar.png differ diff --git a/Resources/Iconos/Asientos/28x28/Tick.png b/Resources/Iconos/Asientos/28x28/Tick.png new file mode 100644 index 0000000..293b401 Binary files /dev/null and b/Resources/Iconos/Asientos/28x28/Tick.png differ diff --git a/Resources/Iconos/Contactos/16x16/Box-Open-2.png b/Resources/Iconos/Contactos/16x16/Box-Open-2.png new file mode 100644 index 0000000..8e30418 Binary files /dev/null and b/Resources/Iconos/Contactos/16x16/Box-Open-2.png differ diff --git a/Resources/Iconos/Contactos/16x16/Comisiones.png b/Resources/Iconos/Contactos/16x16/Comisiones.png new file mode 100644 index 0000000..ce0f628 Binary files /dev/null and b/Resources/Iconos/Contactos/16x16/Comisiones.png differ diff --git a/Resources/Iconos/Contactos/16x16/Contact-Add.png b/Resources/Iconos/Contactos/16x16/Contact-Add.png new file mode 100644 index 0000000..28bd71c Binary files /dev/null and b/Resources/Iconos/Contactos/16x16/Contact-Add.png differ diff --git a/Resources/Iconos/Contactos/16x16/Contact-Edit.png b/Resources/Iconos/Contactos/16x16/Contact-Edit.png new file mode 100644 index 0000000..c413b8b Binary files /dev/null and b/Resources/Iconos/Contactos/16x16/Contact-Edit.png differ diff --git a/Resources/Iconos/Contactos/16x16/Contact.png b/Resources/Iconos/Contactos/16x16/Contact.png new file mode 100644 index 0000000..00e503f Binary files /dev/null and b/Resources/Iconos/Contactos/16x16/Contact.png differ diff --git a/Resources/Iconos/Contactos/16x16/Contact2.png b/Resources/Iconos/Contactos/16x16/Contact2.png new file mode 100644 index 0000000..c005eb1 Binary files /dev/null and b/Resources/Iconos/Contactos/16x16/Contact2.png differ diff --git a/Resources/Iconos/Contactos/16x16/Contact3.png b/Resources/Iconos/Contactos/16x16/Contact3.png new file mode 100644 index 0000000..38b7fcd Binary files /dev/null and b/Resources/Iconos/Contactos/16x16/Contact3.png differ diff --git a/Resources/Iconos/Contactos/16x16/Contact4.png b/Resources/Iconos/Contactos/16x16/Contact4.png new file mode 100644 index 0000000..0c12c3d Binary files /dev/null and b/Resources/Iconos/Contactos/16x16/Contact4.png differ diff --git a/Resources/Iconos/Contactos/16x16/Currency.png b/Resources/Iconos/Contactos/16x16/Currency.png new file mode 100644 index 0000000..5ecaee8 Binary files /dev/null and b/Resources/Iconos/Contactos/16x16/Currency.png differ diff --git a/Resources/Iconos/Contactos/16x16/Flag.png b/Resources/Iconos/Contactos/16x16/Flag.png new file mode 100644 index 0000000..6098bfc Binary files /dev/null and b/Resources/Iconos/Contactos/16x16/Flag.png differ diff --git a/Resources/Iconos/Contactos/16x16/Internet.png b/Resources/Iconos/Contactos/16x16/Internet.png new file mode 100644 index 0000000..1e96cc5 Binary files /dev/null and b/Resources/Iconos/Contactos/16x16/Internet.png differ diff --git a/Resources/Iconos/Contactos/16x16/Letter.png b/Resources/Iconos/Contactos/16x16/Letter.png new file mode 100644 index 0000000..f0a2284 Binary files /dev/null and b/Resources/Iconos/Contactos/16x16/Letter.png differ diff --git a/Resources/Iconos/Contactos/16x16/Lock.png b/Resources/Iconos/Contactos/16x16/Lock.png new file mode 100644 index 0000000..5b24300 Binary files /dev/null and b/Resources/Iconos/Contactos/16x16/Lock.png differ diff --git a/Resources/Iconos/Contactos/16x16/Mail.png b/Resources/Iconos/Contactos/16x16/Mail.png new file mode 100644 index 0000000..640a388 Binary files /dev/null and b/Resources/Iconos/Contactos/16x16/Mail.png differ diff --git a/Resources/Iconos/Contactos/16x16/Proveedor-Add.png b/Resources/Iconos/Contactos/16x16/Proveedor-Add.png new file mode 100644 index 0000000..102e341 Binary files /dev/null and b/Resources/Iconos/Contactos/16x16/Proveedor-Add.png differ diff --git a/Resources/Iconos/Contactos/16x16/Thumbs.db b/Resources/Iconos/Contactos/16x16/Thumbs.db new file mode 100644 index 0000000..0db3072 Binary files /dev/null and b/Resources/Iconos/Contactos/16x16/Thumbs.db differ diff --git a/Resources/Iconos/Contactos/16x16/Unlock.png b/Resources/Iconos/Contactos/16x16/Unlock.png new file mode 100644 index 0000000..74c6a48 Binary files /dev/null and b/Resources/Iconos/Contactos/16x16/Unlock.png differ diff --git a/Resources/Iconos/Contactos/16x16/User.png b/Resources/Iconos/Contactos/16x16/User.png new file mode 100644 index 0000000..ee6f2a7 Binary files /dev/null and b/Resources/Iconos/Contactos/16x16/User.png differ diff --git a/Resources/Iconos/Contactos/16x16/User2.png b/Resources/Iconos/Contactos/16x16/User2.png new file mode 100644 index 0000000..3b33831 Binary files /dev/null and b/Resources/Iconos/Contactos/16x16/User2.png differ diff --git a/Resources/Iconos/Contactos/16x16/User3.png b/Resources/Iconos/Contactos/16x16/User3.png new file mode 100644 index 0000000..6a5b5ce Binary files /dev/null and b/Resources/Iconos/Contactos/16x16/User3.png differ diff --git a/Resources/Iconos/Contactos/16x16/User4.png b/Resources/Iconos/Contactos/16x16/User4.png new file mode 100644 index 0000000..d501e3a Binary files /dev/null and b/Resources/Iconos/Contactos/16x16/User4.png differ diff --git a/Resources/Iconos/Contactos/16x16/cliente bloqueado.png b/Resources/Iconos/Contactos/16x16/cliente bloqueado.png new file mode 100644 index 0000000..a6c6fac Binary files /dev/null and b/Resources/Iconos/Contactos/16x16/cliente bloqueado.png differ diff --git a/Resources/Iconos/Contactos/16x16/grupos.png b/Resources/Iconos/Contactos/16x16/grupos.png new file mode 100644 index 0000000..5238f9b Binary files /dev/null and b/Resources/Iconos/Contactos/16x16/grupos.png differ diff --git a/Resources/Iconos/Contactos/16x16/proveedor homologado.png b/Resources/Iconos/Contactos/16x16/proveedor homologado.png new file mode 100644 index 0000000..792bc30 Binary files /dev/null and b/Resources/Iconos/Contactos/16x16/proveedor homologado.png differ diff --git a/Resources/Iconos/Contactos/24x24/Box-Open-2.png b/Resources/Iconos/Contactos/24x24/Box-Open-2.png new file mode 100644 index 0000000..9959446 Binary files /dev/null and b/Resources/Iconos/Contactos/24x24/Box-Open-2.png differ diff --git a/Resources/Iconos/Contactos/24x24/Comisiones.png b/Resources/Iconos/Contactos/24x24/Comisiones.png new file mode 100644 index 0000000..f0be9b4 Binary files /dev/null and b/Resources/Iconos/Contactos/24x24/Comisiones.png differ diff --git a/Resources/Iconos/Contactos/24x24/Contact-Add.png b/Resources/Iconos/Contactos/24x24/Contact-Add.png new file mode 100644 index 0000000..5aefd12 Binary files /dev/null and b/Resources/Iconos/Contactos/24x24/Contact-Add.png differ diff --git a/Resources/Iconos/Contactos/24x24/Contact-Edit.png b/Resources/Iconos/Contactos/24x24/Contact-Edit.png new file mode 100644 index 0000000..4ab8651 Binary files /dev/null and b/Resources/Iconos/Contactos/24x24/Contact-Edit.png differ diff --git a/Resources/Iconos/Contactos/24x24/Contact.png b/Resources/Iconos/Contactos/24x24/Contact.png new file mode 100644 index 0000000..3272bfd Binary files /dev/null and b/Resources/Iconos/Contactos/24x24/Contact.png differ diff --git a/Resources/Iconos/Contactos/24x24/Contact2.png b/Resources/Iconos/Contactos/24x24/Contact2.png new file mode 100644 index 0000000..4a64469 Binary files /dev/null and b/Resources/Iconos/Contactos/24x24/Contact2.png differ diff --git a/Resources/Iconos/Contactos/24x24/Contact3.png b/Resources/Iconos/Contactos/24x24/Contact3.png new file mode 100644 index 0000000..8fdf023 Binary files /dev/null and b/Resources/Iconos/Contactos/24x24/Contact3.png differ diff --git a/Resources/Iconos/Contactos/24x24/Contact4.png b/Resources/Iconos/Contactos/24x24/Contact4.png new file mode 100644 index 0000000..b9b58b3 Binary files /dev/null and b/Resources/Iconos/Contactos/24x24/Contact4.png differ diff --git a/Resources/Iconos/Contactos/24x24/Currency.png b/Resources/Iconos/Contactos/24x24/Currency.png new file mode 100644 index 0000000..af28329 Binary files /dev/null and b/Resources/Iconos/Contactos/24x24/Currency.png differ diff --git a/Resources/Iconos/Contactos/24x24/Lock.png b/Resources/Iconos/Contactos/24x24/Lock.png new file mode 100644 index 0000000..546a3cb Binary files /dev/null and b/Resources/Iconos/Contactos/24x24/Lock.png differ diff --git a/Resources/Iconos/Contactos/24x24/Thumbs.db b/Resources/Iconos/Contactos/24x24/Thumbs.db new file mode 100644 index 0000000..0ccb79c Binary files /dev/null and b/Resources/Iconos/Contactos/24x24/Thumbs.db differ diff --git a/Resources/Iconos/Contactos/24x24/Unlock.png b/Resources/Iconos/Contactos/24x24/Unlock.png new file mode 100644 index 0000000..6fb233f Binary files /dev/null and b/Resources/Iconos/Contactos/24x24/Unlock.png differ diff --git a/Resources/Iconos/Contactos/24x24/grupos.png b/Resources/Iconos/Contactos/24x24/grupos.png new file mode 100644 index 0000000..d23ba6e Binary files /dev/null and b/Resources/Iconos/Contactos/24x24/grupos.png differ diff --git a/Resources/Iconos/Contactos/28x28/Box-Open-2.png b/Resources/Iconos/Contactos/28x28/Box-Open-2.png new file mode 100644 index 0000000..e88310c Binary files /dev/null and b/Resources/Iconos/Contactos/28x28/Box-Open-2.png differ diff --git a/Resources/Iconos/Contactos/28x28/Currency.png b/Resources/Iconos/Contactos/28x28/Currency.png new file mode 100644 index 0000000..0d7259c Binary files /dev/null and b/Resources/Iconos/Contactos/28x28/Currency.png differ diff --git a/Resources/Iconos/Contactos/28x28/Lock.png b/Resources/Iconos/Contactos/28x28/Lock.png new file mode 100644 index 0000000..079d7c5 Binary files /dev/null and b/Resources/Iconos/Contactos/28x28/Lock.png differ diff --git a/Resources/Iconos/Contactos/28x28/Thumbs.db b/Resources/Iconos/Contactos/28x28/Thumbs.db new file mode 100644 index 0000000..2240279 Binary files /dev/null and b/Resources/Iconos/Contactos/28x28/Thumbs.db differ diff --git a/Resources/Iconos/Contactos/28x28/Unlock.png b/Resources/Iconos/Contactos/28x28/Unlock.png new file mode 100644 index 0000000..6ef3e1b Binary files /dev/null and b/Resources/Iconos/Contactos/28x28/Unlock.png differ diff --git a/Resources/Iconos/Contactos/28x28/grupos.png b/Resources/Iconos/Contactos/28x28/grupos.png new file mode 100644 index 0000000..5dcccce Binary files /dev/null and b/Resources/Iconos/Contactos/28x28/grupos.png differ diff --git a/Resources/Iconos/Cuentas/16x16/Book-Open.png b/Resources/Iconos/Cuentas/16x16/Book-Open.png new file mode 100644 index 0000000..8311378 Binary files /dev/null and b/Resources/Iconos/Cuentas/16x16/Book-Open.png differ diff --git a/Resources/Iconos/Cuentas/16x16/Books.png b/Resources/Iconos/Cuentas/16x16/Books.png new file mode 100644 index 0000000..eaf0f6d Binary files /dev/null and b/Resources/Iconos/Cuentas/16x16/Books.png differ diff --git a/Resources/Iconos/Cuentas/24x24/Book-Open.png b/Resources/Iconos/Cuentas/24x24/Book-Open.png new file mode 100644 index 0000000..e6c602e Binary files /dev/null and b/Resources/Iconos/Cuentas/24x24/Book-Open.png differ diff --git a/Resources/Iconos/Cuentas/24x24/Books.png b/Resources/Iconos/Cuentas/24x24/Books.png new file mode 100644 index 0000000..a845dfc Binary files /dev/null and b/Resources/Iconos/Cuentas/24x24/Books.png differ diff --git a/Resources/Iconos/Cuentas/28x28/Book-Open.png b/Resources/Iconos/Cuentas/28x28/Book-Open.png new file mode 100644 index 0000000..d7efe07 Binary files /dev/null and b/Resources/Iconos/Cuentas/28x28/Book-Open.png differ diff --git a/Resources/Iconos/Cuentas/28x28/Books.png b/Resources/Iconos/Cuentas/28x28/Books.png new file mode 100644 index 0000000..64136d3 Binary files /dev/null and b/Resources/Iconos/Cuentas/28x28/Books.png differ diff --git a/Resources/Iconos/Documentos/16x16/PowerPoint.png b/Resources/Iconos/Documentos/16x16/PowerPoint.png new file mode 100644 index 0000000..e5e28ff Binary files /dev/null and b/Resources/Iconos/Documentos/16x16/PowerPoint.png differ diff --git a/Resources/Iconos/Documentos/16x16/access.png b/Resources/Iconos/Documentos/16x16/access.png new file mode 100644 index 0000000..e98d43f Binary files /dev/null and b/Resources/Iconos/Documentos/16x16/access.png differ diff --git a/Resources/Iconos/Documentos/16x16/excel.png b/Resources/Iconos/Documentos/16x16/excel.png new file mode 100644 index 0000000..916a721 Binary files /dev/null and b/Resources/Iconos/Documentos/16x16/excel.png differ diff --git a/Resources/Iconos/Documentos/16x16/generico.png b/Resources/Iconos/Documentos/16x16/generico.png new file mode 100644 index 0000000..3d5d0b1 Binary files /dev/null and b/Resources/Iconos/Documentos/16x16/generico.png differ diff --git a/Resources/Iconos/Documentos/16x16/imagen.png b/Resources/Iconos/Documentos/16x16/imagen.png new file mode 100644 index 0000000..381e8a4 Binary files /dev/null and b/Resources/Iconos/Documentos/16x16/imagen.png differ diff --git a/Resources/Iconos/Documentos/16x16/pdf.png b/Resources/Iconos/Documentos/16x16/pdf.png new file mode 100644 index 0000000..0edaa8b Binary files /dev/null and b/Resources/Iconos/Documentos/16x16/pdf.png differ diff --git a/Resources/Iconos/Documentos/16x16/txt.png b/Resources/Iconos/Documentos/16x16/txt.png new file mode 100644 index 0000000..735aab7 Binary files /dev/null and b/Resources/Iconos/Documentos/16x16/txt.png differ diff --git a/Resources/Iconos/Documentos/16x16/word.png b/Resources/Iconos/Documentos/16x16/word.png new file mode 100644 index 0000000..5daa184 Binary files /dev/null and b/Resources/Iconos/Documentos/16x16/word.png differ diff --git a/Resources/Iconos/Documentos/24x24/PowerPoint.png b/Resources/Iconos/Documentos/24x24/PowerPoint.png new file mode 100644 index 0000000..3701d26 Binary files /dev/null and b/Resources/Iconos/Documentos/24x24/PowerPoint.png differ diff --git a/Resources/Iconos/Documentos/24x24/access.png b/Resources/Iconos/Documentos/24x24/access.png new file mode 100644 index 0000000..4b009df Binary files /dev/null and b/Resources/Iconos/Documentos/24x24/access.png differ diff --git a/Resources/Iconos/Documentos/24x24/excel.png b/Resources/Iconos/Documentos/24x24/excel.png new file mode 100644 index 0000000..5d41bf8 Binary files /dev/null and b/Resources/Iconos/Documentos/24x24/excel.png differ diff --git a/Resources/Iconos/Documentos/24x24/generico.png b/Resources/Iconos/Documentos/24x24/generico.png new file mode 100644 index 0000000..cbe63ff Binary files /dev/null and b/Resources/Iconos/Documentos/24x24/generico.png differ diff --git a/Resources/Iconos/Documentos/24x24/imagen.png b/Resources/Iconos/Documentos/24x24/imagen.png new file mode 100644 index 0000000..fa546df Binary files /dev/null and b/Resources/Iconos/Documentos/24x24/imagen.png differ diff --git a/Resources/Iconos/Documentos/24x24/pdf.png b/Resources/Iconos/Documentos/24x24/pdf.png new file mode 100644 index 0000000..5270bb5 Binary files /dev/null and b/Resources/Iconos/Documentos/24x24/pdf.png differ diff --git a/Resources/Iconos/Documentos/24x24/txt.png b/Resources/Iconos/Documentos/24x24/txt.png new file mode 100644 index 0000000..7e79fbc Binary files /dev/null and b/Resources/Iconos/Documentos/24x24/txt.png differ diff --git a/Resources/Iconos/Documentos/24x24/word.png b/Resources/Iconos/Documentos/24x24/word.png new file mode 100644 index 0000000..37302ef Binary files /dev/null and b/Resources/Iconos/Documentos/24x24/word.png differ diff --git a/Resources/Iconos/Factuges.ico b/Resources/Iconos/Factuges.ico new file mode 100644 index 0000000..9e11815 Binary files /dev/null and b/Resources/Iconos/Factuges.ico differ diff --git a/Resources/Iconos/Facturas de cliente/16x16/Invoice.png b/Resources/Iconos/Facturas de cliente/16x16/Invoice.png new file mode 100644 index 0000000..1e2e9cc Binary files /dev/null and b/Resources/Iconos/Facturas de cliente/16x16/Invoice.png differ diff --git a/Resources/Iconos/Facturas de cliente/24x24/Budget.png b/Resources/Iconos/Facturas de cliente/24x24/Budget.png new file mode 100644 index 0000000..da50997 Binary files /dev/null and b/Resources/Iconos/Facturas de cliente/24x24/Budget.png differ diff --git a/Resources/Iconos/Facturas de cliente/24x24/Invoice.png b/Resources/Iconos/Facturas de cliente/24x24/Invoice.png new file mode 100644 index 0000000..c24cd70 Binary files /dev/null and b/Resources/Iconos/Facturas de cliente/24x24/Invoice.png differ diff --git a/Resources/Iconos/Facturas de cliente/28x28/Invoice.png b/Resources/Iconos/Facturas de cliente/28x28/Invoice.png new file mode 100644 index 0000000..045a1f7 Binary files /dev/null and b/Resources/Iconos/Facturas de cliente/28x28/Invoice.png differ diff --git a/Resources/Iconos/Familias/16x16/00473.png b/Resources/Iconos/Familias/16x16/00473.png new file mode 100644 index 0000000..e40fffc Binary files /dev/null and b/Resources/Iconos/Familias/16x16/00473.png differ diff --git a/Resources/Iconos/Formas de pago/16x16/Currency-Notes.png b/Resources/Iconos/Formas de pago/16x16/Currency-Notes.png new file mode 100644 index 0000000..7eb9a4c Binary files /dev/null and b/Resources/Iconos/Formas de pago/16x16/Currency-Notes.png differ diff --git a/Resources/Iconos/Formas de pago/16x16/Currency.png b/Resources/Iconos/Formas de pago/16x16/Currency.png new file mode 100644 index 0000000..5ecaee8 Binary files /dev/null and b/Resources/Iconos/Formas de pago/16x16/Currency.png differ diff --git a/Resources/Iconos/Formas de pago/24x24/Currency-Notes.png b/Resources/Iconos/Formas de pago/24x24/Currency-Notes.png new file mode 100644 index 0000000..94f8cb4 Binary files /dev/null and b/Resources/Iconos/Formas de pago/24x24/Currency-Notes.png differ diff --git a/Resources/Iconos/Formas de pago/24x24/Currency.png b/Resources/Iconos/Formas de pago/24x24/Currency.png new file mode 100644 index 0000000..af28329 Binary files /dev/null and b/Resources/Iconos/Formas de pago/24x24/Currency.png differ diff --git a/Resources/Iconos/Formas de pago/28x28/Currency-Notes.png b/Resources/Iconos/Formas de pago/28x28/Currency-Notes.png new file mode 100644 index 0000000..f3c4a88 Binary files /dev/null and b/Resources/Iconos/Formas de pago/28x28/Currency-Notes.png differ diff --git a/Resources/Iconos/Formas de pago/28x28/Currency.png b/Resources/Iconos/Formas de pago/28x28/Currency.png new file mode 100644 index 0000000..0d7259c Binary files /dev/null and b/Resources/Iconos/Formas de pago/28x28/Currency.png differ diff --git a/Resources/Iconos/Generales/16x16/09378.bmp b/Resources/Iconos/Generales/16x16/09378.bmp new file mode 100644 index 0000000..248fc74 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/09378.bmp differ diff --git a/Resources/Iconos/Generales/16x16/09378.png b/Resources/Iconos/Generales/16x16/09378.png new file mode 100644 index 0000000..7e79599 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/09378.png differ diff --git a/Resources/Iconos/Generales/16x16/About.png b/Resources/Iconos/Generales/16x16/About.png new file mode 100644 index 0000000..32635db Binary files /dev/null and b/Resources/Iconos/Generales/16x16/About.png differ diff --git a/Resources/Iconos/Generales/16x16/Align-Centre-2.png b/Resources/Iconos/Generales/16x16/Align-Centre-2.png new file mode 100644 index 0000000..d4f9ffd Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Align-Centre-2.png differ diff --git a/Resources/Iconos/Generales/16x16/Align-Full-2.png b/Resources/Iconos/Generales/16x16/Align-Full-2.png new file mode 100644 index 0000000..c187158 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Align-Full-2.png differ diff --git a/Resources/Iconos/Generales/16x16/Align-Left-2.png b/Resources/Iconos/Generales/16x16/Align-Left-2.png new file mode 100644 index 0000000..63565ff Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Align-Left-2.png differ diff --git a/Resources/Iconos/Generales/16x16/Align-Right-2.png b/Resources/Iconos/Generales/16x16/Align-Right-2.png new file mode 100644 index 0000000..3cd5ad9 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Align-Right-2.png differ diff --git a/Resources/Iconos/Generales/16x16/Añadir-capítulo.png b/Resources/Iconos/Generales/16x16/Añadir-capítulo.png new file mode 100644 index 0000000..16e9ab9 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Añadir-capítulo.png differ diff --git a/Resources/Iconos/Generales/16x16/Añadir-material.png b/Resources/Iconos/Generales/16x16/Añadir-material.png new file mode 100644 index 0000000..d43ef4a Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Añadir-material.png differ diff --git a/Resources/Iconos/Generales/16x16/Back.png b/Resources/Iconos/Generales/16x16/Back.png new file mode 100644 index 0000000..31194b5 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Back.png differ diff --git a/Resources/Iconos/Generales/16x16/Bold.png b/Resources/Iconos/Generales/16x16/Bold.png new file mode 100644 index 0000000..fde06b4 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Bold.png differ diff --git a/Resources/Iconos/Generales/16x16/Box-Closed.png b/Resources/Iconos/Generales/16x16/Box-Closed.png new file mode 100644 index 0000000..189b83f Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Box-Closed.png differ diff --git a/Resources/Iconos/Generales/16x16/Box-Open-2.png b/Resources/Iconos/Generales/16x16/Box-Open-2.png new file mode 100644 index 0000000..8e30418 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Box-Open-2.png differ diff --git a/Resources/Iconos/Generales/16x16/Bullets-2.png b/Resources/Iconos/Generales/16x16/Bullets-2.png new file mode 100644 index 0000000..aacf409 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Bullets-2.png differ diff --git a/Resources/Iconos/Generales/16x16/Bullets.png b/Resources/Iconos/Generales/16x16/Bullets.png new file mode 100644 index 0000000..88b73ea Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Bullets.png differ diff --git a/Resources/Iconos/Generales/16x16/Card-Copy.png b/Resources/Iconos/Generales/16x16/Card-Copy.png new file mode 100644 index 0000000..0da221c Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Card-Copy.png differ diff --git a/Resources/Iconos/Generales/16x16/Clear.png b/Resources/Iconos/Generales/16x16/Clear.png new file mode 100644 index 0000000..2062c27 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Clear.png differ diff --git a/Resources/Iconos/Generales/16x16/Copy.png b/Resources/Iconos/Generales/16x16/Copy.png new file mode 100644 index 0000000..7067e8d Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Copy.png differ diff --git a/Resources/Iconos/Generales/16x16/Cut.png b/Resources/Iconos/Generales/16x16/Cut.png new file mode 100644 index 0000000..3bb4451 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Cut.png differ diff --git a/Resources/Iconos/Generales/16x16/Debug-Breakpoint.png b/Resources/Iconos/Generales/16x16/Debug-Breakpoint.png new file mode 100644 index 0000000..464fcd7 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Debug-Breakpoint.png differ diff --git a/Resources/Iconos/Generales/16x16/Debug-Watch-Delete.png b/Resources/Iconos/Generales/16x16/Debug-Watch-Delete.png new file mode 100644 index 0000000..8e2e6a1 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Debug-Watch-Delete.png differ diff --git a/Resources/Iconos/Generales/16x16/Debug-Watch.png b/Resources/Iconos/Generales/16x16/Debug-Watch.png new file mode 100644 index 0000000..5976f75 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Debug-Watch.png differ diff --git a/Resources/Iconos/Generales/16x16/Delete copia.bmp b/Resources/Iconos/Generales/16x16/Delete copia.bmp new file mode 100644 index 0000000..5cf5cd8 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Delete copia.bmp differ diff --git a/Resources/Iconos/Generales/16x16/Delete.png b/Resources/Iconos/Generales/16x16/Delete.png new file mode 100644 index 0000000..cb27f30 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Delete.png differ diff --git a/Resources/Iconos/Generales/16x16/Distribute-Rows Evenly.png b/Resources/Iconos/Generales/16x16/Distribute-Rows Evenly.png new file mode 100644 index 0000000..42c647b Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Distribute-Rows Evenly.png differ diff --git a/Resources/Iconos/Generales/16x16/Edit.png b/Resources/Iconos/Generales/16x16/Edit.png new file mode 100644 index 0000000..a4431dd Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Edit.png differ diff --git a/Resources/Iconos/Generales/16x16/Execute.png b/Resources/Iconos/Generales/16x16/Execute.png new file mode 100644 index 0000000..f70dc84 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Execute.png differ diff --git a/Resources/Iconos/Generales/16x16/Exit.png b/Resources/Iconos/Generales/16x16/Exit.png new file mode 100644 index 0000000..21613aa Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Exit.png differ diff --git a/Resources/Iconos/Generales/16x16/Export-Acrobat.png b/Resources/Iconos/Generales/16x16/Export-Acrobat.png new file mode 100644 index 0000000..6bad442 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Export-Acrobat.png differ diff --git a/Resources/Iconos/Generales/16x16/Export-Excel.png b/Resources/Iconos/Generales/16x16/Export-Excel.png new file mode 100644 index 0000000..e8541e6 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Export-Excel.png differ diff --git a/Resources/Iconos/Generales/16x16/Export-Text.png b/Resources/Iconos/Generales/16x16/Export-Text.png new file mode 100644 index 0000000..afdaf44 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Export-Text.png differ diff --git a/Resources/Iconos/Generales/16x16/Export-Word.png b/Resources/Iconos/Generales/16x16/Export-Word.png new file mode 100644 index 0000000..b999d1e Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Export-Word.png differ diff --git a/Resources/Iconos/Generales/16x16/Folder List.png b/Resources/Iconos/Generales/16x16/Folder List.png new file mode 100644 index 0000000..e000e8d Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Folder List.png differ diff --git a/Resources/Iconos/Generales/16x16/Form-New.png b/Resources/Iconos/Generales/16x16/Form-New.png new file mode 100644 index 0000000..d0e676a Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Form-New.png differ diff --git a/Resources/Iconos/Generales/16x16/Format-Font.png b/Resources/Iconos/Generales/16x16/Format-Font.png new file mode 100644 index 0000000..d3040cd Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Format-Font.png differ diff --git a/Resources/Iconos/Generales/16x16/Forward.png b/Resources/Iconos/Generales/16x16/Forward.png new file mode 100644 index 0000000..2a17743 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Forward.png differ diff --git a/Resources/Iconos/Generales/16x16/Home.png b/Resources/Iconos/Generales/16x16/Home.png new file mode 100644 index 0000000..199e9cd Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Home.png differ diff --git a/Resources/Iconos/Generales/16x16/Icono.png b/Resources/Iconos/Generales/16x16/Icono.png new file mode 100644 index 0000000..3db633f Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Icono.png differ diff --git a/Resources/Iconos/Generales/16x16/Italic.png b/Resources/Iconos/Generales/16x16/Italic.png new file mode 100644 index 0000000..c5efeb3 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Italic.png differ diff --git a/Resources/Iconos/Generales/16x16/Mail-Forward.png b/Resources/Iconos/Generales/16x16/Mail-Forward.png new file mode 100644 index 0000000..ef801c0 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Mail-Forward.png differ diff --git a/Resources/Iconos/Generales/16x16/Mail.png b/Resources/Iconos/Generales/16x16/Mail.png new file mode 100644 index 0000000..640a388 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Mail.png differ diff --git a/Resources/Iconos/Generales/16x16/Minus.png b/Resources/Iconos/Generales/16x16/Minus.png new file mode 100644 index 0000000..ad8a7d0 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Minus.png differ diff --git a/Resources/Iconos/Generales/16x16/New.png b/Resources/Iconos/Generales/16x16/New.png new file mode 100644 index 0000000..adfecfe Binary files /dev/null and b/Resources/Iconos/Generales/16x16/New.png differ diff --git a/Resources/Iconos/Generales/16x16/Outline-Collapse.png b/Resources/Iconos/Generales/16x16/Outline-Collapse.png new file mode 100644 index 0000000..95ded08 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Outline-Collapse.png differ diff --git a/Resources/Iconos/Generales/16x16/Outline-Expand.png b/Resources/Iconos/Generales/16x16/Outline-Expand.png new file mode 100644 index 0000000..17cbe65 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Outline-Expand.png differ diff --git a/Resources/Iconos/Generales/16x16/Outline-Move Down.png b/Resources/Iconos/Generales/16x16/Outline-Move Down.png new file mode 100644 index 0000000..09fdc68 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Outline-Move Down.png differ diff --git a/Resources/Iconos/Generales/16x16/Outline-Move Up.png b/Resources/Iconos/Generales/16x16/Outline-Move Up.png new file mode 100644 index 0000000..4678fac Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Outline-Move Up.png differ diff --git a/Resources/Iconos/Generales/16x16/Parcel.png b/Resources/Iconos/Generales/16x16/Parcel.png new file mode 100644 index 0000000..eb0ef92 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Parcel.png differ diff --git a/Resources/Iconos/Generales/16x16/Paste.png b/Resources/Iconos/Generales/16x16/Paste.png new file mode 100644 index 0000000..f1cbee6 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Paste.png differ diff --git a/Resources/Iconos/Generales/16x16/Plus copia.bmp b/Resources/Iconos/Generales/16x16/Plus copia.bmp new file mode 100644 index 0000000..df1c069 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Plus copia.bmp differ diff --git a/Resources/Iconos/Generales/16x16/Plus.png b/Resources/Iconos/Generales/16x16/Plus.png new file mode 100644 index 0000000..cab9e8e Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Plus.png differ diff --git a/Resources/Iconos/Generales/16x16/Preview.png b/Resources/Iconos/Generales/16x16/Preview.png new file mode 100644 index 0000000..a1ee549 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Preview.png differ diff --git a/Resources/Iconos/Generales/16x16/Print-Options.png b/Resources/Iconos/Generales/16x16/Print-Options.png new file mode 100644 index 0000000..cd0e509 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Print-Options.png differ diff --git a/Resources/Iconos/Generales/16x16/Print.png b/Resources/Iconos/Generales/16x16/Print.png new file mode 100644 index 0000000..8f029d7 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Print.png differ diff --git a/Resources/Iconos/Generales/16x16/Redo.png b/Resources/Iconos/Generales/16x16/Redo.png new file mode 100644 index 0000000..28250f3 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Redo.png differ diff --git a/Resources/Iconos/Generales/16x16/Refresh.png b/Resources/Iconos/Generales/16x16/Refresh.png new file mode 100644 index 0000000..9ed4aac Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Refresh.png differ diff --git a/Resources/Iconos/Generales/16x16/Save.png b/Resources/Iconos/Generales/16x16/Save.png new file mode 100644 index 0000000..51eb9de Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Save.png differ diff --git a/Resources/Iconos/Generales/16x16/Search.png b/Resources/Iconos/Generales/16x16/Search.png new file mode 100644 index 0000000..e7a6758 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Search.png differ diff --git a/Resources/Iconos/Generales/16x16/Select All.png b/Resources/Iconos/Generales/16x16/Select All.png new file mode 100644 index 0000000..b3476eb Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Select All.png differ diff --git a/Resources/Iconos/Generales/16x16/Speaking-Start.png b/Resources/Iconos/Generales/16x16/Speaking-Start.png new file mode 100644 index 0000000..935e566 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Speaking-Start.png differ diff --git a/Resources/Iconos/Generales/16x16/Sum-2.png b/Resources/Iconos/Generales/16x16/Sum-2.png new file mode 100644 index 0000000..6e5d8e9 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Sum-2.png differ diff --git a/Resources/Iconos/Generales/16x16/Table-Find In Field.png b/Resources/Iconos/Generales/16x16/Table-Find In Field.png new file mode 100644 index 0000000..3a6e075 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Table-Find In Field.png differ diff --git a/Resources/Iconos/Generales/16x16/Table-Search.png b/Resources/Iconos/Generales/16x16/Table-Search.png new file mode 100644 index 0000000..be8bf80 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Table-Search.png differ diff --git a/Resources/Iconos/Generales/16x16/Thumbs.db b/Resources/Iconos/Generales/16x16/Thumbs.db new file mode 100644 index 0000000..43cf85a Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Thumbs.db differ diff --git a/Resources/Iconos/Generales/16x16/Total-capítulo.png b/Resources/Iconos/Generales/16x16/Total-capítulo.png new file mode 100644 index 0000000..4f721ba Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Total-capítulo.png differ diff --git a/Resources/Iconos/Generales/16x16/Título-capítulo.png b/Resources/Iconos/Generales/16x16/Título-capítulo.png new file mode 100644 index 0000000..4eb60d9 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Título-capítulo.png differ diff --git a/Resources/Iconos/Generales/16x16/Underline.png b/Resources/Iconos/Generales/16x16/Underline.png new file mode 100644 index 0000000..6ac4fd5 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Underline.png differ diff --git a/Resources/Iconos/Generales/16x16/Undo.png b/Resources/Iconos/Generales/16x16/Undo.png new file mode 100644 index 0000000..114cf33 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Undo.png differ diff --git a/Resources/Iconos/Generales/16x16/Versions.png b/Resources/Iconos/Generales/16x16/Versions.png new file mode 100644 index 0000000..d673175 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Versions.png differ diff --git a/Resources/Iconos/Generales/16x16/View-One Page.png b/Resources/Iconos/Generales/16x16/View-One Page.png new file mode 100644 index 0000000..7573d11 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/View-One Page.png differ diff --git a/Resources/Iconos/Generales/16x16/View-Page Width.png b/Resources/Iconos/Generales/16x16/View-Page Width.png new file mode 100644 index 0000000..2ad4e8e Binary files /dev/null and b/Resources/Iconos/Generales/16x16/View-Page Width.png differ diff --git a/Resources/Iconos/Generales/16x16/WEB.PNG b/Resources/Iconos/Generales/16x16/WEB.PNG new file mode 100644 index 0000000..58e5bc1 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/WEB.PNG differ diff --git a/Resources/Iconos/Generales/16x16/Warning.png b/Resources/Iconos/Generales/16x16/Warning.png new file mode 100644 index 0000000..0fca356 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Warning.png differ diff --git a/Resources/Iconos/Generales/16x16/Zoom-In.png b/Resources/Iconos/Generales/16x16/Zoom-In.png new file mode 100644 index 0000000..812c814 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Zoom-In.png differ diff --git a/Resources/Iconos/Generales/16x16/Zoom-Out.png b/Resources/Iconos/Generales/16x16/Zoom-Out.png new file mode 100644 index 0000000..e6ccf65 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Zoom-Out.png differ diff --git a/Resources/Iconos/Generales/16x16/db-Next-2.png b/Resources/Iconos/Generales/16x16/db-Next-2.png new file mode 100644 index 0000000..759e9ee Binary files /dev/null and b/Resources/Iconos/Generales/16x16/db-Next-2.png differ diff --git a/Resources/Iconos/Generales/16x16/db-Previous-2.png b/Resources/Iconos/Generales/16x16/db-Previous-2.png new file mode 100644 index 0000000..f673f28 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/db-Previous-2.png differ diff --git a/Resources/Iconos/Generales/16x16/db-first-2.png b/Resources/Iconos/Generales/16x16/db-first-2.png new file mode 100644 index 0000000..7274025 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/db-first-2.png differ diff --git a/Resources/Iconos/Generales/16x16/db-last-2.png b/Resources/Iconos/Generales/16x16/db-last-2.png new file mode 100644 index 0000000..bfb5d67 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/db-last-2.png differ diff --git a/Resources/Iconos/Generales/16x16/haycambios.png b/Resources/Iconos/Generales/16x16/haycambios.png new file mode 100644 index 0000000..693bda2 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/haycambios.png differ diff --git a/Resources/Iconos/Generales/24x24/About.png b/Resources/Iconos/Generales/24x24/About.png new file mode 100644 index 0000000..5d0ba3e Binary files /dev/null and b/Resources/Iconos/Generales/24x24/About.png differ diff --git a/Resources/Iconos/Generales/24x24/Align-Centre-2.png b/Resources/Iconos/Generales/24x24/Align-Centre-2.png new file mode 100644 index 0000000..c5841b8 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Align-Centre-2.png differ diff --git a/Resources/Iconos/Generales/24x24/Align-Full-2.png b/Resources/Iconos/Generales/24x24/Align-Full-2.png new file mode 100644 index 0000000..56af974 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Align-Full-2.png differ diff --git a/Resources/Iconos/Generales/24x24/Align-Justify.png b/Resources/Iconos/Generales/24x24/Align-Justify.png new file mode 100644 index 0000000..56af974 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Align-Justify.png differ diff --git a/Resources/Iconos/Generales/24x24/Align-Left-2.png b/Resources/Iconos/Generales/24x24/Align-Left-2.png new file mode 100644 index 0000000..bb8e8c9 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Align-Left-2.png differ diff --git a/Resources/Iconos/Generales/24x24/Align-Right-2.png b/Resources/Iconos/Generales/24x24/Align-Right-2.png new file mode 100644 index 0000000..c70001a Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Align-Right-2.png differ diff --git a/Resources/Iconos/Generales/24x24/Back.png b/Resources/Iconos/Generales/24x24/Back.png new file mode 100644 index 0000000..1cd4d31 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Back.png differ diff --git a/Resources/Iconos/Generales/24x24/Bold.png b/Resources/Iconos/Generales/24x24/Bold.png new file mode 100644 index 0000000..af04eba Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Bold.png differ diff --git a/Resources/Iconos/Generales/24x24/Box-Open-2.png b/Resources/Iconos/Generales/24x24/Box-Open-2.png new file mode 100644 index 0000000..9959446 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Box-Open-2.png differ diff --git a/Resources/Iconos/Generales/24x24/Bullets-2.png b/Resources/Iconos/Generales/24x24/Bullets-2.png new file mode 100644 index 0000000..ecd1d1b Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Bullets-2.png differ diff --git a/Resources/Iconos/Generales/24x24/Card-Copy.png b/Resources/Iconos/Generales/24x24/Card-Copy.png new file mode 100644 index 0000000..ee4b76f Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Card-Copy.png differ diff --git a/Resources/Iconos/Generales/24x24/Clear.png b/Resources/Iconos/Generales/24x24/Clear.png new file mode 100644 index 0000000..4ce31c8 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Clear.png differ diff --git a/Resources/Iconos/Generales/24x24/Copy.png b/Resources/Iconos/Generales/24x24/Copy.png new file mode 100644 index 0000000..9bf2618 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Copy.png differ diff --git a/Resources/Iconos/Generales/24x24/Cut.png b/Resources/Iconos/Generales/24x24/Cut.png new file mode 100644 index 0000000..b6e6529 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Cut.png differ diff --git a/Resources/Iconos/Generales/24x24/Debug-Breakpoint.png b/Resources/Iconos/Generales/24x24/Debug-Breakpoint.png new file mode 100644 index 0000000..16e4542 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Debug-Breakpoint.png differ diff --git a/Resources/Iconos/Generales/24x24/Debug-Watch-Delete.png b/Resources/Iconos/Generales/24x24/Debug-Watch-Delete.png new file mode 100644 index 0000000..89ae7bd Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Debug-Watch-Delete.png differ diff --git a/Resources/Iconos/Generales/24x24/Debug-Watch.png b/Resources/Iconos/Generales/24x24/Debug-Watch.png new file mode 100644 index 0000000..547428e Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Debug-Watch.png differ diff --git a/Resources/Iconos/Generales/24x24/Delete.png b/Resources/Iconos/Generales/24x24/Delete.png new file mode 100644 index 0000000..a169184 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Delete.png differ diff --git a/Resources/Iconos/Generales/24x24/Distribute-Rows Evenly.png b/Resources/Iconos/Generales/24x24/Distribute-Rows Evenly.png new file mode 100644 index 0000000..e18f127 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Distribute-Rows Evenly.png differ diff --git a/Resources/Iconos/Generales/24x24/Edit.png b/Resources/Iconos/Generales/24x24/Edit.png new file mode 100644 index 0000000..f39269e Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Edit.png differ diff --git a/Resources/Iconos/Generales/24x24/Execute.png b/Resources/Iconos/Generales/24x24/Execute.png new file mode 100644 index 0000000..6dbcc3b Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Execute.png differ diff --git a/Resources/Iconos/Generales/24x24/Exit.png b/Resources/Iconos/Generales/24x24/Exit.png new file mode 100644 index 0000000..70eadf9 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Exit.png differ diff --git a/Resources/Iconos/Generales/24x24/Export-Acrobat.png b/Resources/Iconos/Generales/24x24/Export-Acrobat.png new file mode 100644 index 0000000..1576f39 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Export-Acrobat.png differ diff --git a/Resources/Iconos/Generales/24x24/Export-Excel.png b/Resources/Iconos/Generales/24x24/Export-Excel.png new file mode 100644 index 0000000..ab41f3b Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Export-Excel.png differ diff --git a/Resources/Iconos/Generales/24x24/Export-Text.png b/Resources/Iconos/Generales/24x24/Export-Text.png new file mode 100644 index 0000000..abde175 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Export-Text.png differ diff --git a/Resources/Iconos/Generales/24x24/Export-Word.png b/Resources/Iconos/Generales/24x24/Export-Word.png new file mode 100644 index 0000000..1565478 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Export-Word.png differ diff --git a/Resources/Iconos/Generales/24x24/Folder List.png b/Resources/Iconos/Generales/24x24/Folder List.png new file mode 100644 index 0000000..7956bfb Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Folder List.png differ diff --git a/Resources/Iconos/Generales/24x24/Form-New.png b/Resources/Iconos/Generales/24x24/Form-New.png new file mode 100644 index 0000000..74f4b0a Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Form-New.png differ diff --git a/Resources/Iconos/Generales/24x24/Format Font.png b/Resources/Iconos/Generales/24x24/Format Font.png new file mode 100644 index 0000000..2aa01b2 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Format Font.png differ diff --git a/Resources/Iconos/Generales/24x24/Forward.png b/Resources/Iconos/Generales/24x24/Forward.png new file mode 100644 index 0000000..2ceec67 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Forward.png differ diff --git a/Resources/Iconos/Generales/24x24/Home.png b/Resources/Iconos/Generales/24x24/Home.png new file mode 100644 index 0000000..96b8c87 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Home.png differ diff --git a/Resources/Iconos/Generales/24x24/Italic.png b/Resources/Iconos/Generales/24x24/Italic.png new file mode 100644 index 0000000..18cca2e Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Italic.png differ diff --git a/Resources/Iconos/Generales/24x24/Mail-Forward.png b/Resources/Iconos/Generales/24x24/Mail-Forward.png new file mode 100644 index 0000000..854d99a Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Mail-Forward.png differ diff --git a/Resources/Iconos/Generales/24x24/Mail.png b/Resources/Iconos/Generales/24x24/Mail.png new file mode 100644 index 0000000..50a75e4 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Mail.png differ diff --git a/Resources/Iconos/Generales/24x24/Minus.png b/Resources/Iconos/Generales/24x24/Minus.png new file mode 100644 index 0000000..1b2257f Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Minus.png differ diff --git a/Resources/Iconos/Generales/24x24/New.png b/Resources/Iconos/Generales/24x24/New.png new file mode 100644 index 0000000..bca2ba7 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/New.png differ diff --git a/Resources/Iconos/Generales/24x24/Outline-Collapse.png b/Resources/Iconos/Generales/24x24/Outline-Collapse.png new file mode 100644 index 0000000..0e7c2cc Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Outline-Collapse.png differ diff --git a/Resources/Iconos/Generales/24x24/Outline-Expand.png b/Resources/Iconos/Generales/24x24/Outline-Expand.png new file mode 100644 index 0000000..c643a7c Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Outline-Expand.png differ diff --git a/Resources/Iconos/Generales/24x24/Outline-Move Down.png b/Resources/Iconos/Generales/24x24/Outline-Move Down.png new file mode 100644 index 0000000..65aaa61 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Outline-Move Down.png differ diff --git a/Resources/Iconos/Generales/24x24/Outline-Move Up.png b/Resources/Iconos/Generales/24x24/Outline-Move Up.png new file mode 100644 index 0000000..3dc2673 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Outline-Move Up.png differ diff --git a/Resources/Iconos/Generales/24x24/Paste.png b/Resources/Iconos/Generales/24x24/Paste.png new file mode 100644 index 0000000..9b4c3f0 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Paste.png differ diff --git a/Resources/Iconos/Generales/24x24/Plus.png b/Resources/Iconos/Generales/24x24/Plus.png new file mode 100644 index 0000000..f60ef53 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Plus.png differ diff --git a/Resources/Iconos/Generales/24x24/Preview.png b/Resources/Iconos/Generales/24x24/Preview.png new file mode 100644 index 0000000..4d185c1 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Preview.png differ diff --git a/Resources/Iconos/Generales/24x24/Print-Options.png b/Resources/Iconos/Generales/24x24/Print-Options.png new file mode 100644 index 0000000..b97b98c Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Print-Options.png differ diff --git a/Resources/Iconos/Generales/24x24/Print.png b/Resources/Iconos/Generales/24x24/Print.png new file mode 100644 index 0000000..3f6e390 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Print.png differ diff --git a/Resources/Iconos/Generales/24x24/Redo.png b/Resources/Iconos/Generales/24x24/Redo.png new file mode 100644 index 0000000..0c0fd23 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Redo.png differ diff --git a/Resources/Iconos/Generales/24x24/Refresh.png b/Resources/Iconos/Generales/24x24/Refresh.png new file mode 100644 index 0000000..03cacdf Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Refresh.png differ diff --git a/Resources/Iconos/Generales/24x24/Save.png b/Resources/Iconos/Generales/24x24/Save.png new file mode 100644 index 0000000..56cc714 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Save.png differ diff --git a/Resources/Iconos/Generales/24x24/Search.png b/Resources/Iconos/Generales/24x24/Search.png new file mode 100644 index 0000000..3af96da Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Search.png differ diff --git a/Resources/Iconos/Generales/24x24/Select All.png b/Resources/Iconos/Generales/24x24/Select All.png new file mode 100644 index 0000000..5632ed5 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Select All.png differ diff --git a/Resources/Iconos/Generales/24x24/Speaking-Start.png b/Resources/Iconos/Generales/24x24/Speaking-Start.png new file mode 100644 index 0000000..a02336a Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Speaking-Start.png differ diff --git a/Resources/Iconos/Generales/24x24/Sum-2.png b/Resources/Iconos/Generales/24x24/Sum-2.png new file mode 100644 index 0000000..51a90c6 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Sum-2.png differ diff --git a/Resources/Iconos/Generales/24x24/Table-Find In Field.png b/Resources/Iconos/Generales/24x24/Table-Find In Field.png new file mode 100644 index 0000000..7b2c5f6 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Table-Find In Field.png differ diff --git a/Resources/Iconos/Generales/24x24/Table-Search.png b/Resources/Iconos/Generales/24x24/Table-Search.png new file mode 100644 index 0000000..b145e04 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Table-Search.png differ diff --git a/Resources/Iconos/Generales/24x24/Underline.png b/Resources/Iconos/Generales/24x24/Underline.png new file mode 100644 index 0000000..d304242 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Underline.png differ diff --git a/Resources/Iconos/Generales/24x24/Undo.png b/Resources/Iconos/Generales/24x24/Undo.png new file mode 100644 index 0000000..0fe4cc9 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Undo.png differ diff --git a/Resources/Iconos/Generales/24x24/Versions.png b/Resources/Iconos/Generales/24x24/Versions.png new file mode 100644 index 0000000..0057443 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Versions.png differ diff --git a/Resources/Iconos/Generales/24x24/View-One Page.png b/Resources/Iconos/Generales/24x24/View-One Page.png new file mode 100644 index 0000000..b66609e Binary files /dev/null and b/Resources/Iconos/Generales/24x24/View-One Page.png differ diff --git a/Resources/Iconos/Generales/24x24/View-Page Width.png b/Resources/Iconos/Generales/24x24/View-Page Width.png new file mode 100644 index 0000000..760a323 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/View-Page Width.png differ diff --git a/Resources/Iconos/Generales/24x24/Warning.png b/Resources/Iconos/Generales/24x24/Warning.png new file mode 100644 index 0000000..e674c1f Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Warning.png differ diff --git a/Resources/Iconos/Generales/24x24/Zoom-In.png b/Resources/Iconos/Generales/24x24/Zoom-In.png new file mode 100644 index 0000000..131feed Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Zoom-In.png differ diff --git a/Resources/Iconos/Generales/24x24/Zoom-Out.png b/Resources/Iconos/Generales/24x24/Zoom-Out.png new file mode 100644 index 0000000..26cf347 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/Zoom-Out.png differ diff --git a/Resources/Iconos/Generales/24x24/db-First-2.png b/Resources/Iconos/Generales/24x24/db-First-2.png new file mode 100644 index 0000000..c36c2ea Binary files /dev/null and b/Resources/Iconos/Generales/24x24/db-First-2.png differ diff --git a/Resources/Iconos/Generales/24x24/db-Last-2.png b/Resources/Iconos/Generales/24x24/db-Last-2.png new file mode 100644 index 0000000..97292c3 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/db-Last-2.png differ diff --git a/Resources/Iconos/Generales/24x24/db-Next-2.png b/Resources/Iconos/Generales/24x24/db-Next-2.png new file mode 100644 index 0000000..d23efc7 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/db-Next-2.png differ diff --git a/Resources/Iconos/Generales/24x24/db-Previous-2.png b/Resources/Iconos/Generales/24x24/db-Previous-2.png new file mode 100644 index 0000000..7c11e16 Binary files /dev/null and b/Resources/Iconos/Generales/24x24/db-Previous-2.png differ diff --git a/Resources/Iconos/Generales/28x28/Box-Open-2.png b/Resources/Iconos/Generales/28x28/Box-Open-2.png new file mode 100644 index 0000000..e88310c Binary files /dev/null and b/Resources/Iconos/Generales/28x28/Box-Open-2.png differ diff --git a/Resources/Iconos/Generales/28x28/Card-Copy.png b/Resources/Iconos/Generales/28x28/Card-Copy.png new file mode 100644 index 0000000..60566d1 Binary files /dev/null and b/Resources/Iconos/Generales/28x28/Card-Copy.png differ diff --git a/Resources/Iconos/Generales/28x28/Debug-Watch-Delete.png b/Resources/Iconos/Generales/28x28/Debug-Watch-Delete.png new file mode 100644 index 0000000..faf46e8 Binary files /dev/null and b/Resources/Iconos/Generales/28x28/Debug-Watch-Delete.png differ diff --git a/Resources/Iconos/Generales/28x28/Debug-Watch.png b/Resources/Iconos/Generales/28x28/Debug-Watch.png new file mode 100644 index 0000000..31c568f Binary files /dev/null and b/Resources/Iconos/Generales/28x28/Debug-Watch.png differ diff --git a/Resources/Iconos/Generales/28x28/Distribute-Rows Evenly.png b/Resources/Iconos/Generales/28x28/Distribute-Rows Evenly.png new file mode 100644 index 0000000..6b62515 Binary files /dev/null and b/Resources/Iconos/Generales/28x28/Distribute-Rows Evenly.png differ diff --git a/Resources/Iconos/Generales/28x28/Execute.png b/Resources/Iconos/Generales/28x28/Execute.png new file mode 100644 index 0000000..1631790 Binary files /dev/null and b/Resources/Iconos/Generales/28x28/Execute.png differ diff --git a/Resources/Iconos/Generales/28x28/Export-Acrobat.png b/Resources/Iconos/Generales/28x28/Export-Acrobat.png new file mode 100644 index 0000000..4cc4481 Binary files /dev/null and b/Resources/Iconos/Generales/28x28/Export-Acrobat.png differ diff --git a/Resources/Iconos/Generales/28x28/Export-Excel.png b/Resources/Iconos/Generales/28x28/Export-Excel.png new file mode 100644 index 0000000..0cb97d5 Binary files /dev/null and b/Resources/Iconos/Generales/28x28/Export-Excel.png differ diff --git a/Resources/Iconos/Generales/28x28/Export-Text.png b/Resources/Iconos/Generales/28x28/Export-Text.png new file mode 100644 index 0000000..de05359 Binary files /dev/null and b/Resources/Iconos/Generales/28x28/Export-Text.png differ diff --git a/Resources/Iconos/Generales/28x28/Export-Word.png b/Resources/Iconos/Generales/28x28/Export-Word.png new file mode 100644 index 0000000..d1faae4 Binary files /dev/null and b/Resources/Iconos/Generales/28x28/Export-Word.png differ diff --git a/Resources/Iconos/Generales/28x28/Folder List.png b/Resources/Iconos/Generales/28x28/Folder List.png new file mode 100644 index 0000000..d5873bb Binary files /dev/null and b/Resources/Iconos/Generales/28x28/Folder List.png differ diff --git a/Resources/Iconos/Generales/28x28/Form-New.ico b/Resources/Iconos/Generales/28x28/Form-New.ico new file mode 100644 index 0000000..4d3d393 Binary files /dev/null and b/Resources/Iconos/Generales/28x28/Form-New.ico differ diff --git a/Resources/Iconos/Generales/28x28/Form-New.png b/Resources/Iconos/Generales/28x28/Form-New.png new file mode 100644 index 0000000..87352c4 Binary files /dev/null and b/Resources/Iconos/Generales/28x28/Form-New.png differ diff --git a/Resources/Iconos/Generales/28x28/Home.png b/Resources/Iconos/Generales/28x28/Home.png new file mode 100644 index 0000000..f89327a Binary files /dev/null and b/Resources/Iconos/Generales/28x28/Home.png differ diff --git a/Resources/Iconos/Generales/28x28/Mail-Forward.png b/Resources/Iconos/Generales/28x28/Mail-Forward.png new file mode 100644 index 0000000..ac784c0 Binary files /dev/null and b/Resources/Iconos/Generales/28x28/Mail-Forward.png differ diff --git a/Resources/Iconos/Generales/28x28/Mail.png b/Resources/Iconos/Generales/28x28/Mail.png new file mode 100644 index 0000000..3a625cf Binary files /dev/null and b/Resources/Iconos/Generales/28x28/Mail.png differ diff --git a/Resources/Iconos/Generales/28x28/New.png b/Resources/Iconos/Generales/28x28/New.png new file mode 100644 index 0000000..0a3858a Binary files /dev/null and b/Resources/Iconos/Generales/28x28/New.png differ diff --git a/Resources/Iconos/Generales/28x28/Outline-Move Down.png b/Resources/Iconos/Generales/28x28/Outline-Move Down.png new file mode 100644 index 0000000..eb2aa92 Binary files /dev/null and b/Resources/Iconos/Generales/28x28/Outline-Move Down.png differ diff --git a/Resources/Iconos/Generales/28x28/Outline-Move Up.png b/Resources/Iconos/Generales/28x28/Outline-Move Up.png new file mode 100644 index 0000000..4397959 Binary files /dev/null and b/Resources/Iconos/Generales/28x28/Outline-Move Up.png differ diff --git a/Resources/Iconos/Generales/28x28/Speaking-Start.png b/Resources/Iconos/Generales/28x28/Speaking-Start.png new file mode 100644 index 0000000..52294bb Binary files /dev/null and b/Resources/Iconos/Generales/28x28/Speaking-Start.png differ diff --git a/Resources/Iconos/Generales/28x28/Sum-2.png b/Resources/Iconos/Generales/28x28/Sum-2.png new file mode 100644 index 0000000..0508feb Binary files /dev/null and b/Resources/Iconos/Generales/28x28/Sum-2.png differ diff --git a/Resources/Iconos/Generales/28x28/Table-Find In Field.png b/Resources/Iconos/Generales/28x28/Table-Find In Field.png new file mode 100644 index 0000000..f0e11e5 Binary files /dev/null and b/Resources/Iconos/Generales/28x28/Table-Find In Field.png differ diff --git a/Resources/Iconos/Generales/28x28/Table-Search.png b/Resources/Iconos/Generales/28x28/Table-Search.png new file mode 100644 index 0000000..bb23481 Binary files /dev/null and b/Resources/Iconos/Generales/28x28/Table-Search.png differ diff --git a/Resources/Iconos/Generales/28x28/Versions.png b/Resources/Iconos/Generales/28x28/Versions.png new file mode 100644 index 0000000..edf6c07 Binary files /dev/null and b/Resources/Iconos/Generales/28x28/Versions.png differ diff --git a/Resources/Iconos/Generales/28x28/Warning.png b/Resources/Iconos/Generales/28x28/Warning.png new file mode 100644 index 0000000..19aec79 Binary files /dev/null and b/Resources/Iconos/Generales/28x28/Warning.png differ diff --git a/Resources/Iconos/Historico de movimientos/16x16/Entradas.png b/Resources/Iconos/Historico de movimientos/16x16/Entradas.png new file mode 100644 index 0000000..e8897cd Binary files /dev/null and b/Resources/Iconos/Historico de movimientos/16x16/Entradas.png differ diff --git a/Resources/Iconos/Historico de movimientos/16x16/Salidas.png b/Resources/Iconos/Historico de movimientos/16x16/Salidas.png new file mode 100644 index 0000000..d3c011b Binary files /dev/null and b/Resources/Iconos/Historico de movimientos/16x16/Salidas.png differ diff --git a/Resources/Iconos/Historico de movimientos/24x24/historico.png b/Resources/Iconos/Historico de movimientos/24x24/historico.png new file mode 100644 index 0000000..a34188e Binary files /dev/null and b/Resources/Iconos/Historico de movimientos/24x24/historico.png differ diff --git a/Resources/Iconos/Historico de movimientos/28x28/historico.png b/Resources/Iconos/Historico de movimientos/28x28/historico.png new file mode 100644 index 0000000..2ae664f Binary files /dev/null and b/Resources/Iconos/Historico de movimientos/28x28/historico.png differ diff --git a/Resources/Iconos/Inventario/16x16/InventarioObras.png b/Resources/Iconos/Inventario/16x16/InventarioObras.png new file mode 100644 index 0000000..ce000a4 Binary files /dev/null and b/Resources/Iconos/Inventario/16x16/InventarioObras.png differ diff --git a/Resources/Iconos/Inventario/16x16/articulos.png b/Resources/Iconos/Inventario/16x16/articulos.png new file mode 100644 index 0000000..acbaca9 Binary files /dev/null and b/Resources/Iconos/Inventario/16x16/articulos.png differ diff --git a/Resources/Iconos/Inventario/16x16/liberar.png b/Resources/Iconos/Inventario/16x16/liberar.png new file mode 100644 index 0000000..0f05e97 Binary files /dev/null and b/Resources/Iconos/Inventario/16x16/liberar.png differ diff --git a/Resources/Iconos/Inventario/24x24/InventarioObras.png b/Resources/Iconos/Inventario/24x24/InventarioObras.png new file mode 100644 index 0000000..41b7231 Binary files /dev/null and b/Resources/Iconos/Inventario/24x24/InventarioObras.png differ diff --git a/Resources/Iconos/Inventario/24x24/articulos.png b/Resources/Iconos/Inventario/24x24/articulos.png new file mode 100644 index 0000000..c638dfe Binary files /dev/null and b/Resources/Iconos/Inventario/24x24/articulos.png differ diff --git a/Resources/Iconos/Inventario/24x24/liberar.png b/Resources/Iconos/Inventario/24x24/liberar.png new file mode 100644 index 0000000..40be139 Binary files /dev/null and b/Resources/Iconos/Inventario/24x24/liberar.png differ diff --git a/Resources/Iconos/Inventario/28x28/InventarioObras.png b/Resources/Iconos/Inventario/28x28/InventarioObras.png new file mode 100644 index 0000000..440886a Binary files /dev/null and b/Resources/Iconos/Inventario/28x28/InventarioObras.png differ diff --git a/Resources/Iconos/Inventario/28x28/articulos.png b/Resources/Iconos/Inventario/28x28/articulos.png new file mode 100644 index 0000000..95147f2 Binary files /dev/null and b/Resources/Iconos/Inventario/28x28/articulos.png differ diff --git a/Resources/Iconos/Inventario/28x28/liberar.png b/Resources/Iconos/Inventario/28x28/liberar.png new file mode 100644 index 0000000..bd5c233 Binary files /dev/null and b/Resources/Iconos/Inventario/28x28/liberar.png differ diff --git a/Resources/Iconos/Montajes/16x16/Document-Labels.png b/Resources/Iconos/Montajes/16x16/Document-Labels.png new file mode 100644 index 0000000..a6fa82b Binary files /dev/null and b/Resources/Iconos/Montajes/16x16/Document-Labels.png differ diff --git a/Resources/Iconos/Montajes/16x16/Tools.png b/Resources/Iconos/Montajes/16x16/Tools.png new file mode 100644 index 0000000..21a2797 Binary files /dev/null and b/Resources/Iconos/Montajes/16x16/Tools.png differ diff --git a/Resources/Iconos/Montajes/24x24/Document-Labels.png b/Resources/Iconos/Montajes/24x24/Document-Labels.png new file mode 100644 index 0000000..291dbb6 Binary files /dev/null and b/Resources/Iconos/Montajes/24x24/Document-Labels.png differ diff --git a/Resources/Iconos/Montajes/24x24/Tools.png b/Resources/Iconos/Montajes/24x24/Tools.png new file mode 100644 index 0000000..f682a14 Binary files /dev/null and b/Resources/Iconos/Montajes/24x24/Tools.png differ diff --git a/Resources/Iconos/Montajes/28x28/Document-Labels.png b/Resources/Iconos/Montajes/28x28/Document-Labels.png new file mode 100644 index 0000000..cdf699d Binary files /dev/null and b/Resources/Iconos/Montajes/28x28/Document-Labels.png differ diff --git a/Resources/Iconos/Montajes/28x28/Tools.png b/Resources/Iconos/Montajes/28x28/Tools.png new file mode 100644 index 0000000..74aa0b1 Binary files /dev/null and b/Resources/Iconos/Montajes/28x28/Tools.png differ diff --git a/Resources/Iconos/Obras/16x16/Obras.png b/Resources/Iconos/Obras/16x16/Obras.png new file mode 100644 index 0000000..66a865d Binary files /dev/null and b/Resources/Iconos/Obras/16x16/Obras.png differ diff --git a/Resources/Iconos/Obras/16x16/enejecucion.png b/Resources/Iconos/Obras/16x16/enejecucion.png new file mode 100644 index 0000000..8c50d06 Binary files /dev/null and b/Resources/Iconos/Obras/16x16/enejecucion.png differ diff --git a/Resources/Iconos/Obras/24x24/Obras.png b/Resources/Iconos/Obras/24x24/Obras.png new file mode 100644 index 0000000..ef35b2a Binary files /dev/null and b/Resources/Iconos/Obras/24x24/Obras.png differ diff --git a/Resources/Iconos/Obras/28x28/Obras.png b/Resources/Iconos/Obras/28x28/Obras.png new file mode 100644 index 0000000..67f65e7 Binary files /dev/null and b/Resources/Iconos/Obras/28x28/Obras.png differ diff --git a/Resources/Iconos/Pagos/16x16/pagado.png b/Resources/Iconos/Pagos/16x16/pagado.png new file mode 100644 index 0000000..37feab5 Binary files /dev/null and b/Resources/Iconos/Pagos/16x16/pagado.png differ diff --git a/Resources/Iconos/Pagos/24x24/pagado.png b/Resources/Iconos/Pagos/24x24/pagado.png new file mode 100644 index 0000000..d986e6c Binary files /dev/null and b/Resources/Iconos/Pagos/24x24/pagado.png differ diff --git a/Resources/Iconos/Pagos/28x28/pagado.png b/Resources/Iconos/Pagos/28x28/pagado.png new file mode 100644 index 0000000..d8980b6 Binary files /dev/null and b/Resources/Iconos/Pagos/28x28/pagado.png differ diff --git a/Resources/Iconos/Pedidos a proveedor/16x16/Complete-0.png b/Resources/Iconos/Pedidos a proveedor/16x16/Complete-0.png new file mode 100644 index 0000000..7531e3f Binary files /dev/null and b/Resources/Iconos/Pedidos a proveedor/16x16/Complete-0.png differ diff --git a/Resources/Iconos/Pedidos a proveedor/16x16/Complete-100.png b/Resources/Iconos/Pedidos a proveedor/16x16/Complete-100.png new file mode 100644 index 0000000..7e7fbb7 Binary files /dev/null and b/Resources/Iconos/Pedidos a proveedor/16x16/Complete-100.png differ diff --git a/Resources/Iconos/Pedidos a proveedor/16x16/Complete-50.png b/Resources/Iconos/Pedidos a proveedor/16x16/Complete-50.png new file mode 100644 index 0000000..1972bb7 Binary files /dev/null and b/Resources/Iconos/Pedidos a proveedor/16x16/Complete-50.png differ diff --git a/Resources/Iconos/Pedidos a proveedor/16x16/pedidos.png b/Resources/Iconos/Pedidos a proveedor/16x16/pedidos.png new file mode 100644 index 0000000..bc972c8 Binary files /dev/null and b/Resources/Iconos/Pedidos a proveedor/16x16/pedidos.png differ diff --git a/Resources/Iconos/Pedidos a proveedor/24x24/Complete-0.png b/Resources/Iconos/Pedidos a proveedor/24x24/Complete-0.png new file mode 100644 index 0000000..4988815 Binary files /dev/null and b/Resources/Iconos/Pedidos a proveedor/24x24/Complete-0.png differ diff --git a/Resources/Iconos/Pedidos a proveedor/24x24/Complete-100.png b/Resources/Iconos/Pedidos a proveedor/24x24/Complete-100.png new file mode 100644 index 0000000..fe23a48 Binary files /dev/null and b/Resources/Iconos/Pedidos a proveedor/24x24/Complete-100.png differ diff --git a/Resources/Iconos/Pedidos a proveedor/24x24/Complete-50.png b/Resources/Iconos/Pedidos a proveedor/24x24/Complete-50.png new file mode 100644 index 0000000..147621b Binary files /dev/null and b/Resources/Iconos/Pedidos a proveedor/24x24/Complete-50.png differ diff --git a/Resources/Iconos/Pedidos a proveedor/24x24/pedido.png b/Resources/Iconos/Pedidos a proveedor/24x24/pedido.png new file mode 100644 index 0000000..1939938 Binary files /dev/null and b/Resources/Iconos/Pedidos a proveedor/24x24/pedido.png differ diff --git a/Resources/Iconos/Pedidos a proveedor/28x28/Complete-0.png b/Resources/Iconos/Pedidos a proveedor/28x28/Complete-0.png new file mode 100644 index 0000000..fa5ca6c Binary files /dev/null and b/Resources/Iconos/Pedidos a proveedor/28x28/Complete-0.png differ diff --git a/Resources/Iconos/Pedidos a proveedor/28x28/Complete-100.png b/Resources/Iconos/Pedidos a proveedor/28x28/Complete-100.png new file mode 100644 index 0000000..166d0c3 Binary files /dev/null and b/Resources/Iconos/Pedidos a proveedor/28x28/Complete-100.png differ diff --git a/Resources/Iconos/Pedidos a proveedor/28x28/Complete-50.png b/Resources/Iconos/Pedidos a proveedor/28x28/Complete-50.png new file mode 100644 index 0000000..5c81e92 Binary files /dev/null and b/Resources/Iconos/Pedidos a proveedor/28x28/Complete-50.png differ diff --git a/Resources/Iconos/Pedidos a proveedor/28x28/pedido.png b/Resources/Iconos/Pedidos a proveedor/28x28/pedido.png new file mode 100644 index 0000000..d7c4b43 Binary files /dev/null and b/Resources/Iconos/Pedidos a proveedor/28x28/pedido.png differ diff --git a/Resources/Iconos/Pedidos de cliente/16x16/Budget.png b/Resources/Iconos/Pedidos de cliente/16x16/Budget.png new file mode 100644 index 0000000..8e1a402 Binary files /dev/null and b/Resources/Iconos/Pedidos de cliente/16x16/Budget.png differ diff --git a/Resources/Iconos/Pedidos de cliente/24x24/Budget.png b/Resources/Iconos/Pedidos de cliente/24x24/Budget.png new file mode 100644 index 0000000..de2deb1 Binary files /dev/null and b/Resources/Iconos/Pedidos de cliente/24x24/Budget.png differ diff --git a/Resources/Iconos/Pedidos de cliente/28x28/Budget.png b/Resources/Iconos/Pedidos de cliente/28x28/Budget.png new file mode 100644 index 0000000..3ff80eb Binary files /dev/null and b/Resources/Iconos/Pedidos de cliente/28x28/Budget.png differ diff --git a/Resources/Iconos/Presupuestos/16x16/Aumentar_letra.png b/Resources/Iconos/Presupuestos/16x16/Aumentar_letra.png new file mode 100644 index 0000000..141ebc4 Binary files /dev/null and b/Resources/Iconos/Presupuestos/16x16/Aumentar_letra.png differ diff --git a/Resources/Iconos/Presupuestos/16x16/Budget.png b/Resources/Iconos/Presupuestos/16x16/Budget.png new file mode 100644 index 0000000..095f2f1 Binary files /dev/null and b/Resources/Iconos/Presupuestos/16x16/Budget.png differ diff --git a/Resources/Iconos/Presupuestos/16x16/Budget_incidencia.png b/Resources/Iconos/Presupuestos/16x16/Budget_incidencia.png new file mode 100644 index 0000000..3c0d45b Binary files /dev/null and b/Resources/Iconos/Presupuestos/16x16/Budget_incidencia.png differ diff --git a/Resources/Iconos/Presupuestos/16x16/Delete-Blue.png b/Resources/Iconos/Presupuestos/16x16/Delete-Blue.png new file mode 100644 index 0000000..33a2a14 Binary files /dev/null and b/Resources/Iconos/Presupuestos/16x16/Delete-Blue.png differ diff --git a/Resources/Iconos/Presupuestos/16x16/Disminuir_letra.png b/Resources/Iconos/Presupuestos/16x16/Disminuir_letra.png new file mode 100644 index 0000000..2febedb Binary files /dev/null and b/Resources/Iconos/Presupuestos/16x16/Disminuir_letra.png differ diff --git a/Resources/Iconos/Presupuestos/16x16/Tick.png b/Resources/Iconos/Presupuestos/16x16/Tick.png new file mode 100644 index 0000000..264d020 Binary files /dev/null and b/Resources/Iconos/Presupuestos/16x16/Tick.png differ diff --git a/Resources/Iconos/Presupuestos/24x24/Budget.png b/Resources/Iconos/Presupuestos/24x24/Budget.png new file mode 100644 index 0000000..6d01c8d Binary files /dev/null and b/Resources/Iconos/Presupuestos/24x24/Budget.png differ diff --git a/Resources/Iconos/Presupuestos/24x24/Delete-Blue.png b/Resources/Iconos/Presupuestos/24x24/Delete-Blue.png new file mode 100644 index 0000000..6546282 Binary files /dev/null and b/Resources/Iconos/Presupuestos/24x24/Delete-Blue.png differ diff --git a/Resources/Iconos/Presupuestos/24x24/Tick.png b/Resources/Iconos/Presupuestos/24x24/Tick.png new file mode 100644 index 0000000..8554e1f Binary files /dev/null and b/Resources/Iconos/Presupuestos/24x24/Tick.png differ diff --git a/Resources/Iconos/Presupuestos/28x28/Budget.png b/Resources/Iconos/Presupuestos/28x28/Budget.png new file mode 100644 index 0000000..8f5e61e Binary files /dev/null and b/Resources/Iconos/Presupuestos/28x28/Budget.png differ diff --git a/Resources/Iconos/Remesas/16x16/Export.png b/Resources/Iconos/Remesas/16x16/Export.png new file mode 100644 index 0000000..fbbd22e Binary files /dev/null and b/Resources/Iconos/Remesas/16x16/Export.png differ diff --git a/Resources/Iconos/Remesas/24x24/Export.png b/Resources/Iconos/Remesas/24x24/Export.png new file mode 100644 index 0000000..07af21c Binary files /dev/null and b/Resources/Iconos/Remesas/24x24/Export.png differ diff --git a/Resources/Iconos/Remesas/28x28/Export.png b/Resources/Iconos/Remesas/28x28/Export.png new file mode 100644 index 0000000..cbf2bd2 Binary files /dev/null and b/Resources/Iconos/Remesas/28x28/Export.png differ diff --git a/Resources/Iconos/Servidor.ico b/Resources/Iconos/Servidor.ico new file mode 100644 index 0000000..ff7c9cc Binary files /dev/null and b/Resources/Iconos/Servidor.ico differ diff --git a/Resources/Iconos/Servidor/16x16/Database.png b/Resources/Iconos/Servidor/16x16/Database.png new file mode 100644 index 0000000..badb104 Binary files /dev/null and b/Resources/Iconos/Servidor/16x16/Database.png differ diff --git a/Resources/Iconos/Servidor/24x24/Database.png b/Resources/Iconos/Servidor/24x24/Database.png new file mode 100644 index 0000000..cd859e1 Binary files /dev/null and b/Resources/Iconos/Servidor/24x24/Database.png differ diff --git a/Resources/Iconos/Servidor/28x28/Database.png b/Resources/Iconos/Servidor/28x28/Database.png new file mode 100644 index 0000000..26d3c56 Binary files /dev/null and b/Resources/Iconos/Servidor/28x28/Database.png differ diff --git a/Resources/Iconos/Thumbs.db b/Resources/Iconos/Thumbs.db new file mode 100644 index 0000000..bfd1c26 Binary files /dev/null and b/Resources/Iconos/Thumbs.db differ diff --git a/Resources/Iconos/Tipos de IVA/16x16/Format-Percentage-2.png b/Resources/Iconos/Tipos de IVA/16x16/Format-Percentage-2.png new file mode 100644 index 0000000..8fcd921 Binary files /dev/null and b/Resources/Iconos/Tipos de IVA/16x16/Format-Percentage-2.png differ diff --git a/Resources/Iconos/Tipos de IVA/24x24/Format-Percentage-2.png b/Resources/Iconos/Tipos de IVA/24x24/Format-Percentage-2.png new file mode 100644 index 0000000..efbca32 Binary files /dev/null and b/Resources/Iconos/Tipos de IVA/24x24/Format-Percentage-2.png differ diff --git a/Resources/Iconos/Tipos de IVA/28x28/Format-Percentage-2.png b/Resources/Iconos/Tipos de IVA/28x28/Format-Percentage-2.png new file mode 100644 index 0000000..8ce4667 Binary files /dev/null and b/Resources/Iconos/Tipos de IVA/28x28/Format-Percentage-2.png differ diff --git a/Resources/Iconos/Unidades de medida/16x16/Ruler.png b/Resources/Iconos/Unidades de medida/16x16/Ruler.png new file mode 100644 index 0000000..3835149 Binary files /dev/null and b/Resources/Iconos/Unidades de medida/16x16/Ruler.png differ diff --git a/Resources/Iconos/Unidades de medida/24x24/Ruler.png b/Resources/Iconos/Unidades de medida/24x24/Ruler.png new file mode 100644 index 0000000..54de693 Binary files /dev/null and b/Resources/Iconos/Unidades de medida/24x24/Ruler.png differ diff --git a/Resources/Iconos/Unidades de medida/28x28/Ruler.png b/Resources/Iconos/Unidades de medida/28x28/Ruler.png new file mode 100644 index 0000000..353a9ab Binary files /dev/null and b/Resources/Iconos/Unidades de medida/28x28/Ruler.png differ diff --git a/Resources/Iconos/Usuarios/16x16/User-Add.png b/Resources/Iconos/Usuarios/16x16/User-Add.png new file mode 100644 index 0000000..1649f38 Binary files /dev/null and b/Resources/Iconos/Usuarios/16x16/User-Add.png differ diff --git a/Resources/Iconos/Usuarios/16x16/User-Edit.png b/Resources/Iconos/Usuarios/16x16/User-Edit.png new file mode 100644 index 0000000..a660a37 Binary files /dev/null and b/Resources/Iconos/Usuarios/16x16/User-Edit.png differ diff --git a/Resources/Iconos/Usuarios/16x16/User-Password.png b/Resources/Iconos/Usuarios/16x16/User-Password.png new file mode 100644 index 0000000..a6d8942 Binary files /dev/null and b/Resources/Iconos/Usuarios/16x16/User-Password.png differ diff --git a/Resources/Iconos/Usuarios/16x16/User-Remove.png b/Resources/Iconos/Usuarios/16x16/User-Remove.png new file mode 100644 index 0000000..5edbd1d Binary files /dev/null and b/Resources/Iconos/Usuarios/16x16/User-Remove.png differ diff --git a/Resources/Iconos/Usuarios/16x16/User.png b/Resources/Iconos/Usuarios/16x16/User.png new file mode 100644 index 0000000..ee6f2a7 Binary files /dev/null and b/Resources/Iconos/Usuarios/16x16/User.png differ diff --git a/Resources/Iconos/Usuarios/16x16/Users.png b/Resources/Iconos/Usuarios/16x16/Users.png new file mode 100644 index 0000000..c376648 Binary files /dev/null and b/Resources/Iconos/Usuarios/16x16/Users.png differ diff --git a/Resources/Iconos/Usuarios/24x24/User-Add.png b/Resources/Iconos/Usuarios/24x24/User-Add.png new file mode 100644 index 0000000..3616f18 Binary files /dev/null and b/Resources/Iconos/Usuarios/24x24/User-Add.png differ diff --git a/Resources/Iconos/Usuarios/24x24/User-Edit.png b/Resources/Iconos/Usuarios/24x24/User-Edit.png new file mode 100644 index 0000000..1af01ad Binary files /dev/null and b/Resources/Iconos/Usuarios/24x24/User-Edit.png differ diff --git a/Resources/Iconos/Usuarios/24x24/User-Password.png b/Resources/Iconos/Usuarios/24x24/User-Password.png new file mode 100644 index 0000000..a121a6b Binary files /dev/null and b/Resources/Iconos/Usuarios/24x24/User-Password.png differ diff --git a/Resources/Iconos/Usuarios/24x24/User-Remove.png b/Resources/Iconos/Usuarios/24x24/User-Remove.png new file mode 100644 index 0000000..b50a9da Binary files /dev/null and b/Resources/Iconos/Usuarios/24x24/User-Remove.png differ diff --git a/Resources/Iconos/Usuarios/24x24/User.png b/Resources/Iconos/Usuarios/24x24/User.png new file mode 100644 index 0000000..ddb1dd6 Binary files /dev/null and b/Resources/Iconos/Usuarios/24x24/User.png differ diff --git a/Resources/Iconos/Usuarios/24x24/Users.png b/Resources/Iconos/Usuarios/24x24/Users.png new file mode 100644 index 0000000..dbdd35c Binary files /dev/null and b/Resources/Iconos/Usuarios/24x24/Users.png differ diff --git a/Resources/Iconos/Usuarios/28x28/User-Add.png b/Resources/Iconos/Usuarios/28x28/User-Add.png new file mode 100644 index 0000000..76459dc Binary files /dev/null and b/Resources/Iconos/Usuarios/28x28/User-Add.png differ diff --git a/Resources/Iconos/Usuarios/28x28/User-Edit.png b/Resources/Iconos/Usuarios/28x28/User-Edit.png new file mode 100644 index 0000000..139ec63 Binary files /dev/null and b/Resources/Iconos/Usuarios/28x28/User-Edit.png differ diff --git a/Resources/Iconos/Usuarios/28x28/User-Password.png b/Resources/Iconos/Usuarios/28x28/User-Password.png new file mode 100644 index 0000000..7720bf1 Binary files /dev/null and b/Resources/Iconos/Usuarios/28x28/User-Password.png differ diff --git a/Resources/Iconos/Usuarios/28x28/User-Remove.png b/Resources/Iconos/Usuarios/28x28/User-Remove.png new file mode 100644 index 0000000..b046745 Binary files /dev/null and b/Resources/Iconos/Usuarios/28x28/User-Remove.png differ diff --git a/Resources/Iconos/Usuarios/28x28/User.png b/Resources/Iconos/Usuarios/28x28/User.png new file mode 100644 index 0000000..e389c2a Binary files /dev/null and b/Resources/Iconos/Usuarios/28x28/User.png differ diff --git a/Resources/Iconos/Usuarios/28x28/Users.png b/Resources/Iconos/Usuarios/28x28/Users.png new file mode 100644 index 0000000..4c006ba Binary files /dev/null and b/Resources/Iconos/Usuarios/28x28/Users.png differ diff --git a/Resources/Iconos/Usuarios/48x48/Users.png b/Resources/Iconos/Usuarios/48x48/Users.png new file mode 100644 index 0000000..1697dfe Binary files /dev/null and b/Resources/Iconos/Usuarios/48x48/Users.png differ diff --git a/Resources/Iconos/update.ico b/Resources/Iconos/update.ico new file mode 100644 index 0000000..8daedfb Binary files /dev/null and b/Resources/Iconos/update.ico differ diff --git a/Resources/Logotipos Tecsitel/Fondo Tecsitel Mantenimiento.bmp b/Resources/Logotipos Tecsitel/Fondo Tecsitel Mantenimiento.bmp new file mode 100644 index 0000000..9a521a8 Binary files /dev/null and b/Resources/Logotipos Tecsitel/Fondo Tecsitel Mantenimiento.bmp differ diff --git a/Resources/Logotipos Tecsitel/Logotipo-Tecsitel.jpg b/Resources/Logotipos Tecsitel/Logotipo-Tecsitel.jpg new file mode 100644 index 0000000..be149e3 Binary files /dev/null and b/Resources/Logotipos Tecsitel/Logotipo-Tecsitel.jpg differ diff --git a/Resources/Logotipos Tecsitel/Tecsitel Mantenimiento (grande).bmp b/Resources/Logotipos Tecsitel/Tecsitel Mantenimiento (grande).bmp new file mode 100644 index 0000000..e69b344 Binary files /dev/null and b/Resources/Logotipos Tecsitel/Tecsitel Mantenimiento (grande).bmp differ diff --git a/Resources/Logotipos Tecsitel/Tecsitel Mantenimiento.bmp b/Resources/Logotipos Tecsitel/Tecsitel Mantenimiento.bmp new file mode 100644 index 0000000..447bd31 Binary files /dev/null and b/Resources/Logotipos Tecsitel/Tecsitel Mantenimiento.bmp differ diff --git a/Resources/Logotipos Tecsitel/Tecsitel.bmp b/Resources/Logotipos Tecsitel/Tecsitel.bmp new file mode 100644 index 0000000..149b44d Binary files /dev/null and b/Resources/Logotipos Tecsitel/Tecsitel.bmp differ diff --git a/Resources/Memoria_presupuestos.gif b/Resources/Memoria_presupuestos.gif new file mode 100644 index 0000000..480d439 Binary files /dev/null and b/Resources/Memoria_presupuestos.gif differ diff --git a/Resources/Portada_presupuestos.gif b/Resources/Portada_presupuestos.gif new file mode 100644 index 0000000..84099e6 Binary files /dev/null and b/Resources/Portada_presupuestos.gif differ diff --git a/RodaxSoftware.FactuGES.Common.targets b/RodaxSoftware.FactuGES.Common.targets new file mode 100644 index 0000000..bea12b0 --- /dev/null +++ b/RodaxSoftware.FactuGES.Common.targets @@ -0,0 +1,285 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + '%(RootDir)%(Directory)bin\$(Configuration)\*$(NUnitFile)'); + @(TestProjects->'%(RootDir)%(Directory)bin\$(Configuration)\*$(LastTestRunSucceededFile)'); + @(TestProjects->'%(RootDir)%(Directory)bin\$(Configuration)\*$(NCoverFile)'); + @(TestProjects->'%(RootDir)%(Directory)bin\$(Configuration)\*$(NCoverLogFile)')"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/RodaxSoftware.FactuGES.proj b/RodaxSoftware.FactuGES.proj new file mode 100644 index 0000000..a34fd39 --- /dev/null +++ b/RodaxSoftware.FactuGES.proj @@ -0,0 +1,267 @@ + + + + %0D%0A + %0A%0D%0C%08 + %0A%20%08 + %09 + %40 + %25 + %22 + %27 + %0D + %0A + %20 + + + + + $(MSBuildProjectDirectory)\Build + $(MSBuildProjectDirectory)\Source + $(MSBuildProjectDirectory)\Installer + $(MSBuildProjectDirectory)\Database + $(MSBuildProjectDirectory)\Lib + $(MSBuildProjectDirectory)\Installer + $(MSBuildProjectDirectory)\Output + $(SqlFolder)\Scripts + $(MSBuildProjectDirectory)\Code Metrics + $(MSBuildProjectDirectory)\Tools + $(MSBuildProjectDirectory)\Qtp + \\qtpserver\qtpshare + $(QtpDeployFolder)\Install + $(QtpDeployFolder)\Uninstall + $(QtpFolder)\TestResults + + + + + DEV + localhost + firebird2 + sysdba + masterkey + $(ToolsFolder)\ISQL\isql.exe + smtp.somewhere.co.za + + + + + C:\Archivos de programa\FinalBuilder 5 + $(FinalBuilderPath)\FBCMD.exe + C:\Program Files\Subversion\bin + $(SubversionPath)\svn.exe + C:\Program Files\NCover\ + C:\Program Files\NCoverExplorer\ + C:\Program Files\NUnit-Net-2.0 2.2.10\bin + $(NUnitPath)\nunit-console.exe + C:\Program Files\Installshield 12 StandaloneBuild + $(InstallShieldPath)\IsSaBld.exe + + + + + + ..\Sanlam.snk + Sanlam.SanQuote.sln + $(MSBuildProjectDirectory)\IterationNumber.txt + $(MSBuildProjectDirectory)\Environment.txt + LastTestRunSucceeded + LastCodeAnalysisSucceeded + $(Temp)\InstallBuildEmailFile.htm + $(InstallFolder)\InstallBuildEmailTemplate.htm + TestResult.xml + CodeAnalysisLog.xml + Coverage.xml + Coverage.log + CoverageSummary.xml + CoverageSummary.html + $(SqlScriptsFolder)\CreateDBBackupsForAutomatedBuild.cmd + $(QtpFolder)\RunQTP.vbs + QtpResultsSummary.xml + + + + + $(MSBuildProjectDirectory) + https://svn.somewhere.co.za/sanquote + $(SvnServerPath)/trunk + $(SvnServerPath)/tags + + + + + SanQuote.msi + $(InstallFolder)\SanQuote.ism + $(InstallFolder)\SetMsiProductVersion.vbs + $(InstallFolder)\Binaries\InstallFiles + $(Temp)\SanQuote\Install + PROJECT_ASSISTANT\SINGLE_MSI_IMAGE\DiskImages\DISK1 + $(InstallFolder)\Merge Modules + + + + + 1 + 0 + $(Iteration) + Build + false + + + + + $(CodeOutputFolder) + Debug + AnyCPU + false + $(CodeOutputFolder)\Debug + $(CodeOutputFolder)\Release + + + + + + + + + + + $(CleanDependsOn); + CleanDatabase + CleanCode + CleanInstaller + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/ApplicationBase/ApplicationBase.bdsproj b/Source/ApplicationBase/ApplicationBase.bdsproj new file mode 100644 index 0000000..d4951b0 --- /dev/null +++ b/Source/ApplicationBase/ApplicationBase.bdsproj @@ -0,0 +1,697 @@ + + + + + + + + + + + + ApplicationBase.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\Lib + ..\Lib + + + + False + + + + + + False + + + True + False + + + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + + + + + + + + + + + + + + + + + + + + + VCL for the Web Design Package for CodeGear RAD Studio + CodeGear WebSnap Components + CodeGear SOAP Components + Microsoft Office XP Sample Automation Server Wrapper Components + Microsoft Office 2000 Sample Automation Server Wrapper Components + CodeGear C++Builder Office 2000 Servers Package + CodeGear C++Builder Office XP Servers Package + + + + + + diff --git a/Source/ApplicationBase/ApplicationBase.cfg b/Source/ApplicationBase/ApplicationBase.cfg new file mode 100644 index 0000000..7b0053c --- /dev/null +++ b/Source/ApplicationBase/ApplicationBase.cfg @@ -0,0 +1,40 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-N0".\" +-LE"..\..\..\..\Output\Debug\Cliente" +-LN"..\Lib" +-U"..\Lib" +-O"..\Lib" +-I"..\Lib" +-R"..\Lib" diff --git a/Source/ApplicationBase/ApplicationBase.dcu b/Source/ApplicationBase/ApplicationBase.dcu new file mode 100644 index 0000000..3ee9808 Binary files /dev/null and b/Source/ApplicationBase/ApplicationBase.dcu differ diff --git a/Source/ApplicationBase/ApplicationBase.dpk b/Source/ApplicationBase/ApplicationBase.dpk new file mode 100644 index 0000000..c17b8d7 --- /dev/null +++ b/Source/ApplicationBase/ApplicationBase.dpk @@ -0,0 +1,79 @@ +package ApplicationBase; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO OFF} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} +{$DEFINE DEBUG} + +requires + JvJansD11R, + PluginSDK_D11R, + Base, + GUIBase; + +contains + uFactuGES_App in 'uFactuGES_App.pas', + uPlugins_Intf in 'uPlugins_Intf.pas', + uIDataModuleUsuarios in 'Usuarios\Model\Data\uIDataModuleUsuarios.pas', + uDataModuleUsuarios in 'Usuarios\Data\uDataModuleUsuarios.pas' {DataModuleUsuarios}, + uUCROConn in 'Usuarios\Data\uUCROConn.pas', + uUsuariosController in 'Usuarios\Controller\uUsuariosController.pas', + uBizEmpresasDatosBancarios in 'Empresas\Model\uBizEmpresasDatosBancarios.pas', + schEmpresasClient_Intf in 'Empresas\Model\schEmpresasClient_Intf.pas', + schEmpresasServer_Intf in 'Empresas\Model\schEmpresasServer_Intf.pas', + uBizEmpresas in 'Empresas\Model\uBizEmpresas.pas', + uIDataModuleEmpresas in 'Empresas\Model\Data\uIDataModuleEmpresas.pas', + uDataModuleEmpresas in 'Empresas\Data\uDataModuleEmpresas.pas' {DataModuleEmpresasObj}, + uEmpresasController in 'Empresas\Controller\uEmpresasController.pas', + uDatosBancariosEmpresaController in 'Empresas\Controller\uDatosBancariosEmpresaController.pas', + uIEditorEmpresas in 'Empresas\Controller\View\uIEditorEmpresas.pas', + uIEditorDatosBancarioEmpresa in 'Empresas\Controller\View\uIEditorDatosBancarioEmpresa.pas', + uIEditorEmpresa in 'Empresas\Controller\View\uIEditorEmpresa.pas', + uViewEmpresa in 'Empresas\Views\uViewEmpresa.pas' {frViewEmpresa: TFrame}, + uEditorDatosBancariosEmpresa in 'Empresas\Views\uEditorDatosBancariosEmpresa.pas' {fEditorUsuarios: TForm}, + uEditorEmpresa in 'Empresas\Views\uEditorEmpresa.pas' {fEditorEmpresas: TForm}, + uEmpresasViewRegister in 'Empresas\Views\uEmpresasViewRegister.pas', + uViewDatosBancarios in 'Empresas\Views\uViewDatosBancarios.pas' {frViewDatosBancarios: TFrame}, + uBizUsuarios in 'Usuarios\Model\uBizUsuarios.pas', + schUsuariosServer_Intf in 'Usuarios\Model\schUsuariosServer_Intf.pas', + schUsuariosClient_Intf in 'Usuarios\Model\schUsuariosClient_Intf.pas', + uIEditorLogin in 'Usuarios\Controller\View\uIEditorLogin.pas', + uEditorLogin in 'Usuarios\Views\uEditorLogin.pas' {fEditorLogin}, + uUsuariosViewRegister in 'Usuarios\Views\uUsuariosViewRegister.pas', + uViewPerfilesUsuario in 'Usuarios\Views\uViewPerfilesUsuario.pas' {frViewPerfilesUsuario: TFrame}, + uEditorPerfilesUsuario in 'Usuarios\Views\uEditorPerfilesUsuario.pas' {fEditorPerfilesUsuario}, + uIEditorUsuarios in 'Usuarios\Controller\View\uIEditorUsuarios.pas', + uEditorPerfilUsuario in 'Usuarios\Views\uEditorPerfilUsuario.pas' {fEditorPerfilUsuario}, + uIEditorUsuario in 'Usuarios\Controller\View\uIEditorUsuario.pas', + uViewPerfilUsuario in 'Usuarios\Views\uViewPerfilUsuario.pas' {frViewPerfilUsuario: TFrame}, + uIEditorPerfilesUsuario in 'Usuarios\Controller\View\uIEditorPerfilesUsuario.pas', + uIEditorPerfilUsuario in 'Usuarios\Controller\View\uIEditorPerfilUsuario.pas', + uEditorUsuarios in 'Usuarios\Views\uEditorUsuarios.pas' {fEditorUsuarios: TForm}, + uViewUsuarios in 'Usuarios\Views\uViewUsuarios.pas' {frViewUsuarios: TFrame}, + uEditorUsuario in 'Usuarios\Views\uEditorUsuario.pas' {fEditorUsuario: TFrame}, + uViewUsuario in 'Usuarios\Views\uViewUsuario.pas' {frViewUsuario: TFrame}, + uEditorCambiarPassword in 'Usuarios\Views\uEditorCambiarPassword.pas' {fEditorCambiarPassword}, + uDataModuleProvinciasPoblaciones in 'ProvinciasPoblaciones\Data\uDataModuleProvinciasPoblaciones.pas' {DataModuleProvinciasPoblaciones: TDataModule}, + uProvinciasPoblacionesController in 'ProvinciasPoblaciones\Controller\uProvinciasPoblacionesController.pas'; + +end. diff --git a/Source/ApplicationBase/ApplicationBase.dproj b/Source/ApplicationBase/ApplicationBase.dproj new file mode 100644 index 0000000..7f62faa --- /dev/null +++ b/Source/ApplicationBase/ApplicationBase.dproj @@ -0,0 +1,635 @@ + + + + {c7a4a08b-6dd0-4010-a723-f18392a3641e} + ApplicationBase.dpk + Debug + AnyCPU + DCC32 + ..\..\Output\Debug\Cliente\ApplicationBase.bpl + + + 7.0 + False + False + False + True + 0 + RELEASE + .\ + .\ + .\ + ..\Lib + ..\Lib + ..\Lib + ..\Lib + ..\Lib + ..\..\Output\Debug\Cliente + + + 7.0 + False + True + DEBUG + .\ + .\ + .\ + ..\..\Output\Debug\Cliente + ..\Lib + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;..\Lib + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;..\Lib + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;..\Lib + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;..\Lib + 0 + True + True + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0ApplicationBase.dpk + + + + + MainSource + + + + + + + + + + + + +
DataModuleEmpresasObj
+
+ + + + + + +
fEditorUsuarios
+ TForm +
+ +
fEditorEmpresas
+ TForm +
+ + +
frViewDatosBancarios
+ TFrame +
+ +
frViewEmpresa
+ TFrame +
+ + +
DataModuleProvinciasPoblaciones
+ TDataModule +
+ + + + + + + + + +
DataModuleUsuarios
+
+ + + + + + +
fEditorCambiarPassword
+
+ +
fEditorLogin
+
+ +
fEditorPerfilesUsuario
+
+ +
fEditorPerfilUsuario
+
+ +
fEditorUsuario
+ TFrame +
+ +
fEditorUsuarios
+ T +
+ + +
frViewPerfilesUsuario
+ TFrame +
+ +
frViewPerfilUsuario
+ TFrame +
+ +
frViewUsuario
+ TFrame +
+ +
frViewUsuarios
+ TFrame +
+
+
+ diff --git a/Source/ApplicationBase/ApplicationBase.rc b/Source/ApplicationBase/ApplicationBase.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/ApplicationBase/ApplicationBase.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/ApplicationBase/ApplicationBase.res b/Source/ApplicationBase/ApplicationBase.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/ApplicationBase/ApplicationBase.res differ diff --git a/Source/ApplicationBase/Empresas/Controller/View/uIEditorDatosBancarioEmpresa.dcu b/Source/ApplicationBase/Empresas/Controller/View/uIEditorDatosBancarioEmpresa.dcu new file mode 100644 index 0000000..4867f74 Binary files /dev/null and b/Source/ApplicationBase/Empresas/Controller/View/uIEditorDatosBancarioEmpresa.dcu differ diff --git a/Source/ApplicationBase/Empresas/Controller/View/uIEditorDatosBancarioEmpresa.pas b/Source/ApplicationBase/Empresas/Controller/View/uIEditorDatosBancarioEmpresa.pas new file mode 100644 index 0000000..b4d4d6b --- /dev/null +++ b/Source/ApplicationBase/Empresas/Controller/View/uIEditorDatosBancarioEmpresa.pas @@ -0,0 +1,28 @@ +unit uIEditorDatosBancarioEmpresa; + +interface + +uses + uBizEmpresasDatosBancarios, uDatosBancariosEmpresaController; + +type + IEditorDatosBancariosEmpresa = interface + ['{486525AD-953D-453D-AF70-2FBBF39B5188}'] + + function GetController : IDatosBancariosEmpresaController; + procedure SetController (const Value : IDatosBancariosEmpresaController); + property Controller : IDatosBancariosEmpresaController read GetController + write SetController; + + function GetDatosBancarios: IBizEmpresasDatosBancarios; + procedure SetDatosBancarios(const Value: IBizEmpresasDatosBancarios); + property DatosBancarios: IBizEmpresasDatosBancarios read GetDatosBancarios write SetDatosBancarios; + + function ShowModal : Integer; + procedure Release; + end; + + +implementation + +end. diff --git a/Source/ApplicationBase/Empresas/Controller/View/uIEditorEmpresa.dcu b/Source/ApplicationBase/Empresas/Controller/View/uIEditorEmpresa.dcu new file mode 100644 index 0000000..90f5722 Binary files /dev/null and b/Source/ApplicationBase/Empresas/Controller/View/uIEditorEmpresa.dcu differ diff --git a/Source/ApplicationBase/Empresas/Controller/View/uIEditorEmpresa.pas b/Source/ApplicationBase/Empresas/Controller/View/uIEditorEmpresa.pas new file mode 100644 index 0000000..9c90c84 --- /dev/null +++ b/Source/ApplicationBase/Empresas/Controller/View/uIEditorEmpresa.pas @@ -0,0 +1,23 @@ +unit uIEditorEmpresa; + +interface + +uses + uEditorDBItem, uBizEmpresas, uEmpresasController; + +type + IEditorEmpresa = interface(IEditorDBItem) + ['{88FA3FF3-ACDC-4BCC-ADCE-6BA890E55220}'] + function GetController : IEmpresasController; + procedure SetController (const Value : IEmpresasController); + property Controller : IEmpresasController read GetController + write SetController; + + function GetEmpresa: IBizEmpresa; + procedure SetEmpresa(const Value: IBizEmpresa); + property Empresa: IBizEmpresa read GetEmpresa write SetEmpresa; + end; + +implementation + +end. diff --git a/Source/ApplicationBase/Empresas/Controller/View/uIEditorEmpresas.dcu b/Source/ApplicationBase/Empresas/Controller/View/uIEditorEmpresas.dcu new file mode 100644 index 0000000..267e802 Binary files /dev/null and b/Source/ApplicationBase/Empresas/Controller/View/uIEditorEmpresas.dcu differ diff --git a/Source/ApplicationBase/Empresas/Controller/View/uIEditorEmpresas.pas b/Source/ApplicationBase/Empresas/Controller/View/uIEditorEmpresas.pas new file mode 100644 index 0000000..305881f --- /dev/null +++ b/Source/ApplicationBase/Empresas/Controller/View/uIEditorEmpresas.pas @@ -0,0 +1,24 @@ +unit uIEditorEmpresas; + +interface + +uses + uEditorGridBase, uBizEmpresas, uEmpresasController; + +type + IEditorEmpresas = interface(IEditorGridBase) + ['{F4E5DE2F-C08A-47DA-827B-78BD31861BD0}'] + function GetEmpresas: IBizEmpresa; + procedure SetEmpresas(const Value: IBizEmpresa); + property Empresas: IBizEmpresa read GetEmpresas write SetEmpresas; + + function GetController : IEmpresasController; + procedure SetController (const Value : IEmpresasController); + property Controller : IEmpresasController read GetController + write SetController; + end; + + +implementation + +end. diff --git a/Source/ApplicationBase/Empresas/Controller/uDatosBancariosEmpresaController.dcu b/Source/ApplicationBase/Empresas/Controller/uDatosBancariosEmpresaController.dcu new file mode 100644 index 0000000..44b7fef Binary files /dev/null and b/Source/ApplicationBase/Empresas/Controller/uDatosBancariosEmpresaController.dcu differ diff --git a/Source/ApplicationBase/Empresas/Controller/uDatosBancariosEmpresaController.pas b/Source/ApplicationBase/Empresas/Controller/uDatosBancariosEmpresaController.pas new file mode 100644 index 0000000..6af352d --- /dev/null +++ b/Source/ApplicationBase/Empresas/Controller/uDatosBancariosEmpresaController.pas @@ -0,0 +1,64 @@ +unit uDatosBancariosEmpresaController; + +interface + +uses + Windows, Forms, Classes, Controls, Contnrs, SysUtils, uDADataTable, + uBizEmpresas, uBizEmpresasDatosBancarios, uIDataModuleEmpresas, + uControllerBase; + +type + IDatosBancariosEmpresaController = interface(IControllerBase) + ['{E9B0313E-7B16-420A-B47E-20E42E96BAC6}'] + procedure Ver(ADatosBancarios : IBizEmpresasDatosBancarios); + end; + + TDatosBancariosEmpresaController = class(TControllerBase, IDatosBancariosEmpresaController) + private + FDataModule : IDataModuleEmpresas; + public + procedure Ver(ADatosBancarios : IBizEmpresasDatosBancarios); + constructor Create; override; + destructor Destroy; override; + end; + +implementation + +{ TDatosBancariosEmpresaController } + +uses + uDataModuleEmpresas, schEmpresasClient_Intf, uIEditorDatosBancarioEmpresa, + uEditorRegistryUtils, cxControls; + +constructor TDatosBancariosEmpresaController.Create; +begin + inherited; +// FDataModule := TDataModuleEmpresas.Create(Nil); +end; + +destructor TDatosBancariosEmpresaController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + +procedure TDatosBancariosEmpresaController.Ver(ADatosBancarios : IBizEmpresasDatosBancarios); +var + AEditor : IEditorDatosBancariosEmpresa; +begin + AEditor := NIL; + CreateEditor('EditorDatosBancariosEmpresa', IEditorDatosBancariosEmpresa, AEditor); + if Assigned(AEditor) then + begin + try + AEditor.DatosBancarios := ADatosBancarios; + AEditor.Controller := Self; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; + end; +end; + +end. diff --git a/Source/ApplicationBase/Empresas/Controller/uEmpresasController.dcu b/Source/ApplicationBase/Empresas/Controller/uEmpresasController.dcu new file mode 100644 index 0000000..2c15f99 Binary files /dev/null and b/Source/ApplicationBase/Empresas/Controller/uEmpresasController.dcu differ diff --git a/Source/ApplicationBase/Empresas/Controller/uEmpresasController.pas b/Source/ApplicationBase/Empresas/Controller/uEmpresasController.pas new file mode 100644 index 0000000..7c1b6fd --- /dev/null +++ b/Source/ApplicationBase/Empresas/Controller/uEmpresasController.pas @@ -0,0 +1,399 @@ +unit uEmpresasController; + +interface + + +uses + Windows, Forms, Classes, Controls, Contnrs, SysUtils, + uBizEmpresas, uIDataModuleEmpresas, uDADataTable, uControllerBase; + +type + IEmpresasController = interface(IControllerBase) + ['{2F0AB21C-4F19-446E-87C4-B9C1038850FC}'] + function Buscar(const ID: Integer): IBizEmpresa; + function BuscarTodos: IBizEmpresa; + procedure Ver(AEmpresa : IBizEmpresa); + procedure VerTodos(AEmpresas: IBizEmpresa); + function Nuevo : IBizEmpresa; + procedure Anadir(AEmpresa : IBizEmpresa); + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(AEmpresa : IBizEmpresa): Boolean; overload; + function Guardar(AEmpresa : IBizEmpresa): Boolean; + procedure DescartarCambios(AEmpresa : IBizEmpresa); + function Existe(const ID: Integer) : Boolean; + function ToStringList(AEmpresa : IBizEmpresa) : TStringList; + function DarListaCuentasBancarias(AEmpresa : IBizEmpresa): TStringList; + function DarListaCuentasBancariasIBAN(AEmpresa : IBizEmpresa): TStringList; + + function DarListaFormasPago: TStringList; + function DarListaTiposIVA: TStringList; + function DarListaAlmacenes(const ID_EMPRESA: Integer): TStringList; + Procedure AsignarIDFormaPago(AEmpresa: IBizEmpresa; const IDFormaPago: Variant); + Procedure AsignarIDTipoIVA(AEmpresa: IBizEmpresa; const IDTipoIVA: Variant); + Procedure AsignarIDAlmacen(AEmpresa: IBizEmpresa; const IDAlmacen: Variant); + end; + + TEmpresasController = class(TControllerBase, IEmpresasController) + protected + FDataModule : IDataModuleEmpresas; + function ValidarEmpresa(AEmpresa : IBizEmpresa): Boolean; virtual; + public + constructor Create; override; + destructor Destroy; override; + + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(AEmpresa : IBizEmpresa): Boolean; overload; + function Guardar(AEmpresa : IBizEmpresa): Boolean; + procedure DescartarCambios(AEmpresa : IBizEmpresa); virtual; + function Existe(const ID: Integer) : Boolean; virtual; + procedure Anadir(AEmpresa : IBizEmpresa); virtual; + + function Buscar(const ID: Integer): IBizEmpresa; virtual; + function BuscarTodos: IBizEmpresa; virtual; + function Nuevo : IBizEmpresa; virtual; + procedure Ver(AEmpresa : IBizEmpresa); virtual; + procedure VerTodos(AEmpresas: IBizEmpresa); virtual; + function ToStringList(AEmpresa : IBizEmpresa) : TStringList; virtual; + function DarListaCuentasBancarias(AEmpresa : IBizEmpresa): TStringList; + function DarListaCuentasBancariasIBAN(AEmpresa : IBizEmpresa): TStringList; + + function DarListaFormasPago: TStringList; + function DarListaTiposIVA: TStringList; + function DarListaAlmacenes(const ID_EMPRESA: Integer): TStringList; + Procedure AsignarIDFormaPago(AEmpresa: IBizEmpresa; const IDFormaPago: Variant); + Procedure AsignarIDTipoIVA(AEmpresa: IBizEmpresa; const IDTipoIVA: Variant); + Procedure AsignarIDAlmacen(AEmpresa: IBizEmpresa; const IDAlmacen: Variant); + end; + +implementation + +uses + uEditorRegistryUtils, cxControls, DB, uFactuGES_App, uStringsUtils, + uDataModuleEmpresas, uIEditorEmpresa, uBizEmpresasDatosBancarios; + +{ TEmpresasController } + +procedure TEmpresasController.Anadir(AEmpresa: IBizEmpresa); +begin + AEmpresa.Insert; +end; + +procedure TEmpresasController.AsignarIDAlmacen(AEmpresa: IBizEmpresa; const IDAlmacen: Variant); +begin + if Assigned(AEmpresa) then + begin + if not AEmpresa.DataTable.Editing then + AEmpresa.DataTable.Edit; + + if EsCadenaVacia(IDAlmacen) then + AEmpresa.ID_ALMACENIsNull := true + else + AEmpresa.ID_ALMACEN := IDAlmacen; + + AEmpresa.DataTable.Post; + end; +end; + +procedure TEmpresasController.AsignarIDFormaPago(AEmpresa: IBizEmpresa; + const IDFormaPago: Variant); +begin + if Assigned(AEmpresa) then + begin + if not AEmpresa.DataTable.Editing then + AEmpresa.DataTable.Edit; + + if EsCadenaVacia(IDFormaPago) then + AEmpresa.ID_FORMA_PAGOIsNull := true + else + AEmpresa.ID_FORMA_PAGO := IDFormaPago; + + AEmpresa.DataTable.Post; + end; +end; + +procedure TEmpresasController.AsignarIDTipoIVA(AEmpresa: IBizEmpresa; + const IDTipoIVA: Variant); +begin + if Assigned(AEmpresa) then + begin + if not AEmpresa.DataTable.Editing then + AEmpresa.DataTable.Edit; + + if EsCadenaVacia(IDTipoIVA) then + AEmpresa.ID_TIPO_IVAIsNull := true + else + AEmpresa.ID_TIPO_IVA := IDTipoIVA; + + AEmpresa.DataTable.Post; + end; +end; + +function TEmpresasController.Buscar(const ID: Integer): IBizEmpresa; +begin + Result := FDataModule.GetItem(ID) +end; + +function TEmpresasController.BuscarTodos: IBizEmpresa; +begin + Result := FDataModule.GetItems; +end; + +constructor TEmpresasController.Create; +begin + inherited; + FDataModule := TDataModuleEmpresas.Create(Nil); +end; + +function TEmpresasController.DarListaAlmacenes(const ID_EMPRESA: Integer): TStringList; +begin + ShowHourglassCursor; + try + Result := FDataModule.DarListaAlmacenes(ID_EMPRESA); + finally + HideHourglassCursor; + end; +end; + +function TEmpresasController.DarListaCuentasBancarias( + AEmpresa: IBizEmpresa): TStringList; +var + ADatosBancarios: IBizEmpresasDatosBancarios; + Aux : String; +begin + if not Assigned(AEmpresa) then + raise Exception.Create ('Empresa no asignada (DarListaCuentasBancarias)'); + + ADatosBancarios := AEmpresa.DatosBancarios; + ADatosBancarios.DataTable.Active := True; + + Result := TStringList.Create; + ShowHourglassCursor; + try + with Result do + begin + ADatosBancarios.DataTable.First; + while not ADatosBancarios.DataTable.EOF do + begin + Aux := Format('N de cuenta: %s %s %s %s - %s', [ADatosBancarios.ENTIDAD, + ADatosBancarios.SUCURSAL, ADatosBancarios.DC, ADatosBancarios.CUENTA, ADatosBancarios.NOMBRE]); + Add(Format('%s=%d', [Aux, ADatosBancarios.ID])); + ADatosBancarios.DataTable.Next; + end; + end; + finally + ADatosBancarios := NIL; + HideHourglassCursor; + end; +end; + +function TEmpresasController.DarListaCuentasBancariasIBAN(AEmpresa: IBizEmpresa): TStringList; +var + ADatosBancarios: IBizEmpresasDatosBancarios; + Aux : String; +begin + if not Assigned(AEmpresa) then + raise Exception.Create ('Empresa no asignada (DarListaCuentasBancariasIBAN)'); + + ADatosBancarios := AEmpresa.DatosBancarios; + ADatosBancarios.DataTable.Active := True; + + Result := TStringList.Create; + ShowHourglassCursor; + try + with Result do + begin + ADatosBancarios.DataTable.First; + while not ADatosBancarios.DataTable.EOF do + begin + if not EsCadenaVacia(ADatosBancarios.IBAN) then + begin + Aux := Format('IBAN: %s - SWIFT: %s - %s', [ADatosBancarios.IBAN, ADatosBancarios.SWIFT, ADatosBancarios.NOMBRE]); + Add(Format('%s=%d', [Aux, ADatosBancarios.ID])); + end; + ADatosBancarios.DataTable.Next; + end; + end; + finally + ADatosBancarios := NIL; + HideHourglassCursor; + end; +end; + +function TEmpresasController.DarListaFormasPago: TStringList; +begin + ShowHourglassCursor; + try + Result := FDataModule.DarListaFormasPago; + finally + HideHourglassCursor; + end; +end; + +function TEmpresasController.DarListaTiposIVA: TStringList; +begin + ShowHourglassCursor; + try + Result := FDataModule.DarListaTiposIVA; + finally + HideHourglassCursor; + end; +end; + +procedure TEmpresasController.DescartarCambios(AEmpresa: IBizEmpresa); +begin + if not Assigned(AEmpresa) then + raise Exception.Create ('Empresa no asignada (DescartarCambios)'); + + ShowHourglassCursor; + try + if (AEmpresa.State in dsEditModes) then + AEmpresa.Cancel; + + AEmpresa.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TEmpresasController.Destroy; +begin + FDataModule := NIL; + inherited; +end; + +function TEmpresasController.Eliminar(AEmpresa: IBizEmpresa): Boolean; +begin + if not Assigned(AEmpresa) then + raise Exception.Create ('Empresa no asignada'); + + ShowHourglassCursor; + try + if (AEmpresa.State in dsEditModes) then + AEmpresa.Cancel; + + AEmpresa.Delete; + AEmpresa.DataTable.ApplyUpdates; + + Result := True; + finally + HideHourglassCursor; + end; +end; + +function TEmpresasController.Eliminar(const ID: Integer): Boolean; +var + AEmpresa : IBizEmpresa; +begin + AEmpresa := Buscar(ID); + + if not Assigned(AEmpresa) then + raise Exception.Create(Format('No se ha encontrado la empresa con ID = %d', [ID])); + + Result := Eliminar(AEmpresa); + AEmpresa := NIL; +end; + +function TEmpresasController.Existe(const ID: Integer): Boolean; +var + AEmpresa : IBizEmpresa; +begin + try + AEmpresa := Buscar(ID); + Result := Assigned(AEmpresa) and (AEmpresa.ID = ID); + finally + AEmpresa := NIL; + end; +end; + +function TEmpresasController.Guardar(AEmpresa: IBizEmpresa): Boolean; +begin + Result := False; + + if ValidarEmpresa(AEmpresa) then + begin + ShowHourglassCursor; + try + AEmpresa.DataTable.ApplyUpdates; + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TEmpresasController.Nuevo: IBizEmpresa; +begin + Result := FDataModule.NewItem; +end; + +function TEmpresasController.ToStringList(AEmpresa: IBizEmpresa): TStringList; +begin + Result := TStringList.Create; + with Result do + begin + AEmpresa.DataTable.Active := True; + AEmpresa.First; + while not AEmpresa.EOF do + begin + Add(AEmpresa.NOMBRE); + AEmpresa.Next; + end; + end; +end; + +function TEmpresasController.ValidarEmpresa(AEmpresa: IBizEmpresa): Boolean; +begin + if not Assigned(AEmpresa) then + raise Exception.Create ('Empresa no asignada'); + + if (AEmpresa.DataTable.State in dsEditModes) then + AEmpresa.DataTable.Post; + + if Length(AEmpresa.NOMBRE) = 0 then + raise Exception.Create('Debe indicar al menos el nombre de la empresa.'); + + // Asegurarse de valores en campos "automticos" + AEmpresa.Edit; + AEmpresa.USUARIO := AppFactuGES.UsuarioActivo.UserName; + AEmpresa.Post; + + Result := True; +end; + +procedure TEmpresasController.Ver(AEmpresa: IBizEmpresa); +var + AEditor : IEditorEmpresa; +begin + AEditor := NIL; + CreateEditor('EditorEmpresa', IEditorEmpresa, AEditor); + if Assigned(AEditor) then + try + AEditor.Empresa := AEmpresa; + AEditor.Controller := Self; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +procedure TEmpresasController.VerTodos(AEmpresas: IBizEmpresa); +{var + AEditor : IEditorEmpresas;} +begin +{ + AEditor := NIL; + CreateEditor('EditorEmpresas', IEditorClientes, AEditor); + if Assigned(AEditor) then + try + AEditor.Contactos := AContactos; + AEditor.Controller := Self; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; +} +end; + +end. diff --git a/Source/ApplicationBase/Empresas/Data/uDataModuleEmpresas.dcu b/Source/ApplicationBase/Empresas/Data/uDataModuleEmpresas.dcu new file mode 100644 index 0000000..0947806 Binary files /dev/null and b/Source/ApplicationBase/Empresas/Data/uDataModuleEmpresas.dcu differ diff --git a/Source/ApplicationBase/Empresas/Data/uDataModuleEmpresas.dfm b/Source/ApplicationBase/Empresas/Data/uDataModuleEmpresas.dfm new file mode 100644 index 0000000..1ccfd12 --- /dev/null +++ b/Source/ApplicationBase/Empresas/Data/uDataModuleEmpresas.dfm @@ -0,0 +1,320 @@ +inherited DataModuleEmpresas: TDataModuleEmpresas + OnCreate = DAClientDataModuleCreate + Height = 267 + Width = 402 + object RORemoteService: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvEmpresas' + Left = 48 + Top = 24 + end + object rda_Empresas: TDARemoteDataAdapter + DataStreamer = Bin2DataStreamer + GetSchemaCall.RemoteService = RORemoteService + GetDataCall.RemoteService = RORemoteService + UpdateDataCall.RemoteService = RORemoteService + GetScriptsCall.RemoteService = RORemoteService + RemoteService = RORemoteService + Left = 176 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 96 + end + object tbl_Empresas: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_EMPRESAS_ID' + LogChanges = False + Required = True + ServerAutoRefresh = True + DictionaryEntry = 'Empresas_ID' + InPrimaryKey = True + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + DisplayLabel = 'CIF' + DictionaryEntry = 'Empresas_NIF_CIF' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Nombre' + DictionaryEntry = 'Empresas_NOMBRE' + end + item + Name = 'RAZON_SOCIAL' + DataType = datString + Size = 255 + DisplayLabel = 'Raz'#243'n Social' + DictionaryEntry = 'Empresas_RAZON_SOCIAL' + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DisplayLabel = 'Calle' + DictionaryEntry = 'Empresas_CALLE' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DisplayLabel = 'Poblaci'#243'n' + DictionaryEntry = 'Empresas_POBLACION' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Provincia' + DictionaryEntry = 'Empresas_PROVINCIA' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#243'd. postal' + DictionaryEntry = 'Empresas_CODIGO_POSTAL' + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + DisplayLabel = 'Tel'#233'fono 1' + DictionaryEntry = 'Empresas_TELEFONO_1' + end + item + Name = 'TELEFONO_2' + DataType = datString + Size = 25 + DisplayLabel = 'Tel'#233'fono 2' + DictionaryEntry = 'Empresas_TELEFONO_2' + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + DisplayLabel = 'M'#243'vil 1' + DictionaryEntry = 'Empresas_MOVIL_1' + end + item + Name = 'MOVIL_2' + DataType = datString + Size = 25 + DisplayLabel = 'M'#243'vil 2' + DictionaryEntry = 'Empresas_MOVIL_2' + end + item + Name = 'FAX' + DataType = datString + Size = 25 + DisplayLabel = 'Fax' + DictionaryEntry = 'Empresas_FAX' + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + DisplayLabel = 'E-mail 1' + DictionaryEntry = 'Empresas_EMAIL_1' + end + item + Name = 'EMAIL_2' + DataType = datString + Size = 255 + DisplayLabel = 'E-mail 2' + DictionaryEntry = 'Empresas_EMAIL_2' + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + DisplayLabel = 'P'#225'gina web' + DictionaryEntry = 'Empresas_PAGINA_WEB' + end + item + Name = 'NOTAS' + DataType = datMemo + DisplayLabel = 'Notas' + DictionaryEntry = 'Empresas_NOTAS' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DisplayLabel = 'Empresas_FECHA_ALTA' + DictionaryEntry = 'Empresas_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DisplayLabel = 'Empresas_FECHA_MODIFICACION' + DictionaryEntry = 'Empresas_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DisplayLabel = 'Empresas_USUARIO' + DictionaryEntry = 'Empresas_USUARIO' + end + item + Name = 'LOGOTIPO' + DataType = datBlob + BlobType = dabtBlob + DisplayLabel = 'Logotipo' + DictionaryEntry = 'Empresas_LOGOTIPO' + end + item + Name = 'REGISTRO_MERCANTIL' + DataType = datString + Size = 255 + DisplayLabel = 'Registro mercantil' + DictionaryEntry = 'Empresas_REGISTRO_MERCANTIL' + end + item + Name = 'PARAM_TIEMPO' + DataType = datFloat + DictionaryEntry = 'Empresas_PARAM_TIEMPO' + end + item + Name = 'PARAM_MARGEN' + DataType = datFloat + DictionaryEntry = 'Empresas_PARAM_MARGEN' + end + item + Name = 'ID_TIPO_IVA' + DataType = datSmallInt + DisplayLabel = 'Empresas_ID_TIPO_IVA' + DictionaryEntry = 'Empresas_ID_TIPO_IVA' + end + item + Name = 'ID_FORMA_PAGO' + DataType = datSmallInt + DisplayLabel = 'Empresas_ID_FORMA_PAGO' + DictionaryEntry = 'Empresas_ID_FORMA_PAGO' + end + item + Name = 'ID_ALMACEN' + DataType = datSmallInt + DisplayLabel = 'Empresas_ID_ALMACEN' + DictionaryEntry = 'Empresas_ID_ALMACEN' + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Empresas + LogicalName = 'Empresas' + IndexDefs = <> + Left = 176 + Top = 96 + end + object ds_Empresas: TDADataSource + DataSet = tbl_Empresas.Dataset + DataTable = tbl_Empresas + Left = 176 + Top = 168 + end + object tbl_EmpresasDatosBanco: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_EMPRESAS_DATOS_BANCO_ID' + LogChanges = False + Required = True + ServerAutoRefresh = True + DictionaryEntry = 'EmpresasDatosBanco_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DisplayLabel = 'EmpresasDatosBanco_ID_EMPRESA' + DictionaryEntry = 'EmpresasDatosBanco_ID_EMPRESA' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Nombre del banco' + DictionaryEntry = 'EmpresasDatosBanco_NOMBRE' + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + DisplayLabel = 'Entidad' + DictionaryEntry = 'EmpresasDatosBanco_ENTIDAD' + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + DisplayLabel = 'Sucursal' + DictionaryEntry = 'EmpresasDatosBanco_SUCURSAL' + end + item + Name = 'DC' + DataType = datString + Size = 15 + DictionaryEntry = 'EmpresasDatosBanco_DC' + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + DisplayLabel = 'Cuenta' + DictionaryEntry = 'EmpresasDatosBanco_CUENTA' + end + item + Name = 'SUFIJO_N19' + DataType = datString + Size = 3 + DisplayLabel = 'Sufijo 19' + DictionaryEntry = 'EmpresasDatosBanco_SUFIJO_N19' + end + item + Name = 'SUFIJO_N58' + DataType = datString + Size = 3 + DisplayLabel = 'Sufijo 58' + DictionaryEntry = 'EmpresasDatosBanco_SUFIJO_N58' + end + item + Name = 'IBAN' + DataType = datString + Size = 255 + end + item + Name = 'SWIFT' + DataType = datString + Size = 255 + end> + Params = <> + MasterMappingMode = mmWhere + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Empresas + MasterSource = ds_Empresas + MasterFields = 'ID' + DetailFields = 'ID_EMPRESA' + LogicalName = 'EmpresasDatosBanco' + IndexDefs = <> + Left = 288 + Top = 96 + end + object ds_EmpresasDatosBanco: TDADataSource + DataSet = tbl_EmpresasDatosBanco.Dataset + DataTable = tbl_EmpresasDatosBanco + Left = 288 + Top = 168 + end +end diff --git a/Source/ApplicationBase/Empresas/Data/uDataModuleEmpresas.pas b/Source/ApplicationBase/Empresas/Data/uDataModuleEmpresas.pas new file mode 100644 index 0000000..6d7e63f --- /dev/null +++ b/Source/ApplicationBase/Empresas/Data/uDataModuleEmpresas.pas @@ -0,0 +1,138 @@ +unit uDataModuleEmpresas; + +interface + +uses {vcl:} SysUtils, Classes, DB, DBClient, + {RemObjects:} uDADataTable, uDAScriptingProvider, + uDACDSDataTable, uDABINAdapter, uRORemoteService, + uROClient, uROBinMessage, uROWinInetHttpChannel, uDADesigntimeCall, + uIDataModuleEmpresas, uBizEmpresas, uBizEmpresasDatosBancarios, + uDARemoteDataAdapter, uDADataStreamer, uRODynamicRequest, uDAInterfaces, + uDAMemDataTable, uDABin2DataStreamer, uIntegerListUtils, uDataModuleBase; + +type + TDataModuleEmpresas = class(TDataModuleBase, IDataModuleEmpresas) + RORemoteService: TRORemoteService; + rda_Empresas: TDARemoteDataAdapter; + Bin2DataStreamer: TDABin2DataStreamer; + tbl_Empresas: TDAMemDataTable; + ds_Empresas: TDADataSource; + tbl_EmpresasDatosBanco: TDAMemDataTable; + ds_EmpresasDatosBanco: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + private + function _GetDatosBancarios : IBizEmpresasDatosBancarios; + public + function GetItem(const ID : Integer) : IBizEmpresa; + function NewItem : IBizEmpresa; + function GetItems : IBizEmpresa; + + function DarListaFormasPago: TStringList; + function DarListaTiposIVA: TStringList; + function DarListaAlmacenes(const ID_EMPRESA: Integer): TStringList; + end; + +implementation + +{$R *.DFM} + +uses + uDataModuleConexion, uDataTableUtils, Dialogs, uROTypes, + FactuGES_Intf, schEmpresasClient_Intf, cxControls; + +procedure TDataModuleEmpresas.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleEmpresas.DarListaAlmacenes(const ID_EMPRESA: Integer): TStringList; +var + ABinary : Binary; +begin + ABinary := (RORemoteService as IsrvEmpresas).DarListaAlmacenes(ID_EMPRESA); + Result := TStringList.Create; + Result.LoadFromStream(ABinary); +end; + +function TDataModuleEmpresas.DarListaFormasPago: TStringList; +var + ABinary : Binary; +begin + ABinary := (RORemoteService as IsrvEmpresas).DarListaFormasPago; + Result := TStringList.Create; + Result.LoadFromStream(ABinary); +end; + +function TDataModuleEmpresas.DarListaTiposIVA: TStringList; +var + ABinary : Binary; +begin + ABinary := (RORemoteService as IsrvEmpresas).DarListaTiposIVA; + Result := TStringList.Create; + Result.LoadFromStream(ABinary); +end; + +function TDataModuleEmpresas.GetItem(const ID: Integer): IBizEmpresa; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + + with Result.DataTable.DynamicWhere do + begin + Clear; + // (ID = :ID) + Expression := NewBinaryExpression(NewField('', fld_EmpresasID), NewConstant(ID, datInteger), dboEqual); + end; + finally + HideHourglassCursor; + end; +end; + +function TDataModuleEmpresas.GetItems: IBizEmpresa; +var + AEmpresa : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AEmpresa := CloneDataTable(tbl_Empresas); + AEmpresa.BusinessRulesID := BIZ_CLIENT_EMPRESA; + + with TBizEmpresa(AEmpresa.BusinessEventsObj) do + begin + DatosBancarios := _GetDatosBancarios; + end; + + Result := (AEmpresa as IBizEmpresa); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleEmpresas.NewItem: IBizEmpresa; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleEmpresas._GetDatosBancarios: IBizEmpresasDatosBancarios; +var + ADatosBancarios : TDAMemDataTable; +begin + ShowHourglassCursor; + try + ADatosBancarios := CloneDataTable(tbl_EmpresasDatosBanco); + with ADatosBancarios do + begin + BusinessRulesID := BIZ_CLIENT_EMPRESAS_DATOS_BANCARIOS; + DetailOptions := DetailOptions - + [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; + end; + Result := (ADatosBancarios as IBizEmpresasDatosBancarios); + finally + HideHourglassCursor; + end; + +end; + +end. diff --git a/Source/ApplicationBase/Empresas/Model/Data/uIDataModuleEmpresas.dcu b/Source/ApplicationBase/Empresas/Model/Data/uIDataModuleEmpresas.dcu new file mode 100644 index 0000000..c089432 Binary files /dev/null and b/Source/ApplicationBase/Empresas/Model/Data/uIDataModuleEmpresas.dcu differ diff --git a/Source/ApplicationBase/Empresas/Model/Data/uIDataModuleEmpresas.pas b/Source/ApplicationBase/Empresas/Model/Data/uIDataModuleEmpresas.pas new file mode 100644 index 0000000..e8721e0 --- /dev/null +++ b/Source/ApplicationBase/Empresas/Model/Data/uIDataModuleEmpresas.pas @@ -0,0 +1,23 @@ +unit uIDataModuleEmpresas; + +interface + +uses + SysUtils, Classes, + uBizEmpresas; + +type + IDataModuleEmpresas = interface + ['{681FD37D-8C67-47F1-8286-2B6EFE95CE7D}'] + function GetItem(const ID : Integer) : IBizEmpresa; + function NewItem : IBizEmpresa; + function GetItems : IBizEmpresa; + + function DarListaFormasPago: TStringList; + function DarListaTiposIVA: TStringList; + function DarListaAlmacenes(const ID_EMPRESA: Integer): TStringList; + end; + +implementation + +end. diff --git a/Source/ApplicationBase/Empresas/Model/schEmpresasClient_Intf.dcu b/Source/ApplicationBase/Empresas/Model/schEmpresasClient_Intf.dcu new file mode 100644 index 0000000..763c094 Binary files /dev/null and b/Source/ApplicationBase/Empresas/Model/schEmpresasClient_Intf.dcu differ diff --git a/Source/ApplicationBase/Empresas/Model/schEmpresasClient_Intf.pas b/Source/ApplicationBase/Empresas/Model/schEmpresasClient_Intf.pas new file mode 100644 index 0000000..c376b57 --- /dev/null +++ b/Source/ApplicationBase/Empresas/Model/schEmpresasClient_Intf.pas @@ -0,0 +1,1453 @@ +unit schEmpresasClient_Intf; + +interface + +uses + Classes, DB, schBase_Intf, SysUtils, uROClasses, uDAInterfaces, uDADataTable, FmtBCD, uROXMLIntf; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_Empresas = '{88621D33-852A-4B38-8FFB-0894C98719CA}'; + RID_EmpresasDatosBanco = '{E2ABA941-53D7-41CD-9755-CCBD66A72247}'; + + { Data table names } + nme_Empresas = 'Empresas'; + nme_EmpresasDatosBanco = 'EmpresasDatosBanco'; + + { Empresas fields } + fld_EmpresasID = 'ID'; + fld_EmpresasNIF_CIF = 'NIF_CIF'; + fld_EmpresasNOMBRE = 'NOMBRE'; + fld_EmpresasRAZON_SOCIAL = 'RAZON_SOCIAL'; + fld_EmpresasCALLE = 'CALLE'; + fld_EmpresasPOBLACION = 'POBLACION'; + fld_EmpresasPROVINCIA = 'PROVINCIA'; + fld_EmpresasCODIGO_POSTAL = 'CODIGO_POSTAL'; + fld_EmpresasTELEFONO_1 = 'TELEFONO_1'; + fld_EmpresasTELEFONO_2 = 'TELEFONO_2'; + fld_EmpresasMOVIL_1 = 'MOVIL_1'; + fld_EmpresasMOVIL_2 = 'MOVIL_2'; + fld_EmpresasFAX = 'FAX'; + fld_EmpresasEMAIL_1 = 'EMAIL_1'; + fld_EmpresasEMAIL_2 = 'EMAIL_2'; + fld_EmpresasPAGINA_WEB = 'PAGINA_WEB'; + fld_EmpresasNOTAS = 'NOTAS'; + fld_EmpresasFECHA_ALTA = 'FECHA_ALTA'; + fld_EmpresasFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_EmpresasUSUARIO = 'USUARIO'; + fld_EmpresasLOGOTIPO = 'LOGOTIPO'; + fld_EmpresasREGISTRO_MERCANTIL = 'REGISTRO_MERCANTIL'; + fld_EmpresasPARAM_TIEMPO = 'PARAM_TIEMPO'; + fld_EmpresasPARAM_MARGEN = 'PARAM_MARGEN'; + fld_EmpresasID_TIPO_IVA = 'ID_TIPO_IVA'; + fld_EmpresasID_FORMA_PAGO = 'ID_FORMA_PAGO'; + fld_EmpresasID_ALMACEN = 'ID_ALMACEN'; + + { Empresas field indexes } + idx_EmpresasID = 0; + idx_EmpresasNIF_CIF = 1; + idx_EmpresasNOMBRE = 2; + idx_EmpresasRAZON_SOCIAL = 3; + idx_EmpresasCALLE = 4; + idx_EmpresasPOBLACION = 5; + idx_EmpresasPROVINCIA = 6; + idx_EmpresasCODIGO_POSTAL = 7; + idx_EmpresasTELEFONO_1 = 8; + idx_EmpresasTELEFONO_2 = 9; + idx_EmpresasMOVIL_1 = 10; + idx_EmpresasMOVIL_2 = 11; + idx_EmpresasFAX = 12; + idx_EmpresasEMAIL_1 = 13; + idx_EmpresasEMAIL_2 = 14; + idx_EmpresasPAGINA_WEB = 15; + idx_EmpresasNOTAS = 16; + idx_EmpresasFECHA_ALTA = 17; + idx_EmpresasFECHA_MODIFICACION = 18; + idx_EmpresasUSUARIO = 19; + idx_EmpresasLOGOTIPO = 20; + idx_EmpresasREGISTRO_MERCANTIL = 21; + idx_EmpresasPARAM_TIEMPO = 22; + idx_EmpresasPARAM_MARGEN = 23; + idx_EmpresasID_TIPO_IVA = 24; + idx_EmpresasID_FORMA_PAGO = 25; + idx_EmpresasID_ALMACEN = 26; + + { EmpresasDatosBanco fields } + fld_EmpresasDatosBancoID = 'ID'; + fld_EmpresasDatosBancoID_EMPRESA = 'ID_EMPRESA'; + fld_EmpresasDatosBancoNOMBRE = 'NOMBRE'; + fld_EmpresasDatosBancoENTIDAD = 'ENTIDAD'; + fld_EmpresasDatosBancoSUCURSAL = 'SUCURSAL'; + fld_EmpresasDatosBancoDC = 'DC'; + fld_EmpresasDatosBancoCUENTA = 'CUENTA'; + fld_EmpresasDatosBancoSUFIJO_N19 = 'SUFIJO_N19'; + fld_EmpresasDatosBancoSUFIJO_N58 = 'SUFIJO_N58'; + fld_EmpresasDatosBancoIBAN = 'IBAN'; + fld_EmpresasDatosBancoSWIFT = 'SWIFT'; + + { EmpresasDatosBanco field indexes } + idx_EmpresasDatosBancoID = 0; + idx_EmpresasDatosBancoID_EMPRESA = 1; + idx_EmpresasDatosBancoNOMBRE = 2; + idx_EmpresasDatosBancoENTIDAD = 3; + idx_EmpresasDatosBancoSUCURSAL = 4; + idx_EmpresasDatosBancoDC = 5; + idx_EmpresasDatosBancoCUENTA = 6; + idx_EmpresasDatosBancoSUFIJO_N19 = 7; + idx_EmpresasDatosBancoSUFIJO_N58 = 8; + idx_EmpresasDatosBancoIBAN = 9; + idx_EmpresasDatosBancoSWIFT = 10; + +type + { IEmpresas } + IEmpresas = interface(IDAStronglyTypedDataTable) + ['{50BEAD2C-AEF9-4858-AF21-E427E1B39CC6}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetNIF_CIFValue: String; + procedure SetNIF_CIFValue(const aValue: String); + function GetNIF_CIFIsNull: Boolean; + procedure SetNIF_CIFIsNull(const aValue: Boolean); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetNOMBREIsNull: Boolean; + procedure SetNOMBREIsNull(const aValue: Boolean); + function GetRAZON_SOCIALValue: String; + procedure SetRAZON_SOCIALValue(const aValue: String); + function GetRAZON_SOCIALIsNull: Boolean; + procedure SetRAZON_SOCIALIsNull(const aValue: Boolean); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetCALLEIsNull: Boolean; + procedure SetCALLEIsNull(const aValue: Boolean); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPOBLACIONIsNull: Boolean; + procedure SetPOBLACIONIsNull(const aValue: Boolean); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetPROVINCIAIsNull: Boolean; + procedure SetPROVINCIAIsNull(const aValue: Boolean); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetCODIGO_POSTALIsNull: Boolean; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); + function GetTELEFONO_1Value: String; + procedure SetTELEFONO_1Value(const aValue: String); + function GetTELEFONO_1IsNull: Boolean; + procedure SetTELEFONO_1IsNull(const aValue: Boolean); + function GetTELEFONO_2Value: String; + procedure SetTELEFONO_2Value(const aValue: String); + function GetTELEFONO_2IsNull: Boolean; + procedure SetTELEFONO_2IsNull(const aValue: Boolean); + function GetMOVIL_1Value: String; + procedure SetMOVIL_1Value(const aValue: String); + function GetMOVIL_1IsNull: Boolean; + procedure SetMOVIL_1IsNull(const aValue: Boolean); + function GetMOVIL_2Value: String; + procedure SetMOVIL_2Value(const aValue: String); + function GetMOVIL_2IsNull: Boolean; + procedure SetMOVIL_2IsNull(const aValue: Boolean); + function GetFAXValue: String; + procedure SetFAXValue(const aValue: String); + function GetFAXIsNull: Boolean; + procedure SetFAXIsNull(const aValue: Boolean); + function GetEMAIL_1Value: String; + procedure SetEMAIL_1Value(const aValue: String); + function GetEMAIL_1IsNull: Boolean; + procedure SetEMAIL_1IsNull(const aValue: Boolean); + function GetEMAIL_2Value: String; + procedure SetEMAIL_2Value(const aValue: String); + function GetEMAIL_2IsNull: Boolean; + procedure SetEMAIL_2IsNull(const aValue: Boolean); + function GetPAGINA_WEBValue: String; + procedure SetPAGINA_WEBValue(const aValue: String); + function GetPAGINA_WEBIsNull: Boolean; + procedure SetPAGINA_WEBIsNull(const aValue: Boolean); + function GetNOTASValue: IROStrings; + function GetNOTASIsNull: Boolean; + procedure SetNOTASIsNull(const aValue: Boolean); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_ALTAIsNull: Boolean; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONIsNull: Boolean; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetUSUARIOIsNull: Boolean; + procedure SetUSUARIOIsNull(const aValue: Boolean); + function GetLOGOTIPOValue: IROStream; + function GetLOGOTIPOIsNull: Boolean; + procedure SetLOGOTIPOIsNull(const aValue: Boolean); + function GetREGISTRO_MERCANTILValue: String; + procedure SetREGISTRO_MERCANTILValue(const aValue: String); + function GetREGISTRO_MERCANTILIsNull: Boolean; + procedure SetREGISTRO_MERCANTILIsNull(const aValue: Boolean); + function GetPARAM_TIEMPOValue: Float; + procedure SetPARAM_TIEMPOValue(const aValue: Float); + function GetPARAM_TIEMPOIsNull: Boolean; + procedure SetPARAM_TIEMPOIsNull(const aValue: Boolean); + function GetPARAM_MARGENValue: Float; + procedure SetPARAM_MARGENValue(const aValue: Float); + function GetPARAM_MARGENIsNull: Boolean; + procedure SetPARAM_MARGENIsNull(const aValue: Boolean); + function GetID_TIPO_IVAValue: SmallInt; + procedure SetID_TIPO_IVAValue(const aValue: SmallInt); + function GetID_TIPO_IVAIsNull: Boolean; + procedure SetID_TIPO_IVAIsNull(const aValue: Boolean); + function GetID_FORMA_PAGOValue: SmallInt; + procedure SetID_FORMA_PAGOValue(const aValue: SmallInt); + function GetID_FORMA_PAGOIsNull: Boolean; + procedure SetID_FORMA_PAGOIsNull(const aValue: Boolean); + function GetID_ALMACENValue: SmallInt; + procedure SetID_ALMACENValue(const aValue: SmallInt); + function GetID_ALMACENIsNull: Boolean; + procedure SetID_ALMACENIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NIF_CIFIsNull: Boolean read GetNIF_CIFIsNull write SetNIF_CIFIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property RAZON_SOCIAL: String read GetRAZON_SOCIALValue write SetRAZON_SOCIALValue; + property RAZON_SOCIALIsNull: Boolean read GetRAZON_SOCIALIsNull write SetRAZON_SOCIALIsNull; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_1IsNull: Boolean read GetTELEFONO_1IsNull write SetTELEFONO_1IsNull; + property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property TELEFONO_2IsNull: Boolean read GetTELEFONO_2IsNull write SetTELEFONO_2IsNull; + property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_1IsNull: Boolean read GetMOVIL_1IsNull write SetMOVIL_1IsNull; + property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value; + property MOVIL_2IsNull: Boolean read GetMOVIL_2IsNull write SetMOVIL_2IsNull; + property FAX: String read GetFAXValue write SetFAXValue; + property FAXIsNull: Boolean read GetFAXIsNull write SetFAXIsNull; + property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_1IsNull: Boolean read GetEMAIL_1IsNull write SetEMAIL_1IsNull; + property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value; + property EMAIL_2IsNull: Boolean read GetEMAIL_2IsNull write SetEMAIL_2IsNull; + property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property PAGINA_WEBIsNull: Boolean read GetPAGINA_WEBIsNull write SetPAGINA_WEBIsNull; + property NOTAS: IROStrings read GetNOTASValue; + property NOTASIsNull: Boolean read GetNOTASIsNull write SetNOTASIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property LOGOTIPO: IROStream read GetLOGOTIPOValue; + property LOGOTIPOIsNull: Boolean read GetLOGOTIPOIsNull write SetLOGOTIPOIsNull; + property REGISTRO_MERCANTIL: String read GetREGISTRO_MERCANTILValue write SetREGISTRO_MERCANTILValue; + property REGISTRO_MERCANTILIsNull: Boolean read GetREGISTRO_MERCANTILIsNull write SetREGISTRO_MERCANTILIsNull; + property PARAM_TIEMPO: Float read GetPARAM_TIEMPOValue write SetPARAM_TIEMPOValue; + property PARAM_TIEMPOIsNull: Boolean read GetPARAM_TIEMPOIsNull write SetPARAM_TIEMPOIsNull; + property PARAM_MARGEN: Float read GetPARAM_MARGENValue write SetPARAM_MARGENValue; + property PARAM_MARGENIsNull: Boolean read GetPARAM_MARGENIsNull write SetPARAM_MARGENIsNull; + property ID_TIPO_IVA: SmallInt read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue; + property ID_TIPO_IVAIsNull: Boolean read GetID_TIPO_IVAIsNull write SetID_TIPO_IVAIsNull; + property ID_FORMA_PAGO: SmallInt read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property ID_FORMA_PAGOIsNull: Boolean read GetID_FORMA_PAGOIsNull write SetID_FORMA_PAGOIsNull; + property ID_ALMACEN: SmallInt read GetID_ALMACENValue write SetID_ALMACENValue; + property ID_ALMACENIsNull: Boolean read GetID_ALMACENIsNull write SetID_ALMACENIsNull; + end; + + { TEmpresasDataTableRules } + TEmpresasDataTableRules = class(TIntfObjectDADataTableRules, IEmpresas) + private + f_NOTAS: IROStrings; + f_LOGOTIPO: IROStream; + procedure NOTAS_OnChange(Sender: TObject); + procedure LOGOTIPO_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetNIF_CIFValue: String; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + function GetNIF_CIFIsNull: Boolean; virtual; + procedure SetNIF_CIFIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetRAZON_SOCIALValue: String; virtual; + procedure SetRAZON_SOCIALValue(const aValue: String); virtual; + function GetRAZON_SOCIALIsNull: Boolean; virtual; + procedure SetRAZON_SOCIALIsNull(const aValue: Boolean); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetCALLEIsNull: Boolean; virtual; + procedure SetCALLEIsNull(const aValue: Boolean); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPOBLACIONIsNull: Boolean; virtual; + procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetPROVINCIAIsNull: Boolean; virtual; + procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetCODIGO_POSTALIsNull: Boolean; virtual; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual; + function GetTELEFONO_1Value: String; virtual; + procedure SetTELEFONO_1Value(const aValue: String); virtual; + function GetTELEFONO_1IsNull: Boolean; virtual; + procedure SetTELEFONO_1IsNull(const aValue: Boolean); virtual; + function GetTELEFONO_2Value: String; virtual; + procedure SetTELEFONO_2Value(const aValue: String); virtual; + function GetTELEFONO_2IsNull: Boolean; virtual; + procedure SetTELEFONO_2IsNull(const aValue: Boolean); virtual; + function GetMOVIL_1Value: String; virtual; + procedure SetMOVIL_1Value(const aValue: String); virtual; + function GetMOVIL_1IsNull: Boolean; virtual; + procedure SetMOVIL_1IsNull(const aValue: Boolean); virtual; + function GetMOVIL_2Value: String; virtual; + procedure SetMOVIL_2Value(const aValue: String); virtual; + function GetMOVIL_2IsNull: Boolean; virtual; + procedure SetMOVIL_2IsNull(const aValue: Boolean); virtual; + function GetFAXValue: String; virtual; + procedure SetFAXValue(const aValue: String); virtual; + function GetFAXIsNull: Boolean; virtual; + procedure SetFAXIsNull(const aValue: Boolean); virtual; + function GetEMAIL_1Value: String; virtual; + procedure SetEMAIL_1Value(const aValue: String); virtual; + function GetEMAIL_1IsNull: Boolean; virtual; + procedure SetEMAIL_1IsNull(const aValue: Boolean); virtual; + function GetEMAIL_2Value: String; virtual; + procedure SetEMAIL_2Value(const aValue: String); virtual; + function GetEMAIL_2IsNull: Boolean; virtual; + procedure SetEMAIL_2IsNull(const aValue: Boolean); virtual; + function GetPAGINA_WEBValue: String; virtual; + procedure SetPAGINA_WEBValue(const aValue: String); virtual; + function GetPAGINA_WEBIsNull: Boolean; virtual; + procedure SetPAGINA_WEBIsNull(const aValue: Boolean); virtual; + function GetNOTASValue: IROStrings; virtual; + function GetNOTASIsNull: Boolean; virtual; + procedure SetNOTASIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetLOGOTIPOValue: IROStream; virtual; + function GetLOGOTIPOIsNull: Boolean; virtual; + procedure SetLOGOTIPOIsNull(const aValue: Boolean); virtual; + function GetREGISTRO_MERCANTILValue: String; virtual; + procedure SetREGISTRO_MERCANTILValue(const aValue: String); virtual; + function GetREGISTRO_MERCANTILIsNull: Boolean; virtual; + procedure SetREGISTRO_MERCANTILIsNull(const aValue: Boolean); virtual; + function GetPARAM_TIEMPOValue: Float; virtual; + procedure SetPARAM_TIEMPOValue(const aValue: Float); virtual; + function GetPARAM_TIEMPOIsNull: Boolean; virtual; + procedure SetPARAM_TIEMPOIsNull(const aValue: Boolean); virtual; + function GetPARAM_MARGENValue: Float; virtual; + procedure SetPARAM_MARGENValue(const aValue: Float); virtual; + function GetPARAM_MARGENIsNull: Boolean; virtual; + procedure SetPARAM_MARGENIsNull(const aValue: Boolean); virtual; + function GetID_TIPO_IVAValue: SmallInt; virtual; + procedure SetID_TIPO_IVAValue(const aValue: SmallInt); virtual; + function GetID_TIPO_IVAIsNull: Boolean; virtual; + procedure SetID_TIPO_IVAIsNull(const aValue: Boolean); virtual; + function GetID_FORMA_PAGOValue: SmallInt; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: SmallInt); virtual; + function GetID_FORMA_PAGOIsNull: Boolean; virtual; + procedure SetID_FORMA_PAGOIsNull(const aValue: Boolean); virtual; + function GetID_ALMACENValue: SmallInt; virtual; + procedure SetID_ALMACENValue(const aValue: SmallInt); virtual; + function GetID_ALMACENIsNull: Boolean; virtual; + procedure SetID_ALMACENIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NIF_CIFIsNull: Boolean read GetNIF_CIFIsNull write SetNIF_CIFIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property RAZON_SOCIAL: String read GetRAZON_SOCIALValue write SetRAZON_SOCIALValue; + property RAZON_SOCIALIsNull: Boolean read GetRAZON_SOCIALIsNull write SetRAZON_SOCIALIsNull; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_1IsNull: Boolean read GetTELEFONO_1IsNull write SetTELEFONO_1IsNull; + property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property TELEFONO_2IsNull: Boolean read GetTELEFONO_2IsNull write SetTELEFONO_2IsNull; + property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_1IsNull: Boolean read GetMOVIL_1IsNull write SetMOVIL_1IsNull; + property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value; + property MOVIL_2IsNull: Boolean read GetMOVIL_2IsNull write SetMOVIL_2IsNull; + property FAX: String read GetFAXValue write SetFAXValue; + property FAXIsNull: Boolean read GetFAXIsNull write SetFAXIsNull; + property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_1IsNull: Boolean read GetEMAIL_1IsNull write SetEMAIL_1IsNull; + property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value; + property EMAIL_2IsNull: Boolean read GetEMAIL_2IsNull write SetEMAIL_2IsNull; + property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property PAGINA_WEBIsNull: Boolean read GetPAGINA_WEBIsNull write SetPAGINA_WEBIsNull; + property NOTAS: IROStrings read GetNOTASValue; + property NOTASIsNull: Boolean read GetNOTASIsNull write SetNOTASIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property LOGOTIPO: IROStream read GetLOGOTIPOValue; + property LOGOTIPOIsNull: Boolean read GetLOGOTIPOIsNull write SetLOGOTIPOIsNull; + property REGISTRO_MERCANTIL: String read GetREGISTRO_MERCANTILValue write SetREGISTRO_MERCANTILValue; + property REGISTRO_MERCANTILIsNull: Boolean read GetREGISTRO_MERCANTILIsNull write SetREGISTRO_MERCANTILIsNull; + property PARAM_TIEMPO: Float read GetPARAM_TIEMPOValue write SetPARAM_TIEMPOValue; + property PARAM_TIEMPOIsNull: Boolean read GetPARAM_TIEMPOIsNull write SetPARAM_TIEMPOIsNull; + property PARAM_MARGEN: Float read GetPARAM_MARGENValue write SetPARAM_MARGENValue; + property PARAM_MARGENIsNull: Boolean read GetPARAM_MARGENIsNull write SetPARAM_MARGENIsNull; + property ID_TIPO_IVA: SmallInt read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue; + property ID_TIPO_IVAIsNull: Boolean read GetID_TIPO_IVAIsNull write SetID_TIPO_IVAIsNull; + property ID_FORMA_PAGO: SmallInt read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property ID_FORMA_PAGOIsNull: Boolean read GetID_FORMA_PAGOIsNull write SetID_FORMA_PAGOIsNull; + property ID_ALMACEN: SmallInt read GetID_ALMACENValue write SetID_ALMACENValue; + property ID_ALMACENIsNull: Boolean read GetID_ALMACENIsNull write SetID_ALMACENIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IEmpresasDatosBanco } + IEmpresasDatosBanco = interface(IDAStronglyTypedDataTable) + ['{092FC338-3912-4550-982D-89A97A0ACFDD}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_EMPRESAIsNull: Boolean; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetNOMBREIsNull: Boolean; + procedure SetNOMBREIsNull(const aValue: Boolean); + function GetENTIDADValue: String; + procedure SetENTIDADValue(const aValue: String); + function GetENTIDADIsNull: Boolean; + procedure SetENTIDADIsNull(const aValue: Boolean); + function GetSUCURSALValue: String; + procedure SetSUCURSALValue(const aValue: String); + function GetSUCURSALIsNull: Boolean; + procedure SetSUCURSALIsNull(const aValue: Boolean); + function GetDCValue: String; + procedure SetDCValue(const aValue: String); + function GetDCIsNull: Boolean; + procedure SetDCIsNull(const aValue: Boolean); + function GetCUENTAValue: String; + procedure SetCUENTAValue(const aValue: String); + function GetCUENTAIsNull: Boolean; + procedure SetCUENTAIsNull(const aValue: Boolean); + function GetSUFIJO_N19Value: String; + procedure SetSUFIJO_N19Value(const aValue: String); + function GetSUFIJO_N19IsNull: Boolean; + procedure SetSUFIJO_N19IsNull(const aValue: Boolean); + function GetSUFIJO_N58Value: String; + procedure SetSUFIJO_N58Value(const aValue: String); + function GetSUFIJO_N58IsNull: Boolean; + procedure SetSUFIJO_N58IsNull(const aValue: Boolean); + function GetIBANValue: String; + procedure SetIBANValue(const aValue: String); + function GetIBANIsNull: Boolean; + procedure SetIBANIsNull(const aValue: Boolean); + function GetSWIFTValue: String; + procedure SetSWIFTValue(const aValue: String); + function GetSWIFTIsNull: Boolean; + procedure SetSWIFTIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property ENTIDAD: String read GetENTIDADValue write SetENTIDADValue; + property ENTIDADIsNull: Boolean read GetENTIDADIsNull write SetENTIDADIsNull; + property SUCURSAL: String read GetSUCURSALValue write SetSUCURSALValue; + property SUCURSALIsNull: Boolean read GetSUCURSALIsNull write SetSUCURSALIsNull; + property DC: String read GetDCValue write SetDCValue; + property DCIsNull: Boolean read GetDCIsNull write SetDCIsNull; + property CUENTA: String read GetCUENTAValue write SetCUENTAValue; + property CUENTAIsNull: Boolean read GetCUENTAIsNull write SetCUENTAIsNull; + property SUFIJO_N19: String read GetSUFIJO_N19Value write SetSUFIJO_N19Value; + property SUFIJO_N19IsNull: Boolean read GetSUFIJO_N19IsNull write SetSUFIJO_N19IsNull; + property SUFIJO_N58: String read GetSUFIJO_N58Value write SetSUFIJO_N58Value; + property SUFIJO_N58IsNull: Boolean read GetSUFIJO_N58IsNull write SetSUFIJO_N58IsNull; + property IBAN: String read GetIBANValue write SetIBANValue; + property IBANIsNull: Boolean read GetIBANIsNull write SetIBANIsNull; + property SWIFT: String read GetSWIFTValue write SetSWIFTValue; + property SWIFTIsNull: Boolean read GetSWIFTIsNull write SetSWIFTIsNull; + end; + + { TEmpresasDatosBancoDataTableRules } + TEmpresasDatosBancoDataTableRules = class(TIntfObjectDADataTableRules, IEmpresasDatosBanco) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetENTIDADValue: String; virtual; + procedure SetENTIDADValue(const aValue: String); virtual; + function GetENTIDADIsNull: Boolean; virtual; + procedure SetENTIDADIsNull(const aValue: Boolean); virtual; + function GetSUCURSALValue: String; virtual; + procedure SetSUCURSALValue(const aValue: String); virtual; + function GetSUCURSALIsNull: Boolean; virtual; + procedure SetSUCURSALIsNull(const aValue: Boolean); virtual; + function GetDCValue: String; virtual; + procedure SetDCValue(const aValue: String); virtual; + function GetDCIsNull: Boolean; virtual; + procedure SetDCIsNull(const aValue: Boolean); virtual; + function GetCUENTAValue: String; virtual; + procedure SetCUENTAValue(const aValue: String); virtual; + function GetCUENTAIsNull: Boolean; virtual; + procedure SetCUENTAIsNull(const aValue: Boolean); virtual; + function GetSUFIJO_N19Value: String; virtual; + procedure SetSUFIJO_N19Value(const aValue: String); virtual; + function GetSUFIJO_N19IsNull: Boolean; virtual; + procedure SetSUFIJO_N19IsNull(const aValue: Boolean); virtual; + function GetSUFIJO_N58Value: String; virtual; + procedure SetSUFIJO_N58Value(const aValue: String); virtual; + function GetSUFIJO_N58IsNull: Boolean; virtual; + procedure SetSUFIJO_N58IsNull(const aValue: Boolean); virtual; + function GetIBANValue: String; virtual; + procedure SetIBANValue(const aValue: String); virtual; + function GetIBANIsNull: Boolean; virtual; + procedure SetIBANIsNull(const aValue: Boolean); virtual; + function GetSWIFTValue: String; virtual; + procedure SetSWIFTValue(const aValue: String); virtual; + function GetSWIFTIsNull: Boolean; virtual; + procedure SetSWIFTIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property ENTIDAD: String read GetENTIDADValue write SetENTIDADValue; + property ENTIDADIsNull: Boolean read GetENTIDADIsNull write SetENTIDADIsNull; + property SUCURSAL: String read GetSUCURSALValue write SetSUCURSALValue; + property SUCURSALIsNull: Boolean read GetSUCURSALIsNull write SetSUCURSALIsNull; + property DC: String read GetDCValue write SetDCValue; + property DCIsNull: Boolean read GetDCIsNull write SetDCIsNull; + property CUENTA: String read GetCUENTAValue write SetCUENTAValue; + property CUENTAIsNull: Boolean read GetCUENTAIsNull write SetCUENTAIsNull; + property SUFIJO_N19: String read GetSUFIJO_N19Value write SetSUFIJO_N19Value; + property SUFIJO_N19IsNull: Boolean read GetSUFIJO_N19IsNull write SetSUFIJO_N19IsNull; + property SUFIJO_N58: String read GetSUFIJO_N58Value write SetSUFIJO_N58Value; + property SUFIJO_N58IsNull: Boolean read GetSUFIJO_N58IsNull write SetSUFIJO_N58IsNull; + property IBAN: String read GetIBANValue write SetIBANValue; + property IBANIsNull: Boolean read GetIBANIsNull write SetIBANIsNull; + property SWIFT: String read GetSWIFTValue write SetSWIFTValue; + property SWIFTIsNull: Boolean read GetSWIFTIsNull write SetSWIFTIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants, uROBinaryHelpers; + +{ TEmpresasDataTableRules } +constructor TEmpresasDataTableRules.Create(aDataTable: TDADataTable); +var + StrList: TStringList; + ROStream: TROStream; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := NOTAS_OnChange; + f_NOTAS := NewROStrings(StrList,True); + + ROStream := TROStream.Create; + ROStream.OnChange := LOGOTIPO_OnChange; + f_LOGOTIPO := ROStream; +end; + +destructor TEmpresasDataTableRules.Destroy; +begin + inherited; +end; + +procedure TEmpresasDataTableRules.NOTAS_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_EmpresasNOTAS].AsVariant := TStringList(Sender).Text; +end; + +procedure TEmpresasDataTableRules.LOGOTIPO_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_EmpresasLOGOTIPO].LoadFromStream(TROStream(Sender)); +end; + +function TEmpresasDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_EmpresasID].AsInteger; +end; + +procedure TEmpresasDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_EmpresasID].AsInteger := aValue; +end; + +function TEmpresasDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasID].IsNull; +end; + +procedure TEmpresasDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasID].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetNIF_CIFValue: String; +begin + result := DataTable.Fields[idx_EmpresasNIF_CIF].AsString; +end; + +procedure TEmpresasDataTableRules.SetNIF_CIFValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasNIF_CIF].AsString := aValue; +end; + +function TEmpresasDataTableRules.GetNIF_CIFIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasNIF_CIF].IsNull; +end; + +procedure TEmpresasDataTableRules.SetNIF_CIFIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasNIF_CIF].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_EmpresasNOMBRE].AsString; +end; + +procedure TEmpresasDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasNOMBRE].AsString := aValue; +end; + +function TEmpresasDataTableRules.GetNOMBREIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasNOMBRE].IsNull; +end; + +procedure TEmpresasDataTableRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasNOMBRE].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetRAZON_SOCIALValue: String; +begin + result := DataTable.Fields[idx_EmpresasRAZON_SOCIAL].AsString; +end; + +procedure TEmpresasDataTableRules.SetRAZON_SOCIALValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasRAZON_SOCIAL].AsString := aValue; +end; + +function TEmpresasDataTableRules.GetRAZON_SOCIALIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasRAZON_SOCIAL].IsNull; +end; + +procedure TEmpresasDataTableRules.SetRAZON_SOCIALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasRAZON_SOCIAL].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetCALLEValue: String; +begin + result := DataTable.Fields[idx_EmpresasCALLE].AsString; +end; + +procedure TEmpresasDataTableRules.SetCALLEValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasCALLE].AsString := aValue; +end; + +function TEmpresasDataTableRules.GetCALLEIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasCALLE].IsNull; +end; + +procedure TEmpresasDataTableRules.SetCALLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasCALLE].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetPOBLACIONValue: String; +begin + result := DataTable.Fields[idx_EmpresasPOBLACION].AsString; +end; + +procedure TEmpresasDataTableRules.SetPOBLACIONValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasPOBLACION].AsString := aValue; +end; + +function TEmpresasDataTableRules.GetPOBLACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasPOBLACION].IsNull; +end; + +procedure TEmpresasDataTableRules.SetPOBLACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasPOBLACION].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetPROVINCIAValue: String; +begin + result := DataTable.Fields[idx_EmpresasPROVINCIA].AsString; +end; + +procedure TEmpresasDataTableRules.SetPROVINCIAValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasPROVINCIA].AsString := aValue; +end; + +function TEmpresasDataTableRules.GetPROVINCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasPROVINCIA].IsNull; +end; + +procedure TEmpresasDataTableRules.SetPROVINCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasPROVINCIA].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetCODIGO_POSTALValue: String; +begin + result := DataTable.Fields[idx_EmpresasCODIGO_POSTAL].AsString; +end; + +procedure TEmpresasDataTableRules.SetCODIGO_POSTALValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasCODIGO_POSTAL].AsString := aValue; +end; + +function TEmpresasDataTableRules.GetCODIGO_POSTALIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasCODIGO_POSTAL].IsNull; +end; + +procedure TEmpresasDataTableRules.SetCODIGO_POSTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasCODIGO_POSTAL].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetTELEFONO_1Value: String; +begin + result := DataTable.Fields[idx_EmpresasTELEFONO_1].AsString; +end; + +procedure TEmpresasDataTableRules.SetTELEFONO_1Value(const aValue: String); +begin + DataTable.Fields[idx_EmpresasTELEFONO_1].AsString := aValue; +end; + +function TEmpresasDataTableRules.GetTELEFONO_1IsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasTELEFONO_1].IsNull; +end; + +procedure TEmpresasDataTableRules.SetTELEFONO_1IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasTELEFONO_1].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetTELEFONO_2Value: String; +begin + result := DataTable.Fields[idx_EmpresasTELEFONO_2].AsString; +end; + +procedure TEmpresasDataTableRules.SetTELEFONO_2Value(const aValue: String); +begin + DataTable.Fields[idx_EmpresasTELEFONO_2].AsString := aValue; +end; + +function TEmpresasDataTableRules.GetTELEFONO_2IsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasTELEFONO_2].IsNull; +end; + +procedure TEmpresasDataTableRules.SetTELEFONO_2IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasTELEFONO_2].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetMOVIL_1Value: String; +begin + result := DataTable.Fields[idx_EmpresasMOVIL_1].AsString; +end; + +procedure TEmpresasDataTableRules.SetMOVIL_1Value(const aValue: String); +begin + DataTable.Fields[idx_EmpresasMOVIL_1].AsString := aValue; +end; + +function TEmpresasDataTableRules.GetMOVIL_1IsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasMOVIL_1].IsNull; +end; + +procedure TEmpresasDataTableRules.SetMOVIL_1IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasMOVIL_1].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetMOVIL_2Value: String; +begin + result := DataTable.Fields[idx_EmpresasMOVIL_2].AsString; +end; + +procedure TEmpresasDataTableRules.SetMOVIL_2Value(const aValue: String); +begin + DataTable.Fields[idx_EmpresasMOVIL_2].AsString := aValue; +end; + +function TEmpresasDataTableRules.GetMOVIL_2IsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasMOVIL_2].IsNull; +end; + +procedure TEmpresasDataTableRules.SetMOVIL_2IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasMOVIL_2].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetFAXValue: String; +begin + result := DataTable.Fields[idx_EmpresasFAX].AsString; +end; + +procedure TEmpresasDataTableRules.SetFAXValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasFAX].AsString := aValue; +end; + +function TEmpresasDataTableRules.GetFAXIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasFAX].IsNull; +end; + +procedure TEmpresasDataTableRules.SetFAXIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasFAX].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetEMAIL_1Value: String; +begin + result := DataTable.Fields[idx_EmpresasEMAIL_1].AsString; +end; + +procedure TEmpresasDataTableRules.SetEMAIL_1Value(const aValue: String); +begin + DataTable.Fields[idx_EmpresasEMAIL_1].AsString := aValue; +end; + +function TEmpresasDataTableRules.GetEMAIL_1IsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasEMAIL_1].IsNull; +end; + +procedure TEmpresasDataTableRules.SetEMAIL_1IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasEMAIL_1].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetEMAIL_2Value: String; +begin + result := DataTable.Fields[idx_EmpresasEMAIL_2].AsString; +end; + +procedure TEmpresasDataTableRules.SetEMAIL_2Value(const aValue: String); +begin + DataTable.Fields[idx_EmpresasEMAIL_2].AsString := aValue; +end; + +function TEmpresasDataTableRules.GetEMAIL_2IsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasEMAIL_2].IsNull; +end; + +procedure TEmpresasDataTableRules.SetEMAIL_2IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasEMAIL_2].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetPAGINA_WEBValue: String; +begin + result := DataTable.Fields[idx_EmpresasPAGINA_WEB].AsString; +end; + +procedure TEmpresasDataTableRules.SetPAGINA_WEBValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasPAGINA_WEB].AsString := aValue; +end; + +function TEmpresasDataTableRules.GetPAGINA_WEBIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasPAGINA_WEB].IsNull; +end; + +procedure TEmpresasDataTableRules.SetPAGINA_WEBIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasPAGINA_WEB].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetNOTASValue: IROStrings; +begin + result := f_NOTAS; + result.Text := DataTable.Fields[idx_EmpresasNOTAS].AsString; +end; + +function TEmpresasDataTableRules.GetNOTASIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasNOTAS].IsNull; +end; + +procedure TEmpresasDataTableRules.SetNOTASIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasNOTAS].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_EmpresasFECHA_ALTA].AsDateTime; +end; + +procedure TEmpresasDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_EmpresasFECHA_ALTA].AsDateTime := aValue; +end; + +function TEmpresasDataTableRules.GetFECHA_ALTAIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasFECHA_ALTA].IsNull; +end; + +procedure TEmpresasDataTableRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasFECHA_ALTA].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_EmpresasFECHA_MODIFICACION].AsDateTime; +end; + +procedure TEmpresasDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_EmpresasFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TEmpresasDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasFECHA_MODIFICACION].IsNull; +end; + +procedure TEmpresasDataTableRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasFECHA_MODIFICACION].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_EmpresasUSUARIO].AsString; +end; + +procedure TEmpresasDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasUSUARIO].AsString := aValue; +end; + +function TEmpresasDataTableRules.GetUSUARIOIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasUSUARIO].IsNull; +end; + +procedure TEmpresasDataTableRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasUSUARIO].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetLOGOTIPOValue: IROStream; +begin + result := f_LOGOTIPO; + result.Position := 0; + if not Result.InUpdateMode then begin + DataTable.Fields[idx_EmpresasLOGOTIPO].SaveToStream(result); + result.Position := 0; + end; +end; + +function TEmpresasDataTableRules.GetLOGOTIPOIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasLOGOTIPO].IsNull; +end; + +procedure TEmpresasDataTableRules.SetLOGOTIPOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasLOGOTIPO].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetREGISTRO_MERCANTILValue: String; +begin + result := DataTable.Fields[idx_EmpresasREGISTRO_MERCANTIL].AsString; +end; + +procedure TEmpresasDataTableRules.SetREGISTRO_MERCANTILValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasREGISTRO_MERCANTIL].AsString := aValue; +end; + +function TEmpresasDataTableRules.GetREGISTRO_MERCANTILIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasREGISTRO_MERCANTIL].IsNull; +end; + +procedure TEmpresasDataTableRules.SetREGISTRO_MERCANTILIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasREGISTRO_MERCANTIL].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetPARAM_TIEMPOValue: Float; +begin + result := DataTable.Fields[idx_EmpresasPARAM_TIEMPO].AsFloat; +end; + +procedure TEmpresasDataTableRules.SetPARAM_TIEMPOValue(const aValue: Float); +begin + DataTable.Fields[idx_EmpresasPARAM_TIEMPO].AsFloat := aValue; +end; + +function TEmpresasDataTableRules.GetPARAM_TIEMPOIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasPARAM_TIEMPO].IsNull; +end; + +procedure TEmpresasDataTableRules.SetPARAM_TIEMPOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasPARAM_TIEMPO].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetPARAM_MARGENValue: Float; +begin + result := DataTable.Fields[idx_EmpresasPARAM_MARGEN].AsFloat; +end; + +procedure TEmpresasDataTableRules.SetPARAM_MARGENValue(const aValue: Float); +begin + DataTable.Fields[idx_EmpresasPARAM_MARGEN].AsFloat := aValue; +end; + +function TEmpresasDataTableRules.GetPARAM_MARGENIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasPARAM_MARGEN].IsNull; +end; + +procedure TEmpresasDataTableRules.SetPARAM_MARGENIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasPARAM_MARGEN].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetID_TIPO_IVAValue: SmallInt; +begin + result := DataTable.Fields[idx_EmpresasID_TIPO_IVA].AsSmallInt; +end; + +procedure TEmpresasDataTableRules.SetID_TIPO_IVAValue(const aValue: SmallInt); +begin + DataTable.Fields[idx_EmpresasID_TIPO_IVA].AsSmallInt := aValue; +end; + +function TEmpresasDataTableRules.GetID_TIPO_IVAIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasID_TIPO_IVA].IsNull; +end; + +procedure TEmpresasDataTableRules.SetID_TIPO_IVAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasID_TIPO_IVA].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetID_FORMA_PAGOValue: SmallInt; +begin + result := DataTable.Fields[idx_EmpresasID_FORMA_PAGO].AsSmallInt; +end; + +procedure TEmpresasDataTableRules.SetID_FORMA_PAGOValue(const aValue: SmallInt); +begin + DataTable.Fields[idx_EmpresasID_FORMA_PAGO].AsSmallInt := aValue; +end; + +function TEmpresasDataTableRules.GetID_FORMA_PAGOIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasID_FORMA_PAGO].IsNull; +end; + +procedure TEmpresasDataTableRules.SetID_FORMA_PAGOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasID_FORMA_PAGO].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetID_ALMACENValue: SmallInt; +begin + result := DataTable.Fields[idx_EmpresasID_ALMACEN].AsSmallInt; +end; + +procedure TEmpresasDataTableRules.SetID_ALMACENValue(const aValue: SmallInt); +begin + DataTable.Fields[idx_EmpresasID_ALMACEN].AsSmallInt := aValue; +end; + +function TEmpresasDataTableRules.GetID_ALMACENIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasID_ALMACEN].IsNull; +end; + +procedure TEmpresasDataTableRules.SetID_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasID_ALMACEN].AsVariant := Null; +end; + + +{ TEmpresasDatosBancoDataTableRules } +constructor TEmpresasDatosBancoDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TEmpresasDatosBancoDataTableRules.Destroy; +begin + inherited; +end; + +function TEmpresasDatosBancoDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoID].AsInteger; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_EmpresasDatosBancoID].AsInteger := aValue; +end; + +function TEmpresasDatosBancoDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoID].IsNull; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasDatosBancoID].AsVariant := Null; +end; + +function TEmpresasDatosBancoDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoID_EMPRESA].AsInteger; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_EmpresasDatosBancoID_EMPRESA].AsInteger := aValue; +end; + +function TEmpresasDatosBancoDataTableRules.GetID_EMPRESAIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoID_EMPRESA].IsNull; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasDatosBancoID_EMPRESA].AsVariant := Null; +end; + +function TEmpresasDatosBancoDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoNOMBRE].AsString; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasDatosBancoNOMBRE].AsString := aValue; +end; + +function TEmpresasDatosBancoDataTableRules.GetNOMBREIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoNOMBRE].IsNull; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasDatosBancoNOMBRE].AsVariant := Null; +end; + +function TEmpresasDatosBancoDataTableRules.GetENTIDADValue: String; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoENTIDAD].AsString; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetENTIDADValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasDatosBancoENTIDAD].AsString := aValue; +end; + +function TEmpresasDatosBancoDataTableRules.GetENTIDADIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoENTIDAD].IsNull; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetENTIDADIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasDatosBancoENTIDAD].AsVariant := Null; +end; + +function TEmpresasDatosBancoDataTableRules.GetSUCURSALValue: String; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoSUCURSAL].AsString; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetSUCURSALValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasDatosBancoSUCURSAL].AsString := aValue; +end; + +function TEmpresasDatosBancoDataTableRules.GetSUCURSALIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoSUCURSAL].IsNull; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetSUCURSALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasDatosBancoSUCURSAL].AsVariant := Null; +end; + +function TEmpresasDatosBancoDataTableRules.GetDCValue: String; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoDC].AsString; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetDCValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasDatosBancoDC].AsString := aValue; +end; + +function TEmpresasDatosBancoDataTableRules.GetDCIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoDC].IsNull; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetDCIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasDatosBancoDC].AsVariant := Null; +end; + +function TEmpresasDatosBancoDataTableRules.GetCUENTAValue: String; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoCUENTA].AsString; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetCUENTAValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasDatosBancoCUENTA].AsString := aValue; +end; + +function TEmpresasDatosBancoDataTableRules.GetCUENTAIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoCUENTA].IsNull; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetCUENTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasDatosBancoCUENTA].AsVariant := Null; +end; + +function TEmpresasDatosBancoDataTableRules.GetSUFIJO_N19Value: String; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoSUFIJO_N19].AsString; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetSUFIJO_N19Value(const aValue: String); +begin + DataTable.Fields[idx_EmpresasDatosBancoSUFIJO_N19].AsString := aValue; +end; + +function TEmpresasDatosBancoDataTableRules.GetSUFIJO_N19IsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoSUFIJO_N19].IsNull; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetSUFIJO_N19IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasDatosBancoSUFIJO_N19].AsVariant := Null; +end; + +function TEmpresasDatosBancoDataTableRules.GetSUFIJO_N58Value: String; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoSUFIJO_N58].AsString; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetSUFIJO_N58Value(const aValue: String); +begin + DataTable.Fields[idx_EmpresasDatosBancoSUFIJO_N58].AsString := aValue; +end; + +function TEmpresasDatosBancoDataTableRules.GetSUFIJO_N58IsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoSUFIJO_N58].IsNull; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetSUFIJO_N58IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasDatosBancoSUFIJO_N58].AsVariant := Null; +end; + +function TEmpresasDatosBancoDataTableRules.GetIBANValue: String; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoIBAN].AsString; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetIBANValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasDatosBancoIBAN].AsString := aValue; +end; + +function TEmpresasDatosBancoDataTableRules.GetIBANIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoIBAN].IsNull; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetIBANIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasDatosBancoIBAN].AsVariant := Null; +end; + +function TEmpresasDatosBancoDataTableRules.GetSWIFTValue: String; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoSWIFT].AsString; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetSWIFTValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasDatosBancoSWIFT].AsString := aValue; +end; + +function TEmpresasDatosBancoDataTableRules.GetSWIFTIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoSWIFT].IsNull; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetSWIFTIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasDatosBancoSWIFT].AsVariant := Null; +end; + + +initialization + RegisterDataTableRules(RID_Empresas, TEmpresasDataTableRules); + RegisterDataTableRules(RID_EmpresasDatosBanco, TEmpresasDatosBancoDataTableRules); + +end. diff --git a/Source/ApplicationBase/Empresas/Model/schEmpresasServer_Intf.dcu b/Source/ApplicationBase/Empresas/Model/schEmpresasServer_Intf.dcu new file mode 100644 index 0000000..5557432 Binary files /dev/null and b/Source/ApplicationBase/Empresas/Model/schEmpresasServer_Intf.dcu differ diff --git a/Source/ApplicationBase/Empresas/Model/schEmpresasServer_Intf.pas b/Source/ApplicationBase/Empresas/Model/schEmpresasServer_Intf.pas new file mode 100644 index 0000000..2990e35 --- /dev/null +++ b/Source/ApplicationBase/Empresas/Model/schEmpresasServer_Intf.pas @@ -0,0 +1,1748 @@ +unit schEmpresasServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schEmpresasClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_EmpresasDelta = '{43119B6A-7006-4045-B378-1516B8CA32E1}'; + RID_EmpresasDatosBancoDelta = '{A79108BB-E362-4338-9188-6D5683DCE289}'; + +type + { IEmpresasDelta } + IEmpresasDelta = interface(IEmpresas) + ['{43119B6A-7006-4045-B378-1516B8CA32E1}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldNIF_CIFValue : String; + function GetOldNOMBREValue : String; + function GetOldRAZON_SOCIALValue : String; + function GetOldCALLEValue : String; + function GetOldPOBLACIONValue : String; + function GetOldPROVINCIAValue : String; + function GetOldCODIGO_POSTALValue : String; + function GetOldTELEFONO_1Value : String; + function GetOldTELEFONO_2Value : String; + function GetOldMOVIL_1Value : String; + function GetOldMOVIL_2Value : String; + function GetOldFAXValue : String; + function GetOldEMAIL_1Value : String; + function GetOldEMAIL_2Value : String; + function GetOldPAGINA_WEBValue : String; + function GetOldNOTASValue : IROStrings; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + function GetOldUSUARIOValue : String; + function GetOldLOGOTIPOValue : IROStream; + function GetOldREGISTRO_MERCANTILValue : String; + function GetOldPARAM_TIEMPOValue : Float; + function GetOldPARAM_MARGENValue : Float; + function GetOldID_TIPO_IVAValue : SmallInt; + function GetOldID_FORMA_PAGOValue : SmallInt; + function GetOldID_ALMACENValue : SmallInt; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldNIF_CIF : String read GetOldNIF_CIFValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldRAZON_SOCIAL : String read GetOldRAZON_SOCIALValue; + property OldCALLE : String read GetOldCALLEValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property OldTELEFONO_1 : String read GetOldTELEFONO_1Value; + property OldTELEFONO_2 : String read GetOldTELEFONO_2Value; + property OldMOVIL_1 : String read GetOldMOVIL_1Value; + property OldMOVIL_2 : String read GetOldMOVIL_2Value; + property OldFAX : String read GetOldFAXValue; + property OldEMAIL_1 : String read GetOldEMAIL_1Value; + property OldEMAIL_2 : String read GetOldEMAIL_2Value; + property OldPAGINA_WEB : String read GetOldPAGINA_WEBValue; + property OldNOTAS : IROStrings read GetOldNOTASValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldLOGOTIPO : IROStream read GetOldLOGOTIPOValue; + property OldREGISTRO_MERCANTIL : String read GetOldREGISTRO_MERCANTILValue; + property OldPARAM_TIEMPO : Float read GetOldPARAM_TIEMPOValue; + property OldPARAM_MARGEN : Float read GetOldPARAM_MARGENValue; + property OldID_TIPO_IVA : SmallInt read GetOldID_TIPO_IVAValue; + property OldID_FORMA_PAGO : SmallInt read GetOldID_FORMA_PAGOValue; + property OldID_ALMACEN : SmallInt read GetOldID_ALMACENValue; + end; + + { TEmpresasBusinessProcessorRules } + TEmpresasBusinessProcessorRules = class(TDABusinessProcessorRules, IEmpresas, IEmpresasDelta) + private + f_NOTAS: IROStrings; + f_LOGOTIPO: IROStream; + procedure NOTAS_OnChange(Sender: TObject); + procedure LOGOTIPO_OnChange(Sender: Tobject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetNIF_CIFValue: String; virtual; + function GetNIF_CIFIsNull: Boolean; virtual; + function GetOldNIF_CIFValue: String; virtual; + function GetOldNIF_CIFIsNull: Boolean; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + procedure SetNIF_CIFIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + function GetNOMBREIsNull: Boolean; virtual; + function GetOldNOMBREValue: String; virtual; + function GetOldNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetRAZON_SOCIALValue: String; virtual; + function GetRAZON_SOCIALIsNull: Boolean; virtual; + function GetOldRAZON_SOCIALValue: String; virtual; + function GetOldRAZON_SOCIALIsNull: Boolean; virtual; + procedure SetRAZON_SOCIALValue(const aValue: String); virtual; + procedure SetRAZON_SOCIALIsNull(const aValue: Boolean); virtual; + function GetCALLEValue: String; virtual; + function GetCALLEIsNull: Boolean; virtual; + function GetOldCALLEValue: String; virtual; + function GetOldCALLEIsNull: Boolean; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + procedure SetCALLEIsNull(const aValue: Boolean); virtual; + function GetPOBLACIONValue: String; virtual; + function GetPOBLACIONIsNull: Boolean; virtual; + function GetOldPOBLACIONValue: String; virtual; + function GetOldPOBLACIONIsNull: Boolean; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual; + function GetPROVINCIAValue: String; virtual; + function GetPROVINCIAIsNull: Boolean; virtual; + function GetOldPROVINCIAValue: String; virtual; + function GetOldPROVINCIAIsNull: Boolean; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetCODIGO_POSTALIsNull: Boolean; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALIsNull: Boolean; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual; + function GetTELEFONO_1Value: String; virtual; + function GetTELEFONO_1IsNull: Boolean; virtual; + function GetOldTELEFONO_1Value: String; virtual; + function GetOldTELEFONO_1IsNull: Boolean; virtual; + procedure SetTELEFONO_1Value(const aValue: String); virtual; + procedure SetTELEFONO_1IsNull(const aValue: Boolean); virtual; + function GetTELEFONO_2Value: String; virtual; + function GetTELEFONO_2IsNull: Boolean; virtual; + function GetOldTELEFONO_2Value: String; virtual; + function GetOldTELEFONO_2IsNull: Boolean; virtual; + procedure SetTELEFONO_2Value(const aValue: String); virtual; + procedure SetTELEFONO_2IsNull(const aValue: Boolean); virtual; + function GetMOVIL_1Value: String; virtual; + function GetMOVIL_1IsNull: Boolean; virtual; + function GetOldMOVIL_1Value: String; virtual; + function GetOldMOVIL_1IsNull: Boolean; virtual; + procedure SetMOVIL_1Value(const aValue: String); virtual; + procedure SetMOVIL_1IsNull(const aValue: Boolean); virtual; + function GetMOVIL_2Value: String; virtual; + function GetMOVIL_2IsNull: Boolean; virtual; + function GetOldMOVIL_2Value: String; virtual; + function GetOldMOVIL_2IsNull: Boolean; virtual; + procedure SetMOVIL_2Value(const aValue: String); virtual; + procedure SetMOVIL_2IsNull(const aValue: Boolean); virtual; + function GetFAXValue: String; virtual; + function GetFAXIsNull: Boolean; virtual; + function GetOldFAXValue: String; virtual; + function GetOldFAXIsNull: Boolean; virtual; + procedure SetFAXValue(const aValue: String); virtual; + procedure SetFAXIsNull(const aValue: Boolean); virtual; + function GetEMAIL_1Value: String; virtual; + function GetEMAIL_1IsNull: Boolean; virtual; + function GetOldEMAIL_1Value: String; virtual; + function GetOldEMAIL_1IsNull: Boolean; virtual; + procedure SetEMAIL_1Value(const aValue: String); virtual; + procedure SetEMAIL_1IsNull(const aValue: Boolean); virtual; + function GetEMAIL_2Value: String; virtual; + function GetEMAIL_2IsNull: Boolean; virtual; + function GetOldEMAIL_2Value: String; virtual; + function GetOldEMAIL_2IsNull: Boolean; virtual; + procedure SetEMAIL_2Value(const aValue: String); virtual; + procedure SetEMAIL_2IsNull(const aValue: Boolean); virtual; + function GetPAGINA_WEBValue: String; virtual; + function GetPAGINA_WEBIsNull: Boolean; virtual; + function GetOldPAGINA_WEBValue: String; virtual; + function GetOldPAGINA_WEBIsNull: Boolean; virtual; + procedure SetPAGINA_WEBValue(const aValue: String); virtual; + procedure SetPAGINA_WEBIsNull(const aValue: Boolean); virtual; + function GetNOTASValue: IROStrings; virtual; + function GetNOTASIsNull: Boolean; virtual; + function GetOldNOTASValue: IROStrings; virtual; + function GetOldNOTASIsNull: Boolean; virtual; + procedure SetNOTASIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + function GetUSUARIOIsNull: Boolean; virtual; + function GetOldUSUARIOValue: String; virtual; + function GetOldUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetLOGOTIPOValue: IROStream; virtual; + function GetLOGOTIPOIsNull: Boolean; virtual; + function GetOldLOGOTIPOValue: IROStream; virtual; + function GetOldLOGOTIPOIsNull: Boolean; virtual; + procedure SetLOGOTIPOIsNull(const aValue: Boolean); virtual; + function GetREGISTRO_MERCANTILValue: String; virtual; + function GetREGISTRO_MERCANTILIsNull: Boolean; virtual; + function GetOldREGISTRO_MERCANTILValue: String; virtual; + function GetOldREGISTRO_MERCANTILIsNull: Boolean; virtual; + procedure SetREGISTRO_MERCANTILValue(const aValue: String); virtual; + procedure SetREGISTRO_MERCANTILIsNull(const aValue: Boolean); virtual; + function GetPARAM_TIEMPOValue: Float; virtual; + function GetPARAM_TIEMPOIsNull: Boolean; virtual; + function GetOldPARAM_TIEMPOValue: Float; virtual; + function GetOldPARAM_TIEMPOIsNull: Boolean; virtual; + procedure SetPARAM_TIEMPOValue(const aValue: Float); virtual; + procedure SetPARAM_TIEMPOIsNull(const aValue: Boolean); virtual; + function GetPARAM_MARGENValue: Float; virtual; + function GetPARAM_MARGENIsNull: Boolean; virtual; + function GetOldPARAM_MARGENValue: Float; virtual; + function GetOldPARAM_MARGENIsNull: Boolean; virtual; + procedure SetPARAM_MARGENValue(const aValue: Float); virtual; + procedure SetPARAM_MARGENIsNull(const aValue: Boolean); virtual; + function GetID_TIPO_IVAValue: SmallInt; virtual; + function GetID_TIPO_IVAIsNull: Boolean; virtual; + function GetOldID_TIPO_IVAValue: SmallInt; virtual; + function GetOldID_TIPO_IVAIsNull: Boolean; virtual; + procedure SetID_TIPO_IVAValue(const aValue: SmallInt); virtual; + procedure SetID_TIPO_IVAIsNull(const aValue: Boolean); virtual; + function GetID_FORMA_PAGOValue: SmallInt; virtual; + function GetID_FORMA_PAGOIsNull: Boolean; virtual; + function GetOldID_FORMA_PAGOValue: SmallInt; virtual; + function GetOldID_FORMA_PAGOIsNull: Boolean; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: SmallInt); virtual; + procedure SetID_FORMA_PAGOIsNull(const aValue: Boolean); virtual; + function GetID_ALMACENValue: SmallInt; virtual; + function GetID_ALMACENIsNull: Boolean; virtual; + function GetOldID_ALMACENValue: SmallInt; virtual; + function GetOldID_ALMACENIsNull: Boolean; virtual; + procedure SetID_ALMACENValue(const aValue: SmallInt); virtual; + procedure SetID_ALMACENIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property NIF_CIF : String read GetNIF_CIFValue write SetNIF_CIFValue; + property NIF_CIFIsNull : Boolean read GetNIF_CIFIsNull write SetNIF_CIFIsNull; + property OldNIF_CIF : String read GetOldNIF_CIFValue; + property OldNIF_CIFIsNull : Boolean read GetOldNIF_CIFIsNull; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull : Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldNOMBREIsNull : Boolean read GetOldNOMBREIsNull; + property RAZON_SOCIAL : String read GetRAZON_SOCIALValue write SetRAZON_SOCIALValue; + property RAZON_SOCIALIsNull : Boolean read GetRAZON_SOCIALIsNull write SetRAZON_SOCIALIsNull; + property OldRAZON_SOCIAL : String read GetOldRAZON_SOCIALValue; + property OldRAZON_SOCIALIsNull : Boolean read GetOldRAZON_SOCIALIsNull; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull : Boolean read GetCALLEIsNull write SetCALLEIsNull; + property OldCALLE : String read GetOldCALLEValue; + property OldCALLEIsNull : Boolean read GetOldCALLEIsNull; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull : Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property OldPOBLACIONIsNull : Boolean read GetOldPOBLACIONIsNull; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull : Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property OldPROVINCIAIsNull : Boolean read GetOldPROVINCIAIsNull; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull : Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property OldCODIGO_POSTALIsNull : Boolean read GetOldCODIGO_POSTALIsNull; + property TELEFONO_1 : String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_1IsNull : Boolean read GetTELEFONO_1IsNull write SetTELEFONO_1IsNull; + property OldTELEFONO_1 : String read GetOldTELEFONO_1Value; + property OldTELEFONO_1IsNull : Boolean read GetOldTELEFONO_1IsNull; + property TELEFONO_2 : String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property TELEFONO_2IsNull : Boolean read GetTELEFONO_2IsNull write SetTELEFONO_2IsNull; + property OldTELEFONO_2 : String read GetOldTELEFONO_2Value; + property OldTELEFONO_2IsNull : Boolean read GetOldTELEFONO_2IsNull; + property MOVIL_1 : String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_1IsNull : Boolean read GetMOVIL_1IsNull write SetMOVIL_1IsNull; + property OldMOVIL_1 : String read GetOldMOVIL_1Value; + property OldMOVIL_1IsNull : Boolean read GetOldMOVIL_1IsNull; + property MOVIL_2 : String read GetMOVIL_2Value write SetMOVIL_2Value; + property MOVIL_2IsNull : Boolean read GetMOVIL_2IsNull write SetMOVIL_2IsNull; + property OldMOVIL_2 : String read GetOldMOVIL_2Value; + property OldMOVIL_2IsNull : Boolean read GetOldMOVIL_2IsNull; + property FAX : String read GetFAXValue write SetFAXValue; + property FAXIsNull : Boolean read GetFAXIsNull write SetFAXIsNull; + property OldFAX : String read GetOldFAXValue; + property OldFAXIsNull : Boolean read GetOldFAXIsNull; + property EMAIL_1 : String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_1IsNull : Boolean read GetEMAIL_1IsNull write SetEMAIL_1IsNull; + property OldEMAIL_1 : String read GetOldEMAIL_1Value; + property OldEMAIL_1IsNull : Boolean read GetOldEMAIL_1IsNull; + property EMAIL_2 : String read GetEMAIL_2Value write SetEMAIL_2Value; + property EMAIL_2IsNull : Boolean read GetEMAIL_2IsNull write SetEMAIL_2IsNull; + property OldEMAIL_2 : String read GetOldEMAIL_2Value; + property OldEMAIL_2IsNull : Boolean read GetOldEMAIL_2IsNull; + property PAGINA_WEB : String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property PAGINA_WEBIsNull : Boolean read GetPAGINA_WEBIsNull write SetPAGINA_WEBIsNull; + property OldPAGINA_WEB : String read GetOldPAGINA_WEBValue; + property OldPAGINA_WEBIsNull : Boolean read GetOldPAGINA_WEBIsNull; + property NOTAS : IROStrings read GetNOTASValue; + property NOTASIsNull : Boolean read GetNOTASIsNull write SetNOTASIsNull; + property OldNOTAS : IROStrings read GetOldNOTASValue; + property OldNOTASIsNull : Boolean read GetOldNOTASIsNull; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull : Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_ALTAIsNull : Boolean read GetOldFECHA_ALTAIsNull; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull : Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldUSUARIOIsNull : Boolean read GetOldUSUARIOIsNull; + property LOGOTIPO : IROStream read GetLOGOTIPOValue; + property LOGOTIPOIsNull : Boolean read GetLOGOTIPOIsNull write SetLOGOTIPOIsNull; + property OldLOGOTIPO : IROStream read GetOldLOGOTIPOValue; + property OldLOGOTIPOIsNull : Boolean read GetOldLOGOTIPOIsNull; + property REGISTRO_MERCANTIL : String read GetREGISTRO_MERCANTILValue write SetREGISTRO_MERCANTILValue; + property REGISTRO_MERCANTILIsNull : Boolean read GetREGISTRO_MERCANTILIsNull write SetREGISTRO_MERCANTILIsNull; + property OldREGISTRO_MERCANTIL : String read GetOldREGISTRO_MERCANTILValue; + property OldREGISTRO_MERCANTILIsNull : Boolean read GetOldREGISTRO_MERCANTILIsNull; + property PARAM_TIEMPO : Float read GetPARAM_TIEMPOValue write SetPARAM_TIEMPOValue; + property PARAM_TIEMPOIsNull : Boolean read GetPARAM_TIEMPOIsNull write SetPARAM_TIEMPOIsNull; + property OldPARAM_TIEMPO : Float read GetOldPARAM_TIEMPOValue; + property OldPARAM_TIEMPOIsNull : Boolean read GetOldPARAM_TIEMPOIsNull; + property PARAM_MARGEN : Float read GetPARAM_MARGENValue write SetPARAM_MARGENValue; + property PARAM_MARGENIsNull : Boolean read GetPARAM_MARGENIsNull write SetPARAM_MARGENIsNull; + property OldPARAM_MARGEN : Float read GetOldPARAM_MARGENValue; + property OldPARAM_MARGENIsNull : Boolean read GetOldPARAM_MARGENIsNull; + property ID_TIPO_IVA : SmallInt read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue; + property ID_TIPO_IVAIsNull : Boolean read GetID_TIPO_IVAIsNull write SetID_TIPO_IVAIsNull; + property OldID_TIPO_IVA : SmallInt read GetOldID_TIPO_IVAValue; + property OldID_TIPO_IVAIsNull : Boolean read GetOldID_TIPO_IVAIsNull; + property ID_FORMA_PAGO : SmallInt read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property ID_FORMA_PAGOIsNull : Boolean read GetID_FORMA_PAGOIsNull write SetID_FORMA_PAGOIsNull; + property OldID_FORMA_PAGO : SmallInt read GetOldID_FORMA_PAGOValue; + property OldID_FORMA_PAGOIsNull : Boolean read GetOldID_FORMA_PAGOIsNull; + property ID_ALMACEN : SmallInt read GetID_ALMACENValue write SetID_ALMACENValue; + property ID_ALMACENIsNull : Boolean read GetID_ALMACENIsNull write SetID_ALMACENIsNull; + property OldID_ALMACEN : SmallInt read GetOldID_ALMACENValue; + property OldID_ALMACENIsNull : Boolean read GetOldID_ALMACENIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IEmpresasDatosBancoDelta } + IEmpresasDatosBancoDelta = interface(IEmpresasDatosBanco) + ['{A79108BB-E362-4338-9188-6D5683DCE289}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldNOMBREValue : String; + function GetOldENTIDADValue : String; + function GetOldSUCURSALValue : String; + function GetOldDCValue : String; + function GetOldCUENTAValue : String; + function GetOldSUFIJO_N19Value : String; + function GetOldSUFIJO_N58Value : String; + function GetOldIBANValue : String; + function GetOldSWIFTValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldENTIDAD : String read GetOldENTIDADValue; + property OldSUCURSAL : String read GetOldSUCURSALValue; + property OldDC : String read GetOldDCValue; + property OldCUENTA : String read GetOldCUENTAValue; + property OldSUFIJO_N19 : String read GetOldSUFIJO_N19Value; + property OldSUFIJO_N58 : String read GetOldSUFIJO_N58Value; + property OldIBAN : String read GetOldIBANValue; + property OldSWIFT : String read GetOldSWIFTValue; + end; + + { TEmpresasDatosBancoBusinessProcessorRules } + TEmpresasDatosBancoBusinessProcessorRules = class(TDABusinessProcessorRules, IEmpresasDatosBanco, IEmpresasDatosBancoDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + function GetNOMBREIsNull: Boolean; virtual; + function GetOldNOMBREValue: String; virtual; + function GetOldNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetENTIDADValue: String; virtual; + function GetENTIDADIsNull: Boolean; virtual; + function GetOldENTIDADValue: String; virtual; + function GetOldENTIDADIsNull: Boolean; virtual; + procedure SetENTIDADValue(const aValue: String); virtual; + procedure SetENTIDADIsNull(const aValue: Boolean); virtual; + function GetSUCURSALValue: String; virtual; + function GetSUCURSALIsNull: Boolean; virtual; + function GetOldSUCURSALValue: String; virtual; + function GetOldSUCURSALIsNull: Boolean; virtual; + procedure SetSUCURSALValue(const aValue: String); virtual; + procedure SetSUCURSALIsNull(const aValue: Boolean); virtual; + function GetDCValue: String; virtual; + function GetDCIsNull: Boolean; virtual; + function GetOldDCValue: String; virtual; + function GetOldDCIsNull: Boolean; virtual; + procedure SetDCValue(const aValue: String); virtual; + procedure SetDCIsNull(const aValue: Boolean); virtual; + function GetCUENTAValue: String; virtual; + function GetCUENTAIsNull: Boolean; virtual; + function GetOldCUENTAValue: String; virtual; + function GetOldCUENTAIsNull: Boolean; virtual; + procedure SetCUENTAValue(const aValue: String); virtual; + procedure SetCUENTAIsNull(const aValue: Boolean); virtual; + function GetSUFIJO_N19Value: String; virtual; + function GetSUFIJO_N19IsNull: Boolean; virtual; + function GetOldSUFIJO_N19Value: String; virtual; + function GetOldSUFIJO_N19IsNull: Boolean; virtual; + procedure SetSUFIJO_N19Value(const aValue: String); virtual; + procedure SetSUFIJO_N19IsNull(const aValue: Boolean); virtual; + function GetSUFIJO_N58Value: String; virtual; + function GetSUFIJO_N58IsNull: Boolean; virtual; + function GetOldSUFIJO_N58Value: String; virtual; + function GetOldSUFIJO_N58IsNull: Boolean; virtual; + procedure SetSUFIJO_N58Value(const aValue: String); virtual; + procedure SetSUFIJO_N58IsNull(const aValue: Boolean); virtual; + function GetIBANValue: String; virtual; + function GetIBANIsNull: Boolean; virtual; + function GetOldIBANValue: String; virtual; + function GetOldIBANIsNull: Boolean; virtual; + procedure SetIBANValue(const aValue: String); virtual; + procedure SetIBANIsNull(const aValue: Boolean); virtual; + function GetSWIFTValue: String; virtual; + function GetSWIFTIsNull: Boolean; virtual; + function GetOldSWIFTValue: String; virtual; + function GetOldSWIFTIsNull: Boolean; virtual; + procedure SetSWIFTValue(const aValue: String); virtual; + procedure SetSWIFTIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull : Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_EMPRESAIsNull : Boolean read GetOldID_EMPRESAIsNull; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull : Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldNOMBREIsNull : Boolean read GetOldNOMBREIsNull; + property ENTIDAD : String read GetENTIDADValue write SetENTIDADValue; + property ENTIDADIsNull : Boolean read GetENTIDADIsNull write SetENTIDADIsNull; + property OldENTIDAD : String read GetOldENTIDADValue; + property OldENTIDADIsNull : Boolean read GetOldENTIDADIsNull; + property SUCURSAL : String read GetSUCURSALValue write SetSUCURSALValue; + property SUCURSALIsNull : Boolean read GetSUCURSALIsNull write SetSUCURSALIsNull; + property OldSUCURSAL : String read GetOldSUCURSALValue; + property OldSUCURSALIsNull : Boolean read GetOldSUCURSALIsNull; + property DC : String read GetDCValue write SetDCValue; + property DCIsNull : Boolean read GetDCIsNull write SetDCIsNull; + property OldDC : String read GetOldDCValue; + property OldDCIsNull : Boolean read GetOldDCIsNull; + property CUENTA : String read GetCUENTAValue write SetCUENTAValue; + property CUENTAIsNull : Boolean read GetCUENTAIsNull write SetCUENTAIsNull; + property OldCUENTA : String read GetOldCUENTAValue; + property OldCUENTAIsNull : Boolean read GetOldCUENTAIsNull; + property SUFIJO_N19 : String read GetSUFIJO_N19Value write SetSUFIJO_N19Value; + property SUFIJO_N19IsNull : Boolean read GetSUFIJO_N19IsNull write SetSUFIJO_N19IsNull; + property OldSUFIJO_N19 : String read GetOldSUFIJO_N19Value; + property OldSUFIJO_N19IsNull : Boolean read GetOldSUFIJO_N19IsNull; + property SUFIJO_N58 : String read GetSUFIJO_N58Value write SetSUFIJO_N58Value; + property SUFIJO_N58IsNull : Boolean read GetSUFIJO_N58IsNull write SetSUFIJO_N58IsNull; + property OldSUFIJO_N58 : String read GetOldSUFIJO_N58Value; + property OldSUFIJO_N58IsNull : Boolean read GetOldSUFIJO_N58IsNull; + property IBAN : String read GetIBANValue write SetIBANValue; + property IBANIsNull : Boolean read GetIBANIsNull write SetIBANIsNull; + property OldIBAN : String read GetOldIBANValue; + property OldIBANIsNull : Boolean read GetOldIBANIsNull; + property SWIFT : String read GetSWIFTValue write SetSWIFTValue; + property SWIFTIsNull : Boolean read GetSWIFTIsNull write SetSWIFTIsNull; + property OldSWIFT : String read GetOldSWIFTValue; + property OldSWIFTIsNull : Boolean read GetOldSWIFTIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers, uDAInterfaces; + +{ TEmpresasBusinessProcessorRules } +constructor TEmpresasBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +var + StrList: TStringList; + ROStream: TROStream; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := NOTAS_OnChange; + f_NOTAS := NewROStrings(StrList,True); + + ROStream := TROStream.Create; + ROStream.OnChange := LOGOTIPO_OnChange; + f_LOGOTIPO := ROStream; +end; + +destructor TEmpresasBusinessProcessorRules.Destroy; +begin + inherited; +end; + +procedure TEmpresasBusinessProcessorRules.NOTAS_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasNOTAS] := TStringList(Sender).Text; +end; + +procedure TEmpresasBusinessProcessorRules.LOGOTIPO_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasLOGOTIPO] := BinaryToBlobVariant((TROStream(Sender) as IROStream).Stream); +end; + +function TEmpresasBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasID]; +end; + +function TEmpresasBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasID]); +end; + +function TEmpresasBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasID]; +end; + +function TEmpresasBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasID]); +end; + +procedure TEmpresasBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasID] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasID] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasNIF_CIF]; +end; + +function TEmpresasBusinessProcessorRules.GetNIF_CIFIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasNIF_CIF]); +end; + +function TEmpresasBusinessProcessorRules.GetOldNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasNIF_CIF]; +end; + +function TEmpresasBusinessProcessorRules.GetOldNIF_CIFIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasNIF_CIF]); +end; + +procedure TEmpresasBusinessProcessorRules.SetNIF_CIFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasNIF_CIF] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetNIF_CIFIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasNIF_CIF] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasNOMBRE]; +end; + +function TEmpresasBusinessProcessorRules.GetNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasNOMBRE]); +end; + +function TEmpresasBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasNOMBRE]; +end; + +function TEmpresasBusinessProcessorRules.GetOldNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasNOMBRE]); +end; + +procedure TEmpresasBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasNOMBRE] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasNOMBRE] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetRAZON_SOCIALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasRAZON_SOCIAL]; +end; + +function TEmpresasBusinessProcessorRules.GetRAZON_SOCIALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasRAZON_SOCIAL]); +end; + +function TEmpresasBusinessProcessorRules.GetOldRAZON_SOCIALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasRAZON_SOCIAL]; +end; + +function TEmpresasBusinessProcessorRules.GetOldRAZON_SOCIALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasRAZON_SOCIAL]); +end; + +procedure TEmpresasBusinessProcessorRules.SetRAZON_SOCIALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasRAZON_SOCIAL] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetRAZON_SOCIALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasRAZON_SOCIAL] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasCALLE]; +end; + +function TEmpresasBusinessProcessorRules.GetCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasCALLE]); +end; + +function TEmpresasBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasCALLE]; +end; + +function TEmpresasBusinessProcessorRules.GetOldCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasCALLE]); +end; + +procedure TEmpresasBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasCALLE] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetCALLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasCALLE] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPOBLACION]; +end; + +function TEmpresasBusinessProcessorRules.GetPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPOBLACION]); +end; + +function TEmpresasBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasPOBLACION]; +end; + +function TEmpresasBusinessProcessorRules.GetOldPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasPOBLACION]); +end; + +procedure TEmpresasBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPOBLACION] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetPOBLACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPOBLACION] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPROVINCIA]; +end; + +function TEmpresasBusinessProcessorRules.GetPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPROVINCIA]); +end; + +function TEmpresasBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasPROVINCIA]; +end; + +function TEmpresasBusinessProcessorRules.GetOldPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasPROVINCIA]); +end; + +procedure TEmpresasBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPROVINCIA] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetPROVINCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPROVINCIA] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasCODIGO_POSTAL]; +end; + +function TEmpresasBusinessProcessorRules.GetCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasCODIGO_POSTAL]); +end; + +function TEmpresasBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasCODIGO_POSTAL]; +end; + +function TEmpresasBusinessProcessorRules.GetOldCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasCODIGO_POSTAL]); +end; + +procedure TEmpresasBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasCODIGO_POSTAL] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetCODIGO_POSTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasCODIGO_POSTAL] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetTELEFONO_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasTELEFONO_1]; +end; + +function TEmpresasBusinessProcessorRules.GetTELEFONO_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasTELEFONO_1]); +end; + +function TEmpresasBusinessProcessorRules.GetOldTELEFONO_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasTELEFONO_1]; +end; + +function TEmpresasBusinessProcessorRules.GetOldTELEFONO_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasTELEFONO_1]); +end; + +procedure TEmpresasBusinessProcessorRules.SetTELEFONO_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasTELEFONO_1] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetTELEFONO_1IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasTELEFONO_1] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetTELEFONO_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasTELEFONO_2]; +end; + +function TEmpresasBusinessProcessorRules.GetTELEFONO_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasTELEFONO_2]); +end; + +function TEmpresasBusinessProcessorRules.GetOldTELEFONO_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasTELEFONO_2]; +end; + +function TEmpresasBusinessProcessorRules.GetOldTELEFONO_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasTELEFONO_2]); +end; + +procedure TEmpresasBusinessProcessorRules.SetTELEFONO_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasTELEFONO_2] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetTELEFONO_2IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasTELEFONO_2] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetMOVIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasMOVIL_1]; +end; + +function TEmpresasBusinessProcessorRules.GetMOVIL_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasMOVIL_1]); +end; + +function TEmpresasBusinessProcessorRules.GetOldMOVIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasMOVIL_1]; +end; + +function TEmpresasBusinessProcessorRules.GetOldMOVIL_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasMOVIL_1]); +end; + +procedure TEmpresasBusinessProcessorRules.SetMOVIL_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasMOVIL_1] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetMOVIL_1IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasMOVIL_1] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetMOVIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasMOVIL_2]; +end; + +function TEmpresasBusinessProcessorRules.GetMOVIL_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasMOVIL_2]); +end; + +function TEmpresasBusinessProcessorRules.GetOldMOVIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasMOVIL_2]; +end; + +function TEmpresasBusinessProcessorRules.GetOldMOVIL_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasMOVIL_2]); +end; + +procedure TEmpresasBusinessProcessorRules.SetMOVIL_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasMOVIL_2] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetMOVIL_2IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasMOVIL_2] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasFAX]; +end; + +function TEmpresasBusinessProcessorRules.GetFAXIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasFAX]); +end; + +function TEmpresasBusinessProcessorRules.GetOldFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasFAX]; +end; + +function TEmpresasBusinessProcessorRules.GetOldFAXIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasFAX]); +end; + +procedure TEmpresasBusinessProcessorRules.SetFAXValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasFAX] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetFAXIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasFAX] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetEMAIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasEMAIL_1]; +end; + +function TEmpresasBusinessProcessorRules.GetEMAIL_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasEMAIL_1]); +end; + +function TEmpresasBusinessProcessorRules.GetOldEMAIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasEMAIL_1]; +end; + +function TEmpresasBusinessProcessorRules.GetOldEMAIL_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasEMAIL_1]); +end; + +procedure TEmpresasBusinessProcessorRules.SetEMAIL_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasEMAIL_1] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetEMAIL_1IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasEMAIL_1] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetEMAIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasEMAIL_2]; +end; + +function TEmpresasBusinessProcessorRules.GetEMAIL_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasEMAIL_2]); +end; + +function TEmpresasBusinessProcessorRules.GetOldEMAIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasEMAIL_2]; +end; + +function TEmpresasBusinessProcessorRules.GetOldEMAIL_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasEMAIL_2]); +end; + +procedure TEmpresasBusinessProcessorRules.SetEMAIL_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasEMAIL_2] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetEMAIL_2IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasEMAIL_2] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetPAGINA_WEBValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPAGINA_WEB]; +end; + +function TEmpresasBusinessProcessorRules.GetPAGINA_WEBIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPAGINA_WEB]); +end; + +function TEmpresasBusinessProcessorRules.GetOldPAGINA_WEBValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasPAGINA_WEB]; +end; + +function TEmpresasBusinessProcessorRules.GetOldPAGINA_WEBIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasPAGINA_WEB]); +end; + +procedure TEmpresasBusinessProcessorRules.SetPAGINA_WEBValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPAGINA_WEB] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetPAGINA_WEBIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPAGINA_WEB] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetNOTASValue: IROStrings; +begin + result := f_NOTAS; + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasNOTAS]; +end; + +function TEmpresasBusinessProcessorRules.GetNOTASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasNOTAS]); +end; + +function TEmpresasBusinessProcessorRules.GetOldNOTASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasNOTAS]; +end; + +function TEmpresasBusinessProcessorRules.GetOldNOTASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasNOTAS]); +end; + +procedure TEmpresasBusinessProcessorRules.SetNOTASIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasNOTAS] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasFECHA_ALTA]; +end; + +function TEmpresasBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasFECHA_ALTA]); +end; + +function TEmpresasBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasFECHA_ALTA]; +end; + +function TEmpresasBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasFECHA_ALTA]); +end; + +procedure TEmpresasBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasFECHA_ALTA] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasFECHA_ALTA] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasFECHA_MODIFICACION]; +end; + +function TEmpresasBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasFECHA_MODIFICACION]); +end; + +function TEmpresasBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasFECHA_MODIFICACION]; +end; + +function TEmpresasBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasFECHA_MODIFICACION]); +end; + +procedure TEmpresasBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasFECHA_MODIFICACION] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasFECHA_MODIFICACION] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasUSUARIO]; +end; + +function TEmpresasBusinessProcessorRules.GetUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasUSUARIO]); +end; + +function TEmpresasBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasUSUARIO]; +end; + +function TEmpresasBusinessProcessorRules.GetOldUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasUSUARIO]); +end; + +procedure TEmpresasBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasUSUARIO] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasUSUARIO] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetLOGOTIPOValue: IROStream; +begin + result := f_LOGOTIPO; + result.Position := 0; + if not Result.InUpdateMode then begin + BlobVariantToBinary(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasLOGOTIPO], result.Stream); + result.Position := 0; + end; +end; + +function TEmpresasBusinessProcessorRules.GetLOGOTIPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasLOGOTIPO]); +end; + +function TEmpresasBusinessProcessorRules.GetOldLOGOTIPOValue: IROStream; +begin + result := NewROStream(); + BlobVariantToBinary(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasLOGOTIPO], result.Stream); +end; + +function TEmpresasBusinessProcessorRules.GetOldLOGOTIPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasLOGOTIPO]); +end; + +procedure TEmpresasBusinessProcessorRules.SetLOGOTIPOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasLOGOTIPO] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetREGISTRO_MERCANTILValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasREGISTRO_MERCANTIL]; +end; + +function TEmpresasBusinessProcessorRules.GetREGISTRO_MERCANTILIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasREGISTRO_MERCANTIL]); +end; + +function TEmpresasBusinessProcessorRules.GetOldREGISTRO_MERCANTILValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasREGISTRO_MERCANTIL]; +end; + +function TEmpresasBusinessProcessorRules.GetOldREGISTRO_MERCANTILIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasREGISTRO_MERCANTIL]); +end; + +procedure TEmpresasBusinessProcessorRules.SetREGISTRO_MERCANTILValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasREGISTRO_MERCANTIL] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetREGISTRO_MERCANTILIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasREGISTRO_MERCANTIL] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetPARAM_TIEMPOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPARAM_TIEMPO]; +end; + +function TEmpresasBusinessProcessorRules.GetPARAM_TIEMPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPARAM_TIEMPO]); +end; + +function TEmpresasBusinessProcessorRules.GetOldPARAM_TIEMPOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasPARAM_TIEMPO]; +end; + +function TEmpresasBusinessProcessorRules.GetOldPARAM_TIEMPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasPARAM_TIEMPO]); +end; + +procedure TEmpresasBusinessProcessorRules.SetPARAM_TIEMPOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPARAM_TIEMPO] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetPARAM_TIEMPOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPARAM_TIEMPO] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetPARAM_MARGENValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPARAM_MARGEN]; +end; + +function TEmpresasBusinessProcessorRules.GetPARAM_MARGENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPARAM_MARGEN]); +end; + +function TEmpresasBusinessProcessorRules.GetOldPARAM_MARGENValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasPARAM_MARGEN]; +end; + +function TEmpresasBusinessProcessorRules.GetOldPARAM_MARGENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasPARAM_MARGEN]); +end; + +procedure TEmpresasBusinessProcessorRules.SetPARAM_MARGENValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPARAM_MARGEN] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetPARAM_MARGENIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPARAM_MARGEN] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetID_TIPO_IVAValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasID_TIPO_IVA]; +end; + +function TEmpresasBusinessProcessorRules.GetID_TIPO_IVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasID_TIPO_IVA]); +end; + +function TEmpresasBusinessProcessorRules.GetOldID_TIPO_IVAValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasID_TIPO_IVA]; +end; + +function TEmpresasBusinessProcessorRules.GetOldID_TIPO_IVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasID_TIPO_IVA]); +end; + +procedure TEmpresasBusinessProcessorRules.SetID_TIPO_IVAValue(const aValue: SmallInt); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasID_TIPO_IVA] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetID_TIPO_IVAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasID_TIPO_IVA] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetID_FORMA_PAGOValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasID_FORMA_PAGO]; +end; + +function TEmpresasBusinessProcessorRules.GetID_FORMA_PAGOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasID_FORMA_PAGO]); +end; + +function TEmpresasBusinessProcessorRules.GetOldID_FORMA_PAGOValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasID_FORMA_PAGO]; +end; + +function TEmpresasBusinessProcessorRules.GetOldID_FORMA_PAGOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasID_FORMA_PAGO]); +end; + +procedure TEmpresasBusinessProcessorRules.SetID_FORMA_PAGOValue(const aValue: SmallInt); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasID_FORMA_PAGO] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetID_FORMA_PAGOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasID_FORMA_PAGO] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetID_ALMACENValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasID_ALMACEN]; +end; + +function TEmpresasBusinessProcessorRules.GetID_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasID_ALMACEN]); +end; + +function TEmpresasBusinessProcessorRules.GetOldID_ALMACENValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasID_ALMACEN]; +end; + +function TEmpresasBusinessProcessorRules.GetOldID_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasID_ALMACEN]); +end; + +procedure TEmpresasBusinessProcessorRules.SetID_ALMACENValue(const aValue: SmallInt); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasID_ALMACEN] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetID_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasID_ALMACEN] := Null; +end; + + +{ TEmpresasDatosBancoBusinessProcessorRules } +constructor TEmpresasDatosBancoBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TEmpresasDatosBancoBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoID]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoID]); +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoID]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoID]); +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoID] := aValue; +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoID] := Null; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoID_EMPRESA]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoID_EMPRESA]); +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoID_EMPRESA]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoID_EMPRESA]); +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoID_EMPRESA] := aValue; +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoID_EMPRESA] := Null; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoNOMBRE]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoNOMBRE]); +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoNOMBRE]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoNOMBRE]); +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoNOMBRE] := aValue; +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoNOMBRE] := Null; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetENTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoENTIDAD]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetENTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoENTIDAD]); +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldENTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoENTIDAD]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldENTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoENTIDAD]); +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetENTIDADValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoENTIDAD] := aValue; +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetENTIDADIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoENTIDAD] := Null; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetSUCURSALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoSUCURSAL]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetSUCURSALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoSUCURSAL]); +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldSUCURSALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoSUCURSAL]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldSUCURSALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoSUCURSAL]); +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetSUCURSALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoSUCURSAL] := aValue; +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetSUCURSALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoSUCURSAL] := Null; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetDCValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoDC]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetDCIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoDC]); +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldDCValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoDC]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldDCIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoDC]); +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetDCValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoDC] := aValue; +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetDCIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoDC] := Null; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetCUENTAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoCUENTA]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetCUENTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoCUENTA]); +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldCUENTAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoCUENTA]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldCUENTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoCUENTA]); +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetCUENTAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoCUENTA] := aValue; +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetCUENTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoCUENTA] := Null; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetSUFIJO_N19Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoSUFIJO_N19]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetSUFIJO_N19IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoSUFIJO_N19]); +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldSUFIJO_N19Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoSUFIJO_N19]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldSUFIJO_N19IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoSUFIJO_N19]); +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetSUFIJO_N19Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoSUFIJO_N19] := aValue; +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetSUFIJO_N19IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoSUFIJO_N19] := Null; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetSUFIJO_N58Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoSUFIJO_N58]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetSUFIJO_N58IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoSUFIJO_N58]); +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldSUFIJO_N58Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoSUFIJO_N58]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldSUFIJO_N58IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoSUFIJO_N58]); +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetSUFIJO_N58Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoSUFIJO_N58] := aValue; +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetSUFIJO_N58IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoSUFIJO_N58] := Null; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetIBANValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoIBAN]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetIBANIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoIBAN]); +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldIBANValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoIBAN]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldIBANIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoIBAN]); +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetIBANValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoIBAN] := aValue; +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetIBANIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoIBAN] := Null; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetSWIFTValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoSWIFT]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetSWIFTIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoSWIFT]); +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldSWIFTValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoSWIFT]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldSWIFTIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoSWIFT]); +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetSWIFTValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoSWIFT] := aValue; +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetSWIFTIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoSWIFT] := Null; +end; + + +initialization + RegisterBusinessProcessorRules(RID_EmpresasDelta, TEmpresasBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_EmpresasDatosBancoDelta, TEmpresasDatosBancoBusinessProcessorRules); + +end. diff --git a/Source/ApplicationBase/Empresas/Model/uBizEmpresas.dcu b/Source/ApplicationBase/Empresas/Model/uBizEmpresas.dcu new file mode 100644 index 0000000..013f03e Binary files /dev/null and b/Source/ApplicationBase/Empresas/Model/uBizEmpresas.dcu differ diff --git a/Source/ApplicationBase/Empresas/Model/uBizEmpresas.pas b/Source/ApplicationBase/Empresas/Model/uBizEmpresas.pas new file mode 100644 index 0000000..2fa85f0 --- /dev/null +++ b/Source/ApplicationBase/Empresas/Model/uBizEmpresas.pas @@ -0,0 +1,100 @@ +unit uBizEmpresas; + +interface + +uses + uDAInterfaces, uDADataTable, schEmpresasClient_Intf, + uBizEmpresasDatosBancarios; + +const + BIZ_CLIENT_EMPRESA = 'Client.Empresa'; + +type + IBizEmpresa = interface (IEmpresas) + ['{1DB69F36-969C-4078-B862-6D697670BCFD}'] + procedure SetDatosBancarios(AValue : IBizEmpresasDatosBancarios); + function GetDatosBancarios : IBizEmpresasDatosBancarios; + property DatosBancarios : IBizEmpresasDatosBancarios read GetDatosBancarios + write SetDatosBancarios; + + function EsNuevo : Boolean; + end; + + TBizEmpresa = class(TEmpresasDataTableRules, IBizEmpresa) + protected + FDatosBancarios : IBizEmpresasDatosBancarios; + FDatosBancariosLink : TDADataSource; + + procedure OnNewRecord(Sender: TDADataTable); override; + + procedure SetDatosBancarios(AValue : IBizEmpresasDatosBancarios); + function GetDatosBancarios : IBizEmpresasDatosBancarios; + public + function EsNuevo : Boolean; + procedure IniciarValoresEmpresaNueva; + + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + property DatosBancarios : IBizEmpresasDatosBancarios read GetDatosBancarios + write SetDatosBancarios; + end; + + +implementation + +uses + uDataTableUtils, Classes, DateUtils, SysUtils, Dialogs, + uFactuGES_App; + +{ TBizEmpresa } + + +constructor TBizEmpresa.Create(aDataTable: TDADataTable); +begin + inherited; + FDatosBancariosLink := TDADataSource.Create(NIL); + FDatosBancariosLink.DataTable := aDataTable; +end; + +destructor TBizEmpresa.Destroy; +begin + FDatosBancarios := NIL; + FDatosBancariosLink.Free; + inherited; +end; + +function TBizEmpresa.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +function TBizEmpresa.GetDatosBancarios: IBizEmpresasDatosBancarios; +begin + Result := FDatosBancarios; +end; + +procedure TBizEmpresa.IniciarValoresEmpresaNueva; +begin + USUARIO := AppFactuGES.UsuarioActivo.UserName; +end; + +procedure TBizEmpresa.OnNewRecord(Sender: TDADataTable); +begin + inherited; + IniciarValoresEmpresaNueva; +end; + +procedure TBizEmpresa.SetDatosBancarios(AValue: IBizEmpresasDatosBancarios); +begin + FDatosBancarios := AValue; + EnlazarMaestroDetalle(FDatosBancariosLink, FDatosBancarios); +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_EMPRESA, TBizEmpresa); + +finalization + +end. + diff --git a/Source/ApplicationBase/Empresas/Model/uBizEmpresasDatosBancarios.dcu b/Source/ApplicationBase/Empresas/Model/uBizEmpresasDatosBancarios.dcu new file mode 100644 index 0000000..dd257d2 Binary files /dev/null and b/Source/ApplicationBase/Empresas/Model/uBizEmpresasDatosBancarios.dcu differ diff --git a/Source/ApplicationBase/Empresas/Model/uBizEmpresasDatosBancarios.pas b/Source/ApplicationBase/Empresas/Model/uBizEmpresasDatosBancarios.pas new file mode 100644 index 0000000..54e810f --- /dev/null +++ b/Source/ApplicationBase/Empresas/Model/uBizEmpresasDatosBancarios.pas @@ -0,0 +1,51 @@ +unit uBizEmpresasDatosBancarios; + +interface + +uses + uDAInterfaces, uDADataTable, + schEmpresasClient_Intf; + +const + BIZ_CLIENT_EMPRESAS_DATOS_BANCARIOS = 'Client.EmpresasDatosBancarios'; + +type + IBizEmpresasDatosBancarios = interface(IEmpresasDatosBanco) + ['{CF695D8D-B9C0-406F-A3EA-B251E35A7E19}'] + function EsNuevo : Boolean; + end; + + TBizEmpresasDatosBancarios = class(TEmpresasDatosBancoDataTableRules, IBizEmpresasDatosBancarios) + protected + procedure BeforeInsert(Sender: TDADataTable); override; + public + function EsNuevo : Boolean; + end; + +implementation + +uses + Dialogs,uDataTableUtils, DB; + +{ TBizDatosBancarios } + +procedure TBizEmpresasDatosBancarios.BeforeInsert(Sender: TDADataTable); +var + AMasterTable : TDADataTable; +begin + inherited; + AMasterTable := DataTable.GetMasterDataTable; + if Assigned(AMasterTable) and (AMasterTable.State = dsInsert) then + AMasterTable.Post; +end; + +function TBizEmpresasDatosBancarios.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_EMPRESAS_DATOS_BANCARIOS, TBizEmpresasDatosBancarios); + + +end. diff --git a/Source/ApplicationBase/Empresas/Model/uBizEmpresasServer.dcu b/Source/ApplicationBase/Empresas/Model/uBizEmpresasServer.dcu new file mode 100644 index 0000000..a6d6103 Binary files /dev/null and b/Source/ApplicationBase/Empresas/Model/uBizEmpresasServer.dcu differ diff --git a/Source/ApplicationBase/Empresas/Model/uBizEmpresasServer.pas b/Source/ApplicationBase/Empresas/Model/uBizEmpresasServer.pas new file mode 100644 index 0000000..cd6a2ea --- /dev/null +++ b/Source/ApplicationBase/Empresas/Model/uBizEmpresasServer.pas @@ -0,0 +1,69 @@ +unit uBizEmpresasServer; + +interface + +uses + uDAInterfaces, uDADelta, uDABusinessProcessor, + schEmpresasServer_Intf; + +const + BIZ_SERVER_EMPRESAS = 'Server.Empresas'; + +type + TBizEmpresasServer = class(TEmpresasBusinessProcessorRules) + protected + procedure AfterProcessChange(Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); override; + + + end; + +implementation + +uses + Variants, uDAClasses, srvReferencias_Impl, uBusinessUtils, uROClasses, + uDataModuleServer, schEmpresasClient_Intf, Dialogs; + +{ TBizEmpresasServer } + +procedure TBizEmpresasServer.AfterProcessChange(Sender: TDABusinessProcessor; + aChange: TDADeltaChange; Processed: Boolean; var CanRemoveFromDelta: Boolean); +var + AConn : IDAConnection; + ParamTiempo: Variant; + ParamMargen: Variant; + +begin + inherited; + + { Por defecto, mantenemos los deltas por si alguna tabla hija los necesita } + CanRemoveFromDelta := False; + + case aChange.ChangeType of + ctInsert, ctUpdate: begin + ParamTiempo := Sender.CurrentChange.NewValueByName[fld_EmpresasPARAM_TIEMPO]; + ParamMargen := Sender.CurrentChange.NewValueByName[fld_EmpresasPARAM_MARGEN]; + if ((Sender.CurrentChange.OldValueByName[fld_EmpresasPARAM_TIEMPO] <> ParamTiempo) + or (Sender.CurrentChange.OldValueByName[fld_EmpresasPARAM_MARGEN] <> ParamMargen)) then + begin + try + //Recalculamos los PVP del catalogo + AConn := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionManager.GetDefaultConnectionName); + AConn.BeginTransaction; + Sender.Schema.NewCommand(AConn, 'RecalcularPVPArticulos', ['ID_EMPRESA', 'PARAM_MARGEN', 'PARAM_TIEMPO'], [Sender.CurrentChange.OldValueByName[fld_EmpresasID], ParamMargen, ParamTiempo]); + AConn.CommitTransaction; + except + AConn.RollbackTransaction; + RaiseError('RecalcularPVPArticulos'); + end; + + AConn:= Nil; + end; + end; + end; +end; + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_EMPRESAS, TBizEmpresasServer); + +end. diff --git a/Source/ApplicationBase/Empresas/Servidor/srvEmpresas_Impl.dcu b/Source/ApplicationBase/Empresas/Servidor/srvEmpresas_Impl.dcu new file mode 100644 index 0000000..761d423 Binary files /dev/null and b/Source/ApplicationBase/Empresas/Servidor/srvEmpresas_Impl.dcu differ diff --git a/Source/ApplicationBase/Empresas/Servidor/srvEmpresas_Impl.dfm b/Source/ApplicationBase/Empresas/Servidor/srvEmpresas_Impl.dfm new file mode 100644 index 0000000..1bbf696 --- /dev/null +++ b/Source/ApplicationBase/Empresas/Servidor/srvEmpresas_Impl.dfm @@ -0,0 +1,743 @@ +object srvEmpresas: TsrvEmpresas + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + ConnectionName = 'IBX' + ServiceSchema = schEmpresas + ServiceDataStreamer = DABin2DataStreamer + AllowWhereSQL = True + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + BeforeGetDatasetData = DataAbstractServiceBeforeGetDatasetData + Height = 166 + Width = 351 + object schEmpresas: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Diagrams = Diagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'EMPRESAS' + Name = 'IBX' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'RAZON_SOCIAL' + TableField = 'RAZON_SOCIAL' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end + item + DatasetField = 'TELEFONO_1' + TableField = 'TELEFONO_1' + end + item + DatasetField = 'TELEFONO_2' + TableField = 'TELEFONO_2' + end + item + DatasetField = 'MOVIL_1' + TableField = 'MOVIL_1' + end + item + DatasetField = 'MOVIL_2' + TableField = 'MOVIL_2' + end + item + DatasetField = 'FAX' + TableField = 'FAX' + end + item + DatasetField = 'EMAIL_1' + TableField = 'EMAIL_1' + end + item + DatasetField = 'EMAIL_2' + TableField = 'EMAIL_2' + end + item + DatasetField = 'PAGINA_WEB' + TableField = 'PAGINA_WEB' + end + item + DatasetField = 'NOTAS' + TableField = 'NOTAS' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end + item + DatasetField = 'LOGOTIPO' + TableField = 'LOGOTIPO' + end + item + DatasetField = 'REGISTRO_MERCANTIL' + TableField = 'REGISTRO_MERCANTIL' + end + item + DatasetField = 'PARAM_TIEMPO' + TableField = 'PARAM_TIEMPO' + end + item + DatasetField = 'PARAM_MARGEN' + TableField = 'PARAM_MARGEN' + end + item + DatasetField = 'ID_TIPO_IVA' + TableField = 'ID_TIPO_IVA' + end + item + DatasetField = 'ID_FORMA_PAGO' + TableField = 'ID_FORMA_PAGO' + end + item + DatasetField = 'ID_ALMACEN' + TableField = 'ID_ALMACEN' + end> + end> + Name = 'Empresas' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_EMPRESAS_ID' + ServerAutoRefresh = True + DictionaryEntry = 'Empresas_ID' + InPrimaryKey = True + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + DictionaryEntry = 'Empresas_NIF_CIF' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DictionaryEntry = 'Empresas_NOMBRE' + end + item + Name = 'RAZON_SOCIAL' + DataType = datString + Size = 255 + DictionaryEntry = 'Empresas_RAZON_SOCIAL' + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DictionaryEntry = 'Empresas_CALLE' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DictionaryEntry = 'Empresas_POBLACION' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'Empresas_PROVINCIA' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DictionaryEntry = 'Empresas_CODIGO_POSTAL' + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + DictionaryEntry = 'Empresas_TELEFONO_1' + end + item + Name = 'TELEFONO_2' + DataType = datString + Size = 25 + DictionaryEntry = 'Empresas_TELEFONO_2' + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + DictionaryEntry = 'Empresas_MOVIL_1' + end + item + Name = 'MOVIL_2' + DataType = datString + Size = 25 + DictionaryEntry = 'Empresas_MOVIL_2' + end + item + Name = 'FAX' + DataType = datString + Size = 25 + DictionaryEntry = 'Empresas_FAX' + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + DictionaryEntry = 'Empresas_EMAIL_1' + end + item + Name = 'EMAIL_2' + DataType = datString + Size = 255 + DictionaryEntry = 'Empresas_EMAIL_2' + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + DictionaryEntry = 'Empresas_PAGINA_WEB' + end + item + Name = 'NOTAS' + DataType = datMemo + DictionaryEntry = 'Empresas_NOTAS' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'Empresas_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'Empresas_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'Empresas_USUARIO' + end + item + Name = 'LOGOTIPO' + DataType = datBlob + BlobType = dabtBlob + DictionaryEntry = 'Empresas_LOGOTIPO' + end + item + Name = 'REGISTRO_MERCANTIL' + DataType = datString + Size = 255 + DictionaryEntry = 'Empresas_REGISTRO_MERCANTIL' + end + item + Name = 'PARAM_TIEMPO' + DataType = datFloat + DictionaryEntry = 'Empresas_PARAM_TIEMPO' + end + item + Name = 'PARAM_MARGEN' + DataType = datFloat + DictionaryEntry = 'Empresas_PARAM_MARGEN' + end + item + Name = 'ID_TIPO_IVA' + DataType = datSmallInt + DictionaryEntry = 'Empresas_ID_TIPO_IVA' + end + item + Name = 'ID_FORMA_PAGO' + DataType = datSmallInt + DictionaryEntry = 'Empresas_ID_FORMA_PAGO' + end + item + Name = 'ID_ALMACEN' + DataType = datSmallInt + DictionaryEntry = 'Empresas_ID_ALMACEN' + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'EMPRESAS_DATOS_BANCO' + Name = 'IBX' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'ENTIDAD' + TableField = 'ENTIDAD' + end + item + DatasetField = 'SUCURSAL' + TableField = 'SUCURSAL' + end + item + DatasetField = 'DC' + TableField = 'DC' + end + item + DatasetField = 'CUENTA' + TableField = 'CUENTA' + end + item + DatasetField = 'SUFIJO_N19' + TableField = 'SUFIJO_N19' + end + item + DatasetField = 'SUFIJO_N58' + TableField = 'SUFIJO_N58' + end + item + DatasetField = 'IBAN' + TableField = 'IBAN' + end + item + DatasetField = 'SWIFT' + TableField = 'SWIFT' + end> + end> + Name = 'EmpresasDatosBanco' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_EMPRESAS_DATOS_BANCO_ID' + ServerAutoRefresh = True + DictionaryEntry = 'EmpresasDatosBanco_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'EmpresasDatosBanco_ID_EMPRESA' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DictionaryEntry = 'EmpresasDatosBanco_NOMBRE' + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + DictionaryEntry = 'EmpresasDatosBanco_ENTIDAD' + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + DictionaryEntry = 'EmpresasDatosBanco_SUCURSAL' + end + item + Name = 'DC' + DataType = datString + Size = 15 + DictionaryEntry = 'EmpresasDatosBanco_DC' + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + DictionaryEntry = 'EmpresasDatosBanco_CUENTA' + end + item + Name = 'SUFIJO_N19' + DataType = datString + Size = 3 + DictionaryEntry = 'EmpresasDatosBanco_SUFIJO_N19' + end + item + Name = 'SUFIJO_N58' + DataType = datString + Size = 3 + DictionaryEntry = 'EmpresasDatosBanco_SUFIJO_N58' + end + item + Name = 'IBAN' + DataType = datString + Size = 255 + end + item + Name = 'SWIFT' + DataType = datString + Size = 255 + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'id_empresa' + Value = '' + end + item + Name = 'param_margen' + Value = '' + end + item + Name = 'param_tiempo' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + Name = 'IBX' + SQL = + 'execute procedure PRO_ART_RECALCULAR_PVP :id_empresa, :param_mar' + + 'gen, :param_tiempo'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'RecalcularPVPArticulos' + end> + RelationShips = < + item + Name = 'FK_EmpresasDatosBanco_Empresas' + MasterDatasetName = 'Empresas' + MasterFields = 'ID' + DetailDatasetName = 'EmpresasDatosBanco' + DetailFields = 'ID_EMPRESA' + RelationshipType = rtForeignKey + end> + UpdateRules = < + item + Name = 'Insert Empresas' + DoUpdate = False + DoDelete = False + DatasetName = 'Empresas' + FailureBehavior = fbRaiseException + end + item + Name = 'Insert EmpresasDatosBanco' + DoUpdate = False + DoDelete = False + DatasetName = 'EmpresasDatosBanco' + FailureBehavior = fbRaiseException + end + item + Name = 'Update Empresas' + DoInsert = False + DoDelete = False + DatasetName = 'Empresas' + FailureBehavior = fbRaiseException + end + item + Name = 'Update EmpresasDatosBanco' + DoInsert = False + DoDelete = False + DatasetName = 'EmpresasDatosBanco' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete EmpresasDatosBanco' + DoUpdate = False + DoInsert = False + DatasetName = 'EmpresasDatosBanco' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete Empresas' + DoUpdate = False + DoInsert = False + DatasetName = 'Empresas' + FailureBehavior = fbRaiseException + end> + Version = 0 + Left = 46 + Top = 22 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'Empresas_NIF_CIF' + DataType = datString + Size = 15 + DisplayLabel = 'CIF' + end + item + Name = 'Empresas_NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Nombre' + end + item + Name = 'Empresas_RAZON_SOCIAL' + DataType = datString + Size = 255 + DisplayLabel = 'Raz'#243'n Social' + end + item + Name = 'Empresas_CALLE' + DataType = datString + Size = 255 + DisplayLabel = 'Calle' + end + item + Name = 'Empresas_POBLACION' + DataType = datString + Size = 255 + DisplayLabel = 'Poblaci'#243'n' + end + item + Name = 'Empresas_PROVINCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Provincia' + end + item + Name = 'Empresas_CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#243'd. postal' + end + item + Name = 'Empresas_TELEFONO_1' + DataType = datString + Size = 25 + DisplayLabel = 'Tel'#233'fono 1' + end + item + Name = 'Empresas_TELEFONO_2' + DataType = datString + Size = 25 + DisplayLabel = 'Tel'#233'fono 2' + end + item + Name = 'Empresas_MOVIL_1' + DataType = datString + Size = 25 + DisplayLabel = 'M'#243'vil 1' + end + item + Name = 'Empresas_MOVIL_2' + DataType = datString + Size = 25 + DisplayLabel = 'M'#243'vil 2' + end + item + Name = 'Empresas_FAX' + DataType = datString + Size = 25 + DisplayLabel = 'Fax' + end + item + Name = 'Empresas_EMAIL_1' + DataType = datString + Size = 255 + DisplayLabel = 'E-mail 1' + end + item + Name = 'Empresas_EMAIL_2' + DataType = datString + Size = 255 + DisplayLabel = 'E-mail 2' + end + item + Name = 'Empresas_PAGINA_WEB' + DataType = datString + Size = 255 + DisplayLabel = 'P'#225'gina web' + end + item + Name = 'Empresas_NOTAS' + DataType = datMemo + DisplayLabel = 'Notas' + end + item + Name = 'Empresas_FECHA_ALTA' + DataType = datDateTime + end + item + Name = 'Empresas_FECHA_MODIFICACION' + DataType = datDateTime + end + item + Name = 'Empresas_USUARIO' + DataType = datString + Size = 20 + end + item + Name = 'Empresas_LOGOTIPO' + DataType = datBlob + BlobType = dabtBlob + DisplayLabel = 'Logotipo' + end + item + Name = 'Empresas_REGISTRO_MERCANTIL' + DataType = datString + Size = 255 + DisplayLabel = 'Registro mercantil' + end + item + Name = 'Empresas_IVA' + DataType = datFloat + DisplayLabel = 'IVA' + end + item + Name = 'EmpresasDatosBanco_ID_EMPRESA' + DataType = datInteger + end + item + Name = 'EmpresasDatosBanco_NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Nombre del banco' + end + item + Name = 'EmpresasDatosBanco_ENTIDAD' + DataType = datString + Size = 15 + DisplayLabel = 'Entidad' + end + item + Name = 'EmpresasDatosBanco_SUCURSAL' + DataType = datString + Size = 15 + DisplayLabel = 'Sucursal' + end + item + Name = 'EmpresasDatosBanco_DC' + DataType = datString + Size = 15 + DisplayLabel = 'DC' + end + item + Name = 'EmpresasDatosBanco_CUENTA' + DataType = datString + Size = 15 + DisplayLabel = 'Cuenta' + end + item + Name = 'EmpresasDatosBanco_SUFIJO_N19' + DataType = datString + Size = 3 + DisplayLabel = 'Sufijo 19' + end + item + Name = 'EmpresasDatosBanco_SUFIJO_N58' + DataType = datString + Size = 3 + DisplayLabel = 'Sufijo 58' + end + item + Name = 'Empresas_ID' + DataType = datAutoInc + GeneratorName = 'GEN_EMPRESAS_ID' + LogChanges = False + Required = True + DisplayLabel = 'ID' + ServerAutoRefresh = True + end + item + Name = 'EmpresasDatosBanco_ID' + DataType = datAutoInc + GeneratorName = 'GEN_EMPRESAS_DATOS_BANCO_ID' + LogChanges = False + Required = True + DisplayLabel = 'ID' + ServerAutoRefresh = True + end + item + Name = 'Empresas_PARAM_TIEMPO' + DataType = datFloat + DisplayLabel = 'PARAM_TIEMPO' + end + item + Name = 'Empresas_PARAM_MARGEN' + DataType = datFloat + DisplayLabel = 'PARAM_MARGEN' + end + item + Name = 'Empresas_ID_TIPO_IVA' + DataType = datSmallInt + end + item + Name = 'Empresas_ID_FORMA_PAGO' + DataType = datSmallInt + end + item + Name = 'Empresas_ID_ALMACEN' + DataType = datSmallInt + end> + Left = 158 + Top = 22 + end + object Diagrams: TDADiagrams + Left = 158 + Top = 90 + DiagramData = + ''#13#10' '#13#10' '#13#10' '#13#10' '#13#10''#13#10 + end + object DABin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 88 + end + object bpEmpresas: TDABusinessProcessor + Schema = schEmpresas + ReferencedDataset = 'Empresas' + ProcessorOptions = [poAutoGenerateInsert, poAutoGenerateUpdate, poAutoGenerateDelete, poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 264 + Top = 24 + end +end diff --git a/Source/ApplicationBase/Empresas/Servidor/srvEmpresas_Impl.pas b/Source/ApplicationBase/Empresas/Servidor/srvEmpresas_Impl.pas new file mode 100644 index 0000000..7ff051c --- /dev/null +++ b/Source/ApplicationBase/Empresas/Servidor/srvEmpresas_Impl.pas @@ -0,0 +1,188 @@ +unit srvEmpresas_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} FactuGES_Intf, uDAScriptingProvider, uDABusinessProcessor, + uDABin2DataStreamer, uDADataStreamer, uDAClasses, uDAInterfaces, + uDADataTable; + +type + { TsrvEmpresas } + TsrvEmpresas = class(TDataAbstractService, IsrvEmpresas) + Diagrams: TDADiagrams; + DABin2DataStreamer: TDABin2DataStreamer; + bpEmpresas: TDABusinessProcessor; + schEmpresas: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceCreate(Sender: TObject); + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; + var aConnectionName: string); + procedure DataAbstractServiceBeforeGetDatasetData(aSender: TObject; + const aDataset: IDADataset; const aIncludeSchema: Boolean; + const aMaxRecords: Integer); + protected + function DarDatosEmpresa(const EmpresaID: Integer; AEmpresaDataSet: IDADataset): Boolean; + function DarListaFormasPago: Binary; + function DarListaTiposIVA: Binary; + function DarListaAlmacenes(const ID_EMPRESA: Integer): Binary; + end; + +function RecuperarEmpresa(const AID: Integer; AEmpresaDataSet: IDADataset): Boolean; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer, uRORemoteDataModule, + uDatabaseUtils, Dialogs, Variants, uROStreamSerializer, uROBinaryHelpers, + uSesionesUtils, schEmpresasClient_Intf, uUsersManager, + uRestriccionesUsuarioUtils, uROClasses, uBizEmpresasServer, + srvFormasPago_Impl, srvTiposIva_Impl, srvAlmacenes_Impl; + +procedure Create_srvEmpresas(out anInstance : IUnknown); +begin + anInstance := TsrvEmpresas.Create(NIL); +end; + +function RecuperarEmpresa(const AID: Integer; AEmpresaDataSet: IDADataset): Boolean; +begin + with TsrvEmpresas.Create(NIL) do + try + Result := DarDatosEmpresa(AID, AEmpresaDataSet); + finally + Free; + end; +end; + + +{ srvEmpresas } +function TsrvEmpresas.DarDatosEmpresa(const EmpresaID: Integer; AEmpresaDataSet: IDADataset): Boolean; +var + ASchema : TDASchema; + AConn : IDAConnection; + dsData: IDADataset; + +// AWhere : TDAWhereExpression; + ABinary : Binary; +begin + { + Construir la expresin del Where a partir de los parmetros + que se reciban. + } + { ************ NO S POR QU NO FUNCIONA EL DYNAMICWHERE AQUI + with TDAWhereBuilder.Create do + try + AWhere := NewBinaryExpression(NewField('EMPRESAS', 'ID'), NewConstant(EmpresaID, datInteger), dboEqual); + finally + Free; + end; + ************** } + + ASchema := schEmpresas; + AConn := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionManager.GetDefaultConnectionName); + + try + try + dsData := ASchema.NewDataset(AConn, 'Empresas', '', False); + dsData.Where.AddText('EMPRESAS.ID = ' + IntToStr(EmpresaID)); + except + RaiseError('No existe la tabla EMPRESAS'); + end; + + dsData.Active := True; + + ABinary := Binary.Create; + try + ServiceDataStreamer.WriteDataset(ABinary, dsData, [woSchema, woRows]); + ServiceDataStreamer.Initialize(ABinary, aiReadFromBeginning); + ServiceDataStreamer.ReadDataset('Empresas', AEmpresaDataSet, True, True); + Result := True; + finally + FreeAndNIL(ABinary); + end; + finally + dsData := NIL; + AConn := NIL; + end; +end; + +procedure TsrvEmpresas.DARemoteServiceCreate(Sender: TObject); +begin + //SessionManager := dmServer.SessionManager; + bpEmpresas.BusinessRulesID := BIZ_SERVER_EMPRESAS; +end; + +function TsrvEmpresas.DarListaAlmacenes(const ID_EMPRESA: Integer): Binary; +var + AAlmacenesServer : TsrvAlmacenes; +begin + AAlmacenesServer := TsrvAlmacenes.Create(nil); + try + Result := AAlmacenesServer.DarListaALmacenes(ID_EMPRESA); + finally + FreeAndNIL(AAlmacenesServer); + end; + +end; + +function TsrvEmpresas.DarListaFormasPago: Binary; +var + AFormasPagoServer : TsrvFormasPago; +begin + AFormasPagoServer := TsrvFormasPago.Create(nil); + try + Result := AFormasPagoServer.DarListaFormasPago; + finally + FreeAndNIL(AFormasPagoServer); + end; +end; + +function TsrvEmpresas.DarListaTiposIVA: Binary; +var + ATiposIVAServer : TsrvTiposIVA; +begin + ATiposIVAServer := TsrvTiposIVA.Create(nil); + try + Result := ATiposIVAServer.DarListaTiposIVA; + finally + FreeAndNIL(ATiposIVAServer); + end; +end; + +procedure TsrvEmpresas.DataAbstractServiceBeforeAcquireConnection( + aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +procedure TsrvEmpresas.DataAbstractServiceBeforeGetDatasetData(aSender: TObject; + const aDataset: IDADataset; const aIncludeSchema: Boolean; + const aMaxRecords: Integer); +begin + Exit; + if (aDataset.Name <> nme_EmpresasDatosBanco) then + begin + { Aqu se asegura que el usuario slo accede a las empresas a + las que tiene permiso para acceder filtrando DataSet por ID_EMPRESA. } + FiltrarAccesoUsuario(Session, Connection, ServiceSchema, aDataset, fld_EmpresasID); + end; +end; + +initialization + TROClassFactory.Create('srvEmpresas', Create_srvEmpresas, TsrvEmpresas_Invoker); + +finalization + +end. diff --git a/Source/ApplicationBase/Empresas/Test/Empresas_Tests.bdsproj b/Source/ApplicationBase/Empresas/Test/Empresas_Tests.bdsproj new file mode 100644 index 0000000..37154e7 --- /dev/null +++ b/Source/ApplicationBase/Empresas/Test/Empresas_Tests.bdsproj @@ -0,0 +1,496 @@ + + + + + + + + + + + + Empresas_Tests.dpr + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + ..\..\..\..\Output\Debug\Cliente + .\ + + ..\..\Lib + ..\..\..\Lib;..\..\Lib + DataAbstract_D10;Base;GUIBase;Empresas_model;Empresas_controller + _CONSOLE_TESTRUNNER;EUREKALOG;EUREKALOG_VER5 + + True + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + Empresas (Test) + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + DUnit / Delphi Win32 + GUI + + + diff --git a/Source/ApplicationBase/Empresas/Test/Empresas_Tests.dpr b/Source/ApplicationBase/Empresas/Test/Empresas_Tests.dpr new file mode 100644 index 0000000..e43b010 --- /dev/null +++ b/Source/ApplicationBase/Empresas/Test/Empresas_Tests.dpr @@ -0,0 +1,39 @@ +program Empresas_Tests; +{ + + Delphi DUnit Test Project + ------------------------- + This project contains the DUnit test framework and the GUI/Console test runners. + Add "CONSOLE_TESTRUNNER" to the conditional defines entry in the project options + to use the console test runner. Otherwise the GUI test runner will be used by + default. + +} + +{$IFDEF CONSOLE_TESTRUNNER} +{$APPTYPE CONSOLE} +{$ENDIF} + +uses + ExceptionLog, + Forms, + TestFramework, + GUITestRunner, + TextTestRunner, + uEmpresasController_Test in 'uEmpresasController_Test.pas', + uHostMainForm in 'uHostMainForm.pas' {HostMainForm}; + +{$R *.RES} + +begin + Application.Initialize; + Application.CreateForm(THostMainForm, HostMainForm); + Application.Run; + Application.Terminate; + + {if IsConsole then + TextTestRunner.RunRegisteredTests + else + GUITestRunner.RunRegisteredTests;} +end. + diff --git a/Source/ApplicationBase/Empresas/Test/Empresas_Tests.res b/Source/ApplicationBase/Empresas/Test/Empresas_Tests.res new file mode 100644 index 0000000..346c5f0 Binary files /dev/null and b/Source/ApplicationBase/Empresas/Test/Empresas_Tests.res differ diff --git a/Source/ApplicationBase/Empresas/Test/uEmpresasController_Test.pas b/Source/ApplicationBase/Empresas/Test/uEmpresasController_Test.pas new file mode 100644 index 0000000..50cf268 --- /dev/null +++ b/Source/ApplicationBase/Empresas/Test/uEmpresasController_Test.pas @@ -0,0 +1,178 @@ +unit uEmpresasController_Test; +{ + + Delphi DUnit Test Case + ---------------------- + This unit contains a skeleton test case class generated by the Test Case Wizard. + Modify the generated code to correctly setup and call the methods from the unit + being tested. + +} + +interface + +uses + TestFramework, Classes, uEmpresasController, Contnrs, SysUtils, uIDataModuleEmpresas, + Forms, Windows, Controls, uBizEmpresas; +type + // Test methods for class TEmpresasController + + TestTEmpresasController = class(TTestCase) + strict private + FEmpresasController: TEmpresasController; + public + procedure SetUp; override; + procedure TearDown; override; + published + procedure TestEliminar; + procedure TestEliminar1; + procedure TestGuardar; + procedure TestDescartarCambios; + procedure TestExiste; + procedure TestAnadir; + procedure TestBuscar; + procedure TestBuscarTodos; + procedure TestNuevo; + procedure TestVer; + procedure TestVerTodos; + procedure TestToStringList; + end; + +implementation + +procedure TestTEmpresasController.SetUp; +begin + FEmpresasController := TEmpresasController.Create; +end; + +procedure TestTEmpresasController.TearDown; +begin + FEmpresasController.Free; + FEmpresasController := nil; +end; + +procedure TestTEmpresasController.TestEliminar; +var + ID: Integer; +begin + Check(False); + // TODO: Setup method call parameters + FEmpresasController.Eliminar(ID); + // TODO: Validate method results +end; + +procedure TestTEmpresasController.TestEliminar1; +var + AEmpresa: IBizEmpresa; +begin + Check(False); + // TODO: Setup method call parameters + FEmpresasController.Eliminar(AEmpresa); + // TODO: Validate method results +end; + +procedure TestTEmpresasController.TestGuardar; +var + AEmpresa: IBizEmpresa; +begin + Check(False); + // TODO: Setup method call parameters + FEmpresasController.Guardar(AEmpresa); + // TODO: Validate method results +end; + +procedure TestTEmpresasController.TestDescartarCambios; +var + AEmpresa: IBizEmpresa; +begin + Check(False); + // TODO: Setup method call parameters + FEmpresasController.DescartarCambios(AEmpresa); + // TODO: Validate method results +end; + +procedure TestTEmpresasController.TestExiste; +var + ReturnValue: Boolean; + ID: Integer; +begin + Check(False); + // TODO: Setup method call parameters + ReturnValue := FEmpresasController.Existe(ID); + // TODO: Validate method results +end; + +procedure TestTEmpresasController.TestAnadir; +var + AEmpresa: IBizEmpresa; +begin + Check(False); + // TODO: Setup method call parameters + FEmpresasController.Anadir(AEmpresa); + // TODO: Validate method results +end; + +procedure TestTEmpresasController.TestBuscar; +var + ReturnValue: IBizEmpresa; + ID: Integer; +begin + Check(False); + // TODO: Setup method call parameters + ReturnValue := FEmpresasController.Buscar(ID); + // TODO: Validate method results +end; + +procedure TestTEmpresasController.TestBuscarTodos; +var + ReturnValue: IBizEmpresa; +begin + ReturnValue := FEmpresasController.BuscarTodos; + // TODO: Validate method results +end; + +procedure TestTEmpresasController.TestNuevo; +var + ReturnValue: IBizEmpresa; +begin + Check(False); + ReturnValue := FEmpresasController.Nuevo; + // TODO: Validate method results +end; + +procedure TestTEmpresasController.TestVer; +var + AEmpresa: IBizEmpresa; +begin + Check(False); + // TODO: Setup method call parameters + FEmpresasController.Ver(AEmpresa); + // TODO: Validate method results +end; + +procedure TestTEmpresasController.TestVerTodos; +var + AEmpresas: IBizEmpresa; +begin + Check(False); + // TODO: Setup method call parameters + FEmpresasController.VerTodos(AEmpresas); + // TODO: Validate method results +end; + +procedure TestTEmpresasController.TestToStringList; +var + ReturnValue: TStringList; + AEmpresa: IBizEmpresa; +begin + Check(False); + // TODO: Setup method call parameters + ReturnValue := FEmpresasController.ToStringList(AEmpresa); + // TODO: Validate method results +end; + +initialization + // Register any test cases with the test runner + RegisterTest(TestTEmpresasController.Suite); +end. + diff --git a/Source/ApplicationBase/Empresas/Test/uHostMainForm.dfm b/Source/ApplicationBase/Empresas/Test/uHostMainForm.dfm new file mode 100644 index 0000000..1de986c --- /dev/null +++ b/Source/ApplicationBase/Empresas/Test/uHostMainForm.dfm @@ -0,0 +1,28 @@ +object HostMainForm: THostMainForm + Left = 0 + Top = 0 + Caption = 'HostMainForm' + ClientHeight = 598 + ClientWidth = 690 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnCloseQuery = FormCloseQuery + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 690 + Height = 598 + Align = alClient + BevelOuter = bvNone + TabOrder = 0 + end +end diff --git a/Source/ApplicationBase/Empresas/Test/uHostMainForm.pas b/Source/ApplicationBase/Empresas/Test/uHostMainForm.pas new file mode 100644 index 0000000..50f4b46 --- /dev/null +++ b/Source/ApplicationBase/Empresas/Test/uHostMainForm.pas @@ -0,0 +1,116 @@ +unit uHostMainForm; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uGUIBase, ExtCtrls, uCustomEditor, cxControls; + +type + THostMainForm = class(TForm, IHostForm) + Panel1: TPanel; + procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); + procedure FormShow(Sender: TObject); + protected + FContenido : TCustomEditor; + function GetWorkPanel: TWinControl; + procedure OnWorkPanelChanged(AEditor : ICustomEditor); + procedure ShowEmbedded(AEditor : ICustomEditor); + procedure ReleaseEmbedded; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + property WorkPanel: TWinControl read GetWorkPanel; + end; + +var + HostMainForm: THostMainForm; + +implementation + +{$R *.dfm} + +uses + TestFramework, GUITestRunner, TextTestRunner; + + +{ TForm1 } + +constructor THostMainForm.Create(AOwner: TComponent); +begin + inherited; + FContenido := NIL; +end; + +destructor THostMainForm.Destroy; +begin + ReleaseEmbedded; + inherited; +end; + +procedure THostMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean); +begin + CanClose := True; + if Assigned(FContenido) then + CanClose := FContenido.CloseQuery; +end; + +procedure THostMainForm.FormShow(Sender: TObject); +begin + if IsConsole then + TextTestRunner.RunRegisteredTests + else + GUITestRunner.RunRegisteredTestsModeless; + Self.SendToBack; +end; + +function THostMainForm.GetWorkPanel: TWinControl; +begin + Result := Panel1; +end; + +procedure THostMainForm.OnWorkPanelChanged(AEditor: ICustomEditor); +begin + // +end; + +procedure THostMainForm.ReleaseEmbedded; +begin + if Assigned(FContenido) then + FContenido.Release; + Application.ProcessMessages; +end; + +procedure THostMainForm.ShowEmbedded(AEditor: ICustomEditor); +begin + if Assigned(FContenido) then + if not FContenido.CloseQuery then + begin + AEditor.Release; + AEditor := NIL; + Exit; + end; + + ShowHourglassCursor; + LockWindowUpdate(Handle); + try + FContenido := AEditor.GetInstance as TCustomEditor; + with (FContenido) do + begin + Visible := False; + BorderIcons := []; + BorderStyle := bsNone; + Parent := WorkPanel; + FContenido.Show; + Align := alClient; + FContenido.SetFocus; + end; + finally + Application.ProcessMessages; + LockWindowUpdate(0); + HideHourglassCursor; + end; + OnWorkPanelChanged(FContenido); +end; + +end. diff --git a/Source/ApplicationBase/Empresas/Views/uEditorDatosBancariosEmpresa.dcu b/Source/ApplicationBase/Empresas/Views/uEditorDatosBancariosEmpresa.dcu new file mode 100644 index 0000000..727329e Binary files /dev/null and b/Source/ApplicationBase/Empresas/Views/uEditorDatosBancariosEmpresa.dcu differ diff --git a/Source/ApplicationBase/Empresas/Views/uEditorDatosBancariosEmpresa.dfm b/Source/ApplicationBase/Empresas/Views/uEditorDatosBancariosEmpresa.dfm new file mode 100644 index 0000000..2aa9e1d --- /dev/null +++ b/Source/ApplicationBase/Empresas/Views/uEditorDatosBancariosEmpresa.dfm @@ -0,0 +1,218 @@ +object fEditorDatosBancariosEmpresa: TfEditorDatosBancariosEmpresa + Left = 227 + Top = 108 + BorderStyle = bsDialog + Caption = 'Cambio de datos bancarios' + ClientHeight = 414 + ClientWidth = 449 + Color = clBtnFace + ParentFont = True + OldCreateOrder = True + Position = poOwnerFormCenter + DesignSize = ( + 449 + 414) + PixelsPerInch = 96 + TextHeight = 13 + object OKBtn: TButton + Left = 366 + Top = 7 + Width = 75 + Height = 25 + Anchors = [akTop, akRight] + Caption = '&Guardar' + ModalResult = 1 + TabOrder = 0 + end + object CancelBtn: TButton + Left = 366 + Top = 38 + Width = 75 + Height = 25 + Anchors = [akTop, akRight] + Cancel = True + Caption = '&Cancelar' + ModalResult = 2 + TabOrder = 1 + end + object GroupBox1: TGroupBox + Left = 8 + Top = 8 + Width = 329 + Height = 228 + Caption = 'Datos bancarios' + TabOrder = 2 + object Label5: TLabel + Left = 12 + Top = 31 + Width = 77 + Height = 13 + AutoSize = False + Caption = 'Banco:' + end + object Label2: TLabel + Left = 12 + Top = 67 + Width = 77 + Height = 13 + AutoSize = False + Caption = 'C'#243'd. entidad:' + end + object Label3: TLabel + Left = 12 + Top = 94 + Width = 77 + Height = 13 + AutoSize = False + Caption = 'C'#243'd. sucursal:' + end + object Label4: TLabel + Left = 12 + Top = 120 + Width = 77 + Height = 13 + AutoSize = False + Caption = 'DC:' + end + object Label6: TLabel + Left = 11 + Top = 146 + Width = 78 + Height = 13 + AutoSize = False + Caption = 'Cuenta:' + end + object Label8: TLabel + Left = 11 + Top = 172 + Width = 78 + Height = 13 + AutoSize = False + Caption = 'IBAN:' + end + object Label9: TLabel + Left = 11 + Top = 199 + Width = 78 + Height = 13 + AutoSize = False + Caption = 'SWIFT:' + end + object eNombre: TDBEdit + Left = 95 + Top = 28 + Width = 223 + Height = 21 + Color = clInfoBk + DataField = 'NOMBRE' + DataSource = dsDatosBancarios + TabOrder = 0 + end + object eCodEntidad: TDBEdit + Left = 95 + Top = 64 + Width = 74 + Height = 21 + DataField = 'ENTIDAD' + DataSource = dsDatosBancarios + MaxLength = 4 + TabOrder = 1 + end + object eCodSucursal: TDBEdit + Left = 95 + Top = 90 + Width = 74 + Height = 21 + DataField = 'SUCURSAL' + DataSource = dsDatosBancarios + MaxLength = 4 + TabOrder = 2 + end + object eDC: TDBEdit + Left = 95 + Top = 116 + Width = 74 + Height = 21 + DataField = 'DC' + DataSource = dsDatosBancarios + MaxLength = 2 + TabOrder = 3 + end + object eCuenta: TDBEdit + Left = 95 + Top = 142 + Width = 223 + Height = 21 + DataField = 'CUENTA' + DataSource = dsDatosBancarios + TabOrder = 4 + end + object eSWIFT: TDBEdit + Left = 95 + Top = 196 + Width = 223 + Height = 21 + DataField = 'SWIFT' + DataSource = dsDatosBancarios + TabOrder = 5 + end + end + object GroupBox2: TGroupBox + Left = 8 + Top = 242 + Width = 329 + Height = 83 + Caption = 'Sufijos para normas CSB' + TabOrder = 3 + Visible = False + object Label7: TLabel + Left = 12 + Top = 28 + Width = 77 + Height = 13 + AutoSize = False + Caption = 'Norma 19:' + end + object Label1: TLabel + Left = 12 + Top = 55 + Width = 77 + Height = 13 + AutoSize = False + Caption = 'Norma 58:' + end + object eNorma19: TDBEdit + Left = 95 + Top = 24 + Width = 74 + Height = 21 + DataField = 'SUFIJO_N19' + DataSource = dsDatosBancarios + MaxLength = 3 + TabOrder = 0 + end + object eNorma58: TDBEdit + Left = 95 + Top = 51 + Width = 74 + Height = 21 + DataField = 'SUFIJO_N58' + DataSource = dsDatosBancarios + MaxLength = 3 + TabOrder = 1 + end + end + object eIBAN: TDBEdit + Left = 103 + Top = 177 + Width = 223 + Height = 21 + DataField = 'IBAN' + DataSource = dsDatosBancarios + TabOrder = 4 + end + object dsDatosBancarios: TDADataSource + Left = 352 + Top = 72 + end +end diff --git a/Source/ApplicationBase/Empresas/Views/uEditorDatosBancariosEmpresa.pas b/Source/ApplicationBase/Empresas/Views/uEditorDatosBancariosEmpresa.pas new file mode 100644 index 0000000..60cac84 --- /dev/null +++ b/Source/ApplicationBase/Empresas/Views/uEditorDatosBancariosEmpresa.pas @@ -0,0 +1,101 @@ +unit uEditorDatosBancariosEmpresa; + +interface + +uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, + Buttons, ExtCtrls, Mask, DBCtrls, DB, uDADataTable, PngSpeedButton, + cxControls, cxContainer, cxEdit, cxTextEdit, cxHyperLinkEdit, cxDBEdit, + uIEditorDatosBancarioEmpresa, uDatosBancariosEmpresaController, uBizEmpresasDatosBancarios, + cxCurrencyEdit, uDAInterfaces; + +type + TfEditorDatosBancariosEmpresa = class(TForm, IEditorDatosBancariosEmpresa) + OKBtn: TButton; + CancelBtn: TButton; + dsDatosBancarios: TDADataSource; + GroupBox1: TGroupBox; + Label5: TLabel; + eNombre: TDBEdit; + Label2: TLabel; + eCodEntidad: TDBEdit; + Label3: TLabel; + eCodSucursal: TDBEdit; + Label4: TLabel; + eDC: TDBEdit; + Label6: TLabel; + eCuenta: TDBEdit; + GroupBox2: TGroupBox; + Label7: TLabel; + eNorma19: TDBEdit; + Label1: TLabel; + eNorma58: TDBEdit; + eIBAN: TDBEdit; + Label8: TLabel; + eSWIFT: TDBEdit; + Label9: TLabel; + protected + FController : IDatosBancariosEmpresaController; + FDatosBancarios: IBizEmpresasDatosBancarios; + + function GetController : IDatosBancariosEmpresaController; + procedure SetController (const Value : IDatosBancariosEmpresaController); + + function GetDatosBancarios: IBizEmpresasDatosBancarios; + procedure SetDatosBancarios(const Value: IBizEmpresasDatosBancarios); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + property DatosBancarios: IBizEmpresasDatosBancarios read GetDatosBancarios write SetDatosBancarios; + property Controller : IDatosBancariosEmpresaController read GetController + write SetController; + end; + +implementation + +uses + Variants; + +{$R *.dfm} + +{ TfEditorDireccion } + +constructor TfEditorDatosBancariosEmpresa.Create(AOwner: TComponent); +begin + inherited; + FController := NIL; +end; + +destructor TfEditorDatosBancariosEmpresa.Destroy; +begin + FController := NIL; + inherited; +end; + +function TfEditorDatosBancariosEmpresa.GetController: IDatosBancariosEmpresaController; +begin + Result := FController; +end; + +function TfEditorDatosBancariosEmpresa.GetDatosBancarios: IBizEmpresasDatosBancarios; +begin + Result := FDatosBancarios; +end; + +procedure TfEditorDatosBancariosEmpresa.SetController( + const Value: IDatosBancariosEmpresaController); +begin + FController := Value; +end; + +procedure TfEditorDatosBancariosEmpresa.SetDatosBancarios( + const Value: IBizEmpresasDatosBancarios); +begin + FDatosBancarios := Value; + if Assigned(FDatosBancarios) then + dsDatosBancarios.DataTable := FDatosBancarios.DataTable + else + dsDatosBancarios.DataTable := NIL; +end; + + +end. diff --git a/Source/ApplicationBase/Empresas/Views/uEditorEmpresa.dcu b/Source/ApplicationBase/Empresas/Views/uEditorEmpresa.dcu new file mode 100644 index 0000000..4ca40c6 Binary files /dev/null and b/Source/ApplicationBase/Empresas/Views/uEditorEmpresa.dcu differ diff --git a/Source/ApplicationBase/Empresas/Views/uEditorEmpresa.dfm b/Source/ApplicationBase/Empresas/Views/uEditorEmpresa.dfm new file mode 100644 index 0000000..a452754 --- /dev/null +++ b/Source/ApplicationBase/Empresas/Views/uEditorEmpresa.dfm @@ -0,0 +1,421 @@ +inherited fEditorEmpresa: TfEditorEmpresa + Left = 575 + Top = 291 + HorzScrollBar.Visible = False + VertScrollBar.Visible = False + Caption = 'Ficha de empresa' + ClientHeight = 554 + ClientWidth = 674 + Scaled = False + ExplicitWidth = 682 + ExplicitHeight = 588 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 674 + Caption = 'Empresa' + ExplicitWidth = 674 + inherited Image1: TImage + Left = 541 + ExplicitLeft = 607 + end + inherited lblDesbloquear: TcxLabel + Left = 576 + ExplicitLeft = 576 + end + end + inherited TBXDock: TTBXDock + Width = 674 + ExplicitWidth = 674 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 330 + inherited TBXItem2: TTBXItem + Visible = False + end + inherited TBXItem5: TTBXItem + Visible = False + end + inherited TBXItem23: TTBXItem + Visible = False + end + inherited TBXItem3: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + DockPos = 0 + ExplicitWidth = 674 + inherited TBXSubmenuItem4: TTBXSubmenuItem + inherited TBXItem8: TTBXItem + Visible = False + end + inherited TBXSeparatorItem5: TTBXSeparatorItem + Visible = False + end + inherited TBXItem10: TTBXItem + Visible = False + end + inherited TBXItem21: TTBXItem + Visible = False + end + inherited TBXItem22: TTBXItem + Visible = False + end + inherited TBXItem9: TTBXItem + Visible = False + end + end + inherited TBXSubmenuItem1: TTBXSubmenuItem + inherited TBXItem32: TTBXItem + Visible = False + end + inherited TBXItem31: TTBXItem + Visible = False + end + inherited TBXSeparatorItem13: TTBXSeparatorItem + Visible = False + end + end + end + end + inherited pgPaginas: TPageControl + Width = 668 + Height = 453 + ExplicitWidth = 668 + ExplicitHeight = 453 + inherited pagGeneral: TTabSheet + ExplicitLeft = 4 + ExplicitTop = 24 + ExplicitWidth = 660 + ExplicitHeight = 425 + inline frViewEmpresa1: TfrViewEmpresa + Left = 0 + Top = 0 + Width = 660 + Height = 425 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 660 + ExplicitHeight = 425 + inherited dxLayoutControl1: TdxLayoutControl + Width = 660 + Height = 425 + LookAndFeel = dxLayoutOfficeLookAndFeel1 + ExplicitWidth = 660 + ExplicitHeight = 425 + inherited PngSpeedButton1: TPngSpeedButton + Left = 615 + Top = 295 + ExplicitLeft = 615 + ExplicitTop = 295 + end + inherited PngSpeedButton2: TPngSpeedButton + Left = 615 + Top = 267 + ExplicitLeft = 615 + ExplicitTop = 267 + end + inherited eCalle: TcxDBTextEdit + Top = 267 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 267 + ExplicitWidth = 234 + Width = 234 + end + inherited eCodigoPostal: TcxDBTextEdit + Top = 294 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 294 + end + inherited ePaginaWeb: TcxDBTextEdit + Left = 508 + Top = 216 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 508 + ExplicitTop = 216 + ExplicitWidth = 164 + Width = 164 + end + inherited eMailParticular: TcxDBTextEdit + Left = 508 + Top = 189 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 508 + ExplicitTop = 189 + ExplicitWidth = 164 + Width = 164 + end + inherited eMailTrabajo: TcxDBTextEdit + Left = 508 + Top = 162 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 508 + ExplicitTop = 162 + ExplicitWidth = 164 + Width = 164 + end + inherited cxDBMemo1: TcxDBMemo + Top = 372 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 372 + ExplicitWidth = 329 + ExplicitHeight = 64 + Height = 64 + Width = 329 + end + inherited eTlfParticular: TcxDBTextEdit + Left = 508 + Top = 57 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 508 + ExplicitTop = 57 + ExplicitWidth = 164 + Width = 164 + end + inherited eTlfTrabajo: TcxDBTextEdit + Left = 508 + Top = 30 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 508 + ExplicitTop = 30 + ExplicitWidth = 164 + Width = 164 + end + inherited eTlfMovil: TcxDBTextEdit + Left = 508 + Top = 84 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 508 + ExplicitTop = 84 + ExplicitWidth = 164 + Width = 164 + end + inherited eFax: TcxDBTextEdit + Left = 508 + Top = 111 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 508 + ExplicitTop = 111 + ExplicitWidth = 164 + Width = 164 + end + inherited eNombre: TcxDBTextEdit + Top = 30 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 30 + ExplicitWidth = 234 + Width = 234 + end + inherited eNIFCIF: TcxDBTextEdit + Top = 57 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 57 + ExplicitWidth = 234 + Width = 234 + end + inherited memRegistroMercantil: TcxDBMemo + Top = 84 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 84 + ExplicitWidth = 234 + Width = 234 + end + inherited cxDBImage1: TcxDBImage + Left = 413 + Top = 267 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 413 + ExplicitTop = 267 + ExplicitWidth = 230 + ExplicitHeight = 142 + Height = 142 + Width = 230 + end + inherited eParamMargen: TcxDBSpinEdit + Top = 216 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 216 + end + inherited eParamTiempo: TcxDBCurrencyEdit + Top = 216 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 216 + end + inherited cbProvincia: TcxDBComboBox + Top = 294 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 294 + ExplicitWidth = 91 + Width = 91 + end + inherited cbPoblacion: TcxDBComboBox + Top = 321 + Properties.OnInitPopup = nil + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 321 + ExplicitWidth = 234 + Width = 234 + end + inherited cbFormaPago: TcxComboBox + Top = 165 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 165 + ExplicitWidth = 202 + Width = 202 + end + inherited cbTipoIVA: TcxComboBox + Top = 138 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 138 + ExplicitWidth = 202 + Width = 202 + end + end + end + end + object TabSheet1: TTabSheet + Caption = 'Datos bancarios' + ImageIndex = 1 + inline frViewDatosBancarios1: TfrViewDatosBancarios + Left = 0 + Top = 0 + Width = 660 + Height = 425 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 660 + ExplicitHeight = 425 + inherited cxGrid: TcxGrid + Width = 660 + Height = 400 + ExplicitWidth = 660 + ExplicitHeight = 400 + end + inherited ToolBar1: TToolBar + Width = 660 + ExplicitWidth = 660 + end + end + end + end + inherited StatusBar: TJvStatusBar + Top = 535 + Width = 674 + Panels = < + item + Width = 200 + end> + ExplicitTop = 535 + ExplicitWidth = 674 + end + inherited EditorActionList: TActionList + Top = 128 + end + inherited SmallImages: TPngImageList + Left = 403 + Top = 176 + end + inherited dsDataTable: TDADataSource [6] + Left = 168 + Top = 120 + end + inherited LargeImages: TPngImageList [7] + Left = 435 + Top = 176 + end + inherited JvFormStorage: TJvFormStorage [8] + Left = 408 + Top = 208 + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage + Left = 440 + Top = 208 + end + object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList + Left = 248 + Top = 168 + object dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel + GroupOptions.CaptionOptions.Font.Charset = DEFAULT_CHARSET + GroupOptions.CaptionOptions.Font.Color = clWindowText + GroupOptions.CaptionOptions.Font.Height = -11 + GroupOptions.CaptionOptions.Font.Name = 'Tahoma' + GroupOptions.CaptionOptions.Font.Style = [fsBold] + GroupOptions.CaptionOptions.TextColor = clHighlight + GroupOptions.CaptionOptions.UseDefaultFont = False + end + end +end diff --git a/Source/ApplicationBase/Empresas/Views/uEditorEmpresa.pas b/Source/ApplicationBase/Empresas/Views/uEditorEmpresa.pas new file mode 100644 index 0000000..4bf25c8 --- /dev/null +++ b/Source/ApplicationBase/Empresas/Views/uEditorEmpresa.pas @@ -0,0 +1,190 @@ +unit uEditorEmpresa; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorDBItem, ToolWin, ComCtrls, JvExControls, JvComponent, + uBizEmpresas, JvNavigationPane, ActnList, + uEditorBase, StdActns, TB2Dock, TB2Toolbar, TBX, ImgList, PngImageList, + TB2Item, uEditorItem, DB, uDADataTable, uEditorDBBase, JvFormAutoSize, + uDAScriptingProvider, uDACDSDataTable, StdCtrls, pngimage, ExtCtrls, + TBXDkPanels, JvButton, AppEvnts, uCustomView, uViewBase, + JvAppStorage, JvAppRegistryStorage, JvFormPlacement, JvComponentBase, + uViewEmpresa, uIEditorEmpresa, uEmpresasController, dxLayoutLookAndFeels, + JvExComCtrls, JvStatusBar, uViewDetallesGenerico, uViewDatosBancarios, + uDAInterfaces, cxControls, cxContainer, cxEdit, cxLabel; + +type + TfEditorEmpresa = class(TfEditorDBItem, IEditorEmpresa) + frViewEmpresa1: TfrViewEmpresa; + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + TabSheet1: TTabSheet; + frViewDatosBancarios1: TfrViewDatosBancarios; + procedure FormShow(Sender: TObject); + procedure actRefrescarUpdate(Sender: TObject); + procedure dsDataTableDataChange(Sender: TObject; Field: TField); + private + FController : IEmpresasController; + FEmpresa: IBizEmpresa; + FViewEmpresa : IViewEmpresa; + protected + function GetEmpresa: IBizEmpresa; virtual; + procedure SetEmpresa(const Value: IBizEmpresa); virtual; + + function GetViewEmpresa: IViewEmpresa; + procedure SetViewEmpresa(const Value: IViewEmpresa); + procedure GuardarInterno; override; + procedure EliminarInterno; override; + property ViewEmpresa: IViewEmpresa read GetViewEmpresa write + SetViewEmpresa; + function GetController : IEmpresasController; virtual; + procedure SetController (const Value : IEmpresasController); virtual; + + public + constructor Create(AOwner: TComponent); override; + procedure PonerTitulos(const ATitulo: string = ''); override; + property Controller : IEmpresasController read GetController + write SetController; + property Empresa: IBizEmpresa read GetEmpresa write SetEmpresa; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + uCustomEditor, uDataModuleEmpresas; + +{ +******************************* TfEditorEmpresa ******************************* +} +function TfEditorEmpresa.GetEmpresa: IBizEmpresa; +begin + Result := FEmpresa; +end; + +function TfEditorEmpresa.GetController: IEmpresasController; +begin + Result := FController; +end; + +function TfEditorEmpresa.GetViewEmpresa: IViewEmpresa; +begin + Result := FViewEmpresa; +end; + +procedure TfEditorEmpresa.GuardarInterno; +begin + inherited; + if FController.Guardar(FEmpresa) + and frViewEmpresa1.bModificarCatalogo then + Application.MessageBox('Los precios del catlogo de artculos han sido modificados correctamente,' + + #13 + #10 + 'con el nuevo margen de venta y precio minuto', 'Atencin', MB_OK); + + Modified := False; +end; + +procedure TfEditorEmpresa.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + if (ATitulo = '') and Assigned(FEmpresa) then + begin + if Length(FEmpresa.Nombre) = 0 then + FTitulo := 'Nueva empresa' + else + FTitulo := 'Empresa' + ' - ' + FEmpresa.Nombre + end; + + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorEmpresa.SetEmpresa(const Value: IBizEmpresa); +begin + FEmpresa := Value; + dsDataTable.DataTable := FEmpresa.DataTable; + + if Assigned(FViewEmpresa) and Assigned(Empresa) then + begin + FViewEmpresa.Empresa := FEmpresa; + frViewDatosBancarios1.dsDetalles.DataTable := FEmpresa.DatosBancarios.DataTable + end + else begin + FViewEmpresa.Empresa := NIL; + frViewDatosBancarios1.dsDetalles.DataTable := NIL; + end; +end; + +procedure TfEditorEmpresa.SetController(const Value: IEmpresasController); +begin + FController := Value; + if Assigned(FController) then + ViewEmpresa.Controller := FController; +end; + +procedure TfEditorEmpresa.SetViewEmpresa(const Value: IViewEmpresa); +begin + FViewEmpresa := Value; + + if Assigned(FViewEmpresa) and Assigned(Empresa) then + FViewEmpresa.Empresa := Empresa; +end; + +procedure TfEditorEmpresa.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(FViewEmpresa) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Empresa) then + raise Exception.Create('No hay ningn Empresa asignado'); + + Empresa.DataTable.Active := True; +// FViewEmpresa.ShowEmbedded(pagGeneral); + FViewEmpresa.SetFocus; +end; + +procedure TfEditorEmpresa.actRefrescarUpdate(Sender: TObject); +begin + if Assigned(dsDataTable.DataTable) then + (Sender as TAction).Enabled := (not dsDataTable.DataTable.Fetching) or + (not dsDataTable.DataTable.Opening) or + (not dsDataTable.DataTable.Closing) or + (not FEmpresa.EsNuevo) + else + (Sender as TAction).Enabled := False; +end; + +constructor TfEditorEmpresa.Create(AOwner: TComponent); +begin + inherited; + FViewEmpresa := frViewEmpresa1; +end; + +destructor TfEditorEmpresa.Destroy; +begin + FViewEmpresa := NIL; + FEmpresa := NIL; + inherited; +end; + +procedure TfEditorEmpresa.dsDataTableDataChange(Sender: TObject; Field: TField); +begin + inherited; + if Assigned(FEmpresa) and (not (FEmpresa.DataTable.Fetching) or + not (FEmpresa.DataTable.Opening) or not (FEmpresa.DataTable.Closing)) then + PonerTitulos; +end; + +procedure TfEditorEmpresa.EliminarInterno; +begin + inherited; + FController.Eliminar(FEmpresa); +end; + +end. + diff --git a/Source/ApplicationBase/Empresas/Views/uEmpresasViewRegister.dcu b/Source/ApplicationBase/Empresas/Views/uEmpresasViewRegister.dcu new file mode 100644 index 0000000..70a9bcb Binary files /dev/null and b/Source/ApplicationBase/Empresas/Views/uEmpresasViewRegister.dcu differ diff --git a/Source/ApplicationBase/Empresas/Views/uEmpresasViewRegister.pas b/Source/ApplicationBase/Empresas/Views/uEmpresasViewRegister.pas new file mode 100644 index 0000000..5838677 --- /dev/null +++ b/Source/ApplicationBase/Empresas/Views/uEmpresasViewRegister.pas @@ -0,0 +1,25 @@ +unit uEmpresasViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorEmpresa, uEditorDatosBancariosEmpresa; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorEmpresa, 'EditorEmpresa'); + EditorRegistry.RegisterClass(TfEditorDatosBancariosEmpresa, 'EditorDatosBancariosEmpresa'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorEmpresa); + EditorRegistry.UnRegisterClass(TfEditorDatosBancariosEmpresa); +end; + +end. diff --git a/Source/ApplicationBase/Empresas/Views/uViewDatosBancarios.dcu b/Source/ApplicationBase/Empresas/Views/uViewDatosBancarios.dcu new file mode 100644 index 0000000..5f7dce1 Binary files /dev/null and b/Source/ApplicationBase/Empresas/Views/uViewDatosBancarios.dcu differ diff --git a/Source/ApplicationBase/Empresas/Views/uViewDatosBancarios.dfm b/Source/ApplicationBase/Empresas/Views/uViewDatosBancarios.dfm new file mode 100644 index 0000000..1a1ab48 --- /dev/null +++ b/Source/ApplicationBase/Empresas/Views/uViewDatosBancarios.dfm @@ -0,0 +1,78 @@ +inherited frViewDatosBancarios: TfrViewDatosBancarios + Width = 583 + Height = 464 + ExplicitWidth = 583 + ExplicitHeight = 464 + inherited cxGrid: TcxGrid + Width = 583 + Height = 439 + ExplicitWidth = 583 + ExplicitHeight = 439 + inherited cxGridView: TcxGridDBTableView + OnDblClick = cxGridViewDblClick + OptionsData.Appending = False + OptionsData.Deleting = False + OptionsData.DeletingConfirmation = False + OptionsData.Editing = False + OptionsData.Inserting = False + object cxGridViewNOMBRE: TcxGridDBColumn + DataBinding.FieldName = 'NOMBRE' + Width = 191 + end + object cxGridViewENTIDAD: TcxGridDBColumn + DataBinding.FieldName = 'ENTIDAD' + Width = 48 + end + object cxGridViewSUCURSAL: TcxGridDBColumn + DataBinding.FieldName = 'SUCURSAL' + Width = 48 + end + object cxGridViewDC: TcxGridDBColumn + DataBinding.FieldName = 'DC' + Width = 29 + end + object cxGridViewCUENTA: TcxGridDBColumn + DataBinding.FieldName = 'CUENTA' + Width = 141 + end + object cxGridViewSUFIJO_N19: TcxGridDBColumn + DataBinding.FieldName = 'SUFIJO_N19' + Visible = False + VisibleForCustomization = False + Width = 55 + end + object cxGridViewSUFIJO_N58: TcxGridDBColumn + DataBinding.FieldName = 'SUFIJO_N58' + Visible = False + VisibleForCustomization = False + Width = 57 + end + object cxGridViewIBAN: TcxGridDBColumn + DataBinding.FieldName = 'IBAN' + Visible = False + VisibleForCustomization = False + end + object cxGridViewSWIFT: TcxGridDBColumn + DataBinding.FieldName = 'SWIFT' + Visible = False + VisibleForCustomization = False + end + end + end + inherited ToolBar1: TToolBar + Width = 583 + ExplicitWidth = 583 + inherited ToolButton1: TToolButton + ExplicitWidth = 62 + end + inherited ToolButton4: TToolButton + ExplicitWidth = 74 + end + inherited ToolButton2: TToolButton + ExplicitWidth = 67 + end + inherited ToolButton7: TToolButton + ExplicitWidth = 117 + end + end +end diff --git a/Source/ApplicationBase/Empresas/Views/uViewDatosBancarios.pas b/Source/ApplicationBase/Empresas/Views/uViewDatosBancarios.pas new file mode 100644 index 0000000..4379b2c Binary files /dev/null and b/Source/ApplicationBase/Empresas/Views/uViewDatosBancarios.pas differ diff --git a/Source/ApplicationBase/Empresas/Views/uViewEmpresa.dcu b/Source/ApplicationBase/Empresas/Views/uViewEmpresa.dcu new file mode 100644 index 0000000..930b445 Binary files /dev/null and b/Source/ApplicationBase/Empresas/Views/uViewEmpresa.dcu differ diff --git a/Source/ApplicationBase/Empresas/Views/uViewEmpresa.dfm b/Source/ApplicationBase/Empresas/Views/uViewEmpresa.dfm new file mode 100644 index 0000000..203b486 --- /dev/null +++ b/Source/ApplicationBase/Empresas/Views/uViewEmpresa.dfm @@ -0,0 +1,821 @@ +inherited frViewEmpresa: TfrViewEmpresa + Width = 734 + Height = 548 + OnShow = CustomViewShow + ExplicitWidth = 734 + ExplicitHeight = 548 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 734 + Height = 548 + Align = alClient + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + DesignSize = ( + 734 + 548) + object PngSpeedButton1: TPngSpeedButton + Left = 689 + Top = 305 + Width = 23 + Height = 22 + Action = actEliminar + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + end + object PngSpeedButton2: TPngSpeedButton + Left = 689 + Top = 277 + Width = 23 + Height = 22 + Action = actAnadir + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + end + object eCalle: TcxDBTextEdit + Left = 162 + Top = 304 + DataBinding.DataField = 'CALLE' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 8 + Width = 223 + end + object eCodigoPostal: TcxDBTextEdit + Left = 312 + Top = 331 + DataBinding.DataField = 'CODIGO_POSTAL' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 10 + Width = 73 + end + object ePaginaWeb: TcxDBTextEdit + Left = 510 + Top = 220 + DataBinding.DataField = 'PAGINA_WEB' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 19 + Width = 247 + end + object eMailParticular: TcxDBTextEdit + Left = 510 + Top = 193 + DataBinding.DataField = 'EMAIL_2' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 18 + Width = 247 + end + object eMailTrabajo: TcxDBTextEdit + Left = 510 + Top = 166 + DataBinding.DataField = 'EMAIL_1' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 17 + Width = 247 + end + object cxDBMemo1: TcxDBMemo + Left = 22 + Top = 415 + DataBinding.DataField = 'NOTAS' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 12 + Height = 75 + Width = 318 + end + object eTlfParticular: TcxDBTextEdit + Left = 510 + Top = 55 + DataBinding.DataField = 'TELEFONO_2' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 14 + Width = 247 + end + object eTlfTrabajo: TcxDBTextEdit + Left = 510 + Top = 28 + DataBinding.DataField = 'TELEFONO_1' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 13 + Width = 247 + end + object eTlfMovil: TcxDBTextEdit + Left = 510 + Top = 82 + DataBinding.DataField = 'MOVIL_1' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 15 + Width = 247 + end + object eFax: TcxDBTextEdit + Left = 510 + Top = 109 + DataBinding.DataField = 'FAX' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 16 + Width = 247 + end + object eNombre: TcxDBTextEdit + Left = 162 + Top = 28 + DataBinding.DataField = 'NOMBRE' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 0 + Width = 223 + end + object eNIFCIF: TcxDBTextEdit + Left = 162 + Top = 55 + DataBinding.DataField = 'NIF_CIF' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 1 + Width = 223 + end + object memRegistroMercantil: TcxDBMemo + Left = 162 + Top = 82 + DataBinding.DataField = 'REGISTRO_MERCANTIL' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 2 + Height = 48 + Width = 223 + end + object cxDBImage1: TcxDBImage + Left = 415 + Top = 277 + DataBinding.DataField = 'LOGOTIPO' + DataBinding.DataSource = DADataSource + Properties.Stretch = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 20 + Height = 249 + Width = 313 + end + object eParamMargen: TcxDBSpinEdit + Left = 162 + Top = 247 + DataBinding.DataField = 'PARAM_MARGEN' + DataBinding.DataSource = DADataSource + Properties.OnValidate = eParamMargenPropertiesValidate + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 6 + Width = 60 + end + object eParamTiempo: TcxDBCurrencyEdit + Left = 285 + Top = 247 + DataBinding.DataField = 'PARAM_TIEMPO' + DataBinding.DataSource = DADataSource + Properties.Alignment.Horz = taRightJustify + Properties.OnValidate = eParamTiempoPropertiesValidate + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 7 + Width = 100 + end + object cbProvincia: TcxDBComboBox + Left = 162 + Top = 331 + DataBinding.DataField = 'PROVINCIA' + DataBinding.DataSource = DADataSource + Properties.ImmediatePost = True + Properties.ImmediateUpdateText = True + Properties.PostPopupValueOnTab = True + Properties.OnInitPopup = cbProvinciaPropertiesInitPopup + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 9 + Width = 80 + end + object cbPoblacion: TcxDBComboBox + Left = 162 + Top = 358 + DataBinding.DataField = 'POBLACION' + DataBinding.DataSource = DADataSource + Properties.ImmediatePost = True + Properties.ImmediateUpdateText = True + Properties.PostPopupValueOnTab = True + Properties.OnInitPopup = cbPoblacionPropertiesInitPopup + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 11 + Width = 223 + end + object cbFormaPago: TcxComboBox + Left = 162 + Top = 163 + Anchors = [akLeft, akTop, akRight] + Properties.DropDownListStyle = lsEditFixedList + Properties.DropDownRows = 25 + Properties.ImmediatePost = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 4 + Width = 202 + end + object cbTipoIVA: TcxComboBox + Left = 162 + Top = 136 + Anchors = [akLeft, akTop, akRight] + Properties.DropDownListStyle = lsEditFixedList + Properties.DropDownRows = 25 + Properties.ImmediatePost = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 3 + Width = 202 + end + object cbAlmacen: TcxComboBox + Left = 162 + Top = 190 + Anchors = [akLeft, akTop, akRight] + Properties.DropDownListStyle = lsEditFixedList + Properties.DropDownRows = 25 + Properties.ImmediatePost = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 5 + Width = 223 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Group4: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + AutoAligns = [] + AlignHorz = ahClient + Caption = 'Datos generales' + object dxLayoutControl1Item13: TdxLayoutItem + Caption = 'Nombre:' + Control = eNombre + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item14: TdxLayoutItem + Caption = 'CIF:' + Control = eNIFCIF + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item15: TdxLayoutItem + Caption = 'Registro mercantil:' + CaptionOptions.AlignVert = tavTop + Control = memRegistroMercantil + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item16: TdxLayoutItem + Caption = 'IVA por defecto:' + Control = cbTipoIVA + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item2: TdxLayoutItem + Caption = 'Forma de pago por defecto:' + Control = cbFormaPago + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item23: TdxLayoutItem + Caption = 'Almac'#233'n por defecto:' + Control = cbAlmacen + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group13: TdxLayoutGroup + Caption = 'Datos cat'#225'logo art'#237'culos' + LayoutDirection = ldHorizontal + object dxLayoutControl1Item18: TdxLayoutItem + Caption = 'Margen de venta:' + Control = eParamMargen + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item21: TdxLayoutItem + Caption = 'Precio min:' + Control = eParamTiempo + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group3: TdxLayoutGroup + AutoAligns = [aaHorizontal] + Caption = 'Direcci'#243'n' + object dxLayoutControl1Item1: TdxLayoutItem + Caption = 'Calle:' + Control = eCalle + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group8: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group15: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item22: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Provincia:' + Control = cbProvincia + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item4: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'C'#243'd. postal:' + Control = eCodigoPostal + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item3: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Poblaci'#243'n:' + Control = cbPoblacion + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Group7: TdxLayoutGroup + AutoAligns = [] + AlignHorz = ahClient + AlignVert = avClient + Caption = 'Observaciones' + object dxLayoutControl1Item8: TdxLayoutItem + AutoAligns = [aaHorizontal] + AlignVert = avClient + Caption = 'cxDBMemo1' + ShowCaption = False + Control = cxDBMemo1 + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Group6: TdxLayoutGroup + AutoAligns = [] + AlignHorz = ahClient + AlignVert = avClient + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group2: TdxLayoutGroup + AutoAligns = [] + AlignHorz = ahClient + Caption = 'Tel'#233'fonos' + object dxLayoutControl1Item10: TdxLayoutItem + Caption = 'Tlf. trabajo:' + Control = eTlfTrabajo + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item9: TdxLayoutItem + Caption = 'Tlf. particular:' + Control = eTlfParticular + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item11: TdxLayoutItem + Caption = 'M'#243'vil:' + Control = eTlfMovil + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item12: TdxLayoutItem + Caption = 'Fax:' + Control = eFax + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group5: TdxLayoutGroup + Caption = 'Correo electr'#243'nico e internet' + object dxLayoutControl1Item7: TdxLayoutItem + Caption = 'Correo de trabajo:' + Control = eMailTrabajo + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item6: TdxLayoutItem + Caption = 'Correo particular:' + Control = eMailParticular + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item5: TdxLayoutItem + Caption = 'P'#225'gina web:' + Control = ePaginaWeb + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group10: TdxLayoutGroup + AutoAligns = [] + AlignHorz = ahClient + AlignVert = avClient + Caption = 'Logotipo' + Visible = False + LayoutDirection = ldHorizontal + object dxLayoutControl1Item17: TdxLayoutItem + AutoAligns = [] + AlignHorz = ahClient + AlignVert = avClient + Caption = 'cxDBImage1' + ShowCaption = False + Control = cxDBImage1 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group12: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item20: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'PngSpeedButton2' + ShowCaption = False + Control = PngSpeedButton2 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item19: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'PngSpeedButton1' + ShowCaption = False + Control = PngSpeedButton1 + ControlOptions.ShowBorder = False + end + end + end + end + end + object dxLayoutControl1Group9: TdxLayoutGroup + end + object dxLayoutControl1Group11: TdxLayoutGroup + end + end + object DADataSource: TDADataSource + Left = 16 + Top = 56 + end + object ActionList1: TActionList + Images = SmallImages + Left = 448 + Top = 256 + object actAnadir: TAction + ImageIndex = 0 + OnExecute = actAnadirExecute + OnUpdate = actAnadirUpdate + end + object actEliminar: TAction + ImageIndex = 1 + OnExecute = actEliminarExecute + OnUpdate = actEliminarUpdate + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000D04944415478DA + 6364C0062630FCC72A5EC0C0882EC488CB80191909706EDDBA750CAF767D6260 + 5830240DF8F9FB3743EBE6CD780CC011602003409A7F0071EF8E1D10030C30D5 + 31A23B1706609AB1E23F7FC0F4FA2967B01B408CE6A3B76E815D856100319ABF + FFFAC570EEC103540340218D0C92EDECE01AD79E398335ACE106305CC0942CAC + 77871BB0F5E2454820620138A331D3CB09EEECBD57AF929E0E629DADC106FCF9 + F70F1E602419106A67C6F01DE40260805D7AFC9874037C2C0D194EDDBD8B1260 + 241900A6D103178B01000648ED7B1FCA93F30000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 419 + Top = 256 + Bitmap = {} + end + object OpenDialog1: TOpenDialog + Left = 384 + Top = 256 + end +end diff --git a/Source/ApplicationBase/Empresas/Views/uViewEmpresa.pas b/Source/ApplicationBase/Empresas/Views/uViewEmpresa.pas new file mode 100644 index 0000000..fdbc1aa --- /dev/null +++ b/Source/ApplicationBase/Empresas/Views/uViewEmpresa.pas @@ -0,0 +1,467 @@ +unit uViewEmpresa; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, ExtCtrls, StdCtrls, Buttons, DB, uDADataTable, + DBCtrls, Grids, DBGrids, uBizEmpresas, Mask, ComCtrls, uCustomView, + JvComponent, JvFormAutoSize, cxControls, cxContainer, cxEdit, cxTextEdit, + cxDBEdit, dxLayoutControl, dxLayoutLookAndFeels, cxMemo, cxMaskEdit, + cxSpinEdit, cxImage, JvExControls, JvBitmapButton, ActnList, ImgList, + PngImageList, TB2Item, TBX, TB2Dock, TB2Toolbar, PngSpeedButton, uDAInterfaces, + cxCurrencyEdit, cxGraphics, cxDropDownEdit, uEmpresasController; + +type + IViewEmpresa = interface(IViewBase) + ['{876DCEBD-9E92-491A-84CE-498B1A84B525}'] + function GetEmpresa: IBizEmpresa; + procedure SetEmpresa(const Value: IBizEmpresa); + property Empresa: IBizEmpresa read GetEmpresa write SetEmpresa; + function GetController : IEmpresasController; + procedure SetController (const Value : IEmpresasController); + property Controller : IEmpresasController read GetController write SetController; + end; + + TfrViewEmpresa = class(TfrViewBase, IViewEmpresa) + DADataSource: TDADataSource; + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Group2: TdxLayoutGroup; + dxLayoutControl1Group3: TdxLayoutGroup; + dxLayoutControl1Group4: TdxLayoutGroup; + dxLayoutControl1Group5: TdxLayoutGroup; + dxLayoutControl1Group6: TdxLayoutGroup; + dxLayoutControl1Group7: TdxLayoutGroup; + dxLayoutControl1Item1: TdxLayoutItem; + eCalle: TcxDBTextEdit; + dxLayoutControl1Item4: TdxLayoutItem; + eCodigoPostal: TcxDBTextEdit; + dxLayoutControl1Item5: TdxLayoutItem; + ePaginaWeb: TcxDBTextEdit; + dxLayoutControl1Item6: TdxLayoutItem; + eMailParticular: TcxDBTextEdit; + dxLayoutControl1Item7: TdxLayoutItem; + eMailTrabajo: TcxDBTextEdit; + cxDBMemo1: TcxDBMemo; + dxLayoutControl1Item8: TdxLayoutItem; + dxLayoutControl1Item9: TdxLayoutItem; + eTlfParticular: TcxDBTextEdit; + dxLayoutControl1Item10: TdxLayoutItem; + eTlfTrabajo: TcxDBTextEdit; + dxLayoutControl1Item11: TdxLayoutItem; + eTlfMovil: TcxDBTextEdit; + dxLayoutControl1Item12: TdxLayoutItem; + eFax: TcxDBTextEdit; + dxLayoutControl1Item13: TdxLayoutItem; + eNombre: TcxDBTextEdit; + dxLayoutControl1Item14: TdxLayoutItem; + eNIFCIF: TcxDBTextEdit; + dxLayoutControl1Item15: TdxLayoutItem; + memRegistroMercantil: TcxDBMemo; + dxLayoutControl1Group10: TdxLayoutGroup; + dxLayoutControl1Group9: TdxLayoutGroup; + dxLayoutControl1Group11: TdxLayoutGroup; + ActionList1: TActionList; + actAnadir: TAction; + actEliminar: TAction; + SmallImages: TPngImageList; + OpenDialog1: TOpenDialog; + cxDBImage1: TcxDBImage; + dxLayoutControl1Item17: TdxLayoutItem; + PngSpeedButton1: TPngSpeedButton; + dxLayoutControl1Item19: TdxLayoutItem; + PngSpeedButton2: TPngSpeedButton; + dxLayoutControl1Item20: TdxLayoutItem; + dxLayoutControl1Group12: TdxLayoutGroup; + dxLayoutControl1Group13: TdxLayoutGroup; + dxLayoutControl1Item18: TdxLayoutItem; + eParamMargen: TcxDBSpinEdit; + dxLayoutControl1Item21: TdxLayoutItem; + eParamTiempo: TcxDBCurrencyEdit; + dxLayoutControl1Item22: TdxLayoutItem; + cbProvincia: TcxDBComboBox; + dxLayoutControl1Item3: TdxLayoutItem; + cbPoblacion: TcxDBComboBox; + dxLayoutControl1Group8: TdxLayoutGroup; + dxLayoutControl1Group15: TdxLayoutGroup; + dxLayoutControl1Item2: TdxLayoutItem; + cbFormaPago: TcxComboBox; + dxLayoutControl1Item16: TdxLayoutItem; + cbTipoIVA: TcxComboBox; + dxLayoutControl1Item23: TdxLayoutItem; + cbAlmacen: TcxComboBox; + procedure actAnadirExecute(Sender: TObject); + procedure actEliminarExecute(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + procedure actAnadirUpdate(Sender: TObject); + procedure eParamTiempoPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure eParamMargenPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure cbProvinciaPropertiesInitPopup(Sender: TObject); + procedure cbPoblacionPropertiesInitPopup(Sender: TObject); + procedure FormaPagoEditValueChanged(Sender: TObject); + procedure TipoIVAEditValueChanged(Sender: TObject); + procedure AlmacenEditValueChanged(Sender: TObject); + procedure CustomViewShow(Sender: TObject); + private + FEmpresa: IBizEmpresa; + FController : IEmpresasController; + FProvincias : TStringList; + FIDProvincia : Integer; //Almacenar la provincia que hay seleccionada para no cargar las poblaciones si no es necesario + FPoblaciones : TStringList; + FFormasPago: TStringList; + FTiposIVA: TStringList; + FAlmacen: TStringList; + procedure CargarProvincias; + procedure CargarPoblaciones; + function GetEmpresa: IBizEmpresa; + procedure SetEmpresa(const Value: IBizEmpresa); + function GetController : IEmpresasController; + procedure SetController (const Value : IEmpresasController); + + public + bModificarCatalogo: Boolean; + property Controller : IEmpresasController read GetController write SetController; + constructor Create(AOwner : TComponent); override; + destructor Destroy; override; + end; + +implementation +{$R *.dfm} + +uses + uROClasses, uROTypes, uProvinciasPoblacionesController, uStringsUtils; + +{ TfrViewEmpresas } + +{ +******************************* TfrViewEmpresa ******************************** +} +procedure TfrViewEmpresa.actAnadirExecute(Sender: TObject); +{var + StdStream: TMemoryStream; + StreamRO: IROStream; +} +begin + inherited; + cxDBImage1.LoadFromFile; + +{if not OpenDialog1.Execute then + Exit; + try + StdStream := TMemoryStream.Create; + StdStream.LoadFromFile(OpenDialog1.FileName); + StreamRO := NewROStream(StdStream,False); + DADataSource.DataTable.Edit; +// DADataSource.DataTable.FieldByName('LOGOTIPO').Clear; + DADataSource.DataTable.FieldByName('LOGOTIPO').LoadFromStream(StreamRO); + + DADataSource.DataTable.Post; + finally + StdStream.Free; + end; +} +end; + +procedure TfrViewEmpresa.actAnadirUpdate(Sender: TObject); +begin + inherited; +// (Sender as TAction).Enabled := cxDBImage1.Picture.Graphic.Empty; +end; + +procedure TfrViewEmpresa.actEliminarExecute(Sender: TObject); +begin + inherited; + cxDBImage1.Clear; + +{ DADataSource.DataTable.Edit; + DADataSource.DataTable.FieldByName('LOGOTIPO').AsVariant := Null; + DADataSource.DataTable.Post; +} +end; + +procedure TfrViewEmpresa.actEliminarUpdate(Sender: TObject); +begin + inherited; +// (Sender as TAction).Enabled := not cxDBImage1.Picture.Graphic.Empty; +end; + +procedure TfrViewEmpresa.AlmacenEditValueChanged(Sender: TObject); +var + IDAlmacen: String; +begin + IDAlmacen := ''; + if Assigned(FAlmacen) then + IDAlmacen := FAlmacen.Values[cbAlmacen.EditValue]; + + Controller.AsignarIDAlmacen(FEmpresa, IDAlmacen); +end; + +procedure TfrViewEmpresa.CargarPoblaciones; +var + i : integer; + +begin + if (FIDProvincia <> StrToInt(FProvincias.Values[cbProvincia.Text])) then + Begin + FIDProvincia := StrToInt(FProvincias.Values[cbProvincia.Text]); + with TProvinciasPoblacionesController.Create do + try + FPoblaciones := DarListaPoblaciones(FIDProvincia); + + with cbPoblacion.Properties.Items do + begin + BeginUpdate; + try + Clear; + for i := 0 to FPoblaciones.Count - 1 do + Add(FPoblaciones.Names[i]); + finally + EndUpdate; + end; + end; + finally + Free; + end; + End; +end; + +procedure TfrViewEmpresa.CargarProvincias; +var + i : integer; +begin + with TProvinciasPoblacionesController.Create do + try + FProvincias := DarListaProvincias; + + with cbProvincia.Properties.Items do + begin + BeginUpdate; + try + Clear; + for i := 0 to FProvincias.Count - 1 do + Add(FProvincias.Names[i]); + finally + EndUpdate; + end; + end; + finally + Free; + end; +end; + +procedure TfrViewEmpresa.cbPoblacionPropertiesInitPopup(Sender: TObject); +begin + inherited; + ShowHourglassCursor; + try + FreeANDNIL(FPoblaciones); + if not Assigned(FProvincias) then + CargarProvincias; + if not EsCadenaVacia(cbProvincia.Text) and (FProvincias.IndexOfName(cbProvincia.Text) <> -1) then + CargarPoblaciones + finally + HideHourglassCursor; + end; +end; + +procedure TfrViewEmpresa.cbProvinciaPropertiesInitPopup(Sender: TObject); +begin + inherited; + ShowHourglassCursor; + try + if not Assigned(FProvincias) then + CargarProvincias; + finally + HideHourglassCursor; + end; +end; + +constructor TfrViewEmpresa.Create(AOwner : TComponent); +begin + inherited; + FIDProvincia := 0; + FProvincias := NIL; + FPoblaciones := NIL; + bModificarCatalogo := False; +end; + +procedure TfrViewEmpresa.CustomViewShow(Sender: TObject); +var + i: Integer; +begin + inherited; + + //Activamos la forma de pago que tenga la empresa + cbFormaPago.ItemIndex := 0; + for i := 0 to FFormasPago.Count - 1 do + if IntToStr(FEmpresa.ID_FORMA_PAGO) = FFormasPago.Values[FFormasPago.Names[i]] then + cbFormaPago.ItemIndex := i; + + cbFormaPago.Properties.OnEditValueChanged := FormaPagoEditValueChanged; + + //Activamos el tipo iva que tenga la empresa + cbTipoIVA.ItemIndex := 0; + for i := 0 to FTiposIVA.Count - 1 do + if IntToStr(FEmpresa.ID_TIPO_IVA) = FTiposIVA.Values[FTiposIVA.Names[i]] then + cbTipoIVA.ItemIndex := i; + + cbTipoIVA.Properties.OnEditValueChanged := TipoIVAEditValueChanged; + + //Activamos el alamcen que tenga la empresa + cbAlmacen.ItemIndex := 0; + for i := 0 to FAlmacen.Count - 1 do + if IntToStr(FEmpresa.ID_ALMACEN) = FAlmacen.Values[FAlmacen.Names[i]] then + cbAlmacen.ItemIndex := i; + + cbAlmacen.Properties.OnEditValueChanged := AlmacenEditValueChanged; +end; + +destructor TfrViewEmpresa.Destroy; +begin + FController := Nil; + + if Assigned(FTiposIVA) then + FreeANDNIL(FTiposIVA); + + if Assigned(FFormasPago) then + FreeANDNIL(FFormasPago); + + if Assigned(FAlmacen) then + FreeANDNIL(FAlmacen); + + if Assigned(FProvincias) then + FreeANDNIL(FProvincias); + + if Assigned(FPoblaciones) then + FreeANDNIL(FPoblaciones); + + inherited; +end; + +procedure TfrViewEmpresa.eParamMargenPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); +begin + inherited; + + if (Application.MessageBox('Si modifica el margen de venta, se recalcularn los precios del catlogo de artculos, Esta seguro que desea continuar?', 'Atencin', MB_YESNO) = IDYES) then + bModificarCatalogo := True + else + DisplayValue := eParamTiempo.Value; +end; + +procedure TfrViewEmpresa.eParamTiempoPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); +begin + inherited; + + if (Application.MessageBox('Si modifica el precio minuto, se recalcularn los precios del catlogo de artculos, Esta seguro que desea continuar?', 'Atencin', MB_YESNO) = IDYES) then + bModificarCatalogo := True + else + DisplayValue := eParamTiempo.Value; +end; + +procedure TfrViewEmpresa.FormaPagoEditValueChanged(Sender: TObject); +var + IDFormaPago: String; +begin + IDFormaPago := ''; + if Assigned(FFormasPago) then + IDFormaPago := FFormasPago.Values[cbFormaPago.EditValue]; + + Controller.AsignarIDFormaPago(FEmpresa, IDFormaPago); +end; + +function TfrViewEmpresa.GetController: IEmpresasController; +begin + Result := FController; +end; + +function TfrViewEmpresa.GetEmpresa: IBizEmpresa; +begin + Result := FEmpresa; +end; + +procedure TfrViewEmpresa.SetController(const Value: IEmpresasController); +var + i: Integer; +begin + FController := Value; + + if Assigned(FController) then + begin + FFormasPago := FController.DarListaFormasPago; + if Assigned(FFormasPago) then + with cbFormaPago.Properties.Items do + begin + BeginUpdate; + try + Clear; + for i := 0 to FFormasPago.Count - 1 do + Add(FFormasPago.Names[i]); + finally + EndUpdate; + end; + end; + + FTiposIVA := FController.DarListaTiposIVA; + if Assigned(FTiposIVA) then + with cbTipoIVA.Properties.Items do + begin + BeginUpdate; + try + Clear; + for i := 0 to FTiposIVA.Count - 1 do + Add(FTiposIVA.Names[i]); + finally + EndUpdate; + end; + end; + + FAlmacen := FController.DarListaAlmacenes(FEmpresa.ID); + if Assigned(FAlmacen) then + with cbAlmacen.Properties.Items do + begin + BeginUpdate; + try + Clear; + for i := 0 to FAlmacen.Count - 1 do + Add(FAlmacen.Names[i]); + finally + EndUpdate; + end; + end; + end; +end; + +procedure TfrViewEmpresa.SetEmpresa(const Value: IBizEmpresa); +begin + FEmpresa := Value; + if Assigned(FEmpresa) then + DADataSource.DataTable := FEmpresa.DataTable + else + DADataSource.DataTable := NIL; +end; + +procedure TfrViewEmpresa.TipoIVAEditValueChanged(Sender: TObject); +var + IDTipoIVA: String; +begin + IDTipoIVA := ''; + if Assigned(FTiposIVA) then + IDTipoIVA := FTiposIVA.Values[cbTipoIVA.EditValue]; + + Controller.AsignarIDTipoIVA(FEmpresa, IDTipoIVA); +end; + +initialization + RegisterClass(TfrViewEmpresa); + +finalization + UnRegisterClass(TfrViewEmpresa); + +end. + diff --git a/Source/ApplicationBase/ProvinciasPoblaciones/Controller/uProvinciasPoblacionesController.dcu b/Source/ApplicationBase/ProvinciasPoblaciones/Controller/uProvinciasPoblacionesController.dcu new file mode 100644 index 0000000..b15200f Binary files /dev/null and b/Source/ApplicationBase/ProvinciasPoblaciones/Controller/uProvinciasPoblacionesController.dcu differ diff --git a/Source/ApplicationBase/ProvinciasPoblaciones/Controller/uProvinciasPoblacionesController.pas b/Source/ApplicationBase/ProvinciasPoblaciones/Controller/uProvinciasPoblacionesController.pas new file mode 100644 index 0000000..7a29f39 --- /dev/null +++ b/Source/ApplicationBase/ProvinciasPoblaciones/Controller/uProvinciasPoblacionesController.pas @@ -0,0 +1,68 @@ +unit uProvinciasPoblacionesController; + +interface + + +uses + Windows, Forms, Classes, Controls, Contnrs, SysUtils, uDataModuleProvinciasPoblaciones, + uDADataTable, uControllerBase; + +type + IProvinciasPoblacionesController = interface(IControllerBase) + ['{777EDE6C-DAB6-4D96-BA57-AE3DAF8A3F78}'] + function DarListaProvincias : TStringList; + function DarListaPoblaciones (const AID_Provincia : Integer) : TStringList; + end; + + TProvinciasPoblacionesController = class(TControllerBase, IProvinciasPoblacionesController) + protected + FDataModule : IDataModuleProvinciasPoblaciones; + public + function DarListaProvincias : TStringList; + function DarListaPoblaciones (const AID_Provincia : Integer) : TStringList; + destructor Destroy; override; + constructor Create; override; + end; + +implementation + +uses + cxControls, DB, uFactuGES_App; + +{ TProvinciasPoblacionesController } + +constructor TProvinciasPoblacionesController.Create; +begin + inherited; + FDataModule := TDataModuleProvinciasPoblaciones.Create(NIL); +end; + +function TProvinciasPoblacionesController.DarListaPoblaciones( + const AID_Provincia: Integer): TStringList; +begin + ShowHourglassCursor; + try + Result := FDataModule.DarListaPoblaciones(AID_Provincia); + finally + HideHourglassCursor; + end; +end; + +function TProvinciasPoblacionesController.DarListaProvincias: TStringList; +begin + ShowHourglassCursor; + try + Result := FDataModule.DarListaProvincias; + finally + HideHourglassCursor; + end; +end; + +destructor TProvinciasPoblacionesController.Destroy; +begin + FDataModule := NIL; + inherited; +end; + + +end. diff --git a/Source/ApplicationBase/ProvinciasPoblaciones/Data/uDataModuleProvinciasPoblaciones.dcu b/Source/ApplicationBase/ProvinciasPoblaciones/Data/uDataModuleProvinciasPoblaciones.dcu new file mode 100644 index 0000000..ec1a913 Binary files /dev/null and b/Source/ApplicationBase/ProvinciasPoblaciones/Data/uDataModuleProvinciasPoblaciones.dcu differ diff --git a/Source/ApplicationBase/ProvinciasPoblaciones/Data/uDataModuleProvinciasPoblaciones.dfm b/Source/ApplicationBase/ProvinciasPoblaciones/Data/uDataModuleProvinciasPoblaciones.dfm new file mode 100644 index 0000000..d02b807 --- /dev/null +++ b/Source/ApplicationBase/ProvinciasPoblaciones/Data/uDataModuleProvinciasPoblaciones.dfm @@ -0,0 +1,12 @@ +object DataModuleProvinciasPoblaciones: TDataModuleProvinciasPoblaciones + OldCreateOrder = False + Height = 150 + Width = 215 + object RORemoteService: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvEmpresas' + Left = 48 + Top = 24 + end +end diff --git a/Source/ApplicationBase/ProvinciasPoblaciones/Data/uDataModuleProvinciasPoblaciones.pas b/Source/ApplicationBase/ProvinciasPoblaciones/Data/uDataModuleProvinciasPoblaciones.pas new file mode 100644 index 0000000..5467fc7 --- /dev/null +++ b/Source/ApplicationBase/ProvinciasPoblaciones/Data/uDataModuleProvinciasPoblaciones.pas @@ -0,0 +1,50 @@ +unit uDataModuleProvinciasPoblaciones; + +interface + +uses + SysUtils, Classes, uDataModuleBase, uROClient, uRORemoteService; + +type + IDataModuleProvinciasPoblaciones = interface + ['{E73DB3C4-BC57-44E8-A64B-F86AE2DCB7D6}'] + function DarListaProvincias : TStringList; + function DarListaPoblaciones (const AID_Provincia : Integer) : TStringList; + end; + + TDataModuleProvinciasPoblaciones = class(TDataModuleBase, IDataModuleProvinciasPoblaciones) + RORemoteService: TRORemoteService; + public + function DarListaProvincias : TStringList; + function DarListaPoblaciones (const AID_Provincia : Integer) : TStringList; + end; + +implementation + +{$R *.dfm} + +uses + FactuGES_Intf, uStringsUtils, uDataModuleConexion, uROTypes; + +{ TDataModuleProvinciasPoblaciones } + +function TDataModuleProvinciasPoblaciones.DarListaPoblaciones( + const AID_Provincia: Integer): TStringList; +var + ABinary : Binary; +begin + ABinary := (RORemoteService as IsrvProvinciasPoblaciones).DarListaPoblaciones(AID_Provincia); + Result := TStringList.Create; + Result.LoadFromStream(ABinary); +end; + +function TDataModuleProvinciasPoblaciones.DarListaProvincias: TStringList; +var + ABinary : Binary; +begin + ABinary := (RORemoteService as IsrvProvinciasPoblaciones).DarListaProvincias; + Result := TStringList.Create; + Result.LoadFromStream(ABinary); +end; + +end. diff --git a/Source/ApplicationBase/ProvinciasPoblaciones/Servidor/srvProvinciasPoblaciones_Impl.dcu b/Source/ApplicationBase/ProvinciasPoblaciones/Servidor/srvProvinciasPoblaciones_Impl.dcu new file mode 100644 index 0000000..1b36f8f Binary files /dev/null and b/Source/ApplicationBase/ProvinciasPoblaciones/Servidor/srvProvinciasPoblaciones_Impl.dcu differ diff --git a/Source/ApplicationBase/ProvinciasPoblaciones/Servidor/srvProvinciasPoblaciones_Impl.dfm b/Source/ApplicationBase/ProvinciasPoblaciones/Servidor/srvProvinciasPoblaciones_Impl.dfm new file mode 100644 index 0000000..6565304 --- /dev/null +++ b/Source/ApplicationBase/ProvinciasPoblaciones/Servidor/srvProvinciasPoblaciones_Impl.dfm @@ -0,0 +1,100 @@ +object srvProvinciasPoblaciones: TsrvProvinciasPoblaciones + OldCreateOrder = True + Height = 168 + Width = 325 + object schProvinciasPoblaciones: TDASchema + ConnectionManager = dmServer.ConnectionManager + Datasets = < + item + IsPublic = False + Params = <> + Statements = < + item + ConnectionType = 'Interbase' + Default = True + TargetTable = 'PROVINCIAS' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end> + end> + Name = 'Provincias' + Fields = < + item + Name = 'ID' + DataType = datInteger + Required = True + InPrimaryKey = True + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + Required = True + end> + ReadOnly = True + end + item + IsPublic = False + Params = <> + Statements = < + item + ConnectionType = 'Interbase' + Default = True + TargetTable = 'POBLACIONES' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_PROVINCIA' + TableField = 'ID_PROVINCIA' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end> + end> + Name = 'Poblaciones' + Fields = < + item + Name = 'ID' + DataType = datInteger + Required = True + InPrimaryKey = True + end + item + Name = 'ID_PROVINCIA' + DataType = datInteger + Required = True + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + Required = True + end> + ReadOnly = True + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 88 + end +end diff --git a/Source/ApplicationBase/ProvinciasPoblaciones/Servidor/srvProvinciasPoblaciones_Impl.pas b/Source/ApplicationBase/ProvinciasPoblaciones/Servidor/srvProvinciasPoblaciones_Impl.pas new file mode 100644 index 0000000..a71d13d --- /dev/null +++ b/Source/ApplicationBase/ProvinciasPoblaciones/Servidor/srvProvinciasPoblaciones_Impl.pas @@ -0,0 +1,132 @@ +unit srvProvinciasPoblaciones_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +{$I Remobjects.inc} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROXMLIntf, uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Required:} uRORemoteDataModule, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} FactuGES_Intf, uDADataStreamer, uDABin2DataStreamer, uDAClasses; + +type + { TsrvProvinciasPoblaciones } + TsrvProvinciasPoblaciones = class(TRORemoteDataModule, IsrvProvinciasPoblaciones) + Bin2DataStreamer: TDABin2DataStreamer; + schProvinciasPoblaciones: TDASchema; + private + protected + { IsrvProvinciasPoblaciones methods } + function DarListaProvincias: Binary; + function DarListaPoblaciones(const ID_Provincia: Integer): Binary; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, Variants, uDAInterfaces, + uDataModuleServer, uROClasses; + + +procedure Create_srvProvinciasPoblaciones(out anInstance : IUnknown); +begin + anInstance := TsrvProvinciasPoblaciones.Create(nil); +end; + +{ srvProvinciasPoblaciones } +function TsrvProvinciasPoblaciones.DarListaProvincias: Binary; +var + ASchema : TDASchema; + AConn : IDAConnection; + dsData: IDADataset; + ALista : TStringList; +begin + Result := Binary.Create; + + ASchema := schProvinciasPoblaciones; + AConn := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionManager.GetDefaultConnectionName); + + try + dsData := ASchema.NewDataset(AConn, 'Provincias'); + except + RaiseError('No existe la tabla PROVINCIAS'); + end; + + ALista := TStringList.Create; + try + dsData.Active := True; + ALista.Sorted := True; + while not dsData.EOF do + begin + ALista.Add(Format('%s=%d', [dsData.Fields[1].AsString, dsData.Fields[0].AsInteger])); + dsData.Next; + end; + + ALista.SaveToStream(Result); + finally + FreeANDNIL(ALista); + dsData := NIL; + AConn := NIL; + end; +end; + +function TsrvProvinciasPoblaciones.DarListaPoblaciones(const ID_Provincia: Integer): Binary; +var + ASchema : TDASchema; + AConn : IDAConnection; + dsData: IDADataset; +// AWhere : TDAWhereExpression; + ALista : TStringList; +begin + Result := Binary.Create; + + ASchema := schProvinciasPoblaciones; + AConn := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionManager.GetDefaultConnectionName); + + try + dsData := ASchema.NewDataset(AConn, 'Poblaciones', ['ID', 'DESCRIPCION'], '', '', False, True); + + with dsData.DynamicWhere do + begin + Clear; + Expression := NewBinaryExpression(NewField('', 'ID_PROVINCIA'), + NewConstant(ID_Provincia, datInteger), + dboEqual); + end; + + ALista := TStringList.Create; + try + dsData.Active := True; + ALista.Sorted := True; + while not dsData.EOF do + begin + ALista.Add(Format('%s=%d', [dsData.Fields[1].AsString, dsData.Fields[0].AsInteger])); + dsData.Next; + end; + ALista.SaveToStream(Result); + finally + FreeANDNIL(ALista); + dsData := NIL; + AConn := NIL; + end; + except + RaiseError('No existe la tabla POBLACIONES'); + end; +end; + +initialization + TROClassFactory.Create('srvProvinciasPoblaciones', Create_srvProvinciasPoblaciones, TsrvProvinciasPoblaciones_Invoker); + +finalization + +end. diff --git a/Source/ApplicationBase/Usuarios/Controller/View/uIEditorLogin.dcu b/Source/ApplicationBase/Usuarios/Controller/View/uIEditorLogin.dcu new file mode 100644 index 0000000..7a24503 Binary files /dev/null and b/Source/ApplicationBase/Usuarios/Controller/View/uIEditorLogin.dcu differ diff --git a/Source/ApplicationBase/Usuarios/Controller/View/uIEditorLogin.pas b/Source/ApplicationBase/Usuarios/Controller/View/uIEditorLogin.pas new file mode 100644 index 0000000..0f3e505 --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Controller/View/uIEditorLogin.pas @@ -0,0 +1,22 @@ +unit uIEditorLogin; + +interface + +uses + uEditorBase, uUsuariosController; + +type + IEditorLogin = interface + ['{96513A0B-679D-4DD6-8821-C99003DAD2A3}'] + function ShowModal : Integer; + procedure Release; + + function GetController : IUsuariosController; + procedure SetController (const AValue : IUsuariosController); + property Controller : IUsuariosController read GetController write SetController; + end; + + +implementation + +end. diff --git a/Source/ApplicationBase/Usuarios/Controller/View/uIEditorPerfilUsuario.dcu b/Source/ApplicationBase/Usuarios/Controller/View/uIEditorPerfilUsuario.dcu new file mode 100644 index 0000000..a3b0145 Binary files /dev/null and b/Source/ApplicationBase/Usuarios/Controller/View/uIEditorPerfilUsuario.dcu differ diff --git a/Source/ApplicationBase/Usuarios/Controller/View/uIEditorPerfilUsuario.pas b/Source/ApplicationBase/Usuarios/Controller/View/uIEditorPerfilUsuario.pas new file mode 100644 index 0000000..edc97f3 --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Controller/View/uIEditorPerfilUsuario.pas @@ -0,0 +1,23 @@ +unit uIEditorPerfilUsuario; + +interface + +uses + uEditorDBBase, uBizUsuarios, uUsuariosController; + +type + IEditorPerfilUsuario = interface(IEditorDBBase) + ['{1DE19CC0-E4FA-4FD7-AE70-6430781CAFE4}'] + function GetPerfilUsuario: IBizPerfilUsuario; + procedure SetPerfilUsuario(const Value: IBizPerfilUsuario); + property PerfilUsuario: IBizPerfilUsuario read GetPerfilUsuario write SetPerfilUsuario; + + function GetController : IUsuariosController; + procedure SetController (const Value : IUsuariosController); + property Controller : IUsuariosController read GetController write SetController; + end; + + +implementation + +end. diff --git a/Source/ApplicationBase/Usuarios/Controller/View/uIEditorPerfilesUsuario.dcu b/Source/ApplicationBase/Usuarios/Controller/View/uIEditorPerfilesUsuario.dcu new file mode 100644 index 0000000..d1bfe94 Binary files /dev/null and b/Source/ApplicationBase/Usuarios/Controller/View/uIEditorPerfilesUsuario.dcu differ diff --git a/Source/ApplicationBase/Usuarios/Controller/View/uIEditorPerfilesUsuario.pas b/Source/ApplicationBase/Usuarios/Controller/View/uIEditorPerfilesUsuario.pas new file mode 100644 index 0000000..8f91f9d --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Controller/View/uIEditorPerfilesUsuario.pas @@ -0,0 +1,23 @@ +unit uIEditorPerfilesUsuario; + +interface + +uses + uEditorDBBase, uBizUsuarios, uUsuariosController; + +type + IEditorPerfilesUsuario = interface(IEditorDBBase) + ['{A4EDC876-8290-4AFF-B307-E935CD750842}'] + function GetPerfilesUsuario: IBizPerfilUsuario; + procedure SetPerfilesUsuario(const Value: IBizPerfilUsuario); + property PerfilesUsuario: IBizPerfilUsuario read GetPerfilesUsuario write SetPerfilesUsuario; + + function GetController : IUsuariosController; + procedure SetController (const Value : IUsuariosController); + property Controller : IUsuariosController read GetController write SetController; + end; + + +implementation + +end. diff --git a/Source/ApplicationBase/Usuarios/Controller/View/uIEditorUsuario.dcu b/Source/ApplicationBase/Usuarios/Controller/View/uIEditorUsuario.dcu new file mode 100644 index 0000000..598cb34 Binary files /dev/null and b/Source/ApplicationBase/Usuarios/Controller/View/uIEditorUsuario.dcu differ diff --git a/Source/ApplicationBase/Usuarios/Controller/View/uIEditorUsuario.pas b/Source/ApplicationBase/Usuarios/Controller/View/uIEditorUsuario.pas new file mode 100644 index 0000000..22c9096 --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Controller/View/uIEditorUsuario.pas @@ -0,0 +1,22 @@ +unit uIEditorUsuario; + +interface + +uses + uEditorDBItem, uUsuariosController, uBizUsuarios; + +type + IEditorUsuario = interface(IEditorDBItem) + ['{D016C4C2-F204-47AA-9327-00379CFFFB14}'] + function GetController : IUsuariosController; + procedure SetController (const Value : IUsuariosController); + property Controller : IUsuariosController read GetController write SetController; + + function GetUsuario: IBizUsuario; + procedure SetUsuario(const Value: IBizUsuario); + property Usuario: IBizUsuario read GetUsuario write SetUsuario; + end; + +implementation + +end. diff --git a/Source/ApplicationBase/Usuarios/Controller/View/uIEditorUsuarios.dcu b/Source/ApplicationBase/Usuarios/Controller/View/uIEditorUsuarios.dcu new file mode 100644 index 0000000..606e41f Binary files /dev/null and b/Source/ApplicationBase/Usuarios/Controller/View/uIEditorUsuarios.dcu differ diff --git a/Source/ApplicationBase/Usuarios/Controller/View/uIEditorUsuarios.pas b/Source/ApplicationBase/Usuarios/Controller/View/uIEditorUsuarios.pas new file mode 100644 index 0000000..5fd89de --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Controller/View/uIEditorUsuarios.pas @@ -0,0 +1,23 @@ +unit uIEditorUsuarios; + +interface + +uses + uEditorGridBase, uUsuariosController, uBizUsuarios; + +type + IEditorUsuarios = interface(IEditorGridBase) + ['{236534A8-F225-4EA0-8917-4228E530C604}'] + function GetController : IUsuariosController; + procedure SetController (const Value : IUsuariosController); + property Controller : IUsuariosController read GetController write SetController; + + function GetUsuarios: IBizUsuario; + procedure SetUsuarios(const Value: IBizUsuario); + property Usuarios: IBizUsuario read GetUsuarios write SetUsuarios; + end; + + +implementation + +end. diff --git a/Source/ApplicationBase/Usuarios/Controller/uPerfilesUsuarioController.pas b/Source/ApplicationBase/Usuarios/Controller/uPerfilesUsuarioController.pas new file mode 100644 index 0000000..7672e00 --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Controller/uPerfilesUsuarioController.pas @@ -0,0 +1,286 @@ +unit uPerfilesUsuarioController; + +interface + + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uEditorDBItem, + uIDataModuleUsuarios, uBizUsuarios; + +type + IPerfilesUsuarioController = interface(IControllerBase) + ['{3D60BC4E-B244-4C08-9A1A-00A7C3B74558}'] + function BuscarTodos: IBizPerfilUsuario; + procedure VerTodos; + procedure Ver(const AIDPerfil : Integer); + procedure Anadir(APerfilUsuario : IBizPerfilUsuario); + function Eliminar(APerfilUsuario : IBizPerfilUsuario): Boolean; overload; + function Eliminar(const AIDPerfil : Integer): Boolean; overload; + function Guardar(APerfilUsuario : IBizPerfilUsuario): Boolean; + procedure DescartarCambios(APerfilUsuario : IBizPerfilUsuario); + function Localizar(APerfilesUsuario: IBizPerfilUsuario; ADescripcion:String): Boolean; + function DarListaPerfilesUsuario: TStringList; + end; + + TPerfilesUsuarioController = class(TControllerBase, IPerfilesUsuarioController) + protected + FDataModule : IDataModuleUsuarios; + + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; + + //Estos son los tres mtodos a sobre escribir si se desea heredar toda la logica de + //este controller + procedure AsignarDataModule; virtual; + procedure ValidarObjetos; virtual; + + public + constructor Create; override; + destructor Destroy; override; + + function Eliminar(APerfilUsuario : IBizPerfilUsuario): Boolean; overload; + function Eliminar(const AIDPerfil : Integer): Boolean; overload; + function Guardar(APerfilUsuario : IBizPerfilUsuario): Boolean; + procedure DescartarCambios(APerfilUsuario : IBizPerfilUsuario); virtual; + procedure Anadir(APerfilUsuario : IBizPerfilUsuario); + function BuscarTodos: IBizPerfilUsuario; + procedure VerTodos; + procedure Ver(const AIDPerfil : Integer); + function Localizar(APerfilesUsuario: IBizPerfilUsuario; ADescripcion:String): Boolean; + function DarListaPerfilesUsuario: TStringList; + end; + +implementation + +uses + cxControls, DB, uEditorRegistryUtils, + uDAInterfaces, uDataTableUtils, + uDateUtils, uROTypes, DateUtils, Controls, Windows, schUsuariosClient_Intf, + uDataModuleUsuarios, uIEditorPerfilesUsuario, uIEditorPerfilUsuario; + +{ TPerfilesUsuarioController } + +procedure TPerfilesUsuarioController.Anadir(APerfilUsuario: IBizPerfilUsuario); +begin + APerfilUsuario.Insert; +end; + +procedure TPerfilesUsuarioController.AsignarDataModule; +begin + FDataModule := TDataModuleUsuarios.Create(Nil); +end; + +function TPerfilesUsuarioController.BuscarTodos: IBizPerfilUsuario; +begin + Result := FDataModule.GetPerfiles; +end; + +constructor TPerfilesUsuarioController.Create; +begin + inherited; + AsignarDataModule; +end; + +function TPerfilesUsuarioController.CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + +function TPerfilesUsuarioController.DarListaPerfilesUsuario: TStringList; +var + APerfilesUsuario: IBizPerfilUsuario; +begin + APerfilesUsuario := BuscarTodos; + APerfilesUsuario.DataTable.Active := True; + Result := TStringList.Create; + try + with Result do + begin + APerfilesUsuario.DataTable.First; + while not APerfilesUsuario.DataTable.EOF do + begin + Add(APerfilesUsuario.USERNAME); + APerfilesUsuario.DataTable.Next; + end; + end; + finally + APerfilesUsuario := NIL; + end; +end; + +procedure TPerfilesUsuarioController.DescartarCambios(APerfilUsuario: IBizPerfilUsuario); +begin + if not Assigned(APerfilUsuario) then + raise Exception.Create ('Perfil no asignado'); + + ShowHourglassCursor; + try + if (APerfilUsuario.State in dsEditModes) then + APerfilUsuario.Cancel; + + APerfilUsuario.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TPerfilesUsuarioController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + +function TPerfilesUsuarioController.Eliminar(const AIDPerfil: Integer): Boolean; +begin + +end; + +procedure TPerfilesUsuarioController.ValidarObjetos; +var + AEditor : IEditorPerfilesUsuario; + APerfilesUsuario: IBizPerfilUsuario; +begin + APerfilesUsuario := FDataModule.GetPerfiles; + if Assigned(APerfilesUsuario) then + begin + try + APerfilesUsuario.Active := True; + CreateEditor('EditorPerfilesUsuario', IEditorPerfilesUsuario, AEditor); + if Assigned(AEditor) then + begin + try + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.PerfilesUsuario := APerfilesUsuario; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; + end; + finally + APerfilesUsuario := NIL; + end; + end; +end; + +procedure TPerfilesUsuarioController.Ver(const AIDPerfil: Integer); +var + AEditor : IEditorPerfilUsuario; + FPerfil : IBizPerfilUsuario; +begin + FPerfil := FDataModule.GetPerfil(AIDPerfil); + if Assigned(FPerfil) then + begin + try + FPerfil.Active := True; + CreateEditor('EditorPerfilUsuario', IEditorPerfilUsuario, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.PerfilUsuario := FPerfil; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; + finally + FPerfil := NIL; + end; + end; +end; + +procedure TPerfilesUsuarioController.VerTodos; +var + AEditor : IEditorPerfilesUsuario; + APerfilesUsuario: IBizPerfilUsuario; +begin + APerfilesUsuario := FDataModule.GetPerfiles; + if Assigned(APerfilesUsuario) then + begin + try + APerfilesUsuario.Active := True; + CreateEditor('EditorPerfilesUsuario', IEditorPerfilesUsuario, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.PerfilesUsuario := APerfilesUsuario; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; + end; + finally + APerfilesUsuario := NIL; + end; + end; +end; + +function TPerfilesUsuarioController.Eliminar(APerfilUsuario: IBizPerfilUsuario): Boolean; +begin + Result := False; + + if not Assigned(APerfilUsuario) then + raise Exception.Create ('Perfil no asignado'); + + ShowHourglassCursor; + try + if (APerfilUsuario.State in dsEditModes) then + APerfilUsuario.Cancel; + + APerfilUsuario.Delete; + APerfilUsuario.DataTable.ApplyUpdates; + HideHourglassCursor; + Result := True; + finally + HideHourglassCursor; + end; +end; + +procedure TPerfilesUsuarioController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +begin + inherited; + // +end; + +function TPerfilesUsuarioController.Guardar(APerfilUsuario: IBizPerfilUsuario): Boolean; +begin + Result := False; + + if not Assigned(APerfilUsuario) then + raise Exception.Create ('Perfil no asignado'); + + ValidarObjetos; + + ShowHourglassCursor; + try + if (APerfilUsuario.DataTable.State in dsEditModes) then + APerfilUsuario.DataTable.Post; + + APerfilUsuario.DataTable.ApplyUpdates; + + Result := True; + finally + HideHourglassCursor; + end; +end; + +function TPerfilesUsuarioController.Localizar(APerfilesUsuario: IBizPerfilUsuario; ADescripcion: String): Boolean; +begin + Result := True; + ShowHourglassCursor; + try + with APerfilesUsuario.DataTable do + begin + DisableControls; + First; + if not Locate(fld_PERFILESUSERNAME, ADescripcion, []) then + Result := False; + EnableControls; + end; + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/ApplicationBase/Usuarios/Controller/uUsuariosController.dcu b/Source/ApplicationBase/Usuarios/Controller/uUsuariosController.dcu new file mode 100644 index 0000000..14a9cd0 Binary files /dev/null and b/Source/ApplicationBase/Usuarios/Controller/uUsuariosController.dcu differ diff --git a/Source/ApplicationBase/Usuarios/Controller/uUsuariosController.pas b/Source/ApplicationBase/Usuarios/Controller/uUsuariosController.pas new file mode 100644 index 0000000..a0e7db1 --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Controller/uUsuariosController.pas @@ -0,0 +1,903 @@ +unit uUsuariosController; + +interface + + +uses + Classes, SysUtils, Forms, uDADataTable, uControllerBase, + uIDataModuleUsuarios, uDataModuleUsuarios, UCBase, uBizUsuarios; + +type + TUCCriptografia = (ucStandard, ucMD5); + + IUsuariosController = interface(IControllerBase) + ['{DD963EEC-5880-4DE7-AF55-B5080B538D84}'] + + procedure Logoff; + function StartLogin : Boolean; + procedure VerUsuarios; + procedure VerPerfiles; + procedure VerUsuario(const AIDUser: Integer); overload; + procedure VerUsuario(AUser : IBizUsuario); overload; + + procedure VerPerfil(const AIDPerfil: Integer); overload; + procedure VerPerfil(APerfil : IBizPerfilUsuario); overload; + + procedure _ShowUserManager; + procedure _ShowProfileManager; + procedure _ShowLogManager; + procedure _ShowChangePassword; + function ComprobarUsuario(const User : String; const Password: String): Boolean; + function CambiarPassword(const AIDUser: Integer): Boolean; + + function GetMaxIntentosLogin: Integer; + procedure SetMaxIntentosLogin(const Value: Integer); + property MaxIntentosLogin : Integer read GetMaxIntentosLogin write SetMaxIntentosLogin; + + function GetCurrentUser: IBizUsuario; + property CurrentUser: IBizUsuario read GetCurrentUser; + + function GuardarPerfil(APerfil : IBizPerfilUsuario): Boolean; + function GuardarUsuario(AUser : IBizUsuario): Boolean; + + function EliminarUsuario(const AIDUser : integer): Boolean; overload; + function EliminarUsuario(AUser : IBizUsuario): Boolean; overload; + + function EliminarPerfil(APerfil : IBizPerfilUsuario): Boolean; overload; + function EliminarPerfil(const AIDPerfil : integer): Boolean; overload; + + function HayUsuarioConPerfil(const AIDPerfil : integer): Boolean; + + function BuscarUsuario(const AIDUser: Integer): IBizUsuario; + function BuscarTodosUsuarios: IBizUsuario; + + function DarListaPerfilesUsuario: TStringList; + function DarListaUsuarios: TStringList; + + function ValidarPassword(const APassword : string; const ALogin : String; + const ANombre: String; out AMsg : String): boolean; + + function NuevoUsuario : IBizUsuario; + function NuevoPerfil : IBizPerfilUsuario; + + function GetCriptografia : TUCCriptografia; + property Criptografia: TUCCriptografia read GetCriptografia; + + function GetUsarPasswordsSeguras: Boolean; + procedure SetUsarPasswordsSeguras(const Value: Boolean); + property UsarPasswordsSeguras : Boolean read GetUsarPasswordsSeguras write SetUsarPasswordsSeguras; + +{ + procedure ChangePassword(IDUser: Integer; NewPassword: String); + procedure AddRight(idUser: Integer; ItemRight: TObject; FullPath: Boolean = True); overload; + procedure AddRight(idUser: Integer; ItemRight: String); overload; + procedure AddRightEX(idUser: Integer; Module, FormName, ObjName: String); + function VerificaLogin(User, Password: String): Boolean; + function GetLocalUserName: String; + function GetLocalComputerName: String; + function AddUser(Login, Password, Name, Mail: String; Profile , UserExpired , DaysExpired : Integer; PrivUser: Boolean): Integer; + function ExisteUsuario(Login: String): Boolean; + property CurrentUser: TUCCurrentUser read FCurrentUser write FCurrentUser; + property CurrentEmpresa : TEmpresaDef read FEmpresaAtual write FEmpresaAtual; + property UserSettings: TUCUserSettings read FUserSettings write SetUserSettings;} + + end; + + TUsuariosController = class(TControllerBase, IUsuariosController) + private + procedure FiltrarEmpresa(AUsuario: IBizUsuario); + protected + FDataModule : IDataModuleUsuarios; + FUserControl: TUserControl; + FCurrentUser : IBizUsuario; + FUsarPasswordsSeguras : Boolean; + + function GetMaxIntentosLogin: Integer; + procedure SetMaxIntentosLogin(const Value: Integer); + + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; + + procedure AsignarDataModule; + procedure InicializarUserControl; + function GetCurrentUser: IBizUsuario; + + function AnadirUsuario(AUser : IBizUsuario): Boolean; + function ModificarUsuario(AUser : IBizUsuario): Boolean; + + function AnadirPerfil(APerfil : IBizPerfilUsuario): Boolean; + function ModificarPerfil(APerfil : IBizPerfilUsuario): Boolean; + + function ValidarUsuario(AUser: IBizUsuario): Boolean; + function ValidarPerfil(APerfil: IBizPerfilUsuario): Boolean; + + function GetCriptografia : TUCCriptografia; + function CambiarPassword(const AIDUser: Integer; const ANewPassword: String): Boolean; overload; + + function GetUsarPasswordsSeguras: Boolean; + procedure SetUsarPasswordsSeguras(const Value: Boolean); + public + constructor Create; override; + destructor Destroy; override; + + procedure Logoff; + function StartLogin : Boolean; + procedure VerUsuarios; + procedure VerPerfiles; + + procedure VerUsuario(const AIDUser: Integer); overload; + procedure VerUsuario(AUser : IBizUsuario); overload; + + procedure VerPerfil(const AIDPerfil: Integer); overload; + procedure VerPerfil(APerfil : IBizPerfilUsuario); overload; + + procedure _ShowUserManager; + procedure _ShowProfileManager; + procedure _ShowLogManager; + procedure _ShowChangePassword; + function ComprobarUsuario(const User : String; const Password: String): Boolean; + function CambiarPassword(const AIDUser: Integer): Boolean; overload; + + function EliminarUsuario(const AIDUser : integer): Boolean; overload; + function EliminarUsuario(AUser : IBizUsuario): Boolean; overload; + + function EliminarPerfil(APerfil : IBizPerfilUsuario): Boolean; overload; + function EliminarPerfil(const AIDPerfil : integer): Boolean; overload; + + function NuevoUsuario : IBizUsuario; + function NuevoPerfil : IBizPerfilUsuario; + + function GuardarPerfil(APerfil : IBizPerfilUsuario): Boolean; + function GuardarUsuario(AUser : IBizUsuario): Boolean; + + function BuscarUsuario(const AIDUser: Integer): IBizUsuario; + function BuscarTodosUsuarios: IBizUsuario; + + function DarListaPerfilesUsuario: TStringList; + function DarListaUsuarios: TStringList; + + function HayUsuarioConPerfil(const AIDPerfil : integer): Boolean; + function ValidarPassword(const APassword : string; const ALogin : String; + const ANombre: String; out AMsg : String): boolean; + + property UsarPasswordsSeguras : Boolean read GetUsarPasswordsSeguras write SetUsarPasswordsSeguras; + property UserControl : TUserControl read FUserControl; + property MaxIntentosLogin : Integer read GetMaxIntentosLogin write SetMaxIntentosLogin; + property CurrentUser: IBizUsuario read GetCurrentUser; + property Criptografia: TUCCriptografia read GetCriptografia; + end; + +implementation + +uses + cxControls, DB, uEditorRegistryUtils, schUsuariosClient_Intf, + uDAInterfaces, uDataTableUtils, uDialogUtils, uFactuGES_App, Dialogs, + uDateUtils, uROTypes, DateUtils, Controls, Windows, uIEditorLogin, + uIEditorUsuarios, uIEditorUsuario, uIEditorPerfilesUsuario, + uIEditorPerfilUsuario, uEditorCambiarPassword; + +{ TUsuariosController } + +function TUsuariosController.AnadirPerfil(APerfil: IBizPerfilUsuario): Boolean; + + function GetNewIdUser: Integer; + var + TempDs: TDataset; + begin + with FUserControl do + TempDS := DataConnector.UCGetSQLDataSet('SELECT ' + TableUsers.FieldUserID + ' as MaxUserID from ' + TableUsers.TableName + + ' ORDER BY ' + TableUsers.FieldUserID + ' DESC'); + Result := TempDs.FieldByName('MaxUserID').AsInteger + 1; + TempDS.Close; + FreeAndNil(TempDS); + end; + +var + ANuevoID : Integer; +begin + Result := False; + + if not Assigned(APerfil) then + raise Exception.Create('No hay perfil asignado (AnadirPerfil)'); + + if ValidarPerfil(APerfil) then + begin + ShowHourglassCursor; + try + ANuevoID := GetNewIdUser; + with FUserControl do + begin + DataConnector.UCExecSQL(Format('INSERT INTO %s(%s, %s, %s) Values(%d,%s,%s)', + [TableUsers.TableName, + TableUsers.FieldUserID, + TableUsers.FieldUserName, + TableUsers.FieldTypeRec, + ANuevoID, + QuotedStr(APerfil.USERNAME), + QuotedStr('P')])); + end; + + Result := (ANuevoID > 0); + + if Result then + begin + APerfil.Edit; + APerfil.ID := ANuevoID; + APerfil.Post; + end; + finally + HideHourglassCursor; + end; + end; +end; + +function TUsuariosController.AnadirUsuario(AUser: IBizUsuario): Boolean; +var + ANuevoID : Integer; +begin + Result := False; + + if not Assigned(AUser) then + raise Exception.Create('No hay usuario asignado (AnadirUsuario)'); + + if FUserControl.ExisteUsuario(AUser.LOGIN) then + begin + MessageDlg(Format(FUserControl.UserSettings.CommonMessages.UsuarioExiste, [AUser.LOGIN]), mtWarning, [mbOK], 0); + Exit; + end; + + if ValidarUsuario(AUser) then + begin + ShowHourglassCursor; + try + ANuevoID := FUserControl.AddUser(AUser.LOGIN, AUser.PASS, AUser.USERNAME, AUser.EMAIL, + AUser.ID_PERFIL, AUser.BLOQUEADO, AUser.USERDAYSSUN, (AUser.PRIVILEGED = 1)); + + Result := (ANuevoID > 0); + + if Result then + begin + AUser.Edit; + AUser.ID := ANuevoID; + AUser.Post; + end; + + { TODO -oLuiz -cUpgrade : Consertar a Senha para poder avisar MD5 } + {if (Assigned(MailUserControl)) and (MailUserControl.AdicionaUsuario.Ativo) then + try + MailUserControl.EnviaEmailAdicionaUsuario(vNome, vLogin, Encrypt(vNovaSenha, EncryptKey), vEmail, IntToStr(vPerfil), EncryptKey); + except + on E: Exception do + Log(E.Message, llMedio); + end;} + finally + HideHourglassCursor; + end; + end; +end; + +procedure TUsuariosController.AsignarDataModule; +begin + FDataModule := TDataModuleUsuarios.Create(Nil); +end; + +function TUsuariosController.BuscarTodosUsuarios: IBizUsuario; +begin + Result := FDataModule.GetUsuarios; + FiltrarEmpresa(Result); +end; + +function TUsuariosController.BuscarUsuario(const AIDUser: Integer): IBizUsuario; +begin + Result := FDataModule.GetUsuario(AIDUser); + FiltrarEmpresa(Result); +end; + +function TUsuariosController.CambiarPassword(const AIDUser: Integer; + const ANewPassword: String): Boolean; +begin + FUserControl.ChangePassword(AIDUser, ANewPassword); + Result := True; +end; + +function TUsuariosController.CambiarPassword(const AIDUser: Integer) : Boolean; +var + AUser : IBizUsuario; + AEditor : TfEditorCambiarPassword; +begin + Result := False; + AUser := FDataModule.GetUsuario(AIDUser); + if Assigned(AUser) then + begin + AUser.Active := True; + + AEditor := TfEditorCambiarPassword.Create(NIL); + try + AEditor.Controller := Self; + AEditor.Usuario := AUser; + AEditor.CambioObligatorio := False; + if (Length(Trim(AUser.PASS)) = 0) then + AEditor.EditAtu.Enabled := False; + if (AEditor.ShowModal = mrOk) then + Result := CambiarPassword(AIDUser, AEditor.EditNova.Text); + finally + AEditor.Release; + AUser.Active := False; + AUser := NIL; + end; + end; +end; + +function TUsuariosController.ComprobarUsuario(const User, + Password: String): Boolean; +begin + Result := FUserControl.VerificaLogin(User, Password); + if not Result then + begin + if User = 'admin' then + begin + if not FUserControl.ExisteUsuario('admin') then + begin + FUserControl.AddUser('admin', '1', 'Administrador', 'admin@correo.net', 0, 0 , 30, True); + Result := ComprobarUsuario(User, Password); + end; + end; + end; +end; + +constructor TUsuariosController.Create; +begin + inherited; + AsignarDataModule; + FCurrentUser := NIL; + FUserControl := TUserControl.Create(nil); + FUsarPasswordsSeguras := False; + InicializarUserControl; +end; + +function TUsuariosController.CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + +function TUsuariosController.DarListaPerfilesUsuario: TStringList; +var + APerfilesUsuario: IBizPerfilUsuario; +begin + APerfilesUsuario := FDataModule.GetPerfiles; + APerfilesUsuario.DataTable.Active := True; + + Result := TStringList.Create; + try + with Result do + begin + APerfilesUsuario.DataTable.First; + while not APerfilesUsuario.DataTable.EOF do + begin + Add(Format('%s=%d', [APerfilesUsuario.USERNAME, APerfilesUsuario.ID])); + APerfilesUsuario.DataTable.Next; + end; + end; + finally + APerfilesUsuario := NIL; + end; +end; + +function TUsuariosController.DarListaUsuarios: TStringList; +var + AUsuarios: IBizUsuario; +begin + AUsuarios := FDataModule.GetUsuarios; + AUsuarios.DataTable.Active := True; + + Result := TStringList.Create; + try + with Result do + begin + AUsuarios.DataTable.First; + while not AUsuarios.DataTable.EOF do + begin + Add(Format('%s=%d', [AUsuarios.USERNAME, AUsuarios.ID])); + AUsuarios.DataTable.Next; + end; + end; + finally + AUsuarios := NIL; + end; +end; + +destructor TUsuariosController.Destroy; +begin + FreeAndNIL(FUserControl); + FDataModule := NIL; + FCurrentUser := NIL; + + inherited; +end; + +function TUsuariosController.EliminarPerfil( + APerfil: IBizPerfilUsuario): Boolean; +var + CanDelete: Boolean; + ErrorMsg: String; +begin + Result := False; + + if not Assigned(APerfil) then + raise Exception.Create('No hay perfil asignado (EliminarPerfil)'); + + if not APerfil.Active then + APerfil.Active := True; + + if APerfil.DataTable.RecordCount = 0 then + Exit; + + if HayUsuarioConPerfil(APerfil.ID) then + begin + //changed by fduenas: PromptDelete_WindowCaption + if MessageBox(Application.Handle, PChar(Format(FUserControl.UserSettings.UsersProfile.PromptDelete, [APerfil.USERNAME])), + PChar(FUserControl.UserSettings.UsersProfile.PromptDelete_WindowCaption), MB_ICONQUESTION or MB_YESNO or MB_DEFBUTTON2) <> idYes then + Exit; + end; + + CanDelete := True; + if Assigned(FUserControl.onDeleteProfile) then + FUserControl.onDeleteProfile(NIL, APerfil.ID, CanDelete, ErrorMsg); + if not CanDelete then + begin + MessageDlg(ErrorMSG, mtWarning, [mbOK], 0); + Exit; + end; + + with FUserControl do + begin + DataConnector.UCExecSQL('Delete from ' + TableUsers.TableName + ' where ' + TableUsers.FieldUserID + ' = ' + IntToStr(APerfil.ID)); + DataConnector.UCExecSQL('Delete from ' + TableRights.TableName + ' where ' + TableRights.FieldUserID + ' = ' + IntToStr(APerfil.ID)); + DataConnector.UCExecSQL('Delete from ' + TableRights.TableName + 'EX where ' + TableRights.FieldUserID + ' = ' + IntToStr(APerfil.ID)); + DataConnector.UCExecSQL('Update ' + TableUsers.TableName + + ' Set ' + TableUsers.FieldProfile + ' = null where ' + TableUsers.FieldUserID + ' = ' + IntToStr(APerfil.ID)); + end; + Result := True; +end; + +function TUsuariosController.EliminarPerfil(const AIDPerfil: integer): Boolean; +begin + Result := EliminarPerfil(FDataModule.GetPerfil(AIDPerfil)); +end; + +function TUsuariosController.EliminarUsuario(AUser: IBizUsuario): Boolean; +begin + Result := False; + + if not Assigned(AUser) then + raise Exception.Create('No hay usuario asignado (EliminarUsuario)'); + + if not AUser.Active then + AUser.Active := True; + + if AUser.DataTable.RecordCount > 0 then + Result := EliminarUsuario(AUser.ID); +end; + +function TUsuariosController.EliminarUsuario(const AIDUser: integer): Boolean; +begin + FUserControl.DataConnector.UCExecSQL('Delete from ' + FUserControl.TableRights.TableName + ' where ' + FUserControl.TableRights.FieldUserID + ' = ' + IntToStr(AIDUser)); + FUserControl.DataConnector.UCExecSQL('Delete from ' + FUserControl.TableUsers.TableName + ' where ' + FUserControl.TableUsers.FieldUserID + ' = ' + IntToStr(AIDUser)); + Result := True; +end; + +function TUsuariosController.GetCriptografia: TUCCriptografia; +begin + case FUserControl.Criptografia of + cPadrao: Result := ucStandard; + cMD5: Result := ucMD5; + else + Result := ucStandard; + end; +end; + +function TUsuariosController.GetCurrentUser: IBizUsuario; +begin + if not Assigned(FCurrentUser) or (FCurrentUser.ID <> FUserControl.CurrentUser.UserID) then + FCurrentUser := BuscarUsuario(FUserControl.CurrentUser.UserID); + + if not FCurrentUser.Active then + FCurrentUser.Active := True; + + Result := FCurrentUser; +end; + +function TUsuariosController.GetMaxIntentosLogin: Integer; +begin + Result := FUserControl.Login.MaxLoginAttempts; +end; + +function TUsuariosController.GetUsarPasswordsSeguras: Boolean; +begin + Result := FUsarPasswordsSeguras; +end; + +function TUsuariosController.GuardarPerfil(APerfil: IBizPerfilUsuario): Boolean; +begin + if not Assigned(APerfil) then + raise Exception.Create('No hay perfil asignado (GuardarPerfil)'); + + if APerfil.EsNuevo then + Result := AnadirPerfil(APerfil) + else + Result := ModificarPerfil(APerfil); +end; + +function TUsuariosController.GuardarUsuario(AUser: IBizUsuario): Boolean; +begin + if not Assigned(AUser) then + raise Exception.Create('No hay usuario asignado (GuardarUsuario)'); + + if AUser.EsNuevo then + Result := AnadirUsuario(AUser) + else + Result := ModificarUsuario(AUser); +end; + +function TUsuariosController.HayUsuarioConPerfil( + const AIDPerfil: integer): Boolean; +var + TempDS: TDataset; +begin + try + TempDS := FUserControl.DataConnector.UCGetSQLDataset('Select ' + FUserControl.TableUsers.FieldUserID + ' as IdUser from ' + + FUserControl.TableUsers.TableName + + ' Where ' + FUserControl.TableUsers.FieldTypeRec + ' = ' + QuotedStr('U') + + ' AND ' + FUserControl.TableUsers.FieldProfile + ' = ' + IntToStr(AIDPerfil)); + + Result := (TempDS.FieldByName('IdUser').AsInteger > 0); + TempDS.Close; + finally + FreeAndNil(TempDS); + end; +end; + +procedure TUsuariosController.InicializarUserControl; +begin + with FUserControl do + begin + ApplicationID := AppFactuGES.AppName; + AutoStart := False; + Criptografia := cMD5; + CheckValidationKey := True; + Login.MaxLoginAttempts := 3; + UserPasswordChange.ForcePassword := True; + UserPasswordChange.MinPasswordLength := 3; + end; + FDataModule.InicializarUserControl(FUserControl); +end; + +procedure TUsuariosController.Logoff; +begin + FUserControl.Logoff; +end; + +function TUsuariosController.ModificarPerfil( + APerfil: IBizPerfilUsuario): Boolean; +begin + Result := False; + + if not Assigned(APerfil) then + raise Exception.Create('No hay perfil asignado (ModificarPerfil)'); + + if ValidarPerfil(APerfil) then + begin + ShowHourglassCursor; + try + with FUserControl do + begin + DataConnector.UCExecSQL(Format('UPDATE %s SET %s = %s WHERE %s = %d', + [TableUsers.TableName, + TableUsers.FieldUserName, + QuotedStr(APerfil.USERNAME), + TableUsers.FieldUserID, + APerfil.ID])); + end; + + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TUsuariosController.ModificarUsuario(AUser: IBizUsuario): Boolean; +begin + Result := False; + + if not Assigned(AUser) then + raise Exception.Create('No hay usuario asignado (ModificarUsuario)'); + + if ValidarUsuario(AUser) then + begin + ShowHourglassCursor; + try + FUserControl.ChangeUser(AUser.ID, AUser.LOGIN, AUser.USERNAME, AUser.EMAIL, + AUser.ID_PERFIL, AUser.BLOQUEADO , AUser.USERDAYSSUN, (AUser.PRIVILEGED = 1)); + + Result := True; + + { TODO -oLuiz -cUpgrade : Consertar a Senha para poder avisar MD5 } + {if (Assigned(MailUserControl)) and (MailUserControl.AlteraUsuario.Ativo) then + try + MailUserControl.EnviaEmailAlteraUsuario(vNome, + vLogin, + TfrmCadastrarUsuario(Self.Owner).FDataSetCadastroUsuario.FieldByName('SENHA').AsString, + vEmail, + IntToStr(vPerfil), + EncryptKey); + except + on E: Exception do + Log(E.Message, 2); + end;} + finally + HideHourglassCursor; + end; + end; +end; + +function TUsuariosController.NuevoPerfil: IBizPerfilUsuario; +var + APerfil : IBizPerfilUsuario; +begin + APerfil := FDataModule.NuevoPerfil; + APerfil.DataTable.Active := True; + APerfil.Insert; + Result := APerfil; +end; + +function TUsuariosController.NuevoUsuario: IBizUsuario; +var + AUsuario : IBizUsuario; +begin + AUsuario := FDataModule.NuevoUsuario; + AUsuario.DataTable.Active := True; + AUsuario.Insert; + Result := AUsuario; +end; + +procedure TUsuariosController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +begin + inherited; +// +end; + +procedure TUsuariosController.SetMaxIntentosLogin(const Value: Integer); +begin + FUserControl.Login.MaxLoginAttempts := Value; +end; + +procedure TUsuariosController.SetUsarPasswordsSeguras(const Value: Boolean); +begin + FUsarPasswordsSeguras := Value; +end; + +procedure TUsuariosController._ShowChangePassword; +begin + FUserControl.ShowChangePassword; +end; + +procedure TUsuariosController._ShowLogManager; +begin + FUserControl.ShowLogManager; +end; + +procedure TUsuariosController._ShowProfileManager; +begin + FUserControl.ShowProfileManager; +end; + +function TUsuariosController.ValidarPassword(const APassword : string; + const ALogin : String; const ANombre: String; out AMsg : String): boolean; +begin + Result := False; + AMsg := ''; + if (FUserControl.UserPasswordChange.ForcePassword) and (Length(Trim(APassword)) = 0) then + AMsg := FUserControl.UserSettings.CommonMessages.ChangePasswordError.PasswordRequired + else + if (Length(Trim(APassword)) < FUserControl.UserPasswordChange.MinPasswordLength) then + AMsg := Format(FUserControl.UserSettings.CommonMessages.ChangePasswordError.MinPasswordLength, [FUserControl.UserPasswordChange.MinPasswordLength]) + else + if FUsarPasswordsSeguras and (Pos(LowerCase(APassword), 'abcdeasdfqwerzxcv1234567890321654987test' + LowerCase(ALogin) + LowerCase(AMsg)) > 0) then + AMsg := FUserControl.UserSettings.CommonMessages.ChangePasswordError.InvalidNewPassword + else + Result := true; +end; + +function TUsuariosController.ValidarPerfil(APerfil: IBizPerfilUsuario): Boolean; +begin + if not Assigned(APerfil) then + raise Exception.Create ('Perfil no asignado (ValidarPerfil)'); + + if (APerfil.DataTable.State in dsEditModes) then + APerfil.DataTable.Post; + + if Length(APerfil.USERNAME) = 0 then + raise Exception.Create('Debe indicar el nombre del perfil.'); + + Result := True; +end; + +function TUsuariosController.ValidarUsuario(AUser: IBizUsuario): Boolean; +begin + if not Assigned(AUser) then + raise Exception.Create ('Usuario no asignado (ValidarUsuario)'); + + if (AUser.DataTable.State in dsEditModes) then + AUser.DataTable.Post; + + if Length(AUser.USERNAME) = 0 then + raise Exception.Create('Debe indicar el nombre completo del usuario.'); + + if Length(AUser.LOGIN) = 0 then + raise Exception.Create('Debe indicar un login para el usuario.'); + + Result := True; +end; + + +procedure TUsuariosController.VerPerfil(const AIDPerfil: Integer); +var + FPerfil : IBizPerfilUsuario; +begin + FPerfil := FDataModule.GetPerfil(AIDPerfil); + VerPerfil(FPerfil); +end; + +procedure TUsuariosController.VerPerfil(APerfil: IBizPerfilUsuario); +var + AEditor : IEditorPerfilUsuario; +begin + if not Assigned(APerfil) then + raise Exception.Create('Perfil no asignado (VerPerfil)'); + + APerfil.Active := True; + CreateEditor('EditorPerfilUsuario', IEditorPerfilUsuario, AEditor); + if Assigned(AEditor) then + begin + try + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.PerfilUsuario := APerfil; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; + end; +end; + +procedure TUsuariosController.VerPerfiles; +var + AEditor : IEditorPerfilesUsuario; + APerfilesUsuario: IBizPerfilUsuario; +begin + APerfilesUsuario := FDataModule.GetPerfiles; + if Assigned(APerfilesUsuario) then + begin + try + APerfilesUsuario.Active := True; + CreateEditor('EditorPerfilesUsuario', IEditorPerfilesUsuario, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.PerfilesUsuario := APerfilesUsuario; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; + finally + APerfilesUsuario := NIL; + end; + end; +end; + +procedure TUsuariosController.VerUsuario(const AIDUser: Integer); +var + FUsuario : IBizUsuario; +begin + FUsuario := FDataModule.GetUsuario(AIDUser); + VerUsuario(FUsuario); +end; + +procedure TUsuariosController.VerUsuario(AUser: IBizUsuario); +var + AEditor : IEditorUsuario; +begin + if not Assigned(AUser) then + raise Exception.Create('Usuario no asignado (VerUsuario)'); + + AUser.Active := True; + CreateEditor('EditorUsuario', IEditorUsuario, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.Usuario := AUser; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +procedure TUsuariosController.VerUsuarios; +var + AEditor : IEditorUsuarios; + FUsuarios : IBizUsuario; +begin + FUsuarios := FDataModule.GetUsuarios; + if Assigned(FUsuarios) then + begin + FUsuarios.Active := True; + try + CreateEditor('EditorUsuarios', IEditorUsuarios, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.Usuarios := FUsuarios; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; + finally + FUsuarios := NIL; + end; + end; +end; + +procedure TUsuariosController._ShowUserManager; +begin + FUserControl.ShowUserManager; +end; + +function TUsuariosController.StartLogin : Boolean; +var + AEditor : IEditorLogin; +begin + Result := False; + AEditor := NIL; + + CreateEditor('EditorLogin', IEditorLogin, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; + Result := (AEditor.ShowModal = mrOk); + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +procedure TUsuariosController.FiltrarEmpresa(AUsuario: IBizUsuario); +{var + Condicion: TDAWhereExpression;} +begin + + // AQUI HAY QUE TENER EN CUENTA QUE UN USUARIO PUEDE QUE NO TENGA ACCESO + // EN UNA DETERMINADA EMPRESA + + +{ if AUsuario.DataTable.Active then + AUsuario.DataTable.Active := False; + + // Filtrar los contactos actuales por empresa + with AUsuario.DataTable.DynamicWhere do + begin + Condicion := NewBinaryExpression(NewField('', fld_U + ContactosID_EMPRESA), NewConstant(AppFactuGES.EmpresaActiva.ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end;} +end; + + +end. diff --git a/Source/ApplicationBase/Usuarios/Data/uDataModuleUsuarios.dcu b/Source/ApplicationBase/Usuarios/Data/uDataModuleUsuarios.dcu new file mode 100644 index 0000000..4e36d9e Binary files /dev/null and b/Source/ApplicationBase/Usuarios/Data/uDataModuleUsuarios.dcu differ diff --git a/Source/ApplicationBase/Usuarios/Data/uDataModuleUsuarios.dfm b/Source/ApplicationBase/Usuarios/Data/uDataModuleUsuarios.dfm new file mode 100644 index 0000000..7b9fec3 --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Data/uDataModuleUsuarios.dfm @@ -0,0 +1,426 @@ +inherited DataModuleUsuarios: TDataModuleUsuarios + OnCreate = DataModuleCreate + Height = 215 + Width = 331 + object srvUsuarios: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvUsuarios' + Left = 40 + Top = 80 + end + object UCSettingsSpanish: TUCSettings + AppMessages.MsgsForm_BtNew = '&Nuevo Mensaje' + AppMessages.MsgsForm_BtReplay = '&Responder' + AppMessages.MsgsForm_BtForward = '&Reenviar' + AppMessages.MsgsForm_BtDelete = '&Borrar' + AppMessages.MsgsForm_BtClose = '&Cerrar' + AppMessages.MsgsForm_WindowCaption = 'Mensajes de Sistema' + AppMessages.MsgsForm_ColFrom = 'Remitente' + AppMessages.MsgsForm_ColSubject = 'Asunto' + AppMessages.MsgsForm_ColDate = 'Fecha' + AppMessages.MsgsForm_PromptDelete = #191'Est'#225' seguro de eliminar los mensajes seleccionados?' + AppMessages.MsgsForm_PromptDelete_WindowCaption = 'Eliminar mensajes' + AppMessages.MsgsForm_NoMessagesSelected = '!Ning'#250'n mensaje seleccionado'#161 + AppMessages.MsgsForm_NoMessagesSelected_WindowCaption = 'Informaci'#243'n' + AppMessages.MsgRec_BtClose = '&Cerrar' + AppMessages.MsgRec_WindowCaption = 'Mensaje' + AppMessages.MsgRec_Title = 'Mensaje Recibido' + AppMessages.MsgRec_LabelFrom = 'De:' + AppMessages.MsgRec_LabelDate = 'Fecha' + AppMessages.MsgRec_LabelSubject = 'Asunto' + AppMessages.MsgRec_LabelMessage = 'Mensaje' + AppMessages.MsgSend_BtSend = '&Enviar' + AppMessages.MsgSend_BtCancel = '&Cancelar' + AppMessages.MsgSend_WindowCaption = 'Mensaje' + AppMessages.MsgSend_Title = 'Enviar Nuevo Mensaje' + AppMessages.MsgSend_GroupTo = 'Para:' + AppMessages.MsgSend_RadioUser = 'Usuario:' + AppMessages.MsgSend_RadioAll = 'Todos' + AppMessages.MsgSend_GroupMessage = 'Mensaje' + AppMessages.MsgSend_LabelSubject = 'Asunto' + AppMessages.MsgSend_LabelMessageText = 'Texto del mensaje' + CommonMessages.AutoLogonError = + 'Error de Ingreso Autom'#225'tico!'#13#10'Especifique un Usuario y Contrase'#241 + + 'a V'#225'lidos.' + CommonMessages.ChangePasswordError.InvalidCurrentPassword = #161'Contrase'#241'a Actual Incorrecta!' + CommonMessages.ChangePasswordError.NewPasswordError = + 'Los campos Contrase'#241'a Nueva y Confirme Contrase'#241'a deben ser igua' + + 'les' + CommonMessages.ChangePasswordError.NewEqualCurrent = 'Nueva Contrase'#241'a y Contrase'#241'a Actual deben ser diferentes' + CommonMessages.ChangePasswordError.PasswordRequired = #161'La Contrase'#241'a es obligatoria!' + CommonMessages.ChangePasswordError.MinPasswordLength = 'La Contrase'#241'a debe tener un m'#237'nimo de %d caracteres' + CommonMessages.ChangePasswordError.InvalidNewPassword = #161'Prohibido utilizar contrase'#241'as NO Seguras!' + CommonMessages.InvalidLogin = 'Usuario y/o Contrase'#241'a Incorrectos!' + CommonMessages.InitialMessage.Strings = ( + 'ATENCION! Conecci'#243'n Inicial:' + '' + 'Usuario : :user' + 'Contrase'#241'a : :password' + '' + 'Defina permisos para este usuario') + CommonMessages.MaxLoginAttemptsError = '%d Intentos de conecci'#243'n inv'#225'lidos !' + CommonMessages.PasswordChanged = #161'Se ha cambiado la Contrase'#241'a con '#233'xito!' + CommonMessages.BlankPassword = 'Contrase'#241'a vac'#237'a para el Usuario %s' + CommonMessages.UsuarioExiste = 'O Usu'#225'rio "%s" j'#225' est'#225' cadastrado no sistema !!' + CommonMessages.PasswordExpired = 'Aten'#231#227'o, sua senha expirou, favor troca-la' + CommonMessages.ForcaTrocaSenha = 'Mudan'#231'a de senha obrigat'#243'ria' + Login.WindowCaption = 'Conecci'#243'n' + Login.LabelUser = 'Usuario: ' + Login.LabelPassword = 'Contrase'#241'a:' + Login.BtOk = 'Aceptar' + Login.BtCancel = '&Cancelar' + Login.LeftImage.Data = { + 07544269746D617016090000424D160900000000000036040000280000003200 + 0000180000000100080000000000E00400000000000000000000000100000000 + 000000000000000080000080000000808000800000008000800080800000C0C0 + C000C0DCC000F0CAA6000020400000206000002080000020A0000020C0000020 + E00000400000004020000040400000406000004080000040A0000040C0000040 + E00000600000006020000060400000606000006080000060A0000060C0000060 + E00000800000008020000080400000806000008080000080A0000080C0000080 + E00000A0000000A0200000A0400000A0600000A0800000A0A00000A0C00000A0 + E00000C0000000C0200000C0400000C0600000C0800000C0A00000C0C00000C0 + E00000E0000000E0200000E0400000E0600000E0800000E0A00000E0C00000E0 + E00040000000400020004000400040006000400080004000A0004000C0004000 + E00040200000402020004020400040206000402080004020A0004020C0004020 + E00040400000404020004040400040406000404080004040A0004040C0004040 + E00040600000406020004060400040606000406080004060A0004060C0004060 + E00040800000408020004080400040806000408080004080A0004080C0004080 + E00040A0000040A0200040A0400040A0600040A0800040A0A00040A0C00040A0 + E00040C0000040C0200040C0400040C0600040C0800040C0A00040C0C00040C0 + E00040E0000040E0200040E0400040E0600040E0800040E0A00040E0C00040E0 + E00080000000800020008000400080006000800080008000A0008000C0008000 + E00080200000802020008020400080206000802080008020A0008020C0008020 + E00080400000804020008040400080406000804080008040A0008040C0008040 + E00080600000806020008060400080606000806080008060A0008060C0008060 + E00080800000808020008080400080806000808080008080A0008080C0008080 + E00080A0000080A0200080A0400080A0600080A0800080A0A00080A0C00080A0 + E00080C0000080C0200080C0400080C0600080C0800080C0A00080C0C00080C0 + E00080E0000080E0200080E0400080E0600080E0800080E0A00080E0C00080E0 + E000C0000000C0002000C0004000C0006000C0008000C000A000C000C000C000 + E000C0200000C0202000C0204000C0206000C0208000C020A000C020C000C020 + E000C0400000C0402000C0404000C0406000C0408000C040A000C040C000C040 + E000C0600000C0602000C0604000C0606000C0608000C060A000C060C000C060 + E000C0800000C0802000C0804000C0806000C0808000C080A000C080C000C080 + E000C0A00000C0A02000C0A04000C0A06000C0A08000C0A0A000C0A0C000C0A0 + E000C0C00000C0C02000C0C04000C0C06000C0C08000C0C0A000F0FBFF00A4A0 + A000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFF + FF00FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD + FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFD + FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD525252525252525252525252 + 5252FDFDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD + FDFDFDFDFDFDFDAFB75E5E5E66666767676F6F6F6FB752FDFDFDFDFD0000FDFD + FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDAFBF6FBFBF + BFBFBFBFBFBFBFBFBFB752FDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFD + FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDAFB76F676F6FB7B7B7B7B7776F5EB752FD + FDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD + FDFDFDAFBF6FBFBFBFBFBFBFBFBFBFBFBFB752FDFDFDFDFD0000FDFDFDFDFDFD + FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDAFB76F676F6F6FB7B7 + B7B7776F5EB752FDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD + FDFDFDFDFDFDFDFDFDFDFDAFBF6FBFBFBFBFBFBFBFBFBFBFBFBF52FDFDFDFDFD + 0000FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDAF + B76767676F6F6FB7B7B7776F5EB752FDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFD + FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDAFBF6FBFBFBFBFBFBFBFBFBFBF + BFBF52FDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD + FDFDFDFDFDFDFDAFB76767676F6F6F6FB7B7776F5EB752FDFDFDFDFD0000FDFD + FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDAFBF6FBFBF + BFBFBFBFBFBFBFBFBFBF52FDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFD + FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDAFBFB7AFAFB7B7B7B7BFBFBFBFB7B752FD + FDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD + FDFDFDFDAFB76F675E5E5E5E5E5E676FB7A5FDFDFDFDFDFD0000FDFDFDFDFDFD + FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF7F79BFDFDFDFD + FDFDA4F7A3FDFDFDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD + FDFDFDFDFDFDFDFDFDFDFDFDFDF7F79BFDFDFDFDFDFDA407A3FDFDFDFDFDFDFD + 0000FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD + FDF7F79BFDFDFDFDFDFDA407A3FDFDFDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFD + FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF7F7A4FDFDFDFDFDFDF707 + A3FDFDFDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD + FDFDFDFDFDFDFDFDFDF707A49AFDFDFDFDA30707A3FDFDFDFDFDFDFD0000FDFD + FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF7F6A4 + A49B9A9AA3A407079AFDFDFDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFD + FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF7F6F7F7A4A4F70707A3FDFDFDFD + FDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD + FDFDFDFDFDFDFDF7F6F6F6F6F607A3FDFDFDFDFDFDFDFDFD0000FDFDFDFDFDFD + FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF7A3A3A3 + A3A3FDFDFDFDFDFDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD + FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD + 0000} + Login.LabelTentativa = 'Tentativa : ' + Login.LabelTentativas = 'M'#225'ximo de Tentativas : ' + Log.WindowCaption = 'Seguridad' + Log.LabelDescription = 'Visor de Eventos' + Log.LabelUser = 'Usuario:' + Log.LabelDate = 'Fecha:' + Log.LabelLevel = 'Nivel M'#237'nimo: ' + Log.ColAppID = 'AppID' + Log.ColLevel = 'Nivel' + Log.ColMessage = 'Mensaje' + Log.ColUser = 'Usuario' + Log.ColDate = 'Fecha' + Log.BtFilter = '&Aplicar Filtro' + Log.BtDelete = '&Borrar Bit'#225'cora' + Log.BtClose = '&Cerrar' + Log.PromptDelete = + #191'Est'#225' seguro de Eliminar todos todos los registros de Bit'#225'cora s' + + 'eleccionados?' + Log.PromptDelete_WindowCaption = 'Confirmaci'#243'n' + Log.OptionUserAll = 'Todos' + Log.OptionLevelLow = 'Bajo' + Log.OptionLevelNormal = 'Normal' + Log.OptionLevelHigh = 'Alto' + Log.OptionLevelCritic = 'Cr'#237'tico' + Log.DeletePerformed = + 'Borrado de registros de bit'#225'cora realizado: Usuario = "%s" | Fec' + + 'ha = %s a %s | Nivel <= %s' + UsersForm.WindowCaption = 'Seguridad' + UsersForm.LabelDescription = 'Administraci'#243'n de Usuarios' + UsersForm.ColName = 'Nombre' + UsersForm.ColLogin = 'Usuario' + UsersForm.ColEmail = 'Correo' + UsersForm.BtAdd = '&Nuevo' + UsersForm.BtChange = '&Editar' + UsersForm.BtDelete = 'E&liminar' + UsersForm.PromptDelete = #191'Est'#225' seguro de Eliminar al Usuario "%s"?' + UsersForm.PromptDelete_WindowCaption = 'Eliminar usuario' + UsersForm.BtRights = '&Accesos' + UsersForm.BtPassword = 'C&ontrase'#241'a' + UsersForm.BtClose = '&Cerrar' + AddChangeUser.WindowCaption = 'Administraci'#243'n de Usuarios' + AddChangeUser.LabelAdd = 'Nuevo Usuario' + AddChangeUser.LabelChange = 'Editar Usuario' + AddChangeUser.LabelName = 'Nombre:' + AddChangeUser.LabelLogin = 'Usuario: ' + AddChangeUser.LabelEmail = 'Correo: ' + AddChangeUser.LabelPerfil = 'Perfil: ' + AddChangeUser.CheckPrivileged = 'Usuario Privilegiado' + AddChangeUser.BtSave = '&Guardar' + AddChangeUser.BtCancel = 'Cancelar' + AddChangeUser.CheckExpira = 'Senha do usu'#225'rio n'#227'o expira' + AddChangeUser.Day = 'Dias' + AddChangeUser.ExpiredIn = 'Expira em' + AddChangeProfile.WindowCaption = 'Perfiles de Usuarios' + AddChangeProfile.LabelAdd = 'Nuevo Perfil' + AddChangeProfile.LabelChange = 'Editar Perfil' + AddChangeProfile.LabelName = 'Descripci'#243'n: ' + AddChangeProfile.BtSave = '&Guardar' + AddChangeProfile.BtCancel = 'Cancelar' + UsersProfile.WindowCaption = 'Seguridad' + UsersProfile.LabelDescription = 'Perfil de Usuario' + UsersProfile.ColProfile = 'Perfil' + UsersProfile.BtAdd = '&Nuevo' + UsersProfile.BtChange = '&Editar' + UsersProfile.BtDelete = 'E&liminar' + UsersProfile.BtRights = '&Accesos' + UsersProfile.PromptDelete = + 'Existe(n) usuario(s) con el Perfil "%s". '#191'Est'#225' seguro de elimina' + + 'r el perfil?' + UsersProfile.PromptDelete_WindowCaption = 'Eliminar perfil' + UsersProfile.BtClose = '&Cerrar' + Rights.WindowCaption = 'Seguridad' + Rights.LabelUser = 'Permisos de Usuario : ' + Rights.LabelProfile = 'Permisos del Perfil : ' + Rights.PageMenu = 'Elementos del Men'#250 + Rights.PageActions = 'Acciones' + Rights.PageControls = 'Controles' + Rights.BtUnlock = '&Permitir' + Rights.BtLock = '&Bloquear' + Rights.BtSave = '&Guardar' + Rights.BtCancel = '&Cancelar' + ChangePassword.WindowCaption = 'Seguridad' + ChangePassword.LabelDescription = 'Cambiar Contrase'#241'a' + ChangePassword.LabelCurrentPassword = 'Contrase'#241'a Actual:' + ChangePassword.LabelNewPassword = 'Nueva Contrase'#241'a:' + ChangePassword.LabelConfirm = 'Confirme Contrase'#241'a:' + ChangePassword.BtSave = '&Guardar' + ChangePassword.BtCancel = 'Cancelar' + ResetPassword.WindowCaption = 'Ingrese Contrase'#241'a de Usuario: "%s"' + ResetPassword.LabelPassword = 'Contrase'#241'a: ' + History.Evento_Insert = 'Nuevo' + History.Evento_Delete = 'Eliminar' + History.Evento_Edit = 'Editar' + History.Evento_NewRecord = 'Nuevo registro' + History.Hist_All = 'Todos' + History.Msg_LimpHistorico = 'Excluir el contenido entero del hist'#243'rico ?' + History.Msg_MensConfirma = 'Confirme' + History.Msg_LogEmptyHistory = 'El usuario %s borra la historia de mesa en %s ' + History.LabelDescricao = 'Hist'#243'rico de tabelas' + History.LabelUser = 'Usuario' + History.LabelForm = 'Formul'#225'rio' + History.LabelEvento = 'Evento' + History.LabelTabela = 'Tabela' + History.LabelDataEvento = 'Data' + History.LabelHoraEvento = 'Hora' + History.Msg_NewRecord = '%s Inserte el nuevo registro' + History.Hist_MsgExceptPropr = 'Por favor informe la propiedad %s' + History.Hist_BtnFiltro = '&Aplicar Filtro' + History.Hist_BtnExcluir = '&Borrar Hist'#243'rico' + History.Hist_BtnFechar = '&Cerrar' + TypeFieldsDB.Type_VarChar = 'VarChar' + TypeFieldsDB.Type_Char = 'Char' + TypeFieldsDB.Type_Int = 'Int' + TypeFieldsDB.Type_MemoField = 'BLOB SUB_TYPE 1 SEGMENT SIZE 1024' + Language = ucSpanish + Left = 40 + Top = 16 + end + object rda_Usuarios: TDARemoteDataAdapter + GetSchemaCall.RemoteService = srvUsuarios + GetDataCall.RemoteService = srvUsuarios + UpdateDataCall.RemoteService = srvUsuarios + GetScriptsCall.RemoteService = srvUsuarios + RemoteService = srvUsuarios + DataStreamer = Bin2DataStreamer + Left = 176 + Top = 16 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 40 + Top = 144 + end + object tbl_USUARIOS: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_USUARIOS_ID' + Required = True + DictionaryEntry = 'USUARIOS_ID' + InPrimaryKey = True + end + item + Name = 'USERNAME' + DataType = datString + Size = 30 + DisplayLabel = 'Nombre' + DictionaryEntry = 'USUARIOS_USERNAME' + end + item + Name = 'LOGIN' + DataType = datString + Size = 30 + DisplayLabel = 'Login' + DictionaryEntry = 'USUARIOS_LOGIN' + end + item + Name = 'PASS' + DataType = datString + Size = 250 + DisplayLabel = 'Password' + DictionaryEntry = 'USUARIOS_PASS' + end + item + Name = 'PASSEXPIRED' + DataType = datDateTime + DisplayLabel = 'Expiraci'#243'n de password' + DictionaryEntry = 'USUARIOS_PASSEXPIRED' + end + item + Name = 'BLOQUEADO' + DataType = datSmallInt + DisplayLabel = 'Bloqueado' + DictionaryEntry = 'USUARIOS_BLOQUEADO' + end + item + Name = 'EMAIL' + DataType = datString + Size = 150 + DisplayLabel = 'Correo electr'#243'nico' + DictionaryEntry = 'USUARIOS_EMAIL' + end + item + Name = 'USERDAYSSUN' + DataType = datInteger + DisplayLabel = 'USUARIOS_USERDAYSSUN' + DictionaryEntry = 'USUARIOS_USERDAYSSUN' + end + item + Name = 'PRIVILEGED' + DataType = datInteger + DisplayLabel = 'Privilegiado' + DictionaryEntry = 'USUARIOS_PRIVILEGED' + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + DisplayLabel = 'Tipo' + DictionaryEntry = 'USUARIOS_TIPO' + end + item + Name = 'ID_PERFIL' + DataType = datInteger + DictionaryEntry = 'USUARIOS_ID_PERFIL' + end + item + Name = 'CHECKSUM' + DataType = datString + Size = 250 + DisplayLabel = 'Checksum' + DictionaryEntry = 'USUARIOS_CHECKSUM' + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Usuarios + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'USUARIOS' + IndexDefs = <> + Left = 176 + Top = 80 + end + object ds_USUARIOS: TDADataSource + DataSet = tbl_USUARIOS.Dataset + DataTable = tbl_USUARIOS + Left = 176 + Top = 136 + end + object tbl_PERFILES: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_USUARIOS_ID' + Required = True + DictionaryEntry = 'PERFILES_ID' + InPrimaryKey = True + end + item + Name = 'USERNAME' + DataType = datString + Size = 30 + DisplayLabel = 'Nombre' + DictionaryEntry = 'PERFILES_USERNAME' + end + item + Name = 'LOGIN' + DataType = datString + Size = 30 + DisplayLabel = 'Login' + DictionaryEntry = 'PERFILES_LOGIN' + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + DisplayLabel = 'Tipo' + DictionaryEntry = 'PERFILES_TIPO' + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Usuarios + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'PERFILES' + IndexDefs = <> + Left = 272 + Top = 80 + end + object ds_PERFILES: TDADataSource + DataSet = tbl_PERFILES.Dataset + DataTable = tbl_PERFILES + Left = 272 + Top = 136 + end +end diff --git a/Source/ApplicationBase/Usuarios/Data/uDataModuleUsuarios.pas b/Source/ApplicationBase/Usuarios/Data/uDataModuleUsuarios.pas new file mode 100644 index 0000000..05208e9 --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Data/uDataModuleUsuarios.pas @@ -0,0 +1,461 @@ +unit uDataModuleUsuarios; + +interface + +uses + SysUtils, Classes, DB, DBClient, uDADataTable, + FactuGES_Intf, uIntegerListUtils, uBizEmpresas, + UCBase, UCDataConnector, uUCROConn, uDARemoteDataAdapter, + uDARemoteCommand, uROClient, uRORemoteService, uDADataStreamer, + uDABin2DataStreamer, uDAScriptingProvider, uIDataModuleUsuarios, UCSettings, + uDataModuleBase, uDAInterfaces, uDAMemDataTable, uBizUsuarios; + +type + TDataModuleUsuarios = class(TDataModuleBase, IDataModuleUsuarios) + srvUsuarios: TRORemoteService; + UCSettingsSpanish: TUCSettings; + rda_Usuarios: TDARemoteDataAdapter; + Bin2DataStreamer: TDABin2DataStreamer; + tbl_USUARIOS: TDAMemDataTable; + ds_USUARIOS: TDADataSource; + tbl_PERFILES: TDAMemDataTable; + ds_PERFILES: TDADataSource; + procedure DataModuleCreate(Sender: TObject); + private + procedure InicializarCamposUserControl(AUserControl: TUserControl); + procedure InicializarSettingsUserControl(AUserControl: TUserControl); + function CreateConnectorInstance : TUCDataConnector; + public + function GetUsuario(const ID : Integer) : IBizUsuario; + function NuevoUsuario : IBizUsuario; + function GetUsuarios : IBizUsuario; + + function NuevoPerfil : IBizPerfilUsuario; + function GetPerfiles : IBizPerfilUsuario; + function GetPerfil (const ID : Integer) : IBizPerfilUsuario; + + procedure InicializarUserControl (AUserControl : TUserControl); + end; + + +implementation + +{$R *.DFM} + +uses + Forms, Controls, uDataTableUtils, uDataModuleConexion, + Dialogs, Windows, uEmpresasController, cxControls, + schUsuariosClient_Intf; + +{ TDataModuleUsuarios } + +function TDataModuleUsuarios.CreateConnectorInstance: TUCDataConnector; +begin + // El propietario (Owner) es Application para que se encarge de la + // liberacin del conector que estamos creando. + Result := TUCROConn.Create(Application); + with TUCROConn(Result) do + begin + ROServiceName := srvUsuarios.ServiceName; + ROChannel := dmConexion.ROChannel; + ROMessage := dmConexion.ROMessage; + end; +end; + +function TDataModuleUsuarios.NuevoPerfil: IBizPerfilUsuario; +begin + Result := GetPerfil(ID_NULO) +end; + +function TDataModuleUsuarios.NuevoUsuario: IBizUsuario; +begin + Result := GetUsuario(ID_NULO) +end; + +procedure TDataModuleUsuarios.DataModuleCreate(Sender: TObject); +begin + inherited; + srvUsuarios.Channel := dmConexion.Channel; + srvUsuarios.Message := dmConexion.Message; +end; + +function TDataModuleUsuarios.GetPerfil(const ID: Integer): IBizPerfilUsuario; +begin + ShowHourglassCursor; + try + Result := Self.GetPerfiles; + + with Result.DataTable.DynamicWhere do + begin + Clear; + // (ID = :ID) + Expression := NewBinaryExpression(NewField('', fld_PERFILESID), NewConstant(ID, datInteger), dboEqual); + end; + finally + HideHourglassCursor; + end; +end; + +function TDataModuleUsuarios.GetPerfiles: IBizPerfilUsuario; +var + AUsuarios : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AUsuarios := CloneDataTable(tbl_PERFILES); + AUsuarios.BusinessRulesID := BIZ_CLIENT_PERFIL_USUARIO; + + Result := (AUsuarios as IBizPerfilUsuario); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleUsuarios.GetUsuario(const ID: Integer): IBizUsuario; +begin + ShowHourglassCursor; + try + Result := Self.GetUsuarios; + + with Result.DataTable.DynamicWhere do + begin + Clear; + // (ID = :ID) + Expression := NewBinaryExpression(NewField('', fld_USUARIOSID), NewConstant(ID, datInteger), dboEqual); + end; + finally + HideHourglassCursor; + end; +end; + +function TDataModuleUsuarios.GetUsuarios: IBizUsuario; +var + AUsuarios : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AUsuarios := CloneDataTable(tbl_Usuarios); + AUsuarios.BusinessRulesID := BIZ_CLIENT_USUARIO; + + Result := (AUsuarios as IBizUsuario); + finally + HideHourglassCursor; + end; +end; + +procedure TDataModuleUsuarios.InicializarCamposUserControl( + AUserControl: TUserControl); +begin + if not Assigned(AUserControl) then + raise Exception.Create('UserControl no asignado (InicializarUserControl)'); + + with AUserControl do + begin + DataConnector := CreateConnectorInstance; + + with TableUsers do + begin + TableName := nme_USUARIOS; + FieldUserID := fld_USUARIOSID; + FieldUserName := fld_USUARIOSUSERNAME; + FieldLogin := fld_USUARIOSLOGIN; + FieldPassword := fld_USUARIOSPASS; + FieldEmail := fld_USUARIOSEMAIL; + FieldPrivileged := fld_USUARIOSPRIVILEGED; + FieldTypeRec := fld_USUARIOSTIPO; + FieldProfile := fld_USUARIOSID_PERFIL; + FieldUserExpired := fld_USUARIOSBLOQUEADO; + FieldDateExpired := fld_USUARIOSPASSEXPIRED; + FieldUserDaysSun := fld_USUARIOSUSERDAYSSUN; + FieldKey := fld_USUARIOSCHECKSUM; + end; + + with TableRights do + begin + TableName := nme_PERMISOS; + FieldUserID := fld_PERMISOSID_USUARIO; + FieldModule := fld_PERMISOSMODULO; + FieldComponentName := fld_PERMISOSNOMBRECOMP; + FieldFormName := fld_PERMISOSEXNOMBREFORM; + FieldKey := fld_PERMISOSCHECKSUM; + end; + + with TableUsersLogged do + begin + TableName := nme_USUARIOS_LOGON; + FieldLogonID := fld_USUARIOS_LOGONLOGONID; + FieldUserID := fld_USUARIOS_LOGONID_USUARIO; + FieldApplicationID := fld_USUARIOS_LOGONAPLICACION; + FieldMachineName := fld_USUARIOS_LOGONEQUIPO; + FieldData := fld_USUARIOS_LOGONDATA; + end; + + with TableHistory do + begin + TableName := nme_USUARIOS_EVENTOS; + FieldApplicationID := fld_USUARIOS_EVENTOSAPLICACION; + FieldUserID := fld_USUARIOS_EVENTOSID_USUARIO; + FieldEventDate := fld_USUARIOS_EVENTOSFECHA; + FieldEventTime := fld_USUARIOS_EVENTOSHORA; + FieldForm := fld_USUARIOS_EVENTOSFORM; + FieldCaptionForm := fld_USUARIOS_EVENTOSTITULO_FORM; + FieldEvent := fld_USUARIOS_EVENTOSEVENTO; + FieldObs := fld_USUARIOS_EVENTOSNOTAS; + FieldTableName := fld_USUARIOS_EVENTOSTNAME; + end; + + end; +end; + +procedure TDataModuleUsuarios.InicializarSettingsUserControl( + AUserControl: TUserControl); +var + SourceSettings : TUCSettings; +begin + SourceSettings := UCSettingsSpanish; + + with AUserControl do + begin + with UserSettings.CommonMessages do + begin + BlankPassword := SourceSettings.CommonMessages.BlankPassword; + PasswordChanged := SourceSettings.CommonMessages.PasswordChanged; + InitialMessage.Text := SourceSettings.CommonMessages.InitialMessage.Text; + MaxLoginAttemptsError := SourceSettings.CommonMessages.MaxLoginAttemptsError; + InvalidLogin := SourceSettings.CommonMessages.InvalidLogin; + AutoLogonError := SourceSettings.CommonMessages.AutoLogonError; + UsuarioExiste := SourceSettings.CommonMessages.UsuarioExiste; // Luiz Benevenuto 20/04/06 + PasswordExpired := SourceSettings.CommonMessages.PasswordExpired; // vicente barros leonel + ForcaTrocaSenha := SourceSettings.CommonMessages.ForcaTrocaSenha; + end; + + with UserSettings.Login do + begin + BtCancel := SourceSettings.Login.BtCancel; + BtOK := SourceSettings.Login.BtOK; + LabelPassword := SourceSettings.Login.LabelPassword; + LabelUser := SourceSettings.Login.LabelUser; + WindowCaption := SourceSettings.Login.WindowCaption; + LabelTentativa := SourceSettings.Login.LabelTentativa; + LabelTentativas := SourceSettings.Login.LabelTentativas; + + if Assigned(SourceSettings.Login.LeftImage.Bitmap) then + LeftImage.Bitmap := SourceSettings.Login.LeftImage.Bitmap + else + LeftImage.Bitmap := nil; + + if Assigned(SourceSettings.Login.TopImage.Bitmap) then + TopImage.Bitmap := SourceSettings.Login.TopImage.Bitmap + else + TopImage.Bitmap := nil; + + if Assigned(SourceSettings.Login.BottomImage.Bitmap) then + BottomImage.Bitmap := SourceSettings.Login.BottomImage.Bitmap + else + BottomImage.Bitmap := nil; + end; + + with UserSettings.UsersForm do + begin + WindowCaption := SourceSettings.UsersForm.WindowCaption; + LabelDescription := SourceSettings.UsersForm.LabelDescription; + ColName := SourceSettings.UsersForm.ColName; + ColLogin := SourceSettings.UsersForm.ColLogin; + ColEmail := SourceSettings.UsersForm.ColEmail; + BtAdd := SourceSettings.UsersForm.BtAdd; + BtChange := SourceSettings.UsersForm.BtChange; + BtDelete := SourceSettings.UsersForm.BtDelete; + BtRights := SourceSettings.UsersForm.BtRights; + BtPassword := SourceSettings.UsersForm.BtPassword; + BtClose := SourceSettings.UsersForm.BtClose; + PromptDelete := SourceSettings.UsersForm.PromptDelete; + PromptDelete_WindowCaption := SourceSettings.UsersForm.PromptDelete_WindowCaption; //added by fduenas + end; + + with UserSettings.UsersProfile do + begin + WindowCaption := SourceSettings.UsersProfile.WindowCaption; + LabelDescription := SourceSettings.UsersProfile.LabelDescription; + ColProfile := SourceSettings.UsersProfile.ColProfile; + BtAdd := SourceSettings.UsersProfile.BtAdd; + BtChange := SourceSettings.UsersProfile.BtChange; + BtDelete := SourceSettings.UsersProfile.BtDelete; + BtRights := SourceSettings.UsersProfile.BtRights; //added by fduenas + BtClose := SourceSettings.UsersProfile.BtClose; + PromptDelete := SourceSettings.UsersProfile.PromptDelete; + PromptDelete_WindowCaption := SourceSettings.UsersProfile.PromptDelete_WindowCaption; //added by fduenas + end; + + with UserSettings.AddChangeUser do + begin + WindowCaption := SourceSettings.AddChangeUser.WindowCaption; + LabelAdd := SourceSettings.AddChangeUser.LabelAdd; + LabelChange := SourceSettings.AddChangeUser.LabelChange; + LabelName := SourceSettings.AddChangeUser.LabelName; + LabelLogin := SourceSettings.AddChangeUser.LabelLogin; + LabelEmail := SourceSettings.AddChangeUser.LabelEmail; + CheckPrivileged := SourceSettings.AddChangeUser.CheckPrivileged; + BtSave := SourceSettings.AddChangeUser.BtSave; + BtCancel := SourceSettings.AddChangeUser.BtCancel; + CheckExpira := SourceSettings.AddChangeUser.CheckExpira; + Day := SourceSettings.AddChangeUser.Day; + ExpiredIn := SourceSettings.AddChangeUser.ExpiredIn; + end; + + with UserSettings.AddChangeProfile do + begin + WindowCaption := SourceSettings.AddChangeProfile.WindowCaption; + LabelAdd := SourceSettings.AddChangeProfile.LabelAdd; + LabelChange := SourceSettings.AddChangeProfile.LabelChange; + LabelName := SourceSettings.AddChangeProfile.LabelName; + BtSave := SourceSettings.AddChangeProfile.BtSave; + BtCancel := SourceSettings.AddChangeProfile.BtCancel; + end; + + with UserSettings.Rights do + begin + WindowCaption := SourceSettings.Rights.WindowCaption; + LabelUser := SourceSettings.Rights.LabelUser; + LabelProfile := SourceSettings.Rights.LabelProfile; + PageMenu := SourceSettings.Rights.PageMenu; + PageActions := SourceSettings.Rights.PageActions; + PageControls := SourceSettings.Rights.PageControls; + BtUnlock := SourceSettings.Rights.BtUnlock; + BtLock := SourceSettings.Rights.BtLock; + BtSave := SourceSettings.Rights.BtSave; + BtCancel := SourceSettings.Rights.BtCancel; + end; + + with UserSettings.ChangePassword do + begin + WindowCaption := SourceSettings.ChangePassword.WindowCaption; + LabelDescription := SourceSettings.ChangePassword.LabelDescription; + LabelCurrentPassword := SourceSettings.ChangePassword.LabelCurrentPassword; + LabelNewPassword := SourceSettings.ChangePassword.LabelNewPassword; + LabelConfirm := SourceSettings.ChangePassword.LabelConfirm; + BtSave := SourceSettings.ChangePassword.BtSave; + BtCancel := SourceSettings.ChangePassword.BtCancel; + end; + + with UserSettings.CommonMessages.ChangePasswordError do + begin + InvalidCurrentPassword := SourceSettings.CommonMessages.ChangePasswordError.InvalidCurrentPassword; + NewPasswordError := SourceSettings.CommonMessages.ChangePasswordError.NewPasswordError; + NewEqualCurrent := SourceSettings.CommonMessages.ChangePasswordError.NewEqualCurrent; + PasswordRequired := SourceSettings.CommonMessages.ChangePasswordError.PasswordRequired; + MinPasswordLength := SourceSettings.CommonMessages.ChangePasswordError.MinPasswordLength; + InvalidNewPassword := SourceSettings.CommonMessages.ChangePasswordError.InvalidNewPassword; + end; + + with UserSettings.ResetPassword do + begin + WindowCaption := SourceSettings.ResetPassword.WindowCaption; + LabelPassword := SourceSettings.ResetPassword.LabelPassword; + end; + + with UserSettings.Log do + begin + WindowCaption := SourceSettings.Log.WindowCaption; + LabelDescription := SourceSettings.Log.LabelDescription; + LabelUser := SourceSettings.Log.LabelUser; + LabelDate := SourceSettings.Log.LabelDate; + LabelLevel := SourceSettings.Log.LabelLevel; + ColLevel := SourceSettings.Log.ColLevel; + ColMessage := SourceSettings.Log.ColMessage; + ColUser := SourceSettings.Log.ColUser; + ColDate := SourceSettings.Log.ColDate; + BtFilter := SourceSettings.Log.BtFilter; + BtDelete := SourceSettings.Log.BtDelete; + BtClose := SourceSettings.Log.BtClose; + PromptDelete := SourceSettings.Log.PromptDelete; + PromptDelete_WindowCaption := SourceSettings.Log.PromptDelete_WindowCaption; //added by fduenas + OptionUserAll := SourceSettings.Log.OptionUserAll; //added by fduenas + OptionLevelLow := SourceSettings.Log.OptionLevelLow; //added by fduenas + OptionLevelNormal := SourceSettings.Log.OptionLevelNormal; //added by fduenas + OptionLevelHigh := SourceSettings.Log.OptionLevelHigh; //added by fduenas + OptionLevelCritic := SourceSettings.Log.OptionLevelCritic; //added by fduenas + DeletePerformed := SourceSettings.Log.DeletePerformed; //added by fduenas + end; + + with UserSettings.AppMessages do + begin + MsgsForm_BtNew := SourceSettings.AppMessages.MsgsForm_BtNew; + MsgsForm_BtReplay := SourceSettings.AppMessages.MsgsForm_BtReplay; + MsgsForm_BtForward := SourceSettings.AppMessages.MsgsForm_BtForward; + MsgsForm_BtDelete := SourceSettings.AppMessages.MsgsForm_BtDelete; + MsgsForm_BtClose := SourceSettings.AppMessages.MsgsForm_BtClose; //added by fduenas + MsgsForm_WindowCaption := SourceSettings.AppMessages.MsgsForm_WindowCaption; + MsgsForm_ColFrom := SourceSettings.AppMessages.MsgsForm_ColFrom; + MsgsForm_ColSubject := SourceSettings.AppMessages.MsgsForm_ColSubject; + MsgsForm_ColDate := SourceSettings.AppMessages.MsgsForm_ColDate; + MsgsForm_PromptDelete := SourceSettings.AppMessages.MsgsForm_PromptDelete; + MsgsForm_PromptDelete_WindowCaption := SourceSettings.AppMessages.MsgsForm_PromptDelete_WindowCaption; //added by fduenas + MsgsForm_NoMessagesSelected := SourceSettings.AppMessages.MsgsForm_NoMessagesSelected; //added by fduenas + MsgsForm_NoMessagesSelected_WindowCaption := SourceSettings.AppMessages.MsgsForm_NoMessagesSelected_WindowCaption; //added by fduenas + + MsgRec_BtClose := SourceSettings.AppMessages.MsgRec_BtClose; + MsgRec_WindowCaption := SourceSettings.AppMessages.MsgRec_WindowCaption; + MsgRec_Title := SourceSettings.AppMessages.MsgRec_Title; + MsgRec_LabelFrom := SourceSettings.AppMessages.MsgRec_LabelFrom; + MsgRec_LabelDate := SourceSettings.AppMessages.MsgRec_LabelDate; + MsgRec_LabelSubject := SourceSettings.AppMessages.MsgRec_LabelSubject; + MsgRec_LabelMessage := SourceSettings.AppMessages.MsgRec_LabelMessage; + MsgSend_BtSend := SourceSettings.AppMessages.MsgSend_BtSend; + MsgSend_BtCancel := SourceSettings.AppMessages.MsgSend_BtCancel; + MsgSend_WindowCaption := SourceSettings.AppMessages.MsgSend_WindowCaption; + MsgSend_Title := SourceSettings.AppMessages.MsgSend_Title; + MsgSend_GroupTo := SourceSettings.AppMessages.MsgSend_GroupTo; + MsgSend_RadioUser := SourceSettings.AppMessages.MsgSend_RadioUser; + MsgSend_RadioAll := SourceSettings.AppMessages.MsgSend_RadioAll; + MsgSend_GroupMessage := SourceSettings.AppMessages.MsgSend_GroupMessage; + MsgSend_LabelSubject := SourceSettings.AppMessages.MsgSend_LabelSubject; //added by fduenas + MsgSend_LabelMessageText := SourceSettings.AppMessages.MsgSend_LabelMessageText; //added by fduenas + end; + + With UserSettings.History do + Begin + Evento_edit := SourceSettings.History.Evento_edit; + Evento_NewRecord := SourceSettings.History.Evento_NewRecord; + Evento_Insert := SourceSettings.History.Evento_Insert; + Evento_delete := SourceSettings.History.Evento_Delete; + LabelTabela := SourceSettings.History.LabelTabela; + Msg_LogEmptyHistory := SourceSettings.History.Msg_LogEmptyHistory; + Msg_MensConfirma := SourceSettings.History.Msg_MensConfirma; + LabelDescricao := SourceSettings.History.LabelDescricao; + Hist_BtnExcluir := SourceSettings.History.Hist_BtnExcluir; + Hist_BtnFiltro := SourceSettings.History.Hist_BtnFiltro; + LabelForm := SourceSettings.History.LabelForm; + Hist_BtnFechar := SourceSettings.History.Hist_BtnFechar; + LabelDataEvento := SourceSettings.History.LabelDataEvento; + LabelEvento := SourceSettings.History.LabelEvento; + Msg_NewRecord := SourceSettings.History.Msg_NewRecord; + Hist_All := SourceSettings.History.Hist_All; + Msg_LimpHistorico := SourceSettings.History.Msg_LimpHistorico; + LabelHoraEvento := SourceSettings.History.LabelHoraEvento; + LabelUser := SourceSettings.History.LabelUser; + Hist_MsgExceptPropr := SourceSettings.History.Hist_MsgExceptPropr; + End; + + with UserSettings.TypeFieldsDB do + Begin + Type_VarChar := SourceSettings.TypeFieldsDB.Type_VarChar; + Type_Char := SourceSettings.TypeFieldsDB.Type_Char; + Type_Int := SourceSettings.TypeFieldsDB.Type_Int; + Type_MemoField := SourceSettings.TypeFieldsDB.Type_MemoField; + end; + + UserSettings.WindowsPosition := SourceSettings.WindowsPosition; + end; +end; + +procedure TDataModuleUsuarios.InicializarUserControl(AUserControl: TUserControl); +begin + if Assigned(AUserControl) then + begin + InicializarCamposUserControl(AUserControl); + InicializarSettingsUserControl(AUserControl); + end; +end; + + +end. diff --git a/Source/ApplicationBase/Usuarios/Data/uUCROConn.dcu b/Source/ApplicationBase/Usuarios/Data/uUCROConn.dcu new file mode 100644 index 0000000..8e5e286 Binary files /dev/null and b/Source/ApplicationBase/Usuarios/Data/uUCROConn.dcu differ diff --git a/Source/ApplicationBase/Usuarios/Data/uUCROConn.pas b/Source/ApplicationBase/Usuarios/Data/uUCROConn.pas new file mode 100644 index 0000000..34df3fd --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Data/uUCROConn.pas @@ -0,0 +1,261 @@ +{----------------------------------------------------------------------------- + Unit Name: UCMidasConn + Author : Luiz Benevenuto + Date : 31/07/2005 + Purpose : Midas Suporte ( DataSnap ) + E-mail : luiz@siffra.com + URL : www.siffra.com + UC : www.usercontrol.com.br + Forum : http://www.usercontrol.com.br/modules.php?name=Forums + + registered in UCMidasConnReg.pas +-----------------------------------------------------------------------------} + +unit uUCROConn; + +interface + +//{$I 'UserControl.inc'} + +uses + Classes, + DB, + DBClient, + SysUtils, + uRORemoteService, uDADataStreamer, uROBinMessage, uROWinInetHttpChannel, + uDABin2DataStreamer, uDARemoteDataAdapter, UCDataConnector, uROClient; + +type + TUCROConn = class(TUCDataConnector) + private + FMessage: TROBinMessage; + FChannel: TROWinInetHTTPChannel; + FRemoteService: TRORemoteService; + FDataAdapter : TDARemoteDataAdapter; + FDataStreamer : TDABin2DataStreamer; + procedure SetServiceName(const Value: String); + function GetServiceName: String; + procedure SetChannel(const Value: TROWinInetHTTPChannel); + procedure SetMessage(const Value: TROBinMessage); + protected + procedure Notification(AComponent: TComponent; Operation: TOperation); override; + procedure RefreshROConnection; + public + function GetDBObjectName: String; override; + function GetTransObjectName: String; override; + function UCFindDataConnection: Boolean; override; + function UCFindTable(const Tablename: String): Boolean; override; + function UCGetSQLDataset(FSQL: String): TDataset; override; + procedure UCExecSQL(FSQL: String); override; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + published + property ROServiceName : String read GetServiceName write SetServiceName; + property ROMessage : TROBinMessage read FMessage write SetMessage; + property ROChannel : TROWinInetHTTPChannel read FChannel write SetChannel; + end; + +implementation + +uses + Forms, Dialogs, FactuGES_Intf, uROTypes, uDAClasses, uDADataTable, + uDACDSDataTable, uROEncryption; + +{ TUCROConn } + +procedure CopyRecord(Source, Destination: TDataSet); +var Ind:longint; + SField, DField: TField; +begin + for Ind := 0 to Source.FieldCount - 1 do + begin + SField := Source.Fields[ Ind ]; + DField := Destination.FindField(SField.FieldName); + if (DField <> nil) and (DField.FieldKind = fkData) and + not DField.ReadOnly then + if (SField.DataType = ftString) or + (SField.DataType <> DField.DataType) then + DField.AsString := SField.AsString + else + DField.Assign( SField ) + end; +end; + + +constructor TUCROConn.Create(AOwner: TComponent); +begin + inherited; + FRemoteService := TRORemoteService.Create(nil); + FDataStreamer := TDABin2DataStreamer.Create(nil); + FDataAdapter := TDARemoteDataAdapter.Create(nil); + FDataAdapter.DataStreamer := FDataStreamer; + FDataAdapter.SetupDefaultRequest; +end; + +destructor TUCROConn.Destroy; +begin + FreeAndNil(FRemoteService); + FreeAndNil(FDataAdapter); + FreeAndNil(FDataStreamer); + inherited; +end; + +function TUCROConn.GetDBObjectName: String; +begin + if Assigned(FRemoteService) then + begin + if Owner = FRemoteService.Owner then + Result := FRemoteService.Name + else + Result := FRemoteService.Owner.Name + '.' + FRemoteService.Name; + end + else + Result := ''; +end; + +function TUCROConn.GetServiceName: String; +begin + Result := FRemoteService.ServiceName; +end; + +function TUCROConn.GetTransObjectName: String; +begin + Result := ''; +end; + +procedure TUCROConn.Notification(AComponent: TComponent; Operation: TOperation); +begin + if (Operation = opRemove) and (AComponent = FRemoteService) then + begin + FreeAndNil(FDataAdapter); + FRemoteService := nil; + end; + inherited Notification(AComponent, Operation); +end; + +procedure TUCROConn.RefreshROConnection; +begin + with FRemoteService do + begin + FRemoteService.Message := FMessage; + FRemoteService.Channel := FChannel; + + with FDataAdapter do + begin + RemoteService := FRemoteService; + GetSchemaCall.RemoteService := FRemoteService; + GetDataCall.RemoteService := FRemoteService; + UpdateDataCall.RemoteService := FRemoteService; + GetScriptsCall.RemoteService := FRemoteService; + end; + end; +end; + +procedure TUCROConn.SetChannel(const Value: TROWinInetHTTPChannel); +begin + FChannel := Value; + RefreshROConnection; +end; + +procedure TUCROConn.SetMessage(const Value: TROBinMessage); +begin + FMessage := Value; + RefreshROConnection; +end; + +procedure TUCROConn.SetServiceName(const Value: String); +begin + FRemoteService.ServiceName := Value; +end; + +procedure TUCROConn.UCExecSQL(FSQL: String); +var + ASQL : String; +begin + ASQL := AnsiToUtf8(FSQL); + (FRemoteService as IsrvUsuarios).SQLExecuteCommand(ASQL); +end; + +function TUCROConn.UCFindDataConnection: Boolean; +begin + Result := False; + if Assigned(FRemoteService) then + begin + FRemoteService.CheckCanConnect; + Result := True; + end; +end; + +function TUCROConn.UCFindTable(const Tablename: String): Boolean; +var + ASchema : TDASchema; +begin + ASchema := FDataAdapter.ReadSchema; + try + Result := Assigned(ASchema.FindDataset(TableName)); + finally + FreeAndNil(ASchema); + end; +end; + + +function TUCROConn.UCGetSQLDataset(FSQL: String): TDataset; +var + AStream: TMemoryStream; + ADataStreamer: TDABin2DataStreamer; + ADataTable: TDACDSDataTable; + ADataSet : TClientDataset; + + procedure _CopiarDataSet; + begin + ADataSet.FieldDefs.Assign(ADataTable.DataSet.FieldDefs); + ADataSet.CreateDataSet; + + ADataSet.Open; + while not ADataTable.EOF do + begin + ADataSet.Append; + CopyRecord(ADataTable.DataSet, ADataSet); + ADataSet.Post; + ADataTable.Next; + end; + end; +begin + Result := NIL; + ADataStreamer := TDABin2DataStreamer.Create(NIL); + AStream := (FRemoteService as IsrvUsuarios).SQLGetData(FSQL, True, -1); + + if AStream <> nil then + try + ADataTable := TDACDSDataTable.Create(NIL); + + // Generar un nombre aleatorio + Randomize; + ADataTable.Name := 'SQLResult' + '_' + IntToStr(Random(MAXINT)); + + ADataTable.LocalDataStreamer := ADataStreamer; + ADataTable.RemoteFetchEnabled := False; + try + ADataStreamer.ReadDataset(AStream, ADataTable, True); + ADataTable.Open; + + { OJO!! Trapicheo!!!!! + Forzamos a recuperar en Dataset todas las tuplas + recorriendonos toda la tabla.} + ADataTable.Last; + ADataTable.First; + + ADataSet := TClientDataset.Create(NIL); + _CopiarDataSet; + Result := ADataSet; + finally + FreeAndNIL(ADataTable); + end; + finally + FreeAndNIL(AStream); + FreeAndNIL(ADataStreamer); + end; +end; + +end. + diff --git a/Source/ApplicationBase/Usuarios/Model/Data/uIDataModuleUsuarios.dcu b/Source/ApplicationBase/Usuarios/Model/Data/uIDataModuleUsuarios.dcu new file mode 100644 index 0000000..893a857 Binary files /dev/null and b/Source/ApplicationBase/Usuarios/Model/Data/uIDataModuleUsuarios.dcu differ diff --git a/Source/ApplicationBase/Usuarios/Model/Data/uIDataModuleUsuarios.pas b/Source/ApplicationBase/Usuarios/Model/Data/uIDataModuleUsuarios.pas new file mode 100644 index 0000000..c3038ca --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Model/Data/uIDataModuleUsuarios.pas @@ -0,0 +1,25 @@ +unit uIDataModuleUsuarios; + +interface + +uses + UCBase, UCSettings, uBizUsuarios; + +type + IDataModuleUsuarios = interface + ['{C0A8481F-4920-414D-A906-EE1EB18DE946}'] + procedure InicializarUserControl (AUserControl : TUserControl); + + function GetUsuario(const ID : Integer) : IBizUsuario; + function NuevoUsuario : IBizUsuario; + function GetUsuarios : IBizUsuario; + + function NuevoPerfil : IBizPerfilUsuario; + function GetPerfiles : IBizPerfilUsuario; + function GetPerfil(const ID : Integer) : IBizPerfilUsuario; + end; + +implementation + +end. + diff --git a/Source/ApplicationBase/Usuarios/Model/schUsuariosClient_Intf.dcu b/Source/ApplicationBase/Usuarios/Model/schUsuariosClient_Intf.dcu new file mode 100644 index 0000000..629e38a Binary files /dev/null and b/Source/ApplicationBase/Usuarios/Model/schUsuariosClient_Intf.dcu differ diff --git a/Source/ApplicationBase/Usuarios/Model/schUsuariosClient_Intf.pas b/Source/ApplicationBase/Usuarios/Model/schUsuariosClient_Intf.pas new file mode 100644 index 0000000..d2fcc86 --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Model/schUsuariosClient_Intf.pas @@ -0,0 +1,1646 @@ +unit schUsuariosClient_Intf; + +interface + +uses + Classes, DB, schBase_Intf, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_USUARIOS = '{9341804B-BBFF-4F3F-8BD4-A29AF93F9C1D}'; + RID_USUARIOS_EVENTOS = '{FB1040E9-41A7-42B2-A8F5-23B08BAB3A83}'; + RID_USUARIOS_LOGON = '{EF97ED84-824F-4463-9085-E4D4DC59FF5B}'; + RID_PERMISOS = '{78F02061-1646-47FB-83AC-895F7885BADB}'; + RID_PERMISOSEX = '{2AD42BE2-4190-4361-AD0D-4179A940DEFB}'; + RID_PERFILES = '{790489AB-2711-41CE-B9EE-E1EC9FCBBEE3}'; + + { Data table names } + nme_USUARIOS = 'USUARIOS'; + nme_USUARIOS_EVENTOS = 'USUARIOS_EVENTOS'; + nme_USUARIOS_LOGON = 'USUARIOS_LOGON'; + nme_PERMISOS = 'PERMISOS'; + nme_PERMISOSEX = 'PERMISOSEX'; + nme_PERFILES = 'PERFILES'; + + { USUARIOS fields } + fld_USUARIOSID = 'ID'; + fld_USUARIOSUSERNAME = 'USERNAME'; + fld_USUARIOSLOGIN = 'LOGIN'; + fld_USUARIOSPASS = 'PASS'; + fld_USUARIOSPASSEXPIRED = 'PASSEXPIRED'; + fld_USUARIOSBLOQUEADO = 'BLOQUEADO'; + fld_USUARIOSEMAIL = 'EMAIL'; + fld_USUARIOSUSERDAYSSUN = 'USERDAYSSUN'; + fld_USUARIOSPRIVILEGED = 'PRIVILEGED'; + fld_USUARIOSTIPO = 'TIPO'; + fld_USUARIOSID_PERFIL = 'ID_PERFIL'; + fld_USUARIOSCHECKSUM = 'CHECKSUM'; + + { USUARIOS field indexes } + idx_USUARIOSID = 0; + idx_USUARIOSUSERNAME = 1; + idx_USUARIOSLOGIN = 2; + idx_USUARIOSPASS = 3; + idx_USUARIOSPASSEXPIRED = 4; + idx_USUARIOSBLOQUEADO = 5; + idx_USUARIOSEMAIL = 6; + idx_USUARIOSUSERDAYSSUN = 7; + idx_USUARIOSPRIVILEGED = 8; + idx_USUARIOSTIPO = 9; + idx_USUARIOSID_PERFIL = 10; + idx_USUARIOSCHECKSUM = 11; + + { USUARIOS_EVENTOS fields } + fld_USUARIOS_EVENTOSAPLICACION = 'APLICACION'; + fld_USUARIOS_EVENTOSID_USUARIO = 'ID_USUARIO'; + fld_USUARIOS_EVENTOSFECHA = 'FECHA'; + fld_USUARIOS_EVENTOSHORA = 'HORA'; + fld_USUARIOS_EVENTOSFORM = 'FORM'; + fld_USUARIOS_EVENTOSTITULO_FORM = 'TITULO_FORM'; + fld_USUARIOS_EVENTOSEVENTO = 'EVENTO'; + fld_USUARIOS_EVENTOSNOTAS = 'NOTAS'; + fld_USUARIOS_EVENTOSTNAME = 'TNAME'; + + { USUARIOS_EVENTOS field indexes } + idx_USUARIOS_EVENTOSAPLICACION = 0; + idx_USUARIOS_EVENTOSID_USUARIO = 1; + idx_USUARIOS_EVENTOSFECHA = 2; + idx_USUARIOS_EVENTOSHORA = 3; + idx_USUARIOS_EVENTOSFORM = 4; + idx_USUARIOS_EVENTOSTITULO_FORM = 5; + idx_USUARIOS_EVENTOSEVENTO = 6; + idx_USUARIOS_EVENTOSNOTAS = 7; + idx_USUARIOS_EVENTOSTNAME = 8; + + { USUARIOS_LOGON fields } + fld_USUARIOS_LOGONLOGONID = 'LOGONID'; + fld_USUARIOS_LOGONID_USUARIO = 'ID_USUARIO'; + fld_USUARIOS_LOGONAPLICACION = 'APLICACION'; + fld_USUARIOS_LOGONEQUIPO = 'EQUIPO'; + fld_USUARIOS_LOGONDATA = 'DATA'; + + { USUARIOS_LOGON field indexes } + idx_USUARIOS_LOGONLOGONID = 0; + idx_USUARIOS_LOGONID_USUARIO = 1; + idx_USUARIOS_LOGONAPLICACION = 2; + idx_USUARIOS_LOGONEQUIPO = 3; + idx_USUARIOS_LOGONDATA = 4; + + { PERMISOS fields } + fld_PERMISOSID_USUARIO = 'ID_USUARIO'; + fld_PERMISOSMODULO = 'MODULO'; + fld_PERMISOSNOMBRECOMP = 'NOMBRECOMP'; + fld_PERMISOSCHECKSUM = 'CHECKSUM'; + + { PERMISOS field indexes } + idx_PERMISOSID_USUARIO = 0; + idx_PERMISOSMODULO = 1; + idx_PERMISOSNOMBRECOMP = 2; + idx_PERMISOSCHECKSUM = 3; + + { PERMISOSEX fields } + fld_PERMISOSEXID_USUARIO = 'ID_USUARIO'; + fld_PERMISOSEXMODULO = 'MODULO'; + fld_PERMISOSEXNOMBRECOMP = 'NOMBRECOMP'; + fld_PERMISOSEXNOMBREFORM = 'NOMBREFORM'; + fld_PERMISOSEXCHECKSUM = 'CHECKSUM'; + + { PERMISOSEX field indexes } + idx_PERMISOSEXID_USUARIO = 0; + idx_PERMISOSEXMODULO = 1; + idx_PERMISOSEXNOMBRECOMP = 2; + idx_PERMISOSEXNOMBREFORM = 3; + idx_PERMISOSEXCHECKSUM = 4; + + { PERFILES fields } + fld_PERFILESID = 'ID'; + fld_PERFILESUSERNAME = 'USERNAME'; + fld_PERFILESLOGIN = 'LOGIN'; + fld_PERFILESTIPO = 'TIPO'; + + { PERFILES field indexes } + idx_PERFILESID = 0; + idx_PERFILESUSERNAME = 1; + idx_PERFILESLOGIN = 2; + idx_PERFILESTIPO = 3; + +type + { IUSUARIOS } + IUSUARIOS = interface(IDAStronglyTypedDataTable) + ['{75EA3262-FA70-4578-863B-B5CE05706F7E}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetUSERNAMEValue: String; + procedure SetUSERNAMEValue(const aValue: String); + function GetUSERNAMEIsNull: Boolean; + procedure SetUSERNAMEIsNull(const aValue: Boolean); + function GetLOGINValue: String; + procedure SetLOGINValue(const aValue: String); + function GetLOGINIsNull: Boolean; + procedure SetLOGINIsNull(const aValue: Boolean); + function GetPASSValue: String; + procedure SetPASSValue(const aValue: String); + function GetPASSIsNull: Boolean; + procedure SetPASSIsNull(const aValue: Boolean); + function GetPASSEXPIREDValue: DateTime; + procedure SetPASSEXPIREDValue(const aValue: DateTime); + function GetPASSEXPIREDIsNull: Boolean; + procedure SetPASSEXPIREDIsNull(const aValue: Boolean); + function GetBLOQUEADOValue: SmallInt; + procedure SetBLOQUEADOValue(const aValue: SmallInt); + function GetBLOQUEADOIsNull: Boolean; + procedure SetBLOQUEADOIsNull(const aValue: Boolean); + function GetEMAILValue: String; + procedure SetEMAILValue(const aValue: String); + function GetEMAILIsNull: Boolean; + procedure SetEMAILIsNull(const aValue: Boolean); + function GetUSERDAYSSUNValue: Integer; + procedure SetUSERDAYSSUNValue(const aValue: Integer); + function GetUSERDAYSSUNIsNull: Boolean; + procedure SetUSERDAYSSUNIsNull(const aValue: Boolean); + function GetPRIVILEGEDValue: Integer; + procedure SetPRIVILEGEDValue(const aValue: Integer); + function GetPRIVILEGEDIsNull: Boolean; + procedure SetPRIVILEGEDIsNull(const aValue: Boolean); + function GetTIPOValue: String; + procedure SetTIPOValue(const aValue: String); + function GetTIPOIsNull: Boolean; + procedure SetTIPOIsNull(const aValue: Boolean); + function GetID_PERFILValue: Integer; + procedure SetID_PERFILValue(const aValue: Integer); + function GetID_PERFILIsNull: Boolean; + procedure SetID_PERFILIsNull(const aValue: Boolean); + function GetCHECKSUMValue: String; + procedure SetCHECKSUMValue(const aValue: String); + function GetCHECKSUMIsNull: Boolean; + procedure SetCHECKSUMIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property USERNAME: String read GetUSERNAMEValue write SetUSERNAMEValue; + property USERNAMEIsNull: Boolean read GetUSERNAMEIsNull write SetUSERNAMEIsNull; + property LOGIN: String read GetLOGINValue write SetLOGINValue; + property LOGINIsNull: Boolean read GetLOGINIsNull write SetLOGINIsNull; + property PASS: String read GetPASSValue write SetPASSValue; + property PASSIsNull: Boolean read GetPASSIsNull write SetPASSIsNull; + property PASSEXPIRED: DateTime read GetPASSEXPIREDValue write SetPASSEXPIREDValue; + property PASSEXPIREDIsNull: Boolean read GetPASSEXPIREDIsNull write SetPASSEXPIREDIsNull; + property BLOQUEADO: SmallInt read GetBLOQUEADOValue write SetBLOQUEADOValue; + property BLOQUEADOIsNull: Boolean read GetBLOQUEADOIsNull write SetBLOQUEADOIsNull; + property EMAIL: String read GetEMAILValue write SetEMAILValue; + property EMAILIsNull: Boolean read GetEMAILIsNull write SetEMAILIsNull; + property USERDAYSSUN: Integer read GetUSERDAYSSUNValue write SetUSERDAYSSUNValue; + property USERDAYSSUNIsNull: Boolean read GetUSERDAYSSUNIsNull write SetUSERDAYSSUNIsNull; + property PRIVILEGED: Integer read GetPRIVILEGEDValue write SetPRIVILEGEDValue; + property PRIVILEGEDIsNull: Boolean read GetPRIVILEGEDIsNull write SetPRIVILEGEDIsNull; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull: Boolean read GetTIPOIsNull write SetTIPOIsNull; + property ID_PERFIL: Integer read GetID_PERFILValue write SetID_PERFILValue; + property ID_PERFILIsNull: Boolean read GetID_PERFILIsNull write SetID_PERFILIsNull; + property CHECKSUM: String read GetCHECKSUMValue write SetCHECKSUMValue; + property CHECKSUMIsNull: Boolean read GetCHECKSUMIsNull write SetCHECKSUMIsNull; + end; + + { TUSUARIOSDataTableRules } + TUSUARIOSDataTableRules = class(TIntfObjectDADataTableRules, IUSUARIOS) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetUSERNAMEValue: String; virtual; + procedure SetUSERNAMEValue(const aValue: String); virtual; + function GetUSERNAMEIsNull: Boolean; virtual; + procedure SetUSERNAMEIsNull(const aValue: Boolean); virtual; + function GetLOGINValue: String; virtual; + procedure SetLOGINValue(const aValue: String); virtual; + function GetLOGINIsNull: Boolean; virtual; + procedure SetLOGINIsNull(const aValue: Boolean); virtual; + function GetPASSValue: String; virtual; + procedure SetPASSValue(const aValue: String); virtual; + function GetPASSIsNull: Boolean; virtual; + procedure SetPASSIsNull(const aValue: Boolean); virtual; + function GetPASSEXPIREDValue: DateTime; virtual; + procedure SetPASSEXPIREDValue(const aValue: DateTime); virtual; + function GetPASSEXPIREDIsNull: Boolean; virtual; + procedure SetPASSEXPIREDIsNull(const aValue: Boolean); virtual; + function GetBLOQUEADOValue: SmallInt; virtual; + procedure SetBLOQUEADOValue(const aValue: SmallInt); virtual; + function GetBLOQUEADOIsNull: Boolean; virtual; + procedure SetBLOQUEADOIsNull(const aValue: Boolean); virtual; + function GetEMAILValue: String; virtual; + procedure SetEMAILValue(const aValue: String); virtual; + function GetEMAILIsNull: Boolean; virtual; + procedure SetEMAILIsNull(const aValue: Boolean); virtual; + function GetUSERDAYSSUNValue: Integer; virtual; + procedure SetUSERDAYSSUNValue(const aValue: Integer); virtual; + function GetUSERDAYSSUNIsNull: Boolean; virtual; + procedure SetUSERDAYSSUNIsNull(const aValue: Boolean); virtual; + function GetPRIVILEGEDValue: Integer; virtual; + procedure SetPRIVILEGEDValue(const aValue: Integer); virtual; + function GetPRIVILEGEDIsNull: Boolean; virtual; + procedure SetPRIVILEGEDIsNull(const aValue: Boolean); virtual; + function GetTIPOValue: String; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + function GetTIPOIsNull: Boolean; virtual; + procedure SetTIPOIsNull(const aValue: Boolean); virtual; + function GetID_PERFILValue: Integer; virtual; + procedure SetID_PERFILValue(const aValue: Integer); virtual; + function GetID_PERFILIsNull: Boolean; virtual; + procedure SetID_PERFILIsNull(const aValue: Boolean); virtual; + function GetCHECKSUMValue: String; virtual; + procedure SetCHECKSUMValue(const aValue: String); virtual; + function GetCHECKSUMIsNull: Boolean; virtual; + procedure SetCHECKSUMIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property USERNAME: String read GetUSERNAMEValue write SetUSERNAMEValue; + property USERNAMEIsNull: Boolean read GetUSERNAMEIsNull write SetUSERNAMEIsNull; + property LOGIN: String read GetLOGINValue write SetLOGINValue; + property LOGINIsNull: Boolean read GetLOGINIsNull write SetLOGINIsNull; + property PASS: String read GetPASSValue write SetPASSValue; + property PASSIsNull: Boolean read GetPASSIsNull write SetPASSIsNull; + property PASSEXPIRED: DateTime read GetPASSEXPIREDValue write SetPASSEXPIREDValue; + property PASSEXPIREDIsNull: Boolean read GetPASSEXPIREDIsNull write SetPASSEXPIREDIsNull; + property BLOQUEADO: SmallInt read GetBLOQUEADOValue write SetBLOQUEADOValue; + property BLOQUEADOIsNull: Boolean read GetBLOQUEADOIsNull write SetBLOQUEADOIsNull; + property EMAIL: String read GetEMAILValue write SetEMAILValue; + property EMAILIsNull: Boolean read GetEMAILIsNull write SetEMAILIsNull; + property USERDAYSSUN: Integer read GetUSERDAYSSUNValue write SetUSERDAYSSUNValue; + property USERDAYSSUNIsNull: Boolean read GetUSERDAYSSUNIsNull write SetUSERDAYSSUNIsNull; + property PRIVILEGED: Integer read GetPRIVILEGEDValue write SetPRIVILEGEDValue; + property PRIVILEGEDIsNull: Boolean read GetPRIVILEGEDIsNull write SetPRIVILEGEDIsNull; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull: Boolean read GetTIPOIsNull write SetTIPOIsNull; + property ID_PERFIL: Integer read GetID_PERFILValue write SetID_PERFILValue; + property ID_PERFILIsNull: Boolean read GetID_PERFILIsNull write SetID_PERFILIsNull; + property CHECKSUM: String read GetCHECKSUMValue write SetCHECKSUMValue; + property CHECKSUMIsNull: Boolean read GetCHECKSUMIsNull write SetCHECKSUMIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IUSUARIOS_EVENTOS } + IUSUARIOS_EVENTOS = interface(IDAStronglyTypedDataTable) + ['{43AFA2E9-922F-47C9-B5F6-2884480327EF}'] + { Property getters and setters } + function GetAPLICACIONValue: String; + procedure SetAPLICACIONValue(const aValue: String); + function GetAPLICACIONIsNull: Boolean; + procedure SetAPLICACIONIsNull(const aValue: Boolean); + function GetID_USUARIOValue: Integer; + procedure SetID_USUARIOValue(const aValue: Integer); + function GetID_USUARIOIsNull: Boolean; + procedure SetID_USUARIOIsNull(const aValue: Boolean); + function GetFECHAValue: String; + procedure SetFECHAValue(const aValue: String); + function GetFECHAIsNull: Boolean; + procedure SetFECHAIsNull(const aValue: Boolean); + function GetHORAValue: String; + procedure SetHORAValue(const aValue: String); + function GetHORAIsNull: Boolean; + procedure SetHORAIsNull(const aValue: Boolean); + function GetFORMValue: String; + procedure SetFORMValue(const aValue: String); + function GetFORMIsNull: Boolean; + procedure SetFORMIsNull(const aValue: Boolean); + function GetTITULO_FORMValue: String; + procedure SetTITULO_FORMValue(const aValue: String); + function GetTITULO_FORMIsNull: Boolean; + procedure SetTITULO_FORMIsNull(const aValue: Boolean); + function GetEVENTOValue: String; + procedure SetEVENTOValue(const aValue: String); + function GetEVENTOIsNull: Boolean; + procedure SetEVENTOIsNull(const aValue: Boolean); + function GetNOTASValue: IROStrings; + function GetNOTASIsNull: Boolean; + procedure SetNOTASIsNull(const aValue: Boolean); + function GetTNAMEValue: String; + procedure SetTNAMEValue(const aValue: String); + function GetTNAMEIsNull: Boolean; + procedure SetTNAMEIsNull(const aValue: Boolean); + + + { Properties } + property APLICACION: String read GetAPLICACIONValue write SetAPLICACIONValue; + property APLICACIONIsNull: Boolean read GetAPLICACIONIsNull write SetAPLICACIONIsNull; + property ID_USUARIO: Integer read GetID_USUARIOValue write SetID_USUARIOValue; + property ID_USUARIOIsNull: Boolean read GetID_USUARIOIsNull write SetID_USUARIOIsNull; + property FECHA: String read GetFECHAValue write SetFECHAValue; + property FECHAIsNull: Boolean read GetFECHAIsNull write SetFECHAIsNull; + property HORA: String read GetHORAValue write SetHORAValue; + property HORAIsNull: Boolean read GetHORAIsNull write SetHORAIsNull; + property FORM: String read GetFORMValue write SetFORMValue; + property FORMIsNull: Boolean read GetFORMIsNull write SetFORMIsNull; + property TITULO_FORM: String read GetTITULO_FORMValue write SetTITULO_FORMValue; + property TITULO_FORMIsNull: Boolean read GetTITULO_FORMIsNull write SetTITULO_FORMIsNull; + property EVENTO: String read GetEVENTOValue write SetEVENTOValue; + property EVENTOIsNull: Boolean read GetEVENTOIsNull write SetEVENTOIsNull; + property NOTAS: IROStrings read GetNOTASValue; + property NOTASIsNull: Boolean read GetNOTASIsNull write SetNOTASIsNull; + property TNAME: String read GetTNAMEValue write SetTNAMEValue; + property TNAMEIsNull: Boolean read GetTNAMEIsNull write SetTNAMEIsNull; + end; + + { TUSUARIOS_EVENTOSDataTableRules } + TUSUARIOS_EVENTOSDataTableRules = class(TIntfObjectDADataTableRules, IUSUARIOS_EVENTOS) + private + f_NOTAS: IROStrings; + procedure NOTAS_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetAPLICACIONValue: String; virtual; + procedure SetAPLICACIONValue(const aValue: String); virtual; + function GetAPLICACIONIsNull: Boolean; virtual; + procedure SetAPLICACIONIsNull(const aValue: Boolean); virtual; + function GetID_USUARIOValue: Integer; virtual; + procedure SetID_USUARIOValue(const aValue: Integer); virtual; + function GetID_USUARIOIsNull: Boolean; virtual; + procedure SetID_USUARIOIsNull(const aValue: Boolean); virtual; + function GetFECHAValue: String; virtual; + procedure SetFECHAValue(const aValue: String); virtual; + function GetFECHAIsNull: Boolean; virtual; + procedure SetFECHAIsNull(const aValue: Boolean); virtual; + function GetHORAValue: String; virtual; + procedure SetHORAValue(const aValue: String); virtual; + function GetHORAIsNull: Boolean; virtual; + procedure SetHORAIsNull(const aValue: Boolean); virtual; + function GetFORMValue: String; virtual; + procedure SetFORMValue(const aValue: String); virtual; + function GetFORMIsNull: Boolean; virtual; + procedure SetFORMIsNull(const aValue: Boolean); virtual; + function GetTITULO_FORMValue: String; virtual; + procedure SetTITULO_FORMValue(const aValue: String); virtual; + function GetTITULO_FORMIsNull: Boolean; virtual; + procedure SetTITULO_FORMIsNull(const aValue: Boolean); virtual; + function GetEVENTOValue: String; virtual; + procedure SetEVENTOValue(const aValue: String); virtual; + function GetEVENTOIsNull: Boolean; virtual; + procedure SetEVENTOIsNull(const aValue: Boolean); virtual; + function GetNOTASValue: IROStrings; virtual; + function GetNOTASIsNull: Boolean; virtual; + procedure SetNOTASIsNull(const aValue: Boolean); virtual; + function GetTNAMEValue: String; virtual; + procedure SetTNAMEValue(const aValue: String); virtual; + function GetTNAMEIsNull: Boolean; virtual; + procedure SetTNAMEIsNull(const aValue: Boolean); virtual; + + { Properties } + property APLICACION: String read GetAPLICACIONValue write SetAPLICACIONValue; + property APLICACIONIsNull: Boolean read GetAPLICACIONIsNull write SetAPLICACIONIsNull; + property ID_USUARIO: Integer read GetID_USUARIOValue write SetID_USUARIOValue; + property ID_USUARIOIsNull: Boolean read GetID_USUARIOIsNull write SetID_USUARIOIsNull; + property FECHA: String read GetFECHAValue write SetFECHAValue; + property FECHAIsNull: Boolean read GetFECHAIsNull write SetFECHAIsNull; + property HORA: String read GetHORAValue write SetHORAValue; + property HORAIsNull: Boolean read GetHORAIsNull write SetHORAIsNull; + property FORM: String read GetFORMValue write SetFORMValue; + property FORMIsNull: Boolean read GetFORMIsNull write SetFORMIsNull; + property TITULO_FORM: String read GetTITULO_FORMValue write SetTITULO_FORMValue; + property TITULO_FORMIsNull: Boolean read GetTITULO_FORMIsNull write SetTITULO_FORMIsNull; + property EVENTO: String read GetEVENTOValue write SetEVENTOValue; + property EVENTOIsNull: Boolean read GetEVENTOIsNull write SetEVENTOIsNull; + property NOTAS: IROStrings read GetNOTASValue; + property NOTASIsNull: Boolean read GetNOTASIsNull write SetNOTASIsNull; + property TNAME: String read GetTNAMEValue write SetTNAMEValue; + property TNAMEIsNull: Boolean read GetTNAMEIsNull write SetTNAMEIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IUSUARIOS_LOGON } + IUSUARIOS_LOGON = interface(IDAStronglyTypedDataTable) + ['{ABEE65F6-567E-48E5-97A1-5FF61E3C6561}'] + { Property getters and setters } + function GetLOGONIDValue: String; + procedure SetLOGONIDValue(const aValue: String); + function GetLOGONIDIsNull: Boolean; + procedure SetLOGONIDIsNull(const aValue: Boolean); + function GetID_USUARIOValue: Integer; + procedure SetID_USUARIOValue(const aValue: Integer); + function GetID_USUARIOIsNull: Boolean; + procedure SetID_USUARIOIsNull(const aValue: Boolean); + function GetAPLICACIONValue: String; + procedure SetAPLICACIONValue(const aValue: String); + function GetAPLICACIONIsNull: Boolean; + procedure SetAPLICACIONIsNull(const aValue: Boolean); + function GetEQUIPOValue: String; + procedure SetEQUIPOValue(const aValue: String); + function GetEQUIPOIsNull: Boolean; + procedure SetEQUIPOIsNull(const aValue: Boolean); + function GetDATAValue: String; + procedure SetDATAValue(const aValue: String); + function GetDATAIsNull: Boolean; + procedure SetDATAIsNull(const aValue: Boolean); + + + { Properties } + property LOGONID: String read GetLOGONIDValue write SetLOGONIDValue; + property LOGONIDIsNull: Boolean read GetLOGONIDIsNull write SetLOGONIDIsNull; + property ID_USUARIO: Integer read GetID_USUARIOValue write SetID_USUARIOValue; + property ID_USUARIOIsNull: Boolean read GetID_USUARIOIsNull write SetID_USUARIOIsNull; + property APLICACION: String read GetAPLICACIONValue write SetAPLICACIONValue; + property APLICACIONIsNull: Boolean read GetAPLICACIONIsNull write SetAPLICACIONIsNull; + property EQUIPO: String read GetEQUIPOValue write SetEQUIPOValue; + property EQUIPOIsNull: Boolean read GetEQUIPOIsNull write SetEQUIPOIsNull; + property DATA: String read GetDATAValue write SetDATAValue; + property DATAIsNull: Boolean read GetDATAIsNull write SetDATAIsNull; + end; + + { TUSUARIOS_LOGONDataTableRules } + TUSUARIOS_LOGONDataTableRules = class(TIntfObjectDADataTableRules, IUSUARIOS_LOGON) + private + protected + { Property getters and setters } + function GetLOGONIDValue: String; virtual; + procedure SetLOGONIDValue(const aValue: String); virtual; + function GetLOGONIDIsNull: Boolean; virtual; + procedure SetLOGONIDIsNull(const aValue: Boolean); virtual; + function GetID_USUARIOValue: Integer; virtual; + procedure SetID_USUARIOValue(const aValue: Integer); virtual; + function GetID_USUARIOIsNull: Boolean; virtual; + procedure SetID_USUARIOIsNull(const aValue: Boolean); virtual; + function GetAPLICACIONValue: String; virtual; + procedure SetAPLICACIONValue(const aValue: String); virtual; + function GetAPLICACIONIsNull: Boolean; virtual; + procedure SetAPLICACIONIsNull(const aValue: Boolean); virtual; + function GetEQUIPOValue: String; virtual; + procedure SetEQUIPOValue(const aValue: String); virtual; + function GetEQUIPOIsNull: Boolean; virtual; + procedure SetEQUIPOIsNull(const aValue: Boolean); virtual; + function GetDATAValue: String; virtual; + procedure SetDATAValue(const aValue: String); virtual; + function GetDATAIsNull: Boolean; virtual; + procedure SetDATAIsNull(const aValue: Boolean); virtual; + + { Properties } + property LOGONID: String read GetLOGONIDValue write SetLOGONIDValue; + property LOGONIDIsNull: Boolean read GetLOGONIDIsNull write SetLOGONIDIsNull; + property ID_USUARIO: Integer read GetID_USUARIOValue write SetID_USUARIOValue; + property ID_USUARIOIsNull: Boolean read GetID_USUARIOIsNull write SetID_USUARIOIsNull; + property APLICACION: String read GetAPLICACIONValue write SetAPLICACIONValue; + property APLICACIONIsNull: Boolean read GetAPLICACIONIsNull write SetAPLICACIONIsNull; + property EQUIPO: String read GetEQUIPOValue write SetEQUIPOValue; + property EQUIPOIsNull: Boolean read GetEQUIPOIsNull write SetEQUIPOIsNull; + property DATA: String read GetDATAValue write SetDATAValue; + property DATAIsNull: Boolean read GetDATAIsNull write SetDATAIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IPERMISOS } + IPERMISOS = interface(IDAStronglyTypedDataTable) + ['{FE6E0A5F-2FAB-494E-90F4-726F4B507144}'] + { Property getters and setters } + function GetID_USUARIOValue: Integer; + procedure SetID_USUARIOValue(const aValue: Integer); + function GetID_USUARIOIsNull: Boolean; + procedure SetID_USUARIOIsNull(const aValue: Boolean); + function GetMODULOValue: String; + procedure SetMODULOValue(const aValue: String); + function GetMODULOIsNull: Boolean; + procedure SetMODULOIsNull(const aValue: Boolean); + function GetNOMBRECOMPValue: String; + procedure SetNOMBRECOMPValue(const aValue: String); + function GetNOMBRECOMPIsNull: Boolean; + procedure SetNOMBRECOMPIsNull(const aValue: Boolean); + function GetCHECKSUMValue: String; + procedure SetCHECKSUMValue(const aValue: String); + function GetCHECKSUMIsNull: Boolean; + procedure SetCHECKSUMIsNull(const aValue: Boolean); + + + { Properties } + property ID_USUARIO: Integer read GetID_USUARIOValue write SetID_USUARIOValue; + property ID_USUARIOIsNull: Boolean read GetID_USUARIOIsNull write SetID_USUARIOIsNull; + property MODULO: String read GetMODULOValue write SetMODULOValue; + property MODULOIsNull: Boolean read GetMODULOIsNull write SetMODULOIsNull; + property NOMBRECOMP: String read GetNOMBRECOMPValue write SetNOMBRECOMPValue; + property NOMBRECOMPIsNull: Boolean read GetNOMBRECOMPIsNull write SetNOMBRECOMPIsNull; + property CHECKSUM: String read GetCHECKSUMValue write SetCHECKSUMValue; + property CHECKSUMIsNull: Boolean read GetCHECKSUMIsNull write SetCHECKSUMIsNull; + end; + + { TPERMISOSDataTableRules } + TPERMISOSDataTableRules = class(TIntfObjectDADataTableRules, IPERMISOS) + private + protected + { Property getters and setters } + function GetID_USUARIOValue: Integer; virtual; + procedure SetID_USUARIOValue(const aValue: Integer); virtual; + function GetID_USUARIOIsNull: Boolean; virtual; + procedure SetID_USUARIOIsNull(const aValue: Boolean); virtual; + function GetMODULOValue: String; virtual; + procedure SetMODULOValue(const aValue: String); virtual; + function GetMODULOIsNull: Boolean; virtual; + procedure SetMODULOIsNull(const aValue: Boolean); virtual; + function GetNOMBRECOMPValue: String; virtual; + procedure SetNOMBRECOMPValue(const aValue: String); virtual; + function GetNOMBRECOMPIsNull: Boolean; virtual; + procedure SetNOMBRECOMPIsNull(const aValue: Boolean); virtual; + function GetCHECKSUMValue: String; virtual; + procedure SetCHECKSUMValue(const aValue: String); virtual; + function GetCHECKSUMIsNull: Boolean; virtual; + procedure SetCHECKSUMIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID_USUARIO: Integer read GetID_USUARIOValue write SetID_USUARIOValue; + property ID_USUARIOIsNull: Boolean read GetID_USUARIOIsNull write SetID_USUARIOIsNull; + property MODULO: String read GetMODULOValue write SetMODULOValue; + property MODULOIsNull: Boolean read GetMODULOIsNull write SetMODULOIsNull; + property NOMBRECOMP: String read GetNOMBRECOMPValue write SetNOMBRECOMPValue; + property NOMBRECOMPIsNull: Boolean read GetNOMBRECOMPIsNull write SetNOMBRECOMPIsNull; + property CHECKSUM: String read GetCHECKSUMValue write SetCHECKSUMValue; + property CHECKSUMIsNull: Boolean read GetCHECKSUMIsNull write SetCHECKSUMIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IPERMISOSEX } + IPERMISOSEX = interface(IDAStronglyTypedDataTable) + ['{8110E447-D763-4496-870E-BBCEB378C4CE}'] + { Property getters and setters } + function GetID_USUARIOValue: Integer; + procedure SetID_USUARIOValue(const aValue: Integer); + function GetID_USUARIOIsNull: Boolean; + procedure SetID_USUARIOIsNull(const aValue: Boolean); + function GetMODULOValue: String; + procedure SetMODULOValue(const aValue: String); + function GetMODULOIsNull: Boolean; + procedure SetMODULOIsNull(const aValue: Boolean); + function GetNOMBRECOMPValue: String; + procedure SetNOMBRECOMPValue(const aValue: String); + function GetNOMBRECOMPIsNull: Boolean; + procedure SetNOMBRECOMPIsNull(const aValue: Boolean); + function GetNOMBREFORMValue: String; + procedure SetNOMBREFORMValue(const aValue: String); + function GetNOMBREFORMIsNull: Boolean; + procedure SetNOMBREFORMIsNull(const aValue: Boolean); + function GetCHECKSUMValue: String; + procedure SetCHECKSUMValue(const aValue: String); + function GetCHECKSUMIsNull: Boolean; + procedure SetCHECKSUMIsNull(const aValue: Boolean); + + + { Properties } + property ID_USUARIO: Integer read GetID_USUARIOValue write SetID_USUARIOValue; + property ID_USUARIOIsNull: Boolean read GetID_USUARIOIsNull write SetID_USUARIOIsNull; + property MODULO: String read GetMODULOValue write SetMODULOValue; + property MODULOIsNull: Boolean read GetMODULOIsNull write SetMODULOIsNull; + property NOMBRECOMP: String read GetNOMBRECOMPValue write SetNOMBRECOMPValue; + property NOMBRECOMPIsNull: Boolean read GetNOMBRECOMPIsNull write SetNOMBRECOMPIsNull; + property NOMBREFORM: String read GetNOMBREFORMValue write SetNOMBREFORMValue; + property NOMBREFORMIsNull: Boolean read GetNOMBREFORMIsNull write SetNOMBREFORMIsNull; + property CHECKSUM: String read GetCHECKSUMValue write SetCHECKSUMValue; + property CHECKSUMIsNull: Boolean read GetCHECKSUMIsNull write SetCHECKSUMIsNull; + end; + + { TPERMISOSEXDataTableRules } + TPERMISOSEXDataTableRules = class(TIntfObjectDADataTableRules, IPERMISOSEX) + private + protected + { Property getters and setters } + function GetID_USUARIOValue: Integer; virtual; + procedure SetID_USUARIOValue(const aValue: Integer); virtual; + function GetID_USUARIOIsNull: Boolean; virtual; + procedure SetID_USUARIOIsNull(const aValue: Boolean); virtual; + function GetMODULOValue: String; virtual; + procedure SetMODULOValue(const aValue: String); virtual; + function GetMODULOIsNull: Boolean; virtual; + procedure SetMODULOIsNull(const aValue: Boolean); virtual; + function GetNOMBRECOMPValue: String; virtual; + procedure SetNOMBRECOMPValue(const aValue: String); virtual; + function GetNOMBRECOMPIsNull: Boolean; virtual; + procedure SetNOMBRECOMPIsNull(const aValue: Boolean); virtual; + function GetNOMBREFORMValue: String; virtual; + procedure SetNOMBREFORMValue(const aValue: String); virtual; + function GetNOMBREFORMIsNull: Boolean; virtual; + procedure SetNOMBREFORMIsNull(const aValue: Boolean); virtual; + function GetCHECKSUMValue: String; virtual; + procedure SetCHECKSUMValue(const aValue: String); virtual; + function GetCHECKSUMIsNull: Boolean; virtual; + procedure SetCHECKSUMIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID_USUARIO: Integer read GetID_USUARIOValue write SetID_USUARIOValue; + property ID_USUARIOIsNull: Boolean read GetID_USUARIOIsNull write SetID_USUARIOIsNull; + property MODULO: String read GetMODULOValue write SetMODULOValue; + property MODULOIsNull: Boolean read GetMODULOIsNull write SetMODULOIsNull; + property NOMBRECOMP: String read GetNOMBRECOMPValue write SetNOMBRECOMPValue; + property NOMBRECOMPIsNull: Boolean read GetNOMBRECOMPIsNull write SetNOMBRECOMPIsNull; + property NOMBREFORM: String read GetNOMBREFORMValue write SetNOMBREFORMValue; + property NOMBREFORMIsNull: Boolean read GetNOMBREFORMIsNull write SetNOMBREFORMIsNull; + property CHECKSUM: String read GetCHECKSUMValue write SetCHECKSUMValue; + property CHECKSUMIsNull: Boolean read GetCHECKSUMIsNull write SetCHECKSUMIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IPERFILES } + IPERFILES = interface(IDAStronglyTypedDataTable) + ['{95916150-C565-4807-8A4E-35760EC58AE5}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetUSERNAMEValue: String; + procedure SetUSERNAMEValue(const aValue: String); + function GetUSERNAMEIsNull: Boolean; + procedure SetUSERNAMEIsNull(const aValue: Boolean); + function GetLOGINValue: String; + procedure SetLOGINValue(const aValue: String); + function GetLOGINIsNull: Boolean; + procedure SetLOGINIsNull(const aValue: Boolean); + function GetTIPOValue: String; + procedure SetTIPOValue(const aValue: String); + function GetTIPOIsNull: Boolean; + procedure SetTIPOIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property USERNAME: String read GetUSERNAMEValue write SetUSERNAMEValue; + property USERNAMEIsNull: Boolean read GetUSERNAMEIsNull write SetUSERNAMEIsNull; + property LOGIN: String read GetLOGINValue write SetLOGINValue; + property LOGINIsNull: Boolean read GetLOGINIsNull write SetLOGINIsNull; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull: Boolean read GetTIPOIsNull write SetTIPOIsNull; + end; + + { TPERFILESDataTableRules } + TPERFILESDataTableRules = class(TIntfObjectDADataTableRules, IPERFILES) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetUSERNAMEValue: String; virtual; + procedure SetUSERNAMEValue(const aValue: String); virtual; + function GetUSERNAMEIsNull: Boolean; virtual; + procedure SetUSERNAMEIsNull(const aValue: Boolean); virtual; + function GetLOGINValue: String; virtual; + procedure SetLOGINValue(const aValue: String); virtual; + function GetLOGINIsNull: Boolean; virtual; + procedure SetLOGINIsNull(const aValue: Boolean); virtual; + function GetTIPOValue: String; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + function GetTIPOIsNull: Boolean; virtual; + procedure SetTIPOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property USERNAME: String read GetUSERNAMEValue write SetUSERNAMEValue; + property USERNAMEIsNull: Boolean read GetUSERNAMEIsNull write SetUSERNAMEIsNull; + property LOGIN: String read GetLOGINValue write SetLOGINValue; + property LOGINIsNull: Boolean read GetLOGINIsNull write SetLOGINIsNull; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull: Boolean read GetTIPOIsNull write SetTIPOIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants, uROBinaryHelpers; + +{ TUSUARIOSDataTableRules } +constructor TUSUARIOSDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TUSUARIOSDataTableRules.Destroy; +begin + inherited; +end; + +function TUSUARIOSDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_USUARIOSID].AsInteger; +end; + +procedure TUSUARIOSDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_USUARIOSID].AsInteger := aValue; +end; + +function TUSUARIOSDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOSID].IsNull; +end; + +procedure TUSUARIOSDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOSID].AsVariant := Null; +end; + +function TUSUARIOSDataTableRules.GetUSERNAMEValue: String; +begin + result := DataTable.Fields[idx_USUARIOSUSERNAME].AsString; +end; + +procedure TUSUARIOSDataTableRules.SetUSERNAMEValue(const aValue: String); +begin + DataTable.Fields[idx_USUARIOSUSERNAME].AsString := aValue; +end; + +function TUSUARIOSDataTableRules.GetUSERNAMEIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOSUSERNAME].IsNull; +end; + +procedure TUSUARIOSDataTableRules.SetUSERNAMEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOSUSERNAME].AsVariant := Null; +end; + +function TUSUARIOSDataTableRules.GetLOGINValue: String; +begin + result := DataTable.Fields[idx_USUARIOSLOGIN].AsString; +end; + +procedure TUSUARIOSDataTableRules.SetLOGINValue(const aValue: String); +begin + DataTable.Fields[idx_USUARIOSLOGIN].AsString := aValue; +end; + +function TUSUARIOSDataTableRules.GetLOGINIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOSLOGIN].IsNull; +end; + +procedure TUSUARIOSDataTableRules.SetLOGINIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOSLOGIN].AsVariant := Null; +end; + +function TUSUARIOSDataTableRules.GetPASSValue: String; +begin + result := DataTable.Fields[idx_USUARIOSPASS].AsString; +end; + +procedure TUSUARIOSDataTableRules.SetPASSValue(const aValue: String); +begin + DataTable.Fields[idx_USUARIOSPASS].AsString := aValue; +end; + +function TUSUARIOSDataTableRules.GetPASSIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOSPASS].IsNull; +end; + +procedure TUSUARIOSDataTableRules.SetPASSIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOSPASS].AsVariant := Null; +end; + +function TUSUARIOSDataTableRules.GetPASSEXPIREDValue: DateTime; +begin + result := DataTable.Fields[idx_USUARIOSPASSEXPIRED].AsDateTime; +end; + +procedure TUSUARIOSDataTableRules.SetPASSEXPIREDValue(const aValue: DateTime); +begin + DataTable.Fields[idx_USUARIOSPASSEXPIRED].AsDateTime := aValue; +end; + +function TUSUARIOSDataTableRules.GetPASSEXPIREDIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOSPASSEXPIRED].IsNull; +end; + +procedure TUSUARIOSDataTableRules.SetPASSEXPIREDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOSPASSEXPIRED].AsVariant := Null; +end; + +function TUSUARIOSDataTableRules.GetBLOQUEADOValue: SmallInt; +begin + result := DataTable.Fields[idx_USUARIOSBLOQUEADO].AsSmallInt; +end; + +procedure TUSUARIOSDataTableRules.SetBLOQUEADOValue(const aValue: SmallInt); +begin + DataTable.Fields[idx_USUARIOSBLOQUEADO].AsSmallInt := aValue; +end; + +function TUSUARIOSDataTableRules.GetBLOQUEADOIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOSBLOQUEADO].IsNull; +end; + +procedure TUSUARIOSDataTableRules.SetBLOQUEADOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOSBLOQUEADO].AsVariant := Null; +end; + +function TUSUARIOSDataTableRules.GetEMAILValue: String; +begin + result := DataTable.Fields[idx_USUARIOSEMAIL].AsString; +end; + +procedure TUSUARIOSDataTableRules.SetEMAILValue(const aValue: String); +begin + DataTable.Fields[idx_USUARIOSEMAIL].AsString := aValue; +end; + +function TUSUARIOSDataTableRules.GetEMAILIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOSEMAIL].IsNull; +end; + +procedure TUSUARIOSDataTableRules.SetEMAILIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOSEMAIL].AsVariant := Null; +end; + +function TUSUARIOSDataTableRules.GetUSERDAYSSUNValue: Integer; +begin + result := DataTable.Fields[idx_USUARIOSUSERDAYSSUN].AsInteger; +end; + +procedure TUSUARIOSDataTableRules.SetUSERDAYSSUNValue(const aValue: Integer); +begin + DataTable.Fields[idx_USUARIOSUSERDAYSSUN].AsInteger := aValue; +end; + +function TUSUARIOSDataTableRules.GetUSERDAYSSUNIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOSUSERDAYSSUN].IsNull; +end; + +procedure TUSUARIOSDataTableRules.SetUSERDAYSSUNIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOSUSERDAYSSUN].AsVariant := Null; +end; + +function TUSUARIOSDataTableRules.GetPRIVILEGEDValue: Integer; +begin + result := DataTable.Fields[idx_USUARIOSPRIVILEGED].AsInteger; +end; + +procedure TUSUARIOSDataTableRules.SetPRIVILEGEDValue(const aValue: Integer); +begin + DataTable.Fields[idx_USUARIOSPRIVILEGED].AsInteger := aValue; +end; + +function TUSUARIOSDataTableRules.GetPRIVILEGEDIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOSPRIVILEGED].IsNull; +end; + +procedure TUSUARIOSDataTableRules.SetPRIVILEGEDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOSPRIVILEGED].AsVariant := Null; +end; + +function TUSUARIOSDataTableRules.GetTIPOValue: String; +begin + result := DataTable.Fields[idx_USUARIOSTIPO].AsString; +end; + +procedure TUSUARIOSDataTableRules.SetTIPOValue(const aValue: String); +begin + DataTable.Fields[idx_USUARIOSTIPO].AsString := aValue; +end; + +function TUSUARIOSDataTableRules.GetTIPOIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOSTIPO].IsNull; +end; + +procedure TUSUARIOSDataTableRules.SetTIPOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOSTIPO].AsVariant := Null; +end; + +function TUSUARIOSDataTableRules.GetID_PERFILValue: Integer; +begin + result := DataTable.Fields[idx_USUARIOSID_PERFIL].AsInteger; +end; + +procedure TUSUARIOSDataTableRules.SetID_PERFILValue(const aValue: Integer); +begin + DataTable.Fields[idx_USUARIOSID_PERFIL].AsInteger := aValue; +end; + +function TUSUARIOSDataTableRules.GetID_PERFILIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOSID_PERFIL].IsNull; +end; + +procedure TUSUARIOSDataTableRules.SetID_PERFILIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOSID_PERFIL].AsVariant := Null; +end; + +function TUSUARIOSDataTableRules.GetCHECKSUMValue: String; +begin + result := DataTable.Fields[idx_USUARIOSCHECKSUM].AsString; +end; + +procedure TUSUARIOSDataTableRules.SetCHECKSUMValue(const aValue: String); +begin + DataTable.Fields[idx_USUARIOSCHECKSUM].AsString := aValue; +end; + +function TUSUARIOSDataTableRules.GetCHECKSUMIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOSCHECKSUM].IsNull; +end; + +procedure TUSUARIOSDataTableRules.SetCHECKSUMIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOSCHECKSUM].AsVariant := Null; +end; + + +{ TUSUARIOS_EVENTOSDataTableRules } +constructor TUSUARIOS_EVENTOSDataTableRules.Create(aDataTable: TDADataTable); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := NOTAS_OnChange; + f_NOTAS := NewROStrings(StrList,True); +end; + +destructor TUSUARIOS_EVENTOSDataTableRules.Destroy; +begin + inherited; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.NOTAS_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_USUARIOS_EVENTOSNOTAS].AsVariant := TStringList(Sender).Text; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetAPLICACIONValue: String; +begin + result := DataTable.Fields[idx_USUARIOS_EVENTOSAPLICACION].AsString; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.SetAPLICACIONValue(const aValue: String); +begin + DataTable.Fields[idx_USUARIOS_EVENTOSAPLICACION].AsString := aValue; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetAPLICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOS_EVENTOSAPLICACION].IsNull; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.SetAPLICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOS_EVENTOSAPLICACION].AsVariant := Null; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetID_USUARIOValue: Integer; +begin + result := DataTable.Fields[idx_USUARIOS_EVENTOSID_USUARIO].AsInteger; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.SetID_USUARIOValue(const aValue: Integer); +begin + DataTable.Fields[idx_USUARIOS_EVENTOSID_USUARIO].AsInteger := aValue; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetID_USUARIOIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOS_EVENTOSID_USUARIO].IsNull; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.SetID_USUARIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOS_EVENTOSID_USUARIO].AsVariant := Null; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetFECHAValue: String; +begin + result := DataTable.Fields[idx_USUARIOS_EVENTOSFECHA].AsString; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.SetFECHAValue(const aValue: String); +begin + DataTable.Fields[idx_USUARIOS_EVENTOSFECHA].AsString := aValue; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetFECHAIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOS_EVENTOSFECHA].IsNull; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.SetFECHAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOS_EVENTOSFECHA].AsVariant := Null; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetHORAValue: String; +begin + result := DataTable.Fields[idx_USUARIOS_EVENTOSHORA].AsString; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.SetHORAValue(const aValue: String); +begin + DataTable.Fields[idx_USUARIOS_EVENTOSHORA].AsString := aValue; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetHORAIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOS_EVENTOSHORA].IsNull; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.SetHORAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOS_EVENTOSHORA].AsVariant := Null; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetFORMValue: String; +begin + result := DataTable.Fields[idx_USUARIOS_EVENTOSFORM].AsString; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.SetFORMValue(const aValue: String); +begin + DataTable.Fields[idx_USUARIOS_EVENTOSFORM].AsString := aValue; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetFORMIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOS_EVENTOSFORM].IsNull; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.SetFORMIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOS_EVENTOSFORM].AsVariant := Null; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetTITULO_FORMValue: String; +begin + result := DataTable.Fields[idx_USUARIOS_EVENTOSTITULO_FORM].AsString; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.SetTITULO_FORMValue(const aValue: String); +begin + DataTable.Fields[idx_USUARIOS_EVENTOSTITULO_FORM].AsString := aValue; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetTITULO_FORMIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOS_EVENTOSTITULO_FORM].IsNull; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.SetTITULO_FORMIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOS_EVENTOSTITULO_FORM].AsVariant := Null; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetEVENTOValue: String; +begin + result := DataTable.Fields[idx_USUARIOS_EVENTOSEVENTO].AsString; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.SetEVENTOValue(const aValue: String); +begin + DataTable.Fields[idx_USUARIOS_EVENTOSEVENTO].AsString := aValue; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetEVENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOS_EVENTOSEVENTO].IsNull; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.SetEVENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOS_EVENTOSEVENTO].AsVariant := Null; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetNOTASValue: IROStrings; +begin + result := f_NOTAS; + result.Text := DataTable.Fields[idx_USUARIOS_EVENTOSNOTAS].AsString; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetNOTASIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOS_EVENTOSNOTAS].IsNull; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.SetNOTASIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOS_EVENTOSNOTAS].AsVariant := Null; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetTNAMEValue: String; +begin + result := DataTable.Fields[idx_USUARIOS_EVENTOSTNAME].AsString; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.SetTNAMEValue(const aValue: String); +begin + DataTable.Fields[idx_USUARIOS_EVENTOSTNAME].AsString := aValue; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetTNAMEIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOS_EVENTOSTNAME].IsNull; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.SetTNAMEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOS_EVENTOSTNAME].AsVariant := Null; +end; + + +{ TUSUARIOS_LOGONDataTableRules } +constructor TUSUARIOS_LOGONDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TUSUARIOS_LOGONDataTableRules.Destroy; +begin + inherited; +end; + +function TUSUARIOS_LOGONDataTableRules.GetLOGONIDValue: String; +begin + result := DataTable.Fields[idx_USUARIOS_LOGONLOGONID].AsString; +end; + +procedure TUSUARIOS_LOGONDataTableRules.SetLOGONIDValue(const aValue: String); +begin + DataTable.Fields[idx_USUARIOS_LOGONLOGONID].AsString := aValue; +end; + +function TUSUARIOS_LOGONDataTableRules.GetLOGONIDIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOS_LOGONLOGONID].IsNull; +end; + +procedure TUSUARIOS_LOGONDataTableRules.SetLOGONIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOS_LOGONLOGONID].AsVariant := Null; +end; + +function TUSUARIOS_LOGONDataTableRules.GetID_USUARIOValue: Integer; +begin + result := DataTable.Fields[idx_USUARIOS_LOGONID_USUARIO].AsInteger; +end; + +procedure TUSUARIOS_LOGONDataTableRules.SetID_USUARIOValue(const aValue: Integer); +begin + DataTable.Fields[idx_USUARIOS_LOGONID_USUARIO].AsInteger := aValue; +end; + +function TUSUARIOS_LOGONDataTableRules.GetID_USUARIOIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOS_LOGONID_USUARIO].IsNull; +end; + +procedure TUSUARIOS_LOGONDataTableRules.SetID_USUARIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOS_LOGONID_USUARIO].AsVariant := Null; +end; + +function TUSUARIOS_LOGONDataTableRules.GetAPLICACIONValue: String; +begin + result := DataTable.Fields[idx_USUARIOS_LOGONAPLICACION].AsString; +end; + +procedure TUSUARIOS_LOGONDataTableRules.SetAPLICACIONValue(const aValue: String); +begin + DataTable.Fields[idx_USUARIOS_LOGONAPLICACION].AsString := aValue; +end; + +function TUSUARIOS_LOGONDataTableRules.GetAPLICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOS_LOGONAPLICACION].IsNull; +end; + +procedure TUSUARIOS_LOGONDataTableRules.SetAPLICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOS_LOGONAPLICACION].AsVariant := Null; +end; + +function TUSUARIOS_LOGONDataTableRules.GetEQUIPOValue: String; +begin + result := DataTable.Fields[idx_USUARIOS_LOGONEQUIPO].AsString; +end; + +procedure TUSUARIOS_LOGONDataTableRules.SetEQUIPOValue(const aValue: String); +begin + DataTable.Fields[idx_USUARIOS_LOGONEQUIPO].AsString := aValue; +end; + +function TUSUARIOS_LOGONDataTableRules.GetEQUIPOIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOS_LOGONEQUIPO].IsNull; +end; + +procedure TUSUARIOS_LOGONDataTableRules.SetEQUIPOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOS_LOGONEQUIPO].AsVariant := Null; +end; + +function TUSUARIOS_LOGONDataTableRules.GetDATAValue: String; +begin + result := DataTable.Fields[idx_USUARIOS_LOGONDATA].AsString; +end; + +procedure TUSUARIOS_LOGONDataTableRules.SetDATAValue(const aValue: String); +begin + DataTable.Fields[idx_USUARIOS_LOGONDATA].AsString := aValue; +end; + +function TUSUARIOS_LOGONDataTableRules.GetDATAIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOS_LOGONDATA].IsNull; +end; + +procedure TUSUARIOS_LOGONDataTableRules.SetDATAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOS_LOGONDATA].AsVariant := Null; +end; + + +{ TPERMISOSDataTableRules } +constructor TPERMISOSDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TPERMISOSDataTableRules.Destroy; +begin + inherited; +end; + +function TPERMISOSDataTableRules.GetID_USUARIOValue: Integer; +begin + result := DataTable.Fields[idx_PERMISOSID_USUARIO].AsInteger; +end; + +procedure TPERMISOSDataTableRules.SetID_USUARIOValue(const aValue: Integer); +begin + DataTable.Fields[idx_PERMISOSID_USUARIO].AsInteger := aValue; +end; + +function TPERMISOSDataTableRules.GetID_USUARIOIsNull: boolean; +begin + result := DataTable.Fields[idx_PERMISOSID_USUARIO].IsNull; +end; + +procedure TPERMISOSDataTableRules.SetID_USUARIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PERMISOSID_USUARIO].AsVariant := Null; +end; + +function TPERMISOSDataTableRules.GetMODULOValue: String; +begin + result := DataTable.Fields[idx_PERMISOSMODULO].AsString; +end; + +procedure TPERMISOSDataTableRules.SetMODULOValue(const aValue: String); +begin + DataTable.Fields[idx_PERMISOSMODULO].AsString := aValue; +end; + +function TPERMISOSDataTableRules.GetMODULOIsNull: boolean; +begin + result := DataTable.Fields[idx_PERMISOSMODULO].IsNull; +end; + +procedure TPERMISOSDataTableRules.SetMODULOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PERMISOSMODULO].AsVariant := Null; +end; + +function TPERMISOSDataTableRules.GetNOMBRECOMPValue: String; +begin + result := DataTable.Fields[idx_PERMISOSNOMBRECOMP].AsString; +end; + +procedure TPERMISOSDataTableRules.SetNOMBRECOMPValue(const aValue: String); +begin + DataTable.Fields[idx_PERMISOSNOMBRECOMP].AsString := aValue; +end; + +function TPERMISOSDataTableRules.GetNOMBRECOMPIsNull: boolean; +begin + result := DataTable.Fields[idx_PERMISOSNOMBRECOMP].IsNull; +end; + +procedure TPERMISOSDataTableRules.SetNOMBRECOMPIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PERMISOSNOMBRECOMP].AsVariant := Null; +end; + +function TPERMISOSDataTableRules.GetCHECKSUMValue: String; +begin + result := DataTable.Fields[idx_PERMISOSCHECKSUM].AsString; +end; + +procedure TPERMISOSDataTableRules.SetCHECKSUMValue(const aValue: String); +begin + DataTable.Fields[idx_PERMISOSCHECKSUM].AsString := aValue; +end; + +function TPERMISOSDataTableRules.GetCHECKSUMIsNull: boolean; +begin + result := DataTable.Fields[idx_PERMISOSCHECKSUM].IsNull; +end; + +procedure TPERMISOSDataTableRules.SetCHECKSUMIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PERMISOSCHECKSUM].AsVariant := Null; +end; + + +{ TPERMISOSEXDataTableRules } +constructor TPERMISOSEXDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TPERMISOSEXDataTableRules.Destroy; +begin + inherited; +end; + +function TPERMISOSEXDataTableRules.GetID_USUARIOValue: Integer; +begin + result := DataTable.Fields[idx_PERMISOSEXID_USUARIO].AsInteger; +end; + +procedure TPERMISOSEXDataTableRules.SetID_USUARIOValue(const aValue: Integer); +begin + DataTable.Fields[idx_PERMISOSEXID_USUARIO].AsInteger := aValue; +end; + +function TPERMISOSEXDataTableRules.GetID_USUARIOIsNull: boolean; +begin + result := DataTable.Fields[idx_PERMISOSEXID_USUARIO].IsNull; +end; + +procedure TPERMISOSEXDataTableRules.SetID_USUARIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PERMISOSEXID_USUARIO].AsVariant := Null; +end; + +function TPERMISOSEXDataTableRules.GetMODULOValue: String; +begin + result := DataTable.Fields[idx_PERMISOSEXMODULO].AsString; +end; + +procedure TPERMISOSEXDataTableRules.SetMODULOValue(const aValue: String); +begin + DataTable.Fields[idx_PERMISOSEXMODULO].AsString := aValue; +end; + +function TPERMISOSEXDataTableRules.GetMODULOIsNull: boolean; +begin + result := DataTable.Fields[idx_PERMISOSEXMODULO].IsNull; +end; + +procedure TPERMISOSEXDataTableRules.SetMODULOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PERMISOSEXMODULO].AsVariant := Null; +end; + +function TPERMISOSEXDataTableRules.GetNOMBRECOMPValue: String; +begin + result := DataTable.Fields[idx_PERMISOSEXNOMBRECOMP].AsString; +end; + +procedure TPERMISOSEXDataTableRules.SetNOMBRECOMPValue(const aValue: String); +begin + DataTable.Fields[idx_PERMISOSEXNOMBRECOMP].AsString := aValue; +end; + +function TPERMISOSEXDataTableRules.GetNOMBRECOMPIsNull: boolean; +begin + result := DataTable.Fields[idx_PERMISOSEXNOMBRECOMP].IsNull; +end; + +procedure TPERMISOSEXDataTableRules.SetNOMBRECOMPIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PERMISOSEXNOMBRECOMP].AsVariant := Null; +end; + +function TPERMISOSEXDataTableRules.GetNOMBREFORMValue: String; +begin + result := DataTable.Fields[idx_PERMISOSEXNOMBREFORM].AsString; +end; + +procedure TPERMISOSEXDataTableRules.SetNOMBREFORMValue(const aValue: String); +begin + DataTable.Fields[idx_PERMISOSEXNOMBREFORM].AsString := aValue; +end; + +function TPERMISOSEXDataTableRules.GetNOMBREFORMIsNull: boolean; +begin + result := DataTable.Fields[idx_PERMISOSEXNOMBREFORM].IsNull; +end; + +procedure TPERMISOSEXDataTableRules.SetNOMBREFORMIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PERMISOSEXNOMBREFORM].AsVariant := Null; +end; + +function TPERMISOSEXDataTableRules.GetCHECKSUMValue: String; +begin + result := DataTable.Fields[idx_PERMISOSEXCHECKSUM].AsString; +end; + +procedure TPERMISOSEXDataTableRules.SetCHECKSUMValue(const aValue: String); +begin + DataTable.Fields[idx_PERMISOSEXCHECKSUM].AsString := aValue; +end; + +function TPERMISOSEXDataTableRules.GetCHECKSUMIsNull: boolean; +begin + result := DataTable.Fields[idx_PERMISOSEXCHECKSUM].IsNull; +end; + +procedure TPERMISOSEXDataTableRules.SetCHECKSUMIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PERMISOSEXCHECKSUM].AsVariant := Null; +end; + + +{ TPERFILESDataTableRules } +constructor TPERFILESDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TPERFILESDataTableRules.Destroy; +begin + inherited; +end; + +function TPERFILESDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_PERFILESID].AsInteger; +end; + +procedure TPERFILESDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_PERFILESID].AsInteger := aValue; +end; + +function TPERFILESDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_PERFILESID].IsNull; +end; + +procedure TPERFILESDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PERFILESID].AsVariant := Null; +end; + +function TPERFILESDataTableRules.GetUSERNAMEValue: String; +begin + result := DataTable.Fields[idx_PERFILESUSERNAME].AsString; +end; + +procedure TPERFILESDataTableRules.SetUSERNAMEValue(const aValue: String); +begin + DataTable.Fields[idx_PERFILESUSERNAME].AsString := aValue; +end; + +function TPERFILESDataTableRules.GetUSERNAMEIsNull: boolean; +begin + result := DataTable.Fields[idx_PERFILESUSERNAME].IsNull; +end; + +procedure TPERFILESDataTableRules.SetUSERNAMEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PERFILESUSERNAME].AsVariant := Null; +end; + +function TPERFILESDataTableRules.GetLOGINValue: String; +begin + result := DataTable.Fields[idx_PERFILESLOGIN].AsString; +end; + +procedure TPERFILESDataTableRules.SetLOGINValue(const aValue: String); +begin + DataTable.Fields[idx_PERFILESLOGIN].AsString := aValue; +end; + +function TPERFILESDataTableRules.GetLOGINIsNull: boolean; +begin + result := DataTable.Fields[idx_PERFILESLOGIN].IsNull; +end; + +procedure TPERFILESDataTableRules.SetLOGINIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PERFILESLOGIN].AsVariant := Null; +end; + +function TPERFILESDataTableRules.GetTIPOValue: String; +begin + result := DataTable.Fields[idx_PERFILESTIPO].AsString; +end; + +procedure TPERFILESDataTableRules.SetTIPOValue(const aValue: String); +begin + DataTable.Fields[idx_PERFILESTIPO].AsString := aValue; +end; + +function TPERFILESDataTableRules.GetTIPOIsNull: boolean; +begin + result := DataTable.Fields[idx_PERFILESTIPO].IsNull; +end; + +procedure TPERFILESDataTableRules.SetTIPOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PERFILESTIPO].AsVariant := Null; +end; + + +initialization + RegisterDataTableRules(RID_USUARIOS, TUSUARIOSDataTableRules); + RegisterDataTableRules(RID_USUARIOS_EVENTOS, TUSUARIOS_EVENTOSDataTableRules); + RegisterDataTableRules(RID_USUARIOS_LOGON, TUSUARIOS_LOGONDataTableRules); + RegisterDataTableRules(RID_PERMISOS, TPERMISOSDataTableRules); + RegisterDataTableRules(RID_PERMISOSEX, TPERMISOSEXDataTableRules); + RegisterDataTableRules(RID_PERFILES, TPERFILESDataTableRules); + +end. diff --git a/Source/ApplicationBase/Usuarios/Model/schUsuariosServer_Intf.dcu b/Source/ApplicationBase/Usuarios/Model/schUsuariosServer_Intf.dcu new file mode 100644 index 0000000..1d977ec Binary files /dev/null and b/Source/ApplicationBase/Usuarios/Model/schUsuariosServer_Intf.dcu differ diff --git a/Source/ApplicationBase/Usuarios/Model/schUsuariosServer_Intf.pas b/Source/ApplicationBase/Usuarios/Model/schUsuariosServer_Intf.pas new file mode 100644 index 0000000..2f30935 --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Model/schUsuariosServer_Intf.pas @@ -0,0 +1,1923 @@ +unit schUsuariosServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schUsuariosClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_USUARIOSDelta = '{B2CDE2B6-AEA1-4FA3-915F-D16D39393C56}'; + RID_USUARIOS_EVENTOSDelta = '{A9C5CC49-68FB-44C9-82E1-E91B7635E443}'; + RID_USUARIOS_LOGONDelta = '{94752363-8D31-4796-A289-07D791FC4A04}'; + RID_PERMISOSDelta = '{0C3EFDD0-E026-41A9-8411-F879524DC1F6}'; + RID_PERMISOSEXDelta = '{02B025FC-0CFE-41D3-93CF-65E9659AB816}'; + RID_PERFILESDelta = '{00782C74-631D-4032-8177-FBA0607AA4DD}'; + +type + { IUSUARIOSDelta } + IUSUARIOSDelta = interface(IUSUARIOS) + ['{B2CDE2B6-AEA1-4FA3-915F-D16D39393C56}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldUSERNAMEValue : String; + function GetOldLOGINValue : String; + function GetOldPASSValue : String; + function GetOldPASSEXPIREDValue : DateTime; + function GetOldBLOQUEADOValue : SmallInt; + function GetOldEMAILValue : String; + function GetOldUSERDAYSSUNValue : Integer; + function GetOldPRIVILEGEDValue : Integer; + function GetOldTIPOValue : String; + function GetOldID_PERFILValue : Integer; + function GetOldCHECKSUMValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldUSERNAME : String read GetOldUSERNAMEValue; + property OldLOGIN : String read GetOldLOGINValue; + property OldPASS : String read GetOldPASSValue; + property OldPASSEXPIRED : DateTime read GetOldPASSEXPIREDValue; + property OldBLOQUEADO : SmallInt read GetOldBLOQUEADOValue; + property OldEMAIL : String read GetOldEMAILValue; + property OldUSERDAYSSUN : Integer read GetOldUSERDAYSSUNValue; + property OldPRIVILEGED : Integer read GetOldPRIVILEGEDValue; + property OldTIPO : String read GetOldTIPOValue; + property OldID_PERFIL : Integer read GetOldID_PERFILValue; + property OldCHECKSUM : String read GetOldCHECKSUMValue; + end; + + { TUSUARIOSBusinessProcessorRules } + TUSUARIOSBusinessProcessorRules = class(TDABusinessProcessorRules, IUSUARIOS, IUSUARIOSDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetUSERNAMEValue: String; virtual; + function GetUSERNAMEIsNull: Boolean; virtual; + function GetOldUSERNAMEValue: String; virtual; + function GetOldUSERNAMEIsNull: Boolean; virtual; + procedure SetUSERNAMEValue(const aValue: String); virtual; + procedure SetUSERNAMEIsNull(const aValue: Boolean); virtual; + function GetLOGINValue: String; virtual; + function GetLOGINIsNull: Boolean; virtual; + function GetOldLOGINValue: String; virtual; + function GetOldLOGINIsNull: Boolean; virtual; + procedure SetLOGINValue(const aValue: String); virtual; + procedure SetLOGINIsNull(const aValue: Boolean); virtual; + function GetPASSValue: String; virtual; + function GetPASSIsNull: Boolean; virtual; + function GetOldPASSValue: String; virtual; + function GetOldPASSIsNull: Boolean; virtual; + procedure SetPASSValue(const aValue: String); virtual; + procedure SetPASSIsNull(const aValue: Boolean); virtual; + function GetPASSEXPIREDValue: DateTime; virtual; + function GetPASSEXPIREDIsNull: Boolean; virtual; + function GetOldPASSEXPIREDValue: DateTime; virtual; + function GetOldPASSEXPIREDIsNull: Boolean; virtual; + procedure SetPASSEXPIREDValue(const aValue: DateTime); virtual; + procedure SetPASSEXPIREDIsNull(const aValue: Boolean); virtual; + function GetBLOQUEADOValue: SmallInt; virtual; + function GetBLOQUEADOIsNull: Boolean; virtual; + function GetOldBLOQUEADOValue: SmallInt; virtual; + function GetOldBLOQUEADOIsNull: Boolean; virtual; + procedure SetBLOQUEADOValue(const aValue: SmallInt); virtual; + procedure SetBLOQUEADOIsNull(const aValue: Boolean); virtual; + function GetEMAILValue: String; virtual; + function GetEMAILIsNull: Boolean; virtual; + function GetOldEMAILValue: String; virtual; + function GetOldEMAILIsNull: Boolean; virtual; + procedure SetEMAILValue(const aValue: String); virtual; + procedure SetEMAILIsNull(const aValue: Boolean); virtual; + function GetUSERDAYSSUNValue: Integer; virtual; + function GetUSERDAYSSUNIsNull: Boolean; virtual; + function GetOldUSERDAYSSUNValue: Integer; virtual; + function GetOldUSERDAYSSUNIsNull: Boolean; virtual; + procedure SetUSERDAYSSUNValue(const aValue: Integer); virtual; + procedure SetUSERDAYSSUNIsNull(const aValue: Boolean); virtual; + function GetPRIVILEGEDValue: Integer; virtual; + function GetPRIVILEGEDIsNull: Boolean; virtual; + function GetOldPRIVILEGEDValue: Integer; virtual; + function GetOldPRIVILEGEDIsNull: Boolean; virtual; + procedure SetPRIVILEGEDValue(const aValue: Integer); virtual; + procedure SetPRIVILEGEDIsNull(const aValue: Boolean); virtual; + function GetTIPOValue: String; virtual; + function GetTIPOIsNull: Boolean; virtual; + function GetOldTIPOValue: String; virtual; + function GetOldTIPOIsNull: Boolean; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + procedure SetTIPOIsNull(const aValue: Boolean); virtual; + function GetID_PERFILValue: Integer; virtual; + function GetID_PERFILIsNull: Boolean; virtual; + function GetOldID_PERFILValue: Integer; virtual; + function GetOldID_PERFILIsNull: Boolean; virtual; + procedure SetID_PERFILValue(const aValue: Integer); virtual; + procedure SetID_PERFILIsNull(const aValue: Boolean); virtual; + function GetCHECKSUMValue: String; virtual; + function GetCHECKSUMIsNull: Boolean; virtual; + function GetOldCHECKSUMValue: String; virtual; + function GetOldCHECKSUMIsNull: Boolean; virtual; + procedure SetCHECKSUMValue(const aValue: String); virtual; + procedure SetCHECKSUMIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property USERNAME : String read GetUSERNAMEValue write SetUSERNAMEValue; + property USERNAMEIsNull : Boolean read GetUSERNAMEIsNull write SetUSERNAMEIsNull; + property OldUSERNAME : String read GetOldUSERNAMEValue; + property OldUSERNAMEIsNull : Boolean read GetOldUSERNAMEIsNull; + property LOGIN : String read GetLOGINValue write SetLOGINValue; + property LOGINIsNull : Boolean read GetLOGINIsNull write SetLOGINIsNull; + property OldLOGIN : String read GetOldLOGINValue; + property OldLOGINIsNull : Boolean read GetOldLOGINIsNull; + property PASS : String read GetPASSValue write SetPASSValue; + property PASSIsNull : Boolean read GetPASSIsNull write SetPASSIsNull; + property OldPASS : String read GetOldPASSValue; + property OldPASSIsNull : Boolean read GetOldPASSIsNull; + property PASSEXPIRED : DateTime read GetPASSEXPIREDValue write SetPASSEXPIREDValue; + property PASSEXPIREDIsNull : Boolean read GetPASSEXPIREDIsNull write SetPASSEXPIREDIsNull; + property OldPASSEXPIRED : DateTime read GetOldPASSEXPIREDValue; + property OldPASSEXPIREDIsNull : Boolean read GetOldPASSEXPIREDIsNull; + property BLOQUEADO : SmallInt read GetBLOQUEADOValue write SetBLOQUEADOValue; + property BLOQUEADOIsNull : Boolean read GetBLOQUEADOIsNull write SetBLOQUEADOIsNull; + property OldBLOQUEADO : SmallInt read GetOldBLOQUEADOValue; + property OldBLOQUEADOIsNull : Boolean read GetOldBLOQUEADOIsNull; + property EMAIL : String read GetEMAILValue write SetEMAILValue; + property EMAILIsNull : Boolean read GetEMAILIsNull write SetEMAILIsNull; + property OldEMAIL : String read GetOldEMAILValue; + property OldEMAILIsNull : Boolean read GetOldEMAILIsNull; + property USERDAYSSUN : Integer read GetUSERDAYSSUNValue write SetUSERDAYSSUNValue; + property USERDAYSSUNIsNull : Boolean read GetUSERDAYSSUNIsNull write SetUSERDAYSSUNIsNull; + property OldUSERDAYSSUN : Integer read GetOldUSERDAYSSUNValue; + property OldUSERDAYSSUNIsNull : Boolean read GetOldUSERDAYSSUNIsNull; + property PRIVILEGED : Integer read GetPRIVILEGEDValue write SetPRIVILEGEDValue; + property PRIVILEGEDIsNull : Boolean read GetPRIVILEGEDIsNull write SetPRIVILEGEDIsNull; + property OldPRIVILEGED : Integer read GetOldPRIVILEGEDValue; + property OldPRIVILEGEDIsNull : Boolean read GetOldPRIVILEGEDIsNull; + property TIPO : String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull : Boolean read GetTIPOIsNull write SetTIPOIsNull; + property OldTIPO : String read GetOldTIPOValue; + property OldTIPOIsNull : Boolean read GetOldTIPOIsNull; + property ID_PERFIL : Integer read GetID_PERFILValue write SetID_PERFILValue; + property ID_PERFILIsNull : Boolean read GetID_PERFILIsNull write SetID_PERFILIsNull; + property OldID_PERFIL : Integer read GetOldID_PERFILValue; + property OldID_PERFILIsNull : Boolean read GetOldID_PERFILIsNull; + property CHECKSUM : String read GetCHECKSUMValue write SetCHECKSUMValue; + property CHECKSUMIsNull : Boolean read GetCHECKSUMIsNull write SetCHECKSUMIsNull; + property OldCHECKSUM : String read GetOldCHECKSUMValue; + property OldCHECKSUMIsNull : Boolean read GetOldCHECKSUMIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IUSUARIOS_EVENTOSDelta } + IUSUARIOS_EVENTOSDelta = interface(IUSUARIOS_EVENTOS) + ['{A9C5CC49-68FB-44C9-82E1-E91B7635E443}'] + { Property getters and setters } + function GetOldAPLICACIONValue : String; + function GetOldID_USUARIOValue : Integer; + function GetOldFECHAValue : String; + function GetOldHORAValue : String; + function GetOldFORMValue : String; + function GetOldTITULO_FORMValue : String; + function GetOldEVENTOValue : String; + function GetOldNOTASValue : IROStrings; + function GetOldTNAMEValue : String; + + { Properties } + property OldAPLICACION : String read GetOldAPLICACIONValue; + property OldID_USUARIO : Integer read GetOldID_USUARIOValue; + property OldFECHA : String read GetOldFECHAValue; + property OldHORA : String read GetOldHORAValue; + property OldFORM : String read GetOldFORMValue; + property OldTITULO_FORM : String read GetOldTITULO_FORMValue; + property OldEVENTO : String read GetOldEVENTOValue; + property OldNOTAS : IROStrings read GetOldNOTASValue; + property OldTNAME : String read GetOldTNAMEValue; + end; + + { TUSUARIOS_EVENTOSBusinessProcessorRules } + TUSUARIOS_EVENTOSBusinessProcessorRules = class(TDABusinessProcessorRules, IUSUARIOS_EVENTOS, IUSUARIOS_EVENTOSDelta) + private + f_NOTAS: IROStrings; + procedure NOTAS_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetAPLICACIONValue: String; virtual; + function GetAPLICACIONIsNull: Boolean; virtual; + function GetOldAPLICACIONValue: String; virtual; + function GetOldAPLICACIONIsNull: Boolean; virtual; + procedure SetAPLICACIONValue(const aValue: String); virtual; + procedure SetAPLICACIONIsNull(const aValue: Boolean); virtual; + function GetID_USUARIOValue: Integer; virtual; + function GetID_USUARIOIsNull: Boolean; virtual; + function GetOldID_USUARIOValue: Integer; virtual; + function GetOldID_USUARIOIsNull: Boolean; virtual; + procedure SetID_USUARIOValue(const aValue: Integer); virtual; + procedure SetID_USUARIOIsNull(const aValue: Boolean); virtual; + function GetFECHAValue: String; virtual; + function GetFECHAIsNull: Boolean; virtual; + function GetOldFECHAValue: String; virtual; + function GetOldFECHAIsNull: Boolean; virtual; + procedure SetFECHAValue(const aValue: String); virtual; + procedure SetFECHAIsNull(const aValue: Boolean); virtual; + function GetHORAValue: String; virtual; + function GetHORAIsNull: Boolean; virtual; + function GetOldHORAValue: String; virtual; + function GetOldHORAIsNull: Boolean; virtual; + procedure SetHORAValue(const aValue: String); virtual; + procedure SetHORAIsNull(const aValue: Boolean); virtual; + function GetFORMValue: String; virtual; + function GetFORMIsNull: Boolean; virtual; + function GetOldFORMValue: String; virtual; + function GetOldFORMIsNull: Boolean; virtual; + procedure SetFORMValue(const aValue: String); virtual; + procedure SetFORMIsNull(const aValue: Boolean); virtual; + function GetTITULO_FORMValue: String; virtual; + function GetTITULO_FORMIsNull: Boolean; virtual; + function GetOldTITULO_FORMValue: String; virtual; + function GetOldTITULO_FORMIsNull: Boolean; virtual; + procedure SetTITULO_FORMValue(const aValue: String); virtual; + procedure SetTITULO_FORMIsNull(const aValue: Boolean); virtual; + function GetEVENTOValue: String; virtual; + function GetEVENTOIsNull: Boolean; virtual; + function GetOldEVENTOValue: String; virtual; + function GetOldEVENTOIsNull: Boolean; virtual; + procedure SetEVENTOValue(const aValue: String); virtual; + procedure SetEVENTOIsNull(const aValue: Boolean); virtual; + function GetNOTASValue: IROStrings; virtual; + function GetNOTASIsNull: Boolean; virtual; + function GetOldNOTASValue: IROStrings; virtual; + function GetOldNOTASIsNull: Boolean; virtual; + procedure SetNOTASIsNull(const aValue: Boolean); virtual; + function GetTNAMEValue: String; virtual; + function GetTNAMEIsNull: Boolean; virtual; + function GetOldTNAMEValue: String; virtual; + function GetOldTNAMEIsNull: Boolean; virtual; + procedure SetTNAMEValue(const aValue: String); virtual; + procedure SetTNAMEIsNull(const aValue: Boolean); virtual; + + { Properties } + property APLICACION : String read GetAPLICACIONValue write SetAPLICACIONValue; + property APLICACIONIsNull : Boolean read GetAPLICACIONIsNull write SetAPLICACIONIsNull; + property OldAPLICACION : String read GetOldAPLICACIONValue; + property OldAPLICACIONIsNull : Boolean read GetOldAPLICACIONIsNull; + property ID_USUARIO : Integer read GetID_USUARIOValue write SetID_USUARIOValue; + property ID_USUARIOIsNull : Boolean read GetID_USUARIOIsNull write SetID_USUARIOIsNull; + property OldID_USUARIO : Integer read GetOldID_USUARIOValue; + property OldID_USUARIOIsNull : Boolean read GetOldID_USUARIOIsNull; + property FECHA : String read GetFECHAValue write SetFECHAValue; + property FECHAIsNull : Boolean read GetFECHAIsNull write SetFECHAIsNull; + property OldFECHA : String read GetOldFECHAValue; + property OldFECHAIsNull : Boolean read GetOldFECHAIsNull; + property HORA : String read GetHORAValue write SetHORAValue; + property HORAIsNull : Boolean read GetHORAIsNull write SetHORAIsNull; + property OldHORA : String read GetOldHORAValue; + property OldHORAIsNull : Boolean read GetOldHORAIsNull; + property FORM : String read GetFORMValue write SetFORMValue; + property FORMIsNull : Boolean read GetFORMIsNull write SetFORMIsNull; + property OldFORM : String read GetOldFORMValue; + property OldFORMIsNull : Boolean read GetOldFORMIsNull; + property TITULO_FORM : String read GetTITULO_FORMValue write SetTITULO_FORMValue; + property TITULO_FORMIsNull : Boolean read GetTITULO_FORMIsNull write SetTITULO_FORMIsNull; + property OldTITULO_FORM : String read GetOldTITULO_FORMValue; + property OldTITULO_FORMIsNull : Boolean read GetOldTITULO_FORMIsNull; + property EVENTO : String read GetEVENTOValue write SetEVENTOValue; + property EVENTOIsNull : Boolean read GetEVENTOIsNull write SetEVENTOIsNull; + property OldEVENTO : String read GetOldEVENTOValue; + property OldEVENTOIsNull : Boolean read GetOldEVENTOIsNull; + property NOTAS : IROStrings read GetNOTASValue; + property NOTASIsNull : Boolean read GetNOTASIsNull write SetNOTASIsNull; + property OldNOTAS : IROStrings read GetOldNOTASValue; + property OldNOTASIsNull : Boolean read GetOldNOTASIsNull; + property TNAME : String read GetTNAMEValue write SetTNAMEValue; + property TNAMEIsNull : Boolean read GetTNAMEIsNull write SetTNAMEIsNull; + property OldTNAME : String read GetOldTNAMEValue; + property OldTNAMEIsNull : Boolean read GetOldTNAMEIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IUSUARIOS_LOGONDelta } + IUSUARIOS_LOGONDelta = interface(IUSUARIOS_LOGON) + ['{94752363-8D31-4796-A289-07D791FC4A04}'] + { Property getters and setters } + function GetOldLOGONIDValue : String; + function GetOldID_USUARIOValue : Integer; + function GetOldAPLICACIONValue : String; + function GetOldEQUIPOValue : String; + function GetOldDATAValue : String; + + { Properties } + property OldLOGONID : String read GetOldLOGONIDValue; + property OldID_USUARIO : Integer read GetOldID_USUARIOValue; + property OldAPLICACION : String read GetOldAPLICACIONValue; + property OldEQUIPO : String read GetOldEQUIPOValue; + property OldDATA : String read GetOldDATAValue; + end; + + { TUSUARIOS_LOGONBusinessProcessorRules } + TUSUARIOS_LOGONBusinessProcessorRules = class(TDABusinessProcessorRules, IUSUARIOS_LOGON, IUSUARIOS_LOGONDelta) + private + protected + { Property getters and setters } + function GetLOGONIDValue: String; virtual; + function GetLOGONIDIsNull: Boolean; virtual; + function GetOldLOGONIDValue: String; virtual; + function GetOldLOGONIDIsNull: Boolean; virtual; + procedure SetLOGONIDValue(const aValue: String); virtual; + procedure SetLOGONIDIsNull(const aValue: Boolean); virtual; + function GetID_USUARIOValue: Integer; virtual; + function GetID_USUARIOIsNull: Boolean; virtual; + function GetOldID_USUARIOValue: Integer; virtual; + function GetOldID_USUARIOIsNull: Boolean; virtual; + procedure SetID_USUARIOValue(const aValue: Integer); virtual; + procedure SetID_USUARIOIsNull(const aValue: Boolean); virtual; + function GetAPLICACIONValue: String; virtual; + function GetAPLICACIONIsNull: Boolean; virtual; + function GetOldAPLICACIONValue: String; virtual; + function GetOldAPLICACIONIsNull: Boolean; virtual; + procedure SetAPLICACIONValue(const aValue: String); virtual; + procedure SetAPLICACIONIsNull(const aValue: Boolean); virtual; + function GetEQUIPOValue: String; virtual; + function GetEQUIPOIsNull: Boolean; virtual; + function GetOldEQUIPOValue: String; virtual; + function GetOldEQUIPOIsNull: Boolean; virtual; + procedure SetEQUIPOValue(const aValue: String); virtual; + procedure SetEQUIPOIsNull(const aValue: Boolean); virtual; + function GetDATAValue: String; virtual; + function GetDATAIsNull: Boolean; virtual; + function GetOldDATAValue: String; virtual; + function GetOldDATAIsNull: Boolean; virtual; + procedure SetDATAValue(const aValue: String); virtual; + procedure SetDATAIsNull(const aValue: Boolean); virtual; + + { Properties } + property LOGONID : String read GetLOGONIDValue write SetLOGONIDValue; + property LOGONIDIsNull : Boolean read GetLOGONIDIsNull write SetLOGONIDIsNull; + property OldLOGONID : String read GetOldLOGONIDValue; + property OldLOGONIDIsNull : Boolean read GetOldLOGONIDIsNull; + property ID_USUARIO : Integer read GetID_USUARIOValue write SetID_USUARIOValue; + property ID_USUARIOIsNull : Boolean read GetID_USUARIOIsNull write SetID_USUARIOIsNull; + property OldID_USUARIO : Integer read GetOldID_USUARIOValue; + property OldID_USUARIOIsNull : Boolean read GetOldID_USUARIOIsNull; + property APLICACION : String read GetAPLICACIONValue write SetAPLICACIONValue; + property APLICACIONIsNull : Boolean read GetAPLICACIONIsNull write SetAPLICACIONIsNull; + property OldAPLICACION : String read GetOldAPLICACIONValue; + property OldAPLICACIONIsNull : Boolean read GetOldAPLICACIONIsNull; + property EQUIPO : String read GetEQUIPOValue write SetEQUIPOValue; + property EQUIPOIsNull : Boolean read GetEQUIPOIsNull write SetEQUIPOIsNull; + property OldEQUIPO : String read GetOldEQUIPOValue; + property OldEQUIPOIsNull : Boolean read GetOldEQUIPOIsNull; + property DATA : String read GetDATAValue write SetDATAValue; + property DATAIsNull : Boolean read GetDATAIsNull write SetDATAIsNull; + property OldDATA : String read GetOldDATAValue; + property OldDATAIsNull : Boolean read GetOldDATAIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IPERMISOSDelta } + IPERMISOSDelta = interface(IPERMISOS) + ['{0C3EFDD0-E026-41A9-8411-F879524DC1F6}'] + { Property getters and setters } + function GetOldID_USUARIOValue : Integer; + function GetOldMODULOValue : String; + function GetOldNOMBRECOMPValue : String; + function GetOldCHECKSUMValue : String; + + { Properties } + property OldID_USUARIO : Integer read GetOldID_USUARIOValue; + property OldMODULO : String read GetOldMODULOValue; + property OldNOMBRECOMP : String read GetOldNOMBRECOMPValue; + property OldCHECKSUM : String read GetOldCHECKSUMValue; + end; + + { TPERMISOSBusinessProcessorRules } + TPERMISOSBusinessProcessorRules = class(TDABusinessProcessorRules, IPERMISOS, IPERMISOSDelta) + private + protected + { Property getters and setters } + function GetID_USUARIOValue: Integer; virtual; + function GetID_USUARIOIsNull: Boolean; virtual; + function GetOldID_USUARIOValue: Integer; virtual; + function GetOldID_USUARIOIsNull: Boolean; virtual; + procedure SetID_USUARIOValue(const aValue: Integer); virtual; + procedure SetID_USUARIOIsNull(const aValue: Boolean); virtual; + function GetMODULOValue: String; virtual; + function GetMODULOIsNull: Boolean; virtual; + function GetOldMODULOValue: String; virtual; + function GetOldMODULOIsNull: Boolean; virtual; + procedure SetMODULOValue(const aValue: String); virtual; + procedure SetMODULOIsNull(const aValue: Boolean); virtual; + function GetNOMBRECOMPValue: String; virtual; + function GetNOMBRECOMPIsNull: Boolean; virtual; + function GetOldNOMBRECOMPValue: String; virtual; + function GetOldNOMBRECOMPIsNull: Boolean; virtual; + procedure SetNOMBRECOMPValue(const aValue: String); virtual; + procedure SetNOMBRECOMPIsNull(const aValue: Boolean); virtual; + function GetCHECKSUMValue: String; virtual; + function GetCHECKSUMIsNull: Boolean; virtual; + function GetOldCHECKSUMValue: String; virtual; + function GetOldCHECKSUMIsNull: Boolean; virtual; + procedure SetCHECKSUMValue(const aValue: String); virtual; + procedure SetCHECKSUMIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID_USUARIO : Integer read GetID_USUARIOValue write SetID_USUARIOValue; + property ID_USUARIOIsNull : Boolean read GetID_USUARIOIsNull write SetID_USUARIOIsNull; + property OldID_USUARIO : Integer read GetOldID_USUARIOValue; + property OldID_USUARIOIsNull : Boolean read GetOldID_USUARIOIsNull; + property MODULO : String read GetMODULOValue write SetMODULOValue; + property MODULOIsNull : Boolean read GetMODULOIsNull write SetMODULOIsNull; + property OldMODULO : String read GetOldMODULOValue; + property OldMODULOIsNull : Boolean read GetOldMODULOIsNull; + property NOMBRECOMP : String read GetNOMBRECOMPValue write SetNOMBRECOMPValue; + property NOMBRECOMPIsNull : Boolean read GetNOMBRECOMPIsNull write SetNOMBRECOMPIsNull; + property OldNOMBRECOMP : String read GetOldNOMBRECOMPValue; + property OldNOMBRECOMPIsNull : Boolean read GetOldNOMBRECOMPIsNull; + property CHECKSUM : String read GetCHECKSUMValue write SetCHECKSUMValue; + property CHECKSUMIsNull : Boolean read GetCHECKSUMIsNull write SetCHECKSUMIsNull; + property OldCHECKSUM : String read GetOldCHECKSUMValue; + property OldCHECKSUMIsNull : Boolean read GetOldCHECKSUMIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IPERMISOSEXDelta } + IPERMISOSEXDelta = interface(IPERMISOSEX) + ['{02B025FC-0CFE-41D3-93CF-65E9659AB816}'] + { Property getters and setters } + function GetOldID_USUARIOValue : Integer; + function GetOldMODULOValue : String; + function GetOldNOMBRECOMPValue : String; + function GetOldNOMBREFORMValue : String; + function GetOldCHECKSUMValue : String; + + { Properties } + property OldID_USUARIO : Integer read GetOldID_USUARIOValue; + property OldMODULO : String read GetOldMODULOValue; + property OldNOMBRECOMP : String read GetOldNOMBRECOMPValue; + property OldNOMBREFORM : String read GetOldNOMBREFORMValue; + property OldCHECKSUM : String read GetOldCHECKSUMValue; + end; + + { TPERMISOSEXBusinessProcessorRules } + TPERMISOSEXBusinessProcessorRules = class(TDABusinessProcessorRules, IPERMISOSEX, IPERMISOSEXDelta) + private + protected + { Property getters and setters } + function GetID_USUARIOValue: Integer; virtual; + function GetID_USUARIOIsNull: Boolean; virtual; + function GetOldID_USUARIOValue: Integer; virtual; + function GetOldID_USUARIOIsNull: Boolean; virtual; + procedure SetID_USUARIOValue(const aValue: Integer); virtual; + procedure SetID_USUARIOIsNull(const aValue: Boolean); virtual; + function GetMODULOValue: String; virtual; + function GetMODULOIsNull: Boolean; virtual; + function GetOldMODULOValue: String; virtual; + function GetOldMODULOIsNull: Boolean; virtual; + procedure SetMODULOValue(const aValue: String); virtual; + procedure SetMODULOIsNull(const aValue: Boolean); virtual; + function GetNOMBRECOMPValue: String; virtual; + function GetNOMBRECOMPIsNull: Boolean; virtual; + function GetOldNOMBRECOMPValue: String; virtual; + function GetOldNOMBRECOMPIsNull: Boolean; virtual; + procedure SetNOMBRECOMPValue(const aValue: String); virtual; + procedure SetNOMBRECOMPIsNull(const aValue: Boolean); virtual; + function GetNOMBREFORMValue: String; virtual; + function GetNOMBREFORMIsNull: Boolean; virtual; + function GetOldNOMBREFORMValue: String; virtual; + function GetOldNOMBREFORMIsNull: Boolean; virtual; + procedure SetNOMBREFORMValue(const aValue: String); virtual; + procedure SetNOMBREFORMIsNull(const aValue: Boolean); virtual; + function GetCHECKSUMValue: String; virtual; + function GetCHECKSUMIsNull: Boolean; virtual; + function GetOldCHECKSUMValue: String; virtual; + function GetOldCHECKSUMIsNull: Boolean; virtual; + procedure SetCHECKSUMValue(const aValue: String); virtual; + procedure SetCHECKSUMIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID_USUARIO : Integer read GetID_USUARIOValue write SetID_USUARIOValue; + property ID_USUARIOIsNull : Boolean read GetID_USUARIOIsNull write SetID_USUARIOIsNull; + property OldID_USUARIO : Integer read GetOldID_USUARIOValue; + property OldID_USUARIOIsNull : Boolean read GetOldID_USUARIOIsNull; + property MODULO : String read GetMODULOValue write SetMODULOValue; + property MODULOIsNull : Boolean read GetMODULOIsNull write SetMODULOIsNull; + property OldMODULO : String read GetOldMODULOValue; + property OldMODULOIsNull : Boolean read GetOldMODULOIsNull; + property NOMBRECOMP : String read GetNOMBRECOMPValue write SetNOMBRECOMPValue; + property NOMBRECOMPIsNull : Boolean read GetNOMBRECOMPIsNull write SetNOMBRECOMPIsNull; + property OldNOMBRECOMP : String read GetOldNOMBRECOMPValue; + property OldNOMBRECOMPIsNull : Boolean read GetOldNOMBRECOMPIsNull; + property NOMBREFORM : String read GetNOMBREFORMValue write SetNOMBREFORMValue; + property NOMBREFORMIsNull : Boolean read GetNOMBREFORMIsNull write SetNOMBREFORMIsNull; + property OldNOMBREFORM : String read GetOldNOMBREFORMValue; + property OldNOMBREFORMIsNull : Boolean read GetOldNOMBREFORMIsNull; + property CHECKSUM : String read GetCHECKSUMValue write SetCHECKSUMValue; + property CHECKSUMIsNull : Boolean read GetCHECKSUMIsNull write SetCHECKSUMIsNull; + property OldCHECKSUM : String read GetOldCHECKSUMValue; + property OldCHECKSUMIsNull : Boolean read GetOldCHECKSUMIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IPERFILESDelta } + IPERFILESDelta = interface(IPERFILES) + ['{00782C74-631D-4032-8177-FBA0607AA4DD}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldUSERNAMEValue : String; + function GetOldLOGINValue : String; + function GetOldTIPOValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldUSERNAME : String read GetOldUSERNAMEValue; + property OldLOGIN : String read GetOldLOGINValue; + property OldTIPO : String read GetOldTIPOValue; + end; + + { TPERFILESBusinessProcessorRules } + TPERFILESBusinessProcessorRules = class(TDABusinessProcessorRules, IPERFILES, IPERFILESDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetUSERNAMEValue: String; virtual; + function GetUSERNAMEIsNull: Boolean; virtual; + function GetOldUSERNAMEValue: String; virtual; + function GetOldUSERNAMEIsNull: Boolean; virtual; + procedure SetUSERNAMEValue(const aValue: String); virtual; + procedure SetUSERNAMEIsNull(const aValue: Boolean); virtual; + function GetLOGINValue: String; virtual; + function GetLOGINIsNull: Boolean; virtual; + function GetOldLOGINValue: String; virtual; + function GetOldLOGINIsNull: Boolean; virtual; + procedure SetLOGINValue(const aValue: String); virtual; + procedure SetLOGINIsNull(const aValue: Boolean); virtual; + function GetTIPOValue: String; virtual; + function GetTIPOIsNull: Boolean; virtual; + function GetOldTIPOValue: String; virtual; + function GetOldTIPOIsNull: Boolean; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + procedure SetTIPOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property USERNAME : String read GetUSERNAMEValue write SetUSERNAMEValue; + property USERNAMEIsNull : Boolean read GetUSERNAMEIsNull write SetUSERNAMEIsNull; + property OldUSERNAME : String read GetOldUSERNAMEValue; + property OldUSERNAMEIsNull : Boolean read GetOldUSERNAMEIsNull; + property LOGIN : String read GetLOGINValue write SetLOGINValue; + property LOGINIsNull : Boolean read GetLOGINIsNull write SetLOGINIsNull; + property OldLOGIN : String read GetOldLOGINValue; + property OldLOGINIsNull : Boolean read GetOldLOGINIsNull; + property TIPO : String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull : Boolean read GetTIPOIsNull write SetTIPOIsNull; + property OldTIPO : String read GetOldTIPOValue; + property OldTIPOIsNull : Boolean read GetOldTIPOIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers, uDAInterfaces; + +{ TUSUARIOSBusinessProcessorRules } +constructor TUSUARIOSBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TUSUARIOSBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TUSUARIOSBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSID]; +end; + +function TUSUARIOSBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSID]); +end; + +function TUSUARIOSBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSID]; +end; + +function TUSUARIOSBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSID]); +end; + +procedure TUSUARIOSBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSID] := aValue; +end; + +procedure TUSUARIOSBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSID] := Null; +end; + +function TUSUARIOSBusinessProcessorRules.GetUSERNAMEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSUSERNAME]; +end; + +function TUSUARIOSBusinessProcessorRules.GetUSERNAMEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSUSERNAME]); +end; + +function TUSUARIOSBusinessProcessorRules.GetOldUSERNAMEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSUSERNAME]; +end; + +function TUSUARIOSBusinessProcessorRules.GetOldUSERNAMEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSUSERNAME]); +end; + +procedure TUSUARIOSBusinessProcessorRules.SetUSERNAMEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSUSERNAME] := aValue; +end; + +procedure TUSUARIOSBusinessProcessorRules.SetUSERNAMEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSUSERNAME] := Null; +end; + +function TUSUARIOSBusinessProcessorRules.GetLOGINValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSLOGIN]; +end; + +function TUSUARIOSBusinessProcessorRules.GetLOGINIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSLOGIN]); +end; + +function TUSUARIOSBusinessProcessorRules.GetOldLOGINValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSLOGIN]; +end; + +function TUSUARIOSBusinessProcessorRules.GetOldLOGINIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSLOGIN]); +end; + +procedure TUSUARIOSBusinessProcessorRules.SetLOGINValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSLOGIN] := aValue; +end; + +procedure TUSUARIOSBusinessProcessorRules.SetLOGINIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSLOGIN] := Null; +end; + +function TUSUARIOSBusinessProcessorRules.GetPASSValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSPASS]; +end; + +function TUSUARIOSBusinessProcessorRules.GetPASSIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSPASS]); +end; + +function TUSUARIOSBusinessProcessorRules.GetOldPASSValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSPASS]; +end; + +function TUSUARIOSBusinessProcessorRules.GetOldPASSIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSPASS]); +end; + +procedure TUSUARIOSBusinessProcessorRules.SetPASSValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSPASS] := aValue; +end; + +procedure TUSUARIOSBusinessProcessorRules.SetPASSIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSPASS] := Null; +end; + +function TUSUARIOSBusinessProcessorRules.GetPASSEXPIREDValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSPASSEXPIRED]; +end; + +function TUSUARIOSBusinessProcessorRules.GetPASSEXPIREDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSPASSEXPIRED]); +end; + +function TUSUARIOSBusinessProcessorRules.GetOldPASSEXPIREDValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSPASSEXPIRED]; +end; + +function TUSUARIOSBusinessProcessorRules.GetOldPASSEXPIREDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSPASSEXPIRED]); +end; + +procedure TUSUARIOSBusinessProcessorRules.SetPASSEXPIREDValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSPASSEXPIRED] := aValue; +end; + +procedure TUSUARIOSBusinessProcessorRules.SetPASSEXPIREDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSPASSEXPIRED] := Null; +end; + +function TUSUARIOSBusinessProcessorRules.GetBLOQUEADOValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSBLOQUEADO]; +end; + +function TUSUARIOSBusinessProcessorRules.GetBLOQUEADOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSBLOQUEADO]); +end; + +function TUSUARIOSBusinessProcessorRules.GetOldBLOQUEADOValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSBLOQUEADO]; +end; + +function TUSUARIOSBusinessProcessorRules.GetOldBLOQUEADOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSBLOQUEADO]); +end; + +procedure TUSUARIOSBusinessProcessorRules.SetBLOQUEADOValue(const aValue: SmallInt); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSBLOQUEADO] := aValue; +end; + +procedure TUSUARIOSBusinessProcessorRules.SetBLOQUEADOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSBLOQUEADO] := Null; +end; + +function TUSUARIOSBusinessProcessorRules.GetEMAILValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSEMAIL]; +end; + +function TUSUARIOSBusinessProcessorRules.GetEMAILIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSEMAIL]); +end; + +function TUSUARIOSBusinessProcessorRules.GetOldEMAILValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSEMAIL]; +end; + +function TUSUARIOSBusinessProcessorRules.GetOldEMAILIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSEMAIL]); +end; + +procedure TUSUARIOSBusinessProcessorRules.SetEMAILValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSEMAIL] := aValue; +end; + +procedure TUSUARIOSBusinessProcessorRules.SetEMAILIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSEMAIL] := Null; +end; + +function TUSUARIOSBusinessProcessorRules.GetUSERDAYSSUNValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSUSERDAYSSUN]; +end; + +function TUSUARIOSBusinessProcessorRules.GetUSERDAYSSUNIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSUSERDAYSSUN]); +end; + +function TUSUARIOSBusinessProcessorRules.GetOldUSERDAYSSUNValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSUSERDAYSSUN]; +end; + +function TUSUARIOSBusinessProcessorRules.GetOldUSERDAYSSUNIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSUSERDAYSSUN]); +end; + +procedure TUSUARIOSBusinessProcessorRules.SetUSERDAYSSUNValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSUSERDAYSSUN] := aValue; +end; + +procedure TUSUARIOSBusinessProcessorRules.SetUSERDAYSSUNIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSUSERDAYSSUN] := Null; +end; + +function TUSUARIOSBusinessProcessorRules.GetPRIVILEGEDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSPRIVILEGED]; +end; + +function TUSUARIOSBusinessProcessorRules.GetPRIVILEGEDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSPRIVILEGED]); +end; + +function TUSUARIOSBusinessProcessorRules.GetOldPRIVILEGEDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSPRIVILEGED]; +end; + +function TUSUARIOSBusinessProcessorRules.GetOldPRIVILEGEDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSPRIVILEGED]); +end; + +procedure TUSUARIOSBusinessProcessorRules.SetPRIVILEGEDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSPRIVILEGED] := aValue; +end; + +procedure TUSUARIOSBusinessProcessorRules.SetPRIVILEGEDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSPRIVILEGED] := Null; +end; + +function TUSUARIOSBusinessProcessorRules.GetTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSTIPO]; +end; + +function TUSUARIOSBusinessProcessorRules.GetTIPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSTIPO]); +end; + +function TUSUARIOSBusinessProcessorRules.GetOldTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSTIPO]; +end; + +function TUSUARIOSBusinessProcessorRules.GetOldTIPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSTIPO]); +end; + +procedure TUSUARIOSBusinessProcessorRules.SetTIPOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSTIPO] := aValue; +end; + +procedure TUSUARIOSBusinessProcessorRules.SetTIPOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSTIPO] := Null; +end; + +function TUSUARIOSBusinessProcessorRules.GetID_PERFILValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSID_PERFIL]; +end; + +function TUSUARIOSBusinessProcessorRules.GetID_PERFILIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSID_PERFIL]); +end; + +function TUSUARIOSBusinessProcessorRules.GetOldID_PERFILValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSID_PERFIL]; +end; + +function TUSUARIOSBusinessProcessorRules.GetOldID_PERFILIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSID_PERFIL]); +end; + +procedure TUSUARIOSBusinessProcessorRules.SetID_PERFILValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSID_PERFIL] := aValue; +end; + +procedure TUSUARIOSBusinessProcessorRules.SetID_PERFILIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSID_PERFIL] := Null; +end; + +function TUSUARIOSBusinessProcessorRules.GetCHECKSUMValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSCHECKSUM]; +end; + +function TUSUARIOSBusinessProcessorRules.GetCHECKSUMIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSCHECKSUM]); +end; + +function TUSUARIOSBusinessProcessorRules.GetOldCHECKSUMValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSCHECKSUM]; +end; + +function TUSUARIOSBusinessProcessorRules.GetOldCHECKSUMIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSCHECKSUM]); +end; + +procedure TUSUARIOSBusinessProcessorRules.SetCHECKSUMValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSCHECKSUM] := aValue; +end; + +procedure TUSUARIOSBusinessProcessorRules.SetCHECKSUMIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSCHECKSUM] := Null; +end; + + +{ TUSUARIOS_EVENTOSBusinessProcessorRules } +constructor TUSUARIOS_EVENTOSBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := NOTAS_OnChange; + f_NOTAS := NewROStrings(StrList,True); +end; + +destructor TUSUARIOS_EVENTOSBusinessProcessorRules.Destroy; +begin + inherited; +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.NOTAS_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSNOTAS] := TStringList(Sender).Text; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetAPLICACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSAPLICACION]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetAPLICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSAPLICACION]); +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldAPLICACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSAPLICACION]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldAPLICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSAPLICACION]); +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.SetAPLICACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSAPLICACION] := aValue; +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.SetAPLICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSAPLICACION] := Null; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetID_USUARIOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSID_USUARIO]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetID_USUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSID_USUARIO]); +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldID_USUARIOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSID_USUARIO]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldID_USUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSID_USUARIO]); +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.SetID_USUARIOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSID_USUARIO] := aValue; +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.SetID_USUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSID_USUARIO] := Null; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetFECHAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSFECHA]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetFECHAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSFECHA]); +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldFECHAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSFECHA]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldFECHAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSFECHA]); +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.SetFECHAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSFECHA] := aValue; +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.SetFECHAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSFECHA] := Null; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetHORAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSHORA]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetHORAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSHORA]); +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldHORAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSHORA]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldHORAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSHORA]); +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.SetHORAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSHORA] := aValue; +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.SetHORAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSHORA] := Null; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetFORMValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSFORM]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetFORMIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSFORM]); +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldFORMValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSFORM]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldFORMIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSFORM]); +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.SetFORMValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSFORM] := aValue; +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.SetFORMIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSFORM] := Null; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetTITULO_FORMValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSTITULO_FORM]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetTITULO_FORMIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSTITULO_FORM]); +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldTITULO_FORMValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSTITULO_FORM]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldTITULO_FORMIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSTITULO_FORM]); +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.SetTITULO_FORMValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSTITULO_FORM] := aValue; +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.SetTITULO_FORMIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSTITULO_FORM] := Null; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetEVENTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSEVENTO]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetEVENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSEVENTO]); +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldEVENTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSEVENTO]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldEVENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSEVENTO]); +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.SetEVENTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSEVENTO] := aValue; +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.SetEVENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSEVENTO] := Null; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetNOTASValue: IROStrings; +begin + result := f_NOTAS; + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSNOTAS]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetNOTASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSNOTAS]); +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldNOTASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSNOTAS]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldNOTASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSNOTAS]); +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.SetNOTASIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSNOTAS] := Null; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetTNAMEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSTNAME]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetTNAMEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSTNAME]); +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldTNAMEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSTNAME]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldTNAMEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSTNAME]); +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.SetTNAMEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSTNAME] := aValue; +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.SetTNAMEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSTNAME] := Null; +end; + + +{ TUSUARIOS_LOGONBusinessProcessorRules } +constructor TUSUARIOS_LOGONBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TUSUARIOS_LOGONBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetLOGONIDValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONLOGONID]; +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetLOGONIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONLOGONID]); +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetOldLOGONIDValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_LOGONLOGONID]; +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetOldLOGONIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_LOGONLOGONID]); +end; + +procedure TUSUARIOS_LOGONBusinessProcessorRules.SetLOGONIDValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONLOGONID] := aValue; +end; + +procedure TUSUARIOS_LOGONBusinessProcessorRules.SetLOGONIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONLOGONID] := Null; +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetID_USUARIOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONID_USUARIO]; +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetID_USUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONID_USUARIO]); +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetOldID_USUARIOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_LOGONID_USUARIO]; +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetOldID_USUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_LOGONID_USUARIO]); +end; + +procedure TUSUARIOS_LOGONBusinessProcessorRules.SetID_USUARIOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONID_USUARIO] := aValue; +end; + +procedure TUSUARIOS_LOGONBusinessProcessorRules.SetID_USUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONID_USUARIO] := Null; +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetAPLICACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONAPLICACION]; +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetAPLICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONAPLICACION]); +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetOldAPLICACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_LOGONAPLICACION]; +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetOldAPLICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_LOGONAPLICACION]); +end; + +procedure TUSUARIOS_LOGONBusinessProcessorRules.SetAPLICACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONAPLICACION] := aValue; +end; + +procedure TUSUARIOS_LOGONBusinessProcessorRules.SetAPLICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONAPLICACION] := Null; +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetEQUIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONEQUIPO]; +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetEQUIPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONEQUIPO]); +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetOldEQUIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_LOGONEQUIPO]; +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetOldEQUIPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_LOGONEQUIPO]); +end; + +procedure TUSUARIOS_LOGONBusinessProcessorRules.SetEQUIPOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONEQUIPO] := aValue; +end; + +procedure TUSUARIOS_LOGONBusinessProcessorRules.SetEQUIPOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONEQUIPO] := Null; +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetDATAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONDATA]; +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetDATAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONDATA]); +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetOldDATAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_LOGONDATA]; +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetOldDATAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_LOGONDATA]); +end; + +procedure TUSUARIOS_LOGONBusinessProcessorRules.SetDATAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONDATA] := aValue; +end; + +procedure TUSUARIOS_LOGONBusinessProcessorRules.SetDATAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONDATA] := Null; +end; + + +{ TPERMISOSBusinessProcessorRules } +constructor TPERMISOSBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TPERMISOSBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TPERMISOSBusinessProcessorRules.GetID_USUARIOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSID_USUARIO]; +end; + +function TPERMISOSBusinessProcessorRules.GetID_USUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSID_USUARIO]); +end; + +function TPERMISOSBusinessProcessorRules.GetOldID_USUARIOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSID_USUARIO]; +end; + +function TPERMISOSBusinessProcessorRules.GetOldID_USUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSID_USUARIO]); +end; + +procedure TPERMISOSBusinessProcessorRules.SetID_USUARIOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSID_USUARIO] := aValue; +end; + +procedure TPERMISOSBusinessProcessorRules.SetID_USUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSID_USUARIO] := Null; +end; + +function TPERMISOSBusinessProcessorRules.GetMODULOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSMODULO]; +end; + +function TPERMISOSBusinessProcessorRules.GetMODULOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSMODULO]); +end; + +function TPERMISOSBusinessProcessorRules.GetOldMODULOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSMODULO]; +end; + +function TPERMISOSBusinessProcessorRules.GetOldMODULOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSMODULO]); +end; + +procedure TPERMISOSBusinessProcessorRules.SetMODULOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSMODULO] := aValue; +end; + +procedure TPERMISOSBusinessProcessorRules.SetMODULOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSMODULO] := Null; +end; + +function TPERMISOSBusinessProcessorRules.GetNOMBRECOMPValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSNOMBRECOMP]; +end; + +function TPERMISOSBusinessProcessorRules.GetNOMBRECOMPIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSNOMBRECOMP]); +end; + +function TPERMISOSBusinessProcessorRules.GetOldNOMBRECOMPValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSNOMBRECOMP]; +end; + +function TPERMISOSBusinessProcessorRules.GetOldNOMBRECOMPIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSNOMBRECOMP]); +end; + +procedure TPERMISOSBusinessProcessorRules.SetNOMBRECOMPValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSNOMBRECOMP] := aValue; +end; + +procedure TPERMISOSBusinessProcessorRules.SetNOMBRECOMPIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSNOMBRECOMP] := Null; +end; + +function TPERMISOSBusinessProcessorRules.GetCHECKSUMValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSCHECKSUM]; +end; + +function TPERMISOSBusinessProcessorRules.GetCHECKSUMIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSCHECKSUM]); +end; + +function TPERMISOSBusinessProcessorRules.GetOldCHECKSUMValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSCHECKSUM]; +end; + +function TPERMISOSBusinessProcessorRules.GetOldCHECKSUMIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSCHECKSUM]); +end; + +procedure TPERMISOSBusinessProcessorRules.SetCHECKSUMValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSCHECKSUM] := aValue; +end; + +procedure TPERMISOSBusinessProcessorRules.SetCHECKSUMIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSCHECKSUM] := Null; +end; + + +{ TPERMISOSEXBusinessProcessorRules } +constructor TPERMISOSEXBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TPERMISOSEXBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TPERMISOSEXBusinessProcessorRules.GetID_USUARIOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXID_USUARIO]; +end; + +function TPERMISOSEXBusinessProcessorRules.GetID_USUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXID_USUARIO]); +end; + +function TPERMISOSEXBusinessProcessorRules.GetOldID_USUARIOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSEXID_USUARIO]; +end; + +function TPERMISOSEXBusinessProcessorRules.GetOldID_USUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSEXID_USUARIO]); +end; + +procedure TPERMISOSEXBusinessProcessorRules.SetID_USUARIOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXID_USUARIO] := aValue; +end; + +procedure TPERMISOSEXBusinessProcessorRules.SetID_USUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXID_USUARIO] := Null; +end; + +function TPERMISOSEXBusinessProcessorRules.GetMODULOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXMODULO]; +end; + +function TPERMISOSEXBusinessProcessorRules.GetMODULOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXMODULO]); +end; + +function TPERMISOSEXBusinessProcessorRules.GetOldMODULOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSEXMODULO]; +end; + +function TPERMISOSEXBusinessProcessorRules.GetOldMODULOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSEXMODULO]); +end; + +procedure TPERMISOSEXBusinessProcessorRules.SetMODULOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXMODULO] := aValue; +end; + +procedure TPERMISOSEXBusinessProcessorRules.SetMODULOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXMODULO] := Null; +end; + +function TPERMISOSEXBusinessProcessorRules.GetNOMBRECOMPValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXNOMBRECOMP]; +end; + +function TPERMISOSEXBusinessProcessorRules.GetNOMBRECOMPIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXNOMBRECOMP]); +end; + +function TPERMISOSEXBusinessProcessorRules.GetOldNOMBRECOMPValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSEXNOMBRECOMP]; +end; + +function TPERMISOSEXBusinessProcessorRules.GetOldNOMBRECOMPIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSEXNOMBRECOMP]); +end; + +procedure TPERMISOSEXBusinessProcessorRules.SetNOMBRECOMPValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXNOMBRECOMP] := aValue; +end; + +procedure TPERMISOSEXBusinessProcessorRules.SetNOMBRECOMPIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXNOMBRECOMP] := Null; +end; + +function TPERMISOSEXBusinessProcessorRules.GetNOMBREFORMValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXNOMBREFORM]; +end; + +function TPERMISOSEXBusinessProcessorRules.GetNOMBREFORMIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXNOMBREFORM]); +end; + +function TPERMISOSEXBusinessProcessorRules.GetOldNOMBREFORMValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSEXNOMBREFORM]; +end; + +function TPERMISOSEXBusinessProcessorRules.GetOldNOMBREFORMIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSEXNOMBREFORM]); +end; + +procedure TPERMISOSEXBusinessProcessorRules.SetNOMBREFORMValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXNOMBREFORM] := aValue; +end; + +procedure TPERMISOSEXBusinessProcessorRules.SetNOMBREFORMIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXNOMBREFORM] := Null; +end; + +function TPERMISOSEXBusinessProcessorRules.GetCHECKSUMValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXCHECKSUM]; +end; + +function TPERMISOSEXBusinessProcessorRules.GetCHECKSUMIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXCHECKSUM]); +end; + +function TPERMISOSEXBusinessProcessorRules.GetOldCHECKSUMValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSEXCHECKSUM]; +end; + +function TPERMISOSEXBusinessProcessorRules.GetOldCHECKSUMIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSEXCHECKSUM]); +end; + +procedure TPERMISOSEXBusinessProcessorRules.SetCHECKSUMValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXCHECKSUM] := aValue; +end; + +procedure TPERMISOSEXBusinessProcessorRules.SetCHECKSUMIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXCHECKSUM] := Null; +end; + + +{ TPERFILESBusinessProcessorRules } +constructor TPERFILESBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TPERFILESBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TPERFILESBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PERFILESID]; +end; + +function TPERFILESBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PERFILESID]); +end; + +function TPERFILESBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PERFILESID]; +end; + +function TPERFILESBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PERFILESID]); +end; + +procedure TPERFILESBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PERFILESID] := aValue; +end; + +procedure TPERFILESBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PERFILESID] := Null; +end; + +function TPERFILESBusinessProcessorRules.GetUSERNAMEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PERFILESUSERNAME]; +end; + +function TPERFILESBusinessProcessorRules.GetUSERNAMEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PERFILESUSERNAME]); +end; + +function TPERFILESBusinessProcessorRules.GetOldUSERNAMEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PERFILESUSERNAME]; +end; + +function TPERFILESBusinessProcessorRules.GetOldUSERNAMEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PERFILESUSERNAME]); +end; + +procedure TPERFILESBusinessProcessorRules.SetUSERNAMEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PERFILESUSERNAME] := aValue; +end; + +procedure TPERFILESBusinessProcessorRules.SetUSERNAMEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PERFILESUSERNAME] := Null; +end; + +function TPERFILESBusinessProcessorRules.GetLOGINValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PERFILESLOGIN]; +end; + +function TPERFILESBusinessProcessorRules.GetLOGINIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PERFILESLOGIN]); +end; + +function TPERFILESBusinessProcessorRules.GetOldLOGINValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PERFILESLOGIN]; +end; + +function TPERFILESBusinessProcessorRules.GetOldLOGINIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PERFILESLOGIN]); +end; + +procedure TPERFILESBusinessProcessorRules.SetLOGINValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PERFILESLOGIN] := aValue; +end; + +procedure TPERFILESBusinessProcessorRules.SetLOGINIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PERFILESLOGIN] := Null; +end; + +function TPERFILESBusinessProcessorRules.GetTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PERFILESTIPO]; +end; + +function TPERFILESBusinessProcessorRules.GetTIPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PERFILESTIPO]); +end; + +function TPERFILESBusinessProcessorRules.GetOldTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PERFILESTIPO]; +end; + +function TPERFILESBusinessProcessorRules.GetOldTIPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PERFILESTIPO]); +end; + +procedure TPERFILESBusinessProcessorRules.SetTIPOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PERFILESTIPO] := aValue; +end; + +procedure TPERFILESBusinessProcessorRules.SetTIPOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PERFILESTIPO] := Null; +end; + + +initialization + RegisterBusinessProcessorRules(RID_USUARIOSDelta, TUSUARIOSBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_USUARIOS_EVENTOSDelta, TUSUARIOS_EVENTOSBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_USUARIOS_LOGONDelta, TUSUARIOS_LOGONBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_PERMISOSDelta, TPERMISOSBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_PERMISOSEXDelta, TPERMISOSEXBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_PERFILESDelta, TPERFILESBusinessProcessorRules); + +end. diff --git a/Source/ApplicationBase/Usuarios/Model/uBizUsuarios.dcu b/Source/ApplicationBase/Usuarios/Model/uBizUsuarios.dcu new file mode 100644 index 0000000..a8b0832 Binary files /dev/null and b/Source/ApplicationBase/Usuarios/Model/uBizUsuarios.dcu differ diff --git a/Source/ApplicationBase/Usuarios/Model/uBizUsuarios.pas b/Source/ApplicationBase/Usuarios/Model/uBizUsuarios.pas new file mode 100644 index 0000000..7d39a13 --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Model/uBizUsuarios.pas @@ -0,0 +1,90 @@ +unit uBizUsuarios; + +interface + +uses + UCBase, uDAInterfaces, uDADataTable, schUsuariosClient_Intf; + +const + BIZ_CLIENT_USUARIO = 'Client.Usuario'; + BIZ_CLIENT_PERFIL_USUARIO = 'Client.PerfilUsuario'; + +type + TUsuario = TUCCurrentUser; + + IBizUsuario = interface (IUSUARIOS) + ['{1DB69F36-969C-4078-B862-6D697670BCFD}'] + function EsNuevo : Boolean; + end; + + IBizPerfilUsuario = interface (IPERFILES) + ['{D14DF996-A8CD-400A-BF74-C8B660199C74}'] + function EsNuevo : Boolean; + end; + + + TBizUsuario = class(TUsuariosDataTableRules, IBizUsuario) + protected + procedure OnNewRecord(Sender: TDADataTable); override; + public + function EsNuevo : Boolean; + procedure IniciarValoresUsuarioNuevo; + end; + + TBizPerfilUsuario = class(TPerfilesDataTableRules, IBizPerfilUsuario) + protected + procedure OnNewRecord(Sender: TDADataTable); override; + public + function EsNuevo : Boolean; + procedure IniciarValoresPerfilNuevo; + end; + + + +implementation + +{ TBizUsuario } + +function TBizUsuario.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +procedure TBizUsuario.IniciarValoresUsuarioNuevo; +begin + TIPO := 'U'; // Usuario; +end; + +procedure TBizUsuario.OnNewRecord(Sender: TDADataTable); +begin + inherited; + IniciarValoresUsuarioNuevo; +end; + +{ TBizPerfilUsuario } + +function TBizPerfilUsuario.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +procedure TBizPerfilUsuario.IniciarValoresPerfilNuevo; +begin + TIPO := 'P'; // Perfil +end; + +procedure TBizPerfilUsuario.OnNewRecord(Sender: TDADataTable); +begin + inherited; + IniciarValoresPerfilNuevo; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_USUARIO, TBizUsuario); + RegisterDataTableRules(BIZ_CLIENT_PERFIL_USUARIO, TBizPerfilUsuario); + +finalization + +end. + + diff --git a/Source/ApplicationBase/Usuarios/Servidor/srvUsuarios_Impl.dcu b/Source/ApplicationBase/Usuarios/Servidor/srvUsuarios_Impl.dcu new file mode 100644 index 0000000..72b963d Binary files /dev/null and b/Source/ApplicationBase/Usuarios/Servidor/srvUsuarios_Impl.dcu differ diff --git a/Source/ApplicationBase/Usuarios/Servidor/srvUsuarios_Impl.dfm b/Source/ApplicationBase/Usuarios/Servidor/srvUsuarios_Impl.dfm new file mode 100644 index 0000000..a6279fc --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Servidor/srvUsuarios_Impl.dfm @@ -0,0 +1,583 @@ +object srvUsuarios: TsrvUsuarios + OldCreateOrder = True + OnCreate = DataAbstractServiceCreate + ServiceSchema = schUsuarios + ServiceDataStreamer = Bin2DataStreamer + AllowExecuteSQL = True + AllowWhereSQL = True + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + Height = 300 + Width = 300 + object Diagrams: TDADiagrams + Left = 150 + Top = 88 + DiagramData = ''#13#10''#13#10 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'USUARIOS_ID' + DataType = datAutoInc + GeneratorName = 'GEN_USUARIOS_ID' + Required = True + DisplayLabel = 'ID' + end + item + Name = 'USUARIOS_USERNAME' + DataType = datString + Size = 30 + DisplayLabel = 'Nombre' + end + item + Name = 'USUARIOS_LOGIN' + DataType = datString + Size = 30 + DisplayLabel = 'Login' + end + item + Name = 'USUARIOS_PASS' + DataType = datString + Size = 250 + DisplayLabel = 'Password' + end + item + Name = 'USUARIOS_PASSEXPIRED' + DataType = datDateTime + DisplayLabel = 'Expiraci'#243'n de password' + end + item + Name = 'USUARIOS_BLOQUEADO' + DataType = datSmallInt + DisplayLabel = 'Bloqueado' + end + item + Name = 'USUARIOS_EMAIL' + DataType = datString + Size = 150 + DisplayLabel = 'Correo electr'#243'nico' + end + item + Name = 'USUARIOS_USERDAYSSUN' + DataType = datInteger + end + item + Name = 'USUARIOS_PRIVILEGED' + DataType = datInteger + DisplayLabel = 'Privilegiado' + end + item + Name = 'USUARIOS_TIPO' + DataType = datString + Size = 1 + DisplayLabel = 'Tipo' + end + item + Name = 'USUARIOS_ID_PERFIL' + DataType = datInteger + DisplayLabel = 'ID_PERFIL' + end + item + Name = 'USUARIOS_CHECKSUM' + DataType = datString + Size = 250 + DisplayLabel = 'Checksum' + end + item + Name = 'PERFILES_ID' + DataType = datAutoInc + GeneratorName = 'GEN_USUARIOS_ID' + Required = True + DisplayLabel = 'ID' + end + item + Name = 'PERFILES_USERNAME' + DataType = datString + Size = 30 + DisplayLabel = 'Nombre' + end + item + Name = 'PERFILES_LOGIN' + DataType = datString + Size = 30 + DisplayLabel = 'Login' + end + item + Name = 'PERFILES_TIPO' + DataType = datString + Size = 1 + DisplayLabel = 'Tipo' + end> + Left = 150 + Top = 24 + end + object schUsuarios: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Diagrams = Diagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'USUARIOS' + SQL = + 'SELECT '#10' ID, USERNAME, LOGIN, PASS, PASSEXPIRED, BLOQUEADO,'#10' ' + + ' EMAIL, USERDAYSSUN, PRIVILEGED, TIPO, ID_PERFIL, CHECKSUM'#10' F' + + 'ROM'#10' USUARIOS'#10' WHERE TIPO = '#39'U'#39' AND {Where}'#10' ORDER BY USERN' + + 'AME'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'USERNAME' + TableField = 'USERNAME' + end + item + DatasetField = 'LOGIN' + TableField = 'LOGIN' + end + item + DatasetField = 'PASS' + TableField = 'PASS' + end + item + DatasetField = 'PASSEXPIRED' + TableField = 'PASSEXPIRED' + end + item + DatasetField = 'BLOQUEADO' + TableField = 'BLOQUEADO' + end + item + DatasetField = 'EMAIL' + TableField = 'EMAIL' + end + item + DatasetField = 'USERDAYSSUN' + TableField = 'USERDAYSSUN' + end + item + DatasetField = 'PRIVILEGED' + TableField = 'PRIVILEGED' + end + item + DatasetField = 'TIPO' + TableField = 'TIPO' + end + item + DatasetField = 'ID_PERFIL' + TableField = 'ID_PERFIL' + end + item + DatasetField = 'CHECKSUM' + TableField = 'CHECKSUM' + end> + end> + Name = 'USUARIOS' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_USUARIOS_ID' + DictionaryEntry = 'USUARIOS_ID' + InPrimaryKey = True + end + item + Name = 'USERNAME' + DataType = datString + Size = 30 + DictionaryEntry = 'USUARIOS_USERNAME' + end + item + Name = 'LOGIN' + DataType = datString + Size = 30 + DictionaryEntry = 'USUARIOS_LOGIN' + end + item + Name = 'PASS' + DataType = datString + Size = 250 + DictionaryEntry = 'USUARIOS_PASS' + end + item + Name = 'PASSEXPIRED' + DataType = datDateTime + DictionaryEntry = 'USUARIOS_PASSEXPIRED' + end + item + Name = 'BLOQUEADO' + DataType = datSmallInt + DictionaryEntry = 'USUARIOS_BLOQUEADO' + end + item + Name = 'EMAIL' + DataType = datString + Size = 150 + DictionaryEntry = 'USUARIOS_EMAIL' + end + item + Name = 'USERDAYSSUN' + DataType = datInteger + DictionaryEntry = 'USUARIOS_USERDAYSSUN' + end + item + Name = 'PRIVILEGED' + DataType = datInteger + DictionaryEntry = 'USUARIOS_PRIVILEGED' + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + DictionaryEntry = 'USUARIOS_TIPO' + end + item + Name = 'ID_PERFIL' + DataType = datInteger + DictionaryEntry = 'USUARIOS_ID_PERFIL' + end + item + Name = 'CHECKSUM' + DataType = datString + Size = 250 + DictionaryEntry = 'USUARIOS_CHECKSUM' + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'USUARIOS_EVENTOS' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'APLICACION' + TableField = 'APLICACION' + end + item + DatasetField = 'ID_USUARIO' + TableField = 'ID_USUARIO' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'HORA' + TableField = 'HORA' + end + item + DatasetField = 'FORM' + TableField = 'FORM' + end + item + DatasetField = 'TITULO_FORM' + TableField = 'TITULO_FORM' + end + item + DatasetField = 'EVENTO' + TableField = 'EVENTO' + end + item + DatasetField = 'NOTAS' + TableField = 'NOTAS' + end + item + DatasetField = 'TNAME' + TableField = 'TNAME' + end> + end> + Name = 'USUARIOS_EVENTOS' + Fields = < + item + Name = 'APLICACION' + DataType = datString + Size = 250 + end + item + Name = 'ID_USUARIO' + DataType = datInteger + end + item + Name = 'FECHA' + DataType = datString + Size = 10 + end + item + Name = 'HORA' + DataType = datString + Size = 8 + end + item + Name = 'FORM' + DataType = datString + Size = 250 + end + item + Name = 'TITULO_FORM' + DataType = datString + Size = 100 + end + item + Name = 'EVENTO' + DataType = datString + Size = 50 + end + item + Name = 'NOTAS' + DataType = datMemo + end + item + Name = 'TNAME' + DataType = datString + Size = 20 + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'USUARIOS_LOGON' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'LOGONID' + TableField = 'LOGONID' + end + item + DatasetField = 'ID_USUARIO' + TableField = 'ID_USUARIO' + end + item + DatasetField = 'APLICACION' + TableField = 'APLICACION' + end + item + DatasetField = 'EQUIPO' + TableField = 'EQUIPO' + end + item + DatasetField = 'DATA' + TableField = 'DATA' + end> + end> + Name = 'USUARIOS_LOGON' + Fields = < + item + Name = 'LOGONID' + DataType = datString + Size = 38 + Required = True + InPrimaryKey = True + end + item + Name = 'ID_USUARIO' + DataType = datInteger + end + item + Name = 'APLICACION' + DataType = datString + Size = 50 + end + item + Name = 'EQUIPO' + DataType = datString + Size = 50 + end + item + Name = 'DATA' + DataType = datString + Size = 14 + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'PERMISOS' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID_USUARIO' + TableField = 'ID_USUARIO' + end + item + DatasetField = 'MODULO' + TableField = 'MODULO' + end + item + DatasetField = 'NOMBRECOMP' + TableField = 'NOMBRECOMP' + end + item + DatasetField = 'CHECKSUM' + TableField = 'CHECKSUM' + end> + end> + Name = 'PERMISOS' + Fields = < + item + Name = 'ID_USUARIO' + DataType = datInteger + end + item + Name = 'MODULO' + DataType = datString + Size = 50 + end + item + Name = 'NOMBRECOMP' + DataType = datString + Size = 50 + end + item + Name = 'CHECKSUM' + DataType = datString + Size = 250 + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'PERMISOSEX' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID_USUARIO' + TableField = 'ID_USUARIO' + end + item + DatasetField = 'MODULO' + TableField = 'MODULO' + end + item + DatasetField = 'NOMBRECOMP' + TableField = 'NOMBRECOMP' + end + item + DatasetField = 'NOMBREFORM' + TableField = 'NOMBREFORM' + end + item + DatasetField = 'CHECKSUM' + TableField = 'CHECKSUM' + end> + end> + Name = 'PERMISOSEX' + Fields = < + item + Name = 'ID_USUARIO' + DataType = datInteger + end + item + Name = 'MODULO' + DataType = datString + Size = 50 + end + item + Name = 'NOMBRECOMP' + DataType = datString + Size = 50 + end + item + Name = 'NOMBREFORM' + DataType = datString + Size = 50 + end + item + Name = 'CHECKSUM' + DataType = datString + Size = 250 + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'USUARIOS' + SQL = + 'SELECT '#10' ID, USERNAME, LOGIN, TIPO'#10' FROM'#10' USUARIOS'#10' WHER' + + 'E TIPO = '#39'P'#39' AND {Where}'#10' ORDER BY USERNAME'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'USERNAME' + TableField = 'USERNAME' + end + item + DatasetField = 'LOGIN' + TableField = 'LOGIN' + end + item + DatasetField = 'TIPO' + TableField = 'TIPO' + end> + end> + Name = 'PERFILES' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_USUARIOS_ID' + DictionaryEntry = 'PERFILES_ID' + InPrimaryKey = True + end + item + Name = 'USERNAME' + DataType = datString + Size = 30 + DictionaryEntry = 'PERFILES_USERNAME' + end + item + Name = 'LOGIN' + DataType = datString + Size = 30 + DictionaryEntry = 'PERFILES_LOGIN' + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + DictionaryEntry = 'PERFILES_TIPO' + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 88 + end +end diff --git a/Source/ApplicationBase/Usuarios/Servidor/srvUsuarios_Impl.pas b/Source/ApplicationBase/Usuarios/Servidor/srvUsuarios_Impl.pas new file mode 100644 index 0000000..8a1c84f --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Servidor/srvUsuarios_Impl.pas @@ -0,0 +1,65 @@ +unit srvUsuarios_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +{$I Remobjects.inc} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROXMLIntf, uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Required:} uRORemoteDataModule, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} FactuGES_Intf, uDADataStreamer, uDABin2DataStreamer, uDAClasses; + +type + { TsrvUsuarios } + TsrvUsuarios = class(TDataAbstractService, IsrvUsuarios) + Diagrams: TDADiagrams; + Bin2DataStreamer: TDABin2DataStreamer; + schUsuarios: TDASchema; + DataDictionary: TDADataDictionary; + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; + var aConnectionName: string); + procedure DataAbstractServiceCreate(Sender: TObject); + private + protected + { IsrvUsuarios methods } + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer; + +procedure Create_srvUsuarios(out anInstance : IUnknown); +begin + anInstance := TsrvUsuarios.Create(nil); +end; + +{ srvUsuarios } +procedure TsrvUsuarios.DataAbstractServiceBeforeAcquireConnection( + aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +procedure TsrvUsuarios.DataAbstractServiceCreate(Sender: TObject); +begin + //SessionManager := dmServer.SessionManager; +end; + +initialization + TROClassFactory.Create('srvUsuarios', Create_srvUsuarios, TsrvUsuarios_Invoker); + +finalization + +end. diff --git a/Source/ApplicationBase/Usuarios/Views/uEditorCambiarPassword.dcu b/Source/ApplicationBase/Usuarios/Views/uEditorCambiarPassword.dcu new file mode 100644 index 0000000..c953616 Binary files /dev/null and b/Source/ApplicationBase/Usuarios/Views/uEditorCambiarPassword.dcu differ diff --git a/Source/ApplicationBase/Usuarios/Views/uEditorCambiarPassword.dfm b/Source/ApplicationBase/Usuarios/Views/uEditorCambiarPassword.dfm new file mode 100644 index 0000000..a35428a --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Views/uEditorCambiarPassword.dfm @@ -0,0 +1,123 @@ +object fEditorCambiarPassword: TfEditorCambiarPassword + Left = 398 + Top = 263 + BorderStyle = bsDialog + Caption = 'Cambiar la contrase'#241'a' + ClientHeight = 217 + ClientWidth = 406 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = FormClose + OnCloseQuery = FormCloseQuery + PixelsPerInch = 96 + TextHeight = 13 + object Bevel4: TBevel + Left = 8 + Top = 154 + Width = 388 + Height = 10 + Shape = bsBottomLine + end + object lbConfirma: TLabel + Left = 35 + Top = 88 + Width = 103 + Height = 13 + Alignment = taRightJustify + Caption = 'Confirmar contrase'#241'a:' + end + object lbNovaSenha: TLabel + Left = 47 + Top = 57 + Width = 91 + Height = 13 + Alignment = taRightJustify + Caption = 'Nueva contrase'#241'a:' + end + object lbSenhaAtu: TLabel + Left = 49 + Top = 27 + Width = 89 + Height = 13 + Alignment = taRightJustify + Caption = 'Contrase'#241'a actual:' + end + object Label1: TLabel + Left = 19 + Top = 132 + Width = 360 + Height = 13 + Caption = + 'Si hace clic en Cancelar, no se realizar'#225' ning'#250'n cambio sobre la' + + ' contrase'#241'a.' + end + object bAceptar: TButton + Left = 234 + Top = 178 + Width = 75 + Height = 23 + Action = actAceptar + TabOrder = 0 + end + object bCancelar: TButton + Left = 319 + Top = 178 + Width = 75 + Height = 23 + Action = actCancelar + Cancel = True + ModalResult = 2 + TabOrder = 1 + end + object EditAtu: TEdit + Left = 143 + Top = 24 + Width = 202 + Height = 21 + Ctl3D = True + MaxLength = 10 + ParentCtl3D = False + PasswordChar = '*' + TabOrder = 2 + end + object EditConfirma: TEdit + Left = 143 + Top = 85 + Width = 202 + Height = 21 + Ctl3D = True + MaxLength = 10 + ParentCtl3D = False + PasswordChar = '*' + TabOrder = 4 + end + object EditNova: TEdit + Left = 143 + Top = 54 + Width = 202 + Height = 21 + Ctl3D = True + MaxLength = 10 + ParentCtl3D = False + PasswordChar = '*' + TabOrder = 3 + end + object ActionList1: TActionList + Left = 136 + Top = 169 + object actAceptar: TAction + Caption = 'C&ambiar' + OnExecute = actAceptarExecute + end + object actCancelar: TAction + Caption = '&Cancelar' + OnExecute = actCancelarExecute + end + end +end diff --git a/Source/ApplicationBase/Usuarios/Views/uEditorCambiarPassword.pas b/Source/ApplicationBase/Usuarios/Views/uEditorCambiarPassword.pas new file mode 100644 index 0000000..0f5ec15 --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Views/uEditorCambiarPassword.pas @@ -0,0 +1,101 @@ +unit uEditorCambiarPassword; + +interface + +uses + Forms, UCBase, ExtCtrls, Classes, ActnList, StdCtrls, Controls, Buttons, + uBizUsuarios, uUsuariosController; + +type + TfEditorCambiarPassword = class(TForm) + lbSenhaAtu: TLabel; + lbNovaSenha: TLabel; + lbConfirma: TLabel; + EditAtu: TEdit; + EditNova: TEdit; + EditConfirma: TEdit; + ActionList1: TActionList; + actAceptar: TAction; + actCancelar: TAction; + Bevel4: TBevel; + bAceptar: TButton; + bCancelar: TButton; + Label1: TLabel; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); + procedure actCancelarExecute(Sender: TObject); + procedure actAceptarExecute(Sender: TObject); + public + Usuario : IBizUsuario; + Controller : IUsuariosController; + CambioObligatorio : Boolean; + end; + +implementation + +{$R *.dfm} + +uses + uDialogUtils; + +procedure TfEditorCambiarPassword.FormClose(Sender: TObject; var Action: TCloseAction); +begin + Action := caHide; +end; + +procedure TfEditorCambiarPassword.actAceptarExecute(Sender: TObject); +var + AuxPass : String; + AMensaje : String; +begin + case Controller.Criptografia of + ucStandard: AuxPass := EditAtu.Text; + ucMD5: AuxPass := MD5Sum(EditAtu.Text); + end; + + if Usuario.PASS <> AuxPass then + begin + ShowWarningMessage('Cambiar la contrasea', 'La contrasea actual no es correcta.' + #10#13 + + 'Asegrese de que la contrasea actual est bien introduccida.'); + EditAtu.SetFocus; + Exit; + end; + + if (EditNova.Text <> EditConfirma.Text) then + begin + ShowWarningMessage('Cambiar la contrasea', 'La contrasea no se confirm correctamente' + #10#13 + + 'Asegrese de que la contrasea y su confirmacin sean iguales.'); + EditNova.SetFocus; + Exit; + end + else begin + if not Controller.ValidarPassword(EditNova.Text, Usuario.LOGIN, Usuario.USERNAME, AMensaje) then + begin + ShowWarningMessage('Cambiar la contrasea', AMensaje); + EditNova.SetFocus; + Exit; + end + else begin + if CambioObligatorio = True then + CambioObligatorio := False; + ModalResult := mrOK; + end; + end; +end; + +procedure TfEditorCambiarPassword.actCancelarExecute(Sender: TObject); +begin + Close; +end; + +procedure TfEditorCambiarPassword.FormCloseQuery(Sender: TObject; + var CanClose: Boolean); +begin + if CambioObligatorio then + begin + CanClose := False; + ShowWarningMessage('Cambiar la contrasea', 'El cambio de la contrasea es obligatorio'); + end; +end; + +end. diff --git a/Source/ApplicationBase/Usuarios/Views/uEditorLogin.dcu b/Source/ApplicationBase/Usuarios/Views/uEditorLogin.dcu new file mode 100644 index 0000000..137137b Binary files /dev/null and b/Source/ApplicationBase/Usuarios/Views/uEditorLogin.dcu differ diff --git a/Source/ApplicationBase/Usuarios/Views/uEditorLogin.dfm b/Source/ApplicationBase/Usuarios/Views/uEditorLogin.dfm new file mode 100644 index 0000000..38db70d --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Views/uEditorLogin.dfm @@ -0,0 +1,1101 @@ +object fEditorLogin: TfEditorLogin + Left = 790 + Top = 387 + ActiveControl = edtUser + BorderStyle = bsDialog + Caption = 'FactuGES' + ClientHeight = 241 + ClientWidth = 385 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object Label3: TLabel + Left = 24 + Top = 108 + Width = 39 + Height = 13 + Caption = 'Usuario:' + Transparent = False + end + object Label4: TLabel + Left = 24 + Top = 138 + Width = 57 + Height = 13 + Caption = 'Contrase'#241'a:' + Transparent = False + end + object Label1: TLabel + Left = 16 + Top = 72 + Width = 94 + Height = 13 + Caption = 'Inicio de sesi'#243'n:' + Font.Charset = DEFAULT_CHARSET + Font.Color = clMenuHighlight + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentFont = False + end + object JvGradient1: TJvGradient + Left = 0 + Top = 57 + Width = 385 + Height = 4 + Align = alTop + StartColor = 2971346 + EndColor = 4828405 + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 385 + Height = 57 + Align = alTop + BevelOuter = bvNone + Color = clWhite + TabOrder = 0 + object Image1: TImage + Left = 0 + Top = 0 + Width = 385 + Height = 57 + Align = alClient + Center = True + Picture.Data = { + 0B544A76474946496D616765F6750000474946383961C201FA00E60000FFFFFF + F5F5F5A92824ECECECEB743DF48545EF7B40DEDEDECD452DEAEAEAD0492EDC5A + 34FAFAFAF2F2F2BC2A26B02724E5E5E5E26236B95B55E1E1E1F8F8F8D95532FC + FCFCF5D6CAD4D4D4F5C8B5D1B5B0F0F0F0E66A39C23428D65131EEEEEEBCBABA + FEFEFEF7B192F49366CB938CD34D30C7726AC63A2AE96E3BC7564CD26958EEB5 + A5F9E9E3D7C5C2C93F2BE46638F8E1D8D2867AC9C5C4E05E35C03027B82725C7 + 453AE79A89B9322ECBA59EF7A47BFCF4F1FCF0EBB93A36D8D5D4B44741BF2D26 + EEE2E0A22925AB3934A7302CFEF8F5FEF9F8C33B33DB5D3DB52724B12E2AD251 + 3AD9CFCDE47D60FEFCFCBC7D75BD2C26EBE9E9D6D6D7FFFEFDF7F1F0FEFBFAFD + FDFDF3F0EFE8DDDCFBF8F7DFDFDFDED7D6D45A43F4F4F4E0E0E0DADADAC94E41 + F9F9F9DF6648EBEBEBF1EBEAE4E4E4D8D8D8EDEDEDD94E2FD95738C53729EFEF + EFFFFFFEF3F3F3E2E2E2EBECEDE8E8E8F7F7F7EFF0F0CDCCCCF1EEEDE7E7E7F1 + F2F3F1E8E5E76035E86B39D1D1D2F2F3F4EEEDEECF3F2AD2D0D0F1F1F12C0000 + 0000C201FA000007FF800582838485868788898A8322173C5300919293949596 + 9798999A9B9C9D9E9FA0A1A2A393560C717F6763670D710C56A4B1B2B3B4B5B1 + 8323B887B982BC05BEC0BABDBBC2BFBF3A193046B6CCCDCECFD0D1A50C011F70 + 1075636B6D71161621E0D2E2B4E02156E7E8E9EAE5E3968BEFF0F1883A8D3BED + F7F8F9FAA2A601677513DC9481A38D5B180BB0F629BC64C502030A7102489C48 + 31401C0A0713EA3336AC23C78FC10C8504590CD808643C16AA5CC9125AC30003 + CA68D1E265421908633E18D4D8529F290A5DFEAC3933A0A8D1A31FFE707BB54F + 9ED3A78B4624EB49B5AAD54DFD621ED8BAD58B9B6C6B5A85796525C4D567211C + 024D05A70E843270FFE3CA850067C0862EDDCAE283CAB76F2F1130CE0A1EDCF3 + A556AE5D05D649F0A141000A0C2C10B665254C805409EA947133C18BE7CF9E27 + 88BEC9F84F808366DBF95DFD54C785296C26CB9E2DAEDF3F2D880FCCD4127031 + ABC7DF688B4A4BA1CD87CC9BBDEC5ECE9CA6CD3A701ABB4A2D8EB5F577272F14 + 7122BCBB77592FCF40505ED38D4037CA0FD88490C02EDEC87ABF33B410A6CB86 + 319A95E35E0E9A79D7E78C75414170D22462006B072A9260010B1E825211B1C9 + 27E18498D8564768742590001C654C3053796580F51E4F1486704A030370881E + 6E5B3967DE8B9C75C6E287E6E1F44737D55DA7E32E52C1C00377140629E44B1F + 5CE8C5408DB5B1C6FF186FA597581DEE0D489D7CE05810C006097488988B37D5 + E1A59710BCB5998C5B0EB4018ED10CB2608387ACA9669B6F1AC2A6200D9E944C + 1542E639615A71AC0107676E24D0401861C4A1247E7079A8DB04741574DA2B53 + D26662351C7AC11588D02530C651638CA1615B6FADC8951603AD110042D0ECA8 + AA21F4C050849EB07AC7E7067FDA344617AF3864E8922A5ACA9B798B49170689 + B3595964194E6AE14686037CB0C6061BFCF107B46B7C4094A76D71C6E2015E45 + 776AA4B53028EE81E48E6B6EB9E89EAB6EBAECAA5B0032F6C42AAF6CE650F047 + 029C95716B59E09862E87DD7ACB8DBB28CB502293B839913C01A00EDC75B8839 + 6DD0461B5D54D445FF1B0D48BBC150F84140E6568C7E100003E0CE42679CE29E + AC72CA2C13E2A69C28BFFC4B062C4032EFCD67D57B6F876524D0C637E5985868 + 5067B4D5A1AF006E13471C631178D5A4D6B871E9570557BCF4D5584B74710319 + 7F304002A1A6A76C1D67E04AAC2CEBA6DDEEDA6AB7CDEE0880155132CE742B64 + 4E180D8CD161A07F8411B4390D3D74D97110B8B15F4D21367B1744929D654535 + 855BAADB57EE5D440146845E0ED1D25A6F3DED0763043CE3047588EC342D32A7 + 1EF3EA2BABDE7A21705FB083CD75D7BED0DD79EF0DC70614F0FB779510357046 + 669CE977A497496D70EA3973EB034E181B5CD8E29170B0C27464D833A03DA161 + 5C1E5144124DDCC0FF50C46F1B72006793E2F6FA6CB7CF3E8376C280A7EDF43B + 5F59DE80C2F147EFBF07AD56000D009D8A6612104611447990499FF318D005BD + 4DAD7AA6699A37B497BDED758F735A9B98508AE6B119B9010E6D600033DC47C2 + F795B05DBF004CBCEAC7C271E82C4B36D1DFB0FAF7B78614AA0DF7A983E166C2 + 2D0336E6348D5B8905FA0410AE7CE50C6D78943796C8C4EC656E7301B818C6A6 + 95A20ECDA80C1FA040F3426100727591415FECA217C70846328AB18C683CA31A + C3C8C60421830555D8620BE7188B17022A017DF31D0DFD770AE3802D39B8395E + 7BFE2020F8C8112DF6FAD37E488744A631511D4C748805A1D805298EAF8A8A52 + 8FA098823A137AF2FF84EF938AEC8044C752D6C28ED4CBE31EFB674343798D43 + 1EA2498D08B28611EDE3710340CFA26C3432F8A80392137448E6302845A1202A + 3D5E80C0194676484E88F199D08CA634A749CD6A5AF3406F7442334DC9CD4CD8 + 312078E4DF2A69D89038D80793DBF20A4E6A09996DD682017FA8038B8E84C791 + 2D9179BF4B47301930CCCE4D917002FBCA1AE2A0C04FACD18C6D7C661ADB5846 + 851E74A1647C1760E2D8CD8A0EE77E7A0BC8EEC4394E1AEAAA0D7F48D15BC8F4 + 1CBB180452D2A8D707CA60C4D201311DE18844D0F4E910615E302295C4D80686 + D7416EE9AB0B418CC535874AD4A256B309B1939B4597FA0913B5610085FBE099 + 80D651720AF3321CFFD4A52C43543057147416698189D474D3B31BF9D27792A8 + E1399648C10B4EA498A0D321D2E0D00092CD62A80DB5665EA3B9D7315ED34E3C + 981F5307EB4D6A14893375182842AADA51FA5C89A7C85A0EC174E2557E35E37E + 7FD28D17C8862B6FA023A6699DE95A9DE8D6286A7028D798408B20B0062DBAF3 + 12468DED350920DB2EC68E07AF252C37ADE4A70EB974B1E5680842F458557F01 + 10A05A7D4E4E4C33A0F8D462880CF350B74CA5BDE15A76126A156E5B6F6A5A9D + 2EA9702C2AC319BA91DB4AD4F6BCE8856613DE958C65E8F6BD941822AD6A643A + 3DD6D4908CED9724E320BC3F1A6F3D1004627931C140A87AC85666F52C5AB12B + 5AE14AB27B10C9A0FF7707A0C3F00E6079B230006D69DBC50D6B588C1CFEB087 + 3DDC611183F8C4252EF1884DCC61418820032B842F7CE5ABA2D2E5858FDD1BCB + 59F36B0E6AFCE1389A91116E7CE89883004D1661F843A5C666BDEA02371CF944 + 075BB7E73D9C8A6F5A458BEC017AD686616538BD6046EFCC5820E332D31858A6 + 7A725A0A15458B60E460F935EEF83A66B84591E60C84F4EA80654AC458226929 + 35C52739D7BA4F7E7A4FC219DB29D814C5B7016578C59066B1A4493CE94A47FA + D21A7E5760CA3CE385C132B1372E87430230C506546C2CC4EDE85A2D631CFCD4 + 994674B10B70F61C02C8E9E7834A73B2A0594968D26ECECA535474E494B5D1A0 + 8A42C5964671A59FFF19624C3B7BD9AED90EA7757B0A3F2156B17AFC09A9B996 + 448BE878B83C1EF5A13453BC992CAB2E7771A47339814B99F83401E9A6A08279 + 4DE8094E929853FCDC31790307C53E5AC3047836A4039E6C81175CD23D8AF1B4 + 2DCADB4F635BB4DB035F4EAD0619AA325698FFFA5A937AB82CB018ECAB94C065 + 9D9309EFF74466DED9AD3705F9595AD3664CDFB0E44D624F250B83DBFCE037C7 + B401EC54B3853315BAB59AB99A67EA0D88943A89154FB5AA1DCB96CDCCC82B8B + 61E7E932D1EE40B227DDDF4679BFA43CE57B5B248A9E839600AD48BA818A3016 + 014FBBDAD7CEF6B6BBFDED708F7BDA33AD0357F97CA90DF7ADC8E0CC4AFA00BB + 62DEAEAED2572938FFCC846DC8109398120BFAB8318CFCEA492494BC7FC9757B + 4F32C219E4DAB4381673D2EDBDE638C739C1731EFAB96F185E7767781CE67BBE + A1E7F3C114907012D5CDE3C059A6BF3A8CA55706D255D4540826EEA6A7D2DEAC + EB5F36F1C1C394F895A935BC20CBDCEC35DFB0DCA74FFDEA4FBF0934A35DEA4B + 69255AF9B66C9149F9EBD90CD23F985ADDBB2E2E35C6879C5806843461111055 + 430EFC4022C93197D3F1C969CA56E473B7BB2FB7316BF03572C56FFE86760067 + 7D6F97806AC780D5E7806EF72E8EA07DDBD74267B62C03D06516471F97835F7C + 14619504786EA63DE9B74A0D113C4BE2162FD2195F511711E40D911207671059 + A4024178917FD813FF49FB847C55F65657B6795E03362B22558E867628A08048 + 9884D6570037A01D15C87D57A222109081A8D12FAC766A7C07380F86535CD300 + 919785E3245C37948280541EECF11B45280914B006E3616E5072176E26793535 + 6592644110F63D60873189B606D522528C465707117D4A388884E8765291124F + 38471738851A185CF5C135155371E0564382536A9168649FC558FE72282AA27B + 93A53C19010EF6822FCAC128091016166139FA775F2BC7723DA87C9A472DD6E2 + 6AE9F1539C440A697784BA4800BB1870BBF88BB9188CC07884BEC88BC6588CC3 + 688CC4788CC6D8042BA00C7B9688F2D17D52380083627182D33912E14816D72F + 86063E60B78D4D33FF78ACC44FA4B60129927B047413E85648FD502407767FDB + 781192D78ADB75875783681AB331D6E25FBAA14CE4258885389085C85E3D278D + F473668C628DA8165C6A614E2FC70D151765B60791D2327B1E585CA660196C01 + 5E1F723CD6C83496315FDC423984348F98638FDC838F5F977989C68F44912D81 + 9458FC5373C97893CA989338B9933AD9933C8902B1333B08693B79B7906DD05C + 35E4585DC06D78713D5AA75F43833114231190B17FE4F83B82A368B9E719BCC1 + 1E1F102DA9504434C11EF13711AAB8924FF48AFE148B02E83588124B811242D1 + 28093FE99376599778799739B9732BC002EE35947BA209D4C0309CC18849874F + A3555A527489DD68FF0EC28479175349DEE67A7B143811114088821EE5E12570 + 902D92432A64A3148077359A539ABF068E79186C02C831FED595E305729C8002 + BA289BBC489BB2799BB6A98CB6899BBB398CBD599BB3199C3AF99B06904D8029 + 2169815296C05BB937850D7098BFE48DA7B094D2E218B4D777A7B06DE68717A1 + 587B9B0864A2F291FA712964A91466499A55C639E09853CBC787D51284CE3736 + BC339774099CF6799BC3299CF8B99FB9E99BFAD99F77999BA2F42AC759155562 + 68E1175FE6F41E30580AABF727CB320609E66043D74ADD6535172178BFF3908B + D994C437898D359214A64BB9911B63A30D5E2899DF9335A8C99E7A382D6D398B + A9B51F7C1306B580FF021C709B392A9B3B8AA3BCF9A33D1AA43FCA9B42CAA33A + 3AA448BAA34D7003198088055A1816B01677E16593C00028E228542A09780343 + 3D038A27F748BED36B6E254553994049F998C056A61919861CC9247556A28861 + 130970061233956679A76F65499AB779EE491442283603D137378AA4848A9B79 + 50A8889AA8B279A885CAA8F80937CA40814F7A0FFA959D21D599224322143083 + 54231D7016066DC024726A2A46765F73F894BA426AD5F985D6954F82439DE699 + 74C515A541E16ADB322A3C444067182D14238216C39E5D282D7CFA01C44A805A + D2225FB17708330A2870A839EAAC43CA017990A3D4EAA3D00AADD55AADD8EAA3 + DA6AADDEFAACDCFAFFAD28600037A04293EA137EB794AF5438FA823E94100709 + 508A5C956B0801AA06D6A58FA25D3785119EF537180776A3498FE1478985B2A0 + 53D990ABA42B44F396255A1E99A42C671816BD9AA72EFAA2FB18A3C31373A3D2 + 2DBFE17BA370A820DBAC3EBAA8221BB2210BAE272BB2E0BAB22A5BB22E6BB2DE + 0AB3204B004D8012E78A0F26B22BE9681E9EE10663E0AE9300AFBBB199DA2020 + 8592371ED3A5EA2649101199DCC82F34A53D11A68718D998A3F510E6346B093B + 9299F9315303266F0A75736A7EBD1A821373B6C17AB1EE692D22F5A61B7B6E9E + 0A9B9630AD79E0ACD3FAAD754BB7752BAD76BBB7758BA3772BADD41AB884EBB7 + 829BB7820BB886ABFFB777DB048DF09737DB0C8E89B5E3566E5C3101FB420901 + 900033627F6F282D5926A7CA137E81137B7A78834DB37F33C54F16E98581F794 + 5562195A3B7E00F40F6E8BABEBC11803F8279F79676B40B667AB87690B2DD4F2 + 9EAAB021E005A72D628ADB604FD7C5097B0BB8D92ABD2DCBB7E17AB8899BBD81 + CBAD843BB879FBB7897BAD742BB848957D91EB0C9B483E2AC8955CA91E991BB4 + 9CFB213CA44E9D89BCE8A1B42453A9B147A695B434B24A7458BB9E80F7BF0EC9 + 4F60080E0FD106CD47A25B22B694456AD63635B19614E6E785E2B3A7305ABC6E + 69349DA1BCA30220783622DBC401824BC2E36BC2D88BA3283CBED34AC22EFCC2 + 307CC2251CC32ECCFFC2D9FBC2742B064CE808F479BED370254C7234E41110E5 + E6B3402B0971300607661E42561E4CAC1CA5C24CAB4B7E2F676A8F6195C6C7BA + AABA9DD7195C30D53FF63A6CB73A39038167F6346AFF20393D341039F12CD539 + BCC5FB9E5F932D99A459EDBB255B856E40D409835BC3348CC37E4CBD33DCBD28 + 2CC8E3CBAD30DCC785ACBD0400A990EBC3A160999791223BE4C45F3252CAF2B3 + 24120703D0195D022A961BA7D91041F855BA10D985185A8F43F73F541B875669 + 82E6D027E361A29BD91E08848D5D10134E529299B20ACE42BC7C48ACD6722D1B + B2BE1F2C10712164251A43212CAB9800C32FE0C2D1FCC2D15CCD1C30CD892CCD + D98CCD896CCDD47CFFCDE0FCCDDC9CC852A17090EC0939DB6A01632900D6C63C + 851E46BCC99D6C8A67C087452357261AA14AD39D930B82C13B954E996D68EA83 + 033CB05EECC5D4201EB72A4B5E699D19690589842C88B17BD840100370066740 + AC185D149E52CC983CD1A4010799A18E25FA30B1868A817809355CCD748BCD2F + 90072F1DD332DCC2D23ACD2DFCD2248CD328ACCD83CCD22B7DCD341DD424EC8C + F273CEA0D00F58D2418BD433CD62C5C22357F1FCAE9D4C39D659BBB0B4CB0F83 + 6E5F18A613B4BF2F679E4E794F90648EF956B5509B898193CBEE7629F7A7675E + 0C347937C666481722AD219FD2166E312658AD5C191D84EBACBC0F132CDC3075 + 9100CED67CD82F70FFD886BDD88ADDD88CFDD88E1DD9906DD88DDC5E46AD09C9 + 197BC2C321CE0117D01131D60914BDE5159A2CD535027E3604C4A06245CBCB7B + 49C19D70B6911171C1002DB020DA63FB7BB6A95CCA95DA402C352A519CD232E5 + 984053195D600D1D52C78B621E7011266112173CABC69A756E110384045838CA + BC25BD911306D1AF9110D3860DD3300DD432CDD2E52DDEE61DDEE75DDE8C3DDE + EB4DDEE81DDF2F8D02632658975D0910DD05BC02480433006E4CB678416A5143 + DA471C099C5C9819787639DB001BE387DA4DDDB916A615E9724C99A193385A18 + 37DB67EB48FDD2DB50F574CAB43C910238CCA32B01C4C1632C9EA2D1195C29D7 + BD51175F099602E8FFA779DDC1B42C1067C85CF90B0089DDE33E5ECD3F1EE442 + 3EE4428E07441EE4467EE43E9EE489CD0162B0A4B273DF94D063A80055020375 + 63A078FE04784F8D2C511DB4B9444FCF6916C411997356800D9C78B06D5D6278 + 99C26AC51FAA6050AB942F277F1D0E38090D01A353077F7076534EE2BD664EE8 + F847CAEDC1266AD204F195C2BAE830BAC1E4369EF9FC6752C2E390EDE3938DD8 + 3D6ED84DDED896FEE38CBDE9950EE48D0DA9042AE5FDA0248B6667BBDA6D5B2E + 116109CFA50DE6F78B47DDF010F6E12C4AA1536DAB5A710A313FB478072ABBFF + 9CCA984874DDA3351C6E0E5B67250ABDBC7CEEE77FEEC5AD74EBF65B3C907EE8 + 5CC22C8ACEE88B2EFF8B03802DE466E313FD4148E465446EE411A0E43E9EEE4C + 9ED8E97EE4EFFE02ECAEEE45DEE3F1EEE36200376466EA96B106C4E37E7441A7 + 162CBCDCD66D61E9E5B18EC4B924BAE1E3EF6132CA6E765CFEB8B1A4E1DFDC09 + 5CDA157BDAB99D93C9E6146AC018DFDBCDBE28A056506F9DAE97143A5E021731 + 021A35F17E5DA22119FD2CC45BF3367FF3FDA882294E3D53C5E3F4FEF3ED6EEF + 4ACEE4F7FEF3F2FEE345FF026240004CBA03F67DBEE5F4D42BA24ED920315696 + 686FDCAB2105D5096FE0613E10FE1D573BB490CF1919470B6447B32D59EDDFF8 + 7756A69C6FAE2BB0BAF6D68829F27A3E3DCA0454F864094949C51B10841E2D26 + 71F1F0D04110190DFF96177BF3C44BB6130152710548131DE2221401949FEE96 + 4FF97860F9F24EF947AFF99EDFF99BFFF9A20FFAA35FFA9C7FF9957FFA2F6000 + 8D805B903C290EBF43E756CFD639DB19FCC6A61614234AE09A1AE61D770DC7DA + 158C6864E6784928FEC15C85672735E7D948A6B53D8E0D165C760FE2542878EB + 165AFA6B5A42E196D8B221F55BD79BD22C347FF3EE59FED0C2F859E3F8A1C3DA + AB7561937FF4E84EFAF21FFFF42FFFA31FFF9A8FFFF06FFFF30F082F11828483 + 2F4D23193046008D8E8F909192939495969798999A92210C011F756E135A5E6E + 75631B017161AC716D1B6B6B1B1B7FB50D0D6D6D7F03A1A563015690140313A5 + 6E65A25E5ACBCA07FF1310630D141656160C14715D7F6B6370651307E107A46E + 1009037F6D710C5621EED50C6171015D6D0DB56D5D01610C16FEFE5602B673F7 + CE5A973310B4842305ED4F1C0AFC0086A05430DE3C7B7F60ADF9F0E18C478F1C + 39C69235ABE4AC912669FDC1A5EA21056CF3B47DF0062EDC843A670230001021 + 029E9E83800A15FA7328D0A246870AFA895450D2A34F813AF549B5E9A11B1958 + 4CDCC4B5ABD7AF6031596170B0CE282F65CCAD51D70F9EAB35673E90ACB532D7 + 065E6E7C017314C2429704CABC286356AE4E9D325E0EA08D368DA0356C0DD60C + 800321AFC28513CAC019B3765F3F6AFEE2050860EF563E5510F97D1618B0E2C1 + 840B17FF6999BAADFFBB4915E58DAE77EB1EDDDFC06BA59C05DCB4BE380F5929 + D7DD6000849ACE20E4B4C0B350A19E53AD4B0D8A9DEA54A14BB907FDAE747CD2 + ECE6C3BF1053002B8F2961E3CB9F4FFF91A733A148693EE390C2E7D0714416D7 + 5CB6D88557290304F0880571AC019B385A9493C007198D5186425E40238D05EF + 30E0E1451B9C91C061A340E886291336A08A87A079A81B3DB9C4881A8BFF0814 + 42357E21741943633884DC8F10D9B61524EFC0130636BB95D61B5DBE05579C69 + A78D06646AAC20D9007E6E8873D3073AF1141550337C09E6984285696604613E + 75669A62AE19159B623471C3053BD467E79D78521407288369B64617FE59139A + 870108281781E9BCFF32462F6EFC124C2771FCE18D388AEDE7D0350D24E00686 + 1AC601DA3FFD30709164245E160E5AE69CB14117AB78F8998B17F9D600ABFE85 + 5A634006E9185B43AAF42A6590D4DCC6C98DA1C913533D31C6D8DBB2CBC6D8C5 + 712D21F7D2B42F2147DA95A168090197D419C566996D0EC5A69B6782DB53B962 + 9E8B6652E86237C20A2C54015F9EF4D61BD68D61487A969F3A718823A801C275 + 2881B770D3CB04094803D94C88693141399BADBACE8D1464BAA962100CD04018 + B70AE48F3C6D70E38D28A64608C16614D24AA30547C2888B3E41BA2A288E64E9 + 3A4E863DFEE82B6DA1B64611B1F1C0E4EBB344174DF46848CF3325B5D52A4DCF + 3D586A59C707EB78FFB9EE0C58839935D6E45E3D66D7E8A6C935D85E8F5B369A + 5B93198118EFC66BEFDB7067D249176324845602A944F40FA86114FAC1000392 + 444BC175E735011C6B34B0C1A21034FC0C1CFCB11A915B7F68AAD0963AFDB777 + B1A4DD35E237A67A91591D906FD0460081F23DCFAFAAC96C6B185D38B723CEB3 + 396DBB4B930F194941D65469ADEDBD02FFE3F0D2BE5425922E678497B6DC0200 + 76516B420F261E664AAF2EB9D2574FF60CD4A3097DF7D1878DE60B2824B28313 + 71A7AFFE820138378A66798726A8FCF234F077E07311DE4B86708C5813397540 + 876770B5390A54EE626E401CEA6CB51A8F89AA0B91E9C6371263A2930D2071AA + D05BEFA8E5AA0E5AFFC3456D90DDAE7236BCE0052F3912A9C48D681634A6C164 + 692E8409D3ACC59B8CC4627936995AD5C6C6C31EFA906B0BF821108548C4221A + D1888398539DD6C744B831E00F6611CCD432C7C25789C67E8013492C6641B8CA + 08E618DF50CC31EA9080CEF48320FF0A8827D600872C69017E0118D407A9E140 + DD6CA31B8D2BD1A9209680C8B50A541D0C64202910C207F1A876D69252D258C7 + 229FE166851F3C5E0C2739496B61A42437CC964DB61547E7F5106D66DA1A1141 + 89441F829294A62C222A45393602ACE0024568A22CE915860F34CC0D09F843EA + 04C5408BFCE16F0308C916556230CB086630285A4BAB3407AAD050A00BA000C7 + 1BC7D00506F2F29AFF4103D119E0D00B4A39CC1490FB833E34B8B750C5C35547 + 6A40DD66D710E2995078C00AD6CF08188F2335AD78337489F19A568F8CA48454 + 59CA21977632C4B105116B072DE80C126AD0853A3488101D22431DDA5084F230 + A2166DE844311AA715C0609620A5CF8D02009852D4610DFDB2E67F44F387338C + 218B0353C90712E0456FDE4463EBA06333551A8F10D621315A38E93A5824485B + 0DCA8E1FA81BE84227A10BAAA856D8FC203A03642176F6285AEFCCEA8F54132C + 611109922EB2E73D8987CF6A8DE6922839090EA3D33C2438D4AD191DA25B8308 + 578ACE60AE0FCDEB46EFCA35BCFE30A11855685C358A3502CC8911214DEC57AC + 90AF3AF0A8019E92FF1F4FE5D1D297C6458B321D515E2074B70D44D6633B2D6A + 002A77A103E012B22B15243683F6B4A4520674E2280504CC91B287341257E6AC + 5F5547E8239D094FABF16C8DEE1A81469A1D8FAC65155A3F35925658AC157304 + 8DA874F54A5D882E60BAD2BD6E7517AA5DEB6277BBDFF5EE7691202718F060B8 + 8A4D2F45EE038152283050AE23AA8B46EB52C05D7624B598694D17528E3354F3 + 5F922DAA6AB2C146706468006D9886548B2AE096E94244A1D02361C82897D34D + 8E9E165167696FC62B9D29F2C33B5B9DB41AE9D5AFE2369B649DE16EEE3192E6 + 3A57936CED6478C14BE319DB58AFDDAD6E8EC51BDE1DCF806D1E8DA57A874C09 + 2B18B08D111A431BFF22A2525EB2D4A563F888306731D36EF257A8D48187933B + B81CDFBD263119E2568019ECBA6265E3979FB34C6CD3B2190CFE51751AB66A6F + 7FA7D53AE34E48E8252E3DC5BAB4D5F106165A1CA65A61BCA5AA5DF7D0884EB4 + A217CDE8463BFAD1908EB4A27F7C0378A18FC8987E84153EF19C0C9D61A84D66 + 60DF2A6BD9CBCA651622AA4CC9CA70D238DEA897E8ECF2713780E4039421014B + 5E2D993DE8220AD0E38E3485EDCD463721D3AD02CEBBE5F0557D6B673B278746 + ED78E4892569D66BD9B0C52E0628F3645C631CDFF8DBDE7EA88FB34BEE70F778 + 011168820E32B0C44C67DA2F0340CC4DD6E0A9A2AE76D4501E807D43826A9A5E + ECCA2865405FB61CFF56E5B83040BC30B0503936E640CA9A155C065195857D33 + 700AB056194EF621DDF9DB8E9FF0D9B699A7719BE6B293607B382F0EA833A6B8 + 93485720D12F6774CC1B3D7345A7610133AFF9A2757E7344BF5CE78A8E799C44 + 004B77BF3B53C540982E172C5F733E790C2FD537480E95EA7F8FC31428F597D3 + EB69F0694D69B4BB3DED3AAAD8E02E37FD1ABF4E6A1DBCC8D4542112321AA71D + 5641BCBA102F5291D2E2EA40F20C80DC200982D76E31CA07ADF267344FD2397F + 34D0612E699C377EF190AE79BA5F2964A3ABF78951BCF5C6984E5427E31BEAFA + B66FE0B6F99C92615D27402B38B55F38BC2ED01AA8D2F92FCD38AFFAE538BC65 + F5904CB0A1438E93FF7D4045C889336F39DE6C8F2B2DEFFF89F6B0E0E16BB49E + 7CF029971AD55A7EDD9F3BBEFA8EB7BEF6B37FE8ED637FFBE0E7BEF7C54FFEF1 + 875FFBE9263A622DAF58066CC0B1CF4030C3ED2D6AFA823EF420B9214DF578F5 + 56FBEBA8AB4756C1134265601370B0010AA66B82F470CAB180BF06619B052137 + 710690552871D76174667CEF94816405715D352C2C431A81E76283A76D9BD43C + 89677DDF477E2B787EDD577EDCD782310883E64783E2D751305005ECA75861B0 + 0617620A1FD0051CB36BB9657F51877F973519A56722AD26705A564F5E477CC7 + F70966310E65A06450554EB4C78010175FD8F060BB4741B6964BFA207CCA3667 + 1AD871BF835CCF06FF1003F108F8F26BCC458225F85C3AB4131590873FA7877C + D8877E88737908887D28887E58887A48888768888A18888B388815D05117A083 + 3B08523DF8832C477BF1F574472875494819FC1721FE472C527524C87577BDB2 + 0109704B5323399A43665C6876BD267123F21CE1804B7F62811B764873677774 + 172D6C986231F381C4C520BA308782067D84B76DD491888CD88C7BF88C82188D + CC088DD3288DCE8888D7588DDA988D798883F332894D544B9B9240018789F1F5 + 799B28751CA1849F787A4E0848A4C86C4E8334A3F14B48162165A40EAD43845C + B71C4CD385B1385AFA951887B31610748124248FC5F78B0CD9861F6801CFB40D + 98858CC361822B37FF7D00D0881AB9911CD99179E8011E19927A485E59B17EE0 + A83EB58418706445F4E721BE466AA117931E8147D0D17F59278AC5F24226448F + 4803418B535A37254EC1032CB0D68F5D472D0D1856CDC746595290F96086BAA8 + 9069D890BF683CB7252AAFB011C7489198F45C9CB48C22199662399664C9876C + 931527C944E2D85929B56B1FF492F916939C884756078A01879339093C3CF92C + 30D25266E1306A810BB7A03245597B47394955828B0E8338A70395B423850B49 + 950C591B1F532873C89515698703050048F091150092A0F999A2199A208906A3 + 799AA4899AAA199AA6599AABF99AA9199BA7D99AAFF988319015DF98966F9392 + 77331BFC28557079FF7F72191767A08496B10C40E86A00E64C3B438F4613236C + 7421110207BF07412F831A49B980B2462D4B032BB1F38378A30F7F8090885477 + E6698AC7279993C90FF2A00DCF87995D49685F0900068004B4299B20E9999E89 + 9FB0599BFDC99F00FA9FAF9906727201EFA19B70B396B7E61043E8962E698431 + 197503E35AAAE6302C87976F59773D5934C9E27AA9A80C98E367CF920FC7C155 + B7E78FDCA94FEC491A55854B42399EB9F898259486BEA89E6CC89DBAF09EF019 + 7D02553524600262900615609AADE901466AA46870A44ABAA44A3A9A46FA994F + 1A9B1E90A44C8A9F557AA5589AA54BCA0505DA6E084A4BB6D49B9EC18F0F0A93 + C3290BBDB101FA85FF0C9AC12D18DA3B896434C8922CBA9070A42054B02282F8 + 90416587A231D40A01808AE3984BF5489E5845A3E969A3C0F8233E29783B1A9F + 85379F1A90034D4000421AA0982AA0991A9AFBA9A99E1AA0041A64B9F9A576A2 + A078B30FE6285FC17984F9B701D7590F9E030770800E63B739A0E26BF4403474 + DA1BB9D052DEB00C6590132CA21BA5112579D7800CF8A7EDC994D3A4226017A3 + ED34A3C557A38A3A3C24D7A8748899165968D4C104931A036280A45A9AA554BA + A4E5AAA4E77AA4E93AAEE2CAAE53AAA5EBEA015C10031EB503A34AAAF3C19BFC + B28F44089709107503323851B262FE244ED3B09C471513749A0BCCA20B49D55E + 63B864AF428A4962FF1CD8A91ADBE942ADD006D1F44608360F302A67BB789E1F + 56AD93A95C8AE3A88FCAA32B476FC1E003DE2A02E0FA91E65AA52550A5F17AA5 + E57AB3EDCAA450AAA43C8BA53B6BB3471AB4430B922AD0362689AFF9FA01E3A8 + 400D4A666F09A1015B17039B9E2D414E9BE392AEB0ABCC720BDBB04D9B72139E + C50EFF62117A9A0E25DA3A198B94A27225A557060856A8D09A9019E86C268B5C + 5128822AFBA8DB9A31D504005F60064CD0021A10030430A4497AB38BEB01416B + A4417BB392FBAE8CEBB8963BB990BBA48F4BB498ABAE96DBB8930BBA97ABB9A3 + EB016930AF1EB5B44C1B1695088A41C8AFAEB8AA558B0BB9C0974A4325F164AB + 7C03234AB22CBF41FF65BFEA69D5341160652C73AA0F7C6A9862F5121FD21C7F + 19ACACF2AC222B955A95B7374A72399AAD5C69912615840C20055FF0053ED002 + 2B30B343FAB9968BAEA43BB9A18BBE9B3BB49BABBEECBBBE94FBAEE25AB9959B + B9F97BA42A50692C7069AB1B1FAD6B0AFE3584B0EB70C1194C5B640BB46BBBB4 + 11332BA5BBEDC9B0BE0B1C54F6A177B3311341409144B1F48871C96A956FEB3E + 68E15FF5988A720699C263BDD78B3C2CA6BD14699100941318E00366E0035B60 + B8E09A068E5B023EFCC33EDCC3920BC4445CC4462CC4420CC4486CC44ACCC43F + 9CC4471CC53EBC04FDCB6E9218C060E17E09117F09E62244D83291211225C1C0 + 0D4C8FC817C1BA8BFF76A5E12474711275937453D40EBA9B9349837146793C5D + 88709D167B208BC2BC35B2E8C9C22DBC3A2FBC95F0699152330018B0C852100E + 3ADC045CB0C4685002933CC98E6BC94F4CC9928BC9419CC9979CC99CBCC9433C + CA92FCC3987CB9981CCA9FBCC469A002AF745E589CC550241857B821E704900B + 380F8A6372C4B1120D8CBCB7CB64D764AB6807784EF24FCEB1298BB131C9C71A + 38B2BCFCFA8ACD4BC2B177C2758B869129C8D65A6D852C387EBB564CC8C81810 + BE3E20031A40024D900668A0004EDCCEEEFCCEF01CCFF23CCF5CA00222C06EB1 + FC15168074A5904BA0C675AE182B3634C650C2975202723B25C11761C1FF9472 + CB306FA8736100B6FF757D6A760CD21CED55C2D18B8AD77CA878ABCDDB2C34DD + BCB2C94829B1B1C8286D06E130072D80CE5C50C94E0CC5F13CC9F37CB9ED4CD3 + F3ACC9335D025CFA4AF69ACF5CE11716F23007F8CFD929607F07B664EC2C7887 + D046B5B56A9C11FE6412282119BF3A0E38711C10BC325A58D1491929162218D5 + 1CA87E7C862ABC8120DD67A331D2248DC8268D017E00D78BFC0507F0057E70CE + 31C00525A0007CFDC3ECFCD7440CD8ED0CD8EC0CC484EDD77B9DD8869DD8828D + D88D7DD890ADD88E5DCF4447057C07D4926001ED831819426FCAEB8A1ECC1B0D + 6BD08C2447CCC439AF50918267D588310E9C742CC89B8550CD60B2F621A425D6 + 5C320F1C3DBD89C4FF8BD40AD25EB7D6DB00C3C8E8D69482D23E80D21800BEE3 + 4BA953FAD88C8DD83E5CD8921DD9D47DD8D31DDDD06DDDDAEDD8DD1DD9D9CDD3 + 4DE0D3008CD99560057B921F9C84ACB008DA7F47C1657CD0C1684DC4EC0AFF84 + 6D233119AD1D549E950DBA50170E99D0B4DD85FE1007B46638ADA6DB65BD71D2 + AA86698D4F843CDC86ACADE06CD25F00D771BDC87A00BE07E0073280CE2A8006 + 7DB0CEDADDD77CCDDD7F6DE2279EE22B0ED92B5EE22DBED72D7EE28C3DE3364E + D82BDED3179005E67D09217064177285090671B5EDA028B61B4653C7C2DC647B + 139126876D5A3400FB87D59E85AB739A347AC353DA49230DF29709940A0ADED1 + D47B3B0F0EE1BA2CFFE1DEBCA3884C0A97E10617AEDC8B6C065FB0057ED00239 + 30022AA0CEDFBDE728CEE77EDEE780FEE7825E0290F8D33D8E1B61D0062DEACF + 41C28064EA3BBD7D34F330DF51B5524E8EDF211112935185FC0DC289640FFA28 + E05BC8550CC227D3D9DF647DCD679DA865BEB7D93BE1DBBB56DF541367E0E6C9 + 1DD7192E0572BE054C900324A0022AB004327EE3C45EECC67EECC89EECCADEE2 + 3D8DCF87CE099EC0275BC28A8E4EA6E8546D664C944D27559C93B21B91E9E02E + E595E1DA08182CCC2782B3B24B99E8703253EA09F14670503B01B0060B2E771E + E6DB65DE670BDDB76A2EEBE5E045F30E0107200518A007CA2D05CC3D071A7003 + 31A002C3BEEC101FFFF1123FF136DED330E004F7FAEC63D1007020D657A5BC47 + CD609E774FB461A295BEBB290BEE1CF1112EC54D6E54071B1006CAD717A22125 + 0C27EA528BDEB6849CFE4C60F51EAD63FEDBC08DBD684ED22C8B16FD93007010 + 028D35F0058FD271CDDCDE7AB8C15E020860EC57CFD759DFE25B7FE35B7FF560 + 6FE35F2FF6271EF65D5FF6CA9EF55C6002AF4405CFBE3B9B5652E4E819AF78C0 + 5F0CE95679F24F0D321299E92C3F93FE46EE32BF15A9D7EE5B4B70AAA5F3D2A9 + 19B5D305D1C9DB5399EF7BCBD62BCBBD81D90000606492E2056650F0C99DDC08 + DFF9857BB8E9FCF061EFF5647FECA7AF0067AFF5588FEC673FF6C4AEE33CFEF6 + 901006B50E9808E6FF1F756FED81D4C149A9F780746670419C2C0F3803D00DD9 + 1254F4D65545E2CC69AC8032A3F83CEF10A4C13029DCE0D5DBEADC5CF46DBD56 + 07D6C58D30166D001852E007B88ED2BAEE03E37BB826F0D27DC0FA0830FF66CF + FAF65FFFF47FFFFA0FF6F30F080A08820883868288878A898C8A85898F8B8B0A + 5C262B1745009A9B9C9D9E9FA0A1A2A3A4A00C1B105E5E6E097F710C61B1B2B3 + 610CB6B7B8B9B916B6B1B7BCB6C00CC216C014010D6B67CBCC03CECE0970106E + 5A5A106701B621DB00DBDE5656C5E2E2BFBAC156716765D565090D71710D6770 + 655E07F75E10637F01F0710100FF0504D8CF9FC18308131AA4C05060833F6B22 + AED940B1A2C58B16FFD70CA8E3E6DE817C03DA5060B06393853803BC489182A1 + A54B295FBE1C6022E3460C1568FA3482246967CF9F3E83027534488150A15C54 + 5CCA52AAA9D3A75045596893C08D970975D6C4A140AB2B2D7360C3F21A3BAC2C + 5906C792395BF6AC6D348EEC06741969C18AB710E0F28EDB6B76D7B093EA0E68 + 2933E65D803F63EAD4F3986FDFC17E90FF299C4C1921430AF002B4812811A367 + 8C1A3932D6F78E018B4C9A2C0480A3E58B143F2E639BF9C2A4C58D265C0AE9DE + CDBBB7EFDFC009F116FE5B3871DFC7811F525042298C2A53A24A9F0E8A9B5374 + 1FE092DEDACBEBD7B0E0FB921DFF975718641ADB0E18C39E7DB469EC0AC3AB75 + 0E6F5E707BC99DFDFF552CC0808E8DFDD1853CD2943141355A4CA00F3FFE44E6 + 6065104E7659669B4934D167186E105A47F86CC740062C1861D21E70B8F10506 + 7AB4E403062BCE465B0B39DC94131ABA25179C728644A29C8DC52157238EC6F1 + C645132BC02022754852875708D785D14002EB9401C71A018C048B77DF85A7CB + 7EE491074B3C1FA8D75E7BEF753458615D00D44517718461817DF7E5A79F7865 + 053006350A8EB1C11F1FD053861B6E4C20A81B0B3E26596411267AD084FF54D8 + 59869F8536C168856523820830EC50456A01AC5186192862009B8A6694CA0413 + 1AC49042097DE0E8AA0BAEEAD6AA72B0CE8AA3ADBFC11AEB6E955CB203934906 + DB5408B030E05408FFAA7D908A820394762596596A295639C100735E03618EB1 + DE98EDC1510704935AD36C005D6CB6411B71BC799F5E721253AD2D5D54A5851B + 758CB10C94135C05A81B7F2E589040900DA4E8C05B35D4286711411AE9461C7E + E4E108226400C31D59301942181B94E1DAA82A62208519F7309103092A7061D4 + AE28A7ACF2CA29DB30E452C2C61C0A5E14B4B14103FD70F5A628C83600872A6E + 4C19402DD076252D785DD20926B76324E0F4D3101828581D1F14A4590373BD09 + 679CEDD2C90B55074AE9343DF608A62FA01024B0C1BF87B64DB0A28C6A86F085 + 0A5FB4A1161D56CA400123E820C2052C44D74D1872D4F1851F29C6E631C83ECC + A1410E2670D16AABFFB52200EBE596675E88AD946BEE79E59863CE79E6A2CBEA + 7921BA22606BE8A49B9E3A022F3F27B8CCB40FDE406275C091C0191BA43B4A08 + AB55039248456379F4B4493310471B1F8CF9F4F3DE5A35F51F6EF6A2B35DDBAC + 8B5FD76315630BD8F3C2117DD91E993D413B541A8AE8DB89C6FD908575833680 + 34933A2CDFDE23F0FD370CA8013095E12B5A51C71667862DC0E8264B50C0E458 + C6C0063AD055B12B49ED6466052741C923F3CA4A1CAC209536B0E61E41A31243 + 8A67B4E36DC96B65595EF312D034E88D0D3E1F4940173868B1BBDC457BE1E0DE + 3818E0C149110A86E5C3E02AE07006AC59AD6D6C631F65260490F73D2A7E15D1 + 4802A691379CEDADFF0058EC9BC48A60310BD8010E0790428A38E6310C98EA71 + 2468C21254D73AD6B9B18D707CA31CE348C739DA918E2E23D2058E3441245981 + 01878112DECA879533B4A14A0C005637D0D28601408052FCB012096561C26905 + 03172A6CA10B75A79803C53000D5B1210E73989F6184E37B0998D4F9A8810F41 + B9D20BD5381F116F4690242A31424C44C6DCA09891F981AB8AAFC022DFF8A603 + 89F16007D1B10205DE700033F8C007645C49A97CD002DBC4C0649DBBA336EBC8 + CD6D7AB39BAD831D91B0C0943E524735F3A8C72031C8AF7AF5CE029BB042A74A + 543FC1D0CB901430CF246751C91392074C9B8CC65B0285B7098C01949FB061F6 + 70D8AEBA14C34970FF085735F041A86F41206A9E1CE2183E60C45BBE2D6E8E4A + 182F29A291120D1224A511A64A21664C3668220E6F3810A812F792D96CA13631 + E2C21AFBE0829E5ACEA7A1E3294F81DA53A1F6F4A83FBDDC5091EA029E5ACEA9 + 4C251D50A17AD4A62AF5A84B2DAA55939A941C5CA09CE67C0AB20270865404F1 + AC07A0D7075EF1C73864679D8C6145EFBAB34F5FF4B31C5E42C61904AABBBE8A + 4F1A5661C719E2B009851A766BECCACF29E3B0818806D10B521AC0199C3186E8 + C5B20CB91BC01A8CB83E8F4AC8607283DF4835C4304806337F59CC623133A589 + 10C4810E3F73A61F02C8A2DA9A01A724CB4D37A11A47A8F2D68DBFAD6370E538 + 5CA0C6D1A7080083FF738CC0C1B096825801C84E3DD15A3E7A0D604F1BD8C874 + 315848E2D5959277F58BB5E2F08779F0F5AFE2FBD6811204813584A1B036EC86 + 61192A8EFBA0A50B652D9B165421258EB6A10DEF4B4CA05C5986B49DE10F87B4 + A5672DD39026EE526122FDC31F367006D1E0434A6BE8421854CAE102AC96629C + 0223A860434633DE1646245B421FB25AD516BBF8C5308EB18C674CE31ABB7809 + 96B880049D3B0A740291BAE54B5081A36620B872571F6B6BD377C11BDE4BF6E2 + 300338EF5FEBF0ADC5ACC21DC66A6D7CB57C43ED8D432FE769EC3AECC92F387C + 402498F94717CA5BA0F50E51B33853F082FDC1C40169E889917A9484295C2276 + D6A18801E83087FDFFB645C12D5363A0EAD88A3EF685C63D4E052A362A516D4C + E9AA26D5D295CEF4A431BD04157895074EE07142C3815FB302F9D4A716DEF9EA + 90800C2B79C94DC68531BAB081CAA237BD54862156B49265C3764294A3144718 + 5488AFFD8A6DA3E8EA0E6634B386CA1679BFF4DADD9E123C67062FDBCEA2C590 + 48F734E10D1D79770D103487B598A94D01E01475686689F5009346A3EA062648 + 41534FA0E97ADBFBDE9556800A6ED002502B52D4DD20EF143D495D23A3BA7C57 + C9D70408E598672D993E77B51605BAD06C6F798BCAB9AB72FD58D1807C7279CB + 1F472CD726FE878D1419B2AD7E08CE0AF698357F20011C59EFAA13006736557B + 21A075E2B6236591FF3DBFFC97F7107266C53DE862EAD8DC0C58C323A1F94CDA + 7ECC99D4D4800914C8E217D31BDF34BE3AD6EFADDC1B64800AE606F8B9375087 + 7C193CE80B27DFC1E3FA27B37BE1CF557A383FC36B1E6263FCEE55969E35B051 + 971AFA3AE422C7CFC45FAE4E63C321C999015840B6020F9BED1586ABC06C023E + C00F39DF12A40F8EDF849BA718F209F9A27520FAB8597A9AD478F00B66800D4D + 4725852D1810725CB0411FE84D7B17D4FEF6B6CF3DEE77AFFBDEF3FEF7BE0F3E + F0876F7B1BA4E0064C6041A8456D8130FCE167059F79D3A6A1F654471BB0780B + 219BE46ED77E8E9740DFC2FBB7027B8009C0817AD83BAC75E4AB7E70288F7926 + F50886E7128634ABFF294D019950B96A0D17B447F666F8576D97B16C21453710 + A60C30576442C42F98257AA31731A7C1245310006FA0127E803802E4313E807A + 3E20031A90462A7602B3277CB97704C1D753B88782BDA78226988224486F2DD8 + 7B3138832FE80231E802CA950319C003FF664E71B006FD87566F07689AD12763 + 866A0952079AF5739372656B3312DC4777681100D93545E2D7497873266D9048 + EA771780274ACDD7057D223DF8403536677FB5544B2DC7668B710FE7A30F1FB0 + 0101C87897C74405688019224551034B70157969E3801D466E3C80741FA005A1 + D2121CF33130511B24106F36700290687B91780247407B952889B407899A6889 + 99B87B974889BB37FF8993F889A3A8899F488A9D0889A8D8752D1022CE750A10 + 70764107016BA5351640017F2048A99627E7D2066BA08B83A13605237711C70B + C4E62D1080777F620FE1D33B34D485D0B850F73586EB242EE8927869988D8B47 + 806B403666B30A10000763B006086679036387DD8667DA363F0A1844D0168E67 + 008882E637170003E564016B30011C382A192805E5474D230369F35683C4377C + 23F87B0749900A5990BA677C37B0022C1076B5435ED08756195435F0144FF1B0 + 5758F858F4A22709D60615563601D20FC41871CA5372C8A88C64A820559348EC + 178DDEF06BBC800CD4E81179E20ACBA68D3C994414470FFC1228FA923B1B558E + E6884B0D612ED916FF29CD430F0417646FA83B1FC06106204C55894557B952AB + 851A0CF0078FC41225E61227F6812A00069B789668898968B9966B89896AC996 + 7019977279966A797C10F92B1334063FF6581AC400CDD55ABC40728E345DE173 + 5DFF95263FC921F302010310490FE770DD271635F98B57B88783E40663D0066E + 22937F575880C47F04157484517987D2933DE90FCCF3344E7959E1A859D43680 + 04D36077485278A821679018ED8841C69636DA3295F228685AA463AD950560B4 + 3117181B8C8601EF1639AAA30673298ACFB9896FF996D1599D72F9962EF39011 + 3941DB15645A90151430935EA8097F845F25A20A43746087542E69928B0D9384 + F8C47DD122166120FF92D2107E1755060A382FAD4001E9C799F1E50D9F493FAA + 202857E60AD8689AA6999414011153044B41176D94774875D8787373213BA721 + 9C477E417615927706096395BFB9522CC5035C040030054662A43826764631A2 + 020AE002CE699D345AA3367AA327600360402499D28349726AF4A21519C9659D + F04736190DBAC33B58532E09861847281884D171F5279F73071EE4B511181735 + 4219A187F70A000A7200704AF3B4188B4965AD667301A3A03C7910F8E78B7A59 + 4F42268E1C9526F0C02895818E7796A15114264EE98E97C56A0310875833A244 + C75230C0031C244F09D04C3EC0121DB31207D06832B0028D287B338AA36B397B + 98BAA9D609063150FF24C8243340F69DBCD65C87255F39742D0DDA000DF05F87 + 79187AE97951DA265C517FB57A9260517F149718C9A8A54F697EBCA6355F6A1D + DB708B54480F27058782EA206AAAA692B115E482184027186F286D145A3006A3 + 10B0B93CE9A8A71A1A659DD7A11E5A2F1F50AE9154005599AEE8BAAEEADAAEEC + 8A45F4C803E449225ED068A2829C1BB8222D902A5C70A99BE89C007B0297AA06 + 044BB0027BB0015BB0086BB09A68B0098BB0070B89012BB110FBB00C6BB1D209 + 06267003C2193316990F6B65313179AAF1A43C02B126AEBA268851076AD70EAE + 30A5B62A9FE0710C253745FAB98C5938445422ACD933ACC80248D8E28DECD00A + 6BA286CD7AB4D8BAFF6CD29A2F8C214BBB538EED83A74B79671F709BD8D7A1ED + 54941236175794952A9595602BA2C2E437875A05DBF0834B171B19582A33912A + 2A900236A0B0131BB115DBB0764BB1189BB775ABB7030BB114FBB77B9BA34DE0 + 5554303B488256F7940DF0058D9C8017E3452E00D6066B16AB83C49FEF00B303 + 78AB8FA90B4598808002A16E9836AEC085DF701F8C5BACC3B6B2D47059678A8D + 8A77B40A8A106B66729E078E7000670591B909C1284AB9731151AEB759264606 + 59F502A250EB26EFEAAECA9BBCEBEA61FB13AA16F0071A4362F74A2ACEB4AF24 + A02A7D50B0DCEBB005DB01DD0BB0DE4BB0E02BBEE41BBE028BBE72FBBDE39BBE + E6AB06E5EBBEE14BFFB047B0A31C8BA8C182566520176160AA3E1B2753C89E93 + 6B6A505A185C91B99721B3B940B3BE64764766486ED277A3148D62BA01038737 + 9095366B70ADA509BB1EFC2F7AE5947CB85FD53AA1B99B668B52A707B3946B50 + B5D050266AC75E9317113863250C10B65829B6CDBBC35E4B6E7869055DF0482C + 729C8BC622FEB805731023296096E17B04F3FBC44E3CBEDD5BBEDC1BC54F7CC5 + 567CC55A3CBF7DA0B11C4B05F97B56B4980D12ECB3DCE0B8689178B743C06722 + A5083C42B86A3DCB935D1CA15FAB903B1FD0053059BADA038D7F347850C28CB2 + 745D74BA6CAFFBC1CD4A6760828CCBE87F728A606C92446FCCADA2F5BB93E51E + E2B38742D40E07C6FFAA88040CCCBBBCA29CBC5A042289A4A807202A34D512EC + 9656480C028D98024E0C041D40C5E45BCBF09BCBB50CBE54CCCBB97CCBBE1CBE + B6ACCBDF8BCB4FECCBBBCCBEDC9BCCBE7C04FB76013C78B867B5BFE84217FF69 + C6A77425353306651064517AC06F9CC0FB640EC730207C82ACF6A4C138B3990B + 35C1BEE6B8714071819CCE6626205693A6888CC899C12767B0A1EB64BB1B752E + DB18CE7293A7544B59EE01C37E662FE5C8159734CA101DCAE83A0225BA034EE0 + 5AE9A638FDC822CFB4AF4F206FBF4CCCC82CD2213DD2E71BCC247DD2254DCCE7 + ABD2BDCCBE28EDCB36D004F76BB85081B8AD46A1117CCD66ECB8C9C2C6DF6CAB + E1ACB9E31C0B9861FFCE0D60C1ACD418A55117A3D4C7BED656D812C8D5605D1B + FC18F99CD504A166AD6A93F404A1EF288E9B45A7758AC0DC9AA71171C94D4326 + 364B3E58B1519B353465110C06A0BC752DD1115D95862A41555081ACAC07ABEC + 315FB00518200339F00465790434A0CBB8BCCB8E0DBF8D1DD9BC2CD9903DD996 + 2DD28E4DD9992DD98D5DD99D9DCC36F0CCF23A1DFA3B255DBD15B5500CE0D0D3 + DF503365554FEDE0C6434DD493B49376F6070FA18B6F27A45DF6D4797158AAA1 + BACC784F0282D55A9DD50D3210F20073759C850BD79A1B6C73657DC0D14AB52E + 9CD0DAB21E30A7770A52CF354C27798DD7E2EDBCD0BC29AA1105AEA107B0D18F + 30E14C8EA3C471DBFF07CCCCD8235DDF986DDF1D7004F85DD9248DCC9FCDDF97 + 6DD226B86F194006CB77D367C50A9B25B95B6D253C3DAC7F741E810142EE00CE + B34DDBD0726DE6B2270FC1CDB0647E1BE09F4BE2DBEBA250E140010D30988384 + 15E3D220877CDC1FEC36F1CC194C988542378E58F3ACA83D6CD856B56ADD1E6E + A1189775BB020D71E381AE775DD7E99AE44CBEE44E8EE44E4E6E54106A0C7027 + 2772AF64542A2F12231210B71D40039B1DE6623EE6645EE6667EE667EECC3100 + 2212D914A5BD59AD9AB226694ABF6DE24F7D43766215C363E1B35D3C0D462E0F + 71671CBEB4E1433DED4CE2A6AB17CA93E2A6C65E8D09C2301EE95B0DE9D16A72 + 04078ED2C6AA0C5EFFA7D19AD6080DE4CDE06C82028FE7D226D45216E19DEACC + DB0414FD37A8410172602219F81204845B2A6003684EE63850E6BB9EEBBECEEB + 65AEE6051E15380DE7FFA5E9F8E7D0A664E7777EC63C749B0C9D33491BCE197E + B20F918E1F3011B85D72E052E85C88E8A6FB0DCD07AB4097418D29DDF82CE9C7 + 8D445CDD27D37AE3CBA0EDD4562161F2E9CFD0CF555B59D3008FE598DA5ED3E4 + 501EF04A2EF0003FF04A5E957FC3023BD01F2AFA1A58DE122C7162B05C9627F0 + E5165FCB608EF1999DF116CFF18E0DE6201FE621FFF1227FE623DFF117BFD929 + F0A941D0E6A3F0E671EEAA87897F727DCDE0BEDAA784C2927CE1704C0BE5BC79 + E51AF40983602557FF7609727EFD7BF3758E17B040850F9A854103682EAEEE54 + 2F309121CF0662C715A53BF632D67676DDEA2159411FBC54268E7268EA97441E + AABEF6CC6BA8857B6E8BBA31C8E9312B712A8F63022A20A31E8FF21CCFF1BB7E + F21A1FF27BAFF124DFEBBB0CF8252FF87CBFF1F9AD02961004074E0AC5DEAA4C + 2AF3C8FEC94EADF4758EAACDC7F308EC1569A10CEC2159FD3CF49BA1E258B101 + 49AFF4D9638CF0778443C451945EF555DF360C21CF55C687677351728A5D2EDC + 16CC80EF69DD4201CD264EF6EF079FFCCABFFCCCDFFC598429AE48014A772263 + 34F731E1032070D82AF0032700043420F838A0F8E2BFF8E30FF2DF4FFEE85FFE + 1D7FFE82CFFEEB9FFFF136F0F8912F0A302FB9327FEC715EC8A9FD9FE00E0821 + 2100008256160C896114718D148F90916193946171017F1F0363630367671F6B + 6B1B7F6D0D0375135A13751B615687B0B2B3B3822116967F6770655E07075A6E + 70670D018D9701C9CACBCCCDCECFD0D1D0718C6D6B1F6709106E5E5ADE5E1365 + 657509A01FD867039E9FE6A1A2679C631F7F5D7161890C8889FAF91606FF000D + 140038F05F418104131A0CA8D0800E111960ECB060A54D1D337E30F8C0C07123 + 0633BF7CC8D04022C69213345276A0B1B225CB972E63C29CD90187CC9B3473E2 + DCA973A60D132B2E382144B468D15F487FB949B0A6419B2E6DA24A9D1AB54B32 + 0AF96869DDBAD582FF57068B1C451A0BA9D2A5066BD27532276A83D35310544D + 80E30A1645AEB442580913608336375A7E791176E68FB1C3C8A4295ECC58DA25 + 645D22EBE235C1173070E3E0AC65D7EE9CBB77EAE6D5BB87A874BED35EFD315C + CDBAB56BD64D46E8C870616296356ECC98F1E191A36F1F5230F86991E3099823 + 2973265FCEBC79F3952A5F3A9FEE1C3AF5EBD157DA48B1224815A3E00124455A + 064ED3A754D337706AD5DEBEBB78E3CB42B4681259B2663169E2E4E95CDBB767 + A4B24A2B14D8259F5DB874B14602654C8054307514664C23873566E185183E46 + A135DAF412183013B801011C09F4E7D967A2A488CD1AF46085DA8BA57DF5DA8C + 34CE58806CB4F160FF01000CBC919B1EC275E49B6E5F30415C0C2AD8909C4BD8 + 353953744E52C76494CCE1201D0D3FAD80C550E111359E524CB1971E55EB5595 + 0C35A45961C8815DF1031623D4DC470125717491C9266BF9B7815BA604C80D2B + 6B14184B7C7AE112C0821058261804096C500F85896128E9A4D34C7849171BA0 + D2CB8321D6A1195B29869A16284D8D06238CA931C0100100B1FA8FAB06C00AEB + 6BB3AE7623442C141102030D9461867019F9C6916EBBCDA1410E49AA41031054 + 360945B3CC3D0BEDB429657981115C86F7E501E59D07D598E04A7555566CCAF7 + D5228CC8F9C82475DEC91F5B7B0258C79F75AC1107457779D515031428A88D83 + BF68E14519097CD0FFC6999426ACB0638C341060191F8258DE18A48A3ACA359F + 3465CC3DFBE0C34FAA0CC451E3C8240744C0AD11F1E044165DC0718014C109C9 + 11CC071429430E26A4801CB3D452CB3373CCFE1CE5CF42370906505850614597 + DB2EE56DB863AEC75E23A4E95B2E57FA542227BBFAC1936728F19AF2012F5E78 + 01C107F75A6DF52C86FE31001CDC041C4E1D036CD0C631152EACF7A489510356 + 1C70A9F2E0381483DDD606A278A6B18BA6359E1A7D01B4D16AAC94B36A79E598 + CB3AF9E5AF6E4EF98D3AD4568513712470C046C10AEB83195FF8606471292C1B + 7472B3A7040510CC3E3B7BEECBD2A0BBEFBDEB8E3BCFBFDFCE7B4AC303CFFBF2 + 40141FFCF329E170FF74504630FD65B762420DB555C66005DFD5B43CAE089C63 + 718D96D7268EC267031F3058F6D971F483202C6B3280C918F3463C010463688C + 77A47B0B20DFECD385F671E343102AC707F6C440C4B1C37F1D6B1C6ACE1500B4 + 94EC821894CD0560C0030654A10110F842CCF4B091126AC40745D2400CB86003 + E4C86E3944EB5DCF902743A0D1AE77459B4E0E9D23B4A3E5E00259D0D6979C96 + 3DED69EF5155FB1EF810343EFC58A2826979979ED637B60699ED0C0148CDFC64 + 9188BE304870C07043841A80A6B03C468068CC903D16E1C5B85826188C3A83FA + F694B88C919171A78A11E4D03280CCF9F17280FCA32039E747038C600410E1C1 + 77BA603A29F8410FFF4012964676D30215E66C670E68DEF036B949E36912779E + 0CE5F03C993C4E9A5276A034E52739494A55D2000C29B8C116AA67946D610F3D + 460C5799DA33278FB1498B6CE3877D247196287E6D147F680054166445086051 + 7E6A430405BCB8A9030C861C0673CF9BF086B0347A331A7E63A35FB6D18D3092 + 438E0CBC063642510C1775EC9DE2E3CBF9C6B01ACDD57346B5AA556B5C558002 + E06A078C904319BE1049497EE40B66785D0C5260031CA83268B8C3A1447737D1 + 894614A218BD282A71A8518A7A74A33C3B420A7EB883A579698861C2652E8FD8 + 1EBF2911418F8B29BE62DA44485CA20D1B409F7F90A94C6B50E68A59D497DAF8 + 85A97F09866006DBFF183ED0F5BFBC7DF3A988B98725DA30B66D54C61B222AC7 + 1CD3E209BBF9CD6379A4201FD531C8B206F2AC66FDE3C91E72813B8421045D08 + 214752373322B92E0724B8A4EF36894ABE96F2A2A7FCEB4307EBD7C00216A37D + E564075210831550E128D7334F11570AB55D06A0973185A94C376B1745D4E789 + 3855CB00764A8A9E32B332CE0C80FC0EE1154B388C6C8B1AC31FE2671ACF3EA2 + A90084AA008F61536B8C010E1028831B54914074220E1D6BB81BC724E8B83DAE + 6113EAD01C5A3B47DDB2766EBA94ABAE21457001165481011B80C0CB4C485E0C + 48C175C7CA590F3A004A87368FA3B973A8F27CE75EE139EFA37FB5EFF34069D1 + DF7D140AF2854207FF6C7083DA9C743C4454296575E994A74CA86AE1DBAC4C59 + EBA6BF45CE98A375476997F9D3D402F32B80D314C0069600323200A69E45179C + 20A5DB34C6891101B0D3077E5B876D3408AB7174C7271678373C32577CD33C1F + 74FB4880221BF9C8483E72AC92BCE4241BB9C94A7E329211998120EC201F1B98 + 407032425798B5CE58C551C1098090492840A1CCEFBD9D9A9B0705256852CD6D + 7EB3261D606636C379CD66CEF39BF3ACE735D319CF727ED69D5FD9581E10C296 + 9255F0828D1899F684616D128E344DA579619D6A3899CBFC2250572B4D87CDAB + 9CC16854FCD4C45A7C8065982BEE668BF556C6695A630009006E8D857BD5FD0D + 23149A388357DD79FF9A77F6C3B9EA08F600D04AECB4165BCA952B7221717401 + 455A600D6538C0AF84151C9899410A66A8240954B0B340A779AF77DEF39FBD2D + E834DBD9CE75C6339FD34DEE76971BC03668EC0EB2D0B4947E6BD1B9949AA3DF + 23E97E3FEE890DF8C3A82AB6610EB9B10C0350ADD5C072285E70AA0E1F50AD2D + 0A55E153DB94C5B95DB585C4729619D7A1C61008B9380EB8BF12B5C3ABCB0D6B + AA2EE12E75A463D84886B29367DE6499CF5CD9373FF28D3290011650A10B5748 + 801BBE3057837EE117DA36C10F68904934A359CF746EBAB8A7BEEEAA5B5DDD57 + BFDDB8FBCCE6A7A71B07F16E010CB610D9A7E17BA596BD442FC945617FD3945F + 37E5EA6879BACC31FF1C7C0C5DE0345FC6E606A49078B616B045DB7B6DDBDB62 + 5CE3927A71BBB2010790873CB8C3F586AD3921C7526893B9BF6E6D1CDA20F097 + BB3CBA99C379B28F2D7ACBE1BCF43547B6E90542659FDB4F0E5A28EF46BCFCE5 + 231D61787F3E3399751FF5DDC3D9EB6676BA9C9DCEFBA9F7DECFBA07F4EF7D3F + 6791DE60054C40A9D9CF7EF6EEEDA3ED6E97293E363F2A6426332A99CADF52DA + 90262B1035400083D019EE96F9499B9A12863F63C6113F8D3935828F0970FCE3 + 836BC555308AF2F4707979F46B2183169A206CC296730AB8800CD88046D6046C + 750701100620740018A007741524C0B1054C80333FD05064E600517766243882 + 4D5782C9878226B8FF7B27B88226A8822C58822C1883BD678222150337D00264 + 471E89766FD48776BBE408CB957D9216329C974C01F707A5D000E10718E3F768 + F9D22FE8173004935C13686A9BF54EF0177FF3477FCDC071153463C0250E65F0 + 78B3365CDD20460AE428B40556F0F41546C8559DB00E09E8804E66737698874D + 003A11910521900563700018182CBDE1653E401C79153B22C88222D888357866 + 22C87B9058838BD8888C688951E7888D98678E28892DA88999F867DB610239C0 + 04470726D3F783F8C63D68C2694448537012634CE8167C247E09407EE4C2701F + 900A4715262D9544DA274C2A760CF2E7855FB846966027D9007264B87FFCC70D + 035307FD138029F7FF63F832551B708008588704800246E68D49068E37278E47 + 268EE4F88DE8188E315700B321115910077CE0051708245D2605ADC304E9A533 + 21088AFCD88FFEF88F001989A1289001098A67D6013F600224D0023EF00BB7E4 + 83AA487D4AF58AFD9608751270A6F05CB6888BF9B27770F30B25B740DF379112 + 46785B488C88618CCA2084C998298DC77FE2E08C90E7066E508605D34E60658D + 202664DB888079F893409973E0B8731740063BE00471151C91D41BE6F50B5B60 + 2C316002C7E18FFBE888558989A0B88F57999558D9749538895CC9956706760A + A98307906010199140C81EDD338414A97D4F940CBE952807300125E63DB0C070 + 6BF09175392297A6FF4CEE51914BC554B8A59262510D2E590764D88CCEB89871 + 849398A7479A670D9ED793C1D68D98E98D9A898E9B59649BF9999C999998E999 + A2D999A5799A10D87359005E13803A0625243E602C24F0043F700435E000B799 + 9BB8D988B72982BAD98FBA199CBBD99BC3B99BBEC99BFC289CCA699CBC09053D + A0020B69060FA9961119190FD67E6F0987E8D2176300317509070DE0229DD570 + 7D674D045331A370308C538483797114E254ABA67817F636B3E698321993D864 + 186BE76BFA205405988D96B98DA4099A043A9A060A9AA439A0079A8E0B9AA0A2 + E94F5A7205DF7506B9E1078F645030C38137B35047E088C4099C0519A222EA8F + 1F8A9CA0789B4760FF0231D00258606FD4A98A65723097558DD909329BC777E1 + 3006E1998B21B3017C3930709061D7C02207A34D1E138C29E69E67D4628F6153 + 32166B30598632B97F9E220F07C331031853AE2577019A8005FAA5A709A6621A + A6644AA006101BA1C302F6F3077520421788A1BAF13A2420014A529CCB79A776 + 9AA778BAA77ADAA77CDA0329F0043A480693F5A28B16A3ACD88AD8992A8CBAA8 + 7F8329BF550E6D80978710327F207482210C42EA1FA5D0525FA5458D7A6AC358 + 98DFC49288B98C8A699F530A0155BA38599A79FC524139D5A5021A9A605A8E65 + 4AA6B8EAA0B71AA688740158700757D005141A33BDB111AC738FF9C874BF99A7 + C7F9ACCC499CD26AFFA27E4AADC209ADD38AAD0E80038C151474D05386FAA2AC + 088C5F1199036891D6C0225D40A91679A9D1060CE5317789C3530D560FEBE97E + 491A7F29E94D65848D63907F221793AB1A7270A0191F500C581A9942D52FD9F8 + 09B4EA939F8902121BB1043AB1167BB1129B9919AB991BABB1183BB1DDF8B104 + 201BD07707F9F0015A705E453724C0C11BE9650364769B49E000495003367BB3 + 385B03339BB3344BB337BBB33A9BB3426BB3335BB3439BB3407BB447CBAD4011 + 048A16AED49776FBC96F84F73139991A7CA10C14305414D000630018E6347788 + A34EA1420A453A09FC063259A3622BD685097398AEB606F813A5523AB0E43000 + 56481A6E3841FAC0FFB0DB5899013AA6829BAB835BB861EA8D28C30271B0031B + 50072F438F32F3115AF0053793333FD0013C7BB3B869B39BAB9C38DBB97EFAB9 + 9A7BA7425BADA37BB34AC0582D10046909B5AA98A86E59AEAFAA47DB84594CD4 + 0603E09D1022B6C775229CAA4CD6C776A18A6A6D0B9F6F2B9FAF3686AA3AA59E + A2191AA3B70A5BA97502A00FDB931B8BB1217BB1D99BBD1FABBD202BB2DFDBBD + D80BB2ACC28E2B00036410320940747390815E96501A000279F5039DABB4F67B + BFF89BBFFA8BBFDCBAA24EEBBA50CB4B1134BBE70A16BF566A5D300010101810 + 220FEA9338E8F04066BB6FDF23BBA21A09A44A2942384D32F65B513AB08F4722 + F280B039892AA9D1FF2FA352BDD6BBBDE1CBB115EBC22C7CBD30FCBD1E1BC333 + ECB17BA803E7CB0259D0066FA005D3568FD87600AF439B1D5ABAA79B9B9C7BBF + A03BB44DBCC450ACC452FCC44AAB04CF190355560A405815004C266C2984036C + AED678A47DEBB5DED9970E4C47EAC419F082695758C1B525AA84D9547CF362F3 + 09B01FBCAA1F47227244C2620C870C0BB82A1C6CE25BC8867CC8889CC8DDCB01 + 286048B3110454100774000152D0BE1988015F2030724AA7F5BBBF44EBC9A01C + CA463BB480BAA249936F4AA84C8DD6C5E9619DD719AA55BBB756AB0897B020E5 + 89C66033B6BEEB193BB64080597ED83798A8C64D6E5B7FF601453416B075ABC7 + 095022791BCB1174FF17218329DA38C808A8C816CBBDD8BCCDDCACBDEC18113B + D00574A005917BACBCE107F8882C0D15CAECDCCEEEFCB9CF4902191005F98638 + DFC7CA47647D624CC0F4D1080A823F82B33F1473311603C19C219256E14E59B8 + B6C384924BBA18AD168600BB98CB2C931F572278CB7EB3FB38282CC8D6AC0E28 + 9007E22BD2164BD2217DB18C2CD22A7DD2129BD228E0D230CDD227BDD28C5CD2 + 337DD3138B3246C9007F500652004916EA1B7E606DF08B3329D00348ABB435BB + D441CBD44C8DB34FFDB34D3DD551FDC94E4DD553ADB9579C0164B03D9C971660 + 73CFABCCCA52E3606D59C2FB1CC770C279BB6819F1BA40635BD0E770D0443A21 + 6B87AF17ACAF0F0DFF4E73C246EC33D1CB6BD155CA636FAC72E732BD1EFDD103 + D0CD236DC826FDD8136BD2D80CD917DB04A9C9023B4081724588E6655EF64849 + 2461023DD0C9417BB4559DD5EFECCEA36CD53500A824700141A0C5ADCCD6F130 + 5A7C32D6F82C158DA6CFFC7C2A4B755B67F0AE9A0AD705AD22BCAC279DAA54ED + 6792277978E0B44641D63EF5C998764B2275A35C594A5317860D8A6DBD22CDC8 + 319D077990D2E37DD32BFDDDE26DDE27CD01E90DD3EDBDDEEAEDD2E27DDEE58D + DE8CEC10DC15047440058118C40665065B7088A17DB9B8B9D44970D5079EE007 + DED40A8ED508EEE00BFEE012AEB3114EE1095E0338009D2CDA6054011539156B + 053BD0F79CDB5E2CFFA353CB9FB2BCB787D0321320D0E859DCA1B2CB6003987D + 7DA4A6D69E5CB892CEC071CAD82181CDBC0930D01A3DCB7CCB70ECD3DD014AD3 + 370DDE2FFDD2E97DDE4BFEDE2B1DD2F21DD2F50DDF50FEDD560EE5ECADE4226D + 48371011B080B2D3A611BE616D2A2B03790506F42BD59FCCDAA31CE76E5EDA58 + FDE6747ED5762EE770DED44A90E1587C0763E2E18C57B09AD11FA55515AD1BAE + 9665D7D5D8DB7A44016E63DBEAB453300EC111CCA98FD28AB09CAFA9967168C2 + 0898B28C740BC27B5C302897DDA9224F5C8AE408D8DEF53DDEB0CEDEB2BEE5B4 + 3EDFE3CD01E0FDE4B03EDF56DEE5E28DEBBAAED2AFFEEBAE4EDEC28EEB2F30B2 + 55460538550729FBFFA65D061222511212000634E0E0165EE1138EE00DBEEDD9 + EEED067EE10A7EE0FDBBBAB3AD0B204EE8CD5C38DF1719243E15AE2C809877E3 + BE0D63C5D4CB956EDC119C31A5B092DEE3DB79DDE93A5E46D3FB36CA0CC266D8 + CC75530F5868D86B8A0EACDE93BE9EEB14FFD2C04EECBFEEE413AFF1F32DEBBB + 5EDE138FEB1AEFE4F61DEB23EFF1BF0EEC2870482BD0738DF001F2A83A9D4D2C + 7E7033464D034A00EED82EE1E3FEE0506DE13B7FE7DACEE7192ECF800EEF9C97 + 0D20FE71A52E0F87FEEE5221B5583AC0F45EF599274F7BF207BD8B221633D70E + 3B774808BCF24E7801EFD067CD176EA3BCD4ADC777BB400C8FEA6235637318F1 + 0888EBC0EEF1B26EFFF77ABFF7B17EF77BCFF779FFF7767FEB82AFF77D8FF785 + 9F076240004D0011C2DA066730014407B9C2C23AE865D43D000544DBF3DFDEF3 + 9EFFF9A0DFF9E32EFAA2EFF945CF0441C0E15081EE844EE8CD1BE49EC022EC81 + DBB9CD3D674DE4568F855F314DC9D0054C880E94DEF5BC0C2F87AEDCB8BF856D + CB928B40553EBEF6F7C9AA412E1A8129CB5A8A09AB4EF7C266F7270FF27F7FF8 + 847FF8776FF281FFF71AEFF783AFFD814FF8DD8FEC2B2F025A72073B4007BEF2 + A6C2E207AC53332231E034CBF9A00F084982493584838583898A8B8C8685888C + 8F87893D2A2417416D9A5D6D7F67090970A2A3A3A109031F1B0D9B9AADAEAFB0 + B1B2B15D01711461FF0C160CBCBDBEBFC0BD616114017F1F671F1F6BCCCDCECE + CAD1CA6B1B7F6DB6B9BADABBBB0CC3C314E1E2E371011B63751065EB10EDEEEF + EE750963677F0114BEDCDBBA16FD0CC61F06081C48B0A0C1830539285CC870E1 + 0B0E0F1F369CE810224585122B4E8C6831E3468D142312687243C4053201EA68 + 31230583CB97307D6CF1A38184891E881E30D2298867129F8D80EE1CDAA8E720 + A1917A98B891E10E2B4FA14891AA5347D4BC33D4FE345835ABABD7595CBBC4B9 + 352C985960FA18946BF0A7ED8635D39E3D93966C9A2AB1B8B6F9EBE6ED9B5F0A + 63396D180047DDBA32F012533DB5C61EBE7DFAFA49F616A041C03108336B2EF8 + 220F45CF10F3741EFF3D113407D3A14F2F342D5A616BD5AE4F8F16FD9A7567D5 + B457AF9648C040C90B777804B852C68C1E3F7E5CFAC0B0DCCC812F7364D80483 + 0352D1EB44B16B5F84B4E803253F4CE4C072A50D27A851A5AA0785799956F35D + 387D9D3FBF96AD5BBDF89EFDA58F58B9005D1C938C5C7249230D350DE0958B64 + 0CEE574E1B1B7C30061CE91C865862F1C833C6070DDCC34B647A4D56CC1F6B9C + B1D9899B75A422472CAEE8E20B30BE28634430C6D8E28D33E6D8190A05307552 + 171B40F0854BC9C184C11766F8E0470B3990F0437535E824E54F544E69659558 + 5EA965965C6EE965964A1CB1D4165150D1C927EAA549CA551FBC47DF9B6FD642 + D67E740213461C10FFC645203406D6D5581B7332E88F361FF2528C656324908E + 61182A764A9B1E122AA9A00C5010A08928668A5044AD714ADA6C9F762AAAA72B + 8E4A1B8BA7A61A2AA8A6AE9A2A07248990010C745001C70466C4F49214CE7DC1 + 444D1250A7445047156B1477C652795D77C41EABEC4FE089D7D499A0A8291555 + 55B1875535ABC4271F9CE0BA62DF2DB864536730DDDCD945036F19B8679F670C + 688D2D79F163811593ED420C408A1A7658A3F1C0718A2A9182C80D83EA463800 + 669A363C508D10472CF1C414576CF1C518675C711E06F8B6020B6AADE1851E18 + 140913AF5FF8300708364930EC9730772973CC34CF5C65B4375C400754D6F66C + 0A668D25E86DB844FF6F621F36E7D2094E65C8D4B5CC9ECD44136F2ADDD2FBA1 + 152184802F2F7732DDAFBFEC00BC182A1D3E66B0BDFEE0B901A60EB73D008E70 + EB38A38D72C76D374474DF4D230A3ACC7AC7151BA894AB72CC31C76B924C3EA1 + C29389F8E478B1533A7BA5E4C93E4EF99692473B1E1D9FA4D7B37A55098C8A2A + 5B156D7A2B72D69B34BA9491484DD450478D8C32D55893BA2E585B51E9836B53 + 0876D88D667B862A718471F6C192DDD9C61A0BBBEDB6C6D0472FFDF4D47746C0 + 084C051107031F1C80C17126632005AF4A6A00C21326FCD083510FB49FA5FB56 + C25FA5FC52C26F7FFDF8CF7CFF4FF0E3A094064140D3E7D44415ABB4272BDD8A + CFE9C035AE72AD0EFF2D6A09007C1A5022A741CD5DCCE0562DF061057C85A132 + C79850852C742180896E0380CA065F5688300996A879CE7358F56648C31A422F + 0F622840DF8240053A4401572E21D9AE306006C469A04912585FE5B0C43E9B5D + CE66316BE2E4A0F5831868000B021BE0E74C71953F0D6D81708A4F00E865AE07 + 0A231CFBF284052F68A068FCC94316B8D33106A0A845FD0B60ED18DB1A525828 + 8335084F2F8CE1F320868717446062878451220D59A34316F2909044E40B0A09 + 3147466C9130A2642323F6C84932529192ECA4239B30821530210864A043190E + D01221EEEA0B4862021390688397BD4F4BFB6B5FFEE2B7CB5CE6727EBBBC5978 + C6632D5368B18070FFA0472ADAC2153032905EE52AE303BBA1B60D589319072A + 90D4A686A06B006830BE031B1E03968054A4F078688B2320CF3006CCC44B909A + A218263F79494646F29E929C67242B29498BE1139FFCFCE7439AD00459D16A00 + 103840920AB79C868ACF0CB39C0E0EA048D19A59B4A25D52420F62D08220A409 + 14201D203205E6CE6E7ED1995E116339C825CDD5E9EB3F1214D01AB539BBA751 + E32DECF41D094B283681D5432C2A840C3FF0A54E089988616C83E7890C190148 + 36B5A9F684EA53997ACFA74E55A057B5271EEEB955AADAD3AB55B5AA58AD0A56 + AA5A15054DD0C10A30F1870DC0E10B7A2059F89893B23934C90412A84194F8A7 + CBBEFAF5AF800DACFF60074BD8C026E10724584119D2D4CE44794E8B06A49A02 + 511AA706B6F48165515E05F5442037466D61A1B0A385C6E98E64A602A8854A6D + 3A3F48C1A42AB561586564274529DBAFE273B6B6CDAD256FABDBDAC656A0B4BD + E7484A9281206C2501B034524BC617CB1668E00936A8C1B080D957BE5617B07C + B5AE2EB3BB5DEC76D797F8C301625B3052920AC4B159146901BBC8CC6652162C + 9B1823192F7B2E6E288F99EDCA2636399B53D19290B455D9D01F808ACEC954AA + 32256AE700DEF9DA4C3575AB0FBEEA56271C010857F8AA1196AA54BB8A61AE5E + 98AA160E71562F9C61129BD8C2207E6A575180BD0C60219575F042AE8EA35C58 + 1E804978ED010EF0FF57D81EFBF8C74056820472C00437AC89610B6B67B5445A + 0A36A9023E937DAF2CC4781FD599B11780B18504D7B660CEC2652E741CE16801 + 6CDA0117AF8F90B9D72EE210A04036B86D61DDB08A9D4A67437258CE510D6B6F + 3F3C56AC4638CF56BDF33FA56AC83CA075042EE60115A2E0BD2239747C664899 + 7349F0841F4C17C898CEB4A675191E531E395E6C432F643F1D342987918C5736 + 0B6BBFDCD9665C134DEDB82399C7D0186C1478326A0BC89B9DD7E75EFBFAD7C0 + 0EB6B0874DEC5FCF200233B8DE0A66150532243488467289737C9038F53960D3 + D8CE3661C3A3812D84EE2AA0C6949297AC5EF32E835B4633F52B9AD94007A65A + 1B87DA0ABBDAE86AFF9C8A9051A46D8769CB969F7E7F08D74012B7405CBB6BCD + CCB9D8084FB8C2175EEC421254042DC00215E2308003808F702D89B419E6C0A4 + E9F052DB20DFB41252F08415789BA4E12EC8B8476D156D510DCAEA9EB29CEE41 + DFD5F9672C4C9B9A9E5E3DA15803AFA702B6B5500FB6353CCDB1E0BC6EEAB197 + FE54A63BBDE95067BAD2914DF5A93FFDD8569F01D6A97E75AE437DEA56F7FAD3 + C33EF63C10E0377738031C14BA9C92C1842510FD550ED237D1C20A00B0776F5F + DE1FB0F7BEEBD2EF7FDD7B6001FF1D0970740B2867F082417DDEC71E93A4EE71 + 6FCCA73C46B294E5DD586E338178AED39F6328C06BE0F7ADD39627A4C790C452 + 8770D72B8C75D507FF5AE97858BAEBADDA7AD9B79EEC5C8F3DB2552FE2AA47BD + EABA1F7BEE59DC379DD1610CDE23D2A3A5F085036CA105E7BB8912424E7D6C8F + 9CA3580037A6C21DEA901EF3DB077C32CC27DF86B0547E2C5636E34B25A80912 + D9C5DE5FF33C3C02CC21380E1D77450FB8E94FAFF5FE8BFDFF5DE77F4ED77F01 + 886C5AC77507388004B8800948800028760EB88008C88048C062117705575007 + 2C116D43C4049376133840787737827FC7772648827A77822A488228B88225C8 + 822698827787031240022DE00651C0789BA1642CD764A39340DF427EE25279E9 + 7765C4100E6A132F379560E1247FEFB06F34A75A2CD44116906BFB174302D880 + 4BA7850678755C28FF815E08860938815DC8805FF8856408865DB886FD474AA6 + 645C01B07652801CD19624D4561395A65DDA26782A587D80A5143980093A6810 + 29075AD5E27804240AF48020A52384AE607E96777957665F6AF30CEC5447F8A6 + 18C9B44701B02043D7206A615457888566588AA6788AA8988AAAB88AACD88AFE + 875637B0023010075700075AD0121CC82B52E08194F62432E88230188CC0388C + C2588CC4C8771A251E4C908304377083B87288D833EE1479E3E788E6215F73F2 + 6EDD9065F3A60CFDE5733C95479B780DF850601D7460F3D68CA38822AED88EEE + F88EF0188F04880704D0373010047750076EF005B858382EC17C07406D39F004 + 499404D3E78731E8FF6307A969E01103E3A1789A9228E9356AA6F083F0618DAF + 903A35875900B10C974815FE327F9BD8219EE847FDE041000191EBD83033B000 + 2DF9922E199330399332599334799336999338B9933AD9933CF9933EB9007820 + 06C485059CE3062D31570FA524B354693D608C50798C51399552898C55D40203 + 100527C27D47855ED1782DEBB588A483919A503A72C25292786596226F6B137F + 3F571503C089E6B242FFE60F1FE4092B2948042893A7E8927BF9925AC7978039 + 98813993A528987E698A89998A36599882F9978BF99262D0622F7606CFE64AFE + 78245E80014824014340582D18782E98827D159A55298CBA448344560728C27D + 03316E5FA926F3B0FF60267552424865E8B7914AB3526CB60609E00E6F090771 + 498EF72719E738226E96976D03930B109440D992CDF99C31199DCE599DCC699D + 41499D34A99D31190162E0865B4006573006D021572713692A030203E9322F78 + 9AEE4995F0B9823D30644C004F2BD783903796649991A886791F12077FE096A5 + 358E67763C82F2416BA38ECA8922D8299D0EDAA010FAA0128A9D5BE586C04106 + 75905C6E5738CC654404890307D977211AA27F37A2A49990225882279AA2A4A9 + 142BE0060EE39A8638913D832D28776E6E126593677ED09496F5A50D008A0E8B + 1230C359A09F381977A96B0BEA3CD7D99CDC499D4EDA934F1AA53949A53539A5 + D7B99D4EDAA456BAFFA5D349A55C0AA5D39906CD3912100703E22924177732CF + F105CE853E96169F72FA9E743A823FF0043718A32A799F14399B58F11EB6799B + 6759844983A0842192B4C64752F86F547897C9B9A40EE3A5560A9D602AA95F4A + A95D7AA95D4AA99C6AA951DAA962FAA99B3AAA934AAA32C93719C0025D400632 + 6624CBD1120DB524BDA804735AAB755A954A7109ACE93C29C783B1F9518F826E + FB893A63844698B516CC134E10A0887BB43DC579A0C6A0A090CAA0996AA51550 + ADD87AADD81AA5DABAADDE9AADDFDA9CDD1AAED54A8FB178012C602910601C6B + FA8F3EF00534D18B3DF08BC528002368AF7C87AFF61A8CFADAAFF7FAAFF90AB0 + FB8A8C43201E58C0FFAB85D858E456A3EBC526A5568DB7797EC6BA9B08860CBF + B90E70B906A865A0220210D32A485F4AAE223BB2245BB2267BB243D923177005 + 0CF007C5D18F0DE5039136131D27013F40AFB76AAB3AFB005759075AF9663CC8 + 725CB4214F16A8824A841BA92E24026A8A82B1B4D60579C1B1A41721D2FAB19B + B100D74AA6598BB55C7BAD5EDBB560FBB562CBB55A0BB6653BB6681BB66A9BB6 + 637BB66B4BB670BBB56DABB664BA0024E16264C0078243246F57443E10514934 + 7D033BB8FEBAAF862BB0877BB8011BB089EBAF8C2B00AAD9513F1B43096B4C90 + 153AC9F4A76E32ACD78896D204180172190B36218AB801504B977D64608064B5 + F024AE4EDAAD63EBFFBAB2CBB5B30BBBAF7BBBB58BBBB4BBBBB1CBBBBA6BBB5F + 9BBBC2EBBBC38B046E8805787206B7F812CB5744BF4202368BB33B3BBDA7C96D + 5B7007F05488497688E56640C9500D46138411BB5256560C9D909C534330466A + 92FD702714A4A4ACEB366FCBB6F35BBFF47BBFF69BBFF8BBBFFA6BBF78D00419 + 700163F01642C2B7E1935C2C63B320DAB88F5BB884ABB80CFCC00DDCB8F84A04 + 771A7157E858BFBA1EECC5B9A8A391861207E958106DB24141C5BE6BD606F01B + BF6EC3BF2EDCBF2F1CC3303CC3329CB6765B4A4CC0023B10076A4A38AF6A065B + F0B747F40429D003B4BA828ECB8249BCC488DBC48B3BB84A50B04CB1ABAFE59A + D0F87D56313ACCE4FFC1830A18AD0543030129E5B81769866BCB03C62CDC3658 + 5B015ECBC66BDCC670CCC66E2CC76F5CC7747CC7729CC778ACC7763CC77E1CC7 + 7B9CC77D0CC76F2CC87AFCC787ECC60BF09D10770701C00765C08F6EE7683EC0 + 7C662003EB19A714BCC99CDCC99EFCC9051B886F26A3DBBBB0D682B97EFA72DE + 22BE93773495A13007B10C1DC20F93622F45B73C559BC69B51C376DCB5730CC3 + 7F1CB6BFECB56980B6C38CB5C54CC3C77CC734FCC6E62A8B77400772C8811870 + 005E7063431CA74FECC04CBCCD4E2CC1E0ACAF166C456540C5196CCA90D5C11E + 5C7EEE97194A78BA648C3CA4B7C2BADC36897CCFF89CCFFABCCFFCDCCFFEFCCF + 007DCF8B7CAE2C40FF0709B581D1A68B1C37909AFCC90EFDD010BDAF43508318 + 5C7032EA95DF972DED21ACE6618D6C41B59BF1018072A42F75C64856CFF61CD0 + 2ABDD22CDDD22E0DD048409426710761B00375E03DE65938332B903160B3FF1A + D1401DD486DB695B607ADA5BCA3DC81E5A0CB131F7D1C8A019F4D00071902FAB + 25C28F8AD20EA3C71E20C75B9DC75BDDD5158006892CD6F90CD6665D015B4DD6 + 689DC8602DD6607DC86DCDD56B7DD66C7CD65F2DD7753DD7727DD779DDD761BD + 001170B730B0037FF0562F6132322BB3186057D0FB034420D4900DD9DC76B0A3 + A878182DB48BB8B98EC82E574D10F4F007CE9A4EBB3022F48CD559FDD26BDDCF + 6F8DD7F8BCDA65CDFFD6FAECDAFCBC04AC7DD7749DDA797CB727710567E00543 + 92D0CCB70572F7A1B41AD9C6EDD04460782D000127BD6B17ADC1344A401ADD65 + C2AAA3EFD5564F9D1998B1019D28DA112420CD6DDA0DA3D7B64DDEE65DDEE87D + DEE4ED01E9DDDEEAEDDEF0FDDEF28DDE1E8006EC3DDF68ED016920066260123B + C0006B3001524063E79924C32D018F6DAF42B0AF0BAEE00CFEE00E1EE102D0E0 + 130EE1152EE1149EE10230D124C004C27985CD286A14696E45CBCA28C5D9D24A + 0F2854A0446501967274E21D43E5EDD7768DDBEE4DE37B2DDF38BEE3E69DD77C + 8DDF330EE47AEDE336BED71E40006B259E7470D3FD98993EF0E46FCA9EC73DE5 + 9CAC043860020094FF97176DB958CC5E8D686A28BE197F7A0F27B96601A76031 + EE3CECBDE66CCEE6F6DDE6701EE772BEE6F93DE76D6EDF62FDE671EED676DEE7 + 7EFEE7807EE76B8E063340942B1004571007DD036D4324054F8EC90499E015BE + E01A4EE9937EE996EEE0969EE917DEE9955EE188559F2B49CA57FC390D5B52E0 + BBCA278E5327B20C6DC041BAC3660A83E669DE36747EEBF7FDD56C5EE7409EEB + 73EDEBF41DECBC7EEBF39DEBC6AEEBC8FEDEC75EE7BB4EECC96EDB317D0317B8 + 0351B0BC98F9E41A2703E7E399C54DE5DE6EB8FF73BDE1BDA012899FA1A0E209 + 4459612EE66D32D5F862295C56EB8214E8F45EEFF67EEFF89EEFFA5EDF683099 + 817807543000CB9BFF1C075C57D1370409FEE99B8EE90CAFE99ECEF00BEFF002 + 30D993ABE53A08DD1B4C210524965A2179A6B3EE27B206DDFDE212E24EB92CEF + 06B1EF2ABFF22CDFF22CBF002A4012E84A0510B0120E75F3527000F16A0243D0 + ED92FEED869BF00F9DDC9750F1A33E88DB1BDD896840B459E2264E1F201FD280 + 22EBD93D7028EF301E500259BFF5F6ADF55E8F065EBFF5613FF6622FF625F0F5 + 649FF6653FF667BFF66EAFF670FFF6721FF75ADFF5737FF7FA6DBCD983816F35 + 871BFA3DCCF705DA4E699FE9F00B7FF8109FF888BFF8973E04786AF4D32A6E22 + 2EB416F9F450CFEAAD690DA278F5F3EEF6EC4DF69F2FF7A11FFA745FF670AEF5 + 6C1EF6A4EFF9AC8FFFFAADBFE6A0BFF5A32FFBB4AFE7AE1FFBAABFE67A9F686D + F006ADEAAA1AB72403D9F386AFF8C6CFF8C80FF1C96D72906FF1BD7AD9A61E96 + A8D04D4513F59AF1BDB36EF59C8FF55EDFF6630FF6737FF6DE0FFE69EFFD590F + F6E6FFFD6C5FFE2500F6E8BFFEE12FFE6FFFFE674FFE77DFFE709FFE72BFDF38 + 0C08645D036E5F18187E8888665F5F3E2D244F434A4202959796999742989D9A + 9F9EA1A09902124F1A5803AAABACADAEAFB0B167B3AD6363090970BABBBCBDBC + B8036B0D6DC4C5C6C7C70D1B6B67B1AE671F1FCDCED4D5D6D7D8B0251EDBDDDC + DFDEE1E0E3E2E5E4E7E6E9E8DC25EAEEECEFF1EBF215624D2B1759716B135289 + 7A3E0E613023C550FF8B1C4F7E0858288408C385A344617A288AA22587A0880C + 9140E2C2986C20B3CD9A762B97AF93BD12046BD005994B64CA98859C49B3A6CD + 55F0DAE9DCA93327CF9F3B7DB6130AB4A8D1A34089225D6A5429539D0AD2DC63 + 42264E17088E30E81198A8A09939087F1091688953D94D684199E5146AAD26B7 + 434CE42813E5A6DD91B406D8C26512651D5D093E7ED8C0B24BCB9788634EA3B6 + 785563BB9023AF0AD70E4DCF1296E171B35C19B367CEE5867ADEDC4D3468D33C + 2D671E7D79B56870AA75828E1D5BF3E7A4A55BA7060ADADE0D265400C41970C0 + DF568152186138F84482C288D0C94A8F9E51420E264124DBCCCBAA24CA5D63CE + 10EE12A07C80C388FF5D2AD6CEBE7DB6A7F0E3CB9F4FBFBEFDFA69C4FCE69185 + 0221337E249208063E980120130839E750276BB1C5D659103E286183694DC8D6 + 0F2668B0857B35E1D5CC5E70F40558786BFCD1451C148411471CE7A5F7D27A1C + C628E364A7C966E34FA0D9E6136CB97516946738DE98DB6CA1F104CE513BB206 + 0F9147EEE6A393A9E9D7020B6184B1070452084420065214F485063990608204 + 435037DD9911B9750911449840021375CC28125EABEC95CB9D2B918762952CB6 + E8224CCB3C26E7A09095A080A188B673E8A13B2D9A28543C395A94A394425AE9 + A59622CA68A49A72BAE94F923EAA68A79B621AEAA7A4768AC40D2D904181050D + B86186565A1E2205FF0820842981040B3AE8EBAFC0062BECB00DFD704A2A84DE + 5452606B9C48C18A1444DB277A7F160363B2D8DA5469A340853AAAA9A266EA6D + AA98723B6EA99D7E1BAEB9DDA6CBA9BAA8B20B2F1A52DE1186707548A1C7715A + E29A6B826556486184035B48B0C0976C745D1D1F655B8D87AAD812DE1F7130C0 + 4095613C3B6DB5C904EAF0C721912B32B8248F6C72C9289FAC72CA2CAF7CF212 + FAAD1004030074518621030AE4EFBFCD0D3116B140072DF40F12685817C8CED0 + C9CA070D0410C6C5D16ACC22B51C5F8BF4D5B12880C6A29C695D6EAAF08AACE8 + D68F6E5B36A4F38E3AF6A55D934B36BA6A9B1CB7D9E8B2CD76CC30EC90451751 + 14B765403BCB90EBFF13098D75968307276EF0E2BF0A40044717C489F535B308 + B367D41A974775B5564FEEB92A0A842EFAE8A4976EFAE9A8A7AEFAEAACB7EEFA + EBB0B38E061731A0B2030014D4F1853F3AEFCC3399870B2DFCF044FC503B1C9F + 3306CD1A6D049022E62B6ACEB1319D278FF42CB12F1ABAA6A593BABDF6A8738F + 72F7A68BFFFDEBE65F4AFEE8DE83CFBEE8E92BC0451322E43D45006F6861C671 + BE8320380891F0195A1007AC8311904207DC44F132842CEBC1A2720DB85CD4A2 + E7A7E9B5A17A0ECCD6484487000E9AAE83AD0321E944383A1192307BAF3B61E8 + 54A80016A2F0851F64DFFC6E70012A848001C4A155FF7616C0E00DEF87C26213 + 47E074B40CB20282FFCECBD804A3B7B93F61D08884A2050CA748C52A5A11755B + BBA2EA66D7041AF2C00914F880160EB14310CC4106609284E180C84661190F15 + 512003141D7306CB3D6F89D2B3E0053D36C76441CC831D0C24205B4848411AB2 + 90883CA42209793A419630918C1C212417F9C8455A7292923421264F78493074 + 31032CB0D81AB4F0851DCA40067368810C22219636BAF257C5AB5D1D54D24724 + DE515A1BD3E313FBE81E0F8D21759A5CA1072BB9C94C42B29191142627597749 + 625E5293941C66323149CC472EA18B176041161870860994F1946794014202F6 + CA720A81682B7043C3E6084109E2328F16DC252F2543A75BC061930878663E0B + B94F43E6F39FFE04FFA8402709507EFE9383FDC4A7400B1AC88532B485FD74E8 + 411B4A51832ED4A20145C035479081203821046D38E50ECF388733B2F267E66C + 63F14880857542D1964AC4E5D4F4B84799CC534623D10B1CEAE0064329F398C5 + 7464249F19D462FEF490472D2A5185BA54A53A95A830BB070CAAC000299CD177 + E09C831FCE08B094AA940824D8C21D78D9CE5B66AE82D393E74DEFF2213840C0 + 0D5A50C11214D00789DAF5AE19C5AB5E2F4A51896274AF800D2844034BD8C222 + 607E2BC0020F0C74D5C0A1720EFB5A654286E05536B6A9050D7C691D9B66560A + 36D1456A5DEB4CE8948BB76AE100311083A1F27A578CFEB5A28A4CA85D13D9DA + BE1A96B5B01DEC43FF6D7BDB81F25601F6C0C7160EF085C6FAEFB125C5C01CD2 + D8CACA12EF141728A211CB1AD3B37E363DA1152D48723A06B7BAC10B07388006 + 622057DDF6F6BCE84DAF7AD7CB5E892256033E68841EE6E02F703E560FA70C0B + 659D2BB4956AA00CB5DC6C12A1C7449A6657BBD8A045774D1BDE032C97044DE0 + C212F06ADE88EE75B0AFB5707BCF5BE1C27678C3B3B5470E348001E22AF794C8 + 2DA98AC549821FF037686C225A0E36C4CECDBAD3BA06E62382B793D3D2C2B5C1 + E17D3079278C001714F9C8F9347292FFA9E4231BF9C94866B240A1DC64805259 + CA576EF295ADECE42E6F39CA5AF63298A73C66282F39CB588EF299BB2C3F15DC + 40034CF8C2017C405B5254DAB9A4F31567E15E1C34633121C0C218301ED15A35 + 1DEF98267859F0774F0B64071F444C5CA82B88274DE94A5B3AB02E58829BE11C + 5E82E499A42A46048B79C567620DE1092D0074043B9BCB781AFAD02151B07719 + 0DE44000003B} + ExplicitWidth = 386 + end + end + object edtPassword: TEdit + Left = 96 + Top = 132 + Width = 278 + Height = 21 + PasswordChar = '*' + TabOrder = 2 + end + object bAceptar: TButton + Left = 208 + Top = 203 + Width = 75 + Height = 25 + Caption = '&Aceptar' + Default = True + TabOrder = 3 + OnClick = bAceptarClick + end + object bCancelar: TButton + Left = 296 + Top = 203 + Width = 75 + Height = 25 + Cancel = True + Caption = '&Salir' + ModalResult = 2 + TabOrder = 4 + end + object edtUser: TEdit + Left = 96 + Top = 104 + Width = 278 + Height = 21 + TabOrder = 1 + OnKeyPress = edtUserKeyPress + end + object Button1: TButton + Left = 16 + Top = 203 + Width = 129 + Height = 25 + Caption = 'C&onfigurar conexi'#243'n...' + TabOrder = 5 + OnClick = ToolButton4Click + end + object Timer1: TTimer + Enabled = False + Interval = 5000 + OnTimer = Timer1Timer + Left = 344 + Top = 64 + end + object JvAppRegistryStorage1: TJvAppRegistryStorage + StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' + StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' + StorageOptions.BooleanAsString = False + Root = 'Software\%APPL_NAME%' + SubStorages = <> + Left = 14 + Top = 168 + end + object JvFormStorage1: TJvFormStorage + AppStorage = JvAppRegistryStorage1 + AppStoragePath = '\' + Options = [] + StoredProps.Strings = ( + 'edtUser.Text' + 'edtPassword.Text') + StoredValues = < + item + Name = 'Ruta' + Value = '' + end> + Left = 48 + Top = 168 + end +end diff --git a/Source/ApplicationBase/Usuarios/Views/uEditorLogin.pas b/Source/ApplicationBase/Usuarios/Views/uEditorLogin.pas new file mode 100644 index 0000000..c7d030e --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Views/uEditorLogin.pas @@ -0,0 +1,140 @@ +unit uEditorLogin; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, cxGraphics, cxControls, + cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, + cxImageComboBox, ImgList, PngImageList, pngimage, ToolWin, JvExControls, + JvComponent, JvGradient, JvGIF, JvComponentBase, JvFormPlacement, + JvAppStorage, JvAppRegistryStorage, uIEditorLogin, uUsuariosController; + +type + TfEditorLogin = class(TForm, IEditorLogin) + Panel1: TPanel; + Label3: TLabel; + Label4: TLabel; + edtPassword: TEdit; + bAceptar: TButton; + bCancelar: TButton; + Label1: TLabel; + edtUser: TEdit; + JvGradient1: TJvGradient; + Button1: TButton; + Timer1: TTimer; + JvAppRegistryStorage1: TJvAppRegistryStorage; + JvFormStorage1: TJvFormStorage; + Image1: TImage; + procedure bAceptarClick(Sender: TObject); + procedure ToolButton4Click(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Timer1Timer(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure FormDestroy(Sender: TObject); + procedure edtUserKeyPress(Sender: TObject; var Key: Char); + private + FController : IUsuariosController; + FIntentos : Integer; + function GetController : IUsuariosController; + procedure SetController (const AValue : IUsuariosController); + published + property Controller : IUsuariosController read GetController write SetController; + end; + + +implementation + +uses + uFactuGES_App, uDataModuleConexion; + +{$R *.dfm} + +{ +********************************* TfEditorLogin ********************************** +} +procedure TfEditorLogin.bAceptarClick(Sender: TObject); +var + bOk : Boolean; +begin + Timer1.Enabled := False; + + ShowHourglassCursor; + try + bOK := FController.ComprobarUsuario(edtUser.Text, edtPassword.Text); + finally + HideHourglassCursor; + end; + + if bOk then + ModalResult := mrOK + else begin + Application.MessageBox('Usuario no vlido. Compruebe si ha escrito correctamente' + + #13 + #10 + 'el usuario y la contrasea.', 'Atencin', MB_OK); + Inc(FIntentos); + if (Controller.MaxIntentosLogin > 0) and (FIntentos = Controller.MaxIntentosLogin) then + ModalResult := mrCancel; + end; +end; + +procedure TfEditorLogin.ToolButton4Click(Sender: TObject); +var + ATimer : Boolean; +begin + ATimer := False; + if Timer1.Enabled then + begin + ATimer := True; + Timer1.Enabled := False; + end; + + dmConexion.ConfigurarConexion; + + if ATimer then + Timer1.Enabled := True; +end; + +procedure TfEditorLogin.edtUserKeyPress(Sender: TObject; var Key: Char); +begin + // Desactivar el timer cuando el usuario empieza a escribir + Timer1.Enabled := False; +end; + +procedure TfEditorLogin.FormCreate(Sender: TObject); +begin + FIntentos := 0; +end; + +procedure TfEditorLogin.FormDestroy(Sender: TObject); +begin + FController := NIL; +end; + +procedure TfEditorLogin.FormShow(Sender: TObject); +begin + Self.Caption := AppFactuGES.AppFullName; + JvFormStorage1.RestoreFormPlacement; + + // Hacer login automtica si hay usuario/password y no hay ms de una base + // de datos como opcin para conectarse. + if ((Length(edtUser.Text) > 0) and (Length(edtPassword.Text) > 0)) then + Timer1.Enabled := True; +end; + +function TfEditorLogin.GetController: IUsuariosController; +begin + Result := FController; +end; + +procedure TfEditorLogin.SetController(const AValue: IUsuariosController); +begin + FController := AValue; +end; + +procedure TfEditorLogin.Timer1Timer(Sender: TObject); +begin + Timer1.Enabled := False; + bAceptar.Click; +end; + +end. diff --git a/Source/ApplicationBase/Usuarios/Views/uEditorPerfilUsuario.dcu b/Source/ApplicationBase/Usuarios/Views/uEditorPerfilUsuario.dcu new file mode 100644 index 0000000..5b92744 Binary files /dev/null and b/Source/ApplicationBase/Usuarios/Views/uEditorPerfilUsuario.dcu differ diff --git a/Source/ApplicationBase/Usuarios/Views/uEditorPerfilUsuario.dfm b/Source/ApplicationBase/Usuarios/Views/uEditorPerfilUsuario.dfm new file mode 100644 index 0000000..ce97dfe --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Views/uEditorPerfilUsuario.dfm @@ -0,0 +1,54 @@ +inherited fEditorPerfilUsuario: TfEditorPerfilUsuario + Caption = 'fEditorPerfilUsuario' + PixelsPerInch = 96 + TextHeight = 13 + inherited TBXDock: TTBXDock + inherited tbxMain: TTBXToolbar + ExplicitWidth = 330 + end + end + inherited pgPaginas: TPageControl + inherited pagGeneral: TTabSheet + ExplicitLeft = 4 + ExplicitTop = 24 + ExplicitWidth = 638 + ExplicitHeight = 332 + end + end + inherited StatusBar: TJvStatusBar + Panels = < + item + Width = 200 + end> + end + inherited EditorActionList: TActionList + inherited actNuevo: TAction + Visible = False + end + inherited actModificar: TAction + Visible = False + end + inherited actPrevisualizar: TAction + Visible = False + end + inherited actImprimir: TAction + Visible = False + end + inherited actDuplicar: TAction + Visible = False + end + end + object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList + Left = 248 + Top = 168 + object dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel + GroupOptions.CaptionOptions.Font.Charset = DEFAULT_CHARSET + GroupOptions.CaptionOptions.Font.Color = clWindowText + GroupOptions.CaptionOptions.Font.Height = -11 + GroupOptions.CaptionOptions.Font.Name = 'Tahoma' + GroupOptions.CaptionOptions.Font.Style = [fsBold] + GroupOptions.CaptionOptions.TextColor = clHighlight + GroupOptions.CaptionOptions.UseDefaultFont = False + end + end +end diff --git a/Source/ApplicationBase/Usuarios/Views/uEditorPerfilUsuario.pas b/Source/ApplicationBase/Usuarios/Views/uEditorPerfilUsuario.pas new file mode 100644 index 0000000..45fb379 --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Views/uEditorPerfilUsuario.pas @@ -0,0 +1,167 @@ +unit uEditorPerfilUsuario; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorDBItem, JvAppStorage, JvAppRegistryStorage, DB, uDAInterfaces, + uDADataTable, JvComponentBase, JvFormPlacement, ImgList, PngImageList, + StdActns, ActnList, ComCtrls, JvExComCtrls, JvStatusBar, TBX, TB2Item, + TB2Dock, TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvNavigationPane, + uIEditorPerfilUsuario, uUsuariosController, uCustomView, uViewBase, + uViewPerfilUsuario, uBizUsuarios, dxLayoutLookAndFeels; + +type + TfEditorPerfilUsuario = class(TfEditorDBItem, IEditorPerfilUsuario) + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + private + FController : IUsuariosController; + FPerfilUsuario : IBizPerfilUsuario; + FViewPerfilUsuario : IViewPerfilUsuario; + protected + function GetController : IUsuariosController; + procedure SetController (const Value : IUsuariosController); + + function GetPerfilUsuario: IBizPerfilUsuario; + procedure SetPerfilUsuario(const Value: IBizPerfilUsuario); + + procedure GuardarInterno; override; + procedure EliminarInterno; override; + + //Si queremos crear otra vista para el editor heredado solo tendriamos que + //sobreescribir este metodo + procedure AsignarVista; virtual; + procedure PonerTitulos(const ATitulo: string = ''); override; + + function GetViewPerfilUsuario: IViewPerfilUsuario; + procedure SetViewPerfilUsuario(const Value: IViewPerfilUsuario); + property ViewPerfilUsuario: IViewPerfilUsuario read GetViewPerfilUsuario write SetViewPerfilUsuario; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + property Controller : IUsuariosController read GetController write SetController; + property PerfilUsuario: IBizPerfilUsuario read GetPerfilUsuario write SetPerfilUsuario; + end; + + +implementation + +{$R *.dfm} + +{ TfEditorUsuario } + +uses + uDialogUtils; + +var + FIDNuevoGuardado : Integer = -1; + +procedure TfEditorPerfilUsuario.AsignarVista; +var + AViewPerfilUsuario: TfrViewPerfilUsuario; +begin + AViewPerfilUsuario := TfrViewPerfilUsuario.Create(Self); + with AViewPerfilUsuario do + begin + Parent := pagGeneral; + Align := alClient; + dxLayoutControlArticulo.LookAndFeel := dxLayoutOfficeLookAndFeel1; + end; + ViewPerfilUsuario := AViewPerfilUsuario; +end; + +constructor TfEditorPerfilUsuario.Create(AOwner: TComponent); +begin + inherited; + pgPaginas.ActivePageIndex := 0; + AsignarVista; +end; + +destructor TfEditorPerfilUsuario.Destroy; +begin + // Utilizar mejor OnClose; + inherited; +end; + +procedure TfEditorPerfilUsuario.EliminarInterno; +begin + if (ShowConfirmMessage('Eliminar el perfil', 'Desea eliminar este perfil?') = IDYES) then + begin + inherited; + if not FController.EliminarPerfil(FPerfilUsuario) then + actRefrescar.Execute; + end; +end; + +function TfEditorPerfilUsuario.GetController: IUsuariosController; +begin + Result := FController; +end; + +function TfEditorPerfilUsuario.GetPerfilUsuario: IBizPerfilUsuario; +begin + Result := FPerfilUsuario; +end; + +function TfEditorPerfilUsuario.GetViewPerfilUsuario: IViewPerfilUsuario; +begin + Result := FViewPerfilUsuario; +end; + +procedure TfEditorPerfilUsuario.GuardarInterno; +begin + inherited; + if FController.GuardarPerfil(FPerfilUsuario) then + begin + FIDNuevoGuardado := FPerfilUsuario.ID; + FPerfilUsuario.DataTable.CancelUpdates; + Modified := False; + actRefrescar.Execute; + end; +end; + +procedure TfEditorPerfilUsuario.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + if Assigned(FPerfilUsuario) then + begin + if FPerfilUsuario.EsNuevo then + FTitulo := 'Nuevo perfil' + else + FTitulo := 'Perfil'; + + if Length(FPerfilUsuario.USERNAME) > 0 then + FTitulo := FTitulo + ' - ' + FPerfilUsuario.USERNAME; + end; + + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorPerfilUsuario.SetController(const Value: IUsuariosController); +begin + FController := Value; + if Assigned(FViewPerfilUsuario) and Assigned(FController) then + FViewPerfilUsuario.Controller := FController; +end; + +procedure TfEditorPerfilUsuario.SetPerfilUsuario( + const Value: IBizPerfilUsuario); +begin + FPerfilUsuario := Value; + dsDataTable.DataTable := FPerfilUsuario.DataTable; + + if Assigned(FViewPerfilUsuario) and Assigned(FPerfilUsuario) then + FViewPerfilUsuario.PerfilUsuario := FPerfilUsuario; +end; + +procedure TfEditorPerfilUsuario.SetViewPerfilUsuario(const Value: IViewPerfilUsuario); +begin + FViewPerfilUsuario := Value; + + if Assigned(FViewPerfilUsuario) and Assigned(FPerfilUsuario) then + FViewPerfilUsuario.PerfilUsuario := FPerfilUsuario; +end; + +end. diff --git a/Source/ApplicationBase/Usuarios/Views/uEditorPerfilesUsuario.dcu b/Source/ApplicationBase/Usuarios/Views/uEditorPerfilesUsuario.dcu new file mode 100644 index 0000000..f0becf9 Binary files /dev/null and b/Source/ApplicationBase/Usuarios/Views/uEditorPerfilesUsuario.dcu differ diff --git a/Source/ApplicationBase/Usuarios/Views/uEditorPerfilesUsuario.dfm b/Source/ApplicationBase/Usuarios/Views/uEditorPerfilesUsuario.dfm new file mode 100644 index 0000000..5c38073 --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Views/uEditorPerfilesUsuario.dfm @@ -0,0 +1,41 @@ +inherited fEditorPerfilesUsuario: TfEditorPerfilesUsuario + Caption = 'fEditorPerfilesUsuario' + ClientHeight = 493 + ClientWidth = 840 + ExplicitWidth = 848 + ExplicitHeight = 527 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 840 + ExplicitWidth = 840 + inherited Image1: TImage + Left = 813 + ExplicitLeft = 813 + end + end + inherited TBXDock: TTBXDock + Width = 840 + ExplicitWidth = 840 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 386 + end + inherited tbxFiltro: TTBXToolbar + Visible = False + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 840 + end + end + inherited StatusBar: TJvStatusBar + Top = 474 + Width = 840 + ExplicitTop = 474 + ExplicitWidth = 840 + end + inherited EditorActionList: TActionList + inherited actDuplicar: TAction + Visible = False + end + end +end diff --git a/Source/ApplicationBase/Usuarios/Views/uEditorPerfilesUsuario.pas b/Source/ApplicationBase/Usuarios/Views/uEditorPerfilesUsuario.pas new file mode 100644 index 0000000..612b3a9 --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Views/uEditorPerfilesUsuario.pas @@ -0,0 +1,130 @@ +unit uEditorPerfilesUsuario; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorGridBase, Menus, JvAppStorage, JvAppRegistryStorage, DB, + uDAInterfaces, uDADataTable, JvComponentBase, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, JvExComCtrls, JvStatusBar, TBX, + TB2ExtItems, TBXExtItems, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, + JvExControls, JvNavigationPane, uIEditorPerfilesUsuario, + uUsuariosController, uBizUsuarios, uViewPerfilesUsuario; + +type + TfEditorPerfilesUsuario = class(TfEditorGridBase, IEditorPerfilesUsuario) + private + FPerfiles : IBizPerfilUsuario; + FController : IUsuariosController; + protected + function GetController : IUsuariosController; + procedure SetController (const Value : IUsuariosController); + + function GetPerfilesUsuario: IBizPerfilUsuario; + procedure SetPerfilesUsuario(const Value: IBizPerfilUsuario); + + procedure NuevoInterno; override; + procedure EliminarInterno; override; + procedure ModificarInterno; override; + + //Si queremos crear otra vista para el editor heredado solo tendriamos que + //sobreescribir este metodo + procedure AsignarVista; virtual; + public + procedure PonerTitulos(const ATitulo: string = ''); override; + property PerfilesUsuario: IBizPerfilUsuario read GetPerfilesUsuario write SetPerfilesUsuario; + property Controller : IUsuariosController read GetController write SetController; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + uDialogUtils; + +{ TfEditorUsuarios } + +procedure TfEditorPerfilesUsuario.AsignarVista; +begin + ViewGrid := CreateView(TfrViewPerfilesUsuario) as IViewPerfilesUsuario; +end; + +constructor TfEditorPerfilesUsuario.Create(AOwner: TComponent); +begin + inherited; + AsignarVista; +end; + +destructor TfEditorPerfilesUsuario.Destroy; +begin + FPerfiles := NIL; + FController := NIl; + + inherited; +end; + +procedure TfEditorPerfilesUsuario.EliminarInterno; +begin + if (ShowConfirmMessage('Eliminar un perfil', Format('Desea eliminar el perfil %s?', [FPerfiles.USERNAME])) = IDYES) then + begin + inherited; + //Para que en el caso de no poderse realizar la operacin se refresquen + //los datos y no nos permita eliminar un registro a la segunda + FController.EliminarPerfil(FPerfiles); + actRefrescar.Execute; + end; +end; + +function TfEditorPerfilesUsuario.GetController: IUsuariosController; +begin + Result := FController; +end; + +function TfEditorPerfilesUsuario.GetPerfilesUsuario: IBizPerfilUsuario; +begin + Result := FPerfiles; +end; + +procedure TfEditorPerfilesUsuario.ModificarInterno; +begin + inherited; + FController.VerPerfil(FPerfiles.ID); + actRefrescar.Execute; +end; + +procedure TfEditorPerfilesUsuario.NuevoInterno; +var + ANuevoPerfil : IBizPerfilUsuario; +begin + inherited; + ANuevoPerfil := FController.NuevoPerfil; + FController.VerPerfil(ANuevoPerfil); + actRefrescar.Execute; +end; + +procedure TfEditorPerfilesUsuario.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := 'Lista de perfiles de usuario'; + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorPerfilesUsuario.SetController(const Value: IUsuariosController); +begin + FController := Value; +end; + +procedure TfEditorPerfilesUsuario.SetPerfilesUsuario( + const Value: IBizPerfilUsuario); +begin + FPerfiles := Value; + dsDataTable.DataTable := FPerfiles.DataTable; + if Assigned(ViewGrid) then + (ViewGrid as IViewPerfilesUsuario).PerfilesUsuario := FPerfiles; +end; + +end. diff --git a/Source/ApplicationBase/Usuarios/Views/uEditorUsuario.dcu b/Source/ApplicationBase/Usuarios/Views/uEditorUsuario.dcu new file mode 100644 index 0000000..3ab94f2 Binary files /dev/null and b/Source/ApplicationBase/Usuarios/Views/uEditorUsuario.dcu differ diff --git a/Source/ApplicationBase/Usuarios/Views/uEditorUsuario.dfm b/Source/ApplicationBase/Usuarios/Views/uEditorUsuario.dfm new file mode 100644 index 0000000..9f64d64 --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Views/uEditorUsuario.dfm @@ -0,0 +1,137 @@ +inherited fEditorUsuario: TfEditorUsuario + Caption = 'fEditorUsuario' + PixelsPerInch = 96 + TextHeight = 13 + inherited TBXDock: TTBXDock + inherited tbxMain: TTBXToolbar + ExplicitWidth = 465 + object TBXSeparatorItem6: TTBXSeparatorItem [6] + end + object TBXItem33: TTBXItem [7] + Action = actCambiarPassword + end + end + inherited tbxMenu: TTBXToolbar + object TBXSubmenuItem2: TTBXSubmenuItem [4] + Caption = '&Herramientas' + object TBXItem7: TTBXItem + Action = actCambiarPassword + end + end + end + end + inherited pgPaginas: TPageControl + inherited pagGeneral: TTabSheet + inline frViewUsuario1: TfrViewUsuario + Left = 0 + Top = 0 + Width = 638 + Height = 332 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 638 + ExplicitHeight = 332 + inherited dxLayoutControlArticulo: TdxLayoutControl + Width = 638 + LookAndFeel = dxLayoutOfficeLookAndFeel1 + ExplicitWidth = 638 + DesignSize = ( + 638 + 249) + inherited PngSpeedButton3: TPngSpeedButton + Top = 84 + ExplicitTop = 84 + end + inherited eNombre: TcxDBTextEdit + Top = 30 + ExplicitTop = 30 + ExplicitWidth = 164 + Width = 164 + end + inherited eUsuario: TcxDBTextEdit + Top = 57 + ExplicitTop = 57 + ExplicitWidth = 108 + Width = 108 + end + inherited eMail: TcxDBHyperLinkEdit + Top = 84 + Properties.Prefix = 'mailto:' + ExplicitTop = 84 + end + inherited ePassword: TcxTextEdit + Top = 163 + ExplicitTop = 163 + ExplicitWidth = 121 + Width = 121 + end + inherited eConfirmarPassword: TcxTextEdit + Top = 190 + ExplicitTop = 190 + ExplicitWidth = 372 + Width = 372 + end + inherited cbPerfil: TcxComboBox + Top = 112 + ExplicitTop = 112 + end + end + end + end + end + inherited StatusBar: TJvStatusBar + Panels = < + item + Width = 200 + end> + end + inherited EditorActionList: TActionList + inherited actNuevo: TAction + Visible = False + end + inherited actModificar: TAction + Visible = False + end + inherited actConfPagina: TAction + Visible = False + end + inherited actPrevisualizar: TAction + Visible = False + end + inherited actImprimir: TAction + Visible = False + end + inherited actDuplicar: TAction + Visible = False + end + object actCambiarPassword: TAction + Category = 'Herramientas' + Caption = 'Cambiar la contrase'#241'a...' + OnExecute = actCambiarPasswordExecute + OnUpdate = actCambiarPasswordUpdate + end + end + inherited StatusBarImages: TPngImageList + Top = 312 + end + object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList + Left = 336 + Top = 160 + object dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel + GroupOptions.CaptionOptions.Font.Charset = DEFAULT_CHARSET + GroupOptions.CaptionOptions.Font.Color = clWindowText + GroupOptions.CaptionOptions.Font.Height = -11 + GroupOptions.CaptionOptions.Font.Name = 'Tahoma' + GroupOptions.CaptionOptions.Font.Style = [fsBold] + GroupOptions.CaptionOptions.TextColor = clHighlight + GroupOptions.CaptionOptions.UseDefaultFont = False + end + end +end diff --git a/Source/ApplicationBase/Usuarios/Views/uEditorUsuario.pas b/Source/ApplicationBase/Usuarios/Views/uEditorUsuario.pas new file mode 100644 index 0000000..2a70d10 --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Views/uEditorUsuario.pas @@ -0,0 +1,226 @@ +unit uEditorUsuario; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorDBItem, JvAppStorage, JvAppRegistryStorage, DB, uDAInterfaces, + uDADataTable, JvComponentBase, JvFormPlacement, ImgList, PngImageList, + StdActns, ActnList, ComCtrls, JvExComCtrls, JvStatusBar, TBX, TB2Item, + TB2Dock, TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvNavigationPane, + uIEditorUsuario, uUsuariosController, uCustomView, uViewBase, uViewUsuario, + uBizUsuarios, dxLayoutLookAndFeels; + +type + TfEditorUsuario = class(TfEditorDBItem, IEditorUsuario) + frViewUsuario1: TfrViewUsuario; + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + actCambiarPassword: TAction; + TBXSubmenuItem2: TTBXSubmenuItem; + TBXItem7: TTBXItem; + TBXSeparatorItem6: TTBXSeparatorItem; + TBXItem33: TTBXItem; + procedure actEliminarUpdate(Sender: TObject); + procedure actCambiarPasswordExecute(Sender: TObject); + procedure actCambiarPasswordUpdate(Sender: TObject); + private + FController : IUsuariosController; + FUsuario : IBizUsuario; + FViewUsuario : IViewUsuario; + protected + function GetController : IUsuariosController; + procedure SetController (const Value : IUsuariosController); + + function GetUsuario: IBizUsuario; + procedure SetUsuario(const Value: IBizUsuario); + + procedure GuardarInterno; override; + procedure EliminarInterno; override; + procedure RefrescarInterno; override; + + procedure PonerTitulos(const ATitulo: string = ''); override; + + function GetViewUsuario: IViewUsuario; + procedure SetViewUsuario(const Value: IViewUsuario); + property ViewUsuario: IViewUsuario read GetViewUsuario write SetViewUsuario; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + property Controller : IUsuariosController read GetController write SetController; + property Usuario: IBizUsuario read GetUsuario write SetUsuario; + end; + + +implementation + +{$R *.dfm} + +uses + uDialogUtils, cxControls; + +{ TfEditorUsuario } + +var + FIDNuevoGuardado : Integer = -1; + +procedure TfEditorUsuario.actCambiarPasswordExecute(Sender: TObject); +begin + inherited; + FController.CambiarPassword(FUsuario.ID); +end; + +procedure TfEditorUsuario.actCambiarPasswordUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := not FUsuario.EsNuevo; +end; + +procedure TfEditorUsuario.actEliminarUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := (FUsuario.PRIVILEGED = 0); +end; + +constructor TfEditorUsuario.Create(AOwner: TComponent); +begin + inherited; + pgPaginas.ActivePageIndex := 0; + FViewUsuario := frViewUsuario1; +end; + +destructor TfEditorUsuario.Destroy; +begin + // Utilizar mejor OnClose; + inherited; +end; + +procedure TfEditorUsuario.EliminarInterno; +begin + if (Application.MessageBox('Desea borrar este usuario?', 'Atencin', MB_YESNO) = IDYES) then + begin + inherited; + if not FController.EliminarUsuario(FUsuario.ID) then + actRefrescar.Execute; + end; +end; + +function TfEditorUsuario.GetController: IUsuariosController; +begin + Result := FController; +end; + +function TfEditorUsuario.GetUsuario: IBizUsuario; +begin + Result := FUsuario; +end; + +function TfEditorUsuario.GetViewUsuario: IViewUsuario; +begin + Result := FViewUsuario; +end; + +procedure TfEditorUsuario.GuardarInterno; +var + AMensaje : String; + AContinuar : Boolean; +begin + inherited; + if FUsuario.EsNuevo then + begin + if (frViewUsuario1.ePassword.Text <> frViewUsuario1.eConfirmarPassword.Text) then + raise Exception.Create('La contrasea no se confirm correctamente' + #10#13 + + 'Asegrese de que la contrasea y su confirmacin sean iguales.') + else + if not FController.ValidarPassword(frViewUsuario1.ePassword.Text, + frViewUsuario1.eUsuario.Text, frViewUsuario1.eNombre.Text, AMensaje) then + raise Exception.Create(AMensaje) + else begin + FUsuario.Edit; + FUsuario.PASS := frViewUsuario1.ePassword.Text; + FUsuario.Edit; + AContinuar := True; + end; + end + else + AContinuar := True; + + if AContinuar then + begin + if FController.GuardarUsuario(FUsuario) then + begin + FIDNuevoGuardado := FUsuario.ID; + FUsuario.DataTable.CancelUpdates; + Modified := False; + actRefrescar.Execute; + end; + end +end; + +procedure TfEditorUsuario.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + if Assigned(Usuario) then + begin + if Usuario.EsNuevo then + FTitulo := 'Nuevo usuario' + else + FTitulo := 'Usuario'; + + if Length(Usuario.USERNAME) > 0 then + FTitulo := FTitulo + ' - ' + Usuario.USERNAME; + end; + + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorUsuario.RefrescarInterno; +begin + inherited; + + if (FIDNuevoGuardado > 0) and (FUsuario.ID <> FIDNuevoGuardado) then + begin + if (dsDataTable.DataTable.IsEmpty) or (not ModifiedQuery) then + Exit; // No continuar con el refresco + + dsDataTable.DataTable.DisableControls; //<- No descomentar + ShowHourglassCursor; + try + dsDataTable.DataTable.First; + if dsDataTable.DataTable.Locate('ID', FIDNuevoGuardado, []) then + FIDNuevoGuardado := -1; + finally + dsDataTable.DataTable.EnableControls; //<- No descomentar + HideHourglassCursor; + end; + end; +end; + +procedure TfEditorUsuario.SetController(const Value: IUsuariosController); +begin + FController := Value; + if Assigned(FViewUsuario) and Assigned(FController) then + FViewUsuario.Controller := FController; +end; + +procedure TfEditorUsuario.SetUsuario(const Value: IBizUsuario); +begin + FUsuario := Value; + dsDataTable.DataTable := FUsuario.DataTable; + + if Assigned(FViewUsuario) and Assigned(Usuario) then + FViewUsuario.Usuario := Usuario; + +end; + +procedure TfEditorUsuario.SetViewUsuario(const Value: IViewUsuario); +begin + FViewUsuario := Value; + + if Assigned(FViewUsuario) and Assigned(Usuario) then + FViewUsuario.Usuario := Usuario; +end; + +end. diff --git a/Source/ApplicationBase/Usuarios/Views/uEditorUsuarios.dcu b/Source/ApplicationBase/Usuarios/Views/uEditorUsuarios.dcu new file mode 100644 index 0000000..c0f75cd Binary files /dev/null and b/Source/ApplicationBase/Usuarios/Views/uEditorUsuarios.dcu differ diff --git a/Source/ApplicationBase/Usuarios/Views/uEditorUsuarios.dfm b/Source/ApplicationBase/Usuarios/Views/uEditorUsuarios.dfm new file mode 100644 index 0000000..f622a8f --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Views/uEditorUsuarios.dfm @@ -0,0 +1,56 @@ +inherited fEditorUsuarios: TfEditorUsuarios + Caption = 'fEditorUsuarios' + ClientHeight = 493 + ClientWidth = 840 + ExplicitWidth = 848 + ExplicitHeight = 527 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 840 + ExplicitWidth = 840 + inherited Image1: TImage + Left = 813 + ExplicitLeft = 813 + end + end + inherited TBXDock: TTBXDock + Width = 840 + ExplicitWidth = 840 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 521 + object TBXItem39: TTBXItem [8] + Action = actCambiarPassword + end + end + inherited tbxFiltro: TTBXToolbar + Visible = False + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 840 + object TBXSubmenuItem2: TTBXSubmenuItem [4] + Caption = '&Herramientas' + object TBXItem38: TTBXItem + Action = actCambiarPassword + end + end + end + end + inherited StatusBar: TJvStatusBar + Top = 474 + Width = 840 + ExplicitTop = 474 + ExplicitWidth = 840 + end + inherited EditorActionList: TActionList + inherited actDuplicar: TAction + Visible = False + end + object actCambiarPassword: TAction + Category = 'Herramientas' + Caption = 'Cambiar la contrase'#241'a...' + OnExecute = actCambiarPasswordExecute + OnUpdate = actCambiarPasswordUpdate + end + end +end diff --git a/Source/ApplicationBase/Usuarios/Views/uEditorUsuarios.pas b/Source/ApplicationBase/Usuarios/Views/uEditorUsuarios.pas new file mode 100644 index 0000000..2e4f1bc --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Views/uEditorUsuarios.pas @@ -0,0 +1,176 @@ +unit uEditorUsuarios; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorGridBase, Menus, JvAppStorage, JvAppRegistryStorage, DB, + uDAInterfaces, uDADataTable, JvComponentBase, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, JvExComCtrls, JvStatusBar, TBX, + TB2ExtItems, TBXExtItems, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, + JvExControls, JvNavigationPane, uCustomView, uViewBase, uViewGridBase, + uViewGrid, uViewUsuarios, uIEditorUsuarios, uUsuariosController, + uBizUsuarios; + +type + TfEditorUsuarios = class(TfEditorGridBase, IEditorUsuarios) + actCambiarPassword: TAction; + TBXSubmenuItem2: TTBXSubmenuItem; + TBXItem38: TTBXItem; + TBXItem39: TTBXItem; + procedure actEliminarUpdate(Sender: TObject); + procedure actCambiarPasswordUpdate(Sender: TObject); + procedure actCambiarPasswordExecute(Sender: TObject); + private + FUsuarios : IBizUsuario; + FController : IUsuariosController; + protected + function GetController : IUsuariosController; + procedure SetController (const Value : IUsuariosController); + + function GetUsuarios: IBizUsuario; + procedure SetUsuarios(const Value: IBizUsuario); + + procedure NuevoInterno; override; + procedure EliminarInterno; override; + procedure ModificarInterno; override; + procedure ImprimirInterno; override; + procedure PrevisualizarInterno; override; + procedure DuplicarInterno; override; + + //Si queremos crear otra vista para el editor heredado solo tendriamos que + //sobreescribir este metodo + procedure AsignarVista; virtual; + public + procedure PonerTitulos(const ATitulo: string = ''); override; + property Usuarios: IBizUsuario read GetUsuarios write SetUsuarios; + property Controller : IUsuariosController read GetController write SetController; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + uDialogUtils; + +{ TfEditorUsuarios } + +procedure TfEditorUsuarios.actCambiarPasswordExecute(Sender: TObject); +begin + inherited; + FController.CambiarPassword(FUsuarios.ID); +end; + +procedure TfEditorUsuarios.actCambiarPasswordUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := HayDatos; +end; + +procedure TfEditorUsuarios.actEliminarUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := (FUsuarios.PRIVILEGED = 0); +end; + +procedure TfEditorUsuarios.AsignarVista; +begin + ViewGrid := CreateView(TfrViewUsuarios) as IViewUsuarios; +end; + +constructor TfEditorUsuarios.Create(AOwner: TComponent); +begin + inherited; + AsignarVista; +end; + +destructor TfEditorUsuarios.Destroy; +begin + FUsuarios := NIL; + FController := NIl; + + inherited; +end; + +procedure TfEditorUsuarios.DuplicarInterno; +begin + inherited; +end; + +procedure TfEditorUsuarios.EliminarInterno; +begin + if (ShowConfirmMessage('Eliminar un usuario', Format('Desea borrar el usuario %s?', [FUsuarios.USERNAME])) = IDYES) then + begin + inherited; + //Para que en el caso de no poderse realizar la operacin se refresquen + //los datos y no nos permita eliminar un registro a la segunda + FController.EliminarUsuario(FUsuarios.ID); + actRefrescar.Execute; + end; +end; + +function TfEditorUsuarios.GetController: IUsuariosController; +begin + Result := FController; +end; + +function TfEditorUsuarios.GetUsuarios: IBizUsuario; +begin + Result := FUsuarios; +end; + +procedure TfEditorUsuarios.ImprimirInterno; +begin + inherited; +end; + +procedure TfEditorUsuarios.ModificarInterno; +begin + inherited; + FController.VerUsuario(FUsuarios.ID); + actRefrescar.Execute; +end; + +procedure TfEditorUsuarios.NuevoInterno; +var + ANuevoUsuario : IBizUsuario; +begin + inherited; + ANuevoUsuario := FController.NuevoUsuario; + FController.VerUsuario(ANuevoUsuario); + actRefrescar.Execute; +end; + +procedure TfEditorUsuarios.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := 'Lista de usuarios'; + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorUsuarios.PrevisualizarInterno; +begin + inherited; + +end; + +procedure TfEditorUsuarios.SetController(const Value: IUsuariosController); +begin + FController := Value; +end; + +procedure TfEditorUsuarios.SetUsuarios(const Value: IBizUsuario); +begin + FUsuarios := Value; + dsDataTable.DataTable := FUsuarios.DataTable; + if Assigned(ViewGrid) then + (ViewGrid as IViewUsuarios).Usuarios := FUsuarios; +end; + +end. diff --git a/Source/ApplicationBase/Usuarios/Views/uUsuario.dfm b/Source/ApplicationBase/Usuarios/Views/uUsuario.dfm new file mode 100644 index 0000000..93fcc6e --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Views/uUsuario.dfm @@ -0,0 +1,123 @@ +object fUsuario: TfUsuario + Left = 523 + Top = 415 + BorderStyle = bsDialog + Caption = 'Datos del usuario' + ClientHeight = 309 + ClientWidth = 308 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + PixelsPerInch = 96 + TextHeight = 13 + object Button1: TButton + Left = 138 + Top = 273 + Width = 75 + Height = 25 + Action = actAceptar + TabOrder = 1 + end + object Button2: TButton + Left = 226 + Top = 273 + Width = 75 + Height = 25 + Action = actCancelar + TabOrder = 2 + end + object TabControl1: TPageControl + Left = 8 + Top = 8 + Width = 293 + Height = 257 + ActivePage = pagUsuario + TabOrder = 0 + object pagUsuario: TTabSheet + Caption = 'Usuario' + object GroupBox1: TGroupBox + Left = 6 + Top = 5 + Width = 274 + Height = 99 + Caption = 'GroupBox1' + TabOrder = 0 + DesignSize = ( + 274 + 99) + object Label4: TLabel + Left = 34 + Top = 28 + Width = 39 + Height = 13 + Caption = 'Usuario:' + Transparent = False + end + object Label5: TLabel + Left = 16 + Top = 60 + Width = 57 + Height = 13 + Caption = 'Contrase'#241'a:' + Transparent = False + end + object edtUser: TEdit + Left = 88 + Top = 24 + Width = 169 + Height = 21 + Anchors = [akLeft, akTop, akRight] + TabOrder = 0 + end + object edtPassword: TEdit + Left = 88 + Top = 56 + Width = 169 + Height = 21 + Anchors = [akLeft, akTop, akRight] + PasswordChar = '*' + TabOrder = 1 + end + end + object GroupBox2: TGroupBox + Left = 7 + Top = 111 + Width = 273 + Height = 110 + Caption = 'Permisos y seguridad' + TabOrder = 1 + object Label1: TLabel + Left = 47 + Top = 36 + Width = 26 + Height = 13 + Caption = 'Perfil:' + Transparent = False + end + object cbPerfil: TComboBox + Left = 88 + Top = 28 + Width = 169 + Height = 21 + ItemHeight = 13 + TabOrder = 0 + end + end + end + end + object ActionList: TActionList + Left = 8 + Top = 272 + object actAceptar: TAction + Caption = '&Aceptar' + end + object actCancelar: TAction + Caption = '&Cancelar' + end + end +end diff --git a/Source/ApplicationBase/Usuarios/Views/uUsuario.pas b/Source/ApplicationBase/Usuarios/Views/uUsuario.pas new file mode 100644 index 0000000..90e722c --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Views/uUsuario.pas @@ -0,0 +1,39 @@ +unit uUsuario; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ComCtrls, ActnList; + +type + TfUsuario = class(TForm) + Button1: TButton; + Button2: TButton; + TabControl1: TPageControl; + pagUsuario: TTabSheet; + GroupBox1: TGroupBox; + Label4: TLabel; + Label5: TLabel; + edtUser: TEdit; + edtPassword: TEdit; + GroupBox2: TGroupBox; + Label1: TLabel; + cbPerfil: TComboBox; + ActionList: TActionList; + actAceptar: TAction; + actCancelar: TAction; + private + { Private declarations } + public + { Public declarations } + end; + +var + fUsuario: TfUsuario; + +implementation + +{$R *.dfm} + +end. diff --git a/Source/ApplicationBase/Usuarios/Views/uUsuarios.dfm b/Source/ApplicationBase/Usuarios/Views/uUsuarios.dfm new file mode 100644 index 0000000..0c3eb30 --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Views/uUsuarios.dfm @@ -0,0 +1,118 @@ +object fUsuarios: TfUsuarios + Left = 490 + Top = 417 + BorderStyle = bsDialog + Caption = 'Administraci'#243'n de usuarios' + ClientHeight = 401 + ClientWidth = 550 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnCreate = FormCreate + PixelsPerInch = 96 + TextHeight = 13 + object Grid: TDBGrid + Left = 8 + Top = 40 + Width = 425 + Height = 313 + DataSource = DADataSource + TabOrder = 0 + TitleFont.Charset = DEFAULT_CHARSET + TitleFont.Color = clWindowText + TitleFont.Height = -11 + TitleFont.Name = 'MS Sans Serif' + TitleFont.Style = [] + end + object JvNavPanelHeader1: TJvNavPanelHeader + Left = 0 + Top = 0 + Width = 550 + Align = alTop + Caption = 'Panel de control' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindow + Font.Height = -16 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + ColorFrom = 8684164 + ColorTo = 8684164 + ImageIndex = 0 + StyleManager = dmBase.StyleManager + ParentStyleManager = False + end + object Button1: TButton + Left = 448 + Top = 40 + Width = 91 + Height = 25 + Action = actNuevo + TabOrder = 2 + end + object Button2: TButton + Left = 448 + Top = 136 + Width = 91 + Height = 25 + Action = actModificar + TabOrder = 3 + end + object Button3: TButton + Left = 448 + Top = 176 + Width = 91 + Height = 25 + Action = actEliminar + TabOrder = 4 + end + object Button4: TButton + Left = 448 + Top = 368 + Width = 91 + Height = 25 + Action = actCerrar + TabOrder = 5 + end + object Button5: TButton + Left = 448 + Top = 96 + Width = 91 + Height = 25 + Action = actCambiarPassword + TabOrder = 6 + end + object DADataSource: TDADataSource + Left = 368 + Top = 40 + end + object ActionList: TActionList + Left = 8 + Top = 360 + object actCerrar: TAction + Caption = '&Cerrar' + OnExecute = actCerrarExecute + end + object actNuevo: TAction + Caption = 'Nuevo usuario' + OnUpdate = actNuevoUpdate + end + object actCambiarPassword: TAction + Caption = 'Cambiar contrase'#241'a' + OnUpdate = actCambiarPasswordUpdate + end + object actModificar: TAction + Caption = 'Modificar usuario' + OnUpdate = actModificarUpdate + end + object actEliminar: TAction + Caption = 'Eliminar usuario' + OnUpdate = actEliminarUpdate + end + end +end diff --git a/Source/ApplicationBase/Usuarios/Views/uUsuariosViewRegister.dcu b/Source/ApplicationBase/Usuarios/Views/uUsuariosViewRegister.dcu new file mode 100644 index 0000000..0cde864 Binary files /dev/null and b/Source/ApplicationBase/Usuarios/Views/uUsuariosViewRegister.dcu differ diff --git a/Source/ApplicationBase/Usuarios/Views/uUsuariosViewRegister.pas b/Source/ApplicationBase/Usuarios/Views/uUsuariosViewRegister.pas new file mode 100644 index 0000000..f5f67fe --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Views/uUsuariosViewRegister.pas @@ -0,0 +1,33 @@ +unit uUsuariosViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorLogin, Dialogs, uEditorUsuario, uEditorUsuarios, + uEditorPerfilesUsuario, uEditorPerfilUsuario; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorLogin, 'EditorLogin'); + EditorRegistry.RegisterClass(TfEditorUsuarios, 'EditorUsuarios'); + EditorRegistry.RegisterClass(TfEditorUsuario, 'EditorUsuario'); + EditorRegistry.RegisterClass(TfEditorPerfilesUsuario, 'EditorPerfilesUsuario'); + EditorRegistry.RegisterClass(TfEditorPerfilUsuario, 'EditorPerfilUsuario'); + +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorLogin); + EditorRegistry.UnRegisterClass(TfEditorUsuarios); + EditorRegistry.UnRegisterClass(TfEditorUsuario); + EditorRegistry.UnRegisterClass(TfEditorPerfilesUsuario); + EditorRegistry.UnRegisterClass(TfEditorPerfilUsuario); +end; + +end. diff --git a/Source/ApplicationBase/Usuarios/Views/uViewPerfilUsuario.dcu b/Source/ApplicationBase/Usuarios/Views/uViewPerfilUsuario.dcu new file mode 100644 index 0000000..0cb48e9 Binary files /dev/null and b/Source/ApplicationBase/Usuarios/Views/uViewPerfilUsuario.dcu differ diff --git a/Source/ApplicationBase/Usuarios/Views/uViewPerfilUsuario.dfm b/Source/ApplicationBase/Usuarios/Views/uViewPerfilUsuario.dfm new file mode 100644 index 0000000..d588715 --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Views/uViewPerfilUsuario.dfm @@ -0,0 +1,68 @@ +inherited frViewPerfilUsuario: TfrViewPerfilUsuario + Width = 509 + Height = 122 + ExplicitWidth = 509 + ExplicitHeight = 122 + object dxLayoutControlArticulo: TdxLayoutControl + Left = 0 + Top = 0 + Width = 509 + Height = 113 + Align = alTop + ParentBackground = True + TabOrder = 0 + AutoContentSizes = [acsWidth] + DesignSize = ( + 509 + 113) + object eNombre: TcxDBTextEdit + Left = 68 + Top = 28 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'USERNAME' + DataBinding.DataSource = dsUsuario + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = 14745599 + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 164 + end + object dxLayoutGroup1: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutGroup2: TdxLayoutGroup + AutoAligns = [] + AlignHorz = ahClient + AlignVert = avClient + Caption = 'Datos del perfil' + object dxLayoutControlArticuloItem3: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Nombre:' + Control = eNombre + ControlOptions.ShowBorder = False + end + end + object dxLayoutControlArticuloGroup3: TdxLayoutGroup + Caption = 'New Group' + ShowCaption = False + LayoutDirection = ldHorizontal + ShowBorder = False + end + end + end + object dsUsuario: TDADataSource + Left = 152 + Top = 24 + end +end diff --git a/Source/ApplicationBase/Usuarios/Views/uViewPerfilUsuario.pas b/Source/ApplicationBase/Usuarios/Views/uViewPerfilUsuario.pas new file mode 100644 index 0000000..f3deec1 --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Views/uViewPerfilUsuario.pas @@ -0,0 +1,82 @@ +unit uViewPerfilUsuario; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, uUsuariosController, cxGraphics, ImgList, PngImageList, + dxLayoutControl, cxCurrencyEdit, uCustomView, cxControls, DB, uDAInterfaces, + uDADataTable, ActnList, cxCheckBox, cxDBEdit, cxMaskEdit, cxSpinEdit, + cxHyperLinkEdit, cxContainer, cxEdit, cxTextEdit, Buttons, PngSpeedButton, + uBizUsuarios, cxDropDownEdit; + +type + IViewPerfilUsuario = interface(IViewBase) + ['{555B4B64-BE32-4036-B741-DCC7AD80D7B9}'] + function GetController : IUsuariosController; + procedure SetController (const Value : IUsuariosController); + property Controller : IUsuariosController read GetController write SetController; + + function GetPerfilUsuario: IBizPerfilUsuario; + procedure SetPerfilUsuario(const Value: IBizPerfilUsuario); + property PerfilUsuario: IBizPerfilUsuario read GetPerfilUsuario write SetPerfilUsuario; + end; + + TfrViewPerfilUsuario = class(TfrViewBase, IViewPerfilUsuario) + dsUsuario: TDADataSource; + dxLayoutControlArticulo: TdxLayoutControl; + eNombre: TcxDBTextEdit; + dxLayoutGroup1: TdxLayoutGroup; + dxLayoutGroup2: TdxLayoutGroup; + dxLayoutControlArticuloItem3: TdxLayoutItem; + dxLayoutControlArticuloGroup3: TdxLayoutGroup; + protected + FController: IUsuariosController; + FPerfilUsuario : IBizPerfilUsuario; + + function GetController : IUsuariosController; + procedure SetController (const Value : IUsuariosController); + + function GetPerfilUsuario: IBizPerfilUsuario; + procedure SetPerfilUsuario(const Value: IBizPerfilUsuario); + public + property PerfilUsuario: IBizPerfilUsuario read GetPerfilUsuario write SetPerfilUsuario; + property Controller : IUsuariosController read GetController write SetController; + end; + +implementation + +{$R *.dfm} + + +{ TfrViewUsuario } + +function TfrViewPerfilUsuario.GetController: IUsuariosController; +begin + Result := FController; +end; + +function TfrViewPerfilUsuario.GetPerfilUsuario: IBizPerfilUsuario; +begin + Result := FPerfilUsuario; +end; + +procedure TfrViewPerfilUsuario.SetController(const Value: IUsuariosController); +begin + FController := Value; +end; + +procedure TfrViewPerfilUsuario.SetPerfilUsuario(const Value: IBizPerfilUsuario); +begin + FPerfilUsuario := Value; + + if Assigned(FPerfilUsuario) then + dsUsuario.DataTable := FPerfilUsuario.DataTable + else begin + dsUsuario.DataTable := NIL; + FPerfilUsuario := NIL; + end; +end; + + +end. diff --git a/Source/ApplicationBase/Usuarios/Views/uViewPerfilesUsuario.dcu b/Source/ApplicationBase/Usuarios/Views/uViewPerfilesUsuario.dcu new file mode 100644 index 0000000..213aab3 Binary files /dev/null and b/Source/ApplicationBase/Usuarios/Views/uViewPerfilesUsuario.dcu differ diff --git a/Source/ApplicationBase/Usuarios/Views/uViewPerfilesUsuario.dfm b/Source/ApplicationBase/Usuarios/Views/uViewPerfilesUsuario.dfm new file mode 100644 index 0000000..2a2a401 --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Views/uViewPerfilesUsuario.dfm @@ -0,0 +1,70 @@ +inherited frViewPerfilesUsuario: TfrViewPerfilesUsuario + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + object cxGridViewID: TcxGridDBColumn + DataBinding.FieldName = 'ID' + Visible = False + BestFitMaxWidth = 20 + VisibleForCustomization = False + Width = 20 + end + object cxGridViewUSERNAME: TcxGridDBColumn + DataBinding.FieldName = 'USERNAME' + Width = 150 + end + object cxGridViewTIPO: TcxGridDBColumn + DataBinding.FieldName = 'TIPO' + Visible = False + VisibleForCustomization = False + end + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + inherited TBXDockablePanel1: TTBXDockablePanel + inherited dxLayoutControl1: TdxLayoutControl + inherited txtFiltroTodo: TcxTextEdit + ExplicitWidth = 273 + Width = 273 + end + inherited edtFechaIniFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaFinFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + ExplicitWidth = 554 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + inherited TBXToolbar1: TTBXToolbar + Visible = False + end + end + end + inherited dsDataSource: TDADataSource + DataSet = tbl_USUARIOS.Dataset + DataTable = DataModuleUsuarios.tbl_USUARIOS + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39456.431825266210000000 + BuiltInReportLink = True + end + end + inherited dxPSEngineController1: TdxPSEngineController + Left = 304 + Top = 168 + end + inherited cxStyleRepository1: TcxStyleRepository + Left = 280 + Top = 160 + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + Left = 248 + Top = 160 + end +end diff --git a/Source/ApplicationBase/Usuarios/Views/uViewPerfilesUsuario.pas b/Source/ApplicationBase/Usuarios/Views/uViewPerfilesUsuario.pas new file mode 100644 index 0000000..fb9a51e --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Views/uViewPerfilesUsuario.pas @@ -0,0 +1,56 @@ +unit uViewPerfilesUsuario; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg, + dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, dxPgsDlg, dxPSCore, ImgList, PngImageList, ActnList, + cxGridCustomPopupMenu, cxGridPopupMenu, dxPScxCommon, dxPScxGrid6Lnk, + uDAInterfaces, uDADataTable, TB2Item, TBX, TB2Toolbar, TBXDkPanels, TB2Dock, + uViewFiltroBase, cxGridLevel, cxClasses, cxControls, cxGridCustomView, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid, + uBizUsuarios; + +type + IViewPerfilesUsuario = interface(IViewGrid) + ['{C6125F2F-5EDC-4019-BD5F-9AC9741F0F77}'] + function GetPerfilesUsuario: IBizPerfilUsuario; + procedure SetPerfilesUsuario(const Value: IBizPerfilUsuario); + property PerfilesUsuario: IBizPerfilUsuario read GetPerfilesUsuario write SetPerfilesUsuario; + end; + + TfrViewPerfilesUsuario = class(TfrViewGrid, IViewPerfilesUsuario) + cxGridViewID: TcxGridDBColumn; + cxGridViewUSERNAME: TcxGridDBColumn; + cxGridViewTIPO: TcxGridDBColumn; + protected + FPerfiles : IBizPerfilUsuario; + function GetPerfilesUsuario: IBizPerfilUsuario; + procedure SetPerfilesUsuario(const Value: IBizPerfilUsuario); + public + property PerfilesUsuario: IBizPerfilUsuario read GetPerfilesUsuario write SetPerfilesUsuario; + end; + + +implementation + +{$R *.dfm} + +{ TfrViewPerfilesUsuario } + +function TfrViewPerfilesUsuario.GetPerfilesUsuario: IBizPerfilUsuario; +begin + Result := FPerfiles; +end; + +procedure TfrViewPerfilesUsuario.SetPerfilesUsuario(const Value: IBizPerfilUsuario); +begin + FPerfiles := Value; + if Assigned(FPerfiles) then + dsDataSource.DataTable := FPerfiles.DataTable; +end; + +end. diff --git a/Source/ApplicationBase/Usuarios/Views/uViewUsuario.dcu b/Source/ApplicationBase/Usuarios/Views/uViewUsuario.dcu new file mode 100644 index 0000000..9887f40 Binary files /dev/null and b/Source/ApplicationBase/Usuarios/Views/uViewUsuario.dcu differ diff --git a/Source/ApplicationBase/Usuarios/Views/uViewUsuario.dfm b/Source/ApplicationBase/Usuarios/Views/uViewUsuario.dfm new file mode 100644 index 0000000..d06a6c1 --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Views/uViewUsuario.dfm @@ -0,0 +1,334 @@ +inherited frViewUsuario: TfrViewUsuario + Width = 509 + Height = 275 + OnCreate = CustomViewCreate + OnDestroy = CustomViewDestroy + ExplicitWidth = 509 + ExplicitHeight = 275 + object dxLayoutControlArticulo: TdxLayoutControl + Left = 0 + Top = 0 + Width = 509 + Height = 249 + Align = alTop + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth] + DesignSize = ( + 509 + 249) + object PngSpeedButton3: TPngSpeedButton + Left = 335 + Top = 82 + Width = 23 + Height = 22 + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001964944415478DA + 63FCFFFF3F03232323033A58BCE9F87F647EAC9F258622B05E6C068034873B8A + 80D92019C62F8F194C1356339CDF399D91A0014B361FFB1FE6208AA299E1F323 + 306D52F90CC5100C03566E3DFC3FD04E02A2F9F727064690462066006A66FC02 + 64FFFAC8603451096E088A01CB361FFDFF8F819981183077D11A86FDAB7B18E1 + 062CDD7CE27F14573FC3B2EF450CD13E86181ABE7DFFCDF0F5DB6F866FDFFE30 + 1CB97897218AB38FC1B85B98E1DC8E698C600396000D8861696058FAB7116CC0 + 94C5FBB0DAEC6CAECF70EED6238668E67AB057500CF8F0E10383A0A0208A0B90 + 6D06B1BF01D9379E3C67387AFE09C389A37BD15CE06B01B47907434EAC13C3EF + 3F7F19662E3F8862BB898606C3EFDFFF1896EF3DCFA0A5C0CD306FE9265403FC + 9D20362F5CB71F4CE7C47AA01890D5BC164C7716F980D56018606BAC0656B079 + EF2986F82047AC6150DEB785A13CD911AC06C300234D05867DC72F30B8D818E1 + 8DC2494B0E63F702281075D455884A07576EDEC134404A5480E1DAED07441900 + 021806F44D5D44B46618801B400900007F4518F05E90AAF20000000049454E44 + AE426082} + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + end + object eNombre: TcxDBTextEdit + Left = 135 + Top = 28 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'USERNAME' + DataBinding.DataSource = dsUsuario + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = 14745599 + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 0 + Width = 164 + end + object eUsuario: TcxDBTextEdit + Left = 135 + Top = 55 + DataBinding.DataField = 'LOGIN' + DataBinding.DataSource = dsUsuario + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = 14745599 + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 1 + Width = 108 + end + object eMail: TcxDBHyperLinkEdit + Left = 135 + Top = 82 + DataBinding.DataField = 'EMAIL' + DataBinding.DataSource = dsUsuario + Properties.UsePrefix = upOnlyOnExecute + Properties.ValidateOnEnter = True + Properties.OnEditValueChanged = eMailPropertiesEditValueChanged + Properties.OnValidate = eMailPropertiesValidate + Properties.Prefix = 'mailto:' + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 2 + Width = 194 + end + object ePassword: TcxTextEdit + Left = 135 + Top = 167 + Properties.EchoMode = eemPassword + Properties.PasswordChar = '*' + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 4 + Width = 121 + end + object eConfirmarPassword: TcxTextEdit + Left = 135 + Top = 194 + Properties.EchoMode = eemPassword + Properties.PasswordChar = '*' + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 5 + Width = 372 + end + object cbPerfil: TcxComboBox + Left = 135 + Top = 110 + Properties.DropDownListStyle = lsEditFixedList + Properties.ImmediatePost = True + Properties.ImmediateUpdateText = True + Properties.PostPopupValueOnTab = True + Properties.OnValidate = cbPerfilPropertiesValidate + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 3 + Width = 194 + end + object dxLayoutGroup1: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutGroup2: TdxLayoutGroup + AutoAligns = [] + AlignHorz = ahClient + AlignVert = avClient + Caption = 'Datos del usuario' + object dxLayoutControlArticuloItem3: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Nombre completo:' + Control = eNombre + ControlOptions.ShowBorder = False + end + object dxLayoutControlArticuloItem8: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Usuario:' + Control = eUsuario + ControlOptions.ShowBorder = False + end + object dxLayoutControlArticuloGroup2: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControlArticuloItem4: TdxLayoutItem + AutoAligns = [aaVertical] + Caption = 'Correo electr'#243'nico' + Control = eMail + ControlOptions.ShowBorder = False + end + object dxLayoutControlArticuloItem5: TdxLayoutItem + ShowCaption = False + Control = PngSpeedButton3 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControlArticuloItem1: TdxLayoutItem + AutoAligns = [aaVertical] + Caption = 'Perfil de usuario:' + Control = cbPerfil + ControlOptions.ShowBorder = False + end + end + object dxLayoutControlArticuloGroup5: TdxLayoutGroup + Caption = 'Seguridad' + object dxLayoutControlArticuloItem11: TdxLayoutItem + Caption = 'Contrase'#241'a:' + Control = ePassword + ControlOptions.ShowBorder = False + end + object dxLayoutControlArticuloItem12: TdxLayoutItem + Caption = 'Confirmar contrase'#241'a:' + Control = eConfirmarPassword + ControlOptions.ShowBorder = False + end + end + object dxLayoutControlArticuloGroup3: TdxLayoutGroup + Caption = 'New Group' + ShowCaption = False + LayoutDirection = ldHorizontal + ShowBorder = False + end + end + end + object ActionList1: TActionList + Images = SmallImages + Left = 72 + Top = 48 + object actMandarCorreo: TAction + Caption = 'Mandar un correo' + ImageIndex = 0 + OnExecute = actMandarCorreoExecute + OnUpdate = actMandarCorreoUpdate + end + end + object dsUsuario: TDADataSource + Left = 104 + Top = 48 + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001EB4944415478DA + A5D34B68135114C6F1FF746692462D24D5A8F5B52B81B448501475E142D4EAA2 + 3420E8C68A0A45345BC19DE24A74D50AE2424A11041105DD28A8881411174A70 + E58BA4149A1A0D8D1D9B669E997B9D14B1A44491E6C2D9DDF3BB1F877B94DB8F + 5E4B5A384A1D3831B06759CDDB0E9D5B04865FD9CD6F49C95A374B4ADC20AAE4 + 9936B6F244CF70299DFA3F40F5AB1C74CEB225FE1C654E4796DA7963A6D977F2 + FABF81E061EAC3D1EC0247C531A27A017E846026CC844890CC3CFE3B506F1641 + D9025CCFA4DF384FD27F419BA1231C9D67917ED267AE3507A414E4BF8DD3B1AA + 07A97562F92A31EB037B8D313658137CD292DC5D719A7B83C9E640AEF892F1DC + 454A5FABEC4E5D21BEBE0FD397411217E15599911D547C8DEC60A411B8FC34C7 + C3F7C71710BD73927CB686E785D87FE01D22483267FDC45156620A0DAB069F4F + B53702A9ABBB08AF2E20DB7C1CB386517698FE52A56BE31136272EF0F16D1F44 + 7610EF7D802554A68696003B6F6D42517DAC6A0D3B006CCB67B6686356248944 + 0F8635C9F7A90A91F800E1EE51CA99D81260B40B27C8F607307DECF91AF38687 + A6AB74A7A2940A26E5A28B164FE38CDC67FBE1CC22D03BB226007E2708202700 + 5CAB5E62E14344D785084734664B0EBE8CE18D951A81967661F8E69DE56FA394 + 2D6D33BF00C89C2C72EBA3BC190000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 43 + Top = 48 + Bitmap = {} + end +end diff --git a/Source/ApplicationBase/Usuarios/Views/uViewUsuario.pas b/Source/ApplicationBase/Usuarios/Views/uViewUsuario.pas new file mode 100644 index 0000000..66f47e5 --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Views/uViewUsuario.pas @@ -0,0 +1,210 @@ +unit uViewUsuario; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, uUsuariosController, cxGraphics, ImgList, PngImageList, + dxLayoutControl, cxCurrencyEdit, uCustomView, cxControls, DB, uDAInterfaces, + uDADataTable, ActnList, cxCheckBox, cxDBEdit, cxMaskEdit, cxSpinEdit, + cxHyperLinkEdit, cxContainer, cxEdit, cxTextEdit, Buttons, PngSpeedButton, + uBizUsuarios, cxDropDownEdit, ExtCtrls; + +type + IViewUsuario = interface(IViewBase) + ['{E47D5136-A50C-4757-9352-4745518A899D}'] + function GetController : IUsuariosController; + procedure SetController (const Value : IUsuariosController); + property Controller : IUsuariosController read GetController write SetController; + + function GetUsuario: IBizUsuario; + procedure SetUsuario(const Value: IBizUsuario); + property Usuario: IBizUsuario read GetUsuario write SetUsuario; + end; + + TfrViewUsuario = class(TfrViewBase, IViewUsuario) + ActionList1: TActionList; + dsUsuario: TDADataSource; + dxLayoutControlArticulo: TdxLayoutControl; + eNombre: TcxDBTextEdit; + eUsuario: TcxDBTextEdit; + dxLayoutGroup1: TdxLayoutGroup; + dxLayoutGroup2: TdxLayoutGroup; + dxLayoutControlArticuloItem3: TdxLayoutItem; + dxLayoutControlArticuloItem8: TdxLayoutItem; + dxLayoutControlArticuloGroup3: TdxLayoutGroup; + SmallImages: TPngImageList; + dxLayoutControlArticuloItem4: TdxLayoutItem; + eMail: TcxDBHyperLinkEdit; + dxLayoutControlArticuloItem5: TdxLayoutItem; + PngSpeedButton3: TPngSpeedButton; + actMandarCorreo: TAction; + dxLayoutControlArticuloGroup2: TdxLayoutGroup; + ePassword: TcxTextEdit; + dxLayoutControlArticuloItem11: TdxLayoutItem; + dxLayoutControlArticuloItem12: TdxLayoutItem; + eConfirmarPassword: TcxTextEdit; + dxLayoutControlArticuloGroup5: TdxLayoutGroup; + cbPerfil: TcxComboBox; + dxLayoutControlArticuloItem1: TdxLayoutItem; + procedure actMandarCorreoExecute(Sender: TObject); + procedure actMandarCorreoUpdate(Sender: TObject); + procedure cbPerfilPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure CustomViewCreate(Sender: TObject); + procedure CustomViewDestroy(Sender: TObject); + procedure eMailPropertiesEditValueChanged(Sender: TObject); + procedure eMailPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + protected + FController: IUsuariosController; + FUsuario : IBizUsuario; + FListaPerfiles : TStringList; + + function GetController : IUsuariosController; + procedure SetController (const Value : IUsuariosController); + + function GetUsuario: IBizUsuario; + procedure SetUsuario(const Value: IBizUsuario); + public + property Usuario: IBizUsuario read GetUsuario write SetUsuario; + property Controller : IUsuariosController read GetController write SetController; + end; + +implementation + +{$R *.dfm} + +type + THackcxDBHyperLinkEdit = class(TcxDBHyperLinkEdit); + +{ TfrViewUsuario } + +procedure TfrViewUsuario.actMandarCorreoExecute(Sender: TObject); +begin + inherited; + THackcxDBHyperLinkEdit(eMail).DoStart; +end; + +procedure TfrViewUsuario.actMandarCorreoUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (Length(eMail.Text) > 0) +end; + +procedure TfrViewUsuario.cbPerfilPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); +var + AIndex : integer; +begin + inherited; + + if Assigned(FUsuario) and FUsuario.Active then + begin + if DisplayValue = cbPerfil.Properties.Items[0] then + AIndex := 0 + else + AIndex := StrToInt(FListaPerfiles.Values[DisplayValue]); + + FUsuario.Edit; + FUsuario.ID_PERFIL := AIndex; + FUsuario.Post; + end; +end; + + +procedure TfrViewUsuario.CustomViewCreate(Sender: TObject); +begin + inherited; + FListaPerfiles := NIL; +end; + +procedure TfrViewUsuario.CustomViewDestroy(Sender: TObject); +begin + inherited; + FreeAndNIL(FListaPerfiles); +end; + +procedure TfrViewUsuario.eMailPropertiesEditValueChanged(Sender: TObject); +begin + if not VarIsNull((Sender as TcxDBHyperLinkEdit).EditValue) then + (Sender as TcxDBHyperLinkEdit).EditValue := StringReplace((Sender as TcxDBHyperLinkEdit).EditValue, (Sender as TcxDBHyperLinkEdit).Properties.Prefix, '', []); +end; + +procedure TfrViewUsuario.eMailPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); +begin + if not VarIsNull(DisplayValue) then + DisplayValue := StringReplace(DisplayValue, (Sender as TcxDBHyperLinkEdit).Properties.Prefix, '', []); +end; + +function TfrViewUsuario.GetController: IUsuariosController; +begin + Result := FController; +end; + +function TfrViewUsuario.GetUsuario: IBizUsuario; +begin + Result := FUsuario; +end; + +procedure TfrViewUsuario.SetController(const Value: IUsuariosController); +var + i : integer; +begin + FController := Value; + + if Assigned(FController) then + begin + FListaPerfiles := FController.DarListaPerfilesUsuario; + + with cbPerfil.Properties.Items do + begin + BeginUpdate; + try + Clear; + Add(''); + for i := 0 to FListaPerfiles.Count - 1 do + Add(FListaPerfiles.Names[i]); + finally + EndUpdate; + end; + end; + end; +end; + +procedure TfrViewUsuario.SetUsuario(const Value: IBizUsuario); +var + i : integer; +begin + FUsuario := Value; + + if Assigned(FUsuario) then + begin + dsUsuario.DataTable := FUsuario.DataTable; + if FUsuario.EsNuevo then + begin + dxLayoutControlArticuloGroup5.Visible := True; + cbPerfil.Text := cbPerfil.Properties.Items[0]; + end + else begin + dxLayoutControlArticuloGroup5.Visible := False; + + cbPerfil.Text := cbPerfil.Properties.Items[0]; + for i := 0 to FListaPerfiles.Count-1 do + begin + if FListaPerfiles.ValueFromIndex[i] = IntToStr(FUsuario.ID_PERFIL) then + begin + cbPerfil.Text := FListaPerfiles.Names[i]; + break; + end; + end; + end; + end + else begin + dsUsuario.DataTable := NIL; + FUsuario := NIL; + end; +end; + +end. diff --git a/Source/ApplicationBase/Usuarios/Views/uViewUsuarios.dcu b/Source/ApplicationBase/Usuarios/Views/uViewUsuarios.dcu new file mode 100644 index 0000000..3e29da0 Binary files /dev/null and b/Source/ApplicationBase/Usuarios/Views/uViewUsuarios.dcu differ diff --git a/Source/ApplicationBase/Usuarios/Views/uViewUsuarios.dfm b/Source/ApplicationBase/Usuarios/Views/uViewUsuarios.dfm new file mode 100644 index 0000000..e579adb --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Views/uViewUsuarios.dfm @@ -0,0 +1,110 @@ +inherited frViewUsuarios: TfrViewUsuarios + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + object cxGridViewID: TcxGridDBColumn + DataBinding.FieldName = 'ID' + Visible = False + BestFitMaxWidth = 20 + VisibleForCustomization = False + Width = 20 + end + object cxGridViewUSERNAME: TcxGridDBColumn + DataBinding.FieldName = 'USERNAME' + Width = 150 + end + object cxGridViewLOGIN: TcxGridDBColumn + DataBinding.FieldName = 'LOGIN' + BestFitMaxWidth = 75 + Width = 75 + end + object cxGridViewPASS: TcxGridDBColumn + DataBinding.FieldName = 'PASS' + Visible = False + VisibleForCustomization = False + end + object cxGridViewPASSEXPIRED: TcxGridDBColumn + DataBinding.FieldName = 'PASSEXPIRED' + Visible = False + VisibleForCustomization = False + end + object cxGridViewBLOQUEADO: TcxGridDBColumn + DataBinding.FieldName = 'BLOQUEADO' + Visible = False + VisibleForCustomization = False + end + object cxGridViewEMAIL: TcxGridDBColumn + DataBinding.FieldName = 'EMAIL' + BestFitMaxWidth = 120 + Width = 120 + end + object cxGridViewUSERDAYSSUN: TcxGridDBColumn + DataBinding.FieldName = 'USERDAYSSUN' + Visible = False + VisibleForCustomization = False + end + object cxGridViewPRIVILEGED: TcxGridDBColumn + DataBinding.FieldName = 'PRIVILEGED' + Visible = False + VisibleForCustomization = False + end + object cxGridViewTIPO: TcxGridDBColumn + DataBinding.FieldName = 'TIPO' + Visible = False + VisibleForCustomization = False + end + object cxGridViewID_PERFIL: TcxGridDBColumn + DataBinding.FieldName = 'ID_PERFIL' + Visible = False + VisibleForCustomization = False + end + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + inherited TBXDockablePanel1: TTBXDockablePanel + inherited dxLayoutControl1: TdxLayoutControl + inherited txtFiltroTodo: TcxTextEdit + ExplicitWidth = 273 + Width = 273 + end + inherited edtFechaIniFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaFinFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + ExplicitWidth = 554 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + inherited TBXToolbar1: TTBXToolbar + Visible = False + end + end + end + inherited dsDataSource: TDADataSource + DataSet = tbl_USUARIOS.Dataset + DataTable = DataModuleUsuarios.tbl_USUARIOS + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39456.431825266210000000 + BuiltInReportLink = True + end + end + inherited dxPSEngineController1: TdxPSEngineController + Left = 304 + Top = 168 + end + inherited cxStyleRepository1: TcxStyleRepository + Left = 280 + Top = 160 + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + Left = 248 + Top = 160 + end +end diff --git a/Source/ApplicationBase/Usuarios/Views/uViewUsuarios.pas b/Source/ApplicationBase/Usuarios/Views/uViewUsuarios.pas new file mode 100644 index 0000000..9b3621f --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Views/uViewUsuarios.pas @@ -0,0 +1,64 @@ +unit uViewUsuarios; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg, + dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, dxPgsDlg, dxPSCore, ImgList, PngImageList, ActnList, + cxGridCustomPopupMenu, cxGridPopupMenu, dxPScxCommon, dxPScxGrid6Lnk, + uDAInterfaces, uDADataTable, TB2Item, TBX, TB2Toolbar, TBXDkPanels, TB2Dock, + uViewFiltroBase, cxGridLevel, cxClasses, cxControls, cxGridCustomView, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid, + uBizUsuarios; + +type + IViewUsuarios = interface(IViewGrid) + ['{2F46A4FC-6501-47B2-AAB3-28B552DDA455}'] + function GetUsuarios: IBizUsuario; + procedure SetUsuarios(const Value: IBizUsuario); + property Usuarios: IBizUsuario read GetUsuarios write SetUsuarios; + end; + + TfrViewUsuarios = class(TfrViewGrid, IViewUsuarios) + cxGridViewID: TcxGridDBColumn; + cxGridViewUSERNAME: TcxGridDBColumn; + cxGridViewLOGIN: TcxGridDBColumn; + cxGridViewPASS: TcxGridDBColumn; + cxGridViewPASSEXPIRED: TcxGridDBColumn; + cxGridViewBLOQUEADO: TcxGridDBColumn; + cxGridViewEMAIL: TcxGridDBColumn; + cxGridViewUSERDAYSSUN: TcxGridDBColumn; + cxGridViewPRIVILEGED: TcxGridDBColumn; + cxGridViewTIPO: TcxGridDBColumn; + cxGridViewID_PERFIL: TcxGridDBColumn; + protected + FUsuarios : IBizUsuario; + function GetUsuarios: IBizUsuario; + procedure SetUsuarios(const Value: IBizUsuario); + public + property Usuarios: IBizUsuario read GetUsuarios write SetUsuarios; + end; + + +implementation + +{$R *.dfm} + +{ TfrViewUsuarios } + +function TfrViewUsuarios.GetUsuarios: IBizUsuario; +begin + Result := FUsuarios; +end; + +procedure TfrViewUsuarios.SetUsuarios(const Value: IBizUsuario); +begin + FUsuarios := Value; + if Assigned(FUsuarios) then + dsDataSource.DataTable := FUsuarios.DataTable; +end; + +end. diff --git a/Source/ApplicationBase/schEmpresasClient_Intf.dcu b/Source/ApplicationBase/schEmpresasClient_Intf.dcu new file mode 100644 index 0000000..4bd7778 Binary files /dev/null and b/Source/ApplicationBase/schEmpresasClient_Intf.dcu differ diff --git a/Source/ApplicationBase/schEmpresasServer_Intf.dcu b/Source/ApplicationBase/schEmpresasServer_Intf.dcu new file mode 100644 index 0000000..0cd9865 Binary files /dev/null and b/Source/ApplicationBase/schEmpresasServer_Intf.dcu differ diff --git a/Source/ApplicationBase/schUsuariosClient_Intf.dcu b/Source/ApplicationBase/schUsuariosClient_Intf.dcu new file mode 100644 index 0000000..da27add Binary files /dev/null and b/Source/ApplicationBase/schUsuariosClient_Intf.dcu differ diff --git a/Source/ApplicationBase/schUsuariosServer_Intf.dcu b/Source/ApplicationBase/schUsuariosServer_Intf.dcu new file mode 100644 index 0000000..94209e5 Binary files /dev/null and b/Source/ApplicationBase/schUsuariosServer_Intf.dcu differ diff --git a/Source/ApplicationBase/uBizEmpresas.dcu b/Source/ApplicationBase/uBizEmpresas.dcu new file mode 100644 index 0000000..0ebfb8d Binary files /dev/null and b/Source/ApplicationBase/uBizEmpresas.dcu differ diff --git a/Source/ApplicationBase/uBizEmpresasDatosBancarios.dcu b/Source/ApplicationBase/uBizEmpresasDatosBancarios.dcu new file mode 100644 index 0000000..8bd3b18 Binary files /dev/null and b/Source/ApplicationBase/uBizEmpresasDatosBancarios.dcu differ diff --git a/Source/ApplicationBase/uBizUsuarios.dcu b/Source/ApplicationBase/uBizUsuarios.dcu new file mode 100644 index 0000000..ab6a9be Binary files /dev/null and b/Source/ApplicationBase/uBizUsuarios.dcu differ diff --git a/Source/ApplicationBase/uDataModuleEmpresas.dcu b/Source/ApplicationBase/uDataModuleEmpresas.dcu new file mode 100644 index 0000000..5989b4d Binary files /dev/null and b/Source/ApplicationBase/uDataModuleEmpresas.dcu differ diff --git a/Source/ApplicationBase/uDataModuleProvinciasPoblaciones.dcu b/Source/ApplicationBase/uDataModuleProvinciasPoblaciones.dcu new file mode 100644 index 0000000..ddbc2e5 Binary files /dev/null and b/Source/ApplicationBase/uDataModuleProvinciasPoblaciones.dcu differ diff --git a/Source/ApplicationBase/uDataModuleUsuarios.dcu b/Source/ApplicationBase/uDataModuleUsuarios.dcu new file mode 100644 index 0000000..fa41931 Binary files /dev/null and b/Source/ApplicationBase/uDataModuleUsuarios.dcu differ diff --git a/Source/ApplicationBase/uDatosBancariosEmpresaController.dcu b/Source/ApplicationBase/uDatosBancariosEmpresaController.dcu new file mode 100644 index 0000000..e816345 Binary files /dev/null and b/Source/ApplicationBase/uDatosBancariosEmpresaController.dcu differ diff --git a/Source/ApplicationBase/uEditorCambiarPassword.dcu b/Source/ApplicationBase/uEditorCambiarPassword.dcu new file mode 100644 index 0000000..5f6fd0c Binary files /dev/null and b/Source/ApplicationBase/uEditorCambiarPassword.dcu differ diff --git a/Source/ApplicationBase/uEditorDatosBancariosEmpresa.dcu b/Source/ApplicationBase/uEditorDatosBancariosEmpresa.dcu new file mode 100644 index 0000000..00e426a Binary files /dev/null and b/Source/ApplicationBase/uEditorDatosBancariosEmpresa.dcu differ diff --git a/Source/ApplicationBase/uEditorEmpresa.dcu b/Source/ApplicationBase/uEditorEmpresa.dcu new file mode 100644 index 0000000..2c8cc5e Binary files /dev/null and b/Source/ApplicationBase/uEditorEmpresa.dcu differ diff --git a/Source/ApplicationBase/uEditorLogin.dcu b/Source/ApplicationBase/uEditorLogin.dcu new file mode 100644 index 0000000..736f44f Binary files /dev/null and b/Source/ApplicationBase/uEditorLogin.dcu differ diff --git a/Source/ApplicationBase/uEditorPerfilUsuario.dcu b/Source/ApplicationBase/uEditorPerfilUsuario.dcu new file mode 100644 index 0000000..4d4e885 Binary files /dev/null and b/Source/ApplicationBase/uEditorPerfilUsuario.dcu differ diff --git a/Source/ApplicationBase/uEditorPerfilesUsuario.dcu b/Source/ApplicationBase/uEditorPerfilesUsuario.dcu new file mode 100644 index 0000000..b247b61 Binary files /dev/null and b/Source/ApplicationBase/uEditorPerfilesUsuario.dcu differ diff --git a/Source/ApplicationBase/uEditorUsuario.dcu b/Source/ApplicationBase/uEditorUsuario.dcu new file mode 100644 index 0000000..637c83e Binary files /dev/null and b/Source/ApplicationBase/uEditorUsuario.dcu differ diff --git a/Source/ApplicationBase/uEditorUsuarios.dcu b/Source/ApplicationBase/uEditorUsuarios.dcu new file mode 100644 index 0000000..a88666f Binary files /dev/null and b/Source/ApplicationBase/uEditorUsuarios.dcu differ diff --git a/Source/ApplicationBase/uEmpresasController.dcu b/Source/ApplicationBase/uEmpresasController.dcu new file mode 100644 index 0000000..e18819f Binary files /dev/null and b/Source/ApplicationBase/uEmpresasController.dcu differ diff --git a/Source/ApplicationBase/uEmpresasViewRegister.dcu b/Source/ApplicationBase/uEmpresasViewRegister.dcu new file mode 100644 index 0000000..a8602ec Binary files /dev/null and b/Source/ApplicationBase/uEmpresasViewRegister.dcu differ diff --git a/Source/ApplicationBase/uFactuGES_App.dcu b/Source/ApplicationBase/uFactuGES_App.dcu new file mode 100644 index 0000000..6da56bb Binary files /dev/null and b/Source/ApplicationBase/uFactuGES_App.dcu differ diff --git a/Source/ApplicationBase/uFactuGES_App.pas b/Source/ApplicationBase/uFactuGES_App.pas new file mode 100644 index 0000000..c094037 --- /dev/null +++ b/Source/ApplicationBase/uFactuGES_App.pas @@ -0,0 +1,462 @@ +unit uFactuGES_App; + +interface + +uses + SysUtils, Classes, Forms, uBizUsuarios, uBizEmpresas, uControllerBase, + uEmpresasController, uUsuariosController, uHostManager, uModuleController; + +type + TAppFactuGES_Event = procedure; + + IAppSplashForm = interface + ['{9905DF57-4476-42E6-A7CD-B1479A84E220}'] + procedure Show; + procedure Hide; + procedure Update; + function GetMensaje: String; + procedure SetMensaje(const AMensaje : String); + property Mensaje : String read GetMensaje write SetMensaje; + end; + + IAppFactuGES = interface + ['{FB6A0F3C-C1D1-462D-AFD4-2A368F85E920}'] + function GetMainForm: TCustomForm; + function GetEmpresasController: IEmpresasController; + function GetUsuariosController: IUsuariosController; + function GetAppName: String; + function GetAppVersion: String; + function GetAppFullName: String; + function GetUsuarioActivo: IBizUsuario; + function GetEmpresaActiva: IBizEmpresa; + function GetModuleManager : THostManager; + function GetTerminated: Boolean; + + function GetLoadModulesEvent : TAppFactuGES_Event; + procedure SetLoadModulesEvent (ALoadModulesEvent : TAppFactuGES_Event); + + function GetDoMainFormEvent : TAppFactuGES_Event; + procedure SetDoMainFormEvent (AMainFormEvent : TAppFactuGES_Event); + + function GetDoRefreshMainFormEvent : TAppFactuGES_Event; + procedure SetDoRefreshMainFormEvent (ARefreshMainFormEvent : TAppFactuGES_Event); + + function GetAppSplashForm : IAppSplashForm; + procedure SetAppSplashForm (AAppSplashForm : IAppSplashForm); + + procedure SeleccionarEmpresa; + procedure CambiarEmpresa(const AIDEmpresa : Integer); + + procedure ShowSplashForm; + procedure HideSplashForm; + + procedure Run; + procedure Terminate; + + function GetModule(AModuleName: String): TModuleController; + + property AppVersion : String read GetAppVersion; + property AppName : String read GetAppName; + property AppFullName : String read GetAppFullName; + property MainForm : TCustomForm read GetMainForm; + property EmpresaActiva : IBizEmpresa read GetEmpresaActiva; + property UsuarioActivo : IBizUsuario read GetUsuarioActivo; + property EmpresasController : IEmpresasController read GetEmpresasController; + property UsuariosController : IUsuariosController read GetUsuariosController; + property AppSplashForm : IAppSplashForm read GetAppSplashForm write SetAppSplashForm; + property ModuleManager : THostManager read GetModuleManager; + property DoMainFormEvent : TAppFactuGES_Event read GetDoMainFormEvent write SetDoMainFormEvent; + property DoLoadModulesEvent : TAppFactuGES_Event read GetLoadModulesEvent write SetLoadModulesEvent; + property DoRefreshMainFormEvent : TAppFactuGES_Event read GetDoRefreshMainFormEvent write SetDoRefreshMainFormEvent; + property Terminated : Boolean read GetTerminated; + end; + + + TAppFactuGES = class(TInterfacedObject, IAppFactuGES) + private + FEmpresasController : IEmpresasController; + FUsuariosController: IUsuariosController; + FEmpresaActiva: IBizEmpresa; + FAppSplashForm : IAppSplashForm; + FHostManager : THostManager; + FTerminated : Boolean; + + FDoMainFormEvent: TAppFactuGES_Event; + FDoLoadModulesEvent: TAppFactuGES_Event; + FDoRefreshMainFormEvent: TAppFactuGES_Event; + + function GetMainForm: TCustomForm; + function GetEmpresasController: IEmpresasController; + function GetUsuariosController: IUsuariosController; + function GetAppName: String; + function GetAppVersion: String; + function GetAppFullName: String; + function GetUsuarioActivo: IBizUsuario; + function GetEmpresaActiva: IBizEmpresa; + function GetModuleManager : THostManager; + function GetTerminated: Boolean; + + function GetLoadModulesEvent : TAppFactuGES_Event; + procedure SetLoadModulesEvent (ALoadModulesEvent : TAppFactuGES_Event); + + function GetDoMainFormEvent : TAppFactuGES_Event; + procedure SetDoMainFormEvent (AMainFormEvent : TAppFactuGES_Event); + + function GetDoRefreshMainFormEvent : TAppFactuGES_Event; + procedure SetDoRefreshMainFormEvent (ARefreshMainFormEvent : TAppFactuGES_Event); + + function GetAppSplashForm : IAppSplashForm; + procedure SetAppSplashForm (AAppSplashForm : IAppSplashForm); + + procedure AfterLoadModule(Sender: TObject; AModuleInfo: TModuleInfo); + procedure RegisterModule(AModuleInfo : TModuleInfo); + protected + procedure DoMainForm; + procedure DoRefreshMainForm; + + procedure CargarModulos; + procedure ShowSplashForm; + procedure HideSplashForm; + procedure UpdateSplashForm; + public + constructor Create; virtual; + destructor Destroy; override; + + procedure Run; + procedure Terminate; + + procedure SeleccionarEmpresa; + procedure CambiarEmpresa(const AIDEmpresa : Integer); + + function GetModule(AModuleName: String): TModuleController; + + property AppVersion : String read GetAppVersion; + property AppName : String read GetAppName; + property AppFullName : String read GetAppFullName; + property MainForm : TCustomForm read GetMainForm; + property EmpresaActiva : IBizEmpresa read GetEmpresaActiva; + property AppSplashForm : IAppSplashForm read GetAppSplashForm write SetAppSplashForm; + property UsuarioActivo : IBizUsuario read GetUsuarioActivo; + property EmpresasController : IEmpresasController read GetEmpresasController; + property UsuariosController : IUsuariosController read GetUsuariosController; + property ModuleManager : THostManager read GetModuleManager; + property DoMainFormEvent : TAppFactuGES_Event read GetDoMainFormEvent write SetDoMainFormEvent; + property DoLoadModulesEvent : TAppFactuGES_Event read GetLoadModulesEvent write SetLoadModulesEvent; + property DoRefreshMainFormEvent : TAppFactuGES_Event read GetDoRefreshMainFormEvent write SetDoRefreshMainFormEvent; + property Terminated : Boolean read GetTerminated; + end; + +var + AppFactuGES : IAppFactuGES = nil; + +implementation +{$INCLUDE ..\FactuGES.inc} + +uses + Windows, Dialogs, JSDialog, JSDialogs, uDialogUtils, cxControls, uUsuariosViewRegister, + uEmpresasViewRegister, uAppInfoUtils, uDMBase; + +procedure TAppFactuGES.CambiarEmpresa(const AIDEmpresa: Integer); +var + Aux : IBizEmpresa; +begin + Aux := EmpresasController.Buscar(AIDEmpresa); + if Assigned(Aux) then + begin + Aux.DataTable.Active := True; + if not Aux.IsEmpty then + FEmpresaActiva := Aux; + end; + + if Assigned(FEmpresaActiva) then + dmBase.dxPrintStyleManager1Style1.PrinterPage.PageFooter.LeftTitle.Add(FEmpresaActiva.NOMBRE); +end; + +procedure TAppFactuGES.CargarModulos; +begin + UpdateSplashForm; + if not Assigned(FDoLoadModulesEvent) then + raise Exception.Create('Evento para la carga de los mdulos de la aplicacin no asignado (CargarModulos)'); + + FDoLoadModulesEvent(); + UpdateSplashForm; +end; + +constructor TAppFactuGES.Create; +begin + FTerminated := False; + FDoMainFormEvent := NIL; + FDoLoadModulesEvent := NIL; + FAppSplashForm := NIL; + FEmpresaActiva := NIL; + FUsuariosController := NIL; // Se crea la primera vez que se usa + + FEmpresasController := NIL; // Se crea la primera vez que se usa + + FHostManager := THostManager.Create(NIL); + with FHostManager do + begin + OnAfterLoad := AfterLoadModule; + // Ruta por defecto de los mdulos + BPLPath := ExtractFilePath(Application.ExeName) + PathDelim; + end; +end; + +destructor TAppFactuGES.Destroy; +begin + FAppSplashForm := NIL; + + FHostManager.UnloadModules; + FreeAndNIL(FHostManager); + + FEmpresaActiva := NIL; + FUsuariosController := NIL; + FEmpresasController := NIL; + + inherited; +end; + +procedure TAppFactuGES.DoMainForm; +begin + if not Assigned(FDoMainFormEvent) then + raise Exception.Create('Evento para la creacin del formulario principal no asignado (DoMainForm)'); + + FDoMainFormEvent(); +end; + +function TAppFactuGES.GetMainForm: TCustomForm; +begin + Result := Application.MainForm; +end; + +function TAppFactuGES.GetDoMainFormEvent: TAppFactuGES_Event; +begin + Result := FDoMainFormEvent; +end; + +function TAppFactuGES.GetDoRefreshMainFormEvent: TAppFactuGES_Event; +begin + Result := FDoRefreshMainFormEvent; +end; + +function TAppFactuGES.GetAppFullName: String; +begin + Result := uAppInfoUtils.GetAppFullName; +end; + +function TAppFactuGES.GetAppName: String; +begin + Result := uAppInfoUtils.GetAppName; +end; + +function TAppFactuGES.GetAppSplashForm: IAppSplashForm; +begin + Result := FAppSplashForm; +end; + +function TAppFactuGES.GetAppVersion: String; +begin + Result := uAppInfoUtils.GetAppVersion; +end; + +function TAppFactuGES.GetEmpresaActiva: IBizEmpresa; +begin + Result := FEmpresaActiva; +end; + +function TAppFactuGES.GetEmpresasController: IEmpresasController; +begin + if not Assigned(FEmpresasController) then + FEmpresasController := TEmpresasController.Create; + + Result := FEmpresasController; +end; + +function TAppFactuGES.GetLoadModulesEvent: TAppFactuGES_Event; +begin + Result := FDoLoadModulesEvent; +end; + +function TAppFactuGES.GetModule(AModuleName: String): TModuleController; +var + i : integer; +begin + Result := NIL; + for i := 0 to ModuleManager.ModulesCount - 1 do + if ModuleManager.Modules[i].Module.ModuleName = AModuleName then + Result := ModuleManager.Modules[i].Module +end; + +function TAppFactuGES.GetModuleManager: THostManager; +begin + Result := FHostManager; +end; + +function TAppFactuGES.GetTerminated: Boolean; +begin + Result := FTerminated; +end; + +function TAppFactuGES.GetUsuarioActivo: IBizUsuario; +begin + Result := UsuariosController.CurrentUser; +end; + +function TAppFactuGES.GetUsuariosController: IUsuariosController; +begin + if not Assigned(FUsuariosController) then + FUsuariosController := TUsuariosController.Create; + + Result := FUsuariosController; +end; + +procedure TAppFactuGES.HideSplashForm; +begin + if not Assigned(FAppSplashForm) then + raise Exception.Create('AppSplashForm no asignado (HideSplashForm)'); + + FAppSplashForm.Hide; +end; + +procedure TAppFactuGES.AfterLoadModule(Sender: TObject; + AModuleInfo: TModuleInfo); +begin + RegisterModule(AModuleInfo); +end; + +procedure TAppFactuGES.DoRefreshMainForm; +begin + if not Assigned(FDoRefreshMainFormEvent) then + raise Exception.Create('Evento para el refresco del formulario principal no asignado (DoRefreshMainForm)'); + + FDoRefreshMainFormEvent(); +end; + +procedure TAppFactuGES.RegisterModule(AModuleInfo: TModuleInfo); +begin + AppSplashForm.Mensaje := 'Cargando ''' + AModuleInfo.Module.ModuleName + '''...'; +end; + +procedure TAppFactuGES.Run; +begin + if UsuariosController.StartLogin then + begin + ShowHourglassCursor; + ShowSplashForm; + try + CargarModulos; + DoMainForm; + SeleccionarEmpresa; + DoRefreshMainForm; + finally + HideSplashForm; + HideHourglassCursor; + end; + end; + Application.Run; + Terminate; +end; + +procedure TAppFactuGES.SetDoMainFormEvent( + AMainFormEvent: TAppFactuGES_Event); +begin + FDoMainFormEvent := AMainFormEvent; +end; + +procedure TAppFactuGES.SetDoRefreshMainFormEvent( + ARefreshMainFormEvent: TAppFactuGES_Event); +begin + FDoRefreshMainFormEvent := ARefreshMainFormEvent; +end; + +procedure TAppFactuGES.SeleccionarEmpresa; +var + JsDialog: TJSDialog; + AEmpresas: IBizEmpresa; + AEmpresasController: IEmpresasController; +begin + JsDialog := TJSDialog.Create(nil); + try + JsDialog.Content.Add('Seleccin de empresa'); + JsDialog.Instruction.Text := 'Elija la empresa con la que desea trabajar.'; + JsDialog.DialogOptions := [doCommandLinks, doModal]; + JsDialog.ButtonBar.Buttons := [cbCancel]; + JsDialog.Width := 600; + + + //Aadimos las diferentes empresas que existan + AEmpresasController := TEmpresasController.Create; + AEmpresas := AEmpresasController.BuscarTodos; + AEmpresas.DataTable.Active := True; + + AEmpresas.Datatable.First; + while not AEmpresas.Datatable.eof do + begin + with JsDialog.CustomButtons.Add do + begin + Caption := AEmpresas.NIF_CIF + ' - ' + AEmpresas.NOMBRE; + Value := AEmpresas.ID; + end; + AEmpresas.DataTable.Next; + end; + AEmpresas.DataTable.First; + + {$IFDEF MULTIEMPRESA} + if JsDialog.Execute <> IDCANCEL then + if JsDialog.CustomButtonResult > 0 then + CambiarEmpresa(JsDialog.CustomButtonResult); + {$ELSE} + CambiarEmpresa(AEmpresas.ID); + {$ENDIF} + + finally + FreeAndNIL(JsDialog); + AEmpresasController:= NIL; + AEmpresas := NIL; + end; +end; + +procedure TAppFactuGES.SetAppSplashForm(AAppSplashForm: IAppSplashForm); +begin + FAppSplashForm := AAppSplashForm; +end; + +procedure TAppFactuGES.SetLoadModulesEvent( + ALoadModulesEvent: TAppFactuGES_Event); +begin + FDoLoadModulesEvent := ALoadModulesEvent; +end; + +procedure TAppFactuGES.ShowSplashForm; +begin + if not Assigned(FAppSplashForm) then + raise Exception.Create('AppSplashForm no asignado (ShowSplashForm)'); + + FAppSplashForm.Show; + FAppSplashForm.Update; +end; + +procedure TAppFactuGES.Terminate; +begin + ModuleManager.UnloadModules; + FTerminated := True; +end; + +procedure TAppFactuGES.UpdateSplashForm; +begin + FAppSplashForm.Update; +end; + +initialization + // Pongo esto aqu por ahora + uUsuariosViewRegister.RegisterViews; + uEmpresasViewRegister.RegisterViews; + +finalization + // Pongo esto aqu por ahora + AppFactuGES := NIL; + + uUsuariosViewRegister.UnregisterViews; + uEmpresasViewRegister.UnregisterViews; + +end. diff --git a/Source/ApplicationBase/uIDataModuleEmpresas.dcu b/Source/ApplicationBase/uIDataModuleEmpresas.dcu new file mode 100644 index 0000000..26e12b8 Binary files /dev/null and b/Source/ApplicationBase/uIDataModuleEmpresas.dcu differ diff --git a/Source/ApplicationBase/uIDataModuleUsuarios.dcu b/Source/ApplicationBase/uIDataModuleUsuarios.dcu new file mode 100644 index 0000000..681e58e Binary files /dev/null and b/Source/ApplicationBase/uIDataModuleUsuarios.dcu differ diff --git a/Source/ApplicationBase/uIEditorDatosBancarioEmpresa.dcu b/Source/ApplicationBase/uIEditorDatosBancarioEmpresa.dcu new file mode 100644 index 0000000..8e52d15 Binary files /dev/null and b/Source/ApplicationBase/uIEditorDatosBancarioEmpresa.dcu differ diff --git a/Source/ApplicationBase/uIEditorEmpresa.dcu b/Source/ApplicationBase/uIEditorEmpresa.dcu new file mode 100644 index 0000000..cc04564 Binary files /dev/null and b/Source/ApplicationBase/uIEditorEmpresa.dcu differ diff --git a/Source/ApplicationBase/uIEditorEmpresas.dcu b/Source/ApplicationBase/uIEditorEmpresas.dcu new file mode 100644 index 0000000..0e4fa33 Binary files /dev/null and b/Source/ApplicationBase/uIEditorEmpresas.dcu differ diff --git a/Source/ApplicationBase/uIEditorLogin.dcu b/Source/ApplicationBase/uIEditorLogin.dcu new file mode 100644 index 0000000..484a773 Binary files /dev/null and b/Source/ApplicationBase/uIEditorLogin.dcu differ diff --git a/Source/ApplicationBase/uIEditorPerfilUsuario.dcu b/Source/ApplicationBase/uIEditorPerfilUsuario.dcu new file mode 100644 index 0000000..b23ac11 Binary files /dev/null and b/Source/ApplicationBase/uIEditorPerfilUsuario.dcu differ diff --git a/Source/ApplicationBase/uIEditorPerfilesUsuario.dcu b/Source/ApplicationBase/uIEditorPerfilesUsuario.dcu new file mode 100644 index 0000000..5be4b90 Binary files /dev/null and b/Source/ApplicationBase/uIEditorPerfilesUsuario.dcu differ diff --git a/Source/ApplicationBase/uIEditorUsuario.dcu b/Source/ApplicationBase/uIEditorUsuario.dcu new file mode 100644 index 0000000..af14de6 Binary files /dev/null and b/Source/ApplicationBase/uIEditorUsuario.dcu differ diff --git a/Source/ApplicationBase/uIEditorUsuarios.dcu b/Source/ApplicationBase/uIEditorUsuarios.dcu new file mode 100644 index 0000000..b606696 Binary files /dev/null and b/Source/ApplicationBase/uIEditorUsuarios.dcu differ diff --git a/Source/ApplicationBase/uPlugins_Intf.dcu b/Source/ApplicationBase/uPlugins_Intf.dcu new file mode 100644 index 0000000..789dfb4 Binary files /dev/null and b/Source/ApplicationBase/uPlugins_Intf.dcu differ diff --git a/Source/ApplicationBase/uPlugins_Intf.pas b/Source/ApplicationBase/uPlugins_Intf.pas new file mode 100644 index 0000000..35e0b76 --- /dev/null +++ b/Source/ApplicationBase/uPlugins_Intf.pas @@ -0,0 +1,70 @@ +unit uPlugins_Intf; + +interface + +const + MODULENAME_PRESUPUESTOS_CLIENTE = 'PresupuestosCliente_plugin.bpl'; + MODULENAME_ALBARANES_CLIENTE = 'AlbaranesCliente_plugin.bpl'; + MODULENAME_FACTURAS_CLIENTE = 'FacturasCliente_plugin.bpl'; + MODULENAME_RECIBOS_CLIENTE = 'RecibosCliente_plugin.bpl'; + + MODULENAME_PEDIDOS_PROVEEDOR = 'PedidosProveedor_plugin.bpl'; + MODULENAME_ALBARANES_PROVEEDOR = 'AlbaranesProveedor_plugin.bpl'; + MODULENAME_FACTURAS_PROVEEDOR = 'FacturasProveedor_plugin.bpl'; + MODULENAME_RECIBOS_PROVEEDOR = 'RecibosProveedor_plugin.bpl'; + + +type + IMCPresupuestosCliente = interface(IInterface) + ['{D09E6FFF-50C7-48E2-8380-4CB57B74BB93}'] + procedure VerPresupuestos(const ID_Cliente: Integer; + const ANombreCliente : String = ''); + end; + + IMCAlbaranesCliente = interface(IInterface) + ['{0B9DD25A-3E76-446A-9EA6-D43131634A1E}'] + procedure VerAlbaranes(const ID_Cliente: Integer; + const ANombreCliente : String = ''); + end; + + IMCFacturasCliente = interface(IInterface) + ['{DA2FEEA4-4B37-4510-9CE8-6223F9894DEE}'] + procedure VerFacturas(const ID_Cliente: Integer; + const ANombreCliente : String = ''); + end; + + IMCRecibosCliente = interface(IInterface) + ['{6535395A-1450-4E19-8031-F9CD3D062F6D}'] + procedure VerRecibos(const ID_Cliente: Integer; + const ANombreCliente : String = ''); + end; + + IMCPedidosProveedor = interface(IInterface) + ['{D34DF6B6-6D9E-489B-B301-AEBB4DB37629}'] + procedure VerPedidos(const ID_Proveedor: Integer; + const ANombreProveedor : String = ''); + end; + + IMCAlbaranesProveedor = interface(IInterface) + ['{B567526E-A1F8-4311-BA19-04EE508B8374}'] + procedure VerAlbaranes(const ID_Proveedor: Integer; + const ANombreProveedor : String = ''); + procedure VerDevoluciones(const ID_Proveedor: Integer; + const ANombreProveedor : String = ''); + end; + + IMCFacturasProveedor = interface(IInterface) + ['{8A48058F-490E-4BF4-9BBB-09654B66CEED}'] + procedure VerFacturas(const ID_Proveedor: Integer; + const ANombreProveedor : String = ''); + end; + + IMCRecibosProveedor = interface(IInterface) + ['{24A23E95-D148-404C-9987-B1ED4A19D3CA}'] + procedure VerRecibos(const ID_Proveedor: Integer; + const ANombreProveedor : String = ''); + end; + +implementation + +end. diff --git a/Source/ApplicationBase/uProvinciasPoblacionesController.dcu b/Source/ApplicationBase/uProvinciasPoblacionesController.dcu new file mode 100644 index 0000000..d8298ad Binary files /dev/null and b/Source/ApplicationBase/uProvinciasPoblacionesController.dcu differ diff --git a/Source/ApplicationBase/uUCROConn.dcu b/Source/ApplicationBase/uUCROConn.dcu new file mode 100644 index 0000000..6797789 Binary files /dev/null and b/Source/ApplicationBase/uUCROConn.dcu differ diff --git a/Source/ApplicationBase/uUsuariosController.dcu b/Source/ApplicationBase/uUsuariosController.dcu new file mode 100644 index 0000000..d8136b7 Binary files /dev/null and b/Source/ApplicationBase/uUsuariosController.dcu differ diff --git a/Source/ApplicationBase/uUsuariosViewRegister.dcu b/Source/ApplicationBase/uUsuariosViewRegister.dcu new file mode 100644 index 0000000..c132a53 Binary files /dev/null and b/Source/ApplicationBase/uUsuariosViewRegister.dcu differ diff --git a/Source/ApplicationBase/uViewDatosBancarios.dcu b/Source/ApplicationBase/uViewDatosBancarios.dcu new file mode 100644 index 0000000..ed2fa0a Binary files /dev/null and b/Source/ApplicationBase/uViewDatosBancarios.dcu differ diff --git a/Source/ApplicationBase/uViewEmpresa.dcu b/Source/ApplicationBase/uViewEmpresa.dcu new file mode 100644 index 0000000..a53d504 Binary files /dev/null and b/Source/ApplicationBase/uViewEmpresa.dcu differ diff --git a/Source/ApplicationBase/uViewPerfilUsuario.dcu b/Source/ApplicationBase/uViewPerfilUsuario.dcu new file mode 100644 index 0000000..7df9d20 Binary files /dev/null and b/Source/ApplicationBase/uViewPerfilUsuario.dcu differ diff --git a/Source/ApplicationBase/uViewPerfilesUsuario.dcu b/Source/ApplicationBase/uViewPerfilesUsuario.dcu new file mode 100644 index 0000000..20068fa Binary files /dev/null and b/Source/ApplicationBase/uViewPerfilesUsuario.dcu differ diff --git a/Source/ApplicationBase/uViewUsuario.dcu b/Source/ApplicationBase/uViewUsuario.dcu new file mode 100644 index 0000000..f21d04e Binary files /dev/null and b/Source/ApplicationBase/uViewUsuario.dcu differ diff --git a/Source/ApplicationBase/uViewUsuarios.dcu b/Source/ApplicationBase/uViewUsuarios.dcu new file mode 100644 index 0000000..0c149ea Binary files /dev/null and b/Source/ApplicationBase/uViewUsuarios.dcu differ diff --git a/Source/Base/Base.bdsproj b/Source/Base/Base.bdsproj new file mode 100644 index 0000000..7ebf9f7 --- /dev/null +++ b/Source/Base/Base.bdsproj @@ -0,0 +1,674 @@ + + + + + + + + + + + + Base.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + Libreria base de FactuGES + + + + .\ + ..\..\Output\Debug\Cliente + ..\Lib + + + + + False + + + + + + False + + + True + False + + + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + VCL for the Web Design Package for CodeGear RAD Studio + CodeGear WebSnap Components + CodeGear SOAP Components + Microsoft Office XP Sample Automation Server Wrapper Components + Microsoft Office 2000 Sample Automation Server Wrapper Components + CodeGear C++Builder Office 2000 Servers Package + CodeGear C++Builder Office XP Servers Package + + + + + diff --git a/Source/Base/Base.dcu b/Source/Base/Base.dcu new file mode 100644 index 0000000..9f445b2 Binary files /dev/null and b/Source/Base/Base.dcu differ diff --git a/Source/Base/Base.dpk b/Source/Base/Base.dpk new file mode 100644 index 0000000..50cf0f2 --- /dev/null +++ b/Source/Base/Base.dpk @@ -0,0 +1,119 @@ +package Base; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO OFF} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'Libreria base de FactuGES'} +{$IMPLICITBUILD OFF} +{$DEFINE DEBUG} + +requires + rtl, + vcl, + TB2k_D10, + GUISDK_D11R, + RemObjects_Core_D11, + DataAbstract_Core_D11, + vcljpg, + IndyCore, + IndySystem, + IndyProtocols, + PNG_D10, + PngComponentsD10, + tbx_d10, + Jcl, + JvCoreD11R, + JvSystemD11R, + JvStdCtrlsD11R, + JvDlgsD11R, + JvNetD11R, + JvPageCompsD11R, + JSDialog100, + dbrtl, + vcldb, + dsnap, + adortl, + vclactnband, + vclx, + JclVcl, + JvMMD11R, + JvCtrlsD11R, + pckUCDataConnector, + pckUserControl_RT, + dclIndyCore, + designide, + xmlrtl, + VclSmp, + pckMD5, + JvCmpD11R, + dxGDIPlusD11, + cxLibraryD11, + dxThemeD11, + cxEditorsD11, + cxDataD11, + cxExtEditorsD11, + cxGridD11, + cxPageControlD11, + cxExportD11, + dxPSCoreD11, + cxIntl6D11, + cxIntlPrintSys3D11, + RemObjects_Indy_D11; + +contains + uDataTableUtils in 'Utiles\uDataTableUtils.pas', + uDBSelectionListUtils in 'Utiles\uDBSelectionListUtils.pas', + uIntegerListUtils in 'Utiles\uIntegerListUtils.pas', + uDMBase in 'uDMBase.pas' {dmBase: TDataModule}, + uDataModuleConexion in 'Conexion\uDataModuleConexion.pas' {dmConexion: TDataModule}, + uConfigurarConexion in 'Conexion\uConfigurarConexion.pas' {fConfigurarConexion: TForm}, + uSistemaFunc in 'Utiles\uSistemaFunc.pas', + FactuGES_Intf in '..\Servicios\FactuGES_Intf.pas', + uGridStatusUtils in 'Utiles\uGridStatusUtils.pas', + uDateUtils in 'Utiles\uDateUtils.pas', + uDataModuleConfiguracion in 'Configuracion\uDataModuleConfiguracion.pas' {dmConfiguracion: TDataModule}, + uViewRegistryUtils in 'Utiles\ClassRegistry\uViewRegistryUtils.pas', + uClassRegistryUtils in 'Utiles\ClassRegistry\uClassRegistryUtils.pas', + uEditorRegistryUtils in 'Utiles\ClassRegistry\uEditorRegistryUtils.pas', + uDialogUtils in 'Utiles\uDialogUtils.pas', + uNumUtils in 'Utiles\uNumUtils.pas', + uMD5 in 'Utiles\uMD5.pas', + uPasswordUtils in 'Utiles\uPasswordUtils.pas', + uInfoProjectUtils in 'Utiles\uInfoProjectUtils.pas', + uInformeRegistryUtils in 'Utiles\ClassRegistry\uInformeRegistryUtils.pas', + uCalculosUtils in 'Utiles\uCalculosUtils.pas', + uControllerBase in 'Controladores\uControllerBase.pas', + uControllerDetallesBase in 'Controladores\uControllerDetallesBase.pas', + schBase_Intf in 'schBase_Intf.pas', + uDataModuleBase in 'uDataModuleBase.pas' {DataModuleBase: TDataModule}, + uStringsUtils in 'Utiles\uStringsUtils.pas', + uAppInfoUtils in 'Utiles\uAppInfoUtils.pas', + Ctltortf in 'Utiles\Ctltortf.pas', + uRTFUtils in 'Utiles\uRTFUtils.pas', + ClipboardUtils in 'Utiles\ClipboardUtils.pas', + uGridClipboardUtils in 'Utiles\uGridClipboardUtils.pas', + uReferenciasUtils in 'Utiles\uReferenciasUtils.pas', + uEMailUtils in 'Utiles\uEMailUtils.pas', + uSaveClipboard in 'Utiles\uSaveClipboard.pas', + MidasSpeedFix in 'Utiles\MidasSpeedFix.pas'; + +end. diff --git a/Source/Base/Base.dproj b/Source/Base/Base.dproj new file mode 100644 index 0000000..ef74c5d --- /dev/null +++ b/Source/Base/Base.dproj @@ -0,0 +1,646 @@ + + + + {70a31e92-41c6-4435-a901-d77c3d82951e} + Base.dpk + Debug + AnyCPU + DCC32 + ..\..\Output\Debug\Cliente\Base.bpl + + + 7.0 + False + False + False + True + 0 + .\ + .\ + .\ + ..\..\Output\Release\Cliente + ..\Lib + RELEASE + + + 7.0 + False + True + .\ + .\ + .\ + ..\..\Output\Debug\Cliente + ..\Lib + DEBUG + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;T:\COMPON~1\jcl\lib\d11\debug;$(BDSCOMMONDIR)\Dcp + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;T:\COMPON~1\jcl\lib\d11\debug;$(BDSCOMMONDIR)\Dcp + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;T:\COMPON~1\jcl\lib\d11\debug;$(BDSCOMMONDIR)\Dcp + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;T:\COMPON~1\jcl\lib\d11\debug;$(BDSCOMMONDIR)\Dcp + True + True + 0 + + + Delphi.Personality + Package + +FalseTrueFalseLibreria base de FactuGESFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 + + + + + Microsoft Office 2000 Sample Automation Server Wrapper Components + Microsoft Office XP Sample Automation Server Wrapper Components + Base.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fConfigurarConexion
+ TForm +
+ +
dmConexion
+ TDataModule +
+ +
dmConfiguracion
+ TDataModule +
+ + + + +
DataModuleBase
+ TDataModule +
+ +
dmBase
+ TDataModule +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ diff --git a/Source/Base/Base.identcache b/Source/Base/Base.identcache new file mode 100644 index 0000000..90f6800 Binary files /dev/null and b/Source/Base/Base.identcache differ diff --git a/Source/Base/Base.rc b/Source/Base/Base.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Base/Base.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Base/Base.res b/Source/Base/Base.res new file mode 100644 index 0000000..1641339 Binary files /dev/null and b/Source/Base/Base.res differ diff --git a/Source/Base/ClipboardUtils.dcu b/Source/Base/ClipboardUtils.dcu new file mode 100644 index 0000000..4dc0021 Binary files /dev/null and b/Source/Base/ClipboardUtils.dcu differ diff --git a/Source/Base/Conexion/uConfigurarConexion.dcu b/Source/Base/Conexion/uConfigurarConexion.dcu new file mode 100644 index 0000000..cac6fed Binary files /dev/null and b/Source/Base/Conexion/uConfigurarConexion.dcu differ diff --git a/Source/Base/Conexion/uConfigurarConexion.dfm b/Source/Base/Conexion/uConfigurarConexion.dfm new file mode 100644 index 0000000..8cbbde8 --- /dev/null +++ b/Source/Base/Conexion/uConfigurarConexion.dfm @@ -0,0 +1,92 @@ +object fConfigurarConexion: TfConfigurarConexion + Left = 663 + Top = 468 + ActiveControl = edtServer + Caption = 'Configuraci'#243'n de la conexi'#243'n' + ClientHeight = 149 + ClientWidth = 392 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + Scaled = False + PixelsPerInch = 96 + TextHeight = 13 + object bProbar: TButton + Left = 8 + Top = 113 + Width = 121 + Height = 25 + Caption = '&Probar la conexi'#243'n' + TabOrder = 1 + OnClick = bProbarClick + end + object GroupBox1: TGroupBox + Left = 8 + Top = 8 + Width = 375 + Height = 97 + Caption = 'Servidor' + TabOrder = 0 + DesignSize = ( + 375 + 97) + object Label1: TLabel + Left = 18 + Top = 28 + Width = 97 + Height = 13 + Margins.Bottom = 0 + Caption = 'Nombre del servidor:' + end + object Label2: TLabel + Left = 18 + Top = 60 + Width = 93 + Height = 13 + Margins.Bottom = 0 + Caption = 'Puerto de escucha:' + end + object edtServer: TEdit + Left = 136 + Top = 24 + Width = 223 + Height = 21 + Anchors = [akLeft, akTop, akRight] + TabOrder = 0 + end + object edtPort: TEdit + Left = 136 + Top = 56 + Width = 108 + Height = 21 + Anchors = [akLeft, akTop, akRight] + TabOrder = 1 + Text = '8099' + end + end + object bAceptar: TButton + Left = 219 + Top = 113 + Width = 75 + Height = 25 + Caption = '&Aceptar' + Default = True + ModalResult = 1 + TabOrder = 2 + end + object bCancelar: TButton + Left = 307 + Top = 113 + Width = 75 + Height = 25 + Cancel = True + Caption = '&Cancelar' + ModalResult = 2 + TabOrder = 3 + end +end diff --git a/Source/Base/Conexion/uConfigurarConexion.pas b/Source/Base/Conexion/uConfigurarConexion.pas new file mode 100644 index 0000000..9c3cd55 --- /dev/null +++ b/Source/Base/Conexion/uConfigurarConexion.pas @@ -0,0 +1,67 @@ +unit uConfigurarConexion; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, uROClient, uROWinInetHttpChannel, uRODynamicRequest, + uRORemoteService, uROBinMessage; + +type + TfConfigurarConexion = class(TForm) + bProbar: TButton; + GroupBox1: TGroupBox; + Label1: TLabel; + Label2: TLabel; + edtServer: TEdit; + edtPort: TEdit; + bAceptar: TButton; + bCancelar: TButton; + procedure bProbarClick(Sender: TObject); + private + function GetTargetURL: String; + procedure SetTargetURL(const Value: String); + { Private declarations } + public + property TargetURL : String read GetTargetURL write SetTargetURL; + end; + +var + fConfigurarConexion: TfConfigurarConexion; + +implementation + +uses + StrUtils, JclStrings, uDataModuleConexion, uDialogUtils; + +{$R *.dfm} + +{ TfConfigurarConexion } + +function TfConfigurarConexion.GetTargetURL: String; +begin + Result := 'http://' + edtServer.Text + ':' + edtPort.Text + '/bin'; +end; + +procedure TfConfigurarConexion.SetTargetURL(const Value: String); +var + s : String; +begin + s := StrAfter('http://', Value); + s := StrBefore(':', s); + edtServer.Text := s; + + s := StrAfter(edtServer.Text + ':', Value); + s := StrBefore('/bin', s); + edtPort.Text := s; +end; + +procedure TfConfigurarConexion.bProbarClick(Sender: TObject); +begin + if dmConexion.ProbarConexion(TargetURL) then + ShowInfoMessage('Conexin vlida con el servidor.') + else + ShowErrorMessage('Error de conexin', 'No se ha podido establecer la conexin con el servidor.') +end; + +end. diff --git a/Source/Base/Conexion/uDataModuleConexion.dcu b/Source/Base/Conexion/uDataModuleConexion.dcu new file mode 100644 index 0000000..79fe068 Binary files /dev/null and b/Source/Base/Conexion/uDataModuleConexion.dcu differ diff --git a/Source/Base/Conexion/uDataModuleConexion.dfm b/Source/Base/Conexion/uDataModuleConexion.dfm new file mode 100644 index 0000000..e96d43e --- /dev/null +++ b/Source/Base/Conexion/uDataModuleConexion.dfm @@ -0,0 +1,19 @@ +object dmConexion: TdmConexion + OldCreateOrder = False + OnCreate = DataModuleCreate + OnDestroy = DataModuleDestroy + Height = 177 + Width = 265 + object ROMessage: TROBinMessage + Left = 42 + Top = 88 + end + object ROChannel: TROWinInetHTTPChannel + UserAgent = 'RemObjects SDK' + TargetURL = 'http://localhost:8099/bin' + ServerLocators = <> + DispatchOptions = [] + Left = 48 + Top = 8 + end +end diff --git a/Source/Base/Conexion/uDataModuleConexion.pas b/Source/Base/Conexion/uDataModuleConexion.pas new file mode 100644 index 0000000..4ab2602 --- /dev/null +++ b/Source/Base/Conexion/uDataModuleConexion.pas @@ -0,0 +1,178 @@ +unit uDataModuleConexion; + +interface + +uses + SysUtils, Classes, uRORemoteService, uDADataTable, + uDABINAdapter, uROClient, uROBinMessage, + uDADataStreamer, uROWinInetHttpChannel; + +const + SERVER_URL = 'http://localhost:8099/bin'; // Direccin por defecto del servidor + +type + TdmConexion = class(TDataModule) + ROMessage: TROBinMessage; + ROChannel: TROWinInetHTTPChannel; + procedure DataModuleDestroy(Sender: TObject); + procedure ROChannel2Failure(Sender: TROTransportChannel; + anException: Exception; var aRetry: Boolean); + procedure DataModuleCreate(Sender: TObject); + private + function GetChannel: TROTransportChannel; + function GetMessage: TROBinMessage; + function GetTargetURL: String; + procedure SetTargetURL(const Value: String); + procedure ConfigurarEncriptacionConexion; + public + function HayConexion : Boolean; + function ProbarConexion(const ATargetURL : String): Boolean; + procedure ConfigurarConexion; + property TargetURL : String read GetTargetURL write SetTargetURL; + property Channel: TROTransportChannel read GetChannel; + property Message: TROBinMessage read GetMessage; + end; + +var + dmConexion: TdmConexion; + +implementation + +{$R *.dfm} + +uses + uROEncryption, Windows, WinInet, cxControls, uConfigurarConexion, Dialogs, Controls, + uDMBase, FactuGES_Intf; + +const + IE_OFFLINE_ERROR = 'Unexpected error in WinInet HTTP Channel (2)'; + + +function TdmConexion.HayConexion: Boolean; +begin + Result := ROChannel.Connected; +end; + +procedure TdmConexion.ConfigurarConexion; +begin + with TfConfigurarConexion.Create(NIL) do + try + TargetURL := ROChannel.TargetURL; + if ShowModal = mrOk then + begin + ROChannel.TargetURL := TargetURL; + ROChannel.Connected := False; + ROChannel.Connected := True; + dmBase.SalvarConfiguracion; + end; + finally + Free; + end; +end; + +procedure TdmConexion.ConfigurarEncriptacionConexion; +begin + { + with ROChannel.Encryption do + begin + EncryptionMethod := tetDES; + EncryptionSendKey := '127C1A6A4D85F5EFE0A54E104BF7F695CD6C989C1808A57667EF1218E8ED93FC6CDC531631EB9750'; + EncryptionRecvKey := 'C793F1A04FFC8DF91FF9522951F6B6DF921C70B42D74166C6DF0B697797AAA6A243BEC35A9423A51'; + UseCompression := True; + end; + } +end; + +procedure TdmConexion.DataModuleCreate(Sender: TObject); +begin + ConfigurarEncriptacionConexion; +end; + +procedure TdmConexion.DataModuleDestroy(Sender: TObject); +begin + ROChannel.Connected := False; +end; + +function TdmConexion.GetChannel: TROTransportChannel; +begin + Result := ROChannel; +end; + +function TdmConexion.GetMessage: TROBinMessage; +begin + Result := ROMessage; +end; + +function TdmConexion.GetTargetURL: String; +begin + Result := ROChannel.TargetURL; +end; + +function TdmConexion.ProbarConexion(const ATargetURL: String): Boolean; +var + AHTTPChannel: TROWinInetHTTPChannel; + AROBinMessage: TROBinMessage; + ACoService: TRORemoteService; +begin + if ATargetURL = '' then + raise Exception.Create('No se ha indicado la URL del servidor (HayConexion)'); + + AHTTPChannel := TROWinInetHTTPChannel.Create(Self); + AROBinMessage := TROBinMessage.Create(Self); + ACoService := TRORemoteService.Create(Self); + + ShowHourglassCursor; + try + AROBinMessage.Assign(ROMessage); + + AHTTPChannel.Assign(ROChannel); + with AHTTPChannel do + begin + Name := 'HTTPChannel'; + + if Length(ATargetURL) > 0 then + TargetURL := ATargetURL + else + TargetURL := ROChannel.TargetURL; + end; + +{ if AHTTPChannel.Encryption.EncryptionMethod <> tetNone then + ShowMessage('funcionando');} + + ACoService.ServiceName := 'srvLogin'; + ACoService.Message := AROBinMessage; + ACoService.Channel := AHTTPChannel; + + try + (ACoService as IsrvLogin).Ping; + Result := True; + except + Result := False; + end; + finally + FreeAndNil(AHTTPChannel); + FreeAndNil(ACoService); + FreeAndNil(AROBinMessage); + HideHourglassCursor; + end; +end; + +procedure TdmConexion.ROChannel2Failure(Sender: TROTransportChannel; + anException: Exception; var aRetry: Boolean); +begin + if (Pos(anException.Message, IE_OFFLINE_ERROR) > 0) then + begin + // Preguntar al usuario si se quiere conectar + if InternetGoOnline(PAnsiChar(ROChannel.TargetURL), GetDesktopWindow(), 0) then + aRetry := True // Si el usuario pulsa en 'Conectar' reintentar la operacin + else + Abort; // Si el usuario pulsa en 'Seguir desconectado' parar todo + end +end; + +procedure TdmConexion.SetTargetURL(const Value: String); +begin + ROChannel.TargetURL := Value; +end; + +end. diff --git a/Source/Base/Configuracion/uDataModuleConfiguracion.dcu b/Source/Base/Configuracion/uDataModuleConfiguracion.dcu new file mode 100644 index 0000000..23101a9 Binary files /dev/null and b/Source/Base/Configuracion/uDataModuleConfiguracion.dcu differ diff --git a/Source/Base/Configuracion/uDataModuleConfiguracion.dfm b/Source/Base/Configuracion/uDataModuleConfiguracion.dfm new file mode 100644 index 0000000..2f98e4e --- /dev/null +++ b/Source/Base/Configuracion/uDataModuleConfiguracion.dfm @@ -0,0 +1,10 @@ +object dmConfiguracion: TdmConfiguracion + OldCreateOrder = False + Height = 160 + Width = 100 + object RORemoteService: TRORemoteService + ServiceName = 'srvConfiguracion' + Left = 24 + Top = 16 + end +end diff --git a/Source/Base/Configuracion/uDataModuleConfiguracion.pas b/Source/Base/Configuracion/uDataModuleConfiguracion.pas new file mode 100644 index 0000000..1ba6b9f --- /dev/null +++ b/Source/Base/Configuracion/uDataModuleConfiguracion.pas @@ -0,0 +1,81 @@ +unit uDataModuleConfiguracion; + +interface + +uses + SysUtils, Classes, uRORemoteService, uDADataTable, + uDABINAdapter, uROClient, IniFiles, + uDADataStreamer; + +const + SERVER_URL = 'http://localhost:8099/bin'; + +type + TdmConfiguracion = class(TDataModule) + RORemoteService: TRORemoteService; + private + FIniFile : TIniFile; + public + function DarValor(const CODIGO: String; const ValorPorDefecto: String = ''): Variant; + procedure LeerConfiguracion; + procedure SalvarConfiguracion; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +var + dmConfiguracion: TdmConfiguracion; + +implementation + +{$R *.dfm} + +uses + Forms, FactuGES_Intf, Variants, uDataModuleConexion, + uSistemaFunc, SHFolder, uAppInfoUtils; + +const + CONFIG_INI_FILE = 'config.ini'; + +{ TdmConfiguracion } + +constructor TdmConfiguracion.Create(AOwner: TComponent); +var + AIniFile : String; +begin + inherited; + AIniFile := GetSpecialFolderPath(CSIDL_COMMON_APPDATA); //[All Users]\Application Data + AIniFile := AIniFile + PathDelim + GetAppName + PathDelim; + + if not DirectoryExists(AIniFile) then + CreateDir(AIniFile); + + FIniFile := TIniFile.Create(AIniFile + CONFIG_INI_FILE); +end; + +function TdmConfiguracion.DarValor(const CODIGO: String; const ValorPorDefecto: String = ''): Variant; +begin + RORemoteService.Channel := dmConexion.ROChannel; + RORemoteService.Message := dmConexion.ROMessage; + Result := (RORemoteService as IsrvConfiguracion).DarValor(CODIGO, ValorPorDefecto); +end; + +destructor TdmConfiguracion.Destroy; +begin + FreeAndNIL(FIniFile); + inherited; +end; + +procedure TdmConfiguracion.LeerConfiguracion; +begin + with FIniFile do + dmConexion.TargetURL := ReadString('Server', 'URL', SERVER_URL); +end; + +procedure TdmConfiguracion.SalvarConfiguracion; +begin + with FIniFile do + WriteString('Server', 'URL', dmConexion.TargetURL); +end; + +end. diff --git a/Source/Base/Controladores/uControllerBase.dcu b/Source/Base/Controladores/uControllerBase.dcu new file mode 100644 index 0000000..8b63251 Binary files /dev/null and b/Source/Base/Controladores/uControllerBase.dcu differ diff --git a/Source/Base/Controladores/uControllerBase.pas b/Source/Base/Controladores/uControllerBase.pas new file mode 100644 index 0000000..9e825ab --- /dev/null +++ b/Source/Base/Controladores/uControllerBase.pas @@ -0,0 +1,280 @@ +unit uControllerBase; + +interface + +uses + Classes, uDADataTable, Forms; + +type + ISujeto = interface; + + IObservador = interface (IInterface) + ['{679D5CF2-D5DC-4A52-9FF3-04AD91402483}'] + procedure AddSujeto(Sujeto: ISujeto); + procedure DeleteSujeto(Sujeto: ISujeto); + procedure RecibirAviso(ASujeto: ISujeto); overload; + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); overload; + end; + + ISujeto = interface (IInterface) + ['{CDB691CD-D1D6-4F2E-AA34-93B1CD0E6030}'] + procedure AddObservador(Observador: IObservador); + procedure DeleteObservador(Observador: IObservador); + end; + + { ******************* PARA PRUEBAS ******************************************} + TMiInterfacedObject = class(TObject, IInterface) + protected + FRefCount: Integer; + function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall; + function _AddRef: Integer; stdcall; + function _Release: Integer; virtual; stdcall; + function GetRefCount : Integer; + public + procedure AfterConstruction; override; + procedure BeforeDestruction; override; + class function NewInstance: TObject; override; + property RefCount: Integer read FRefCount; + end; + + + { ***************************************************************************} + + + TObservador = class(TObject, IObservador) + private + fSujetos: IInterfaceList; + protected + FRefCount: Integer; + procedure RecibirAviso(ASujeto: ISujeto); overload; virtual; + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); overload; virtual; abstract; + function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall; + function _AddRef: Integer; stdcall; + function _Release: Integer; stdcall; + function GetRefCount : Integer; + public + constructor Create; virtual; + procedure AddSujeto(Sujeto: ISujeto); + procedure DeleteSujeto(Sujeto: ISujeto); + destructor Destroy; override; + + procedure AfterConstruction; override; + procedure BeforeDestruction; override; + class function NewInstance: TObject; override; + property RefCount: Integer read FRefCount; + end; + + TSujeto = class(TInterfacedObject, ISujeto) + private + fObservadores: IInterfaceList; + protected + procedure AvisarObservadores; overload; + procedure AvisarObservadores(ADataTable: IDAStronglyTypedDataTable); overload; + public + constructor Create; virtual; + procedure AddObservador(Observador: IObservador); + procedure DeleteObservador(Observador: IObservador); + destructor Destroy; override; + end; + + IControllerBase = IObservador; + TControllerBase = TObservador; + +implementation + +uses + Dialogs, SysUtils; + + +function InterlockedIncrement(var I: Integer): Integer; +asm + MOV EDX,1 + XCHG EAX,EDX + LOCK XADD [EDX],EAX + INC EAX +end; + +function InterlockedDecrement(var I: Integer): Integer; +asm + MOV EDX,-1 + XCHG EAX,EDX + LOCK XADD [EDX],EAX + DEC EAX +end; + +{ TMiInterfacedObject } + +procedure TMiInterfacedObject.AfterConstruction; +begin +// Release the constructor's implicit refcount + InterlockedDecrement(FRefCount); +end; + +procedure TMiInterfacedObject.BeforeDestruction; +begin +// if RefCount <> 0 then +// Error(reInvalidPtr); +end; + +function TMiInterfacedObject.GetRefCount: Integer; +begin + Result := FRefCount; +end; + +// Set an implicit refcount so that refcounting +// during construction won't destroy the object. +class function TMiInterfacedObject.NewInstance: TObject; +begin + Result := inherited NewInstance; + TMiInterfacedObject(Result).FRefCount := 1; +end; + +function TMiInterfacedObject.QueryInterface(const IID: TGUID; out Obj): HResult; +begin + if GetInterface(IID, Obj) then + Result := 0 + else + Result := E_NOINTERFACE; +end; + +function TMiInterfacedObject._AddRef: Integer; +begin + Result := InterlockedIncrement(FRefCount); +// ShowMessage('_AddRef: ' + ClassName + ' - RefCount: ' + IntToStr(FRefCount)); +end; + +function TMiInterfacedObject._Release: Integer; +begin + Result := InterlockedDecrement(FRefCount); +// ShowMessage('_Release: ' + ClassName + ' - RefCount: ' + IntToStr(FRefCount)); + if Result = 0 then + Destroy; +end; + + + +{ TSujeto } + +procedure TSujeto.addObservador(Observador: IObservador); +begin + FObservadores.Add(Observador); + Observador.AddSujeto(Self); +end; + +procedure TSujeto.AvisarObservadores; +var + i: Integer; + AObs : IObservador; +begin + for i := 0 to Pred(FObservadores.Count) do + begin + if Supports(FObservadores[i], IObservador, AObs) then + AObs.RecibirAviso(Self); + end; +end; + +procedure TSujeto.AvisarObservadores(ADataTable: IDAStronglyTypedDataTable); +var + i: Integer; + AObs : IObservador; +begin + for i := 0 to Pred(FObservadores.Count) do + begin + if Supports(FObservadores[i], IObservador, AObs) then + AObs.RecibirAviso(Self, ADataTable); + end; +end; + +constructor TSujeto.Create; +begin + inherited; + FObservadores := TInterfaceList.Create; +end; + +procedure TSujeto.DeleteObservador(Observador: IObservador); +begin + FObservadores.Remove(Observador); +end; + +destructor TSujeto.Destroy; +begin + FObservadores := NIL; + inherited; +end; + +{ TObservador } + +procedure TObservador.RecibirAviso(ASujeto: ISujeto); +begin + // +end; + +function TObservador._AddRef: Integer; +begin + Result := InterlockedIncrement(FRefCount); +// ShowMessage('_AddRef: ' + ClassName + ' - RefCount: ' + IntToStr(FRefCount)); +end; + +function TObservador._Release: Integer; +begin + Result := InterlockedDecrement(FRefCount); +// ShowMessage('_Release: ' + ClassName + ' - RefCount: ' + IntToStr(FRefCount)); +// if (Result = 0) + if (Assigned(fSujetos) and (fSujetos.Count = FRefCount)) then + Destroy; +end; + +procedure TObservador.AddSujeto(Sujeto: ISujeto); +begin + FSujetos.Add(Sujeto); +end; + +procedure TObservador.AfterConstruction; +begin +// Release the constructor's implicit refcount + InterlockedDecrement(FRefCount); +end; + +procedure TObservador.BeforeDestruction; +begin +// if RefCount <> 0 then +// Error(reInvalidPtr); +end; + +constructor TObservador.Create; +begin + inherited; + FSujetos := TInterfaceList.Create; +end; + +procedure TObservador.DeleteSujeto(Sujeto: ISujeto); +begin + FSujetos.Remove(Sujeto); +end; + +destructor TObservador.Destroy; +begin + FSujetos := NIL; + inherited; +end; + +function TObservador.GetRefCount: Integer; +begin + Result := FRefCount; +end; + +class function TObservador.NewInstance: TObject; +begin + Result := inherited NewInstance; + TObservador(Result).FRefCount := 1; +end; + +function TObservador.QueryInterface(const IID: TGUID; out Obj): HResult; +begin + if GetInterface(IID, Obj) then + Result := 0 + else + Result := E_NOINTERFACE; +end; + +end. diff --git a/Source/Base/Controladores/uControllerDetallesBase.dcu b/Source/Base/Controladores/uControllerDetallesBase.dcu new file mode 100644 index 0000000..29f0f4e Binary files /dev/null and b/Source/Base/Controladores/uControllerDetallesBase.dcu differ diff --git a/Source/Base/Controladores/uControllerDetallesBase.pas b/Source/Base/Controladores/uControllerDetallesBase.pas new file mode 100644 index 0000000..dbda2ed --- /dev/null +++ b/Source/Base/Controladores/uControllerDetallesBase.pas @@ -0,0 +1,830 @@ +unit uControllerDetallesBase; + +interface + +uses Classes, Variants, uDACDSDataTable, uDADataTable, uControllerBase, uCalculosUtils; + +const + TIPO_DETALLE_CONCEPTO = 'Concepto'; + TIPO_DETALLE_TITULO = 'Titulo'; + TIPO_DETALLE_TITULO_OPCIONAL = 'Titulo opcional'; + TIPO_DETALLE_SUBTOTAL = 'Subtotal'; + TIPO_DETALLE_SALTO = 'Salto'; + TIPO_DETALLE_DESCUENTO = 'Descuento'; + CTE_DESC_SALTO = 'SALTO DE PAGINA >>'; + +type + TIntegerArray = array of Integer; + + IControllerDetallesBase = interface(ISujeto) + ['{F0B0E714-EC0D-4B6B-98B1-76F72F70B735}'] + + function GetTipo(ADataTable: IDAStronglyTypedDataTable; pPosicion: Integer): String; + procedure Clear(ADataTable: IDAStronglyTypedDataTable); + procedure Add(ADataTable: IDAStronglyTypedDataTable; TipoConcepto: Variant); + procedure Delete(ADataTable: IDAStronglyTypedDataTable; Posicion: TIntegerArray); + procedure Move(ADataTable: IDAStronglyTypedDataTable; Posicion: TIntegerArray; Posiciones: Integer); + procedure BeginUpdate(ADataTable: IDAStronglyTypedDataTable); + procedure EndUpdate(ADataTable: IDAStronglyTypedDataTable); + +// procedure Copy(SMExport: TSMExportToClipboard); +// procedure Paste; + + procedure ActualizarTotales(ADataTable: IDAStronglyTypedDataTable); + function DarTotalImporteTotal(ADataTable: IDAStronglyTypedDataTable): Double; + function LocalizarPosicion(ADataTable: IDAStronglyTypedDataTable; const APosicion: Integer): Boolean; + procedure Renumerar(DataTable: TDADataTable; LocalizaPosicion: Integer); + function DarListaTiposDetalle: TStringList; + procedure ValidarDetalles(ADataTable: IDAStronglyTypedDataTable); + procedure AsignarDescuento(ADataTable: IDAStronglyTypedDataTable; Posicion: TIntegerArray; ADescuento: Variant); + end; + + TControllerDetallesBase = class (TSujeto, IControllerDetallesBase) + private + fUpdateCount: Integer; + + function CalcularTotales(Modificar: boolean; DataTable: TDADataTable): Double; + + protected + procedure Renumerar(DataTable: TDADataTable; LocalizaPosicion: Integer); + function DesplazarNPosiciones(DataTable: TDADataTable; NumOrdenIni: Variant; NPosiciones: Variant): Integer; + procedure Mover(DataTable: TDADataTable; Posicion: Integer; NumPosiciones: Integer); + + //Si en los hijos existen campos a tener en cuenta se sobreescribira este metodo + procedure ValidarCampos(DataTable: TDADataTable); virtual; + + //Si sobreescribimos este mtodo podremos tener en cuenta otras columnas para el calculo del importe total de un concepto + function CalcularImporteTotalConcepto(DataTable: TDADataTable): Double; virtual; + procedure TratamientoDetalleConcepto(DataTable: TDADataTable); virtual; + procedure CalculoDetalleConcepto(DataTable: TDADataTable; var ImporteAcumulado : Double; var ImporteTotal : Double; const Opcional: Boolean); virtual; + procedure TratamientoDetalleSalto(DataTable: TDADataTable); virtual; + procedure CalculoDetalleSalto(DataTable: TDADataTable; var ImporteAcumulado : Double; var ImporteTotal : Double); virtual; + procedure TratamientoDetalleTitulo(DataTable: TDADataTable); virtual; + procedure CalculoDetalleTitulo(DataTable: TDADataTable; var ImporteAcumulado : Double; var ImporteTotal : Double); virtual; + procedure TratamientoDetalleTituloOpcional(DataTable: TDADataTable); virtual; + procedure CalculoDetalleTituloOpcional(DataTable: TDADataTable; var ImporteAcumulado : Double; var ImporteTotal : Double); virtual; + procedure TratamientoDetalleSubtotal(DataTable: TDADataTable); virtual; + procedure CalculoDetalleSubtotal(DataTable: TDADataTable; var ImporteAcumulado : Double; var ImporteTotal : Double); virtual; + procedure TratamientoDetalleDescuento(DataTable: TDADataTable); virtual; + procedure CalculoDetalleDescuento(DataTable: TDADataTable; var ImporteAcumulado : Double; var ImporteTotal : Double); virtual; + + //Si sobreescribimos este metodo es para continuar el CalcularTotales segun los tipos de concepto de los hijos + function CalcularTotalesHijos(Modificar: boolean; DataTable: TDADataTable; var ImporteAcumulado : Double; var ImporteTotal : Double): Double; virtual; + + public + constructor Create; override; + destructor Destroy; override; + + function GetTipo(ADataTable: IDAStronglyTypedDataTable; pPosicion: Integer): String; + procedure Clear(ADataTable: IDAStronglyTypedDataTable); + procedure Add(ADataTable: IDAStronglyTypedDataTable; TipoConcepto: Variant); virtual; + procedure Delete(ADataTable: IDAStronglyTypedDataTable; Posicion: TIntegerArray); virtual; + procedure Move(ADataTable: IDAStronglyTypedDataTable; Posicion: TIntegerArray; Posiciones: Integer); virtual; + procedure BeginUpdate(ADataTable: IDAStronglyTypedDataTable); + procedure EndUpdate(ADataTable: IDAStronglyTypedDataTable); + +// procedure Copy(SMExport: TSMExportToClipboard); +// procedure Paste; + + procedure ActualizarTotales(ADataTable: IDAStronglyTypedDataTable); + function DarTotalImporteTotal(ADataTable: IDAStronglyTypedDataTable): Double; + function DarListaTiposDetalle: TStringList; virtual; + function LocalizarPosicion(ADataTable: IDAStronglyTypedDataTable; const APosicion: Integer): Boolean; + + // Comprueba que todos los detalles del documento tengan un tipo_detalle asignado, + // adems de que los capitulos tengan su subtotal de cierre + procedure ValidarDetalles(ADataTable: IDAStronglyTypedDataTable); + procedure AsignarDescuento(ADataTable: IDAStronglyTypedDataTable; Posicion: TIntegerArray; ADescuento: Variant); virtual; + end; + + +implementation + +{ TControllerDetallesBase } + +uses + cxControls, SysUtils, DB, uDAInterfaces, Dialogs; + + +procedure TControllerDetallesBase.ActualizarTotales(ADataTable: IDAStronglyTypedDataTable); +begin + BeginUpdate(ADataTable); + try + CalcularTotales(True, ADataTable.DataTable); + finally + EndUpdate(ADataTable); + end; +end; + +procedure TControllerDetallesBase.Add(ADataTable: IDAStronglyTypedDataTable; TipoConcepto: Variant); +var + AuxNumOrden : Integer; + +begin + BeginUpdate(ADataTable); + try + with ADataTable do + begin + AuxNumOrden := desplazarNPosiciones(DataTable, DataTable.FieldByName(CAMPO_POSICION).AsVariant, 1); + + DataTable.Insert; + DataTable.FieldByName(CAMPO_POSICION).AsInteger := AuxNumOrden; + DataTable.FieldByName(CAMPO_TIPO).AsVariant := TipoConcepto; + DataTable.Post; + end; + finally + EndUpdate(ADataTable); + end; +end; + +procedure TControllerDetallesBase.AsignarDescuento(ADataTable: IDAStronglyTypedDataTable; Posicion: TIntegerArray; ADescuento: Variant); +var + i: integer; + AField: TDAField; + AsignarDtoPosicion: Integer; + +begin + if ADescuento >= 0 then + begin + AsignarDtoPosicion := 0; + AField := ADataTable.DataTable.FindField(CAMPO_POSICION); + if not Assigned(AField) then + raise Exception.Create('Campo ' + CAMPO_POSICION + ' no encontrado (AsignarDescuento)'); + + BeginUpdate(ADataTable); + try + with ADataTable do + begin + for i := 0 to High(POSICION) do + begin + DataTable.First; + AsignarDtoPosicion := POSICION[i]; + if DataTable.Locate(CAMPO_POSICION, AsignarDtoPosicion, []) then + begin + if (DataTable.FieldByName(CAMPO_TIPO).AsString = TIPO_DETALLE_CONCEPTO) then + begin + DataTable.Edit; + DataTable.FieldByName(CAMPO_DESCUENTO).AsVariant := ADescuento; + DataTable.Post; + end; + end; + end; + Renumerar(DataTable, AsignarDtoPosicion); + end; + finally + EndUpdate(ADataTable); + end; + end; +end; + +procedure TControllerDetallesBase.BeginUpdate(ADataTable: IDAStronglyTypedDataTable); +begin + ShowHourglassCursor; + Inc(fUpdateCount); + ADataTable.DataTable.DisableControls; +end; + +function TControllerDetallesBase.CalcularImporteTotalConcepto(DataTable: TDADataTable): Double; +begin + with DataTable do + Result := FieldByName(CAMPO_CANTIDAD).asFloat * FieldByName(CAMPO_IMPORTE_UNIDAD).AsFloat; +end; + +function TControllerDetallesBase.CalcularTotales(Modificar: boolean; DataTable: TDADataTable): Double; +{ +funcion que recalcula todos los detalles de la tabla pasada por parametro y devuelve +la cantidad total de los mismos +} +var + AuxPosicionIni : Integer; + AuxPosicion : Integer; + AuxImporteAcumulado : Double; + AuxImporteTotal : Double; + SemaforoOpcional: Boolean; + +begin + if (DataTable.State in dsEditModes) then + DataTable.Post; + + ValidarCampos(DataTable); + + DataTable.DisableControls; + + AuxPosicionIni := DataTable.FieldByName(CAMPO_POSICION).AsInteger; + AuxPosicion := 0; + AuxImporteAcumulado := 0; + AuxImporteTotal := 0; + SemaforoOpcional := False; + try + + DataTable.First; + while DataTable.Locate(CAMPO_POSICION, AuxPosicion, []) do + begin + //SALTOS DE LINEA + if (DataTable.FieldByName(CAMPO_TIPO).AsString = TIPO_DETALLE_SALTO) then + begin + if Modificar then + TratamientoDetalleSalto(DataTable); //Se podr sobreescribir para que se tengan en cuenta nuevos campos en hijos + CalculoDetalleSalto(DataTable, AuxImporteAcumulado, AuxImporteTotal); //Se podr sobreescribir para posibles nuevos calculos de los hijos + end + //TITULOS + else if (DataTable.FieldByName(CAMPO_TIPO).AsString = TIPO_DETALLE_TITULO) then + begin + SemaforoOpcional := False; + if Modificar then + TratamientoDetalleTitulo(DataTable); //Se podr sobreescribir para que se tengan en cuenta nuevos campos en hijos + CalculoDetalleTitulo(DataTable, AuxImporteAcumulado, AuxImporteTotal); //Se podr sobreescribir para posibles nuevos calculos de los hijos + end + //TITULOS OPCIONALES + else if (DataTable.FieldByName(CAMPO_TIPO).AsString = TIPO_DETALLE_TITULO_OPCIONAL) then + begin + SemaforoOpcional := True; + if Modificar then + TratamientoDetalleTituloOpcional(DataTable); //Se podr sobreescribir para que se tengan en cuenta nuevos campos en hijos + CalculoDetalleTituloOpcional(DataTable, AuxImporteAcumulado, AuxImporteTotal); //Se podr sobreescribir para posibles nuevos calculos de los hijos + end + //SUBTOTAL + else if (DataTable.FieldByName(CAMPO_TIPO).AsString = TIPO_DETALLE_SUBTOTAL) then + begin + if Modificar then + TratamientoDetalleSubtotal(DataTable); //Se podr sobreescribir para que se tengan en cuenta nuevos campos + CalculoDetalleSubtotal(DataTable, AuxImporteAcumulado, AuxImporteTotal); //Se podr sobreescribir para posibles nuevos calculos de los hijos + SemaforoOpcional := False; + end + //DESCUENTO DE CAPITULO + else if (DataTable.FieldByName(CAMPO_TIPO).AsString = TIPO_DETALLE_DESCUENTO) then + begin + if Modificar then + TratamientoDetalleDescuento(DataTable); //Se podr sobreescribir para que se tengan en cuenta nuevos campos + CalculoDetalleDescuento(DataTable, AuxImporteAcumulado, AuxImporteTotal); //Se podr sobreescribir para posibles nuevos calculos de los hijos + end + //CONCEPTOS + else if (DataTable.FieldByName(CAMPO_TIPO).AsString = TIPO_DETALLE_CONCEPTO) then + begin + if Modificar then + TratamientoDetalleConcepto(DataTable); //Se podr sobreescribir para que se tengan en cuenta nuevos campos + CalculoDetalleConcepto(DataTable, AuxImporteAcumulado, AuxImporteTotal, SemaforoOpcional); //Se podr sobreescribir para posibles nuevos calculos de los hijos + end + //HIJOS + else CalcularTotalesHijos(Modificar, DataTable, AuxImporteAcumulado, AuxImporteTotal); + + Inc(AuxPosicion); + DataTable.First; + end; + + finally + //Dejamos el puntero en la misma posicin que la que parti + DataTable.Locate(CAMPO_POSICION, AuxPosicionIni, []); + DataTable.EnableControls; + end; + + Result := AuxImporteTotal; +end; + +function TControllerDetallesBase.CalcularTotalesHijos(Modificar: boolean; DataTable: TDADataTable; var ImporteAcumulado : Double; var ImporteTotal : Double): Double; +begin +// + Result := 0; +end; + +procedure TControllerDetallesBase.CalculoDetalleConcepto(DataTable: TDADataTable; var ImporteAcumulado, ImporteTotal: Double; const Opcional: Boolean); +begin + with DataTable do + begin + ImporteAcumulado := ImporteAcumulado + FieldByName(CAMPO_IMPORTE_TOTAL).AsFloat; + if not Opcional then + ImporteTotal := ImporteTotal + FieldByName(CAMPO_IMPORTE_TOTAL).AsFloat; + end; +end; + +procedure TControllerDetallesBase.CalculoDetalleDescuento( + DataTable: TDADataTable; var ImporteAcumulado, ImporteTotal: Double); +{var + ImporteDto : Double; + Redondeado : Double;} +begin +//Este metodo calcula el descuento por capitulo que no se activa para tecsitel +{ with DataTable do + begin + if not Editing then Edit; + ImporteDto := (-1)*((ImporteTotal * DataTable.FieldByName(CAMPO_DESCUENTO).AsFloat) / 100); + + ImporteTotal := ImporteTotal + ImporteDto; + FieldByName(CAMPO_IMPORTE_TOTAL).AsFloat := ImporteTotal; + Post; + end; +} +end; + +procedure TControllerDetallesBase.CalculoDetalleSalto(DataTable: TDADataTable; var ImporteAcumulado, ImporteTotal: Double); +begin + with DataTable do + begin + if not Editing then Edit; + FieldByName(CAMPO_CANTIDAD).AsVariant := Null; + FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := Null; + FieldByName(CAMPO_IMPORTE_TOTAL).AsVariant := Null; + Post; + end; +end; + +procedure TControllerDetallesBase.CalculoDetalleSubtotal(DataTable: TDADataTable; var ImporteAcumulado, ImporteTotal: Double); +begin + with DataTable do + begin + if not Editing then Edit; + FieldByName(CAMPO_IMPORTE_TOTAL).AsFloat := ImporteAcumulado; + Post; + end; + ImporteAcumulado := 0; +end; + +procedure TControllerDetallesBase.CalculoDetalleTitulo(DataTable: TDADataTable; var ImporteAcumulado, ImporteTotal: Double); +begin +// +end; + +procedure TControllerDetallesBase.CalculoDetalleTituloOpcional( + DataTable: TDADataTable; var ImporteAcumulado, ImporteTotal: Double); +begin +// +end; + +procedure TControllerDetallesBase.Clear(ADataTable: IDAStronglyTypedDataTable); +begin +// +end; + +constructor TControllerDetallesBase.Create; +begin + inherited; +end; + +function TControllerDetallesBase.DarListaTiposDetalle: TStringList; +begin + Result := TStringList.Create; + Result.Values[TIPO_DETALLE_CONCEPTO] := TIPO_DETALLE_CONCEPTO; + Result.Values[TIPO_DETALLE_TITULO] := TIPO_DETALLE_TITULO; + Result.Values[TIPO_DETALLE_TITULO_OPCIONAL] := TIPO_DETALLE_TITULO_OPCIONAL; + Result.Values[TIPO_DETALLE_SUBTOTAL] := TIPO_DETALLE_SUBTOTAL; +// Result.Values[TIPO_DETALLE_DESCUENTO] := TIPO_DETALLE_DESCUENTO; +// Result.Values[TIPO_DETALLE_SALTO] := TIPO_DETALLE_SALTO; +end; + +function TControllerDetallesBase.DarTotalImporteTotal(ADataTable: IDAStronglyTypedDataTable): Double; +begin + Result := CalcularTotales(False, ADataTable.DataTable); +end; + +procedure TControllerDetallesBase.Delete(ADataTable: IDAStronglyTypedDataTable; Posicion: TIntegerArray); +var + i: integer; + AField: TDAField; + DeletePosicion: Integer; +begin + DeletePosicion := 0; + AField := ADataTable.DataTable.FindField(CAMPO_POSICION); + if not Assigned(AField) then + raise Exception.Create('Campo ' + CAMPO_POSICION + ' no encontrado (Delete)'); + + BeginUpdate(ADataTable); + try + with ADataTable do + begin + for i := 0 to High(POSICION) do + begin + DataTable.First; + DeletePosicion := POSICION[i]; + if DataTable.Locate(CAMPO_POSICION, DeletePosicion, []) then + DataTable.Delete; + end; + Renumerar(DataTable, DeletePosicion); + end; + finally + EndUpdate(ADataTable); + end; +end; + +function TControllerDetallesBase.DesplazarNPosiciones(DataTable: TDADataTable; NumOrdenIni: Variant; NPosiciones: Variant): Integer; +{ +Funcin que desplaza NPosiciones el numero de orden a partir del elemento con el +nmero de orden dado. Devuelve el numero de orden del primer elemento del hueco +generado +} +var + AuxNumOrden: Integer; + AuxNumPos: Integer; + AField: TDAField; +begin + + AField := DataTable.FindField(CAMPO_POSICION); + if not Assigned(AField) then + raise Exception.Create('Campo ' + CAMPO_POSICION + ' no encontrado (desplazarNPosiciones)'); + + if VarIsNull(NPosiciones) + then AuxNumPos := 1 + else AuxNumPos := NPosiciones; + + if VarIsNull(NumOrdenIni) + then AuxNumOrden := 0 + else AuxNumOrden := NumOrdenIni + 1; //Aadimos por abajo siempre + + Result := AuxNumOrden; + + with DataTable do + begin + First; + while not EOF do + begin + if (FieldByName(CAMPO_POSICION).AsInteger >= AuxNumOrden) then + begin + if not Editing then Edit; + FieldByName(CAMPO_POSICION).AsInteger := FieldByName(CAMPO_POSICION).AsInteger + AuxNumPos; + Post; + end; + Next; + end; + end; +end; + +destructor TControllerDetallesBase.Destroy; +begin + inherited; +end; + +procedure TControllerDetallesBase.EndUpdate(ADataTable: IDAStronglyTypedDataTable); +begin + Dec(fUpdateCount); + + if fUpdateCount = 0 then + begin + CalcularTotales(True, ADataTable.DataTable); + AvisarObservadores(ADataTable); + end; + + ADataTable.DataTable.EnableControls; + HideHourglassCursor; +end; + +function TControllerDetallesBase.getTipo(ADataTable: IDAStronglyTypedDataTable; pPosicion: Integer): String; +var + posIni: integer; + AField: TDAField; +begin + AField := ADataTable.DataTable.FindField(CAMPO_POSICION); + if not Assigned(AField) then + raise Exception.Create('Campo ' + CAMPO_POSICION + ' no encontrado (getTipo)'); + + Result := ''; + BeginUpdate(ADataTable); + try + with ADataTable do + begin + //Guardamos la posicion en la que estamos + posIni := DataTable.FieldByName(CAMPO_POSICION).AsInteger; + + DataTable.First; + if DataTable.Locate(CAMPO_POSICION, pPosicion, []) then + Result := DataTable.FieldByName(CAMPO_TIPO).AsString; + + //Volvemos a posicionar el puntero donde estaba + DataTable.First; + if not DataTable.Locate(CAMPO_POSICION, posIni, []) then + raise Exception.Create('La posicin ' + IntToStr(posIni) + ' no existe (getTipo)'); + end; + finally + EndUpdate(ADataTable); + end; +end; + +function TControllerDetallesBase.LocalizarPosicion( + ADataTable: IDAStronglyTypedDataTable; const APosicion: Integer): Boolean; +var + AField: TDAField; +begin + AField := ADataTable.DataTable.FindField(CAMPO_POSICION); + + if not Assigned(AField) then + raise Exception.Create('Campo ' + CAMPO_POSICION + ' no encontrado (LocalizarPosicion)'); + + with ADataTable.DataTable do + begin + DisableControls; + DisableEventHandlers; + ShowHourglassCursor; + try + First; + Result := Locate(CAMPO_POSICION, APosicion, []); + finally + HideHourglassCursor; + EnableEventHandlers; + EnableControls; + end; + end; +end; + +procedure TControllerDetallesBase.Move(ADataTable: IDAStronglyTypedDataTable; Posicion: TIntegerArray; Posiciones: Integer); +var + i:Integer; +begin + BeginUpdate(ADataTable); + try + with ADataTable do + begin + //Empezamos desde abajo + if Posiciones > 0 then + for i:= High(POSICION) downto 0 do + Mover(DataTable, POSICION[i], Posiciones) + else + //Empezamos desde arriba + for i:= 0 to High(POSICION) do + Mover(DataTable, POSICION[i], Posiciones); + end; + finally + EndUpdate(ADataTable); + end; +end; + +procedure TControllerDetallesBase.Mover(DataTable: TDADataTable; Posicion: Integer; NumPosiciones: Integer); +{ +procedimiento que desplaza el nmero de posiciones (NumPosiciones) pasados por parametro +a la posicion (Posicion) dada, en caso de ser negativo ser hacia arriba y positivo hacia +abajo +} +var + AuxOrden : Integer; + AuxID : Integer; + AField: TDAField; +begin + AField := DataTable.FindField(CAMPO_POSICION); + if not Assigned(AField) then + raise Exception.Create('Campo ' + CAMPO_POSICION + ' no encontrado (mover)'); + + AField := DataTable.FindField(CAMPO_ID); + if not Assigned(AField) then + raise Exception.Create('Campo ' + CAMPO_ID + ' no encontrado (mover)'); + + //Buscamos el elemento con la posicion pasada por parametro + DataTable.First; + if not DataTable.Locate(CAMPO_POSICION, Posicion, []) then + raise Exception.Create('Error, no se ha encontrado la POSICION [' + IntToStr(Posicion) + '] (mover)'); + + //Guardamos el id del elemento a cambiar de posicion y calculamos su nueva posicion + AuxID := DataTable.FieldByName(CAMPO_ID).AsInteger; + AuxOrden := Posicion + NumPosiciones; + + DataTable.First; + if DataTable.Locate(CAMPO_POSICION, AuxOrden, []) then + begin + if not DataTable.Editing then DataTable.Edit; + DataTable.FieldByName(CAMPO_POSICION).AsInteger := DataTable.FieldByName(CAMPO_POSICION).AsInteger - NumPosiciones; + + //Se hace dentro por si es el ultimo o el primero + DataTable.First; + if not DataTable.Locate(CAMPO_ID, AuxID, []) then + raise Exception.Create('Error, no se ha encontrado el ID [' + IntToStr(AuxID) + '] (mover)'); + + if not DataTable.Editing then DataTable.Edit; + DataTable.FieldByName(CAMPO_POSICION).AsInteger := AuxOrden; + + DataTable.Post; + end; + + //Colocamos el puntero en la posicin en la que estaba + DataTable.First; + DataTable.Locate(CAMPO_ID, AuxID, []); +end; + +procedure TControllerDetallesBase.Renumerar(DataTable: TDADataTable; LocalizaPosicion: Integer); +{ +procedimiento que renumera todos los conceptos de la tabla dada por parametro +} +var + i, j : Integer; + AField: TDAField; +begin + AField := DataTable.FindField(CAMPO_POSICION); + + if not Assigned(AField) then + raise Exception.Create('Campo ' + CAMPO_POSICION + ' no encontrado (renumerar)'); + + with DataTable do + begin + for i:=0 to RecordCount-1 do + begin + First; + if not Locate(CAMPO_POSICION, i, []) then + begin + j := i; + First; + while not Locate(CAMPO_POSICION, j, []) do + begin + Inc(j); + First; + end; + + if not Editing then Edit; + FieldByName(CAMPO_POSICION).AsInteger := i; + Post; + end; + end; + + //Posicionamos el puntero en la posicin dada por parametro + Locate(CAMPO_POSICION, LocalizaPosicion, []); + end; +end; + +procedure TControllerDetallesBase.TratamientoDetalleConcepto(DataTable: TDADataTable); +begin + with DataTable do + begin + if not Editing then Edit; + //Si alguno de los campos de calculo de total es nulo el total tambien ser nulo + if (VarIsNull(FieldByName(CAMPO_CANTIDAD).AsVariant) + or VarIsNull(FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant)) + then FieldByName(CAMPO_IMPORTE_TOTAL).AsVariant := Null + else FieldByName(CAMPO_IMPORTE_TOTAL).AsFloat := CalcularImporteTotalConcepto(DataTable); + Post; + end; +end; + +procedure TControllerDetallesBase.TratamientoDetalleDescuento( + DataTable: TDADataTable); +begin + with DataTable do + begin + if not Editing then Edit; + if (FieldByName(CAMPO_CONCEPTO).AsString = CTE_DESC_SALTO) then + FieldByName(CAMPO_CONCEPTO).AsVariant := Null; + FieldByName(CAMPO_CANTIDAD).AsVariant := Null; + FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := Null; + FieldByName(CAMPO_IMPORTE_TOTAL).AsVariant := Null; + Post; + end; +end; + +procedure TControllerDetallesBase.TratamientoDetalleSalto(DataTable: TDADataTable); +begin + with DataTable do + begin + if not Editing then Edit; + FieldByName(CAMPO_CONCEPTO).AsString := CTE_DESC_SALTO; + FieldByName(CAMPO_CANTIDAD).AsVariant := Null; + FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := Null; + FieldByName(CAMPO_IMPORTE_TOTAL).AsVariant := Null; + Post; + end; +end; + +procedure TControllerDetallesBase.TratamientoDetalleSubtotal(DataTable: TDADataTable); +begin + with DataTable do + begin + if not Editing then Edit; + if (FieldByName(CAMPO_CONCEPTO).AsString = CTE_DESC_SALTO) then + FieldByName(CAMPO_CONCEPTO).AsVariant := Null; + FieldByName(CAMPO_CANTIDAD).AsVariant := Null; + FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := Null; + Post; + end; +end; + +procedure TControllerDetallesBase.TratamientoDetalleTitulo(DataTable: TDADataTable); +begin + with DataTable do + begin + if not Editing then Edit; + if (FieldByName(CAMPO_CONCEPTO).AsString = CTE_DESC_SALTO) then + FieldByName(CAMPO_CONCEPTO).AsVariant := Null; + FieldByName(CAMPO_CANTIDAD).AsVariant := Null; + FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := Null; + FieldByName(CAMPO_IMPORTE_TOTAL).AsVariant := Null; + Post; + end; +end; + +procedure TControllerDetallesBase.TratamientoDetalleTituloOpcional(DataTable: TDADataTable); +begin + with DataTable do + begin + if not Editing then Edit; + if (FieldByName(CAMPO_CONCEPTO).AsString = CTE_DESC_SALTO) then + FieldByName(CAMPO_CONCEPTO).AsVariant := Null; + FieldByName(CAMPO_CANTIDAD).AsVariant := Null; + FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := Null; + FieldByName(CAMPO_IMPORTE_TOTAL).AsVariant := Null; + Post; + end; +end; + +procedure TControllerDetallesBase.ValidarCampos(DataTable: TDADataTable); +var + AField: TDAField; +begin + //Validamos la existencia de todos los campos necesarios + AField := DataTable.FindField(CAMPO_POSICION); + if not Assigned(AField) then + raise Exception.Create('Campo ' + CAMPO_POSICION + ' no encontrado (validarCampos)'); + AField := DataTable.FindField(CAMPO_TIPO); + if not Assigned(AField) then + raise Exception.Create('Campo ' + CAMPO_TIPO + ' no encontrado (validarCampos)'); + AField := DataTable.FindField(CAMPO_CANTIDAD); + if not Assigned(AField) then + raise Exception.Create('Campo ' + CAMPO_CANTIDAD + ' no encontrado (validarCampos)'); + AField := DataTable.FindField(CAMPO_IMPORTE_UNIDAD); + if not Assigned(AField) then + raise Exception.Create('Campo ' + CAMPO_IMPORTE_UNIDAD + ' no encontrado (validarCampos)'); + AField := DataTable.FindField(CAMPO_IMPORTE_TOTAL); + if not Assigned(AField) then + raise Exception.Create('Campo ' + CAMPO_IMPORTE_TOTAL + ' no encontrado (validarCampos)'); +end; + +procedure TControllerDetallesBase.ValidarDetalles(ADataTable: IDAStronglyTypedDataTable); +var + ATipoCampo : String; + bEnCapitulo : Boolean; + AuxPosicionIni : Integer; + AuxPosicion : Integer; +begin + bEnCapitulo := False; + ATipoCampo := ''; + + if (ADataTable.DataTable.State in dsEditModes) then + ADataTable.DataTable.Post; + + ValidarCampos(ADataTable.DataTable); + + AuxPosicionIni := ADataTable.DataTable.FieldByName(CAMPO_POSICION).AsInteger; + AuxPosicion := 0; + + BeginUpdate(ADataTable); + try + ADataTable.DataTable.First; + while ADataTable.DataTable.Locate(CAMPO_POSICION, AuxPosicion, []) do + begin + ATipoCampo := ADataTable.DataTable.FieldByName(CAMPO_TIPO).AsString; + + //Si la linea de concepto no tiene asignado el tipo de detalle, le asignamos nosotros como concepto + //para que no falle el calculo del documento + if (Length(ATipoCampo) = 0) then + begin + if not ADataTable.DataTable.Editing then + ADataTable.DataTable.Edit; + ADataTable.DataTable.FieldByName(CAMPO_TIPO).AsString := TIPO_DETALLE_CONCEPTO; + ADataTable.DataTable.Post; + end; + + if (ATipoCampo = TIPO_DETALLE_SUBTOTAL) and bEnCapitulo then + bEnCapitulo := False; + + if ((ATipoCampo = TIPO_DETALLE_TITULO) or (ATipoCampo = TIPO_DETALLE_TITULO_OPCIONAL)) then + begin + // Borramos cualquier valor que haya en las columnas de cantidad, importe, etc. + with ADataTable.DataTable do + begin + if not ADataTable.DataTable.Editing then + ADataTable.DataTable.Edit; + FieldByName(CAMPO_CANTIDAD).AsVariant := Null; + FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := Null; + FieldByName(CAMPO_IMPORTE_TOTAL).AsVariant := Null; + FieldByName(CAMPO_DESCUENTO).AsVariant := Null; + FieldByName(CAMPO_IMPORTE_PORTE).AsVariant := Null; + + if Assigned(FindField('UNIDAD_MEDIDA')) then + FieldByName('UNIDAD_MEDIDA').AsVariant := Null; + + ADataTable.DataTable.Post; + end; + + if bEnCapitulo then + begin + ADataTable.DataTable.First; + if ADataTable.DataTable.Locate(CAMPO_POSICION, AuxPosicion-1, []) then + begin + Add(ADataTable, TIPO_DETALLE_SUBTOTAL); + bEnCapitulo := False; + end; + end + else + bEnCapitulo := True; + end; + + Inc(AuxPosicion); + ADataTable.DataTable.First; + end; + + // Se ha acabado la tabla y queda algn captulo sin cerrar? + if bEnCapitulo then + if ADataTable.DataTable.Locate(CAMPO_POSICION, AuxPosicion-1, []) then + begin + Add(ADataTable, TIPO_DETALLE_SUBTOTAL); + bEnCapitulo := False; + end; + finally + //Dejamos el puntero en la misma posicin que la que parti + ADataTable.DataTable.Locate(CAMPO_POSICION, AuxPosicionIni, []); + EndUpdate(ADataTable); + end; +end; + +end. diff --git a/Source/Base/Ctltortf.dcu b/Source/Base/Ctltortf.dcu new file mode 100644 index 0000000..d63c4f3 Binary files /dev/null and b/Source/Base/Ctltortf.dcu differ diff --git a/Source/Base/FactuGES_Intf.dcu b/Source/Base/FactuGES_Intf.dcu new file mode 100644 index 0000000..7312058 Binary files /dev/null and b/Source/Base/FactuGES_Intf.dcu differ diff --git a/Source/Base/MidasSpeedFix.dcu b/Source/Base/MidasSpeedFix.dcu new file mode 100644 index 0000000..64d1406 Binary files /dev/null and b/Source/Base/MidasSpeedFix.dcu differ diff --git a/Source/Base/Utiles/ClassRegistry/uClassRegistryUtils.dcu b/Source/Base/Utiles/ClassRegistry/uClassRegistryUtils.dcu new file mode 100644 index 0000000..9576483 Binary files /dev/null and b/Source/Base/Utiles/ClassRegistry/uClassRegistryUtils.dcu differ diff --git a/Source/Base/Utiles/ClassRegistry/uClassRegistryUtils.pas b/Source/Base/Utiles/ClassRegistry/uClassRegistryUtils.pas new file mode 100644 index 0000000..d7b679d --- /dev/null +++ b/Source/Base/Utiles/ClassRegistry/uClassRegistryUtils.pas @@ -0,0 +1,336 @@ +unit uClassRegistryUtils; + +interface + +uses + Classes, SysUtils, Forms, uGUIBase; + +type + IClassRegistry = Interface + ['{FD23C946-4103-4C67-9C3F-644B52826833}'] + procedure RegisterClass( aClass: TClass; const aDisplayname: String = ''); + procedure RegisterClasses( const aClasses: array of TClass; + const aDisplaynames: array of String ); + procedure UnRegisterClass( aClass: TClass ); + function FindClass( const aClassOrDisplayname: String ): Tclass; + function IsClassRegistered( aClass: TClass ): Boolean; overload; + function IsClassRegistered( const aDisplayname: String ): Boolean; overload; + procedure GetRegisteredClasses( aList: TStrings; aMinClass: TClass = nil); + function CreateObject( const aClassOrDisplayname: String ): TObject; + end; + + IComponentRegistry = Interface( IClassRegistry ) + ['{04BAA01F-9AF4-4E60-9922-641E127A35C2}'] + function CreateComponent( const aClassOrDisplayname: String; + aOwner:TComponent = nil ): TComponent; + end; + + IFormRegistry = Interface( IComponentRegistry ) + ['{28E3BF72-1378-4136-B1FB-027FBB8FE99B}'] + function CreateForm( const aClassOrDisplayname: String; + aOwner: TComponent = nil ): TForm; + end; + + IDataModuleRegistry = Interface( IComponentRegistry ) + ['{9D8D1D23-6A5C-4351-9393-093CD8B76788}'] + function CreateDatamodule( const aClassOrDisplayname: String; + aOwner: TComponent = nil ): TDatamodule; + end; + + IReportRegistry = Interface( IComponentRegistry ) + ['{49D3C8D5-8FEE-4F15-A6D2-51CB1DB29F8D}'] + function CreateReport( const aClassOrDisplayname: String; + aOwner: TComponent = nil ): TInterfacedObject; + end; + + TClassRegistry = class( TInterfacedObject, IClassRegistry ) + private + FList: TStringlist; + FMinAcceptableClass: TClass; + + function FindClassByClassname( const aClassname: String ): Tclass; + function FindClassByDisplayname( const aDisplayname: String ): TClass; + function IsClassAcceptable( aClass: TClass ): Boolean; + function GetClasses(index: integer): TClass; + function GetCount: Integer; + protected + procedure ValidateMinAcceptableClass(var aMinAcceptableClass: TClass ); virtual; + procedure RegisterClass( aClass: TClass; const aDisplayname: String = ''); + procedure RegisterClasses( const aClasses: array of TClass; + const aDisplaynames: array of String ); + procedure UnRegisterClass( aClass: TClass ); + function FindClass( const aClassOrDisplayname: String ): Tclass; + function IsClassRegistered( aClass: TClass ): Boolean; overload; + function IsClassRegistered( const aDisplayname: String ): Boolean; overload; + procedure GetRegisteredClasses( aList: TStrings; aMinClass: TClass = nil); + function CreateObject( const aClassOrDisplayname: String ): TObject; + property MinAcceptableClass: TClass read FMinAcceptableClass; + property List: TStringlist read FList; + property Count: Integer read GetCount; + property Classes[ index: integer ]: TClass read GetClasses; + public + constructor Create( minAcceptableClass: TClass = nil ); virtual; + destructor Destroy; override; + end; + + TComponentRegistry = class( TClassRegistry, IComponentRegistry ) + protected + procedure ValidateMinAcceptableClass(var aMinAcceptableClass: TClass ); override; + function CreateComponent( const aClassOrDisplayname: String; + aOwner: TComponent = nil ): TComponent; + end; + + TFormRegistry = class( TComponentRegistry, IFormRegistry ) + protected + procedure ValidateMinAcceptableClass(var aMinAcceptableClass: TClass ); override; + function CreateForm( const aClassOrDisplayname: String; + aOwner: TComponent = nil ): TForm; + end; + + TDataModuleRegistry = class( TComponentRegistry, IDataModuleRegistry ) + protected + procedure ValidateMinAcceptableClass(var aMinAcceptableClass: TClass); override; + function CreateDatamodule( const aClassOrDisplayname: String; + aOwner: TComponent = nil ): TDatamodule; + end; + + TReportRegistry = class( TComponentRegistry, IReportRegistry ) + protected + procedure ValidateMinAcceptableClass(var aMinAcceptableClass: TClass ); override; + function CreateReport( const aClassOrDisplayname: String; + aOwner: TComponent = nil ): TInterfacedObject; + end; + + EClassRegistryError = class( Exception ); + +implementation + +{ TClassRegistry } + +ResourceString + eClassnotFound = 'Class "%s" was not found in the registry.'; + +constructor TClassRegistry.Create(minAcceptableClass: TClass); +begin + inherited Create; + FList := Tstringlist.Create; + ValidateMinAcceptableClass( minAcceptableClass ); + FMinAcceptableClass := minAcceptableClass; +end; + +function TClassRegistry.CreateObject( + const aClassOrDisplayname: String): TObject; +begin + Result := FindClass( aClassOrDisplayname ).Create; +end; + +destructor TClassRegistry.Destroy; +begin + Flist.Free; + inherited; +end; + +function TClassRegistry.FindClass( + const aClassOrDisplayname: String): Tclass; +begin + Result := FindClassByDisplayname( aClassOrDisplayname ); + If not Assigned( Result ) Then + Result := FindClassByClassname( aClassOrDisplayname ); + If not Assigned( Result ) Then + raise EClassRegistryError.CreateFmt + ( eClassnotFound, [ aClassOrDisplayname ] ); +end; + +function TClassRegistry.FindClassByClassname( + const aClassname: String): Tclass; +var + i: Integer; +begin + for i:= 0 to count-1 do begin + Result := classes[i]; + If Result.ClassNameIs( aClassname ) Then + Exit; + end; + Result := nil; +end; + +function TClassRegistry.FindClassByDisplayname( + const aDisplayname: String): TClass; +var + i: Integer; +begin + i:= List.IndexOf( aDisplayname ); + If i >= 0 Then + Result := Classes[i] + Else + Result := nil; +end; + +function TClassRegistry.GetClasses(index: integer): TClass; +begin + Result := TClass( List.Objects[index] ); +end; + +function TClassRegistry.GetCount: Integer; +begin + Result := List.Count; +end; + +procedure TClassRegistry.GetRegisteredClasses(aList: TStrings; + aMinClass: TClass); +var + i: Integer; + aClass: TClass; +begin + Assert( Assigned( aList )); + aList.BeginUpdate; + try + aList.Clear; + If not Assigned( aMinClass ) Then + aList.Assign( List ) + else begin + For i:= 0 To Count-1 Do Begin + aClass := Classes[i]; + If aClass.InheritsFrom( aMinClass ) Then + aList.AddObject( List[i], TObject( aClass )); + end; + end; + finally + aList.EndUpdate + end; +end; + +function TClassRegistry.IsClassAcceptable(aClass: TClass): Boolean; +begin + Result := Assigned( aClass ) and + aClass.InheritsFrom( MinAcceptableClass ); +end; + +function TClassRegistry.IsClassRegistered(const aDisplayname: String): Boolean; +begin + Result := List.IndexOf(aDisplayname) >= 0; +end; + +function TClassRegistry.IsClassRegistered(aClass: TClass): Boolean; +begin + Result := List.IndexOfObject( TObject( aClass )) >= 0; +end; + +procedure TClassRegistry.RegisterClass(aClass: TClass; + const aDisplayname: String); +begin + Assert( Assigned( aClass ), 'Cannot register Nil class' ); + If aDisplayname = '' Then + RegisterClass( aClass, aClass.Classname ) + else begin + Assert( IsClassAcceptable( aClass ), + format('Cannot register %s since it does not inherit from %s', + [aclass.classname, MinAcceptableClass.classname] )); + Assert( not IsClassRegistered( aClass ), + Format('Class %s is already registered.', [aClass.Classname])); + List.AddObject( aDisplayname, TObject( aClass )); + end; +end; + +procedure TClassRegistry.RegisterClasses(const aClasses: array of TClass; + const aDisplaynames: array of String); +var + i: Integer; +begin + Assert( High( aClasses ) = High( aDisplaynames ), + 'Size of both parameter arrays has to be the same.' ); + for i:= Low( aClasses ) to High( aClasses ) do + RegisterClass( aClasses[i], aDisplaynames[i] ); +end; + +procedure TClassRegistry.UnRegisterClass(aClass: TClass); +var + i: Integer; +begin + i:= List.IndexOfObject( TObject( aClass )); + If i >= 0 Then + List.Delete( i ); + // does not consider attempt to unregister a class that is not + // registered as an error. +end; + +procedure TClassRegistry.ValidateMinAcceptableClass( + var aMinAcceptableClass: TClass); +begin + If not Assigned( aMinAcceptableClass ) Then + aMinAcceptableClass := TObject; +end; + +{ TComponentRegistry } + +function TComponentRegistry.CreateComponent( + const aClassOrDisplayname: String; aOwner: TComponent): TComponent; +var + aClass: TComponentClass; +begin + aClass := TComponentClass( FindClass( aClassOrDisplayname )); + Result := aClass.Create( aOwner ); +end; + +procedure TComponentRegistry.ValidateMinAcceptableClass( + var aMinAcceptableClass: TClass); +begin + inherited; + If not aMinAcceptableClass.InheritsFrom( TComponent ) + Then + aMinAcceptableClass := TComponent; +end; + +{ TFormRegistry } + +function TFormRegistry.CreateForm(const aClassOrDisplayname: String; + aOwner: TComponent): TForm; +begin + Result := CreateComponent( aClassOrDisplayname, aOwner ) As TForm; +end; + +procedure TFormRegistry.ValidateMinAcceptableClass( + var aMinAcceptableClass: TClass); +begin + inherited; + If not aMinAcceptableClass.InheritsFrom( TForm ) + Then + aMinAcceptableClass := TForm; +end; + +{ TDataModuleRegistry } + +function TDataModuleRegistry.CreateDatamodule( + const aClassOrDisplayname: String; aOwner: TComponent): TDatamodule; +begin + Result := CreateComponent( aClassOrDisplayname, aOwner ) As TDatamodule; +end; + +procedure TDataModuleRegistry.ValidateMinAcceptableClass( + var aMinAcceptableClass: TClass); +begin + inherited; + If not aMinAcceptableClass.InheritsFrom( TDatamodule ) + Then + aMinAcceptableClass := TDatamodule; +end; + +{ TReportRegistry } + +function TReportRegistry.CreateReport(const aClassOrDisplayname: String; + aOwner: TComponent): TInterfacedObject; +begin + Result := CreateObject( aClassOrDisplayname) As TInterfacedObject; +// Result := CreateComponent( aClassOrDisplayname, aOwner ) As TInterfacedObject; +end; + +procedure TReportRegistry.ValidateMinAcceptableClass( + var aMinAcceptableClass: TClass); +begin + inherited; + If not aMinAcceptableClass.InheritsFrom( TInterfacedObject ) + Then + aMinAcceptableClass := TInterfacedObject; +end; + +end. diff --git a/Source/Base/Utiles/ClassRegistry/uEditorRegistryUtils.dcu b/Source/Base/Utiles/ClassRegistry/uEditorRegistryUtils.dcu new file mode 100644 index 0000000..66b67f0 Binary files /dev/null and b/Source/Base/Utiles/ClassRegistry/uEditorRegistryUtils.dcu differ diff --git a/Source/Base/Utiles/ClassRegistry/uEditorRegistryUtils.pas b/Source/Base/Utiles/ClassRegistry/uEditorRegistryUtils.pas new file mode 100644 index 0000000..0dd7333 --- /dev/null +++ b/Source/Base/Utiles/ClassRegistry/uEditorRegistryUtils.pas @@ -0,0 +1,81 @@ +unit uEditorRegistryUtils; + +interface + +uses + Classes, Forms, uClassRegistryUtils, uCustomEditor; + +type +{ + IEditorRegistry = interface (IComponentRegistry) + 22F14B82-AC61-4987-847E-AF8513DE2A10 + function CreateEditor(const aClassOrDisplayname: String; + aOwner: TComponent = NIL): TCustomEditor; + end; + + TEditorRegistry = class(TComponentRegistry, IEditorRegistry) + protected + procedure ValidateMinAcceptableClass(var aMinAcceptableClass: TClass); override; + function CreateEditor(const aClassOrDisplayname: String; + aOwner: TComponent = nil): TCustomEditor; + end; +} + + IEditorRegistry = interface (IFormRegistry) + ['{F6AC050F-5547-4E1F-AA44-DA0D06EDA4D7}'] + function CreateEditor(const aClassOrDisplayname: String; + aOwner: TComponent = NIL): TForm; + end; + + TEditorRegistry = class(TFormRegistry, IEditorRegistry) + protected + function CreateEditor(const aClassOrDisplayname: String; + aOwner: TComponent = nil): TForm; + end; + +function CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; + +var + EditorRegistry : IEditorRegistry; + +implementation + +uses + SysUtils, cxControls; + +function CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; +begin + ShowHourglassCursor; + try + Result := Supports(EditorRegistry.CreateEditor(AName, Application), IID, Intf); + finally + HideHourglassCursor; + end; +end; + + +{ TEditorRegistry } + +function TEditorRegistry.CreateEditor(const aClassOrDisplayname: String; + aOwner: TComponent): TForm; +begin + if not Assigned(AOwner) then + AOwner := Application; + Result := CreateComponent( aClassOrDisplayname, aOwner ) as TForm; +end; + +{procedure TEditorRegistry.ValidateMinAcceptableClass( + var aMinAcceptableClass: TClass); +begin + inherited; + if not aMinAcceptableClass.InheritsFrom(TCustomEditor) then + aMinAcceptableClass := TCustomEditor; +end;} + +initialization + EditorRegistry := TEditorRegistry.Create; + +finalization + EditorRegistry := NIL; + +end. diff --git a/Source/Base/Utiles/ClassRegistry/uInformeRegistryUtils.dcu b/Source/Base/Utiles/ClassRegistry/uInformeRegistryUtils.dcu new file mode 100644 index 0000000..88ad0fb Binary files /dev/null and b/Source/Base/Utiles/ClassRegistry/uInformeRegistryUtils.dcu differ diff --git a/Source/Base/Utiles/ClassRegistry/uInformeRegistryUtils.pas b/Source/Base/Utiles/ClassRegistry/uInformeRegistryUtils.pas new file mode 100644 index 0000000..72b6e90 --- /dev/null +++ b/Source/Base/Utiles/ClassRegistry/uInformeRegistryUtils.pas @@ -0,0 +1,59 @@ +unit uInformeRegistryUtils; + +interface + +uses + Classes, Forms, uClassRegistryUtils; + +type + IInformeRegistry = interface (IReportRegistry) + ['{F6AC050F-5547-4E1F-AA44-DA0D06EDA4D7}'] + function CreateInforme(const aClassOrDisplayname: String; + aOwner: TComponent = NIL): TInterfacedObject; + end; + + TInformeRegistry = class(TReportRegistry, IInformeRegistry) + protected + function CreateInforme(const aClassOrDisplayname: String; + aOwner: TComponent = nil): TInterfacedObject; + end; + +function CreateInforme(const AName: String; const IID: TGUID; out Intf): Boolean; + +var + InformeRegistry : IInformeRegistry; + +implementation + +uses + SysUtils, cxControls; + +function CreateInforme(const AName: String; const IID: TGUID; out Intf): Boolean; +begin + ShowHourglassCursor; + try + Result := Supports(InformeRegistry.CreateInforme(AName, Application), IID, Intf); + finally + HideHourglassCursor; + end; +end; + + +{ TInformeRegistry } + +function TInformeRegistry.CreateInforme(const aClassOrDisplayname: String; + aOwner: TComponent): TInterfacedObject; +begin +{ if not Assigned(AOwner) then + AOwner := Application;} + Result := CreateObject( aClassOrDisplayname) as TInterfacedObject; +end; + + +initialization + InformeRegistry := TInformeRegistry.Create; + +finalization + InformeRegistry := NIL; + +end. diff --git a/Source/Base/Utiles/ClassRegistry/uViewRegistryUtils.dcu b/Source/Base/Utiles/ClassRegistry/uViewRegistryUtils.dcu new file mode 100644 index 0000000..200cb92 Binary files /dev/null and b/Source/Base/Utiles/ClassRegistry/uViewRegistryUtils.dcu differ diff --git a/Source/Base/Utiles/ClassRegistry/uViewRegistryUtils.pas b/Source/Base/Utiles/ClassRegistry/uViewRegistryUtils.pas new file mode 100644 index 0000000..458a681 --- /dev/null +++ b/Source/Base/Utiles/ClassRegistry/uViewRegistryUtils.pas @@ -0,0 +1,50 @@ +unit uViewRegistryUtils; + +interface + +uses + Classes, Forms, uClassRegistryUtils, uCustomView; + +type + IViewRegistry = interface (IComponentRegistry) + ['{F49AE52F-47EC-42AF-8365-A09270E4B45D}'] + function CreateView(const aClassOrDisplayname: String; + aOwner: TComponent = nil): TCustomView; + end; + + + TViewRegistry = class(TComponentRegistry, IViewRegistry) + protected + procedure ValidateMinAcceptableClass(var aMinAcceptableClass: TClass); override; + function CreateView( const aClassOrDisplayname: String; + aOwner: TComponent = nil ): TCustomView; + end; + +var + ViewRegistry : IViewRegistry; + +implementation + +{ TViewRegistry } + +function TViewRegistry.CreateView(const aClassOrDisplayname: String; + aOwner: TComponent): TCustomView; +begin + Result := CreateComponent( aClassOrDisplayname, aOwner ) as TCustomView; +end; + +procedure TViewRegistry.ValidateMinAcceptableClass( + var aMinAcceptableClass: TClass); +begin + inherited; + if not aMinAcceptableClass.InheritsFrom(TCustomView) then + aMinAcceptableClass := TCustomView; +end; + +initialization + ViewRegistry := TViewRegistry.Create; + +finalization + ViewRegistry := NIL; + +end. diff --git a/Source/Base/Utiles/ClipboardUtils.dcu b/Source/Base/Utiles/ClipboardUtils.dcu new file mode 100644 index 0000000..c1f2c80 Binary files /dev/null and b/Source/Base/Utiles/ClipboardUtils.dcu differ diff --git a/Source/Base/Utiles/ClipboardUtils.pas b/Source/Base/Utiles/ClipboardUtils.pas new file mode 100644 index 0000000..856d9b4 --- /dev/null +++ b/Source/Base/Utiles/ClipboardUtils.pas @@ -0,0 +1,148 @@ +{+------------------------------------------------------------ + | Unit ClipboardUtils + | + | Version: 1.1 Created: 05/05/96, 12:56:57 + | Last Modified: 18.3.2001 + | Author : P. Below + | Project: Common Utilities + | Description: + | Routines to copy string lists and stream to and + | from the clipboard. + +------------------------------------------------------------} +Unit ClipboardUtils; + +interface + +Uses Classes; + + Procedure CopyStringsToClipboard( fmt: Cardinal; S: TStrings ); + Procedure CopyStreamToClipboard( fmt: Cardinal; S: TStream ); + Procedure CopyStringsFromClipboard( fmt: Cardinal; S: TStrings ); + Procedure CopyStreamFromClipboard( fmt: Cardinal; S: TStream ); + Function GetClipFmtname( fmt: Word ): String; + +Implementation + +Uses WinTypes, WinProcs, SysUtils, Clipbrd; + +Procedure CopyStringsToClipboard( fmt: Cardinal; S: TStrings ); + Var + MemStr: TMemoryStream; + Begin + MemStr := TMemoryStream.Create; + try + S.SaveToStream(MemStr); + CopyStreamToClipboard( fmt, MemStr ); + finally + MemStr.Free; + end; + End; { CopyStringsToClipboard } + +Procedure CopyStreamToClipboard( fmt: Cardinal; S: TStream ); + Var + hMem: THandle; + pMem: Pointer; + Begin + S.Position := 0; + hMem := GlobalAlloc( GHND or GMEM_DDESHARE, S.Size ); + If hMem <> 0 Then Begin + pMem := GlobalLock( hMem ); + If pMem <> Nil Then Begin + try + S.Read( pMem^, S.Size ); + S.Position := 0; + finally + GlobalUnlock( hMem ); + end; + Clipboard.Open; + try + Clipboard.SetAsHandle( fmt, hMem ); + finally + Clipboard.Close; + end; + End { If } + Else Begin + GlobalFree( hMem ); + OutOfMemoryError; + End; + End { If } + Else + OutOfMemoryError; + End; { CopyStreamToClipboard } + +Procedure CopyStringsFromClipboard( fmt: Cardinal; S: TStrings ); + Var + MemStr: TMemoryStream; + Begin + MemStr:= TMemoryStream.Create; + try + CopyStreamFromClipboard( fmt, MemStr ); + MemStr.Position := 0; + S.LoadFromStream( MemStr ); + finally + MemStr.Free; + end; + End; { CopyStringsFromClipboard } + +Procedure CopyStreamFromClipboard( fmt: Cardinal; S: TStream ); + Var + hMem: THandle; + pMem: Pointer; + Begin + hMem := Clipboard.GetAsHandle( fmt ); + If hMem <> 0 Then Begin + pMem := GlobalLock( hMem ); + If pMem <> Nil Then Begin + try + S.Write( pMem^, GlobalSize( hMem )); + S.Position := 0; + finally + GlobalUnlock( hMem ); + end; + End { If } + Else + raise Exception.Create( + 'CopyStreamFromClipboard: could not lock global handle '+ + 'obtained from clipboard!'); + End; { If } + End; { CopyStreamFromClipboard } + +Function GetClipFmtname( fmt: Word ): String; +Var + buf: Array [0..60] of Char; +Begin + If GetclipboardFormatName( fmt, buf, Pred(Sizeof(buf))) <> 0 Then + Result := StrPas(buf) + Else + Case fmt of + 1: Result := 'CF_TEXT'; + 2: Result := 'CF_BITMAP'; + 3: Result := 'CF_METAFILEPICT'; + 4: Result := 'CF_SYLK'; + 5: Result := 'CF_DIF'; + 6: Result := 'CF_TIFF'; + 7: Result := 'CF_OEMTEXT'; + 8: Result := 'CF_DIB'; + 9: Result := 'CF_PALETTE'; + 10: Result := 'CF_PENDATA'; + 11: Result := 'CF_RIFF'; + 12: Result := 'CF_WAVE'; + 13: Result := 'CF_UNICODETEXT'; + 14: Result := 'CF_ENHMETAFILE'; + 15: Result := 'CF_HDROP (Win 95)'; + 16: Result := 'CF_LOCALE (Win 95)'; + 17: Result := 'CF_MAX (Win 95)'; + $0080: Result := 'CF_OWNERDISPLAY'; + $0081: Result := 'CF_DSPTEXT'; + $0082: Result := 'CF_DSPBITMAP'; + $0083: Result := 'CF_DSPMETAFILEPICT'; + $008E: Result := 'CF_DSPENHMETAFILE'; + $0200..$02FF: Result := 'private format'; + $0300..$03FF: Result := 'GDI object'; + Else + Result := 'unknown format'; + End; {Case} +End; + + +End { Unit ClipboardUtils }. diff --git a/Source/Base/Utiles/Ctltortf.dcu b/Source/Base/Utiles/Ctltortf.dcu new file mode 100644 index 0000000..7862682 Binary files /dev/null and b/Source/Base/Utiles/Ctltortf.dcu differ diff --git a/Source/Base/Utiles/Ctltortf.pas b/Source/Base/Utiles/Ctltortf.pas new file mode 100644 index 0000000..8add5b6 --- /dev/null +++ b/Source/Base/Utiles/Ctltortf.pas @@ -0,0 +1,582 @@ +{*************************************************************} +{ Delphi Control to RTF Conversion VCL } +{ Version: 1.0 } +{ Author: K. Nishita } +{ E-Mail: info@nishita.com } +{ Home Page: http://nishita.com } +{ Created: 3/1/2000 } +{ Type: Freeware } +{ Legal: Copyright (c) 1999 by K. Nishita } +{*************************************************************} +{ This component convert Delphi grid, edit, listbox, memo, } +{ and label to Rich Text Format. } +{*************************************************************} +{ Please see example program for more information. } +{*************************************************************} +{ IMPORTANT NOTE: } +{ This software is provided 'as-is', without any express or } +{ implied warranty. In no event will the author be held } +{ liable for any damages arising from the use of this } +{ software. } +{ Permission is granted to anyone to use this software for } +{ any purpose, including commercial applications, and to } +{ alter it and redistribute it freely, subject to the } +{ following restrictions: } +{ 1. The origin of this software must not be misrepresented, } +{ you must not claim that you wrote the original software. } +{ If you use this software in a product, an acknowledgment } +{ in the product documentation would be appreciated but is } +{ not required. } +{ 2. Altered source versions must be plainly marked as such, } +{ and must not be misrepresented as being the original } +{ software. } +{ 3. This notice may not be removed or altered from any } +{ source distribution. } +{ 4. You must register this software by visiting } +{ http://nishita.com. } +{*************************************************************} + +unit CtlToRTF; + +interface + +uses + SysUtils, {$IFDEF WIN32} Windows, {$ELSE} WinTypes, WinProcs, {$ENDIF} Messages, Classes, Graphics, Controls, + StdCtrls, ExtCtrls, Grids, Forms, cxGridTableView; + +type + TCtrlToRTF = class(TComponent) + private + { Private declarations } + RTF: TMemoryStream; + FontTable: TStringList; + procedure StreamWriteStr(var ms: TMemoryStream; s: string); + function GetRTFFontTableName(FontName: string): string; + function GetRTFFontAttrib(Style: TFontStyles): string; + function GetRTFFontSize(Size: Integer): string; + function GetRTFAlignment(Alignment: TAlignment): string; + function GetRTFFontColorTableName(Color: TColor): string; + function GetRTF: String; + + protected + { Protected declarations } + public + { Public declarations } + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure CreateRTFHeader; + procedure AddFontToTable(Font: TFont); + procedure ImageToRTF(Image: TImage; Alignment: TAlignment); + procedure MemoToRTF(Memo: TMemo); + procedure ListBoxToRTF(pList: TListBox); + procedure StringListToRTF(pStringList: TStringList; Font: TFont; Alignment: TAlignment); + procedure StringToRTF(pString: String; Font: TFont; Alignment: TAlignment); + procedure TextBufToRTF(TextBuf: pointer; size: word; Font: TFont; Alignment: TAlignment); + procedure LabelToRTF(pLabel: TLabel); + procedure EditToRTF(pEdit: TEdit); + procedure GridToRTF(Grid: TStringGrid); + procedure cxGridViewToRTF(cxGridView: TcxGridTableView); + procedure SaveToFile(pFileName: String); + published + property RTFText: String read GetRTF; + end; + + procedure Register; + +implementation + +//{$IFDEF WIN32} +// {$R *.D32} +//{$ELSE} +// {$R *.D16} +//{$ENDIF} + +constructor TCtrlToRTF.Create(AOwner: TComponent); +begin + inherited Create(AOwner); + RTF := TMemoryStream.Create; + FontTable := TStringList.Create; +end; + +destructor TCtrlToRTF.Destroy; +begin + RTF.Free; + FontTable.Free; + inherited Destroy; +end; + +procedure TCtrlToRTF.CreateRTFHeader; +var i: Integer; +begin + StreamWriteStr(RTF, '{\rtf1\ansi\ansicpg1252\deff0\deftab720'); + StreamWriteStr(RTF, '{\fonttbl'); + for i := 0 to FontTable.count - 1 do + StreamWriteStr(RTF, FontTable.Strings[i]); + StreamWriteStr(RTF, '}'); + StreamWriteStr(RTF, '{\colortbl'); + StreamWriteStr(RTF, '\red0\green0\blue0;'); {Black} + StreamWriteStr(RTF, '\red128\green0\blue0;'); {Maroon} + StreamWriteStr(RTF, '\red0\green128\blue0;'); {Green} + StreamWriteStr(RTF, '\red128\green128\blue0;'); {Olive} + StreamWriteStr(RTF, '\red0\green0\blue128;'); {Navy} + StreamWriteStr(RTF, '\red128\green0\blue128;'); {Purple} + StreamWriteStr(RTF, '\red0\green128\blue128;'); {Teal} + StreamWriteStr(RTF, '\red128\green128\blue128;'); {Gray} + StreamWriteStr(RTF, '\red192\green192\blue192;'); {Silver} + StreamWriteStr(RTF, '\red255\green0\blue0;'); {Red} + StreamWriteStr(RTF, '\red0\green255\blue0;'); {Lime} + StreamWriteStr(RTF, '\red255\green255\blue0;'); {Yellow} + StreamWriteStr(RTF, '\red0\green0\blue255;'); {Blue} + StreamWriteStr(RTF, '\red255\green0\blue255;'); {Fuchsia} + StreamWriteStr(RTF, '\red0\green255\blue255;'); {Aqua} + StreamWriteStr(RTF, '\red255\green255\blue255;'); {White} + StreamWriteStr(RTF, '}'); +end; + +procedure TCtrlToRTF.cxGridViewToRTF(cxGridView: TcxGridTableView); +var i, j: Integer; + Temp: double; + FontColor, FontAttrib, FontSize, FontName: String; +begin + {FontColor:=GetRTFFontColorTableName(cxGridView.Font.Color); + FontSize:=GetRTFFontSize(cxGridView.Font.Size); + FontAttrib:=GetRTFFontAttrib(cxGridView.Font.Style); + FontName:=GetRTFFontTableName(cxGridView.Font.Name);} + + CreateRTFHeader; + + FontColor := GetRTFFontColorTableName(Windows.GetSysColor(COLOR_BTNTEXT)); + FontSize := GetRTFFontSize(8); + FontAttrib := GetRTFFontAttrib([]); + FontName := GetRTFFontTableName('Tahoma'); + + + StreamWriteStr(RTF, '\par \pard\plain\cgrid'); + StreamWriteStr(RTF, '{\stylesheet{\nowidctlpar\widctlpar\adjustright \fs20\cgrid \snext0 Normal;}'); + StreamWriteStr(RTF, '{\*\cs10 \additive Default Paragraph Font;}}'); + StreamWriteStr(RTF, '{\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang{\pntxta'); + StreamWriteStr(RTF, '.}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang'); + StreamWriteStr(RTF, '{\pntxta .}}{\*\pnseclvl3\pndec\pnstart1' + '\pnindent720\pnhang{\pntxta'); + StreamWriteStr(RTF, '.}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta'); + StreamWriteStr(RTF, ')}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta'); + StreamWriteStr(RTF, ')}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang'); + StreamWriteStr(RTF, '{\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720' + + '\pnhang{\pntxtb (}{\pntxta'); + StreamWriteStr(RTF, ')}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta'); + StreamWriteStr(RTF, ')}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}'); + + for i := 0 to cxGridView.Controller.SelectedRowCount - 1 do + begin + StreamWriteStr(RTF, '\trowd'); + StreamWriteStr(RTF, '\trgaph108'); + StreamWriteStr(RTF, '\trrh260'); + StreamWriteStr(RTF, '\trleft90'); + StreamWriteStr(RTF, '\trbrdrt\brdrs\brdrw10'); + StreamWriteStr(RTF, '\trbrdrl\brdrs\brdrw10'); + StreamWriteStr(RTF, '\trbrdrb\brdrs\brdrw10'); + StreamWriteStr(RTF, '\trbrdrr\brdrs\brdrw10'); + StreamWriteStr(RTF, '\trbrdrh\brdrs\brdrw10'); + StreamWriteStr(RTF, '\trbrdrv\brdrs\brdrw10'); + + for j := 0 to cxGridView.VisibleColumnCount - 1 do + begin + StreamWriteStr(RTF, '\clvertalt'); + StreamWriteStr(RTF, '\clbrdrt\brdrs\brdrw10'); + StreamWriteStr(RTF, '\clbrdrl\brdrs\brdrw10'); + StreamWriteStr(RTF, '\clbrdrb\brdrs\brdrw10'); + StreamWriteStr(RTF, '\clbrdrr\brdrs\brdrw10'); + // if (j 0 then + begin + Result := '\f' + IntToStr(i); + Exit; + end; + end; +end; + +function TCtrlToRTF.GetRTFFontAttrib(Style: TFontStyles): string; +var retval: string; +begin + retval := ''; + if fsBold in Style then + retval := retval + '\b'; + if fsItalic in Style then + retval := retval + '\c'; + if fsUnderline in Style then + retval := retval + '\ul'; + if fsStrikeOut in Style then + retval := retval + '\strike'; + Result := retval; +end; + +function TCtrlToRTF.GetRTFFontSize(Size: Integer): string; +begin + Result := '\fs' + IntToStr(size * 2); +end; + +function TCtrlToRTF.GetRTF: String; +var + A: TStringList; +begin + StreamWriteStr(RTF, #13#10 + '}}'); + RTF.Position := 0; + A := TStringList.Create; + try + A.LoadFromStream(RTF); + Result := A.Text; + finally + FreeANDNIL(A); + end; +end; + +function TCtrlToRTF.GetRTFAlignment(Alignment: TAlignment): string; +var Align: String; +begin + if Alignment = taCenter then Align := '\qc' + else if Alignment = taRightJustify then Align := '\qr' + else Align := ''; + Result := Align; +end; + +function TCtrlToRTF.GetRTFFontColorTableName(Color: TColor): string; +begin + if Color = clBlack then Result := '\cf0' + else if Color = clMaroon then Result := '\cf1' + else if Color = clGreen then Result := '\cf2' + else if Color = clOlive then Result := '\cf3' + else if Color = clNavy then Result := '\cf4' + else if Color = clPurple then Result := '\cf5' + else if Color = clTeal then Result := '\cf6' + else if Color = clGray then Result := '\cf7' + else if Color = clSilver then Result := '\cf8' + else if Color = clRed then Result := '\cf9' + else if Color = clLime then Result := '\cf10' + else if Color = clYellow then Result := '\cf11' + else if Color = clBlue then Result := '\cf12' + else if Color = clFuchsia then Result := '\cf13' + else if Color = clAqua then Result := '\cf14' + else if Color = clWhite then Result := '\cf15'; +end; + +procedure TCtrlToRTF.AddFontToTable(Font: TFont); +var DC: HDC; + SaveFont: HFont; + Metrics: TTextMetric; + Temp: byte; + I: Integer; + charset, family: string; +begin + DC := GetDC(0); + SaveFont := SelectObject(DC, Font.Handle); + GetTextMetrics(DC, Metrics); + SelectObject(DC, SaveFont); + ReleaseDC(0, DC); + for I := 0 to FontTable.Count - 1 do + begin + if Pos(Font.Name, FontTable.Strings[i]) > 0 then + Exit; + end; + case Metrics.tmCharSet of + ANSI_CHARSET: charset := 'fcharset0'; + DEFAULT_CHARSET: charset := 'fcharset1'; + SYMBOL_CHARSET: charset := 'fcharset2'; + SHIFTJIS_CHARSET: charset := 'fcharset128'; + OEM_CHARSET: charset := 'fcharset255'; + else charset := ''; + end; + Temp := Metrics.tmPitchAndFamily; + Temp := (Temp shr 4) shl 4; + case Temp of + FF_DECORATIVE: family := 'fdecorative'; + FF_DONTCARE: family := 'fdontcare'; + FF_MODERN: family := 'fmodern'; + FF_ROMAN: family := 'froman'; + FF_SCRIPT: family := 'fscript'; + FF_SWISS: family := 'fswiss'; + else family := 'froman'; + end; + FontTable.Add('{\f' + IntToStr(FontTable.Count) + '\' + family + '\' + charset + ' ' + font.name + ';}'); +end; + +procedure TCtrlToRTF.SaveToFile(pFileName: String); +begin + StreamWriteStr(RTF, #13#10 + '}}'); + RTF.SaveToFile(pFileName); +end; + +procedure TCtrlToRTF.StreamWriteStr(var ms: TMemoryStream; s: string); +begin + ms.Write(s[1], Length(s)); +end; + +procedure Register; +begin + RegisterComponents('CynapSYS', [TCtrlToRTF]); +end; + +end. + diff --git a/Source/Base/Utiles/MidasSpeedFix.dcu b/Source/Base/Utiles/MidasSpeedFix.dcu new file mode 100644 index 0000000..f7449fb Binary files /dev/null and b/Source/Base/Utiles/MidasSpeedFix.dcu differ diff --git a/Source/Base/Utiles/MidasSpeedFix.pas b/Source/Base/Utiles/MidasSpeedFix.pas new file mode 100644 index 0000000..8d49500 --- /dev/null +++ b/Source/Base/Utiles/MidasSpeedFix.pas @@ -0,0 +1,420 @@ +{$A+,B-,C+,D+,E-,F-,G+,H+,I+,J+,K-,L+,M-,N+,O+,P+,Q-,R-,S-,T-,U-,V+,W-,X+,Y+,Z1} +{**************************************************************************************************} +{ } +{ MidasSpeedFix unit - Unoffical speed fix for Midas (Delphi/C++Builder 6 to 2009) } +{ Version 1.0 (2009-01-21) } +{ } +{ The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); } +{ you may not use this file except in compliance with the License. You may obtain a copy of the } +{ License at http://www.mozilla.org/MPL/ } +{ } +{ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF } +{ ANY KIND, either express or implied. See the License for the specific language governing rights } +{ and limitations under the License. } +{ } +{ The Original Code is MidasSpeedFix.pas. } +{ } +{ The Initial Developer of the Original Code is Andreas Hausladen (Andreas.Hausladen@gmx.de). } +{ Portions created by Andreas Hausladen are Copyright (C) 2009 Andreas Hausladen. } +{ All Rights Reserved. } +{ } +{**************************************************************************************************} + +{ History: + 2009-01-21: + Initial implementation + + How to use: + Add the MidasSpeedFix.pas unit to your Delphi or C++ Project (ProjectManager: Add Unit) +} + +unit MidasSpeedFix; + +interface + +{$IFDEF CONDITIONALEXPRESSIONS} + {$IF CompilerVersion >= 15.0} + {$WARN UNSAFE_TYPE OFF} + {$WARN UNSAFE_CODE OFF} + {$WARN UNSAFE_CAST OFF} + {$IFEND} +{$ENDIF} + +implementation + +uses + Windows, SysUtils, DSIntf; + +{------------------------------------------------------------------------------} + +function MidasMalloc(Size: LongWord): Pointer; stdcall; +begin + GetMem(Result, Size); +end; + +procedure MidasFree(P: Pointer); stdcall; +begin + FreeMem(P); +end; + +function MidasCalloc(Count, ElementSize: LongWord): Pointer; stdcall; +begin + Result := AllocMem(Count * ElementSize); +end; + +function MidasRealloc(P: Pointer; OldSize, NewSize: LongWord): Pointer; stdcall; +begin + ReallocMem(P, NewSize); + Result := P; + if (Result <> nil) and (OldSize < NewSize) then + FillChar(Pointer(PAnsiChar(Result) + OldSize)^, NewSize - OldSize, 0); +end; + +{------------------------------------------------------------------------------} + +{$UNDEF REQUIRE_NEW_MEMORY_MANAGER} + +{$IFDEF CONDITIONALEXPRESSIONS} + {$IF CompilerVersion < 18.0} // Delphi 2006 was the first shipped with FastMM + {$DEFINE REQUIRE_NEW_MEMORY_MANAGER} + {$IFEND} +{$ELSE} + {$DEFINE REQUIRE_NEW_MEMORY_MANAGER} +{$ENDIF CONDITIONALEXPRESSIONS} + +type + TJumpOfs = Integer; + PPointer = ^Pointer; + +type + PXRedirCode = ^TXRedirCode; + TXRedirCode = packed record + Jump: Byte; + Offset: TJumpOfs; + end; + +{ Hooking } + +procedure HookProc(Proc, Dest: Pointer; var BackupCode: TXRedirCode); +var + n: DWORD; + Code: TXRedirCode; +begin + Assert(Proc <> nil); + if ReadProcessMemory(GetCurrentProcess, Proc, @BackupCode, SizeOf(BackupCode), n) then + begin + Code.Jump := $E9; + Code.Offset := PAnsiChar(Dest) - PAnsiChar(Proc) - SizeOf(Code); + WriteProcessMemory(GetCurrentProcess, Proc, @Code, SizeOf(Code), n); + end; +end; + +procedure UnhookProc(Proc: Pointer; var BackupCode: TXRedirCode); +var + n: Cardinal; +begin + if (BackupCode.Jump <> 0) and (Proc <> nil) then + begin + WriteProcessMemory(GetCurrentProcess, Proc, @BackupCode, SizeOf(BackupCode), n); + BackupCode.Jump := 0; + end; +end; + +function FindMethodPtr(Start: THandle; const Bytes: array of Smallint): Pointer; +var + P, Address, BytePtr: PAnsiChar; + MemInfo: TMemoryBasicInformation; + I: Cardinal; + FirstByte: Byte; + StartOffset, Index: Integer; + BytesLen: Integer; + Found: Boolean; + AllocBase: Pointer; +begin + Result := nil; + BytesLen := Length(Bytes); + if (Start <> 0) and (BytesLen >= 8) then + begin + StartOffset := 0; + while (StartOffset < BytesLen) and (Bytes[StartOffset] = -1) do + Inc(StartOffset); + if StartOffset = BytesLen then + Exit; + FirstByte := Byte(Bytes[StartOffset]); + + try + Address := PAnsiChar(Start); + if not VirtualQuery(Address, MemInfo, SizeOf(MemInfo)) = SizeOf(MemInfo) then + Exit; + AllocBase := MemInfo.AllocationBase; + + while (VirtualQuery(Address, MemInfo, SizeOf(MemInfo)) = SizeOf(MemInfo)) and + (MemInfo.AllocationBase = AllocBase) do + begin + if MemInfo.Protect and $000000F0 <> 0 then // PAGE_EXECUTE | ... + begin + P := Address; + for I := 0 to MemInfo.RegionSize - 1 do + begin + if Byte(P[0]) = FirstByte then + begin + BytePtr := P + 1; + Found := True; + for Index := StartOffset + 1 to BytesLen - 1 do + begin + if (Bytes[Index] <> -1) and (Byte(Bytes[Index]) <> Byte(BytePtr^)) then + begin + Found := False; + Break; + end; + Inc(BytePtr); + end; + if Found then + begin + Result := P; + Exit; + end; + end; + Inc(P); + end; + end; + Inc(Address, MemInfo.RegionSize); + end; + except + on E: EAccessViolation do + ; + on E: EPrivilege do + ; + end; + end; +end; + +{------------------------------------------------------------------------------} +const + MidasMallocBytes: array[0..15] of SmallInt = ( + $55, // push ebp + $8B, $EC, // mov ebp,esp + $FF, $75, $08, // push dword ptr [ebp+$08] + $E8, -1, -1, -1, -1, // call _malloc + $59, // pop ecx + $5D, // pop ebp + $C2, $04, $00 // ret $0004 + ); + + MidasFreeBytes: array[0..20] of SmallInt = ( + $55, // push ebp + $8B, $EC, // mov ebp,esp + $8B, $45, $08, // mov eax,[ebp+$08] + $85, $C0, // test eax,eax + $74, $07, // jz +$07 + $50, // push eax + $E8, -1, -1, -1, -1, // call _free + $59, // pop ecx + $5D, // pop ebp + $C2, $04, $00 // ret $0004 + ); + + MidasMallocBytesGlobal: array[0..56] of SmallInt = ( + $55, // push ebp + $8B, $EC, // mov ebp,esp + $53, // push ebx + $56, // push esi + $57, // push edi + $33, $DB, // xor ebx, ebx + $66, $BE, $02, $00, // mov si, $0002 + $FF, $75, $08, // push dword ptr [ebp+$08] + $0F, $BF, $C6, // movsx eax,si + $50, // push eax + $E8, -1, -1, -1, -1, // call GlobalAlloc + $8B, $F8, // mov edi,eax + $85, $C0, // test eax,eax + $74, $12, // jz +$12 + $57, // push edi + $E8, -1, -1, -1, -1, // call GlobalLock + $8B, $D8, // mov ebx,eax + $85, $C0, // test eax,eax + $75, $06, // jnz +$06 + $57, // push edi + $E8, -1, -1, -1, -1, // call GlobalFree + $8B, $C3, // mov eax,ebx + $5F, // pop edi + $5E, // pop esi + $5B, // pop ebx + $5D, // pop ebp + $C2, $04, $00 // ret $0004 + ); + + MidasFreeBytesGlobal: array[0..39] of SmallInt = ( + $55, // push ebp + $8B, $EC, // mov ebp,esp + $53, // push ebx + $8B, $45, $08, // mov eax,[ebp+$08] + $85, $C0, // test eax,eax + $74, $18, // jz +$18 + $50, // push eax + $E8, -1, -1, -1, -1, // call GlobalHandle + $8B, $D8, // mov ebx,eax + $85, $DB, // test ebx,ebx + $74, $0C, // jz +$0c + $53, // puch ebx + $E8, -1, -1, -1, -1, // call GlobalUnlock + $53, // push ebx + $E8, -1, -1, -1, -1, // call GlobalFree + $5B, // pop ebx + $5D, // pop ebp + $C2, $04, $00 // ret $0004 + ); + + MidasCallocBytes: array[0..43] of SmallInt = ( + $55, // push ebp + $8B, $EC, // mov ebp,esp + $53, // push ebx + $56, // push esi + $8B, $75, $08, // mov esi,[ebp+$08] + $0F, $AF, $75, $0C, // imul esi,[ebp+$0c] + $56, // push esi + $E8, -1, -1, -1, -1, // call $004d2097 MidasMalloc + $8B, $D8, // mov ebx,eax + $85, $DB, // test ebx,ebx + $74, $0C, // jz +$0c + $56, // push esi + $6A, $00, // push $00 + $53, // push ebx + $E8, -1, -1, -1, -1, // call _memset + $83, $C4, $0C, // add esp,$0c + $8B, $C3, // mov eax,ebx + $5E, // pop esi + $5B, // pop ebx + $5D, // pop ebp + $C2, $08, $00 // ret $0008 + ); + + MidasReallocBytes: array[0..54] of SmallInt = ( + $55, // push ebp + $8B, $EC, // mov ebp,esp + $53, // push ebx + $56, // push esi + $8B, $75, $08, // mov esi,[ebp+$08] + $FF, $75, $10, // push dword ptr [ebp+$10] + $6A, $01, // push $01 + $E8, -1, -1, -1, -1, // call $004d20a7 MidasCalloc + $8B, $D8, // mov ebx,eax + $85, $DB, // test ebx,ebx + $74, $17, // jz +$17 + $85, $F6, // test esi,esi + $74, $13, // jz +$13 + $FF, $75, $0C, // push dword ptr [ebp+$0c] + $56, // push esi + $53, // push ebx + $E8, -1, -1, -1, -1, // call _memmove + $83, $C4, $0C, // add esp,$0c + $56, // push esi + $E8, -1, -1, -1, -1, // call $004d20d3 MidasFree + $8B, $C3, // mov eax,ebx + $5E, // pop esi + $5B, // pop ebx + $5D, // pop ebp + $C2, $0C, $00 // ret $000c + ); + +var + Org_MidasMalloc: Pointer; + Org_MidasFree: Pointer; + Org_MidasCalloc: Pointer; + Org_MidasRealloc: Pointer; + + MidasMallocHook: TXRedirCode; + MidasFreeHook: TXRedirCode; + MidasCallocHook: TXRedirCode; + MidasReallocHook: TXRedirCode; + +{$IFDEF REQUIRE_NEW_MEMORY_MANAGER} +function RequireNewerMemoryManager: Boolean; +var + MemMan: TMemoryManager; +begin + GetMemoryManager(MemMan); + if @MemMan.GetMem = @SysGetMem then + begin + MessageBox(0, 'You must install an alternative memory manager like FastMM4. FastMM4 must run in RELEASE mode to see an improved performance.', + 'Delphi - Midas Speed Fix', MB_OK or MB_ICONERROR); + Result := False; + end + else + Result := True; +end; +{$ENDIF REQUIRE_NEW_MEMORY_MANAGER} + +procedure Init; +var + DSBase: IDSBase; + IsCRTLMemMan: Boolean; +begin + {$IFDEF REQUIRE_NEW_MEMORY_MANAGER} + if not RequireNewerMemoryManager then + Exit; + {$ENDIF REQUIRE_NEW_MEMORY_MANAGER} + + IsCRTLMemMan := True; // C RTL memory manager + Org_MidasMalloc := FindMethodPtr(HInstance, MidasMallocBytes); + if Org_MidasMalloc = nil then + begin + Org_MidasMalloc := FindMethodPtr(HInstance, MidasMallocBytesGlobal); + if Org_MidasMalloc <> nil then + IsCRTLMemMan := False; + end; + + if Org_MidasMalloc = nil then + begin + CreateDbClientObject(CLSID_DSBase, IDSBase, DSBase); // load midas.dll + DSBase := nil; // release alloctated midas memory + + Org_MidasMalloc := FindMethodPtr(GetModuleHandle('midas.dll'), MidasMallocBytes); + if Org_MidasMalloc = nil then + begin + Org_MidasMalloc := FindMethodPtr(HInstance, MidasMallocBytesGlobal); + if Org_MidasMalloc <> nil then + IsCRTLMemMan := False; + end; + end; + + if Org_MidasMalloc = nil then + begin + OutputDebugString('Midas speed fix could not be installed.'); + Exit; + end; + Assert(Org_MidasMalloc <> nil); + + if IsCRTLMemMan then + Org_MidasFree := FindMethodPtr(HINST(Org_MidasMalloc), MidasFreeBytes) + else + Org_MidasFree := FindMethodPtr(HINST(Org_MidasMalloc), MidasFreeBytesGlobal); + + Org_MidasCalloc := FindMethodPtr(HINST(Org_MidasMalloc), MidasCallocBytes); + Org_MidasRealloc := FindMethodPtr(HINST(Org_MidasMalloc), MidasReallocBytes); + + Assert(Org_MidasFree <> nil); + Assert(Org_MidasCalloc <> nil); + Assert(Org_MidasRealloc <> nil); + + HookProc(Org_MidasMalloc, @MidasMalloc, MidasMallocHook); + HookProc(Org_MidasFree, @MidasFree, MidasFreeHook); + HookProc(Org_MidasCalloc, @MidasCalloc, MidasCallocHook); + HookProc(Org_MidasRealloc, @MidasRealloc, MidasReallocHook); +end; + +procedure Fini; +begin + UnhookProc(Org_MidasMalloc, MidasMallocHook); + UnhookProc(Org_MidasFree, MidasFreeHook); + UnhookProc(Org_MidasCalloc, MidasCallocHook); + UnhookProc(Org_MidasRealloc, MidasReallocHook); +end; + +initialization + Init; + +finalization + Fini; + +end. diff --git a/Source/Base/Utiles/uAppInfoUtils.dcu b/Source/Base/Utiles/uAppInfoUtils.dcu new file mode 100644 index 0000000..3095c3b Binary files /dev/null and b/Source/Base/Utiles/uAppInfoUtils.dcu differ diff --git a/Source/Base/Utiles/uAppInfoUtils.pas b/Source/Base/Utiles/uAppInfoUtils.pas new file mode 100644 index 0000000..d44909e --- /dev/null +++ b/Source/Base/Utiles/uAppInfoUtils.pas @@ -0,0 +1,52 @@ +unit uAppInfoUtils; + +interface + +function GetAppName: String; +function GetAppVersion: String; +function GetAppFullName: String; + +implementation + +uses + Forms, SysUtils, JclFileUtils; + +function GetAppName: String; +var + FAppInfo : TJclFileVersionInfo; +begin + FAppInfo := TJclFileVersionInfo.Create(Application.ExeName); + try + Result := FAppInfo.ProductName; + finally + FreeANDNil(FAppInfo); + end; +end; + + +function GetAppVersion: String; +var + FAppInfo : TJclFileVersionInfo; +begin + FAppInfo := TJclFileVersionInfo.Create(Application.ExeName); + try + Result := FAppInfo.ProductVersion; + finally + FreeANDNil(FAppInfo); + end; +end; + +function GetAppFullName: String; +var + FAppInfo : TJclFileVersionInfo; +begin + FAppInfo := TJclFileVersionInfo.Create(Application.ExeName); + try + Result := FAppInfo.ProductName + ' ' + FAppInfo.ProductVersion; + finally + FreeANDNil(FAppInfo); + end; +end; + + +end. diff --git a/Source/Base/Utiles/uCalculosUtils.dcu b/Source/Base/Utiles/uCalculosUtils.dcu new file mode 100644 index 0000000..be3cd50 Binary files /dev/null and b/Source/Base/Utiles/uCalculosUtils.dcu differ diff --git a/Source/Base/Utiles/uCalculosUtils.pas b/Source/Base/Utiles/uCalculosUtils.pas new file mode 100644 index 0000000..e86c6df --- /dev/null +++ b/Source/Base/Utiles/uCalculosUtils.pas @@ -0,0 +1,163 @@ +unit uCalculosUtils; + +interface + +uses + uDADataTable, uDAInterfaces; + +const + CAMPO_ID = 'ID'; + CAMPO_POSICION = 'POSICION'; + CAMPO_TIPO = 'TIPO_DETALLE'; + CAMPO_ID_ARTICULOS = 'ID_ARTICULO'; + CAMPO_CONCEPTO = 'CONCEPTO'; + CAMPO_CANTIDAD = 'CANTIDAD'; + CAMPO_IMPORTE_UNIDAD = 'IMPORTE_UNIDAD'; + CAMPO_IMPORTE_TOTAL = 'IMPORTE_TOTAL'; + CAMPO_DESCUENTO = 'DESCUENTO'; + CAMPO_IMPORTE_PORTE = 'IMPORTE_PORTE'; + + function CalcularLineaConcepto (const ADataTable : TDADataTable): Double; + procedure ValidarCamposLineaConcepto(DataTable: TDADataTable); + + procedure DesglosarPorte(ImportePorte: Currency; ADetalles: IDAStronglyTypedDataTable); + function DarTotalPorte(ADetalles: IDAStronglyTypedDataTable): Double; + + +implementation + +uses + SysUtils, DB, Variants, cxControls; + +function CalcularLineaConcepto (const ADataTable : TDADataTable): Double; +var + ImporteTotal : Double; + ImporteA: Double; + ImporteB: Double; +begin + with ADataTable do + begin + if (VarIsNull(FieldByName(CAMPO_DESCUENTO).AsVariant)) then + ImporteTotal := FieldByName(CAMPO_CANTIDAD).asfloat * FieldByName(CAMPO_IMPORTE_UNIDAD).AsFloat + else + begin + //Importe descuento con todos los decimales + ImporteA := FieldByName(CAMPO_IMPORTE_UNIDAD).AsFloat * (FieldByName(CAMPO_DESCUENTO).AsFloat/100); + //Importe descuento redondeado a solo dos decimales, porque en grandes cantidades hay fluctuacin + //(importe unidad - 0,6732 no es lo mismo que importe unidad - 0,67 sobre todo cuando trabajamos con grandes cantidades) + ImporteB := round(ImporteA*100)/100; + ImporteTotal := FieldByName(CAMPO_CANTIDAD).asfloat * (FieldByName(CAMPO_IMPORTE_UNIDAD).AsFloat - ImporteB); + end; + + if (VarIsNull(FieldByName(CAMPO_IMPORTE_PORTE).AsVariant)) then + ImporteTotal := ImporteTotal + else + ImporteTotal := ImporteTotal + (FieldByName(CAMPO_CANTIDAD).asfloat * FieldByName(CAMPO_IMPORTE_PORTE).AsFloat); + end; + + Result := ImporteTotal; +end; + +procedure ValidarCamposLineaConcepto(DataTable: TDADataTable); +var + AField: TDAField; +begin + //Validamos la existencia de todos los campos necesarios + AField := DataTable.FindField(CAMPO_DESCUENTO); + if not Assigned(AField) then + raise Exception.Create('Campo ' + CAMPO_DESCUENTO + ' no encontrado (validarCampos)'); + + + AField := DataTable.FindField(CAMPO_IMPORTE_PORTE); + if not Assigned(AField) then + raise Exception.Create('Campo ' + CAMPO_IMPORTE_PORTE + ' no encontrado (validarCampos)'); +end; + +procedure DesglosarPorte(ImportePorte: Currency; ADetalles: IDAStronglyTypedDataTable); +var + Unidades: Double; + ImporteUnidad: Currency; + ImporteSobrante: Currency; + ABookmark : TBookmark; + +begin + + ImporteUnidad := 0; + ImporteSobrante := 0; + + ABookmark := ADetalles.DataTable.GetBookMark; + ADetalles.DataTable.DisableControls; + ADetalles.DataTable.DisableEventHandlers; + try + ADetalles.DataTable.First; + Unidades := 0; + while not ADetalles.DataTable.eof do + begin + if (ADetalles.DataTable.FieldByName(CAMPO_ID_ARTICULOS).AsInteger > 0) then + Unidades := Unidades + ADetalles.DataTable.FieldByName(CAMPO_CANTIDAD).AsFloat; + ADetalles.DataTable.Next; + end; + + if Unidades > 0 then + begin + ImporteUnidad := StrToCurr(FormatFloat('0000000000.00', (ImportePorte / Unidades))); + ImporteSobrante := ((ImportePorte / Unidades) - ImporteUnidad) * Unidades; + end; + + ADetalles.DataTable.First; + while not ADetalles.DataTable.eof do + begin + if (ADetalles.DataTable.FieldByName(CAMPO_ID_ARTICULOS).AsInteger > 0) then + begin + ADetalles.DataTable.Edit; + ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_PORTE).AsCurrency := ImporteUnidad; + ADetalles.DataTable.Post; + end; + ADetalles.DataTable.Next; + end; + + ADetalles.DataTable.Edit; + ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_PORTE).AsCurrency := ImporteUnidad + ImporteSobrante; + ADetalles.DataTable.Post; + + finally + ADetalles.DataTable.EnableEventHandlers; + ADetalles.DataTable.GotoBookmark(ABookmark); + ADetalles.DataTable.FreeBookmark(ABookmark); + ADetalles.DataTable.EnableControls; + end; +end; + +function DarTotalPorte(ADetalles: IDAStronglyTypedDataTable): Double; +var + ImporteTotal: Currency; + AuxPosicionIni : Integer; +begin + AuxPosicionIni := ADetalles.DataTable.FieldByName(CAMPO_POSICION).AsInteger; + + ShowHourglassCursor; + try + ADetalles.DataTable.DisableControls; + ADetalles.DataTable.DisableEventHandlers; + + ADetalles.DataTable.First; + ImporteTotal := 0; + while not ADetalles.DataTable.eof do + begin + if (ADetalles.DataTable.FieldByName(CAMPO_ID_ARTICULOS).AsInteger > 0) then + ImporteTotal := ImporteTotal + (ADetalles.DataTable.FieldByName(CAMPO_CANTIDAD).AsFloat * ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_PORTE).AsFloat); + ADetalles.DataTable.Next; + end; + + finally + ADetalles.DataTable.Locate(CAMPO_POSICION, IntToStr(AuxPosicionIni), []); + ADetalles.DataTable.EnableEventHandlers; + ADetalles.DataTable.EnableControls; + HideHourglassCursor; + end; + + Result := ImporteTotal; +end; + + +end. diff --git a/Source/Base/Utiles/uDBSelectionListUtils.dcu b/Source/Base/Utiles/uDBSelectionListUtils.dcu new file mode 100644 index 0000000..121c33f Binary files /dev/null and b/Source/Base/Utiles/uDBSelectionListUtils.dcu differ diff --git a/Source/Base/Utiles/uDBSelectionListUtils.pas b/Source/Base/Utiles/uDBSelectionListUtils.pas new file mode 100644 index 0000000..391f1d7 --- /dev/null +++ b/Source/Base/Utiles/uDBSelectionListUtils.pas @@ -0,0 +1,195 @@ +unit uDBSelectionListUtils; + +interface + +uses + Classes, DB, cxGridTableView, uDADataTable, uIntegerListUtils, cxGridCustomView; + +type + TSelectedRecords = class; + + ISeleccionable = interface + ['{49B6B6E9-8C91-430B-87BC-7ED070308F2B}'] + function GetSelectedRecords: TSelectedRecords; + property SelectedRecords : TSelectedRecords read GetSelectedRecords; + + function GetSelected: Boolean; + procedure SetSelected(const Value: Boolean); + property Selected : Boolean read GetSelected write SetSelected; + end; + + ISelectedRecords = interface + ['{C2037B64-AAA7-4DD7-B9EA-C4973BDAD380}'] + function GetCount: Integer; + property Count: Integer read GetCount; + + function GetItem(Index: Integer): Integer; + property Items[Index: Integer]: Integer read GetItem; default; + end; + + TSeleccionable = class(TInterfacedObject, ISeleccionable) + protected + FSelectedRecords : TSelectedRecords; + function GetSelectedRecords: TSelectedRecords; + function GetSelected: Boolean; + procedure SetSelected(const Value: Boolean); + public + constructor Create(aDataTable: TDADataTable); + destructor Destroy; override; + property Selected : Boolean read GetSelected write SetSelected; + property SelectedRecords : TSelectedRecords read GetSelectedRecords; + end; + + TSelectedRecords = class(TInterfacedObject, ISelectedRecords) + private + FDataTable: TDADataTable; + FListInteger : TIntegerList; + function GetCount: Integer; + function GetCurrentRowSelected: Boolean; + function GetItem(Index: Integer): integer; + procedure SetCurrentRowSelected(Value: Boolean); + protected + function CurrentRow: integer; + function Compare(const Item1, Item2: integer): Boolean; + public + constructor Create(ADataTable : TDADataTable); + destructor Destroy; override; + procedure Clear; // free all bookmarks + function Find(const Item: integer; var Index: Integer): Boolean; + function IndexOf(const Item: integer): Integer; + property Count: Integer read GetCount; + property CurrentRowSelected: Boolean read GetCurrentRowSelected + write SetCurrentRowSelected; + property Items[Index: Integer]: integer read GetItem; default; + function LocateItem(const Index : Integer) : Boolean; + end; + + +implementation + +uses + SysUtils, DBConsts, cxGridCustomTableView, cxControls, Math, Variants, Dialogs; + +{ TSelectedRowList } + +constructor TSelectedRecords.Create(ADataTable : TDADataTable); +begin + inherited Create; + FListInteger := TIntegerList.Create; + + FDataTable := ADataTable; +end; + +destructor TSelectedRecords.Destroy; +begin + Clear; + FreeAndNil(FListInteger);//.Free; + FDataTable := NIL; + inherited Destroy; +end; + +procedure TSelectedRecords.Clear; +begin + if (not Assigned(FListInteger)) + or (FListInteger.Count = 0) then + Exit; + + FListInteger.Clear; +end; + +function TSelectedRecords.Compare(const Item1, Item2: integer): Boolean; +begin + Result := (Item1 = Item2); +end; + +function TSelectedRecords.CurrentRow: integer; +begin + if not FDataTable.Active then + raise EDatabaseError.Create(sDataSetClosed); + Result := FDataTable.GetRowRecIDValue; +end; + +function TSelectedRecords.GetCurrentRowSelected: Boolean; +var + Index: Integer; +begin + Result := Find(CurrentRow, Index); +end; + +function TSelectedRecords.Find(const Item: integer; var Index: Integer): Boolean; +begin + Result := FListInteger.Find(Item, Index) +end; + +function TSelectedRecords.GetCount: Integer; +begin + Result := FListInteger.Count; +end; + +function TSelectedRecords.GetItem(Index: Integer): integer; +begin + Result := FListInteger.Integers[Index]; +end; + +function TSelectedRecords.IndexOf(const Item: integer): Integer; +var + AIndex : Integer; +begin + Result := -1; + if FListInteger.Find(Item, AIndex) then + Result := AIndex +end; + +procedure TSelectedRecords.SetCurrentRowSelected(Value: Boolean); +var + Index: Integer; + Current: integer; +begin + Current := CurrentRow; + if (Find(Current, Index) = Value) then + Exit; + if Value then + FListInteger.Add(Current) + else + FListInteger.Delete(Index); +end; + +function TSelectedRecords.LocateItem(const Index: Integer) : Boolean; +begin + if not FDataTable.Active then + raise EDatabaseError.Create(sDataSetClosed); + Result := FDataTable.Locate(FDataTable.RecIDField.FieldName, Items[Index], []); + +end; + + +{ TSeleccionable } + +constructor TSeleccionable.Create(aDataTable: TDADataTable); +begin + inherited Create; + FSelectedRecords := TSelectedRecords.Create(aDataTable); +end; + +destructor TSeleccionable.Destroy; +begin + FreeAndNIL(FSelectedRecords); + inherited; +end; + +function TSeleccionable.GetSelected: Boolean; +begin + Result := FSelectedRecords.CurrentRowSelected; +end; + +function TSeleccionable.GetSelectedRecords: TSelectedRecords; +begin + Result := FSelectedRecords; +end; + +procedure TSeleccionable.SetSelected(const Value: Boolean); +begin + FSelectedRecords.CurrentRowSelected := True; +end; + +end. diff --git a/Source/Base/Utiles/uDataTableUtils.dcu b/Source/Base/Utiles/uDataTableUtils.dcu new file mode 100644 index 0000000..1eb8fc8 Binary files /dev/null and b/Source/Base/Utiles/uDataTableUtils.dcu differ diff --git a/Source/Base/Utiles/uDataTableUtils.pas b/Source/Base/Utiles/uDataTableUtils.pas new file mode 100644 index 0000000..d323187 --- /dev/null +++ b/Source/Base/Utiles/uDataTableUtils.pas @@ -0,0 +1,545 @@ +unit uDataTableUtils; + +interface + +uses + uDACDSDataTable, uDADataTable, uDAInterfaces, uDADelta, uDAMemDataTable; + +const + ID_NULO = -9000; + ID_TODOS = -9001; + ID_PRIMERO = -9002; + +type + +TModoDuplicarRegistros = (mdrTodos, mdrActual, mdrSeleccionados); + +function SetFieldNull(ATarget: TDADataTable; const FieldName: String): Boolean; + +procedure ConectarTabla (ATarget: TDADataTable); +procedure DesconectarTabla (ATarget: TDADataTable); + +procedure CopyDataTableDA5(ASource : TDADataTable; ATarget: TDADataTable; + const OnlySelectedRows : Boolean = False); + +procedure CloneDataTable(const ASource : TDACDSDataTable; + var ATarget : TDACDSDataTable; + RemoteUpdate: Boolean = True); overload; + +function CloneDataTable(const ASource : TDAMemDataTable; + RemoteUpdate: Boolean = True): TDAMemDataTable; overload; + + +procedure DuplicarRegistro(ASource : TDADataTable; ATarget : TDADataTable; + const WithPKKey: Boolean = False; const WithFKKey: Boolean = False; + const Insertar: Boolean = True); + +procedure DuplicarRegistros(ASource : TDADataTable; ATarget : TDADataTable; + AModo : TModoDuplicarRegistros; APermitirRepetidos: Boolean = True; + const WithDeltas: Boolean = True; const WithPKKey: Boolean = False; const WithFKKey: Boolean = False); + +procedure DeleteAllTable(const ADataTable : TDADataTable); + +function DeltaValuesAreDifferent(const aDelta : IDADelta): boolean; + +procedure EnlazarMaestroDetalle(AMasterDataSource : TDADataSource; + ADetail : IDAStronglyTypedDataTable); + +function DataTableModified (const ADataTable : TDADataTable): Boolean; + +procedure SetDataTableReadOnly(ADataTable: TDADataTable; const value: Boolean); + + +implementation + +uses + Classes, DB, uDAClasses, SysUtils, uDABINAdapter, uROTypes, cxControls, + Dialogs, Variants, uDBSelectionListUtils, uROClasses, uDADataStreamer, uDABin2DataStreamer; + + +procedure CopyDataTableDA5(ASource : TDADataTable; ATarget: TDADataTable; + const OnlySelectedRows : Boolean = False); +var + DABin: Binary; + DADataStreamer : TDABin2DataStreamer; + AFiltered : Boolean; + AFilter : String; + AObj : ISeleccionable; + i : Integer; + AID: Integer; + +begin + AFilter := ''; + AFiltered := False; + + ShowHourglassCursor; + ASource.DisableControls; + ATarget.DisableControls; + AID := ASource.GetRowRecIDValue; //Se guarda la posicion de la tabla fuente + + try + + if OnlySelectedRows then + begin + if not Supports(ASource, ISeleccionable, aObj) then + raise Exception.Create('El origen de datos no soporta la interfaz ISeleccionable (CopyDataTable)'); + + { Si la tabla est abierta, la cerramos antes de aplicar los filtros + porque por cada cambio en el filtro se hacen llamadas internas de TDADataTable. } +//Se comenta porque el cierre y apertura de la tabla porque ocasiona el recuperar todos los registros del servidor nuevamente. +// if ASource.Active then +// ASource.Close; + + // Si la tabla origen viene con un filtro, lo guardamos para luego restablecerlo. + if ASource.Filtered then + begin + AFiltered := True; + AFilter := ASource.Filter; + ASource.Filtered := False; + end; + + ASource.Filter := ''; + + //Si no hay elemento seleccionados filtramos para que ATarget se quede vacia + if (AObj.SelectedRecords.Count = 0) then + ASource.Filter := ASource.Filter + '(' + ASource.RecIDField.FieldName + ' = ' + IntToStr(ID_NULO) + ')' + + //En caso contrario filtramos por los elementos seleccionados + else + for i := 0 to AObj.SelectedRecords.Count - 1 do + begin + if (i > 0) then + ASource.Filter := ASource.Filter + ' or '; + ASource.Filter := ASource.Filter + '(' + ASource.RecIDField.FieldName + ' = ' + IntToStr(AObj.SelectedRecords.Items[i]) + ')'; + end; + ASource.Filtered := True; + end; + + DABin := Binary.Create; + DADataStreamer := TDABin2DataStreamer.Create(nil); + + + ATarget.LogicalName := ASource.LogicalName; // We need to specify new dataset LogicalName + ATarget.RemoteFetchEnabled := False; // "Desconectamos" la tabla destino del servidor + +//Se comenta porque el cierre y apertura de la tabla porque ocasiona el recuperar todos los registros del servidor nuevamente. +// if not ASource.Active then +// ASource.Open; + + ASource.First; + + DADataStreamer.WriteDataset(DABin, ASource, [woRows, woSchema], -1); + DADataStreamer.ReadDataset(DABin, ATarget, True); + DADataStreamer.Finalize; + + ATarget.RemoteFetchEnabled := True; // "Conectamos" la tabla del servidor otra vez + + // Dejar el filtro de la tabla origen como estaba + if OnlySelectedRows then + begin + ASource.Filtered := False; + ASource.Filter := AFilter; + if AFiltered then + ASource.Filtered := True; + end; + + ASource.Locate(ASource.RecIDField.FieldName, AID, []); //Se intenta restablecer la posicion inicial de la tabla fuente + + finally + FreeAndNil(DABin); + FreeAndNil(DADataStreamer); + ASource.EnableControls; + ATarget.EnableControls; + HideHourglassCursor; + end; +end; + + +function SetFieldNull(ATarget: TDADataTable; const FieldName: String): Boolean; +begin + Result := False; + if Assigned(ATarget) then + begin + try + ATarget.FieldByName(FieldName).AsVariant := Null; + Result := True; + except + on E: Exception do + Result := False; + end; + end; +end; + + +function DataTableModified (const ADataTable : TDADataTable): Boolean; +var + bCambiado : Boolean; + dtDetails : TList; + i : integer; +begin + bCambiado := False; + + if Assigned(ADataTable) and (ADataTable.Active) then + begin + bCambiado :=(ADataTable.State = dsEdit) or + (ADataTable.HasDelta and DeltaValuesAreDifferent(ADataTable.Delta)); + + if (not bCambiado) then + begin + dtDetails := ADataTable.GetDetailDataTables; + for i := 0 to dtDetails.Count - 1 do + begin + bCambiado := bCambiado or + ((TDADataTable(dtDetails.Items[i])).State in dsEditModes) or + ((TDADataTable(dtDetails.Items[i])).HasDelta and + DeltaValuesAreDifferent((TDADataTable(dtDetails.Items[i])).Delta)); + if bCambiado then + Break; + end; + end; + end; + Result := bCambiado; +end; + + +procedure DeleteAllTable(const ADataTable : TDADataTable); +begin + ADataTable.ClearRows; +end; + + +function CloneDataTable(const ASource : TDAMemDataTable; + RemoteUpdate: Boolean = True): TDAMemDataTable; +var + i : Integer; + ATarget : TDAMemDataTable; +begin + if not Assigned(ASource) then + raise Exception.Create ('No se ha asignado la tabla de origen (CloneDataTable)'); + + ATarget := TDAMemDataTable.Create(NIL); + with ATarget do + begin + + { ATENCIN !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + -------------------------------------------------------------------- + DA5 tiene un fallo en el cual las tablas definidas como detalle no + tienen asociados los eventos internos before... y after... por lo + que los campos AutoInc no funcionan (no pone el -1, -2...). + La forma de arreglarlo es llamar a DisableEventHandlers/EnableEventHandlers + que realiza la asociacin de los eventos. + } + ATarget.DisableEventHandlers; // <--- INDISPENSABLE!!!!!!!!!!!!!!!!!!!! + + + try + if not Assigned(ASource.RemoteDataAdapter) then + raise Exception.Create('No est asignado RemoteDataAdapter (' + ASource.Name + ')'); + + LogicalName := ASource.LogicalName; + CustomAttributes.Assign(ASource.CustomAttributes); + Fields.AssignFieldCollection(ASource.Fields); // o tambin ATarget.LoadSchema; + Params.AssignParamCollection(ASource.Params); + + RemoteDataAdapter := ASource.RemoteDataAdapter; + + Randomize; + Name := ASource.Name + '_' + IntToStr(Random(MAXINT)); + + BusinessRulesID := ASource.BusinessRulesID; + + with MasterParamsMappings do + for i := 0 to ASource.MasterParamsMappings.Count - 1 do + Add(ASource.MasterParamsMappings.Strings[i]); + + with MasterRequestMappings do + for i := 0 to ASource.MasterRequestMappings.Count - 1 do + Add(ASource.MasterRequestMappings.Strings[i]); + + MasterMappingMode := ASource.MasterMappingMode; + + MasterFields := ASource.MasterFields; + MasterOptions := ASource.MasterOptions; + + DetailFields := ASource.DetailFields; + DetailOptions := ASource.DetailOptions; + + RemoteUpdatesOptions := ASource.RemoteUpdatesOptions; + StreamingOptions := ASource.StreamingOptions; + RemoteFetchEnabled := ASource.RemoteFetchEnabled; + finally + ATarget.EnableEventHandlers; // <--- INDISPENSABLE!!!!!!!!!!!!!!!!!!!!!!!!! + end; + end; + + if not RemoteUpdate then + begin + ATarget.LogChanges := False; + ATarget.RemoteFetchEnabled := False; + end; + + Result := ATarget; +end; + + +procedure CloneDataTable(const ASource : TDACDSDataTable; + var ATarget : TDACDSDataTable; RemoteUpdate: Boolean); +var + i : Integer; +begin + with ATarget do + begin + + if not Assigned(ASource.RemoteDataAdapter) then + raise Exception.Create('No est asignado RemoteDataAdapter (' + ASource.Name + ')'); + + RemoteDataAdapter.Assign(ASource.RemoteDataAdapter); + + BusinessRulesID := ASource.BusinessRulesID; + Randomize; + Name := ASource.Name + '_' + IntToStr(Random(MAXINT)); + LogicalName := ASource.LogicalName; + + Params.AssignParamCollection(ASource.Params); + + if Assigned(ASource.LocalSchema) then + LocalSchema := ASource.LocalSchema + else begin + ATarget.Fields.AssignFieldCollection(ASource.Fields); // o tambin ATarget.LoadSchema; + end; + + with MasterParamsMappings do + for i := 0 to ASource.MasterParamsMappings.Count - 1 do + Add(ASource.MasterParamsMappings.Strings[i]); + + with MasterRequestMappings do + for i := 0 to ASource.MasterRequestMappings.Count - 1 do + Add(ASource.MasterRequestMappings.Strings[i]); + + MasterMappingMode := ASource.MasterMappingMode; + + MasterFields := ASource.MasterFields; + MasterOptions := ASource.MasterOptions; + + DetailFields := ASource.DetailFields; + DetailOptions := ASource.DetailOptions; + + RemoteUpdatesOptions := ASource.RemoteUpdatesOptions; + StreamingOptions := ASource.StreamingOptions; + RemoteFetchEnabled := ASource.RemoteFetchEnabled; + end; + + if not RemoteUpdate then + begin + ATarget.LogChanges := False; + ATarget.RemoteFetchEnabled := False; + end; +end; + +function DeltaValuesAreDifferent(const aDelta : IDADelta): boolean; +var + i, x : integer; + OldNewAreDifferent: boolean; +begin + OldNewAreDifferent := FALSE; + for i := 0 to (aDelta.Count-1) do + begin + for x := 0 to (aDelta.LoggedFieldCount-1) do + begin + OldNewAreDifferent := (aDelta.Changes[i].OldValues[x] <> aDelta.Changes[i].NewValues[x]); + + if OldNewAreDifferent then + Break; // Abandon iteration at the first difference between old and new. + end; + + if OldNewAreDifferent then + Break; // Abandon iteration at the first difference between old and new. + end; + result := OldNewAreDifferent; +end; + + +procedure DuplicarRegistro(ASource : TDADataTable; ATarget : TDADataTable; const WithPKKey: Boolean = False; const WithFKKey: Boolean = False; const Insertar: Boolean = True); +var + i, j: Integer; + ATargetField: TDAField; + ASourceField: TDAField; + ADetailFields : TStringList; +begin + if not ASource.Active then + ASource.Open; + + if not ATarget.Active then + ATarget.Open; + + ADetailFields := Nil; + + // ATarget es una tabla detalle? + if Assigned(ATarget.MasterSource) then + begin + case ATarget.MasterMappingMode of + //mmDataRequest: //Sin hacer; + mmParams, mmWhere: begin + //Creamos la lista de campos foreing key + ADetailFields := TStringList.Create; + ADetailFields.Sorted := True; + ADetailFields.Delimiter := ','; + ADetailFields.Duplicates := dupIgnore; + ADetailFields.Add(ATarget.DetailFields); + end; + end; + end + else + ADetailFields := Nil; + + if Insertar then + ATarget.Insert + else + ATarget.Edit; + + { Hay que desactivar los eventos para que dejan de funcionar + las reglas de negocio y no nos interfieran en la copia + de valores de los campos. } + ATarget.DisableEventHandlers; + try + for i := 0 to ASource.Fields.Count - 1 do + begin + ASourceField := ASource.Fields[i]; + ATargetField := ATarget.FindField(ASourceField.Name); + + if Assigned(ATargetField) then + begin + // Los campos AutoInc no se rellenan y tampoco los campos que + // formen parte de la relacin maestro-detalle en el + // caso de que la tabla destino sea una tabla detalle. + if not WithPKKey then + begin + //Si no es campo clave + //Si no es autoinc (podria desaparecer pero no lo quitamos por si acaso + if not (ATargetField.InPrimaryKey) and + (ATargetField.DataType <> datAutoInc) then + begin + //En el caso de no copiar las claves foraneas + //Si no hay campos foreing key o los hay pero el campo a copiar no es uno de ellos + if not WithFKKey then + begin + if (not Assigned(ADetailFields) or not ADetailFields.Find(ATargetField.Name, j)) then + //Copiamos el campo + ATargetField.Value := ASourceField.Value; + end + else + //Copiamos el campo + ATargetField.Value := ASourceField.Value; + + end; + end + else + //En el caso de no copiar las claves foraneas + //Si no hay campos foreing key o los hay pero el campo a copiar no es uno de ellos + if not WithFKKey then + begin + //Si no hay campos foreing key o los hay pero el campo a copiar no es uno de ellos + if (not Assigned(ADetailFields) or not ADetailFields.Find(ATargetField.Name, j)) then + //Copiamos el campo + ATargetField.Value := ASourceField.Value; + end + else + //Copiamos el campo + ATargetField.Value := ASourceField.Value; + end; + end; + finally + ATarget.EnableEventHandlers; + ATarget.Post; + end; +end; + + +procedure DuplicarRegistros(ASource : TDADataTable; ATarget : TDADataTable; + AModo : TModoDuplicarRegistros; APermitirRepetidos: Boolean = True; + Const WithDeltas: Boolean = True; Const WithPKKey: Boolean = False; Const WithFKKey: Boolean = False); +begin + if not ASource.Active then + ASource.Open; + + if not ATarget.Active then + ATarget.Open; + + try + //Para que no se generen deltas de insercin, y luego actue como un update + if not WithDeltas then + DesconectarTabla(ATarget); + + if AModo = mdrActual then + DuplicarRegistro(ASource, ATarget, WithPKKey, WithFKKey) //ATarget.CloneSelectedRecord(ASource, True) + else begin + ASource.First; + while not ASource.EOF do + begin + if APermitirRepetidos then + DuplicarRegistro(ASource, ATarget, WithPKKey, WithFKKey) + else + begin + ATarget.First; + if not ATarget.Locate(ATarget.RecIDField.FieldName, ASource.GetRowRecIDValue, []) then + DuplicarRegistro(ASource, ATarget, WithPKKey, WithFKKey); + end; + + ASource.Next; + end; + end; + finally + //Para que no se generen deltas de insercin, y luego actue como un update + if not WithDeltas then + ConectarTabla(ATarget); + end; +end; + + +procedure EnlazarMaestroDetalle(AMasterDataSource : TDADataSource; + ADetail : IDAStronglyTypedDataTable); +begin + if Assigned(ADetail) then + begin + // MUY IMPORTANTE !!!!!!!!!!!!!!!!!! + //ADetail.DataTable.DisableEventHandlers; + try + ADetail.DataTable.MasterSource := AMasterDataSource; + finally + { Hay que activar los eventos porque dejan de funcionar + las reglas de negocio al establecer la relacin + maestro-detalle. (Fallo de Data Abstract 3) } + //ADetail.DataTable.EnableEventHandlers; + end; + end; +end; + +procedure DesconectarTabla (ATarget: TDADataTable); +begin + ATarget.RemoteFetchEnabled := False; + ATarget.LogChanges := False; +end; + +procedure ConectarTabla (ATarget: TDADataTable); +begin + ATarget.RemoteFetchEnabled := True; + ATarget.LogChanges := True; +end; + +procedure SetDataTableReadOnly(ADataTable: TDADataTable; const value: Boolean); +var + dtDetails : TList; + i : integer; + +begin + if Assigned(ADataTable) + and (ADataTable.ReadOnly <> Value) then + begin + ADataTable.ReadOnly := Value; + dtDetails := ADataTable.GetDetailDataTables; + for i := 0 to dtDetails.Count - 1 do + TDADataTable(dtDetails.Items[i]).ReadOnly := ADataTable.ReadOnly; + end; +end; + +end. diff --git a/Source/Base/Utiles/uDateUtils.dcu b/Source/Base/Utiles/uDateUtils.dcu new file mode 100644 index 0000000..2005273 Binary files /dev/null and b/Source/Base/Utiles/uDateUtils.dcu differ diff --git a/Source/Base/Utiles/uDateUtils.pas b/Source/Base/Utiles/uDateUtils.pas new file mode 100644 index 0000000..ac53f0a --- /dev/null +++ b/Source/Base/Utiles/uDateUtils.pas @@ -0,0 +1,41 @@ +unit uDateUtils; + +interface + +uses + SysUtils, Classes; + +function DarFechaPrimerDia(Date: TDateTime): TDateTime; +function DarFechaUltimoDia(Date: TDateTime): TDateTime; +function EsFechaVacia(AFecha : TDateTime): Boolean; + +implementation + +const + FECHA_NULA = -700000; + +function EsFechaVacia(AFecha : TDateTime): Boolean; +begin + Result := (AFecha = FECHA_NULA) or (AFecha = 0); +end; + +function DarFechaPrimerDia(Date: TDateTime): TDateTime; +var + Year, Month, Day: Word; +begin + DecodeDate(Date, Year, Month, Day); + Result := EncodeDate(Year, Month, 1); +end; + +function DarFechaUltimoDia(Date: TDateTime): TDateTime; +var + Year, Month, Day: Word; +begin + DecodeDate(Date, Year, Month, Day); + // (if Month < 12 then inc(Month) + // else begin Month := 1; inc(Year) end; + // Result := EncodeDate(Year, Month, 1) - 1; + Result := EncodeDate(Year, Month, + MonthDays[IsLeapYear(Year), Month]); +end; +end. diff --git a/Source/Base/Utiles/uDialogUtils.dcu b/Source/Base/Utiles/uDialogUtils.dcu new file mode 100644 index 0000000..ef9fadc Binary files /dev/null and b/Source/Base/Utiles/uDialogUtils.dcu differ diff --git a/Source/Base/Utiles/uDialogUtils.pas b/Source/Base/Utiles/uDialogUtils.pas new file mode 100644 index 0000000..69b982b --- /dev/null +++ b/Source/Base/Utiles/uDialogUtils.pas @@ -0,0 +1,287 @@ +unit uDialogUtils; + +interface + +uses + Windows, Controls, SysUtils; + +type + TDlgButton = (TDlgButton_SI, TDlgButton_NO, TDlgButton_CANCELAR, + TDlgButton_ACEPTAR, TDlgButton_OK, TDlgButton_CERRAR); + TDlgButtonSet = set of TDlgButton; + + +//For example: +//1. to display the "OpenDialog" for text files +// +// s := 'aaa.txt'; +// if OpenFileDialog(Application.Handle, 'txt', 'Text Files|*.txt', 'c:\', 'Select text file', s) then +// ShowMessage(s + ' file was selected for open') +// +//2. to display the "Save dialog": +// +// s := 'data.dbf'; +// if SaveFileDialog(Application.Handle, 'dbf', 'dBase tables|*.dbf|All files|*.*', 'c:\', 'Select table', s) then +// ShowMessage(s + ' table was selected for save') + +function OpenFileDialog(ParentHandle: THandle; const DefExt, Filter, InitialDir, Title: string; var FileName: string): Boolean; +function SaveFileDialog(ParentHandle: THandle; const DefExt, Filter, InitialDir, Title: string; var FileName: string): Boolean; + + + + +procedure ShowInfoMessage(const AMessage : String); overload; +procedure ShowInfoMessage(const AHeader : String; const AMessage : String); overload; +procedure ShowWarningMessage(const AMessage : String); overload; +procedure ShowWarningMessage(const AHeader : String; const AMessage : String); overload; +procedure ShowErrorMessage(const AHeader : String; const AMessage : String); overload; +procedure ShowErrorMessage(const AHeader : String; const AMessage : String; AException: Exception); overload; + +function ShowConfirmMessage(const AHeader : String; + const AMessage : String) : TModalResult; overload; + +function ShowConfirmMessage(const ATitle : String; + const AHeader : String; + const AMessage : String; + const AButtonSet: TDlgButtonSet) : TModalResult; overload; + +implementation + +uses + Forms, + CommDlg, + JSDialog, + JSDialogs, + Classes, + StrUtils; + +const + sBtnSi = '&Si'; + sBtnNo = '&No'; + sBtnCancelar = '&Cancelar'; + sBtnAceptar = '&Aceptar'; + sBtnOK = '&OK'; + sBtnCerrar = '&Cerrar'; + + +function CharReplace(const Source: string; oldChar, newChar: Char): string; +var + i: Integer; +begin + Result := Source; + for i := 1 to Length(Result) do + if Result[i] = oldChar then + Result[i] := newChar +end; + +function OpenSaveFileDialog(ParentHandle: THandle; const DefExt, Filter, InitialDir, Title: string; var FileName: string; + MustExist, OverwritePrompt, NoChangeDir, DoOpen: Boolean): Boolean; +var + ofn: TOpenFileName; + szFile: array[0..MAX_PATH] of Char; +begin + Result := False; + FillChar(ofn, SizeOf(TOpenFileName), 0); + FillChar(szFile, SizeOf(szFile), 0); + with ofn do + begin + lStructSize := SizeOf(TOpenFileName); + hwndOwner := ParentHandle; + lpstrFile := szFile; + nMaxFile := SizeOf(szFile); + if (Title <> '') then + lpstrTitle := PChar(Title); + if (InitialDir <> '') then + lpstrInitialDir := PChar(InitialDir); + StrPCopy(lpstrFile, FileName); + lpstrFilter := PChar(ReplaceStr(Filter, '|', #0)+#0#0); + if DefExt <> '' then + lpstrDefExt := PChar(DefExt); + end; + + if MustExist then + ofn.Flags := ofn.Flags or OFN_FILEMUSTEXIST; + + if OverwritePrompt then + ofn.Flags := ofn.Flags or OFN_OVERWRITEPROMPT; + + if NoChangeDir then + ofn.Flags := ofn.Flags or OFN_NOCHANGEDIR; + + if DoOpen then + begin + if GetOpenFileName(ofn) then + begin + Result := True; + FileName := StrPas(szFile); + end; + end + else + begin + if GetSaveFileName(ofn) then + begin + Result := True; + FileName := StrPas(szFile); + end; + end +end; + +function OpenFileDialog(ParentHandle: THandle; const DefExt, Filter, InitialDir, Title: string; var FileName: string): Boolean; +begin + Result := OpenSaveFileDialog(ParentHandle, DefExt, Filter, InitialDir, Title, FileName, True, False, False, True); +end; + +function SaveFileDialog(ParentHandle: THandle; const DefExt, Filter, InitialDir, Title: string; var FileName: string): Boolean; +begin + Result := OpenSaveFileDialog(ParentHandle, DefExt, Filter, InitialDir, Title, FileName, False, True, True, False); +end; + + +function CreateTaskDialog(const ATitle: String; + const AInstruction: String; + const AMessage: String; + const AIcon: TTaskDialogIcon): TJSDialog; +var + ADialog : TJSDialog; +begin + ADialog := TJSDialog.Create(NIL); + with ADialog do + begin + Position := dpScreenCenter; + ButtonBar.Buttons := []; + DialogOptions := [doModal, doTopMost]; + + Title := ATitle; + Instruction.Text := AInstruction; + Content.Text := AMessage; + MainIcon := AIcon; + end; + Result := ADialog; +end; + +procedure CreateCustomButtons(const AButtonSet: TDlgButtonSet; + ACustomButtons : TJSCustomButtons); + + function CreateButton(const ACaption: String; const AModalResult: TModalResult): TJSCustomButtonItem; + begin + Result := ACustomButtons.Add; + Result.Caption := ACaption; + Result.ModalResult := AModalResult; + end; + +begin + with ACustomButtons do + begin + Clear; + + if TDlgButton_SI in AButtonSet then + CreateButton(sBtnSi, mrYes); + + if TDlgButton_NO in AButtonSet then + CreateButton(sBtnNo, mrNo); + + if TDlgButton_CANCELAR in AButtonSet then + CreateButton(sBtnCancelar, mrCancel); + + if TDlgButton_ACEPTAR in AButtonSet then + CreateButton(sBtnAceptar, mrOk); + + if TDlgButton_OK in AButtonSet then + CreateButton(sBtnOK, mrOk); + + if TDlgButton_CERRAR in AButtonSet then + CreateButton(sBtnCerrar, mrNone); + end; +end; + +procedure ShowInfoMessage(const AHeader : String; const AMessage : String); overload; +var + ADialog : TJSDialog; +begin + ADialog := CreateTaskDialog('Informacin', AHeader, AMessage, tdiInformation); + try + CreateCustomButtons([TDlgButton_CERRAR], ADialog.CustomButtons); + ADialog.Execute; + finally + FreeAndNIL(ADialog); + end; +end; + +procedure ShowInfoMessage(const AMessage : String); +begin + ShowInfoMessage('', AMessage); +end; + +procedure ShowWarningMessage(const AHeader : String; const AMessage : String); overload; +var + ADialog : TJSDialog; +begin + ADialog := CreateTaskDialog('Atencin!', AHeader, AMessage, tdiWarning); + try + CreateCustomButtons([TDlgButton_CERRAR], ADialog.CustomButtons); + ADialog.Execute; + finally + FreeAndNIL(ADialog); + end; +end; + +procedure ShowWarningMessage(const AMessage : String); +begin + ShowWarningMessage('', AMessage); +end; + +procedure ShowErrorMessage(const AHeader : String; const AMessage : String); +var + ADialog : TJSDialog; +begin + ADialog := CreateTaskDialog(Application.Title, AHeader, AMessage, tdiError); + try + CreateCustomButtons([TDlgButton_CERRAR], ADialog.CustomButtons); + ADialog.Execute; + finally + FreeAndNIL(ADialog); + end; +end; + +procedure ShowErrorMessage(const AHeader : String; const AMessage : String; AException: Exception); +var + ADialog : TJSDialog; +begin + ADialog := CreateTaskDialog(Application.Title, AHeader, AMessage, tdiError); + try + CreateCustomButtons([TDlgButton_CERRAR], ADialog.CustomButtons); + ADialog.Expando.Lines.Text := #13#13 + AException.Message; + ADialog.Expando.ShowText := 'Mostrar informacin sobre el error'; + ADialog.Expando.HideText := 'No mostrar informacin sobre el error'; + ADialog.Expando.Visible := True; + ADialog.Execute; + finally + FreeAndNIL(ADialog); + end; +end; + +function ShowConfirmMessage(const AHeader : String; + const AMessage : String) : TModalResult; +begin + Result := ShowConfirmMessage(Application.Title, AHeader, + AMessage, [TDlgButton_SI, TDlgButton_NO]); +end; + +function ShowConfirmMessage(const ATitle : String; + const AHeader : String; + const AMessage : String; + const AButtonSet: TDlgButtonSet) : TModalResult; +var + ADialog : TJSDialog; +begin + ADialog := CreateTaskDialog(Application.Title, AHeader, AMessage, tdiConfirmation); + try + CreateCustomButtons(AButtonSet, ADialog.CustomButtons); + Result := ADialog.Execute; + finally + FreeAndNIL(ADialog); + end; +end; + +end. + diff --git a/Source/Base/Utiles/uEMailUtils.dcu b/Source/Base/Utiles/uEMailUtils.dcu new file mode 100644 index 0000000..0c7179b Binary files /dev/null and b/Source/Base/Utiles/uEMailUtils.dcu differ diff --git a/Source/Base/Utiles/uEMailUtils.pas b/Source/Base/Utiles/uEMailUtils.pas new file mode 100644 index 0000000..80299c5 --- /dev/null +++ b/Source/Base/Utiles/uEMailUtils.pas @@ -0,0 +1,457 @@ +unit uEMailUtils; + +interface + +uses + Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs; + +type + { Introducing a new Type of Event to get the Errorcode } + TMapiErrEvent = procedure(Sender: TObject; ErrCode: Integer) of object; + + TMapiControl = class(TComponent) + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + private + { Private-Deklarationen } + FSubject: string; + FMailtext: string; + FFromName: string; + FFromAdress: string; + FTOAdr: TStrings; + FCCAdr: TStrings; + FBCCAdr: TStrings; + FAttachedFileName: TStrings; + FDisplayFileName: TStrings; + FShowDialog: Boolean; + FUseAppHandle: Boolean; + { Error Events: } +{ FOnUserAbort: TNotifyEvent; + FOnMapiError: TMapiErrEvent; + FOnSuccess: TNotifyEvent;} + { +> Changes by Eugene Mayevski [mailto:Mayevski@eldos.org]} + procedure SetToAddr(newValue: TStrings); + procedure SetCCAddr(newValue: TStrings); + procedure SetBCCAddr(newValue: TStrings); + procedure SetAttachedFileName(newValue: TStrings); + { +< Changes } + protected + { Protected-Deklarationen } + public + { Public-Deklarationen } + ApplicationHandle: THandle; + function Sendmail: Boolean; + procedure Reset; + published + { Published-Deklarationen } + property Subject: string read FSubject write FSubject; + property Body: string read FMailText write FMailText; + property FromName: string read FFromName write FFromName; + property FromAdress: string read FFromAdress write FFromAdress; + property Recipients: TStrings read FTOAdr write SetTOAddr; + property CopyTo: TStrings read FCCAdr write SetCCAddr; + property BlindCopyTo: TStrings read FBCCAdr write SetBCCAddr; + property AttachedFiles: TStrings read FAttachedFileName write SetAttachedFileName; + property DisplayFileName: TStrings read FDisplayFileName; + property ShowDialog: Boolean read FShowDialog write FShowDialog; + property UseAppHandle: Boolean read FUseAppHandle write FUseAppHandle; + + { Events: } + {property OnUserAbort: TNotifyEvent read FOnUserAbort write FOnUserAbort; + property OnMapiError: TMapiErrEvent read FOnMapiError write FOnMapiError; + property OnSuccess: TNotifyEvent read FOnSuccess write FOnSuccess;} + end; + +function EsDireccionEMailValida(const Value: string): boolean; +function EnviarEMailMAPI(const AAsunto, ACuerpo, AFicheroAdjunto, ANombreRemitente, AEMailRemitente, + ANombreDestinatario, AEMailDestinatario: String; AEnviarDirectamente: Boolean = false) : boolean; + +implementation + +uses + MAPI; + +function EsDireccionEMailValida(const Value: string): boolean; + function CheckAllowed(const s: string): boolean; + var + i: integer; + begin + Result:= false; + for i:= 1 to Length(s) do + begin + // illegal char in s -> no valid address + if not (s[i] in ['a'..'z','A'..'Z','0'..'9','_','-','.']) then + Exit; + end; + Result:= true; + end; +var + i: integer; + namePart, serverPart: string; +begin // of IsValidEmail + Result:= false; + i:= Pos('@', Value); + if (i = 0) or (pos('..', Value) > 0) then + Exit; + namePart:= Copy(Value, 1, i - 1); + serverPart:= Copy(Value, i + 1, Length(Value)); + if (Length(namePart) = 0) // @ or name missing + or ((Length(serverPart) < 4)) // name or server missing or + then Exit; // too short + i:= Pos('.', serverPart); + // must have dot and at least 3 places from end + if (i < 2) or (i > (Length(serverPart) - 2)) then + Exit; + Result:= CheckAllowed(namePart) and CheckAllowed(serverPart); +end; + +function EnviarEMailMAPI(const AAsunto, ACuerpo, AFicheroAdjunto, ANombreRemitente, AEMailRemitente, + ANombreDestinatario, AEMailDestinatario: String; AEnviarDirectamente: Boolean = false) : boolean; +var + AMAPIControl : TMapiControl; +begin + AMAPIControl := TMapiControl.Create(NIL); + try + with AMAPIControl do + begin + Subject := AAsunto; + Body := ACuerpo; + FromName := ANombreRemitente; + FromAdress := AEMailRemitente; + + Recipients.Add(AEMailDestinatario); + AttachedFiles.Add(AFicheroAdjunto); + + ShowDialog := not AEnviarDirectamente; + end; + Result := AMAPIControl.Sendmail; + finally + FreeANDNIL(AMAPIControl); + end; +end; + + +{ TMapiControl } + +constructor TMapiControl.Create(AOwner: TComponent); +begin + inherited Create(AOwner); + {FOnUserAbort := nil; + FOnMapiError := nil; + FOnSuccess := nil;} + FSubject := ''; + FMailtext := ''; + FFromName := ''; + FFromAdress := ''; + FTOAdr := TStringList.Create; + FCCAdr := TStringList.Create; + FBCCAdr := TStringList.Create; + FAttachedFileName := TStringList.Create; + FDisplayFileName := TStringList.Create; + FShowDialog := False; + ApplicationHandle := Application.Handle; +end; + +{ +> Changes by Eugene Mayevski [mailto:Mayevski@eldos.org]} + +procedure TMapiControl.SetToAddr(newValue: TStrings); +begin + FToAdr.Assign(newValue); +end; + +procedure TMapiControl.SetCCAddr(newValue: TStrings); +begin + FCCAdr.Assign(newValue); +end; + +procedure TMapiControl.SetBCCAddr(newValue: TStrings); +begin + FBCCAdr.Assign(newValue); +end; + +procedure TMapiControl.SetAttachedFileName(newValue: TStrings); +begin + FAttachedFileName.Assign(newValue); +end; +{ +< Changes } + +destructor TMapiControl.Destroy; +begin + FTOAdr.Free; + FCCAdr.Free; + FBCCAdr.Free; + FAttachedFileName.Free; + FDisplayFileName.Free; + inherited destroy; +end; + +{ Reset the fields for re-use} + +procedure TMapiControl.Reset; +begin + FSubject := ''; + FMailtext := ''; + FFromName := ''; + FFromAdress := ''; + FTOAdr.Clear; + FCCAdr.Clear; + FBCCAdr.Clear; + FAttachedFileName.Clear; + FDisplayFileName.Clear; +end; + +{ Send the Mail via the API, this procedure composes and sends + the Email } + +function TMapiControl.Sendmail: Boolean; +var + MapiMessage: TMapiMessage; + MError: Cardinal; + Sender: TMapiRecipDesc; + PRecip, Recipients: PMapiRecipDesc; + PFiles, Attachments: PMapiFileDesc; + i: Integer; + AppHandle: THandle; +begin + { First we store the Application Handle, if not + the Component might fail to send the Email or + your calling Program gets locked up. } + AppHandle := Application.Handle; + + { Initialize the Attachment Pointer, to keep Delphi quiet } + PFiles := nil; + + { We need all recipients to alloc the memory } + MapiMessage.nRecipCount := FTOAdr.Count + FCCAdr.Count + FBCCAdr.Count; + GetMem(Recipients, MapiMessage.nRecipCount * sizeof(TMapiRecipDesc)); + + try + with MapiMessage do + begin + ulReserved := 0; + { Setting the Subject: } + lpszSubject := PChar(Self.FSubject); + + { ... the Body: } + lpszNoteText := PChar(FMailText); + + lpszMessageType := nil; + lpszDateReceived := nil; + lpszConversationID := nil; + flFlags := 0; + + { and the sender: (MAPI_ORIG) } + Sender.ulReserved := 0; + Sender.ulRecipClass := MAPI_ORIG; + Sender.lpszName := PChar(FromName); + Sender.lpszAddress := PChar(FromAdress); + Sender.ulEIDSize := 0; + Sender.lpEntryID := nil; + lpOriginator := @Sender; + + PRecip := Recipients; + + { We have multiple recipients: (MAPI_TO) + and setting up each: } + if nRecipCount > 0 then + begin + for i := 1 to FTOAdr.Count do + begin + PRecip^.ulReserved := 0; + PRecip^.ulRecipClass := MAPI_TO; + { lpszName should carry the Name like in the + contacts or the adress book, I will take the + email adress to keep it short: } + PRecip^.lpszName := PChar(FTOAdr.Strings[i - 1]); + { If you use this component with Outlook97 or 2000 + and not some of Express versions you will have to set + 'SMTP:' in front of each (email-) adress. Otherwise + Outlook/Mapi will try to handle the Email on itself. + Sounds strange, just erease the 'SMTP:', compile, compose + a mail and take a look at the resulting email adresses + (right click). + } + { +> Changes by Andreas Hoerig [mailto:andreas.hoerig@sillner.com] } + PRecip^.lpszAddress := StrNew(PChar('SMTP:' + FTOAdr.Strings[i - 1])); + { +< Changes } + PRecip^.ulEIDSize := 0; + PRecip^.lpEntryID := nil; + Inc(PRecip); + end; + + { Same with the carbon copy recipients: (CC, MAPI_CC) } + for i := 1 to FCCAdr.Count do + begin + PRecip^.ulReserved := 0; + PRecip^.ulRecipClass := MAPI_CC; + PRecip^.lpszName := PChar(FCCAdr.Strings[i - 1]); + { +> Changes by Andreas Hoerig [mailto:andreas.hoerig@sillner.com] } + PRecip^.lpszAddress := StrNew(PChar('SMTP:' + FCCAdr.Strings[i - 1])); + { +< Changes } + PRecip^.ulEIDSize := 0; + PRecip^.lpEntryID := nil; + Inc(PRecip); + end; + + { ... and the blind copy recipients: (BCC, MAPI_BCC) } + for i := 1 to FBCCAdr.Count do + begin + PRecip^.ulReserved := 0; + PRecip^.ulRecipClass := MAPI_BCC; + PRecip^.lpszName := PChar(FBCCAdr.Strings[i - 1]); + { +> Changes by Andreas Hoerig [mailto:andreas.hoerig@sillner.com] } + PRecip^.lpszAddress := StrNew(PChar('SMTP:' + FBCCAdr.Strings[i - 1])); + { +< Changes } + PRecip^.ulEIDSize := 0; + PRecip^.lpEntryID := nil; + Inc(PRecip); + end; + end; + lpRecips := Recipients; + + { Now we process the attachments: } + nFileCount := FAttachedFileName.Count; + if nFileCount > 0 then + begin + GetMem(Attachments, nFileCount * sizeof(TMapiFileDesc)); + PFiles := Attachments; + + { Fist setting up the display names (without path): } + FDisplayFileName.Clear; + for i := 1 to FAttachedFileName.Count do + FDisplayFileName.Add(ExtractFileName(FAttachedFileName[i - 1])); + + if nFileCount > 0 then + begin + { Now we pass the attached file (their paths) to the + structure: } + for i := 1 to FAttachedFileName.Count do + begin + { Setting the complete Path } + Attachments^.lpszPathName := PChar(FAttachedFileName.Strings[i - 1]); + { ... and the displayname: } + Attachments^.lpszFileName := PChar(FDisplayFileName.Strings[i - 1]); + Attachments^.ulReserved := 0; + Attachments^.flFlags := 0; + { Position has to be -1, please see the WinApi Help + for details. } + Attachments^.nPosition := Cardinal(-1); + Attachments^.lpFileType := nil; + Inc(Attachments); + end; + end; + lpFiles := PFiles; + end + else + begin + nFileCount := 0; + lpFiles := nil; + end; + end; + + { Send the Mail, silent or verbose: + Verbose means in Express a Mail is composed and shown as setup. + In non-Express versions we show the Login-Dialog for a new + session and after we have choosen the profile to use, the + composed email is shown before sending + + Silent does currently not work for non-Express version. We have + no Session, no Login Dialog so the system refuses to compose a + new email. In Express Versions the email is sent in the + background. + + Please Note: It seems that your success on the delivery depends + on a combination of MAPI-Flags (MAPI_DIALOG, MAPI_LOGON_UI, ...) + and your used OS and Office Version. I am currently using + Win2K SP1 and Office 2K SP2 with no problems at all. + If you experience problems on another versions, please try + a different combination of flags for each purpose (Dialog or not). + I would be glad to setup a table with working flags on + each OS/Office combination, just drop me a line. + + Possible combinations are also (with Dialog): + 1. MAPI_DIALOG or MAPI_LOGON_UI MAPI_NEW_SESSION or MAPI_USE_DEFAULT + 2. MAPI_SIMPLE_DEFAULT + + See MAPI.PAS or MAPI.H (SDK) for more... + } + if FShowDialog then + MError := MapiSendMail(0, AppHandle, MapiMessage, MAPI_DIALOG or MAPI_LOGON_UI or MAPI_NEW_SESSION, 0) + else + MError := MapiSendMail(0, AppHandle, MapiMessage, 0, 0); + + { Now we have to process the error messages. There are some + defined in the MAPI unit please take a look at the unit to get + familiar with it. + I decided to handle USER_ABORT and SUCCESS as special and leave + the rest to fire the "new" error event defined at the top (as + generic error) + + Not treated as special (constants from mapi.pas): + + MAPI_E_FAILURE = 2; + MAPI_E_LOGON_FAILURE = 3; + MAPI_E_LOGIN_FAILURE = MAPI_E_LOGON_FAILURE; + MAPI_E_DISK_FULL = 4; + MAPI_E_INSUFFICIENT_MEMORY = 5; + MAPI_E_ACCESS_DENIED = 6; + MAPI_E_TOO_MANY_SESSIONS = 8; + MAPI_E_TOO_MANY_FILES = 9; + MAPI_E_TOO_MANY_RECIPIENTS = 10; + MAPI_E_ATTACHMENT_NOT_FOUND = 11; + MAPI_E_ATTACHMENT_OPEN_FAILURE = 12; + MAPI_E_ATTACHMENT_WRITE_FAILURE = 13; + MAPI_E_UNKNOWN_RECIPIENT = 14; + MAPI_E_BAD_RECIPTYPE = 15; + MAPI_E_NO_MESSAGES = 16; + MAPI_E_INVALID_MESSAGE = 17; + MAPI_E_TEXT_TOO_LARGE = 18; + MAPI_E_INVALID_SESSION = 19; + MAPI_E_TYPE_NOT_SUPPORTED = 20; + MAPI_E_AMBIGUOUS_RECIPIENT = 21; + MAPI_E_AMBIG_RECIP = MAPI_E_AMBIGUOUS_RECIPIENT; + MAPI_E_MESSAGE_IN_USE = 22; + MAPI_E_NETWORK_FAILURE = 23; + MAPI_E_INVALID_EDITFIELDS = 24; + MAPI_E_INVALID_RECIPS = 25; + MAPI_E_NOT_SUPPORTED = 26; + } + +{ case MError of + MAPI_E_USER_ABORT: + begin + if Assigned(FOnUserAbort) then + FOnUserAbort(Self); + end; + SUCCESS_SUCCESS: + begin + if Assigned(FOnSuccess) then + FOnSuccess(Self); + end + else + begin + if Assigned(FOnMapiError) then + FOnMapiError(Self, MError); + end; + end;} + Result := (MError = 0); + + finally + { Finally we do the cleanups, the message should be on its way } + { +> Changes by Andreas Hoerig [mailto:andreas.hoerig@sillner.com] } + PRecip := Recipients; + for i := 1 to MapiMessage.nRecipCount do + begin + StrDispose(PRecip^.lpszAddress); + Inc(PRecip) + end; + { +< Changes } + FreeMem(Recipients, MapiMessage.nRecipCount * sizeof(TMapiRecipDesc)); + { +> Changes due to Ken Halliwell [mailto:kjhalliwell@aol.com] } + if Assigned(PFiles) then + FreeMem(PFiles, MapiMessage.nFileCount * sizeof(TMapiFileDesc)); + { +< Changes } + end; +end; + +end. diff --git a/Source/Base/Utiles/uGridClipboardUtils.dcu b/Source/Base/Utiles/uGridClipboardUtils.dcu new file mode 100644 index 0000000..e7ef65b Binary files /dev/null and b/Source/Base/Utiles/uGridClipboardUtils.dcu differ diff --git a/Source/Base/Utiles/uGridClipboardUtils.pas b/Source/Base/Utiles/uGridClipboardUtils.pas new file mode 100644 index 0000000..1c5b89c --- /dev/null +++ b/Source/Base/Utiles/uGridClipboardUtils.pas @@ -0,0 +1,653 @@ +unit uGridClipboardUtils; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxGrid; + +procedure PegarAlGridDesdePortapapeles (AGrid : TcxGrid); +procedure CopiarSeleccionGridAlPortapapeles (AGrid : TcxGrid); +procedure CortarSeleccionGridAlPortapapeles (AGrid : TcxGrid); +function HayDatosEnPortapapeles(AFormat: Cardinal = 0): Boolean; + +procedure CopiarGridAlPortapapelesRTF (AGrid : TcxGrid; const ASoloSeleccion : Boolean = false); +procedure CopiarGridAlPortapapelesHTML (AGrid : TcxGrid; const ASoloSeleccion : Boolean = false); +procedure CopiarGridAlPortapapelesTXT (AGrid : TcxGrid; const ASoloSeleccion : Boolean = false); +procedure CopiarGridAlPortapapelesExcel (AGrid : TcxGrid; const ASoloSeleccion : Boolean = false); + +var + CF_FACTUGES : Cardinal; + CF_RTF : Cardinal; + CF_HTML: Cardinal; + +implementation + +uses + cxVariants, CtlToRTF, Clipbrd, DB, cxExport, cxGridExportLink, cxCustomData, + uSistemaFunc, ClipboardUtils, cxDBData, cxGridLevel, uStringsUtils, + cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGridDBDataDefinitions, uGridStatusUtils, + uDADataTable, uCalculosUtils, uControllerDetallesBase; + +type + TTipoAnadir = (taAnadir, taInsertar); + +procedure RegistrarFormatos; +begin + CF_FACTUGES := RegisterClipboardFormat ('FactuGES Format'); + if CF_FACTUGES = 0 then + raise Exception.Create('Error al registrar formato CF_FACTUGES'); + + CF_HTML := RegisterClipboardFormat ('HTML Format'); + if CF_HTML = 0 then + raise Exception.Create('Error al registrar formato CF_HTML'); + + CF_RTF := RegisterClipboardFormat('Rich Text Format'); + if CF_RTF = 0 then + raise Exception.Create('Error al registrar formato CF_RTF (CopiarSeleccionGridAlPortapapelesRTF)'); +end; + + +function _BuscarColumna (AView: TcxGridDBTableView; + const AName, ATypeValue : String; var AIndex : Integer) : Boolean; +var + i : Integer; + bNombreOk : Boolean; +begin + AIndex := -1; + Result := False; + for i := 0 to AView.ItemCount - 1 do + begin + if (AView.Items[i].DataBinding is TcxGridItemDBDataBinding) then + with (AView.Items[i].DataBinding as TcxGridItemDBDataBinding) do + bNombreOk := (FieldName = AName) + else + bNombreOk := (AView.Items[i].Caption = AName); + + if bNombreOk and (AView.Items[i].DataBinding.ValueType = ATypeValue) then + begin + AIndex := i; + Result := True; + Break; + end; + end; +end; + + +{$REGION 'LoadGridRowsFromStream'} +procedure LoadGridRowsFromStream(AView : TcxGridDBTableView; AStream: TStream; + var ACaption : String); +var + AValueNameList: TStringList; + AValueTypeList: TStringList; + ARecordID : Integer; + ARecordIndex : Integer; + bEstabaVacia : Boolean; + + iContador : Integer; + AValueName, AValueType : String; + iCols, NumCols : integer; + NumFilas: Integer; + AReader: TcxReader; + AValue : Variant; + AIndex : integer; + + //Se adapta para que se utilicen las mismas funciones que en el controllerbase + AControllerDetallesBase: IControllerDetallesBase; + ADataTable: IDAStronglyTypedDataTable; + +begin + if not Assigned(AView) then + raise Exception.Create('Vista no asignada (SaveGridViewToStream)'); + + if not Assigned(AStream) then + raise Exception.Create('Stream no asignado (SaveGridViewToStream)'); + + if not Supports((AView.DataController.DataSource as TDADataSource).DataTable, IDAStronglyTypedDataTable, ADataTable) then + raise Exception.Create('DataTable asignado no soporta IDAStronglyTypedDataTable)'); + + AReader := TcxReader.Create(AStream); + AValueNameList := TStringList.Create; + AValueTypeList := TStringList.Create; + + try + AControllerDetallesBase:= TControllerDetallesBase.Create; + AIndex := -1; + ACaption := AReader.ReadAnsiString; + NumCols := AReader.ReadInteger; // n de columnas + for iContador := 0 to NumCols - 1 do + begin + AValueName := AReader.ReadAnsiString; + AValueType := AReader.ReadAnsiString; + + AValueNameList.Add(AValueName); + AValueTypeList.Add(AValueType); + end; + + NumFilas := AReader.ReadInteger; + bEstabaVacia := ADataTable.IsEmpty; + + AView.DataController.BeginUpdate; + try + + // Localizar el punto donde se empieza a insertar + if not bEstabaVacia then + begin + ARecordIndex := AView.DataController.FocusedRecordIndex; + if ARecordIndex >= 0 then + begin + ARecordID := AView.DataController.GetRecordId(ARecordIndex); + ADataTable.Locate(AView.DataController.KeyFieldNames, ARecordID, []); + end; + end; + + for iContador := 0 to NumFilas - 1 do + begin + // Insertar una tupla de la forma adecuada + if bEstabaVacia then + begin + AControllerDetallesBase.Add(ADataTable,TIPO_DETALLE_CONCEPTO); + ADataTable.Edit; + end + else begin + if iContador = 0 then + ADataTable.Edit + else begin + AControllerDetallesBase.Add(ADataTable,TIPO_DETALLE_CONCEPTO); + ADataTable.Edit; + end; + end; + + try + for iCols := 0 to NumCols - 1 do + begin + AValue := AReader.ReadVariant; + if (Pos(AValueNameList[iCols], AView.DataController.KeyFieldNames) = 0) then + begin + if (AValueNameList[iCols] <> CAMPO_POSICION) then + if _BuscarColumna(AView, AValueNameList[iCols], AValueTypeList[iCols], AIndex) then + begin + if AIndex <> -1 then + ADataTable.DataTable.FieldByName(AView.DataController.GetItemField(AIndex).FieldName).Value := AValue; + end; + end; + end; + finally + ADataTable.Post; + end; + end; + finally + AView.DataController.EndUpdate; + end; + finally + FreeANDNIL(AReader); + FreeANDNIL(AValueNameList); + FreeANDNIL(AValueTypeList); + AControllerDetallesBase := Nil; + end; +end; +{$ENDREGION} + +{$REGION 'SaveGridRowsToStream'} +procedure SaveGridRowsToStream(AView : TcxGridDBTableView; AStream: TStream; + const ACaption : String; const ASoloSeleccion : Boolean = false); +var + AWriter: TcxWriter; + i, j : integer; + AName, AValueType : String; + + procedure _CopyForEachRowProc(ARowIndex: Integer; ARowInfo: TcxRowInfo); + var + iCols: Integer; + begin + for iCols := 0 to AView.ItemCount - 1 do + AWriter.WriteVariant(AView.DataController.GetRowValue(ARowInfo, iCols)); + end; + +begin + if not Assigned(AView) then + raise Exception.Create('Vista no asignada (SaveGridViewToStream)'); + + if not Assigned(AStream) then + raise Exception.Create('Stream no asignado (SaveGridViewToStream)'); + + if EsCadenaVacia(ACaption) then + raise Exception.Create('Etiqueta no asignada (SaveGridViewToStream)'); + + AWriter := TcxWriter.Create(AStream); + try + AWriter.WriteAnsiString(ACaption); + + AWriter.WriteInteger(AView.ItemCount); + for i := 0 to AView.ItemCount - 1 do + begin + AName := ''; + AValueType := ''; + + if AView.Items[i].DataBinding is TcxGridItemDBDataBinding then + AName := (AView.Items[i].DataBinding as TcxGridItemDBDataBinding).FieldName; + + if EsCadenaVacia(AName) then + AName := AView.Items[i].Caption; + + AValueType := AView.Items[i].DataBinding.ValueType; + + AWriter.WriteAnsiString(AName); + AWriter.WriteAnsiString(AValueType); + end; + + with AView.DataController do + begin + if ASoloSeleccion then + begin + AWriter.WriteInteger(GetSelectedCount); + for I := 0 to GetSelectedCount - 1 do + begin + J := GetSelectedRowIndex(I); + _CopyForEachRowProc(J, GetRowInfo(J)); + end; + end + else begin + AWriter.WriteInteger(GetRowCount); + for I := 0 to GetRowCount - 1 do + _CopyForEachRowProc(I, GetRowInfo(I)); + end; + end; + finally + FreeANDNIL(AWriter); + end; +end; +{$ENDREGION} + + +function HTMLToClipFmt(const AHTML: string): string; +const + CR = #13#10; + DescriptionSize = 105; + HeaderSize = 47; + FooterSize1 = 58; + FooterSize2 = 24; + + function GetHeader: string; + begin + Result := 'Version:0.9' + CR; + Result := Result + Format('StartHTML:%.10d', [DescriptionSize]) + CR; + Result := Result + Format('EndHTML:%.10d', [DescriptionSize + HeaderSize + Length(AHTML) + FooterSize1]) + CR; + Result := Result + Format('StartFragment:%.10d', [DescriptionSize + HeaderSize]) + CR; + Result := Result + Format('EndFragment:%.10d', [DescriptionSize + HeaderSize + Length(AHTML) + FooterSize2]) + CR; + Result := Result + '' + CR + '' + '' + '' + '
';
+  end;
+
+  function GetFooter: string;
+  begin
+    Result := '
'; + Result := Result + '' + CR + '' +end; + +begin + Result := GetHeader + AHTML + GetFooter; +end; + +function FormatHTMLClipboardHeader(HTMLText: string): string; +{http://www.swissdelphicenter.ch/torry/showcode.php?id=1391} +const + CrLf = #13#10; +begin + Result := 'Version:0.9' + CrLf; + Result := Result + 'StartHTML:-1' + CrLf; + Result := Result + 'EndHTML:-1' + CrLf; + Result := Result + 'StartFragment:000081' + CrLf; + Result := Result + 'EndFragment:' + CrLf; + Result := Result + HTMLText + CrLf; + Result := StringReplace(Result, '', Format('%.6d', [Length(Result)]), []); +end; + + +procedure CopiarGridAlPortapapelesHTML (AGrid : TcxGrid; const ASoloSeleccion : Boolean = false); + const + CR = #13#10; + DescriptionSize = 105; + HeaderSize = 47; + FooterSize1 = 58; + FooterSize2 = 24; + + function GetHeader(const AHTML: string): string; + begin + Result := 'Version:0.9' + CR; + Result := Result + Format('StartHTML:%.10d', [DescriptionSize]) + CR; + Result := Result + Format('EndHTML:%.10d', [DescriptionSize + HeaderSize + Length(AHTML) + FooterSize1]) + CR; + Result := Result + Format('StartFragment:%.10d', [DescriptionSize + HeaderSize]) + CR; + Result := Result + Format('EndFragment:%.10d', [DescriptionSize + HeaderSize + Length(AHTML) + FooterSize2]) + CR; + Result := Result + '' + CR + '' + '' + '' + '
';
+  end;
+
+  function GetFooter: string;
+  begin
+    Result := '
'; + Result := Result + '' + CR + '' + end; + +var + AFicheroTMP : String; + AStringList : TStringList; + HTMLText : String; +begin + if not Assigned(AGrid) then + raise Exception.Create('Vista no asignada (CopiarSeleccionGridAlPortapapelesTXT)'); + + RegistrarFormatos; + + AFicheroTMP := DarFicheroHTMLTemporal; + ExportGridToHTML(AFicheroTMP, AGrid, True, not ASoloSeleccion); + + if FileExists(AFicheroTMP) then + begin + AStringList := TStringList.Create; + try + AStringList.LoadFromFile(AFicheroTMP); + HTMLText := AStringList.Text; + AStringList.Insert(0, GetHeader(HTMLText)); + AStringList.Add(GetFooter); + CopyStringsToClipboard(CF_HTML, AStringList); + finally + FreeANDNIL(AStringList); + DeleteFile(AFicheroTMP) + end; + end; +end; + +procedure CopiarGridAlPortapapelesRTF (AGrid : TcxGrid; const ASoloSeleccion : Boolean = false); +var + ARTFConv : TCtrlToRTF; + AStringList : TStringList; +begin + if not Assigned(AGrid) then + raise Exception.Create('Grid no asignado (CopiarSeleccionGridAlPortapapelesTXT)'); + + RegistrarFormatos; + ARTFConv := TCtrlToRTF.Create(NIL); + try + ARTFConv.cxGridViewToRTF(TcxGridTableView(AGrid.ActiveView)); + + AStringList := TStringList.Create; + try + AStringList.Add(ARTFConv.RTFText); + CopyStringsToClipboard(CF_RTF, AStringList); + finally + FreeANDNIL(AStringList); + end; + finally + FreeANDNIL(ARTFConv); + end; +end; + + +procedure CopiarGridAlPortapapelesTXT (AGrid : TcxGrid; const ASoloSeleccion : Boolean = false); +{var + iFilas, iCols : Integer;} +begin + if not Assigned(AGrid) then + raise Exception.Create('Grid no asignado (CopiarSeleccionGridAlPortapapelesTXT)'); + + TcxGridTableView(AGrid.ActiveView).CopyToClipboard(not ASoloSeleccion); + +{ for iFilas := 0 to AGrid.ActiveView.Controller.SelectedRowCount-1 do + begin + for iCols := 0 to cxGridView.VisibleColumnCount-1 do + begin + + end; + StreamWriteStr(RTF, cxGridView.DataController.DisplayTexts[cxGridView.Controller.SelectedRows[i].RecordIndex, cxGridView.VisibleColumns[j].Index] +'\cell '); + } +end; + +procedure CopiarGridAlPortapapelesExcel (AGrid : TcxGrid; const ASoloSeleccion : Boolean = false); +var + AFicheroTMP : String; + AStream : TFileStream; +begin + if not Assigned(AGrid) then + raise Exception.Create('Vista no asignada (CopiarSeleccionGridAlPortapapelesTXT)'); + + RegistrarFormatos; + + AFicheroTMP := DarFicheroExcelTemporal; + ExportGridToExcel(AFicheroTMP, AGrid, True, not ASoloSeleccion); + + if FileExists(AFicheroTMP) then + begin + AStream := TFileStream.Create(AFicheroTMP, fmOpenRead); + try + CopyStreamToClipboard(CF_HTML, AStream); + finally + FreeANDNIL(AStream); + DeleteFile(AFicheroTMP) + end; + end; +end; + + +procedure CopiarSeleccionGridAlPortapapeles (AGrid : TcxGrid); +var + AMemStream : TMemoryStream; + AGridStatus : TcxGridStatus; +begin + if not Assigned(AGrid) then + raise Exception.Create('Grid no asignado (CopiarSeleccionGridAlPortapapelesTXT)'); + + ShowHourglassCursor; + try + RegistrarFormatos; + + AGridStatus := TcxGridStatus.Create(TcxGridDBTableView(AGrid.ActiveView)); + Clipboard.Open; + try + CopiarGridAlPortapapelesTXT(AGrid, True); + CopiarGridAlPortapapelesRTF(AGrid, True); + CopiarGridAlPortapapelesHTML(AGrid, True); + + AMemStream := TMemoryStream.Create; + try + SaveGridRowsToStream(TcxGridDBTableView(AGrid.ActiveView), AMemStream, AGrid.ActiveView.Name, True); + CopyStreamToClipboard(CF_FACTUGES, AMemStream); + finally + FreeAndNil(AMemStream); + end; + finally + Clipboard.Close; + AGridStatus.Restore(TcxGridDBTableView(AGrid.ActiveView)); + FreeAndNil(AGridStatus); + end; + finally + HideHourglassCursor; + end; +end; + + +procedure CortarSeleccionGridAlPortapapeles (AGrid : TcxGrid); +var + //Se adapta para que se utilicen las mismas funciones que en el controllerbase + AControllerDetallesBase: IControllerDetallesBase; + ADataTable : TDADataTable; + +begin + if Assigned(AGrid) then + ADataTable := ((AGrid.ActiveView as TcxGridDBTableView).DataController.DataSource as TDADataSource).DataTable; + + ShowHourglassCursor; + try + AControllerDetallesBase := TControllerDetallesBase.Create; + CopiarSeleccionGridAlPortapapeles(AGrid); + AGrid.ActiveView.DataController.DeleteSelection; + AControllerDetallesBase.Renumerar(ADataTable, ADataTable.FieldByName(CAMPO_POSICION).AsInteger); + finally + AControllerDetallesBase := Nil; + HideHourglassCursor; + end; +end; + + +procedure PegarSeleccionGridDesdePortapapeles (AGrid : TcxGrid); +var + AMemStream : TMemoryStream; + ACaption : String; + AGridStatus : TcxGridStatus; +begin + if not Assigned(AGrid) then + raise Exception.Create('Grid no asignado (PegarSeleccionGridDesdePortapapeles)'); + + RegistrarFormatos; + + if not Clipboard.HasFormat(CF_FACTUGES) then + raise Exception.Create('No hay nada en el portapapeles'); + + AGridStatus := TcxGridStatus.Create(TcxGridDBTableView(AGrid.ActiveView)); + Clipboard.Open; + try + AMemStream := TMemoryStream.Create; + try + CopyStreamFromClipboard(CF_FACTUGES, AMemStream); + LoadGridRowsFromStream(TcxGridDBTableView(AGrid.ActiveView), AMemStream, ACaption); + finally + FreeAndNil(AMemStream); + end; + finally + Clipboard.Close; + AGridStatus.Restore(TcxGridDBTableView(AGrid.ActiveView)); + FreeAndNil(AGridStatus); + end; +end; + + +procedure PegarTextoDesdePortapapeles (AGrid : TcxGrid); +var + AGridStatus : TcxGridStatus; + ATextList : TStringList; + + ARecordID : Integer; + ARecordIndex : Integer; + bEstabaVacia : Boolean; + AView : TcxGridDBTableView; + + iContador : Integer; + + //Se adapta para que se utilicen las mismas funciones que en el controllerbase + AControllerDetallesBase: IControllerDetallesBase; + ADataTable: IDAStronglyTypedDataTable; + +begin + + if not Assigned(AGrid) then + raise Exception.Create('Grid no asignado (PegarTextoDesdePortapapeles)'); + + if not Supports(((AGrid.ActiveView as TcxGridDBTableView).DataController.DataSource as TDADataSource).DataTable, IDAStronglyTypedDataTable, ADataTable) then + raise Exception.Create('DataTable asignado no soporta IDAStronglyTypedDataTable)'); + + RegistrarFormatos; + + if not Clipboard.HasFormat(CF_TEXT) then + raise Exception.Create('No hay nada en el portapapeles'); + + AView := TcxGridDBTableView(AGrid.ActiveView); + + AGridStatus := TcxGridStatus.Create(TcxGridDBTableView(AGrid.ActiveView)); + Clipboard.Open; + try + ATextList := TStringList.Create; + try + CopyStringsFromClipboard(CF_TEXT, ATextList); + AControllerDetallesBase := TControllerDetallesBase.Create; + bEstabaVacia := ADataTable.IsEmpty; + AView.DataController.BeginUpdate; + try + // Localizar el punto donde se empieza a insertar + if not bEstabaVacia then + begin + ARecordIndex := AView.DataController.FocusedRecordIndex; + if ARecordIndex >= 0 then + begin + ARecordID := AView.DataController.GetRecordId(ARecordIndex); + ADataTable.Locate(AView.DataController.KeyFieldNames, ARecordID, []); + end; + end; + + for iContador := 0 to ATextList.Count - 1 do + begin + // Insertar una tupla de la forma adecuada + if bEstabaVacia then + begin + AControllerDetallesBase.Add(ADataTable,TIPO_DETALLE_CONCEPTO); + ADataTable.Edit; + end + else begin + if iContador = 0 then + ADataTable.Edit + else begin + AControllerDetallesBase.Add(ADataTable,TIPO_DETALLE_CONCEPTO); + ADataTable.Edit; + end; + end; + + try + ADataTable.Edit; + ADataTable.DataTable.FieldByName('CONCEPTO').AsString := ATextList[iContador]; + finally + ADataTable.Post; + end; + end; + + finally + AView.DataController.EndUpdate; + end; + finally + FreeANDNIL(ATextList); + end; + finally + Clipboard.Close; + AGridStatus.Restore(TcxGridDBTableView(AGrid.ActiveView)); + FreeAndNil(AGridStatus); + AControllerDetallesBase := Nil; + end; +end; + + +function HayDatosEnPortapapeles(AFormat: Cardinal): Boolean; +begin + RegistrarFormatos; + + if AFormat = 0 then + Result := Clipboard.HasFormat(CF_FACTUGES) or Clipboard.HasFormat(CF_TEXT) + else + Result := Clipboard.HasFormat(AFormat); +end; + + +procedure PegarAlGridDesdePortapapeles (AGrid : TcxGrid); +begin + { Aqui se determina qu hacer. Si en el portapapeles hay datos en formato... + 1. CF_FACTUGES -> pegar conceptos + 2. CF_TEXT -> tratar y pegar texto plano + } + + ShowHourglassCursor; + try + RegistrarFormatos; + + if Clipboard.HasFormat(CF_FACTUGES) then + begin + PegarSeleccionGridDesdePortapapeles(AGrid); + Exit; + end; + + if Clipboard.HasFormat(CF_TEXT) then + begin + PegarTextoDesdePortapapeles(AGrid); + Exit; + end; + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Base/Utiles/uGridStatusUtils.dcu b/Source/Base/Utiles/uGridStatusUtils.dcu new file mode 100644 index 0000000..2019fcf Binary files /dev/null and b/Source/Base/Utiles/uGridStatusUtils.dcu differ diff --git a/Source/Base/Utiles/uGridStatusUtils.pas b/Source/Base/Utiles/uGridStatusUtils.pas new file mode 100644 index 0000000..8d3c5e9 --- /dev/null +++ b/Source/Base/Utiles/uGridStatusUtils.pas @@ -0,0 +1,304 @@ +unit uGridStatusUtils; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, + cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGrid, + uDBSelectionListUtils; + +type + TRecordInfo = class + KeyValues: Variant; + ALevel: Integer; + end; + + TRecordInfos = class(TList) + private + function GetItem(Index: Integer): TRecordInfo; + protected + procedure Notify(Ptr: Pointer; Action: TListNotification); override; + public + property Items[Index: Integer]: TRecordInfo read GetItem; Default; + end; + + TcxGridStatus = class + protected + GroupRecords: TRecordInfos; + SelectedRecords: TRecordInfos; + SelStartItem: Integer; + SelEndItem: Integer; + AFocusedRow: TRecordInfo; + TopRow: TRecordInfo; + + function SaveRecord(AView: TcxGridDBTableView; GridRecord: + TcxCustomGridRecord): TRecordInfo; + function FindRecordEx(AView: TcxGridDBTableView; RecordInfo: + TRecordInfo): TcxCustomGridRecord; + + procedure SaveGridViewSelection(AView: TcxGridDBTableView); + procedure LoadGridViewSelection(AView: TcxGridDBTableView); + procedure SaveGridViewTopFocusedRecords(AView: TcxGridDBTableView); + procedure LoadGridViewTopFocusedRecords(AView: TcxGridDBTableView); + procedure SaveGridViewExpanded(AView: TcxGridDBTableView); + procedure LoadGridViewExpanded(AView: TcxGridDBTableView); + public + constructor Create(AGridView: TcxGridDBTableView); + destructor Destroy; override; + procedure Restore(AGridView: TcxGridDBTableView); + end; + +procedure SeleccionarFilasDesdeGrid(const AView : TcxGridDBTableView; + ASelectedRowList : TSelectedRecords); + +implementation + +uses + uDADataTable, uDAInterfaces, cxVariants; + + +{$REGION 'TRecordInfos'} +procedure TRecordInfos.Notify(Ptr: Pointer; Action: TListNotification); +begin + if Action in [lnExtracted, lnDeleted] then + FreeAndNil(TRecordInfo(Ptr)); +end; + +function TRecordInfos.GetItem(Index: Integer): TRecordInfo; +begin + Result := TRecordInfo(inherited Items[Index]); +end; + +function TcxGridStatus.SaveRecord(AView: TcxGridDBTableView; + GridRecord: TcxCustomGridRecord): TRecordInfo; +begin + Result := TRecordInfo.Create; + Result.KeyValues := + AView.DataController.GetRecordId(GridRecord.RecordIndex); + Result.ALevel := GridRecord.Level; +end; + +function TcxGridStatus.FindRecordEx(AView: TcxGridDBTableView; RecordInfo: + TRecordInfo): TcxCustomGridRecord; +var + I, ARecordIndex: Integer; + AList: TList; + AKeyValue: Variant; +begin + if not Assigned(RecordInfo) then + Exit; + + I := 0; + ARecordIndex := AView.DataController.FindRecordIndexByKey(RecordInfo.KeyValues); + Result := nil; + AList := TList.Create; + try + while I < AView.ViewData.RowCount do + begin + if AView.ViewData.Rows[I] is TcxGridGroupRow then + begin + AList.Clear; + AView.DataController.Groups.LoadRecordIndexesByRowIndex(AList, I); + if AList.IndexOf(Pointer(ARecordIndex)) <> -1 then + begin + if AView.ViewData.Rows[I].Level < RecordInfo.ALevel then + AView.ViewData.Rows[I].Expand(False) + else + begin + Result := AView.ViewData.Rows[I]; + Break; + end; + end; + end + else + begin + AKeyValue := AView.DataController.GetRecordId(AView.ViewData.Rows[I].RecordIndex); + if VarEquals(AKeyValue, RecordInfo.KeyValues) then + begin + Result := AView.ViewData.Rows[I]; + Break; + end; + end; + Inc(I); + end; + finally + FreeAndNil(AList); + end; +end; + +procedure TcxGridStatus.SaveGridViewSelection( + AView: TcxGridDBTableView); +var + i: Integer; + SelectRecordInfo: TRecordInfo; +begin + with AView.DataController, AView.Controller do + begin + for i := 0 To SelectedRecordCount - 1 do + begin + SelectRecordInfo := SaveRecord(AView, SelectedRecords[i]); + Self.SelectedRecords.Add(SelectRecordInfo); + end; + if SelectedColumnCount = 0 then + begin + SelStartItem := -1; + SelEndItem := -1; + end + else + begin + SelStartItem := SelectedColumns[0].Index; + SelEndItem := SelectedColumns[SelectedColumnCount - 1].Index; + end; + end; +end; + +procedure TcxGridStatus.LoadGridViewSelection( + AView: TcxGridDBTableView); +var + i: Integer; + ARecord: TcxCustomGridRecord; +begin + AView.Controller.ClearSelection; + + for i := 0 To SelectedRecords.Count - 1 do + begin + ARecord := FindRecordEx(AView, SelectedRecords[i]); + if Assigned(ARecord) then + ARecord.Selected := True; + end; + + if SelStartItem <> -1 then + AView.Controller.SelectColumns(AView.Columns[SelStartItem], + AView.Columns[SelEndItem]); +end; + +procedure TcxGridStatus.SaveGridViewTopFocusedRecords(AView: TcxGridDBTableView); +begin + if AView.Controller.FocusedRow = nil then + AFocusedRow := nil + else + AFocusedRow := SaveRecord(AView, AView.Controller.FocusedRow); + TopRow := nil; + if (AView.Controller.TopRowIndex <> -1) and + (AView.Controller.TopRowIndex < AView.ViewData.RecordCount) then + TopRow := SaveRecord(AView, AView.ViewData.Records[AView.Controller.TopRowIndex]); +end; + +procedure TcxGridStatus.LoadGridViewTopFocusedRecords(AView: TcxGridDBTableView); +var + ARecord: TcxCustomGridRecord; +begin + if Assigned(AFocusedRow) then + begin + ARecord := FindRecordEx(AView, AFocusedRow); + if Assigned(ARecord) then + ARecord.Focused := True; + ARecord := FindRecordEx(AView, TopRow); + if Assigned(ARecord) then + AView.Controller.TopRowIndex := ARecord.Index; + end; +end; + +type + TcxDataControllerGroupsAccess = class(TcxDataControllerGroups); + TcxDataGroupsAccess = class(TcxDataGroups); + +procedure TcxGridStatus.SaveGridViewExpanded( + AView: TcxGridDBTableView); +var + i: Integer; + GroupRecordInfo: TRecordInfo; +begin + for i := 0 To AView.DataController.RowCount - 1 do + with AView.ViewData.Records[i] do + if Expanded then + begin + GroupRecordInfo := SaveRecord(AView, AView.ViewData.Records[i]); + GroupRecords.Add(GroupRecordInfo); + end; +end; + +procedure TcxGridStatus.LoadGridViewExpanded( + AView: TcxGridDBTableView); +var + i: Integer; + ARecord: TcxCustomGridRecord; +begin + for i := 0 to GroupRecords.Count - 1 do + begin + ARecord := FindRecordEx(AView, GroupRecords[i]); + if Assigned(ARecord) then + ARecord.Expand(False); + end; +end; + +constructor TcxGridStatus.Create(AGridView: TcxGridDBTableView); +begin + inherited Create; + GroupRecords := TRecordInfos.Create; + SelectedRecords := TRecordInfos.Create; + SaveGridViewSelection(AGridView); + SaveGridViewExpanded(AGridView); + SaveGridViewTopFocusedRecords(AGridView); +end; + +destructor TcxGridStatus.Destroy; +begin + FreeAndNil(GroupRecords); + FreeAndNil(SelectedRecords); + inherited; +end; + +procedure TcxGridStatus.Restore(AGridView: TcxGridDBTableView); +begin + SendMessage(AGridView.Site.Handle, WM_SETREDRAW, 0, 0); + try + AGridView.ViewData.Collapse(True); + LoadGridViewExpanded(AGridView); + LoadGridViewSelection(AGridView); + LoadGridViewTopFocusedRecords(AGridView); + finally + SendMessage(AGridView.Site.Handle, WM_SETREDRAW, 1, 0); + RedrawWindow(AGridView.Site.Handle, Nil, 0, RDW_FRAME Or RDW_NOFRAME Or + RDW_ALLCHILDREN Or RDW_INVALIDATE); + end; +end; + + +procedure SeleccionarFilasDesdeGrid(const AView : TcxGridDBTableView; + ASelectedRowList : TSelectedRecords); +var + ARecord: TcxCustomGridRecord; + i : Integer; + AGridStatus : TcxGridStatus; +begin + if not Assigned(AView) then + raise Exception.Create('No hay vista asignada (SeleccionarFilasDesdeGrid)'); + + ShowHourglassCursor; + AGridStatus := TcxGridStatus.Create(AView); + AView.BeginUpdate; + try + ASelectedRowList.Clear; + for i := 0 to TcxCustomGridTableController(AView.Controller).SelectedRecordCount - 1 do + begin + ARecord := TcxCustomGridTableController(AView.Controller).SelectedRecords[i]; + if (ARecord is TcxGridDataRow) then + begin + (ARecord as TcxGridDataRow).Focused := True; + ASelectedRowList.CurrentRowSelected := True; + end; + end; + finally + AView.EndUpdate; + AGridStatus.Restore(AView); + FreeANDNIL(AGridStatus); + HideHourglassCursor; + end; +end; +{$ENDREGION} + +end. diff --git a/Source/Base/Utiles/uInfoProjectUtils.dcu b/Source/Base/Utiles/uInfoProjectUtils.dcu new file mode 100644 index 0000000..bfb8df3 Binary files /dev/null and b/Source/Base/Utiles/uInfoProjectUtils.dcu differ diff --git a/Source/Base/Utiles/uInfoProjectUtils.pas b/Source/Base/Utiles/uInfoProjectUtils.pas new file mode 100644 index 0000000..7a728c5 --- /dev/null +++ b/Source/Base/Utiles/uInfoProjectUtils.pas @@ -0,0 +1,187 @@ +{ +=============================================================================== + Copyright () 2005. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: 17-05-2005 + Versin actual: 1.0.0 + Fecha versin actual: 17-05-2005 +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} +unit uInfoProjectUtils; + +interface + +uses + Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs; + +type + TInfoProject = class(TComponent) + private + { Private declarations } + FFVIBuff: Pointer; + FFVISize: DWord; + FHandle: DWord; + FFileName: String; + FLanguage: Word; + FCodePage: Word; + FLanguageCodePage: String; + FCompanyName: String; + FFileDescription: String; + FFileVersion: String; + FInternalName: String; + FLegalCopyright: String; + FLegalTradeMarks: String; + FOriginalFileName: String; + FProductName: String; + FProductVersion: String; + FComments: String; + procedure ReadFixedFileInfo; + function GetLangCPage: String; + function GetStringFileInfo(S: String): String; + procedure SetFileName(const Value: String); + protected + { Protected declarations } + public + { Public declarations } + constructor Create(AOwner: TComponent); override; + function LanguageStr(Language: Word): String; + property FileName: String read FFileName write SetFileName; + property Language: Word read FLanguage; + property CodePage: Word read FCodePage; + property LanguageCodePage: String read FLanguageCodePage; + property CompanyName: String read FCompanyName; + property FileDescription: String read FFileDescription; + property FileVersion: String read FFileVersion; + property InternalName: String read FInternalName; + property LegalCopyright: String read FLegalCopyright; + property LegalTradeMarks: String read FLegalTradeMarks; + property OriginalFileName: String read FOriginalFileName; + property ProductName: String read FProductName; + property ProductVersion: String read FProductVersion; + property Comments: String read FComments; + published + { Published declarations } + end; + +implementation + +{ TInfoProject } + +constructor TInfoProject.Create(AOwner: TComponent); +begin { of TInfoProject.Create } + inherited Create(AOwner); + + { build current EXE filename } + FileName := ParamStr(0); +end; { of TInfoProject.Create } + +procedure TInfoProject.ReadFixedFileInfo; +begin { of TInfoProject.ReadFixedFileInfo } + { determine size of buffer required } + FFVISize := GetFileVersionInfoSize(PChar(FileName), FHandle); + + { create buffer } + GetMem(FFVIBuff, FFVISize); + try + + { load buffer } + GetFileVersionInfo(PChar(FileName), FHandle, FFVISize, FFVIBuff); + + { extract the language/codepage info } + FLanguageCodePage := GetLangCPage; + + { extract the other info } + FCompanyName := GetStringFileInfo('CompanyName'); + FFileDescription := GetStringFileInfo('FileDescription'); + FFileVersion := GetStringFileInfo('FileVersion'); + FInternalName := GetStringFileInfo('InternalName'); + FLegalCopyright := GetStringFileInfo('LegalCopyright'); + FLegalTradeMarks := GetStringFileInfo('LegalTradeMarks'); + FOriginalFileName := GetStringFileInfo('OriginalFileName'); + FProductName := GetStringFileInfo('ProductName'); + FProductVersion := GetStringFileInfo('ProductVersion'); + FComments := GetStringFileInfo('Comments'); + + finally + { dispose buffer } + FreeMem(FFVIBuff, FFVISize); + end; +end; { of TInfoProject.ReadFixedFileInfo } + +function TInfoProject.LanguageStr(Language: Word): String; +var + P: array[0..255] of Char; + Len: Word; +begin { of TInfoProject.LanguageStr } + Len := VerLanguageName(Language, P, SizeOf(P)); + if (Len > SizeOf(P)) then + begin + { if this occurs then the P buffer is too small } + { so we will truncate the returned string } + Len := SizeOf(P); + end; + SetString(Result, P, Len); +end; { of TInfoProject.LanguageStr } + +function TInfoProject.GetLangCPage: String; +var + SearchString: String; + FVILang: array of Byte; + Len: DWORD; +begin { of TInfoProject.GetLangCPage } + Result := '00000000'; + if (FFVIBuff <> NIL) then + begin + SearchString := '\VarFileInfo\Translation'; + if VerQueryValue(FFVIBuff, PChar(SearchString), + Pointer(FVILang), Len) then + begin + FLanguage := FVILang[0] + FVILang[1]*$100; + FCodePage := FVILang[2] + FVILang[3]*$100; + Result := IntToHex(FLanguage, 4) + IntToHex(FCodePage, 4); + end; + end; +end; { of TInfoProject.GetLangCPage } + +function TInfoProject.GetStringFileInfo(S: String): String; +var + SearchString: String; + P: PChar; + Len: DWORD; +begin { of TInfoProject.GetStringFileInfo } + Result := ''; + if (FFVIBuff <> NIL) then + begin + SearchString := '\StringFileInfo\'+FLanguageCodePage+'\'+S; + if VerQueryValue(FFVIBuff, PChar(SearchString), Pointer(P), Len) then + begin + { coded with StrLen to ditch the trailing #0 character } + SetString(Result, P, StrLen(P)); + end; + end; +end; { of TInfoProject.GetStringFileInfo } + +procedure TInfoProject.SetFileName(const Value: String); +begin { of TInfoProject.SetFileName } + FFileName := ExpandUNCFileName(Value); + + { read fileinfo from this new file } + ReadFixedFileInfo; + +end; { of TInfoProject.SetFileName } + +end. + diff --git a/Source/Base/Utiles/uIntegerListUtils.dcu b/Source/Base/Utiles/uIntegerListUtils.dcu new file mode 100644 index 0000000..8c979f1 Binary files /dev/null and b/Source/Base/Utiles/uIntegerListUtils.dcu differ diff --git a/Source/Base/Utiles/uIntegerListUtils.pas b/Source/Base/Utiles/uIntegerListUtils.pas new file mode 100644 index 0000000..9ea3429 --- /dev/null +++ b/Source/Base/Utiles/uIntegerListUtils.pas @@ -0,0 +1,71 @@ +unit uIntegerListUtils; + +interface + +uses + Classes, FactuGES_Intf; + +type + TIntegerList = class(TList) + private + function GetInteger(Index: integer): integer; + procedure SetInteger(Index: integer; Value: integer); + public + procedure Add(Value: integer); reintroduce; + function Find(Value: integer; var Index: Integer): Boolean; + property Integers[index: integer]: integer read GetInteger write SetInteger; default; + function ToIntegerArray : TIntegerArray; + end; + +implementation + +function TIntegerList.GetInteger(Index: integer): integer; +begin + Result := Integer(Items[index]); +end; + +procedure TIntegerList.SetInteger(Index: integer; Value: integer); +begin + Items[index] := Pointer(Value); +end; + +function TIntegerList.ToIntegerArray: TIntegerArray; +var + i : Integer; +begin + Result := TIntegerArray.Create; + for i := 0 to Count - 1 do + Result.Add(Integers[i]); +end; + +procedure TIntegerList.Add(Value: integer); +var + Index: integer; +begin + if not Find(Value, Index) then + Insert(Index, Pointer(Value)); +end; + +function TIntegerList.Find(Value: integer; var Index: Integer): Boolean; +var + L, H, I, C: Integer; +begin + Result := False; + L := 0; + H := Count - 1; + while L <= H do + begin + I := (L + H) shr 1; + C := Integers[I] - Value; + if C < 0 then + L := I + 1 + else begin + H := I - 1; + if C = 0 then + Result := True; + end; + end; + Index := L; +end; + +end. diff --git a/Source/Base/Utiles/uMD5.dcu b/Source/Base/Utiles/uMD5.dcu new file mode 100644 index 0000000..f92c3fd Binary files /dev/null and b/Source/Base/Utiles/uMD5.dcu differ diff --git a/Source/Base/Utiles/uMD5.pas b/Source/Base/Utiles/uMD5.pas new file mode 100644 index 0000000..9f13d52 --- /dev/null +++ b/Source/Base/Utiles/uMD5.pas @@ -0,0 +1,435 @@ +{******************************************************************} +{ MD5 Hashsum Evaluation Unit For Borland Delphi } +{ } +{ Copyright 2002 by Dimka Maslov } +{ E-mail: mail@endimus.com, } +{ Web-site: http://www.endimus.com } +{ } +{ Derived from the RSA Data Security, Inc. } +{ MD5 Message-Digest Algorithm described in RFC 1321 } +{ http://www.faqs.org/rfcs/rfc1321.html } +{******************************************************************} + +unit uMD5; + +interface + +uses Windows, SysUtils, Classes; + +type +{ The TMD5Digest record is the type of results of + the MD5 hashsum evaluation functions. The contents + of a record may be used as four 32-bit integer values + or as an array of 16 bytes } + PMD5Digest = ^TMD5Digest; + TMD5Digest = record + case Integer of + 0: (A, B, C, D: LongInt); + 1: (v: array [0..15] of Byte); + end; + +{ The MD5String function evaluates the MD5 hashsum for + a string. The S parameter specifies a string to + evaluate hashsum } +function MD5String(const S: string): TMD5Digest; + +{ The MD5File function evaluates the MD5 hashsum for + a file. The FileName parameter specifies the name + of a file to evaluate hashsum } +function MD5File(const FileName: string): TMD5Digest; + +{ The MD5Stream function evaluates the MD5 hashsum for + a stream. The Stream parameters specifies the + TStream descendant class object to evaluate hashsum } +function MD5Stream(const Stream: TStream): TMD5Digest; + +{ The MD5Buffer function evaluates the MD5 hashsum for + any memory buffer. The Buffer parameters specifies a + buffer to evaluate hashsum. The Size parameter specifies + the size (in bytes) of a buffer } +function MD5Buffer(const Buffer; Size: Integer): TMD5Digest; + +{ The MD5DigestToStr function converts the result of + a hashsum evaluation function into a string of + hexadecimal digits } +function MD5DigestToStr(const Digest: TMD5Digest): string; + +{ The MD5DigestCompare function compares two + TMD5Digest record variables. This function returns + TRUE if parameters are equal or FALSE otherwise } +function MD5DigestCompare(const Digest1, Digest2: TMD5Digest): Boolean; + +implementation + +{ +Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All +rights reserved. + +License to copy and use this software is granted provided that it +is identified as the "RSA Data Security, Inc. MD5 Message-Digest +Algorithm" in all material mentioning or referencing this software +or this function. + +License is also granted to make and use derivative works provided +that such works are identified as "derived from the RSA Data +Security, Inc. MD5 Message-Digest Algorithm" in all material +mentioning or referencing the derived work. + +RSA Data Security, Inc. makes no representations concerning either +the merchantability of this software or the suitability of this +software for any particular purpose. It is provided "as is" +without express or implied warranty of any kind. + +These notices must be retained in any copies of any part of this +documentation and/or software. +} + + +type + UINT4 = LongWord; + + PArray4UINT4 = ^TArray4UINT4; + TArray4UINT4 = array [0..3] of UINT4; + PArray2UINT4 = ^TArray2UINT4; + TArray2UINT4 = array [0..1] of UINT4; + PArray16Byte = ^TArray16Byte; + TArray16Byte = array [0..15] of Byte; + PArray64Byte = ^TArray64Byte; + TArray64Byte = array [0..63] of Byte; + + PByteArray = ^TByteArray; + TByteArray = array [0..0] of Byte; + + PUINT4Array = ^TUINT4Array; + TUINT4Array = array [0..0] of UINT4; + + PMD5Context = ^TMD5Context; + TMD5Context = record + state: TArray4UINT4; + count: TArray2UINT4; + buffer: TArray64Byte; + end; + +const + S11 = 7; + S12 = 12; + S13 = 17; + S14 = 22; + S21 = 5; + S22 = 9; + S23 = 14; + S24 = 20; + S31 = 4; + S32 = 11; + S33 = 16; + S34 = 23; + S41 = 6; + S42 = 10; + S43 = 15; + S44 = 21; + +var + Padding : TArray64Byte = + ($80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); + + +function _F(x, y, z: UINT4): UINT4; +begin + Result := (((x) and (y)) or ((not x) and (z))); +end; + +function _G(x, y, z: UINT4): UINT4; +begin + Result := (((x) and (z)) or ((y) and (not z))); +end; + +function _H(x, y, z: UINT4): UINT4; +begin + Result := ((x) xor (y) xor (z)); +end; + +function _I(x, y, z: UINT4): UINT4; +begin + Result := ((y) xor ((x) or ( not z))); +end; + +function ROTATE_LEFT(x, n: UINT4): UINT4; +begin + Result := (((x) shl (n)) or ((x) shr (32-(n)))); +end; + +procedure FF(var a: UINT4; b, c, d, x, s, ac: UINT4); +begin + a := a + _F(b, c, d) + x + ac; + a := ROTATE_LEFT (a, s); + a := a + b; +end; + +procedure GG(var a: UINT4; b, c, d, x, s, ac: UINT4); +begin + a := a + _G(b, c, d) + x + ac; + a := ROTATE_LEFT(a, s); + a := a + b; +end; + +procedure HH(var a: UINT4; b, c, d, x, s, ac: UINT4); +begin + a := a + _H(b, c, d) + x + ac; + a := ROTATE_LEFT(a, s); + a := a + b; +end; + +procedure II(var a: UINT4; b, c, d, x, s, ac: UINT4); +begin + a := a + _I(b, c, d) + x + ac; + a := ROTATE_LEFT(a, s); + a := a + b; +end; + +procedure MD5Encode(Output: PByteArray; Input: PUINT4Array; Len: LongWord); +var + i, j: LongWord; +begin + j:=0; + i:=0; + while j < Len do begin + output[j] := Byte(input[i] and $ff); + output[j+1] := Byte((input[i] shr 8) and $ff); + output[j+2] := Byte((input[i] shr 16) and $ff); + output[j+3] := Byte((input[i] shr 24) and $ff); + Inc(j, 4); + Inc(i); + end; +end; + +procedure MD5Decode(Output: PUINT4Array; Input: PByteArray; Len: LongWord); +var + i, j: LongWord; +begin + j:=0; + i:=0; + while j < Len do begin + Output[i] := UINT4(input[j]) or (UINT4(input[j+1]) shl 8) or + (UINT4(input[j+2]) shl 16) or ( UINT4(input[j+3]) shl 24); + Inc(j, 4); + Inc(i); + end; +end; + +procedure MD5_memcpy(Output: PByteArray; Input: PByteArray; Len: LongWord); +begin + Move(Input^, Output^, Len); +end; + +procedure MD5_memset(Output: PByteArray; Value: Integer; Len: LongWord); +begin + FillChar(Output^, Len, Byte(Value)); +end; + +procedure MD5Transform(State: PArray4UINT4; Buffer: PArray64Byte); +var + a, b, c, d: UINT4; + x : array[0..15] of UINT4; +begin + a:=State[0]; b:=State[1]; c:=State[2]; d:=State[3]; + MD5Decode(PUINT4Array(@x), PByteArray(Buffer), 64); + + FF (a, b, c, d, x[ 0], S11, $d76aa478); + FF (d, a, b, c, x[ 1], S12, $e8c7b756); + FF (c, d, a, b, x[ 2], S13, $242070db); + FF (b, c, d, a, x[ 3], S14, $c1bdceee); + FF (a, b, c, d, x[ 4], S11, $f57c0faf); + FF (d, a, b, c, x[ 5], S12, $4787c62a); + FF (c, d, a, b, x[ 6], S13, $a8304613); + FF (b, c, d, a, x[ 7], S14, $fd469501); + FF (a, b, c, d, x[ 8], S11, $698098d8); + FF (d, a, b, c, x[ 9], S12, $8b44f7af); + FF (c, d, a, b, x[10], S13, $ffff5bb1); + FF (b, c, d, a, x[11], S14, $895cd7be); + FF (a, b, c, d, x[12], S11, $6b901122); + FF (d, a, b, c, x[13], S12, $fd987193); + FF (c, d, a, b, x[14], S13, $a679438e); + FF (b, c, d, a, x[15], S14, $49b40821); + + GG (a, b, c, d, x[ 1], S21, $f61e2562); + GG (d, a, b, c, x[ 6], S22, $c040b340); + GG (c, d, a, b, x[11], S23, $265e5a51); + GG (b, c, d, a, x[ 0], S24, $e9b6c7aa); + GG (a, b, c, d, x[ 5], S21, $d62f105d); + GG (d, a, b, c, x[10], S22, $2441453); + GG (c, d, a, b, x[15], S23, $d8a1e681); + GG (b, c, d, a, x[ 4], S24, $e7d3fbc8); + GG (a, b, c, d, x[ 9], S21, $21e1cde6); + GG (d, a, b, c, x[14], S22, $c33707d6); + GG (c, d, a, b, x[ 3], S23, $f4d50d87); + + GG (b, c, d, a, x[ 8], S24, $455a14ed); + GG (a, b, c, d, x[13], S21, $a9e3e905); + GG (d, a, b, c, x[ 2], S22, $fcefa3f8); + GG (c, d, a, b, x[ 7], S23, $676f02d9); + GG (b, c, d, a, x[12], S24, $8d2a4c8a); + + HH (a, b, c, d, x[ 5], S31, $fffa3942); + HH (d, a, b, c, x[ 8], S32, $8771f681); + HH (c, d, a, b, x[11], S33, $6d9d6122); + HH (b, c, d, a, x[14], S34, $fde5380c); + HH (a, b, c, d, x[ 1], S31, $a4beea44); + HH (d, a, b, c, x[ 4], S32, $4bdecfa9); + HH (c, d, a, b, x[ 7], S33, $f6bb4b60); + HH (b, c, d, a, x[10], S34, $bebfbc70); + HH (a, b, c, d, x[13], S31, $289b7ec6); + HH (d, a, b, c, x[ 0], S32, $eaa127fa); + HH (c, d, a, b, x[ 3], S33, $d4ef3085); + HH (b, c, d, a, x[ 6], S34, $4881d05); + HH (a, b, c, d, x[ 9], S31, $d9d4d039); + HH (d, a, b, c, x[12], S32, $e6db99e5); + HH (c, d, a, b, x[15], S33, $1fa27cf8); + HH (b, c, d, a, x[ 2], S34, $c4ac5665); + + II (a, b, c, d, x[ 0], S41, $f4292244); + II (d, a, b, c, x[ 7], S42, $432aff97); + II (c, d, a, b, x[14], S43, $ab9423a7); + II (b, c, d, a, x[ 5], S44, $fc93a039); + II (a, b, c, d, x[12], S41, $655b59c3); + II (d, a, b, c, x[ 3], S42, $8f0ccc92); + II (c, d, a, b, x[10], S43, $ffeff47d); + II (b, c, d, a, x[ 1], S44, $85845dd1); + II (a, b, c, d, x[ 8], S41, $6fa87e4f); + II (d, a, b, c, x[15], S42, $fe2ce6e0); + II (c, d, a, b, x[ 6], S43, $a3014314); + II (b, c, d, a, x[13], S44, $4e0811a1); + II (a, b, c, d, x[ 4], S41, $f7537e82); + II (d, a, b, c, x[11], S42, $bd3af235); + II (c, d, a, b, x[ 2], S43, $2ad7d2bb); + II (b, c, d, a, x[ 9], S44, $eb86d391); + + Inc(State[0], a); + Inc(State[1], b); + Inc(State[2], c); + Inc(State[3], d); + + MD5_memset (PByteArray(@x), 0, SizeOf (x)); +end; + + +procedure MD5Init(var Context: TMD5Context); +begin + FillChar(Context, SizeOf(Context), 0); + Context.state[0] := $67452301; + Context.state[1] := $efcdab89; + Context.state[2] := $98badcfe; + Context.state[3] := $10325476; +end; + +procedure MD5Update(var Context: TMD5Context; Input: PByteArray; InputLen: LongWord); +var + i, index, partLen: LongWord; + +begin + index := LongWord( (context.count[0] shr 3) and $3F); + Inc(Context.count[0], UINT4(InputLen) shl 3); + if Context.count[0] < UINT4(InputLen) shl 3 then Inc(Context.count[1]); + Inc(Context.count[1], UINT4(InputLen) shr 29); + partLen := 64 - index; + if inputLen >= partLen then begin + MD5_memcpy(PByteArray(@Context.buffer[index]), Input, PartLen); + MD5Transform(@Context.state, @Context.buffer); + i := partLen; + while i + 63 < inputLen do begin + MD5Transform(@Context.state, PArray64Byte(@Input[i])); + Inc(i, 64); + end; + index := 0; + end else i:=0; + MD5_memcpy(PByteArray(@Context.buffer[index]), PByteArray(@Input[i]), inputLen - i); +end; + + +procedure MD5Final(var Digest: TMD5Digest; var Context: TMD5Context); +var + bits: array [0..7] of Byte; + index, padLen: LongWord; +begin + MD5Encode(PByteArray(@bits), PUINT4Array(@Context.count), 8); + index := LongWord( (Context.count[0] shr 3) and $3F); + if index < 56 then padLen := 56 - index else padLen := 120 - index; + MD5Update(Context, PByteArray(@PADDING), padLen); + MD5Update(Context, PByteArray(@Bits), 8); + MD5Encode(PByteArray(@Digest), PUINT4Array(@Context.state), 16); + MD5_memset(PByteArray(@Context), 0, SizeOf(Context)); +end; + +function MD5DigestToStr(const Digest: TMD5Digest): string; +var + i: Integer; +begin + Result:=''; + for i:=0 to 15 do Result:=Result+IntToHex(Digest.v[i], 2); +end; + +function MD5String(const S: string): TMD5Digest; +begin + Result:=MD5Buffer(PChar(S)^, Length(S)); +end; + +function MD5File(const FileName: string): TMD5Digest; +var + F: TFileStream; +begin + F:=TFileStream.Create(FileName, fmOpenRead); + try + Result:=MD5Stream(F); + finally + F.Free; + end; +end; + +function MD5Stream(const Stream: TStream): TMD5Digest; +var + Context: TMD5Context; + Buffer: array[0..4095] of Byte; + Size: Integer; + ReadBytes : Integer; + TotalBytes : Integer; + SavePos: Integer; +begin + MD5Init(Context); + Size:=Stream.Size; + SavePos:=Stream.Position; + TotalBytes:=0; + try + Stream.Seek(0, soFromBeginning); + repeat + ReadBytes:=Stream.Read(Buffer, SizeOf(Buffer)); + Inc(TotalBytes, ReadBytes); + MD5Update(Context, @Buffer, ReadBytes); + until (ReadBytes = 0) or (TotalBytes = Size); + finally + Stream.Seek(SavePos, soFromBeginning); + end; + MD5Final(Result, Context); +end; + +function MD5Buffer(const Buffer; Size: Integer): TMD5Digest; +var + Context: TMD5Context; +begin + MD5Init(Context); + MD5Update(Context, PByteArray(@Buffer), Size); + MD5Final(Result, Context); +end; + +function MD5DigestCompare(const Digest1, Digest2: TMD5Digest): Boolean; +begin + Result:=False; + if Digest1.A <> Digest2.A then Exit; + if Digest1.B <> Digest2.B then Exit; + if Digest1.C <> Digest2.C then Exit; + if Digest1.D <> Digest2.D then Exit; + Result:=True; +end; + + +end. diff --git a/Source/Base/Utiles/uNumUtils.dcu b/Source/Base/Utiles/uNumUtils.dcu new file mode 100644 index 0000000..f36dd96 Binary files /dev/null and b/Source/Base/Utiles/uNumUtils.dcu differ diff --git a/Source/Base/Utiles/uNumUtils.pas b/Source/Base/Utiles/uNumUtils.pas new file mode 100644 index 0000000..8a0ec3e --- /dev/null +++ b/Source/Base/Utiles/uNumUtils.pas @@ -0,0 +1,124 @@ +{ +=============================================================================== + Copyright () 2002. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: 01-11-2002 + Versin actual: 1.0.0 + Fecha versin actual: 01-11-2002 +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uNumUtils; + +interface + +Function IntToLetras(Numero:LongInt):String; +Function xxIntToLetras(Valor:LongInt):String; +Function CifraToLetras(Cifra: Double): String; + +implementation + +uses SysUtils, Dialogs; +// SysUtils, Windows, Dialogs, Messages, Classes, Graphics, Controls, Forms, StdCtrls; + +Function xxIntToLetras(Valor:LongInt):String; +const + aUnitat : array[1..15] of String = ('UNO','DOS','TRES','CUATRO','CINCO','SEIS', + 'SIETE','OCHO','NUEVE','DIEZ','ONCE','DOCE', + 'TRECE','CATORCE','QUINCE'); + aCentena: array[1..9] of String = ('CIENTO','DOSCIENTOS','TRESCIENTOS', + 'CUATROCIENTOS','QUINIENTOS','SEISCIENTOS', + 'SETECIENTOS','OCHOCIENTOS','NOVECIENTOS'); + aDecena : array[1..9] of String = ('DIECI','VEINTI','TREINTA','CUARENTA','CINCUENTA', + 'SESENTA','SETENTA','OCHENTA','NOVENTA'); +var + Centena, Decena, Unitat, Doble: LongInt; + Linea: String; +begin + if valor=100 then Linea:=' CIEN ' {Maximo Valor sera 999, ejemplo con 123} + else begin + Linea:=''; + Centena := Valor div 100; {1 } + Doble := Valor - (Centena*100); {23} + Decena := (Valor div 10) - (Centena*10); {2 } + Unitat := Valor - (Decena*10) - (Centena*100); {3 } + + if Centena>0 then Linea:=Linea+Acentena[centena]+' '; + + if Doble>0 then begin + if Doble=20 then Linea:=Linea+' VEINTE ' + else begin + if doble<16 then Linea:=Linea+Aunitat[Doble] + else begin + Linea:=Linea+' '+Adecena[Decena]; + if (Decena>2) and (Unitat<>0) then Linea:=Linea+' Y '; + if Unitat>0 then Linea:=Linea+Aunitat[Unitat]; + end; + end; + end; + + end; + Result:=Linea; +end; + +Function IntToLetras(Numero:LongInt):String; +var + Millions,mils,unitats: Longint; + Linea : String; +begin + {Inicializamos el string que contendra las letras segun el valor numerico} + if numero=0 then Linea:='Cero' + else if numero<0 then Linea:='MENOS ' + else if numero>0 then Linea:=''; + + {Determinamos el N de millones, miles, i unidades de numero en positivo} + Numero := Abs(Numero); + millions := numero div 1000000; + mils := (numero - (millions*1000000)) div 1000; + unitats := numero - ((millions*1000000)+(mils*1000)); + + {Vamos poniendot en el string las cadenas de los numeros(llamando a subfuncion)} + if millions=1 then Linea:= Linea + ' UN MILLON ' + else if millions>1 then Linea := Linea + xxIntToLetras(millions) + ' MILLONES '; + + if mils =1 then Linea:= Linea + ' MIL ' + else if mils>1 then Linea := Linea + xxIntToLetras(mils) + ' MIL '; + + if unitats >0 then Linea:=Linea+xxIntToLetras(unitats); + + IntToLetras:=Linea; +end; + +Function CifraToLetras(Cifra: Double): String; +var + Entero: LongInt; + Decimal: LongInt; + Cadena: String; +begin + Cadena := ''; + Entero := Trunc(Cifra); + Decimal := Trunc(((Cifra - Entero) * 100)); + + if (Decimal > 0) then + Cadena := ' CON ' + IntToLetras(Decimal) + ' CNTIMOS'; + + if (Entero > 0) then + Cadena := IntToLetras(Entero) + ' EUROS ' + Cadena; + + Result := UpperCase(Cadena); +end; + +end. diff --git a/Source/Base/Utiles/uPasswordUtils.dcu b/Source/Base/Utiles/uPasswordUtils.dcu new file mode 100644 index 0000000..98befc7 Binary files /dev/null and b/Source/Base/Utiles/uPasswordUtils.dcu differ diff --git a/Source/Base/Utiles/uPasswordUtils.pas b/Source/Base/Utiles/uPasswordUtils.pas new file mode 100644 index 0000000..13cae92 --- /dev/null +++ b/Source/Base/Utiles/uPasswordUtils.pas @@ -0,0 +1,22 @@ +unit uPasswordUtils; + +interface + +function EncriptarPassword(const password : string): String; + +implementation + +uses + uMD5, SysUtils; + +function EncriptarPassword(const password : string): String; +var + t : TMD5Digest; + pass_encriptada : String; +begin + t := MD5String(password); + pass_encriptada := MD5DigestToStr(t); + Result := LowerCase(pass_encriptada); +end; + +end. diff --git a/Source/Base/Utiles/uRTFUtils.dcu b/Source/Base/Utiles/uRTFUtils.dcu new file mode 100644 index 0000000..f57d0c1 Binary files /dev/null and b/Source/Base/Utiles/uRTFUtils.dcu differ diff --git a/Source/Base/Utiles/uRTFUtils.pas b/Source/Base/Utiles/uRTFUtils.pas new file mode 100644 index 0000000..cecd258 --- /dev/null +++ b/Source/Base/Utiles/uRTFUtils.pas @@ -0,0 +1,203 @@ +unit uRTFUtils; + +interface + +function RtfToText(ARTFText: String): String; + +implementation + +uses + Forms, Classes, SysUtils, StdCtrls, ComCtrls; + + +{ + Convert RTF enabled text to plain. + http://www.delphipraxis.net/topic45179.html +} + +// HAY QUE LIMPIAR LA CADENA DE ENTRADA DE SALTOS DE LNEA (#$D#$A) POR QUE +// SI NO, NO ES UNA CADENA CON TEXTO RTF VLIDO + +function RtfToText(ARTFText: String): String; +const + SaltoLinea = #13#10; //--> #$D#$A +var + aSource: string; // <- Para almacenar la cadena de entrada sin saltos de lnea + Source: string; + NChar: Integer; + + function ProcessGroupRecursevly: string; + + function HexToInt(HexStr: String): Integer; + begin + result := StrToInt('$' + HexStr); + end; + + procedure SkipStar; + var + BracesOpened: Integer; + Escaped: Boolean; + begin + BracesOpened:=1; + Escaped:=false; + while BracesOpened>0 + do begin + Inc (NChar); + case Source [NChar] of + '{': if Escaped + then Escaped:=false + else Inc (BracesOpened); + '}': if Escaped + then Escaped:=false + else Dec (BracesOpened); + '\': Escaped:=not Escaped; + else Escaped:=false; + end; + end; + end; + + function UnicodeCharCode2ANSIChar (aCode: LongInt): Char; + type + TUnicode2ANSITable=array [$0410..$044f] of Char; + const + Unicode2ANSITable: TUnicode2AnsiTable=('', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', + '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''); + begin + if (Low (Unicode2ANSITable)<=aCode) and (aCode<=High (Unicode2ANSITable)) then + UnicodeCharCode2ANSIChar:=Unicode2ANSITable [aCode] + else UnicodeCharCode2ANSIChar:='?'; + end; + + var + Control, NumericValue, TextValue: string; + begin + Result:=''; + Inc (NChar); + while NChar<=Length (Source) + do case Source [NChar] of + '{': Result:=Result+ProcessGroupRecursevly; + '}': begin + Inc (NChar); + Break; + end; + '\': begin + Inc (NChar); + case Source [NChar] of + '''': begin + Result:=Result+Chr (HexToInt (Copy (Source, NChar+1, 2))); + Inc (NChar, 3); + end; + '~': Result:=Result+#$20; + '*': SkipStar; + 'a'..'z': begin + Control:=''; + while Source [NChar] in ['a'..'z'] + do begin + Control:=Control+Source [NChar]; + Inc (NChar); + end; + if Source [NChar]='-' + then begin + NumericValue:=Source [NChar]; + Inc (NChar); + end + else NumericValue:=''; + while Source [NChar] in ['0'..'9'] + do begin + NumericValue:=NumericValue+Source [NChar]; + Inc (NChar); + end; + if Source [NChar]='{' + then ProcessGroupRecursevly; + TextValue:=''; + if not (Source [NChar] in ['a'..'z', '{', '}', '\']) + then begin + Inc (NChar); + while not (Source [NChar] in ['{', '}', '\']) + do begin + TextValue:=TextValue+Source [NChar]; + Inc (NChar); + end; + end; + if (Control='line') or (Control='par') + then Result:=Result+#$0D#$0A + else if Control='tab' + then Result:=Result+#$09 + else if Control='u' + then Result:=Result+UnicodeCharCode2ANSIChar (StrToInt (NumericValue)) + else if Control='colortbl' + then TextValue:=''; + if Length (TextValue)>0 + then if (not ((TextValue [Length (TextValue)]=';') and (Source [NChar]='}'))) + then begin + Result:=Result+TextValue; + TextValue:=''; + end; + end; + else begin + Result:=Result+Source [NChar]; + Inc (NChar); + end; + end; + end; + else begin + Result:=Result+Source [NChar]; + Inc (NChar); + end; + end; + end; + + function InitSource: Boolean; + var + BracesCount: Integer; + Escaped: Boolean; + begin + if Copy (aSource, 1, 5) <> '{\rtf' then + InitSource:=false + else begin + Source:=''; + BracesCount:=0; + Escaped:=false; + NChar:=1; + while (NChar<=Length (aSource)) and (BracesCount>=0) + do begin + if not (aSource [NChar] in [#$0D, #$0A]) + then begin + Source:=Source+aSource [NChar]; + case aSource [NChar] of + '{': if not Escaped + then Inc (BracesCount) + else Escaped:=false; + '}': if not Escaped + then Dec (BracesCount) + else Escaped:=false; + '\': Escaped:=true; + else Escaped:=false; + end; + end; + Inc (NChar); + end; + InitSource:=BracesCount=0; + end; + end; + +begin + // Hay que quitar el salto de lnea al final de la aSource RTF + aSource := StringReplace(ARTFText, SaltoLinea, '', [rfReplaceAll]); + + // o bien: + // + //aSource := Copy( cLinea, 1, length(cLinea)-2) ); + + if InitSource then + begin + NChar:=1; + Result:= PChar(ProcessGroupRecursevly); + end + else + Result := PChar(aSource); +end; + +end. + + diff --git a/Source/Base/Utiles/uReferenciasUtils.dcu b/Source/Base/Utiles/uReferenciasUtils.dcu new file mode 100644 index 0000000..5755250 Binary files /dev/null and b/Source/Base/Utiles/uReferenciasUtils.dcu differ diff --git a/Source/Base/Utiles/uReferenciasUtils.pas b/Source/Base/Utiles/uReferenciasUtils.pas new file mode 100644 index 0000000..300efec --- /dev/null +++ b/Source/Base/Utiles/uReferenciasUtils.pas @@ -0,0 +1,39 @@ +unit uReferenciasUtils; + +interface + + +{ Si ARef1 < ARef2 -> Result := -1 + Si ARef1 = ARef2 -> Result := 0 + Si ARef1 > ARef2 -> Result := 1 } + +function CompararReferencias(const ARef1, ARef2 : String) : Integer; + +implementation + +uses + JclAnsiStrings, cxVariants; + +function CompararReferencias(const ARef1, ARef2 : String) : Integer; +var + Aux1, Aux2 : String; + AuxInt1, AuxInt2: Double; + Rpl : Char; +begin + Rpl := ' '; + Aux1 := StrReplaceButChars(ARef1, AnsiDecDigits, Rpl); + Aux1 := StrRemoveChars(Aux1, AnsiWhiteSpace); + Aux2 := StrReplaceButChars(ARef2, AnsiDecDigits, Rpl); + Aux2 := StrRemoveChars(Aux2, AnsiWhiteSpace); + + if StrIsDigit(Aux1) and StrIsDigit(Aux2) then + begin + AuxInt1 := StrToFloatSafe(Aux1); + AuxInt2 := StrToFloatSafe(Aux2); + Result := VarCompare(AuxInt1, AuxInt2) + end + else + Result := VarCompare(Aux1, Aux2) +end; + +end. diff --git a/Source/Base/Utiles/uSaveClipboard.dcu b/Source/Base/Utiles/uSaveClipboard.dcu new file mode 100644 index 0000000..1a82992 Binary files /dev/null and b/Source/Base/Utiles/uSaveClipboard.dcu differ diff --git a/Source/Base/Utiles/uSaveClipboard.pas b/Source/Base/Utiles/uSaveClipboard.pas new file mode 100644 index 0000000..5ab7d4a --- /dev/null +++ b/Source/Base/Utiles/uSaveClipboard.pas @@ -0,0 +1,270 @@ +unit uSaveClipboard; + +interface + +uses + Windows, Messages, SysUtils, Classes, Graphics, RichEdit, Clipbrd, + registry, ActiveX, ShellAPI, ShlObj; + +type + + TSaveClipboard = class(TObject) + private + FTxt, FRTF, FHTML, FOEMText, FCSV : string; + FUnicodeText : WideString; + FBitmap : TBitmap; + FMetafile : TMetafile; + CF_RTF, CF_HTML, CF_CSV : UINT; + FFiles : TStringList; + procedure ClearBuffer; + public + constructor Create;reintroduce; + destructor Destroy;override; + procedure Save; + procedure Restore; + + property PlainText : String read FTxt write FTxt; + property RTFText : String read FRTF write FRTF; + property CSVText : String read FCSV write FCSV; + property HTMLText : String read FHTML write FHTML; + property OEMText : String read FOEMText write FOEMText; + property UnicodeText : WideString read FUnicodeText write FUnicodeText; + property Bitmap : TBitmap read FBitmap write FBitmap; + property Metafile : TMetafile read FMetafile write FMetafile; + end; + +implementation + +uses + Dialogs; + +{ TSaveClipboard } + +procedure TSaveClipboard.ClearBuffer; +begin + FTxt:=''; + FRTF:=''; + FHTML:=''; + FCSV := ''; + FOEMText:=''; + FUnicodeText:=''; + FBitmap.Free; + FBitmap:=nil; + FMetafile.Free; + FMetafile:=nil; + FFiles.Clear; +end; + +constructor TSaveClipboard.Create; +begin + inherited Create; + FFiles := TStringList.Create; + ClearBuffer; + CF_RTF := RegisterClipboardFormat(RichEdit.CF_RTF); + CF_HTML := {16;//}RegisterClipboardFormat('HTML Format'); + CF_CSV := RegisterClipboardFormat('CSV'); +end; + +destructor TSaveClipboard.Destroy; +begin + ClearBuffer; + FFiles.Free; + inherited; +end; + +procedure CopyClipboardData(Format : UINT; Buffer : pointer; Length : +integer); +var Data:THandle; + DataPtr: Pointer; +begin + Data := GlobalAlloc(GMEM_MOVEABLE+GMEM_DDESHARE, Length); + try + DataPtr := GlobalLock(Data); + try + CopyMemory(DataPtr, Buffer, Length); + SetClipboardData(Format, Data); + finally + GlobalUnlock(Data); + end; + except + GlobalFree(Data); + raise; + end; +end; + +procedure TSaveClipboard.Restore; +const NULL : Char = #0; +var //Data:THandle; + //DataPtr: Pointer; + DF : TDropFiles; + i : integer; +begin + try + Clipboard.Clear; + Clipboard.Open; + //text + if Length(FTxt) > 0 then Clipboard.AsText:=FTxt; + //OEM text + if Length(FOEMText) > 0 then CopyClipboardData(CF_OEMTEXT, +PChar(FOEMText), Length(FOEMText)+1); + //HTML text + if Length(FHTML) > 0 then CopyClipboardData(CF_HTML, PChar(FHTML), +Length(FHTML)+1); + + //CSV text + if Length(FCSV) > 0 then + CopyClipboardData(CF_CSV, PChar(FCSV), Length(FCSV)+1); + + //Unicode text + if Length(FUnicodeText) > 0 then CopyClipboardData(CF_UNICODETEXT, +PWideChar(FUnicodeText), 2*Length(FUnicodeText)+2); + //RTF + if Length(FRTF) > 0 then CopyClipboardData(CF_RTF, PChar(FRTF), +Length(FRTF)+1); + //BMP + if FBitmap <> nil then Clipboard.Assign(FBitmap); + //Metafile + if FMetafile <> nil then Clipboard.Assign(FMetafile); + //files + if FFiles.Count > 0 then begin + DF.pFiles:=SizeOf(DF); + DF.pt.x:=0; + DF.pt.y:=0; + DF.fNC:=false; + DF.fWide:=false; + with TMemoryStream.Create do + try + Write(DF, SizeOf(DF)); + for i:=0 to FFiles.Count-1 do begin + Write(FFiles[i][1], Length(FFiles[i])); + Write(NULL, SizeOf(NULL)); + end; + Write(NULL, SizeOf(NULL)); + CopyClipboardData(CF_HDROP, Memory, Size); + finally + Free; + end; + end; + finally + Clipboard.Close; + end; +end; + +procedure TSaveClipboard.Save; +var Data:THandle; + p : pointer; + Count, i : integer; + Buffer : array[0..MAX_PATH] of Char; +// AList : TStringLIst; +begin + +{ AList := TStringList.Create; + try + AList.Add('Lista ----------'); + //GetClipboardFormatName(CF_HTML, @Buffer, SizeOf(Buffer)); + for i:=0 to Clipboard.FormatCount-1 do begin + if Clipboard.Formats[i] = 0 then beep; + GetClipboardFormatName(Clipboard.Formats[i], @Buffer, SizeOf(Buffer)); + AList.Add(Buffer); + end; + ShowMessage(AList.Text); + finally + FreeANDNIL(AList); + end;} + + + ClearBuffer; + //text + if Clipboard.HasFormat(CF_TEXT) then FTxt:=Clipboard.AsText; + //RTF + if Clipboard.HasFormat(CF_RTF) then + begin + Clipboard.Open; + Data := GetClipboardData(CF_RTF); + if Data <> 0 then begin + FRTF := PChar(GlobalLock(Data)); + GlobalUnlock(Data); + end; + Clipboard.Close; + end; + + //CSV + if Clipboard.HasFormat(CF_CSV) then + begin + Clipboard.Open; + Data := GetClipboardData(CF_CSV); + if Data <> 0 then begin + FCSV := PChar(GlobalLock(Data)); + GlobalUnlock(Data); + end; + Clipboard.Close; + end; + + + //HTML + if Clipboard.HasFormat(CF_HTML) then begin + Clipboard.Open; + Data := GetClipboardData(CF_HTML); + if Data <> 0 then begin + FHTML := PChar(GlobalLock(Data)); + GlobalUnlock(Data); + end; + Clipboard.Close; + end; + + //OEM Text + if Clipboard.HasFormat(CF_OEMTEXT) then begin + Clipboard.Open; + Data := GetClipboardData(CF_OEMTEXT); + if Data <> 0 then begin + FOEMText := PChar(GlobalLock(Data)); + GlobalUnlock(Data); + end; + Clipboard.Close; + end; + //Unicode + if Clipboard.HasFormat(CF_UNICODETEXT) then begin + Clipboard.Open; + Data := GetClipboardData(CF_UNICODETEXT); + if Data <> 0 then begin + FUnicodeText := PWideChar(GlobalLock(Data)); + GlobalUnlock(Data); + end; + Clipboard.Close; + end; + //Bitmap + if Clipboard.HasFormat(CF_BITMAP) then + try + FBitmap:=TBitmap.Create; + FBitmap.Assign(Clipboard); + except + FBitmap.Free; + end; + //metafile + if Clipboard.HasFormat(CF_METAFILEPICT) then + try + FMetafile:=TMetafile.Create; + FMetafile.Assign(Clipboard); + except + FMetafile.Free; + end; + //files + if Clipboard.HasFormat(CF_HDROP) then begin + Clipboard.Open; + Data := GetClipboardData(CF_HDROP); + if Data <> 0 then begin + p := PChar(GlobalLock(Data)); + Count:=DragQueryFile(HDROP(p), $FFFFFFFF, nil, 0); + for i:=0 to Count-1 do begin + DragQueryFile(HDROP(p), i, @Buffer, SizeOf(Buffer)); + if strlen(PChar(@Buffer)) > 0 then FFiles.Add(PChar(@Buffer)); + end; + GlobalUnlock(Data); + end; + Clipboard.Close; + end; +end; + + +end. + diff --git a/Source/Base/Utiles/uSistemaFunc.dcu b/Source/Base/Utiles/uSistemaFunc.dcu new file mode 100644 index 0000000..68a0c6d Binary files /dev/null and b/Source/Base/Utiles/uSistemaFunc.dcu differ diff --git a/Source/Base/Utiles/uSistemaFunc.pas b/Source/Base/Utiles/uSistemaFunc.pas new file mode 100644 index 0000000..0fbba8f --- /dev/null +++ b/Source/Base/Utiles/uSistemaFunc.pas @@ -0,0 +1,462 @@ +{ +=============================================================================== + Copyright () 2002. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: 01-11-2002 + Versin actual: 1.0.0 + Fecha versin actual: 01-11-2002 +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} +unit uSistemaFunc; + +interface + +uses SysUtils, Classes; + +{ Funciones del sistema } +function Ejecutar (const LineaComando: String; Oculto, Esperar: Boolean) : Boolean; +procedure EscribirEnFichero (NombreFichero, Texto : string); +function DarRutaTemporal : String; +function DarDirectorioTemporal : String; +function DarFicheroTemporal : String; +function DarFicheroJPGTemporal : String; +function DarFicheroBMPTemporal : String; +function DarFicheroTIFFTemporal : String; +function DarFicheroHTMLTemporal : String; +function DarFicheroExcelTemporal : String; +function DarFicheroPDFTemporal : String; overload; +function DarFicheroPDFTemporal(const AFileName : String) : String; overload; +function DarVersionFichero (Executable : String) : String; +function DarFechaFichero (Executable : String) : String; +procedure CopiarFichero(const Origen, Destino: string); +procedure Deltree(DirToKill : String; KillChoosenDir : Boolean); +function GetSpecialFolderPath(folder : integer) : string; +function PreguntarRuta(const ATitulo: String; const AComentario: String; var ARuta: String): Boolean; +function PreguntarFicheroWordExportar (var Fichero : String) : Boolean; +function PreguntarFicheroExcelExportar (var Fichero : String) : Boolean; +function EscapeIllegalChars(AFileName: string): string; +function FindFile(const filespec: TFileName; attributes: integer = faReadOnly Or faHidden Or faSysFile Or faArchive): TStringList; + +function DarRutaFichero(const ARutaIni: String; const AFichero: String; const ADirectorio1: String = ''; const ADirectorio2: String = ''): Variant; + +implementation + +uses + Windows, Variants, Dialogs, JclFileUtils, + Messages, Graphics, Controls, Forms, + StdCtrls, SHFolder, cxShellBrowserDialog, + cxLookAndFeels, uStringsUtils; + + +function GetSpecialFolderPath(folder : integer) : string; +const + SHGFP_TYPE_CURRENT = 0; +var + path: array [0..MAX_PATH] of char; +begin + if SUCCEEDED(SHGetFolderPath(0, folder, 0, SHGFP_TYPE_CURRENT, @path[0])) then + Result := path + else + Result := ''; +end; + +procedure EscribirEnFichero (NombreFichero, Texto : string); +var + FicheroAux : TextFile; +begin + SysUtils.DeleteFile(NombreFichero); + AssignFile(FicheroAux, NombreFichero); + Rewrite(FicheroAux); + WriteLn(FicheroAux, Texto); + CloseFile(FicheroAux); +end; + + +function Ejecutar (const LineaComando: String; Oculto, Esperar: Boolean): Boolean; +var + StartupInfo : TStartupInfo; + ProcessInfo : TProcessInformation; +begin + {setup the startup information for the application } + FillChar(StartupInfo, SizeOf(TStartupInfo), 0); + with StartupInfo do + begin + cb := SizeOf(TStartupInfo); + dwFlags:= STARTF_USESHOWWINDOW or STARTF_FORCEONFEEDBACK; + if Oculto then + wShowWindow:= SW_HIDE + else + wShowWindow:= SW_SHOWNORMAL; + end; + + Result := CreateProcess(nil,PChar(LineaComando), nil, nil, False, + NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo); + if Esperar then + if Result then + begin + WaitForInputIdle(ProcessInfo.hProcess, INFINITE); + WaitForSingleObject(ProcessInfo.hProcess, INFINITE); + end; +end; + +function DarRutaTemporal: String; +var + nBufferLength : DWORD; // size, in characters, of the buffer + lpBuffer : PChar; // address of buffer for temp. path +begin + nBufferLength := MAX_PATH + 1; // initialize + GetMem( lpBuffer, nBufferLength ); + try + if GetTempPath( nBufferLength, lpBuffer ) <> 0 then + Result := StrPas( lpBuffer ) + else + Result := ''; + finally + FreeMem( lpBuffer ); + end; +end; + +function DarFicheroTemporal : String; +var + Buf: array [0..MAX_PATH] of Char; + RutaTmp : string; +begin + RutaTmp := DarRutaTemporal; + if GetTempFileName(PChar(RutaTmp), 'tmp', 0, Buf) <> 0 then + SetString(Result, Buf, StrLen(Buf)) + else + Result := ''; +end; + +function DarFicheroTIFFTemporal : String; +var + Cadena : String; +begin + Cadena := DarFicheroTemporal; + Result := Copy(Cadena, 0, (Length(Cadena)-3)) + 'tif'; +end; + +function DarFicheroPDFTemporal : String; +var + Cadena : String; +begin + Cadena := DarFicheroTemporal; + Result := Copy(Cadena, 0, (Length(Cadena)-3)) + 'pdf'; +end; + +function DarFicheroPDFTemporal(const AFileName : String) : String; +var + Cadena : String; + RutaTmp : string; +begin + if not EsCadenaVacia(AFileName) then + begin + RutaTmp := DarRutaTemporal; + Cadena := ExtractFileName(AFileName); + Cadena := StringReplace(Cadena, ExtractFileExt(Cadena), '', []); + Result := RutaTmp + Cadena + '.pdf'; + end + else + Result := DarFicheroPDFTemporal; +end; + +function DarFicheroBMPTemporal : String; +var + Cadena : String; +begin + Cadena := DarFicheroTemporal; + Result := Copy(Cadena, 0, (Length(Cadena)-3)) + 'bmp'; +end; + +function DarFicheroExcelTemporal : String; +var + Cadena : String; +begin + Cadena := DarFicheroTemporal; + Result := Copy(Cadena, 0, (Length(Cadena)-3)) + 'xls'; +end; + +function DarFicheroHTMLTemporal : String; +var + Cadena : String; +begin + Cadena := DarFicheroTemporal; + Result := Copy(Cadena, 0, (Length(Cadena)-3)) + 'html'; +end; + +function DarFicheroJPGTemporal : String; +var + Cadena : String; +begin + Cadena := DarFicheroTemporal; + Result := Copy(Cadena, 0, (Length(Cadena)-3)) + 'jpg'; +end; + +function PreguntarFicheroWordExportar (var Fichero : String) : Boolean; +var + DialogoSalvar : TSaveDialog; +begin + DialogoSalvar := TSaveDialog.Create(NIL); + try + with DialogoSalvar do + begin + DefaultExt := 'doc'; + Filter := 'Documento de Word (*.doc)|*.doc'; + FilterIndex := 0; + Options := [ofOverwritePrompt, ofHideReadOnly, ofPathMustExist, ofEnableSizing]; + end; + Result := DialogoSalvar.Execute; + if Result then + Fichero := DialogoSalvar.FileName; + finally + DialogoSalvar.Free; + end; +end; + +function PreguntarFicheroExcelExportar (var Fichero : String) : Boolean; +var + DialogoSalvar : TSaveDialog; +begin + DialogoSalvar := TSaveDialog.Create(NIL); + try + with DialogoSalvar do + begin + DefaultExt := 'xls'; + Filter := 'Documento de Excel (*.xls)|*.xls'; + FilterIndex := 0; + Options := [ofOverwritePrompt, ofHideReadOnly, ofPathMustExist, ofEnableSizing]; + end; + Result := DialogoSalvar.Execute; + if Result then + Fichero := DialogoSalvar.FileName; + finally + DialogoSalvar.Free; + end; +end; + + +function DarVersionFichero (Executable : String) : String; +var + Obj : TJclFileVersionInfo; +begin + Obj := TJclFileVersionInfo.Create(Application.ExeName); + try + Result := Obj.FileVersion; + finally + FreeAndNil(Obj); + end; +end; + +function DarFechaFichero (Executable : String) : String; +var + FileTime, LocalFileTime : TFileTime; + SystemTime : TSystemTime; + hFile : Integer; +begin + hFile := FileOpen(Executable, fmShareDenyNone); + try + if hFile <> -1 then + begin + Windows.GetFileTime( hFile, nil, nil, @FileTime ); // ftLasWriteTime + // Change the file time to local time + FileTimeToLocalFileTime( FileTime, LocalFileTime ); + if FileTimeToSystemTime(LocalFileTime, SystemTime) then + Result := DateTimeToStr(SystemTimeToDateTime(SystemTime)); + end; // if hFile <> 0 + finally + FileClose( hFile ); + end; // try +end; + + +procedure CopiarFichero(const Origen, Destino: string); +begin + CopyFile(PChar(Origen), PChar(Destino), FALSE); +end; + +procedure DoDelTree(TheDir : String); + Var + Search : TSearchRec; + rec : word; +Begin + If TheDir[Length(TheDir)] <> '\' Then TheDir := TheDir + '\'; + rec := SysUtils.FindFirst(TheDir + '*.*', faAnyFile, Search); + While rec = 0 Do + Begin + If Search.Name[1] <> '.' Then + Begin +// Is this a directory? + If (Search.Attr And faDirectory) = faDirectory Then + Begin +// If so, lets call DelTree again using this new +// directory as the TheDir parameter. + DoDelTree(TheDir + Search.Name); +// Not that all of the files are gone from this directoy, +// we can remove the directory. + RmDir(TheDir + Search.Name); + End + Else + Begin +// We found a file. +// Now lets reset its attributes so we don't have any problems +// deleting them. + SysUtils.FileSetAttr(TheDir + Search.Name, 0); + SysUtils.DeleteFile(TheDir + Search.Name); + Application.ProcessMessages; + End; + End; + rec := SysUtils.FindNext(Search); + End; + SysUtils.FindClose(Search); +End; + +procedure Deltree(DirToKill : String; KillChoosenDir : Boolean); +begin +{$I-} + DoDelTree(DirToKill); +// If we want to delete the choosen directory. + If KillChoosenDir Then + RmDir(DirToKill); + //modified + if IOResult <> 0 then + ShowMessage('Could not delete ' + DirToKill); +//{$I} +end; + + +function PreguntarRuta(const ATitulo: String; const AComentario: String; var ARuta: String): Boolean; +var + cxShellBrowserDialog1: TcxShellBrowserDialog; +begin + cxShellBrowserDialog1 := TcxShellBrowserDialog.Create(NIL); + try + with cxShellBrowserDialog1 do + begin + Name := 'cxShellBrowserDialog1'; + FolderLabelCaption := AComentario; + LookAndFeel.NativeStyle := True; + LookAndFeel.Kind := lfStandard; + Title := ATitulo; + + Result := cxShellBrowserDialog1.Execute; + ARuta := cxShellBrowserDialog1.Path; + end; + finally + FreeANDNIL(cxShellBrowserDialog1); + end; +end; + + +function EscapeIllegalChars(AFileName: string): string; +var + x: integer; +const + IllegalCharSet: set of char = + ['|','<','>','\','^','+','=','?','/','[',']','"',';',',','*']; +begin + for x := 1 to Length(AFileName) do + if AFileName[x] in IllegalCharSet then + AFileName[x] := '_'; + Result := AFileName; +end; + +function FindFile(const filespec: TFileName; attributes: integer): TStringList; +var + spec: string; + list: TStringList; + +procedure RFindFile(const folder: TFileName); +var + SearchRec: TSearchRec; +begin + // Locate all matching files in the current + // folder and add their names to the list + if FindFirst(folder + spec, attributes, SearchRec) = 0 then begin + try + repeat + if (SearchRec.Attr and faDirectory = 0) or + (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then + list.Add(folder + SearchRec.Name); + until FindNext(SearchRec) <> 0; + except + SysUtils.FindClose(SearchRec); + raise; + end; + SysUtils.FindClose(SearchRec); + end; + // Now search the subfolders + if FindFirst(folder + '*', attributes + Or faDirectory, SearchRec) = 0 then + begin + try + repeat + if ((SearchRec.Attr and faDirectory) <> 0) and + (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then + RFindFile(folder + SearchRec.Name + '\'); + until FindNext(SearchRec) <> 0; + except + SysUtils.FindClose(SearchRec); + raise; + end; + SysUtils.FindClose(SearchRec); + end; +end; // procedure RFindFile inside of FindFile + +begin // function FindFile + list := TStringList.Create; + try + spec := ExtractFileName(filespec); + RFindFile(ExtractFilePath(filespec)); + Result := list; + except + list.Free; + raise; + end; +end; + +function DarDirectorioTemporal : String; +var + Cadena: String; +begin + Cadena := ExtractFileName(DarFicheroTemporal); + Cadena := StringReplace(Cadena, ExtractFileExt(Cadena), '', []); + Result := DarRutaTemporal + Cadena + '\'; +end; + +function DarRutaFichero(const ARutaIni: String; const AFichero: String; const ADirectorio1: String = ''; const ADirectorio2: String = ''): Variant; +var + ARutaCompleta: String; +begin + Result := Null; + + ARutaCompleta := ARutaIni + '\' + ADirectorio1 + '\' + ADirectorio2 + '\' + AFichero; + if FileExists(ARutaCompleta) then + Result := ARutaCompleta + else + begin + ARutaCompleta := ARutaIni + '\' + ADirectorio1 + '\' + AFichero; + if FileExists(ARutaCompleta) then + Result := ARutaCompleta + else + begin + ARutaCompleta := ARutaIni + '\' + AFichero; + if FileExists(ARutaCompleta) then + Result := ARutaCompleta + end + end +end; + +end. diff --git a/Source/Base/Utiles/uStringsUtils.dcu b/Source/Base/Utiles/uStringsUtils.dcu new file mode 100644 index 0000000..5a370a5 Binary files /dev/null and b/Source/Base/Utiles/uStringsUtils.dcu differ diff --git a/Source/Base/Utiles/uStringsUtils.pas b/Source/Base/Utiles/uStringsUtils.pas new file mode 100644 index 0000000..68ad755 --- /dev/null +++ b/Source/Base/Utiles/uStringsUtils.pas @@ -0,0 +1,66 @@ +unit uStringsUtils; + +interface + +uses + Classes; + +const + DISPLAY_EUROS2 = '#,0.00 '; + DISPLAY_PORCENTAJE = '#,0.00%'; + +procedure StringToStrings(Source:string; Delimiter:char; Target:TStrings); +function StringsToString(Source:TStrings; Delimiter:char):string; +function EsCadenaVacia(const S: AnsiString): Boolean; overload; +function EsCadenaVacia(const S: Variant): Boolean; overload; +function EsNumerico(Cadena: String) : Boolean; + + +implementation + +uses + Variants, SysUtils; + +{ Convierte una cadena con items separados con un delimitador en un TString } +procedure StringToStrings(Source:string; Delimiter:char; Target:TStrings); +var i: integer; +begin + for i:=1 to length(Source) do + if Source[ i ] = Delimiter then Source[ i ]:=#10; + Target.Text:=Source; +end; + +{ Convierte un TString en una cadena de items separados con un delimitador } +function StringsToString(Source:TStrings; Delimiter:char):string; +var i: integer; +begin + Result:=''; + for i:=0 to Source.Count-1 do + Result:=Result + Delimiter + Source[ i ]; + if Result<>'' then Delete(Result, 1, 1) +end; + +function EsCadenaVacia(const S: AnsiString): Boolean; +begin + Result := (Length(Trim(S)) = 0) +end; + +function EsCadenaVacia(const S: Variant): Boolean; overload; +begin + Result := True; + if VarIsNull(S) then + Exit; + Result := EsCadenaVacia(VarToStr(S)); +end; + +function EsNumerico(Cadena: String) : Boolean; +var + Codigo: Integer; + Valor: Double; +begin + Val(Cadena, Valor, Codigo); + Result := (Codigo = 0) +end; + + +end. diff --git a/Source/Base/schBase_Intf.dcu b/Source/Base/schBase_Intf.dcu new file mode 100644 index 0000000..eaf1bbd Binary files /dev/null and b/Source/Base/schBase_Intf.dcu differ diff --git a/Source/Base/schBase_Intf.pas b/Source/Base/schBase_Intf.pas new file mode 100644 index 0000000..329bef9 --- /dev/null +++ b/Source/Base/schBase_Intf.pas @@ -0,0 +1,32 @@ +unit schBase_Intf; + +interface + +uses + uDADataTable, Windows; + +type + { TIntfObjectDADataTableRules } + TIntfObjectDADataTableRules = class(TDADataTableRules) + protected + function _AddRef: Integer; override; + function _Release: Integer; override; + end; + +implementation + + { TIntfObjectDADataTableRules } + +function TIntfObjectDADataTableRules._AddRef: Integer; +begin + Result := InterlockedIncrement(FRefCount); +end; + +function TIntfObjectDADataTableRules._Release: Integer; +begin + Result := InterlockedDecrement(FRefCount); + if Result = 0 then + Destroy; +end; + +end. diff --git a/Source/Base/uAppInfoUtils.dcu b/Source/Base/uAppInfoUtils.dcu new file mode 100644 index 0000000..6b4a8ca Binary files /dev/null and b/Source/Base/uAppInfoUtils.dcu differ diff --git a/Source/Base/uCalculosUtils.dcu b/Source/Base/uCalculosUtils.dcu new file mode 100644 index 0000000..fa40d75 Binary files /dev/null and b/Source/Base/uCalculosUtils.dcu differ diff --git a/Source/Base/uClassRegistryUtils.dcu b/Source/Base/uClassRegistryUtils.dcu new file mode 100644 index 0000000..72bf823 Binary files /dev/null and b/Source/Base/uClassRegistryUtils.dcu differ diff --git a/Source/Base/uConfigurarConexion.dcu b/Source/Base/uConfigurarConexion.dcu new file mode 100644 index 0000000..670f2a0 Binary files /dev/null and b/Source/Base/uConfigurarConexion.dcu differ diff --git a/Source/Base/uControllerBase.dcu b/Source/Base/uControllerBase.dcu new file mode 100644 index 0000000..d4bcf1a Binary files /dev/null and b/Source/Base/uControllerBase.dcu differ diff --git a/Source/Base/uControllerDetallesBase.dcu b/Source/Base/uControllerDetallesBase.dcu new file mode 100644 index 0000000..540ae5f Binary files /dev/null and b/Source/Base/uControllerDetallesBase.dcu differ diff --git a/Source/Base/uDBSelectionListUtils.dcu b/Source/Base/uDBSelectionListUtils.dcu new file mode 100644 index 0000000..94d3b82 Binary files /dev/null and b/Source/Base/uDBSelectionListUtils.dcu differ diff --git a/Source/Base/uDMBase.dcu b/Source/Base/uDMBase.dcu new file mode 100644 index 0000000..6637fff Binary files /dev/null and b/Source/Base/uDMBase.dcu differ diff --git a/Source/Base/uDMBase.dfm b/Source/Base/uDMBase.dfm new file mode 100644 index 0000000..afb5d70 --- /dev/null +++ b/Source/Base/uDMBase.dfm @@ -0,0 +1,1786 @@ +object dmBase: TdmBase + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + OnDestroy = DataModuleDestroy + Height = 177 + Width = 463 + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000002224944415478DA + 95935D48936114C77FCB36584A6064161515DEA441108B240293E8A682246805 + DEA45020F40196505D081242DE94512B8C20169937056914D52E726B6083B114 + D44CD3D51A216BB6656B5FEF677B5FF31D23033DF070CE03CFFFF73F1CCE6362 + 29D1806AD44E4C5A32F5F58FAA8BD5D73DD8465757034D4D4EFA4E8C62000ED7 + 56E997647490DFE131BD2ED9584971D98EB9478D2603D279B39EE6733DC6DD00 + 68E2EF7E07E95F2291688C48629ABDC71DACABD8AD0334E7B420104D24F4A3D5 + DDD707E60087F66C2234D0CECF2F41643987556566676799C9C4387AD18FF964 + 91E178EA522DF73ADC851D1CA85ECD27D77948995861B552844C2A9962303441 + DD051FA22473E5095C735B3972DAC6D3DB016EED7BC9FD47CFE601E57CF3B661 + C966D1E62C880299549A696915B6639D4892A243D6B6AC349C0B00DA0C22EF7B + 484EBDCA015424512491125036D751B1CBAE8BB5330F12459937EF860A01DEA0 + 8BA0FB0E5B154BAE832C810CACDF594F4DD5C17FC45AF6FA87F3800D95022DFD + ADC47E84682CDF8F222A3C9CF1303915E6C3E5495DDC7AE379C14E546F5F9307 + F8E4C7BC187F4BA6344E49D24C6E8A24AD12E65809A1895102CD6386B3F8B793 + C0F0C73CC0196927188E2297651096A7D096D4922D6659DCC2E7AF43F8CE8C70 + F5AEEBFF1D9CF5D889C7230BAE6F696939BDF6D7BAABACA87A567279647C320F + A8B16DA1BBD7B3A47FA5850168EB702C596C6CA2AA2EFA332E187F0080F1503E + 182A98A90000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000011F4944415478DA + 63FCFFFF3F03258091620390394975ABC1A6BD79FB8561D3D4444642E220CB31 + 0C985113C8A0E6D6C4F0E040132321711403408A40367CFCF28DE1E1C3970C7A + DA8A60DB708963350064CBF6938F18966C3EC770FAD425B06DB8C409BA000440 + B68908F330A08B631800D23CB73184E1D9CB4F0C775EFD6598B2641FD8A68208 + 2F864BCF1E33A0CB71BF7AC2B0604101380619571EBDFB7FE7CE730CD9518E60 + D3F79CB8C770E6DA23B0013017609373501062983F3F9F111E4820F0F8C52730 + FDFEED5B30CDC2FC91C1CEDA860197FCFDFD8D8CF040DA77EE39C395DBAF182E + DF7DC370F0C051ACD188AE66901A70F2F27D94B8C666004C0DDC801F3F7F323C + 7DF191E1D78F9F0CCF5F7E40896B9801D8D4800DA0343702001BEF6EF0E3CC7C + BD0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000002234944415478DA + A5934F4814511CC7BF6BBAB0AD97225B2A2B4B88ECB014861241ED2190FE9017 + 2D15843A74E8E0A14D3282608935920E092D7A10A44C25A843497FEDA0EB422D + 2DE6A2F647ADA5C542A6DD76DB6CC79979F3DE34F3CA99C4BAB40F1EEF0DEF7D + 3FDFEFFC783F9BA669C865D8EE0FBDCE89C001473D3BF8473631861FB36FF9BE + 7063199C45BBCC8B4C4FAAAA0C44A5E6ACAA3F67010CF19748000BDF0984440A + C2FC1CF61F0F605DE91EA894E17CAFB2C4B9246F18DD7D03BF0087F76E46FCB9 + 1FDF3EC640A97EAA5164321924A5146A5A22A6A391C0E971724097F7B1053858 + B90633835E40B461A5C38115A010B322C6E2D3A83E1BE6E24B7781D676070A1A + 9A40FAAFA3270A74569D5E04B8F039E4835D96757740210A24710173EA6A941F + BBC69D676E3BF169EB3892E37DC86B6EE3294C805103E1553FB21F9EE800BD58 + 84605E54C04AAA515A51CBC5EE230108D38F7073A402EB7D3EC83D7FFC820108 + C506111BEEC07666D713C81895800DBB1BB0E94D9D2936668DBF180F9E85118A + 4C5880E23205CD431791FA1AC749D70130C2702B1944A73DBA4CECA96BE5F12B + DD6B2D4098DEC1C3A91148ABD228CC1640AF223A94977F7526BFDFC2E8C43B0B + 7043F023369B002D92A0E48BF0CA67B09334C2B5EDD032E7C5B1244153B016E9 + B4601E5E75B7E344633DA2DDF95C3CF0F40577A54CE32BD3D7C9A9F716605FF9 + 16F4DE0B9A80B60BA7CC7DCBE5AE7FF68109F05D09FC7F33E5DACE3F0109DB53 + BED36F80890000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 24 + Top = 16 + Bitmap = {} + end + object TBXSwitcher: TTBXSwitcher + Theme = 'Default' + Left = 24 + Top = 80 + end + object StyleManager: TJvNavPaneStyleManager + Colors.ButtonColorFrom = clWhite + Colors.ButtonColorTo = 12435133 + Colors.ButtonHotColorFrom = 13009540 + Colors.ButtonHotColorTo = 13009540 + Colors.ButtonSelectedColorFrom = 14602190 + Colors.ButtonSelectedColorTo = 14602190 + Colors.SplitterColorFrom = 13026246 + Colors.SplitterColorTo = 9211532 + Colors.DividerColorFrom = 15725551 + Colors.DividerColorTo = 13026246 + Colors.HeaderColorFrom = 8684164 + Colors.HeaderColorTo = 8684164 + Colors.FrameColor = 8684676 + Colors.ToolPanelHeaderColorFrom = clWhite + Colors.ToolPanelHeaderColorTo = 12435133 + Fonts.NavPanelFont.Charset = DEFAULT_CHARSET + Fonts.NavPanelFont.Color = clWindowText + Fonts.NavPanelFont.Height = -13 + Fonts.NavPanelFont.Name = 'Tahoma' + Fonts.NavPanelFont.Style = [] + Fonts.NavPanelHotTrackFont.Charset = DEFAULT_CHARSET + Fonts.NavPanelHotTrackFont.Color = clWindow + Fonts.NavPanelHotTrackFont.Height = -13 + Fonts.NavPanelHotTrackFont.Name = 'Tahoma' + Fonts.NavPanelHotTrackFont.Style = [] + Fonts.DividerFont.Charset = DEFAULT_CHARSET + Fonts.DividerFont.Color = clWindowText + Fonts.DividerFont.Height = -11 + Fonts.DividerFont.Name = 'Tahoma' + Fonts.DividerFont.Style = [] + Fonts.HeaderFont.Charset = DEFAULT_CHARSET + Fonts.HeaderFont.Color = clWindow + Fonts.HeaderFont.Height = -16 + Fonts.HeaderFont.Name = 'Arial' + Fonts.HeaderFont.Style = [fsBold] + Theme = nptCustom + Left = 104 + Top = 80 + end + object JvLogFile: TJvLogFile + Left = 184 + Top = 80 + end + object cxIntl: TcxIntl + Connected = True + cxLibrary.CantCreateRegistryKey = 'No se puede crear la llave de registro : \%s' + cxLibrary.ConverterCantCreateStyleRepository = 'No se puede crear un almac'#233'n de estilos' + PageControl.ImageListIndexError = 'El '#237'ndice (%d) deber'#225' estar entre 0 y %d' + PageControl.NoBaseImages = 'BaseImages no est'#225' asignado' + PageControl.NoRegisteredStyles = 'No hay estilos registrados' + PageControl.PageIndexError = '%d es un valor inv'#225'lido para PageIndex, debe estar entre 0 y %d' + PageControl.PainterClassError = 'La clase PCPainter es nula' + PageControl.StandardStyleError = '%s es un estilo est'#225'ndar no soportado' + PageControl.StyleNameError = '%s es un nombre de estilo no registrado' + PageControl.TabCountEqualsZero = 'Tabs.Count = 0' + PageControl.TabIndexError = 'El '#237'ndice de la pesta'#241'a (%d) est'#225' fuera de l'#237'mites' + PageControl.TabVisibleIndexOutsOfBounds = 'Propiedad TabVisibleIndex (%d) deber'#225' estar entre 0 y %d' + PageControl.VisibleTabListEmpty = 'No hay pesta'#241'as visibles' + PageControl.PCAllowRotateError = '%s es un estilo que no soporta pesta'#241'as rotatorias' + QuantumGrid.GridRecursiveLevels = 'No se pueden crear niveles recursivos' + QuantumGrid.GridDeletingConfirmationCaption = 'Confirmar' + QuantumGrid.GridDeletingFocusedConfirmationText = #191'Borrar registro?' + QuantumGrid.GridDeletingSelectedConfirmationText = #191'Borrar todos los registros seleccionados?' + QuantumGrid.GridNoDataInfoText = '' + QuantumGrid.GridNewItemRowInfoText = 'Haga click aqu'#237' para agregar una nueva l'#237'nea' + QuantumGrid.GridFilterIsEmpty = '' + QuantumGrid.GridCustomizationFormCaption = 'Personalizaci'#243'n' + QuantumGrid.GridCustomizationFormColumnsPageCaption = 'Columnas' + QuantumGrid.GridGroupByBoxCaption = 'Arrastre una columna aqu'#237' para agrupar por dicha columna' + QuantumGrid.GridFilterCustomizeButtonCaption = 'Personalizar...' + QuantumGrid.GridColumnsQuickCustomizationHint = 'Haga click aqu'#237' para seleccionar las columas visibles' + QuantumGrid.GridCustomizationFormBandsPageCaption = 'Bandas' + QuantumGrid.GridBandsQuickCustomizationHint = 'Haga click aqu'#237' para seleccionar las bandas visibles' + QuantumGrid.GridCustomizationFormRowsPageCaption = 'Rows' + QuantumGrid.GridConverterIntermediaryMissing = 'Omiti'#243' un componente intermediario!' + QuantumGrid.GridConverterNotExistGrid = 'cxGrid no existe' + QuantumGrid.GridConverterNotExistComponent = 'El componente no existe' + QuantumGrid.ImportErrorCaption = 'Error al importar' + QuantumGrid.NotExistGridView = 'No existe la vista del grid' + QuantumGrid.NotExistGridLevel = 'No existe un nivel de grid activo' + QuantumGrid.CantCreateExportOutputFile = 'No se puede crear el archivo de exportaci'#243'n' + QuantumGrid.EditRepositoryExtLookupComboBoxItem = + 'ExtLookupComboBox|Representa un ultra avanzado control de busque' + + 'da (lookup) usando el QuantumGrid como su control de despliegue' + QuantumGrid.GridFilterRowInfoText = 'Haga clic aqu'#237' para definir un filtro' + QuantumGrid.GridFilterApplyButtonCaption = 'Aplicar Filtro' + QuantumGrid.GridYesterday = 'Ayer' + QuantumGrid.GridToday = 'Hoy' + QuantumGrid.GridTomorrow = 'Ma'#241'ana' + QuantumGrid.GridLast30Days = #218'ltimos 30 d'#237'as' + QuantumGrid.GridLast14Days = #218'ltimos 14 d'#237'as' + QuantumGrid.GridLast7Days = #218'ltimos 7 d'#237'as' + QuantumGrid.GridNext7Days = 'Pr'#243'ximos 7 d'#237'as' + QuantumGrid.GridNext14Days = 'Pr'#243'ximos 14 d'#237'as' + QuantumGrid.GridNext30Days = 'Pr'#243'ximos 30 d'#237'as' + QuantumGrid.GridLastTwoWeeks = #218'lt. dos semanas' + QuantumGrid.GridLastWeek = 'Semana pasada' + QuantumGrid.GridThisWeek = #201'sta semana' + QuantumGrid.GridNextWeek = 'Pr'#243'xima semana' + QuantumGrid.GridNextTwoWeeks = 'Pr'#243'x. dos semanas' + QuantumGrid.GridLastMonth = #218'ltimo mes' + QuantumGrid.GridThisMonth = #201'ste mes' + QuantumGrid.GridNextMonth = 'Pr'#243'ximo mes' + QuantumGrid.GridLastYear = 'A'#241'o pasado' + QuantumGrid.GridThisYear = #201'ste a'#241'o' + QuantumGrid.GridNextYear = 'Pr'#243'ximo a'#241'o' + QuantumGrid.GridPast = 'Pasado' + QuantumGrid.GridFuture = 'Futuro' + QuantumGrid.GridMonthFormat = 'mmmm yyyy' + QuantumGrid.GridYearFormat = 'yyyy' + QuantumGrid.GridChartCategoriesDisplayText = 'Datos' + QuantumGrid.GridChartValueHintFormat = '%s para %s es %s' + QuantumGrid.GridChartPercentValueTickMarkLabelFormat = '0%' + QuantumGrid.GridChartToolBoxDataLevels = 'Niveles de Datos:' + QuantumGrid.GridChartToolBoxDataLevelSelectValue = 'seleccione valor' + QuantumGrid.GridChartToolBoxCustomizeButtonCaption = 'Personalizar Gr'#225'fico' + QuantumGrid.GridChartNoneDiagramDisplayText = 'Sin Diagrama' + QuantumGrid.GridChartColumnDiagramDisplayText = 'Diagrama de Columnas' + QuantumGrid.GridChartBarDiagramDisplayText = 'Diagrama de Barras' + QuantumGrid.GridChartLineDiagramDisplayText = 'Diagrama de L'#237'neas' + QuantumGrid.GridChartAreaDiagramDisplayText = 'Diagrama de '#193'rea' + QuantumGrid.GridChartPieDiagramDisplayText = 'Diagrama de Tarta' + QuantumGrid.GridChartCustomizationFormSeriesPageCaption = 'Series' + QuantumGrid.GridChartCustomizationFormSortBySeries = 'Ordenar Por:' + QuantumGrid.GridChartCustomizationFormNoSortedSeries = '' + QuantumGrid.GridChartCustomizationFormDataGroupsPageCaption = 'Grupos de Datos' + QuantumGrid.GridChartCustomizationFormOptionsPageCaption = 'Opciones' + QuantumGrid.GridChartLegend = 'Leyenda' + QuantumGrid.GridChartLegendKeyBorder = 'Marco de Clave' + QuantumGrid.GridChartPosition = 'Posici'#243'n' + QuantumGrid.GridChartPositionDefault = 'Defecto' + QuantumGrid.GridChartPositionNone = 'Ninguno' + QuantumGrid.GridChartPositionLeft = 'Izquierda' + QuantumGrid.GridChartPositionTop = 'Superior' + QuantumGrid.GridChartPositionRight = 'Derecha' + QuantumGrid.GridChartPositionBottom = 'Inferior' + QuantumGrid.GridChartAlignment = 'Alineaci'#243'n' + QuantumGrid.GridChartAlignmentDefault = 'Defecto' + QuantumGrid.GridChartAlignmentStart = 'Inicio' + QuantumGrid.GridChartAlignmentCenter = 'Centro' + QuantumGrid.GridChartAlignmentEnd = 'Final' + QuantumGrid.GridChartOrientation = 'Orientaci'#243'n' + QuantumGrid.GridChartOrientationDefault = 'Defecto' + QuantumGrid.GridChartOrientationHorizontal = 'Horizontal' + QuantumGrid.GridChartOrientationVertical = 'Vertical' + QuantumGrid.GridChartBorder = 'Marco' + QuantumGrid.GridChartTitle = 'T'#237'tulo' + QuantumGrid.GridChartToolBox = 'Caja de Herramientas' + QuantumGrid.GridChartDiagramSelector = 'Selector de Diagramas' + QuantumGrid.GridChartOther = 'Otro' + QuantumGrid.GridChartValueHints = 'Valores de Ayuda' + Navigator.NavigatorHint_First = 'Primer registro' + Navigator.NavigatorHint_Prior = 'Registro anterior' + Navigator.NavigatorHint_PriorPage = 'P'#225'gina anterior' + Navigator.NavigatorHint_Next = 'Siguiente registro' + Navigator.NavigatorHint_NextPage = 'Siguiente p'#225'gina' + Navigator.NavigatorHint_Last = #218'ltimo registro' + Navigator.NavigatorHint_Insert = 'Insertar registro' + Navigator.NavigatorHint_Delete = 'Borrar registro' + Navigator.NavigatorHint_Append = 'Append record' + Navigator.NavigatorHint_Edit = 'Editar registro' + Navigator.NavigatorHint_Post = 'Grabar edici'#243'n' + Navigator.NavigatorHint_Cancel = 'Cancelar edici'#243'n' + Navigator.NavigatorHint_Refresh = 'Actualizar datos' + Navigator.NavigatorHint_SaveBookmark = 'Guardar Marca' + Navigator.NavigatorHint_GotoBookmark = 'Volver a Marca' + Navigator.NavigatorHint_Filter = 'Filtrar datos' + Navigator.Navigator_DeleteRecordQuestion = #191'Desea borrar este el registro?' + Editors.EditButtonCancel = 'Cancelar' + Editors.EditButtonOK = 'Aceptar' + Editors.EditDateConvertError = 'El valor no se puede convertir a fecha' + Editors.EditInvalidRepositoryItem = 'Elemento de repositorio no v'#225'lido' + Editors.EditNumericValueConvertError = 'No se puede convertir a valor num'#233'rico' + Editors.EditPopupCircularReferencingError = 'Referencia circular no permitida' + Editors.EditPostError = 'Ocurri'#243' un error durante el grabado del valor de edici'#243'n' + Editors.EditTimeConvertError = 'No se puede convertir a valor de tiempo' + Editors.EditValidateErrorText = 'Valor inv'#225'lido. Use la tecla de escape para cancelar cambios' + Editors.EditValueOutOfBounds = 'Valor fuera de l'#237'mites' + Editors.EditCheckBoxChecked = 'True' + Editors.EditCheckBoxUnchecked = 'False' + Editors.TextTrue = 'True' + Editors.TextFalse = 'False' + Editors.BlobButtonOK = '&Aceptar' + Editors.BlobButtonCancel = '&Cancelar' + Editors.BlobButtonClose = '&Cerrar' + Editors.BlobMemo = '(MEMO)' + Editors.BlobMemoEmpty = '(memo)' + Editors.BlobPicture = '(IM'#193'GEN)' + Editors.BlobPictureEmpty = '(im'#225'gen)' + Editors.MenuItemCaptionCut = 'Cor&tar' + Editors.MenuItemCaptionCopy = '&Copiar' + Editors.MenuItemCaptionPaste = '&Pegar' + Editors.MenuItemCaptionDelete = '&Borrar' + Editors.MenuItemCaptionLoad = '&Leer...' + Editors.MenuItemCaptionSave = 'Guardar &Como...' + Editors.DatePopupClear = 'Limpiar' + Editors.DatePopupNow = 'Ahora' + Editors.DatePopupOK = 'Aceptar' + Editors.DatePopupToday = 'Hoy' + Editors.DateError = 'Fecha inv'#225'lida' + Editors.DateToday = 'hoy' + Editors.DateYesterday = 'ayer' + Editors.DateTomorrow = 'ma'#241'ana' + Editors.DateSunday = 'Domingo' + Editors.DateMonday = 'Lunes' + Editors.DateTuesday = 'Martes' + Editors.DateWednesday = 'Mi'#233'rcoles' + Editors.DateThursday = 'Jueves' + Editors.DateFriday = 'Viernes' + Editors.DateSaturday = 'S'#225'bado' + Editors.DateFirst = 'Primero' + Editors.DateSecond = 'segundo' + Editors.DateThird = 'tercero' + Editors.DateFourth = 'Cuarto' + Editors.DateFifth = 'Quinto' + Editors.DateSixth = 'sexto' + Editors.DateSeventh = 's'#233'ptimo' + Editors.DateBOM = 'bom' + Editors.DateEOM = 'eom' + Editors.DateNow = 'ahora' + Editors.CalcError = 'Error' + Editors.HyperLinkPrefix = 'http://' + Editors.HyperLinkDoubleSlash = '//' + Editors.EditRepositoryBlobItem = 'BlobEdit|Representa el editor de BLOB' + Editors.EditRepositoryButtonItem = + 'ButtonEdit|Representa un control de edici'#243'n con controles incrus' + + 'tados' + Editors.EditRepositoryCalcItem = + 'CalcEdit|Representa un control de edici'#243'n con una ventana de cal' + + 'culadora desplegable' + Editors.EditRepositoryCheckBoxItem = + 'CheckBox|Representa un control de caja de marca que permite sele' + + 'ccionar una opci'#243'n' + Editors.EditRepositoryComboBoxItem = 'ComboBox|Representa el editor de la caja combo' + Editors.EditRepositoryCurrencyItem = + 'CurrencyEdit|Representa un editor que habilita la edici'#243'n de val' + + 'ores monetarios' + Editors.EditRepositoryDateItem = + 'DateEdit|Representa un control de edici'#243'n con un calendario desp' + + 'legable' + Editors.EditRepositoryHyperLinkItem = 'HyperLink|Representa un editor de texto de hiperv'#237'nculos' + Editors.EditRepositoryImageComboBoxItem = + 'ImageComboBox|Representa un editor que muestra una lista de im'#225'g' + + 'enes y texto en la ventana desplegable' + Editors.EditRepositoryImageItem = 'Image|Representa un editor de im'#225'genes' + Editors.EditRepositoryLookupComboBoxItem = 'LookupComboBox|Representa una caja de b'#250'squeda' + Editors.EditRepositoryMaskItem = 'MaskEdit|Representa un control de edici'#243'n gen'#233'rico con m'#225'scara' + Editors.EditRepositoryMemoItem = + 'Memo|Representa un control de edici'#243'n que permite editar datos m' + + 'emo' + Editors.EditRepositoryMRUItem = + 'MRUEdit|Representa un editor de texto mostrando la lista de los ' + + 'elementos m'#225's recientemente usados (MRU) en una ventana desplega' + + 'ble' + Editors.EditRepositoryPopupItem = + 'PopupEdit|Representa un control de edici'#243'n con una lista despleg' + + 'able' + Editors.EditRepositorySpinItem = 'SpinEdit|Representa un editor de incrementos/decrementos (spin)' + Editors.EditRepositoryRadioGroupItem = 'RadioGroup|Represents a group of radio buttons' + Editors.EditRepositoryTextItem = 'TextEdit|Representa un editor de texto de l'#237'nea sencilla' + Editors.EditRepositoryTimeItem = 'TimeEdit|Representa un editor mostrando valores de tiempo' + Editors.EditRepositoryColorComboBoxItem = 'ColorComboBox |Represents a editor with color functionality' + Editors.EditRepositoryFontNameComboBoxItem = 'FontNameComboBox |Represents a editor with font functionality' + Editors.EditRepositoryLabelItem = 'Label|Represents a Label' + Editors.EditRepositoryProgressBarItem = 'ProgressBar|Represents a ProgressBar' + Editors.EditRepositoryTrackBarItem = 'TrackBar|Represents a TrackBar' + Editors.EditRepositorySpinButtonItem = 'SpinButton|Represents a SpinButton' + Editors.EditRepositoryCheckComboBox = 'CheckComboBox|Represents a CheckComboBox' + Editors.EditRepositoryShellComboBoxItem = + 'ShellComboBox|Represents a combo box with a dropdown shell tree ' + + 'view' + Editors.EditRepositoryCheckGroupItem = 'CheckGroup|Represents a group of check boxes' + Editors.EditRepositoryRichEditItem = 'RichEdit|RichEdit control' + Editors.EditCheckGroupCaptionStateDelimiter = ': ' + Editors.EditCheckGroupFilterColumnSeparator = '; ' + Editors.EditCheckGroupChecked = 'Checked' + Editors.EditCheckGroupGrayed = 'Grayed' + Editors.EditCheckGroupUnchecked = 'Unchecked' + Editors.CheckComboBoxStatesItemsPropertyDlgCaption = 'cxCheckComboBox - CheckStates editor' + Editors.CheckGroupStatesItemsPropertyDlgCaption = 'cxCheckGroup - CheckStates editor' + Editors.CheckComboBoxEmptySelectionText = 'None selected' + Editors.ColorComboBoxDefaultDescription = 'Color not selected' + Editors.EditRichEditLibraryError = 'Cannot load a RichEdit library' + Editors.EditRichEditLineInsertionError = 'RichEdit line insertion error' + Editors.EditRichEditLoadFail = 'Failed to Load Stream' + Editors.EditRichEditSaveFail = 'Failed to Save Stream' + Editors.EditRichEditUndoCaption = '&Undo' + Editors.EditRichEditRedoCaption = '&Redo' + Editors.EditRichEditCutCaption = 'Cu&t' + Editors.EditRichEditCopyCaption = '&Copy' + Editors.EditRichEditPasteCaption = '&Paste' + Editors.EditRichEditDeleteCaption = '&Delete' + Editors.EditRichEditSelectAllCaption = 'Select &All' + Editors.RegExprLine = 'L'#237'nea' + Editors.RegExprChar = 'Char' + Editors.RegExprNotAssignedSourceStream = 'No se ha asignado el stream fuente' + Editors.RegExprEmptySourceStream = 'El stream or'#237'gen est'#225' vac'#237'o' + Editors.RegExprCantUsePlusQuantifier = 'El cuantificador '#39'+'#39' no puede aplicarse aqu'#237 + Editors.RegExprCantUseStarQuantifier = 'El cuantificador '#39'*'#39' no puede aplicarse aqu'#237 + Editors.RegExprCantCreateEmptyAlt = 'La alternativa no debe estar vac'#237'a' + Editors.RegExprCantCreateEmptyBlock = 'El bloque no debe estar vac'#237'o' + Editors.RegExprIllegalSymbol = 'S'#237'mbolo no permitido '#39'%s'#39 + Editors.RegExprIllegalQuantifier = 'Cuantificador no permitido '#39'%s'#39 + Editors.RegExprNotSupportQuantifier = 'El par'#225'metro cuantificador no es soportado' + Editors.RegExprIllegalIntegerValue = 'Valor entero no permitido' + Editors.RegExprTooBigReferenceNumber = 'N'#250'mero de referencia demasiado grande' + Editors.RegExprCantCreateEmptyEnum = 'No puedo crear enumeraci'#243'n vac'#237'a' + Editors.RegExprSubrangeOrder = 'El caracter de inicio del subrango debe ser menor al de fin' + Editors.RegExprHexNumberExpected0 = 'Se esperaba n'#250'mero Hexadecimal' + Editors.RegExprHexNumberExpected = 'N'#250'mero Hexadecimal esperado pero encontr'#243' '#39'%s'#39 + Editors.RegExprMissing = 'Falta '#39'%s'#39 + Editors.RegExprUnnecessary = 'Innecesario '#39'%s'#39 + Editors.RegExprIncorrectSpace = 'Espacio incorrecto despu'#233's de '#39'\'#39 + Editors.RegExprNotCompiled = 'Expresi'#243'n regular no compila' + Editors.RegExprIncorrectParameterQuantifier = 'Cuantificador de par'#225'metros incorrecto' + Editors.RegExprCantUseParameterQuantifier = 'The parameter quantifier cannot be applied here' + Editors.UDAssociated = ' is already associated with ' + Editors.HotZoneStyleMediaPlayer9 = 'MediaPlayer9' + Editors.HotZoneStyleMediaPlayer8 = 'MediaPlayer8' + Editors.HotZoneStyleXPTaskBar = 'XPTaskBar' + Editors.HotZoneStyleSimple = 'Simple' + Editors.LoadingFonts = 'Loading ...' + Editors.MaskEditRegExprError = 'Errores en expresiones regulares:' + Editors.MaskEditInvalidEditValue = 'El valor de edici'#243'n es inv'#225'lido' + Editors.MaskEditNoMask = 'Ninguno' + Editors.MaskEditIllegalFileFormat = 'Formato de archivo ilegal' + Editors.MaskEditEmptyMaskCollectionFile = 'El archivo de colecci'#243'n de m'#225'scaras est'#225' vac'#237'o' + Editors.MaskEditMaskCollectionFiles = 'Archivos de colecci'#243'n de m'#225'scaras' + Editors.SpinEditInvalidNumericValue = 'Valor num'#233'rico no v'#225'lido' + Datacontroller.DataReadError = 'Error de lectura en or'#237'gen de datos' + Datacontroller.DataWriteError = 'Error de escritura en or'#237'gen de datos (stream)' + Datacontroller.DataItemExistError = 'El elemento ya existe' + Datacontroller.DataRecordIndexError = #205'ndice de registro fuera de rango' + Datacontroller.DataItemIndexError = #205'ndice de elemento fuera de rango' + Datacontroller.DataProviderModeError = 'La operaci'#243'n no es soportada en modo de proveedor (provider)' + Datacontroller.DataInvalidStreamFormat = 'Origen de datos (Stream) inv'#225'lido' + Datacontroller.DataRowIndexError = #205'ndice del elemento de fila fuera de rango' + Datacontroller.DataCustomDataSourceInvalidCompare = 'Instrucci'#243'n GetInfoForCompare no implementada' + Datacontroller.DBDetailFilterControllerNotFound = 'DetailFilterController no encontrado' + Datacontroller.DBNotInGridMode = 'La controladora de datos no est'#225' en modo de Grid' + Datacontroller.DBKeyFieldNotFound = 'Campo llave no encontrado' + Filter.FilterOperatorEqual = 'igual' + Filter.FilterOperatorNotEqual = 'no es igual' + Filter.FilterOperatorLess = 'es menor que' + Filter.FilterOperatorLessEqual = 'es menor o igual que' + Filter.FilterOperatorGreater = 'es mayor que' + Filter.FilterOperatorGreaterEqual = 'es mayor o igual que' + Filter.FilterOperatorLike = 'como' + Filter.FilterOperatorNotLike = 'no es como' + Filter.FilterOperatorBetween = 'entre' + Filter.FilterOperatorNotBetween = 'no entre' + Filter.FilterOperatorInList = 'en' + Filter.FilterOperatorNotInList = 'no en' + Filter.FilterOperatorYesterday = 'es ayer' + Filter.FilterOperatorToday = 'es hoy' + Filter.FilterOperatorTomorrow = 'es ma'#241'ana' + Filter.FilterOperatorLastWeek = 'es '#250'ltima semana' + Filter.FilterOperatorLastMonth = 'es '#250'ltimo mes' + Filter.FilterOperatorLastYear = 'es a'#241'o pasado' + Filter.FilterOperatorThisWeek = 'es esta semana' + Filter.FilterOperatorThisMonth = 'es este mes' + Filter.FilterOperatorThisYear = 'es este a'#241'o' + Filter.FilterOperatorNextWeek = 'es semana siguiente' + Filter.FilterOperatorNextMonth = 'es mes siguiente' + Filter.FilterOperatorNextYear = 'es a'#241'o pr'#243'ximo' + Filter.FilterOperatorLast7Days = #218'ltimos 7 d'#237'as' + Filter.FilterOperatorLast14Days = #218'ltimos 14 d'#237'as' + Filter.FilterOperatorLastTwoWeeks = #218'ltimas 2 semanas' + Filter.FilterOperatorLast30Days = #218'ltimos 30 d'#237'as' + Filter.FilterOperatorPast = 'Pasado' + Filter.FilterOperatorNext7Days = 'Pr'#243'ximos 7 d'#237'as' + Filter.FilterOperatorNext14Days = 'Pr'#243'ximos 14 d'#237'as' + Filter.FilterOperatorNextTwoWeeks = 'Pr'#243'ximas 2 semanas' + Filter.FilterOperatorNext30Days = 'Pr'#243'ximos 30 d'#237'as' + Filter.FilterOperatorFuture = 'Futuro' + Filter.FilterAndCaption = 'y' + Filter.FilterOrCaption = 'o' + Filter.FilterNotCaption = 'no' + Filter.FilterBlankCaption = 'vac'#237'o' + Filter.FilterOperatorIsNull = 'es vac'#237'o' + Filter.FilterOperatorIsNotNull = 'no es vac'#237'o' + Filter.FilterOperatorBeginsWith = 'comienza con' + Filter.FilterOperatorDoesNotBeginWith = 'no comienza con' + Filter.FilterOperatorEndsWith = 'termina con' + Filter.FilterOperatorDoesNotEndWith = 'no termina con' + Filter.FilterOperatorContains = 'contiene' + Filter.FilterOperatorDoesNotContain = 'no contiene' + Filter.FilterBoxAllCaption = '(Todos)' + Filter.FilterBoxCustomCaption = '(Personalizado...)' + Filter.FilterBoxBlanksCaption = '(Vac'#237'os)' + Filter.FilterBoxNonBlanksCaption = '(NoVac'#237'os)' + Filter.FilterBoolOperatorAnd = 'Y' + Filter.FilterBoolOperatorOr = 'O' + Filter.FilterBoolOperatorNotAnd = 'NO Y' + Filter.FilterBoolOperatorNotOr = 'NO O' + Filter.FilterRootButtonCaption = 'Filtro' + Filter.FilterAddCondition = 'Agregar &Condici'#243'n' + Filter.FilterAddGroup = 'Agregar &Grupo' + Filter.FilterRemoveRow = '&Remover Fila' + Filter.FilterClearAll = 'Limpiar &Todo' + Filter.FilterFooterAddCondition = 'presione el bot'#243'n para agregar una nueva condici'#243'n' + Filter.FilterGroupCaption = 'aplica a las siguientes condiciones' + Filter.FilterRootGroupCaption = '' + Filter.FilterControlNullString = '' + Filter.FilterErrorBuilding = 'No se puede construir filtro desde el or'#237'gen' + Filter.FilterDialogCaption = 'Filtro Personalizado' + Filter.FilterDialogInvalidValue = 'Valor inv'#225'lido' + Filter.FilterDialogUse = 'Usar' + Filter.FilterDialogSingleCharacter = 'para representar un caracter sencillo' + Filter.FilterDialogCharactersSeries = 'para representar cualquier serie de caracteres' + Filter.FilterDialogOperationAnd = 'Y' + Filter.FilterDialogOperationOr = 'O' + Filter.FilterDialogRows = 'Mostrar filas donde:' + Filter.FilterControlDialogCaption = 'Constructor de Filtro' + Filter.FilterControlDialogNewFile = 'sinnombre.flt' + Filter.FilterControlDialogOpenDialogCaption = 'Abrir un filtro existente' + Filter.FilterControlDialogSaveDialogCaption = 'Grabar el filtro activo a archivo' + Filter.FilterControlDialogActionSaveCaption = '&Guardar...' + Filter.FilterControlDialogActionOpenCaption = '&Abrir...' + Filter.FilterControlDialogActionApplyCaption = '&Aplicar' + Filter.FilterControlDialogActionOkCaption = 'Aceptar' + Filter.FilterControlDialogActionCancelCaption = 'Cancelar' + Filter.FilterControlDialogFileExt = 'flt' + Filter.FilterControlDialogFileFilter = 'Filtros (*.flt)|*.flt' + GridPopupMenu.GridNone = 'Ninguno' + GridPopupMenu.GridSortColumnAsc = 'Ordenar Ascendente' + GridPopupMenu.GridSortColumnDesc = 'Ordenar Descendente' + GridPopupMenu.GridClearSorting = 'Eliminar Ordenaci'#243'n' + GridPopupMenu.GridGroupByThisField = 'Agrupar por este campo' + GridPopupMenu.GridRemoveThisGroupItem = 'Remover del grupo' + GridPopupMenu.GridGroupByBox = 'Panel "Agrupar por"' + GridPopupMenu.GridAlignmentSubMenu = 'Alineaci'#243'n' + GridPopupMenu.GridAlignLeft = 'Alineaci'#243'n Izquierda' + GridPopupMenu.GridAlignRight = 'Alineaci'#243'n Derecha' + GridPopupMenu.GridAlignCenter = 'Alineaci'#243'n Centrada' + GridPopupMenu.GridRemoveColumn = 'Remover esta columna' + GridPopupMenu.GridFieldChooser = 'Selector de campos' + GridPopupMenu.GridBestFit = 'Mejor distribuci'#243'n' + GridPopupMenu.GridBestFitAllColumns = 'Mejor distribuci'#243'n (Todas las columnas)' + GridPopupMenu.GridShowFooter = 'Pie' + GridPopupMenu.GridShowGroupFooter = 'Pies de grupo' + GridPopupMenu.GridSumMenuItem = 'Sumar' + GridPopupMenu.GridMinMenuItem = 'M'#237'nimo' + GridPopupMenu.GridMaxMenuItem = 'M'#225'ximo' + GridPopupMenu.GridCountMenuItem = 'Contar' + GridPopupMenu.GridAvgMenuItem = 'Promedio' + GridPopupMenu.GridNoneMenuItem = 'Ninguno' + GridPopupMenu.GridSortByGroupValues = 'Sort by Group Value' + GridPopupMenu.GridSortBySummaryCaption = 'Sort by Group Summary:' + GridPopupMenu.GridSortBySummary = '%s for %s' + GridExport.UnsupportedExport = 'Tipo de exportaci'#243'n no soportado: %1' + GridExport.StyleManagerKill = + 'El administrador de estilo esta siendo utilizado y no puede ser ' + + 'liberado en este momento' + GridExport.StyleManagerCreate = 'No se puede crear administrador de estilo' + GridExport.ExportToHtml = 'Exportar a p'#225'gina Web (*.html)' + GridExport.ExportToXml = 'Exportar a documento XML (*.xml)' + GridExport.ExportToText = 'Exportar a formato de texto (*.txt)' + GridExport.EmptyExportCache = 'Cache de exportaci'#243'n vac'#237'o' + GridExport.IncorrectUnion = 'Uni'#243'n de celdas incorrecta' + GridExport.IllegalWidth = 'Ancho de columna ilegal' + GridExport.InvalidColumnRowCount = 'Conteo de columna o fila inv'#225'lido' + GridExport.IllegalHeight = 'Alto de fila ilegal' + GridExport.InvalidColumnIndex = 'El '#237'ndice de columna %d fuera de l'#237'mites' + GridExport.InvalidRowIndex = 'El '#237'ndice de fila %d est'#225' fuera de l'#237'mites' + GridExport.InvalidStyleIndex = #205'ndice de estilo %d inv'#225'lido' + GridExport.ExportToExcel = 'Exportar a MS Excel (*.xls)' + GridExport.WorkbookWrite = 'Error al escribir el archivo XLS' + GridExport.InvalidCellDimension = 'Dimensi'#243'n de celda inv'#225'lida' + GridExport.BoolTrue = 'True' + GridExport.BoolFalse = 'False' + Translate.cxLibrary = False + Translate.PageControl = False + Translate.QuantumGrid = False + Translate.Editors = False + Translate.Datacontroller = False + Translate.Filter = False + Translate.GridPopupMenu = False + Translate.GridExport = False + Translate.Navigator = False + Version = '6.29' + Left = 104 + Top = 16 + end + object cxIntlPrintSys3: TcxIntlPrintSys3 + Connected = True + Version = '3.0' + BtnOK = 'Aceptar' + BtnOKAccelerated = '&Aceptar' + BtnCancel = 'Cancelar' + BtnClose = 'Cerrar' + BtnApply = '&Aplicar' + BtnHelp = 'A&yuda' + BtnFix = '&Arreglar' + BtnNew = '&Nuevo...' + BtnIgnore = '&Ignorar' + BtnYes = '&S'#237 + BtnNo = '&No' + BtnEdit = '&Editar...' + BtnReset = '&Restaurar' + BtnAdd = '&A'#241'adir' + BtnAddComposition = 'A'#241'adir &Comparativa' + BtnDefault = '&Defecto...' + BtnDelete = '&Borrar...' + BtnDescription = '&Descripci'#243'n...' + BtnCopy = '&Copiar...' + BtnYesToAll = 'S'#237' a &Todos' + BtnRestoreDefaults = '&Rest.Defecto' + BtnRestoreOriginal = 'Restaurar &Original' + BtnTitleProperties = 'Prop. del T'#237'tulo...' + BtnProperties = 'P&ropiedades...' + BtnNetwork = 'R&ed...' + BtnBrowse = '&Hojear...' + BtnPageSetup = 'Config. P'#225'&gina...' + BtnPrintPreview = 'Vista Pre&via...' + BtnPreview = '&Ver...' + BtnPrint = 'Imprimir...' + BtnOptions = '&Opciones...' + BtnStyleOptions = 'Opciones de estilo...' + BtnDefinePrintStyles = '&Definir Estilos...' + BtnPrintStyles = 'Estilos de Imp.' + BtnBackground = 'Fondo' + BtnShowToolBar = 'Mostrar &Herramientas' + BtnDesign = 'D&ise'#241'o...' + BtnMoveUp = 'Mover &Arriba' + BtnMoveDown = 'Mover Aba&jo' + BtnMoreColors = '&M'#225's Colores...' + BtnFillEffects = 'Efectos de &Relleno...' + BtnNoFill = '&Sin Relleno' + BtnAutomatic = '&Autom'#225'tico' + BtnNone = '&Ninguno' + BtnOtherTexture = 'Otras Te&xturas...' + BtnInvertColors = 'I&nvertir Colores' + BtnSelectPicture = 'Se&leccionar Imagen...' + EditReports = 'Editar Informes' + Composition = 'Composici'#243'n' + ReportTitleDlgCaption = 'T'#237'tulo del Informe' + Mode = '&Modo:' + Text = '&Texto' + Properties = '&Propiedades' + AdjustOnScale = '&Ajustar Escala' + TitleModeNone = 'Ninguno' + TitleModeOnEveryTopPage = 'En Cada P'#225'gina' + TitleModeOnFirstPage = 'En Primera P'#225'gina' + EditDescription = 'Editar Descripci'#243'n' + Rename = 'Reno&mbrar' + SelectAll = 'Seleccionar Todo' + AddReport = 'A'#241'adir Informe' + AddAndDesignReport = 'A'#241'adir y D&ise'#241'ar Informe...' + NewCompositionCaption = 'Nueva Composici'#243'n' + Name0 = '&Nombre:' + Caption = '&T'#237'tulo:' + AvailableSources = '&Fuente(s) Disponible(s)' + OnlyComponentsInActiveForm = 'S'#243'lamente Componentes en Formulario &Activo' + OnlyComponentsWithoutLinks = 'S'#243'lamente Componentes &sin Enlaces Existentes' + ItemName = 'Nombre' + ItemDescription = 'Descripci'#243'n' + ConfirmDeleteItem = 'Quiere borrar los siguientes elementos: %s ?' + AddItemsToComposition = 'A'#241'adir Elementos a la Composici'#243'n' + HideAlreadyIncludedItems = 'Ocultar Elementos Ya &Incluidas' + AvailableItems = 'Elementos D&isponibles' + Items = '&Elementos' + Enable = '&Habilitar' + Options = 'Opciones' + Show = 'Mostrar' + PaintItemsGraphics = '&Pintar Elementos Gr'#225'ficos' + Description = 'Descripci'#243'n:' + NewReport = 'Nuevo Informe' + OnlySelected = 'S'#243'lo &Seleccionados' + ExtendedSelect = 'Selecci'#243'n &Extendida' + IncludeFixed = '&Incluir Fijos' + Fonts = 'Fuentes' + BtnFont = 'Fue&nte...' + BtnEvenFont = 'Fuente &Par...' + BtnOddFont = 'Fuente &Impar...' + BtnFixedFont = 'Fuente F&ijo...' + BtnGroupFont = 'Fuente de Gru&po...' + BtnChangeFont = 'Cambiar Fue&nte...' + Font = 'Fuente' + OddFont = 'Fuente Impar' + EvenFont = 'Fuente Par' + PreviewFont = 'Fuente Vista Prev.' + CaptionNodeFont = 'Fuente T'#237'tulo del Nivel' + GroupNodeFont = 'Fuente T'#237'tulos de Grupo' + GroupFooterFont = 'Fuente Pies de Grupo' + HeaderFont = 'Fuente Cabecera' + FooterFont = 'Fuente Pie' + BandFont = 'Fuente Groups' + Transparent = '&Transparente' + FixedTransparent = 'Transparente Fijo' + CaptionTransparent = 'T'#237'tulo Transparente' + GroupTransparent = 'Grupo Transparente' + GraphicAsTextValue = '(GRAPHIC)' + Colors = 'Colores' + Color = 'Co&lor:' + OddColor = 'Co&lor Impar:' + EvenColor = 'Color Par:' + PreviewColor = 'Color V.&Previa:' + BandColor = 'Color &Grupos:' + LevelCaptionColor = 'Color T'#237'tulo Ni&vel:' + HeaderColor = 'Color Cab&ecera:' + GroupNodeColor = 'Color &Nodo Grupo:' + GroupFooterColor = 'Color Pie &Grupo:' + FooterColor = 'Color P&ie:' + FixedColor = 'Color F&ijo:' + GroupColor = 'Color Gru&po:' + CaptionColor = 'Color T'#237'tulo:' + GridLinesColor = 'Color L'#237'nea &Rejilla:' + Bands = '&Grupos' + LevelCaptions = 'T'#237'tulo Niveles' + Headers = 'Cab&eceras' + Footers = 'P&ies&' + GroupFooters = 'Pies de &Grupos' + Preview = 'Vista Pre&via' + PreviewLineCount = 'N'#250'm.L'#237'neas V.Previa:' + AutoCalcPreviewLineCount = 'A&uto-Calcular L'#237'neas V.Previa' + Grid = 'Re&jilla&' + NodesGrid = '&Nodos de Rejilla' + GroupFooterGrid = 'Rejilla de Gru&pos Pie' + StateImages = 'Imagenes de E&stado' + Images = '&Imagenes' + TextAlign = '&Alineaci'#243'n Texto' + TextAlignHorz = 'Hori&zontal' + TextAlignVert = '&Vertical' + TextAlignLeft = 'Izquierda' + TextAlignCenter = 'Centrado' + TextAlignRight = 'Derecha' + TextAlignTop = 'Superior' + TextAlignVCenter = 'Centrado' + TextAlignBottom = 'Inferior' + BorderLines = 'L'#237'neas de &Borde' + HorzLines = 'L'#237'neas Hori&zontales' + VertLines = 'L'#237'neas &Verticales' + FixedHorzLines = 'L'#237'neas Horizontales Fi&jas' + FixedVertLines = 'L'#237'neas Verticales Fij&as' + FlatCheckMarks = 'Cajas de Verificaci'#243'n P&lanas' + CheckMarksAsText = '&Mostrar Cajas Verificaci'#243'n como Text' + RowAutoHeight = 'Altura &Fila Auto.' + EndEllipsis = '&Puntos Suspens.' + DrawBorder = '&Dibujar Borde' + FullExpand = '&Expandir Todo' + BorderColor = 'Color &Borde:' + AutoNodesExpand = 'Expandir N&odos' + ExpandLevel = 'Expandir &Niveles:' + FixedRowOnEveryPage = 'Filas Fijas en &Cada P'#225'gina' + DrawMode = '&Modo Dibujo:' + DrawModeStrict = 'Estricto' + DrawModeOddEven = 'Modo Filas Par/Impar' + DrawModeChess = 'Modo '#39'Ajedrez'#39 + DrawModeBorrow = 'Prestar de Fuente' + ThreeDEffects = 'Efectos 3D' + Use3DEffects = 'Usar Efectos &3D' + Soft3D = '3D "Suave"' + Behaviors = 'Comportamiento' + Miscellaneous = 'Miscelaneo' + OnEveryPage = 'En Cada P'#225'gina' + NodeExpanding = 'Expansi'#243'n de Nodos' + Selection = 'Selecci'#243'n' + NodeAutoHeight = 'Altura &Nodo Auto.' + TransparentGraphics = 'Gr'#225'ficos &Transparentes' + AutoWidth = 'An&chura Auto.' + DisplayGraphicsAsText = 'Mostrar Gr'#225'fico Como &Texto' + TransparentColumnGraphics = '&Gr'#225'ficos Transparentes' + BandsOnEveryPage = 'Grupos En C&ada P'#225'gina' + HeadersOnEveryPage = 'Cabeceras en Cada &P'#225'gina' + FootersOnEveryPage = 'Pies en Ca&da P'#225'gina' + Graphics = 'Gr'#225'ficos' + OutOfResources = 'Out of Resources' + FileAlreadyExists = 'Fichero "%s" Ya Existe.' + ConfirmOverWrite = 'Fichero "%s" ya existe. '#191'Sobreescribir?' + InvalidFileName = 'Nombre No V'#225'lido "%s"' + RequiredFileName = 'Entrar nombre de fichero.' + OutsideMarginsMessage = + 'Uno o m'#225's margenes est'#225'n fuera del area de impresi'#243'n de la p'#225'gin' + + 'a.' + OutsideMarginsMessage2 = + 'Uno o m'#225's margenes est'#225'n fuera del area de impresi'#243'n de la p'#225'gin' + + 'a.' + InvalidMarginsMessage = 'Uno o m'#225's margenes tiene valores no v'#225'lidos.' + InvalidMargins = 'Uno o m'#225's valores de los margenes no es v'#225'lido' + OutsideMargins = + 'Uno o m'#225's margenes se ha establecido fuera del area de impresi'#243'n' + + ' de la p'#225'gina' + ThereAreNowItemsForShow = 'No existen elementos en '#233'sta vista' + PageBackground = 'Fondo de P'#225'gina' + PenColor = 'Color del L'#225'piz' + FontColor = 'Color del Fuente' + BrushColor = 'Color de la Brocha' + HighLight = 'HighLight' + ColorBlack = 'Negro' + ColorDarkRed = 'Rojo Oscuro' + ColorRed = 'Rojo' + ColorPink = 'Rosa' + ColorRose = 'Rosado' + ColorBrown = 'Marr'#243'n' + ColorOrange = 'Naranja' + ColorLightOrange = 'Naranja Claro' + ColorGold = 'Oro' + ColorTan = 'Dorado' + ColorOliveGreen = 'Verde Oliva' + ColorDrakYellow = 'Amarillo Oscuro' + ColorLime = 'Lima' + ColorYellow = 'Amarillo' + ColorLightYellow = 'Amarillo Claro' + ColorDarkGreen = 'Verde Oscuro' + ColorGreen = 'Verde' + ColorSeaGreen = 'Verde Mar' + ColorBrighthGreen = 'Verde Florecente' + ColorLightGreen = 'Verde Claro' + ColorDarkTeal = 'VerdeAzul Oscuro' + ColorTeal = 'VerdeAzul' + ColorAqua = 'Aqua' + ColorTurquoise = 'Turquesa' + ColorLightTurquoise = 'Turquesa Claro' + ColorDarkBlue = 'Azul Oscuro' + ColorBlue = 'Azul' + ColorLightBlue = 'Azul Claro' + ColorSkyBlue = 'Azul Cielo' + ColorPaleBlue = 'Azul P'#225'lido' + ColorIndigo = 'Indigo' + ColorBlueGray = 'Azul Gris' + ColorViolet = 'Violeta' + ColorPlum = 'Granate' + ColorLavender = 'Lav'#225'nder' + ColorGray80 = 'Gris-80%' + ColorGray50 = 'Gris-50%' + ColorGray40 = 'Gris-40%' + ColorGray25 = 'Gris-25%' + ColorWhite = 'Blanco' + Texture = '&Textura' + Pattern = '&Dibujo' + Picture = '&Im'#225'gen' + Foreground = '&Primer Plano' + Background = '&Fondo' + Sample = 'Ejemplo:' + FEFCaption = 'Efectos de Relleno' + PaintMode = '&Modo Pintar' + PaintModeCenter = 'Centrar' + PaintModeStretch = 'Estirar' + PaintModeTile = 'Mosaico' + PaintModeProportional = 'Proporcional' + PatternGray5 = '5%' + PatternGray10 = '10%' + PatternGray20 = '20%' + PatternGray25 = '25%' + PatternGray30 = '30%' + PatternGray40 = '40%' + PatternGray50 = '50%' + PatternGray60 = '60%' + PatternGray70 = '70%' + PatternGray75 = '75%' + PatternGray80 = '80%' + PatternGray90 = '90%' + PatternLightDownwardDiagonal = 'Light downward diagonal' + PatternLightUpwardDiagonal = 'Light upward diagonal' + PatternDarkDownwardDiagonal = 'Dark downward diagonal' + PatternDarkUpwardDiagonal = 'Dark upward diagonal' + PatternWideDownwardDiagonal = 'Wide downward diagonal' + PatternWideUpwardDiagonal = 'Wide upward diagonal' + PatternLightVertical = 'Light vertical' + PatternLightHorizontal = 'Light horizontal' + PatternNarrowVertical = 'Narrow vertical' + PatternNarrowHorizontal = 'Narrow horizontal' + PatternDarkVertical = 'Dark vertical' + PatternDarkHorizontal = 'Dark horizontal' + PatternDashedDownward = 'Dashed downward' + PatternDashedUpward = 'Dashed upward' + PatternDashedVertical = 'Dashed vertical' + PatternDashedHorizontal = 'Dashed horizontal' + PatternSmallConfetti = 'Small confetti' + PatternLargeConfetti = 'Large confetti' + PatternZigZag = 'Zig zag' + PatternWave = 'Wave' + PatternDiagonalBrick = 'Diagonal brick' + PatternHorizantalBrick = 'Horizontal brick' + PatternWeave = 'Weave' + PatternPlaid = 'Plaid' + PatternDivot = 'Divot' + PatternDottedGrid = 'Dottedgrid' + PatternDottedDiamond = 'Dotted diamond' + PatternShingle = 'Shingle' + PatternTrellis = 'Trellis' + PatternSphere = 'Sphere' + PatternSmallGrid = 'Small grid' + PatternLargeGrid = 'Large grid' + PatternSmallCheckedBoard = 'Small checked board' + PatternLargeCheckedBoard = 'Large checked board' + PatternOutlinedDiamond = 'Outlined diamond' + PatternSolidDiamond = 'Solid diamond' + TextureNewSprint = 'Newsprint' + TextureGreenMarble = 'Green marble' + TextureBlueTissuePaper = 'Blue tissue paper' + TexturePapyrus = 'Papyrus' + TextureWaterDroplets = 'Water droplets' + TextureCork = 'Cork' + TextureRecycledPaper = 'Recycled paper' + TextureWhiteMarble = 'White marble' + TexturePinkMarble = 'Pink marble' + TextureCanvas = 'Canvas' + TexturePaperBag = 'Paper bag' + TextureWalnut = 'Walnut' + TextureParchment = 'Parchment' + TextureBrownMarble = 'Brown marble' + TexturePurpleMesh = 'Purple mesh' + TextureDenim = 'Denim' + TextureFishFossil = 'Fish fossil' + TextureOak = 'Oak' + TextureStationary = 'Stationary' + TextureGranite = 'Granite' + TextureBouquet = 'Bouquet' + TextureWonenMat = 'Woven mat' + TextureSand = 'Sand' + TextureMediumWood = 'Medium wood' + FSPCaption = 'Vista de Im'#225'gen' + Width = 'Altura' + Height = 'Altura' + BrushDlgCaption = 'Propiedades de la Brocha' + Style = 'E&stilo:' + ENFNCaption = 'Escoge Nombre de Fichero' + EnterNewFileName = 'Introduzca Nuevo Nombre de Fichero' + DefinePrintStylesCaption = 'Definir Estilos de Impresi'#243'n' + DefinePrintStylesTitle = 'E&stilos de Impresi'#243'n' + DefinePrintStylesWarningDelete = #191' Desea borrar "%s" ?' + DefinePrintStylesWarningClear = #191'Desea borrar todos los estilos existentes?' + Clear = 'E&liminar...' + CustomSize = 'Tama'#241'o Personalizado' + DefaultTray = 'Bandeja de Entrada' + InvalidPrintDevice = 'La impresora seleccionada no es v'#225'lida' + NotPrinting = 'La impresora no est'#225' imprimiendo' + Printing = 'Imprimiendo' + DeviceOnPort = '%s en %s' + PrinterIndexError = #205'ndice de Impresora fueera de rango' + NoDefaultPrintDevice = 'No hay ninguna impresora seleccionada' + AutoTextDialogCaption = 'Editar Entidades AutoTexto' + EnterAutoTextEntriesHere = 'Entrar Entidades A&utoTexto Aqu'#237':' + PrintDialogCaption = 'Imprimir' + PrintDialogPrinter = 'Impresora' + PrintDialogName = '&Nombre:' + PrintDialogStatus = 'Estado:' + PrintDialogType = 'Tipo:' + PrintDialogWhere = 'D'#243'nde:' + PrintDialogComment = 'Comentario:' + PrintDialogPrintToFile = 'A &Fichero' + PrintDialogPageRange = 'Rango de P'#225'g.' + PrintDialogAll = '&Todas' + PrintDialogCurrentPage = 'P'#225'g. A&ctual' + PrintDialogSelection = '&Selecci'#243'n' + PrintDialogPages = '&P'#225'ginas:' + PrintDialogRangeLegend = 'Entre el n'#250'mero de p'#225'gina o un rango de p'#225'ginas' + PrintDialogCopies = 'Copias' + PrintDialogNumberOfPages = 'N&'#250'mero de P'#225'g.:' + PrintDialogNumberOfCopies = 'N'#250'mero de &Copias:' + PrintDialogCollateCopies = 'In&tercalar Copias' + PrintDialogAllPages = 'Todas' + PrintDialogEvenPages = 'Pares' + PrintDialogOddPages = 'Impares' + PrintDialogPrintStyles = 'Est&ilos Impresi'#243'n' + PrintDialogOpenDlgTitle = 'Elije un Fichero' + PrintDialogOpenDlgAllFiles = 'Todos los Ficheros' + PrintDialogOpenDlgPrinterFiles = 'Ficheros de Impresora' + PrintDialogPageNumbersOutOfRange = 'N'#250'mero de p'#225'gina fuera de rango (%d - %d)' + PrintDialogInvalidPageRanges = 'Rango de p'#225'ginas no v'#225'lido' + PrintDialogRequiredPageNumbers = 'Introduzca n'#250'meros de p'#225'ginas' + PrintDialogNoPrinters = 'No printers are installed.' + PrintDialogInPrintingState = 'La impresora est'#225' ocupado.' + PrintDialogPSPaused = 'Pausado' + PrintDialogPSPendingDeletion = 'Pendiente Borrar' + PrintDialogPSBusy = 'Ocupado' + PrintDialogPSDoorOpen = 'Puerta Abierta' + PrintDialogPSError = 'Error' + PrintDialogPSInitializing = 'Inicializando' + PrintDialogPSIOActive = 'E/S Activo' + PrintDialogPSManualFeed = 'Alimentaci'#243'n Manual' + PrintDialogPSNoToner = 'Toner Terminado' + PrintDialogPSNotAvailable = 'No Disponible' + PrintDialogPSOFFLine = 'Fuera de L'#237'nea' + PrintDialogPSOutOfMemory = 'Memoria Agotada' + PrintDialogPSOutBinFull = 'Bandeja de Salida Llena' + PrintDialogPSPagePunt = 'Page Punt' + PrintDialogPSPaperJam = 'Papel Enganchado' + PrintDialogPSPaperOut = 'Sin Papel' + PrintDialogPSPaperProblem = 'Problema de Papel' + PrintDialogPSPrinting = 'Imprimiendo' + PrintDialogPSProcessing = 'Procesando' + PrintDialogPSTonerLow = 'Toner Bajo' + PrintDialogPSUserIntervention = 'Intervenci'#243'n del Usuario' + PrintDialogPSWaiting = 'Esperando' + PrintDialogPSWarningUp = 'Precalientamiento' + PrintDialogPSReady = 'Lista' + PrintDialogPSPrintingAndWaiting = 'Imprimiendo: %d documento(s) esperando' + LeftMargin = 'Margen Izquierdo' + TopMargin = 'Margin Superior' + RightMargin = 'Margin Derecho' + BottomMargin = 'Margin Inferior' + GutterMargin = 'Gutter' + HeaderMargin = 'Cabecera' + FooterMargin = 'Pie' + UnitsInches = '"' + UnitsCentimeters = 'cm' + UnitsMillimeters = 'mm' + UnitsPoints = 'pt' + UnitsPicas = 'pi' + UnitsDefaultName = 'Predeterminada' + UnitsInchesName = 'Pulgadas' + UnitsCentimetersName = 'Centimetros' + UnitsMillimetersName = 'Milimetros' + UnitsPointsName = 'Puntos' + UnitsPicasName = 'Picas' + PrintPreview = 'Vista Previa' + ReportDesignerCaption = 'Dise'#241'ador de Informes' + CompositionDesignerCaption = 'Dise'#241'ador de Composici'#243'n' + ComponentNotSupportedByLink = 'Component "%s" not supported by TdxComponentPrinter' + ComponentNotSupported = 'Component "%s" not supported by TdxComponentPrinter' + PrintDeviceNotReady = 'La impresora no est'#225' instalada o no est'#225' preparada' + UnableToGenerateReport = 'No se ha podido generar el informe' + PreviewNotRegistered = 'There is no registered preview form' + ComponentNotAssigned = '%s' + PrintDeviceIsBusy = 'Impresora ocupada' + PrintDeviceError = #161'La impresora ha encontrado un error!' + MissingComponent = 'Missing "Component" property' + DataProviderDontPresent = 'There are no Links with Assigned Component in Composition' + BuildingReport = 'Generando informe: Completado %d%%' + PrintingReport = + 'Imprimiendo Informe: Completado %d p'#225'gina(s). Pulse ESC to abort' + + 'ar...' + DefinePrintStylesMenuItem = 'Definir E&stilos de Impresi'#243'n...' + AbortPrinting = #191'Abortar impresi'#243'n?' + StandardStyle = 'Estilo Estandar' + FontStyleBold = 'Negrita' + FontStyleItalic = 'It'#225'lica' + FontStyleUnderline = 'Subrayado' + FontStyleStrikeOut = 'Tachado' + Pt = 'pt.' + NoPages = '[No p'#225'ginas]' + PageWidth = 'Anchura P'#225'g' + WholePage = 'Pag. Completa' + TwoPages = 'Dos P'#225'ginas' + FourPages = 'Cuatro P'#225'ginas' + WidenToSourceWidth = 'Ajustar a Anchura' + MenuBar = 'MenuBar' + StandardBar = 'Standard' + HeaderFooterBar = 'Header and Footer' + ShortcutMenusBar = 'Shortcut Menus' + AutoTextBar = 'AutoTexto' + MenuFile = '&Ficheros' + MenuFileDesign = '&Dise'#241'o...' + MenuFilePrint = '&Imprimir...' + MenuFilePageSetup = 'Con&fig. P'#225'gina...' + MenuPrintStyles = 'Estilos Impresi'#243'n' + MenuFileExit = '&Cerrar' + MenuEdit = '&Editar' + MenuEditCut = 'Cor&tar' + MenuEditCopy = '&Copiar' + MenuEditPaste = '&Pegar' + MenuEditDelete = '&Borrar' + MenuEditFind = '&Buscar...' + MenuEditFindNext = 'Buscar Si&guiente' + MenuEditReplace = '&Reemplazar...' + MenuLoad = '&Cargar...' + MenuPreview = 'V. Pre&via...' + MenuInsert = '&Insertar' + MenuInsertAutoText = '&AutoTexto' + MenuInsertEditAutoTextEntries = 'AutoTe&xto...' + MenuInsertAutoTextEntries = '&(Lista de Entradas AutoTexto)' + MenuInsertAutoTextEntriesSubItem = 'In&sertar AutoTexto' + MenuInsertPageNumber = 'N'#250'm &P'#225'g.' + MenuInsertTotalPages = '&N'#250'm. de P'#225'g.' + MenuInsertPageOfPages = 'N'#250'm de P'#225'&g. de P'#225'ginas' + MenuInsertDateTime = 'Fechay Hora' + MenuInsertDate = '&Fecha' + MenuInsertTime = '&Hora' + MenuInsertUserName = 'Nombre &Usuario' + MenuInsertMachineName = 'Nombre &Maquina' + MenuView = '&Vista' + MenuViewMargins = '&Margenes' + MenuViewFlatToolBarButtons = 'Botones &Planos' + MenuViewLargeToolBarButtons = 'Botones &Grandes' + MenuViewMarginsStatusBar = 'Barra de M&argenes' + MenuViewPagesStatusBar = 'Barra de E&stado' + MenuViewToolBars = '&Herramientas' + MenuViewPagesHeaders = '&Cabeceras de P'#225'gina' + MenuViewPagesFooters = '&Pies de P'#225'ginas' + MenuViewSwitchToLeftPart = 'Switch to Left Part' + MenuViewSwitchToRightPart = 'Switch to Right Part' + MenuViewSwitchToCenterPart = 'Switch to Center Part' + MenuViewHFSwitchHeaderFooter = 'Mo&strar Cabecera/Pie' + MenuViewHFClose = '&Cerrar' + MenuZoom = '&Aumentar' + MenuZoomPercent100 = 'Porcien &100' + MenuZoomPageWidth = '&Anchura P'#225'gina' + MenuZoomWholePage = 'P'#225'gina C&ompleta' + MenuZoomTwoPages = '&Dos P'#225'ginas' + MenuZoomFourPages = '&Cuatro P'#225'ginas' + MenuZoomMultiplyPages = 'P'#225'ginas &M'#250'ltiples' + MenuZoomWidenToSourceWidth = 'Aju&star a Anchura' + MenuZoomSetup = '&Config...' + MenuPages = '&P'#225'ginas' + MenuGotoPage = '&Saltar' + MenuGotoPageFirst = '&Primera P'#225'g.' + MenuGotoPagePrev = 'P'#225'g. &Anteror' + MenuGotoPageNext = 'Pr'#243'&xima P'#225'g.' + MenuGotoPageLast = #218'l&tima P'#225'g.' + MenuActivePage = 'P'#225'g. Acti&va:' + MenuFormat = 'F&ormato' + MenuFormatHeaderAndFooter = '&Cabeceras y Pies' + MenuFormatAutoTextEntries = 'Entradas &AutoTexto...' + MenuFormatDateTime = 'Fecha y &Hora...' + MenuFormatPageNumbering = '&Numeraci'#243'n P'#225'ginas...' + MenuFormatPageBackground = 'Fon&do...' + MenuFormatShrinkToPage = '&Reducir a P'#225'g.' + MenuShowEmptyPages = 'Mostrar P'#225'g. &Vacias' + MenuFormatHFBackground = 'Fondo de Cabecera/Pie...' + MenuFormatHFClear = 'Vaciar Texto' + MenuTools = '&Herramientas' + MenuToolsCustomize = '&Personalizar...' + MenuToolsOptions = '&Opciones...' + MenuHelp = 'A&yuda' + MenuHelpTopics = '&Temas de Ayuda...' + MenuHelpAbout = '&Acerca de...' + MenuShortcutPreview = 'V.Previa' + MenuShortcutAutoText = 'AutoTexto' + MenuBuiltInMenus = 'Men'#250's Incorporados' + MenuShortCutMenus = 'Men'#250's de Atajos' + MenuNewMenu = 'Men'#250' Nuevo' + HintFileDesign = 'Dise'#241'ar Informe' + HintFilePrint = 'Imprimir' + HintFilePrintDialog = 'Configuarar la Impresora' + HintFilePageSetup = 'Configurar la P'#225'gina' + HintFileExit = 'Cerrar Vista Previa' + HintEditFind = 'Buscar' + HintEditFindNext = 'Buscar Siguiente' + HintEditReplace = 'Reemplazar' + HintInsertEditAutoTextEntries = 'Editar Entradas AutoTexto' + HintInsertPageNumber = 'Insertar N'#250'mero P'#225'gina' + HintInsertTotalPages = 'Insertar N'#250'mero de P'#225'ginas' + HintInsertPageOfPages = 'Insertar P'#225'gina N'#250'mero de P'#225'ginas' + HintInsertDateTime = 'Insertar Fecha y Hora' + HintInsertDate = 'Insertar Fecha' + HintInsertTime = 'Insert Hora' + HintInsertUserName = 'Insertar Nombre Usuario' + HintInsertMachineName = 'Insertar Nombre Maquina' + HintViewMargins = 'Ver Margenes' + HintViewLargeButtons = 'Ver Botones Grandes' + HintViewMarginsStatusBar = 'Ver Barra de Esatdo de Margenes' + HintViewPagesStatusBar = 'Ver Barra de Estado de P'#225'gina' + HintViewPagesHeaders = 'Vee Cabecera de P'#225'gina' + HintViewPagesFooters = 'Ver Pie de P'#225'gina' + HintViewSwitchToLeftPart = 'Cambiar a Cabecera/Pie Izquierda' + HintViewSwitchToRightPart = 'Cambiar a Cabecera/Pie Derecha' + HintViewSwitchToCenterPart = 'Cambiar a Cabecera/Pie Centrada' + HintViewHFSwitchHeaderFooter = 'Cambiar a Cabecera y Pie' + HintViewHFClose = 'Cerrar' + HintViewZoom = 'Aumentar' + HintZoomPercent100 = 'Aumentar al 100%' + HintZoomPageWidth = 'Aumentar a Anchura de P'#225'gina' + HintZoomWholePage = 'P'#225'gina Completa' + HintZoomTwoPages = 'Dos P'#225'ginas' + HintZoomFourPages = 'Cuatro P'#225'ginas' + HintZoomMultiplyPages = 'P'#225'ginas M'#250'ltiples' + HintZoomWidenToSourceWidth = 'Ajustar a la Anchura' + HintZoomSetup = 'Introducir Factor de Aumento' + HintFormatDateTime = 'Formato de Fecha y Hora' + HintFormatPageNumbering = 'Formato de N'#250'mero de P'#225'gina' + HintFormatPageBackground = 'Fondo' + HintFormatShrinkToPage = 'Reducir a P'#225'gina' + HintFormatHFBackground = 'Fondo de Cabecera/Pie' + HintFormatHFClear = 'Vaciar Texto Cabecera/Pie' + HintGotoPageFirst = 'Primera P'#225'gina' + HintGotoPagePrev = 'P'#225'gina Anterior' + HintGotoPageNext = 'Pr'#243'xima P'#225'gina' + HintGotoPageLast = #218'ltima P'#225'gina' + HintActivePage = 'P'#225'gina Activa' + HintToolsCustomize = 'Personalizar Herramientas' + HintToolsOptions = 'Opciones' + HintHelpTopics = 'Temas de Ayuda' + HintHelpAbout = 'Acerca de' + PopupMenuLargeButtons = 'Botones &Grandes' + PopupMenuFlatButtons = 'Botones &Planos' + PaperSize = 'Tama'#241'o Papel' + Status = 'Estado' + StatusReady = 'Lista' + StatusPrinting = 'Imprimiendo. %d p'#225'gina(s) terminada(s)' + StatusGenerateReport = 'Generando Informe. %d%% completado.' + HintDoubleClickForChangePaperSize = 'Doble Clic para Cambiar el Tama'#241'o de P'#225'gina' + HintDoubleClickForChangeMargins = 'Doble Clic para Cambiar Margenes' + DTFormatsCaption = 'Fecha y Hora' + DTFormatsAvailableDateFormats = 'Formatos de &Fecha Disponibes:' + DTFormatsAvailableTimeFormats = 'Formatos de &Hora Disponibles:' + DTFormatsAutoUpdate = 'Act. &Autom'#225'tica' + DTFormatsChangeDefaultFormat = + 'Confirme que desea cambiar el formato de fecha y hora al "%s" -' + + ' "%s" ?' + PNFormatsCaption = 'Formato de N'#250'mero de P'#225'gina' + PageNumbering = 'Numeraci'#243'n de P'#225'ginas' + PNFormatsNumberFormat = '&Format N'#250'mero:' + PNFormatsContinueFromPrevious = '&Continuar desde '#218'ltima Secci'#243'n' + PNFormatsStartAt = 'Empezar &En:' + PNFormatsChangeDefaultFormat = + 'Confirme que desea cambiar el formato de numeraci'#243'n de p'#225'ginas a' + + 'l "%s" ?' + ZoomDlgCaption = 'Aumentar' + ZoomDlgZoomTo = 'Aumentar a' + ZoomDlgPageWidth = '&Ancho P'#225'g.' + ZoomDlgWholePage = 'P'#225'g.C&ompleta' + ZoomDlgTwoPages = '&Dos P'#225'ginas' + ZoomDlgFourPages = '&Cuatro P'#225'g.' + ZoomDlgManyPages = '&Varias P'#225'g.:' + ZoomDlgPercent = 'P&orcien:' + ZoomDlgPreview = 'Vista' + ZoomDlgFontPreview = '10pt Times New Romam' + ZoomDlgFontPreviewString = 'AaBbCcDdEeXxYyZz' + Pages = 'P'#225'ginas' + Cancel = 'Cancelar' + PreferenceDlgCaption = 'Opciones' + PreferenceDlgTab1 = '&General' + PreferenceDlgShow = '&Mostrar' + PreferenceDlgMargins = '&Margenes' + PreferenceDlgMarginsHints = 'A&yudas Margenes' + PreferenceDlgMargingWhileDragging = 'Ayudas Margins con A&rrastre' + PreferenceDlgLargeBtns = 'Botones &Grandes para Barras' + PreferenceDlgFlatBtns = 'Botones &Planos para Barras' + PreferenceDlgMarginsColor = '&Color Margenes:' + PreferenceDlgMeasurementUnits = '&Unidades de Medida:' + PreferenceDlgSaveForRunTimeToo = 'Gua&rdar en Ejecucci'#243'n tambien' + PreferenceDlgZoomScroll = 'Despla&zamiento con IntelliMouse' + PreferenceDlgZoomStep = 'Au&mento:' + CloneStyleCaptionPrefix = 'Copia (%d) de' + InvalideStyleCaption = 'Nombre de estilo "%s" existente. Por favor, introduzca otro.' + PageSetupCaption = 'Configuraci'#243'n de la P'#225'gina' + StyleName = '&Nombre Estilo:' + Page = '&P'#225'gina' + Margins = '&Margenes' + HeaderFooter = '&Cabecera\Pie' + Scaling = '&Escala' + Paper = 'Papel' + PaperType = 'T&ipo' + PaperDimension = 'Dimensi'#243'nes' + PaperWidth = '&Anchura:' + PaperHeight = 'A<ura:' + PaperSource = 'Bande&ja' + Orientation = 'Orientaci'#243'n' + Portrait = 'N&ormal' + Landscape = '&Apaisado' + PrintOrder = 'Orden de Impresi'#243'n' + DownThenOver = '&Abajo, derecha' + OverThenDown = '&Derecha, abajo' + Shading = 'Sombreado' + PrintUsingGrayShading = 'Imprimir usando sombreado &gris' + CenterOnPage = 'Centrar' + Horizontally = 'Hori&zontal' + Vertically = '&Vertical' + Header = 'Cabecera' + BtnHeaderFont = '&Fuente...' + BtnHeaderBackground = '&Fondo' + Footer = 'Pie' + BtnFooterFont = 'Fue&nte...' + BtnFooterBackground = 'F&ondo' + CaptionTop = '&Sup.:' + CaptionLeft = '&Izqu.:' + CaptionRight = '&Derecha:' + CaptionBottom = '&Inferior:' + Header2 = '&Cabec.:' + Footer2 = '&Pie:' + Alignment = 'Alineamiento' + VertAlignment = 'Alineamiento Vertical' + ReverseOnEvenPages = 'Al &rev'#233's en p'#225'ginas pares' + AdjustTo = '&Ajustar a:' + FitTo = 'P'#225'&ginas:' + PercentOfNormalSize = '% tama'#241'o normal' + PagesWideBy = 'p'#225'g(s) de &ancho' + Tall = 'de a<o' + XOfY = 'De' + LastPrinted = #218'ltima Impresi'#243'n' + FileName = 'Fichero' + FileNameAndPath = 'Fichero y camino' + PrintedBy = 'Impreso por' + PrintedOn = 'Impreso el' + CreatedBy = 'Creado por' + CreatedOn = 'Creado el' + Confidential = 'Confidencial' + HFFunctionNameUnknown = 'Desconocido' + HFFunctionNamePageNumber = 'N'#250'm. P'#225'gina' + HFFunctionNameTotalPages = 'P'#225'g. Totales' + HFFunctionNamePageOfPages = 'P'#225'g. # de P'#225'gs. #' + HFFunctionNameDateTime = 'Fecha y Hora' + HFFunctionNameDate = 'Fecha' + HFFunctionNameTime = 'Hora' + HFFunctionNameUserName = 'Nombre Usuario' + HFFunctionNameMachineName = 'Nombre Maquina' + HFFunctionHintPageNumber = 'Page Number' + HFFunctionHintTotalPages = 'Total Pages' + HFFunctionHintPageOfPages = 'Page # of Pages #' + HFFunctionHintDateTime = 'Date and Time Printed' + HFFunctionHintDate = 'Date Printed' + HFFunctionHintTime = 'Time Printed' + HFFunctionHintUserName = 'User Name' + HFFunctionHintMachineName = 'Machine Name' + HFFunctionTemplatePageNumber = 'Page #' + HFFunctionTemplateTotalPages = 'Total Pages' + HFFunctionTemplatePageOfPages = 'Page # of Pages #' + HFFunctionTemplateDateTime = 'Date & Time Printed' + HFFunctionTemplateDate = 'Date Printed' + HFFunctionTemplateTime = 'Time Printed' + HFFunctionTemplateUserName = 'User Name' + HFFunctionTemplateMachineName = 'Machine Name' + January = 'Enero' + February = 'Febrero' + March = 'Marzo' + April = 'Abril' + May = 'Mayo' + June = 'Junio' + July = 'Julio' + August = 'Agosto' + September = 'Septiembre' + October = 'Octubre' + November = 'Noviembre' + December = 'Diciembre' + East = 'Este' + West = 'Oeste' + South = 'Sur' + North = 'Norte' + Total = 'Total' + Plan = 'Plan' + SwimmingPool = 'Swimming-pool' + Administration = 'Administration' + Park = 'Park' + CarParking = 'Car-Parking' + CorporateHeadquarters = 'Corporate' + SalesAndMarketing = 'Sales and' + Engineering = 'Engineering' + FieldOfficeCanada = 'Field Office:' + OrderNoCaption = 'OrderNo' + NameCaption = 'Name' + CountCaption = 'Count' + CompanyCaption = 'Company' + AddressCaption = 'Address' + PriceCaption = 'Price' + CashCaption = 'Cash' + Name1 = 'Jennie Valentine' + Name2 = 'Sam Hill' + Company1 = 'Jennie Inc.' + Company2 = 'Daimler-Chrysler AG' + Address1 = '123 Home Lane' + Address2 = '9333 Holmes Dr.' + CountIs = 'Count is: %d' + Regular = 'Regular' + Irregular = 'Irregular' + TLBand = 'Item Data' + TLColumnName = 'Name' + TLColumnAxisymmetric = 'Axisymmetric' + TLColumnItemShape = 'Shape' + ItemShapeAsText = '(Graphic)' + Item1Name = 'Cone' + Item2Name = 'Cylinder' + Item3Name = 'Pyramid' + Item4Name = 'Box' + Item5Name = 'Free Surface' + Item2Description = 'Axisymmetric geometry figure' + Item3Description = 'Axisymmetric geometry figure' + Item4Description = 'Acute-angled geometry figure' + Item7Description = 'Simple extrusion surface' + PatternIsNotRegistered = 'Pattern "%s" is not registered' + SolidEdgePattern = 'Solid' + ThinSolidEdgePattern = 'Medium Solid' + MediumSolidEdgePattern = 'Medium Solid' + ThickSolidEdgePattern = 'Thick Solid' + DottedEdgePattern = 'Dotted' + DashedEdgePattern = 'Dashed' + DashDotDotEdgePattern = 'Dash Dot Dot' + DashDotEdgePattern = 'Dash Dot' + SlantedDashDotEdgePattern = 'Slanted Dash Dot' + MediumDashDotDotEdgePattern = 'Medium Dash Dot Dot' + HairEdgePattern = 'Hair' + MediumDashDotEdgePattern = 'Medium Dash Dot' + MediumDashedEdgePattern = 'Medium Dashed' + DoubleLineEdgePattern = 'Double Line' + SolidFillPattern = 'Solid' + Gray75FillPattern = '75% Gray' + Gray50FillPattern = '50% Gray' + Gray25FillPattern = '25% Gray' + Gray125FillPattern = '12.5% Gray' + Gray625FillPattern = '6.25% Gray' + HorizontalStripeFillPattern = 'Horizontal Stripe' + VerticalStripeFillPattern = 'Vertical Stripe' + ReverseDiagonalStripeFillPattern = 'Reverse Diagonal Stripe' + DiagonalStripeFillPattern = 'Diagonal Stripe' + DiagonalCrossHatchFillPattern = 'Diagonal Cross Hatch' + ThickCrossHatchFillPattern = 'Thick Cross Hatch' + ThinHorizontalStripeFillPattern = 'Thin Horizontal Stripe' + ThinVerticalStripeFillPattern = 'Thin Vertical Stripe' + ThinReverseDiagonalStripeFillPattern = 'Thin Reverse Diagonal Stripe' + ThinDiagonalStripeFillPattern = 'Thin Diagonal Stripe' + ThinHorizontalCrossHatchFillPattern = 'Thin Horizontal Cross Hatch' + ThinDiagonalCrossHatchFillPattern = 'Thin Diagonal Cross Hatch' + ShowRowAndColumnHeadings = '&Row and column headings' + ShowGridLines = 'GridLines' + SuppressSourceFormats = '&Suppress Source Formats' + RepeatHeaderRowAtTop = 'Repeat header row at top' + DataToPrintDoesnotExist = + 'Can not activate ReportLink because PrintingSystem did not find ' + + 'anything to print.' + JanuaryShort = 'Ene' + FebruaryShort = 'Feb' + MarchShort = 'Mar' + AprilShort = 'Abril' + MayShort = 'Mayo' + JuneShort = 'Jun' + JulyShort = 'Jul' + AugustShort = 'Ago' + SeptemberShort = 'Sept' + OctoberShort = 'Oct' + NovemberShort = 'Nov' + DecemberShort = 'Dic' + TechnicalDepartment = 'Technical Department' + SoftwareDepartment = 'Software Department' + SystemProgrammers = 'System Programmers' + EndUserProgrammers = 'EndUser Programmers' + BetaTesters = 'Beta Testers' + HumanResourceDepartment = 'Human Resource Department' + TreeLines = '&L'#237'neas'#193'rbol' + TreeLinesColor = 'Colore L'#237'neas '#193'rbol:' + ExpandButtons = 'Botones E&xpansi'#243'n' + CheckMarks = 'Cajas Verificaci'#243'n' + TreeEffects = 'Efectos '#193'rbol' + Appearance = 'Apariencia' + CarLevelCaption = 'Coches' + ManufacturerBandCaption = 'Manufacturer Data' + ModelBandCaption = 'Car Data' + ManufacturerNameColumnCaption = 'Name' + ManufacturerLogoColumnCaption = 'Logo' + ManufacturerCountryColumnCaption = 'Country' + CarModelColumnCaption = 'Model' + CarIsSUVColumnCaption = 'SUV' + CarPhotoColumnCaption = 'Photo' + CarManufacturerName1 = 'BMW' + CarManufacturerName2 = 'Ford' + CarManufacturerName3 = 'Audi' + CarManufacturerName4 = 'Land Rover' + CarManufacturerCountry1 = 'Germany' + CarManufacturerCountry2 = 'United States' + CarManufacturerCountry3 = 'Germany' + CarManufacturerCountry4 = 'United Kingdom' + CarModel1 = 'X5 4WD' + CarModel2 = 'Excursion' + CarModel3 = 'S8 Quattro' + CarModel4 = 'G4 Challenge' + True = 'True' + False = 'False' + Auto = 'Auto' + Custom = 'Personal.' + Env = 'Env' + LookAndFeelFlat = 'Plano' + LookAndFeelStandard = 'Estandar' + LookAndFeelUltraFlat = 'UltraPlano' + ViewTab = 'Vista' + BehaviorsTab = 'Comportamiento' + PreviewTab = 'Vista Previa' + CardsTab = 'Fichas' + Formatting = 'Formato' + LookAndFeel = 'Aspecto' + LevelCaption = '&T'#237'tulo' + FilterBar = 'Barra de &Filtro' + Refinements = 'Perfeccionamiento' + ProcessSelection = 'Procesar &Selecci'#243'n' + ProcessExactSelection = 'Procesar Selecci'#243'n E&xacta' + Expanding = 'Despliege' + Groups = '&Grupos' + Details = '&Detalles' + StartFromActiveDetails = 'Empieza desde Detalles Activas' + OnlyActiveDetails = 'S'#243'lo Detalles Activos' + Visible = '&Visible' + PreviewAutoHeight = 'Altura A&utom'#225'tica' + PreviewMaxLineCount = 'L'#237'neas &M'#225'ximas:' + Sizes = 'Tama'#241'os' + KeepSameWidth = 'Manten.Misma Anchura' + KeepSameHeight = 'Manten.Misma Altura' + Framing = 'Marco' + Spacing = 'Espacios' + Shadow = 'Sombra' + Depth = '&Profundidad:' + Position = '&Posici'#243'n' + Positioning = 'Posicionando' + Horizontal = 'H&orizontal:' + Vertical = 'V&ertical:' + SummaryFormat = 'Recuento = 0' + CannotUseOnEveryPageMode = 'Cannot Use OnEveryPage Mode' + IncorrectBandHeadersState = 'Cannot Use BandHeaders OnEveryPage Mode' + IncorrectHeadersState = 'Cannot Use Headers OnEveryPage Mode' + IncorrectFootersState = 'Cannot Use Footers OnEveryPage Mode' + TPicture = 'TPicture' + Copy = '&Copiar' + Save = '&Salvar...' + BaseStyle = 'Estilo Base' + Rectangle = 'Rectangle' + Square = 'Square' + Ellipse = 'Ellipse' + Circle = 'Circle' + RoundRect = 'RoundRect' + RoundSquare = 'RoundSquare' + HorizontalFillPattern = 'Horizontal' + VerticalFillPattern = 'Vertical' + FDiagonalFillPattern = 'FDiagonal' + BDiagonalFillPattern = 'BDiagonal' + CrossFillPattern = 'Cross' + DiagCrossFillPattern = 'DiagCros' + CyclicIDReferences = 'Cyclic ID references %s and %s' + LoadReportDataToFileTitle = 'Cargar Informe' + SaveReportDataToFileTitle = 'Salvar Informe Como' + InvalidExternalStorage = 'Almacenamiento Externo No V'#225'lido' + LinkIsNotIncludedInUsesClause = 'ReportFile contains ReportLink "%0:s"' + InvalidStorageVersion = 'Versi'#243'n de Almacenamiento no V'#225'lido: %d' + PSReportFiles = 'Ficheros de Informes' + ReportFileLoadError = 'No se pudo cargar el informe "%s".' + None = '(Ninguno)' + ReportDocumentIsCorrupted = '(El fichero no es un informe o esta corrupto)' + CloseExplorerHint = 'Cerrar Explorador' + ExplorerCaption = 'Explorador' + ExplorerRootFolderCaption = 'Ra'#237'z' + NewExplorerFolderItem = 'Nueva Carpeta' + CopyOfItem = 'Copia de' + ReportExplorer = 'Explorer de Informes' + DataLoadErrorText = 'No se pudo cargar los datos del informe' + DBBasedExplorerItemDataLoadError = 'No se pudo cargar los datos.' + FileBasedExplorerItemDataLoadError = 'No se pudo cargar los datos.' + DeleteNonEmptyFolderMessageText = 'La carpeta "%s" no est'#225' vacia. A'#250'n as'#237' '#191'desea eliminarlo?' + DeleteFolderMessageText = 'Borrar Carpeta "%s" ?' + DeleteItemMessageText = 'Borrar elemento "%s" ?' + CannotRenameFolderText = + 'Cannot rename folder "%s". A folder with name "%s" already exist' + + 's. Specify a different name.' + CannotRenameItemText = + 'Cannot rename item "%s". An item with name "%s" already exists. ' + + 'Specify a different name.' + OverwriteFolderMessageText = 'This folder "%s" already contains folder named "%s".' + OverwriteItemMessageText = 'This Folder "%s" already contains item named "%s".' + SelectNewRoot = 'Select new Root Directory where the Reports will be stored' + InvalidFolderName = 'Nombre de Carpeta no V'#225'lida "%s"' + InvalidReportName = 'Nombre de Informe no V'#225'lido "%s"' + ExplorerBar = 'Explorador' + MenuFileSave = '&Salvar' + MenuFileSaveAs = 'S&alvar Como...' + MenuFileLoad = '&Cargar' + MenuFileClose = '&Descargar' + HintFileSave = 'Salvar Informe' + HintFileSaveAs = 'Salvar Informe Como' + HintFileLoad = 'Cargar Informe' + HintFileClose = 'Descargar Informe' + MenuExplorer = 'E&xplorador' + MenuExplorerCreateFolder = 'Crear &Carpeta' + MenuExplorerDelete = '&Borrar...' + MenuExplorerRename = 'Reno&mbrar' + MenuExplorerProperties = '&Propiedades...' + MenuExplorerRefresh = 'Refrescar' + MenuExplorerChangeRootPath = 'Cambiar Ra'#237'z...' + MenuExplorerSetAsRoot = 'Establecer Como Ra'#237'z' + MenuExplorerGoToUpOneLevel = 'Subir Un Nivel' + HintExplorerCreateFolder = 'Crear Nueva Carpeta' + HintExplorerDelete = 'Borrar' + HintExplorerRename = 'Renombrar' + HintExplorerProperties = 'Propiedades' + HintExplorerRefresh = 'Refrescar' + HintExplorerChangeRootPath = 'Cambiar Ra'#237'z' + HintExplorerSetAsRoot = 'Establecder Carpeta Actual Como Ra'#237'z' + HintExplorerGoToUpOneLevel = 'Subir Un Nivel' + MenuViewExplorer = 'E&xplorador' + HintViewExplorer = 'Mostar Explorador' + Summary = 'Resumen' + Creator = 'Creado&r:' + CreationDate = 'Crea&do:' + MenuViewThumbnails = 'Miniat&uras' + HintViewThumbnails = 'Mostar Miniaturas' + MenuFormatTitle = 'T&'#237'tulo...' + HintFormatTitle = 'Formatear T'#237'tulo del Informe' + Half = 'Medio' + PredefinedFunctions = 'Funciones Predefinidos' + ZoomParameters = '&Par'#225'metros de Aumento' + WrapData = 'Doblar Datos' + MenuShortcutExplorer = 'Explorador' + ExplorerToolBar = 'Explorador' + MenuThumbnailsSmall = 'Miniaturas &Peque'#241'as' + MenuThumbnailsLarge = 'Miniaturas &Grandes' + MenuShortcutThumbnails = 'Miniaturas' + Buttons = 'Botones' + BtnHeadersFont = 'Fuente &Cabeceras...' + HeadersTransparent = 'Cabeceras Transparentes' + HintListViewDesignerMessage = 'Most Options Are Being Taken Into Account Only In Detailed View' + ColumnHeaders = 'Cabeceras de &Columnas' + ReportGroupNullLookAndFeel = 'Null' + ReportGroupStandardLookAndFeel = 'Standard' + ReportGroupOfficeLookAndFeel = 'Office' + ReportGroupWebLookAndFeel = 'Web' + LayoutGroupDefaultCaption = 'Layout Group' + LayoutItemDefaultCaption = 'Layout Item' + CarManufacturerName5 = 'Volkswagen' + CarManufacturerCountry5 = 'Germany' + CarModel5 = 'Golf GTI' + LuxurySedans = 'Luxury Sedans' + CarManufacturer = 'Manufacturer' + CarModel = 'Model' + CarEngine = 'Engine' + CarTransmission = 'Transmission' + CarTires = 'Tires' + Volvo760V12Manufacturer = 'BMW' + Volvo760V12Model = '760Li V12' + Volvo760V12Engine = + '6.0L DOHC V12 438 HP 48V DI Valvetronic 12-cylinder engine with ' + + '6.0-liter displacement, dual overhead cam valvetrain' + Volvo760V12Transmission = 'Elec 6-Speed Automatic w/Steptronic' + Volvo760V12Tires = + 'P245/45R19 Fr - P275/40R19 Rr Performance. Low Profile tires wit' + + 'h 245mm width, 19.0" rim' + BandHeaderStyle = 'CabeceraGrupo' + CaptionStyle = 'T'#237'tulo' + CardCaptionRowStyle = 'T'#237'tulo Fila Fichas' + CardRowCaptionStyle = 'T'#237'tulo Fila Fichas' + CategoryStyle = 'Categor'#237'a' + ContentStyle = 'Contenido' + ContentEvenStyle = 'Contenido Filas Pares' + ContentOddStyle = 'Contenido Filas Impares' + FilterBarStyle = 'Barra de Filto' + FooterStyle = 'Pie' + FooterRowStyle = 'Pie de Fila' + GroupStyle = 'Grupo' + HeaderStyle = 'Cabecera' + IndentStyle = 'Indentaci'#243'n' + PreviewStyle = 'Vista Previa' + SelectionStyle = 'Selecci'#243'n' + Styles = 'Estilos' + StyleSheets = 'Hojas de Estilos' + BtnTexture = '&Textura...' + BtnTextureClear = 'Elimin&ar' + BtnColor = 'Co&lor...' + BtnSaveAs = 'Salvar &Como...' + BtnRename = '&Renombrar...' + LoadBitmapDlgTitle = 'Cargar Imagen' + DeleteStyleSheet = 'Borrar Hoja de Estilos con Nombre "%s"?' + UnnamedStyleSheet = 'SinNombre' + CreateNewStyleQueryNamePrompt = 'Entre un Nombre de Hoja de Estilo:' + StyleSheetNameAlreadyExists = 'Hoja de Estilo "%s" Ya Existe' + CannotLoadImage = 'No se pudo cargar el imagen "%s"' + UseNativeStyles = '&Usar Estilo Nativo' + SuppressBackgroundBitmaps = '&Suprimir Texturas de Fondo' + ConsumeSelectionStyle = 'Consumir Estilos de Selecci'#243'n' + Size = 'Tama'#241'o' + Levels = 'Niveles' + Unwrap = '&Desdoblar' + UnwrapTopLevel = 'Desdoblar Nivel Superior' + RiseActiveToTop = 'Subir Nivel Activo al Princ'#237'pio' + CannotUseOnEveryPageModeInAggregatedState = 'No se puede usar modo "EnCadaP'#225'gina"' + Pagination = 'Paginaci'#243'n' + ByBands = 'Por Grupos' + ByColumns = 'Por Columnas' + ByRows = 'Por Filas' + ByTopLevelGroups = 'Por Grupos de Primer Nivel' + OneGroupPerPage = 'Un Grupo por P'#225'gina' + Borders = 'Margenes' + ExplicitlyExpandNodes = 'Expandir Expl'#237'citamente los Nodos' + Nodes = '&Nodos' + Separators = 'Separadores' + Thickness = 'Grueso' + TLIncorrectHeadersState = 'No se puede usar el modo EnCadaP'#225'gina' + Rows = '&Filas' + BestFit = 'Ajuste &'#211'ptimo' + KeepSameRecordWidths = '&Mantaner Anchuras Iguales' + WrapRecords = '&Doblar Registros' + ByWrapping = 'Doblando' + OneWrappingPerPage = 'Doblando Uno por P'#225'gina' + PaginateByControlDetails = 'Detalles de Controles' + PaginateByControls = 'Controles' + PaginateByGroups = 'Grupos' + PaginateByItems = 'Elementos' + ControlsPlace = 'Enplazamiento de Controles' + ExpandHeight = 'Expandir Altura' + ExpandWidth = 'Expandir Anchura' + ShrinkHeight = 'Contraer Altura' + ShrinkWidth = 'Contraer Anchura' + CheckAll = 'Check &All' + CheckAllChildren = 'Check All &Children' + ControlsTab = 'Controls' + ExpandAll = 'E&xpand All' + HiddenControlsTab = 'Hidden Controls' + ReportLinksTab = 'Aggregated Designers' + Transparents = 'Transparents' + UncheckAllChildren = 'Uncheck &All Children' + Root = '&Ra'#237'z' + RootBorders = 'Root &Borders' + Controls = '&Controls' + Containers = 'C&ontainers' + HideCustomContainers = '&Hide Custom Containers' + Bytes = 'Bytes' + KiloBytes = 'KB' + MegaBytes = 'MB' + GigaBytes = 'GB' + Left = 184 + Top = 16 + end + object dxPrintStyleManager1: TdxPrintStyleManager + CurrentStyle = dxPrintStyleManager1Style1 + Version = 0 + Left = 280 + Top = 16 + object dxPrintStyleManager1Style1: TdxPSPrintStyle + PrinterPage.DMPaper = 9 + PrinterPage.Footer = 6350 + PrinterPage.Header = 6350 + PrinterPage.Margins.Bottom = 20000 + PrinterPage.Margins.Left = 12700 + PrinterPage.Margins.Right = 12700 + PrinterPage.Margins.Top = 20000 + PrinterPage.PageFooter.CenterTitle.Strings = ( + '[Date & Time Printed]') + PrinterPage.PageFooter.Font.Charset = DEFAULT_CHARSET + PrinterPage.PageFooter.Font.Color = clBlack + PrinterPage.PageFooter.Font.Height = -12 + PrinterPage.PageFooter.Font.Name = 'Tahoma' + PrinterPage.PageFooter.Font.Style = [] + PrinterPage.PageFooter.RightTitle.Strings = ( + '[Page #] de [Total Pages]') + PrinterPage.PageHeader.Font.Charset = DEFAULT_CHARSET + PrinterPage.PageHeader.Font.Color = clBlack + PrinterPage.PageHeader.Font.Height = -15 + PrinterPage.PageHeader.Font.Name = 'Tahoma' + PrinterPage.PageHeader.Font.Style = [] + PrinterPage.PageHeader.LeftTitle.Strings = ( + '') + PrinterPage.PageSize.X = 210000 + PrinterPage.PageSize.Y = 297000 + PrinterPage._dxMeasurementUnits_ = 0 + PrinterPage._dxLastMU_ = 2 + BuiltInStyle = True + end + end +end diff --git a/Source/Base/uDMBase.pas b/Source/Base/uDMBase.pas new file mode 100644 index 0000000..50dc4af --- /dev/null +++ b/Source/Base/uDMBase.pas @@ -0,0 +1,151 @@ +unit uDMBase; + +interface + +uses + Controls, SyncObjs, PngImageList, JvComponent, JvNavigationPane, TBXSwitcher, + TBXOffice2003Theme, Classes, ImgList, SysUtils, + DataAbstract4_Intf, uDADataTable, JvAppStorage, JvAppRegistryStorage, cxintl, + JvComponentBase, cxIntlPrintSys3, JvLogFile, dxPSGlbl, dxPSUtl, dxPrnPg, + dxBkgnd, dxWrap, dxPrnDev, dxPgsDlg, dxPSCore; + +type + TdmBase = class(TDataModule) + SmallImages: TPngImageList; + StyleManager: TJvNavPaneStyleManager; + TBXSwitcher: TTBXSwitcher; + JvLogFile: TJvLogFile; + cxIntl: TcxIntl; + cxIntlPrintSys3: TcxIntlPrintSys3; + dxPrintStyleManager1: TdxPrintStyleManager; + dxPrintStyleManager1Style1: TdxPSPrintStyle; + procedure DAClientDataModuleCreate(Sender: TObject); + procedure DataModuleDestroy(Sender: TObject); + private + FOnThemeChange: TNotifyEvent; + FEscribirLog : TCriticalSection; + {procedure IniciarLog; + procedure DetenerLog;} + procedure InitStyleManager; + procedure OnTBXThemeChange(Sender: TObject); + procedure LeerConfiguracion; + public + {procedure EscribirLog(const AMensaje : String);} + procedure SalvarConfiguracion; + property OnThemeChange: TNotifyEvent read FOnThemeChange write + FOnThemeChange; + end; + +var + dmBase: TdmBase = nil; + +implementation + +{$R *.DFM} + +uses + uDataModuleConexion, Dialogs, TBX, TBXThemes, Forms, Windows, + JclFileUtils, cxControls, uDataModuleConfiguracion, + SHFolder, uSistemaFunc, uAppInfoUtils; + +{ +*********************************** TdmBase ************************************ +} +procedure TdmBase.DAClientDataModuleCreate(Sender: TObject); +begin + //IniciarLog; <- NO SE USA + + TBXSwitcher.OnThemeChange := OnTBXThemeChange; + TBXSetTheme('Office2003'); + + LeerConfiguracion; +end; + +{procedure TdmBase.IniciarLog; +var + AIniFile : String; +begin + inherited; + FEscribirLog := TCriticalSection.Create; + + AIniFile := GetSpecialFolderPath(CSIDL_LOCAL_APPDATA); //[All Users]\Application Data + AIniFile := AIniFile + PathDelim + GetAppName + PathDelim; + + if not DirectoryExists(AIniFile) then + CreateDir(AIniFile); + + JvLogFile.Active := False; + JvLogFile.FileName := AIniFile + 'ClientLog.txt'; + JvLogFile.AutoSave := True; + JvLogFile.Active := True; + JvLogFile.Clear; +end;} + + +procedure TdmBase.InitStyleManager; +begin + if not USE_THEMES then + begin + TBXSwitcher.EnableXPStyles := False; + StyleManager.Theme := nptStandard; + end + else begin + TBXSwitcher.EnableXPStyles := True; + with StyleManager do + begin + if CurrentTheme is TTBXOffice2003Theme then + begin + case GetOffice2003Scheme of + osBlue : Theme := nptXPBlue; + osMetallic : Theme := nptXPSilver; + osGreen : Theme := nptXPOlive; + else + Theme := nptStandard; + end; + end; + end; + end; +end; + + +procedure TdmBase.LeerConfiguracion; +begin + dmConfiguracion.LeerConfiguracion; +end; + +procedure TdmBase.OnTBXThemeChange(Sender: TObject); +begin + InitStyleManager; + + if Assigned(FOnThemeChange) then + FOnThemeChange(Sender); +end; + +procedure TdmBase.SalvarConfiguracion; +begin + dmConfiguracion.SalvarConfiguracion; +end; + +procedure TdmBase.DataModuleDestroy(Sender: TObject); +begin + // DetenerLog; <- NO SE USA +end; + +{procedure TdmBase.DetenerLog; +begin + FreeAndNIL(FEscribirLog); +end; + +procedure TdmBase.EscribirLog(const AMensaje: String); +begin +// dxPrintStyleManager1Style1.PrinterPage.PageFooter.LeftTitle.Add(FEmpresaInformesBase); + + FEscribirLog.Acquire; + try + JvLogFile.Add(AMensaje); + finally + FEscribirLog.Release; + end; +end;} + +end. diff --git a/Source/Base/uDataModuleBase.dcu b/Source/Base/uDataModuleBase.dcu new file mode 100644 index 0000000..04ede75 Binary files /dev/null and b/Source/Base/uDataModuleBase.dcu differ diff --git a/Source/Base/uDataModuleBase.dfm b/Source/Base/uDataModuleBase.dfm new file mode 100644 index 0000000..2c4cf30 --- /dev/null +++ b/Source/Base/uDataModuleBase.dfm @@ -0,0 +1,5 @@ +object DataModuleBase: TDataModuleBase + OldCreateOrder = True + Height = 240 + Width = 275 +end diff --git a/Source/Base/uDataModuleBase.pas b/Source/Base/uDataModuleBase.pas new file mode 100644 index 0000000..5a1eddc --- /dev/null +++ b/Source/Base/uDataModuleBase.pas @@ -0,0 +1,55 @@ +unit uDataModuleBase; + +interface + +uses + Classes; + +type + IDataModuleBase = interface + ['{0377C83C-5C68-47CD-97A6-A764746CD2B1}'] + end; + + TDataModuleBase = class(TDataModule, IDataModuleBase) + private + FRefCount: Integer; + protected + function QueryInterface(const IID: TGUID; out Obj): HResult; override; stdcall; + function _AddRef: Integer; stdcall; + function _Release: Integer; stdcall; + + public + property RefCount: integer read fRefCount write fRefCount; + + end; + +implementation + + +{$R *.DFM} + +// Set an implicit refcount so that refcounting +// during construction won't destroy the object. + +function TDataModuleBase.QueryInterface( const IID: TGUID; out Obj): HResult; +begin + if GetInterface(IID, Obj) + then Result := 0 + else Result := E_NOINTERFACE; +end; + +function TDataModuleBase._AddRef: Integer; +begin + Inc(fRefCount); + Result := fRefCount; +end; + +function TDataModuleBase._Release: Integer; +begin + Dec(fRefCount); + Result := fRefCount; + if fRefCount = 0 then Destroy; +end; + + +end. diff --git a/Source/Base/uDataModuleConexion.dcu b/Source/Base/uDataModuleConexion.dcu new file mode 100644 index 0000000..51a8599 Binary files /dev/null and b/Source/Base/uDataModuleConexion.dcu differ diff --git a/Source/Base/uDataModuleConfiguracion.dcu b/Source/Base/uDataModuleConfiguracion.dcu new file mode 100644 index 0000000..5969398 Binary files /dev/null and b/Source/Base/uDataModuleConfiguracion.dcu differ diff --git a/Source/Base/uDataTableUtils.dcu b/Source/Base/uDataTableUtils.dcu new file mode 100644 index 0000000..92e0836 Binary files /dev/null and b/Source/Base/uDataTableUtils.dcu differ diff --git a/Source/Base/uDateUtils.dcu b/Source/Base/uDateUtils.dcu new file mode 100644 index 0000000..f9d208c Binary files /dev/null and b/Source/Base/uDateUtils.dcu differ diff --git a/Source/Base/uDialogUtils.dcu b/Source/Base/uDialogUtils.dcu new file mode 100644 index 0000000..c32656d Binary files /dev/null and b/Source/Base/uDialogUtils.dcu differ diff --git a/Source/Base/uEMailUtils.dcu b/Source/Base/uEMailUtils.dcu new file mode 100644 index 0000000..c42923b Binary files /dev/null and b/Source/Base/uEMailUtils.dcu differ diff --git a/Source/Base/uEditorRegistryUtils.dcu b/Source/Base/uEditorRegistryUtils.dcu new file mode 100644 index 0000000..306a83a Binary files /dev/null and b/Source/Base/uEditorRegistryUtils.dcu differ diff --git a/Source/Base/uGridClipboardUtils.dcu b/Source/Base/uGridClipboardUtils.dcu new file mode 100644 index 0000000..8d81945 Binary files /dev/null and b/Source/Base/uGridClipboardUtils.dcu differ diff --git a/Source/Base/uGridStatusUtils.dcu b/Source/Base/uGridStatusUtils.dcu new file mode 100644 index 0000000..792ba67 Binary files /dev/null and b/Source/Base/uGridStatusUtils.dcu differ diff --git a/Source/Base/uInfoProjectUtils.dcu b/Source/Base/uInfoProjectUtils.dcu new file mode 100644 index 0000000..74d35c9 Binary files /dev/null and b/Source/Base/uInfoProjectUtils.dcu differ diff --git a/Source/Base/uInformeRegistryUtils.dcu b/Source/Base/uInformeRegistryUtils.dcu new file mode 100644 index 0000000..cb871e4 Binary files /dev/null and b/Source/Base/uInformeRegistryUtils.dcu differ diff --git a/Source/Base/uIntegerListUtils.dcu b/Source/Base/uIntegerListUtils.dcu new file mode 100644 index 0000000..0a5eb21 Binary files /dev/null and b/Source/Base/uIntegerListUtils.dcu differ diff --git a/Source/Base/uMD5.dcu b/Source/Base/uMD5.dcu new file mode 100644 index 0000000..f1e83b1 Binary files /dev/null and b/Source/Base/uMD5.dcu differ diff --git a/Source/Base/uNumUtils.dcu b/Source/Base/uNumUtils.dcu new file mode 100644 index 0000000..b6f8a3d Binary files /dev/null and b/Source/Base/uNumUtils.dcu differ diff --git a/Source/Base/uPasswordUtils.dcu b/Source/Base/uPasswordUtils.dcu new file mode 100644 index 0000000..d8ba8cb Binary files /dev/null and b/Source/Base/uPasswordUtils.dcu differ diff --git a/Source/Base/uRTFUtils.dcu b/Source/Base/uRTFUtils.dcu new file mode 100644 index 0000000..2bcdcce Binary files /dev/null and b/Source/Base/uRTFUtils.dcu differ diff --git a/Source/Base/uReferenciasUtils.dcu b/Source/Base/uReferenciasUtils.dcu new file mode 100644 index 0000000..620903e Binary files /dev/null and b/Source/Base/uReferenciasUtils.dcu differ diff --git a/Source/Base/uSaveClipboard.dcu b/Source/Base/uSaveClipboard.dcu new file mode 100644 index 0000000..478e5a1 Binary files /dev/null and b/Source/Base/uSaveClipboard.dcu differ diff --git a/Source/Base/uSistemaFunc.dcu b/Source/Base/uSistemaFunc.dcu new file mode 100644 index 0000000..9ba921a Binary files /dev/null and b/Source/Base/uSistemaFunc.dcu differ diff --git a/Source/Base/uStringsUtils.dcu b/Source/Base/uStringsUtils.dcu new file mode 100644 index 0000000..8e88d95 Binary files /dev/null and b/Source/Base/uStringsUtils.dcu differ diff --git a/Source/Base/uViewRegistryUtils.dcu b/Source/Base/uViewRegistryUtils.dcu new file mode 100644 index 0000000..116d5c8 Binary files /dev/null and b/Source/Base/uViewRegistryUtils.dcu differ diff --git a/Source/Base_Group.bdsgroup b/Source/Base_Group.bdsgroup new file mode 100644 index 0000000..92e0b12 --- /dev/null +++ b/Source/Base_Group.bdsgroup @@ -0,0 +1,21 @@ + + + + + + + + + + + DataAbstract_D10\DataAbstract_D10.bdsproj + Base\Base.bdsproj + Base\ControllerBase\ControllerBase.bdsproj + Base\GUIBase\GUIBase.bdsproj + Base\Usuarios\Usuarios.bdsproj + DataAbstract_D10.bpl Base.bpl ControllerBase.bpl GUIBase.bpl Usuarios.bpl + + + + diff --git a/Source/Base_Group.groupproj b/Source/Base_Group.groupproj new file mode 100644 index 0000000..37e96bc --- /dev/null +++ b/Source/Base_Group.groupproj @@ -0,0 +1,74 @@ + + + {d51b0489-bd4f-4ed4-a8cc-05ea2af327dd} + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Cliente/Actualizacion/uActualizacion.dfm b/Source/Cliente/Actualizacion/uActualizacion.dfm new file mode 100644 index 0000000..a264311 --- /dev/null +++ b/Source/Cliente/Actualizacion/uActualizacion.dfm @@ -0,0 +1,272 @@ +object fActualizacion: TfActualizacion + Left = 447 + Top = 316 + Caption = 'Configuraci'#243'n' + ClientHeight = 340 + ClientWidth = 354 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poOwnerFormCenter + OnActivate = FormActivate + DesignSize = ( + 354 + 340) + PixelsPerInch = 96 + TextHeight = 13 + object Panel2: TPanel + Left = 0 + Top = 306 + Width = 354 + Height = 34 + Align = alBottom + BevelOuter = bvNone + ParentColor = True + TabOrder = 0 + object OKBtn: TButton + Left = 190 + Top = 2 + Width = 75 + Height = 25 + Caption = '&Aceptar' + Default = True + ModalResult = 1 + TabOrder = 0 + OnClick = OKBtnClick + end + object CancelBtn: TButton + Left = 270 + Top = 2 + Width = 75 + Height = 25 + Cancel = True + Caption = '&Cancelar' + ModalResult = 2 + TabOrder = 1 + end + end + object PageControl1: TPageControl + Left = 8 + Top = 8 + Width = 337 + Height = 289 + ActivePage = TabSheet1 + Anchors = [akLeft, akTop, akRight, akBottom] + TabOrder = 1 + object TabSheet1: TTabSheet + Caption = 'Configuraci'#243'n' + object GroupBox1: TGroupBox + Left = 7 + Top = 6 + Width = 313 + Height = 242 + Caption = 'Configuraci'#243'n de acceso' + TabOrder = 0 + object Label2: TLabel + Left = 32 + Top = 115 + Width = 259 + Height = 26 + Margins.Bottom = 0 + Caption = + 'Para poder descargar actualizaciones de FactuGES desde Internet ' + + 'debe introducir su usuario y contrase'#241'a:' + WordWrap = True + end + object Label3: TLabel + Left = 41 + Top = 180 + Width = 39 + Height = 13 + Margins.Bottom = 0 + Caption = 'Usuario:' + end + object Label4: TLabel + Left = 23 + Top = 205 + Width = 57 + Height = 13 + Margins.Bottom = 0 + Caption = 'Contrase'#241'a:' + end + object bDirectorio: TSpeedButton + Left = 272 + Top = 48 + Width = 23 + Height = 22 + Caption = '...' + OnClick = bDirectorioClick + end + object Label6: TLabel + Left = 32 + Top = 155 + Width = 48 + Height = 13 + Margins.Bottom = 0 + Caption = 'Direcci'#243'n:' + end + object edUsuario: TEdit + Left = 87 + Top = 176 + Width = 208 + Height = 21 + TabOrder = 0 + end + object edPassword: TEdit + Left = 87 + Top = 201 + Width = 208 + Height = 21 + PasswordChar = '*' + TabOrder = 1 + end + object edRutaLan: TEdit + Left = 32 + Top = 48 + Width = 241 + Height = 21 + ReadOnly = True + TabOrder = 2 + end + object rbInternet: TRadioButton + Left = 16 + Top = 96 + Width = 257 + Height = 17 + Caption = 'Actualizaci'#243'n por Internet' + TabOrder = 3 + OnClick = Action1Update + end + object rbLan: TRadioButton + Left = 16 + Top = 24 + Width = 265 + Height = 17 + Caption = 'Actualizaci'#243'n por red local' + TabOrder = 4 + OnClick = Action1Update + end + object edLocation: TEdit + Left = 87 + Top = 151 + Width = 208 + Height = 21 + TabOrder = 5 + end + end + end + object TabSheet2: TTabSheet + Caption = 'Opciones avanzadas' + ImageIndex = 1 + object GroupBox2: TGroupBox + Left = 8 + Top = 7 + Width = 313 + Height = 242 + Caption = 'Opciones avanzadas' + TabOrder = 0 + object Label1: TLabel + Left = 16 + Top = 19 + Width = 282 + Height = 13 + Margins.Bottom = 0 + Caption = 'Por favor, s'#243'lo modificar si se sabe lo que se est'#225' haciendo.' + WordWrap = True + end + object Label5: TLabel + Left = 16 + Top = 52 + Width = 177 + Height = 13 + Margins.Bottom = 0 + Caption = 'Nombre del archivo de configuraci'#243'n:' + end + object Label7: TLabel + Left = 200 + Top = 76 + Width = 90 + Height = 13 + Margins.Bottom = 0 + Caption = 'p.e: versionlocal.ini' + end + object edFicheroConfig: TEdit + Left = 16 + Top = 72 + Width = 177 + Height = 21 + TabOrder = 0 + end + end + end + end + object JvAppRegistryStorage1: TJvAppRegistryStorage + StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' + StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' + StorageOptions.BooleanAsString = False + RegRoot = hkLocalMachine + Root = 'Software\FactuGES\Update' + SubStorages = <> + Left = 326 + end + object JvFormStorage1: TJvFormStorage + Active = False + AppStorage = JvAppRegistryStorage1 + AppStoragePath = '\' + Options = [] + StoredProps.Strings = ( + 'edPassword.Text' + 'edUsuario.Text' + 'edRutaLan.Text' + 'rbInternet.Checked' + 'rbLan.Checked' + 'edFicheroConfig.Text' + 'edLocation.Text') + StoredValues = < + item + Name = 'TipoActualizacion' + Value = '' + OnSave = JvFormStorage1StoredValues0Save + end> + Left = 296 + end + object ActionList1: TActionList + Left = 242 + Top = 2 + object Action1: TAction + Caption = 'Action1' + OnUpdate = Action1Update + end + object Action2: TAction + Caption = 'Action2' + end + end + object JvBrowseForFolderDialog1: TJvBrowseForFolderDialog + Options = [odOnlyDirectory, odStatusAvailable, odNewDialogStyle] + Title = 'Ruta de las actualizaciones' + Left = 268 + Top = 1 + end + object JvProgramVersionCheck1: TJvProgramVersionCheck + CheckFrequency = 0 + LocalDirectory = 'update' + LocalVersionInfoFileName = 'versioninfo.ini' + LocationNetwork = JvProgramVersionNetworkLocation1 + LocationType = pvltHTTP + UserOptions = [uoLocalDirectory, uoAllowedReleaseType, uoLocationType, uoLocationNetwork, uoLocationHTTP] + Left = 176 + Top = 48 + end + object JvProgramVersionNetworkLocation1: TJvProgramVersionNetworkLocation + Left = 208 + Top = 48 + end + object JvProgramVersionHTTPLocation1: TJvProgramVersionHTTPLocation + Left = 232 + Top = 48 + end +end diff --git a/Source/Cliente/Actualizacion/uActualizacion.pas b/Source/Cliente/Actualizacion/uActualizacion.pas new file mode 100644 index 0000000..2001f0a --- /dev/null +++ b/Source/Cliente/Actualizacion/uActualizacion.pas @@ -0,0 +1,182 @@ +{ +=============================================================================== + Copyright () 2005. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: 17-05-2005 + Versin actual: 1.0.0 + Fecha versin actual: 17-05-2005 +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uActualizacion; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, JvComponent, JvAppStorage, + JvAppRegistryStorage, JvFormPlacement, JvProgramVersionCheck, JvPropertyStore, + JvBaseDlg, JvBrowseFolder, ActnList, JvComponentBase, Buttons, uInfoProjectUtils; + +type + TfActualizacion = class(TForm) + Panel2: TPanel; + OKBtn: TButton; + CancelBtn: TButton; + PageControl1: TPageControl; + TabSheet1: TTabSheet; + GroupBox1: TGroupBox; + Label2: TLabel; + edUsuario: TEdit; + Label3: TLabel; + edPassword: TEdit; + Label4: TLabel; + JvAppRegistryStorage1: TJvAppRegistryStorage; + JvFormStorage1: TJvFormStorage; + edRutaLan: TEdit; + bDirectorio: TSpeedButton; + rbInternet: TRadioButton; + rbLan: TRadioButton; + ActionList1: TActionList; + Action1: TAction; + Action2: TAction; + TabSheet2: TTabSheet; + GroupBox2: TGroupBox; + Label1: TLabel; + Label5: TLabel; + edFicheroConfig: TEdit; + JvBrowseForFolderDialog1: TJvBrowseForFolderDialog; + JvProgramVersionCheck1: TJvProgramVersionCheck; + JvProgramVersionNetworkLocation1: TJvProgramVersionNetworkLocation; + Label6: TLabel; + edLocation: TEdit; + Label7: TLabel; + procedure bDirectorioClick(Sender: TObject); + procedure Action1Update(Sender: TObject); + procedure FormActivate(Sender: TObject); + procedure OKBtnClick(Sender: TObject); + procedure JvFormStorage1StoredValues0Save(Sender: TJvStoredValue; + var AValue: Variant); + private + InfoProject : TInfoProject; + public + { Public declarations } + function HayConfiguracion: Boolean; + procedure Actualizar; + function darVersion: String; + end; + +var + fActualizacion: TfActualizacion; + +implementation + +{$R *.dfm} + +uses + JclFileUtils; + +procedure TfActualizacion.bDirectorioClick(Sender: TObject); +begin + if Length(edRutaLan.Text) > 0 then + JvBrowseForFolderDialog1.Directory := edRutaLan.Text; + JvBrowseForFolderDialog1.Execute; + if DirectoryExists(JvBrowseForFolderDialog1.Directory) then + edRutaLan.Text := JvBrowseForFolderDialog1.Directory + '\' + else begin + ShowMessage('Directorio no vlido'); + bDirectorio.Click; + end; +end; + +procedure TfActualizacion.Action1Update(Sender: TObject); +begin + edRutaLan.Enabled := rbLan.Checked; + bDirectorio.Enabled := rbLan.Checked; + edLocation.Enabled := rbInternet.Checked; + edUsuario.Enabled := rbInternet.Checked; + edPassword.Enabled := rbInternet.Checked; +end; + +procedure TfActualizacion.FormActivate(Sender: TObject); +begin + JvFormStorage1.RestoreFormPlacement; + PageControl1.TabIndex := 0; +end; + +procedure TfActualizacion.OKBtnClick(Sender: TObject); +begin + JvFormStorage1.SaveFormPlacement; +end; + +procedure TfActualizacion.Actualizar; +begin + JvFormStorage1.RestoreFormPlacement; + + if rbLan.Checked then + begin + JvProgramVersionCheck1.LocationType := pvltNetwork; + with JvProgramVersionNetworkLocation1 do + begin + VersionInfoLocationPathList.Clear; + VersionInfoLocationPathList.Add(edRutaLan.Text); + VersionInfoFileName := edFicheroConfig.Text; + end; + end + else begin + {JvProgramVersionCheck1.LocationType := pvltHTTP; + with JvProgramVersionHTTPLocationIndy1 do + begin + VersionInfoFileName := edFicheroConfig.Text; + VersionInfoLocationPathList.Clear; + VersionInfoLocationPathList.Add(edLocation.Text); + UserName := edUsuario.Text; + Password := edPassword.Text; + end;} + end; + + JvProgramVersionCheck1.LocalVersionInfoFileName := 'versionlocal.ini';//edFicheroConfig.Text; + JvProgramVersionCheck1.Execute; +end; + +procedure TfActualizacion.JvFormStorage1StoredValues0Save( + Sender: TJvStoredValue; var AValue: Variant); +begin + if rbInternet.Checked then + AValue := 'INTERNET' + else + AValue := 'LAN'; +end; + +function TfActualizacion.darVersion: String; +begin + InfoProject := TInfoProject.Create(Self); + try + Result := InfoProject.FileVersion; + finally + FreeAndNil(InfoProject); + end; +end; + +function TfActualizacion.HayConfiguracion: Boolean; +begin + // Cargar la configuracin desde el registro. + JvFormStorage1.RestoreFormPlacement; + + Result := (rbLan.Checked) or (rbInternet.Checked); +end; + +end. diff --git a/Source/Cliente/Cliente_Group.bdsgroup b/Source/Cliente/Cliente_Group.bdsgroup new file mode 100644 index 0000000..9dca6ab --- /dev/null +++ b/Source/Cliente/Cliente_Group.bdsgroup @@ -0,0 +1,20 @@ + + + + + + + + + + + + + ..\Base\Base.bdsproj + FactuGES.bdsproj + Base.bpl FactuGES.exe + + + + diff --git a/Source/Cliente/Cliente_Group.groupproj b/Source/Cliente/Cliente_Group.groupproj new file mode 100644 index 0000000..f7a5717 --- /dev/null +++ b/Source/Cliente/Cliente_Group.groupproj @@ -0,0 +1,44 @@ + + + {479c3dbc-7c2f-4cf8-8123-57cc8ee5f174} + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Cliente/FactuGES.bdsproj b/Source/Cliente/FactuGES.bdsproj new file mode 100644 index 0000000..48e333e --- /dev/null +++ b/Source/Cliente/FactuGES.bdsproj @@ -0,0 +1,682 @@ + + + + + + + + + + + + FactuGES.dpr + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + ..\..\Output\Debug\Cliente + .\ + .\ + .\ + ..\Lib;..\Modulos\Lib + PluginSDK_D10R;GUISDK_D10;DataAbstract_D10;Base;GUIBase;Usuarios;Contactos_plugin;Empresas_plugin;Empresas_controller;Empresas_model;rtl + _VER6;EUREKALOG;EUREKALOG_VER6 + T:\Codigo (Luis Leon)\Source\Modulos\Pedidos de cliente\Controller\ + True + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 2 + 2 + 2 + 0 + False + False + False + False + False + 3082 + 1252 + + + Rodax Software S.L. + + 2.2.2.0 + FactuGES + + + + FactuGES + 2.1.4 + + + File c:\archivos de programa\borland\delphi10\Bin\dclIntraweb_80_100.bpl not found + File c:\archivos de programa\borland\delphi10\Bin\dclnet100.bpl not found + File c:\archivos de programa\borland\delphi10\Bin\dclsoap100.bpl not found + File c:\archivos de programa\borland\delphi10\Bin\dclie100.bpl not found + + + + diff --git a/Source/Cliente/FactuGES.dpr b/Source/Cliente/FactuGES.dpr new file mode 100644 index 0000000..b105df3 --- /dev/null +++ b/Source/Cliente/FactuGES.dpr @@ -0,0 +1,37 @@ +program FactuGES; + +uses + Forms, + Windows, + SysUtils, + uFactuGES_App, + Dialogs, + uPantallaPrincipal in 'uPantallaPrincipal.pas' {fPantallaPrincipal}, + uMenuUtils in 'Utiles\uMenuUtils.pas', + uSplash in 'uSplash.pas' {SplashScreen}, + uAcercaDe in 'uAcercaDe.pas', + uNavPaneController in 'uNavPaneController.pas', + uNavPaneUtils in 'Utiles\uNavPaneUtils.pas', + uMainMenuController in 'uMainMenuController.pas', + uClienteUtils in 'Utiles\uClienteUtils.pas', + uBootStrap in 'uBootStrap.pas', + VCLFixPack in 'VCLFixPack.pas'; + +{$R *.res} + +begin + Application.Initialize; + + //ReportMemoryLeaksOnShutdown := True; + + // Fallo en Delphi 2007!!! + // Tengo que ponerlo a false porque si no el formulario principal no se puede poner por encima de los formularios hijos. + // Luego, en el formulario principal cambio los paramtros para obligar a que aparezca el icono en la barra de tareas. + + uBootStrap.Initialize; + uBootStrap.Run; // <- Aqu dentro est Application.Run + uBootStrap.Terminate; + + Application.Terminate; //<- No descomentar para as ver los Memory Leaks +end. + diff --git a/Source/Cliente/FactuGES.dproj b/Source/Cliente/FactuGES.dproj new file mode 100644 index 0000000..d17c615 --- /dev/null +++ b/Source/Cliente/FactuGES.dproj @@ -0,0 +1,561 @@ + + + + {53016ac3-0937-40b6-917c-48fcd13f2260} + FactuGES.dpr + Debug + AnyCPU + PluginSDK_D11R;GUISDK_D11R;Base;GUIBase;ApplicationBase;vclx;vcl;rtl;vclactnband;xmlrtl;JSDialog100 + DCC32 + ..\..\Output\Debug\Cliente\FactuGES.exe + true + + + 7.0 + False + False + False + True + 0 + 3 + ..\..\Output\Release\Cliente + .\ + .\ + .\ + .\ + .\ + ..\Lib;..\Modulos\Lib + ..\Lib;..\Modulos\Lib + ..\Lib;..\Modulos\Lib + ..\Lib;..\Modulos\Lib + RELEASE + + + 7.0 + False + True + 3 + ..\..\Output\Debug\Cliente + .\ + .\ + .\ + .\ + .\ + C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;T:\COMPON~1\jcl\lib\d11\debug;$(BDSCOMMONDIR)\Dcp;..\Lib;..\Modulos\Lib + C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;T:\COMPON~1\jcl\lib\d11\debug;$(BDSCOMMONDIR)\Dcp;..\Lib;..\Modulos\Lib + C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;T:\COMPON~1\jcl\lib\d11\debug;$(BDSCOMMONDIR)\Dcp;..\Lib;..\Modulos\Lib + C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;T:\COMPON~1\jcl\lib\d11\debug;$(BDSCOMMONDIR)\Dcp;..\Lib;..\Modulos\Lib + True + True + 2 + + + Delphi.Personality + VCLApplication + +FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse1830FalseFalseFalseFalseFalse30821252Rodax Software S.L.1.8.3.0FactuGESFactuGES1.8.3.0FactuGES.dprFalse + + + + + MainSource + + + + + + +
fPantallaPrincipal
+
+ +
SplashScreen
+
+ + + + +
+
+ diff --git a/Source/Cliente/FactuGES.drc b/Source/Cliente/FactuGES.drc new file mode 100644 index 0000000..855de35 --- /dev/null +++ b/Source/Cliente/FactuGES.drc @@ -0,0 +1,21 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* c:\archivos de programa\codegear\rad studio\5.0\lib\WindowsXP.res */ +/* C:\Codigo\Lib\JVCL\JvXPCore.res */ +/* C:\Codigo\Source\Cliente\uSplash.dfm */ +/* C:\Codigo\Source\Cliente\uAcercaDe.dfm */ +/* C:\Codigo\Source\Cliente\uPantallaPrincipal.dfm */ +/* C:\Codigo\Source\Cliente\FactuGES.res */ +/* C:\Codigo\Source\Cliente\FactuGES.drf */ diff --git a/Source/Cliente/FactuGES.identcache b/Source/Cliente/FactuGES.identcache new file mode 100644 index 0000000..fd9914e Binary files /dev/null and b/Source/Cliente/FactuGES.identcache differ diff --git a/Source/Cliente/FactuGES.rc b/Source/Cliente/FactuGES.rc new file mode 100644 index 0000000..c2b38b0 --- /dev/null +++ b/Source/Cliente/FactuGES.rc @@ -0,0 +1,26 @@ +MAINICON ICON "C:\Codigo\Resources\Iconos\Factuges.ico" +1 VERSIONINFO +FILEVERSION 1,8,3,0 +PRODUCTVERSION 1,8,3,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "CompanyName", "Rodax Software S.L.\0" + VALUE "FileVersion", "1.8.3.0\0" + VALUE "InternalName", "FactuGES\0" + VALUE "ProductName", "FactuGES\0" + VALUE "ProductVersion", "1.8.3.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Cliente/FactuGES.res b/Source/Cliente/FactuGES.res new file mode 100644 index 0000000..9995434 Binary files /dev/null and b/Source/Cliente/FactuGES.res differ diff --git a/Source/Cliente/FactuGES.rsb b/Source/Cliente/FactuGES.rsb new file mode 100644 index 0000000..19ec614 Binary files /dev/null and b/Source/Cliente/FactuGES.rsb differ diff --git a/Source/Cliente/Utiles/uClienteUtils.pas b/Source/Cliente/Utiles/uClienteUtils.pas new file mode 100644 index 0000000..2f5827d --- /dev/null +++ b/Source/Cliente/Utiles/uClienteUtils.pas @@ -0,0 +1,19 @@ +unit uClienteUtils; + +interface + +uses + Classes, Menus, SysUtils; + + +function EsUnModulo(AMenuItem : TMenuItem) : Boolean; + +implementation + +function EsUnModulo(AMenuItem : TMenuItem) : Boolean; +begin + Result := (AMenuItem.Tag >= 0) and (AMenuItem.Tag < 9000) +end; + + +end. diff --git a/Source/Cliente/Utiles/uMenuUtils.pas b/Source/Cliente/Utiles/uMenuUtils.pas new file mode 100644 index 0000000..f31420e --- /dev/null +++ b/Source/Cliente/Utiles/uMenuUtils.pas @@ -0,0 +1,139 @@ +unit uMenuUtils; + +interface + +uses + Forms, ImgList, ActnList, JvPageList, JvNavigationPane, Menus, + Controls; + + +procedure MergeMenus(Source, Dest: TMainMenu; ImageIndex : Integer = -1); +procedure SortMenuByTag(Menu : TMainMenu); + +function BuscarMenu(const AMainMenu: TMainMenu; const ACaption: String): TMenuItem; +procedure copiarItemsMenu(MenuDestino: TMenuItem; pMenu: TMenuItem); + +implementation + +uses + ComCtrls, Classes, Math, TBXDkPanels, StrUtils, SysUtils, + ExtCtrls, Graphics, Dialogs; + +type + TAssignCallback = procedure(Source, Dest: TMenuItem); + + +procedure AssignMenus(Source, Dest: TMenuItem; AImageIndex : Integer; + AssignProc: TAssignCallback); +var + I: Integer; + Item: TMenuItem; +begin + for I := 0 to Source.Count - 1 do + begin + Item := Dest.Find(Source.Items[I].Caption); + if Item = NIL then + begin + Item := TMenuItem.Create(Dest); + Dest.Add(Item); + if Assigned(AssignProc) then + begin + AssignProc(Source.Items[I], Item); + if (Source.Items[I].ImageIndex >= 0) then + Item.ImageIndex := Source.Items[I].ImageIndex + AImageIndex; + end; + end; + AssignMenus(Source.Items[I], Item, AImageIndex, AssignProc); + end; +end; + +procedure AssignMenuItem(Source, Dest: TMenuItem); +begin + Dest.Caption := Source.Caption; + Dest.Hint := Source.Hint; + Dest.Checked := Source.Checked; + Dest.GroupIndex := Source.GroupIndex; + Dest.Tag := Source.Tag; + Dest.Action := Source.Action; + Dest.ImageIndex := Source.ImageIndex; + Dest.ShortCut := Source.ShortCut; + Dest.RadioItem := Source.RadioItem; + Dest.AutoCheck := Source.AutoCheck; + Dest.AutoHotkeys := Source.AutoHotkeys; + Dest.AutoLineReduction := Source.AutoLineReduction; + Dest.Break := Source.Break; + Dest.Default := Source.Default; + Dest.Enabled := Source.Enabled; + Dest.HelpContext := Source.HelpContext; + Dest.Visible := Source.Visible; +end; + +procedure SortMenuItems(MenuItems : TMenuItem); + + function CompareTags(Item1, Item2: Pointer): Integer; + begin + Result := CompareValue(TMenuItem(Item1).Tag, TMenuItem(Item2).Tag); + end; + +var + I: Integer; + AList : TList; +begin + AList := TList.Create; + + try + for I := 0 to MenuItems.Count - 1 do + begin + SortMenuItems(MenuItems.Items[i]); + AList.Add(Pointer(MenuItems.Items[i])); + end; + + AList.Sort(@CompareTags); + + for i := 0 to AList.Count - 1 do + TMenuItem(AList.Items[i]).MenuIndex := i; + + finally + AList.Free; + end; +end; + +procedure MergeMenus(Source, Dest: TMainMenu; ImageIndex : Integer = -1); +begin + AssignMenus(Source.Items, Dest.Items, ImageIndex, AssignMenuItem); +end; + +procedure SortMenuByTag(Menu : TMainMenu); +begin + SortMenuItems(Menu.Items); +end; + +function BuscarMenu(const AMainMenu: TMainMenu; const ACaption: String): TMenuItem; +var + i: Integer; +begin + i:=0; + while ((i < AMainMenu.Items.Count-1) and + (StringReplace(AMainMenu.Items[i].Caption,'&','',[]) <> ACaption)) do + Inc(i); + Result := AMainMenu.Items[i]; +end; + +procedure copiarItemsMenu(MenuDestino, pMenu: TMenuItem); +var + i: Integer; + Item: TMenuItem; +begin + for i := 0 to (pMenu.Count - 1) do + begin + Item := TMenuItem.Create(MenuDestino); + Item.Caption := pMenu.Items[i].Caption; + Item.Action := pMenu.Items[i].Action; + MenuDestino.Add(Item); + end; +end; + + + +end. + diff --git a/Source/Cliente/Utiles/uNavPaneUtils.pas b/Source/Cliente/Utiles/uNavPaneUtils.pas new file mode 100644 index 0000000..7e9658c --- /dev/null +++ b/Source/Cliente/Utiles/uNavPaneUtils.pas @@ -0,0 +1,58 @@ +unit uNavPaneUtils; + +interface + +uses + Forms, ImgList, ActnList, JvPageList, JvNavigationPane, Menus, + Controls; + +procedure PopulateNavPagePane(AParentControl : TWinControl; + AMenuItem: TMenuItem; AImageList : TCustomImageList; + AStyleManager : TJvNavPaneStyleManager); overload; + +implementation + +uses + ComCtrls, Classes, Math, TBXDkPanels, StrUtils, SysUtils, + ExtCtrls, Graphics, Dialogs; + + +procedure PopulateNavPagePane(AParentControl : TWinControl; + AMenuItem: TMenuItem; AImageList : TCustomImageList; + AStyleManager : TJvNavPaneStyleManager); +var + ItemIndex : Integer; + AHeight : Integer; +begin + AHeight := 0; + for ItemIndex := 0 to (AMenuItem.Count - 1) do + begin + if ((not AMenuItem[ItemIndex].IsLine) // que no sea una lnea separadora + and (AMenuItem[ItemIndex].Count = 0)) // y que no sea el padre de un submen + then + with TTBXLink.Create(Application) do + begin + Parent := AParentControl;//APanel; + Align := alTop; + ParentFont := True; + Tag := AMenuItem[ItemIndex].Tag; + Caption := AMenuItem[ItemIndex].Caption; + Action := AMenuItem[ItemIndex].Action; + Images := AImageList; + ImageIndex := AMenuItem[ItemIndex].ImageIndex; + if ItemIndex = 0 then + Margins.Top := 15 + else + Margins.Top := 6; + Margins.Bottom := 6; + Margins.Left := 10; + Margins.Right := 10; + Height := 18; + Invalidate; + AHeight := AHeight + Margins.Top + Margins.Bottom + Height; + end; + end; + AParentControl.Height := AHeight; +end; + +end. diff --git a/Source/Cliente/VCLFixPack.dcu b/Source/Cliente/VCLFixPack.dcu new file mode 100644 index 0000000..167d912 Binary files /dev/null and b/Source/Cliente/VCLFixPack.dcu differ diff --git a/Source/Cliente/VCLFixPack.pas b/Source/Cliente/VCLFixPack.pas new file mode 100644 index 0000000..5854f24 --- /dev/null +++ b/Source/Cliente/VCLFixPack.pas @@ -0,0 +1,2830 @@ +{**************************************************************************************************} +{ } +{ VCLFixPack unit - Unoffical bug fixes for Delphi/C++Builder } +{ Version 1.2 (2009-03-03) } +{ } +{ The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); } +{ you may not use this file except in compliance with the License. You may obtain a copy of the } +{ License at http://www.mozilla.org/MPL/ } +{ } +{ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF } +{ ANY KIND, either express or implied. See the License for the specific language governing rights } +{ and limitations under the License. } +{ } +{ The Original Code is VCLFixPack.pas. } +{ } +{ The Initial Developer of the Original Code is Andreas Hausladen (Andreas.Hausladen@gmx.de). } +{ Portions created by Andreas Hausladen are Copyright (C) 2008 Andreas Hausladen. } +{ All Rights Reserved. } +{ } +{**************************************************************************************************} + +{$IFNDEF CONDITIONALEXPRESSIONS} + Delphi5_is_not_supported +{$ENDIF} + +{$A8,B-,C+,D-,E-,F-,G+,H+,I+,J-,K-,L+,M-,N-,O+,P+,Q-,R-,S-,T-,U-,V+,W-,X+,Y+,Z1} + +{ If you define VCLFIXPACK_DEBUG the patches are compiled with debug information. } +{$IFDEF VCLFIXPACK_DEBUG} {$D+} {$ENDIF} + +{ If you use Delphi 6/7/2005 Personal you must disable the VCLFIXPACK_DB_SUPPORT define. } +{$DEFINE VCLFIXPACK_DB_SUPPORT} + +unit VCLFixPack; + +{ + Usage + ===== + Add the unit to the .dpr file's uses-list. + C++Builder user can add the file to the project (Menu Project/Add to project) + + Example + ======= + uses + FastMM4, // optional memory manager + VCLFixPack, + Forms, + Unit1 in 'Unit1.pas'; + + + Fixes the following bug + ======================= + - [2006-2009] + QC #68647: Infinite loop in Forms.GetNonToolWindowPopupParent + (http://qc.codegear.com/wc/qcmain.aspx?d=68647) + + - [2007-2009] + QC #68740: Lost focus after TOpenDialog when MainFormOnTaskBar is set + (http://qc.codegear.com/wc/qcmain.aspx?d=68740) + + - [2005-2009] + QC #59963: Closing non-modal forms after a task switch can deactivate the application + (http://qc.codegear.com/wc/qcmain.aspx?d=59963) + + - [2009] + QC #66892: Closing forms deactivates the application (missing "stdcall") + (http://qc.codegear.com/wc/qcmain.aspx?d=66892) + + - [6-2007] + Control resize bugfix for kernel stack overflow due to WH_CALLWNDPROC hook + + - [6-2007] + QC #59654: TActionList access already released FActions field + (http://qc.codegear.com/wc/qcmain.aspx?d=59654) + + - [6-2007] + QC #54286 : Parent-PopupMenu overrides standard context menu (edit, memo, combobox, ...) + (http://qc.codegear.com/wc/qcmain.aspx?d=54286) + + - [2006-2007] + QC #50097: ObjAuto access violation on XEON (Data Execution Prevention bug) + (http://qc.codegear.com/wc/qcmain.aspx?d=50097) + + - [6-2009] + Classes.MakeObjectInstance memory leak fix + (for usage in a DLL) + + - [2007] + QC #58938: MainForm Minimize minimizes in the background + (http://qc.codegear.com/wc/qcmain.aspx?d=58938) + + - [6-2009] + QC #64484: SysUtils.Abort can raise an AccessViolation + (http://qc.codegear.com/wc/qcmain.aspx?d=64484) + + - [2007] + QC #58939: No taskbar button when starting from ShellLink with Show=Minimized + (http://qc.codegear.com/wc/qcmain.aspx?d=58939) + + - [6-2009] + QC #35001: MDIChild's active control focus is not set correctly + (http://qc.codegear.com/wc/qcmain.aspx?d=35001) + + - [7-2009] + QC #56252: TPageControl flickers a lot with active theming + (http://qc.codegear.com/wc/qcmain.aspx?d=56252) + QC #68730: TLabel is not painted on a themed, double-buffered TTabSheet in Vista + (http://qc.codegear.com/wc/qcmain.aspx?d=68730) + TLabels on TTabSheet are not painted (themes) if a TWinControl like TMemo is on the TTabSheet (TWinControl.PaintWindow bug) + + - [7-2009] + Grid flickers with active theming (DBGrid, StringGrid and DrawGrid only, no derived classes) + + - [2009] + QC #69112: TSpeedButton is painted as a black rectangle on a double buffered panel on a sheet of glass. + + - [2009] + QC #69294: TProgressBar fails with PBS_MARQUEE and disabled Themes (Vista) + http://qc.codegear.com/wc/qcmain.aspx?d=69294 + + - [Windows Vista] + Workaround for Windows Vista CompareString bug + (Workaround is disabled by default, define "VistaCompareStringFix" to activate it) + + - [2007-2009] + QC #52439: DbNavigator paints incorrectly when flat=true in themed mode + + - [2009] + QC #70441: ToUpper and ToLower modify a Const argument + + - [2009] + QC #69752: ToUpper and ToLower with NullString + + - [2009] + QC #69875: StringBuilder.Replace is incorrect + QC #67564: Error in TStringBuilder.Replace + + + Changlog: + 2009-03-03: + Fixed: Rewritten patch for QC #59963 (AppDeActivateZOrderFix) to fix the cause instead of the symptom + Added: QC #52439: DbNavigator paints incorrectly when flat=true in themed mode + Added: QC #70441: ToUpper and ToLower modify a Const argument + Added: QC #69752: ToUpper and ToLower with NullString + Added: QC #69875, #67564: StringBuilder.Replace is incorrect + + a much faster implementation + + 2009-01-25: + Fixed: DBGrid ScrollBar gab wasn't painted correctly in BiDiMode <> bdLeftToRight + Fixed: TTabSheet could throw an access violation if no PageControl was assigned to it + Changed: Rewritten TaskModalDialog bugfix + Added: QC #69294: TProgressBar fails with PBS_MARQUEE and disabled Themes (Vista) + +} + +interface + +{ ---------------------------------------------------------------------------- } + +{$DEFINE DBTextColorBugFix} // Delphi 6+ + +{$IF CompilerVersion >= 18.0} // Delphi 2006+ + {$DEFINE GetNonToolWindowPopupParentFix} +{$IFEND} + +{$IF CompilerVersion >= 18.5} // Delphi 2007+ + {$DEFINE TaskModalDialogFix} +{$IFEND} + +{$IF CompilerVersion >= 16.0} // Delphi 2005 + {$DEFINE AppDeActivateZOrderFix} +{$IFEND} + +{$IF CompilerVersion = 20.0} // Delphi 2009 + {$DEFINE HideStackTrashingFix} +{$IFEND} + +{$IF CompilerVersion < 20.0} // Delphi 6-2007 + {$DEFINE ControlResizeFix} + { The OPTIMIZED_RESIZE_REDRAW option is experimental. It speeds up the resizing of forms + by not redrawing each control when it is realigned but by invalidating them all after + one align round is done. } + {.$DEFINE OPTIMIZED_RESIZE_REDRAW} +{$IFEND} + +{$IF CompilerVersion < 20.0} // Delphi 6-2007 + {$DEFINE ActionListAVFix} +{$IFEND} + +{$IF CompilerVersion < 20.0} // Delphi 6-2007 + {$DEFINE ContextMenuFix} +{$IFEND} + +{$IF (CompilerVersion >= 18.0) and (CompilerVersion < 20.0)} // Delphi 2006-2007 + {$DEFINE ObjAutoDEPFix} +{$IFEND} + +{$DEFINE MkObjInstLeakFix} // Delphi 6+ + +{$DEFINE SysUtilsAbortFix} // Delphi 6+ + +{$IF CompilerVersion = 18.5} // Delphi 2007 + {$DEFINE AppMinimizeFix} +{$IFEND} + +{$IF CompilerVersion = 18.5} // Delphi 2007 + {$DEFINE CmdShowMinimizeFix} +{$IFEND} + +{$DEFINE MDIChildFocusFix} // Delphi 6+ + +{$IF CompilerVersion >= 15} // Delphi 7+ + {$DEFINE PageControlPaintingFix} +{$IFEND} + +{$IF CompilerVersion >= 15} // Delphi 7+ + {$DEFINE GridFlickerFix} +{$IFEND} + +{$IF CompilerVersion = 20.0} // Delphi 2009 + {$DEFINE SpeedButtonGlassFix} +{$IFEND} + +{$IF CompilerVersion = 20.0} // Delphi 2009 + {$DEFINE VistaProgressBarMarqueeFix} +{$IFEND} + +{$IF CompilerVersion = 20.0} // Delphi 2009 + {$DEFINE CharacterFix} +{$IFEND} + +{$IF CompilerVersion = 20.0} // Delphi 2009 + {$DEFINE StringBuilderFix} +{$IFEND} + +{$IF (CompilerVersion >= 18.5) and (CompilerVersion <= 20.0)} // Delphi 2007-2009 + {$IFDEF VCLFIXPACK_DB_SUPPORT} + {$DEFINE DBNavigatorFix} + {$ENDIF VCLFIXPACK_DB_SUPPORT} +{$IFEND} + +{**************************************************************************************************} +{ Workaround for Windows Vista CompareString bug. } +{ The / ($DC/$FC) and the UE/ue are treated equal in all locales, but they aren't equal. There } +{ was a bugfix intended for Vista SP1 but it was removed before SP1 was released. } +{ Windows 2008 Server still includes this bugfix but Vista will never get this bugfix. } +{ Microsoft: new versions are for correctness; service packs are for consistency and compatibility } +{**************************************************************************************************} +{ WARNING: This bugfix can slow down CompareString } +{.$DEFINE VistaCompareStringFix} + + +implementation + +{$IF CompilerVersion >= 18.0} + {$DEFINE DELPHI2006_UP} +{$IFEND} +{$IF CompilerVersion >= 17.0} + {$DEFINE DELPHI2005_UP} +{$IFEND} + +uses + Windows, Messages, SysUtils, Classes, TypInfo, ActnList, SysConst, + {$IFDEF ObjAutoDEPFix} + ObjAuto, + {$ENDIF ObjAutoDEPFix} + {$IF CompilerVersion >= 15.0} + Themes, + {$IFEND} + {$IF CompilerVersion >= 20.0} + Character, + {$IFEND} + {$IFDEF VCLFIXPACK_DB_SUPPORT} + DBGrids, DBCtrls, + {$ENDIF VCLFIXPACK_DB_SUPPORT} + Graphics, Controls, Forms, Dialogs, StdCtrls, Grids, ComCtrls, Buttons, + CommCtrl; + +{ ---------------------------------------------------------------------------- } +{ Helper functions, shared } +type + TOpenWinControl = class(TWinControl); + TOpenCustomForm = class(TCustomForm); + TOpenCommonDialog = class(TCommonDialog); + TOpenCustomActionList = class(TCustomActionList); + TOpenComponent = class(TComponent); + TOpenCustomCombo = class(TCustomCombo); + + TJumpOfs = Integer; + PPointer = ^Pointer; + +type + PXRedirCode = ^TXRedirCode; + TXRedirCode = packed record + Jump: Byte; + Offset: TJumpOfs; + end; + + PWin9xDebugThunk = ^TWin9xDebugThunk; + TWin9xDebugThunk = packed record + PUSH: Byte; + Addr: Pointer; + JMP: TXRedirCode; + end; + + PAbsoluteIndirectJmp = ^TAbsoluteIndirectJmp; + TAbsoluteIndirectJmp = packed record + OpCode: Word; //$FF25(Jmp, FF /4) + Addr: PPointer; + end; + +var + TaskActiveWindow: HWND; + TaskFirstWindow: HWND; + TaskFirstTopMost: HWND; + +function DoFindWindow(Window: HWND; Param: LPARAM): Bool; stdcall; +begin + if (Window <> TaskActiveWindow) and (Window <> Application.Handle) and + IsWindowVisible(Window) and IsWindowEnabled(Window) then + begin + if GetWindowLong(Window, GWL_EXSTYLE) and WS_EX_TOPMOST = 0 then + begin + if TaskFirstWindow = 0 then + TaskFirstWindow := Window; + end else + begin + if TaskFirstTopMost = 0 then + TaskFirstTopMost := Window; + end; + end; + Result := True; +end; + +function FindTopMostWindow(ActiveWindow: HWND): HWND; +begin + TaskActiveWindow := ActiveWindow; + TaskFirstWindow := 0; + TaskFirstTopMost := 0; + EnumThreadWindows(GetCurrentThreadID, @DoFindWindow, 0); + if TaskFirstWindow <> 0 then + Result := TaskFirstWindow + else + Result := TaskFirstTopMost; +end; + +{ Hooking } + +function GetActualAddr(Proc: Pointer): Pointer; + + function IsWin9xDebugThunk(AAddr: Pointer): Boolean; + begin + Result := (AAddr <> nil) and + (PWin9xDebugThunk(AAddr).PUSH = $68) and + (PWin9xDebugThunk(AAddr).JMP.Jump = $E9); + end; + +begin + if Proc <> nil then + begin + if (Win32Platform <> VER_PLATFORM_WIN32_NT) and IsWin9xDebugThunk(Proc) then + Proc := PWin9xDebugThunk(Proc).Addr; + if (PAbsoluteIndirectJmp(Proc).OpCode = $25FF) then + Result := PAbsoluteIndirectJmp(Proc).Addr^ + else + Result := Proc; + end + else + Result := nil; +end; + +procedure HookProc(Proc, Dest: Pointer; var BackupCode: TXRedirCode); +var + n: DWORD; + Code: TXRedirCode; +begin + Proc := GetActualAddr(Proc); + Assert(Proc <> nil); + if ReadProcessMemory(GetCurrentProcess, Proc, @BackupCode, SizeOf(BackupCode), n) then + begin + Code.Jump := $E9; + Code.Offset := PAnsiChar(Dest) - PAnsiChar(Proc) - SizeOf(Code); + WriteProcessMemory(GetCurrentProcess, Proc, @Code, SizeOf(Code), n); + end; +end; + +procedure UnhookProc(Proc: Pointer; var BackupCode: TXRedirCode); +var + n: Cardinal; +begin + if (BackupCode.Jump <> 0) and (Proc <> nil) then + begin + Proc := GetActualAddr(Proc); + Assert(Proc <> nil); + WriteProcessMemory(GetCurrentProcess, Proc, @BackupCode, SizeOf(BackupCode), n); + BackupCode.Jump := 0; + end; +end; + +procedure ReplaceVmtField(AClass: TClass; OldProc, NewProc: Pointer); +type + PVmt = ^TVmt; + TVmt = array[0..MaxInt div SizeOf(Pointer) - 1] of Pointer; +var + I: Integer; + Vmt: PVmt; + n: Cardinal; + P: Pointer; +begin + OldProc := GetActualAddr(OldProc); + NewProc := GetActualAddr(NewProc); + + I := vmtSelfPtr div SizeOf(Pointer); + Vmt := Pointer(AClass); + while (I < 0) or (Vmt[I] <> nil) do + begin + P := Vmt[I]; + if (P <> OldProc) and (Integer(P) > $10000) and not IsBadReadPtr(P, 6) then + P := GetActualAddr(P); + if P = OldProc then + begin + WriteProcessMemory(GetCurrentProcess, @Vmt[I], @NewProc, SizeOf(NewProc), n); + Exit; + end; + Inc(I); + end; +end; + +function GetDynamicMethod(AClass: TClass; Index: Integer): Pointer; +asm + call System.@FindDynaClass +end; + +procedure DebugLog(const S: string); +begin + OutputDebugString(PChar('VCLFixPack patch installed: ' + S)); +end; +{ ---------------------------------------------------------------------------- } + + + +{ ---------------------------------------------------------------------------- } +{ QC #68647: Infinite loop in Forms.GetNonToolWindowPopupParent } +{$IFDEF GetNonToolWindowPopupParentFix} +{ +Forms.pas.4712: Result := GetParent(WndParent); <= must be "Result := GetParent(Result);" +56 push esi <= must be "push ebx" +E8181EFAFF call GetParent +8BD8 mov ebx,eax +Forms.pas.4711: while (Result <> 0) and (GetWindowLong(Result, GWL_EXSTYLE) and WS_EX_TOOLWINDOW = WS_EX_TOOLWINDOW) do +85DB test ebx,ebx +} +procedure FixGetNonToolWindowPopupParent; +var + P: PAnsiChar; + Len: Integer; + Buf: Byte; + n: Cardinal; +begin + P := GetActualAddr(@TOpenCustomForm.CreateParams); + Dec(P); + Len := 0; + while Len < 112 do + begin + if //(P[0] = #$56) and // push esi + (P[1] = #$E8) and // call GetParent + (P[6] = #$8B) and (P[7] = #$D8) and // mov ebx,eax + (P[8] = #$85) and (P[9] = #$DB) then // test ebx,ebx + begin + if P[0] = #$56 then // push esi + begin + Buf := $53; // push esi (WndParent) => push ebx (Result) + WriteProcessMemory(GetCurrentProcess, P, @Buf, 1, n); + DebugLog('GetNonToolWindowPopupParentFix'); + Exit; + end else + if P[0] = #$53 then // push ebx => already fixed, abort search + Exit; + end; + Dec(P); + Inc(Len); + end; +end; +{$ENDIF GetNonToolWindowPopupParentFix} +{ ---------------------------------------------------------------------------- } + + + +{ ---------------------------------------------------------------------------- } +{ QC #68740: Lost focus after TOpenDialog when MainFormOnTaskBar is set } +{$IFDEF TaskModalDialogFix} +var + DialogsTaskModalDialogHook: TXRedirCode; + DialogsTaskModalDialogCritSect: TRTLCriticalSection; + +function TCommonDialog_TaskModalDialog(Instance: TObject; DialogFunc: Pointer; var DialogData): Bool; +var + FocusWindow: HWND; + Func: function(Instance: TObject; DialogFunc: Pointer; var DialogData): Bool; +begin + EnterCriticalSection(DialogsTaskModalDialogCritSect); + try + UnhookProc(@TOpenCommonDialog.TaskModalDialog, DialogsTaskModalDialogHook); + try + FocusWindow := GetFocus; + try + Func := @TOpenCommonDialog.TaskModalDialog; + Result := Func(Instance, DialogFunc, DialogData); + finally + SetFocus(FocusWindow); + end; + finally + HookProc(@TOpenCommonDialog.TaskModalDialog, @TCommonDialog_TaskModalDialog, DialogsTaskModalDialogHook); + end; + finally + LeaveCriticalSection(DialogsTaskModalDialogCritSect); + end; +end; + +procedure InitTaskModalDialogFix; +begin + InitializeCriticalSection(DialogsTaskModalDialogCritSect); + HookProc(@TOpenCommonDialog.TaskModalDialog, @TCommonDialog_TaskModalDialog, DialogsTaskModalDialogHook); + DebugLog('FixTaskModalDialog'); +end; + +procedure FiniTaskModalDialogFix; +begin + UnhookProc(@TOpenCommonDialog.TaskModalDialog, DialogsTaskModalDialogHook); + DeleteCriticalSection(DialogsTaskModalDialogCritSect); +end; +{$ENDIF TaskModalDialogFix} +{ ---------------------------------------------------------------------------- } + + + +{ ---------------------------------------------------------------------------- } +{ QC #59963: Closing non-modal forms after a task switch can deactivate the application } +{$IFDEF AppDeActivateZOrderFix} +{ +// Release +0047B1FD F6401C08 test byte ptr [eax+$1c],$08 +0047B201 7522 jnz $0047b225 << replace by $90 $90 => nop nop +0047B203 8BC3 mov eax,ebx +0047B205 8B150C824500 mov edx,[$0045820c] +0047B20B E85C8BF8FF call @IsClass +0047B210 84C0 test al,al +0047B212 7509 jnz $0047b21d +0047B214 83BBCC01000000 cmp dword ptr [ebx+$000001cc],$00 +0047B21B 7408 jz $0047b225 +0047B21D 8B45FC mov eax,[ebp-$04] +0047B220 E8DFFDFFFF call TWinControl.UpdateShowing +0047B225 5E pop esi +0047B226 5B pop ebx +0047B227 59 pop ecx +0047B228 5D pop ebp +0047B229 C3 ret +} + +procedure InitAppDeActivateZOrderFix; +var + P: PAnsiChar; + Len: Integer; + Buf: Word; + n: Cardinal; +begin + P := GetActualAddr(@TWinControl.UpdateControlState); + Len := 0; + while Len < 200 do + begin + if (P[0] = #$F6) and (P[1] = #$40) and (P[2] = #$1C) and (P[3] = #$08) and // test byte ptr [eax+$1c],$08 + (P[4] = #$75) and (P[5] = #$22) and // jnz +$22 + (P[6] = #$8B) and (P[7] = #$C3) and // mov eax,ebx + (P[8] = #$8B) then // mov edx,[TCustomForm] + begin + Buf := $9090; // nop nop + WriteProcessMemory(GetCurrentProcess, @P[4], @Buf, SizeOf(Buf), n); + DebugLog('AppDeActivateZOrderFix'); + Exit; + end + else + if (P[0] = #$59) and (P[0] = #$5D) and (P[1] = #$C3) then // function end reached + Break; + + Inc(P); + Inc(Len); + end; +end; + +procedure FiniAppDeActivateZOrderFix; +begin +end; + +{$ENDIF AppDeActivateZOrderFix} +{ ---------------------------------------------------------------------------- } + + + +{ ---------------------------------------------------------------------------- } +{ QC #66892: Closing forms deactivates the application (missing "stdcall") } +{$IFDEF HideStackTrashingFix} +var + FindTopMostWindowHook: TXRedirCode; + FindTopMostWindowProc: Pointer; + +{ +Forms.pas.1880: begin +53 push ebx +Forms.pas.1881: TaskActiveWindow := ActiveWindow; +A3D8784700 mov [$004778d8],eax +Forms.pas.1882: TaskFirstWindow := 0; +33C0 xor eax,eax +A3DC784700 mov [$004778dc],eax +Forms.pas.1883: TaskFirstTopMost := 0; +33C0 xor eax,eax +A3E0784700 mov [$004778e0],eax +Forms.pas.1884: EnumProc := @DoFindWindow; +BBBCB64500 mov ebx,$0045b6bc +Forms.pas.1885: EnumThreadWindows(GetCurrentThreadID, EnumProc, 0); +6A00 push $00 +53 push ebx +E8DBCBFAFF call GetCurrentThreadId +50 push eax +E821D1FAFF call EnumThreadWindows + +} +function GetAddrOfFindTopMostWindow: Pointer; +var + P: PByte; + Len: Integer; + NeedsFix: Boolean; +begin + NeedsFix := False; + P := GetActualAddr(@EnableTaskWindows); + Len := 0; + while Len < 2048 do + begin + { DoFindWindow "begin" } + if (P[0] = $53) and + (P[1] = $8B) and (P[2] = $D8) then + begin + if (P[3] = $3B) and (P[4] = $1D) and + (P[9] = $74) and ({Release}(P[10] = $4D) or {Debug}(P[10] = $4F)) then + begin + NeedsFix := True; + end + end + else { FindTopMostWindow "begin", Release & Debug } + if (P[0] = $53) and + (P[1] = $A3) then + begin + if (P[6] = $33) and (P[7] = $C0) and + (P[8] = $A3) and + (P[13] = $33) and (P[14] = $C0) and + (P[15] = $A3) and + (P[20] = $BB) and + (P[25] = $6A) and (P[26] = $00) and + (P[27] = $53) then + begin + Result := nil; + if NeedsFix then + Result := P; + Exit; + end; + end; + Inc(P); + Inc(Len); + end; + Result := nil; +end; +{$ENDIF HideStackTrashingFix} +{ ---------------------------------------------------------------------------- } + + + +{ ---------------------------------------------------------------------------- } +{ Control resize bugfix for kernel stack overflow due to WH_CALLWNDPROC hook } +{$IFDEF ControlResizeFix} +{2008-05-25: + - Added code to detect endless resizing controls. + - Added experimental OPTIMIZED_RESIZE_REDRAW option for faster form resizing } +var + WinControl_AlignControlProc, WinControl_WMSize, WinControl_SetBounds: Pointer; + BackupAlignControl, BackupWMSize, BackupSetBounds: TXRedirCode; + +type + TControlResizeFixWinControl = class(TWinControl) + private + procedure AlignControl(AControl: TControl); + procedure HandleAlignControls(AControl: TControl; var R: TRect); + protected + procedure WMSize(var Message: TWMSize); message WM_SIZE; + procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); override; + end; + + {$IFNDEF DELPHI2005_UP} + TD5WinControlPrivate = class(TControl) + public + FAlignLevel: Word; + end; + {$ENDIF ~DELPHI2005_UP} + +threadvar + AlignControlList: TList; + +procedure TControlResizeFixWinControl.SetBounds(ALeft, ATop, AWidth, AHeight: Integer); +var + WindowPlacement: TWindowPlacement; +begin + if (ALeft <> Left) or (ATop <> Top) or + (AWidth <> Width) or (AHeight <> Height) then + begin + if HandleAllocated and not IsIconic(WindowHandle) then + begin + if AlignControlList <> nil then + SetWindowPos(WindowHandle, 0, ALeft, ATop, AWidth, AHeight, + SWP_NOZORDER or SWP_NOACTIVATE or SWP_DEFERERASE) + else + SetWindowPos(WindowHandle, 0, ALeft, ATop, AWidth, AHeight, + SWP_NOZORDER or SWP_NOACTIVATE); + end + else + begin + PInteger(@Left)^ := ALeft; + PInteger(@Top)^ := ATop; + PInteger(@Width)^ := AWidth; + PInteger(@Height)^ := AHeight; + if HandleAllocated then + begin + WindowPlacement.Length := SizeOf(WindowPlacement); + GetWindowPlacement(WindowHandle, @WindowPlacement); + WindowPlacement.rcNormalPosition := BoundsRect; + SetWindowPlacement(WindowHandle, @WindowPlacement); + end; + end; + UpdateBoundsRect(Rect(Left, Top, Left + Width, Top + Height)); + RequestAlign; + end; +end; + +procedure TControlResizeFixWinControl.HandleAlignControls(AControl: TControl; var R: TRect); + + function AlignWork: Boolean; + var + I: Integer; + begin + Result := True; + for I := ControlCount - 1 downto 0 do + if (Controls[I].Align <> alNone) or + (Controls[I].Anchors <> [akLeft, akTop]) then + Exit; + Result := False; + end; + +var + OwnAlignControlList, TempAlignControlList: TList; + ResizeList: TList; + ResizeCounts: TList; // of Integer + Ctrl: TWinControl; + I, Index: Integer; +begin + if AlignWork then + begin + OwnAlignControlList := nil; + try + if AlignControlList = nil then + begin + OwnAlignControlList := TList.Create; + AlignControlList := OwnAlignControlList; + end; + + AlignControls(AControl, R); + + if (OwnAlignControlList <> nil) and (OwnAlignControlList.Count > 0) then + begin + { Convert recursion into an iteration to prevent the kernel stack overflow } + ResizeList := TList.Create; + ResizeCounts := TList.Create; + try + { The controls in the OwnAlignControlList must be added to ResizeList in reverse order. + Otherwise the OnResize events aren't fired in correct order. } + AlignControlList := TList.Create; + try + repeat + try + for I := OwnAlignControlList.Count - 1 downto 0 do + begin + Ctrl := TWinControl(OwnAlignControlList[I]); + Index := ResizeList.IndexOf(Ctrl); + + { An endless resizing component was stopped by the kernel stack overflow bug. + So we must catch this condition to prevent an endless loop. } + if (Index = -1) or (Integer(ResizeCounts[Index]) < 30) then + begin + Ctrl.Realign; + + if Index <> -1 then + ResizeCounts[Index] := Pointer(Integer(ResizeCounts[Index]) + 1); + ResizeCounts.Add(Pointer(0)); // keep index in sync + ResizeList.Add(Ctrl); + end + else if Index <> -1 then + begin + {$WARNINGS OFF} + if DebugHook <> 0 then + {$WARNINGS ON} + OutputDebugString(PChar(Format('The component "%s" of class %s has an endless resize loop', [Ctrl.Name, Ctrl.ClassName]))); + end; + end; + finally + OwnAlignControlList.Clear; + + { Switch lists } + TempAlignControlList := AlignControlList; + AlignControlList := OwnAlignControlList; + OwnAlignControlList := TempAlignControlList; + end; + until (OwnAlignControlList.Count = 0) {or EndlessResizeDetection}; + finally + { Let another AlignControlList handle any alignment that comes from the + OnResize method. } + FreeAndNil(AlignControlList); + end; + + { Fire Resize events } + for I := ResizeList.Count - 1 downto 0 do + begin + Ctrl := TWinControl(ResizeList[I]); + if not (csLoading in Ctrl.ComponentState) then + TOpenWinControl(Ctrl).Resize; + end; + finally + ResizeCounts.Free; + ResizeList.Free; + end; + {$IFDEF OPTIMIZED_RESIZE_REDRAW} + Invalidate; + {$ENDIF OPTIMIZED_RESIZE_REDRAW} + end; + finally + if OwnAlignControlList <> nil then + begin + AlignControlList := nil; + FreeAndNil(OwnAlignControlList); + end; + end; + end + else + AlignControls(AControl, R); +end; + +procedure TControlResizeFixWinControl.WMSize(var Message: TWMSize); +begin + {$IFDEF DELPHI2005_UP} + UpdateBounds; + {$IFDEF DELPHI2006_UP} + UpdateExplicitBounds; + {$ENDIF DELPHI2006_UP} + {$ELSE} + if HandleAllocated then + Perform(WM_MOVE, 0, LPARAM(Left and $0000ffff) or (Top shl 16)); // calls the private UpdateBounds + {$ENDIF DELPHI2005_UP} + DefaultHandler(Message); + if AlignControlList <> nil then + begin + if AlignControlList.IndexOf(Self) = -1 then + AlignControlList.Add(Self) + end + else + begin + Realign; + if not (csLoading in ComponentState) then + Resize; + end; +end; + +procedure TControlResizeFixWinControl.AlignControl(AControl: TControl); +var + Rect: TRect; +begin + if not HandleAllocated or (csDestroying in ComponentState) then + Exit; + {$IFDEF DELPHI2005_UP} + if AlignDisabled then + {$ELSE} + if TD5WinControlPrivate(Self).FAlignLevel <> 0 then + {$ENDIF DELPHI2005_UP} + ControlState := ControlState + [csAlignmentNeeded] + else + begin + DisableAlign; + try + Rect := GetClientRect; + + HandleAlignControls(AControl, Rect); + finally + ControlState := ControlState - [csAlignmentNeeded]; + EnableAlign; + end; + end; +end; + +function GetAlignControlProc: Pointer; +var + P: PByteArray; + Offset: Integer; + MemInfo: TMemoryBasicInformation; +begin + P := GetActualAddr(@TWinControl.Realign); + if (P <> nil) and (VirtualQuery(P, MemInfo, SizeOf(MemInfo)) = SizeOf(MemInfo)) then + begin + if (MemInfo.AllocationProtect <> PAGE_NOACCESS) then + begin + Offset := 0; + while Offset < $40 do + begin + if ((P[0] = $33) and (P[1] = $D2)) or // xor edx,edx + ((P[0] = $31) and (P[1] = $D2)) then // xor edx,edx + begin + if P[2] = $E8 then // call TWinControl.AlignControl + begin + Inc(PByte(P), 2); + Result := PAnsiChar(P) + 5 + PInteger(PAnsiChar(P) + 1)^; + Exit; + end + else if (P[2] = $8B) and (P[3] = $45) and (P[4] = $FC) and // mov eax,[ebp-$04] + (P[5] = $E8) then // call TWinControl.AlignControl + begin + Inc(PByte(P), 5); + Result := PAnsiChar(P) + 5 + PInteger(PAnsiChar(P) + 1)^; + Exit; + end; + end; + Inc(PByte(P)); + Inc(Offset); + end; + end; + end; + Result := nil; +end; + +procedure InitControlResizeFix; +begin + WinControl_AlignControlProc := GetAlignControlProc; + WinControl_WMSize := GetDynamicMethod(TWinControl, WM_SIZE); + WinControl_SetBounds := @TOpenWinControl.SetBounds; + if (WinControl_AlignControlProc <> nil) and (WinControl_WMSize <> nil) then + begin + DebugLog('ControlResizeFix'); + { Redirect the original function to the bug fixed version } + HookProc(WinControl_AlignControlProc, @TControlResizeFixWinControl.AlignControl, BackupAlignControl); + HookProc(WinControl_WMSize, @TControlResizeFixWinControl.WMSize, BackupWMSize); + {$IFDEF OPTIMIZED_RESIZE_REDRAW} + HookProc(WinControl_SetBounds, @TControlResizeFixWinControl.SetBounds, BackupSetBounds); + {$ENDIF OPTIMIZED_RESIZE_REDRAW} + end; +end; + +procedure FiniControlResizeFix; +begin + { Restore the original function } + UnhookProc(WinControl_AlignControlProc, BackupAlignControl); + UnhookProc(WinControl_WMSize, BackupWMSize); + UnhookProc(WinControl_SetBounds, BackupSetBounds); +end; + +{$ENDIF ControlResizeFix} +{ ---------------------------------------------------------------------------- } + + + +{ ---------------------------------------------------------------------------- } +{ QC #59654: TActionList access already released FActions field } +{$IFDEF ActionListAVFix} +var + HookTCustomActionList_Notification: TXRedirCode; + +type + TCustomActionListFix = class(TCustomActionList) + protected + procedure Notification(AComponent: TComponent; Operation: TOperation); override; + end; + +procedure TCustomActionListFix.Notification(AComponent: TComponent; Operation: TOperation); +var + P: procedure(Instance: TComponent; AComponent: TComponent; Operation: TOperation); +begin + { inherited: } + P := @TOpenComponent.Notification; + P(Self, AComponent, Operation); + + if Operation = opRemove then + begin + if AComponent = Images then + Images := nil + else if {<*}not (csDestroying in ComponentState) and{*>} (AComponent is TContainedAction) then + RemoveAction(TContainedAction(AComponent)); + end; +end; + +procedure InitActionListAVFix; +begin + DebugLog('ActionListAVFix'); + HookProc(@TOpenCustomActionList.Notification, @TCustomActionListFix.Notification, HookTCustomActionList_Notification); +end; + +procedure FiniActionListAVFix; +begin + UnhookProc(@TOpenCustomActionList.Notification, HookTCustomActionList_Notification); +end; +{$ENDIF ActionListAVFix} +{ ---------------------------------------------------------------------------- } + + + +{ ---------------------------------------------------------------------------- } +{ QC #54286 : Parent-PopupMenu overrides standard context menu (edit, memo, combobox, ...) } +{$IFDEF ContextMenuFix} +type + TContextMenuFixWinControl = class(TWinControl) + public + procedure DefaultHandler(var Message); override; + end; + +var + RM_GetObjectInstance: DWORD; + BackupDefaultHandler: TXRedirCode; + +procedure TContextMenuFixWinControl.DefaultHandler(var Message); +type + TDefHandler = procedure(Self: TControl; var Message); +begin + if HandleAllocated then + begin + with TMessage(Message) do + begin + { Here was the WM_CONTEXTMENU Code that is not necessary because + DefWndProc will send this message to the parent control. } + + { Keep the odd bahavior for grids because everybody seems to be used to it. } + if (Msg = WM_CONTEXTMENU) and (Parent <> nil) and (Parent is TCustomGrid) then + begin + Result := Parent.Perform(Msg, WParam, LParam); + if Result <> 0 then Exit; + end; + + case Msg of + WM_CTLCOLORMSGBOX..WM_CTLCOLORSTATIC: + Result := SendMessage(LParam, CN_BASE + Msg, WParam, LParam); + CN_CTLCOLORMSGBOX..CN_CTLCOLORSTATIC: + begin + SetTextColor(WParam, ColorToRGB(Font.Color)); + SetBkColor(WParam, ColorToRGB(Brush.Color)); + Result := Brush.Handle; + end; + else + if Msg = RM_GetObjectInstance then + Result := LRESULT(Self) + else + Result := CallWindowProc(DefWndProc, Handle, Msg, WParam, LParam); + end; + if Msg = WM_SETTEXT then + SendDockNotification(Msg, WParam, LParam); + end; + end + else + //inherited DefaultHandler(Message); + TDefHandler(@TControl.DefaultHandler)(Self, Message); +end; + +procedure InitContextMenuFix; +var + HInst: HMODULE; +begin + HInst := FindHInstance(Pointer(TWinControl)); // get the HInstance of the module that contains Controls.pas + RM_GetObjectInstance := RegisterWindowMessage(PChar(Format('ControlOfs%.8X%.8X', [HInst, GetCurrentThreadId]))); + + DebugLog('ContextMenuFix'); + { Redirect the original function to the bug fixed version } + HookProc(@TWinControl.DefaultHandler, @TContextMenuFixWinControl.DefaultHandler, BackupDefaultHandler); +end; + +procedure FiniContextMenuFix; +begin + UnhookProc(@TWinControl.DefaultHandler, BackupDefaultHandler); +end; +{$ENDIF ContextMenuFix} +{ ---------------------------------------------------------------------------- } + + + +{ ---------------------------------------------------------------------------- } +{ QC #50097: ObjAuto access violation on XEON (Data Execution Prevention bug) } +{$IFDEF ObjAutoDEPFix} + +type + PParameterInfos = ^TParameterInfos; + TParameterInfos = array[0..255] of ^PTypeInfo; + + TMethodHandlerInstance = class + protected + MethodHandler: IMethodHandler; + TypeData: PTypeData; + ParamInfos: PParameterInfos; + Return: array[0..2] of Byte; + ParamOffsets: array of Word; + end; + +{ procedure TMethodHandlerInstance.RegisterStub; + 50 push eax + 51 push ecx + 52 push edx + 89E2 mov edx,esp + E866FDFFFF call TMethodHandlerInstance.Handler + 89442404 mov [esp+$04],eax + 58 pop eax + 58 pop eax + 59 pop ecx + 8D4910 lea ecx,[ecx+$10] + FFE1 jmp ecx + C3 ret } + +type + PRegisterStubRec = ^TRegisterStubRec; + TRegisterStubRec = packed record + Push3Reg: array[0..2] of Byte; + MovEdxEsp: Word; + CallHandler: array[0..4] of Byte; + SaveRetValue: LongWord; + Pop3Reg: array[0..2] of Byte; + case Integer of + 0: (LeaEcxEcx: Word; + Off: Byte; + JmpEcx: Word); + 1: (Jmp: Byte; + Offset: TJumpOfs); + end; + +var + RegisterStub: PRegisterStubRec; + OrgCode: array[0..4] of Byte; + +procedure RegisterStubRet; +asm + lea ecx, [ecx].TMethodHandlerInstance.Return + cmp byte ptr [ecx], $C2 + jne @@Leave + movzx ecx, word ptr [ecx+$01] + add ecx, 3 + and ecx, $FC + add esp, ecx + + { restore return address } + neg ecx + mov ecx, [esp+ecx] // load return address + push ecx // restore return address +@@Leave: +end; + +procedure InitObjAutoDEPFix; +var + Func: TTypeData; + M: TMethod; + OldProtect: Cardinal; +begin + FillChar(Func, SizeOf(Func), 0); + Func.MethodKind := mkProcedure; + Func.ParamCount := 0; + M := CreateMethodPointer(nil, @Func); + RegisterStub := M.Code; + ReleaseMethodPointer(M); + + if (RegisterStub.Push3Reg[0] = $50) and + (RegisterStub.Push3Reg[1] = $51) and + (RegisterStub.Push3Reg[2] = $52) and + (RegisterStub.MovEdxEsp = $E289) and + (RegisterStub.SaveRetValue = $04244489) and + (RegisterStub.Pop3Reg[0] = $58) and + (RegisterStub.Pop3Reg[1] = $58) and + (RegisterStub.Pop3Reg[2] = $59) and + (RegisterStub.LeaEcxEcx = $498D) and + (RegisterStub.JmpEcx = $E1FF) then + begin + if VirtualProtect(@RegisterStub.Jmp, SizeOf(TXRedirCode), PAGE_EXECUTE_READWRITE, OldProtect) then + begin + DebugLog('ObjAutoDEPFix'); + Move(RegisterStub.Jmp, OrgCode[0], SizeOf(OrgCode)); + RegisterStub.Jmp := $E9; + RegisterStub.Offset := TJumpOfs(@RegisterStubRet) - (TJumpOfs(@RegisterStub.Jmp) + SizeOf(TXRedirCode)); + VirtualProtect(@RegisterStub.Jmp, SizeOf(TXRedirCode), OldProtect, OldProtect); + FlushInstructionCache(GetCurrentProcess, @RegisterStub.Jmp, SizeOf(TXRedirCode)); + end; + end + else + RegisterStub := nil; +end; + +procedure FiniObjAutoDEPFix; +var + OldProtect: Cardinal; +begin + if RegisterStub <> nil then + begin + if VirtualProtect(@RegisterStub.Jmp, SizeOf(TXRedirCode), PAGE_EXECUTE_READWRITE, OldProtect) then + begin + Move(OrgCode[0], RegisterStub.Jmp, SizeOf(OrgCode)); + VirtualProtect(@RegisterStub.Jmp, SizeOf(TXRedirCode), OldProtect, OldProtect); + FlushInstructionCache(GetCurrentProcess, @RegisterStub.Jmp, SizeOf(TXRedirCode)); + end; + end; +end; +{$ENDIF ObjAutoDEPFix} +{ ---------------------------------------------------------------------------- } + + + +{ ---------------------------------------------------------------------------- } +{ Classes.MakeObjectInstance memory leak fix } +{$IFDEF MkObjInstLeakFix} +{ Limitation: + The memory is only released if there is no dangling object instance in the + memory block. } +var + UnRegisterModuleClassesHook: TXRedirCode; + MkObjInstLeakHooked: Boolean; + +procedure HookedUnRegisterModuleClasses(Module: HMODULE); + forward; + + +const + InstanceCount = 313; + PageSize = 4096; + +{ Object instance management } + +type + PPObjectInstance = ^PObjectInstance; + PObjectInstance = ^TObjectInstance; + TObjectInstance = packed record + Code: Byte; + Offset: Integer; + case Integer of + 0: (Next: PObjectInstance); + 1: (Method: TWndMethod); + end; + + PPInstanceBlock = ^PInstanceBlock; + PInstanceBlock = ^TInstanceBlock; + TInstanceBlock = packed record + Next: PInstanceBlock; + Code: array[1..2] of Byte; + WndProcPtr: Pointer; + Instances: array[0..InstanceCount] of TObjectInstance; + end; + +(* + procedure FreeObjectInstance(ObjectInstance: Pointer); + begin + if ObjectInstance <> nil then + begin + // 85C0 test eax,eax + // 740E jz $0041b2f6 + PObjectInstance(ObjectInstance)^.Next := InstFreeList; + // 8B15E8594600 mov edx,[$004659e8] + // 895005 mov [eax+$05],edx + InstFreeList := ObjectInstance; + // A3E8594600 mov [$004659e8],eax + end; + end; + // C3 ret +*) + +type + TParamRec = packed record + Op: Word; + Off: Byte; + end; + + PFreeObjInstRec = ^TFreeObjInstRec; + TFreeObjInstRec = packed record + TestEaxEax: Word; + Jz1: Word; + AssignToNext: packed record + MovEdx: Word; + Address: Cardinal; + MovEaxOffEdx: Word; + Off: Byte; + end; + AssignToInstFreeList: packed record + MovMemToEax: Byte; + Address: Cardinal; + end; + Ret: Byte; + end; + + PFreeObjInstNoOptRec = ^TFreeObjInstNoOptRec; + TFreeObjInstNoOptRec = packed record + PushEbp: Byte; // $55 + MovEbpEsp: Word; // $8B EC + PushEcx: Byte; // $51 + MovOffReg: TParamRec; // $89 45 FC + Cmp: packed record + Op: Word; // $83 7D + Off: Byte; // $FC + Value: Byte; // $00 + end; + Jz1: Word; // $74 14 + LoadParam1: TParamRec; // $8B 45 FC + AssignToNext: packed record + MovEdx: Word; // $8B 15 + Address: Cardinal; + end; + end; + +procedure GetObjectInstancePointers(out InstFreeListP: PPObjectInstance; out InstBlockListP: PPInstanceBlock); +var + FreeObjInst: PFreeObjInstRec; + FreeObjInstNoOpt: PFreeObjInstNoOptRec; +begin + InstFreeListP := nil; + InstBlockListP := nil; + FreeObjInst := GetActualAddr(@Classes.FreeObjectInstance); + FreeObjInstNoOpt := Pointer(FreeObjInst); + + if (FreeObjInst.TestEaxEax = $C085) and (FreeObjInst.Jz1 = $0E74) and + (FreeObjInst.AssignToNext.MovEdx = $158B) and + (FreeObjInst.AssignToNext.MovEaxOffEdx = $5089) and (FreeObjInst.AssignToNext.Off = $05) and + (FreeObjInst.AssignToInstFreeList.MovMemToEax = $A3) and + (FreeObjInst.Ret = $C3) then + begin + InstFreeListP := PPObjectInstance(FreeObjInst.AssignToNext.Address); + InstBlockListP := PPInstanceBlock(FreeObjInst.AssignToNext.Address - SizeOf(Pointer)); + end + else + if (FreeObjInstNoOpt.PushEbp = $55) and (FreeObjInstNoOpt.MovEbpEsp = $EC8B) and + (FreeObjInstNoOpt.PushEcx = $51) and + (FreeObjInstNoOpt.MovOffReg.Op = $4589) and (FreeObjInstNoOpt.MovOffReg.Off = $FC) and + (FreeObjInstNoOpt.Cmp.Op = $7D83) and (FreeObjInstNoOpt.Cmp.Off = $FC) and (FreeObjInstNoOpt.Cmp.Value = $00) and + (FreeObjInstNoOpt.Jz1 = $1474) and + (FreeObjInstNoOpt.LoadParam1.Op = $458B) and (FreeObjInstNoOpt.LoadParam1.Off = $FC) and + (FreeObjInstNoOpt.AssignToNext.MovEdx = $158B) then + begin + InstFreeListP := PPObjectInstance(FreeObjInstNoOpt.AssignToNext.Address); + InstBlockListP := PPInstanceBlock(FreeObjInstNoOpt.AssignToNext.Address - SizeOf(Pointer)); + end; +end; + +procedure CleanupInstFreeList(var InstFreeList: PObjectInstance; BlockStart, BlockEnd: PAnsiChar); +var + Prev, Next, Item: PObjectInstance; +begin + Prev := nil; + Item := InstFreeList; + while Item <> nil do + begin + Next := Item.Next; + if (PAnsiChar(Item) >= BlockStart) and (PAnsiChar(Item) <= BlockEnd) then + begin + Item := Prev; + if Prev = nil then + InstFreeList := Next + else + Prev.Next := Next; + end; + Prev := Item; + Item := Next; + end; +end; + +function CalcFreeInstBlockItems(Item: PObjectInstance; Block: PInstanceBlock): Integer; +var + I: Integer; +begin + Result := 0; + while Item <> nil do + begin + for I := High(Block.Instances) downto 0 do + begin + if @Block.Instances[I] = Item then + begin + Inc(Result); + Break; + end; + end; + Item := Item.Next; + end; +end; + +procedure ReleaseObjectInstanceBlocks; +var + InstFreeListP: PPObjectInstance; + InstBlockListP: PPInstanceBlock; + NextBlock, Block, PrevBlock: PInstanceBlock; + FreeCount: Integer; +begin + GetObjectInstancePointers(InstFreeListP, InstBlockListP); + if (InstFreeListP = nil) or (InstBlockListP = nil) then + begin + OutputDebugString('Cannot apply Classes.FreeObjectInstance memory leak-fix'); + Exit; + end; + + Block := InstBlockListP^; + PrevBlock := nil; + while Block <> nil do + begin + NextBlock := Block.Next; + + { Obtain the number of free items in the InstanceBlock } + FreeCount := CalcFreeInstBlockItems(InstFreeListP^, Block); + + { Release memory if the InstanceBlock contains only "free" items } + if FreeCount = Length(Block.Instances) then + begin + { Remove all InstFreeList items that refer to the InstanceBlock } + CleanupInstFreeList(InstFreeListP^, PAnsiChar(Block), PAnsiChar(Block) + SizeOf(TInstanceBlock) - 1); + + VirtualFree(Block, 0, MEM_RELEASE); + + Block := PrevBlock; + if PrevBlock = nil then + InstBlockListP^ := NextBlock + else + PrevBlock.Next := NextBlock; + end; + + { Next InstanceBlock } + PrevBlock := Block; + Block := NextBlock; + end; + + { Maybe the finalization was executed before the Application object was destroyed. + Classes.Finalization calls UnRegisterModuleClasses(). We hook into that function + to execute our finalization in the Classes.Finalization. } + if (InstBlockListP^ <> nil) and not MkObjInstLeakHooked and + (FindHInstance(GetActualAddr(@UnRegisterModuleClasses)) = HInstance) then + begin + MkObjInstLeakHooked := True; + HookProc(@UnRegisterModuleClasses, @HookedUnRegisterModuleClasses, UnRegisterModuleClassesHook); + end; +end; + +procedure HookedUnRegisterModuleClasses(Module: HMODULE); +begin + UnhookProc(@UnRegisterModuleClasses, UnRegisterModuleClassesHook); + try + UnRegisterModuleClasses(Module); + if Module = HInstance then + ReleaseObjectInstanceBlocks; + finally + HookProc(@UnRegisterModuleClasses, @HookedUnRegisterModuleClasses, UnRegisterModuleClassesHook); + end; +end; +{$ENDIF MkObjInstLeakFix} +{ ---------------------------------------------------------------------------- } + + + +{ ---------------------------------------------------------------------------- } +{ QC #58938: MainForm Minimize minimizes in the background } +{$IFDEF AppMinimizeFix} +var + AppMinimizePatchAddress: ^TJumpOfs; + OrgAppMinimizeSetActiveWindowOffset: TJumpOfs; + +function ApplicationMinimizeSetActiveWindow(hWnd: HWND): HWND; stdcall; +begin + if Application.MainFormOnTaskBar then + Result := GetActiveWindow + else + Result := SetActiveWindow(hWnd); +end; + +{ +Forms.pas.7850: NormalizeTopMosts; +8BC3 mov eax,ebx +E84AF4FFFF call TApplication.NormalizeTopMosts +Forms.pas.7851: SetActiveWindow(FHandle); // WM_ACTIVATEAPP can set AppIconic to False +8B4330 mov eax,[ebx+$30] +50 push eax +E87D1AFAFF call SetActiveWindow +Forms.pas.7852: AppIconic := True; // Set AppIconic here just to be safe +C605A8EC4B0001 mov byte ptr [$004beca8],$01 +} + +procedure InitAppMinimizeFix; +var + P: PAnsiChar; + Len: Integer; + NewOffset: TJumpOfs; + n: Cardinal; +begin + P := GetActualAddr(@TApplication.Minimize); + Len := 0; + while Len < 64 do + begin + if (P[0] = #$8B) and (P[1] = #$C3) and // mov eax,ebx + (P[2] = #$E8) and // call TApplication.NormalizeTopMosts + (P[7] = #$8B) and (P[8] = #$43) and (P[9] = #$30) and // mov eax,[ebx+$30] + (P[10] = #$50) and // push eax + (P[11] = #$E8) and // call SetActiveWindow + (P[16] = #$C6) and (P[17] = #$05) and (P[22] = #$01) then // mov byte ptr [$004beca8],$01 + begin + DebugLog('AppMinimizeFix'); + AppMinimizePatchAddress := Pointer(P + 12); + OrgAppMinimizeSetActiveWindowOffset := AppMinimizePatchAddress^; + NewOffset := PAnsiChar(@ApplicationMinimizeSetActiveWindow) - PAnsiChar(AppMinimizePatchAddress) - SizeOf(TJumpOfs); + WriteProcessMemory(GetCurrentProcess, AppMinimizePatchAddress, @NewOffset, SizeOf(NewOffset), n); + Exit; + end; + Inc(P); + Inc(Len); + end; +end; + +procedure FiniAppMinimizeFix; +var + n: Cardinal; +begin + if AppMinimizePatchAddress <> nil then + WriteProcessMemory(GetCurrentProcess, AppMinimizePatchAddress, @OrgAppMinimizeSetActiveWindowOffset, SizeOf(TJumpOfs), n); +end; +{$ENDIF AppMinimizeFix} +{ ---------------------------------------------------------------------------- } + + + +{ ---------------------------------------------------------------------------- } +{ QC #64484: SysUtils.Abort can raise an AccessViolation } +{$IFDEF SysUtilsAbortFix} +var + SysUtilsAbortHook: TXRedirCode; + +procedure SysUtilsAbort; +{ No dependency on EBP register } + + procedure ThrowException(ReturnAddr: Pointer); + begin + raise EAbort.CreateRes(@SOperationAborted) at ReturnAddr; + end; + +asm + pop eax + jmp ThrowException +end; + +procedure InitSysUtilsAbortFix; +begin + DebugLog('SysUtilsAbortFix'); + HookProc(@SysUtils.Abort, @SysUtilsAbort, SysUtilsAbortHook); +end; + +procedure FiniSysUtilsAbortFix; +begin + UnhookProc(@SysUtils.Abort, SysUtilsAbortHook); +end; +{$ENDIF SysUtilsAbortFix} +{ ---------------------------------------------------------------------------- } + + + +{ ---------------------------------------------------------------------------- } +{ QC #58939: No taskbar button when starting from shelllink with Show=Minimized } +{$IFDEF CmdShowMinimizeFix} +var + ApplicationRunHook: TXRedirCode; + InitialMainFormState: ^TWindowState; + +procedure ApplicationRun(App: TApplication); +begin + UnhookProc(@TApplication.Run, ApplicationRunHook); + ApplicationRunHook.Jump := 0; + {$WARNINGS OFF} + if (CmdShow = SW_SHOWMINNOACTIVE) and (InitialMainFormState <> nil) then + {$WARNINGS ON} + InitialMainFormState^ := wsMinimized; + App.Run; +end; + +{ +Forms.pas.8214: if (FMainForm.FWindowState = wsMinimized) or (InitialMainFormState = wsMinimized) then +8B45FC mov eax,[ebp-$04] +8B4044 mov eax,[eax+$44] +80B87302000001 cmp byte ptr [eax+$00000273],$01 +7409 jz $004669a5 +803DC8784B0001 cmp byte ptr [$004b78c8],$01 +751E jnz $004669c3 +Forms.pas.8216: Minimize; +8B45FC mov eax,[ebp-$04] +E8FFF5FFFF call TApplication.Minimize +Forms.pas.8217: if (InitialMainFormState = wsMinimized) then +803DC8784B0001 cmp byte ptr [$004b78c8],$01 +7514 jnz $004669ca +} + +function FindInitialMainFormState: Pointer; +var + P: PAnsiChar; + Len: Integer; +begin + P := GetActualAddr(@TApplication.Run); + Len := 0; + while Len < 128 do + begin + if (P[0] = #$74) and (P[1] = #$09) and // jz $004669a5 + (P[2] = #$80) and (P[3] = #$3D) and (P[8] = #$01) and // cmp byte ptr [$004b78c8],$01 + (P[9] = #$75) and (P[10] = #$1E) and // jnz $004669c3 + (P[11] = #$8B) and (P[12] = #$45) and (P[13] = #$FC) then // mov eax,[ebp-$04] + begin + DebugLog('CmdShowMinimizeFix'); + Result := PPointer(P + 4)^; + Exit; + end; + Inc(P); + Inc(Len); + end; + Result := nil; +end; + +procedure InitCmdShowMinimizeFix; +begin + InitialMainFormState := FindInitialMainFormState; + if InitialMainFormState <> nil then + HookProc(@TApplication.Run, @ApplicationRun, ApplicationRunHook); +end; + +procedure FiniCmdShowMinimizeFix; +begin + UnhookProc(@TApplication.Run, ApplicationRunHook); +end; + +{$ENDIF CmdShowMinimizeFix} +{ ---------------------------------------------------------------------------- } + + + +{ ---------------------------------------------------------------------------- } +{ QC #35001: MDIChild's active control focus is not set correctly } +{$IFDEF MDIChildFocusFix} +var + CustomFormFocusControlHook: TXRedirCode; + +procedure CustomFormFocusControl(Self: TOpenCustomForm; Control: TWinControl); +var + WasActive: Boolean; +begin + with Self do + begin + WasActive := Active; + + { Synchronize Windows's focus with VCL's focus } + if WasActive and (FormStyle = fsMDIChild) and (Control <> nil) and (Control = ActiveControl) and + Control.HandleAllocated and not Control.Focused then + begin + Windows.SetFocus(Control.Handle); + end; + + ActiveControl := Control; + if not WasActive then + SetFocus; + end; +end; + +procedure InitMDIChildFocusFix; +begin + DebugLog('MDIChildFocusFix'); + HookProc(@TOpenCustomForm.FocusControl, @CustomFormFocusControl, CustomFormFocusControlHook); +end; + +procedure FiniMDIChildFocusFix; +begin + UnhookProc(@TOpenCustomForm.FocusControl, CustomFormFocusControlHook); +end; +{$ENDIF MDIChildFocusFix} +{ ---------------------------------------------------------------------------- } + + + +{ ---------------------------------------------------------------------------- } +{ QC #56252: TPageControl flickers a lot with active theming } +{ QC #68730: TLabel is not painted on a themed, double-buffered TTabSheet in Vista } +{ TLabels on TTabSheet are not painted (themes) if a TWinControl like TMemo is on the TTabSheet (TWinControl.PaintWindow bug) } +{$IFDEF PageControlPaintingFix} +type + TFlickerlessPageControl = class(TPageControl) + procedure NewWndProc(var Msg: TMessage); + end; + + TFlickerlessTabSheet = class(TTabSheet) + protected + procedure NewCreateParams(var Params: TCreateParams); + procedure WMPrintClient(var Message: TWMPrintClient); message WM_PRINTCLIENT; + procedure WMEraseBkgnd(var Message: TWMEraseBkgnd); message WM_ERASEBKGND; + + procedure NewWndProc(var Msg: TMessage); + end; + +{ TFlickerlessPageControl } + +procedure TFlickerlessPageControl.NewWndProc(var Msg: TMessage); +begin + case Msg.Msg of + WM_SIZE: + begin + inherited WndProc(Msg); + { Update the page control immediately to prevent flicker } + if ThemeServices.ThemesEnabled then + RedrawWindow(Handle, nil, 0, RDW_UPDATENOW or RDW_ERASE); + end; + else + inherited WndProc(Msg); // "inherited" is required here, otherwise this would be an endless recursion + end; +end; + +{ TFlickerlessTabSheet } + +procedure TFlickerlessTabSheet.WMEraseBkgnd(var Message: TWMEraseBkgnd); +var + R: TRect; +begin + if (PageControl <> nil) and (PageControl.Style = tsTabs) and ThemeServices.ThemesEnabled then + begin + { Paint the TabSheet background without filling the gray color from the parent. + And fill it in WM_ERASEBKGND where it belongs instead of WM_PRINTCLIENT. } + GetWindowRect(Handle, R); + OffsetRect(R, -R.Left, -R.Top); + ThemeServices.DrawElement(Message.DC, ThemeServices.GetElementDetails(ttBody), R); + Message.Result := 1; + end + else + inherited; +end; + +procedure TFlickerlessTabSheet.WMPrintClient(var Message: TWMPrintClient); +begin + { Fixes "Labels are not painted if themes are enabled" bug } + + { Description see QC #3850 / RAID #159864, same as in TFrame. + + A better solution would be to change TWinControl.PaintWindow to + use WM_PRINTCLIENT if it is called from a WM_PRINTCLIENT handler + and to use WM_PAINT only if it is called from a WM_PAINT handler. } + + DefaultHandler(Message); + PaintControls(Message.DC, nil); +end; + +procedure TFlickerlessTabSheet.NewCreateParams(var Params: TCreateParams); +begin + inherited CreateParams(Params); + if ThemeServices.ThemesEnabled then + Params.WindowClass.style := Params.WindowClass.style and not (CS_VREDRAW or CS_HREDRAW); +end; + +procedure TFlickerlessTabSheet.NewWndProc(var Msg: TMessage); +begin + { Instead of hooking the DMT we simply call the replacement handlers directly } + case Msg.Msg of + WM_ERASEBKGND: + WMEraseBkgnd(TWMEraseBkgnd(Msg)); + WM_PRINTCLIENT: + WMPrintClient(TWMPrintClient(Msg)); + WM_SIZE: + begin + inherited WndProc(Msg); + if ThemeServices.ThemesEnabled then + RedrawWindow(Handle, nil, 0, RDW_UPDATENOW or RDW_INVALIDATE or RDW_ERASE or RDW_ALLCHILDREN); + end; + else + inherited WndProc(Msg); // "inherited" is required here, otherwise this would be an endless recursion + end; +end; + +procedure InitPageControlPaintingFix; +begin + DebugLog('PageControlPaintingFix'); + ReplaceVmtField(TTabSheet, @TFlickerlessTabSheet.WndProc, @TFlickerlessTabSheet.NewWndProc); + ReplaceVmtField(TTabSheet, @TFlickerlessTabSheet.CreateParams, @TFlickerlessTabSheet.NewCreateParams); + ReplaceVmtField(TPageControl, @TFlickerlessPageControl.WndProc, @TFlickerlessPageControl.NewWndProc); +end; + +procedure FiniPageControlPaintingFix; +begin + ReplaceVmtField(TTabSheet, @TFlickerlessTabSheet.NewWndProc, @TFlickerlessTabSheet.WndProc); + ReplaceVmtField(TTabSheet, @TFlickerlessTabSheet.NewCreateParams, @TFlickerlessTabSheet.CreateParams); + ReplaceVmtField(TPageControl, @TFlickerlessPageControl.NewWndProc, @TFlickerlessPageControl.WndProc); +end; +{$ENDIF PageControlPaintingFix} +{---------------------------------------------------------------------------} + + + +{---------------------------------------------------------------------------} +{$IFDEF GridFlickerFix} +type + {$IFDEF VCLFIXPACK_DB_SUPPORT} + TFlickerlessDBGrid = class(TDBGrid) + protected + procedure NewWndProc(var Msg: TMessage); + end; + {$ENDIF VCLFIXPACK_DB_SUPPORT} + + TFlickerlessStringGrid = class(TStringGrid) + protected + procedure NewWndProc(var Msg: TMessage); + end; + + TFlickerlessDrawGrid = class(TDrawGrid) + protected + procedure NewWndProc(var Msg: TMessage); + end; + +{ TFlickerlessDBGrid } + +procedure GridWMEraseBkgnd(Grid: TCustomGrid; var Message: TWMEraseBkgnd); +var + R: TRect; + Size: TSize; +begin + { Fill the area between the two scroll bars. } + Size.cx := GetSystemMetrics(SM_CXVSCROLL); + Size.cy := GetSystemMetrics(SM_CYHSCROLL); + if {Grid.BiDiMode <> bdLeftToRight}Grid.UseRightToLeftAlignment then + R := Bounds(0, Grid.Height - Size.cy, Size.cx, Size.cy) + else + R := Bounds(Grid.Width - Size.cx, Grid.Height - Size.cy, Size.cx, Size.cy); + FillRect(Message.DC, R, Grid.Brush.Handle); + Message.Result := 1; +end; + +{$IFDEF VCLFIXPACK_DB_SUPPORT} +procedure TFlickerlessDBGrid.NewWndProc(var Msg: TMessage); +{var + Rect: TRect;} +begin + if Msg.Msg = WM_ERASEBKGND then + GridWMEraseBkgnd(Self, TWMEraseBkgnd(Msg)) + else if Msg.Msg = WM_PAINT then + begin + {if UseRightToLeftAlignment then + Begin + Rect.TopLeft := ClientRect.TopLeft; + Rect.BottomRight := ClientRect.BottomRight; + InvalidateRect(Handle, @Rect, False); + end;} + inherited WndProc(Msg); + end + else + inherited WndProc(Msg); +end; +{$ENDIF VCLFIXPACK_DB_SUPPORT} + +procedure TFlickerlessStringGrid.NewWndProc(var Msg: TMessage); +begin + if Msg.Msg = WM_ERASEBKGND then + GridWMEraseBkgnd(Self, TWMEraseBkgnd(Msg)) + else + inherited WndProc(Msg); +end; + +procedure TFlickerlessDrawGrid.NewWndProc(var Msg: TMessage); +begin + if Msg.Msg = WM_ERASEBKGND then + GridWMEraseBkgnd(Self, TWMEraseBkgnd(Msg)) + else + inherited WndProc(Msg); +end; + +procedure InitGridFlickerFix; +begin + DebugLog('GridFlickerFix'); + {$IFDEF VCLFIXPACK_DB_SUPPORT} + ReplaceVmtField(TDBGrid, @TFlickerlessDBGrid.WndProc, @TFlickerlessDBGrid.NewWndProc); + {$ENDIF VCLFIXPACK_DB_SUPPORT} + ReplaceVmtField(TStringGrid, @TFlickerlessStringGrid.WndProc, @TFlickerlessStringGrid.NewWndProc); + ReplaceVmtField(TDrawGrid, @TFlickerlessDrawGrid.WndProc, @TFlickerlessDrawGrid.NewWndProc); +end; + +procedure FiniGridFlickerFix; +begin + {$IFDEF VCLFIXPACK_DB_SUPPORT} + ReplaceVmtField(TDBGrid, @TFlickerlessDBGrid.NewWndProc, @TFlickerlessDBGrid.WndProc); + {$ENDIF VCLFIXPACK_DB_SUPPORT} + ReplaceVmtField(TStringGrid, @TFlickerlessStringGrid.NewWndProc, @TFlickerlessStringGrid.WndProc); + ReplaceVmtField(TDrawGrid, @TFlickerlessDrawGrid.NewWndProc, @TFlickerlessDrawGrid.WndProc); +end; +{$ENDIF GridFlickerFix} +{---------------------------------------------------------------------------} + + + +{ ---------------------------------------------------------------------------- } +{ QC #69112: TSpeedButton is painted as a black rectangle on a double buffered panel on a sheet of glass. } +{$IFDEF SpeedButtonGlassFix} +type + TGlassableSpeedButton = class(TSpeedButton) + procedure NewWndProc(var Msg: TMessage); + end; + +function ControlInGlassPaint(AControl: TControl): Boolean; +var + Parent: TWinControl; +begin + Result := csGlassPaint in AControl.ControlState; + if Result then + begin + { Control could be on a double buffered control. In that case the csGlassPaint flag + shouldn't be set. } + Parent := AControl.Parent; + while (Parent <> nil) and not Parent.DoubleBuffered and not (Parent is TCustomForm) do + Parent := Parent.Parent; + Result := (Parent = nil) or not Parent.DoubleBuffered or (Parent is TCustomForm); + end; +end; + +{ TGlassableSpeedButton } + +procedure TGlassableSpeedButton.NewWndProc(var Msg: TMessage); +begin + if (Msg.Msg = WM_PAINT) and (csGlassPaint in ControlState) and + not ControlInGlassPaint(Self) then + begin + ControlState := ControlState - [csGlassPaint]; + try + inherited WndProc(Msg); + finally + ControlState := ControlState + [csGlassPaint]; + end; + end + else + inherited WndProc(Msg); +end; + +procedure InitSpeedButtonGlassFix; +begin + DebugLog('SpeedButtonGlassFix'); + ReplaceVmtField(TSpeedButton, @TGlassableSpeedButton.WndProc, @TGlassableSpeedButton.NewWndProc); + {$IFDEF VCLFIXPACK_DB_SUPPORT} + ReplaceVmtField(TNavButton, @TGlassableSpeedButton.WndProc, @TGlassableSpeedButton.NewWndProc); + {$ENDIF VCLFIXPACK_DB_SUPPORT} +end; + +procedure FiniSpeedButtonGlassFix; +begin + ReplaceVmtField(TSpeedButton, @TGlassableSpeedButton.NewWndProc, @TGlassableSpeedButton.WndProc); + {$IFDEF VCLFIXPACK_DB_SUPPORT} + ReplaceVmtField(TNavButton, @TGlassableSpeedButton.NewWndProc, @TGlassableSpeedButton.WndProc); + {$ENDIF VCLFIXPACK_DB_SUPPORT} +end; +{$ENDIF SpeedButtonGlassFix} +{ ---------------------------------------------------------------------------- } + + + +{ ---------------------------------------------------------------------------- } +{ QC #69294: TProgressBar fails with PBS_MARQUEE and disabled Themes } +{$IFDEF VistaProgressBarMarqueeFix} +type + TVistaProgressBarMarqueeFix = class(TProgressBar) + protected + procedure SetMarqueeInterval(Value: Integer); + procedure CreateParamsFix(var Params: TCreateParams); + procedure CreateWndFix; + end; + +var + SetMarqueeIntervalHook: TXRedirCode; + SetMarqueeInterval: Pointer; + +procedure TVistaProgressBarMarqueeFix.SetMarqueeInterval(Value: Integer); +var + MarqueeEnabled: Boolean; +begin + PInteger(@MarqueeInterval)^ := Value; + if (Style = pbstMarquee) and HandleAllocated then + begin + MarqueeEnabled := Style = pbstMarquee; + SendMessage(Handle, PBM_SETMARQUEE, WPARAM(MarqueeEnabled), LPARAM(MarqueeInterval)); + end; +end; + +procedure TVistaProgressBarMarqueeFix.CreateParamsFix(var Params: TCreateParams); +begin + inherited CreateParams(Params); + if Style = pbstMarquee then + Params.Style := Params.Style or PBS_MARQUEE; +end; + +procedure TVistaProgressBarMarqueeFix.CreateWndFix; +var + MarqueeEnabled: Boolean; +begin + inherited CreateWnd; + MarqueeEnabled := Style = pbstMarquee; + SendMessage(Handle, PBM_SETMARQUEE, WPARAM(THandle(MarqueeEnabled)), LPARAM(MarqueeInterval)); +end; + +procedure InitVistaProgressBarMarqueeFix; +var + PropInfo: PPropInfo; +begin + if CheckWin32Version(6, 0) then + begin + ReplaceVmtField(TProgressBar, @TVistaProgressBarMarqueeFix.CreateParams, @TVistaProgressBarMarqueeFix.CreateParamsFix); + ReplaceVmtField(TProgressBar, @TVistaProgressBarMarqueeFix.CreateWnd, @TVistaProgressBarMarqueeFix.CreateWndFix); + PropInfo := GetPropInfo(TProgressBar, 'MarqueeInterval'); + if (PropInfo <> nil) and (PropInfo.SetProc <> nil) and + not (Byte(DWORD_PTR(PropInfo.SetProc) shr 24) in [$FF, $FE]) then + begin + SetMarqueeInterval := PropInfo.SetProc; + HookProc(SetMarqueeInterval, @TVistaProgressBarMarqueeFix.SetMarqueeInterval, SetMarqueeIntervalHook); + end; + DebugLog('VistaProgressBarMarqueeFix'); + end; +end; + +procedure FiniVistaProgressBarMarqueeFix; +begin + if CheckWin32Version(6, 0) then + begin + ReplaceVmtField(TProgressBar, @TVistaProgressBarMarqueeFix.CreateParamsFix, @TVistaProgressBarMarqueeFix.CreateParams); + ReplaceVmtField(TProgressBar, @TVistaProgressBarMarqueeFix.CreateWndFix, @TVistaProgressBarMarqueeFix.CreateWnd); + UnhookProc(SetMarqueeInterval, SetMarqueeIntervalHook); + end; +end; +{$ENDIF VistaProgressBarMarqueeFix} +{ ---------------------------------------------------------------------------- } + + +{ ---------------------------------------------------------------------------- } +{ QC #52439: DbNavigator paints incorrectly when flat=true in themed mode } +{$IFDEF DBNavigatorFix} +type + TOpenDBNavigator = class(TDBNavigator) + public + procedure SetFlatFixed(Value: Boolean); + end; + +var + DBNavigatorSetFlat: Pointer; + DBNavigatorSetFlatHook: TXRedirCode; + +procedure TOpenDBNavigator.SetFlatFixed(Value: Boolean); +var + I: TNavigateBtn; +begin + if Flat <> Value then + begin + Boolean(Pointer(@Flat)^) := Value; // FFlat := Value + for I := Low(Buttons) to High(Buttons) do + Buttons[I].Flat := Value; + if Flat then + ControlStyle := ControlStyle - [csOpaque] + else + ControlStyle := ControlStyle + [csOpaque]; + end; +end; + +procedure InitDBNavigatorFix; +var + Info: PPropInfo; +begin + Info := GetPropInfo(TDBNavigator, 'Flat'); + if (Info <> nil) and (Info.SetProc <> nil) then + begin + DBNavigatorSetFlat := Info.SetProc; + HookProc(DBNavigatorSetFlat, @TOpenDBNavigator.SetFlatFixed, DBNavigatorSetFlatHook); + DebugLog('DBNavigatorFix'); + end; +end; + +procedure FiniDBNavigatorFix; +begin + UnhookProc(DBNavigatorSetFlat, DBNavigatorSetFlatHook); +end; +{$ENDIF DBNavigatorFix} +{ ---------------------------------------------------------------------------- } + + +{ ---------------------------------------------------------------------------- } +{ QC #70441: ToUpper and ToLower modify a Const argument + QC #69752: ToUpper and ToLower with NullString } +{$IFDEF CharacterFix} +var + TCharacter_ToLowerHook, TCharacter_ToUpperHook: TXRedirCode; + +function TCharacter_ToLower(const S: string): string; +var + Len: Integer; +begin + if S <> '' then + begin + Len := Length(S); + SetLength(Result, Len); + if LCMapString(GetThreadLocale, LCMAP_LOWERCASE, PChar(S), Len, PChar(Result), Len) = 0 then + RaiseLastOSError; + end + else + Result := S; +end; + +function TCharacter_ToUpper(const S: string): string; +var + Len: Integer; +begin + if S <> '' then + begin + Len := Length(S); + SetLength(Result, Len); + if LCMapString(GetThreadLocale, LCMAP_UPPERCASE, PChar(S), Len, PChar(Result), Len) = 0 then + RaiseLastOSError; + end + else + Result := S; +end; + +procedure InitCharacterFix; +begin + DebugLog('CharacterFix'); + HookProc(@TCharacter.ToLower, @TCharacter_ToLower, TCharacter_ToLowerHook); + HookProc(@TCharacter.ToUpper, @TCharacter_ToUpper, TCharacter_ToUpperHook); +end; + +procedure FiniCharacterFix; +begin + UnhookProc(@TCharacter.ToLower, TCharacter_ToLowerHook); + UnhookProc(@TCharacter.ToUpper, TCharacter_ToUpperHook); +end; +{$ENDIF CharacterFix} +{ ---------------------------------------------------------------------------- } + + +{ ---------------------------------------------------------------------------- } +{ QC #69875: StringBuilder.Replace is incorrect + + a much faster implementation } +{$IFDEF StringBuilderFix} +var + TStringBuilder_ReplaceHook: TXRedirCode; + +type + TStringBuilderFix = class(TStringBuilder) + public + function Replace(const OldValue, NewValue: string; StartIndex, Count: Integer): TStringBuilder; + end; + +function TStringBuilderFix.Replace(const OldValue, NewValue: string; + StartIndex, Count: Integer): TStringBuilder; + + procedure OffsetChars(Data: PChar; Offset: Integer; EndP: PChar); inline; + begin + Move(Data^, PChar(Data + Offset)^, (EndP - Data) * SizeOf(Char)); + end; + +var + P, EndP, F: PChar; + FirstChar: Char; + OldValueLen, NewValueLen, DataLen: Integer; + FoundCount, I: Integer; + StackStart: Pointer; + StackP: ^PChar; + SizeChange: Integer; + NewLength: Integer; +begin + { Bounds checking } + DataLen := System.Length(FData); + if StartIndex + Count >= DataLen then + Count := DataLen - StartIndex; + + if (Count <= 0) or (StartIndex < 0) or (StartIndex >= DataLen) or (OldValue = '') then + Exit(Self); + + OldValueLen := System.Length(OldValue); + NewValueLen := System.Length(NewValue); + SizeChange := NewValueLen - OldValueLen; + + { Start stack position-buffer } + asm mov StackStart, esp end; + + FoundCount := 0; + FirstChar := PChar(Pointer(OldValue))^; + + P := PChar(@FData[StartIndex]); + while Count > 0 do + begin + while (Count > 0) and (P^ <> FirstChar) do + begin + Inc(P); + Dec(Count); + end; + + if Count > 0 then + begin + if (OldValueLen = 1) or (StrLComp(P + 1, PChar(Pointer(OldValue)) + 1, OldValueLen - 1) = 0) then + begin + if SizeChange = 0 then + begin + { Replace inplace } + Move(NewValue[1], P^, OldValueLen * SizeOf(Char)); + end + else + begin + { Save position to the stack and proceed } + asm push P end; + Inc(FoundCount); + end; + Inc(P, OldValueLen - 1); + Dec(Count, OldValueLen - 1); + end; + end; + Inc(P); + Dec(Count); + end; + + NewLength := FLength + SizeChange * FoundCount; + if FoundCount > 0 then { Expand } + begin + { Offset the data from right to left } + if SizeChange > 0 then + begin + { Resize FData to the new length } + F := @FData[0]; + if NewLength > System.Length(FData) then + SetLength(FData, NewLength); + EndP := PChar(@FData[FLength - 1]) + 1; + + while FoundCount > 0 do + begin + asm pop P end; { take the last position from the stack } + P := PChar(@FData[0]) + (P - F); + { Offset all chars right to the OldValue by FoundCount*SizeChange } + OffsetChars(P + OldValueLen, FoundCount * SizeChange, EndP); + EndP := P; + { Put the NewValue into the buffer } + Move(NewValue[1], PChar(P + (FoundCount - 1) * SizeChange)^, NewValueLen * SizeOf(Char)); + Dec(FoundCount); + end; + end + else { SizeChange < 0, Shrink } + begin + { Offset the data from left to right } + + { Push the terminator to the stack; the loop uses the "next position" as EndP } + EndP := PChar(@FData[FLength - 1]) + 1; + asm push EndP end; + + StackP := Pointer(INT_PTR(StackStart) - SizeOf(Pointer)); + I := 0; + while FoundCount > 0 do + begin + P := StackP^; + Dec(StackP); + EndP := StackP^; + { Offset all chars right to the OldValue by FoundCount*SizeChange } + OffsetChars(@P[OldValueLen], (I + 1) * SizeChange, EndP); + { Put the NewValue into the buffer } + if NewValue <> '' then + Move(NewValue[1], P[I * SizeChange], NewValueLen * SizeOf(Char)); + Inc(I); + Dec(FoundCount); + end; + + {if NewLength > System.Length(FData) then + SetLength(FData, NewLength);} + end; + end; + + { Release stack memory } + asm mov esp, StackStart end; + + FLength := NewLength; + Result := Self; +end; + +procedure InitStringBuilderFix; +var + Proc: function(const OldValue: string; const NewValue: string; StartIndex: Integer; Count: Integer): TStringBuilder of object; +begin + DebugLog('StringBuilderFix'); + Proc := TStringBuilder(nil).Replace; + HookProc(TMethod(Proc).Code, @TStringBuilderFix.Replace, TStringBuilder_ReplaceHook); +end; + +procedure FiniStringBuilderFix; +var + Proc: function(const OldValue: string; const NewValue: string; StartIndex: Integer; Count: Integer): TStringBuilder of object; +begin + Proc := TStringBuilder(nil).Replace; + UnhookProc(TMethod(Proc).Code, TStringBuilder_ReplaceHook); +end; +{$ENDIF StringBuilderFix} +{ ---------------------------------------------------------------------------- } + + +{ ---------------------------------------------------------------------------- } +{ Workaround for Windows Vista CompareString bug } +{$IFDEF VistaCompareStringFix} + +{**************************************************************************************************} +{ } +{ CompareString Fix } +{ } +{ The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); } +{ you may not use this file except in compliance with the License. You may obtain a copy of the } +{ License at http://www.mozilla.org/MPL/ } +{ } +{ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF } +{ ANY KIND, either express or implied. See the License for the specific language governing rights } +{ and limitations under the License. } +{ } +{ The Original Code is CompareStringFix.pas. } +{ } +{ The Initial Developer of the Original Code is Andreas Hausladen. } +{ Portions created by Andreas Hausladen are Copyright (C) 2008 Andreas Hausladen. } +{ All Rights Reserved. } +{ } +{ Contributor(s): } +{ Apr 18, 2008 A. Garrels - When parameter Locale or user default LCID matches (German-Germany) } +{ and sort order equals SORT_GERMAN_PHONE_BOOK the patch must not be applied. } +{ } +{**************************************************************************************************} +{ This unit contains a workaround for a Windows Vista bug. } +{ The / ($DC/$FC) and the UE/ue are treated equal in all locales, but they aren't equal. There } +{ was a bugfix intended for Vista SP1 but it was removed before SP1 was released. } +{ Windows 2008 Server still includes this bugfix but Vista will never get this bugfix. } +{ Microsoft: new versions are for correctness; service packs are for consistency and compatibility } +{**************************************************************************************************} + +function _CompareStringA(Locale: LCID; dwCmpFlags: DWORD; lpString1: PAnsiChar; + cchCount1: Integer; lpString2: PAnsiChar; cchCount2: Integer): Integer; stdcall; + external kernel32 name 'CompareStringA'; +function _CompareStringW(Locale: LCID; dwCmpFlags: DWORD; lpString1: PWideChar; + cchCount1: Integer; lpString2: PWideChar; cchCount2: Integer): Integer; stdcall; + external kernel32 name 'CompareStringW'; + +var + CompareStringAProc: function(Locale: LCID; dwCmpFlags: DWORD; lpString1: PAnsiChar; + cchCount1: Integer; lpString2: PAnsiChar; cchCount2: Integer): Integer; stdcall; + CompareStringWProc: function(Locale: LCID; dwCmpFlags: DWORD; lpString1: PWideChar; + cchCount1: Integer; lpString2: PWideChar; cchCount2: Integer): Integer; stdcall; + CompareStringFixRequired: Boolean; + +const + MaxCompareStringFixBuffer = 2047; +var + CachedUserDefaultLCID: LCID = 0; + CachedSystemDefaultLCID: LCID = 0; + +function IsGermanPhonebookSortOrder(ALcid: LCID): Boolean; {$IF CompilerVersion >= 18.0} inline; {$IFEND} +begin + if ALcid <> 0 then + begin + if ALcid = LOCALE_USER_DEFAULT then + begin + if CachedUserDefaultLCID = 0 then + CachedUserDefaultLCID := GetUserDefaultLCID(); + ALcid := CachedUserDefaultLCID; + end + else if ALcid = LOCALE_SYSTEM_DEFAULT then + begin + if CachedSystemDefaultLCID = 0 then + CachedSystemDefaultLCID := GetSystemDefaultLCID(); + ALcid := CachedSystemDefaultLCID; + end; + + Result := (Word(ALcid) = $0407) and (ALcid shr 16 and $0F = SORT_GERMAN_PHONE_BOOK); + end + else + Result := False; +end; + +function GetUmlautFixedString(P: PWideChar; var Count: Integer; Buf: PWideChar): PWideChar; +const + CombiningDiaresis = $308; +var + ValidCount, EndIndex, EndCount, I, CollationCount, Size, Cnt: Integer; + Ch: WideChar; + Source, Dest: PWideChar; +begin + ValidCount := -1; + CollationCount := 0; + EndIndex := -1; + Source := P; + + { Test for the affected code points } + if Count = -1 then + begin + Ch := Source^; + while Ch <> #0 do + begin + while Ch <> #0 do + begin + case Ch of + #$00DC, #$00FC: + Break; + end; + Inc(Source); + Ch := Source^; + end; + + if Ch <> #0 then + begin + I := Source - P; + if ValidCount = -1 then + ValidCount := I; + EndIndex := I + 1; + Inc(CollationCount); + Inc(Source); + Ch := Source^; + end; + end; + + Count := Source - P; + end + else + begin + Cnt := Count; + while Cnt > 0 do + begin + while Cnt <> 0 do + begin + case Source^ of + #$00DC, #$00FC: + Break; + end; + Inc(Source); + Dec(Cnt); + end; + + if Cnt <> 0 then + begin + I := Source - P; + if ValidCount = -1 then + ValidCount := I; + EndIndex := I + 1; + Inc(CollationCount); + Inc(Source); + Dec(Cnt); + end; + end; + end; + + if CollationCount > 0 then + begin + { Re-encode the string with combining diaresis } + + EndCount := Count - EndIndex; + if EndCount < 4 then + begin + { Move() isn't faster if there are too less code points to copy } + EndIndex := Count; + EndCount := 0; + end; + + { Allocate enough memory or use the stack based buffer if the string fits + into it. } + Inc(Count, CollationCount); + Size := (Count + 1) * SizeOf(WideChar); + if Count < MaxCompareStringFixBuffer then + Result := Buf + else + GetMem(Result, Size); + + { Copy untouched code points } + if ValidCount >= 4 then + Move(P^, Result^, ValidCount * SizeOf(WideChar)) + else + ValidCount := 0; + + { Copy code points and replace "" ($DC) and "" ($FC) with "U"/"u" + combining diaresis } + Source := P + ValidCount; + Dest := Result + ValidCount; + for I := ValidCount to EndIndex - 1 do + begin + Ch := Source^; + case Ch of + #$00DC: + begin + PLongint(Dest)^ := (CombiningDiaresis shl 16) or $55; + Inc(Dest); + end; + #$00FC: + begin + PLongint(Dest)^ := (CombiningDiaresis shl 16) or $75; + Inc(Dest); + end; + else + Dest^ := Ch; + end; + Inc(Dest); + Inc(Source); + end; + + { Copy remaining untouched code points } + if EndCount > 0 then + begin + Move(Source^, Dest^, EndCount * SizeOf(WideChar)); + Inc(Dest, EndCount); + end; + Dest^ := #0; + end + else + Result := P; +end; + +function CompareStringW(Locale: LCID; dwCmpFlags: DWORD; lpString1: PWideChar; + cchCount1: Integer; lpString2: PWideChar; cchCount2: Integer): Integer; stdcall; +var + String1, String2: PWideChar; + // Stack allocation is much faster than heap allocation + Buf1, Buf2: array[0..MaxCompareStringFixBuffer] of WideChar; +begin + if (lpString1 <> nil) and (lpString2 <> nil) and (cchCount1 <> 0) and (cchCount2 <> 0) and + (lpString1 <> lpString2) and + not IsGermanPhonebookSortOrder(Locale) then + begin + String1 := GetUmlautFixedString(lpString1, cchCount1, Buf1); + String2 := GetUmlautFixedString(lpString2, cchCount2, Buf2); + + Result := CompareStringWProc(Locale, dwCmpFlags, String1, cchCount1, String2, cchCount2); + + if (String1 <> lpString1) and (String1 <> @Buf1[0]) then + FreeMem(String1); + if (String2 <> lpString2) and (String2 <> @Buf2[0]) then + FreeMem(String2); + end + else + Result := CompareStringWProc(Locale, dwCmpFlags, lpString1, cchCount1, lpString2, cchCount2); +end; + +function CompareStringA(Locale: LCID; dwCmpFlags: DWORD; lpString1: PAnsiChar; + cchCount1: Integer; lpString2: PAnsiChar; cchCount2: Integer): Integer; stdcall; + + function ContainsProblematicUmlaut(P: PAnsiChar; Count: Integer): Boolean; + begin + Result := True; + while Count > 0 do + begin + if P^ in [#$DC, #$FC] then + Exit; + Inc(P); + Dec(Count); + end; + Result := False; + end; + +var + String1, String2: WideString; +begin + if (lpString1 <> nil) and (lpString2 <> nil) and (cchCount1 <> 0) and (cchCount2 <> 0) and + (lpString1 <> lpString2) and + not IsGermanPhonebookSortOrder(Locale) then + begin + case GetACP of + {1250,} 1252{, 1254, 1257, 1258}: + begin + if cchCount1 = -1 then + cchCount1 := StrLen(lpString1); + if cchCount2 = -1 then + cchCount2 := StrLen(lpString2); + + if ContainsProblematicUmlaut(lpString1, cchCount1) or + ContainsProblematicUmlaut(lpString2, cchCount2) then + begin + SetString(String1, lpString1, cchCount1); + SetString(String2, lpString2, cchCount2); + Result := CompareStringW(Locale, dwCmpFlags, PWideChar(String1), Length(String1), + PWideChar(String2), Length(String2)); + Exit; + end; + end; + end; + end; + Result := CompareStringAProc(Locale, dwCmpFlags, lpString1, cchCount1, lpString2, cchCount2); +end; + +type + TJumpItem = packed record + Code: TXRedirCode; + Jump: Byte; + Offset: Integer; + end; + PJumpTable = ^TJumpTable; + TJumpTable = array[0..1] of TJumpItem; + +var + JumpTable: PJumpTable; + +procedure PatchWinAPI(Proc, Dest: Pointer; var JumpItem: TJumpItem); +var + n: DWORD; + Code: TXRedirCode; +begin + Proc := GetActualAddr(Proc); + Assert(Proc <> nil); + + if ReadProcessMemory(GetCurrentProcess, Proc, @JumpItem.Code, SizeOf(JumpItem.Code), n) then + begin + JumpItem.Jump := $E9; + JumpItem.Offset := Integer(Proc) - Integer(@JumpItem) - SizeOf(JumpItem.Code); + + Code.Jump := $E9; + Code.Offset := Integer(Dest) - Integer(Proc) - SizeOf(Code); + + WriteProcessMemory(GetCurrentProcess, Proc, @Code, SizeOf(Code), n); + end; +end; + +procedure UnpatchWinAPI(Proc: Pointer; const JumpItem: TJumpItem); +var + n: Cardinal; +begin + if JumpItem.Code.Jump <> 0 then + begin + Proc := GetActualAddr(Proc); + Assert(Proc <> nil); + + WriteProcessMemory(GetCurrentProcess, Proc, @JumpItem.Code, SizeOf(JumpItem.Code), n); + end; +end; + +procedure InitCompareStringFix; +const + CSTR_EQUAL = 2; +begin + { Only Vista is affected, Windows 2008 Server is not affected } + if (Win32Platform = VER_PLATFORM_WIN32_NT) and + (Win32MajorVersion = 6) and (Win32MinorVersion = 0) then + begin + CompareStringFixRequired := _CompareStringW(LOCALE_USER_DEFAULT, NORM_IGNORECASE, #$FC, 1, 'ue', 2) = CSTR_EQUAL; + if CompareStringFixRequired then + begin + OutputDebugStringW('Installing CompareString workaround for Windows Vista'); + JumpTable := VirtualAlloc(nil, SizeOf(TJumpTable), MEM_COMMIT, PAGE_EXECUTE_READWRITE); + + PatchWinAPI(@_CompareStringA, @CompareStringA, JumpTable[0]); + CompareStringAProc := @JumpTable[0]; + PatchWinAPI(@_CompareStringW, @CompareStringW, JumpTable[1]); + CompareStringWProc := @JumpTable[1]; + end; + end; +end; + +procedure FiniCompareStringFix; +begin + if CompareStringFixRequired then + begin + UnpatchWinAPI(@_CompareStringA, JumpTable[0]); + UnpatchWinAPI(@_CompareStringW, JumpTable[1]); + + VirtualFree(JumpTable, 0, MEM_RELEASE); + JumpTable := nil; + end; +end; +{$ENDIF VistaCompareStringFix} +{ ---------------------------------------------------------------------------- } + + +initialization + {$IFDEF GetNonToolWindowPopupParentFix} + FixGetNonToolWindowPopupParent; + {$ENDIF GetNonToolWindowPopupParentFix} + + {$IFDEF TaskModalDialogFix} + InitTaskModalDialogFix; + {$ENDIF TaskModalDialogFix} + + {$IFDEF AppDeActivateZOrderFix} + InitAppDeActivateZOrderFix; + {$ENDIF AppDeActivateZOrderFix} + + {$IFDEF HideStackTrashingFix} + FindTopMostWindowProc := GetAddrOfFindTopMostWindow; + if FindTopMostWindowProc <> nil then + begin + DebugLog('HideStackTrashingFix'); + HookProc(FindTopMostWindowProc, @FindTopMostWindow, FindTopMostWindowHook); + end; + {$ENDIF HideStackTrashingFix} + + {$IFDEF ControlResizeFix} + InitControlResizeFix; + {$ENDIF ControlResizeFix} + + {$IFDEF ActionListAVFix} + InitActionListAVFix; + {$ENDIF ActionListAVFix} + + {$IFDEF ContextMenuFix} + InitContextMenuFix; + {$ENDIF ContextMenuFix} + + {$IFDEF ObjAutoDEPFix} + InitObjAutoDEPFix; + {$ENDIF ObjAutoDEPFix} + + {$IFDEF AppMinimizeFix} + InitAppMinimizeFix; + {$ENDIF AppMinimizeFix} + + {$IFDEF SysUtilsAbortFix} + InitSysUtilsAbortFix; + {$ENDIF SysUtilsAbortFix} + + {$IFDEF CmdShowMinimizeFix} + InitCmdShowMinimizeFix; + {$ENDIF CmdShowMinimizeFix} + + {$IFDEF MDIChildFocusFix} + InitMDIChildFocusFix; + {$ENDIF MDIChildFocusFix} + + {$IFDEF PageControlPaintingFix} + InitPageControlPaintingFix; + {$ENDIF PageControlPaintingFix} + + {$IFDEF GridFlickerFix} + InitGridFlickerFix; + {$ENDIF GridFlickerFix} + + {$IFDEF SpeedButtonGlassFix} + InitSpeedButtonGlassFix; + {$ENDIF SpeedButtonGlassFix} + + {$IFDEF VistaProgressBarMarqueeFix} + InitVistaProgressBarMarqueeFix; + {$ENDIF VistaProgressBarMarqueeFix} + + {$IFDEF DBNavigatorFix} + InitDBNavigatorFix; + {$ENDIF DBNavigatorFix} + + {$IFDEF CharacterFix} + InitCharacterFix; + {$ENDIF CharacterFix} + + {$IFDEF StringBuilderFix} + InitStringBuilderFix; + {$ENDIF StringBuilderFix} + + {$IFDEF VistaCompareStringFix} + InitCompareStringFix; + {$ENDIF VistaCompareStringFix} + +finalization + // In revers order + + {$IFDEF VistaCompareStringFix} + FiniCompareStringFix; + {$ENDIF VistaCompareStringFix} + + {$IFDEF StringBuilderFix} + FiniStringBuilderFix; + {$ENDIF StringBuilderFix} + + {$IFDEF CharacterFix} + FiniCharacterFix; + {$ENDIF CharacterFix} + + {$IFDEF DBNavigatorFix} + FiniDBNavigatorFix; + {$ENDIF DBNavigatorFix} + + {$IFDEF VistaProgressBarMarqueeFix} + FiniVistaProgressBarMarqueeFix; + {$ENDIF VistaProgressBarMarqueeFix} + + {$IFDEF SpeedButtonGlassFix} + FiniSpeedButtonGlassFix; + {$ENDIF SpeedButtonGlassFix} + + {$IFDEF GridFlickerFix} + FiniGridFlickerFix; + {$ENDIF GridFlickerFix} + + {$IFDEF PageControlPaintingFix} + FiniPageControlPaintingFix; + {$ENDIF PageControlPaintingFix} + + {$IFDEF MDIChildFocusFix} + FiniMDIChildFocusFix; + {$ENDIF MDIChildFocusFix} + + {$IFDEF CmdShowMinimizeFix} + FiniCmdShowMinimizeFix; + {$ENDIF CmdShowMinimizeFix} + + {$IFDEF SysUtilsAbortFix} + FiniSysUtilsAbortFix; + {$ENDIF SysUtilsAbortFix} + + {$IFDEF AppMinimizeFix} + FiniAppMinimizeFix; + {$ENDIF AppMinimizeFix} + + {$IFDEF ObjAutoDEPFix} + FiniObjAutoDEPFix; + {$ENDIF ObjAutoDEPFix} + + {$IFDEF ContextMenuFix} + FiniContextMenuFix; + {$ENDIF ContextMenuFix} + + {$IFDEF ActionListAVFix} + FiniActionListAVFix; + {$ENDIF ActionListAVFix} + + {$IFDEF ControlResizeFix} + FiniControlResizeFix; + {$ENDIF ControlResizeFix} + + {$IFDEF HideStackTrashingFix} + if FindTopMostWindowProc <> nil then + UnhookProc(FindTopMostWindowProc, FindTopMostWindowHook); + {$ENDIF HideStackTrashingFix} + + {$IFDEF TaskModalDialogFix} + FiniTaskModalDialogFix; + {$ENDIF TaskModalDialogFix} + + {$IFDEF AppDeActivateZOrderFix} + FiniAppDeActivateZOrderFix; + {$ENDIF AppDeActivateZOrderFix} + + {$IFDEF MkObjInstLeakFix} + MkObjInstLeakHooked := False; + ReleaseObjectInstanceBlocks; + {$ENDIF MkObjInstLeakFix} + +end. diff --git a/Source/Cliente/uAcercaDe.dcu b/Source/Cliente/uAcercaDe.dcu new file mode 100644 index 0000000..f92dad4 Binary files /dev/null and b/Source/Cliente/uAcercaDe.dcu differ diff --git a/Source/Cliente/uAcercaDe.dfm b/Source/Cliente/uAcercaDe.dfm new file mode 100644 index 0000000..cc801f7 --- /dev/null +++ b/Source/Cliente/uAcercaDe.dfm @@ -0,0 +1,1092 @@ +object fAcercaDe: TfAcercaDe + Left = 531 + Top = 365 + ActiveControl = bAceptar + BorderStyle = bsDialog + Caption = 'Acerca de...' + ClientHeight = 401 + ClientWidth = 427 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object JvGradient1: TJvGradient + Left = 0 + Top = 88 + Width = 427 + Height = 4 + Align = alTop + StartColor = 2971346 + EndColor = 4828405 + end + object Bevel1: TBevel + Left = 128 + Top = 359 + Width = 290 + Height = 9 + Shape = bsTopLine + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 427 + Height = 88 + Align = alTop + BevelOuter = bvNone + TabOrder = 0 + object Image1: TImage + Left = -23 + Top = -9 + Width = 450 + Height = 97 + Picture.Data = { + 0B544A76474946496D6167651A7F0000474946383961C201FA00E60000625E5C + FFFFFFE66738AB8259F6D2A8B72624886A4DC538298F8F8FAC2724000000FBFB + FBB2B2B2E4E4E4F2F2F2EDEDED30302FEC733CF48544D5AC83DFDFDFF07B40CD + 432CF7F7F7F9A8A6FCEDC2DD5933D1482EF6D7CEE9E9E9D5D4D4EABB95DA5532 + D1B1ACFA9630C4746ECD9992C7C6C6D75130FBCC30D44D2FF39367594E44BD96 + 6FC0574EFBE8DFB04D41CC665AFDF3E6B0AC8FD7C5C1D8D8E6BA3532B08981CE + A87DE15F35BF2E26C2433AE59D90FDD75DF8A57DFDF5F1D26F2F423D37D9D5D4 + FA812EF1E1DDEAEAF9FEF8F5AD3A35AB302CA22824DACFCCFEFBFA878686E3E4 + E9CECEDEDD6142BDBCBCA48C33A6A6A6BBBCC8F6792FD2513AE1E1E1F5F6F1E3 + 7D62D6D6D8EBEBEBE0D8D7999999F6F0EFFDFDFDF1EDEAFCAA4CDADBDBEDE9E4 + E7E8E9CE827DD45A44EAEBECEFEFEF767473FBF1F0D85538F9F9F9CCCCCCEBED + EDC94E40F5F5F5DA4E2FD9D9D9FAFAEFEFEFF5F3F5F3ECECE9444343CACA9DE1 + 7630E96D3AF4C2BAD1D1D1DD8542D3AF34D7D7D7D75E32E7E7E7EAE6E62C0000 + 0000C201FA000007FF801282838485868788898A831F04305C01919293949596 + 9798999A9B9C9D9E9FA0A1A2A3935C0B17650F580F0E176990A4B1B2B3B4B5A4 + 12221229B8BABCB982BBB9C1BDC283C3C7BEBCBBC0CABA3C041949B6D3D4D5D6 + D7D8A50B6D657EDE58656D170B0B01B0D9E8B3905CECEDEEEFECE6E9968BF5F6 + F7885E3C1C30F3FEFF00038AE292A6CD033F541A34E800AE559A05E7044AAC64 + EAD4853618336A14E70AA2C45ECC42821CB98CA4B193224BAA342682079E7E13 + 63CA9C69CD94C10614285049E86795B85734279A2AE820D5AAA3AA92B26AE531 + 20BEA75017A5F89021A8D5AB5837D9C4D2E00B05AF5EA9F42CE31062BCACD6C8 + 5D4CD5C18FC2B770FF15FAE9F020DCB888E906FDE26568AF5F7C7B09FD3534B5 + 05DAC38883DA7C8033A7E39D0D7AB26A930668E25A04DB3850E576A7CECF5474 + EEE4B9CA01E572FEA2AA5E3D68DFD9CBB063635BEC272758C7A2E74EBEF05A36 + A805698AB66D101AB771E33C3B901D979AB5737C29F611C1EBBBBAF550B44343 + 56E85967642C584CDFA57EBD54E63258DC1E7FFCF93864C9E27A5B4B54E1797D + 45F725E43FE4120691F20006A8096D3925D74107C43D469A5D4D091889291738 + 804518097E65A168A365681B6E3BF5C4143ACF85584F0A53F1439E8328566753 + 37A1454616375C35A6A0870E3C84A24D0E20581C870945E68D379171B7236E0B + 7D888D6AFB2D92A4FF214B12F64C34294609E0296574305A789545889E5B0986 + F5DD8B0FC917DB8A086E285A6407829714780702495C715E5150641B62D622E2 + 9D8AF040D57F52F6291B3B11EAD800166D40A4168C9D15D7E35CCB59A6628458 + 20C8259A0FD4E5C0A59A657A69A5E001A9E8770E9D388B7EA4D6676AA9A89EAA + 2AA982ACDAEA20ABC6CAEA333DF8692B6C5CA0820564E1C5C3CE2945455AE163 + 0BB172973CA25A056C5165344B9678955506DCB4695CA459B39CC9459769D226 + 1BCBABE0B22A6E7EE41E522E93B0A61B6E0A041876EBBB59019A23710B158A6C + 00C05DB4D9703B26B75C470D8252861208D0A1C0C108230C01024A3831CA50D5 + 46FC103966C1F30EFF5197A692CA4F2528A1040409274C87C7B2A46AB2AC289F + AC72CAAA16C627BC30D34490846F2A07D43AED54A6992A0A291859A56455EBAD + 251F876CF4D14A6CA2C5D14C376D3400B96A8629656928E1F4D100382CCAB9E3 + AADB75B85C87ED759253393274CC685FC34E705CF154A3AFF7021AE103FC12EB + CDB374B6B30903205FED3403992CEDF7E0099B911946AE70E144DF84270C4019 + A1AC2C39CB9357DEF2332D4893F6E600CDBC6B42E135B80EB2C01195ADA29085 + 01CE4FDE02D0B8D3495F22F8EB7E435DED4F0B584D7BC81040FE891E964B003C + E5C4077FAA045E50552BE7FF98B1BBD197C9ABA31F65004572DCC81214A184EA + CDA81CB7273E60F0FFF34723203BF94E1B6ED12BB3A3AF0004A05420FFFCFACD + 6FFFFDF2D76F6AFEF4F7CFFFFFFB0BA0FE04E192CC31CF1FAE739F02709506F4 + 2CA40CE370C2C19236BA0ACAE3503C7B9363BE139E1A996512E35360C2D46089 + F689F06000C05765B8F085134EF013C58BA1F166589F12F5E06C079485F31418 + BD5C6D86156978430215603EEC5970285A12D68EE43216713445772E3C18FC2A + 61C213AA2F4C211421041EE009FC79F18B600CA318C7581FCCD52987B61822FA + 70B53D57EC10611434A2114FC18D8374E92B1D5A1D44A010C59069818A7D4421 + BE20D2C23EC68E13FE0BA0FDF4B7C8440ED08B8F046024EFA32703A2111B6F5C + 6362D6E68A2A2A20FF76479423272F252C0D7AC70FADE002E30249074006D270 + A6E002145D38454492F196B8CCE5FDF450A2E95CF21A6A241FAE8033CB84C531 + 94C8AC484152E18D9DC4A9010F4803020219320A50C2930A4C613BB2E8422EDA + 528C8C14A31EC4E9C571DE323AEDD2DC2FA9914961C20622C54458119129CA0B + 9A2E46DE81E02A9D0600C005C009ED6CDA2123814DF7C11212FB341A04B45099 + 1204F4685ADB842E23A04BF951147F17AD680A30C08116E0709D9E08E6F3C624 + 4BA61D931C70A367052D122CB78487018383000929A186C10D940B0545D81740 + F12B762434645FD0D9052E5002BFFDF19B154DAA52F1278102BE0CA4B478E8C1 + 8E9A2276C4F3850FFF32947CE8F9207340486369906AC220B0534BD4946966F0 + 98372591D38359931338FB55007EAA307210C58D47FB81C7943053895234A37F + AD0060E717D8C21256B088B5E86115AB58C31A969204581E5469215284515514 + 6A508254D37AD94D5040B30ABD1E264A8A3449C4551E14B9D72532330EBA26EC + 8FA3A3C40E47C6D74CE0D46F651D90572BE2D3ABD1E10D11EBC81961B8D4E21A + 5717ED9A6C2DC4DA594F40C1B5466B6E25D4C04D93AE5512D5759A166E5BBEAE + 42A2B20A704245B0E037081064851FA508779DF6D64EF4B41CD05598C7A4558E + F45A02B18EC5AF7EF31BD8C6EEF7BFFC05B0609B5A15E5CE02BC0A90EE2610DC + B45662E2AA4E8B68FF24B2DBB4ED62F39891002FE020C1C7AB292138A1B26F29 + DABA3BF1F256AC4D4BAB882BC158010FD6BFFD5DAC8B671CE00A3C8308EA34B0 + 28981B0A14C3EE120C6E9A8429CCB43F5EF81D01006F44219CB012B4013C10FC + 2076D6EB4287518C0B1D7EDEC2AE1BBFBF4620C0FCFD328DC70CE6FFDA50C7A4 + 40B082312141F4B557124CC62D765F67619312841C19665A447DAC8006BAB40D + 24365A6E1710E8D789775AE510211DFAFA89323B9ACC907E7405D0E95134EF18 + 7DB59CB04169EA3E070780C84733B2494BE711254BC2C710682071FC708169D2 + EEADEC2874E30E3D2D2EC054846608C59777CDEB5EFB5AB062F6B5B0833DEC5F + EF1AD85EFE6B5339FFF0544B7722C8579B04051498E9B92A506BA08E6E002E6C + 91BB6878CE4EA3C302BA512F59EB5412840EE4A1A305CF1392B5D1918EF7A3E7 + 0D605A391B147C6E5AA6990C80BE16B4BD6D36295BE99AC24FD379DB762E487C + 4CADE9706F836E58B880B9DDFA202A9F70DDECE642BECB9BDB4D10BBD8200FB9 + C8471E722BE0A1D2F77EB6FB2601DE5C5382E106679A3F25F1809F6ED1B4101E + 2841055E2DA6C03CDBAD5C668D26AE80DC5A5C841877C55DB2DC694F241BD950 + 3FB6D43F1E75AA4FFDE957AFBAB2F77186947762E347AB7600A0C0300424D077 + 93803055E9AAF348E8AEEC3AB72AD38AE85584978F93AF8079907F608EDBA5FB + D5A625FAD5C49BA5FF8B0C354C7126DC9A2941F2C63BFEF1C59EB474BCBEE095 + 83E2B3158EC4B499F6664FC8BDB46B7BC885BD8AD26FE739DABF8208D18D2EF8 + 0843C8F019019812B2ED34B15F02F2B8CF3DC9059B8297505E136057A827B450 + 34ED4622E0BC7B18698D064AA18DFE5E4A6E079FB9383AA2530067AD17B2F6C4 + C17DC44DCC141E8BEFD1188D895DDF210276D875FACFCFEBF5A3BFD7EC87FFFB + E39F7E5F9FDFFDF8973FAFADF00166AF78B2D0E6349AE03107677746E3693CB5 + 7C21134714337AB1157DED763533050BAB670AE640623BA552D99325C17578E3 + 60281453190800768B2709BA778228286C12A003EDF27F50C563A1F059E2176A + 3B77342E37651036FF4FF1804D0860414A362DB7F663D5B73B41152624767DB1 + 040F5A655712134B4B5811E48011ADE00A8987559A1001E7978558B8855AD885 + 5CF8855E18866038866258865F161D1C7043BF67096A160A55687C0618320587 + 83025741A34731A767340C700A0B405E573345B145095C70357C102185426259 + 503A0FB188D4122D43E50A69F0057BE531DC04000B2021614017855254573387 + 99F0655E088A64687E5F288A62688A5B888A66A88A5B38691FD002CDB6860100 + 839E407B4AA005D87454D8748382A80911C87CDE1587C6942F364261B4368846 + 158C9570356F6010D583818A182DD2185CD532540B807C4CD3014F2617D5C305 + 2AD0899C308A66D8FF8577308EE2788EE6E88536860767E082BFD4869EC06F03 + 958B91C07463650981888F0A684CBB75814C033586071174E530D23738B0865A + 9270564DC3070ED01312875B50885220483121480E85043B6CC32810916DBC88 + 09E9888E20F99122398ABD248B93408B9C206495A07691A09046C36591E08769 + E53112F67946633E49288C080335A7F0101769345AC30EF6A892955006D0C690 + 07D26A1069314CF95E830305B7731A24D67696508E5679955899955AB9955CD9 + 95598985E508965C6905BDD775269987DAD6092EE93896405754255014917338 + 5787EE50505FE00E62B561F1D0380040554A10800AC090730168D45474E43083 + 74A005AEC0000108FF059CE0955B69075629995949997760999139999A099995 + 19011B058BEE984328A909D8A4022B99790D377E9CC634137874076338FD3894 + 0AA306ECC060E2855AAE569807F30639D2010F494D59600AC1F73A305995E528 + 005E899CC8C999CCC999CB7907CF7995D1790715A003AF28596B088F9C505037 + A805D0055BAE094770A66F7A139E0A707D92F8005CB096CF6362F2F000BA8930 + 82A98DD9E7345F00119CC84A9DC09962D99CFEF99F90690556D01F67399A8173 + 42DB552D0B3083DAD59310818DACC9057EE83E4E808790509F7EC307DDE09BB9 + D9476F001C5C407B25B69FCA79073E009D5859A2275AA2C8B9A228CAA22F1AA3 + 2EAAA2310AA3365AFFA37760051C956394A79D9BC09ECF8300970841B2D938A9 + C62C94F193DAA74A0AB487DD020922AA657EC018BE89A14C1354AE00A10A8480 + 9A9095D3799CC96995370AA3D289A2607AA6669AA6656A9564D982B268A099C0 + A0EFF3531F562510349C09C3074F3617849206E2075B6FA8005255A1D6721735 + 474D007011DF9006567A34595010E380A7FAD6715D3AA6386AA9987AA99A9AA9 + 997A072BC801ED989DA8D909457A3414905D6690068C814A6910A521E30417C0 + 187954357EA304908005E2D74A7AC605D7621A10B1795104058172378C5A9841 + A51969D001723A7808A909CFF9AC9B9AA6D08AA6D05AA2D42AA6D86AAD388AA6 + 9EC903964479709AFF095528535CD0A10A131CBA4119C3E904C1A123A1413D7E + 105FB906095A3A56EAA967C07129E20111E2734200C06A12C2100F40278D6A34 + C0551435F206CB2A73DD8652A2029D0210B13E10B1264AB1112BB1173BB1CA69 + B1177BB110DBA21CBBB11D2BB202A0B11F5BB221FBB1D0D97BD899723EDA0971 + 4607EAC9056FA067CC822969E004220A001DD0737483103AA18DF9F98F5DC537 + FFB89747C300E73554DC7717E64A3B74500273B30A93C13EC66A100C01417E00 + 984743077CD04040132A98C0A2294BB622BBA9656BB135DAB16B6BA36A7BA3FC + F7AD67290B0393450BB3537404894A272DFA921138CB07E1C77C1FD66DA68320 + 0A31B055134C1040FF9371537C13449B28853D15F72B0A271E36D9386620B506 + 01654CB18385C99BC3D113E2E0045C7B307420AC7B4A1A037B2C9510B223FBBA + B01BBBAE0BBB27EBB1B27BBBB51BB19E79723C3AB7B4B00EC01229748137A621 + 8587172CA5E128A6052C2F6216CB941E0752171E485F152965D9A31617415F39 + 59414321854EC40E92E8B8BCE331521B1C07C128A7818F82188D7B0B89D3388D + 7BFA193F532369000504C834B4E50ADCD03DB9D110007316676BBB691BC003AC + B2024CB2076CC005ECB19ECA2E72EBBBB2D0BD5B422FBAF122A651BCD6423772 + 512395B00DD08BB8E8B63D461129ABD02CCCE22C97321EF76257D652BC18A1BD + 71A54CD578780EABFFBE2B921E7231B001635A0889445278C2CE421642ACAF6C + 312CDEA1891FE8844E483117A1C143722692C12DF51500B70BBB4D50C5589CC5 + 5ABCC54D60053A00AA101CC143B119FC9B472FE2BD2E4CC6383128BC4109B14A + 2F1DF036E64047178C1E860B1709B120B85331CAA42F433C85DACBC7731C95FB + 8A17EBC03609D22165801AEAA5847E4C37771C1792DC1D71724A0DC111333CC3 + 52A3C1326221B7C113CB811A5B3CCAA45CCAA6FC99B118C6EEB50DDCA02305F2 + 1D4BB1112EBC3308B11384821717C0157212C7E3A0339B61C14571BE466CC967 + 1C2638031C689C2998FC7D2BA533DE9752EDB0BFFDC2AAA3953D3EBC19E98110 + A6B41E3CC2449C8BFF2917AC2944AC0AD92C24EB31BF4071B137A0CE02B0CEEB + 1CB1EFDCCEEC0CCFF21CCFF6CCCE137BCFEE8CCFF24CCFF4BCCFFB4CCF77F099 + AA8C1DCBD416DD2116C3ABAF0CCDD018C14C384105B7ECC60F0019CA91110EF4 + 0D76714F3DE3C939A110591B62A4573A3F8C377BFC0E209871FDB83637B12162 + 0141DE72CCF99231AAD0165CA221DA311A6F311774511728FCD3260CD4D892CD + A1711BCFC4CBE560CAB21BCF1DCBD4B07BCFA5ECD4B17B073A80073DD0BB058D + 8FC062471B042AADF0C30D3D35DCF326133D09B9BCC653DA2CE9F12940C4C2C2 + D119EEF13360F20AEE80BD0D8D38902891BE020FD7FB709D2C163AAC37ABB581 + 2DFC436DE21693C2FF44DE90263EDDD043FCD8083BCBD782C39DEC18536A2FF5 + 9CD900ADD99CBDD99E9DD97DD0D99C1DDA9F5DDAA02D0015C051A19AD599F0BC + 1592100BCD1152F3D30ECD4CDA51D69210AB3A3D17DCE1C909D1D676752D3F5B + 2171921C96225C381395608DD7E865CD7B9DDC2D7D2183E241829C5AC95DD86A + 0D1EC23B173C4DC2541BC4E01DDE288C298FA82FD80CD7B7014DF612D0A2BDD9 + FEDCCFED9DD9FF0CDFEE1DDFECFDD902409678C06CAC8D090F07D779042D5992 + 31269C31E0CC3D574227949006BB222779FCC4AF8C2520C8B42D35CC72B2101D + 943832ED880F3D352BA4554826D39BF1D7D37D78CC5CCDA167DE045E1795D2E2 + 1AE3D3418DB0421CFFE37FCCDC4AD7C255322C808DD9A6DDE3ED7D03EE0CE4ED + 2CE4004DE4F56CE49E4DE448AED942DEC5558D72FD6D5A057110C501D20C32E1 + 7504E3350ED13A81DBEC9023EC51203CD1195F003A1E74412C65C7C46D210B22 + C50EDB0EC82C35189CD720EE0E5E35E58DF14CE1B1CCC6DCACBDE8C3E26CE090 + 3DE8272CE3913D35263E8DFA22AB60F1DBEB6DDF90EEE3921EE9948EDF9FBADA + 518E2F0601B47232A553A8D73DA7317F7CE06BBD13035B0AA8501BC601D2ACE0 + 40117EE6A917956C01D74482262F92C45980013A2004444047C9CC117ACDC715 + 11DDAF5EDE265EC36DE0049A0500508005A6B5B4D602D6613DEDD41ECEB1F788 + 8ABEE89CAE13979DFFD4401EE4DF1EEEE22EEE430EEEE37EEEE87EEEE55EEEE9 + DEEE40FE025E0CC6999E2B07B141D443DD13B90DC1ACE587BE25B7ADE010322F + B7D1E9D2DB730D5EE625BE8421F8C8B42EDDC5120EAFE0042CD0041F7043F952 + D229FC811479319BCE1ED3DDB44D8BDC25000000A00200600679F0072590070E + 10EBD528EDD51EF388C311E59DC9144EC654D0E8EA5D0E459EE4E0BEEE3F7F03 + 4DF0EDEC4EEE3E1FEE40CFE4EA4EF49BDD048581D5104C105552E5178D67EF35 + D3A21EE3445CEA125D2343251C8DD1230C91C2F5C5366CED41497831220CC9FC + CBED7B6E6B286002567DE716E1BD74AED7A9D7CA88FD16E131BD4C6B8D5CD000 + 4A60004A10020C10FF026AC00066300040F0EC1073E37F1FF28F08F2D3FBBE8B + 1831DDB729DB0ED8CCE1EE9EFFF9A01FFAA2DFEE2FF0F4AC6D0A34F3D1171D26 + 0A8FCC3FC4EFCF122C3DF3D2151EF60FFF1374AD3DE851D42F5D281FC4BD4C98 + 2530F2260F44BF32E00226100237F4DCE7F57D751EEBDB43D3BA41DD32DC1101 + 9007245F029100071DF097FDA65E294D9188B6C4ECA6F0E50FE7173FDB54AEF3 + E1C0F340AFE442BFF4403EF4F05FF4E3FEFEE96EFFE6CEF4F70F083782023702 + 7729783D5C018C8D8E8F909192939495969798975C6D0F0D54140D1D0E6D690B + 5C0BA8A8A70B69170E65580F0F65B4650EB7AF587E549F7E1DBA9F1414540D7E + 58A3A55CCAA6CC69FF0E580DC2C565A45C5B2D5B175D426749015C497F421C42 + 2D441765BE586D5B60E324161B78175C69DB1C781C1C678B6D5D2DFC025C6B91 + 6415AB3614D494B8320796037A581222A1B0255599062154007022A4CC852C03 + 00986120A4439A301D9571F1D3A04D80050E1A60B910008B90120C182001A3F2 + 4287966DDE5068636A53423542885E68738B163061C3FC3CB8B020C08D3E82AE + 66DDAA212B56415F6F74E5AA5550D7B35BBD661D5B562BDAB46EDBA20D8B5543 + 93173A38F4C8C4B7AFDFBF802F39DB15F5015166A9121F7420AB712D5A4DA17D + E2D5C0D39761C53AD83AFCEDDB2A65ADCA740816EA6100286248C8A83126C599 + 001756BB60D37A5EFF1AA6DA640C78C1BB8885103D16FCA9C1C285050B2FC4B4 + E092A586151D491690C0BBC5A0032766546864E08A5416040000A83003A58C32 + 064AC48F0700C5497AF1060C20A0029E4199000D949829B18981991A145C0045 + 78DA01800005A67CA184124E302052092F95014576E13951C66DAFD0F2C02E97 + 7D418C61558105D788249668E28964A1A86289117CC0011181C528E38C343292 + 4627D26071612A06A9824A68B0C852C62CB61409CB2E930D230C15BED8724129 + CC9C62D02A4B6D48DA03697051036D2CE4604113599CC60672237439860E8751 + 50837153BC30660E785484040B6E5821C60839B021C61969D490039873BA31C1 + 32A638A8C2826698FFF1E4022550A85F7808146A8678E101A005769402608012 + 73287128050138119E165C94E1A9167F7430A9125AE8A7C2005804A0C6A4145A + BAD2A400D4909E0A2400E14C864F2D29155156D515175A73891597B1C622ABAC + B35D35AB2CB3D33E5B6DB4D662EB6C1F0258F1811035862BEEB88F28D34644BC + F8410D628AA59206860F60110B918F31064D34147418D53154152565BB3FB2F2 + 8C1F5075D006174A5890030B62842046173218801C122D84C082052C70700A09 + 5E8AC1011250F816423642848044165B34300272430480C4CA620C70C0C3CB94 + 8A804679F85142090EDCE8A9194E44A3051D1BA581C51B5068C700105279E029 + 000C64D1401A499BFF91C7025A88A74403658807C5026538A10615B624ADC217 + 5CE441E04839A5011E0031EC72B3A50BB4518B951D12B36E007D34116D136669 + C5ACDF8257DB37B4D66245ADE2842B5EB85D8163BBB8E1C7021E410A2F92ABF9 + E681D5E300C11418F310C03CFEE84ABC42D26BCB2B1D20099534A2F4AB12BBEE + B2623B533F49E3C0027E5A40B310499050C414217406850507E0C1C51F74B221 + 042A4E208FC116ADBC9B06120C5CCC82108B38D125C6CA1B24A078314CBD541A + 258CAA121FD9D5E08032256804844A6D68315E1E9D79105E0917E00A800C0D10 + 8F1A1641403E406100F24B1B85F8730179656700256800D23462864D008B30C2 + 02915534D007C49DFFA583620121B234F0C11286D0841C3C0B094FB8420F9EF0 + 85C8EA600B618895E770837338CC61256E83232651832A3D6AD7BB9812AF790D + A95EF1F284302E839907ECEE3342B45D29A6E88A7450E10B0D78C002CC700079 + 1030004A38001B3850152EC8A0080720411A64609C3DA12204681C992B644002 + 33B0E08E46D89E32B6508303CCEC0FDFB0DD02DE800003D061241E4983FD54C0 + 809EBCA703E7D18E1A8A8285A7C9A02706B0140554A0854921A00487A44200D2 + E0815689443D7C485B7894F0BE6FBC413B4A789B7634B2802A0E8943F9FA10B1 + 5CC8CB6CF9B297BC14E12F8589C26122AB094D48C107CCA1C3663AB31EA28906 + 158EF12ED229E636FF439297638894A1D6F1E275D3A08A67A23845EBBDEB02A7 + F3C434FB64842670C0335A3AC01834B688881D4007B129C20680A38C101C8006 + 1F7888F7BA388210F4D179A668430870708011706F15505A807F3402052C250D + 6A52EA93461AA00C27686492A6A8A40A0CC09FA2D88F3C2AC88383CC603F2D74 + 21006AD308831840B4F9E5213B0C789F29628A0004D02A514AB0A05330581871 + 925086293C2A0997CA54A53AB5A948452A53A3BA54AA3ED5AA506DEA559B7A83 + 26E8000FCB71A65839B7898BF4622A11B5262BE0A5CD6D422689F862E2340E46 + A8C494D39CE644A76888611225D0600C485049006A400338C1C88C68240117E0 + 788010D0840B4E30FF42636F34023186A01550C0011BB2F02E24B8E09F39800E + 68DC454A04108D0154D3CED794612A8D6021922A504396B8205200F0E7140130 + 547628F086EC98810E390DC0CD54E084AA785405A9541B7B76F7AE2F6807010D + C8D02B7667370DE1D2435CDBE52FB7BB54EE7AD783C42466B6C20BAD1996D72E + 56E0011E6030D6F68EAB6ED0888A47AE694DB6B63575AF7880375F275F62D955 + 8A787D92805B3130995CA0064678011EE0490223E4400CCA18EC0170A0BC33CE + 8C08D6101E0D30C01C0334947A5918010D9C7701215476043528C20BDE998A0B + 78A004EF72C0CD06E0002AAC92AEE9E3245D3D0A80492A030B35D08E1358CB05 + 2A4C6AA47E58C0AEFF5400A107FCEC3E7E80424D619A9DF2D472010D30C07806 + 680A3EA8010875BB60300AB34BAD6A1504664E339AD34CC235B3190D4B85339B + 35E06635CF59AB4D88000632E7DE3ECB0826A3E18566A03445415ED3BEA8738C + 867E120C26FA9028842A7480058CCE4A33451726318311D81058CFCC09070F0E + C1088A8083EDB9CCC30FAEC108468D0335368005A026C10894308204E480B329 + 3E0007B2E0021C8CE00C824C9A12A030A0433D44CAE38142D688960555D0940E + B2458503CCC6D21A20E0424AA0C3781EC00564AB409417F0141D3AD9533AD021 + 0F5C5083786A7021743AC07E87D40214C0A304D456F79657CC6516CBCC66A9B6 + F9CE000FB8C09F0AFF70AC32B509DEE2B39F17DE179810A634590A58A18568B7 + 22C6625E421AD27E5FF7E8324234C0D5ABB4C897E2805FB46104090E9F4AA280 + 721C14C108BEC64341B6A0851C140007051003030C80031D0C210DC233821168 + 400206148106BBE6F90B9E44D8E4598F0B0ED2B6B6CDE001AA34A0D8DA396423 + 53C16390B2C2C800D0F6A1B86D362838200025D0B212EE8376F1685B0B397602 + 955500852EDC86146058F62CC70DE3A61C69CC4C9A4A559A8A6637175E037086 + F3E1154F783A3BFEDF875F3CE2279F78CA3795F168AE7CE41BBFF9C8237CCF30 + 62B8E82F0136827DA8671297E2A189A8CD8B671C168C5EA2B0D615E9B59E33E4 + 236FC3524EA79910FF904007CF93D2229020EB55EB0009F0FC0309EE64853885 + 400723E30218963F02E0B7E0F754203EF45B9185DF3BF64969F003035AC5AA3C + 2C8528D7D1020258C53F5650E50BC46E40C0D2366FF6670969506836171EC000 + 28C8761161A37E5A40056D307E6F405BC4A6066DC0140F910601B820081035A3 + 9021F89637D955152020439AD7417D90798E77789087781D48677D907832E481 + 2838796EA6799477822388822F18673128791E8806DDB24CDE307A3A28090E28 + 4DC31271AA9756EEC27AAD976843A25F44357BC41269D6436922A77B50884E9C + 80059AB180BA374511F64575257CF0343B2A4140B3B35655320B56380ABA077E + ADE00AF2B22EFE02FF1A69283BA85069C9F0853CD2235EF8459050338BB13ABA + E723A770777E172C4585812050887456888898888A98888758788BD8888B1889 + 88088993288996688897A88874D60462E02239B883A06823174166B523698636 + 44F6E27A18270B54A844F9A284458118E7347252B87B56B81447E20761D00164 + B8286D288B86463A42F823E7C414B0E707BEC08BD4B0804ED13A2C213AE02786 + 6978864DB87BD1584E689886E6244859D808A0717E7E570BB7B080E04881D695 + 6FD8A5419558881D8889EE9881EBE888F0F88EED288F8D788F88588FF5C888F1 + D888F5E88FF1588F08F72D8B108AA0E8809F100AD40084A61851535471F2A28A + A9B32149D85F1E27FF8B6F688BB66885CC281ACF680C3F545F00D390DB2884C5 + C8182C110A4EB480B7000CBC707AD5737B23877B338986037693319918DDF80D + 04365DB8E0934CC18013385D43057852214E2060028AA89499D89491C8944E99 + 8850A99454199549699553D907CD471006B98337120DA5711841A87AC44884A8 + E37AACC868FA62917A683A96B6911CC99219320B45840C71584D519297F5E087 + 519497A46537BFF043D57369F8123A89647B00E69025B98DC4387188B956AAF0 + 4571E80AB75069B8B07B97E96E148837FAB63726800688089A49299A50A988A4 + 9988A7199A85F899AB299AA6A99A57B99AA8299BB00902A95988AE799BB68988 + 5680082DD0953AD8FF837CB59010359601437216779689468515D971E3F471B5 + 088571C9916678017E400641B9006B4005CC657B19958635730104B80CBEB800 + 724001E6B10A6D2007A4707E651006900613D1953B4CD2334BF1230FF1190E48 + 06C9609E5F200789E100FCB99717100716C42397A10A72F000612007DF784EF2 + B906D6488EA4D00661D000945994501178C4D204B25995207A95213AA2225AA2 + 247AA2269AA228BAA22A9AA220C089605590C0E9675F090AA220960D798A8826 + 918D8184DF944190F62FEE02977139810C480A6AC0001E503D0D8013251006A8 + 100679207FA6400179A0066A400F01D0012510055A1400543036CA100625E004 + 5140065581054E0AFFA527C10041A30C1DC00025B0066645010653066A806E5C + 10A70CE0076B50A572FA3E5C100651E0044E30A05810050C90070E5A645AB004 + 6EBA06A07129CB50066E1A06637A0568BA00841A0561D00A0B70054E4001D5D4 + 204C804DE768811AA4071E2AA2684095AFDAA22C0AA2B1FA99B0BAA2B55AABAE + 3AA2B9CAABBE5AA21AF01CFB20A333DA5E08490C3AB228396A8AB8989CAAF818 + B05719407A91422A85455A8641D9800CF04915DA7FFD1705CAE0010CC06590D5 + 7F5020A95C100507D2A86AA00503945B50A0A84E703014E0534A7005EF7205AC + B204CAF005080005F01968334105C4D6AF89E204509AAEC30669E3D7AE25E0A0 + F53A6C64A00CB3E2FF1F5BA30C14C02A82AA485A405779100568D30651E0AEFD + B20050A004E0CA0A08702961A6A119244EB2D604AF6A02349B94347BB3389BB3 + 3A8BB3364B95350BA23B9BB32A1AB4445BB4466B02C19A177B51ACEE55A36149 + 6863A998662991AB830B70450CEA12A47AE97EE098ADD93A8EA4E000FD47054B + 71292A0505CA7005E39A0A38A16CE6711AA4D2194C000510D26D50D0006E7A76 + 14507F57C00A6F506F90540F6FA005E627B06D70758DC4055730215A80AE2550 + 6F74D57F65A00551601E14D02A0F5B0F79C02AC34601A7E01E0890B201A0055B + 17AAA30A13C44605ABB006989B0A61A07E757337D7A537C412021360051130B3 + A379ABAFDAABBBFBFFBBB6BABBBD7BABBB4BB3BD3ABCC03BBCBE6BABC81BBCCE + ABABCCAB94686005182004A1C7B462259C0A490A513B96C8199146C8871CA971 + 1DC08BA3F32F423A44D73A94B8A07BE2C7005F701B6A0B05F0AB0C54E0A63B42 + 01E31705B3A5B64C80A65CF0050C7005E1AAA85180205CB0040DA204018210ED + D101A820078B7B057B45050643A843B6005F5002C4F6A7E91605AABB5339C100 + 080CA93931B1A14AB78ACAAFE51AAF5C3764A590101C95067B1B0558C00A8B1B + AF3D9306F70B0518E2B283E832CF27064D80B35370B3474CB3496C022880C446 + BBC44DACC43BBBC44B1CB4516C0250ECC4347BC554ACC539BBC46340BD42A0A5 + D8DB4C4E5B85509BFFA365998AE1FB93454A817D08453EE27E72F993760CB624 + C72F593825DA485A91694D61F8C7E8A02357584B95060B4AA42EFD5268B5D798 + 7FAC9353428791599C6E398DE844C7BED80AE4888AB28B8E3EA4A540800421E0 + 307740675B6CB4577CB4557CB36E70B3A91CB43DEBCA3BFBCAA72CC5B5CCC4B3 + 6CBC2FA04C5C59C63A849036BA90DDCBAC10D9569061A4B77886D6D89FE88B18 + EEE6B5776CC7E9500C8631876168AD1C599EA51884781966AD23131EA1992ED9 + 443B1C724D4893E80472798557B7B7CE79558E46DABE2C09CD44F9771B6A0CA4 + 10006FC0074820030E630520E006ADDCC4048DCB597CCA059DD0B8ACD047DCC4 + 078DC55EACD052ACFFD014BDD0169DC505FD99ADF12DD7EBCB9BD383F2857AC3 + 0C6066C94DED5B9DD4D8CE7CD9CC8018CD4D618EF4798160B80CD328949B9C98 + 20178DA783245CF31084297BA1730CCA3CD41A19854E488B22979172B8D4D368 + 8E465224F50CD54FCD991EC2A169C0075FF00640E0CF2B90BB6850D1130DD108 + 6DD115EDD0106DD6192DD6674DD64E5CD66B5DD10D7DD137EB5531EAD19C03D2 + 568D98CBAAC9F69271779CCDD4188DECD2CCF500CF2E3D5D499490A290068C10 + C862787E56584DECECCEEE87920969182C195F1B2A130FF18445AD91481DDAA2 + 5D93E508AD4479DA525DCF82380C1CEA017CA0D56FE0CF448C06538002B67DDB + B75DDBB6ADDBB8DDFFDBBEEDDBBCCDDBB81DDCBF3DDCC59DDBC7BDDBBFCDDB26 + 801778D00D76AD39A547CE693CCC3F7C44E258B5F24C8E824D3A3D4272B890DA + 4F8DC89371948B503A733C44D688D3EF6C3DB5F40CEA94453E5D72719523A3F0 + 965198DFA3BDDFFBDDD4D0FADF000EE054FD8A4C82051E70E058FD05B26D0563 + C0C4CAEDDB0E4ED0B61DE1CC7DDB11BED0B87DE116BEE10F2EE11E9EE1093DE1 + 1CEEE11A8E062FB067D511DDE3321809C92FB627D9514B724FED93E388CCCB0C + 2553A297EAFBD23C8EDA1B224D9C1D515F18863209E3935D92E974565688C81C + C7D9B9F7D946CDDF52BED4A55D2FE28DDAAA5D91C272E057E0016FB0CF25E07B + 5680066E90DC668EFF026C70E66ABEE6C59DE66CBEE663F0022190082A2E2E80 + F692C92A69461E84E04D8134BEDD29EDDD7EC9D7E20D198F112C8F86975E088C + 7B7DE4A5A086A627DF24973BAF18D4F71D9D503EE59A7E93326EE586FEE933DE + C9FAB296075EEA6FF0055FA00674C4E0650EDC232EDCC8FDE61D5EDBB51DE167 + 0EEB6B4EDCC51DC62EA208754E23F0E509C5303A77B5E77A6ED86E6C86149ACE + 38AE18CD5C4B0C78E5D9FDE350312C819E56429A7AC58E577108DF4ACE8C9ABD + 244EEED9FA1DE59BDEDFD61A8E868EE5D26ECFFC05151E9007F17EE01D82044E + 40020CBE011B8002FB6EDBFBFEEFB70DF0FDCEEFBF2DF0BD6DF0087FF0046FF0 + FEBEF001EFF0093FFFF00DBF01711E02C3FAEB32B2099DD00B8739D9D69DEE2E + 1D9446DDCDCE5E3AD71DE0879E3B97B16F5D7B863A494EDCCC98AE10D386818B + 942E57428DDF997EEE53EEDF28FFF3D03AE0A37EE0F25EEA1E70055FE00132A0 + 035630056E20F110FFF0C91DF10F0FF0B8CDF00A6FF5510FF554AFF50D8F02BC + AE17C48AF17DC105176025A0B0908E3ED2B338CF279DCDDD5DF2E8DB93521DE0 + D42E0C8ADCE795B928D94E5F7A3E71E810688F868BE18E19FC42EE3BCFF3A35D + D3EA2EEDEC2E66EF0E15499F07451FEFAF6DA5ABFE024FFFF45BDFF908AFEFFC + 0EFA022FFA5B4FFAFF2EFAA87FFA9FAFFAA1CFFAA3BF019C087A641F18330F96 + FC22D9ECDCBD12C7FFF85E7B8B71DF2ED56A374E7D37B5D08AF9E6070D58C7D9 + DCEC2319F3AA800E84519F5048DF402D3A445DEED6A8F8A28D7BC6E8E9A10EEA + 9B795D4BB2440D90F4468FE0599D07FE9C022F40DB9EBFF053D0F5F1FFFE083F + FF1B60FF5B8FFFF5DFF5F40F0828284D561F1C3D5C018A8B8C8D8E8F90919293 + 94915C690E580D1454580E171769A2A3A40B69A6A8A7AAA669A0A06DB0B16D17 + 6DA20BB7B8B9B75C0BBC696D0E65C2C3C20F65C60F0F1D7E5414147E65B6A2AF + C00E9FA7BAB8ABAAD2BC170F7ECE541D65AF659ACEE20D9EAEAFB4EFB3B3EDF3 + F4F5F6A1AED5C465C1FDFCFFFEFC9D63968E139566141E50F902C4431E871E3C + F07943514D08122FFF9A4C41B1A1239B8E1B3E821C49D26349922243824C79B2 + A5CA922C57BA9C39460C063C3D2AE9DCC9B367A505DFC25181768D15A951A992 + 6E63858F962C50B6B2E9E2650AD8B064C8921D7B80A5438385141A94E392886C + 2BABD6B0F5CAB674D5AD0B653685EDE0205E19AFCEBE385B57371FBCBFF2EE09 + 1EDC8A56B07D8813230607562F95065F29B429138E0FC4881EAEF06168518718 + 1F1C51820CED92F4CCD3A853AB563DA6909024897CCA9E4DFBD1250704FD786A + 63F428D2B6A872716B272FAAD4A9550F233BB6156B5782CFA2C50E60F617AC50 + BB8E034F43F69BDC06E4CCE14DF7981D71C0EF06ABB757D8F0E1610101CA1788 + 05FA5EDD1D3A04C0FF54F932C42B6F008144082188F1C246AB25E892050A36E8 + E048638C80010767D466E1853D91D506160691534B6FBE6DA7542AA3B8D28A71 + C7AD65CA05D614C31C56CE79D5805E0D38C0DD7464DDE2162F54B135622F707D + 47D72CC18CA7D733BBF9150F7AEB350955535611F3DE94F055590C337A7D511E + 3F0E50C72233963D8499666F7880840C055A81C6141B98F6A0836ECE14E79B34 + 15C2011118E6A96724693CB0C9630FD818A26F238AB84D2929E6429561CDC1C8 + 1557CF2104CD05BD94451D5998E6C8A3764A75E7E75E7439A58C5CEA98A7247A + 8139A95E61B0B428E57CB0D2671F92B32CA0082F0E7440051F793C2466667C00 + 01049A628C30069BFF1B30A86CB2CC2ECB6047CE829443B320456B2DB5D14E7B + EDB6D8763B2DB41D4538219E7B96BB671A7189132A88841AFA23896E254A9528 + 56399A0C168FE61759580FF0662B8ED45D8A4B8F522D05E4A7737DC22238721D + C957604B469C9EAA4DB2FA9E6218EFC3589680DAB8404E8A0085C5AEBC6216D1 + 665F7C71260956348142B4232D3BD3B3CCC65CF38227D13C73B725E95C6D4963 + BC6008B9E6165DDB02B91E345439A10C1A62A1501B9C6876405985EFBD8FE28B + 457DD0AD536BA50167AAE95A040B179C3708F365587DFB72A2F6791253AC6A7B + FABC1ADFDDFF0C849033BA7DB2400B442FD04607147C51B2C9115194870C24E8 + 318605DB428EADE4FF902B4B79B3975BCE6DE5C9663EB9E69F770BFAB353BC80 + C16BD3196D6EEA95701154336FB3EB74D4504F5DF02FC1640DE9D65BEBFB9D79 + 51917569A664ABE8E3C06D28B49727D68CDAF65049BA2371AA720B76E22B17E7 + AD3D95C2BCB771E1E55D43000C492C22B8575FF887D91B5F64B1720A2F24EB46 + E4A3636EADE7F487BEB9E8FCEF6F414D7810421A54A73AD64DE23678014F196A + C10DA795C25DC0B19D8A5A110CADED8E775BF343D776F3941B896D6C9B9297E0 + D0013D7E380F324A838CA9A4F797EA552C1FAEAA12DEF0A6B782F48D373CF840 + 06C817B22095C95726A3C81B9030A0158CA1739AAB9C129788C42572EE894E54 + 6213A328C5282271FF8A94732216FF27A1431890801642C54E7891BCAF40CF6F + 0E7C1A046B37357A39006B18C4E032BE42A340D5CD6FC313DBC02488B4917142 + 37C9F04A3394F698F0410C552E7C21A332C6C8AB60097C6A4B430A7298013070 + 873AE85A82E17E859989E8A5882F38E215A138BA2CD6AF94A81CA529F5673FFD + AD92731B00E021C088A1EE4CA62FD83920D20877100F35308DBFA15D042548C1 + 73C4B1035DE9CA1C25D52F6AF445781F04A1F114A5A3C1C10E3F82244F2155B8 + 40B8B53091848161F666182B61B0CD86BB59800444C0031E10A005B1B90465BE + D02BC449643340B008098C45C57EFAB38AFF0CA840FDB9452A22B126A7830D2D + 2D8409AEE5C71894FF3AE0E0D41128603A50986C4C142D2E984C6422538307D1 + 8B1F3CA6235B582A9A9B0AE1713231C86530A3318513C7633C348FB881D37A50 + 1AA795B6B7538635434B9194400A24E0051E70A005705804171C1086F4D93322 + 00E2431688A591825A919403CDAA56B1BA5525025008205BA84F1048AA3F8E45 + 124B25DC7D1678228B3E10A3C3D40E8B8CD9BB8E2A1332E9E8401B5277D2B045 + B378659B9735C302D28218D66D1DB0A33CA677D3703A2586DD2B270D9F43AA1B + 2E400412C86C0ABC30B4B22C200E61A000AFEAC9493EF06140696283050EB0DA + CAB11672AFB5400E2A375BD8BAF6B6B6CD6D6B751BDBDEE276B7B2FDAD6F797B + DB58DAE44E62E509FF1973D5B0980EC58EA7688429DEB80987ED461A6E95065C + 9362BB8529D3A3F909AF1F22A3A50E5C00127D45E91EA74295A4B9EDA732551A + 79C0638CBA2CA9B14EB25823F7EB5348B2230DEB14AA505340000EC00064AE23 + 83682302C4CC00284032609C158ED8D50A5BF8C215AE8921C29ADC49088E6187 + 55876ECA61AB5B4D46577BFB633365E7D6ED4A8D2D73056F78673C5E8474A20D + 96085B1E8997D2E24D575721868C06C7BBAF9962811FD7C1AF22DDB30F724E76 + 3C7C63873A334B65A17E20801552C405C8D08C1FDA937D4394F081663BDCE012 + 97CCAD65AD9A83CB5A34A31972B5056E9BE59C6636D7D9B66F6E6D9EDB1CB410 + CCB2C396E0421961FF9AA5983AC60F0FA014DAC26168F08DA31CBFCCAE8BDF65 + 36607065C6F9F1C332B2B997443322BD3A566F8F73D48ABBC0D76188BE57A444 + 8C682E5D877A4A36514E9BBC53EE69EF7B403D7228048CD9A18A60921F684158 + E1A2AB303DD503610E01FC1E87E128C6B9D9027D76856BCB06A109F08B1D2623 + 65521C62F2F4CD1AF5E1B6B72B9ADD764D3A5EC259188D37ADE9C29A7580B7D2 + 71BC4FFA571E11EF178C21CF5C906C8D0AD638859A0E947D637D0F56D54D86E5 + 8C6CBFF39D0E05D6A2CA1097400E390006720125B40D69304428B2328C4C61CD + 20AF73C8472EF29293FCE4264F39CA57BEDA298CC0CF1C06B489FD849042DBBC + D18F810C0A1B5DE8FF12CEA2DC4739F7BBDCF81C768761C835768C274A3CEF80 + 35BD2C7FDD05A94F4CAA83348028F3685E18766E90301C79E004AF476120BB5F + C4E4EE9187B62395310B71767E80004280436CD240861995C99EA66508129CE0 + 71E2FA9DCE7F2FF39C052FDCDBBA19F0881F6EE97440A1F2C99C8C34EFB6E427 + 7FD8C7689A1F4D03BA76D7F8E2AA0D84DD2ED5205ECD1AD1A7DBC6AFEA5D5191 + F675F5AD617E3814880234D866E3A124D6D5B056B2C1C94E4E85E72DDC05294F + A0221EF1491698870158C03C0F87993C0048EF1719010B6CCBF2EAABFCFAD6CF + 3EF6EB3CAD17E8000F5B707C725D778E7DDDFC483C4FFFF9E56B75296B3EE89C + E72E2B2AC86EA413FFF9A7E0F9443C43DD087AA79E16C75063A0C2257DD11E17 + E00466A0056F200CCB701022E67AB81476D7B348B5568191750C9A005396874C + 02A65954365499555405D6038EA77C7EC0109C743213212C6832026CB066D4B7 + 7D21475C2C1783DA378332785B07506DDF7706E2B75026E88092F71894D76D39 + D73688F673EFF756F157521BC535F6277A42D800FDD20B4AC57F9F867A1F5435 + 5CD136F97748B2D0064E00013F00005A90076F744E7B7175E400764DD2067C00 + 0566308773C8007ED00E74C37B920510CDA386F3355E7E407CC4970229F07680 + 13324C350325F32B62720559305521104AC9027239307295B85A977800997800 + 96A86699988969F6FF896AC68998E889A6B85AA4A889A7A88AA8688A1BE07D78 + D0023FA83AA65006A1A57E6EA31B5D617EB8D8739AC669541006DDB4849B3769 + 3AA26E80687FCF238C97046A96627AFE07146F1406A77675FC300DCE140B4E40 + 0710D08D00A004255043CE7575F5E586F75006500000DCD88DDD480766500278 + 883D65A7185C218085E636572788835888B148346DA060A3C54957E001595026 + C4620553908337A8900CB990D5C783E0876D7B0217B3725888665FC1305E4528 + 0E23D68583D409DDC46216257425050CCF118502B83CBCC17FA0068D7E856F28 + E66D98072561D8065140070010034FF003104007E00862F3B50E02976406E80A + 6F60063C89936600FF00EA98945AF073F87070BED77BBB5856DAA442FA28886E + 9701B21832654001FE515A13B132D2B7019C388A68D98A95988A6779966B9996 + 6E7996AD38977259979CF8966FD9967479976D19979C089187488BE9828BFC12 + 51DDC15C79818BE1D322E84023BA9679EF4792D2588FC93864CF335217B07FCE + C892A8C78540566854A830F050936D50024C09031950074AA0023D69064E307A + 9C1016E0716448660F7E0000DD98800CB09B50A00566C09A3F8000D7208FD973 + 813C750E9C7673B2995859A98F1327405EB910C686387CC009C342021EE7900D + B99DDAE990B1F47D5D59342CA2564698844CE7256FB44C95D77AD6100BE0305F + 49B284247909C818FF85B0B934BCB1999BE908B7606950E636A6429AB290074C + B94330000375B00274F003EEF89A3A37486C882FED992A1D809B74A0051E9032 + BC52024EC000BE498608F0242CA25354C969EB091EE400711540652B9A592D5A + 65C6179848B3090399829D742617F1022FD8973C6A973DFAA33CDA8A403AA444 + 5AA441DA966CA00332D00299692EC0777E7C03697C459FE046103DE775046815 + 8FE436C6A084C4184C22D29F778192A3A7741EC399FAD97F82A33735171647F6 + 6A4E21A06A00002A900176BA4319C00708009C00C000E0516490814C48561C5A + D08D0AA88B60A2061DAA0516EA01FA358F189892F7B886C8940CCD9995C66760 + B7920684B349F5D4FF4952652621A003C642666C09976976AA7B89AA23A7AA3E + BAAAB05A979B4872DE8701E1B927E26658D0D08CF2B6A9C9934D333594F63519 + E8306E82F2A54C3874BF7A75A2777FE44117BC9AA6FA2938B9F25206B1254A22 + A0B040A0005007A869A7078AA031809B10600650101629667B837A015FC08D4A + F00558500B96768279D0A108809B4A100DA0A08753694E296958560748DD73A9 + 985A88E3432E17B0061DF00557F0A9A0FA06A715021360206669A4167BB1189B + B11A6B016C6005212004E7B527507A6824D67F8E700956916989D59E758191C5 + 6A5DC389AC605A2870010E96694689F9688689A69CA954620A659637628B15A7 + DAFA05BFF905779AFFB4DFCAA8DE08051EA081AD27700C00012AE0044B971CBA + E20125C00072C8A07C409C89C13DBB48687FE87A5C42B0CD69B02D000365F18F + 14502696613257700529E30168B202233089AEBAB770998AA9DAB7801BAB7C2B + 72836B971D7B3A6720913E31799362853D2B30C9D10FFD060CB190096DE3A6D7 + 5022323B74BF3010A2C775EA22A5D28A850183B5552794DD1331DA1A0B7EB094 + DE9AB4778A9AA839AEDC68866A107C6C980C48690679E0071F823BC5C6A15080 + 007440074E3076242A1FC6A491956779F8720C7501602B3ABD1240BDD4EBA2D5 + 9BBD2BEA7614722BA055380C26B72B88A36230061A7BBEE89BBE199B031DCB78 + 598621505A98A3CBFF3ADEF058D5D0B299C06859927FF8808D5F1A35B85395A0 + 1BBA3B3BBFA146A5945156EBB04003170FAB1B0B546006745007765A07311003 + B09BB4316006ED88002510536ED354F89A0762E10AD4450179B0B5C38B9B5020 + 8F8D742FD934A9CE1B285C720AD81B712F9AC32C5A659C95013E980817100733 + 726CF7A4324E60202C50B1EABBC44CBCC439E0B1DD8B2121F65C2BE9927DF569 + DAF058ED298EE2F05F9ADBBFC43822B0A00C356695E1130A078C293C7B2BF439 + 10A7FBA62CF4C0B2D000AEFBAD767AC1141CBB785A074849B5E0A84D1EB0A008 + 900709D1B2A69605F5EA04BD09003FA005C84B6BCA8181BE1364023B70366CBD + DA9BC9988CC94465FF08609508333A03BDA27112C1827C2706D3D7C4AABCCA18 + DBBE14A2B83A717E5E73493CEB8CF7661DF8FBB2CB13B3FD0B99F2B90A00E853 + 6DCAA51E034D2855CB285B7E7BC34D11E8C0720C0B743CC1195C07169CC77A9C + 9A4A90944AC000E29007ACA9044EC0076211800D5026C2BBC210A0052EBC535B + 812F99F652F7287CA92B0D3A7CC3D96BCFF51C82EE64606D7B820CF62B032911 + 6F6B11E5BBA3AC7CD008AD97AEFCBEB411640B2475D054CBBD5A1DEE60B929C6 + 175F7C3DFF3B1C234A7B7FE821560875D154CB9E09A8B79764A3F9CCB0D0BA2A + F0BAD40CAE151C03792CBB788A04ABD99A4E205AB8E99A6AF00657F7531EA006 + 2AAC05C4FB030CF0FFC8AFD2CEBC9369664C5F936B1C9A1CD59B2CD5D50B6CB1 + F82F6DD0540E918279B01954F006FA642C9C88030740D6643DD6659DD666ADD6 + 67B9D667CDD66F1DD76D3DD768BDD6685DD770CDD6786DD72F40024705CB9320 + CBFFB50B12AD9FF342419A708F91D4148CDD562DB614FB7A76A7DB861FA28523 + 7DC5D4E17978E1180AB44060A8D2B110CDD65C075AF0D2775ACDD61CBB7540BC + B9C90008A0002A00054ED0D314E1102530D4BE59BC5F4B811A73411F05CFCE55 + C90C940B537DBD545DDC84F87607D61DFE7C6C01DD10C4320695F8D66D29D777 + DD97D4BDCAD9CDA3D69DD6DCDDA34FECBE801D0941E6213F2775858DA6543119 + B382D1D3A0D160ACFF794C31A28C2917677C0A2875D92C39999CD67A33990FA0 + DD0692010B11AC02189CB4167CE0A77DC14A8BA71970AF64C88EDBEC0425A006 + 161E051DEAA15AA004F8DA1464A7D4C8D43B32127C238664D8A01615B0C9297E + DC2CBEA285680859B6006B4005FF6CA36F9005765B203A9A036E9DD73DFEE36C + 4D033E3EE4405EE4447EE4424ED6429E03DEC7015B401BB2DC86B8143C06EC8C + 984073FB1B2AF0BDE59AE74C928B98515AC0F92D36FB6D92C0FD5CD650530FFC + 057238E000E09AB040BC329DC11980C7B06BE77A4C00ACCD8E748000B2ED0480 + AEC8BD49D41C5CAE58402FB7E422AA16E290D280603153F3AC16D850DC2D5EE9 + 12A7433E481D6D00FF069E8A386412206A20618F53DDE7BBDDDE7D0042CE89A9 + 9ED0AA4ED7409A034DA00348004FB251DEB89764E85DE57E551508C3099E90D1 + BDECD86EE5E50468D17FA47F639EDF07CC22C0C791D193D2A4890525C0E13DF9 + 06B0C08D3EE904AB79E0041003488BE0738EE07A1C03EBD8934FC09A7D0E05BB + C9B5838E0048C99365E8A78B04237194356A68795D3ADCD950BD2B9EE2D3DBEF + 00FFEF02CFEFFFAE0799CAB6FBC16577074462122C614602A85CB1463EF1474E + F1165FF1180FE407F00262800743308B9510E5C53EB9D851296AEC7FC70C751B + E2808BDD1E2E6F22C044EC52026E91F168CD98EC63FE16969BB33794ADA4F900 + 4E809B0C5ABC5F70FFED2AB08E0BAAE0099EDAA9C9E0D34CAE7E4C00A9D98E66 + E0E75A40D4EE4EAE3FC093DE88007C70155A83418E82055B6775B75714C741E9 + 6A5FE92B6A05C98D5C0100175F1DBE63724F61360118B1013D9EE418BFD7A88E + E479CDF768CDF76BCDF7849FF17FCFE41DDF028B7B580AC4B22C0B0B549EC663 + 1E3648032976148F5BEECBBEE1E5BCD72291777536B26338BFEB016C1FECF9D9 + 35E9005120F4E66A9A749005B0F0E679908EEDF804A38DDA49EB01329DDA7580 + ED5E0F0777BA025CCF9474A88EDDA80276E00306C0F53DA9046A700E1CF528C8 + C035CCAA5828A20B01EFEFDCDFFD044FF0DD1FFE2B6E8855C00549305199C1F0 + 502511388A113B7AFFF1F08FF8F13FFF184F035F05F29220F293BBFFB2000869 + 0B5C5C01858488898A890B0B178F176D9090691795979699699B9C9C6D6D650E + 0F65A3A365A70EA9587E5414541D65698BB38B865C0B69A01D7E14145FAE1D0F + 0E928F929FC79F0E516610744A4E0CD166745F9F74667E69D1003F103F003175 + 19E331E51904E31975E6E3752A100017B730E31F7AEF10F9FA10472E41412282 + D87181AF991935581E245CF8A094C25D7E3A6029236953A38B18175490B0B123 + C78F1E43821C29D2638A0F1F849C09106041075F7CF27898E9E14A4D3E319184 + 2031E2458E0338800A0D4A74A8D1A2488F2A0D4A63A9D3A4509F1A3DF0620406 + 2149586ADDCA3540FFAFAFBD1AC04AD56698D9B264DB6CBA45AB2D2243706F6D + D2441793DD4E73CB92C292B0A129B2A258B9F2E34096DB59B62A3928E3A7C157 + 2A6285118B840C190525747E9861E0044A342700E8BCF904000083694A2894C0 + DC0D000274EDC2894B473BC33B0019E020A2B7C38B0F032A54FC08EEC34EC07F + FF4EEC79223C1F02857EFD9EDA2B7122C50B19B337AAC0BDBBF7EFE0C38BF72E + 41C2490E2DB2A629B3E48B0799F0697A78E37EA798172E80E2D84F743F0DFEFA + E1F0DF7E011608A080FD11F55F800326682081074228A18300D290C30B5715D2 + D586BF74E88B58A1A422E288227EF2884587D87218215A1D820B2E954C722225 + 27E25549590DF1D5FFD774213AB04A2B54F8110B2183ACE86225A434D6CB2F54 + 84211924C654D6461EDC00E004057920A085675084568D0374D0E14D664A8411 + 06135A0090CF0F4AC490CE3AB2D5E60E042AECB10301BA7101070C3BF0208204 + 76048ADC3F52FC23820827246A80737D45C7A3427C9D529120DA35724B781C71 + 9769479A76B7E9A79876C7C3070408D1C3200EF811937CF2BDD18B0725384182 + 186C18285554B8DEAA6BAEBCDE6A81551C64B52157607D05226065257BD6596A + 0962A49183E042A35D757512C9623936440A2A663D205890853DAB482E6560D1 + 8063BD4016CC3091B42B651B0DA840070241FA9187165B7A165A167E20D01A03 + 5F7053661843CCB0FF8C983F1810CE38049433DB383B88A942A227EC90010C88 + 407C82085E1C2AC21E1C234A71A27A38A76D293C92A2502893BEA81D5BE3C52C + F3CC155891020F7870704612EB5181930740B0CA6A1E32CCCA460EFC2D886083 + 4C27EDF48406FED7B47F4F2348B5D254676DF5D6521375E155C20ECB92871D1E + 0BD8D9668D6822A56C89DBD65C9CD4556D5EA240BAE374227A0BA49086157958 + 23E49A4B8587413E590C65529AF10302E7FA61AF96F9AAA9C4BF11A9CA8D164B + 643EC412512020263C4FD4814E1DA4ABA3CE3B759EE045A277E6C9056F23C74E + 71403E74F3DCB6294F678A249562C496467AC81C3C77C37F573CCD9ADE4C0007 + 30A8F780CFF1B18AFFD31748147D1F1B07EEAA7DAF5029BDFDF738FC8A87101A + 8A5D6C58632DABACB2C8AECDF6216E2312ED8B73CD486DDC7AE97832B7382A19 + 6419F230922170010AC1152B22EC3ADCBBDAF0063A00800FE76A801FD48000C8 + 75291F008002053AB00BC794204C6A58021534370334A9C91B4F70136D085007 + 89C9AE6217DB4D0676B083179E003976704EEE74A72D7659A477BFD34804BA33 + 44EE14B102474C2211C3630724C6CC3C1FC0430B88D0120734E00D79C8A2D070 + F20620A861272FD84083F843C6329AF18C684CA31AD7C84636B2E10521E0802C + C446B60FA58F4478CC23591E61A9F8CD225A989891202DA198BAE9CF14DC0ACC + DE00182DF9FDD111FFBA68C0E07C81BE50B86B8165D10204A00019C834400D4A + A820BE4E680688B4E20B6FF08026CD308325F46206B05C02134EF339703C2C06 + 12DB83EA36363B1AC2A0487CAA21C54026856206C107F9D0C20E55360A1F02AE + 52B7B8C8059047CD6A22D13CA3CAC019B840843684810257E0C34C6442139C50 + 200BD5E3C9180214210A41AD9D0F4A1019D9D9CE79D6139EF8DC0F1B80B5CD61 + 9D8F02665B9FFA060A981AF5D18F8A005CDCEE47B7BDECE82F66618C63FE270F + BFF98D11B9F05107A8D08A7449100BA98012E2A48485D0E481A392FCA4124239 + CA7C286117BD788338F35002663020731C9DC1176009CBCE7D4E054A20C00E5A + 48271B52CC6230B0FF05EC0E55A84209C4398B41C52950C6AEDE5DE477B968C3 + 1287C8552776F5AB4E34E256C34A56B062536749E0C205BEF91E72B2EA0DA9AC + 5E08C4C08236DAF5AE78CD2B5EF789812CA4615875FC82D9D24658B414B644C3 + 20C641111A44854E8B90D772E8DD1693B70E4812A00FC04EDBDAA6A20594E547 + 94FC02642692C04B2E900A0E74154AA900CA95569094309D891AD450821230E0 + 1B8275E5126079059E96304DF9A0433950A7CBD519D59744CA400A8250CCA61E + B31BCA8CEA547BC83B4A4113907AB1A676AB79330E302F0D4948D517C4F91EA1 + 010D9D4EB8CF4FCA38C633C6736A5B43637BD5085F32C277BE38D8671CA9D895 + 7F0674A0020D30B3FF4ED448C612299A70D3444321B5BF10E9C5B2287D401B0E + 7AD1689605C26091A0306A14A328BD8B0210484DBA204341D70237C41CF48307 + 665B5B2738611A08F0004E774B01583281A74CB82002883A31A3C60EA95CE081 + 319DFB54082080B2D36D261FAD7AD54DE8E5015E8D3258A7ECC426527988562E + 6B942B908293E06167017000196670852CBA95264048B30CE64A57A49DB100FC + 81B35ED128E734D679CE7626E31B758004FE6E25B083D5A3A0054D0C41BCEF6F + 8B8DA642EB07D9271F9247222A03861B20E1465AF416919034BA9814910D1B3A + 460A1CE927BE00013350325DAD5DA912601B912FC42A56D0D02438C2E18A1A93 + B9844CB8F10CA000FF8172480C51AB33AE8F692802E73A17991050260F9BC93B + 262B3AA37B018F12A52DB32356B388E521550B321187067C217AAD92693A57F0 + 02ECE1F9DCE84EF77E2EC4E77E6AC5BFE913B0BC019C581311B22D96FE9DBE2D + 0D23BAA085C18874F062200C994A5F9A109B48C52E3AAA2E0957847EA07697A8 + 41AC845F3C6635AEF50C669410915DA8210A2E8E4697E8A08637ACA30E6FA082 + 6F739D6BCF85C3853EB6E1A008F58F1C1A39AA7E092976ACFB32EC622B21520E + FA95854EF4A19B75541C00832CE0E59EF2BE953E40D0094F58805F755BFDEA66 + 3C000BAC2083956805D07734ACD8118BB6B1ABAD59962AF0BED7AE76C72E5847 + B8A3EC3034DD0A4AFF4F78B38350CC032CBBA4D10290E73062B4C491416A337C + C143AA716D34A250828F3B8E83148886C8A1A0382DCCE1254E880103F2C05B5C + 33410910D8430C88BBCB9853CC0BCC4DFDB16D97644B02BEE75C70F2CF15A244 + 2A8BF5F6451F2B58716FED1460003DB1B72238CD4B932B443D042118C118D68B + F5E63B9F4039E0730FDE7DBEFFCEFBFACB6A9F412B9CEFEE3BF2996FBF1BFF06 + 2EC9824FD8A2D20ACC655DD100905A427E104FB0488F815A33F0E1F05FA160BE + 38D3F82F38AE7251C0255000059E63060DD101614005255007BB856333A0382F + 575431274C15932833977A4566647CD0103AC76496066D7603655C1501243882 + 2468072578652488FF442588822988652D287429E87BA5727E65400536016E33 + 71055DA41331701F4001674680037076676F1667449884FB51674C8884459884 + 4DB88450E8844A58854628856CA00321E07560D72383F6855F982C0F877EF353 + 868A76861871233FC717DA8237A9407798A5597EA3778241495430119A7560E0 + 17373212251D605287970587E76A50902F2E56027CD0188E13066A508885A805 + 9EF3030C500773E0380D40633656428AB30EBF767AA6A71CAA178AC8165C5060 + 49D8E16C1701820C810546977BADF88AB9C76538C33C49B000EC814AAC621357 + C083E1B466E47600F4F47CC2786E16C2753D4004F02670D8B78C04955896E03B + DE178DFB262D7AC1FF4C9016510B677E14462E7CF7187E506971A168F4D36F11 + 670C0E300D51F00682483679000D0CC078572041FFD70003882FF81226A41303 + 2540016180532AB7533300002A50077B00739F383217E85436B70F005002AF97 + 1D08762DD9C2102B58822C688217999116B99115D9912F78912FF8825044002D + 7006555006644005A9E474AD7278BE380248F38452389353D8844F2893359993 + 3749853B49933B89934C588CE30304A165473D6276875576649794CE8876DCC7 + 7650E9584FB632A1E060E57259EDA7167D44407B774AE8E30001640B65388EF2 + A740BCA6057C005783687114C0076AE0042590078D238F0C802F1584006AA206 + 5D00069947018DB1FF5B2A074B743090A34727C57590A0686CA9573BF0B00FF0 + A0065615916F081D8DC28AAE7899B098995B064552B4059E150714407CBB0857 + 5EB46662E066C3989AE7A6753A800148C09695842CF4C68CB4A95897268DB899 + 7E2AE38568015AED571816950B7A632CDF0896D198119F267892D0000EE40169 + 491FB0F915CE1941FFE704908800A1C40D25000755500573D00508E88FAD3498 + 04699088794333A7902E4500A0E70D18D400B0A7182AB38AD01192F6799FF899 + 9FFAB99F56807460A016C2D7564303347C804E3C91036EF6933AB9A00ADAA00C + FAA00E1AA14448032C2006242003AE52367704861CDAA1224209D09876226A86 + 57053817F0869116FF69C3F90AC0592490349CBF702C4E39A2E2989C837401A1 + C1005C441FEB08161C855211540215B45266A026E1D0055DE09D73602697D84A + 0D349066803A22537A31877A8A5928C836000440001FC00CFBA004192199F309 + 1D13B99FFA0992661A92689A9F56804DA5D203DC840558A245D273055F000432 + C00053E7930B2A8540C99348E8A75618A865D49383CAA7FC9103FB4402AF692C + F1369B904A9BEA730C04867751C976FD461928BA18A07587C0293FE452870035 + 16F6B616DD978A30E29099F0084E1062CE9996EB887F8FE1498D53624A600698 + 215C7560795BE09D7BD78F99C304A596AB02799E14939035B79EE8C04206D00D + 6B02050755481349FF99F599A6D67AADD8BA82E6913367400417F03C027A66A3 + 797C2130002C1084109AAE12BAAEEADAAE3769212370A144295861B7944879AF + F69AAFC8F28C6977A9B9D908D7A2A2FED3015AE9A2C2B951BE305A10352998FA + 4C9A1462ABFA06DEC000F3311FD0897F16F7A39E9407446A06D30001600007DC + 79924ADA41615002DFE0AC74B202C61A108AF90F3EF00E5ABAA5343B0105E10D + 90197B273AA6F4B910F8B9A61FC99141EB91409BAD50C4015D200F6DE0073968 + 5E57D00B59F0456230024723A87CFAA7826AA85178A85C6B935D3B854B08AF24 + 800744697D917AB6929A162DC336B8E9AF37920CE5C20BC05018CE2217A0A024 + 83010B6EF87051B9FF0093A30F740005DAE0AC00F0AACF89B13E4AAB1CEBB11E + FB0D22FBB823DB0592C64151A00F23E0B1A063AC178843DDA004E7C001CB7A0E + 2BE0ACDDA09BD3DAB30F100177A0BAAC1B92ABFBBA2FB8BA2408BBB3DBBAB65B + BBB04BBBB69BBBACDB9F52841D373853C417342B5634547B000590BC44A8BC0D + CABC50C8BCD01BA1CECBAEC95B84D3BBBC0A4A032F20AF81E6A1DEEBBDA5CA73 + 6848A3258A9C37729509DB01C669B0172069A7D470295355E53B3F5EEA982A4B + 275A30133BFA053D0A9B1C555345FAB14AC09D905B05493A07959807CCA00223 + 800778800123405CBA647A7B108A4E250276D00D063001344BB3E74000270401 + F279BAD4EAB3B16BFF9FABEB82FA29BBF6A9C2B5FBC227ECBA1180821280121C + B0053CF33C5844A7F28113E8643D2C9003D4EBAE443CC4463C8517220632B041 + CA88B64E9CB6CCF243FDDAB6C719095D395A74EBA28EE000DD0850DF18707B64 + 116CCB05DCA00F21ACB20610263A1A4E870B9D894B052F0600459A196A500504 + 0CB93050057EC000B7F1C01880010E1C028A9330131C739B1B108B321C1BBCA5 + E790011C300E2BA00F3B4BC2A83BC3AC0BBB28C8BB98CCBA997CC996CCBB9DAC + C99FECC99D1CCA35D35D2D9051EDD1B4B908577245023E91B5D85B93D75BBD0C + 5ACBCFFB93B8ACCB124AA14A9C055DA0AF4C89AF4A59CC847576DBD7B0E2188D + E7BB0AC1D06C4482FF24082B5AAF301128E36093718A5CF039DE200344E004DC + 0C0106600303000F4EA0BFCF79B1A7D60B6952A4EFA00473D09D772CB255D000 + 0C202674F0C7FAACCF78F0B72AF004856C43C536737650102A30B38C8C0E1C30 + 018B920FD852C2106DC230CCC2148DC22558D1136DA6BACBC22948D1BEE75D60 + 40110FD0007C60135B449A5237027555C42C7DC42EFDA0BE8C0759C0324F5CD3 + 92BA3E943AC663E98169B8B32CB31644B2C55DAC6188045169C14799B1264040 + 0470C0D40CA02666300152FD0E0781135C747F75E40B1E5B1AF0C0077260C776 + 0CB973E03999B1CF660DC8355003B9E4633387C1EFF0033F500403B002A19B0E + 133000E5DC0D3C1BFFD1D4EAC977F0D77E0DD8A29CBB822DD87EADBA86FDBA89 + 1DD8841D013713454AC7050F004EC41B3D7C0004970D046094A0D5DBD99EFDD9 + A01DDAA23DDAA45DDAA18D032C60150DF0BDACDDDAC84C4821CAD3D09855B629 + 3F278A055E1924D6C143F1CB2EFAF0031E708C3DB0273D00037520D553DD0C25 + 504E6979B883480194172674A206A9D09DF26CC71E8000DE5003AD79D618D09A + 3AF0C024D00D09F30402ED544120002EB026074DD7092DBA78DDD01080BAF44D + 7BBBEBC9198DBB87BDD1F87DDFFACDBBFFADBA34EC65DB76B75F506648706633 + 91A12510033D91033460CB2F2DE1BB8CBD15CECBEA1ABD056004153A3E376DD3 + 208ED38536C5CB1CFF998004A28E940BE6429C6D8873DBB2B0FA1002C33DE37B + B2273080041F60B3F0B0DCCEF9AA32A596BF004A496D6A8071DD555053745203 + 7EECDD671D0265FCCF2F34280270032ED00D076D03A1FBC81CB002788DD7FAC0 + D7F56D07AF2BE688ADC9644ED88A9DE602AEE67770E66EAEC9827DE6852DBB1B + 312A4290CA174006EEA1060A1E4EE385044E30573069E1A65DE8867EE888EED9 + 34300662E0E1C24CCCC3FCE8927ED4A728DB4CC60914B600A2E0189C661DD2C5 + 4CD2B118FA30002951DCA60E03A80E032D4000EF400771D9C3CDAD968DA8053F + 400751B0047110072362DDA701012E30B64CBECFDDFDC73AA00327F4CF013DD0 + 37D007549E0FE3BCFF3CA14B005CDEE5F25DDFF43DD8FB9DEDD8BEEDDADEED83 + DDA6D9D4023DE00073400158C49235114EF4E101C6EB02421CBDB34CE1D6EBD9 + F10EEFF25EEFF38EEFF8DED9D84B03DADBE87FB0054E2C9B1FFEE1942EC6961E + A6CF54BEB78D2E83911052F5E28E320AFAB00252FD011753DCA99EEA1CF00D3C + AEBF3EBE620CE0880E84EBBA5E2272F000A0010F21B0E4C1EEDD7850ECDC40C8 + B323050270F352D0ACCFDEC80C33EDD4FEE5D60ED17F3DF4445FF4465FE6469F + F44ABFF44CDFF4442F8BE37306ED4BD27C0E6E79A05AE94402419CE85CDFF55E + FFD9319D051EDAC4AECDDA62B87D09DF3B79E1BE76E807BBCDDBD2E117A38EDC + 1380F1A97E312D40FF0F30900566066E7CC000A1840003282F4B3004B91E0721 + 420550F00E06D0F24C3EEC90AFCFDD8D07A141272AE003017103382F05BFC1C1 + EF2DED5DFEF3F910F43D3BF4655EE6623EE7A83FF4A99FE66F6EF4AD8FF4AC3F + FB73DEFAB11F0112C003357892A1497CF29107800ECB3129DAFA2EEFFC7EEFC8 + 6FEFCA3FEFC70FEFDA3BB67FC08C7257F0213EA92D93F6DA513F9C5A870ABB4C + BAA332154FF7525D0779AFEAE69FF72DD00296ED9C50C0525A70CF003003871F + 075B009A98516A8EFFF2FABFCF2100082C3F103F3E025252411512031304198F + 19902B0395960306109A0F589C9E9DA09F9E77A4A5A6A7A8A9AAABACADAEA612 + 291F045D170B650DFF5779BB791EBE79577C7C6F482124232C3405CBCCCDCECF + D00509D1D4D5D6D7CC342F62485D6D0EE0DFE10EE2650F0F6565E3DFE2E4E0EE + E3F1F0F3EDEDEFE46D171769690BFEFF00030AF4C74F1FB8077E2850F8D2A0C3 + 3907E9224A34674E1384463626649CC051460B1819607CCCD0A224855D1E7A79 + 80A2048116285000D09931E4C190380F3C28A1030100093C18820A1D1A548750 + A3458F0AC5536350A14441820C98C5E1D1A30F942E59CAA4299457515E4F4528 + 359654D9556755A57DC56A6DAB085624F0C0D3629F033F6F52FAF275C583B037 + 403CC8303682068E02879F25460C6D71B3C59099455E36993165C998ABE1D046 + 0289902DEED8E1FBFF56068BE987A3DB885E1DBA35EBD7AE53E7E337B0B6C07E + B8D3E87BD04021950E58D2419C28119DC5151B392A9F30ABA4C8E71F5B64E8D5 + 8BA54B280C00006032E4E603260006D5900194A8F9F3E883720891A99088208C + EA58959401ABD64B5C2180DDFFB5958053FFB1A54A80000A68CA7F0422586005 + 3C7CC081105D3880C50C7CFCB2974A6F0026830C35BC908332CC4C538D88CE90 + 88CD89282E43A289056823860C54DC730F699CF8110670E8A823E38E3CF6E8E3 + 8FAAD1869B6D44FEC3C5026D744005157E74922371C4598491465426E70807D2 + 6549124904A4C4404B2F6547077743CC905D4F4E70C0011EE50D8514066FC6A9 + D45278A450C40F85FF443515017C4252DF7D5AE5F7D5A06019C8168103A682A8 + 808BA255410A3AE02104175C944141857AEDC5C7156F0823D8316CE490E2A8A4 + 966ACD66DB2001C66BAA99D341077EBC7ADA0310AD131B6CB8DE4A0F3EFA0859 + 64915C5C20E143E9A0F32494651CC75172562A4740495A6AC90103085C979D0A + 6446C1930A329CD1829A6C62D0667AE48A8B81151F1EF1830152C9E7A7241F00 + 1AA845FCD5DB49290AE67B87BE09E2EBAF82A4E81BF0BE040F6C70C104039C30 + C2F94690021E1C9C014E427D51B79707C150F0A9182CB0E198A920877C220E2C + 8821693DF070F26AACAFE228DCAEF2A01CF33B32EFCACE6C450E39A440FAE443 + A3B1C8A623659544FF2FBBDC23DF66C9017D75586BC60F512C3104143C0D80C7 + 10420801EEB849750DE79C41E1A1C31846D050840A10F830009F55F96983BCF3 + 76652F7FFD1E2C30C3FEDA9D37DE07F25DA0C2752F7C470AB23CABCF1A4B58B8 + 575FC3BC91C760C7B080C3C78A6566D9E5D754168DE69657866A6743ACA69A03 + 0FAC0CAB1FA837199C8EB9B6AEABEBE1E4B3CFCE01E9BC80ED0B1C79641AA4BD + 532C94C731AB5CB3CAD581E5965A6650157666D01145770CD0A1C2083A7C9081 + 102D68CD66B8E59A87070156B051360D39A8A0C2DAF349624356705792DFDC84 + EE2B00BF043731FFC2F3D38FE0FDFA27CC3FFFF80BE0FEF8F53F04C1E5037800 + 03391E4085BC58ECFF626FF802108A11B92224661A180C913436A8A20DAE4883 + 190C21073D48C20F76B083193CE10639E399191D040B1D0843AC6CC4321CE5C8 + 563FCAA10E65A41AD5F4AA1F00B19D10FD71A4DBF1AE87103987122532B48C38 + 91684F5C4E08D4A4BC2A2E4D4D75300304A23684E8FD60042310C3141F94B570 + 95C728724A0A523E200651D1E08D343000FADAF688B7B50F3F1621941E3901B8 + 7F09106FFDBB5BFF0616C8BD05727E0EC3800CB0D4065C38F06229E1C3172890 + 05C184400C23C801E544C6C94E2E838542B859234B07AB52CEB094C0595DEC5C + C7CAD7DD4A76B421C8ED6639C45AEAA691143956B234B102A3F9924ACB09E62C + AC484C0EC4A00471FF1882B6BE280631E88004E2CA9AD6D60414AE1125526C7A + 011CE1C802F4BD2B03ECBBA3FBE8B54742019080F94BE71FF375CE75B67380F2 + D3DF39DF994EB81885917FA040A72009492038EE922F2802084B48D00F8AD084 + 051D21420DAA501276B00823E8CCAA520643539A1275B03A8D3A5847B38ECEEC + A3309BC73D7EE82B59D6929601B940398693A32642F1A5C4630E151FB1349A72 + 406A6A000004C2884930EA608A43F81635DDA4146CEA409BE3334C37FB445370 + 8A336E102827DDD6E9BF42A293AAF0646756055840770AC00A8FC20096B6D086 + 2D34800FBCE0E71B16A20619800A449E54615C47788D04908F7A1C180DE94C77 + CABEB62C952FEBE1FFE85A49D857FA7076B543E94909A21B958E6E89C11B1E47 + 9023D9605A9600572C660690909D1F984107CD6C661875A0A6AC51937B6E6293 + 0E3EB44D1A0C60056D5B9A245610CEA7BE4FAA5F49A7000CA1DBDEE68FB7BE0D + AE70874BDCE21AF70E119040A438D0852D38F2811004021F9020831888C10520 + 3A6842B5CBDDED7AB7BBE09586117240BD2CFCE11D2A9321ACD44BC3F59ED249 + 3B8CAF7C77349B93DA57B1B71396398CA389293DD100728429308559153AD291 + 0010285968C3C8D3E56ECD5C5F438A9D9401C702B060056CB30A019E0A2841C1 + 0F2CF98BA73A434CE2AE9678802336716FE3C9E2138BF8C4294690156421A932 + 6C414979519C2F84FF41C962708C0D3430423416AAC167107944283AB2347040 + 5E1D202174AEB2A85F67983A967522B08375656159094B7EDC77884154E97094 + 35E0B701D800BD2CB3658FD6D4F93C4206A18D3318A9B7DC69A2964D5668ED1B + 7DB0023F4562C31CBECF6D3F1C0AE31ABAB83738B4A2839BE84557E0517421C2 + 05CA4005E82E4E92405003615820E4F07AFABBA0FEB4A7C71B51E692AEA25396 + B24553890E1C86B466B0F6A8CD7AB80FFC7E99965EFEC6035CFADF33CBB1974F + 8CE9721C649502F389007860302617DC4C36D9797B18E0410E8A90546D60783E + 55097487F348E84F2CFADBE00EB7B8757B87B908010CCE4D08A654B2B84E0161 + 3035C8245C1BAA42FF25DBBBC8F4CEB7BD994C3D214439D5003F1DCB5063AB2D + 6B59CB5DB6B5C271C73B0744D69798F0B51C6D20EC353BC2CD07AE439C996D32 + 2C4D53087840979E0740023FC976C3B5D5F6A071EB090124DA7E7D1080FD5EEE + 7299D73CD134A779CCE767BF99DFDCE631C739D06DDEE89AFBFCE8461740CC61 + FE73A4EB5CE6C8859467F6518619E8022517130610F2E08410C41BBBA20EB5D8 + C34E761C4034044248EF0CD9CBF6B553D9CAAB0BAC48E74BF7D891F4D6B8CB6F + 1B784D250003E0CC7FFFB5802D3E8B631B1ED9CBE6694F9D89F62D70E0A84610 + 321C8BF0041BD0517975D0B6BCF2C3803CB01C14E30EBDE847EF5B52C845525B + E8028E75EC170FB8FF7B4324E098A8F02D42147AB7DE634FA8ED6BBF8CF18A51 + 08370AB8F05129AB568BF2E0066F5DC2F1AED8349099591197F89907B0918A07 + F3F0D8DF78E2C5C801316C40CFAEB581C9259179CD6F5B13D5D242E7FDF0E1FC + 093DE7EE8FBFD37F2EF4F9C1BFFEF4277AFCF15FF4F7373DE9F7477F8F824010 + 820B1450316AF505C4C059B2D769B947760F188118446A21F01BAA5643C3973A + C5271C1C0552B1E681B2763377B7700BC77719217D28487D2FB51C4E44711F50 + 78D88778CAC65323805D65B3196F54048DE067CA132FE6777E10502D2EF1124E + 90070D602F8C7668FD177FC35574E9E484A1B784F6E75B52383F566005E2D202 + 5DC01BFAC44F5947FF0CC6F002E2437B0E4550BB37500C456429D4506BB8229B + F1227F906AC0C157172870B2E22458967CC8E71AB4B67C24683B84000169164C + D1B715D2570914575983178386B771B1E731233701C4940113F05A3F28681621 + 845A10260CE00425C007EC975B41A774F9378AFE778AF9878AAA588AACB88AAE + 988AF4770756D0200F02111DF00579C00499A22912A4060C002A28940018248C + D2408CC2388CC8588CC9788CCAD88CCCF88CC6188DCB688C05E0022410020DE0 + 7677886AEED58DEDD55EB2227775378E3CE4877837342C38017E274786187806 + 1078354002304571F4488F2FC88804C04671F6212D92833B886D76748998887E + E9F712D8D18925A0FF067CD0109FF08A5338853E3785A8F890B0E87F12597317 + 097F19599118599160651404F0190E708B39A6297E310CD3351835681910D892 + 12387638608D321087A6741AA6318775D85755E6322EA4873E496B88756B6446 + 88D3276887580392156C2F05838C185AC90047393015E3478902B97999288430 + C1009DE88979B05638D2091CF98A6219966439966659963F37387391055DD005 + F9E43858C78B11A4922C500434005ED25842D4B88C1E949721B497CEE8971E64 + 042CD0194C824A36691A154587538651567643AD018292F96A1D7558BE625FE8 + 184CBEB6792888662D588FA0598F4C997D620064FE683D6D967255394E043984 + 59C90051500279C0FF07BFD19068799616C9911B7996BB799B1C298B0F13315B + 00065FA00BFC140CC3F06E4E700C9A74862EF99C2F1942E415024850934EF209 + 8B999317A85105B7873E191A3E74990A178883B81C85D83E29086C02A694A379 + 6C9030066F1495D6235BB36589AB095505F99A4EE0046AD0955460930F7003EF + 27A0048A7302EA72075AA0048AA00A5AA02ED70406AAA00C3AA10DBAA0114AA1 + 0CDAA0196AA115DA0702EA3004F8070FB0045F9012EC967514F06EC7E0020215 + 98D3F8A22E1AA3D008A3332AA3D389043469434AC4098AF957DFD8767688873A + 220FE4587796E965B69699CBB19977B48E4E8A1CA119A589D89EF93800E42395 + 6EA69AF7890957E9FF9A075902B2F906B5090AEF07A1F467A6B8E99B69BAA618 + 7AA1AA68A65F358BA877015870127189317E91056FD05684E102D0F9A7D14950 + 84F922E6A53A3B0A1630C48D197887A8717CDF49587D289E433294E65994B675 + 88EAA9949A7A8F9855A5563A0075404C04A0A55B9A1F9AA89FFCD9950D00A015 + DAAAAEFAAAB01AABB23AABB44AABC8553D1CF0075DA06E1792759E520C215083 + 9D768C334AACCA48ACC68AACCABAACC898ACD2C8AC0930A8329005C5A744D779 + 0EA0A0A8DA794A2E33A49439991F386B23881B4AAA1C4CCA619D6906521A9AC0 + C42701394C4D85045B8A9E5DBA89AF09A679C0100E41A66D4A7F097A7309FAAF + 656AA1A918B03700FFA106CBA0087BB01C7A8A02BBA100EBA601AB9678C096A5 + A131AC270C5FF00559006F998403801AB2813AA8784001B3E209878A9D3EBAAD + 1805581C85448FEA4AAB243B3F344BE4B966E749AA1D76889A5A342C689F7D46 + 9FA36A9FF38A9F5EAA95FBD99F0C210AB52AAB1EDAA04FDBB4AD1AB5512BB550 + 6BB57D3038159B0E7881295E5821D4E575016504D05AB6667BB6689BB6C74898 + 240023D75A4E3D0AA43FBA7673780E436A0F456AA4CB57AE1C71AE9AE7A406A0 + 021317A50336595AD1543E58B4F28236AD69AF5F5A021EC0105E61B5945BB996 + 7BB9B33A6304480E1D708077BA6340A09CCC49B632EA97A68BACA54BA3A7EB8C + 0500512490056987FFADFBB1A3D9BAB28BDAAD3DE99DBACB2A2445A9CA719E97 + D89935A0946B169095603D7FA2B88B6B114178B408A906911B8A9E80B90A5AB5 + 04EAA11A50BD3710B5D97BB50DDABD3700BEE08BB9E2EBAA4F1B0115F0534220 + 2C6180B15F2B0C8FB3A220ABB6F45BBFF64BAC46E0BA386AADB3CBBF37A9ADC3 + C76A90291AE01A82061C3340C9B7EA68A902E96BEE487D51144CB5D56789ABBC + 5AC11316D112F9891D9E08BD5FD0240D49BDAF6ABD054AC2226CB9086BC2AF1A + 01E6766E7EB00456F7B56BA5A235900CD12AB2CF49BA2DE97B6827BB9FC7A38C + A99D2D631A79B8BB462C3A1770B39695B396C03E3A8B1F9D599E124CB4BD5409 + 4FBC9A8390C19A68FF90482B9B1E4001D2DB09E13BC6D95BC6647CC6669CC6E1 + DB076ADCC66BECC670FCC6683CC7715CC76C2CC7753CC683130292B285B9B08B + 2A81927980043150036077BF889CC865EB7B3200A07B94B237D932DA38B755A6 + 51DE9AB7E3A81A0AECB7E6C78ED1F78E8067003175C5163C0059AC094AA0C11B + FCBCD13BB9732CA0E50BCBDBFBCA744CCB6A2CCBB26CC6B28CBD045ABEBC8CCB + 639CCB63CCCBBA1CCC73CCCB144B015B984FBB08496BE5010CB0022F50977AD9 + AC356AB62EEAAC894CB634C0024EF6072C47BB3C1AC98B5A4342BA0E5916B3AD + E3BB1C01BCF32A7136F082C55BCA7774CA10A0CAABCC0060AA9060CCB465AC01 + 791CD0771CD0E10BFFD0B54CD06D3CD007BDD01AA0D0696CD06ADC049A6BB158 + B0A796160CBDB869C3AAC81CADC8DDDC19DDA647D959CE432C8EDF7AD2E1FA0D + 9BCCC08AAB04F9988F6B46CA459B1FAD29841BBC9F09C90714F0959CA0014D80 + D00CCDD03F1DD4693CD4706CD4748CD46DACD4449DD4121D9C5AF8070AC87A57 + C02979016F7509B27D79C3C248B6D2E8D55CADBA629DBACE485E784005219DB2 + 403CD239B993E70C9EEAFC3AEC5C8945E9C44D7CD756FC54D706D3964509764D + CF03C0BC3F60D336EDB85A199BB3B9D3FECCC600DDD80DFDCF900DD0033DD010 + CDD88EFDD86F7CD998DDD899BDD9951DD99EADD9974DD997DDD9967DDA0D8D06 + 002D8BE616210DF0FF064CF0B957B0B16FE0B13900D61D9DDBF5EB02E3B1AA3F + 2CCEB50B43722BB78CEAAD788BC93CE2524BCAD27FBB155A8161B3F001310DD8 + 50857EAA8CCF86DDC15EE915A16DD96FCCC6935DC6E1FDDD8D0DDEE27DDE050D + D9784CDAE6BDDEE7EDDD8FDDDEF1BDD9E6FDD9F20DD14D506E74D1065DD085C7 + 7931F1FBB1BA3DE06AEBBAB99AD6A140BB3DBAADAAE610B4F2B247AC6573EDCE + 8A7B6DF26C59C64BDDCC4B07844DD886ADCFB2499BFBEA09A25DE2E56DE228EE + D8969DE22C3EDA27DEE22DBEE2A22DE39ADD0411704F6090060EB0045777A71A + CB752B7A97043EE4D09ABF2350813F9CE087AA986C0D703B89BBB151C0209899 + C971663540CFD0CDFFD7534CDD5C6A111CDEE1856DAF5B19A6FFC9DDE98DDA92 + 7DE2E6BDE6F38DE66DFEE26FCEE6721EE76F9EE6765EE78F7DE7A85DDF6FDE04 + 4DA05C1CB00549B0E36FD017FC24498E33182BC0022EA022678BDB6B1BE9CA0A + E9936EB6607DE92E0087490E3F0B4ED273D809331BD7ECA0C44419027C425B78 + 4DC581E6D7C726DD184EB4164CD32A00E61ECEC59E18A60C190A1AA0DA000D02 + 8DEDEBC0FEEBC2DEEBC3AE01BE0ED0BC6EEC8D9DECC7AEECC48EECC5DEECD21E + EDD4FEECCEBEEBC5CEECD92EECBC6E054E46056D99103976A29BC2075B670C06 + 406D097004C7C8EE65EBEED00AEFC40AEFF2DEEE6A7B046C2B034B30E29B7EAD + 9F20C9C3ED76A873FF235776C9C8FD0E265889F718DD32CD6159EEEA5B4ECF34 + CDE1D72D84D89D9549AB0662EAC8D63EED1D5FEDD7EEF1210FF2225FF2247FF2 + 1F9FF223AFF237306327433A0798B1C88904CBC9E8447EF3CAEA02479E058E8C + E04BBED641DC9870472CA24E0E73BDF0AD3EB45B6AE110FFB312CFBC0040EB1D + FEE1601AB9AB2A0ACA1EEC5A9FF55CBFF55EDFF560FFF5621FF6643FF6665FF6 + 687FF620D0F215DB05E9D000258A1227CAB11E80EE2E1079388FF34690E9D3EA + F39F07C00C0EE5297DC0EE40E59215DD2F3D0B13D0F070F3F0D35DCA8CAB0951 + 2FF51E0E05EAB795FDA9D85E01027D00EC7DA0DA9CEFF9A26FEC9D4FFAA31FFA + A69FFAA8BFFA595FFFFAABEFFAAE8FEDAF7FFA9FAFFAB04FFBB8AFECA0CFF5A0 + 5FFA1AA0B974A10F7E808BC7992113E40431800CEACEAC972EE9614DE9CFEFFC + CC2FFDD1AABF22DAEFFDABE0B6DBD670F732DDB96581680616A71C9CFAD2F988 + EA0E7FD77BDDF4CAC1F88116F9106006943FF50689D30AC9EF240E026800ECFB + 0F081A206820822085878984828B898C888D8D89938E83948F869088878F9399 + 87919A999D96A4928AA81A1A77563C78606D5D0D5F571E79B61EB91E57596F25 + 0C032F45464709C5C7C6C9C8CBCACDCCCFCED1D045233A59580FD8DAD9DCDBDE + DDDC0FE2DD58581DE77E617E1DE9EBEDEC7EEBE7D8E2650E0E6DF8F7FBFCFDFD + 100021A81830C146FFC183060D7E20B0B021810903224A9C48B1E20A860C2768 + DC386145C58F2043AA0808010002250852A25499F2644B2D5AA03060E0C4499E + 0EE0B42112C473A74F417D2A0115FAB368504E4447F96CD413694FA6457B362D + EA34AAD547372AE8902104CC960E146ADDD2958B02852F324290A8E1C24882B7 + 70E3BE2D26B7AEDDBB74EFEA856B2487981042FEE41CFCAD30E16CE6CEB15BEC + 8EB1633FE51ED8D397AF32E5CB96DBFC20297005C7CF1AEB10C038FA03C49021 + 2F32340DDA06EAD72047065CD9B2B6EDDA30A1C8B489D330A5DFC0830B1F4EBC + B8F1E3C8931FD7D04407060E2D6451E0C387ACAE2BD4D5C82031A22DB4BCDFA5 + C10D3F77BC796809FF8CB020C1D5B0FBC3DBC68D2BD72131BAC78CE3C5AB2FCE + C1E4CCFBE4738F80FA38A0051D9CA9E099411A317890430EB906DB441735B491 + 831E4D38A1019B0564C66D20DA969B4C0CA8F11E16961012948AA81C729425BF + 11024A8A89BCB8228C34BE38E38B32D2D8238F3506E9A2253A06C9E26F361A09 + C28D3736718773D0A5D1861F5F78A0062EBABCA12510DB89C1820B72B9559798 + E9D945E6997CA5F9169A6BAA59660E238490057C74BE279F37F6E1D7D89EF360 + 51C67F6D0028E8654A40D0A1A10038089A46A461F481841F65388047AA65C491 + 69906A88DAA13FD016E2A7BAC964229D209850EAA9A6A68AEAA98798DA6A22AE + AE1AABAAB4CACAAAFFADAFD63A2BACB6EA7AABAFBB02DBEBAA6E3067450A7808 + 7141191D5499C7B3BA00C107106F58A9D697058817DEB6DA764B9E0B715210D9 + 89751E268E3679BEA3AE3AECB0BB0E3693F923EFBC66700681010B22A42F840C + D521296A156694D046FF6A5A118701FDC0D2C22E31BCD28825908B62A9329A50 + 311AA9563CC9C5AD724CC9AC1A77FC9BC5AFB60863AC93A0CCABC81467CC32C9 + 1497DC72CC34EF0A82153AE0C141170E74719675B95C71C5176F2011420C23B0 + 304C794C27D33478E63D1DB5D354435D9E7A62E0D1C0B8E54A1C8E7C88D1A718 + 9F64EF47CF9F0362A636800070F683018A2EEAA8A399465A5A1D0D6A84A9C120 + 210C101D9F06FE12FF4CA3926B42AA87CB9A38B08BA3DAB8B08747BEF8E3C346 + AE38E2985F5EEAE4BA72BE39E6927FAEF9E168DCD1C4736DA4510615573C3B56 + D07C546B34034993C9EDEDDEE63E0D0B62202198D7C0D7694E6264EBD9677F01 + 269FF6F2FA7CD1366706907050DE097DC0AFF505538851DE1B7D903DDF069004 + B8E082130EBCC519A73F33FAEB63DCBEFAECC7EFBEFCF0CF6F7FFDF8BFAF3FFD + FB63EC7FFEF43341043EB033FFF8212C40BB8E07D252031618215BC610D31124 + 383566CC8582177C9A0437A84123C44908C10B2138EE8418C5186F4FFBE14FBC + 06C5427C38CF500953C2A2F2E690D230A460941A0D431465BDBA81EF50E3235F + E0B450B87249CE04FF5338A21297C8C4264A2E894E84A213232745264AF18A4B + ACE2149FB8C52E9AA00911D0C10784E0806551C075409B16107E513BDDB91177 + 704C860B488084AED9D13060238709D7E50E77A530327FFA4F81E6D58F122088 + 243F18C0C0165910EBCDCD7A16D9DEF4F4F63D0D852F202669982669C3C996AC + 246277B49C283917BA5166CE942DC318E7FE273A54BAD273AF3C252C6729CB23 + B61296F36B427392E5801E600181B7789D07F840B41284A0814B8B4679E2B8CC + 6E49AD9947A0869CF823C26A12867827748C62B091B616B2B004CF0B081D0842 + BD7D3DF28612518DF5BA37811EF24D22970448268518B83788D08B48C4E716B5 + 18457CF2339FFA0CFF6813FF69452A9A00056E68420A42C0813F6CE19762C152 + 2EBEF00520A8E198C220C61B371AC7EF804B4E5CB366F04828B6FB14CF1DFA51 + 61BC0649A096264F0B8702880A6AC0C881B5F37AA7198024D9E9BD770E4036F2 + A4A7E0EC79C76C0854A0FF24E85197CAD4A6EAB30F2FC01974B6D080E9243068 + 670C81184690CC093E43A3DF012B589521D66D8DB518EA2141438B2AD2AF9D2B + 6CD83C293CE41119C900CA9B9839100C658A80493AC8068E5C880E1F02D8D2B4 + F3B07578D43BE35912A1D6D39A078D2C0A242BD9294CF6B294C5AC660F6A5914 + 5CD6B2990DED662FEB59D19A76B4A74D2D6A57AB5AD14E610A68D0805485B005 + 07746006AD93681EFF88F90563D680ABE339C231846B0CE20A77B8C82D6E728F + ABDCE632F7B9C43542D6FED0D6EAE624AEEECA6E1FE5511FB40D9290F24280BD + 1454D3E905F69C9F314D4F0D0654087C68939E8CAFC310A005A256F3709BC52F + 6593C85AFDF2B7B598F56F64FF8B59028756BF018E2C82153CE0D0FE57BF1066 + F064239CDF039B40B639E3406DC940816AA5B11779D80E5729788CB346B0A3DA + 32F157590052EB5A338FF489EB09F5F3AE7A0812AF9931434CEF95AF9A3AD286 + 0D51EF4DDDA9A9F6BED7B1B7D10264D8CA0DC99656B34F8E32693DFB592A1F54 + CA95B5B2662DCBE5295F79CA9DA53296572B66274F59CC613EAD67413BDA27BB + 76B26888400A3E80FF872E3C940A55C2453079CB25EE0C63B9C60D34A0077DDC + 413B57D02EA8819C98EC62B0E1C9A4D96C8C6224C30F9732CFA5F5829E0DCACB + A0F32E84A7D82B32498E8C64DC2C59A455E66CAAB7BC6A36B339CB997575AB67 + ADEA5AA380CD4F7E35AD6FED655EDB5AD6BFDE35B07D7DEBD259E13944581615 + F8104CB250A75ADB61CB7854AC626954DBAC5F2D02EF90508E46B7F54EE98AB4 + 63FCB4B6725BC63F6F08A7876CEAD7C492C63489B55E627D181B9278AAD42951 + B275C32CE67E5399DFFE0EF89A030E70811BFCE0084773C217CEF082335CCC1B + 40C3B1EB7C8136CC0208BADD8596D4B0963F2BB7D01F2FB4C8053DF2911F1AD0 + D26C406F18CDF2F8FF38BADB7BD46EBBEA73B6CB80775E7F7A8007D46D2803E8 + 8B9113709490ADB7DED7C474259D9CEF7CA1B0B5966703CAFDFE729A1F9ED931 + 5B3DEA0897BA96C76CE687F7FAE05D3FF3C39B80333C542100178028B4AE43CC + 0532A081605286714F2C77E496F5C48226C6DCBDBAF7B4FACEDB4E7F2BBAEA03 + 694973131F814A3C8E6D9EF36C18D26D8AFCB9793F8037A2535EB146B737BE6D + 0305A76FC3EBA00FBDE8474FFAD29B5ECC68D8E516D290062C2C1B5AAFD3521E + 9000851A18A02D212779C9410E5D91E71EB92307970CAE0178EB82BBA48BA139 + A5CB7881345CA0E2E766A9F2F491F36D38E19009F379790FAB5EA213A0921239 + FAE66BD3796FF3DAFFDF6176F8D4738DF52E7779E00A57FFBFB77E7E5ECB3AFD + C4863FD607EE7E30CF1FD7FD867FE8377F9E955039D302AC27074B501DC2F46C + 5FE00424C01D4A0356C275776155625F95817B17411E4447BFE3792008632564 + 1FE5600F81F27CAC077D81626E6AE31F652078D9C0003BA620DCA33788E57D98 + 07129C327EE407829FB70128008440E85942D86F453884548684441884067784 + 4C88844E18854CB8844EE86F55988453988554888510F78459288545B8845D28 + 85CD21032D70010BE00054502DC2940B7CC00021000524600606A077BB778778 + 98877A68042EF01720E48380E81E89416ECF5788CDF77C2B7873F2527D83A157 + 24311093046A8E44FF6F03C05810205FF0A5742EE10481980D57288646A8855C + E8854A188AA56885A4E88563288AABB88AA7388AA81886A1B885AF088AB46880 + 3200066980767ED03A6DE80135E1040C400203E04075A787C8988C25A76D1E58 + 7C80485291514669B000AC97822AB878E7D678EEA105E3253D4387833B041288 + C4832D11059D880DA90886E9B88EEAD88EECF88EEE188FF0388FF2588FECF845 + 0B2504BBE8000DC086D6118CC2488C13A88C045990C7F551C4778E21381FE180 + 0FD5788885B88296267D69C388EF916924812F3668798EF43DE2438E29C189CE + 880557A88EB48885B25892AA988AA0088528F9852FA992EED89231F9849DE592 + 347992ED38050A85FF01CA920655D02CB5401600F90B6BD11D142872766887CA + B594C7E59415F8942567047EF78123D98994868287E87CD7C88200E28230E81E + 85023D21008E8255378C354FE347440A890D1BF09670199772399770C9067479 + 977849977639977BB9017D79977F59977939986FD9978629987CA9978A999885 + 2997096505807106BCF805CCA60B340190C35803C260909C898C4650047F415D + 6D899594D606CDC7958698888AD80F1659273B672F6630641132118C15444997 + 89F0C507A3F90070198473E99B42F896C0F98471498F79498FC42997C3D99B47 + 289CCD199CD0498ACE998ED3A99CCFB99CCE599DC0C90663706C1CD0065CD006 + 1C5699C008904E50FF024E704C23D699ECB97BD24401A3E98C59B99510A9785E + C9782F5854AF894866E06990C2582A00925AA09B57290E8479A0089AA00ABAA0 + 0CDAA00EFAA0BDD99D3AC00167C0050BF000146025794013970990EA5904ED19 + A252B91E7F779580570F0E9982A8097D14D9A2F9D09AC07305D807103F50030E + 91216909920840A00A792ED009A1404A97D8699DC7C99C0C0A9C415A9C423A98 + 484A975320A11AC60566940BE6198C2570A57E96949D6987BBC7A5C1F71759F0 + 075D60A2CF680F5AE97C5C699FD8780FDAC8644EC07380331AAEC158A4B67950 + F0053D0A3672690170C9A76FE9A71BC0A782DAA7709903854AA87F8AA881AAA8 + 7769A87309A8807AFF9790AAA8914AA98AEAA88B9AA86F89A97139A99A9AA97B + 6AA96C507608A83A1DC6A1C298AA25A01D2500054829A2215A047D1802A249A6 + C6579AA76988884820ABB90F30CA564E602F74100336D05EF3749BC8EA495AD0 + 00BB391F49FAACD01AADD23AAD4E2A55A5FA005490AAE679A56A5002225604BF + 07ABCAE8022C460521159F2C379F685A9F89779FD9989FD6E588E2346A02CAAC + F2391F89B1A883BAAFFA4A9793CAAF00DBAF01CBAF893AB0A0FAAF072BB00A5B + B00A6BB00EDBB010FBB0FC3A05C7922C5CC0050E50025180AA97D9AD6AD0AD5A + F0AAE2DA997364AEE87AAB26F8902B2A91D337912FFA82DEC68DF6E25E20C974 + CD5A0EF14005C059FFA995FAA8A1EAB383DAA9102BB40C2BB43CEBAFA11AB046 + BBB096AAB44D4BA8040BB549BB013C6905C9920469C007DDBAADABAA0679A01D + 6BE102205A685E3A7265CB9E9F2906590006B61A82664A9F69DAAE6B0A969DA8 + 633104920C40A6E7620E7E400514F00253D0B016C0A786CAAF85BB01872BB111 + 2BB883ABB88EBBB88A9BB8900BB9833BB9913B066240405BF0065A8B9EDACAAD + 5E1B62AE2AB6236B901E2403F0D9B6DF86ABD6989ABCDAAB603992997664C9AA + 894A90B779BAB77ED0007EFB0562D00441F8B8C26BB9C43BBCC64BBC0C7BBCCA + BBB81B40763A03041DB6B53501BA1F6B254E507BA45BBA04192759B072AACB64 + EA4A9F5D39B76DFAFFBDE65B2EBADBB77E4B015AD504812BA895DBB8811ABFF1 + ABAFF50BBF007BBF114BBFF98BBFF3DBBFFF1BC0F23BC0FA3BC08CBBBFFE4BC0 + 8DBBC0FC2BB0F78BB91810024090055FF0B556BAAA5D9B07DE1AB663ABBD7A28 + AB7E78BE2284A2A9A3A2AEEBA22D1BBB27BBC2235C42BC7B1667A1064EB00256 + 30065360C000BCAF05DCC0C2CBC3072CB13C1CC4C65BC03F2CC402BCC3044B76 + 3A10021E4051D64BBD5EAB0648D0AD5020062EE0C11F7C0408C9C2E9FAB6EB1A + B72CBB78742BC25C8C47F89AB36691C614705124600580CBC0701CC7723CC771 + 9C03747CC7784CC7769CC70CBCC773ECC77CACC781BCC080CCA763F0024B8C04 + 5940011685C11E9B7FC154CC551D8CC5779868DC56C64545C2B9AAABAA09BB2A + 4CC6A0EC5658B0BB54B0BE5F00C36B9C16DC3106717CC4096CC40AFCBF0BECCA + B37CC7B28CC3B70CC7B4ACC0B52CC478BCCBFC5BCBF68BBF83CB93897CCA9CFB + B58EFCB1571262617BB6947C5CD42003983CC25E2CBE6AEAAE6C0AAFD5DCCDF4 + 50427DABC6691C08003B} + end + end + object bAceptar: TButton + Left = 344 + Top = 367 + Width = 75 + Height = 25 + Cancel = True + Caption = '&Aceptar' + Default = True + ModalResult = 1 + TabOrder = 1 + end + object memModulos: TMemo + Left = 128 + Top = 112 + Width = 289 + Height = 233 + BevelInner = bvNone + BevelOuter = bvNone + BorderStyle = bsNone + ParentColor = True + TabOrder = 2 + end +end diff --git a/Source/Cliente/uAcercaDe.pas b/Source/Cliente/uAcercaDe.pas new file mode 100644 index 0000000..312711e --- /dev/null +++ b/Source/Cliente/uAcercaDe.pas @@ -0,0 +1,66 @@ +unit uAcercaDe; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, JvGIF, ExtCtrls, JvExControls, JvComponent, JvGradient, StdCtrls, + uHostManager; + +type + TfAcercaDe = class(TForm) + JvGradient1: TJvGradient; + Panel1: TPanel; + Bevel1: TBevel; + bAceptar: TButton; + memModulos: TMemo; + Image1: TImage; + procedure FormShow(Sender: TObject); + private + FHostManager: THostManager; + public + property HostManager : THostManager read FHostManager write FHostManager; + end; + +var + fAcercaDe: TfAcercaDe; + +implementation + +{$R *.dfm} + +uses JclFileUtils; + +procedure TfAcercaDe.FormShow(Sender: TObject); +var + i : integer; + Obj : TJclFileVersionInfo; +begin + memModulos.Lines.Clear; + + Obj := TJclFileVersionInfo.Create(Application.ExeName); + try + with Obj do + begin + memModulos.Lines.Add(ProductName + ' - Versin ' + FileVersion); + memModulos.Lines.Add(CompanyName); + memModulos.Lines.Add(''); +{ memModulos.Lines.Add('Se autoriza el uso de este programa a:'); + memModulos.Lines.Add('VARELA IMAGEN Y DISEO S.L.');} + end; + finally + FreeAndNil(Obj); + end; + + if Assigned(FHostManager) then + begin + memModulos.Lines.Add(''); + memModulos.Lines.Add(''); + memModulos.Lines.Add('Mdulos disponibles:'); + for i := 0 to (HostManager.ModulesCount - 1) do + memModulos.Lines.Add(' - ' + FHostManager.Modules[i].Module.ModuleName + + ' - v. ' + FHostManager.Modules[i].Module.Version); + end; +end; + +end. diff --git a/Source/Cliente/uBootStrap.dcu b/Source/Cliente/uBootStrap.dcu new file mode 100644 index 0000000..ccd61ca Binary files /dev/null and b/Source/Cliente/uBootStrap.dcu differ diff --git a/Source/Cliente/uBootStrap.pas b/Source/Cliente/uBootStrap.pas new file mode 100644 index 0000000..258cd1b --- /dev/null +++ b/Source/Cliente/uBootStrap.pas @@ -0,0 +1,106 @@ +unit uBootStrap; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uSplash, uFactuGES_App, StdCtrls; + +procedure Initialize; +procedure Run; +procedure Terminate; + +implementation + +uses + uDMBase, uDataModuleConexion, uDataModuleConfiguracion, uPlugins_Intf, + uMainMenuController, uNavPaneController, uPantallaPrincipal; + +procedure DoAppLoadModules; +begin + with AppFactuGES.ModuleManager do + begin + LoadModule('Referencias_plugin.bpl'); + LoadModule('FormasPago_plugin.bpl'); + LoadModule('TiposIVA_plugin.bpl'); + LoadModule('Familias_plugin.bpl'); + LoadModule('Fabricantes_plugin.bpl'); + LoadModule('UnidadesMedida_plugin.bpl'); + + LoadModule('Contactos_plugin.bpl'); + + LoadModule('Almacenes_plugin.bpl'); + LoadModule('Obras_plugin.bpl'); + LoadModule('Articulos_plugin.bpl'); + + LoadModule(MODULENAME_PRESUPUESTOS_CLIENTE); + LoadModule(MODULENAME_ALBARANES_CLIENTE); + + LoadModule('RecibosCliente_plugin.bpl'); + LoadModule(MODULENAME_FACTURAS_CLIENTE); + + LoadModule(MODULENAME_PEDIDOS_PROVEEDOR); + LoadModule(MODULENAME_ALBARANES_PROVEEDOR); + + LoadModule(MODULENAME_RECIBOS_PROVEEDOR); + LoadModule(MODULENAME_FACTURAS_PROVEEDOR); + + LoadModule('RemesasCliente_plugin.bpl'); + LoadModule('RemesasProveedor_plugin.bpl'); + + LoadModule('Inventario_plugin.bpl'); + LoadModule('HistoricoMovimientos_plugin.bpl'); + + LoadModule('GestorInformes_plugin.bpl'); + end; +end; + +procedure DoRefreshMainForm; +begin + fPantallaPrincipal.RefrescarUI; +end; + +procedure DoAppMainForm; +begin + Application.CreateForm(TfPantallaPrincipal, fPantallaPrincipal); +end; + +procedure Initialize; +begin + dmConexion := TdmConexion.Create(NIL); + dmConfiguracion := TdmConfiguracion.Create(NIL); + dmBase := TdmBase.Create(NIL); + + AppFactuGES := TAppFactuGES.Create; + with AppFactuGES do + begin + AppSplashForm := TAppSplashForm.Create; + DoMainFormEvent := DoAppMainForm; + DoLoadModulesEvent := DoAppLoadModules; + DoRefreshMainFormEvent := DoRefreshMainForm; + end; + + NavPaneController := TNavPaneController.Create; + MainMenuController := TMainMenuController.Create; +end; + +procedure Run; +begin + AppFactuGES.Run; +end; + +procedure Terminate; +begin + FreeANDNIL(MainMenuController); + FreeANDNIL(NavPaneController); + + AppFactuGES := NIL; + + FreeANDNIL(dmBase); + FreeANDNIL(dmConfiguracion); + FreeAndNil(dmConexion); + + Application.ProcessMessages +end; + +end. diff --git a/Source/Cliente/uClienteUtils.dcu b/Source/Cliente/uClienteUtils.dcu new file mode 100644 index 0000000..11b1f9d Binary files /dev/null and b/Source/Cliente/uClienteUtils.dcu differ diff --git a/Source/Cliente/uMainMenuController.dcu b/Source/Cliente/uMainMenuController.dcu new file mode 100644 index 0000000..744ac41 Binary files /dev/null and b/Source/Cliente/uMainMenuController.dcu differ diff --git a/Source/Cliente/uMainMenuController.pas b/Source/Cliente/uMainMenuController.pas new file mode 100644 index 0000000..a6eda53 --- /dev/null +++ b/Source/Cliente/uMainMenuController.pas @@ -0,0 +1,135 @@ +unit uMainMenuController; + +interface + +uses + SysUtils, Menus, Controls, Classes, uHostManager, + PngImageList, uPantallaPrincipal; + +type + TMainMenuController = class(TObject) + private + FMainMenu: TMainMenu; + FMainForm: IMainForm; + FLargeImages: TImageList; + FSmallImages: TImageList; + procedure SetMainMenu(const Value: TMainMenu); + procedure CambiarEmpresaClick(Sender: TObject); + public + procedure RegisterModule(AModuleInfo : TModuleInfo); + procedure SortMenuByTag; + procedure InitMainMenu; + + property MainMenu : TMainMenu read FMainMenu write SetMainMenu; + property SmallImages: TImageList read FSmallImages write FSmallImages; + property LargeImages: TImageList read FLargeImages write FLargeImages; + property MainForm : IMainForm read FMainForm write FMainForm; + end; + +procedure CopyImages(const SrcList: TPngImageList; var DstList: + TPngImageList; out Index, Count: Integer); + +var + MainMenuController : TMainMenuController; + +implementation + +uses + Dialogs, PNGImage, uModuleController, uFactuGES_App, + uBizEmpresas, uMenuUtils; + + +{ TMainMenuController } + +procedure CopyImages(const SrcList: TPngImageList; var DstList: + TPngImageList; out Index, Count: Integer); +begin + Index := -1; + Count := 0; + + if not Assigned(SrcList) or not Assigned(DstList) then + Exit; + + DstList.BeginUpdate; + try + Index := DstList.Count; + DstList.AddImages(SrcList); + Count := SrcList.Count; + finally + DstList.EndUpdate; + end; +end; + + +procedure TMainMenuController.CambiarEmpresaClick(Sender: TObject); +begin + AppFactuGES.CambiarEmpresa((Sender as TMenuItem).Tag); +end; + +procedure TMainMenuController.InitMainMenu; +var + AEmpresas : IBizEmpresa; + AEmpresaMenu : TMenuItem; + AListaEmpresasItem : TMenuItem; + AItem: TMenuItem; +begin + AEmpresaMenu := BuscarMenu(FMainMenu, 'Empresa'); + AListaEmpresasItem := AEmpresaMenu.Find('Lista de empresas'); + + if Assigned(AListaEmpresasItem) then + begin + AEmpresas := AppFactuGES.EmpresasController.BuscarTodos; + try + AEmpresas.DataTable.Active := True; + while not AEmpresas.DataTable.EOF do + begin + AItem := TMenuItem.Create(nil); + with AItem do + begin + Caption := AEmpresas.NOMBRE; + Tag := AEmpresas.ID; + AutoCheck := True; + ShortCut := 0; + OnClick := CambiarEmpresaClick; + HelpContext := 0; + RadioItem := True; + Enabled := True; + end; + AListaEmpresasItem.Add(AItem); + AEmpresas.Next; + end; + finally + AEmpresas := NIL; + end; + end; +end; + +procedure TMainMenuController.RegisterModule(AModuleInfo: TModuleInfo); +var + AModule: TModuleController; + AIndex: Integer; + ACount: Integer; +begin + AModule := AModuleInfo.Module; + + if Assigned(AModule.ModuleMenu) then + begin + CopyImages(TPngImageList(AModule.SmallImages), TPngImageList(FSmallImages), AIndex, ACount); + CopyImages(TPngImageList(AModule.LargeImages), TPngImageList(FLargeImages), AIndex, ACount); + + MergeMenus(AModule.ModuleMenu, FMainMenu, AIndex); + end; +end; + +procedure TMainMenuController.SetMainMenu(const Value: TMainMenu); +begin + FMainMenu := Value; +end; + +procedure TMainMenuController.SortMenuByTag; +begin + uMenuUtils.SortMenuByTag(FMainMenu); +end; + + +end. diff --git a/Source/Cliente/uMenuUtils.dcu b/Source/Cliente/uMenuUtils.dcu new file mode 100644 index 0000000..bc3a345 Binary files /dev/null and b/Source/Cliente/uMenuUtils.dcu differ diff --git a/Source/Cliente/uNavPaneController.dcu b/Source/Cliente/uNavPaneController.dcu new file mode 100644 index 0000000..09e75c5 Binary files /dev/null and b/Source/Cliente/uNavPaneController.dcu differ diff --git a/Source/Cliente/uNavPaneController.pas b/Source/Cliente/uNavPaneController.pas new file mode 100644 index 0000000..0bcd3b2 --- /dev/null +++ b/Source/Cliente/uNavPaneController.pas @@ -0,0 +1,228 @@ +unit uNavPaneController; + +interface + +uses + Forms, SysUtils, ActnList, uHostManager, Classes, JvNavigationPane, Controls, + uPantallaPrincipal; + +type + TNavPaneController = class(TObject) + private + FNavigationPane: TJvNavigationPane; + FLargeImages: TImageList; + FSmallImages: TImageList; + FMainForm: IMainForm; + procedure SetNavigationPane(const Value: TJvNavigationPane); + function CrearPagina(const APageList: TJvNavigationPane; + ACaption: String; AAction: TAction; AImageIndex: Integer): Integer; + function EncontrarPagina(const APageList: TJvNavigationPane; + ACaption: String): Integer; + function EncontrarSeccionPadre(AParent : TWinControl): TScrollBox; + + function CrearDivisor(AParent: TWinControl; + ACaption: String) : TJvNavPanelDivider; + function CrearSeccion(AParent : TWinControl): TScrollBox; + public + destructor Destroy; override; + procedure InitNavPane; + constructor Create; + procedure RegisterModule(AModuleInfo : TModuleInfo); + + property SmallImages: TImageList read FSmallImages write FSmallImages; + property LargeImages: TImageList read FLargeImages write FLargeImages; + + property NavigationPane : TJvNavigationPane read FNavigationPane + write SetNavigationPane; + + property MainForm : IMainForm read FMainForm write FMainForm; + end; + +var + NavPaneController : TNavPaneController; + +implementation +{$INCLUDE ..\FactuGES.inc} + +uses + Dialogs, uModuleController, uAcercaDe, uNavPaneUtils, + uMainMenuController, uClienteUtils, Menus, uDMBase, + uFactuGES_App, uBizEmpresas, JvPageList; + +{ TNavPaneController } + +function TNavPaneController.CrearDivisor(AParent: TWinControl; + ACaption: String): TJvNavPanelDivider; +begin + Result := TJvNavPanelDivider.Create(AParent); + with Result do + begin + Parent := AParent; + Caption := ACaption; + Cursor := crSizeNS; + Align := alTop; + Enabled := false; + Cursor := crDefault; + StyleManager := dmBase.StyleManager; + end; +end; + +function TNavPaneController.CrearPagina(const APageList : TJvNavigationPane; + ACaption : String; AAction : TAction; AImageIndex : Integer): Integer; +var + APanePage: TJvNavPanelPage; +begin + APanePage := TJvNavPanelPage.Create(Application); + with APanePage do + begin + Caption := StringReplace(ACaption, '&', '', []); + Action := AAction; + PageList := APageList; + Iconic := False; + ImageIndex := AImageIndex; + Result := PageIndex; + end; +end; + +constructor TNavPaneController.Create; +begin + inherited; +end; + +function TNavPaneController.CrearSeccion(AParent : TWinControl): TScrollBox; +begin + Result := TScrollBox.Create(AParent); + with Result do + begin + Parent := AParent; + BorderStyle := bsNone; + end; +end; + +procedure TNavPaneController.InitNavPane; +var + AListaSecciones : TStringList; + AEmpresasCount: Integer; + AIndex : Integer; + ADivisor :TJvNavPanelDivider; + ASeccion : TScrollBox; + ASeccionPadre : TScrollBox; + ASeccionCount: Integer; + AEmpresas : IBizEmpresa; +begin + AListaSecciones := TStringList.Create; + AListaSecciones.Duplicates := dupIgnore; + AEmpresasCount := 0; + + try + // Guardar la lista de secciones (Ventas, Compras, etc...) + for ASeccionCount := 0 to MainMenuController.MainMenu.Items.Count - 1 do + begin + if not EsUnModulo(MainMenuController.MainMenu.Items[ASeccionCount]) then + Continue; + AListaSecciones.AddObject(StringReplace(MainMenuController.MainMenu.Items[ASeccionCount].Caption, '&', '', []), + MainMenuController.MainMenu.Items[ASeccionCount]) + end; + + // Crear pginas con empresas y rellenarlas + AEmpresas := AppFactuGES.EmpresasController.BuscarTodos; + try + AEmpresas.DataTable.Active := True; + + {$IFDEF MULTIEMPRESA} + while not AEmpresas.DataTable.EOF do + begin + {$ENDIF} + + // Buscar la pgina si existe + AIndex := EncontrarPagina(FNavigationPane, AEmpresas.NOMBRE); + if AIndex > -1 then + ASeccionPadre := EncontrarSeccionPadre(FNavigationPane.NavPages[AIndex]) + else begin + // Crear la pgina de la empresa + AIndex := CrearPagina(FNavigationPane, AEmpresas.NOMBRE, nil, -1); + + ASeccionPadre := CrearSeccion(FNavigationPane.NavPages[AIndex]); + ASeccionPadre.Align := alClient; + ASeccionPadre.AutoScroll := True; + end; + FNavigationPane.NavPages[AIndex].Tag := AEmpresas.ID; + + + // Crear secciones + for ASeccionCount := 0 to AListaSecciones.Count - 1 do + begin + ASeccion := CrearSeccion(ASeccionPadre); + with ASeccion do + begin + Top := 100 * AEmpresasCount; + Align := alTop; + AutoScroll := False; + end; + + ADivisor := CrearDivisor(ASeccion, AListaSecciones[ASeccionCount]); + + PopulateNavPagePane(ASeccion, TMenuItem(AListaSecciones.Objects[ASeccionCount]), + FLargeImages, dmBase.StyleManager); + ASeccion.Height := ASeccion.Height + ADivisor.Height; + end; + + {$IFDEF MULTIEMPRESA} + AEmpresas.DataTable.Next; + end; + {$ENDIF} + + AEmpresas.DataTable.Active := False; + finally + AEmpresas := NIL; + end; + finally + FreeAndNIL(AListaSecciones); + end; +end; + +procedure TNavPaneController.RegisterModule(AModuleInfo: TModuleInfo); +begin + // Por si es necesario en el furuto +end; + +destructor TNavPaneController.Destroy; +begin + inherited; +end; + +function TNavPaneController.EncontrarPagina(const APageList: TJvNavigationPane; + ACaption: String): Integer; +var + i: Integer; +begin + Result := -1; + for i := 0 to APageList.PageCount - 1 do + if APageList.NavPages[i].Caption = ACaption then + begin + Result := i; + Break; + end; +end; + +function TNavPaneController.EncontrarSeccionPadre( + AParent: TWinControl): TScrollBox; +var + i: Integer; +begin + Result := nil; + for i := 0 to AParent.ControlCount - 1 do + if AParent.Controls[i] is TScrollBox then + begin + Result := (AParent.Controls[i] as TScrollBox); + Break; + end; +end; + +procedure TNavPaneController.SetNavigationPane(const Value: TJvNavigationPane); +begin + FNavigationPane := Value; +end; + + +end. diff --git a/Source/Cliente/uNavPaneUtils.dcu b/Source/Cliente/uNavPaneUtils.dcu new file mode 100644 index 0000000..be775ff Binary files /dev/null and b/Source/Cliente/uNavPaneUtils.dcu differ diff --git a/Source/Cliente/uPantallaPrincipal.dcu b/Source/Cliente/uPantallaPrincipal.dcu new file mode 100644 index 0000000..4faf8db Binary files /dev/null and b/Source/Cliente/uPantallaPrincipal.dcu differ diff --git a/Source/Cliente/uPantallaPrincipal.dfm b/Source/Cliente/uPantallaPrincipal.dfm new file mode 100644 index 0000000..d35e9d0 --- /dev/null +++ b/Source/Cliente/uPantallaPrincipal.dfm @@ -0,0 +1,729 @@ +object fPantallaPrincipal: TfPantallaPrincipal + Left = 358 + Top = 250 + Caption = 'Pantalla principal' + ClientHeight = 553 + ClientWidth = 886 + Color = clWindow + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + Menu = HostMenu + OldCreateOrder = False + Position = poScreenCenter + Visible = True + WindowState = wsMaximized + OnClose = FormClose + OnCloseQuery = FormCloseQuery + OnCreate = FormCreate + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object pnlContenido: TTBXAlignmentPanel + Left = 0 + Top = 0 + Width = 886 + Height = 531 + Margins.Left = 5 + Margins.Top = 5 + Margins.Right = 5 + Margins.Bottom = 5 + ParentColor = True + Align = alClient + TabOrder = 0 + object JvSyncSplitter1: TJvSyncSplitter + Left = 215 + Top = 5 + Width = 5 + Height = 521 + ResizeStyle = rsPattern + ExplicitLeft = 210 + ExplicitHeight = 570 + end + object JvNavigationPane: TJvNavigationPane + Left = 5 + Top = 5 + Width = 210 + Height = 521 + ActivePage = pagInicio + Align = alLeft + AutoHeaders = True + Background.Stretch = False + Background.Proportional = False + Background.Center = False + Background.Tile = False + Background.Transparent = False + ButtonHeight = 32 + Colors.ButtonColorFrom = clWhite + Colors.ButtonColorTo = 12435133 + Colors.ButtonHotColorFrom = 13009540 + Colors.ButtonHotColorTo = 13009540 + Colors.ButtonSelectedColorFrom = 14602190 + Colors.ButtonSelectedColorTo = 14602190 + Colors.SplitterColorFrom = 13026246 + Colors.SplitterColorTo = 9211532 + Colors.DividerColorFrom = 15725551 + Colors.DividerColorTo = 13026246 + Colors.HeaderColorFrom = 8684164 + Colors.HeaderColorTo = 8684164 + Colors.FrameColor = 8684676 + Colors.ToolPanelHeaderColorFrom = clWhite + Colors.ToolPanelHeaderColorTo = 12435133 + StyleManager = dmBase.StyleManager + ParentStyleManager = False + LargeImages = ModulesLargeImageList + MaximizedCount = 1 + NavPanelFont.Charset = DEFAULT_CHARSET + NavPanelFont.Color = clWindowText + NavPanelFont.Height = -13 + NavPanelFont.Name = 'Tahoma' + NavPanelFont.Style = [] + NavPanelHotTrackFont.Charset = DEFAULT_CHARSET + NavPanelHotTrackFont.Color = clWindow + NavPanelHotTrackFont.Height = -13 + NavPanelHotTrackFont.Name = 'Tahoma' + NavPanelHotTrackFont.Style = [] + SmallImages = ModulesSmallImageList + OnChange = JvNavigationPaneChange + object pagInicio: TJvNavPanelPage + Left = 0 + Top = 0 + Width = 208 + Height = 448 + Background.Stretch = False + Background.Proportional = False + Background.Center = False + Background.Tile = False + Background.Transparent = False + Caption = 'Inicio' + ImageIndex = 0 + object Panel1: TPanel + Left = 0 + Top = 362 + Width = 208 + Height = 86 + Align = alBottom + Color = clWindow + ParentBackground = False + TabOrder = 1 + object Label1: TLabel + Left = 38 + Top = 29 + Width = 137 + Height = 52 + Margins.Bottom = 0 + AutoSize = False + Caption = 'Para empezar a trabajar, elija una empresa en la lista de abajo' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + WordWrap = True + end + object Image1: TImage + Left = 16 + Top = 29 + Width = 16 + Height = 16 + AutoSize = True + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001000 + 00001008060000001FF3FF610000000774494D45000000000000000973942E00 + 00000970485973000017120000171201679FD2520000000467414D410000B18F + 0BFC6105000001754944415478DA6364C001D6ECBE900CA4E640B92921AE0673 + B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD3EF6BA0C25 + 0B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4EE1008BF345 + BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C29060C3029673 + 4D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDFFF6358B8E7 + 1B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232E03FBACD5F + BEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043C00678586B + 32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF194EDDFE01 + 36A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E467582C800C + E051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A91C3011613 + 30CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA9C589D8D35 + 21E13204047069C69B99608680002ECD380D4036E4C98B77383583000005100E + B8572466A60000000049454E44AE426082} + end + end + end + end + object pnlBorde: TJvXPContainer + Left = 220 + Top = 5 + Width = 661 + Height = 521 + BoundColor = clActiveCaption + BoundLines = [blLeft, blTop, blRight, blBottom] + Caption = 'pnlBorde' + Align = alClient + object pnlMain: TTBXAlignmentPanel + Left = 1 + Top = 1 + Width = 659 + Height = 519 + Align = alClient + Color = clWindow + TabOrder = 0 + object lblBienvenido: TLabel + Left = 8 + Top = 8 + Width = 210 + Height = 54 + Margins.Bottom = 0 + Caption = 'Bienvenido' + Font.Charset = DEFAULT_CHARSET + Font.Color = clHighlight + Font.Height = -43 + Font.Name = 'Trebuchet MS' + Font.Style = [] + ParentFont = False + Transparent = True + end + object Label22: TLabel + Left = 116 + Top = 55 + Width = 247 + Height = 22 + Margins.Bottom = 0 + Caption = 'Administraci'#243'n de puntos de venta' + Font.Charset = DEFAULT_CHARSET + Font.Color = clGray + Font.Height = -16 + Font.Name = 'Trebuchet MS' + Font.Style = [] + ParentFont = False + Transparent = True + Visible = False + end + end + end + end + object TBXStatusBar1: TTBXStatusBar + Left = 0 + Top = 531 + Width = 886 + Images = StatusPanelImageList + Panels = < + item + ImageIndex = 1 + Size = 250 + Tag = 0 + TextTruncation = twPathEllipsis + end + item + Framed = False + ImageIndex = 0 + Size = 150 + Tag = 0 + TextTruncation = twEndEllipsis + end + item + Size = 200 + Tag = 0 + end> + UseSystemFont = False + end + object XPManifest1: TXPManifest + Left = 248 + Top = 88 + end + object GeneralActionList: TActionList + Left = 288 + Top = 85 + object actSalir: TAction + Tag = -9000 + Category = 'Archivo' + Caption = '&Salir' + OnExecute = actSalirExecute + end + object actLogin: TAction + Tag = -9000 + Category = 'Archivo' + Caption = 'Login' + end + object actAdministracion: TAction + Tag = -9000 + Category = 'Archivo' + Caption = 'Panel de administraci'#243'n' + end + object actCambiarPass: TAction + Tag = -9000 + Category = 'Archivo' + Caption = 'Cambiar mi contrase'#241'a' + OnExecute = actCambiarPassExecute + end + object actConexion: TAction + Tag = -9000 + Category = 'Archivo' + Caption = 'Configurar conexi'#243'n...' + OnExecute = actConexionExecute + end + object actAcerca: TAction + Tag = 9000 + Category = 'Ayuda' + Caption = 'Acerca de...' + OnExecute = actAcercaExecute + end + object actMenuCompras: TAction + Category = 'Menus' + Caption = 'Compras' + OnExecute = actMenuComprasExecute + OnUpdate = actMenuComprasUpdate + end + object actMenuLogistica: TAction + Category = 'Menus' + Caption = 'Log'#237'stica' + OnExecute = actMenuLogisticaExecute + OnUpdate = actMenuComprasUpdate + end + object actMenuVentas: TAction + Category = 'Menus' + Caption = 'Ventas' + OnExecute = actMenuVentasExecute + OnUpdate = actMenuComprasUpdate + end + object actVerPanel: TAction + Category = 'Ver' + Caption = 'Panel de exploraci'#243'n' + OnExecute = actVerPanelExecute + OnUpdate = actVerPanelUpdate + end + object actVerBarraEstado: TAction + Category = 'Ver' + Caption = 'Barra de estado' + OnExecute = actVerBarraEstadoExecute + OnUpdate = actVerBarraEstadoUpdate + end + object actMenuEmpresa: TAction + Category = 'Menus' + Caption = 'Empresa' + end + object actMenuInformes: TAction + Category = 'Menus' + Caption = 'Informes' + OnExecute = actMenuInformesExecute + OnUpdate = actMenuComprasUpdate + end + object actInformacionEmpresa: TAction + Category = 'Empresa' + Caption = 'Informaci'#243'n de empresa' + OnExecute = actInformacionEmpresaExecute + OnUpdate = actMenuComprasUpdate + end + end + object ModulesSmallImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300004E2000004E2001167D99DE000001504944415478DA + 63FCFFFF3F0325801197C4840C067D207501CA352898C17071060303D8B60C24 + 7D8CF8343B381880F9070E80CD31E098C170E11990D184CF0064CD0776401CE0 + E0610036E42AD009CF81FC2DB80C40D7AC9F70082C7E71851D03580C6808D02B + 28FA18F16976B0B78578E1E061144360610237009F6610F8F9EB0FC3F1E3C7B1 + 1AC2488C6618BE7AF93C862120032009E107035ECD3F80F817106F3F7886E1EF + 314FCC74E01391F57FF3F2A970898999A811E453F91A6CD0BEE31718A6F75533 + 5CBB708E11A701208533F25919321212C0FC190B1630B8163F07BBE2D8D92BF8 + 0D8039797E2927D880EFDF3F322C5CB99EC136F73158FCECE51BB80D58B37022 + DC8065D5BC0C617ECE0C2B0FBC6660FC7489C12CFD3E58FCCACD3BB80D5838A3 + 9B61D92648E20105949F9B29C3B3E7D718CE5CFECAC06CB51D1E1E380DB877E3 + 0403B1006E00A5D919001742F4296979DC590000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001DD4944415478DA + 63FCFFFF3F032580916203C064C305B24CF95FAFCF0837A0C35205220834EAD7 + EFFF0C9FBEFD67F8FAFD3FC3C7AF0C0C9F81ECF79F80625FFF33FCFC0DD17C4B + F811AA01E8A63771DC6278F9EC21982D2E25CF50F7430DB70B262FDAFE3F27D6 + 032E9193DFC3905C94C0F0879F9FE1E73F26863F9F3F33ACE99BC3505797CEF0 + E7EF3F300E48AC6638B7631AAA018585850C4212560C5C867A0CF9AE6A0C1377 + DF821B6A66A4C87060EE4686772F8E3138F9A730D4774CC53400667B5C431EC3 + CF1F6C0C1F7F32300873323030333130BCFCC5C0B0B3AB87A100E8B2EBF75F62 + 3700E482DFFFA41914BD7D19A494D4199EDDBB097781B7853AC394DA1E0656A6 + A7D85D901EE90AF65B69D94486D0A21486F78C020CB2DC0C0C826C0C0C124057 + FC03C2FEDEB50CBE7E560C8F5F7EC0342029D489E1FD4267864B12C50C5BF7DD + 6188ACCE663871E111D8F6201B1586DECA7EB0ED2080D50581DF5A19441C6218 + 2EED39CD7081C182E1E2AD0F70E783A2D1DBD792E1F79FBF0CBF7FFF6578FFF9 + 3BAA014F66D8FC07697EBA6D1DC39633EC0CE71F9F66086ADA833715C20D8069 + 7EB97723C386A32C60CD17B902894ACA60038A3352FEAB72BE65F8F9F20F58F3 + 82C32F1889CE0BC0740F560C32E4EDD52D2469861900008660FEE14240093000 + 00000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 51 + Top = 181 + Bitmap = {} + end + object ModulesActionList: TActionList + Images = ModulesLargeImageList + Left = 19 + Top = 180 + end + object ModulesLargeImageList: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000002D14944415478DA + B5965F4853511CC7BF238A120DD9437F1E621B0D7D547AE8C18712F1DF42D1C0 + 87081F7C08121FFA4744B190A0B70211A2B208315965A0CDE58386A5CBD61FC5 + 6C2B373633B76BC66C19AD6DEA74BBF776EECDDDEEDDBDFBF390077E9CB373EF + F97CCEF9FDCE85A95896C56636D5A60BB279A9BD1945A4B3274D179FE980831B + 3C849E0D61969FFC49C228E2661424E0A5A5C59279ABD52E481202864C2C9168 + CD5620867BBD7E84C32BFC7C5E5E0E74BABD82645787DE1E248265F2E307896B + D908C4709F6F910F71D36AF7F0C1497698B6221C896171E3045D990462F89CEF + 17E67D140AEA86A056ABF9E7C160086E7339343A2D749A7C5EE2370154040890 + E723E90492B4CC8741CD7DE1E186EA2AC97BC3CF47E1EA2B8376BF1EDA7DB9BC + C4DA0738498E3EA71248764E919D7B2914127875129C21579BA619BC181985C7 + 5C213949A705F8E8571028E5BCB0EE1981572AC2E3711A71D2DB6C36CCF45748 + 6A02D1155629DD168AFAAE989664381F710693136F3163A98446B35B72BB3889 + 4A69E79AAA27A8AF3F9A153C31FE303106EF609DEC249C8015E7BC80A4C59021 + 2DC9707AA3F738A730FBB44A52135E9000A52B6826384DFF7DEE763AB0306410 + D60B45AE39D6C20E3CBA29812716769CDEA6F831D61A9764F2D793D3B8DD6684 + CB3EA54A2B10EFEADEB9ED686E6AFA772A86C1DDEE6E1CB918909D6CDCEECA2C + 10C3B9455D17720401CB32585B5B46574F1F2ACFFB65697BFFC99D5E900CE77A + D3A55C41108D86B1BA1AC263CB30CACE7E93D5C4E19A492D309B6EC8E05CF45C + DE89138DC7118B45115909612918C5CB57361C3AF55556F069CF6C6A41EFFD76 + 199C1BF75EC94763432DD97D0881DF71B40E14A13CFF164A5A28099C6B69053D + 9D6D3238D7F75F55A3A1E6309F1E2ED663AB181B5FC0C1935E093CA3A0FBCE75 + 3CB08CC9AE23FDC6809AF203041EE14FB11E5BC18423842D25838AD737A560CE + FD0EFFAB0982CDFE57F107B61AA443A57B28CB0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003E74944415478DA + D59559685C5518C77FB364EECCDCE9EC596996491BC618432A28246E041B4DEB + 065553445AA122218D55093E0982425F7C9354903EA9141F24421FB4D4D6B6D4 + A549C198496C163B314D4D3219C634D3244C3B6B26D773679AB4433241213E78 + E0DCE570EEFFF76DE7BB1A4551F82F87E6FF0F587BFA70684B49CA070D9A7580 + 8F9A76AEDBB89C8678522196C8DEA37145DC212ADEA3B1EC7B340EB7E377ED1B + 774DFF33407A458826EE8AC7EE80D4793B96155601AAF8BDEE8F3BF300D699BF + 220869616E4A282D8BFB4A5A751EB47A2890C43482AE202BA3D1E47CBA0EF0C9 + 89EF942307F7AC6D48A552CC06E7189F986572FA16716539B39E5C4AD3505726 + F422B88BEC58AD0E24A3118D56875A2F2BC2A87DAFBF8FEFCCA7F901AAF8E464 + 80A1DF4348F6424AAADD388A2C1408CB171723F80726882F452971E8902D5A01 + 2AC66CB608A886ABD76FF0DED1EEFC80AEAE2EE2F138EED28778F2B956763D50 + CA673F4CE4B8BFFB112F17FAFC38E7FE62D8779648640E93C9844EA763CFCB1D + 9B0392C924BF0E8C31BD20B3BBC543A141CF9248EA4F419813A9D06A411261AF + 7289244F0519EBBD4C5585134FF50E0C46137F06173607747676A22DA8C6F3EC + F399F5B6262F5F5FF6E778B0C3EBE59A3FBBA64C8ED27FF1240E8705A3C8C5DE + B6C39B0382C1203D674678F1600B7F2C6A9909835EEC728AA2A9B18BA2128914 + 91E05A040CB2C29593E7D0256E50DF5087C3E922148EE607BC79A095F6F676EA + 9ADA486FAFCCACBB2ABC84A7733DD8FFA8979EDEEC9A2E30C5A5D327B0DB8DC8 + B2CC33FB3BF3033A5E7D9A5028C4573DBD3CDCFA047265315745EC4B65281753 + 2D5497887F914978229E87C31166468204FCFD548BB0399D6E1622C9FC80432F + 35F3CEDB47588A2478EA85B78814DAA8ABF7323A9CEB41578B978FCFFBA991D2 + 4C8D8E3034F03D7ABD2E53497973D0FDF92965EFE3F7633EFF1AC77C0F5254DF + 4C794D35B58DB5CCA7A54CDB2832804358AF881CCC4ECED17BFA9238E0612A3C + 15949555A03748A26DA436061CEDFE5239241DC7DD7C80D8E059CE056AF02D96 + 73DFAE46E6ADDB723CF0C806C67FF1914ECD3332F823369B15499244096BF39F + 83C0F1C714553CFDDBB78C5D49D1775D62D65285697B1546931BC9EC125563E0 + 6620245AC22D2C36232565A5B80B4B44AB9045ABD08A36A19048A5D70356C593 + 03DFE01F5BCE880FCEF4636D3C4CA567A70098C5E98E914A264489EA31CB16AC + 363B168B95021116F50467C4EE34BC1CC04696ABE2176E7A916DC5184CDB328D + 0C6585B59E2C84548B351B74D1D5B106E83BB64FA975A598184BAE897FF17368 + E3AFFEC558FD156BDEED78437945FC81B6523C07A05E544878F4D49689DF0BF8 + 1B2694FBE012B66F2C0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 83 + Top = 181 + Bitmap = {} + end + object StyleManagerButtons: TJvNavPaneStyleManager + Colors.ButtonColorFrom = clWindow + Colors.ButtonColorTo = clWindow + Colors.ButtonHotColorFrom = 13009540 + Colors.ButtonHotColorTo = 13009540 + Colors.ButtonSelectedColorFrom = 14602190 + Colors.ButtonSelectedColorTo = 14602190 + Colors.ButtonSeparatorColor = clWindow + Colors.SplitterColorFrom = clWindow + Colors.SplitterColorTo = clWindow + Colors.DividerColorFrom = clWindow + Colors.DividerColorTo = clWindow + Colors.HeaderColorFrom = clWindow + Colors.HeaderColorTo = clWindow + Colors.FrameColor = clWindow + Colors.ToolPanelHeaderColorFrom = clWindow + Colors.ToolPanelHeaderColorTo = clWindow + Fonts.NavPanelFont.Charset = DEFAULT_CHARSET + Fonts.NavPanelFont.Color = clWindowText + Fonts.NavPanelFont.Height = -11 + Fonts.NavPanelFont.Name = 'Tahoma' + Fonts.NavPanelFont.Style = [] + Fonts.NavPanelHotTrackFont.Charset = DEFAULT_CHARSET + Fonts.NavPanelHotTrackFont.Color = clWindow + Fonts.NavPanelHotTrackFont.Height = -11 + Fonts.NavPanelHotTrackFont.Name = 'Tahoma' + Fonts.NavPanelHotTrackFont.Style = [] + Fonts.DividerFont.Charset = DEFAULT_CHARSET + Fonts.DividerFont.Color = clWindowText + Fonts.DividerFont.Height = -11 + Fonts.DividerFont.Name = 'Tahoma' + Fonts.DividerFont.Style = [] + Fonts.HeaderFont.Charset = DEFAULT_CHARSET + Fonts.HeaderFont.Color = clWindow + Fonts.HeaderFont.Height = -16 + Fonts.HeaderFont.Name = 'Arial' + Fonts.HeaderFont.Style = [] + Theme = nptCustom + Left = 120 + Top = 181 + end + object JvFormStorage: TJvFormStorage + AppStorage = JvAppRegistryStorage + AppStoragePath = 'fPantallaPrincipal\' + Options = [] + VersionCheck = fpvcNocheck + StoredProps.Strings = ( + 'JvNavigationPane.Visible' + 'TBXStatusBar1.Visible') + StoredValues = <> + Left = 248 + Top = 128 + end + object JvAppRegistryStorage: TJvAppRegistryStorage + StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' + StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' + Root = 'Software\%APPL_NAME%' + SubStorages = <> + Left = 288 + Top = 128 + end + object ApplicationEvents: TApplicationEvents + OnException = ApplicationEventsException + Left = 160 + Top = 182 + end + object HostMenu: TJvMainMenu + Images = ModulesSmallImageList + Style = msItemPainter + ImageMargin.Left = 0 + ImageMargin.Top = 0 + ImageMargin.Right = 0 + ImageMargin.Bottom = 0 + ImageSize.Height = 0 + ImageSize.Width = 0 + ItemPainter = JvXPMenuItemPainter1 + Left = 248 + Top = 168 + object Archivo2_OLD: TMenuItem + Tag = -90000 + Caption = 'Archivo' + object Cambiarmicontrasea2_OLD: TMenuItem + Tag = 1 + Action = actCambiarPass + end + object N3_OLD: TMenuItem + Tag = 2 + Caption = '-' + end + object Paneldeadministracin2_OLD: TMenuItem + Tag = 4 + Action = actAdministracion + Visible = False + end + object N4_OLD: TMenuItem + Tag = 5 + Caption = '-' + end + object Salir2_OLD: TMenuItem + Tag = 6 + Action = actSalir + end + end + object Edicin1_OLD: TMenuItem + Tag = -80000 + Caption = 'Ver' + object Paneldeexploracin1: TMenuItem + Action = actVerPanel + end + object Paneldeexploracin2: TMenuItem + Tag = 1 + Action = actVerBarraEstado + end + end + object Opciones1_OLD: TMenuItem + Tag = -70000 + Caption = 'Opciones' + object Configurarconexin2_OLD: TMenuItem + Tag = 101 + Action = actConexion + end + object N2: TMenuItem + Tag = 102 + Caption = '-' + end + object Administracin1: TMenuItem + Tag = 200 + Caption = 'Administraci'#243'n' + object Usuarios1: TMenuItem + Tag = 1 + Caption = 'Usuarios' + OnClick = Usuarios1Click + end + object Perfiles1: TMenuItem + Tag = 2 + Caption = 'Perfiles de usuario' + OnClick = Perfiles1Click + end + end + end + object Ayuda2_OLD: TMenuItem + Tag = -60000 + Caption = 'Ayuda' + object Acercade2_OLD: TMenuItem + Action = actAcerca + end + end + object N1: TMenuItem + Tag = -1 + Caption = '|' + end + object Empresa1_OLD: TMenuItem + Tag = 1000 + Caption = 'Empresa' + object Listadeempresas1_OLD: TMenuItem + Caption = 'Selecci'#243'n de empresas' + OnClick = Listadeempresas1_OLDClick + end + object N1_OLD: TMenuItem + Tag = 100 + Caption = '-' + end + object Informacindeempresa1: TMenuItem + Tag = 10 + Action = actInformacionEmpresa + end + end + object Datos1: TMenuItem + Tag = 2000 + Caption = 'Datos' + object N5: TMenuItem + Tag = 200 + Caption = '-' + end + object N6: TMenuItem + Tag = 300 + Caption = '-' + end + end + object Logstica1: TMenuItem + Tag = 3000 + Action = actMenuLogistica + object N7: TMenuItem + Tag = 200 + Caption = '-' + end + object N8: TMenuItem + Tag = 300 + Caption = '-' + end + end + object Compras1: TMenuItem + Tag = 4000 + Action = actMenuCompras + object N9: TMenuItem + Tag = 200 + Caption = '-' + end + object N10: TMenuItem + Tag = 300 + Caption = '-' + end + end + object Ventas1: TMenuItem + Tag = 5000 + Action = actMenuVentas + object N3: TMenuItem + Tag = 200 + Caption = '-' + end + object N4: TMenuItem + Tag = 300 + Caption = '-' + end + end + object Informes1: TMenuItem + Tag = 6000 + Action = actMenuInformes + end + end + object JvXPMenuItemPainter1: TJvXPMenuItemPainter + SelectionFrameBrush.Color = 13811126 + SelectionFramePen.Color = 6956042 + Left = 288 + Top = 168 + end + object StatusPanelImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AC400000AC401666D82D4000002A94944415478DA + 7D925D48536118C79FF3B5AF36DD66B639CB924243225010BC49BA914004CDE8 + E32228B482EA4689A22289C8CBA28B32B1061688902912D28D16991F6062B2DC + 45921FB954669BF39C9D6DE7EC9CF3EEBC9D2D8C2CB7079E9BF779FEBFF7F922 + 30C69034822060D3665F5F3A0B90B8C672FCAEC07AD8E35DF0DFBFE3F64EC05F + F647F72FC0DB75AED1E1B43D138438C9B26108B11C0443BC30ECF959D731303F + 9411D0D35C612C2ADBEF3319F5B992AC402412037F9003A4C8E05F17679BDA3E + 976BA9D1F4807B95552E877D90222910250556023170E66481D900F0CD17C0AD + 5DDE63F3CBFC505AC0685B6DE34654762B88009B350B8AF658815011C8521C04 + 518487DD530D9D83BECEB480C98EDA13F9798E5E9A61526F098440D1CA572409 + 24298EEFBA271B7BC756D203FA5A8FE49516EDF3313A5D8AA0AAAAD6BF929A01 + CFC7505DCBBBAAD590349C710BD3EEFA57D916D3A954920648249255283031B3 + 3A7BE1D164A5F61CCC0878D15C917FA8C43165D6334E558B25DBD80847E51BCF + A79B3E7D65DB33AEF1E04D570EE5723DB513C4C966E9006101ED0662043C6697 + 30B7DB3021CE6D5C5EEA58FAB22DE0F0ADBD36D25E38A6E6E2126413E00CAA81 + FAE27AE85FEB876EF10D30DC0E2083542432F3E3F8E2CBC5F7FF01CA5A8E3E21 + 6CC6AB8A264636110C7A80EADC2AE88B0E004474C0B026A035C76BF2B2A7ED43 + 29E671680BA0FC76B50F5BC902641501658B90304BA0EA11100A05544C0774D8 + 0834A7396B04DFE8C8E9B58FC19EAD80EB358B84852E44D9F1DF62930C9856B5 + 6320801419A0A27AA079430AB4303E722530EE6FDF3A838B15E729B3E50195C3 + D855B34A247F074A8BA91A40A2808C91803955E6E70233F36F3D0D58C6DEEDD6 + B8D35040179B9DA602305266AC028925A4A0B822A090C20BAB09BF96F35D736E + 53F70B90E997F07974AFDF0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001A54944415478DA + 63FCFFFF3F0308303232322083DA9E05FF19F080A6E278B006466C0680340315 + C0F96F3EFD6178F5F13790FECBB067C75A862DBB4F329CDB310DBB0184344BC9 + AB33CC9AB308BB0120CD26C6A6589D7CE6EC69B06610C06A405DEF429C7EFEF3 + E72F839CB2169C8FD30064A72303238F2C8698A86086DD3BB732F80786E137E0 + EBF75F0CAFDF7D6178F0F41DC3BEC347194AB36218EC037319C48539185CDDBD + 19B8B8B8F11B00A4516CCF488C64F0892A60F070B565387FEE34D89025CBD612 + F6C2E7EF7FC1F81310472517835D6068640A76C1BA8D3B88F782AF7F08437A4E + 2983A99126C3A387F7C186ECD87D18BB0135F9B10C2D1317A378C1C92388A1A8 + B81CEC02397945064E4E2E864347CF6237203F2D9AE1D33788B37FFDF9CFF0F5 + E73F862F3FFE32D4555731A8288831700035737272329C3E771DBB018931110C + F397AC00F36D5C028186800CF8C7D0D55CC3202DCE03B6FDCE83570CE7774E47 + 24406403828343A1B6426C0EBE20C4305BE515C3B4EE7AB0175EBEFD01D60C52 + 8FD5000F9F60B86608FE07969BD3DF00A6619A711A00CA65B800B26664030085 + B441F03700F9CE0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + Left = 251 + Top = 213 + Bitmap = {} + end +end diff --git a/Source/Cliente/uPantallaPrincipal.pas b/Source/Cliente/uPantallaPrincipal.pas new file mode 100644 index 0000000..333e3d2 --- /dev/null +++ b/Source/Cliente/uPantallaPrincipal.pas @@ -0,0 +1,610 @@ +unit uPantallaPrincipal; + +interface + +uses + Windows, Forms, SysUtils, Messages, JvMenus, Menus, Graphics, AppEvnts, + JvAppStorage, JvAppRegistryStorage, JvFormPlacement, JvComponentBase, + JvNavigationPane, ImgList, Controls, PngImageList, Classes, ActnList, XPMan, + TBXStatusBars, JvXPCore, JvXPContainer, pngimage, ExtCtrls, StdCtrls, + JvPageList, JvExControls, JvExExtCtrls, JvSplitter, JvSyncSplitter, + TBXDkPanels, uCustomEditor, uHostManager, uGUIBase, + Dialogs, jpeg; + +type + IMainForm = interface(IHostForm) + ['{7F6F5574-5E5C-486C-AA24-D3AEAA52D243}'] + procedure ReleaseEmbedded; + end; + + + TfPantallaPrincipal = class(TForm, IHostForm, IMainForm) + GeneralActionList: TActionList; + ModulesSmallImageList: TPngImageList; + XPManifest1: TXPManifest; + actSalir: TAction; + ModulesActionList: TActionList; + ModulesLargeImageList: TPngImageList; + pnlContenido: TTBXAlignmentPanel; + JvNavigationPane: TJvNavigationPane; + pnlMain: TTBXAlignmentPanel; + JvSyncSplitter1: TJvSyncSplitter; + actLogin: TAction; + StyleManagerButtons: TJvNavPaneStyleManager; + JvFormStorage: TJvFormStorage; + JvAppRegistryStorage: TJvAppRegistryStorage; + actAdministracion: TAction; + ApplicationEvents: TApplicationEvents; + actCambiarPass: TAction; + actConexion: TAction; + actAcerca: TAction; + pnlBorde: TJvXPContainer; + HostMenu: TJvMainMenu; + JvXPMenuItemPainter1: TJvXPMenuItemPainter; + Archivo2_OLD: TMenuItem; + Ayuda2_OLD: TMenuItem; + Cambiarmicontrasea2_OLD: TMenuItem; + N3_OLD: TMenuItem; + Configurarconexin2_OLD: TMenuItem; + Paneldeadministracin2_OLD: TMenuItem; + N4_OLD: TMenuItem; + Salir2_OLD: TMenuItem; + Acercade2_OLD: TMenuItem; + lblBienvenido: TLabel; + Label22: TLabel; + TBXStatusBar1: TTBXStatusBar; + StatusPanelImageList: TPngImageList; + Empresa1_OLD: TMenuItem; + Listadeempresas1_OLD: TMenuItem; + N1_OLD: TMenuItem; + Opciones1_OLD: TMenuItem; + Edicin1_OLD: TMenuItem; + N1: TMenuItem; + Compras1: TMenuItem; + Ventas1: TMenuItem; + actMenuCompras: TAction; + actMenuLogistica: TAction; + actMenuVentas: TAction; + Logstica1: TMenuItem; + pagInicio: TJvNavPanelPage; + Panel1: TPanel; + Label1: TLabel; + Image1: TImage; + actVerPanel: TAction; + actVerBarraEstado: TAction; + Paneldeexploracin1: TMenuItem; + Paneldeexploracin2: TMenuItem; + Informacindeempresa1: TMenuItem; + Administracin1: TMenuItem; + N2: TMenuItem; + Usuarios1: TMenuItem; + Perfiles1: TMenuItem; + N3: TMenuItem; + N4: TMenuItem; + Datos1: TMenuItem; + N5: TMenuItem; + N6: TMenuItem; + N7: TMenuItem; + N8: TMenuItem; + N9: TMenuItem; + N10: TMenuItem; + actMenuEmpresa: TAction; + Informes1: TMenuItem; + actMenuInformes: TAction; + actInformacionEmpresa: TAction; + procedure FormCreate(Sender: TObject); + procedure Salir1Click(Sender: TObject); + procedure actSalirExecute(Sender: TObject); + procedure actCambiarPassExecute(Sender: TObject); + procedure actAcercaExecute(Sender: TObject); + procedure actConexionExecute(Sender: TObject); + procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); + procedure JvNavigationPaneChange(Sender: TObject); + procedure ApplicationEventsException(Sender: TObject; E: Exception); + procedure actMenuComprasExecute(Sender: TObject); + procedure actMenuComprasUpdate(Sender: TObject); + procedure actMenuLogisticaExecute(Sender: TObject); + procedure actMenuVentasExecute(Sender: TObject); + procedure actActualizacionesExecute(Sender: TObject); + procedure actVerPanelUpdate(Sender: TObject); + procedure actVerPanelExecute(Sender: TObject); + procedure actVerBarraEstadoUpdate(Sender: TObject); + procedure actVerBarraEstadoExecute(Sender: TObject); + procedure Acercade1Click(Sender: TObject); + procedure Usuarios1Click(Sender: TObject); + procedure Perfiles1Click(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure actMenuInformesExecute(Sender: TObject); + procedure Listadeempresas1_OLDClick(Sender: TObject); + procedure actInformacionEmpresaExecute(Sender: TObject); + private + FContenido : TCustomEditor; + procedure ShowEmbedded(AEditor : ICustomEditor); + procedure ReleaseEmbedded; + procedure AplicarPerfil; + procedure InicializarUI; + procedure OnThemeChange(Sender: TObject); + procedure ExecuteActionMenu(Sender : TObject); + //procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND; + protected + function GetWorkPanel : TWinControl; + procedure CreateParams(var Params: TCreateParams); override; + public + procedure RefrescarUI; + function IsShortcut(var Message: TWMKey): Boolean; override; + procedure OnWorkPanelChanged(AEditor : ICustomEditor); + constructor Create(AOwner: TComponent); override; + property WorkPanel : TWinControl read GetWorkPanel; + end; + +var + fPantallaPrincipal: TfPantallaPrincipal; + +implementation +{$INCLUDE ..\FactuGES.inc} + +uses + uSplash, uAcercaDe, UxTheme, Themes, uMenuUtils, uBizEmpresas, + uFactuGES_App, uDMBase, uDataModuleConexion, + uModuleController, uMainMenuController, uNavPaneController, + uDialogUtils, cxControls; + +{$R *.dfm} + + +{ +***************************** TfPantallaPrincipal ****************************** +} + +procedure TfPantallaPrincipal.FormClose(Sender: TObject; var Action: TCloseAction); +begin + //Tiene que ser en este mtodo porque salta antes que liberar la aplicacin, si lo dejamos + //en el evento onDestroy no le da tiempo a liberar el contenido y se pone a liberar la aplicacin + //provocando un error de memoria + ReleaseEmbedded; + ApplicationEvents.CancelDispatch; +end; + +procedure TfPantallaPrincipal.FormCloseQuery(Sender: TObject; + var CanClose: Boolean); +begin + CanClose := True; + if Assigned(FContenido) then + CanClose := FContenido.CloseQuery; +end; + +procedure TfPantallaPrincipal.FormCreate(Sender: TObject); +begin + ApplicationEvents.Activate; + Application.Title := AppFactuGES.AppName + ' ' + AppFactuGES.AppVersion; + Caption := Application.Title; + + JvNavigationPane.StyleManager := dmBase.StyleManager; + dmBase.OnThemeChange := Self.OnThemeChange; + Self.OnThemeChange(Self); // Forzar el refresco de los colores del tema activo + + actLogin.Execute; +end; + +procedure TfPantallaPrincipal.FormShow(Sender: TObject); +begin + InicializarUI; +end; + +procedure TfPantallaPrincipal.RefrescarUI; +var + ATitulo : String; + i: Integer; +begin + ATitulo := AppFactuGES.GetAppFullName; + + if Assigned(AppFactuGES.EmpresaActiva) then + ATitulo := AppFactuGES.EmpresaActiva.NOMBRE + ' - ' + ATitulo; + + Application.Title := ATitulo; + Caption := Application.Title; + + if dmConexion.HayConexion then + TBXStatusBar1.Panels[0].Caption := 'Conectado a: ' + dmConexion.TargetURL + else + TBXStatusBar1.Panels[0].Caption := 'Desconectado'; + + if Assigned(AppFactuGES.UsuarioActivo) then + TBXStatusBar1.Panels[1].Caption := AppFactuGES.UsuarioActivo.UserName + else + TBXStatusBar1.Panels[1].Caption := ''; + + + // Comprobar que el panel lateral tiene la empresa activa + if Assigned(AppFactuGES.EmpresaActiva) then + for i := 0 to JvNavigationPane.PageCount - 1 do + if (JvNavigationPane.Pages[i].Tag = AppFactuGES.EmpresaActiva.ID) and + (JvNavigationPane.ActivePageIndex <> i) then + JvNavigationPane.ActivePageIndex := i; +end; + +procedure TfPantallaPrincipal.ReleaseEmbedded; +begin + if Assigned(FContenido) then + FContenido.Release; + FContenido := Nil; + Application.ProcessMessages; +end; + +procedure TfPantallaPrincipal.Salir1Click(Sender: TObject); +begin + Close; +end; + +procedure TfPantallaPrincipal.actSalirExecute(Sender: TObject); +begin + Close; +end; + +procedure TfPantallaPrincipal.actMenuVentasExecute(Sender: TObject); +begin + // +end; + +procedure TfPantallaPrincipal.actVerBarraEstadoExecute(Sender: TObject); +begin + TBXStatusBar1.Visible := not TBXStatusBar1.Visible; +end; + +procedure TfPantallaPrincipal.actVerBarraEstadoUpdate(Sender: TObject); +begin + (Sender as TAction).Checked := TBXStatusBar1.Visible; +end; + +procedure TfPantallaPrincipal.actVerPanelExecute(Sender: TObject); +begin + JvNavigationPane.Visible := not JvNavigationPane.Visible; + if (JvNavigationPane.Visible) and (JvNavigationPane.Width = 0) then + JvNavigationPane.Width := 210; +end; + +procedure TfPantallaPrincipal.actVerPanelUpdate(Sender: TObject); +begin + (Sender as TAction).Checked := JvNavigationPane.Visible and (JvNavigationPane.Width > 0); +end; + +procedure TfPantallaPrincipal.OnThemeChange(Sender: TObject); +begin + LockWindowUpdate(Handle); + try + Color := dmBase.StyleManager.Colors.DividerColorTo; + //pnlBorde.Color := dmBase.StyleManager.Colors.FrameColor; + pnlBorde.BoundColor := dmBase.StyleManager.Colors.FrameColor; + with StyleManagerButtons do + begin + Colors.ButtonColorFrom := clWindow; + Colors.ButtonColorTo := clWindow; + Colors.ButtonSeparatorColor := clWindow; + Colors.SplitterColorFrom := clWindow; + Colors.SplitterColorTo := clWindow; + Colors.DividerColorFrom := clWindow; + Colors.DividerColorTo := clWindow; + Colors.HeaderColorFrom := clWindow; + Colors.HeaderColorTo := clWindow; + Colors.FrameColor := clWindow; + Colors.ToolPanelHeaderColorFrom := clWindow; + Colors.ToolPanelHeaderColorTo := clWindow; + + Colors.ButtonHotColorFrom := dmBase.StyleManager.Colors.ButtonHotColorFrom; + Colors.ButtonHotColorTo := dmBase.StyleManager.Colors.ButtonHotColorTo; + + Colors.ButtonSelectedColorFrom := dmBase.StyleManager.Colors.ButtonSelectedColorFrom; + Colors.ButtonSelectedColorTo := dmBase.StyleManager.Colors.ButtonSelectedColorTo; + end; + lblBienvenido.Font.Color := JvNavigationPane.Colors.ButtonColorTo; +{ JvGradient1.StartColor := JvNavigationPane.Colors.ButtonColorFrom; + JvGradient1.EndColor := JvNavigationPane.Colors.ButtonColorTo;} + finally + LockWindowUpdate(0); + Refresh; + end; +end; + +function TfPantallaPrincipal.GetWorkPanel: TWinControl; +begin + Result := pnlMain; +end; + +procedure TfPantallaPrincipal.InicializarUI; +var + AListaEmpresas : IBizEmpresa; + i : Integer; +begin + ShowHourglassCursor; + try + for i := 0 to AppFactuGES.ModuleManager.ModulesCount - 1 do + MainMenuController.RegisterModule(AppFactuGES.ModuleManager.Modules[i]); + + MainMenuController.SortMenuByTag; + MainMenuController.InitMainMenu; + + for i := 0 to AppFactuGES.ModuleManager.ModulesCount - 1 do + NavPaneController.RegisterModule(AppFactuGES.ModuleManager.Modules[i]); + + NavPaneController.InitNavPane; + + try + AListaEmpresas := AppFactuGES.EmpresasController.BuscarTodos; + if Assigned(AListaEmpresas) then + begin + AListaEmpresas.Active := True; + if AListaEmpresas.RecordCount = 1 then + begin + // Oculto la pgina de inicio para que no parezca + // que se pueden manejar varias empresas. + JvNavigationPane.ActivePageIndex := 1; + pagInicio.PageList := NIL; + pagInicio.Visible := False; + end; + end; + + finally + AListaEmpresas.Close; + AListaEmpresas := NIL; + end; + + RefrescarUI; + finally + HideHourglassCursor; + end; +end; + + +procedure TfPantallaPrincipal.actMenuComprasExecute(Sender: TObject); +begin + // +end; + +procedure TfPantallaPrincipal.actMenuComprasUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := Assigned(AppFactuGES.EmpresaActiva); +end; + +procedure TfPantallaPrincipal.actMenuInformesExecute(Sender: TObject); +begin + // +end; + +procedure TfPantallaPrincipal.actMenuLogisticaExecute(Sender: TObject); +begin + // +end; + +procedure TfPantallaPrincipal.ExecuteActionMenu(Sender: TObject); +var + i : integer; +begin + for i := 0 to JvNavigationPane.PageCount - 1 do + begin + if JvNavigationPane.NavPages[i].Caption = (Sender as TAction).Caption then + begin + JvNavigationPane.ActivePageIndex := i; + Break; + end; + end; +end; + +procedure TfPantallaPrincipal.AplicarPerfil; +begin + // +end; + +procedure TfPantallaPrincipal.ApplicationEventsException(Sender: TObject; + E: Exception); +begin +{ if E is EROSessionNotFound then + begin + // OJOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO + if not dmUsuarios.Login then + ShowMessage(E.Message); + end + else} + ShowMessage(E.Message); + //ShowErrorMessage('Se ha producido un error', '', E); +end; + +procedure TfPantallaPrincipal.OnWorkPanelChanged(AEditor: ICustomEditor); +begin + // +end; + +procedure TfPantallaPrincipal.Perfiles1Click(Sender: TObject); +begin + AppFactuGES.UsuariosController.VerPerfiles; +end; + +procedure TfPantallaPrincipal.ShowEmbedded(AEditor: ICustomEditor); +begin + if Assigned(FContenido) and not FContenido.CloseQuery then + begin + AEditor.Release; + AEditor := NIL; + Exit; + end; + + ShowHourglassCursor; + LockWindowUpdate(Handle); + ReleaseEmbedded; + try + FContenido := TCustomEditor(AEditor.GetInstance); + with (FContenido) do + begin + Visible := False; + BorderIcons := []; + BorderStyle := bsNone; + Parent := WorkPanel; + FContenido.Show; + Align := alClient; + FContenido.SetFocus; + end; + finally + Application.ProcessMessages; + LockWindowUpdate(0); + HideHourglassCursor; + end; + OnWorkPanelChanged(FContenido); +end; + +procedure TfPantallaPrincipal.Usuarios1Click(Sender: TObject); +begin + AppFactuGES.UsuariosController.VerUsuarios; +end; + +{procedure TfPantallaPrincipal.WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND; +begin + // Sirve para recuperar el foco el formulario principal cuando + // tenemos varios formularios hijos abiertos a la vez. + case (Msg.cmdtype and $FFF0) of + SC_MINIMIZE: begin + ShowWindow(handle, SW_MINIMIZE); + Msg.result := 0; + end; + SC_RESTORE: begin + ShowWindow(handle, SW_RESTORE); + Msg.result := 0; + end; + else + DefaultHandler(Msg); + end; +end;} + +constructor TfPantallaPrincipal.Create(AOwner: TComponent); +begin + inherited; + + {$IFDEF MULTIEMPRESA} + {$ELSE} + Listadeempresas1_OLD.Destroy; + {$ENDIF} + + FContenido := NIL; + + with AppFactuGES.ModuleManager do + begin + MainMenu := Self.Menu; + MainForm := Self; + end; + + with NavPaneController do + begin + SmallImages := ModulesSmallImageList; + LargeImages := ModulesLargeImageList; + NavigationPane := JvNavigationPane; + MainForm := Self; + end; + + with MainMenuController do + begin + SmallImages := ModulesSmallImageList; + LargeImages := ModulesLargeImageList; + MainMenu := HostMenu; + MainForm := Self; + end; +end; + +procedure TfPantallaPrincipal.CreateParams(var Params: TCreateParams); +begin + { No quitar este procedimiento aunque no haga nada!!!!! + Si se quita, esta pantalla principal se queda en el fondo + despus de desaparecer la pantalla de login. } + inherited CreateParams(Params); +end; + +procedure TfPantallaPrincipal.actActualizacionesExecute(Sender: TObject); +begin +{ fActualizacion := TfActualizacion.Create(Self); + try + fActualizacion.ShowModal; + finally + FreeAndNil(fActualizacion); + end;} +end; + +procedure TfPantallaPrincipal.actCambiarPassExecute(Sender: TObject); +begin + AppFactuGES.UsuariosController._ShowChangePassword; + RefrescarUI; +end; + +procedure TfPantallaPrincipal.Acercade1Click(Sender: TObject); +begin + AppFactuGES.UsuariosController.StartLogin; +end; + +procedure TfPantallaPrincipal.actAcercaExecute(Sender: TObject); +begin + with TfAcercaDe.Create(NIL) do + try + HostManager := AppFactuGES.ModuleManager; + ShowModal; + finally + Free; + end; +end; + +function TfPantallaPrincipal.IsShortcut(var Message: TWMKey): Boolean; +Var + ctrl: TWinControl; + comp: TComponent; + i: Integer; + Begin + ctrl := ActiveControl; + If ctrl <> Nil Then Begin + Repeat + ctrl := ctrl.Parent + Until (ctrl = nil) or (ctrl Is TCustomForm); + // Note: replace TCustomFrame with TForm, check if the found form is + // self, if not, execute the following block of code. + If ctrl <> nil Then Begin + For i:= 0 To ctrl.componentcount-1 Do Begin + comp:= ctrl.Components[i]; + If comp Is TCustomActionList Then Begin + result := TCustomActionList(comp).IsShortcut( message ); + If result Then + Exit; + End; + End; + End; + End; + //Result := inherited IsShortCut(Message); +end; + +procedure TfPantallaPrincipal.JvNavigationPaneChange(Sender: TObject); +begin + { Cuando se destruye el formulario este evento salta pero no + hay que cambiar de empresa } + if (csDestroying in ComponentState) then + Exit; + + //Se libera el contenido que tenga ya que cambiamos de empresa; + ReleaseEmbedded; + + AppFactuGES.CambiarEmpresa(JvNavigationPane.ActivePage.Tag); + RefrescarUI; +end; + +procedure TfPantallaPrincipal.Listadeempresas1_OLDClick(Sender: TObject); +begin + AppFactuGES.SeleccionarEmpresa; + RefrescarUI; +end; + +procedure TfPantallaPrincipal.actConexionExecute(Sender: TObject); +begin + dmConexion.ConfigurarConexion; + RefrescarUI; +end; + + +procedure TfPantallaPrincipal.actInformacionEmpresaExecute(Sender: TObject); +begin + AppFactuGES.EmpresasController.Ver(AppFactuGES.EmpresaActiva); +end; + +end. diff --git a/Source/Cliente/uSplash.dcu b/Source/Cliente/uSplash.dcu new file mode 100644 index 0000000..6f90343 Binary files /dev/null and b/Source/Cliente/uSplash.dcu differ diff --git a/Source/Cliente/uSplash.dfm b/Source/Cliente/uSplash.dfm new file mode 100644 index 0000000..f896928 --- /dev/null +++ b/Source/Cliente/uSplash.dfm @@ -0,0 +1,1076 @@ +object SplashScreen: TSplashScreen + Left = 507 + Top = 382 + BorderStyle = bsNone + Caption = 'SplashScreen' + ClientHeight = 117 + ClientWidth = 452 + Color = clBlack + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + Scaled = False + OnClose = FormClose + PixelsPerInch = 96 + TextHeight = 13 + object lblTexto: TLabel + AlignWithMargins = True + Left = 3 + Top = 101 + Width = 446 + Height = 13 + Align = alBottom + Caption = 'Cargando...' + Color = clBlack + Font.Charset = DEFAULT_CHARSET + Font.Color = clWhite + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentColor = False + ParentFont = False + Transparent = False + ExplicitTop = 103 + ExplicitWidth = 63 + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 452 + Height = 99 + AutoSize = True + BevelOuter = bvNone + BorderWidth = 1 + ParentBackground = False + TabOrder = 0 + object Image2: TImage + Left = 1 + Top = 1 + Width = 450 + Height = 97 + Picture.Data = { + 0B544A76474946496D6167651A7F0000474946383961C201FA00E60000625E5C + FFFFFFE66738AB8259F6D2A8B72624886A4DC538298F8F8FAC2724000000FBFB + FBB2B2B2E4E4E4F2F2F2EDEDED30302FEC733CF48544D5AC83DFDFDFF07B40CD + 432CF7F7F7F9A8A6FCEDC2DD5933D1482EF6D7CEE9E9E9D5D4D4EABB95DA5532 + D1B1ACFA9630C4746ECD9992C7C6C6D75130FBCC30D44D2FF39367594E44BD96 + 6FC0574EFBE8DFB04D41CC665AFDF3E6B0AC8FD7C5C1D8D8E6BA3532B08981CE + A87DE15F35BF2E26C2433AE59D90FDD75DF8A57DFDF5F1D26F2F423D37D9D5D4 + FA812EF1E1DDEAEAF9FEF8F5AD3A35AB302CA22824DACFCCFEFBFA878686E3E4 + E9CECEDEDD6142BDBCBCA48C33A6A6A6BBBCC8F6792FD2513AE1E1E1F5F6F1E3 + 7D62D6D6D8EBEBEBE0D8D7999999F6F0EFFDFDFDF1EDEAFCAA4CDADBDBEDE9E4 + E7E8E9CE827DD45A44EAEBECEFEFEF767473FBF1F0D85538F9F9F9CCCCCCEBED + EDC94E40F5F5F5DA4E2FD9D9D9FAFAEFEFEFF5F3F5F3ECECE9444343CACA9DE1 + 7630E96D3AF4C2BAD1D1D1DD8542D3AF34D7D7D7D75E32E7E7E7EAE6E62C0000 + 0000C201FA000007FF801282838485868788898A831F04305C01919293949596 + 9798999A9B9C9D9E9FA0A1A2A3935C0B17650F580F0E176990A4B1B2B3B4B5A4 + 12221229B8BABCB982BBB9C1BDC283C3C7BEBCBBC0CABA3C041949B6D3D4D5D6 + D7D8A50B6D657EDE58656D170B0B01B0D9E8B3905CECEDEEEFECE6E9968BF5F6 + F7885E3C1C30F3FEFF00038AE292A6CD033F541A34E800AE559A05E7044AAC64 + EAD4853618336A14E70AA2C45ECC42821CB98CA4B193224BAA342682079E7E13 + 63CA9C69CD94C10614285049E86795B85734279A2AE820D5AAA3AA92B26AE531 + 20BEA75017A5F89021A8D5AB5837D9C4D2E00B05AF5EA9F42CE31062BCACD6C8 + 5D4CD5C18FC2B770FF15FAE9F020DCB888E906FDE26568AF5F7C7B09FD3534B5 + 05DAC38883DA7C8033A7E39D0D7AB26A930668E25A04DB3850E576A7CECF5474 + EEE4B9CA01E572FEA2AA5E3D68DFD9CBB063635BEC272758C7A2E74EBEF05A36 + A805698AB66D101AB771E33C3B901D979AB5737C29F611C1EBBBBAF550B44343 + 56E85967642C584CDFA57EBD54E63258DC1E7FFCF93864C9E27A5B4B54E1797D + 45F725E43FE4120691F20006A8096D3925D74107C43D469A5D4D091889291738 + 804518097E65A168A365681B6E3BF5C4143ACF85584F0A53F1439E8328566753 + 37A1454616375C35A6A0870E3C84A24D0E20581C870945E68D379171B7236E0B + 7D888D6AFB2D92A4FF214B12F64C34294609E0296574305A789545889E5B0986 + F5DD8B0FC917DB8A086E285A6407829714780702495C715E5150641B62D622E2 + 9D8AF040D57F52F6291B3B11EAD800166D40A4168C9D15D7E35CCB59A6628458 + 20C8259A0FD4E5C0A59A657A69A5E001A9E8770E9D388B7EA4D6676AA9A89EAA + 2AA982ACDAEA20ABC6CAEA333DF8692B6C5CA0820564E1C5C3CE2945455AE163 + 0BB172973CA25A056C5165344B9678955506DCB4695CA459B39CC9459769D226 + 1BCBABE0B22A6E7EE41E522E93B0A61B6E0A041876EBBB59019A23710B158A6C + 00C05DB4D9703B26B75C470D8252861208D0A1C0C108230C01024A3831CA50D5 + 46FC103966C1F30EFF5197A692CA4F2528A1040409274C87C7B2A46AB2AC289F + AC72CAAA16C627BC30D34490846F2A07D43AED54A6992A0A291859A56455EBAD + 251F876CF4D14A6CA2C5D14C376D3400B96A8629656928E1F4D100382CCAB9E3 + AADB75B85C87ED759253393274CC685FC34E705CF154A3AFF7021AE103FC12EB + CDB374B6B30903205FED3403992CEDF7E0099B911946AE70E144DF84270C4019 + A1AC2C39CB9357DEF2332D4893F6E600CDBC6B42E135B80EB2C01195ADA29085 + 01CE4FDE02D0B8D3495F22F8EB7E435DED4F0B584D7BC81040FE891E964B003C + E5C4077FAA045E50552BE7FF98B1BBD197C9ABA31F65004572DCC81214A184EA + CDA81CB7273E60F0FFF34723203BF94E1B6ED12BB3A3AF0004A05420FFFCFACD + 6FFFFDF2D76F6AFEF4F7CFFFFFFB0BA0FE04E192CC31CF1FAE739F02709506F4 + 2CA40CE370C2C19236BA0ACAE3503C7B9363BE139E1A996512E35360C2D46089 + F689F06000C05765B8F085134EF013C58BA1F166589F12F5E06C079485F31418 + BD5C6D86156978430215603EEC5970285A12D68EE43216713445772E3C18FC2A + 61C213AA2F4C211421041EE009FC79F18B600CA318C7581FCCD52987B61822FA + 70B53D57EC10611434A2114FC18D8374E92B1D5A1D44A010C59069818A7D4421 + BE20D2C23EC68E13FE0BA0FDF4B7C8440ED08B8F046024EFA32703A2111B6F5C + 6362D6E68A2A2A20FF76479423272F252C0D7AC70FADE002E30249074006D270 + A6E002145D38454492F196B8CCE5FDF450A2E95CF21A6A241FAE8033CB84C531 + 94C8AC484152E18D9DC4A9010F4803020219320A50C2930A4C613BB2E8422EDA + 528C8C14A31EC4E9C571DE323AEDD2DC2FA9914961C20622C54458119129CA0B + 9A2E46DE81E02A9D0600C005C009ED6CDA2123814DF7C11212FB341A04B45099 + 1204F4685ADB842E23A04BF951147F17AD680A30C08116E0709D9E08E6F3C624 + 4BA61D931C70A367052D122CB78487018383000929A186C10D940B0545D81740 + F12B762434645FD0D9052E5002BFFDF19B154DAA52F1278102BE0CA4B478E8C1 + 8E9A2276C4F3850FFF32947CE8F9207340486369906AC220B0534BD4946966F0 + 98372591D38359931338FB55007EAA307210C58D47FB81C7943053895234A37F + AD0060E717D8C21256B088B5E86115AB58C31A969204581E5469215284515514 + 6A508254D37AD94D5040B30ABD1E264A8A3449C4551E14B9D72532330EBA26EC + 8FA3A3C40E47C6D74CE0D46F651D90572BE2D3ABD1E10D11EBC81961B8D4E21A + 5717ED9A6C2DC4DA594F40C1B5466B6E25D4C04D93AE5512D5759A166E5BBEAE + 42A2B20A704245B0E037081064851FA508779DF6D64EF4B41CD05598C7A4558E + F45A02B18EC5AF7EF31BD8C6EEF7BFFC05B0609B5A15E5CE02BC0A90EE2610DC + B45662E2AA4E8B68FF24B2DBB4ED62F39891002FE020C1C7AB292138A1B26F29 + DABA3BF1F256AC4D4BAB882BC158010FD6BFFD5DAC8B671CE00A3C8308EA34B0 + 28981B0A14C3EE120C6E9A8429CCB43F5EF81D01006F44219CB012B4013C10FC + 2076D6EB4287518C0B1D7EDEC2AE1BBFBF4620C0FCFD328DC70CE6FFDA50C7A4 + 40B082312141F4B557124CC62D765F67619312841C19665A447DAC8006BAB40D + 24365A6E1710E8D789775AE510211DFAFA89323B9ACC907E7405D0E95134EF18 + 7DB59CB04169EA3E070780C84733B2494BE711254BC2C710682071FC708169D2 + EEADEC2874E30E3D2D2EC054846608C59777CDEB5EFB5AB062F6B5B0833DEC5F + EF1AD85EFE6B5339FFF0544B7722C8579B04051498E9B92A506BA08E6E002E6C + 91BB6878CE4EA3C302BA512F59EB5412840EE4A1A305CF1392B5D1918EF7A3E7 + 0D605A391B147C6E5AA6990C80BE16B4BD6D36295BE99AC24FD379DB762E487C + 4CADE9706F836E58B880B9DDFA202A9F70DDECE642BECB9BDB4D10BBD8200FB9 + C8471E722BE0A1D2F77EB6FB2601DE5C5382E106679A3F25F1809F6ED1B4101E + 2841055E2DA6C03CDBAD5C668D26AE80DC5A5C841877C55DB2DC694F241BD950 + 3FB6D43F1E75AA4FFDE957AFBAB2F77186947762E347AB7600A0C0300424D077 + 93803055E9AAF348E8AEEC3AB72AD38AE85584978F93AF8079907F608EDBA5FB + D5A625FAD5C49BA5FF8B0C354C7126DC9A2941F2C63BFEF1C59EB474BCBEE095 + 83E2B3158EC4B499F6664FC8BDB46B7BC885BD8AD26FE739DABF8208D18D2EF8 + 0843C8F019019812B2ED34B15F02F2B8CF3DC9059B8297505E136057A827B450 + 34ED4622E0BC7B18698D064AA18DFE5E4A6E079FB9383AA2530067AD17B2F6C4 + C17DC44DCC141E8BEFD1188D895DDF210276D875FACFCFEBF5A3BFD7EC87FFFB + E39F7E5F9FDFFDF8973FAFADF00166AF78B2D0E6349AE03107677746E3693CB5 + 7C21134714337AB1157DED763533050BAB670AE640623BA552D99325C17578E3 + 60281453190800768B2709BA778228286C12A003EDF27F50C563A1F059E2176A + 3B77342E37651036FF4FF1804D0860414A362DB7F663D5B73B41152624767DB1 + 040F5A655712134B4B5811E48011ADE00A8987559A1001E7978558B8855AD885 + 5CF8855E18866038866258865F161D1C7043BF67096A160A55687C0618320587 + 83025741A34731A767340C700A0B405E573345B145095C70357C102185426259 + 503A0FB188D4122D43E50A69F0057BE531DC04000B2021614017855254573387 + 99F0655E088A64687E5F288A62688A5B888A66A88A5B38691FD002CDB6860100 + 839E407B4AA005D87454D8748382A80911C87CDE1587C6942F364261B4368846 + 158C9570356F6010D583818A182DD2185CD532540B807C4CD3014F2617D5C305 + 2AD0899C308A66D8FF8577308EE2788EE6E88536860767E082BFD4869EC06F03 + 958B91C07463650981888F0A684CBB75814C033586071174E530D23738B0865A + 9270564DC3070ED01312875B50885220483121480E85043B6CC32810916DBC88 + 09E9888E20F99122398ABD248B93408B9C206495A07691A09046C36591E08769 + E53112F67946633E49288C080335A7F0101769345AC30EF6A892955006D0C690 + 07D26A1069314CF95E830305B7731A24D67696508E5679955899955AB9955CD9 + 95598985E508965C6905BDD775269987DAD6092EE93896405754255014917338 + 5787EE50505FE00E62B561F1D0380040554A10800AC090730168D45474E43083 + 74A005AEC0000108FF059CE0955B69075629995949997760999139999A099995 + 19011B058BEE984328A909D8A4022B99790D377E9CC634137874076338FD3894 + 0AA306ECC060E2855AAE569807F30639D2010F494D59600AC1F73A305995E528 + 005E899CC8C999CCC999CB7907CF7995D1790715A003AF28596B088F9C505037 + A805D0055BAE094770A66F7A139E0A707D92F8005CB096CF6362F2F000BA8930 + 82A98DD9E7345F00119CC84A9DC09962D99CFEF99F90690556D01F67399A8173 + 42DB552D0B3083DAD59310818DACC9057EE83E4E808790509F7EC307DDE09BB9 + D9476F001C5C407B25B69FCA79073E009D5859A2275AA2C8B9A228CAA22F1AA3 + 2EAAA2310AA3365AFFA37760051C956394A79D9BC09ECF8300970841B2D938A9 + C62C94F193DAA74A0AB487DD020922AA657EC018BE89A14C1354AE00A10A8480 + 9A9095D3799CC96995370AA3D289A2607AA6669AA6656A9564D982B268A099C0 + A0EFF3531F562510349C09C3074F3617849206E2075B6FA8005255A1D6721735 + 474D007011DF9006567A34595010E380A7FAD6715D3AA6386AA9987AA99A9AA9 + 997A072BC801ED989DA8D909457A3414905D6690068C814A6910A521E30417C0 + 187954357EA304908005E2D74A7AC605D7621A10B1795104058172378C5A9841 + A51969D001723A7808A909CFF9AC9B9AA6D08AA6D05AA2D42AA6D86AAD388AA6 + 9EC903964479709AFF095528535CD0A10A131CBA4119C3E904C1A123A1413D7E + 105FB906095A3A56EAA967C07129E20111E2734200C06A12C2100F40278D6A34 + C0551435F206CB2A73DD8652A2029D0210B13E10B1264AB1112BB1173BB1CA69 + B1177BB110DBA21CBBB11D2BB202A0B11F5BB221FBB1D0D97BD899723EDA0971 + 4607EAC9056FA067CC822969E004220A001DD0737483103AA18DF9F98F5DC537 + FFB89747C300E73554DC7717E64A3B74500273B30A93C13EC66A100C01417E00 + 984743077CD04040132A98C0A2294BB622BBA9656BB135DAB16B6BA36A7BA3FC + F7AD67290B0393450BB3537404894A272DFA921138CB07E1C77C1FD66DA68320 + 0A31B055134C1040FF9371537C13449B28853D15F72B0A271E36D9386620B506 + 01654CB18385C99BC3D113E2E0045C7B307420AC7B4A1A037B2C9510B223FBBA + B01BBBAE0BBB27EBB1B27BBBB51BB19E79723C3AB7B4B00EC01229748137A621 + 8587172CA5E128A6052C2F6216CB941E0752171E485F152965D9A31617415F39 + 59414321854EC40E92E8B8BCE331521B1C07C128A7818F82188D7B0B89D3388D + 7BFA193F532369000504C834B4E50ADCD03DB9D110007316676BBB691BC003AC + B2024CB2076CC005ECB19ECA2E72EBBBB2D0BD5B422FBAF122A651BCD6423772 + 512395B00DD08BB8E8B63D461129ABD02CCCE22C97321EF76257D652BC18A1BD + 71A54CD578780EABFFBE2B921E7231B001635A0889445278C2CE421642ACAF6C + 312CDEA1891FE8844E483117A1C143722692C12DF51500B70BBB4D50C5589CC5 + 5ABCC54D60053A00AA101CC143B119FC9B472FE2BD2E4CC6383128BC4109B14A + 2F1DF036E64047178C1E860B1709B120B85331CAA42F433C85DACBC7731C95FB + 8A17EBC03609D22165801AEAA5847E4C37771C1792DC1D71724A0DC111333CC3 + 52A3C1326221B7C113CB811A5B3CCAA45CCAA6FC99B118C6EEB50DDCA02305F2 + 1D4BB1112EBC3308B11384821717C0157212C7E3A0339B61C14571BE466CC967 + 1C2638031C689C2998FC7D2BA533DE9752EDB0BFFDC2AAA3953D3EBC19E98110 + A6B41E3CC2449C8BFF2917AC2944AC0AD92C24EB31BF4071B137A0CE02B0CEEB + 1CB1EFDCCEEC0CCFF21CCFF6CCCE137BCFEE8CCFF24CCFF4BCCFFB4CCF77F099 + AA8C1DCBD416DD2116C3ABAF0CCDD018C14C384105B7ECC60F0019CA91110EF4 + 0D76714F3DE3C939A110591B62A4573A3F8C377BFC0E209871FDB83637B12162 + 0141DE72CCF99231AAD0165CA221DA311A6F311774511728FCD3260CD4D892CD + A1711BCFC4CBE560CAB21BCF1DCBD4B07BCFA5ECD4B17B073A80073DD0BB058D + 8FC062471B042AADF0C30D3D35DCF326133D09B9BCC653DA2CE9F12940C4C2C2 + D119EEF13360F20AEE80BD0D8D38902891BE020FD7FB709D2C163AAC37ABB581 + 2DFC436DE21693C2FF44DE90263EDDD043FCD8083BCBD782C39DEC18536A2FF5 + 9CD900ADD99CBDD99E9DD97DD0D99C1DDA9F5DDAA02D0015C051A19AD599F0BC + 1592100BCD1152F3D30ECD4CDA51D69210AB3A3D17DCE1C909D1D676752D3F5B + 2171921C96225C381395608DD7E865CD7B9DDC2D7D2183E241829C5AC95DD86A + 0D1EC23B173C4DC2541BC4E01DDE288C298FA82FD80CD7B7014DF612D0A2BDD9 + FEDCCFED9DD9FF0CDFEE1DDFECFDD902409678C06CAC8D090F07D779042D5992 + 31269C31E0CC3D574227949006BB222779FCC4AF8C2520C8B42D35CC72B2101D + 943832ED880F3D352BA4554826D39BF1D7D37D78CC5CCDA167DE045E1795D2E2 + 1AE3D3418DB0421CFFE37FCCDC4AD7C255322C808DD9A6DDE3ED7D03EE0CE4ED + 2CE4004DE4F56CE49E4DE448AED942DEC5558D72FD6D5A057110C501D20C32E1 + 7504E3350ED13A81DBEC9023EC51203CD1195F003A1E74412C65C7C46D210B22 + C50EDB0EC82C35189CD720EE0E5E35E58DF14CE1B1CCC6DCACBDE8C3E26CE090 + 3DE8272CE3913D35263E8DFA22AB60F1DBEB6DDF90EEE3921EE9948EDF9FBADA + 518E2F0601B47232A553A8D73DA7317F7CE06BBD13035B0AA8501BC601D2ACE0 + 40117EE6A917956C01D74482262F92C45980013A2004444047C9CC117ACDC715 + 11DDAF5EDE265EC36DE0049A0500508005A6B5B4D602D6613DEDD41ECEB1F788 + 8ABEE89CAE13979DFFD4401EE4DF1EEEE22EEE430EEEE37EEEE87EEEE55EEEE9 + DEEE40FE025E0CC6999E2B07B141D443DD13B90DC1ACE587BE25B7ADE010322F + B7D1E9D2DB730D5EE625BE8421F8C8B42EDDC5120EAFE0042CD0041F7043F952 + D229FC811479319BCE1ED3DDB44D8BDC25000000A00200600679F0072590070E + 10EBD528EDD51EF388C311E59DC9144EC654D0E8EA5D0E459EE4E0BEEE3F7F03 + 4DF0EDEC4EEE3E1FEE40CFE4EA4EF49BDD048581D5104C105552E5178D67EF35 + D3A21EE3445CEA125D2343251C8DD1230C91C2F5C5366CED41497831220CC9FC + CBED7B6E6B286002567DE716E1BD74AED7A9D7CA88FD16E131BD4C6B8D5CD000 + 4A60004A10020C10FF026AC00066300040F0EC1073E37F1FF28F08F2D3FBBE8B + 1831DDB729DB0ED8CCE1EE9EFFF9A01FFAA2DFEE2FF0F4AC6D0A34F3D1171D26 + 0A8FCC3FC4EFCF122C3DF3D2151EF60FFF1374AD3DE851D42F5D281FC4BD4C98 + 2530F2260F44BF32E00226100237F4DCE7F57D751EEBDB43D3BA41DD32DC1101 + 9007245F029100071DF097FDA65E294D9188B6C4ECA6F0E50FE7173FDB54AEF3 + E1C0F340AFE442BFF4403EF4F05FF4E3FEFEE96EFFE6CEF4F70F083782023702 + 7729783D5C018C8D8E8F909192939495969798975C6D0F0D54140D1D0E6D690B + 5C0BA8A8A70B69170E65580F0F65B4650EB7AF587E549F7E1DBA9F1414540D7E + 58A3A55CCAA6CC69FF0E580DC2C565A45C5B2D5B175D426749015C497F421C42 + 2D441765BE586D5B60E324161B78175C69DB1C781C1C678B6D5D2DFC025C6B91 + 6415AB3614D494B8320796037A581222A1B0255599062154007022A4CC852C03 + 00986120A4439A301D9571F1D3A04D80050E1A60B910008B90120C182001A3F2 + 4287966DDE5068636A53423542885E68738B163061C3FC3CB8B020C08D3E82AE + 66DDAA212B56415F6F74E5AA5550D7B35BBD661D5B562BDAB46EDBA20D8B5543 + 93173A38F4C8C4B7AFDFBF802F39DB15F5015166A9121F7420AB712D5A4DA17D + E2D5C0D39761C53AD83AFCEDDB2A65ADCA740816EA6100286248C8A83126C599 + 001756BB60D37A5EFF1AA6DA640C78C1BB8885103D16FCA9C1C285050B2FC4B4 + E092A586151D491690C0BBC5A0032766546864E08A5416040000A83003A58C32 + 064AC48F0700C5497AF1060C20A0029E4199000D949829B18981991A145C0045 + 78DA01800005A67CA184124E302052092F95014576E13951C66DAFD0F2C02E97 + 7D418C61558105D788249668E28964A1A86289117CC0011181C528E38C343292 + 4627D26071612A06A9824A68B0C852C62CB61409CB2E930D230C15BED8724129 + CC9C62D02A4B6D48DA03697051036D2CE4604113599CC60672237439860E8751 + 50837153BC30660E785484040B6E5821C60839B021C61969D490039873BA31C1 + 32A638A8C2826698FFF1E4022550A85F7808146A8678E101A005769402608012 + 73287128050138119E165C94E1A9167F7430A9125AE8A7C2005804A0C6A4145A + BAD2A400D4909E0A2400E14C864F2D29155156D515175A73891597B1C622ABAC + B35D35AB2CB3D33E5B6DB4D662EB6C1F0258F1811035862BEEB88F28D34644BC + F8410D628AA59206860F60110B918F31064D34147418D53154152565BB3FB2F2 + 8C1F5075D006174A5890030B62842046173218801C122D84C082052C70700A09 + 5E8AC1011250F816423642848044165B34300272430480C4CA620C70C0C3CB94 + 8A804679F85142090EDCE8A9194E44A3051D1BA581C51B5068C700105279E029 + 000C64D1401A499BFF91C7025A88A74403658807C5026538A10615B624ADC217 + 5CE441E04839A5011E0031EC72B3A50BB4518B951D12B36E007D34116D136669 + C5ACDF8257DB37B4D66245ADE2842B5EB85D8163BBB8E1C7021E410A2F92ABF9 + E681D5E300C11418F310C03CFEE84ABC42D26BCB2B1D20099534A2F4AB12BBEE + B2623B533F49E3C0027E5A40B310499050C414217406850507E0C1C51F74B221 + 042A4E208FC116ADBC9B06120C5CCC82108B38D125C6CA1B24A078314CBD541A + 258CAA121FD9D5E08032256804844A6D68315E1E9D79105E0917E00A800C0D10 + 8F1A1641403E406100F24B1B85F8730179656700256800D23462864D008B30C2 + 02915534D007C49DFFA583620121B234F0C11286D0841C3C0B094FB8420F9EF0 + 85C8EA600B618895E770837338CC61256E83232651832A3D6AD7BB9812AF790D + A95EF1F284302E839907ECEE3342B45D29A6E88A7450E10B0D78C002CC700079 + 1030004A38001B3850152EC8A0080720411A64609C3DA12204681C992B644002 + 33B0E08E46D89E32B6508303CCEC0FDFB0DD02DE800003D061241E4983FD54C0 + 809EBCA703E7D18E1A8A8285A7C9A02706B0140554A0854921A00487A44200D2 + E0815689443D7C485B7894F0BE6FBC413B4A789B7634B2802A0E8943F9FA10B1 + 5CC8CB6CF9B297BC14E12F8589C26122AB094D48C107CCA1C3663AB31EA28906 + 158EF12ED229E636FF439297638894A1D6F1E275D3A08A67A23845EBBDEB02A7 + F3C434FB64842670C0335A3AC01834B688881D4007B129C20680A38C101C8006 + 1F7888F7BA388210F4D179A668430870708011706F15505A807F3402052C250D + 6A52EA93461AA00C27686492A6A8A40A0CC09FA2D88F3C2AC88383CC603F2D74 + 21006AD308831840B4F9E5213B0C789F29628A0004D02A514AB0A05330581871 + 925086293C2A0997CA54A53AB5A948452A53A3BA54AA3ED5AA506DEA559B7A83 + 26E8000FCB71A65839B7898BF4622A11B5262BE0A5CD6D422689F862E2340E46 + A8C494D39CE644A76888611225D0600C485049006A400338C1C88C68240117E0 + 788010D0840B4E30FF42636F34023186A01550C0011BB2F02E24B8E09F39800E + 68DC454A04108D0154D3CED794612A8D6021922A504396B8205200F0E7140130 + 547628F086EC98810E390DC0CD54E084AA785405A9541B7B76F7AE2F6807010D + C8D02B7667370DE1D2435CDBE52FB7BB54EE7AD783C42466B6C20BAD1996D72E + 56E0011E6030D6F68EAB6ED0888A47AE694DB6B63575AF7880375F275F62D955 + 8A787D92805B3130995CA0064678011EE0490223E4400CCA18EC0170A0BC33CE + 8C08D6101E0D30C01C0334947A5918010D9C7701215476043528C20BDE998A0B + 78A004EF72C0CD06E0002AAC92AEE9E3245D3D0A80492A030B35D08E1358CB05 + 2A4C6AA47E58C0AEFF5400A107FCEC3E7E80424D619A9DF2D472010D30C07806 + 680A3EA8010875BB60300AB34BAD6A1504664E339AD34CC235B3190D4B85339B + 35E06635CF59AB4D88000632E7DE3ECB0826A3E18566A03445415ED3BEA8738C + 867E120C26FA9028842A7480058CCE4A33451726318311D81058CFCC09070F0E + C1088A8083EDB9CCC30FAEC108468D0335368005A026C10894308204E480B329 + 3E0007B2E0021C8CE00C824C9A12A030A0433D44CAE38142D688960555D0940E + B2458503CCC6D21A20E0424AA0C3781EC00564AB409417F0141D3AD9533AD021 + 0F5C5083786A7021743AC07E87D40214C0A304D456F79657CC6516CBCC66A9B6 + F9CE000FB8C09F0AFF70AC32B509DEE2B39F17DE179810A634590A58A18568B7 + 22C6625E421AD27E5FF7E8324234C0D5ABB4C897E2805FB46104090E9F4AA280 + 721C14C108BEC64341B6A0851C140007051003030C80031D0C210DC233821168 + 400206148106BBE6F90B9E44D8E4598F0B0ED2B6B6CDE001AA34A0D8DA396423 + 53C16390B2C2C800D0F6A1B86D362838200025D0B212EE8376F1685B0B397602 + 955500852EDC86146058F62CC70DE3A61C69CC4C9A4A559A8A6637175E037086 + F3E1154F783A3BFEDF875F3CE2279F78CA3795F168AE7CE41BBFF9C8237CCF30 + 62B8E82F0136827DA8671297E2A189A8CD8B671C168C5EA2B0D615E9B59E33E4 + 236FC3524EA79910FF904007CF93D2229020EB55EB0009F0FC0309EE64853885 + 400723E30218963F02E0B7E0F754203EF45B9185DF3BF64969F003035AC5AA3C + 2C8528D7D1020258C53F5650E50BC46E40C0D2366FF6670969506836171EC000 + 28C8761161A37E5A40056D307E6F405BC4A6066DC0140F910601B820081035A3 + 9021F89637D955152020439AD7417D90798E77789087781D48677D907832E481 + 2838796EA6799477822388822F18673128791E8806DDB24CDE307A3A28090E28 + 4DC31271AA9756EEC27AAD976843A25F44357BC41269D6436922A77B50884E9C + 80059AB180BA374511F64575257CF0343B2A4140B3B35655320B56380ABA077E + ADE00AF2B22EFE02FF1A69283BA85069C9F0853CD2235EF8459050338BB13ABA + E723A770777E172C4585812050887456888898888A98888758788BD8888B1889 + 88088993288996688897A88874D60462E02239B883A06823174166B523698636 + 44F6E27A18270B54A844F9A284458118E7347252B87B56B81447E20761D00164 + B8286D288B86463A42F823E7C414B0E707BEC08BD4B0804ED13A2C213AE02786 + 6978864DB87BD1584E689886E6244859D808A0717E7E570BB7B080E04881D695 + 6FD8A5419558881D8889EE9881EBE888F0F88EED288F8D788F88588FF5C888F1 + D888F5E88FF1588F08F72D8B108AA0E8809F100AD40084A61851535471F2A28A + A9B32149D85F1E27FF8B6F688BB66885CC281ACF680C3F545F00D390DB2884C5 + C8182C110A4EB480B7000CBC707AD5737B23877B338986037693319918DDF80D + 04365DB8E0934CC18013385D43057852214E2060028AA89499D89491C8944E99 + 8850A99454199549699553D907CD471006B98337120DA5711841A87AC44884A8 + E37AACC868FA62917A683A96B6911CC99219320B45840C71584D519297F5E087 + 519497A46537BFF043D57369F8123A89647B00E69025B98DC4387188B956AAF0 + 4571E80AB75069B8B07B97E96E148837FAB63726800688089A49299A50A988A4 + 9988A7199A85F899AB299AA6A99A57B99AA8299BB00902A95988AE799BB68988 + 5680082DD0953AD8FF837CB59010359601437216779689468515D971E3F471B5 + 088571C9916678017E400641B9006B4005CC657B19958635730104B80CBEB800 + 724001E6B10A6D2007A4707E651006900613D1953B4CD2334BF1230FF1190E48 + 06C9609E5F200789E100FCB99717100716C42397A10A72F000612007DF784EF2 + B906D6488EA4D00661D000945994501178C4D204B25995207A95213AA2225AA2 + 247AA2269AA228BAA22A9AA220C089605590C0E9675F090AA220960D798A8826 + 918D8184DF944190F62FEE02977139810C480A6AC0001E503D0D8013251006A8 + 100679207FA6400179A0066A400F01D0012510055A1400543036CA100625E004 + 5140065581054E0AFFA527C10041A30C1DC00025B0066645010653066A806E5C + 10A70CE0076B50A572FA3E5C100651E0044E30A05810050C90070E5A645AB004 + 6EBA06A07129CB50066E1A06637A0568BA00841A0561D00A0B70054E4001D5D4 + 204C804DE768811AA4071E2AA2684095AFDAA22C0AA2B1FA99B0BAA2B55AABAE + 3AA2B9CAABBE5AA21AF01CFB20A333DA5E08490C3AB228396A8AB8989CAAF818 + B05719407A91422A85455A8641D9800CF04915DA7FFD1705CAE0010CC06590D5 + 7F5020A95C100507D2A86AA00503945B50A0A84E703014E0534A7005EF7205AC + B204CAF005080005F01968334105C4D6AF89E204509AAEC30669E3D7AE25E0A0 + F53A6C64A00CB3E2FF1F5BA30C14C02A82AA485A405779100568D30651E0AEFD + B20050A004E0CA0A08702961A6A119244EB2D604AF6A02349B94347BB3389BB3 + 3A8BB3364B95350BA23B9BB32A1AB4445BB4466B02C19A177B51ACEE55A36149 + 6863A998662991AB830B70450CEA12A47AE97EE098ADD93A8EA4E000FD47054B + 71292A0505CA7005E39A0A38A16CE6711AA4D2194C000510D26D50D0006E7A76 + 14507F57C00A6F506F90540F6FA005E627B06D70758DC4055730215A80AE2550 + 6F74D57F65A00551601E14D02A0F5B0F79C02AC34601A7E01E0890B201A0055B + 17AAA30A13C44605ABB006989B0A61A07E757337D7A537C412021360051130B3 + A379ABAFDAABBBFBFFBBB6BABBBD7BABBB4BB3BD3ABCC03BBCBE6BABC81BBCCE + ABABCCAB94686005182004A1C7B462259C0A490A513B96C8199146C8871CA971 + 1DC08BA3F32F423A44D73A94B8A07BE2C7005F701B6A0B05F0AB0C54E0A63B42 + 01E31705B3A5B64C80A65CF0050C7005E1AAA85180205CB0040DA204018210ED + D101A820078B7B057B45050643A843B6005F5002C4F6A7E91605AABB5339C100 + 080CA93931B1A14AB78ACAAFE51AAF5C3764A590101C95067B1B0558C00A8B1B + AF3D9306F70B0518E2B283E832CF27064D80B35370B3474CB3496C022880C446 + BBC44DACC43BBBC44B1CB4516C0250ECC4347BC554ACC539BBC46340BD42A0A5 + D8DB4C4E5B85509BFFA365998AE1FB93454A817D08453EE27E72F993760CB624 + C72F593825DA485A91694D61F8C7E8A02357584B95060B4AA42EFD5268B5D798 + 7FAC9353428791599C6E398DE844C7BED80AE4888AB28B8E3EA4A540800421E0 + 307740675B6CB4577CB4557CB36E70B3A91CB43DEBCA3BFBCAA72CC5B5CCC4B3 + 6CBC2FA04C5C59C63A849036BA90DDCBAC10D9569061A4B77886D6D89FE88B18 + EEE6B5776CC7E9500C8631876168AD1C599EA51884781966AD23131EA1992ED9 + 443B1C724D4893E80472798557B7B7CE79558E46DABE2C09CD44F9771B6A0CA4 + 10006FC0074820030E630520E006ADDCC4048DCB597CCA059DD0B8ACD047DCC4 + 078DC55EACD052ACFFD014BDD0169DC505FD99ADF12DD7EBCB9BD383F2857AC3 + 0C6066C94DED5B9DD4D8CE7CD9CC8018CD4D618EF4798160B80CD328949B9C98 + 20178DA783245CF31084297BA1730CCA3CD41A19854E488B22979172B8D4D368 + 8E465224F50CD54FCD991EC2A169C0075FF00640E0CF2B90BB6850D1130DD108 + 6DD115EDD0106DD6192DD6674DD64E5CD66B5DD10D7DD137EB5531EAD19C03D2 + 568D98CBAAC9F69271779CCDD4188DECD2CCF500CF2E3D5D499490A290068C10 + C862787E56584DECECCEEE87920969182C195F1B2A130FF18445AD91481DDAA2 + 5D93E508AD4479DA525DCF82380C1CEA017CA0D56FE0CF448C06538002B67DDB + B75DDBB6ADDBB8DDFFDBBEEDDBBCCDDBB81DDCBF3DDCC59DDBC7BDDBBFCDDB26 + 801778D00D76AD39A547CE693CCC3F7C44E258B5F24C8E824D3A3D4272B890DA + 4F8DC89371948B503A733C44D688D3EF6C3DB5F40CEA94453E5D72719523A3F0 + 965198DFA3BDDFFBDDD4D0FADF000EE054FD8A4C82051E70E058FD05B26D0563 + C0C4CAEDDB0E4ED0B61DE1CC7DDB11BED0B87DE116BEE10F2EE11E9EE1093DE1 + 1CEEE11A8E062FB067D511DDE3321809C92FB627D9514B724FED93E388CCCB0C + 2553A297EAFBD23C8EDA1B224D9C1D515F18863209E3935D92E974565688C81C + C7D9B9F7D946CDDF52BED4A55D2FE28DDAAA5D91C272E057E0016FB0CF25E07B + 5680066E90DC668EFF026C70E66ABEE6C59DE66CBEE663F0022190082A2E2E80 + F692C92A69461E84E04D8134BEDD29EDDD7EC9D7E20D198F112C8F86975E088C + 7B7DE4A5A086A627DF24973BAF18D4F71D9D503EE59A7E93326EE586FEE933DE + C9FAB296075EEA6FF0055FA00674C4E0650EDC232EDCC8FDE61D5EDBB51DE167 + 0EEB6B4EDCC51DC62EA208754E23F0E509C5303A77B5E77A6ED86E6C86149ACE + 38AE18CD5C4B0C78E5D9FDE350312C819E56429A7AC58E577108DF4ACE8C9ABD + 244EEED9FA1DE59BDEDFD61A8E868EE5D26ECFFC05151E9007F17EE01D82044E + 40020CBE011B8002FB6EDBFBFEEFB70DF0FDCEEFBF2DF0BD6DF0087FF0046FF0 + FEBEF001EFF0093FFFF00DBF01711E02C3FAEB32B2099DD00B8739D9D69DEE2E + 1D9446DDCDCE5E3AD71DE0879E3B97B16F5D7B863A494EDCCC98AE10D386818B + 942E57428DDF997EEE53EEDF28FFF3D03AE0A37EE0F25EEA1E70055FE00132A0 + 035630056E20F110FFF0C91DF10F0FF0B8CDF00A6FF5510FF554AFF50D8F02BC + AE17C48AF17DC105176025A0B0908E3ED2B338CF279DCDDD5DF2E8DB93521DE0 + D42E0C8ADCE795B928D94E5F7A3E71E810688F868BE18E19FC42EE3BCFF3A35D + D3EA2EEDEC2E66EF0E15499F07451FEFAF6DA5ABFE024FFFF45BDFF908AFEFFC + 0EFA022FFA5B4FFAFF2EFAA87FFA9FAFFAA1CFFAA3BF019C087A641F18330F96 + FC22D9ECDCBD12C7FFF85E7B8B71DF2ED56A374E7D37B5D08AF9E6070D58C7D9 + DCEC2319F3AA800E84519F5048DF402D3A445DEED6A8F8A28D7BC6E8E9A10EEA + 9B795D4BB2440D90F4468FE0599D07FE9C022F40DB9EBFF053D0F5F1FFFE083F + FF1B60FF5B8FFFF5DFF5F40F0828284D561F1C3D5C018A8B8C8D8E8F90919293 + 94915C690E580D1454580E171769A2A3A40B69A6A8A7AAA669A0A06DB0B16D17 + 6DA20BB7B8B9B75C0BBC696D0E65C2C3C20F65C60F0F1D7E5414147E65B6A2AF + C00E9FA7BAB8ABAAD2BC170F7ECE541D65AF659ACEE20D9EAEAFB4EFB3B3EDF3 + F4F5F6A1AED5C465C1FDFCFFFEFC9D63968E139566141E50F902C4431E871E3C + F07943514D08122FFF9A4C41B1A1239B8E1B3E821C49D26349922243824C79B2 + A5CA922C57BA9C39460C063C3D2AE9DCC9B367A505DFC25181768D15A951A992 + 6E63858F962C50B6B2E9E2650AD8B064C8921D7B80A5438385141A94E392886C + 2BABD6B0F5CAB674D5AD0B653685EDE0205E19AFCEBE385B57371FBCBFF2EE09 + 1EDC8A56B07D8813230607562F95065F29B429138E0FC4881EAEF06168518718 + 1F1C51820CED92F4CCD3A853AB563DA6909024897CCA9E4DFBD1250704FD786A + 63F428D2B6A872716B272FAAD4A9550F233BB6156B5782CFA2C50E60F617AC50 + BB8E034F43F69BDC06E4CCE14DF7981D71C0EF06ABB757D8F0E1610101CA1788 + 05FA5EDD1D3A04C0FF54F932C42B6F008144082188F1C246AB25E892050A36E8 + E048638C80010767D466E1853D91D506160691534B6FBE6DA7542AA3B8D28A71 + C7AD65CA05D614C31C56CE79D5805E0D38C0DD7464DDE2162F54B135622F707D + 47D72CC18CA7D733BBF9150F7AEB350955535611F3DE94F055590C337A7D511E + 3F0E50C72233963D8499666F7880840C055A81C6141B98F6A0836ECE14E79B34 + 15C2011118E6A96724693CB0C9630FD818A26F238AB84D2929E6429561CDC1C8 + 1557CF2104CD05BD94451D5998E6C8A3764A75E7E75E7439A58C5CEA98A7247A + 8139A95E61B0B428E57CB0D2671F92B32CA0082F0E7440051F793C2466667C00 + 01049A628C30069BFF1B30A86CB2CC2ECB6047CE829443B320456B2DB5D14E7B + EDB6D8763B2DB41D4538219E7B96BB671A7189132A88841AFA23896E254A9528 + 56399A0C168FE61759580FF0662B8ED45D8A4B8F522D05E4A7737DC22238721D + C957604B469C9EAA4DB2FA9E6218EFC3589680DAB8404E8A0085C5AEBC6216D1 + 665F7C71260956348142B4232D3BD3B3CCC65CF38227D13C73B725E95C6D4963 + BC6008B9E6165DDB02B91E345439A10C1A62A1501B9C6876405985EFBD8FE28B + 457DD0AD536BA50167AAE95A040B179C3708F365587DFB72A2F6791253AC6A7B + FABC1ADFDDFF0C849033BA7DB2400B442FD04607147C51B2C9115194870C24E8 + 318605DB428EADE4FF902B4B79B3975BCE6DE5C9663EB9E69F770BFAB353BC80 + C16BD3196D6EEA95701154336FB3EB74D4504F5DF02FC1640DE9D65BEBFB9D79 + 51917569A664ABE8E3C06D28B49727D68CDAF65049BA2371AA720B76E22B17E7 + AD3D95C2BCB771E1E55D43000C492C22B8575FF887D91B5F64B1720A2F24EB46 + E4A3636EADE7F487BEB9E8FCEF6F414D7810421A54A73AD64DE23678014F196A + C10DA795C25DC0B19D8A5A110CADED8E775BF343D776F3941B896D6C9B9297E0 + D0013D7E380F324A838CA9A4F797EA552C1FAEAA12DEF0A6B782F48D373CF840 + 06C817B22095C95726A3C81B9030A0158CA1739AAB9C129788C42572EE894E54 + 6213A328C5282271FF8A94732216FF27A1431890801642C54E7891BCAF40CF6F + 0E7C1A046B37357A39006B18C4E032BE42A340D5CD6FC313DBC02488B4917142 + 37C9F04A3394F698F0410C552E7C21A332C6C8AB60097C6A4B430A7298013070 + 873AE85A82E17E859989E8A5882F38E215A138BA2CD6AF94A81CA529F5673FFD + AD92731B00E021C088A1EE4CA62FD83920D20877100F35308DBFA15D042548C1 + 73C4B1035DE9CA1C25D52F6AF445781F04A1F114A5A3C1C10E3F82244F2155B8 + 40B8B53091848161F666182B61B0CD86BB59800444C0031E10A005B1B90465BE + D02BC449643340B008098C45C57EFAB38AFF0CA840FDB9452A22B126A7830D2D + 2D8409AEE5C71894FF3AE0E0D41128603A50986C4C142D2E984C6422538307D1 + 8B1F3CA6235B582A9A9B0AE1713231C86530A3318513C7633C348FB881D37A50 + 1AA795B6B7538635434B9194400A24E0051E70A005705804171C1086F4D93322 + 00E2431688A591825A919403CDAA56B1BA5525025008205BA84F1048AA3F8E45 + 124B25DC7D1678228B3E10A3C3D40E8B8CD9BB8E2A1332E9E8401B5277D2B045 + B378659B9735C302D28218D66D1DB0A33CA677D3703A2586DD2B270D9F43AA1B + 2E400412C86C0ABC30B4B22C200E61A000AFEAC9493EF06140696283050EB0DA + CAB11672AFB5400E2A375BD8BAF6B6B6CD6D6B751BDBDEE276B7B2FDAD6F797B + DB58DAE44E62E509FF1973D5B0980EC58EA7688429DEB80987ED461A6E95065C + 9362BB8529D3A3F909AF1F22A3A50E5C00127D45E91EA74295A4B9EDA732551A + 79C0638CBA2CA9B14EB25823F7EB5348B2230DEB14AA505340000EC00064AE23 + 83682302C4CC00284032609C158ED8D50A5BF8C215AE8921C29ADC49088E6187 + 55876ECA61AB5B4D46577BFB633365E7D6ED4A8D2D73056F78673C5E8474A20D + 96085B1E8997D2E24D575721868C06C7BBAF9962811FD7C1AF22DDB30F724E76 + 3C7C63873A334B65A17E20801552C405C8D08C1FDA937D4394F081663BDCE012 + 97CCAD65AD9A83CB5A34A31972B5056E9BE59C6636D7D9B66F6E6D9EDB1CB410 + CCB2C396E0421961FF9AA5983AC60F0FA014DAC26168F08DA31CBFCCAE8BDF65 + 36607065C6F9F1C332B2B997443322BD3A566F8F73D48ABBC0D76188BE57A444 + 8C682E5D877A4A36514E9BBC53EE69EF7B403D7228048CD9A18A60921F684158 + E1A2AB303DD503610E01FC1E87E128C6B9D9027D76856BCB06A109F08B1D2623 + 65521C62F2F4CD1AF5E1B6B72B9ADD764D3A5EC259188D37ADE9C29A7580B7D2 + 71BC4FFA571E11EF178C21CF5C906C8D0AD638859A0E947D637D0F56D54D86E5 + 8C6CBFF39D0E05D6A2CA1097400E390006720125B40D69304428B2328C4C61CD + 20AF73C8472EF29293FCE4264F39CA57BEDA298CC0CF1C06B489FD849042DBBC + D18F810C0A1B5DE8FF12CEA2DC4739F7BBDCF81C768761C835768C274A3CEF80 + 35BD2C7FDD05A94F4CAA83348028F3685E18766E90301C79E004AF476120BB5F + C4E4EE9187B62395310B71767E80004280436CD240861995C99EA66508129CE0 + 71E2FA9DCE7F2FF39C052FDCDBBA19F0881F6EE97440A1F2C99C8C34EFB6E427 + 7FD8C7689A1F4D03BA76D7F8E2AA0D84DD2ED5205ECD1AD1A7DBC6AFEA5D5191 + F675F5AD617E3814880234D866E3A124D6D5B056B2C1C94E4E85E72DDC05294F + A0221EF1491698870158C03C0F87993C0048EF1719010B6CCBF2EAABFCFAD6CF + 3EF6EB3CAD17E8000F5B707C725D778E7DDDFC483C4FFFF9E56B75296B3EE89C + E72E2B2AC86EA413FFF9A7E0F9443C43DD087AA79E16C75063A0C2257DD11E17 + E00466A0056F200CCB701022E67AB81476D7B348B5568191750C9A005396874C + 02A65954365499555405D6038EA77C7EC0109C743213212C6832026CB066D4B7 + 7D21475C2C1783DA378332785B07506DDF7706E2B75026E88092F71894D76D39 + D73688F673EFF756F157521BC535F6277A42D800FDD20B4AC57F9F867A1F5435 + 5CD136F97748B2D0064E00013F00005A90076F744E7B7175E400764DD2067C00 + 0566308773C8007ED00E74C37B920510CDA386F3355E7E407CC4970229F07680 + 13324C350325F32B62720559305521104AC9027239307295B85A977800997800 + 96A86699988969F6FF896AC68998E889A6B85AA4A889A7A88AA8688A1BE07D78 + D0023FA83AA65006A1A57E6EA31B5D617EB8D8739AC669541006DDB4849B3769 + 3AA26E80687FCF238C97046A96627AFE07146F1406A77675FC300DCE140B4E40 + 0710D08D00A004255043CE7575F5E586F75006500000DCD88DDD480766500278 + 883D65A7185C218085E636572788835888B148346DA060A3C54957E001595026 + C4620553908337A8900CB990D5C783E0876D7B0217B3725888665FC1305E4528 + 0E23D68583D409DDC46216257425050CCF118502B83CBCC17FA0068D7E856F28 + E66D98072561D8065140070010034FF003104007E00862F3B50E02976406E80A + 6F60063C89936600FF00EA98945AF073F87070BED77BBB5856DAA442FA28886E + 9701B21832654001FE515A13B132D2B7019C388A68D98A95988A6779966B9996 + 6E7996AD38977259979CF8966FD9967479976D19979C089187488BE9828BFC12 + 51DDC15C79818BE1D322E84023BA9679EF4792D2588FC93864CF335217B07FCE + C892A8C78540566854A830F050936D50024C09031950074AA0023D69064E307A + 9C1016E0716448660F7E0000DD98800CB09B50A00566C09A3F8000D7208FD973 + 813C750E9C7673B2995859A98F1327405EB910C686387CC009C342021EE7900D + B99DDAE990B1F47D5D59342CA2564698844CE7256FB44C95D77AD6100BE0305F + 49B284247909C818FF85B0B934BCB1999BE908B7606950E636A6429AB290074C + B94330000375B00274F003EEF89A3A37486C882FED992A1D809B74A0051E9032 + BC52024EC000BE498608F0242CA25354C969EB091EE400711540652B9A592D5A + 65C6179848B3090399829D742617F1022FD8973C6A973DFAA33CDA8A403AA444 + 5AA441DA966CA00332D00299692EC0777E7C03697C459FE046103DE775046815 + 8FE436C6A084C4184C22D29F778192A3A7741EC399FAD97F82A33735171647F6 + 6A4E21A06A00002A900176BA4319C00708009C00C000E0516490814C48561C5A + D08D0AA88B60A2061DAA0516EA01FA358F189892F7B886C8940CCD9995C66760 + B7920684B349F5D4FF4952652621A003C642666C09976976AA7B89AA23A7AA3E + BAAAB05A979B4872DE8701E1B927E26658D0D08CF2B6A9C9934D333594F63519 + E8306E82F2A54C3874BF7A75A2777FE44117BC9AA6FA2938B9F25206B1254A22 + A0B040A0005007A869A7078AA031809B10600650101629667B837A015FC08D4A + F00558500B96768279D0A108809B4A100DA0A08753694E296958560748DD73A9 + 985A88E3432E17B0061DF00557F0A9A0FA06A715021360206669A4167BB1189B + B11A6B016C6005212004E7B527507A6824D67F8E700956916989D59E758191C5 + 6A5DC389AC605A2870010E96694689F9688689A69CA954620A659637628B15A7 + DAFA05BFF905779AFFB4DFCAA8DE08051EA081AD27700C00012AE0044B971CBA + E20125C00072C8A07C409C89C13DBB48687FE87A5C42B0CD69B02D000365F18F + 14502696613257700529E30168B202233089AEBAB770998AA9DAB7801BAB7C2B + 72836B971D7B3A6720913E31799362853D2B30C9D10FFD060CB190096DE3A6D7 + 5022323B74BF3010A2C775EA22A5D28A850183B5552794DD1331DA1A0B7EB094 + DE9AB4778A9AA839AEDC68866A107C6C980C48690679E0071F823BC5C6A15080 + 007440074E3076242A1FC6A491956779F8720C7501602B3ABD1240BDD4EBA2D5 + 9BBD2BEA7614722BA055380C26B72B88A36230061A7BBEE89BBE199B031DCB78 + 598621505A98A3CBFF3ADEF058D5D0B299C06859927FF8808D5F1A35B85395A0 + 1BBA3B3BBFA146A5945156EBB04003170FAB1B0B546006745007765A07311003 + B09BB4316006ED88002510536ED354F89A0762E10AD4450179B0B5C38B9B5020 + 8F8D742FD934A9CE1B285C720AD81B712F9AC32C5A659C95013E980817100733 + 726CF7A4324E60202C50B1EABBC44CBCC439E0B1DD8B2121F65C2BE9927DF569 + DAF058ED298EE2F05F9ADBBFC43822B0A00C356695E1130A078C293C7B2BF439 + 10A7FBA62CF4C0B2D000AEFBAD767AC1141CBB785A074849B5E0A84D1EB0A008 + 900709D1B2A69605F5EA04BD09003FA005C84B6BCA8181BE1364023B70366CBD + DA9BC9988CC94465FF08609508333A03BDA27112C1827C2706D3D7C4AABCCA18 + DBBE14A2B83A717E5E73493CEB8CF7661DF8FBB2CB13B3FD0B99F2B90A00E853 + 6DCAA51E034D2855CB285B7E7BC34D11E8C0720C0B743CC1195C07169CC77A9C + 9A4A90944AC000E29007ACA9044EC0076211800D5026C2BBC210A0052EBC535B + 812F99F652F7287CA92B0D3A7CC3D96BCFF51C82EE64606D7B820CF62B032911 + 6F6B11E5BBA3AC7CD008AD97AEFCBEB411640B2475D054CBBD5A1DEE60B929C6 + 175F7C3DFF3B1C234A7B7FE821560875D154CB9E09A8B79764A3F9CCB0D0BA2A + F0BAD40CAE151C03792CBB788A04ABD99A4E205AB8E99A6AF00657F7531EA006 + 2AAC05C4FB030CF0FFC8AFD2CEBC9369664C5F936B1C9A1CD59B2CD5D50B6CB1 + F82F6DD0540E918279B01954F006FA642C9C88030740D6643DD6659DD666ADD6 + 67B9D667CDD66F1DD76D3DD768BDD6685DD770CDD6786DD72F40024705CB9320 + CBFFB50B12AD9FF342419A708F91D4148CDD562DB614FB7A76A7DB861FA28523 + 7DC5D4E17978E1180AB44060A8D2B110CDD65C075AF0D2775ACDD61CBB7540BC + B9C90008A0002A00054ED0D314E1102530D4BE59BC5F4B811A73411F05CFCE55 + C90C940B537DBD545DDC84F87607D61DFE7C6C01DD10C4320695F8D66D29D777 + DD97D4BDCAD9CDA3D69DD6DCDDA34FECBE801D0941E6213F2775858DA6543119 + B382D1D3A0D160ACFF794C31A28C2917677C0A2875D92C39999CD67A33990FA0 + DD0692010B11AC02189CB4167CE0A77DC14A8BA71970AF64C88EDBEC0425A006 + 161E051DEAA15AA004F8DA1464A7D4C8D43B32127C238664D8A01615B0C9297E + DC2CBEA285680859B6006B4005FF6CA36F9005765B203A9A036E9DD73DFEE36C + 4D033E3EE4405EE4447EE4424ED6429E03DEC7015B401BB2DC86B8143C06EC8C + 984073FB1B2AF0BDE59AE74C928B98515AC0F92D36FB6D92C0FD5CD650530FFC + 057238E000E09AB040BC329DC11980C7B06BE77A4C00ACCD8E748000B2ED0480 + AEC8BD49D41C5CAE58402FB7E422AA16E290D280603153F3AC16D850DC2D5EE9 + 12A7433E481D6D00FF069E8A386412206A20618F53DDE7BBDDDE7D0042CE89A9 + 9ED0AA4ED7409A034DA00348004FB251DEB89764E85DE57E551508C3099E90D1 + BDECD86EE5E50468D17FA47F639EDF07CC22C0C791D193D2A4890525C0E13DF9 + 06B0C08D3EE904AB79E0041003488BE0738EE07A1C03EBD8934FC09A7D0E05BB + C9B5838E0048C99365E8A78B04237194356A68795D3ADCD950BD2B9EE2D3DBEF + 00FFEF02CFEFFFAE0799CAB6FBC16577074462122C614602A85CB1463EF1474E + F1165FF1180FE407F00262800743308B9510E5C53EB9D851296AEC7FC70C751B + E2808BDD1E2E6F22C044EC52026E91F168CD98EC63FE16969BB33794ADA4F900 + 4E809B0C5ABC5F70FFED2AB08E0BAAE0099EDAA9C9E0D34CAE7E4C00A9D98E66 + E0E75A40D4EE4EAE3FC093DE88007C70155A83418E82055B6775B75714C741E9 + 6A5FE92B6A05C98D5C0100175F1DBE63724F61360118B1013D9EE418BFD7A88E + E479CDF768CDF76BCDF7849FF17FCFE41DDF028B7B580AC4B22C0B0B549EC663 + 1E3648032976148F5BEECBBEE1E5BCD72291777536B26338BFEB016C1FECF9D9 + 35E9005120F4E66A9A749005B0F0E679908EEDF804A38DDA49EB01329DDA7580 + ED5E0F0777BA025CCF9474A88EDDA80276E00306C0F53DA9046A700E1CF528C8 + C035CCAA5828A20B01EFEFDCDFFD044FF0DD1FFE2B6E8855C00549305199C1F0 + 502511388A113B7AFFF1F08FF8F13FFF184F035F05F29220F293BBFFB2000869 + 0B5C5C01858488898A890B0B178F176D9090691795979699699B9C9C6D6D650E + 0F65A3A365A70EA9587E5414541D65698BB38B865C0B69A01D7E14145FAE1D0F + 0E928F929FC79F0E516610744A4E0CD166745F9F74667E69D1003F103F003175 + 19E331E51904E31975E6E3752A100017B730E31F7AEF10F9FA10472E41412282 + D87181AF991935581E245CF8A094C25D7E3A6029236953A38B18175490B0B123 + C78F1E43821C29D2638A0F1F849C09106041075F7CF27898E9E14A4D3E319184 + 2031E2458E0338800A0D4A74A8D1A2488F2A0D4A63A9D3A4509F1A3DF0620406 + 2149586ADDCA3540FFAFAFBD1AC04AD56698D9B264DB6CBA45AB2D2243706F6D + D2441793DD4E73CB92C292B0A129B2A258B9F2E34096DB59B62A3928E3A7C157 + 2A6285118B840C190525747E9861E0044A342700E8BCF904000083694A2894C0 + DC0D000274EDC2894B473BC33B0019E020A2B7C38B0F032A54FC08EEC34EC07F + FF4EEC79223C1F02857EFD9EDA2B7122C50B19B337AAC0BDBBF7EFE0C38BF72E + 41C2490E2DB2A629B3E48B0799F0697A78E37EA798172E80E2D84F743F0DFEFA + E1F0DF7E011608A080FD11F55F800326682081074228A18300D290C30B5715D2 + D586BF74E88B58A1A422E288227EF2884587D87218215A1D820B2E954C722225 + 27E25549590DF1D5FFD774213AB04A2B54F8110B2183ACE86225A434D6CB2F54 + 84211924C654D6461EDC00E004057920A085675084568D0374D0E14D664A8411 + 06135A0090CF0F4AC490CE3AB2D5E60E042AECB10301BA7101070C3BF0208204 + 76048ADC3F52FC23820827246A80737D45C7A3427C9D529120DA35724B781C71 + 9769479A76B7E9A79876C7C3070408D1C3200EF811937CF2BDD18B0725384182 + 186C18285554B8DEAA6BAEBCDE6A81551C64B52157607D05226065257BD6596A + 0962A49183E042A35D757512C9623936440A2A663D205890853DAB482E6560D1 + 8063BD4016CC3091B42B651B0DA840070241FA9187165B7A165A167E20D01A03 + 5F7053661843CCB0FF8C983F1810CE38049433DB383B88A942A227EC90010C88 + 407C82085E1C2AC21E1C234A71A27A38A76D293C92A2502893BEA81D5BE3C52C + F3CC155891020F7870704612EB5181930740B0CA6A1E32CCCA460EFC2D886083 + 4C27EDF48406FED7B47F4F2348B5D254676DF5D6521375E155C20ECB92871D1E + 0BD8D9668D6822A56C89DBD65C9CD4556D5EA240BAE374227A0BA49086157958 + 23E49A4B8587413E590C65529AF10302E7FA61AF96F9AAA9C4BF11A9CA8D164B + 643EC412512020263C4FD4814E1DA4ABA3CE3B759EE045A277E6C9056F23C74E + 71403E74F3DCB6294F678A249562C496467AC81C3C77C37F573CCD9ADE4C0007 + 30A8F780CFF1B18AFFD31748147D1F1B07EEAA7DAF5029BDFDF738FC8A87101A + 8A5D6C58632DABACB2C8AECDF6216E2312ED8B73CD486DDC7AE97832B7382A19 + 6419F230922170010AC1152B22EC3ADCBBDAF0063A00800FE76A801FD48000C8 + 75291F008002053AB00BC794204C6A58021534370334A9C91B4F70136D085007 + 89C9AE6217DB4D0676B083179E003976704EEE74A72D7659A477BFD34804BA33 + 44EE14B102474C2211C3630724C6CC3C1FC0430B88D0120734E00D79C8A2D070 + F20620A861272FD84083F843C6329AF18C684CA31AD7C84636B2E10521E0802C + C446B60FA58F4478CC23591E61A9F8CD225A989891202DA198BAE9CF14DC0ACC + DE00182DF9FDD111FFBA68C0E07C81BE50B86B8165D10204A00019C834400D4A + A820BE4E680688B4E20B6FF08026CD308325F46206B05C02134EF339703C2C06 + 12DB83EA36363B1AC2A0487CAA21C54026856206C107F9D0C20E55360A1F02AE + 52B7B8C8059047CD6A22D13CA3CAC019B840843684810257E0C34C6442139C50 + 200BD5E3C9180214210A41AD9D0F4A1019D9D9CE79D6139EF8DC0F1B80B5CD61 + 9D8F02665B9FFA060A981AF5D18F8A005CDCEE47B7BDECE82F66618C63FE270F + BFF98D11B9F05107A8D08A7449100BA98012E2A48485D0E481A392FCA4124239 + CA7C286117BD788338F35002663020731C9DC1176009CBCE7D4E054A20C00E5A + 48271B52CC6230B0FF05EC0E55A84209C4398B41C52950C6AEDE5DE477B968C3 + 1287C8552776F5AB4E34E256C34A56B062536749E0C205BEF91E72B2EA0DA9AC + 5E08C4C08236DAF5AE78CD2B5EF789812CA4615875FC82D9D24658B414B644C3 + 20C641111A44854E8B90D772E8DD1693B70E4812A00FC04EDBDAA6A20594E547 + 94FC02642692C04B2E900A0E74154AA900CA95569094309D891AD450821230E0 + 1B8275E5126079059E96304DF9A0433950A7CBD519D59744CA400A8250CCA61E + B31BCA8CEA547BC83B4A4113907AB1A676AB79330E302F0D4948D517C4F91EA1 + 010D9D4EB8CF4FCA38C633C6736A5B43637BD5085F32C277BE38D8671CA9D895 + 7F0674A0020D30B3FF4ED448C612299A70D3444321B5BF10E9C5B2287D401B0E + 7AD1689605C26091A0306A14A328BD8B0210484DBA204341D70237C41CF48307 + 665B5B2738611A08F0004E774B01583281A74CB82002883A31A3C60EA95CE081 + 319DFB54082080B2D36D261FAD7AD54DE8E5015E8D3258A7ECC426527988562E + 6B942B908293E06167017000196670852CBA95264048B30CE64A57A49DB100FC + 81B35ED128E734D679CE7626E31B758004FE6E25B083D5A3A0054D0C41BCEF6F + 8B8DA642EB07D9271F9247222A03861B20E1465AF416919034BA9814910D1B3A + 460A1CE927BE00013350325DAD5DA912601B912FC42A56D0D02438C2E18A1A93 + B9844CB8F10CA000FF8172480C51AB33AE8F692802E73A17991050260F9BC93B + 262B3AA37B018F12A52DB32356B388E521550B321187067C217AAD92693A57F0 + 02ECE1F9DCE84EF77E2EC4E77E6AC5BFE913B0BC019C581311B22D96FE9DBE2D + 0D23BAA085C18874F062200C994A5F9A109B48C52E3AAA2E0957847EA07697A8 + 41AC845F3C6635AEF50C669410915DA8210A2E8E4697E8A08637ACA30E6FA082 + 6F739D6BCF85C3853EB6E1A008F58F1C1A39AA7E092976ACFB32EC622B21520E + FA95854EF4A19B75541C00832CE0E59EF2BE953E40D0094F58805F755BFDEA66 + 3C000BAC2083956805D07734ACD8118BB6B1ABAD59962AF0BED7AE76C72E5847 + B8A3EC3034DD0A4AFF4F78B38350CC032CBBA4D10290E73062B4C491416A337C + C143AA716D34A250828F3B8E83148886C8A1A0382DCCE1254E880103F2C05B5C + 33410910D8430C88BBCB9853CC0BCC4DFDB16D97644B02BEE75C70F2CF15A244 + 2A8BF5F6451F2B58716FED1460003DB1B72238CD4B932B443D042118C118D68B + F5E63B9F4039E0730FDE7DBEFFCEFBFACB6A9F412B9CEFEE3BF2996FBF1BFF06 + 2EC9824FD8A2D20ACC655DD100905A427E104FB0488F815A33F0E1F05FA160BE + 38D3F82F38AE7251C0255000059E63060DD101614005255007BB856333A0382F + 575431274C15932833977A4566647CD0103AC76496066D7603655C1501243882 + 2468072578652488FF442588822988652D287429E87BA5727E65400536016E33 + 71055DA41331701F4001674680037076676F1667449884FB51674C8884459884 + 4DB88450E8844A58854628856CA00321E07560D72383F6855F982C0F877EF353 + 868A76861871233FC717DA8237A9407798A5597EA3778241495430119A7560E0 + 17373212251D605287970587E76A50902F2E56027CD0188E13066A508885A805 + 9EF3030C500773E0380D40633656428AB30EBF767AA6A71CAA178AC8165C5060 + 49D8E16C1701820C810546977BADF88AB9C76538C33C49B000EC814AAC621357 + C083E1B466E47600F4F47CC2786E16C2753D4004F02670D8B78C04955896E03B + DE178DFB262D7AC1FF4C9016510B677E14462E7CF7187E506971A168F4D36F11 + 670C0E300D51F00682483679000D0CC078572041FFD70003882FF81226A41303 + 2540016180532AB7533300002A50077B00739F383217E85436B70F005002AF97 + 1D08762DD9C2102B58822C688217999116B99115D9912F78912FF8825044002D + 7006555006644005A9E474AD7278BE380248F38452389353D8844F2893359993 + 3749853B49933B89934C588CE30304A165473D6276875576649794CE8876DCC7 + 7650E9584FB632A1E060E57259EDA7167D44407B774AE8E30001640B65388EF2 + A740BCA6057C005783687114C0076AE0042590078D238F0C802F1584006AA206 + 5D00069947018DB1FF5B2A074B743090A34727C57590A0686CA9573BF0B00FF0 + A0065615916F081D8DC28AAE7899B098995B064552B4059E150714407CBB0857 + 5EB46662E066C3989AE7A6753A800148C09695842CF4C68CB4A95897268DB899 + 7E2AE38568015AED571816950B7A632CDF0896D198119F267892D0000EE40169 + 491FB0F915CE1941FFE704908800A1C40D25000755500573D00508E88FAD3498 + 04699088794333A7902E4500A0E70D18D400B0A7182AB38AD01192F6799FF899 + 9FFAB99F56807460A016C2D7564303347C804E3C91036EF6933AB9A00ADAA00C + FAA00E1AA14448032C2006242003AE52367704861CDAA1224209D09876226A86 + 57053817F0869116FF69C3F90AC0592490349CBF702C4E39A2E2989C837401A1 + C1005C441FEB08161C855211540215B45266A026E1D0055DE09D73602697D84A + 0D349066803A22537A31877A8A5928C836000440001FC00CFBA004192199F309 + 1D13B99FFA0992661A92689A9F56804DA5D203DC840558A245D273055F000432 + C00053E7930B2A8540C99348E8A75618A865D49383CAA7FC9103FB4402AF692C + F1369B904A9BEA730C04867751C976FD461928BA18A07587C0293FE452870035 + 16F6B616DD978A30E29099F0084E1062CE9996EB887F8FE1498D53624A600698 + 215C7560795BE09D7BD78F99C304A596AB02799E14939035B79EE8C04206D00D + 6B02050755481349FF99F599A6D67AADD8BA82E6913367400417F03C027A66A3 + 797C2130002C1084109AAE12BAAEEADAAE3769212370A144295861B7944879AF + F69AAFC8F28C6977A9B9D908D7A2A2FED3015AE9A2C2B951BE305A10352998FA + 4C9A1462ABFA06DEC000F3311FD0897F16F7A39E9407446A06D30001600007DC + 79924ADA41615002DFE0AC74B202C61A108AF90F3EF00E5ABAA5343B0105E10D + 90197B273AA6F4B910F8B9A61FC99141EB91409BAD50C4015D200F6DE0073968 + 5E57D00B59F0456230024723A87CFAA7826AA85178A85C6B935D3B854B08AF24 + 800744697D917AB6929A162DC336B8E9AF37920CE5C20BC05018CE2217A0A024 + 83010B6EF87051B9FF0093A30F740005DAE0AC00F0AACF89B13E4AAB1CEBB11E + FB0D22FBB823DB0592C64151A00F23E0B1A063AC178843DDA004E7C001CB7A0E + 2BE0ACDDA09BD3DAB30F100177A0BAAC1B92ABFBBA2FB8BA2408BBB3DBBAB65B + BBB04BBBB69BBBACDB9F52841D373853C417342B5634547B000590BC44A8BC0D + CABC50C8BCD01BA1CECBAEC95B84D3BBBC0A4A032F20AF81E6A1DEEBBDA5CA73 + 6848A3258A9C37729509DB01C669B0172069A7D470295355E53B3F5EEA982A4B + 275A30133BFA053D0A9B1C555345FAB14AC09D905B05493A07959807CCA00223 + 800778800123405CBA647A7B108A4E250276D00D063001344BB3E74000270401 + F279BAD4EAB3B16BFF9FABEB82FA29BBF6A9C2B5FBC227ECBA1180821280121C + B0053CF33C5844A7F28113E8643D2C9003D4EBAE443CC4463C8517220632B041 + CA88B64E9CB6CCF243FDDAB6C719095D395A74EBA28EE000DD0850DF18707B64 + 116CCB05DCA00F21ACB20610263A1A4E870B9D894B052F0600459A196A500504 + 0CB93050057EC000B7F1C01880010E1C028A9330131C739B1B108B321C1BBCA5 + E790011C300E2BA00F3B4BC2A83BC3AC0BBB28C8BB98CCBA997CC996CCBB9DAC + C99FECC99D1CCA35D35D2D9051EDD1B4B908577245023E91B5D85B93D75BBD0C + 5ACBCFFB93B8ACCB124AA14A9C055DA0AF4C89AF4A59CC847576DBD7B0E2188D + E7BB0AC1D06C4482FF24082B5AAF301128E36093718A5CF039DE200344E004DC + 0C0106600303000F4EA0BFCF79B1A7D60B6952A4EFA00473D09D772CB255D000 + 0C202674F0C7FAACCF78F0B72AF004856C43C536737650102A30B38C8C0E1C30 + 018B920FD852C2106DC230CCC2148DC22558D1136DA6BACBC22948D1BEE75D60 + 40110FD0007C60135B449A5237027555C42C7DC42EFDA0BE8C0759C0324F5CD3 + 92BA3E943AC663E98169B8B32CB31644B2C55DAC6188045169C14799B1264040 + 0470C0D40CA02666300152FD0E0781135C747F75E40B1E5B1AF0C0077260C776 + 0CB973E03999B1CF660DC8355003B9E4633387C1EFF0033F500403B002A19B0E + 133000E5DC0D3C1BFFD1D4EAC977F0D77E0DD8A29CBB822DD87EADBA86FDBA89 + 1DD8841D013713454AC7050F004EC41B3D7C0004970D046094A0D5DBD99EFDD9 + A01DDAA23DDAA45DDAA18D032C60150DF0BDACDDDAC84C4821CAD3D09855B629 + 3F278A055E1924D6C143F1CB2EFAF0031E708C3DB0273D00037520D553DD0C25 + 504E6979B883480194172674A206A9D09DF26CC71E8000DE5003AD79D618D09A + 3AF0C024D00D09F30402ED544120002EB026074DD7092DBA78DDD01080BAF44D + 7BBBEBC9198DBB87BDD1F87DDFFACDBBFFADBA34EC65DB76B75F506648706633 + 91A12510033D91033460CB2F2DE1BB8CBD15CECBEA1ABD056004153A3E376DD3 + 208ED38536C5CB1CFF998004A28E940BE6429C6D8873DBB2B0FA1002C33DE37B + B2273080041F60B3F0B0DCCEF9AA32A596BF004A496D6A8071DD555053745203 + 7EECDD671D0265FCCF2F34280270032ED00D076D03A1FBC81CB002788DD7FAC0 + D7F56D07AF2BE688ADC9644ED88A9DE602AEE67770E66EAEC9827DE6852DBB1B + 312A4290CA174006EEA1060A1E4EE385044E30573069E1A65DE8867EE888EED9 + 34300662E0E1C24CCCC3FCE8927ED4A728DB4CC60914B600A2E0189C661DD2C5 + 4CD2B118FA30002951DCA60E03A80E032D4000EF400771D9C3CDAD968DA8053F + 400751B0047110072362DDA701012E30B64CBECFDDFDC73AA00327F4CF013DD0 + 37D007549E0FE3BCFF3CA14B005CDEE5F25DDFF43DD8FB9DEDD8BEEDDADEED83 + DDA6D9D4023DE00073400158C49235114EF4E101C6EB02421CBDB34CE1D6EBD9 + F10EEFF25EEFF38EEFF8DED9D84B03DADBE87FB0054E2C9B1FFEE1942EC6961E + A6CF54BEB78D2E83911052F5E28E320AFAB00252FD011753DCA99EEA1CF00D3C + AEBF3EBE620CE0880E84EBBA5E2272F000A0010F21B0E4C1EEDD7850ECDC40C8 + B323050270F352D0ACCFDEC80C33EDD4FEE5D60ED17F3DF4445FF4465FE6469F + F44ABFF44CDFF4442F8BE37306ED4BD27C0E6E79A05AE94402419CE85CDFF55E + FFD9319D051EDAC4AECDDA62B87D09DF3B79E1BE76E807BBCDDBD2E117A38EDC + 1380F1A97E312D40FF0F30900566066E7CC000A1840003282F4B3004B91E0721 + 420550F00E06D0F24C3EEC90AFCFDD8D07A141272AE003017103382F05BFC1C1 + EF2DED5DFEF3F910F43D3BF4655EE6623EE7A83FF4A99FE66F6EF4AD8FF4AC3F + FB73DEFAB11F0112C003357892A1497CF29107800ECB3129DAFA2EEFFC7EEFC8 + 6FEFCA3FEFC70FEFDA3BB67FC08C7257F0213EA92D93F6DA513F9C5A870ABB4C + BAA332154FF7525D0779AFEAE69FF72DD00296ED9C50C0525A70CF003003871F + 075B009A98516A8EFFF2FABFCF2100082C3F103F3E025252411512031304198F + 19902B0395960306109A0F589C9E9DA09F9E77A4A5A6A7A8A9AAABACADAEA612 + 291F045D170B650DFF5779BB791EBE79577C7C6F482124232C3405CBCCCDCECF + D00509D1D4D5D6D7CC342F62485D6D0EE0DFE10EE2650F0F6565E3DFE2E4E0EE + E3F1F0F3EDEDEFE46D171769690BFEFF00030AF4C74F1FB8077E2850F8D2A0C3 + 3907E9224A34674E1384463626649CC051460B1819607CCCD0A224855D1E7A79 + 80A2048116285000D09931E4C190380F3C28A1030100093C18820A1D1A548750 + A3458F0AC5536350A14441820C98C5E1D1A30F942E59CAA4299457515E4F4528 + 359654D9556755A57DC56A6DAB085624F0C0D3629F033F6F52FAF275C583B037 + 403CC8303682068E02879F25460C6D71B3C59099455E36993165C998ABE1D046 + 0289902DEED8E1FBFF56068BE987A3DB885E1DBA35EBD7AE53E7E337B0B6C07E + B8D3E87BD04021950E58D2419C28119DC5151B392A9F30ABA4C8E71F5B64E8D5 + 8BA54B280C00006032E4E603260006D5900194A8F9F3E883720891A99088208C + EA58959401ABD64B5C2180DDFFB5958053FFB1A54A80000A68CA7F0422586005 + 3C7CC081105D3880C50C7CFCB2974A6F0026830C35BC908332CC4C538D88CE90 + 88CD89282E43A289056823860C54DC730F699CF8110670E8A823E38E3CF6E8E3 + 8FAAD1869B6D44FEC3C5026D744005157E74922371C4598491465426E70807D2 + 6549124904A4C4404B2F6547077743CC905D4F4E70C0011EE50D8514066FC6A9 + D45278A450C40F85FF443515017C4252DF7D5AE5F7D5A06019C8168103A682A8 + 808BA255410A3AE02104175C944141857AEDC5C7156F0823D8316CE490E2A8A4 + 966ACD66DB2001C66BAA99D341077EBC7ADA0310AD131B6CB8DE4A0F3EFA0859 + 64915C5C20E143E9A0F32494651CC75172562A4740495A6AC90103085C979D0A + 6446C1930A329CD1829A6C62D0667AE48A8B81151F1EF1830152C9E7A7241F00 + 1AA845FCD5DB49290AE67B87BE09E2EBAF82A4E81BF0BE040F6C70C104039C30 + C2F94690021E1C9C014E427D51B79707C150F0A9182CB0E198A920877C220E2C + 8821693DF070F26AACAFE228DCAEF2A01CF33B32EFCACE6C450E39A440FAE443 + A3B1C8A623659544FF2FBBDC23DF66C9017D75586BC60F512C3104143C0D80C7 + 10420801EEB849750DE79C41E1A1C31846D050840A10F830009F55F96983BCF3 + 76652F7FFD1E2C30C3FEDA9D37DE07F25DA0C2752F7C470AB23CABCF1A4B58B8 + 575FC3BC91C760C7B080C3C78A6566D9E5D754168DE69657866A6743ACA69A03 + 0FAC0CAB1FA837199C8EB9B6AEABEBE1E4B3CFCE01E9BC80ED0B1C79641AA4BD + 532C94C731AB5CB3CAD581E5965A6650157666D01145770CD0A1C2083A7C9081 + 102D68CD66B8E59A87070156B051360D39A8A0C2DAF349624356705792DFDC84 + EE2B00BF043731FFC2F3D38FE0FDFA27CC3FFFF80BE0FEF8F53F04C1E5037800 + 03391E4085BC58ECFF626FF802108A11B92224661A180C913436A8A20DAE4883 + 190C21073D48C20F76B083193CE10639E399191D040B1D0843AC6CC4321CE5C8 + 563FCAA10E65A41AD5F4AA1F00B19D10FD71A4DBF1AE87103987122532B48C38 + 91684F5C4E08D4A4BC2A2E4D4D75300304A23684E8FD60042310C3141F94B570 + 95C728724A0A523E200651D1E08D343000FADAF688B7B50F3F1621941E3901B8 + 7F09106FFDBB5BFF0616C8BD05727E0EC3800CB0D4065C38F06229E1C3172890 + 05C184400C23C801E544C6C94E2E838542B859234B07AB52CEB094C0595DEC5C + C7CAD7DD4A76B421C8ED6639C45AEAA691143956B234B102A3F9924ACB09E62C + AC484C0EC4A00471FF1882B6BE280631E88004E2CA9AD6D60414AE1125526C7A + 011CE1C802F4BD2B03ECBBA3FBE8B54742019080F94BE71FF375CE75B67380F2 + D3DF39DF994EB81885917FA040A72009492038EE922F2802084B48D00F8AD084 + 051D21420DAA501276B00823E8CCAA520643539A1275B03A8D3A5847B38ECEEC + A3309BC73D7EE82B59D6929601B940398693A32642F1A5C4630E151FB1349A72 + 406A6A000004C2884930EA608A43F81635DDA4146CEA409BE3334C37FB445370 + 8A336E102827DDD6E9BF42A293AAF0646756055840770AC00A8FC20096B6D086 + 2D34800FBCE0E71B16A20619800A449E54615C47788D04908F7A1C180DE94C77 + CABEB62C952FEBE1FFE85A49D857FA7076B543E94909A21B958E6E89C11B1E47 + 9023D9605A9600572C660690909D1F984107CD6C661875A0A6AC51937B6E6293 + 0E3EB44D1A0C60056D5B9A245610CEA7BE4FAA5F49A7000CA1DBDEE68FB7BE0D + AE70874BDCE21AF70E119040A438D0852D38F2811004021F9020831888C10520 + 3A6842B5CBDDED7AB7BBE09586117240BD2CFCE11D2A9321ACD44BC3F59ED249 + 3B8CAF7C77349B93DA57B1B71396398CA389293DD100728429308559153AD291 + 0010285968C3C8D3E56ECD5C5F438A9D9401C702B060056CB30A019E0A2841C1 + 0F2CF98BA73A434CE2AE9678802336716FE3C9E2138BF8C4294690156421A932 + 6C414979519C2F84FF41C962708C0D3430423416AAC167107944283AB2347040 + 5E1D202174AEB2A85F67983A967522B08375656159094B7EDC77884154E97094 + 35E0B701D800BD2CB3658FD6D4F93C4206A18D3318A9B7DC69A2964D5668ED1B + 7DB0023F4562C31CBECF6D3F1C0AE31ABAB83738B4A2839BE84557E0517421C2 + 05CA4005E82E4E92405003615820E4F07AFABBA0FEB4A7C71B51E692AEA25396 + B24553890E1C86B466B0F6A8CD7AB80FFC7E99965EFEC6035CFADF33CBB1974F + 8CE9721C649502F389007860302617DC4C36D9797B18E0410E8A90546D60783E + 55097487F348E84F2CFADBE00EB7B8757B87B908010CCE4D08A654B2B84E0161 + 3035C8245C1BAA42FF25DBBBC8F4CEB7BD994C3D214439D5003F1DCB5063AB2D + 6B59CB5DB6B5C271C73B0744D69798F0B51C6D20EC353BC2CD07AE439C996D32 + 2C4D53087840979E0740023FC976C3B5D5F6A071EB090124DA7E7D1080FD5EEE + 7299D73CD134A779CCE767BF99DFDCE631C739D06DDEE89AFBFCE8461740CC61 + FE73A4EB5CE6C8859467F6518619E8022517130610F2E08410C41BBBA20EB5D8 + C34E761C4034044248EF0CD9CBF6B553D9CAAB0BAC48E74BF7D891F4D6B8CB6F + 1B784D250003E0CC7FFFB5802D3E8B631B1ED9CBE6694F9D89F62D70E0A84610 + 321C8BF0041BD0517975D0B6BCF2C3803CB01C14E30EBDE847EF5B52C845525B + E8028E75EC170FB8FF7B4324E098A8F02D42147AB7DE634FA8ED6BBF8CF18A51 + 08370AB8F05129AB568BF2E0066F5DC2F1AED8349099591197F89907B0918A07 + F3F0D8DF78E2C5C801316C40CFAEB581C9259179CD6F5B13D5D242E7FDF0E1FC + 093DE7EE8FBFD37F2EF4F9C1BFFEF4277AFCF15FF4F7373DE9F7477F8F824010 + 820B1450316AF505C4C059B2D769B947760F188118446A21F01BAA5643C3973A + C5271C1C0552B1E681B2763377B7700BC77719217D28487D2FB51C4E44711F50 + 78D88778CAC65323805D65B3196F54048DE067CA132FE6777E10502D2EF1124E + 90070D602F8C7668FD177FC35574E9E484A1B784F6E75B52383F566005E2D202 + 5DC01BFAC44F5947FF0CC6F002E2437B0E4550BB37500C456429D4506BB8229B + F1227F906AC0C157172870B2E22458967CC8E71AB4B67C24683B84000169164C + D1B715D2570914575983178386B771B1E731233701C4940113F05A3F28681621 + 845A10260CE00425C007EC975B41A774F9378AFE778AF9878AAA588AACB88AAE + 988AF4770756D0200F02111DF00579C00499A22912A4060C002A28940018248C + D2408CC2388CC8588CC9788CCAD88CCCF88CC6188DCB688C05E0022410020DE0 + 7677886AEED58DEDD55EB2227775378E3CE4877837342C38017E274786187806 + 1078354002304571F4488F2FC88804C04671F6212D92833B886D76748998887E + E9F712D8D18925A0FF067CD0109FF08A5338853E3785A8F890B0E87F12597317 + 097F19599118599160651404F0190E708B39A6297E310CD3351835681910D892 + 12387638608D321087A6741AA6318775D85755E6322EA4873E496B88756B6446 + 88D3276887580392156C2F05838C185AC90047393015E3478902B97999288430 + C1009DE88979B05638D2091CF98A6219966439966659963F37387391055DD005 + F9E43858C78B11A4922C500434005ED25842D4B88C1E949721B497CEE8971E64 + 042CD0194C824A36691A154587538651567643AD018292F96A1D7558BE625FE8 + 184CBEB6792888662D588FA0598F4C997D620064FE683D6D967255394E043984 + 59C90051500279C0FF07BFD19068799616C9911B7996BB799B1C298B0F13315B + 00065FA00BFC140CC3F06E4E700C9A74862EF99C2F1942E415024850934EF209 + 8B999317A85105B7873E191A3E74990A178883B81C85D83E29086C02A694A379 + 6C9030066F1495D6235BB36589AB095505F99A4EE0046AD0955460930F7003EF + 27A0048A7302EA72075AA0048AA00A5AA02ED70406AAA00C3AA10DBAA0114AA1 + 0CDAA0196AA115DA0702EA3004F8070FB0045F9012EC967514F06EC7E0020215 + 98D3F8A22E1AA3D008A3332AA3D389043469434AC4098AF957DFD8767688873A + 220FE4587796E965B69699CBB19977B48E4E8A1CA119A589D89EF93800E42395 + 6EA69AF7890957E9FF9A075902B2F906B5090AEF07A1F467A6B8E99B69BAA618 + 7AA1AA68A65F358BA877015870127189317E91056FD05684E102D0F9A7D14950 + 84F922E6A53A3B0A1630C48D197887A8717CDF49587D289E433294E65994B675 + 88EAA9949A7A8F9855A5563A0075404C04A0A55B9A1F9AA89FFCD9950D00A015 + DAAAAEFAAAB01AABB23AABB44AABC8553D1CF0075DA06E1792759E520C215083 + 9D768C334AACCA48ACC68AACCABAACC898ACD2C8AC0930A8329005C5A744D779 + 0EA0A0A8DA794A2E33A49439991F386B23881B4AAA1C4CCA619D6906521A9AC0 + C42701394C4D85045B8A9E5DBA89AF09A679C0100E41A66D4A7F097A7309FAAF + 656AA1A918B03700FFA106CBA0087BB01C7A8A02BBA100EBA601AB9678C096A5 + A131AC270C5FF00559006F998403801AB2813AA8784001B3E209878A9D3EBAAD + 1805581C85448FEA4AAB243B3F344BE4B966E749AA1D76889A5A342C689F7D46 + 9FA36A9FF38A9F5EAA95FBD99F0C210AB52AAB1EDAA04FDBB4AD1AB5512BB550 + 6BB57D3038159B0E7881295E5821D4E575016504D05AB6667BB6689BB6C74898 + 240023D75A4E3D0AA43FBA7673780E436A0F456AA4CB57AE1C71AE9AE7A406A0 + 021317A50336595AD1543E58B4F28236AD69AF5F5A021EC0105E61B5945BB996 + 7BB9B33A6304480E1D708077BA6340A09CCC49B632EA97A68BACA54BA3A7EB8C + 0500512490056987FFADFBB1A3D9BAB28BDAAD3DE99DBACB2A2445A9CA719E97 + D89935A0946B169095603D7FA2B88B6B114178B408A906911B8A9E80B90A5AB5 + 04EAA11A50BD3710B5D97BB50DDABD3700BEE08BB9E2EBAA4F1B0115F0534220 + 2C6180B15F2B0C8FB3A220ABB6F45BBFF64BAC46E0BA386AADB3CBBF37A9ADC3 + C76A90291AE01A82061C3340C9B7EA68A902E96BEE487D51144CB5D56789ABBC + 5AC11316D112F9891D9E08BD5FD0240D49BDAF6ABD054AC2226CB9086BC2AF1A + 01E6766E7EB00456F7B56BA5A235900CD12AB2CF49BA2DE97B6827BB9FC7A38C + A99D2D631A79B8BB462C3A1770B39695B396C03E3A8B1F9D599E124CB4BD5409 + 4FBC9A8390C19A68FF90482B9B1E4001D2DB09E13BC6D95BC6647CC6669CC6E1 + DB076ADCC66BECC670FCC6683CC7715CC76C2CC7753CC683130292B285B9B08B + 2A81927980043150036077BF889CC865EB7B3200A07B94B237D932DA38B755A6 + 51DE9AB7E3A81A0AECB7E6C78ED1F78E8067003175C5163C0059AC094AA0C11B + FCBCD13BB9732CA0E50BCBDBFBCA744CCB6A2CCBB26CC6B28CBD045ABEBC8CCB + 639CCB63CCCBBA1CCC73CCCB144B015B984FBB08496BE5010CB0022F50977AD9 + AC356AB62EEAAC894CB634C0024EF6072C47BB3C1AC98B5A4342BA0E5916B3AD + E3BB1C01BCF32A7136F082C55BCA7774CA10A0CAABCC0060AA9060CCB465AC01 + 791CD0771CD0E10BFFD0B54CD06D3CD007BDD01AA0D0696CD06ADC049A6BB158 + B0A796160CBDB869C3AAC81CADC8DDDC19DDA647D959CE432C8EDF7AD2E1FA0D + 9BCCC08AAB04F9988F6B46CA459B1FAD29841BBC9F09C90714F0959CA0014D80 + D00CCDD03F1DD4693CD4706CD4748CD46DACD4449DD4121D9C5AF8070AC87A57 + C02979016F7509B27D79C3C248B6D2E8D55CADBA629DBACE485E784005219DB2 + 403CD239B993E70C9EEAFC3AEC5C8945E9C44D7CD756FC54D706D3964509764D + CF03C0BC3F60D336EDB85A199BB3B9D3FECCC600DDD80DFDCF900DD0033DD010 + CDD88EFDD86F7CD998DDD899BDD9951DD99EADD9974DD997DDD9967DDA0D8D06 + 002D8BE616210DF0FF064CF0B957B0B16FE0B13900D61D9DDBF5EB02E3B1AA3F + 2CCEB50B43722BB78CEAAD788BC93CE2524BCAD27FBB155A8161B3F001310DD8 + 50857EAA8CCF86DDC15EE915A16DD96FCCC6935DC6E1FDDD8D0DDEE27DDE050D + D9784CDAE6BDDEE7EDDD8FDDDEF1BDD9E6FDD9F20DD14D506E74D1065DD085C7 + 7931F1FBB1BA3DE06AEBBAB99AD6A140BB3DBAADAAE610B4F2B247AC6573EDCE + 8A7B6DF26C59C64BDDCC4B07844DD886ADCFB2499BFBEA09A25DE2E56DE228EE + D8969DE22C3EDA27DEE22DBEE2A22DE39ADD0411704F6090060EB0045777A71A + CB752B7A97043EE4D09ABF2350813F9CE087AA986C0D703B89BBB151C0209899 + C971663540CFD0CDFFD7534CDD5C6A111CDEE1856DAF5B19A6FFC9DDE98DDA92 + 7DE2E6BDE6F38DE66DFEE26FCEE6721EE76F9EE6765EE78F7DE7A85DDF6FDE04 + 4DA05C1CB00549B0E36FD017FC24498E33182BC0022EA022678BDB6B1BE9CA0A + E9936EB6607DE92E0087490E3F0B4ED273D809331BD7ECA0C44419027C425B78 + 4DC581E6D7C726DD184EB4164CD32A00E61ECEC59E18A60C190A1AA0DA000D02 + 8DEDEBC0FEEBC2DEEBC3AE01BE0ED0BC6EEC8D9DECC7AEECC48EECC5DEECD21E + EDD4FEECCEBEEBC5CEECD92EECBC6E054E46056D99103976A29BC2075B670C06 + 406D097004C7C8EE65EBEED00AEFC40AEFF2DEEE6A7B046C2B034B30E29B7EAD + 9F20C9C3ED76A873FF235776C9C8FD0E265889F718DD32CD6159EEEA5B4ECF34 + CDE1D72D84D89D9549AB0662EAC8D63EED1D5FEDD7EEF1210FF2225FF2247FF2 + 1F9FF223AFF237306327433A0798B1C88904CBC9E8447EF3CAEA02479E058E8C + E04BBED641DC9870472CA24E0E73BDF0AD3EB45B6AE110FFB312CFBC0040EB1D + FEE1601AB9AB2A0ACA1EEC5A9FF55CBFF55EDFF560FFF5621FF6643FF6665FF6 + 687FF620D0F215DB05E9D000258A1227CAB11E80EE2E1079388FF34690E9D3EA + F39F07C00C0EE5297DC0EE40E59215DD2F3D0B13D0F070F3F0D35DCA8CAB0951 + 2FF51E0E05EAB795FDA9D85E01027D00EC7DA0DA9CEFF9A26FEC9D4FFAA31FFA + A69FFAA8BFFA595FFFFAABEFFAAE8FEDAF7FFA9FAFFAB04FFBB8AFECA0CFF5A0 + 5FFA1AA0B974A10F7E808BC7992113E40431800CEACEAC972EE9614DE9CFEFFC + CC2FFDD1AABF22DAEFFDABE0B6DBD670F732DDB96581680616A71C9CFAD2F988 + EA0E7FD77BDDF4CAC1F88116F9106006943FF50689D30AC9EF240E026800ECFB + 0F081A206820822085878984828B898C888D8D89938E83948F869088878F9399 + 87919A999D96A4928AA81A1A77563C78606D5D0D5F571E79B61EB91E57596F25 + 0C032F45464709C5C7C6C9C8CBCACDCCCFCED1D045233A59580FD8DAD9DCDBDE + DDDC0FE2DD58581DE77E617E1DE9EBEDEC7EEBE7D8E2650E0E6DF8F7FBFCFDFD + 100021A81830C146FFC183060D7E20B0B021810903224A9C48B1E20A860C2768 + DC386145C58F2043AA0808010002250852A25499F2644B2D5AA03060E0C4499E + 0EE0B42112C473A74F417D2A0115FAB368504E4447F96CD413694FA6457B362D + EA34AAD547372AE8902104CC960E146ADDD2958B02852F324290A8E1C24882B7 + 70E3BE2D26B7AEDDBB74EFEA856B2487981042FEE41CFCAD30E16CE6CEB15BEC + 8EB1633FE51ED8D397AF32E5CB96DBFC20297005C7CF1AEB10C038FA03C49021 + 2F32340DDA06EAD72047065CD9B2B6EDDA30A1C8B489D330A5DFC0830B1F4EBC + B8F1E3C8931FD7D04407060E2D6451E0C387ACAE2BD4D5C82031A22DB4BCDFA5 + C10D3F77BC796809FF8CB020C1D5B0FBC3DBC68D2BD72131BAC78CE3C5AB2FCE + C1E4CCFBE4738F80FA38A0051D9CA9E099411A317890430EB906DB441735B491 + 831E4D38A1019B0564C66D20DA969B4C0CA8F11E16961012948AA81C729425BF + 11024A8A89BCB8228C34BE38E38B32D2D8238F3506E9A2253A06C9E26F361A09 + C28D3736718773D0A5D1861F5F78A0062EBABCA12510DB89C1820B72B9559798 + E9D945E6997CA5F9169A6BAA59660E238490057C74BE279F37F6E1D7D89EF360 + 51C67F6D0028E8654A40D0A1A10038089A46A461F481841F65388047AA65C491 + 69906A88DAA13FD016E2A7BAC964229D209850EAA9A6A68AEAA98798DA6A22AE + AE1AABAAB4CACAAAFFADAFD63A2BACB6EA7AABAFBB02DBEBAA6E3067450A7808 + 7141191D5499C7B3BA00C107106F58A9D697058817DEB6DA764B9E0B715210D9 + 89751E268E3679BEA3AE3AECB0BB0E3693F923EFBC66700681010B22A42F840C + D521296A156694D046FF6A5A118701FDC0D2C22E31BCD28825908B62A9329A50 + 311AA9563CC9C5AD724CC9AC1A77FC9BC5AFB60863AC93A0CCABC81467CC32C9 + 1497DC72CC34EF0A82153AE0C141170E74719675B95C71C5176F2011420C23B0 + 304C794C27D33478E63D1DB5D354435D9E7A62E0D1C0B8E54A1C8E7C88D1A718 + 9F64EF47CF9F0362A636800070F683018A2EEAA8A399465A5A1D0D6A84A9C120 + 210C101D9F06FE12FF4CA3926B42AA87CB9A38B08BA3DAB8B08747BEF8E3C346 + AE38E2985F5EEAE4BA72BE39E6927FAEF9E168DCD1C4736DA4510615573C3B56 + D07C546B34034993C9EDEDDEE63E0D0B62202198D7C0D7694E6264EBD9677F01 + 269FF6F2FA7CD1366706907050DE097DC0AFF505538851DE1B7D903DDF069004 + B8E082130EBCC519A73F33FAEB63DCBEFAECC7EFBEFCF0CF6F7FFDF8BFAF3FFD + FB63EC7FFEF43341043EB033FFF8212C40BB8E07D252031618215BC610D31124 + 383566CC8582177C9A0437A84123C44908C10B2138EE8418C5186F4FFBE14FBC + 06C5427C38CF500953C2A2F2E690D230A460941A0D431465BDBA81EF50E3235F + E0B450B87249CE04FF5338A21297C8C4264A2E894E84A213232745264AF18A4B + ACE2149FB8C52E9AA00911D0C10784E0806551C075409B16107E513BDDB91177 + 704C860B488084AED9D13060238709D7E50E77A530327FFA4F81E6D58F122088 + 243F18C0C0165910EBCDCD7A16D9DEF4F4F63D0D852F202669982669C3C996AC + 246277B49C283917BA5166CE942DC318E7FE273A54BAD273AF3C252C6729CB23 + B61296F36B427392E5801E600181B7789D07F840B41284A0814B8B4679E2B8CC + 6E49AD9947A0869CF823C26A12867827748C62B091B616B2B004CF0B081D0842 + BD7D3DF28612518DF5BA37811EF24D22970448268518B83788D08B48C4E716B5 + 18457CF2339FFA0CFF6813FF69452A9A00056E68420A42C0813F6CE19762C152 + 2EBEF00520A8E198C220C61B371AC7EF804B4E5CB366F04828B6FB14CF1DFA51 + 61BC0649A096264F0B8702880A6AC0C881B5F37AA7198024D9E9BD770E4036F2 + A4A7E0EC79C76C0854A0FF24E85197CAD4A6EAB30F2FC01974B6D080E9243068 + 670C81184690CC093E43A3DF012B589521D66D8DB518EA2141438B2AD2AF9D2B + 6CD83C293CE41119C900CA9B9839100C658A80493AC8068E5C880E1F02D8D2B4 + F3B07578D43BE35912A1D6D39A078D2C0A242BD9294CF6B294C5AC660F6A5914 + 5CD6B2990DED662FEB59D19A76B4A74D2D6A57AB5AD14E610A68D0805485B005 + 07746006AD93681EFF88F90563D680ABE339C231846B0CE20A77B8C82D6E728F + ABDCE632F7B9C43542D6FED0D6EAE624AEEECA6E1FE5511FB40D9290F24280BD + 1454D3E905F69C9F314D4F0D0654087C68939E8CAFC310A005A256F3709BC52F + 6593C85AFDF2B7B598F56F64FF8B59028756BF018E2C82153CE0D0FE57BF1066 + F064239CDF039B40B639E3406DC940816AA5B11779D80E5729788CB346B0A3DA + 32F157590052EB5A338FF489EB09F5F3AE7A0812AF9931434CEF95AF9A3AD286 + 0D51EF4DDDA9A9F6BED7B1B7D10264D8CA0DC99656B34F8E32693DFB592A1F54 + CA95B5B2662DCBE5295F79CA9DA53296572B66274F59CC613EAD67413BDA27BB + 76B26888400A3E80FF872E3C940A55C2453079CB25EE0C63B9C60D34A0077DDC + 413B57D02EA8819C98EC62B0E1C9A4D96C8C6224C30F9732CFA5F5829E0DCACB + A0F32E84A7D82B32498E8C64DC2C59A455E66CAAB7BC6A36B339CB997575AB67 + ADEA5AA380CD4F7E35AD6FED655EDB5AD6BFDE35B07D7DEBD259E13944581615 + F8104CB250A75ADB61CB7854AC626954DBAC5F2D02EF90508E46B7F54EE98AB4 + 63FCB4B6725BC63F6F08A7876CEAD7C492C63489B55E627D181B9278AAD42951 + B275C32CE67E5399DFFE0EF89A030E70811BFCE0084773C217CEF082335CCC1B + 40C3B1EB7C8136CC0208BADD8596D4B0963F2BB7D01F2FB4C8053DF2911F1AD0 + D26C406F18CDF2F8FF38BADB7BD46EBBEA73B6CB80775E7F7A8007D46D2803E8 + 8B9113709490ADB7DED7C474259D9CEF7CA1B0B5966703CAFDFE729A1F9ED931 + 5B3DEA0897BA96C76CE687F7FAE05D3FF3C39B80333C542100178028B4AE43CC + 0532A081605286714F2C77E496F5C48226C6DCBDBAF7B4FACEDB4E7F2BBAEA03 + 694973131F814A3C8E6D9EF36C18D26D8AFCB9793F8037A2535EB146B737BE6D + 0305A76FC3EBA00FBDE8474FFAD29B5ECC68D8E516D290062C2C1B5AAFD3521E + 9000851A18A02D212779C9410E5D91E71EB92307970CAE0178EB82BBA48BA139 + A5CB7881345CA0E2E766A9F2F491F36D38E19009F379790FAB5EA213A0921239 + FAE66BD3796FF3DAFFDF6176F8D4738DF52E7779E00A57FFBFB77E7E5ECB3AFD + C4863FD607EE7E30CF1FD7FD867FE8377F9E955039D302AC27074B501DC2F46C + 5FE00424C01D4A0356C275776155625F95817B17411E4447BFE3792008632564 + 1FE5600F81F27CAC077D81626E6AE31F652078D9C0003BA620DCA33788E57D98 + 07129C327EE407829FB70128008440E85942D86F453884548684441884067784 + 4C88844E18854CB8844EE86F55988453988554888510F78459288545B8845D28 + 85CD21032D70010BE00054502DC2940B7CC00021000524600606A077BB778778 + 98877A68042EF01720E48380E81E89416ECF5788CDF77C2B7873F2527D83A157 + 24311093046A8E44FF6F03C05810205FF0A5742EE10481980D57288646A8855C + E8854A188AA56885A4E88563288AABB88AA7388AA81886A1B885AF088AB46880 + 3200066980767ED03A6DE80135E1040C400203E04075A787C8988C25A76D1E58 + 7C80485291514669B000AC97822AB878E7D678EEA105E3253D4387833B041288 + C4832D11059D880DA90886E9B88EEAD88EECF88EEE188FF0388FF2588FECF845 + 0B2504BBE8000DC086D6118CC2488C13A88C045990C7F551C4778E21381FE180 + 0FD5788885B88296267D69C388EF916924812F3668798EF43DE2438E29C189CE + 880557A88EB48885B25892AA988AA0088528F9852FA992EED89231F9849DE592 + 347992ED38050A85FF01CA920655D02CB5401600F90B6BD11D142872766887CA + B594C7E59415F8942567047EF78123D98994868287E87CD7C88200E28230E81E + 85023D21008E8255378C354FE347440A890D1BF09670199772399770C9067479 + 977849977639977BB9017D79977F59977939986FD9978629987CA9978A999885 + 2997096505807106BCF805CCA60B340190C35803C260909C898C4650047F415D + 6D899594D606CDC7958698888AD80F1659273B672F6630641132118C15444997 + 89F0C507A3F90070198473E99B42F896C0F98471498F79498FC42997C3D99B47 + 289CCD199CD0498ACE998ED3A99CCFB99CCE599DC0C90663706C1CD0065CD006 + 1C5699C008904E50FF024E704C23D699ECB97BD24401A3E98C59B99510A9785E + C9782F5854AF894866E06990C2582A00925AA09B57290E8479A0089AA00ABAA0 + 0CDAA00EFAA0BDD99D3AC00167C0050BF000146025794013970990EA5904ED19 + A252B91E7F779580570F0E9982A8097D14D9A2F9D09AC07305D807103F50030E + 91216909920840A00A792ED009A1404A97D8699DC7C99C0C0A9C415A9C423A98 + 484A975320A11AC60566940BE6198C2570A57E96949D6987BBC7A5C1F71759F0 + 075D60A2CF680F5AE97C5C699FD8780FDAC8644EC07380331AAEC158A4B67950 + F0053D0A3672690170C9A76FE9A71BC0A782DAA7709903854AA87F8AA881AAA8 + 7769A87309A8807AFF9790AAA8914AA98AEAA88B9AA86F89A97139A99A9AA97B + 6AA96C507608A83A1DC6A1C298AA25A01D2500054829A2215A047D1802A249A6 + C6579AA76988884820ABB90F30CA564E602F74100336D05EF3749BC8EA495AD0 + 00BB391F49FAACD01AADD23AAD4E2A55A5FA005490AAE679A56A5002225604BF + 07ABCAE8022C460521159F2C379F685A9F89779FD9989FD6E588E2346A02CAAC + F2391F89B1A883BAAFFA4A9793CAAF00DBAF01CBAF893AB0A0FAAF072BB00A5B + B00A6BB00EDBB010FBB0FC3A05C7922C5CC0050E50025180AA97D9AD6AD0AD5A + F0AAE2DA997364AEE87AAB26F8902B2A91D337912FFA82DEC68DF6E25E20C974 + CD5A0EF14005C059FFA995FAA8A1EAB383DAA9102BB40C2BB43CEBAFA11AB046 + BBB096AAB44D4BA8040BB549BB013C6905C9920469C007DDBAADABAA0679A01D + 6BE102205A685E3A7265CB9E9F2906590006B61A82664A9F69DAAE6B0A969DA8 + 633104920C40A6E7620E7E400514F00253D0B016C0A786CAAF85BB01872BB111 + 2BB883ABB88EBBB88A9BB8900BB9833BB9913B066240405BF0065A8B9EDACAAD + 5E1B62AE2AB6236B901E2403F0D9B6DF86ABD6989ABCDAAB603992997664C9AA + 894A90B779BAB77ED0007EFB0562D00441F8B8C26BB9C43BBCC64BBC0C7BBCCA + BBB81B40763A03041DB6B53501BA1F6B254E507BA45BBA04192759B072AACB64 + EA4A9F5D39B76DFAFFBDE65B2EBADBB77E4B015AD504812BA895DBB8811ABFF1 + ABAFF50BBF007BBF114BBFF98BBFF3DBBFFF1BC0F23BC0FA3BC08CBBBFFE4BC0 + 8DBBC0FC2BB0F78BB91810024090055FF0B556BAAA5D9B07DE1AB663ABBD7A28 + AB7E78BE2284A2A9A3A2AEEBA22D1BBB27BBC2235C42BC7B1667A1064EB00256 + 30065360C000BCAF05DCC0C2CBC3072CB13C1CC4C65BC03F2CC402BCC3044B76 + 3A10021E4051D64BBD5EAB0648D0AD5020062EE0C11F7C0408C9C2E9FAB6EB1A + B72CBB78742BC25C8C47F89AB36691C614705124600580CBC0701CC7723CC771 + 9C03747CC7784CC7769CC70CBCC773ECC77CACC781BCC080CCA763F0024B8C04 + 5940011685C11E9B7FC154CC551D8CC5779868DC56C64545C2B9AAABAA09BB2A + 4CC6A0EC5658B0BB54B0BE5F00C36B9C16DC3106717CC4096CC40AFCBF0BECCA + B37CC7B28CC3B70CC7B4ACC0B52CC478BCCBFC5BCBF68BBF83CB93897CCA9CFB + B58EFCB1571262617BB6947C5CD42003983CC25E2CBE6AEAAE6C0AAFD5DCCDF4 + 50427DABC6691C08003B} + end + end +end diff --git a/Source/Cliente/uSplash.pas b/Source/Cliente/uSplash.pas new file mode 100644 index 0000000..ec3ddf8 --- /dev/null +++ b/Source/Cliente/uSplash.pas @@ -0,0 +1,79 @@ +unit uSplash; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ExtCtrls, JvGIF, StdCtrls, uFactuGES_App; + +type + TSplashScreen = class(TForm) + Panel1: TPanel; + lblTexto: TLabel; + Image2: TImage; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + end; + + TAppSplashForm = class(TInterfacedObject, IAppSplashForm) + private + FSplashScreen: TSplashScreen; + function GetMensaje: String; + procedure SetMensaje(const AMensaje : String); + public + constructor Create; + destructor Destroy; override; + procedure Show; + procedure Hide; + procedure Update; + property Mensaje : String read GetMensaje write SetMensaje; + end; + + +implementation + +{$R *.dfm} + +{ TAppSplash } + +constructor TAppSplashForm.Create; +begin + FSplashScreen := TSplashScreen.Create(NIL) +end; + +destructor TAppSplashForm.Destroy; +begin + FSplashScreen.Release; + inherited; +end; + +function TAppSplashForm.GetMensaje: String; +begin + FSplashScreen.lblTexto.Caption; +end; + +procedure TAppSplashForm.Hide; +begin + FSplashScreen.Hide; +end; + +procedure TAppSplashForm.SetMensaje(const AMensaje: String); +begin + FSplashScreen.lblTexto.Caption := AMensaje; +end; + +procedure TAppSplashForm.Show; +begin + FSplashScreen.Show; +end; + +procedure TAppSplashForm.Update; +begin + FSplashScreen.Update; +end; + +procedure TSplashScreen.FormClose(Sender: TObject; var Action: TCloseAction); +begin + Action := caFree; +end; + +end. diff --git a/Source/FactuGES.inc b/Source/FactuGES.inc new file mode 100644 index 0000000..baf2b24 --- /dev/null +++ b/Source/FactuGES.inc @@ -0,0 +1 @@ +{$DEFINE MULTIEMPRESA} \ No newline at end of file diff --git a/Source/FactuGES_Group.bdsgroup b/Source/FactuGES_Group.bdsgroup new file mode 100644 index 0000000..28a572b --- /dev/null +++ b/Source/FactuGES_Group.bdsgroup @@ -0,0 +1,42 @@ + + + + + + + + + + + Base\Base.bdsproj + Base\ControllerBase\ControllerBase.bdsproj + GUIBase\GUIBase.bdsproj + Modulos\Empresas\Model\Empresas_model.bdsproj + Modulos\Empresas\Data\Empresas_data.bdsproj + Modulos\Empresas\Controller\Empresas_controller.bdsproj + Base\Usuarios\Usuarios.bdsproj + Modulos\Empresas\Views\Empresas_view.bdsproj + Modulos\Empresas\Plugin\Empresas_plugin.bdsproj + Modulos\Formas de pago\Model\FormasPago_model.bdsproj + Modulos\Formas de pago\Data\FormasPago_data.bdsproj + Modulos\Formas de pago\Controller\FormasPago_controller.bdsproj + Modulos\Formas de pago\Views\FormasPago_view.bdsproj + Modulos\Formas de pago\Plugin\FormasPago_plugin.bdsproj + Modulos\Tipos de IVA\Model\TiposIVA_model.bdsproj + Modulos\Tipos de IVA\Data\TiposIVA_data.bdsproj + Modulos\Tipos de IVA\Controller\TiposIVA_controller.bdsproj + Modulos\Tipos de IVA\Views\TiposIVA_view.bdsproj + Modulos\Tipos de IVA\Plugin\TiposIVA_plugin.bdsproj + Modulos\Contactos\Model\Contactos_model.bdsproj + Modulos\Contactos\Data\Contactos_data.bdsproj + Modulos\Contactos\Controller\Contactos_controller.bdsproj + Modulos\Contactos\Views\Contactos_view.bdsproj + Modulos\Contactos\Plugin\Contactos_plugin.bdsproj + Cliente\FactuGES.bdsproj + Servidor\FactuGES_Server.bdsproj + Base.bpl ControllerBase.bpl GUIBase.bpl Empresas_model.bpl Empresas_data.bpl Empresas_controller.bpl Usuarios.bpl Empresas_view.bpl Empresas_plugin.bpl FormasPago_model.bpl FormasPago_data.bpl FormasPago_controller.bpl FormasPago_view.bpl FormasPago_plugin.bpl TiposIVA_model.bpl TiposIVA_data.bpl TiposIVA_controller.bpl TiposIVA_view.bpl TiposIVA_plugin.bpl Contactos_model.bpl Contactos_data.bpl Contactos_controller.bpl Contactos_view.bpl Contactos_plugin.bpl FactuGES.exe FactuGES_Server.exe + + + + diff --git a/Source/FactuGES_Group.groupproj b/Source/FactuGES_Group.groupproj new file mode 100644 index 0000000..8457200 --- /dev/null +++ b/Source/FactuGES_Group.groupproj @@ -0,0 +1,424 @@ + + + {f98b1c11-3200-4f80-b23f-3591938de211} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/GUIBase/GUIBase.bdsproj b/Source/GUIBase/GUIBase.bdsproj new file mode 100644 index 0000000..1de68a1 --- /dev/null +++ b/Source/GUIBase/GUIBase.bdsproj @@ -0,0 +1,181 @@ + + + + + + + + + + + + GUIBase.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + + + 3 + 0 + False + 1 + True + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\Output\Debug\Cliente + ..\Lib + ..\Lib + + + + False + + + + + + False + + + True + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + False + + + + diff --git a/Source/GUIBase/GUIBase.cfg b/Source/GUIBase/GUIBase.cfg new file mode 100644 index 0000000..5fd05cd --- /dev/null +++ b/Source/GUIBase/GUIBase.cfg @@ -0,0 +1,42 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O- +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W+ +-$X+ +-$YD +-$Z1 +-GD +-cg +-vn +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-N0".\" +-LE"..\..\Output\Debug\Cliente" +-LN"..\Lib" +-U"..\Lib" +-O"..\Lib" +-I"..\Lib" +-R"..\Lib" diff --git a/Source/GUIBase/GUIBase.dcu b/Source/GUIBase/GUIBase.dcu new file mode 100644 index 0000000..f7a8de2 Binary files /dev/null and b/Source/GUIBase/GUIBase.dcu differ diff --git a/Source/GUIBase/GUIBase.dpk b/Source/GUIBase/GUIBase.dpk new file mode 100644 index 0000000..63d3a29 --- /dev/null +++ b/Source/GUIBase/GUIBase.dpk @@ -0,0 +1,82 @@ +package GUIBase; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO OFF} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} +{$DEFINE DEBUG} + +requires + rtl, + vcl, + dbrtl, + vcldb, + frx11, + frxe11, + fs11, + JvAppFrmD11R, + JvCtrlsD11R, + Base, + dxBarD11, + dxBarExtItemsD11, + dxLayoutControlD11, + dxPScxCommonD11, + dxPsPrVwAdvD11, + dxPScxGrid6LnkD11, + cxLibraryD11, + dxThemeD11, + dxGDIPlusD11, + dxComnD11, + dxPSCoreD11, + vcljpg, + vclx, + cxTreeListD11; + +contains + uEditorBase in 'uEditorBase.pas' {fEditorBase: TCustomEditor}, + uEditorGridBase in 'uEditorGridBase.pas' {fEditorGridBase: TCustomEditor}, + uEditorItem in 'uEditorItem.pas' {fEditorItem: TCustomEditor}, + uEditorPreview in 'uEditorPreview.pas' {fEditorPreview: TCustomEditor}, + uViewPreview in 'uViewPreview.pas' {frViewPreview: TFrame}, + uViewBase in 'uViewBase.pas' {frViewBase: TFrame}, + uEditorDBBase in 'uEditorDBBase.pas' {fEditorDBBase: TCustomEditor}, + uEditorDBItem in 'uEditorDBItem.pas' {fEditorDBItem: TCustomEditor}, + uViewBarraSeleccion in 'uViewBarraSeleccion.pas' {frViewBarraSeleccion: TFrame}, + uViewGridBase in 'uViewGridBase.pas' {frViewGridBase: TFrame}, + uViewFormaPago in 'uViewFormaPago.pas' {frViewFormaPago: TFrame}, + uViewObservaciones in 'uViewObservaciones.pas' {frViewObservaciones: TFrame}, + uViewTotales in 'uViewTotales.pas' {frViewTotales: TFrame}, + uViewDetallesBase in 'uViewDetallesBase.pas' {frViewDetallesBase: TFrame}, + uViewIncidencias in 'uViewIncidencias.pas' {frViewIncidencias: TFrame}, + uViewDetallesDTO in 'uViewDetallesDTO.pas' {frViewDetallesDTO: TCustomView}, + uViewDetallesGenerico in 'uViewDetallesGenerico.pas' {frViewDetallesGenerico: TFrame}, + uViewGrid2Niveles in 'uViewGrid2Niveles.pas' {frViewGrid2Niveles: TFrame}, + uEditorBasico in 'uEditorBasico.pas' {fEditorBasico}, + uDialogBase in 'uDialogBase.pas' {fDialogBase}, + uViewFiltroBase in 'uViewFiltroBase.pas' {frViewFiltroBase: TFrame}, + uViewGrid in 'uViewGrid.pas' {frViewGrid: TFrame}, + uViewRichEditor in 'uViewRichEditor.pas' {frViewRichEditor: TCustomView}, + uDialogElegirEMail in 'uDialogElegirEMail.pas' {fDialogElegirEMail}, + uViewDocumentos in 'uViewDocumentos.pas' {frViewDocumentos: TCustomView}, + uDialogListaEnvioEMail in 'uDialogListaEnvioEMail.pas' {fDialogListaEnvioEMail: TCustomEditor}; + +end. diff --git a/Source/GUIBase/GUIBase.dproj b/Source/GUIBase/GUIBase.dproj new file mode 100644 index 0000000..8d4eeaa --- /dev/null +++ b/Source/GUIBase/GUIBase.dproj @@ -0,0 +1,671 @@ + + + + {0ca27a95-0b81-4724-84bf-8f8ed4e421ae} + GUIBase.dpk + Debug + AnyCPU + DCC32 + ..\..\Output\Debug\Cliente\GUIBase.bpl + + + 7.0 + False + False + False + True + 0 + 3 + True + True + .\ + .\ + .\ + ..\..\Output\Release\Cliente + ..\Lib + ..\Lib + ..\Lib + ..\Lib + ..\Lib + RELEASE + + + 7.0 + False + True + 3 + True + True + .\ + .\ + .\ + ..\..\Output\Debug\Cliente + ..\Lib + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;..\Lib + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;..\Lib + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;..\Lib + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;..\Lib + DEBUG + 0 + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0GUIBase.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + +
fDialogBase
+
+ +
fDialogElegirEMail
+
+ +
fEditorBase
+ TCustomEditor +
+ +
fEditorBase
+ TCustomEditor +
+ +
fEditorBasico
+
+ +
fEditorDBBase
+ TCustomEditor +
+ +
fEditorDBItem
+ TCustomEditor +
+ +
fEditorGridBase
+ TCustomEditor +
+ +
fEditorItem
+ TCustomEditor +
+ +
fEditorPreview
+ TCustomEditor +
+ +
frViewBarraSeleccion
+ TFrame +
+ +
frViewBase
+ TFrame +
+ +
frViewDetallesBase
+ TFrame +
+ +
frViewDetallesDTO
+ TCustomView +
+ +
frViewDetallesGenerico
+ TFrame +
+ +
frViewDocumentos
+ TCustomView +
+ +
frViewFiltroBase
+ TFrame +
+ +
frViewFormaPago
+ TFrame +
+ +
frViewGrid
+ TFrame +
+ +
frViewGrid2Niveles
+ TFrame +
+ +
frViewGridBase
+ TFrame +
+ +
frViewIncidencias
+ TFrame +
+ +
frViewObservaciones
+ TFrame +
+ +
frViewPreview
+ TFrame +
+ +
frViewRichEditor
+ TCustomView +
+ +
frViewTotales
+ TFrame +
+ + + + +
+
+ diff --git a/Source/GUIBase/GUIBase.drc b/Source/GUIBase/GUIBase.drc new file mode 100644 index 0000000..1f80574 --- /dev/null +++ b/Source/GUIBase/GUIBase.drc @@ -0,0 +1,42 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\GUIBase\uViewBase.dfm */ +/* C:\Codigo\Source\GUIBase\uEditorBase.dfm */ +/* C:\Codigo\Source\GUIBase\uViewFiltroBase.dfm */ +/* C:\Codigo\Source\GUIBase\uViewGridBase.dfm */ +/* C:\Codigo\Source\GUIBase\uEditorItem.dfm */ +/* C:\Codigo\Source\GUIBase\uEditorDBBase.dfm */ +/* C:\Codigo\Source\GUIBase\uEditorGridBase.dfm */ +/* C:\Codigo\Source\GUIBase\uViewPreview.dfm */ +/* C:\Codigo\Source\GUIBase\uEditorPreview.dfm */ +/* C:\Codigo\Source\GUIBase\uEditorDBItem.dfm */ +/* C:\Codigo\Source\GUIBase\uViewBarraSeleccion.dfm */ +/* C:\Codigo\Source\GUIBase\uViewFormaPago.dfm */ +/* C:\Codigo\Source\GUIBase\uViewObservaciones.dfm */ +/* C:\Codigo\Source\GUIBase\uViewTotales.dfm */ +/* C:\Codigo\Source\GUIBase\uViewDetallesBase.dfm */ +/* C:\Codigo\Source\GUIBase\uViewIncidencias.dfm */ +/* C:\Codigo\Source\GUIBase\uViewDetallesDTO.dfm */ +/* C:\Codigo\Source\GUIBase\uViewDetallesGenerico.dfm */ +/* C:\Codigo\Source\GUIBase\uViewGrid2Niveles.dfm */ +/* C:\Codigo\Source\GUIBase\uEditorBasico.dfm */ +/* C:\Codigo\Source\GUIBase\uDialogBase.dfm */ +/* C:\Codigo\Source\GUIBase\uViewGrid.dfm */ +/* C:\Codigo\Source\GUIBase\uViewRichEditor.dfm */ +/* C:\Codigo\Source\GUIBase\uDialogElegirEMail.dfm */ +/* C:\Codigo\Source\GUIBase\uViewDocumentos.dfm */ +/* C:\Codigo\Source\GUIBase\uDialogListaEnvioEMail.dfm */ +/* C:\Codigo\Source\GUIBase\GUIBase.res */ +/* C:\Codigo\Source\GUIBase\GUIBase.drf */ diff --git a/Source/GUIBase/GUIBase.identcache b/Source/GUIBase/GUIBase.identcache new file mode 100644 index 0000000..1faab6b Binary files /dev/null and b/Source/GUIBase/GUIBase.identcache differ diff --git a/Source/GUIBase/GUIBase.rc b/Source/GUIBase/GUIBase.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/GUIBase/GUIBase.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/GUIBase/GUIBase.res b/Source/GUIBase/GUIBase.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/GUIBase/GUIBase.res differ diff --git a/Source/GUIBase/uDialogBase.dcu b/Source/GUIBase/uDialogBase.dcu new file mode 100644 index 0000000..77ecd8c Binary files /dev/null and b/Source/GUIBase/uDialogBase.dcu differ diff --git a/Source/GUIBase/uDialogBase.dfm b/Source/GUIBase/uDialogBase.dfm new file mode 100644 index 0000000..ac043ae --- /dev/null +++ b/Source/GUIBase/uDialogBase.dfm @@ -0,0 +1,144 @@ +object fDialogBase: TfDialogBase + Left = 0 + Top = 0 + BorderStyle = bsDialog + Caption = 'fDialogBase' + ClientHeight = 442 + ClientWidth = 625 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poMainFormCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object Bevel2: TBevel + Left = 0 + Top = 64 + Width = 625 + Height = 2 + Align = alTop + Shape = bsTopLine + ExplicitWidth = 500 + end + object Bevel3: TBevel + Left = 0 + Top = 398 + Width = 625 + Height = 2 + Align = alBottom + Shape = bsTopLine + ExplicitTop = 369 + ExplicitWidth = 500 + end + object pnlBotones: TPanel + Left = 0 + Top = 400 + Width = 625 + Height = 42 + Align = alBottom + BevelOuter = bvNone + TabOrder = 0 + object btnAceptar: TButton + AlignWithMargins = True + Left = 464 + Top = 8 + Width = 75 + Height = 25 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 15 + Margins.Bottom = 0 + Action = actAceptar + ModalResult = 1 + TabOrder = 0 + end + object btnCancelar: TButton + Left = 543 + Top = 8 + Width = 75 + Height = 25 + Action = actCancelar + Cancel = True + ModalResult = 2 + TabOrder = 1 + end + end + object pnlHeader: TPanel + Left = 0 + Top = 0 + Width = 625 + Height = 64 + Align = alTop + BevelOuter = bvNone + Color = clWhite + Padding.Left = 25 + Padding.Top = 8 + Padding.Right = 25 + Padding.Bottom = 8 + ParentBackground = False + TabOrder = 1 + object lblInstruccion: TLabel + AlignWithMargins = True + Left = 25 + Top = 8 + Width = 575 + Height = 13 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 0 + Margins.Bottom = 8 + Align = alTop + Caption = 'T'#237'tulo' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + ExplicitWidth = 32 + end + object Label2: TLabel + AlignWithMargins = True + Left = 50 + Top = 29 + Width = 550 + Height = 27 + Margins.Left = 25 + Margins.Top = 0 + Margins.Right = 0 + Margins.Bottom = 0 + Align = alClient + Caption = 'Bla Bla Bla' + ExplicitWidth = 48 + ExplicitHeight = 13 + end + end + object pnlCuerpo: TPanel + Left = 0 + Top = 66 + Width = 625 + Height = 332 + Align = alClient + BevelOuter = bvNone + Padding.Left = 50 + Padding.Top = 15 + Padding.Right = 50 + Padding.Bottom = 15 + TabOrder = 2 + end + object ActionList1: TActionList + Left = 8 + Top = 400 + object actAceptar: TAction + Caption = '&Aceptar' + end + object actCancelar: TAction + Caption = '&Cancelar' + end + end +end diff --git a/Source/GUIBase/uDialogBase.pas b/Source/GUIBase/uDialogBase.pas new file mode 100644 index 0000000..01f3775 --- /dev/null +++ b/Source/GUIBase/uDialogBase.pas @@ -0,0 +1,42 @@ +unit uDialogBase; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ActnList; + +type + TfDialogBase = class(TForm) + ActionList1: TActionList; + actAceptar: TAction; + actCancelar: TAction; + pnlBotones: TPanel; + btnAceptar: TButton; + btnCancelar: TButton; + pnlHeader: TPanel; + lblInstruccion: TLabel; + Label2: TLabel; + Bevel3: TBevel; + Bevel2: TBevel; + pnlCuerpo: TPanel; + procedure FormShow(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + +implementation + +{$R *.dfm} + +uses + uDMBase; + +procedure TfDialogBase.FormShow(Sender: TObject); +begin + lblInstruccion.Font.Color := dmBase.StyleManager.Colors.HeaderColorTo; +end; + +end. diff --git a/Source/GUIBase/uDialogElegirEMail.dcu b/Source/GUIBase/uDialogElegirEMail.dcu new file mode 100644 index 0000000..9a8a60f Binary files /dev/null and b/Source/GUIBase/uDialogElegirEMail.dcu differ diff --git a/Source/GUIBase/uDialogElegirEMail.dfm b/Source/GUIBase/uDialogElegirEMail.dfm new file mode 100644 index 0000000..4007391 --- /dev/null +++ b/Source/GUIBase/uDialogElegirEMail.dfm @@ -0,0 +1,124 @@ +inherited fDialogElegirEMail: TfDialogElegirEMail + Caption = 'Elegir direcci'#243'n de correo electr'#243'nico' + ClientHeight = 307 + ClientWidth = 572 + OnCloseQuery = FormCloseQuery + OnCreate = FormCreate + OnDestroy = FormDestroy + ExplicitWidth = 578 + ExplicitHeight = 339 + PixelsPerInch = 96 + TextHeight = 13 + inherited Bevel2: TBevel + Width = 572 + ExplicitWidth = 572 + end + inherited Bevel3: TBevel + Top = 262 + Width = 572 + ExplicitTop = 262 + ExplicitWidth = 572 + end + inherited pnlBotones: TPanel + Top = 264 + Width = 572 + Height = 43 + ExplicitLeft = -8 + ExplicitTop = 280 + ExplicitWidth = 572 + ExplicitHeight = 43 + inherited btnAceptar: TButton + Left = 408 + Top = 10 + ExplicitLeft = 408 + ExplicitTop = 10 + end + inherited btnCancelar: TButton + Left = 487 + Top = 9 + ExplicitLeft = 487 + ExplicitTop = 9 + end + end + inherited pnlHeader: TPanel + Width = 572 + ExplicitWidth = 572 + inherited lblInstruccion: TLabel + Width = 221 + Caption = 'Elegir la direcci'#243'n de correo electr'#243'nico' + ExplicitWidth = 221 + end + inherited Label2: TLabel + Visible = False + end + end + inherited pnlCuerpo: TPanel + Width = 572 + Height = 196 + ExplicitWidth = 572 + ExplicitHeight = 208 + object Label1: TLabel + Left = 25 + Top = 16 + Width = 277 + Height = 13 + Caption = 'Indique la direcci'#243'n de correo electr'#243'nico del destinatario:' + end + object cbEMail: TComboBox + Left = 250 + Top = 46 + Width = 262 + Height = 21 + Style = csDropDownList + ItemHeight = 0 + TabOrder = 0 + end + object edtEMail: TcxHyperLinkEdit + Left = 250 + Top = 79 + Properties.UsePrefix = upNever + Properties.ValidateOnEnter = True + Properties.Prefix = '' + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Width = 262 + end + object rbCombo: TRadioButton + Tag = 1 + Left = 49 + Top = 46 + Width = 170 + Height = 17 + Caption = 'Usar esta direcci'#243'n de correo:' + TabOrder = 2 + OnClick = rbComboClick + end + object rbEdit: TRadioButton + Tag = 2 + Left = 49 + Top = 81 + Width = 202 + Height = 17 + Caption = 'Usar la siguiente direcci'#243'n de correo:' + TabOrder = 3 + OnClick = rbEditClick + end + end + inherited ActionList1: TActionList + Left = 16 + Top = 48 + inherited actAceptar: TAction + OnExecute = actAceptarExecute + end + inherited actCancelar: TAction + OnExecute = actCancelarExecute + end + end +end diff --git a/Source/GUIBase/uDialogElegirEMail.pas b/Source/GUIBase/uDialogElegirEMail.pas new file mode 100644 index 0000000..607427c --- /dev/null +++ b/Source/GUIBase/uDialogElegirEMail.pas @@ -0,0 +1,171 @@ +unit uDialogElegirEMail; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uDialogBase, ActnList, StdCtrls, ExtCtrls, cxControls, cxContainer, + cxEdit, cxTextEdit, cxHyperLinkEdit; + +type + TfDialogElegirEMail = class(TfDialogBase) + rbCombo: TRadioButton; + cbEMail: TComboBox; + rbEdit: TRadioButton; + edtEMail: TcxHyperLinkEdit; + Label1: TLabel; + procedure rbComboClick(Sender: TObject); + procedure rbEditClick(Sender: TObject); + procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); + procedure FormCreate(Sender: TObject); + procedure FormDestroy(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure actAceptarExecute(Sender: TObject); + procedure actCancelarExecute(Sender: TObject); + private + FListaDirecciones: TStringList; + function GetEMailElegido: String; + procedure ActualizarOpciones; + public + property EMailElegido: String read GetEMailElegido; + property ListaDirecciones : TStringList read FListaDirecciones write FListaDirecciones; + end; + + + function ElegirEMail(const AListaEMails : TStringList; var AEMailElegido : String): Boolean; + +implementation + +{$R *.dfm} + +uses + uStringsUtils, uDialogUtils, uEMailUtils; + +function ElegirEMail(const AListaEMails : TStringList; var AEMailElegido : String): Boolean; +var + AEditor : TfDialogElegirEMail; +begin + AEditor := TfDialogElegirEMail.Create(NIL); + try + AEditor.ListaDirecciones := AListaEMails; + Result := (AEditor.ShowModal = mrOk); + if Result then + AEMailElegido := AEditor.EMailElegido; + finally + AEditor.Release; + end; +end; + + +{ TfDialogElegirEMail } + +procedure TfDialogElegirEMail.actAceptarExecute(Sender: TObject); +begin + inherited; + ModalResult := mrOk +end; + +procedure TfDialogElegirEMail.actCancelarExecute(Sender: TObject); +begin + inherited; + ModalResult := mrCancel; +end; + +procedure TfDialogElegirEMail.ActualizarOpciones; +begin + if rbEdit.Checked then + begin + edtEMail.Enabled := True; + rbCombo.Checked := False; + cbEMail.Enabled := False; + end + else begin + if rbCombo.Enabled then + begin + cbEMail.Enabled := True; + edtEMail.Enabled := False; + rbEdit.Checked := False; + end + else + rbEdit.Checked := True; + end; +end; + +procedure TfDialogElegirEMail.FormCloseQuery(Sender: TObject; + var CanClose: Boolean); +begin + inherited; + + if (ModalResult = mrOk) and rbEdit.Checked then + begin + if not EsCadenaVacia(edtEMail.Text) then + begin + if not EsDireccionEMailValida(edtEMail.Text) then + begin + ShowErrorMessage('La direccin de correo electrnica no es vlida', 'Para poder continuar, compruebe que ha indicado una direccin de correo y que est bien escrita.'); + edtEMail.SetFocus; + CanClose := False; + end; + end + else begin + ShowErrorMessage('Debe indicar una direccin de correo electrnico.', 'Para poder continuar debe elegir o indicar una direccin de correo electrnico.'); + edtEMail.SetFocus; + CanClose := False; + end; + end; +end; + +procedure TfDialogElegirEMail.FormCreate(Sender: TObject); +begin + inherited; + //FListaDirecciones := TStringList.Create; <- La lista se da mediante la propiedad. +end; + +procedure TfDialogElegirEMail.FormDestroy(Sender: TObject); +begin + inherited; + //FreeAndNIL(FListaDirecciones) <- La lista se da mediante la propiedad. +end; + +procedure TfDialogElegirEMail.FormShow(Sender: TObject); +begin + inherited; + cbEMail.Items.Clear; + cbEMail.Items := FListaDirecciones; + + if cbEMail.Items.Count = 0 then + begin + rbCombo.Enabled := False; + rbEdit.Checked; + end + else begin + cbEMail.ItemIndex := 0; + rbCombo.Checked := True; + end; + + ActualizarOpciones; +end; + +function TfDialogElegirEMail.GetEMailElegido: String; +begin + if rbCombo.Checked then + Result := cbEMail.Text + else + Result := edtEMail.Text; +end; + +procedure TfDialogElegirEMail.rbComboClick(Sender: TObject); +begin + inherited; + rbEdit.Checked := False; + ActualizarOpciones; +end; + +procedure TfDialogElegirEMail.rbEditClick(Sender: TObject); +begin + inherited; + rbEdit.Checked := True; + ActualizarOpciones; +end; + +end. diff --git a/Source/GUIBase/uDialogListaEnvioEMail.dcu b/Source/GUIBase/uDialogListaEnvioEMail.dcu new file mode 100644 index 0000000..136078b Binary files /dev/null and b/Source/GUIBase/uDialogListaEnvioEMail.dcu differ diff --git a/Source/GUIBase/uDialogListaEnvioEMail.dfm b/Source/GUIBase/uDialogListaEnvioEMail.dfm new file mode 100644 index 0000000..66ce893 --- /dev/null +++ b/Source/GUIBase/uDialogListaEnvioEMail.dfm @@ -0,0 +1,27 @@ +inherited fDialogListaEnvioEMail: TfDialogListaEnvioEMail + Caption = 'fDialogListaEnvioEMail' + PixelsPerInch = 96 + TextHeight = 13 + object ListView1: TListView + Left = 31 + Top = 151 + Width = 571 + Height = 197 + Align = alClient + Columns = < + item + Caption = 'Documento' + end + item + Caption = 'Destinatario' + end + item + Caption = 'Direcci'#243'n E-Mail' + end + item + Caption = 'Estado' + end> + TabOrder = 0 + ViewStyle = vsReport + end +end diff --git a/Source/GUIBase/uDialogListaEnvioEMail.pas b/Source/GUIBase/uDialogListaEnvioEMail.pas new file mode 100644 index 0000000..d6e5e6b --- /dev/null +++ b/Source/GUIBase/uDialogListaEnvioEMail.pas @@ -0,0 +1,22 @@ +unit uDialogListaEnvioEMail; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uDialogBase, ActnList, StdCtrls, ExtCtrls, ComCtrls; + +type + TfDialogListaEnvioEMail = class(TfDialogBase) + ListView1: TListView; + private + { Private declarations } + public + { Public declarations } + end; + +implementation + +{$R *.dfm} + +end. diff --git a/Source/GUIBase/uEditorBase.dcu b/Source/GUIBase/uEditorBase.dcu new file mode 100644 index 0000000..e4e7fbe Binary files /dev/null and b/Source/GUIBase/uEditorBase.dcu differ diff --git a/Source/GUIBase/uEditorBase.dfm b/Source/GUIBase/uEditorBase.dfm new file mode 100644 index 0000000..3877146 --- /dev/null +++ b/Source/GUIBase/uEditorBase.dfm @@ -0,0 +1,1707 @@ +object fEditorBase: TfEditorBase + Left = 222 + Top = 127 + Caption = 'EditorBase' + ClientHeight = 458 + ClientWidth = 795 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + KeyPreview = True + OldCreateOrder = False + Position = poDefault + OnActivate = CustomEditorActivate + OnCloseQuery = FormCloseQuery + OnShow = FormShow + InstanceID = 0 + ReadOnly = False + PixelsPerInch = 96 + TextHeight = 13 + object JvNavPanelHeader: TJvNavPanelHeader + Left = 0 + Top = 49 + Width = 795 + Align = alTop + Caption = 'Editor' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindow + Font.Height = -16 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + ColorFrom = 8684164 + ColorTo = 8684164 + ImageIndex = 0 + StyleManager = dmBase.StyleManager + ParentStyleManager = False + object Image1: TImage + Left = 768 + Top = 0 + Width = 27 + Height = 27 + Align = alRight + Center = True + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 520000000467414D410000AA11B57D14DC000001CC4944415478DA63FCFFFF3F + 032D0123B2058B361EA79A6D71FE968C582D004A906CD8DFBFFF80F83F980601 + 0BDF6C868B7B66E1B6C0752FAA25BB9D8FE3341C59ED5A8B030CF356EF6198BF + 64237E0B4871B9C7016B0659651686F9DB8E30BC8BFEC6B070FD3EC21660F301 + BA18086CB53DC2E07DD88661CFCD1360FEEB882F0C4B361DA0CC07FFFF01C31A + 88FF005D0F62FFFE070CFF3FFFC0BEF9F3EF2FC38A2D8749F7013100E48B4741 + EF18D6EE38469C05306F9302EEFBBF61D8B0FB047116E04B39D80048CF4CD5CD + 0C9BF69D24DE025C4105B31C260F533B4D7913C3D603A768E783890A1B18761D + 3E433B1FF4C9AC63D87BFC1CED7CD02DB986E1C0A90BF82D88F63107E74E727C + D02EBE8AE1C8994BF82D88F03403E74E727CD024BC9CE1E485ABF82D08753361 + F03B66479605F5024B19CE5CBE8EDF8200172386E0130E780D0359BEE4CF5C38 + 3F8625196C410DEF6286F3D76EE2B7C0D7C1005EAE40CAF97FE0B2072C062CF3 + 73EFFB63C40F8C5FC9BD88E1D28D5BF82DF0B2D5C36938882E78148835F888B6 + C0CD5A1BA7E1A012B4E46930CEA023CA0247730DB061FFFE428AE5DF7F11C5F1 + BFFF508BFEFD437104322068819D891AB844A404E0B5A077F27C8A0C87019805 + 00F0E629EF34B079A30000000049454E44AE426082} + Transparent = True + ExplicitLeft = 627 + end + end + object TBXDock: TTBXDock + Left = 0 + Top = 0 + Width = 795 + Height = 49 + object tbxMain: TTBXToolbar + Left = 0 + Top = 23 + Caption = 'tbxMain' + ChevronHint = 'M'#225's botones|' + DockMode = dmCannotFloatOrChangeDocks + DockPos = -23 + DockRow = 1 + Images = SmallImages + ParentShowHint = False + ShowHint = True + TabOrder = 0 + object TBXItem2: TTBXItem + Action = actNuevo + DisplayMode = nbdmImageAndText + end + object TBXSeparatorItem1: TTBXSeparatorItem + end + object TBXItem29: TTBXItem + Action = actGuardarCerrar + DisplayMode = nbdmImageAndText + end + object TBXItem27: TTBXItem + Action = actGuardar + end + object TBXItem5: TTBXItem + Action = actModificar + DisplayMode = nbdmImageAndText + end + object TBXItem4: TTBXItem + Action = actEliminar + DisplayMode = nbdmImageAndText + end + object TBXSeparatorItem3: TTBXSeparatorItem + end + object TBXItem23: TTBXItem + Action = actPrevisualizar + DisplayMode = nbdmImageAndText + end + object TBXSeparatorItem2: TTBXSeparatorItem + Visible = False + end + object TBXItem24: TTBXItem + Action = actConfPagina + Visible = False + end + object TBXItem3: TTBXItem + Action = actImprimir + DisplayMode = nbdmImageAndText + end + object TBXSeparatorItem10: TTBXSeparatorItem + end + object TBXItem26: TTBXItem + Action = actAnterior + end + object TBXItem25: TTBXItem + Action = actSiguiente + end + object TBXItem6: TTBXItem + Action = actRefrescar + DisplayMode = nbdmImageAndText + end + object TBXSeparatorItem11: TTBXSeparatorItem + end + object TBXItem28: TTBXItem + Action = actCerrar + end + end + object tbxMenu: TTBXToolbar + Left = 0 + Top = 0 + Caption = 'Menu' + CloseButton = False + DragHandleStyle = dhNone + FullSize = True + Images = SmallImages + MenuBar = True + ProcessShortCuts = True + ShrinkMode = tbsmWrap + TabOrder = 1 + object TBXSubmenuItem4: TTBXSubmenuItem + Caption = '&Archivo' + object TBXItem8: TTBXItem + Action = actNuevo + end + object TBXSeparatorItem5: TTBXSeparatorItem + end + object TBXItem30: TTBXItem + Action = actGuardar + end + object TBXItem10: TTBXItem + Action = actModificar + end + object TBXSeparatorItem12: TTBXSeparatorItem + end + object TBXItem11: TTBXItem + Action = actEliminar + end + object TBXSeparatorItem15: TTBXSeparatorItem + end + object TBXItem21: TTBXItem + Action = actConfPagina + end + object TBXItem22: TTBXItem + Action = actPrevisualizar + end + object TBXItem9: TTBXItem + Action = actImprimir + end + object TBXSeparatorItem4: TTBXSeparatorItem + end + object TBXItem1: TTBXItem + Action = actCerrar + end + end + object TBXSubmenuItem5: TTBXSubmenuItem + Caption = '&Edici'#243'n' + object TBXItem16: TTBXItem + Action = actDeshacer + end + object TBXSeparatorItem8: TTBXSeparatorItem + end + object TBXItem15: TTBXItem + Action = actCortar + end + object TBXItem14: TTBXItem + Action = actCopiar + end + object TBXItem13: TTBXItem + Action = actPegar + end + object TBXSeparatorItem7: TTBXSeparatorItem + end + object TBXItem12: TTBXItem + Action = actLimpiar + end + object TBXSeparatorItem9: TTBXSeparatorItem + end + object TBXItem17: TTBXItem + Action = actSeleccionarTodo + end + end + object TBXSubmenuItem1: TTBXSubmenuItem + Caption = '&Buscar' + object TBXItem32: TTBXItem + Action = actAnterior + end + object TBXItem31: TTBXItem + Action = actSiguiente + end + object TBXSeparatorItem13: TTBXSeparatorItem + end + object TBXItem20: TTBXItem + Action = actBuscar + end + end + object TBXSubmenuItem6: TTBXSubmenuItem + Caption = '&Ver' + object TBXItem18: TTBXItem + Action = actRefrescar + end + end + object TBXSubmenuItem7: TTBXSubmenuItem + Caption = 'Ay&uda' + object TBXItem19: TTBXItem + Action = actAcercaDe + end + end + end + end + object StatusBar: TJvStatusBar + Left = 0 + Top = 439 + Width = 795 + Height = 19 + Panels = <> + end + object EditorActionList: TActionList + Images = SmallImages + Left = 16 + Top = 144 + object actNuevo: TAction + Category = 'Archivo' + Caption = 'Nuevo' + ShortCut = 45 + OnExecute = actNuevoExecute + end + object actModificar: TAction + Category = 'Archivo' + Caption = 'Modificar' + ImageIndex = 18 + OnExecute = actModificarExecute + OnUpdate = actModificarUpdate + end + object actGuardarCerrar: TAction + Category = 'Archivo' + Caption = 'G&uardar y cerrar' + ImageIndex = 17 + OnExecute = actGuardarCerrarExecute + OnUpdate = actGuardarCerrarUpdate + end + object actGuardar: TAction + Category = 'Archivo' + Caption = '&Guardar' + ImageIndex = 17 + OnExecute = actGuardarExecute + OnUpdate = actGuardarUpdate + end + object actEliminar: TAction + Category = 'Archivo' + Caption = 'Eliminar' + ImageIndex = 4 + ShortCut = 16430 + OnExecute = actEliminarExecute + OnUpdate = actEliminarUpdate + end + object actConfPagina: TAction + Category = 'Archivo' + Caption = '&Configurar p'#225'gina' + ImageIndex = 8 + OnExecute = actConfPaginaExecute + end + object actPrevisualizar: TAction + Category = 'Archivo' + Caption = '&Previsualizar' + ImageIndex = 6 + OnExecute = actPrevisualizarExecute + end + object actImprimir: TAction + Category = 'Archivo' + Caption = 'Imprimir' + ImageIndex = 7 + ShortCut = 16464 + OnExecute = actImprimirExecute + end + object actDeshacer: TEditUndo + Category = 'Edici'#243'n' + Caption = 'Deshacer' + Hint = 'Undo|Reverts the last action' + ImageIndex = 12 + ShortCut = 16474 + end + object actCortar: TEditCut + Category = 'Edici'#243'n' + Caption = 'Cortar' + Hint = 'Cortar|Corta la selecci'#243'n y la coloca en el portapapeles' + ImageIndex = 3 + ShortCut = 16472 + end + object actCerrar: TAction + Category = 'Archivo' + Caption = 'Cerrar' + OnExecute = actCerrarExecute + end + object actCopiar: TEditCopy + Category = 'Edici'#243'n' + Caption = 'Copiar' + Hint = 'Copiar|Copia la selecci'#243'n y la coloca en el portapapeles' + ImageIndex = 2 + ShortCut = 16451 + end + object actPegar: TEditPaste + Category = 'Edici'#243'n' + Caption = 'Pegar' + Hint = 'Pegar|Inserta el contenido del portapapeles' + ImageIndex = 5 + ShortCut = 16470 + end + object actSeleccionarTodo: TEditSelectAll + Category = 'Edici'#243'n' + Caption = 'Seleccionar todo' + Hint = 'Seleccionar todo' + ImageIndex = 11 + ShortCut = 16449 + end + object actLimpiar: TEditDelete + Category = 'Edici'#243'n' + Caption = '&Limpiar' + Hint = 'Limpiar|Borra el texto seleccionado' + ImageIndex = 1 + ShortCut = 46 + end + object actRefrescar: TAction + Category = 'Ver' + Caption = 'Actualizar' + Hint = 'Actualizar los datos' + ImageIndex = 9 + ShortCut = 116 + OnExecute = actRefrescarExecute + end + object actAcercaDe: TAction + Category = 'Ayuda' + Caption = 'Acerca de...' + ImageIndex = 0 + end + object actBuscar: TAction + Category = 'Buscar' + Caption = 'Buscar' + ImageIndex = 10 + ShortCut = 114 + end + object actAnterior: TAction + Category = 'Ver' + Caption = 'Anterior' + ImageIndex = 15 + end + object actSiguiente: TAction + Category = 'Ver' + Caption = 'Siguiente' + ImageIndex = 16 + end + object actCancelarCambios: TAction + Category = 'Archivo' + Caption = 'Cancelar cambios' + OnExecute = actCancelarCambiosExecute + end + object actDuplicar: TAction + Category = 'Archivo' + Caption = 'Duplicar' + ImageIndex = 20 + OnExecute = actDuplicarExecute + end + end + object SmallImages: TPngImageList + ShareImages = True + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 395 + Top = 80 + Bitmap = {} + end + object LargeImages: TPngImageList + Height = 24 + ShareImages = True + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 427 + Top = 80 + Bitmap = {} + end + object JvFormStorage: TJvFormStorage + AppStorage = JvAppRegistryStorage + AppStoragePath = 'fEditorBase\' + VersionCheck = fpvcNocheck + StoredValues = <> + Left = 392 + Top = 120 + end + object JvAppRegistryStorage: TJvAppRegistryStorage + StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' + StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' + Root = 'Software\%APPL_NAME%' + SubStorages = <> + Left = 424 + Top = 120 + end + object StatusBarImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001E24944415478DAA5932B93DB3014858F9959C46A669599456561166B + 59DD5F50C342E717C461652B58A8658182810A0BABC35C26B394C92C8BDC6BB9 + 9BCD63A7339DB547638D1EDF3DE7488EF0C627BA1D70466896303FE352747B9D + A78B62D77B677DEBA0AC342C663F9D77F0473F2E7F7F0718DAA2EE9C5BA58B12 + 5DD320150204024BF85A6DC44A4A097FF27004ACEBBABB071C6B8B98E588057A + EF31630C3835D4FC6EF9DDE76221D0EC1B789A33C6F491327EC009449D5AC904 + 55A3969598BD93E87F5BF85613802A6A01216F011B3FB06416AA8F80823F224D + C8DF8D82CE3394A5DE0921F271F39881D99A7500843882020F9158C85891F702 + 9405D26CCAC0C52579364BCEF9C3B86E54E19CFB10996D337CFE389F027802BA + 760D465567F1D837002FC0E875270E91C988677CE00987B5B6A71DEC0C38FCEA + 820A9EA5B0FB43E0896C8EF2DB12D6A8CBB02B3A8907022CA9AFCE80FEE9EFF4 + 69FA3CDB7A0500B23190FC3016E9AD1DBECA1C87B60B210A5260ECA4402E5E55 + 00BA4C15E5A02680B143F1293F57F7972AE85B55D780AAAA6A02ACD40FF5854E + C3447A4380220FBEC70D52CC5F32A0FE2D806EDF281F5AEB202052DA0E65915F + F97E51D113A0BE02D009D4EEE856D49D4254DA0C7A63465FCF88A0E4C2EF5D06 + FFFC1BFFF7F903DDDC21F8890148C20000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 40 + Top = 392 + Bitmap = {} + end +end diff --git a/Source/GUIBase/uEditorBase.pas b/Source/GUIBase/uEditorBase.pas new file mode 100644 index 0000000..1e009cb --- /dev/null +++ b/Source/GUIBase/uEditorBase.pas @@ -0,0 +1,569 @@ +unit uEditorBase; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + uGUIBase, uCustomEditor, ToolWin, ComCtrls, JvExControls, + JvComponent, JvNavigationPane, ActnList, TBX, TB2Item, ImgList, + PngImageList, StdActns, JvFormAutoSize, AppEvnts, uCustomView, uViewBase, + JvAppStorage, JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls, + JvComponentBase, TB2Dock, TB2Toolbar, dxLayoutLookAndFeels, TBXStatusBars, + JvExComCtrls, JvStatusBar; + +type + IEditorBase = interface(ICustomEditor) + ['{CB8CDE00-B225-4A1D-9A5C-EC6FBE2C854B}'] + function GetWindowCaption : String; + procedure SetWindowCaption(const AValue : String); + property WindowCaption : String read GetWindowCaption write SetWindowCaption; + + function GetHeaderText : String; + procedure SetHeaderText(const AValue : String); + property HeaderText : String read GetHeaderText write SetHeaderText; + + function ShowModal : Integer; + procedure Show; + end; + + TfEditorBase = class(TCustomEditor, IEditorBase) + actAcercaDe: TAction; + actAnterior: TAction; + actBuscar: TAction; + actCancelarCambios: TAction; + actCerrar: TAction; + actConfPagina: TAction; + actCopiar: TEditCopy; + actCortar: TEditCut; + actDeshacer: TEditUndo; + actEliminar: TAction; + actGuardar: TAction; + actGuardarCerrar: TAction; + actImprimir: TAction; + actLimpiar: TEditDelete; + actModificar: TAction; + actNuevo: TAction; + actPegar: TEditPaste; + actPrevisualizar: TAction; + actRefrescar: TAction; + actSeleccionarTodo: TEditSelectAll; + actSiguiente: TAction; + EditorActionList: TActionList; + JvNavPanelHeader: TJvNavPanelHeader; + LargeImages: TPngImageList; + SmallImages: TPngImageList; + TBXDock: TTBXDock; + TBXItem1: TTBXItem; + TBXItem10: TTBXItem; + TBXItem11: TTBXItem; + TBXItem12: TTBXItem; + TBXItem13: TTBXItem; + TBXItem14: TTBXItem; + TBXItem15: TTBXItem; + TBXItem16: TTBXItem; + TBXItem17: TTBXItem; + TBXItem18: TTBXItem; + TBXItem19: TTBXItem; + TBXItem2: TTBXItem; + TBXItem20: TTBXItem; + TBXItem21: TTBXItem; + TBXItem22: TTBXItem; + TBXItem23: TTBXItem; + TBXItem24: TTBXItem; + TBXItem25: TTBXItem; + TBXItem26: TTBXItem; + TBXItem27: TTBXItem; + TBXItem28: TTBXItem; + TBXItem29: TTBXItem; + TBXItem3: TTBXItem; + TBXItem30: TTBXItem; + TBXItem31: TTBXItem; + TBXItem32: TTBXItem; + TBXItem4: TTBXItem; + TBXItem5: TTBXItem; + TBXItem6: TTBXItem; + TBXItem8: TTBXItem; + TBXItem9: TTBXItem; + tbxMain: TTBXToolbar; + tbxMenu: TTBXToolbar; + TBXSeparatorItem1: TTBXSeparatorItem; + TBXSeparatorItem10: TTBXSeparatorItem; + TBXSeparatorItem11: TTBXSeparatorItem; + TBXSeparatorItem12: TTBXSeparatorItem; + TBXSeparatorItem13: TTBXSeparatorItem; + TBXSeparatorItem2: TTBXSeparatorItem; + TBXSeparatorItem3: TTBXSeparatorItem; + TBXSeparatorItem4: TTBXSeparatorItem; + TBXSeparatorItem5: TTBXSeparatorItem; + TBXSeparatorItem7: TTBXSeparatorItem; + TBXSeparatorItem8: TTBXSeparatorItem; + TBXSeparatorItem9: TTBXSeparatorItem; + TBXSubmenuItem1: TTBXSubmenuItem; + TBXSubmenuItem4: TTBXSubmenuItem; + TBXSubmenuItem5: TTBXSubmenuItem; + TBXSubmenuItem6: TTBXSubmenuItem; + TBXSubmenuItem7: TTBXSubmenuItem; + JvFormStorage: TJvFormStorage; + JvAppRegistryStorage: TJvAppRegistryStorage; + Image1: TImage; + TBXSeparatorItem15: TTBXSeparatorItem; + StatusBarImages: TPngImageList; + StatusBar: TJvStatusBar; + procedure actCerrarExecute(Sender: TObject); + procedure actGuardarCerrarExecute(Sender: TObject); + procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); + procedure CustomEditorActivate(Sender: TObject); + procedure actModificarExecute(Sender: TObject); + procedure actGuardarExecute(Sender: TObject); + procedure actPrevisualizarExecute(Sender: TObject); + procedure actImprimirExecute(Sender: TObject); + procedure actNuevoExecute(Sender: TObject); + procedure actEliminarExecute(Sender: TObject); + procedure actConfPaginaExecute(Sender: TObject); + procedure actCancelarCambiosExecute(Sender: TObject); + procedure actDuplicarExecute(Sender: TObject); + procedure actRefrescarExecute(Sender: TObject); + procedure actModificarUpdate(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + procedure actGuardarCerrarUpdate(Sender: TObject); + procedure actGuardarUpdate(Sender: TObject); + procedure FormShow(Sender: TObject); + + protected + FWindowCaption : String; + FHeaderText : String; + procedure CreateParams(Var params: TCreateParams); override; + procedure ActualizarEstadoEditor; virtual; + function ModifiedQuery : Boolean; + procedure ModificarInterno; virtual; + procedure EliminarInterno; virtual; + procedure GuardarInterno; virtual; + procedure NuevoInterno; virtual; + procedure ImprimirInterno; virtual; + procedure PrevisualizarInterno; virtual; + procedure ConfPaginaInterno; virtual; + procedure RefrescarInterno; virtual; + procedure CancelarCambiosInterno; virtual; + procedure CerrarInterno; virtual; + procedure DuplicarInterno; virtual; + procedure PonerTitulos(const ATitulo: String = ''); virtual; + procedure SetReadOnly(Value: Boolean); override; + function GetWindowCaption : String; virtual; + procedure SetWindowCaption(const AValue : String); virtual; + function GetHeaderText : String; virtual; + procedure SetHeaderText(const AValue : String); virtual; + public + constructor Create(AOwner: TComponent); override; + function ShowModal : Integer; override; + procedure Show; + + published + property WindowCaption : String read GetWindowCaption write SetWindowCaption; + property HeaderText : String read GetHeaderText write SetHeaderText; + end; + + TfEditorBaseClass = class of TfEditorBase; + +implementation + +{$R *.dfm} + +uses + Menus, uDMBase, cxControls, uDialogUtils, + uStringsUtils, cxEdit; + + +{Mtodo que coge el componente editor que tenga el foco y le fuerza a hacer post para que la tabla se entere +} +procedure PostActivecxEditorChanges; +var + AControl: TWinControl; + ActiveEditor: TcxCustomEdit; +begin + ActiveEditor:= nil; + + AControl := Screen.ActiveControl; + if Supports(AControl, IcxInnerEditHelper) then + ActiveEditor:= TcxCustomEdit(AControl.Owner) + else + if AControl is TcxCustomEdit then + ActiveEditor:= TcxCustomEdit(AControl); + if Assigned(ActiveEditor) then + ActiveEditor.PostEditValue; +end; + + +{ +********************************* TfEditorBase ********************************* +} + +procedure TfEditorBase.actCancelarCambiosExecute(Sender: TObject); +begin + CancelarCambiosInterno; + ActualizarEstadoEditor; +end; + +procedure TfEditorBase.actCerrarExecute(Sender: TObject); +begin + CerrarInterno; +end; + +procedure TfEditorBase.actConfPaginaExecute(Sender: TObject); +begin + ConfPaginaInterno; + ActualizarEstadoEditor; +end; + +procedure TfEditorBase.actDuplicarExecute(Sender: TObject); +begin + DuplicarInterno; + ActualizarEstadoEditor; +end; + +procedure TfEditorBase.actEliminarExecute(Sender: TObject); +begin + if actEliminar.Enabled then + begin + EliminarInterno; + ActualizarEstadoEditor; + end; +end; + +procedure TfEditorBase.actEliminarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := not ReadOnly; +end; + +procedure TfEditorBase.actGuardarCerrarExecute(Sender: TObject); +begin + ShowHourglassCursor; + try + if actGuardar.Execute then + actCerrar.Execute; + finally + HideHourglassCursor; + end; +end; + +procedure TfEditorBase.actGuardarCerrarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := not ReadOnly; +end; + +procedure TfEditorBase.actGuardarExecute(Sender: TObject); +begin + GuardarInterno; + ActualizarEstadoEditor; +end; + +procedure TfEditorBase.actGuardarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := not ReadOnly; +end; + +procedure TfEditorBase.actImprimirExecute(Sender: TObject); +begin + if actImprimir.Enabled then + begin + if Modified then + begin + if (ShowConfirmMessage('Se han producido cambios', 'Se han producido cambios y no se puede previsualizar hasta que no se guarden.' + #10#13 + + 'Desea guardarlos ahora?') = IDYES) then + begin + GuardarInterno; + ImprimirInterno; + ActualizarEstadoEditor; + end + else + ShowInfoMessage('Recuerde guardar los cambios si quiere previsualizar o imprimir.'); + end + else + begin + ImprimirInterno; + ActualizarEstadoEditor; + end + end; +end; + +procedure TfEditorBase.actModificarExecute(Sender: TObject); +begin + if actModificar.Enabled then + begin + ModificarInterno; + ActualizarEstadoEditor; + end; +end; + +procedure TfEditorBase.actModificarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := not ReadOnly; +end; + +procedure TfEditorBase.actNuevoExecute(Sender: TObject); +begin + if actNuevo.Enabled then + begin + NuevoInterno; + ActualizarEstadoEditor; + end; +end; + +procedure TfEditorBase.actPrevisualizarExecute(Sender: TObject); +begin + if actPrevisualizar.Enabled then + begin + if Modified then + begin + if (ShowConfirmMessage('Se han producido cambios', 'Se han producido cambios y no se puede previsualizar hasta que no se guarden.' + #10#13 + + 'Desea guardarlos ahora?') = IDYES) then + begin + GuardarInterno; + PrevisualizarInterno; + ActualizarEstadoEditor; + end + else + ShowInfoMessage('Recuerde guardar los cambios si quiere previsualizar o imprimir.'); + end + else + begin + PrevisualizarInterno; + ActualizarEstadoEditor; + end; + end; +end; + +procedure TfEditorBase.actRefrescarExecute(Sender: TObject); +begin + if actRefrescar.Enabled then + begin + RefrescarInterno; + ActualizarEstadoEditor; + end; +end; + +procedure TfEditorBase.ActualizarEstadoEditor; +begin + PonerTitulos; +end; + +procedure TfEditorBase.CancelarCambiosInterno; +begin + // +end; + +procedure TfEditorBase.CerrarInterno; +begin + Close; +end; + +procedure TfEditorBase.ConfPaginaInterno; +begin + // +end; + +constructor TfEditorBase.Create(AOwner: TComponent); +var + APath : String; +begin + inherited; + with JvFormStorage do + begin + if Pos('_', Self.Name) = 0 then + APath := Self.Name + else + APath := Copy(Self.Name, 0, (Pos('_', Self.Name)-1)); + AppStoragePath := APath; + end; + JvNavPanelHeader.StyleManager := dmBase.StyleManager; +end; + +procedure TfEditorBase.CustomEditorActivate(Sender: TObject); +begin + PonerTitulos; +end; + +procedure TfEditorBase.DuplicarInterno; +begin + // +end; + +procedure TfEditorBase.EliminarInterno; +begin + // +end; + +procedure TfEditorBase.FormCloseQuery(Sender: TObject; var CanClose: Boolean); +begin + if Valid then + CanClose := ModifiedQuery + else + CanClose := False; +end; + +procedure TfEditorBase.FormShow(Sender: TObject); +begin + ActualizarEstadoEditor; + if Assigned(Parent) then + begin + StatusBar.Visible := False; + actCerrar.ShortCut := 0 + end + else begin + StatusBar.Visible := True; + actCerrar.ShortCut := ShortCut(VK_ESCAPE, []); + end; +end; + +function TfEditorBase.GetHeaderText: String; +begin + Result := FHeaderText; +end; + +function TfEditorBase.GetWindowCaption: String; +begin + Result := FWindowCaption; +end; + +procedure TfEditorBase.GuardarInterno; +begin + PostActivecxEditorChanges; +end; + +procedure TfEditorBase.ImprimirInterno; +begin + // +end; + +procedure TfEditorBase.ModificarInterno; +begin + // +end; + +function TfEditorBase.ModifiedQuery: Boolean; +var + Respuesta: Integer; +begin + Result := True; + if Modified then + begin + + Respuesta := ShowConfirmMessage('Atencin', + 'Se han producido cambios', + 'Desea guardar los cambios que se han producido antes de cerrar?', + [TDlgButton_SI, TDlgButton_NO, TDlgButton_CANCELAR]); + + case Respuesta of + IDYES : actGuardar.Execute; + IDNO : actCancelarCambios.Execute; + else + Result := False; + end; + end +end; + +procedure TfEditorBase.NuevoInterno; +begin + // +end; + +procedure TfEditorBase.PonerTitulos(const ATitulo: String); +var + AHeaderText, + AWindowText : String; +begin + if EsCadenaVacia(ATitulo) then + begin + AHeaderText := FHeaderText; + AWindowText := FHeaderText; + end + else begin + AHeaderText := ATitulo; + AWindowText := ATitulo; + end; + + if ReadOnly then + begin + AHeaderText := AHeaderText + ' (NO MODIFICABLE)'; + AWindowText := AWindowText + ' (NO MODIFICABLE)'; + end; + + JvNavPanelHeader.Caption := AHeaderText; + Caption := AWindowText; +end; + +procedure TfEditorBase.PrevisualizarInterno; +begin + // +end; + +procedure TfEditorBase.RefrescarInterno; +begin + // +end; + +procedure TfEditorBase.SetHeaderText(const AValue: String); +begin + FHeaderText := AValue; +end; + +procedure TfEditorBase.SetReadOnly(Value: Boolean); +var + i: integer; +begin + inherited; + if (csLoading in Self.ComponentState) then + Exit; + + for i:=0 to Self.ComponentCount-1 do + begin + if Self.Components[i] is TfrViewBase then + (Self.Components[i] as TfrViewBase).ReadOnly := Self.ReadOnly + end +end; + +procedure TfEditorBase.SetWindowCaption(const AValue: String); +begin + FWindowCaption := AValue; +end; + +procedure TfEditorBase.Show; +begin + inherited Show; +// Self.WindowState := wsNormal; +// self.FormStyle := fsNormal; +end; + +procedure TfEditorBase.CreateParams(var params: TCreateParams); +begin + inherited CreateParams(params); + + { Descomentar para crear varios formularios hijos abiertos a la vez + fuera de la aplicacin principal pero cuidado por que las ventanas + modales como la previsualizacin tambin se ven afectadas. + + inherited CreateParams( params ); + params.Style := params.Style and not WS_POPUP; + params.ExStyle := params.ExStyle and not WS_EX_TOOLWINDOW or WS_EX_APPWINDOW; + } +end; + +function TfEditorBase.ShowModal: Integer; +var + ABorderIcons : TBorderIcons; +begin + ABorderIcons := Self.BorderIcons; + Self.BorderIcons := Self.BorderIcons - [biMinimize]; + try + Result := inherited ShowModal; + finally + Self.BorderIcons := ABorderIcons; + end; +end; + +initialization + RegisterClass(TfEditorBase); + +finalization + UnRegisterClass(TfEditorBase); + +end. diff --git a/Source/GUIBase/uEditorBasico.dcu b/Source/GUIBase/uEditorBasico.dcu new file mode 100644 index 0000000..4d90c44 Binary files /dev/null and b/Source/GUIBase/uEditorBasico.dcu differ diff --git a/Source/GUIBase/uEditorBasico.dfm b/Source/GUIBase/uEditorBasico.dfm new file mode 100644 index 0000000..ef85a64 --- /dev/null +++ b/Source/GUIBase/uEditorBasico.dfm @@ -0,0 +1,18 @@ +object fEditorBasico: TfEditorBasico + Left = 0 + Top = 0 + Caption = 'fEditorBasico' + ClientHeight = 236 + ClientWidth = 383 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + InstanceID = 0 + ReadOnly = False + PixelsPerInch = 96 + TextHeight = 13 +end diff --git a/Source/GUIBase/uEditorBasico.pas b/Source/GUIBase/uEditorBasico.pas new file mode 100644 index 0000000..7a8e97d --- /dev/null +++ b/Source/GUIBase/uEditorBasico.pas @@ -0,0 +1,26 @@ +unit uEditorBasico; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uGUIBase, uCustomEditor; + +type + IEditorBasico = interface(ICustomEditor) + ['{CE4B2B04-F8DA-4C96-B071-CC5792C14D51}'] + function ShowModal : Integer; + end; + + TfEditorBasico = class(TCustomEditor, IEditorBasico) + end; + +implementation +{$R *.dfm} + +initialization + RegisterClass(TfEditorBasico); + +finalization + UnRegisterClass(TfEditorBasico); +end. diff --git a/Source/GUIBase/uEditorDBBase.dcu b/Source/GUIBase/uEditorDBBase.dcu new file mode 100644 index 0000000..d35a4f6 Binary files /dev/null and b/Source/GUIBase/uEditorDBBase.dcu differ diff --git a/Source/GUIBase/uEditorDBBase.dfm b/Source/GUIBase/uEditorDBBase.dfm new file mode 100644 index 0000000..170fdac --- /dev/null +++ b/Source/GUIBase/uEditorDBBase.dfm @@ -0,0 +1,59 @@ +inherited fEditorDBBase: TfEditorDBBase + Left = 295 + Top = 247 + Caption = 'fEditorDBBase' + ClientHeight = 456 + ClientWidth = 648 + ExplicitWidth = 656 + ExplicitHeight = 490 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 648 + ExplicitWidth = 648 + inherited Image1: TImage + Left = 621 + ExplicitLeft = 625 + end + end + inherited TBXDock: TTBXDock + Width = 648 + ExplicitWidth = 648 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 648 + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 648 + end + end + inherited StatusBar: TJvStatusBar + Top = 437 + Width = 648 + ExplicitTop = 437 + ExplicitWidth = 648 + end + inherited EditorActionList: TActionList + inherited actPrevisualizar: TAction + OnUpdate = actPrevisualizarUpdate + end + inherited actImprimir: TAction + OnUpdate = actImprimirUpdate + end + inherited actRefrescar: TAction + OnUpdate = actRefrescarUpdate + end + inherited actAnterior: TAction + OnExecute = actAnteriorExecute + OnUpdate = actAnteriorUpdate + end + inherited actSiguiente: TAction + OnExecute = actSiguienteExecute + OnUpdate = actSiguienteUpdate + end + end + object dsDataTable: TDADataSource [7] + OnDataChange = dsDataTableDataChange + Left = 40 + Top = 88 + end +end diff --git a/Source/GUIBase/uEditorDBBase.pas b/Source/GUIBase/uEditorDBBase.pas new file mode 100644 index 0000000..7d66cf4 --- /dev/null +++ b/Source/GUIBase/uEditorDBBase.pas @@ -0,0 +1,273 @@ +unit uEditorDBBase; + +interface + +uses + Windows, SysUtils, Variants, Classes, Graphics, Controls, Forms, + uEditorItem, ImgList, PngImageList, StdActns, ActnList, TBX, + TB2Item, TB2Dock, TB2Toolbar, ComCtrls, JvExControls, JvComponent, + JvNavigationPane, DB, uDADataTable, uEditorBase, JvFormAutoSize, + uDAScriptingProvider, uDACDSDataTable, AppEvnts, uCustomView, uViewBase, + JvAppStorage, JvAppRegistryStorage, JvFormPlacement, + pngimage, ExtCtrls, dxLayoutLookAndFeels, JvComponentBase, TBXStatusBars, + JvExComCtrls, JvStatusBar, uDAInterfaces; + +type + IEditorDBBase = interface(IEditorBase) + ['{1F5B318F-F700-4C78-ABCE-E2329AD876B8}'] + end; + + TfEditorDBBase = class(TfEditorBase, IEditorDBBase) + dsDataTable: TDADataSource; + procedure actAnteriorExecute(Sender: TObject); + procedure actSiguienteExecute(Sender: TObject); + procedure actAnteriorUpdate(Sender: TObject); + procedure actSiguienteUpdate(Sender: TObject); + procedure actRefrescarUpdate(Sender: TObject); + procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); virtual; + procedure actEliminarUpdate(Sender: TObject); + procedure actModificarUpdate(Sender: TObject); + procedure actPrevisualizarUpdate(Sender: TObject); + procedure actImprimirUpdate(Sender: TObject); + procedure actGuardarUpdate(Sender: TObject); + procedure actGuardarCerrarUpdate(Sender: TObject); + procedure dsDataTableDataChange(Sender: TObject; Field: TField); + protected + function HayDatos: Boolean; + function PuedoImprimir: Boolean; virtual; + function GetModified: Boolean; override; + procedure RefrescarInterno; override; + procedure CancelarCambiosInterno; override; + end; + +implementation + +uses + uDataTableUtils, cxControls, uCustomEditor; + +{$R *.dfm} + +procedure TfEditorDBBase.actAnteriorExecute(Sender: TObject); +begin + inherited; + if Assigned(dsDataTable.DataTable) then + begin + if (not ModifiedQuery) then + Exit; + + dsDataTable.DataTable.Prior; + end; +end; + +procedure TfEditorDBBase.actSiguienteExecute(Sender: TObject); +begin + inherited; + if Assigned(dsDataTable.DataTable) then + begin + if (not ModifiedQuery) then + Exit; + + dsDataTable.DataTable.Next; + end; +end; + +procedure TfEditorDBBase.actAnteriorUpdate(Sender: TObject); +begin + inherited; + if HayDatos then + (Sender as TAction).Enabled := not dsDataTable.DataTable.BOF + else + (Sender as TAction).Enabled := False; +end; + +procedure TfEditorDBBase.actSiguienteUpdate(Sender: TObject); +begin + inherited; + if HayDatos then + (Sender as TAction).Enabled := not dsDataTable.DataTable.EOF + else + (Sender as TAction).Enabled := False; +end; + +procedure TfEditorDBBase.CancelarCambiosInterno; +var + dtDetails : TList; + i : integer; + ABookmark : TBookmark; +begin + inherited; + + if Assigned(dsDataTable.DataTable) then + begin + ABookmark := dsDataTable.DataTable.GetBookMark; + dsDataTable.DataTable.DisableControls; +// dsDataTable.DataTable.DisableEventHandlers; <- No descomentar + + ShowHourglassCursor; + { No lo pongo en try..finally para ver posibles errores } + //try + dsDataTable.DataTable.Cancel; + + dtDetails := dsDataTable.DataTable.GetDetailDataTables; + for i := 0 to dtDetails.Count - 1 do + begin + (TDADataTable(dtDetails.Items[i])).Cancel; + end; + + dsDataTable.DataTable.CancelUpdates; + + //Forzamos el cancel update de los detalles porque falla si se lo dejamos por ser maestro-detalle + dtDetails := dsDataTable.DataTable.GetDetailDataTables; + for i := 0 to dtDetails.Count - 1 do + begin + (TDADataTable(dtDetails.Items[i])).CancelUpdates; + end; + + { Comprobar si el bookmark no es vlido cuando estamos cancelando la + insercin de una fila nueva. + CUIDADO!! Si no es vlido salta una excepcin. NO devuelve false!!!} + try + if (Assigned(ABookmark)) and + (dsDataTable.DataTable.Dataset.BookmarkValid(ABookmark)) then + dsDataTable.DataTable.GotoBookmark(ABookmark); + except + end; + + //finally + dsDataTable.DataTable.EnableControls; + dsDataTable.DataTable.FreeBookmark(ABookmark); +// dsDataTable.DataTable.EnableEventHandlers; <- No descomentar + HideHourglassCursor + //end; + end; +end; + +procedure TfEditorDBBase.dsDataTableDataChange(Sender: TObject; Field: TField); +begin + inherited; + if not (Sender as TDADataSource).DataTable.Opening and + not (Sender as TDADataSource).DataTable.Closing and + not (Sender as TDADataSource).DataTable.Fetching then + ActualizarEstadoEditor; +end; + +procedure TfEditorDBBase.actRefrescarUpdate(Sender: TObject); +begin + inherited; + if HayDatos then + (Sender as TAction).Enabled := (not dsDataTable.DataTable.Fetching) and + (not dsDataTable.DataTable.Opening) and + (not dsDataTable.DataTable.Closing) and + (dsDataTable.DataTable.State <> dsInsert) + else + (Sender as TAction).Enabled := False; + + //MODO CONSULTAR ITEM + if (Sender as TAction).Enabled + and Assigned(dsDataTable.DataTable) then + (Sender as TAction).Enabled := not dsDataTable.DataTable.ReadOnly; +end; + +function TfEditorDBBase.GetModified: Boolean; +begin + if ReadOnly then + Result := False + else + Result := DataTableModified(dsDataTable.DataTable) or inherited GetModified; +end; + +function TfEditorDBBase.HayDatos: Boolean; +begin + Result := Assigned(dsDataTable.DataTable) and (dsDataTable.DataTable.State <> dsInactive) + and (not dsDataTable.DataTable.IsEmpty); +end; + +function TfEditorDBBase.PuedoImprimir: Boolean; +begin + Result := True; +end; + +procedure TfEditorDBBase.RefrescarInterno; +var + AID: Integer; +begin + inherited; + if Assigned(dsDataTable.DataTable) then + begin + if (dsDataTable.DataTable.IsEmpty) or (not ModifiedQuery) then + Exit; // No continuar con el refresco + + with dsDataTable.DataTable do + begin + AID := RecIDValue; + DisableControls; //<- No descomentar + dsDataTable.OnStateChange := NIL; + ShowHourglassCursor; + try + Refresh; + Locate(RecIDField.FieldName, AID, []); + finally + dsDataTable.OnDataChange := dsDataTableDataChange; + EnableControls; //<- No descomentar + HideHourglassCursor; + end; + end; + end; +end; + +procedure TfEditorDBBase.FormCloseQuery(Sender: TObject; var CanClose: Boolean); +begin + { Para resetear el estado de la tabla en el caso de hacer un insert + sin meter ningn dato. } + if Assigned(dsDataTable.DataTable) and (not Modified) then + dsDataTable.DataTable.Cancel; + inherited; +end; + +procedure TfEditorDBBase.actEliminarUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := HayDatos and (dsDataTable.DataTable.State <> dsInsert) +end; + +procedure TfEditorDBBase.actGuardarCerrarUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := HayDatos; +end; + +procedure TfEditorDBBase.actGuardarUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := HayDatos; +end; + +procedure TfEditorDBBase.actModificarUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := HayDatos; +end; + +procedure TfEditorDBBase.actPrevisualizarUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos and PuedoImprimir; +end; + +procedure TfEditorDBBase.actImprimirUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos and PuedoImprimir; +end; + +initialization + RegisterClass(TfEditorDBBase); + +finalization + UnRegisterClass(TfEditorDBBase); + +end. diff --git a/Source/GUIBase/uEditorDBItem.dcu b/Source/GUIBase/uEditorDBItem.dcu new file mode 100644 index 0000000..feccb7e Binary files /dev/null and b/Source/GUIBase/uEditorDBItem.dcu differ diff --git a/Source/GUIBase/uEditorDBItem.dfm b/Source/GUIBase/uEditorDBItem.dfm new file mode 100644 index 0000000..5608817 --- /dev/null +++ b/Source/GUIBase/uEditorDBItem.dfm @@ -0,0 +1,134 @@ +inherited fEditorDBItem: TfEditorDBItem + Left = 450 + Top = 321 + Caption = 'fEditorDBItem' + ClientHeight = 461 + ClientWidth = 901 + ExplicitWidth = 909 + ExplicitHeight = 495 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 901 + ExplicitWidth = 901 + inherited Image1: TImage + Left = 874 + ExplicitLeft = 627 + ExplicitHeight = 19 + end + object lblDesbloquear: TcxLabel + AlignWithMargins = True + Left = 776 + Top = 0 + Margins.Left = 8 + Margins.Top = 0 + Margins.Right = 8 + Margins.Bottom = 0 + Align = alRight + AutoSize = False + Caption = 'Desbloquear' + ParentFont = False + Style.HotTrack = True + Style.LookAndFeel.NativeStyle = False + Style.TextColor = clWindow + StyleDisabled.LookAndFeel.NativeStyle = False + StyleFocused.BorderStyle = ebsNone + StyleFocused.LookAndFeel.NativeStyle = False + StyleHot.BorderStyle = ebsNone + StyleHot.LookAndFeel.NativeStyle = False + StyleHot.TextStyle = [fsUnderline] + Properties.Alignment.Horz = taCenter + Properties.Alignment.Vert = taVCenter + Transparent = True + OnClick = lblDesbloquearClick + Height = 27 + Width = 90 + AnchorX = 821 + AnchorY = 14 + end + end + inherited TBXDock: TTBXDock + Width = 901 + ExplicitWidth = 901 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 605 + inherited TBXItem26: TTBXItem + Visible = False + end + inherited TBXItem25: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 901 + inherited TBXSubmenuItem1: TTBXSubmenuItem + Visible = False + end + end + end + object pgPaginas: TPageControl [2] + AlignWithMargins = True + Left = 3 + Top = 79 + Width = 895 + Height = 360 + ActivePage = pagGeneral + Align = alClient + TabOrder = 2 + object pagGeneral: TTabSheet + Caption = 'General' + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 0 + ExplicitHeight = 0 + end + end + inherited StatusBar: TJvStatusBar + Top = 442 + Width = 901 + Panels = < + item + Width = 200 + Control = imgStatus + end> + ExplicitTop = 442 + ExplicitWidth = 901 + object imgStatus: TImage + Left = 3 + Top = 3 + Width = 16 + Height = 16 + AutoSize = True + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001000 + 00001008060000001FF3FF61000001E24944415478DAA5932B93DB3014858F99 + 59C46A669599456561166B59DD5F50C342E717C461652B58A8658182810A0BAB + C35C26B394C92C8BDC6BB99BCD63A7339DB547638D1EDF3DE7488EF0C627BA1D + 70466896303FE352747B9DA78B62D77B677DEBA0AC342C663F9D77F0473F2E7F + 7F0718DAA2EE9C5BA58B125DD320150204024BF85A6DC44A4A097FF27004ACEB + BABB071C6B8B98E588057AEF31630C3835D4FC6EF9DDE76221D0EC1B789A33C6 + F491327EC009449D5AC90455A3969598BD93E87F5BF85613802A6A01216F011B + 3FB06416AA8F80823F224DC8DF8D82CE3394A5DE0921F271F39881D99A750084 + 3882020F9158C85891F7029405D26CCAC0C52579364BCEF9C3B86E54E19CFB10 + 996D337CFE389F027802BA760D465567F1D837002FC0E875270E91C988677CE0 + 0987B5B6A71DEC0C38FCEA820A9EA5B0FB43E0896C8EF2DB12D6A8CBB02B3A89 + 07022CA9AFCE80FEE9EFF469FA3CDB7A0500B23190FC3016E9AD1DBECA1C87B6 + 0B210A5260ECA4402E5E5500BA4C15E5A02680B143F1293F57F7972AE85B55D7 + 80AAAA6A02ACD40FF5854EC3447A4380220FBEC70D52CC5F32A0FE2D806EDF28 + 1F5AEB202052DA0E65915FF97E51D113A0BE02D009D4EEE856D49D4254DA0C7A + 63465FCF88A0E4C2EF5D06FFFC1BFFF7F903DDDC21F8890148C2000000004945 + 4E44AE426082} + Transparent = True + end + end + inherited EditorActionList: TActionList + Top = 112 + inherited actEliminar: TAction + ShortCut = 0 + end + end + inherited dsDataTable: TDADataSource + Left = 48 + Top = 112 + end +end diff --git a/Source/GUIBase/uEditorDBItem.pas b/Source/GUIBase/uEditorDBItem.pas new file mode 100644 index 0000000..1c65963 --- /dev/null +++ b/Source/GUIBase/uEditorDBItem.pas @@ -0,0 +1,86 @@ +unit uEditorDBItem; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + uEditorItem, ImgList, PngImageList, StdActns, ActnList, TBX, + TB2Item, TB2Dock, TB2Toolbar, ComCtrls, JvExControls, JvComponent, + JvNavigationPane, DB, uDADataTable, uEditorDBBase, JvFormAutoSize, + StdCtrls, uDAScriptingProvider, uDACDSDataTable, AppEvnts, uCustomView, + uViewBase, JvAppStorage, JvAppRegistryStorage, + JvFormPlacement, pngimage, ExtCtrls, JvComponentBase, dxLayoutLookAndFeels, + JvExComCtrls, JvStatusBar, uDAInterfaces, cxControls, cxContainer, cxEdit, + cxLabel; + +type + IEditorDBItem = interface(IEditorDBBase) + ['{497AE4CE-D061-4F75-A29A-320F8565FF54}'] + end; + + TfEditorDBItem = class(TfEditorDBBase, IEditorDBItem) + pgPaginas: TPageControl; + pagGeneral: TTabSheet; + imgStatus: TImage; + lblDesbloquear: TcxLabel; + procedure lblDesbloquearClick(Sender: TObject); + protected + procedure EliminarInterno; override; + procedure ActualizarEstadoEditor; override; + end; + +implementation + +uses + uEditorBase, uDialogUtils, uDataTableUtils; + +{$R *.dfm} + +procedure TfEditorDBItem.ActualizarEstadoEditor; +begin + inherited; + if HayDatos then + begin + if lblDesbloquear.Enabled then + lblDesbloquear.Visible := ReadOnly; + + if (Self.Modified) and (dsDataTable.DataTable.State <> dsInsert) then + begin + StatusBar.Panels[0].Text := ' Se han producido cambios'; + imgStatus.Visible := True; + end + else begin + imgStatus.Visible := False; + StatusBar.Panels[0].Text := ''; + end + end; +end; + +procedure TfEditorDBItem.EliminarInterno; +begin + inherited; + actCerrar.Execute; +end; + +procedure TfEditorDBItem.lblDesbloquearClick(Sender: TObject); +begin + inherited; + + if (ShowConfirmMessage('Desbloquear los datos para permitir cambios?', 'Actualmente, los datos de esta ficha no se pueden modificar.' + #13#10 + + 'Temporalmente puede desbloquear la ficha para realizar cambios puntuales. Desea continuar?') = IDYES) then + begin + lblDesbloquear.Visible := False; + lblDesbloquear.Enabled := False; + SetDataTableReadOnly(dsDataTable.DataTable, False); + Self.ReadOnly := False; + ActualizarEstadoEditor; + end; +end; + +initialization + RegisterClass(TfEditorDBItem); + +finalization + UnRegisterClass(TfEditorDBItem); + +end. diff --git a/Source/GUIBase/uEditorGridBase.dcu b/Source/GUIBase/uEditorGridBase.dcu new file mode 100644 index 0000000..fe010d6 Binary files /dev/null and b/Source/GUIBase/uEditorGridBase.dcu differ diff --git a/Source/GUIBase/uEditorGridBase.dfm b/Source/GUIBase/uEditorGridBase.dfm new file mode 100644 index 0000000..775eb77 --- /dev/null +++ b/Source/GUIBase/uEditorGridBase.dfm @@ -0,0 +1,1619 @@ +inherited fEditorGridBase: TfEditorGridBase + Left = 441 + Top = 354 + Caption = 'fEditorGridBase' + ClientHeight = 504 + ClientWidth = 894 + OnDestroy = CustomEditorDestroy + ExplicitWidth = 902 + ExplicitHeight = 538 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Top = 0 + Width = 894 + ExplicitTop = 0 + ExplicitWidth = 894 + inherited Image1: TImage + Left = 867 + ExplicitLeft = 518 + end + end + inherited TBXDock: TTBXDock + Top = 27 + Width = 894 + Height = 75 + ExplicitTop = 27 + ExplicitWidth = 894 + ExplicitHeight = 75 + inherited tbxMain: TTBXToolbar + DockPos = 0 + DragHandleStyle = dhDouble + TabOrder = 1 + ExplicitWidth = 457 + inherited TBXItem29: TTBXItem + Visible = False + end + inherited TBXItem27: TTBXItem + Visible = False + end + object TBXSeparatorItem6: TTBXSeparatorItem [6] + end + object TBXItem7: TTBXItem [7] + Action = actDuplicar + DisplayMode = nbdmImageAndText + end + inherited TBXItem24: TTBXItem [10] + end + inherited TBXItem3: TTBXItem [11] + end + inherited TBXSeparatorItem10: TTBXSeparatorItem [12] + end + object TBXItem384: TTBXItem [13] + Action = actExportarExcel + DisplayMode = nbdmTextOnly + end + inherited TBXItem26: TTBXItem [14] + Visible = False + end + inherited TBXSeparatorItem2: TTBXSeparatorItem [15] + Visible = True + end + inherited TBXItem25: TTBXItem + Visible = False + end + inherited TBXSeparatorItem11: TTBXSeparatorItem + Visible = False + end + object TBXItem36: TTBXItem [19] + Action = actAnchoAuto + DisplayMode = nbdmImageAndText + end + object TBXItem939: TTBXItem [20] + Action = actContraer + end + object TBXItem938: TTBXItem [21] + Action = actExpandir + end + inherited TBXItem28: TTBXItem + Visible = False + end + end + object tbxFiltro: TTBXToolbar [1] + Left = 0 + Top = 49 + Align = alRight + CloseButton = False + DefaultDock = TBXDock + DockMode = dmCannotFloatOrChangeDocks + DockPos = 0 + DockRow = 2 + DragHandleStyle = dhDouble + Images = SmallImages + ParentShowHint = False + Resizable = False + ShowHint = True + ShrinkMode = tbsmNone + TabOrder = 0 + object lblAno: TTBXLabelItem + Caption = 'A'#241'o' + Visible = False + end + object cbxListaAnos: TTBXComboBoxItem + Visible = False + end + object sepAno: TTBXSeparatorItem + Visible = False + end + object TBXLabelItem1: TTBXLabelItem + Caption = 'Filtrar:' + end + object tbxEditFiltro: TTBXEditItem + EditWidth = 200 + ImageIndex = 10 + EditorFontSettings.Italic = tsTrue + ExtendedAccept = True + Images = SmallImages + ShowImage = True + OnChange = tbxEditFiltroChange + end + object TBXItem34: TTBXItem + Action = actQuitarFiltro + end + object TBXItem37: TTBXItem + Action = actFiltrar + end + end + inherited tbxMenu: TTBXToolbar + TabOrder = 2 + Visible = False + ExplicitWidth = 894 + inherited TBXSubmenuItem4: TTBXSubmenuItem + inherited TBXItem30: TTBXItem + Visible = False + end + inherited TBXSeparatorItem15: TTBXSeparatorItem + Visible = False + end + object TBXItem33: TTBXItem [7] + Action = actDuplicar + end + object TBXSeparatorItem14: TTBXSeparatorItem [8] + end + inherited TBXItem21: TTBXItem + Visible = False + end + object TBXSeparatorItem172: TTBXSeparatorItem [12] + end + object TBXItem395: TTBXItem [13] + Action = actExportarExcel + end + end + inherited TBXSubmenuItem5: TTBXSubmenuItem + Visible = False + end + inherited TBXSubmenuItem1: TTBXSubmenuItem + inherited TBXItem32: TTBXItem + Visible = False + end + inherited TBXItem31: TTBXItem + Visible = False + end + inherited TBXSeparatorItem13: TTBXSeparatorItem + Visible = False + end + end + inherited TBXSubmenuItem6: TTBXSubmenuItem + object TBXItem35: TTBXItem [0] + Action = actAnchoAuto + end + object TBXSeparatorItem16: TTBXSeparatorItem [1] + end + end + end + object TBXTMain2: TTBXToolbar + Left = 337 + Top = 49 + Align = alRight + Caption = 'tbxLista' + ChevronHint = 'M'#225's botones|' + DockMode = dmCannotFloatOrChangeDocks + DockPos = 318 + DockRow = 2 + DragHandleStyle = dhDouble + Images = SmallImages + ParentShowHint = False + ShowHint = True + TabOrder = 3 + Visible = False + end + end + inherited StatusBar: TJvStatusBar + Top = 485 + Width = 894 + ExplicitTop = 485 + ExplicitWidth = 894 + end + inherited EditorActionList: TActionList + Left = 64 + Top = 152 + inherited actNuevo: TAction + OnUpdate = actNuevoUpdate + end + inherited actGuardarCerrar: TAction + Enabled = False + end + inherited actGuardar: TAction + Enabled = False + end + inherited actPrevisualizar: TAction + Visible = False + end + inherited actImprimir: TAction + Visible = False + end + inherited actCerrar: TAction + Enabled = False + end + inherited actAnterior: TAction + Enabled = False + end + inherited actSiguiente: TAction + Enabled = False + end + inherited actCancelarCambios: TAction + Enabled = False + end + inherited actDuplicar: TAction + OnUpdate = actDuplicarUpdate + end + object actQuitarFiltro: TAction + Category = 'Buscar' + Caption = 'Quitar filtro y ver todo' + ImageIndex = 19 + OnExecute = actQuitarFiltroExecute + end + object actAnchoAuto: TAction + Category = 'Ver' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 21 + OnExecute = actAnchoAutoExecute + end + object actFiltrar: TAction + Category = 'Buscar' + Caption = 'Filtrar m'#225's..' + OnExecute = actFiltrarExecute + OnUpdate = actFiltrarUpdate + end + object actExportarExcel: TAction + Category = 'Archivo' + Caption = 'Exportar a fichero Excel...' + Enabled = False + Visible = False + OnExecute = actExportarExcelExecute + OnUpdate = actExportarExcelUpdate + end + object actExpandir: TAction + Category = 'Ver' + Caption = 'Expandir' + Visible = False + OnExecute = actExpandirExecute + OnUpdate = actExpandirUpdate + end + object actContraer: TAction + Category = 'Ver' + Caption = 'Contraer' + Visible = False + OnExecute = actContraerExecute + OnUpdate = actContraerUpdate + end + end + inherited SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end> + Left = 403 + Top = 128 + Bitmap = {} + end + inherited LargeImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end> + Left = 435 + Top = 128 + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage + Left = 400 + Top = 160 + end + inherited dsDataTable: TDADataSource + Left = 32 + Top = 112 + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage + Left = 432 + Top = 160 + end + object GridPopupMenu: TPopupMenu + Images = SmallImages + Left = 64 + Top = 112 + object Modificar1: TMenuItem + Action = actModificar + end + object Duplicar1: TMenuItem + Action = actDuplicar + end + object Eliminar1: TMenuItem + Action = actEliminar + end + object N1: TMenuItem + Caption = '-' + end + object Nuevo1: TMenuItem + Action = actNuevo + end + object N2: TMenuItem + Caption = '-' + end + object Previsualizar1: TMenuItem + Action = actPrevisualizar + end + object Imprimir1: TMenuItem + Action = actImprimir + end + object N3: TMenuItem + Caption = '-' + end + object ExportaraficheroExcel1: TMenuItem + Action = actExportarExcel + end + object N488: TMenuItem + Caption = '-' + end + object Actualizar1: TMenuItem + Action = actRefrescar + end + end +end diff --git a/Source/GUIBase/uEditorGridBase.pas b/Source/GUIBase/uEditorGridBase.pas new file mode 100644 index 0000000..6fc6a89 --- /dev/null +++ b/Source/GUIBase/uEditorGridBase.pas @@ -0,0 +1,466 @@ +{*******************************************************} +{ } +{ Administracin de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uEditorGridBase; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorBase, ToolWin, ComCtrls, JvExControls, JvComponent, + JvNavigationPane, ActnList, TB2Dock, TB2Toolbar, TBX, TB2Item, + ImgList, PngImageList, StdActns, TB2ExtItems, TBXExtItems, uViewGridBase, + uEditorDBBase, DB, uDADataTable, Menus, JvFormAutoSize, + uDAScriptingProvider, uDACDSDataTable, AppEvnts, JvAppStorage, + JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls, + JvComponentBase, dxLayoutLookAndFeels, TBXStatusBars, JvExComCtrls, + JvStatusBar, uDAInterfaces, cxGraphics, StdCtrls, cxControls, cxContainer, + cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxLookupEdit, cxDBLookupEdit, + cxDBLookupComboBox; + +type + IEditorGridBase = interface(IEditorDBBase) + ['{CB8CDE00-B225-4A1D-9A5C-EC6FBE2C854B}'] + + procedure SetMultiSelect (AValue : Boolean); + function GetMultiSelect : Boolean; + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + end; + + TfEditorGridBase = class(TfEditorDBBase, IEditorGridBase) + tbxEditFiltro: TTBXEditItem; + tbxFiltro: TTBXToolbar; + GridPopupMenu: TPopupMenu; + Modificar1: TMenuItem; + Eliminar1: TMenuItem; + N1: TMenuItem; + Nuevo1: TMenuItem; + TBXLabelItem1: TTBXLabelItem; + actQuitarFiltro: TAction; + N2: TMenuItem; + Previsualizar1: TMenuItem; + Imprimir1: TMenuItem; + TBXSeparatorItem14: TTBXSeparatorItem; + TBXItem33: TTBXItem; + N3: TMenuItem; + Actualizar1: TMenuItem; + TBXItem34: TTBXItem; + actAnchoAuto: TAction; + TBXSeparatorItem16: TTBXSeparatorItem; + TBXItem35: TTBXItem; + TBXItem36: TTBXItem; + TBXSeparatorItem6: TTBXSeparatorItem; + TBXItem7: TTBXItem; + actFiltrar: TAction; + TBXItem37: TTBXItem; + TBXTMain2: TTBXToolbar; + actExportarExcel: TAction; + ExportaraficheroExcel1: TMenuItem; + N488: TMenuItem; + TBXSeparatorItem172: TTBXSeparatorItem; + TBXItem395: TTBXItem; + TBXItem384: TTBXItem; + actExpandir: TAction; + actContraer: TAction; + TBXItem938: TTBXItem; + TBXItem939: TTBXItem; + cbxListaAnos: TTBXComboBoxItem; + sepAno: TTBXSeparatorItem; + lblAno: TTBXLabelItem; + procedure tbxEditFiltroChange(Sender: TObject; const Text: String); + procedure FormShow(Sender: TObject); + procedure actQuitarFiltroExecute(Sender: TObject); + procedure actDuplicarUpdate(Sender: TObject); + procedure actModificarUpdate(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + procedure actNuevoUpdate(Sender: TObject); + procedure actAnchoAutoExecute(Sender: TObject); + procedure actRefrescarUpdate(Sender: TObject); + procedure actFiltrarExecute(Sender: TObject); + procedure actFiltrarUpdate(Sender: TObject); + procedure CustomEditorDestroy(Sender: TObject); + procedure actExportarExcelUpdate(Sender: TObject); + procedure actExportarExcelExecute(Sender: TObject); + procedure actExpandirExecute(Sender: TObject); + procedure actContraerExecute(Sender: TObject); + procedure actExpandirUpdate(Sender: TObject); + procedure actContraerUpdate(Sender: TObject); + protected + FListaAnos: TStringList; + FViewGrid : IViewGridBase; + FDynWhereDataTable: WideString; + + function GetListaAnos: TStringList; + procedure SetListaAnos(const Value: TStringList); + + function GetDynWhereDataTable: WideString; + procedure SetDynWhereDataTable(const Value: WideString); + + procedure SetViewGrid(const Value : IViewGridBase); virtual; + function GetViewGrid: IViewGridBase; + + procedure SetMultiSelect (AValue : Boolean); + function GetMultiSelect : Boolean; + + procedure PrevisualizarInterno; override; + procedure ConfPaginaInterno; override; + procedure ImprimirInterno; override; + procedure RefrescarInterno; override; + + function GetModified: Boolean; override; + + public + property ListaAnos: TStringList read GetListaAnos write SetListaAnos; + property ViewGrid: IViewGridBase read GetViewGrid write SetViewGrid; + property DynWhereDataTable: WideString read GetDynWhereDataTable write SetDynWhereDataTable; + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + + + constructor Create(AOwner : TComponent); override; + destructor Destroy; override; + function ShowModal : Integer; override; + end; + +implementation + +uses + uDMBase, uCustomEditor, cxGridTableView; + +{$R *.dfm} + +{ +********************************* TfEditorGridBase ***************************** +} +destructor TfEditorGridBase.Destroy; +begin + FDynWhereDataTable := ''; + FViewGrid := NIL; + if Assigned(FListaAnos) then + FlistaAnos.Free; + + inherited; +end; + +function TfEditorGridBase.GetDynWhereDataTable: WideString; +begin + Result := FDynWhereDataTable; +end; + +function TfEditorGridBase.GetListaAnos: TStringList; +begin + Result := FListaAnos; +end; + +function TfEditorGridBase.GetModified: Boolean; +begin + //inherited: + Result := False; +end; + +function TfEditorGridBase.GetMultiSelect: Boolean; +begin + Result := False; + if Assigned(ViewGrid) then + Result := ViewGrid.MultiSelect; +end; + +function TfEditorGridBase.GetViewGrid: IViewGridBase; +begin + Result := FViewGrid; +end; + +procedure TfEditorGridBase.ImprimirInterno; +begin + inherited; + ViewGrid.Print; +end; + +procedure TfEditorGridBase.SetDynWhereDataTable(const Value: WideString); +begin + FDynWhereDataTable := Value; +end; + +procedure TfEditorGridBase.SetListaAnos(const Value: TStringList); +var + i: Integer; + AStringAnterior: String; + +begin + AStringAnterior := ''; + if Assigned(FListaAnos) then + begin + AStringAnterior := FListaAnos.ValueFromIndex[cbxListaAnos.ItemIndex]; + FListaAnos.Free; + end; + + //Se asigna el nuevo TStringList + FListaAnos := Value; + + if Assigned(FListaAnos) then + begin + cbxListaAnos.Strings.BeginUpdate; + cbxListaAnos.Strings.Clear; + for i := 0 to FListaAnos.Count - 1 do + cbxListaAnos.Strings.Append(FListaAnos.Names[i]); + + //Se posiciona en el elemento que habia anteriormente + if Length(AStringAnterior) > 0 then + begin + if FListaAnos.IndexOfName(AStringAnterior) <> -1 then + cbxListaAnos.ItemIndex := FListaAnos.IndexOfName(AStringAnterior) + else + cbxListaAnos.ItemIndex := 0; + end; + + cbxListaAnos.Strings.EndUpdate; + end; +end; + +procedure TfEditorGridBase.SetMultiSelect(AValue: Boolean); +begin + if Assigned(ViewGrid) then + ViewGrid.MultiSelect := AValue; +end; + +procedure TfEditorGridBase.SetViewGrid(const Value: IViewGridBase); +begin + FViewGrid := Value; + if Assigned(FViewGrid) then + begin + FViewGrid.PopupMenu := GridPopupMenu; + FViewGrid.OnDblClick := actModificar.OnExecute; + end; +end; + +function TfEditorGridBase.ShowModal: Integer; +begin +// tbxMenu.Visible := True; + JvNavPanelHeader.Top := TBXDock.Height; + Result := inherited ShowModal; +end; + +procedure TfEditorGridBase.tbxEditFiltroChange(Sender: TObject; const Text: String); +begin + if Assigned(ViewGrid) then + begin + if Length(Text) > 0 then + ViewGrid.Filter := Text + else + actQuitarFiltro.Execute; + end; +end; + +procedure TfEditorGridBase.FormShow(Sender: TObject); +begin + inherited; + + if Assigned(ViewGrid) then + begin + ViewGrid.ShowEmbedded(Self); + ViewGrid.RestoreFromIniFile; + +// actExpandir.Visible := ViewGrid.AgrupacionesVisibles; +// actContraer.Visible := ViewGrid.AgrupacionesVisibles; + end; + + cbxListaAnos.ItemIndex := 0; +end; + +procedure TfEditorGridBase.actEliminarUpdate(Sender: TObject); +begin + inherited; + + if HayDatos and Assigned(ViewGrid) then + (Sender as TAction).Enabled := not (dsDataTable.DataTable.State in dsEditModes) + and ViewGrid.esSeleccionCeldaDatos + and (ViewGrid.NumSeleccionados > 0) + else + (Sender as TAction).Enabled := False; +end; + +procedure TfEditorGridBase.actExpandirExecute(Sender: TObject); +begin + inherited; + if Assigned(ViewGrid) then + ViewGrid.ExpandirTodo +end; + +procedure TfEditorGridBase.actExpandirUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := Assigned(dsDataTable.DataTable) and Assigned(ViewGrid); +end; + +procedure TfEditorGridBase.actExportarExcelExecute(Sender: TObject); +begin + inherited; + if Assigned(ViewGrid) then + ViewGrid.ExportToExcel; +end; + +procedure TfEditorGridBase.actExportarExcelUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := Assigned(ViewGrid); +end; + +procedure TfEditorGridBase.actFiltrarExecute(Sender: TObject); +begin + inherited; + if Assigned(ViewGrid) then + ViewGrid.ViewFiltros.VerFiltros := not ViewGrid.ViewFiltros.VerFiltros; + + if Assigned(ViewGrid) then + if ViewGrid.ViewFiltros.VerFiltros then + begin + tbxEditFiltro.Visible := False; + TBXItem7.Visible := False; + end + else + begin + tbxEditFiltro.Text := ''; + tbxEditFiltro.Visible := True; + TBXItem7.Visible := True; + end; +end; + +procedure TfEditorGridBase.actFiltrarUpdate(Sender: TObject); +begin + inherited; + if Assigned(ViewGrid) then + (Sender as TAction).Checked := ViewGrid.ViewFiltros.VerFiltros; +end; + +procedure TfEditorGridBase.actModificarUpdate(Sender: TObject); +begin + inherited; + if HayDatos and Assigned(ViewGrid) then + (Sender as TAction).Enabled := not (dsDataTable.DataTable.State in dsEditModes) + and not ViewGrid.IsEmpty + and ViewGrid.esSeleccionCeldaDatos + else + (Sender as TAction).Enabled := False; + + //En el caso de que el grid sea multiseleccin solo se podr modificar si solo se tiene un elemento seleccionado + if (Sender as TAction).Enabled then + if MultiSelect and Assigned(ViewGrid) then + (Sender as TAction).Enabled := (ViewGrid.NumSeleccionados = 1); +end; + +procedure TfEditorGridBase.actNuevoUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := Assigned(dsDataTable.DataTable); +end; + +procedure TfEditorGridBase.actQuitarFiltroExecute(Sender: TObject); +begin + if Assigned(ViewGrid) then + begin + tbxEditFiltro.Text := ''; + ViewGrid.Filter := ''; + end; +end; + +procedure TfEditorGridBase.actRefrescarUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := Assigned(dsDataTable.DataTable); +end; + +procedure TfEditorGridBase.ConfPaginaInterno; +begin + inherited; + ViewGrid.PrintSetup; +end; + +constructor TfEditorGridBase.Create(AOwner: TComponent); +begin + inherited; + FDynWhereDataTable := ''; + actModificar.ShortCut := ShortCut(VK_RETURN, []); +end; + +procedure TfEditorGridBase.CustomEditorDestroy(Sender: TObject); +begin + inherited; + if Assigned(ViewGrid) then + ViewGrid.StoreToIniFile; +end; + +procedure TfEditorGridBase.actAnchoAutoExecute(Sender: TObject); +begin + inherited; + if Assigned(ViewGrid) then + ViewGrid.AjustarAncho; +end; + +procedure TfEditorGridBase.actContraerExecute(Sender: TObject); +begin + inherited; + if Assigned(ViewGrid) then + ViewGrid.ContraerTodo +end; + +procedure TfEditorGridBase.actContraerUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := Assigned(dsDataTable.DataTable) and Assigned(ViewGrid); +end; + +procedure TfEditorGridBase.actDuplicarUpdate(Sender: TObject); +begin + inherited; + if HayDatos and Assigned(ViewGrid) then + (Sender as TAction).Enabled := not (dsDataTable.DataTable.State in dsEditModes) + and not ViewGrid.IsEmpty + and ViewGrid.esSeleccionCeldaDatos + else + (Sender as TAction).Enabled := False; + + //En el caso de que el grid sea multiseleccin solo se podr modificar si solo se tiene un elemento seleccionado + if (Sender as TAction).Enabled then + if MultiSelect and Assigned(ViewGrid) then + (Sender as TAction).Enabled := (ViewGrid.NumSeleccionados = 1); +end; + +procedure TfEditorGridBase.PrevisualizarInterno; +begin + inherited; + ViewGrid.Preview; +end; + +procedure TfEditorGridBase.RefrescarInterno; +var + FocusedRow, TopRow : Integer; +begin + TopRow := ViewGrid._FocusedView.Controller.TopRowIndex; + FocusedRow := ViewGrid._FocusedView.DataController.FocusedRowIndex; + ViewGrid._FocusedView.BeginUpdate; + ShowHourglassCursor; + + try + // inherited; <- No hacemos lo que hay en el padre + dsDataTable.DataTable.Refresh; + + finally + ViewGrid._FocusedView.EndUpdate; + ViewGrid._FocusedView.DataController.FocusedRowIndex := FocusedRow; + ViewGrid._FocusedView.Controller.TopRowIndex := TopRow; + HideHourglassCursor; + end; +end; + +initialization + RegisterClass(TfEditorGridBase); + +finalization + UnRegisterClass(TfEditorGridBase); + +end. + diff --git a/Source/GUIBase/uEditorItem.dcu b/Source/GUIBase/uEditorItem.dcu new file mode 100644 index 0000000..c247456 Binary files /dev/null and b/Source/GUIBase/uEditorItem.dcu differ diff --git a/Source/GUIBase/uEditorItem.dfm b/Source/GUIBase/uEditorItem.dfm new file mode 100644 index 0000000..b241e2c --- /dev/null +++ b/Source/GUIBase/uEditorItem.dfm @@ -0,0 +1,69 @@ +inherited fEditorItem: TfEditorItem + Left = 423 + Top = 273 + Caption = 'fEditorItem' + ClientHeight = 501 + ClientWidth = 678 + ExplicitWidth = 686 + ExplicitHeight = 535 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 678 + Visible = False + ExplicitWidth = 678 + inherited Image1: TImage + Left = 651 + ExplicitLeft = 651 + end + end + object pgPaginas: TPageControl [1] + AlignWithMargins = True + Left = 3 + Top = 79 + Width = 672 + Height = 400 + ActivePage = pagGeneral + Align = alClient + TabOrder = 1 + ExplicitLeft = 0 + ExplicitTop = 76 + ExplicitWidth = 678 + ExplicitHeight = 406 + object pagGeneral: TTabSheet + Caption = 'General' + ExplicitWidth = 670 + ExplicitHeight = 378 + end + end + inherited TBXDock: TTBXDock + Width = 678 + ExplicitWidth = 678 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 581 + inherited TBXItem5: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 678 + inherited TBXSubmenuItem4: TTBXSubmenuItem + inherited TBXItem10: TTBXItem + Visible = False + end + end + end + end + inherited StatusBar: TJvStatusBar + Top = 482 + Width = 678 + ExplicitTop = 482 + ExplicitWidth = 678 + end + inherited EditorActionList: TActionList + Top = 104 + inherited actEliminar: TAction + ShortCut = 0 + end + end +end diff --git a/Source/GUIBase/uEditorItem.pas b/Source/GUIBase/uEditorItem.pas new file mode 100644 index 0000000..72f7535 --- /dev/null +++ b/Source/GUIBase/uEditorItem.pas @@ -0,0 +1,39 @@ + +unit uEditorItem; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorBase, ActnList, JvExControls, JvComponent, + JvNavigationPane, ComCtrls, StdActns, TB2Dock, TB2Toolbar, TBX, TB2Item, + ImgList, PngImageList, JvFormAutoSize, JvAppStorage, + JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls, + JvComponentBase, dxLayoutLookAndFeels, TBXStatusBars, JvExComCtrls, + JvStatusBar; + +type + IEditorItem = interface(IEditorBase) + ['{F6A412D1-59AA-41D2-ADD5-C92687CD5387}'] + end; + + TfEditorItem = class(TfEditorBase, IEditorItem) + pagGeneral: TTabSheet; + pgPaginas: TPageControl; + end; + +implementation + +uses uDMBase; + +{$R *.dfm} + +initialization + RegisterClass(TfEditorItem); + +finalization + + UnRegisterClass(TfEditorItem); + + +end. diff --git a/Source/GUIBase/uEditorPSPreview.dfm b/Source/GUIBase/uEditorPSPreview.dfm new file mode 100644 index 0000000..a3f98e6 --- /dev/null +++ b/Source/GUIBase/uEditorPSPreview.dfm @@ -0,0 +1,15 @@ +object Form1: TForm1 + Left = 580 + Top = 506 + Width = 320 + Height = 240 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = True + PixelsPerInch = 96 + TextHeight = 13 +end diff --git a/Source/GUIBase/uEditorPSPreview.pas b/Source/GUIBase/uEditorPSPreview.pas new file mode 100644 index 0000000..683b402 --- /dev/null +++ b/Source/GUIBase/uEditorPSPreview.pas @@ -0,0 +1,24 @@ +unit uEditorPSPreview; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, dxPSPrVw; + +type + TForm1 = class(TCustomdxPSPreviewWindow) + private + { Private declarations } + public + { Public declarations } + end; + +var + Form1: TForm1; + +implementation + +{$R *.dfm} + +end. diff --git a/Source/GUIBase/uEditorPreview.dcu b/Source/GUIBase/uEditorPreview.dcu new file mode 100644 index 0000000..7f08951 Binary files /dev/null and b/Source/GUIBase/uEditorPreview.dcu differ diff --git a/Source/GUIBase/uEditorPreview.dfm b/Source/GUIBase/uEditorPreview.dfm new file mode 100644 index 0000000..e0f9966 --- /dev/null +++ b/Source/GUIBase/uEditorPreview.dfm @@ -0,0 +1,2597 @@ +inherited fEditorPreview: TfEditorPreview + Left = 521 + Top = 340 + Caption = 'Previsualizar' + WindowState = wsMaximized + OnDestroy = FormDestroy + OnResize = FormResize + ExplicitWidth = 803 + ExplicitHeight = 492 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Top = 75 + Visible = False + ExplicitTop = 75 + inherited Image1: TImage + ExplicitLeft = 623 + end + end + inherited TBXDock: TTBXDock + Height = 75 + ExplicitHeight = 75 + inherited tbxMain: TTBXToolbar + Top = 49 + DefaultDock = TBXDock + Visible = False + ExplicitTop = 49 + ExplicitWidth = 248 + end + inherited tbxMenu: TTBXToolbar + DockPos = 0 + inherited TBXSubmenuItem4: TTBXSubmenuItem + object TBXSeparatorItem20: TTBXSeparatorItem [10] + end + object TBXSubmenuItem8: TTBXSubmenuItem [11] + Caption = 'Exportar' + object TBXItem53: TTBXItem + Action = actExportarPDF + Images = SmallImages + end + object TBXItem56: TTBXItem + Action = actExportarExcel + Images = SmallImages + end + object TBXItem55: TTBXItem + Action = actExportarRTF + Images = SmallImages + end + object TBXItem57: TTBXItem + Action = actExportarTexto + Images = SmallImages + end + end + object TBXItem54: TTBXItem [12] + Action = actExportarCorreo + Images = SmallImages + end + end + inherited TBXSubmenuItem5: TTBXSubmenuItem + Visible = False + end + inherited TBXSubmenuItem1: TTBXSubmenuItem + Visible = False + end + object TBXSubmenuItem2: TTBXSubmenuItem [3] + Caption = '&Ir' + object TBXItem47: TTBXItem + Action = actPrimeraPagina + Images = PreviewSmallImageList + end + object TBXItem43: TTBXItem + Action = actPaginaAnterior + Images = PreviewSmallImageList + end + object TBXItem44: TTBXItem + Action = actPaginaSiguiente + Images = PreviewSmallImageList + end + object TBXItem45: TTBXItem + Action = actUltimaPagina + Images = PreviewSmallImageList + end + end + inherited TBXSubmenuItem6: TTBXSubmenuItem + inherited TBXItem18: TTBXItem + Action = actZoomIn + Images = PreviewSmallImageList + end + object TBXItem38: TTBXItem + Action = actZoomOut + Images = PreviewSmallImageList + end + object TBXSeparatorItem19: TTBXSeparatorItem + end + object TBXItem48: TTBXItem + Action = actAnchoPagina + Images = PreviewSmallImageList + end + object TBXItem46: TTBXItem + Action = actTodaPagina + Images = PreviewSmallImageList + end + object TBXItem52: TTBXItem + Action = actMiniaturas + Images = PreviewSmallImageList + end + end + object TBXSubmenuItem3: TTBXSubmenuItem [5] + Caption = '&Herramientas' + object TBXItem49: TTBXItem + Action = actToolHand + Checked = True + GroupIndex = 1 + Images = PreviewSmallImageList + end + object TBXItem50: TTBXItem + Action = actToolZoom + GroupIndex = 1 + Images = PreviewSmallImageList + end + end + end + object TBXToolbar1: TTBXToolbar + Left = 0 + Top = 23 + Caption = 'TBXToolbar1' + DefaultDock = TBXDock + DragHandleStyle = dhNone + ParentShowHint = False + ShowHint = True + TabOrder = 2 + object TBXItem39: TTBXItem + Action = actImprimir + DisplayMode = nbdmImageAndText + Images = SmallImages + end + object TBXSeparatorItem18: TTBXSeparatorItem + end + object tbxMano: TTBXItem + Action = actToolHand + Checked = True + DisplayMode = nbdmImageAndText + GroupIndex = 1 + Images = PreviewSmallImageList + end + object tbxZoom: TTBXItem + Action = actToolZoom + DisplayMode = nbdmImageAndText + GroupIndex = 1 + Images = PreviewSmallImageList + end + object TBXSeparatorItem6: TTBXSeparatorItem + end + object TBXItem51: TTBXItem + Action = actMiniaturas + Images = PreviewSmallImageList + end + object TBXItem42: TTBXItem + Action = actTodaPagina + Images = PreviewSmallImageList + end + object TBXItem41: TTBXItem + Action = actAnchoPagina + Images = PreviewSmallImageList + end + object TBXSeparatorItem14: TTBXSeparatorItem + end + object TBXItem40: TTBXItem + Action = actZoomOut + Images = PreviewSmallImageList + end + object cbZoom: TTBXComboBoxItem + Caption = 'Zoom' + ReadOnly = True + OnItemClick = cbZoomItemClick + end + object TBXItem37: TTBXItem + Action = actZoomIn + Images = PreviewSmallImageList + end + object TBXSeparatorItem17: TTBXSeparatorItem + end + object TBXItem7: TTBXItem + Action = actPrimeraPagina + Images = PreviewSmallImageList + end + object TBXItem34: TTBXItem + Action = actPaginaAnterior + Images = PreviewSmallImageList + end + object TBXItem33: TTBXItem + Action = actPaginaSiguiente + Images = PreviewSmallImageList + end + object TBXItem36: TTBXItem + Action = actUltimaPagina + Images = PreviewSmallImageList + end + object TBXSeparatorItem16: TTBXSeparatorItem + end + object TBXItem35: TTBXItem + Action = actCerrar + end + end + end + inherited StatusBar: TJvStatusBar + Panels = < + item + Width = 150 + end + item + Width = 50 + end> + end + inherited EditorActionList: TActionList + Top = 104 + inherited actNuevo: TAction + Enabled = False + Visible = False + end + inherited actModificar: TAction + Enabled = False + Visible = False + end + inherited actGuardarCerrar: TAction + Enabled = False + Visible = False + end + inherited actGuardar: TAction + Enabled = False + Visible = False + end + inherited actEliminar: TAction + Enabled = False + Visible = False + end + inherited actPrevisualizar: TAction + Enabled = False + Visible = False + end + inherited actDeshacer: TEditUndo + Enabled = False + Visible = False + end + inherited actCortar: TEditCut + Enabled = False + Visible = False + end + inherited actCopiar: TEditCopy + Enabled = False + Visible = False + end + inherited actPegar: TEditPaste + Enabled = False + Visible = False + end + inherited actSeleccionarTodo: TEditSelectAll + Enabled = False + Visible = False + end + inherited actLimpiar: TEditDelete + Enabled = False + Visible = False + end + inherited actBuscar: TAction + Enabled = False + Visible = False + end + inherited actCancelarCambios: TAction + Enabled = False + Visible = False + end + object actExportarPDF: TAction + Category = 'Exportaci'#243'n' + Caption = 'Exportar a PDF...' + ImageIndex = 21 + OnExecute = actExportarPDFExecute + end + object actExportarRTF: TAction + Category = 'Exportaci'#243'n' + Caption = 'Exportar a documento Word...' + ImageIndex = 24 + OnExecute = actExportarRTFExecute + end + object actExportarExcel: TAction + Category = 'Exportaci'#243'n' + Caption = 'Exportar a libro Excel...' + ImageIndex = 22 + OnExecute = actExportarExcelExecute + end + object actExportarCorreo: TAction + Category = 'Exportaci'#243'n' + Caption = 'Enviar por correo electr'#243'nico...' + ImageIndex = 25 + OnExecute = actExportarCorreoExecute + end + object actExportarTexto: TAction + Category = 'Exportaci'#243'n' + Caption = 'Exportar a texto simple...' + ImageIndex = 23 + OnExecute = actExportarTextoExecute + end + end + inherited SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001F04944415478DA + 633CC0C0F09F0109C83939313CDAB70F5988C181818191C1600644DD850C4664 + 3946900162D7AEC1053872721838972E85F36F4A4A323818CC60A82CF062689F + B00DB7011C1C1C0C9C9C9C0CDFA3A31924B76E65F8F1E307184B7A6E64583825 + 99E1C69DE70C4B561C64F8F1F3EFC5D7EF7F78030D7A8A6280A0A020D890F7C1 + C10C826BD7824D17745C09D70C03627C2C0C959D5BBF000DD20019023640FDF9 + 7314CD201AE48DF7EFDF3368451D62F075D365D0D19265B872ED3198FEF3F90D + C3C2F597B7BEDA17EF0337000440CEC70694DE85810DD9BCEB32DC305878800D + 00853C08806CFDFEFD3B42674A0A38462E2FDACE90DBF7102CB4A0568361ED49 + 568663276F31BC3D98883000E66474F04A4B8BC1F6DF3F14B182CEDD0CF3363D + 66F87A3C8591B15842F33F0301D0F5EC2A0ABF6DC6368629EBDE3148311F6760 + 24A479F2A2EDFFB362DC19983E9D67B8BFDC98412AF402C3EC6DCF19E62DDD04 + 4907C41AF0772D1303AB453CC3FD2D0B197823BE307CFFF18BC13FA19A380372 + FC2480B61B3228DA3330DC3FC8C0C0E27E95E13B83284344663D7106787FF564 + 50F4896760F8BC90E1FD3B06860F9719183EDA3F61482A6C25CE00BD279E18E2 + CCEEF71872ABBA893320C4D30AE8E7DF0CDFBEFF66F8FAFD17C337A0FF41A0A8 + AE8F380360218E0D000074D3EB115697A8140000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63346C31FCCF40009CAF39CFC8603003A2EE420623B21C23C88073D5E7706A36 + 6A356238BF269DA1B2C08BA17DC236DC0680148200881D3CD799E1FE8BF710DB + 819A174E4966B871E739C3921507197EFCFC7BF1F5FB1FDE40839EA21880AC09 + EE7424CD3020C6C7C250D9B9F50BD0200D9021285E40360426C6683893C1D74D + 9741474B96E1CAB5C760FACFE7370C0BD75FDEFA6A5FBC0F5E17C0BC067209C8 + 90CDBB2EC30D838507C130008124B93686DCBE8760F6825A0D86B52759198E9D + BCC5F0F660222351B170A6EA2C8A5841E76E86799B1E337C3D9E023180503A40 + 37A06DC6368629EBDE3148311F676024A479F2A2EDFFB362DC19983E9D67B8BF + DC98412AF402C3EC6DCF19E62DDD040964620DF8BB968981D5229EE1FE96850C + BC115F18BEFFF8C5E09F504D9C01397E1240DB0D1914ED1918EE1F64606071BF + CAF09D41942122B39E3803BCBF7A3228FAC433307C5EC8F0FE1D03C387CB0C0C + 1FED9F302415B6126780DE134F0C7166F77B0CB955DDC41910E26905F4F36F86 + 6FDF7F337CFDFE8BE11BD0FF205054D7479C01B010C70600EF8FEA118DBC0D28 + 0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001844944415478DA + 63646068F9CF4010D4303218CC80A8BB90C1882CC30832E0FFFF6A9C5A19195B + 19180C44182A0BBC18DA276CC36D0058211A008B1BCE6458382599E1C69DE70C + 4B561C64F8F1F3EFC5D7EF7F78030D7A4AD005C89A61408C8F85A1B273EB17A0 + 411A2043887281AF9B2E838E962CC3956B8FC1F49FCF6F1816AEBFBCF5D5BE78 + 1FA2C30064C8E65D97E186C1C283B00B80E293171933E4F63D048B2DA8D56058 + 7B9295E1D8C95B0C6F0F263212E582BFFFAA50C40A3A7733CCDBF498E1EBF114 + 8801845201BA016D33B6314C59F78E418AF938032321CD93176DFF9F15E3CEC0 + F4E93CC3FDE5C60C52A11718666F7BCE306FE926583A20CE80BF6B9918582DE2 + 19EE6F59C8C01BF185E1FB8F5F0CFE09D5C41990E32701B4DD9041D19E81E1FE + 41060616F7AB0CDF1944192232EB8933C0FBAB2783A24F3C03C3E7850CEFDF31 + 307CB8CCC0F0D1FE094352612B7106E83DF1C4106776BFC7905BD54D9C01219E + 56403FFF66F8F6FD37C3D7EFBF18BE01FD0F0245757DC419000B716C0000F02E + CE117405CD650000000049454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001A14944415478DA + 63646068F9CF4010D4303218CC80A8BB90C1882CC30832E0FFFF6A9C5A19195B + 19180C44182A0BBC18DA276CC36E005ECB819A174E4966B871E739C392150719 + 7EFCFC7BF1F5FB1FDE40839EA2B80064133A8DAC1906C4F858182A3BB77E011A + A4013204AF014B97063144771F62F075D365D0D19265B872ED3198FEF3F90DC3 + C2F597B7BEDA17EF836280579426C3B665D7E134B24B40866CDE75196E182C3C + 500C0001B0ADD1EBC07414D02090F8E445C60CB97D0FC1F20B6A3518D69E6465 + 3876F216C3DB83898C44C5C2DF7F552862059DBB19E66D7ACCF0F5780A23E158 + 00027403DA666C6398B2EE1D8314F3710646429A272FDAFE3F2BC69D81E9D379 + 86FBCB8D19A4422F30CCDEF69C61DED24DB074409C017FD73231B05AC433DCDF + B2908137E20BC3F71FBF18FC13AA893320C74F0268BB2183A23D03C3FD830C0C + 2CEE5719BE3388324464D6136780F7574F06459F780686CF0B19DEBF6360F870 + 9981E1A3FD1386A4C256E20CD07BE28921CEEC7E8F21B7AA9B3803423CAD807E + FECDF0EDFB6F86AFDF7F317C03FA1F048AEAFA88330016E2D800000AC1E011C3 + F6FEB30000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001964944415478DA + 636440038B371DFFCF8005C4FA5932621347115CB2F9D8FF30075154053F3F30 + 30FC7CCF6096B49EE1FCCEE98C380D58B9F5F0FF403B09AC9A61B469C1050C43 + C09C659B8FFE0F7110C3AB194CFFFAC0E0D2FD9B61FFEA1EB8218C203F873B8A + 10A59911C806F18DBB85E02E011BF0E1C30786F44015A234671F0B653871742F + AA0131BE160C5316EF60C8F012012B9AB1F72F8A8BB2153782C5A73E4B00F3E7 + 2DDD846A80BF93215862E1BAFD603A27D603C580ACE6B50C5A0ADC0CB97D0F19 + AEAEF66788C9694235C0D6580DAC70F3DE530CF1418E0CB88063F17D86B3270F + 324C2E9267C88DF3441860A4A9C0B0EFF80506171B230C4D319DEF50F8113E1A + 0CA5B53319182E64A006A28EBA0A565B4BE6FD61C88B85C83D7EF98FE1EBD76F + 60767BDF4AB0216003A4440518AEDD7E80D580054715C006BC7ACFC2F0EBF76F + 862F5FBE8231883D73FE4E880BFAA62EC2AAD9C2DA99E1D4536D86A42019860F + 5FD9E19ABF7CFDCA307FE97E880B180800E3F4EBFF4101070389D18E70CDF0A4 + 4C34309801C9A950CDE41980A4190400B843EED8DFC8CDA30000000049454E44 + AE426082} + Name = 'PngImage21' + Background = clWindow + end> + Left = 43 + Top = 104 + Bitmap = {} + end + inherited LargeImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003754944415478DA + AD947D48535118C69FDB946D382D0353C391A2E5A65296AC224BD38A1233CD8A + 24FB23C22830028B3EA0FAA32FA22888D08A8AA0C8A8747EACC4CC8FCA9AA3A5 + E652326DA945A465A4B3CDB9EDCEDB3DB7B6DC6AAB5C0F1CEED77B9EDFFBDEF3 + 9E43C18D4662C190ABA00514C629971389397FFB6598F2733C03D8B274167F23 + 6B7E3DC7E5441B549A55A66FBF9921720B682A5042241281CFE743201080C7E3 + A15FAD46D4913518C8C9079D9E0EABD58A919111EEFBBDD0506C63E7C6642B86 + CD665AD8599449B905745CD570E63E3E3EF0F2F2E24C888449FE1C40909D6D37 + D7E9741C203F5B614C5B162BBCA550A3AB64AD7B80F67A9B430536110093BA1F + 82030730C802880820635F235256CC85242218D78A94ED5D6F3F07320C63F115 + 094F77BCEE2D37ABB7743A00DE176B397302196B3E70508E20A914A60D51E0AB + 8C1C64499E12CB17CFE4CCC74ADBDD0F794593A1E75DFF2B8BC5BADEF26CCB1B + 0700F93DCED91B1F0C60126B6A4A090633391909E23C44474D4352BCD41E475B + 470186C2578305FA611AB74A1BCADBDADF2E611884A0659BEEB70062EE4A9162 + 395B4124E2E74572CF874E2B90305F8AF0B0A93018ADD01BE896FC8BA57DECA7 + BB2CA0E0170031FFC0663B989B8BB0E464C7D6ECEE05B5398A83444E9F625C9D + 1227DC7BA408FE13455F79BC09A2450B62299E371FC5A5757B8786F43216B0CE + 610D02D2C42ECD6DD2EBF5A8108B713C4DCEB63365E8FD38E863546DA6BC6597 + C225338233C3C325273BB5EF8EBD7CD999CA0266DBBB286263CC1FCD49AB9A4C + 26AE4D03AA35D879568BBE4F03B87154668FD953D08DC0A961850D0DAA352C40 + E8761F389BD3340D83C180871209B632DF0F80D05525E85164DAE3769D51E2CE + E32F78DDF5012C8072B99309C8DE29ACB16D27930A54B366D901CE3A7FFB1976 + 9F696317DCFC13F0E8441507208398BBAA8040C81AB4C6C73B0274CDC0C43918 + 1D655056D78AC305F7A1E9F1C5EC400DA853415246D4D78E7F951D40CC5FED40 + 7D9D1273775A60B6D0ECB062E58E2A98FB6BFEFD1896576B98CCA5337FBE78BA + 10F05372B71DB5C0A4AC210E525EF314570A151E027E646F03D49701619BBE70 + 15543E6AFC0F8031D9DB44AA184DE9436DC3730F014ED9DB44AAF0CB788F278D + ADE307A42546C3BB39F117F3B1901721951E5420A3517F2ECE6D9C4780245904 + 0A15F57F8C1D37E0E8A90B7F1DFF0D9731DCE879A749380000000049454E44AE + 426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003044944415478DA + ADD46B4853611C06F0E73424465EEA4BA208259A4E1271C9CC3413D30C4BC3B6 + 24439030843EF9412B71EE8B6606912091158512C1425BDE9625960ACD369B9A + 9714EF7923D232342F53D8ED74CED19DD4359D9BFF71E0EC7D5F9EDF7B39E710 + FC7C3E091BAA53D24958338EA0818E9C8E6D0792D4CF08030CA41E2105A13B07 + 442551189B9E633BD6A36C9F1150499A115A10CE027E49D54BFD65098E560174 + 6D46D8707A23A94895F81FE09F2C5FD66AF5DC219990B00A10259F4085B46503 + B2B94C80AE3F7725FE4C20B75CDE8AD1CA4BDB03A6ADD80AA1C3E912A4D4233E + 5A009EB71B5EC894FDA313BF5D4992D43939720B0787A76AB4AD6943160FD912 + A21037504760C4E96B6AC4440430E1EB6B646C06156FBF68C6276706743AC365 + 5D5BDAB7FFAEC0147A23F39C19C219CD83BFEF214486F9B16D7A0375F2248145 + 8D0E4BCB7A9457A96A7AFB27A248121EE8BA3E6FF129B284CCAA25381BC94358 + B00FF33FB7508E53217EF0F2748766C580258DBEEBE1D3AA69AAAB96028A2D02 + CDE226A4948ACCB6EB5DB60C2109DDF03D7270E5626C1037EBB60C075C1C1739 + 9C3D8EE1A18104C7612F5E5735652D2C2C0928209101DA73DA905812C386D0E1 + F44B455FA9A55736C0B5D96588BB9BC4AC84C32134533FFFEC5B6949251C04CF + BC783E6E422F2FDEBDA191C93B7D7D43E72980CF006AF1E7B5403D1BBCFAD61A + CCDAE9A201C9F1E7C8783082E95F7378992F602770AB780CAEEE9E5295AA4544 + 015C0668112BAD0E3701A607E3F0854A8CCB856C5F6691126F9A67313CFA0314 + 4010B67EEC2C7DBF1EBF6AC3CDA25EEAC0B5ABC04E832B3E7493C2E8808D8DF3 + 14E6720C462389EAA61EE415BF47F7B813F8AEDDB01FA0C307D2A16852223843 + 07AD4E4F5D06C4A5D7433BD3B00B80FA24E0AC646E071B81FD490B0C52D3A046 + A9546E27B0367B13A0A8063CAFCE322BA8FBD8BE0BC0BAD99B8A5E8531761A8D + AA4E3B814DB33715BD0AE784EFF8D4DE633B101F71140E1D1166E1EB91AF1E75 + 76AC40A087E251D096E3EC022205DE90CA15DB8EB519C8BFFFC4EAF17F01052A + 05F7E46112E60000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002D84944415478DA + AD947D48137118C7BFA70D194D4D0886A290CC64D6125F58455926152625BE64 + 25F84F044241F8875242EB9FCAFD1309FE911515FD1118999A6E9552BE80ABCD + 7CC934C597693A45D25859CEBDE8EEB6EBEE74735AB9B9F9C0C31DBFE7B9EFE7 + FB3CC71D0194D0F02AAE139E74112C80A6656E1B5917363B4031C9E7C93717E0 + 2ACE5E05012B8098DC3AE3E0F34C8147008290AF0B322ECAF0CB0C44842C0124 + 794AB3D54AF1B555D984470077CE5971365880242FD6927E3C8E5FA9ECC0D8CB + 9C8D03D68AB3695858AAA55E5220E34402C451A1785AA51E1C9BF8216444C840 + 01BF7478645A61EDC8D77AB522BD5186D4CBF5483DB28713778DD1713D6ADE7C + 32E926F54324693B4776E67FFDE7046B9D93B665F76612678B1B21114720E560 + 8CB39F628B3481791309A3994265AD46D13F387194A6118E9E8B73AB00367A65 + 1DAEAB713DCF2AAC47BC640792F64573CFDC2855E2F0FE188822C360B2D86034 + 513D771FD6CE30A5D70CA0DC096045B6F8ADBF22DD4F1907C92CFA88D0ED9425 + 2B2D915F7CAB0A21C182797F7F3FC1A10371843F2F00D5B52DC5068351CA00CE + 7000CA2E73EBDC35A38572ECCA4BC28269D634FDFDF7564BDB0582277D241247 + 87668B44E2DBDAD149F9C080F6240388E7008B94CC63713658404D633AAE3D9E + 864E3785672552E79457CBC7210C8BACD068DA4E33003E07305B651E8B3B008E + F7B633478191EA0C67ADA84C8D57EF673132F60D0C8020BCFDD9FDEFE3BCFFA2 + 1357CAFA99176E75003616358DBD74F6B1D8D58773DD407002EC761A752D7DB8 + 59FE0EBDBA40C40B7BE13B80151F2A80AA458DBD8524AC24C5A40DA70ADEC2AA + 6FDA04407B1210A4E66E879B816DB9060EA2686AC7930AA58F8065F70E80AA0E + 883C3FCB4DD0D0DAB5090017F78E60A7B0A7CDA059F3D947C01AF78E60A708CA + 9CC287AE3EEF01E9C9BBC1EB4EFE4BDC15F225BCC18709A41454F712D7EDF309 + 90228D428552E5B6D76B40C99D071EF7FF011F27EEE880BB1D92000000004945 + 4E44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000035D4944415478DA + ADD4594C13411807F0FFDA106D04D1171102622D621B513952EF03F0C26A3DAA + 46146FA3F189071AF561F1418517431362448D263E98D4A8C85515E24502DA12 + 2F102114CA5140031510012968BB6D9DDDD2033458A95F32E9CCCEF4FBCDCCCE + 0E0564D831A148A7BC1945B180DD4E83B1016606F8490A5BB71396B13A065949 + DD468ADDE6F815CECCFC37C062A5B9E443E6914423093D8B33391B9E8038B970 + 50777787FFB800A4CB014395571BD35CA670015129EA21B399E1EB73E594D740 + 47850221FB4B1D6DDD0F18BA69080E93767105161F8A467ED6160E884A59342C + DB10CDBFA77E8396FCDDDE039FB50A84A6B881E62E1AC2238EF66289880364A9 + 45D89E140B5144306EE76A742D6D3D41E4455A02FCF9CA86C6CE22F39B13FA51 + 80B19FC6AC7D8E24ED1A05661F70038D5F68CC3BEA68AB32A4503E346053FC42 + 2EB9673419BA91F7F8BDA9B5BDBBDE62B1EEB5BC3DD1EC023AFA68D7B6486304 + 28AE32B8FEE8D98E5B26C642511812568A5DFD8C953D7214BE9B2C181C6270AF + 405B54AB6B5B470E4A283E9CEAE7804FBD34C29CB3FE434CC71448130538972E + 45D2C97C6C8C1761D5D248AEEFBC528D3504160A42601AB662D0C47CB872A3C0 + 48BA1E11208703DABED2083FE8DE163DD996C8A31E2079A652C9119BE898398B + CC9F377378E7E638FED98BB99811E8FF9DC79BE4BF7A4534C5F39B8C0705A567 + 0706062504D8C301AD3D34E61C7203F5461AA263A3015D27ED5A91383813E132 + 31783CCAD4F9A56FEA70C531CA4F7253288A0C960B85A24BFAA6F6CCBA3AFD16 + 02C470400B398A730FBB013699F8B81B60DF8352291F05E43D9321ED72138C5D + DF702743E2EA3B936340508840A5D556EC22009F039AC851747DB15EDC4C2CC0 + 5E2F6CCCD9968F56B51B57646BF0F0652F1A5B3A40008A9AE865E704C6C6B5FB + 6F713ABB96BC70B313F8B7C87B566D97AF5F34FA617F2510180B1BD982C2D21A + 5CC8798AEAD600C40455C377804D5E9F8AF2520D96A45960B630A458B135F509 + CCDDCFFF03F07A15304DC3551B5E906F267980438A9EBFC62D95DA476064F64E + A0BC10101CE9E5565052F6EE3F001EB37706BB0ADB66235E68AB7C04C6CCDE19 + EC2AA6EDF88C57EF6A260EC8D62E805FE5DADF927B221F434B7C58818441F9D5 + B871C7F904244822A05297FF75EC84818CACEB5E8FFF05E443F1E83B7D465C00 + 00000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002484944415478DA + 6364C003166F3AFE1F975CAC9F2523031100A72290E1E18E229812FFFE3030FC + FDC1601E398BE1FCCEE9042D6124C770863FDF219624AC26680923B98633FCF9 + 01B1247D375E4B1829319C11CA36CB3B8DD312464A0D078B01B159C96DAC9630 + 1234FCF7671483406C462436B29869ED7B0C4B184186CB0B8B3158E8FD43351C + ACF93BD186C3D8A62DFF512C015BF0E1C307067D65358425641ABEE86E3AC3E4 + E533302D88F1B56098BA6427839E922A8385D637B20C9F7EDF9721DCDF81C13D + AC08D382300F533067D68ADD109F283F25D9F09C580F86298B7730CC5BBA09D3 + 8200274378D02F58B71F6289EC55B0E699477831E21E246FC534156E786AB80B + 587CF6CA3DD82DF0B2D5453160D9E6C360432EDEBD0576193A00B914261F1B60 + 8FC8471B0E62B7C0C5420BC390353B8EC15D860D805C1BEA690DE74BB82E63D8 + 3FD399A1A8AE0FD3025B637514CD9BF79E4471192E0072B18FB339981DD2F492 + E1ECC9830C938BE41972E33C512D30D551826BDA7DE41C8ACBB001EF9AA758C5 + F3625518E273E632305CC840B540475516CC3972FA32DC45F800C8B520C3B081 + 57EF59184A6B67C22D015BA02227C170E6D20D06070B7D8286834042EF47B005 + 20C3D0C18F1F3F19BE7FFFC1D0D6B7026C093C279BE86910653808E44CFF81D5 + 0298E1DF7F40F08C793B507D400CD05157612899F707C3026C86C37DD0377511 + D1AE4F8AF663587054016EC1DF3F7F197EFFF983D570701C106D3212304EBFFE + 1F9424D14172AC33C3DCC57B515311391660050633202D1024C3A96F019AE120 + 00002C04F4EF2EFAA3A70000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end> + Left = 75 + Top = 104 + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage + Left = 376 + Top = 136 + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage + Left = 408 + Top = 136 + end + inherited StatusBarImages: TPngImageList + Left = 16 + Top = 152 + end + object PreviewActionList: TActionList + Images = PreviewSmallImageList + Left = 344 + Top = 104 + object actPrimeraPagina: TAction + Category = 'Ver' + Caption = 'Primera p'#225'gina' + ImageIndex = 0 + OnExecute = actPrimeraPaginaExecute + OnUpdate = actPrimeraPaginaUpdate + end + object actUltimaPagina: TAction + Category = 'Ver' + Caption = #218'ltima p'#225'gina' + ImageIndex = 3 + OnExecute = actUltimaPaginaExecute + OnUpdate = actUltimaPaginaUpdate + end + object actPaginaAnterior: TAction + Category = 'Ver' + Caption = 'P'#225'gina anterior' + ImageIndex = 1 + OnExecute = actPaginaAnteriorExecute + OnUpdate = actPaginaAnteriorUpdate + end + object actPaginaSiguiente: TAction + Category = 'Ver' + Caption = 'P'#225'gina siguiente' + ImageIndex = 2 + OnExecute = actPaginaSiguienteExecute + OnUpdate = actPaginaSiguienteUpdate + end + object actZoomIn: TAction + Category = 'Ver' + Caption = 'M'#225's zoom' + ImageIndex = 8 + OnExecute = actZoomInExecute + end + object actZoomOut: TAction + Category = 'Ver' + Caption = 'Menos zoom' + ImageIndex = 9 + OnExecute = actZoomOutExecute + end + object actTodaPagina: TAction + Category = 'Ver' + Caption = 'Toda la p'#225'gina' + GroupIndex = 1 + ImageIndex = 4 + OnExecute = actTodaPaginaExecute + end + object actAnchoPagina: TAction + Category = 'Ver' + Caption = 'Ancho de p'#225'gina' + GroupIndex = 1 + ImageIndex = 5 + OnExecute = actAnchoPaginaExecute + end + object actToolHand: TAction + Category = 'Herramientas' + AutoCheck = True + Caption = 'Mano' + GroupIndex = 1 + ImageIndex = 10 + OnExecute = actToolHandExecute + end + object actToolZoom: TAction + Category = 'Herramientas' + AutoCheck = True + Caption = 'Zoom' + GroupIndex = 1 + ImageIndex = 6 + OnExecute = actToolZoomExecute + end + object actMiniaturas: TAction + Category = 'Ver' + AutoCheck = True + Caption = 'Miniaturas' + ImageIndex = 11 + OnExecute = actMiniaturasExecute + end + end + object PreviewSmallImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000F14944415478DA + C5D2A10EC2301006E01B4F30893C39C59619EC70937B843D014C829B0339DEA0 + 1289638EC9C9E1160C9553A43882A0B45DC80223A30112CE346DFA7F697A6770 + CEE19B327E0A8C663BB5A14506348D8CE7CBDEB4E0DBB96D7402518010C5A405 + C8B0840F9B493710FA08F1E21190E1D0B7C5F9F23D10780849D200F7705102AC + D73A8023005203F73065A08022D3003C0B81AC08A0E3810C33115600156BAE01 + 3888E2A9F50BDC71CE07EE105875025A01B09268007D01A4CD1F48E4DAB3809D + 657F35001440963E764122C78BA50798268ACF6ACF8142F6F97B400E8B9AC617 + 93887EC23B814FEAFFC00D0E3CD3E1153EE1F30000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000A34944415478DA + 63FCFFFF3F032580912606303232628839545CF8BFBF5D9F912C03409A1F5C38 + C0707F7B3EE90680342778E83334744C24DD0098E60B371818366C20D10098E6 + 071F18C0065C384082018E9517C19A3F0035830D7800A44F90E802A3BC13FFF5 + 8CCC193EBCF8C8F0E00503C3871B0B480F039021FF9834183EFC00721E906100 + CC9077BF34C837006EC8AD13E41B00020A1E13FE136D002960E00D000045F48A + E13771044B0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000A44944415478DA + 63FCFFFF3F03258091260638565EFC7FA0C380115D1C9B5A9C067CFAF683E1DC + 240B46B20D48F0D06798B4EE248A21241BF0E10703C3A26D0843483220C0419F + E1C10706860F407CE91AC410920C70B0506078F0829FE1C2838F0C1F1E3C009A + 7480E1FEF67C46A20D30D0506038708301AEF9C18E02D25C202020C070E1C207 + B86692C3800118800F6E2034936CC0830BA89A493680A294480A18780300CF22 + A8E18A4EF6A30000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000EC4944415478DA + C5D2A10EC2301405D0DB2FA012F9246E95C8E290FB04FE8049703890842F5850 + 2882021CB5185210044725B220086E74908D40C252020937A97BF7A479792C49 + 127C13F673A0D65E27AA27D8EBA06CE97C70D10D5821703A5FB01A54D92B1085 + 84A813633F6B16038D7A80C178F984A440A34EE8F43C017B0186D3079202A124 + F4FB1E402803180B58F736DB3B72038403620F405609E65082364758639CA440 + 42425608F1C803106E50ED9097CD3CBAFD40106132F10038E7D0DAE6E56C07A2 + EC80B90700B740B37B9433801CA07C00A39FCB19C039412B0FE0DD25A6709A42 + E0D3FC1FB8020318D0E1923D9C4B0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000017E4944415478DA + 630C9B1C9ACFC0C03081813C50C00834E07F7E400E51AAFFFEFBC3F0EBDF7786 + 9F7F2138C9268F01C58073FBBF113444C9EA0B58F38469B3192E2DBB8C69404E + AC07568DBFFE303058F86431D44EB264F8053460DACC25B80DA89FBC1FC38092 + 144706FBC02C86F27E03B00BE6CE594B9C0B4036FFFC0DA15D43B31872BB95C0 + 062C5FB09B341764C4383278476631A4754882BDB076F111FC2E40B619860363 + B318125A05187E026362CBD2B3A4B92036D491212C218B21B2999DE1C7DF6F0C + 7B565CC76E4072B807D8E6BFFF1036FFFE0BA16352B218021BFE82C3E0F0EA07 + 080372FC3218FEFEFFCD70E5D07F8698200F86FE79982E08F4756448CAC862F0 + AA05A5836F0CA7D6BD421890E6130F36F5DE311E86303F0F145B616C1048C9CC + 6270AE7A05567B71E3678401F19E6160C1A7274519E62DDD843725DA943F04BB + E0C696BF080322DC7CC151034BE390F4FE0DCA47D07FFEFF01D37F81F4EDAD8C + 0803829C5DC04993540033207F57D36EB2B2B35B9D6B0100103839527F8C36D7 + 0000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001714944415478DA + 630C9B1C9ACFC0C03081813C50C00834E07F7E400E51AAFFFEFBC3F0EBDF7786 + 9F7F2138C9268F016EC099973B18F253E4198E6ED6C4A9D9CEFF36C3C4390F19 + 64793519264C9BCD7069D9658801D6962A60CDC40290216B171F411880CF05BF + A0CE05D17E619FC09A05D8C519E6CE598B6AC0B9FDDF8876018BEE6986E50B76 + 631A9013EB8153D3AF3F0C0C3F7F3330D807663124B40A607A016640FDE4FD58 + 0D2849716458B86607C3BCA59B18229BD919B62C3D4B9C0B603683E8E51B2006 + 0436FC65D8B3E23A692EC888716458BB05628057ED1786C3AB1F200CC8F1CB60 + B878F0178A0B906D86E1CD3B20063857BD6238B5EE15C280349F7886EB8799F1 + BA2036D49161C76E880136E50F192E6EFC8C3020DE338CE1DE311EB001D86CFE + FD1742EFDB0F31C0B4E43AC38D2D7F110644B8F9323C3D29CA901CEE81A219A6 + 11C63E7604628051F16586DB5B1911060439BB304C9BB984E88404033003F277 + 35ED262B3BBBD5B9160000C8E01B524AB937870000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000E14944415478DA + 63FCFFFF3F032580717019C0C8C8086787B4DDF8FFEBD76F869F3F7F33EC6C37 + 824BA05B88D300BF86CBFFA3A35419A6CFB8C870A0CF9C7403DC2BCFFD8F88D4 + 66983DEB34C3B12936C41910DA7E13EE6C100E0D37609837E7180358EC0708FF + 6278B0218011A701FE8D57C0CEFEF68391E1DB770630FD1D88BF7C07E26F8C0C + 6B17AE6178B1230CB7011E55E7FF836C86B9C23FC48661C9BC5D609B7F40F187 + 0331B80D400E03DDF85DFF3D039D1856CEDFCCF0706320E981A816BEF5BF8BBF + 07D8D92F7786936E80BCFFFAFF30677F3C184B9C01E480616000007F3BB6E1E0 + 0AF3B40000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000714944415478DA + 63FCFFFF3F03258071D4002A1B10DA7E13CC01897DFDFA83E1DBB71F60FAFBB7 + 9F0C9F3F7F03E3F7FBA219F11A1013A500E77FFCCCC8F0EA1D23C38BB74C0CCF + 5E3131AC9E3397E1F7E914DC0684B4DDF88FCBE62F9FBF33FCF9F397E1FFF974 + DC060C7C208E1A401E0000EFE473E127272ED00000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C74944415478DA + A5934D4B5B411885CF5D9982288874EB0F306E5CBA9A646514E33536264AE456 + 5184528AE0424A043751FCC08228E24788894631D5D6D12C5C08EA2A74512AD8 + E4070822EE44A3E255CC386F24264AAE5978609881B9E739EFCCBC571142E03D + 5208A0284ADECDA08FB9E4342087EFF3C04124772F139C1790319614C3DCE456 + B116E2D0EF11CF051502FCD7BA54F37A98C3E951110E70783A5584FC3C2E0155 + 0501DB534C34389F92DD9A342E7068DD2A96FC1CD296AE44F3EE470C019B934C + A8AE6CF2E29C9C3B6C5809EEC0EEA84194C7E212506508D8F8C144735B36D93F + 232B69B72212DE43BDBD1A5BBFFFA1C7B7AF3C03424396C6B252F08714709184 + F94311E22DEDD9E4C0FC0E9CEE1AFC8AC4505B5789E876025F867300D1694BFA + CCA49FCB1C046AD5B2C94B813D383E3D25334B0576778FF17524074047C8944D + A2B3BB3C36E8BA8E3BFD363DEEEF74DC5C5F2179718ED89F4B7C1B7B0520AD8E + 3241C9F4B191F93A798943F90EBDE37900A4908F0987CB6A6826FD3D02FA260C + 0024FF201374DBF9CCA767B7F28E4CF07C7F03409AF532411796319391747266 + C2C77298651F240AFE4C53FD4CA4E48BA464FBD1CBD09ACCB29D132F5AF93D7A + 04D7A238F0C903C3480000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000014F4944415478DA + 63FCFFFF3F03258011640063D1656591AFEFEE90AAF90DB7900AD800D1F483FF + E50D75712A4C37E6649879F63B9C3E76CD99C14A6B2FC3C3F39719E006B0DE3A + 47BE174006BC9E698F2221E5D8CFF06C7F219CFFEFDF7F865FBFFF82D9BF7EFF + 01B3F58266A11AE038F32658C1FE7475B801303164B03A4C8661D791F30C257D + A709BB006633CC56980B0E9CBC8C6900BA0B9EEC2D60709E7D0BC305F37D4419 + 8E9DBB46D805F776E4826DFBFEE337C4057FFE81E57EFFF9CB70EECA2DDC2ED8 + 95A4C220EF3689E1EA867486A0158F315C30D19197E1CACD7BD85DF01BECDFBF + 0CAADE5319CEAF4E81DB0CB215C486A9B979EF216E17AC8B9065D00E98C97072 + 590243DCA657182E68B76067B8F7E809AA01CFA6D8A084B661E81C86C38BE2E0 + 36836C05B121B1F097E1C9F3E7A8063CE8B764D8B8F714DC1690644F9129DE54 + 886200454999120000B514248103E3F25A0000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 371 + Top = 104 + Bitmap = {} + end + object PreviewLargeImageList: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001894944415478DA + 63FCFFFF3F032D01E3F0B4C0B1F2228AE0810E03467C8638545CF8BFBF5D1FAB + 1A9C1604D9E980D97D93A6303CD851C088CFF007170E30DCDF9E4F7D0B408683 + D481D450DD0298E1DF7EFE679831732A752D4036FCDBAF7F0C8BE64F27CF82AF + 3FFE33CC9C3515C50274C3BF03E9D5CB66906E81BB9936C3E7EFFF18962D9E0E + B7009BE1DF7FFD67D8B26626E91658E96A022DF8CFB079CD0CB005B80CFFF693 + 8161DF66322CD055D160F80C0CA2035B663228183830E032FC0B50CDA9DDB348 + B74041469DE1D3B77F0CE7F6CD06FBC028EFC47F1F6B430CC3BFFEF8C770F5F0 + 1CD22D10125265F8F0F53FC3BD9373E07100B2C44A4F1FC5F0AF400B1F9C9A4B + BA054CEC2A0C1F813E787B791E4A2A0259A222AF07371C64D19B4BF348B7E0F3 + 5F25A00FFE31FCBDB700231F802CE113D0061B0EC23F6ECD27DD82C79F1418FE + FE03721E2CC09A9341967C63D064F8018C0F901A922D78F04101C2C16101CC92 + 77BF34686701DC925B27C8B0005804C3003E0B4040C163C27F922CA02618B580 + 200000A0D9B0E00198A13A0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000FA4944415478DA + 63FCFFFF3F032D01E3F0B680919111AF66878A0BFFF7B7EBE35544B60520C31F + 5C38C0707F7B3EF52D00191E64A7C3D037690AF52D8019FEEDE77F861933A752 + D70264C3BFFDFAC7B068FE74EA59806EF87720BD7AD90CEA5880CDF0EFBFFE33 + 6C593393720B7019FEED2703C3BECD145AE0587911A7E15F7EFC6738B57B16E5 + 3E30CA3BF1DFC7DA10C3F0AF3FFE315C3D3C873A7100B2C44A4F1FC5F0AF400B + 1F9C9A4BBD5404B244455E0F6E38C8A23797E651371F802CE113D0061B0EC23F + 6ECDA77E4E0659F28D4193E107303E181E2CA04D5904B2E4DD2F0DDA5900B7E4 + D609DA5900020A1E13FE53640135C0A805040100D3AF21E00AC8E9BE00000000 + 49454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000012E4944415478DA + 63FCFFFF3F032D01E3F0B6C0B1F2E2FF031D068CF80C20E440BC16D8955FF9FF + F5C7578673932C705A429105B6400BF2037518DA979FC469094516D8945DFD5F + 10A40D66E3B284220BACCBAEFD2F0CD202B37FFDF9CFD0BBFA148625145A701D + 688126D8F0EFBFFE337CFBF99F61C18E33289650648155E98DFF39FEEA70C3C1 + F8D73F862D47CFC32DA1C802CBD29BFF533C55510CFFFE13E29B63972E822DA1 + C8028B929BFFA39D55300CFFF69381E1CB8FFF0CA776CF62B8BF3D9F916C0BCC + 4B6EFD0FB251C269F8831D0594F9C0ACF8F67F4F73799C86531C07A6C577FE3B + 1AC8E2349C620B4C8AEEFEB7D496C66938152CB8F75F5F450AA7E1145B605C74 + FFBF8A8C044EC329B6C0A8F0C1FFF73736E2349C620B0C0B1FFEBF30418176F5 + 0135C0A80504010058FB49E08BBA20470000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001C24944415478DA + 63FCFFFF3F032D01E3F0B4C0B1F2E2FF031D068CF834DA965D46D178A85307AB + 7AAC16D8955FF9FFF5C7578673932C705A02B220D44113CCEE9B3485E1FEF67C + E22DB0055A901FA8C3D0BEFC244E4B28B2C0A6ECEAFF82206D301B9725145960 + 5D76ED7F61901698FDEBCF7F86DED5A7302CA1D082EB400B34C1867FFFF59FE1 + DBCFFF0C0B769C41B10466C1D71FFF1966CE9A4A9A0556A537FEE7F8ABC30D07 + E35FFF18B61C3D0FB7046481978506C3E7EFFF18962D9E4E9A0596A537FFA778 + AAA218FEFD27C437C72E5D045B02B2C0565F0D68C17F86CD6B6690668145C9CD + FFD1CE2A18867FFBC9C0F0051824A776CF6290D5736630505365F80CE41FD832 + 93340BCC4B6EFD0FB251C269F8831D05601F28CBA9307CFAF68FE1DCBED9A459 + 60567CFBBFA7B93C4EC36171202AA2C4F0E1EB7F867B27E790668169F19DFF8E + 06B2380D8759C0CAA9C8F011E883B797E791668149D1DDFF96DAD2380D8759F0 + EDBF3CD007FF18FEDE5B40AA05F7FEEBAB48E1341C66C1B32FB20C7FFF01390F + 48B4C0B8E8FE7F1519099C86C32C78FC4916C221D502A3C207FFDFDFD888D370 + 8A2D302C7CF8FFC2040582F5C1E34B7BE17C922CA02618B5802000000BFCA8E0 + E6ADB53E0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002344944415478DA + 63FCFFFF3F032D0123C882F02961F940F6042A9B5DB03267D5449805FFF30372 + C832E51FC35F863FFF7E31FCFEF713887F41D9BF18526C0A19DEBF7ACF489105 + 7FFE430C86190AA3A74C5FC87069D965FC169CDBFF8D24CB642C5EC32D993173 + 397116E4C47AE035F4EFBFFF0CBFFFFC65B0F2CB63A89C680CF7C1DCD96B29B7 + 0066F89C957B18E62DDDC450DAAF0BF7C1C2B99B89B7A07EF27E9C9614275932 + 2C5A77006C4141AF3ADC07CBE6EF24DF073097FFFAFD87E1F7EFBF0CCB371F06 + 5B90D3AD08F7C1AA85FBA9E383CC48638635DB8F812D48ED9060F8FD1F62C1C6 + C52748F701BACB21ECBF0C9BF69C045B90D02E04CF0FDB969EA78E0FA2FD7418 + 761D3A0BB620A695079ED9762FBF8ADF0250EEBCB0FF27D8825F409722BB18CE + 868AEF3F7E016C4178332B3C0EF6AFBC8DDB0258D6BF72F03F435AA42B43EBF4 + 43387D10E8AAC670E4F465B005418DFFE1417464F523EC1620972B370FB33124 + 8638E174394CFCD4856B600BFCEA7FC283E8E4DA179816E40664A2145AF78EF2 + 30C404D8E3351CC43E7FF526D802F79AF7607D20FD17367CC2B420D32F19A544 + 7C745C8821CCDB06AFE120F6959B77C0163855BD84177C5736FDC0B420C93B12 + A5447C794A9A21D0CD9261FDAEE30C8400C802DB8A4770BD37B7FCC3B420D633 + 18A5D87D7B4611AC915860597607ACF7DFFFBF0CB7B732625A10E9EE8BE20314 + 1AADDCC7C506190E02582D087175A78AE1382D087076045714D402E816E4EF6A + DA4DD54ADFADCE1551E9D31200008EE53CFED5D704CB0000000049454E44AE42 + 6082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003154944415478DA + B5956D48536114C7CFC89022883E288415547E48F243651451425A6A929361A2 + 0E13D14553985AA411944A5A4804622AE9AC25CBDCD0125F4B526CD87C2F75E8 + 544C83B23EE45829E6667AEFEEEDDE3377756D6B1BD98167CFB37BEEF9FFCE39 + CF81CBA3691A783C1ED8B300F1043D28F5B3EF64ED50390D9A14877ED4667F62 + 4B633298FF45EB9D1FB579B8EFF7CF71A8CFBE33D8DF0931A20E7BEE2B3592DA + 0716009D2190709EF43BDE902EF48562E5B45544F12D1DFAD65B5CC401C8CA96 + 425BFD4E20A8152099C5EE974E5D8539DD1CCF066011D7FDF400EF1D24279428 + 914177B39FD99FE08BCFBECC52603018F15C505803F5B55B51BCB44C0E238A51 + 5BC049FE04C88B4428CE9A716909F4FA1F60342E81EC5987154037E7012B0401 + 8B8B065CEC595AF91A140A0ACAA54AFB00D658C8FD7C3127AEFF6E0634B60E73 + 80E4A85D306FF0E4C4170D06A8AC56A1385B81EC519D7DC090CA5C6E5AE16748 + BB1C0125152D56FD7E98B91764EA3D78B1164B8A0F42F1A7B907711A57F6F580 + 5CD6EC182049388781BCC352F3A80D8BED4E1045D1B029A002CFF36F13813499 + 20242E0BC4F77C40C1B4CA29C002B10760C54913059EC71E73E2CA66353CA96E + 02518117D4CA55AE011C65CE8A13A4094892427182D95FB47623E0E2DD6DD058 + D5E71C905BA202572C5578940199A0A1BD0F01B1F99BE155F5B0FB15B0D912A6 + D5AC194182A902AB612B61CE2D6F061010759B8676E5987B007BE224D722F36A + 530F22203277195435531BD7A278BE3FDE87AA578380F0EC05E87A3EE35A05AE + 646EB96CF5BB11049CBDA987FEBA6FB68034412A6854CB1CC01D7176927A87C6 + 1010786306340D0BB680D44811683B6904B041F9659D2EB52832D817C7F4FDC8 + 04024E5C9F066DD32F5B40F279214C756D811461A85B9913ABEF69C63F20E068 + E6384CB650B68084F00BF0A9673B2445075B055314E5549C7DAE9D9C46C0916B + A330F592670B1086F1E16B9F1724084E637071D5804B2D0A3ABE1B77A780E890 + 30981DF001213FD02AB3BF5D36C5C45ACC29407026083F141B657F0232DAF2DA + 8BFE5D76CD427342D63EFAFFD37E031AD161FE86E3B8C60000000049454E44AE + 426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001324944415478DA + 63FCFFFF3F032D0123DD2C606464C4A9C8A5EF22862BF614E9E3D480EC68A22D + C8F05765F8FDE72F10FF63888B5ECEC0702183BA16247B2B810DFF03B424297E + 15F52D887357001B0EB2243D790DF52D887296051B0E0AA69CF4F5D4B720D45E + 1A6CF89FBF7F190AB23651DF82006B09B0E1205F94E66D21DD02D7FE4B783384 + 8F85283C88AA8AB633B8C459E254BBBB508F11AB05C8491116A1B06081B1C172 + 28FCBF0CBF7E0331880DA4174F3ECBF0FF7C3A760B909322398683D82B675CC0 + 6D01725224C770107BFD9CCBB82DD8B3E838F6480686B7A52637DCF0DEC683F8 + A20BBB05845291892A27DCE5935A8F503F99EA2BB2C1836546D771EA5BA025CB + 0C0FE7797DA7A86F818A04034A52A4BA057222A84991EA1648F2FF42498A54B7 + 002309936A01ADC0D0B700000ADFCFE01EDA3C000000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000007C4944415478DA + 63FCFFFF3F032D01E3A805A3168C5A80B0C0B5FF12D56CDA5DA8C788D5829C20 + 751485BFFFFC65F8F1F30FC38F5FBF19BE83E89F501ACAFFF6E317C3B7EFBF21 + F40F087D68CD3D86FFE7D3095B408EE13F7EFD6138B5E911610BC8351C04F05A + B067D171AAC401560B6805462D18B560D4023A5800007B57E2D1072B1BE80000 + 000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002E84944415478DA + A5957D48144118C69F2B29B3FA23222C02598AA48F3B4A304A839C120C925022 + 4AA2F2B3B313FB80A0C20E333F52FC2348C24AC49490D4C414394D4D4F33112B + C1F0233090C9D0142BA920AFDA73DAD975E5923BDDB5178679776EEFF9CD3CF3 + CEAC8131061E0683010B457126392175D699C7CC186B6BB9BBF7544D595727A0 + 373A21D238D8DF83CE4EDA27014CFF0D5067BD7C198CD3D3C0C9984870404707 + 057FF6F242DFDCD5E805CCCEFA5517C5A93805D0DE4E117F4EC9E7AE4617E071 + 2E615167668520C1E4BCAD8DE26C929237355124E7B41A160528CD21CCD59658 + B392DBED1489C94ADED048B1CA0758B254B12BFABABD5C33E0D12DC2DCD9D2DC + 4C61B9A0E4F5CF284E4707E3F3F8A86C9704306906487BC03CD992743102EF07 + DEC2564761B61CC4C8872154D7505CB96337680614A513E6C9164B72388606FB + 516B93C0E6FD181B19465535C5B53C1D80C234C23CD992981486E1A141D4D44A + D6252816555651A4DCD5012848254C8B2DB171BB31F96502159514D67C378092 + AC03EA356094DA6C5DDFB712A6DAF2E923C5BED07088E21F74B5352260AF620B + 1FF73706E0C7B749943DA148BDE71E201F289EAB1B6A4E6F35E4A710C66DE1EF + BD68A8C19E9030389D22DEBC6C812930184E0936D0F31A9BB79AE4F1E29277B8 + F1C03D40AE163554CFF975C06D718AA23C732EA2E4A22CAEF4A23CFECB3185D2 + 328A9B051E5610142418FD77ECFA07A2568B1671DE2AAAC69151E86193F98686 + 84085021FC37AD3397DBD4149EDABE23AB689E2AE29E87860AD8B27DA76E7187 + E3276CCF45643F5CA04CF3AE1276284C80DF267F5DE27CBCBE05C829D1700E6E + 5F262CFCB080F51BFD348B8F8E39F05BF4764877D10A4D072DF71261114704AC + 59BB6E41711E9DDDC0065F44E9BA4DB3CF1376345280CFCAD5F38AABB397D240 + 09D0AF19C023C342D8F163829C7B12EFEEF586691BA2F8A773511FFD34B3B492 + 085F7C9D1897055DC3555C2D6FDD001ED678C2F8C99E96FEC2783F93BB8ACF05 + FC0592430CFE3F77C7A70000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002154944415478DA + 63FCFFFF3F032D01235D2C602CBAAC0C64D7F072712450C3D0CFDF7E2C00522D + FFFB74EFC22C98AF2B2B98C0C6C945B261E9C69C0CC71FFF65B0946506D3330E + D832F4B3FB3354FC0D5E00B420116C814EF9A9FFD77EB2533568141F5C62B8BB + 2196116EC1F79B37A96A0108A05870A5D30CAB22E580C5208558E5FEFCFDCFF0 + F7EF3F20FD0F4C83D9FF20B475CA06CA2CC067F8A153D7192A67DD24DF027C86 + 83F0C153D7186AE7DEC1B4207DF34F148366FAB2A358802E8F0D541A7D653874 + FA1A43E382FBA4F900E84086BFFF10AE46713D8C0D96FFCF70F8F4558696C50F + 89B7E0F6BA58A20D07B10F9FBEC2D0BEEC09F14174634D34D8A0825D7F090651 + 9EE6078623400BBA563E23EC0350B0A8062D66B8B232922897C3C40E9FBECCD0 + B7E6257E0B6061AE11B294E1E2B270A20D075B70E612C3C4756F302D8858FD03 + C592F97E2C0C3AE1CB19CE2E0E056BCCDECD4430888AD45F311C3D7B9961CAC6 + 77D87D0073F9AFDF7FC1861AC6AC6238313F08CDF5FFF146FA89F35718A66E7A + 8F690136EF9AC4AF61383A278068C341F4E94BD7302DB8D066CAE0B71C35152D + F4FECB6091B88EE1D04C3FB0E6CC7D9C0483A84CED09C3B92B37302D38DB6C8C + B3D0DA37CD87289783E44100AB05271B0CB1962B76E99B18764FF626DA709C16 + 1CABD5673875E901C3EF3F7FC0F8CF9FBF40FC075C2AD62728420DFC0B351448 + FF83B071D5E91816D0B4C2A1250000D60307FE2E5DCC1C0000000049454E44AE + 426082} + Name = 'PngImage11' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 403 + Top = 104 + Bitmap = {} + end + object frxReport1: TfrxReport + Version = '4.3' + DotMatrixReport = False + EngineOptions.DoublePass = True + IniFile = '\Software\Fast Reports' + PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator] + PreviewOptions.Zoom = 1.000000000000000000 + PrintOptions.Printer = 'Default' + PrintOptions.PrintOnSheet = 0 + ReportOptions.CreateDate = 38658.858023541660000000 + ReportOptions.LastChange = 38658.858023541660000000 + ScriptLanguage = 'PascalScript' + ScriptText.Strings = ( + 'begin' + '' + 'end.') + StoreInDFM = False + Left = 16 + Top = 200 + end + object frxBarCodeObject1: TfrxBarCodeObject + Left = 16 + Top = 240 + end + object frxOLEObject1: TfrxOLEObject + Left = 48 + Top = 240 + end + object frxRichObject1: TfrxRichObject + Left = 48 + Top = 272 + end + object frxCrossObject1: TfrxCrossObject + Left = 80 + Top = 240 + end + object frxCheckBoxObject1: TfrxCheckBoxObject + Left = 80 + Top = 272 + end + object frxGradientObject1: TfrxGradientObject + Left = 16 + Top = 272 + end + object frxDialogControls1: TfrxDialogControls + Left = 80 + Top = 304 + end + object frxTIFFExport1: TfrxTIFFExport + ShowDialog = False + UseFileCache = True + ShowProgress = True + Monochrome = True + Left = 120 + Top = 384 + end + object frxPDFExport1: TfrxPDFExport + UseFileCache = True + ShowProgress = True + PrintOptimized = True + Outline = False + Author = 'FastReport'#174 + Subject = 'FastReport PDF export' + Background = False + Creator = 'FastReport (http://www.fast-report.com)' + HTMLTags = False + Left = 160 + Top = 384 + end + object frxBMPExport1: TfrxBMPExport + ShowDialog = False + UseFileCache = True + ShowProgress = True + Monochrome = True + Left = 192 + Top = 384 + end + object frxXLSExport1: TfrxXLSExport + UseFileCache = True + ShowProgress = True + AsText = False + Background = True + FastExport = True + PageBreaks = True + EmptyLines = True + SuppressPageHeadersFooters = False + Left = 40 + Top = 384 + end + object frxMailExport1: TfrxMailExport + UseFileCache = True + ShowProgress = True + ShowExportDialog = True + SmtpPort = 25 + UseIniFile = True + Left = 80 + Top = 384 + end + object frxRTFExport: TfrxRTFExport + UseFileCache = True + ShowProgress = True + Wysiwyg = True + Creator = 'FastReport http://www.fast-report.com' + SuppressPageHeadersFooters = False + HeaderFooterMode = hfText + Left = 232 + Top = 384 + end + object frxSimpleTextExport1: TfrxSimpleTextExport + UseFileCache = True + ShowProgress = True + Frames = False + EmptyLines = False + OEMCodepage = False + Left = 264 + Top = 384 + end +end diff --git a/Source/GUIBase/uEditorPreview.pas b/Source/GUIBase/uEditorPreview.pas new file mode 100644 index 0000000..61f4067 --- /dev/null +++ b/Source/GUIBase/uEditorPreview.pas @@ -0,0 +1,500 @@ +unit uEditorPreview; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorBase, ImgList, PngImageList, StdActns, ActnList, TBX, + TB2Item, TB2Dock, TB2Toolbar, JvExControls, JvComponent, JvNavigationPane, + TB2ExtItems, TBXExtItems, uViewPreview, frxClass, ComCtrls, frxPreview, + JvFormAutoSize, JvAppStorage, JvAppRegistryStorage, JvFormPlacement, + pngimage, frxExportImage, frxExportPDF, frxDCtrl, frxDMPExport, + frxGradient, frxChBox, frxCross, frxRich, frxOLE, frxBarcode, + ExtCtrls, JvComponentBase, TBXStatusBars, JvExComCtrls, JvStatusBar, + frxExportMail, frxExportXLS, frxExportText, frxExportRTF, uControllerBase, + uIntegerListUtils; + +type + IEditorPreview = interface(IEditorBase) + ['{43934C3E-2776-4F9E-9292-FB0D7DE2E4DA}'] + function GetReport: TfrxReport; + property Report: TfrxReport read GetReport; + + procedure SetTitle(const Value: string); + function GetTitle: string; + property Title: string read GetTitle write SetTitle; + + procedure LoadFromStream(AStream : TStream); + function ExportToFile : String; + procedure Print; + procedure Preview; + + function GetController : IControllerBase; + procedure SetController (const Value : IControllerBase); + property Controller : IControllerBase read GetController + write SetController; + + function GetListaID : TIntegerList; + procedure SetListaID (const Value : TIntegerList); + property ListaID : TIntegerList read GetListaID + write SetListaID; + end; + + TfEditorPreview = class(TfEditorBase, IEditorPreview) + TBXToolbar1: TTBXToolbar; + TBXItem33: TTBXItem; + TBXItem34: TTBXItem; + TBXItem39: TTBXItem; + TBXSeparatorItem16: TTBXSeparatorItem; + cbZoom: TTBXComboBoxItem; + PreviewActionList: TActionList; + PreviewSmallImageList: TPngImageList; + PreviewLargeImageList: TPngImageList; + actPrimeraPagina: TAction; + actUltimaPagina: TAction; + actPaginaAnterior: TAction; + actPaginaSiguiente: TAction; + TBXItem36: TTBXItem; + actZoomIn: TAction; + actZoomOut: TAction; + actTodaPagina: TAction; + actAnchoPagina: TAction; + TBXSeparatorItem17: TTBXSeparatorItem; + TBXItem37: TTBXItem; + TBXItem40: TTBXItem; + TBXItem41: TTBXItem; + TBXItem42: TTBXItem; + frxReport1: TfrxReport; + actToolHand: TAction; + actToolZoom: TAction; + tbxZoom: TTBXItem; + tbxMano: TTBXItem; + TBXSeparatorItem18: TTBXSeparatorItem; + frxBarCodeObject1: TfrxBarCodeObject; + frxOLEObject1: TfrxOLEObject; + frxRichObject1: TfrxRichObject; + frxCrossObject1: TfrxCrossObject; + frxCheckBoxObject1: TfrxCheckBoxObject; + frxGradientObject1: TfrxGradientObject; + frxDialogControls1: TfrxDialogControls; + frxTIFFExport1: TfrxTIFFExport; + frxPDFExport1: TfrxPDFExport; + frxBMPExport1: TfrxBMPExport; + TBXItem38: TTBXItem; + TBXSeparatorItem19: TTBXSeparatorItem; + TBXItem43: TTBXItem; + TBXItem44: TTBXItem; + TBXItem45: TTBXItem; + TBXItem46: TTBXItem; + TBXItem47: TTBXItem; + TBXSubmenuItem2: TTBXSubmenuItem; + TBXItem48: TTBXItem; + TBXSubmenuItem3: TTBXSubmenuItem; + TBXItem49: TTBXItem; + TBXItem50: TTBXItem; + TBXItem7: TTBXItem; + TBXItem35: TTBXItem; + actMiniaturas: TAction; + TBXSeparatorItem6: TTBXSeparatorItem; + TBXSeparatorItem14: TTBXSeparatorItem; + TBXItem51: TTBXItem; + TBXItem52: TTBXItem; + actExportarPDF: TAction; + TBXSubmenuItem8: TTBXSubmenuItem; + TBXItem53: TTBXItem; + TBXSeparatorItem20: TTBXSeparatorItem; + actExportarRTF: TAction; + frxXLSExport1: TfrxXLSExport; + frxMailExport1: TfrxMailExport; + actExportarExcel: TAction; + actExportarCorreo: TAction; + frxRTFExport: TfrxRTFExport; + frxSimpleTextExport1: TfrxSimpleTextExport; + actExportarTexto: TAction; + TBXItem54: TTBXItem; + TBXItem55: TTBXItem; + TBXItem56: TTBXItem; + TBXItem57: TTBXItem; + procedure FormShow(Sender: TObject); + procedure actPrimeraPaginaExecute(Sender: TObject); + procedure actUltimaPaginaExecute(Sender: TObject); + procedure actPaginaAnteriorExecute(Sender: TObject); + procedure actPaginaSiguienteExecute(Sender: TObject); + procedure actZoomInExecute(Sender: TObject); + procedure actTodaPaginaExecute(Sender: TObject); + procedure FormDestroy(Sender: TObject); + procedure FormResize(Sender: TObject); + procedure actImprimirExecute(Sender: TObject); + procedure actAnchoPaginaExecute(Sender: TObject); + procedure actZoomOutExecute(Sender: TObject); + procedure cbZoomItemClick(Sender: TObject); + procedure actToolHandExecute(Sender: TObject); + procedure actToolZoomExecute(Sender: TObject); + procedure actPaginaSiguienteUpdate(Sender: TObject); + procedure actUltimaPaginaUpdate(Sender: TObject); + procedure actPrimeraPaginaUpdate(Sender: TObject); + procedure actPaginaAnteriorUpdate(Sender: TObject); + procedure actMiniaturasExecute(Sender: TObject); + procedure actExportarPDFExecute(Sender: TObject); + procedure actConfPaginaExecute(Sender: TObject); + procedure actExportarExcelExecute(Sender: TObject); + procedure actExportarCorreoExecute(Sender: TObject); + procedure actExportarRTFExecute(Sender: TObject); + procedure actExportarTextoExecute(Sender: TObject); + private + FPreview : TfrViewPreview; + FTitle : TCaption; + FController : IControllerBase; + FListaID : TIntegerList; + procedure OnPageChanged(Sender: TfrxPreview; PageNo: Integer); + procedure UpdateZoom; + protected + function GetReport: TfrxReport; virtual; + procedure SetTitle(const Value: string); + function GetTitle: string; + procedure PonerTitulos(const ATitulo: String = ''); override; + function GetController : IControllerBase; + procedure SetController (const Value : IControllerBase); + procedure SetListaID (const Value : TIntegerList); + function GetListaID : TIntegerList; + public + constructor Create(AOwner: TComponent); override; + property ListaID : TIntegerList read GetListaID + write SetListaID; + property Controller : IControllerBase read GetController + write SetController; + property Title: string read GetTitle write SetTitle; + property Report: TfrxReport read GetReport; + procedure Print; + procedure Preview; + procedure LoadFromStream(AStream : TStream); + function ExportToFile : String; + end; + + +implementation + +uses + frxRes, frxUtils, frxPrinter, + uCustomEditor, uSistemaFunc; + +{$R *.dfm} + +{ TfEditorBase1 } + +function TfEditorPreview.GetController: IControllerBase; +begin + Result := FController; +end; + +function TfEditorPreview.GetListaID: TIntegerList; +begin + Result := FListaID; +end; + +function TfEditorPreview.GetReport: TfrxReport; +begin + Result := frxReport1; +end; + + +function TfEditorPreview.GetTitle: string; +begin + Result := FTitle; +end; + +procedure TfEditorPreview.FormShow(Sender: TObject); +begin + inherited; + UpdateZoom; + actPrimeraPagina.Execute; + FPreview.ShowEmbedded(Self); + Report.ShowPreparedReport; + actAnchoPagina.Execute; +end; + +procedure TfEditorPreview.actPrimeraPaginaExecute(Sender: TObject); +begin + inherited; + FPreview.Preview.First; +end; + +procedure TfEditorPreview.actPrimeraPaginaUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (FPreview.Preview.PageNo > 1); +end; + +procedure TfEditorPreview.actUltimaPaginaExecute(Sender: TObject); +begin + inherited; + FPreview.Preview.Last; +end; + +procedure TfEditorPreview.actUltimaPaginaUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (FPreview.Preview.PageNo < FPreview.Preview.PageCount); +end; + +procedure TfEditorPreview.actPaginaAnteriorExecute(Sender: TObject); +begin + inherited; + FPreview.Preview.Prior; +end; + +procedure TfEditorPreview.actPaginaAnteriorUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (FPreview.Preview.PageNo > 1); +end; + +procedure TfEditorPreview.actPaginaSiguienteExecute(Sender: TObject); +begin + inherited; + FPreview.Preview.Next; +end; + +procedure TfEditorPreview.actPaginaSiguienteUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (FPreview.Preview.PageNo < FPreview.Preview.PageCount); +end; + +procedure TfEditorPreview.actZoomInExecute(Sender: TObject); +begin + inherited; + FPreview.Preview.Zoom := FPreview.Preview.Zoom + 0.25; + UpdateZoom; +end; + +procedure TfEditorPreview.UpdateZoom; +begin + cbZoom.Text := IntToStr(Round(FPreview.Preview.Zoom * 100)) + '%'; +end; + +procedure TfEditorPreview.actTodaPaginaExecute(Sender: TObject); +begin + inherited; + FPreview.Preview.ZoomMode := zmWholePage; + UpdateZoom; +end; + +procedure TfEditorPreview.FormDestroy(Sender: TObject); +begin + inherited; + FreeAndNil(FPreview); +end; + +procedure TfEditorPreview.FormResize(Sender: TObject); +begin + inherited; + UpdateZoom; +end; + +procedure TfEditorPreview.actConfPaginaExecute(Sender: TObject); +begin + inherited; + FPreview.Preview.PageSetupDlg; +end; + +procedure TfEditorPreview.actExportarCorreoExecute(Sender: TObject); +begin + inherited; + FPreview.Preview.Export(frxMailExport1); +end; + +procedure TfEditorPreview.actExportarExcelExecute(Sender: TObject); +begin + inherited; + FPreview.Preview.Export(frxXLSExport1); +end; + +procedure TfEditorPreview.actExportarPDFExecute(Sender: TObject); +begin + inherited; + FPreview.Preview.Export(frxPDFExport1); +end; + +procedure TfEditorPreview.actExportarRTFExecute(Sender: TObject); +begin + inherited; + FPreview.Preview.Export(frxRTFExport); +end; + +procedure TfEditorPreview.actExportarTextoExecute(Sender: TObject); +begin + inherited; + FPreview.Preview.Export(frxSimpleTextExport1); +end; + +procedure TfEditorPreview.actImprimirExecute(Sender: TObject); +begin + inherited; + Print; +end; + +procedure TfEditorPreview.actMiniaturasExecute(Sender: TObject); +begin + inherited; + FPreview.Preview.ThumbnailVisible := actMiniaturas.Checked; +end; + +procedure TfEditorPreview.actAnchoPaginaExecute(Sender: TObject); +begin + inherited; + FPreview.Preview.ZoomMode := zmPageWidth; + UpdateZoom; +end; + +procedure TfEditorPreview.actZoomOutExecute(Sender: TObject); +begin + inherited; + FPreview.Preview.Zoom := FPreview.Preview.Zoom - 0.25; + UpdateZoom; +end; + +procedure TfEditorPreview.cbZoomItemClick(Sender: TObject); +var + s: String; +begin + FPreview.Preview.SetFocus; + + if cbZoom.ItemIndex = 6 then + actAnchoPagina.Execute + else if cbZoom.ItemIndex = 7 then + actTodaPagina.Execute + else + begin + s := cbZoom.Text; + + if Pos('%', s) <> 0 then + s[Pos('%', s)] := ' '; + while Pos(' ', s) <> 0 do + Delete(s, Pos(' ', s), 1); + + if s <> '' then + FPreview.Preview.Zoom := frxStrToFloat(s) / 100; + end; + + UpdateZoom; +end; + +procedure TfEditorPreview.actToolHandExecute(Sender: TObject); +begin + actToolHand.Checked := True; + FPreview.Preview.Tool := ptHand +end; + +procedure TfEditorPreview.actToolZoomExecute(Sender: TObject); +begin + actToolZoom.Checked := True; + FPreview.Preview.Tool := ptZoom; +end; + +procedure TfEditorPreview.OnPageChanged(Sender: TfrxPreview; + PageNo: Integer); +begin + StatusBar.Panels[0].Text := Format(frxResources.Get('clPageOf'), + [PageNo, Sender.PageCount]); +end; + +constructor TfEditorPreview.Create(AOwner: TComponent); +begin + inherited; + + with cbZoom.Strings do + begin + Clear; + Add('25%'); + Add('50%'); + Add('75%'); + Add('100%'); + Add('150%'); + Add('200%'); + Add(frxResources.Get('zmPageWidth')); + Add(frxResources.Get('zmWholePage')); + end; + + FPreview := TfrViewPreview.Create(Self); + Report.Preview := FPreview.Preview; + FPreview.Preview.OnPageChanged := OnPageChanged; +end; + +procedure TfEditorPreview.PonerTitulos(const ATitulo: String); +var + AText : String; +begin + AText := 'Previsualizar'; + + if (Length(ATitulo) > 0) then + AText := AText + ' - ' + ATitulo + else + AText := AText + ' - ' + FTitle; + + JvNavPanelHeader.Caption := AText; + Caption := AText; +end; + +procedure TfEditorPreview.Preview; +begin + Self.ShowModal; +end; + +procedure TfEditorPreview.Print; +begin + if not frxPrinters.HasPhysicalPrinters then + frxErrorMsg(frxResources.Get('clNoPrinters')) + else + FPreview.Preview.Print; + Enabled := True; +end; + +procedure TfEditorPreview.SetController(const Value: IControllerBase); +begin + FController := Value; +end; + +procedure TfEditorPreview.SetListaID(const Value: TIntegerList); +begin + FListaID := Value; +end; + +procedure TfEditorPreview.SetTitle(const Value: string); +begin + FTitle := Value; + PonerTitulos(FTitle); +end; + +function TfEditorPreview.ExportToFile: String; +var + AFile : String; +begin + Result := ''; + AFile := DarFicheroTIFFTemporal; + frxTIFFExport1.SeparateFiles := False; + frxTIFFExport1.DefaultPath := ExtractFilePath(AFile); + frxTIFFExport1.FileName := ExtractFileName(AFile); + try + if Report.Export(frxTIFFExport1) then + Result := AFile; + finally + frxTIFFExport1.DefaultPath := ''; + frxTIFFExport1.FileName := ''; + end; +end; + +procedure TfEditorPreview.LoadFromStream(AStream: TStream); +begin + Report.PreviewPages.LoadFromStream(AStream); +end; + + +initialization + RegisterClass(TfEditorPreview); + +finalization + UnRegisterClass(TfEditorPreview); + +end. + diff --git a/Source/GUIBase/uEditorUtils.pas b/Source/GUIBase/uEditorUtils.pas new file mode 100644 index 0000000..68b4b86 --- /dev/null +++ b/Source/GUIBase/uEditorUtils.pas @@ -0,0 +1,108 @@ +unit uEditorUtils; + +interface + +uses + uEditorItem, uDADataTable, Controls; + +type + TFuncItemEditor = function(ABizObject : TDADataTableRules) : TModalResult; + TProcItemEditor = procedure(ABizObject : TDADataTableRules); + TFuncGetEditor = function : IEditorItem; + + TEditorType = (etItem, etItems, etSelectItems); + +procedure RegisterEditor(const IID : TGUID; const AFuncItemEditor : TFuncItemEditor; + const AType : TEditorType); + +function ShowEditor(const IID : TGUID; ABizObject : TDADataTableRules; + const AType : TEditorType) : TModalResult; + + +implementation + +uses + Dialogs, Classes, ComObj, SysUtils; + +var + FBizEditorsList : TList; + +type + PBizEditorsRec = ^TBizEditorsRec; + TBizEditorsRec = record + IID : String; + ItemEditor : TFuncItemEditor; + ItemsEditor : TFuncItemEditor; + SelectItemsEditor : TFuncItemEditor; + end; + + +function FindBizEditors(const IID : TGUID) : PBizEditorsRec; +var + P: PBizEditorsRec; + I: Integer; + AIID : String; +begin + Result := NIL; + AIID := GUIDToString(IID); + if FBizEditorsList <> nil then + for I := 0 to FBizEditorsList.Count-1 do + begin + P := FBizEditorsList[I]; + if (AIID = P^.IID) then + begin + Result := P; + Break; + end; + end; +end; + +procedure RegisterEditor(const IID : TGUID; const AFuncItemEditor : TFuncItemEditor; + const AType : TEditorType); +var + P: PBizEditorsRec; +begin + P := NIL; + if FBizEditorsList = nil then + FBizEditorsList := TList.Create; + + P := FindBizEditors(IID); + if not Assigned(P) then + New(P); + try + P^.IID := GUIDToString(IID); + case AType of + etItem : P^.ItemEditor := AFuncItemEditor; + etItems : P^.ItemsEditor := AFuncItemEditor; + etSelectItems : P^.SelectItemsEditor := AFuncItemEditor; + end; + FBizEditorsList.Insert(0, P); + except + on E: EConvertError do + ShowMessage(E.Message); + end; +end; + +function ShowEditor(const IID : TGUID; ABizObject : TDADataTableRules; + const AType : TEditorType) : TModalResult; +var + P: PBizEditorsRec; +begin + P := FindBizEditors(IID); + + if Assigned(P) then + case AType of + etItem : Result := P.ItemEditor(ABizObject); + etItems : Result := P.ItemsEditor(ABizObject); + etSelectItems : Result := P.SelectItemsEditor(ABizObject); + end; +end; + + +initialization + FBizEditorsList := TList.Create; + +finalization + FBizEditorsList.Free; + +end. diff --git a/Source/GUIBase/uViewBarraSeleccion.dcu b/Source/GUIBase/uViewBarraSeleccion.dcu new file mode 100644 index 0000000..e43f010 Binary files /dev/null and b/Source/GUIBase/uViewBarraSeleccion.dcu differ diff --git a/Source/GUIBase/uViewBarraSeleccion.dfm b/Source/GUIBase/uViewBarraSeleccion.dfm new file mode 100644 index 0000000..80b9c73 --- /dev/null +++ b/Source/GUIBase/uViewBarraSeleccion.dfm @@ -0,0 +1,65 @@ +inherited frViewBarraSeleccion: TfrViewBarraSeleccion + Width = 451 + Height = 49 + Align = alBottom + ExplicitWidth = 451 + ExplicitHeight = 49 + object JvFooter1: TJvFooter + Left = 0 + Top = 0 + Width = 451 + Height = 49 + Margins.Left = 5 + Margins.Right = 5 + Align = alClient + DesignSize = ( + 451 + 49) + object bSeleccionar: TJvFooterBtn + Left = 239 + Top = 10 + Width = 100 + Height = 29 + Action = actSeleccionar + Anchors = [akRight, akBottom] + Default = True + ModalResult = 1 + TabOrder = 0 + HotTrackFont.Charset = DEFAULT_CHARSET + HotTrackFont.Color = clWindowText + HotTrackFont.Height = -11 + HotTrackFont.Name = 'Tahoma' + HotTrackFont.Style = [] + ButtonIndex = 0 + SpaceInterval = 6 + end + object bCancelar: TJvFooterBtn + Left = 343 + Top = 10 + Width = 100 + Height = 28 + Action = actCancelar + Anchors = [akRight, akBottom] + Cancel = True + ModalResult = 2 + TabOrder = 1 + HotTrackFont.Charset = DEFAULT_CHARSET + HotTrackFont.Color = clWindowText + HotTrackFont.Height = -11 + HotTrackFont.Name = 'Tahoma' + HotTrackFont.Style = [] + ButtonIndex = 1 + SpaceInterval = 6 + end + end + object BarraSeleccionActionList: TActionList + Left = 12 + Top = 3 + object actSeleccionar: TAction + Caption = 'Seleccionar' + end + object actCancelar: TAction + Caption = 'Cancelar' + end + end +end diff --git a/Source/GUIBase/uViewBarraSeleccion.pas b/Source/GUIBase/uViewBarraSeleccion.pas new file mode 100644 index 0000000..01e7549 --- /dev/null +++ b/Source/GUIBase/uViewBarraSeleccion.pas @@ -0,0 +1,28 @@ +unit uViewBarraSeleccion; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, StdCtrls, ActnList, ExtCtrls, JvExStdCtrls, JvButton, + JvCtrls, JvFooter, JvExExtCtrls, JvComponent, JvExtComponent; + +type + TfrViewBarraSeleccion = class(TfrViewBase) + JvFooter1: TJvFooter; + bSeleccionar: TJvFooterBtn; + bCancelar: TJvFooterBtn; + BarraSeleccionActionList: TActionList; + actSeleccionar: TAction; + actCancelar: TAction; + private + { Private declarations } + public + { Public declarations } + end; + +implementation + +{$R *.dfm} + +end. diff --git a/Source/GUIBase/uViewBase.dcu b/Source/GUIBase/uViewBase.dcu new file mode 100644 index 0000000..6de39aa Binary files /dev/null and b/Source/GUIBase/uViewBase.dcu differ diff --git a/Source/GUIBase/uViewBase.dfm b/Source/GUIBase/uViewBase.dfm new file mode 100644 index 0000000..17e1d50 --- /dev/null +++ b/Source/GUIBase/uViewBase.dfm @@ -0,0 +1,14 @@ +object frViewBase: TfrViewBase + Left = 0 + Top = 0 + Width = 445 + Height = 291 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False +end diff --git a/Source/GUIBase/uViewBase.pas b/Source/GUIBase/uViewBase.pas new file mode 100644 index 0000000..f3ea698 --- /dev/null +++ b/Source/GUIBase/uViewBase.pas @@ -0,0 +1,58 @@ +unit uViewBase; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uGUIBase, uCustomView, JvComponent, JvFormAutoSize; + +type + IViewBase = interface(ICustomView) + ['{82FBDF28-9C5F-4922-952E-0E84D67FE4BB}'] + procedure Refresh; + end; + + TfrViewBase = class(TCustomView, IViewBase) + protected + procedure SetReadOnly(Value: Boolean); override; + + public + procedure Refresh; virtual; + end; + +implementation + +{$R *.dfm} + + +uses + cxDBEdit, cxControls, dxLayoutControl; + +{ TfrViewBase } + +procedure TfrViewBase.Refresh; +begin + // +end; + +procedure TfrViewBase.SetReadOnly(Value: Boolean); +var + i: integer; +begin + inherited; + + if (csLoading in Self.ComponentState) then + Exit; + + for i:=0 to Self.ComponentCount-1 do + begin + if (Self.Components[i] is TfrViewBase) then + (Self.Components[i] as TfrViewBase).ReadOnly := Self.ReadOnly; + + if (Self.Components[i] is TcxControl) + and (not (Self.Components[i] Is TdxLayoutControl)) then + (Self.Components[i] as TcxControl).Enabled := not Self.ReadOnly; + end; +end; + +end. diff --git a/Source/GUIBase/uViewDetallesBase.dcu b/Source/GUIBase/uViewDetallesBase.dcu new file mode 100644 index 0000000..27d1aad Binary files /dev/null and b/Source/GUIBase/uViewDetallesBase.dcu differ diff --git a/Source/GUIBase/uViewDetallesBase.dfm b/Source/GUIBase/uViewDetallesBase.dfm new file mode 100644 index 0000000..e477316 --- /dev/null +++ b/Source/GUIBase/uViewDetallesBase.dfm @@ -0,0 +1,1055 @@ +inherited frViewDetallesBase: TfrViewDetallesBase + Width = 451 + Height = 304 + Align = alClient + OnCreate = CustomViewCreate + OnDestroy = CustomViewDestroy + ExplicitWidth = 451 + ExplicitHeight = 304 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 451 + Height = 68 + AutoSize = True + ButtonWidth = 141 + Caption = 'ToolBar1' + EdgeInner = esNone + EdgeOuter = esNone + Flat = False + Images = ContenidoImageList + List = True + ParentShowHint = False + ShowCaptions = True + ShowHint = True + TabOrder = 0 + Transparent = True + Visible = False + object ToolButton1: TToolButton + Left = 0 + Top = 0 + Action = actAnadir + AutoSize = True + end + object ToolButton2: TToolButton + Left = 62 + Top = 0 + Action = actEliminar + AutoSize = True + end + object ToolButton3: TToolButton + Left = 129 + Top = 0 + Action = actSubir + AutoSize = True + Wrap = True + end + object ToolButton4: TToolButton + Left = 0 + Top = 22 + Action = actBajar + AutoSize = True + end + object ToolButton14: TToolButton + Left = 56 + Top = 22 + Action = FontEdit1 + AutoSize = True + Wrap = True + end + object FontName: TJvFontComboBox + Left = 0 + Top = 44 + Width = 145 + Height = 22 + DroppedDownWidth = 145 + MaxMRUCount = 0 + FontName = 'Tahoma' + ItemIndex = 39 + Options = [foTrueTypeOnly, foNoOEMFonts, foScalableOnly, foWysiWyg] + Sorted = True + TabOrder = 2 + Visible = False + OnChange = FontNameChange + OnClick = FontNameChange + end + object FontSize: TEdit + Left = 145 + Top = 44 + Width = 26 + Height = 22 + Hint = 'Font Size|Select font size' + TabOrder = 1 + Text = '0' + Visible = False + OnChange = FontSizeChange + end + object UpDown1: TUpDown + Left = 171 + Top = 44 + Width = 16 + Height = 22 + Associate = FontSize + TabOrder = 0 + Visible = False + end + object ToolButton13: TToolButton + Left = 187 + Top = 44 + Width = 8 + Caption = 'ToolButton13' + ImageIndex = 10 + Style = tbsSeparator + end + object ToolButton6: TToolButton + Left = 195 + Top = 44 + Action = RichEditBold1 + AutoSize = True + end + object ToolButton7: TToolButton + Left = 261 + Top = 44 + Action = RichEditItalic1 + AutoSize = True + end + object ToolButton8: TToolButton + Left = 328 + Top = 44 + Action = RichEditUnderline1 + AutoSize = True + end + object ToolButton12: TToolButton + Left = 411 + Top = 44 + Width = 8 + Caption = 'ToolButton12' + ImageIndex = 10 + Style = tbsSeparator + end + object ToolButton9: TToolButton + Left = 419 + Top = 44 + Action = RichEditAlignLeft1 + AutoSize = True + end + object ToolButton10: TToolButton + Left = 564 + Top = 44 + Action = RichEditAlignCenter1 + AutoSize = True + end + object ToolButton11: TToolButton + Left = 689 + Top = 44 + Action = RichEditAlignRight1 + AutoSize = True + end + end + object cxGrid: TcxGrid + Left = 0 + Top = 94 + Width = 451 + Height = 210 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 1 + LookAndFeel.Kind = lfStandard + LookAndFeel.NativeStyle = True + ExplicitTop = 99 + ExplicitHeight = 205 + object cxGridView: TcxGridDBTableView + OnKeyDown = cxGridViewKeyDown + NavigatorButtons.ConfirmDelete = False + FilterBox.Visible = fvNever + OnEditing = cxGridViewEditing + OnEditKeyDown = cxGridViewEditKeyDown + OnEditValueChanged = cxGridViewEditValueChanged + OnFocusedItemChanged = cxGridViewFocusedItemChanged + OnFocusedRecordChanged = cxGridViewFocusedRecordChanged + OnInitEdit = cxGridViewInitEdit + DataController.DataSource = DADataSource + DataController.Filter.Options = [fcoCaseInsensitive] + DataController.KeyFieldNames = 'ID' + DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText, dcoFocusTopRowAfterSorting, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.CellHints = True + OptionsBehavior.CopyCaptionsToClipboard = False + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsCustomize.ColumnGrouping = False + OptionsCustomize.ColumnMoving = False + OptionsCustomize.ColumnSorting = False + OptionsCustomize.DataRowSizing = True + OptionsData.CancelOnExit = False + OptionsData.Deleting = False + OptionsData.DeletingConfirmation = False + OptionsData.Inserting = False + OptionsSelection.InvertSelect = False + OptionsSelection.MultiSelect = True + OptionsSelection.UnselectFocusedRecordOnExit = False + OptionsView.CellEndEllipsis = True + OptionsView.NoDataToDisplayInfoText = '' + OptionsView.CellAutoHeight = True + OptionsView.ColumnAutoWidth = True + OptionsView.GridLineColor = cl3DLight + OptionsView.GridLines = glHorizontal + OptionsView.GroupByBox = False + OptionsView.HeaderEndEllipsis = True + OptionsView.Indicator = True + Styles.OnGetContentStyle = cxGridViewStylesGetContentStyle + object cxGridViewID: TcxGridDBColumn + DataBinding.FieldName = 'ID' + Visible = False + BestFitMaxWidth = 25 + VisibleForCustomization = False + Width = 25 + end + object cxGridViewPOSICION: TcxGridDBColumn + DataBinding.FieldName = 'POSICION' + Visible = False + BestFitMaxWidth = 25 + MinWidth = 50 + SortIndex = 0 + SortOrder = soAscending + VisibleForCustomization = False + Width = 50 + end + object cxGridViewVISIBLE: TcxGridDBColumn + Caption = #191'Visible?' + DataBinding.FieldName = 'VISIBLE' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.Alignment = taCenter + Properties.DisplayChecked = '1' + Properties.DisplayUnchecked = '0' + Properties.Glyph.Data = { + 92030000424D9203000000000000920100002800000020000000100000000100 + 08000000000000020000120B0000120B0000570000005700000000000000FFFF + FF0040384000703840008048500090586000C0606000A0505000804040006030 + 30009050500070404000A060600090606000A0707000B0808000C09090004030 + 3000E0B0B000B0909000FFF0F000FF787000E0787000C0686000FF9890009048 + 4000A0585000D0888000E0989000E0706000FF80700080484000A0686000FFA0 + 9000FF887000B060500070484000FFB0A000C0989000D0A8A000E0B8B000FF98 + 8000A0605000FFC0B000F0C0B00080686000F0D8D000B0908000E0C8B000E0D8 + D000FFE0C000FFF8F000F0E0C000FFF0D000FFF8E00020283000FEFEFE00FAFA + FA00F7F7F700F3F3F300F1F1F100F0F0F000EDEDED00EAEAEA00E7E7E700E6E6 + E600E3E3E300E0E0E000DADADA00D7D7D700D3D3D300D0D0D000CDCDCD00C9C9 + C900C6C6C600C4C4C400C3C3C300C0C0C000BEBEBE00BCBCBC00B9B9B900B7B7 + B700B3B3B300AEAEAE00ACACAC00A6A6A600FFFFFF0056565656565656565656 + 5656565656565656565656565656565656565656565656565656565656565656 + 5656565656565656565656565656565656565656565656565656565656565656 + 5656565656565656565656565656565656565656565656565656565656565656 + 5656565656565656565656565656565656565656565656565656404040444C4C + 463D5656565656565656122830262D2D2F325656565644444444433E4145474A + 50463B404456101010102734181D061A242F35122656564646443A3F434A544C + 49493A3C4646560F0F10362C1507110A2320362E0F0F56564845394341535554 + 44473944484856560E13331C21023711161714260E0E5656564A3E403E38544A + 4344464B4B565656560D31122B01111A1E1B0F050556565656564E49423F4343 + 434A4E4E565656565656040C2925221E1E2A04045656565656565650504F4D4F + 50505056565656565656560B0B1F19080B0B0B56565656565656565652505151 + 505656565656565656565656090B03030B565656565656565656565656565656 + 5656565656565656565656565656565656565656565656565656565656565656 + 5656565656565656565656565656565656565656565656565656565656565656 + 5656565656565656565656565656565656565656565656565656565656565656 + 56565656565656565656565656565656565656565656} + Properties.GlyphCount = 2 + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + Properties.ValueChecked = 1 + Properties.ValueUnchecked = 0 + Visible = False + BestFitMaxWidth = 35 + FooterAlignmentHorz = taCenter + HeaderAlignmentHorz = taCenter + MinWidth = 35 + Options.HorzSizing = False + VisibleForCustomization = False + Width = 35 + end + object cxGridViewTIPO: TcxGridDBColumn + Caption = 'Tipo' + DataBinding.FieldName = 'TIPO_DETALLE' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.ImmediatePost = True + Properties.Items = <> + Properties.PostPopupValueOnTab = True + MinWidth = 45 + Options.HorzSizing = False + Options.Moving = False + Options.Sorting = False + Styles.Content = cxStyle_ESPECIALES + Width = 45 + end + object cxGridViewDESCRIPCION: TcxGridDBColumn + Caption = 'Concepto' + DataBinding.FieldName = 'CONCEPTO' + PropertiesClassName = 'TcxRichEditProperties' + Properties.AllowObjects = True + Properties.SelectionBar = True + Properties.WantReturns = False + Width = 237 + end + object cxGridViewCANTIDAD: TcxGridDBColumn + Tag = 1 + Caption = 'Cantidad' + DataBinding.FieldName = 'CANTIDAD' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = ',0.##;-,0.##' + Properties.EditFormat = ',0.##;-,0.##' + BestFitMaxWidth = 64 + HeaderAlignmentHorz = taRightJustify + MinWidth = 50 + Width = 119 + end + object cxGridViewIMPORTEUNIDAD: TcxGridDBColumn + Tag = 1 + Caption = 'Importe unidad' + DataBinding.FieldName = 'IMPORTE_UNIDAD' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + BestFitMaxWidth = 120 + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + MinWidth = 50 + Width = 142 + end + object cxGridViewIMPORTETOTAL: TcxGridDBColumn + Tag = 1 + Caption = 'Importe total' + DataBinding.FieldName = 'IMPORTE_TOTAL' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + BestFitMaxWidth = 120 + HeaderAlignmentHorz = taRightJustify + MinWidth = 50 + Options.Editing = False + Width = 142 + end + end + object cxGridLevel: TcxGridLevel + GridView = cxGridView + end + end + object TBXDock1: TTBXDock + Left = 0 + Top = 68 + Width = 451 + Height = 26 + BackgroundOnToolbars = False + UseParentBackground = True + ExplicitTop = 73 + object TBXToolbar1: TTBXToolbar + Left = 0 + Top = 0 + Caption = 'TBXToolbar1' + DragHandleStyle = dhNone + Images = ContenidoImageList + TabOrder = 0 + object TBXSubmenuItem1: TTBXSubmenuItem + Caption = 'A'#241'adir...' + DisplayMode = nbdmImageAndText + ImageIndex = 12 + object TBXItem16: TTBXItem + Action = actAnadirCapitulo + Images = ContenidoImageList + end + object TBXSeparatorItem7: TTBXSeparatorItem + end + object TBXItem15: TTBXItem + Action = actAnadirTitulo + Images = ContenidoImageList + end + object TBXItem14: TTBXItem + Action = actAnadirSubtotal + Images = ContenidoImageList + end + object TBXItem12: TTBXItem + Action = actAnadirDescuento + Images = ContenidoImageList + end + end + object TBXSeparatorItem6: TTBXSeparatorItem + end + object TBXItem1: TTBXItem + Action = actAnadir + DisplayMode = nbdmImageAndText + Images = ContenidoImageList + end + object TBXItem2: TTBXItem + Action = actEliminar + DisplayMode = nbdmImageAndText + Images = ContenidoImageList + end + object TBXSeparatorItem1: TTBXSeparatorItem + end + object TBXItem3: TTBXItem + Action = actSubir + DisplayMode = nbdmImageAndText + end + object TBXItem4: TTBXItem + Action = actBajar + DisplayMode = nbdmImageAndText + end + object TBXSeparatorItem2: TTBXSeparatorItem + end + object TBXItem5: TTBXItem + Action = RichEditBold1 + end + object TBXItem6: TTBXItem + Action = RichEditItalic1 + end + object TBXItem7: TTBXItem + Action = RichEditUnderline1 + end + object TBXSeparatorItem4: TTBXSeparatorItem + end + object TBXItem9: TTBXItem + Action = RichEditAlignLeft1 + end + object TBXItem10: TTBXItem + Action = RichEditAlignCenter1 + end + object TBXItem11: TTBXItem + Action = RichEditAlignRight1 + end + object TBXSeparatorItem3: TTBXSeparatorItem + end + object TBXItem8: TTBXItem + Action = FontEdit1 + end + object TBXSeparatorItem5: TTBXSeparatorItem + end + object TBXItem13: TTBXItem + Action = actAnchoAutomatico + DisplayMode = nbdmImageAndText + end + object TBXItem17: TTBXItem + Action = actExportar + end + end + end + object ActionListContenido: TActionList + Images = ContenidoImageList + Left = 40 + Top = 168 + object actAnadir: TAction + Category = 'Operaciones' + Caption = 'A'#241'adir' + ImageIndex = 0 + ShortCut = 45 + OnExecute = actAnadirExecute + OnUpdate = actAnadirUpdate + end + object actEliminar: TAction + Category = 'Operaciones' + Caption = 'Eliminar' + ImageIndex = 1 + ShortCut = 16430 + OnExecute = actEliminarExecute + OnUpdate = actEliminarUpdate + end + object actSubir: TAction + Category = 'Operaciones' + Caption = 'Subir' + ImageIndex = 2 + OnExecute = actSubirExecute + OnUpdate = actSubirUpdate + end + object actBajar: TAction + Category = 'Operaciones' + Caption = 'Bajar' + ImageIndex = 3 + OnExecute = actBajarExecute + OnUpdate = actBajarUpdate + end + object RichEditBold1: TRichEditBold + Category = 'Formato' + AutoCheck = True + Caption = 'Negrita' + Hint = 'Negrita' + ImageIndex = 4 + ShortCut = 16450 + end + object RichEditItalic1: TRichEditItalic + Category = 'Formato' + AutoCheck = True + Caption = 'Cursiva' + Hint = 'Cursiva' + ImageIndex = 5 + ShortCut = 16457 + end + object RichEditUnderline1: TRichEditUnderline + Category = 'Formato' + AutoCheck = True + Caption = 'Subrayado' + Hint = 'Subrayado' + ImageIndex = 6 + ShortCut = 16469 + end + object RichEditAlignLeft1: TRichEditAlignLeft + Category = 'Formato' + AutoCheck = True + Caption = 'Alineaci'#243'n a la izquierda' + Hint = 'Alinear a la izquierda' + ImageIndex = 7 + end + object RichEditAlignCenter1: TRichEditAlignCenter + Category = 'Formato' + AutoCheck = True + Caption = 'Alineaci'#243'n centrada' + Hint = 'Center|Centers text between margins' + ImageIndex = 8 + end + object RichEditAlignRight1: TRichEditAlignRight + Category = 'Formato' + AutoCheck = True + Caption = 'Alineaci'#243'n a la derecha' + Hint = 'Align Right|Aligns text at the right indent' + ImageIndex = 9 + end + object FontEdit1: TFontEdit + Category = 'Formato' + Caption = 'Fuente' + Dialog.Font.Charset = DEFAULT_CHARSET + Dialog.Font.Color = clWindowText + Dialog.Font.Height = -11 + Dialog.Font.Name = 'Tahoma' + Dialog.Font.Style = [] + Hint = 'Formato de fuente' + ImageIndex = 10 + BeforeExecute = FontEdit1BeforeExecute + OnAccept = FontEdit1Accept + end + object actAnchoAutomatico: TAction + Category = 'Operaciones' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 11 + OnExecute = actAnchoAutomaticoExecute + OnUpdate = actAnchoAutomaticoUpdate + end + object actDetallesCortar: TAction + Category = 'Editar' + Caption = 'Cortar' + ShortCut = 16472 + OnExecute = actDetallesCortarExecute + OnUpdate = actDetallesCortarUpdate + end + object actDetallesCopiar: TAction + Category = 'Editar' + Caption = 'Copiar' + ShortCut = 16451 + OnExecute = actDetallesCopiarExecute + OnUpdate = actDetallesCopiarUpdate + end + object actDetallesPegar: TAction + Category = 'Editar' + Caption = 'Pegar' + ShortCut = 16470 + OnExecute = actDetallesPegarExecute + OnUpdate = actDetallesPegarUpdate + end + object actAnadirCapitulo: TAction + Category = 'Operaciones' + Caption = 'Un cap'#237'tulo' + ImageIndex = 12 + OnExecute = actAnadirCapituloExecute + OnUpdate = actAnadirCapituloUpdate + end + object actAnadirTitulo: TAction + Category = 'Operaciones' + Caption = 'T'#237'tulo de cap'#237'tulo' + ImageIndex = 13 + OnExecute = actAnadirTituloExecute + OnUpdate = actAnadirTituloUpdate + end + object actAnadirSubtotal: TAction + Category = 'Operaciones' + Caption = 'Subtotal de cap'#237'tulo' + ImageIndex = 15 + OnExecute = actAnadirSubtotalExecute + OnUpdate = actAnadirSubtotalUpdate + end + object actAnadirDescuento: TAction + Category = 'Operaciones' + Caption = 'L'#237'nea de descuento' + ImageIndex = 17 + OnExecute = actAnadirDescuentoExecute + OnUpdate = actAnadirDescuentoUpdate + end + object actExportar: TAction + Category = 'Editar' + Caption = 'Exportar a Microsoft Excel' + OnExecute = actExportarExecute + end + object actSeleccionarTodo: TAction + Category = 'Editar' + Caption = 'Seleccionar todo' + ShortCut = 16449 + OnExecute = actSeleccionarTodoExecute + OnUpdate = actSeleccionarTodoUpdate + end + end + object DADataSource: TDADataSource + Left = 8 + Top = 136 + end + object ContenidoImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000D04944415478DA + 6364C0062630FCC72A5EC0C0882EC488CB80191909706EDDBA750CAF767D6260 + 5830240DF8F9FB3743EBE6CD780CC011602003409A7F0071EF8E1D10030C30D5 + 31A23B1706609AB1E23F7FC0F4FA2967B01B408CE6A3B76E815D856100319ABF + FFFAC570EEC103540340218D0C92EDECE01AD79E398335ACE106305CC0942CAC + 77871BB0F5E2454820620138A331D3CB09EEECBD57AF929E0E629DADC106FCF9 + F70F1E602419106A67C6F01DE40260805D7AFC9874037C2C0D194EDDBD8B1260 + 241900A6D103178B01000648ED7B1FCA93F30000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000006E4944415478DA + 63FCFFFF3F03258071D40006C6397A1214990036203925952CCD73E7CCC66100 + C85BBF7F32307CFDC4C0F0FD2B03C33710FD05487F46E0374F19E6FE964032E0 + CF6F840120CD200D5F3F43357E42F0416C90013FBFA119B0B099742FC00CA028 + 10073E1D0C7D030077CE5E397DD56C480000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000E14944415478DA + 63FCFFFF3F032580717019C0C8C88822E9D770F9FFA6065D1441740B711A00D2 + 1C1DA5CA307DC64586037DE68C241900D3FCF10B23C39123CF19AE5EBECF7076 + B623235106206BFEF899114C3FBAFB94E1C4D1AB0CB7567A33E235C0BFF1CAFF + 9F3F7F3380B0B7BF2158F3BB8F4C0C7B36EE60F8F9E317C30F207EB1238C91A0 + 17AC728EFC77F234076BFEF2E631C3C1BDE7191E6E0C24CE0B20609CBAFFBFB9 + A31DD0004606B6DF8F18766E3DC9F0726738F106E8C6EFFA6F68AC0617DFB8F6 + 30C3C783B1C41BA016BEF53FCCCF30FCF364326103C801C3C00000BEA5B3E15D + 7F64240000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000DF4944415478DA + 63FCFFFF3F032580717019C0C8C808A643DA6E80057FFDFACDF0F327041FE833 + 074BA25B88D380982805869FBF18183E7E61645830EF34C3B12936C41BE0D770 + F97F74942A58F39123CF19AE5EBECF7076B623F106B8579EFB1F1CAACDF0F133 + 23C3E58BCF18CE9FBDC57079A11B6103FC1BAFFC87F9D9DBDF10EC8247779F32 + 9C387A95E1E78F5F0C3F80F8C58E3046BC2E70283AF91FA6F9DD472620666460 + FBFD8861E7D6930C2F77863312E505E3D4FDFFCD1DED3034131D0620A016BEF5 + BF85B5368A66920C000171F795FF91351334801C300C0C00007FBCB4E1E577C7 + 9A0000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001984944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5360BD30046 + C399181A59989918A23C55181A328C1804F9D8C0069CBD7C07BB01C886FC3F9F + CEF00F28BF7AD75D86888ABD0CEC6CCC0C8F774430FCF9F38FE1E2F57B840DF8 + 7B2E0DACF8C7AF3F0CFC360BC006DCDF120676C1B5DB0F091BF0F3540AC3C3E7 + 9F19DAE79D6758B6FD2E4353A6114384BB22D0D0BF0CB7EE3F216C003288F254 + 66288BD765E0E56206BAE01FC3FDC7CFB01B00F233B3D12C30FBFDA138B0730F + 9C7ECE1056BE8FC1C954926172991958ECF9ABD79806803483FCCC6E36076CC0 + 8B3D5160C52031459FD560B10BCB7DC02E78F3EE2DAA01317E56F038E6B75908 + 567C6D6D1003273B33C396C38F18723B4F32B0B332311C99E70156F3F1D30754 + 03C2BDCC51342303666646066F1B1986EC5035065E6E16B0BA6FDF3EA31A10E4 + 6602762ACC1570F6EFBF503184DCBF7FFF197EFCF8826A809F9311C3A98BB748 + CA4C700340B971E28CA524E7C6FC8CE81800E35A4E592A9A5C6B000000004945 + 4E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001844944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5360BB7010B + 37DF6248A8DB0FE7CB4BF2325C5D1B0237E0ECE53BF80D0081C69967191A669C + 6188F35163985C61C5F0EF1FC4057FFEFC63B878FD1E6103744357335CB9F38E + 61CB240F066B0331B866107DEDF643FC067CFFF98781CB622E98FD745714032B + 0B235CF31F20BE75FF096E03FE01C5CE5D7FC3601ABD8E41535180E1E05C6F14 + CDBF81ECFB8F9F613700A419A478C9D65B0CC98D871862BC5518BAF24DE19A7F + 005D06623F7FF51AD30098669082CA49A71826AFB8CAD05D68CA10E2AC0009FD + DF7FA1B1F08FE1CDBBB7A806C4F859C1A3E8DDC79F0C0185BB182EDE7AC7B0BE + D799415B991F453388FEF8E903AA01E15EE6608993975F31B8656E4709D02D13 + 9D1964C438E19A41F8DBB7CFA80604B999C09D8F1C5DE83683F0BF7FFF197EFC + F8826A809F9311C3A98BB748CA4C700340B971E28CA524E7C6FC8CE818000A3C + 81590C9B58CC0000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001854944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806100A3E14C140DFFCFA763887F3C12 + CF70ECEC0D86AAB65998067CFCF28B41C0763E98FDE6403C83303F07C33FA09A + B71F7E3088392D62B8BB259C81978B85E1ECE53BD80D40B60D643B48F39F3F10 + 67F358CD6778B52F1ACCBF78FD1E6103FE9E4B836B066141BB450CCF764582D9 + D76E3F246CC0CF532970CD202CE6B494E1E1B630A0A17F196EDD7F42D880B707 + E318981819C09ADF7DFCC9A011B886E1EEA66020FF1FC3FDC7CFB01B00F2B356 + D02A869B0F3E305424EA3364846A80BDD1B5F012C3D53BEF1966D558820D7CFE + EA35A601B000BBF5F00343CDD4D30C07CE3C07C70A1F372B838BB91443419426 + 90CD0276C19B776F510D88F1B382FB1539E0E0ECDFB0B080F03F7EFA806A40B8 + 97395882DF6621C1D47870B60BC3B76F9F510D08723321CA6610FEF7EF3FC38F + 1F5F500DF07332623875F1164999096E0028374E9CB194E4DC989F111D03002B + D67559EB1C43180000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000F94944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5368B3803FE + 01D5FCF983D00CC2672FDFC134809B9B1BAF0B9EBE7803D60C32ECE2F57B845D + 80CD6618FFDAED87A4BB00062EDF78C870EBFE13DC2EC067F31F30FF1FC3FDC7 + CF487701C8E61F3FFF800D7AFEEA35A601E836FFFCF507C5F6DFBF612EFAC7F0 + E6DD5B540362FCAC18F8F978890A833D47AF327CFCF401D580702F7354DB70D8 + 0C93FBF6ED33AA01416E26446BFEF7EF3FC38F1F5F500DF07332623875F11651 + 5E8001B801A0DC3871C6529273637E46740C002BB66C59EAC44C620000000049 + 454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001004944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5368B3803FE + 01D5FCF983D00CC2672FDFC16D0037373756839EBE7803D60C32ECE2F57B845D + 80CD6618FFDAED879806E0B2191D5CBEF190E1D6FD27B85D80CFE63F60FE3F86 + FB8F9F613700A499978707A7CD3F7EFE011BF4FCD56B4C03D06DFEF9EB0F8AED + BF7FC35CF48FE1CDBBB7A806C4F85931F0F3F11215067B8E5E65F8F8E903AA01 + E15EE6A8B6E1B01926F7EDDB67540382DC4C88D6FCEFDF7F861F3FBEA01AE0E7 + 64C470EAE22DA2BC0003700340B971E28CA524E7C6FC8CE8180048E16F597BCE + 9D230000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000FC4944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5368B3803FE + 01D5FCF983D00CC2672FDFC16D003737375E97DC79F09CE1E2F57B845D80CD66 + 18FFDAED87980610B219062EDF78C870EBFE13DC2EC067F31F30FF1FC3FDC7CF + B01B00D2CCCBC383D705C7CEDE6278FEEA35A601E836FFFCF507C5F6DFBF612E + FAC7F0E6DD5B540362FCAC18F8F978890A833D47AF327CFCF401D580702F7354 + DB70D80C93FBF6ED33AA01416E26446BFEF7EF3FC38F1F5F500DF07332623875 + F116515E8001B801A0DC3871C6529273637E46740C0021BE635977EAA72D0000 + 000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001CB4944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC480D580CAA3950C4B6E2C61789CFC18A7 + E663676F3054B5CDC234E0EFFFBF0C327364185E7C7BC17020E40083BDB43DC3 + 3FA09A3F7F109A41F8ECE53BD80D587B672D43CBA916860BAF2F3024682530CC + 759987A119C4BF78FD1E76031CD73A324CB09FC0E0B0C681E1CFBF3F0C8F129E + 32B0317280350ADA2D6278B62B12CCBE76FB21A60137DFDF64D058A481E2EFB9 + 4E0B188214C2C09A41E0E1B630A00BFE32DCBAFF04D380C243850C06A2060CB1 + 1A710C871E1F61705C6FC7E020E5C470A02D0C6CB394DB7286BB9B82812EF8C7 + 70FFF13354034CED04194C969B303C4B7DCEC0CDC40B76A6DA52258667536B19 + 562D92623017B16190F75AC57075B53F58EEF9ABD7A806347E886578F0E90183 + 3CAF02C3D5C89B0C69FB531896555B63A4830BCB7DC02E78F3EE2DAA01317E56 + 28A12CECB098E1F18E70440CFCFECBA01DBA91E1F4622F30FFE3A70FA806847B + 99A36886815B1B82E09A61E0E06C17866FDF3EA31A10E4668212DFC83643C410 + 72FFFEFD67F8F1E30BAA017E4E460CA72EDE222933C10D00E5C6893396929C1B + F333A26300FC1C815930D4A9C10000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B3A00000B3A01647F570D000002604944415478DA + 8DD25B48D35100C7F1EF7FEA9C96A60F4A362DF141C399E59BD05D4ABA5A60D9 + 5BF8522F4119F4926610425A4F121145CFF5605E085C299A5D347AE8E2D0E5C8 + B55AA5CD69CD369DEEF2DFFFF4DFC4E122B3DFDBE19CF3F9712E5273C3C54AA0 + 95D81CABA96F6C638508219054409C3AAE8D99B8FB20F05FC8B2C012E4AF5161 + 694560B984E16501CFAC60D01262D4AE44C69FA46FB46418C94A4DC3139C637C + 7C9AD3C12AF2A49CC8FCB94B57A518E0F96B1969D645D906071AB5A3F797933B + B93E2E975660F40F535FDFCEC3555964DA1DF45931D70E884D5120DC6EECD772 + 247788345D00110A31ECF9495DF60C17B697D3E3B270ADE9112F9232E97F3269 + 56FB8EAA802D0A2CB627660C1394154420C0E0948BC7C5095CD953418773901B + 75BD9C55774ECCD2D5524813A98422C089FD09D1F6FCA94E761615E09355D02F + 919F9749B13E078BEB3B03031F09089960928C46A3C1FACEB97089F9B99A85B3 + 677FA174CEC4CDAA6AFC0409A1F0557131EA74122F24925312F1CCFBF0FB64AC + D34E7A6E9BDD1160F35A1729B66E821376CE1FD273A6F2006F9D766495D0092D + 89229E49B70787D78D1C2F501405BBFB07A3AD130B80B7AB31FACEB7AAD359E3 + D331627380174AF7E671785F09AFAC363ABB4DC44D6B407DB4046D1C81B11052 + F8332C8D542B6DE30D71E822C32D2527D73797EF3030E418A7FBBE19C5A4D4B0 + 1A13E16D49EA25FE09C4600D52A1A144FF7E97A1800F2E27CF3A2CC816C520DA + C44874CD3F81266977D1467DDFBAEC743ECF4C31D6EF62DE142C13EDE2E9FF01 + D7A5ADC9695A63C02623BB15348A06C5AB1C14F7C4CBC535BF015419481881D7 + D75A0000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B3A00000B3A01647F570D000001A24944415478DA + 9D923B2C43511CC6BFEB158B129341A283342241448C44D46222418C2261A0F1 + 58BD26A193C482A18B8DC463D284A5212D121D3CDB26A452214A5295287A1FBD + F738E75EBDE90DD5C6B7DC9C73CFF7FBFEFFFF39DCE2EC4417804D18D53D3E63 + DF42061142C0510019EC2930FC706C885941D2025220BF8A82B98C807462E0B4 + 80B77782D3808CEB9092156C6C7A9E33000EBC0970EF51B4568491C3B104058A + 2000220F598883C822129F3104BC41B86E7035E921353A80A53BDD05E8305FA0 + A450A4876528A20042CD8A48CD920459E221BCBEC1B1F37845F33A2920A80392 + E96DE6B096CCF3DF66FA9544D55CBC3482E3061B4B5F9D3A44BF3E83DEF67C3D + DD94F70992A01508C664066B3977E2EC641F73265B2505047580C59CA3F55E7E + A7F54C01321F87427B6E3E5A330CCE6A2DC5827D1BB8B4713AA0AE2C8AA2E01E + A4A7D08F490FE5FA30DA6731ECADAC7BE075FB412E86B55BF8D8B5A7BDAA8D2A + 0DE07B88E039164724A63DB097DBB00A51CBF84BF5037EC200AEC0FD0FB35A41 + 360036B8A41A9BAA75335B6704A48AAB5D560F27CDFF02A49A99BE008A302DB4 + AC93694C0000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000002354944415478DA + 9D93DF4B936114C73FEF9CDB9C947A23A546E185062E4308122AB5488942A18B + A2A228229088EEBA0B83EECCCBCAEA1FA8ABD29B0CACB0FC1176538ACA963FA6 + A2AEF9966E6E367CF7EEDDF3F4CEB5B4B640FAC281E7E19CF339E73987479152 + 92D2A34BCAC6650B9A8FD4A0A40089E42BCDE941D128E85AD212E7A896B48F83 + 9B00FF939CB703C6BC26A0FD22D25AB0F5B68DE0467242EB804CD535B352DF32 + DC5C75B2737B1E617D8D79DF0ACD53605FAEA1B6AA8FDEA15F1D24DE9249B3B9 + 2B6837B2B853DD4457749496960ECE8D5772F9C0C8BAFF3720530709B97F404B + EE3E6E1D69E04DC0C3BDD6573CC986DD0EFE0DE80F43DC489E8716E175693977 + 8F37D1A90E71FFF65BAE9AF32ACB379D0246A7F7A7034A3C4E6A5DE568868112 + 55282B2DA4B278179EC0570606A6D0A5412CC7C062B130F9594D071CF617F2F0 + CC35A2C4889B65E644800955C52A159CDBEC84D734739506934195DEC75FD201 + F5C162AE379EE4933A8B61221CD2865D5AF9160AE38F8430AC122104B3A12526 + 9E2F86FE00E83AB8A60BC8D31CB8BD7E8840757D298D27AA189CF4F2B27B98AC + A0056C906DCB425F886F74D0FEC0BE0E99710884397DCC389F90F8CE17D15053 + C188DF47F7B331EADC7BE8B14DD791F80139C495B6B3F68E40ECE0E94C6B5C72 + 4418BCB0485D4539E30195F79D1E0C8FA8902FA43B15A36CFE8D7F4B69558EBA + F616F714951430B3FA9D85FE006BC3B163B243BEDB1AA04D39E4CCB775E95E03 + 2324B0080B22224EC9A7F2432AE627BA3D288D657888700000000049454E44AE + 426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B3A00000B3A01647F570D000001784944415478DA + 8DD1BF4BC3401407F0EFF9B38BC5D141B10E1637FF02A988205550C15FB3829B + A06EFE9C0A767170712A82B33FA0A08576A92D220EA2C5522D562B75B175A918 + AA4DDA26E725DAC38049F38684E4EE7DDEBD7764C7B33A01E008FA985CDAF41E + A346504A411840E7A79A740BBEC39225C410F883FC1B0C263501A35061434028 + 50C492325219C512B6B8B1457440F4AA0252C863A0338BE661BF2584036AF5C0 + 7913C61C71B4DA4A08C7DE30B476A96D0AACF4C0D56D835C1621BD0BF09DBE26 + D8EFF1F50B3C71A05A7DD09165BD29504411670C717B6E35E464B9037D5DF548 + DE64107EC43E4B9EE533987137F2EAF6862FD04A095412A1948A88C4F318D94E + 6B887FCE8EBB07A15A3DCD01A7A3EEA7F7F6172892043040168B506406B19344 + EF058CEEE63464DA89E0410A6EDD2DF4B6E5D1920EA19CCB180EEB3A0B2C84F8 + 67BF3A730E7C06BDA6937EFE00F612FA647E02F5617A4D84B8D82B524D66FBA3 + BA7533A056B229602999106A0698F7F61BDF228CEAE9FA9FA3C1000000004945 + 4E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000000534944415478DA + 63FCFFFF3F03258071F018C0C8C848944940F58CB80CB0075207A0E20E407C10 + BB7EDC0680288286A07B19DD0082861063005E43883500A72174710145614051 + 2C509C0E284B89E4028A0D0000DBA366E1865C514F0000000049454E44AE4260 + 82} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300004E2000004E2001167D99DE000000D34944415478DA + 63FCFFFF3F03258091AA063032329A00A9F940AC03C45780381188CF20A94F01 + 6263A09E4C5C065C06523381780A10E700713A10EB42A56D80B81E883D817AFE + E03200C46144B211C69701E2D540EC0BC46F50F410E1024B20DE0EC499506F31 + E033005B189403F15220DE0077161E03D003B9018D26C98000208E06E24E7457 + 01F59C21640048F174508803F171F47001EAD1C5678008106F06E250207E8214 + 13483EF8CF88CB001668883702F111A8302866A602F10C625C0072F659209E83 + 642346CCE00C0372C0C01B000040D57DE18A8F9E290000000049454E44AE4260 + 82} + Name = 'PngImage17' + Background = clWindow + end> + Left = 40 + Top = 136 + Bitmap = {} + end + object cxStyleRepository: TcxStyleRepository + Left = 8 + Top = 168 + PixelsPerInch = 96 + object cxStyle_SUBTOTAL: TcxStyle + AssignedValues = [svColor, svFont] + Color = 13298687 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -15 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + end + object cxStyle_TITULO: TcxStyle + AssignedValues = [svColor, svFont] + Color = 546166271 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + end + object cxStyle_DESCUENTO: TcxStyle + AssignedValues = [svColor] + Color = 549510336 + end + object cxStyle_SOLO_LECTURA: TcxStyle + AssignedValues = [svColor] + Color = 15657963 + end + object cxStyle_ESPECIALES: TcxStyle + AssignedValues = [svColor] + Color = 15657963 + end + object cxStyle_NORMAL_PAR: TcxStyle + AssignedValues = [svColor, svFont] + Color = 552923887 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + end + object cxStyle_NORMAL_IMPAR: TcxStyle + AssignedValues = [svColor, svFont] + Color = clWindow + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + end + object cxStyle_TITULO_OPCIONAL: TcxStyle + AssignedValues = [svColor, svFont] + Color = 546166271 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + end + end + object cxGridPopupMenu: TcxGridPopupMenu + Grid = cxGrid + PopupMenus = < + item + GridView = cxGridView + HitTypes = [gvhtNone, gvhtCell, gvhtRecord, gvhtRowIndicator] + Index = 0 + PopupMenu = GridGeneralPopupMenu + end> + Left = 112 + Top = 136 + end + object GridGeneralPopupMenu: TPopupMenu + Left = 144 + Top = 136 + object Copiar1: TMenuItem + Action = actDetallesCortar + end + object Copiar2: TMenuItem + Action = actDetallesCopiar + end + object Pegar1: TMenuItem + Action = actDetallesPegar + end + object N3: TMenuItem + Caption = '-' + end + object Aadir2: TMenuItem + Action = actAnadir + end + object Eliminar1: TMenuItem + Action = actEliminar + end + object N1: TMenuItem + Caption = '-' + end + object dsds1: TMenuItem + Action = actSubir + end + object Bajar1: TMenuItem + Action = actBajar + end + object N4: TMenuItem + Caption = '-' + end + object Seleccionartodo1: TMenuItem + Action = actSeleccionarTodo + end + object Anchoautomtico2: TMenuItem + Action = actAnchoAutomatico + end + object ExportaraMicrosoftExcel1: TMenuItem + Action = actExportar + end + end +end diff --git a/Source/GUIBase/uViewDetallesBase.pas b/Source/GUIBase/uViewDetallesBase.pas new file mode 100644 index 0000000..095cdff --- /dev/null +++ b/Source/GUIBase/uViewDetallesBase.pas @@ -0,0 +1,1297 @@ +unit uViewDetallesBase; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, cxStyles, ComCtrls, ToolWin, ActnList, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, + uDADataTable, cxGridLevel, cxClasses, cxControls, cxGridCustomView, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ImgList, + PngImageList, cxGrid, cxImageComboBox, cxTextEdit, cxMaskEdit, cxCheckBox, + uGridStatusUtils, uControllerDetallesBase, cxCurrencyEdit, + ExtCtrls, Grids, DBGrids, StdCtrls, + ExtActns, StdActns, cxRichEdit, JvExStdCtrls, JvCombobox, JvColorCombo, + TB2Item, TBX, TB2Dock, TB2Toolbar, uDAInterfaces, cxContainer, + Menus, cxGridCustomPopupMenu, cxGridPopupMenu; + +type + IViewDetallesBase = interface(IViewBase) + ['{852EB860-13B6-4355-A6B0-4542AB16896F}'] + procedure ExpandirTodo; + procedure ContraerTodo; + procedure AjustarAncho; + + procedure GotoFirst; + procedure GotoLast; + + procedure SaveGridStatus; + procedure RestoreGridStatus; + + procedure SeleccionarTodo; + + procedure BeginUpdate; + procedure EndUpdate; + + function IsEmpty : Boolean; + + function GetFocusedView : TcxGridDBTableView; + property _FocusedView : TcxGridDBTableView read GetFocusedView; + + function GetGrid : TcxGrid; + property _Grid : TcxGrid read GetGrid; + end; + + TfrViewDetallesBase = class(TfrViewBase, IViewDetallesBase) + ActionListContenido: TActionList; + DADataSource: TDADataSource; + actAnadir: TAction; + actEliminar: TAction; + actSubir: TAction; + actBajar: TAction; + ContenidoImageList: TPngImageList; + ToolBar1: TToolBar; + cxStyleRepository: TcxStyleRepository; + ToolButton1: TToolButton; + ToolButton2: TToolButton; + ToolButton3: TToolButton; + ToolButton4: TToolButton; + cxGrid: TcxGrid; + cxGridView: TcxGridDBTableView; + cxGridViewID: TcxGridDBColumn; + cxGridViewPOSICION: TcxGridDBColumn; + cxGridViewTIPO: TcxGridDBColumn; + cxGridViewDESCRIPCION: TcxGridDBColumn; + cxGridViewCANTIDAD: TcxGridDBColumn; + cxGridViewIMPORTEUNIDAD: TcxGridDBColumn; + cxGridViewIMPORTETOTAL: TcxGridDBColumn; + cxGridViewVISIBLE: TcxGridDBColumn; + cxGridLevel: TcxGridLevel; + RichEditBold1: TRichEditBold; + RichEditItalic1: TRichEditItalic; + ToolButton6: TToolButton; + ToolButton7: TToolButton; + RichEditUnderline1: TRichEditUnderline; + RichEditAlignLeft1: TRichEditAlignLeft; + RichEditAlignRight1: TRichEditAlignRight; + RichEditAlignCenter1: TRichEditAlignCenter; + ToolButton8: TToolButton; + ToolButton9: TToolButton; + ToolButton10: TToolButton; + ToolButton11: TToolButton; + ToolButton12: TToolButton; + ToolButton13: TToolButton; + FontEdit1: TFontEdit; + ToolButton14: TToolButton; + UpDown1: TUpDown; + FontSize: TEdit; + FontName: TJvFontComboBox; + TBXDock1: TTBXDock; + TBXToolbar1: TTBXToolbar; + TBXItem1: TTBXItem; + TBXItem2: TTBXItem; + TBXSeparatorItem1: TTBXSeparatorItem; + TBXItem3: TTBXItem; + TBXItem4: TTBXItem; + TBXSeparatorItem2: TTBXSeparatorItem; + TBXItem5: TTBXItem; + TBXItem6: TTBXItem; + TBXItem7: TTBXItem; + TBXSeparatorItem3: TTBXSeparatorItem; + TBXItem8: TTBXItem; + TBXSeparatorItem4: TTBXSeparatorItem; + TBXItem9: TTBXItem; + TBXItem10: TTBXItem; + TBXItem11: TTBXItem; + cxStyle_SUBTOTAL: TcxStyle; + cxStyle_TITULO: TcxStyle; + actAnchoAutomatico: TAction; + TBXSeparatorItem5: TTBXSeparatorItem; + TBXItem13: TTBXItem; + cxStyle_DESCUENTO: TcxStyle; + actDetallesCortar: TAction; + actDetallesCopiar: TAction; + actDetallesPegar: TAction; + cxStyle_SOLO_LECTURA: TcxStyle; + cxStyle_ESPECIALES: TcxStyle; + cxStyle_NORMAL_PAR: TcxStyle; + cxStyle_NORMAL_IMPAR: TcxStyle; + TBXSubmenuItem1: TTBXSubmenuItem; + TBXSeparatorItem6: TTBXSeparatorItem; + actAnadirCapitulo: TAction; + actAnadirTitulo: TAction; + actAnadirSubtotal: TAction; + actAnadirDescuento: TAction; + TBXItem12: TTBXItem; + TBXItem14: TTBXItem; + TBXItem15: TTBXItem; + TBXItem16: TTBXItem; + TBXSeparatorItem7: TTBXSeparatorItem; + cxGridPopupMenu: TcxGridPopupMenu; + GridGeneralPopupMenu: TPopupMenu; + dsds1: TMenuItem; + Bajar1: TMenuItem; + Eliminar1: TMenuItem; + N1: TMenuItem; + Copiar1: TMenuItem; + Copiar2: TMenuItem; + Pegar1: TMenuItem; + N3: TMenuItem; + Aadir2: TMenuItem; + N4: TMenuItem; + Anchoautomtico2: TMenuItem; + actExportar: TAction; + ExportaraMicrosoftExcel1: TMenuItem; + actSeleccionarTodo: TAction; + Seleccionartodo1: TMenuItem; + cxStyle_TITULO_OPCIONAL: TcxStyle; + TBXItem17: TTBXItem; + procedure actAnadirExecute(Sender: TObject); + procedure actEliminarExecute(Sender: TObject); + procedure actSubirExecute(Sender: TObject); + procedure actBajarExecute(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + procedure actSubirUpdate(Sender: TObject); + procedure actBajarUpdate(Sender: TObject); + procedure actAnadirUpdate(Sender: TObject); + + procedure cxGridViewEditValueChanged(Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem); + procedure cxGridViewEditKeyDown(Sender: TcxCustomGridTableView; + AItem: TcxCustomGridTableItem; AEdit: TcxCustomEdit; var Key: Word; Shift: TShiftState); + procedure cxGridViewKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); + + procedure cxGridViewInitEdit(Sender: TcxCustomGridTableView; + AItem: TcxCustomGridTableItem; AEdit: TcxCustomEdit); + procedure FontEdit1BeforeExecute(Sender: TObject); + procedure FontEdit1Accept(Sender: TObject); + + procedure CustomViewCreate(Sender: TObject); + procedure CustomViewDestroy(Sender: TObject); + procedure FontSizeChange(Sender: TObject); + procedure FontNameChange(Sender: TObject); + + procedure cxGridViewEditing(Sender: TcxCustomGridTableView; + AItem: TcxCustomGridTableItem; var AAllow: Boolean); + procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; + out AStyle: TcxStyle); + procedure TBXItem13Click(Sender: TObject); + procedure actAnchoAutomaticoExecute(Sender: TObject); + procedure actAnchoAutomaticoUpdate(Sender: TObject); + procedure actAnadirCapituloUpdate(Sender: TObject); + procedure actAnadirTituloUpdate(Sender: TObject); + procedure actAnadirSubtotalUpdate(Sender: TObject); + procedure actAnadirDescuentoUpdate(Sender: TObject); + procedure actAnadirCapituloExecute(Sender: TObject); + procedure actAnadirTituloExecute(Sender: TObject); + procedure actAnadirSubtotalExecute(Sender: TObject); + procedure actAnadirDescuentoExecute(Sender: TObject); + procedure actDetallesCopiarExecute(Sender: TObject); + procedure actDetallesCopiarUpdate(Sender: TObject); + procedure actDetallesPegarExecute(Sender: TObject); + procedure actSeleccionarTodoExecute(Sender: TObject); + procedure actSeleccionarTodoUpdate(Sender: TObject); + procedure actDetallesPegarUpdate(Sender: TObject); + procedure actDetallesCortarExecute(Sender: TObject); + procedure actDetallesCortarUpdate(Sender: TObject); + procedure cxGridViewFocusedItemChanged(Sender: TcxCustomGridTableView; + APrevFocusedItem, AFocusedItem: TcxCustomGridTableItem); + procedure cxGridViewFocusedRecordChanged(Sender: TcxCustomGridTableView; + APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; + ANewItemRecordFocusingChanged: Boolean); + procedure actExportarExecute(Sender: TObject); + + private + FController : IControllerDetallesBase; + FDetalles: IDAStronglyTypedDataTable; + FGridStatus: TcxGridStatus; + CurEdit: TcxRichEdit; + FUpdating: Boolean; + function CurrText: TTextAttributes; +// procedure OnSelectChange(Sender:TObject); + + function GetController: IControllerDetallesBase; + procedure SetController(const Value: IControllerDetallesBase); + function GetDetalles: IDAStronglyTypedDataTable; + procedure SetDetalles(const Value: IDAStronglyTypedDataTable); + + function DarPosicionCAMPO(const Nombre:String): Integer; + + procedure DoPasteText(Sender: TObject; AText: string); + procedure TratamientoTeclas(Key: Word; Shift: TShiftState; AItem: TcxCustomGridTableItem = nil); + + protected + function DarListaSeleccionados: TIntegerArray; + function HayQueRecalcular(AItem: TcxCustomGridTableItem): Boolean; virtual; + function EsTipoEditable(AItem: TcxCustomGridTableItem): Boolean; virtual; + function DarTipoConcepto(ARecord: TcxCustomGridRecord): string; virtual; + function DarFuentePorDefecto(const ATipo : String = TIPO_DETALLE_CONCEPTO): TFont; virtual; + function GetFocusedView : TcxGridDBTableView; virtual; + function GetGrid : TcxGrid; virtual; + procedure SeleccionarFilaActual; + + public + procedure GotoFirst; + procedure GotoLast; + procedure BeginUpdate; + procedure EndUpdate; + procedure SaveGridStatus; + procedure RestoreGridStatus; + procedure ExpandirTodo; + procedure ContraerTodo; + procedure AjustarAncho; + procedure SeleccionarTodo; + function IsEmpty : Boolean; + destructor Destroy; override; + property _FocusedView : TcxGridDBTableView read GetFocusedView; + property _Grid : TcxGrid read GetGrid; + property Controller: IControllerDetallesBase read GetController write SetController; + property Detalles: IDAStronglyTypedDataTable read GetDetalles write SetDetalles; + end; + +implementation +{$R *.dfm} + +uses + uDMBase, uCalculosUtils, dxOffice11, uSistemaFunc, uGridClipboardUtils, + Clipbrd, cxGridExportLink; + +type + TOnPaste = procedure(Sender: TObject; AText: string) of object; + + TcxMyRichEdit = class(TcxRichEdit) + private + FOnPaste: TOnPaste; + FOldWndProc : TWndMethod; + FGrid: TcxGrid; + procedure InnerControlWindowProc(var Message: TMessage); + procedure FInnerRichOnKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); + protected + procedure DoPaste; virtual; + procedure Initialize; override; + procedure HookInnerControl; + public + procedure PasteFromClipboard; override; + destructor Destroy; override; + property _Grid : TcxGrid read FGrid write FGrid; + property OnPaste: TOnPaste read FOnPaste write FOnPaste; + end; + + TcxMyRichEditProperties = class(TcxRichEditProperties) + public + class function GetContainerClass: TcxContainerClass; override; + end; + + +var + _FRecalculando : Boolean; + _FRecalcular : Boolean; + _FPegando : Boolean; + +function EnumFontsProc(var LogFont: TLogFont; var TextMetric: TTextMetric; + FontType: Integer; Data: Pointer): Integer; stdcall; +begin + TStrings(Data).Add(LogFont.lfFaceName); + Result := 1; +end; + + +procedure TfrViewDetallesBase.actAnadirCapituloExecute(Sender: TObject); +var + bEsMultiSelect : Boolean; +begin + // Debo quitar el multiselect porque provoca que se quede seleccionado + // el registro actual y no el nuevo registro que voy a aadir + bEsMultiSelect := _FocusedView.OptionsSelection.MultiSelect; + if bEsMultiSelect then + _FocusedView.OptionsSelection.MultiSelect := False; + + ShowHourglassCursor; + _FocusedView.BeginUpdate; + try + if _FocusedView.Controller.EditingController.IsEditing then + _FocusedView.Controller.EditingController.Edit.PostEditValue; + + if Assigned(Controller) and Assigned(FDetalles) then + begin + Controller.Add(FDetalles, TIPO_DETALLE_TITULO); + Controller.Add(FDetalles, TIPO_DETALLE_CONCEPTO); + Controller.Add(FDetalles, TIPO_DETALLE_CONCEPTO); + Controller.Add(FDetalles, TIPO_DETALLE_SUBTOTAL); +// Controller.add(FDetalles, TIPO_DETALLE_DESCUENTO); + end; + finally + _FocusedView.EndUpdate; + HideHourglassCursor; + + // Dejo la propiedad MultiSelect como estaba + if bEsMultiSelect then + _FocusedView.OptionsSelection.MultiSelect := bEsMultiSelect; + end; +end; + +procedure TfrViewDetallesBase.actAnadirCapituloUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := not ReadOnly; +end; + +procedure TfrViewDetallesBase.actAnadirDescuentoExecute(Sender: TObject); +var + bEsMultiSelect : Boolean; +begin + // Debo quitar el multiselect porque provoca que se quede seleccionado + // el registro actual y no el nuevo registro que voy a aadir + bEsMultiSelect := cxGridView.OptionsSelection.MultiSelect; + if bEsMultiSelect then + _FocusedView.OptionsSelection.MultiSelect := False; + + ShowHourglassCursor; + _FocusedView.BeginUpdate; + try + if _FocusedView.Controller.EditingController.IsEditing then + _FocusedView.Controller.EditingController.Edit.PostEditValue; + + if Assigned(Controller) and Assigned(FDetalles) then + Controller.Add(FDetalles, TIPO_DETALLE_DESCUENTO); + finally + _FocusedView.EndUpdate; + HideHourglassCursor; + + // Dejo la propiedad MultiSelect como estaba + if bEsMultiSelect then + _FocusedView.OptionsSelection.MultiSelect := bEsMultiSelect; + end; +end; + +procedure TfrViewDetallesBase.actAnadirDescuentoUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := not ReadOnly; +end; + +procedure TfrViewDetallesBase.actAnadirExecute(Sender: TObject); +var + bEsMultiSelect : Boolean; +begin + // Debo quitar el multiselect porque provoca que se quede seleccionado + // el registro actual y no el nuevo registro que voy a aadir + bEsMultiSelect := cxGridView.OptionsSelection.MultiSelect; + if bEsMultiSelect then + _FocusedView.OptionsSelection.MultiSelect := False; + + ShowHourglassCursor; + _FocusedView.BeginUpdate; + try + if _FocusedView.Controller.EditingController.IsEditing then + _FocusedView.Controller.EditingController.Edit.PostEditValue; + + if Assigned(Controller) and Assigned(FDetalles) then + Controller.Add(FDetalles, TIPO_DETALLE_CONCEPTO); + finally + _FocusedView.EndUpdate; + HideHourglassCursor; + + // Dejo la propiedad MultiSelect como estaba + if bEsMultiSelect then + _FocusedView.OptionsSelection.MultiSelect := bEsMultiSelect; + end; +end; + +procedure TfrViewDetallesBase.actAnadirSubtotalExecute(Sender: TObject); +var + bEsMultiSelect : Boolean; +begin + // Debo quitar el multiselect porque provoca que se quede seleccionado + // el registro actual y no el nuevo registro que voy a aadir + bEsMultiSelect := cxGridView.OptionsSelection.MultiSelect; + if bEsMultiSelect then + _FocusedView.OptionsSelection.MultiSelect := False; + + ShowHourglassCursor; + _FocusedView.BeginUpdate; + try + if _FocusedView.Controller.EditingController.IsEditing then + _FocusedView.Controller.EditingController.Edit.PostEditValue; + + if Assigned(Controller) and Assigned(FDetalles) then + Controller.Add(FDetalles, TIPO_DETALLE_SUBTOTAL); + finally + _FocusedView.EndUpdate; + HideHourglassCursor; + + // Dejo la propiedad MultiSelect como estaba + if bEsMultiSelect then + _FocusedView.OptionsSelection.MultiSelect := bEsMultiSelect; + end; +end; + +procedure TfrViewDetallesBase.actAnadirSubtotalUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := not ReadOnly; +end; + +procedure TfrViewDetallesBase.actAnadirTituloExecute(Sender: TObject); +var + bEsMultiSelect : Boolean; +begin + // Debo quitar el multiselect porque provoca que se quede seleccionado + // el registro actual y no el nuevo registro que voy a aadir + bEsMultiSelect := cxGridView.OptionsSelection.MultiSelect; + if bEsMultiSelect then + cxGridView.OptionsSelection.MultiSelect := False; + + ShowHourglassCursor; + _FocusedView.BeginUpdate; + try + if _FocusedView.Controller.EditingController.IsEditing then + _FocusedView.Controller.EditingController.Edit.PostEditValue; + + if Assigned(Controller) and Assigned(FDetalles) then + Controller.Add(FDetalles, TIPO_DETALLE_TITULO); + finally + _FocusedView.EndUpdate; + HideHourglassCursor; + + // Dejo la propiedad MultiSelect como estaba + if bEsMultiSelect then + _FocusedView.OptionsSelection.MultiSelect := bEsMultiSelect; + end; +end; + +procedure TfrViewDetallesBase.actAnadirTituloUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := not ReadOnly; +end; + +procedure TfrViewDetallesBase.actEliminarExecute(Sender: TObject); +var + AuxTop, AuxRow:Integer; + +begin + ShowHourglassCursor; + _FocusedView.BeginUpdate; + try + if Assigned(Controller) and Assigned(FDetalles) then + begin + AuxTop := cxGridView.Controller.TopRowIndex; + AuxRow := cxGridView.DataController.FocusedRowIndex; + + Controller.Delete(FDetalles, darListaSeleccionados); + + if (FDetalles.RecordCount > 0) then + begin + //Selecciona en el grid el registro siguiente + if (AuxRow < cxGridView.DataController.RowCount-1) then + Inc(AuxRow) + else + Dec(AuxRow); + + _FocusedView.DataController.SelectRows(AuxRow,AuxRow); + _FocusedView.Controller.TopRowIndex := AuxTop; + end; + end + finally + _FocusedView.EndUpdate; + HideHourglassCursor; + end; + + SeleccionarFilaActual; +end; + +procedure TfrViewDetallesBase.actEliminarUpdate(Sender: TObject); +begin + if not Assigned(DADataSource.DataTable) then + (Sender as TAction).Enabled := False + else + (Sender as TAction).Enabled := (not ReadOnly) + and (not DADataSource.DataTable.IsEmpty) +end; + +procedure TfrViewDetallesBase.actExportarExecute(Sender: TObject); +var + AFileName : String; + +begin + inherited; + if PreguntarFicheroExcelExportar(AFileName) then + ExportGridToExcel(AFileName, cxGrid); +end; + +procedure TfrViewDetallesBase.actSubirUpdate(Sender: TObject); +begin + inherited; + if not Assigned(_FocusedView.Controller.FocusedRow) then + (Sender as TAction).Enabled := False + else + (Sender as TAction).Enabled := (not ReadOnly) + and (not _FocusedView.Controller.FocusedRow.IsFirst) +end; + +procedure TfrViewDetallesBase.AjustarAncho; +begin + if Assigned(_FocusedView) then + _FocusedView.ApplyBestFit; +end; + +procedure TfrViewDetallesBase.BeginUpdate; +begin + if Assigned(_FocusedView) then + _FocusedView.BeginUpdate; +end; + +function TfrViewDetallesBase.DarTipoConcepto(ARecord: TcxCustomGridRecord): string; +var + IndiceCol : Integer; +begin + IndiceCol := cxGridView.GetColumnByFieldName(CAMPO_TIPO).Index; + Result := ARecord.DisplayTexts[IndiceCol]; +end; + +destructor TfrViewDetallesBase.Destroy; +begin + FController := NIL; + FDetalles := NIL; + + if Assigned(FGridStatus) then + FreeAndNil(FGridStatus); + inherited; +end; + +procedure TfrViewDetallesBase.DoPasteText(Sender: TObject; AText: string); +begin +// ShowMessage(AText); +end; + +procedure TfrViewDetallesBase.ContraerTodo; +begin + if Assigned(_FocusedView) then + _FocusedView.ViewData.Collapse(True); +end; + +function TfrViewDetallesBase.CurrText: TTextAttributes; +begin + Result := NIL; + if Assigned(CurEdit) then +// if CurEdit.FindSelection then + if CurEdit.SelLength > 0 then + Result := CurEdit.SelAttributes + else + Result := CurEdit.DefAttributes; +end; + +procedure TfrViewDetallesBase.CustomViewCreate(Sender: TObject); +begin + inherited; + //Debemos tener la certeza de que las operaciones del grid estan deshabilitadas y que + //cuando pulsamos teclas de insercion flecha abajo y demas salta nuestra propia lgia del controlador + cxGridView.OptionsData.Appending := False; + cxGridView.OptionsData.Deleting := False; + cxGridView.OptionsData.Inserting := False; + + CurEdit := Nil; + FUpdating := False; +// cxGridView.OptionsView.RowSeparatorColor := dmBase.StyleManager.Colors.ButtonSeparatorColor; + cxGridViewDESCRIPCION.PropertiesClass := TcxMyRichEditProperties; +end; + +procedure TfrViewDetallesBase.CustomViewDestroy(Sender: TObject); +begin + inherited; + CurEdit := Nil; +end; + +procedure TfrViewDetallesBase.cxGridViewEditing(Sender: TcxCustomGridTableView; + AItem: TcxCustomGridTableItem; var AAllow: Boolean); +begin + AAllow := EsTipoEditable(AItem); +end; + +procedure TfrViewDetallesBase.cxGridViewEditKeyDown( + Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem; + AEdit: TcxCustomEdit; var Key: Word; Shift: TShiftState); +begin + inherited; + TratamientoTeclas(Key, Shift, AItem); +end; + +procedure TfrViewDetallesBase.cxGridViewEditValueChanged(Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem); +begin + inherited; + if not _FRecalcular and HayQueRecalcular(AItem) then + _FRecalcular := True; +end; + +procedure TfrViewDetallesBase.cxGridViewFocusedItemChanged( + Sender: TcxCustomGridTableView; APrevFocusedItem, + AFocusedItem: TcxCustomGridTableItem); +begin + inherited; + if _FRecalcular and not _FRecalculando then //and HayQueRecalcular(APrevFocusedItem) then + begin + _FRecalculando := True; + try + if Sender.Controller.EditingController.IsEditing then + Sender.Controller.EditingController.Edit.PostEditValue; + Controller.ActualizarTotales(Detalles); + _FRecalcular := False; + finally + _FRecalculando := False; + end; + end; +end; + +procedure TfrViewDetallesBase.cxGridViewFocusedRecordChanged( + Sender: TcxCustomGridTableView; APrevFocusedRecord, + AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); +begin + inherited; + + if _FRecalcular and not _FRecalculando then //and HayQueRecalcular(cxGridView.Controller.FocusedItem) then + begin + _FRecalculando := True; + try + if Sender.Controller.EditingController.IsEditing then + Sender.Controller.EditingController.Edit.PostEditValue; + Controller.ActualizarTotales(Detalles); + _FRecalcular := False; + finally + _FRecalculando := False; + end; + end; +end; + +procedure TfrViewDetallesBase.cxGridViewInitEdit(Sender: TcxCustomGridTableView; + AItem: TcxCustomGridTableItem; AEdit: TcxCustomEdit); +var + FuentePorDefecto: TFont; + ARecord: TcxCustomGridRecord; +begin + inherited; + + if AEdit is TcxMyRichEdit then + begin + TcxMyRichEdit(AEdit).OnPaste := DoPasteText; + TcxMyRichEdit(AEdit)._Grid := _Grid; + end; + + // Este exit es para que no se genere cdigo RTF para el tamao de la fuente + // porque luego sale demasiado grande en los informes impresos. + Exit; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + if AEdit is TcxRichEdit then + begin + ARecord := AItem.FocusedCellViewInfo.GridRecord; + FuentePorDefecto := DarFuentePorDefecto(DarTipoConcepto(ARecord)); + try + //La primera vez que accedemos al grid entra dos veces y perderiamos el editor + //dando un pete. + if not Assigned(CurEdit) then + begin + CurEdit := TcxRichEdit(AEdit); + FontEdit1.Enabled := True; + RichEditBold1.Enabled := True; + RichEditItalic1.Enabled := True; + RichEditUnderline1.Enabled := True; + RichEditAlignLeft1.Enabled := True; + RichEditAlignRight1.Enabled := True; + RichEditAlignCenter1.Enabled := True; + + if not VarIsNull(AItem.EditValue) and VarIsType(AItem.EditValue, varString) then + if Length(AItem.EditValue) = 0 then + CurEdit.DefAttributes.Assign(FuentePorDefecto); + end + else begin + if not VarIsNull(AItem.EditValue) and VarIsType(AItem.EditValue, varString) then + if Length(AItem.EditValue) = 0 then + CurEdit.DefAttributes.Assign(FuentePorDefecto); + end; + finally + FreeAndNil(FuentePorDefecto); + end; + end + else + begin + CurEdit := Nil; + FontEdit1.Enabled := False; + RichEditBold1.Enabled := False; + RichEditItalic1.Enabled := False; + RichEditUnderline1.Enabled := False; + RichEditAlignLeft1.Enabled := False; + RichEditAlignRight1.Enabled := False; + RichEditAlignCenter1.Enabled := False; + end; +end; + +procedure TfrViewDetallesBase.cxGridViewKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); +begin + inherited; + TratamientoTeclas(Key, Shift); +end; + +procedure TfrViewDetallesBase.cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + + AStyle := NIL; + if Assigned(AItem) then + begin + if Odd(ARecord.Index) then + AStyle := cxStyle_NORMAL_PAR + else + AStyle := cxStyle_NORMAL_IMPAR; + end; + + if Assigned(ARecord) then + begin + + if ARecord.Values[3] = TIPO_DETALLE_TITULO then + AStyle := cxStyle_TITULO; + + if ARecord.Values[3] = TIPO_DETALLE_TITULO_OPCIONAL then + AStyle := cxStyle_TITULO_OPCIONAL; + + if ARecord.Values[3] = TIPO_DETALLE_SUBTOTAL then + AStyle := cxStyle_SUBTOTAL; + + if ARecord.Values[3] = TIPO_DETALLE_DESCUENTO then + AStyle := cxStyle_DESCUENTO; + end; + +end; + +function TfrViewDetallesBase.DarFuentePorDefecto(const ATipo: String): TFont; +begin + Result := TFont.Create; + + if ATipo = TIPO_DETALLE_CONCEPTO then + begin + Result.Name := 'Tahoma'; + Result.Size := 11; + Result.Style := []; + end; + + if ATipo = TIPO_DETALLE_TITULO then + begin + Result.Name := cxStyle_TITULO.Font.Name; + Result.Color := cxStyle_TITULO.TextColor; + Result.Size := cxStyle_TITULO.Font.Size; + Result.Style := cxStyle_TITULO.Font.Style; + end; + + if ATipo = TIPO_DETALLE_TITULO_OPCIONAL then + begin + Result.Name := cxStyle_TITULO_OPCIONAL.Font.Name; + Result.Color := cxStyle_TITULO_OPCIONAL.TextColor; + Result.Size := cxStyle_TITULO_OPCIONAL.Font.Size; + Result.Style := cxStyle_TITULO_OPCIONAL.Font.Style; + end; + + if ATipo = TIPO_DETALLE_SUBTOTAL then + begin + Result.Name := cxStyle_SUBTOTAL.Font.Name; + Result.Color := cxStyle_SUBTOTAL.TextColor; + Result.Size := cxStyle_SUBTOTAL.Font.Size; + Result.Style := cxStyle_SUBTOTAL.Font.Style; + end; + + if ATipo = TIPO_DETALLE_DESCUENTO then + begin + Result.Name := cxStyle_DESCUENTO.Font.Name; + Result.Color := cxStyle_DESCUENTO.TextColor; + Result.Size := cxStyle_DESCUENTO.Font.Size; + Result.Style := cxStyle_DESCUENTO.Font.Style; + end; +end; + +function TfrViewDetallesBase.DarListaSeleccionados: TIntegerArray; +var + i, j: Integer; +begin + j := DarPosicionCampo(CAMPO_POSICION); + + with cxGridView.Controller do + for i:=0 to SelectedRecordCount-1 do + begin + SetLength(Result, i+1); + Result[i] := SelectedRecords[i].Values[j]; + end; +end; + +function TfrViewDetallesBase.DarPosicionCAMPO(const Nombre: String): Integer; +var + i: Integer; +begin + i:=0; + while ((cxGridView.Columns[i].DataBinding.FieldName <> Nombre) and + (i < cxGridView.ColumnCount)) do + inc(i); + + if (i = cxGridView.ColumnCount) then + raise Exception.Create('El campo ' + Nombre + ' no se ha encontrado en el grid (uViewDetallesBase)'); + + Result := i; +end; + +procedure TfrViewDetallesBase.EndUpdate; +begin + if Assigned(_FocusedView) then + _FocusedView.EndUpdate; +end; + +function TfrViewDetallesBase.EsTipoEditable(AItem: TcxCustomGridTableItem): Boolean; +var + IndiceCol : Integer; +begin + Result := True; + + IndiceCol := cxGridView.GetColumnByFieldName(CAMPO_TIPO).Index; + if (AItem.GridView.Items[IndiceCol].EditValue = TIPO_DETALLE_SALTO) then + begin + IndiceCol := cxGridView.GetColumnByFieldName(CAMPO_CONCEPTO).Index; + if AItem.Index >= IndiceCol then + Result := False + end + else + begin + if (AItem.GridView.Items[IndiceCol].EditValue = TIPO_DETALLE_SUBTOTAL) + or (AItem.GridView.Items[IndiceCol].EditValue = TIPO_DETALLE_TITULO_OPCIONAL) + or (AItem.GridView.Items[IndiceCol].EditValue = TIPO_DETALLE_TITULO) then + begin + IndiceCol := cxGridView.GetColumnByFieldName(CAMPO_CONCEPTO).Index; + if AItem.Index > IndiceCol then + Result := False + end + end; +end; + +procedure TfrViewDetallesBase.ExpandirTodo; +begin + if Assigned(_FocusedView) then + _FocusedView.ViewData.Expand(True); +end; + +procedure TfrViewDetallesBase.FontEdit1Accept(Sender: TObject); +begin + inherited; + CurrText.Assign(FontEdit1.Dialog.Font); +end; + +procedure TfrViewDetallesBase.FontEdit1BeforeExecute(Sender: TObject); +begin + inherited; + FontEdit1.Dialog.Font.Assign(CurEdit.SelAttributes); +end; + +procedure TfrViewDetallesBase.FontNameChange(Sender: TObject); +begin + if FUpdating then Exit; + CurrText.Name := FontName.Items[FontName.ItemIndex]; +end; + +procedure TfrViewDetallesBase.FontSizeChange(Sender: TObject); +begin + if FUpdating then Exit; + CurrText.Size := StrToInt(FontSize.Text); +end; + +function TfrViewDetallesBase.GetController: IControllerDetallesBase; +begin + Result := FController; +end; + +function TfrViewDetallesBase.GetDetalles: IDAStronglyTypedDataTable; +begin + Result := FDetalles; +end; + +function TfrViewDetallesBase.GetFocusedView: TcxGridDBTableView; +begin + Result := cxGridView; +end; + +function TfrViewDetallesBase.GetGrid: TcxGrid; +begin + Result := cxGrid; +end; + +procedure TfrViewDetallesBase.GotoFirst; +begin + if Assigned(_FocusedView) then + _FocusedView.DataController.GotoFirst; +end; + +procedure TfrViewDetallesBase.GotoLast; +begin + if Assigned(_FocusedView) then + _FocusedView.DataController.GotoLast; +end; + +function TfrViewDetallesBase.HayQueRecalcular(AItem: TcxCustomGridTableItem): Boolean; +begin + Result := (AItem = cxGridViewTIPO) + or (AItem = cxGridViewCANTIDAD) + or (AItem = cxGridViewIMPORTEUNIDAD); +end; + +function TfrViewDetallesBase.IsEmpty: Boolean; +begin + Result := (_FocusedView.ViewData.RowCount < 1); +end; + +{procedure TfrViewDetallesBase.OnSelectChange(Sender: TObject); +begin + if (csDestroying in ComponentState) then + Exit; + + try + FUpdating := True; +// FontSize.Text := IntToStr(CurEdit.SelAttributes.Size); +// FontName.FontName := CurEdit.SelAttributes.Name; + finally + FUpdating := False; + end; +end;} + +procedure TfrViewDetallesBase.RestoreGridStatus; +begin + if Assigned(FGridStatus) and (not IsEmpty) then + FGridStatus.Restore(_FocusedView); +end; + +procedure TfrViewDetallesBase.SaveGridStatus; +begin + FreeAndNil(FGridStatus); + if not IsEmpty then + FGridStatus := TcxGridStatus.Create(_FocusedView); +end; + +procedure TfrViewDetallesBase.SeleccionarFilaActual; +begin + //Quitamos lo que hubiera seleccionado + cxGrid.ActiveView.DataController.ClearSelection; + with cxGrid.ActiveView.DataController do + if RowCount > 0 then + SelectRows(GetFocusedRowIndex,GetFocusedRowIndex); +end; + +procedure TfrViewDetallesBase.SeleccionarTodo; +begin + if Assigned(_FocusedView) then + begin + _FocusedView.Controller.SelectAll; + end; +end; + +procedure TfrViewDetallesBase.SetController(const Value: IControllerDetallesBase); +var + AListaValores : TStringList; + AItem : TcxImageComboBoxItem; + i: integer; + DC: HDC; +begin + FController := Value; + + //Rellenamos los tipos de letra que tenemos + FontName.Items.Clear; + DC := GetDC(0); + EnumFonts(DC, nil, @EnumFontsProc, Pointer(FontName.Items)); + ReleaseDC(0, DC); + FontName.Sorted := True; + + //Rellenamos los tipos de conceptos que hay + if Assigned(FController) then + begin + AListaValores := FController.DarListaTIPOSDETALLE; + with (cxGridViewTIPO.Properties as TcxImageComboBoxProperties) do + if Items.Count = 0 then + begin + Items.BeginUpdate; + try + Items.Clear; + for i:=0 to AListaValores.Count-1 do + begin + AItem := Items.Add; + AItem.Tag := i; + AItem.Description := AListaValores.ValueFromIndex[i]; + AItem.Value := AListaValores.Names[i]; + end; + finally + DefaultDescription := AListaValores.ValueFromIndex[0]; + FreeAndNil(AListaValores); + Items.EndUpdate; + end; + end; + end; +end; + +procedure TfrViewDetallesBase.SetDetalles(const Value: IDAStronglyTypedDataTable); +begin + FDetalles := Value; + if Assigned(FDetalles) then + DADataSource.DataTable := FDetalles.DataTable + else + DADataSource.DataTable := NIL; +end; + +procedure TfrViewDetallesBase.TBXItem13Click(Sender: TObject); +begin + inherited; + if _FocusedView.Controller.EditingController.IsEditing then + _FocusedView.Controller.EditingController.Edit.PostEditValue; +end; + +procedure TfrViewDetallesBase.TratamientoTeclas(Key: Word; Shift: TShiftState; AItem: TcxCustomGridTableItem = nil); +begin + cxGridView.BeginUpdate; + try + case Key of + VK_DOWN : begin + //En el caso de ser la ltima fila hacemos un append nosotros no el grid + //ya que se saltaria la lgica del controllerDetallesBase + if cxGridView.Controller.IsFinish then + begin + //Key := 0; + if _FocusedView.Controller.EditingController.IsEditing then + _FocusedView.Controller.EditingController.Edit.PostEditValue; + actAnadir.Execute; + end; + + //Baja los conceptos seleccionados + if Shift = [ssAlt] then + begin + //Key := 0; + actBajar.Execute; + end; + end; + VK_UP : begin + //Sube los conceptos seleccionados + if Shift = [ssAlt] then + begin + //Key := 0; + actSubir.Execute; + end; + end; + + VK_RETURN, VK_RIGHT + : begin + //En el caso de ser la ltima fila hacemos un append nosotros no el grid + //ya que se saltaria la lgica del controllerDetallesBase + if Assigned(AItem) and + cxGridView.Controller.IsFinish and AItem.IsLast then + begin + //Key := 0; + if _FocusedView.Controller.EditingController.IsEditing then + _FocusedView.Controller.EditingController.Edit.PostEditValue; + actAnadir.Execute; + end; + end; + end; + finally + cxGridView.EndUpdate; + end; +end; + +procedure TfrViewDetallesBase.actAnadirUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := not ReadOnly; +end; + +procedure TfrViewDetallesBase.actAnchoAutomaticoExecute(Sender: TObject); +begin + inherited; + AjustarAncho +end; + +procedure TfrViewDetallesBase.actAnchoAutomaticoUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := not IsEmpty; +end; + +procedure TfrViewDetallesBase.actBajarExecute(Sender: TObject); +begin + _FocusedView.BeginUpdate; + try + if _FocusedView.Controller.EditingController.IsEditing then + _FocusedView.Controller.EditingController.Edit.PostEditValue; + + if Assigned(Controller) and Assigned(FDetalles) then + Controller.move(FDetalles, darListaSeleccionados, 1); + finally + _FocusedView.EndUpdate; + end; +end; + +procedure TfrViewDetallesBase.actBajarUpdate(Sender: TObject); +begin + inherited; + if not Assigned(cxGridView.Controller.FocusedRow) then + (Sender as TAction).Enabled := False + else + (Sender as TAction).Enabled := (not ReadOnly) + and (not cxGridView.Controller.FocusedRow.IsLast) +end; + +procedure TfrViewDetallesBase.actDetallesCopiarExecute(Sender: TObject); +begin + ShowHourglassCursor; + try + CopiarSeleccionGridAlPortapapeles(_Grid); + finally + HideHourglassCursor; + end; +end; + +procedure TfrViewDetallesBase.actDetallesCopiarUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := Assigned(cxGridView.Controller.FocusedRow); +end; + +procedure TfrViewDetallesBase.actDetallesCortarExecute(Sender: TObject); +begin + ShowHourglassCursor; + Application.ProcessMessages; + try + CortarSeleccionGridAlPortapapeles(_Grid); + finally + HideHourglassCursor; + end; +end; + +procedure TfrViewDetallesBase.actDetallesCortarUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := Assigned(cxGridView.Controller.FocusedRow) + and not ReadOnly ; +end; + +procedure TfrViewDetallesBase.actDetallesPegarExecute(Sender: TObject); +begin + ShowHourglassCursor; + try + PegarAlGridDesdePortapapeles(_Grid); + finally + HideHourglassCursor; + end; +end; + +procedure TfrViewDetallesBase.actDetallesPegarUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := Assigned(cxGridView.Controller.FocusedRow) + and not ReadOnly and HayDatosEnPortapapeles; +end; + +procedure TfrViewDetallesBase.actSeleccionarTodoExecute(Sender: TObject); +begin + inherited; + SeleccionarTodo; +end; + +procedure TfrViewDetallesBase.actSeleccionarTodoUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := Assigned(DADataSource.DataTable); +end; + +procedure TfrViewDetallesBase.actSubirExecute(Sender: TObject); +begin + _FocusedView.BeginUpdate; + try + if _FocusedView.Controller.EditingController.IsEditing then + _FocusedView.Controller.EditingController.Edit.PostEditValue; + + if Assigned(Controller) and Assigned(FDetalles) then + Controller.Move(FDetalles, DarListaSeleccionados, -1); + finally + _FocusedView.EndUpdate; + end; +end; + +{ TcxMyRichEdit } + +destructor TcxMyRichEdit.Destroy; +begin + inherited; +end; + +procedure TcxMyRichEdit.DoPaste; +begin + if Assigned(FOnPaste) then + FOnPaste(Self, Self.Text); +end; + +procedure TcxMyRichEdit.FInnerRichOnKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); +begin + if ((Shift = [ssShift]) and (Key = VK_INSERT)) then + begin + PasteFromClipboard; + Key := 0; + end; +end; + +procedure TcxMyRichEdit.HookInnerControl; +begin + { Desviamos los mensajes que recibe el componente RichEdit interno de la columna + a un procedimiento nuestro para interceptar los mensajes de pegar del portapapeles + y as en vez de ejecutar el 'paste' por defecto de Windows, + hacemos nuestro 'paste'.} + FOldWndProc := InnerRich.WindowProc; + InnerRich.WindowProc := InnerControlWindowProc; + InnerRich.OnKeyDown := FInnerRichOnKeyDown; +// InnerRich.PopupMenu := ; +end; + +procedure TcxMyRichEdit.Initialize; +begin + inherited; + if Assigned(InnerRich) then + HookInnerControl; +end; + +procedure TcxMyRichEdit.InnerControlWindowProc(var Message: TMessage); +begin + case Message.msg of + WM_PASTE: if not _FPegando then + PasteFromClipboard; + else + FOldWndProc(Message); + end; +end; + +procedure TcxMyRichEdit.PasteFromClipboard; +begin + _FPegando := True; + try + //if HayDatosEnPortapapeles(CF_FACTUGES) then + PegarAlGridDesdePortapapeles(FGrid); + //else + //inherited; + DoPaste; + finally + _FPegando := False; + end; +end; + +{ TcxMyRichEditProperties } + +class function TcxMyRichEditProperties.GetContainerClass: TcxContainerClass; +begin + Result := TcxMyRichEdit; +end; + +initialization + _FRecalculando := False; + _FRecalcular := False; + _FPegando := False; + +end. diff --git a/Source/GUIBase/uViewDetallesDTO.dcu b/Source/GUIBase/uViewDetallesDTO.dcu new file mode 100644 index 0000000..46195a8 Binary files /dev/null and b/Source/GUIBase/uViewDetallesDTO.dcu differ diff --git a/Source/GUIBase/uViewDetallesDTO.dfm b/Source/GUIBase/uViewDetallesDTO.dfm new file mode 100644 index 0000000..35e92b2 --- /dev/null +++ b/Source/GUIBase/uViewDetallesDTO.dfm @@ -0,0 +1,95 @@ +inherited frViewDetallesDTO: TfrViewDetallesDTO + inherited ToolBar1: TToolBar + inherited ToolButton1: TToolButton + ExplicitWidth = 109 + end + inherited ToolButton14: TToolButton [1] + Left = 109 + Wrap = False + end + inherited ToolButton4: TToolButton [2] + Left = 174 + end + inherited ToolButton3: TToolButton [3] + Left = 230 + ExplicitLeft = 230 + end + inherited ToolButton2: TToolButton [4] + Left = 285 + ExplicitLeft = 285 + ExplicitWidth = 114 + end + inherited FontSize: TEdit + Width = 41 + ExplicitWidth = 41 + end + inherited UpDown1: TUpDown + Left = 186 + ExplicitLeft = 186 + end + inherited ToolButton13: TToolButton + Left = 202 + ExplicitLeft = 202 + end + inherited ToolButton6: TToolButton + Left = 210 + ExplicitLeft = 210 + end + inherited ToolButton7: TToolButton + Left = 276 + ExplicitLeft = 276 + end + inherited ToolButton8: TToolButton + Left = 343 + ExplicitLeft = 343 + end + end + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + object cxGridViewDESCUENTO: TcxGridDBColumn [7] + Caption = 'Dto' + DataBinding.FieldName = 'DESCUENTO' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.DisplayFormat = ',0.00 %;-,0.00 %' + Properties.EditFormat = ',0.00;-,0.00' + Properties.MaxValue = 100.000000000000000000 + Visible = False + VisibleForCustomization = False + Width = 30 + end + object cxGridViewIMPORTENETO: TcxGridDBColumn [8] + Caption = 'Importe neto' + DataBinding.ValueType = 'Currency' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = ',0.00 '#8364';-,0.00 '#8364 + Properties.EditFormat = ',0.00 '#8364';-,0.00 '#8364 + Properties.ReadOnly = True + Properties.OnValidate = cxGridViewIMPORTENETOPropertiesValidate + Visible = False + OnGetDisplayText = cxGridViewIMPORTENETOGetDisplayText + HeaderAlignmentHorz = taRightJustify + Options.Editing = False + VisibleForCustomization = False + end + object cxGridViewIMPORTEPORTE: TcxGridDBColumn [9] + Caption = 'Porte unidad' + DataBinding.FieldName = 'IMPORTE_PORTE' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.EditFormat = ',0.00 '#8364';-,0.00 '#8364 + Visible = False + HeaderAlignmentHorz = taRightJustify + VisibleForCustomization = False + end + end + end + inherited ActionListContenido: TActionList + inherited actAnadir: TAction + Caption = 'A'#241'adir concepto' + end + inherited actEliminar: TAction + Caption = 'Eliminar concepto' + end + end +end diff --git a/Source/GUIBase/uViewDetallesDTO.pas b/Source/GUIBase/uViewDetallesDTO.pas new file mode 100644 index 0000000..924a877 --- /dev/null +++ b/Source/GUIBase/uViewDetallesDTO.pas @@ -0,0 +1,76 @@ +unit uViewDetallesDTO; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewDetallesBase, cxStyles, cxCustomData, cxGraphics, cxFilter, + cxData, cxDataStorage, cxEdit, DB, cxDBData, cxImageComboBox, cxRichEdit, + cxMaskEdit, cxCurrencyEdit, cxCheckBox, ImgList, PngImageList, uDADataTable, + StdActns, ExtActns, ActnList, TB2Item, TBX, TB2Dock, TB2Toolbar, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, ComCtrls, StdCtrls, JvExStdCtrls, + JvCombobox, JvColorCombo, ToolWin, uDAInterfaces, Menus, + cxGridCustomPopupMenu, cxGridPopupMenu; + +type + IViewDetallesDTO = interface(IViewDetallesBase) + ['{0D221FFB-9F43-48FC-9AE7-0AD0F0791AD1}'] + end; + + TfrViewDetallesDTO = class(TfrViewDetallesBase, IViewDetallesDTO) + cxGridViewDESCUENTO: TcxGridDBColumn; + cxGridViewIMPORTEPORTE: TcxGridDBColumn; + cxGridViewIMPORTENETO: TcxGridDBColumn; + procedure cxGridViewIMPORTENETOGetDisplayText(Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: string); + procedure cxGridViewIMPORTENETOPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + protected + function HayQueRecalcular(AItem: TcxCustomGridTableItem): Boolean; override; + end; + +implementation +{$R *.dfm} + +{ TfrViewDetallesDTO } + +procedure TfrViewDetallesDTO.cxGridViewIMPORTENETOGetDisplayText(Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: string); +var + ImporteNeto : Double; +begin + //Se encarga de mostrar el campo calculado de importe neto + ImporteNeto := -1; + + if not VarIsNull(ARecord.Values[cxGridViewIMPORTEUNIDAD.Index]) then + if not VarIsNull(ARecord.Values[cxGridViewDESCUENTO.Index]) then + ImporteNeto := ARecord.Values[cxGridViewIMPORTEUNIDAD.Index] - ((ARecord.Values[cxGridViewIMPORTEUNIDAD.Index] * ARecord.Values[cxGridViewDESCUENTO.Index])/100) + else + ImporteNeto := ARecord.Values[cxGridViewIMPORTEUNIDAD.Index]; + + if (ImporteNeto <> -1) then + begin + AText := FormatCurr(',0.00 ;-,0.00 ', FloatToCurr(ImporteNeto)) + end; +end; + +procedure TfrViewDetallesDTO.cxGridViewIMPORTENETOPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + if not VarIsNull(DisplayValue) then + begin + cxGridViewDESCUENTO.DataBinding.Field.Value := ((cxGridViewIMPORTEUNIDAD.DataBinding.Field.Value - DisplayValue) * 100) / cxGridViewIMPORTEUNIDAD.DataBinding.Field.Value; + Controller.ActualizarTotales(Detalles); + end; +end; + +function TfrViewDetallesDTO.HayQueRecalcular(AItem: TcxCustomGridTableItem): Boolean; +begin + Result := inherited HayQueRecalcular(AItem); + if not Result then + Result := (AItem = cxGridViewDESCUENTO) or (AItem = cxGridViewIMPORTEPORTE); +end; + +end. diff --git a/Source/GUIBase/uViewDetallesGenerico.dcu b/Source/GUIBase/uViewDetallesGenerico.dcu new file mode 100644 index 0000000..22a7b74 Binary files /dev/null and b/Source/GUIBase/uViewDetallesGenerico.dcu differ diff --git a/Source/GUIBase/uViewDetallesGenerico.dfm b/Source/GUIBase/uViewDetallesGenerico.dfm new file mode 100644 index 0000000..ec237dc --- /dev/null +++ b/Source/GUIBase/uViewDetallesGenerico.dfm @@ -0,0 +1,239 @@ +inherited frViewDetallesGenerico: TfrViewDetallesGenerico + Width = 503 + Height = 357 + ExplicitWidth = 503 + ExplicitHeight = 357 + object cxGrid: TcxGrid + Left = 0 + Top = 25 + Width = 503 + Height = 332 + Align = alClient + TabOrder = 0 + LookAndFeel.Kind = lfOffice11 + LookAndFeel.NativeStyle = True + object cxGridView: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + FilterBox.Visible = fvNever + OnEditKeyDown = cxGridViewEditKeyDown + DataController.DataSource = dsDetalles + DataController.Filter.Options = [fcoCaseInsensitive] + DataController.KeyFieldNames = 'ID' + DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoFocusTopRowAfterSorting, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.AlwaysShowEditor = True + OptionsBehavior.CellHints = True + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.BestFitMaxRecordCount = 20 + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsCustomize.ColumnGrouping = False + OptionsCustomize.ColumnMoving = False + OptionsCustomize.ColumnSorting = False + OptionsCustomize.DataRowSizing = True + OptionsData.Appending = True + OptionsData.CancelOnExit = False + OptionsSelection.MultiSelect = True + OptionsSelection.UnselectFocusedRecordOnExit = False + OptionsView.CellEndEllipsis = True + OptionsView.NoDataToDisplayInfoText = '' + OptionsView.CellAutoHeight = True + OptionsView.ColumnAutoWidth = True + OptionsView.GridLineColor = cl3DLight + OptionsView.GroupByBox = False + OptionsView.HeaderEndEllipsis = True + OptionsView.Indicator = True + object cxGridViewID: TcxGridDBColumn + DataBinding.FieldName = 'ID' + Visible = False + end + end + object cxGridLevel: TcxGridLevel + GridView = cxGridView + end + end + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 503 + Height = 25 + ButtonWidth = 113 + Caption = 'ToolBar1' + EdgeInner = esNone + EdgeOuter = esNone + Flat = False + Images = ContenidoImageList + List = True + ParentShowHint = False + ShowCaptions = True + ShowHint = True + TabOrder = 1 + Transparent = True + object ToolButton1: TToolButton + Left = 0 + Top = 0 + Action = actAnadir + AutoSize = True + end + object ToolButton4: TToolButton + Left = 62 + Top = 0 + Action = actModificar + AutoSize = True + end + object ToolButton5: TToolButton + Left = 136 + Top = 0 + Width = 8 + Caption = 'ToolButton5' + ImageIndex = 2 + Style = tbsSeparator + end + object ToolButton2: TToolButton + Left = 144 + Top = 0 + Action = actEliminar + AutoSize = True + end + object ToolButton6: TToolButton + Left = 211 + Top = 0 + Width = 8 + Caption = 'ToolButton6' + ImageIndex = 2 + Style = tbsSeparator + end + object ToolButton7: TToolButton + Left = 219 + Top = 0 + Action = actAnchoAutomatico + AutoSize = True + end + end + object dsDetalles: TDADataSource + Left = 40 + Top = 144 + end + object ContenidoImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000F84944415478DA + 63FCFFFF3F03084C59BC03C2200072E33C19616C905E46640372623DF06A06AA + 6198B77413C3F99DD3194936E0DFBF7F0CD396EE62D051576128AAEB031B42B4 + 0120CDBFFFFC6398BD720F43B0A70DC3CD7B2FC0869CDB318D91A00130CDBF7F + FF6558B06E3FD80B3040D00064CDBFFF40F0AA6D47C1722083F01A804D3304FF + 63D8B2EF147E03F06906D13B0F9DC56D0058E16F540D20FC07C607CA1D387911 + BB01E991AE043583F847CF5EC16E4052881341CD207CEAE275EC06C406D813D4 + 0CC2E7AFDEC26E40848F2D41CD20B12B37EF603720D8C38AA06610C069809F8B + 39C3A63D2789C994D80D404EA6C400900100F58BBFF09BC1E25C000000004945 + 4E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end> + Left = 40 + Top = 112 + Bitmap = {} + end + object ActionListContenido: TActionList + Images = ContenidoImageList + Left = 40 + Top = 80 + object actAnadir: TAction + Category = 'Operaciones' + Caption = 'A'#241'adir' + ImageIndex = 0 + ShortCut = 45 + OnExecute = actAnadirExecute + OnUpdate = actAnadirUpdate + end + object actEliminar: TAction + Category = 'Operaciones' + Caption = 'Eliminar' + ImageIndex = 1 + ShortCut = 16430 + OnExecute = actEliminarExecute + OnUpdate = actEliminarUpdate + end + object actModificar: TAction + Category = 'Operaciones' + Caption = 'Modificar' + ImageIndex = 2 + OnExecute = actModificarExecute + OnUpdate = actModificarUpdate + end + object actAnchoAutomatico: TAction + Category = 'Operaciones' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 3 + OnExecute = actAnchoAutomaticoExecute + end + end +end diff --git a/Source/GUIBase/uViewDetallesGenerico.pas b/Source/GUIBase/uViewDetallesGenerico.pas new file mode 100644 index 0000000..59be2fd --- /dev/null +++ b/Source/GUIBase/uViewDetallesGenerico.pas @@ -0,0 +1,210 @@ +unit uViewDetallesGenerico; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxTextEdit, ActnList, ImgList, + PngImageList, uDADataTable, ComCtrls, ToolWin, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, uDAInterfaces; + +type + IViewDetallesGenerico = interface(IViewBase) + ['{A2D2B5CF-6E47-4635-8B80-C761BFCD7FB2}'] + end; + + TfrViewDetallesGenerico = class(TfrViewBase, IViewDetallesGenerico) + cxGrid: TcxGrid; + cxGridView: TcxGridDBTableView; + cxGridViewID: TcxGridDBColumn; + cxGridLevel: TcxGridLevel; + ToolBar1: TToolBar; + ToolButton1: TToolButton; + ToolButton2: TToolButton; + dsDetalles: TDADataSource; + ContenidoImageList: TPngImageList; + ActionListContenido: TActionList; + actAnadir: TAction; + actEliminar: TAction; + ToolButton4: TToolButton; + actModificar: TAction; + ToolButton5: TToolButton; + ToolButton6: TToolButton; + actAnchoAutomatico: TAction; + ToolButton7: TToolButton; + procedure cxGridViewEditKeyDown(Sender: TcxCustomGridTableView; + AItem: TcxCustomGridTableItem; AEdit: TcxCustomEdit; var Key: Word; + Shift: TShiftState); + procedure actAnadirExecute(Sender: TObject); + procedure actEliminarExecute(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + procedure actAnadirUpdate(Sender: TObject); + procedure actAnchoAutomaticoExecute(Sender: TObject); + procedure actModificarUpdate(Sender: TObject); + procedure actModificarExecute(Sender: TObject); + protected + function HayDatos : Boolean; + procedure AnadirInterno; virtual; + procedure ModificarInterno; virtual; + procedure EliminarInterno; virtual; + + function GetModified: Boolean; override; + end; + +implementation + +{$R *.dfm} + +uses + uDataTableUtils; + +procedure TfrViewDetallesGenerico.actAnadirExecute(Sender: TObject); +var + bEsMultiSelect : Boolean; +begin + // Debo quitar el multiselect porque provoca que se quede seleccionado + // el registro actual y no el nuevo registro que voy a aadir + bEsMultiSelect := cxGridView.OptionsSelection.MultiSelect; + if bEsMultiSelect then + cxGridView.OptionsSelection.MultiSelect := False; + + cxGridView.BeginUpdate; + try + if cxGridView.Controller.EditingController.IsEditing then + cxGridView.Controller.EditingController.Edit.PostEditValue; + + AnadirInterno; + finally + cxGridView.EndUpdate; + + // Dejo la propiedad MultiSelect como estaba + if bEsMultiSelect then + cxGridView.OptionsSelection.MultiSelect := bEsMultiSelect; + end; +end; + +procedure TfrViewDetallesGenerico.actAnadirUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := Assigned(dsDetalles.DataTable); +end; + +procedure TfrViewDetallesGenerico.actAnchoAutomaticoExecute(Sender: TObject); +begin + inherited; + cxGridView.ApplyBestFit(nil, True, False); +end; + +procedure TfrViewDetallesGenerico.actEliminarExecute(Sender: TObject); +var + AuxTop, AuxRow:Integer; +begin + cxGridView.BeginUpdate; + AuxTop := cxGridView.Controller.TopRowIndex; + AuxRow := cxGridView.DataController.FocusedRowIndex; + try + EliminarInterno; + + //Selecciona en el grid el registro siguiente + if (AuxRow < cxGridView.DataController.RowCount-1) then + Inc(AuxRow) + else + Dec(AuxRow); + + if dsDetalles.DataTable.RecordCount > 0 then + begin + cxGridView.DataController.SelectRows(AuxRow,AuxRow); + cxGridView.Controller.TopRowIndex := AuxTop; + end; + finally + cxGridView.EndUpdate; + end; +end; + +procedure TfrViewDetallesGenerico.actEliminarUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos; +end; + +procedure TfrViewDetallesGenerico.actModificarExecute(Sender: TObject); +begin + inherited; + ModificarInterno; +end; + +procedure TfrViewDetallesGenerico.actModificarUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos and + (cxGridView.DataController.FocusedRowIndex >= 0) +end; + +procedure TfrViewDetallesGenerico.AnadirInterno; +begin + dsDetalles.DataTable.Insert; +end; + +procedure TfrViewDetallesGenerico.cxGridViewEditKeyDown( + Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem; + AEdit: TcxCustomEdit; var Key: Word; Shift: TShiftState); +begin + inherited; + cxGridView.BeginUpdate; + try + Case Key of + VK_DOWN : begin + //En el caso de ser la ltima fila hacemos un append nosotros no el grid + //ya que se saltaria la lgica del controllerDetallesBase + if cxGridView.Controller.IsFinish then + begin + Key := 0; + if Sender.Controller.EditingController.IsEditing then + Sender.Controller.EditingController.Edit.PostEditValue; + actAnadir.Execute; + end; + end; + + VK_RETURN, VK_RIGHT + : begin + //En el caso de ser la ltima fila hacemos un append nosotros no el grid + //ya que se saltaria la lgica del controllerDetallesBase + if cxGridView.Controller.IsFinish + and AItem.IsLast then + begin + Key := 0; + if Sender.Controller.EditingController.IsEditing then + Sender.Controller.EditingController.Edit.PostEditValue; + actAnadir.Execute; + end; + end; + end; + finally + cxGridView.EndUpdate; + end; +end; + +procedure TfrViewDetallesGenerico.EliminarInterno; +begin + dsDetalles.DataTable.Delete; +end; + +function TfrViewDetallesGenerico.GetModified: Boolean; +begin + Result := DataTableModified(dsDetalles.DataTable) or inherited GetModified; +end; + +function TfrViewDetallesGenerico.HayDatos: Boolean; +begin + Result := Assigned(dsDetalles.DataTable) and + (cxGridView.ViewInfo.VisibleRecordCount > 0) +end; + +procedure TfrViewDetallesGenerico.ModificarInterno; +begin + // +end; + +end. diff --git a/Source/GUIBase/uViewDocumentos.dcu b/Source/GUIBase/uViewDocumentos.dcu new file mode 100644 index 0000000..dbfd354 Binary files /dev/null and b/Source/GUIBase/uViewDocumentos.dcu differ diff --git a/Source/GUIBase/uViewDocumentos.dfm b/Source/GUIBase/uViewDocumentos.dfm new file mode 100644 index 0000000..ec3b963 --- /dev/null +++ b/Source/GUIBase/uViewDocumentos.dfm @@ -0,0 +1,790 @@ +inherited frViewDocumentos: TfrViewDocumentos + OnCreate = CustomViewCreate + OnDestroy = CustomViewDestroy + object TBXDock: TTBXDock + Left = 0 + Top = 0 + Width = 445 + Height = 23 + object tbxMain: TTBXToolbar + Left = 0 + Top = 0 + Caption = 'tbxMain' + ChevronHint = 'M'#225's botones|' + DockMode = dmCannotFloatOrChangeDocks + DockPos = 0 + DockRow = 1 + DragHandleStyle = dhDouble + ParentShowHint = False + ShowHint = True + TabOrder = 0 + object TBXItem2: TTBXItem + Action = actAnadir + DisplayMode = nbdmImageAndText + end + object TBXItem3: TTBXItem + Action = actModificar + end + object TBXItem1: TTBXItem + Action = actEliminar + end + object TBXSeparatorItem1: TTBXSeparatorItem + end + object TBXItem4: TTBXItem + Action = actEliminarTodo + end + object TBXItem5: TTBXItem + Action = actActualizarServidor + end + end + end + object ListView1: TListView + Left = 0 + Top = 23 + Width = 445 + Height = 268 + Align = alClient + BorderStyle = bsNone + Columns = <> + LargeImages = LargeImagesBrowser + SmallImages = SmallImagesBrowser + TabOrder = 1 + OnDblClick = ListView1DblClick + end + object EditorActionList: TActionList + Left = 16 + Top = 16 + object actAnadir: TAction + Caption = 'Abrir' + OnExecute = actAnadirExecute + end + object actModificar: TAction + Caption = 'Modificar' + OnExecute = actModificarExecute + OnUpdate = actModificarUpdate + end + object actEliminar: TAction + Caption = 'Eliminar' + OnExecute = actEliminarExecute + OnUpdate = actEliminarUpdate + end + object actEliminarTodo: TAction + Caption = 'Eliminar todo' + OnExecute = actEliminarTodoExecute + OnUpdate = actEliminarTodoUpdate + end + object actActualizarServidor: TAction + Caption = 'Actualizar Servidor' + Visible = False + OnExecute = actActualizarServidorExecute + end + end + object LargeImagesBrowser: TPngImageList + Height = 24 + ShareImages = True + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B1300000B1301009A9C18000005A94944415478DA + A5557B4C536714FFDDBE2895B658B45051471930B618918230913F98CA7089E2 + 63155936369D8F44108491A99B014A37A7C6D4E83225D974381F2488A28B4AC8 + 3632358A9D08734C7C204699E91018D0DB02054ADB9D7BF141A76C31FB929B7B + EE77BF9CDFF97EE777CE610C0603462F97CBFDC9F8F1CA4D53A7CA1FED78F0A2 + 4B2412C16E7761E346A38D79166068AB4E37EBD34B975CB0D9FA688719C30D83 + E16137BABB07410191433B64B271703A8708408CF070370E1DCA1D7A06402018 + 3668B55145191937E9CB468F700C8001C8E51A9494CC437E7E01366CC8455959 + 19A2A2A2209148D0D0700652E943F67F0078084040000163005C270015FB1C8A + 9C86E9D3638B6A6B3D6059FBBF50E44B74FC819E9E73F0F77F4C918CF69C100A + 85888C8CE4009F05181A721A6263754552A983387682090C84C4C707429B0D0E + D6C69F51D2B7629C1483834047DFC80D690B6A35113720261654E8EDED855EAF + E700B6D26FC523F74E72FA97213434AC8853426A6A2A982BBFC1DE66C5902E04 + 015343F853F75916F79B9BE13F6912660407F37B56D2C3B51F48413E1D9899A2 + C0B99FCE61FDFA6C0E20977E5F7B04309E00628B4343830AFDC6F961595A1AB0 + 380E77EED5E166D266A4EED9C69F2A3EFF330C577F4174B8160DA9CBF9BDBA33 + 405C21E5507E1A9DDF46E36293196BD6647100EF82618E12F7DCF5B8AB6EDFA0 + D506EED64484E3E58E0E94AE5C8A7672F0D67B1F41FF9509D769EFCDDD2568B3 + B8F01AAB45D3A995E8EF7722E5F54A98251DF065DA71AB2C17576F9E27804C0E + 60053C9E831CC03CB53A38E3EEDD40BB4EB733CB57DE037D720A361BBF40F3EF + 2D787F951E4BF46918F27870B4B21955876BF06AE874187725C2ED06BE3F7B05 + F91FC66341EA526CDE560AF3C51FB16E1D01188DAB60B51E88993B37BB263131 + 5F79E4C80744D33C4444CC415474246E35DFE62B33223C1C8113FCD16B77A0A1 + CE4C121463A2460DAD3662242FF7D763F6ECBDC8CCFC1A5BB6AC417979397272 + 7258262F2F716152D24B4793938FC87B7A5892583BAAAB0B28AA78C4C5E9D0D2 + 728777A0D56A1114A42175D8D1D47483AF03B55A83E8E8D9A8ABFB18B9B9DF60 + C68C1558BB3687DED35059593902B06953DA958808DBCCC58B4FC1E160E1EBAB + C6C387E5387D3A939CCE814221E3011C0E07C972900210C1CFCF8FF246CAB176 + 521DD4E2F26516870F0346E32E1414E4F1E74E9C3881BCBC3C96292EFE72426F + EF85EAD0D0AE98F4F41A2AAE46ECDB9780B0B05728490DFFD1D6EE62FEFC302A + B291AFC4C462ECD85148140FA3A2A2826E95CB25B980A299287738CCD51ACD9D + 592C5BC7DCBE0D2424C4213DFD14FD739308843C258F6DEEED740E60FBF60C54 + 55D5223B1B3879124497113B7716D0190F8E1F3F8EACACACA795EC72295522D1 + 857B7279B742266BE4132B14AA281712B2EDF4F679620B04BED4456D448B050B + 160054EC38760C0808580593A9109D9D9DE8EAEAC2EAD5AB9F02B0AC551A1FFF + 76DBF2E5327F8BE533721444A00314CD486B6618CF135B241252CD3888E72A6A + E93D94272AB43AA0A66632A64D0BA7BAE8A74628477D7D3D9E00D86C36A54E97 + D2BA64895369B1EC8558ACE1A900385A445EB648C4909341E2B98A12DA4DF300 + A42CE0C0017C47874A47F74E2F809898B9AD0B172A95EDED9F13809A6BDEE450 + 40CE87BD6CA1504237E8239ECFA2AFCF06950A686C040E1E443E1DDCE53596BC + 01925B172D122BDBDA4C041038A67638A972B2E500FAFBAD7C0E6E50699494F0 + CEF3C70478518ACACBABA8777553F1F1D19B1F3CC03B5C513F17C06AED562624 + A4B52E5BA6228A0A0820982F267E76517247DB623137D4FB29C915BC5AF6EFC7 + AF160B92303202BD1663329978637090F19F3CD9DD3E65CA80C4E92C25276292 + A594942425DBEA657B3C7E14B91566730B1516EAA9C1BE412EECCFA393090919 + 192202818F6260E0CFEB0E875DC145FBCFA847DBDCA2B14B7940130DBAF96339 + E7D6DF7031ACDE3B0F78A10000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B1300000B1301009A9C180000068A4944415478DA + 8D95096C93F719C69FEFF267FBF37D257670D284F480486C45EC84AE5B6B36ED + 50AB4211549BC6DA74542B5B27C10E26D6019BD4B552B56A48DDC6365A98E8BA + AAAC851020C4A481662B6B3184122525E474E6D8F1155FB1FDF93BF74FA66AB5 + 68A47D96F5C9D7FBF3FB3CEFF3FE295DD7B1F6BBD7A0A80C0C3C6B2EA7A675BF + 2D5B7D7083667FAECB55341A04BD6FD7B99F1DEA0BFE3392085C3EF6C4F5BD1B + 9F5FFBECD675E73FB7FEAECA575F38DAB2474EF7499CD18A8F5E5D5D5D4B776A + 1170D78EABA039B1FDA5AF1D1A2E4AD4C9FEE10D87BFF5D9377ACE0FBBCE8CDC + 74893F7C687253FF88FD62221EC0B66FCCDE7B7DB072A3905AEBEAE898F5BD79 + 6174CFE0B8E3399B595B1EB0656FEFE30EB5F4EBFB9A184FFB1D67D5D838D448 + F6A7862F773C8F783280A1F856AC0F3E85B8FC7D246665DCFBC913E8CF1EC13D + D62348CC1C183DD873F7038D4EE5E6B2805F3DDB1BB65A5684B28A1F6D738F60 + D5A3BF4034B50EAED16DF06F7E19A3672350F37F05FDC06108978EC0D16244AA + 791B6AD7CFE3D2C0E9E4E05BEF6DB1793C0320B53E16B0FF99BE30EFF6871C2B + 9D58639E40D3E737203E9602A35421B5B660F28361B8ED41C0668356034A14A0 + EA322E46396406FA549CDBDBA999DD47299AF978C00102D0686BC8BFE56EAC59 + C9213B5B84C2D3A8C18C5C2186394A8485F292E21588E0519575C8E4919875C2 + 5D9630FB6AE79FA4526E27CD0BF2321DF4872D822594FEF46D68F5EB30D11A24 + 99251FF328AB3252620E16C68DB222A34A5E6B3A0B8A63F1EF69162D1E1B32C7 + 0F0C252F776F32B802E31FCA5407F8C9810BE1D50163A8F4997664750BDA1C35 + 64AB0A6A9A4E8A4A48D78AB0311E283A859AAA93F7C92F590A13E3C0AA3637D8 + C11EE9E6B1A7BF6D7034BC068ABE15F0A37D6F87D734D321F37D4DE84FF87087 + 47434DA6505534CCCB6524C579B8B846F2CF39484B00F2A4554C4D6A58BDC28B + A05EC0C8C1477F27578B3F60F8FFCE6B1D60F7BE8BE155015368CD560187875D + B0F006D0940659A351926B98ABE5E160BD503516B2CE2C7521D3125233325679 + 1AB1B29946F4A5FDD75291D39B894C938B32D50176EDBB106E6B3086B63F19C4 + 5F863D78372D4230499049BA2BAA8604F1C0C9FA486185245E83A6A900AD2037 + A5A1DD6E45EB6A278A97CE4913AF2CCAE45B92E916899A7DC6D083DFD3D03361 + C7E9F100CC1632270A4D3C1051948BF0300DD088C1925C2500051CCB2033A9E2 + 7687005F13F1817C67EC50E78BAA587E8A3698B45B3BF059428F3CE9C4504EC2 + 1F225E54699ECC1085925440AE96848BF690E1D7968AEBE4BE38F2D96905B7DB + 2DB0DB5858570430FBFACFAF64AEF66E3638FDD1AE9327FF07F8F1FE81709387 + 0B6DECE42012ED8F458218CA68B0333491A486B4988495B682D128D0C4178D00 + 54E241764AC29D0E3BAC0609D6F60E2C8C9EAD4CBDF2F43709E044D7A953F526 + B7FA84D0FD8F19E13001DD1FF8717C4805873C315A44A1360F27C90145CCA508 + 04644E14AA8AF47405ABED6E584D1A18AB1B46178BB13F3EF1825AABECEAEE09 + D77710F41A42EBB7D3E08C65C432ED38F69E1DE5421C55AD840529072FDB085D + 5B0C600D2AF162D1E4F971D28145C0E2269548A2BD5F588F44FFC148EA1F7F7F + B8E7E2BFA2751EB4F84CA16D3B9AA1B11246F2291C8D7890892E10890AA4832C + BCB41794028862894C970296E3919BA5F189DB9AE16D6D840A16429B11F1F06B + 62F4F8338FF55E7AFFD55B3CB8E73B0C0483152ED6829787059C1988822FA551 + D02BB0197CA058013ACBC36836C3E773211D13E1A5E66061B3A8E4121093512C + 4C0E16E5726E4FF7999EDFD775B0B2C11AFA7AA7134935039EAEE24A62055E7F + C7055ECB127D5534399DE0AD05B86C34AC64A705FD22BA8F8E60F037470A0177 + FEB2244A3728968BB1822B4AD2FCEEC9136F4ED5991CF4F2A187770420533AB2 + B5143197C7748904C830890217C13AC7A7B05061A0681C54A519E952237AFFFC + 0ED2DD7BAF7903ECE31A65BAB2EC81B39B74D04A72B069270D892CE4240958A6 + 22C3C2B991CCBB119999875F6C4329C6233E9D47253F4856750654F92A045C3D + A56ADC7692DEDCB2805FFE76ACA7C15CFD4AA583D7293648190B66CCC580B944 + 0CB9D40DCCA732A8CCBFAF1BB48914AD96328C929A3130D2286B722674D61521 + 35DE06746559C0D69D7F5B67335876C78B0B5FCA154A4EAA3A52E194993CAB16 + 328C9A9B31D0DA04C509719DE6C7C8A9350D9ACF92394D91A2F527FD72808DF7 + 7F916C47AB51406A0BADCB2EB0C23C2912A328360E864B9362A4FD8F1CB8FFC7 + F521E03F3ECC98FE183A05640000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B1300000B1301009A9C180000055F4944415478DA + BD957B6C53551CC7BF5DBBAEEB7AD7766E633CC6CCC44D1483065920121034C1 + 0923486460209A81CE8088192022B881E3FD8C2138184C83C2820F9229718697 + 880B63EC01AE34EBD66DDDA3DDBAB6A363BBB7EFFBF2F40E3457FF33C19B7BEE + F99DDF39E7F7B9E7DCDFFD1E85288A789497E27F03149FEA774E48D5EAE88000 + 96E3C17102384124352FB5594E904AE4A1CDF288F00278FEEF3E81C489572BE1 + A33DBE5FCBE68F9301CA7F1A1633D37838DD43408C924C04381280E345125478 + 10E4A14D82B22258D217F547C7F0646C980D43119706F7E0302E1E99AE90010E + 9E1BA25312BCD42BD329245214204A37460D317AFF5540DE551446FB45B24A81 + 38E335B1F0B89CD8F58D039DDE04E6C6F1198932C09E331E7AACDE47152C9A48 + 5AAAFFB6E12283829246585C2AA6FED46C3960E769379D3D3E44654DD462C4A7 + 449C5A018E15106263108AB058302B051DBD01345986A57D9F393509C1B0801B + CD4330EA545028D570381C6868BB07975FC3D494CD9103B67F39404F7B92A782 + FE306ACD2CD2C76BA18012D6AE4124AAFDD8B1762A2ACEB7C3EAD6C1DEEFC186 + E563C0C188CF2ADA90FC981643741C06FBEF624A961EC36C3C73EDD85C39606B + 791F9D911CA256E68E45B7534475AD17C3BE30C6253228CC9F8206531FAAAEBB + 90609C80DBE66E142E4AC3E257B251B4F7321A7B523032DC828F96EAD1D89184 + 3A2BCD349D7E4D0ED85CE6A0C71A03D487F919248934387CA607B75B07F04EDE + 18CC9B99895D5FD4C21D4A061DE0606EB563F79A2C644FD4E093E3BDA8697661 + C10B4E946F5B81D57B9AF047978F3155BE2E07141DEDA1C72705A90FDEC820D9 + A1C691CA6E986D43C87F4987249D0267AF0610E035B84F07D1EF1A46FE8B3E88 + 0A0AD577C7A1ABED3CAA8F2DC1E48C4958B5F30A2C7D41C67C2E5F0E78FF888D + 9E9014A68A963D4E00B1D87FDA8A8EFE20D4212BB48674B8030604FC7EF8831C + 02211F12146E68F4CFE096A90D79395E9C3958049BCD896D279A70B787662C3F + AC94030A0FB4134084DABC2253026C2F33C1E6621160BC506953E07659916A34 + 626044497EB200546A3D7C01053C8E5F50757405E6CE9886D6363B7654DC41B3 + ED3E63AD2A90030AF6B4912D62A96D6F3F21FD079B0FD7C3EC88907455A3ADB3 + 1B0B6728C9968CC1859B2E686239C42A55B07674E0CD5C032A0F1581F603FD0E + 3B4A4E926FD039C8745E784F0E58596A218008B57D5516494F15D6EFAD21393D + 827B230CB4EA11541DCAC3A1B35D2493DA41C5B38844A29A6341F58942CC99FE + 1CBCC32206DD0E02A8C7ED7637D35DBD4E0E585662265BC451A5EF6613400CD6 + EEAEC175D37DF476B4A3787D0E4AD7CDC7DCD5E7516F7143AFE5E1EAB261D992 + 747C7B7813F9E861A8E3D4F00C440175686CED63EC9736CA014BB636931508D4 + FEB593492B06F3DEFA0AF53FDF8232530FFB6FA548321A903A6B17184B0B9184 + 209022A2F6C77DC87976321C033EE8B45A02E843F1C95A34B4F4327D57B7C801 + 8B3EBE43003CB5BBF029E874142A2AAF90F43361DACC1C2C5D381B9E21165F7F + 7F09B4B71F915010539ECF467E5E2EBC4341F08200AD361E1E275941792DEA5A + 6C8CEB5AB11C90BBB1894E4F16A9036B9E86C19020D3B011BF249BD0EB62647E + 8F97A8AC740A28A04D88819B48C8A6CF2FE3A6A99DF1D494CA01AF6E68A2D30C + 21EAD3E5A9D01B0CF00758499A05419464392AC99244FF43BAA5E9E4A1898FC7 + E0801DFBCE9A5067E9FD3760F1963BA2414F7CC15E325EF1205054F785D19A14 + 41B2F95128A911B525082F9D1B221B82CA38090D8DBFC37EA5447EE0BCBCE6A2 + 33569BACF305C9243E4282704496395247C0B3C41658C9CFF36122E30FFC529B + F8394EB2A3104D5C2CBC7D669FCFF29DFCC87C54D72307FC09218048FE164C65 + CF0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B1300000B1301009A9C18000004AD4944415478DA + A5966B681C5514C7FF77F631BB9BC4260D28D49ADAD4A231C48412C588D13E02 + 954243A11509A94D545AA9D254028A504A5AAD0511022DD1A660531FAB2854AC + 84A0B49FA20DF643C5526BABF4839144D398D824BBD9CDEE3C76FCDF993B9B31 + A07E70E0EC9D7BE6EEF9DDF3BA33628DA6D5EE8F445EC801C2011C81C5ABE08B + E3B8A3ADC4D7BBF37F78A653CE58D63BE28970F8B92F4B4ADE0517FEEBE53FE7 + 6870B02872343837E558287873B984524A792A9F7F5E3C160A3D3D9C487C2077 + 0921A0A95DC985A6128B7A6361010B9605271C86A5EB30A5618A1D80F8E2709E + E07F5E328C6725A09D80A4A15C8572D50A8849C3160D871A1B91BD71030BD3D3 + 2884421E443E0F002CE5659C806EC3E814CD047C4D405A2D0AC6DE563BCC6432 + A8D8B70F891D3BF0DBDEBD485DBB06271E2F1AF7C365057222012F4BC0A31210 + 8F27A7D44227E085AD74D96C162B8F1D437E6A0AA3478E201C8BC1A4017FE796 + DABDBFDE07BC2A018F10703E164B4E07004EA0226C0558D1D5855853137EEEE8 + 806DDBB02391A2712B60DCCD014B31CEF180043C4CC020017F2E013801408E80 + D2BA3AD48E8CE087AD5BF1FBF0B0E7C5124FBD82F0FE1BE76F8F61758A8708F8 + 8C805BC11CF03E08B07239B7529AAE5EC58FDDDD183F770E1102FC1C150B42C8 + D1710912F09A4940A3A6B57F4CC08C023801E3BEE4F37958D4B7527E620E2E1C + 3C88E5B254832172C5037A650ABC2101EB0818D0F5E4AC0F0884C7BF9FA607F5 + ACA2CAE666E81515F866F76EDC1C1D45990C93EB8567B8A03C82F092FCA66176 + 8A7A02FA15C00A1A969EC84A310C88B2323C7EF62C86366C40D5B66D5877F830 + 3E216C2A95728F04A1E22FC7B81E71931CE37DAFCC411D01C7A3D122000188BC + 26189E96A347619826BEE8E9410975AD0303B86FD72E5C387408B3EC89F9740A + 89F272A42727F1CBC56F11568D76DCB23B452D016F113017A8221F90A1F17865 + 25B670F7DFF7F6C22C29418C0D969F99817EF72A546FDA84DB1FA8C7D8A54B98 + BC7C99C9CAE1BBD3A7919EB889DBF430DE3609A821E07509E061E52688E4028F + 862C6B3DC5F993274E40634247D8688944027F5CBF8ED4EC2CE6D546AAD65463 + F5C68D10D12852E3E39820686A6C0CCB22219C94807B85683F1089B847854DE3 + B289E6292B6A6AB076FB76AC5ABF1EA75A5A5CEFA29408D7C803AF20EB9D9BCA + 583632524F09C931AC410B696E6E4E49C03D04BCE2032869EEBEA1AD0D15D5D5 + 58BB7933CEB324AFB0B196B3736D37F18B7DE2DEBBE114EEBD5FE232DB31CAFB + 66A1535413B03F1C4EA6A94F3191550D0D68EDEB436E6E0E570607F1557F3FEE + E0C9E9F684582C5DA839960284574D3A177D6411B09A803DA15052C6344F97A3 + 2CC9FBB76CC1024BF0E2D010963124D0B4E28E7DE3FEABCF7D0F89C5B25653E8 + FCF95402AA08E8D0B4644625D862886EA945E5AE71B97BC73322F5FE7B43780A + 4738CA0BA55321725F9932442B85D8D9A6691F6655BB070F3BA886F3FFE41D33 + CEDF0C155FB44A279F6B6E0E043E370BCF88BB84D8B353D34E66549B2F05B831 + F077AF4223A0009AF7A500A5139C681C65A59552F79E61BF28786E3F78A7105D + AC9028436415DD0D7E0488A5B7C16F0F8FA0292784C70D8718ED5F0B4E9F70FE + EB6BE27F5E7F012FA4B8C30BB6E22D0000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B1300000B1301009A9C180000055F4944415478DA + BD95796C14551CC7BF7B9FB32D6D056CA1200D626CC040292984006294100C68 + 919623224DB9FEA082A0890205A1D1901011AD20A7D8141AA01A0482042B256D + 2C4739BA3DB62D5B4AE9B5677797CEECB69D9DD919DFECA2C934EA7FF8667E79 + EFCD7BF3FBBCDF3BBE4F218A229E6752FC6F8023D7F73B5212C799838334B848 + 9818079EE7C0F16CB4CE722CC27C98D810F9FE5739D616EB43FA0B3C28930574 + 677FF06C5155B20C70A5B15C4C368E47B7AB1D2AB58A748E20427EE0C98F9C10 + 26391FCD258761F22D22C40621D5798138177980BC01431FDAEEB6E0B72F1B15 + 32C0D9DA1F68236FA6A6A56522CE9C80BF678E14A487742545015251AA0BA218 + 2B473B8AD06A7518F00F60D7A58DB07558999AAF3A2D324069CD113A4E35825A + 9C95FBAFF349628A3A5793E79F92D3EDC2CEF2B568696B606E7ED325079CAA2E + A6C799D2A8B81792E0625D50F052A312FD411A13135F4646DA74B011163A950E + B71EDE429BFB214C1A23A054C0ED7562526A3A668CCFC4E6929568B6D733B78B + BBE58063370ED0E909AF51BDBC1BB77DB79068A6E0A33D640105040383C89BB6 + 1173D2E7A2AAB11AA5D6A330524A69A2E0E9F3E1FCAFD77070433136CFDF84BC + 430B612380DAC30E39E070C53E7AB431855A30351B559DD5B0D38DD0EBD5E80B + 7AC1B041049D4398129F81C7A20D71711A40A584C3E3C4D5DF6FE2FDF9F9F83C + 7B27BA7ABA51787E2D6CADF5CCBD632E39E0E0D53D74926134953B330F1A9D16 + 65F7CAD0CB3E815AA380B3DF8530D929F6E67624C72720ED9531E871F6A0E246 + 1D56CD5B83DD4B3F051D66E0757AB0BB7C036C2DF54CDD49AF1CB0FFF20E7AA4 + 29855A9C918B11718920D1E3CCFD5204E045880FA2CDD30E8D46077FC753A814 + 1C1C7D0CDEC95C862D0B3780190C81258B467B7DD851968FA6662BD358129003 + BEB8B08D1E651E4BBD97F501282A1E2A44B7318A2EED85681E82A051C2EE7E04 + 9D5A07DBED164C4EC9C4F182AFE121EB34C0856030EB1172B1D879661D1A6C75 + 4CF3195A0ED8555E40275363A89C99F92482A4A8FB2A7B354ED41C86C7E7C11B + 99F3E18B04D0E6780435F925E864106282189B9A8001B10F2A8EC29E0587B0EF + A72DA8ADAB615ACF85E480CFCAD6D12F5AC6526BE67C088B251ED79A2A70BAE1 + 382C94094E871F3EB71FAF67CD868F0FA0D3D10EE9D83635B6221CE2A011B4D8 + B2643B72662EC3E6234B51577F9769FB999503B695AE268071D4C78B8A50E7AB + C7E9A6A3E4449B101AE4111458B85D5E04BAFDC8CA980A77BF035DDD8F60D06A + F047CD1DBC9DBE0225DB4BD1E9EC42C177D9686AB2328F2FF27240C1A9E574E6 + 4BB328B36E0CB69EFB08A3A838805321384016301C8652AB82E3890383A121AC + CACB81819C3187AB83EC56116E773FD6CCDD8A7727E760FD81B7F0C07A9FE9BA + 22CA011B8F67D3535233A80923A7A1A2B6127A4E4B7692484E7484CC06395244 + FC9464A10D2A135A453B1AFA1BE1EF74424DFA302C0D5F3D8FA2B57BE1D4D5E1 + 97CB1798DE6BC300F9DF2FA247C7A752854B0E406F34FCA7C6DB3D76FC78B104 + 1C1D8EED36E2830E3DC5F4493350D97116D72B2B1967C530C0EAE237E9D49113 + A94F16ED83DE6CC4201B8A2AA64014342246A2B948462B49B6516B449221E999 + 00C6D4560325BC413F56EC98858686878CE7C630C0CA6FE7D113925EA536CD2E + 84DAA4C5103B100548ED82F40851918ED585985349BE856792AED5EBC107386C + 3B918B3B0FEA195FF530C0FA938B4575820E5C6FF8994369C4C422D2C543A220 + 6B204424236D3C4FA212637541AA47A26005AF44C0D403A7B51F4FAE70F20B67 + 79E15C878FF79943445348DC31475123CE8803C978A2AC521E05444D20371D01 + 11698F4846C2B110958DF46A835DD641F995F9BCD27307FC09B7C155FE6F8B65 + BB0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B1300000B1301009A9C180000055F4944415478DA + BD95796C147514C7BF7BCF6E3B5B5BBA3496944234800523898931261A402548 + 820A114C0C8A259140C42B2882880D2A211CC12247800222A9140B2214696D4B + 0B964328B5D8130A7669E9B52DDD767766676777E7F2CD148FF9C33FF1974C7E + E7BCCFEF1DBFF72C9AA6E17E36CBFF06E82CACE875A63893639C005956A0482A + F53294840C499221272424E2D2DF7389C67222015952A8A77D4982A66AB0799C + 18E8E422EF9DDD9A6902F4969CD3B4343B244E360E2A245C3340325412A0C475 + 180148A0AAA8B446BD0E1213506271E36C3C26C197CEA0A9D48FDCC61D1613A0 + FDBBD39C352D89CD7AFA29589C3680D68D3DE303545585D5668566B542124412 + 48108B0686F518FB5014F4F50671BBB004FE53CD7CEEB55D5E13E0D6C112CE31 + 9A65C7BD309D56FFDBA6BCBF0B524F2F1251198EA88A3E51C498594F2035ED01 + 0C048268C82F44C7E916FEADA6BD66C0F57D3F722E1FCB66CF9A069BCB0E8DCC + A05F4D553458ED2337BF5BD70AB5BB0B368B1DE1FE106A1B9A911452E1CE7E10 + CFAC5A083126A376F337E8286BE597361798014DBB8E720C69307ECEB3B0BB1C + 245821BBD09EC5028DBEC1FAEB90FD1D0477211E8AC1DF7A1BED620853D3C6A0 + E7620B3C33A762CA1BB3D1441ADC2A69E0DF6E3D60065CDB56C4797C5EF6A179 + 33616708404E86AE84DD8644248A60F5AF0039591816210E46900847A18A0A04 + 32914CE3C6E100666C588650C9793416D7F2EFB71D3403AE6E39C425A57BD909 + 0B66C34EA1A6478CDEAC0E3B12BC808E2315802841E4638885A2E4E89811AA16 + 870D5248C0A5AE76CCDDBE12FD3F5413E00AFFE11F8566C0A5F50738963498B4 + 700E1C1E17855EC2881C878741B87BD000583415DC9D21822BF416E802E41BD6 + CDA0787F31C62F7A0EB91B57A262553EDA4A1BF855FE2233A0266F0FE72540CE + 9B73E14C66204763A40983E85004774A2FC2C5D05BB9DA0E7950848D4C68D343 + 962E71B2F83462937C5857B69B4CA8A26CCD4EB45736F29F761E3503AA57EFE4 + 52D25976CA92F970B18CBE05311481BFA4062E8B8CE1CE20A43E1E0ED502FF0D + 3FBA87EEA23F1C826B72163E2ADA08AFD78BCE1BB77161D321B45534F09F771F + 3703CA57E473A9A3BCECA3CB16C09D9A8C28D9D57FAA060C24C48744A83D1CA2 + 82809FCF5D82EFF1479091938DE4B13E3C3F7F16AC147012ED058261547FB91F + 372B1BF8F57D27CD809FDED9CCA5A5B1EC936B9790F312683B7E16C93605623F + 8F815B3DA8BA588B5E218CD40959C83BFA15BC49ACF15F6C70981E5D1CEE2406 + FD04285F5780B6CA7A7ED340A9197062E9066E74461AFBD8BBAFA1E3973AB863 + 5188C1089CC371ECD87718E316CFC44BAFCFC5E8941424310C044A8A7AD3C8F1 + 7A3833147981C1304A3FDB83B633F5FCD660B919702CF70B6E4C76069BF9F274 + 842E3760F2C3631168E9C2B77BBF47C0E7C4F67385C6399904C784A89110F58C + A2EAFFD3D84D01110886708A9C7CA3EA77FEEBE14A33E0C8C23C2E6B6C069BB3 + 7C3E8EADDC8A409B1F4248442433056B8B362123DD07612864E4BE7F12A16AF4 + FAD0EDD64D14C289D53B71BDAA9EDFC5559B0185AF7EC265668C62676C5B812B + 551770E64419264ECEC18B8BE7C1E972D3CD23466EB21899F5AF2C7B0F422672 + 920F06C80745CBB7A0B9FA2A5F10A931030EBDB29A4B27CF4DF97811322766C1 + 4E6B123D289E6EADDBDB62C5485A3614B8A70146CCA48F750DFAC21CCAD7ECC1 + CDEA3ABE40386F061C5E94A74DF0792178DC24988A0DF4A2432F562F2ED4CB94 + FF65852A17CDF5A223ABEA48E5D3E78A6264DD38A9921A5751F75B0B760F9E31 + 179CFC691FF4A6085232E49152A90B5074212A09531443B8F4AFB1ACD25C518C + CF38278F5CCAEE76A1371A899C8C5E3697CCFB5EF4EF57FB13E9B671FE912CB5 + CA0000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B1300000B1301009A9C180000066D4944415478DA + 7DD5095014571A07F07FCF0D33305E081105540C89559058A9CDC654768D81DA + 188D51B0E2B16E42248A2144CA14F1203122B8529460053113F188C4230A0904 + 198C881841C4012238080C37E19801A699D11998EEB9677A5BDC32BA35ECAB7A + F5BD7ADDEFFDEA7DDDFD35C1300C9E347D7508AC6351E01352F0F946305C6B83 + 62A0ED405EC3FD867A150C0F9BF174F3F595422ADD0AB55A06B158008924043A + 5D3B5C2EC7937B88678091A264A86F64433F0C703880B7089DBAA09EA47C7253 + 4B5343134976FF0FE0CB02F12CF02DBBB9178B04B340DBFF01862E6C80BAE6C2 + 686919CF6E66101CC487861B8C18F9F4833D3D8DFB8DA3DA670091500C37B102 + E1AF48A366CE99E1EE6CBA7753A76982D9669C0250FCFB3938C8734D174BA2FA + 5AF4080B1180F699834DB7FD33C77443298BFC08C2E420783A9274D0140DFFC0 + 45F86ACFE1A5410B5E2B3D579053DBD2D6B1D1381A61D7690F7A06DCF2787044 + D62F6A4A4AB3CA2E9910365702D72C7F7CA294EC993D437498AC9DAF3C5B4CF7 + 247CD1BCDEB24888B4D4DC35FBD7AFB8FCFDA95E14C92BCCAA01F96AE358C8CD + 09F28467A0F7D45A367F081AF48AEC53B487F2282D0D93DB8693BF1CD991B0E9 + F5C6EF4EEFAE3B7EE4B0213DFD6AA4E9BD08E5D6B793D6E5C4BC597424AF1357 + AEDD86B2F34492486C96693B3ADD1E81EF8E97C264E72034ECD55B6E9ED7DFBB + FA4D784052A82CD9F7C3F1FDCB7CFFB666734C91EC10D24F376D7138CC3F64A4 + 6E3DB8F6FD6DFB72CE0F232B6DE31DBB8BD9CE732F506907CF793E4141692B78 + 3C06B481DE23E04A3315B4370BB84056CB5485D9D7036671D433AF94CEC6EA43 + D8F24E846FC1D533FF3040B846D478EC0C3E2CABCF2499A0146AB80B367B8F67 + 20BFF82EB83C0E1E3CA043E74BA7755735D244B58AC1E698716A774CBCD05DA7 + E1CBCA17A26A5A76F5678BFB46DEEACCF927AE69A0A4E7611D273C6DA8BFF580 + 6B5C8DA7F77C06905D5280C3E560C24441EC12544AF97E51B21F29247C3D0BB1 + CBFE0AEA271D0EDC7A17A1196588A5AEC2EB93554023F031B1D85E2C9EBBCD97 + 6C3BA7368D4C0DB4F48F3C9A80CF34BE57710DDD22099817AA6A2531DED782B3 + 3B6361AED521F5CE87B0C59D4562673AC2725231AC95222E20AAAB616834C636 + D2DD6E75EBA70668A7155C3010F1BC169F691F57DD5067A1EA7E217C06F950C5 + E9E1ECD32159F129AC2B64F8E6EE7248B3AB51F7EA4A7CF39765F7DA2B6AD6BC + B0F04D0D9F27C6A58B099E8101B319041BF91C91D428E2684A1FC64BD24E9E82 + AD0268DBCEC3429713EB6F7C0E49F84E5CAC088679428AFA2F7FC457658A3241 + C7C04741DE230FED6E030A2B9B3D036AAB6532F2E1869923BED73BA15D72BBFF + 2CCA6FFE8EEC856ABCE83588E4BB87F052D852ECA4B2C08882F1FB1B71D8109D + 98E564ECBB75642B188AAD9194C5333066314F466F1ED04589B28706D5C93AD3 + AFA8EC1B44EC3C0A4BFDF528B4A66195FF00820B130147388E85252277FBDE24 + 67DCCA63031BDE050C3498C8B73C03DDE6FF9E804BC060E1ED1A258D879BFB72 + 71AAE1265202FFC03AEF516410D771708E1CE2CC6F61493A8F6DFAC0B1CABDBB + D64B5F11DCEA213B009E3798BA61CFC0030BFD18602BB59DE1BF56DEE1A81B25 + F351D45B8195D60EBCE33B823C428E7C410620AF873C518913653FDF57965745 + EBA925FD0EA3895D4C8031E4790694BA89C9C8619FB4C85BE053526B1F36E84B + 7C5A6D9711ACE9C07BB32CE8957C8D1D43C968BC138ECB9F5F4145EE07178463 + 5EF1EAE6A316A37D06FBFCCCD033D33D030AEDF8647C34E327E5E19A82B83FA4 + AB8918719D86A3BF1BD17C17E687ACC5D2DF32501C700C652FAF435BCAAA54F3 + F2A87457E4DB6CFE27265777C5C778060C16EAC958C2D6A40E8BCF51A5BA27E9 + 57453234A406EF076F46C2C35F20922BD058C0E0D2B5ABD62BC9FBB608A2C30B + DA82D863DB9C8FB604937EDE3340C1FDE705B60BC1D9D14D2337F3622CFB0A4F + 60F3CA12BCD194079DD6095ED267C8DFF5E540E14FF5AB05C2E7DBF43D0D6C6E + C58F33E0AAF50CF492634FC61CF69F4C539418227197DF7333026D0E17841C01 + C6B88FBE13E0D6E52A64EEDD7D7E6EC08B09F754CFD316A700E0BA1E03FA14CF + C0F2E88FFEBC401030536608BD79911B37FC4BF6FA92883081C08541F645A8AA + A9757C7FF46451C0A297D2A713A6CEDAAA623CDDA6AC45CB967FFCCC8D7C3E8F + ADAC560C917FF8CD9C3D2D8A2FE42EA0C62927DB55410B02EF300297A1F17A39 + FBAFB54F09FC07B94A59FE43F174410000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B1300000B1301009A9C18000005594944415478DA + BD55696C547510FFEDDDEDF6ED966DB7DDDE85DA8ADA28AD0AC8A5450E396CE2 + 078B2087D2180C041340A5694894043ED410131235F683D1C41844130822184B + 88422D949E4B5BDAD2DA36ECD2767BD0DDBEB7D7BB9D570A641BBEE24B2633FF + E3CD6F66FE73E85455C593FC74FF1B00FBEBF1117D767292CC4D42E125C89240 + 7C966202649E87C4C766E518E4284F673CC90FEEF150650926931963E184D0DA + DFDA33E300C2D7BF56CD6E19F21D0EAA1E502509AA20411145E2A454B8CF1F82 + D25AE3AAC6B53BA2044190E1D64D617054C2F33FF7E8E200827547598BD9C058 + 0BF602E94EC0489BCAE37C7ECC9EE1FED5C9012FB86FF781EDF37025E77CF638 + 80C0F9236C823D81B1AE3A0231320DDEDB033DB90B4502241190359266B9F868 + 4F112107279054F21A42692F60B86A13D8FE0E6EF1859178807B670FB356BB95 + 492CFB1CA1BE26E8743A58F28BA1D39379AA426B75C6789D2203621410C24411 + 0212307DF914CC8C03D2A66AF83E5E87A9BE0E6EC59FFE7880F15307599B3391 + B1AD3E86E8C82D981CA9304CDD8512A13721D5B244EF23CA33B1D71E597B5429 + 1282DE9A045B12A097C288BDBC03BEAACD18EFEDE0CA2E8FC503F87FD8C7DA52 + 921866430D6223DD141E0B42BFD7421CF7817203B1488C88472C1C4594643E2A + 201A6491909E8D25DBCA91C0D8102BD986A14F3761B4C7C3ADBF32190F305C5B + C932A90EC65EFE2522838D3026BB614AC982CE688A7B4F71CA4FE9A88589D292 + C264A20846BBEAC94B7AE6E595E83FB419BE5B6D5CF9B5403C80F7E40ED6EE72 + 30C9155F21D27B15E68C021809801BE882B7F31604B2B868C552D8720A29A7C7 + 486B10A010815295EBBD01C5688461D96EF41ED888A1CE36EEED66361E60A8A6 + 8275A4CF639CDB6B11E9F91B8985A59868B90261BC1FBADC52542F2EC3C23413 + F6FC71090E25887BDD9D10C3018C8D0690535C04933D19C65776A06BFF06F4DF + 6CE5B67BC2F100FF1E2D6793DD294C6AE5F710FAEB113238113C5B8305EFBC07 + D65E8ADA8D2BB131370863E97A388B9741CF4E2216F463DC3F8DEC85F329A44E + 5896EF44FBDE37D0EB69E22ABB847880DBD5EBD879192E26EDC39FA00CD6E34E + C088D8B91378E6D542CAC67988B6FE03C753760C4C244097510C974D44647C98 + 3C98467A613E0C4E176CCB77A179CF7A74B6DDE0F6F549F100DD075F659D59E9 + 8CFBA3D310BAEB10B3CFC7C07747F06C160B8BEB39A06F1402EBC390351B8E92 + 32248427100B8C91072C5C05D9D0A764C0B172271A3F588BF6E61BDC8121351E + A06BEF523625DBCD647C720691A633482C7D1D5E8F07816F2A916E3542E28031 + 4581EBDD2A64BEB80CA27790FA4F68A6A243776F836752E15AFD3E1A76AF4373 + 531357E59B03E0D95DCABA72DD4C56F579441A4FC35C5C06A3330321DF20BC57 + 2F5371459053BA08C94F9337C17120468831AA66838C406B03A64D76B8D756E2 + EAAE35B8DED8C27DE69F03D0BEBD98003299EC6375085D3C0935311516CA2483 + C50A8396ECD41E84493F782A3C39CA512547A90E22331D71B8A319A6052528DA + 7218755B57A1E15A2B776C720E404B45219B969FC3E4D65C027C3711F5FC057D + A21D0A8545BB23533F924956149289249265FA951842D301E42D5981C4BC9770 + 71CB1A5C6968E3BE08CE01687E2B9F75E6E531CCFE1F61CECC818114AA024F5D + 483B57B58B33B24EF7A86B3F383399CDE0551EC3DE003A0F6DC5B5FA26EE0437 + 07E06645915A906586DF301F220D0F95BAA666AD222B9088342E4ACAC3B54CE6 + CBB3FB333219C4AB26144687F04BCF148EFBE5F88153F7E6A2910C1B9F244543 + 338A841985320491649A6E02EDF1D44D35D2F6786D82492AC9D4B5A5FBA47572 + 0B75D696902D74613A143F329FF8D07F52DF7FF9AF3EFE39823F0A0000000049 + 454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 411 + Top = 8 + Bitmap = {} + end + object SmallImagesBrowser: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C18000003944944415478DA + 55536D4C5B65147EDE96F6B62B1FED5ADADE552B2A51424CC0042B382521B1C4 + CD056C878445F163092A230D4882B25937B71840C3CC34FAD36032083F186B80 + 05E220CBA6CB16101BDD0864AC5B9A01DEC2A0A1B4DCD2CFEBA17E444FF226F7 + BDE79CE79CF739CF616EB71BBB9648244D16CBBECB3C6F7A4C1413A24C26E11F + 634C8ECDCD28E27125944A392489C164CA57F5F59D5D61A74F7F920992C91216 + 9DAEF84E4FCF966663E3212529FE031045454509787E1D2B2BA18C4FAB55C0EF + EF1709E0AF0EE4F2049F93F394B7BB2B645E5B0F102001FCDD0493C950FE3CC3 + 3E7E0ACB2B31BA4BC8CBD5221008FDC1DCEE6E6A290BB1D82A5F5C5CE4D56B75 + 665163C01E9D0EB1A5BBF4B6149ED619E10F2CC11F0AC2C22BA0DFC321AD7E1C + BDBD6705D6D9D948D5B689831243BE413557E5B09BCAB6D6B079E51A94EFB9C0 + E5E5E18BE94994589FC4ABFC33989D05AEFE22E1FD3783703A0F0BACB5F51122 + 66190CB66C83A5FDF743AFED7FE27E532DAE4C7AF1A5B081194D165E707C8C06 + 8703832DD578C9FE2BAEFBA7E11BADC6871F350BACB9D98A8282709D4E6B6D58 + 0A1C7CF19D864ED3F59FC7E15DB88B73BD9F622914C7579DC338F8F27ED80F5B + 71E2C4BBB8796D169EF169D4D7D50AACA3C3DAD2DA3AF88DD1F8AC6C6CB49B08 + B24067D6132F49145A1FC5C315016B6B7E3C576147686B1E1D1D4DA8ADE9C35B + 6FBF8ECACA4A811D3F5EF3A3D359575D56D6881B37BEC6EDDB3F10E32DC40B10 + 8B2708500E8E53633BE2457BFB39F87C7A3C78B04EFF40A3AD10D8A953DFABD3 + E9ABFD45453B8E89892166B71F417D7D3F767636914E4BC48F82BE4574751DC3 + CC8C077BF75A3038B80C8D06A8AAAADA1D632FA2D1548ED93C77BFB070DEC071 + 6928143C258BF40C39D46A39CD3B8CE1E19B5411B8742917070E7C8BF2F2029C + 3CF91998CBF50149343BF7E8D1A63B36DB05B320FC46D251ED4A8B4E9A3AE020 + 8A515CBC3846A0218C8F23343585EF186341A55229B1B6B636D280C2E4741EBA + 555A3A620C06179195959F499648891CA744242262686894DA0F637212DB1E0F + F41410CBA8D4E53A462A54191B1B8FDCB2D9464CABABF7A8AA96928945A40840 + 856050C4C4C40584C3419C3F0FCFC202DE2067340370E6CCE74826156687E315 + 7F69E900170ECFD1B298E924A96519542A0552A9080606C6D0D31319F1F9504F + 79F17F17CD6EAFA1E0B421955AFE4992EE99E5F2ED9D745A9501D8DD11F2C9B2 + B353AAF9F9C4E5C5C54CF2FFEC4F505170DD160925C40000000049454E44AE42 + 6082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C18000003B74944415478DA + 1D93EB4F5B751CC69FDF393DA7A7A72DA52D5781425137C439A731662F505FCC + 88AFBC9B60C79B09899148E2444CC82026108D991A17135FC88B99B834A893C1 + 3A37A45C4A258AA893A9B809E34E59192DBDD0CB393D570BCF1FF0C9F37D9EE7 + 4B9E3C1D84089DAF60434F1CB1C5E689315DBB743B82D6A763277EBC557FF3B0 + 2B53B5BAB647EA4A23B67E5F790F6320A0281DFBF20F7D0CD2D83175C269D04E + B61D1B3A15CDAAAB825A52A64929939031E81AA59262730E34DF002E771D5F0C + F91AE7B70EF90B4CD201E0CFD91190BEB363DF51DCBDAF16480B38DE202121B9 + 515C246069490157C681D579C05D891B7F2C20F0D9E9AE545CFC88E5F903C044 + 700AE4FD1EFF805C606F7AE0C57A3C58C3229E507157951091B2E0293BD21A8D + 982C63758B8378FECCB7C2E2501331971C00AE8CE601BD3D7E2F6DB378A8671F + 42A953852CE8D8CDE590544440E1915272C8CA344095839F1D0C2F5DE86E20BC + 6D85503446023F83749F99F4D654339ED4E36EC40D76380C0AD6527B884B02AC + 7409048D2022E690961C789844B1F6F9A9966C26799E628CB8E69F0479FBBD49 + EFD1438CA7A2B11A17370B6163E503075149848972425491CF4580BCCBE1A97A + 1BC25F750E6E4DFB5E61ED25B836310DD2D631E53D7A3FE379A6B9187D734588 + CB14243D9BB7ADC00C0B042905455180308DC71EA986307735B27CA1EB51A6B0 + 34F4C3C818487B47D07B9F9BF5BCFC0683737F17E1F7503178430229711705B0 + 42576588920C7D87E443768133C5F0DFA7CDAF89B1ED6FC6AF2FE44FE8FCC95B + 5EC5789ADA805FC315E89F36832277202A19588915B446219D4B43D9965067E2 + 5070B80E5B23BD5FEFFC72B175626E5926EDEF4E79AB5C9CE7E49B3C56721CCE + 8D58B0135B01740176D5818C9044329B019734E3584515AC476A918A04228B5F + 76378F0667FCA4BD33E075B98C9E975A1C604C143E1C3722185C878555603139 + 4058158E2223B45D0AF7703950C63476FF09207E23D079756CF213F2D63B935E + B79BF73CD75298072431BE548ED15B09B8AAA2709595C3E2B0C0C15662A06F00 + 77BEFFE08AD9245E02E3DCE68A2AE787870643A4A36B66D85DC33CDFD4624782 + 2688E6A7BB99D5B1B1B30DDBDD3284D7A3585F4B627DC607666FEAB8A6915942 + 1BC1589DB83C7C09A4ABF7B7B3662BF3BA52637566F774643643886DDD5623A1 + EDA4940A2D4308FF4BC91BF30525D6458A2F1D571555D06511C4C0C0E7F381BC + D0DA8F5C72A33611FAAB4D9593ACD190BEC931DABC91D6566030EC10B6502134 + 07A2E7A051D6FC07E807D5EE4F791FF03F1821B5F08A31CA070000000049454E + 44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C180000030B4944415478DA + A5938B4B53511CC7BFB7E9D439D7432B5393288BA0CC47C1B5F215164AF49282 + CA8C307A2012A6458D8CA4B2122B2B6C5492599485112515A6649444796F46D3 + CC7765439D82239B6D6EF7B9CE76FD03027FF0E3FCCE399C0FE71C3E3FCAE572 + 613241B901A5D52395FE3EAA18B3C5E11444099C20C1C94970F0021CEED129C2 + C92B6927F3C0E9FEBE5E92CDF8B2343ECB03B859336A9EADB3CF09D0C8905C5E + F04078D90392659707C68B2E901253C0E16B1F8F5E3386DE5C5B11E2019C2C1F + 609297815E1B17F65FD7363CFC846B3556B6E7F1BA380FA0F8C11013394FA21D + 8E29D06AFD60328F6351B837962ED0E1F6B341242DD7C16A075A7F70E0C8738C + 1D1DB00A3EEC5B434ADCC40DFA9984488AF656A951DB64831765C3EED440347D + 1D4565FD18F66D08C4B288006C3CD68EE0697F90B0448BD60135FBEEC604E060 + 492F939EE047A7AD0C43DEE50E2446A9B13A5207FD2D337A06056C8F1710BD38 + 14A9871BF1E8543044CC45BEA195353DDFA100B2CE77315B5669E8CDC9A1D097 + F5C23EFA0BBE1A1DBE98D418B78F63A6C60293450B5FD577B0559928BEDD09C3 + D30EB6BF364B01EC2CFCC66C4D0CA0B7A584E0C8A536309DA3B0D97E23640660 + F9EB03AB538DDED616DC2D89C69EF434E82F37A0AAE127DBFFEA8002D8AC6F61 + B6274FA533D2C2B0FF4C33AA5EF561D32A203E360205153DB08D0C6261A8155D + 754570C92AE84BEB70AFAE9B1D6EC85500A9F99F99CCB541F4EEF56188DD741F + C6170C5A3A0BF0A4610045791580CB828AEA6CECDD9A06DB9884B3E5F5B8F3A2 + 8D1D693CAE0092721866D7BA59F4812DF371E85805542A1E572F64C350D584D7 + 4FAA11111581D3277220F014F907A0F07A2D91AF99B57E285400F4FE0F4CC61A + 2D9D9BB1D46D37DCBE49C44695975B1B95471E9103B111D0F80305179FE3CA63 + 961D6F3EA700D61F359AC383A4398B66F31064355159004FFA80A26482A32008 + 2259E3C89C02D94537118D6D370D99EA8F2B2A6FC87F5FE9903531C3237F9C90 + 7988120F49202939C86127449292E424350791E7103423C0971B1B300E7D2C53 + 9A6932F10FB10AA2F0D72B39A00000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C18000002E14944415478DA + 3D934D48146118C7FFCFBB33B3AE1E34B7882CA322AF051DB2531F826961D1C7 + 21024B0F456AD041963E0E192512B1B8A7C4103C6424E8CD434148511D432F79 + 09C5CF50F3A3526BD7DD9D9D99FEEFECE4C033EFCCBCEFF37B9EFFF33C23F596 + 75ADC134EBFFBA6E52894000789E0737581DAE766059BE6BCBF0799B528583B6 + DD2F4FC3E19EFB91C84DB8DA25B89402D2696CD2DC8202640D03693A6ADBA425 + 796417ADC3B67BE5A165C59F1414C45204783A0A2D6DDB48D3C93C7F1EEBA3A3 + D8989C442E1C468667D27A9FB683D69DCB25A48D80C7E1706C9E9B8CEBA79C4C + 26615656A2A4B515D34D4DC8AEAF23A30141FA5A4694725F68C003023A4C3336 + CE8F5ABF16B2994A41959763777B3B261F3DC29FB939E4B4149EB1B5149E892A + 41AF6D27A495803602263480A665385CD7A8FF705F1FBEBF7B87D9D7AF614522 + BE049D415A3C6CE7FA526770DB34E3F70898A21382EADB3CF82B9BC5D9CF9F31 + 3F32820F9412E5F78C69E6B360742DA1DF21E08661C4EF10301B44D7978E5E5E + 5707A3AC0C919212FC5C5CC49757AF60E806D184B79D610B03B69390EB04DC32 + 8CD89C9640AA4DE79465E15457173E7576A2301A456D4F0F96C6C7B13C3A82E4 + F23226868721333378A324215708680885620BBABA990C7E703DD1D282D28A0A + 8C0D0CC0DED8C0E2EA2AF61D3F81BDC78E22CD8E7C1B1A42F2EB188643045C08 + 85E2577506ECBD1E98C38D8D38585D8DC1E66664E968047D4F05F22CCB84628D + 4A4382B78E9B9033049CF3BCD8143F5E8EC7B1BFAA0ABD842C8C8DA184C5CAE9 + A9D4ED658F9D9C1E368E379D39CA78EF7809A9522A7E1A882DB106076A6AB0B6 + B282694E5F71280447F98DC91757FE3F13C05A15F3FDA3069C54EA79AD52B757 + B9FBDB71FC68C52CB3A3FCDF0AF9DE481EE083C4CFA694F00F39AF5B0E893C3B + 2272778D6D56C81F7275A8C051045B00FF3F139F815291F088E3764A1970698F + C845162A99CF309886C0C10778B2C5503E44A4485034E3BA43FF009ABA6857B0 + F63BE10000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C18000002F04944415478DA + A5935B4854511486FFE3348EE4A512D32CCA4A2B7C28D1A2A3943752828AA887 + 08C96E503D543E748322E946455A29689498369222A665418698A898A9E7A038 + 4D178D862ED6385363A3539DCE7DCFE93463F42AB8E067ED057B7FACB5F917A5 + 691AA612D45FC03DF68E79BA3124D1E57188129120C90204F937784997CC4394 + 395D3C7885F3D533C3C283BCE39AA5E664EB5E1FA0C9DAE008415874D0341310 + 4041516588AA085911A1100544237A96A06A0A8C9411037606FD43DDCEB60B43 + 737D80F2F662667974129D129F3EA9B6AFD79FC19DF622F64D1997EC03D43E2B + 67E687C7D15F30029508F0787E22217225D2E33361773BD068A9C3ACB0607459 + 58ECCBCCC3E070270AEFE5B383151380B2D64226695E32EDA4C6D1E5780A8970 + 103C04EB2237C0AEDAE032D8D0CEF4C0C0CDC683238D78DC5D85D24717D921B3 + E0075C6A3CCEA4C665D3692BD6A3E56D0B067F59302ABAD0F7C28AC5B3A22007 + C8F8FD2D083587AB1168A470DA7C10F5ED15ACAD5AF603CED6E7312B17AEA537 + AFDEEE9BB1A6F72E5EFF1A00679431681D82692C0C55476F2374A6019CA0E266 + DD65543597B09FEA353FE078F51E664D5C16BD352517A39C1BE79E9C82C33582 + C48424BC1BB3C1FD71140641C377751807D24E8077B971B52E9F1D6E9C001CAA + DCC66C5E91432F894DC2B59EF3F841C6F17D4C84E0E2B124760104D58DE76C27 + 22C962F496BC4251ED2914980BD8B1D67F1DD4EC62D2966DA01FB02DE87BD785 + 285394EE03098ECF4E444444207A55383E7D7E098F4BC6B18C4B10253B4AEF17 + B38E26C50FC82DC962B213B6D0A94B3742E155184081F26A080C3442A1082ABA + CC18B6BD87C84B082521885C6442435B15FBF1E10460534122B3833E48E764EC + 9F9491F26FE5E14AE50D56ED9F18617779B6634E684CF4DCC018F02A07A21210 + A2EAA622F0EAE7BF77BC9A175E2F41B06106FA3F74A0DF6A753A9B89DFCA3BAF + 649947787BE257975D0CF01AF4470A144597AC4324E8F9BF2411FABF20285830 + 596C1DA27F99A6127F0003D2B3F04F1EC3BF0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C18000003184944415478DA + A5936D48535118C7FF7B714ECDD444495383E6CB2853B1AB5144F6418420A52F + 05959F0A14A1A0C0BE442F148151A885819A51541662261A8A651A6989DABDE1 + A496A26EF99A6B6C6ECD6DF775771D773FF6D1C339FC1F0E9CDF79CE79FE8F2A + 180C623343B50158EEF8D80AAD9CEB77AF73221F80C40BE0FD1B8B85C012E504 + 087E0EBC9787C8F3D04585EB5D767EB2F2C3BDF21060B16B704EB32DD2A08D88 + 464014210B1202BC4862A27290C412820119320173EB2CD8DF362C0E592CA747 + EAD3438099A75D746C4E3A95B82FFBBF14399B1D82DD05D6CD416F4C434C621C + C61F75C2DCDCCF9CFDD6541002989B3AE86DB9E954D2813C046519207B1B5FE3 + 36CF42FCB50CC78A03E6EFB3880BDB82BCCBA760ED1F83A9A187A99C7CAC0026 + EEBFA413F232A99423059025092AAD16DE251BDC5F18085E090EEB1F787D1CC4 + 25277C3929484A4BC464432F53656A5100E3354FE8EDFB8CD4CE928308080234 + 3A1D9C3F2CB0F58DC2E7F2835BF341ABD16061CA022E3F0DC6DDE918AFED642E + 9A9F2980E16B8DF48EC2DD94A1B408204F1058112B9F68AC9966C12EFC255B01 + D89757C12CFF4245C75DAC0C30F85CF786B9626D570003D5F7E9D4C26C2AEB64 + 314496C7D2E057080B36B05627ACD3F35865D7C1C786A3F4460532738DE8B9D5 + 02FA711F7373B15301F456DDA10D87F3A90C02B0F68D40FDDB8EE9D12930E629 + C4171A5176BE1CF1C909D06BD4104989DF3F68C358F35BA666B54701749DBB4D + 1B8AF2A9B88C34E848AA53031318B0CEE078CD05ECC9DA85B0A01A3CC94C1644 + 68B744A0B7B615234DDD4C9DE3BD02787DE63ABDE7E801CAE9F761AE6718F36E + 0F4ED45E4276FE5E702E0F24725005525732C3A222D07DF739861A3B9987AE41 + 05F0A2AC9ACE293D4CC51FDB0FFADD100A8B0F21393519BCC71B3A14320564A8 + 09461B1D89F61B8F3058DFC6B4F8861540DBE9AB73C9A98986989C0CE87461F0 + 905BBD6E2FB131E90B498648BC216D5899544856ABE0F8398FE9CF264B83BD5F + B172534975EB562E90CB7AFD9C40FC2F0503108972920881F48620918622CA13 + 90485417A5D73B797EF2957B4869A6CD8C7F6D7DD6F0588BD0FA000000004945 + 4E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C180000036C4944415478DA + 5DD06D4C53671407F07FCB055B0BAEB8522C89229BA8631F0467741BD1ADCE0D + DC88CE97A004C6307E704BC0ACDB420673CE083AD41898C01C64868152ECC4A0 + A0203A04D1EAE8650E2872297DB96D690B05435B5E5BDBDE4EBB64C9F57CF99F + 3C39E7979C87130804102C5BD33EB8E98F102D740FF5CE0D7EF7F3F06F6683CA + 6B36F463C7374590BEF7095A7F55E08985C69CCB015A7D33B8C6F91F3056D64C + 5FFB2567F18C1553E24464B648F6933D7F2BE61C34728A4EE2ADC4ADB85F7F63 + 8D664CEF9F9A70E90CEAEB2F01DAB24DEA8A9F1E520D13DC88C450E48D6ECCD8 + 92E42287062DC4F2D47CCDEE3D3B13C2ADA1D7CAEBEAC881A1BB99E3234A3630 + 73791BD44F573C68ED7E23D9683231B7AD3AE9B8A6F84CF9E9D2B0AADEC8A4EA + 9A92537C6B787E7ACE11AB7DEAC2EAD9D1B17916A02CFD1CAE955FFC608E7CE7 + 78F32DB35FA83BD274A9E1FDBDC7642DBA8A1A657CBFB1B5715C27D993F6697A + F93C6F5C3663D2FB5940999C823064368199E3AA2ADB45025956AD376BED8FA1 + B292B7CDC48AB44B6724CD85867A07526CE20C077FF1E5A703B7D92768266C98 + 5FF040FD9787ECBCBF7643FAC17AA44C65A1405F85EC03BBF0E64631CEF6110B + DFBE9E92CA673CDDF3863B6CE059C00B9F8F89ABD35BFB8FDD3C11B1D7DD838A + 754F9061B88A83CFF4D8763A1FB91FE669143AEBE6709773921EEE60030E1FC0 + 0F81788463A13EAE972E8DEF31A26513837DD41F28B2DFC2FA58273E13ECEA52 + 2B9A53A3053C4F7BC7EF6CA0CFC52084CB0518B4760EB76DD78C5C44EE721748 + C151A46BCF832B4982B4CA5E4D375D3D248A598601FA1E1BA0A67D08253870BB + 434A1B55F2AF548325381CE58527AE103B3BBFC7A3B8E3D851F3207746F96725 + 4F1809E7C43F6CC0E25E40048F03CD182FEB4257FB459BFD28B67A9D582F4AC6 + BAC76A14AC2CF6755E39F7AEC01F4E7208A0F791E2A513667D581406B8A6890D + 6D641FD9411D42B29FC0C9490A26C9D7C8F3258F994E7D991019B3DAC9305E28 + 07DBD8C0A42780172D8FF0BF324B100699FCC0D255E2ED28A0B570A665E3F0B9 + 86AEB6B3B5D225A2252FD660B73D6403DA51733089E71FA9B5D84FC4BC165B18 + 1F2582FDF9DBF96A391ACBAA3385A2583987F3DFBCEA5E1D1BE8D71B8219257E + 15F905C5A0FA46B3B76C4EFC80A28DDEC7E4C095E86571ED51FC30F8182638D7 + 7DB73698FF02CA42BFF08A7E5DC60000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C18000003134944415478DA + A593DB4B14511CC7BFB33B6B53EB7AC7B6B2B00B165D5D29A61E2A0AB708A2EC + 6250496564240545446457BA3C484548502F46D18BD18D7DB17D28A232C89934 + B7D2B25C4B57C55D4D59DD9DBDCCED4C2767FF830E7C38E707E7F7E1777E9C1F + 631806FE6731FF04B157B71F18E9B24B0D059224A9408BC5A04909A8D1A8798E + 48348E5362D069CC656473114BAE6FD5E3B64A53D07C6390B54D9EC6D89C401A + 0B12974154154451281A459DC03018C85204E46B13A4BEEEE082C73DD3270461 + 4FB5609FBB91B72D2D83121E8595730086068BA1D312FFA1D2580719ED8765F6 + 0AF43CBC8591FB35E28A77F2CA09C1684395E0706DE6E15C032D1C00973D1544 + 9369220154058614A6F9F469ED6FC02E2B457F4B2B06EE9E16D7342BA660A87E + AF9059B2854F2B2E87D225406B7B0563921DD29884486818B1B084783481A2D5 + 2EE46FDA05FFF3A7E8ADBF20BA5B355330505726E4ACDCC9DB8A368021496884 + 452CD88FECB94548D2C669E3436069354CA005CCEC12045EBFC18FBB67C5ADED + 8629E8BDE216F2D6EEE1ED25DB6997FF409725781BBCF8ED7D81130DF5B04606 + 10FAD601C44690BBBE1CFEC6467CAEBB28EEF1A704FED3AB04A7BB9277941E46 + CFA33ACC2A60D1359C8EAEDA43585E598D29F98508F904583333306FDF497C7F + F21CCD372F8955FD294167F56261FAE6237CE6A66AF83D0FC1B5DEC6CC198540 + DF20BAF25DC89B5F0CA9F313143098B5FB183A9F7AF0B6F6B2787C382568AF98 + 23146C3BCA67ADDB0DC5C661D073075A930724BB10CE83A79069B7431DEE83D4 + ED8375C93A747B5FE2E5B56BE299F194C057365528DC57C36715AFA6177B615B + B816A3BF7F824B336053A3904301582C3A826DEF91577A007D4D1FF1ECCC25F1 + AA9C12B4B8ED42C1FEF3BCB3A206EA8F0FB04EC980D5914E1B1A851219834EFF + BC41085435891CD74634D75E84A7E6AA78DD48093A76140C66CD59304D5EE4A6 + 5759E88938884EA053681E74624CC4169685246B187BEFC5978F9F83E74688F9 + 953F94173FC861C65DD1D05032A169482A84A2838E04E249938462EE32C5910F + EE9785F3DD0B26CC61FA9FF517C977C5F0760CFB430000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 379 + Top = 8 + Bitmap = {} + end +end diff --git a/Source/GUIBase/uViewDocumentos.pas b/Source/GUIBase/uViewDocumentos.pas new file mode 100644 index 0000000..021f759 --- /dev/null +++ b/Source/GUIBase/uViewDocumentos.pas @@ -0,0 +1,336 @@ +unit uViewDocumentos; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, cxControls, + cxContainer, ActnList, TB2Item, TBX, TB2Dock, TB2Toolbar, StdCtrls, + FileCtrl, cxGraphics, cxCustomData, cxStyles, cxTL, cxInplaceContainer, + cxTLData, cxTextEdit, ComCtrls, ImgList, PngImageList; + +type + TfrViewDocumentos = class(TfrViewBase) + EditorActionList: TActionList; + TBXDock: TTBXDock; + tbxMain: TTBXToolbar; + TBXItem2: TTBXItem; + actAnadir: TAction; + actModificar: TAction; + actEliminar: TAction; + TBXItem1: TTBXItem; + TBXItem3: TTBXItem; + actEliminarTodo: TAction; + TBXItem4: TTBXItem; + actActualizarServidor: TAction; + TBXItem5: TTBXItem; + ListView1: TListView; + LargeImagesBrowser: TPngImageList; + SmallImagesBrowser: TPngImageList; + TBXSeparatorItem1: TTBXSeparatorItem; + procedure actAnadirExecute(Sender: TObject); + procedure actModificarExecute(Sender: TObject); + procedure actEliminarExecute(Sender: TObject); + procedure actEliminarTodoExecute(Sender: TObject); + procedure actActualizarServidorExecute(Sender: TObject); + procedure CustomViewCreate(Sender: TObject); + procedure CustomViewDestroy(Sender: TObject); + procedure actModificarUpdate(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + procedure actEliminarTodoUpdate(Sender: TObject); + procedure ListView1DblClick(Sender: TObject); + + private + FDirectorio: Variant; + function GetDirectorio: Variant; + function DarFicherosSeleccionados: TStringList; + function AsignarImagen(ANombreFichero: String): Integer; + + protected + FHayModificaciones: Boolean; + FListaFicheros: TStringList; + property Directorio: Variant read GetDirectorio; + property ListaFicheros: TStringList read FListaFicheros write FListaFicheros; + + function GetModified: Boolean; override; + procedure SetModified(const Value : Boolean); override; + + //Son los metodos que se sobreescribiran en la vista hija + procedure Sincronizar; virtual; abstract; + function RecuperarFicheroServidor(const NombreFichero: String; const DirectorioDestino: String): Boolean; virtual; abstract; + procedure RefrescarVisualizador; virtual; + end; + +var + frViewDocumentos: TfrViewDocumentos; + +implementation +{$R *.dfm} + +uses + uSistemaFunc, ShellAPI, uDialogUtils; + +procedure TfrViewDocumentos.actActualizarServidorExecute(Sender: TObject); +begin + inherited; + Sincronizar; +end; + +procedure TfrViewDocumentos.actAnadirExecute(Sender: TObject); +var + openDialog : TOpenDialog; + ANombreFichero : String; + ANombreSeleccionado : String; + BCopiar: Boolean; + i, j : Integer; +begin + openDialog := TOpenDialog.Create(self); + try + // Set up the starting directory to be the current one +// openDialog.InitialDir := GetCurrentDir; + // Only allow existing files to be selected +// openDialog.Options := [ofFileMustExist]; + + // Allow multiple files to be selected - of any type + openDialog.Options := [ofAllowMultiSelect]; + + // Allow only .dpr and .pas files to be selected +// openDialog.Filter := 'Delphi project files|*.dpr|Delphi pascal files|*.pas'; + // Select pascal files as the starting filter type +// openDialog.FilterIndex := 2; + + if openDialog.Execute then + begin + for i:=0 to openDialog.Files.Count - 1 do + begin + ANombreSeleccionado := openDialog.Files.Strings[i]; + if Length(ANombreSeleccionado) > 0 then + begin + BCopiar := True; + ANombreFichero := ExtractFileName(ANombreSeleccionado); + if FListaFicheros.Find(ANombreFichero, j) then + begin + ANombreFichero := 'Copia de ' + ANombreFichero; + BCopiar := (Application.MessageBox(PChar('Ya existe un archivo con ese nombre, Desea aadirlo con el nombre ' + ANombreFichero + '?'), 'Atencin', MB_YESNO) = IDYES); + end; + + if BCopiar then + begin + CopiarFichero(ANombreSeleccionado, (Directorio + ANombreFichero)); + //Lo aadimos a la lista de documentos local + FListaFicheros.Add(ANombreFichero); + end; + end; + end; + end; + + finally + openDialog.Free; + //Now, We compact the process memory: + SetProcessWorkingSetSize(GetCurrentProcess, $FFFFFFFF, $FFFFFFFF); + RefrescarVisualizador; + FHayModificaciones := True; + end; +end; + +procedure TfrViewDocumentos.actEliminarExecute(Sender: TObject); +var + i, j: Integer; + FicherosSeleccionados: TStringList; + ANombreFichero: String; + +begin + FicherosSeleccionados := DarFicherosSeleccionados; + try + for i := 0 to FicherosSeleccionados.Count - 1 do + begin + //Buscamos si existen fisicamente y si es as los eliminamos + if FileExists(FicherosSeleccionados.Strings[i]) then + if not DeleteFile(FicherosSeleccionados.Strings[i]) then + Application.MessageBox('No se pudo borrar el fichero', 'Error', MB_ICONEXCLAMATION); + + //Lo quitamos de la propiedad donde guardamos lista de documentos + ANombreFichero := ExtractFileName(FicherosSeleccionados.Strings[i]); + if FListaFicheros.Find(ANombreFichero, j) then + FListaFicheros.Delete(j); + end; + finally + FreeAndNil(FicherosSeleccionados); + RefrescarVisualizador; + FHayModificaciones := True; + end; +end; + +procedure TfrViewDocumentos.actEliminarTodoExecute(Sender: TObject); +begin + if DirectoryExists(Directorio) then + Deltree(Directorio, True); + FListaFicheros.Clear; + FDirectorio := Null; + RefrescarVisualizador; + FHayModificaciones := True; +end; + +procedure TfrViewDocumentos.actEliminarTodoUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (ListView1.Items.Count > 0) +end; + +procedure TfrViewDocumentos.actEliminarUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := Assigned(ListView1.ItemFocused); +end; + +procedure TfrViewDocumentos.actModificarExecute(Sender: TObject); +var + i: Integer; + FicherosSeleccionados: TStringList; +begin + FicherosSeleccionados := DarFicherosSeleccionados; + try + for i := 0 to FicherosSeleccionados.Count - 1 do + if FileExists(FicherosSeleccionados.Strings[i]) then + begin + if ShellExecute(Handle, nil, pchar(FicherosSeleccionados.Strings[i]), + nil, nil, SW_SHOWNORMAL) <= 32 then + Application.MessageBox('No se pudo editar el fichero', 'Error', MB_ICONEXCLAMATION); + end + else + begin + if not RecuperarFicheroServidor(ExtractFileName(FicherosSeleccionados.Strings[i]), ExtractFilePath(FicherosSeleccionados.Strings[i])) then + Application.MessageBox('No se pudo RecuperarFicheroServidor', 'Error', MB_ICONEXCLAMATION); + + if ShellExecute(Handle, nil, pchar(FicherosSeleccionados.Strings[i]), + nil, nil, SW_SHOWNORMAL) <= 32 then + Application.MessageBox('No se pudo editar el fichero', 'Error', MB_ICONEXCLAMATION); + end; + finally + FreeAndNil(FicherosSeleccionados); + FHayModificaciones := True; + end; +end; + +procedure TfrViewDocumentos.actModificarUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := Assigned(ListView1.ItemFocused); +end; + +function TfrViewDocumentos.AsignarImagen(ANombreFichero: String): Integer; +begin + if (LOWERCASE(ExtractFileExt(ANombreFichero)) = '.txt') + or (LOWERCASE(ExtractFileExt(ANombreFichero)) = '.ini') + or (LOWERCASE(ExtractFileExt(ANombreFichero)) = '.sql') then + Result := 1 + else if (LOWERCASE(ExtractFileExt(ANombreFichero)) = '.pdf') then + Result := 3 + else if (LOWERCASE(ExtractFileExt(ANombreFichero)) = '.doc') + or (LOWERCASE(ExtractFileExt(ANombreFichero)) = '.rtf') then + Result := 2 + else if (LOWERCASE(ExtractFileExt(ANombreFichero)) = '.ppt') + or (LOWERCASE(ExtractFileExt(ANombreFichero)) = '.pps') + or (LOWERCASE(ExtractFileExt(ANombreFichero)) = '.ppa') then + Result := 7 + else if (LOWERCASE(ExtractFileExt(ANombreFichero)) = '.mdb') + or (LOWERCASE(ExtractFileExt(ANombreFichero)) = '.adp') + or (LOWERCASE(ExtractFileExt(ANombreFichero)) = '.mde') + or (LOWERCASE(ExtractFileExt(ANombreFichero)) = '.ade') + or (LOWERCASE(ExtractFileExt(ANombreFichero)) = '.mda') then + Result := 5 + else if (LOWERCASE(ExtractFileExt(ANombreFichero)) = '.xls') + or (LOWERCASE(ExtractFileExt(ANombreFichero)) = '.xl') + or (LOWERCASE(ExtractFileExt(ANombreFichero)) = '.xlt') + or (LOWERCASE(ExtractFileExt(ANombreFichero)) = '.xla') + or (LOWERCASE(ExtractFileExt(ANombreFichero)) = '.xlc') then + Result := 4 + + else if (LOWERCASE(ExtractFileExt(ANombreFichero)) = '.png') + or (LOWERCASE(ExtractFileExt(ANombreFichero)) = '.tif') + or (LOWERCASE(ExtractFileExt(ANombreFichero)) = '.pict') + or (LOWERCASE(ExtractFileExt(ANombreFichero)) = '.pct') + or (LOWERCASE(ExtractFileExt(ANombreFichero)) = '.bmp') + or (LOWERCASE(ExtractFileExt(ANombreFichero)) = '.gif') + or (LOWERCASE(ExtractFileExt(ANombreFichero)) = '.jpg') + or (LOWERCASE(ExtractFileExt(ANombreFichero)) = '.jpeg') + or (LOWERCASE(ExtractFileExt(ANombreFichero)) = '.jpe') + or (LOWERCASE(ExtractFileExt(ANombreFichero)) = '.png') + or (LOWERCASE(ExtractFileExt(ANombreFichero)) = '.tiff') then + Result := 6 + + else Result := 0; +end; + +procedure TfrViewDocumentos.CustomViewCreate(Sender: TObject); +begin + inherited; + FDirectorio := Null; + FListaFicheros := Nil; + FHayModificaciones:= False; +end; + +procedure TfrViewDocumentos.CustomViewDestroy(Sender: TObject); +begin + FDirectorio := Null; + FreeAndNil(FListaFicheros); + inherited; +end; + +function TfrViewDocumentos.DarFicherosSeleccionados: TStringList; +var + i: Integer; +begin + Result := TStringList.Create; + for i := 0 to ListView1.Items.Count - 1 do + begin + if ListView1.Items[i].Selected then + Result.Add(Directorio + ListView1.Items[i].Caption); + end; +end; + +function TfrViewDocumentos.GetDirectorio: Variant; +begin + if VarIsNull(FDirectorio) then + begin + FDirectorio := DarDirectorioTemporal; + if not CreateDir(FDirectorio) then + raise Exception.Create('ERROR: No se ha podido crear el fichero temporal (GetDirectorio)'); + end; + Result := FDirectorio; +end; + +function TfrViewDocumentos.GetModified: Boolean; +begin + Result := FHayModificaciones; +end; + +procedure TfrViewDocumentos.ListView1DblClick(Sender: TObject); +begin + inherited; + if Assigned(ListView1.ItemFocused) then + actModificar.Execute; +end; + +procedure TfrViewDocumentos.RefrescarVisualizador; +var + i: Integer; + AItem: TListItem; + +begin + ListView1.Clear; + for i := 0 to FListaFicheros.Count - 1 do + begin + AItem := ListView1.Items.Add; + AItem.Caption := FListaFicheros.Strings[i]; + AItem.ImageIndex := AsignarImagen(FListaFicheros.Strings[i]); + end; +end; + +procedure TfrViewDocumentos.SetModified(const Value: Boolean); +begin + inherited; + FHayModificaciones := Value; +end; + +end. diff --git a/Source/GUIBase/uViewFiltroBase.dcu b/Source/GUIBase/uViewFiltroBase.dcu new file mode 100644 index 0000000..c209701 Binary files /dev/null and b/Source/GUIBase/uViewFiltroBase.dcu differ diff --git a/Source/GUIBase/uViewFiltroBase.dfm b/Source/GUIBase/uViewFiltroBase.dfm new file mode 100644 index 0000000..afdf930 --- /dev/null +++ b/Source/GUIBase/uViewFiltroBase.dfm @@ -0,0 +1,232 @@ +inherited frViewFiltroBase: TfrViewFiltroBase + Width = 549 + Height = 105 + Visible = False + ExplicitWidth = 549 + ExplicitHeight = 105 + object TBXDockablePanel1: TTBXDockablePanel + Left = 0 + Top = 0 + Align = alClient + Caption = 'TBXDockablePanel1' + CloseButton = False + CloseButtonWhenDocked = False + DockedHeight = 98 + DockMode = dmCannotFloatOrChangeDocks + FloatingWidth = 128 + FloatingHeight = 98 + ShowCaption = False + ShowCaptionWhenDocked = False + SupportedDocks = [dkStandardDock, dkMultiDock] + TabOrder = 0 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 549 + Height = 73 + Align = alTop + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + object txtFiltroTodo: TcxTextEdit + Left = 87 + Top = 10 + Properties.OnChange = OnCamposFiltroChange + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 0 + Width = 569 + end + object edtFechaIniFiltro: TcxDateEdit + Left = 87 + Top = 37 + Properties.OnChange = OnCamposFiltroChange + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 1 + Width = 100 + end + object edtFechaFinFiltro: TcxDateEdit + Left = 198 + Top = 37 + Properties.OnChange = OnCamposFiltroChange + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 2 + Width = 100 + end + object eLista: TcxComboBox + Left = 331 + Top = 37 + Properties.DropDownListStyle = lsEditFixedList + Properties.OnChange = OnCamposFiltroChange + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 3 + Width = 215 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item1: TdxLayoutItem + Caption = 'Que contenga:' + Control = txtFiltroTodo + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group1: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item2: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Entre la fecha:' + Control = edtFechaIniFiltro + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item3: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'y' + Control = edtFechaFinFiltro + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item4: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Lista:' + Visible = False + Control = eLista + ControlOptions.ShowBorder = False + end + end + end + end + object TBXAlignmentPanel1: TTBXAlignmentPanel + Left = 0 + Top = 73 + Width = 549 + Height = 30 + Margins.Left = 10 + Align = alTop + TabOrder = 1 + object tbxBotones: TTBXToolbar + Left = 10 + Top = 0 + Width = 539 + Height = 30 + Align = alTop + AutoResize = False + BorderStyle = bsNone + Caption = 'tbxBotones' + ChevronHint = 'M'#225's botones|' + DockMode = dmCannotFloatOrChangeDocks + DockPos = -23 + DockRow = 1 + DragHandleStyle = dhNone + ParentShowHint = False + ShowHint = True + TabOrder = 0 + object TBXItem2: TTBXItem + Action = actQuitarFiltro + DisplayMode = nbdmImageAndText + Images = PngImageList + end + end + end + end + object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList + Left = 136 + Top = 16 + end + object ActionList1: TActionList + Images = PngImageList + Left = 280 + Top = 24 + object actQuitarFiltro: TAction + Caption = 'Quitar filtros y ver todo' + ImageIndex = 0 + OnExecute = actQuitarFiltroExecute + end + end + object PngImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 312 + Top = 24 + Bitmap = {} + end +end diff --git a/Source/GUIBase/uViewFiltroBase.pas b/Source/GUIBase/uViewFiltroBase.pas new file mode 100644 index 0000000..3c3902c --- /dev/null +++ b/Source/GUIBase/uViewFiltroBase.pas @@ -0,0 +1,152 @@ +unit uViewFiltroBase; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, Buttons, cxRadioGroup, TBXDkPanels, TB2ExtItems, TBXExtItems, + TBX, TB2Item, TB2Dock, TB2Toolbar, ActnList, ImgList, PngImageList, + cxGraphics, dxLayoutLookAndFeels, dxLayoutControl, cxDropDownEdit, cxMaskEdit, + cxCalendar, cxContainer, cxEdit, cxTextEdit, cxControls, uViewBase; + +type + IViewFiltroBase = interface(IViewBase) + ['{0D0EA630-BF93-4BA1-93C2-FD5A5B0CBEED}'] + function GetFiltrosChange: TNotifyEvent; + procedure SetFiltrosChange(const Value: TNotifyEvent); + property OnFiltrosChange: TNotifyEvent read GetFiltrosChange write SetFiltrosChange; + + function GetVerFiltros: Boolean; + procedure SetVerFiltros(const Value: Boolean); + property VerFiltros: Boolean read GetVerFiltros write SetVerFiltros; + + function GetTexto: String; + procedure SetTexto(const Value: String); + property Texto: String read GetTexto write SetTexto; + end; + + TfrViewFiltroBase = class(TfrViewBase, IViewFiltroBase) + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutControl1Item1: TdxLayoutItem; + txtFiltroTodo: TcxTextEdit; + dxLayoutControl1Item2: TdxLayoutItem; + edtFechaIniFiltro: TcxDateEdit; + dxLayoutControl1Item3: TdxLayoutItem; + edtFechaFinFiltro: TcxDateEdit; + dxLayoutControl1Group1: TdxLayoutGroup; + TBXDockablePanel1: TTBXDockablePanel; + ActionList1: TActionList; + actQuitarFiltro: TAction; + PngImageList: TPngImageList; + tbxBotones: TTBXToolbar; + TBXItem2: TTBXItem; + TBXAlignmentPanel1: TTBXAlignmentPanel; + dxLayoutControl1Item4: TdxLayoutItem; + eLista: TcxComboBox; + procedure OnCamposFiltroChange(Sender: TObject); + procedure actQuitarFiltroExecute(Sender: TObject); + + private + FOnFiltrosChange: TNotifyEvent; + + function GetFiltrosChange: TNotifyEvent; + procedure SetFiltrosChange(const Value: TNotifyEvent); + function GetVerFiltros: Boolean; + procedure SetVerFiltros(const Value: Boolean); + function GetTexto: String; + procedure SetTexto(const Value: String); + + protected + procedure LimpiarCampos; virtual; + function ValidarCampos: Boolean; virtual; + + public + function GetModified: Boolean; + property OnFiltrosChange: TNotifyEvent read GetFiltrosChange write SetFiltrosChange; + property VerFiltros: Boolean read GetVerFiltros write SetVerFiltros; + property Texto: String read GetTexto write SetTexto; + end; + +implementation +{$R *.dfm} + +uses uDialogUtils; + +{ TfrViewFiltroBase } + +function TfrViewFiltroBase.GetFiltrosChange: TNotifyEvent; +begin + Result := FOnFiltrosChange; +end; + +function TfrViewFiltroBase.GetModified: Boolean; +begin + Result := False; +end; + +procedure TfrViewFiltroBase.SetFiltrosChange(const Value: TNotifyEvent); +begin + FOnFiltrosChange := Value; +end; + +function TfrViewFiltroBase.GetVerFiltros: Boolean; +begin + Result := Self.Visible; +end; + +procedure TfrViewFiltroBase.SetVerFiltros(const Value: Boolean); +begin + Self.Visible := Value; + if not Self.Visible then + actQuitarFiltro.Execute; +end; + +procedure TfrViewFiltroBase.LimpiarCampos; +begin + txtFiltroTodo.Clear; + edtFechaIniFiltro.Clear; + edtFechaFinFiltro.Clear; +end; + +procedure TfrViewFiltroBase.OnCamposFiltroChange(Sender: TObject); +begin + if ValidarCampos then + if Assigned(FOnFiltrosChange) then + FOnFiltrosChange(Sender); +end; + +function TfrViewFiltroBase.ValidarCampos: Boolean; +begin + Result := True; + + if not VarIsNull(edtFechaIniFiltro.EditValue) and not VarIsNull(edtFechaFinFiltro.EditValue) then + begin + if (edtFechaIniFiltro.EditValue > edtFechaFinFiltro.EditValue) then + begin + ShowWarningMessage('La fecha de inicio debe ser anterior a la fecha final'); + edtFechaIniFiltro.SetFocus; + Result := False; + end + end; +end; + +procedure TfrViewFiltroBase.actQuitarFiltroExecute(Sender: TObject); +begin + LimpiarCampos; + if Assigned(FOnFiltrosChange) then + FOnFiltrosChange(Sender); +end; + +function TfrViewFiltroBase.GetTexto: String; +begin + Result := txtFiltroTodo.Text; +end; + +procedure TfrViewFiltroBase.SetTexto(const Value: String); +begin + txtFiltroTodo.Text := Value; +end; + +end. diff --git a/Source/GUIBase/uViewFormaPago.dcu b/Source/GUIBase/uViewFormaPago.dcu new file mode 100644 index 0000000..0aefa2d Binary files /dev/null and b/Source/GUIBase/uViewFormaPago.dcu differ diff --git a/Source/GUIBase/uViewFormaPago.dfm b/Source/GUIBase/uViewFormaPago.dfm new file mode 100644 index 0000000..1660a70 --- /dev/null +++ b/Source/GUIBase/uViewFormaPago.dfm @@ -0,0 +1,47 @@ +inherited frViewFormaPago: TfrViewFormaPago + Width = 300 + ExplicitWidth = 300 + DesignSize = ( + 300 + 291) + object Label5: TLabel + Left = 8 + Top = 8 + Width = 85 + Height = 13 + Caption = 'Forma de pago' + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentFont = False + end + object Bevel1: TBevel + Left = 96 + Top = 8 + Width = 192 + Height = 9 + Anchors = [akLeft, akTop, akRight] + Shape = bsBottomLine + end + object memFormaPago: TcxDBMemo + Left = 16 + Top = 32 + Anchors = [akLeft, akTop, akRight, akBottom] + DataBinding.DataField = 'FORMA_PAGO' + DataBinding.DataSource = DADataSource + Properties.ScrollBars = ssVertical + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Height = 175 + Width = 269 + end + object DADataSource: TDADataSource + Left = 16 + Top = 48 + end +end diff --git a/Source/GUIBase/uViewFormaPago.pas b/Source/GUIBase/uViewFormaPago.pas new file mode 100644 index 0000000..575dd4f --- /dev/null +++ b/Source/GUIBase/uViewFormaPago.pas @@ -0,0 +1,26 @@ +unit uViewFormaPago; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, DB, uDADataTable, cxMemo, cxDBEdit, cxControls, + cxContainer, cxEdit, cxTextEdit, ExtCtrls, StdCtrls, uDAInterfaces; + +type + TfrViewFormaPago = class(TfrViewBase) + DADataSource: TDADataSource; + memFormaPago: TcxDBMemo; + Label5: TLabel; + Bevel1: TBevel; + private + { Private declarations } + public + { Public declarations } + end; + +implementation + +{$R *.dfm} + +end. diff --git a/Source/GUIBase/uViewGrid.dcu b/Source/GUIBase/uViewGrid.dcu new file mode 100644 index 0000000..f864398 Binary files /dev/null and b/Source/GUIBase/uViewGrid.dcu differ diff --git a/Source/GUIBase/uViewGrid.dfm b/Source/GUIBase/uViewGrid.dfm new file mode 100644 index 0000000..33edc7e --- /dev/null +++ b/Source/GUIBase/uViewGrid.dfm @@ -0,0 +1,447 @@ +inherited frViewGrid: TfrViewGrid + Width = 607 + Height = 441 + ExplicitWidth = 607 + ExplicitHeight = 441 + object cxGrid: TcxGrid [0] + Left = 0 + Top = 102 + Width = 607 + Height = 313 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + LookAndFeel.Kind = lfOffice11 + LookAndFeel.NativeStyle = False + object cxGridView: TcxGridDBTableView + OnDblClick = cxGridViewDblClick + NavigatorButtons.ConfirmDelete = False + FilterBox.Visible = fvNever + DataController.DataSource = dsDataSource + DataController.Filter.Options = [fcoCaseInsensitive] + DataController.KeyFieldNames = 'RECID' + DataController.Options = [dcoAnsiSort, dcoCaseInsensitive, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.CellHints = True + OptionsCustomize.ColumnFiltering = False + OptionsCustomize.ColumnsQuickCustomization = True + OptionsData.Deleting = False + OptionsData.DeletingConfirmation = False + OptionsData.Editing = False + OptionsData.Inserting = False + OptionsSelection.CellSelect = False + OptionsSelection.UnselectFocusedRecordOnExit = False + OptionsView.CellEndEllipsis = True + OptionsView.NoDataToDisplayInfoText = '' + OptionsView.CellAutoHeight = True + OptionsView.ColumnAutoWidth = True + OptionsView.DataRowHeight = 22 + OptionsView.Footer = True + OptionsView.GridLineColor = cl3DLight + OptionsView.GridLines = glHorizontal + OptionsView.GroupByBox = False + OptionsView.GroupRowStyle = grsOffice11 + OptionsView.HeaderEndEllipsis = True + Styles.Inactive = cxStyleSelection + Styles.Selection = cxStyleSelection + Styles.OnGetContentStyle = cxGridViewStylesGetContentStyle + object cxGridViewICONO: TcxGridDBColumn + Caption = 'Icono' + OnCustomDrawCell = cxGridViewICONOCustomDrawCell + BestFitMaxWidth = 22 + MinWidth = 22 + Options.HorzSizing = False + Options.Sorting = False + Width = 22 + OnCustomDrawHeader = cxGridViewICONOCustomDrawHeader + end + end + object cxGridLevel: TcxGridLevel + GridView = cxGridView + end + end + inline frViewFiltroBase1: TfrViewFiltroBase [1] + Left = 0 + Top = 0 + Width = 607 + Height = 102 + Align = alTop + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 1 + Visible = False + ReadOnly = False + ExplicitWidth = 607 + ExplicitHeight = 102 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 607 + ExplicitHeight = 102 + inherited dxLayoutControl1: TdxLayoutControl + Width = 607 + ExplicitWidth = 607 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 510 + Width = 510 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 272 + Width = 272 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 270 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 270 + ExplicitWidth = 221 + Width = 221 + end + inherited eLista: TcxComboBox + Left = 457 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 457 + ExplicitWidth = 215 + Width = 215 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 607 + ExplicitWidth = 607 + inherited tbxBotones: TTBXToolbar + Width = 597 + ExplicitWidth = 597 + end + end + end + end + object pnlAgrupaciones: TTBXDockablePanel + Left = 0 + Top = 415 + MinClientHeight = 8 + Align = alBottom + Caption = 'pnlAgrupaciones' + DockedHeight = 26 + FloatingWidth = 128 + FloatingHeight = 26 + SupportedDocks = [dkStandardDock, dkMultiDock] + TabOrder = 2 + Visible = False + ExplicitWidth = 128 + object TBXAlignmentPanel1: TTBXAlignmentPanel + Left = 0 + Top = 0 + Width = 607 + Height = 26 + Margins.Left = 10 + Align = alTop + TabOrder = 0 + object TBXToolbar1: TTBXToolbar + Left = 10 + Top = 0 + Width = 597 + Height = 26 + Align = alTop + AutoResize = False + Caption = 'TBXToolbar1' + TabOrder = 0 + object TBXItem1: TTBXItem + Action = actQuitarAgrupaciones + end + end + end + end + object dxComponentPrinter: TdxComponentPrinter + CurrentLink = dxComponentPrinterLink + PreviewOptions.EnableOptions = [peoCanChangeMargins, peoPageBackground, peoPageSetup, peoPreferences, peoPrint] + PreviewOptions.VisibleOptions = [pvoPageBackground, pvoPageSetup, pvoPreferences, pvoPrint, pvoPrintStyles, pvoReportFileOperations, pvoPageMargins] + PreviewOptions.WindowState = wsMaximized + Version = 0 + Left = 368 + Top = 128 + object dxComponentPrinterLink: TdxGridReportLink + Active = True + Component = cxGrid + PrinterPage.DMPaper = 9 + PrinterPage.Footer = 6350 + PrinterPage.GrayShading = True + PrinterPage.Header = 6350 + PrinterPage.Margins.Bottom = 12700 + PrinterPage.Margins.Left = 12700 + PrinterPage.Margins.Right = 12700 + PrinterPage.Margins.Top = 12700 + PrinterPage.PageFooter.LeftTitle.Strings = ( + 'fssdfsdfdsfsd') + PrinterPage.PageSize.X = 210000 + PrinterPage.PageSize.Y = 297000 + PrinterPage.ScaleMode = smFit + PrinterPage._dxMeasurementUnits_ = 0 + PrinterPage._dxLastMU_ = 2 + ReportDocument.CreationDate = 40003.669735601850000000 + StyleManager = dmBase.dxPrintStyleManager1 + OptionsCards.Shadow.Depth = 0 + OptionsExpanding.ExpandGroupRows = True + OptionsExpanding.ExpandMasterRows = True + OptionsFormatting.SuppressBackgroundBitmaps = True + OptionsFormatting.UseNativeStyles = True + OptionsFormatting.ConsumeSelectionStyle = True + OptionsLevels.Unwrap = True + OptionsRefinements.TransparentGraphics = True + OptionsSize.AutoWidth = True + OptionsView.Caption = False + OptionsView.ExpandButtons = False + OptionsView.FilterBar = False + StyleRepository = cxStyleRepositoryInforme + Styles.Content = cxStyleContentInforme + Styles.Footer = cxStyleFooterInforme + Styles.Group = cxStyleGroupInforme + Styles.Header = cxStyleHeaderInforme + Styles.Selection = cxStyleSelectionInforme + BuiltInReportLink = True + end + end + object dxPSEngineController1: TdxPSEngineController + LookAndFeel = pslfOffice11 + UseNativeLookAndFeel = False + Left = 336 + Top = 128 + end + object cxStyleRepository1: TcxStyleRepository + Left = 296 + Top = 128 + PixelsPerInch = 96 + object cxStyleSelection: TcxStyle + AssignedValues = [svColor, svTextColor] + Color = clHighlight + TextColor = clHighlightText + end + object cxStyle_NORMAL_PAR: TcxStyle + AssignedValues = [svColor] + Color = 552923887 + end + object cxStyle_NORMAL_IMPAR: TcxStyle + AssignedValues = [svColor] + Color = clWindow + end + object cxStyle_ORDENADO_PAR: TcxStyle + AssignedValues = [svColor] + Color = 15131873 + end + object cxStyle_ORDENADO_IMPAR: TcxStyle + AssignedValues = [svColor] + Color = 16052975 + end + object cxStyle_FILTRADO_PAR: TcxStyle + AssignedValues = [svColor] + Color = 546166271 + end + object cxStyle_FILTRADO_IMPAR: TcxStyle + AssignedValues = [svColor] + Color = 549513214 + end + object cxStyle_FILTRADO_ORDENADO_PAR: TcxStyle + AssignedValues = [svColor] + Color = 545771513 + end + object cxStyle_FILTRADO_ORDENADO_IMPAR: TcxStyle + AssignedValues = [svColor] + Color = 549249528 + end + end + object ActionList1: TActionList + Left = 144 + Top = 400 + object actQuitarAgrupaciones: TAction + Caption = 'Quitar agrupaciones' + OnExecute = actQuitarAgrupacionesExecute + OnUpdate = actQuitarAgrupacionesUpdate + end + end + object cxStyleRepositoryInforme: TcxStyleRepository + Left = 368 + Top = 160 + PixelsPerInch = 96 + object cxStyleContentInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + object cxStyleFooterInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleGroupInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleHeaderInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleSelectionInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + end + object GridPNGImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000434944415478DA63FCFFFF3F + 03258011D900464646ACA601D530126D00BA6298A1B80C21CA0090183639925C + 80CB3B040DC0E69A510306BD010C04005E03C801036F00008D248BE16F9028BA + 0000000049454E44AE426082} + Name = 'Icono_header' + Background = clWindow + end> + Left = 296 + Top = 320 + Bitmap = {} + end + object cxViewGridPopupMenu: TcxGridPopupMenu + Grid = cxGrid + PopupMenus = < + item + GridView = cxGridView + HitTypes = [gvhtCell] + Index = 0 + end> + Left = 248 + Top = 128 + end +end diff --git a/Source/GUIBase/uViewGrid.pas b/Source/GUIBase/uViewGrid.pas new file mode 100644 index 0000000..025c337 --- /dev/null +++ b/Source/GUIBase/uViewGrid.pas @@ -0,0 +1,295 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uViewGrid; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel, + cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGrid, Menus, ActnList, Grids, + DBGrids, JvComponent, JvFormAutoSize, dxPSGlbl, dxPSUtl, dxPSEngn, + dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPrnDlg, + cxIntlPrintSys3, dxPSPrvwAdv, uViewGridBase, cxGridCustomPopupMenu, + cxGridPopupMenu, uViewFiltroBase, ComCtrls, cxPC, ImgList, PngImageList, + TB2Item, TBX, TB2Dock, TB2Toolbar, TBXDkPanels, dxPgsDlg, uDAInterfaces, + dxPScxGrid6Lnk, uCustomView; + +type + IViewGrid = interface(IViewGridBase) + ['{7EA40980-AD73-4590-A53A-932316C7B121}'] + end; + + TfrViewGrid = class(TfrViewGridBase, IViewGrid) + cxGrid: TcxGrid; + cxGridLevel: TcxGridLevel; + cxGridView: TcxGridDBTableView; + dxComponentPrinter: TdxComponentPrinter; + dxPSEngineController1: TdxPSEngineController; + cxStyleRepository1: TcxStyleRepository; + cxStyleSelection: TcxStyle; + dxComponentPrinterLink: TdxGridReportLink; + frViewFiltroBase1: TfrViewFiltroBase; + ActionList1: TActionList; + actQuitarAgrupaciones: TAction; + pnlAgrupaciones: TTBXDockablePanel; + TBXAlignmentPanel1: TTBXAlignmentPanel; + TBXToolbar1: TTBXToolbar; + TBXItem1: TTBXItem; + cxStyleRepositoryInforme: TcxStyleRepository; + cxStyleContentInforme: TcxStyle; + cxStyleFooterInforme: TcxStyle; + cxStyleGroupInforme: TcxStyle; + cxStyleHeaderInforme: TcxStyle; + cxStyleSelectionInforme: TcxStyle; + cxStyle_NORMAL_PAR: TcxStyle; + cxStyle_NORMAL_IMPAR: TcxStyle; + cxStyle_ORDENADO_PAR: TcxStyle; + cxStyle_ORDENADO_IMPAR: TcxStyle; + cxStyle_FILTRADO_PAR: TcxStyle; + cxStyle_FILTRADO_IMPAR: TcxStyle; + cxStyle_FILTRADO_ORDENADO_PAR: TcxStyle; + cxStyle_FILTRADO_ORDENADO_IMPAR: TcxStyle; + GridPNGImageList: TPngImageList; + cxViewGridPopupMenu: TcxGridPopupMenu; + procedure cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridViewDblClick(Sender: TObject); + procedure actQuitarAgrupacionesExecute(Sender: TObject); + procedure actQuitarAgrupacionesUpdate(Sender: TObject); + procedure cxGridViewICONOCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure cxGridViewICONOCustomDrawHeader(Sender: TcxGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridColumnHeaderViewInfo; + var ADone: Boolean); + protected + function GetGrid : TcxGrid; override; + function GetFocusedView : TcxGridDBTableView; override; + procedure SetPopupMenu(const Value: TPopupMenu); override; + procedure OnChangeValoresFiltro(Sender: TObject); + procedure SetViewFiltros(const Value: IViewFiltroBase); override; + function AddFilterGrid(const Operacion: tcxFilterBoolOperatorKind): TcxFilterCriteriaItemList; + function GetAgrupacionesVisibles: Boolean; override; + public + function EsSeleccionCeldaDatos: Boolean; override; + procedure Preview; override; + procedure Print; override; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +uses + uDMBase, uDBSelectionListUtils, dxOffice11, cxGridCommon; + +{$R *.dfm} + +{ +********************************* TfrViewGrid ********************************** +} + +{ TfrViewGrid } +function TfrViewGrid.GetAgrupacionesVisibles: Boolean; +begin + Result := pnlAgrupaciones.Visible; +end; + +function TfrViewGrid.GetFocusedView: TcxGridDBTableView; +begin + Result := cxGridView; +end; + +function TfrViewGrid.GetGrid: TcxGrid; +begin + Result := cxGrid; +end; + +procedure TfrViewGrid.OnChangeValoresFiltro(Sender: TObject); +begin + cxGridView.DataController.Filter.BeginUpdate; + try + RefrescarFiltro; + finally + cxGridView.DataController.Filter.EndUpdate; + end; +end; + +procedure TfrViewGrid.Preview; +begin + inherited; + dxComponentPrinter.Preview; +end; + +procedure TfrViewGrid.Print; +begin + inherited; + dxComponentPrinter.Print(True, nil, nil); +end; + +procedure TfrViewGrid.SetPopupMenu(const Value: TPopupMenu); +begin + inherited; + cxViewGridPopupMenu.PopupMenus[0].PopupMenu := FPopupMenu; +end; + +procedure TfrViewGrid.SetViewFiltros(const Value: IViewFiltroBase); +begin + inherited; + if Assigned(ViewFiltros) then + ViewFiltros.OnFiltrosChange := OnChangeValoresFiltro +end; + +procedure TfrViewGrid.actQuitarAgrupacionesExecute(Sender: TObject); +var + Columna: TcxGridDBColumn; + i,j: Integer; +begin + inherited; + for j := 0 to cxGrid.ViewCount - 1 do + begin + for i := 0 to (cxGrid.Views[j] as tcxGridDBTableView).ColumnCount - 1 do + begin + Columna := (cxGrid.Views[j] as TcxGridDBTableView).Columns[i]; + if not (Columna.GroupIndex < 0) then + begin + Columna.GroupIndex := -1; + Columna.Visible := True; + end; + end; + end; +end; + +procedure TfrViewGrid.actQuitarAgrupacionesUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (cxGridView.GroupedColumnCount > 0); +end; + +function TfrViewGrid.AddFilterGrid(const Operacion: tcxFilterBoolOperatorKind): TcxFilterCriteriaItemList; +var + AItemList: TcxFilterCriteriaItemList; +begin + AItemList := cxGridView.DataController.Filter.Root; + Result := AItemList.AddItemList(Operacion); +end; + +constructor TfrViewGrid.Create(AOwner: TComponent); +begin + inherited; + ViewFiltros := frViewFiltroBase1; +end; + +procedure TfrViewGrid.cxGridViewDblClick(Sender: TObject); +begin + inherited; + if Assigned(FOnDblClick) then + FOnDblClick(Sender); +end; + +procedure TfrViewGrid.cxGridViewICONOCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +var + R : TRect; +begin + inherited; + R := AViewInfo.ContentBounds; + ACanvas.FillRect(R); + ACanvas.DrawImage(GridPNGImageList, R.Left + 2, R.Top + 2, 1); + ADone := True; +end; + +procedure TfrViewGrid.cxGridViewICONOCustomDrawHeader(Sender: TcxGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridColumnHeaderViewInfo; + var ADone: Boolean); +var + R : TRect; +begin + inherited; + with AViewInfo do + begin + LookAndFeelPainter.DrawHeader(ACanvas, Bounds, TextAreaBounds, Neighbors, + Borders, ButtonState, AlignmentHorz, AlignmentVert, MultiLine, + False, '', Params.Font, Params.TextColor, Params.Color); + + R := AViewInfo.ContentBounds; + ACanvas.FillRect(R); + ACanvas.DrawImage(GridPNGImageList, R.Left + 2, R.Top + 2, 0); + end; + + ADone := True; +end; + +procedure TfrViewGrid.cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +var + AFiltrado : Boolean; + AOrdenado : Boolean; + AFilaPar : Boolean; +begin + inherited; + if Assigned(AItem) then + begin + AFilaPar := Odd(ARecord.Index); + AFiltrado := Filtered; + AOrdenado := AItem.SortOrder <> soNone; + + + if AFilaPar then + begin + if AFiltrado then + begin + if AOrdenado then + AStyle := cxStyle_FILTRADO_ORDENADO_PAR + else + AStyle := cxStyle_FILTRADO_PAR + end + else // No filtrado + if AOrdenado then + AStyle := cxStyle_ORDENADO_PAR + else + AStyle := cxStyle_NORMAL_PAR + end + else begin + if AFiltrado then + begin + if AOrdenado then + AStyle := cxStyle_FILTRADO_ORDENADO_IMPAR + else + AStyle := cxStyle_FILTRADO_IMPAR + end + else // No filtrado + if AOrdenado then + AStyle := cxStyle_ORDENADO_IMPAR + else + AStyle := cxStyle_NORMAL_IMPAR + end; + end; +end; + +destructor TfrViewGrid.Destroy; +begin + ViewFiltros := Nil; + inherited; +end; + +function TfrViewGrid.esSeleccionCeldaDatos: Boolean; +begin + Result := not (cxGridView.Controller.FocusedRecord is TcxGridGroupRow); +end; + +end. + diff --git a/Source/GUIBase/uViewGrid2Niveles.dcu b/Source/GUIBase/uViewGrid2Niveles.dcu new file mode 100644 index 0000000..690865c Binary files /dev/null and b/Source/GUIBase/uViewGrid2Niveles.dcu differ diff --git a/Source/GUIBase/uViewGrid2Niveles.dfm b/Source/GUIBase/uViewGrid2Niveles.dfm new file mode 100644 index 0000000..be16c2f --- /dev/null +++ b/Source/GUIBase/uViewGrid2Niveles.dfm @@ -0,0 +1,137 @@ +inherited frViewGrid2Niveles: TfrViewGrid2Niveles + Width = 519 + Height = 367 + ExplicitWidth = 519 + ExplicitHeight = 367 + object cxGrid: TcxGrid [0] + Left = 0 + Top = 0 + Width = 519 + Height = 367 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + LookAndFeel.Kind = lfOffice11 + LookAndFeel.NativeStyle = True + object cxGridView1N: TcxGridDBTableView + OnDblClick = cxGridView1NDblClick + NavigatorButtons.ConfirmDelete = False + FilterBox.Visible = fvNever + DataController.DataSource = dsDataSource + DataController.Filter.Options = [fcoCaseInsensitive] + DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.CellHints = True + OptionsCustomize.ColumnFiltering = False + OptionsCustomize.ColumnGrouping = False + OptionsCustomize.ColumnsQuickCustomization = True + OptionsData.Deleting = False + OptionsData.DeletingConfirmation = False + OptionsData.Editing = False + OptionsData.Inserting = False + OptionsSelection.CellSelect = False + OptionsSelection.UnselectFocusedRecordOnExit = False + OptionsView.CellEndEllipsis = True + OptionsView.CellAutoHeight = True + OptionsView.ColumnAutoWidth = True + OptionsView.Footer = True + OptionsView.FooterAutoHeight = True + OptionsView.GridLineColor = cl3DLight + OptionsView.GroupByBox = False + OptionsView.HeaderEndEllipsis = True + Styles.Inactive = cxStyleSelection + Styles.Selection = cxStyleSelection + Styles.OnGetContentStyle = cxGridViewStylesGetContentStyle + end + object cxGridView: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + end + object cxGridLevel1N: TcxGridLevel + GridView = cxGridView1N + object cxGridLevel: TcxGridLevel + GridView = cxGridView + end + end + end + object dxComponentPrinter: TdxComponentPrinter + CurrentLink = dxComponentPrinterLink + PreviewOptions.EnableOptions = [peoCanChangeMargins, peoPageBackground, peoPageSetup, peoPreferences, peoPrint] + PreviewOptions.VisibleOptions = [pvoPageBackground, pvoPageSetup, pvoPreferences, pvoPrint, pvoPrintStyles, pvoReportFileOperations, pvoPageMargins] + PreviewOptions.WindowState = wsMaximized + Version = 0 + Left = 368 + Top = 128 + object dxComponentPrinterLink: TdxGridReportLink + Component = cxGrid + PrinterPage.DMPaper = 9 + PrinterPage.Footer = 6350 + PrinterPage.Header = 6350 + PrinterPage.Margins.Bottom = 12700 + PrinterPage.Margins.Left = 12700 + PrinterPage.Margins.Right = 12700 + PrinterPage.Margins.Top = 12700 + PrinterPage.PageSize.X = 210000 + PrinterPage.PageSize.Y = 297000 + PrinterPage._dxMeasurementUnits_ = 0 + PrinterPage._dxLastMU_ = 2 + BuiltInReportLink = True + end + end + object dxPSEngineController1: TdxPSEngineController + LookAndFeel = pslfOffice11 + UseNativeLookAndFeel = False + Left = 336 + Top = 128 + end + object cxStyleRepository1: TcxStyleRepository + Left = 296 + Top = 128 + PixelsPerInch = 96 + object cxStyleEven: TcxStyle + end + object cxStyleOdd: TcxStyle + AssignedValues = [svColor] + Color = clInactiveCaptionText + end + object cxStyleSelection: TcxStyle + AssignedValues = [svColor, svTextColor] + Color = clHighlight + TextColor = clHighlightText + end + object cxStyleSinOrden: TcxStyle + end + object cxStyleConOrden: TcxStyle + AssignedValues = [svColor] + Color = 16119285 + end + object cxStyleFiltered: TcxStyle + AssignedValues = [svColor] + Color = clInfoBk + end + object cxStyleFilteredConOrden: TcxStyle + AssignedValues = [svColor] + Color = 14546175 + end + end + object cxViewGridPopupMenu: TcxGridPopupMenu + Grid = cxGrid + PopupMenus = < + item + GridView = cxGridView1N + HitTypes = [gvhtCell] + Index = 0 + end> + Left = 264 + Top = 128 + end +end diff --git a/Source/GUIBase/uViewGrid2Niveles.pas b/Source/GUIBase/uViewGrid2Niveles.pas new file mode 100644 index 0000000..9ad5ecc --- /dev/null +++ b/Source/GUIBase/uViewGrid2Niveles.pas @@ -0,0 +1,211 @@ +{*******************************************************} +{ } +{ Administracin de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uViewGrid2Niveles; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel, + cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGrid, Menus, ActnList, Grids, + DBGrids, JvComponent, JvFormAutoSize, dxPSGlbl, dxPSUtl, dxPSEngn, + dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPrnDlg, + cxIntlPrintSys3, dxPSPrvwAdv, uViewGridBase, cxGridCustomPopupMenu, + cxGridPopupMenu, uDAInterfaces, dxPScxGrid6Lnk; + +type + IViewGrid2Niveles = interface(IViewGridBase) + ['{7EA40980-AD73-4590-A53A-932316C7B121}'] + end; + + TfrViewGrid2Niveles = class(TfrViewGridBase, IViewGrid2Niveles) + cxGrid: TcxGrid; + cxGridLevel1N: TcxGridLevel; + cxGridView1N: TcxGridDBTableView; + dxComponentPrinter: TdxComponentPrinter; + dxPSEngineController1: TdxPSEngineController; + cxStyleRepository1: TcxStyleRepository; + cxStyleEven: TcxStyle; + cxStyleOdd: TcxStyle; + cxStyleSelection: TcxStyle; + cxStyleSinOrden: TcxStyle; + cxStyleConOrden: TcxStyle; + cxViewGridPopupMenu: TcxGridPopupMenu; + dxComponentPrinterLink: TdxGridReportLink; + cxStyleFiltered: TcxStyle; + cxStyleFilteredConOrden: TcxStyle; + cxGridLevel: TcxGridLevel; + cxGridView: TcxGridDBTableView; + procedure cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridView1NDblClick(Sender: TObject); + protected + function GetGrid : TcxGrid; override; + function GetFocusedView : TcxGridDBTableView; override; + procedure SetPopupMenu(const Value: TPopupMenu); override; + procedure FilterChanged(Sender : TObject); override; + function GetFiltered: Boolean; override; + procedure FiltrarGrid(TextoFiltro : String); override; + public + procedure AjustarAncho; override; + procedure ContraerTodo; override; + procedure ExpandirTodo; override; + function IsEmpty : Boolean; override; + procedure RestoreFromRegistry (const Path : String); override; + procedure StoreToRegistry (const Path : String); override; + end; + +implementation + +uses + uDMBase, uDBSelectionListUtils; + +{$R *.dfm} + +{ +********************************* TfrViewGrid ********************************** +} + +{ TfrViewGrid } +function TfrViewGrid2Niveles.GetFiltered: Boolean; +begin + Result := inherited GetFiltered; + Result := Result OR (cxGridView1N.DataController.Filter.Root.Count > 0); +end; + +function TfrViewGrid2Niveles.GetFocusedView: TcxGridDBTableView; +begin + Result := cxGridView; +end; + +function TfrViewGrid2Niveles.GetGrid: TcxGrid; +begin + Result := cxGrid; +end; + +function TfrViewGrid2Niveles.IsEmpty: Boolean; +begin + Result := (cxGridView1N.ViewData.RowCount < 1); +end; + +procedure TfrViewGrid2Niveles.RestoreFromRegistry(const Path: String); +begin + inherited; + cxGridView1N.RestoreFromRegistry(Path + '\\GridSettings\\' + Self.Name, False, False, []); +end; + +procedure TfrViewGrid2Niveles.SetPopupMenu(const Value: TPopupMenu); +begin + inherited; + cxViewGridPopupMenu.PopupMenus[0].PopupMenu := FPopupMenu; +end; + +procedure TfrViewGrid2Niveles.StoreToRegistry(const Path: String); +begin + inherited; + cxGridView1N.StoreToRegistry(Path + '\\GridSettings\\' + Self.Name, False, []); +end; + +procedure TfrViewGrid2Niveles.AjustarAncho; +begin + inherited; + cxGridView1N.ApplyBestFit; +end; + +procedure TfrViewGrid2Niveles.ContraerTodo; +begin + inherited; + cxGridView1N.ViewData.Collapse(True); +end; + +procedure TfrViewGrid2Niveles.cxGridView1NDblClick(Sender: TObject); +begin + inherited; + if Assigned(FOnDblClick) then + FOnDblClick(Sender); +end; + +procedure TfrViewGrid2Niveles.cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(AItem) then + begin + if AItem.SortOrder = soNone then + AStyle := cxStyleSinOrden + else begin + AStyle := cxStyleConOrden; + if Filtered then + AStyle := cxStyleFilteredConOrden; + end; + end; +end; + +procedure TfrViewGrid2Niveles.ExpandirTodo; +begin + inherited; + cxGridView1N.ViewData.Expand(True); +end; + +procedure TfrViewGrid2Niveles.FilterChanged(Sender: TObject); +begin + inherited; + if Filtered then + begin + _FocusedView.Styles.Content := cxStyleFiltered; + cxGridView1N.Styles.Content := cxStyleFiltered + end + else + begin + _FocusedView.Styles.Content := nil; + cxGridView1N.Styles.Content := nil + end; +end; + +procedure TfrViewGrid2Niveles.FiltrarGrid(TextoFiltro: String); +var + Columna: TcxGridDBColumn; + i: Integer; + AItemList: TcxFilterCriteriaItemList; +begin + inherited; + + with cxGridView1N.DataController.Filter do + begin + BeginUpdate; + try + Options := [fcoCaseInsensitive, fcoSoftCompare]; + Root.Clear; + if Length(TextoFiltro) > 0 then + begin + AItemList := Root.AddItemList(fboAnd); + AItemList.BoolOperatorKind := fboOr; + for i:=0 to (cxGridView1N as TcxGridDBTableView).ColumnCount - 1 do + begin + Columna := (cxGridView1N as TcxGridDBTableView).Columns[i]; + if (Length(Columna.Caption) > 0) and (Columna.Caption <> 'RecID') then + AItemList.AddItem(Columna, foLike, '%'+TextoFiltro+'%', IntToStr(i)); + end; + Active := True; + end + else + Active := False; + finally + EndUpdate; + end; + end; +end; + +end. + diff --git a/Source/GUIBase/uViewGridBase.dcu b/Source/GUIBase/uViewGridBase.dcu new file mode 100644 index 0000000..99a2e90 Binary files /dev/null and b/Source/GUIBase/uViewGridBase.dcu differ diff --git a/Source/GUIBase/uViewGridBase.dfm b/Source/GUIBase/uViewGridBase.dfm new file mode 100644 index 0000000..5695879 --- /dev/null +++ b/Source/GUIBase/uViewGridBase.dfm @@ -0,0 +1,10 @@ +inherited frViewGridBase: TfrViewGridBase + Width = 441 + Height = 268 + ExplicitWidth = 441 + ExplicitHeight = 268 + object dsDataSource: TDADataSource + Left = 8 + Top = 16 + end +end diff --git a/Source/GUIBase/uViewGridBase.pas b/Source/GUIBase/uViewGridBase.pas new file mode 100644 index 0000000..1f32fab --- /dev/null +++ b/Source/GUIBase/uViewGridBase.pas @@ -0,0 +1,596 @@ +{*******************************************************} +{ } +{ Administracin de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uViewGridBase; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel, + cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGrid, Menus, ActnList, Grids, + DBGrids, JvComponent, JvFormAutoSize, uGridStatusUtils, uViewFiltroBase, + uDAInterfaces, cxGridExportLink; + +type + IViewGridBase = interface(IViewBase) + ['{D5B9B017-2A2E-44AC-8223-E54664C6BC66}'] + procedure ExpandirTodo; + procedure ContraerTodo; + procedure AjustarAncho; + + procedure Preview; + procedure Print; + procedure PrintSetup; + + function IsEmpty : Boolean; + + procedure SaveGridStatus; + procedure RestoreGridStatus; + + procedure GotoFirst; + procedure GotoLast; + + procedure ExportToExcel(const AFileName: string); overload; + procedure ExportToExcel; overload; + + function GetFocusedView : TcxGridDBTableView; + property _FocusedView : TcxGridDBTableView read GetFocusedView; + + function GetGrid : TcxGrid; + property _Grid : TcxGrid read GetGrid; + + procedure RestoreFromIniFile; + procedure StoreToIniFile; + + procedure StoreToRegistry (const Path : String); + procedure RestoreFromRegistry (const Path : String); + + procedure SetDblClick(const Value: TNotifyEvent); + function GetDblClick: TNotifyEvent; + property OnDblClick: TNotifyEvent read GetDblClick write SetDblClick; + + procedure SetPopupMenu(const Value: TPopupMenu); + function GetPopupMenu: TPopupMenu; + property PopupMenu: TPopupMenu read GetPopupMenu write SetPopupMenu; + + function GetMultiSelect: Boolean; + procedure SetMultiSelect(const Value: Boolean); + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + + procedure SetFilter(const Value: string); + function GetFilter: string; + property Filter: string read GetFilter write SetFilter; + + function GetFiltered: Boolean; + property Filtered : Boolean read GetFiltered; + + function GetViewFiltros: IViewFiltroBase; + procedure SetViewFiltros(const Value: IViewFiltroBase); + property ViewFiltros: IViewFiltroBase read GetViewFiltros write SetViewFiltros; + + function esSeleccionCeldaDatos: Boolean; + + function getNumSeleccionados: Integer; + property NumSeleccionados: Integer read getNumSeleccionados; + + function Locate(const AItemIndex: Integer; const AValue: String; + const APartialCompare: Boolean = False) : Boolean; + + function GetAgrupacionesVisibles: Boolean; + property AgrupacionesVisibles : Boolean read GetAgrupacionesVisibles; + end; + + + TfrViewGridBase = class(TfrViewBase, IViewGridBase) + dsDataSource: TDADataSource; + private + FViewFiltros: IViewFiltroBase; + FFilter: string; + FOnFilterChanged : TNotifyEvent; + FGridStatus : TcxGridStatus; +// procedure BestFitAllColumns; + protected + FOnDblClick: TNotifyEvent; + FPopupMenu: TPopupMenu; + function GetMultiSelect: Boolean; virtual; + procedure SetMultiSelect(const Value: Boolean); virtual; + procedure SetPopupMenu(const Value: TPopupMenu); virtual; + function GetPopupMenu: TPopupMenu; virtual; + procedure SetDblClick(const Value: TNotifyEvent); virtual; + function GetDblClick: TNotifyEvent; virtual; + function GetGrid : TcxGrid; virtual; abstract; + function GetFocusedView : TcxGridDBTableView; virtual; abstract; + function EsSeleccionCeldaDatos: Boolean; virtual; abstract; + function getNumSeleccionados: Integer; + + procedure SetFilter(const Value: string); virtual; + procedure RefrescarFiltro; + function GetFilter: string; virtual; + function GetFiltered: Boolean; virtual; + procedure FiltrarGrid(TextoFiltro : String); virtual; + function GetViewFiltros: IViewFiltroBase; + procedure SetViewFiltros(const Value: IViewFiltroBase); virtual; + procedure FilterChanged(Sender : TObject); virtual; + + procedure cxGridViewInitStoredObject(Sender: TcxCustomGridView; AObject: TObject); + procedure cxGridViewGetStoredProperties(Sender: TcxCustomGridView; + AProperties: TStrings); + procedure cxGridViewGetStoredPropertyValue(Sender: TcxCustomGridView; + const AName: string; var AValue: Variant); + procedure cxGridViewSetStoredPropertyValue(Sender: TcxCustomGridView; + const AName: string; const AValue: Variant); + + procedure cxGridViewColumnGetStoredProperties( + Sender: TcxCustomGridTableItem; AProperties: TStrings); + procedure cxGridViewColumnGetStoredPropertyValue( + Sender: TcxCustomGridTableItem; const AName: string; var AValue: Variant); + procedure cxGridViewColumnSetStoredPropertyValue( + Sender: TcxCustomGridTableItem; const AName: string; + const AValue: Variant); + function GetAgrupacionesVisibles: Boolean; virtual; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + + procedure ShowEmbedded(const AParent : TWinControl); override; + + procedure ExpandirTodo; virtual; + procedure ContraerTodo; virtual; + procedure AjustarAncho; virtual; + + procedure Preview; virtual; + procedure Print; virtual; + procedure PrintSetup; virtual; + + function IsEmpty : Boolean; virtual; + + procedure SaveGridStatus; + procedure RestoreGridStatus; + + procedure RestoreFromIniFile; + procedure StoreToIniFile; + + procedure GotoFirst; + procedure GotoLast; + + procedure ExportToExcel(const AFileName: string); overload; + procedure ExportToExcel; overload; + + procedure StoreToRegistry (const Path : String); virtual; + procedure RestoreFromRegistry (const Path : String); virtual; + + function Locate(const AItemIndex: Integer; const AValue: String; + const APartialCompare: Boolean = False) : Boolean; + + property Filter: string read GetFilter write SetFilter; + property Filtered : Boolean read GetFiltered; + + procedure AnadirOtrosFiltros; virtual; + property ViewFiltros: IViewFiltroBase read GetViewFiltros write SetViewFiltros; + + property _FocusedView : TcxGridDBTableView read GetFocusedView; + property _Grid : TcxGrid read GetGrid; + property OnDblClick: TNotifyEvent read GetDblClick write SetDblClick; + property PopupMenu: TPopupMenu read GetPopupMenu write SetPopupMenu; + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + property NumSeleccionados: Integer read getNumSeleccionados; + property AgrupacionesVisibles : Boolean read GetAgrupacionesVisibles; + end; + +procedure Register; + +implementation + +uses + uDMBase, cxGridBandedTableView, uDBSelectionListUtils, + uSistemaFunc, SHFolder, uAppInfoUtils; + +{$R *.dfm} + +procedure Register; +begin + //RegisterCustomContainer(TfrViewGridBase); +end; + +{ TfrViewGrid } + +{procedure TfrViewGridBase.BestFitAllColumns; +var + i : Integer ; + +begin + ShowHourglassCursor; + _FocusedView.BeginUpdate; + + try + for i := 0 to _FocusedView.VisibleColumnCount-1 do + begin + _FocusedView.VisibleColumns[i].ApplyBestFit; + if (_FocusedView.VisibleColumns[i].BestFitMaxWidth > 0) and + (_FocusedView.VisibleColumns[i].Width > _FocusedView.VisibleColumns[i].BestFitMaxWidth) then + _FocusedView.VisibleColumns[i].Width := _FocusedView.VisibleColumns[i].BestFitMaxWidth; + end; + finally + _FocusedView.EndUpdate; + HideHourglassCursor; + end; +end;} + +procedure TfrViewGridBase.AjustarAncho; +begin + if Assigned(_FocusedView) then + begin + //BestFitAllColumns; + _FocusedView.ApplyBestFit(nil, True, False); + end; +end; + +procedure TfrViewGridBase.AnadirOtrosFiltros; +begin +// +end; + +procedure TfrViewGridBase.ContraerTodo; +begin + if Assigned(_FocusedView) then + _FocusedView.ViewData.Collapse(True); +end; + +constructor TfrViewGridBase.Create(AOwner: TComponent); +var + I: Integer; +begin + inherited; + FFilter := ''; + FOnFilterChanged := FilterChanged; + FPopupMenu := nil; + FOnDblClick := nil; + FGridStatus := NIL; + + if Assigned(_FocusedView) then + begin + _FocusedView.OnInitStoredObject := cxGridViewInitStoredObject; + _FocusedView.OnGetStoredProperties := cxGridViewGetStoredProperties; + _FocusedView.OnGetStoredPropertyValue := cxGridViewGetStoredPropertyValue; + _FocusedView.OnSetStoredPropertyValue := cxGridViewSetStoredPropertyValue; + for I := 0 to _FocusedView.ColumnCount - 1 do + begin + _FocusedView.Columns[i].OnGetStoredProperties := cxGridViewColumnGetStoredProperties; + _FocusedView.Columns[i].OnGetStoredPropertyValue := cxGridViewColumnGetStoredPropertyValue; + _FocusedView.Columns[i].OnSetStoredPropertyValue := cxGridViewColumnSetStoredPropertyValue; + end; + end; +end; + +procedure TfrViewGridBase.cxGridViewColumnGetStoredProperties( + Sender: TcxCustomGridTableItem; AProperties: TStrings); +begin +end; + +procedure TfrViewGridBase.cxGridViewColumnGetStoredPropertyValue( + Sender: TcxCustomGridTableItem; const AName: string; var AValue: Variant); +begin +end; + +procedure TfrViewGridBase.cxGridViewColumnSetStoredPropertyValue( + Sender: TcxCustomGridTableItem; const AName: string; const AValue: Variant); +begin +end; + +procedure TfrViewGridBase.cxGridViewGetStoredProperties( + Sender: TcxCustomGridView; AProperties: TStrings); +begin + AProperties.Delete(AProperties.IndexOf('Footer')); + AProperties.Delete(AProperties.IndexOf('GroupByBox')); + AProperties.Delete(AProperties.IndexOf('GroupFooters')); + AProperties.Delete(AProperties.IndexOf('NewItemRow')); +end; + +procedure TfrViewGridBase.cxGridViewGetStoredPropertyValue( + Sender: TcxCustomGridView; const AName: string; var AValue: Variant); +begin +end; + +procedure TfrViewGridBase.cxGridViewSetStoredPropertyValue( + Sender: TcxCustomGridView; const AName: string; const AValue: Variant); +begin +end; + +procedure TfrViewGridBase.ExpandirTodo; +begin + if Assigned(_FocusedView) then + _FocusedView.ViewData.Expand(True); +end; + +procedure TfrViewGridBase.ExportToExcel(const AFileName: string); +begin + if Assigned(_Grid) then + ExportGridToExcel(AFileName, _Grid); +end; + +procedure TfrViewGridBase.ExportToExcel; +var + AFileName : String; +begin + if PreguntarFicheroExcelExportar(AFileName) then + ExportToExcel(AFileName); +end; + +function TfrViewGridBase.GetAgrupacionesVisibles: Boolean; +begin + Result := False; +end; + +function TfrViewGridBase.GetDblClick: TNotifyEvent; +begin + Result := FOnDblClick; +end; + +function TfrViewGridBase.GetFilter: string; +begin + Result := FFilter; +end; + +function TfrViewGridBase.GetFiltered: Boolean; +begin +//Los niveles de los grid no se consideran filtros + if (_Grid.Levels.Count > 1) then + Result := (_FocusedView.DataController.Filter.Root.Count > 1) + else + Result := (_FocusedView.DataController.Filter.Root.Count > 0); +end; + +function TfrViewGridBase.GetMultiSelect: Boolean; +begin + Result := _FocusedView.OptionsSelection.MultiSelect; +end; + +function TfrViewGridBase.getNumSeleccionados: Integer; +begin + Result := _FocusedView.DataController.GetSelectedCount; +end; + +function TfrViewGridBase.GetPopupMenu: TPopupMenu; +begin + Result := FPopupMenu; +end; + +function TfrViewGridBase.GetViewFiltros: IViewFiltroBase; +begin + Result := FViewFiltros; +end; + +procedure TfrViewGridBase.GotoFirst; +begin + if Assigned(_FocusedView) then + _FocusedView.DataController.GotoFirst; +end; + +procedure TfrViewGridBase.GotoLast; +begin + if Assigned(_FocusedView) then + _FocusedView.DataController.GotoLast; +end; + +procedure TfrViewGridBase.cxGridViewInitStoredObject(Sender: TcxCustomGridView; + AObject: TObject); +begin + if AObject is TcxGridDBColumn then + with TcxGridDBColumn(AObject) do + begin + OnGetStoredProperties := cxGridViewColumnGetStoredProperties; + OnGetStoredPropertyValue := cxGridViewColumnGetStoredPropertyValue; + OnSetStoredPropertyValue := cxGridViewColumnSetStoredPropertyValue; + end; +end; + +function TfrViewGridBase.IsEmpty: Boolean; +begin + Result := (_FocusedView.ViewData.RowCount < 1); +end; + +function TfrViewGridBase.Locate(const AItemIndex: Integer; const AValue: String; + const APartialCompare: Boolean): Boolean; +begin + if Assigned(_FocusedView) then + Result := (_FocusedView.DataController.FindRecordIndexByText(0, AItemIndex, AValue, APartialCompare, True, True) <> -1) + else + Result := False; +end; + +procedure TfrViewGridBase.Preview; +begin +// +end; + +procedure TfrViewGridBase.Print; +begin +// +end; + +procedure TfrViewGridBase.PrintSetup; +begin +// +end; + +procedure TfrViewGridBase.RefrescarFiltro; +begin + //De esta forma obligaremos a que se creen nuevamente todos los filtros, cuando llamemos a este metodo + if Assigned(ViewFiltros) then + Filter := ViewFiltros.Texto; +end; + +procedure TfrViewGridBase.RestoreFromIniFile; +var + AIniFile : String; +begin + if Assigned(_FocusedView) then + begin + + AIniFile := GetSpecialFolderPath(CSIDL_COMMON_APPDATA); //[All Users]\Application Data + AIniFile := AIniFile + PathDelim + 'Rodax Software' + PathDelim + GetAppName + PathDelim; + + if not DirectoryExists(AIniFile) then + ForceDirectories(AIniFile); + + _FocusedView.RestoreFromIniFile(AIniFile + 'grid.xml', True, False, []); + end; +end; + +procedure TfrViewGridBase.RestoreFromRegistry(const Path : String); +begin + if Assigned(_FocusedView) then + _FocusedView.RestoreFromRegistry(Path + '\\GridSettings\\' + Self.Name, False, False, []); +end; + +procedure TfrViewGridBase.StoreToIniFile; +var + AIniFile : String; +begin + if Assigned(_FocusedView) then + begin + + AIniFile := GetSpecialFolderPath(CSIDL_COMMON_APPDATA); //[All Users]\Application Data + AIniFile := AIniFile + PathDelim + 'Rodax Software' + PathDelim + GetAppName + PathDelim; + + if not DirectoryExists(AIniFile) then + ForceDirectories(AIniFile); + + _FocusedView.StoreToIniFile(AIniFile + 'grid.xml', False, []); + end; +end; + +procedure TfrViewGridBase.StoreToRegistry(const Path : String); +begin + if Assigned(_FocusedView) then + _FocusedView.StoreToRegistry(Path + '\\GridSettings\\' + Self.Name, True, []); +end; + +procedure TfrViewGridBase.RestoreGridStatus; +begin + if Assigned(FGridStatus) and (not IsEmpty) then + FGridStatus.Restore(_FocusedView); +end; + +procedure TfrViewGridBase.SaveGridStatus; +begin + FreeAndNil(FGridStatus); + if not IsEmpty then + FGridStatus := TcxGridStatus.Create(_FocusedView); +end; + +procedure TfrViewGridBase.SetDblClick(const Value: TNotifyEvent); +begin + FOnDblClick := Value; +end; + +procedure TfrViewGridBase.SetFilter(const Value: string); +begin + FFilter := Value; + + //As tendremos el mismo valor en el filtro simple que en el filtro en detalle + if Assigned(ViewFiltros) then + ViewFiltros.Texto := FFilter; + + FiltrarGrid(FFilter); + + //Obliga a generar todos los filtros de las vista hija + AnadirOtrosFiltros; + + if Assigned(FOnFilterChanged) then + FOnFilterChanged(Self); +end; + +procedure TfrViewGridBase.SetMultiSelect(const Value: Boolean); +begin + _FocusedView.OptionsSelection.MultiSelect := Value; +// _FocusedView..OnSelectionChanged := SelectionChanged; +end; + +procedure TfrViewGridBase.SetPopupMenu(const Value: TPopupMenu); +begin + FPopupMenu := Value; +end; + +procedure TfrViewGridBase.SetViewFiltros(const Value: IViewFiltroBase); +begin + if Assigned(FViewFiltros) then + ViewFiltros.OnFiltrosChange := Nil; + + FViewFiltros := Value; +end; + +procedure TfrViewGridBase.ShowEmbedded(const AParent: TWinControl); +begin + inherited; + + // No activar la tabla ya por si acaso tuviera parmetros +{ if not DADataSource.DataTable.Active then + DADataSource.DataTable.Active := True;} + + GotoFirst; + _FocusedView.Focused := True; + if _FocusedView.ViewData.RecordCount > 0 then + begin + _FocusedView.ViewData.Records[0].Selected := True; + _FocusedView.ViewData.Records[0].Focused := True; + end; +end; + + +procedure TfrViewGridBase.FiltrarGrid(TextoFiltro : String); +var + Columna: TcxGridDBColumn; + i: Integer; + AItemList: TcxFilterCriteriaItemList; +begin + with _FocusedView.DataController.Filter do + begin + BeginUpdate; + try + Options := [fcoCaseInsensitive, fcoSoftCompare]; + Root.Clear; + if Length(TextoFiltro) > 0 then + begin + AItemList := Root.AddItemList(fboAnd); + AItemList.BoolOperatorKind := fboOr; + for i:=0 to (_FocusedView as TcxGridDBTableView).ColumnCount - 1 do + begin + Columna := (_FocusedView as TcxGridDBTableView).Columns[i]; + if (Length(Columna.Caption) > 0) and (Columna.Caption <> 'RecID') then + AItemList.AddItem(Columna, foLike, '%'+TextoFiltro+'%', IntToStr(i)); + end; + Active := True; + end + else + Active := False; + finally + EndUpdate; + end; + end; +end; + + +procedure TfrViewGridBase.FilterChanged(Sender: TObject); +begin +// +end; + +destructor TfrViewGridBase.Destroy; +begin + FOnFilterChanged := Nil; + if Assigned(FGridStatus) then + FreeAndNil(FGridStatus); + inherited; +end; + +end. + diff --git a/Source/GUIBase/uViewIncidencias.dcu b/Source/GUIBase/uViewIncidencias.dcu new file mode 100644 index 0000000..d51f894 Binary files /dev/null and b/Source/GUIBase/uViewIncidencias.dcu differ diff --git a/Source/GUIBase/uViewIncidencias.dfm b/Source/GUIBase/uViewIncidencias.dfm new file mode 100644 index 0000000..2b60061 --- /dev/null +++ b/Source/GUIBase/uViewIncidencias.dfm @@ -0,0 +1,70 @@ +inherited frViewIncidencias: TfrViewIncidencias + Width = 451 + Height = 370 + Align = alBottom + ExplicitWidth = 451 + ExplicitHeight = 370 + object pnlSup: TPanel + Left = 0 + Top = 0 + Width = 451 + Height = 28 + Align = alTop + BevelOuter = bvNone + TabOrder = 0 + object eIncidenciaActiva: TcxDBCheckBox + Left = 2 + Top = 4 + Caption = 'Hay incidencias sin resolver' + DataBinding.DataField = 'INCIDENCIAS_ACTIVAS' + DataBinding.DataSource = DADataSource + Properties.ValueChecked = 1 + Properties.ValueUnchecked = 0 + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Transparent = True + Width = 359 + end + end + object GroupBox1: TGroupBox + Left = 0 + Top = 28 + Width = 451 + Height = 342 + Align = alClient + Caption = 'Incidencias' + TabOrder = 1 + DesignSize = ( + 451 + 342) + object eIncidencias: TcxDBMemo + Left = 10 + Top = 22 + Anchors = [akLeft, akTop, akRight, akBottom] + DataBinding.DataField = 'INCIDENCIAS' + DataBinding.DataSource = DADataSource + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Height = 305 + Width = 420 + end + end + object DADataSource: TDADataSource + Left = 560 + Top = 8 + end +end diff --git a/Source/GUIBase/uViewIncidencias.pas b/Source/GUIBase/uViewIncidencias.pas new file mode 100644 index 0000000..056ba5e --- /dev/null +++ b/Source/GUIBase/uViewIncidencias.pas @@ -0,0 +1,30 @@ +unit uViewIncidencias; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, ExtCtrls, StdCtrls, DB, uDADataTable, cxGraphics, + cxTextEdit, cxMaskEdit, cxDropDownEdit, cxDBEdit, cxControls, + cxContainer, cxEdit, cxLabel, cxDBLabel, cxCurrencyEdit, cxSpinEdit, + cxCheckBox, cxMemo, uDAInterfaces; + +type + TfrViewIncidencias = class(TfrViewBase) + DADataSource: TDADataSource; + pnlSup: TPanel; + eIncidenciaActiva: TcxDBCheckBox; + eIncidencias: TcxDBMemo; + GroupBox1: TGroupBox; + private + { Private declarations } + public + { Public declarations } + end; + + +implementation + +{$R *.dfm} + +end. diff --git a/Source/GUIBase/uViewObservaciones.dcu b/Source/GUIBase/uViewObservaciones.dcu new file mode 100644 index 0000000..60dd306 Binary files /dev/null and b/Source/GUIBase/uViewObservaciones.dcu differ diff --git a/Source/GUIBase/uViewObservaciones.dfm b/Source/GUIBase/uViewObservaciones.dfm new file mode 100644 index 0000000..9a26555 --- /dev/null +++ b/Source/GUIBase/uViewObservaciones.dfm @@ -0,0 +1,47 @@ +inherited frViewObservaciones: TfrViewObservaciones + Width = 300 + ExplicitWidth = 300 + DesignSize = ( + 300 + 291) + object Label5: TLabel + Left = 8 + Top = 8 + Width = 85 + Height = 13 + Caption = 'Observaciones' + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentFont = False + end + object Bevel1: TBevel + Left = 96 + Top = 8 + Width = 192 + Height = 9 + Anchors = [akLeft, akTop, akRight] + Shape = bsBottomLine + end + object memObservaciones: TcxDBMemo + Left = 16 + Top = 32 + Anchors = [akLeft, akTop, akRight, akBottom] + DataBinding.DataField = 'OBSERVACIONES' + DataBinding.DataSource = DADataSource + Properties.ScrollBars = ssVertical + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Height = 179 + Width = 269 + end + object DADataSource: TDADataSource + Left = 16 + Top = 48 + end +end diff --git a/Source/GUIBase/uViewObservaciones.pas b/Source/GUIBase/uViewObservaciones.pas new file mode 100644 index 0000000..c1c0fdb --- /dev/null +++ b/Source/GUIBase/uViewObservaciones.pas @@ -0,0 +1,26 @@ +unit uViewObservaciones; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, DB, uDADataTable, cxMemo, cxDBEdit, cxControls, + cxContainer, cxEdit, cxTextEdit, ExtCtrls, StdCtrls, uDAInterfaces; + +type + TfrViewObservaciones = class(TfrViewBase) + Label5: TLabel; + Bevel1: TBevel; + memObservaciones: TcxDBMemo; + DADataSource: TDADataSource; + private + { Private declarations } + public + { Public declarations } + end; + +implementation + +{$R *.dfm} + +end. diff --git a/Source/GUIBase/uViewPreview.dcu b/Source/GUIBase/uViewPreview.dcu new file mode 100644 index 0000000..ed25231 Binary files /dev/null and b/Source/GUIBase/uViewPreview.dcu differ diff --git a/Source/GUIBase/uViewPreview.dfm b/Source/GUIBase/uViewPreview.dfm new file mode 100644 index 0000000..41a7185 --- /dev/null +++ b/Source/GUIBase/uViewPreview.dfm @@ -0,0 +1,12 @@ +inherited frViewPreview: TfrViewPreview + object frxPreview: TfrxPreview + Left = 0 + Top = 0 + Width = 445 + Height = 291 + Align = alClient + OutlineVisible = False + OutlineWidth = 121 + ThumbnailVisible = False + end +end diff --git a/Source/GUIBase/uViewPreview.pas b/Source/GUIBase/uViewPreview.pas new file mode 100644 index 0000000..de4f478 --- /dev/null +++ b/Source/GUIBase/uViewPreview.pas @@ -0,0 +1,50 @@ +unit uViewPreview; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, frxClass, frxPreview, JvComponent, JvFormAutoSize; + +type + IViewPreview = interface(IViewBase) + ['{F9A96948-4005-4E9B-8045-7B4874A05D19}'] + function GetPreview: TfrxPreview; + property Preview : TfrxPreview read GetPreview; + end; + + TfrViewPreview = class(TfrViewBase, IViewPreview) + frxPreview: TfrxPreview; + private + function GetPreview: TfrxPreview; + public + procedure Refresh; override; + property Preview : TfrxPreview read GetPreview; + end; + +implementation + +{$R *.dfm} + +{ TfrViewPreview } + +function TfrViewPreview.GetPreview: TfrxPreview; +begin + Result := frxPreview; +end; + +procedure TfrViewPreview.Refresh; +begin + inherited; + frxPreview.RefreshReport; +end; + +initialization + RegisterClass(TfrViewPreview); + +finalization + UnRegisterClass(TfrViewPreview); + +end. + + diff --git a/Source/GUIBase/uViewRichEditor.dcu b/Source/GUIBase/uViewRichEditor.dcu new file mode 100644 index 0000000..205c4df Binary files /dev/null and b/Source/GUIBase/uViewRichEditor.dcu differ diff --git a/Source/GUIBase/uViewRichEditor.dfm b/Source/GUIBase/uViewRichEditor.dfm new file mode 100644 index 0000000..f9b8d7c --- /dev/null +++ b/Source/GUIBase/uViewRichEditor.dfm @@ -0,0 +1,1405 @@ +inherited frViewRichEditor: TfrViewRichEditor + Width = 635 + Height = 401 + OnCreate = CustomViewCreate + OnShow = CustomViewShow + ExplicitWidth = 635 + ExplicitHeight = 401 + object TBXDock1: TTBXDock + Left = 0 + Top = 0 + Width = 635 + Height = 26 + BackgroundOnToolbars = False + UseParentBackground = True + object TBXToolbar1: TTBXToolbar + Left = 0 + Top = 0 + Caption = 'TBXToolbar1' + DragHandleStyle = dhNone + Images = SmallImages + TabOrder = 0 + object TBControlItem1: TTBControlItem + Control = fcbFontName + end + object TBControlItem2: TTBControlItem + Control = meFontSize + end + object TBControlItem3: TTBControlItem + Control = cxSpinButton + end + object TBXSeparatorItem3: TTBXSeparatorItem + end + object TBXColorItem1: TTBXColorItem + Caption = 'Color' + end + object TBXSeparatorItem1: TTBXSeparatorItem + end + object bBold: TTBXItem + AutoCheck = True + Caption = 'Negrita' + DisplayMode = nbdmTextOnlyInMenus + ImageIndex = 0 + OnClick = bBoldClick + end + object bItalic: TTBXItem + AutoCheck = True + Caption = 'Cursiva' + DisplayMode = nbdmTextOnlyInMenus + ImageIndex = 1 + OnClick = bItalicClick + end + object bUnderline: TTBXItem + AutoCheck = True + Caption = 'Subrayado' + DisplayMode = nbdmTextOnlyInMenus + ImageIndex = 2 + OnClick = bUnderlineClick + end + object TBXSeparatorItem2: TTBXSeparatorItem + end + object TBXItem5: TTBXItem + Action = actEditCut + end + object TBXItem6: TTBXItem + Action = actEditCopy + end + object TBXItem7: TTBXItem + Action = actEditPaste + end + object TBXSeparatorItem4: TTBXSeparatorItem + end + object bAlignLeft: TTBXItem + AutoCheck = True + Caption = 'Alinear a la izquierda' + GroupIndex = 50 + ImageIndex = 8 + OnClick = bAlignLeftClick + end + object bAlignCenter: TTBXItem + Tag = 2 + AutoCheck = True + Caption = 'Centrar' + GroupIndex = 50 + ImageIndex = 9 + OnClick = bAlignCenterClick + end + object bAlignRight: TTBXItem + Tag = 1 + AutoCheck = True + Caption = 'Alinear a la derecha' + GroupIndex = 50 + ImageIndex = 10 + OnClick = bAlignRightClick + end + object TBXSeparatorItem5: TTBXSeparatorItem + end + object bBullets: TTBXItem + AutoCheck = True + Caption = 'Vi'#241'etas' + ImageIndex = 12 + OnClick = bBulletsClick + end + object fcbFontName: TcxFontNameComboBox + Left = 0 + Top = 0 + ParentFont = False + Properties.DropDownSizeable = True + Properties.FontPreview.ShowButtons = False + Properties.OnChange = cxFontNameComboBox1PropertiesChange + Properties.OnInitPopup = fcbFontNamePropertiesInitPopup + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 215 + end + object meFontSize: TcxMaskEdit + Left = 215 + Top = 0 + Hint = 'cxMaskEdit' + ParentFont = False + Properties.MaskKind = emkRegExpr + Properties.EditMask = '\d\d' + Properties.MaxLength = 0 + Properties.OnChange = meFontSizePropertiesChange + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Text = '0' + Width = 24 + end + object cxSpinButton: TcxSpinButton + Left = 239 + Top = 0 + Hint = 'cxSpinButton' + Associate = meFontSize + AutoSize = False + ParentFont = False + Properties.MaxValue = 100.000000000000000000 + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 2 + Height = 21 + Width = 21 + end + end + end + object RichEdit: TcxDBRichEdit + Left = 0 + Top = 26 + Align = alClient + ParentFont = False + Properties.AllowObjects = True + Properties.HideSelection = False + Properties.ScrollBars = ssVertical + Properties.SelectionBar = True + Properties.StreamModes = [resmPlainRtf] + Properties.OnChange = RichEditPropertiesChange + Properties.OnSelectionChange = RichEditPropertiesSelectionChange + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clWindowText + Style.Font.Height = -15 + Style.Font.Name = 'Tahoma' + Style.Font.Style = [] + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Height = 375 + Width = 635 + end + object ActionList: TActionList + Images = SmallImages + Left = 320 + Top = 80 + object actEditCut: TAction + Category = 'Edit' + Caption = 'Cu&t' + Hint = 'Delete selected item' + ImageIndex = 3 + ShortCut = 16472 + OnExecute = actEditCutExecute + end + object actEditCopy: TAction + Category = 'Edit' + Caption = '&Copy' + Hint = 'Copy selected item to clipboard' + ImageIndex = 4 + ShortCut = 16451 + OnExecute = actEditCopyExecute + end + object actEditPaste: TAction + Category = 'Edit' + Caption = '&Paste' + Hint = 'Paste contents of clipboard' + ImageIndex = 5 + ShortCut = 16470 + OnExecute = actEditPasteExecute + end + object actEditFont: TAction + Category = 'Edit' + Caption = '&Font...' + ImageIndex = 7 + end + object actBullets: TAction + AutoCheck = True + Caption = 'actBullets' + ImageIndex = 12 + OnExecute = actBulletsExecute + end + end + object pmColorSchemes: TPopupMenu + Left = 216 + Top = 96 + object miStandard: TMenuItem + Caption = 'Delphi Colors' + RadioItem = True + end + object miHTML: TMenuItem + Tag = 1 + Caption = '16 Standard Colors' + RadioItem = True + end + object miWeb: TMenuItem + Tag = 2 + Caption = 'Web Colors' + RadioItem = True + end + object miWebSorted: TMenuItem + Tag = 3 + Caption = 'Web Colors By Hue' + RadioItem = True + end + end + object ToolbarImages: TImageList + Left = 56 + Top = 136 + Bitmap = { + 494C01010F001100040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 + 0000000000003600000028000000400000004000000001002000000000000040 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000084000000840000008400 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000084000000840000008400 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000084000000840000008400 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000084000000840000008400 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000084000000840000008400 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000084000000840000008400 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000084000000840000008400 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000084000000840000008400 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000084000000840000008400 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000008400000084000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000084000000840000008400000084000000840000008400 + 0000840000008400000084000000840000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000840000000000000000000000840000000000000000000000840000008400 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000840000008400000084000000840000008400 + 0000840000008400000084000000840000000000000000000000000000000000 + 0000000000000000000084000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00840000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000840000000000000000000000840000000000000084000000000000000000 + 0000840000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000084000000FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00840000000000000084848400008484008484 + 8400008484008484840084000000FFFFFF000000000000000000000000000000 + 00000000000000000000FFFFFF00840000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000840000000000000000000000840000000000000084000000000000000000 + 0000840000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000084000000FFFFFF0000000000000000000000 + 00000000000000000000FFFFFF00840000000000000000848400848484000084 + 8400848484000084840084000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00840000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000840000000000000000000000000000000000000000000000000000000000 + 0000000000008400000084000000840000000000000084000000000000000000 + 0000840000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000084000000FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00840000000000000084848400008484008484 + 8400008484008484840084000000FFFFFF00000000000000000000000000FFFF + FF00840000008400000084000000840000000000000000000000840000008400 + 0000840000008400000084000000000000000000000000000000000000000000 + 0000840000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000840000000000000084000000840000008400 + 0000000000000000000000000000000000000000000000000000FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF0084000000FFFFFF0000000000000000000000 + 00000000000000000000FFFFFF00840000000000000000848400848484000084 + 8400848484000084840084000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF0084000000FFFFFF0084000000000000000000000000000000840000008400 + 0000840000008400000000000000000000000000000000000000000000000000 + 0000000000008400000000000000000000000000000000000000000000000000 + 0000000000000000000000000000840000000000000084000000000000000000 + 0000000000000000000000000000000000000000000000000000FFFFFF000000 + 000000000000000000000000000084000000FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00840000000000000084848400008484008484 + 8400008484008484840084000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00840000008400000000000000000000000000000000000000840000008400 + 0000840000000000000000000000000000000000000000000000000000000000 + 0000000000008400000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF0084000000FFFFFF000000000000000000FFFF + FF00840000008400000084000000840000000000000000848400848484000084 + 8400848484000084840084000000840000008400000084000000840000008400 + 0000840000000000000000000000000000000000000000000000840000008400 + 0000000000008400000000000000000000000000000000000000000000000000 + 0000000000008400000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000FFFFFF000000 + 000000000000000000000000000084000000FFFFFF00FFFFFF00FFFFFF00FFFF + FF0084000000FFFFFF0084000000000000000000000084848400008484008484 + 8400008484008484840000848400848484000084840084848400008484008484 + 8400008484000000000000000000000000000000000000000000840000000000 + 0000000000000000000084000000840000000000000000000000000000000000 + 0000840000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF0084000000FFFFFF00FFFFFF00FFFFFF00FFFF + FF00840000008400000000000000000000000000000000848400848484000000 + 0000000000000000000000000000000000000000000000000000000000008484 + 8400848484000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000008400000084000000840000008400 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000FFFFFF000000 + 000000000000FFFFFF0000000000840000008400000084000000840000008400 + 0000840000000000000000000000000000000000000084848400848484000000 + 0000000000000000000000000000000000000000000000000000000000008484 + 8400008484000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000FFFFFF00FFFF + FF00FFFFFF00FFFFFF0000000000FFFFFF000000000000000000000000000000 + 0000000000000000000000000000000000000000000000848400848484000084 + 84000000000000FFFF00000000000000000000FFFF0000000000848484000084 + 8400848484000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000FFFFFF00FFFF + FF00FFFFFF00FFFFFF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000FFFF0000FFFF000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000008484000084 + 8400000000000000000000000000000000000000000000000000000000000000 + 0000000000000084840000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00000000000000000000000000000000000000000000000000008484000084 + 8400008484000084840000848400008484000084840000848400008484000000 + 0000000000000000000000000000000000000000000000000000008484000084 + 8400000000000000000000000000000000000000000000000000000000000000 + 0000000000000084840000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00000000000000000000000000000000000000000000FFFF00000000000084 + 8400008484000084840000848400008484000084840000848400008484000084 + 8400000000000000000000000000000000000000000000000000008484000084 + 8400000000000000000000000000000000000000000000000000000000000000 + 0000000000000084840000000000000000000000000000000000000000000000 + 000000000000000000000000000000FFFF0000FFFF0000FFFF00000000000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF000000000000000000000000000000000000000000FFFFFF0000FFFF000000 + 0000008484000084840000848400008484000084840000848400008484000084 + 8400008484000000000000000000000000000000000000000000008484000084 + 8400000000000000000000000000000000000000000000000000000000000000 + 0000000000000084840000000000000000000000000000000000000000000000 + 0000000000000000000000000000848484008484840084848400000000000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00000000000000000000000000000000000000000000FFFF00FFFFFF0000FF + FF00000000000084840000848400008484000084840000848400008484000084 + 8400008484000084840000000000000000000000000000000000008484000084 + 8400008484000084840000848400008484000084840000848400008484000084 + 8400008484000084840000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF000000000000000000000000000000000000000000FFFFFF0000FFFF00FFFF + FF0000FFFF000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000008484000084 + 8400000000000000000000000000000000000000000000000000000000000000 + 0000008484000084840000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00000000000000000000000000000000000000000000FFFF00FFFFFF0000FF + FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00000000000000 + 0000000000000000000000000000000000000000000000000000008484000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000084840000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF000000000000000000000000000000000000000000FFFFFF0000FFFF00FFFF + FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF00000000000000 + 0000000000000000000000000000000000000000000000000000008484000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000008484000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00000000000000000000000000000000000000000000FFFF00FFFFFF0000FF + FF00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000008484000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000084840000000000000000000000000000000000000000000000 + 0000FFFFFF000000000000000000000000000000000000000000FFFFFF000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000008484000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000084840000000000000000000000000000000000000000000000 + 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF0000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000008484000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000FFFFFF000000000000000000000000000000000000000000FFFF + FF0000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000008484000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000424D3E000000000000003E000000 + 2800000040000000400000000100010000000000000200000000000000000000 + 000000000000000000000000FFFFFF00FFFFFFFFFFFF0000FFFFFFFFFFFF0000 + FFFFFFFF8FFF0000C007C0078C030000FFFFFFFF8FFF0000F83FF807FFFF0000 + FFFFFFFFFFFF0000C007C0078FFF0000FFFFFFFF8C030000F01FF8078FFF0000 + FFFFFFFFFFFF0000C007C007FFFF0000FFFFFFFF8FFF0000F83FF8078C030000 + FFFFFFFF8FFF0000FFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFE00FFFFFFFFFFFFFFFFFC007F00F81FFF83FFFFFF8C7E3FFF39FC03F + F8C7F1FFF39FFFFFF8C7F8FFF39FC007F80FFC7FF39FFFFFF8C7FE3FF39FC03F + F8C7FF1FF39FFFFFF8C7FF8FF39FC007F00FFF03E10FFFFFFFFFFFFFFFFFC03F + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9FFFFFFFC00 + FFFFF6CFFE008000FFFFF6B7FE000000FFFFF6B7FE000000FFF7F8B780000000 + C1F7FE8F80000001C3FBFE3F80000003C7FBFF7F80000003CBFBFE3F80010003 + DCF7FEBF80030003FF0FFC9F80070FC3FFFFFDDF807F0003FFFFFDDF80FF8007 + FFFFFDDF81FFF87FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC001C007 + C007001F8031BFEBC007000F80310005C007000780317E31C007000380017E35 + C007000180010006C007000080017FEAC007001F8FF18014C007001F8FF1C00A + C007001F8FF1E001C0078FF18FF1E007C00FFFF98FF1F007C01FFF758FF5F003 + C03FFF8F8001F803FFFFFFFFFFFFFFFF00000000000000000000000000000000 + 000000000000} + end + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002C04944415478DA + 63FCFFFF3F032D0123C882851B8E4603E9255435989131263EC07A29D88205EB + 8FFC4F08B421C900903E90DFFFFDFBCFF0F7DF3F86BF7FFF41D8401A04A272DA + 18B62E6C6624CB02EC868368087FD3BED30C0B976F63D8BFAA8B740B08190EA2 + B71E3C43BE05FF80EA910D8760281F88FF01D93B8E9C236C01A3E14CBC16890B + 7332A8C9F133C47AAB3004392BA058B4E7F805E27C70F5EE7B069D905570FEAF + D3290C9FBEFC62B870F32D43E5E4530CA7AFBE068B37A41B32A40569C07DB1FF + E425E28308D927DF4F24010D80B8F2F5FBEF0C2ABE10CB85F8D9192EAE08805A + F09FE1D0E9CBE459F0E55822349CFF31BC78FB9D4133680D585C418A87E1C06C + 4F88E540B9A3E7AE1267012875301BCF86F33F1E896778F3FE07C3D9EBAF195A + E75C60B878EB1DD8F00925E60CBAAA82F0483F71F13A610B40A905A498CD740E + CE88B6D4136368CF35629011E78646F05F307DE6CA4DEC16C0CA25100DF32EA7 + C53CB881AFF64533FCFAFD97E1EEE34F0C53565E6358BDFB01033B1B33C3B40A + 73A065A2703DE7AFDFC6B400586E800D0129FA074BE34036AFF502B805CF7747 + C28B8417EFBE3198C56C018BABCAF131ACEB7180EBB974F30E760BD00D07D102 + 768BE0163CD9110E36FCCF3F88252A7E6BE1721796FBC053D8D5DBF7302D88F1 + B3C2301CA458D80151C83EDA160637FCC3E79F0C26D1101FA8C8F232ACECB085 + 3810A8EFFABD07981644F95860187EEDDE0706DBA42D700B764E7303A79A8B37 + DF314C5B7583E1C0D9170C5C1C2C0C53CA4C19745404E0C5C7ED878F302D08F7 + 34C3E97274C0CCCCC8A008B4C85C478421C25D81414C901D49EF7F86FB4F1E63 + 5A10EC6682A2E81FD4A23F48BEFA87E40044E9F90F451FC8BC074F9F605A10E0 + 6C8C4503A6E17FA025262EC34100AB05BE8E86040D27E47218C069C1E6FDA719 + A805502C0055FA2BD76D5FF2EDFB4FAA5990181D80A8F4690900D0674DFECB86 + 8A7D0000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002724944415478DA + 63FCFFFF3F032D0123C882851B8E4603E9255435989131263EC07A29D88205EB + 8FFC4F08B421C900903E90DFFFFDFBCFF0F7DF3F86BF7FFF41D8401A04A272DA + 18B62E6C6624CB02EC868368087FD3BED30C0B976F63D8BFAA8B740B08190EA2 + B71E3C43BE05FF80EA910D8760281F88FF01D93B8E9C23DD02CBB80D0C272EBF + C4100F7353629856698562D19EE31748B700140C2D73CE33D44F3F03E6CB49F2 + 30AC6877645093E7C7F0C5FE939748B3001CC6C060496E38C8B078EB6DB05873 + 96314366A82686E12075874E5F26DE0298E12083340257313C7CFE052C7E708E + 37838602D4F5B03881AA3B7AEE2A7116201B7EFFD96706ADA0D560717E1E3686 + 9B1B4280118A6938089FB8789DB005A0D4024F2540CDA0A0C96C3D0296F3B496 + 61985B670316FFF3F72FD47090457FC1F4992B37B15B002B974034DC452043FE + FC65C86C3BCAB07CC75DB07C63862143A29F2AC39F7F88DC0B0F2A207DFEFA6D + 4C0B80E506583348D1BF7FA81A40416010B19EE1F18BAF60353BA6B831A829F0 + 61351C445FBA7907BB05B80C0745AC51E406B0E17CDCAC0C1756FAE3341CA4FE + EAED7B9816C4F85961351CC45EBEFD2E437EF709B0056E16520CD3AA2CB1180E + 618322FEFABD07981644F95860D570EBC10786989A830C0F9E4192675EA41643 + 76983AAA5AE4D40464DF7EF808D382704F330CC3931A0E316C39F41823F9AACA + F131ACEDB107973B7FB004D3FD278F312D0876334151F40F6AD11F24CDFF901D + F017A9C043D20732EFC1D327981604381B63D18069F81F688989CB7010C06A81 + AFA32141C309B91C06705AB079FF69A2EA0462008A05A04A7FE5BAED4BBE7DFF + 49350B12A30310953E2D01006441B6FE0F06917C0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123C882851B8E4603E9255435989131263EC07A29D88205EB + 8FFC4F08B421C900903E90DFFFFDFBCFF0F7DF3F86BF7FFF41D8401A04A272DA + 18B62E6C6624CB02EC868368087FD3BED30C0B976F63D8BFAA8B740B08190EA2 + B71E3C83DF0246C399382DF87B2E8D81D9681686F89BFD31600BFE012DD871E4 + 1C611FDC7CF081412370259CFF605B1483AC040F3CAC0F9C79C6E091BD9D61C7 + 140F06136D11B038CC177B8E5F202E88907DF2F76C2A50332412FF428387DF66 + 21C4E5488683F0FE939748B7E0D7E91414C3416C21FBC50C2FF744A1180E923F + 74FA32E9167C3F910437FC1FD42211C7250CCF7646202C85FAF0E8B9ABA45BF0 + E558223C1241F41FA041122ECB181E6F0F47311C844F5CBC4ED8827F4071E4D4 + F2F1483C8AE1205F48B9AF60B8BF25046A3848EE2F983E73E526760B60E51288 + 066962339D03B7E0ED815878D8C352929CD72A863B9B82E162305F9CBF7E1BD3 + 0260B901492D4045FFE091B888E1C7AFBF60F157FBA2510C7FF1EE1B8377EE1E + 8623F33C510C07D1976EDEC16E01B2E120B653DA5686D3575F832D38BED09741 + 569C0B6CF81FA09A5DC79F32ACDC799F616A853946F2BD7AFB1EA605317E5628 + 8683E8EDC71E33C4561F0086F97F0617732986B61C630611417686F337DE32D4 + 4C3DC7D09469C0A0A1C00FD503D1078A9BEBF71E605A10E56381E65508FBC8F9 + 170CDD0B2F335CBAFD8EE1EBF73F0C7CDCAC0C96FA620C79111A0C7212DCA8E1 + 0F75E0ED878F302D08F734C3301C3DF250E52149F60F1635F79F3CC6B420D8CD + 04AE089481480587E7B882F583CC7BF0F409A60501CEC6886488C527B0CAE40F + 52664377392C9963B5C0D7D190A0E17F51CA7DEC86E3B560F3FED324070D2E80 + 6201A8D25FB96EFB926FDF7F52CD82C4E80044A54F4B0000DAB495FE133533B1 + 0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003494944415478DA + B5956B48536118C7FF6B864285420991141445AB282C57A6DDD45C65AEB40B5D + 746681D89720838AEA8351D155238308A2DBCC5564999736539A99A9A56D4E9D + A9E944A74E9AB1FA6034D176CE3AE7DD9C5B676E06F9C2E1BD9CE7FDFFCEF33C + EF795E9ED56AC544361E0BC82EA84E647AD97F15E6F124C9F16B1E138034BFCA + 7A70C7DA7F1260F7B1BED3B415144D83A268DB98E9D99670E41214D917781E01 + 75DFEA10FD321AFA437AF8FBFA7B11677BDBBCE8AD0AD94F8B519E7BCD3320A9 + 3409B22F32646DC8C2D1E0A3E312677B4585DA3BA0DFDC8F881711309A8DF0E3 + FBC19062009FC707CDD83B8BDB1EFB9C7968665C52A5F10EB8AABE0A9F493E30 + FE3222539309E926299204075C624DB97CF9E858F9B1C13380B252103C12A066 + 6F0D4C8326320E0E0CC6A73D6ABB3037B1CE5E94D76A3D03F23AF220EF92E3A1 + E82199B3892EEB2D4351AC1C5141228FE22CFCBDAAC93340942F82B247C949FA + BA59EB21DF5ACAC4D9EEC5480E463CB2AF556B9AC706349A1A91A24C816A9FCA + 763A984DC396DF58289B8FBE5F7DA88CABC5A28025B0B01ED8C573141D3873AB + 0EED053B09A0A6B1D53DA0FB6737C485624804129C0839E9F285E7546791517F + 05C1D35720273217D327CF20EB159AAF484EAF24616AC98B23BDFA739B7B00EF + 26CF118E038264DC89B84B4452CB53F04497E378377BCA1C54C736A0B36F00C7 + 6FA8A16E3191F5A6DCEDE483EA5B755C0053376C2788B6DA7F1CA738D3AE3167 + 933B601EC6FE5315C8481362CB9137646FC35331B1D3B675B8078C577CC842E1 + F0850F488C998BB0658158BCBBD0565A1EC712FB665D271720D91E3E2E710BB3 + 764DDA043F5F3E52772C20EF97EE2922804F393124F1AD9D7A2E2041BCDAAB38 + BBF65CA9C7C92CB5DB0AFB51BA99D8EABA7BB880BD31ABC6141F196BBE7CC7E5 + 075ADC4B0F079F0F5277D8E32A94141340E53D11B1ED32F47201BB36099D0056 + FB19A789C0E0100545652FA4451DB87D3A1401D3263BFE5EA3C90C71DA3B02B8 + 9F1E8A794153A1EF337001F11B43468BD65F9E3C2868C7C5FB5A2212B57226AE + 1F133A6C43934B5CC2F4E87C1828CB0F2E605BE4F231733066F574F2D8F96E77 + EB010B7855AEFAA76BD3537301B097FEB397AF65E6C1A1FF063894183F7AE94F + 64FB03E70FC5FE7DFF61640000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000844944415478DA + 63FCFFFF3F032D0123DD2CE0E6E626D9A66FDFBE31E29307998D6241DBD4D518 + 8A3E7CFC0CC19FBE307C4462DF3CBC90740B68EA03464646A20C2505D0D70272 + 828810F8FAF52B23C1484606DFBEFF60F8FEFD279806B37FFC4411FB0E150301 + 5022C0B080A63E1899913C9A932906833F9209816196936905462D200800B3F4 + 07E01B49C5960000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000884944415478DA + 63FCFFFF3F032D0123DD2C6064644491E0E2E222D9E66FDFBEA11802321BAF05 + 6D53576318F2E1E36708FEF485E12312FBE6E185A45B40531F5003D0D7026E6E + 6EAA27A7AF5FBF32A258802D5291C1B7EF3F18BE7FFF09A6C1EC1F3F51C4BE43 + C5400014E91816D0D407433F92477332C93EA00618CDC9832C27D30A8C5A4010 + 000093B807E097AFA8400000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000814944415478DA + 63FCFFFF3F032D0123DD2C606464C4AB908B8B8B64977CFDFA9591240BDAA6AE + C610FFF0F133047FFAC2F011897DF3F042D22DA0A90FC80120B3E96701373737 + D593134A10812CC01689C8E0DBF71F0CDFBFFF04D360F68F9F2862DFA1622080 + 11C934F7C1D08FE401CF07A3397934270F829C4C2B306A01410000E973F5D1CA + C2F46B0000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000664944415478DA + 63FCFFFF3F032D0123DD2CE0E6E6A6BA4D5FBF7E6544B1A06DEA6ABC1ABE7DFF + C1F0FDFB4F300D66FFF88922F61D2A0602370F2FC4B480A63E606464A4B6F90C + 20B3E967C1682413F4C16824130CA2D148C606462379904532ADC0A805040100 + 50940DE0E82572D70000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002DA4944415478DA + B5956D4853511CC69F7DCA37245F0AD33058AB61616586A4D687088422CDE883 + F8826941319090C42F068E3012A4CF5110D2521183CA976622E22AB754E674EA + A6AECD39DF3229C9DADCB4BC7779EEF4BA75AF7507FA8771EEEEBDE7F9DDFF79 + 1ECE11B9DD6EEC64890840D1A8C95D1B6BB7555824CABB96995AC7009EBD56BB + 0BAE9CF14B80CC23BDD3B41B144D83A268CFF5DA482AA7E801948A0A910FC0F2 + D9817AD514DA75F3483E12819B17C5904487081427A3E77F73A7168AFA56A85E + 54F9022AEA46102A3988623D90B540C1B53280A67BA98C687070B0A0CE6CD3F3 + 50BEEFE3079CBDA3825A9AE279F3CB18D0D803F7C02D1670F7610D969C2E389D + CBCCE8B02F61F1A7038B3FEC585EF905539702E3B639B4A9FBF90197E51A04EE + 4A40C36F33235A38A9447575995F1D98C667D1D1ADE707100F4A9E0CA2B9D980 + C2840594DDBFCD7AC0ACF1BA89148FB11BEB4F7EAADE217EC056E58F3879FE41 + 3BBC7507351D3674EABF22491A0659BA04E2A8208E384D7901BDA1EBF734FD46 + 7E80FCB901E1D2436C8A9CCBFD78599ECC4C8A08DF2DC803DDB0153D83A3C253 + E4EAB9CE7CD9DEC8304129EAD55BD06730F10332CAD5080A38C9A628DFFA068F + 1E97627595427454A4A00E3EEA3E6160D4CC05ACED1B6C8A5A5A8CC83FF60D25 + 72190EEC09F459DF0D7357696F937D433064B2F003C8439AFE7B827FE2E47DA3 + D9CA05E465A4C03C6B87A27D029A91EF38210E45415A2C62490782C43DD72461 + A3561B179073E934CA1506EC8B8F6353E470EAF0B4F8382370581C23C883F6AE + 619827A7B880AC0B49482BD3705234D396C57C599C64BFA014B5BE1BC2C4CC34 + 177035ED14B22BB508094A6453946D6E42655511038897C60AEA40A91A846D76 + 860BC83C9F88F13907E43563502A47907D741EB2D21B888908F0D916180FA8CD + EDC2DBE08DE39717907E2E61CBF4D0DEF7FE23FE4F408B4A2B681984940F801C + FA0DAFDED63A5D2BDB0628CCCDDC3CF477B2FE0097C77CFE55ACDC7600000000 + 49454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 123 + Top = 136 + Bitmap = {} + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001984944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5360BD30046 + C399181A59989918A23C55181A328C1804F9D8C0069CBD7C07BB01C886FC3F9F + CEF00F28BF7AD75D86888ABD0CEC6CCC0C8F774430FCF9F38FE1E2F57B840DF8 + 7B2E0DACF8C7AF3F0CFC360BC006DCDF120676C1B5DB0F091BF0F3540AC3C3E7 + 9F19DAE79D6758B6FD2E4353A6114384BB22D0D0BF0CB7EE3F216C003288F254 + 66288BD765E0E56206BAE01FC3FDC7CFB01B00F233B3D12C30FBFDA138B0730F + 9C7ECE1056BE8FC1C954926172991958ECF9ABD79806803483FCCC6E36076CC0 + 8B3D5160C52031459FD560B10BCB7DC02E78F3EE2DAA01317E56F038E6B75908 + 567C6D6D1003273B33C396C38F18723B4F32B0B332311C99E70156F3F1D30754 + 03C2BDCC51342303666646066F1B1986EC5035065E6E16B0BA6FDF3EA31A10E4 + 6602762ACC1570F6EFBF503184DCBF7FFF197EFCF8826A809F9311C3A98BB748 + CA4C700340B971E28CA524E7C6FC8CE81800E35A4E592A9A5C6B000000004945 + 4E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001844944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5360BB7010B + 37DF6248A8DB0FE7CB4BF2325C5D1B0237E0ECE53BF80D0081C69967191A669C + 6188F35163985C61C5F0EF1FC4057FFEFC63B878FD1E6103744357335CB9F38E + 61CB240F066B0331B866107DEDF643FC067CFFF98781CB622E98FD745714032B + 0B235CF31F20BE75FF096E03FE01C5CE5D7FC3601ABD8E41535180E1E05C6F14 + CDBF81ECFB8F9F613700A419A478C9D65B0CC98D871862BC5518BAF24DE19A7F + 005D06623F7FF51AD30098669082CA49A71826AFB8CAD05D68CA10E2AC0009FD + DF7FA1B1F08FE1CDBBB7A806C4F859C1A3E8DDC79F0C0185BB182EDE7AC7B0BE + D799415B991F453388FEF8E903AA01E15EE6608993975F31B8656E4709D02D13 + 9D1964C438E19A41F8DBB7CFA80604B999C09D8F1C5DE83683F0BF7FFF197EFC + F8826A809F9311C3A98BB748CA4C700340B971E28CA524E7C6FC8CE818000A3C + 81590C9B58CC0000000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001854944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806100A3E14C140DFFCFA763887F3C12 + CF70ECEC0D86AAB65998067CFCF28B41C0763E98FDE6403C83303F07C33FA09A + B71F7E3088392D62B8BB259C81978B85E1ECE53BD80D40B60D643B48F39F3F10 + 67F358CD6778B52F1ACCBF78FD1E6103FE9E4B836B066141BB450CCF764582D9 + D76E3F246CC0CF532970CD202CE6B494E1E1B630A0A17F196EDD7F42D880B707 + E318981819C09ADF7DFCC9A011B886E1EEA66020FF1FC3FDC7CFB01B00F2B356 + D02A869B0F3E305424EA3364846A80BDD1B5F012C3D53BEF1966D558820D7CFE + EA35A601B000BBF5F00343CDD4D30C07CE3C07C70A1F372B838BB91443419426 + 90CD0276C19B776F510D88F1B382FB1539E0E0ECDFB0B080F03F7EFA806A40B8 + 97395882DF6621C1D47870B60BC3B76F9F510D08723321CA6610FEF7EF3FC38F + 1F5F500DF07332623875F1164999096E0028374E9CB194E4DC989F111D03002B + D67559EB1C43180000000049454E44AE426082} + Name = 'PngImage28' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage27' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage29' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001CB4944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC480D580CAA3950C4B6E2C61789CFC18A7 + E663676F3054B5CDC234E0EFFFBF0C327364185E7C7BC17020E40083BDB43DC3 + 3FA09A3F7F109A41F8ECE53BD80D587B672D43CBA916860BAF2F3024682530CC + 759987A119C4BF78FD1E76031CD73A324CB09FC0E0B0C681E1CFBF3F0C8F129E + 32B0317280350ADA2D6278B62B12CCBE76FB21A60137DFDF64D058A481E2EFB9 + 4E0B188214C2C09A41E0E1B630A00BFE32DCBAFF04D380C243850C06A2060CB1 + 1A710C871E1F61705C6FC7E020E5C470A02D0C6CB394DB7286BB9B82812EF8C7 + 70FFF13354034CED04194C969B303C4B7DCEC0CDC40B76A6DA52258667536B19 + 562D92623017B16190F75AC57075B53F58EEF9ABD7A806347E886578F0E90183 + 3CAF02C3D5C89B0C69FB531896555B63A4830BCB7DC02E78F3EE2DAA01317E56 + 28A12CECB098E1F18E70440CFCFECBA01DBA91E1F4622F30FFE3A70FA806847B + 99A36886815B1B82E09A61E0E06C17866FDF3EA31A10E4668212DFC83643C410 + 72FFFEFD67F8F1E30BAA017E4E460CA72EDE222933C10D00E5C6893396929C1B + F333A26300FC1C815930D4A9C10000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000F94944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5368B3803FE + 01D5FCF983D00CC2672FDFC134809B9B1BAF0B9EBE7803D60C32ECE2F57B845D + 80CD6618FFDAED87A4BB00062EDF78C870EBFE13DC2EC067F31F30FF1FC3FDC7 + CF487701C8E61F3FFF800D7AFEEA35A601E836FFFCF507C5F6DFBF612EFAC7F0 + E6DD5B540362FCAC18F8F978890A833D47AF327CFCF401D580702F7354DB70D8 + 0C93FBF6ED33AA01416E26446BFEF7EF3FC38F1F5F500DF07332623875F11651 + 5E8001B801A0DC3871C6529273637E46740C002BB66C59EAC44C620000000049 + 454E44AE426082} + Name = 'PngImage31' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001004944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5368B3803FE + 01D5FCF983D00CC2672FDFC16D0037373756839EBE7803D60C32ECE2F57B845D + 80CD6618FFDAED879806E0B2191D5CBEF190E1D6FD27B85D80CFE63F60FE3F86 + FB8F9F613700A499978707A7CD3F7EFE011BF4FCD56B4C03D06DFEF9EB0F8AED + BF7FC35CF48FE1CDBBB7A806C4F85931F0F3F11215067B8E5E65F8F8E903AA01 + E15EE6A8B6E1B01926F7EDDB67540382DC4C88D6FCEFDF7F861F3FBEA01AE0E7 + 64C470EAE22DA2BC0003700340B971E28CA524E7C6FC8CE8180048E16F597BCE + 9D230000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000FC4944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5368B3803FE + 01D5FCF983D00CC2672FDFC16D003737375E97DC79F09CE1E2F57B845D80CD66 + 18FFDAED87980610B219062EDF78C870EBFE13DC2EC067F31F30FF1FC3FDC7CF + B01B00D2CCCBC383D705C7CEDE6278FEEA35A601E836FFFCF507C5F6DFBF612E + FAC7F0E6DD5B540362FCAC18F8F978890A833D47AF327CFCF401D580702F7354 + DB70D80C93FBF6ED33AA01416E26446BFEF7EF3FC38F1F5F500DF07332623875 + F116515E8001B801A0DC3871C6529273637E46740C0021BE635977EAA72D0000 + 000049454E44AE426082} + Name = 'PngImage30' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000F14944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5368B3803FE + 01D5FCF983D00CC2672FDFC134809B9B9B286FDC79F09CE1E2F57B845D80CD66 + 18FFDAED87E4BBE0F28D870CB7EE3FC1ED027C36FF01F3FF31DC7FFC8C7C171C + 3B7B8BE1F9ABD79806A0DBFCF3D71F14DB7FFF86B9E81FC39B776F510D88F1B3 + 62E0E7E325CA057B8E5E65F8F8E903AA01E15EE6A8B6E1B01926F7EDDB675403 + 82DC4C88D6FCEFDF7F861F3FBEA01AE0E764C470EAE22DA2BC0003700340B971 + E28CA524E7C6FC8CE8180004936059AAE3EEF00000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001704944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC48062C0BEFB0C0CF593F7331C79CFC5B0 + B7CE9CC14911B7E663676F3054B5CD4235C0B6683F4348B81543C105A0EA190B + 18FE9F4F67686C6CC47045565E31C3D9CB77300D604C3CC9C06061C0C0F0E206 + 83C186090CE7CFCF67E0E6E6C630E0CE83E70C17AFDFC33400E405E7A0990C06 + 0C27187AD7CD677050F8CFF0E70FC2D9200CE35FBBFD10D30064F0EF3F6ECD7F + 80F8D6FD27B80D20A4F937907DFFF133EC5E80C5C2FA0A730607A9EF189A7FFC + FC03663F7FF59A702CBCD813C530634A1F46207A072731BC79F716D580183F2B + 06D694D328B1B079473F83BA923486017B8E5E65F8F8E903AA01E15EE60C3B1F + B03204464062A174C97C062B81779030F80D0B0B44B87CFBF619D58020371394 + 8083B3B168FEF7EF3FC38F1F5F500DF07332623875F1164999096E0028374E9C + B194E4DC989F111D03003D3E8159D33DF1820000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 91 + Top = 136 + Bitmap = {} + end +end diff --git a/Source/GUIBase/uViewRichEditor.pas b/Source/GUIBase/uViewRichEditor.pas new file mode 100644 index 0000000..7c13a7b --- /dev/null +++ b/Source/GUIBase/uViewRichEditor.pas @@ -0,0 +1,239 @@ +unit uViewRichEditor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, Menus, cxLookAndFeelPainters, cxGraphics, cxSpinEdit, + cxSpinButton, cxMaskEdit, cxFontNameComboBox, cxControls, cxContainer, cxEdit, + cxTextEdit, cxDropDownEdit, cxColorComboBox, StdCtrls, cxButtons, ComCtrls, + ToolWin, ImgList, ActnList, TBXExtItems, TB2ExtItems, TB2Item, TBX, TB2Dock, + TB2Toolbar, PngImageList, cxMemo, cxRichEdit, ExtCtrls, DB, uDAInterfaces, + uDADataTable, cxDBRichEdit; + +type + IViewRichEditor = interface(IViewBase) + ['{C29F4555-A57A-436D-BF23-2E2F013BC13D}'] + end; + + + TfrViewRichEditor = class(TfrViewBase, IViewRichEditor) + ActionList: TActionList; + actEditCut: TAction; + actEditCopy: TAction; + actEditPaste: TAction; + actEditFont: TAction; + actBullets: TAction; + pmColorSchemes: TPopupMenu; + miStandard: TMenuItem; + miHTML: TMenuItem; + miWeb: TMenuItem; + miWebSorted: TMenuItem; + ToolbarImages: TImageList; + TBXDock1: TTBXDock; + TBXToolbar1: TTBXToolbar; + bBold: TTBXItem; + bItalic: TTBXItem; + TBXSeparatorItem1: TTBXSeparatorItem; + bUnderline: TTBXItem; + TBXSeparatorItem2: TTBXSeparatorItem; + TBXItem5: TTBXItem; + TBXItem6: TTBXItem; + TBXItem7: TTBXItem; + TBXSeparatorItem4: TTBXSeparatorItem; + bAlignLeft: TTBXItem; + bAlignCenter: TTBXItem; + bAlignRight: TTBXItem; + LargeImages: TPngImageList; + SmallImages: TPngImageList; + TBControlItem1: TTBControlItem; + fcbFontName: TcxFontNameComboBox; + TBXColorItem1: TTBXColorItem; + RichEdit: TcxDBRichEdit; + TBControlItem2: TTBControlItem; + meFontSize: TcxMaskEdit; + TBControlItem3: TTBControlItem; + cxSpinButton: TcxSpinButton; + TBXSeparatorItem3: TTBXSeparatorItem; + TBXSeparatorItem5: TTBXSeparatorItem; + bBullets: TTBXItem; + procedure actBulletsExecute(Sender: TObject); + procedure actEditCutExecute(Sender: TObject); + procedure actEditCopyExecute(Sender: TObject); + procedure actEditPasteExecute(Sender: TObject); + procedure RichEditPropertiesChange(Sender: TObject); + procedure CustomViewShow(Sender: TObject); + procedure RichEditPropertiesSelectionChange(Sender: TObject); + procedure cxFontNameComboBox1PropertiesChange(Sender: TObject); + procedure CustomViewCreate(Sender: TObject); + procedure fcbFontNamePropertiesInitPopup(Sender: TObject); + procedure meFontSizePropertiesChange(Sender: TObject); + procedure bBoldClick(Sender: TObject); + procedure bItalicClick(Sender: TObject); + procedure bUnderlineClick(Sender: TObject); + procedure bAlignLeftClick(Sender: TObject); + procedure bAlignCenterClick(Sender: TObject); + procedure bAlignRightClick(Sender: TObject); + procedure bBulletsClick(Sender: TObject); + private + FUpdating: Boolean; + FChanged: Boolean; + function CurrText: TTextAttributes; + public + { Public declarations } + end; + +implementation + +{$R *.dfm} + +procedure TfrViewRichEditor.actBulletsExecute(Sender: TObject); +begin + if FUpdating or (RichEdit = nil) then Exit; + RichEdit.Paragraph.Numbering := TNumberingStyle(actBullets.Checked); +end; + +procedure TfrViewRichEditor.actEditCopyExecute(Sender: TObject); +begin + RichEdit.CopyToClipboard; +end; + +procedure TfrViewRichEditor.actEditCutExecute(Sender: TObject); +begin + RichEdit.CutToClipboard; +end; + +procedure TfrViewRichEditor.actEditPasteExecute(Sender: TObject); +begin + RichEdit.PasteFromClipboard; +end; + +procedure TfrViewRichEditor.bAlignCenterClick(Sender: TObject); +begin + if FUpdating or (RichEdit = nil) then Exit; + RichEdit.Paragraph.Alignment := TAlignment(TControl(Sender).Tag); +end; + +procedure TfrViewRichEditor.bAlignLeftClick(Sender: TObject); +begin + if FUpdating or (RichEdit = nil) then Exit; + RichEdit.Paragraph.Alignment := TAlignment(TControl(Sender).Tag); +end; + +procedure TfrViewRichEditor.bAlignRightClick(Sender: TObject); +begin + if FUpdating or (RichEdit = nil) then Exit; + RichEdit.Paragraph.Alignment := TAlignment(TControl(Sender).Tag); +end; + +procedure TfrViewRichEditor.bBoldClick(Sender: TObject); +begin + if FUpdating then Exit; + if bBold.Checked then + CurrText.Style := CurrText.Style + [fsBold] + else + CurrText.Style := CurrText.Style - [fsBold]; +end; + +procedure TfrViewRichEditor.bBulletsClick(Sender: TObject); +begin + if FUpdating or (RichEdit = nil) then Exit; + RichEdit.Paragraph.Numbering := TNumberingStyle(bBullets.Checked); +end; + +procedure TfrViewRichEditor.bItalicClick(Sender: TObject); +begin + if FUpdating then Exit; + if bItalic.Checked then + CurrText.Style := CurrText.Style + [fsItalic] + else + CurrText.Style := CurrText.Style - [fsItalic]; +end; + +procedure TfrViewRichEditor.bUnderlineClick(Sender: TObject); +begin + if FUpdating then Exit; + if bUnderline.Checked then + CurrText.Style := CurrText.Style + [fsUnderline] + else + CurrText.Style := CurrText.Style - [fsUnderline]; +end; + +function TfrViewRichEditor.CurrText: TTextAttributes; +begin +{ if RichEdit.SelLength > 0 then} + Result := RichEdit.SelAttributes +{ else + Result := RichEdit.DefAttributes;} +end; + +procedure TfrViewRichEditor.CustomViewCreate(Sender: TObject); +begin + inherited; + CurrText.Name := 'Tahoma'; + CurrText.Size := 11; + RichEditPropertiesSelectionChange(Self); +end; + +procedure TfrViewRichEditor.CustomViewShow(Sender: TObject); +begin + inherited; + FChanged := False; +end; + +procedure TfrViewRichEditor.cxFontNameComboBox1PropertiesChange( + Sender: TObject); +begin + if FUpdating then Exit; + CurrText.Name := TcxFontNameComboBox(Sender).Text; +end; + +procedure TfrViewRichEditor.fcbFontNamePropertiesInitPopup(Sender: TObject); +begin + inherited; + fcbFontName.Properties.FontPreview.FontStyle := CurrText.Style; +end; + +procedure TfrViewRichEditor.meFontSizePropertiesChange(Sender: TObject); +begin + if FUpdating then Exit; + if meFontSize.EditText <> '' then + CurrText.Size := StrToInt(meFontSize.EditText) + else + CurrText.Size := 0; +end; + +procedure TfrViewRichEditor.RichEditPropertiesChange(Sender: TObject); +begin + FChanged := True; +end; + +procedure TfrViewRichEditor.RichEditPropertiesSelectionChange(Sender: TObject); +begin + with RichEdit.Paragraph do + try + FUpdating := True; + bBold.Checked := fsBold in CurrText.Style; + bItalic.Checked := fsItalic in CurrText.Style; + bUnderline.Checked := fsUnderline in CurrText.Style; + bBullets.Checked := Boolean(Numbering); + meFontSize.Text := IntToStr(CurrText.Size); + fcbFontName.EditValue := CurrText.Name; + //cxColorComboBox.EditValue := CurrText.Color; + case Ord(Alignment) of + 0: begin + bAlignLeft.Checked := True; + end; + 1: begin + bAlignRight.Checked := True; + end; + 2: begin + bAlignCenter.Checked := True; + end; + end; + finally + FUpdating := False; + end; +end; + +end. diff --git a/Source/GUIBase/uViewTotales.dcu b/Source/GUIBase/uViewTotales.dcu new file mode 100644 index 0000000..8375a80 Binary files /dev/null and b/Source/GUIBase/uViewTotales.dcu differ diff --git a/Source/GUIBase/uViewTotales.dfm b/Source/GUIBase/uViewTotales.dfm new file mode 100644 index 0000000..0ef6073 --- /dev/null +++ b/Source/GUIBase/uViewTotales.dfm @@ -0,0 +1,821 @@ +inherited frViewTotales: TfrViewTotales + Width = 451 + Height = 252 + Align = alBottom + ExplicitWidth = 451 + ExplicitHeight = 252 + object Bevel5: TBevel + Left = 666 + Top = 109 + Width = 108 + Height = 9 + Shape = bsBottomLine + end + object dxLayoutControl1: TdxLayoutControl + AlignWithMargins = True + Left = 0 + Top = 0 + Width = 451 + Height = 252 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 0 + Margins.Bottom = 0 + Align = alClient + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + object Bevel3: TBevel + Left = 305 + Top = 28 + Width = 3 + Height = 100 + Shape = bsRightLine + end + object Bevel4: TBevel + Left = 417 + Top = 70 + Width = 342 + Height = 9 + Shape = bsBottomLine + end + object Bevel1: TBevel + Left = 417 + Top = 186 + Width = 368 + Height = 9 + Shape = bsBottomLine + end + object Bevel2: TBevel + Left = 131 + Top = 188 + Width = 368 + Height = 9 + Shape = bsBottomLine + end + object ImporteDto: TcxDBCurrencyEdit + Left = 202 + Top = 55 + AutoSize = False + DataBinding.DataField = 'IMPORTE_DESCUENTO' + DataBinding.DataSource = DADataSource + ParentFont = False + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = '-,0.00 '#8364';,0.00 '#8364 + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Properties.UseThousandSeparator = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clWindowText + Style.Font.Height = -11 + Style.Font.Name = 'Tahoma' + Style.Font.Style = [] + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.TextColor = clWindowText + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 2 + Height = 21 + Width = 87 + end + object ImporteIVA: TcxDBCurrencyEdit + Left = 488 + Top = 105 + AutoSize = False + DataBinding.DataField = 'IMPORTE_IVA' + DataBinding.DataSource = DADataSource + Enabled = False + ParentFont = False + Properties.Alignment.Horz = taRightJustify + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Properties.UseThousandSeparator = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clWindowText + Style.Font.Height = -11 + Style.Font.Name = 'Tahoma' + Style.Font.Style = [] + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.TextColor = clWindowText + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 10 + Height = 21 + Width = 20 + end + object ImporteTotal: TcxDBCurrencyEdit + Left = 418 + Top = 159 + AutoSize = False + DataBinding.DataField = 'IMPORTE_TOTAL' + DataBinding.DataSource = DADataSource + Enabled = False + ParentFont = False + Properties.Alignment.Horz = taRightJustify + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Properties.UseThousandSeparator = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clWindowText + Style.Font.Height = -12 + Style.Font.Name = 'Tahoma' + Style.Font.Style = [] + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.TextColor = clActiveCaption + Style.TextStyle = [fsBold] + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 13 + Height = 21 + Width = 90 + end + object edtDescuento: TcxDBSpinEdit + Left = 131 + Top = 55 + AutoSize = False + DataBinding.DataField = 'DESCUENTO' + DataBinding.DataSource = DADataSource + ParentFont = False + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = ',0.00 %;-,0.00 %' + Properties.ImmediatePost = True + Properties.MaxValue = 100.000000000000000000 + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clWindowText + Style.Font.Height = -11 + Style.Font.Name = 'Tahoma' + Style.Font.Style = [] + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.TextColor = clWindowText + Style.ButtonStyle = bts3D + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 1 + Height = 21 + Width = 65 + end + object edtIVA: TcxDBSpinEdit + Left = 417 + Top = 105 + AutoSize = False + DataBinding.DataField = 'IVA' + DataBinding.DataSource = DADataSource + Enabled = False + ParentFont = False + Properties.Alignment.Horz = taRightJustify + Properties.AssignedValues.MinValue = True + Properties.DisplayFormat = ',0.00 %;-,0.00 %' + Properties.ImmediatePost = True + Properties.MaxValue = 100.000000000000000000 + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clWindowText + Style.Font.Height = -11 + Style.Font.Name = 'Tahoma' + Style.Font.Style = [] + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.TextColor = clWindowText + Style.ButtonStyle = bts3D + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 9 + Height = 21 + Width = 65 + end + object ImporteBase: TcxDBCurrencyEdit + Left = 417 + Top = 28 + AutoSize = False + DataBinding.DataField = 'BASE_IMPONIBLE' + DataBinding.DataSource = DADataSource + Enabled = False + ParentFont = False + Properties.Alignment.Horz = taRightJustify + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Properties.UseThousandSeparator = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clWindowText + Style.Font.Height = -11 + Style.Font.Name = 'Tahoma' + Style.Font.Style = [fsBold] + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.TextColor = clWindowText + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 8 + Height = 21 + Width = 91 + end + object edtRE: TcxDBSpinEdit + Left = 417 + Top = 132 + AutoSize = False + DataBinding.DataField = 'RE' + DataBinding.DataSource = DADataSource + Enabled = False + ParentFont = False + Properties.Alignment.Horz = taRightJustify + Properties.AssignedValues.EditFormat = True + Properties.DisplayFormat = ',0.00 %;-,0.00 %' + Properties.ImmediatePost = True + Properties.MaxValue = 100.000000000000000000 + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clWindowText + Style.Font.Height = -11 + Style.Font.Name = 'Tahoma' + Style.Font.Style = [] + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.TextColor = clWindowText + Style.ButtonStyle = bts3D + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 11 + Height = 21 + Width = 65 + end + object ImporteRE: TcxDBCurrencyEdit + Left = 488 + Top = 132 + AutoSize = False + DataBinding.DataField = 'IMPORTE_RE' + DataBinding.DataSource = DADataSource + Enabled = False + ParentFont = False + Properties.Alignment.Horz = taRightJustify + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Properties.UseThousandSeparator = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clWindowText + Style.Font.Height = -11 + Style.Font.Name = 'Tahoma' + Style.Font.Style = [] + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.TextColor = clWindowText + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 12 + Height = 21 + Width = 20 + end + object eImporteNeto: TcxDBCurrencyEdit + Left = 131 + Top = 28 + AutoSize = False + DataBinding.DataField = 'IMPORTE_NETO' + DataBinding.DataSource = DADataSource + ParentFont = False + Properties.Alignment.Horz = taRightJustify + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Properties.UseThousandSeparator = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clWindowText + Style.Font.Height = -11 + Style.Font.Name = 'Tahoma' + Style.Font.Style = [fsBold] + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.TextColor = clWindowText + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 0 + Height = 21 + Width = 158 + end + object ePorte: TcxDBCurrencyEdit + Left = 131 + Top = 82 + AutoSize = False + DataBinding.DataField = 'IMPORTE_PORTE' + DataBinding.DataSource = DADataSource + ParentFont = False + Properties.Alignment.Horz = taRightJustify + Properties.ReadOnly = False + Properties.UseLeftAlignmentOnEditing = False + Properties.UseThousandSeparator = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clWindowText + Style.Font.Height = -11 + Style.Font.Name = 'Tahoma' + Style.Font.Style = [] + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.TextColor = clWindowText + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 3 + Height = 21 + Width = 158 + end + object eIVA: TcxDBLookupComboBox + Left = 131 + Top = 109 + DataBinding.DataField = 'ID_TIPO_IVA' + DataBinding.DataSource = DADataSource + Properties.ImmediatePost = True + Properties.KeyFieldNames = 'ID' + Properties.ListColumns = < + item + FieldName = 'REFERENCIA' + end> + Properties.ListOptions.GridLines = glNone + Properties.ListOptions.ShowHeader = False + Properties.ListOptions.SyncMode = True + Properties.ListSource = dsTiposIVA + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 4 + Width = 20 + end + object bTiposIVA: TButton + Left = 157 + Top = 109 + Width = 132 + Height = 21 + Caption = 'Ver los tipos de IVA...' + TabOrder = 5 + end + object cbRecargoEquivalencia: TcxDBCheckBox + Left = 131 + Top = 136 + Caption = 'Aplicar recargo de equivalencia' + DataBinding.DataField = 'RECARGO_EQUIVALENCIA' + DataBinding.DataSource = DADataSource + Properties.DisplayChecked = '1' + Properties.DisplayUnchecked = '0' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + Properties.ValueChecked = 1 + Properties.ValueUnchecked = 0 + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 6 + Width = 221 + end + object edtRetencion: TcxDBSpinEdit + Left = 417 + Top = 206 + AutoSize = False + DataBinding.DataSource = DADataSource + ParentFont = False + Properties.Alignment.Horz = taRightJustify + Properties.AssignedValues.EditFormat = True + Properties.DisplayFormat = ',0.00 %;-,0.00 %' + Properties.ImmediatePost = True + Properties.MaxValue = 100.000000000000000000 + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clWindowText + Style.Font.Height = -11 + Style.Font.Name = 'Tahoma' + Style.Font.Style = [] + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.TextColor = clWindowText + Style.ButtonStyle = bts3D + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 14 + Height = 21 + Width = 65 + end + object edtImporteRetencion: TcxDBCurrencyEdit + Left = 488 + Top = 206 + AutoSize = False + DataBinding.DataSource = DADataSource + Enabled = False + ParentFont = False + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = '-,0.00 '#8364';,0.00 '#8364 + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Properties.UseThousandSeparator = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clWindowText + Style.Font.Height = -11 + Style.Font.Name = 'Tahoma' + Style.Font.Style = [] + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.TextColor = clWindowText + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 15 + Height = 21 + Width = 180 + end + object edtFechaRetencion: TcxDBDateEdit + Left = 131 + Top = 208 + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 7 + Width = 280 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + AutoAligns = [aaHorizontal] + Caption = 'Importes totales' + LayoutDirection = ldHorizontal + object dxLayoutControl1Group2: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item8: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Importe neto:' + Control = eImporteNeto + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group7: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group10: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item4: TdxLayoutItem + AutoAligns = [aaVertical] + Caption = 'Descuento (%):' + Control = edtDescuento + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item1: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Importe de dto:' + ShowCaption = False + Control = ImporteDto + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item9: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Porte:' + Control = ePorte + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group6: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item11: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Tipo de IVA:' + Control = eIVA + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item15: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + ShowCaption = False + Control = bTiposIVA + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item16: TdxLayoutItem + Caption = ' ' + Control = cbRecargoEquivalencia + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item19: TdxLayoutItem + Caption = ' ' + Offsets.Top = 25 + Control = Bevel2 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item21: TdxLayoutItem + Caption = 'Fecha vto. retenci'#243'n:' + Visible = False + Control = edtFechaRetencion + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group5: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item13: TdxLayoutItem + AutoAligns = [aaHorizontal] + AlignVert = avClient + Caption = ' ' + Offsets.Left = 10 + Offsets.Right = 10 + ShowCaption = False + Control = Bevel3 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group3: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item12: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Base imponible:' + Control = ImporteBase + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item14: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = ' ' + Offsets.Bottom = 15 + Offsets.Top = 15 + Control = Bevel4 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group9: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item5: TdxLayoutItem + AutoAligns = [aaVertical] + Caption = 'IVA (%):' + CaptionOptions.AlignHorz = taRightJustify + Control = edtIVA + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item2: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Importe de IVA:' + ShowCaption = False + Control = ImporteIVA + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group8: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item6: TdxLayoutItem + AutoAligns = [aaVertical] + Caption = 'RE. (%):' + CaptionOptions.AlignHorz = taRightJustify + Control = edtRE + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item7: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Importe de RE:' + ShowCaption = False + Visible = False + Control = ImporteRE + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item3: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Importe total:' + LookAndFeel = LookAndFeelIMPORTE_TOTAL + Control = ImporteTotal + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item10: TdxLayoutItem + Caption = ' ' + Control = Bevel1 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group11: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + ShowCaption = False + Visible = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item17: TdxLayoutItem + Caption = 'Retenci'#243'n (%):' + Control = edtRetencion + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item18: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Control = edtImporteRetencion + ControlOptions.ShowBorder = False + end + end + end + end + end + end + object dxLayoutControl1Group4: TdxLayoutGroup + end + end + object DADataSource: TDADataSource + Left = 8 + Top = 8 + end + object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList + Left = 40 + Top = 8 + object LookAndFeelIMPORTE_TOTAL: TdxLayoutStandardLookAndFeel + ItemOptions.CaptionOptions.Font.Charset = DEFAULT_CHARSET + ItemOptions.CaptionOptions.Font.Color = clWindowText + ItemOptions.CaptionOptions.Font.Height = -12 + ItemOptions.CaptionOptions.Font.Name = 'Tahoma' + ItemOptions.CaptionOptions.Font.Style = [fsBold] + ItemOptions.CaptionOptions.UseDefaultFont = False + end + end + object dsTiposIVA: TDADataSource + Left = 8 + Top = 40 + end +end diff --git a/Source/GUIBase/uViewTotales.pas b/Source/GUIBase/uViewTotales.pas new file mode 100644 index 0000000..d4363d9 --- /dev/null +++ b/Source/GUIBase/uViewTotales.pas @@ -0,0 +1,82 @@ +unit uViewTotales; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, ExtCtrls, StdCtrls, DB, uDADataTable, cxGraphics, + cxTextEdit, cxMaskEdit, cxDropDownEdit, cxDBEdit, cxControls, + cxContainer, cxEdit, cxLabel, cxDBLabel, cxCurrencyEdit, cxSpinEdit, + ComCtrls, dxLayoutControl, dxLayoutLookAndFeels, cxLookupEdit, cxDBLookupEdit, + cxDBLookupComboBox, cxCheckBox, uDAInterfaces, cxCalendar; + +type + TfrViewTotales = class(TfrViewBase) + DADataSource: TDADataSource; + ImporteBase: TcxDBCurrencyEdit; + ImporteDto: TcxDBCurrencyEdit; + ImporteIVA: TcxDBCurrencyEdit; + ImporteTotal: TcxDBCurrencyEdit; + edtDescuento: TcxDBSpinEdit; + edtIVA: TcxDBSpinEdit; + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Item1: TdxLayoutItem; + dxLayoutControl1Item2: TdxLayoutItem; + dxLayoutControl1Item3: TdxLayoutItem; + dxLayoutControl1Item4: TdxLayoutItem; + dxLayoutControl1Item5: TdxLayoutItem; + dxLayoutControl1Item12: TdxLayoutItem; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Group4: TdxLayoutGroup; + dxLayoutControl1Group5: TdxLayoutGroup; + dxLayoutControl1Item6: TdxLayoutItem; + edtRE: TcxDBSpinEdit; + dxLayoutControl1Item7: TdxLayoutItem; + ImporteRE: TcxDBCurrencyEdit; + dxLayoutControl1Item8: TdxLayoutItem; + eImporteNeto: TcxDBCurrencyEdit; + dxLayoutControl1Item9: TdxLayoutItem; + ePorte: TcxDBCurrencyEdit; + dxLayoutControl1Group2: TdxLayoutGroup; + dxLayoutControl1Group7: TdxLayoutGroup; + Bevel3: TBevel; + dxLayoutControl1Item13: TdxLayoutItem; + dxLayoutControl1Group3: TdxLayoutGroup; + dxLayoutControl1Item14: TdxLayoutItem; + Bevel4: TBevel; + dxLayoutControl1Group9: TdxLayoutGroup; + dxLayoutControl1Group8: TdxLayoutGroup; + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + LookAndFeelIMPORTE_TOTAL: TdxLayoutStandardLookAndFeel; + dxLayoutControl1Item11: TdxLayoutItem; + eIVA: TcxDBLookupComboBox; + dxLayoutControl1Item15: TdxLayoutItem; + bTiposIVA: TButton; + dxLayoutControl1Group6: TdxLayoutGroup; + dsTiposIVA: TDADataSource; + dxLayoutControl1Item16: TdxLayoutItem; + cbRecargoEquivalencia: TcxDBCheckBox; + dxLayoutControl1Item17: TdxLayoutItem; + edtRetencion: TcxDBSpinEdit; + dxLayoutControl1Item18: TdxLayoutItem; + edtImporteRetencion: TcxDBCurrencyEdit; + Bevel5: TBevel; + dxLayoutControl1Group11: TdxLayoutGroup; + dxLayoutControl1Item21: TdxLayoutItem; + edtFechaRetencion: TcxDBDateEdit; + dxLayoutControl1Group10: TdxLayoutGroup; + dxLayoutControl1Item10: TdxLayoutItem; + Bevel1: TBevel; + dxLayoutControl1Item19: TdxLayoutItem; + Bevel2: TBevel; + public + { Public declarations } + end; + + +implementation + +{$R *.dfm} + +end. diff --git a/Source/Informes/1/AlbaranCliente.rdx b/Source/Informes/1/AlbaranCliente.rdx new file mode 100644 index 0000000..9416825 Binary files /dev/null and b/Source/Informes/1/AlbaranCliente.rdx differ diff --git a/Source/Informes/1/AlbaranProveedor.rdx b/Source/Informes/1/AlbaranProveedor.rdx new file mode 100644 index 0000000..f1317eb Binary files /dev/null and b/Source/Informes/1/AlbaranProveedor.rdx differ diff --git a/Source/Informes/1/FacturaCliente.rdx b/Source/Informes/1/FacturaCliente.rdx new file mode 100644 index 0000000..fcc6963 Binary files /dev/null and b/Source/Informes/1/FacturaCliente.rdx differ diff --git a/Source/Informes/1/InfAlbaranCliente.fr3 b/Source/Informes/1/InfAlbaranCliente.fr3 new file mode 100644 index 0000000..781ea69 --- /dev/null +++ b/Source/Informes/1/InfAlbaranCliente.fr3 @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/1/InfAlbaranProveedor.fr3 b/Source/Informes/1/InfAlbaranProveedor.fr3 new file mode 100644 index 0000000..fdcc953 --- /dev/null +++ b/Source/Informes/1/InfAlbaranProveedor.fr3 @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/1/InfFacturaCliente.fr3 b/Source/Informes/1/InfFacturaCliente.fr3 new file mode 100644 index 0000000..ad7063a --- /dev/null +++ b/Source/Informes/1/InfFacturaCliente.fr3 @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/1/InfPedidoProveedor.fr3 b/Source/Informes/1/InfPedidoProveedor.fr3 new file mode 100644 index 0000000..b019d6b --- /dev/null +++ b/Source/Informes/1/InfPedidoProveedor.fr3 @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/1/InfPresupuestoCliente.fr3 b/Source/Informes/1/InfPresupuestoCliente.fr3 new file mode 100644 index 0000000..8af18e3 --- /dev/null +++ b/Source/Informes/1/InfPresupuestoCliente.fr3 @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/1/InfReciboCliente.fr3 b/Source/Informes/1/InfReciboCliente.fr3 new file mode 100644 index 0000000..1aee64b --- /dev/null +++ b/Source/Informes/1/InfReciboCliente.fr3 @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/1/InformeIVAClientes.fr3 b/Source/Informes/1/InformeIVAClientes.fr3 new file mode 100644 index 0000000..26ad5a3 --- /dev/null +++ b/Source/Informes/1/InformeIVAClientes.fr3 @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/1/InformeIVAClientesDesglosado.fr3 b/Source/Informes/1/InformeIVAClientesDesglosado.fr3 new file mode 100644 index 0000000..a83d27e --- /dev/null +++ b/Source/Informes/1/InformeIVAClientesDesglosado.fr3 @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/1/InformeIVAProveedores.fr3 b/Source/Informes/1/InformeIVAProveedores.fr3 new file mode 100644 index 0000000..fbabd19 --- /dev/null +++ b/Source/Informes/1/InformeIVAProveedores.fr3 @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/1/InformeIVAProveedoresDesglosado.fr3 b/Source/Informes/1/InformeIVAProveedoresDesglosado.fr3 new file mode 100644 index 0000000..23916d5 --- /dev/null +++ b/Source/Informes/1/InformeIVAProveedoresDesglosado.fr3 @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/1/InformeListadoFacturasCliente.fr3 b/Source/Informes/1/InformeListadoFacturasCliente.fr3 new file mode 100644 index 0000000..125e3a9 --- /dev/null +++ b/Source/Informes/1/InformeListadoFacturasCliente.fr3 @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/1/InformeListadoFacturasClienteDesglosado.fr3 b/Source/Informes/1/InformeListadoFacturasClienteDesglosado.fr3 new file mode 100644 index 0000000..87ba4bf --- /dev/null +++ b/Source/Informes/1/InformeListadoFacturasClienteDesglosado.fr3 @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/1/InformeListadoFacturasClientePendientes.fr3 b/Source/Informes/1/InformeListadoFacturasClientePendientes.fr3 new file mode 100644 index 0000000..d606d18 --- /dev/null +++ b/Source/Informes/1/InformeListadoFacturasClientePendientes.fr3 @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/1/InformeListadoFacturasClientePendientesDesglosado.fr3 b/Source/Informes/1/InformeListadoFacturasClientePendientesDesglosado.fr3 new file mode 100644 index 0000000..92daa20 --- /dev/null +++ b/Source/Informes/1/InformeListadoFacturasClientePendientesDesglosado.fr3 @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/1/InformeListadoFacturasProveedor.fr3 b/Source/Informes/1/InformeListadoFacturasProveedor.fr3 new file mode 100644 index 0000000..08c222b --- /dev/null +++ b/Source/Informes/1/InformeListadoFacturasProveedor.fr3 @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/1/InformeListadoFacturasProveedorDesglosado.fr3 b/Source/Informes/1/InformeListadoFacturasProveedorDesglosado.fr3 new file mode 100644 index 0000000..fc826c3 --- /dev/null +++ b/Source/Informes/1/InformeListadoFacturasProveedorDesglosado.fr3 @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/1/InformeListadoFacturasProveedorPendientes.fr3 b/Source/Informes/1/InformeListadoFacturasProveedorPendientes.fr3 new file mode 100644 index 0000000..8b48839 --- /dev/null +++ b/Source/Informes/1/InformeListadoFacturasProveedorPendientes.fr3 @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/1/InformeListadoFacturasProveedorPendientesDesglosado.fr3 b/Source/Informes/1/InformeListadoFacturasProveedorPendientesDesglosado.fr3 new file mode 100644 index 0000000..66dbfd4 --- /dev/null +++ b/Source/Informes/1/InformeListadoFacturasProveedorPendientesDesglosado.fr3 @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/1/InformeListadoPedidos.fr3 b/Source/Informes/1/InformeListadoPedidos.fr3 new file mode 100644 index 0000000..d53f918 --- /dev/null +++ b/Source/Informes/1/InformeListadoPedidos.fr3 @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/1/InformeListadoPedidosDesglosado.fr3 b/Source/Informes/1/InformeListadoPedidosDesglosado.fr3 new file mode 100644 index 0000000..973c331 --- /dev/null +++ b/Source/Informes/1/InformeListadoPedidosDesglosado.fr3 @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/1/InformeListadoPresupuestos.fr3 b/Source/Informes/1/InformeListadoPresupuestos.fr3 new file mode 100644 index 0000000..7a6781b --- /dev/null +++ b/Source/Informes/1/InformeListadoPresupuestos.fr3 @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/1/InformeListadoPresupuestosDesglosado.fr3 b/Source/Informes/1/InformeListadoPresupuestosDesglosado.fr3 new file mode 100644 index 0000000..118f5ee --- /dev/null +++ b/Source/Informes/1/InformeListadoPresupuestosDesglosado.fr3 @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/1/InformeListadoRecibosCliPendientes.fr3 b/Source/Informes/1/InformeListadoRecibosCliPendientes.fr3 new file mode 100644 index 0000000..e474289 --- /dev/null +++ b/Source/Informes/1/InformeListadoRecibosCliPendientes.fr3 @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/1/InformeListadoRecibosCliPendientesDesglosado.fr3 b/Source/Informes/1/InformeListadoRecibosCliPendientesDesglosado.fr3 new file mode 100644 index 0000000..78b8dd0 --- /dev/null +++ b/Source/Informes/1/InformeListadoRecibosCliPendientesDesglosado.fr3 @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/1/InformeListadoRecibosCliente.fr3 b/Source/Informes/1/InformeListadoRecibosCliente.fr3 new file mode 100644 index 0000000..47ddd65 --- /dev/null +++ b/Source/Informes/1/InformeListadoRecibosCliente.fr3 @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/1/InformeListadoRecibosClienteDesglosado.fr3 b/Source/Informes/1/InformeListadoRecibosClienteDesglosado.fr3 new file mode 100644 index 0000000..3b7324a --- /dev/null +++ b/Source/Informes/1/InformeListadoRecibosClienteDesglosado.fr3 @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/1/InformeListadoRecibosProvPendientes.fr3 b/Source/Informes/1/InformeListadoRecibosProvPendientes.fr3 new file mode 100644 index 0000000..3e83274 --- /dev/null +++ b/Source/Informes/1/InformeListadoRecibosProvPendientes.fr3 @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/1/InformeListadoRecibosProvPendientesDesglosado.fr3 b/Source/Informes/1/InformeListadoRecibosProvPendientesDesglosado.fr3 new file mode 100644 index 0000000..41ebe34 --- /dev/null +++ b/Source/Informes/1/InformeListadoRecibosProvPendientesDesglosado.fr3 @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/1/InformeListadoRecibosProveedor.fr3 b/Source/Informes/1/InformeListadoRecibosProveedor.fr3 new file mode 100644 index 0000000..bfdd68a --- /dev/null +++ b/Source/Informes/1/InformeListadoRecibosProveedor.fr3 @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/1/InformeListadoRecibosProveedorDesglosado.fr3 b/Source/Informes/1/InformeListadoRecibosProveedorDesglosado.fr3 new file mode 100644 index 0000000..72c5c63 --- /dev/null +++ b/Source/Informes/1/InformeListadoRecibosProveedorDesglosado.fr3 @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/1/PedidoProveedor.rdx b/Source/Informes/1/PedidoProveedor.rdx new file mode 100644 index 0000000..ce9002f Binary files /dev/null and b/Source/Informes/1/PedidoProveedor.rdx differ diff --git a/Source/Informes/1/Presupuesto.rdx b/Source/Informes/1/Presupuesto.rdx new file mode 100644 index 0000000..4a24098 Binary files /dev/null and b/Source/Informes/1/Presupuesto.rdx differ diff --git a/Source/Informes/2/AlbaranCliente.rdx b/Source/Informes/2/AlbaranCliente.rdx new file mode 100644 index 0000000..59caa1b Binary files /dev/null and b/Source/Informes/2/AlbaranCliente.rdx differ diff --git a/Source/Informes/2/AlbaranProveedor.rdx b/Source/Informes/2/AlbaranProveedor.rdx new file mode 100644 index 0000000..54f817c Binary files /dev/null and b/Source/Informes/2/AlbaranProveedor.rdx differ diff --git a/Source/Informes/2/FacturaCliente.rdx b/Source/Informes/2/FacturaCliente.rdx new file mode 100644 index 0000000..c3fb1bb Binary files /dev/null and b/Source/Informes/2/FacturaCliente.rdx differ diff --git a/Source/Informes/2/InfAlbaranCliente.fr3 b/Source/Informes/2/InfAlbaranCliente.fr3 new file mode 100644 index 0000000..ff93322 --- /dev/null +++ b/Source/Informes/2/InfAlbaranCliente.fr3 @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/2/InfAlbaranProveedor.fr3 b/Source/Informes/2/InfAlbaranProveedor.fr3 new file mode 100644 index 0000000..392bca2 --- /dev/null +++ b/Source/Informes/2/InfAlbaranProveedor.fr3 @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/2/InfFacturaCliente.fr3 b/Source/Informes/2/InfFacturaCliente.fr3 new file mode 100644 index 0000000..00e7244 --- /dev/null +++ b/Source/Informes/2/InfFacturaCliente.fr3 @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/2/InfPedidoProveedor.fr3 b/Source/Informes/2/InfPedidoProveedor.fr3 new file mode 100644 index 0000000..08edb86 --- /dev/null +++ b/Source/Informes/2/InfPedidoProveedor.fr3 @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/2/InfPresupuestoCliente.fr3 b/Source/Informes/2/InfPresupuestoCliente.fr3 new file mode 100644 index 0000000..25e5644 --- /dev/null +++ b/Source/Informes/2/InfPresupuestoCliente.fr3 @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/2/InfReciboCliente.fr3 b/Source/Informes/2/InfReciboCliente.fr3 new file mode 100644 index 0000000..abfe86e --- /dev/null +++ b/Source/Informes/2/InfReciboCliente.fr3 @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/2/InformeIVAClientes.fr3 b/Source/Informes/2/InformeIVAClientes.fr3 new file mode 100644 index 0000000..80da615 --- /dev/null +++ b/Source/Informes/2/InformeIVAClientes.fr3 @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/2/InformeIVAClientesDesglosado.fr3 b/Source/Informes/2/InformeIVAClientesDesglosado.fr3 new file mode 100644 index 0000000..cf3e1e9 --- /dev/null +++ b/Source/Informes/2/InformeIVAClientesDesglosado.fr3 @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/2/InformeIVAProveedores.fr3 b/Source/Informes/2/InformeIVAProveedores.fr3 new file mode 100644 index 0000000..4bc1a0c --- /dev/null +++ b/Source/Informes/2/InformeIVAProveedores.fr3 @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/2/InformeIVAProveedoresDesglosado.fr3 b/Source/Informes/2/InformeIVAProveedoresDesglosado.fr3 new file mode 100644 index 0000000..ffacbd2 --- /dev/null +++ b/Source/Informes/2/InformeIVAProveedoresDesglosado.fr3 @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/2/InformeListadoFacturasCliente.fr3 b/Source/Informes/2/InformeListadoFacturasCliente.fr3 new file mode 100644 index 0000000..8f71b0f --- /dev/null +++ b/Source/Informes/2/InformeListadoFacturasCliente.fr3 @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/2/InformeListadoFacturasClienteDesglosado.fr3 b/Source/Informes/2/InformeListadoFacturasClienteDesglosado.fr3 new file mode 100644 index 0000000..59ac922 --- /dev/null +++ b/Source/Informes/2/InformeListadoFacturasClienteDesglosado.fr3 @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/2/InformeListadoFacturasClientePendientes.fr3 b/Source/Informes/2/InformeListadoFacturasClientePendientes.fr3 new file mode 100644 index 0000000..256d0bb --- /dev/null +++ b/Source/Informes/2/InformeListadoFacturasClientePendientes.fr3 @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/2/InformeListadoFacturasClientePendientesDesglosado.fr3 b/Source/Informes/2/InformeListadoFacturasClientePendientesDesglosado.fr3 new file mode 100644 index 0000000..4987383 --- /dev/null +++ b/Source/Informes/2/InformeListadoFacturasClientePendientesDesglosado.fr3 @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/2/InformeListadoFacturasProveedor.fr3 b/Source/Informes/2/InformeListadoFacturasProveedor.fr3 new file mode 100644 index 0000000..e92b6e3 --- /dev/null +++ b/Source/Informes/2/InformeListadoFacturasProveedor.fr3 @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/2/InformeListadoFacturasProveedorDesglosado.fr3 b/Source/Informes/2/InformeListadoFacturasProveedorDesglosado.fr3 new file mode 100644 index 0000000..0aae7ef --- /dev/null +++ b/Source/Informes/2/InformeListadoFacturasProveedorDesglosado.fr3 @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/2/InformeListadoFacturasProveedorPendientes.fr3 b/Source/Informes/2/InformeListadoFacturasProveedorPendientes.fr3 new file mode 100644 index 0000000..08f01fe --- /dev/null +++ b/Source/Informes/2/InformeListadoFacturasProveedorPendientes.fr3 @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/2/InformeListadoFacturasProveedorPendientesDesglosado.fr3 b/Source/Informes/2/InformeListadoFacturasProveedorPendientesDesglosado.fr3 new file mode 100644 index 0000000..e43a37b --- /dev/null +++ b/Source/Informes/2/InformeListadoFacturasProveedorPendientesDesglosado.fr3 @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/2/InformeListadoPedidos.fr3 b/Source/Informes/2/InformeListadoPedidos.fr3 new file mode 100644 index 0000000..9d97bfd --- /dev/null +++ b/Source/Informes/2/InformeListadoPedidos.fr3 @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/2/InformeListadoPedidosDesglosado.fr3 b/Source/Informes/2/InformeListadoPedidosDesglosado.fr3 new file mode 100644 index 0000000..30a76f6 --- /dev/null +++ b/Source/Informes/2/InformeListadoPedidosDesglosado.fr3 @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/2/InformeListadoPresupuestos.fr3 b/Source/Informes/2/InformeListadoPresupuestos.fr3 new file mode 100644 index 0000000..233c06d --- /dev/null +++ b/Source/Informes/2/InformeListadoPresupuestos.fr3 @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/2/InformeListadoPresupuestosDesglosado.fr3 b/Source/Informes/2/InformeListadoPresupuestosDesglosado.fr3 new file mode 100644 index 0000000..de86647 --- /dev/null +++ b/Source/Informes/2/InformeListadoPresupuestosDesglosado.fr3 @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/2/InformeListadoRecibosCliPendientes.fr3 b/Source/Informes/2/InformeListadoRecibosCliPendientes.fr3 new file mode 100644 index 0000000..191ae4b --- /dev/null +++ b/Source/Informes/2/InformeListadoRecibosCliPendientes.fr3 @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/2/InformeListadoRecibosCliPendientesDesglosado.fr3 b/Source/Informes/2/InformeListadoRecibosCliPendientesDesglosado.fr3 new file mode 100644 index 0000000..bd598f6 --- /dev/null +++ b/Source/Informes/2/InformeListadoRecibosCliPendientesDesglosado.fr3 @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/2/InformeListadoRecibosCliente.fr3 b/Source/Informes/2/InformeListadoRecibosCliente.fr3 new file mode 100644 index 0000000..e11ffda --- /dev/null +++ b/Source/Informes/2/InformeListadoRecibosCliente.fr3 @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/2/InformeListadoRecibosClienteDesglosado.fr3 b/Source/Informes/2/InformeListadoRecibosClienteDesglosado.fr3 new file mode 100644 index 0000000..bc4c287 --- /dev/null +++ b/Source/Informes/2/InformeListadoRecibosClienteDesglosado.fr3 @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/2/InformeListadoRecibosProvPendientes.fr3 b/Source/Informes/2/InformeListadoRecibosProvPendientes.fr3 new file mode 100644 index 0000000..7a0e59c --- /dev/null +++ b/Source/Informes/2/InformeListadoRecibosProvPendientes.fr3 @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/2/InformeListadoRecibosProvPendientesDesglosado.fr3 b/Source/Informes/2/InformeListadoRecibosProvPendientesDesglosado.fr3 new file mode 100644 index 0000000..5dbdb29 --- /dev/null +++ b/Source/Informes/2/InformeListadoRecibosProvPendientesDesglosado.fr3 @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/2/InformeListadoRecibosProveedor.fr3 b/Source/Informes/2/InformeListadoRecibosProveedor.fr3 new file mode 100644 index 0000000..52dcd98 --- /dev/null +++ b/Source/Informes/2/InformeListadoRecibosProveedor.fr3 @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/2/InformeListadoRecibosProveedorDesglosado.fr3 b/Source/Informes/2/InformeListadoRecibosProveedorDesglosado.fr3 new file mode 100644 index 0000000..e8abe49 --- /dev/null +++ b/Source/Informes/2/InformeListadoRecibosProveedorDesglosado.fr3 @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/2/PedidoProveedor.rdx b/Source/Informes/2/PedidoProveedor.rdx new file mode 100644 index 0000000..a90472e Binary files /dev/null and b/Source/Informes/2/PedidoProveedor.rdx differ diff --git a/Source/Informes/2/Presupuesto.rdx b/Source/Informes/2/Presupuesto.rdx new file mode 100644 index 0000000..3d6ae1d Binary files /dev/null and b/Source/Informes/2/Presupuesto.rdx differ diff --git a/Source/Informes/CertificadoTrabajos.rdx b/Source/Informes/CertificadoTrabajos.rdx new file mode 100644 index 0000000..473290a Binary files /dev/null and b/Source/Informes/CertificadoTrabajos.rdx differ diff --git a/Source/Informes/InfEtiquetasContacto.fr3 b/Source/Informes/InfEtiquetasContacto.fr3 new file mode 100644 index 0000000..f1fcad7 --- /dev/null +++ b/Source/Informes/InfEtiquetasContacto.fr3 @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/Source/Informes/InfFichaEmpleado.fr3 b/Source/Informes/InfFichaEmpleado.fr3 new file mode 100644 index 0000000..75b3433 --- /dev/null +++ b/Source/Informes/InfFichaEmpleado.fr3 @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/Marca ISO.JPG b/Source/Informes/Marca ISO.JPG new file mode 100644 index 0000000..d7dbd6f Binary files /dev/null and b/Source/Informes/Marca ISO.JPG differ diff --git a/Source/Informes/f.gif b/Source/Informes/f.gif new file mode 100644 index 0000000..7912bff Binary files /dev/null and b/Source/Informes/f.gif differ diff --git a/Source/Informes/f.jpg b/Source/Informes/f.jpg new file mode 100644 index 0000000..15d042a Binary files /dev/null and b/Source/Informes/f.jpg differ diff --git a/Source/Lib/ApplicationBase.dcp b/Source/Lib/ApplicationBase.dcp new file mode 100644 index 0000000..d3e1b3a Binary files /dev/null and b/Source/Lib/ApplicationBase.dcp differ diff --git a/Source/Lib/Base.dcp b/Source/Lib/Base.dcp new file mode 100644 index 0000000..5f73858 Binary files /dev/null and b/Source/Lib/Base.dcp differ diff --git a/Source/Lib/GUIBase.dcp b/Source/Lib/GUIBase.dcp new file mode 100644 index 0000000..5914b1d Binary files /dev/null and b/Source/Lib/GUIBase.dcp differ diff --git a/Source/Modulos/Albaranes de cliente/AlbaranesCliente_Group.bdsgroup b/Source/Modulos/Albaranes de cliente/AlbaranesCliente_Group.bdsgroup new file mode 100644 index 0000000..b3ea12a --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/AlbaranesCliente_Group.bdsgroup @@ -0,0 +1,28 @@ + + + + + + + + + + + ..\..\DataAbstract_D10\DataAbstract_D10.bdsproj + ..\..\Base\Base.bdsproj + ..\..\Base\ControllerBase\ControllerBase.bdsproj + ..\..\Base\GUIBase\GUIBase.bdsproj + ..\Contactos\Views\Contactos_view.bdsproj + ..\Articulos\Views\Articulos_view.bdsproj + Model\AlbaranesCliente_model.bdsproj + Data\AlbaranesCliente_data.bdsproj + Controller\AlbaranesCliente_controller.bdsproj + Views\AlbaranesCliente_view.bdsproj + Plugin\AlbaranesCliente_plugin.bdsproj + ..\Relaciones\Albaranes de cliente - Facturas de cliente\AlbCli_FacCli_relation.bdsproj + DataAbstract_D10.bpl Base.bpl ControllerBase.bpl GUIBase.bpl Contactos_view.bpl Articulos_view.bpl AlbaranesCliente_model.bpl AlbaranesCliente_data.bpl AlbaranesCliente_controller.bpl AlbaranesCliente_view.bpl AlbaranesCliente_plugin.bpl AlbCli_FacCli_relation.bpl + + + + diff --git a/Source/Modulos/Albaranes de cliente/AlbaranesCliente_Group.groupproj b/Source/Modulos/Albaranes de cliente/AlbaranesCliente_Group.groupproj new file mode 100644 index 0000000..322681a --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/AlbaranesCliente_Group.groupproj @@ -0,0 +1,264 @@ + + + {586839ac-ba64-4412-bacf-f6b42162c99d} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.bdsproj b/Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.bdsproj new file mode 100644 index 0000000..f731045 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + AlbaranesCliente_controller.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.dcu b/Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.dcu new file mode 100644 index 0000000..7021cd4 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.dpk b/Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.dpk new file mode 100644 index 0000000..b1f2cc6 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.dpk differ diff --git a/Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.dproj b/Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.dproj new file mode 100644 index 0000000..06a7230 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.dproj @@ -0,0 +1,551 @@ + + + {7ed85635-c723-4c0b-bf1d-f719e0ea33ad} + AlbaranesCliente_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\AlbaranesCliente_controller.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0AlbaranesCliente_controller.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.drc b/Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.drc new file mode 100644 index 0000000..5612946 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.drc @@ -0,0 +1,16 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Albaranes de cliente\Controller\AlbaranesCliente_controller.res */ +/* c:\temp\dtf1A1.tmp */ diff --git a/Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.rc b/Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.res b/Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.res differ diff --git a/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranCliente.dcu b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranCliente.dcu new file mode 100644 index 0000000..83e2171 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranCliente.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranCliente.pas b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranCliente.pas new file mode 100644 index 0000000..a358f1a --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranCliente.pas @@ -0,0 +1,23 @@ +unit uIEditorAlbaranCliente; + +interface + +uses + uEditorDBItem, uBizAlbaranesCliente, uAlbaranesClienteController; + +type + IEditorAlbaranCliente = interface(IEditorDBItem) + ['{244C8E63-7BA2-4C8E-A2B8-4ECCEFDB5196}'] + function GetController : IAlbaranesClienteController; + procedure SetController (const Value : IAlbaranesClienteController); + property Controller : IAlbaranesClienteController read GetController + write SetController; + + function GetAlbaran: IBizAlbaranCliente; + procedure SetAlbaran(const Value: IBizAlbaranCliente); + property Albaran: IBizAlbaranCliente read GetAlbaran write SetAlbaran; + end; + +implementation + +end. diff --git a/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranDevCliente.dcu b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranDevCliente.dcu new file mode 100644 index 0000000..08c4603 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranDevCliente.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranDevCliente.pas b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranDevCliente.pas new file mode 100644 index 0000000..94f1dc4 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranDevCliente.pas @@ -0,0 +1,15 @@ +unit uIEditorAlbaranDevCliente; + +interface + +uses + uEditorDBItem, uIEditorAlbaranCliente; + +type + IEditorAlbaranDevCliente = interface(IEditorAlbaranCliente) + ['{244C8E63-7BA2-4C8E-A2B8-4ECCEFDB5196}'] + end; + +implementation + +end. diff --git a/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranesCliente.dcu b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranesCliente.dcu new file mode 100644 index 0000000..6ab7d34 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranesCliente.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranesCliente.pas b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranesCliente.pas new file mode 100644 index 0000000..6665039 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranesCliente.pas @@ -0,0 +1,23 @@ +unit uIEditorAlbaranesCliente; + +interface + +uses + uEditorGridBase, uBizAlbaranesCliente, uAlbaranesClienteController; + +type + IEditorAlbaranesCliente = interface(IEditorGridBase) + ['{8480E9B5-EE5B-456C-BBF1-BCE637CE6631}'] + function GetAlbaranes: IBizAlbaranCliente; + procedure SetAlbaranes(const Value: IBizAlbaranCliente); + property Albaranes: IBizAlbaranCliente read GetAlbaranes write SetAlbaranes; + + function GetController : IAlbaranesClienteController; + procedure SetController (const Value : IAlbaranesClienteController); + property Controller : IAlbaranesClienteController read GetController write SetController; + end; + + +implementation + +end. diff --git a/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranesClientePreview.dcu b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranesClientePreview.dcu new file mode 100644 index 0000000..8c82920 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranesClientePreview.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranesClientePreview.pas b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranesClientePreview.pas new file mode 100644 index 0000000..310583f --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranesClientePreview.pas @@ -0,0 +1,16 @@ +unit uIEditorAlbaranesClientePreview; + +interface + +uses + uEditorPreview; + +type + IEditorAlbaranesClientePreview = interface(IEditorPreview) + ['{F58BF987-28EB-485A-B953-55BDEEBE2C91}'] + end; + + +implementation + +end. diff --git a/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranesDevCliente.dcu b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranesDevCliente.dcu new file mode 100644 index 0000000..1299663 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranesDevCliente.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranesDevCliente.pas b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranesDevCliente.pas new file mode 100644 index 0000000..5ebc263 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranesDevCliente.pas @@ -0,0 +1,16 @@ +unit uIEditorAlbaranesDevCliente; + +interface + +uses + uEditorGridBase, uIEditorAlbaranesCliente; + +type + IEditorAlbaranesDevCliente = interface(IEditorAlbaranesCliente) + ['{8480E9B5-EE5B-456C-BBF1-BCE637CE6631}'] + end; + + +implementation + +end. diff --git a/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorDireccionEntregaAlbaranCliente.dcu b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorDireccionEntregaAlbaranCliente.dcu new file mode 100644 index 0000000..c00df66 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorDireccionEntregaAlbaranCliente.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorDireccionEntregaAlbaranCliente.pas b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorDireccionEntregaAlbaranCliente.pas new file mode 100644 index 0000000..0248bd1 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorDireccionEntregaAlbaranCliente.pas @@ -0,0 +1,22 @@ +unit uIEditorDireccionEntregaAlbaranCliente; + +interface + +uses + uBizAlbaranesCliente; + +type + IEditorDireccionEntregaAlbaranCliente = interface + ['{A3485DEA-251B-4A84-BAE6-BF70B565E329}'] + function GetAlbaran: IBizAlbaranCliente; + procedure SetAlbaran(const Value: IBizAlbaranCliente); + property Albaran: IBizAlbaranCliente read GetAlbaran write SetAlbaran; + + function ShowModal : Integer; + procedure Release; + end; + + +implementation + +end. diff --git a/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorElegirAlbaranesCliente.dcu b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorElegirAlbaranesCliente.dcu new file mode 100644 index 0000000..c2ea11a Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorElegirAlbaranesCliente.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorElegirAlbaranesCliente.pas b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorElegirAlbaranesCliente.pas new file mode 100644 index 0000000..063cb99 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorElegirAlbaranesCliente.pas @@ -0,0 +1,22 @@ +unit uIEditorElegirAlbaranesCliente; + +interface + +uses + uIEditorAlbaranesCliente, uBizAlbaranesCliente, uGUIBase; + +type + IEditorElegirAlbaranesCliente = interface(IEditorAlbaranesCliente) + ['{1EBFAE75-2F17-4278-90F9-FCB45B9537B6}'] + function GetAlbaranesClienteSeleccionados: IBizAlbaranCliente; + property AlbaranesClienteSeleccionados: IBizAlbaranCliente read GetAlbaranesClienteSeleccionados; + + procedure SetMensaje (const AValue: String); + function GetMensaje: String; + property Mensaje : String read GetMensaje write SetMensaje; + end; + + +implementation + +end. diff --git a/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorElegirArticulosAlbaranesCliente.dcu b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorElegirArticulosAlbaranesCliente.dcu new file mode 100644 index 0000000..4c935a5 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorElegirArticulosAlbaranesCliente.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorElegirArticulosAlbaranesCliente.pas b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorElegirArticulosAlbaranesCliente.pas new file mode 100644 index 0000000..09301a4 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Controller/View/uIEditorElegirArticulosAlbaranesCliente.pas @@ -0,0 +1,16 @@ +unit uIEditorElegirArticulosAlbaranesCliente; + +interface + +uses + uIEditorElegirArticulos; + +type + IEditorElegirArticulosAlbaranesCliente = interface(IEditorElegirArticulos) + ['{ECE0512E-9D55-4AFE-91E2-A6F6A38A87D2}'] + end; + + +implementation + +end. diff --git a/Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteController.dcu b/Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteController.dcu new file mode 100644 index 0000000..d63295f Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteController.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteController.pas b/Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteController.pas new file mode 100644 index 0000000..42c957f --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteController.pas @@ -0,0 +1,1174 @@ +unit uAlbaranesClienteController; + +interface + + +uses + Classes, SysUtils, uDADataTable, uEditorDBItem, + uControllerBase, uIDataModuleAlbaranesCliente, uClientesController, + uDetallesAlbaranClienteController, uBizAlbaranesCliente, uBizDireccionesContacto; + +type + IAlbaranesClienteController = interface(IControllerBase) + ['{E83F4950-400E-446B-8EB0-1609FF8FEA77}'] + function GetClienteController: IClientesController; + procedure SetClienteController(const Value: IClientesController); + property ClienteController: IClientesController read GetClienteController write SetClienteController; + + function GetDetallesController: IDetallesAlbaranClienteController; + procedure SetDetallesController(const Value: IDetallesAlbaranClienteController); + property DetallesController: IDetallesAlbaranClienteController read GetDetallesController write SetDetallesController; + + function Buscar(const ID: Integer): IBizAlbaranCliente; + function BuscarTodos: IBizAlbaranCliente; overload; + function BuscarTodos(const ID_Cliente: Integer): IBizAlbaranCliente; overload; + function BuscarAlbaranesNormales: IBizAlbaranCliente; + function BuscarAlbaranesDevolucion: IBizAlbaranCliente; + function BuscarPendientes : IBizAlbaranCliente; + function BuscarSinFacturar : IBizAlbaranCliente; + procedure Ver(AAlbaran : IBizAlbaranCliente); + procedure VerTodosAlbaranes(AAlbarans: IBizAlbaranCliente; + const AVerModal : Boolean = False; const AWindowCaption: String = ''; + const AHeaderText: String = ''); + procedure VerTodosAlbaranesDev(AAlbarans: IBizAlbaranCliente; + const AVerModal : Boolean = False; const AWindowCaption: String = ''; + const AHeaderText: String = ''); + procedure VerDireccionEntrega(AAlbaran : IBizAlbaranCliente); + function Nuevo(withInsert: Boolean = True): IBizAlbaranCliente; + function Anadir(AAlbaran : IBizAlbaranCliente): Boolean; overload; + function AnadirAlbaranDev(AAlbaran : IBizAlbaranCliente) : Boolean; + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(AAlbaran : IBizAlbaranCliente; AllItems: Boolean = false): Boolean; overload; + function Guardar(AAlbaran : IBizAlbaranCliente): Boolean; + procedure DescartarCambios(AAlbaran : IBizAlbaranCliente); + function Existe(const ID: Integer) : Boolean; + function Duplicar(AAlbaran: IBizAlbaranCliente): IBizAlbaranCliente; + + function ExtraerSeleccionados(AAlbaran: IBizAlbaranCliente) : IBizAlbaranCliente; + function ElegirAlbaranes(AAlbaran: IBizAlbaranCliente; AMensaje: String; AMultiSelect: Boolean): IBizAlbaranCliente; + + procedure Preview(AAlbaran : IBizAlbaranCliente; AllItems: Boolean = false); + procedure Print(AAlbaran : IBizAlbaranCliente; AllItems: Boolean = false); + procedure EtiquetasPreview(AAlbaran : IBizAlbaranCliente; Const withRefCliente: Boolean); + procedure EtiquetasPrint(AAlbaran : IBizAlbaranCliente; Const withRefCliente: Boolean); + + procedure RecalcularImportes(AAlbaran: IBizAlbaranCliente); + function EsModificable(AAlbaran: IBizAlbaranCliente): Boolean; + function EsEliminable(AAlbaran: IBizAlbaranCliente): Boolean; + + procedure CopiarDireccionEnvio (const ADireccionEnvio: IBizDireccionesContacto; + AAlbaran: IBizAlbaranCliente); + procedure QuitarDireccionEnvio(AAlbaran: IBizAlbaranCliente); + procedure EnviarAlbaranPorEMail(AAlbaran : IBizAlbaranCliente); + procedure RecuperarCliente(AAlbaran: IBizAlbaranCliente); + function CambiarSituacion(AAlbaran : IBizAlbaranCliente; + ANuevaSituacion: String; AFechaEnvio : TDateTime = 0; + AFechaRecibido : TDateTime = 0; + DoPost: Boolean = True) : Boolean; + + function DarListaAnosAlbaranes: TStringList; + procedure FiltrarAno(AAlbaran: IBizAlbaranCliente; ADynWhereDataTable: WideString; const Ano: String); + end; + + TAlbaranesClienteController = class(TControllerBase, IAlbaranesClienteController) + protected + FDataModule : IDataModuleAlbaranesCliente; + FClienteController : IClientesController; + FDetallesController : IDetallesAlbaranClienteController; + + function GetClienteController: IClientesController; + procedure SetClienteController(const Value: IClientesController); + function GetDetallesController: IDetallesAlbaranClienteController; + procedure SetDetallesController(const Value: IDetallesAlbaranClienteController); + + //Estos son los tres mtodos a sobre escribir si se desea heredar toda la logica de + //este controller + procedure AsignarDataModule; virtual; + procedure RecuperarObjetos(AAlbaran: IBizAlbaranCliente); virtual; + + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; + procedure FiltrarEmpresa(AAlbaran: IBizAlbaranCliente); + function _Vacio : IBizAlbaranCliente; + function ValidarAlbaran(AAlbaran: IBizAlbaranCliente): Boolean; + function ValidarSituacion(ASituacion: String; + AFechaAlbaran : TDateTime; + var AFechaEnvio : TDateTime; + var AFechaRecibido : TDateTime) : Boolean; + + public + property ClienteController: IClientesController read GetClienteController write SetClienteController; + property DetallesController: IDetallesAlbaranClienteController read GetDetallesController write SetDetallesController; + + constructor Create; override; + destructor Destroy; override; + + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(AAlbaran : IBizAlbaranCliente; AllItems: Boolean = false): Boolean; overload; + function Guardar(AAlbaran : IBizAlbaranCliente): Boolean; + procedure DescartarCambios(AAlbaran : IBizAlbaranCliente); virtual; + function Existe(const ID: Integer) : Boolean; virtual; + function Anadir(AAlbaran : IBizAlbaranCliente): Boolean; overload; + function AnadirAlbaranDev(AAlbaran : IBizAlbaranCliente) : Boolean; + function Buscar(const ID: Integer): IBizAlbaranCliente; + function BuscarTodos: IBizAlbaranCliente; overload; + function BuscarTodos(const ID_Cliente: Integer): IBizAlbaranCliente; overload; + function BuscarAlbaranesNormales: IBizAlbaranCliente; + function BuscarAlbaranesDevolucion: IBizAlbaranCliente; + + function BuscarPendientes : IBizAlbaranCliente; + function BuscarSinFacturar : IBizAlbaranCliente; + function Nuevo (withInsert: Boolean = True) : IBizAlbaranCliente; + procedure Ver(AAlbaran : IBizAlbaranCliente); + procedure VerTodosAlbaranes(AAlbarans: IBizAlbaranCliente; + const AVerModal : Boolean = False; const AWindowCaption: String = ''; + const AHeaderText: String = ''); + procedure VerTodosAlbaranesDev(AAlbarans: IBizAlbaranCliente; + const AVerModal : Boolean = False; const AWindowCaption: String = ''; + const AHeaderText: String = ''); + procedure VerDireccionEntrega(AAlbaran : IBizAlbaranCliente); + function Duplicar(AAlbaran: IBizAlbaranCliente): IBizAlbaranCliente; + procedure CopiarDireccionEnvio (const ADireccionEnvio: IBizDireccionesContacto; + AAlbaran: IBizAlbaranCliente); + + procedure QuitarDireccionEnvio(AAlbaran: IBizAlbaranCliente); + function ExtraerSeleccionados(AAlbaran: IBizAlbaranCliente) : IBizAlbaranCliente; + function ElegirAlbaranes(AAlbaran: IBizAlbaranCliente; AMensaje: String; AMultiSelect: Boolean): IBizAlbaranCliente; + + procedure RecuperarCliente(AAlbaran : IBizAlbaranCliente); + + procedure RecalcularImportes(AAlbaran: IBizAlbaranCliente); + function EsModificable(AAlbaran: IBizAlbaranCliente): Boolean; + function EsEliminable(AAlbaran: IBizAlbaranCliente): Boolean; + + procedure EnviarAlbaranPorEMail(AAlbaran : IBizAlbaranCliente); + function CambiarSituacion(AAlbaran : IBizAlbaranCliente; + ANuevaSituacion: String; AFechaEnvio : TDateTime = 0; + AFechaRecibido : TDateTime = 0; + DoPost: Boolean = True) : Boolean; + + procedure Preview(AAlbaran : IBizAlbaranCliente; AllItems: Boolean = false); + procedure Print(AAlbaran : IBizAlbaranCliente; AllItems: Boolean = false); + procedure EtiquetasPreview(AAlbaran : IBizAlbaranCliente; Const withRefCliente: Boolean); + procedure EtiquetasPrint(AAlbaran : IBizAlbaranCliente; Const withRefCliente: Boolean); + + function DarListaAnosAlbaranes: TStringList; + procedure FiltrarAno(AAlbaran: IBizAlbaranCliente; ADynWhereDataTable: WideString; const Ano: String); + end; + +implementation + +uses + uROTypes, Controls, cxControls, DB, uEditorRegistryUtils, uEditorPreview, DateUtils, + uIEditorAlbaranesCliente, uIEditorAlbaranesDevCliente, uIEditorAlbaranDevCliente, + uDataModuleAlbaranesCliente, Variants, uBizDetallesAlbaranCliente, + uBizContactos, uDataTableUtils, uDataModuleUsuarios, uFactuGES_App, + schAlbaranesClienteClient_Intf, uDAInterfaces, uDateUtils, uIEditorAlbaranCliente, + uIEditorElegirAlbaranesCliente, uIEditorDireccionEntregaAlbaranCliente, + schContactosClient_Intf, uAlbaranesClienteReportController, uControllerDetallesBase, + +// Pedidos no estar en TECSITEL +// uPedidosClienteController, uBizPedidosCliente, uBizDetallesPedidoCliente, schPedidosClienteClient_Intf, + + uDialogUtils, Windows, Forms, Dialogs, uGUIBase, uIntegerListUtils, + uSistemaFunc, uEMailUtils, uDialogElegirEMail, uStringsUtils; + + + +{ TAlbaranesClienteController } + +function TAlbaranesClienteController.Anadir(AAlbaran: IBizAlbaranCliente): Boolean; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado (Anadir)'); + + if not AAlbaran.DataTable.Active then + AAlbaran.DataTable.Active := True; + + AAlbaran.Insert; + Result := True; +end; + +function TAlbaranesClienteController.AnadirAlbaranDev(AAlbaran: IBizAlbaranCliente): Boolean; +begin + Result := Anadir(AAlbaran); + AAlbaran.TIPO := CTE_TIPO_ALBARAN_DEV; +end; + +procedure TAlbaranesClienteController.AsignarDataModule; +begin + FDataModule := TDataModuleAlbaranesCliente.Create(Nil); +end; + +function TAlbaranesClienteController.Buscar(const ID: Integer): IBizAlbaranCliente; +begin + Result := FDataModule.GetItem(ID); + FiltrarEmpresa(Result); +end; + +function TAlbaranesClienteController.BuscarAlbaranesDevolucion: IBizAlbaranCliente; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + + with Result.DataTable.DynamicWhere do + begin + // (TIPO = Devolucion) + Condicion := NewBinaryExpression(NewField('', fld_AlbaranesClienteTIPO), NewConstant(CTE_TIPO_ALBARAN_DEV, datString), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TAlbaranesClienteController.BuscarAlbaranesNormales: IBizAlbaranCliente; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + + with Result.DataTable.DynamicWhere do + begin + // (TIPO >= ALBARAN) + Condicion := NewBinaryExpression(NewField('', fld_AlbaranesClienteTIPO), NewConstant(CTE_TIPO_ALBARAN, datString), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TAlbaranesClienteController.BuscarTodos: IBizAlbaranCliente; +begin + Result := FDataModule.GetItems; + FiltrarEmpresa(Result); +end; + +function TAlbaranesClienteController.BuscarPendientes: IBizAlbaranCliente; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarAlbaranesNormales; + + with Result.DataTable.DynamicWhere do + begin + // (SITUACION = SERVIDO) + Condicion := NewBinaryExpression(NewField('', fld_AlbaranesClienteSITUACION), NewConstant(SITUACION_ALBARAN_SERVIDO, datString), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TAlbaranesClienteController.BuscarSinFacturar: IBizAlbaranCliente; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarAlbaranesNormales; + + with Result.DataTable.DynamicWhere do + begin + // (ID_FACTURA = NULL) + Condicion := NewBinaryExpression(NewField('', fld_AlbaranesClienteID_FACTURA), NewNull(), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TAlbaranesClienteController.BuscarTodos( + const ID_Cliente: Integer): IBizAlbaranCliente; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + + with Result.DataTable.DynamicWhere do + begin + // ID_CLIENTE + Condicion := NewBinaryExpression(NewField('', fld_AlbaranesClienteID_CLIENTE), NewConstant(ID_Cliente, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + finally + HideHourglassCursor; + end; +end; + +function TAlbaranesClienteController.CambiarSituacion( + AAlbaran: IBizAlbaranCliente; ANuevaSituacion: String; AFechaEnvio, + AFechaRecibido: TDateTime; DoPost: Boolean): Boolean; +begin + Result := False; + + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado (CambiarSituacion)'); + + if not AAlbaran.DataTable.Active then + AAlbaran.DataTable.Active := True; + + // Validar la situacin del albarn + if ValidarSituacion(ANuevaSituacion, AAlbaran.FECHA_ALBARAN, AFechaEnvio, AFechaRecibido) then + begin + ShowHourglassCursor; + AAlbaran.DataTable.DisableControls; + try + AAlbaran.Edit; + AAlbaran.SITUACION := ANuevaSituacion; + AAlbaran.FECHA_ENVIO := AFechaEnvio; + AAlbaran.FECHA_RECEPCION := AFechaRecibido; + AAlbaran.Post; + if DoPost then + Guardar(AAlbaran); + Result := True; + finally + AAlbaran.DataTable.EnableControls; + HideHourglassCursor; + end; + end; +end; + +procedure TAlbaranesClienteController.CopiarDireccionEnvio( + const ADireccionEnvio: IBizDireccionesContacto; AAlbaran: IBizAlbaranCliente); +var + bEnEdicion : Boolean; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albaran no asignado (CopiarDireccionEnvio)'); + + if not Assigned(ADireccionEnvio) then + raise Exception.Create ('No se ha indicado la direccin (CopiarDireccionEnvio)'); + + if AAlbaran.DataTable.Active then + AAlbaran.DataTable.Active := True; + + if ADireccionEnvio.DataTable.Active then + ADireccionEnvio.DataTable.Active := True; + + + bEnEdicion := (AAlbaran.DataTable.State in dsEditModes); + if not bEnEdicion then + AAlbaran.Edit; + + ShowHourglassCursor; + AAlbaran.Edit; + try + AAlbaran.CALLE := ADireccionEnvio.CALLE; + AAlbaran.POBLACION := ADireccionEnvio.POBLACION; + AAlbaran.CODIGO_POSTAL := ADireccionEnvio.CODIGO_POSTAL; + AAlbaran.PROVINCIA := ADireccionEnvio.PROVINCIA; + AAlbaran.TELEFONO := ADireccionEnvio.TELEFONO; + AAlbaran.PERSONA_CONTACTO := ADireccionEnvio.PERSONA_CONTACTO; + + if not bEnEdicion then + AAlbaran.Post; + finally + HideHourglassCursor; + end; +end; + +constructor TAlbaranesClienteController.Create; +begin + inherited; + AsignarDataModule; + + FClienteController := TClientesController.Create; + FDetallesController := TDetallesAlbaranClienteController.Create; + FDetallesController.addObservador(Self); +end; + +function TAlbaranesClienteController.CreateEditor(const AName: String; + const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + +function TAlbaranesClienteController.DarListaAnosAlbaranes: TStringList; +begin + Result := FDataModule.GetAnosItems; +end; + +procedure TAlbaranesClienteController.DescartarCambios(AAlbaran: IBizAlbaranCliente); +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado'); + + ShowHourglassCursor; + try + if (AAlbaran.State in dsEditModes) then + AAlbaran.Cancel; + + AAlbaran.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TAlbaranesClienteController.Destroy; +begin + FDataModule := Nil; + FClienteController := Nil; + FDetallesController := Nil; + inherited; +end; + +function TAlbaranesClienteController.Duplicar(AAlbaran: IBizAlbaranCliente): IBizAlbaranCliente; +begin + Result := Self._Vacio; + ShowHourglassCursor; + try + DuplicarRegistros(AAlbaran.DataTable, Result.DataTable, mdrActual); + DuplicarRegistros(AAlbaran.Detalles.DataTable, Result.Detalles.DataTable, mdrTodos); + + // Hay que dejar algunos campos como si fuera un presupuesto nuevo + Result.Edit; + with Result do + begin + ID_EMPRESA := AppFactuGES.EmpresaActiva.ID; + USUARIO := AppFactuGES.UsuarioActivo.UserName; + FECHA_ALBARAN := DateOf(Now); + INCIDENCIAS_ACTIVAS := 0; +// INCIDENCIAS := Nil; + REFERENCIA := ''; + FECHA_PREVISTA_ENVIO := 0; + FECHA_ENVIO := 0; + FECHA_RECEPCION := 0; + ID_FACTURA := 0; + ID_PEDIDO := 0; + end; + Result.Post; + finally + HideHourglassCursor; + end; +end; + +function TAlbaranesClienteController.ValidarAlbaran( + AAlbaran: IBizAlbaranCliente): Boolean; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado'); + + if (AAlbaran.DataTable.State in dsEditModes) then + AAlbaran.DataTable.Post; + + //Tambien hacemos post de sus tablas hija + if (AAlbaran.Detalles.DataTable.State in dsEditModes) then + AAlbaran.Detalles.DataTable.Post; + + if (AAlbaran.ID_Cliente <= 0) then + // Si hay altas automticas no hay objeto Cliente pero s hay ID_CLIENTE +{ (not Assigned(AAlbaran.Cliente)) or + (AAlbaran.Cliente.IsEmpty) then} + raise Exception.Create('Debe indicar el cliente de este albarn'); + + if (EsFechaVacia(AAlbaran.FECHA_ALBARAN)) then + raise Exception.Create('Debe indicar la fecha de este albarn'); + + if (AAlbaran.Detalles.DataTable.RecordCount = 0) then + raise Exception.Create('El albarn debe tener en su contenido al menos un concepto'); + + //En caso de ser un Albarn no podra tener un importe total negativo + if (AAlbaran.TIPO = CTE_TIPO_ALBARAN) then + if (AAlbaran.IMPORTE_TOTAL < 0) then + raise Exception.Create('Un albarn no puede tener un importe total negativo'); + + //En caso de ser una orden de devolucin no podra tener un importe total positivo + if (AAlbaran.TIPO = CTE_TIPO_ALBARAN_DEV) then + begin + if (AAlbaran.IMPORTE_TOTAL > 0) then + raise Exception.Create('Una orden de devolucin no puede tener un importe total positivo'); + + //Una orden de devolucin debe tener relleno el almacn de entrada de material +// if (AAlbaran.ID_ALMACEN < 0) or (AAlbaran.ID_ALMACEN = 0) then +// raise Exception.Create('Debe indicar el almacn de entrada de esta orden de devolucin'); + + //Ponemos la fecha del albaran de devolucin como fecha de envio para que se contabilice segn dicha fecha + AAlbaran.Edit; + AAlbaran.FECHA_ENVIO := AAlbaran.FECHA_ALBARAN; + AAlbaran.Post; + end; + + //Validamos las fechas del albarn +// if not (EsFechaVacia(AAlbaran.FECHA_ENVIO)) then +// if AAlbaran.FECHA_ENVIO < AAlbaran.FECHA_PREVISTA_ENVIO then +// raise Exception.Create('La fecha de envio debe ser posterior a la fecha prevista de envio'); + + if not (EsFechaVacia(AAlbaran.FECHA_RECEPCION)) then + if AAlbaran.FECHA_RECEPCION < AAlbaran.FECHA_ENVIO then + raise Exception.Create('La fecha de recepcion debe ser posterior a la fecha de envio'); + + { Asegurarse de valores en campos "automticos" tanto + en MODIFICACIN como en INSERCIN. } + AAlbaran.Edit; + try + AAlbaran.USUARIO := AppFactuGES.UsuarioActivo.UserName; + +// Lo quitamos temporalmente si no hay mas fallos de cambio de cliente se quita en todos los sitios +// if Assigned(AAlbaran.Cliente) +// and (AAlbaran.ID_CLIENTE <> AAlbaran.Cliente.ID) then +// AAlbaran.ID_CLIENTE := AAlbaran.Cliente.ID; + + Result := True; + finally + AAlbaran.Post; + end; +end; + +function TAlbaranesClienteController.ValidarSituacion(ASituacion: String; + AFechaAlbaran: TDateTime; var AFechaEnvio, + AFechaRecibido: TDateTime): Boolean; +begin + if ASituacion = SITUACION_ALBARAN_PENDIENTE then + begin + AFechaEnvio := 0; + AFechaRecibido := 0 + end + else begin + if (ASituacion = SITUACION_ALBARAN_ENVIADO) then + begin + AFechaRecibido := 0; + if (EsFechaVacia(AFechaEnvio)) then + raise Exception.Create('Hay que indicar la fecha de envo del albarn') + end; + if (ASituacion = SITUACION_ALBARAN_SERVIDO) then + begin + if (EsFechaVacia(AFechaEnvio)) then + raise Exception.Create('Hay que indicar la fecha de envo del albarn'); + if (EsFechaVacia(AFechaRecibido)) then + raise Exception.Create('Hay que indicar la fecha de recepcin del albarn'); + if (AFechaRecibido < AFechaEnvio) then + raise Exception.Create('La fecha de recepcin y firma del albarn por parte ' + + 'del cliente no puede ser anterior a la fecha de envio del material del albarn'); + end; + end; + Result := True; +end; + +procedure TAlbaranesClienteController.Ver(AAlbaran: IBizAlbaranCliente); +var + AEditor : IEditorAlbaranCliente; +begin + AEditor := NIL; + RecuperarObjetos(AAlbaran); + + if (AAlbaran.TIPO = CTE_TIPO_ALBARAN) then + CreateEditor('EditorAlbaranCliente', IEditorAlbaranCliente, AEditor) + else + CreateEditor('EditorAlbaranDevCliente', IEditorAlbaranDevCliente, AEditor); + + if Assigned(AEditor) then + try + //MODO CONSULTAR + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.Albaran := AAlbaran; + + if not EsModificable(AAlbaran) then + begin + SetDataTableReadOnly(AAlbaran.DataTable, True); + AEditor.ReadOnly := True; + end; + + AEditor.ShowModal; + + //MODO CONSULTAR (Se deja la tabla como estaba) + if AEditor.ReadOnly then + SetDataTableReadOnly(AAlbaran.DataTable, False); + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +procedure TAlbaranesClienteController.VerDireccionEntrega( + AAlbaran: IBizAlbaranCliente); +var + AEditor : IEditorDireccionEntregaAlbaranCliente; +begin + AEditor := NIL; + + //RecuperarObjetos(AAlbaran); <- No descomentar. No hace falta + CreateEditor('EditorDireccionEntregaAlbaranCliente', IEditorDireccionEntregaAlbaranCliente, AEditor); + if Assigned(AEditor) then + try + AEditor.Albaran := AAlbaran; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +procedure TAlbaranesClienteController.VerTodosAlbaranes(AAlbarans: IBizAlbaranCliente; + const AVerModal : Boolean = False; const AWindowCaption: String = ''; + const AHeaderText: String = ''); +var + AEditor : IEditorAlbaranesCliente; +begin + AEditor := NIL; + CreateEditor('EditorAlbaranesCliente', IEditorAlbaranesCliente, AEditor); + if Assigned(AEditor) then + try + if not EsCadenaVacia(AWindowCaption) then + AEditor.WindowCaption := AWindowCaption; + + if not EsCadenaVacia(AHeaderText) then + AEditor.HeaderText := AHeaderText; + + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.Albaranes := AAlbarans; + AEditor.MultiSelect := True; + + if AVerModal then + AEditor.ShowModal + else + AEditor.ShowEmbedded; + finally + if AVerModal then + AEditor.Release; + AEditor := NIL; + end; +end; + +procedure TAlbaranesClienteController.VerTodosAlbaranesDev(AAlbarans: IBizAlbaranCliente; + const AVerModal : Boolean = False; const AWindowCaption: String = ''; + const AHeaderText: String = ''); +var + AEditor : IEditorAlbaranesDevCliente; +begin + AEditor := NIL; + CreateEditor('EditorAlbaranesDevCliente', IEditorAlbaranesDevCliente, AEditor); + if Assigned(AEditor) then + try + if not EsCadenaVacia(AWindowCaption) then + AEditor.WindowCaption := AWindowCaption; + + if not EsCadenaVacia(AHeaderText) then + AEditor.HeaderText := AHeaderText; + + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.Albaranes := AAlbarans; + AEditor.MultiSelect := True; + + if AVerModal then + AEditor.ShowModal + else + AEditor.ShowEmbedded; + finally + if AVerModal then + AEditor.Release; + AEditor := NIL; + end; +end; + +function TAlbaranesClienteController._Vacio: IBizAlbaranCliente; +begin + Result := Buscar(ID_NULO); +end; + +function TAlbaranesClienteController.Eliminar(const ID: Integer): Boolean; +var + AAlbaran : IBizAlbaranCliente; +begin + AAlbaran := Buscar(ID); + + if not Assigned(AAlbaran) then + raise Exception.Create(Format('No se ha encontrado el albarn con ID = %d', [ID])); + + Result := Eliminar(AAlbaran); + AAlbaran := NIL; +end; + +function TAlbaranesClienteController.ElegirAlbaranes(AAlbaran: IBizAlbaranCliente; AMensaje: String; AMultiSelect: Boolean): IBizAlbaranCliente; +var + AEditor : IEditorElegirAlbaranesCliente; +begin + Result := NIL; + CreateEditor('EditorElegirAlbaranesCliente', IEditorElegirAlbaranesCliente, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; + AEditor.Albaranes := AAlbaran; + AEditor.MultiSelect := AMultiSelect; + AEditor.Mensaje := AMensaje; + if IsPositiveResult(AEditor.ShowModal) then + Result := AEditor.AlbaranesClienteSeleccionados; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +function TAlbaranesClienteController.Eliminar(AAlbaran: IBizAlbaranCliente; AllItems: Boolean = false): Boolean; +//En el caso de eliminar almenos un elemento del conjunto se devuelve true +var + bEliminado: Boolean; + +begin + bEliminado := False; + + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignada'); + + ShowHourglassCursor; + try + if (AAlbaran.State in dsEditModes) then + AAlbaran.Cancel; + + //Siempre eliminaremos el seleccionado + if EsEliminable(AAlbaran) then + begin + AAlbaran.Delete; + bEliminado := True; + end; + + //En el caso de querer eliminar todos los items del objeto AAlbaran + if AllItems then + begin + with AAlbaran.DataTable do + begin + First; + while not EOF do + begin + if EsEliminable(AAlbaran) then + begin + AAlbaran.Delete; + bEliminado := True + end + else Next; + end; + end; + end; + + if bEliminado then + begin + AAlbaran.DataTable.ApplyUpdates; + Result := True; + end + else + Result := False; + + finally + HideHourglassCursor; + end; +end; + +procedure TAlbaranesClienteController.EnviarAlbaranPorEMail( + AAlbaran: IBizAlbaranCliente); +var + AReportController : IAlbaranesClienteReportController; + AFicheroTMP : TFileName; + AEMail : String; + AListaEmail : TStringList; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado (EnviarAlbaranPorEMail)'); + + if AAlbaran.DataTable.Active then + AAlbaran.DataTable.Active := True; + + AFicheroTMP := DarFicheroPDFTemporal(EscapeIllegalChars(AAlbaran.REFERENCIA)); + + AListaEmail := TStringList.Create; + try + RecuperarCliente(AAlbaran); + AAlbaran.Cliente.DataTable.Active := True; + + if not AAlbaran.Cliente.EMAIL_1IsNull then + AListaEmail.Add(AAlbaran.Cliente.EMAIL_1); + if not AAlbaran.Cliente.EMAIL_2IsNull then + AListaEmail.Add(AAlbaran.Cliente.EMAIL_2); + + if not ElegirEMail(AListaEmail, AEMail) then + Exit; + finally + FreeANDNIL(AListaEmail); + end; + + ShowHourglassCursor; + AReportController := TAlbaranesClienteReportController.Create; + try + AReportController.ExportToPDF(AAlbaran.ID, AFicheroTMP); + EnviarEMailMAPI('Albarn ' + AAlbaran.REFERENCIA, '', AFicheroTMP, '', '', AAlbaran.Cliente.NOMBRE, AEMail); + finally + SysUtils.DeleteFile(AFicheroTMP); + AReportController := NIL; + HideHourglassCursor; + end; +end; + + +function TAlbaranesClienteController.EsEliminable(AAlbaran: IBizAlbaranCliente): Boolean; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado: EsModificable'); + + Result := EsModificable(AAlbaran); + + if AAlbaran.TIPO = CTE_TIPO_ALBARAN then + Result := Result and (AAlbaran.SITUACION = SITUACION_ALBARAN_PENDIENTE); +end; + +function TAlbaranesClienteController.EsModificable(AAlbaran: IBizAlbaranCliente): Boolean; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado: EsModificable'); + + Result := not (AAlbaran.ID_FACTURA > 0); +end; + +procedure TAlbaranesClienteController.EtiquetasPreview(AAlbaran: IBizAlbaranCliente; Const withRefCliente: Boolean); +var + AReportController : IAlbaranesClienteReportController; +begin + AReportController := TAlbaranesClienteReportController.Create; + try + AReportController.EtiquetasPreview(AAlbaran.ID, withRefCliente); + finally + AReportController := NIL; + end; +end; + +procedure TAlbaranesClienteController.EtiquetasPrint(AAlbaran: IBizAlbaranCliente; Const withRefCliente: Boolean); +var + AReportController : IAlbaranesClienteReportController; +begin + AReportController := TAlbaranesClienteReportController.Create; + try + AReportController.EtiquetasPrint(AAlbaran.ID, withRefCliente); + finally + AReportController := NIL; + end; +end; + +procedure TAlbaranesClienteController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +var + AAlbaran : IBizAlbaranCliente; + ADetalles : IBizDetallesAlbaranCliente; +begin + inherited; + + if Supports(ADataTable, IBizDetallesAlbaranCliente, ADetalles) and + Supports(ADetalles.DataTable.MasterSource.DataTable, IBizAlbaranCliente, AAlbaran) then + begin + RecalcularImportes(AAlbaran); + end; +end; + +procedure TAlbaranesClienteController.RecuperarObjetos(AAlbaran: IBizAlbaranCliente); +begin + RecuperarCliente(AAlbaran); +end; + +procedure TAlbaranesClienteController.RecuperarCliente( + AAlbaran: IBizAlbaranCliente); +begin + AAlbaran._Cliente := (FClienteController.Buscar(AAlbaran.ID_Cliente) as IBizCliente); +end; + +function TAlbaranesClienteController.Existe(const ID: Integer): Boolean; +var + AAlbaran : IBizAlbaranCliente; +begin + try + AAlbaran := Buscar(ID); + Result := Assigned(AAlbaran) and (AAlbaran.ID = ID); + finally + AAlbaran := NIL; + end; +end; + +function TAlbaranesClienteController.ExtraerSeleccionados(AAlbaran: IBizAlbaranCliente): IBizAlbaranCliente; +var + ASeleccionados : IBizAlbaranCliente; +begin + ASeleccionados := (Self.Buscar(ID_NULO) as IBizAlbaranCliente); + CopyDataTableDA5(AAlbaran.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + +procedure TAlbaranesClienteController.FiltrarAno(AAlbaran: IBizAlbaranCliente; ADynWhereDataTable: WideString; const Ano: String); +var + Condicion: TDAWhereExpression; + FechaIni: String; + FechaFin: String; + +begin + AAlbaran.DataTable.DynamicWhere.Clear; + AAlbaran.DataTable.DynamicWhere.Xml := ADynWhereDataTable; + + if (Ano <> 'Todos') then + begin + // Filtrar las facturas actuales por empresa + FechaIni := '01/01/' + Ano; + FechaFin := '31/12/' + Ano; + with AAlbaran.DataTable.DynamicWhere do + begin + // (FECHA_INICIO between FECHA_FIN) + Condicion := NewBinaryExpression(NewField('', fld_AlbaranesClienteFECHA_ALBARAN), NewConstant(FechaIni, datString), dboGreaterOrEqual); + Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_AlbaranesClienteFECHA_ALBARAN), NewConstant(FechaFin, datString), dboLessOrEqual), Condicion, dboAnd); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Condicion, Expression, dboAnd); + end; + end; +end; + +procedure TAlbaranesClienteController.FiltrarEmpresa(AAlbaran: IBizAlbaranCliente); +var + Condicion: TDAWhereExpression; +begin + if AAlbaran.DataTable.Active then + AAlbaran.DataTable.Active := False; + + // Filtrar los presupuestos actuales por empresa + with AAlbaran.DataTable.DynamicWhere do + begin + // (ID_EMPRESA >= ID) + Condicion := NewBinaryExpression(NewField('', fld_AlbaranesClienteID_EMPRESA), NewConstant(AppFactuGES.EmpresaActiva.ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + if AAlbaran.DataTable.Active then + AAlbaran.DataTable.Active := False; +end; + +procedure TAlbaranesClienteController.SetClienteController(const Value: IClientesController); +begin + FClienteController := Value; +end; + +procedure TAlbaranesClienteController.SetDetallesController(const Value: IDetallesAlbaranClienteController); +begin + FDetallesController := Value; +end; + +function TAlbaranesClienteController.Guardar(AAlbaran: IBizAlbaranCliente): Boolean; +begin + Result := False; + + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignada'); + + if not Assigned(FDetallesController) then + raise Exception.Create ('Controller detalles no asignado'); + + if ValidarAlbaran(AAlbaran) then + begin + ShowHourglassCursor; + + // Asegurarnos de que todos los importes estn bien. + RecalcularImportes(AAlbaran); + + try + AAlbaran.DataTable.ApplyUpdates; + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TAlbaranesClienteController.Nuevo(withInsert: Boolean = True): IBizAlbaranCliente; +var + AAlbaran : IBizAlbaranCliente; +begin + AAlbaran := FDataModule.NewItem; + FiltrarEmpresa(AAlbaran); + AAlbaran.DataTable.Active := True; + if WithInsert then + AAlbaran.Insert; + Result := AAlbaran; +end; + +procedure TAlbaranesClienteController.QuitarDireccionEnvio( + AAlbaran: IBizAlbaranCliente); +var + bEnEdicion : Boolean; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado (QuitarDireccionEnvio)'); + + if AAlbaran.DataTable.Active then + AAlbaran.DataTable.Active := True; + + bEnEdicion := (AAlbaran.DataTable.State in dsEditModes); + if not bEnEdicion then + AAlbaran.Edit; + + ShowHourglassCursor; + AAlbaran.Edit; + try + AAlbaran.DataTable.FieldByName(fld_AlbaranesClienteCALLE).Clear; + AAlbaran.DataTable.FieldByName(fld_AlbaranesClientePOBLACION).Clear; + AAlbaran.DataTable.FieldByName(fld_AlbaranesClienteCODIGO_POSTAL).Clear; + AAlbaran.DataTable.FieldByName(fld_AlbaranesClientePROVINCIA).Clear; + AAlbaran.DataTable.FieldByName(fld_AlbaranesClienteTELEFONO).Clear; + + if not bEnEdicion then + AAlbaran.Post; + finally + HideHourglassCursor; + end; +end; + +procedure TAlbaranesClienteController.Preview(AAlbaran: IBizAlbaranCliente; AllItems: Boolean = false); +var + AReportController : IAlbaranesClienteReportController; + ID_Albaranes: TIntegerList; + +begin + AReportController := TAlbaranesClienteReportController.Create; + ID_Albaranes := TIntegerList.Create; + + try + + //Si deseamos previsualizar todos los items del objeto albaran + if AllItems then + begin + with AAlbaran.DataTable do + begin + First; + while not EOF do + begin + ID_Albaranes.Add(AAlbaran.ID); + Next; + end; + end; + end + //Solo previsualizamos el item seleccionado + else + ID_Albaranes.Add(AAlbaran.ID); + + AReportController.Preview(ID_Albaranes); + + finally + AReportController := NIL; + FreeANDNIL(ID_Albaranes); + end; +end; + +procedure TAlbaranesClienteController.Print(AAlbaran: IBizAlbaranCliente; AllItems: Boolean = false); +var + AReportController : IAlbaranesClienteReportController; + ID_Albaranes: TIntegerList; + +begin + AReportController := TAlbaranesClienteReportController.Create; + ID_Albaranes := TIntegerList.Create; + try + //Si deseamos previsualizar todos los items del objeto albaran + if AllItems then + begin + with AAlbaran.DataTable do + begin + First; + while not EOF do + begin + ID_Albaranes.Add(AAlbaran.ID); + Next; + end; + end; + end + //Solo previsualizamos el item seleccionado + else + ID_Albaranes.Add(AAlbaran.ID); + + AReportController.Print(ID_Albaranes); + + finally + AReportController := NIL; + FreeANDNIL(ID_Albaranes); + end; +end; + +procedure TAlbaranesClienteController.RecalcularImportes(AAlbaran: IBizAlbaranCliente); +var + bEnEdicion : Boolean; + ADetallePosAct : Integer; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado (RecalcularImportes)'); + + if AAlbaran.DataTable.Active then + AAlbaran.DataTable.Active := True; + + { Hay que guardar la posicin en la que estamos en los detalles por que + la asignacin de valores a los campos IMPORTE_NETO e IMPORTE_PORTE + (ver ms adelante) colocan el puntero en la tabla detalle al principio. + No he encontrado la razn por la que mueve el puntero. } + + ADetallePosAct := AAlbaran.Detalles.POSICION; + + bEnEdicion := (AAlbaran.DataTable.State in dsEditModes); + if not bEnEdicion then + AAlbaran.Edit; + + ShowHourglassCursor; + try + AAlbaran.IMPORTE_NETO := FDetallesController.DarTotalImporteTotal(AAlbaran.Detalles); + AAlbaran.IMPORTE_PORTE := FDetallesController.DarTotalPorteTotal(AAlbaran.Detalles); + + if not bEnEdicion then + AAlbaran.Post; + finally + HideHourglassCursor; + // Restaurar la posicin que tenamos en los detalles. + FDetallesController.LocalizarPosicion(AAlbaran.Detalles, ADetallePosAct); + end; +end; + +function TAlbaranesClienteController.GetClienteController: IClientesController; +begin + Result := FClienteController; +end; + +function TAlbaranesClienteController.GetDetallesController: IDetallesAlbaranClienteController; +begin + Result := FDetallesController; +end; + +end. + \ No newline at end of file diff --git a/Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteReportController.dcu b/Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteReportController.dcu new file mode 100644 index 0000000..1d93c5f Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteReportController.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteReportController.pas b/Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteReportController.pas new file mode 100644 index 0000000..89c75a4 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteReportController.pas @@ -0,0 +1,237 @@ +unit uAlbaranesClienteReportController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleAlbaranesClienteReport, + uClientesController, uAlbaranesClienteController, uDetallesAlbaranClienteController, + uBizAlbaranesCliente, uIntegerListUtils; + +type + IAlbaranesClienteReportController = interface(IControllerBase) + ['{4BCC7A93-3322-494C-A3FA-118F4B62CB15}'] + procedure Preview(const AListaID : TIntegerList); + procedure Print(const AListaID : TIntegerList); + procedure EtiquetasPreview(const AID : integer; Const withRefCliente: Boolean); + procedure EtiquetasPrint(const AID : integer; Const withRefCliente: Boolean); + function ExportToWord(const AID: Integer; const AFileName : String = ''): Boolean; + function ExportToPDF(const AID: Integer; const AFileName : String = ''): Boolean; + end; + + TAlbaranesClienteReportController = class(TControllerBase, IAlbaranesClienteReportController) + private + FDataModule : IDataModuleAlbaranesClienteReport; + function CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; + + public + constructor Create; override; + destructor Destroy; override; + + procedure Preview(const AListaID : TIntegerList); + procedure Print(const AListaID : TIntegerList); + function ExportToWord(const AID: Integer; const AFileName : String = ''): Boolean; + function ExportToPDF(const AID: Integer; const AFileName : String = ''): Boolean; + procedure EtiquetasPreview(const AID : integer; const withRefCliente: Boolean); + procedure EtiquetasPrint(const AID : integer; const withRefCliente: Boolean); + end; + + +implementation + +uses + uROTypes, uEditorRegistryUtils, uIEditorAlbaranesClientePreview, + uEditorPreview, uDataModuleAlbaranesCliente, uEditorBase, cxControls, + uStringsUtils, uSistemaFunc, uFactuGES_App; + +{ TAlbaranesClienteReportController } + +constructor TAlbaranesClienteReportController.Create; +begin + inherited; + FDataModule := TDataModuleAlbaranesCliente.Create(Nil); +end; + +function TAlbaranesClienteReportController.CreateEditor(const AName: String; + const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + + +destructor TAlbaranesClienteReportController.Destroy; +begin + FDataModule := NIL; + inherited; +end; + +procedure TAlbaranesClienteReportController.EtiquetasPreview(const AID: integer; const withRefCliente: Boolean); +var + AStream: Binary; + AEditor : IEditorAlbaranesClientePreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetEtiquetas(AID, withRefCliente); + try + CreateEditor('EditorAlbaranesClientePreview', IEditorAlbaranesClientePreview, AEditor); + if Assigned(AEditor) then + try + AEditor.LoadFromStream(AStream); + AEditor.Preview; + finally + AEditor.Release; + end; + finally + FreeAndNil(AStream); + AEditor := Nil; + end; + finally + HideHourglassCursor; + end; +end; + +procedure TAlbaranesClienteReportController.EtiquetasPrint(const AID: integer; const withRefCliente: Boolean); +var + AStream: Binary; + AEditor : IEditorAlbaranesClientePreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetEtiquetas(AID, withRefCliente); + try + CreateEditor('EditorAlbaranesClientePreview', IEditorAlbaranesClientePreview, AEditor); + if Assigned(AEditor) then + try + AEditor.LoadFromStream(AStream); + AEditor.Print; + finally + AEditor.Release; + end; + finally + FreeAndNil(AStream); + AEditor := Nil; + end; + finally + HideHourglassCursor; + end; +end; + +function TAlbaranesClienteReportController.ExportToPDF(const AID: Integer; + const AFileName: String): Boolean; +var + AStream: Binary; +begin + Result := False; + if EsCadenaVacia(AFileName) then + Exit; + + ShowHourglassCursor; + try + AStream := FDataModule.GetRptPDFAlbaran(AID); + try + AStream.SaveToFile(AFileName); + Result := True; + finally + FreeAndNil(AStream); + end; + finally + HideHourglassCursor; + end; +end; + +function TAlbaranesClienteReportController.ExportToWord(const AID: Integer; + const AFileName: String): Boolean; +var + AStream: Binary; + AFile : String; +begin + Result := False; + AFile := AFileName; + if EsCadenaVacia(AFile) and (not PreguntarFicheroWordExportar(AFile)) then + Exit; + + ShowHourglassCursor; + try + AStream := FDataModule.GetRptWordAlbaran(AID); + try + AStream.SaveToFile(AFile); + Result := True; + finally + FreeAndNil(AStream); + end; + finally + HideHourglassCursor; + end; +end; + +procedure TAlbaranesClienteReportController.Preview(const AListaID : TIntegerList); +var + AStream: Binary; + AEditor : IEditorAlbaranesClientePreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetRptAlbaranes(AListaID); + try + CreateEditor('EditorAlbaranesClientePreview', IEditorAlbaranesClientePreview, AEditor); + if Assigned(AEditor) then + begin + try + AEditor.Controller := Self; + AEditor.ListaID := AListaID; + AEditor.Title := 'Albarn - ' + AppFactuGES.EmpresaActiva.NOMBRE; + AEditor.LoadFromStream(AStream); + AEditor.Preview; + finally + AEditor.Release; + end; + end; + finally + FreeAndNil(AStream); + AEditor := Nil; + end; + finally + HideHourglassCursor; + end; +end; + +procedure TAlbaranesClienteReportController.Print(const AListaID : TIntegerList); +var + AStream: Binary; + AEditor : IEditorAlbaranesClientePreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetRptAlbaranes(AListaID); + try + CreateEditor('EditorAlbaranesClientePreview', IEditorAlbaranesClientePreview, AEditor); + if Assigned(AEditor) then + begin + try + AEditor.Controller := Self; + AEditor.ListaID := AListaID; + AEditor.Title := 'Albarn - ' + AppFactuGES.EmpresaActiva.NOMBRE; + AEditor.LoadFromStream(AStream); + AEditor.Print; + finally + AEditor.Release; + end; + end; + finally + FreeAndNil(AStream); + AEditor := Nil; + end; + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Albaranes de cliente/Controller/uArticulosAlbaranClienteController.dcu b/Source/Modulos/Albaranes de cliente/Controller/uArticulosAlbaranClienteController.dcu new file mode 100644 index 0000000..c0b3ddb Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Controller/uArticulosAlbaranClienteController.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Controller/uArticulosAlbaranClienteController.pas b/Source/Modulos/Albaranes de cliente/Controller/uArticulosAlbaranClienteController.pas new file mode 100644 index 0000000..c5383f7 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Controller/uArticulosAlbaranClienteController.pas @@ -0,0 +1,45 @@ +unit uArticulosAlbaranClienteController; + +interface + +uses + uDADataTable, cxControls, uArticulosController, uBizArticulos; + +type + IArticulosAlbaranClienteController = interface(IArticulosController) + ['{727F03DE-C408-4F40-A603-2889F386BDD0}'] + end; + + TArticulosAlbaranClienteController = class(TArticulosController, IArticulosAlbaranClienteController) + public + function ElegirArticulos(AArticulos : IBizArticulo; AMensaje: String; AMultiSelect: Boolean): IBizArticulo; override; + end; + +implementation + +{ TArticulosAlbaranClienteController } + +uses Controls, uIEditorElegirArticulosAlbaranesCliente, uIEditorElegirArticulos; + +function TArticulosAlbaranClienteController.ElegirArticulos(AArticulos: IBizArticulo; AMensaje: String; + AMultiSelect: Boolean): IBizArticulo; +var + AEditor : IEditorElegirArticulosAlbaranesCliente; +begin + Result := NIL; + CreateEditor('EditorElegirArticulosAlbaranesCliente', IEditorElegirArticulosAlbaranesCliente, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; + AEditor.Articulos := AArticulos; + AEditor.MultiSelect := AMultiSelect; + AEditor.Mensaje := AMensaje; + if IsPositiveResult(AEditor.ShowModal) then + Result := AEditor.ArticulosSeleccionados; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +end. diff --git a/Source/Modulos/Albaranes de cliente/Controller/uDetallesAlbaranClienteController.dcu b/Source/Modulos/Albaranes de cliente/Controller/uDetallesAlbaranClienteController.dcu new file mode 100644 index 0000000..280ec6c Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Controller/uDetallesAlbaranClienteController.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Controller/uDetallesAlbaranClienteController.pas b/Source/Modulos/Albaranes de cliente/Controller/uDetallesAlbaranClienteController.pas new file mode 100644 index 0000000..475d91d --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Controller/uDetallesAlbaranClienteController.pas @@ -0,0 +1,163 @@ +unit uDetallesAlbaranClienteController; + +interface + +uses + uDADataTable, uControllerDetallesArticulos, uBizDetallesAlbaranCliente, uIDataModuleAlbaranesCliente, + uBizArticulos, uBizContactos; + +type + IDetallesAlbaranClienteController = interface(IControllerDetallesArticulos) + ['{6AD99D47-2856-47B1-9620-DD115726B0E1}'] + procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente; const ANuevaFila :Boolean = True; const ACantidad: Integer = 1); overload; + procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente); overload; + procedure DesglosarPorteDetalles(ImportePorte: Currency; ADetalles: IDAStronglyTypedDataTable); + function DarTotalPorteTotal(ADetalles: IDAStronglyTypedDataTable): Double; + end; + + TDetallesAlbaranClienteController = class(TControllerDetallesArticulos, IDetallesAlbaranClienteController) + private + FDataModule : IDataModuleAlbaranesCliente; + protected +// procedure AsignarDatos(ADetalles: IDAStronglyTypedDataTable; IDCabecera: Integer); override; + procedure RellenarOtros(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); override; + procedure RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); override; + + procedure AsignarController; override; + //Si sobreescribimos este mtodo podremos tener en cuenta otras columnas para el calculo del importe total de un concepto + function CalcularImporteTotalConcepto(DataTable: TDADataTable): Double; override; + procedure ValidarCampos(DataTable: TDADataTable); override; + procedure DesglosarPorteDetalles(ImportePorte: Currency; ADetalles: IDAStronglyTypedDataTable); + function DarTotalPorteTotal(ADetalles: IDAStronglyTypedDataTable): Double; + + public + procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente; const ANuevaFila :Boolean = True; const ACantidad: Integer = 1); overload; + procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente); overload; + constructor Create; override; + destructor Destroy; override; + end; + +implementation + +uses Dialogs, uDialogUtils, Variants, uControllerDetallesBase, + uCalculosUtils, uDataModuleAlbaranesCliente, uArticulosAlbaranClienteController; + +{ TDetallesAlbaranClienteController } + +procedure TDetallesAlbaranClienteController.ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente); +var + AArticulos : IBizArticulo; +begin + if Assigned(ADetalles) then + begin + try + AArticulos := (FArticulosController.BuscarTodos(ACliente) as IBizArticulo); + ActualizarDetalles(ADetalles, AArticulos); +// ShowInfoMessage('Se ha actualizado el descuento para el cliente seleccionado'); Esta desactivado el descuento general para los albaranes de cliente + finally + AArticulos := Nil; + end; + end; +end; + +procedure TDetallesAlbaranClienteController.AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente; const ANuevaFila :Boolean; const ACantidad: Integer); +var + AArticulos: IBizArticulo; +begin + if Assigned(ADetalles) then + begin + try + AArticulos := (FArticulosController.BuscarTodos(ACliente) as IBizArticulo); + + //Si nueva fila es false, quiere decir que se sustituye un determinado artculo, por ello la lista a seleccionar no debe ser multiselect + if ANuevaFila then + begin + AArticulos := (FArticulosController as IArticulosAlbaranClienteController).ElegirArticulos(AArticulos, 'Elija los artculos que desea aadir a este albarn de cliente', True); + Add(ADetalles, AArticulos, ACantidad) + end + else + begin + AArticulos := (FArticulosController as IArticulosAlbaranClienteController).ElegirArticulos(AArticulos, 'Elija el artculo que desea aadir a este albarn de cliente', False); + RellenarDetalle(ADetalles, AArticulos, ACantidad); + end; + + finally + AArticulos := Nil; + end; + end; +end; + +procedure TDetallesAlbaranClienteController.AsignarController; +begin + FArticulosController := TArticulosAlbaranClienteController.Create; +end; + +{procedure TDetallesAlbaranClienteController.AsignarDatos(ADetalles: IDAStronglyTypedDataTable; IDCabecera: Integer); +begin + inherited; + + with (ADetalles as IBizDetallesAlbaranCliente) do + begin + Edit; +// ID := FDataModule.GetNextID(DataTable.LogicalName); + ID_ALBARAN := IDCabecera; + Post + end; +end;} + +function TDetallesAlbaranClienteController.CalcularImporteTotalConcepto(DataTable: TDADataTable): Double; +begin + Result := CalcularLineaConcepto(DataTable); +end; + +constructor TDetallesAlbaranClienteController.Create; +begin + inherited; + FDataModule := TDataModuleAlbaranesCliente.Create(Nil); +end; + +function TDetallesAlbaranClienteController.DarTotalPorteTotal(ADetalles: IDAStronglyTypedDataTable): Double; +begin + Result := DarTotalPorte(ADetalles); +end; + +procedure TDetallesAlbaranClienteController.DesglosarPorteDetalles(ImportePorte: Currency; ADetalles: IDAStronglyTypedDataTable); +begin + DesglosarPorte(ImportePorte, ADetalles); + ActualizarTotales(ADetalles); +end; + +destructor TDetallesAlbaranClienteController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + + +procedure TDetallesAlbaranClienteController.RellenarOtros(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +begin +//En Tecsitel no se tiene en cuenta el descuento de cliente para el precio PVP +// if Assigned(AArticulos) then +// ADetalles.DataTable.FieldByName(CAMPO_DESCUENTO).AsFloat := AArticulos.DESCUENTO +// else +// ADetalles.DataTable.FieldByName(CAMPO_DESCUENTO).AsFloat := 0; +end; + +procedure TDetallesAlbaranClienteController.ValidarCampos(DataTable: TDADataTable); +begin + inherited; + ValidarCamposLineaConcepto(DataTable); +end; + +procedure TDetallesAlbaranClienteController.RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +begin +//Como en tecsitel no hay descuento por linea de detalle, solo recuperamos nuevamente el valor del articulo cuando el detalle no tenga niguno +//de esta forma evitamos que al cambiar de cliente se quiten los importes que se hubiesen establecido para los articulos. + if ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).IsNull then + if Assigned(AArticulos) then + ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := AArticulos.PRECIO_PVP_TOTAL + else + ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := Null; +end; + +end. diff --git a/Source/Modulos/Albaranes de cliente/Data/AlbaranesCliente_data.bdsproj b/Source/Modulos/Albaranes de cliente/Data/AlbaranesCliente_data.bdsproj new file mode 100644 index 0000000..63e51e8 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Data/AlbaranesCliente_data.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + AlbaranesCliente_data.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Albaranes de cliente/Data/AlbaranesCliente_data.dcu b/Source/Modulos/Albaranes de cliente/Data/AlbaranesCliente_data.dcu new file mode 100644 index 0000000..7083616 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Data/AlbaranesCliente_data.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Data/AlbaranesCliente_data.dpk b/Source/Modulos/Albaranes de cliente/Data/AlbaranesCliente_data.dpk new file mode 100644 index 0000000..955afbe Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Data/AlbaranesCliente_data.dpk differ diff --git a/Source/Modulos/Albaranes de cliente/Data/AlbaranesCliente_data.dproj b/Source/Modulos/Albaranes de cliente/Data/AlbaranesCliente_data.dproj new file mode 100644 index 0000000..e79d1aa --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Data/AlbaranesCliente_data.dproj @@ -0,0 +1,547 @@ + + + {38eef566-1895-4bdd-8007-f92f5e32cce6} + AlbaranesCliente_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\AlbaranesCliente_data.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0AlbaranesCliente_data.dpk + + + + + MainSource + + + + + + + + + + + +
DataModuleAlbaranesCliente
+
+
+
+ diff --git a/Source/Modulos/Albaranes de cliente/Data/AlbaranesCliente_data.drc b/Source/Modulos/Albaranes de cliente/Data/AlbaranesCliente_data.drc new file mode 100644 index 0000000..b1e0853 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Data/AlbaranesCliente_data.drc @@ -0,0 +1,17 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Albaranes de cliente\Data\uDataModuleAlbaranesCliente.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de cliente\Data\AlbaranesCliente_data.res */ +/* c:\temp\dtf19F.tmp */ diff --git a/Source/Modulos/Albaranes de cliente/Data/AlbaranesCliente_data.rc b/Source/Modulos/Albaranes de cliente/Data/AlbaranesCliente_data.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Data/AlbaranesCliente_data.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Albaranes de cliente/Data/AlbaranesCliente_data.res b/Source/Modulos/Albaranes de cliente/Data/AlbaranesCliente_data.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Data/AlbaranesCliente_data.res differ diff --git a/Source/Modulos/Albaranes de cliente/Data/uDataModuleAlbaranesCliente.dcu b/Source/Modulos/Albaranes de cliente/Data/uDataModuleAlbaranesCliente.dcu new file mode 100644 index 0000000..20f865d Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Data/uDataModuleAlbaranesCliente.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Data/uDataModuleAlbaranesCliente.dfm b/Source/Modulos/Albaranes de cliente/Data/uDataModuleAlbaranesCliente.dfm new file mode 100644 index 0000000..7d15a50 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Data/uDataModuleAlbaranesCliente.dfm @@ -0,0 +1,448 @@ +inherited DataModuleAlbaranesCliente: TDataModuleAlbaranesCliente + OnCreate = DAClientDataModuleCreate + Height = 394 + Width = 512 + object RORemoteService: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvAlbaranesCliente' + Left = 40 + Top = 16 + end + object rda_AlbaranesCliente: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetDataCall.RemoteService = RORemoteService + UpdateDataCall.RemoteService = RORemoteService + GetScriptsCall.RemoteService = RORemoteService + RemoteService = RORemoteService + DataStreamer = Bin2DataStreamer + Left = 43 + Top = 151 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 40 + Top = 84 + end + object tbl_AlbaranesCliente: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALBARANES_CLI_ID' + Required = True + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesCliente_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_ID_EMPRESA' + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_ID_CLIENTE' + end + item + Name = 'ID_DIRECCION' + DataType = datInteger + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Nombre del cliente' + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesCliente_NOMBRE' + end + item + Name = 'FECHA_ALBARAN' + DataType = datDateTime + DisplayLabel = 'Fecha albar'#225'n' + DictionaryEntry = 'AlbaranesCliente_FECHA_ALBARAN' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesCliente_REFERENCIA' + end + item + Name = 'REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + DisplayLabel = 'AlbaranesCliente_REFERENCIA_CLIENTE' + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesCliente_REFERENCIA_CLIENTE' + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + DisplayLabel = 'Tipo' + DictionaryEntry = 'AlbaranesCliente_TIPO' + end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + DisplayLabel = 'Situaci'#243'n' + DictionaryEntry = 'AlbaranesCliente_SITUACION' + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_ID_ALMACEN' + end + item + Name = 'NOMBRE_ALMACEN' + DataType = datString + Size = 255 + DisplayLabel = 'Almac'#233'n' + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesCliente_NOMBRE_ALMACEN' + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_ID_PEDIDO' + end + item + Name = 'REF_PEDIDO' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. pedido cliente' + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesCliente_REF_PEDIDO' + end + item + Name = 'ID_FACTURA' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_ID_FACTURA' + end + item + Name = 'REF_FACTURA' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. factura cliente' + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesCliente_REF_FACTURA' + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DisplayLabel = 'Calle' + DictionaryEntry = 'AlbaranesCliente_CALLE' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#243'd. postal' + DictionaryEntry = 'AlbaranesCliente_CODIGO_POSTAL' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DisplayLabel = 'Poblaci'#243'n' + DictionaryEntry = 'AlbaranesCliente_POBLACION' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Provincia' + DictionaryEntry = 'AlbaranesCliente_PROVINCIA' + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + DisplayLabel = 'Persona de contacto' + DictionaryEntry = 'AlbaranesCliente_PERSONA_CONTACTO' + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + DisplayLabel = 'Tel'#233'fono' + DictionaryEntry = 'AlbaranesCliente_TELEFONO' + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + DisplayLabel = 'Importe neto' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_IMPORTE_NETO' + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + DisplayLabel = 'Importe del porte' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_IMPORTE_PORTE' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_DESCUENTO' + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_IMPORTE_DESCUENTO' + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_BASE_IMPONIBLE' + end + item + Name = 'IVA' + DataType = datFloat + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_IVA' + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_IMPORTE_IVA' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_IMPORTE_TOTAL' + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + DisplayLabel = 'Observaciones' + DictionaryEntry = 'AlbaranesCliente_OBSERVACIONES' + end + item + Name = 'INCIDENCIAS' + DataType = datMemo + DictionaryEntry = 'AlbaranesCliente_INCIDENCIAS' + end + item + Name = 'INCIDENCIAS_ACTIVAS' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_INCIDENCIAS_ACTIVAS' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'AlbaranesCliente_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'AlbaranesCliente_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'AlbaranesCliente_USUARIO' + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_ID_FORMA_PAGO' + end + item + Name = 'FECHA_PREVISTA_ENVIO' + DataType = datDateTime + DisplayLabel = 'Fecha prevista de envio' + DictionaryEntry = 'AlbaranesCliente_FECHA_PREVISTA_ENVIO' + end + item + Name = 'FECHA_ENVIO' + DataType = datDateTime + DisplayLabel = 'Fecha de env'#237'o' + DictionaryEntry = 'AlbaranesCliente_FECHA_ENVIO' + end + item + Name = 'FECHA_RECEPCION' + DataType = datDateTime + DisplayLabel = 'Fecha de recepci'#243'n' + DictionaryEntry = 'AlbaranesCliente_FECHA_RECEPCION' + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_AlbaranesCliente + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'AlbaranesCliente' + IndexDefs = <> + Left = 232 + Top = 128 + end + object ds_AlbaranesCliente: TDADataSource + DataSet = tbl_AlbaranesCliente.Dataset + DataTable = tbl_AlbaranesCliente + Left = 232 + Top = 56 + end + object tbl_AlbaranesCliente_Detalles: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALBARANES_CLI_DETALLES_ID' + Required = True + DictionaryEntry = 'AlbaranesCliente_Detalles_ID' + InPrimaryKey = True + end + item + Name = 'ID_ALBARAN' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_Detalles_ID_ALBARAN' + end + item + Name = 'POSICION' + DataType = datInteger + DictionaryEntry = 'POSICIONCONCEPTO' + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + DictionaryEntry = 'AlbaranesCliente_Detalles_TIPO_DETALLE' + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + DictionaryEntry = 'AlbaranesCliente_Detalles_CONCEPTO' + end + item + Name = 'CANTIDAD' + DataType = datFloat + Alignment = taRightJustify + DictionaryEntry = 'CANTIDAD' + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_Detalles_IMPORTE_UNIDAD' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_Detalles_DESCUENTO' + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + DisplayLabel = 'Importe porte' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_Detalles_IMPORTE_PORTE' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_Detalles_IMPORTE_TOTAL' + end + item + Name = 'VISIBLE' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_Detalles_VISIBLE' + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_Detalles_ID_ARTICULO' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. proveedor' + DictionaryEntry = 'AlbaranesCliente_Detalles_REFERENCIA_PROVEEDOR' + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + end> + Params = <> + MasterMappingMode = mmWhere + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_AlbaranesCliente + MasterSource = ds_AlbaranesCliente + MasterFields = 'ID' + DetailFields = 'ID_ALBARAN' + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'AlbaranesCliente_Detalles' + IndexDefs = <> + Left = 384 + Top = 128 + end + object ds_AlbaranesCliente_Detalles: TDADataSource + DataSet = tbl_AlbaranesCliente_Detalles.Dataset + DataTable = tbl_AlbaranesCliente_Detalles + Left = 384 + Top = 56 + end + object tbl_ListaAnosAlbaranes: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ANO' + DataType = datString + Size = 254 + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_AlbaranesCliente + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'ListaAnosAlbaranes' + IndexDefs = <> + Left = 232 + Top = 248 + end + object ds_ListaAnosAlbaranes: TDADataSource + DataSet = tbl_ListaAnosAlbaranes.Dataset + DataTable = tbl_ListaAnosAlbaranes + Left = 232 + Top = 192 + end +end diff --git a/Source/Modulos/Albaranes de cliente/Data/uDataModuleAlbaranesCliente.pas b/Source/Modulos/Albaranes de cliente/Data/uDataModuleAlbaranesCliente.pas new file mode 100644 index 0000000..02f9e31 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Data/uDataModuleAlbaranesCliente.pas @@ -0,0 +1,199 @@ +unit uDataModuleAlbaranesCliente; + +interface + +uses + DB, Classes, SysUtils, uDADesigntimeCall, uROTypes, + uRORemoteService, uROClient, uROBinMessage, uDAScriptingProvider, + uDACDSDataTable, uROWinInetHttpChannel, uDADataTable, uDABINAdapter, + + uIDataModuleAlbaranesCliente, uBizAlbaranesCliente, uBizDetallesAlbaranCliente, + uIDataModuleAlbaranesClienteReport, uDataModuleBase, uDABin2DataStreamer, uDAMemDataTable, + uDAInterfaces, uDADataStreamer, uDARemoteDataAdapter, uIntegerListUtils; + +type + TDataModuleAlbaranesCliente = class(TDataModuleBase, IDataModuleAlbaranesCliente, IDataModuleAlbaranesClienteReport) + RORemoteService: TRORemoteService; + rda_AlbaranesCliente: TDARemoteDataAdapter; + Bin2DataStreamer: TDABin2DataStreamer; + tbl_AlbaranesCliente: TDAMemDataTable; + ds_AlbaranesCliente: TDADataSource; + tbl_AlbaranesCliente_Detalles: TDAMemDataTable; + ds_AlbaranesCliente_Detalles: TDADataSource; + tbl_ListaAnosAlbaranes: TDAMemDataTable; + ds_ListaAnosAlbaranes: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + + private + function _GetDetalles : IBizDetallesAlbaranCliente; + + protected + procedure AsignarClaseNegocio(AAlbaran: TDADataTable); virtual; + + public + function GetItems : IBizAlbaranCliente; virtual; + function GetItem(const ID : Integer) : IBizAlbaranCliente; + function NewItem : IBizAlbaranCliente; + + // Report + function GetRptAlbaranes(const ListaID: TIntegerList): Binary; + function GetRptWordAlbaran(const AID: Integer): Binary; + function GetEtiquetas(const AID: Integer; withRefCliente: Boolean): Binary; + function GetRptPDFAlbaran(const AID: Integer): Binary; + + function GetAnosItems : TStringList; + end; + +implementation + +{$R *.DFM} + +uses + cxControls, FactuGES_Intf, uDataModuleConexion, + uDataTableUtils, schAlbaranesClienteClient_Intf, uBizContactos; + +{ TdmAlbaranesCliente } + +procedure TDataModuleAlbaranesCliente.AsignarClaseNegocio(AAlbaran: TDADataTable); +begin + AAlbaran.BusinessRulesID := BIZ_CLIENT_ALBARAN_CLIENTE; +end; + +procedure TDataModuleAlbaranesCliente.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleAlbaranesCliente.GetRptAlbaranes(const ListaID: TIntegerList): Binary; +var + AParam : TIntegerArray; +begin + AParam := ListaID.ToIntegerArray; + try + Result := (RORemoteService as IsrvAlbaranesCliente).GenerarInforme(AParam); + finally + FreeAndNil(AParam); + end; +end; + +function TDataModuleAlbaranesCliente.GetRptPDFAlbaran( + const AID: Integer): Binary; +var + AParam : TIntegerArray; +begin + AParam := TIntegerArray.Create; + try + AParam.Add(AID); + Result := (RORemoteService as IsrvAlbaranesCliente).GenerarInforme(AParam); + finally + FreeAndNil(AParam); + end; +end; + +function TDataModuleAlbaranesCliente.GetRptWordAlbaran( + const AID: Integer): Binary; +begin + Result := (RORemoteService as IsrvAlbaranesCliente).GenerarInformeEnWord(AID) +end; + +function TDataModuleAlbaranesCliente.NewItem: IBizAlbaranCliente; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleAlbaranesCliente._GetDetalles: IBizDetallesAlbaranCliente; +var + ADetalles : TDAMemDataTable; +begin + ShowHourglassCursor; + try + ADetalles := CloneDataTable(tbl_AlbaranesCliente_Detalles); + with ADetalles do + begin + BusinessRulesID := BIZ_CLIENT_DETALLES_ALBARAN_CLIENTE; + DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; + end; + Result := (ADetalles as IBizDetallesAlbaranCliente); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleAlbaranesCliente.GetAnosItems: TStringList; +var + AListaAnos: TStringList; +begin + AListaAnos := TStringList.Create; + ShowHourglassCursor; + try + with tbl_ListaAnosAlbaranes do + begin + Open; + First; + while not eof do + begin + AListaAnos.Add(Format('%s=%s', [Fields[0].AsString, Fields[0].AsString])); + Next; + end; + Close; + end; + Result := AListaAnos; + finally + HideHourglassCursor; + end; +end; + +function TDataModuleAlbaranesCliente.GetEtiquetas(const AID: Integer; withRefCliente: Boolean): Binary; +begin + Result := (RORemoteService as IsrvAlbaranesCliente).GenerarInformeEtiquetas(AID, withRefCliente) +end; + +function TDataModuleAlbaranesCliente.GetItem(const ID: Integer): IBizAlbaranCliente; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + + with Result.DataTable.DynamicWhere do + begin + // (ID = :ID) + Condicion := NewBinaryExpression(NewField('', fld_AlbaranesClienteID), NewConstant(ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TDataModuleAlbaranesCliente.GetItems: IBizAlbaranCliente; +var + AAlbaran : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AAlbaran := CloneDataTable(tbl_AlbaranesCliente); + AsignarClaseNegocio(AAlbaran); + + // EL CAMPO REFERENCIA TIENE QUE SER AUTOREFRESH!!!!! + AAlbaran.FieldByName(fld_AlbaranesClienteREFERENCIA).ServerAutoRefresh := TRUE; + + with TBizAlbaranCliente(AAlbaran.BusinessEventsObj) do + begin + Detalles := _GetDetalles; + end; + + Result := (AAlbaran as IBizAlbaranCliente); + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.bdsproj b/Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.bdsproj new file mode 100644 index 0000000..a6b90fa --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.bdsproj @@ -0,0 +1,496 @@ + + + + + + + + + + + + AlbaranesCliente_model.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + EurekaLog 5.1.9 + + + + False + diff --git a/Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.dcu b/Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.dcu new file mode 100644 index 0000000..e997b5a Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.dpk b/Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.dpk new file mode 100644 index 0000000..ca686f3 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.dpk differ diff --git a/Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.dproj b/Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.dproj new file mode 100644 index 0000000..a87f440 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.dproj @@ -0,0 +1,547 @@ + + + {a7225a8d-f40d-4878-9a27-c5de0e7cb638} + AlbaranesCliente_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\AlbaranesCliente_model.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + EurekaLog 5.1.9 + AlbaranesCliente_model.dpk + + + + + MainSource + + + + + + + + + + + + + diff --git a/Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.drc b/Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.drc new file mode 100644 index 0000000..f568427 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.drc @@ -0,0 +1,16 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Albaranes de cliente\Model\AlbaranesCliente_model.res */ +/* c:\temp\dtf19D.tmp */ diff --git a/Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.rc b/Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.res b/Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.res differ diff --git a/Source/Modulos/Albaranes de cliente/Model/Data/uIDataModuleAlbaranesCliente.dcu b/Source/Modulos/Albaranes de cliente/Model/Data/uIDataModuleAlbaranesCliente.dcu new file mode 100644 index 0000000..67b23ef Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Model/Data/uIDataModuleAlbaranesCliente.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Model/Data/uIDataModuleAlbaranesCliente.pas b/Source/Modulos/Albaranes de cliente/Model/Data/uIDataModuleAlbaranesCliente.pas new file mode 100644 index 0000000..eb523a1 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Model/Data/uIDataModuleAlbaranesCliente.pas @@ -0,0 +1,19 @@ +unit uIDataModuleAlbaranesCliente; + +interface + +uses + Classes, uBizAlbaranesCliente; + +type + IDataModuleAlbaranesCliente = interface + ['{81932348-9595-45AC-AFC9-5A8983B4A3A8}'] + function GetAnosItems : TStringList; + function GetItems: IBizAlbaranCliente; + function GetItem(const ID : Integer) : IBizAlbaranCliente; + function NewItem : IBizAlbaranCliente; + end; + +implementation + +end. diff --git a/Source/Modulos/Albaranes de cliente/Model/Data/uIDataModuleAlbaranesClienteReport.dcu b/Source/Modulos/Albaranes de cliente/Model/Data/uIDataModuleAlbaranesClienteReport.dcu new file mode 100644 index 0000000..247dee3 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Model/Data/uIDataModuleAlbaranesClienteReport.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Model/Data/uIDataModuleAlbaranesClienteReport.pas b/Source/Modulos/Albaranes de cliente/Model/Data/uIDataModuleAlbaranesClienteReport.pas new file mode 100644 index 0000000..5e95c8c --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Model/Data/uIDataModuleAlbaranesClienteReport.pas @@ -0,0 +1,19 @@ +unit uIDataModuleAlbaranesClienteReport; + +interface + +uses + uROTypes, uIntegerListUtils; + +type + IDataModuleAlbaranesClienteReport = interface + ['{42C55204-5AB9-403E-8385-1A62B02D8234}'] + function GetRptAlbaranes(const AListaID: TIntegerList): Binary; + function GetRptWordAlbaran(const AID: Integer): Binary; + function GetRptPDFAlbaran(const AID: Integer): Binary; + function GetEtiquetas(const AID: Integer; withRefCliente: Boolean): Binary; + end; + +implementation + +end. diff --git a/Source/Modulos/Albaranes de cliente/Model/schAlbaranesClienteClient_Intf.dcu b/Source/Modulos/Albaranes de cliente/Model/schAlbaranesClienteClient_Intf.dcu new file mode 100644 index 0000000..0f8e1e2 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Model/schAlbaranesClienteClient_Intf.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Model/schAlbaranesClienteClient_Intf.pas b/Source/Modulos/Albaranes de cliente/Model/schAlbaranesClienteClient_Intf.pas new file mode 100644 index 0000000..bd72f35 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Model/schAlbaranesClienteClient_Intf.pas @@ -0,0 +1,2155 @@ +unit schAlbaranesClienteClient_Intf; + +interface + +uses + Classes, DB, schBase_Intf, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_ListaAnosAlbaranes = '{4E395FAD-6E22-4BEA-8928-852C19481C40}'; + RID_AlbaranesCliente = '{4B881ADC-1915-43AB-AF50-8E576C19A0A0}'; + RID_AlbaranesCliente_Detalles = '{FF516CED-DDC4-4D70-AC0F-E579F1103F15}'; + + { Data table names } + nme_ListaAnosAlbaranes = 'ListaAnosAlbaranes'; + nme_AlbaranesCliente = 'AlbaranesCliente'; + nme_AlbaranesCliente_Detalles = 'AlbaranesCliente_Detalles'; + + { ListaAnosAlbaranes fields } + fld_ListaAnosAlbaranesANO = 'ANO'; + + { ListaAnosAlbaranes field indexes } + idx_ListaAnosAlbaranesANO = 0; + + { AlbaranesCliente fields } + fld_AlbaranesClienteID = 'ID'; + fld_AlbaranesClienteID_EMPRESA = 'ID_EMPRESA'; + fld_AlbaranesClienteID_CLIENTE = 'ID_CLIENTE'; + fld_AlbaranesClienteID_DIRECCION = 'ID_DIRECCION'; + fld_AlbaranesClienteNOMBRE = 'NOMBRE'; + fld_AlbaranesClienteFECHA_ALBARAN = 'FECHA_ALBARAN'; + fld_AlbaranesClienteREFERENCIA = 'REFERENCIA'; + fld_AlbaranesClienteREFERENCIA_CLIENTE = 'REFERENCIA_CLIENTE'; + fld_AlbaranesClienteTIPO = 'TIPO'; + fld_AlbaranesClienteSITUACION = 'SITUACION'; + fld_AlbaranesClienteID_ALMACEN = 'ID_ALMACEN'; + fld_AlbaranesClienteNOMBRE_ALMACEN = 'NOMBRE_ALMACEN'; + fld_AlbaranesClienteID_PEDIDO = 'ID_PEDIDO'; + fld_AlbaranesClienteREF_PEDIDO = 'REF_PEDIDO'; + fld_AlbaranesClienteID_FACTURA = 'ID_FACTURA'; + fld_AlbaranesClienteREF_FACTURA = 'REF_FACTURA'; + fld_AlbaranesClienteCALLE = 'CALLE'; + fld_AlbaranesClienteCODIGO_POSTAL = 'CODIGO_POSTAL'; + fld_AlbaranesClientePOBLACION = 'POBLACION'; + fld_AlbaranesClientePROVINCIA = 'PROVINCIA'; + fld_AlbaranesClientePERSONA_CONTACTO = 'PERSONA_CONTACTO'; + fld_AlbaranesClienteTELEFONO = 'TELEFONO'; + fld_AlbaranesClienteIMPORTE_NETO = 'IMPORTE_NETO'; + fld_AlbaranesClienteIMPORTE_PORTE = 'IMPORTE_PORTE'; + fld_AlbaranesClienteDESCUENTO = 'DESCUENTO'; + fld_AlbaranesClienteIMPORTE_DESCUENTO = 'IMPORTE_DESCUENTO'; + fld_AlbaranesClienteBASE_IMPONIBLE = 'BASE_IMPONIBLE'; + fld_AlbaranesClienteIVA = 'IVA'; + fld_AlbaranesClienteIMPORTE_IVA = 'IMPORTE_IVA'; + fld_AlbaranesClienteIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_AlbaranesClienteOBSERVACIONES = 'OBSERVACIONES'; + fld_AlbaranesClienteINCIDENCIAS = 'INCIDENCIAS'; + fld_AlbaranesClienteINCIDENCIAS_ACTIVAS = 'INCIDENCIAS_ACTIVAS'; + fld_AlbaranesClienteFECHA_ALTA = 'FECHA_ALTA'; + fld_AlbaranesClienteFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_AlbaranesClienteUSUARIO = 'USUARIO'; + fld_AlbaranesClienteID_FORMA_PAGO = 'ID_FORMA_PAGO'; + fld_AlbaranesClienteFECHA_PREVISTA_ENVIO = 'FECHA_PREVISTA_ENVIO'; + fld_AlbaranesClienteFECHA_ENVIO = 'FECHA_ENVIO'; + fld_AlbaranesClienteFECHA_RECEPCION = 'FECHA_RECEPCION'; + + { AlbaranesCliente field indexes } + idx_AlbaranesClienteID = 0; + idx_AlbaranesClienteID_EMPRESA = 1; + idx_AlbaranesClienteID_CLIENTE = 2; + idx_AlbaranesClienteID_DIRECCION = 3; + idx_AlbaranesClienteNOMBRE = 4; + idx_AlbaranesClienteFECHA_ALBARAN = 5; + idx_AlbaranesClienteREFERENCIA = 6; + idx_AlbaranesClienteREFERENCIA_CLIENTE = 7; + idx_AlbaranesClienteTIPO = 8; + idx_AlbaranesClienteSITUACION = 9; + idx_AlbaranesClienteID_ALMACEN = 10; + idx_AlbaranesClienteNOMBRE_ALMACEN = 11; + idx_AlbaranesClienteID_PEDIDO = 12; + idx_AlbaranesClienteREF_PEDIDO = 13; + idx_AlbaranesClienteID_FACTURA = 14; + idx_AlbaranesClienteREF_FACTURA = 15; + idx_AlbaranesClienteCALLE = 16; + idx_AlbaranesClienteCODIGO_POSTAL = 17; + idx_AlbaranesClientePOBLACION = 18; + idx_AlbaranesClientePROVINCIA = 19; + idx_AlbaranesClientePERSONA_CONTACTO = 20; + idx_AlbaranesClienteTELEFONO = 21; + idx_AlbaranesClienteIMPORTE_NETO = 22; + idx_AlbaranesClienteIMPORTE_PORTE = 23; + idx_AlbaranesClienteDESCUENTO = 24; + idx_AlbaranesClienteIMPORTE_DESCUENTO = 25; + idx_AlbaranesClienteBASE_IMPONIBLE = 26; + idx_AlbaranesClienteIVA = 27; + idx_AlbaranesClienteIMPORTE_IVA = 28; + idx_AlbaranesClienteIMPORTE_TOTAL = 29; + idx_AlbaranesClienteOBSERVACIONES = 30; + idx_AlbaranesClienteINCIDENCIAS = 31; + idx_AlbaranesClienteINCIDENCIAS_ACTIVAS = 32; + idx_AlbaranesClienteFECHA_ALTA = 33; + idx_AlbaranesClienteFECHA_MODIFICACION = 34; + idx_AlbaranesClienteUSUARIO = 35; + idx_AlbaranesClienteID_FORMA_PAGO = 36; + idx_AlbaranesClienteFECHA_PREVISTA_ENVIO = 37; + idx_AlbaranesClienteFECHA_ENVIO = 38; + idx_AlbaranesClienteFECHA_RECEPCION = 39; + + { AlbaranesCliente_Detalles fields } + fld_AlbaranesCliente_DetallesID = 'ID'; + fld_AlbaranesCliente_DetallesID_ALBARAN = 'ID_ALBARAN'; + fld_AlbaranesCliente_DetallesPOSICION = 'POSICION'; + fld_AlbaranesCliente_DetallesTIPO_DETALLE = 'TIPO_DETALLE'; + fld_AlbaranesCliente_DetallesCONCEPTO = 'CONCEPTO'; + fld_AlbaranesCliente_DetallesCANTIDAD = 'CANTIDAD'; + fld_AlbaranesCliente_DetallesUNIDAD_MEDIDA = 'UNIDAD_MEDIDA'; + fld_AlbaranesCliente_DetallesIMPORTE_UNIDAD = 'IMPORTE_UNIDAD'; + fld_AlbaranesCliente_DetallesDESCUENTO = 'DESCUENTO'; + fld_AlbaranesCliente_DetallesIMPORTE_PORTE = 'IMPORTE_PORTE'; + fld_AlbaranesCliente_DetallesIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_AlbaranesCliente_DetallesVISIBLE = 'VISIBLE'; + fld_AlbaranesCliente_DetallesID_ARTICULO = 'ID_ARTICULO'; + fld_AlbaranesCliente_DetallesREFERENCIA = 'REFERENCIA'; + fld_AlbaranesCliente_DetallesREFERENCIA_PROVEEDOR = 'REFERENCIA_PROVEEDOR'; + fld_AlbaranesCliente_DetallesID_PEDIDO = 'ID_PEDIDO'; + + { AlbaranesCliente_Detalles field indexes } + idx_AlbaranesCliente_DetallesID = 0; + idx_AlbaranesCliente_DetallesID_ALBARAN = 1; + idx_AlbaranesCliente_DetallesPOSICION = 2; + idx_AlbaranesCliente_DetallesTIPO_DETALLE = 3; + idx_AlbaranesCliente_DetallesCONCEPTO = 4; + idx_AlbaranesCliente_DetallesCANTIDAD = 5; + idx_AlbaranesCliente_DetallesUNIDAD_MEDIDA = 6; + idx_AlbaranesCliente_DetallesIMPORTE_UNIDAD = 7; + idx_AlbaranesCliente_DetallesDESCUENTO = 8; + idx_AlbaranesCliente_DetallesIMPORTE_PORTE = 9; + idx_AlbaranesCliente_DetallesIMPORTE_TOTAL = 10; + idx_AlbaranesCliente_DetallesVISIBLE = 11; + idx_AlbaranesCliente_DetallesID_ARTICULO = 12; + idx_AlbaranesCliente_DetallesREFERENCIA = 13; + idx_AlbaranesCliente_DetallesREFERENCIA_PROVEEDOR = 14; + idx_AlbaranesCliente_DetallesID_PEDIDO = 15; + +type + { IListaAnosAlbaranes } + IListaAnosAlbaranes = interface(IDAStronglyTypedDataTable) + ['{A625E55F-A727-4F88-9DAA-605DD60159D7}'] + { Property getters and setters } + function GetANOValue: String; + procedure SetANOValue(const aValue: String); + function GetANOIsNull: Boolean; + procedure SetANOIsNull(const aValue: Boolean); + + + { Properties } + property ANO: String read GetANOValue write SetANOValue; + property ANOIsNull: Boolean read GetANOIsNull write SetANOIsNull; + end; + + { TListaAnosAlbaranesDataTableRules } + TListaAnosAlbaranesDataTableRules = class(TIntfObjectDADataTableRules, IListaAnosAlbaranes) + private + protected + { Property getters and setters } + function GetANOValue: String; virtual; + procedure SetANOValue(const aValue: String); virtual; + function GetANOIsNull: Boolean; virtual; + procedure SetANOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ANO: String read GetANOValue write SetANOValue; + property ANOIsNull: Boolean read GetANOIsNull write SetANOIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IAlbaranesCliente } + IAlbaranesCliente = interface(IDAStronglyTypedDataTable) + ['{B3652632-A310-4050-B523-49C26C41F857}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_EMPRESAIsNull: Boolean; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); + function GetID_CLIENTEValue: Integer; + procedure SetID_CLIENTEValue(const aValue: Integer); + function GetID_CLIENTEIsNull: Boolean; + procedure SetID_CLIENTEIsNull(const aValue: Boolean); + function GetID_DIRECCIONValue: Integer; + procedure SetID_DIRECCIONValue(const aValue: Integer); + function GetID_DIRECCIONIsNull: Boolean; + procedure SetID_DIRECCIONIsNull(const aValue: Boolean); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetNOMBREIsNull: Boolean; + procedure SetNOMBREIsNull(const aValue: Boolean); + function GetFECHA_ALBARANValue: DateTime; + procedure SetFECHA_ALBARANValue(const aValue: DateTime); + function GetFECHA_ALBARANIsNull: Boolean; + procedure SetFECHA_ALBARANIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetREFERENCIA_CLIENTEValue: String; + procedure SetREFERENCIA_CLIENTEValue(const aValue: String); + function GetREFERENCIA_CLIENTEIsNull: Boolean; + procedure SetREFERENCIA_CLIENTEIsNull(const aValue: Boolean); + function GetTIPOValue: String; + procedure SetTIPOValue(const aValue: String); + function GetTIPOIsNull: Boolean; + procedure SetTIPOIsNull(const aValue: Boolean); + function GetSITUACIONValue: String; + procedure SetSITUACIONValue(const aValue: String); + function GetSITUACIONIsNull: Boolean; + procedure SetSITUACIONIsNull(const aValue: Boolean); + function GetID_ALMACENValue: Integer; + procedure SetID_ALMACENValue(const aValue: Integer); + function GetID_ALMACENIsNull: Boolean; + procedure SetID_ALMACENIsNull(const aValue: Boolean); + function GetNOMBRE_ALMACENValue: String; + procedure SetNOMBRE_ALMACENValue(const aValue: String); + function GetNOMBRE_ALMACENIsNull: Boolean; + procedure SetNOMBRE_ALMACENIsNull(const aValue: Boolean); + function GetID_PEDIDOValue: Integer; + procedure SetID_PEDIDOValue(const aValue: Integer); + function GetID_PEDIDOIsNull: Boolean; + procedure SetID_PEDIDOIsNull(const aValue: Boolean); + function GetREF_PEDIDOValue: String; + procedure SetREF_PEDIDOValue(const aValue: String); + function GetREF_PEDIDOIsNull: Boolean; + procedure SetREF_PEDIDOIsNull(const aValue: Boolean); + function GetID_FACTURAValue: Integer; + procedure SetID_FACTURAValue(const aValue: Integer); + function GetID_FACTURAIsNull: Boolean; + procedure SetID_FACTURAIsNull(const aValue: Boolean); + function GetREF_FACTURAValue: String; + procedure SetREF_FACTURAValue(const aValue: String); + function GetREF_FACTURAIsNull: Boolean; + procedure SetREF_FACTURAIsNull(const aValue: Boolean); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetCALLEIsNull: Boolean; + procedure SetCALLEIsNull(const aValue: Boolean); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetCODIGO_POSTALIsNull: Boolean; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPOBLACIONIsNull: Boolean; + procedure SetPOBLACIONIsNull(const aValue: Boolean); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetPROVINCIAIsNull: Boolean; + procedure SetPROVINCIAIsNull(const aValue: Boolean); + function GetPERSONA_CONTACTOValue: String; + procedure SetPERSONA_CONTACTOValue(const aValue: String); + function GetPERSONA_CONTACTOIsNull: Boolean; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); + function GetTELEFONOValue: String; + procedure SetTELEFONOValue(const aValue: String); + function GetTELEFONOIsNull: Boolean; + procedure SetTELEFONOIsNull(const aValue: Boolean); + function GetIMPORTE_NETOValue: Currency; + procedure SetIMPORTE_NETOValue(const aValue: Currency); + function GetIMPORTE_NETOIsNull: Boolean; + procedure SetIMPORTE_NETOIsNull(const aValue: Boolean); + function GetIMPORTE_PORTEValue: Currency; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); + function GetIMPORTE_PORTEIsNull: Boolean; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetDESCUENTOIsNull: Boolean; + procedure SetDESCUENTOIsNull(const aValue: Boolean); + function GetIMPORTE_DESCUENTOValue: Currency; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); + function GetIMPORTE_DESCUENTOIsNull: Boolean; + procedure SetIMPORTE_DESCUENTOIsNull(const aValue: Boolean); + function GetBASE_IMPONIBLEValue: Currency; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); + function GetBASE_IMPONIBLEIsNull: Boolean; + procedure SetBASE_IMPONIBLEIsNull(const aValue: Boolean); + function GetIVAValue: Float; + procedure SetIVAValue(const aValue: Float); + function GetIVAIsNull: Boolean; + procedure SetIVAIsNull(const aValue: Boolean); + function GetIMPORTE_IVAValue: Currency; + procedure SetIMPORTE_IVAValue(const aValue: Currency); + function GetIMPORTE_IVAIsNull: Boolean; + procedure SetIMPORTE_IVAIsNull(const aValue: Boolean); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetIMPORTE_TOTALIsNull: Boolean; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); + function GetOBSERVACIONESValue: IROStrings; + function GetOBSERVACIONESIsNull: Boolean; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); + function GetINCIDENCIASValue: IROStrings; + function GetINCIDENCIASIsNull: Boolean; + procedure SetINCIDENCIASIsNull(const aValue: Boolean); + function GetINCIDENCIAS_ACTIVASValue: Integer; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); + function GetINCIDENCIAS_ACTIVASIsNull: Boolean; + procedure SetINCIDENCIAS_ACTIVASIsNull(const aValue: Boolean); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_ALTAIsNull: Boolean; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONIsNull: Boolean; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetUSUARIOIsNull: Boolean; + procedure SetUSUARIOIsNull(const aValue: Boolean); + function GetID_FORMA_PAGOValue: Integer; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); + function GetID_FORMA_PAGOIsNull: Boolean; + procedure SetID_FORMA_PAGOIsNull(const aValue: Boolean); + function GetFECHA_PREVISTA_ENVIOValue: DateTime; + procedure SetFECHA_PREVISTA_ENVIOValue(const aValue: DateTime); + function GetFECHA_PREVISTA_ENVIOIsNull: Boolean; + procedure SetFECHA_PREVISTA_ENVIOIsNull(const aValue: Boolean); + function GetFECHA_ENVIOValue: DateTime; + procedure SetFECHA_ENVIOValue(const aValue: DateTime); + function GetFECHA_ENVIOIsNull: Boolean; + procedure SetFECHA_ENVIOIsNull(const aValue: Boolean); + function GetFECHA_RECEPCIONValue: DateTime; + procedure SetFECHA_RECEPCIONValue(const aValue: DateTime); + function GetFECHA_RECEPCIONIsNull: Boolean; + procedure SetFECHA_RECEPCIONIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property ID_CLIENTEIsNull: Boolean read GetID_CLIENTEIsNull write SetID_CLIENTEIsNull; + property ID_DIRECCION: Integer read GetID_DIRECCIONValue write SetID_DIRECCIONValue; + property ID_DIRECCIONIsNull: Boolean read GetID_DIRECCIONIsNull write SetID_DIRECCIONIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property FECHA_ALBARAN: DateTime read GetFECHA_ALBARANValue write SetFECHA_ALBARANValue; + property FECHA_ALBARANIsNull: Boolean read GetFECHA_ALBARANIsNull write SetFECHA_ALBARANIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property REFERENCIA_CLIENTE: String read GetREFERENCIA_CLIENTEValue write SetREFERENCIA_CLIENTEValue; + property REFERENCIA_CLIENTEIsNull: Boolean read GetREFERENCIA_CLIENTEIsNull write SetREFERENCIA_CLIENTEIsNull; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull: Boolean read GetTIPOIsNull write SetTIPOIsNull; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property SITUACIONIsNull: Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull; + property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property ID_ALMACENIsNull: Boolean read GetID_ALMACENIsNull write SetID_ALMACENIsNull; + property NOMBRE_ALMACEN: String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property NOMBRE_ALMACENIsNull: Boolean read GetNOMBRE_ALMACENIsNull write SetNOMBRE_ALMACENIsNull; + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property ID_PEDIDOIsNull: Boolean read GetID_PEDIDOIsNull write SetID_PEDIDOIsNull; + property REF_PEDIDO: String read GetREF_PEDIDOValue write SetREF_PEDIDOValue; + property REF_PEDIDOIsNull: Boolean read GetREF_PEDIDOIsNull write SetREF_PEDIDOIsNull; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull: Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property REF_FACTURA: String read GetREF_FACTURAValue write SetREF_FACTURAValue; + property REF_FACTURAIsNull: Boolean read GetREF_FACTURAIsNull write SetREF_FACTURAIsNull; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull: Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property TELEFONOIsNull: Boolean read GetTELEFONOIsNull write SetTELEFONOIsNull; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_NETOIsNull: Boolean read GetIMPORTE_NETOIsNull write SetIMPORTE_NETOIsNull; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull: Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property IMPORTE_DESCUENTOIsNull: Boolean read GetIMPORTE_DESCUENTOIsNull write SetIMPORTE_DESCUENTOIsNull; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property BASE_IMPONIBLEIsNull: Boolean read GetBASE_IMPONIBLEIsNull write SetBASE_IMPONIBLEIsNull; + property IVA: Float read GetIVAValue write SetIVAValue; + property IVAIsNull: Boolean read GetIVAIsNull write SetIVAIsNull; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property IMPORTE_IVAIsNull: Boolean read GetIMPORTE_IVAIsNull write SetIMPORTE_IVAIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue; + property OBSERVACIONESIsNull: Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property INCIDENCIAS: IROStrings read GetINCIDENCIASValue; + property INCIDENCIASIsNull: Boolean read GetINCIDENCIASIsNull write SetINCIDENCIASIsNull; + property INCIDENCIAS_ACTIVAS: Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property INCIDENCIAS_ACTIVASIsNull: Boolean read GetINCIDENCIAS_ACTIVASIsNull write SetINCIDENCIAS_ACTIVASIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property ID_FORMA_PAGOIsNull: Boolean read GetID_FORMA_PAGOIsNull write SetID_FORMA_PAGOIsNull; + property FECHA_PREVISTA_ENVIO: DateTime read GetFECHA_PREVISTA_ENVIOValue write SetFECHA_PREVISTA_ENVIOValue; + property FECHA_PREVISTA_ENVIOIsNull: Boolean read GetFECHA_PREVISTA_ENVIOIsNull write SetFECHA_PREVISTA_ENVIOIsNull; + property FECHA_ENVIO: DateTime read GetFECHA_ENVIOValue write SetFECHA_ENVIOValue; + property FECHA_ENVIOIsNull: Boolean read GetFECHA_ENVIOIsNull write SetFECHA_ENVIOIsNull; + property FECHA_RECEPCION: DateTime read GetFECHA_RECEPCIONValue write SetFECHA_RECEPCIONValue; + property FECHA_RECEPCIONIsNull: Boolean read GetFECHA_RECEPCIONIsNull write SetFECHA_RECEPCIONIsNull; + end; + + { TAlbaranesClienteDataTableRules } + TAlbaranesClienteDataTableRules = class(TIntfObjectDADataTableRules, IAlbaranesCliente) + private + f_OBSERVACIONES: IROStrings; + f_INCIDENCIAS: IROStrings; + procedure OBSERVACIONES_OnChange(Sender: TObject); + procedure INCIDENCIAS_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetID_CLIENTEValue: Integer; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + function GetID_CLIENTEIsNull: Boolean; virtual; + procedure SetID_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetID_DIRECCIONValue: Integer; virtual; + procedure SetID_DIRECCIONValue(const aValue: Integer); virtual; + function GetID_DIRECCIONIsNull: Boolean; virtual; + procedure SetID_DIRECCIONIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALBARANValue: DateTime; virtual; + procedure SetFECHA_ALBARANValue(const aValue: DateTime); virtual; + function GetFECHA_ALBARANIsNull: Boolean; virtual; + procedure SetFECHA_ALBARANIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_CLIENTEValue: String; virtual; + procedure SetREFERENCIA_CLIENTEValue(const aValue: String); virtual; + function GetREFERENCIA_CLIENTEIsNull: Boolean; virtual; + procedure SetREFERENCIA_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetTIPOValue: String; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + function GetTIPOIsNull: Boolean; virtual; + procedure SetTIPOIsNull(const aValue: Boolean); virtual; + function GetSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetSITUACIONIsNull: Boolean; virtual; + procedure SetSITUACIONIsNull(const aValue: Boolean); virtual; + function GetID_ALMACENValue: Integer; virtual; + procedure SetID_ALMACENValue(const aValue: Integer); virtual; + function GetID_ALMACENIsNull: Boolean; virtual; + procedure SetID_ALMACENIsNull(const aValue: Boolean); virtual; + function GetNOMBRE_ALMACENValue: String; virtual; + procedure SetNOMBRE_ALMACENValue(const aValue: String); virtual; + function GetNOMBRE_ALMACENIsNull: Boolean; virtual; + procedure SetNOMBRE_ALMACENIsNull(const aValue: Boolean); virtual; + function GetID_PEDIDOValue: Integer; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + function GetID_PEDIDOIsNull: Boolean; virtual; + procedure SetID_PEDIDOIsNull(const aValue: Boolean); virtual; + function GetREF_PEDIDOValue: String; virtual; + procedure SetREF_PEDIDOValue(const aValue: String); virtual; + function GetREF_PEDIDOIsNull: Boolean; virtual; + procedure SetREF_PEDIDOIsNull(const aValue: Boolean); virtual; + function GetID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetID_FACTURAIsNull: Boolean; virtual; + procedure SetID_FACTURAIsNull(const aValue: Boolean); virtual; + function GetREF_FACTURAValue: String; virtual; + procedure SetREF_FACTURAValue(const aValue: String); virtual; + function GetREF_FACTURAIsNull: Boolean; virtual; + procedure SetREF_FACTURAIsNull(const aValue: Boolean); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetCALLEIsNull: Boolean; virtual; + procedure SetCALLEIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetCODIGO_POSTALIsNull: Boolean; virtual; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPOBLACIONIsNull: Boolean; virtual; + procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetPROVINCIAIsNull: Boolean; virtual; + procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + function GetPERSONA_CONTACTOIsNull: Boolean; virtual; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); virtual; + function GetTELEFONOValue: String; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + function GetTELEFONOIsNull: Boolean; virtual; + procedure SetTELEFONOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + function GetIMPORTE_NETOIsNull: Boolean; virtual; + procedure SetIMPORTE_NETOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEIsNull: Boolean; virtual; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + function GetIMPORTE_DESCUENTOIsNull: Boolean; virtual; + procedure SetIMPORTE_DESCUENTOIsNull(const aValue: Boolean); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + function GetBASE_IMPONIBLEIsNull: Boolean; virtual; + procedure SetBASE_IMPONIBLEIsNull(const aValue: Boolean); virtual; + function GetIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + function GetIVAIsNull: Boolean; virtual; + procedure SetIVAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + function GetIMPORTE_IVAIsNull: Boolean; virtual; + procedure SetIMPORTE_IVAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + function GetOBSERVACIONESIsNull: Boolean; virtual; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); virtual; + function GetINCIDENCIASValue: IROStrings; virtual; + function GetINCIDENCIASIsNull: Boolean; virtual; + procedure SetINCIDENCIASIsNull(const aValue: Boolean); virtual; + function GetINCIDENCIAS_ACTIVASValue: Integer; virtual; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); virtual; + function GetINCIDENCIAS_ACTIVASIsNull: Boolean; virtual; + procedure SetINCIDENCIAS_ACTIVASIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + function GetID_FORMA_PAGOIsNull: Boolean; virtual; + procedure SetID_FORMA_PAGOIsNull(const aValue: Boolean); virtual; + function GetFECHA_PREVISTA_ENVIOValue: DateTime; virtual; + procedure SetFECHA_PREVISTA_ENVIOValue(const aValue: DateTime); virtual; + function GetFECHA_PREVISTA_ENVIOIsNull: Boolean; virtual; + procedure SetFECHA_PREVISTA_ENVIOIsNull(const aValue: Boolean); virtual; + function GetFECHA_ENVIOValue: DateTime; virtual; + procedure SetFECHA_ENVIOValue(const aValue: DateTime); virtual; + function GetFECHA_ENVIOIsNull: Boolean; virtual; + procedure SetFECHA_ENVIOIsNull(const aValue: Boolean); virtual; + function GetFECHA_RECEPCIONValue: DateTime; virtual; + procedure SetFECHA_RECEPCIONValue(const aValue: DateTime); virtual; + function GetFECHA_RECEPCIONIsNull: Boolean; virtual; + procedure SetFECHA_RECEPCIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property ID_CLIENTEIsNull: Boolean read GetID_CLIENTEIsNull write SetID_CLIENTEIsNull; + property ID_DIRECCION: Integer read GetID_DIRECCIONValue write SetID_DIRECCIONValue; + property ID_DIRECCIONIsNull: Boolean read GetID_DIRECCIONIsNull write SetID_DIRECCIONIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property FECHA_ALBARAN: DateTime read GetFECHA_ALBARANValue write SetFECHA_ALBARANValue; + property FECHA_ALBARANIsNull: Boolean read GetFECHA_ALBARANIsNull write SetFECHA_ALBARANIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property REFERENCIA_CLIENTE: String read GetREFERENCIA_CLIENTEValue write SetREFERENCIA_CLIENTEValue; + property REFERENCIA_CLIENTEIsNull: Boolean read GetREFERENCIA_CLIENTEIsNull write SetREFERENCIA_CLIENTEIsNull; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull: Boolean read GetTIPOIsNull write SetTIPOIsNull; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property SITUACIONIsNull: Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull; + property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property ID_ALMACENIsNull: Boolean read GetID_ALMACENIsNull write SetID_ALMACENIsNull; + property NOMBRE_ALMACEN: String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property NOMBRE_ALMACENIsNull: Boolean read GetNOMBRE_ALMACENIsNull write SetNOMBRE_ALMACENIsNull; + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property ID_PEDIDOIsNull: Boolean read GetID_PEDIDOIsNull write SetID_PEDIDOIsNull; + property REF_PEDIDO: String read GetREF_PEDIDOValue write SetREF_PEDIDOValue; + property REF_PEDIDOIsNull: Boolean read GetREF_PEDIDOIsNull write SetREF_PEDIDOIsNull; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull: Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property REF_FACTURA: String read GetREF_FACTURAValue write SetREF_FACTURAValue; + property REF_FACTURAIsNull: Boolean read GetREF_FACTURAIsNull write SetREF_FACTURAIsNull; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull: Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property TELEFONOIsNull: Boolean read GetTELEFONOIsNull write SetTELEFONOIsNull; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_NETOIsNull: Boolean read GetIMPORTE_NETOIsNull write SetIMPORTE_NETOIsNull; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull: Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property IMPORTE_DESCUENTOIsNull: Boolean read GetIMPORTE_DESCUENTOIsNull write SetIMPORTE_DESCUENTOIsNull; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property BASE_IMPONIBLEIsNull: Boolean read GetBASE_IMPONIBLEIsNull write SetBASE_IMPONIBLEIsNull; + property IVA: Float read GetIVAValue write SetIVAValue; + property IVAIsNull: Boolean read GetIVAIsNull write SetIVAIsNull; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property IMPORTE_IVAIsNull: Boolean read GetIMPORTE_IVAIsNull write SetIMPORTE_IVAIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue; + property OBSERVACIONESIsNull: Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property INCIDENCIAS: IROStrings read GetINCIDENCIASValue; + property INCIDENCIASIsNull: Boolean read GetINCIDENCIASIsNull write SetINCIDENCIASIsNull; + property INCIDENCIAS_ACTIVAS: Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property INCIDENCIAS_ACTIVASIsNull: Boolean read GetINCIDENCIAS_ACTIVASIsNull write SetINCIDENCIAS_ACTIVASIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property ID_FORMA_PAGOIsNull: Boolean read GetID_FORMA_PAGOIsNull write SetID_FORMA_PAGOIsNull; + property FECHA_PREVISTA_ENVIO: DateTime read GetFECHA_PREVISTA_ENVIOValue write SetFECHA_PREVISTA_ENVIOValue; + property FECHA_PREVISTA_ENVIOIsNull: Boolean read GetFECHA_PREVISTA_ENVIOIsNull write SetFECHA_PREVISTA_ENVIOIsNull; + property FECHA_ENVIO: DateTime read GetFECHA_ENVIOValue write SetFECHA_ENVIOValue; + property FECHA_ENVIOIsNull: Boolean read GetFECHA_ENVIOIsNull write SetFECHA_ENVIOIsNull; + property FECHA_RECEPCION: DateTime read GetFECHA_RECEPCIONValue write SetFECHA_RECEPCIONValue; + property FECHA_RECEPCIONIsNull: Boolean read GetFECHA_RECEPCIONIsNull write SetFECHA_RECEPCIONIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IAlbaranesCliente_Detalles } + IAlbaranesCliente_Detalles = interface(IDAStronglyTypedDataTable) + ['{AF2BB21F-76D4-42AD-9190-C2CC3934F6B9}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_ALBARANValue: Integer; + procedure SetID_ALBARANValue(const aValue: Integer); + function GetID_ALBARANIsNull: Boolean; + procedure SetID_ALBARANIsNull(const aValue: Boolean); + function GetPOSICIONValue: Integer; + procedure SetPOSICIONValue(const aValue: Integer); + function GetPOSICIONIsNull: Boolean; + procedure SetPOSICIONIsNull(const aValue: Boolean); + function GetTIPO_DETALLEValue: String; + procedure SetTIPO_DETALLEValue(const aValue: String); + function GetTIPO_DETALLEIsNull: Boolean; + procedure SetTIPO_DETALLEIsNull(const aValue: Boolean); + function GetCONCEPTOValue: String; + procedure SetCONCEPTOValue(const aValue: String); + function GetCONCEPTOIsNull: Boolean; + procedure SetCONCEPTOIsNull(const aValue: Boolean); + function GetCANTIDADValue: Float; + procedure SetCANTIDADValue(const aValue: Float); + function GetCANTIDADIsNull: Boolean; + procedure SetCANTIDADIsNull(const aValue: Boolean); + function GetUNIDAD_MEDIDAValue: String; + procedure SetUNIDAD_MEDIDAValue(const aValue: String); + function GetUNIDAD_MEDIDAIsNull: Boolean; + procedure SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); + function GetIMPORTE_UNIDADValue: Currency; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); + function GetIMPORTE_UNIDADIsNull: Boolean; + procedure SetIMPORTE_UNIDADIsNull(const aValue: Boolean); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetDESCUENTOIsNull: Boolean; + procedure SetDESCUENTOIsNull(const aValue: Boolean); + function GetIMPORTE_PORTEValue: Currency; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); + function GetIMPORTE_PORTEIsNull: Boolean; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetIMPORTE_TOTALIsNull: Boolean; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); + function GetVISIBLEValue: Integer; + procedure SetVISIBLEValue(const aValue: Integer); + function GetVISIBLEIsNull: Boolean; + procedure SetVISIBLEIsNull(const aValue: Boolean); + function GetID_ARTICULOValue: Integer; + procedure SetID_ARTICULOValue(const aValue: Integer); + function GetID_ARTICULOIsNull: Boolean; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetREFERENCIA_PROVEEDORValue: String; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); + function GetREFERENCIA_PROVEEDORIsNull: Boolean; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); + function GetID_PEDIDOValue: Integer; + procedure SetID_PEDIDOValue(const aValue: Integer); + function GetID_PEDIDOIsNull: Boolean; + procedure SetID_PEDIDOIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_ALBARAN: Integer read GetID_ALBARANValue write SetID_ALBARANValue; + property ID_ALBARANIsNull: Boolean read GetID_ALBARANIsNull write SetID_ALBARANIsNull; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property POSICIONIsNull: Boolean read GetPOSICIONIsNull write SetPOSICIONIsNull; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property TIPO_DETALLEIsNull: Boolean read GetTIPO_DETALLEIsNull write SetTIPO_DETALLEIsNull; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CONCEPTOIsNull: Boolean read GetCONCEPTOIsNull write SetCONCEPTOIsNull; + property CANTIDAD: Float read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDADIsNull: Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; + property UNIDAD_MEDIDA: String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue; + property UNIDAD_MEDIDAIsNull: Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull; + property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_UNIDADIsNull: Boolean read GetIMPORTE_UNIDADIsNull write SetIMPORTE_UNIDADIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull: Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property VISIBLEIsNull: Boolean read GetVISIBLEIsNull write SetVISIBLEIsNull; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull: Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull: Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property ID_PEDIDOIsNull: Boolean read GetID_PEDIDOIsNull write SetID_PEDIDOIsNull; + end; + + { TAlbaranesCliente_DetallesDataTableRules } + TAlbaranesCliente_DetallesDataTableRules = class(TIntfObjectDADataTableRules, IAlbaranesCliente_Detalles) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_ALBARANValue: Integer; virtual; + procedure SetID_ALBARANValue(const aValue: Integer); virtual; + function GetID_ALBARANIsNull: Boolean; virtual; + procedure SetID_ALBARANIsNull(const aValue: Boolean); virtual; + function GetPOSICIONValue: Integer; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + function GetPOSICIONIsNull: Boolean; virtual; + procedure SetPOSICIONIsNull(const aValue: Boolean); virtual; + function GetTIPO_DETALLEValue: String; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + function GetTIPO_DETALLEIsNull: Boolean; virtual; + procedure SetTIPO_DETALLEIsNull(const aValue: Boolean); virtual; + function GetCONCEPTOValue: String; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + function GetCONCEPTOIsNull: Boolean; virtual; + procedure SetCONCEPTOIsNull(const aValue: Boolean); virtual; + function GetCANTIDADValue: Float; virtual; + procedure SetCANTIDADValue(const aValue: Float); virtual; + function GetCANTIDADIsNull: Boolean; virtual; + procedure SetCANTIDADIsNull(const aValue: Boolean); virtual; + function GetUNIDAD_MEDIDAValue: String; virtual; + procedure SetUNIDAD_MEDIDAValue(const aValue: String); virtual; + function GetUNIDAD_MEDIDAIsNull: Boolean; virtual; + procedure SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_UNIDADValue: Currency; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual; + function GetIMPORTE_UNIDADIsNull: Boolean; virtual; + procedure SetIMPORTE_UNIDADIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEIsNull: Boolean; virtual; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetVISIBLEValue: Integer; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + function GetVISIBLEIsNull: Boolean; virtual; + procedure SetVISIBLEIsNull(const aValue: Boolean); virtual; + function GetID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetID_ARTICULOIsNull: Boolean; virtual; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + function GetREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetID_PEDIDOValue: Integer; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + function GetID_PEDIDOIsNull: Boolean; virtual; + procedure SetID_PEDIDOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_ALBARAN: Integer read GetID_ALBARANValue write SetID_ALBARANValue; + property ID_ALBARANIsNull: Boolean read GetID_ALBARANIsNull write SetID_ALBARANIsNull; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property POSICIONIsNull: Boolean read GetPOSICIONIsNull write SetPOSICIONIsNull; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property TIPO_DETALLEIsNull: Boolean read GetTIPO_DETALLEIsNull write SetTIPO_DETALLEIsNull; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CONCEPTOIsNull: Boolean read GetCONCEPTOIsNull write SetCONCEPTOIsNull; + property CANTIDAD: Float read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDADIsNull: Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; + property UNIDAD_MEDIDA: String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue; + property UNIDAD_MEDIDAIsNull: Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull; + property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_UNIDADIsNull: Boolean read GetIMPORTE_UNIDADIsNull write SetIMPORTE_UNIDADIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull: Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property VISIBLEIsNull: Boolean read GetVISIBLEIsNull write SetVISIBLEIsNull; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull: Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull: Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property ID_PEDIDOIsNull: Boolean read GetID_PEDIDOIsNull write SetID_PEDIDOIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants, uROBinaryHelpers; + +{ TListaAnosAlbaranesDataTableRules } +constructor TListaAnosAlbaranesDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TListaAnosAlbaranesDataTableRules.Destroy; +begin + inherited; +end; + +function TListaAnosAlbaranesDataTableRules.GetANOValue: String; +begin + result := DataTable.Fields[idx_ListaAnosAlbaranesANO].AsString; +end; + +procedure TListaAnosAlbaranesDataTableRules.SetANOValue(const aValue: String); +begin + DataTable.Fields[idx_ListaAnosAlbaranesANO].AsString := aValue; +end; + +function TListaAnosAlbaranesDataTableRules.GetANOIsNull: boolean; +begin + result := DataTable.Fields[idx_ListaAnosAlbaranesANO].IsNull; +end; + +procedure TListaAnosAlbaranesDataTableRules.SetANOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ListaAnosAlbaranesANO].AsVariant := Null; +end; + + +{ TAlbaranesClienteDataTableRules } +constructor TAlbaranesClienteDataTableRules.Create(aDataTable: TDADataTable); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := OBSERVACIONES_OnChange; + f_OBSERVACIONES := NewROStrings(StrList,True); + + StrList := TStringList.Create; + StrList.OnChange := INCIDENCIAS_OnChange; + f_INCIDENCIAS := NewROStrings(StrList,True); +end; + +destructor TAlbaranesClienteDataTableRules.Destroy; +begin + inherited; +end; + +procedure TAlbaranesClienteDataTableRules.OBSERVACIONES_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_AlbaranesClienteOBSERVACIONES].AsVariant := TStringList(Sender).Text; +end; + +procedure TAlbaranesClienteDataTableRules.INCIDENCIAS_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_AlbaranesClienteINCIDENCIAS].AsVariant := TStringList(Sender).Text; +end; + +function TAlbaranesClienteDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesClienteID].AsInteger; +end; + +procedure TAlbaranesClienteDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesClienteID].AsInteger := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteID].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteID].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesClienteID_EMPRESA].AsInteger; +end; + +procedure TAlbaranesClienteDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesClienteID_EMPRESA].AsInteger := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetID_EMPRESAIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteID_EMPRESA].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteID_EMPRESA].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetID_CLIENTEValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesClienteID_CLIENTE].AsInteger; +end; + +procedure TAlbaranesClienteDataTableRules.SetID_CLIENTEValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesClienteID_CLIENTE].AsInteger := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetID_CLIENTEIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteID_CLIENTE].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetID_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteID_CLIENTE].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetID_DIRECCIONValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesClienteID_DIRECCION].AsInteger; +end; + +procedure TAlbaranesClienteDataTableRules.SetID_DIRECCIONValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesClienteID_DIRECCION].AsInteger := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetID_DIRECCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteID_DIRECCION].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetID_DIRECCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteID_DIRECCION].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_AlbaranesClienteNOMBRE].AsString; +end; + +procedure TAlbaranesClienteDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesClienteNOMBRE].AsString := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetNOMBREIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteNOMBRE].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteNOMBRE].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetFECHA_ALBARANValue: DateTime; +begin + result := DataTable.Fields[idx_AlbaranesClienteFECHA_ALBARAN].AsDateTime; +end; + +procedure TAlbaranesClienteDataTableRules.SetFECHA_ALBARANValue(const aValue: DateTime); +begin + DataTable.Fields[idx_AlbaranesClienteFECHA_ALBARAN].AsDateTime := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetFECHA_ALBARANIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteFECHA_ALBARAN].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetFECHA_ALBARANIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteFECHA_ALBARAN].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_AlbaranesClienteREFERENCIA].AsString; +end; + +procedure TAlbaranesClienteDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesClienteREFERENCIA].AsString := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteREFERENCIA].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteREFERENCIA].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetREFERENCIA_CLIENTEValue: String; +begin + result := DataTable.Fields[idx_AlbaranesClienteREFERENCIA_CLIENTE].AsString; +end; + +procedure TAlbaranesClienteDataTableRules.SetREFERENCIA_CLIENTEValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesClienteREFERENCIA_CLIENTE].AsString := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetREFERENCIA_CLIENTEIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteREFERENCIA_CLIENTE].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetREFERENCIA_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteREFERENCIA_CLIENTE].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetTIPOValue: String; +begin + result := DataTable.Fields[idx_AlbaranesClienteTIPO].AsString; +end; + +procedure TAlbaranesClienteDataTableRules.SetTIPOValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesClienteTIPO].AsString := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetTIPOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteTIPO].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetTIPOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteTIPO].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetSITUACIONValue: String; +begin + result := DataTable.Fields[idx_AlbaranesClienteSITUACION].AsString; +end; + +procedure TAlbaranesClienteDataTableRules.SetSITUACIONValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesClienteSITUACION].AsString := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetSITUACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteSITUACION].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetSITUACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteSITUACION].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetID_ALMACENValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesClienteID_ALMACEN].AsInteger; +end; + +procedure TAlbaranesClienteDataTableRules.SetID_ALMACENValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesClienteID_ALMACEN].AsInteger := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetID_ALMACENIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteID_ALMACEN].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetID_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteID_ALMACEN].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetNOMBRE_ALMACENValue: String; +begin + result := DataTable.Fields[idx_AlbaranesClienteNOMBRE_ALMACEN].AsString; +end; + +procedure TAlbaranesClienteDataTableRules.SetNOMBRE_ALMACENValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesClienteNOMBRE_ALMACEN].AsString := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetNOMBRE_ALMACENIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteNOMBRE_ALMACEN].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetNOMBRE_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteNOMBRE_ALMACEN].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetID_PEDIDOValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesClienteID_PEDIDO].AsInteger; +end; + +procedure TAlbaranesClienteDataTableRules.SetID_PEDIDOValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesClienteID_PEDIDO].AsInteger := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetID_PEDIDOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteID_PEDIDO].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetID_PEDIDOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteID_PEDIDO].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetREF_PEDIDOValue: String; +begin + result := DataTable.Fields[idx_AlbaranesClienteREF_PEDIDO].AsString; +end; + +procedure TAlbaranesClienteDataTableRules.SetREF_PEDIDOValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesClienteREF_PEDIDO].AsString := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetREF_PEDIDOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteREF_PEDIDO].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetREF_PEDIDOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteREF_PEDIDO].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetID_FACTURAValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesClienteID_FACTURA].AsInteger; +end; + +procedure TAlbaranesClienteDataTableRules.SetID_FACTURAValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesClienteID_FACTURA].AsInteger := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetID_FACTURAIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteID_FACTURA].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetID_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteID_FACTURA].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetREF_FACTURAValue: String; +begin + result := DataTable.Fields[idx_AlbaranesClienteREF_FACTURA].AsString; +end; + +procedure TAlbaranesClienteDataTableRules.SetREF_FACTURAValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesClienteREF_FACTURA].AsString := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetREF_FACTURAIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteREF_FACTURA].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetREF_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteREF_FACTURA].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetCALLEValue: String; +begin + result := DataTable.Fields[idx_AlbaranesClienteCALLE].AsString; +end; + +procedure TAlbaranesClienteDataTableRules.SetCALLEValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesClienteCALLE].AsString := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetCALLEIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteCALLE].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetCALLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteCALLE].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetCODIGO_POSTALValue: String; +begin + result := DataTable.Fields[idx_AlbaranesClienteCODIGO_POSTAL].AsString; +end; + +procedure TAlbaranesClienteDataTableRules.SetCODIGO_POSTALValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesClienteCODIGO_POSTAL].AsString := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetCODIGO_POSTALIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteCODIGO_POSTAL].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetCODIGO_POSTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteCODIGO_POSTAL].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetPOBLACIONValue: String; +begin + result := DataTable.Fields[idx_AlbaranesClientePOBLACION].AsString; +end; + +procedure TAlbaranesClienteDataTableRules.SetPOBLACIONValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesClientePOBLACION].AsString := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetPOBLACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClientePOBLACION].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetPOBLACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClientePOBLACION].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetPROVINCIAValue: String; +begin + result := DataTable.Fields[idx_AlbaranesClientePROVINCIA].AsString; +end; + +procedure TAlbaranesClienteDataTableRules.SetPROVINCIAValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesClientePROVINCIA].AsString := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetPROVINCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClientePROVINCIA].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetPROVINCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClientePROVINCIA].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetPERSONA_CONTACTOValue: String; +begin + result := DataTable.Fields[idx_AlbaranesClientePERSONA_CONTACTO].AsString; +end; + +procedure TAlbaranesClienteDataTableRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesClientePERSONA_CONTACTO].AsString := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetPERSONA_CONTACTOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClientePERSONA_CONTACTO].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetPERSONA_CONTACTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClientePERSONA_CONTACTO].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetTELEFONOValue: String; +begin + result := DataTable.Fields[idx_AlbaranesClienteTELEFONO].AsString; +end; + +procedure TAlbaranesClienteDataTableRules.SetTELEFONOValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesClienteTELEFONO].AsString := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetTELEFONOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteTELEFONO].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetTELEFONOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteTELEFONO].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetIMPORTE_NETOValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesClienteIMPORTE_NETO].AsCurrency; +end; + +procedure TAlbaranesClienteDataTableRules.SetIMPORTE_NETOValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesClienteIMPORTE_NETO].AsCurrency := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetIMPORTE_NETOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteIMPORTE_NETO].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetIMPORTE_NETOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteIMPORTE_NETO].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetIMPORTE_PORTEValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesClienteIMPORTE_PORTE].AsCurrency; +end; + +procedure TAlbaranesClienteDataTableRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesClienteIMPORTE_PORTE].AsCurrency := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetIMPORTE_PORTEIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteIMPORTE_PORTE].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetIMPORTE_PORTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteIMPORTE_PORTE].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_AlbaranesClienteDESCUENTO].AsFloat; +end; + +procedure TAlbaranesClienteDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_AlbaranesClienteDESCUENTO].AsFloat := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetDESCUENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteDESCUENTO].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteDESCUENTO].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetIMPORTE_DESCUENTOValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesClienteIMPORTE_DESCUENTO].AsCurrency; +end; + +procedure TAlbaranesClienteDataTableRules.SetIMPORTE_DESCUENTOValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesClienteIMPORTE_DESCUENTO].AsCurrency := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetIMPORTE_DESCUENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteIMPORTE_DESCUENTO].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetIMPORTE_DESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteIMPORTE_DESCUENTO].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesClienteBASE_IMPONIBLE].AsCurrency; +end; + +procedure TAlbaranesClienteDataTableRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesClienteBASE_IMPONIBLE].AsCurrency := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetBASE_IMPONIBLEIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteBASE_IMPONIBLE].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetBASE_IMPONIBLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteBASE_IMPONIBLE].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetIVAValue: Float; +begin + result := DataTable.Fields[idx_AlbaranesClienteIVA].AsFloat; +end; + +procedure TAlbaranesClienteDataTableRules.SetIVAValue(const aValue: Float); +begin + DataTable.Fields[idx_AlbaranesClienteIVA].AsFloat := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetIVAIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteIVA].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetIVAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteIVA].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetIMPORTE_IVAValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesClienteIMPORTE_IVA].AsCurrency; +end; + +procedure TAlbaranesClienteDataTableRules.SetIMPORTE_IVAValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesClienteIMPORTE_IVA].AsCurrency := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetIMPORTE_IVAIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteIMPORTE_IVA].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetIMPORTE_IVAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteIMPORTE_IVA].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesClienteIMPORTE_TOTAL].AsCurrency; +end; + +procedure TAlbaranesClienteDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesClienteIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetIMPORTE_TOTALIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteIMPORTE_TOTAL].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteIMPORTE_TOTAL].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetOBSERVACIONESValue: IROStrings; +begin + result := f_OBSERVACIONES; + result.Text := DataTable.Fields[idx_AlbaranesClienteOBSERVACIONES].AsString; +end; + +function TAlbaranesClienteDataTableRules.GetOBSERVACIONESIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteOBSERVACIONES].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetOBSERVACIONESIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteOBSERVACIONES].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetINCIDENCIASValue: IROStrings; +begin + result := f_INCIDENCIAS; + result.Text := DataTable.Fields[idx_AlbaranesClienteINCIDENCIAS].AsString; +end; + +function TAlbaranesClienteDataTableRules.GetINCIDENCIASIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteINCIDENCIAS].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetINCIDENCIASIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteINCIDENCIAS].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetINCIDENCIAS_ACTIVASValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesClienteINCIDENCIAS_ACTIVAS].AsInteger; +end; + +procedure TAlbaranesClienteDataTableRules.SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesClienteINCIDENCIAS_ACTIVAS].AsInteger := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetINCIDENCIAS_ACTIVASIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteINCIDENCIAS_ACTIVAS].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetINCIDENCIAS_ACTIVASIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteINCIDENCIAS_ACTIVAS].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_AlbaranesClienteFECHA_ALTA].AsDateTime; +end; + +procedure TAlbaranesClienteDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_AlbaranesClienteFECHA_ALTA].AsDateTime := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetFECHA_ALTAIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteFECHA_ALTA].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteFECHA_ALTA].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_AlbaranesClienteFECHA_MODIFICACION].AsDateTime; +end; + +procedure TAlbaranesClienteDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_AlbaranesClienteFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteFECHA_MODIFICACION].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteFECHA_MODIFICACION].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_AlbaranesClienteUSUARIO].AsString; +end; + +procedure TAlbaranesClienteDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesClienteUSUARIO].AsString := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetUSUARIOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteUSUARIO].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteUSUARIO].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetID_FORMA_PAGOValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesClienteID_FORMA_PAGO].AsInteger; +end; + +procedure TAlbaranesClienteDataTableRules.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesClienteID_FORMA_PAGO].AsInteger := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetID_FORMA_PAGOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteID_FORMA_PAGO].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetID_FORMA_PAGOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteID_FORMA_PAGO].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetFECHA_PREVISTA_ENVIOValue: DateTime; +begin + result := DataTable.Fields[idx_AlbaranesClienteFECHA_PREVISTA_ENVIO].AsDateTime; +end; + +procedure TAlbaranesClienteDataTableRules.SetFECHA_PREVISTA_ENVIOValue(const aValue: DateTime); +begin + DataTable.Fields[idx_AlbaranesClienteFECHA_PREVISTA_ENVIO].AsDateTime := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetFECHA_PREVISTA_ENVIOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteFECHA_PREVISTA_ENVIO].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetFECHA_PREVISTA_ENVIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteFECHA_PREVISTA_ENVIO].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetFECHA_ENVIOValue: DateTime; +begin + result := DataTable.Fields[idx_AlbaranesClienteFECHA_ENVIO].AsDateTime; +end; + +procedure TAlbaranesClienteDataTableRules.SetFECHA_ENVIOValue(const aValue: DateTime); +begin + DataTable.Fields[idx_AlbaranesClienteFECHA_ENVIO].AsDateTime := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetFECHA_ENVIOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteFECHA_ENVIO].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetFECHA_ENVIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteFECHA_ENVIO].AsVariant := Null; +end; + +function TAlbaranesClienteDataTableRules.GetFECHA_RECEPCIONValue: DateTime; +begin + result := DataTable.Fields[idx_AlbaranesClienteFECHA_RECEPCION].AsDateTime; +end; + +procedure TAlbaranesClienteDataTableRules.SetFECHA_RECEPCIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_AlbaranesClienteFECHA_RECEPCION].AsDateTime := aValue; +end; + +function TAlbaranesClienteDataTableRules.GetFECHA_RECEPCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesClienteFECHA_RECEPCION].IsNull; +end; + +procedure TAlbaranesClienteDataTableRules.SetFECHA_RECEPCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesClienteFECHA_RECEPCION].AsVariant := Null; +end; + + +{ TAlbaranesCliente_DetallesDataTableRules } +constructor TAlbaranesCliente_DetallesDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TAlbaranesCliente_DetallesDataTableRules.Destroy; +begin + inherited; +end; + +function TAlbaranesCliente_DetallesDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesCliente_DetallesID].AsInteger; +end; + +procedure TAlbaranesCliente_DetallesDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesCliente_DetallesID].AsInteger := aValue; +end; + +function TAlbaranesCliente_DetallesDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesCliente_DetallesID].IsNull; +end; + +procedure TAlbaranesCliente_DetallesDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesCliente_DetallesID].AsVariant := Null; +end; + +function TAlbaranesCliente_DetallesDataTableRules.GetID_ALBARANValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesCliente_DetallesID_ALBARAN].AsInteger; +end; + +procedure TAlbaranesCliente_DetallesDataTableRules.SetID_ALBARANValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesCliente_DetallesID_ALBARAN].AsInteger := aValue; +end; + +function TAlbaranesCliente_DetallesDataTableRules.GetID_ALBARANIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesCliente_DetallesID_ALBARAN].IsNull; +end; + +procedure TAlbaranesCliente_DetallesDataTableRules.SetID_ALBARANIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesCliente_DetallesID_ALBARAN].AsVariant := Null; +end; + +function TAlbaranesCliente_DetallesDataTableRules.GetPOSICIONValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesCliente_DetallesPOSICION].AsInteger; +end; + +procedure TAlbaranesCliente_DetallesDataTableRules.SetPOSICIONValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesCliente_DetallesPOSICION].AsInteger := aValue; +end; + +function TAlbaranesCliente_DetallesDataTableRules.GetPOSICIONIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesCliente_DetallesPOSICION].IsNull; +end; + +procedure TAlbaranesCliente_DetallesDataTableRules.SetPOSICIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesCliente_DetallesPOSICION].AsVariant := Null; +end; + +function TAlbaranesCliente_DetallesDataTableRules.GetTIPO_DETALLEValue: String; +begin + result := DataTable.Fields[idx_AlbaranesCliente_DetallesTIPO_DETALLE].AsString; +end; + +procedure TAlbaranesCliente_DetallesDataTableRules.SetTIPO_DETALLEValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesCliente_DetallesTIPO_DETALLE].AsString := aValue; +end; + +function TAlbaranesCliente_DetallesDataTableRules.GetTIPO_DETALLEIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesCliente_DetallesTIPO_DETALLE].IsNull; +end; + +procedure TAlbaranesCliente_DetallesDataTableRules.SetTIPO_DETALLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesCliente_DetallesTIPO_DETALLE].AsVariant := Null; +end; + +function TAlbaranesCliente_DetallesDataTableRules.GetCONCEPTOValue: String; +begin + result := DataTable.Fields[idx_AlbaranesCliente_DetallesCONCEPTO].AsString; +end; + +procedure TAlbaranesCliente_DetallesDataTableRules.SetCONCEPTOValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesCliente_DetallesCONCEPTO].AsString := aValue; +end; + +function TAlbaranesCliente_DetallesDataTableRules.GetCONCEPTOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesCliente_DetallesCONCEPTO].IsNull; +end; + +procedure TAlbaranesCliente_DetallesDataTableRules.SetCONCEPTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesCliente_DetallesCONCEPTO].AsVariant := Null; +end; + +function TAlbaranesCliente_DetallesDataTableRules.GetCANTIDADValue: Float; +begin + result := DataTable.Fields[idx_AlbaranesCliente_DetallesCANTIDAD].AsFloat; +end; + +procedure TAlbaranesCliente_DetallesDataTableRules.SetCANTIDADValue(const aValue: Float); +begin + DataTable.Fields[idx_AlbaranesCliente_DetallesCANTIDAD].AsFloat := aValue; +end; + +function TAlbaranesCliente_DetallesDataTableRules.GetCANTIDADIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesCliente_DetallesCANTIDAD].IsNull; +end; + +procedure TAlbaranesCliente_DetallesDataTableRules.SetCANTIDADIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesCliente_DetallesCANTIDAD].AsVariant := Null; +end; + +function TAlbaranesCliente_DetallesDataTableRules.GetUNIDAD_MEDIDAValue: String; +begin + result := DataTable.Fields[idx_AlbaranesCliente_DetallesUNIDAD_MEDIDA].AsString; +end; + +procedure TAlbaranesCliente_DetallesDataTableRules.SetUNIDAD_MEDIDAValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesCliente_DetallesUNIDAD_MEDIDA].AsString := aValue; +end; + +function TAlbaranesCliente_DetallesDataTableRules.GetUNIDAD_MEDIDAIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesCliente_DetallesUNIDAD_MEDIDA].IsNull; +end; + +procedure TAlbaranesCliente_DetallesDataTableRules.SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesCliente_DetallesUNIDAD_MEDIDA].AsVariant := Null; +end; + +function TAlbaranesCliente_DetallesDataTableRules.GetIMPORTE_UNIDADValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesCliente_DetallesIMPORTE_UNIDAD].AsCurrency; +end; + +procedure TAlbaranesCliente_DetallesDataTableRules.SetIMPORTE_UNIDADValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesCliente_DetallesIMPORTE_UNIDAD].AsCurrency := aValue; +end; + +function TAlbaranesCliente_DetallesDataTableRules.GetIMPORTE_UNIDADIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesCliente_DetallesIMPORTE_UNIDAD].IsNull; +end; + +procedure TAlbaranesCliente_DetallesDataTableRules.SetIMPORTE_UNIDADIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesCliente_DetallesIMPORTE_UNIDAD].AsVariant := Null; +end; + +function TAlbaranesCliente_DetallesDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_AlbaranesCliente_DetallesDESCUENTO].AsFloat; +end; + +procedure TAlbaranesCliente_DetallesDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_AlbaranesCliente_DetallesDESCUENTO].AsFloat := aValue; +end; + +function TAlbaranesCliente_DetallesDataTableRules.GetDESCUENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesCliente_DetallesDESCUENTO].IsNull; +end; + +procedure TAlbaranesCliente_DetallesDataTableRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesCliente_DetallesDESCUENTO].AsVariant := Null; +end; + +function TAlbaranesCliente_DetallesDataTableRules.GetIMPORTE_PORTEValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesCliente_DetallesIMPORTE_PORTE].AsCurrency; +end; + +procedure TAlbaranesCliente_DetallesDataTableRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesCliente_DetallesIMPORTE_PORTE].AsCurrency := aValue; +end; + +function TAlbaranesCliente_DetallesDataTableRules.GetIMPORTE_PORTEIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesCliente_DetallesIMPORTE_PORTE].IsNull; +end; + +procedure TAlbaranesCliente_DetallesDataTableRules.SetIMPORTE_PORTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesCliente_DetallesIMPORTE_PORTE].AsVariant := Null; +end; + +function TAlbaranesCliente_DetallesDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesCliente_DetallesIMPORTE_TOTAL].AsCurrency; +end; + +procedure TAlbaranesCliente_DetallesDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesCliente_DetallesIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TAlbaranesCliente_DetallesDataTableRules.GetIMPORTE_TOTALIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesCliente_DetallesIMPORTE_TOTAL].IsNull; +end; + +procedure TAlbaranesCliente_DetallesDataTableRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesCliente_DetallesIMPORTE_TOTAL].AsVariant := Null; +end; + +function TAlbaranesCliente_DetallesDataTableRules.GetVISIBLEValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesCliente_DetallesVISIBLE].AsInteger; +end; + +procedure TAlbaranesCliente_DetallesDataTableRules.SetVISIBLEValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesCliente_DetallesVISIBLE].AsInteger := aValue; +end; + +function TAlbaranesCliente_DetallesDataTableRules.GetVISIBLEIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesCliente_DetallesVISIBLE].IsNull; +end; + +procedure TAlbaranesCliente_DetallesDataTableRules.SetVISIBLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesCliente_DetallesVISIBLE].AsVariant := Null; +end; + +function TAlbaranesCliente_DetallesDataTableRules.GetID_ARTICULOValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesCliente_DetallesID_ARTICULO].AsInteger; +end; + +procedure TAlbaranesCliente_DetallesDataTableRules.SetID_ARTICULOValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesCliente_DetallesID_ARTICULO].AsInteger := aValue; +end; + +function TAlbaranesCliente_DetallesDataTableRules.GetID_ARTICULOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesCliente_DetallesID_ARTICULO].IsNull; +end; + +procedure TAlbaranesCliente_DetallesDataTableRules.SetID_ARTICULOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesCliente_DetallesID_ARTICULO].AsVariant := Null; +end; + +function TAlbaranesCliente_DetallesDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_AlbaranesCliente_DetallesREFERENCIA].AsString; +end; + +procedure TAlbaranesCliente_DetallesDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesCliente_DetallesREFERENCIA].AsString := aValue; +end; + +function TAlbaranesCliente_DetallesDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesCliente_DetallesREFERENCIA].IsNull; +end; + +procedure TAlbaranesCliente_DetallesDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesCliente_DetallesREFERENCIA].AsVariant := Null; +end; + +function TAlbaranesCliente_DetallesDataTableRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_AlbaranesCliente_DetallesREFERENCIA_PROVEEDOR].AsString; +end; + +procedure TAlbaranesCliente_DetallesDataTableRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesCliente_DetallesREFERENCIA_PROVEEDOR].AsString := aValue; +end; + +function TAlbaranesCliente_DetallesDataTableRules.GetREFERENCIA_PROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesCliente_DetallesREFERENCIA_PROVEEDOR].IsNull; +end; + +procedure TAlbaranesCliente_DetallesDataTableRules.SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesCliente_DetallesREFERENCIA_PROVEEDOR].AsVariant := Null; +end; + +function TAlbaranesCliente_DetallesDataTableRules.GetID_PEDIDOValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesCliente_DetallesID_PEDIDO].AsInteger; +end; + +procedure TAlbaranesCliente_DetallesDataTableRules.SetID_PEDIDOValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesCliente_DetallesID_PEDIDO].AsInteger := aValue; +end; + +function TAlbaranesCliente_DetallesDataTableRules.GetID_PEDIDOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesCliente_DetallesID_PEDIDO].IsNull; +end; + +procedure TAlbaranesCliente_DetallesDataTableRules.SetID_PEDIDOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesCliente_DetallesID_PEDIDO].AsVariant := Null; +end; + + +initialization + RegisterDataTableRules(RID_ListaAnosAlbaranes, TListaAnosAlbaranesDataTableRules); + RegisterDataTableRules(RID_AlbaranesCliente, TAlbaranesClienteDataTableRules); + RegisterDataTableRules(RID_AlbaranesCliente_Detalles, TAlbaranesCliente_DetallesDataTableRules); + +end. diff --git a/Source/Modulos/Albaranes de cliente/Model/schAlbaranesClienteServer_Intf.dcu b/Source/Modulos/Albaranes de cliente/Model/schAlbaranesClienteServer_Intf.dcu new file mode 100644 index 0000000..3e1a1f6 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Model/schAlbaranesClienteServer_Intf.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Model/schAlbaranesClienteServer_Intf.pas b/Source/Modulos/Albaranes de cliente/Model/schAlbaranesClienteServer_Intf.pas new file mode 100644 index 0000000..672171c --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Model/schAlbaranesClienteServer_Intf.pas @@ -0,0 +1,2596 @@ +unit schAlbaranesClienteServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schAlbaranesClienteClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_ListaAnosAlbaranesDelta = '{31517BB5-3488-4555-8B2D-2744016505EE}'; + RID_AlbaranesClienteDelta = '{1A863DB4-0BF6-4F65-AFA1-52EA357D6529}'; + RID_AlbaranesCliente_DetallesDelta = '{ED26F299-FA26-46E6-9A24-057570AB5D28}'; + +type + { IListaAnosAlbaranesDelta } + IListaAnosAlbaranesDelta = interface(IListaAnosAlbaranes) + ['{31517BB5-3488-4555-8B2D-2744016505EE}'] + { Property getters and setters } + function GetOldANOValue : String; + + { Properties } + property OldANO : String read GetOldANOValue; + end; + + { TListaAnosAlbaranesBusinessProcessorRules } + TListaAnosAlbaranesBusinessProcessorRules = class(TDABusinessProcessorRules, IListaAnosAlbaranes, IListaAnosAlbaranesDelta) + private + protected + { Property getters and setters } + function GetANOValue: String; virtual; + function GetANOIsNull: Boolean; virtual; + function GetOldANOValue: String; virtual; + function GetOldANOIsNull: Boolean; virtual; + procedure SetANOValue(const aValue: String); virtual; + procedure SetANOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ANO : String read GetANOValue write SetANOValue; + property ANOIsNull : Boolean read GetANOIsNull write SetANOIsNull; + property OldANO : String read GetOldANOValue; + property OldANOIsNull : Boolean read GetOldANOIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IAlbaranesClienteDelta } + IAlbaranesClienteDelta = interface(IAlbaranesCliente) + ['{1A863DB4-0BF6-4F65-AFA1-52EA357D6529}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldID_CLIENTEValue : Integer; + function GetOldID_DIRECCIONValue : Integer; + function GetOldNOMBREValue : String; + function GetOldFECHA_ALBARANValue : DateTime; + function GetOldREFERENCIAValue : String; + function GetOldREFERENCIA_CLIENTEValue : String; + function GetOldTIPOValue : String; + function GetOldSITUACIONValue : String; + function GetOldID_ALMACENValue : Integer; + function GetOldNOMBRE_ALMACENValue : String; + function GetOldID_PEDIDOValue : Integer; + function GetOldREF_PEDIDOValue : String; + function GetOldID_FACTURAValue : Integer; + function GetOldREF_FACTURAValue : String; + function GetOldCALLEValue : String; + function GetOldCODIGO_POSTALValue : String; + function GetOldPOBLACIONValue : String; + function GetOldPROVINCIAValue : String; + function GetOldPERSONA_CONTACTOValue : String; + function GetOldTELEFONOValue : String; + function GetOldIMPORTE_NETOValue : Currency; + function GetOldIMPORTE_PORTEValue : Currency; + function GetOldDESCUENTOValue : Float; + function GetOldIMPORTE_DESCUENTOValue : Currency; + function GetOldBASE_IMPONIBLEValue : Currency; + function GetOldIVAValue : Float; + function GetOldIMPORTE_IVAValue : Currency; + function GetOldIMPORTE_TOTALValue : Currency; + function GetOldOBSERVACIONESValue : IROStrings; + function GetOldINCIDENCIASValue : IROStrings; + function GetOldINCIDENCIAS_ACTIVASValue : Integer; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + function GetOldUSUARIOValue : String; + function GetOldID_FORMA_PAGOValue : Integer; + function GetOldFECHA_PREVISTA_ENVIOValue : DateTime; + function GetOldFECHA_ENVIOValue : DateTime; + function GetOldFECHA_RECEPCIONValue : DateTime; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_CLIENTE : Integer read GetOldID_CLIENTEValue; + property OldID_DIRECCION : Integer read GetOldID_DIRECCIONValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldFECHA_ALBARAN : DateTime read GetOldFECHA_ALBARANValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIA_CLIENTE : String read GetOldREFERENCIA_CLIENTEValue; + property OldTIPO : String read GetOldTIPOValue; + property OldSITUACION : String read GetOldSITUACIONValue; + property OldID_ALMACEN : Integer read GetOldID_ALMACENValue; + property OldNOMBRE_ALMACEN : String read GetOldNOMBRE_ALMACENValue; + property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue; + property OldREF_PEDIDO : String read GetOldREF_PEDIDOValue; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property OldREF_FACTURA : String read GetOldREF_FACTURAValue; + property OldCALLE : String read GetOldCALLEValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property OldTELEFONO : String read GetOldTELEFONOValue; + property OldIMPORTE_NETO : Currency read GetOldIMPORTE_NETOValue; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldIMPORTE_DESCUENTO : Currency read GetOldIMPORTE_DESCUENTOValue; + property OldBASE_IMPONIBLE : Currency read GetOldBASE_IMPONIBLEValue; + property OldIVA : Float read GetOldIVAValue; + property OldIMPORTE_IVA : Currency read GetOldIMPORTE_IVAValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property OldINCIDENCIAS : IROStrings read GetOldINCIDENCIASValue; + property OldINCIDENCIAS_ACTIVAS : Integer read GetOldINCIDENCIAS_ACTIVASValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + property OldFECHA_PREVISTA_ENVIO : DateTime read GetOldFECHA_PREVISTA_ENVIOValue; + property OldFECHA_ENVIO : DateTime read GetOldFECHA_ENVIOValue; + property OldFECHA_RECEPCION : DateTime read GetOldFECHA_RECEPCIONValue; + end; + + { TAlbaranesClienteBusinessProcessorRules } + TAlbaranesClienteBusinessProcessorRules = class(TDABusinessProcessorRules, IAlbaranesCliente, IAlbaranesClienteDelta) + private + f_OBSERVACIONES: IROStrings; + f_INCIDENCIAS: IROStrings; + procedure OBSERVACIONES_OnChange(Sender: TObject); + procedure INCIDENCIAS_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetID_CLIENTEValue: Integer; virtual; + function GetID_CLIENTEIsNull: Boolean; virtual; + function GetOldID_CLIENTEValue: Integer; virtual; + function GetOldID_CLIENTEIsNull: Boolean; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + procedure SetID_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetID_DIRECCIONValue: Integer; virtual; + function GetID_DIRECCIONIsNull: Boolean; virtual; + function GetOldID_DIRECCIONValue: Integer; virtual; + function GetOldID_DIRECCIONIsNull: Boolean; virtual; + procedure SetID_DIRECCIONValue(const aValue: Integer); virtual; + procedure SetID_DIRECCIONIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + function GetNOMBREIsNull: Boolean; virtual; + function GetOldNOMBREValue: String; virtual; + function GetOldNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALBARANValue: DateTime; virtual; + function GetFECHA_ALBARANIsNull: Boolean; virtual; + function GetOldFECHA_ALBARANValue: DateTime; virtual; + function GetOldFECHA_ALBARANIsNull: Boolean; virtual; + procedure SetFECHA_ALBARANValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALBARANIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_CLIENTEValue: String; virtual; + function GetREFERENCIA_CLIENTEIsNull: Boolean; virtual; + function GetOldREFERENCIA_CLIENTEValue: String; virtual; + function GetOldREFERENCIA_CLIENTEIsNull: Boolean; virtual; + procedure SetREFERENCIA_CLIENTEValue(const aValue: String); virtual; + procedure SetREFERENCIA_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetTIPOValue: String; virtual; + function GetTIPOIsNull: Boolean; virtual; + function GetOldTIPOValue: String; virtual; + function GetOldTIPOIsNull: Boolean; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + procedure SetTIPOIsNull(const aValue: Boolean); virtual; + function GetSITUACIONValue: String; virtual; + function GetSITUACIONIsNull: Boolean; virtual; + function GetOldSITUACIONValue: String; virtual; + function GetOldSITUACIONIsNull: Boolean; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + procedure SetSITUACIONIsNull(const aValue: Boolean); virtual; + function GetID_ALMACENValue: Integer; virtual; + function GetID_ALMACENIsNull: Boolean; virtual; + function GetOldID_ALMACENValue: Integer; virtual; + function GetOldID_ALMACENIsNull: Boolean; virtual; + procedure SetID_ALMACENValue(const aValue: Integer); virtual; + procedure SetID_ALMACENIsNull(const aValue: Boolean); virtual; + function GetNOMBRE_ALMACENValue: String; virtual; + function GetNOMBRE_ALMACENIsNull: Boolean; virtual; + function GetOldNOMBRE_ALMACENValue: String; virtual; + function GetOldNOMBRE_ALMACENIsNull: Boolean; virtual; + procedure SetNOMBRE_ALMACENValue(const aValue: String); virtual; + procedure SetNOMBRE_ALMACENIsNull(const aValue: Boolean); virtual; + function GetID_PEDIDOValue: Integer; virtual; + function GetID_PEDIDOIsNull: Boolean; virtual; + function GetOldID_PEDIDOValue: Integer; virtual; + function GetOldID_PEDIDOIsNull: Boolean; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + procedure SetID_PEDIDOIsNull(const aValue: Boolean); virtual; + function GetREF_PEDIDOValue: String; virtual; + function GetREF_PEDIDOIsNull: Boolean; virtual; + function GetOldREF_PEDIDOValue: String; virtual; + function GetOldREF_PEDIDOIsNull: Boolean; virtual; + procedure SetREF_PEDIDOValue(const aValue: String); virtual; + procedure SetREF_PEDIDOIsNull(const aValue: Boolean); virtual; + function GetID_FACTURAValue: Integer; virtual; + function GetID_FACTURAIsNull: Boolean; virtual; + function GetOldID_FACTURAValue: Integer; virtual; + function GetOldID_FACTURAIsNull: Boolean; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + procedure SetID_FACTURAIsNull(const aValue: Boolean); virtual; + function GetREF_FACTURAValue: String; virtual; + function GetREF_FACTURAIsNull: Boolean; virtual; + function GetOldREF_FACTURAValue: String; virtual; + function GetOldREF_FACTURAIsNull: Boolean; virtual; + procedure SetREF_FACTURAValue(const aValue: String); virtual; + procedure SetREF_FACTURAIsNull(const aValue: Boolean); virtual; + function GetCALLEValue: String; virtual; + function GetCALLEIsNull: Boolean; virtual; + function GetOldCALLEValue: String; virtual; + function GetOldCALLEIsNull: Boolean; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + procedure SetCALLEIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetCODIGO_POSTALIsNull: Boolean; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALIsNull: Boolean; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual; + function GetPOBLACIONValue: String; virtual; + function GetPOBLACIONIsNull: Boolean; virtual; + function GetOldPOBLACIONValue: String; virtual; + function GetOldPOBLACIONIsNull: Boolean; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual; + function GetPROVINCIAValue: String; virtual; + function GetPROVINCIAIsNull: Boolean; virtual; + function GetOldPROVINCIAValue: String; virtual; + function GetOldPROVINCIAIsNull: Boolean; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + function GetPERSONA_CONTACTOIsNull: Boolean; virtual; + function GetOldPERSONA_CONTACTOValue: String; virtual; + function GetOldPERSONA_CONTACTOIsNull: Boolean; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); virtual; + function GetTELEFONOValue: String; virtual; + function GetTELEFONOIsNull: Boolean; virtual; + function GetOldTELEFONOValue: String; virtual; + function GetOldTELEFONOIsNull: Boolean; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + procedure SetTELEFONOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + function GetIMPORTE_NETOIsNull: Boolean; virtual; + function GetOldIMPORTE_NETOValue: Currency; virtual; + function GetOldIMPORTE_NETOIsNull: Boolean; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + procedure SetIMPORTE_NETOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + function GetIMPORTE_PORTEIsNull: Boolean; virtual; + function GetOldIMPORTE_PORTEValue: Currency; virtual; + function GetOldIMPORTE_PORTEIsNull: Boolean; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + function GetOldDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + function GetIMPORTE_DESCUENTOIsNull: Boolean; virtual; + function GetOldIMPORTE_DESCUENTOValue: Currency; virtual; + function GetOldIMPORTE_DESCUENTOIsNull: Boolean; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + procedure SetIMPORTE_DESCUENTOIsNull(const aValue: Boolean); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + function GetBASE_IMPONIBLEIsNull: Boolean; virtual; + function GetOldBASE_IMPONIBLEValue: Currency; virtual; + function GetOldBASE_IMPONIBLEIsNull: Boolean; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + procedure SetBASE_IMPONIBLEIsNull(const aValue: Boolean); virtual; + function GetIVAValue: Float; virtual; + function GetIVAIsNull: Boolean; virtual; + function GetOldIVAValue: Float; virtual; + function GetOldIVAIsNull: Boolean; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + procedure SetIVAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + function GetIMPORTE_IVAIsNull: Boolean; virtual; + function GetOldIMPORTE_IVAValue: Currency; virtual; + function GetOldIMPORTE_IVAIsNull: Boolean; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + procedure SetIMPORTE_IVAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + function GetOBSERVACIONESIsNull: Boolean; virtual; + function GetOldOBSERVACIONESValue: IROStrings; virtual; + function GetOldOBSERVACIONESIsNull: Boolean; virtual; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); virtual; + function GetINCIDENCIASValue: IROStrings; virtual; + function GetINCIDENCIASIsNull: Boolean; virtual; + function GetOldINCIDENCIASValue: IROStrings; virtual; + function GetOldINCIDENCIASIsNull: Boolean; virtual; + procedure SetINCIDENCIASIsNull(const aValue: Boolean); virtual; + function GetINCIDENCIAS_ACTIVASValue: Integer; virtual; + function GetINCIDENCIAS_ACTIVASIsNull: Boolean; virtual; + function GetOldINCIDENCIAS_ACTIVASValue: Integer; virtual; + function GetOldINCIDENCIAS_ACTIVASIsNull: Boolean; virtual; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); virtual; + procedure SetINCIDENCIAS_ACTIVASIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + function GetUSUARIOIsNull: Boolean; virtual; + function GetOldUSUARIOValue: String; virtual; + function GetOldUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + function GetID_FORMA_PAGOIsNull: Boolean; virtual; + function GetOldID_FORMA_PAGOValue: Integer; virtual; + function GetOldID_FORMA_PAGOIsNull: Boolean; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + procedure SetID_FORMA_PAGOIsNull(const aValue: Boolean); virtual; + function GetFECHA_PREVISTA_ENVIOValue: DateTime; virtual; + function GetFECHA_PREVISTA_ENVIOIsNull: Boolean; virtual; + function GetOldFECHA_PREVISTA_ENVIOValue: DateTime; virtual; + function GetOldFECHA_PREVISTA_ENVIOIsNull: Boolean; virtual; + procedure SetFECHA_PREVISTA_ENVIOValue(const aValue: DateTime); virtual; + procedure SetFECHA_PREVISTA_ENVIOIsNull(const aValue: Boolean); virtual; + function GetFECHA_ENVIOValue: DateTime; virtual; + function GetFECHA_ENVIOIsNull: Boolean; virtual; + function GetOldFECHA_ENVIOValue: DateTime; virtual; + function GetOldFECHA_ENVIOIsNull: Boolean; virtual; + procedure SetFECHA_ENVIOValue(const aValue: DateTime); virtual; + procedure SetFECHA_ENVIOIsNull(const aValue: Boolean); virtual; + function GetFECHA_RECEPCIONValue: DateTime; virtual; + function GetFECHA_RECEPCIONIsNull: Boolean; virtual; + function GetOldFECHA_RECEPCIONValue: DateTime; virtual; + function GetOldFECHA_RECEPCIONIsNull: Boolean; virtual; + procedure SetFECHA_RECEPCIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_RECEPCIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull : Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_EMPRESAIsNull : Boolean read GetOldID_EMPRESAIsNull; + property ID_CLIENTE : Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property ID_CLIENTEIsNull : Boolean read GetID_CLIENTEIsNull write SetID_CLIENTEIsNull; + property OldID_CLIENTE : Integer read GetOldID_CLIENTEValue; + property OldID_CLIENTEIsNull : Boolean read GetOldID_CLIENTEIsNull; + property ID_DIRECCION : Integer read GetID_DIRECCIONValue write SetID_DIRECCIONValue; + property ID_DIRECCIONIsNull : Boolean read GetID_DIRECCIONIsNull write SetID_DIRECCIONIsNull; + property OldID_DIRECCION : Integer read GetOldID_DIRECCIONValue; + property OldID_DIRECCIONIsNull : Boolean read GetOldID_DIRECCIONIsNull; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull : Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldNOMBREIsNull : Boolean read GetOldNOMBREIsNull; + property FECHA_ALBARAN : DateTime read GetFECHA_ALBARANValue write SetFECHA_ALBARANValue; + property FECHA_ALBARANIsNull : Boolean read GetFECHA_ALBARANIsNull write SetFECHA_ALBARANIsNull; + property OldFECHA_ALBARAN : DateTime read GetOldFECHA_ALBARANValue; + property OldFECHA_ALBARANIsNull : Boolean read GetOldFECHA_ALBARANIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property REFERENCIA_CLIENTE : String read GetREFERENCIA_CLIENTEValue write SetREFERENCIA_CLIENTEValue; + property REFERENCIA_CLIENTEIsNull : Boolean read GetREFERENCIA_CLIENTEIsNull write SetREFERENCIA_CLIENTEIsNull; + property OldREFERENCIA_CLIENTE : String read GetOldREFERENCIA_CLIENTEValue; + property OldREFERENCIA_CLIENTEIsNull : Boolean read GetOldREFERENCIA_CLIENTEIsNull; + property TIPO : String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull : Boolean read GetTIPOIsNull write SetTIPOIsNull; + property OldTIPO : String read GetOldTIPOValue; + property OldTIPOIsNull : Boolean read GetOldTIPOIsNull; + property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue; + property SITUACIONIsNull : Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull; + property OldSITUACION : String read GetOldSITUACIONValue; + property OldSITUACIONIsNull : Boolean read GetOldSITUACIONIsNull; + property ID_ALMACEN : Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property ID_ALMACENIsNull : Boolean read GetID_ALMACENIsNull write SetID_ALMACENIsNull; + property OldID_ALMACEN : Integer read GetOldID_ALMACENValue; + property OldID_ALMACENIsNull : Boolean read GetOldID_ALMACENIsNull; + property NOMBRE_ALMACEN : String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property NOMBRE_ALMACENIsNull : Boolean read GetNOMBRE_ALMACENIsNull write SetNOMBRE_ALMACENIsNull; + property OldNOMBRE_ALMACEN : String read GetOldNOMBRE_ALMACENValue; + property OldNOMBRE_ALMACENIsNull : Boolean read GetOldNOMBRE_ALMACENIsNull; + property ID_PEDIDO : Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property ID_PEDIDOIsNull : Boolean read GetID_PEDIDOIsNull write SetID_PEDIDOIsNull; + property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue; + property OldID_PEDIDOIsNull : Boolean read GetOldID_PEDIDOIsNull; + property REF_PEDIDO : String read GetREF_PEDIDOValue write SetREF_PEDIDOValue; + property REF_PEDIDOIsNull : Boolean read GetREF_PEDIDOIsNull write SetREF_PEDIDOIsNull; + property OldREF_PEDIDO : String read GetOldREF_PEDIDOValue; + property OldREF_PEDIDOIsNull : Boolean read GetOldREF_PEDIDOIsNull; + property ID_FACTURA : Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull : Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property OldID_FACTURAIsNull : Boolean read GetOldID_FACTURAIsNull; + property REF_FACTURA : String read GetREF_FACTURAValue write SetREF_FACTURAValue; + property REF_FACTURAIsNull : Boolean read GetREF_FACTURAIsNull write SetREF_FACTURAIsNull; + property OldREF_FACTURA : String read GetOldREF_FACTURAValue; + property OldREF_FACTURAIsNull : Boolean read GetOldREF_FACTURAIsNull; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull : Boolean read GetCALLEIsNull write SetCALLEIsNull; + property OldCALLE : String read GetOldCALLEValue; + property OldCALLEIsNull : Boolean read GetOldCALLEIsNull; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull : Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property OldCODIGO_POSTALIsNull : Boolean read GetOldCODIGO_POSTALIsNull; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull : Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property OldPOBLACIONIsNull : Boolean read GetOldPOBLACIONIsNull; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull : Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property OldPROVINCIAIsNull : Boolean read GetOldPROVINCIAIsNull; + property PERSONA_CONTACTO : String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull : Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property OldPERSONA_CONTACTOIsNull : Boolean read GetOldPERSONA_CONTACTOIsNull; + property TELEFONO : String read GetTELEFONOValue write SetTELEFONOValue; + property TELEFONOIsNull : Boolean read GetTELEFONOIsNull write SetTELEFONOIsNull; + property OldTELEFONO : String read GetOldTELEFONOValue; + property OldTELEFONOIsNull : Boolean read GetOldTELEFONOIsNull; + property IMPORTE_NETO : Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_NETOIsNull : Boolean read GetIMPORTE_NETOIsNull write SetIMPORTE_NETOIsNull; + property OldIMPORTE_NETO : Currency read GetOldIMPORTE_NETOValue; + property OldIMPORTE_NETOIsNull : Boolean read GetOldIMPORTE_NETOIsNull; + property IMPORTE_PORTE : Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull : Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property OldIMPORTE_PORTEIsNull : Boolean read GetOldIMPORTE_PORTEIsNull; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull : Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldDESCUENTOIsNull : Boolean read GetOldDESCUENTOIsNull; + property IMPORTE_DESCUENTO : Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property IMPORTE_DESCUENTOIsNull : Boolean read GetIMPORTE_DESCUENTOIsNull write SetIMPORTE_DESCUENTOIsNull; + property OldIMPORTE_DESCUENTO : Currency read GetOldIMPORTE_DESCUENTOValue; + property OldIMPORTE_DESCUENTOIsNull : Boolean read GetOldIMPORTE_DESCUENTOIsNull; + property BASE_IMPONIBLE : Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property BASE_IMPONIBLEIsNull : Boolean read GetBASE_IMPONIBLEIsNull write SetBASE_IMPONIBLEIsNull; + property OldBASE_IMPONIBLE : Currency read GetOldBASE_IMPONIBLEValue; + property OldBASE_IMPONIBLEIsNull : Boolean read GetOldBASE_IMPONIBLEIsNull; + property IVA : Float read GetIVAValue write SetIVAValue; + property IVAIsNull : Boolean read GetIVAIsNull write SetIVAIsNull; + property OldIVA : Float read GetOldIVAValue; + property OldIVAIsNull : Boolean read GetOldIVAIsNull; + property IMPORTE_IVA : Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property IMPORTE_IVAIsNull : Boolean read GetIMPORTE_IVAIsNull write SetIMPORTE_IVAIsNull; + property OldIMPORTE_IVA : Currency read GetOldIMPORTE_IVAValue; + property OldIMPORTE_IVAIsNull : Boolean read GetOldIMPORTE_IVAIsNull; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull : Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldIMPORTE_TOTALIsNull : Boolean read GetOldIMPORTE_TOTALIsNull; + property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue; + property OBSERVACIONESIsNull : Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property OldOBSERVACIONESIsNull : Boolean read GetOldOBSERVACIONESIsNull; + property INCIDENCIAS : IROStrings read GetINCIDENCIASValue; + property INCIDENCIASIsNull : Boolean read GetINCIDENCIASIsNull write SetINCIDENCIASIsNull; + property OldINCIDENCIAS : IROStrings read GetOldINCIDENCIASValue; + property OldINCIDENCIASIsNull : Boolean read GetOldINCIDENCIASIsNull; + property INCIDENCIAS_ACTIVAS : Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property INCIDENCIAS_ACTIVASIsNull : Boolean read GetINCIDENCIAS_ACTIVASIsNull write SetINCIDENCIAS_ACTIVASIsNull; + property OldINCIDENCIAS_ACTIVAS : Integer read GetOldINCIDENCIAS_ACTIVASValue; + property OldINCIDENCIAS_ACTIVASIsNull : Boolean read GetOldINCIDENCIAS_ACTIVASIsNull; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull : Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_ALTAIsNull : Boolean read GetOldFECHA_ALTAIsNull; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull : Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldUSUARIOIsNull : Boolean read GetOldUSUARIOIsNull; + property ID_FORMA_PAGO : Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property ID_FORMA_PAGOIsNull : Boolean read GetID_FORMA_PAGOIsNull write SetID_FORMA_PAGOIsNull; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + property OldID_FORMA_PAGOIsNull : Boolean read GetOldID_FORMA_PAGOIsNull; + property FECHA_PREVISTA_ENVIO : DateTime read GetFECHA_PREVISTA_ENVIOValue write SetFECHA_PREVISTA_ENVIOValue; + property FECHA_PREVISTA_ENVIOIsNull : Boolean read GetFECHA_PREVISTA_ENVIOIsNull write SetFECHA_PREVISTA_ENVIOIsNull; + property OldFECHA_PREVISTA_ENVIO : DateTime read GetOldFECHA_PREVISTA_ENVIOValue; + property OldFECHA_PREVISTA_ENVIOIsNull : Boolean read GetOldFECHA_PREVISTA_ENVIOIsNull; + property FECHA_ENVIO : DateTime read GetFECHA_ENVIOValue write SetFECHA_ENVIOValue; + property FECHA_ENVIOIsNull : Boolean read GetFECHA_ENVIOIsNull write SetFECHA_ENVIOIsNull; + property OldFECHA_ENVIO : DateTime read GetOldFECHA_ENVIOValue; + property OldFECHA_ENVIOIsNull : Boolean read GetOldFECHA_ENVIOIsNull; + property FECHA_RECEPCION : DateTime read GetFECHA_RECEPCIONValue write SetFECHA_RECEPCIONValue; + property FECHA_RECEPCIONIsNull : Boolean read GetFECHA_RECEPCIONIsNull write SetFECHA_RECEPCIONIsNull; + property OldFECHA_RECEPCION : DateTime read GetOldFECHA_RECEPCIONValue; + property OldFECHA_RECEPCIONIsNull : Boolean read GetOldFECHA_RECEPCIONIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IAlbaranesCliente_DetallesDelta } + IAlbaranesCliente_DetallesDelta = interface(IAlbaranesCliente_Detalles) + ['{ED26F299-FA26-46E6-9A24-057570AB5D28}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_ALBARANValue : Integer; + function GetOldPOSICIONValue : Integer; + function GetOldTIPO_DETALLEValue : String; + function GetOldCONCEPTOValue : String; + function GetOldCANTIDADValue : Float; + function GetOldUNIDAD_MEDIDAValue : String; + function GetOldIMPORTE_UNIDADValue : Currency; + function GetOldDESCUENTOValue : Float; + function GetOldIMPORTE_PORTEValue : Currency; + function GetOldIMPORTE_TOTALValue : Currency; + function GetOldVISIBLEValue : Integer; + function GetOldID_ARTICULOValue : Integer; + function GetOldREFERENCIAValue : String; + function GetOldREFERENCIA_PROVEEDORValue : String; + function GetOldID_PEDIDOValue : Integer; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_ALBARAN : Integer read GetOldID_ALBARANValue; + property OldPOSICION : Integer read GetOldPOSICIONValue; + property OldTIPO_DETALLE : String read GetOldTIPO_DETALLEValue; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property OldCANTIDAD : Float read GetOldCANTIDADValue; + property OldUNIDAD_MEDIDA : String read GetOldUNIDAD_MEDIDAValue; + property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue; + end; + + { TAlbaranesCliente_DetallesBusinessProcessorRules } + TAlbaranesCliente_DetallesBusinessProcessorRules = class(TDABusinessProcessorRules, IAlbaranesCliente_Detalles, IAlbaranesCliente_DetallesDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_ALBARANValue: Integer; virtual; + function GetID_ALBARANIsNull: Boolean; virtual; + function GetOldID_ALBARANValue: Integer; virtual; + function GetOldID_ALBARANIsNull: Boolean; virtual; + procedure SetID_ALBARANValue(const aValue: Integer); virtual; + procedure SetID_ALBARANIsNull(const aValue: Boolean); virtual; + function GetPOSICIONValue: Integer; virtual; + function GetPOSICIONIsNull: Boolean; virtual; + function GetOldPOSICIONValue: Integer; virtual; + function GetOldPOSICIONIsNull: Boolean; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + procedure SetPOSICIONIsNull(const aValue: Boolean); virtual; + function GetTIPO_DETALLEValue: String; virtual; + function GetTIPO_DETALLEIsNull: Boolean; virtual; + function GetOldTIPO_DETALLEValue: String; virtual; + function GetOldTIPO_DETALLEIsNull: Boolean; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + procedure SetTIPO_DETALLEIsNull(const aValue: Boolean); virtual; + function GetCONCEPTOValue: String; virtual; + function GetCONCEPTOIsNull: Boolean; virtual; + function GetOldCONCEPTOValue: String; virtual; + function GetOldCONCEPTOIsNull: Boolean; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + procedure SetCONCEPTOIsNull(const aValue: Boolean); virtual; + function GetCANTIDADValue: Float; virtual; + function GetCANTIDADIsNull: Boolean; virtual; + function GetOldCANTIDADValue: Float; virtual; + function GetOldCANTIDADIsNull: Boolean; virtual; + procedure SetCANTIDADValue(const aValue: Float); virtual; + procedure SetCANTIDADIsNull(const aValue: Boolean); virtual; + function GetUNIDAD_MEDIDAValue: String; virtual; + function GetUNIDAD_MEDIDAIsNull: Boolean; virtual; + function GetOldUNIDAD_MEDIDAValue: String; virtual; + function GetOldUNIDAD_MEDIDAIsNull: Boolean; virtual; + procedure SetUNIDAD_MEDIDAValue(const aValue: String); virtual; + procedure SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_UNIDADValue: Currency; virtual; + function GetIMPORTE_UNIDADIsNull: Boolean; virtual; + function GetOldIMPORTE_UNIDADValue: Currency; virtual; + function GetOldIMPORTE_UNIDADIsNull: Boolean; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual; + procedure SetIMPORTE_UNIDADIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + function GetOldDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + function GetIMPORTE_PORTEIsNull: Boolean; virtual; + function GetOldIMPORTE_PORTEValue: Currency; virtual; + function GetOldIMPORTE_PORTEIsNull: Boolean; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetVISIBLEValue: Integer; virtual; + function GetVISIBLEIsNull: Boolean; virtual; + function GetOldVISIBLEValue: Integer; virtual; + function GetOldVISIBLEIsNull: Boolean; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + procedure SetVISIBLEIsNull(const aValue: Boolean); virtual; + function GetID_ARTICULOValue: Integer; virtual; + function GetID_ARTICULOIsNull: Boolean; virtual; + function GetOldID_ARTICULOValue: Integer; virtual; + function GetOldID_ARTICULOIsNull: Boolean; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + function GetREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + function GetOldREFERENCIA_PROVEEDORValue: String; virtual; + function GetOldREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetID_PEDIDOValue: Integer; virtual; + function GetID_PEDIDOIsNull: Boolean; virtual; + function GetOldID_PEDIDOValue: Integer; virtual; + function GetOldID_PEDIDOIsNull: Boolean; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + procedure SetID_PEDIDOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_ALBARAN : Integer read GetID_ALBARANValue write SetID_ALBARANValue; + property ID_ALBARANIsNull : Boolean read GetID_ALBARANIsNull write SetID_ALBARANIsNull; + property OldID_ALBARAN : Integer read GetOldID_ALBARANValue; + property OldID_ALBARANIsNull : Boolean read GetOldID_ALBARANIsNull; + property POSICION : Integer read GetPOSICIONValue write SetPOSICIONValue; + property POSICIONIsNull : Boolean read GetPOSICIONIsNull write SetPOSICIONIsNull; + property OldPOSICION : Integer read GetOldPOSICIONValue; + property OldPOSICIONIsNull : Boolean read GetOldPOSICIONIsNull; + property TIPO_DETALLE : String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property TIPO_DETALLEIsNull : Boolean read GetTIPO_DETALLEIsNull write SetTIPO_DETALLEIsNull; + property OldTIPO_DETALLE : String read GetOldTIPO_DETALLEValue; + property OldTIPO_DETALLEIsNull : Boolean read GetOldTIPO_DETALLEIsNull; + property CONCEPTO : String read GetCONCEPTOValue write SetCONCEPTOValue; + property CONCEPTOIsNull : Boolean read GetCONCEPTOIsNull write SetCONCEPTOIsNull; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property OldCONCEPTOIsNull : Boolean read GetOldCONCEPTOIsNull; + property CANTIDAD : Float read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDADIsNull : Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; + property OldCANTIDAD : Float read GetOldCANTIDADValue; + property OldCANTIDADIsNull : Boolean read GetOldCANTIDADIsNull; + property UNIDAD_MEDIDA : String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue; + property UNIDAD_MEDIDAIsNull : Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull; + property OldUNIDAD_MEDIDA : String read GetOldUNIDAD_MEDIDAValue; + property OldUNIDAD_MEDIDAIsNull : Boolean read GetOldUNIDAD_MEDIDAIsNull; + property IMPORTE_UNIDAD : Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_UNIDADIsNull : Boolean read GetIMPORTE_UNIDADIsNull write SetIMPORTE_UNIDADIsNull; + property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue; + property OldIMPORTE_UNIDADIsNull : Boolean read GetOldIMPORTE_UNIDADIsNull; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull : Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldDESCUENTOIsNull : Boolean read GetOldDESCUENTOIsNull; + property IMPORTE_PORTE : Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull : Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property OldIMPORTE_PORTEIsNull : Boolean read GetOldIMPORTE_PORTEIsNull; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull : Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldIMPORTE_TOTALIsNull : Boolean read GetOldIMPORTE_TOTALIsNull; + property VISIBLE : Integer read GetVISIBLEValue write SetVISIBLEValue; + property VISIBLEIsNull : Boolean read GetVISIBLEIsNull write SetVISIBLEIsNull; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property OldVISIBLEIsNull : Boolean read GetOldVISIBLEIsNull; + property ID_ARTICULO : Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull : Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldID_ARTICULOIsNull : Boolean read GetOldID_ARTICULOIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property REFERENCIA_PROVEEDOR : String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull : Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + property OldREFERENCIA_PROVEEDORIsNull : Boolean read GetOldREFERENCIA_PROVEEDORIsNull; + property ID_PEDIDO : Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property ID_PEDIDOIsNull : Boolean read GetID_PEDIDOIsNull write SetID_PEDIDOIsNull; + property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue; + property OldID_PEDIDOIsNull : Boolean read GetOldID_PEDIDOIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers, uDAInterfaces; + +{ TListaAnosAlbaranesBusinessProcessorRules } +constructor TListaAnosAlbaranesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TListaAnosAlbaranesBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TListaAnosAlbaranesBusinessProcessorRules.GetANOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosAlbaranesANO]; +end; + +function TListaAnosAlbaranesBusinessProcessorRules.GetANOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosAlbaranesANO]); +end; + +function TListaAnosAlbaranesBusinessProcessorRules.GetOldANOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaAnosAlbaranesANO]; +end; + +function TListaAnosAlbaranesBusinessProcessorRules.GetOldANOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ListaAnosAlbaranesANO]); +end; + +procedure TListaAnosAlbaranesBusinessProcessorRules.SetANOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosAlbaranesANO] := aValue; +end; + +procedure TListaAnosAlbaranesBusinessProcessorRules.SetANOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosAlbaranesANO] := Null; +end; + + +{ TAlbaranesClienteBusinessProcessorRules } +constructor TAlbaranesClienteBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := OBSERVACIONES_OnChange; + f_OBSERVACIONES := NewROStrings(StrList,True); + + StrList := TStringList.Create; + StrList.OnChange := INCIDENCIAS_OnChange; + f_INCIDENCIAS := NewROStrings(StrList,True); +end; + +destructor TAlbaranesClienteBusinessProcessorRules.Destroy; +begin + inherited; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.OBSERVACIONES_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteOBSERVACIONES] := TStringList(Sender).Text; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.INCIDENCIAS_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteINCIDENCIAS] := TStringList(Sender).Text; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteID]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteID]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_EMPRESA]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_EMPRESA]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteID_EMPRESA]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteID_EMPRESA]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_EMPRESA] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_EMPRESA] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_CLIENTE]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetID_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_CLIENTE]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteID_CLIENTE]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldID_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteID_CLIENTE]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetID_CLIENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_CLIENTE] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetID_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_CLIENTE] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetID_DIRECCIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_DIRECCION]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetID_DIRECCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_DIRECCION]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldID_DIRECCIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteID_DIRECCION]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldID_DIRECCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteID_DIRECCION]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetID_DIRECCIONValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_DIRECCION] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetID_DIRECCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_DIRECCION] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteNOMBRE]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteNOMBRE]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteNOMBRE]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteNOMBRE]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteNOMBRE] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteNOMBRE] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetFECHA_ALBARANValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteFECHA_ALBARAN]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetFECHA_ALBARANIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteFECHA_ALBARAN]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldFECHA_ALBARANValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteFECHA_ALBARAN]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldFECHA_ALBARANIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteFECHA_ALBARAN]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetFECHA_ALBARANValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteFECHA_ALBARAN] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetFECHA_ALBARANIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteFECHA_ALBARAN] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteREFERENCIA]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteREFERENCIA]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteREFERENCIA]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteREFERENCIA]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteREFERENCIA] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteREFERENCIA] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetREFERENCIA_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteREFERENCIA_CLIENTE]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetREFERENCIA_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteREFERENCIA_CLIENTE]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldREFERENCIA_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteREFERENCIA_CLIENTE]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldREFERENCIA_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteREFERENCIA_CLIENTE]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetREFERENCIA_CLIENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteREFERENCIA_CLIENTE] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetREFERENCIA_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteREFERENCIA_CLIENTE] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteTIPO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetTIPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteTIPO]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteTIPO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldTIPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteTIPO]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetTIPOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteTIPO] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetTIPOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteTIPO] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteSITUACION]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetSITUACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteSITUACION]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteSITUACION]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldSITUACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteSITUACION]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetSITUACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteSITUACION] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetSITUACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteSITUACION] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetID_ALMACENValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_ALMACEN]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetID_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_ALMACEN]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldID_ALMACENValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteID_ALMACEN]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldID_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteID_ALMACEN]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetID_ALMACENValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_ALMACEN] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetID_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_ALMACEN] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetNOMBRE_ALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteNOMBRE_ALMACEN]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetNOMBRE_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteNOMBRE_ALMACEN]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldNOMBRE_ALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteNOMBRE_ALMACEN]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldNOMBRE_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteNOMBRE_ALMACEN]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetNOMBRE_ALMACENValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteNOMBRE_ALMACEN] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetNOMBRE_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteNOMBRE_ALMACEN] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetID_PEDIDOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_PEDIDO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetID_PEDIDOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_PEDIDO]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldID_PEDIDOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteID_PEDIDO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldID_PEDIDOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteID_PEDIDO]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetID_PEDIDOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_PEDIDO] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetID_PEDIDOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_PEDIDO] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetREF_PEDIDOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteREF_PEDIDO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetREF_PEDIDOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteREF_PEDIDO]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldREF_PEDIDOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteREF_PEDIDO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldREF_PEDIDOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteREF_PEDIDO]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetREF_PEDIDOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteREF_PEDIDO] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetREF_PEDIDOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteREF_PEDIDO] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_FACTURA]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetID_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_FACTURA]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteID_FACTURA]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldID_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteID_FACTURA]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetID_FACTURAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_FACTURA] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetID_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_FACTURA] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetREF_FACTURAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteREF_FACTURA]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetREF_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteREF_FACTURA]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldREF_FACTURAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteREF_FACTURA]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldREF_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteREF_FACTURA]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetREF_FACTURAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteREF_FACTURA] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetREF_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteREF_FACTURA] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteCALLE]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteCALLE]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteCALLE]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteCALLE]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteCALLE] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetCALLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteCALLE] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteCODIGO_POSTAL]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteCODIGO_POSTAL]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteCODIGO_POSTAL]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteCODIGO_POSTAL]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteCODIGO_POSTAL] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetCODIGO_POSTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteCODIGO_POSTAL] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClientePOBLACION]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClientePOBLACION]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClientePOBLACION]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClientePOBLACION]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClientePOBLACION] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetPOBLACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClientePOBLACION] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClientePROVINCIA]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClientePROVINCIA]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClientePROVINCIA]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClientePROVINCIA]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClientePROVINCIA] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetPROVINCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClientePROVINCIA] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClientePERSONA_CONTACTO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetPERSONA_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClientePERSONA_CONTACTO]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClientePERSONA_CONTACTO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldPERSONA_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClientePERSONA_CONTACTO]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClientePERSONA_CONTACTO] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetPERSONA_CONTACTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClientePERSONA_CONTACTO] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteTELEFONO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetTELEFONOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteTELEFONO]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteTELEFONO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldTELEFONOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteTELEFONO]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetTELEFONOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteTELEFONO] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetTELEFONOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteTELEFONO] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIMPORTE_NETO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetIMPORTE_NETOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIMPORTE_NETO]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteIMPORTE_NETO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldIMPORTE_NETOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteIMPORTE_NETO]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetIMPORTE_NETOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIMPORTE_NETO] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetIMPORTE_NETOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIMPORTE_NETO] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIMPORTE_PORTE]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetIMPORTE_PORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIMPORTE_PORTE]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteIMPORTE_PORTE]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldIMPORTE_PORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteIMPORTE_PORTE]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIMPORTE_PORTE] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetIMPORTE_PORTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIMPORTE_PORTE] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteDESCUENTO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteDESCUENTO]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteDESCUENTO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteDESCUENTO]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteDESCUENTO] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteDESCUENTO] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIMPORTE_DESCUENTO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetIMPORTE_DESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIMPORTE_DESCUENTO]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteIMPORTE_DESCUENTO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldIMPORTE_DESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteIMPORTE_DESCUENTO]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetIMPORTE_DESCUENTOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIMPORTE_DESCUENTO] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetIMPORTE_DESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIMPORTE_DESCUENTO] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteBASE_IMPONIBLE]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetBASE_IMPONIBLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteBASE_IMPONIBLE]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteBASE_IMPONIBLE]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldBASE_IMPONIBLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteBASE_IMPONIBLE]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteBASE_IMPONIBLE] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetBASE_IMPONIBLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteBASE_IMPONIBLE] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIVA]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetIVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIVA]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteIVA]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldIVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteIVA]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetIVAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIVA] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetIVAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIVA] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIMPORTE_IVA]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetIMPORTE_IVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIMPORTE_IVA]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteIMPORTE_IVA]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldIMPORTE_IVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteIMPORTE_IVA]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetIMPORTE_IVAValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIMPORTE_IVA] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetIMPORTE_IVAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIMPORTE_IVA] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIMPORTE_TOTAL]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIMPORTE_TOTAL]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteIMPORTE_TOTAL]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteIMPORTE_TOTAL]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIMPORTE_TOTAL] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteIMPORTE_TOTAL] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings; +begin + result := f_OBSERVACIONES; + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteOBSERVACIONES]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOBSERVACIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteOBSERVACIONES]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteOBSERVACIONES]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldOBSERVACIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteOBSERVACIONES]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetOBSERVACIONESIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteOBSERVACIONES] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetINCIDENCIASValue: IROStrings; +begin + result := f_INCIDENCIAS; + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteINCIDENCIAS]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetINCIDENCIASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteINCIDENCIAS]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldINCIDENCIASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteINCIDENCIAS]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldINCIDENCIASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteINCIDENCIAS]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetINCIDENCIASIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteINCIDENCIAS] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetINCIDENCIAS_ACTIVASValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteINCIDENCIAS_ACTIVAS]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetINCIDENCIAS_ACTIVASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteINCIDENCIAS_ACTIVAS]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldINCIDENCIAS_ACTIVASValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteINCIDENCIAS_ACTIVAS]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldINCIDENCIAS_ACTIVASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteINCIDENCIAS_ACTIVAS]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteINCIDENCIAS_ACTIVAS] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetINCIDENCIAS_ACTIVASIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteINCIDENCIAS_ACTIVAS] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteFECHA_ALTA]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteFECHA_ALTA]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteFECHA_ALTA]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteFECHA_ALTA]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteFECHA_ALTA] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteFECHA_ALTA] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteFECHA_MODIFICACION]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteFECHA_MODIFICACION]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteFECHA_MODIFICACION]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteFECHA_MODIFICACION]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteFECHA_MODIFICACION] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteFECHA_MODIFICACION] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteUSUARIO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteUSUARIO]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteUSUARIO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteUSUARIO]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteUSUARIO] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteUSUARIO] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_FORMA_PAGO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetID_FORMA_PAGOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_FORMA_PAGO]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteID_FORMA_PAGO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldID_FORMA_PAGOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteID_FORMA_PAGO]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_FORMA_PAGO] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetID_FORMA_PAGOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteID_FORMA_PAGO] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetFECHA_PREVISTA_ENVIOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteFECHA_PREVISTA_ENVIO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetFECHA_PREVISTA_ENVIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteFECHA_PREVISTA_ENVIO]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldFECHA_PREVISTA_ENVIOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteFECHA_PREVISTA_ENVIO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldFECHA_PREVISTA_ENVIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteFECHA_PREVISTA_ENVIO]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetFECHA_PREVISTA_ENVIOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteFECHA_PREVISTA_ENVIO] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetFECHA_PREVISTA_ENVIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteFECHA_PREVISTA_ENVIO] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetFECHA_ENVIOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteFECHA_ENVIO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetFECHA_ENVIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteFECHA_ENVIO]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldFECHA_ENVIOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteFECHA_ENVIO]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldFECHA_ENVIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteFECHA_ENVIO]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetFECHA_ENVIOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteFECHA_ENVIO] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetFECHA_ENVIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteFECHA_ENVIO] := Null; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetFECHA_RECEPCIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteFECHA_RECEPCION]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetFECHA_RECEPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteFECHA_RECEPCION]); +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldFECHA_RECEPCIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteFECHA_RECEPCION]; +end; + +function TAlbaranesClienteBusinessProcessorRules.GetOldFECHA_RECEPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesClienteFECHA_RECEPCION]); +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetFECHA_RECEPCIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteFECHA_RECEPCION] := aValue; +end; + +procedure TAlbaranesClienteBusinessProcessorRules.SetFECHA_RECEPCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesClienteFECHA_RECEPCION] := Null; +end; + + +{ TAlbaranesCliente_DetallesBusinessProcessorRules } +constructor TAlbaranesCliente_DetallesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TAlbaranesCliente_DetallesBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesID]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesID]); +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesID]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesID]); +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesID] := aValue; +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesID] := Null; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetID_ALBARANValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesID_ALBARAN]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetID_ALBARANIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesID_ALBARAN]); +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldID_ALBARANValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesID_ALBARAN]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldID_ALBARANIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesID_ALBARAN]); +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetID_ALBARANValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesID_ALBARAN] := aValue; +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetID_ALBARANIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesID_ALBARAN] := Null; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesPOSICION]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetPOSICIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesPOSICION]); +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesPOSICION]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldPOSICIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesPOSICION]); +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetPOSICIONValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesPOSICION] := aValue; +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetPOSICIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesPOSICION] := Null; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetTIPO_DETALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesTIPO_DETALLE]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetTIPO_DETALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesTIPO_DETALLE]); +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldTIPO_DETALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesTIPO_DETALLE]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldTIPO_DETALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesTIPO_DETALLE]); +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetTIPO_DETALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesTIPO_DETALLE] := aValue; +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetTIPO_DETALLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesTIPO_DETALLE] := Null; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesCONCEPTO]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetCONCEPTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesCONCEPTO]); +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesCONCEPTO]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldCONCEPTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesCONCEPTO]); +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetCONCEPTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesCONCEPTO] := aValue; +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetCONCEPTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesCONCEPTO] := Null; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetCANTIDADValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesCANTIDAD]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetCANTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesCANTIDAD]); +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldCANTIDADValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesCANTIDAD]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldCANTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesCANTIDAD]); +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetCANTIDADValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesCANTIDAD] := aValue; +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetCANTIDADIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesCANTIDAD] := Null; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetUNIDAD_MEDIDAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesUNIDAD_MEDIDA]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetUNIDAD_MEDIDAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesUNIDAD_MEDIDA]); +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldUNIDAD_MEDIDAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesUNIDAD_MEDIDA]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldUNIDAD_MEDIDAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesUNIDAD_MEDIDA]); +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetUNIDAD_MEDIDAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesUNIDAD_MEDIDA] := aValue; +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesUNIDAD_MEDIDA] := Null; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetIMPORTE_UNIDADValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesIMPORTE_UNIDAD]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetIMPORTE_UNIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesIMPORTE_UNIDAD]); +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldIMPORTE_UNIDADValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesIMPORTE_UNIDAD]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldIMPORTE_UNIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesIMPORTE_UNIDAD]); +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetIMPORTE_UNIDADValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesIMPORTE_UNIDAD] := aValue; +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetIMPORTE_UNIDADIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesIMPORTE_UNIDAD] := Null; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesDESCUENTO]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesDESCUENTO]); +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesDESCUENTO]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesDESCUENTO]); +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesDESCUENTO] := aValue; +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesDESCUENTO] := Null; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesIMPORTE_PORTE]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetIMPORTE_PORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesIMPORTE_PORTE]); +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesIMPORTE_PORTE]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldIMPORTE_PORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesIMPORTE_PORTE]); +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesIMPORTE_PORTE] := aValue; +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetIMPORTE_PORTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesIMPORTE_PORTE] := Null; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesIMPORTE_TOTAL]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesIMPORTE_TOTAL]); +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesIMPORTE_TOTAL]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesIMPORTE_TOTAL]); +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesIMPORTE_TOTAL] := aValue; +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesIMPORTE_TOTAL] := Null; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesVISIBLE]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetVISIBLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesVISIBLE]); +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesVISIBLE]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldVISIBLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesVISIBLE]); +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetVISIBLEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesVISIBLE] := aValue; +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetVISIBLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesVISIBLE] := Null; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesID_ARTICULO]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetID_ARTICULOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesID_ARTICULO]); +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesID_ARTICULO]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldID_ARTICULOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesID_ARTICULO]); +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetID_ARTICULOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesID_ARTICULO] := aValue; +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetID_ARTICULOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesID_ARTICULO] := Null; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesREFERENCIA]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesREFERENCIA]); +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesREFERENCIA]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesREFERENCIA]); +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesREFERENCIA] := aValue; +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesREFERENCIA] := Null; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesREFERENCIA_PROVEEDOR]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetREFERENCIA_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesREFERENCIA_PROVEEDOR]); +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesREFERENCIA_PROVEEDOR]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesREFERENCIA_PROVEEDOR]); +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesREFERENCIA_PROVEEDOR] := aValue; +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesREFERENCIA_PROVEEDOR] := Null; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetID_PEDIDOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesID_PEDIDO]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetID_PEDIDOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesID_PEDIDO]); +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldID_PEDIDOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesID_PEDIDO]; +end; + +function TAlbaranesCliente_DetallesBusinessProcessorRules.GetOldID_PEDIDOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesCliente_DetallesID_PEDIDO]); +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetID_PEDIDOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesID_PEDIDO] := aValue; +end; + +procedure TAlbaranesCliente_DetallesBusinessProcessorRules.SetID_PEDIDOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesCliente_DetallesID_PEDIDO] := Null; +end; + + +initialization + RegisterBusinessProcessorRules(RID_ListaAnosAlbaranesDelta, TListaAnosAlbaranesBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_AlbaranesClienteDelta, TAlbaranesClienteBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_AlbaranesCliente_DetallesDelta, TAlbaranesCliente_DetallesBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Albaranes de cliente/Model/uBizAlbaranClienteServer.dcu b/Source/Modulos/Albaranes de cliente/Model/uBizAlbaranClienteServer.dcu new file mode 100644 index 0000000..97844b4 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Model/uBizAlbaranClienteServer.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Model/uBizAlbaranClienteServer.pas b/Source/Modulos/Albaranes de cliente/Model/uBizAlbaranClienteServer.pas new file mode 100644 index 0000000..aba4bac --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Model/uBizAlbaranClienteServer.pas @@ -0,0 +1,120 @@ +unit uBizAlbaranClienteServer; + +interface + +uses + uDAInterfaces, uDADelta, uDABusinessProcessor, + schAlbaranesClienteServer_Intf; + +const + BIZ_SERVER_ALBARAN_CLIENTE = 'Server.AlbaranCliente'; + + CTE_TIPO_ALBARAN = 'A'; + CTE_TIPO_ALBARAN_DEV = 'D'; + +type + TBizAlbaranClienteServer = class(TAlbaranesClienteBusinessProcessorRules) + private + FReferenciaAutomatica : Boolean; + function DarReferencia : String; + function IncrementarReferencia : Boolean; + protected + procedure BeforeProcessDelta(Sender: TDABusinessProcessor; + const aDelta: IDADelta); override; + procedure AfterProcessChange(Sender: TDABusinessProcessor; + aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); override; + end; + +implementation + +uses + Variants, uDAClasses, uReferenciasUtils, uBusinessUtils, uROClasses, uDataModuleServer, + schAlbaranesClienteClient_Intf, FactuGES_Intf, uROServer, SysUtils, JclStrings; + +const + REF_ALBARANES_CLIENTE = 'REF_ALBARANES_CLIENTE'; + REF_ALBARANES_DEV_CLIENTE = 'REF_ALBARANES_DEV_CLIENTE'; + +{ TBizAlbaranClienteServer } + +procedure TBizAlbaranClienteServer.AfterProcessChange( + Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); +begin + inherited; + { Por defecto, mantenemos los deltas por si alguna tabla hija los necesita } + CanRemoveFromDelta := False; + + case aChange.ChangeType of + ctInsert, ctUpdate: begin + if FReferenciaAutomatica then + begin + IncrementarReferencia; + FReferenciaAutomatica := False; + end; + end; + end; +end; + +procedure TBizAlbaranClienteServer.BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); +begin + inherited; + + FReferenciaAutomatica := False; + + case Sender.CurrentChange.ChangeType of + ctInsert, ctUpdate: begin + //Si la referencia no ha sido asignada le asignamos una nosotros + if REFERENCIAIsNull or (Length(REFERENCIA) = 0) then + begin + FReferenciaAutomatica := True; + REFERENCIA := DarReferencia; + end; + end; + end; +end; + +function TBizAlbaranClienteServer.DarReferencia: String; +var + AReferenciasService : IsrvReferencias; + Intf : IInterface; + AClientID : TGUID; + ACodigoReferencia : String; +begin + if (TIPO = CTE_TIPO_ALBARAN_DEV) then + ACodigoReferencia := REF_ALBARANES_DEV_CLIENTE + else + ACodigoReferencia := REF_ALBARANES_CLIENTE; + + CreateGUID(AClientID); + + GetClassFactory('srvReferencias').CreateInstance(AClientID, Intf); + AReferenciasService := Intf as IsrvReferencias; + Result := AReferenciasService.DarNuevaReferencia(ACodigoReferencia, ID_EMPRESA) +end; + +function TBizAlbaranClienteServer.IncrementarReferencia: Boolean; +var + AReferenciasService : IsrvReferencias; + Intf : IInterface; + AClientID : TGUID; + ACodigoReferencia : String; +begin + if (TIPO = CTE_TIPO_ALBARAN_DEV) then + ACodigoReferencia := REF_ALBARANES_DEV_CLIENTE + else + ACodigoReferencia := REF_ALBARANES_CLIENTE; + + CreateGUID(AClientID); + + GetClassFactory('srvReferencias').CreateInstance(AClientID, Intf); + AReferenciasService := Intf as IsrvReferencias; + Result := AReferenciasService.IncrementarValorReferencia(ACodigoReferencia, Self.REFERENCIA, ID_EMPRESA) +end; + + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_ALBARAN_CLIENTE, TBizAlbaranClienteServer); + +end. diff --git a/Source/Modulos/Albaranes de cliente/Model/uBizAlbaranesCliente.dcu b/Source/Modulos/Albaranes de cliente/Model/uBizAlbaranesCliente.dcu new file mode 100644 index 0000000..2f0c7b8 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Model/uBizAlbaranesCliente.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Model/uBizAlbaranesCliente.pas b/Source/Modulos/Albaranes de cliente/Model/uBizAlbaranesCliente.pas new file mode 100644 index 0000000..096db5e --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Model/uBizAlbaranesCliente.pas @@ -0,0 +1,336 @@ +unit uBizAlbaranesCliente; + +interface + +uses + Classes, uDADataTable, schAlbaranesClienteClient_Intf, uDBSelectionListUtils, + uBizContactos, uBizDetallesAlbaranCliente, uROClasses, uDAInterfaces; + +const + BIZ_CLIENT_ALBARAN_CLIENTE = 'Client.AlbaranCliente'; + + CTE_TIPO_ALBARAN = 'A'; + CTE_TIPO_ALBARAN_DEV = 'D'; + + SITUACION_ALBARAN_PENDIENTE = 'PENDIENTE'; + SITUACION_ALBARAN_ENVIADO = 'ENVIADO'; + SITUACION_ALBARAN_SERVIDO = 'SERVIDO'; + +type + IBizAlbaranCliente = interface(IAlbaranesCliente) + ['{BC9BC56D-E137-46F8-A752-58D7F78DAAE8}'] + + procedure SetCliente(AValue : IBizCliente); + function GetCliente : IBizCliente; + property Cliente : IBizCliente read GetCliente write SetCliente; + + // Esta propidad es para que el controlador pueda acceder directamente + // a la propiedad Cliente + procedure _SetCliente(AValue : IBizCliente); + function _GetCliente : IBizCliente; + property _Cliente : IBizCliente read _GetCliente write _SetCliente; + + function GetDetalles: IBizDetallesAlbaranCliente; + procedure SetDetalles(Value: IBizDetallesAlbaranCliente); + property Detalles: IBizDetallesAlbaranCliente read GetDetalles write SetDetalles; + + function EsNuevo : Boolean; + end; + + TBizAlbaranCliente = class(TAlbaranesClienteDataTableRules, IBizAlbaranCliente, ISeleccionable) + private + procedure CalcularBaseImponible; + procedure CalcularIVA; + protected + FSeleccionableInterface : ISeleccionable; + FCliente : IBizCliente; + FDetalles : IBizDetallesAlbaranCliente; + FDetallesLink : TDADataSource; + + procedure SetCliente(AValue : IBizCliente); + function GetCliente : IBizCliente; + + procedure _SetCliente(AValue : IBizCliente); + function _GetCliente : IBizCliente; + + function GetDetalles: IBizDetallesAlbaranCliente; + procedure SetDetalles(Value: IBizDetallesAlbaranCliente); + + function GetSITUACIONValue: String; override; + procedure SetFECHA_ALBARANValue(const aValue: TDateTime); override; + procedure SetFECHA_ENVIOValue(const aValue: TDateTime); override; + procedure SetFECHA_RECEPCIONValue(const aValue: TDateTime); override; + procedure SetFECHA_PREVISTA_ENVIOValue(const aValue: TDateTime); override; +// procedure SetINCIDENCIASValue(const aValue: IROStrings); override; + procedure SetID_PEDIDOValue(const aValue: Integer); override; + procedure SetID_FACTURAValue(const aValue: Integer); override; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); override; + + procedure IMPORTE_NETOOnChange(Sender: TDACustomField); + procedure IMPORTE_PORTEOnChange(Sender: TDACustomField); + procedure DESCUENTOOnChange(Sender: TDACustomField); + procedure IVAOnChange(Sender: TDACustomField); + + procedure OnNewRecord(Sender: TDADataTable); override; + procedure IniciarValoresAlbaranNuevo; + + public + function EsNuevo : Boolean; + procedure CalcularImporteTotal; + property Cliente : IBizCliente read GetCliente write SetCliente; + property _Cliente : IBizCliente read _GetCliente write _SetCliente; + property Detalles: IBizDetallesAlbaranCliente read GetDetalles write SetDetalles; + + property SeleccionableInterface : ISeleccionable read FSeleccionableInterface + write FSeleccionableInterface implements ISeleccionable; + + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + end; + +implementation + +uses + SysUtils, Variants, uDataModuleConfiguracion, uDataModuleUsuarios, + uDataTableUtils, DateUtils, uDateUtils, DB, uFactuGES_App; + +{ TBizAlbaranCliente } + +procedure TBizAlbaranCliente.CalcularBaseImponible; +begin + if not Self.DataTable.Editing then + Edit; + IMPORTE_DESCUENTO := IMPORTE_NETO * (DESCUENTO/100); + BASE_IMPONIBLE := IMPORTE_NETO - IMPORTE_DESCUENTO + IMPORTE_PORTE; +end; + +procedure TBizAlbaranCliente.CalcularImporteTotal; +begin + DataTable.DisableControls; + DataTable.Fields.FieldEventsDisabled := True; + try + CalcularBaseImponible; + CalcularIVA; + + if not Self.DataTable.Editing then + Edit; + IMPORTE_TOTAL := BASE_IMPONIBLE + IMPORTE_IVA; + finally + DataTable.Fields.FieldEventsDisabled := False; + DataTable.EnableControls; + end; +end; + +procedure TBizAlbaranCliente.CalcularIVA; +begin + if not Self.DataTable.Editing then + Edit; + IMPORTE_IVA := (IVA / 100) * (BASE_IMPONIBLE); +end; + +constructor TBizAlbaranCliente.Create(aDataTable: TDADataTable); +begin + inherited; + FCliente := Nil; + FDetallesLink := TDADataSource.Create(NIL); + FDetallesLink.DataTable := aDataTable; + + with DataTable do + begin + FieldByName(fld_AlbaranesClienteIMPORTE_NETO).OnChange := IMPORTE_NETOOnChange; + FieldByName(fld_AlbaranesClienteIMPORTE_PORTE).OnChange := IMPORTE_PORTEOnChange; + FieldByName(fld_AlbaranesClienteDESCUENTO).OnChange := DESCUENTOOnChange; + FieldByName(fld_AlbaranesClienteIVA).OnChange := IVAOnChange; + end; + + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +procedure TBizAlbaranCliente.DESCUENTOOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +destructor TBizAlbaranCliente.Destroy; +begin + FCliente := NIL; + FDetalles := NIL; + FDetallesLink.Free; + + FSeleccionableInterface := NIL; + inherited; +end; + +function TBizAlbaranCliente.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +function TBizAlbaranCliente.GetCliente: IBizCliente; +begin + Result := FCliente; +end; + +procedure TBizAlbaranCliente.IMPORTE_NETOOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +procedure TBizAlbaranCliente.IMPORTE_PORTEOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +procedure TBizAlbaranCliente.IniciarValoresAlbaranNuevo; +begin + ID_EMPRESA := AppFactuGES.EmpresaActiva.ID; + USUARIO := AppFactuGES.UsuarioActivo.UserName; + FECHA_ALBARAN := DateOf(Date); + INCIDENCIAS_ACTIVAS := 0; + SITUACION := SITUACION_ALBARAN_PENDIENTE; + REFERENCIA := ''; + TIPO := CTE_TIPO_ALBARAN; + + // NO SE TIENEN EN CUENTA LOS ALBARANES DE CLIENTE PARA EL STOCK DE ALMACEN "DE MOMENTO" + ID_ALMACEN := ID_NULO; +end; + +procedure TBizAlbaranCliente.IVAOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +function TBizAlbaranCliente.GetDetalles: IBizDetallesAlbaranCliente; +begin + Result := FDetalles; +end; + +function TBizAlbaranCliente.GetSITUACIONValue: String; +begin + result := Trim(DataTable.Fields[idx_AlbaranesClienteSITUACION].AsString); +end; + +procedure TBizAlbaranCliente.OnNewRecord(Sender: TDADataTable); +begin + inherited; + IniciarValoresAlbaranNuevo; +end; + +procedure TBizAlbaranCliente.SetCliente(AValue: IBizCliente); +var + bEnEdicion : Boolean; + +begin + FCliente := AValue; + + if Assigned(FCliente) then + begin + if not FCliente.DataTable.Active then + FCliente.DataTable.Active := True; + + if ID_Cliente <> FCliente.ID then + begin + bEnEdicion := (DataTable.State in dsEditModes); + if not bEnEdicion then + DataTable.Edit; + + ID_CLIENTE := FCliente.ID; + if FCliente.ID_FORMA_PAGO > 0 then + ID_FORMA_PAGO := FCliente.ID_FORMA_PAGO; + //DESCUENTO := FCliente.DESCUENTO; //No esta activado el descuento general para los albaranes + + DataTable.Post; //Muy importante ya que es necesario hacer un post de la cabecera antes de aadir detalles + //si se quita el id de la cabecera y los detalles se desincroniza + if bEnEdicion then + DataTable.Edit; + end; + end; +end; + +procedure TBizAlbaranCliente.SetDetalles(Value: IBizDetallesAlbaranCliente); +begin + FDetalles := Value; + EnlazarMaestroDetalle(FDetallesLink, FDetalles); +end; + +procedure TBizAlbaranCliente.SetFECHA_ALBARANValue(const aValue: TDateTime); +begin + if EsFechaVacia(aValue) then + SetFieldNull(DataTable, fld_AlbaranesClienteFECHA_ALBARAN) + else + inherited; +end; + +procedure TBizAlbaranCliente.SetFECHA_ENVIOValue(const aValue: TDateTime); +begin + if EsFechaVacia(aValue) then + SetFieldNull(DataTable, fld_AlbaranesClienteFECHA_ENVIO) + else + inherited; +end; + +procedure TBizAlbaranCliente.SetFECHA_PREVISTA_ENVIOValue(const aValue: TDateTime); +begin + if EsFechaVacia(aValue) then + SetFieldNull(DataTable, fld_AlbaranesClienteFECHA_PREVISTA_ENVIO) + else + inherited; +end; + +procedure TBizAlbaranCliente.SetFECHA_RECEPCIONValue(const aValue: TDateTime); +begin + if EsFechaVacia(aValue) then + SetFieldNull(DataTable, fld_AlbaranesClienteFECHA_RECEPCION) + else + inherited; +end; + +procedure TBizAlbaranCliente.SetID_FACTURAValue(const aValue: Integer); +begin + if (aValue = 0) then + SetFieldNull(DataTable, fld_AlbaranesClienteID_FACTURA) + else + inherited; +end; + +procedure TBizAlbaranCliente.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + if (aValue = 0) then + SetFieldNull(DataTable, fld_AlbaranesClienteID_FORMA_PAGO) + else + inherited; +end; + +procedure TBizAlbaranCliente.SetID_PEDIDOValue(const aValue: Integer); +begin + if (aValue = 0) then + SetFieldNull(DataTable, fld_AlbaranesClienteID_PEDIDO) + else + inherited; +end; +{ +procedure TBizAlbaranCliente.SetINCIDENCIASValue(const aValue: IROStrings); +begin + if not Assigned(aValue) then + SetFieldNull(DataTable, fld_AlbaranesClienteINCIDENCIAS) + else + inherited; +end; +} +function TBizAlbaranCliente._GetCliente: IBizCliente; +begin + Result := FCliente; +end; + +procedure TBizAlbaranCliente._SetCliente(AValue: IBizCliente); +begin + FCliente := AValue; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_ALBARAN_CLIENTE, TBizAlbaranCliente); + +finalization + +end. + diff --git a/Source/Modulos/Albaranes de cliente/Model/uBizDetallesAlbaranCliente.dcu b/Source/Modulos/Albaranes de cliente/Model/uBizDetallesAlbaranCliente.dcu new file mode 100644 index 0000000..9a96406 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Model/uBizDetallesAlbaranCliente.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Model/uBizDetallesAlbaranCliente.pas b/Source/Modulos/Albaranes de cliente/Model/uBizDetallesAlbaranCliente.pas new file mode 100644 index 0000000..c8481bd --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Model/uBizDetallesAlbaranCliente.pas @@ -0,0 +1,49 @@ +unit uBizDetallesAlbaranCliente; + +interface + +uses + uDADataTable, schAlbaranesClienteClient_Intf; + +const + BIZ_CLIENT_DETALLES_ALBARAN_CLIENTE = 'Client.DetallesAlbaran.Cliente'; + + +type + IBizDetallesAlbaranCliente = interface(IAlbaranesCliente_Detalles) + ['{8EC1F1B2-C00D-4B58-9F97-C74DBADA4980}'] + end; + + TBizDetallesAlbaranCliente = class(TAlbaranesCliente_DetallesDataTableRules, IBizDetallesAlbaranCliente) + protected + procedure OnNewRecord(Sender: TDADataTable); override; + procedure BeforeInsert(Sender: TDADataTable); override; + end; + +implementation + +uses + DB; + +{ TBizDetallesAlbaranCliente } + +procedure TBizDetallesAlbaranCliente.BeforeInsert(Sender: TDADataTable); +var + AMasterTable : TDADataTable; +begin + inherited; + AMasterTable := DataTable.GetMasterDataTable; + if Assigned(AMasterTable) and (AMasterTable.State = dsInsert) then + AMasterTable.Post; +end; + +procedure TBizDetallesAlbaranCliente.OnNewRecord(Sender: TDADataTable); +begin + inherited; + VISIBLE := 1; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_DETALLES_ALBARAN_CLIENTE, TBizDetallesAlbaranCliente); + +end. diff --git a/Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.bdsproj b/Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.bdsproj new file mode 100644 index 0000000..82d7576 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.bdsproj @@ -0,0 +1,497 @@ + + + + + + + + + + + + AlbaranesCliente_plugin.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + EurekaLog 5.1.9 + + + + diff --git a/Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.dcu b/Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.dcu new file mode 100644 index 0000000..0286134 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.dpk b/Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.dpk new file mode 100644 index 0000000..35da266 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.dpk differ diff --git a/Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.dproj b/Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.dproj new file mode 100644 index 0000000..e2ad3d3 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.dproj @@ -0,0 +1,549 @@ + + + + {e7d762a1-3a15-46b2-bd5b-3821d13b8347} + AlbaranesCliente_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\AlbaranesCliente_plugin.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + EurekaLog 5.1.9 + AlbaranesCliente_plugin.dpk + + + + + MainSource + + + + + + + + + +
PluginAlbaranesCliente
+
+
+
+ diff --git a/Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.drc b/Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.drc new file mode 100644 index 0000000..8cf7190 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.drc @@ -0,0 +1,17 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Albaranes de cliente\Plugin\uPluginAlbaranesCliente.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de cliente\Plugin\AlbaranesCliente_plugin.res */ +/* c:\temp\dtf1F7.tmp */ diff --git a/Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.rc b/Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.res b/Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.res differ diff --git a/Source/Modulos/Albaranes de cliente/Plugin/uPluginAlbaranesCliente.dcu b/Source/Modulos/Albaranes de cliente/Plugin/uPluginAlbaranesCliente.dcu new file mode 100644 index 0000000..18819c6 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Plugin/uPluginAlbaranesCliente.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Plugin/uPluginAlbaranesCliente.dfm b/Source/Modulos/Albaranes de cliente/Plugin/uPluginAlbaranesCliente.dfm new file mode 100644 index 0000000..b98d248 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Plugin/uPluginAlbaranesCliente.dfm @@ -0,0 +1,502 @@ +object PluginAlbaranesCliente: TPluginAlbaranesCliente + OldCreateOrder = True + DefaultAction = actAlbaranesCliente + Description = 'Ventas' + ModuleMenu = MainMenu + ModuleName = 'Albaranes de cliente' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software' + Version = '1.0.0' + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F330000026A4944415478DA63FCFFFF3F032D + 0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80F83F980601EBC0 + 7C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3C275FB19E62DDD + 84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD97890B005D87C802E + 06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9E0FF3F605803F1 + 1FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F18E70860DBB4E10 + 6701CCDBA480075B431936EF3D459C05F8520E3600D2B3A8508F61EB81D3C45B + 802BA86096C3E4616AE7E7EB32EC387486721F4C2C7064F8CA7E8E41F8D527BC + BE7AF2D589341FC02C6D2BE76788F0FBC520C1F883E1D74F0608FEC1C0F01346 + 03F1C9134458800DCC4C6464884D85B0F119CE2FC1C070F52E160B223C4DC1B9 + 139B0F62DE3B31B008E28FEC3FEF1186638D8350371370EEC4E60364D783C0A7 + F71017C330C80767CE4082C6CE701FC3A1F3587C10E46CC4E0567D04A70520CD + 8400C87010C06A819FA3018357ED31AC1A414184EC0310F8FB17182CBF19187E + FF02FAE23B03C38D1B0839AC1678DBE9C1CB155819032A7B40F49E7A51140B40 + 86FE061AFEE71784BD660D07839AC60F0636163C167858EB60351C54A1EC6F12 + C3880390C1201F80F0966D1C0C52F2100BD85819184E5CC662818BA51656C341 + F4A15609140BDEBE44180EB268E71E0E061169880557EE383134AFDACB886181 + BDA93AD8B07F7F11C532CCC2E39DD2700B4006BE7B85301C1454FB0E7230F089 + FF6078F0046238D6646A63A40A2E11B101D67D9E600B664EE5C09982DEFDB662 + D8FA491D7759D43B65214ECDF6BCFB187818A5F1265190E12000B300003BBC36 + ACFF3E80210000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000001974455874536F6674776172650041646F626520496D616765526561 + 647971C9653C000003294944415478DAB5956B4814511886DFD15557DD753531 + 352B495129723149222DAF61A921249A4216F4C37F81194445445028F5A32088 + 2E109991F443BAAB98B7F55A9AA1A549B4D2C5CAD2557775BDB4D7D9CE991A2F + EDACED62BD70383373CE7CCF79BF73E61BC662B1E07F8A590828AFECFC67B47D + BBB730820032E07030B39925CDC2F554717B0AD15D73C53660FB11C5A200AD17 + 936C065F38B7FA6C2CCAEE2B70B3FCF1D20047569E78B419A28810345DAB81A6 + F900EE3C6AFE3B40C8C19FCFA81ACEC523E5780BDA144AEE7EAC311F772B5B97 + E7C0C2925C936622ABA7D72696FDBD072C775D51DDEEB8037B445D7CA9C9C5C3 + DA0EFB00BC6D47F4A92A074F1A5ED80758EAE40889BE73BB488EAAA62EFB01B6 + 52C5C3F9717E6E6961246A5A5E2EDFC1A5C3499871EB86AF4ABBA4ABAF33C98E + 39E0A125C764C8CB342080D1C1A0C7AFA603F47C4F5A67871D00215D3FC82077 + 2F3055EF85498B3B64892360D8F9E0BA5940592581DB900903E2506B405E5A0C + F7750A39C8D72443E403F8770119AC044C50382A0CC3D0047F83B333E0A27582 + 4F8F3BBC4619F4497DA15E1B680DC849DDCC7D9D420EE8EAF71700E33D80D30D + 406C60200E5C87B7C15A98246AB82AC4981CD6A37B4D28E4D94AB4F408A4282B + 251AA927DB6C02685EA9BC54E3481BEC87C86C02239561624A8FA9193D7A42C2 + 1195F58E9B2308C84C8A42FAA96782F9A729A20E780D5493D271CB09D37A167A + 33C0CAC9C39DF3E382808C78F95C5DE16B0CAD3DB4AF3FED3707508F3318BE17 + 0453BD8AACDC001D014C93CD764907649B9600EC8ADB28189CFE501467567200 + DD2439450FC2607863C6C7FE0FC07AF232D9FCEF75E4341188349BA43012E8E8 + 1300ECD8BA413038ED5B8A033880A6DC1BA27E5FF4BE7E0F832F105C4436DD03 + A82B75817BAF1116B280B1383956B4F7BA5901126222B860AC79BE2CF3C0E7E7 + 833880AAC40F43DD1350CD1AB1FA10E0190A188D4063B318520F1DB4B5FEF0FC + 3C324222175B01B64587711551482E8D691CA0F4842BFC5E19C83917E1875CB4 + 688EDA188B2A6D040A9E5E4D259147AD00172E97C19612A48D90304160881B6F + E520A657F9C128932C9A43835311004323FF04D4D3607A0FD2DBC40000000049 + 454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + object actAlbaranesCliente: TAction + Category = 'Ventas' + Caption = 'Albaranes de cliente' + ImageIndex = 0 + OnExecute = actAlbaranesClienteExecute + end + object actAlbaranesDevCliente: TAction + Category = 'Ventas' + Caption = 'Ordenes de devoluci'#243'n' + Enabled = False + ImageIndex = 1 + Visible = False + OnExecute = actAlbaranesDevClienteExecute + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object Compras1: TMenuItem + Caption = 'Ventas' + object AlbaranesdeCliente1: TMenuItem + Tag = 210 + Action = actAlbaranesCliente + end + object Ordenesdedevolucin1: TMenuItem + Tag = 211 + Action = actAlbaranesDevCliente + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000001744944415478DA63FCFFFF3FC394 + C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F19ACFDF319CEED + 98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC5BBA09D3007CE0 + D7EFBF609B4178C98683D80D40770136B0AED69461E59623B80D80391B04FE01 + E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D760CCEE587E036 + 07359F66585A6AC0B069CF49FC06C06CFE7CFB30C3CBC5B1F87CE48261C0C15E + 0706FBE20360D999EC710CCA0D350CECECE9183A7FFE9CC9302FB18501C30090 + B3617E7ED6A6C6A0D5FE18AC180E7EFC00E2EF0CB3771930306F4F45189011E5 + C6E0587A10C516900B500C0069FEF00E62C02927540392C39CC1B6C2423DA4F5 + 0CAA0130CD60037E32CCBE15846A405C90034A9445769E4718F0712242F3870F + 1017BC4A413520CA0FE177B841338C20063CAC47688679E15719AA01A15ED60C + ABB71D450903A76BA9E05898BD4A1E6B1CA218004A18E8409BF70D8315EB719C + 89C05E9EC10500D1295EA9BD5461080000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000001974455874536F6674776172650041646F626520496D616765526561 + 647971C9653C000002034944415478DA63FCFFFF3FC394C53BFE33900172623D + 1819610600394469FAF3F71FC3EF3F7F19ACFDF319CEED98866A806DD17E14C5 + 87FB1CC134B2F8AE761B86B9ABF632CC5BBA09D3007CE0D7EFBF609B4178C986 + 83D80D40770136B0AED69461E59623B80D80391B04FE01E5FEFCF907B7D9B7FE + 04C3AA4A6386B53B8EE13700E692BD9D760CCEE587E03607359F66585A6AC0B0 + 69CF49FC06C06CFE7CFB30C3CBC5B1F87CE48261C0C15E0706FBE20360D999EC + 710C5CD2D60C3C37FF333C0DCF66D0B7B1038B7F7D709FE14E4B3CC385339718 + 300C00391BE6E7676D6A0C5C6FCD19642EEF60782BABC1F035CF9581E3D53B86 + A78DEB186E73A9327C927A88302023CA8DC1B1F4208AFB402E502EB9C0702FC5 + 9A81E3F22D86DF02620CAF9EBF6360B6546538EBD7C3C0BC230D6140729833D8 + 5658A887B49E011BA0D5FE98E1C1A54686CF213D0C1FDE7D61F8CCC8C2603A2D + 8861E58F4406E6EDA90803E2821C50A22CB2F33CD800F9D28B0C379AA2197EAF + 3BC8F0919191E1D3BB9F0C2C527C0C4FF36730301F29461810E587F03BDCA019 + 460CA2FFBC18DEEDDCC870F7CD6706E33667861F4F5E331CE9BFC0F0894B8A81 + C1E83BC280502F6B86D5DB8EA28481D3B55486FFFBFE313CB8FE8CE1715C25C3 + 1F73482C307CFEC4C0BC643A03E39B3308034009031D68F3BE61B07DB28781E9 + E36F86DF060298F2BFBE4700003F4A71F77ECF59220000000049454E44AE4260 + 82} + Name = 'PngImage1' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000003314944415478DABDD6494C135118 + 00E0BF05B489895E342C1E24C110A3D052281704840A14D0044414306AF460BC + 1835B8C478D0448D9EF4E48646148480AC65B1B4D0955228B2A9802146130FC4 + E845128D11289DE7BC99B67499373395C4BF7D999937F3E69BFF7F339D4A1042 + F03F43E20F765B3F301BB8CFDB02B6E90FF3F5AC33FB992F82086904277048A3 + 9410C12ECB2C2AC9DDF5CF574FD1E7A228046E37056E8A82CCD2F330A97F4806 + B5E61954AA4E82AC6A4BC8C9ECF7728950F0F186DBBBA1B6D50CB58DDDE2C070 + 038305AA4430FF5A01EB633DFC1C3A01751D1661B0D3348D0EEC4D2666C8D56F + BB9B037B2E5861C8F2D1D7B730781C1AB43661B0C3F81E95E5C9456786E7C9ED + 46CCD27FEE705F73AF5D186C37BE4307F3149C99880D9CE937E31168D5394480 + 033498CF82FE250A37BEF65741BB7E58186CEB7F8BCA0B521890EFAEE40B3CB6 + E9B212B4034E61B0D53085E80775CD60C34505F498DE08832D8649745893EA03 + F9E6D27B41FEC778C7D455CB41671913065FE927504561DA9A337C763609FAED + 1322C03E1A2C5A3BF8E4CC4E3039A684C1E6BE715459A4E22DA9FF85D49C9440 + 3831FF5B1D0836E9C65055713A6F86887EB0255229831D3B15BA7F79C9D31601 + 96BC4BBA8D3AB9C0D763A8A258C5FC54F195B4FE5C0C6C4FF80E292AF1D8A618 + 80D9CF416063EF283D87E9907BC9462CE9D1057A50243D17EB00A4EB85CBB8B2 + B08A85CC2106CB0BD220EF8A9D9821A9943893A53F9EA5A7E10CC7C7D952662B + CD3038159461438F1395E5A782E6AA8317C4270827308623047CD93D824AD44A + D8776D84381897942B436FB8DD74195D00AE6536E3B9B9D57D9CE0FE1C05F72B + 8762FF3E98AE6F21821871D1D8CA32BBDED62683C41D8BB02E9200D6770DA3E2 + 6C0511C3DBD61BD19C603086B3D476C9203E8106A3804143C03AAD031566C989 + 18DEB6DF8A0D01B930DC7A753288DBC6668851E77410F8A273086932E5440C97 + 7AF84E5C0048C2F0BAC12883CD5B5970E6931A6EB6982401E0F30E3BCACF4866 + DE65A4883217F9403E0CF79B6D32D818BD085FE6590C8F09006BDB07D1FDA7CD + BCB7F8E9D8470C58F34026E28100F8E1CAF06121A098A8AE4C401BA878D1C7FB + 6338FE02EAE8B9B9299A515A0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000001974455874536F6674776172650041646F626520496D616765526561 + 647971C9653C000004754944415478DABD967B4C53571CC7BF17280FE521640D + 38F7706026228F01A29B8883CA4390E8C6DC9465EAB664CBFE58F6077B645B96 + BD62E65FEEBF2D99C974B81A51C6530429A5500A88838A22BE16962876A53640 + CBA3D207EDD9B9078A147A5B18C97EF79EDC7BCEBDF77C7EDFDFF99D7B0E4708 + C1FF69DC7C606DEB2D56E1DB9CC5A54E0F76CEDEB3E7EC24F0F5F1750B783D2F + 991304D6B4DC24FBB236FF67EF1DB42F8783C06E77C0EE7020A3F85DA8ABA4C2 + C06A453F7945128F8C9296459DA97ECC12042D7CBFF187749C2C57E054A57469 + C0E51A0FF4DB188D69A316ED657D186F7F1BA5952DDE8155CD37C8ABBB120415 + BA6B571ECFC4CB1FB7A2BDE5AFB93643DB6148AB95DE8195F23E52949DB86465 + FC38D9ED845DE78F1DDF5656A7F20EAC905F27AF6527B955B254E395EAE46FA2 + BCBE6309C0260ACC9901CE0FD1724D2B2B46C5A54EEFC03F64D7C8FEDC1718D0 + 53567A32FEDBB39F25A3BAA9CB3BB0BCB197D089BA62A0F493245C68FED33BF0 + 7CE355F2465ECA1CD0D3583A1D9AFF8EF39BD29244D4B7747B079EBBA4260776 + A7AE58E1AF1FC543A6522F01D84081F92B079EF8300ECD1DBDDE81650D3DE460 + FE168F21753A62D6EB213F1C8B69BB1DBAA7C6C17970C27FD81FE19A20DC0A7D + CE1578B6BE9B1417A4795448E8C4360D0E62A83006D11B62E1885C8FFBC15D58 + 5B340A8E52AD96D96206C61F02267924A6FB0946747AF4C7252C005EEC26070A + B6B05F95A790D6EE588DDCC9477475A00E8447C12F2611F7C3D410178EC0669D + 81E99522F8744660627014A3561B4C7B80DB66892BF04CDD153A8669C8FA5429 + 18D2B70C1216BE783510E7A09DDBE92FCE3F08C19B92A17C74170FD78F20F27A + 109ED1FA62C43009035D26CD7B296C4CB2780C79E0FEDC54647FAE1254F8CB3B + 1C0EBD0758C600DDB740B061066A7370088E7E1E5AA30E7E23668C4D5A600A04 + FE7909D07012EC4C56A0AD778142E9852E52949382BC2F3B3C0235A6196FFD4C + 66ECBAA94604B130E8FC622422F46F4D812D743583F1B608F87BED65B24F928C + 3D5F5F161C3F3EA4BC42A78D0D00F7BE027C6D8F61165A9E38044451BFEEDC79 + FCAE5B60616692FB25C731B37D68FE463C07E43F7D501382C9BA004C0D0FBB28 + B405D0706E0BC086172DF0F713009EAEE924053B9304617CBDF5FB4806A4CDD0 + 9C17236C7C2B061A2EC23A4D95F185B64FCF42A7441CC28E10AC8A02832E0296 + 567790DD19898230BEAE3ABA96011F9485E0596B26FA9A5A31619C60B055DB69 + 28336946FE0C4C68F844A259190A841FA1CFC440D78D05C0DFAADA49DE8E4441 + 181FEACE634F223FC117118A38E8F406DC1BD030353ED1C0A62FA872DA8FC504 + 0C9CA32195816D237DC2E97D7A3ABEABEBE05C80A72A5524677B025BCB844CA4 + C847817E1D42CD81E8B9F6375366A3E9BFF9184D9C601A4E9A3CFCE4B7D16B6B + B93F027B68C5C8B8B769C974019EAC68233F494FC093BDBFE60CB2B910E86556 + 8C4E5818509B2A82ED69F71B61C3D436ACAB52D220E3034A3ACE2D77AB5F7230 + 86AC318A117BE52A4454C69038124369C29BE7A3E50AF65FA7C46C4ABAFB2F29 + CA1A0E59AB7E850000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + Left = 232 + Top = 80 + Bitmap = {} + end +end diff --git a/Source/Modulos/Albaranes de cliente/Plugin/uPluginAlbaranesCliente.pas b/Source/Modulos/Albaranes de cliente/Plugin/uPluginAlbaranesCliente.pas new file mode 100644 index 0000000..caa1546 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Plugin/uPluginAlbaranesCliente.pas @@ -0,0 +1,111 @@ +unit uPluginAlbaranesCliente; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList, uPlugins_Intf; + +type + TPluginAlbaranesCliente = class(TModuleController, IMCAlbaranesCliente) + actAlbaranesCliente: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + Compras1: TMenuItem; + AlbaranesdeCliente1: TMenuItem; + actAlbaranesDevCliente: TAction; + Ordenesdedevolucin1: TMenuItem; + procedure actAlbaranesClienteExecute(Sender: TObject); + procedure actAlbaranesDevClienteExecute(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure VerAlbaranes(const ID_Cliente: Integer; + const ANombreCliente : String = ''); + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, cxControls, uAlbaranesClienteViewRegister, + uAlbaranesClienteController, uBizAlbaranesCliente; + +function GetModule : TModuleController; +begin + Result := TPluginAlbaranesCliente.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +procedure TPluginAlbaranesCliente.actAlbaranesClienteExecute(Sender: TObject); +var + AAlbaranesClienteController : IAlbaranesClienteController; + AAlbaranesCliente : IBizAlbaranCliente; + +begin + AAlbaranesClienteController := TAlbaranesClienteController.Create; + AAlbaranesCliente := (AAlbaranesClienteController.BuscarAlbaranesNormales as IBizAlbaranCliente); + AAlbaranesClienteController.VerTodosAlbaranes(AAlbaranesCliente); +end; + +procedure TPluginAlbaranesCliente.actAlbaranesDevClienteExecute(Sender: TObject); +var + AAlbaranesClienteController : IAlbaranesClienteController; + AAlbaranesCliente : IBizAlbaranCliente; + +begin + AAlbaranesClienteController := TAlbaranesClienteController.Create; + AAlbaranesCliente := (AAlbaranesClienteController.BuscarAlbaranesDevolucion as IBizAlbaranCliente); + AAlbaranesClienteController.VerTodosAlbaranesDev(AAlbaranesCliente); +end; + +procedure TPluginAlbaranesCliente.VerAlbaranes(const ID_Cliente: Integer; + const ANombreCliente : String = ''); +var + AAlbaranesClienteController : IAlbaranesClienteController; + AAlbaranesCliente : IBizAlbaranCliente; + AText : String; +begin + AText := Format('Lista de albaranes del cliente %s', [ANombreCliente]); + AAlbaranesClienteController := TAlbaranesClienteController.Create; + try + ShowHourglassCursor; + try + AAlbaranesCliente := AAlbaranesClienteController.BuscarTodos(ID_Cliente); + finally + HideHourglassCursor; + end; + AAlbaranesClienteController.VerTodosAlbaranes(AAlbaranesCliente, True, AText); + finally + AAlbaranesCliente := NIL; + AAlbaranesClienteController := NIL; + end; +end; + + +constructor TPluginAlbaranesCliente.Create(AOwner: TComponent); +begin + inherited; + ModuleName := MODULENAME_ALBARANES_CLIENTE; + uAlbaranesClienteViewRegister.RegisterViews; +end; + +destructor TPluginAlbaranesCliente.Destroy; +begin + uAlbaranesClienteViewRegister.UnregisterViews; + inherited; +end; + +initialization + RegisterModuleClass(TPluginAlbaranesCliente); + +finalization + UnRegisterModuleClass(TPluginAlbaranesCliente); + +end. diff --git a/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.dcu b/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.dcu new file mode 100644 index 0000000..1a4fb72 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.dfm b/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.dfm new file mode 100644 index 0000000..75bdc12 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.dfm @@ -0,0 +1,979 @@ +object RptAlbaranesCliente: TRptAlbaranesCliente + OldCreateOrder = True + OnCreate = DataModuleCreate + OnDestroy = DataModuleDestroy + Height = 471 + Width = 448 + object DADSCabecera: TDADataSource + DataSet = tbl_Cabecera.Dataset + DataTable = tbl_Cabecera + Left = 264 + Top = 72 + end + object DADSDetalles: TDADataSource + DataSet = tbl_Detalles.Dataset + DataTable = tbl_Detalles + Left = 344 + Top = 72 + end + object frxRichObject1: TfrxRichObject + Left = 280 + Top = 360 + end + object frxBarCodeObject1: TfrxBarCodeObject + Left = 344 + Top = 360 + end + object frxOLEObject1: TfrxOLEObject + Left = 280 + Top = 408 + end + object frxCrossObject1: TfrxCrossObject + Left = 344 + Top = 408 + end + object frxCheckBoxObject1: TfrxCheckBoxObject + Left = 280 + Top = 256 + end + object frxGradientObject1: TfrxGradientObject + Left = 344 + Top = 256 + end + object frxChartObject1: TfrxChartObject + Left = 280 + Top = 304 + end + object schReport: TDASchema + ConnectionManager = dmServer.ConnectionManager + Datasets = < + item + Params = < + item + Name = 'ID' + DataType = datInteger + Value = '11' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'SELECT'#10' V_ALBARANES_CLIENTE.ID, V_ALBARANES_CLIENTE.ID_EMPRESA,' + + #10' V_ALBARANES_CLIENTE.ID_CLIENTE,'#10' V_ALBARANES_CLIENTE.FECHA_A' + + 'LBARAN,'#10' V_ALBARANES_CLIENTE.REFERENCIA,'#10' V_ALBARANES_CLIENTE.' + + 'REFERENCIA_CLIENTE,'#10' V_ALBARANES_CLIENTE.ID_PEDIDO,'#10' V_ALBARAN' + + 'ES_CLIENTE.REF_PEDIDO,'#10' V_ALBARANES_CLIENTE.OBSERVACIONES,'#10' V_' + + 'ALBARANES_CLIENTE.IMPORTE_TOTAL,'#10' CONTACTOS.NIF_CIF, CONTACTOS.' + + 'NOMBRE,'#10' V_ALBARANES_CLIENTE.PERSONA_CONTACTO,'#10' COALESCE(CONTA' + + 'CTOS_DIRECCIONES.CALLE, CONTACTOS.CALLE) AS CALLE,'#10' COALESCE(CO' + + 'NTACTOS_DIRECCIONES.POBLACION, CONTACTOS.POBLACION) AS POBLACION' + + ','#10' COALESCE(CONTACTOS_DIRECCIONES.PROVINCIA, CONTACTOS.PROVINCI' + + 'A) AS PROVINCIA,'#10' COALESCE(CONTACTOS_DIRECCIONES.CODIGO_POSTAL,' + + ' CONTACTOS.CODIGO_POSTAL) AS CODIGO_POSTAL'#10'FROM'#10' V_ALBARANES_CL' + + 'IENTE'#10' INNER JOIN CONTACTOS ON (CONTACTOS.ID = V_ALBARANES_CLIE' + + 'NTE.ID_CLIENTE)'#10' LEFT OUTER JOIN CONTACTOS_DIRECCIONES ON (CONT' + + 'ACTOS_DIRECCIONES.ID = V_ALBARANES_CLIENTE.ID_DIRECCION)'#10'WHERE V' + + '_ALBARANES_CLIENTE.ID = :ID'#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'FECHA_ALBARAN' + TableField = 'FECHA_ALBARAN' + end + item + DatasetField = 'ID_PEDIDO' + TableField = 'ID_PEDIDO' + end + item + DatasetField = 'REF_PEDIDO' + TableField = 'REF_PEDIDO' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'REFERENCIA_CLIENTE' + TableField = 'REFERENCIA_CLIENTE' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end> + end> + Name = 'Informe_Cabecera' + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'FECHA_ALBARAN' + DataType = datDateTime + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + end + item + Name = 'REF_PEDIDO' + DataType = datString + Size = 255 + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + end> + end + item + Params = < + item + Name = 'ID_ALBARAN' + DataType = datInteger + Value = '11' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ALBARANES_CLIENTE_DETALLES' + SQL = + 'SELECT ALBARANES_CLIENTE_DETALLES.ID, ALBARANES_CLIENTE_DETALLES' + + '.ID_ALBARAN,'#10' ALBARANES_CLIENTE_DETALLES.POSICION, ALBARAN' + + 'ES_CLIENTE_DETALLES.TIPO_DETALLE,'#10' F_RTFTOTEXT(ALBARANES_C' + + 'LIENTE_DETALLES.CONCEPTO) as CONCEPTO, ALBARANES_CLIENTE_DETALLE' + + 'S.CANTIDAD,'#10' ALBARANES_CLIENTE_DETALLES.UNIDAD_MEDIDA,'#10' ' + + ' ALBARANES_CLIENTE_DETALLES.IMPORTE_UNIDAD, ALBARANES_CLIENTE' + + '_DETALLES.IMPORTE_TOTAL,'#10' ARTICULOS.REFERENCIA'#10'FROM ALBARA' + + 'NES_CLIENTE_DETALLES'#10' LEFT JOIN ARTICULOS ON (ALBARANES_CLIE' + + 'NTE_DETALLES.ID_ARTICULO = ARTICULOS.ID)'#10'WHERE'#10' ID_ALBARAN =' + + ' :ID_ALBARAN AND (VISIBLE <> 0) AND {Where}'#10'ORDER BY ID_ALBARAN,' + + ' POSICION'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_ALBARAN' + TableField = 'ID_ALBARAN' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + end + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'UNIDAD_MEDIDA' + TableField = 'UNIDAD_MEDIDA' + end + item + DatasetField = 'IMPORTE_UNIDAD' + TableField = 'IMPORTE_UNIDAD' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'REFERENCIA' + TableField = '' + SQLOrigin = 'REFERENCIA' + end> + end> + Name = 'Informe_Detalles' + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_ALBARAN' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 254 + end + item + Name = 'CANTIDAD' + DataType = datFloat + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end> + end + item + Params = < + item + Name = 'ID_ALBARAN' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ALBARANES_CLIENTE_DETALLES' + SQL = + 'SELECT ALBARANES_CLIENTE_DETALLES.ID, ALBARANES_CLIENTE_DETALLES' + + '.ID_ALBARAN,'#10' ALBARANES_CLIENTE_DETALLES.POSICION, ALBARAN' + + 'ES_CLIENTE_DETALLES.TIPO_DETALLE,'#10' F_RTFTOTEXT(ALBARANES_C' + + 'LIENTE_DETALLES.CONCEPTO) as CONCEPTO, ALBARANES_CLIENTE_DETALLE' + + 'S.CANTIDAD,'#10' ALBARANES_CLIENTE_DETALLES.IMPORTE_UNIDAD, AL' + + 'BARANES_CLIENTE_DETALLES.IMPORTE_TOTAL,'#10' ARTICULOS.REFEREN' + + 'CIA, ARTICULOS.FAMILIA'#10#10#10'FROM ALBARANES_CLIENTE_DETALLES'#10'LEFT JO' + + 'IN ARTICULOS ON (ALBARANES_CLIENTE_DETALLES.ID_ARTICULO = ARTICU' + + 'LOS.ID)'#10'WHERE (ID_ALBARAN = :ID_ALBARAN)'#10'AND (ARTICULOS.INVENTAR' + + 'IABLE = 1)'#10'ORDER BY POSICION'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_ALBARAN' + TableField = 'ID_ALBARAN' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + end + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'IMPORTE_UNIDAD' + TableField = 'IMPORTE_UNIDAD' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'REFERENCIA' + TableField = '' + SQLOrigin = 'REFERENCIA' + end + item + DatasetField = 'FAMILIA' + TableField = '' + SQLOrigin = 'FAMILIA' + end> + end> + Name = 'Informe_Detalles_Etiquetas' + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_ALBARAN' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 254 + end + item + Name = 'CANTIDAD' + DataType = datInteger + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'FAMILIA' + DataType = datString + Size = 255 + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 16 + end + object frxReport: TfrxReport + Version = '4.7.71' + DotMatrixReport = False + EngineOptions.DoublePass = True + IniFile = '\Software\Fast Reports' + PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator, pbExportQuick] + PreviewOptions.Zoom = 1.000000000000000000 + PrintOptions.Printer = 'Por defecto' + PrintOptions.PrintOnSheet = 0 + ReportOptions.CreateDate = 39065.872423495400000000 + ReportOptions.LastChange = 39460.761954919000000000 + ScriptLanguage = 'PascalScript' + ScriptText.Strings = ( + '' + 'procedure DatosEmpresaOnBeforePrint(Sender: TfrxComponent);' + 'var' + ' Cadena: String;' + 'begin' + '{ DatosEmpresa.Lines.Clear;' + ' if ( <> '#39#39') then' + ' Cadena := '#39'TLF: '#39' + ;' + ' if ( <> '#39#39') then' + + ' Cadena := Cadena + '#39' FAX: '#39' + ;' + ' DatosEmpresa.Lines.Add(Cadena);' + '}' + 'end;' + '' + 'procedure NombreEmpresaOnBeforePrint(Sender: TfrxComponent);' + 'begin' + '{ NombreEmpresa.Lines.Clear;' + ' NombreEmpresa.Lines.Add();' + '}' + 'end;' + '' + 'procedure DireccionEnvioOnBeforePrint(Sender: TfrxComponent);' + 'var' + ' ACadena : String;' + 'begin' + '{ ACadena := '#39#39';' + ' DireccionEnvio.Lines.Clear;' + ' if ( <> '#39#39') then' + ' ACadena := ;' + '' + ' if ( <> '#39#39') then' + + ' ACadena := ACadena + '#39' '#39' + ;' + '' + ' DireccionEnvio.Lines.Add(ACadena);' + ' ACadena := '#39#39';' + ' DireccionEnvio.Lines.Add();' + ' if ( <> '#39#39') then' + ' ACadena := + '#39' '#39';' + ' if ( <> '#39#39') then' + ' ACadena := ACadena + ;' + '' + ' if (ACadena <> '#39#39') then' + ' DireccionEnvio.Lines.Add(ACadena);' + '' + ' if ( <> '#39#39') then' + ' DireccionEnvio.Lines.Add();' + '' + ' if ( <> '#39#39') then' + ' DireccionEnvio.Lines.Add();' + '}' + 'end;' + '' + 'procedure PageHeader1OnBeforePrint(Sender: TfrxComponent);' + 'begin' + '{ if not Engine.FinalPass then' + ' Set('#39'TotalPaginas'#39', ( + 1));' + '' + ' if Engine.FinalPass then' + ' Set('#39'Pagina'#39', ( + 1));} ' + 'end;' + '' + 'procedure frxReportOnStartReport(Sender: TfrxComponent);' + 'begin' + ' Set('#39'Pagina'#39', 0);' + ' Set('#39'TotalPaginas'#39', 0);' + 'end;' + '' + '' + 'begin' + '' + 'end.') + ShowProgress = False + StoreInDFM = False + OnStartReport = 'frxReportOnStartReport' + Left = 145 + Top = 16 + end + object frxDBCabecera: TfrxDBDataset + UserName = 'frxDBCabecera' + CloseDataSource = False + DataSource = DADSCabecera + BCDToCurrency = False + Left = 264 + Top = 16 + end + object frxDBDetalles: TfrxDBDataset + UserName = 'frxDBDetalles' + CloseDataSource = False + DataSource = DADSDetalles + BCDToCurrency = False + Left = 344 + Top = 16 + end + object IBDatabase1: TIBDatabase + DatabaseName = 'C:\Codigo\Database\FACTUGES.FDB' + Params.Strings = ( + 'user_name=sysdba' + 'password=masterkey' + 'lc_ctype=ISO8859_1') + LoginPrompt = False + DefaultTransaction = IBTransaction1 + Left = 40 + Top = 256 + end + object IBTransaction1: TIBTransaction + Left = 40 + Top = 312 + end + object DataSource1: TDataSource + DataSet = cabecera + Left = 176 + Top = 256 + end + object DataSource3: TDataSource + DataSet = detalles + Left = 176 + Top = 320 + end + object detalles: TIBQuery + Database = IBDatabase1 + Transaction = IBTransaction1 + SQL.Strings = ( + + 'SELECT ALBARANES_CLIENTE_DETALLES.ID, ALBARANES_CLIENTE_DETALLES' + + '.ID_ALBARAN,' + + ' ALBARANES_CLIENTE_DETALLES.POSICION, ALBARANES_CLIENTE_DE' + + 'TALLES.TIPO_DETALLE,' + + ' F_RTFTOTEXT(ALBARANES_CLIENTE_DETALLES.CONCEPTO) as CONCE' + + 'PTO, ALBARANES_CLIENTE_DETALLES.CANTIDAD,' + + ' ALBARANES_CLIENTE_DETALLES.IMPORTE_UNIDAD, ALBARANES_CLIE' + + 'NTE_DETALLES.IMPORTE_TOTAL,' + ' ARTICULOS.REFERENCIA' + 'FROM ALBARANES_CLIENTE_DETALLES' + + ' LEFT JOIN ARTICULOS ON (ALBARANES_CLIENTE_DETALLES.ID_ARTIC' + + 'ULO = ARTICULOS.ID)' + 'WHERE' + ' ID_ALBARAN = 11 AND (VISIBLE <> 0) ' + 'ORDER BY ID_ALBARAN, POSICION') + Left = 112 + Top = 320 + object detallesID: TIntegerField + FieldName = 'ID' + Origin = '"ALBARANES_CLIENTE_DETALLES"."ID"' + ProviderFlags = [pfInUpdate, pfInWhere, pfInKey] + Required = True + end + object detallesID_ALBARAN: TIntegerField + FieldName = 'ID_ALBARAN' + Origin = '"ALBARANES_CLIENTE_DETALLES"."ID_ALBARAN"' + Required = True + end + object detallesPOSICION: TIntegerField + FieldName = 'POSICION' + Origin = '"ALBARANES_CLIENTE_DETALLES"."POSICION"' + end + object detallesTIPO_DETALLE: TIBStringField + FieldName = 'TIPO_DETALLE' + Origin = '"ALBARANES_CLIENTE_DETALLES"."TIPO_DETALLE"' + Size = 10 + end + object detallesCONCEPTO: TIBStringField + FieldName = 'CONCEPTO' + Origin = '"ALBARANES_CLIENTE_DETALLES"."CONCEPTO"' + Size = 254 + end + object detallesCANTIDAD: TIntegerField + FieldName = 'CANTIDAD' + Origin = '"ALBARANES_CLIENTE_DETALLES"."CANTIDAD"' + end + object detallesIMPORTE_UNIDAD: TIBBCDField + FieldName = 'IMPORTE_UNIDAD' + Origin = '"ALBARANES_CLIENTE_DETALLES"."IMPORTE_UNIDAD"' + Precision = 18 + Size = 2 + end + object detallesIMPORTE_TOTAL: TIBBCDField + FieldName = 'IMPORTE_TOTAL' + Origin = '"ALBARANES_CLIENTE_DETALLES"."IMPORTE_TOTAL"' + Precision = 18 + Size = 2 + end + object detallesREFERENCIA: TIBStringField + FieldName = 'REFERENCIA' + Origin = '"ARTICULOS"."REFERENCIA"' + Size = 255 + end + end + object cabecera: TIBQuery + Database = IBDatabase1 + Transaction = IBTransaction1 + SQL.Strings = ( + 'SELECT' + ' V_ALBARANES_CLIENTE.ID, V_ALBARANES_CLIENTE.ID_EMPRESA,' + ' V_ALBARANES_CLIENTE.ID_CLIENTE,' + ' V_ALBARANES_CLIENTE.FECHA_ALBARAN,' + ' V_ALBARANES_CLIENTE.REFERENCIA,' + ' V_ALBARANES_CLIENTE.REFERENCIA_CLIENTE,' + ' V_ALBARANES_CLIENTE.ID_PEDIDO,' + ' V_ALBARANES_CLIENTE.REF_PEDIDO,' + ' V_ALBARANES_CLIENTE.OBSERVACIONES,' + ' V_ALBARANES_CLIENTE.IMPORTE_TOTAL,' + ' V_CLIENTES.NIF_CIF, V_CLIENTES.NOMBRE,' + + ' V_CLIENTES.PERSONA_CONTACTO, V_CLIENTES.CALLE, V_CLIENTES.POBL' + + 'ACION,' + ' V_CLIENTES.PROVINCIA, V_CLIENTES.CODIGO_POSTAL' + 'FROM' + ' V_ALBARANES_CLIENTE' + + ' LEFT OUTER JOIN V_CLIENTES ON (V_CLIENTES.ID = V_ALBARANES_CLI' + + 'ENTE.ID_CLIENTE)' + 'WHERE V_ALBARANES_CLIENTE.ID = 11') + Left = 112 + Top = 256 + object cabeceraID: TIntegerField + FieldName = 'ID' + Origin = '"V_ALBARANES_CLIENTE"."ID"' + end + object cabeceraID_EMPRESA: TIntegerField + FieldName = 'ID_EMPRESA' + Origin = '"V_ALBARANES_CLIENTE"."ID_EMPRESA"' + end + object cabeceraID_CLIENTE: TIntegerField + FieldName = 'ID_CLIENTE' + Origin = '"V_ALBARANES_CLIENTE"."ID_CLIENTE"' + end + object cabeceraFECHA_ALBARAN: TDateField + FieldName = 'FECHA_ALBARAN' + Origin = '"V_ALBARANES_CLIENTE"."FECHA_ALBARAN"' + end + object cabeceraREFERENCIA: TIBStringField + FieldName = 'REFERENCIA' + Origin = '"V_ALBARANES_CLIENTE"."REFERENCIA"' + Size = 255 + end + object cabeceraREFERENCIA_CLIENTE: TIBStringField + FieldName = 'REFERENCIA_CLIENTE' + Origin = '"V_ALBARANES_CLIENTE"."REFERENCIA_CLIENTE"' + Size = 255 + end + object cabeceraID_PEDIDO: TIntegerField + FieldName = 'ID_PEDIDO' + Origin = '"V_ALBARANES_CLIENTE"."ID_PEDIDO"' + end + object cabeceraREF_PEDIDO: TIBStringField + FieldName = 'REF_PEDIDO' + Origin = '"V_ALBARANES_CLIENTE"."REF_PEDIDO"' + Size = 255 + end + object cabeceraOBSERVACIONES: TMemoField + FieldName = 'OBSERVACIONES' + Origin = '"V_ALBARANES_CLIENTE"."OBSERVACIONES"' + ProviderFlags = [pfInUpdate] + BlobType = ftMemo + Size = 8 + end + object cabeceraIMPORTE_TOTAL: TIBBCDField + FieldName = 'IMPORTE_TOTAL' + Origin = '"V_ALBARANES_CLIENTE"."IMPORTE_TOTAL"' + Precision = 18 + Size = 2 + end + object cabeceraNIF_CIF: TIBStringField + FieldName = 'NIF_CIF' + Origin = '"V_CLIENTES"."NIF_CIF"' + Size = 15 + end + object cabeceraNOMBRE: TIBStringField + FieldName = 'NOMBRE' + Origin = '"V_CLIENTES"."NOMBRE"' + Size = 255 + end + object cabeceraPERSONA_CONTACTO: TIBStringField + FieldName = 'PERSONA_CONTACTO' + Origin = '"V_CLIENTES"."PERSONA_CONTACTO"' + Size = 255 + end + object cabeceraCALLE: TIBStringField + FieldName = 'CALLE' + Origin = '"V_CLIENTES"."CALLE"' + Size = 255 + end + object cabeceraPOBLACION: TIBStringField + FieldName = 'POBLACION' + Origin = '"V_CLIENTES"."POBLACION"' + Size = 255 + end + object cabeceraPROVINCIA: TIBStringField + FieldName = 'PROVINCIA' + Origin = '"V_CLIENTES"."PROVINCIA"' + Size = 255 + end + object cabeceraCODIGO_POSTAL: TIBStringField + FieldName = 'CODIGO_POSTAL' + Origin = '"V_CLIENTES"."CODIGO_POSTAL"' + Size = 10 + end + end + object tbl_Cabecera: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'FECHA_ALBARAN' + DataType = datDateTime + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + end + item + Name = 'REF_PEDIDO' + DataType = datString + Size = 255 + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + end> + Params = < + item + Name = 'ID' + DataType = datInteger + Value = '11' + ParamType = daptInput + end> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer1 + LogicalName = 'Informe_Cabecera' + IndexDefs = <> + Left = 264 + Top = 128 + end + object tbl_Detalles: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_ALBARAN' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 254 + end + item + Name = 'CANTIDAD' + DataType = datFloat + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end> + Params = < + item + Name = 'ID_ALBARAN' + DataType = datInteger + Value = '11' + ParamType = daptInput + end> + MasterParamsMappings.Strings = ( + 'ID_ALBARAN=ID') + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer1 + DetailFields = 'ID_ALBARAN' + LogicalName = 'Informe_Detalles' + IndexDefs = <> + Left = 344 + Top = 128 + end + object frxPDFExport1: TfrxPDFExport + ShowDialog = False + UseFileCache = True + ShowProgress = False + OverwritePrompt = False + PrintOptimized = True + Outline = False + Background = False + HTMLTags = True + Author = 'FactuGES' + Subject = 'FactuGES' + Creator = 'FactuGES' + ProtectionFlags = [ePrint, eModify, eCopy, eAnnot] + HideToolbar = False + HideMenubar = False + HideWindowUI = False + FitWindow = False + CenterWindow = False + PrintScaling = False + Left = 344 + Top = 304 + end + object DABin2DataStreamer1: TDABin2DataStreamer + Left = 48 + Top = 88 + end +end diff --git a/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.dfm.bak b/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.dfm.bak new file mode 100644 index 0000000..227cc64 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.dfm.bak @@ -0,0 +1,979 @@ +object RptAlbaranesCliente: TRptAlbaranesCliente + OldCreateOrder = True + OnCreate = DataModuleCreate + OnDestroy = DataModuleDestroy + Height = 471 + Width = 448 + object DADSCabecera: TDADataSource + DataSet = tbl_Cabecera.Dataset + DataTable = tbl_Cabecera + Left = 264 + Top = 72 + end + object DADSDetalles: TDADataSource + DataSet = tbl_Detalles.Dataset + DataTable = tbl_Detalles + Left = 344 + Top = 72 + end + object frxRichObject1: TfrxRichObject + Left = 280 + Top = 360 + end + object frxBarCodeObject1: TfrxBarCodeObject + Left = 344 + Top = 360 + end + object frxOLEObject1: TfrxOLEObject + Left = 280 + Top = 408 + end + object frxCrossObject1: TfrxCrossObject + Left = 344 + Top = 408 + end + object frxCheckBoxObject1: TfrxCheckBoxObject + Left = 280 + Top = 256 + end + object frxGradientObject1: TfrxGradientObject + Left = 344 + Top = 256 + end + object frxChartObject1: TfrxChartObject + Left = 280 + Top = 304 + end + object schReport: TDASchema + ConnectionManager = dmServer.ConnectionManager + Datasets = < + item + Params = < + item + Name = 'ID' + DataType = datInteger + Value = '11' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'SELECT'#10' V_ALBARANES_CLIENTE.ID, V_ALBARANES_CLIENTE.ID_EMPRESA,' + + #10' V_ALBARANES_CLIENTE.ID_CLIENTE,'#10' V_ALBARANES_CLIENTE.FECHA_A' + + 'LBARAN,'#10' V_ALBARANES_CLIENTE.REFERENCIA,'#10' V_ALBARANES_CLIENTE.' + + 'REFERENCIA_CLIENTE,'#10' V_ALBARANES_CLIENTE.ID_PEDIDO,'#10' V_ALBARAN' + + 'ES_CLIENTE.REF_PEDIDO,'#10' V_ALBARANES_CLIENTE.OBSERVACIONES,'#10' V_' + + 'ALBARANES_CLIENTE.IMPORTE_TOTAL,'#10' CONTACTOS.NIF_CIF, CONTACTOS.' + + 'NOMBRE,'#10' V_ALBARANES_CLIENTE.PERSONA_CONTACTO,'#10' COALESCE(CONTA' + + 'CTOS_DIRECCIONES.CALLE, CONTACTOS.CALLE) AS CALLE,'#10' COALESCE(CO' + + 'NTACTOS_DIRECCIONES.POBLACION, CONTACTOS.POBLACION) AS POBLACION' + + ','#10' COALESCE(CONTACTOS_DIRECCIONES.PROVINCIA, CONTACTOS.PROVINCI' + + 'A) AS PROVINCIA,'#10' COALESCE(CONTACTOS_DIRECCIONES.CODIGO_POSTAL,' + + ' CONTACTOS.CODIGO_POSTAL) AS CODIGO_POSTAL'#10'FROM'#10' V_ALBARANES_CL' + + 'IENTE'#10' INNER JOIN CONTACTOS ON (CONTACTOS.ID = V_ALBARANES_CLIE' + + 'NTE.ID_CLIENTE)'#10' LEFT OUTER JOIN CONTACTOS_DIRECCIONES ON (CONT' + + 'ACTOS_DIRECCIONES.ID = V_ALBARANES_CLIENTE.ID_DIRECCION)'#10'WHERE V' + + '_ALBARANES_CLIENTE.ID = :ID'#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'FECHA_ALBARAN' + TableField = 'FECHA_ALBARAN' + end + item + DatasetField = 'ID_PEDIDO' + TableField = 'ID_PEDIDO' + end + item + DatasetField = 'REF_PEDIDO' + TableField = 'REF_PEDIDO' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'REFERENCIA_CLIENTE' + TableField = 'REFERENCIA_CLIENTE' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end> + end> + Name = 'Informe_Cabecera' + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'FECHA_ALBARAN' + DataType = datDateTime + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + end + item + Name = 'REF_PEDIDO' + DataType = datString + Size = 255 + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + end> + end + item + Params = < + item + Name = 'ID_ALBARAN' + DataType = datInteger + Value = '11' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ALBARANES_CLIENTE_DETALLES' + SQL = + 'SELECT ALBARANES_CLIENTE_DETALLES.ID, ALBARANES_CLIENTE_DETALLES' + + '.ID_ALBARAN,'#10' ALBARANES_CLIENTE_DETALLES.POSICION, ALBARAN' + + 'ES_CLIENTE_DETALLES.TIPO_DETALLE,'#10' F_RTFTOTEXT(ALBARANES_C' + + 'LIENTE_DETALLES.CONCEPTO) as CONCEPTO, ALBARANES_CLIENTE_DETALLE' + + 'S.CANTIDAD,'#10' ALBARANES_CLIENTE_DETALLES.UNIDAD_MEDIDA,'#10' ' + + ' ALBARANES_CLIENTE_DETALLES.IMPORTE_UNIDAD, ALBARANES_CLIENTE' + + '_DETALLES.IMPORTE_TOTAL,'#10' ARTICULOS.REFERENCIA'#10'FROM ALBARA' + + 'NES_CLIENTE_DETALLES'#10' LEFT JOIN ARTICULOS ON (ALBARANES_CLIE' + + 'NTE_DETALLES.ID_ARTICULO = ARTICULOS.ID)'#10'WHERE'#10' ID_ALBARAN =' + + ' :ID_ALBARAN AND (VISIBLE <> 0) AND {Where}'#10'ORDER BY ID_ALBARAN,' + + ' POSICION'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_ALBARAN' + TableField = 'ID_ALBARAN' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + end + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'UNIDAD_MEDIDA' + TableField = 'UNIDAD_MEDIDA' + end + item + DatasetField = 'IMPORTE_UNIDAD' + TableField = 'IMPORTE_UNIDAD' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'REFERENCIA' + TableField = '' + SQLOrigin = 'REFERENCIA' + end> + end> + Name = 'Informe_Detalles' + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_ALBARAN' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 254 + end + item + Name = 'CANTIDAD' + DataType = datFloat + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end> + end + item + Params = < + item + Name = 'ID_ALBARAN' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ALBARANES_CLIENTE_DETALLES' + SQL = + 'SELECT ALBARANES_CLIENTE_DETALLES.ID, ALBARANES_CLIENTE_DETALLES' + + '.ID_ALBARAN,'#10' ALBARANES_CLIENTE_DETALLES.POSICION, ALBARAN' + + 'ES_CLIENTE_DETALLES.TIPO_DETALLE,'#10' F_RTFTOTEXT(ALBARANES_C' + + 'LIENTE_DETALLES.CONCEPTO) as CONCEPTO, ALBARANES_CLIENTE_DETALLE' + + 'S.CANTIDAD,'#10' ALBARANES_CLIENTE_DETALLES.IMPORTE_UNIDAD, AL' + + 'BARANES_CLIENTE_DETALLES.IMPORTE_TOTAL,'#10' ARTICULOS.REFEREN' + + 'CIA, ARTICULOS.FAMILIA'#10#10#10'FROM ALBARANES_CLIENTE_DETALLES'#10'LEFT JO' + + 'IN ARTICULOS ON (ALBARANES_CLIENTE_DETALLES.ID_ARTICULO = ARTICU' + + 'LOS.ID)'#10'WHERE (ID_ALBARAN = :ID_ALBARAN)'#10'AND (ARTICULOS.INVENTAR' + + 'IABLE = 1)'#10'ORDER BY POSICION'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_ALBARAN' + TableField = 'ID_ALBARAN' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + end + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'IMPORTE_UNIDAD' + TableField = 'IMPORTE_UNIDAD' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'REFERENCIA' + TableField = '' + SQLOrigin = 'REFERENCIA' + end + item + DatasetField = 'FAMILIA' + TableField = '' + SQLOrigin = 'FAMILIA' + end> + end> + Name = 'Informe_Detalles_Etiquetas' + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_ALBARAN' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 254 + end + item + Name = 'CANTIDAD' + DataType = datInteger + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'FAMILIA' + DataType = datString + Size = 255 + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 16 + end + object frxReport: TfrxReport + Version = '4.7.71' + DotMatrixReport = False + EngineOptions.DoublePass = True + IniFile = '\Software\Fast Reports' + PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator, pbExportQuick] + PreviewOptions.Zoom = 1.000000000000000000 + PrintOptions.Printer = 'Por defecto' + PrintOptions.PrintOnSheet = 0 + ReportOptions.CreateDate = 39065.872423495400000000 + ReportOptions.LastChange = 39460.761954919000000000 + ScriptLanguage = 'PascalScript' + ScriptText.Strings = ( + '' + 'procedure DatosEmpresaOnBeforePrint(Sender: TfrxComponent);' + 'var' + ' Cadena: String;' + 'begin' + '{ DatosEmpresa.Lines.Clear;' + ' if ( <> '#39#39') then' + ' Cadena := '#39'TLF: '#39' + ;' + ' if ( <> '#39#39') then' + + ' Cadena := Cadena + '#39' FAX: '#39' + ;' + ' DatosEmpresa.Lines.Add(Cadena);' + '}' + 'end;' + '' + 'procedure NombreEmpresaOnBeforePrint(Sender: TfrxComponent);' + 'begin' + '{ NombreEmpresa.Lines.Clear;' + ' NombreEmpresa.Lines.Add();' + '}' + 'end;' + '' + 'procedure DireccionEnvioOnBeforePrint(Sender: TfrxComponent);' + 'var' + ' ACadena : String;' + 'begin' + '{ ACadena := '#39#39';' + ' DireccionEnvio.Lines.Clear;' + ' if ( <> '#39#39') then' + ' ACadena := ;' + '' + ' if ( <> '#39#39') then' + + ' ACadena := ACadena + '#39' '#39' + ;' + '' + ' DireccionEnvio.Lines.Add(ACadena);' + ' ACadena := '#39#39';' + ' DireccionEnvio.Lines.Add();' + ' if ( <> '#39#39') then' + ' ACadena := + '#39' '#39';' + ' if ( <> '#39#39') then' + ' ACadena := ACadena + ;' + '' + ' if (ACadena <> '#39#39') then' + ' DireccionEnvio.Lines.Add(ACadena);' + '' + ' if ( <> '#39#39') then' + ' DireccionEnvio.Lines.Add();' + '' + ' if ( <> '#39#39') then' + ' DireccionEnvio.Lines.Add();' + '}' + 'end;' + '' + 'procedure PageHeader1OnBeforePrint(Sender: TfrxComponent);' + 'begin' + '{ if not Engine.FinalPass then' + ' Set('#39'TotalPaginas'#39', ( + 1));' + '' + ' if Engine.FinalPass then' + ' Set('#39'Pagina'#39', ( + 1));} ' + 'end;' + '' + 'procedure frxReportOnStartReport(Sender: TfrxComponent);' + 'begin' + ' Set('#39'Pagina'#39', 0);' + ' Set('#39'TotalPaginas'#39', 0);' + 'end;' + '' + '' + 'begin' + '' + 'end.') + ShowProgress = False + StoreInDFM = False + OnStartReport = 'frxReportOnStartReport' + Left = 145 + Top = 16 + end + object frxDBCabecera: TfrxDBDataset + UserName = 'frxDBCabecera' + CloseDataSource = False + DataSource = DADSCabecera + BCDToCurrency = False + Left = 264 + Top = 16 + end + object frxDBDetalles: TfrxDBDataset + UserName = 'frxDBDetalles' + CloseDataSource = False + DataSource = DADSDetalles + BCDToCurrency = False + Left = 344 + Top = 16 + end + object IBDatabase1: TIBDatabase + DatabaseName = 'C:\Codigo Tecsitel\Database\FACTUGES.FDB' + Params.Strings = ( + 'user_name=sysdba' + 'password=masterkey' + 'lc_ctype=ISO8859_1') + LoginPrompt = False + DefaultTransaction = IBTransaction1 + Left = 40 + Top = 256 + end + object IBTransaction1: TIBTransaction + Left = 40 + Top = 312 + end + object DataSource1: TDataSource + DataSet = cabecera + Left = 176 + Top = 256 + end + object DataSource3: TDataSource + DataSet = detalles + Left = 176 + Top = 320 + end + object detalles: TIBQuery + Database = IBDatabase1 + Transaction = IBTransaction1 + SQL.Strings = ( + + 'SELECT ALBARANES_CLIENTE_DETALLES.ID, ALBARANES_CLIENTE_DETALLES' + + '.ID_ALBARAN,' + + ' ALBARANES_CLIENTE_DETALLES.POSICION, ALBARANES_CLIENTE_DE' + + 'TALLES.TIPO_DETALLE,' + + ' F_RTFTOTEXT(ALBARANES_CLIENTE_DETALLES.CONCEPTO) as CONCE' + + 'PTO, ALBARANES_CLIENTE_DETALLES.CANTIDAD,' + + ' ALBARANES_CLIENTE_DETALLES.IMPORTE_UNIDAD, ALBARANES_CLIE' + + 'NTE_DETALLES.IMPORTE_TOTAL,' + ' ARTICULOS.REFERENCIA' + 'FROM ALBARANES_CLIENTE_DETALLES' + + ' LEFT JOIN ARTICULOS ON (ALBARANES_CLIENTE_DETALLES.ID_ARTIC' + + 'ULO = ARTICULOS.ID)' + 'WHERE' + ' ID_ALBARAN = 11 AND (VISIBLE <> 0) ' + 'ORDER BY ID_ALBARAN, POSICION') + Left = 112 + Top = 320 + object detallesID: TIntegerField + FieldName = 'ID' + Origin = '"ALBARANES_CLIENTE_DETALLES"."ID"' + ProviderFlags = [pfInUpdate, pfInWhere, pfInKey] + Required = True + end + object detallesID_ALBARAN: TIntegerField + FieldName = 'ID_ALBARAN' + Origin = '"ALBARANES_CLIENTE_DETALLES"."ID_ALBARAN"' + Required = True + end + object detallesPOSICION: TIntegerField + FieldName = 'POSICION' + Origin = '"ALBARANES_CLIENTE_DETALLES"."POSICION"' + end + object detallesTIPO_DETALLE: TIBStringField + FieldName = 'TIPO_DETALLE' + Origin = '"ALBARANES_CLIENTE_DETALLES"."TIPO_DETALLE"' + Size = 10 + end + object detallesCONCEPTO: TIBStringField + FieldName = 'CONCEPTO' + Origin = '"ALBARANES_CLIENTE_DETALLES"."CONCEPTO"' + Size = 254 + end + object detallesCANTIDAD: TIntegerField + FieldName = 'CANTIDAD' + Origin = '"ALBARANES_CLIENTE_DETALLES"."CANTIDAD"' + end + object detallesIMPORTE_UNIDAD: TIBBCDField + FieldName = 'IMPORTE_UNIDAD' + Origin = '"ALBARANES_CLIENTE_DETALLES"."IMPORTE_UNIDAD"' + Precision = 18 + Size = 2 + end + object detallesIMPORTE_TOTAL: TIBBCDField + FieldName = 'IMPORTE_TOTAL' + Origin = '"ALBARANES_CLIENTE_DETALLES"."IMPORTE_TOTAL"' + Precision = 18 + Size = 2 + end + object detallesREFERENCIA: TIBStringField + FieldName = 'REFERENCIA' + Origin = '"ARTICULOS"."REFERENCIA"' + Size = 255 + end + end + object cabecera: TIBQuery + Database = IBDatabase1 + Transaction = IBTransaction1 + SQL.Strings = ( + 'SELECT' + ' V_ALBARANES_CLIENTE.ID, V_ALBARANES_CLIENTE.ID_EMPRESA,' + ' V_ALBARANES_CLIENTE.ID_CLIENTE,' + ' V_ALBARANES_CLIENTE.FECHA_ALBARAN,' + ' V_ALBARANES_CLIENTE.REFERENCIA,' + ' V_ALBARANES_CLIENTE.REFERENCIA_CLIENTE,' + ' V_ALBARANES_CLIENTE.ID_PEDIDO,' + ' V_ALBARANES_CLIENTE.REF_PEDIDO,' + ' V_ALBARANES_CLIENTE.OBSERVACIONES,' + ' V_ALBARANES_CLIENTE.IMPORTE_TOTAL,' + ' V_CLIENTES.NIF_CIF, V_CLIENTES.NOMBRE,' + + ' V_CLIENTES.PERSONA_CONTACTO, V_CLIENTES.CALLE, V_CLIENTES.POBL' + + 'ACION,' + ' V_CLIENTES.PROVINCIA, V_CLIENTES.CODIGO_POSTAL' + 'FROM' + ' V_ALBARANES_CLIENTE' + + ' LEFT OUTER JOIN V_CLIENTES ON (V_CLIENTES.ID = V_ALBARANES_CLI' + + 'ENTE.ID_CLIENTE)' + 'WHERE V_ALBARANES_CLIENTE.ID = 11') + Left = 112 + Top = 256 + object cabeceraID: TIntegerField + FieldName = 'ID' + Origin = '"V_ALBARANES_CLIENTE"."ID"' + end + object cabeceraID_EMPRESA: TIntegerField + FieldName = 'ID_EMPRESA' + Origin = '"V_ALBARANES_CLIENTE"."ID_EMPRESA"' + end + object cabeceraID_CLIENTE: TIntegerField + FieldName = 'ID_CLIENTE' + Origin = '"V_ALBARANES_CLIENTE"."ID_CLIENTE"' + end + object cabeceraFECHA_ALBARAN: TDateField + FieldName = 'FECHA_ALBARAN' + Origin = '"V_ALBARANES_CLIENTE"."FECHA_ALBARAN"' + end + object cabeceraREFERENCIA: TIBStringField + FieldName = 'REFERENCIA' + Origin = '"V_ALBARANES_CLIENTE"."REFERENCIA"' + Size = 255 + end + object cabeceraREFERENCIA_CLIENTE: TIBStringField + FieldName = 'REFERENCIA_CLIENTE' + Origin = '"V_ALBARANES_CLIENTE"."REFERENCIA_CLIENTE"' + Size = 255 + end + object cabeceraID_PEDIDO: TIntegerField + FieldName = 'ID_PEDIDO' + Origin = '"V_ALBARANES_CLIENTE"."ID_PEDIDO"' + end + object cabeceraREF_PEDIDO: TIBStringField + FieldName = 'REF_PEDIDO' + Origin = '"V_ALBARANES_CLIENTE"."REF_PEDIDO"' + Size = 255 + end + object cabeceraOBSERVACIONES: TMemoField + FieldName = 'OBSERVACIONES' + Origin = '"V_ALBARANES_CLIENTE"."OBSERVACIONES"' + ProviderFlags = [pfInUpdate] + BlobType = ftMemo + Size = 8 + end + object cabeceraIMPORTE_TOTAL: TIBBCDField + FieldName = 'IMPORTE_TOTAL' + Origin = '"V_ALBARANES_CLIENTE"."IMPORTE_TOTAL"' + Precision = 18 + Size = 2 + end + object cabeceraNIF_CIF: TIBStringField + FieldName = 'NIF_CIF' + Origin = '"V_CLIENTES"."NIF_CIF"' + Size = 15 + end + object cabeceraNOMBRE: TIBStringField + FieldName = 'NOMBRE' + Origin = '"V_CLIENTES"."NOMBRE"' + Size = 255 + end + object cabeceraPERSONA_CONTACTO: TIBStringField + FieldName = 'PERSONA_CONTACTO' + Origin = '"V_CLIENTES"."PERSONA_CONTACTO"' + Size = 255 + end + object cabeceraCALLE: TIBStringField + FieldName = 'CALLE' + Origin = '"V_CLIENTES"."CALLE"' + Size = 255 + end + object cabeceraPOBLACION: TIBStringField + FieldName = 'POBLACION' + Origin = '"V_CLIENTES"."POBLACION"' + Size = 255 + end + object cabeceraPROVINCIA: TIBStringField + FieldName = 'PROVINCIA' + Origin = '"V_CLIENTES"."PROVINCIA"' + Size = 255 + end + object cabeceraCODIGO_POSTAL: TIBStringField + FieldName = 'CODIGO_POSTAL' + Origin = '"V_CLIENTES"."CODIGO_POSTAL"' + Size = 10 + end + end + object tbl_Cabecera: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'FECHA_ALBARAN' + DataType = datDateTime + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + end + item + Name = 'REF_PEDIDO' + DataType = datString + Size = 255 + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + end> + Params = < + item + Name = 'ID' + DataType = datInteger + Value = '11' + ParamType = daptInput + end> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer1 + LogicalName = 'Informe_Cabecera' + IndexDefs = <> + Left = 264 + Top = 128 + end + object tbl_Detalles: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_ALBARAN' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 254 + end + item + Name = 'CANTIDAD' + DataType = datFloat + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end> + Params = < + item + Name = 'ID_ALBARAN' + DataType = datInteger + Value = '11' + ParamType = daptInput + end> + MasterParamsMappings.Strings = ( + 'ID_ALBARAN=ID') + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer1 + DetailFields = 'ID_ALBARAN' + LogicalName = 'Informe_Detalles' + IndexDefs = <> + Left = 344 + Top = 128 + end + object frxPDFExport1: TfrxPDFExport + ShowDialog = False + UseFileCache = True + ShowProgress = False + OverwritePrompt = False + PrintOptimized = True + Outline = False + Background = False + HTMLTags = True + Author = 'FactuGES' + Subject = 'FactuGES' + Creator = 'FactuGES' + ProtectionFlags = [ePrint, eModify, eCopy, eAnnot] + HideToolbar = False + HideMenubar = False + HideWindowUI = False + FitWindow = False + CenterWindow = False + PrintScaling = False + Left = 344 + Top = 304 + end + object DABin2DataStreamer1: TDABin2DataStreamer + Left = 48 + Top = 88 + end +end diff --git a/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.pas b/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.pas new file mode 100644 index 0000000..4d1a9d9 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.pas @@ -0,0 +1,210 @@ +unit uRptAlbaranesCliente_Server; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, frxClass, frxDBSet, uDAScriptingProvider, + uDADataTable, uDACDSDataTable, DB, uDAClasses, frxChart, frxGradient, + frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes, + uDAInterfaces, uDADataStreamer, IBCustomDataSet, IBQuery, IBDatabase, + uDAMemDataTable, frxExportPDF, FactuGES_Intf, uDABin2DataStreamer; + +type + TRptAlbaranesCliente = class(TDataModule) + DADSCabecera: TDADataSource; + DADSDetalles: TDADataSource; + frxRichObject1: TfrxRichObject; + frxBarCodeObject1: TfrxBarCodeObject; + frxOLEObject1: TfrxOLEObject; + frxCrossObject1: TfrxCrossObject; + frxCheckBoxObject1: TfrxCheckBoxObject; + frxGradientObject1: TfrxGradientObject; + frxChartObject1: TfrxChartObject; + frxDBCabecera: TfrxDBDataset; + frxDBDetalles: TfrxDBDataset; + frxReport: TfrxReport; + IBDatabase1: TIBDatabase; + IBTransaction1: TIBTransaction; + DataSource1: TDataSource; + DataSource3: TDataSource; + detalles: TIBQuery; + cabecera: TIBQuery; + cabeceraID: TIntegerField; + cabeceraID_EMPRESA: TIntegerField; + cabeceraID_CLIENTE: TIntegerField; + cabeceraFECHA_ALBARAN: TDateField; + cabeceraREFERENCIA: TIBStringField; + cabeceraREFERENCIA_CLIENTE: TIBStringField; + cabeceraID_PEDIDO: TIntegerField; + cabeceraREF_PEDIDO: TIBStringField; + cabeceraOBSERVACIONES: TMemoField; + cabeceraIMPORTE_TOTAL: TIBBCDField; + cabeceraNIF_CIF: TIBStringField; + cabeceraNOMBRE: TIBStringField; + cabeceraPERSONA_CONTACTO: TIBStringField; + cabeceraCALLE: TIBStringField; + cabeceraPOBLACION: TIBStringField; + cabeceraPROVINCIA: TIBStringField; + cabeceraCODIGO_POSTAL: TIBStringField; + detallesID: TIntegerField; + detallesID_ALBARAN: TIntegerField; + detallesPOSICION: TIntegerField; + detallesTIPO_DETALLE: TIBStringField; + detallesCONCEPTO: TIBStringField; + detallesCANTIDAD: TIntegerField; + detallesIMPORTE_UNIDAD: TIBBCDField; + detallesIMPORTE_TOTAL: TIBBCDField; + detallesREFERENCIA: TIBStringField; + tbl_Cabecera: TDAMemDataTable; + tbl_Detalles: TDAMemDataTable; + frxPDFExport1: TfrxPDFExport; + schReport: TDASchema; + DABin2DataStreamer1: TDABin2DataStreamer; + procedure DataModuleCreate(Sender: TObject); + procedure DataModuleDestroy(Sender: TObject); + private + FConnection: IDAConnection; + //Genera cada uno de los albaranes a imprimir + procedure _GenerarAlbaran(const AID: Integer); + public + function GenerarAlbaran(const AListaID : TIntegerArray): Binary; + function GenerarEtiquetas(const AID : Integer; withRefCliente: Boolean): Binary; + function GenerarAlbaranEnPDF(const ListaID : TIntegerArray): Binary; + end; + +implementation + +{$R *.dfm} + +uses + uSistemaFunc, uDataModuleServer, schAlbaranesClienteClient_Intf; + +const + rptInforme = 'InfAlbaranCliente.fr3'; + rptInfEtiquetas = 'InfEtiquetasAlbaranCliente.fr3'; + + { Dataset names for schReport } + ds_InformeCabecera = 'Informe_Cabecera'; + ds_InformeDetalles = 'Informe_Detalles'; + ds_InformeDetallesEtiquetas = 'Informe_Detalles_Etiquetas'; + + +{ TRptAlbaranesCliente } + + +procedure TRptAlbaranesCliente.DataModuleCreate(Sender: TObject); +begin + schReport.ConnectionManager := dmServer.ConnectionManager; + FConnection := dmServer.DarNuevaConexion; + frxReport.EngineOptions.NewSilentMode := simReThrow; + + frxDBCabecera.DataSource := DADSCabecera; + frxDBCabecera.CloseDataSource := False; + + frxDBDetalles.DataSource := DADSDetalles; + frxDBDetalles.CloseDataSource := False; +end; + +procedure TRptAlbaranesCliente.DataModuleDestroy(Sender: TObject); +begin + tbl_Cabecera.Active := False; + tbl_Detalles.Active := False; +end; + +function TRptAlbaranesCliente.GenerarAlbaran(const AListaID : TIntegerArray): Binary; +var + i: Integer; +begin + Result := Binary.Create; + try + //Vamos generando todos y cada uno de los albaranes recibidos + for i := 0 to AListaID.Count - 1 do + _GenerarAlbaran(AListaID.Items[i]); + frxReport.PreviewPages.SaveToStream(Result); + finally + end; +end; + +function TRptAlbaranesCliente.GenerarAlbaranEnPDF( + const ListaID: TIntegerArray): Binary; +var + i: Integer; +begin + Result := Binary.Create; + try + //Vamos generando todos y cada uno de los presupuestos recibidos + for i := 0 to ListaID.Count - 1 do + _GenerarAlbaran(ListaID.Items[i]); + + frxPDFExport1.Stream := Result; + frxReport.Export(frxPDFExport1) + finally + end; +end; + +procedure TRptAlbaranesCliente._GenerarAlbaran(const AID: Integer); +var + AInforme: Variant; + +begin + FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + try + tbl_Cabecera.Active := False; + tbl_Detalles.Active := False; + + tbl_Cabecera.ParamByName('ID').AsInteger := AID; + tbl_Detalles.ParamByName('ID_ALBARAN').AsInteger := AID; + + tbl_Cabecera.Active := True; + tbl_Detalles.Active := True; + + AInforme := DarRutaFichero(DarRutaInformes, rptInforme, tbl_Cabecera.FieldByName('ID_EMPRESA').AsString); + if VarIsNull(AInforme) then + raise Exception.Create (('Error Servidor: _GenerarFactura, no encuentra informe ' + rptInforme)); + + frxReport.LoadFromFile(AInforme, True); + frxReport.PrepareReport(False); + finally + FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + end; +end; + +function TRptAlbaranesCliente.GenerarEtiquetas(const AID: Integer; withRefCliente: Boolean): Binary; +{var + dsMaster: IDADataset; + dsDetail: IDADataset; + AStream: TMemoryStream;} +begin + Result := NIL; +{ + AStream := TMemoryStream.Create; + Result := Binary.Create; + FConnection.BeginTransaction; + try + dsMaster := schReport.NewDataset(FConnection, ds_InformeCabecera, ['ID'], [AID]); + dsDetail := schReport.NewDataset(FConnection, ds_InformeDetallesEtiquetas, ['ID_ALBARAN'], [AID], False); + + AStream.Clear; + DABINAdapter.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1); + DABINAdapter.ReadDataset(AStream, tbl_Cabecera, TRUE, '', TRUE, TRUE); + + AStream.Clear; + DABINAdapter.WriteDataset(AStream, dsDetail, [woRows, woSchema], -1); + DABINAdapter.ReadDataset(AStream, tbl_Detalles, TRUE, '', TRUE, TRUE); + + frxReport.LoadFromFile(DarRutaInformes + rptInfEtiquetas, True); + if withRefCliente then + frxReport.Variables.Variables['withRefCliente'] := 1 + else + frxReport.Variables.Variables['withRefCliente'] := 0; + frxReport.PrepareReport(False); + frxReport.PreviewPages.SaveToStream(Result); + finally + AStream.Free; + FConnection.RollbackTransaction; + end; +} +end; + +end. diff --git a/Source/Modulos/Albaranes de cliente/Reports/uRptWordAlbaranCliente.dcu b/Source/Modulos/Albaranes de cliente/Reports/uRptWordAlbaranCliente.dcu new file mode 100644 index 0000000..b2cb1f3 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Reports/uRptWordAlbaranCliente.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Reports/uRptWordAlbaranCliente.dfm b/Source/Modulos/Albaranes de cliente/Reports/uRptWordAlbaranCliente.dfm new file mode 100644 index 0000000..50684db --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Reports/uRptWordAlbaranCliente.dfm @@ -0,0 +1,508 @@ +object RptWordAlbaranCliente: TRptWordAlbaranCliente + OldCreateOrder = False + OnCreate = DataModuleCreate + Height = 262 + Width = 374 + object schReport: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Datasets = < + item + Params = < + item + Name = 'ID' + Value = '14' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'SELECT'#10' V_ALBARANES_CLIENTE.ID, V_ALBARANES_CLIENTE.ID_EMPRESA,' + + #10' V_ALBARANES_CLIENTE.ID_CLIENTE,'#10' V_ALBARANES_CLIENTE.FECHA_A' + + 'LBARAN,'#10' V_ALBARANES_CLIENTE.REFERENCIA,'#10' V_ALBARANES_CLIENTE.' + + 'REFERENCIA_CLIENTE,'#10' V_ALBARANES_CLIENTE.ID_PEDIDO,'#10' V_ALBARAN' + + 'ES_CLIENTE.REF_PEDIDO,'#10' V_ALBARANES_CLIENTE.OBSERVACIONES,'#10' V_' + + 'ALBARANES_CLIENTE.IMPORTE_TOTAL,'#10' CONTACTOS.NIF_CIF, CONTACTOS.' + + 'NOMBRE,'#10' V_ALBARANES_CLIENTE.PERSONA_CONTACTO,'#10' COALESCE(CONTA' + + 'CTOS_DIRECCIONES.CALLE, CONTACTOS.CALLE) AS CALLE,'#10' COALESCE(CO' + + 'NTACTOS_DIRECCIONES.POBLACION, CONTACTOS.POBLACION) AS POBLACION' + + ','#10' COALESCE(CONTACTOS_DIRECCIONES.PROVINCIA, CONTACTOS.PROVINCI' + + 'A) AS PROVINCIA,'#10' COALESCE(CONTACTOS_DIRECCIONES.CODIGO_POSTAL,' + + ' CONTACTOS.CODIGO_POSTAL) AS CODIGO_POSTAL'#10'FROM'#10' V_ALBARANES_CL' + + 'IENTE'#10' INNER JOIN CONTACTOS ON (CONTACTOS.ID = V_ALBARANES_CLIE' + + 'NTE.ID_CLIENTE)'#10' LEFT OUTER JOIN CONTACTOS_DIRECCIONES ON (CONT' + + 'ACTOS_DIRECCIONES.ID = V_ALBARANES_CLIENTE.ID_DIRECCION)'#10'WHERE V' + + '_ALBARANES_CLIENTE.ID = :ID'#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'REFERENCIA_CLIENTE' + TableField = 'REFERENCIA_CLIENTE' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end + item + DatasetField = 'FECHA_ALBARAN' + TableField = 'FECHA_ALBARAN' + end + item + DatasetField = 'ID_PEDIDO' + TableField = 'ID_PEDIDO' + end + item + DatasetField = 'REF_PEDIDO' + TableField = 'REF_PEDIDO' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end> + end> + Name = 'Informe_Cabecera' + Fields = < + item + Name = 'ID' + DataType = datInteger + Required = True + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'FECHA_ALBARAN' + DataType = datDateTime + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + end + item + Name = 'REF_PEDIDO' + DataType = datString + Size = 255 + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + end> + ReadOnly = True + end + item + Params = < + item + Name = 'ID_ALBARAN' + Value = '2' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + SQL = + 'SELECT ALBARANES_CLIENTE_DETALLES.ID, ALBARANES_CLIENTE_DETALLES' + + '.ID_ALBARAN,'#10' ALBARANES_CLIENTE_DETALLES.POSICION, ALBARAN' + + 'ES_CLIENTE_DETALLES.TIPO_DETALLE,'#10' F_RTFTOTEXT(ALBARANES_C' + + 'LIENTE_DETALLES.CONCEPTO) as CONCEPTO, ALBARANES_CLIENTE_DETALLE' + + 'S.CANTIDAD,'#10' ALBARANES_CLIENTE_DETALLES.UNIDAD_MEDIDA,'#10' ' + + ' ALBARANES_CLIENTE_DETALLES.IMPORTE_UNIDAD, ALBARANES_CLIENTE' + + '_DETALLES.IMPORTE_TOTAL,'#10' ARTICULOS.REFERENCIA'#10'FROM ALBARA' + + 'NES_CLIENTE_DETALLES'#10' LEFT JOIN ARTICULOS ON (ALBARANES_CLIE' + + 'NTE_DETALLES.ID_ARTICULO = ARTICULOS.ID)'#10' WHERE {Where}'#10' AND' + + ' (VISIBLE) <> 0'#10' AND (ID_ALBARAN = :ID_ALBARAN)'#10' ORDER BY ID' + + '_ALBARAN, POSICION'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_ALBARAN' + TableField = 'ID_ALBARAN' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + end + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'UNIDAD_MEDIDA' + TableField = 'UNIDAD_MEDIDA' + end + item + DatasetField = 'IMPORTE_UNIDAD' + TableField = 'IMPORTE_UNIDAD' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end> + end> + Name = 'Informe_Detalles' + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_ALBARAN' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 254 + end + item + Name = 'CANTIDAD' + DataType = datFloat + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end> + ReadOnly = True + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 16 + end + object DataDictionary: TDADataDictionary + Fields = <> + Left = 46 + Top = 142 + end + object DABin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 80 + end + object tbl_Cabecera: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + Required = True + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'FECHA_ALBARAN' + DataType = datDateTime + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + end + item + Name = 'REF_PEDIDO' + DataType = datString + Size = 255 + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + end> + Params = < + item + Name = 'ID' + Value = '2' + ParamType = daptInput + end> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer + LogicalName = 'Informe_Cabecera' + IndexDefs = <> + Left = 168 + Top = 16 + end + object tbl_Detalles: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_ALBARAN' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 254 + end + item + Name = 'CANTIDAD' + DataType = datFloat + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end> + Params = < + item + Name = 'ID_ALBARAN' + Value = '2' + ParamType = daptInput + end> + MasterParamsMappings.Strings = ( + 'ID_PRESUPUESTO=ID_PRESUPUESTO') + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer + LogicalName = 'Informe_Detalles' + IndexDefs = <> + Left = 264 + Top = 16 + end + object tbl_Empresa: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = < + item + Name = 'ID' + Value = '31' + ParamType = daptInput + end> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LogicalName = 'Empresa' + IndexDefs = <> + Left = 168 + Top = 80 + end +end diff --git a/Source/Modulos/Albaranes de cliente/Reports/uRptWordAlbaranCliente.pas b/Source/Modulos/Albaranes de cliente/Reports/uRptWordAlbaranCliente.pas new file mode 100644 index 0000000..106cf3d --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Reports/uRptWordAlbaranCliente.pas @@ -0,0 +1,272 @@ +unit uRptWordAlbaranCliente; + +interface + +uses + SysUtils, Classes, AHWord97, IB, IBCustomDataSet, IBDatabase, + Word2000, + uDAInterfaces, uDADataStreamer, uDABin2DataStreamer, uDAClasses, + uDAScriptingProvider, uDADataTable, uDAMemDataTable; + +type + TRptWordAlbaranCliente = class(TDataModule) + DABin2DataStreamer: TDABin2DataStreamer; + tbl_Cabecera: TDAMemDataTable; + tbl_Detalles: TDAMemDataTable; + tbl_Empresa: TDAMemDataTable; + schReport: TDASchema; + DataDictionary: TDADataDictionary; + procedure DataModuleCreate(Sender: TObject); + private + FConnection: IDAConnection; + FWordApp : TWordApp; + FDocumento : TWordDoc; + FPlantilla : string; + FCodigoAlbaran : string; + FNombreFichero : string; + function RellenarInforme : Boolean; + procedure RellenarDatosAlbaran; + procedure RellenarDatosDetalle; + function Generar: Boolean; + procedure _GenerarAlbaran(const AID: String); + public + function Exportar(Codigo, Fichero : String): Boolean; + constructor Create (AOwner : TComponent); override; + destructor Destroy; override; + end; + +implementation + +{ TRptWordAlbaranCliente } + +{$R *.dfm} + +uses + Windows, Variants, Dialogs, uDataModuleServer, uStringsUtils, uSistemaFunc, + srvEmpresas_Impl, uROTypes, uROClasses; + +const + rptInforme = 'AlbaranCliente.rdx'; + +constructor TRptWordAlbaranCliente.Create(AOwner: TComponent); +begin + inherited; + FDocumento := NIL; +end; + +procedure TRptWordAlbaranCliente.DataModuleCreate(Sender: TObject); +begin + schReport.ConnectionManager := dmServer.ConnectionManager; + FConnection := dmServer.DarNuevaConexion; +end; + +destructor TRptWordAlbaranCliente.Destroy; +begin + if FDocumento <> NIL then + FDocumento.Free; + FDocumento := NIL; + + inherited; +end; + +function TRptWordAlbaranCliente.Generar: Boolean; +begin + FWordApp := TWordApp.Create (False, False); + with FWordApp do + begin + Visible := False; + ScreenUpdating := False; + end; + + FDocumento := TWordDoc.CreateOpenDoc (FWordApp, FPlantilla); + FWordApp.SaveActiveDocAs(FNombreFichero); + try + if not RellenarInforme then + RaiseError('Se producido un error al generar el informe en MS Word.'); + + FWordApp.CloseApp(wdSaveChanges); + Result := True; + finally + FDocumento := NIL; + FWordApp := NIL; + end; +end; + +function TRptWordAlbaranCliente.RellenarInforme: Boolean; +begin + RellenarDatosAlbaran; + RellenarDatosDetalle; + Result := True; +end; + +procedure TRptWordAlbaranCliente.RellenarDatosAlbaran; +//var +// FicheroTemporal : String; +// LinkToFile, SaveWithDocument, _Range : OleVariant; +// Imagen : InlineShape; + +begin + + //PARA DIBUJAR EL LOGOTIPO MULTIEMPRESA + {--------------------------- PENDIENTE + if (EmpresaActiva.Logotipo <> Nil) then + begin + //Activamos cabecera + FWordApp.Application.ActiveWindow.ActivePane.View.SeekView := wdSeekCurrentPageHeader; + LinkToFile := False; + SaveWithDocument := True; + _Range := EmptyParam; + FicheroTemporal := DarFicheroTemporal; + EmpresaActiva.Logotipo.SaveToFile (FicheroTemporal); + Imagen := FWordApp.Application.ActiveWindow.ActivePane.Selection.InlineShapes.AddPicture(ficherotemporal, LinkToFile, SaveWithDocument, _Range); + + //Formateamos imagen + if ((Imagen.Get_Width > ANCHO_LOGO_INF)) then + begin + Imagen.Set_Height(((ANCHO_LOGO_INF * Imagen.Get_Height) /Imagen.Get_Width)); + Imagen.Set_Width(ANCHO_LOGO_INF); + end; + end; + ---------------------------- } + + with FDocumento, tbl_Cabecera do + begin + ReplaceBookmark('CodigoAlbaranCab', FieldByName('REFERENCIA').AsString); + ReplaceBookmark('FechaAlbaranCab', FieldByName('FECHA_ALBARAN').AsString); + + ReplaceBookmark('NombreClienteCab', FieldByName('NOMBRE').AsString); + ReplaceBookmark('DireccionClienteCab', FieldByName('CALLE').AsString); + ReplaceBookmark('PoblacionClienteCab', + FieldByName('CODIGO_POSTAL').AsString + ' ' + + FieldByName('POBLACION').AsString + ' ' + FieldByName('PROVINCIA').AsString); + ReplaceBookmark('ContactoClienteCab', FieldByName('PERSONA_CONTACTO').AsString); + +{P571 + ReplaceBookmark('BaseImponible', FieldByName('BASEIMPONIBLE').DisplayText); + if esCadenaVacia(FieldByName('Descuento').DisplayText) + then ReplaceBookmark('Descuento', '0') + else ReplaceBookmark('Descuento', FieldByName('DESCUENTO').DisplayText); + ReplaceBookmark('ImporteDescuento', FieldByName('IMPORTEDESCUENTO').DisplayText); + if esCadenaVacia(FieldByName('IVA').DisplayText) + then ReplaceBookmark('IVA', '0') + else ReplaceBookmark('IVA', FieldByName('IVA').DisplayText); + ReplaceBookmark('ImporteIVA', FieldByName('IMPORTEIVA').DisplayText); + ReplaceBookmark('ImporteTotal', FieldByName('IMPORTETOTAL').DisplayText); +} + + ReplaceBookmark('NombreEmpresa', tbl_Empresa.FieldByName('NOMBRE').AsString); + ReplaceBookmark('CifEmpresa', tbl_Empresa.FieldByName('NIF_CIF').AsString); + ReplaceBookmark('DireccionEmpresa', + Format('%s. %s %s', [tbl_Empresa.FieldByName('CALLE').AsString, + tbl_Empresa.FieldByName('CODIGO_POSTAL').AsString, tbl_Empresa.FieldByName('POBLACION').AsString])); + ReplaceBookmark('TelefonoEmpresa', tbl_Empresa.FieldByName('TELEFONO_1').AsString); + ReplaceBookmark('FaxEmpresa', tbl_Empresa.FieldByName('FAX').AsString); + ReplaceBookmark('CorreoEmpresa', tbl_Empresa.FieldByName('EMAIL_1').AsString); + end; +end; + +procedure TRptWordAlbaranCliente.RellenarDatosDetalle; +var + numRows, numCols, mergesplit : OleVariant; + MaxCols, iRowCount : Integer; + ACantidad: String; + AIndice: Integer; + AText : String; +begin + iRowCount := 2; + numrows := 2; + numcols := 1; + mergeSplit := False; + MaxCols := 24; + + with FDocumento.Document.Tables.Item(1), tbl_Detalles do + begin + First; + while not EOF do + begin + Rows.Item (iRowCount).Cells.Split (numRows, numCols, mergesplit); + Cell(iRowCount, 1).Range.Text := FieldByName('REFERENCIA').AsString; + Cell(iRowCount, 2).Range.Text := FieldByName('CONCEPTO').AsString; + + ACantidad := FloatToStr(FieldByName('CANTIDAD').AsFloat); + if ACantidad = '0' then + AText := '' + else begin + AIndice := Pos(',', ACantidad); + if AIndice > 0 then + AText := FormatFloat('#,0.00', FieldByName('CANTIDAD').AsFloat) + else + AText := FormatFloat('#,0.##', FieldByName('CANTIDAD').AsFloat); + end; + + Cell(iRowCount, 3).Range.Text := AText + ' ' + FieldByName('UNIDAD_MEDIDA').AsString; + + + if (FieldByName('IMPORTE_UNIDAD').AsFloat = 0) then + Cell(iRowCount, 4).Range.Text := '' + else + Cell(iRowCount, 4).Range.Text := FormatFloat(DISPLAY_EUROS2, FieldByName('IMPORTE_UNIDAD').AsFloat); + + if (FieldByName('IMPORTE_TOTAL').AsFloat = 0) then + Cell(iRowCount, 5).Range.Text := '' + else + Cell(iRowCount, 5).Range.Text := FormatFloat(DISPLAY_EUROS2, FieldByName('IMPORTE_TOTAL').AsFloat); + Next; + Inc (iRowCount); + end; + Rows.Item(iRowCount).Delete; + {while iRowCount <= MaxCols do + begin + Rows.Item (iRowCount).Cells.Split (numRows, numCols, mergesplit); + inc (iRowCount); + end;} + end; +end; + + +function TRptWordAlbaranCliente.Exportar(Codigo, + Fichero: String): Boolean; +begin + if EsCadenaVacia(Fichero) then + begin + Result := False; + raise Exception.Create('Falta indicar el fichero donde se exportar el listado.'); + end; + + FNombreFichero := Fichero; + FCodigoAlbaran := Codigo; + _GenerarAlbaran(Codigo); + Result := True; +end; + +procedure TRptWordAlbaranCliente._GenerarAlbaran(const AID: String); +var + ACopiaPlantilla : String; +begin + FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + try + tbl_Cabecera.ParamByName('ID').AsString := AID; + tbl_Detalles.ParamByName('ID_ALBARAN').AsString := AID; + + tbl_Cabecera.Active := True; + tbl_Detalles.Active := True; + + FPlantilla := DarRutaInformes + tbl_Cabecera.FieldByName('ID_EMPRESA').AsString + '\' + rptInforme; + FCodigoAlbaran := AID; + + ACopiaPlantilla := DarFicheroTemporal; + CopiarFichero(FPlantilla, ACopiaPlantilla); + FPlantilla := ACopiaPlantilla; + try + if RecuperarEmpresa(tbl_Cabecera.FieldByName('ID_EMPRESA').AsInteger, tbl_Empresa) then + Generar; + finally + SysUtils.DeleteFile(ACopiaPlantilla); + end; + finally + FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + end; +end; + + +end. diff --git a/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.dcu b/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.dcu new file mode 100644 index 0000000..3943f78 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.dfm b/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.dfm new file mode 100644 index 0000000..d43c086 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.dfm @@ -0,0 +1,1574 @@ +object srvAlbaranesCliente: TsrvAlbaranesCliente + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + ConnectionName = 'IBX' + ServiceSchema = schAlbaranesCliente + ServiceDataStreamer = Bin2DataStreamer + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + Height = 209 + Width = 347 + object schAlbaranesCliente: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DADataDictionary + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + Name = 'IBX' + SQL = + 'select ANO from'#10'(select distinct(substr(FECHA_ALBARAN, 1,4)) as ' + + 'ANO'#10'from albaranes_cliente'#10'order by 1 desc)'#10#10'UNION ALL'#10#10'select d' + + 'istinct '#39'Todos'#39' as ANO'#10'from empresas'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ANO' + TableField = 'ANO' + end> + end> + Name = 'ListaAnosAlbaranes' + Fields = < + item + Name = 'ANO' + DataType = datString + Size = 254 + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'V_ALBARANES_CLIENTE' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'FECHA_ALBARAN' + TableField = 'FECHA_ALBARAN' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'REFERENCIA_CLIENTE' + TableField = 'REFERENCIA_CLIENTE' + end + item + DatasetField = 'TIPO' + TableField = 'TIPO' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'ID_ALMACEN' + TableField = 'ID_ALMACEN' + end + item + DatasetField = 'NOMBRE_ALMACEN' + TableField = 'NOMBRE_ALMACEN' + end + item + DatasetField = 'ID_PEDIDO' + TableField = 'ID_PEDIDO' + end + item + DatasetField = 'REF_PEDIDO' + TableField = 'REF_PEDIDO' + end + item + DatasetField = 'ID_FACTURA' + TableField = 'ID_FACTURA' + end + item + DatasetField = 'REF_FACTURA' + TableField = 'REF_FACTURA' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end + item + DatasetField = 'TELEFONO' + TableField = 'TELEFONO' + end + item + DatasetField = 'IMPORTE_NETO' + TableField = 'IMPORTE_NETO' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IMPORTE_DESCUENTO' + TableField = 'IMPORTE_DESCUENTO' + end + item + DatasetField = 'BASE_IMPONIBLE' + TableField = 'BASE_IMPONIBLE' + end + item + DatasetField = 'IVA' + TableField = 'IVA' + end + item + DatasetField = 'IMPORTE_IVA' + TableField = 'IMPORTE_IVA' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'INCIDENCIAS' + TableField = 'INCIDENCIAS' + end + item + DatasetField = 'INCIDENCIAS_ACTIVAS' + TableField = 'INCIDENCIAS_ACTIVAS' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end + item + DatasetField = 'ID_FORMA_PAGO' + TableField = 'ID_FORMA_PAGO' + end + item + DatasetField = 'FECHA_PREVISTA_ENVIO' + TableField = 'FECHA_PREVISTA_ENVIO' + end + item + DatasetField = 'FECHA_ENVIO' + TableField = 'FECHA_ENVIO' + end + item + DatasetField = 'FECHA_RECEPCION' + TableField = 'FECHA_RECEPCION' + end + item + DatasetField = 'ID_DIRECCION' + TableField = 'ID_DIRECCION' + end> + end> + Name = 'AlbaranesCliente' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALBARANES_CLI_ID' + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesCliente_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_ID_EMPRESA' + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_ID_CLIENTE' + end + item + Name = 'ID_DIRECCION' + DataType = datInteger + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesCliente_NOMBRE' + end + item + Name = 'FECHA_ALBARAN' + DataType = datDateTime + DictionaryEntry = 'AlbaranesCliente_FECHA_ALBARAN' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesCliente_REFERENCIA' + end + item + Name = 'REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesCliente_REFERENCIA_CLIENTE' + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + DictionaryEntry = 'AlbaranesCliente_TIPO' + end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesCliente_SITUACION' + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_ID_ALMACEN' + end + item + Name = 'NOMBRE_ALMACEN' + DataType = datString + Size = 255 + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesCliente_NOMBRE_ALMACEN' + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_ID_PEDIDO' + end + item + Name = 'REF_PEDIDO' + DataType = datString + Size = 255 + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesCliente_REF_PEDIDO' + end + item + Name = 'ID_FACTURA' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_ID_FACTURA' + end + item + Name = 'REF_FACTURA' + DataType = datString + Size = 255 + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesCliente_REF_FACTURA' + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesCliente_CALLE' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DictionaryEntry = 'AlbaranesCliente_CODIGO_POSTAL' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesCliente_POBLACION' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesCliente_PROVINCIA' + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesCliente_PERSONA_CONTACTO' + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + DictionaryEntry = 'AlbaranesCliente_TELEFONO' + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + DictionaryEntry = 'AlbaranesCliente_IMPORTE_NETO' + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + DictionaryEntry = 'AlbaranesCliente_IMPORTE_PORTE' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DictionaryEntry = 'AlbaranesCliente_DESCUENTO' + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + DictionaryEntry = 'AlbaranesCliente_IMPORTE_DESCUENTO' + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + DictionaryEntry = 'AlbaranesCliente_BASE_IMPONIBLE' + end + item + Name = 'IVA' + DataType = datFloat + DictionaryEntry = 'AlbaranesCliente_IVA' + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + DictionaryEntry = 'AlbaranesCliente_IMPORTE_IVA' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DictionaryEntry = 'AlbaranesCliente_IMPORTE_TOTAL' + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + DictionaryEntry = 'AlbaranesCliente_OBSERVACIONES' + end + item + Name = 'INCIDENCIAS' + DataType = datMemo + DictionaryEntry = 'AlbaranesCliente_INCIDENCIAS' + end + item + Name = 'INCIDENCIAS_ACTIVAS' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_INCIDENCIAS_ACTIVAS' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'AlbaranesCliente_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'AlbaranesCliente_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'AlbaranesCliente_USUARIO' + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_ID_FORMA_PAGO' + end + item + Name = 'FECHA_PREVISTA_ENVIO' + DataType = datDateTime + DictionaryEntry = 'AlbaranesCliente_FECHA_PREVISTA_ENVIO' + end + item + Name = 'FECHA_ENVIO' + DataType = datDateTime + DictionaryEntry = 'AlbaranesCliente_FECHA_ENVIO' + end + item + Name = 'FECHA_RECEPCION' + DataType = datDateTime + DictionaryEntry = 'AlbaranesCliente_FECHA_RECEPCION' + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + SQL = + 'SELECT'#10' ALBARANES_CLIENTE_DETALLES.ID, ALBARANES_CLIENTE_DETA' + + 'LLES.ID_ALBARAN,'#10' ALBARANES_CLIENTE_DETALLES.POSICION, ALBARA' + + 'NES_CLIENTE_DETALLES.TIPO_DETALLE,'#10' ALBARANES_CLIENTE_DETALLE' + + 'S.CONCEPTO, ALBARANES_CLIENTE_DETALLES.CANTIDAD,'#10' ALBARANES_C' + + 'LIENTE_DETALLES.UNIDAD_MEDIDA, ALBARANES_CLIENTE_DETALLES.IMPORT' + + 'E_UNIDAD,'#10' ALBARANES_CLIENTE_DETALLES.DESCUENTO, ALBARANES_CL' + + 'IENTE_DETALLES.IMPORTE_PORTE,'#10' ALBARANES_CLIENTE_DETALLES.IMP' + + 'ORTE_TOTAL,'#10' ALBARANES_CLIENTE_DETALLES.VISIBLE,'#10' ALBARANE' + + 'S_CLIENTE_DETALLES.ID_ARTICULO, ARTICULOS.REFERENCIA,'#10' '#39#39' as ' + + 'REFERENCIA_PROVEEDOR, /*Es necesario para que no pete detalles p' + + 'orque tanto en la rama de cliente como de proveedor es comun*/'#10' ' + + ' ALBARANES_CLIENTE_DETALLES.ID_PEDIDO'#10#10#10'FROM ALBARANES_CLIENTE' + + '_DETALLES'#10'LEFT JOIN ARTICULOS ON ALBARANES_CLIENTE_DETALLES.ID_A' + + 'RTICULO = ARTICULOS.ID'#10'where {where}'#10'ORDER BY POSICION;'#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_ALBARAN' + TableField = 'ID_ALBARAN' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + end + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'IMPORTE_UNIDAD' + TableField = 'IMPORTE_UNIDAD' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'VISIBLE' + TableField = 'VISIBLE' + end + item + DatasetField = 'ID_ARTICULO' + TableField = 'ID_ARTICULO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = 'REFERENCIA_PROVEEDOR' + end + item + DatasetField = 'ID_PEDIDO' + TableField = 'ID_PEDIDO' + end + item + DatasetField = 'UNIDAD_MEDIDA' + TableField = 'UNIDAD_MEDIDA' + end> + end> + Name = 'AlbaranesCliente_Detalles' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALBARANES_CLI_DETALLES_ID' + DictionaryEntry = 'AlbaranesCliente_Detalles_ID' + InPrimaryKey = True + end + item + Name = 'ID_ALBARAN' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_Detalles_ID_ALBARAN' + end + item + Name = 'POSICION' + DataType = datInteger + DictionaryEntry = 'POSICIONCONCEPTO' + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + DictionaryEntry = 'AlbaranesCliente_Detalles_TIPO_DETALLE' + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + DictionaryEntry = 'AlbaranesCliente_Detalles_CONCEPTO' + end + item + Name = 'CANTIDAD' + DataType = datFloat + DictionaryEntry = 'CANTIDAD' + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + DictionaryEntry = 'AlbaranesCliente_Detalles_IMPORTE_UNIDAD' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DictionaryEntry = 'AlbaranesCliente_Detalles_DESCUENTO' + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + DictionaryEntry = 'AlbaranesCliente_Detalles_IMPORTE_PORTE' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DictionaryEntry = 'AlbaranesCliente_Detalles_IMPORTE_TOTAL' + end + item + Name = 'VISIBLE' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_Detalles_VISIBLE' + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_Detalles_ID_ARTICULO' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesCliente_Detalles_REFERENCIA_PROVEEDOR' + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALBARANES_CLI_ID' + Value = '' + end + item + Name = 'ID_EMPRESA' + Value = '' + end + item + Name = 'ID_CLIENTE' + Value = '' + end + item + Name = 'FECHA_ALBARAN' + Value = '' + end + item + Name = 'TIPO' + Value = '' + end + item + Name = 'REFERENCIA' + Value = '' + end + item + Name = 'REFERENCIA_CLIENTE' + Value = '' + end + item + Name = 'ID_ALMACEN' + Value = '' + end + item + Name = 'ID_PEDIDO' + Value = '' + end + item + Name = 'ID_FACTURA' + Value = '' + end + item + Name = 'ID_DIRECCION' + Value = '' + end + item + Name = 'CALLE' + Value = '' + end + item + Name = 'CODIGO_POSTAL' + Value = '' + end + item + Name = 'POBLACION' + Value = '' + end + item + Name = 'PROVINCIA' + Value = '' + end + item + Name = 'PERSONA_CONTACTO' + Value = '' + end + item + Name = 'TELEFONO' + Value = '' + end + item + Name = 'IMPORTE_NETO' + Value = '' + end + item + Name = 'IMPORTE_PORTE' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'IMPORTE_DESCUENTO' + Value = '' + end + item + Name = 'BASE_IMPONIBLE' + Value = '' + end + item + Name = 'IVA' + Value = '' + end + item + Name = 'IMPORTE_IVA' + Value = '' + end + item + Name = 'IMPORTE_TOTAL' + Value = '' + end + item + Name = 'OBSERVACIONES' + Value = '' + end + item + Name = 'INCIDENCIAS' + Value = '' + end + item + Name = 'INCIDENCIAS_ACTIVAS' + Value = '' + end + item + Name = 'FECHA_ALTA' + Value = '' + end + item + Name = 'FECHA_MODIFICACION' + Value = '' + end + item + Name = 'USUARIO' + Value = '' + end + item + Name = 'ID_FORMA_PAGO' + Value = '' + end + item + Name = 'FECHA_PREVISTA_ENVIO' + Value = '' + end + item + Name = 'FECHA_ENVIO' + Value = '' + end + item + Name = 'FECHA_RECEPCION' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'ALBARANES_CLIENTE' + SQL = + 'INSERT'#10' INTO ALBARANES_CLIENTE'#10' (ID, ID_EMPRESA, ID_CLIENTE,' + + ' FECHA_ALBARAN, TIPO, REFERENCIA,'#10' REFERENCIA_CLIENTE, ID_AL' + + 'MACEN, ID_PEDIDO, ID_FACTURA, ID_DIRECCION,'#10' CALLE, CODIGO_P' + + 'OSTAL, POBLACION, PROVINCIA, PERSONA_CONTACTO,'#10' TELEFONO, IM' + + 'PORTE_NETO, IMPORTE_PORTE, DESCUENTO, IMPORTE_DESCUENTO, '#10' B' + + 'ASE_IMPONIBLE, IVA, IMPORTE_IVA, IMPORTE_TOTAL, OBSERVACIONES, '#10 + + ' INCIDENCIAS, INCIDENCIAS_ACTIVAS, FECHA_ALTA, FECHA_MODIFIC' + + 'ACION, '#10' USUARIO, ID_FORMA_PAGO, FECHA_PREVISTA_ENVIO, FECHA' + + '_ENVIO, '#10' FECHA_RECEPCION)'#10' VALUES'#10' (:ID, :ID_EMPRESA, :' + + 'ID_CLIENTE, :FECHA_ALBARAN, :TIPO, :REFERENCIA,'#10' :REFERENCIA' + + '_CLIENTE, :ID_ALMACEN, :ID_PEDIDO, :ID_FACTURA, :ID_DIRECCION,'#10' ' + + ' :CALLE, :CODIGO_POSTAL, :POBLACION, :PROVINCIA, :PERSONA_CON' + + 'TACTO,'#10' :TELEFONO, :IMPORTE_NETO, :IMPORTE_PORTE, :DESCUENTO' + + ', :IMPORTE_DESCUENTO,'#10' :BASE_IMPONIBLE, :IVA, :IMPORTE_IVA, ' + + ':IMPORTE_TOTAL, :OBSERVACIONES,'#10' :INCIDENCIAS, :INCIDENCIAS_' + + 'ACTIVAS, :FECHA_ALTA, :FECHA_MODIFICACION,'#10' :USUARIO, :ID_FO' + + 'RMA_PAGO, :FECHA_PREVISTA_ENVIO, :FECHA_ENVIO, :FECHA_RECEPCION)' + + #10' '#10' '#10#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_AlbaranesCliente' + end + item + Params = < + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'ALBARANES_CLIENTE' + SQL = 'DELETE '#10' FROM'#10' ALBARANES_CLIENTE'#10' WHERE'#10' (ID = :OLD_ID)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_AlbaranesCliente' + end + item + Params = < + item + Name = 'ID_EMPRESA' + Value = '' + end + item + Name = 'ID_CLIENTE' + Value = '' + end + item + Name = 'FECHA_ALBARAN' + Value = '' + end + item + Name = 'TIPO' + Value = '' + end + item + Name = 'REFERENCIA' + Value = '' + end + item + Name = 'REFERENCIA_CLIENTE' + Value = '' + end + item + Name = 'ID_ALMACEN' + Value = '' + end + item + Name = 'ID_PEDIDO' + Value = '' + end + item + Name = 'ID_FACTURA' + Value = '' + end + item + Name = 'ID_DIRECCION' + Value = '' + end + item + Name = 'CALLE' + Value = '' + end + item + Name = 'CODIGO_POSTAL' + Value = '' + end + item + Name = 'POBLACION' + Value = '' + end + item + Name = 'PROVINCIA' + Value = '' + end + item + Name = 'PERSONA_CONTACTO' + Value = '' + end + item + Name = 'TELEFONO' + Value = '' + end + item + Name = 'IMPORTE_NETO' + Value = '' + end + item + Name = 'IMPORTE_PORTE' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'IMPORTE_DESCUENTO' + Value = '' + end + item + Name = 'BASE_IMPONIBLE' + Value = '' + end + item + Name = 'IVA' + Value = '' + end + item + Name = 'IMPORTE_IVA' + Value = '' + end + item + Name = 'IMPORTE_TOTAL' + Value = '' + end + item + Name = 'OBSERVACIONES' + Value = '' + end + item + Name = 'INCIDENCIAS' + Value = '' + end + item + Name = 'INCIDENCIAS_ACTIVAS' + Value = '' + end + item + Name = 'FECHA_ALTA' + Value = '' + end + item + Name = 'FECHA_MODIFICACION' + Value = '' + end + item + Name = 'USUARIO' + Value = '' + end + item + Name = 'ID_FORMA_PAGO' + Value = '' + end + item + Name = 'FECHA_PREVISTA_ENVIO' + Value = '' + end + item + Name = 'FECHA_ENVIO' + Value = '' + end + item + Name = 'FECHA_RECEPCION' + Value = '' + end + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'ALBARANES_CLIENTE' + SQL = + 'UPDATE ALBARANES_CLIENTE'#10' SET '#10' ID_EMPRESA = :ID_EMPRESA,'#10' ' + + ' ID_CLIENTE = :ID_CLIENTE, '#10' FECHA_ALBARAN = :FECHA_ALBARAN,' + + #10' TIPO = :TIPO,'#10' REFERENCIA = :REFERENCIA, '#10' REFERENCIA' + + '_CLIENTE = :REFERENCIA_CLIENTE, '#10' ID_ALMACEN = :ID_ALMACEN,'#10' ' + + ' ID_PEDIDO = :ID_PEDIDO,'#10' ID_FACTURA = :ID_FACTURA,'#10' ID_' + + 'DIRECCION = :ID_DIRECCION,'#10' CALLE = :CALLE,'#10' CODIGO_POSTAL' + + ' = :CODIGO_POSTAL, '#10' POBLACION = :POBLACION, '#10' PROVINCIA =' + + ' :PROVINCIA, '#10' PERSONA_CONTACTO = :PERSONA_CONTACTO, '#10' TEL' + + 'EFONO = :TELEFONO, '#10' IMPORTE_NETO = :IMPORTE_NETO, '#10' IMPOR' + + 'TE_PORTE = :IMPORTE_PORTE, '#10' DESCUENTO = :DESCUENTO, '#10' IMP' + + 'ORTE_DESCUENTO = :IMPORTE_DESCUENTO, '#10' BASE_IMPONIBLE = :BASE' + + '_IMPONIBLE, '#10' IVA = :IVA, '#10' IMPORTE_IVA = :IMPORTE_IVA, '#10' ' + + ' IMPORTE_TOTAL = :IMPORTE_TOTAL, '#10' OBSERVACIONES = :OBSERVA' + + 'CIONES, '#10' INCIDENCIAS = :INCIDENCIAS, '#10' INCIDENCIAS_ACTIVA' + + 'S = :INCIDENCIAS_ACTIVAS, '#10' FECHA_ALTA = :FECHA_ALTA, '#10' FE' + + 'CHA_MODIFICACION = :FECHA_MODIFICACION, '#10' USUARIO = :USUARIO,' + + ' '#10' ID_FORMA_PAGO = :ID_FORMA_PAGO, '#10' FECHA_PREVISTA_ENVIO ' + + '= :FECHA_PREVISTA_ENVIO, '#10' FECHA_ENVIO = :FECHA_ENVIO, '#10' F' + + 'ECHA_RECEPCION = :FECHA_RECEPCION'#10' WHERE'#10' (ID = :OLD_ID)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_AlbaranesCliente' + end + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALBARANES_CLI_DETALLES_ID' + Value = '' + end + item + Name = 'ID_ALBARAN' + Value = '' + end + item + Name = 'POSICION' + Value = '' + end + item + Name = 'TIPO_DETALLE' + Value = '' + end + item + Name = 'CONCEPTO' + Value = '' + end + item + Name = 'CANTIDAD' + Value = '' + end + item + Name = 'UNIDAD_MEDIDA' + Value = '' + end + item + Name = 'IMPORTE_UNIDAD' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'IMPORTE_PORTE' + Value = '' + end + item + Name = 'IMPORTE_TOTAL' + Value = '' + end + item + Name = 'VISIBLE' + Value = '' + end + item + Name = 'ID_ARTICULO' + Value = '' + end + item + Name = 'ID_PEDIDO' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'ALBARANES_CLIENTE_DETALLES' + SQL = + 'INSERT'#10' INTO ALBARANES_CLIENTE_DETALLES'#10' (ID, ID_ALBARAN, PO' + + 'SICION, TIPO_DETALLE, CONCEPTO, CANTIDAD, UNIDAD_MEDIDA,'#10' IM' + + 'PORTE_UNIDAD, DESCUENTO, IMPORTE_PORTE, IMPORTE_TOTAL, '#10' VIS' + + 'IBLE, ID_ARTICULO, ID_PEDIDO)'#10' VALUES'#10' (:ID, :ID_ALBARAN, :P' + + 'OSICION, :TIPO_DETALLE, :CONCEPTO, :CANTIDAD, :UNIDAD_MEDIDA,'#10' ' + + ' :IMPORTE_UNIDAD, :DESCUENTO, :IMPORTE_PORTE, :IMPORTE_TOTAL, ' + + #10' :VISIBLE, :ID_ARTICULO, :ID_PEDIDO)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_AlbaranesCliente_Detalles' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datAutoInc + Value = '0' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'ALBARANES_CLIENTE_DETALLES' + SQL = + 'DELETE '#10' FROM'#10' ALBARANES_CLIENTE_DETALLES'#10' WHERE'#10' (ID = ' + + ':OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_AlbaranesCliente_Detalles' + end + item + Params = < + item + Name = 'ID' + Value = '' + end + item + Name = 'ID_ALBARAN' + Value = '' + end + item + Name = 'POSICION' + Value = '' + end + item + Name = 'TIPO_DETALLE' + Value = '' + end + item + Name = 'CONCEPTO' + Value = '' + end + item + Name = 'CANTIDAD' + Value = '' + end + item + Name = 'UNIDAD_MEDIDA' + Value = '' + end + item + Name = 'IMPORTE_UNIDAD' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'IMPORTE_PORTE' + Value = '' + end + item + Name = 'IMPORTE_TOTAL' + Value = '' + end + item + Name = 'VISIBLE' + Value = '' + end + item + Name = 'ID_ARTICULO' + Value = '' + end + item + Name = 'ID_PEDIDO' + Value = '' + end + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'ALBARANES_CLIENTE_DETALLES' + SQL = + 'UPDATE ALBARANES_CLIENTE_DETALLES'#10' SET '#10' ID = :ID,'#10' ID_AL' + + 'BARAN = :ID_ALBARAN, '#10' POSICION = :POSICION, '#10' TIPO_DETALL' + + 'E = :TIPO_DETALLE, '#10' CONCEPTO = :CONCEPTO, '#10' CANTIDAD = :C' + + 'ANTIDAD, '#10' UNIDAD_MEDIDA = :UNIDAD_MEDIDA,'#10' IMPORTE_UNIDAD' + + ' = :IMPORTE_UNIDAD, '#10' DESCUENTO = :DESCUENTO, '#10' IMPORTE_PO' + + 'RTE = :IMPORTE_PORTE, '#10' IMPORTE_TOTAL = :IMPORTE_TOTAL, '#10' ' + + 'VISIBLE = :VISIBLE, '#10' ID_ARTICULO = :ID_ARTICULO,'#10' ID_PEDI' + + 'DO = :ID_PEDIDO'#10' WHERE'#10' (ID = :OLD_ID)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_AlbaranesCliente_Detalles' + end> + RelationShips = < + item + Name = 'FK_AlbaranesCliente_Detalles' + MasterDatasetName = 'AlbaranesCliente' + MasterFields = 'ID' + DetailDatasetName = 'AlbaranesCliente_Detalles' + DetailFields = 'ID_ALBARAN' + RelationshipType = rtForeignKey + end> + UpdateRules = < + item + Name = 'Insert AlbaranesCliente' + DoUpdate = False + DoDelete = False + DatasetName = 'AlbaranesCliente' + FailureBehavior = fbRaiseException + end + item + Name = 'Insert AlbaranesCliente_Detalles' + DoUpdate = False + DoDelete = False + DatasetName = 'AlbaranesCliente_Detalles' + FailureBehavior = fbRaiseException + end + item + Name = 'Update AlbaranesCliente' + DoInsert = False + DoDelete = False + DatasetName = 'AlbaranesCliente' + FailureBehavior = fbRaiseException + end + item + Name = 'Update AlbaranesCliente_Detalles' + DoInsert = False + DoDelete = False + DatasetName = 'AlbaranesCliente_Detalles' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete AlbaranesCliente_Detalles' + DoUpdate = False + DoInsert = False + DatasetName = 'AlbaranesCliente_Detalles' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete AlbaranesCliente' + DoUpdate = False + DoInsert = False + DatasetName = 'AlbaranesCliente' + FailureBehavior = fbRaiseException + end> + Version = 0 + Left = 56 + Top = 24 + end + object bpAlbaranesCliente: TDABusinessProcessor + Schema = schAlbaranesCliente + InsertCommandName = 'Insert_AlbaranesCliente' + DeleteCommandName = 'Delete_AlbaranesCliente' + UpdateCommandName = 'Update_AlbaranesCliente' + ReferencedDataset = 'AlbaranesCliente' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 224 + Top = 24 + end + object bpAlbaranesCliente_Detalles: TDABusinessProcessor + Schema = schAlbaranesCliente + InsertCommandName = 'Insert_AlbaranesCliente_Detalles' + DeleteCommandName = 'Delete_AlbaranesCliente_Detalles' + UpdateCommandName = 'Update_AlbaranesCliente_Detalles' + ReferencedDataset = 'AlbaranesCliente_Detalles' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 224 + Top = 88 + end + object DADataDictionary: TDADataDictionary + Fields = < + item + Name = 'AlbaranesCliente_ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALBARANES_CLI_ID' + Required = True + DisplayLabel = 'ID' + ServerAutoRefresh = True + end + item + Name = 'AlbaranesCliente_ID_EMPRESA' + DataType = datInteger + DisplayLabel = 'ID_EMPRESA' + end + item + Name = 'AlbaranesCliente_ID_CLIENTE' + DataType = datInteger + DisplayLabel = 'ID_CLIENTE' + end + item + Name = 'AlbaranesCliente_NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Nombre del cliente' + end + item + Name = 'AlbaranesCliente_SITUACION' + DataType = datString + Size = 255 + DisplayLabel = 'Situaci'#243'n' + end + item + Name = 'AlbaranesCliente_CALLE' + DataType = datString + Size = 255 + DisplayLabel = 'Calle' + end + item + Name = 'AlbaranesCliente_CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#243'd. postal' + end + item + Name = 'AlbaranesCliente_POBLACION' + DataType = datString + Size = 255 + DisplayLabel = 'Poblaci'#243'n' + end + item + Name = 'AlbaranesCliente_PROVINCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Provincia' + end + item + Name = 'AlbaranesCliente_PERSONA_CONTACTO' + DataType = datString + Size = 255 + DisplayLabel = 'Persona de contacto' + end + item + Name = 'AlbaranesCliente_TELEFONO' + DataType = datString + Size = 25 + DisplayLabel = 'Tel'#233'fono' + end + item + Name = 'AlbaranesCliente_OBSERVACIONES' + DataType = datMemo + DisplayLabel = 'Observaciones' + end + item + Name = 'AlbaranesCliente_INCIDENCIAS' + DataType = datMemo + DisplayLabel = 'INCIDENCIAS' + end + item + Name = 'AlbaranesCliente_INCIDENCIAS_ACTIVAS' + DataType = datInteger + DisplayLabel = 'INCIDENCIAS_ACTIVAS' + end + item + Name = 'AlbaranesCliente_FECHA_ALTA' + DataType = datDateTime + DisplayLabel = 'FECHA_ALTA' + end + item + Name = 'AlbaranesCliente_FECHA_MODIFICACION' + DataType = datDateTime + DisplayLabel = 'FECHA_MODIFICACION' + end + item + Name = 'AlbaranesCliente_USUARIO' + DataType = datString + Size = 20 + DisplayLabel = 'USUARIO' + end + item + Name = 'AlbaranesCliente_IMPORTE_NETO' + DataType = datCurrency + DisplayLabel = 'Importe neto' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_IMPORTE_PORTE' + DataType = datCurrency + DisplayLabel = 'Importe del porte' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_DESCUENTO' + DataType = datFloat + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_IMPORTE_DESCUENTO' + DataType = datCurrency + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_BASE_IMPONIBLE' + DataType = datCurrency + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_IVA' + DataType = datFloat + DisplayLabel = 'IVA' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_IMPORTE_IVA' + DataType = datCurrency + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_ID_FORMA_PAGO' + DataType = datInteger + DisplayLabel = 'ID_FORMA_PAGO' + end + item + Name = 'AlbaranesCliente_Detalles_ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALBARANES_CLI_DETALLES_ID' + Required = True + DisplayLabel = 'ID' + ServerAutoRefresh = True + end + item + Name = 'AlbaranesCliente_Detalles_ID_PEDIDO' + DataType = datInteger + DisplayLabel = 'ID_PEDIDO' + end + item + Name = 'POSICIONCONCEPTO' + DataType = datInteger + DisplayLabel = 'POSICION' + end + item + Name = 'AlbaranesCliente_Detalles_TIPO_DETALLE' + DataType = datString + Size = 25 + DisplayLabel = 'TIPO_DETALLE' + end + item + Name = 'AlbaranesCliente_Detalles_REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + end + item + Name = 'AlbaranesCliente_Detalles_ID_ARTICULO' + DataType = datInteger + DisplayLabel = 'ID_ARTICULO' + end + item + Name = 'AlbaranesCliente_Detalles_CONCEPTO' + DataType = datString + Size = 2000 + DisplayLabel = 'CONCEPTO' + end + item + Name = 'CANTIDAD' + DataType = datFloat + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_Detalles_IMPORTE_UNIDAD' + DataType = datCurrency + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_Detalles_IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_Detalles_DESCUENTO' + DataType = datFloat + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_Detalles_IMPORTE_PORTE' + DataType = datCurrency + DisplayLabel = 'Importe porte' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_Detalles_VISIBLE' + DataType = datInteger + DisplayLabel = 'VISIBLE' + end + item + Name = 'AlbaranesCliente_Detalles_REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. proveedor' + end + item + Name = 'AlbaranesCliente_FECHA_ALBARAN' + DataType = datDateTime + DisplayLabel = 'Fecha albar'#225'n' + end + item + Name = 'AlbaranesCliente_ID_PEDIDO' + DataType = datInteger + DisplayLabel = 'ID_PEDIDO' + end + item + Name = 'AlbaranesCliente_ID_FACTURA' + DataType = datInteger + DisplayLabel = 'ID_FACTURA' + end + item + Name = 'AlbaranesCliente_Detalles_ID_ALBARAN' + DataType = datInteger + DisplayLabel = 'ID_ALBARAN' + end + item + Name = 'AlbaranesCliente_Detalles_Refresh_ID_ALBARAN' + DataType = datInteger + DisplayLabel = 'ID_ALBARAN' + end + item + Name = 'AlbaranesCliente_Detalles_Refresh_DESCUENTO' + DataType = datFloat + DisplayLabel = 'DESCUENTO' + end + item + Name = 'AlbaranesCliente_Detalles_Refresh_IMPORTE_PORTE' + DataType = datFloat + DisplayLabel = 'IMPORTE_PORTE' + end + item + Name = 'AlbaranesCliente_Detalles_Refresh_REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'REFERENCIA_PROVEEDOR' + end + item + Name = 'AlbaranesCliente_ID_ALMACEN' + DataType = datInteger + DisplayLabel = 'ID_ALMACEN' + end + item + Name = 'AlbaranesCliente_FECHA_ENVIO' + DataType = datDateTime + DisplayLabel = 'Fecha de env'#237'o' + end + item + Name = 'AlbaranesCliente_FECHA_RECEPCION' + DataType = datDateTime + DisplayLabel = 'Fecha de recepci'#243'n' + end + item + Name = 'AlbaranesCliente_REF_PEDIDO' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. pedido cliente' + end + item + Name = 'AlbaranesCliente_REF_FACTURA' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. factura cliente' + end + item + Name = 'AlbaranesCliente_REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + ServerAutoRefresh = True + end + item + Name = 'AlbaranesCliente_FECHA_PREVISTA_ENVIO' + DataType = datDateTime + DisplayLabel = 'Fecha prevista de envio' + end + item + Name = 'AlbaranesCliente_NOMBRE_ALMACEN' + DataType = datString + Size = 255 + DisplayLabel = 'Almac'#233'n' + end + item + Name = 'AlbaranesCliente_TIPO' + DataType = datString + Size = 1 + DisplayLabel = 'Tipo' + end + item + Name = 'AlbaranesCliente_REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + end> + Left = 56 + Top = 144 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 56 + Top = 80 + end +end diff --git a/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.pas b/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.pas new file mode 100644 index 0000000..56044c1 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.pas @@ -0,0 +1,146 @@ +unit srvAlbaranesCliente_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Windows, Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} uDABusinessProcessor, uDABin2DataStreamer, uDADataStreamer, + uDAScriptingProvider, uDAClasses, + FactuGES_Intf, uDAInterfaces; + + +type + { TsrvAlbaranesCliente } + TsrvAlbaranesCliente = class(TDataAbstractService, IsrvAlbaranesCliente) + bpAlbaranesCliente: TDABusinessProcessor; + bpAlbaranesCliente_Detalles: TDABusinessProcessor; + Bin2DataStreamer: TDABin2DataStreamer; + schAlbaranesCliente: TDASchema; + DADataDictionary: TDADataDictionary; + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; var aConnectionName: string); + procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; const IncludeSchema: Boolean; const MaxRecords: Integer); + procedure DARemoteServiceCreate(Sender: TObject); + protected + { IsrvAlbaranesCliente methods } + function GenerarInforme(const ListaID: TIntegerArray): Binary; + function GenerarInformeEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary; + function GenerarInformeEnWord(const ID: Integer): Binary; + function GenerarInformeEnPDF(const ListaID: TIntegerArray): Binary; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer, uDatabaseUtils, + schAlbaranesClienteClient_Intf, uRestriccionesUsuarioUtils, + uRptAlbaranesCliente_Server, uBizAlbaranClienteServer, uRptWordAlbaranCliente, + uSistemaFunc; + +procedure Create_srvAlbaranesCliente(out anInstance : IUnknown); +begin + anInstance := TsrvAlbaranesCliente.Create(NIL); +end; + +{ srvAlbaranesCliente } +procedure TsrvAlbaranesCliente.DARemoteServiceBeforeGetDatasetData( + const Dataset: IDADataset; const IncludeSchema: Boolean; + const MaxRecords: Integer); +begin + if DataSet.Name = nme_AlbaranesCliente then + begin + { Aqu se asegura que el usuario slo accede a albaranes + de las empresas a las que tiene permiso para acceder + filtrando DataSet por ID_EMPRESA. } + FiltrarAccesoUsuario(Session, Connection, schAlbaranesCliente, DataSet, fld_AlbaranesClienteID_EMPRESA); + end; +end; + +procedure TsrvAlbaranesCliente.DARemoteServiceCreate(Sender: TObject); +begin + //SessionManager := dmServer.SessionManager; + bpAlbaranesCliente.BusinessRulesID := BIZ_SERVER_ALBARAN_CLIENTE; +end; + +procedure TsrvAlbaranesCliente.DataAbstractServiceBeforeAcquireConnection( + aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +function TsrvAlbaranesCliente.GenerarInformeEnPDF( + const ListaID: TIntegerArray): Binary; +var + AReportGenerator : TRptAlbaranesCliente; +begin + AReportGenerator := TRptAlbaranesCliente.Create(nil); + try + Result := AReportGenerator.GenerarAlbaranEnPDF(ListaID); + finally + FreeAndNIL(AReportGenerator); + end; +end; + +function TsrvAlbaranesCliente.GenerarInformeEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary; +//var +// AReportGenerator : TRptAlbaranesCliente; +begin + Result := NIL; +{ + AReportGenerator := TRptAlbaranesCliente.Create(nil); + try + Result := AReportGenerator.GenerarEtiquetas(ID, withRefCliente); + finally + FreeAndNIL(AReportGenerator); + end; +} +end; + +function TsrvAlbaranesCliente.GenerarInforme(const ListaID: TIntegerArray): Binary; +var + AReportGenerator : TRptAlbaranesCliente; +begin + AReportGenerator := TRptAlbaranesCliente.Create(nil); + try + Result := AReportGenerator.GenerarAlbaran(ListaID); + finally + FreeAndNIL(AReportGenerator); + end; +end; + +function TsrvAlbaranesCliente.GenerarInformeEnWord(const ID: Integer): Binary; +var + AReportGenerator : TRptWordAlbaranCliente; + AFicheroTMP : TFileName; +begin + Result := NIL; + AFicheroTMP := DarFicheroTemporal; + AReportGenerator := TRptWordAlbaranCliente.Create(nil); + try + if AReportGenerator.Exportar(IntToStr(ID), AFicheroTMP) then + begin + Result := Binary.Create; + Result.LoadFromFile(AFicheroTMP); + SysUtils.DeleteFile(AFicheroTMP) + end; + finally + FreeAndNIL(AReportGenerator); + end; +end; + +initialization + TROClassFactory.Create('srvAlbaranesCliente', Create_srvAlbaranesCliente, TsrvAlbaranesCliente_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.bdsproj b/Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.bdsproj new file mode 100644 index 0000000..1295274 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.bdsproj @@ -0,0 +1,497 @@ + + + + + + + + + + + + AlbaranesCliente_view.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + File c:\archivos de programa\borland\delphi10\Bin\dclIntraweb_80_100.bpl not found + File c:\archivos de programa\borland\delphi10\Bin\dclnet100.bpl not found + File c:\archivos de programa\borland\delphi10\Bin\dclsoap100.bpl not found + File c:\archivos de programa\borland\delphi10\Bin\dclie100.bpl not found + + + + diff --git a/Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.dcu b/Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.dcu new file mode 100644 index 0000000..525bd96 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.dpk b/Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.dpk new file mode 100644 index 0000000..780c6ac --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.dpk @@ -0,0 +1,55 @@ +package AlbaranesCliente_view; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + Base, + GUIBase, + ApplicationBase, + AlbaranesCliente_model, + AlbaranesCliente_controller, + Articulos_view, + Almacenes_controller, + AlbCli_FacCli_relation; + +contains + uAlbaranesClienteViewRegister in 'uAlbaranesClienteViewRegister.pas', + uEditorAlbaranesCliente in 'uEditorAlbaranesCliente.pas' {fEditorAlbaranesCliente: TfEditorPedidosCliente}, + uViewAlbaranesCliente in 'uViewAlbaranesCliente.pas' {frViewAlbaranesCliente: TFrame}, + uViewDireccionEntregaAlbaranCliente in 'uViewDireccionEntregaAlbaranCliente.pas' {frViewDireccionEntregaAlbaranCliente: TFrame}, + uViewAlbaranCliente in 'uViewAlbaranCliente.pas' {frViewAlbaranCliente: TFrame}, + uViewDetallesAlbaranCliente in 'uViewDetallesAlbaranCliente.pas' {frViewDetallesAlbaranCliente: TFrame}, + uEditorAlbaranCliente in 'uEditorAlbaranCliente.pas' {fEditorAlbaranCliente: TfEditorAlbaranCliente}, + uViewElegirArticulosAlbaranesCliente in 'uViewElegirArticulosAlbaranesCliente.pas' {frViewElegirArticulosAlbaranesCliente: TFrame}, + uEditorElegirArticulosAlbaranCliente in 'uEditorElegirArticulosAlbaranCliente.pas' {fEditorElegirArticulosAlbaranCliente: TfEditorElegirArticulosAlbaranCliente}, + uEditorAlbaranesClienteReport in 'uEditorAlbaranesClienteReport.pas' {fEditorAlbaranesClienteReport: TfEditorAlbaranesClienteReport}, + uEditorElegirAlbaranesCliente in 'uEditorElegirAlbaranesCliente.pas' {fEditorElegirAlbaranesCliente: TfEditorElegirAlbaranesCliente}, + uEditorAlbaranesDevCliente in 'uEditorAlbaranesDevCliente.pas' {fEditorAlbaranesDevCliente: TCustomEditor}, + uViewAlbaranesDevCliente in 'uViewAlbaranesDevCliente.pas' {frViewAlbaranesDevCliente: TCustomView}, + uEditorAlbaranDevCliente in 'uEditorAlbaranDevCliente.pas' {fEditorAlbaranDevCliente: TCustomEditor}, + uViewAlbaranDevCliente in 'uViewAlbaranDevCliente.pas' {frViewAlbaranDevCliente: TCustomView}, + uViewDatosYSeleccionClienteAlbaran in 'uViewDatosYSeleccionClienteAlbaran.pas' {frViewDatosYSeleccionClienteAlbaran: TCustomView}; + +end. diff --git a/Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.dproj b/Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.dproj new file mode 100644 index 0000000..0463283 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.dproj @@ -0,0 +1,610 @@ + + + + {9e558626-cf49-4cff-a178-e12c186758ac} + AlbaranesCliente_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\AlbaranesCliente_view.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 + File c:\archivos de programa\borland\delphi10\Bin\dclIntraweb_80_100.bpl not found + File c:\archivos de programa\borland\delphi10\Bin\dclnet100.bpl not found + File c:\archivos de programa\borland\delphi10\Bin\dclsoap100.bpl not found + File c:\archivos de programa\borland\delphi10\Bin\dclie100.bpl not found + AlbaranesCliente_view.dpk + + + + + MainSource + + + + + + + + + + + +
fEditorAlbaranCliente
+ TfEditorAlbaranCliente +
+ +
fEditorAlbaranDevCliente
+ TCustomEditor +
+ +
fEditorAlbaranesCliente
+ TfEditorPedidosCliente +
+ +
fEditorAlbaranesClienteReport
+ TfEditorAlbaranesClienteReport +
+ +
fEditorAlbaranesDevCliente
+ TCustomEditor +
+ +
fEditorElegirAlbaranesCliente
+ TfEditorElegirAlbaranesCliente +
+ +
fEditorElegirArticulosAlbaranCliente
+ TfEditorElegirArticulosAlbaranCliente +
+ +
frViewAlbaranCliente
+ TFrame +
+ +
frViewAlbaranDevCliente
+ TCustomView +
+ +
frViewAlbaranesCliente
+ TFrame +
+ +
frViewAlbaranesDevCliente
+ TCustomView +
+ +
frViewDatosYSeleccionClienteAlbaran
+ TCustomView +
+ +
frViewDetallesAlbaranCliente
+ TFrame +
+ +
frViewDireccionEntregaAlbaranCliente
+ TFrame +
+ +
frViewElegirArticulosAlbaranesCliente
+ TFrame +
+
+
+ diff --git a/Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.drc b/Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.drc new file mode 100644 index 0000000..74f36e4 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.drc @@ -0,0 +1,31 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Albaranes de cliente\Views\uViewAlbaranesCliente.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de cliente\Views\uEditorAlbaranesCliente.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de cliente\Views\uViewDetallesAlbaranCliente.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de cliente\Views\uViewDireccionEntregaAlbaranCliente.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de cliente\Views\uViewDatosYSeleccionClienteAlbaran.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de cliente\Views\uViewAlbaranCliente.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de cliente\Views\uEditorAlbaranCliente.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de cliente\Views\uViewElegirArticulosAlbaranesCliente.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de cliente\Views\uEditorElegirArticulosAlbaranCliente.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de cliente\Views\uEditorAlbaranesClienteReport.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de cliente\Views\uEditorElegirAlbaranesCliente.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de cliente\Views\uViewAlbaranesDevCliente.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de cliente\Views\uEditorAlbaranesDevCliente.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de cliente\Views\uViewAlbaranDevCliente.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de cliente\Views\uEditorAlbaranDevCliente.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de cliente\Views\AlbaranesCliente_view.res */ +/* c:\temp\dtf1F5.tmp */ diff --git a/Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.rc b/Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.res b/Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.res differ diff --git a/Source/Modulos/Albaranes de cliente/Views/uAlbaranesClienteViewRegister.dcu b/Source/Modulos/Albaranes de cliente/Views/uAlbaranesClienteViewRegister.dcu new file mode 100644 index 0000000..e18da96 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Views/uAlbaranesClienteViewRegister.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Views/uAlbaranesClienteViewRegister.pas b/Source/Modulos/Albaranes de cliente/Views/uAlbaranesClienteViewRegister.pas new file mode 100644 index 0000000..15b329b --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uAlbaranesClienteViewRegister.pas @@ -0,0 +1,38 @@ +unit uAlbaranesClienteViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorAlbaranesCliente, uEditorAlbaranCliente, + uEditorElegirArticulosAlbaranCliente, uEditorAlbaranesClienteReport, + uEditorElegirAlbaranesCliente, uEditorAlbaranesDevCliente, uEditorAlbaranDevCliente; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorAlbaranesCliente, 'EditorAlbaranesCliente'); + EditorRegistry.RegisterClass(TfEditorAlbaranCliente, 'EditorAlbaranCliente'); + EditorRegistry.RegisterClass(TfEditorAlbaranesDevCliente, 'EditorAlbaranesDevCliente'); + EditorRegistry.RegisterClass(TfEditorAlbaranDevCliente, 'EditorAlbaranDevCliente'); + EditorRegistry.RegisterClass(TfEditorElegirArticulosAlbaranCliente, 'EditorElegirArticulosAlbaranesCliente'); + EditorRegistry.RegisterClass(TfEditorAlbaranesClientePreview, 'EditorAlbaranesClientePreview'); + EditorRegistry.RegisterClass(TfEditorElegirAlbaranesCliente, 'EditorElegirAlbaranesCliente'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorAlbaranesCliente); + EditorRegistry.UnRegisterClass(TfEditorAlbaranCliente); + EditorRegistry.UnRegisterClass(TfEditorAlbaranesDevCliente); + EditorRegistry.UnRegisterClass(TfEditorAlbaranDevCliente); + EditorRegistry.UnRegisterClass(TfEditorElegirArticulosAlbaranCliente); + EditorRegistry.UnRegisterClass(TfEditorAlbaranesClientePreview); + EditorRegistry.UnRegisterClass(TfEditorElegirAlbaranesCliente); +end; + +end. + diff --git a/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranCliente.dcu b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranCliente.dcu new file mode 100644 index 0000000..3141b36 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranCliente.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranCliente.dfm b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranCliente.dfm new file mode 100644 index 0000000..5acc8f2 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranCliente.dfm @@ -0,0 +1,1998 @@ +inherited fEditorAlbaranCliente: TfEditorAlbaranCliente + Left = 332 + Top = 147 + Caption = 'Nuevo albaran de cliente' + ClientHeight = 585 + ClientWidth = 765 + OnClose = CustomEditorClose + ExplicitWidth = 773 + ExplicitHeight = 619 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 765 + Caption = 'Nuevo albaran de cliente' + ExplicitWidth = 765 + inherited Image1: TImage + Left = 632 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 5200000A4D6943435050686F746F73686F70204943432070726F66696C650000 + 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 + 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A + 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 + 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 + 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 + 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C + 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 + 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 + 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F + 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 + 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 + 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 + 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E + 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB + 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F + FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 + F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E + F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 + 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 + 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 + C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 + 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D + 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 + A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D + 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 + 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC + 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE + 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 + 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 + B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 + 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 + 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 + 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F + 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F + AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F + A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 + 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 + 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 + DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 + BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF + D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 + C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 + 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 + 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 + 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B + ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 + F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 + 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE + BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 + F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D + C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE + 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 + 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 + 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 + 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 + 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC + 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A + 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 + 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 + E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 + D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 + 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 + 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 + F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 + 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 + 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D + DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 + 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A + 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 + 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 + 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 + 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 + 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F + 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D + BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D + AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 + 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC + 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E + 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 + B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 + 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC + 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 + 4D410000B18E7CFB51930000026A4944415478DA63FCFFFF3F032D0123B2054B + B79CA49A6DD13EE68C582D004A906CD8DFBFFF80F83F980601EBC07C86733BA6 + E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3C275FB19E62DDD84DF02525C + EE507A9081455D89E1C08C1D0CEF0FC6312CD97890B005D87C802E06027B3BEC + 189C2B0E311CD97F0BCC7FB32F8661F996C394F9E0FF3F605803F11FA0EB41EC + 3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F18E70860DBB4E106701CCDBA4 + 80075B431936EF3D459C05F8520E3600D2B3A8508F61EB81D3C45B802BA86096 + C3E4616AE7E7EB32EC387486721F4C2C7064F8CA7E8E41F8D527BCBE7AF2D589 + 341FC02C6D2BE76788F0FBC520C1F883E1D74F0608FEC1C0F0134603F1C91344 + 58800DCC4C6464884D85B0F119CE2FC1C070F52E160B223C4DC1B9139B0F62DE + 3B31B008E28FEC3FEF1186638D8350371370EEC4E60364D783C0A7F71017C330 + C80767CE4082C6CE701FC3A1F3587C10E46CC4E0567D04A70520CD8400C87010 + C06A819FA3018357ED31AC1A414184EC0310F8FB17182CBF19187EFF02FAE23B + 03C38D1B0839AC1678DBE9C1CB155819032A7B40F49E7A51140B4086FE061AFE + E71784BD660D07839AC60F0636163C167858EB60351C54A1EC6F12C3880390C1 + 201F80F0966D1C0C52F2100BD85819184E5CC662818BA51656C341F4A1560914 + 0BDEBE44180EB268E71E0E061169880557EE383134AFDACB886181BDA93AD8B0 + 7F7F11C532CCC2E39DD2700B4006BE7B85301C1454FB0E7230F089FF6078F004 + 6238D6646A63A40A2E11B101D67D9E600B664EE5C09982DEFDB662D8FA491D77 + 59D43B65214ECDF6BCFB187818A5F1265190E12000B300003BBC36ACFF3E8021 + 0000000049454E44AE426082} + ExplicitLeft = 735 + end + inherited lblDesbloquear: TcxLabel + Left = 667 + ExplicitLeft = 667 + AnchorX = 712 + AnchorY = 14 + end + end + inherited TBXDock: TTBXDock + Width = 765 + ExplicitWidth = 765 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 488 + inherited TBXItem2: TTBXItem + Visible = False + end + inherited TBXSeparatorItem1: TTBXSeparatorItem + Visible = False + end + inherited TBXItem5: TTBXItem + Visible = False + end + object TBXItem33: TTBXItem [12] + Action = actEnviarEMail + DisplayMode = nbdmImageAndText + end + object TBXSeparatorItem6: TTBXSeparatorItem [13] + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 765 + object TBXSubmenuItem2: TTBXSubmenuItem [4] + Caption = 'A&cciones' + object TBXItem7: TTBXItem + Action = actEnviarEMail + end + end + end + end + inherited pgPaginas: TPageControl + Width = 759 + Height = 439 + TabOrder = 1 + OnChanging = pgPaginasChanging + ExplicitWidth = 759 + ExplicitHeight = 439 + inherited pagGeneral: TTabSheet + ExplicitLeft = 4 + ExplicitTop = 24 + ExplicitWidth = 751 + ExplicitHeight = 411 + end + object pagContenido: TTabSheet + Caption = 'Contenido' + ImageIndex = 1 + inline frViewDetallesAlbaranCliente1: TfrViewDetallesAlbaranCliente + Left = 0 + Top = 0 + Width = 751 + Height = 411 + Align = alClient + BiDiMode = bdLeftToRight + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentBiDiMode = False + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 751 + ExplicitHeight = 411 + inherited ToolBar1: TToolBar + Width = 751 + Height = 51 + ExplicitWidth = 751 + ExplicitHeight = 51 + inherited ToolButton3: TToolButton + Wrap = False + end + inherited ToolButton4: TToolButton + Left = 278 + Top = 0 + ExplicitLeft = 278 + ExplicitTop = 0 + end + inherited ToolButton14: TToolButton + Left = 334 + Top = 0 + Wrap = False + ExplicitLeft = 334 + ExplicitTop = 0 + end + inherited FontName: TJvFontComboBox + Left = 399 + Top = 0 + ExplicitLeft = 399 + ExplicitTop = 0 + end + inherited FontSize: TEdit + Left = 544 + Top = 0 + Width = 106 + ExplicitLeft = 544 + ExplicitTop = 0 + ExplicitWidth = 106 + end + inherited ToolButton13: TToolButton [7] + Left = 0 + Top = 0 + Wrap = True + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitHeight = 27 + end + inherited UpDown1: TUpDown [8] + Left = 0 + Top = 27 + ExplicitLeft = 0 + ExplicitTop = 27 + end + inherited ToolButton6: TToolButton + Left = 17 + Top = 27 + ExplicitLeft = 17 + ExplicitTop = 27 + end + inherited ToolButton7: TToolButton + Left = 83 + Top = 27 + ExplicitLeft = 83 + ExplicitTop = 27 + end + inherited ToolButton8: TToolButton + Left = 150 + Top = 27 + ExplicitLeft = 150 + ExplicitTop = 27 + end + inherited ToolButton12: TToolButton + Left = 233 + Top = 27 + ExplicitLeft = 233 + ExplicitTop = 27 + end + inherited ToolButton9: TToolButton + Left = 241 + Top = 27 + ExplicitLeft = 241 + ExplicitTop = 27 + end + inherited ToolButton10: TToolButton + Left = 386 + Top = 27 + ExplicitLeft = 386 + ExplicitTop = 27 + end + inherited ToolButton11: TToolButton + Left = 511 + Top = 27 + ExplicitLeft = 511 + ExplicitTop = 27 + end + end + inherited cxGrid: TcxGrid + Top = 77 + Width = 751 + Height = 334 + ExplicitTop = 77 + ExplicitWidth = 751 + ExplicitHeight = 334 + end + inherited TBXDock1: TTBXDock + Top = 51 + Width = 751 + ExplicitTop = 51 + ExplicitWidth = 751 + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 751 + end + end + inherited cxGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewDetallesAlbaranCliente1.cxGridView + HitTypes = [gvhtNone, gvhtCell, gvhtRecord, gvhtRowIndicator] + Index = 0 + PopupMenu = frViewDetallesAlbaranCliente1.GridGeneralPopupMenu + end> + end + end + end + object pagInicidencias: TTabSheet + Caption = 'Incidencias' + ImageIndex = 2 + inline frViewIncidenciasCli: TfrViewIncidencias + Left = 0 + Top = 0 + Width = 751 + Height = 411 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 751 + ExplicitHeight = 411 + inherited pnlSup: TPanel + Width = 751 + ExplicitWidth = 751 + inherited eIncidenciaActiva: TcxDBCheckBox + ExplicitHeight = 21 + end + end + inherited GroupBox1: TGroupBox + Width = 751 + Height = 383 + ExplicitWidth = 751 + ExplicitHeight = 383 + inherited eIncidencias: TcxDBMemo + ExplicitWidth = 734 + ExplicitHeight = 356 + Height = 356 + Width = 734 + end + end + end + end + end + inherited StatusBar: TJvStatusBar + Top = 566 + Width = 765 + Panels = < + item + Width = 200 + end> + ExplicitTop = 566 + ExplicitWidth = 765 + end + inline frViewTotales1: TfrViewTotales [4] + Left = 0 + Top = 521 + Width = 765 + Height = 45 + Align = alBottom + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 4 + ReadOnly = False + ExplicitTop = 521 + ExplicitWidth = 765 + ExplicitHeight = 45 + inherited dxLayoutControl1: TdxLayoutControl + Width = 765 + Height = 45 + LookAndFeel = dxLayoutOfficeLookAndFeel1 + ExplicitWidth = 765 + ExplicitHeight = 45 + inherited Bevel3: TBevel + Left = 428 + Top = 11 + Width = 7 + Height = 54 + ExplicitLeft = 428 + ExplicitTop = 11 + ExplicitWidth = 7 + ExplicitHeight = 54 + end + inherited Bevel4: TBevel + Left = 544 + Top = 53 + Width = 192 + ExplicitLeft = 544 + ExplicitTop = 53 + ExplicitWidth = 192 + end + inherited Bevel1: TBevel + Left = 544 + Top = 169 + Width = 73 + ExplicitLeft = 544 + ExplicitTop = 169 + ExplicitWidth = 73 + end + inherited Bevel2: TBevel + Left = 120 + Top = 171 + Width = 368 + ExplicitLeft = 120 + ExplicitTop = 171 + ExplicitWidth = 368 + end + inherited ImporteDto: TcxDBCurrencyEdit + Left = 191 + Top = 38 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 191 + ExplicitTop = 38 + end + inherited ImporteIVA: TcxDBCurrencyEdit + Left = 615 + Top = 88 + DataBinding.DataField = '' + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 615 + ExplicitTop = 88 + ExplicitWidth = 182 + Width = 182 + end + inherited ImporteTotal: TcxDBCurrencyEdit + Left = 545 + Top = 142 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 545 + ExplicitTop = 142 + ExplicitWidth = 252 + Width = 252 + end + inherited edtDescuento: TcxDBSpinEdit + Left = 120 + Top = 38 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 120 + ExplicitTop = 38 + end + inherited edtIVA: TcxDBSpinEdit + Left = 544 + Top = 88 + DataBinding.DataField = '' + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 544 + ExplicitTop = 88 + end + inherited ImporteBase: TcxDBCurrencyEdit + Left = 544 + Top = 11 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 544 + ExplicitTop = 11 + ExplicitWidth = 253 + Width = 253 + end + inherited edtRE: TcxDBSpinEdit + Left = 544 + Top = 115 + DataBinding.DataField = '' + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 544 + ExplicitTop = 115 + end + inherited ImporteRE: TcxDBCurrencyEdit + Left = 615 + Top = 115 + DataBinding.DataField = '' + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 615 + ExplicitTop = 115 + ExplicitWidth = 182 + Width = 182 + end + inherited eImporteNeto: TcxDBCurrencyEdit + Left = 120 + Top = 11 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 120 + ExplicitTop = 11 + end + inherited ePorte: TcxDBCurrencyEdit + Left = 120 + Top = 65 + Properties.OnValidate = frViewTotales1ePortePropertiesValidate + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 120 + ExplicitTop = 65 + end + inherited eIVA: TcxDBLookupComboBox + Left = 120 + Top = 92 + DataBinding.DataField = '' + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 120 + ExplicitTop = 92 + end + inherited bTiposIVA: TButton + Left = 280 + Top = 92 + ExplicitLeft = 280 + ExplicitTop = 92 + end + inherited cbRecargoEquivalencia: TcxDBCheckBox + Left = 120 + Top = 119 + DataBinding.DataField = '' + DataBinding.DataSource = nil + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 120 + ExplicitTop = 119 + ExplicitWidth = 221 + Width = 221 + end + inherited edtRetencion: TcxDBSpinEdit + Left = 544 + Top = 189 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 544 + ExplicitTop = 189 + end + inherited edtImporteRetencion: TcxDBCurrencyEdit + Left = 615 + Top = 189 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 615 + ExplicitTop = 189 + ExplicitWidth = 180 + Width = 180 + end + inherited edtFechaRetencion: TcxDBDateEdit + Left = 120 + Top = 191 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 120 + ExplicitTop = 191 + ExplicitWidth = 280 + Width = 280 + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Group1: TdxLayoutGroup + ShowCaption = False + ShowBorder = False + inherited dxLayoutControl1Group2: TdxLayoutGroup + inherited dxLayoutControl1Item8: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Group7: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Group6: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Item16: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Item19: TdxLayoutItem + Visible = False + end + end + inherited dxLayoutControl1Group5: TdxLayoutGroup + inherited dxLayoutControl1Item13: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Group3: TdxLayoutGroup + inherited dxLayoutControl1Item12: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Item14: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Group9: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Group8: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Item10: TdxLayoutItem + Visible = False + end + end + end + end + end + end + end + inherited EditorActionList: TActionList [5] + Left = 32 + Top = 96 + object actEnviarEMail: TAction + Category = 'Acciones' + Caption = 'Enviar por e-mail...' + Enabled = False + ImageIndex = 21 + Visible = False + OnExecute = actEnviarEMailExecute + OnUpdate = actEnviarEMailUpdate + end + end + inherited SmallImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001964944415478DA + 63FCFFFF3F03232323033A58BCE9F87F647EAC9F258622B05E6C068034873B8A + 80D92019C62F8F194C1356339CDF399D91A0014B361FFB1FE6208AA299E1F323 + 306D52F90CC5100C03566E3DFC3FD04E02A2F9F727064690462066006A66FC02 + 64FFFAC8603451096E088A01CB361FFDFF8F819981183077D11A86FDAB7B18E1 + 062CDD7CE27F14573FC3B2EF450CD13E86181ABE7DFFCDF0F5DB6F866FDFFE30 + 1CB97897218AB38FC1B85B98E1DC8E698C600396000D8861696058FAB7116CC0 + 94C5FBB0DAEC6CAECF70EED6238668E67AB057500CF8F0E10383A0A0208A0B90 + 6D06B1BF01D9379E3C67387AFE09C389A37BD15CE06B01B47907434EAC13C3EF + 3F7F19662E3F8862BB898606C3EFDFFF1896EF3DCFA0A5C0CD306FE9265403FC + 9D20362F5CB71F4CE7C47AA01890D5BC164C7716F980D56018606BAC0656B079 + EF2986F82047AC6150DEB785A13CD911AC06C300234D05867DC72F30B8D818E1 + 8DC2494B0E63F702281075D455884A07576EDEC134404A5480E1DAED07441900 + 021806F44D5D44B46618801B400900007F4518F05E90AAF20000000049454E44 + AE426082} + Name = 'PngImage21' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList [7] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002434944415478DA + B593DB6B13411C85CFA8AF0A11C5BED882977AA11A8A86A64AB5DA68ABB4DA17 + 9B071B94824F5510FF9022D8B4A2226AEA5DA434822951BC556D55225544E905 + A448895048369562B6D9ACFB1BC9CA38BBEB46D203CB4C7667BEEF4CD865BAAE + 6321C348C018B35D101978EDD82074A8D67633673B09081EDCB3426CA42A40D6 + B88C91E6BE536FF07EB097152D7003879A416FA21297AF0F584A6C056EE1BF47 + 053D63014B89A540826B3F0D5086C30B406859735E18C3D31D924412B8827368 + 4680334348E99E392D480401C19DDE26B75114059722FD5C620AFAA2C3FAFED9 + E3882FBB8AA3CD358E80F9790D2ABF727F8D1A129FBF625FE618EE6867F94912 + B11E662BE88EC45CB76ED8518DAC9AC3A7C96FF682743A0D8FC7637B02A7E604 + CF1ABF27A692285FBE1213E33F70EEE67951D0DEE247B86F109DED8D459FC0E7 + DD04D5904C2567904AA5103C5C8FC6B633A2A0ADC9C7175FB81547CBAE1A5454 + 7890CFEBBCE1F7E4AC25383537C79B131C2AC3E8E4184E869A7839E92F6ADD5B + 6D6EBC72FF0997AC2A5BCAE1D1E7239602EFDA4A684BF2589C5BC4E12782017E + FFE2ED47B2E060DD1661F38DE80B2E2138B5B20A352509C143ADBBCDFB91FE67 + B220E0DF2C01EEC55E99ADEC426D8F1CD829DCBBFBF0A52CA8DBB64158147D3C + 22B4720A356E6EF8F3F63D30F64A025FD51A73417C2821B5FA57A875BDDFCBE7 + 4F87476541D5FAD5FCE1D0DB8F429B6242CDB76FDD88771FBEC88275E565FC41 + A1C5FF86DA532CBF64B297228E272855244157F85AC9E085988285CC2F0A951A + EF05170AF90000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [8] + end + inherited dsDataTable: TDADataSource [10] + Left = 24 + Top = 136 + end + object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList + Left = 144 + Top = 280 + object dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel + GroupOptions.CaptionOptions.Font.Charset = DEFAULT_CHARSET + GroupOptions.CaptionOptions.Font.Color = clWindowText + GroupOptions.CaptionOptions.Font.Height = -11 + GroupOptions.CaptionOptions.Font.Name = 'Tahoma' + GroupOptions.CaptionOptions.Font.Style = [fsBold] + GroupOptions.CaptionOptions.TextColor = clHighlight + GroupOptions.CaptionOptions.UseDefaultFont = False + end + end +end diff --git a/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranCliente.pas b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranCliente.pas new file mode 100644 index 0000000..a7af5e6 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranCliente.pas @@ -0,0 +1,393 @@ +unit uEditorAlbaranCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + uEditorDBItem, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, + TB2Toolbar, ExtCtrls, JvExControls, JvNavigationPane, + uCustomView, uViewBase, JvComponentBase, + StdCtrls, pngimage, AppEvnts, cxControls, cxContainer, cxEdit, cxTextEdit, cxMemo, cxDBEdit, + uViewIncidencias, uAlbaranesClienteController, uViewDetallesBase, uViewDetallesAlbaranCliente, + dxLayoutLookAndFeels, JvExComCtrls, JvStatusBar, uViewTotales, + uIEditorAlbaranCliente, uBizAlbaranesCliente, uViewAlbaranCliente, + uViewDetallesDTO, uViewDetallesArticulos, uDAInterfaces, + uViewDetallesArticulosParaVenta, cxLabel; + +type + TfEditorAlbaranCliente = class(TfEditorDBItem, IEditorAlbaranCliente) + pagContenido: TTabSheet; + pagInicidencias: TTabSheet; + frViewIncidenciasCli: TfrViewIncidencias; + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + frViewDetallesAlbaranCliente1: TfrViewDetallesAlbaranCliente; + frViewTotales1: TfrViewTotales; + actEnviarEMail: TAction; + TBXSubmenuItem2: TTBXSubmenuItem; + TBXItem7: TTBXItem; + TBXItem33: TTBXItem; + TBXSeparatorItem6: TTBXSeparatorItem; + + procedure FormShow(Sender: TObject); + procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); + procedure pgPaginasChanging(Sender: TObject; var AllowChange: Boolean); + procedure frViewTotales1ePortePropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure frViewTotales1edtDescuentoPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure frViewTotales1edtIVAPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure actEnviarEMailExecute(Sender: TObject); + procedure actEnviarEMailUpdate(Sender: TObject); + private + procedure RecalcularPortePorUnidad; + + protected + FAlbaran: IBizAlbaranCliente; + FViewAlbaran: IViewAlbaranCliente; + FController : IAlbaranesClienteController; + + function GetController : IAlbaranesClienteController; + procedure SetController (const Value : IAlbaranesClienteController); virtual; + + function GetAlbaran: IBizAlbaranCliente; + procedure SetAlbaran(const Value: IBizAlbaranCliente); virtual; + + function GetViewAlbaran: IViewAlbaranCliente; + procedure SetViewAlbaran(const Value: IViewAlbaranCliente); + + procedure PrevisualizarInterno; override; + procedure ImprimirInterno; override; + procedure GuardarInterno; override; + procedure EliminarInterno; override; + + property ViewAlbaran: IViewAlbaranCliente read GetViewAlbaran write SetViewAlbaran; + + procedure OnClienteChanged(Sender : TObject); + + //Si queremos crear otra vista para el editor heredado solo tendriamos que + //sobreescribir este metodo + procedure AsignarVista; virtual; + function PuedoImprimir: Boolean; override; + + public + procedure PonerTitulos(const ATitulo: string = ''); override; + property Controller : IAlbaranesClienteController read GetController write SetController; + property Albaran: IBizAlbaranCliente read GetAlbaran write SetAlbaran; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +uses + uViewDatosYSeleccionCliente, uDataModuleUsuarios, uClientesController, + uBizDireccionesContacto, schAlbaranesClienteClient_Intf, uDialogUtils, + uEditorDBBase, uDataTableUtils, uFactuGES_App; + +{$R *.dfm} + +{ TfEditorAlbaranCliente } + +{ +**************************** TfEditorAlbaranCliente **************************** +} +procedure TfEditorAlbaranCliente.actEnviarEMailExecute(Sender: TObject); +begin + inherited; + FController.EnviarAlbaranPorEMail(FAlbaran); +end; + +procedure TfEditorAlbaranCliente.actEnviarEMailUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos; +end; + +procedure TfEditorAlbaranCliente.AsignarVista; +var + AViewAlbaranCliente: TfrViewAlbaranCliente; +begin + AViewAlbaranCliente := TfrViewAlbaranCliente.create(Self); + with AViewAlbaranCliente do + begin + Parent := pagGeneral; + Align := alClient; + dxLayoutControl1.LookAndFeel := dxLayoutOfficeLookAndFeel1; + end; + ViewAlbaran := AViewAlbaranCliente; +end; + +constructor TfEditorAlbaranCliente.Create(AOwner: TComponent); +begin + inherited; + pgPaginas.ActivePageIndex := 0; + + AsignarVista; +end; + +procedure TfEditorAlbaranCliente.CustomEditorClose(Sender: TObject; + var Action: TCloseAction); +begin + inherited; + FViewAlbaran := NIL; + FAlbaran := NIL; +end; + +destructor TfEditorAlbaranCliente.Destroy; +begin + // Utilizar mejor OnClose; + inherited; +end; + +function TfEditorAlbaranCliente.PuedoImprimir: Boolean; +begin + Result := inherited PuedoImprimir and (not Albaran.Cliente.IDIsNull); +end; + +procedure TfEditorAlbaranCliente.EliminarInterno; +begin + if (ShowConfirmMessage('Desea borrar este albarn de cliente?', '') = IDYES) then + begin + FController.Eliminar(FAlbaran); + inherited + end +end; + +procedure TfEditorAlbaranCliente.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(FViewAlbaran) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Albaran) then + raise Exception.Create('No hay ningn Albaran asignado'); + + Albaran.DataTable.Active := True; + pgPaginas.ActivePage := pagGeneral; +end; + +procedure TfEditorAlbaranCliente.frViewTotales1edtDescuentoPropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + FAlbaran.DESCUENTO := DisplayValue; +end; + +procedure TfEditorAlbaranCliente.frViewTotales1edtIVAPropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + FAlbaran.IVA := DisplayValue; +end; + +procedure TfEditorAlbaranCliente.frViewTotales1ePortePropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + if (not VarIsNull(DisplayValue)) and (Length(DisplayValue) > 0) then + FAlbaran.IMPORTE_PORTE := DisplayValue + else + FAlbaran.IMPORTE_PORTE := 0; + +// RecalcularPortePorUnidad; En los documentos de cliente no se desglosa el porte por articulo +end; + +function TfEditorAlbaranCliente.GetController: IAlbaranesClienteController; +begin + Result := FController; +end; + +function TfEditorAlbaranCliente.GetAlbaran: IBizAlbaranCliente; +begin + Result := FAlbaran; +end; + +function TfEditorAlbaranCliente.GetViewAlbaran: IViewAlbaranCliente; +begin + Result := FViewAlbaran; +end; + +procedure TfEditorAlbaranCliente.GuardarInterno; +var + bEsNuevo : Boolean; +begin + inherited; + + ShowHourglassCursor; +// frViewDetallesPedidoCliente1.SaveGridStatus; + frViewDetallesAlbaranCliente1.BeginUpdate; + try + bEsNuevo := FAlbaran.EsNuevo; + FController.Guardar(FAlbaran); + finally + frViewDetallesAlbaranCliente1.EndUpdate; +// frViewDetallesPedidoCliente1.RestoreGridStatus; + HideHourglassCursor; + end; + if bEsNuevo then + if FAlbaran.TIPO = CTE_TIPO_ALBARAN then + ShowInfoMessage('El albarn se ha dado de alta con el cdigo ' + FAlbaran.REFERENCIA) + else + ShowInfoMessage('La orden de devolucin se ha dado de alta con el cdigo ' + FAlbaran.REFERENCIA); + Modified := False; +end; + +procedure TfEditorAlbaranCliente.ImprimirInterno; +begin + inherited; + FController.Print(FAlbaran); +end; + +procedure TfEditorAlbaranCliente.OnClienteChanged(Sender: TObject); +var + ADireccion : IBizDireccionesContacto; +begin + if Assigned(FAlbaran) then + begin + FAlbaran.Cliente := ViewAlbaran.ViewClienteAlbaran.Cliente; + + // Avisar si no hay datos bancarios + {if not AClientesController.TieneDatosBancarios(FAlbaran.Cliente) then + ShowWarningMessage('Este cliente no tiene datos bancarios en su ficha');} + + // Elegir la direccin de envio +{ case FAlbaran.Cliente.Direcciones.RecordCount of + 0 : begin + ADireccion := NIL; + //ShowWarningMessage('Este cliente no tiene ninguna direccin de envo en su ficha'); + end; + 1 : begin + ADireccion := FAlbaran.Cliente.Direcciones; + end + end; + + // Si hay direccin de envio, copiarla al albarn y poner el coste del porte + if Assigned(ADireccion) then + begin + try + FAlbaran.Edit; + FAlbaran.IMPORTE_PORTE := ADireccion.PORTE; + FController.CopiarDireccionEnvio(ADireccion, FAlbaran); + finally + ADireccion := NIL; + end; + end + else begin + FController.QuitarDireccionEnvio(FAlbaran); + FAlbaran.Edit; + FAlbaran.IMPORTE_PORTE := 0; + end; +} + // Si el pedido tiene detalles hay que mirar si los descuentos + // para los artculos hay que cambiarlos. + if (FAlbaran.Detalles.RecordCount > 0) then + FController.DetallesController.ActualizarDetalles(FAlbaran.Detalles, FAlbaran.Cliente); + end; +end; + +procedure TfEditorAlbaranCliente.pgPaginasChanging(Sender: TObject; var AllowChange: Boolean); +begin + inherited; + if (not Assigned(FAlbaran)) or (FAlbaran.ID_CLIENTE = 0) then + begin + ShowWarningMessage('Antes de introducir conceptos debe elegir un cliente para este albarn'); + AllowChange := False; + end; +end; + +procedure TfEditorAlbaranCliente.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := ATitulo; + if (FTitulo = '') and Assigned(FAlbaran) then + begin + if FAlbaran.EsNuevo then + FTitulo := 'Nuevo albarn de cliente' + else + FTitulo := 'Albarn de cliente' + ' - ' + FAlbaran.Cliente.Nombre + ' - ' + FAlbaran.SITUACION; + end; + + inherited PonerTitulos(FTitulo); + + FTitulo := FTitulo + ' (' + AppFactuGES.EmpresaActiva.NOMBRE + ')'; + Self.Caption := FTitulo; +end; + +procedure TfEditorAlbaranCliente.PrevisualizarInterno; +begin + inherited; + FController.Preview(FAlbaran); +end; + +procedure TfEditorAlbaranCliente.RecalcularPortePorUnidad; +begin + //Esta lgica se llamar en el editor porque es para facilitar el rellenado de informacin del documento + //no puede ir en la clase de negocio porque no es una lgica que tenga sentido fuera del editor. + if Assigned(Controller) + and Assigned(Controller.DetallesController) then + Controller.DetallesController.DesglosarPorteDetalles(FAlbaran.IMPORTE_PORTE, FAlbaran.Detalles) +end; + +procedure TfEditorAlbaranCliente.SetController(const Value: IAlbaranesClienteController); +begin + FController := Value; + + if Assigned(FController) then + frViewDetallesAlbaranCliente1.Controller := Controller.DetallesController; +end; + +procedure TfEditorAlbaranCliente.SetAlbaran(const Value: IBizAlbaranCliente); +begin + FAlbaran := Value; + + if Assigned(FAlbaran) then + begin + dsDataTable.DataTable := FAlbaran.DataTable; + frViewIncidenciasCli.DADataSource.DataTable := dsDataTable.DataTable; + frViewTotales1.DADataSource.DataTable := dsDataTable.DataTable; + + if Assigned(FViewAlbaran) then + begin + ViewAlbaran.ViewClienteAlbaran.OnClienteChanged := NIL; + try + FViewAlbaran.Albaran := FAlbaran; + frViewDetallesAlbaranCliente1.Detalles := FAlbaran.Detalles; + frViewDetallesAlbaranCliente1.Albaran := FAlbaran; //Para poder sacar los descuento del articulos segun el cliente seleccionado + finally + ViewAlbaran.ViewClienteAlbaran.OnClienteChanged := OnClienteChanged; + end; + end; + end + else begin + dsDataTable.DataTable := NIL; + frViewIncidenciasCli.DADataSource.DataTable := NIL; + frViewTotales1.DADataSource.DataTable := NIL; + + if Assigned(FViewAlbaran) then + begin + FViewAlbaran.Albaran := NIL; + ViewAlbaran.ViewClienteAlbaran.OnClienteChanged := NIL; + frViewDetallesAlbaranCliente1.Detalles := NIL; + frViewDetallesAlbaranCliente1.Albaran := NIL; + end; + end; +end; + +procedure TfEditorAlbaranCliente.SetViewAlbaran(const Value: IViewAlbaranCliente); +begin + FViewAlbaran := Value; + + if Assigned(FViewAlbaran) and Assigned(Albaran) then + FViewAlbaran.Albaran := Albaran; +end; + +end. diff --git a/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranDevCliente.dcu b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranDevCliente.dcu new file mode 100644 index 0000000..38655f1 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranDevCliente.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranDevCliente.dfm b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranDevCliente.dfm new file mode 100644 index 0000000..64d98ea --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranDevCliente.dfm @@ -0,0 +1,240 @@ +inherited fEditorAlbaranDevCliente: TfEditorAlbaranDevCliente + Caption = 'fEditorAlbaranDevCliente' + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + inherited Image1: TImage + Picture.Data = { + 0B546478504E47496D61676589504E470D0A1A0A0000000D4948445200000018 + 000000180806000000E0773DF8000000017352474200AECE1CE9000000046741 + 4D410000B18F0BFC6105000000206348524D00007A26000080840000FA000000 + 80E8000075300000EA6000003A98000017709CBA513C000002F049444154484B + B5965B4854511486D7786348530B45CAECA2946056265156965254820F41E44B + 2F459787822C7BE8A57A30AA07C910349DA1088B082B485249B4902043492AC3 + D2F23A8D638D393A25669A97BFBD8EECE9343367668C3AB0389C3DE7FCDFBAEC + B5F6E800D07FBD1820ED766523FE95494D87382FB0F8DF5C939353181F9FC4E8 + E84FC5D6EE3ACA328AB65B406A4E1DD4E609AA7E6F78640C85B7AABD037C8D82 + 3D6740BAC1044A32C0FE6DD43780BB089CD7F899D3C2771667B30D8DF806F014 + C1F4D4342626A6F0636C42C937A7853D6771AB6DD837803B6FBDAD7104BD56BB + EF0019F66CEEA6BE41DF01BE165ABEC711769B6DB30368A5452DCAEFF0C5F70E + D3C0EC005A51149C48C7C5D3A1301C208F76366BDBEF31A1EE64B557EE1A8EC5 + BBEAF5F8FE9C60AF23F457137ACB099D6584D652C26BC30CD82BC05D04FCA1FD + 11C17C2A142D3951303FFC53FC5531A12C3304E5497AE4A5AC748D4076A7CCAB + 3A0216BF9E43A84C254C6F0A01B292716FF74218B367D66F1EF2434572309EC6 + 84A03061097233525C01B23BB5BCE7B4988B089624822D418791EDB1683A1881 + 866C3FBC5C35077591FEB89CBC02B5973452C4DD296BE00C9179E5DCE6A5AD41 + CBD200B4C510DE2784A131468FC7F375C85B17AF886B02B8F5B5B62703380269 + CD674441A3FDF02C82F0649E104D9B11F60850CF95BEFEAF307F1A428F65109D + 1F07949D21C57B2B7468DABF080DD141A80D2754CC25DC0926DCCFF2029043CB + 59FC43F717076050EC22D391E568DF188B9A5042CD06611984527F8251274002 + 52755EA3063C11DD89B776581D00CBB17058D3E214CFABE2082DA2E8EF6E100A + B604C218267A409C631736AF46315190CB89C613918716CF156EFDB6AE7EBC6D + FF8C376D7D0E404F6624EA1704E281107B21EAC0E2CD46C2957D7A5C3B4CC85F + 1CC5106B09D17117809C887CF4399BAC41D1D620DC15A929490C5044D5C63B8C + CF64E1FD8EAB4462333BFDABE01FB5ECE4DE78A5FDCFED49477EE232E4EE5CAF + 3CAB4D7E2B002400F40B7DA11C32DBE756950000000049454E44AE426082} + end + end + inherited pgPaginas: TPageControl + inherited pagContenido: TTabSheet + inherited frViewDetallesAlbaranCliente1: TfrViewDetallesAlbaranCliente + inherited ToolBar1: TToolBar + inherited FontSize: TEdit + Width = 90 + ExplicitWidth = 90 + end + inherited UpDown1: TUpDown + Left = 634 + ExplicitLeft = 634 + end + end + inherited cxGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewDetallesAlbaranCliente1.cxGridView + HitTypes = [gvhtNone, gvhtCell, gvhtRecord, gvhtRowIndicator] + Index = 0 + PopupMenu = frViewDetallesAlbaranCliente1.GridGeneralPopupMenu + end> + end + end + end + inherited pagInicidencias: TTabSheet + inherited frViewIncidenciasCli: TfrViewIncidencias + inherited GroupBox1: TGroupBox + inherited eIncidencias: TcxDBMemo + ExplicitWidth = 726 + ExplicitHeight = 319 + Height = 319 + Width = 726 + end + end + end + end + end + inherited frViewTotales1: TfrViewTotales + inherited dxLayoutControl1: TdxLayoutControl + LookAndFeel = dxLayoutOfficeLookAndFeel1 + inherited Bevel3: TBevel + Left = 340 + Height = 54 + ExplicitLeft = 340 + ExplicitHeight = 54 + end + inherited Bevel4: TBevel + Left = 456 + Width = 285 + ExplicitLeft = 456 + ExplicitWidth = 285 + end + inherited ImporteDto: TcxDBCurrencyEdit + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 151 + Width = 151 + end + inherited ImporteIVA: TcxDBCurrencyEdit + Left = 527 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 527 + ExplicitWidth = 219 + Width = 219 + end + inherited ImporteTotal: TcxDBCurrencyEdit + Left = 457 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 457 + ExplicitWidth = 289 + Width = 289 + end + inherited edtDescuento: TcxDBSpinEdit + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtIVA: TcxDBSpinEdit + Left = 456 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 456 + end + inherited ImporteBase: TcxDBCurrencyEdit + Left = 456 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 456 + ExplicitWidth = 290 + Width = 290 + end + inherited edtRE: TcxDBSpinEdit + Left = 456 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 456 + end + inherited ImporteRE: TcxDBCurrencyEdit + Left = 527 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 527 + ExplicitWidth = 219 + Width = 219 + end + inherited eImporteNeto: TcxDBCurrencyEdit + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 222 + Width = 222 + end + inherited ePorte: TcxDBCurrencyEdit + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 222 + Width = 222 + end + inherited eIVA: TcxDBLookupComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 84 + Width = 84 + end + inherited bTiposIVA: TButton + Left = 192 + ExplicitLeft = 192 + end + inherited cbRecargoEquivalencia: TcxDBCheckBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 222 + Width = 222 + end + inherited edtRetencion: TcxDBSpinEdit + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtImporteRetencion: TcxDBCurrencyEdit + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtFechaRetencion: TcxDBDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Group1: TdxLayoutGroup + inherited dxLayoutControl1Group2: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Group5: TdxLayoutGroup + inherited dxLayoutControl1Item13: TdxLayoutItem + Visible = False + end + end + end + end + end + end +end diff --git a/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranDevCliente.pas b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranDevCliente.pas new file mode 100644 index 0000000..5faf1cf --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranDevCliente.pas @@ -0,0 +1,74 @@ +unit uEditorAlbaranDevCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorAlbaranCliente, dxLayoutLookAndFeels, DB, uDADataTable, + JvAppStorage, JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, uViewTotales, ComCtrls, JvExComCtrls, + JvStatusBar, uViewIncidencias, uCustomView, uViewBase, uViewDetallesBase, + uViewDetallesDTO, uViewDetallesArticulos, uViewDetallesAlbaranCliente, TBX, + TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvComponent, + JvNavigationPane, uIEditorAlbaranDevCliente, uDAInterfaces, dxGDIPlusClasses, + uViewDetallesArticulosParaVenta, cxControls, cxContainer, cxEdit, cxLabel; + +type + TfEditorAlbaranDevCliente = class(TfEditorAlbaranCliente, IEditorAlbaranDevCliente) + procedure actEliminarUpdate(Sender: TObject); + protected + //Si queremos crear otra vista para el editor heredado solo tendriamos que + //sobreescribir este metodo + procedure AsignarVista; override; + + public + procedure PonerTitulos(const ATitulo: string = ''); override; + end; + +implementation +{$R *.dfm} + +uses + uViewAlbaranDevCliente, schAlbaranesClienteClient_Intf; + +{ TfEditorAlbaranDevCliente } + +procedure TfEditorAlbaranDevCliente.actEliminarUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := (FAlbaran.REF_FACTURA = ''); +end; + +procedure TfEditorAlbaranDevCliente.AsignarVista; +var + AViewAlbaranDevCliente: TfrViewAlbaranDevCliente; + +begin + AViewAlbaranDevCliente := TfrViewAlbaranDevCliente.create(Self); + with AViewAlbaranDevCliente do + begin + Parent := pagGeneral; + Align := alClient; + dxLayoutControl1.LookAndFeel := dxLayoutOfficeLookAndFeel1; + end; + ViewAlbaran := AViewAlbaranDevCliente; +end; + +procedure TfEditorAlbaranDevCliente.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := ATitulo; + if (FTitulo = '') and Assigned(FAlbaran) then + begin + if FAlbaran.EsNuevo then + FTitulo := 'Nueva orden de devolucin de cliente' + else + FTitulo := 'Orden de devolucin de cliente' + ' - ' + FAlbaran.Cliente.Nombre; + end; + + inherited PonerTitulos(FTitulo); +end; + +end. diff --git a/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesCliente.dcu b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesCliente.dcu new file mode 100644 index 0000000..7514841 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesCliente.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesCliente.dfm b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesCliente.dfm new file mode 100644 index 0000000..984c6d3 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesCliente.dfm @@ -0,0 +1,2941 @@ +inherited fEditorAlbaranesCliente: TfEditorAlbaranesCliente + Caption = 'Lista de albaranes de cliente' + ClientWidth = 583 + ExplicitWidth = 591 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 583 + Caption = 'Lista de albaranes de cliente' + ExplicitWidth = 583 + inherited Image1: TImage + Left = 556 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 5200000A4D6943435050686F746F73686F70204943432070726F66696C650000 + 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 + 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A + 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 + 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 + 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 + 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C + 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 + 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 + 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F + 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 + 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 + 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 + 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E + 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB + 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F + FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 + F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E + F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 + 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 + 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 + C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 + 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D + 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 + A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D + 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 + 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC + 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE + 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 + 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 + B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 + 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 + 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 + 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F + 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F + AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F + A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 + 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 + 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 + DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 + BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF + D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 + C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 + 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 + 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 + 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B + ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 + F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 + 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE + BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 + F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D + C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE + 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 + 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 + 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 + 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 + 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC + 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A + 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 + 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 + E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 + D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 + 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 + 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 + F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 + 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 + 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D + DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 + 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A + 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 + 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 + 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 + 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 + 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F + 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D + BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D + AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 + 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC + 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E + 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 + B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 + 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC + 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 + 4D410000B18E7CFB51930000026A4944415478DA63FCFFFF3F032D0123B2054B + B79CA49A6DD13EE68C582D004A906CD8DFBFFF80F83F980601EBC07C86733BA6 + E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3C275FB19E62DDD84DF02525C + EE507A9081455D89E1C08C1D0CEF0FC6312CD97890B005D87C802E06027B3BEC + 189C2B0E311CD97F0BCC7FB32F8661F996C394F9E0FF3F605803F11FA0EB41EC + 3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F18E70860DBB4E106701CCDBA4 + 80075B431936EF3D459C05F8520E3600D2B3A8508F61EB81D3C45B802BA86096 + C3E4616AE7E7EB32EC387486721F4C2C7064F8CA7E8E41F8D527BCBE7AF2D589 + 341FC02C6D2BE76788F0FBC520C1F883E1D74F0608FEC1C0F0134603F1C91344 + 58800DCC4C6464884D85B0F119CE2FC1C070F52E160B223C4DC1B9139B0F62DE + 3B31B008E28FEC3FEF1186638D8350371370EEC4E60364D783C0A7F71017C330 + C80767CE4082C6CE701FC3A1F3587C10E46CC4E0567D04A70520CD8400C87010 + C06A819FA3018357ED31AC1A414184EC0310F8FB17182CBF19187EFF02FAE23B + 03C38D1B0839AC1678DBE9C1CB155819032A7B40F49E7A51140B4086FE061AFE + E71784BD660D07839AC60F0636163C167858EB60351C54A1EC6F12C3880390C1 + 201F80F0966D1C0C52F2100BD85819184E5CC662818BA51656C341F4A1560914 + 0BDEBE44180EB268E71E0E061169880557EE383134AFDACB886181BDA93AD8B0 + 7F7F11C532CCC2E39DD2700B4006BE7B85301C1454FB0E7230F089FF6078F004 + 6238D6646A63A40A2E11B101D67D9E600B664EE5C09982DEFDB662D8FA491D77 + 59D43B65214ECDF6BCFB187818A5F1265190E12000B300003BBC36ACFF3E8021 + 0000000049454E44AE426082} + ExplicitLeft = 563 + end + end + inherited TBXDock: TTBXDock + Width = 583 + ExplicitWidth = 583 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 583 + object TBXSeparatorItem17: TTBXSeparatorItem [10] + end + end + inherited tbxFiltro: TTBXToolbar + ExplicitWidth = 427 + inherited lblAno: TTBXLabelItem + Visible = True + end + inherited cbxListaAnos: TTBXComboBoxItem + Visible = True + end + inherited sepAno: TTBXSeparatorItem + Visible = True + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 583 + object TBXSubmenuItem2: TTBXSubmenuItem [4] + Caption = 'A&cciones' + object TBXItem39: TTBXItem + Action = actEnviarEMail + end + end + end + inherited TBXTMain2: TTBXToolbar + Left = 427 + Visible = True + ExplicitLeft = 427 + ExplicitWidth = 117 + object TBXItem42: TTBXItem + Action = actEnviar + DisplayMode = nbdmImageAndText + end + object TBXItem43: TTBXItem + Action = actCancelarEnvio + DisplayMode = nbdmImageAndText + end + object TBXSeparatorItem18: TTBXSeparatorItem + end + object TBXItem44: TTBXItem + Action = actConfirmarRecepcion + DisplayMode = nbdmImageAndText + end + object TBXSeparatorItem19: TTBXSeparatorItem + end + object TBXItem45: TTBXItem + Action = actGenerarFactura + DisplayMode = nbdmImageAndText + end + object TBXItem38: TTBXItem + Action = actGenerarEtiquetas + DisplayMode = nbdmImageAndText + end + end + end + inherited StatusBar: TJvStatusBar + Width = 583 + ExplicitWidth = 583 + end + inherited EditorActionList: TActionList + inherited actNuevo: TAction + ImageIndex = 21 + end + inherited actPrevisualizar: TAction + Visible = True + end + inherited actImprimir: TAction + Visible = True + end + inherited actAnchoAuto: TAction + ImageIndex = 22 + end + object actGenerarFactura: TAction + Category = 'Acciones' + Caption = 'Generar factura' + ImageIndex = 23 + OnExecute = actGenerarFacturaExecute + OnUpdate = actGenerarFacturaUpdate + end + object actEnviar: TAction + Category = 'Acciones' + Caption = 'Enviar albar'#225'n...' + Enabled = False + ImageIndex = 23 + Visible = False + OnExecute = actEnviarExecute + OnUpdate = actEnviarUpdate + end + object actCancelarEnvio: TAction + Category = 'Acciones' + Caption = 'Cancelar envio' + Enabled = False + ImageIndex = 23 + Visible = False + OnExecute = actCancelarEnvioExecute + OnUpdate = actCancelarEnvioUpdate + end + object actConfirmarRecepcion: TAction + Category = 'Acciones' + Caption = 'Confirmar recepcion' + Enabled = False + ImageIndex = 23 + Visible = False + OnExecute = actConfirmarRecepcionExecute + OnUpdate = actConfirmarRecepcionUpdate + end + object actGenerarEtiquetas: TAction + Category = 'Acciones' + Caption = 'Generar etiquetas' + Enabled = False + ImageIndex = 23 + Visible = False + OnExecute = actGenerarEtiquetasExecute + OnUpdate = actGenerarEtiquetasUpdate + end + object actEnviarEMail: TAction + Category = 'Acciones' + Caption = 'Enviar por e-mail...' + OnExecute = actEnviarEMailExecute + OnUpdate = actEnviarEMailUpdate + end + end + inherited SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000001744944415478DA63FCFFFF3FC394 + C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F19ACFDF319CEED + 98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC5BBA09D3007CE0 + D7EFBF609B4178C98683D80D40770136B0AED69461E59623B80D80391B04FE01 + E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D760CCEE587E036 + 07359F66585A6AC0B069CF49FC06C06CFE7CFB30C3CBC5B1F87CE48261C0C15E + 0706FBE20360D999EC710CCA0D350CECECE9183A7FFE9CC9302FB18501C30090 + B3617E7ED6A6C6A0D5FE18AC180E7EFC00E2EF0CB3771930306F4F45189011E5 + C6E0587A10C516900B500C0069FEF00E62C02927540392C39CC1B6C2423DA4F5 + 0CAA0130CD60037E32CCBE15846A405C90034A9445769E4718F0712242F3870F + 1017BC4A413520CA0FE177B841338C20063CAC47688679E15719AA01A15ED60C + ABB71D450903A76BA9E05898BD4A1E6B1CA218004A18E8409BF70D8315EB719C + 89C05E9EC10500D1295EA9BD5461080000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B3A00000B3A01647F570D0000015D4944415478DA + 63FCFFFF3F030830323232C0C0CEB58DCA2F6E6CBDF3FEF129B818C30F061490 + 3FFF3F58032336032E9C58FD9F8B47904155DB192EF6FFD72B867F9F2F31FCB9 + E3CA3063061E0380B6DBB373F01CB076CD66606165C7AAB96001923E6403809A + 9979F925FEC8299B32482B18E2D40C16C7614032D08039164EA97017810CF875 + 5E1CAC196F18EC5AD7C40F74FA073DB36006411179B8E6FF3F5F32FCBEA687A2 + 196B18000D681797D6AAD06008852B64D5BA0434E4251833000DFBFBA2087718 + 2CEF76FFFFE1E119865F5FDF81F9B993706BC61906D0589056D7D07F2223CE8D + 53332103DAC5C4A52B749438706AC6170BECACAC6C3FF4547918F8397FE3D48C + 3F1A79F9E7982A7F66F8FBBA16A7669C061CDB35E1BF9CAA1D83C84B23BC9AB1 + 1A008C466BA0F38F5888D632CC9AF907AF66AC065C383AF73FC7B7150C3B97ED + 21A819AB0137CE2CFBBF776E2643CE8C4F0435231B00004A4C11F0D3652A8300 + 00000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001BE4944415478DA + 63FCFFFF3F032D0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80 + F83F980601EBC07C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3 + C275FB19E62DDD84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD978 + 90B005D87C802E06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9 + E0FF3F605803F11FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F1 + 8E70860DBB4E106701CCDBA480075B431936EF3D459C05F8520E3600D2B3A850 + 8F61EB81D3C45B802BA86096C3E4616AE7E7EB32EC387486763E989DA3CDB0E7 + E839DAF96046A626C3FE131768E783A969EA0C874E5FC26F4184A729387792E3 + 838929AA0CC7CE5EC16F41A89B09387792E3839E042586D317AFE3B720C8D988 + C1ADFA08591674C62A309CBB7213BF057E8E060C5EB5C7F01A06B27CC1913F70 + 7E820D0BD882B62839868BD76FE3B7C0DB4E0F5EAEC0CA1850D9032BF393275F + C1881F18BF394296E1CACD3BF82DF0B0D6C16938884E9B760D6BF0116D818BA5 + 164EC3411667CDB88133E888B2C0DE541D6CD8BFBF88621966E1BFFFFFB1061F + 322068818D912AB844A404E0B5A077CA428A0C8701980500619929EF09CFCE42 + 0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000001B94944415478DA + 63FCFFFF3F032D01E38058C0C8C888C2DFB9B651F9C58DAD77DE3F3E85AAF007 + 7643F3E7FF6724C9828B27D7FCE7E0E46350D3754511FFFFEB15C3BFCF9718FE + 7FB90CC40F18FE7D99C43063068916005D6FCEC2CA71C2CE239F8185959DA0E1 + 050B50CD2468C1C903F3FF4B486B32C8A9986375FDBF179B510C07CB116B01D0 + F5C15C3C426BAC5DB3512CC56738D116000D67061AFE4755DB99411CE803620D + 27C5827C0161B90966F6091841F3E7762BDC7064407410ED5AD7C40F8CD80FC6 + D6D10CFC42D22886FFFFF992E1EFA339600B9001497100B4A05B4246BB44CF2C + 18C3F0FFBF209801C4474B3D4407D1F26EF7FF1F1E9E61F8F5F51D5C2C77D225 + A20C272915415392B4BA9ACC13194939A20C27C7826E7131C1126D6521A20C27 + C902A0E1DC2C2CCC5F0CD5051878397E116538A916E40BF0734F3052FCCEF0FF + FB6BA20C27DA027046E364FFA322C5C420CCF28468C349B1C01F68C10633B967 + C0A021DE70A22D38B9A7E7BF28DF1F06A97F1524194E9405C08C660C8CDC3316 + 624D0CB367FE22C970A22CB87864F27FB66F5B18762DDF45B2E1445970E3F4F4 + FF7BE75530E4CCF844B2E14459404D40730B006B5E9AE0A24640FE0000000049 + 454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end> + Bitmap = {} + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [7] + end + inherited dsDataTable: TDADataSource [8] + end + inherited GridPopupMenu: TPopupMenu + object N4: TMenuItem [5] + Caption = '-' + end + object Serviralbarn1: TMenuItem [6] + Action = actEnviar + end + object Generarfactura1: TMenuItem [7] + Action = actGenerarFactura + end + object Enviarporemail1: TMenuItem [12] + Action = actEnviarEMail + end + end + object JsNuevoAlbaranDialog: TJSDialog + Content.Strings = ( + #191'C'#243'mo desea dar de alta el albar'#225'n?') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Nuevo albar'#225'n de cliente' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Albar'#225'n nuevo vac'#237'o.' + Value = 100 + end + item + Caption = 'Utilizar un pedido de cliente.' + Value = 200 + Info.Strings = ( + + 'Puede utilizar un pedido de cliente existente para dar de alta e' + + 'l albar'#225'n nuevo.') + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Left = 144 + Top = 112 + end + object JsImprimirDialog: TJSDialog + Content.Strings = ( + 'Elija una opci'#243'n:') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Imprimir...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Imprimir el albaran/es seleccionado/s' + Value = 100 + Default = True + end + item + Caption = 'Imprimir la lista de albaranes actual' + Value = 200 + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 500 + Left = 264 + Top = 112 + end + object JsPrevisualizarDialog: TJSDialog + Content.Strings = ( + 'Elija una opci'#243'n:') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Previsualizar...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Previsualizar el albaran/es seleccionado/s' + Value = 100 + Default = True + end + item + Caption = 'Previsualizar la lista de albaranes actual' + Value = 200 + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 500 + Left = 232 + Top = 112 + end + object JsListaAlbaranesNoEliminados: TJSDialog + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = + 'Los siguientes albaranes no han podido ser eliminados, porque es' + + 't'#225'n enviados o tiene una factura asociada' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + ButtonBar.Buttons = [cbOK] + ButtonBar.Cancel = cbOK + ButtonBar.UseCancel = False + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 184 + Top = 112 + end +end diff --git a/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesCliente.pas b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesCliente.pas new file mode 100644 index 0000000..970f44b --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesCliente.pas @@ -0,0 +1,567 @@ +unit uEditorAlbaranesCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, Menus, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems, + TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, + JvNavigationPane, uViewGrid, pngimage, JvComponentBase, + uEditorGridBase, + uBizAlbaranesCliente, uIEditorAlbaranesCliente, uAlbaranesClienteController, + uCustomView, uViewBase, uViewBarraSeleccion, uViewGridBase, + uViewAlbaranesCliente, JvExComCtrls, JvStatusBar, JSDialog, uDAInterfaces; + +type + TfEditorAlbaranesCliente = class(TfEditorGridBase, IEditorAlbaranesCliente) + JsNuevoAlbaranDialog: TJSDialog; + actGenerarFactura: TAction; + N4: TMenuItem; + Generarfactura1: TMenuItem; + TBXSeparatorItem17: TTBXSeparatorItem; + actEnviar: TAction; + Serviralbarn1: TMenuItem; + JsImprimirDialog: TJSDialog; + JsPrevisualizarDialog: TJSDialog; + actCancelarEnvio: TAction; + actConfirmarRecepcion: TAction; + TBXItem42: TTBXItem; + TBXItem43: TTBXItem; + TBXItem44: TTBXItem; + TBXSeparatorItem18: TTBXSeparatorItem; + TBXItem45: TTBXItem; + TBXSeparatorItem19: TTBXSeparatorItem; + actGenerarEtiquetas: TAction; + TBXItem38: TTBXItem; + JsListaAlbaranesNoEliminados: TJSDialog; + actEnviarEMail: TAction; + Enviarporemail1: TMenuItem; + TBXSubmenuItem2: TTBXSubmenuItem; + TBXItem39: TTBXItem; + procedure FormShow(Sender: TObject); + procedure actGenerarFacturaUpdate(Sender: TObject); + procedure actGenerarFacturaExecute(Sender: TObject); + procedure actEnviarUpdate(Sender: TObject); + procedure actEnviarExecute(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + procedure actCancelarEnvioExecute(Sender: TObject); + procedure actCancelarEnvioUpdate(Sender: TObject); + procedure actConfirmarRecepcionExecute(Sender: TObject); + procedure actConfirmarRecepcionUpdate(Sender: TObject); + procedure actGenerarEtiquetasExecute(Sender: TObject); + procedure actGenerarEtiquetasUpdate(Sender: TObject); + procedure actEnviarEMailExecute(Sender: TObject); + procedure actEnviarEMailUpdate(Sender: TObject); + procedure OnListaAnosChange(Sender: TObject; const Text: string); + + protected + FAlbaranes: IBizAlbaranCliente; + FController : IAlbaranesClienteController; + + function GetAlbaranes: IBizAlbaranCliente; + procedure SetAlbaranes(const Value: IBizAlbaranCliente); + + function GetController : IAlbaranesClienteController; virtual; + procedure SetController (const Value : IAlbaranesClienteController); virtual; + + procedure NuevoInterno; override; + procedure ModificarInterno; override; + procedure EliminarInterno; override; + procedure DuplicarInterno; override; + procedure ImprimirInterno; override; + procedure PrevisualizarInterno; override; + procedure RefrescarInterno; override; + + //Si queremos crear otra vista para el editor heredado solo tendriamos que + //sobreescribir este método + procedure AsignarVista; virtual; + + public + procedure PonerTitulos(const ATitulo: string = ''); override; + property Albaranes: IBizAlbaranCliente read GetAlbaranes write SetAlbaranes; + property Controller : IAlbaranesClienteController read GetController write SetController; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +uses + uDataModuleAlbaranesCliente, uDataModuleUsuarios, uFactuGES_App, + uGenerarFacturasCliAlbCliUtils, +//En tecsitel no estaran habilitados los pedidos +// uPedidosClienteController, uBizPedidosCliente, + uDialogUtils, schAlbaranesClienteClient_Intf, +// uFacturasClienteController, uBizFacturasCliente, +// uInventarioController, uGenerarAlbaranesCliUtils, + uEditorBase, + cxCustomData, uGridStatusUtils, uDBSelectionListUtils; + +{$R *.dfm} + +{ +*************************** TfEditorAlbaranesCliente *************************** +} +procedure TfEditorAlbaranesCliente.actCancelarEnvioExecute(Sender: TObject); +begin +{ + inherited; + + if (ShowConfirmMessage('Envío de albarán de cliente', '¿Desea cancelar el envío de este albarán de cliente?') = IDYES) then + begin + try + FController.CambiarSituacion(FAlbaranes, SITUACION_ALBARAN_PENDIENTE); + except + on E : Exception do + ShowErrorMessage('Error al cambiar la situación del albarán', E.Message, E); + end; + end; + actRefrescar.Execute; +} +end; + +procedure TfEditorAlbaranesCliente.actCancelarEnvioUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos + and not (ViewGrid.NumSeleccionados > 1) + and ViewGrid.esSeleccionCeldaDatos + and (FAlbaranes.SITUACION = SITUACION_ALBARAN_ENVIADO); +end; + +procedure TfEditorAlbaranesCliente.actConfirmarRecepcionExecute(Sender: TObject); +begin +{ + inherited; + + try + FController.CambiarSituacion(FAlbaranes, SITUACION_ALBARAN_SERVIDO, FAlbaranes.FECHA_ENVIO, Now); + except + on E : Exception do + ShowErrorMessage('Error al cambiar la situación del albarán', E.Message, E); + end; + actRefrescar.Execute; +} +end; + +procedure TfEditorAlbaranesCliente.actConfirmarRecepcionUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos + and not (ViewGrid.NumSeleccionados > 1) + and ViewGrid.esSeleccionCeldaDatos + and (FAlbaranes.SITUACION = SITUACION_ALBARAN_ENVIADO); +end; + +procedure TfEditorAlbaranesCliente.actEliminarUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled + and (FAlbaranes.TIPO = CTE_TIPO_ALBARAN) then + (Sender as TAction).Enabled := not (FAlbaranes.ID_FACTURA > 0) + and (FAlbaranes.SITUACION = SITUACION_ALBARAN_PENDIENTE) +end; + +procedure TfEditorAlbaranesCliente.actGenerarEtiquetasExecute(Sender: TObject); +begin +{ + inherited; + //Miramos si viene de un pedido previo, si no es asi le preguntamos si desea imprimir la referencia del cliente + if (FAlbaranes.ID_PEDIDO > 0) then + FController.EtiquetasPreview(FAlbaranes, True) + else + begin + if (Application.MessageBox('¿El albarán seleccionado no está asociado a un pedido por internet, ¿desea imprimir la referencia del cliente para las etiquetas de este albarán?', 'Atención', MB_YESNO) = IDYES) then + FController.EtiquetasPreview(FAlbaranes, True) + else + FController.EtiquetasPreview(FAlbaranes, False); + end; +} +end; + +procedure TfEditorAlbaranesCliente.actGenerarEtiquetasUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos + and not (ViewGrid.NumSeleccionados > 1) + and ViewGrid.esSeleccionCeldaDatos; +end; + +procedure TfEditorAlbaranesCliente.actGenerarFacturaExecute(Sender: TObject); +begin + GenerarFacturaCliAlb(Albaranes.ID); + actRefrescar.Execute; +end; + +procedure TfEditorAlbaranesCliente.actGenerarFacturaUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos + and not (ViewGrid.NumSeleccionados > 1) + and (FAlbaranes.REF_FACTURA = '') + and ViewGrid.esSeleccionCeldaDatos; +end; + +procedure TfEditorAlbaranesCliente.actEnviarEMailExecute(Sender: TObject); +begin + inherited; + FController.EnviarAlbaranPorEMail(FAlbaranes); +end; + +procedure TfEditorAlbaranesCliente.actEnviarEMailUpdate(Sender: TObject); +begin + inherited; + if HayDatos and Assigned(ViewGrid) then + (Sender as TAction).Enabled := ViewGrid.EsSeleccionCeldaDatos + and (ViewGrid.NumSeleccionados > 0) + else + (Sender as TAction).Enabled := False; +end; + +procedure TfEditorAlbaranesCliente.actEnviarExecute(Sender: TObject); +//var +// AInventarioController : IInventarioController; +// bCambiarEstado : Boolean; +// AFactura : IBizFacturaCliente; +// AFacturasController : IFacturasClienteController; +// AAlbaran : IBizAlbaranCliente; +begin +{ + inherited; + bCambiarEstado := False; + + // ¿Hay almacén asociado al albarán? + if FAlbaranes.ID_ALMACEN = 0 then + begin + if (ShowConfirmMessage('Envío de albarán de cliente', 'Este albarán no tiene un almacén asociado por lo que no se realizará ningún cambio en el stock de los almacenes.' + + #10#13 + #10#13 + '¿Desea realizar el envío de este albarán de cliente?') = IDYES) then + bCambiarEstado := True // No hay almacén. Cambiamos el estado y ya está. + end + else begin + AInventarioController := TInventarioController.Create; + try + bCambiarEstado := AInventarioController.SalidaAlbaran(NIL, FAlbaranes.ID_ALMACEN, FAlbaranes.Detalles); + finally + AInventarioController := NIL; + end; + end; + + if bCambiarEstado then + begin + try + FController.CambiarSituacion(FAlbaranes, SITUACION_ALBARAN_ENVIADO, Now); +{ + if (ShowConfirmMessage('', 'Se ha realizado correctamente la salida del albarán de cliente. ¿Desea generar la factura de cliente correspondiente?') = IDYES) then + begin + AAlbaran := FController.Buscar(FAlbaranes.ID); + AAlbaran.DataTable.Active := True; + + AFacturasController := TFacturasClienteController.Create; + AFactura := AFacturasController.Nuevo; + try + if AFacturasController.Anadir(AFactura, AAlbaran) then + AFacturasController.Ver(AFactura) + finally + AFacturasController := NIL; + AAlbaran := NIL; + AFactura := NIL; + end; + end; +} + + +{ + except + on E : Exception do + ShowErrorMessage('Error al cambiar la situación del albarán', E.Message, E); + end; + end; + actRefrescar.Execute; +} +end; + +procedure TfEditorAlbaranesCliente.actEnviarUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos + and not (ViewGrid.NumSeleccionados > 1) + and ViewGrid.esSeleccionCeldaDatos + and (FAlbaranes.SITUACION = SITUACION_ALBARAN_PENDIENTE); +end; + +procedure TfEditorAlbaranesCliente.AsignarVista; +begin + ViewGrid := CreateView(TfrViewAlbaranesCliente) as IViewAlbaranesCliente; +end; + +constructor TfEditorAlbaranesCliente.Create(AOwner: TComponent); +begin + inherited; + + FHeaderText := 'Lista de albaranes de cliente'; + FWindowCaption := FHeaderText; + + AsignarVista; +end; + +destructor TfEditorAlbaranesCliente.Destroy; +begin + FAlbaranes := NIL; + FController := NIL; + inherited; +end; + +procedure TfEditorAlbaranesCliente.DuplicarInterno; +var + APedido : IBizAlbaranCliente; +begin + inherited; + APedido := FController.Duplicar(Albaranes); + try + FController.Ver(APedido); + finally + actRefrescar.Execute; + end; +end; + +procedure TfEditorAlbaranesCliente.EliminarInterno; +var + AAlbaranes: IBizAlbaranCliente; + AllItems: Boolean; +begin + AAlbaranes := Nil; + AllItems := False; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + if AllItems then + begin + if (Application.MessageBox('¿Desea borrar los albaranes de cliente seleccionados?', 'Atención', MB_YESNO) = IDYES) then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Albaranes as ISeleccionable).SelectedRecords); + AAlbaranes := (Controller as IAlbaranesClienteController).ExtraerSeleccionados(Albaranes) as IBizAlbaranCliente; + end + end + else begin + if (Application.MessageBox('¿Desea borrar el albarán de cliente seleccionado?', 'Atención', MB_YESNO) = IDYES) then + AAlbaranes := Albaranes; + end; + + if Assigned(AAlbaranes) then + begin + FController.Eliminar(AAlbaranes, AllItems); + if AllItems then + begin + if (AAlbaranes.DataTable.RecordCount > 0) then + begin + with AAlbaranes.DataTable do + begin + First; + while not EOF do + begin + JsListaAlbaranesNoEliminados.Content.Add('Ref. albarán: ' + AAlbaranes.REFERENCIA + ' ' + AAlbaranes.NOMBRE); + Next; + end; + end; + JsListaAlbaranesNoEliminados.Execute; + end; + actRefrescar.Execute; + end; + end; + + ViewGrid.GotoFirst; +end; + +procedure TfEditorAlbaranesCliente.FormShow(Sender: TObject); +begin + cbxListaAnos.OnChange := OnListaAnosChange; //OJO SIEMPRE ANTES DEL INHERITED + + inherited; + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Albaranes) then + raise Exception.Create('No hay ningún albarán asignado'); + + Albaranes.DataTable.Active := True; + ViewGrid.GotoFirst; +end; + +function TfEditorAlbaranesCliente.GetController: IAlbaranesClienteController; +begin + Result := FController; +end; + +function TfEditorAlbaranesCliente.GetAlbaranes: IBizAlbaranCliente; +begin + Result := FAlbaranes; +end; + +procedure TfEditorAlbaranesCliente.ImprimirInterno; +var + Respuesta : Integer; + AAlbaranes: IBizAlbaranCliente; + AllItems: Boolean; + +begin + + AAlbaranes := Nil; + AllItems := False; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + //Si esta agrupado solo podré imprimir la lista de elementos visibles + if not ViewGrid.esSeleccionCeldaDatos then + inherited + else + begin + Respuesta := JsImprimirDialog.Execute; + if Respuesta <> IDCANCEL then + begin + case JsImprimirDialog.CustomButtonResult of + 200 : begin // Lista de elementos visibles + inherited; + end; + 100 : begin // Elemento Seleccionado + if AllItems then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Albaranes as ISeleccionable).SelectedRecords); + AAlbaranes := (Controller as IAlbaranesClienteController).ExtraerSeleccionados(Albaranes) as IBizAlbaranCliente; + end + else + AAlbaranes := Albaranes; + + if Assigned(AAlbaranes) then + FController.Print(AAlbaranes, AllItems); + end; + end; + end; + end; +end; + +procedure TfEditorAlbaranesCliente.ModificarInterno; +begin + inherited; + FController.Ver(Albaranes); +end; + +procedure TfEditorAlbaranesCliente.NuevoInterno; +{var + Respuesta : Integer; + AAlbaran : IBizAlbaranCliente; + IDAlbaranAux: Integer;} +begin + inherited; + +// Respuesta := JsNuevoAlbaranDialog.Execute; + +// if Respuesta <> IDCANCEL then +// begin +// case JsNuevoAlbaranDialog.CustomButtonResult of +// 200 : begin // Utilizar un pedido +// if ElegirPedidoYGenerarAlbaranCli(IDAlbaranAux) then +// actRefrescar.Execute; +// end; +// 100 : begin // Albaran nuevo vacio + if FController.Anadir(Albaranes) then + FController.Ver(Albaranes); +// end; +// end; +// end; +end; + +procedure TfEditorAlbaranesCliente.OnListaAnosChange(Sender: TObject; const Text: string); +begin + Controller.FiltrarAno(Albaranes, DynWhereDataTable, Text); + if Albaranes.DataTable.Active then + RefrescarInterno; +end; + +procedure TfEditorAlbaranesCliente.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := FWindowCaption + ' - ' + AppFactuGES.EmpresaActiva.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorAlbaranesCliente.PrevisualizarInterno; +var + Respuesta : Integer; + AAlbaranes: IBizAlbaranCliente; + AllItems: Boolean; +begin + AAlbaranes := Nil; + AllItems := False; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + //Si esta agrupado solo podré imprimir la lista de elementos visibles + if not ViewGrid.esSeleccionCeldaDatos then + inherited + else + begin + Respuesta := JsPrevisualizarDialog.Execute; + if Respuesta <> IDCANCEL then + begin + case JsPrevisualizarDialog.CustomButtonResult of + 200 : begin // Lista de elementos visibles + inherited; + end; + 100 : begin // Elemento Seleccionado + if AllItems then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Albaranes as ISeleccionable).SelectedRecords); + AAlbaranes := (Controller as IAlbaranesClienteController).ExtraerSeleccionados(Albaranes) as IBizAlbaranCliente; + end + else + AAlbaranes := Albaranes; + + if Assigned(AAlbaranes) then + FController.Preview(AAlbaranes, AllItems); + end; + end; + end; + end; +end; + +procedure TfEditorAlbaranesCliente.RefrescarInterno; +begin + //Volvemos a cargar los años de los albaranes + if Assigned(FController) then + ListaAnos := FController.DarListaAnosAlbaranes; + + inherited; +end; + +procedure TfEditorAlbaranesCliente.SetController(const Value: IAlbaranesClienteController); +begin + FController := Value; + + if Assigned(FController) then + ListaAnos := FController.DarListaAnosAlbaranes; +end; + +procedure TfEditorAlbaranesCliente.SetAlbaranes(const Value: IBizAlbaranCliente); +begin + FAlbaranes := Value; + + if Assigned(FAlbaranes) then + begin + //Se guarda el where de la sentencia origen, por si el editor tiene filtros que + //afecten a este where y en un futuro se desea volver al where origen (filtro de año)) + DynWhereDataTable := FAlbaranes.DataTable.DynamicWhere.Xml; + + dsDataTable.DataTable := FAlbaranes.DataTable; + if Assigned(ViewGrid) then + (ViewGrid as IViewAlbaranesCliente).Albaranes := Albaranes; + end; +end; + +end. diff --git a/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesClienteReport.dcu b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesClienteReport.dcu new file mode 100644 index 0000000..aa22501 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesClienteReport.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesClienteReport.dfm b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesClienteReport.dfm new file mode 100644 index 0000000..3926992 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesClienteReport.dfm @@ -0,0 +1,16 @@ +inherited fEditorAlbaranesClientePreview: TfEditorAlbaranesClientePreview + Caption = 'Previsualizar el albar'#225'n de cliente' + ExplicitWidth = 320 + ExplicitHeight = 240 + PixelsPerInch = 96 + TextHeight = 13 + inherited TBXDock: TTBXDock + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 540 + object TBXItem58: TTBXItem [1] + Action = actExportarRTF + Images = SmallImages + end + end + end +end diff --git a/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesClienteReport.pas b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesClienteReport.pas new file mode 100644 index 0000000..97b1850 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesClienteReport.pas @@ -0,0 +1,45 @@ +unit uEditorAlbaranesClienteReport; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorPreview, frxExportImage, frxExportPDF, frxDCtrl, frxClass, +// frxDMPExport, frxGradient, frxChBox, frxCross, frxRich, frxChart, frxOLE, +// frxBarcode, JvAppStorage, JvAppRegistryStorage, JvComponentBase, + JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, + TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, + ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uIEditorAlbaranesClientePreview, + JvExComCtrls, JvStatusBar, frxDMPExport, frxGradient, frxChBox, frxCross, + frxRich, frxOLE, frxBarcode, JvAppStorage, JvAppRegistryStorage, + JvComponentBase, frxExportText, frxExportRTF, frxExportMail, frxExportXLS; + +type + TfEditorAlbaranesClientePreview = class(TfEditorPreview, IEditorAlbaranesClientePreview) + TBXItem58: TTBXItem; + procedure actExportarRTFExecute(Sender: TObject); + end; + + +implementation + +{$R *.dfm} + +uses + uAlbaranesClienteReportController, uDialogUtils; + +procedure TfEditorAlbaranesClientePreview.actExportarRTFExecute( + Sender: TObject); +var + I: Integer; +begin + // inherited; <- No llamar al padre + if not Assigned(Controller) then + raise Exception.Create('No se ha asignado el controlador necesario'); + + for I := 0 to ListaID.Count - 1 do + if (Controller as IAlbaranesClienteReportController).ExportToWord(ListaID[I]) then + ShowInfoMessage('El albarn se ha exportado correctamente.'); +end; + +end. diff --git a/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesDevCliente.dcu b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesDevCliente.dcu new file mode 100644 index 0000000..084a483 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesDevCliente.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesDevCliente.dfm b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesDevCliente.dfm new file mode 100644 index 0000000..2514315 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesDevCliente.dfm @@ -0,0 +1,1577 @@ +inherited fEditorAlbaranesDevCliente: TfEditorAlbaranesDevCliente + Caption = 'Lista de '#243'rdenes de devoluci'#243'n a cliente' + ExplicitWidth = 320 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Caption = 'Lista de '#243'rdenes de devoluci'#243'n a cliente' + inherited Image1: TImage + Picture.Data = { + 0B546478504E47496D61676589504E470D0A1A0A0000000D4948445200000018 + 000000180806000000E0773DF8000000017352474200AECE1CE9000000046741 + 4D410000B18F0BFC6105000000206348524D00007A26000080840000FA000000 + 80E8000075300000EA6000003A98000017709CBA513C000002F049444154484B + B5965B4854511486D7786348530B45CAECA2946056265156965254820F41E44B + 2F459787822C7BE8A57A30AA07C910349DA1088B082B485249B4902043492AC3 + D2F23A8D638D393A25669A97BFBD8EECE9343367668C3AB0389C3DE7FCDFBAEC + B5F6E800D07FBD1820ED766523FE95494D87382FB0F8DF5C939353181F9FC4E8 + E84FC5D6EE3ACA328AB65B406A4E1DD4E609AA7E6F78640C85B7AABD037C8D82 + 3D6740BAC1044A32C0FE6DD43780BB089CD7F899D3C2771667B30D8DF806F014 + C1F4D4342626A6F0636C42C937A7853D6771AB6DD837803B6FBDAD7104BD56BB + EF0019F66CEEA6BE41DF01BE165ABEC711769B6DB30368A5452DCAEFF0C5F70E + D3C0EC005A51149C48C7C5D3A1301C208F76366BDBEF31A1EE64B557EE1A8EC5 + BBEAF5F8FE9C60AF23F457137ACB099D6584D652C26BC30CD82BC05D04FCA1FD + 11C17C2A142D3951303FFC53FC5531A12C3304E5497AE4A5AC748D4076A7CCAB + 3A0216BF9E43A84C254C6F0A01B292716FF74218B367D66F1EF2434572309EC6 + 84A03061097233525C01B23BB5BCE7B4988B089624822D418791EDB1683A1881 + 866C3FBC5C35077591FEB89CBC02B5973452C4DD296BE00C9179E5DCE6A5AD41 + CBD200B4C510DE2784A131468FC7F375C85B17AF886B02B8F5B5B62703380269 + CD674441A3FDF02C82F0649E104D9B11F60850CF95BEFEAF307F1A428F65109D + 1F07949D21C57B2B7468DABF080DD141A80D2754CC25DC0926DCCFF2029043CB + 59FC43F717076050EC22D391E568DF188B9A5042CD06611984527F8251274002 + 52755EA3063C11DD89B776581D00CBB17058D3E214CFABE2082DA2E8EF6E100A + B604C218267A409C631736AF46315190CB89C613918716CF156EFDB6AE7EBC6D + FF8C376D7D0E404F6624EA1704E281107B21EAC0E2CD46C2957D7A5C3B4CC85F + 1CC5106B09D17117809C887CF4399BAC41D1D620DC15A929490C5044D5C63B8C + CF64E1FD8EAB4462333BFDABE01FB5ECE4DE78A5FDCFED49477EE232E4EE5CAF + 3CAB4D7E2B002400F40B7DA11C32DBE756950000000049454E44AE426082} + end + end + inherited TBXDock: TTBXDock + inherited TBXTMain2: TTBXToolbar + ExplicitWidth = 124 + end + end + inherited EditorActionList: TActionList + inherited actNuevo: TAction + ImageIndex = 24 + end + inherited actGenerarFactura: TAction + Caption = 'Generar abono...' + end + end + inherited SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000001744944415478DA63FCFFFF3FC394 + C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F19ACFDF319CEED + 98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC5BBA09D3007CE0 + D7EFBF609B4178C98683D80D40770136B0AED69461E59623B80D80391B04FE01 + E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D760CCEE587E036 + 07359F66585A6AC0B069CF49FC06C06CFE7CFB30C3CBC5B1F87CE48261C0C15E + 0706FBE20360D999EC710CCA0D350CECECE9183A7FFE9CC9302FB18501C30090 + B3617E7ED6A6C6A0D5FE18AC180E7EFC00E2EF0CB3771930306F4F45189011E5 + C6E0587A10C516900B500C0069FEF00E62C02927540392C39CC1B6C2423DA4F5 + 0CAA0130CD60037E32CCBE15846A405C90034A9445769E4718F0712242F3870F + 1017BC4A413520CA0FE177B841338C20063CAC47688679E15719AA01A15ED60C + ABB71D450903A76BA9E05898BD4A1E6B1CA218004A18E8409BF70D8315EB719C + 89C05E9EC10500D1295EA9BD5461080000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B3A00000B3A01647F570D0000015D4944415478DA + 63FCFFFF3F030830323232C0C0CEB58DCA2F6E6CBDF3FEF129B818C30F061490 + 3FFF3F58032336032E9C58FD9F8B47904155DB192EF6FFD72B867F9F2F31FCB9 + E3CA3063061E0380B6DBB373F01CB076CD66606165C7AAB96001923E6403809A + 9979F925FEC8299B32482B18E2D40C16C7614032D08039164EA97017810CF875 + 5E1CAC196F18EC5AD7C40F74FA073DB36006411179B8E6FF3F5F32FCBEA687A2 + 196B18000D681797D6AAD06008852B64D5BA0434E4251833000DFBFBA2087718 + 2CEF76FFFFE1E119865F5FDF81F9B993706BC61906D0589056D7D07F2223CE8D + 53332103DAC5C4A52B749438706AC6170BECACAC6C3FF4547918F8397FE3D48C + 3F1A79F9E7982A7F66F8FBBA16A7669C061CDB35E1BF9CAA1D83C84B23BC9AB1 + 1A008C466BA0F38F5888D632CC9AF907AF66AC065C383AF73FC7B7150C3B97ED + 21A819AB0137CE2CFBBF776E2643CE8C4F0435231B00004A4C11F0D3652A8300 + 00000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000001974455874536F6674776172650041646F626520496D616765526561 + 647971C9653C000002034944415478DA63FCFFFF3FC394C53BFE33900172623D + 1819610600394469FAF3F71FC3EF3F7F19ACFDF319CEED98866A806DD17E14C5 + 87FB1CC134B2F8AE761B86B9ABF632CC5BBA09D3007CE0D7EFBF609B4178C986 + 83D80D40770136B0AED69461E59623B80D80391B04FE01E5FEFCF907B7D9B7FE + 04C3AA4A6386B53B8EE13700E692BD9D760CCEE587E03607359F66585A6AC0B0 + 69CF49FC06C06CFE7CFB30C3CBC5B1F87CE48261C0C15E0706FBE20360D999EC + 710C5CD2D60C3C37FF333C0DCF66D0B7B1038B7F7D709FE14E4B3CC385339718 + 300C00391BE6E7676D6A0C5C6FCD19642EEF60782BABC1F035CF9581E3D53B86 + A78DEB186E73A9327C927A88302023CA8DC1B1F4208AFB402E502EB9C0702FC5 + 9A81E3F22D86DF02620CAF9EBF6360B6546538EBD7C3C0BC230D6140729833D8 + 5658A887B49E011BA0D5FE98E1C1A54686CF213D0C1FDE7D61F8CCC8C2603A2D + 8861E58F4406E6EDA90803E2821C50A22CB2F33CD800F9D28B0C379AA2197EAF + 3BC8F0919191E1D3BB9F0C2C527C0C4FF36730301F29461810E587F03BDCA019 + 460CA2FFBC18DEEDDCC870F7CD6706E33667861F4F5E331CE9BFC0F0894B8A81 + C1E83BC280502F6B86D5DB8EA28481D3B55486FFFBFE313CB8FE8CE1715C25C3 + 1F73482C307CFEC4C0BC643A03E39B3308034009031D68F3BE61B07DB28781E9 + E36F86DF060298F2BFBE4700003F4A71F77ECF59220000000049454E44AE4260 + 82} + Name = 'PngImage24' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001BE4944415478DA + 63FCFFFF3F032D0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80 + F83F980601EBC07C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3 + C275FB19E62DDD84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD978 + 90B005D87C802E06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9 + E0FF3F605803F11FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F1 + 8E70860DBB4E106701CCDBA480075B431936EF3D459C05F8520E3600D2B3A850 + 8F61EB81D3C45B802BA86096C3E4616AE7E7EB32EC387486763E989DA3CDB0E7 + E839DAF96046A626C3FE131768E783A969EA0C874E5FC26F4184A729387792E3 + 838929AA0CC7CE5EC16F41A89B09387792E3839E042586D317AFE3B720C8D988 + C1ADFA08591674C62A309CBB7213BF057E8E060C5EB5C7F01A06B27CC1913F70 + 7E820D0BD882B62839868BD76FE3B7C0DB4E0F5EAEC0CA1850D9032BF393275F + C1881F18BF394296E1CACD3BF82DF0B0D6C16938884E9B760D6BF0116D818BA5 + 164EC3411667CDB88133E888B2C0DE541D6CD8BFBF88621966E1BFFFFFB1061F + 322068818D912AB844A404E0B5A077CA428A0C8701980500619929EF09CFCE42 + 0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000001B94944415478DA + 63FCFFFF3F032D01E38058C0C8C888C2DFB9B651F9C58DAD77DE3F3E85AAF007 + 7643F3E7FF6724C9828B27D7FCE7E0E46350D3754511FFFFEB15C3BFCF9718FE + 7FB90CC40F18FE7D99C43063068916005D6FCEC2CA71C2CE239F8185959DA0E1 + 050B50CD2468C1C903F3FF4B486B32C8A9986375FDBF179B510C07CB116B01D0 + F5C15C3C426BAC5DB3512CC56738D116000D67061AFE4755DB99411CE803620D + 27C5827C0161B90966F6091841F3E7762BDC7064407410ED5AD7C40F8CD80FC6 + D6D10CFC42D22886FFFFF992E1EFA339600B9001497100B4A05B4246BB44CF2C + 18C3F0FFBF209801C4474B3D4407D1F26EF7FF1F1E9E61F8F5F51D5C2C77D225 + A20C272915415392B4BA9ACC13194939A20C27C7826E7131C1126D6521A20C27 + C902A0E1DC2C2CCC5F0CD5051878397E116538A916E40BF0734F3052FCCEF0FF + FB6BA20C27DA027046E364FFA322C5C420CCF28468C349B1C01F68C10633B967 + C0A021DE70A22D38B9A7E7BF28DF1F06A97F1524194E9405C08C660C8CDC3316 + 624D0CB367FE22C970A22CB87864F27FB66F5B18762DDF45B2E1445970E3F4F4 + FF7BE75530E4CCF844B2E14459404D40730B006B5E9AE0A24640FE0000000049 + 454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000001974455874536F6674776172650041646F626520496D616765526561 + 647971C9653C000003294944415478DAB5956B4814511886DFD15557DD753531 + 352B495129723149222DAF61A921249A4216F4C37F81194445445028F5A32088 + 2E109991F443BAAB98B7F55A9AA1A549B4D2C5CAD2557775BDB4D7D9CE991A2F + EDACED62BD70383373CE7CCF79BF73E61BC662B1E07F8A590828AFECFC67B47D + BBB730820032E07030B39925CDC2F554717B0AD15D73C53660FB11C5A200AD17 + 936C065F38B7FA6C2CCAEE2B70B3FCF1D20047569E78B419A28810345DAB81A6 + F900EE3C6AFE3B40C8C19FCFA81ACEC523E5780BDA144AEE7EAC311F772B5B97 + E7C0C2925C936622ABA7D72696FDBD072C775D51DDEEB8037B445D7CA9C9C5C3 + DA0EFB00BC6D47F4A92A074F1A5ED80758EAE40889BE73BB488EAAA62EFB01B6 + 52C5C3F9717E6E6961246A5A5E2EDFC1A5C3499871EB86AF4ABBA4ABAF33C98E + 39E0A125C764C8CB342080D1C1A0C7AFA603F47C4F5A67871D00215D3FC82077 + 2F3055EF85498B3B64892360D8F9E0BA5940592581DB900903E2506B405E5A0C + F7750A39C8D72443E403F8770119AC044C50382A0CC3D0047F83B333E0A27582 + 4F8F3BBC4619F4497DA15E1B680DC849DDCC7D9D420EE8EAF71700E33D80D30D + 406C60200E5C87B7C15A98246AB82AC4981CD6A37B4D28E4D94AB4F408A4282B + 251AA927DB6C02685EA9BC54E3481BEC87C86C02239561624A8FA9193D7A42C2 + 1195F58E9B2308C84C8A42FAA96782F9A729A20E780D5493D271CB09D37A167A + 33C0CAC9C39DF3E382808C78F95C5DE16B0CAD3DB4AF3FED3707508F3318BE17 + 0453BD8AACDC001D014C93CD764907649B9600EC8ADB28189CFE501467567200 + DD2439450FC2607863C6C7FE0FC07AF232D9FCEF75E4341188349BA43012E8E8 + 1300ECD8BA413038ED5B8A033880A6DC1BA27E5FF4BE7E0F832F105C4436DD03 + A82B75817BAF1116B280B1383956B4F7BA5901126222B860AC79BE2CF3C0E7E7 + 833880AAC40F43DD1350CD1AB1FA10E0190A188D4063B318520F1DB4B5FEF0FC + 3C324222175B01B64587711551482E8D691CA0F4842BFC5E19C83917E1875CB4 + 688EDA188B2A6D040A9E5E4D259147AD00172E97C19612A48D90304160881B6F + E520A657F9C128932C9A43835311004323FF04D4D3607A0FD2DBC40000000049 + 454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end> + Bitmap = {} + end + inherited JsImprimirDialog: TJSDialog + CustomButtons = < + item + Caption = 'Imprimir la orden/es de devoluci'#243'n seleccionada/s' + Value = 100 + Default = True + end + item + Caption = 'Imprimir la lista de ordenes de devoluci'#243'n actual' + Value = 200 + end> + end + inherited JsPrevisualizarDialog: TJSDialog + CustomButtons = < + item + Caption = 'Previsualizar la orden/es de devoluci'#243'n seleccionada/s' + Value = 100 + Default = True + end + item + Caption = 'Previsualizar la lista de '#243'rdenes de devoluci'#243'n actual' + Value = 200 + end> + end + inherited JsListaAlbaranesNoEliminados: TJSDialog + Instruction.Text = + 'Las siguientes ordenes de devoluci'#243'n no han podido ser eliminada' + + 's, porque tiene una factura asociada' + end +end diff --git a/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesDevCliente.pas b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesDevCliente.pas new file mode 100644 index 0000000..692c0c9 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesDevCliente.pas @@ -0,0 +1,68 @@ +unit uEditorAlbaranesDevCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorAlbaranesCliente, JSDialog, Menus, DB, uDADataTable, + JvAppStorage, JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, JvExComCtrls, JvStatusBar, TBX, + TB2ExtItems, TBXExtItems, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, + JvExControls, JvComponent, JvNavigationPane, uIEditorAlbaranesDevCliente, + uDAInterfaces, dxGDIPlusClasses; + +type + TfEditorAlbaranesDevCliente = class(TfEditorAlbaranesCliente, IEditorAlbaranesDevCliente) + procedure actEliminarUpdate(Sender: TObject); + protected + procedure AsignarVista; override; + procedure NuevoInterno; override; + public + procedure PonerTitulos(const ATitulo: string = ''); override; + constructor Create(AOwner: TComponent); override; + end; + +implementation +{$R *.dfm} + +uses + uDataModuleUsuarios, uViewAlbaranesDevCliente, uFactuGES_App; + +{ TfEditorAlbaranesDevCliente } + +procedure TfEditorAlbaranesDevCliente.actEliminarUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := not (FAlbaranes.ID_FACTURA > 0); +end; + +procedure TfEditorAlbaranesDevCliente.AsignarVista; +begin + ViewGrid := CreateView(TfrViewAlbaranesDevCliente) as IViewAlbaranesDevCliente; +end; + +constructor TfEditorAlbaranesDevCliente.Create(AOwner: TComponent); +begin + inherited; + + FHeaderText := 'Lista de rdenes de devolucin a cliente'; + FWindowCaption := FHeaderText; +end; + +procedure TfEditorAlbaranesDevCliente.NuevoInterno; +begin +// inherited; + if FController.AnadirAlbaranDev(Albaranes) then + FController.Ver(Albaranes); +end; + +procedure TfEditorAlbaranesDevCliente.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := FWindowCaption + ' - ' + AppFactuGES.EmpresaActiva.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +end. diff --git a/Source/Modulos/Albaranes de cliente/Views/uEditorElegirAlbaranesCliente.dcu b/Source/Modulos/Albaranes de cliente/Views/uEditorElegirAlbaranesCliente.dcu new file mode 100644 index 0000000..e2df36a Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Views/uEditorElegirAlbaranesCliente.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Views/uEditorElegirAlbaranesCliente.dfm b/Source/Modulos/Albaranes de cliente/Views/uEditorElegirAlbaranesCliente.dfm new file mode 100644 index 0000000..aa60e0c --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorElegirAlbaranesCliente.dfm @@ -0,0 +1,239 @@ +inherited fEditorElegirAlbaranesCliente: TfEditorElegirAlbaranesCliente + Caption = 'Seleccionar albar'#195#161'n de cliente' + ClientWidth = 790 + ExplicitWidth = 798 + ExplicitHeight = 538 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Top = 139 + Width = 790 + Visible = False + ExplicitLeft = -8 + ExplicitTop = 280 + ExplicitWidth = 790 + inherited Image1: TImage + Left = 763 + ExplicitLeft = 629 + end + end + inherited TBXDock: TTBXDock + Top = 64 + Width = 790 + ExplicitTop = 91 + ExplicitWidth = 790 + inherited tbxMain: TTBXToolbar + Left = 359 + ExplicitLeft = 359 + ExplicitWidth = 263 + inherited TBXItem2: TTBXItem + Visible = False + end + inherited TBXSeparatorItem1: TTBXSeparatorItem + Visible = False + end + inherited TBXItem5: TTBXItem + Visible = False + end + inherited TBXItem4: TTBXItem + Visible = False + end + inherited TBXSeparatorItem6: TTBXSeparatorItem + Visible = False + end + inherited TBXItem7: TTBXItem + Visible = False + end + inherited TBXSeparatorItem3: TTBXSeparatorItem + Visible = False + end + inherited TBXItem23: TTBXItem + Visible = False + end + inherited TBXSeparatorItem17: TTBXSeparatorItem + Visible = False + end + inherited TBXItem3: TTBXItem + Visible = False + end + inherited TBXSeparatorItem10: TTBXSeparatorItem + Visible = False + end + inherited TBXSeparatorItem2: TTBXSeparatorItem + Visible = False + end + inherited TBXItem6: TTBXItem + Visible = False + end + inherited TBXItem36: TTBXItem + Action = actAnchoAuto2 + end + end + inherited tbxFiltro: TTBXToolbar + Top = 23 + DockPos = -185 + DockRow = 1 + ExplicitTop = 23 + ExplicitWidth = 359 + inherited TBXItem34: TTBXItem + Action = actQuitarFiltro2 + end + inherited TBXItem37: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 790 + end + inherited TBXTMain2: TTBXToolbar + Left = 318 + Visible = False + ExplicitLeft = 318 + end + end + inherited StatusBar: TJvStatusBar + Width = 790 + ExplicitWidth = 790 + end + object pnlHeader: TPanel [3] + Left = 0 + Top = 0 + Width = 790 + Height = 64 + Align = alTop + BevelOuter = bvNone + Color = clWhite + Padding.Left = 25 + Padding.Top = 8 + Padding.Right = 25 + Padding.Bottom = 8 + ParentBackground = False + TabOrder = 4 + ExplicitTop = 27 + object lblTitle: TLabel + AlignWithMargins = True + Left = 25 + Top = 8 + Width = 740 + Height = 13 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 0 + Margins.Bottom = 8 + Align = alTop + Caption = 'Seleccione el albar'#225'n de cliente' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + ExplicitWidth = 177 + end + object lblComments: TLabel + AlignWithMargins = True + Left = 50 + Top = 29 + Width = 715 + Height = 24 + Margins.Left = 25 + Margins.Top = 0 + Margins.Right = 0 + Align = alClient + ExplicitWidth = 3 + ExplicitHeight = 13 + end + end + inline frViewBarraSeleccion1: TfrViewBarraSeleccion [4] + Left = 0 + Top = 449 + Width = 790 + Height = 36 + Align = alBottom + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 449 + ExplicitWidth = 790 + ExplicitHeight = 36 + inherited JvFooter1: TJvFooter + Width = 790 + Height = 36 + ExplicitWidth = 790 + ExplicitHeight = 36 + inherited bSeleccionar: TJvFooterBtn + Left = 578 + Top = 3 + ExplicitLeft = 444 + ExplicitTop = 3 + end + inherited bCancelar: TJvFooterBtn + Left = 682 + Top = 4 + ExplicitLeft = 682 + ExplicitTop = 4 + end + end + inherited BarraSeleccionActionList: TActionList + inherited actSeleccionar: TAction + OnExecute = frViewBarraSeleccion1actSeleccionarExecute + OnUpdate = frViewBarraSeleccion1actSeleccionarUpdate + end + inherited actCancelar: TAction + OnExecute = frViewBarraSeleccion1actCancelarExecute + end + end + end + inherited EditorActionList: TActionList [5] + end + inherited SmallImages: TPngImageList [6] + end + inherited LargeImages: TPngImageList [7] + end + inherited JvFormStorage: TJvFormStorage [8] + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [9] + end + inherited dsDataTable: TDADataSource [10] + Left = 16 + Top = 168 + end + inherited StatusBarImages: TPngImageList [11] + end + inherited GridPopupMenu: TPopupMenu [12] + Left = 56 + Top = 192 + end + inherited JsNuevoAlbaranDialog: TJSDialog [13] + end + inherited JsImprimirDialog: TJSDialog [15] + end + object EditorSeleccionActionList: TActionList + Images = SmallImages + Left = 152 + Top = 192 + object actBuscar2: TAction + Category = 'Buscar' + Caption = 'Buscar' + ImageIndex = 10 + ShortCut = 114 + end + object actQuitarFiltro2: TAction + Category = 'Buscar' + Caption = 'Quitar filtro y ver todo' + ImageIndex = 19 + OnExecute = actQuitarFiltro2Execute + end + object actAnchoAuto2: TAction + Category = 'Ver' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 21 + OnExecute = actAnchoAuto2Execute + end + end +end diff --git a/Source/Modulos/Albaranes de cliente/Views/uEditorElegirAlbaranesCliente.pas b/Source/Modulos/Albaranes de cliente/Views/uEditorElegirAlbaranesCliente.pas new file mode 100644 index 0000000..14b6df7 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorElegirAlbaranesCliente.pas @@ -0,0 +1,118 @@ +unit uEditorElegirAlbaranesCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, DB, uDADataTable, Menus, JvAppStorage, JvAppRegistryStorage, + JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns, + ActnList, uCustomView, uViewBase, uViewGridBase, uViewGrid, + uViewAlbaranesCliente, ComCtrls, TB2ExtItems, TBXExtItems, TBX, + TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvComponent, + JvNavigationPane, uViewBarraSeleccion, StdCtrls, + uEditorAlbaranesCliente, uBizAlbaranesCliente, uIEditorElegirAlbaranesCliente, + JvExComCtrls, JvStatusBar, JSDialog, uDAInterfaces; + +type + TfEditorElegirAlbaranesCliente = class(TfEditorAlbaranesCliente, IEditorElegirAlbaranesCliente) + frViewBarraSeleccion1: TfrViewBarraSeleccion; + lblTitle: TLabel; + lblComments: TLabel; + EditorSeleccionActionList: TActionList; + actBuscar2: TAction; + actQuitarFiltro2: TAction; + actAnchoAuto2: TAction; + pnlHeader: TPanel; + procedure frViewBarraSeleccion1actSeleccionarUpdate(Sender: TObject); + procedure frViewBarraSeleccion1actCancelarExecute(Sender: TObject); + procedure frViewBarraSeleccion1actSeleccionarExecute(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure actAnchoAuto2Execute(Sender: TObject); + procedure actQuitarFiltro2Execute(Sender: TObject); + + protected + function GetAlbaranesClienteSeleccionados: IBizAlbaranCliente; + procedure SetViewGrid(const Value: IViewGridBase); override; + procedure SetMensaje (const AValue: String); + function GetMensaje: String; + + public + property Mensaje : String read GetMensaje write SetMensaje; + property AlbaranesClienteSeleccionados: IBizAlbaranCliente read GetAlbaranesClienteSeleccionados; + end; + +implementation + +uses + uEditorGridBase, cxGridCustomTableView, uIntegerListUtils, uDBSelectionListUtils, + uGridStatusUtils, uEditorBase, uAlbaranesClienteController, cxGridLevel; + +{$R *.dfm} + +{ TfEditorElegirAlbaranesCliente } + +procedure TfEditorElegirAlbaranesCliente.actAnchoAuto2Execute(Sender: TObject); +begin + inherited; + actAnchoAuto.Execute; +end; + +procedure TfEditorElegirAlbaranesCliente.actQuitarFiltro2Execute(Sender: TObject); +begin + inherited; + actQuitarFiltro.Execute; +end; + +procedure TfEditorElegirAlbaranesCliente.FormShow(Sender: TObject); +begin + inherited; + EditorActionList.State := asSuspended; +end; + +procedure TfEditorElegirAlbaranesCliente.frViewBarraSeleccion1actCancelarExecute( + Sender: TObject); +begin + inherited; + Close; +end; + +procedure TfEditorElegirAlbaranesCliente.frViewBarraSeleccion1actSeleccionarExecute( + Sender: TObject); +begin + inherited; + ModalResult := mrOk; +end; + +procedure TfEditorElegirAlbaranesCliente.frViewBarraSeleccion1actSeleccionarUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (ViewGrid._FocusedView.Controller.SelectedRowCount > 0) +end; + +function TfEditorElegirAlbaranesCliente.GetAlbaranesClienteSeleccionados: IBizAlbaranCliente; +begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Albaranes as ISeleccionable).SelectedRecords); + // En SelectedRecords tengo los ID de las filas seleccionadas del grid + Result := (Controller as IAlbaranesClienteController).ExtraerSeleccionados(Albaranes) as IBizAlbaranCliente; +end; + +function TfEditorElegirAlbaranesCliente.GetMensaje: String; +begin + Result := lblComments.Caption; +end; + +procedure TfEditorElegirAlbaranesCliente.SetMensaje(const AValue: String); +begin + lblComments.Caption := AValue; +end; + +procedure TfEditorElegirAlbaranesCliente.SetViewGrid(const Value: IViewGridBase); +begin + inherited; + //Para que no salgan las pestaas de filtrado + ViewGrid._Grid.RootLevelOptions.DetailTabsPosition := dtpNone; + ViewGrid.OnDblClick := frViewBarraSeleccion1.actSeleccionar.OnExecute; +end; + +end. diff --git a/Source/Modulos/Albaranes de cliente/Views/uEditorElegirArticulosAlbaranCliente.dcu b/Source/Modulos/Albaranes de cliente/Views/uEditorElegirArticulosAlbaranCliente.dcu new file mode 100644 index 0000000..6308da5 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Views/uEditorElegirArticulosAlbaranCliente.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Views/uEditorElegirArticulosAlbaranCliente.dfm b/Source/Modulos/Albaranes de cliente/Views/uEditorElegirArticulosAlbaranCliente.dfm new file mode 100644 index 0000000..b42d731 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorElegirArticulosAlbaranCliente.dfm @@ -0,0 +1,5 @@ +inherited fEditorElegirArticulosAlbaranCliente: TfEditorElegirArticulosAlbaranCliente + Caption = 'fEditorElegirArticulosAlbaranCliente' + PixelsPerInch = 96 + TextHeight = 13 +end diff --git a/Source/Modulos/Albaranes de cliente/Views/uEditorElegirArticulosAlbaranCliente.pas b/Source/Modulos/Albaranes de cliente/Views/uEditorElegirArticulosAlbaranCliente.pas new file mode 100644 index 0000000..cec09f7 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorElegirArticulosAlbaranCliente.pas @@ -0,0 +1,35 @@ +unit uEditorElegirArticulosAlbaranCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorElegirArticulos, Menus, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, + StdActns, ActnList, uCustomView, uViewBase, uViewBarraSeleccion, ComCtrls, + JvExComCtrls, JvStatusBar, TBX, TB2ExtItems, TBXExtItems, TB2Item, TB2Dock, + TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, + uIEditorElegirArticulosAlbaranesCliente, uDAInterfaces, + uViewGridBase, uViewGrid, uViewArticulos, StdCtrls; + +type + TfEditorElegirArticulosAlbaranCliente = class(TfEditorElegirArticulos, IEditorElegirArticulosAlbaranesCliente) + public + constructor Create(AOwner: TComponent); override; + end; + + +implementation +{$R *.dfm} + +uses uViewElegirArticulosAlbaranesCliente; + +{ TfEditorElegirArticulosAlbaranCliente } + +constructor TfEditorElegirArticulosAlbaranCliente.Create(AOwner: TComponent); +begin + inherited; + ViewGrid := CreateView(TfrViewElegirArticulosAlbaranesCliente) as IViewElegirArticulosAlbaranesCliente; +end; + +end. diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranCliente.dcu b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranCliente.dcu new file mode 100644 index 0000000..0a16f13 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranCliente.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranCliente.dfm b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranCliente.dfm new file mode 100644 index 0000000..c90afe2 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranCliente.dfm @@ -0,0 +1,892 @@ +inherited frViewAlbaranCliente: TfrViewAlbaranCliente + Width = 903 + Height = 506 + OnCreate = CustomViewCreate + OnDestroy = CustomViewDestroy + ExplicitWidth = 903 + ExplicitHeight = 506 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 903 + Height = 506 + Align = alClient + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + DesignSize = ( + 903 + 506) + object Label1: TLabel + Left = 22 + Top = 450 + Width = 299 + Height = 26 + Caption = + 'Si el proveedor entrega los materiales directamente al cliente, ' + + 'no se necesario asociar el albar'#225'n a un almac'#233'n.' + WordWrap = True + end + object edtFechaAlbaran: TcxDBDateEdit + Left = 116 + Top = 82 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_ALBARAN' + DataBinding.DataSource = DADataSource + Properties.ImmediatePost = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 2 + Width = 336 + end + object memObservaciones: TcxDBMemo + Left = 478 + Top = 356 + Anchors = [akLeft, akTop, akRight, akBottom] + DataBinding.DataField = 'OBSERVACIONES' + DataBinding.DataSource = DADataSource + Properties.ScrollBars = ssVertical + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 21 + Height = 69 + Width = 403 + end + object eReferencia: TcxDBTextEdit + Left = 116 + Top = 28 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REFERENCIA' + DataBinding.DataSource = DADataSource + Enabled = False + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 0 + Width = 336 + end + object eCalle: TcxDBTextEdit + Left = 116 + Top = 224 + DataBinding.DataField = 'CALLE' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 8 + Width = 336 + end + object eCodigoPostal: TcxDBTextEdit + Left = 383 + Top = 251 + DataBinding.DataField = 'CODIGO_POSTAL' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 10 + Width = 65 + end + object ePersonaContacto: TcxDBTextEdit + Left = 116 + Top = 305 + DataBinding.DataField = 'PERSONA_CONTACTO' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 12 + Width = 336 + end + object eTlfTrabajo: TcxDBTextEdit + Left = 116 + Top = 332 + DataBinding.DataField = 'TELEFONO' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 13 + Width = 336 + end + object bElegirDireccion: TBitBtn + Left = 276 + Top = 359 + Width = 172 + Height = 23 + Action = actElegirDireccion + Caption = 'Elegir una direcci'#243'n de env'#237'o...' + TabOrder = 14 + end + object Button1: TButton + Left = 316 + Top = 138 + Width = 132 + Height = 23 + Action = actVerPedidoCli + TabOrder = 6 + end + object eReferenciaPedidoCli: TcxTextEdit + Left = 116 + Top = 138 + Anchors = [akLeft, akTop, akRight] + Enabled = False + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 5 + Width = 198 + end + object cbFormaPago: TcxDBLookupComboBox + Left = 116 + Top = 109 + DataBinding.DataField = 'ID_FORMA_PAGO' + DataBinding.DataSource = DADataSource + Properties.KeyFieldNames = 'ID' + Properties.ListColumns = < + item + FieldName = 'REFERENCIA' + end> + Properties.ListOptions.GridLines = glNone + Properties.ListOptions.ShowHeader = False + Properties.ListOptions.SyncMode = True + Properties.ListSource = dsFormaPago + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 3 + Width = 198 + end + object bFormasPago: TButton + Left = 316 + Top = 109 + Width = 132 + Height = 23 + Caption = 'Ver las formas de pago...' + TabOrder = 4 + OnClick = bFormasPagoClick + end + object eFechaRecepcion: TcxDBDateEdit + Left = 612 + Top = 299 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_RECEPCION' + DataBinding.DataSource = DADataSource + Properties.ImmediatePost = True + Properties.OnValidate = eFechaRecepcionPropertiesValidate + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 20 + Width = 265 + end + object cbConAlmacen: TCheckBox + Left = 32 + Top = 418 + Width = 179 + Height = 21 + Caption = 'Asociar este albar'#225'n al almac'#233'n:' + TabOrder = 15 + OnClick = cbConAlmacenClick + end + object cbAlmacen: TcxDBLookupComboBox + Left = 217 + Top = 418 + DataBinding.DataField = 'ID_ALMACEN' + DataBinding.DataSource = DADataSource + Properties.KeyFieldNames = 'ID' + Properties.ListColumns = < + item + FieldName = 'NOMBRE' + end> + Properties.ListOptions.GridLines = glNone + Properties.ListOptions.ShowHeader = False + Properties.ListOptions.SyncMode = True + Properties.ListSource = dsAlmacenes + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 16 + Width = 235 + end + object eRefFacturaCli: TcxDBTextEdit + Left = 116 + Top = 167 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REF_FACTURA' + DataBinding.DataSource = DADataSource + Enabled = False + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 7 + Width = 336 + end + object eFechaPrevista: TcxDBDateEdit + Left = 612 + Top = 245 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_PREVISTA_ENVIO' + DataBinding.DataSource = DADataSource + Properties.ImmediatePost = True + Properties.OnValidate = eFechaPrevistaPropertiesValidate + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 18 + Width = 265 + end + object eRefCliente: TcxDBTextEdit + Left = 116 + Top = 55 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REFERENCIA_CLIENTE' + DataBinding.DataSource = DADataSource + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 1 + Width = 336 + end + object eFechaEnvio: TcxDBDateEdit + Left = 612 + Top = 272 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_ENVIO' + DataBinding.DataSource = DADataSource + Properties.ImmediatePost = True + Properties.OnValidate = eFechaEnvioPropertiesValidate + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 19 + Width = 265 + end + object cbProvincia: TcxDBComboBox + Left = 116 + Top = 251 + DataBinding.DataField = 'PROVINCIA' + DataBinding.DataSource = DADataSource + Properties.ImmediatePost = True + Properties.ImmediateUpdateText = True + Properties.PostPopupValueOnTab = True + Properties.OnInitPopup = cbProvinciaPropertiesInitPopup + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 9 + Width = 235 + end + object cbPoblacion: TcxDBComboBox + Left = 116 + Top = 278 + DataBinding.DataField = 'POBLACION' + DataBinding.DataSource = DADataSource + Properties.ImmediatePost = True + Properties.ImmediateUpdateText = True + Properties.PostPopupValueOnTab = True + Properties.OnInitPopup = cbPoblacionPropertiesInitPopup + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 11 + Width = 336 + end + inline frViewDatosYSeleccionClienteAlbaran1: TfrViewDatosYSeleccionClienteAlbaran + Left = 478 + Top = 28 + Width = 406 + Height = 181 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 17 + ReadOnly = False + ExplicitLeft = 478 + ExplicitTop = 28 + ExplicitWidth = 406 + ExplicitHeight = 181 + inherited dxLayoutControl1: TdxLayoutControl + Width = 406 + Height = 181 + ExplicitWidth = 406 + ExplicitHeight = 181 + inherited edtlNombre: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 224 + Width = 224 + end + inherited edtNIFCIF: TcxDBTextEdit + Left = 290 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 290 + end + inherited Button3: TBitBtn + Left = 201 + Top = 139 + ExplicitLeft = 201 + ExplicitTop = 139 + end + inherited edtPersonaContacto: TcxDBTextEdit + Top = 110 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 110 + ExplicitWidth = 283 + Width = 283 + end + inherited edtDireccion: TcxMemo + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 287 + ExplicitHeight = 34 + Height = 34 + Width = 287 + end + inherited Button4: TButton + Left = 370 + ExplicitLeft = 370 + end + inherited Button5: TButton + Left = 370 + Top = 108 + ExplicitLeft = 370 + ExplicitTop = 108 + end + end + inherited dsCliente: TDADataSource + Left = 352 + Top = 32 + end + inherited ActionList1: TActionList + Left = 312 + Top = 32 + end + inherited PngImageList: TPngImageList + Left = 232 + Top = 32 + end + inherited dsAlbaran: TDADataSource + Left = 272 + Top = 32 + end + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Group6: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + AutoAligns = [] + AlignHorz = ahClient + Caption = 'Datos del albar'#225'n' + object dxLayoutControl1Item3: TdxLayoutItem + Caption = 'Referencia:' + Control = eReferencia + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item23: TdxLayoutItem + Caption = 'Ref. cliente:' + Control = eRefCliente + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item2: TdxLayoutItem + Caption = 'Fecha del albar'#225'n:' + Control = edtFechaAlbaran + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group5: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group14: TdxLayoutGroup + ShowCaption = False + Visible = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item4: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Forma de pago' + Control = cbFormaPago + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item15: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + ShowCaption = False + Control = bFormasPago + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group13: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group15: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item7: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Ref. del pedido:' + Control = eReferenciaPedidoCli + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item5: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'Button1' + ShowCaption = False + Control = Button1 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item22: TdxLayoutItem + Caption = 'Ref. factura:' + Control = eRefFacturaCli + ControlOptions.ShowBorder = False + end + end + end + end + object dxLayoutControl1Group8: TdxLayoutGroup + AutoAligns = [] + AlignHorz = ahClient + Caption = 'Direcci'#243'n de entrega' + Visible = False + object dxLayoutControl1Item8: TdxLayoutItem + Caption = 'Calle:' + Control = eCalle + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group4: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group9: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item9: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Provincia:' + Control = cbProvincia + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item10: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'C.P.:' + Control = eCodigoPostal + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item11: TdxLayoutItem + Caption = 'Poblaci'#243'n:' + Control = cbPoblacion + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item12: TdxLayoutItem + Caption = 'Pers. de contacto:' + Control = ePersonaContacto + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item13: TdxLayoutItem + Caption = 'Tel'#233'fono:' + Control = eTlfTrabajo + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item14: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + ShowCaption = False + Control = bElegirDireccion + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Group11: TdxLayoutGroup + Caption = 'Almac'#233'n de origen' + Visible = False + object dxLayoutControl1Group10: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item19: TdxLayoutItem + Offsets.Left = 10 + ShowCaption = False + Control = cbConAlmacen + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item20: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Control = cbAlmacen + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item18: TdxLayoutItem + Offsets.Bottom = 5 + Offsets.Top = 5 + ShowCaption = False + Control = Label1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Group3: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group2: TdxLayoutGroup + Caption = 'Datos del cliente' + object dxLayoutControl1Item1: TdxLayoutItem + Caption = 'New Item' + ShowCaption = False + Control = frViewDatosYSeleccionClienteAlbaran1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group12: TdxLayoutGroup + Caption = 'Fechas de envio y recepci'#243'n' + Visible = False + object dxLayoutControl1Item24: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Fecha prevista de envio:' + Offsets.Left = 10 + Control = eFechaPrevista + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item21: TdxLayoutItem + Caption = 'Fecha de envio:' + Offsets.Left = 10 + Control = eFechaEnvio + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item16: TdxLayoutItem + AutoAligns = [] + AlignHorz = ahClient + Caption = 'Fecha de recepci'#243'n:' + Offsets.Left = 10 + Control = eFechaRecepcion + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group7: TdxLayoutGroup + AutoAligns = [aaHorizontal] + AlignVert = avClient + Caption = 'Observaciones' + object dxLayoutControl1Item6: TdxLayoutItem + AutoAligns = [aaHorizontal] + AlignVert = avClient + Control = memObservaciones + ControlOptions.ShowBorder = False + end + end + end + end + end + object DADataSource: TDADataSource + Left = 48 + end + object ActionList1: TActionList + Left = 24 + Top = 48 + object actElegirDireccion: TAction + Caption = 'Elegir una direcci'#243'n de env'#237'o...' + OnExecute = actElegirDireccionExecute + OnUpdate = actElegirDireccionUpdate + end + object actVerPedidoCli: TAction + Caption = 'Ver el pedido de cliente...' + OnExecute = actVerPedidoCliExecute + OnUpdate = actVerPedidoCliUpdate + end + end + object dsFormaPago: TDADataSource + Left = 16 + end + object dsAlmacenes: TDADataSource + Left = 64 + Top = 192 + end +end diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranCliente.pas b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranCliente.pas new file mode 100644 index 0000000..49d5c64 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranCliente.pas @@ -0,0 +1,496 @@ +unit uViewAlbaranCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, uBizAlbaranesCliente, DB, uDADataTable, uCustomView, + AppEvnts, StdCtrls, Mask, DBCtrls, + + uViewObservaciones, uViewDatosYSeleccionCliente, + cxGraphics, cxDropDownEdit, cxImageComboBox, cxDBEdit, cxContainer, cxEdit, + cxTextEdit, cxMaskEdit, cxCalendar, dxLayoutControl, cxControls, cxMemo, + uViewDireccionEntregaAlbaranCliente, Buttons, ActnList, + +// uBizPedidosCliente, uPedidosClienteController, + + ExtCtrls, cxLookupEdit, cxDBLookupEdit, uBizFormasPago, + cxDBLookupComboBox, uFormasPagoController, uAlmacenesController, uDAInterfaces, + uViewDatosYSeleccionClienteBase, uViewDatosYSeleccionClienteAlbaran; + +type + IViewAlbaranCliente = interface(IViewBase) + ['{F4946DFE-B64C-47C8-96D6-24549E6DAC11}'] + function GetAlbaran: IBizAlbaranCliente; + procedure SetAlbaran(const Value: IBizAlbaranCliente); + property Albaran: IBizAlbaranCliente read GetAlbaran write SetAlbaran; + + function GetViewClienteAlbaran: IViewDatosYSeleccionClienteAlbaran; + property ViewClienteAlbaran: IViewDatosYSeleccionClienteAlbaran read GetViewClienteAlbaran; + end; + + TfrViewAlbaranCliente = class(TfrViewBase, IViewAlbaranCliente) + DADataSource: TDADataSource; + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Item2: TdxLayoutItem; + edtFechaAlbaran: TcxDBDateEdit; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Group2: TdxLayoutGroup; + dxLayoutControl1Item6: TdxLayoutItem; + memObservaciones: TcxDBMemo; + dxLayoutControl1Item3: TdxLayoutItem; + eReferencia: TcxDBTextEdit; + dxLayoutControl1Group6: TdxLayoutGroup; + dxLayoutControl1Group7: TdxLayoutGroup; + dxLayoutControl1Group8: TdxLayoutGroup; + dxLayoutControl1Group3: TdxLayoutGroup; + dxLayoutControl1Item8: TdxLayoutItem; + eCalle: TcxDBTextEdit; + dxLayoutControl1Item10: TdxLayoutItem; + eCodigoPostal: TcxDBTextEdit; + dxLayoutControl1Item12: TdxLayoutItem; + ePersonaContacto: TcxDBTextEdit; + dxLayoutControl1Item13: TdxLayoutItem; + eTlfTrabajo: TcxDBTextEdit; + dxLayoutControl1Group4: TdxLayoutGroup; + dxLayoutControl1Item14: TdxLayoutItem; + bElegirDireccion: TBitBtn; + ActionList1: TActionList; + actElegirDireccion: TAction; + Button1: TButton; + dxLayoutControl1Item5: TdxLayoutItem; + actVerPedidoCli: TAction; + eReferenciaPedidoCli: TcxTextEdit; + dxLayoutControl1Item7: TdxLayoutItem; + dxLayoutControl1Group5: TdxLayoutGroup; + dxLayoutControl1Item4: TdxLayoutItem; + cbFormaPago: TcxDBLookupComboBox; + dxLayoutControl1Item15: TdxLayoutItem; + bFormasPago: TButton; + dsFormaPago: TDADataSource; + dxLayoutControl1Group13: TdxLayoutGroup; + dxLayoutControl1Group14: TdxLayoutGroup; + dxLayoutControl1Item16: TdxLayoutItem; + eFechaRecepcion: TcxDBDateEdit; + dxLayoutControl1Group11: TdxLayoutGroup; + dxLayoutControl1Item19: TdxLayoutItem; + cbConAlmacen: TCheckBox; + dxLayoutControl1Item20: TdxLayoutItem; + cbAlmacen: TcxDBLookupComboBox; + dsAlmacenes: TDADataSource; + dxLayoutControl1Item18: TdxLayoutItem; + Label1: TLabel; + dxLayoutControl1Group12: TdxLayoutGroup; + dxLayoutControl1Group10: TdxLayoutGroup; + dxLayoutControl1Item22: TdxLayoutItem; + eRefFacturaCli: TcxDBTextEdit; + dxLayoutControl1Group15: TdxLayoutGroup; + dxLayoutControl1Item24: TdxLayoutItem; + eFechaPrevista: TcxDBDateEdit; + dxLayoutControl1Item23: TdxLayoutItem; + eRefCliente: TcxDBTextEdit; + dxLayoutControl1Item21: TdxLayoutItem; + eFechaEnvio: TcxDBDateEdit; + dxLayoutControl1Item9: TdxLayoutItem; + cbProvincia: TcxDBComboBox; + dxLayoutControl1Item11: TdxLayoutItem; + cbPoblacion: TcxDBComboBox; + dxLayoutControl1Group9: TdxLayoutGroup; + frViewDatosYSeleccionClienteAlbaran1: TfrViewDatosYSeleccionClienteAlbaran; + dxLayoutControl1Item1: TdxLayoutItem; + procedure CustomViewCreate(Sender: TObject); + procedure CustomViewDestroy(Sender: TObject); + procedure actElegirDireccionExecute(Sender: TObject); + procedure actVerPedidoCliExecute(Sender: TObject); + + procedure bFormasPagoClick(Sender: TObject); + procedure cbConAlmacenClick(Sender: TObject); + procedure eFechaPrevistaPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure eFechaEnvioPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure eFechaRecepcionPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure frViewClienteAlbaranactElegirContactoUpdate(Sender: TObject); + procedure actElegirDireccionUpdate(Sender: TObject); + procedure actVerPedidoCliUpdate(Sender: TObject); + procedure frViewClienteAlbaranactAnadirContactoUpdate(Sender: TObject); + procedure cbProvinciaPropertiesInitPopup(Sender: TObject); + procedure cbPoblacionPropertiesInitPopup(Sender: TObject); + + protected + FAlbaran : IBizAlbaranCliente; + FAlmacenesController : IAlmacenesController; +// FPedidoAsociado : IBizPedidoCliente; +// FPedidoController : IPedidosClienteController; + FViewClienteAlbaran : IViewDatosYSeleccionClienteAlbaran; + FFormasPago : IBizFormaPago; + FFormasPagoController : IFormasPagoController; + FProvincias : TStringList; + FIDProvincia : Integer; //Almacenar la provincia que hay seleccionada para no cargar las poblaciones si no es necesario + FPoblaciones : TStringList; + + procedure CargarProvincias; + procedure CargarPoblaciones; + + function GetAlbaran: IBizAlbaranCliente; + procedure SetAlbaran(const Value: IBizAlbaranCliente); virtual; + function GetViewClienteAlbaran: IViewDatosYSeleccionClienteAlbaran; + public + property Albaran: IBizAlbaranCliente read GetAlbaran write SetAlbaran; + property ViewClienteAlbaran: IViewDatosYSeleccionClienteAlbaran read GetViewClienteAlbaran; + end; + +implementation + +{$R *.dfm} + +{ TfrViewAlbaranCliente } + +uses + uClientesController, uBizDireccionesContacto, uAlbaranesClienteController, + schAlbaranesClienteClient_Intf, uBizAlmacenes, uDateUtils, + uDialogUtils, uProvinciasPoblacionesController, uStringsUtils; + + +procedure TfrViewAlbaranCliente.actElegirDireccionExecute(Sender: TObject); +var + AClientesController : IClientesController; + AAlbaranController : IAlbaranesClienteController; + ADireccion : IBizDireccionesContacto; +begin + inherited; + AClientesController := TClientesController.Create; + AAlbaranController := TAlbaranesClienteController.Create; + try + ADireccion := AClientesController.ElegirDireccionEntrega(FAlbaran.Cliente, + 'Seleccione la direccin del cliente que quiere utilizar como direccin de envio de este albaran.'); + if Assigned(ADireccion) then + begin + AAlbaranController.CopiarDireccionEnvio(ADireccion, FAlbaran); + FAlbaran.Edit; + FAlbaran.IMPORTE_PORTE := ADireccion.PORTE; + end; + finally + ADireccion := NIL; + AClientesController := NIL; + AAlbaranController := NIL; + end; +end; + +procedure TfrViewAlbaranCliente.actElegirDireccionUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := (not ReadOnly) and + Assigned(FAlbaran) and + Assigned(FViewClienteAlbaran) and + FAlbaran.DataTable.Active and + Assigned(FAlbaran.Cliente) and + Assigned(FAlbaran.Cliente) and + Assigned(FAlbaran.Cliente.Direcciones) and + FAlbaran.Cliente.Direcciones.DataTable.Active and + (FAlbaran.Cliente.Direcciones.DataTable.RecordCount > 0); +end; + +procedure TfrViewAlbaranCliente.actVerPedidoCliExecute(Sender: TObject); +begin + inherited; +// FPedidoController.Ver(FPedidoAsociado); +end; + +procedure TfrViewAlbaranCliente.actVerPedidoCliUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := (Albaran.REF_PEDIDO <> '') + end; + +procedure TfrViewAlbaranCliente.bFormasPagoClick(Sender: TObject); +begin + inherited; + if Assigned(FFormasPago) then + FFormasPagoController.VerTodos(FFormasPago); +end; + +procedure TfrViewAlbaranCliente.CargarPoblaciones; +var + i : integer; + +begin + if (FIDProvincia <> StrToInt(FProvincias.Values[cbProvincia.Text])) then + Begin + FIDProvincia := StrToInt(FProvincias.Values[cbProvincia.Text]); + with TProvinciasPoblacionesController.Create do + try + FPoblaciones := DarListaPoblaciones(FIDProvincia); + + with cbPoblacion.Properties.Items do + begin + BeginUpdate; + try + Clear; + for i := 0 to FPoblaciones.Count - 1 do + Add(FPoblaciones.Names[i]); + finally + EndUpdate; + end; + end; + finally + Free; + end; + End; +end; + +procedure TfrViewAlbaranCliente.CargarProvincias; +var + i : integer; +begin + with TProvinciasPoblacionesController.Create do + try + FProvincias := DarListaProvincias; + + with cbProvincia.Properties.Items do + begin + BeginUpdate; + try + Clear; + for i := 0 to FProvincias.Count - 1 do + Add(FProvincias.Names[i]); + finally + EndUpdate; + end; + end; + finally + Free; + end; +end; + +procedure TfrViewAlbaranCliente.cbConAlmacenClick(Sender: TObject); +begin + inherited; + + //Para que no me cambie el estilo del campo + if ReadOnly then Exit; + + if cbConAlmacen.Checked then + begin + cbAlmacen.Enabled := True; + cbAlmacen.DroppedDown := True; + end + else begin + cbAlmacen.Enabled := False; + FAlbaran.Edit; + FAlbaran.ID_ALMACEN := 0; + end; +end; + +procedure TfrViewAlbaranCliente.cbPoblacionPropertiesInitPopup(Sender: TObject); +begin + inherited; + ShowHourglassCursor; + try + FreeANDNIL(FPoblaciones); + if not Assigned(FProvincias) then + CargarProvincias; + if not EsCadenaVacia(cbProvincia.Text) and (FProvincias.IndexOfName(cbProvincia.Text) <> -1) then + CargarPoblaciones + finally + HideHourglassCursor; + end; +end; + +procedure TfrViewAlbaranCliente.cbProvinciaPropertiesInitPopup(Sender: TObject); +begin + inherited; + ShowHourglassCursor; + try + if not Assigned(FProvincias) then + CargarProvincias; + finally + HideHourglassCursor; + end; +end; + +procedure TfrViewAlbaranCliente.CustomViewCreate(Sender: TObject); +begin + inherited; + FIDProvincia := 0; + FProvincias := NIL; + FPoblaciones := NIL; + + FFormasPago := Nil; + FFormasPagoController := TFormasPagoController.Create; + + // FPedidoAsociado := NIL; +// FPedidoController := TPedidosClienteController.Create; + + FViewClienteAlbaran := frViewDatosYSeleccionClienteAlbaran1; + FAlmacenesController := TAlmacenesController.Create; +end; + +procedure TfrViewAlbaranCliente.CustomViewDestroy(Sender: TObject); +begin + inherited; + if Assigned(FProvincias) then + FreeANDNIL(FProvincias); + + if Assigned(FPoblaciones) then + FreeANDNIL(FPoblaciones); + + FFormasPago := Nil; + FFormasPagoController := NIL; + FViewClienteAlbaran := Nil; +// FPedidoController := NIL; +// FPedidoAsociado := NIL; + FAlmacenesController := NIL; +end; + +procedure TfrViewAlbaranCliente.eFechaEnvioPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); +begin + inherited; + + if VarIsNull(DisplayValue) or (DisplayValue = '') then + begin + if (ShowConfirmMessage('Si elimina la fecha prevista de envio, se eliminarn tambien las fechas de envio y recepcin en caso de tenerlas. Desea continuar?', '') = IDYES) then + begin + eFechaRecepcion.Clear; + eFechaRecepcion.Enabled := false; + end + else + DisplayValue := DateToStr(eFechaEnvio.Date); + end + else + eFechaRecepcion.Enabled := true; +end; + +procedure TfrViewAlbaranCliente.eFechaPrevistaPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + if VarIsNull(DisplayValue) or (DisplayValue = '') then + begin + if (ShowConfirmMessage('Si elimina la fecha prevista de envio, se eliminarn tambien las fechas de envio y recepcin en caso de tenerlas. Desea continuar?', '') = IDYES) then + begin + eFechaEnvio.Clear; + eFechaEnvio.Enabled := false; + eFechaRecepcion.Clear; + eFechaRecepcion.Enabled := false; + end + else + DisplayValue := DateToStr(eFechaPrevista.Date); + end + else + eFechaEnvio.Enabled := true; +end; + +procedure TfrViewAlbaranCliente.eFechaRecepcionPropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + if not (VarIsNull(DisplayValue) or (DisplayValue = '')) then + begin + if (eFechaRecepcion.Date < eFechaEnvio.Date) then + begin + ShowWarningMessage('La fecha de recepcin debe ser posterior a la fecha de envio'); + eFechaRecepcion.SetFocus; + end; + + end; +end; + +procedure TfrViewAlbaranCliente.frViewClienteAlbaranactAnadirContactoUpdate(Sender: TObject); +begin +{ + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := not Assigned(FPedidoAsociado); +} +end; + +procedure TfrViewAlbaranCliente.frViewClienteAlbaranactElegirContactoUpdate(Sender: TObject); +begin +{ + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := not Assigned(FPedidoAsociado); +} +end; + +function TfrViewAlbaranCliente.GetAlbaran: IBizAlbaranCliente; +begin + Result := FAlbaran; +end; + +function TfrViewAlbaranCliente.GetViewClienteAlbaran: IViewDatosYSeleccionClienteAlbaran; +begin + Result := FViewClienteAlbaran; +end; + +procedure TfrViewAlbaranCliente.SetAlbaran(const Value: IBizAlbaranCliente); +begin + FAlbaran := Value; + if Assigned(FAlbaran) then + begin + DADataSource.DataTable := FAlbaran.DataTable; + FViewClienteAlbaran.Albaran := FAlbaran; + + FFormasPago := FFormasPagoController.BuscarTodos; + dsFormaPago.DataTable := FFormasPago.DataTable; + dsFormaPago.DataTable.Active := True; + + dsAlmacenes.DataTable := (FAlmacenesController.BuscarTodos).DataTable; + dsAlmacenes.DataTable.Active := True; + + //Para que no me cambie el estilo del campo + if not ReadOnly then + begin + cbConAlmacen.Checked := (FAlbaran.ID_ALMACEN > 0); + cbAlmacen.Enabled := cbConAlmacen.Checked; + + eReferenciaPedidoCli.Enabled := False; + eRefFacturaCli.Enabled := False; + + if EsFechaVacia(FAlbaran.FECHA_PREVISTA_ENVIO) then + begin + eFechaEnvio.Enabled := false; + eFechaRecepcion.Enabled := false; + end + else + begin + eFechaEnvio.Enabled := true; + if EsFechaVacia(FAlbaran.FECHA_ENVIO) then + eFechaRecepcion.Enabled := false + else + eFechaRecepcion.Enabled := true; + end; + end; + +{ + FPedidoAsociado := NIL; + if (FAlbaran.ID_PEDIDO > 0) then + begin + FPedidoAsociado := FPedidoController.Buscar(FAlbaran.ID_PEDIDO); + if Assigned(FPedidoAsociado) then + begin + FPedidoAsociado.DataTable.Active := True; + eReferenciaPedidoCli.Text := FPedidoAsociado.REFERENCIA + end + else + eReferenciaPedidoCli.Text := ''; + end + else + eReferenciaPedidoCli.Text := 'No hay pedido asociado'; +} + end + else begin + DADataSource.DataTable := NIL; + FViewClienteAlbaran.Albaran := NIL; +// FPedidoAsociado := NIL; + dsFormaPago.DataTable := NIL; + dsAlmacenes.DataTable := NIL; + end; +end; + +end. diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranDevCliente.dcu b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranDevCliente.dcu new file mode 100644 index 0000000..94e5224 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranDevCliente.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranDevCliente.dfm b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranDevCliente.dfm new file mode 100644 index 0000000..9fbecb4 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranDevCliente.dfm @@ -0,0 +1,212 @@ +inherited frViewAlbaranDevCliente: TfrViewAlbaranDevCliente + inherited dxLayoutControl1: TdxLayoutControl + inherited Label1: TLabel + Width = 299 + ExplicitWidth = 299 + end + inherited edtFechaAlbaran: TcxDBDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 336 + Width = 336 + end + inherited memObservaciones: TcxDBMemo + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitHeight = 69 + Height = 69 + end + inherited eReferencia: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 336 + Width = 336 + end + inherited eCalle: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 336 + Width = 336 + end + inherited eCodigoPostal: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited ePersonaContacto: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 336 + Width = 336 + end + inherited eTlfTrabajo: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 336 + Width = 336 + end + inherited eReferenciaPedidoCli: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 198 + Width = 198 + end + inherited cbFormaPago: TcxDBLookupComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 198 + Width = 198 + end + inherited eFechaRecepcion: TcxDBDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 265 + Width = 265 + end + inherited cbAlmacen: TcxDBLookupComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 235 + Width = 235 + end + inherited eRefFacturaCli: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 336 + Width = 336 + end + inherited eFechaPrevista: TcxDBDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 265 + Width = 265 + end + inherited eRefCliente: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 336 + Width = 336 + end + inherited eFechaEnvio: TcxDBDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 265 + Width = 265 + end + inherited cbProvincia: TcxDBComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 235 + Width = 235 + end + inherited cbPoblacion: TcxDBComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 336 + Width = 336 + end + inherited frViewDatosYSeleccionClienteAlbaran1: TfrViewDatosYSeleccionClienteAlbaran + Width = 406 + ExplicitWidth = 406 + inherited dxLayoutControl1: TdxLayoutControl + Width = 406 + ExplicitWidth = 406 + ExplicitHeight = 181 + inherited edtlNombre: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 224 + Width = 224 + end + inherited edtNIFCIF: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtPersonaContacto: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 283 + Width = 283 + end + inherited edtDireccion: TcxMemo + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 287 + Width = 287 + end + end + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Group6: TdxLayoutGroup + inherited dxLayoutControl1Group1: TdxLayoutGroup + Caption = 'Datos de la orden' + inherited dxLayoutControl1Item2: TdxLayoutItem + Caption = 'Fecha de orden:' + end + inherited dxLayoutControl1Group5: TdxLayoutGroup + inherited dxLayoutControl1Group13: TdxLayoutGroup + inherited dxLayoutControl1Group15: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Item22: TdxLayoutItem + Caption = 'Ref. abono:' + end + end + end + end + inherited dxLayoutControl1Group11: TdxLayoutGroup + Caption = 'Almac'#233'n de entrada' + inherited dxLayoutControl1Group10: TdxLayoutGroup + inherited dxLayoutControl1Item19: TdxLayoutItem + Visible = False + end + end + inherited dxLayoutControl1Item18: TdxLayoutItem + Visible = False + end + end + end + end + end +end diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranDevCliente.pas b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranDevCliente.pas new file mode 100644 index 0000000..b3137fd --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranDevCliente.pas @@ -0,0 +1,29 @@ +unit uViewAlbaranDevCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewAlbaranCliente, cxGraphics, ActnList, DB, uDADataTable, + dxLayoutControl, StdCtrls, cxDropDownEdit, cxLookupEdit, cxDBLookupEdit, + cxDBLookupComboBox, cxTextEdit, Buttons, uCustomView, uViewBase, + uViewDatosYSeleccionCliente, cxDBEdit, cxMemo, cxContainer, cxEdit, + cxMaskEdit, cxCalendar, cxControls, uDAInterfaces, + uViewDatosYSeleccionClienteAlbaran; + +type + TfrViewAlbaranDevCliente = class(TfrViewAlbaranCliente) + private + { Private declarations } + public + { Public declarations } + end; + +var + frViewAlbaranDevCliente: TfrViewAlbaranDevCliente; + +implementation + +{$R *.dfm} + +end. diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesCliente.dcu b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesCliente.dcu new file mode 100644 index 0000000..4c29166 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesCliente.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesCliente.dfm b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesCliente.dfm new file mode 100644 index 0000000..aa92bf2 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesCliente.dfm @@ -0,0 +1,552 @@ +inherited frViewAlbaranesCliente: TfrViewAlbaranesCliente + Width = 802 + Height = 490 + ExplicitWidth = 802 + ExplicitHeight = 490 + inherited cxGrid: TcxGrid + Width = 802 + Height = 362 + RootLevelOptions.DetailTabsPosition = dtpTop + OnActiveTabChanged = cxGridActiveTabChanged + ExplicitWidth = 802 + ExplicitHeight = 362 + inherited cxGridView: TcxGridDBTableView + DataController.KeyFieldNames = 'ID' + DataController.Options = [dcoAnsiSort, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText, dcoGroupsAlwaysExpanded] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Position = spFooter + Column = cxGridViewIMPORTE_TOTAL + end> + DataController.Summary.FooterSummaryItems = < + item + Format = '0 pedidos' + Kind = skCount + end + item + Format = '0 albaranes' + Kind = skCount + Column = cxGridViewREFERENCIA + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = cxGridViewIMPORTE_TOTAL + end> + DataController.OnCompare = cxGridViewDataControllerCompare + OptionsCustomize.ColumnHidingOnGrouping = False + OptionsView.GroupFooters = gfAlwaysVisible + object cxGridViewINCIDENCIAS_ACTIVAS: TcxGridDBColumn + Caption = 'Incidencias' + DataBinding.FieldName = 'INCIDENCIAS_ACTIVAS' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Images = GridPNGImageList + Properties.Items = < + item + Description = 'Sin incidencias' + Value = 0 + end + item + Description = 'Hay incidencias' + ImageIndex = 2 + Tag = 1 + Value = 1 + end> + Properties.ShowDescriptions = False + OnGetCellHint = cxGridViewINCIDENCIAS_ACTIVASGetCellHint + BestFitMaxWidth = 22 + MinWidth = 22 + Options.HorzSizing = False + Width = 22 + end + object cxGridViewREFERENCIA: TcxGridDBColumn + DataBinding.FieldName = 'REFERENCIA' + BestFitMaxWidth = 45 + SortIndex = 0 + SortOrder = soDescending + Width = 57 + end + object cxGridViewSITUACION: TcxGridDBColumn + DataBinding.FieldName = 'SITUACION' + Visible = False + BestFitMaxWidth = 45 + VisibleForCustomization = False + Width = 65 + end + object cxGridViewFECHA_ALBARAN: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_ALBARAN' + BestFitMaxWidth = 45 + Width = 68 + end + object cxGridViewNOMBRE: TcxGridDBColumn + Caption = 'Cliente' + DataBinding.FieldName = 'NOMBRE' + Width = 119 + end + object cxGridViewREF_PEDIDO: TcxGridDBColumn + DataBinding.FieldName = 'REF_PEDIDO' + Visible = False + BestFitMaxWidth = 45 + VisibleForCustomization = False + Width = 39 + end + object cxGridViewFECHA_PREVISTA_ENVIO: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_PREVISTA_ENVIO' + Visible = False + BestFitMaxWidth = 45 + VisibleForCustomization = False + Width = 45 + end + object cxGridViewFECHA_ENVIO: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_ENVIO' + Visible = False + BestFitMaxWidth = 45 + VisibleForCustomization = False + Width = 45 + end + object cxGridViewFECHA_RECEPCION: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_RECEPCION' + Visible = False + BestFitMaxWidth = 45 + VisibleForCustomization = False + Width = 45 + end + object cxGridViewREF_FACTURA: TcxGridDBColumn + DataBinding.FieldName = 'REF_FACTURA' + BestFitMaxWidth = 45 + Width = 61 + end + object cxGridViewNOMBRE_ALMACEN: TcxGridDBColumn + DataBinding.FieldName = 'NOMBRE_ALMACEN' + Visible = False + VisibleForCustomization = False + Width = 63 + end + object cxGridViewCALLE: TcxGridDBColumn + DataBinding.FieldName = 'CALLE' + Visible = False + VisibleForCustomization = False + end + object cxGridViewCODIGO_POSTAL: TcxGridDBColumn + DataBinding.FieldName = 'CODIGO_POSTAL' + Visible = False + BestFitMaxWidth = 45 + VisibleForCustomization = False + end + object cxGridViewPOBLACION: TcxGridDBColumn + DataBinding.FieldName = 'POBLACION' + Visible = False + VisibleForCustomization = False + end + object cxGridViewPROVINCIA: TcxGridDBColumn + DataBinding.FieldName = 'PROVINCIA' + Visible = False + VisibleForCustomization = False + end + object cxGridViewPERSONA_CONTACTO: TcxGridDBColumn + DataBinding.FieldName = 'PERSONA_CONTACTO' + Visible = False + VisibleForCustomization = False + end + object cxGridViewTELEFONO: TcxGridDBColumn + DataBinding.FieldName = 'TELEFONO' + Visible = False + VisibleForCustomization = False + end + object cxGridViewIMPORTE_TOTAL: TcxGridDBColumn + Caption = 'Importe total' + DataBinding.FieldName = 'IMPORTE_TOTAL' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewINCIDENCIAS: TcxGridDBColumn + DataBinding.FieldName = 'INCIDENCIAS' + Visible = False + VisibleForCustomization = False + end + end + inherited cxGridLevel: TcxGridLevel + Caption = 'Todos' + end + object cxGridLevelPendientes: TcxGridLevel + Caption = 'Pendientes' + Visible = False + end + object cxGridLevelEnviados: TcxGridLevel + Caption = 'Enviados' + Visible = False + end + object cxGridLevelServidos: TcxGridLevel + Caption = 'Servidos' + Visible = False + end + object cxGridLevelProximosAEnviar: TcxGridLevel + Caption = 'Pasados de fecha' + Options.DetailFrameColor = clNone + Options.DetailFrameWidth = 0 + Visible = False + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 802 + ExplicitWidth = 802 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 802 + inherited dxLayoutControl1: TdxLayoutControl + Width = 802 + ExplicitWidth = 802 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 705 + Width = 705 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 228 + Width = 228 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 332 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 332 + ExplicitWidth = 460 + Width = 460 + end + inherited eLista: TcxComboBox + Left = 829 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 829 + ExplicitWidth = 215 + Width = 215 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 802 + ExplicitWidth = 802 + inherited tbxBotones: TTBXToolbar + Width = 792 + ExplicitWidth = 792 + end + end + end + inherited dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList + Left = 104 + Top = 72 + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 464 + ExplicitTop = 464 + ExplicitWidth = 802 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 802 + ExplicitWidth = 802 + inherited TBXToolbar1: TTBXToolbar + Width = 792 + ExplicitWidth = 792 + object TBXSeparatorItem1: TTBXSeparatorItem + end + object TBXItem3: TTBXItem + Action = actClientes + end + object TBXSeparatorItem2: TTBXSeparatorItem + end + object TBXItem2: TTBXItem + Action = actAlmacenes + end + end + end + end + inherited dsDataSource: TDADataSource + Top = 72 + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39217.578907326390000000 + BuiltInReportLink = True + end + end + inherited cxStyleRepository1: TcxStyleRepository + Left = 248 + object cxStyleProximosAEnviar: TcxStyle + AssignedValues = [svColor, svTextColor] + Color = clFuchsia + TextColor = clBlue + end + object cxStylePENDIENTES: TcxStyle + AssignedValues = [svTextColor] + TextColor = clGreen + end + object cxStyleENVIADOS: TcxStyle + AssignedValues = [svTextColor] + TextColor = clBlue + end + object cxStyleSERVIDOS: TcxStyle + end + object cxStyleRETRASADOS: TcxStyle + AssignedValues = [svColor, svTextColor] + Color = 15527167 + TextColor = clRed + end + end + inherited ActionList1: TActionList + Left = 256 + Top = 312 + object actClientes: TAction + Caption = 'Clientes' + OnExecute = actClientesExecute + OnUpdate = actClientesUpdate + end + object actAlmacenes: TAction + Caption = 'Almacenes' + OnExecute = actAlmacenesExecute + OnUpdate = actAlmacenesUpdate + end + end + inherited GridPNGImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000434944415478DA63FCFFFF3F + 03258011D900464646ACA601D530126D00BA6298A1B80C21CA0090183639925C + 80CB3B040DC0E69A510306BD010C04005E03C801036F00008D248BE16F9028BA + 0000000049454E44AE426082} + Name = 'Icono_header' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000001744944415478DA63FCFFFF3FC394 + C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F19ACFDF319CEED + 98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC5BBA09D3007CE0 + D7EFBF609B4178C98683D80D40770136B0AED69461E59623B80D80391B04FE01 + E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D760CCEE587E036 + 07359F66585A6AC0B069CF49FC06C06CFE7CFB30C3CBC5B1F87CE48261C0C15E + 0706FBE20360D999EC710CCA0D350CECECE9183A7FFE9CC9302FB18501C30090 + B3617E7ED6A6C6A0D5FE18AC180E7EFC00E2EF0CB3771930306F4F45189011E5 + C6E0587A10C516900B500C0069FEF00E62C02927540392C39CC1B6C2423DA4F5 + 0CAA0130CD60037E32CCBE15846A405C90034A9445769E4718F0712242F3870F + 1017BC4A413520CA0FE177B841338C20063CAC47688679E15719AA01A15ED60C + ABB71D450903A76BA9E05898BD4A1E6B1CA218004A18E8409BF70D8315EB719C + 89C05E9EC10500D1295EA9BD5461080000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000027F4944415478DA + 95926D48535118C79FDB268AA54485D62C4C50962CDC87F5416D9AB966CEA440 + A4E84D828C304C89B217DB87D00F65252B69422F9A4161D6A0507C6D595A6450 + 83CC55787129CE19949B6DD3DDEDDE9D73BABB561835D3030FCF39E739FFDFF3 + C2A1608EF5A1467A415632783A589C100254B0A0EB5A623A9392DCD365B89DBE + FF3CBC5830C0DD9DD726922B34EFDAEB5B53F75972170470D4C8E461DB724D78 + 091139AC66F4FC5E9BA24007FDF3064C75E6DE7DE94BD8DBDC4A834615014B5D + BD8D6985E37BE6056074D2B544934357DCFA1CD2FBEA1B6C908742E96EAFBFFB + 7E5FE2A15A18FA2FC0F978B35E9CBAE94895EE2DB474D82053B918CA4BA2A1BF + D37823B3D879784E80BB36298ADA98368C97937043F3185CACA1E164F12AD89E + 1509132316E659BB39A14807B6A000E74365A5282D43EB67BFC020FD1D76159A + C0502785D8984580B8691830BEA9561F634EFC1340AAA4111E55C60817859611 + E4038EF34256FE6BE86C5A0F807D4010035F2DA3EE1EA32DEEA81EEC7F0126EF + 288E87A8D597389F8DC28280858ACB9FE06C690CBFF702E60DB153E463EF70C5 + D632EEDC1F00FA6A7CA824397D888B46AB671EF300CC826DDC092B5710411CB0 + 406C62D86EEFEA72C69DAA07F76FC0645DD241B15A7D93E3C6A85FE2471D5E68 + 6872C1CE1C2FE46BF0AC2A1842F7B9CBB2CFF8AB05007900A26949819995E075 + 184D43A0FF400B95575CD0FED4010A9907AAB5E1BC9801EC9FA9C261656D0346 + 7FFC8106E2A55C7A591EA551197CC84A1121BB4FC8346AF540CB1307A8950462 + 25E8670B8CD01E6611B198C445D9E5DC75EABD7E4DA32B322C05630F3F15BE54 + 82788F788FF9E9FB679D9110C781FBC077B753433BB478CB0F7C3B8CF0987D51 + CF0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end> + Bitmap = {} + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + Left = 280 + end +end diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesCliente.pas b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesCliente.pas new file mode 100644 index 0000000..fa5d2cf --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesCliente.pas @@ -0,0 +1,279 @@ +unit uViewAlbaranesCliente; + +interface + +uses + Types, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, + cxData, cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl, dxPSEngn, + dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, cxImageComboBox, ImgList, Controls, PngImageList, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + cxGridCustomPopupMenu, cxGridPopupMenu, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, + uDADataTable, cxGridLevel, cxClasses, cxControls, cxGridCustomView, Classes, + cxGrid, + uBizAlbaranesCliente, cxCurrencyEdit, Forms, uViewFiltroBase, ComCtrls, Tabs, + cxPC, ActnList, TB2Item, TBX, TB2Dock, TB2Toolbar, TBXDkPanels, dxPgsDlg, + uDAInterfaces; + +type + IViewAlbaranesCliente = interface(IViewGrid) + ['{C0B0D9D9-2E0E-4CA5-88C8-B8C71CFAD59B}'] + function GetAlbaranes: IBizAlbaranCliente; + procedure SetAlbaranes(const Value: IBizAlbaranCliente); + property Albaranes: IBizAlbaranCliente read GetAlbaranes write SetAlbaranes; + end; + + TfrViewAlbaranesCliente = class(TfrViewGrid, IViewAlbaranesCliente) + cxGridViewREF_FACTURA: TcxGridDBColumn; + cxGridViewREFERENCIA: TcxGridDBColumn; + cxGridViewFECHA_ALBARAN: TcxGridDBColumn; + cxGridViewINCIDENCIAS_ACTIVAS: TcxGridDBColumn; + cxGridViewNOMBRE: TcxGridDBColumn; + cxGridViewSITUACION: TcxGridDBColumn; + cxGridViewCALLE: TcxGridDBColumn; + cxGridViewCODIGO_POSTAL: TcxGridDBColumn; + cxGridViewPOBLACION: TcxGridDBColumn; + cxGridViewPROVINCIA: TcxGridDBColumn; + cxGridViewPERSONA_CONTACTO: TcxGridDBColumn; + cxGridViewTELEFONO: TcxGridDBColumn; + cxGridViewFECHA_ENVIO: TcxGridDBColumn; + cxGridViewFECHA_RECEPCION: TcxGridDBColumn; + cxGridViewREF_PEDIDO: TcxGridDBColumn; + cxGridViewNOMBRE_ALMACEN: TcxGridDBColumn; + cxGridLevelPendientes: TcxGridLevel; + cxGridLevelEnviados: TcxGridLevel; + cxGridLevelServidos: TcxGridLevel; + cxGridLevelProximosAEnviar: TcxGridLevel; + cxStyleProximosAEnviar: TcxStyle; + cxStylePENDIENTES: TcxStyle; + cxStyleENVIADOS: TcxStyle; + cxStyleSERVIDOS: TcxStyle; + cxGridViewIMPORTE_TOTAL: TcxGridDBColumn; + actClientes: TAction; + actAlmacenes: TAction; + TBXItem2: TTBXItem; + TBXItem3: TTBXItem; + TBXSeparatorItem1: TTBXSeparatorItem; + TBXSeparatorItem2: TTBXSeparatorItem; + cxGridViewFECHA_PREVISTA_ENVIO: TcxGridDBColumn; + cxStyleRETRASADOS: TcxStyle; + cxGridViewINCIDENCIAS: TcxGridDBColumn; + procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: + TcxGridLevel); + procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out + AStyle: TcxStyle); + + procedure actClientesExecute(Sender: TObject); + procedure actClientesUpdate(Sender: TObject); + procedure actAlmacenesExecute(Sender: TObject); + procedure actAlmacenesUpdate(Sender: TObject); + procedure cxGridViewINCIDENCIAS_ACTIVASGetCellHint( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + ACellViewInfo: TcxGridTableDataCellViewInfo; const AMousePos: TPoint; + var AHintText: TCaption; var AIsHintMultiLine: Boolean; + var AHintTextRect: TRect); + procedure cxGridViewDataControllerCompare( + ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2, + AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer); + + private + //Filtros relativos a la vista + procedure AnadirFiltroSituaciones; + procedure AnadirFiltroFechas; + + protected + FAlbaranes: IBizAlbaranCliente; + function GetAlbaranes: IBizAlbaranCliente; + procedure SetAlbaranes(const Value: IBizAlbaranCliente); + public + procedure AnadirOtrosFiltros; override; + property Albaranes: IBizAlbaranCliente read GetAlbaranes write SetAlbaranes; + end; + +implementation + +uses + SysUtils, DateUtils, variants, windows, uDataModuleAlbaranesCliente, schAlbaranesClienteClient_Intf, + uViewGridBase, uReferenciasUtils, cxVariants; + +{$R *.dfm} + +procedure TfrViewAlbaranesCliente.actAlmacenesExecute(Sender: TObject); +begin + if (cxGridViewNOMBRE_ALMACEN.GroupIndex < 0) then + begin + cxGridViewNOMBRE_ALMACEN.GroupIndex := cxGridView.GroupedColumnCount; + cxGridViewNOMBRE_ALMACEN.Visible := False; + end + else + begin + cxGridViewNOMBRE_ALMACEN.GroupIndex := -1; + cxGridViewNOMBRE_ALMACEN.Visible := True; + end; +end; + +procedure TfrViewAlbaranesCliente.actAlmacenesUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Checked := not (cxGridViewNOMBRE_ALMACEN.GroupIndex < 0); +end; + +procedure TfrViewAlbaranesCliente.actClientesExecute(Sender: TObject); +begin + inherited; + if (cxGridViewNOMBRE.GroupIndex < 0) then + begin + cxGridViewNOMBRE.GroupIndex := cxGridView.GroupedColumnCount; + cxGridViewNOMBRE.Visible := False; + end + else + begin + cxGridViewNOMBRE.GroupIndex := -1; + cxGridViewNOMBRE.Visible := True; + end; +end; + +procedure TfrViewAlbaranesCliente.actClientesUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Checked := not (cxGridViewNOMBRE.GroupIndex < 0); +end; + +procedure TfrViewAlbaranesCliente.AnadirFiltroFechas; +var + Columna: TcxGridDBColumn; + Fecha1, Fecha2: Variant; + FFiltro : TcxFilterCriteriaItemList; +begin + Fecha1 := frViewFiltroBase1.edtFechaIniFiltro.EditValue; + Fecha2 := frViewFiltroBase1.edtFechaFinFiltro.EditValue; + + if not VarIsNull(Fecha1) + and not VarIsNull(Fecha2) then + begin + cxGridView.DataController.Filter.Options := [fcoCaseInsensitive, fcoSoftCompare]; + FFiltro := AddFilterGrid(fboAnd); + + Columna := (cxGridView as TcxGridDBTableView).GetColumnByFieldName('FECHA_PREVISTA_ENVIO'); + FFiltro.AddItem(Columna, foBetween, varArrayOf([Fecha1, Fecha2]), VarToStr(Fecha1) + ' and ' + VarToStr(Fecha2)); + +// FFiltro.BoolOperatorKind := fboOr; +// Columna := (cxGridView as TcxGridDBTableView).GetColumnByFieldName('FECHA_ALBARAN'); +// FFiltro.AddItem(Columna, foBetween, varArrayOf([Fecha1, Fecha2]), VarToStr(Fecha1) + ' and ' + VarToStr(Fecha2)); + end; +end; + +procedure TfrViewAlbaranesCliente.AnadirFiltroSituaciones; +var + FFiltro : TcxFilterCriteriaItemList; +begin + FFiltro := AddFilterGrid(fboAnd); + + case cxGrid.ActiveLevel.Index of + 1 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_ALBARAN_PENDIENTE, SITUACION_ALBARAN_PENDIENTE); + 2 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_ALBARAN_ENVIADO, SITUACION_ALBARAN_ENVIADO); + 3 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_ALBARAN_SERVIDO, SITUACION_ALBARAN_SERVIDO); + 4 : begin + FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_ALBARAN_PENDIENTE, SITUACION_ALBARAN_PENDIENTE); + FFiltro := AddFilterGrid(fboAnd); + FFiltro.AddItem(cxGridViewFECHA_PREVISTA_ENVIO, foNotEqual, null, 'NO_NULO'); + FFiltro := AddFilterGrid(fboAnd); + FFiltro.AddItem(cxGridViewFECHA_PREVISTA_ENVIO, foLess, DateOf(Now), 'RETRASADOS'); + end; + end; +end; + +procedure TfrViewAlbaranesCliente.AnadirOtrosFiltros; +begin + inherited; + + AnadirFiltroSituaciones; + AnadirFiltroFechas; + + //Finalmente activamos el filtro si tenemos algo + if cxGridView.DataController.Filter.IsEmpty + then cxGridView.DataController.Filter.Active := False + else cxGridView.DataController.Filter.Active := True; + cxGrid.ActiveLevel.GridView := cxGridView; +end; + +procedure TfrViewAlbaranesCliente.cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel); +begin + inherited; + RefrescarFiltro; +end; + +procedure TfrViewAlbaranesCliente.cxGridViewDataControllerCompare( + ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2, + AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer); +begin + inherited; + if ((AItemIndex = cxGridViewREFERENCIA.Index) or + (AItemIndex = cxGridViewREF_FACTURA.Index) or + (AItemIndex = cxGridViewREF_PEDIDO.Index)) and + (VarType(V1) = VarType(V2)) and (VarType(V1) = varString) then + Compare := CompararReferencias(V1, V2) + else + Compare := VarCompare(V1, V2); +end; + +procedure TfrViewAlbaranesCliente.cxGridViewINCIDENCIAS_ACTIVASGetCellHint( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + ACellViewInfo: TcxGridTableDataCellViewInfo; const AMousePos: TPoint; + var AHintText: TCaption; var AIsHintMultiLine: Boolean; + var AHintTextRect: TRect); +begin + inherited; + if (ARecord.Values[Sender.Index] = '1') then + begin + AIsHintMultiLine := True; + AHintText := ARecord.Values[cxGridViewINCIDENCIAS.Index] + end; +end; + +procedure TfrViewAlbaranesCliente.cxGridViewStylesGetContentStyle(Sender: + TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: + TcxCustomGridTableItem; out AStyle: TcxStyle); +var + IndiceCol: Integer; + ASituacion: string; +begin + inherited; + if Assigned(ARecord) then + begin + if Assigned((Sender as TcxGridDBTableView).GetColumnByFieldName(fld_AlbaranesClienteSITUACION)) then + begin + IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_AlbaranesClienteSITUACION).Index; + ASituacion := VarToStr(ARecord.DisplayTexts[IndiceCol]); + if ASituacion = SITUACION_ALBARAN_PENDIENTE then + begin + if not VarIsNull(ARecord.Values[cxGridViewFECHA_PREVISTA_ENVIO.Index]) then + if (StrToDate(ARecord.DisplayTexts[cxGridViewFECHA_PREVISTA_ENVIO.Index]) < DateOf(Now)) then + AStyle.TextColor := cxStyleRETRASADOS.TextColor + else + AStyle.TextColor := cxStylePENDIENTES.TextColor + else + AStyle.TextColor := cxStylePENDIENTES.TextColor; + end + else if ASituacion = SITUACION_ALBARAN_ENVIADO then + AStyle.TextColor := cxStyleENVIADOS.TextColor + else if ASituacion = SITUACION_ALBARAN_SERVIDO then + AStyle.TextColor := cxStyleSERVIDOS.TextColor; + end; + end; +end; + +function TfrViewAlbaranesCliente.GetAlbaranes: IBizAlbaranCliente; +begin + Result := FAlbaranes; +end; + +procedure TfrViewAlbaranesCliente.SetAlbaranes(const Value: IBizAlbaranCliente); +begin + FAlbaranes := Value; + if Assigned(FAlbaranes) then + dsDataSource.DataTable := FAlbaranes.DataTable; +end; + +end. diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesDevCliente.dcu b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesDevCliente.dcu new file mode 100644 index 0000000..4aa0731 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesDevCliente.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesDevCliente.dfm b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesDevCliente.dfm new file mode 100644 index 0000000..3d1db6f --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesDevCliente.dfm @@ -0,0 +1,170 @@ +inherited frViewAlbaranesDevCliente: TfrViewAlbaranesDevCliente + OnCreate = CustomViewCreate + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + inherited cxGridViewFECHA_ALBARAN: TcxGridDBColumn + Caption = 'Fecha' + end + inherited cxGridViewREF_FACTURA: TcxGridDBColumn + Caption = 'Ref. abono' + end + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + inherited TBXDockablePanel1: TTBXDockablePanel + inherited dxLayoutControl1: TdxLayoutControl + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 322 + Width = 322 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 426 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 426 + ExplicitWidth = 366 + Width = 366 + end + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39232.492941620370000000 + BuiltInReportLink = True + end + end + inherited GridPNGImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000434944415478DA63FCFFFF3F + 03258011D900464646ACA601D530126D00BA6298A1B80C21CA0090183639925C + 80CB3B040DC0E69A510306BD010C04005E03C801036F00008D248BE16F9028BA + 0000000049454E44AE426082} + Name = 'Icono_header' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000001974455874536F6674776172650041646F626520496D616765526561 + 647971C9653C000002034944415478DA63FCFFFF3FC394C53BFE33900172623D + 1819610600394469FAF3F71FC3EF3F7F19ACFDF319CEED98866A806DD17E14C5 + 87FB1CC134B2F8AE761B86B9ABF632CC5BBA09D3007CE0D7EFBF609B4178C986 + 83D80D40770136B0AED69461E59623B80D80391B04FE01E5FEFCF907B7D9B7FE + 04C3AA4A6386B53B8EE13700E692BD9D760CCEE587E03607359F66585A6AC0B0 + 69CF49FC06C06CFE7CFB30C3CBC5B1F87CE48261C0C15E0706FBE20360D999EC + 710C5CD2D60C3C37FF333C0DCF66D0B7B1038B7F7D709FE14E4B3CC385339718 + 300C00391BE6E7676D6A0C5C6FCD19642EEF60782BABC1F035CF9581E3D53B86 + A78DEB186E73A9327C927A88302023CA8DC1B1F4208AFB402E502EB9C0702FC5 + 9A81E3F22D86DF02620CAF9EBF6360B6546538EBD7C3C0BC230D6140729833D8 + 5658A887B49E011BA0D5FE98E1C1A54686CF213D0C1FDE7D61F8CCC8C2603A2D + 8861E58F4406E6EDA90803E2821C50A22CB2F33CD800F9D28B0C379AA2197EAF + 3BC8F0919191E1D3BB9F0C2C527C0C4FF36730301F29461810E587F03BDCA019 + 460CA2FFBC18DEEDDCC870F7CD6706E33667861F4F5E331CE9BFC0F0894B8A81 + C1E83BC280502F6B86D5DB8EA28481D3B55486FFFBFE313CB8FE8CE1715C25C3 + 1F73482C307CFEC4C0BC643A03E39B3308034009031D68F3BE61B07DB28781E9 + E36F86DF060298F2BFBE4700003F4A71F77ECF59220000000049454E44AE4260 + 82} + Name = 'PngImage1' + Background = clWindow + end> + end +end diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesDevCliente.pas b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesDevCliente.pas new file mode 100644 index 0000000..aa866d1 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesDevCliente.pas @@ -0,0 +1,91 @@ +unit uViewAlbaranesDevCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewAlbaranesCliente, cxStyles, cxCustomData, cxGraphics, cxFilter, + cxData, cxDataStorage, cxEdit, DB, cxDBData, cxImageComboBox, cxCurrencyEdit, + dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, + dxPSCompsProvider, dxPSFillPatterns, dxPSEdgePatterns, dxPgsDlg, dxPSCore, + ImgList, PngImageList, ActnList, cxGridCustomPopupMenu, cxGridPopupMenu, + dxPScxCommon, dxPScxGrid6Lnk, uDADataTable, TB2Item, TBX, TB2Toolbar, + TBXDkPanels, TB2Dock, uViewFiltroBase, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, + cxGrid, uDAInterfaces; + +type + IViewAlbaranesDevCliente = interface(IViewAlbaranesCliente) + ['{C3B3534D-DC3C-49E8-9176-77DD079D7A47}'] + end; + + TfrViewAlbaranesDevCliente = class(TfrViewAlbaranesCliente, IViewAlbaranesDevCliente) + procedure CustomViewCreate(Sender: TObject); + end; + +implementation + +uses uViewGrid; +{$R *.dfm} + +procedure TfrViewAlbaranesDevCliente.CustomViewCreate(Sender: TObject); +begin + inherited; + cxGrid.RootLevelOptions.DetailTabsPosition := dtpNone; + + with cxGridViewSITUACION do + begin + VisibleForCustomization := False; + Visible := False; + end; + + with cxGridViewREF_PEDIDO do + begin + VisibleForCustomization := False; + Visible := False; + end; + + with cxGridViewFECHA_PREVISTA_ENVIO do + begin + VisibleForCustomization := False; + Visible := False; + end; + + with cxGridViewFECHA_ENVIO do + begin + VisibleForCustomization := False; + Visible := False; + end; + + with cxGridViewFECHA_RECEPCION do + begin + VisibleForCustomization := False; + Visible := False; + end; + + with cxGridViewCALLE do + begin + VisibleForCustomization := False; + Visible := False; + end; + + with cxGridViewCODIGO_POSTAL do + begin + VisibleForCustomization := False; + Visible := False; + end; + + with cxGridViewPOBLACION do + begin + VisibleForCustomization := False; + Visible := False; + end; + + with cxGridViewPROVINCIA do + begin + VisibleForCustomization := False; + Visible := False; + end; +end; + +end. diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewDatosYSeleccionClienteAlbaran.dcu b/Source/Modulos/Albaranes de cliente/Views/uViewDatosYSeleccionClienteAlbaran.dcu new file mode 100644 index 0000000..4da41b0 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Views/uViewDatosYSeleccionClienteAlbaran.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewDatosYSeleccionClienteAlbaran.dfm b/Source/Modulos/Albaranes de cliente/Views/uViewDatosYSeleccionClienteAlbaran.dfm new file mode 100644 index 0000000..621b9af --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewDatosYSeleccionClienteAlbaran.dfm @@ -0,0 +1,495 @@ +inherited frViewDatosYSeleccionClienteAlbaran: TfrViewDatosYSeleccionClienteAlbaran + Width = 505 + Height = 196 + ExplicitWidth = 505 + ExplicitHeight = 196 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 505 + Height = 196 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 0 + Margins.Bottom = 0 + Align = alClient + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + DesignSize = ( + 505 + 196) + object edtlNombre: TcxDBTextEdit + Left = 63 + Top = 41 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'NOMBRE' + DataBinding.DataSource = dsCliente + Enabled = False + ParentFont = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 2 + Height = 21 + Width = 224 + end + object edtNIFCIF: TcxDBTextEdit + Left = 392 + Top = 41 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'NIF_CIF' + DataBinding.DataSource = dsCliente + Enabled = False + ParentFont = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 3 + Height = 21 + Width = 103 + end + object Button1: TBitBtn + Left = 10 + Top = 10 + Width = 115 + Height = 25 + Action = actElegirContacto + Caption = 'Elegir un cliente' + TabOrder = 0 + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FF00FF00FF00 + FF00FF00FF00EB00EB00C507C600AB13AD00A119A2009F19A000A215A400AA10 + AC00B608B800CE00CE00EF00EF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00B426B000526840004A823400478F310043962F0042992F0043972F004690 + 3100488533004B7237005A405100D201D200FF00FF00FF00FF00FF00FF00FF00 + FF0062654E004F81350047903100409C2E003AA62C0038AA2B0039A72B003E9E + 2D00459230004D84340056753800A0189F00FF00FF00FF00FF00FF00FF00FF00 + FF005F6B4C004B89330042992F0039A82B0032B428002EBB260031B6270037AB + 2A00409C2E00498C3200527B3600B015B100FF00FF00FF00FF00FF00FF00FF00 + FF0090488700488D32003E9E2D0035AF290035B631007ACB7B002DBF280033B2 + 28003DA12D0047903100576A4800EC01EC00FF00FF00FF00FF00FF00FF00FF00 + FF00F008F1005F7351003E9F2D0034B0290080AC8100D2D3D30081BB820032B2 + 28003DA22D004A863A00C519C500FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00EE09EF007861730036923E00598CAE00498CBB004A81A6002B70 + 3A00606D5900D613D600FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00EA0CF400608CD00054A2D80053A1D6004F9DD300488B + C2009D11AC00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF008C67DE005CA9DD005CA9DD005AA7DC0056A4D900519F + D400565FAB00EA00EA00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00EC0DF60060A7DE0063B0E30063B0E30061AEE1005CA9DD0056A4 + D9004E94CC00C105C600FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00C532ED0066B2E5006BB7E9006BB7E90067B3E60061AEE1005AA7 + DC00539FD500A817BE00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00BA3AE7004989B1004A85AC005895BD0068B2E30064B0E4005CA9 + DE0053A0D400AA1BC300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00CA23E8005098C400539AC7004E93BE00437DA2005190BA005198 + C6003C79A000BE08C300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00F804FC006995D40062ACDA005DA6D3005299C6004284AD003C7F + A900535AA100F300F300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00C140ED0071BAEA0068B2E00059A1CF004990BC004378 + AA00C315D600FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00C83EF000808BDF00668BCC007C60C700D116 + E400FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} + end + object Button2: TBitBtn + Left = 131 + Top = 10 + Width = 143 + Height = 25 + Action = actAnadirContacto + Caption = 'Dar de alta un cliente' + TabOrder = 1 + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00D5BFB1006947 + 3100694731006947310069473100694731006947310069473100694731006947 + 3100694731006947310069473100694731006947310069473100D5BFB100F6F2 + EF00B7A29300B7A29300B7A29300B7A29300B7A29300B7A29300B7A29300B7A2 + 9300B7A29300B7A29300B7A29300B7A29300B7A2930069473100D5BFB1002A80 + 1E00136F0D00136F0D00136F0D00136F0D00136F0D00136F0D002A801E00E3D5 + CE00E0D1C900DFCFC600DCCBC100DBC9BF00B7A2930069473100D5BFB10059A8 + 5100448B2F003CA02C0032A4260032A526003D9E2C00438D2E00136F0D00E7DB + D500A1745C00A1745C00A1745C00A1745C00B7A2930069473100D5BFB10080BC + 790042952E0031A62600369B3200369E320032A727003E952C00136F0D00EAE0 + DA00E7DBD500E4D7D000E2D3CB00DFCFC600B7A2930069473100D5BFB100CFE8 + CD004CA741002D942F0071AB90006FA68E0030923100136F0D00EFE8E300EDE4 + DF00A1745C00A1745C00A1745C00A1745C00B7A2930069473100D5BFB100FFFF + FF00B9DDC2004F9DA000559BC8004E96C2004E8E8F00A8C2AA00F2ECE800EFE8 + E300EDE4DF00EAE0DA00E7DBD500E4D7D000B7A2930069473100D5BFB100FFFF + FF00A5CDE8005DAADD005CA9DD0057A4D900519ACC00A0BACA00F5F0ED00F2EC + E800EFE8E300EDE4DF00EAE0DA00E7DBD500B7A2930069473100D5BFB100ECF6 + FA006CB9DF0065B2E50065B1E5005FACDF0056A2D700689EBE00F7F4F100F5F0 + ED00F2ECE800006000000060000000600000B7A2930069473100D5BFB100E9F6 + FA005BB0D5005CA6D50065AFDF0062AFE20058A4D8003285A700FAF8F600F7F4 + F100F7A073000060000033CB510000600000B7A2930069473100D5BFB100F4FA + FC0078C0DD0056A0CD00569DCA00539CCA00448DBB003285A700FDFCFB000060 + 0000006000000060000040D86500006000000060000000600000D5BFB100FFFF + FF00CEEAF40062B5DE005DA7D5004B92BE003285A700C6DCE600FFFFFF000060 + 000060F898005AF28F004DE57A0040D865003AD25C0000600000D5BFB100FFFF + FF00FFFFFF00CEEAF400A5CDE800A5CDE800CEEAF400FFFFFF00FFFFFF000060 + 000000600000006000005AF28F00006000000060000000600000D5BFB100D5BF + B100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BF + B100D5BFB1000060000060F8980000600000D5BFB100D5BFB100FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00006000000060000000600000FF00FF00FF00FF00} + end + object Button3: TBitBtn + Left = 303 + Top = 158 + Width = 192 + Height = 25 + Action = actVerContacto + Caption = 'Ver ficha completa del cliente...' + TabOrder = 8 + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00D5BFB1006947 + 3100694731006947310069473100694731006947310069473100694731006947 + 3100694731006947310069473100694731006947310069473100D5BFB100F6F2 + EF00B7A29300B7A29300B7A29300B7A29300B7A29300B7A29300B7A29300B7A2 + 9300B7A29300B7A29300B7A29300B7A29300B7A2930069473100D5BFB1002A80 + 1E00136F0D00136F0D00136F0D00136F0D00136F0D00136F0D002A801E00E3D5 + CE00E0D1C900DFCFC600DCCBC100DBC9BF00B7A2930069473100D5BFB10059A8 + 5100448B2F003CA02C0032A4260032A526003D9E2C00438D2E00136F0D00E7DB + D500A1745C00A1745C00A1745C00A1745C00B7A2930069473100D5BFB10080BC + 790042952E0031A62600369B3200369E320032A727003E952C00136F0D00EAE0 + DA00E7DBD500E4D7D000E2D3CB00DFCFC600B7A2930069473100D5BFB100CFE8 + CD004CA741002D942F0071AB90006FA68E0030923100136F0D00EFE8E300EDE4 + DF00A1745C00A1745C00A1745C00A1745C00B7A2930069473100D5BFB100FFFF + FF00B9DDC2004F9DA000559BC8004E96C2004E8E8F00A8C2AA00F2ECE800EFE8 + E300EDE4DF00EAE0DA00E7DBD500E4D7D000B7A2930069473100D5BFB100FFFF + FF00A5CDE8005DAADD005CA9DD0057A4D900519ACC00A0BACA00F5F0ED00F2EC + E800EFE8E300EDE4DF00EAE0DA00E7DBD500B7A2930069473100D5BFB100ECF6 + FA006CB9DF0065B2E50065B1E5005FACDF0056A2D700689EBE00F7F4F100F5F0 + ED00F2ECE800EFE8E300EDE4DF00EAE0DA00B7A2930069473100D5BFB100E9F6 + FA005BB0D5005CA6D50065AFDF0062AFE20058A4D8003285A700FAF8F600F7F4 + F100F7A07300F7A07300F7A07300F7A07300B7A2930069473100D5BFB100F4FA + FC0078C0DD0056A0CD00569DCA00539CCA00448DBB003285A700FDFCFB00FAF8 + F600F7F4F100F5F0ED00F2ECE800EFE8E300B7A2930069473100D5BFB100FFFF + FF00CEEAF40062B5DE005DA7D5004B92BE003285A700C6DCE600FFFFFF00FDFC + FB00F7A07300F7A07300F7A07300F7A07300B7A2930069473100D5BFB100FFFF + FF00FFFFFF00CEEAF400A5CDE800A5CDE800CEEAF400FFFFFF00FFFFFF00FFFF + FF00FEFEFD00FCFAF900F9F6F400F6F2EF00F3EEEA0069473100D5BFB100D5BF + B100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BF + B100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} + end + object edtPersonaContacto: TcxDBTextEdit + Left = 63 + Top = 129 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'PERSONA_CONTACTO' + DataBinding.DataSource = dsAlbaran + ParentFont = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 6 + Height = 21 + Width = 283 + end + object edtDireccion: TcxMemo + Left = 63 + Top = 68 + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 4 + Height = 53 + Width = 403 + end + object Button4: TButton + Left = 472 + Top = 68 + Width = 23 + Height = 25 + Action = actElegirDireccion + TabOrder = 5 + end + object Button5: TButton + Left = 472 + Top = 127 + Width = 23 + Height = 25 + Action = actElegirPersonaContacto + TabOrder = 7 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item7: TdxLayoutItem + Caption = 'Button1' + ShowCaption = False + Control = Button1 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item8: TdxLayoutItem + Caption = 'Button2' + ShowCaption = False + Control = Button2 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group2: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group4: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item1: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Nombre:' + Control = edtlNombre + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item2: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'NIF/CIF:' + Control = edtNIFCIF + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group3: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item4: TdxLayoutItem + AutoAligns = [] + AlignHorz = ahClient + AlignVert = avCenter + Caption = 'Direcci'#243'n' + CaptionOptions.AlignVert = tavTop + Control = edtDireccion + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item5: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'Button4' + ShowCaption = False + Control = Button4 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group5: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item3: TdxLayoutItem + AutoAligns = [] + AlignHorz = ahClient + AlignVert = avCenter + Caption = 'Contacto:' + Control = edtPersonaContacto + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item6: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + ShowCaption = False + Control = Button5 + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Item9: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'Button3' + ShowCaption = False + Control = Button3 + ControlOptions.ShowBorder = False + end + end + end + object dsCliente: TDADataSource + Left = 400 + Top = 8 + end + object ActionList1: TActionList + Images = PngImageList + Left = 368 + Top = 8 + object actElegirContacto: TAction + Caption = 'Elegir un cliente' + ImageIndex = 1 + OnExecute = actElegirContactoExecute + end + object actAnadirContacto: TAction + Caption = 'Dar de alta un cliente' + ImageIndex = 0 + OnExecute = actAnadirContactoExecute + end + object actVerContacto: TAction + Caption = 'Ver ficha completa del cliente...' + ImageIndex = 2 + OnExecute = actVerContactoExecute + OnUpdate = actVerContactoUpdate + end + object actElegirDireccion: TAction + Caption = '...' + OnExecute = actElegirDireccionExecute + OnUpdate = actElegirDireccionUpdate + end + object actElegirPersonaContacto: TAction + Caption = '...' + OnExecute = actElegirPersonaContactoExecute + OnUpdate = actElegirPersonaContactoUpdate + end + end + object PngImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000002224944415478DA + 95935D48936114C77FCB36584A6064161515DEA441108B240293E8A682246805 + DEA45020F40196505D081242DE94512B8C20169937056914D52E726B6083B114 + D44CD3D51A216BB6656B5FEF677B5FF31D23033DF070CE03CFFFF73F1CCE6362 + 29D1806AD44E4C5A32F5F58FAA8BD5D73DD8465757034D4D4EFA4E8C62000ED7 + 56E997647490DFE131BD2ED9584971D98EB9478D2603D279B39EE6733DC6DD00 + 68E2EF7E07E95F2291688C48629ABDC71DACABD8AD0334E7B420104D24F4A3D5 + DDD707E60087F66C2234D0CECF2F41643987556566676799C9C4387AD18FF964 + 91E178EA522DF73ADC851D1CA85ECD27D77948995861B552844C2A9962303441 + DD051FA22473E5095C735B3972DAC6D3DB016EED7BC9FD47CFE601E57CF3B661 + C966D1E62C880299549A696915B6639D4892A243D6B6AC349C0B00DA0C22EF7B + 484EBDCA015424512491125036D751B1CBAE8BB5330F12459937EF860A01DEA0 + 8BA0FB0E5B154BAE832C810CACDF594F4DD5C17FC45AF6FA87F3800D95022DFD + ADC47E84682CDF8F222A3C9CF1303915E6C3E5495DDC7AE379C14E546F5F9307 + F8E4C7BC187F4BA6344E49D24C6E8A24AD12E65809A1895102CD6386B3F8B793 + C0F0C73CC0196927188E2297651096A7D096D4922D6659DCC2E7AF43F8CE8C70 + F5AEEBFF1D9CF5D889C7230BAE6F696939BDF6D7BAABACA87A567279647C320F + A8B16DA1BBD7B3A47FA5850168EB702C596C6CA2AA2EFA332E187F0080F1503E + 182A98A90000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AC400000AC401666D82D4000002A94944415478DA + 7D925D48536118C79FF3B5AF36DD66B639CB924243225010BC49BA914004CDE8 + E32228B482EA4689A22289C8CBA28B32B1061688902912D28D16991F6062B2DC + 45921FB954669BF39C9D6DE7EC9CF3EEBC9D2D8C2CB7079E9BF779FEBFF7F922 + 30C69034822060D3665F5F3A0B90B8C672FCAEC07AD8E35DF0DFBFE3F64EC05F + F647F72FC0DB75AED1E1B43D138438C9B26108B11C0443BC30ECF959D731303F + 9411D0D35C612C2ADBEF3319F5B992AC402412037F9003A4C8E05F17679BDA3E + 976BA9D1F4807B95552E877D90222910250556023170E66481D900F0CD17C0AD + 5DDE63F3CBFC505AC0685B6DE34654762B88009B350B8AF658815011C8521C04 + 518487DD530D9D83BECEB480C98EDA13F9798E5E9A61526F098440D1CA572409 + 24298EEFBA271B7BC756D203FA5A8FE49516EDF3313A5D8AA0AAAAD6BF929A01 + CFC7505DCBBBAAD590349C710BD3EEFA57D916D3A954920648249255283031B3 + 3A7BE1D164A5F61CCC0878D15C917FA8C43165D6334E558B25DBD80847E51BCF + A79B3E7D65DB33AEF1E04D570EE5723DB513C4C966E9006101ED0662043C6697 + 30B7DB3021CE6D5C5EEA58FAB22DE0F0ADBD36D25E38A6E6E2126413E00CAA81 + FAE27AE85FEB876EF10D30DC0E2083542432F3E3F8E2CBC5F7FF01CA5A8E3E21 + 6CC6AB8A264636110C7A80EADC2AE88B0E004474C0B026A035C76BF2B2A7ED43 + 29E671680BA0FC76B50F5BC902641501658B90304BA0EA11100A05544C0774D8 + 0834A7396B04DFE8C8E9B58FC19EAD80EB358B84852E44D9F1DF62930C9856B5 + 6320801419A0A27AA079430AB4303E722530EE6FDF3A838B15E729B3E50195C3 + D855B34A247F074A8BA91A40A2808C91803955E6E70233F36F3D0D58C6DEEDD6 + B8D35040179B9DA602305266AC028925A4A0B822A090C20BAB09BF96F35D736E + 53F70B90E997F07974AFDF0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001EC4944415478DA + A5934B6813511486BF541B88CD26620DA262A51BDB8520158308D5852055B01B + A3E8CEBD2E7CE063512852D09D2E82E04604AB1B5D4451B059D8A6010D84D842 + 5B6B6B1A8D414A4C9B18EB4C27F3F466D41943ED4233309C3BDC39DFFFDF9F7B + 3C9665D1C8E379323CD510C1061C3DD0697F48C531BEE7A7EDB57F6B072DADBB + 9C1F4DE154D74D34DD70DE43272FB9805AF3975484E56F1A856289C2D23CFB4F + 44D8D4BE17DD30B932A8D629B7358D70F7C1D39F8023FBB6917B35C0D78F590C + 43EC5A06954A8505A5C4B1CB2947F14F07D158D205F48436F03E761E640FEB7C + 3ED660204B3263B9597A2F24ED866B8F59DD414F28C8E7443FDE6A55A883AAA9 + 28F232F3FA7ABA8EDFAC53FEBD1E1A4DBB805A0685370F91E65E0880084BD358 + 9255CCB65EDAF784571E413378F97ABC1E90C8C6C88EDC6687E9150EAAA415D8 + BCFB14DD9D875734D76A2235E102B674A85C1CEEA3B498E374F020A666727F21 + 4E662ECFDBAB19BBB9EFD6B3BA0C423B37BA80A4F188E733A32881327EA91991 + 22924FA7B9E427373B45FADCB4A3ACFD72929E78E702EE1506C8E68B18AD0AEA + 5A595C2F44A02D3495BD7CF8344EF2CC24D7EFC4567770361EA65C2EFCF5AA06 + 0241A2E1215BD5302DBB9AA24ECE645C4077D77606A3F17F9E0307D07F23F2FF + C3D4E838FF008E7263BE13CA147C0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end> + Left = 304 + Top = 8 + Bitmap = {} + end + object dsAlbaran: TDADataSource + Left = 336 + Top = 8 + end +end diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewDatosYSeleccionClienteAlbaran.pas b/Source/Modulos/Albaranes de cliente/Views/uViewDatosYSeleccionClienteAlbaran.pas new file mode 100644 index 0000000..27f3772 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewDatosYSeleccionClienteAlbaran.pas @@ -0,0 +1,425 @@ +unit uViewDatosYSeleccionClienteAlbaran; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, StdCtrls, cxControls, cxContainer, cxEdit, cxLabel, + cxDBLabel, ExtCtrls, DB, uDADataTable, uBizContactos, + ComCtrls, ToolWin, ActnList, ImgList, PngImageList, cxTextEdit, cxDBEdit, + pngimage, JvExControls, JvComponent, JvButton, JvTransparentButton, Mask, + DBCtrls, uClientesController, dxLayoutControl, Buttons, uDAInterfaces, + cxMaskEdit, cxButtonEdit, uBizAlbaranesCliente, uBizDireccionesContacto, + uDireccionesContactoController, Menus, cxLookAndFeelPainters, cxButtons, + cxMemo; + +type + IViewDatosYSeleccionClienteAlbaran = interface(IViewBase) + ['{02F0A00C-FAE7-43A4-B959-D2B929FF287A}'] + function GetAlbaran: IBizAlbaranCliente; + procedure SetAlbaran(const Value: IBizAlbaranCliente); + property Albaran: IBizAlbaranCliente read GetAlbaran write SetAlbaran; + + function GetCliente: IBizCliente; + procedure SetCliente(Value: IBizCliente); + property Cliente: IBizCliente read GetCliente write SetCliente; + + function GetID_Cliente: integer; + procedure SetID_Cliente(const Value: integer); + property ID_Cliente: integer read GetID_Cliente write SetID_Cliente; + + function GetOnClienteChanged : TNotifyEvent; + procedure SetOnClienteChanged (const Value : TNotifyEvent); + property OnClienteChanged : TNotifyEvent read GetOnClienteChanged + write SetOnClienteChanged; + + procedure ElegirPersonaContacto; + procedure ElegirDireccionCliente; + procedure ElegirCliente; + procedure VerFichaCliente; + procedure AnadirNuevoCliente; + procedure RefrescarDireccion; + end; + + TfrViewDatosYSeleccionClienteAlbaran = class(TfrViewBase, IViewDatosYSeleccionClienteAlbaran) + dsCliente: TDADataSource; + ActionList1: TActionList; + actElegirContacto: TAction; + actAnadirContacto: TAction; + actVerContacto: TAction; + PngImageList: TPngImageList; + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Item1: TdxLayoutItem; + edtlNombre: TcxDBTextEdit; + dxLayoutControl1Item2: TdxLayoutItem; + edtNIFCIF: TcxDBTextEdit; + Button1: TBitBtn; + dxLayoutControl1Item7: TdxLayoutItem; + Button2: TBitBtn; + dxLayoutControl1Item8: TdxLayoutItem; + Button3: TBitBtn; + dxLayoutControl1Item9: TdxLayoutItem; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Group2: TdxLayoutGroup; + dsAlbaran: TDADataSource; + actElegirDireccion: TAction; + actElegirPersonaContacto: TAction; + dxLayoutControl1Item3: TdxLayoutItem; + edtPersonaContacto: TcxDBTextEdit; + dxLayoutControl1Group4: TdxLayoutGroup; + dxLayoutControl1Item4: TdxLayoutItem; + edtDireccion: TcxMemo; + Button4: TButton; + dxLayoutControl1Item5: TdxLayoutItem; + dxLayoutControl1Group3: TdxLayoutGroup; + dxLayoutControl1Item6: TdxLayoutItem; + Button5: TButton; + dxLayoutControl1Group5: TdxLayoutGroup; + procedure actElegirContactoExecute(Sender: TObject); + procedure actAnadirContactoExecute(Sender: TObject); + procedure actVerContactoUpdate(Sender: TObject); + procedure edtPersonaContactoPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure edtDireccionPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure actVerContactoExecute(Sender: TObject); + procedure actElegirDireccionUpdate(Sender: TObject); + procedure actElegirDireccionExecute(Sender: TObject); + procedure actElegirPersonaContactoExecute(Sender: TObject); + procedure actElegirPersonaContactoUpdate(Sender: TObject); + + private + FOnClienteChanged : TNotifyEvent; + FMsgElegirCliente: String; + protected + FClientesController : IClientesController; + FDireccionesController : IDireccionesContactoController; + FAlbaran : IBizAlbaranCliente; + FCliente : IBizCliente; + FDireccion : IBizDireccionesContacto; + function GetCliente: IBizCliente; virtual; + procedure SetCliente(Value: IBizCliente); virtual; + function GetOnClienteChanged : TNotifyEvent; + procedure SetOnClienteChanged (const Value : TNotifyEvent); + procedure SetReadOnly(Value: Boolean); override; + function GetID_Cliente: integer; virtual; + procedure SetID_Cliente(const Value: integer); virtual; + function GetAlbaran: IBizAlbaranCliente; + procedure SetAlbaran(const Value: IBizAlbaranCliente); + procedure EscribirTextoDireccion; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure ElegirPersonaContacto; + procedure ElegirDireccionCliente; + procedure ElegirCliente; + procedure VerFichaCliente; + procedure AnadirNuevoCliente; + procedure RefrescarDireccion; + property Albaran: IBizAlbaranCliente read GetAlbaran write SetAlbaran; + property Cliente: IBizCliente read GetCliente write SetCliente; + property OnClienteChanged : TNotifyEvent read GetOnClienteChanged write SetOnClienteChanged; + property ID_Cliente: integer read GetID_Cliente write SetID_Cliente; + end; + +implementation + +{$R *.dfm} + +uses + uDataModuleClientes, Math, uCustomView, uBizContactosPersonal, uDialogUtils; + + +procedure TfrViewDatosYSeleccionClienteAlbaran.actElegirContactoExecute(Sender: TObject); +begin + ElegirCliente; +end; + +procedure TfrViewDatosYSeleccionClienteAlbaran.actElegirDireccionExecute( + Sender: TObject); +begin + inherited; + ElegirDireccionCliente; +end; + +procedure TfrViewDatosYSeleccionClienteAlbaran.actElegirDireccionUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := Assigned(FCliente.Direcciones) and + (FCliente.Direcciones.Active) and (FCliente.Direcciones.RecordCount > 0); +end; + +procedure TfrViewDatosYSeleccionClienteAlbaran.actElegirPersonaContactoExecute( + Sender: TObject); +begin + inherited; + ElegirPersonaContacto; +end; + +procedure TfrViewDatosYSeleccionClienteAlbaran.actElegirPersonaContactoUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := Assigned(FCliente.Personal) and + (FCliente.Personal.Active) and (FCliente.Personal.RecordCount > 0); +end; + +procedure TfrViewDatosYSeleccionClienteAlbaran.actAnadirContactoExecute( + Sender: TObject); +begin + AnadirNuevoCliente; +end; + +procedure TfrViewDatosYSeleccionClienteAlbaran.actVerContactoExecute( + Sender: TObject); +begin + inherited; + VerFichaCliente; +end; + +procedure TfrViewDatosYSeleccionClienteAlbaran.actVerContactoUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (Length(edtlNombre.Text) > 0); +end; + +procedure TfrViewDatosYSeleccionClienteAlbaran.AnadirNuevoCliente; +var + ACliente : IBizCliente; +begin + inherited; + ACliente := (FClientesController.Nuevo as IBizCliente); + FClientesController.Ver(ACliente); + Self.Cliente := ACliente; +end; + +constructor TfrViewDatosYSeleccionClienteAlbaran.Create(AOwner: TComponent); +begin + inherited; + FMsgElegirCliente := 'Elija el cliente al que se le realizar el presupuesto.'; + FClientesController := TClientesController.Create; + FDireccionesController := TDireccionesContactoController.Create; + + edtlNombre.Enabled := False; + edtNIFCIF.Enabled := False; + edtDireccion.Enabled := False; + edtPersonaContacto.Enabled := False; +end; + +destructor TfrViewDatosYSeleccionClienteAlbaran.Destroy; +begin + FClientesController := NIL; + FDireccionesController := NIL; + inherited; +end; + +procedure TfrViewDatosYSeleccionClienteAlbaran.edtDireccionPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + inherited; + ElegirDireccionCliente; +end; + +procedure TfrViewDatosYSeleccionClienteAlbaran.edtPersonaContactoPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + inherited; + ElegirPersonaContacto; +end; + +procedure TfrViewDatosYSeleccionClienteAlbaran.ElegirCliente; +var + ACliente : IBizCliente; +begin + inherited; + + ACliente := (FClientesController.ElegirContacto(FClientesController.BuscarTodos, FMsgElegirCliente, False) as IBizCliente); + + if Assigned(ACliente) then + Self.Cliente := ACliente; + ACliente := Nil; +end; + +procedure TfrViewDatosYSeleccionClienteAlbaran.ElegirDireccionCliente; +var + ADireccion : IBizDireccionesContacto; +begin + inherited; + ADireccion := FClientesController.ElegirDireccionEntrega(FCliente, ' '); + + if Assigned(ADireccion) then + begin + FDireccion := ADireccion; + FAlbaran.Edit; + + if FDireccion.IDIsNull then + begin + FAlbaran.ClearField('ID_DIRECCION'); + FAlbaran.ClearField('IMPORTE_PORTE'); + end + else begin + FAlbaran.ID_DIRECCION := FDireccion.ID; + FAlbaran.IMPORTE_PORTE := FDireccion.PORTE; + end; + //Siempre asignaremos la persona de contacto ya sea de las direcciones del contacto o la ID_Direccion=0 que es la principal de la ficha + FAlbaran.PERSONA_CONTACTO := FDireccion.PERSONA_CONTACTO; + EscribirTextoDireccion; + end; +end; + +procedure TfrViewDatosYSeleccionClienteAlbaran.ElegirPersonaContacto; +var + APersona : IBizContactoPersonal; +begin + inherited; + APersona := FClientesController.ElegirPersonaContacto(FCliente.Personal, 'El cliente dispone de personas de contacto dadas de alta en su ficha. Seleccione la que quiere utilizar.'); + if Assigned(APersona) then + begin + FAlbaran.Edit; + FAlbaran.PERSONA_CONTACTO := APersona.NOMBRE; + end; +end; + +procedure TfrViewDatosYSeleccionClienteAlbaran.EscribirTextoDireccion; +var + ACadena : String; +begin + ACadena := ''; + + if Assigned(FDireccion) then + ACadena := Format('%s %s %s %s', + [FDireccion.CALLE, FDireccion.POBLACION, + FDireccion.CODIGO_POSTAL, FDireccion.PROVINCIA]); + + edtDireccion.Text := ACadena; +end; + +function TfrViewDatosYSeleccionClienteAlbaran.GetCliente: IBizCliente; +begin + Result := FCliente; +end; + +function TfrViewDatosYSeleccionClienteAlbaran.GetID_Cliente: integer; +begin + Result := -1; + if Assigned(FCliente) then + Result := FCliente.ID; +end; + +procedure TfrViewDatosYSeleccionClienteAlbaran.SetCliente(Value: IBizCliente); +begin + FCliente := Value; + if Assigned(FCliente) then + begin + dsCliente.DataTable := FCliente.DataTable; + + if not FCliente.DataTable.Active then + FCliente.DataTable.Active := True; + + //Solo podremos establecer persona de contacto si se ha asignado un cliente + if FCliente.ID > 0 then + edtPersonaContacto.Enabled := True; + +// if FCliente.Direcciones.RecordCount > 0 then +// ElegirDireccionCliente +// else begin +// FAlbaran.Edit; +// FAlbaran.PERSONA_CONTACTO := FCliente.PERSONA_CONTACTO; +// RefrescarDireccion; +// end; + end + else begin + dsCliente.DataTable := NIL; + FCliente := NIL; + FDireccion := NIL; + edtPersonaContacto.Enabled := False; + end; + + if Assigned(FOnClienteChanged) then + FOnClienteChanged(Self); +end; + +procedure TfrViewDatosYSeleccionClienteAlbaran.SetID_Cliente(const Value: integer); +begin + Self.Cliente := IBizCliente(FClientesController.Buscar(Value)); +end; + +function TfrViewDatosYSeleccionClienteAlbaran.GetOnClienteChanged: TNotifyEvent; +begin + Result := FOnClienteChanged; +end; + +function TfrViewDatosYSeleccionClienteAlbaran.GetAlbaran: IBizAlbaranCliente; +begin + Result := FAlbaran; +end; + +procedure TfrViewDatosYSeleccionClienteAlbaran.RefrescarDireccion; +begin + FDireccion := FDireccionesController.Nuevo; + + if (not FAlbaran.ID_DIRECCIONIsNull) and + (FDireccionesController.Localizar(FCliente.Direcciones, FAlbaran.ID_DIRECCION)) then + FDireccionesController.CopiarDireccion(FCliente.Direcciones, FDireccion) + else + FDireccionesController.CopiarDireccionFiscal(FCliente, FDireccion); + + EscribirTextoDireccion; +end; + +procedure TfrViewDatosYSeleccionClienteAlbaran.SetOnClienteChanged( + const Value: TNotifyEvent); +begin + FOnClienteChanged := Value; +end; + +procedure TfrViewDatosYSeleccionClienteAlbaran.SetAlbaran( + const Value: IBizAlbaranCliente); +begin + FAlbaran := Value; + if Assigned(FAlbaran) then + begin + dsAlbaran.DataTable := FAlbaran.DataTable; + + FCliente := FAlbaran.Cliente; + dsCliente.DataTable := FCliente.DataTable; + + if not FCliente.DataTable.Active then + FCliente.DataTable.Active := True; + + //Solo podremos establecer persona de contacto si se ha asignado un cliente + if FCliente.ID > 0 then + edtPersonaContacto.Enabled := True; + + RefrescarDireccion; + end + else begin + dsAlbaran.DataTable := NIL; + FCliente := NIL; + FDireccion := NIL; + end; +end; + +procedure TfrViewDatosYSeleccionClienteAlbaran.SetReadOnly(Value: Boolean); +begin + inherited; + + if (csLoading in Self.ComponentState) then + Exit; + + actAnadirContacto.Enabled := not ReadOnly; + actElegirContacto.Enabled := not ReadOnly; +end; + +procedure TfrViewDatosYSeleccionClienteAlbaran.VerFichaCliente; +begin + if not Assigned(Cliente) then + ShowErrorMessage('No se ha indicado un cliente', 'El presupuesto no tiene ningn cliente asociado a mostrar.') + else begin + FClientesController.Ver(Cliente); + end; +end; + +end. diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewDetallesAlbaranCliente.dcu b/Source/Modulos/Albaranes de cliente/Views/uViewDetallesAlbaranCliente.dcu new file mode 100644 index 0000000..d7d9287 Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Views/uViewDetallesAlbaranCliente.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewDetallesAlbaranCliente.dfm b/Source/Modulos/Albaranes de cliente/Views/uViewDetallesAlbaranCliente.dfm new file mode 100644 index 0000000..2c0cf03 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewDetallesAlbaranCliente.dfm @@ -0,0 +1,116 @@ +inherited frViewDetallesAlbaranCliente: TfrViewDetallesAlbaranCliente + inherited ToolBar1: TToolBar + Height = 95 + ExplicitHeight = 95 + inherited FontName: TJvFontComboBox [4] + Left = 56 + Top = 22 + ExplicitLeft = 56 + ExplicitTop = 22 + end + inherited ToolButton14: TToolButton [5] + Left = 201 + Wrap = False + ExplicitLeft = 201 + end + inherited FontSize: TEdit + Left = 266 + Top = 22 + ExplicitLeft = 266 + ExplicitTop = 22 + end + inherited UpDown1: TUpDown + Left = 308 + Top = 22 + ExplicitLeft = 308 + ExplicitTop = 22 + end + inherited ToolButton13: TToolButton + Left = 325 + Top = 22 + ExplicitLeft = 325 + ExplicitTop = 22 + end + inherited ToolButton11: TToolButton [9] + Left = 333 + Top = 22 + ExplicitLeft = 333 + ExplicitTop = 22 + end + inherited ToolButton12: TToolButton [10] + Left = 0 + Top = 22 + Wrap = True + ExplicitLeft = 0 + ExplicitTop = 22 + ExplicitHeight = 27 + end + inherited ToolButton9: TToolButton [11] + Left = 0 + Top = 49 + ExplicitLeft = 0 + ExplicitTop = 49 + end + inherited ToolButton10: TToolButton [12] + Left = 145 + Top = 49 + ExplicitLeft = 145 + ExplicitTop = 49 + end + inherited ToolButton6: TToolButton [13] + Left = 270 + Top = 49 + ExplicitLeft = 270 + ExplicitTop = 49 + end + inherited ToolButton7: TToolButton [14] + Left = 336 + Top = 49 + Wrap = True + ExplicitLeft = 336 + ExplicitTop = 49 + end + inherited ToolButton8: TToolButton [15] + Left = 0 + Top = 71 + ExplicitLeft = 0 + ExplicitTop = 71 + end + end + inherited cxGrid: TcxGrid + Top = 121 + Height = 183 + inherited cxGridView: TcxGridDBTableView + inherited cxGridViewTIPO: TcxGridDBColumn + Visible = False + VisibleForCustomization = False + end + end + end + inherited TBXDock1: TTBXDock + Top = 95 + inherited TBXToolbar1: TTBXToolbar + DockPos = 0 + inherited TBXSubmenuItem1: TTBXSubmenuItem + Visible = False + end + object TBXItem18: TTBXItem [1] + Action = actAnadirArticulos + DisplayMode = nbdmImageAndText + end + end + end + inherited ActionListContenido: TActionList + inherited actAnadirArticulos: TAction + Caption = 'A'#241'adir art'#237'culos...' + end + end + inherited GridGeneralPopupMenu: TPopupMenu + object Aadirartculos1: TMenuItem [4] + Action = actAnadirArticulos + end + object N2: TMenuItem [5] + Caption = '-' + end + end +end diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewDetallesAlbaranCliente.pas b/Source/Modulos/Albaranes de cliente/Views/uViewDetallesAlbaranCliente.pas new file mode 100644 index 0000000..78f6ac0 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewDetallesAlbaranCliente.pas @@ -0,0 +1,86 @@ +unit uViewDetallesAlbaranCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, + cxData, cxDataStorage, cxEdit, DB, cxDBData, ImgList, PngImageList, + uDADataTable, ActnList, ComCtrls, ToolWin, cxGridLevel, cxClasses, cxControls, + cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + cxGrid, cxImageComboBox, cxTextEdit, cxMaskEdit, cxCheckBox, cxCurrencyEdit, + Grids, DBGrids, StdCtrls, ExtCtrls, cxRichEdit, ExtActns, StdActns, + JvExStdCtrls, JvCombobox, JvColorCombo, TB2Item, TBX, TB2Dock, TB2Toolbar, + uControllerDetallesArticulos, uBizAlbaranesCliente, cxDropDownEdit, + cxCalendar, cxDBEdit, dxLayoutControl, cxContainer, cxLookupEdit, + cxDBLookupEdit, cxDBLookupComboBox, uDAInterfaces, cxButtonEdit, + uViewDetallesArticulos, Menus, cxGridCustomPopupMenu, cxGridPopupMenu, + uViewDetallesArticulosParaVenta, cxEditRepositoryItems; + +type + IViewDetallesAlbaranCliente = interface(IViewDetallesArticulos) + ['{9326E1A0-BD5E-4BE1-BB3B-6A52C3394118}'] + function GetAlbaran: IBizAlbaranCliente; + procedure SetAlbaran(const Value: IBizAlbaranCliente); + property Albaran: IBizAlbaranCliente read GetAlbaran write SetAlbaran; + end; + + TfrViewDetallesAlbaranCliente = class(TfrViewDetallesArticulosParaVenta, IViewDetallesAlbaranCliente) + N2: TMenuItem; + Aadirartculos1: TMenuItem; + TBXItem18: TTBXItem; + protected + FAlbaran: IBizAlbaranCliente; + function GetAlbaran: IBizAlbaranCliente; + procedure SetAlbaran(const Value: IBizAlbaranCliente); + + procedure AnadirArticulosInterno; override; + procedure RellenarArticulosInterno; override; + function AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean; override; + + public + property Albaran: IBizAlbaranCliente read GetAlbaran write SetAlbaran; + end; + +implementation +{$R *.dfm} + +uses uDetallesAlbaranClienteController, uViewDetallesBase; + +{ TfrViewDetallesAlbaranProveedor } + +function TfrViewDetallesAlbaranCliente.AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean; +begin + if (Albaran.TIPO = CTE_TIPO_ALBARAN_DEV) then + Result := (Controller as IDetallesAlbaranClienteController).AnadirArticulo(Detalles, pReferencia, TipoReferencia, Albaran.Cliente.ID, -1) + else + Result := (Controller as IDetallesAlbaranClienteController).AnadirArticulo(Detalles, pReferencia, TipoReferencia, Albaran.Cliente.ID); +end; + +procedure TfrViewDetallesAlbaranCliente.AnadirArticulosInterno; +begin + if (Albaran.TIPO = CTE_TIPO_ALBARAN_DEV) then + (Controller as IDetallesAlbaranClienteController).AnadirArticulos(Detalles, Albaran.Cliente, true, -1) + else + (Controller as IDetallesAlbaranClienteController).AnadirArticulos(Detalles, Albaran.Cliente); +end; + +function TfrViewDetallesAlbaranCliente.GetAlbaran: IBizAlbaranCliente; +begin + Result := FAlbaran; +end; + +procedure TfrViewDetallesAlbaranCliente.RellenarArticulosInterno; +begin + if (Albaran.TIPO = CTE_TIPO_ALBARAN_DEV) then + (Controller as IDetallesAlbaranClienteController).AnadirArticulos(Detalles, Albaran.Cliente, False, -1) + else + (Controller as IDetallesAlbaranClienteController).AnadirArticulos(Detalles, Albaran.Cliente, False); +end; + +procedure TfrViewDetallesAlbaranCliente.SetAlbaran(const Value: IBizAlbaranCliente); +begin + FAlbaran := Value; +end; + +end. diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewDireccionEntregaAlbaranCliente.dcu b/Source/Modulos/Albaranes de cliente/Views/uViewDireccionEntregaAlbaranCliente.dcu new file mode 100644 index 0000000..4fa76fd Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Views/uViewDireccionEntregaAlbaranCliente.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewDireccionEntregaAlbaranCliente.dfm b/Source/Modulos/Albaranes de cliente/Views/uViewDireccionEntregaAlbaranCliente.dfm new file mode 100644 index 0000000..5e29e3f --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewDireccionEntregaAlbaranCliente.dfm @@ -0,0 +1,217 @@ +inherited frViewDireccionEntregaAlbaranCliente: TfrViewDireccionEntregaAlbaranCliente + Width = 337 + Height = 126 + ExplicitWidth = 337 + ExplicitHeight = 126 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 337 + Height = 126 + Align = alClient + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + object eCalle: TcxDBTextEdit + Left = 64 + Top = 10 + DataBinding.DataField = 'CALLE' + DataBinding.DataSource = dsAlbaran + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 263 + end + object eCodigoPostal: TcxDBTextEdit + Left = 262 + Top = 37 + DataBinding.DataField = 'CODIGO_POSTAL' + DataBinding.DataSource = dsAlbaran + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 2 + Width = 65 + end + object eTlfTrabajo: TcxDBTextEdit + Left = 205 + Top = 91 + DataBinding.DataField = 'TELEFONO' + DataBinding.DataSource = dsAlbaran + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 5 + Width = 122 + end + object ePersonaContacto: TcxDBTextEdit + Left = 64 + Top = 91 + DataBinding.DataField = 'PERSONA_CONTACTO' + DataBinding.DataSource = dsAlbaran + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 4 + Width = 84 + end + object cbProvincia: TcxDBComboBox + Left = 64 + Top = 37 + DataBinding.DataField = 'PROVINCIA' + DataBinding.DataSource = dsAlbaran + Properties.ImmediatePost = True + Properties.ImmediateUpdateText = True + Properties.PostPopupValueOnTab = True + Properties.OnInitPopup = cbProvinciaPropertiesInitPopup + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Width = 162 + end + object cbPoblacion: TcxDBComboBox + Left = 64 + Top = 64 + DataBinding.DataField = 'POBLACION' + DataBinding.DataSource = dsAlbaran + Properties.ImmediatePost = True + Properties.ImmediateUpdateText = True + Properties.PostPopupValueOnTab = True + Properties.OnInitPopup = cbPoblacionPropertiesInitPopup + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 3 + Width = 263 + end + object dxLayoutGroup1: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item1: TdxLayoutItem + Caption = 'Calle:' + Control = eCalle + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group3: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group2: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item2: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Provincia:' + Control = cbProvincia + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item4: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'C.P.:' + Control = eCodigoPostal + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item3: TdxLayoutItem + Caption = 'Poblaci'#243'n:' + Control = cbPoblacion + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group4: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item6: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Contacto:' + Control = ePersonaContacto + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item5: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'Tel'#233'fono:' + Control = eTlfTrabajo + ControlOptions.ShowBorder = False + end + end + end + end + end + object dsAlbaran: TDADataSource + Left = 8 + Top = 8 + end + object dsAlmacenes: TDADataSource + Left = 8 + Top = 40 + end +end diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewDireccionEntregaAlbaranCliente.pas b/Source/Modulos/Albaranes de cliente/Views/uViewDireccionEntregaAlbaranCliente.pas new file mode 100644 index 0000000..8246f11 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewDireccionEntregaAlbaranCliente.pas @@ -0,0 +1,243 @@ +unit uViewDireccionEntregaAlbaranCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, uBizAlbaranesCliente, cxGraphics, dxLayoutControl, cxMemo, + cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxLookupEdit, + cxDBLookupEdit, cxDBLookupComboBox, StdCtrls, cxControls, DB, uDADataTable, + ActnList, uAlbaranesClienteController, Buttons, cxDBEdit, uDAInterfaces; + +type + IViewDireccionEntregaAlbaranCliente = interface(IViewBase) + ['{C23A361A-98CA-450C-9F29-2DA7877601EE}'] + function GetAlbaranCliente: IBizAlbaranCliente; + procedure SetAlbaranCliente(const Value: IBizAlbaranCliente); + property AlbaranCliente: IBizAlbaranCliente read GetAlbaranCliente write SetAlbaranCliente; + end; + + TfrViewDireccionEntregaAlbaranCliente = class(TfrViewBase, IViewDireccionEntregaAlbaranCliente) + dxLayoutControl1: TdxLayoutControl; + dxLayoutGroup1: TdxLayoutGroup; + dsAlbaran: TDADataSource; + dsAlmacenes: TDADataSource; + dxLayoutControl1Item1: TdxLayoutItem; + eCalle: TcxDBTextEdit; + dxLayoutControl1Item4: TdxLayoutItem; + eCodigoPostal: TcxDBTextEdit; + dxLayoutControl1Item5: TdxLayoutItem; + eTlfTrabajo: TcxDBTextEdit; + dxLayoutControl1Item6: TdxLayoutItem; + ePersonaContacto: TcxDBTextEdit; + dxLayoutControl1Group3: TdxLayoutGroup; + dxLayoutControl1Group4: TdxLayoutGroup; + dxLayoutControl1Item2: TdxLayoutItem; + cbProvincia: TcxDBComboBox; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Item3: TdxLayoutItem; + cbPoblacion: TcxDBComboBox; + dxLayoutControl1Group2: TdxLayoutGroup; + procedure cbListaPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure cbProvinciaPropertiesInitPopup(Sender: TObject); + procedure cbPoblacionPropertiesInitPopup(Sender: TObject); + protected +// FAlmacenesController : IAlmacenesController; +// FAlmacenes: IBizAlmacen; + FAlbaran : IBizAlbaranCliente; + FController : IAlbaranesClienteController; + FProvincias : TStringList; + FIDProvincia : Integer; //Almacenar la provincia que hay seleccionada para no cargar las poblaciones si no es necesario + FPoblaciones : TStringList; + procedure CargarProvincias; + procedure CargarPoblaciones; + function GetAlbaranCliente: IBizAlbaranCliente; + procedure SetAlbaranCliente(const Value: IBizAlbaranCliente); + procedure RefrescarDireccion; + public + property AlbaranCliente: IBizAlbaranCliente read GetAlbaranCliente write SetAlbaranCliente; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + uEditorRegistryUtils, + uProvinciasPoblacionesController, uStringsUtils; + + +procedure TfrViewDireccionEntregaAlbaranCliente.CargarPoblaciones; +var + i : integer; + +begin + if (FIDProvincia <> StrToInt(FProvincias.Values[cbProvincia.Text])) then + Begin + FIDProvincia := StrToInt(FProvincias.Values[cbProvincia.Text]); + with TProvinciasPoblacionesController.Create do + try + FPoblaciones := DarListaPoblaciones(FIDProvincia); + + with cbPoblacion.Properties.Items do + begin + BeginUpdate; + try + Clear; + for i := 0 to FPoblaciones.Count - 1 do + Add(FPoblaciones.Names[i]); + finally + EndUpdate; + end; + end; + finally + Free; + end; + End; +end; + +procedure TfrViewDireccionEntregaAlbaranCliente.CargarProvincias; +var + i : integer; +begin + with TProvinciasPoblacionesController.Create do + try + FProvincias := DarListaProvincias; + + with cbProvincia.Properties.Items do + begin + BeginUpdate; + try + Clear; + for i := 0 to FProvincias.Count - 1 do + Add(FProvincias.Names[i]); + finally + EndUpdate; + end; + end; + finally + Free; + end; +end; + +procedure TfrViewDireccionEntregaAlbaranCliente.cbListaPropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin +{ if Assigned(FAlbaran) and (FAlbaran.ID_ALMACEN <> FAlmacenes.ID) then + begin + FAlbaran.Edit; + FAlbaran.CALLE := FAlmacenes.CALLE; + FAlbaran.POBLACION := FAlmacenes.POBLACION; + FAlbaran.POBLACION := FAlmacenes.POBLACION; + FAlbaran.PROVINCIA := FAlmacenes.PROVINCIA; + FAlbaran.CODIGO_POSTAL := FAlmacenes.CODIGO_POSTAL; + FAlbaran.PERSONA_CONTACTO := FAlmacenes.PERSONA_CONTACTO; + FAlbaran.TELEFONO := FAlmacenes.TELEFONO; + RefrescarDireccion; + end;} +end; + +procedure TfrViewDireccionEntregaAlbaranCliente.cbPoblacionPropertiesInitPopup( + Sender: TObject); +begin + inherited; + ShowHourglassCursor; + try + FreeANDNIL(FPoblaciones); + if not Assigned(FProvincias) then + CargarProvincias; + if not EsCadenaVacia(cbProvincia.Text) and (FProvincias.IndexOfName(cbProvincia.Text) <> -1) then + CargarPoblaciones + finally + HideHourglassCursor; + end; +end; + +procedure TfrViewDireccionEntregaAlbaranCliente.cbProvinciaPropertiesInitPopup( + Sender: TObject); +begin + inherited; + ShowHourglassCursor; + try + if not Assigned(FProvincias) then + CargarProvincias; + finally + HideHourglassCursor; + end; +end; + +constructor TfrViewDireccionEntregaAlbaranCliente.Create(AOwner: TComponent); +begin + inherited; + FIDProvincia := 0; + FAlbaran := NIL; + FProvincias := NIL; + FPoblaciones := NIL; + + { FController := TAlbaranesClienteController.Create; + FAlmacenesController := TAlmacenesController.Create; + FAlmacenes := FAlmacenesController.BuscarTodos; + FAlmacenes.DataTable.Active := True; + dsAlmacenes.DataTable := FAlmacenes.DataTable;} +end; + +destructor TfrViewDireccionEntregaAlbaranCliente.Destroy; +begin +{ cbLista.Properties.OnValidate := Nil; + FAlmacenesController := Nil; + FAlmacenes := Nil; + FController := NIL; +} + if Assigned(FProvincias) then + FreeANDNIL(FProvincias); + + if Assigned(FPoblaciones) then + FreeANDNIL(FPoblaciones); + + FAlbaran := NIL; + inherited; +end; + +function TfrViewDireccionEntregaAlbaranCliente.GetAlbaranCliente: IBizAlbaranCliente; +begin + Result := FAlbaran; +end; + +procedure TfrViewDireccionEntregaAlbaranCliente.RefrescarDireccion; +begin +{ memDireccion.Lines.Clear; + if Assigned(FAlbaran) then + begin + memDireccion.Lines.Add(FAlbaran.CALLE); + memDireccion.Lines.Add(FAlbaran.CODIGO_POSTAL + ' ' + FPedido.POBLACION); + memDireccion.Lines.Add(FAlbaran.PROVINCIA); + end;} +end; + +procedure TfrViewDireccionEntregaAlbaranCliente.SetAlbaranCliente( + const Value: IBizAlbaranCliente); +begin + + FAlbaran := Value; + if Assigned(FAlbaran) then + dsAlbaran.DataTable := FAlbaran.DataTable + else + dsAlbaran.DataTable := NIL; + +{ cbLista.Properties.OnValidate := NIL; + dsAlbaran.DataTable := nil; + + FAlbaran := Value; + + if not FAlbaran.EsNuevo then + RefrescarDireccion; + + // Esto al final para que no salten los eventos del cxComboBox + dsAlbaran.DataTable := FAlbaran.DataTable; + cbLista.Properties.OnValidate := cbListaPropertiesValidate;} +end; + +end. diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewElegirArticulosAlbaranesCliente.dcu b/Source/Modulos/Albaranes de cliente/Views/uViewElegirArticulosAlbaranesCliente.dcu new file mode 100644 index 0000000..449570a Binary files /dev/null and b/Source/Modulos/Albaranes de cliente/Views/uViewElegirArticulosAlbaranesCliente.dcu differ diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewElegirArticulosAlbaranesCliente.dfm b/Source/Modulos/Albaranes de cliente/Views/uViewElegirArticulosAlbaranesCliente.dfm new file mode 100644 index 0000000..05a03b2 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewElegirArticulosAlbaranesCliente.dfm @@ -0,0 +1,30 @@ +inherited frViewElegirArticulosAlbaranesCliente: TfrViewElegirArticulosAlbaranesCliente + inherited frViewFiltroBase1: TfrViewFiltroBase + inherited TBXDockablePanel1: TTBXDockablePanel + inherited dxLayoutControl1: TdxLayoutControl + inherited edtFechaIniFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 225 + ExplicitLeft = 225 + ExplicitWidth = 121 + Width = 121 + end + inherited eLista: TcxComboBox + Left = 383 + ExplicitLeft = 383 + ExplicitWidth = 322 + Width = 322 + end + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39226.746968310190000000 + BuiltInReportLink = True + end + end +end diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewElegirArticulosAlbaranesCliente.pas b/Source/Modulos/Albaranes de cliente/Views/uViewElegirArticulosAlbaranesCliente.pas new file mode 100644 index 0000000..489bc42 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewElegirArticulosAlbaranesCliente.pas @@ -0,0 +1,28 @@ +unit uViewElegirArticulosAlbaranesCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewArticulos, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxImageComboBox, cxCurrencyEdit, + cxSpinEdit, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, + dxPSCompsProvider, dxPSFillPatterns, dxPSEdgePatterns, ImgList, PngImageList, + cxGridCustomPopupMenu, cxGridPopupMenu, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, + uDADataTable, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, dxPgsDlg, + ActnList, TB2Item, TBX, TB2Toolbar, TBXDkPanels, TB2Dock, uViewFiltroBase, + uDAInterfaces; + +type + IViewElegirArticulosAlbaranesCliente = interface(IViewArticulos) + ['{4143BB25-0992-4F6E-9D39-BC55BC20EEBE}'] + end; + + TfrViewElegirArticulosAlbaranesCliente = class(TfrViewArticulos, IViewElegirArticulosAlbaranesCliente) + end; + +implementation +{$R *.dfm} + +end. diff --git a/Source/Modulos/Albaranes de proveedor/AlbaranesProveedor_Group.bdsgroup b/Source/Modulos/Albaranes de proveedor/AlbaranesProveedor_Group.bdsgroup new file mode 100644 index 0000000..3074cdc --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/AlbaranesProveedor_Group.bdsgroup @@ -0,0 +1,29 @@ + + + + + + + + + + + ..\..\DataAbstract_D10\DataAbstract_D10.bdsproj + ..\..\Base\Base.bdsproj + ..\..\Base\ControllerBase\ControllerBase.bdsproj + ..\..\Base\GUIBase\GUIBase.bdsproj + ..\Contactos\Views\Contactos_view.bdsproj + ..\Articulos\Views\Articulos_view.bdsproj + Model\AlbaranesProveedor_model.bdsproj + Data\AlbaranesProveedor_data.bdsproj + Controller\AlbaranesProveedor_controller.bdsproj + Views\AlbaranesProveedor_view.bdsproj + Plugin\AlbaranesProveedor_plugin.bdsproj + ..\Relaciones\Pedidos de proveedor - Albaranes de proveedor\PedProv_AlbProv_relation.bdsproj + ..\..\Cliente\FactuGES.bdsproj + DataAbstract_D10.bpl Base.bpl ControllerBase.bpl GUIBase.bpl Contactos_view.bpl Articulos_view.bpl AlbaranesProveedor_model.bpl AlbaranesProveedor_data.bpl AlbaranesProveedor_controller.bpl AlbaranesProveedor_view.bpl AlbaranesProveedor_plugin.bpl PedProv_AlbProv_relation.bpl FactuGES.exe + + + + diff --git a/Source/Modulos/Albaranes de proveedor/AlbaranesProveedor_Group.config b/Source/Modulos/Albaranes de proveedor/AlbaranesProveedor_Group.config new file mode 100644 index 0000000..c8f2834 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/AlbaranesProveedor_Group.config @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Source/Modulos/Albaranes de proveedor/AlbaranesProveedor_Group.groupproj b/Source/Modulos/Albaranes de proveedor/AlbaranesProveedor_Group.groupproj new file mode 100644 index 0000000..0816a9b --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/AlbaranesProveedor_Group.groupproj @@ -0,0 +1,214 @@ + + + {0af568ea-6f3b-4d54-9677-6a3d38322778} + + + + + + + + + + + + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.bdsproj b/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.bdsproj new file mode 100644 index 0000000..b69f48b --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + AlbaranesProveedor_controller.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.dcu b/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.dcu new file mode 100644 index 0000000..401ff83 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.dpk b/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.dpk new file mode 100644 index 0000000..f690872 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.dpk differ diff --git a/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.dproj b/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.dproj new file mode 100644 index 0000000..1389841 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.dproj @@ -0,0 +1,555 @@ + + + {7ed85635-c723-4c0b-bf1d-f719e0ea33ad} + AlbaranesProveedor_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\AlbaranesProveedor_controller.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0AlbaranesProveedor_controller.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.drc b/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.drc new file mode 100644 index 0000000..1310ff0 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.drc @@ -0,0 +1,16 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Albaranes de proveedor\Controller\AlbaranesProveedor_controller.res */ +/* c:\temp\dtf1CB.tmp */ diff --git a/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.rc b/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.res b/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.res differ diff --git a/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranDevProveedor.dcu b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranDevProveedor.dcu new file mode 100644 index 0000000..6482488 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranDevProveedor.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranDevProveedor.pas b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranDevProveedor.pas new file mode 100644 index 0000000..40a7977 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranDevProveedor.pas @@ -0,0 +1,15 @@ +unit uIEditorAlbaranDevProveedor; + +interface + +uses + uEditorDBItem, uIEditorAlbaranProveedor; + +type + IEditorAlbaranDevProveedor = interface(IEditorAlbaranProveedor) + ['{407F2DBB-2604-47BF-ABEB-94FAF7CF032E}'] + end; + +implementation + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranProveedor.dcu b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranProveedor.dcu new file mode 100644 index 0000000..646953d Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranProveedor.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranProveedor.pas b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranProveedor.pas new file mode 100644 index 0000000..2719c09 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranProveedor.pas @@ -0,0 +1,23 @@ +unit uIEditorAlbaranProveedor; + +interface + +uses + uEditorDBItem, uBizAlbaranesProveedor, uAlbaranesProveedorController; + +type + IEditorAlbaranProveedor = interface(IEditorDBItem) + ['{B5EB47F0-6338-41E1-8B4E-93A644B798F3}'] + function GetController : IAlbaranesProveedorController; + procedure SetController (const Value : IAlbaranesProveedorController); + property Controller : IAlbaranesProveedorController read GetController + write SetController; + + function GetAlbaran: IBizAlbaranProveedor; + procedure SetAlbaran(const Value: IBizAlbaranProveedor); + property Albaran: IBizAlbaranProveedor read GetAlbaran write SetAlbaran; + end; + +implementation + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranesDevProveedor.dcu b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranesDevProveedor.dcu new file mode 100644 index 0000000..340836d Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranesDevProveedor.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranesDevProveedor.pas b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranesDevProveedor.pas new file mode 100644 index 0000000..d6e1962 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranesDevProveedor.pas @@ -0,0 +1,16 @@ +unit uIEditorAlbaranesDevProveedor; + +interface + +uses + uEditorGridBase, uIEditorAlbaranesProveedor; + +type + IEditorAlbaranesDevProveedor = interface(IEditorAlbaranesProveedor) + ['{3DDBA779-79A6-4F0D-8385-0A141764F27F}'] + end; + + +implementation + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranesProveedor.dcu b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranesProveedor.dcu new file mode 100644 index 0000000..f558e42 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranesProveedor.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranesProveedor.pas b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranesProveedor.pas new file mode 100644 index 0000000..0178b42 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranesProveedor.pas @@ -0,0 +1,23 @@ +unit uIEditorAlbaranesProveedor; + +interface + +uses + uEditorGridBase, uBizAlbaranesProveedor, uAlbaranesProveedorController; + +type + IEditorAlbaranesProveedor = interface(IEditorGridBase) + ['{CB3A6A56-D667-4CAA-A4E6-159F27759B89}'] + function GetAlbaranes: IBizAlbaranProveedor; + procedure SetAlbaranes(const Value: IBizAlbaranProveedor); + property Albaranes: IBizAlbaranProveedor read GetAlbaranes write SetAlbaranes; + + function GetController : IAlbaranesProveedorController; + procedure SetController (const Value : IAlbaranesProveedorController); + property Controller : IAlbaranesProveedorController read GetController write SetController; + end; + + +implementation + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranesProveedorPreview.dcu b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranesProveedorPreview.dcu new file mode 100644 index 0000000..11566bb Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranesProveedorPreview.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranesProveedorPreview.pas b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranesProveedorPreview.pas new file mode 100644 index 0000000..8dde31b --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranesProveedorPreview.pas @@ -0,0 +1,23 @@ +unit uIEditorAlbaranesProveedorPreview; + +interface + +uses + uEditorPreview; + +type + IEditorAlbaranesProveedorPreview = interface(IEditorPreview) + ['{7299A2C7-2D2D-49C7-A23C-28DBA150D276}'] + procedure SetVerPrecios(const Value: Boolean); + function GetVerPrecios: Boolean; + property VerPrecios : Boolean read GetVerPrecios write SetVerPrecios; + + function GetVerRefProveedor: Boolean; + procedure SetVerRefProveedor(const Value: Boolean); + property VerRefProveedor : Boolean read GetVerRefProveedor write SetVerRefProveedor; + end; + + +implementation + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorDireccionEntregaAlbaranProveedor.dcu b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorDireccionEntregaAlbaranProveedor.dcu new file mode 100644 index 0000000..74d50f0 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorDireccionEntregaAlbaranProveedor.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorDireccionEntregaAlbaranProveedor.pas b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorDireccionEntregaAlbaranProveedor.pas new file mode 100644 index 0000000..a6ac4be --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorDireccionEntregaAlbaranProveedor.pas @@ -0,0 +1,22 @@ +unit uIEditorDireccionEntregaAlbaranProveedor; + +interface + +uses + uBizAlbaranesProveedor; + +type + IEditorDireccionEntregaAlbaranProveedor = interface + ['{274502B5-78EF-4899-AD64-13BF6DB3D967}'] + function GetAlbaran: IBizAlbaranProveedor; + procedure SetAlbaran(const Value: IBizAlbaranProveedor); + property Albaran: IBizAlbaranProveedor read GetAlbaran write SetAlbaran; + + function ShowModal : Integer; + procedure Release; + end; + + +implementation + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorElegirAlbaranesProveedor.dcu b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorElegirAlbaranesProveedor.dcu new file mode 100644 index 0000000..b1ce875 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorElegirAlbaranesProveedor.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorElegirAlbaranesProveedor.pas b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorElegirAlbaranesProveedor.pas new file mode 100644 index 0000000..4bfbf80 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorElegirAlbaranesProveedor.pas @@ -0,0 +1,26 @@ +unit uIEditorElegirAlbaranesProveedor; + +interface + +uses + uIEditorAlbaranesProveedor, uBizAlbaranesProveedor, uGUIBase; + +type + IEditorElegirAlbaranesProveedor = interface(IEditorAlbaranesProveedor) + ['{EC3B4FF3-ACC2-4153-941E-025084BFDDBD}'] + function GetAlbaranesProveedorSeleccionados: IBizAlbaranProveedor; + property AlbaranesProveedorSeleccionados: IBizAlbaranProveedor read GetAlbaranesProveedorSeleccionados; + + procedure SetMultiSelect (AValue : Boolean); + function GetMultiSelect : Boolean; + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + + procedure SetMensaje (const AValue: String); + function GetMensaje: String; + property Mensaje : String read GetMensaje write SetMensaje; + end; + + +implementation + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorElegirArticulosAlbaranesProveedor.dcu b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorElegirArticulosAlbaranesProveedor.dcu new file mode 100644 index 0000000..1bbab26 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorElegirArticulosAlbaranesProveedor.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorElegirArticulosAlbaranesProveedor.pas b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorElegirArticulosAlbaranesProveedor.pas new file mode 100644 index 0000000..9b0b9c3 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorElegirArticulosAlbaranesProveedor.pas @@ -0,0 +1,19 @@ +unit uIEditorElegirArticulosAlbaranesProveedor; + +interface + +uses + uIEditorElegirArticulos, uBizContactos; + +type + IEditorElegirArticulosAlbaranesProveedor = interface(IEditorElegirArticulos) + ['{CAA16595-482A-4936-875E-F19263772C0D}'] + function GetProveedor: IBizProveedor; + procedure SetProveedor(const Value: IBizProveedor); + property Proveedor: IBizProveedor read GetProveedor write SetProveedor; + end; + + +implementation + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Controller/uAlbaranesProveedorController.dcu b/Source/Modulos/Albaranes de proveedor/Controller/uAlbaranesProveedorController.dcu new file mode 100644 index 0000000..6efe518 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Controller/uAlbaranesProveedorController.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Controller/uAlbaranesProveedorController.pas b/Source/Modulos/Albaranes de proveedor/Controller/uAlbaranesProveedorController.pas new file mode 100644 index 0000000..69cd041 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Controller/uAlbaranesProveedorController.pas @@ -0,0 +1,1267 @@ +unit uAlbaranesProveedorController; + +interface + + +uses + Classes, SysUtils, uDADataTable, uEditorDBItem, + uControllerBase, uIDataModuleAlbaranesProveedor, uProveedoresController, + uDetallesAlbaranProveedorController, uBizAlbaranesProveedor, + uBizDireccionesContacto, uBizInventario; + +type + IAlbaranesProveedorController = interface(IControllerBase) + ['{E2FA2312-EDBD-4E80-B3D7-A8784F6A4E39}'] + function GetProveedorController: IProveedoresController; + procedure SetProveedorController(const Value: IProveedoresController); + property ProveedorController: IProveedoresController read GetProveedorController write SetProveedorController; + + function GetDetallesController: IDetallesAlbaranProveedorController; + procedure SetDetallesController(const Value: IDetallesAlbaranProveedorController); + property DetallesController: IDetallesAlbaranProveedorController read GetDetallesController write SetDetallesController; + + function Buscar(const ID: Integer): IBizAlbaranProveedor; + function BuscarTodos: IBizAlbaranProveedor; overload; + function BuscarTodos(const ID_Proveedor: Integer): IBizAlbaranProveedor; overload; + function BuscarAlbaranesNormales: IBizAlbaranProveedor; overload; + function BuscarAlbaranesNormales(const ID_Proveedor: Integer): IBizAlbaranProveedor; overload; + function BuscarAlbaranesDevolucion: IBizAlbaranProveedor; overload; + function BuscarAlbaranesDevolucion(const ID_Proveedor: Integer): IBizAlbaranProveedor; overload; + function BuscarSinFacturar : IBizAlbaranProveedor; + procedure Ver(AAlbaran : IBizAlbaranProveedor); + procedure VerTodosAlbaranes(AAlbarans: IBizAlbaranProveedor; + const AVerModal : Boolean = False; const AWindowCaption: String = ''; + const AHeaderText: String = ''); + procedure VerTodosAlbaranesDev(AAlbarans: IBizAlbaranProveedor; + const AVerModal : Boolean = False; const AWindowCaption: String = ''; + const AHeaderText: String = ''); + procedure VerDireccionEntrega(AAlbaran : IBizAlbaranProveedor); + function Nuevo : IBizAlbaranProveedor; + function Anadir(AAlbaran : IBizAlbaranProveedor) : Boolean; overload; + function AnadirAlbaranDev(AAlbaran : IBizAlbaranProveedor) : Boolean; + function Anadir(AAlbaran : IBizAlbaranProveedor; const IDPedido : Integer; AInventarioRecibido: IBizInventario): Boolean; overload; + + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(AAlbaran : IBizAlbaranProveedor; AllItems: Boolean = false): Boolean; overload; + function Guardar(AAlbaran : IBizAlbaranProveedor): Boolean; + procedure DescartarCambios(AAlbaran : IBizAlbaranProveedor); + function Existe(const ID: Integer) : Boolean; + function Duplicar(AAlbaran: IBizAlbaranProveedor): IBizAlbaranProveedor; + + function ExtraerSeleccionados(AAlbaran: IBizAlbaranProveedor) : IBizAlbaranProveedor; + function ElegirAlbaranes(AAlbaran: IBizAlbaranProveedor; AMensaje: String; AMultiSelect: Boolean): IBizAlbaranProveedor; + + procedure CopiarDireccionEnvio (const ADireccionEnvio: IBizDireccionesContacto; AAlbaran: IBizAlbaranProveedor); + procedure QuitarDireccionEnvio(AAlbaran: IBizAlbaranProveedor); + procedure RecuperarProveedor(AAlbaran: IBizAlbaranProveedor); + + procedure RecalcularImportes(AAlbaran: IBizAlbaranProveedor); + function EsModificable(AAlbaran: IBizAlbaranProveedor): Boolean; + function EsEliminable(AAlbaran: IBizAlbaranProveedor): Boolean; + + procedure Preview(AAlbaran : IBizAlbaranProveedor; AllItems: Boolean = false; + const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True); + procedure Print(AAlbaran : IBizAlbaranProveedor; AllItems: Boolean = false; + const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True); + + function DarListaAnosAlbaranes: TStringList; + procedure FiltrarAno(AAlbaran: IBizAlbaranProveedor; ADynWhereDataTable: WideString; const Ano: String); + + function GenerarDevolucion(AAlbaran : IBizAlbaranProveedor) : IBizAlbaranProveedor; + end; + + TAlbaranesProveedorController = class(TControllerBase, IAlbaranesProveedorController) + protected + FDataModule : IDataModuleAlbaranesProveedor; + FProveedorController : IProveedoresController; + FDetallesController : IDetallesAlbaranProveedorController; + + function GetProveedorController: IProveedoresController; + procedure SetProveedorController(const Value: IProveedoresController); + procedure RecuperarProveedor(AAlbaran : IBizAlbaranProveedor); + function GetDetallesController: IDetallesAlbaranProveedorController; + procedure SetDetallesController(const Value: IDetallesAlbaranProveedorController); + + //Estos son los tres mtodos a sobre escribir si se desea heredar toda la logica de + //este controller + procedure AsignarDataModule; virtual; + procedure RecuperarObjetos(AAlbaran: IBizAlbaranProveedor); virtual; + + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; + procedure FiltrarEmpresa(AAlbaran: IBizAlbaranProveedor); + function _Vacio : IBizAlbaranProveedor; + function ValidarAlbaran(AAlbaran: IBizAlbaranProveedor): Boolean; + + public + property ProveedorController: IProveedoresController read GetProveedorController write SetProveedorController; + property DetallesController: IDetallesAlbaranProveedorController read GetDetallesController write SetDetallesController; + + constructor Create; override; + destructor Destroy; override; + + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(AAlbaran : IBizAlbaranProveedor; AllItems: Boolean = false): Boolean; overload; + function Guardar(AAlbaran : IBizAlbaranProveedor): Boolean; + procedure DescartarCambios(AAlbaran : IBizAlbaranProveedor); virtual; + function Existe(const ID: Integer) : Boolean; virtual; + function Anadir(AAlbaran : IBizAlbaranProveedor) : Boolean; overload; + function AnadirAlbaranDev(AAlbaran : IBizAlbaranProveedor) : Boolean; + function Anadir(AAlbaran : IBizAlbaranProveedor; const IDPedido : Integer; AInventarioRecibido: IBizInventario): Boolean; overload; + + function Buscar(const ID: Integer): IBizAlbaranProveedor; + function BuscarTodos: IBizAlbaranProveedor; overload; + function BuscarTodos(const ID_Proveedor: Integer): IBizAlbaranProveedor; overload; + function BuscarAlbaranesNormales: IBizAlbaranProveedor; overload; + function BuscarAlbaranesNormales(const ID_Proveedor: Integer): IBizAlbaranProveedor; overload; + function BuscarAlbaranesDevolucion: IBizAlbaranProveedor; overload; + function BuscarAlbaranesDevolucion(const ID_Proveedor: Integer): IBizAlbaranProveedor; overload; + function BuscarSinFacturar : IBizAlbaranProveedor; + + function Nuevo : IBizAlbaranProveedor; + + procedure Ver(AAlbaran : IBizAlbaranProveedor); + procedure VerTodosAlbaranes(AAlbarans: IBizAlbaranProveedor; + const AVerModal : Boolean = False; const AWindowCaption: String = ''; + const AHeaderText: String = ''); + procedure VerTodosAlbaranesDev(AAlbarans: IBizAlbaranProveedor; + const AVerModal : Boolean = False; const AWindowCaption: String = ''; + const AHeaderText: String = ''); + procedure VerDireccionEntrega(AAlbaran : IBizAlbaranProveedor); + function Duplicar(AAlbaran: IBizAlbaranProveedor): IBizAlbaranProveedor; + procedure CopiarDireccionEnvio (const ADireccionEnvio: IBizDireccionesContacto; + AAlbaran: IBizAlbaranProveedor); + + procedure QuitarDireccionEnvio(AAlbaran: IBizAlbaranProveedor); + function ExtraerSeleccionados(AAlbaran: IBizAlbaranProveedor) : IBizAlbaranProveedor; + function ElegirAlbaranes(AAlbaran: IBizAlbaranProveedor; AMensaje: String; AMultiSelect: Boolean): IBizAlbaranProveedor; + + procedure RecalcularImportes(AAlbaran: IBizAlbaranProveedor); + function EsModificable(AAlbaran: IBizAlbaranProveedor): Boolean; + function EsEliminable(AAlbaran: IBizAlbaranProveedor): Boolean; + + procedure Preview(AAlbaran : IBizAlbaranProveedor; AllItems: Boolean = false; + const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True); + procedure Print(AAlbaran : IBizAlbaranProveedor; AllItems: Boolean = false; + const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True); + + function DarListaAnosAlbaranes: TStringList; + procedure FiltrarAno(AAlbaran: IBizAlbaranProveedor; ADynWhereDataTable: WideString; const Ano: String); + + function GenerarDevolucion(AAlbaran : IBizAlbaranProveedor) : IBizAlbaranProveedor; + end; + +implementation + +uses + uROTypes, Controls, cxControls, DB, uEditorRegistryUtils, uEditorPreview, DateUtils, + uIEditorAlbaranesProveedor, uIEditorAlbaranesDevProveedor, uDataModuleAlbaranesProveedor, + uBizDetallesAlbaranProveedor, uBizContactos, uDataTableUtils, uDataModuleUsuarios, + schAlbaranesProveedorClient_Intf, uDAInterfaces, uDateUtils, uIEditorAlbaranProveedor, + uIEditorElegirAlbaranesProveedor, uIEditorDireccionEntregaAlbaranProveedor, + schContactosClient_Intf, Forms, schPedidosProveedorClient_Intf, uFactuGES_App, + uBizPedidosProveedor, uPedidosProveedorController, + schInventarioClient_Intf, uStringsUtils, uIntegerListUtils, + uArticulosController, uBizArticulos, uControllerDetallesBase, + schArticulosClient_Intf, uControllerDetallesArticulos, Variants, uDialogUtils, + uIEditorAlbaranDevProveedor, uAlbaranesProveedorReportController; + + +{ Mtodos auxiliares } +procedure CopiarPedidoAAlbaran(APedido: IBizPedidoProveedor; + AAlbaran : IBizAlbaranProveedor); +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado (CopiarPedidoAAlbaran)'); + + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado (CopiarPedidoAAlbaran)'); + + if not APedido.DataTable.Active then + APedido.DataTable.Active := True; + + // El albarn tiene que venir ya abierto y posicionado donde hay que copiar + AAlbaran.ID_PROVEEDOR := APedido.ID_PROVEEDOR; + AAlbaran.ID_PEDIDO := APedido.ID; + AAlbaran.CALLE := APedido.CALLE; + AAlbaran.CODIGO_POSTAL := APedido.CODIGO_POSTAL; + AAlbaran.POBLACION := APedido.POBLACION; + AAlbaran.PROVINCIA := APedido.PROVINCIA; + AAlbaran.PERSONA_CONTACTO := APedido.PERSONA_CONTACTO; + AAlbaran.TELEFONO := APedido.TELEFONO; + AAlbaran.BASE_IMPONIBLE := APedido.BASE_IMPONIBLE; + AAlbaran.IMPORTE_NETO := APedido.IMPORTE_NETO; + AAlbaran.IMPORTE_PORTE := APedido.IMPORTE_PORTE; + AAlbaran.IMPORTE_DESCUENTO := APedido.IMPORTE_DESCUENTO; + AAlbaran.IMPORTE_IVA := APedido.IMPORTE_IVA; + AAlbaran.IMPORTE_TOTAL := APedido.IMPORTE_TOTAL; + AAlbaran.DESCUENTO := APedido.DESCUENTO; + AAlbaran.IVA := APedido.IVA; + AAlbaran.DataTable.FieldByName(fld_AlbaranesProveedorOBSERVACIONES).AsVariant := APedido.DataTable.FieldByName(fld_PedidosProveedorOBSERVACIONES).AsVariant; + AAlbaran.ID_FORMA_PAGO := APedido.ID_FORMA_PAGO; + AAlbaran.ID_ALMACEN := APedido.ID_ALMACEN; + AAlbaran.TIPO_ALMACEN := APedido.TIPO_ALMACEN; + AAlbaran.NOMBRE_ALMACEN := APedido.NOMBRE_ALMACEN; + +end; + +procedure CopiarArticulosAAlbaran(APedido: IBizPedidoProveedor; AAlbaran: IBizAlbaranProveedor; + AInventarioRecibido: IBizInventario); +var + i : integer; + ADetalles : IBizDetallesAlbaranProveedor; + ADetallesController : IDetallesAlbaranProveedorController; + AArticulosController : IArticulosController; + AArticulo : IBizArticulo; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado (CopiarArticulosAAlbaran)'); + + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado (CopiarArticulosAAlbaran)'); + + //Si esta asignado el inventario recibido es por una entrada de articulos de un pedido a almacn + if Assigned(AInventarioRecibido) then + begin + if not AInventarioRecibido.DataTable.Active then + AInventarioRecibido.DataTable.Active := True; + + // El albarn tiene que venir ya abierto y posicionado donde hay que copiar + + ADetalles := AAlbaran.Detalles; + ADetallesController := TDetallesAlbaranProveedorController.Create; + AArticulosController := TArticulosController.Create; + try + //OJO IMPORTANTE + //Siempre que vayamos a trabajar con los detalles debemos hacer un beginupdate de los mismos y un endupdate para + //obligarle siempre a recalcular los detalles una sola vez + ADetallesController.BeginUpdate(ADetalles); + + AInventarioRecibido.DataTable.First; + for i := 0 to AInventarioRecibido.DataTable.RecordCount - 1 do + begin + AArticulo := AArticulosController.Buscar(AInventarioRecibido.ID_ARTICULO); + if not Assigned(AArticulo) then + raise Exception.Create(Format('No se ha encontrado el artculo con ID %d (CopiarArticulosAAlbaran)', [AInventarioRecibido.ID_ARTICULO])); + + if (AInventarioRecibido.CANTIDAD <> 0) then + begin + ADetallesController.Add(ADetalles, TIPO_DETALLE_CONCEPTO); +//Se cambia porque puede haber articulos del pedido que no tengan referencia de proveedor +// ADetallesController.AnadirArticulo(ADetalles, AInventarioRecibido.REFERENCIA, tCliente); + + if AInventarioRecibido.ID_ARTICULO = 0 then + begin + ADetalles.Edit; + ADetalles.CONCEPTO := AInventarioRecibido.DESCRIPCION; + end + else + ADetallesController.AnadirArticulo(ADetalles, AInventarioRecibido.ID_ARTICULO); + + ADetalles.Edit; + + APedido.Detalles.First; +//Se cambia porque puede haber articulos del pedido que no tengan referencia de proveedor +// if not APedido.Detalles.DataTable.Locate(fld_ArticulosREFERENCIA, ADetalles.REFERENCIA, []) then + if not APedido.Detalles.Locate(fld_INVENTARIOID_ARTICULO, VarArrayOf([ADetalles.DataTable.FieldByName('ID_ARTICULO').AsVariant]), []) then + raise Exception.Create(Format('No se ha encontrado el artculo del pedido con REFERENCIA %s (CopiarArticulosAAlbaran)', [ADetalles.REFERENCIA])); + ADetalles.IMPORTE_UNIDAD := APedido.Detalles.IMPORTE_UNIDAD; + ADetalles.DESCUENTO := APedido.Detalles.DESCUENTO; + ADetalles.IMPORTE_PORTE := APedido.Detalles.IMPORTE_PORTE; + ADetalles.CANTIDAD := AInventarioRecibido.CANTIDAD; + ADetalles.ID_PEDIDO := APedido.Detalles.ID_PEDIDO; + ADetalles.Post; + end; + + AInventarioRecibido.Next; + end; + finally + ADetallesController.EndUpdate(ADetalles); + ADetallesController := NIL; + AArticulosController := NIL; + end; + end + else begin + // AInventarioRecibido = NIL + + // El albarn tiene que venir ya abierto y posicionado donde hay que copiar + + ADetalles := AAlbaran.Detalles; + ADetallesController := TDetallesAlbaranProveedorController.Create; + AArticulosController := TArticulosController.Create; + try + //OJO IMPORTANTE + //Siempre que vayamos a trabajar con los detalles debemos hacer un beginupdate de los mismos y un endupdate para + //obligarle siempre a recalcular los detalles una sola vez + ADetallesController.BeginUpdate(ADetalles); + + APedido.Detalles.DataTable.First; + for i := 0 to APedido.Detalles.DataTable.RecordCount - 1 do + begin + AArticulo := AArticulosController.Buscar(APedido.Detalles.ID_ARTICULO); + if not Assigned(AArticulo) then + raise Exception.Create(Format('No se ha encontrado el artculo con ID %d (CopiarArticulosAAlbaran)', [APedido.Detalles.ID_ARTICULO])); + + if (APedido.Detalles.CANTIDAD <> 0) then + begin + ADetallesController.Add(ADetalles, TIPO_DETALLE_CONCEPTO); + ADetallesController.AnadirArticulo(ADetalles, APedido.Detalles.REFERENCIA, tCliente); + ADetalles.Edit; + ADetalles.IMPORTE_UNIDAD := APedido.Detalles.IMPORTE_UNIDAD; + ADetalles.DESCUENTO := APedido.Detalles.DESCUENTO; + ADetalles.IMPORTE_PORTE := APedido.Detalles.IMPORTE_PORTE; + ADetalles.CANTIDAD := APedido.Detalles.CANTIDAD; + ADetalles.ID_PEDIDO := APedido.Detalles.ID_PEDIDO; + ADetalles.Post; + end; + APedido.Detalles.Next; + end; + + finally + ADetallesController.EndUpdate(ADetalles); + ADetallesController := NIL; + AArticulosController := NIL; + end; + end; +end; + +{ TAlbaranesProveedorController } + +function TAlbaranesProveedorController.Anadir(AAlbaran: IBizAlbaranProveedor) : Boolean; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado (Anadir)'); + + if not AAlbaran.DataTable.Active then + AAlbaran.DataTable.Active := True; + + AAlbaran.Insert; + Result := True; +end; + + +function TAlbaranesProveedorController.Anadir(AAlbaran: IBizAlbaranProveedor; const IDPedido: Integer; + AInventarioRecibido: IBizInventario): Boolean; +var + APedidosController : IPedidosProveedorController; + APedido : IBizPedidoProveedor; +begin + + Result := False; + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado (Anadir)'); + + if (IDPedido < 0) or (IDPedido = 0) then + raise Exception.Create (Format('ID de pedido (%d) incorrecto (Anadir)', [IDPedido])); + + if not AAlbaran.DataTable.Active then + AAlbaran.DataTable.Active := True; + + ShowHourglassCursor; + Application.ProcessMessages; + + APedido := NIL; + APedidosController := TPedidosProveedorController.Create; + try + APedido := APedidosController.Buscar(IDPedido); + if not Assigned(APedido) then + raise Exception.Create (Format('No se ha encontrado un pedido de proveedor con ID %d (Anadir)', [IDPedido])); + + APedido.DataTable.Active := True; + + if not Assigned(AInventarioRecibido) then + begin + if (APedido.ID_ALMACEN > 0) then + raise Exception.Create ('Inventario recibido no asignado (Anadir)') + end + else begin + if not AInventarioRecibido.DataTable.Active then + AInventarioRecibido.DataTable.Active := True; + end; + + CopiarPedidoAAlbaran(APedido, AAlbaran); + CopiarArticulosAAlbaran(APedido, AAlbaran, AInventarioRecibido); + RecalcularImportes(AAlbaran); + Result := True; + finally + APedido := NIL; + APedidosController := NIL; + HideHourglassCursor; + Application.ProcessMessages; + end; +end; + +function TAlbaranesProveedorController.AnadirAlbaranDev(AAlbaran: IBizAlbaranProveedor): Boolean; +begin + Result := Anadir(AAlbaran); + AAlbaran.TIPO := CTE_TIPO_ALBARAN_DEV; +end; + +procedure TAlbaranesProveedorController.AsignarDataModule; +begin + FDataModule := TDataModuleAlbaranesProveedor.Create(Nil); +end; + +function TAlbaranesProveedorController.Buscar(const ID: Integer): IBizAlbaranProveedor; +begin + Result := FDataModule.GetItem(ID); + FiltrarEmpresa(Result); +end; + +function TAlbaranesProveedorController.BuscarAlbaranesDevolucion: IBizAlbaranProveedor; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + + with Result.DataTable.DynamicWhere do + begin + // (TIPO = DEVOLUCION) + Condicion := NewBinaryExpression(NewField('', fld_AlbaranesProveedorTIPO), NewConstant(CTE_TIPO_ALBARAN_DEV, datString), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + finally + HideHourglassCursor; + end; +end; + +function TAlbaranesProveedorController.BuscarAlbaranesNormales: IBizAlbaranProveedor; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + + with Result.DataTable.DynamicWhere do + begin + // (TIPO = ALBARAN) + Condicion := NewBinaryExpression(NewField('', fld_AlbaranesProveedorTIPO), NewConstant(CTE_TIPO_ALBARAN, datString), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TAlbaranesProveedorController.BuscarTodos: IBizAlbaranProveedor; +begin + Result := FDataModule.GetItems; + FiltrarEmpresa(Result); +end; + +function TAlbaranesProveedorController.BuscarSinFacturar: IBizAlbaranProveedor; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarAlbaranesNormales; + + with Result.DataTable.DynamicWhere do + begin + // (ID_FACTURA = NULL) + Condicion := NewBinaryExpression(NewField('', fld_AlbaranesProveedorID_FACTURA), NewNull(), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TAlbaranesProveedorController.BuscarTodos( + const ID_Proveedor: Integer): IBizAlbaranProveedor; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + + with Result.DataTable.DynamicWhere do + begin + // ID_CLIENTE + Condicion := NewBinaryExpression(NewField('', fld_AlbaranesProveedorID_PROVEEDOR), + NewConstant(ID_Proveedor, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + finally + HideHourglassCursor; + end; +end; + + +procedure TAlbaranesProveedorController.CopiarDireccionEnvio( + const ADireccionEnvio: IBizDireccionesContacto; AAlbaran: IBizAlbaranProveedor); +var + bEnEdicion : Boolean; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albaran no asignado (CopiarDireccionEnvio)'); + + if not Assigned(ADireccionEnvio) then + raise Exception.Create ('No se ha indicado la direccin (CopiarDireccionEnvio)'); + + if AAlbaran.DataTable.Active then + AAlbaran.DataTable.Active := True; + + if ADireccionEnvio.DataTable.Active then + ADireccionEnvio.DataTable.Active := True; + + + bEnEdicion := (AAlbaran.DataTable.State in dsEditModes); + if not bEnEdicion then + AAlbaran.Edit; + + ShowHourglassCursor; + AAlbaran.Edit; + try + AAlbaran.CALLE := ADireccionEnvio.CALLE; + AAlbaran.POBLACION := ADireccionEnvio.POBLACION; + AAlbaran.CODIGO_POSTAL := ADireccionEnvio.CODIGO_POSTAL; + AAlbaran.PROVINCIA := ADireccionEnvio.PROVINCIA; + AAlbaran.TELEFONO := ADireccionEnvio.TELEFONO; + AAlbaran.PERSONA_CONTACTO := ADireccionEnvio.PERSONA_CONTACTO; + + if not bEnEdicion then + AAlbaran.Post; + finally + HideHourglassCursor; + end; +end; + +constructor TAlbaranesProveedorController.Create; +begin + inherited; + AsignarDataModule; + + FProveedorController := TProveedoresController.Create; + FDetallesController := TDetallesAlbaranProveedorController.Create; + FDetallesController.addObservador(Self); +end; + +function TAlbaranesProveedorController.CreateEditor(const AName: String; + const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + +function TAlbaranesProveedorController.DarListaAnosAlbaranes: TStringList; +begin + Result := FDataModule.GetAnosItems; +end; + +procedure TAlbaranesProveedorController.DescartarCambios(AAlbaran: IBizAlbaranProveedor); +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado'); + + ShowHourglassCursor; + try + if (AAlbaran.State in dsEditModes) then + AAlbaran.Cancel; + + AAlbaran.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TAlbaranesProveedorController.Destroy; +begin + FDataModule := Nil; + FProveedorController := Nil; + FDetallesController := Nil; + inherited; +end; + +function TAlbaranesProveedorController.Duplicar(AAlbaran: IBizAlbaranProveedor): IBizAlbaranProveedor; +begin + Result := Self._Vacio; + ShowHourglassCursor; + try + DuplicarRegistros(AAlbaran.DataTable, Result.DataTable, mdrActual); + DuplicarRegistros(AAlbaran.Detalles.DataTable, Result.Detalles.DataTable, mdrTodos); + + // Hay que dejar algunos campos como si fuera un presupuesto nuevo + Result.Edit; + with Result do + begin + ID_EMPRESA := AppFactuGES.EmpresaActiva.ID; + USUARIO := AppFactuGES.UsuarioActivo.UserName; + FECHA_ALBARAN := DateOf(Now); + INCIDENCIAS_ACTIVAS := 0; + REFERENCIA := ''; + ID_PEDIDO := 0; + ID_FACTURA := 0; + ID_ALBARAN := 0; + REFERENCIA_ALBARAN := ''; + end; + Result.Post; + finally + HideHourglassCursor; + end; +end; + +function TAlbaranesProveedorController.ValidarAlbaran(AAlbaran: IBizAlbaranProveedor): Boolean; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado'); + + if (AAlbaran.DataTable.State in dsEditModes) then + AAlbaran.DataTable.Post; + + //Tambien hacemos post de sus tablas hija + if (AAlbaran.Detalles.DataTable.State in dsEditModes) then + AAlbaran.Detalles.DataTable.Post; + + if (AAlbaran.ID_PROVEEDOR < 0) or (AAlbaran.ID_PROVEEDOR = 0) then + // Si hay altas automticas no hay objeto Proveedor pero s hay ID_PROVEEDOR +{ (not Assigned(AAlbaran.Proveedor)) or + (AAlbaran.Proveedor.IsEmpty) then} + raise Exception.Create('Debe indicar el proveedor de este albarn'); + + if (EsFechaVacia(AAlbaran.FECHA_ALBARAN)) then + raise Exception.Create('Debe indicar la fecha de este albarn'); + + if (Length(AAlbaran.CALLE) = 0) and (AAlbaran.ID_ALMACEN = 0) then + raise Exception.Create('Debe indicar una direccin de entrega o almacn para este albarn'); + + //Tambien hacemos post de sus tablas hija + if (AAlbaran.Detalles.DataTable.RecordCount = 0) then + raise Exception.Create('El albarn de de tener al menos un concepto en su contenido'); + + //En caso de ser un Albarn no podra tener un importe total negativo + if (AAlbaran.TIPO = CTE_TIPO_ALBARAN) then + if (AAlbaran.IMPORTE_TOTAL < 0) then + raise Exception.Create('Un albarn no puede tener un importe total negativo'); + + //En caso de ser una orden de devolucin no podra tener un importe total positivo + if (AAlbaran.TIPO = CTE_TIPO_ALBARAN_DEV) then + begin + if (AAlbaran.IMPORTE_TOTAL > 0) then + raise Exception.Create('Una orden de devolucin no puede tener un importe total positivo'); + + //Una orden de devolucin debe tener relleno el almacn de salida de material + if (Length(AAlbaran.CALLE) = 0) and (AAlbaran.ID_ALMACEN = 0) then + raise Exception.Create('Debe indicar una direccin de salida o almacn para esta orden de devolucin'); + end; + + { Asegurarse de valores en campos "automticos" tanto + en MODIFICACIN como en INSERCIN. } + AAlbaran.Edit; + try + AAlbaran.USUARIO := AppFactuGES.UsuarioActivo.UserName; + + if Assigned(AAlbaran.Proveedor) + and (AAlbaran.ID_PROVEEDOR <> AAlbaran.Proveedor.ID) then + AAlbaran.ID_PROVEEDOR := AAlbaran.Proveedor.ID; + + Result := True; + finally + AAlbaran.Post; + end; +end; + +procedure TAlbaranesProveedorController.Ver(AAlbaran: IBizAlbaranProveedor); +var + AEditor : IEditorAlbaranProveedor; +begin + AEditor := NIL; + + RecuperarObjetos(AAlbaran); + + if (AAlbaran.TIPO = CTE_TIPO_ALBARAN) then + CreateEditor('EditorAlbaranProveedor', IEditorAlbaranProveedor, AEditor) + else + CreateEditor('EditorAlbaranDevProveedor', IEditorAlbaranDevProveedor, AEditor); + + if Assigned(AEditor) then + try + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.Albaran := AAlbaran; + + //MODO CONSULTAR + if not EsModificable(AAlbaran) then + begin + SetDataTableReadOnly(AAlbaran.DataTable, True); + AEditor.ReadOnly := True; + end; + + AEditor.ShowModal; + + //MODO CONSULTAR (Se deja la tabla como estaba) + if AEditor.ReadOnly then + SetDataTableReadOnly(AAlbaran.DataTable, False); + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +procedure TAlbaranesProveedorController.VerDireccionEntrega(AAlbaran: IBizAlbaranProveedor); +var + AEditor : IEditorDireccionEntregaAlbaranProveedor; +begin + AEditor := NIL; + //RecuperarObjetos(AAlbaran); <- No descomentar. No hace falta + CreateEditor('EditorDireccionEntregaAlbaranProveedor', IEditorDireccionEntregaAlbaranProveedor, AEditor); + if Assigned(AEditor) then + try + AEditor.Albaran := AAlbaran; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +procedure TAlbaranesProveedorController.VerTodosAlbaranes(AAlbarans: IBizAlbaranProveedor; + const AVerModal : Boolean = False; const AWindowCaption: String = ''; + const AHeaderText: String = ''); +var + AEditor : IEditorAlbaranesProveedor; +begin + AEditor := NIL; + CreateEditor('EditorAlbaranesProveedor', IEditorAlbaranesProveedor, AEditor); + if Assigned(AEditor) then + try + if not EsCadenaVacia(AWindowCaption) then + AEditor.WindowCaption := AWindowCaption; + + if not EsCadenaVacia(AHeaderText) then + AEditor.HeaderText := AHeaderText; + + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.Albaranes := AAlbarans; + AEditor.MultiSelect := True; + if AVerModal then + AEditor.ShowModal + else + AEditor.ShowEmbedded; + finally + if AVerModal then + AEditor.Release; + AEditor := NIL; + end; +end; + +procedure TAlbaranesProveedorController.VerTodosAlbaranesDev(AAlbarans: IBizAlbaranProveedor; + const AVerModal : Boolean = False; const AWindowCaption: String = ''; + const AHeaderText: String = ''); +var + AEditor : IEditorAlbaranesDevProveedor; +begin + AEditor := NIL; + CreateEditor('EditorAlbaranesDevProveedor', IEditorAlbaranesDevProveedor, AEditor); + if Assigned(AEditor) then + try + if not EsCadenaVacia(AWindowCaption) then + AEditor.WindowCaption := AWindowCaption; + + if not EsCadenaVacia(AHeaderText) then + AEditor.HeaderText := AHeaderText; + + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.Albaranes := AAlbarans; + AEditor.MultiSelect := True; + if AVerModal then + AEditor.ShowModal + else + AEditor.ShowEmbedded; + finally + if AVerModal then + AEditor.Release; + AEditor := NIL; + end; +end; + +function TAlbaranesProveedorController._Vacio: IBizAlbaranProveedor; +begin + Result := Buscar(ID_NULO); +end; + +function TAlbaranesProveedorController.Eliminar(const ID: Integer): Boolean; +var + AAlbaran : IBizAlbaranProveedor; +begin + AAlbaran := Buscar(ID); + + if not Assigned(AAlbaran) then + raise Exception.Create(Format('No se ha encontrado el albarn con ID = %d', [ID])); + + Result := Eliminar(AAlbaran); + AAlbaran := NIL; +end; + +function TAlbaranesProveedorController.ElegirAlbaranes(AAlbaran: IBizAlbaranProveedor; AMensaje: String; AMultiSelect: Boolean): IBizAlbaranProveedor; +var + AEditor : IEditorElegirAlbaranesProveedor; +begin + Result := NIL; + CreateEditor('EditorElegirAlbaranesProveedor', IEditorElegirAlbaranesProveedor, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; + AEditor.Albaranes := AAlbaran; + AEditor.MultiSelect := AMultiSelect; + AEditor.Mensaje := AMensaje; + if IsPositiveResult(AEditor.ShowModal) then + Result := AEditor.AlbaranesProveedorSeleccionados; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +function TAlbaranesProveedorController.Eliminar(AAlbaran: IBizAlbaranProveedor; AllItems: Boolean = false): Boolean; +//En el caso de eliminar almenos un elemento del conjunto se devuelve true +var + bEliminado: Boolean; + +begin + bEliminado := False; + + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignada'); + + ShowHourglassCursor; + try + if (AAlbaran.State in dsEditModes) then + AAlbaran.Cancel; + + //Siempre eliminaremos el seleccionado + if EsEliminable(AAlbaran) then + begin + AAlbaran.Delete; + bEliminado := True; + end; + + //En el caso de querer eliminar todos los items del objeto AAlbaran + if AllItems then + begin + with AAlbaran.DataTable do + begin + First; + while not EOF do + begin + if EsEliminable(AAlbaran) then + begin + AAlbaran.Delete; + bEliminado := True + end + else Next; + end; + end; + end; + + if bEliminado then + begin + AAlbaran.DataTable.ApplyUpdates; + Result := True; + end + else + Result := False; + + finally + HideHourglassCursor; + end; +end; +function TAlbaranesProveedorController.EsEliminable(AAlbaran: IBizAlbaranProveedor): Boolean; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado: EsModificable'); + + Result := EsModificable(AAlbaran); +end; + +function TAlbaranesProveedorController.EsModificable(AAlbaran: IBizAlbaranProveedor): Boolean; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado: EsModificable'); + + Result := not (AAlbaran.ID_FACTURA > 0); +end; + +procedure TAlbaranesProveedorController.RecalcularImportes( + AAlbaran: IBizAlbaranProveedor); +var + bEnEdicion : Boolean; + ADetallePosAct : Integer; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado (RecalcularImportes)'); + + if AAlbaran.DataTable.Active then + AAlbaran.DataTable.Active := True; + + { Hay que guardar la posicin en la que estamos en los detalles por que + la asignacin de valores a los campos IMPORTE_NETO e IMPORTE_PORTE + (ver ms adelante) colocan el puntero en la tabla detalle al principio. + No he encontrado la razn por la que mueve el puntero. } + + ADetallePosAct := AAlbaran.Detalles.POSICION; + + bEnEdicion := (AAlbaran.DataTable.State in dsEditModes); + if not bEnEdicion then + AAlbaran.Edit; + + ShowHourglassCursor; + try + AAlbaran.IMPORTE_NETO := FDetallesController.DarTotalImporteTotal(AAlbaran.Detalles); + AAlbaran.IMPORTE_PORTE := FDetallesController.DarTotalPorteTotal(AAlbaran.Detalles); + if not bEnEdicion then + AAlbaran.Post; + finally + HideHourglassCursor; + // Restaurar la posicin que tenamos en los detalles. + FDetallesController.LocalizarPosicion(AAlbaran.Detalles, ADetallePosAct); + end; +end; + +procedure TAlbaranesProveedorController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +var + AAlbaran : IBizAlbaranProveedor; + ADetalles : IBizDetallesAlbaranProveedor; +begin + inherited; + + if Supports(ADataTable, IBizDetallesAlbaranProveedor, ADetalles) and + Supports(ADetalles.DataTable.MasterSource.DataTable, IBizAlbaranProveedor, AAlbaran) then + begin + RecalcularImportes(AAlbaran); + end; +end; + +procedure TAlbaranesProveedorController.RecuperarObjetos(AAlbaran: IBizAlbaranProveedor); +begin + RecuperarProveedor(AAlbaran); +end; + +procedure TAlbaranesProveedorController.RecuperarProveedor(AAlbaran: IBizAlbaranProveedor); +begin + AAlbaran._Proveedor := (FProveedorController.Buscar(AAlbaran.ID_PROVEEDOR) as IBizProveedor); +end; + +function TAlbaranesProveedorController.Existe(const ID: Integer): Boolean; +var + AAlbaran : IBizAlbaranProveedor; +begin + try + AAlbaran := Buscar(ID); + Result := Assigned(AAlbaran) and (AAlbaran.ID = ID); + finally + AAlbaran := NIL; + end; +end; + +function TAlbaranesProveedorController.ExtraerSeleccionados(AAlbaran: IBizAlbaranProveedor): IBizAlbaranProveedor; +var + ASeleccionados : IBizAlbaranProveedor; +begin + ASeleccionados := (Self.Buscar(ID_NULO) as IBizAlbaranProveedor); + CopyDataTableDA5(AAlbaran.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + +procedure TAlbaranesProveedorController.FiltrarAno(AAlbaran: IBizAlbaranProveedor; ADynWhereDataTable: WideString; const Ano: String); +var + Condicion: TDAWhereExpression; + FechaIni: String; + FechaFin: String; + +begin + AAlbaran.DataTable.DynamicWhere.Clear; + AAlbaran.DataTable.DynamicWhere.Xml := ADynWhereDataTable; + + if (Ano <> 'Todos') then + begin + // Filtrar las facturas actuales por empresa + FechaIni := '01/01/' + Ano; + FechaFin := '31/12/' + Ano; + with AAlbaran.DataTable.DynamicWhere do + begin + // (FECHA_INICIO between FECHA_FIN) + Condicion := NewBinaryExpression(NewField('', fld_AlbaranesProveedorFECHA_ALBARAN), NewConstant(FechaIni, datString), dboGreaterOrEqual); + Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_AlbaranesProveedorFECHA_ALBARAN), NewConstant(FechaFin, datString), dboLessOrEqual), Condicion, dboAnd); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Condicion, Expression, dboAnd); + end; + end; +end; + +procedure TAlbaranesProveedorController.FiltrarEmpresa(AAlbaran: IBizAlbaranProveedor); +var + Condicion: TDAWhereExpression; +begin + if AAlbaran.DataTable.Active then + AAlbaran.DataTable.Active := False; + + // Filtrar los presupuestos actuales por empresa + with AAlbaran.DataTable.DynamicWhere do + begin + // (ID_EMPRESA >= ID) + Condicion := NewBinaryExpression(NewField('', fld_AlbaranesProveedorID_EMPRESA), NewConstant(AppFactuGES.EmpresaActiva.ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; +end; + +procedure TAlbaranesProveedorController.SetProveedorController(const Value: IProveedoresController); +begin + FProveedorController := Value; +end; + +procedure TAlbaranesProveedorController.SetDetallesController(const Value: IDetallesAlbaranProveedorController); +begin + FDetallesController := Value; +end; + +function TAlbaranesProveedorController.Guardar(AAlbaran: IBizAlbaranProveedor): Boolean; +begin + Result := False; + + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignada'); + + if not Assigned(FDetallesController) then + raise Exception.Create ('Controller detalles no asignado'); + + if ValidarAlbaran(AAlbaran) then + begin + ShowHourglassCursor; + try + // Asegurarnos de que todos los importes estn bien. + RecalcularImportes(AAlbaran); + + AAlbaran.DataTable.ApplyUpdates; + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TAlbaranesProveedorController.Nuevo: IBizAlbaranProveedor; +var + AAlbaran : IBizAlbaranProveedor; +begin + AAlbaran := FDataModule.NewItem; + FiltrarEmpresa(AAlbaran); + AAlbaran.DataTable.Active := True; + AAlbaran.Insert; + Result := AAlbaran; +end; + +procedure TAlbaranesProveedorController.Preview(AAlbaran: IBizAlbaranProveedor; AllItems: Boolean = false; + const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True); +var + AReportController : IAlbaranesProveedorReportController; + ID_Albaranes: TIntegerList; +begin + AReportController := TAlbaranesProveedorReportController.Create; + ID_Albaranes := TIntegerList.Create; + + try + //Si deseamos previsualizar todos los items del objeto albaran + if AllItems then + begin + with AAlbaran.DataTable do + begin + First; + while not EOF do + begin + ID_Albaranes.Add(AAlbaran.ID); + Next; + end; + end; + end + //Solo previsualizamos el item seleccionado + else + ID_Albaranes.Add(AAlbaran.ID); + + AReportController.Preview(ID_Albaranes, VerPrecios, VerRefProveedor); + finally + AReportController := NIL; + FreeANDNIL(ID_Albaranes) + end; +end; + +procedure TAlbaranesProveedorController.Print(AAlbaran: IBizAlbaranProveedor; AllItems: Boolean = false; + const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True); +var + AReportController : IAlbaranesProveedorReportController; + ID_Albaranes: TIntegerList; +begin + AReportController := TAlbaranesProveedorReportController.Create; + ID_Albaranes := TIntegerList.Create; + + try + //Si deseamos previsualizar todos los items del objeto albaran + if AllItems then + begin + with AAlbaran.DataTable do + begin + First; + while not EOF do + begin + ID_Albaranes.Add(AAlbaran.ID); + Next; + end; + end; + end + //Solo previsualizamos el item seleccionado + else + ID_Albaranes.Add(AAlbaran.ID); + + AReportController.Print(ID_Albaranes, VerPrecios, VerRefProveedor); + finally + AReportController := NIL; + FreeANDNIL(ID_Albaranes) + end; +end; + +procedure TAlbaranesProveedorController.QuitarDireccionEnvio( + AAlbaran: IBizAlbaranProveedor); +var + bEnEdicion : Boolean; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado (QuitarDireccionEnvio)'); + + if AAlbaran.DataTable.Active then + AAlbaran.DataTable.Active := True; + + bEnEdicion := (AAlbaran.DataTable.State in dsEditModes); + if not bEnEdicion then + AAlbaran.Edit; + + ShowHourglassCursor; + AAlbaran.Edit; + try + AAlbaran.DataTable.FieldByName(fld_AlbaranesProveedorCALLE).Clear; + AAlbaran.DataTable.FieldByName(fld_AlbaranesProveedorPOBLACION).Clear; + AAlbaran.DataTable.FieldByName(fld_AlbaranesProveedorCODIGO_POSTAL).Clear; + AAlbaran.DataTable.FieldByName(fld_AlbaranesProveedorPROVINCIA).Clear; + AAlbaran.DataTable.FieldByName(fld_AlbaranesProveedorTELEFONO).Clear; + AAlbaran.DataTable.FieldByName(fld_AlbaranesProveedorPERSONA_CONTACTO).Clear; + + if not bEnEdicion then + AAlbaran.Post; + finally + HideHourglassCursor; + end; +end; + +function TAlbaranesProveedorController.GetProveedorController: IProveedoresController; +begin + Result := FProveedorController; +end; + +function TAlbaranesProveedorController.GenerarDevolucion(AAlbaran: IBizAlbaranProveedor): IBizAlbaranProveedor; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado (QuitarDireccionEnvio)'); + + if AAlbaran.DataTable.Active then + AAlbaran.DataTable.Active := True; + + ShowHourglassCursor; + try + Result := Duplicar(AAlbaran); + + //Convierte todos los articulos del albaran a negativos por ser una devolucion + FDetallesController.CambiarSignoDetalles(Result.Detalles); + + // Hay que dejar algunos campos como si fuera una factura nueva + Result.Edit; + Result.TIPO := CTE_TIPO_ALBARAN_DEV; + Result.Post; + + finally + HideHourglassCursor; + end; +end; + +function TAlbaranesProveedorController.GetDetallesController: IDetallesAlbaranProveedorController; +begin + Result := FDetallesController; +end; + +function TAlbaranesProveedorController.BuscarAlbaranesDevolucion( + const ID_Proveedor: Integer): IBizAlbaranProveedor; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarAlbaranesDevolucion; + + with Result.DataTable.DynamicWhere do + begin + // ID_CLIENTE + Condicion := NewBinaryExpression(NewField('', fld_AlbaranesProveedorID_PROVEEDOR), + NewConstant(ID_Proveedor, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + finally + HideHourglassCursor; + end; +end; + +function TAlbaranesProveedorController.BuscarAlbaranesNormales( + const ID_Proveedor: Integer): IBizAlbaranProveedor; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarAlbaranesNormales; + + with Result.DataTable.DynamicWhere do + begin + // ID_CLIENTE + Condicion := NewBinaryExpression(NewField('', fld_AlbaranesProveedorID_PROVEEDOR), + NewConstant(ID_Proveedor, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Controller/uAlbaranesProveedorReportController.dcu b/Source/Modulos/Albaranes de proveedor/Controller/uAlbaranesProveedorReportController.dcu new file mode 100644 index 0000000..70150d7 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Controller/uAlbaranesProveedorReportController.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Controller/uAlbaranesProveedorReportController.pas b/Source/Modulos/Albaranes de proveedor/Controller/uAlbaranesProveedorReportController.pas new file mode 100644 index 0000000..2b261a2 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Controller/uAlbaranesProveedorReportController.pas @@ -0,0 +1,191 @@ +unit uAlbaranesProveedorReportController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleAlbaranesProveedorReport, + uAlbaranesProveedorController, uDetallesAlbaranProveedorController, + uBizAlbaranesProveedor, uIntegerListUtils; + +type + IAlbaranesProveedorReportController = interface(IControllerBase) + ['{11F9D087-C6BE-4401-AB13-4342025D62BB}'] + procedure Preview(const AListaID : TIntegerList; + const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True); + procedure Print(const AListaID : TIntegerList; + const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True); + function ExportToWord(const AID: Integer; const AFileName : String = ''; + const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True): Boolean; + function ExportToPDF(const AID: Integer; const AFileName : String = ''; + const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True): Boolean; + end; + + TAlbaranesProveedorReportController = class(TControllerBase, IAlbaranesProveedorReportController) + private + FDataModule : IDataModuleAlbaranesProveedorReport; + function CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; + public + constructor Create; override; + destructor Destroy; override; + + procedure Preview(const AListaID : TIntegerList; + const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True); + procedure Print(const AListaID : TIntegerList; + const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True); + function ExportToWord(const AID: Integer; const AFileName : String = ''; + const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True): Boolean; + function ExportToPDF(const AID: Integer; const AFileName : String = ''; + const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True): Boolean; + end; + + +implementation + +uses + uROTypes, uEditorRegistryUtils, uIEditorAlbaranesProveedorPreview, + uEditorPreview, uDataModuleAlbaranesProveedor, uEditorBase, cxControls, + uStringsUtils, uSistemaFunc, uFactuGES_App; + +{ TAlbaranesProveedorReportController } + +constructor TAlbaranesProveedorReportController.Create; +begin + inherited; + FDataModule := TDataModuleAlbaranesProveedor.Create(Nil); +end; + +function TAlbaranesProveedorReportController.CreateEditor(const AName: String; + const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + + +destructor TAlbaranesProveedorReportController.Destroy; +begin + FDataModule := NIL; + inherited; +end; + +function TAlbaranesProveedorReportController.ExportToPDF(const AID: Integer; const AFileName : String = ''; + const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True): Boolean; +var + AStream: Binary; +begin + Result := False; + if EsCadenaVacia(AFileName) then + Exit; + + ShowHourglassCursor; + try + AStream := FDataModule.GetRptPDFAlbaran(AID, VerPrecios, VerRefProveedor); + try + AStream.SaveToFile(AFileName); + Result := True; + finally + FreeAndNil(AStream); + end; + finally + HideHourglassCursor; + end; +end; + +function TAlbaranesProveedorReportController.ExportToWord(const AID: Integer; const AFileName : String = ''; + const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True): Boolean; +var + AStream: Binary; + AFile : String; +begin + Result := False; + AFile := AFileName; + + if EsCadenaVacia(AFile) and (not PreguntarFicheroWordExportar(AFile)) then + Exit; + + ShowHourglassCursor; + try + AStream := FDataModule.GetRptWordAlbaran(AID, VerPrecios, VerRefProveedor); + try + AStream.SaveToFile(AFile); + Result := True; + finally + FreeAndNil(AStream); + end; + finally + HideHourglassCursor; + end; +end; + +procedure TAlbaranesProveedorReportController.Preview(const AListaID: TIntegerList; + const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True); +var + AStream: Binary; + AEditor : IEditorAlbaranesProveedorPreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(AListaID, VerPrecios, VerRefProveedor); + try + CreateEditor('EditorAlbaranesProveedorPreview', IEditorAlbaranesProveedorPreview, AEditor); + if Assigned(AEditor) then + begin + try + AEditor.Controller := Self; + AEditor.ListaID := AListaID; + AEditor.VerPrecios := VerPrecios; + AEditor.VerRefProveedor := VerRefProveedor; + AEditor.Title := 'Albarn de proveedor - ' + AppFactuGES.EmpresaActiva.NOMBRE; + AEditor.LoadFromStream(AStream); + AEditor.Preview; + finally + AEditor.Release; + AEditor := Nil; + end; + end; + finally + FreeANDNil(AStream) + end; + finally + HideHourglassCursor; + end; +end; + +procedure TAlbaranesProveedorReportController.Print(const AListaID: TIntegerList; + const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True); +var + AStream: Binary; + AEditor : IEditorAlbaranesProveedorPreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(AListaID, VerPrecios, VerRefProveedor); + try + CreateEditor('EditorAlbaranesProveedorPreview', IEditorAlbaranesProveedorPreview, AEditor); + if Assigned(AEditor) then + begin + try + AEditor.Controller := Self; + AEditor.ListaID := AListaID; + AEditor.VerPrecios := VerPrecios; + AEditor.VerRefProveedor := VerRefProveedor; + AEditor.Title := 'Albarn de proveedor - ' + AppFactuGES.EmpresaActiva.NOMBRE; + AEditor.LoadFromStream(AStream); + AEditor.Print; + finally + AEditor.Release; + end; + end; + finally + FreeAndNil(AStream); + AEditor := Nil; + end; + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Controller/uArticulosAlbaranProveedorController.dcu b/Source/Modulos/Albaranes de proveedor/Controller/uArticulosAlbaranProveedorController.dcu new file mode 100644 index 0000000..66592bf Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Controller/uArticulosAlbaranProveedorController.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Controller/uArticulosAlbaranProveedorController.pas b/Source/Modulos/Albaranes de proveedor/Controller/uArticulosAlbaranProveedorController.pas new file mode 100644 index 0000000..136d4e3 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Controller/uArticulosAlbaranProveedorController.pas @@ -0,0 +1,46 @@ +unit uArticulosAlbaranProveedorController; + +interface + +uses + uDADataTable, uArticulosController, uBizArticulos, uBizContactos; + +type + IArticulosAlbaranProveedorController = interface(IArticulosController) + ['{8E3C2FF0-9D42-461C-BF14-6E77843E4173}'] + function ElegirArticulos(AArticulos : IBizArticulo; AMensaje: String; AMultiSelect: Boolean; const AProveedor: IBizProveedor): IBizArticulo; + end; + + TArticulosAlbaranProveedorController = class(TArticulosController, IArticulosAlbaranProveedorController) + public + function ElegirArticulos(AArticulos : IBizArticulo; AMensaje: String; AMultiSelect: Boolean; const AProveedor: IBizProveedor): IBizArticulo; overload; + end; + +implementation + +{ TArticulosAlbaranProveedorController } + +uses Controls, cxControls, uIEditorElegirArticulosAlbaranesProveedor, uIEditorElegirArticulos; + +function TArticulosAlbaranProveedorController.ElegirArticulos(AArticulos: IBizArticulo; AMensaje: String; AMultiSelect: Boolean; const AProveedor: IBizProveedor): IBizArticulo; +var + AEditor : IEditorElegirArticulosAlbaranesProveedor; +begin + Result := NIL; + CreateEditor('EditorElegirArticulosAlbaranesProveedor', IEditorElegirArticulosAlbaranesProveedor, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; + AEditor.Articulos := AArticulos; + AEditor.Proveedor := AProveedor; + AEditor.MultiSelect := AMultiSelect; + AEditor.Mensaje := AMensaje; + if IsPositiveResult(AEditor.ShowModal) then + Result := AEditor.ArticulosSeleccionados; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Controller/uDetallesAlbaranProveedorController.dcu b/Source/Modulos/Albaranes de proveedor/Controller/uDetallesAlbaranProveedorController.dcu new file mode 100644 index 0000000..ec213ce Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Controller/uDetallesAlbaranProveedorController.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Controller/uDetallesAlbaranProveedorController.pas b/Source/Modulos/Albaranes de proveedor/Controller/uDetallesAlbaranProveedorController.pas new file mode 100644 index 0000000..a3b02e8 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Controller/uDetallesAlbaranProveedorController.pas @@ -0,0 +1,179 @@ +unit uDetallesAlbaranProveedorController; + +interface + +uses + uDADataTable, uControllerDetallesArticulos, uBizDetallesAlbaranProveedor, uIDataModuleAlbaranesProveedor, + uBizArticulos, uBizContactos; + +const + CAMPO_REFERENCIA_FABRICANTE = 'REFERENCIA_FABRICANTE'; + +type + IDetallesAlbaranProveedorController = interface(IControllerDetallesArticulos) + ['{6E35D49A-C78D-481D-93E9-859CD27EB79F}'] + procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor; const ANuevaFila :Boolean = True; const ACantidad: Integer = 1); overload; + procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor); overload; + procedure DesglosarPorteDetalles(ImportePorte: Currency; ADetalles: IDAStronglyTypedDataTable); + function DarTotalPorteTotal(ADetalles: IDAStronglyTypedDataTable): Double; + end; + + TDetallesAlbaranProveedorController = class(TControllerDetallesArticulos, IDetallesAlbaranProveedorController) + private + FDataModule : IDataModuleAlbaranesProveedor; + protected + + procedure RellenarOtros(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); override; + procedure RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); override; + + procedure AsignarController; override; + //Si sobreescribimos este mtodo podremos tener en cuenta otras columnas para el calculo del importe total de un concepto + function CalcularImporteTotalConcepto(DataTable: TDADataTable): Double; override; + procedure ValidarCampos(DataTable: TDADataTable); override; + procedure DesglosarPorteDetalles(ImportePorte: Currency; ADetalles: IDAStronglyTypedDataTable); + function DarTotalPorteTotal(ADetalles: IDAStronglyTypedDataTable): Double; + + public + procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor; const ANuevaFila :Boolean = True; const ACantidad: Integer = 1); overload; + procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor); overload; + constructor Create; override; + destructor Destroy; override; + end; + +implementation + +uses uDAInterfaces, Variants, uDialogUtils, uControllerDetallesBase, uDataModuleAlbaranesProveedor, uArticulosAlbaranProveedorController, + uDataTableUtils, uCalculosUtils, schArticulosClient_Intf; + +{ TDetallesAlbaranProveedorController } + +procedure TDetallesAlbaranProveedorController.ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor); +var + AArticulos : IBizArticulo; +begin + if Assigned(ADetalles) then + begin + try + AArticulos := (FArticulosController.BuscarTodos(AProveedor) as IBizArticulo); + ActualizarDetalles(ADetalles, AArticulos); + EliminarArticulosProveedor(ADetalles); + ShowInfoMessage('Se han eliminado todos los artculos que no pertenecen al nuevo proveedor seleccionado, y los que pertenecen sus descuentos han sido adaptados al proveedor seleccionado'); + finally + AArticulos := Nil; + end; + end; +end; + +procedure TDetallesAlbaranProveedorController.AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor; const ANuevaFila :Boolean; const ACantidad: Integer); +var + AArticulos: IBizArticulo; +begin + if Assigned(ADetalles) then + begin + try + AArticulos := (FArticulosController.BuscarTodosPorProveedor as IBizArticulo); + + //Si nueva fila es false, quiere decir que se sustituye un determinado artculo, por ello la lista a seleccionar no debe ser multiselect + if ANuevaFila then + begin + AArticulos := (FArticulosController as IArticulosAlbaranProveedorController).ElegirArticulos(AArticulos, 'Elija los artculos que desea aadir a este albarn de proveedor', True, AProveedor); + Add(ADetalles, AArticulos, ACantidad) + end + else + begin + AArticulos := (FArticulosController as IArticulosAlbaranProveedorController).ElegirArticulos(AArticulos, 'Elija el artculo que desea aadir a este albarn de proveedor', False, AProveedor); + RellenarDetalle(ADetalles, AArticulos, ACantidad); + end; + + finally + AArticulos := Nil; + end; + end; +end; + +procedure TDetallesAlbaranProveedorController.AsignarController; +begin + FArticulosController := TArticulosAlbaranProveedorController.Create; +end; + +function TDetallesAlbaranProveedorController.CalcularImporteTotalConcepto(DataTable: TDADataTable): Double; +begin + Result := CalcularLineaConcepto(DataTable); +end; + +constructor TDetallesAlbaranProveedorController.Create; +begin + inherited; + FDataModule := TDataModuleAlbaranesProveedor.Create(Nil); +end; + +function TDetallesAlbaranProveedorController.DarTotalPorteTotal(ADetalles: IDAStronglyTypedDataTable): Double; +begin + Result := DarTotalPorte(ADetalles); +end; + +procedure TDetallesAlbaranProveedorController.DesglosarPorteDetalles(ImportePorte: Currency; ADetalles: IDAStronglyTypedDataTable); +begin + DesglosarPorte(ImportePorte, ADetalles); + ActualizarTotales(ADetalles); +end; + +destructor TDetallesAlbaranProveedorController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + + +procedure TDetallesAlbaranProveedorController.RellenarOtros(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +var + AField: TDAField; + +begin + if Assigned(AArticulos) then + ADetalles.DataTable.FieldByName(CAMPO_DESCUENTO).AsFloat := AArticulos.DESCUENTO + else + ADetalles.DataTable.FieldByName(CAMPO_DESCUENTO).AsFloat := 0; + + //Sobreescribimos el id del articulo por el campo ID_ARTICULO que nos hemos tenido que crear para + //almacenar el codigo de artculo ya que ID esta destinado a ID_ARTICULO||ID_PROVEEDOR, para identificar de forma + //unica los articulos desglosados por proveedor. + //Validamos la existencia de todos los campos necesarios + AField := AArticulos.DataTable.FindField(CAMPO_ID_ARTICULOS); + if Assigned(AField) then + begin +// if not ADetalles.DataTable.Editing then +// ADetalles.DataTable.Edit; + ADetalles.DataTable.FieldByName(CAMPO_ID_ARTICULOS).AsVariant := AField.AsVariant; + end; + + AField := AArticulos.DataTable.FindField(fld_ArticulosREFERENCIA_FABR); + if Assigned(AField) then + begin +// if not ADetalles.DataTable.Editing then +// ADetalles.DataTable.Edit; + ADetalles.DataTable.FieldByName(CAMPO_REFERENCIA_FABRICANTE).AsVariant := AField.AsVariant; + end; +end; + +procedure TDetallesAlbaranProveedorController.RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +begin + if Assigned(AArticulos) then + begin + ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := AArticulos.PRECIO_COSTE; + ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_PORTE).AsVariant := AArticulos.PRECIO_PORTE; + end + else + begin + ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := Null; + ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_PORTE).AsVariant := Null; + end; +end; + +procedure TDetallesAlbaranProveedorController.ValidarCampos(DataTable: TDADataTable); +begin + inherited; + ValidarCamposLineaConcepto(DataTable); +end; + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.bdsproj b/Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.bdsproj new file mode 100644 index 0000000..74a7685 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + AlbaranesProveedor_data.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.dcu b/Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.dcu new file mode 100644 index 0000000..f3750bd Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.dpk b/Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.dpk new file mode 100644 index 0000000..7f56d0f Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.dpk differ diff --git a/Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.dproj b/Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.dproj new file mode 100644 index 0000000..5347b8f --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.dproj @@ -0,0 +1,539 @@ + + + {38eef566-1895-4bdd-8007-f92f5e32cce6} + AlbaranesProveedor_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\AlbaranesProveedor_data.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0AlbaranesProveedor_data.dpk + + + + + MainSource + + + +
DataModuleAlbaranesProveedor
+
+
+
+ diff --git a/Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.drc b/Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.drc new file mode 100644 index 0000000..f4091e1 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.drc @@ -0,0 +1,17 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Albaranes de proveedor\Data\uDataModuleAlbaranesProveedor.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de proveedor\Data\AlbaranesProveedor_data.res */ +/* c:\temp\dtf1C9.tmp */ diff --git a/Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.rc b/Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.res b/Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.res differ diff --git a/Source/Modulos/Albaranes de proveedor/Data/uDataModuleAlbaranesProveedor.dcu b/Source/Modulos/Albaranes de proveedor/Data/uDataModuleAlbaranesProveedor.dcu new file mode 100644 index 0000000..6b7344c Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Data/uDataModuleAlbaranesProveedor.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Data/uDataModuleAlbaranesProveedor.dfm b/Source/Modulos/Albaranes de proveedor/Data/uDataModuleAlbaranesProveedor.dfm new file mode 100644 index 0000000..cb67103 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Data/uDataModuleAlbaranesProveedor.dfm @@ -0,0 +1,460 @@ +inherited DataModuleAlbaranesProveedor: TDataModuleAlbaranesProveedor + OnCreate = DAClientDataModuleCreate + Height = 365 + Width = 462 + object RORemoteService: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvAlbaranesProveedor' + Left = 48 + Top = 32 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 92 + end + object rda_AlbaranesProveedor: TDARemoteDataAdapter + DataStreamer = Bin2DataStreamer + GetSchemaCall.RemoteService = RORemoteService + GetDataCall.RemoteService = RORemoteService + UpdateDataCall.RemoteService = RORemoteService + GetScriptsCall.RemoteService = RORemoteService + RemoteService = RORemoteService + Left = 51 + Top = 151 + end + object tbl_AlbaranesProveedor: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALBARANES_PRO_ID' + Required = True + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesProveedor_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_ID_EMPRESA' + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_ID_PROVEEDOR' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Proveedor' + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesProveedor_NOMBRE' + end + item + Name = 'ID_DIRECCION' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_ID_DIRECCION' + end + item + Name = 'PERSONA_CONTACTO_PROV' + DataType = datString + Size = 255 + DisplayLabel = 'Contacto del proveedor' + DictionaryEntry = 'AlbaranesProveedor_PERSONA_CONTACTO_PROV' + end + item + Name = 'FECHA_ALBARAN' + DataType = datDateTime + DisplayLabel = 'Fecha albar'#225'n' + DictionaryEntry = 'AlbaranesProveedor_FECHA_ALBARAN' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + DictionaryEntry = 'AlbaranesProveedor_REFERENCIA' + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. provedor' + DictionaryEntry = 'AlbaranesProveedor_REFERENCIA_PROVEEDOR' + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + DisplayLabel = 'Tipo' + DictionaryEntry = 'AlbaranesProveedor_TIPO' + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_ID_ALMACEN' + end + item + Name = 'TIPO_ALMACEN' + DataType = datString + Size = 10 + DisplayLabel = 'AlbaranesProveedor_TIPO_ALMACEN' + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesProveedor_TIPO_ALMACEN' + end + item + Name = 'NOMBRE_ALMACEN' + DataType = datString + Size = 255 + DisplayLabel = 'Almac'#233'n' + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesProveedor_NOMBRE_ALMACEN' + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_ID_PEDIDO' + end + item + Name = 'REF_PED_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'Ped. proveedor' + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesProveedor_REF_PED_PROVEEDOR' + end + item + Name = 'ID_FACTURA' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_ID_FACTURA' + end + item + Name = 'REF_FACTURA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia factura' + DictionaryEntry = 'AlbaranesProveedor_REF_FACTURA' + end + item + Name = 'REF_FACTURA_PROV' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. factura prov' + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesProveedor_REF_FACTURA_PROV' + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DisplayLabel = 'Calle' + DictionaryEntry = 'AlbaranesProveedor_CALLE' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#243'd. postal' + DictionaryEntry = 'AlbaranesProveedor_CODIGO_POSTAL' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DisplayLabel = 'Poblaci'#243'n' + DictionaryEntry = 'AlbaranesProveedor_POBLACION' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Provincia' + DictionaryEntry = 'AlbaranesProveedor_PROVINCIA' + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + DisplayLabel = 'Persona de contacto' + DictionaryEntry = 'AlbaranesProveedor_PERSONA_CONTACTO' + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + DisplayLabel = 'Tel'#233'fono' + DictionaryEntry = 'AlbaranesProveedor_TELEFONO' + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + DisplayLabel = 'Importe neto' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesProveedor_IMPORTE_NETO' + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + DisplayLabel = 'Importe del porte' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesProveedor_IMPORTE_PORTE' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesProveedor_DESCUENTO' + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesProveedor_IMPORTE_DESCUENTO' + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesProveedor_BASE_IMPONIBLE' + end + item + Name = 'IVA' + DataType = datFloat + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesProveedor_IVA' + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesProveedor_IMPORTE_IVA' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesProveedor_IMPORTE_TOTAL' + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + DisplayLabel = 'Observaciones' + DictionaryEntry = 'AlbaranesProveedor_OBSERVACIONES' + end + item + Name = 'INCIDENCIAS' + DataType = datMemo + DictionaryEntry = 'AlbaranesProveedor_INCIDENCIAS' + end + item + Name = 'INCIDENCIAS_ACTIVAS' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_INCIDENCIAS_ACTIVAS' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'AlbaranesProveedor_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'AlbaranesProveedor_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'AlbaranesProveedor_USUARIO' + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_ID_FORMA_PAGO' + end + item + Name = 'ID_ALBARAN' + DataType = datInteger + DisplayLabel = 'AlbaranesProveedor_ID_ALBARAN' + DictionaryEntry = 'AlbaranesProveedor_ID_ALBARAN' + end + item + Name = 'REFERENCIA_ALBARAN' + DataType = datString + Size = 255 + DisplayLabel = 'AlbaranesProveedor_REFERENCIA_ALBARAN' + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesProveedor_REFERENCIA_ALBARAN' + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_AlbaranesProveedor + LogicalName = 'AlbaranesProveedor' + IndexDefs = <> + Left = 168 + Top = 104 + end + object ds_AlbaranesProveedor: TDADataSource + DataSet = tbl_AlbaranesProveedor.Dataset + DataTable = tbl_AlbaranesProveedor + Left = 168 + Top = 40 + end + object tbl_AlbaranesProveedor_Detalles: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALBARANES_PRO_DETALLES_ID' + Required = True + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesProveedor_Detalles_ID' + InPrimaryKey = True + end + item + Name = 'ID_ALBARAN' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_Detalles_ID_ALBARAN' + end + item + Name = 'POSICION' + DataType = datInteger + DictionaryEntry = 'POSICIONCONCEPTO' + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + DictionaryEntry = 'AlbaranesProveedor_Detalles_TIPO_DETALLE' + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + DictionaryEntry = 'AlbaranesProveedor_Detalles_CONCEPTO' + end + item + Name = 'CANTIDAD' + DataType = datFloat + DictionaryEntry = 'CANTIDAD' + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesProveedor_Detalles_IMPORTE_UNIDAD' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesProveedor_Detalles_IMPORTE_TOTAL' + end + item + Name = 'VISIBLE' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_Detalles_VISIBLE' + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_Detalles_ID_ARTICULO' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesProveedor_Detalles_DESCUENTO' + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + DisplayLabel = 'Importe porte' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesProveedor_Detalles_IMPORTE_PORTE' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + DictionaryEntry = 'AlbaranesProveedor_Detalles_REFERENCIA' + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. proveedor' + DictionaryEntry = 'AlbaranesProveedor_Detalles_REFERENCIA_PROVEEDOR' + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + end + item + Name = 'REFERENCIA_FABRICANTE' + DataType = datString + Size = 255 + end> + Params = <> + MasterMappingMode = mmWhere + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_AlbaranesProveedor + MasterSource = ds_AlbaranesProveedor + MasterFields = 'ID' + DetailFields = 'ID_ALBARAN' + LogicalName = 'AlbaranesProveedor_Detalles' + IndexDefs = <> + Left = 328 + Top = 104 + end + object ds_AlbaranesProveedor_Detalles: TDADataSource + DataSet = tbl_AlbaranesProveedor_Detalles.Dataset + DataTable = tbl_AlbaranesProveedor_Detalles + Left = 328 + Top = 40 + end + object tbl_ListaAnosAlbaranes: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ANO' + DataType = datString + Size = 254 + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_AlbaranesProveedor + LogicalName = 'ListaAnosAlbaranes' + IndexDefs = <> + Left = 168 + Top = 224 + end + object ds_ListaAnosAlbaranes: TDADataSource + DataSet = tbl_ListaAnosAlbaranes.Dataset + DataTable = tbl_ListaAnosAlbaranes + Left = 168 + Top = 168 + end +end diff --git a/Source/Modulos/Albaranes de proveedor/Data/uDataModuleAlbaranesProveedor.pas b/Source/Modulos/Albaranes de proveedor/Data/uDataModuleAlbaranesProveedor.pas new file mode 100644 index 0000000..63204fa --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Data/uDataModuleAlbaranesProveedor.pas @@ -0,0 +1,203 @@ +unit uDataModuleAlbaranesProveedor; + +interface + +uses + DB, Classes, SysUtils, uDADesigntimeCall, + uRORemoteService, uROClient, uROBinMessage, uDAScriptingProvider, + uDACDSDataTable, uROWinInetHttpChannel, uDADataTable, uDABINAdapter, + uROTypes, uIDataModuleAlbaranesProveedorReport, uDataModuleBase, + uIDataModuleAlbaranesProveedor, uBizAlbaranesProveedor, uBizDetallesAlbaranProveedor, + uDARemoteDataAdapter, uDADataStreamer, uDABin2DataStreamer, uDAInterfaces, + uDAMemDataTable, uIntegerListUtils; + +type + TDataModuleAlbaranesProveedor = class(TDataModuleBase, IDataModuleAlbaranesProveedor, IDataModuleAlbaranesProveedorReport) + RORemoteService: TRORemoteService; + Bin2DataStreamer: TDABin2DataStreamer; + rda_AlbaranesProveedor: TDARemoteDataAdapter; + tbl_AlbaranesProveedor: TDAMemDataTable; + ds_AlbaranesProveedor: TDADataSource; + tbl_AlbaranesProveedor_Detalles: TDAMemDataTable; + ds_AlbaranesProveedor_Detalles: TDADataSource; + tbl_ListaAnosAlbaranes: TDAMemDataTable; + ds_ListaAnosAlbaranes: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + + private + function _GetDetalles : IBizDetallesAlbaranProveedor; + + protected + procedure AsignarClaseNegocio(var APedido: TDAMemDataTable); virtual; + + public + function GetItems : IBizAlbaranProveedor; virtual; + function GetItem(const ID : Integer) : IBizAlbaranProveedor; + function NewItem : IBizAlbaranProveedor; + + // Report + function GetReport(const ListaID: TIntegerList; const ImprimirPrecio: Boolean = True; + const ImprimirRefProveedor: Boolean = True): Binary; + function GetRptWordAlbaran(const AID: Integer; const ImprimirPrecio: Boolean = True; + const ImprimirRefProveedor: Boolean = True): Binary; + function GetRptPDFAlbaran(const AID: Integer; const ImprimirPrecio: Boolean = True; + const ImprimirRefProveedor: Boolean = True): Binary; + + function GetAnosItems : TStringList; + end; + +implementation + +{$R *.DFM} + +uses + cxControls, FactuGES_Intf, uDataModuleConexion, + uDataTableUtils, schAlbaranesProveedorClient_Intf, uBizContactos; + +{ TdmAlbaranesProveedor } + +procedure TDataModuleAlbaranesProveedor.AsignarClaseNegocio(var APedido: TDAMemDataTable); +begin + APedido.BusinessRulesID := BIZ_CLIENT_ALBARAN_PROVEEDOR; +end; + +procedure TDataModuleAlbaranesProveedor.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleAlbaranesProveedor.GetReport(const ListaID: TIntegerList; + const ImprimirPrecio: Boolean = True; + const ImprimirRefProveedor: Boolean = True): Binary; +var + AParam : TIntegerArray; +begin + AParam := ListaID.ToIntegerArray; + try + Result := (RORemoteService as IsrvAlbaranesProveedor).GenerarInforme(AParam, + ImprimirPrecio, ImprimirRefProveedor); + finally + FreeANDNil(AParam); + end; +end; + +function TDataModuleAlbaranesProveedor.GetRptPDFAlbaran(const AID: Integer; + const ImprimirPrecio: Boolean = True; + const ImprimirRefProveedor: Boolean = True): Binary; +var + AParam : TIntegerArray; +begin + AParam := TIntegerArray.Create; + try + AParam.Add(AID); + Result := (RORemoteService as IsrvAlbaranesProveedor).GenerarInformeEnPDF(AParam, + ImprimirPrecio, ImprimirRefProveedor); + finally + FreeANDNil(AParam); + end; +end; + +function TDataModuleAlbaranesProveedor.GetRptWordAlbaran(const AID: Integer; + const ImprimirPrecio: Boolean = True; + const ImprimirRefProveedor: Boolean = True): Binary; +begin + Result := (RORemoteService as IsrvAlbaranesProveedor).GenerarInformeEnWord(AID, + ImprimirPrecio, ImprimirRefProveedor); +end; + +function TDataModuleAlbaranesProveedor.NewItem: IBizAlbaranProveedor; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleAlbaranesProveedor._GetDetalles: IBizDetallesAlbaranProveedor; +var + ADetalles : TDAMemDataTable; +begin + ShowHourglassCursor; + try + ADetalles := CloneDataTable(tbl_AlbaranesProveedor_Detalles); + with ADetalles do + begin + BusinessRulesID := BIZ_CLIENT_DETALLES_ALBARAN_PROVEEDOR; + DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; + end; + Result := (ADetalles as IBizDetallesAlbaranProveedor); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleAlbaranesProveedor.GetAnosItems: TStringList; +var + AListaAnos: TStringList; +begin + AListaAnos := TStringList.Create; + ShowHourglassCursor; + try + with tbl_ListaAnosAlbaranes do + begin + Open; + First; + while not eof do + begin + AListaAnos.Add(Format('%s=%s', [Fields[0].AsString, Fields[0].AsString])); + Next; + end; + Close; + end; + Result := AListaAnos; + finally + HideHourglassCursor; + end; +end; + +function TDataModuleAlbaranesProveedor.GetItem(const ID: Integer): IBizAlbaranProveedor; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + + with Result.DataTable.DynamicWhere do + begin + // (ID = :ID) + Condicion := NewBinaryExpression(NewField('', fld_AlbaranesProveedorID), NewConstant(ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TDataModuleAlbaranesProveedor.GetItems: IBizAlbaranProveedor; +var + AAlbaran : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AAlbaran := CloneDataTable(tbl_AlbaranesProveedor); + AsignarClaseNegocio(AAlbaran); + + // EL CAMPO REFERENCIA TIENE QUE SER AUTOREFRESH!!!!! + AAlbaran.FieldByName(fld_AlbaranesProveedorREFERENCIA).ServerAutoRefresh := TRUE; + + with TBizAlbaranProveedor(AAlbaran.BusinessEventsObj) do + begin + Detalles := _GetDetalles; + end; + + Result := (AAlbaran as IBizAlbaranProveedor); + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.bdsproj b/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.bdsproj new file mode 100644 index 0000000..b34bab2 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.bdsproj @@ -0,0 +1,496 @@ + + + + + + + + + + + + AlbaranesProveedor_model.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + EurekaLog 5.1.9 + + + + True + diff --git a/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.dcu b/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.dcu new file mode 100644 index 0000000..543be98 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.dpk b/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.dpk new file mode 100644 index 0000000..3d2dbfd --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.dpk @@ -0,0 +1,40 @@ +package AlbaranesProveedor_model; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + Base, + Contactos_model, + Inventario_model; + +contains + uIDataModuleAlbaranesProveedor in 'Data\uIDataModuleAlbaranesProveedor.pas', + uBizDetallesAlbaranProveedor in 'uBizDetallesAlbaranProveedor.pas', + uBizAlbaranesProveedor in 'uBizAlbaranesProveedor.pas', + uIDataModuleAlbaranesProveedorReport in 'Data\uIDataModuleAlbaranesProveedorReport.pas', + schAlbaranesProveedorClient_Intf in 'schAlbaranesProveedorClient_Intf.pas', + schAlbaranesProveedorServer_Intf in 'schAlbaranesProveedorServer_Intf.pas'; + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.dproj b/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.dproj new file mode 100644 index 0000000..0c10b63 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.dproj @@ -0,0 +1,547 @@ + + + {a7225a8d-f40d-4878-9a27-c5de0e7cb638} + AlbaranesProveedor_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\AlbaranesProveedor_model.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + EurekaLog 5.1.9 + AlbaranesProveedor_model.dpk + + + + + MainSource + + + + + + + + + + + + + diff --git a/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.drc b/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.drc new file mode 100644 index 0000000..9e54db4 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.drc @@ -0,0 +1,16 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Albaranes de proveedor\Model\AlbaranesProveedor_model.res */ +/* c:\temp\dtf1C7.tmp */ diff --git a/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.rc b/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.res b/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.res differ diff --git a/Source/Modulos/Albaranes de proveedor/Model/Data/uIDataModuleAlbaranesProveedor.dcu b/Source/Modulos/Albaranes de proveedor/Model/Data/uIDataModuleAlbaranesProveedor.dcu new file mode 100644 index 0000000..7e1750c Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Model/Data/uIDataModuleAlbaranesProveedor.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Model/Data/uIDataModuleAlbaranesProveedor.pas b/Source/Modulos/Albaranes de proveedor/Model/Data/uIDataModuleAlbaranesProveedor.pas new file mode 100644 index 0000000..4cb08f3 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Model/Data/uIDataModuleAlbaranesProveedor.pas @@ -0,0 +1,19 @@ +unit uIDataModuleAlbaranesProveedor; + +interface + +uses + Classes, uBizAlbaranesProveedor; + +type + IDataModuleAlbaranesProveedor = interface + ['{2BAD8B3B-B57D-475C-B528-F82B320B2332}'] + function GetAnosItems : TStringList; + function GetItems: IBizAlbaranProveedor; + function GetItem(const ID : Integer) : IBizAlbaranProveedor; + function NewItem : IBizAlbaranProveedor; + end; + +implementation + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Model/Data/uIDataModuleAlbaranesProveedorReport.dcu b/Source/Modulos/Albaranes de proveedor/Model/Data/uIDataModuleAlbaranesProveedorReport.dcu new file mode 100644 index 0000000..eb47f35 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Model/Data/uIDataModuleAlbaranesProveedorReport.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Model/Data/uIDataModuleAlbaranesProveedorReport.pas b/Source/Modulos/Albaranes de proveedor/Model/Data/uIDataModuleAlbaranesProveedorReport.pas new file mode 100644 index 0000000..1b49e69 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Model/Data/uIDataModuleAlbaranesProveedorReport.pas @@ -0,0 +1,23 @@ +unit uIDataModuleAlbaranesProveedorReport; + +interface + +uses + uROTypes, uIntegerListUtils; + +type + IDataModuleAlbaranesProveedorReport = interface + ['{FC37B698-7FBF-4658-BBD0-CBD4F6891CDF}'] + function GetReport(const ListaID: TIntegerList; const ImprimirPrecio: Boolean = True; + const ImprimirRefProveedor: Boolean = True): Binary; + function GetRptWordAlbaran(const AID: Integer; const ImprimirPrecio: Boolean = True; + const ImprimirRefProveedor: Boolean = True): Binary; + function GetRptPDFAlbaran(const AID: Integer; const ImprimirPrecio: Boolean = True; + const ImprimirRefProveedor: Boolean = True): Binary; + end; + +implementation + +end. + + diff --git a/Source/Modulos/Albaranes de proveedor/Model/ModelSupport_AlbaranesProveedor_model/AlbaranesProveedor_model.prjconfig b/Source/Modulos/Albaranes de proveedor/Model/ModelSupport_AlbaranesProveedor_model/AlbaranesProveedor_model.prjconfig new file mode 100644 index 0000000..c8f2834 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Model/ModelSupport_AlbaranesProveedor_model/AlbaranesProveedor_model.prjconfig @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Source/Modulos/Albaranes de proveedor/Model/ModelSupport_AlbaranesProveedor_model/default.txaPackage b/Source/Modulos/Albaranes de proveedor/Model/ModelSupport_AlbaranesProveedor_model/default.txaPackage new file mode 100644 index 0000000..e69de29 diff --git a/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorClient_Intf.dcu b/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorClient_Intf.dcu new file mode 100644 index 0000000..a4d6055 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorClient_Intf.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorClient_Intf.pas b/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorClient_Intf.pas new file mode 100644 index 0000000..63d7928 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorClient_Intf.pas @@ -0,0 +1,2225 @@ +unit schAlbaranesProveedorClient_Intf; + +interface + +uses + Classes, DB, schBase_Intf, SysUtils, uROClasses, uDAInterfaces, uDADataTable, FmtBCD, uROXMLIntf; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_ListaAnosAlbaranes = '{E3A2ED3A-F249-4ABE-8A74-10FE9BD3248E}'; + RID_AlbaranesProveedor = '{70F52AD0-4120-42C8-B8C9-002C650CD667}'; + RID_AlbaranesProveedor_Detalles = '{858DC56E-F6E9-4CBD-A42B-4D4C1B386F17}'; + + { Data table names } + nme_ListaAnosAlbaranes = 'ListaAnosAlbaranes'; + nme_AlbaranesProveedor = 'AlbaranesProveedor'; + nme_AlbaranesProveedor_Detalles = 'AlbaranesProveedor_Detalles'; + + { ListaAnosAlbaranes fields } + fld_ListaAnosAlbaranesANO = 'ANO'; + + { ListaAnosAlbaranes field indexes } + idx_ListaAnosAlbaranesANO = 0; + + { AlbaranesProveedor fields } + fld_AlbaranesProveedorID = 'ID'; + fld_AlbaranesProveedorID_EMPRESA = 'ID_EMPRESA'; + fld_AlbaranesProveedorID_PROVEEDOR = 'ID_PROVEEDOR'; + fld_AlbaranesProveedorNOMBRE = 'NOMBRE'; + fld_AlbaranesProveedorID_DIRECCION = 'ID_DIRECCION'; + fld_AlbaranesProveedorPERSONA_CONTACTO_PROV = 'PERSONA_CONTACTO_PROV'; + fld_AlbaranesProveedorFECHA_ALBARAN = 'FECHA_ALBARAN'; + fld_AlbaranesProveedorREFERENCIA = 'REFERENCIA'; + fld_AlbaranesProveedorREFERENCIA_PROVEEDOR = 'REFERENCIA_PROVEEDOR'; + fld_AlbaranesProveedorTIPO = 'TIPO'; + fld_AlbaranesProveedorID_ALMACEN = 'ID_ALMACEN'; + fld_AlbaranesProveedorTIPO_ALMACEN = 'TIPO_ALMACEN'; + fld_AlbaranesProveedorNOMBRE_ALMACEN = 'NOMBRE_ALMACEN'; + fld_AlbaranesProveedorID_PEDIDO = 'ID_PEDIDO'; + fld_AlbaranesProveedorREF_PED_PROVEEDOR = 'REF_PED_PROVEEDOR'; + fld_AlbaranesProveedorID_FACTURA = 'ID_FACTURA'; + fld_AlbaranesProveedorREF_FACTURA = 'REF_FACTURA'; + fld_AlbaranesProveedorREF_FACTURA_PROV = 'REF_FACTURA_PROV'; + fld_AlbaranesProveedorCALLE = 'CALLE'; + fld_AlbaranesProveedorCODIGO_POSTAL = 'CODIGO_POSTAL'; + fld_AlbaranesProveedorPOBLACION = 'POBLACION'; + fld_AlbaranesProveedorPROVINCIA = 'PROVINCIA'; + fld_AlbaranesProveedorPERSONA_CONTACTO = 'PERSONA_CONTACTO'; + fld_AlbaranesProveedorTELEFONO = 'TELEFONO'; + fld_AlbaranesProveedorIMPORTE_NETO = 'IMPORTE_NETO'; + fld_AlbaranesProveedorIMPORTE_PORTE = 'IMPORTE_PORTE'; + fld_AlbaranesProveedorDESCUENTO = 'DESCUENTO'; + fld_AlbaranesProveedorIMPORTE_DESCUENTO = 'IMPORTE_DESCUENTO'; + fld_AlbaranesProveedorBASE_IMPONIBLE = 'BASE_IMPONIBLE'; + fld_AlbaranesProveedorIVA = 'IVA'; + fld_AlbaranesProveedorIMPORTE_IVA = 'IMPORTE_IVA'; + fld_AlbaranesProveedorIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_AlbaranesProveedorOBSERVACIONES = 'OBSERVACIONES'; + fld_AlbaranesProveedorINCIDENCIAS = 'INCIDENCIAS'; + fld_AlbaranesProveedorINCIDENCIAS_ACTIVAS = 'INCIDENCIAS_ACTIVAS'; + fld_AlbaranesProveedorFECHA_ALTA = 'FECHA_ALTA'; + fld_AlbaranesProveedorFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_AlbaranesProveedorUSUARIO = 'USUARIO'; + fld_AlbaranesProveedorID_FORMA_PAGO = 'ID_FORMA_PAGO'; + fld_AlbaranesProveedorID_ALBARAN = 'ID_ALBARAN'; + fld_AlbaranesProveedorREFERENCIA_ALBARAN = 'REFERENCIA_ALBARAN'; + + { AlbaranesProveedor field indexes } + idx_AlbaranesProveedorID = 0; + idx_AlbaranesProveedorID_EMPRESA = 1; + idx_AlbaranesProveedorID_PROVEEDOR = 2; + idx_AlbaranesProveedorNOMBRE = 3; + idx_AlbaranesProveedorID_DIRECCION = 4; + idx_AlbaranesProveedorPERSONA_CONTACTO_PROV = 5; + idx_AlbaranesProveedorFECHA_ALBARAN = 6; + idx_AlbaranesProveedorREFERENCIA = 7; + idx_AlbaranesProveedorREFERENCIA_PROVEEDOR = 8; + idx_AlbaranesProveedorTIPO = 9; + idx_AlbaranesProveedorID_ALMACEN = 10; + idx_AlbaranesProveedorTIPO_ALMACEN = 11; + idx_AlbaranesProveedorNOMBRE_ALMACEN = 12; + idx_AlbaranesProveedorID_PEDIDO = 13; + idx_AlbaranesProveedorREF_PED_PROVEEDOR = 14; + idx_AlbaranesProveedorID_FACTURA = 15; + idx_AlbaranesProveedorREF_FACTURA = 16; + idx_AlbaranesProveedorREF_FACTURA_PROV = 17; + idx_AlbaranesProveedorCALLE = 18; + idx_AlbaranesProveedorCODIGO_POSTAL = 19; + idx_AlbaranesProveedorPOBLACION = 20; + idx_AlbaranesProveedorPROVINCIA = 21; + idx_AlbaranesProveedorPERSONA_CONTACTO = 22; + idx_AlbaranesProveedorTELEFONO = 23; + idx_AlbaranesProveedorIMPORTE_NETO = 24; + idx_AlbaranesProveedorIMPORTE_PORTE = 25; + idx_AlbaranesProveedorDESCUENTO = 26; + idx_AlbaranesProveedorIMPORTE_DESCUENTO = 27; + idx_AlbaranesProveedorBASE_IMPONIBLE = 28; + idx_AlbaranesProveedorIVA = 29; + idx_AlbaranesProveedorIMPORTE_IVA = 30; + idx_AlbaranesProveedorIMPORTE_TOTAL = 31; + idx_AlbaranesProveedorOBSERVACIONES = 32; + idx_AlbaranesProveedorINCIDENCIAS = 33; + idx_AlbaranesProveedorINCIDENCIAS_ACTIVAS = 34; + idx_AlbaranesProveedorFECHA_ALTA = 35; + idx_AlbaranesProveedorFECHA_MODIFICACION = 36; + idx_AlbaranesProveedorUSUARIO = 37; + idx_AlbaranesProveedorID_FORMA_PAGO = 38; + idx_AlbaranesProveedorID_ALBARAN = 39; + idx_AlbaranesProveedorREFERENCIA_ALBARAN = 40; + + { AlbaranesProveedor_Detalles fields } + fld_AlbaranesProveedor_DetallesID = 'ID'; + fld_AlbaranesProveedor_DetallesID_ALBARAN = 'ID_ALBARAN'; + fld_AlbaranesProveedor_DetallesPOSICION = 'POSICION'; + fld_AlbaranesProveedor_DetallesTIPO_DETALLE = 'TIPO_DETALLE'; + fld_AlbaranesProveedor_DetallesCONCEPTO = 'CONCEPTO'; + fld_AlbaranesProveedor_DetallesCANTIDAD = 'CANTIDAD'; + fld_AlbaranesProveedor_DetallesUNIDAD_MEDIDA = 'UNIDAD_MEDIDA'; + fld_AlbaranesProveedor_DetallesIMPORTE_UNIDAD = 'IMPORTE_UNIDAD'; + fld_AlbaranesProveedor_DetallesIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_AlbaranesProveedor_DetallesVISIBLE = 'VISIBLE'; + fld_AlbaranesProveedor_DetallesID_ARTICULO = 'ID_ARTICULO'; + fld_AlbaranesProveedor_DetallesDESCUENTO = 'DESCUENTO'; + fld_AlbaranesProveedor_DetallesIMPORTE_PORTE = 'IMPORTE_PORTE'; + fld_AlbaranesProveedor_DetallesREFERENCIA = 'REFERENCIA'; + fld_AlbaranesProveedor_DetallesREFERENCIA_PROVEEDOR = 'REFERENCIA_PROVEEDOR'; + fld_AlbaranesProveedor_DetallesID_PEDIDO = 'ID_PEDIDO'; + fld_AlbaranesProveedor_DetallesREFERENCIA_FABRICANTE = 'REFERENCIA_FABRICANTE'; + + { AlbaranesProveedor_Detalles field indexes } + idx_AlbaranesProveedor_DetallesID = 0; + idx_AlbaranesProveedor_DetallesID_ALBARAN = 1; + idx_AlbaranesProveedor_DetallesPOSICION = 2; + idx_AlbaranesProveedor_DetallesTIPO_DETALLE = 3; + idx_AlbaranesProveedor_DetallesCONCEPTO = 4; + idx_AlbaranesProveedor_DetallesCANTIDAD = 5; + idx_AlbaranesProveedor_DetallesUNIDAD_MEDIDA = 6; + idx_AlbaranesProveedor_DetallesIMPORTE_UNIDAD = 7; + idx_AlbaranesProveedor_DetallesIMPORTE_TOTAL = 8; + idx_AlbaranesProveedor_DetallesVISIBLE = 9; + idx_AlbaranesProveedor_DetallesID_ARTICULO = 10; + idx_AlbaranesProveedor_DetallesDESCUENTO = 11; + idx_AlbaranesProveedor_DetallesIMPORTE_PORTE = 12; + idx_AlbaranesProveedor_DetallesREFERENCIA = 13; + idx_AlbaranesProveedor_DetallesREFERENCIA_PROVEEDOR = 14; + idx_AlbaranesProveedor_DetallesID_PEDIDO = 15; + idx_AlbaranesProveedor_DetallesREFERENCIA_FABRICANTE = 16; + +type + { IListaAnosAlbaranes } + IListaAnosAlbaranes = interface(IDAStronglyTypedDataTable) + ['{F465A675-EFE9-4F84-B5D4-B4960D19B0AC}'] + { Property getters and setters } + function GetANOValue: String; + procedure SetANOValue(const aValue: String); + function GetANOIsNull: Boolean; + procedure SetANOIsNull(const aValue: Boolean); + + + { Properties } + property ANO: String read GetANOValue write SetANOValue; + property ANOIsNull: Boolean read GetANOIsNull write SetANOIsNull; + end; + + { TListaAnosAlbaranesDataTableRules } + TListaAnosAlbaranesDataTableRules = class(TIntfObjectDADataTableRules, IListaAnosAlbaranes) + private + protected + { Property getters and setters } + function GetANOValue: String; virtual; + procedure SetANOValue(const aValue: String); virtual; + function GetANOIsNull: Boolean; virtual; + procedure SetANOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ANO: String read GetANOValue write SetANOValue; + property ANOIsNull: Boolean read GetANOIsNull write SetANOIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IAlbaranesProveedor } + IAlbaranesProveedor = interface(IDAStronglyTypedDataTable) + ['{AA1B6979-13F8-4B5C-9618-E53CC259BC39}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_EMPRESAIsNull: Boolean; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); + function GetID_PROVEEDORValue: Integer; + procedure SetID_PROVEEDORValue(const aValue: Integer); + function GetID_PROVEEDORIsNull: Boolean; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetNOMBREIsNull: Boolean; + procedure SetNOMBREIsNull(const aValue: Boolean); + function GetID_DIRECCIONValue: Integer; + procedure SetID_DIRECCIONValue(const aValue: Integer); + function GetID_DIRECCIONIsNull: Boolean; + procedure SetID_DIRECCIONIsNull(const aValue: Boolean); + function GetPERSONA_CONTACTO_PROVValue: String; + procedure SetPERSONA_CONTACTO_PROVValue(const aValue: String); + function GetPERSONA_CONTACTO_PROVIsNull: Boolean; + procedure SetPERSONA_CONTACTO_PROVIsNull(const aValue: Boolean); + function GetFECHA_ALBARANValue: DateTime; + procedure SetFECHA_ALBARANValue(const aValue: DateTime); + function GetFECHA_ALBARANIsNull: Boolean; + procedure SetFECHA_ALBARANIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetREFERENCIA_PROVEEDORValue: String; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); + function GetREFERENCIA_PROVEEDORIsNull: Boolean; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); + function GetTIPOValue: String; + procedure SetTIPOValue(const aValue: String); + function GetTIPOIsNull: Boolean; + procedure SetTIPOIsNull(const aValue: Boolean); + function GetID_ALMACENValue: Integer; + procedure SetID_ALMACENValue(const aValue: Integer); + function GetID_ALMACENIsNull: Boolean; + procedure SetID_ALMACENIsNull(const aValue: Boolean); + function GetTIPO_ALMACENValue: String; + procedure SetTIPO_ALMACENValue(const aValue: String); + function GetTIPO_ALMACENIsNull: Boolean; + procedure SetTIPO_ALMACENIsNull(const aValue: Boolean); + function GetNOMBRE_ALMACENValue: String; + procedure SetNOMBRE_ALMACENValue(const aValue: String); + function GetNOMBRE_ALMACENIsNull: Boolean; + procedure SetNOMBRE_ALMACENIsNull(const aValue: Boolean); + function GetID_PEDIDOValue: Integer; + procedure SetID_PEDIDOValue(const aValue: Integer); + function GetID_PEDIDOIsNull: Boolean; + procedure SetID_PEDIDOIsNull(const aValue: Boolean); + function GetREF_PED_PROVEEDORValue: String; + procedure SetREF_PED_PROVEEDORValue(const aValue: String); + function GetREF_PED_PROVEEDORIsNull: Boolean; + procedure SetREF_PED_PROVEEDORIsNull(const aValue: Boolean); + function GetID_FACTURAValue: Integer; + procedure SetID_FACTURAValue(const aValue: Integer); + function GetID_FACTURAIsNull: Boolean; + procedure SetID_FACTURAIsNull(const aValue: Boolean); + function GetREF_FACTURAValue: String; + procedure SetREF_FACTURAValue(const aValue: String); + function GetREF_FACTURAIsNull: Boolean; + procedure SetREF_FACTURAIsNull(const aValue: Boolean); + function GetREF_FACTURA_PROVValue: String; + procedure SetREF_FACTURA_PROVValue(const aValue: String); + function GetREF_FACTURA_PROVIsNull: Boolean; + procedure SetREF_FACTURA_PROVIsNull(const aValue: Boolean); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetCALLEIsNull: Boolean; + procedure SetCALLEIsNull(const aValue: Boolean); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetCODIGO_POSTALIsNull: Boolean; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPOBLACIONIsNull: Boolean; + procedure SetPOBLACIONIsNull(const aValue: Boolean); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetPROVINCIAIsNull: Boolean; + procedure SetPROVINCIAIsNull(const aValue: Boolean); + function GetPERSONA_CONTACTOValue: String; + procedure SetPERSONA_CONTACTOValue(const aValue: String); + function GetPERSONA_CONTACTOIsNull: Boolean; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); + function GetTELEFONOValue: String; + procedure SetTELEFONOValue(const aValue: String); + function GetTELEFONOIsNull: Boolean; + procedure SetTELEFONOIsNull(const aValue: Boolean); + function GetIMPORTE_NETOValue: Currency; + procedure SetIMPORTE_NETOValue(const aValue: Currency); + function GetIMPORTE_NETOIsNull: Boolean; + procedure SetIMPORTE_NETOIsNull(const aValue: Boolean); + function GetIMPORTE_PORTEValue: Currency; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); + function GetIMPORTE_PORTEIsNull: Boolean; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetDESCUENTOIsNull: Boolean; + procedure SetDESCUENTOIsNull(const aValue: Boolean); + function GetIMPORTE_DESCUENTOValue: Currency; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); + function GetIMPORTE_DESCUENTOIsNull: Boolean; + procedure SetIMPORTE_DESCUENTOIsNull(const aValue: Boolean); + function GetBASE_IMPONIBLEValue: Currency; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); + function GetBASE_IMPONIBLEIsNull: Boolean; + procedure SetBASE_IMPONIBLEIsNull(const aValue: Boolean); + function GetIVAValue: Float; + procedure SetIVAValue(const aValue: Float); + function GetIVAIsNull: Boolean; + procedure SetIVAIsNull(const aValue: Boolean); + function GetIMPORTE_IVAValue: Currency; + procedure SetIMPORTE_IVAValue(const aValue: Currency); + function GetIMPORTE_IVAIsNull: Boolean; + procedure SetIMPORTE_IVAIsNull(const aValue: Boolean); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetIMPORTE_TOTALIsNull: Boolean; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); + function GetOBSERVACIONESValue: IROStrings; + function GetOBSERVACIONESIsNull: Boolean; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); + function GetINCIDENCIASValue: IROStrings; + function GetINCIDENCIASIsNull: Boolean; + procedure SetINCIDENCIASIsNull(const aValue: Boolean); + function GetINCIDENCIAS_ACTIVASValue: Integer; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); + function GetINCIDENCIAS_ACTIVASIsNull: Boolean; + procedure SetINCIDENCIAS_ACTIVASIsNull(const aValue: Boolean); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_ALTAIsNull: Boolean; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONIsNull: Boolean; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetUSUARIOIsNull: Boolean; + procedure SetUSUARIOIsNull(const aValue: Boolean); + function GetID_FORMA_PAGOValue: Integer; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); + function GetID_FORMA_PAGOIsNull: Boolean; + procedure SetID_FORMA_PAGOIsNull(const aValue: Boolean); + function GetID_ALBARANValue: Integer; + procedure SetID_ALBARANValue(const aValue: Integer); + function GetID_ALBARANIsNull: Boolean; + procedure SetID_ALBARANIsNull(const aValue: Boolean); + function GetREFERENCIA_ALBARANValue: String; + procedure SetREFERENCIA_ALBARANValue(const aValue: String); + function GetREFERENCIA_ALBARANIsNull: Boolean; + procedure SetREFERENCIA_ALBARANIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property ID_DIRECCION: Integer read GetID_DIRECCIONValue write SetID_DIRECCIONValue; + property ID_DIRECCIONIsNull: Boolean read GetID_DIRECCIONIsNull write SetID_DIRECCIONIsNull; + property PERSONA_CONTACTO_PROV: String read GetPERSONA_CONTACTO_PROVValue write SetPERSONA_CONTACTO_PROVValue; + property PERSONA_CONTACTO_PROVIsNull: Boolean read GetPERSONA_CONTACTO_PROVIsNull write SetPERSONA_CONTACTO_PROVIsNull; + property FECHA_ALBARAN: DateTime read GetFECHA_ALBARANValue write SetFECHA_ALBARANValue; + property FECHA_ALBARANIsNull: Boolean read GetFECHA_ALBARANIsNull write SetFECHA_ALBARANIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull: Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull: Boolean read GetTIPOIsNull write SetTIPOIsNull; + property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property ID_ALMACENIsNull: Boolean read GetID_ALMACENIsNull write SetID_ALMACENIsNull; + property TIPO_ALMACEN: String read GetTIPO_ALMACENValue write SetTIPO_ALMACENValue; + property TIPO_ALMACENIsNull: Boolean read GetTIPO_ALMACENIsNull write SetTIPO_ALMACENIsNull; + property NOMBRE_ALMACEN: String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property NOMBRE_ALMACENIsNull: Boolean read GetNOMBRE_ALMACENIsNull write SetNOMBRE_ALMACENIsNull; + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property ID_PEDIDOIsNull: Boolean read GetID_PEDIDOIsNull write SetID_PEDIDOIsNull; + property REF_PED_PROVEEDOR: String read GetREF_PED_PROVEEDORValue write SetREF_PED_PROVEEDORValue; + property REF_PED_PROVEEDORIsNull: Boolean read GetREF_PED_PROVEEDORIsNull write SetREF_PED_PROVEEDORIsNull; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull: Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property REF_FACTURA: String read GetREF_FACTURAValue write SetREF_FACTURAValue; + property REF_FACTURAIsNull: Boolean read GetREF_FACTURAIsNull write SetREF_FACTURAIsNull; + property REF_FACTURA_PROV: String read GetREF_FACTURA_PROVValue write SetREF_FACTURA_PROVValue; + property REF_FACTURA_PROVIsNull: Boolean read GetREF_FACTURA_PROVIsNull write SetREF_FACTURA_PROVIsNull; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull: Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property TELEFONOIsNull: Boolean read GetTELEFONOIsNull write SetTELEFONOIsNull; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_NETOIsNull: Boolean read GetIMPORTE_NETOIsNull write SetIMPORTE_NETOIsNull; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull: Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property IMPORTE_DESCUENTOIsNull: Boolean read GetIMPORTE_DESCUENTOIsNull write SetIMPORTE_DESCUENTOIsNull; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property BASE_IMPONIBLEIsNull: Boolean read GetBASE_IMPONIBLEIsNull write SetBASE_IMPONIBLEIsNull; + property IVA: Float read GetIVAValue write SetIVAValue; + property IVAIsNull: Boolean read GetIVAIsNull write SetIVAIsNull; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property IMPORTE_IVAIsNull: Boolean read GetIMPORTE_IVAIsNull write SetIMPORTE_IVAIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue; + property OBSERVACIONESIsNull: Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property INCIDENCIAS: IROStrings read GetINCIDENCIASValue; + property INCIDENCIASIsNull: Boolean read GetINCIDENCIASIsNull write SetINCIDENCIASIsNull; + property INCIDENCIAS_ACTIVAS: Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property INCIDENCIAS_ACTIVASIsNull: Boolean read GetINCIDENCIAS_ACTIVASIsNull write SetINCIDENCIAS_ACTIVASIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property ID_FORMA_PAGOIsNull: Boolean read GetID_FORMA_PAGOIsNull write SetID_FORMA_PAGOIsNull; + property ID_ALBARAN: Integer read GetID_ALBARANValue write SetID_ALBARANValue; + property ID_ALBARANIsNull: Boolean read GetID_ALBARANIsNull write SetID_ALBARANIsNull; + property REFERENCIA_ALBARAN: String read GetREFERENCIA_ALBARANValue write SetREFERENCIA_ALBARANValue; + property REFERENCIA_ALBARANIsNull: Boolean read GetREFERENCIA_ALBARANIsNull write SetREFERENCIA_ALBARANIsNull; + end; + + { TAlbaranesProveedorDataTableRules } + TAlbaranesProveedorDataTableRules = class(TIntfObjectDADataTableRules, IAlbaranesProveedor) + private + f_OBSERVACIONES: IROStrings; + f_INCIDENCIAS: IROStrings; + procedure OBSERVACIONES_OnChange(Sender: TObject); + procedure INCIDENCIAS_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetID_PROVEEDORIsNull: Boolean; virtual; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetID_DIRECCIONValue: Integer; virtual; + procedure SetID_DIRECCIONValue(const aValue: Integer); virtual; + function GetID_DIRECCIONIsNull: Boolean; virtual; + procedure SetID_DIRECCIONIsNull(const aValue: Boolean); virtual; + function GetPERSONA_CONTACTO_PROVValue: String; virtual; + procedure SetPERSONA_CONTACTO_PROVValue(const aValue: String); virtual; + function GetPERSONA_CONTACTO_PROVIsNull: Boolean; virtual; + procedure SetPERSONA_CONTACTO_PROVIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALBARANValue: DateTime; virtual; + procedure SetFECHA_ALBARANValue(const aValue: DateTime); virtual; + function GetFECHA_ALBARANIsNull: Boolean; virtual; + procedure SetFECHA_ALBARANIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + function GetREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetTIPOValue: String; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + function GetTIPOIsNull: Boolean; virtual; + procedure SetTIPOIsNull(const aValue: Boolean); virtual; + function GetID_ALMACENValue: Integer; virtual; + procedure SetID_ALMACENValue(const aValue: Integer); virtual; + function GetID_ALMACENIsNull: Boolean; virtual; + procedure SetID_ALMACENIsNull(const aValue: Boolean); virtual; + function GetTIPO_ALMACENValue: String; virtual; + procedure SetTIPO_ALMACENValue(const aValue: String); virtual; + function GetTIPO_ALMACENIsNull: Boolean; virtual; + procedure SetTIPO_ALMACENIsNull(const aValue: Boolean); virtual; + function GetNOMBRE_ALMACENValue: String; virtual; + procedure SetNOMBRE_ALMACENValue(const aValue: String); virtual; + function GetNOMBRE_ALMACENIsNull: Boolean; virtual; + procedure SetNOMBRE_ALMACENIsNull(const aValue: Boolean); virtual; + function GetID_PEDIDOValue: Integer; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + function GetID_PEDIDOIsNull: Boolean; virtual; + procedure SetID_PEDIDOIsNull(const aValue: Boolean); virtual; + function GetREF_PED_PROVEEDORValue: String; virtual; + procedure SetREF_PED_PROVEEDORValue(const aValue: String); virtual; + function GetREF_PED_PROVEEDORIsNull: Boolean; virtual; + procedure SetREF_PED_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetID_FACTURAIsNull: Boolean; virtual; + procedure SetID_FACTURAIsNull(const aValue: Boolean); virtual; + function GetREF_FACTURAValue: String; virtual; + procedure SetREF_FACTURAValue(const aValue: String); virtual; + function GetREF_FACTURAIsNull: Boolean; virtual; + procedure SetREF_FACTURAIsNull(const aValue: Boolean); virtual; + function GetREF_FACTURA_PROVValue: String; virtual; + procedure SetREF_FACTURA_PROVValue(const aValue: String); virtual; + function GetREF_FACTURA_PROVIsNull: Boolean; virtual; + procedure SetREF_FACTURA_PROVIsNull(const aValue: Boolean); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetCALLEIsNull: Boolean; virtual; + procedure SetCALLEIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetCODIGO_POSTALIsNull: Boolean; virtual; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPOBLACIONIsNull: Boolean; virtual; + procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetPROVINCIAIsNull: Boolean; virtual; + procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + function GetPERSONA_CONTACTOIsNull: Boolean; virtual; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); virtual; + function GetTELEFONOValue: String; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + function GetTELEFONOIsNull: Boolean; virtual; + procedure SetTELEFONOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + function GetIMPORTE_NETOIsNull: Boolean; virtual; + procedure SetIMPORTE_NETOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEIsNull: Boolean; virtual; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + function GetIMPORTE_DESCUENTOIsNull: Boolean; virtual; + procedure SetIMPORTE_DESCUENTOIsNull(const aValue: Boolean); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + function GetBASE_IMPONIBLEIsNull: Boolean; virtual; + procedure SetBASE_IMPONIBLEIsNull(const aValue: Boolean); virtual; + function GetIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + function GetIVAIsNull: Boolean; virtual; + procedure SetIVAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + function GetIMPORTE_IVAIsNull: Boolean; virtual; + procedure SetIMPORTE_IVAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + function GetOBSERVACIONESIsNull: Boolean; virtual; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); virtual; + function GetINCIDENCIASValue: IROStrings; virtual; + function GetINCIDENCIASIsNull: Boolean; virtual; + procedure SetINCIDENCIASIsNull(const aValue: Boolean); virtual; + function GetINCIDENCIAS_ACTIVASValue: Integer; virtual; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); virtual; + function GetINCIDENCIAS_ACTIVASIsNull: Boolean; virtual; + procedure SetINCIDENCIAS_ACTIVASIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + function GetID_FORMA_PAGOIsNull: Boolean; virtual; + procedure SetID_FORMA_PAGOIsNull(const aValue: Boolean); virtual; + function GetID_ALBARANValue: Integer; virtual; + procedure SetID_ALBARANValue(const aValue: Integer); virtual; + function GetID_ALBARANIsNull: Boolean; virtual; + procedure SetID_ALBARANIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_ALBARANValue: String; virtual; + procedure SetREFERENCIA_ALBARANValue(const aValue: String); virtual; + function GetREFERENCIA_ALBARANIsNull: Boolean; virtual; + procedure SetREFERENCIA_ALBARANIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property ID_DIRECCION: Integer read GetID_DIRECCIONValue write SetID_DIRECCIONValue; + property ID_DIRECCIONIsNull: Boolean read GetID_DIRECCIONIsNull write SetID_DIRECCIONIsNull; + property PERSONA_CONTACTO_PROV: String read GetPERSONA_CONTACTO_PROVValue write SetPERSONA_CONTACTO_PROVValue; + property PERSONA_CONTACTO_PROVIsNull: Boolean read GetPERSONA_CONTACTO_PROVIsNull write SetPERSONA_CONTACTO_PROVIsNull; + property FECHA_ALBARAN: DateTime read GetFECHA_ALBARANValue write SetFECHA_ALBARANValue; + property FECHA_ALBARANIsNull: Boolean read GetFECHA_ALBARANIsNull write SetFECHA_ALBARANIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull: Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull: Boolean read GetTIPOIsNull write SetTIPOIsNull; + property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property ID_ALMACENIsNull: Boolean read GetID_ALMACENIsNull write SetID_ALMACENIsNull; + property TIPO_ALMACEN: String read GetTIPO_ALMACENValue write SetTIPO_ALMACENValue; + property TIPO_ALMACENIsNull: Boolean read GetTIPO_ALMACENIsNull write SetTIPO_ALMACENIsNull; + property NOMBRE_ALMACEN: String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property NOMBRE_ALMACENIsNull: Boolean read GetNOMBRE_ALMACENIsNull write SetNOMBRE_ALMACENIsNull; + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property ID_PEDIDOIsNull: Boolean read GetID_PEDIDOIsNull write SetID_PEDIDOIsNull; + property REF_PED_PROVEEDOR: String read GetREF_PED_PROVEEDORValue write SetREF_PED_PROVEEDORValue; + property REF_PED_PROVEEDORIsNull: Boolean read GetREF_PED_PROVEEDORIsNull write SetREF_PED_PROVEEDORIsNull; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull: Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property REF_FACTURA: String read GetREF_FACTURAValue write SetREF_FACTURAValue; + property REF_FACTURAIsNull: Boolean read GetREF_FACTURAIsNull write SetREF_FACTURAIsNull; + property REF_FACTURA_PROV: String read GetREF_FACTURA_PROVValue write SetREF_FACTURA_PROVValue; + property REF_FACTURA_PROVIsNull: Boolean read GetREF_FACTURA_PROVIsNull write SetREF_FACTURA_PROVIsNull; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull: Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property TELEFONOIsNull: Boolean read GetTELEFONOIsNull write SetTELEFONOIsNull; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_NETOIsNull: Boolean read GetIMPORTE_NETOIsNull write SetIMPORTE_NETOIsNull; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull: Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property IMPORTE_DESCUENTOIsNull: Boolean read GetIMPORTE_DESCUENTOIsNull write SetIMPORTE_DESCUENTOIsNull; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property BASE_IMPONIBLEIsNull: Boolean read GetBASE_IMPONIBLEIsNull write SetBASE_IMPONIBLEIsNull; + property IVA: Float read GetIVAValue write SetIVAValue; + property IVAIsNull: Boolean read GetIVAIsNull write SetIVAIsNull; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property IMPORTE_IVAIsNull: Boolean read GetIMPORTE_IVAIsNull write SetIMPORTE_IVAIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue; + property OBSERVACIONESIsNull: Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property INCIDENCIAS: IROStrings read GetINCIDENCIASValue; + property INCIDENCIASIsNull: Boolean read GetINCIDENCIASIsNull write SetINCIDENCIASIsNull; + property INCIDENCIAS_ACTIVAS: Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property INCIDENCIAS_ACTIVASIsNull: Boolean read GetINCIDENCIAS_ACTIVASIsNull write SetINCIDENCIAS_ACTIVASIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property ID_FORMA_PAGOIsNull: Boolean read GetID_FORMA_PAGOIsNull write SetID_FORMA_PAGOIsNull; + property ID_ALBARAN: Integer read GetID_ALBARANValue write SetID_ALBARANValue; + property ID_ALBARANIsNull: Boolean read GetID_ALBARANIsNull write SetID_ALBARANIsNull; + property REFERENCIA_ALBARAN: String read GetREFERENCIA_ALBARANValue write SetREFERENCIA_ALBARANValue; + property REFERENCIA_ALBARANIsNull: Boolean read GetREFERENCIA_ALBARANIsNull write SetREFERENCIA_ALBARANIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IAlbaranesProveedor_Detalles } + IAlbaranesProveedor_Detalles = interface(IDAStronglyTypedDataTable) + ['{C89909AC-C87D-409B-A9F4-6FA0037F0E34}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_ALBARANValue: Integer; + procedure SetID_ALBARANValue(const aValue: Integer); + function GetID_ALBARANIsNull: Boolean; + procedure SetID_ALBARANIsNull(const aValue: Boolean); + function GetPOSICIONValue: Integer; + procedure SetPOSICIONValue(const aValue: Integer); + function GetPOSICIONIsNull: Boolean; + procedure SetPOSICIONIsNull(const aValue: Boolean); + function GetTIPO_DETALLEValue: String; + procedure SetTIPO_DETALLEValue(const aValue: String); + function GetTIPO_DETALLEIsNull: Boolean; + procedure SetTIPO_DETALLEIsNull(const aValue: Boolean); + function GetCONCEPTOValue: String; + procedure SetCONCEPTOValue(const aValue: String); + function GetCONCEPTOIsNull: Boolean; + procedure SetCONCEPTOIsNull(const aValue: Boolean); + function GetCANTIDADValue: Float; + procedure SetCANTIDADValue(const aValue: Float); + function GetCANTIDADIsNull: Boolean; + procedure SetCANTIDADIsNull(const aValue: Boolean); + function GetUNIDAD_MEDIDAValue: String; + procedure SetUNIDAD_MEDIDAValue(const aValue: String); + function GetUNIDAD_MEDIDAIsNull: Boolean; + procedure SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); + function GetIMPORTE_UNIDADValue: Currency; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); + function GetIMPORTE_UNIDADIsNull: Boolean; + procedure SetIMPORTE_UNIDADIsNull(const aValue: Boolean); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetIMPORTE_TOTALIsNull: Boolean; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); + function GetVISIBLEValue: Integer; + procedure SetVISIBLEValue(const aValue: Integer); + function GetVISIBLEIsNull: Boolean; + procedure SetVISIBLEIsNull(const aValue: Boolean); + function GetID_ARTICULOValue: Integer; + procedure SetID_ARTICULOValue(const aValue: Integer); + function GetID_ARTICULOIsNull: Boolean; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetDESCUENTOIsNull: Boolean; + procedure SetDESCUENTOIsNull(const aValue: Boolean); + function GetIMPORTE_PORTEValue: Currency; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); + function GetIMPORTE_PORTEIsNull: Boolean; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetREFERENCIA_PROVEEDORValue: String; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); + function GetREFERENCIA_PROVEEDORIsNull: Boolean; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); + function GetID_PEDIDOValue: Integer; + procedure SetID_PEDIDOValue(const aValue: Integer); + function GetID_PEDIDOIsNull: Boolean; + procedure SetID_PEDIDOIsNull(const aValue: Boolean); + function GetREFERENCIA_FABRICANTEValue: String; + procedure SetREFERENCIA_FABRICANTEValue(const aValue: String); + function GetREFERENCIA_FABRICANTEIsNull: Boolean; + procedure SetREFERENCIA_FABRICANTEIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_ALBARAN: Integer read GetID_ALBARANValue write SetID_ALBARANValue; + property ID_ALBARANIsNull: Boolean read GetID_ALBARANIsNull write SetID_ALBARANIsNull; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property POSICIONIsNull: Boolean read GetPOSICIONIsNull write SetPOSICIONIsNull; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property TIPO_DETALLEIsNull: Boolean read GetTIPO_DETALLEIsNull write SetTIPO_DETALLEIsNull; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CONCEPTOIsNull: Boolean read GetCONCEPTOIsNull write SetCONCEPTOIsNull; + property CANTIDAD: Float read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDADIsNull: Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; + property UNIDAD_MEDIDA: String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue; + property UNIDAD_MEDIDAIsNull: Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull; + property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_UNIDADIsNull: Boolean read GetIMPORTE_UNIDADIsNull write SetIMPORTE_UNIDADIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property VISIBLEIsNull: Boolean read GetVISIBLEIsNull write SetVISIBLEIsNull; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull: Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull: Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull: Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property ID_PEDIDOIsNull: Boolean read GetID_PEDIDOIsNull write SetID_PEDIDOIsNull; + property REFERENCIA_FABRICANTE: String read GetREFERENCIA_FABRICANTEValue write SetREFERENCIA_FABRICANTEValue; + property REFERENCIA_FABRICANTEIsNull: Boolean read GetREFERENCIA_FABRICANTEIsNull write SetREFERENCIA_FABRICANTEIsNull; + end; + + { TAlbaranesProveedor_DetallesDataTableRules } + TAlbaranesProveedor_DetallesDataTableRules = class(TIntfObjectDADataTableRules, IAlbaranesProveedor_Detalles) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_ALBARANValue: Integer; virtual; + procedure SetID_ALBARANValue(const aValue: Integer); virtual; + function GetID_ALBARANIsNull: Boolean; virtual; + procedure SetID_ALBARANIsNull(const aValue: Boolean); virtual; + function GetPOSICIONValue: Integer; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + function GetPOSICIONIsNull: Boolean; virtual; + procedure SetPOSICIONIsNull(const aValue: Boolean); virtual; + function GetTIPO_DETALLEValue: String; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + function GetTIPO_DETALLEIsNull: Boolean; virtual; + procedure SetTIPO_DETALLEIsNull(const aValue: Boolean); virtual; + function GetCONCEPTOValue: String; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + function GetCONCEPTOIsNull: Boolean; virtual; + procedure SetCONCEPTOIsNull(const aValue: Boolean); virtual; + function GetCANTIDADValue: Float; virtual; + procedure SetCANTIDADValue(const aValue: Float); virtual; + function GetCANTIDADIsNull: Boolean; virtual; + procedure SetCANTIDADIsNull(const aValue: Boolean); virtual; + function GetUNIDAD_MEDIDAValue: String; virtual; + procedure SetUNIDAD_MEDIDAValue(const aValue: String); virtual; + function GetUNIDAD_MEDIDAIsNull: Boolean; virtual; + procedure SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_UNIDADValue: Currency; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual; + function GetIMPORTE_UNIDADIsNull: Boolean; virtual; + procedure SetIMPORTE_UNIDADIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetVISIBLEValue: Integer; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + function GetVISIBLEIsNull: Boolean; virtual; + procedure SetVISIBLEIsNull(const aValue: Boolean); virtual; + function GetID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetID_ARTICULOIsNull: Boolean; virtual; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEIsNull: Boolean; virtual; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + function GetREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetID_PEDIDOValue: Integer; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + function GetID_PEDIDOIsNull: Boolean; virtual; + procedure SetID_PEDIDOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_FABRICANTEValue: String; virtual; + procedure SetREFERENCIA_FABRICANTEValue(const aValue: String); virtual; + function GetREFERENCIA_FABRICANTEIsNull: Boolean; virtual; + procedure SetREFERENCIA_FABRICANTEIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_ALBARAN: Integer read GetID_ALBARANValue write SetID_ALBARANValue; + property ID_ALBARANIsNull: Boolean read GetID_ALBARANIsNull write SetID_ALBARANIsNull; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property POSICIONIsNull: Boolean read GetPOSICIONIsNull write SetPOSICIONIsNull; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property TIPO_DETALLEIsNull: Boolean read GetTIPO_DETALLEIsNull write SetTIPO_DETALLEIsNull; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CONCEPTOIsNull: Boolean read GetCONCEPTOIsNull write SetCONCEPTOIsNull; + property CANTIDAD: Float read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDADIsNull: Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; + property UNIDAD_MEDIDA: String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue; + property UNIDAD_MEDIDAIsNull: Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull; + property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_UNIDADIsNull: Boolean read GetIMPORTE_UNIDADIsNull write SetIMPORTE_UNIDADIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property VISIBLEIsNull: Boolean read GetVISIBLEIsNull write SetVISIBLEIsNull; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull: Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull: Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull: Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property ID_PEDIDOIsNull: Boolean read GetID_PEDIDOIsNull write SetID_PEDIDOIsNull; + property REFERENCIA_FABRICANTE: String read GetREFERENCIA_FABRICANTEValue write SetREFERENCIA_FABRICANTEValue; + property REFERENCIA_FABRICANTEIsNull: Boolean read GetREFERENCIA_FABRICANTEIsNull write SetREFERENCIA_FABRICANTEIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants, uROBinaryHelpers; + +{ TListaAnosAlbaranesDataTableRules } +constructor TListaAnosAlbaranesDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TListaAnosAlbaranesDataTableRules.Destroy; +begin + inherited; +end; + +function TListaAnosAlbaranesDataTableRules.GetANOValue: String; +begin + result := DataTable.Fields[idx_ListaAnosAlbaranesANO].AsString; +end; + +procedure TListaAnosAlbaranesDataTableRules.SetANOValue(const aValue: String); +begin + DataTable.Fields[idx_ListaAnosAlbaranesANO].AsString := aValue; +end; + +function TListaAnosAlbaranesDataTableRules.GetANOIsNull: boolean; +begin + result := DataTable.Fields[idx_ListaAnosAlbaranesANO].IsNull; +end; + +procedure TListaAnosAlbaranesDataTableRules.SetANOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ListaAnosAlbaranesANO].AsVariant := Null; +end; + + +{ TAlbaranesProveedorDataTableRules } +constructor TAlbaranesProveedorDataTableRules.Create(aDataTable: TDADataTable); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := OBSERVACIONES_OnChange; + f_OBSERVACIONES := NewROStrings(StrList,True); + + StrList := TStringList.Create; + StrList.OnChange := INCIDENCIAS_OnChange; + f_INCIDENCIAS := NewROStrings(StrList,True); +end; + +destructor TAlbaranesProveedorDataTableRules.Destroy; +begin + inherited; +end; + +procedure TAlbaranesProveedorDataTableRules.OBSERVACIONES_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_AlbaranesProveedorOBSERVACIONES].AsVariant := TStringList(Sender).Text; +end; + +procedure TAlbaranesProveedorDataTableRules.INCIDENCIAS_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_AlbaranesProveedorINCIDENCIAS].AsVariant := TStringList(Sender).Text; +end; + +function TAlbaranesProveedorDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedorID].AsInteger; +end; + +procedure TAlbaranesProveedorDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedorID].AsInteger := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorID].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorID].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedorID_EMPRESA].AsInteger; +end; + +procedure TAlbaranesProveedorDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedorID_EMPRESA].AsInteger := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetID_EMPRESAIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorID_EMPRESA].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorID_EMPRESA].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetID_PROVEEDORValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedorID_PROVEEDOR].AsInteger; +end; + +procedure TAlbaranesProveedorDataTableRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedorID_PROVEEDOR].AsInteger := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetID_PROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorID_PROVEEDOR].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetID_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorID_PROVEEDOR].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorNOMBRE].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorNOMBRE].AsString := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetNOMBREIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorNOMBRE].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorNOMBRE].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetID_DIRECCIONValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedorID_DIRECCION].AsInteger; +end; + +procedure TAlbaranesProveedorDataTableRules.SetID_DIRECCIONValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedorID_DIRECCION].AsInteger := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetID_DIRECCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorID_DIRECCION].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetID_DIRECCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorID_DIRECCION].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetPERSONA_CONTACTO_PROVValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorPERSONA_CONTACTO_PROV].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetPERSONA_CONTACTO_PROVValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorPERSONA_CONTACTO_PROV].AsString := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetPERSONA_CONTACTO_PROVIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorPERSONA_CONTACTO_PROV].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetPERSONA_CONTACTO_PROVIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorPERSONA_CONTACTO_PROV].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetFECHA_ALBARANValue: DateTime; +begin + result := DataTable.Fields[idx_AlbaranesProveedorFECHA_ALBARAN].AsDateTime; +end; + +procedure TAlbaranesProveedorDataTableRules.SetFECHA_ALBARANValue(const aValue: DateTime); +begin + DataTable.Fields[idx_AlbaranesProveedorFECHA_ALBARAN].AsDateTime := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetFECHA_ALBARANIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorFECHA_ALBARAN].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetFECHA_ALBARANIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorFECHA_ALBARAN].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorREFERENCIA].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorREFERENCIA].AsString := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorREFERENCIA].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorREFERENCIA].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorREFERENCIA_PROVEEDOR].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorREFERENCIA_PROVEEDOR].AsString := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetREFERENCIA_PROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorREFERENCIA_PROVEEDOR].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorREFERENCIA_PROVEEDOR].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetTIPOValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorTIPO].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetTIPOValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorTIPO].AsString := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetTIPOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorTIPO].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetTIPOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorTIPO].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetID_ALMACENValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedorID_ALMACEN].AsInteger; +end; + +procedure TAlbaranesProveedorDataTableRules.SetID_ALMACENValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedorID_ALMACEN].AsInteger := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetID_ALMACENIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorID_ALMACEN].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetID_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorID_ALMACEN].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetTIPO_ALMACENValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorTIPO_ALMACEN].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetTIPO_ALMACENValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorTIPO_ALMACEN].AsString := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetTIPO_ALMACENIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorTIPO_ALMACEN].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetTIPO_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorTIPO_ALMACEN].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetNOMBRE_ALMACENValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorNOMBRE_ALMACEN].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetNOMBRE_ALMACENValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorNOMBRE_ALMACEN].AsString := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetNOMBRE_ALMACENIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorNOMBRE_ALMACEN].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetNOMBRE_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorNOMBRE_ALMACEN].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetID_PEDIDOValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedorID_PEDIDO].AsInteger; +end; + +procedure TAlbaranesProveedorDataTableRules.SetID_PEDIDOValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedorID_PEDIDO].AsInteger := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetID_PEDIDOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorID_PEDIDO].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetID_PEDIDOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorID_PEDIDO].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetREF_PED_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorREF_PED_PROVEEDOR].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetREF_PED_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorREF_PED_PROVEEDOR].AsString := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetREF_PED_PROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorREF_PED_PROVEEDOR].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetREF_PED_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorREF_PED_PROVEEDOR].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetID_FACTURAValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedorID_FACTURA].AsInteger; +end; + +procedure TAlbaranesProveedorDataTableRules.SetID_FACTURAValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedorID_FACTURA].AsInteger := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetID_FACTURAIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorID_FACTURA].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetID_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorID_FACTURA].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetREF_FACTURAValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorREF_FACTURA].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetREF_FACTURAValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorREF_FACTURA].AsString := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetREF_FACTURAIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorREF_FACTURA].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetREF_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorREF_FACTURA].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetREF_FACTURA_PROVValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorREF_FACTURA_PROV].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetREF_FACTURA_PROVValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorREF_FACTURA_PROV].AsString := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetREF_FACTURA_PROVIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorREF_FACTURA_PROV].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetREF_FACTURA_PROVIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorREF_FACTURA_PROV].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetCALLEValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorCALLE].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetCALLEValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorCALLE].AsString := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetCALLEIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorCALLE].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetCALLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorCALLE].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetCODIGO_POSTALValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorCODIGO_POSTAL].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetCODIGO_POSTALValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorCODIGO_POSTAL].AsString := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetCODIGO_POSTALIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorCODIGO_POSTAL].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetCODIGO_POSTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorCODIGO_POSTAL].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetPOBLACIONValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorPOBLACION].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetPOBLACIONValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorPOBLACION].AsString := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetPOBLACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorPOBLACION].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetPOBLACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorPOBLACION].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetPROVINCIAValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorPROVINCIA].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetPROVINCIAValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorPROVINCIA].AsString := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetPROVINCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorPROVINCIA].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetPROVINCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorPROVINCIA].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetPERSONA_CONTACTOValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorPERSONA_CONTACTO].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorPERSONA_CONTACTO].AsString := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetPERSONA_CONTACTOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorPERSONA_CONTACTO].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetPERSONA_CONTACTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorPERSONA_CONTACTO].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetTELEFONOValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorTELEFONO].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetTELEFONOValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorTELEFONO].AsString := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetTELEFONOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorTELEFONO].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetTELEFONOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorTELEFONO].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetIMPORTE_NETOValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesProveedorIMPORTE_NETO].AsCurrency; +end; + +procedure TAlbaranesProveedorDataTableRules.SetIMPORTE_NETOValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesProveedorIMPORTE_NETO].AsCurrency := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetIMPORTE_NETOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorIMPORTE_NETO].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetIMPORTE_NETOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorIMPORTE_NETO].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetIMPORTE_PORTEValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesProveedorIMPORTE_PORTE].AsCurrency; +end; + +procedure TAlbaranesProveedorDataTableRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesProveedorIMPORTE_PORTE].AsCurrency := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetIMPORTE_PORTEIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorIMPORTE_PORTE].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetIMPORTE_PORTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorIMPORTE_PORTE].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_AlbaranesProveedorDESCUENTO].AsFloat; +end; + +procedure TAlbaranesProveedorDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_AlbaranesProveedorDESCUENTO].AsFloat := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetDESCUENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorDESCUENTO].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorDESCUENTO].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetIMPORTE_DESCUENTOValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesProveedorIMPORTE_DESCUENTO].AsCurrency; +end; + +procedure TAlbaranesProveedorDataTableRules.SetIMPORTE_DESCUENTOValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesProveedorIMPORTE_DESCUENTO].AsCurrency := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetIMPORTE_DESCUENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorIMPORTE_DESCUENTO].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetIMPORTE_DESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorIMPORTE_DESCUENTO].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesProveedorBASE_IMPONIBLE].AsCurrency; +end; + +procedure TAlbaranesProveedorDataTableRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesProveedorBASE_IMPONIBLE].AsCurrency := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetBASE_IMPONIBLEIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorBASE_IMPONIBLE].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetBASE_IMPONIBLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorBASE_IMPONIBLE].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetIVAValue: Float; +begin + result := DataTable.Fields[idx_AlbaranesProveedorIVA].AsFloat; +end; + +procedure TAlbaranesProveedorDataTableRules.SetIVAValue(const aValue: Float); +begin + DataTable.Fields[idx_AlbaranesProveedorIVA].AsFloat := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetIVAIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorIVA].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetIVAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorIVA].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetIMPORTE_IVAValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesProveedorIMPORTE_IVA].AsCurrency; +end; + +procedure TAlbaranesProveedorDataTableRules.SetIMPORTE_IVAValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesProveedorIMPORTE_IVA].AsCurrency := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetIMPORTE_IVAIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorIMPORTE_IVA].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetIMPORTE_IVAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorIMPORTE_IVA].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesProveedorIMPORTE_TOTAL].AsCurrency; +end; + +procedure TAlbaranesProveedorDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesProveedorIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetIMPORTE_TOTALIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorIMPORTE_TOTAL].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorIMPORTE_TOTAL].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetOBSERVACIONESValue: IROStrings; +begin + result := f_OBSERVACIONES; + result.Text := DataTable.Fields[idx_AlbaranesProveedorOBSERVACIONES].AsString; +end; + +function TAlbaranesProveedorDataTableRules.GetOBSERVACIONESIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorOBSERVACIONES].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetOBSERVACIONESIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorOBSERVACIONES].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetINCIDENCIASValue: IROStrings; +begin + result := f_INCIDENCIAS; + result.Text := DataTable.Fields[idx_AlbaranesProveedorINCIDENCIAS].AsString; +end; + +function TAlbaranesProveedorDataTableRules.GetINCIDENCIASIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorINCIDENCIAS].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetINCIDENCIASIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorINCIDENCIAS].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetINCIDENCIAS_ACTIVASValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedorINCIDENCIAS_ACTIVAS].AsInteger; +end; + +procedure TAlbaranesProveedorDataTableRules.SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedorINCIDENCIAS_ACTIVAS].AsInteger := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetINCIDENCIAS_ACTIVASIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorINCIDENCIAS_ACTIVAS].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetINCIDENCIAS_ACTIVASIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorINCIDENCIAS_ACTIVAS].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_AlbaranesProveedorFECHA_ALTA].AsDateTime; +end; + +procedure TAlbaranesProveedorDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_AlbaranesProveedorFECHA_ALTA].AsDateTime := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetFECHA_ALTAIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorFECHA_ALTA].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorFECHA_ALTA].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_AlbaranesProveedorFECHA_MODIFICACION].AsDateTime; +end; + +procedure TAlbaranesProveedorDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_AlbaranesProveedorFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorFECHA_MODIFICACION].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorFECHA_MODIFICACION].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorUSUARIO].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorUSUARIO].AsString := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetUSUARIOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorUSUARIO].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorUSUARIO].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetID_FORMA_PAGOValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedorID_FORMA_PAGO].AsInteger; +end; + +procedure TAlbaranesProveedorDataTableRules.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedorID_FORMA_PAGO].AsInteger := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetID_FORMA_PAGOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorID_FORMA_PAGO].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetID_FORMA_PAGOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorID_FORMA_PAGO].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetID_ALBARANValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedorID_ALBARAN].AsInteger; +end; + +procedure TAlbaranesProveedorDataTableRules.SetID_ALBARANValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedorID_ALBARAN].AsInteger := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetID_ALBARANIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorID_ALBARAN].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetID_ALBARANIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorID_ALBARAN].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetREFERENCIA_ALBARANValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorREFERENCIA_ALBARAN].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetREFERENCIA_ALBARANValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorREFERENCIA_ALBARAN].AsString := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetREFERENCIA_ALBARANIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorREFERENCIA_ALBARAN].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetREFERENCIA_ALBARANIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorREFERENCIA_ALBARAN].AsVariant := Null; +end; + + +{ TAlbaranesProveedor_DetallesDataTableRules } +constructor TAlbaranesProveedor_DetallesDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TAlbaranesProveedor_DetallesDataTableRules.Destroy; +begin + inherited; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesID].AsInteger; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedor_DetallesID].AsInteger := aValue; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesID].IsNull; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedor_DetallesID].AsVariant := Null; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetID_ALBARANValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesID_ALBARAN].AsInteger; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetID_ALBARANValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedor_DetallesID_ALBARAN].AsInteger := aValue; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetID_ALBARANIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesID_ALBARAN].IsNull; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetID_ALBARANIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedor_DetallesID_ALBARAN].AsVariant := Null; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetPOSICIONValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesPOSICION].AsInteger; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetPOSICIONValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedor_DetallesPOSICION].AsInteger := aValue; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetPOSICIONIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesPOSICION].IsNull; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetPOSICIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedor_DetallesPOSICION].AsVariant := Null; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetTIPO_DETALLEValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesTIPO_DETALLE].AsString; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetTIPO_DETALLEValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedor_DetallesTIPO_DETALLE].AsString := aValue; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetTIPO_DETALLEIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesTIPO_DETALLE].IsNull; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetTIPO_DETALLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedor_DetallesTIPO_DETALLE].AsVariant := Null; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetCONCEPTOValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesCONCEPTO].AsString; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetCONCEPTOValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedor_DetallesCONCEPTO].AsString := aValue; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetCONCEPTOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesCONCEPTO].IsNull; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetCONCEPTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedor_DetallesCONCEPTO].AsVariant := Null; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetCANTIDADValue: Float; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesCANTIDAD].AsFloat; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetCANTIDADValue(const aValue: Float); +begin + DataTable.Fields[idx_AlbaranesProveedor_DetallesCANTIDAD].AsFloat := aValue; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetCANTIDADIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesCANTIDAD].IsNull; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetCANTIDADIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedor_DetallesCANTIDAD].AsVariant := Null; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetUNIDAD_MEDIDAValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesUNIDAD_MEDIDA].AsString; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetUNIDAD_MEDIDAValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedor_DetallesUNIDAD_MEDIDA].AsString := aValue; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetUNIDAD_MEDIDAIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesUNIDAD_MEDIDA].IsNull; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedor_DetallesUNIDAD_MEDIDA].AsVariant := Null; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetIMPORTE_UNIDADValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesIMPORTE_UNIDAD].AsCurrency; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetIMPORTE_UNIDADValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesProveedor_DetallesIMPORTE_UNIDAD].AsCurrency := aValue; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetIMPORTE_UNIDADIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesIMPORTE_UNIDAD].IsNull; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetIMPORTE_UNIDADIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedor_DetallesIMPORTE_UNIDAD].AsVariant := Null; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesIMPORTE_TOTAL].AsCurrency; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesProveedor_DetallesIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetIMPORTE_TOTALIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesIMPORTE_TOTAL].IsNull; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedor_DetallesIMPORTE_TOTAL].AsVariant := Null; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetVISIBLEValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesVISIBLE].AsInteger; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetVISIBLEValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedor_DetallesVISIBLE].AsInteger := aValue; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetVISIBLEIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesVISIBLE].IsNull; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetVISIBLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedor_DetallesVISIBLE].AsVariant := Null; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetID_ARTICULOValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesID_ARTICULO].AsInteger; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetID_ARTICULOValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedor_DetallesID_ARTICULO].AsInteger := aValue; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetID_ARTICULOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesID_ARTICULO].IsNull; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetID_ARTICULOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedor_DetallesID_ARTICULO].AsVariant := Null; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesDESCUENTO].AsFloat; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_AlbaranesProveedor_DetallesDESCUENTO].AsFloat := aValue; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetDESCUENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesDESCUENTO].IsNull; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedor_DetallesDESCUENTO].AsVariant := Null; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetIMPORTE_PORTEValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesIMPORTE_PORTE].AsCurrency; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesProveedor_DetallesIMPORTE_PORTE].AsCurrency := aValue; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetIMPORTE_PORTEIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesIMPORTE_PORTE].IsNull; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetIMPORTE_PORTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedor_DetallesIMPORTE_PORTE].AsVariant := Null; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesREFERENCIA].AsString; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedor_DetallesREFERENCIA].AsString := aValue; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesREFERENCIA].IsNull; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedor_DetallesREFERENCIA].AsVariant := Null; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesREFERENCIA_PROVEEDOR].AsString; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedor_DetallesREFERENCIA_PROVEEDOR].AsString := aValue; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetREFERENCIA_PROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesREFERENCIA_PROVEEDOR].IsNull; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedor_DetallesREFERENCIA_PROVEEDOR].AsVariant := Null; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetID_PEDIDOValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesID_PEDIDO].AsInteger; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetID_PEDIDOValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedor_DetallesID_PEDIDO].AsInteger := aValue; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetID_PEDIDOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesID_PEDIDO].IsNull; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetID_PEDIDOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedor_DetallesID_PEDIDO].AsVariant := Null; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetREFERENCIA_FABRICANTEValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesREFERENCIA_FABRICANTE].AsString; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetREFERENCIA_FABRICANTEValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedor_DetallesREFERENCIA_FABRICANTE].AsString := aValue; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetREFERENCIA_FABRICANTEIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesREFERENCIA_FABRICANTE].IsNull; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetREFERENCIA_FABRICANTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedor_DetallesREFERENCIA_FABRICANTE].AsVariant := Null; +end; + + +initialization + RegisterDataTableRules(RID_ListaAnosAlbaranes, TListaAnosAlbaranesDataTableRules); + RegisterDataTableRules(RID_AlbaranesProveedor, TAlbaranesProveedorDataTableRules); + RegisterDataTableRules(RID_AlbaranesProveedor_Detalles, TAlbaranesProveedor_DetallesDataTableRules); + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorServer_Intf.dcu b/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorServer_Intf.dcu new file mode 100644 index 0000000..122fba8 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorServer_Intf.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorServer_Intf.pas b/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorServer_Intf.pas new file mode 100644 index 0000000..8865111 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorServer_Intf.pas @@ -0,0 +1,2682 @@ +unit schAlbaranesProveedorServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schAlbaranesProveedorClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_ListaAnosAlbaranesDelta = '{B991C998-8031-4B76-A869-AAD2C16ED2AF}'; + RID_AlbaranesProveedorDelta = '{0FC3D2BC-B9A2-4FBA-A4DA-65522DD5B4D3}'; + RID_AlbaranesProveedor_DetallesDelta = '{A6A5E64F-495A-4C33-B6BF-EE78BEF1ECAD}'; + +type + { IListaAnosAlbaranesDelta } + IListaAnosAlbaranesDelta = interface(IListaAnosAlbaranes) + ['{B991C998-8031-4B76-A869-AAD2C16ED2AF}'] + { Property getters and setters } + function GetOldANOValue : String; + + { Properties } + property OldANO : String read GetOldANOValue; + end; + + { TListaAnosAlbaranesBusinessProcessorRules } + TListaAnosAlbaranesBusinessProcessorRules = class(TDABusinessProcessorRules, IListaAnosAlbaranes, IListaAnosAlbaranesDelta) + private + protected + { Property getters and setters } + function GetANOValue: String; virtual; + function GetANOIsNull: Boolean; virtual; + function GetOldANOValue: String; virtual; + function GetOldANOIsNull: Boolean; virtual; + procedure SetANOValue(const aValue: String); virtual; + procedure SetANOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ANO : String read GetANOValue write SetANOValue; + property ANOIsNull : Boolean read GetANOIsNull write SetANOIsNull; + property OldANO : String read GetOldANOValue; + property OldANOIsNull : Boolean read GetOldANOIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IAlbaranesProveedorDelta } + IAlbaranesProveedorDelta = interface(IAlbaranesProveedor) + ['{0FC3D2BC-B9A2-4FBA-A4DA-65522DD5B4D3}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldID_PROVEEDORValue : Integer; + function GetOldNOMBREValue : String; + function GetOldID_DIRECCIONValue : Integer; + function GetOldPERSONA_CONTACTO_PROVValue : String; + function GetOldFECHA_ALBARANValue : DateTime; + function GetOldREFERENCIAValue : String; + function GetOldREFERENCIA_PROVEEDORValue : String; + function GetOldTIPOValue : String; + function GetOldID_ALMACENValue : Integer; + function GetOldTIPO_ALMACENValue : String; + function GetOldNOMBRE_ALMACENValue : String; + function GetOldID_PEDIDOValue : Integer; + function GetOldREF_PED_PROVEEDORValue : String; + function GetOldID_FACTURAValue : Integer; + function GetOldREF_FACTURAValue : String; + function GetOldREF_FACTURA_PROVValue : String; + function GetOldCALLEValue : String; + function GetOldCODIGO_POSTALValue : String; + function GetOldPOBLACIONValue : String; + function GetOldPROVINCIAValue : String; + function GetOldPERSONA_CONTACTOValue : String; + function GetOldTELEFONOValue : String; + function GetOldIMPORTE_NETOValue : Currency; + function GetOldIMPORTE_PORTEValue : Currency; + function GetOldDESCUENTOValue : Float; + function GetOldIMPORTE_DESCUENTOValue : Currency; + function GetOldBASE_IMPONIBLEValue : Currency; + function GetOldIVAValue : Float; + function GetOldIMPORTE_IVAValue : Currency; + function GetOldIMPORTE_TOTALValue : Currency; + function GetOldOBSERVACIONESValue : IROStrings; + function GetOldINCIDENCIASValue : IROStrings; + function GetOldINCIDENCIAS_ACTIVASValue : Integer; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + function GetOldUSUARIOValue : String; + function GetOldID_FORMA_PAGOValue : Integer; + function GetOldID_ALBARANValue : Integer; + function GetOldREFERENCIA_ALBARANValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldID_DIRECCION : Integer read GetOldID_DIRECCIONValue; + property OldPERSONA_CONTACTO_PROV : String read GetOldPERSONA_CONTACTO_PROVValue; + property OldFECHA_ALBARAN : DateTime read GetOldFECHA_ALBARANValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + property OldTIPO : String read GetOldTIPOValue; + property OldID_ALMACEN : Integer read GetOldID_ALMACENValue; + property OldTIPO_ALMACEN : String read GetOldTIPO_ALMACENValue; + property OldNOMBRE_ALMACEN : String read GetOldNOMBRE_ALMACENValue; + property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue; + property OldREF_PED_PROVEEDOR : String read GetOldREF_PED_PROVEEDORValue; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property OldREF_FACTURA : String read GetOldREF_FACTURAValue; + property OldREF_FACTURA_PROV : String read GetOldREF_FACTURA_PROVValue; + property OldCALLE : String read GetOldCALLEValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property OldTELEFONO : String read GetOldTELEFONOValue; + property OldIMPORTE_NETO : Currency read GetOldIMPORTE_NETOValue; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldIMPORTE_DESCUENTO : Currency read GetOldIMPORTE_DESCUENTOValue; + property OldBASE_IMPONIBLE : Currency read GetOldBASE_IMPONIBLEValue; + property OldIVA : Float read GetOldIVAValue; + property OldIMPORTE_IVA : Currency read GetOldIMPORTE_IVAValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property OldINCIDENCIAS : IROStrings read GetOldINCIDENCIASValue; + property OldINCIDENCIAS_ACTIVAS : Integer read GetOldINCIDENCIAS_ACTIVASValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + property OldID_ALBARAN : Integer read GetOldID_ALBARANValue; + property OldREFERENCIA_ALBARAN : String read GetOldREFERENCIA_ALBARANValue; + end; + + { TAlbaranesProveedorBusinessProcessorRules } + TAlbaranesProveedorBusinessProcessorRules = class(TDABusinessProcessorRules, IAlbaranesProveedor, IAlbaranesProveedorDelta) + private + f_OBSERVACIONES: IROStrings; + f_INCIDENCIAS: IROStrings; + procedure OBSERVACIONES_OnChange(Sender: TObject); + procedure INCIDENCIAS_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + function GetID_PROVEEDORIsNull: Boolean; virtual; + function GetOldID_PROVEEDORValue: Integer; virtual; + function GetOldID_PROVEEDORIsNull: Boolean; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + function GetNOMBREIsNull: Boolean; virtual; + function GetOldNOMBREValue: String; virtual; + function GetOldNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetID_DIRECCIONValue: Integer; virtual; + function GetID_DIRECCIONIsNull: Boolean; virtual; + function GetOldID_DIRECCIONValue: Integer; virtual; + function GetOldID_DIRECCIONIsNull: Boolean; virtual; + procedure SetID_DIRECCIONValue(const aValue: Integer); virtual; + procedure SetID_DIRECCIONIsNull(const aValue: Boolean); virtual; + function GetPERSONA_CONTACTO_PROVValue: String; virtual; + function GetPERSONA_CONTACTO_PROVIsNull: Boolean; virtual; + function GetOldPERSONA_CONTACTO_PROVValue: String; virtual; + function GetOldPERSONA_CONTACTO_PROVIsNull: Boolean; virtual; + procedure SetPERSONA_CONTACTO_PROVValue(const aValue: String); virtual; + procedure SetPERSONA_CONTACTO_PROVIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALBARANValue: DateTime; virtual; + function GetFECHA_ALBARANIsNull: Boolean; virtual; + function GetOldFECHA_ALBARANValue: DateTime; virtual; + function GetOldFECHA_ALBARANIsNull: Boolean; virtual; + procedure SetFECHA_ALBARANValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALBARANIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + function GetREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + function GetOldREFERENCIA_PROVEEDORValue: String; virtual; + function GetOldREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetTIPOValue: String; virtual; + function GetTIPOIsNull: Boolean; virtual; + function GetOldTIPOValue: String; virtual; + function GetOldTIPOIsNull: Boolean; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + procedure SetTIPOIsNull(const aValue: Boolean); virtual; + function GetID_ALMACENValue: Integer; virtual; + function GetID_ALMACENIsNull: Boolean; virtual; + function GetOldID_ALMACENValue: Integer; virtual; + function GetOldID_ALMACENIsNull: Boolean; virtual; + procedure SetID_ALMACENValue(const aValue: Integer); virtual; + procedure SetID_ALMACENIsNull(const aValue: Boolean); virtual; + function GetTIPO_ALMACENValue: String; virtual; + function GetTIPO_ALMACENIsNull: Boolean; virtual; + function GetOldTIPO_ALMACENValue: String; virtual; + function GetOldTIPO_ALMACENIsNull: Boolean; virtual; + procedure SetTIPO_ALMACENValue(const aValue: String); virtual; + procedure SetTIPO_ALMACENIsNull(const aValue: Boolean); virtual; + function GetNOMBRE_ALMACENValue: String; virtual; + function GetNOMBRE_ALMACENIsNull: Boolean; virtual; + function GetOldNOMBRE_ALMACENValue: String; virtual; + function GetOldNOMBRE_ALMACENIsNull: Boolean; virtual; + procedure SetNOMBRE_ALMACENValue(const aValue: String); virtual; + procedure SetNOMBRE_ALMACENIsNull(const aValue: Boolean); virtual; + function GetID_PEDIDOValue: Integer; virtual; + function GetID_PEDIDOIsNull: Boolean; virtual; + function GetOldID_PEDIDOValue: Integer; virtual; + function GetOldID_PEDIDOIsNull: Boolean; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + procedure SetID_PEDIDOIsNull(const aValue: Boolean); virtual; + function GetREF_PED_PROVEEDORValue: String; virtual; + function GetREF_PED_PROVEEDORIsNull: Boolean; virtual; + function GetOldREF_PED_PROVEEDORValue: String; virtual; + function GetOldREF_PED_PROVEEDORIsNull: Boolean; virtual; + procedure SetREF_PED_PROVEEDORValue(const aValue: String); virtual; + procedure SetREF_PED_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetID_FACTURAValue: Integer; virtual; + function GetID_FACTURAIsNull: Boolean; virtual; + function GetOldID_FACTURAValue: Integer; virtual; + function GetOldID_FACTURAIsNull: Boolean; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + procedure SetID_FACTURAIsNull(const aValue: Boolean); virtual; + function GetREF_FACTURAValue: String; virtual; + function GetREF_FACTURAIsNull: Boolean; virtual; + function GetOldREF_FACTURAValue: String; virtual; + function GetOldREF_FACTURAIsNull: Boolean; virtual; + procedure SetREF_FACTURAValue(const aValue: String); virtual; + procedure SetREF_FACTURAIsNull(const aValue: Boolean); virtual; + function GetREF_FACTURA_PROVValue: String; virtual; + function GetREF_FACTURA_PROVIsNull: Boolean; virtual; + function GetOldREF_FACTURA_PROVValue: String; virtual; + function GetOldREF_FACTURA_PROVIsNull: Boolean; virtual; + procedure SetREF_FACTURA_PROVValue(const aValue: String); virtual; + procedure SetREF_FACTURA_PROVIsNull(const aValue: Boolean); virtual; + function GetCALLEValue: String; virtual; + function GetCALLEIsNull: Boolean; virtual; + function GetOldCALLEValue: String; virtual; + function GetOldCALLEIsNull: Boolean; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + procedure SetCALLEIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetCODIGO_POSTALIsNull: Boolean; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALIsNull: Boolean; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual; + function GetPOBLACIONValue: String; virtual; + function GetPOBLACIONIsNull: Boolean; virtual; + function GetOldPOBLACIONValue: String; virtual; + function GetOldPOBLACIONIsNull: Boolean; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual; + function GetPROVINCIAValue: String; virtual; + function GetPROVINCIAIsNull: Boolean; virtual; + function GetOldPROVINCIAValue: String; virtual; + function GetOldPROVINCIAIsNull: Boolean; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + function GetPERSONA_CONTACTOIsNull: Boolean; virtual; + function GetOldPERSONA_CONTACTOValue: String; virtual; + function GetOldPERSONA_CONTACTOIsNull: Boolean; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); virtual; + function GetTELEFONOValue: String; virtual; + function GetTELEFONOIsNull: Boolean; virtual; + function GetOldTELEFONOValue: String; virtual; + function GetOldTELEFONOIsNull: Boolean; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + procedure SetTELEFONOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + function GetIMPORTE_NETOIsNull: Boolean; virtual; + function GetOldIMPORTE_NETOValue: Currency; virtual; + function GetOldIMPORTE_NETOIsNull: Boolean; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + procedure SetIMPORTE_NETOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + function GetIMPORTE_PORTEIsNull: Boolean; virtual; + function GetOldIMPORTE_PORTEValue: Currency; virtual; + function GetOldIMPORTE_PORTEIsNull: Boolean; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + function GetOldDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + function GetIMPORTE_DESCUENTOIsNull: Boolean; virtual; + function GetOldIMPORTE_DESCUENTOValue: Currency; virtual; + function GetOldIMPORTE_DESCUENTOIsNull: Boolean; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + procedure SetIMPORTE_DESCUENTOIsNull(const aValue: Boolean); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + function GetBASE_IMPONIBLEIsNull: Boolean; virtual; + function GetOldBASE_IMPONIBLEValue: Currency; virtual; + function GetOldBASE_IMPONIBLEIsNull: Boolean; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + procedure SetBASE_IMPONIBLEIsNull(const aValue: Boolean); virtual; + function GetIVAValue: Float; virtual; + function GetIVAIsNull: Boolean; virtual; + function GetOldIVAValue: Float; virtual; + function GetOldIVAIsNull: Boolean; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + procedure SetIVAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + function GetIMPORTE_IVAIsNull: Boolean; virtual; + function GetOldIMPORTE_IVAValue: Currency; virtual; + function GetOldIMPORTE_IVAIsNull: Boolean; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + procedure SetIMPORTE_IVAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + function GetOBSERVACIONESIsNull: Boolean; virtual; + function GetOldOBSERVACIONESValue: IROStrings; virtual; + function GetOldOBSERVACIONESIsNull: Boolean; virtual; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); virtual; + function GetINCIDENCIASValue: IROStrings; virtual; + function GetINCIDENCIASIsNull: Boolean; virtual; + function GetOldINCIDENCIASValue: IROStrings; virtual; + function GetOldINCIDENCIASIsNull: Boolean; virtual; + procedure SetINCIDENCIASIsNull(const aValue: Boolean); virtual; + function GetINCIDENCIAS_ACTIVASValue: Integer; virtual; + function GetINCIDENCIAS_ACTIVASIsNull: Boolean; virtual; + function GetOldINCIDENCIAS_ACTIVASValue: Integer; virtual; + function GetOldINCIDENCIAS_ACTIVASIsNull: Boolean; virtual; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); virtual; + procedure SetINCIDENCIAS_ACTIVASIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + function GetUSUARIOIsNull: Boolean; virtual; + function GetOldUSUARIOValue: String; virtual; + function GetOldUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + function GetID_FORMA_PAGOIsNull: Boolean; virtual; + function GetOldID_FORMA_PAGOValue: Integer; virtual; + function GetOldID_FORMA_PAGOIsNull: Boolean; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + procedure SetID_FORMA_PAGOIsNull(const aValue: Boolean); virtual; + function GetID_ALBARANValue: Integer; virtual; + function GetID_ALBARANIsNull: Boolean; virtual; + function GetOldID_ALBARANValue: Integer; virtual; + function GetOldID_ALBARANIsNull: Boolean; virtual; + procedure SetID_ALBARANValue(const aValue: Integer); virtual; + procedure SetID_ALBARANIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_ALBARANValue: String; virtual; + function GetREFERENCIA_ALBARANIsNull: Boolean; virtual; + function GetOldREFERENCIA_ALBARANValue: String; virtual; + function GetOldREFERENCIA_ALBARANIsNull: Boolean; virtual; + procedure SetREFERENCIA_ALBARANValue(const aValue: String); virtual; + procedure SetREFERENCIA_ALBARANIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull : Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_EMPRESAIsNull : Boolean read GetOldID_EMPRESAIsNull; + property ID_PROVEEDOR : Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull : Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property OldID_PROVEEDORIsNull : Boolean read GetOldID_PROVEEDORIsNull; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull : Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldNOMBREIsNull : Boolean read GetOldNOMBREIsNull; + property ID_DIRECCION : Integer read GetID_DIRECCIONValue write SetID_DIRECCIONValue; + property ID_DIRECCIONIsNull : Boolean read GetID_DIRECCIONIsNull write SetID_DIRECCIONIsNull; + property OldID_DIRECCION : Integer read GetOldID_DIRECCIONValue; + property OldID_DIRECCIONIsNull : Boolean read GetOldID_DIRECCIONIsNull; + property PERSONA_CONTACTO_PROV : String read GetPERSONA_CONTACTO_PROVValue write SetPERSONA_CONTACTO_PROVValue; + property PERSONA_CONTACTO_PROVIsNull : Boolean read GetPERSONA_CONTACTO_PROVIsNull write SetPERSONA_CONTACTO_PROVIsNull; + property OldPERSONA_CONTACTO_PROV : String read GetOldPERSONA_CONTACTO_PROVValue; + property OldPERSONA_CONTACTO_PROVIsNull : Boolean read GetOldPERSONA_CONTACTO_PROVIsNull; + property FECHA_ALBARAN : DateTime read GetFECHA_ALBARANValue write SetFECHA_ALBARANValue; + property FECHA_ALBARANIsNull : Boolean read GetFECHA_ALBARANIsNull write SetFECHA_ALBARANIsNull; + property OldFECHA_ALBARAN : DateTime read GetOldFECHA_ALBARANValue; + property OldFECHA_ALBARANIsNull : Boolean read GetOldFECHA_ALBARANIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property REFERENCIA_PROVEEDOR : String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull : Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + property OldREFERENCIA_PROVEEDORIsNull : Boolean read GetOldREFERENCIA_PROVEEDORIsNull; + property TIPO : String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull : Boolean read GetTIPOIsNull write SetTIPOIsNull; + property OldTIPO : String read GetOldTIPOValue; + property OldTIPOIsNull : Boolean read GetOldTIPOIsNull; + property ID_ALMACEN : Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property ID_ALMACENIsNull : Boolean read GetID_ALMACENIsNull write SetID_ALMACENIsNull; + property OldID_ALMACEN : Integer read GetOldID_ALMACENValue; + property OldID_ALMACENIsNull : Boolean read GetOldID_ALMACENIsNull; + property TIPO_ALMACEN : String read GetTIPO_ALMACENValue write SetTIPO_ALMACENValue; + property TIPO_ALMACENIsNull : Boolean read GetTIPO_ALMACENIsNull write SetTIPO_ALMACENIsNull; + property OldTIPO_ALMACEN : String read GetOldTIPO_ALMACENValue; + property OldTIPO_ALMACENIsNull : Boolean read GetOldTIPO_ALMACENIsNull; + property NOMBRE_ALMACEN : String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property NOMBRE_ALMACENIsNull : Boolean read GetNOMBRE_ALMACENIsNull write SetNOMBRE_ALMACENIsNull; + property OldNOMBRE_ALMACEN : String read GetOldNOMBRE_ALMACENValue; + property OldNOMBRE_ALMACENIsNull : Boolean read GetOldNOMBRE_ALMACENIsNull; + property ID_PEDIDO : Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property ID_PEDIDOIsNull : Boolean read GetID_PEDIDOIsNull write SetID_PEDIDOIsNull; + property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue; + property OldID_PEDIDOIsNull : Boolean read GetOldID_PEDIDOIsNull; + property REF_PED_PROVEEDOR : String read GetREF_PED_PROVEEDORValue write SetREF_PED_PROVEEDORValue; + property REF_PED_PROVEEDORIsNull : Boolean read GetREF_PED_PROVEEDORIsNull write SetREF_PED_PROVEEDORIsNull; + property OldREF_PED_PROVEEDOR : String read GetOldREF_PED_PROVEEDORValue; + property OldREF_PED_PROVEEDORIsNull : Boolean read GetOldREF_PED_PROVEEDORIsNull; + property ID_FACTURA : Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull : Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property OldID_FACTURAIsNull : Boolean read GetOldID_FACTURAIsNull; + property REF_FACTURA : String read GetREF_FACTURAValue write SetREF_FACTURAValue; + property REF_FACTURAIsNull : Boolean read GetREF_FACTURAIsNull write SetREF_FACTURAIsNull; + property OldREF_FACTURA : String read GetOldREF_FACTURAValue; + property OldREF_FACTURAIsNull : Boolean read GetOldREF_FACTURAIsNull; + property REF_FACTURA_PROV : String read GetREF_FACTURA_PROVValue write SetREF_FACTURA_PROVValue; + property REF_FACTURA_PROVIsNull : Boolean read GetREF_FACTURA_PROVIsNull write SetREF_FACTURA_PROVIsNull; + property OldREF_FACTURA_PROV : String read GetOldREF_FACTURA_PROVValue; + property OldREF_FACTURA_PROVIsNull : Boolean read GetOldREF_FACTURA_PROVIsNull; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull : Boolean read GetCALLEIsNull write SetCALLEIsNull; + property OldCALLE : String read GetOldCALLEValue; + property OldCALLEIsNull : Boolean read GetOldCALLEIsNull; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull : Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property OldCODIGO_POSTALIsNull : Boolean read GetOldCODIGO_POSTALIsNull; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull : Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property OldPOBLACIONIsNull : Boolean read GetOldPOBLACIONIsNull; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull : Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property OldPROVINCIAIsNull : Boolean read GetOldPROVINCIAIsNull; + property PERSONA_CONTACTO : String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull : Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property OldPERSONA_CONTACTOIsNull : Boolean read GetOldPERSONA_CONTACTOIsNull; + property TELEFONO : String read GetTELEFONOValue write SetTELEFONOValue; + property TELEFONOIsNull : Boolean read GetTELEFONOIsNull write SetTELEFONOIsNull; + property OldTELEFONO : String read GetOldTELEFONOValue; + property OldTELEFONOIsNull : Boolean read GetOldTELEFONOIsNull; + property IMPORTE_NETO : Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_NETOIsNull : Boolean read GetIMPORTE_NETOIsNull write SetIMPORTE_NETOIsNull; + property OldIMPORTE_NETO : Currency read GetOldIMPORTE_NETOValue; + property OldIMPORTE_NETOIsNull : Boolean read GetOldIMPORTE_NETOIsNull; + property IMPORTE_PORTE : Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull : Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property OldIMPORTE_PORTEIsNull : Boolean read GetOldIMPORTE_PORTEIsNull; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull : Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldDESCUENTOIsNull : Boolean read GetOldDESCUENTOIsNull; + property IMPORTE_DESCUENTO : Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property IMPORTE_DESCUENTOIsNull : Boolean read GetIMPORTE_DESCUENTOIsNull write SetIMPORTE_DESCUENTOIsNull; + property OldIMPORTE_DESCUENTO : Currency read GetOldIMPORTE_DESCUENTOValue; + property OldIMPORTE_DESCUENTOIsNull : Boolean read GetOldIMPORTE_DESCUENTOIsNull; + property BASE_IMPONIBLE : Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property BASE_IMPONIBLEIsNull : Boolean read GetBASE_IMPONIBLEIsNull write SetBASE_IMPONIBLEIsNull; + property OldBASE_IMPONIBLE : Currency read GetOldBASE_IMPONIBLEValue; + property OldBASE_IMPONIBLEIsNull : Boolean read GetOldBASE_IMPONIBLEIsNull; + property IVA : Float read GetIVAValue write SetIVAValue; + property IVAIsNull : Boolean read GetIVAIsNull write SetIVAIsNull; + property OldIVA : Float read GetOldIVAValue; + property OldIVAIsNull : Boolean read GetOldIVAIsNull; + property IMPORTE_IVA : Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property IMPORTE_IVAIsNull : Boolean read GetIMPORTE_IVAIsNull write SetIMPORTE_IVAIsNull; + property OldIMPORTE_IVA : Currency read GetOldIMPORTE_IVAValue; + property OldIMPORTE_IVAIsNull : Boolean read GetOldIMPORTE_IVAIsNull; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull : Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldIMPORTE_TOTALIsNull : Boolean read GetOldIMPORTE_TOTALIsNull; + property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue; + property OBSERVACIONESIsNull : Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property OldOBSERVACIONESIsNull : Boolean read GetOldOBSERVACIONESIsNull; + property INCIDENCIAS : IROStrings read GetINCIDENCIASValue; + property INCIDENCIASIsNull : Boolean read GetINCIDENCIASIsNull write SetINCIDENCIASIsNull; + property OldINCIDENCIAS : IROStrings read GetOldINCIDENCIASValue; + property OldINCIDENCIASIsNull : Boolean read GetOldINCIDENCIASIsNull; + property INCIDENCIAS_ACTIVAS : Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property INCIDENCIAS_ACTIVASIsNull : Boolean read GetINCIDENCIAS_ACTIVASIsNull write SetINCIDENCIAS_ACTIVASIsNull; + property OldINCIDENCIAS_ACTIVAS : Integer read GetOldINCIDENCIAS_ACTIVASValue; + property OldINCIDENCIAS_ACTIVASIsNull : Boolean read GetOldINCIDENCIAS_ACTIVASIsNull; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull : Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_ALTAIsNull : Boolean read GetOldFECHA_ALTAIsNull; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull : Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldUSUARIOIsNull : Boolean read GetOldUSUARIOIsNull; + property ID_FORMA_PAGO : Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property ID_FORMA_PAGOIsNull : Boolean read GetID_FORMA_PAGOIsNull write SetID_FORMA_PAGOIsNull; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + property OldID_FORMA_PAGOIsNull : Boolean read GetOldID_FORMA_PAGOIsNull; + property ID_ALBARAN : Integer read GetID_ALBARANValue write SetID_ALBARANValue; + property ID_ALBARANIsNull : Boolean read GetID_ALBARANIsNull write SetID_ALBARANIsNull; + property OldID_ALBARAN : Integer read GetOldID_ALBARANValue; + property OldID_ALBARANIsNull : Boolean read GetOldID_ALBARANIsNull; + property REFERENCIA_ALBARAN : String read GetREFERENCIA_ALBARANValue write SetREFERENCIA_ALBARANValue; + property REFERENCIA_ALBARANIsNull : Boolean read GetREFERENCIA_ALBARANIsNull write SetREFERENCIA_ALBARANIsNull; + property OldREFERENCIA_ALBARAN : String read GetOldREFERENCIA_ALBARANValue; + property OldREFERENCIA_ALBARANIsNull : Boolean read GetOldREFERENCIA_ALBARANIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IAlbaranesProveedor_DetallesDelta } + IAlbaranesProveedor_DetallesDelta = interface(IAlbaranesProveedor_Detalles) + ['{A6A5E64F-495A-4C33-B6BF-EE78BEF1ECAD}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_ALBARANValue : Integer; + function GetOldPOSICIONValue : Integer; + function GetOldTIPO_DETALLEValue : String; + function GetOldCONCEPTOValue : String; + function GetOldCANTIDADValue : Float; + function GetOldUNIDAD_MEDIDAValue : String; + function GetOldIMPORTE_UNIDADValue : Currency; + function GetOldIMPORTE_TOTALValue : Currency; + function GetOldVISIBLEValue : Integer; + function GetOldID_ARTICULOValue : Integer; + function GetOldDESCUENTOValue : Float; + function GetOldIMPORTE_PORTEValue : Currency; + function GetOldREFERENCIAValue : String; + function GetOldREFERENCIA_PROVEEDORValue : String; + function GetOldID_PEDIDOValue : Integer; + function GetOldREFERENCIA_FABRICANTEValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_ALBARAN : Integer read GetOldID_ALBARANValue; + property OldPOSICION : Integer read GetOldPOSICIONValue; + property OldTIPO_DETALLE : String read GetOldTIPO_DETALLEValue; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property OldCANTIDAD : Float read GetOldCANTIDADValue; + property OldUNIDAD_MEDIDA : String read GetOldUNIDAD_MEDIDAValue; + property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue; + property OldREFERENCIA_FABRICANTE : String read GetOldREFERENCIA_FABRICANTEValue; + end; + + { TAlbaranesProveedor_DetallesBusinessProcessorRules } + TAlbaranesProveedor_DetallesBusinessProcessorRules = class(TDABusinessProcessorRules, IAlbaranesProveedor_Detalles, IAlbaranesProveedor_DetallesDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_ALBARANValue: Integer; virtual; + function GetID_ALBARANIsNull: Boolean; virtual; + function GetOldID_ALBARANValue: Integer; virtual; + function GetOldID_ALBARANIsNull: Boolean; virtual; + procedure SetID_ALBARANValue(const aValue: Integer); virtual; + procedure SetID_ALBARANIsNull(const aValue: Boolean); virtual; + function GetPOSICIONValue: Integer; virtual; + function GetPOSICIONIsNull: Boolean; virtual; + function GetOldPOSICIONValue: Integer; virtual; + function GetOldPOSICIONIsNull: Boolean; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + procedure SetPOSICIONIsNull(const aValue: Boolean); virtual; + function GetTIPO_DETALLEValue: String; virtual; + function GetTIPO_DETALLEIsNull: Boolean; virtual; + function GetOldTIPO_DETALLEValue: String; virtual; + function GetOldTIPO_DETALLEIsNull: Boolean; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + procedure SetTIPO_DETALLEIsNull(const aValue: Boolean); virtual; + function GetCONCEPTOValue: String; virtual; + function GetCONCEPTOIsNull: Boolean; virtual; + function GetOldCONCEPTOValue: String; virtual; + function GetOldCONCEPTOIsNull: Boolean; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + procedure SetCONCEPTOIsNull(const aValue: Boolean); virtual; + function GetCANTIDADValue: Float; virtual; + function GetCANTIDADIsNull: Boolean; virtual; + function GetOldCANTIDADValue: Float; virtual; + function GetOldCANTIDADIsNull: Boolean; virtual; + procedure SetCANTIDADValue(const aValue: Float); virtual; + procedure SetCANTIDADIsNull(const aValue: Boolean); virtual; + function GetUNIDAD_MEDIDAValue: String; virtual; + function GetUNIDAD_MEDIDAIsNull: Boolean; virtual; + function GetOldUNIDAD_MEDIDAValue: String; virtual; + function GetOldUNIDAD_MEDIDAIsNull: Boolean; virtual; + procedure SetUNIDAD_MEDIDAValue(const aValue: String); virtual; + procedure SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_UNIDADValue: Currency; virtual; + function GetIMPORTE_UNIDADIsNull: Boolean; virtual; + function GetOldIMPORTE_UNIDADValue: Currency; virtual; + function GetOldIMPORTE_UNIDADIsNull: Boolean; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual; + procedure SetIMPORTE_UNIDADIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetVISIBLEValue: Integer; virtual; + function GetVISIBLEIsNull: Boolean; virtual; + function GetOldVISIBLEValue: Integer; virtual; + function GetOldVISIBLEIsNull: Boolean; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + procedure SetVISIBLEIsNull(const aValue: Boolean); virtual; + function GetID_ARTICULOValue: Integer; virtual; + function GetID_ARTICULOIsNull: Boolean; virtual; + function GetOldID_ARTICULOValue: Integer; virtual; + function GetOldID_ARTICULOIsNull: Boolean; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + function GetOldDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + function GetIMPORTE_PORTEIsNull: Boolean; virtual; + function GetOldIMPORTE_PORTEValue: Currency; virtual; + function GetOldIMPORTE_PORTEIsNull: Boolean; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + function GetREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + function GetOldREFERENCIA_PROVEEDORValue: String; virtual; + function GetOldREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetID_PEDIDOValue: Integer; virtual; + function GetID_PEDIDOIsNull: Boolean; virtual; + function GetOldID_PEDIDOValue: Integer; virtual; + function GetOldID_PEDIDOIsNull: Boolean; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + procedure SetID_PEDIDOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_FABRICANTEValue: String; virtual; + function GetREFERENCIA_FABRICANTEIsNull: Boolean; virtual; + function GetOldREFERENCIA_FABRICANTEValue: String; virtual; + function GetOldREFERENCIA_FABRICANTEIsNull: Boolean; virtual; + procedure SetREFERENCIA_FABRICANTEValue(const aValue: String); virtual; + procedure SetREFERENCIA_FABRICANTEIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_ALBARAN : Integer read GetID_ALBARANValue write SetID_ALBARANValue; + property ID_ALBARANIsNull : Boolean read GetID_ALBARANIsNull write SetID_ALBARANIsNull; + property OldID_ALBARAN : Integer read GetOldID_ALBARANValue; + property OldID_ALBARANIsNull : Boolean read GetOldID_ALBARANIsNull; + property POSICION : Integer read GetPOSICIONValue write SetPOSICIONValue; + property POSICIONIsNull : Boolean read GetPOSICIONIsNull write SetPOSICIONIsNull; + property OldPOSICION : Integer read GetOldPOSICIONValue; + property OldPOSICIONIsNull : Boolean read GetOldPOSICIONIsNull; + property TIPO_DETALLE : String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property TIPO_DETALLEIsNull : Boolean read GetTIPO_DETALLEIsNull write SetTIPO_DETALLEIsNull; + property OldTIPO_DETALLE : String read GetOldTIPO_DETALLEValue; + property OldTIPO_DETALLEIsNull : Boolean read GetOldTIPO_DETALLEIsNull; + property CONCEPTO : String read GetCONCEPTOValue write SetCONCEPTOValue; + property CONCEPTOIsNull : Boolean read GetCONCEPTOIsNull write SetCONCEPTOIsNull; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property OldCONCEPTOIsNull : Boolean read GetOldCONCEPTOIsNull; + property CANTIDAD : Float read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDADIsNull : Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; + property OldCANTIDAD : Float read GetOldCANTIDADValue; + property OldCANTIDADIsNull : Boolean read GetOldCANTIDADIsNull; + property UNIDAD_MEDIDA : String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue; + property UNIDAD_MEDIDAIsNull : Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull; + property OldUNIDAD_MEDIDA : String read GetOldUNIDAD_MEDIDAValue; + property OldUNIDAD_MEDIDAIsNull : Boolean read GetOldUNIDAD_MEDIDAIsNull; + property IMPORTE_UNIDAD : Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_UNIDADIsNull : Boolean read GetIMPORTE_UNIDADIsNull write SetIMPORTE_UNIDADIsNull; + property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue; + property OldIMPORTE_UNIDADIsNull : Boolean read GetOldIMPORTE_UNIDADIsNull; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull : Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldIMPORTE_TOTALIsNull : Boolean read GetOldIMPORTE_TOTALIsNull; + property VISIBLE : Integer read GetVISIBLEValue write SetVISIBLEValue; + property VISIBLEIsNull : Boolean read GetVISIBLEIsNull write SetVISIBLEIsNull; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property OldVISIBLEIsNull : Boolean read GetOldVISIBLEIsNull; + property ID_ARTICULO : Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull : Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldID_ARTICULOIsNull : Boolean read GetOldID_ARTICULOIsNull; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull : Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldDESCUENTOIsNull : Boolean read GetOldDESCUENTOIsNull; + property IMPORTE_PORTE : Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull : Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property OldIMPORTE_PORTEIsNull : Boolean read GetOldIMPORTE_PORTEIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property REFERENCIA_PROVEEDOR : String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull : Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + property OldREFERENCIA_PROVEEDORIsNull : Boolean read GetOldREFERENCIA_PROVEEDORIsNull; + property ID_PEDIDO : Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property ID_PEDIDOIsNull : Boolean read GetID_PEDIDOIsNull write SetID_PEDIDOIsNull; + property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue; + property OldID_PEDIDOIsNull : Boolean read GetOldID_PEDIDOIsNull; + property REFERENCIA_FABRICANTE : String read GetREFERENCIA_FABRICANTEValue write SetREFERENCIA_FABRICANTEValue; + property REFERENCIA_FABRICANTEIsNull : Boolean read GetREFERENCIA_FABRICANTEIsNull write SetREFERENCIA_FABRICANTEIsNull; + property OldREFERENCIA_FABRICANTE : String read GetOldREFERENCIA_FABRICANTEValue; + property OldREFERENCIA_FABRICANTEIsNull : Boolean read GetOldREFERENCIA_FABRICANTEIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers, uDAInterfaces; + +{ TListaAnosAlbaranesBusinessProcessorRules } +constructor TListaAnosAlbaranesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TListaAnosAlbaranesBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TListaAnosAlbaranesBusinessProcessorRules.GetANOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosAlbaranesANO]; +end; + +function TListaAnosAlbaranesBusinessProcessorRules.GetANOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosAlbaranesANO]); +end; + +function TListaAnosAlbaranesBusinessProcessorRules.GetOldANOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaAnosAlbaranesANO]; +end; + +function TListaAnosAlbaranesBusinessProcessorRules.GetOldANOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ListaAnosAlbaranesANO]); +end; + +procedure TListaAnosAlbaranesBusinessProcessorRules.SetANOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosAlbaranesANO] := aValue; +end; + +procedure TListaAnosAlbaranesBusinessProcessorRules.SetANOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosAlbaranesANO] := Null; +end; + + +{ TAlbaranesProveedorBusinessProcessorRules } +constructor TAlbaranesProveedorBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := OBSERVACIONES_OnChange; + f_OBSERVACIONES := NewROStrings(StrList,True); + + StrList := TStringList.Create; + StrList.OnChange := INCIDENCIAS_OnChange; + f_INCIDENCIAS := NewROStrings(StrList,True); +end; + +destructor TAlbaranesProveedorBusinessProcessorRules.Destroy; +begin + inherited; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.OBSERVACIONES_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorOBSERVACIONES] := TStringList(Sender).Text; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.INCIDENCIAS_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorINCIDENCIAS] := TStringList(Sender).Text; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_EMPRESA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_EMPRESA]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID_EMPRESA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID_EMPRESA]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_EMPRESA] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_EMPRESA] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_PROVEEDOR]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetID_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_PROVEEDOR]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID_PROVEEDOR]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldID_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID_PROVEEDOR]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_PROVEEDOR] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetID_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_PROVEEDOR] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorNOMBRE]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorNOMBRE]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorNOMBRE]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorNOMBRE]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorNOMBRE] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorNOMBRE] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetID_DIRECCIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_DIRECCION]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetID_DIRECCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_DIRECCION]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldID_DIRECCIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID_DIRECCION]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldID_DIRECCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID_DIRECCION]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetID_DIRECCIONValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_DIRECCION] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetID_DIRECCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_DIRECCION] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetPERSONA_CONTACTO_PROVValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorPERSONA_CONTACTO_PROV]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetPERSONA_CONTACTO_PROVIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorPERSONA_CONTACTO_PROV]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldPERSONA_CONTACTO_PROVValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorPERSONA_CONTACTO_PROV]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldPERSONA_CONTACTO_PROVIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorPERSONA_CONTACTO_PROV]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetPERSONA_CONTACTO_PROVValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorPERSONA_CONTACTO_PROV] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetPERSONA_CONTACTO_PROVIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorPERSONA_CONTACTO_PROV] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetFECHA_ALBARANValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorFECHA_ALBARAN]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetFECHA_ALBARANIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorFECHA_ALBARAN]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldFECHA_ALBARANValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorFECHA_ALBARAN]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldFECHA_ALBARANIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorFECHA_ALBARAN]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetFECHA_ALBARANValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorFECHA_ALBARAN] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetFECHA_ALBARANIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorFECHA_ALBARAN] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREFERENCIA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREFERENCIA]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorREFERENCIA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorREFERENCIA]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREFERENCIA] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREFERENCIA] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREFERENCIA_PROVEEDOR]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetREFERENCIA_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREFERENCIA_PROVEEDOR]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorREFERENCIA_PROVEEDOR]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorREFERENCIA_PROVEEDOR]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREFERENCIA_PROVEEDOR] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREFERENCIA_PROVEEDOR] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorTIPO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetTIPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorTIPO]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorTIPO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldTIPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorTIPO]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetTIPOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorTIPO] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetTIPOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorTIPO] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetID_ALMACENValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_ALMACEN]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetID_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_ALMACEN]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldID_ALMACENValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID_ALMACEN]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldID_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID_ALMACEN]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetID_ALMACENValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_ALMACEN] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetID_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_ALMACEN] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetTIPO_ALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorTIPO_ALMACEN]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetTIPO_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorTIPO_ALMACEN]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldTIPO_ALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorTIPO_ALMACEN]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldTIPO_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorTIPO_ALMACEN]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetTIPO_ALMACENValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorTIPO_ALMACEN] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetTIPO_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorTIPO_ALMACEN] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetNOMBRE_ALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorNOMBRE_ALMACEN]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetNOMBRE_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorNOMBRE_ALMACEN]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldNOMBRE_ALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorNOMBRE_ALMACEN]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldNOMBRE_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorNOMBRE_ALMACEN]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetNOMBRE_ALMACENValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorNOMBRE_ALMACEN] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetNOMBRE_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorNOMBRE_ALMACEN] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetID_PEDIDOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_PEDIDO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetID_PEDIDOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_PEDIDO]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldID_PEDIDOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID_PEDIDO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldID_PEDIDOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID_PEDIDO]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetID_PEDIDOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_PEDIDO] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetID_PEDIDOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_PEDIDO] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetREF_PED_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREF_PED_PROVEEDOR]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetREF_PED_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREF_PED_PROVEEDOR]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldREF_PED_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorREF_PED_PROVEEDOR]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldREF_PED_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorREF_PED_PROVEEDOR]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetREF_PED_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREF_PED_PROVEEDOR] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetREF_PED_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREF_PED_PROVEEDOR] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_FACTURA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetID_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_FACTURA]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID_FACTURA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldID_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID_FACTURA]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetID_FACTURAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_FACTURA] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetID_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_FACTURA] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetREF_FACTURAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREF_FACTURA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetREF_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREF_FACTURA]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldREF_FACTURAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorREF_FACTURA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldREF_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorREF_FACTURA]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetREF_FACTURAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREF_FACTURA] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetREF_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREF_FACTURA] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetREF_FACTURA_PROVValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREF_FACTURA_PROV]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetREF_FACTURA_PROVIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREF_FACTURA_PROV]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldREF_FACTURA_PROVValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorREF_FACTURA_PROV]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldREF_FACTURA_PROVIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorREF_FACTURA_PROV]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetREF_FACTURA_PROVValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREF_FACTURA_PROV] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetREF_FACTURA_PROVIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREF_FACTURA_PROV] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorCALLE]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorCALLE]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorCALLE]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorCALLE]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorCALLE] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetCALLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorCALLE] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorCODIGO_POSTAL]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorCODIGO_POSTAL]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorCODIGO_POSTAL]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorCODIGO_POSTAL]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorCODIGO_POSTAL] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetCODIGO_POSTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorCODIGO_POSTAL] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorPOBLACION]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorPOBLACION]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorPOBLACION]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorPOBLACION]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorPOBLACION] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetPOBLACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorPOBLACION] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorPROVINCIA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorPROVINCIA]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorPROVINCIA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorPROVINCIA]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorPROVINCIA] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetPROVINCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorPROVINCIA] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorPERSONA_CONTACTO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetPERSONA_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorPERSONA_CONTACTO]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorPERSONA_CONTACTO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldPERSONA_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorPERSONA_CONTACTO]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorPERSONA_CONTACTO] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetPERSONA_CONTACTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorPERSONA_CONTACTO] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorTELEFONO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetTELEFONOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorTELEFONO]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorTELEFONO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldTELEFONOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorTELEFONO]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetTELEFONOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorTELEFONO] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetTELEFONOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorTELEFONO] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_NETO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetIMPORTE_NETOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_NETO]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorIMPORTE_NETO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldIMPORTE_NETOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorIMPORTE_NETO]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetIMPORTE_NETOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_NETO] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetIMPORTE_NETOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_NETO] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_PORTE]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetIMPORTE_PORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_PORTE]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorIMPORTE_PORTE]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldIMPORTE_PORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorIMPORTE_PORTE]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_PORTE] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetIMPORTE_PORTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_PORTE] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorDESCUENTO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorDESCUENTO]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorDESCUENTO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorDESCUENTO]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorDESCUENTO] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorDESCUENTO] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_DESCUENTO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetIMPORTE_DESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_DESCUENTO]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorIMPORTE_DESCUENTO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldIMPORTE_DESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorIMPORTE_DESCUENTO]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetIMPORTE_DESCUENTOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_DESCUENTO] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetIMPORTE_DESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_DESCUENTO] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorBASE_IMPONIBLE]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetBASE_IMPONIBLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorBASE_IMPONIBLE]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorBASE_IMPONIBLE]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldBASE_IMPONIBLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorBASE_IMPONIBLE]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorBASE_IMPONIBLE] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetBASE_IMPONIBLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorBASE_IMPONIBLE] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIVA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetIVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIVA]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorIVA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldIVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorIVA]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetIVAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIVA] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetIVAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIVA] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_IVA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetIMPORTE_IVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_IVA]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorIMPORTE_IVA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldIMPORTE_IVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorIMPORTE_IVA]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetIMPORTE_IVAValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_IVA] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetIMPORTE_IVAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_IVA] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_TOTAL]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_TOTAL]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorIMPORTE_TOTAL]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorIMPORTE_TOTAL]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_TOTAL] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_TOTAL] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings; +begin + result := f_OBSERVACIONES; + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorOBSERVACIONES]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOBSERVACIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorOBSERVACIONES]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorOBSERVACIONES]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldOBSERVACIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorOBSERVACIONES]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetOBSERVACIONESIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorOBSERVACIONES] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetINCIDENCIASValue: IROStrings; +begin + result := f_INCIDENCIAS; + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorINCIDENCIAS]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetINCIDENCIASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorINCIDENCIAS]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldINCIDENCIASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorINCIDENCIAS]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldINCIDENCIASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorINCIDENCIAS]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetINCIDENCIASIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorINCIDENCIAS] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetINCIDENCIAS_ACTIVASValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorINCIDENCIAS_ACTIVAS]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetINCIDENCIAS_ACTIVASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorINCIDENCIAS_ACTIVAS]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldINCIDENCIAS_ACTIVASValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorINCIDENCIAS_ACTIVAS]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldINCIDENCIAS_ACTIVASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorINCIDENCIAS_ACTIVAS]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorINCIDENCIAS_ACTIVAS] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetINCIDENCIAS_ACTIVASIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorINCIDENCIAS_ACTIVAS] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorFECHA_ALTA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorFECHA_ALTA]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorFECHA_ALTA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorFECHA_ALTA]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorFECHA_ALTA] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorFECHA_ALTA] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorFECHA_MODIFICACION]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorFECHA_MODIFICACION]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorFECHA_MODIFICACION]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorFECHA_MODIFICACION]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorFECHA_MODIFICACION] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorFECHA_MODIFICACION] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorUSUARIO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorUSUARIO]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorUSUARIO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorUSUARIO]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorUSUARIO] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorUSUARIO] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_FORMA_PAGO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetID_FORMA_PAGOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_FORMA_PAGO]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID_FORMA_PAGO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldID_FORMA_PAGOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID_FORMA_PAGO]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_FORMA_PAGO] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetID_FORMA_PAGOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_FORMA_PAGO] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetID_ALBARANValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_ALBARAN]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetID_ALBARANIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_ALBARAN]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldID_ALBARANValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID_ALBARAN]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldID_ALBARANIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID_ALBARAN]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetID_ALBARANValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_ALBARAN] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetID_ALBARANIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_ALBARAN] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetREFERENCIA_ALBARANValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREFERENCIA_ALBARAN]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetREFERENCIA_ALBARANIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREFERENCIA_ALBARAN]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldREFERENCIA_ALBARANValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorREFERENCIA_ALBARAN]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldREFERENCIA_ALBARANIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorREFERENCIA_ALBARAN]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetREFERENCIA_ALBARANValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREFERENCIA_ALBARAN] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetREFERENCIA_ALBARANIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREFERENCIA_ALBARAN] := Null; +end; + + +{ TAlbaranesProveedor_DetallesBusinessProcessorRules } +constructor TAlbaranesProveedor_DetallesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TAlbaranesProveedor_DetallesBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesID]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesID]); +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesID]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesID]); +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesID] := aValue; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesID] := Null; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetID_ALBARANValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesID_ALBARAN]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetID_ALBARANIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesID_ALBARAN]); +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldID_ALBARANValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesID_ALBARAN]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldID_ALBARANIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesID_ALBARAN]); +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetID_ALBARANValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesID_ALBARAN] := aValue; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetID_ALBARANIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesID_ALBARAN] := Null; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesPOSICION]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetPOSICIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesPOSICION]); +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesPOSICION]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldPOSICIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesPOSICION]); +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetPOSICIONValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesPOSICION] := aValue; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetPOSICIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesPOSICION] := Null; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetTIPO_DETALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesTIPO_DETALLE]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetTIPO_DETALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesTIPO_DETALLE]); +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldTIPO_DETALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesTIPO_DETALLE]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldTIPO_DETALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesTIPO_DETALLE]); +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetTIPO_DETALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesTIPO_DETALLE] := aValue; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetTIPO_DETALLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesTIPO_DETALLE] := Null; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesCONCEPTO]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetCONCEPTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesCONCEPTO]); +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesCONCEPTO]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldCONCEPTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesCONCEPTO]); +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetCONCEPTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesCONCEPTO] := aValue; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetCONCEPTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesCONCEPTO] := Null; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetCANTIDADValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesCANTIDAD]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetCANTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesCANTIDAD]); +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldCANTIDADValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesCANTIDAD]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldCANTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesCANTIDAD]); +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetCANTIDADValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesCANTIDAD] := aValue; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetCANTIDADIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesCANTIDAD] := Null; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetUNIDAD_MEDIDAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesUNIDAD_MEDIDA]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetUNIDAD_MEDIDAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesUNIDAD_MEDIDA]); +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldUNIDAD_MEDIDAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesUNIDAD_MEDIDA]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldUNIDAD_MEDIDAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesUNIDAD_MEDIDA]); +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetUNIDAD_MEDIDAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesUNIDAD_MEDIDA] := aValue; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesUNIDAD_MEDIDA] := Null; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetIMPORTE_UNIDADValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_UNIDAD]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetIMPORTE_UNIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_UNIDAD]); +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldIMPORTE_UNIDADValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_UNIDAD]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldIMPORTE_UNIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_UNIDAD]); +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetIMPORTE_UNIDADValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_UNIDAD] := aValue; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetIMPORTE_UNIDADIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_UNIDAD] := Null; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_TOTAL]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_TOTAL]); +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_TOTAL]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_TOTAL]); +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_TOTAL] := aValue; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_TOTAL] := Null; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesVISIBLE]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetVISIBLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesVISIBLE]); +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesVISIBLE]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldVISIBLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesVISIBLE]); +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetVISIBLEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesVISIBLE] := aValue; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetVISIBLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesVISIBLE] := Null; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesID_ARTICULO]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetID_ARTICULOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesID_ARTICULO]); +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesID_ARTICULO]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldID_ARTICULOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesID_ARTICULO]); +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetID_ARTICULOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesID_ARTICULO] := aValue; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetID_ARTICULOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesID_ARTICULO] := Null; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesDESCUENTO]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesDESCUENTO]); +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesDESCUENTO]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesDESCUENTO]); +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesDESCUENTO] := aValue; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesDESCUENTO] := Null; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_PORTE]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetIMPORTE_PORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_PORTE]); +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_PORTE]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldIMPORTE_PORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_PORTE]); +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_PORTE] := aValue; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetIMPORTE_PORTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_PORTE] := Null; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesREFERENCIA]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesREFERENCIA]); +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesREFERENCIA]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesREFERENCIA]); +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesREFERENCIA] := aValue; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesREFERENCIA] := Null; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesREFERENCIA_PROVEEDOR]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetREFERENCIA_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesREFERENCIA_PROVEEDOR]); +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesREFERENCIA_PROVEEDOR]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesREFERENCIA_PROVEEDOR]); +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesREFERENCIA_PROVEEDOR] := aValue; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesREFERENCIA_PROVEEDOR] := Null; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetID_PEDIDOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesID_PEDIDO]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetID_PEDIDOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesID_PEDIDO]); +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldID_PEDIDOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesID_PEDIDO]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldID_PEDIDOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesID_PEDIDO]); +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetID_PEDIDOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesID_PEDIDO] := aValue; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetID_PEDIDOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesID_PEDIDO] := Null; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetREFERENCIA_FABRICANTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesREFERENCIA_FABRICANTE]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetREFERENCIA_FABRICANTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesREFERENCIA_FABRICANTE]); +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldREFERENCIA_FABRICANTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesREFERENCIA_FABRICANTE]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldREFERENCIA_FABRICANTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesREFERENCIA_FABRICANTE]); +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetREFERENCIA_FABRICANTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesREFERENCIA_FABRICANTE] := aValue; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetREFERENCIA_FABRICANTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesREFERENCIA_FABRICANTE] := Null; +end; + + +initialization + RegisterBusinessProcessorRules(RID_ListaAnosAlbaranesDelta, TListaAnosAlbaranesBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_AlbaranesProveedorDelta, TAlbaranesProveedorBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_AlbaranesProveedor_DetallesDelta, TAlbaranesProveedor_DetallesBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Model/uBizAlbaranProveedorServer.PAS b/Source/Modulos/Albaranes de proveedor/Model/uBizAlbaranProveedorServer.PAS new file mode 100644 index 0000000..239f065 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Model/uBizAlbaranProveedorServer.PAS @@ -0,0 +1,122 @@ +unit uBizAlbaranProveedorServer; + +interface + +uses + schFacturasClienteServer_Intf, uDAInterfaces, uDADelta, + uDADataTable, uDABusinessProcessor; + +const + BIZ_SERVER_ALBARAN_PROVEEDOR = 'Server.AlbaranProveedor'; + + CTE_TIPO_ALBARAN = 'A'; + CTE_TIPO_ALBARAN_DEV = 'D'; + +type + TBizAlbaranProveedorServer = class(TFacturasClienteBusinessProcessorRules) + private + FReferenciaAutomatica : Boolean; + function DarReferencia : String; + function IncrementarReferencia : Boolean; + protected + procedure BeforeProcessDelta(Sender: TDABusinessProcessor; + const aDelta: IDADelta); override; + procedure AfterProcessChange(Sender: TDABusinessProcessor; + aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); override; + end; + +implementation + +uses + Dialogs, SysUtils, Variants, uDataModuleServer, uDAClasses, + schAlbaranesProveedorClient_Intf, uBusinessUtils, uROClasses, + FactuGES_Intf, uROServer; + +const + REF_ALBARANES_PROVEEDOR = 'REF_ALBARANES_PROVEEDOR'; + REF_ALBARANES_DEV_PROVEEDOR = 'REF_ALBARANES_DEV_PROVEEDOR'; + + +{ TBizFacturasClienteServer } + +procedure TBizAlbaranProveedorServer.AfterProcessChange( + Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); +begin + inherited; + { Por defecto, mantenemos los deltas por si alguna tabla hija los necesita } + CanRemoveFromDelta := False; + + case aChange.ChangeType of + ctInsert, ctUpdate: begin + if FReferenciaAutomatica then + begin + IncrementarReferencia; + FReferenciaAutomatica := False; + end; + end; + end; +end; + +procedure TBizAlbaranProveedorServer.BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); +begin + FReferenciaAutomatica := False; + + case Sender.CurrentChange.ChangeType of + ctInsert, ctUpdate: begin + //Si la referencia no ha sido asignada le asignamos una nosotros + if REFERENCIAIsNull or (Length(REFERENCIA) = 0) then + begin + FReferenciaAutomatica := True; + REFERENCIA := DarReferencia; + end; + end; + end; +end; + + +function TBizAlbaranProveedorServer.DarReferencia: String; +var + AReferenciasService : IsrvReferencias; + Intf : IInterface; + AClientID : TGUID; + ACodigoReferencia : String; +begin + if (TIPO = CTE_TIPO_ALBARAN_DEV) then + ACodigoReferencia := REF_ALBARANES_DEV_PROVEEDOR + else + ACodigoReferencia := REF_ALBARANES_PROVEEDOR; + + CreateGUID(AClientID); + + GetClassFactory('srvReferencias').CreateInstance(AClientID, Intf); + AReferenciasService := Intf as IsrvReferencias; + Result := AReferenciasService.DarNuevaReferencia(ACodigoReferencia, ID_EMPRESA) +end; + +function TBizAlbaranProveedorServer.IncrementarReferencia: Boolean; +var + AReferenciasService : IsrvReferencias; + Intf : IInterface; + AClientID : TGUID; + ACodigoReferencia : String; +begin + if (TIPO = CTE_TIPO_ALBARAN_DEV) then + ACodigoReferencia := REF_ALBARANES_DEV_PROVEEDOR + else + ACodigoReferencia := REF_ALBARANES_PROVEEDOR; + + CreateGUID(AClientID); + + GetClassFactory('srvReferencias').CreateInstance(AClientID, Intf); + AReferenciasService := Intf as IsrvReferencias; + Result := AReferenciasService.IncrementarValorReferencia(ACodigoReferencia, Self.REFERENCIA, ID_EMPRESA) +end; + + + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_ALBARAN_PROVEEDOR, TBizAlbaranProveedorServer); + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Model/uBizAlbaranProveedorServer.dcu b/Source/Modulos/Albaranes de proveedor/Model/uBizAlbaranProveedorServer.dcu new file mode 100644 index 0000000..2924a87 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Model/uBizAlbaranProveedorServer.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Model/uBizAlbaranesProveedor.dcu b/Source/Modulos/Albaranes de proveedor/Model/uBizAlbaranesProveedor.dcu new file mode 100644 index 0000000..9450746 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Model/uBizAlbaranesProveedor.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Model/uBizAlbaranesProveedor.pas b/Source/Modulos/Albaranes de proveedor/Model/uBizAlbaranesProveedor.pas new file mode 100644 index 0000000..a9251c5 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Model/uBizAlbaranesProveedor.pas @@ -0,0 +1,304 @@ +unit uBizAlbaranesProveedor; + +interface + +uses + Classes, uDADataTable, uDAInterfaces, + schAlbaranesProveedorClient_Intf, uDBSelectionListUtils, + uBizContactos, uBizDetallesAlbaranProveedor; + +const + BIZ_CLIENT_ALBARAN_PROVEEDOR = 'Client.AlbaranProveedor'; + + CTE_TIPO_ALBARAN = 'A'; + CTE_TIPO_ALBARAN_DEV = 'D'; + +type + IBizAlbaranProveedor = interface(IAlbaranesProveedor) + ['{8042AD9C-08B1-4236-B0EA-F11C4942DFE4}'] + + procedure SetProveedor(AValue : IBizProveedor); + function GetProveedor : IBizProveedor; + property Proveedor : IBizProveedor read GetProveedor write SetProveedor; + + // Esta propidad es para que el controlador pueda acceder directamente + // a la propiedad Proveedor + procedure _SetProveedor(AValue : IBizProveedor); + function _GetProveedor : IBizProveedor; + property _Proveedor : IBizProveedor read _GetProveedor write _SetProveedor; + + function GetDetalles: IBizDetallesAlbaranProveedor; + procedure SetDetalles(Value: IBizDetallesAlbaranProveedor); + property Detalles: IBizDetallesAlbaranProveedor read GetDetalles write SetDetalles; + + function EsNuevo : Boolean; + end; + + TBizAlbaranProveedor = class(TAlbaranesProveedorDataTableRules, IBizAlbaranProveedor, ISeleccionable) + private + procedure CalcularBaseImponible; + procedure CalcularIVA; + protected + FSeleccionableInterface : ISeleccionable; + FProveedor : IBizProveedor; + FDetalles : IBizDetallesAlbaranProveedor; + FDetallesLink : TDADataSource; + + procedure SetProveedor(AValue : IBizProveedor); + function GetProveedor : IBizProveedor; + + procedure _SetProveedor(AValue : IBizProveedor); + function _GetProveedor : IBizProveedor; + + function GetDetalles: IBizDetallesAlbaranProveedor; + procedure SetDetalles(Value: IBizDetallesAlbaranProveedor); + + procedure SetFECHA_ALBARANValue(const aValue: TDateTime); override; + procedure SetID_PEDIDOValue(const aValue: Integer); override; + procedure SetID_ALMACENValue(const aValue: Integer); override; + procedure SetID_FACTURAValue(const aValue: Integer); override; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); override; + procedure SetID_ALBARANValue(const aValue: Integer); override; + + procedure IMPORTE_NETOOnChange(Sender: TDACustomField); + procedure IMPORTE_PORTEOnChange(Sender: TDACustomField); + procedure DESCUENTOOnChange(Sender: TDACustomField); + procedure IVAOnChange(Sender: TDACustomField); + + procedure OnNewRecord(Sender: TDADataTable); override; + procedure IniciarValoresAlbaranNuevo; + + public + procedure CalcularImporteTotal; + function EsNuevo : Boolean; + property Proveedor : IBizProveedor read GetProveedor write SetProveedor; + property _Proveedor : IBizProveedor read _GetProveedor write _SetProveedor; + + property Detalles: IBizDetallesAlbaranProveedor read GetDetalles write SetDetalles; + + property SeleccionableInterface : ISeleccionable read FSeleccionableInterface + write FSeleccionableInterface implements ISeleccionable; + + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + end; + +implementation + +uses + SysUtils, Variants, uDataModuleConfiguracion, uDataModuleUsuarios, + uDataTableUtils, DateUtils, uDateUtils, DB, uFactuGES_App, uBizInventario; + +{ TBizAlbaranProveedor } + +procedure TBizAlbaranProveedor.CalcularBaseImponible; +begin + if not Self.DataTable.Editing then + Edit; + IMPORTE_DESCUENTO := IMPORTE_NETO * (DESCUENTO/100); + BASE_IMPONIBLE := IMPORTE_NETO - IMPORTE_DESCUENTO; //+ IMPORTE_PORTE; ya no se tiene en cuenta porque se desglosa por artculo +end; + +procedure TBizAlbaranProveedor.CalcularImporteTotal; +begin + DataTable.DisableControls; + DataTable.Fields.FieldEventsDisabled := True; + try + CalcularBaseImponible; + CalcularIVA; + + if not Self.DataTable.Editing then + Edit; + IMPORTE_TOTAL := BASE_IMPONIBLE + IMPORTE_IVA; + finally + DataTable.Fields.FieldEventsDisabled := False; + DataTable.EnableControls; + end; +end; + +procedure TBizAlbaranProveedor.CalcularIVA; +begin + if not Self.DataTable.Editing then + Edit; + IMPORTE_IVA := (IVA / 100) * (BASE_IMPONIBLE); +end; + +constructor TBizAlbaranProveedor.Create(aDataTable: TDADataTable); +begin + inherited; + FProveedor := Nil; + + with DataTable do + begin + FieldByName(fld_AlbaranesProveedorIMPORTE_NETO).OnChange := IMPORTE_NETOOnChange; + FieldByName(fld_AlbaranesProveedorIMPORTE_PORTE).OnChange := IMPORTE_PORTEOnChange; + FieldByName(fld_AlbaranesProveedorDESCUENTO).OnChange := DESCUENTOOnChange; + FieldByName(fld_AlbaranesProveedorIVA).OnChange := IVAOnChange; + end; + + FDetallesLink := TDADataSource.Create(NIL); + FDetallesLink.DataTable := aDataTable; + + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +procedure TBizAlbaranProveedor.DESCUENTOOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +destructor TBizAlbaranProveedor.Destroy; +begin + FProveedor := NIL; + FDetalles := NIL; + FDetallesLink.Free; + + FSeleccionableInterface := NIL; + inherited; +end; + +function TBizAlbaranProveedor.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +function TBizAlbaranProveedor.GetProveedor: IBizProveedor; +begin + Result := FProveedor; +end; + +procedure TBizAlbaranProveedor.IMPORTE_NETOOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +procedure TBizAlbaranProveedor.IMPORTE_PORTEOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +procedure TBizAlbaranProveedor.IniciarValoresAlbaranNuevo; +begin + ID_EMPRESA := AppFactuGES.EmpresaActiva.ID; + USUARIO := AppFactuGES.UsuarioActivo.UserName; + FECHA_ALBARAN := DateOf(Date); + INCIDENCIAS_ACTIVAS := 0; + TIPO := CTE_TIPO_ALBARAN; + TIPO_ALMACEN := CTE_INV_ALMACEN; +end; + +procedure TBizAlbaranProveedor.IVAOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +function TBizAlbaranProveedor.GetDetalles: IBizDetallesAlbaranProveedor; +begin + Result := FDetalles; +end; + +procedure TBizAlbaranProveedor.OnNewRecord(Sender: TDADataTable); +begin + inherited; + ID := GetRecNo; // -1, -2, -3... + IniciarValoresAlbaranNuevo; +end; + +procedure TBizAlbaranProveedor.SetProveedor(AValue: IBizProveedor); +var + bEnEdicion : Boolean; +begin + FProveedor := AValue; + + if Assigned(FProveedor) then + begin + if not FProveedor.DataTable.Active then + FProveedor.DataTable.Active := True; + + if ID_PROVEEDOR <> FProveedor.ID then + begin + bEnEdicion := (DataTable.State in dsEditModes); + if not bEnEdicion then + DataTable.Edit; + + ID_PROVEEDOR := FProveedor.ID; + + DataTable.Post; //Muy importante ya que es necesario hacer un post de la cabecera antes de aadir detalles + //si se quita el id de la cabecera y los detalles se desincroniza + if bEnEdicion then + DataTable.Edit; + end; + end; +end; + +function TBizAlbaranProveedor._GetProveedor: IBizProveedor; +begin + Result := FProveedor; +end; + +procedure TBizAlbaranProveedor._SetProveedor(AValue: IBizProveedor); +begin + FProveedor := AValue; +end; + +procedure TBizAlbaranProveedor.SetDetalles(Value: IBizDetallesAlbaranProveedor); +begin + FDetalles := Value; + EnlazarMaestroDetalle(FDetallesLink, FDetalles); +end; + +procedure TBizAlbaranProveedor.SetFECHA_ALBARANValue(const aValue: TDateTime); +begin + if EsFechaVacia(aValue) then + SetFieldNull(DataTable, fld_AlbaranesProveedorFECHA_ALBARAN) + else + inherited; +end; + +procedure TBizAlbaranProveedor.SetID_ALBARANValue(const aValue: Integer); +begin + if (aValue = 0) then + SetFieldNull(DataTable, fld_AlbaranesProveedorID_ALBARAN) + else + inherited; +end; + +procedure TBizAlbaranProveedor.SetID_ALMACENValue(const aValue: Integer); +begin + if (aValue = 0) then + SetFieldNull(DataTable, fld_AlbaranesProveedorID_ALMACEN) + else + inherited; +end; + +procedure TBizAlbaranProveedor.SetID_FACTURAValue(const aValue: Integer); +begin + if (aValue = 0) then + SetFieldNull(DataTable, fld_AlbaranesProveedorID_FACTURA) + else + inherited; +end; + +procedure TBizAlbaranProveedor.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + if (aValue = 0) then + SetFieldNull(DataTable, fld_AlbaranesProveedorID_FORMA_PAGO) + else + inherited; +end; + +procedure TBizAlbaranProveedor.SetID_PEDIDOValue(const aValue: Integer); +begin + if (aValue = 0) then + SetFieldNull(DataTable, fld_AlbaranesProveedorID_PEDIDO) + else + inherited; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_ALBARAN_PROVEEDOR, TBizAlbaranProveedor); + +finalization + +end. + diff --git a/Source/Modulos/Albaranes de proveedor/Model/uBizDetallesAlbaranProveedor.dcu b/Source/Modulos/Albaranes de proveedor/Model/uBizDetallesAlbaranProveedor.dcu new file mode 100644 index 0000000..96f9054 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Model/uBizDetallesAlbaranProveedor.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Model/uBizDetallesAlbaranProveedor.pas b/Source/Modulos/Albaranes de proveedor/Model/uBizDetallesAlbaranProveedor.pas new file mode 100644 index 0000000..c130189 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Model/uBizDetallesAlbaranProveedor.pas @@ -0,0 +1,49 @@ +unit uBizDetallesAlbaranProveedor; + +interface + +uses + uDADataTable, schAlbaranesProveedorClient_Intf, uDataTableUtils; + +const + BIZ_CLIENT_DETALLES_ALBARAN_PROVEEDOR = 'Client.DetallesAlbaran.Proveedor'; + + +type + IBizDetallesAlbaranProveedor = interface(IAlbaranesProveedor_Detalles) + ['{B0D734DF-6734-4959-B200-1574E10D7673}'] + end; + + TBizDetallesAlbaranProveedor = class(TAlbaranesProveedor_DetallesDataTableRules, IBizDetallesAlbaranProveedor) + protected + procedure OnNewRecord(Sender: TDADataTable); override; + procedure BeforeInsert(Sender: TDADataTable); override; + end; + +implementation + +{ TBizDetallesAlbaranProveedor } + +uses + DB; + +procedure TBizDetallesAlbaranProveedor.BeforeInsert(Sender: TDADataTable); +var + AMasterTable : TDADataTable; +begin + inherited; + AMasterTable := DataTable.GetMasterDataTable; + if Assigned(AMasterTable) and (AMasterTable.State = dsInsert) then + AMasterTable.Post; +end; + +procedure TBizDetallesAlbaranProveedor.OnNewRecord(Sender: TDADataTable); +begin + inherited; + VISIBLE := 1; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_DETALLES_ALBARAN_PROVEEDOR, TBizDetallesAlbaranProveedor); + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.bdsproj b/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.bdsproj new file mode 100644 index 0000000..7683338 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.bdsproj @@ -0,0 +1,496 @@ + + + + + + + + + + + + AlbaranesProveedor_plugin.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + EurekaLog 5.1.9 + + + + diff --git a/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.cfg b/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.cfg new file mode 100644 index 0000000..45968c7 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.cfg @@ -0,0 +1,40 @@ +-$A8 +-$B- +-$C+ +-$D- +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L- +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$Y- +-$Z1 +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-$M16384,1048576 +-K$00400000 +-E"C:\Codigo\Output\Debug" +-LE"C:\Codigo\Output\Debug\Cliente" +-LN"C:\Codigo\Source\Modulos\Lib" +-U..\..\..\Lib;..\..\Lib;"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Imports";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\Indy10";"C:\Codigo Tecsitel\Lib";"C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK";"C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract";"C:\Codigo Tecsitel\Lib\CCPack";"C:\Codigo Tecsitel\Lib\CFPack";"C:\Codigo Tecsitel\Lib\GUISDK";"C:\Codigo Tecsitel\Lib\PluginSDK";"C:\Codigo Tecsitel\Lib\DevExpressVCL";"C:\Codigo Tecsitel\Lib\FastReport4";"C:\Codigo Tecsitel\Lib\JCL";"C:\Codigo Tecsitel\Lib\JVCL";"C:\Codigo Tecsitel\Lib\PngComponents";"C:\Codigo Tecsitel\Lib\cxIntl6";"C:\Codigo Tecsitel\Lib\cxIntlPrintSys3";"C:\Codigo Tecsitel\Lib\TB2k+TBX";"C:\Codigo Tecsitel\Lib\Mustangpeak\MPCommonLib";"C:\Codigo Tecsitel\Lib\Mustangpeak\EasyListview";"C:\Codigo Tecsitel\Lib\JSDialog";"C:\Codigo Tecsitel\Lib\UserControl";;"C:\Codigo Tecsitel\Source\Lib"; +-O..\..\..\Lib;..\..\Lib;"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Imports";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\Indy10";"C:\Codigo Tecsitel\Lib";"C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK";"C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract";"C:\Codigo Tecsitel\Lib\CCPack";"C:\Codigo Tecsitel\Lib\CFPack";"C:\Codigo Tecsitel\Lib\GUISDK";"C:\Codigo Tecsitel\Lib\PluginSDK";"C:\Codigo Tecsitel\Lib\DevExpressVCL";"C:\Codigo Tecsitel\Lib\FastReport4";"C:\Codigo Tecsitel\Lib\JCL";"C:\Codigo Tecsitel\Lib\JVCL";"C:\Codigo Tecsitel\Lib\PngComponents";"C:\Codigo Tecsitel\Lib\cxIntl6";"C:\Codigo Tecsitel\Lib\cxIntlPrintSys3";"C:\Codigo Tecsitel\Lib\TB2k+TBX";"C:\Codigo Tecsitel\Lib\Mustangpeak\MPCommonLib";"C:\Codigo Tecsitel\Lib\Mustangpeak\EasyListview";"C:\Codigo Tecsitel\Lib\JSDialog";"C:\Codigo Tecsitel\Lib\UserControl";;"C:\Codigo Tecsitel\Source\Lib"; +-I..\..\..\Lib;..\..\Lib;"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Imports";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\Indy10";"C:\Codigo Tecsitel\Lib";"C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK";"C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract";"C:\Codigo Tecsitel\Lib\CCPack";"C:\Codigo Tecsitel\Lib\CFPack";"C:\Codigo Tecsitel\Lib\GUISDK";"C:\Codigo Tecsitel\Lib\PluginSDK";"C:\Codigo Tecsitel\Lib\DevExpressVCL";"C:\Codigo Tecsitel\Lib\FastReport4";"C:\Codigo Tecsitel\Lib\JCL";"C:\Codigo Tecsitel\Lib\JVCL";"C:\Codigo Tecsitel\Lib\PngComponents";"C:\Codigo Tecsitel\Lib\cxIntl6";"C:\Codigo Tecsitel\Lib\cxIntlPrintSys3";"C:\Codigo Tecsitel\Lib\TB2k+TBX";"C:\Codigo Tecsitel\Lib\Mustangpeak\MPCommonLib";"C:\Codigo Tecsitel\Lib\Mustangpeak\EasyListview";"C:\Codigo Tecsitel\Lib\JSDialog";"C:\Codigo Tecsitel\Lib\UserControl";;"C:\Codigo Tecsitel\Source\Lib"; +-R..\..\..\Lib;..\..\Lib;"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Imports";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\Indy10";"C:\Codigo Tecsitel\Lib";"C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK";"C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract";"C:\Codigo Tecsitel\Lib\CCPack";"C:\Codigo Tecsitel\Lib\CFPack";"C:\Codigo Tecsitel\Lib\GUISDK";"C:\Codigo Tecsitel\Lib\PluginSDK";"C:\Codigo Tecsitel\Lib\DevExpressVCL";"C:\Codigo Tecsitel\Lib\FastReport4";"C:\Codigo Tecsitel\Lib\JCL";"C:\Codigo Tecsitel\Lib\JVCL";"C:\Codigo Tecsitel\Lib\PngComponents";"C:\Codigo Tecsitel\Lib\cxIntl6";"C:\Codigo Tecsitel\Lib\cxIntlPrintSys3";"C:\Codigo Tecsitel\Lib\TB2k+TBX";"C:\Codigo Tecsitel\Lib\Mustangpeak\MPCommonLib";"C:\Codigo Tecsitel\Lib\Mustangpeak\EasyListview";"C:\Codigo Tecsitel\Lib\JSDialog";"C:\Codigo Tecsitel\Lib\UserControl";;"C:\Codigo Tecsitel\Source\Lib"; +-GD diff --git a/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.cfg.bak b/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.cfg.bak new file mode 100644 index 0000000..5aa842f --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.cfg.bak @@ -0,0 +1,40 @@ +-$A8 +-$B- +-$C+ +-$D- +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L- +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$Y- +-$Z1 +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-$M16384,1048576 +-K$00400000 +-E"C:\Codigo Tecsitel\Output\Debug" +-LE"C:\Codigo Tecsitel\Output\Debug\Cliente" +-LN"C:\Codigo Tecsitel\Source\Modulos\Lib" +-U..\..\..\Lib;..\..\Lib;"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Imports";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\Indy10";"C:\Codigo Tecsitel\Lib";"C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK";"C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract";"C:\Codigo Tecsitel\Lib\CCPack";"C:\Codigo Tecsitel\Lib\CFPack";"C:\Codigo Tecsitel\Lib\GUISDK";"C:\Codigo Tecsitel\Lib\PluginSDK";"C:\Codigo Tecsitel\Lib\DevExpressVCL";"C:\Codigo Tecsitel\Lib\FastReport4";"C:\Codigo Tecsitel\Lib\JCL";"C:\Codigo Tecsitel\Lib\JVCL";"C:\Codigo Tecsitel\Lib\PngComponents";"C:\Codigo Tecsitel\Lib\cxIntl6";"C:\Codigo Tecsitel\Lib\cxIntlPrintSys3";"C:\Codigo Tecsitel\Lib\TB2k+TBX";"C:\Codigo Tecsitel\Lib\Mustangpeak\MPCommonLib";"C:\Codigo Tecsitel\Lib\Mustangpeak\EasyListview";"C:\Codigo Tecsitel\Lib\JSDialog";"C:\Codigo Tecsitel\Lib\UserControl";;"C:\Codigo Tecsitel\Source\Lib"; +-O..\..\..\Lib;..\..\Lib;"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Imports";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\Indy10";"C:\Codigo Tecsitel\Lib";"C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK";"C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract";"C:\Codigo Tecsitel\Lib\CCPack";"C:\Codigo Tecsitel\Lib\CFPack";"C:\Codigo Tecsitel\Lib\GUISDK";"C:\Codigo Tecsitel\Lib\PluginSDK";"C:\Codigo Tecsitel\Lib\DevExpressVCL";"C:\Codigo Tecsitel\Lib\FastReport4";"C:\Codigo Tecsitel\Lib\JCL";"C:\Codigo Tecsitel\Lib\JVCL";"C:\Codigo Tecsitel\Lib\PngComponents";"C:\Codigo Tecsitel\Lib\cxIntl6";"C:\Codigo Tecsitel\Lib\cxIntlPrintSys3";"C:\Codigo Tecsitel\Lib\TB2k+TBX";"C:\Codigo Tecsitel\Lib\Mustangpeak\MPCommonLib";"C:\Codigo Tecsitel\Lib\Mustangpeak\EasyListview";"C:\Codigo Tecsitel\Lib\JSDialog";"C:\Codigo Tecsitel\Lib\UserControl";;"C:\Codigo Tecsitel\Source\Lib"; +-I..\..\..\Lib;..\..\Lib;"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Imports";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\Indy10";"C:\Codigo Tecsitel\Lib";"C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK";"C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract";"C:\Codigo Tecsitel\Lib\CCPack";"C:\Codigo Tecsitel\Lib\CFPack";"C:\Codigo Tecsitel\Lib\GUISDK";"C:\Codigo Tecsitel\Lib\PluginSDK";"C:\Codigo Tecsitel\Lib\DevExpressVCL";"C:\Codigo Tecsitel\Lib\FastReport4";"C:\Codigo Tecsitel\Lib\JCL";"C:\Codigo Tecsitel\Lib\JVCL";"C:\Codigo Tecsitel\Lib\PngComponents";"C:\Codigo Tecsitel\Lib\cxIntl6";"C:\Codigo Tecsitel\Lib\cxIntlPrintSys3";"C:\Codigo Tecsitel\Lib\TB2k+TBX";"C:\Codigo Tecsitel\Lib\Mustangpeak\MPCommonLib";"C:\Codigo Tecsitel\Lib\Mustangpeak\EasyListview";"C:\Codigo Tecsitel\Lib\JSDialog";"C:\Codigo Tecsitel\Lib\UserControl";;"C:\Codigo Tecsitel\Source\Lib"; +-R..\..\..\Lib;..\..\Lib;"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Imports";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\Indy10";"C:\Codigo Tecsitel\Lib";"C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK";"C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract";"C:\Codigo Tecsitel\Lib\CCPack";"C:\Codigo Tecsitel\Lib\CFPack";"C:\Codigo Tecsitel\Lib\GUISDK";"C:\Codigo Tecsitel\Lib\PluginSDK";"C:\Codigo Tecsitel\Lib\DevExpressVCL";"C:\Codigo Tecsitel\Lib\FastReport4";"C:\Codigo Tecsitel\Lib\JCL";"C:\Codigo Tecsitel\Lib\JVCL";"C:\Codigo Tecsitel\Lib\PngComponents";"C:\Codigo Tecsitel\Lib\cxIntl6";"C:\Codigo Tecsitel\Lib\cxIntlPrintSys3";"C:\Codigo Tecsitel\Lib\TB2k+TBX";"C:\Codigo Tecsitel\Lib\Mustangpeak\MPCommonLib";"C:\Codigo Tecsitel\Lib\Mustangpeak\EasyListview";"C:\Codigo Tecsitel\Lib\JSDialog";"C:\Codigo Tecsitel\Lib\UserControl";;"C:\Codigo Tecsitel\Source\Lib"; +-GD diff --git a/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.dcu b/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.dcu new file mode 100644 index 0000000..909d7d8 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.dpk b/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.dpk new file mode 100644 index 0000000..908ee9b Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.dpk differ diff --git a/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.dproj b/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.dproj new file mode 100644 index 0000000..190c5ea --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.dproj @@ -0,0 +1,550 @@ + + + {e7d762a1-3a15-46b2-bd5b-3821d13b8347} + AlbaranesProveedor_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\AlbaranesProveedor_plugin.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 + + + + + + + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + EurekaLog 5.1.9 + AlbaranesProveedor_plugin.dpk + + + + + MainSource + + + + +
PluginAlbaranesProveedor
+
+
+
+ + diff --git a/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.drc b/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.drc new file mode 100644 index 0000000..e1014ef --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.drc @@ -0,0 +1,17 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Albaranes de proveedor\Plugin\uPluginAlbaranesProveedor.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de proveedor\Plugin\AlbaranesProveedor_plugin.res */ +/* c:\temp\dtf20B.tmp */ diff --git a/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.rc b/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.res b/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.res differ diff --git a/Source/Modulos/Albaranes de proveedor/Plugin/uPluginAlbaranesProveedor.dcu b/Source/Modulos/Albaranes de proveedor/Plugin/uPluginAlbaranesProveedor.dcu new file mode 100644 index 0000000..9a79772 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Plugin/uPluginAlbaranesProveedor.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Plugin/uPluginAlbaranesProveedor.dfm b/Source/Modulos/Albaranes de proveedor/Plugin/uPluginAlbaranesProveedor.dfm new file mode 100644 index 0000000..b7a6131 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Plugin/uPluginAlbaranesProveedor.dfm @@ -0,0 +1,500 @@ +object PluginAlbaranesProveedor: TPluginAlbaranesProveedor + OldCreateOrder = True + DefaultAction = actAlbaranesProveedor + Description = 'Compras' + ModuleMenu = MainMenu + ModuleName = 'Albaranes de proveedor' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software' + Version = '1.0.0' + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F330000026A4944415478DA63FCFFFF3F032D + 0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80F83F980601EBC0 + 7C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3C275FB19E62DDD + 84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD97890B005D87C802E + 06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9E0FF3F605803F1 + 1FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F18E70860DBB4E10 + 6701CCDBA480075B431936EF3D459C05F8520E3600D2B3A8508F61EB81D3C45B + 802BA86096C3E4616AE7E7EB32EC387486721F4C2C7064F8CA7E8E41F8D527BC + BE7AF2D589341FC02C6D2BE76788F0FBC520C1F883E1D74F0608FEC1C0F01346 + 03F1C9134458800DCC4C6464884D85B0F119CE2FC1C070F52E160B223C4DC1B9 + 139B0F62DE3B31B008E28FEC3FEF1186638D8350371370EEC4E60364D783C0A7 + F71017C330C80767CE4082C6CE701FC3A1F3587C10E46CC4E0567D04A70520CD + 8400C87010C06A819FA3018357ED31AC1A414184EC0310F8FB17182CBF19187E + FF02FAE23B03C38D1B0839AC1678DBE9C1CB155819032A7B40F49E7A51140B40 + 86FE061AFEE71784BD660D07839AC60F0636163C167858EB60351C54A1EC6F12 + C3880390C1201F80F0966D1C0C52F2100BD85819184E5CC662818BA51656C341 + F4A15609140BDEBE44180EB268E71E0E061169880557EE383134AFDACB886181 + BDA93AD8B07F7F11C532CCC2E39DD2700B4006BE7B85301C1454FB0E7230F089 + FF6078F0046238D6646A63A40A2E11B101D67D9E600B664EE5C09982DEFDB662 + D8FA491D7759D43B65214ECDF6BCFB187818A5F1265190E12000B300003BBC36 + ACFF3E80210000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000001974455874536F6674776172650041646F626520496D616765526561 + 647971C9653C000003294944415478DAB5956B4814511886DFD15557DD753531 + 352B495129723149222DAF61A921249A4216F4C37F81194445445028F5A32088 + 2E109991F443BAAB98B7F55A9AA1A549B4D2C5CAD2557775BDB4D7D9CE991A2F + EDACED62BD70383373CE7CCF79BF73E61BC662B1E07F8A590828AFECFC67B47D + BBB730820032E07030B39925CDC2F554717B0AD15D73C53660FB11C5A200AD17 + 936C065F38B7FA6C2CCAEE2B70B3FCF1D20047569E78B419A28810345DAB81A6 + F900EE3C6AFE3B40C8C19FCFA81ACEC523E5780BDA144AEE7EAC311F772B5B97 + E7C0C2925C936622ABA7D72696FDBD072C775D51DDEEB8037B445D7CA9C9C5C3 + DA0EFB00BC6D47F4A92A074F1A5ED80758EAE40889BE73BB488EAAA62EFB01B6 + 52C5C3F9717E6E6961246A5A5E2EDFC1A5C3499871EB86AF4ABBA4ABAF33C98E + 39E0A125C764C8CB342080D1C1A0C7AFA603F47C4F5A67871D00215D3FC82077 + 2F3055EF85498B3B64892360D8F9E0BA5940592581DB900903E2506B405E5A0C + F7750A39C8D72443E403F8770119AC044C50382A0CC3D0047F83B333E0A27582 + 4F8F3BBC4619F4497DA15E1B680DC849DDCC7D9D420EE8EAF71700E33D80D30D + 406C60200E5C87B7C15A98246AB82AC4981CD6A37B4D28E4D94AB4F408A4282B + 251AA927DB6C02685EA9BC54E3481BEC87C86C02239561624A8FA9193D7A42C2 + 1195F58E9B2308C84C8A42FAA96782F9A729A20E780D5493D271CB09D37A167A + 33C0CAC9C39DF3E382808C78F95C5DE16B0CAD3DB4AF3FED3707508F3318BE17 + 0453BD8AACDC001D014C93CD764907649B9600EC8ADB28189CFE501467567200 + DD2439450FC2607863C6C7FE0FC07AF232D9FCEF75E4341188349BA43012E8E8 + 1300ECD8BA413038ED5B8A033880A6DC1BA27E5FF4BE7E0F832F105C4436DD03 + A82B75817BAF1116B280B1383956B4F7BA5901126222B860AC79BE2CF3C0E7E7 + 833880AAC40F43DD1350CD1AB1FA10E0190A188D4063B318520F1DB4B5FEF0FC + 3C324222175B01B64587711551482E8D691CA0F4842BFC5E19C83917E1875CB4 + 688EDA188B2A6D040A9E5E4D259147AD00172E97C19612A48D90304160881B6F + E520A657F9C128932C9A43835311004323FF04D4D3607A0FD2DBC40000000049 + 454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + object actAlbaranesProveedor: TAction + Category = 'Compras' + Caption = 'Albaranes de proveedor' + ImageIndex = 0 + OnExecute = actAlbaranesProveedorExecute + end + object actDevolucionesProveedor: TAction + Category = 'Compras' + Caption = 'Ordenes de devoluci'#243'n' + ImageIndex = 1 + OnExecute = actDevolucionesProveedorExecute + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object Compras1: TMenuItem + Caption = 'Compras' + object AlbaranesdeProveedor1: TMenuItem + Tag = 210 + Action = actAlbaranesProveedor + end + object rdenesdedevolucin1: TMenuItem + Tag = 211 + Action = actDevolucionesProveedor + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000001744944415478DA63FCFFFF3FC394 + C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F19ACFDF319CEED + 98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC5BBA09D3007CE0 + D7EFBF609B4178C98683D80D40770136B0AED69461E59623B80D80391B04FE01 + E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D760CCEE587E036 + 07359F66585A6AC0B069CF49FC06C06CFE7CFB30C3CBC5B1F87CE48261C0C15E + 0706FBE20360D999EC710CCA0D350CECECE9183A7FFE9CC9302FB18501C30090 + B3617E7ED6A6C6A0D5FE18AC180E7EFC00E2EF0CB3771930306F4F45189011E5 + C6E0587A10C516900B500C0069FEF00E62C02927540392C39CC1B6C2423DA4F5 + 0CAA0130CD60037E32CCBE15846A405C90034A9445769E4718F0712242F3870F + 1017BC4A413520CA0FE177B841338C20063CAC47688679E15719AA01A15ED60C + ABB71D450903A76BA9E05898BD4A1E6B1CA218004A18E8409BF70D8315EB719C + 89C05E9EC10500D1295EA9BD5461080000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000001974455874536F6674776172650041646F626520496D616765526561 + 647971C9653C000002034944415478DA63FCFFFF3FC394C53BFE33900172623D + 1819610600394469FAF3F71FC3EF3F7F19ACFDF319CEED98866A806DD17E14C5 + 87FB1CC134B2F8AE761B86B9ABF632CC5BBA09D3007CE0D7EFBF609B4178C986 + 83D80D40770136B0AED69461E59623B80D80391B04FE01E5FEFCF907B7D9B7FE + 04C3AA4A6386B53B8EE13700E692BD9D760CCEE587E03607359F66585A6AC0B0 + 69CF49FC06C06CFE7CFB30C3CBC5B1F87CE48261C0C15E0706FBE20360D999EC + 710C5CD2D60C3C37FF333C0DCF66D0B7B1038B7F7D709FE14E4B3CC385339718 + 300C00391BE6E7676D6A0C5C6FCD19642EEF60782BABC1F035CF9581E3D53B86 + A78DEB186E73A9327C927A88302023CA8DC1B1F4208AFB402E502EB9C0702FC5 + 9A81E3F22D86DF02620CAF9EBF6360B6546538EBD7C3C0BC230D6140729833D8 + 5658A887B49E011BA0D5FE98E1C1A54686CF213D0C1FDE7D61F8CCC8C2603A2D + 8861E58F4406E6EDA90803E2821C50A22CB2F33CD800F9D28B0C379AA2197EAF + 3BC8F0919191E1D3BB9F0C2C527C0C4FF36730301F29461810E587F03BDCA019 + 460CA2FFBC18DEEDDCC870F7CD6706E33667861F4F5E331CE9BFC0F0894B8A81 + C1E83BC280502F6B86D5DB8EA28481D3B55486FFFBFE313CB8FE8CE1715C25C3 + 1F73482C307CFEC4C0BC643A03E39B3308034009031D68F3BE61B07DB28781E9 + E36F86DF060298F2BFBE4700003F4A71F77ECF59220000000049454E44AE4260 + 82} + Name = 'PngImage1' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000003314944415478DABDD6494C135118 + 00E0BF05B489895E342C1E24C110A3D052281704840A14D0044414306AF460BC + 1835B8C478D0448D9EF4E48646148480AC65B1B4D0955228B2A9802146130FC4 + E845128D11289DE7BC99B67499373395C4BF7D999937F3E69BFF7F339D4A1042 + F03F43E20F765B3F301BB8CFDB02B6E90FF3F5AC33FB992F82086904277048A3 + 9410C12ECB2C2AC9DDF5CF574FD1E7A228046E37056E8A82CCD2F330A97F4806 + B5E61954AA4E82AC6A4BC8C9ECF7728950F0F186DBBBA1B6D50CB58DDDE2C070 + 038305AA4430FF5A01EB633DFC1C3A01751D1661B0D3348D0EEC4D2666C8D56F + BB9B037B2E5861C8F2D1D7B730781C1AB43661B0C3F81E95E5C9456786E7C9ED + 46CCD27FEE705F73AF5D186C37BE4307F3149C99880D9CE937E31168D5394480 + 033498CF82FE250A37BEF65741BB7E58186CEB7F8BCA0B521890EFAEE40B3CB6 + E9B212B4034E61B0D53085E80775CD60C34505F498DE08832D8649745893EA03 + F9E6D27B41FEC778C7D455CB41671913065FE927504561DA9A337C763609FAED + 1322C03E1A2C5A3BF8E4CC4E3039A684C1E6BE715459A4E22DA9FF85D49C9440 + 3831FF5B1D0836E9C65055713A6F86887EB0255229831D3B15BA7F79C9D31601 + 96BC4BBA8D3AB9C0D763A8A258C5FC54F195B4FE5C0C6C4FF80E292AF1D8A618 + 80D9CF416063EF283D87E9907BC9462CE9D1057A50243D17EB00A4EB85CBB8B2 + B08A85CC2106CB0BD220EF8A9D9821A9943893A53F9EA5A7E10CC7C7D952662B + CD3038159461438F1395E5A782E6AA8317C4270827308623047CD93D824AD44A + D8776D84381897942B436FB8DD74195D00AE6536E3B9B9D57D9CE0FE1C05F72B + 8762FF3E98AE6F21821871D1D8CA32BBDED62683C41D8BB02E9200D6770DA3E2 + 6C0511C3DBD61BD19C603086B3D476C9203E8106A3804143C03AAD031566C989 + 18DEB6DF8A0D01B930DC7A753288DBC6668851E77410F8A273086932E5440C97 + 7AF84E5C0048C2F0BAC12883CD5B5970E6931A6EB6982401E0F30E3BCACF4866 + DE65A4883217F9403E0CF79B6D32D818BD085FE6590C8F09006BDB07D1FDA7CD + BCB7F8E9D8470C58F34026E28100F8E1CAF06121A098A8AE4C401BA878D1C7FB + 6338FE02EAE8B9B9299A515A0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000001974455874536F6674776172650041646F626520496D616765526561 + 647971C9653C000004754944415478DABD967B4C53571CC7BF17280FE521640D + 38F7706026228F01A29B8883CA4390E8C6DC9465EAB664CBFE58F6077B645B96 + BD62E65FEEBF2D99C974B81A51C6530429A5500A88838A22BE16962876A53640 + CBA3D207EDD9B9078A147A5B18C97EF79EDC7BCEBDF77C7EDFDFF99D7B0E4708 + C1FF69DC7C606DEB2D56E1DB9CC5A54E0F76CEDEB3E7EC24F0F5F1750B783D2F + 991304D6B4DC24FBB236FF67EF1DB42F8783C06E77C0EE7020A3F85DA8ABA4C2 + C06A453F7945128F8C9296459DA97ECC12042D7CBFF187749C2C57E054A57469 + C0E51A0FF4DB188D69A316ED657D186F7F1BA5952DDE8155CD37C8ABBB120415 + BA6B571ECFC4CB1FB7A2BDE5AFB93643DB6148AB95DE8195F23E52949DB86465 + FC38D9ED845DE78F1DDF5656A7F20EAC905F27AF6527B955B254E395EAE46FA2 + BCBE6309C0260ACC9901CE0FD1724D2B2B46C5A54EEFC03F64D7C8FEDC1718D0 + 53567A32FEDBB39F25A3BAA9CB3BB0BCB197D089BA62A0F493245C68FED33BF0 + 7CE355F2465ECA1CD0D3583A1D9AFF8EF39BD29244D4B7747B079EBBA4260776 + A7AE58E1AF1FC543A6522F01D84081F92B079EF8300ECD1DBDDE81650D3DE460 + FE168F21753A62D6EB213F1C8B69BB1DBAA7C6C17970C27FD81FE19A20DC0A7D + CE1578B6BE9B1417A4795448E8C4360D0E62A83006D11B62E1885C8FFBC15D58 + 5B340A8E52AD96D96206C61F02267924A6FB0946747AF4C7252C005EEC26070A + B6B05F95A790D6EE588DDCC9477475A00E8447C12F2611F7C3D410178EC0669D + 81E99522F8744660627014A3561B4C7B80DB66892BF04CDD153A8669C8FA5429 + 18D2B70C1216BE783510E7A09DDBE92FCE3F08C19B92A17C74170FD78F20F27A + 109ED1FA62C43009035D26CD7B296C4CB2780C79E0FEDC54647FAE1254F8CB3B + 1C0EBD0758C600DDB740B061066A7370088E7E1E5AA30E7E23668C4D5A600A04 + FE7909D07012EC4C56A0AD778142E9852E52949382BC2F3B3C0235A6196FFD4C + 66ECBAA94604B130E8FC622422F46F4D812D743583F1B608F87BED65B24F928C + 3D5F5F161C3F3EA4BC42A78D0D00F7BE027C6D8F61165A9E38044451BFEEDC79 + FCAE5B60616692FB25C731B37D68FE463C07E43F7D501382C9BA004C0D0FBB28 + B405D0706E0BC086172DF0F713009EAEE924053B9304617CBDF5FB4806A4CDD0 + 9C17236C7C2B061A2EC23A4D95F185B64FCF42A7441CC28E10AC8A02832E0296 + 567790DD19898230BEAE3ABA96011F9485E0596B26FA9A5A31619C60B055DB69 + 28336946FE0C4C68F844A259190A841FA1CFC440D78D05C0DFAADA49DE8E4441 + 181FEACE634F223FC117118A38E8F406DC1BD030353ED1C0A62FA872DA8FC504 + 0C9CA32195816D237DC2E97D7A3ABEABEBE05C80A72A5524677B025BCB844CA4 + C847817E1D42CD81E8B9F6375366A3E9BFF9184D9C601A4E9A3CFCE4B7D16B6B + B93F027B68C5C8B8B769C974019EAC68233F494FC093BDBFE60CB2B910E86556 + 8C4E5818509B2A82ED69F71B61C3D436ACAB52D220E3034A3ACE2D77AB5F7230 + 86AC318A117BE52A4454C69038124369C29BE7A3E50AF65FA7C46C4ABAFB2F29 + CA1A0E59AB7E850000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + Left = 232 + Top = 80 + Bitmap = {} + end +end diff --git a/Source/Modulos/Albaranes de proveedor/Plugin/uPluginAlbaranesProveedor.pas b/Source/Modulos/Albaranes de proveedor/Plugin/uPluginAlbaranesProveedor.pas new file mode 100644 index 0000000..79426c1 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Plugin/uPluginAlbaranesProveedor.pas @@ -0,0 +1,136 @@ +unit uPluginAlbaranesProveedor; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList, uPlugins_Intf; + +type + TPluginAlbaranesProveedor = class(TModuleController, IMCAlbaranesProveedor) + actAlbaranesProveedor: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + Compras1: TMenuItem; + AlbaranesdeProveedor1: TMenuItem; + actDevolucionesProveedor: TAction; + rdenesdedevolucin1: TMenuItem; + procedure actAlbaranesProveedorExecute(Sender: TObject); + procedure actDevolucionesProveedorExecute(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure VerAlbaranes(const ID_Proveedor: Integer; + const ANombreProveedor : String = ''); + procedure VerDevoluciones(const ID_Proveedor: Integer; + const ANombreProveedor : String = ''); + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, cxControls, + uAlbaranesProveedorController, uBizAlbaranesProveedor, uAlbaranesProveedorViewRegister; + +function GetModule : TModuleController; +begin + Result := TPluginAlbaranesProveedor.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +procedure TPluginAlbaranesProveedor.actAlbaranesProveedorExecute(Sender: TObject); +var + AAlbaranesProveedorController : IAlbaranesProveedorController; + AAlbaranesProveedor : IBizAlbaranProveedor; + +begin + AAlbaranesProveedorController := TAlbaranesProveedorController.Create; + AAlbaranesProveedor := (AAlbaranesProveedorController.BuscarAlbaranesNormales as IBizAlbaranProveedor); + AAlbaranesProveedorController.VerTodosAlbaranes(AAlbaranesProveedor); +end; + +procedure TPluginAlbaranesProveedor.actDevolucionesProveedorExecute(Sender: TObject); +var + AAlbaranesProveedorController : IAlbaranesProveedorController; + AAlbaranesProveedor : IBizAlbaranProveedor; + +begin + AAlbaranesProveedorController := TAlbaranesProveedorController.Create; + AAlbaranesProveedor := (AAlbaranesProveedorController.BuscarAlbaranesDevolucion as IBizAlbaranProveedor); + AAlbaranesProveedorController.VerTodosAlbaranesDev(AAlbaranesProveedor); +end; + +constructor TPluginAlbaranesProveedor.Create(AOwner: TComponent); +begin + inherited; + ModuleName := MODULENAME_ALBARANES_PROVEEDOR; + uAlbaranesProveedorViewRegister.RegisterViews; +end; + +destructor TPluginAlbaranesProveedor.Destroy; +begin + uAlbaranesProveedorViewRegister.UnregisterViews; + inherited; +end; + +procedure TPluginAlbaranesProveedor.VerAlbaranes(const ID_Proveedor: Integer; + const ANombreProveedor: String); +var + AAlbaranesProveedorController : IAlbaranesProveedorController; + AAlbaranesProveedor : IBizAlbaranProveedor; + AText : String; +begin + AText := Format('Lista de albaranes del cliente %s', [ANombreProveedor]); + AAlbaranesProveedorController := TAlbaranesProveedorController.Create; + try + ShowHourglassCursor; + try + AAlbaranesProveedor := AAlbaranesProveedorController.BuscarAlbaranesNormales(ID_Proveedor); + finally + HideHourglassCursor; + end; + AAlbaranesProveedorController.VerTodosAlbaranes(AAlbaranesProveedor, True, AText); + finally + AAlbaranesProveedor := NIL; + AAlbaranesProveedorController := NIL; + end; +end; + + +procedure TPluginAlbaranesProveedor.VerDevoluciones(const ID_Proveedor: Integer; + const ANombreProveedor: String); +var + AAlbaranesProveedorController : IAlbaranesProveedorController; + AAlbaranesProveedor : IBizAlbaranProveedor; + AText : String; +begin + AText := Format('Lista de devoluciones del cliente %s', [ANombreProveedor]); + AAlbaranesProveedorController := TAlbaranesProveedorController.Create; + try + ShowHourglassCursor; + try + AAlbaranesProveedor := AAlbaranesProveedorController.BuscarAlbaranesDevolucion(ID_Proveedor); + finally + HideHourglassCursor; + end; + AAlbaranesProveedorController.VerTodosAlbaranesDev(AAlbaranesProveedor, True, AText); + finally + AAlbaranesProveedor := NIL; + AAlbaranesProveedorController := NIL; + end; +end; + +initialization + RegisterModuleClass(TPluginAlbaranesProveedor); + +finalization + UnRegisterModuleClass(TPluginAlbaranesProveedor); + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Reports/uRptAlbaranesProveedor_Server.dcu b/Source/Modulos/Albaranes de proveedor/Reports/uRptAlbaranesProveedor_Server.dcu new file mode 100644 index 0000000..0846bf1 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Reports/uRptAlbaranesProveedor_Server.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Reports/uRptAlbaranesProveedor_Server.dfm b/Source/Modulos/Albaranes de proveedor/Reports/uRptAlbaranesProveedor_Server.dfm new file mode 100644 index 0000000..07c2015 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Reports/uRptAlbaranesProveedor_Server.dfm @@ -0,0 +1,924 @@ +object RptAlbaranesProveedor: TRptAlbaranesProveedor + OldCreateOrder = True + OnCreate = DataModuleCreate + OnDestroy = DataModuleDestroy + Height = 471 + Width = 448 + object DADSCabecera: TDADataSource + DataSet = tbl_Cabecera.Dataset + DataTable = tbl_Cabecera + Left = 264 + Top = 72 + end + object DADSDetalles: TDADataSource + DataSet = tbl_Detalles.Dataset + DataTable = tbl_Detalles + Left = 344 + Top = 72 + end + object frxRichObject1: TfrxRichObject + Left = 280 + Top = 360 + end + object frxBarCodeObject1: TfrxBarCodeObject + Left = 344 + Top = 360 + end + object frxOLEObject1: TfrxOLEObject + Left = 280 + Top = 408 + end + object frxCrossObject1: TfrxCrossObject + Left = 344 + Top = 408 + end + object frxCheckBoxObject1: TfrxCheckBoxObject + Left = 280 + Top = 256 + end + object frxGradientObject1: TfrxGradientObject + Left = 344 + Top = 256 + end + object frxChartObject1: TfrxChartObject + Left = 280 + Top = 304 + end + object schReport: TDASchema + ConnectionManager = dmServer.ConnectionManager + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + Name = 'IBX' + SQL = + 'select ID_EMPRESA,'#10'extract (year from FECHA_ALBARAN) as ANO,'#10'ext' + + 'ract (month from FECHA_ALBARAN) as MES,'#10'case'#10'when extract (month' + + ' from FECHA_ALBARAN) = 1 then '#39'ENERO - '#39' || extract (year from F' + + 'ECHA_ALBARAN)'#10'when extract (month from FECHA_ALBARAN) = 2 then '#39 + + 'FEBRERO - '#39' || extract (year from FECHA_ALBARAN)'#10'when extract (m' + + 'onth from FECHA_ALBARAN) = 3 then '#39'MARZO - '#39' || extract (year fr' + + 'om FECHA_ALBARAN)'#10'when extract (month from FECHA_ALBARAN) = 4 th' + + 'en '#39'ABRIL - '#39' || extract (year from FECHA_ALBARAN)'#10'when extract ' + + '(month from FECHA_ALBARAN) = 5 then '#39'MAYO - '#39' || extract (year f' + + 'rom FECHA_ALBARAN)'#10'when extract (month from FECHA_ALBARAN) = 6 t' + + 'hen '#39'JUNIO - '#39' || extract (year from FECHA_ALBARAN)'#10'when extract' + + ' (month from FECHA_ALBARAN) = 7 then '#39'JULIO - '#39' || extract (year' + + ' from FECHA_ALBARAN)'#10'when extract (month from FECHA_ALBARAN) = 8' + + ' then '#39'AGOSTO - '#39' || extract (year from FECHA_ALBARAN)'#10'when extr' + + 'act (month from FECHA_ALBARAN) = 9 then '#39'SEPTIEMBRE - '#39' || extra' + + 'ct (year from FECHA_ALBARAN)'#10'when extract (month from FECHA_ALBA' + + 'RAN) = 10 then '#39'OCTUBRE - '#39' || extract (year from FECHA_ALBARAN)' + + #10'when extract (month from FECHA_ALBARAN) = 11 then '#39'NOVIEMBRE - ' + + #39' || extract (year from FECHA_ALBARAN)'#10'when extract (month from ' + + 'FECHA_ALBARAN) = 12 then '#39'DICIEMBRE - '#39' || extract (year from FE' + + 'CHA_ALBARAN)'#10'end as TITULO,'#10'REFERENCIA, ID_PROVEEDOR, NOMBRE, F' + + 'ECHA_ALBARAN, IMPORTE_TOTAL'#10'from V_ALBARANES_PROVEEDOR'#10'where {wh' + + 'ere}'#10'order by ANO, MES, NOMBRE'#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'ANO' + TableField = 'ANO' + end + item + DatasetField = 'MES' + TableField = 'MES' + end + item + DatasetField = 'TITULO' + TableField = 'TITULO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID_PROVEEDOR' + TableField = 'ID_PROVEEDOR' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'FECHA_ALBARAN' + TableField = 'FECHA_ALBARAN' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end> + end> + Name = 'InformeListadoPedidos' + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_ALBARAN' + DataType = datDateTime + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + Value = '11' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'SELECT'#10' ALBARANES_PROVEEDOR.ID,'#10' ALBARANES_PROVEEDOR.ID_EMPRES' + + 'A,'#10' ALBARANES_PROVEEDOR.TIPO,'#10' ALBARANES_PROVEEDOR.REFERENCIA,' + + #10' ALBARANES_PROVEEDOR.FECHA_ALBARAN,'#10' ALBARANES_PROVEEDOR.OBSE' + + 'RVACIONES,'#10' CONTACTOS.NOMBRE,'#10' COALESCE(CONTACTOS_DIRECCIONES.' + + 'FAX, CONTACTOS.FAX) AS FAX,'#10' ALBARANES_PROVEEDOR.PERSONA_CONTAC' + + 'TO_PROV AS PERSONA_CONTACTO,'#10' PROVEEDORES_DATOS.CODIGO_ASIGNADO' + + ' AS CODIGO_CLIENTE,'#10' ALBARANES_PROVEEDOR.ID_ALMACEN,'#10' COALESCE' + + '(ALMACENES.CALLE, ALBARANES_PROVEEDOR.CALLE) AS CALLE,'#10' COALESC' + + 'E(ALMACENES.POBLACION, ALBARANES_PROVEEDOR.POBLACION) AS POBLACI' + + 'ON,'#10' COALESCE(ALMACENES.PROVINCIA, ALBARANES_PROVEEDOR.PROVINCI' + + 'A) AS PROVINCIA,'#10' COALESCE(ALMACENES.CODIGO_POSTAL, ALBARANES_P' + + 'ROVEEDOR.CODIGO_POSTAL) AS CODIGO_POSTAL,'#10' ALBARANES_PROVEEDOR.' + + 'PERSONA_CONTACTO AS ENTREGAR_A,'#10' ALBARANES_PROVEEDOR.IMPORTE_TO' + + 'TAL'#10'FROM'#10' ALBARANES_PROVEEDOR'#10' INNER JOIN CONTACTOS ON (CONTAC' + + 'TOS.ID = ALBARANES_PROVEEDOR.ID_PROVEEDOR)'#10' LEFT OUTER JOIN PRO' + + 'VEEDORES_DATOS ON (PROVEEDORES_DATOS.ID_PROVEEDOR = ALBARANES_PR' + + 'OVEEDOR.ID_PROVEEDOR)'#10' LEFT OUTER JOIN CONTACTOS_DIRECCIONES ON' + + ' (CONTACTOS_DIRECCIONES.ID = ALBARANES_PROVEEDOR.ID_DIRECCION)'#10' ' + + ' LEFT OUTER JOIN ALMACENES ON (ALMACENES.ID = ALBARANES_PROVEEDO' + + 'R.ID_ALMACEN)'#10'WHERE ALBARANES_PROVEEDOR.ID = :ID'#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'FECHA_ALBARAN' + TableField = 'FECHA_ALBARAN' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'FAX' + TableField = 'FAX' + end + item + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end + item + DatasetField = 'CODIGO_CLIENTE' + TableField = 'CODIGO_CLIENTE' + end + item + DatasetField = 'ID_ALMACEN' + TableField = 'ID_ALMACEN' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end + item + DatasetField = 'ENTREGAR_A' + TableField = 'ENTREGAR_A' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'TIPO' + TableField = 'TIPO' + end> + end> + Name = 'Informe_Cabecera' + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_ALBARAN' + DataType = datDateTime + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'FAX' + DataType = datString + Size = 25 + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + end + item + Name = 'ENTREGAR_A' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + end + item + Params = < + item + Name = 'ID_ALBARAN' + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ALBARANES_PROVEEDOR_DETALLES' + SQL = + 'SELECT DET.ID, DET.ID_ALBARAN,'#10' DET.POSICION, DET.TIPO_DET' + + 'ALLE,'#10' ARTICULOS.REFERENCIA, DET.CONCEPTO, DET.CANTIDAD,'#10' ' + + ' DET.UNIDAD_MEDIDA, DET.IMPORTE_UNIDAD - (DET.IMPORTE_UNIDA' + + 'D * (COALESCE(DET.DESCUENTO,0) / 100)) as IMPORTE_UNIDAD, DET.IM' + + 'PORTE_TOTAL,'#10' ARTICULOS_PROVEEDORES.REFERENCIA_PROV as REF' + + 'ERENCIA_PROVEEDOR,'#10' ARTICULOS.REFERENCIA_FABR as REFERENCI' + + 'A_FABRICANTE'#10'FROM ALBARANES_PROVEEDOR_DETALLES DET'#10'LEFT OUTER JO' + + 'IN ARTICULOS ON (DET.ID_ARTICULO = ARTICULOS.ID)'#10'LEFT JOIN ALBAR' + + 'ANES_PROVEEDOR ON (ALBARANES_PROVEEDOR.ID = DET.ID_ALBARAN)'#10'LEFT' + + ' JOIN ARTICULOS_PROVEEDORES ON ((ARTICULOS_PROVEEDORES.ID_ARTICU' + + 'LO = ARTICULOS.ID) AND (ARTICULOS_PROVEEDORES.ID_PROVEEDOR = ALB' + + 'ARANES_PROVEEDOR.ID_PROVEEDOR))'#10'WHERE DET.ID_ALBARAN = :ID_ALBAR' + + 'AN AND DET.VISIBLE = 1 AND {Where}'#10'ORDER BY DET.ID_ALBARAN, DET.' + + 'POSICION;'#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_ALBARAN' + TableField = 'ID_ALBARAN' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'REFERENCIA' + TableField = '' + SQLOrigin = 'REFERENCIA' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + end + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'UNIDAD_MEDIDA' + TableField = 'UNIDAD_MEDIDA' + end + item + DatasetField = 'IMPORTE_UNIDAD' + TableField = 'IMPORTE_UNIDAD' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = '' + SQLOrigin = 'REFERENCIA_PROVEEDOR' + end + item + DatasetField = 'REFERENCIA_FABRICANTE' + TableField = '' + SQLOrigin = 'REFERENCIA_FABRICANTE' + end> + end> + Name = 'Informe_Detalles' + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_ALBARAN' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + end + item + Name = 'CANTIDAD' + DataType = datFloat + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datFloat + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + end + item + Name = 'REFERENCIA_FABRICANTE' + DataType = datString + Size = 255 + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 16 + end + object frxReport: TfrxReport + Version = '4.7.71' + DotMatrixReport = False + EngineOptions.DoublePass = True + IniFile = '\Software\Fast Reports' + PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator, pbExportQuick] + PreviewOptions.Zoom = 1.000000000000000000 + PrintOptions.Printer = 'Por defecto' + PrintOptions.PrintOnSheet = 0 + ReportOptions.CreateDate = 39065.872423495400000000 + ReportOptions.LastChange = 39829.854499780090000000 + ScriptLanguage = 'PascalScript' + ScriptText.Strings = ( + '' + 'procedure DatosEmpresaOnBeforePrint(Sender: TfrxComponent);' + 'var' + ' Cadena: String;' + 'begin' + '{ DatosEmpresa.Lines.Clear;' + ' if ( <> '#39#39') then' + ' Cadena := '#39'TLF: '#39' + ;' + ' if ( <> '#39#39') then' + + ' Cadena := Cadena + '#39' FAX: '#39' + ;' + ' DatosEmpresa.Lines.Add(Cadena);' + '}' + 'end;' + '' + 'procedure NombreEmpresaOnBeforePrint(Sender: TfrxComponent);' + 'begin' + '{ NombreEmpresa.Lines.Clear;' + ' NombreEmpresa.Lines.Add();' + '}' + 'end;' + '' + 'procedure Memo35OnBeforePrint(Sender: TfrxComponent);' + 'begin' + + '{ if not then ' + + ' ' + ' Memo35.Lines.Clear;} ' + 'end;' + '' + 'procedure Memo36OnBeforePrint(Sender: TfrxComponent);' + 'begin' + + '{ if not then ' + + ' ' + ' Memo36.Lines.Clear;} ' + 'end;' + '' + 'procedure Memo6OnBeforePrint(Sender: TfrxComponent);' + 'begin' + + '{ if not then ' + + ' ' + ' Memo6.Lines.Clear;} ' + 'end;' + '' + 'procedure PageHeader2OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if not Engine.FinalPass then' + ' Set('#39'TotalPaginas'#39', ( + 1));' + '' + ' if Engine.FinalPass then' + ' Set('#39'Pagina'#39', ( + 1)); ' + 'end;' + '' + 'procedure frxReportOnStartReport(Sender: TfrxComponent);' + 'begin' + ' Set('#39'Pagina'#39', 0);' + ' Set('#39'TotalPaginas'#39', 0); ' + 'end;' + '' + 'procedure Memo21OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if ( = '#39'D'#39') then' + ' begin ' + ' Memo21.Lines.Clear;' + ' Memo21.Lines.Add('#39'ORDEN DE DEVOLUCION'#39');' + ' end; ' + 'end;' + '' + 'begin' + '' + 'end.') + ShowProgress = False + StoreInDFM = False + OnGetValue = frxReportGetValue + OnStartReport = 'frxReportOnStartReport' + Left = 145 + Top = 16 + end + object frxDBCabecera: TfrxDBDataset + UserName = 'frxDBCabecera' + CloseDataSource = False + DataSource = DADSCabecera + BCDToCurrency = False + Left = 264 + Top = 16 + end + object frxDBDetalles: TfrxDBDataset + UserName = 'frxDBDetalles' + CloseDataSource = False + DataSource = DADSDetalles + BCDToCurrency = False + Left = 344 + Top = 16 + end + object IBDatabase1: TIBDatabase + DatabaseName = 'C:\Codigo\Database\FACTUGES.FDB' + Params.Strings = ( + 'user_name=sysdba' + 'password=masterkey' + 'lc_ctype=ISO8859_1') + LoginPrompt = False + DefaultTransaction = IBTransaction1 + Left = 40 + Top = 256 + end + object IBTransaction1: TIBTransaction + Left = 40 + Top = 312 + end + object DataSource1: TDataSource + DataSet = cabecera + Left = 176 + Top = 256 + end + object DataSource3: TDataSource + DataSet = detalles + Left = 176 + Top = 320 + end + object detalles: TIBQuery + Database = IBDatabase1 + Transaction = IBTransaction1 + SQL.Strings = ( + + 'SELECT ALBARANES_PROVEEDOR_DETALLES.ID, ALBARANES_PROVEEDOR_DETA' + + 'LLES.ID_ALBARAN,' + + ' ALBARANES_PROVEEDOR_DETALLES.POSICION, ALBARANES_PROVEEDO' + + 'R_DETALLES.TIPO_DETALLE,' + + ' F_RTFTOTEXT(ALBARANES_PROVEEDOR_DETALLES.CONCEPTO) as CON' + + 'CEPTO, ALBARANES_PROVEEDOR_DETALLES.CANTIDAD,' + ' ALBARANES_PROVEEDOR_DETALLES.UNIDAD_MEDIDA,' + + ' ALBARANES_PROVEEDOR_DETALLES.IMPORTE_UNIDAD, ALBARANES_PR' + + 'OVEEDOR_DETALLES.IMPORTE_TOTAL,' + ' ARTICULOS.REFERENCIA' + 'FROM ALBARANES_PROVEEDOR_DETALLES' + + ' LEFT JOIN ARTICULOS ON (ALBARANES_PROVEEDOR_DETALLES.ID_ART' + + 'ICULO = ARTICULOS.ID)' + 'WHERE' + ' ID_ALBARAN = :ID_ALBARAN AND (VISIBLE <> 0)' + 'ORDER BY ID_ALBARAN, POSICION') + Left = 112 + Top = 320 + ParamData = < + item + DataType = ftUnknown + Name = 'ID_ALBARAN' + ParamType = ptUnknown + end> + object detallesID: TIntegerField + FieldName = 'ID' + Origin = '"ALBARANES_CLIENTE_DETALLES"."ID"' + ProviderFlags = [pfInUpdate, pfInWhere, pfInKey] + Required = True + end + object detallesID_ALBARAN: TIntegerField + FieldName = 'ID_ALBARAN' + Origin = '"ALBARANES_CLIENTE_DETALLES"."ID_ALBARAN"' + Required = True + end + object detallesPOSICION: TIntegerField + FieldName = 'POSICION' + Origin = '"ALBARANES_CLIENTE_DETALLES"."POSICION"' + end + object detallesTIPO_DETALLE: TIBStringField + FieldName = 'TIPO_DETALLE' + Origin = '"ALBARANES_CLIENTE_DETALLES"."TIPO_DETALLE"' + Size = 10 + end + object detallesCONCEPTO: TIBStringField + FieldName = 'CONCEPTO' + Origin = '"ALBARANES_CLIENTE_DETALLES"."CONCEPTO"' + Size = 254 + end + object detallesCANTIDAD: TIntegerField + FieldName = 'CANTIDAD' + Origin = '"ALBARANES_CLIENTE_DETALLES"."CANTIDAD"' + end + object detallesIMPORTE_UNIDAD: TIBBCDField + FieldName = 'IMPORTE_UNIDAD' + Origin = '"ALBARANES_CLIENTE_DETALLES"."IMPORTE_UNIDAD"' + Precision = 18 + Size = 2 + end + object detallesIMPORTE_TOTAL: TIBBCDField + FieldName = 'IMPORTE_TOTAL' + Origin = '"ALBARANES_CLIENTE_DETALLES"."IMPORTE_TOTAL"' + Precision = 18 + Size = 2 + end + object detallesREFERENCIA: TIBStringField + FieldName = 'REFERENCIA' + Origin = '"ARTICULOS"."REFERENCIA"' + Size = 255 + end + end + object cabecera: TIBQuery + Database = IBDatabase1 + Transaction = IBTransaction1 + SQL.Strings = ( + 'SELECT' + ' V_ALBARANES_PROVEEDOR.ID, V_ALBARANES_PROVEEDOR.ID_EMPRESA,' + ' V_ALBARANES_PROVEEDOR.ID_PROVEEDOR,' + ' V_ALBARANES_PROVEEDOR.FECHA_ALBARAN,' + ' V_ALBARANES_PROVEEDOR.REFERENCIA,' + ' V_ALBARANES_PROVEEDOR.REFERENCIA_PROVEEDOR,' + ' V_ALBARANES_PROVEEDOR.OBSERVACIONES,' + ' CONTACTOS.NIF_CIF, CONTACTOS.NOMBRE,' + ' V_ALBARANES_PROVEEDOR.PERSONA_CONTACTO,' + + ' COALESCE(CONTACTOS_DIRECCIONES.CALLE, CONTACTOS.CALLE) AS CALL' + + 'E,' + + ' COALESCE(CONTACTOS_DIRECCIONES.POBLACION, CONTACTOS.POBLACION)' + + ' AS POBLACION,' + + ' COALESCE(CONTACTOS_DIRECCIONES.PROVINCIA, CONTACTOS.PROVINCIA)' + + ' AS PROVINCIA,' + + ' COALESCE(CONTACTOS_DIRECCIONES.CODIGO_POSTAL, CONTACTOS.CODIGO' + + '_POSTAL) AS CODIGO_POSTAL' + 'FROM' + ' V_ALBARANES_PROVEEDOR' + + ' INNER JOIN CONTACTOS ON (CONTACTOS.ID = V_ALBARANES_PROVEEDOR.' + + 'ID_PROVEEDOR)' + + ' LEFT OUTER JOIN CONTACTOS_DIRECCIONES ON (CONTACTOS_DIRECCIONE' + + 'S.ID = V_ALBARANES_PROVEEDOR.ID_DIRECCION)' + 'WHERE V_ALBARANES_PROVEEDOR.ID = 11') + Left = 112 + Top = 256 + end + object tbl_Cabecera: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + end + item + Name = 'FECHA_ALBARAN' + DataType = datDateTime + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + end> + Params = < + item + Name = 'ID' + DataType = datInteger + Value = '11' + ParamType = daptInput + end> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer1 + LogicalName = 'Informe_Cabecera' + IndexDefs = <> + Left = 264 + Top = 128 + end + object tbl_Detalles: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_ALBARAN' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 32765 + end + item + Name = 'CANTIDAD' + DataType = datFloat + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end> + Params = < + item + Name = 'ID_ALBARAN' + DataType = datInteger + Value = '11' + ParamType = daptInput + end> + MasterParamsMappings.Strings = ( + 'ID_ALBARAN=ID') + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer1 + DetailFields = 'ID_ALBARAN' + LogicalName = 'Informe_Detalles' + IndexDefs = <> + Left = 344 + Top = 128 + end + object frxPDFExport1: TfrxPDFExport + ShowDialog = False + UseFileCache = True + ShowProgress = False + OverwritePrompt = False + PrintOptimized = True + Outline = False + Background = False + HTMLTags = True + Author = 'FactuGES' + Subject = 'FactuGES' + Creator = 'FactuGES' + ProtectionFlags = [ePrint, eModify, eCopy, eAnnot] + HideToolbar = False + HideMenubar = False + HideWindowUI = False + FitWindow = False + CenterWindow = False + PrintScaling = False + Left = 344 + Top = 304 + end + object DABin2DataStreamer1: TDABin2DataStreamer + Left = 48 + Top = 88 + end +end diff --git a/Source/Modulos/Albaranes de proveedor/Reports/uRptAlbaranesProveedor_Server.dfm.bak b/Source/Modulos/Albaranes de proveedor/Reports/uRptAlbaranesProveedor_Server.dfm.bak new file mode 100644 index 0000000..cb64524 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Reports/uRptAlbaranesProveedor_Server.dfm.bak @@ -0,0 +1,924 @@ +object RptAlbaranesProveedor: TRptAlbaranesProveedor + OldCreateOrder = True + OnCreate = DataModuleCreate + OnDestroy = DataModuleDestroy + Height = 471 + Width = 448 + object DADSCabecera: TDADataSource + DataSet = tbl_Cabecera.Dataset + DataTable = tbl_Cabecera + Left = 264 + Top = 72 + end + object DADSDetalles: TDADataSource + DataSet = tbl_Detalles.Dataset + DataTable = tbl_Detalles + Left = 344 + Top = 72 + end + object frxRichObject1: TfrxRichObject + Left = 280 + Top = 360 + end + object frxBarCodeObject1: TfrxBarCodeObject + Left = 344 + Top = 360 + end + object frxOLEObject1: TfrxOLEObject + Left = 280 + Top = 408 + end + object frxCrossObject1: TfrxCrossObject + Left = 344 + Top = 408 + end + object frxCheckBoxObject1: TfrxCheckBoxObject + Left = 280 + Top = 256 + end + object frxGradientObject1: TfrxGradientObject + Left = 344 + Top = 256 + end + object frxChartObject1: TfrxChartObject + Left = 280 + Top = 304 + end + object schReport: TDASchema + ConnectionManager = dmServer.ConnectionManager + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + Name = 'IBX' + SQL = + 'select ID_EMPRESA,'#10'extract (year from FECHA_ALBARAN) as ANO,'#10'ext' + + 'ract (month from FECHA_ALBARAN) as MES,'#10'case'#10'when extract (month' + + ' from FECHA_ALBARAN) = 1 then '#39'ENERO - '#39' || extract (year from F' + + 'ECHA_ALBARAN)'#10'when extract (month from FECHA_ALBARAN) = 2 then '#39 + + 'FEBRERO - '#39' || extract (year from FECHA_ALBARAN)'#10'when extract (m' + + 'onth from FECHA_ALBARAN) = 3 then '#39'MARZO - '#39' || extract (year fr' + + 'om FECHA_ALBARAN)'#10'when extract (month from FECHA_ALBARAN) = 4 th' + + 'en '#39'ABRIL - '#39' || extract (year from FECHA_ALBARAN)'#10'when extract ' + + '(month from FECHA_ALBARAN) = 5 then '#39'MAYO - '#39' || extract (year f' + + 'rom FECHA_ALBARAN)'#10'when extract (month from FECHA_ALBARAN) = 6 t' + + 'hen '#39'JUNIO - '#39' || extract (year from FECHA_ALBARAN)'#10'when extract' + + ' (month from FECHA_ALBARAN) = 7 then '#39'JULIO - '#39' || extract (year' + + ' from FECHA_ALBARAN)'#10'when extract (month from FECHA_ALBARAN) = 8' + + ' then '#39'AGOSTO - '#39' || extract (year from FECHA_ALBARAN)'#10'when extr' + + 'act (month from FECHA_ALBARAN) = 9 then '#39'SEPTIEMBRE - '#39' || extra' + + 'ct (year from FECHA_ALBARAN)'#10'when extract (month from FECHA_ALBA' + + 'RAN) = 10 then '#39'OCTUBRE - '#39' || extract (year from FECHA_ALBARAN)' + + #10'when extract (month from FECHA_ALBARAN) = 11 then '#39'NOVIEMBRE - ' + + #39' || extract (year from FECHA_ALBARAN)'#10'when extract (month from ' + + 'FECHA_ALBARAN) = 12 then '#39'DICIEMBRE - '#39' || extract (year from FE' + + 'CHA_ALBARAN)'#10'end as TITULO,'#10'REFERENCIA, ID_PROVEEDOR, NOMBRE, F' + + 'ECHA_ALBARAN, IMPORTE_TOTAL'#10'from V_ALBARANES_PROVEEDOR'#10'where {wh' + + 'ere}'#10'order by ANO, MES, NOMBRE'#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'ANO' + TableField = 'ANO' + end + item + DatasetField = 'MES' + TableField = 'MES' + end + item + DatasetField = 'TITULO' + TableField = 'TITULO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID_PROVEEDOR' + TableField = 'ID_PROVEEDOR' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'FECHA_ALBARAN' + TableField = 'FECHA_ALBARAN' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end> + end> + Name = 'InformeListadoPedidos' + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_ALBARAN' + DataType = datDateTime + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + Value = '11' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'SELECT'#10' ALBARANES_PROVEEDOR.ID,'#10' ALBARANES_PROVEEDOR.ID_EMPRES' + + 'A,'#10' ALBARANES_PROVEEDOR.TIPO,'#10' ALBARANES_PROVEEDOR.REFERENCIA,' + + #10' ALBARANES_PROVEEDOR.FECHA_ALBARAN,'#10' ALBARANES_PROVEEDOR.OBSE' + + 'RVACIONES,'#10' CONTACTOS.NOMBRE,'#10' COALESCE(CONTACTOS_DIRECCIONES.' + + 'FAX, CONTACTOS.FAX) AS FAX,'#10' ALBARANES_PROVEEDOR.PERSONA_CONTAC' + + 'TO_PROV AS PERSONA_CONTACTO,'#10' PROVEEDORES_DATOS.CODIGO_ASIGNADO' + + ' AS CODIGO_CLIENTE,'#10' ALBARANES_PROVEEDOR.ID_ALMACEN,'#10' COALESCE' + + '(ALMACENES.CALLE, ALBARANES_PROVEEDOR.CALLE) AS CALLE,'#10' COALESC' + + 'E(ALMACENES.POBLACION, ALBARANES_PROVEEDOR.POBLACION) AS POBLACI' + + 'ON,'#10' COALESCE(ALMACENES.PROVINCIA, ALBARANES_PROVEEDOR.PROVINCI' + + 'A) AS PROVINCIA,'#10' COALESCE(ALMACENES.CODIGO_POSTAL, ALBARANES_P' + + 'ROVEEDOR.CODIGO_POSTAL) AS CODIGO_POSTAL,'#10' ALBARANES_PROVEEDOR.' + + 'PERSONA_CONTACTO AS ENTREGAR_A,'#10' ALBARANES_PROVEEDOR.IMPORTE_TO' + + 'TAL'#10'FROM'#10' ALBARANES_PROVEEDOR'#10' INNER JOIN CONTACTOS ON (CONTAC' + + 'TOS.ID = ALBARANES_PROVEEDOR.ID_PROVEEDOR)'#10' LEFT OUTER JOIN PRO' + + 'VEEDORES_DATOS ON (PROVEEDORES_DATOS.ID_PROVEEDOR = ALBARANES_PR' + + 'OVEEDOR.ID_PROVEEDOR)'#10' LEFT OUTER JOIN CONTACTOS_DIRECCIONES ON' + + ' (CONTACTOS_DIRECCIONES.ID = ALBARANES_PROVEEDOR.ID_DIRECCION)'#10' ' + + ' LEFT OUTER JOIN ALMACENES ON (ALMACENES.ID = ALBARANES_PROVEEDO' + + 'R.ID_ALMACEN)'#10'WHERE ALBARANES_PROVEEDOR.ID = :ID'#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'FECHA_ALBARAN' + TableField = 'FECHA_ALBARAN' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'FAX' + TableField = 'FAX' + end + item + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end + item + DatasetField = 'CODIGO_CLIENTE' + TableField = 'CODIGO_CLIENTE' + end + item + DatasetField = 'ID_ALMACEN' + TableField = 'ID_ALMACEN' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end + item + DatasetField = 'ENTREGAR_A' + TableField = 'ENTREGAR_A' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'TIPO' + TableField = 'TIPO' + end> + end> + Name = 'Informe_Cabecera' + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_ALBARAN' + DataType = datDateTime + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'FAX' + DataType = datString + Size = 25 + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + end + item + Name = 'ENTREGAR_A' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + end + item + Params = < + item + Name = 'ID_ALBARAN' + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ALBARANES_PROVEEDOR_DETALLES' + SQL = + 'SELECT DET.ID, DET.ID_ALBARAN,'#10' DET.POSICION, DET.TIPO_DET' + + 'ALLE,'#10' ARTICULOS.REFERENCIA, DET.CONCEPTO, DET.CANTIDAD,'#10' ' + + ' DET.UNIDAD_MEDIDA, DET.IMPORTE_UNIDAD - (DET.IMPORTE_UNIDA' + + 'D * (COALESCE(DET.DESCUENTO,0) / 100)) as IMPORTE_UNIDAD, DET.IM' + + 'PORTE_TOTAL,'#10' ARTICULOS_PROVEEDORES.REFERENCIA_PROV as REF' + + 'ERENCIA_PROVEEDOR,'#10' ARTICULOS.REFERENCIA_FABR as REFERENCI' + + 'A_FABRICANTE'#10'FROM ALBARANES_PROVEEDOR_DETALLES DET'#10'LEFT OUTER JO' + + 'IN ARTICULOS ON (DET.ID_ARTICULO = ARTICULOS.ID)'#10'LEFT JOIN ALBAR' + + 'ANES_PROVEEDOR ON (ALBARANES_PROVEEDOR.ID = DET.ID_ALBARAN)'#10'LEFT' + + ' JOIN ARTICULOS_PROVEEDORES ON ((ARTICULOS_PROVEEDORES.ID_ARTICU' + + 'LO = ARTICULOS.ID) AND (ARTICULOS_PROVEEDORES.ID_PROVEEDOR = ALB' + + 'ARANES_PROVEEDOR.ID_PROVEEDOR))'#10'WHERE DET.ID_ALBARAN = :ID_ALBAR' + + 'AN AND DET.VISIBLE = 1 AND {Where}'#10'ORDER BY DET.ID_ALBARAN, DET.' + + 'POSICION;'#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_ALBARAN' + TableField = 'ID_ALBARAN' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'REFERENCIA' + TableField = '' + SQLOrigin = 'REFERENCIA' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + end + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'UNIDAD_MEDIDA' + TableField = 'UNIDAD_MEDIDA' + end + item + DatasetField = 'IMPORTE_UNIDAD' + TableField = 'IMPORTE_UNIDAD' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = '' + SQLOrigin = 'REFERENCIA_PROVEEDOR' + end + item + DatasetField = 'REFERENCIA_FABRICANTE' + TableField = '' + SQLOrigin = 'REFERENCIA_FABRICANTE' + end> + end> + Name = 'Informe_Detalles' + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_ALBARAN' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + end + item + Name = 'CANTIDAD' + DataType = datFloat + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datFloat + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + end + item + Name = 'REFERENCIA_FABRICANTE' + DataType = datString + Size = 255 + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 16 + end + object frxReport: TfrxReport + Version = '4.7.71' + DotMatrixReport = False + EngineOptions.DoublePass = True + IniFile = '\Software\Fast Reports' + PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator, pbExportQuick] + PreviewOptions.Zoom = 1.000000000000000000 + PrintOptions.Printer = 'Por defecto' + PrintOptions.PrintOnSheet = 0 + ReportOptions.CreateDate = 39065.872423495400000000 + ReportOptions.LastChange = 39829.854499780090000000 + ScriptLanguage = 'PascalScript' + ScriptText.Strings = ( + '' + 'procedure DatosEmpresaOnBeforePrint(Sender: TfrxComponent);' + 'var' + ' Cadena: String;' + 'begin' + '{ DatosEmpresa.Lines.Clear;' + ' if ( <> '#39#39') then' + ' Cadena := '#39'TLF: '#39' + ;' + ' if ( <> '#39#39') then' + + ' Cadena := Cadena + '#39' FAX: '#39' + ;' + ' DatosEmpresa.Lines.Add(Cadena);' + '}' + 'end;' + '' + 'procedure NombreEmpresaOnBeforePrint(Sender: TfrxComponent);' + 'begin' + '{ NombreEmpresa.Lines.Clear;' + ' NombreEmpresa.Lines.Add();' + '}' + 'end;' + '' + 'procedure Memo35OnBeforePrint(Sender: TfrxComponent);' + 'begin' + + '{ if not then ' + + ' ' + ' Memo35.Lines.Clear;} ' + 'end;' + '' + 'procedure Memo36OnBeforePrint(Sender: TfrxComponent);' + 'begin' + + '{ if not then ' + + ' ' + ' Memo36.Lines.Clear;} ' + 'end;' + '' + 'procedure Memo6OnBeforePrint(Sender: TfrxComponent);' + 'begin' + + '{ if not then ' + + ' ' + ' Memo6.Lines.Clear;} ' + 'end;' + '' + 'procedure PageHeader2OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if not Engine.FinalPass then' + ' Set('#39'TotalPaginas'#39', ( + 1));' + '' + ' if Engine.FinalPass then' + ' Set('#39'Pagina'#39', ( + 1)); ' + 'end;' + '' + 'procedure frxReportOnStartReport(Sender: TfrxComponent);' + 'begin' + ' Set('#39'Pagina'#39', 0);' + ' Set('#39'TotalPaginas'#39', 0); ' + 'end;' + '' + 'procedure Memo21OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if ( = '#39'D'#39') then' + ' begin ' + ' Memo21.Lines.Clear;' + ' Memo21.Lines.Add('#39'ORDEN DE DEVOLUCION'#39');' + ' end; ' + 'end;' + '' + 'begin' + '' + 'end.') + ShowProgress = False + StoreInDFM = False + OnGetValue = frxReportGetValue + OnStartReport = 'frxReportOnStartReport' + Left = 145 + Top = 16 + end + object frxDBCabecera: TfrxDBDataset + UserName = 'frxDBCabecera' + CloseDataSource = False + DataSource = DADSCabecera + BCDToCurrency = False + Left = 264 + Top = 16 + end + object frxDBDetalles: TfrxDBDataset + UserName = 'frxDBDetalles' + CloseDataSource = False + DataSource = DADSDetalles + BCDToCurrency = False + Left = 344 + Top = 16 + end + object IBDatabase1: TIBDatabase + DatabaseName = 'C:\Codigo Tecsitel\Database\FACTUGES.FDB' + Params.Strings = ( + 'user_name=sysdba' + 'password=masterkey' + 'lc_ctype=ISO8859_1') + LoginPrompt = False + DefaultTransaction = IBTransaction1 + Left = 40 + Top = 256 + end + object IBTransaction1: TIBTransaction + Left = 40 + Top = 312 + end + object DataSource1: TDataSource + DataSet = cabecera + Left = 176 + Top = 256 + end + object DataSource3: TDataSource + DataSet = detalles + Left = 176 + Top = 320 + end + object detalles: TIBQuery + Database = IBDatabase1 + Transaction = IBTransaction1 + SQL.Strings = ( + + 'SELECT ALBARANES_PROVEEDOR_DETALLES.ID, ALBARANES_PROVEEDOR_DETA' + + 'LLES.ID_ALBARAN,' + + ' ALBARANES_PROVEEDOR_DETALLES.POSICION, ALBARANES_PROVEEDO' + + 'R_DETALLES.TIPO_DETALLE,' + + ' F_RTFTOTEXT(ALBARANES_PROVEEDOR_DETALLES.CONCEPTO) as CON' + + 'CEPTO, ALBARANES_PROVEEDOR_DETALLES.CANTIDAD,' + ' ALBARANES_PROVEEDOR_DETALLES.UNIDAD_MEDIDA,' + + ' ALBARANES_PROVEEDOR_DETALLES.IMPORTE_UNIDAD, ALBARANES_PR' + + 'OVEEDOR_DETALLES.IMPORTE_TOTAL,' + ' ARTICULOS.REFERENCIA' + 'FROM ALBARANES_PROVEEDOR_DETALLES' + + ' LEFT JOIN ARTICULOS ON (ALBARANES_PROVEEDOR_DETALLES.ID_ART' + + 'ICULO = ARTICULOS.ID)' + 'WHERE' + ' ID_ALBARAN = :ID_ALBARAN AND (VISIBLE <> 0)' + 'ORDER BY ID_ALBARAN, POSICION') + Left = 112 + Top = 320 + ParamData = < + item + DataType = ftUnknown + Name = 'ID_ALBARAN' + ParamType = ptUnknown + end> + object detallesID: TIntegerField + FieldName = 'ID' + Origin = '"ALBARANES_CLIENTE_DETALLES"."ID"' + ProviderFlags = [pfInUpdate, pfInWhere, pfInKey] + Required = True + end + object detallesID_ALBARAN: TIntegerField + FieldName = 'ID_ALBARAN' + Origin = '"ALBARANES_CLIENTE_DETALLES"."ID_ALBARAN"' + Required = True + end + object detallesPOSICION: TIntegerField + FieldName = 'POSICION' + Origin = '"ALBARANES_CLIENTE_DETALLES"."POSICION"' + end + object detallesTIPO_DETALLE: TIBStringField + FieldName = 'TIPO_DETALLE' + Origin = '"ALBARANES_CLIENTE_DETALLES"."TIPO_DETALLE"' + Size = 10 + end + object detallesCONCEPTO: TIBStringField + FieldName = 'CONCEPTO' + Origin = '"ALBARANES_CLIENTE_DETALLES"."CONCEPTO"' + Size = 254 + end + object detallesCANTIDAD: TIntegerField + FieldName = 'CANTIDAD' + Origin = '"ALBARANES_CLIENTE_DETALLES"."CANTIDAD"' + end + object detallesIMPORTE_UNIDAD: TIBBCDField + FieldName = 'IMPORTE_UNIDAD' + Origin = '"ALBARANES_CLIENTE_DETALLES"."IMPORTE_UNIDAD"' + Precision = 18 + Size = 2 + end + object detallesIMPORTE_TOTAL: TIBBCDField + FieldName = 'IMPORTE_TOTAL' + Origin = '"ALBARANES_CLIENTE_DETALLES"."IMPORTE_TOTAL"' + Precision = 18 + Size = 2 + end + object detallesREFERENCIA: TIBStringField + FieldName = 'REFERENCIA' + Origin = '"ARTICULOS"."REFERENCIA"' + Size = 255 + end + end + object cabecera: TIBQuery + Database = IBDatabase1 + Transaction = IBTransaction1 + SQL.Strings = ( + 'SELECT' + ' V_ALBARANES_PROVEEDOR.ID, V_ALBARANES_PROVEEDOR.ID_EMPRESA,' + ' V_ALBARANES_PROVEEDOR.ID_PROVEEDOR,' + ' V_ALBARANES_PROVEEDOR.FECHA_ALBARAN,' + ' V_ALBARANES_PROVEEDOR.REFERENCIA,' + ' V_ALBARANES_PROVEEDOR.REFERENCIA_PROVEEDOR,' + ' V_ALBARANES_PROVEEDOR.OBSERVACIONES,' + ' CONTACTOS.NIF_CIF, CONTACTOS.NOMBRE,' + ' V_ALBARANES_PROVEEDOR.PERSONA_CONTACTO,' + + ' COALESCE(CONTACTOS_DIRECCIONES.CALLE, CONTACTOS.CALLE) AS CALL' + + 'E,' + + ' COALESCE(CONTACTOS_DIRECCIONES.POBLACION, CONTACTOS.POBLACION)' + + ' AS POBLACION,' + + ' COALESCE(CONTACTOS_DIRECCIONES.PROVINCIA, CONTACTOS.PROVINCIA)' + + ' AS PROVINCIA,' + + ' COALESCE(CONTACTOS_DIRECCIONES.CODIGO_POSTAL, CONTACTOS.CODIGO' + + '_POSTAL) AS CODIGO_POSTAL' + 'FROM' + ' V_ALBARANES_PROVEEDOR' + + ' INNER JOIN CONTACTOS ON (CONTACTOS.ID = V_ALBARANES_PROVEEDOR.' + + 'ID_PROVEEDOR)' + + ' LEFT OUTER JOIN CONTACTOS_DIRECCIONES ON (CONTACTOS_DIRECCIONE' + + 'S.ID = V_ALBARANES_PROVEEDOR.ID_DIRECCION)' + 'WHERE V_ALBARANES_PROVEEDOR.ID = 11') + Left = 112 + Top = 256 + end + object tbl_Cabecera: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + end + item + Name = 'FECHA_ALBARAN' + DataType = datDateTime + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + end> + Params = < + item + Name = 'ID' + DataType = datInteger + Value = '11' + ParamType = daptInput + end> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer1 + LogicalName = 'Informe_Cabecera' + IndexDefs = <> + Left = 264 + Top = 128 + end + object tbl_Detalles: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_ALBARAN' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 32765 + end + item + Name = 'CANTIDAD' + DataType = datFloat + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end> + Params = < + item + Name = 'ID_ALBARAN' + DataType = datInteger + Value = '11' + ParamType = daptInput + end> + MasterParamsMappings.Strings = ( + 'ID_ALBARAN=ID') + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer1 + DetailFields = 'ID_ALBARAN' + LogicalName = 'Informe_Detalles' + IndexDefs = <> + Left = 344 + Top = 128 + end + object frxPDFExport1: TfrxPDFExport + ShowDialog = False + UseFileCache = True + ShowProgress = False + OverwritePrompt = False + PrintOptimized = True + Outline = False + Background = False + HTMLTags = True + Author = 'FactuGES' + Subject = 'FactuGES' + Creator = 'FactuGES' + ProtectionFlags = [ePrint, eModify, eCopy, eAnnot] + HideToolbar = False + HideMenubar = False + HideWindowUI = False + FitWindow = False + CenterWindow = False + PrintScaling = False + Left = 344 + Top = 304 + end + object DABin2DataStreamer1: TDABin2DataStreamer + Left = 48 + Top = 88 + end +end diff --git a/Source/Modulos/Albaranes de proveedor/Reports/uRptAlbaranesProveedor_Server.pas b/Source/Modulos/Albaranes de proveedor/Reports/uRptAlbaranesProveedor_Server.pas new file mode 100644 index 0000000..19c0046 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Reports/uRptAlbaranesProveedor_Server.pas @@ -0,0 +1,176 @@ +unit uRptAlbaranesProveedor_Server; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, frxClass, frxDBSet, uDAScriptingProvider, + uDADataTable, uDACDSDataTable, DB, uDAClasses, frxChart, frxGradient, + frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes, + uDAInterfaces, uDADataStreamer, IBCustomDataSet, IBQuery, IBDatabase, + uDAMemDataTable, frxExportPDF, FactuGES_Intf, uDABin2DataStreamer; + +type + TRptAlbaranesProveedor = class(TDataModule) + DADSCabecera: TDADataSource; + DADSDetalles: TDADataSource; + frxRichObject1: TfrxRichObject; + frxBarCodeObject1: TfrxBarCodeObject; + frxOLEObject1: TfrxOLEObject; + frxCrossObject1: TfrxCrossObject; + frxCheckBoxObject1: TfrxCheckBoxObject; + frxGradientObject1: TfrxGradientObject; + frxChartObject1: TfrxChartObject; + frxDBCabecera: TfrxDBDataset; + frxDBDetalles: TfrxDBDataset; + frxReport: TfrxReport; + IBDatabase1: TIBDatabase; + IBTransaction1: TIBTransaction; + DataSource1: TDataSource; + DataSource3: TDataSource; + detalles: TIBQuery; + cabecera: TIBQuery; + detallesID: TIntegerField; + detallesID_ALBARAN: TIntegerField; + detallesPOSICION: TIntegerField; + detallesTIPO_DETALLE: TIBStringField; + detallesCONCEPTO: TIBStringField; + detallesCANTIDAD: TIntegerField; + detallesIMPORTE_UNIDAD: TIBBCDField; + detallesIMPORTE_TOTAL: TIBBCDField; + detallesREFERENCIA: TIBStringField; + tbl_Cabecera: TDAMemDataTable; + tbl_Detalles: TDAMemDataTable; + frxPDFExport1: TfrxPDFExport; + DABin2DataStreamer1: TDABin2DataStreamer; + schReport: TDASchema; + procedure DataModuleCreate(Sender: TObject); + procedure DataModuleDestroy(Sender: TObject); + procedure frxReportGetValue(const VarName: string; var Value: Variant); + private + FConnection: IDAConnection; + FImprimirPrecio : Boolean; + FImprimirRefProveedor : Boolean; + //Genera cada uno de los albaranes a imprimir + procedure _GenerarAlbaran(const AID: Integer); + public + function GenerarAlbaran(const AListaID : TIntegerArray; + const ImprimirPrecio: Boolean = True; + const ImprimirRefProveedor: Boolean = True): Binary; + function GenerarAlbaranEnPDF(const ListaID : TIntegerArray; + const ImprimirPrecio: Boolean = True; + const ImprimirRefProveedor: Boolean = True): Binary; + end; + +implementation + +{$R *.dfm} + +uses + uSistemaFunc, uDataModuleServer, schAlbaranesProveedorClient_Intf; + +const + rptInforme = 'InfAlbaranProveedor.fr3'; + + { Dataset names for schReport } + ds_InformeCabecera = 'Informe_Cabecera'; + ds_InformeDetalles = 'Informe_Detalles'; + + +{ TRptAlbaranesProveedor } + + +procedure TRptAlbaranesProveedor.DataModuleCreate(Sender: TObject); +begin + schReport.ConnectionManager := dmServer.ConnectionManager; + FConnection := dmServer.DarNuevaConexion; + frxReport.EngineOptions.NewSilentMode := simReThrow; + + frxDBCabecera.DataSource := DADSCabecera; + frxDBCabecera.CloseDataSource := False; + + frxDBDetalles.DataSource := DADSDetalles; + frxDBDetalles.CloseDataSource := False; +end; + +procedure TRptAlbaranesProveedor.DataModuleDestroy(Sender: TObject); +begin + tbl_Cabecera.Active := False; + tbl_Detalles.Active := False; +end; + +procedure TRptAlbaranesProveedor.frxReportGetValue(const VarName: string; + var Value: Variant); +begin + if VarName = 'ImprimirPrecio' then + Value := FImprimirPrecio; + if VarName = 'ImprimirRefProveedor' then + Value := FImprimirRefProveedor; +end; + +function TRptAlbaranesProveedor.GenerarAlbaran(const AListaID : TIntegerArray; + const ImprimirPrecio: Boolean = True; + const ImprimirRefProveedor: Boolean = True): Binary; +var + i: Integer; +begin + Result := Binary.Create; + FImprimirPrecio := ImprimirPrecio; + FImprimirRefProveedor := ImprimirRefProveedor; + try + //Vamos generando todos y cada uno de los albaranes recibidos + for i := 0 to AListaID.Count - 1 do + _GenerarAlbaran(AListaID.Items[i]); + frxReport.PreviewPages.SaveToStream(Result); + finally + end; +end; + +function TRptAlbaranesProveedor.GenerarAlbaranEnPDF(const ListaID: TIntegerArray; + const ImprimirPrecio: Boolean = True; + const ImprimirRefProveedor: Boolean = True): Binary; +var + i: Integer; +begin + Result := Binary.Create; + FImprimirPrecio := ImprimirPrecio; + FImprimirRefProveedor := ImprimirRefProveedor; + try + //Vamos generando todos y cada uno de los presupuestos recibidos + for i := 0 to ListaID.Count - 1 do + _GenerarAlbaran(ListaID.Items[i]); + + frxPDFExport1.Stream := Result; + frxReport.Export(frxPDFExport1) + finally + end; +end; + +procedure TRptAlbaranesProveedor._GenerarAlbaran(const AID: Integer); +var + AInforme: Variant; + +begin + FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + try + tbl_Cabecera.Active := False; + tbl_Detalles.Active := False; + + tbl_Cabecera.ParamByName('ID').AsInteger := AID; + tbl_Detalles.ParamByName('ID_ALBARAN').AsInteger := AID; + + tbl_Cabecera.Active := True; + tbl_Detalles.Active := True; + + AInforme := DarRutaFichero(DarRutaInformes, rptInforme, tbl_Cabecera.FieldByName('ID_EMPRESA').AsString); + if VarIsNull(AInforme) then + raise Exception.Create (('Error Servidor: _GenerarFactura, no encuentra informe ' + rptInforme)); + + frxReport.LoadFromFile(AInforme, True); + frxReport.PrepareReport(False); + finally + FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + end; +end; + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Reports/uRptWordAlbaranProveedor.dcu b/Source/Modulos/Albaranes de proveedor/Reports/uRptWordAlbaranProveedor.dcu new file mode 100644 index 0000000..c436c23 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Reports/uRptWordAlbaranProveedor.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Reports/uRptWordAlbaranProveedor.dfm b/Source/Modulos/Albaranes de proveedor/Reports/uRptWordAlbaranProveedor.dfm new file mode 100644 index 0000000..943dca0 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Reports/uRptWordAlbaranProveedor.dfm @@ -0,0 +1,541 @@ +object RptWordAlbaranProveedor: TRptWordAlbaranProveedor + OldCreateOrder = False + OnCreate = DataModuleCreate + Height = 223 + Width = 337 + object schReport: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Datasets = < + item + IsPublic = False + Params = < + item + Name = 'ID' + Value = '3' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'SELECT'#10' ALBARANES_PROVEEDOR.ID,'#10' ALBARANES_PROVEEDOR.ID_EMPRES' + + 'A,'#10' ALBARANES_PROVEEDOR.TIPO,'#10' ALBARANES_PROVEEDOR.REFERENCIA,' + + #10' ALBARANES_PROVEEDOR.FECHA_ALBARAN,'#10' ALBARANES_PROVEEDOR.OBSE' + + 'RVACIONES,'#10' CONTACTOS.NOMBRE,'#10' COALESCE(CONTACTOS_DIRECCIONES.' + + 'FAX, CONTACTOS.FAX) AS FAX,'#10' ALBARANES_PROVEEDOR.PERSONA_CONTAC' + + 'TO_PROV AS PERSONA_CONTACTO,'#10' PROVEEDORES_DATOS.CODIGO_ASIGNADO' + + ' AS CODIGO_CLIENTE,'#10' ALBARANES_PROVEEDOR.ID_ALMACEN,'#10' COALESCE' + + '(ALMACENES.CALLE, ALBARANES_PROVEEDOR.CALLE) AS CALLE,'#10' COALESC' + + 'E(ALMACENES.POBLACION, ALBARANES_PROVEEDOR.POBLACION) AS POBLACI' + + 'ON,'#10' COALESCE(ALMACENES.PROVINCIA, ALBARANES_PROVEEDOR.PROVINCI' + + 'A) AS PROVINCIA,'#10' COALESCE(ALMACENES.CODIGO_POSTAL, ALBARANES_P' + + 'ROVEEDOR.CODIGO_POSTAL) AS CODIGO_POSTAL,'#10' ALBARANES_PROVEEDOR.' + + 'PERSONA_CONTACTO AS ENTREGAR_A,'#10' ALBARANES_PROVEEDOR.IMPORTE_TO' + + 'TAL'#10'FROM'#10' ALBARANES_PROVEEDOR'#10' INNER JOIN CONTACTOS ON (CONTAC' + + 'TOS.ID = ALBARANES_PROVEEDOR.ID_PROVEEDOR)'#10' LEFT OUTER JOIN PRO' + + 'VEEDORES_DATOS ON (PROVEEDORES_DATOS.ID_PROVEEDOR = ALBARANES_PR' + + 'OVEEDOR.ID_PROVEEDOR)'#10' LEFT OUTER JOIN CONTACTOS_DIRECCIONES ON' + + ' (CONTACTOS_DIRECCIONES.ID = ALBARANES_PROVEEDOR.ID_DIRECCION)'#10' ' + + ' LEFT OUTER JOIN ALMACENES ON (ALMACENES.ID = ALBARANES_PROVEEDO' + + 'R.ID_ALMACEN)'#10'WHERE ALBARANES_PROVEEDOR.ID = :ID'#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'FAX' + TableField = 'FAX' + end + item + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'ID_ALMACEN' + TableField = 'ID_ALMACEN' + end + item + DatasetField = 'CODIGO_CLIENTE' + TableField = 'CODIGO_CLIENTE' + end + item + DatasetField = 'TIPO' + TableField = 'TIPO' + end + item + DatasetField = 'FECHA_ALBARAN' + TableField = 'FECHA_ALBARAN' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end + item + DatasetField = 'ENTREGAR_A' + TableField = 'ENTREGAR_A' + end> + end> + Name = 'Informe_Cabecera' + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_ALBARAN' + DataType = datDateTime + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'FAX' + DataType = datString + Size = 25 + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + end + item + Name = 'ENTREGAR_A' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + ReadOnly = True + end + item + IsPublic = False + Params = < + item + Name = 'ID_ALBARAN' + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + SQL = + 'SELECT DET.ID, DET.ID_ALBARAN,'#10' DET.POSICION, DET.TIPO_DET' + + 'ALLE,'#10' ARTICULOS.REFERENCIA, F_RTFTOTEXT(CONCEPTO) as CONC' + + 'EPTO, DET.CANTIDAD,'#10' DET.UNIDAD_MEDIDA, DET.IMPORTE_UNIDAD' + + ' - (DET.IMPORTE_UNIDAD * (COALESCE(DET.DESCUENTO,0) / 100)) as I' + + 'MPORTE_UNIDAD, DET.IMPORTE_TOTAL,'#10' ARTICULOS_PROVEEDORES.R' + + 'EFERENCIA_PROV as REFERENCIA_PROVEEDOR,'#10' ARTICULOS.REFEREN' + + 'CIA_FABR as REFERENCIA_FABRICANTE'#10'FROM ALBARANES_PROVEEDOR_DETAL' + + 'LES DET'#10'LEFT OUTER JOIN ARTICULOS ON (DET.ID_ARTICULO = ARTICULO' + + 'S.ID)'#10'LEFT JOIN ALBARANES_PROVEEDOR ON (ALBARANES_PROVEEDOR.ID =' + + ' DET.ID_ALBARAN)'#10'LEFT JOIN ARTICULOS_PROVEEDORES ON ((ARTICULOS_' + + 'PROVEEDORES.ID_ARTICULO = ARTICULOS.ID) AND (ARTICULOS_PROVEEDOR' + + 'ES.ID_PROVEEDOR = ALBARANES_PROVEEDOR.ID_PROVEEDOR))'#10'WHERE DET.I' + + 'D_ALBARAN = :ID_ALBARAN AND DET.VISIBLE = 1 AND {Where}'#10'ORDER BY' + + ' DET.ID_ALBARAN, DET.POSICION;'#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_ALBARAN' + TableField = 'ID_ALBARAN' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + end + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'UNIDAD_MEDIDA' + TableField = 'UNIDAD_MEDIDA' + end + item + DatasetField = 'IMPORTE_UNIDAD' + TableField = 'IMPORTE_UNIDAD' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = 'REFERENCIA_PROVEEDOR' + end + item + DatasetField = 'REFERENCIA_FABRICANTE' + TableField = 'REFERENCIA_FABRICANTE' + end> + end> + Name = 'Informe_Detalles' + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_ALBARAN' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + end + item + Name = 'CANTIDAD' + DataType = datFloat + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datFloat + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + end + item + Name = 'REFERENCIA_FABRICANTE' + DataType = datString + Size = 255 + end> + ReadOnly = True + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 16 + end + object DataDictionary: TDADataDictionary + Fields = <> + Left = 46 + Top = 142 + end + object DABin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 80 + end + object tbl_Cabecera: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_ALBARAN' + DataType = datDateTime + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'FAX' + DataType = datString + Size = 25 + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + end + item + Name = 'ENTREGAR_A' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + Params = < + item + Name = 'ID' + Value = '3' + ParamType = daptInput + end> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer + LogicalName = 'Informe_Cabecera' + IndexDefs = <> + Left = 168 + Top = 16 + end + object tbl_Detalles: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_ALBARAN' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + end + item + Name = 'CANTIDAD' + DataType = datFloat + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datFloat + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + end + item + Name = 'REFERENCIA_FABRICANTE' + DataType = datString + Size = 255 + end> + Params = < + item + Name = 'ID_ALBARAN' + Value = '' + ParamType = daptInput + end> + MasterParamsMappings.Strings = ( + 'ID_PRESUPUESTO=ID_PRESUPUESTO') + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer + LogicalName = 'Informe_Detalles' + IndexDefs = <> + Left = 264 + Top = 16 + end + object tbl_Empresa: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = < + item + Name = 'ID' + Value = '31' + ParamType = daptInput + end> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LogicalName = 'Empresa' + IndexDefs = <> + Left = 168 + Top = 80 + end +end diff --git a/Source/Modulos/Albaranes de proveedor/Reports/uRptWordAlbaranProveedor.pas b/Source/Modulos/Albaranes de proveedor/Reports/uRptWordAlbaranProveedor.pas new file mode 100644 index 0000000..c87fa38 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Reports/uRptWordAlbaranProveedor.pas @@ -0,0 +1,295 @@ +unit uRptWordAlbaranProveedor; + +interface + +uses + SysUtils, Classes, AHWord97, IB, IBCustomDataSet, IBDatabase, + Word2000, uDAInterfaces, uDADataStreamer, uDABin2DataStreamer, uDAClasses, + uDAScriptingProvider, uDADataTable, uDAMemDataTable; + +type + TRptWordAlbaranProveedor = class(TDataModule) + DABin2DataStreamer: TDABin2DataStreamer; + tbl_Cabecera: TDAMemDataTable; + tbl_Detalles: TDAMemDataTable; + tbl_Empresa: TDAMemDataTable; + schReport: TDASchema; + DataDictionary: TDADataDictionary; + procedure DataModuleCreate(Sender: TObject); + private + FConnection: IDAConnection; + FPlantilla : string; + FWordApp : TWordApp; + FDocumento : TWordDoc; + FCodigoAlbaran : string; + FNombreFichero : String; + + function Generar : Boolean; + function RellenarDatosAlbaran : Boolean; + function RellenarDatosDetalle : Boolean; + procedure _GenerarAlbaran(const AID: String); + public + ImprimirPrecio : Boolean; + ImprimirRefProveedor : Boolean; + function Exportar(Codigo, Fichero : String): Boolean; + constructor Create (AOwner : TComponent); override; + destructor Destroy; override; + end; + +implementation + +{ TRptWordAlbaranProveedor } + +{$R *.dfm} + +uses + Windows, Variants, Dialogs, uDataModuleServer, uStringsUtils, uSistemaFunc, + srvEmpresas_Impl, uROTypes, uROClasses; + +const + rptInforme = 'AlbaranProveedor.rdx'; + +constructor TRptWordAlbaranProveedor.Create(AOwner: TComponent); +begin + inherited; + ImprimirPrecio := False; + ImprimirRefProveedor := False; + FDocumento := NIL; +end; + +destructor TRptWordAlbaranProveedor.Destroy; +begin + if FDocumento <> NIL then + FDocumento.Free; + FDocumento := NIL; + inherited; +end; + +function TRptWordAlbaranProveedor.Exportar(Codigo, Fichero: String): Boolean; +begin + if EsCadenaVacia(Fichero) then + begin + Result := False; + raise Exception.Create('Falta indicar el fichero donde se exportar el listado.'); + end; + + FNombreFichero := Fichero; + FCodigoAlbaran := Codigo; + _GenerarAlbaran(Codigo); + Result := True; +end; + +procedure TRptWordAlbaranProveedor.DataModuleCreate(Sender: TObject); +begin + schReport.ConnectionManager := dmServer.ConnectionManager; + FConnection := dmServer.DarNuevaConexion; +end; + +function TRptWordAlbaranProveedor.Generar : Boolean; +begin + FWordApp := TWordApp.Create (False, False); + with FWordApp do + begin + Visible := False; + ScreenUpdating := False; + end; + + FDocumento := TWordDoc.CreateNewDoc(FWordApp, FPlantilla); + FWordApp.SaveActiveDocAs(FNombreFichero); + try + if not RellenarDatosAlbaran then + RaiseError('Se producido un error al generar la cabecera en MS Word.'); + + if not RellenarDatosDetalle then + RaiseError('Se producido un error al generar el informe en MS Word.'); + + FWordApp.CloseApp(wdSaveChanges); + Result := True; + finally + FDocumento := NIL; + FWordApp := NIL; + end; +end; + + +function TRptWordAlbaranProveedor.RellenarDatosDetalle : Boolean; +var + numRows, numCols, mergesplit : OleVariant; + MaxCols, iRowCount : Integer; + ACantidad: String; + AIndice: Integer; + AText : String; +begin + iRowCount := 2; + numrows := 2; + numcols := 1; + mergeSplit := False; + MaxCols := 12; + + with FDocumento.Document.Tables.Item(1), tbl_Detalles do + begin + tbl_Detalles.First; + while not tbl_Detalles.EOF do + begin + Rows.Item (iRowCount).Cells.Split (numRows, numCols, mergesplit); + + if ImprimirRefProveedor then + Cell(iRowCount, 1).Range.Text := FieldByName('REFERENCIA_PROVEEDOR').AsString; + + Cell(iRowCount, 2).Range.Text := FieldByName('REFERENCIA_FABRICANTE').AsString; + Cell(iRowCount, 3).Range.Text := FieldByName('CONCEPTO').AsString; + + ACantidad := FloatToStr(FieldByName('CANTIDAD').AsFloat); + AIndice := Pos(',', ACantidad); + if AIndice > 0 then + AText := FormatFloat('#,0.00', FieldByName('CANTIDAD').AsFloat) + else + AText := FormatFloat('#,0.##', FieldByName('CANTIDAD').AsFloat); + + Cell(iRowCount, 4).Range.Text := AText + ' ' + FieldByName('UNIDAD_MEDIDA').AsString; + + if ImprimirPrecio + and (FieldByName('IMPORTE_UNIDAD').AsFloat <> 0) then + Cell(iRowCount, 5).Range.Text := FormatFloat(DISPLAY_EUROS2, FieldByName('IMPORTE_UNIDAD').AsFloat) + else + Cell(iRowCount, 5).Range.Text := ''; + + if ImprimirPrecio + and (FieldByName('IMPORTE_TOTAL').AsFloat <> 0) then + Cell(iRowCount, 6).Range.Text := FormatFloat(DISPLAY_EUROS2, FieldByName('IMPORTE_TOTAL').AsFloat) + else + Cell(iRowCount, 6).Range.Text := ''; + + Next; + Inc (iRowCount); + end; + + Rows.Item(iRowCount).Delete; + + {while iRowCount <= MaxCols do + begin + Rows.Item (iRowCount).Cells.Split (numRows, numCols, mergesplit); + inc (iRowCount); + end;} + end; + Result := True; +end; + +function TRptWordAlbaranProveedor.RellenarDatosAlbaran : Boolean; +var + DireccionEntrega : String; +// LinkToFile, SaveWithDocument, _Range : OleVariant; +// Imagen : InlineShape; + +begin + + //PARA DIBUJAR EL LOGOTIPO MULTIEMPRESA + {if (EmpresaActiva.Logotipo <> Nil) then + begin + //Activamos cabecera + FWordApp.Application.ActiveWindow.ActivePane.View.SeekView := wdSeekCurrentPageHeader; + LinkToFile := False; + SaveWithDocument := True; + _Range := EmptyParam; + FicheroTemporal := DarFicheroTemporal; + EmpresaActiva.Logotipo.SaveToFile (FicheroTemporal); + Imagen := FWordApp.Application.ActiveWindow.ActivePane.Selection.InlineShapes.AddPicture(ficherotemporal, LinkToFile, SaveWithDocument, _Range); + + //Formateamos imagen + if ((Imagen.Get_Width > ANCHO_LOGO_INF)) then + begin + Imagen.Set_Height(((ANCHO_LOGO_INF * Imagen.Get_Height) /Imagen.Get_Width)); + Imagen.Set_Width(ANCHO_LOGO_INF); + end; + end;} + + with FDocumento, tbl_Cabecera do + begin + if FieldByName('TIPO').AsString = 'D' then + ReplaceBookmark('TituloDocumento', 'ORDEN DE DEVOLUCIN'); + + + ReplaceBookmark('CodigoAlbaran', FieldByName('REFERENCIA').AsString); + ReplaceBookmark('FechaAlbaran', FieldByName('FECHA_ALBARAN').AsString); + + // En la direccin mostrar aquellos campos que estn rellenos. + DireccionEntrega := ''; + if not EsCadenaVacia(FieldByName('CALLE').AsString) then + DireccionEntrega := DireccionEntrega + FieldByName('CALLE').AsString; + if not EsCadenaVacia(FieldByName('CODIGO_POSTAL').AsString) then + DireccionEntrega := DireccionEntrega + ', ' + FieldByName('CODIGO_POSTAL').AsString; + if not EsCadenaVacia(FieldByName('POBLACION').AsString) then + DireccionEntrega := DireccionEntrega + ', ' + FieldByName('POBLACION').AsString; + if not EsCadenaVacia(FieldByName('PROVINCIA').AsString) then + DireccionEntrega := DireccionEntrega + ', ' + FieldByName('PROVINCIA').AsString; + ReplaceBookmark('LugarEntrega', DireccionEntrega); + + { ReplaceBookmark('LugarEntrega', FieldByName('CALLEALMACEN').AsString + ' ' + + FieldByName('NUMEROALMACEN').AsString + ', ' + FieldByName('PISOALMACEN').AsString + ', ' + + FieldByName('CODIGOPOSTALALMACEN').AsString + ' ' + FieldByName('POBLACIONALMACEN').AsString + ', ' + FieldByName('PROVINCIAALMACEN').AsString);} + +// ReplaceBookmark('PersonaEntrega', FieldByName('ENTREGAR_A').AsString); + +{ if FieldByName('FECHA_ENTREGA').IsNull then + ReplaceBookmark('FechaEntrega', '') + else + ReplaceBookmark('FechaEntrega', 'FECHA DE ENTREGA PREVISTA: ' + FieldByName('FECHA_ENTREGA').AsString);} + + ReplaceBookmark('NombreProveedor', FieldByName('NOMBRE').AsString); + ReplaceBookmark('FaxProveedor', FieldByName('FAX').AsString); + ReplaceBookmark('PersonaContactoProveedor', FieldByName('PERSONA_CONTACTO').AsString); + ReplaceBookmark('CodigoClienteProveedor', FieldByName('CODIGO_CLIENTE').AsString); + + if ImprimirPrecio then + ReplaceBookmark('ImporteTotal', FormatFloat(DISPLAY_EUROS2, FieldByName('IMPORTE_TOTAL').AsFloat)) + else + ReplaceBookmark('ImporteTotal', ''); + + ReplaceBookmark('NotasAlbaran', FieldByName('OBSERVACIONES').AsString); + + ReplaceBookmark('NombreEmpresa', tbl_Empresa.FieldByName('NOMBRE').AsString); + ReplaceBookmark('NombreEmpresa2', tbl_Empresa.FieldByName('NOMBRE').AsString); + ReplaceBookmark('CifEmpresa', tbl_Empresa.FieldByName('NIF_CIF').AsString); + ReplaceBookmark('DireccionEmpresa', + Format('%s. %s %s', [tbl_Empresa.FieldByName('CALLE').AsString, + tbl_Empresa.FieldByName('CODIGO_POSTAL').AsString, tbl_Empresa.FieldByName('POBLACION').AsString])); + ReplaceBookmark('TelefonoEmpresa', tbl_Empresa.FieldByName('TELEFONO_1').AsString); + ReplaceBookmark('FaxEmpresa', tbl_Empresa.FieldByName('FAX').AsString); + ReplaceBookmark('CorreoEmpresa', tbl_Empresa.FieldByName('EMAIL_1').AsString); + end; + Result := True; +end; + +procedure TRptWordAlbaranProveedor._GenerarAlbaran(const AID: String); +var + ACopiaPlantilla : String; +begin + FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + try + tbl_Cabecera.ParamByName('ID').AsString := AID; + tbl_Detalles.ParamByName('ID_ALBARAN').AsString := AID; + + tbl_Cabecera.Active := True; + tbl_Detalles.Active := True; + + FPlantilla := DarRutaInformes + tbl_Cabecera.FieldByName('ID_EMPRESA').AsString + '\' + rptInforme; + FCodigoAlbaran := AID; + + if RecuperarEmpresa(tbl_Cabecera.FieldByName('ID_EMPRESA').AsInteger, tbl_Empresa) then + begin + ACopiaPlantilla := DarFicheroTemporal; + CopiarFichero(FPlantilla, ACopiaPlantilla); + FPlantilla := ACopiaPlantilla; + try + Generar; + finally + SysUtils.DeleteFile(ACopiaPlantilla); + end; + end; + finally + FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + end; +end; + + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Servidor/srvAlbaranesProveedor_Impl.dcu b/Source/Modulos/Albaranes de proveedor/Servidor/srvAlbaranesProveedor_Impl.dcu new file mode 100644 index 0000000..2016169 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Servidor/srvAlbaranesProveedor_Impl.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Servidor/srvAlbaranesProveedor_Impl.dfm b/Source/Modulos/Albaranes de proveedor/Servidor/srvAlbaranesProveedor_Impl.dfm new file mode 100644 index 0000000..68a9dc1 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Servidor/srvAlbaranesProveedor_Impl.dfm @@ -0,0 +1,1635 @@ +object srvAlbaranesProveedor: TsrvAlbaranesProveedor + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + ConnectionName = 'IBX' + ServiceSchema = schAlbaranesProveedor + ServiceDataStreamer = Bin2DataStreamer + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + Height = 208 + Width = 384 + object schAlbaranesProveedor: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DADataDictionary + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + Name = 'IBX' + SQL = + 'select ANO from'#10'(select distinct(substr(FECHA_ALBARAN, 1,4)) as ' + + 'ANO'#10'from albaranes_proveedor'#10'order by 1 desc)'#10#10'UNION ALL'#10#10'select' + + ' distinct '#39'Todos'#39' as ANO'#10'from empresas'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ANO' + TableField = 'ANO' + end> + end> + Name = 'ListaAnosAlbaranes' + Fields = < + item + Name = 'ANO' + DataType = datString + Size = 254 + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_ALBARANES_PROVEEDOR' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'ID_PROVEEDOR' + TableField = 'ID_PROVEEDOR' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'ID_DIRECCION' + TableField = 'ID_DIRECCION' + end + item + DatasetField = 'PERSONA_CONTACTO_PROV' + TableField = 'PERSONA_CONTACTO_PROV' + end + item + DatasetField = 'FECHA_ALBARAN' + TableField = 'FECHA_ALBARAN' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = 'REFERENCIA_PROVEEDOR' + end + item + DatasetField = 'TIPO' + TableField = 'TIPO' + end + item + DatasetField = 'ID_ALMACEN' + TableField = 'ID_ALMACEN' + end + item + DatasetField = 'TIPO_ALMACEN' + TableField = 'TIPO_ALMACEN' + end + item + DatasetField = 'NOMBRE_ALMACEN' + TableField = 'NOMBRE_ALMACEN' + end + item + DatasetField = 'ID_PEDIDO' + TableField = 'ID_PEDIDO' + end + item + DatasetField = 'REF_PED_PROVEEDOR' + TableField = 'REF_PED_PROVEEDOR' + end + item + DatasetField = 'ID_FACTURA' + TableField = 'ID_FACTURA' + end + item + DatasetField = 'REF_FACTURA' + TableField = 'REF_FACTURA' + end + item + DatasetField = 'REF_FACTURA_PROV' + TableField = 'REF_FACTURA_PROV' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end + item + DatasetField = 'TELEFONO' + TableField = 'TELEFONO' + end + item + DatasetField = 'IMPORTE_NETO' + TableField = 'IMPORTE_NETO' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IMPORTE_DESCUENTO' + TableField = 'IMPORTE_DESCUENTO' + end + item + DatasetField = 'BASE_IMPONIBLE' + TableField = 'BASE_IMPONIBLE' + end + item + DatasetField = 'IVA' + TableField = 'IVA' + end + item + DatasetField = 'IMPORTE_IVA' + TableField = 'IMPORTE_IVA' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'INCIDENCIAS' + TableField = 'INCIDENCIAS' + end + item + DatasetField = 'INCIDENCIAS_ACTIVAS' + TableField = 'INCIDENCIAS_ACTIVAS' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end + item + DatasetField = 'ID_FORMA_PAGO' + TableField = 'ID_FORMA_PAGO' + end + item + DatasetField = 'ID_ALBARAN' + TableField = 'ID_ALBARAN' + end + item + DatasetField = 'REFERENCIA_ALBARAN' + TableField = 'REFERENCIA_ALBARAN' + end> + end> + Name = 'AlbaranesProveedor' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALBARANES_PRO_ID' + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesProveedor_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_ID_EMPRESA' + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_ID_PROVEEDOR' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesProveedor_NOMBRE' + end + item + Name = 'ID_DIRECCION' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_ID_DIRECCION' + end + item + Name = 'PERSONA_CONTACTO_PROV' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesProveedor_PERSONA_CONTACTO_PROV' + end + item + Name = 'FECHA_ALBARAN' + DataType = datDateTime + DictionaryEntry = 'AlbaranesProveedor_FECHA_ALBARAN' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesProveedor_REFERENCIA' + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesProveedor_REFERENCIA_PROVEEDOR' + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + DictionaryEntry = 'AlbaranesProveedor_TIPO' + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_ID_ALMACEN' + end + item + Name = 'TIPO_ALMACEN' + DataType = datString + Size = 10 + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesProveedor_TIPO_ALMACEN' + end + item + Name = 'NOMBRE_ALMACEN' + DataType = datString + Size = 255 + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesProveedor_NOMBRE_ALMACEN' + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_ID_PEDIDO' + end + item + Name = 'REF_PED_PROVEEDOR' + DataType = datString + Size = 255 + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesProveedor_REF_PED_PROVEEDOR' + end + item + Name = 'ID_FACTURA' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_ID_FACTURA' + end + item + Name = 'REF_FACTURA' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesProveedor_REF_FACTURA' + end + item + Name = 'REF_FACTURA_PROV' + DataType = datString + Size = 255 + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesProveedor_REF_FACTURA_PROV' + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesProveedor_CALLE' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DictionaryEntry = 'AlbaranesProveedor_CODIGO_POSTAL' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesProveedor_POBLACION' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesProveedor_PROVINCIA' + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesProveedor_PERSONA_CONTACTO' + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + DictionaryEntry = 'AlbaranesProveedor_TELEFONO' + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + DictionaryEntry = 'AlbaranesProveedor_IMPORTE_NETO' + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + DictionaryEntry = 'AlbaranesProveedor_IMPORTE_PORTE' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DictionaryEntry = 'AlbaranesProveedor_DESCUENTO' + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + DictionaryEntry = 'AlbaranesProveedor_IMPORTE_DESCUENTO' + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + DictionaryEntry = 'AlbaranesProveedor_BASE_IMPONIBLE' + end + item + Name = 'IVA' + DataType = datFloat + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesProveedor_IVA' + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + DictionaryEntry = 'AlbaranesProveedor_IMPORTE_IVA' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DictionaryEntry = 'AlbaranesProveedor_IMPORTE_TOTAL' + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + DictionaryEntry = 'AlbaranesProveedor_OBSERVACIONES' + end + item + Name = 'INCIDENCIAS' + DataType = datMemo + DictionaryEntry = 'AlbaranesProveedor_INCIDENCIAS' + end + item + Name = 'INCIDENCIAS_ACTIVAS' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_INCIDENCIAS_ACTIVAS' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'AlbaranesProveedor_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'AlbaranesProveedor_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'AlbaranesProveedor_USUARIO' + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_ID_FORMA_PAGO' + end + item + Name = 'ID_ALBARAN' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_ID_ALBARAN' + end + item + Name = 'REFERENCIA_ALBARAN' + DataType = datString + Size = 255 + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesProveedor_REFERENCIA_ALBARAN' + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + SQL = + 'SELECT'#10' ALBARANES_PROVEEDOR_DETALLES.ID, ALBARANES_PROVEEDOR_' + + 'DETALLES.ID_ALBARAN,'#10' ALBARANES_PROVEEDOR_DETALLES.POSICION, ' + + 'ALBARANES_PROVEEDOR_DETALLES.TIPO_DETALLE,'#10' ALBARANES_PROVEED' + + 'OR_DETALLES.CONCEPTO, ALBARANES_PROVEEDOR_DETALLES.CANTIDAD,'#10' ' + + ' ALBARANES_PROVEEDOR_DETALLES.UNIDAD_MEDIDA, ALBARANES_PROVEEDOR' + + '_DETALLES.IMPORTE_UNIDAD,'#10' ALBARANES_PROVEEDOR_DETALLES.IMPOR' + + 'TE_TOTAL, ALBARANES_PROVEEDOR_DETALLES.VISIBLE,'#10#10' ALBARANES_P' + + 'ROVEEDOR_DETALLES.ID_ARTICULO, ALBARANES_PROVEEDOR_DETALLES.DESC' + + 'UENTO,'#10' ALBARANES_PROVEEDOR_DETALLES.IMPORTE_PORTE,'#10' ARTIC' + + 'ULOS.REFERENCIA, ARTICULOS_PROVEEDORES.REFERENCIA_PROV as REFERE' + + 'NCIA_PROVEEDOR,'#10' ALBARANES_PROVEEDOR_DETALLES.ID_PEDIDO,'#10' ' + + 'ARTICULOS.REFERENCIA_FABR as REFERENCIA_FABRICANTE'#10#10'FROM ALBARAN' + + 'ES_PROVEEDOR_DETALLES'#10'LEFT JOIN ARTICULOS ON ALBARANES_PROVEEDOR' + + '_DETALLES.ID_ARTICULO = ARTICULOS.ID'#10'LEFT JOIN ALBARANES_PROVEED' + + 'OR ON (ALBARANES_PROVEEDOR.ID = ALBARANES_PROVEEDOR_DETALLES.ID_' + + 'ALBARAN)'#10'LEFT JOIN ARTICULOS_PROVEEDORES ON ((ARTICULOS_PROVEEDO' + + 'RES.ID_ARTICULO = ARTICULOS.ID) AND (ARTICULOS_PROVEEDORES.ID_PR' + + 'OVEEDOR = ALBARANES_PROVEEDOR.ID_PROVEEDOR))'#10'WHERE {where}'#10'ORDER' + + ' BY POSICION;'#10#10#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_ALBARAN' + TableField = 'ALBARANES_PROVEEDOR_DETALLES.ID_ALBARAN' + SQLOrigin = 'ID_ALBARAN' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + end + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'UNIDAD_MEDIDA' + TableField = 'UNIDAD_MEDIDA' + end + item + DatasetField = 'IMPORTE_UNIDAD' + TableField = 'IMPORTE_UNIDAD' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'VISIBLE' + TableField = 'VISIBLE' + end + item + DatasetField = 'ID_ARTICULO' + TableField = 'ID_ARTICULO' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = 'REFERENCIA_PROVEEDOR' + end + item + DatasetField = 'ID_PEDIDO' + TableField = 'ID_PEDIDO' + end + item + DatasetField = 'REFERENCIA_FABRICANTE' + TableField = 'REFERENCIA_FABRICANTE' + end> + end> + Name = 'AlbaranesProveedor_Detalles' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALBARANES_PRO_DETALLES_ID' + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesProveedor_Detalles_ID' + InPrimaryKey = True + end + item + Name = 'ID_ALBARAN' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_Detalles_ID_ALBARAN' + end + item + Name = 'POSICION' + DataType = datInteger + DictionaryEntry = 'POSICIONCONCEPTO' + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + DictionaryEntry = 'AlbaranesProveedor_Detalles_TIPO_DETALLE' + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + DictionaryEntry = 'AlbaranesProveedor_Detalles_CONCEPTO' + end + item + Name = 'CANTIDAD' + DataType = datFloat + DictionaryEntry = 'CANTIDAD' + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + DictionaryEntry = 'AlbaranesProveedor_Detalles_IMPORTE_UNIDAD' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DictionaryEntry = 'AlbaranesProveedor_Detalles_IMPORTE_TOTAL' + end + item + Name = 'VISIBLE' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_Detalles_VISIBLE' + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_Detalles_ID_ARTICULO' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DictionaryEntry = 'AlbaranesProveedor_Detalles_DESCUENTO' + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + DictionaryEntry = 'AlbaranesProveedor_Detalles_IMPORTE_PORTE' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesProveedor_Detalles_REFERENCIA' + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesProveedor_Detalles_REFERENCIA_PROVEEDOR' + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + end + item + Name = 'REFERENCIA_FABRICANTE' + DataType = datString + Size = 255 + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'PERSONA_CONTACTO_PROV' + Value = '' + end + item + Name = 'ID_DIRECCION' + Value = '' + end + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALBARANES_PRO_ID' + Value = '' + end + item + Name = 'ID_EMPRESA' + Value = '' + end + item + Name = 'ID_PROVEEDOR' + Value = '' + end + item + Name = 'FECHA_ALBARAN' + Value = '' + end + item + Name = 'ID_PEDIDO' + Value = '' + end + item + Name = 'ID_FACTURA' + Value = '' + end + item + Name = 'TIPO' + Value = '' + end + item + Name = 'REFERENCIA' + Value = '' + end + item + Name = 'REFERENCIA_PROVEEDOR' + Value = '' + end + item + Name = 'REF_FACTURA_PROV' + Value = '' + end + item + Name = 'CALLE' + Value = '' + end + item + Name = 'CODIGO_POSTAL' + Value = '' + end + item + Name = 'POBLACION' + Value = '' + end + item + Name = 'PROVINCIA' + Value = '' + end + item + Name = 'PERSONA_CONTACTO' + Value = '' + end + item + Name = 'TELEFONO' + Value = '' + end + item + Name = 'BASE_IMPONIBLE' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'IMPORTE_DESCUENTO' + Value = '' + end + item + Name = 'IVA' + Value = '' + end + item + Name = 'IMPORTE_IVA' + Value = '' + end + item + Name = 'IMPORTE_TOTAL' + Value = '' + end + item + Name = 'OBSERVACIONES' + Value = '' + end + item + Name = 'INCIDENCIAS' + Value = '' + end + item + Name = 'INCIDENCIAS_ACTIVAS' + Value = '' + end + item + Name = 'FECHA_ALTA' + Value = '' + end + item + Name = 'FECHA_MODIFICACION' + Value = '' + end + item + Name = 'USUARIO' + Value = '' + end + item + Name = 'ID_ALBARAN' + Value = '' + end + item + Name = 'ID_ALMACEN' + Value = '' + end + item + Name = 'ID_FORMA_PAGO' + Value = '' + end + item + Name = 'IMPORTE_NETO' + Value = '' + end + item + Name = 'IMPORTE_PORTE' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ALBARANES_PROVEEDOR' + SQL = + 'INSERT INTO ALBARANES_PROVEEDOR ('#10' ID,'#10' ID_EMPRESA,'#10' ID' + + '_PROVEEDOR,'#10' ID_DIRECCION,'#10' PERSONA_CONTACTO_PROV,'#10' FEC' + + 'HA_ALBARAN,'#10' ID_PEDIDO,'#10' ID_FACTURA,'#10' TIPO,'#10' REFEREN' + + 'CIA,'#10' REFERENCIA_PROVEEDOR,'#10' REF_FACTURA_PROV,'#10' CALLE,'#10 + + ' CODIGO_POSTAL,'#10' POBLACION,'#10' PROVINCIA,'#10' PERSONA_CON' + + 'TACTO,'#10' TELEFONO,'#10' BASE_IMPONIBLE,'#10' DESCUENTO,'#10' IMPO' + + 'RTE_DESCUENTO,'#10' IVA,'#10' IMPORTE_IVA,'#10' IMPORTE_TOTAL,'#10' ' + + 'OBSERVACIONES,'#10' INCIDENCIAS,'#10' INCIDENCIAS_ACTIVAS,'#10' FEC' + + 'HA_ALTA,'#10' FECHA_MODIFICACION,'#10' USUARIO,'#10' ID_ALMACEN,'#10' ' + + ' ID_FORMA_PAGO,'#10' IMPORTE_NETO,'#10' IMPORTE_PORTE,'#10' ID_ALB' + + 'ARAN)'#10' VALUES ('#10' :ID,'#10' :ID_EMPRESA,'#10' :ID_PROVEEDOR,'#10' ' + + ' :ID_DIRECCION,'#10' :PERSONA_CONTACTO_PROV,'#10' :FECHA_ALBARAN,' + + #10' :ID_PEDIDO,'#10' :ID_FACTURA,'#10' :TIPO,'#10' :REFERENCIA,'#10' ' + + ' :REFERENCIA_PROVEEDOR,'#10' :REF_FACTURA_PROV,'#10' :CALLE,'#10' ' + + ':CODIGO_POSTAL,'#10' :POBLACION,'#10' :PROVINCIA,'#10' :PERSONA_CON' + + 'TACTO,'#10' :TELEFONO,'#10' :BASE_IMPONIBLE,'#10' :DESCUENTO,'#10' :' + + 'IMPORTE_DESCUENTO,'#10' :IVA,'#10' :IMPORTE_IVA,'#10' :IMPORTE_TOTA' + + 'L,'#10' :OBSERVACIONES,'#10' :INCIDENCIAS,'#10' :INCIDENCIAS_ACTIVA' + + 'S,'#10' :FECHA_ALTA,'#10' :FECHA_MODIFICACION,'#10' :USUARIO,'#10' :' + + 'ID_ALMACEN,'#10' :ID_FORMA_PAGO,'#10' :IMPORTE_NETO,'#10' :IMPORTE_' + + 'PORTE,'#10' :ID_ALBARAN);'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_AlbaranesProveedor' + end + item + Params = < + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ALBARANES_PROVEEDOR' + SQL = + 'DELETE '#10' FROM'#10' ALBARANES_PROVEEDOR'#10' WHERE'#10' (ID = :OLD_ID' + + ')' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_AlbaranesProveedor' + end + item + Params = < + item + Name = 'ID_ALBARAN' + Value = '' + end + item + Name = 'PERSONA_CONTACTO_PROV' + Value = '' + end + item + Name = 'ID_DIRECCION' + Value = '' + end + item + Name = 'ID' + Value = '' + end + item + Name = 'ID_EMPRESA' + Value = '' + end + item + Name = 'ID_PROVEEDOR' + Value = '' + end + item + Name = 'FECHA_ALBARAN' + Value = '' + end + item + Name = 'ID_PEDIDO' + Value = '' + end + item + Name = 'ID_FACTURA' + Value = '' + end + item + Name = 'TIPO' + Value = '' + end + item + Name = 'REFERENCIA' + Value = '' + end + item + Name = 'REFERENCIA_PROVEEDOR' + Value = '' + end + item + Name = 'REF_FACTURA_PROV' + Value = '' + end + item + Name = 'CALLE' + Value = '' + end + item + Name = 'CODIGO_POSTAL' + Value = '' + end + item + Name = 'POBLACION' + Value = '' + end + item + Name = 'PROVINCIA' + Value = '' + end + item + Name = 'PERSONA_CONTACTO' + Value = '' + end + item + Name = 'TELEFONO' + Value = '' + end + item + Name = 'BASE_IMPONIBLE' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'IMPORTE_DESCUENTO' + Value = '' + end + item + Name = 'IVA' + Value = '' + end + item + Name = 'IMPORTE_IVA' + Value = '' + end + item + Name = 'IMPORTE_TOTAL' + Value = '' + end + item + Name = 'OBSERVACIONES' + Value = '' + end + item + Name = 'INCIDENCIAS' + Value = '' + end + item + Name = 'INCIDENCIAS_ACTIVAS' + Value = '' + end + item + Name = 'FECHA_ALTA' + Value = '' + end + item + Name = 'FECHA_MODIFICACION' + Value = '' + end + item + Name = 'USUARIO' + Value = '' + end + item + Name = 'ID_ALMACEN' + Value = '' + end + item + Name = 'ID_FORMA_PAGO' + Value = '' + end + item + Name = 'IMPORTE_NETO' + Value = '' + end + item + Name = 'IMPORTE_PORTE' + Value = '' + end + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ALBARANES_PROVEEDOR' + SQL = + 'UPDATE ALBARANES_PROVEEDOR'#10' SET'#10' ID = :ID,'#10' ID_EMPRESA = ' + + ':ID_EMPRESA,'#10' ID_PROVEEDOR = :ID_PROVEEDOR,'#10' ID_DIRECCION ' + + '= :ID_DIRECCION,'#10' PERSONA_CONTACTO_PROV = :PERSONA_CONTACTO_P' + + 'ROV,'#10' FECHA_ALBARAN = :FECHA_ALBARAN,'#10' ID_PEDIDO = :ID_PED' + + 'IDO,'#10' ID_FACTURA = :ID_FACTURA,'#10' TIPO = :TIPO,'#10' REFEREN' + + 'CIA = :REFERENCIA,'#10' REFERENCIA_PROVEEDOR = :REFERENCIA_PROVEE' + + 'DOR,'#10' REF_FACTURA_PROV = :REF_FACTURA_PROV,'#10' CALLE = :CALL' + + 'E,'#10' CODIGO_POSTAL = :CODIGO_POSTAL,'#10' POBLACION = :POBLACIO' + + 'N,'#10' PROVINCIA = :PROVINCIA,'#10' PERSONA_CONTACTO = :PERSONA_C' + + 'ONTACTO,'#10' TELEFONO = :TELEFONO,'#10' BASE_IMPONIBLE = :BASE_IM' + + 'PONIBLE,'#10' DESCUENTO = :DESCUENTO,'#10' IMPORTE_DESCUENTO = :IM' + + 'PORTE_DESCUENTO,'#10' IVA = :IVA,'#10' IMPORTE_IVA = :IMPORTE_IVA,' + + #10' IMPORTE_TOTAL = :IMPORTE_TOTAL,'#10' OBSERVACIONES = :OBSERV' + + 'ACIONES,'#10' INCIDENCIAS = :INCIDENCIAS,'#10' INCIDENCIAS_ACTIVAS' + + ' = :INCIDENCIAS_ACTIVAS,'#10' FECHA_ALTA = :FECHA_ALTA,'#10' FECHA' + + '_MODIFICACION = :FECHA_MODIFICACION,'#10' USUARIO = :USUARIO,'#10' ' + + ' ID_ALMACEN = :ID_ALMACEN,'#10' ID_FORMA_PAGO = :ID_FORMA_PAGO,'#10' ' + + ' IMPORTE_NETO = :IMPORTE_NETO,'#10' IMPORTE_PORTE = :IMPORTE_PO' + + 'RTE,'#10' ID_ALBARAN = :ID_ALBARAN'#10' WHERE'#10' (ID = :OLD_ID);'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_AlbaranesProveedor' + end + item + Params = < + item + Name = 'CANTIDAD' + Value = '' + end + item + Name = 'UNIDAD_MEDIDA' + Value = '' + end + item + Name = 'POSICION' + Value = '' + end + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALBARANES_PRO_DETALLES_ID' + Value = '' + end + item + Name = 'TIPO_DETALLE' + Value = '' + end + item + Name = 'CONCEPTO' + Value = '' + end + item + Name = 'IMPORTE_UNIDAD' + Value = '' + end + item + Name = 'IMPORTE_TOTAL' + Value = '' + end + item + Name = 'VISIBLE' + Value = '' + end + item + Name = 'ID_ALBARAN' + Value = '' + end + item + Name = 'ID_ARTICULO' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'IMPORTE_PORTE' + Value = '' + end + item + Name = 'ID_PEDIDO' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ALBARANES_PROVEEDOR_DETALLES' + SQL = + 'INSERT'#10' INTO ALBARANES_PROVEEDOR_DETALLES'#10' (CANTIDAD, UNIDAD' + + '_MEDIDA, POSICION, ID, TIPO_DETALLE, CONCEPTO, IMPORTE_UNIDAD,'#10' ' + + ' IMPORTE_TOTAL, VISIBLE, ID_ALBARAN,'#10' ID_ARTICULO, DESCUE' + + 'NTO, IMPORTE_PORTE, ID_PEDIDO)'#10' VALUES'#10' (:CANTIDAD, :UNIDAD_' + + 'MEDIDA, :POSICION, :ID, :TIPO_DETALLE, :CONCEPTO,'#10' :IMPORTE_' + + 'UNIDAD, :IMPORTE_TOTAL, :VISIBLE, :ID_ALBARAN,'#10' :ID_ARTICULO' + + ', :DESCUENTO, :IMPORTE_PORTE, :ID_PEDIDO)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_AlbaranesProveedor_Detalles' + end + item + Params = < + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ALBARANES_PROVEEDOR_DETALLES' + SQL = + 'DELETE '#10' FROM'#10' ALBARANES_PROVEEDOR_DETALLES'#10' WHERE'#10' (ID ' + + '= :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_AlbaranesProveedor_Detalles' + end + item + Params = < + item + Name = 'CANTIDAD' + Value = '' + end + item + Name = 'UNIDAD_MEDIDA' + Value = '' + end + item + Name = 'POSICION' + Value = '' + end + item + Name = 'ID' + Value = '' + end + item + Name = 'TIPO_DETALLE' + Value = '' + end + item + Name = 'CONCEPTO' + Value = '' + end + item + Name = 'IMPORTE_UNIDAD' + Value = '' + end + item + Name = 'IMPORTE_TOTAL' + Value = '' + end + item + Name = 'VISIBLE' + Value = '' + end + item + Name = 'ID_ALBARAN' + Value = '' + end + item + Name = 'ID_ARTICULO' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'IMPORTE_PORTE' + Value = '' + end + item + Name = 'ID_PEDIDO' + Value = '' + end + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ALBARANES_PROVEEDOR_DETALLES' + SQL = + 'UPDATE ALBARANES_PROVEEDOR_DETALLES'#10' SET '#10' CANTIDAD = :CANTI' + + 'DAD, '#10' UNIDAD_MEDIDA = :UNIDAD_MEDIDA,'#10' POSICION = :POSICI' + + 'ON, '#10' ID = :ID, '#10' TIPO_DETALLE = :TIPO_DETALLE, '#10' CONCE' + + 'PTO = :CONCEPTO, '#10' IMPORTE_UNIDAD = :IMPORTE_UNIDAD, '#10' IMP' + + 'ORTE_TOTAL = :IMPORTE_TOTAL, '#10' VISIBLE = :VISIBLE, '#10' ID_AL' + + 'BARAN = :ID_ALBARAN,'#10' ID_ARTICULO = :ID_ARTICULO,'#10' DESCUEN' + + 'TO = :DESCUENTO,'#10' IMPORTE_PORTE = :IMPORTE_PORTE,'#10' ID_PEDI' + + 'DO = :ID_PEDIDO'#10' WHERE'#10' (ID = :OLD_ID)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_AlbaranesProveedor_Detalles' + end> + RelationShips = < + item + Name = 'FK_AlbaranesProveedor_Detalles' + MasterDatasetName = 'AlbaranesProveedor' + MasterFields = 'ID' + DetailDatasetName = 'AlbaranesProveedor_Detalles' + DetailFields = 'ID_ALBARAN' + RelationshipType = rtForeignKey + end> + UpdateRules = < + item + Name = 'Insert AlbaranesProveedor' + DoUpdate = False + DoDelete = False + DatasetName = 'AlbaranesProveedor' + FailureBehavior = fbRaiseException + end + item + Name = 'Insert AlbaranesProveedor_Detalles' + DoUpdate = False + DoDelete = False + DatasetName = 'AlbaranesProveedor_Detalles' + FailureBehavior = fbRaiseException + end + item + Name = 'Update AlbaranesProveedor' + DoInsert = False + DoDelete = False + DatasetName = 'AlbaranesProveedor' + FailureBehavior = fbRaiseException + end + item + Name = 'Update AlbaranesProveedor_Detalles' + DoInsert = False + DoDelete = False + DatasetName = 'AlbaranesProveedor_Detalles' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete AlbaranesProveedor_Detalles' + DoUpdate = False + DoInsert = False + DatasetName = 'AlbaranesProveedor_Detalles' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete AlbaranesProveedor' + DoUpdate = False + DoInsert = False + DatasetName = 'AlbaranesProveedor' + FailureBehavior = fbRaiseException + end> + Version = 0 + Left = 48 + Top = 24 + end + object bpAlbaranesProveedor: TDABusinessProcessor + Schema = schAlbaranesProveedor + InsertCommandName = 'Insert_AlbaranesProveedor' + DeleteCommandName = 'Delete_AlbaranesProveedor' + UpdateCommandName = 'Update_AlbaranesProveedor' + ReferencedDataset = 'AlbaranesProveedor' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 208 + Top = 24 + end + object bpAlbaranesProveedor_Detalles: TDABusinessProcessor + Schema = schAlbaranesProveedor + InsertCommandName = 'Insert_AlbaranesProveedor_Detalles' + DeleteCommandName = 'Delete_AlbaranesProveedor_Detalles' + UpdateCommandName = 'Update_AlbaranesProveedor_Detalles' + ReferencedDataset = 'AlbaranesProveedor_Detalles' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 208 + Top = 88 + end + object DADataDictionary: TDADataDictionary + Fields = < + item + Name = 'AlbaranesProveedor_ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALBARANES_PRO_ID' + Required = True + DisplayLabel = 'ID' + ServerAutoRefresh = True + end + item + Name = 'AlbaranesProveedor_ID_EMPRESA' + DataType = datInteger + DisplayLabel = 'ID_EMPRESA' + end + item + Name = 'AlbaranesProveedor_ID_CLIENTE' + DataType = datInteger + DisplayLabel = 'ID_CLIENTE' + end + item + Name = 'AlbaranesProveedor_NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Proveedor' + end + item + Name = 'AlbaranesProveedor_SITUACION' + DataType = datString + Size = 9 + DisplayLabel = 'Situaci'#243'n' + end + item + Name = 'AlbaranesProveedor_CALLE' + DataType = datString + Size = 255 + DisplayLabel = 'Calle' + end + item + Name = 'AlbaranesProveedor_CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#243'd. postal' + end + item + Name = 'AlbaranesProveedor_POBLACION' + DataType = datString + Size = 255 + DisplayLabel = 'Poblaci'#243'n' + end + item + Name = 'AlbaranesProveedor_PROVINCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Provincia' + end + item + Name = 'AlbaranesProveedor_PERSONA_CONTACTO' + DataType = datString + Size = 255 + DisplayLabel = 'Persona de contacto' + end + item + Name = 'AlbaranesProveedor_TELEFONO' + DataType = datString + Size = 25 + DisplayLabel = 'Tel'#233'fono' + end + item + Name = 'AlbaranesProveedor_OBSERVACIONES' + DataType = datMemo + DisplayLabel = 'Observaciones' + end + item + Name = 'AlbaranesProveedor_INCIDENCIAS' + DataType = datMemo + DisplayLabel = 'INCIDENCIAS' + end + item + Name = 'AlbaranesProveedor_INCIDENCIAS_ACTIVAS' + DataType = datInteger + DisplayLabel = 'INCIDENCIAS_ACTIVAS' + end + item + Name = 'AlbaranesProveedor_FECHA_ALTA' + DataType = datDateTime + DisplayLabel = 'FECHA_ALTA' + end + item + Name = 'AlbaranesProveedor_FECHA_MODIFICACION' + DataType = datDateTime + DisplayLabel = 'FECHA_MODIFICACION' + end + item + Name = 'AlbaranesProveedor_USUARIO' + DataType = datString + Size = 20 + DisplayLabel = 'USUARIO' + end + item + Name = 'AlbaranesProveedor_IMPORTE_NETO' + DataType = datCurrency + DisplayLabel = 'Importe neto' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_IMPORTE_PORTE' + DataType = datCurrency + DisplayLabel = 'Importe del porte' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_DESCUENTO' + DataType = datFloat + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_IMPORTE_DESCUENTO' + DataType = datCurrency + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_BASE_IMPONIBLE' + DataType = datCurrency + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_IVA' + DataType = datFloat + DisplayLabel = 'IVA' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_IMPORTE_IVA' + DataType = datCurrency + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_ID_FORMA_PAGO' + DataType = datInteger + DisplayLabel = 'ID_FORMA_PAGO' + end + item + Name = 'AlbaranesProveedor_Detalles_ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALBARANES_PRO_DETALLES_ID' + Required = True + DisplayLabel = 'ID' + ServerAutoRefresh = True + end + item + Name = 'AlbaranesProveedor_Detalles_ID_PEDIDO' + DataType = datInteger + DisplayLabel = 'ID_PEDIDO' + end + item + Name = 'AlbaranesProveedor_Detalles_TIPO_DETALLE' + DataType = datString + Size = 25 + DisplayLabel = 'TIPO_DETALLE' + end + item + Name = 'AlbaranesProveedor_Detalles_REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + end + item + Name = 'AlbaranesProveedor_Detalles_ID_ARTICULO' + DataType = datInteger + DisplayLabel = 'ID_ARTICULO' + end + item + Name = 'AlbaranesProveedor_Detalles_CONCEPTO' + DataType = datString + Size = 2000 + DisplayLabel = 'CONCEPTO' + end + item + Name = 'AlbaranesProveedor_Detalles_IMPORTE_UNIDAD' + DataType = datCurrency + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_Detalles_IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_Detalles_DESCUENTO' + DataType = datFloat + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_Detalles_IMPORTE_PORTE' + DataType = datCurrency + DisplayLabel = 'Importe porte' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_Detalles_VISIBLE' + DataType = datInteger + DisplayLabel = 'VISIBLE' + end + item + Name = 'AlbaranesProveedor_Detalles_REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. proveedor' + end + item + Name = 'AlbaranesProveedor_FECHA_ALBARAN' + DataType = datDateTime + DisplayLabel = 'Fecha albar'#225'n' + end + item + Name = 'AlbaranesProveedor_ID_PEDIDO' + DataType = datInteger + DisplayLabel = 'ID_PEDIDO' + end + item + Name = 'AlbaranesProveedor_ID_FACTURA' + DataType = datInteger + DisplayLabel = 'ID_FACTURA' + end + item + Name = 'AlbaranesProveedor_Detalles_ID_ALBARAN' + DataType = datInteger + DisplayLabel = 'ID_ALBARAN' + end + item + Name = 'AlbaranesProveedor_Detalles_Refresh_ID_ALBARAN' + DataType = datInteger + DisplayLabel = 'ID_ALBARAN' + end + item + Name = 'AlbaranesProveedor_Detalles_Refresh_DESCUENTO' + DataType = datFloat + DisplayLabel = 'DESCUENTO' + end + item + Name = 'AlbaranesProveedor_Detalles_Refresh_IMPORTE_PORTE' + DataType = datFloat + DisplayLabel = 'IMPORTE_PORTE' + end + item + Name = 'AlbaranesProveedor_Detalles_Refresh_REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'REFERENCIA_PROVEEDOR' + end + item + Name = 'AlbaranesProveedor_ID_ALMACEN' + DataType = datInteger + DisplayLabel = 'ID_ALMACEN' + end + item + Name = 'AlbaranesProveedor_FECHA_ENVIO' + DataType = datDateTime + DisplayLabel = 'Fecha de env'#237'o' + end + item + Name = 'AlbaranesProveedor_FECHA_RECEPCION' + DataType = datDateTime + DisplayLabel = 'Fecha de recepci'#243'n' + end + item + Name = 'AlbaranesProveedor_ID_PROVEEDOR' + DataType = datInteger + DisplayLabel = 'ID_PROVEEDOR' + end + item + Name = 'AlbaranesProveedor_NOMBRE_ALMACEN' + DataType = datString + Size = 255 + DisplayLabel = 'Almac'#233'n' + end + item + Name = 'AlbaranesProveedor_REF_PED_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'Ped. proveedor' + end + item + Name = 'AlbaranesProveedor_REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + ServerAutoRefresh = True + end + item + Name = 'AlbaranesProveedor_TIPO' + DataType = datString + Size = 1 + DisplayLabel = 'Tipo' + end + item + Name = 'AlbaranesProveedor_REF_FAC_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'REF_FAC_PROVEEDOR' + end + item + Name = 'AlbaranesProveedor_REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. provedor' + end + item + Name = 'AlbaranesProveedor_REF_FACTURA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia factura' + end + item + Name = 'AlbaranesProveedor_REF_FACTURA_PROV' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. factura prov' + end + item + Name = 'AlbaranesProveedor_ID_DIRECCION' + DataType = datInteger + DisplayLabel = 'ID_DIRECCION' + end + item + Name = 'AlbaranesProveedor_PERSONA_CONTACTO_PROV' + DataType = datString + Size = 255 + DisplayLabel = 'Contacto del proveedor' + end + item + Name = 'AlbaranesProveedor_TIPO_ALMACEN' + DataType = datString + Size = 10 + ServerAutoRefresh = True + end + item + Name = 'AlbaranesProveedor_ID_ALBARAN' + DataType = datInteger + end + item + Name = 'AlbaranesProveedor_REFERENCIA_ALBARAN' + DataType = datString + Size = 255 + end> + Left = 48 + Top = 128 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 80 + end +end diff --git a/Source/Modulos/Albaranes de proveedor/Servidor/srvAlbaranesProveedor_Impl.pas b/Source/Modulos/Albaranes de proveedor/Servidor/srvAlbaranesProveedor_Impl.pas new file mode 100644 index 0000000..cc059ea --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Servidor/srvAlbaranesProveedor_Impl.pas @@ -0,0 +1,143 @@ +unit srvAlbaranesProveedor_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} uDABusinessProcessor, uDABin2DataStreamer, uDADataStreamer, + uDAScriptingProvider, uDAClasses, + FactuGES_Intf, uDAInterfaces; + +type + { TsrvAlbaranesProveedor } + TsrvAlbaranesProveedor = class(TDataAbstractService, IsrvAlbaranesProveedor) + bpAlbaranesProveedor: TDABusinessProcessor; + bpAlbaranesProveedor_Detalles: TDABusinessProcessor; + Bin2DataStreamer: TDABin2DataStreamer; + schAlbaranesProveedor: TDASchema; + DADataDictionary: TDADataDictionary; + procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; + const IncludeSchema: Boolean; const MaxRecords: Integer); + procedure DARemoteServiceCreate(Sender: TObject); + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; + var aConnectionName: string); + protected + function GenerarInforme(const ListaID: TIntegerArray; + const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; + function GenerarInformeEnWord(const ID: Integer; + const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; + function GenerarInformeEnPDF(const ListaID: TIntegerArray; + const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; + end; + + + +implementation + +{$R *.dfm} +uses + Dialogs, + {Generated:} FactuGES_Invk, uDataModuleServer, uDatabaseUtils, + schAlbaranesProveedorClient_Intf, uRestriccionesUsuarioUtils, + uBizAlbaranProveedorServer, uRptAlbaranesProveedor_Server, + uRptWordAlbaranProveedor, uSistemaFunc; + +procedure Create_srvAlbaranesProveedor(out anInstance : IUnknown); +begin + anInstance := TsrvAlbaranesProveedor.Create(NIL); +end; + +{ srvAlbaranesProveedor } + +procedure TsrvAlbaranesProveedor.DARemoteServiceBeforeGetDatasetData( + const Dataset: IDADataset; const IncludeSchema: Boolean; + const MaxRecords: Integer); +begin +{ if DataSet.Name = nme_AlbaranesProveedor then + begin + { Aqu se asegura que el usuario slo accede a pedidos + de las empresas a las que tiene permiso para acceder + filtrando DataSet por ID_EMPRESA. } +{ FiltrarAccesoUsuario(Session, Connection, schAlbaranesProveedor, DataSet, fld_AlbaranesProveedorID_EMPRESA); + end; +} +end; + +procedure TsrvAlbaranesProveedor.DARemoteServiceCreate(Sender: TObject); +begin + //SessionManager := dmServer.SessionManager; + bpAlbaranesProveedor.BusinessRulesID := BIZ_SERVER_ALBARAN_PROVEEDOR; +end; + +procedure TsrvAlbaranesProveedor.DataAbstractServiceBeforeAcquireConnection(aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +function TsrvAlbaranesProveedor.GenerarInforme(const ListaID: TIntegerArray; + const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; +var + AReportGenerator : TRptAlbaranesProveedor; +begin + AReportGenerator := TRptAlbaranesProveedor.Create(nil); + try + Result := AReportGenerator.GenerarAlbaran(ListaID, + ImprimirPrecio, ImprimirRefProveedor); + finally + FreeAndNIL(AReportGenerator); + end; +end; + +function TsrvAlbaranesProveedor.GenerarInformeEnPDF(const ListaID: TIntegerArray; + const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; +var + AReportGenerator : TRptAlbaranesProveedor; +begin + AReportGenerator := TRptAlbaranesProveedor.Create(nil); + try + Result := AReportGenerator.GenerarAlbaranEnPDF(ListaID, + ImprimirPrecio, ImprimirRefProveedor); + finally + FreeAndNIL(AReportGenerator); + end; +end; + +function TsrvAlbaranesProveedor.GenerarInformeEnWord(const ID: Integer; + const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; +var + AReportGenerator : TRptWordAlbaranProveedor; + AFicheroTMP : TFileName; +begin + Result := NIL; + AFicheroTMP := DarFicheroTemporal; + AReportGenerator := TRptWordAlbaranProveedor.Create(nil); + try + AReportGenerator.ImprimirPrecio := ImprimirPrecio; + AReportGenerator.ImprimirRefProveedor := ImprimirRefProveedor; + if AReportGenerator.Exportar(IntToStr(ID), AFicheroTMP) then + begin + Result := Binary.Create; + Result.LoadFromFile(AFicheroTMP); + SysUtils.DeleteFile(AFicheroTMP) + end; + finally + FreeAndNIL(AReportGenerator); + end; +end; + +initialization + TROClassFactory.Create('srvAlbaranesProveedor', Create_srvAlbaranesProveedor, TsrvAlbaranesProveedor_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.bdsproj b/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.bdsproj new file mode 100644 index 0000000..13aa267 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + AlbaranesProveedor_view.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.cfg b/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.cfg new file mode 100644 index 0000000..45968c7 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.cfg @@ -0,0 +1,40 @@ +-$A8 +-$B- +-$C+ +-$D- +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L- +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$Y- +-$Z1 +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-$M16384,1048576 +-K$00400000 +-E"C:\Codigo\Output\Debug" +-LE"C:\Codigo\Output\Debug\Cliente" +-LN"C:\Codigo\Source\Modulos\Lib" +-U..\..\..\Lib;..\..\Lib;"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Imports";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\Indy10";"C:\Codigo Tecsitel\Lib";"C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK";"C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract";"C:\Codigo Tecsitel\Lib\CCPack";"C:\Codigo Tecsitel\Lib\CFPack";"C:\Codigo Tecsitel\Lib\GUISDK";"C:\Codigo Tecsitel\Lib\PluginSDK";"C:\Codigo Tecsitel\Lib\DevExpressVCL";"C:\Codigo Tecsitel\Lib\FastReport4";"C:\Codigo Tecsitel\Lib\JCL";"C:\Codigo Tecsitel\Lib\JVCL";"C:\Codigo Tecsitel\Lib\PngComponents";"C:\Codigo Tecsitel\Lib\cxIntl6";"C:\Codigo Tecsitel\Lib\cxIntlPrintSys3";"C:\Codigo Tecsitel\Lib\TB2k+TBX";"C:\Codigo Tecsitel\Lib\Mustangpeak\MPCommonLib";"C:\Codigo Tecsitel\Lib\Mustangpeak\EasyListview";"C:\Codigo Tecsitel\Lib\JSDialog";"C:\Codigo Tecsitel\Lib\UserControl";;"C:\Codigo Tecsitel\Source\Lib"; +-O..\..\..\Lib;..\..\Lib;"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Imports";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\Indy10";"C:\Codigo Tecsitel\Lib";"C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK";"C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract";"C:\Codigo Tecsitel\Lib\CCPack";"C:\Codigo Tecsitel\Lib\CFPack";"C:\Codigo Tecsitel\Lib\GUISDK";"C:\Codigo Tecsitel\Lib\PluginSDK";"C:\Codigo Tecsitel\Lib\DevExpressVCL";"C:\Codigo Tecsitel\Lib\FastReport4";"C:\Codigo Tecsitel\Lib\JCL";"C:\Codigo Tecsitel\Lib\JVCL";"C:\Codigo Tecsitel\Lib\PngComponents";"C:\Codigo Tecsitel\Lib\cxIntl6";"C:\Codigo Tecsitel\Lib\cxIntlPrintSys3";"C:\Codigo Tecsitel\Lib\TB2k+TBX";"C:\Codigo Tecsitel\Lib\Mustangpeak\MPCommonLib";"C:\Codigo Tecsitel\Lib\Mustangpeak\EasyListview";"C:\Codigo Tecsitel\Lib\JSDialog";"C:\Codigo Tecsitel\Lib\UserControl";;"C:\Codigo Tecsitel\Source\Lib"; +-I..\..\..\Lib;..\..\Lib;"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Imports";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\Indy10";"C:\Codigo Tecsitel\Lib";"C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK";"C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract";"C:\Codigo Tecsitel\Lib\CCPack";"C:\Codigo Tecsitel\Lib\CFPack";"C:\Codigo Tecsitel\Lib\GUISDK";"C:\Codigo Tecsitel\Lib\PluginSDK";"C:\Codigo Tecsitel\Lib\DevExpressVCL";"C:\Codigo Tecsitel\Lib\FastReport4";"C:\Codigo Tecsitel\Lib\JCL";"C:\Codigo Tecsitel\Lib\JVCL";"C:\Codigo Tecsitel\Lib\PngComponents";"C:\Codigo Tecsitel\Lib\cxIntl6";"C:\Codigo Tecsitel\Lib\cxIntlPrintSys3";"C:\Codigo Tecsitel\Lib\TB2k+TBX";"C:\Codigo Tecsitel\Lib\Mustangpeak\MPCommonLib";"C:\Codigo Tecsitel\Lib\Mustangpeak\EasyListview";"C:\Codigo Tecsitel\Lib\JSDialog";"C:\Codigo Tecsitel\Lib\UserControl";;"C:\Codigo Tecsitel\Source\Lib"; +-R..\..\..\Lib;..\..\Lib;"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Imports";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\Indy10";"C:\Codigo Tecsitel\Lib";"C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK";"C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract";"C:\Codigo Tecsitel\Lib\CCPack";"C:\Codigo Tecsitel\Lib\CFPack";"C:\Codigo Tecsitel\Lib\GUISDK";"C:\Codigo Tecsitel\Lib\PluginSDK";"C:\Codigo Tecsitel\Lib\DevExpressVCL";"C:\Codigo Tecsitel\Lib\FastReport4";"C:\Codigo Tecsitel\Lib\JCL";"C:\Codigo Tecsitel\Lib\JVCL";"C:\Codigo Tecsitel\Lib\PngComponents";"C:\Codigo Tecsitel\Lib\cxIntl6";"C:\Codigo Tecsitel\Lib\cxIntlPrintSys3";"C:\Codigo Tecsitel\Lib\TB2k+TBX";"C:\Codigo Tecsitel\Lib\Mustangpeak\MPCommonLib";"C:\Codigo Tecsitel\Lib\Mustangpeak\EasyListview";"C:\Codigo Tecsitel\Lib\JSDialog";"C:\Codigo Tecsitel\Lib\UserControl";;"C:\Codigo Tecsitel\Source\Lib"; +-GD diff --git a/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.cfg.bak b/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.cfg.bak new file mode 100644 index 0000000..5aa842f --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.cfg.bak @@ -0,0 +1,40 @@ +-$A8 +-$B- +-$C+ +-$D- +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L- +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$Y- +-$Z1 +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-$M16384,1048576 +-K$00400000 +-E"C:\Codigo Tecsitel\Output\Debug" +-LE"C:\Codigo Tecsitel\Output\Debug\Cliente" +-LN"C:\Codigo Tecsitel\Source\Modulos\Lib" +-U..\..\..\Lib;..\..\Lib;"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Imports";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\Indy10";"C:\Codigo Tecsitel\Lib";"C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK";"C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract";"C:\Codigo Tecsitel\Lib\CCPack";"C:\Codigo Tecsitel\Lib\CFPack";"C:\Codigo Tecsitel\Lib\GUISDK";"C:\Codigo Tecsitel\Lib\PluginSDK";"C:\Codigo Tecsitel\Lib\DevExpressVCL";"C:\Codigo Tecsitel\Lib\FastReport4";"C:\Codigo Tecsitel\Lib\JCL";"C:\Codigo Tecsitel\Lib\JVCL";"C:\Codigo Tecsitel\Lib\PngComponents";"C:\Codigo Tecsitel\Lib\cxIntl6";"C:\Codigo Tecsitel\Lib\cxIntlPrintSys3";"C:\Codigo Tecsitel\Lib\TB2k+TBX";"C:\Codigo Tecsitel\Lib\Mustangpeak\MPCommonLib";"C:\Codigo Tecsitel\Lib\Mustangpeak\EasyListview";"C:\Codigo Tecsitel\Lib\JSDialog";"C:\Codigo Tecsitel\Lib\UserControl";;"C:\Codigo Tecsitel\Source\Lib"; +-O..\..\..\Lib;..\..\Lib;"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Imports";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\Indy10";"C:\Codigo Tecsitel\Lib";"C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK";"C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract";"C:\Codigo Tecsitel\Lib\CCPack";"C:\Codigo Tecsitel\Lib\CFPack";"C:\Codigo Tecsitel\Lib\GUISDK";"C:\Codigo Tecsitel\Lib\PluginSDK";"C:\Codigo Tecsitel\Lib\DevExpressVCL";"C:\Codigo Tecsitel\Lib\FastReport4";"C:\Codigo Tecsitel\Lib\JCL";"C:\Codigo Tecsitel\Lib\JVCL";"C:\Codigo Tecsitel\Lib\PngComponents";"C:\Codigo Tecsitel\Lib\cxIntl6";"C:\Codigo Tecsitel\Lib\cxIntlPrintSys3";"C:\Codigo Tecsitel\Lib\TB2k+TBX";"C:\Codigo Tecsitel\Lib\Mustangpeak\MPCommonLib";"C:\Codigo Tecsitel\Lib\Mustangpeak\EasyListview";"C:\Codigo Tecsitel\Lib\JSDialog";"C:\Codigo Tecsitel\Lib\UserControl";;"C:\Codigo Tecsitel\Source\Lib"; +-I..\..\..\Lib;..\..\Lib;"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Imports";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\Indy10";"C:\Codigo Tecsitel\Lib";"C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK";"C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract";"C:\Codigo Tecsitel\Lib\CCPack";"C:\Codigo Tecsitel\Lib\CFPack";"C:\Codigo Tecsitel\Lib\GUISDK";"C:\Codigo Tecsitel\Lib\PluginSDK";"C:\Codigo Tecsitel\Lib\DevExpressVCL";"C:\Codigo Tecsitel\Lib\FastReport4";"C:\Codigo Tecsitel\Lib\JCL";"C:\Codigo Tecsitel\Lib\JVCL";"C:\Codigo Tecsitel\Lib\PngComponents";"C:\Codigo Tecsitel\Lib\cxIntl6";"C:\Codigo Tecsitel\Lib\cxIntlPrintSys3";"C:\Codigo Tecsitel\Lib\TB2k+TBX";"C:\Codigo Tecsitel\Lib\Mustangpeak\MPCommonLib";"C:\Codigo Tecsitel\Lib\Mustangpeak\EasyListview";"C:\Codigo Tecsitel\Lib\JSDialog";"C:\Codigo Tecsitel\Lib\UserControl";;"C:\Codigo Tecsitel\Source\Lib"; +-R..\..\..\Lib;..\..\Lib;"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Imports";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\Indy10";"C:\Codigo Tecsitel\Lib";"C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK";"C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract";"C:\Codigo Tecsitel\Lib\CCPack";"C:\Codigo Tecsitel\Lib\CFPack";"C:\Codigo Tecsitel\Lib\GUISDK";"C:\Codigo Tecsitel\Lib\PluginSDK";"C:\Codigo Tecsitel\Lib\DevExpressVCL";"C:\Codigo Tecsitel\Lib\FastReport4";"C:\Codigo Tecsitel\Lib\JCL";"C:\Codigo Tecsitel\Lib\JVCL";"C:\Codigo Tecsitel\Lib\PngComponents";"C:\Codigo Tecsitel\Lib\cxIntl6";"C:\Codigo Tecsitel\Lib\cxIntlPrintSys3";"C:\Codigo Tecsitel\Lib\TB2k+TBX";"C:\Codigo Tecsitel\Lib\Mustangpeak\MPCommonLib";"C:\Codigo Tecsitel\Lib\Mustangpeak\EasyListview";"C:\Codigo Tecsitel\Lib\JSDialog";"C:\Codigo Tecsitel\Lib\UserControl";;"C:\Codigo Tecsitel\Source\Lib"; +-GD diff --git a/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.dcu b/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.dcu new file mode 100644 index 0000000..afdbc95 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.dpk b/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.dpk new file mode 100644 index 0000000..df0a0bc --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.dpk @@ -0,0 +1,61 @@ +package AlbaranesProveedor_view; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + Base, + GUIBase, + ApplicationBase, + AlbaranesProveedor_model, + AlbaranesProveedor_controller, + Articulos_view, + Almacenes_model, + Almacenes_controller, + AlbProv_FacProv_relation, + PedProv_AlbProv_relation, + rtl, + vcl; + +contains + uAlbaranesProveedorViewRegister in 'uAlbaranesProveedorViewRegister.pas', + uEditorAlbaranesProveedor in 'uEditorAlbaranesProveedor.pas' {fEditorAlbaranesProveedor: TfEditorPedidosCliente}, + uViewAlbaranesProveedor in 'uViewAlbaranesProveedor.pas' {frViewAlbaranesProveedor: TFrame}, + uViewAlbaranProveedor in 'uViewAlbaranProveedor.pas' {frViewAlbaranProveedor: TFrame}, + uViewDetallesAlbaranProveedor in 'uViewDetallesAlbaranProveedor.pas' {frViewDetallesAlbaranProveedor: TFrame}, + uEditorAlbaranProveedor in 'uEditorAlbaranProveedor.pas' {fEditorAlbaranProveedor: TfEditorAlbaranCliente}, + uViewElegirArticulosAlbaranesProveedor in 'uViewElegirArticulosAlbaranesProveedor.pas' {frViewElegirArticulosAlbaranesProveedor: TFrame}, + uEditorElegirArticulosAlbaranProveedor in 'uEditorElegirArticulosAlbaranProveedor.pas' {fEditorElegirArticulosAlbaranProveedor: TfEditorElegirArticulosAlbaranProveedor}, + uViewDireccionEntregaAlbaranProv in 'uViewDireccionEntregaAlbaranProv.pas' {frViewDireccionEntregaAlbaranProv: TFrame}, + uEditorDireccionEntregaAlbaranProveedor in 'uEditorDireccionEntregaAlbaranProveedor.pas' {fEditorDireccionEntregaAlbaranProveedor: TfEditorDireccionEntregaAlbaranProveedor}, + uEditorElegirAlbaranesProveedor in 'uEditorElegirAlbaranesProveedor.pas' {fEditorElegirAlbaranesProveedor: TfEditorElegirAlbaranesProveedor}, + uEditorAlbaranesDevProveedor in 'uEditorAlbaranesDevProveedor.pas' {fEditorAlbaranesDevProveedor: TCustomEditor}, + uViewAlbaranDevProveedor in 'uViewAlbaranDevProveedor.pas' {frViewAlbaranDevProveedor: TCustomView}, + uEditorAlbaranDevProveedor in 'uEditorAlbaranDevProveedor.pas' {fEditorAlbaranDevProveedor: TCustomEditor}, + uViewAlbaranesDevProveedor in 'uViewAlbaranesDevProveedor.pas' {frViewAlbaranesDevProveedor: TCustomView}, + uEditorAlbaranesProveedorReport in 'uEditorAlbaranesProveedorReport.pas' {fEditorAlbaranesProveedorReport: TEditorAlbaranesProveedorReport}, + uViewDatosYSeleccionProveedorAlbaran in 'uViewDatosYSeleccionProveedorAlbaran.pas' {frViewDatosYSeleccionProveedorAlbaran: TCustomView}, + uDialogOpcionesImpresionAlbaranesProveedor in 'uDialogOpcionesImpresionAlbaranesProveedor.pas' {fDialogOpcionesImpresionAlbaranesProveedor: TfDialogOpcionesImpresionAlbaranesProveedor}; + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.dproj b/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.dproj new file mode 100644 index 0000000..7ba2c14 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.dproj @@ -0,0 +1,617 @@ + + + + {9e558626-cf49-4cff-a178-e12c186758ac} + AlbaranesProveedor_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\AlbaranesProveedor_view.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0AlbaranesProveedor_view.dpk + + + + + MainSource + + + + + + + + + + + + + + +
fDialogOpcionesImpresionAlbaranesProveedor
+ TfEditorElegirAlbaranesProveedor +
+ +
fEditorAlbaranDevProveedor
+ TCustomEditor +
+ +
fEditorAlbaranesDevProveedor
+ TCustomEditor +
+ +
fEditorAlbaranesProveedor
+ TfEditorPedidosCliente +
+ +
fEditorAlbaranesProveedorReport
+ TEditorAlbaranesProveedorReport +
+ +
fEditorAlbaranProveedor
+ TfEditorAlbaranCliente +
+ +
fEditorDireccionEntregaAlbaranProveedor
+ TfEditorDireccionEntregaAlbaranProveedor +
+ +
fEditorElegirAlbaranesProveedor
+ TfEditorElegirAlbaranesProveedor +
+ +
fEditorElegirArticulosAlbaranProveedor
+ TfEditorElegirArticulosAlbaranProveedor +
+ +
frViewAlbaranDevProveedor
+ TCustomView +
+ +
frViewAlbaranesDevProveedor
+ TCustomView +
+ +
frViewAlbaranesProveedor
+ TFrame +
+ +
frViewAlbaranProveedor
+ TFrame +
+ +
frViewDatosYSeleccionProveedorAlbaran
+ TCustomView +
+ +
frViewDetallesAlbaranProveedor
+ TFrame +
+ +
frViewDireccionEntregaAlbaranProv
+ TFrame +
+ +
frViewElegirArticulosAlbaranesProveedor
+ TFrame +
+ +
+
+ diff --git a/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.drc b/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.drc new file mode 100644 index 0000000..385e424 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.drc @@ -0,0 +1,33 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Albaranes de proveedor\Views\uViewAlbaranesProveedor.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de proveedor\Views\uDialogOpcionesImpresionAlbaranesProveedor.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de proveedor\Views\uEditorAlbaranesProveedor.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de proveedor\Views\uViewDetallesAlbaranProveedor.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de proveedor\Views\uViewDireccionEntregaAlbaranProv.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de proveedor\Views\uViewDatosYSeleccionProveedorAlbaran.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de proveedor\Views\uViewAlbaranProveedor.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de proveedor\Views\uEditorAlbaranProveedor.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de proveedor\Views\uViewElegirArticulosAlbaranesProveedor.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de proveedor\Views\uEditorElegirArticulosAlbaranProveedor.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de proveedor\Views\uEditorDireccionEntregaAlbaranProveedor.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de proveedor\Views\uEditorElegirAlbaranesProveedor.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de proveedor\Views\uViewAlbaranesDevProveedor.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de proveedor\Views\uEditorAlbaranesDevProveedor.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de proveedor\Views\uViewAlbaranDevProveedor.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de proveedor\Views\uEditorAlbaranDevProveedor.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de proveedor\Views\uEditorAlbaranesProveedorReport.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de proveedor\Views\AlbaranesProveedor_view.res */ +/* c:\temp\dtf209.tmp */ diff --git a/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.rc b/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.res b/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.res differ diff --git a/Source/Modulos/Albaranes de proveedor/Views/uAlbaranesProveedorViewRegister.dcu b/Source/Modulos/Albaranes de proveedor/Views/uAlbaranesProveedorViewRegister.dcu new file mode 100644 index 0000000..bfa7d03 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Views/uAlbaranesProveedorViewRegister.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Views/uAlbaranesProveedorViewRegister.pas b/Source/Modulos/Albaranes de proveedor/Views/uAlbaranesProveedorViewRegister.pas new file mode 100644 index 0000000..0d36f50 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uAlbaranesProveedorViewRegister.pas @@ -0,0 +1,41 @@ +unit uAlbaranesProveedorViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorAlbaranesProveedor, uEditorAlbaranProveedor, + uEditorElegirArticulosAlbaranProveedor, uEditorDireccionEntregaAlbaranProveedor, + uEditorElegirAlbaranesProveedor, uEditorAlbaranesDevProveedor, uEditorAlbaranDevProveedor, + uEditorAlbaranesProveedorReport; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorDireccionEntregaAlbaranProveedor, 'EditorDireccionEntregaAlbaranProveedor'); + EditorRegistry.RegisterClass(TfEditorAlbaranesProveedor, 'EditorAlbaranesProveedor'); + EditorRegistry.RegisterClass(TfEditorAlbaranesDevProveedor, 'EditorAlbaranesDevProveedor'); + EditorRegistry.RegisterClass(TfEditorAlbaranProveedor, 'EditorAlbaranProveedor'); + EditorRegistry.RegisterClass(TfEditorAlbaranDevProveedor, 'EditorAlbaranDevProveedor'); + EditorRegistry.RegisterClass(TfEditorElegirArticulosAlbaranProveedor, 'EditorElegirArticulosAlbaranesProveedor'); + EditorRegistry.RegisterClass(TfEditorElegirAlbaranesProveedor, 'EditorElegirAlbaranesProveedor'); + EditorRegistry.RegisterClass(TfEditorAlbaranesProveedorPreview, 'EditorAlbaranesProveedorPreview'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorDireccionEntregaAlbaranProveedor); + EditorRegistry.UnRegisterClass(TfEditorAlbaranesProveedor); + EditorRegistry.UnRegisterClass(TfEditorAlbaranesDevProveedor); + EditorRegistry.UnRegisterClass(TfEditorAlbaranProveedor); + EditorRegistry.UnRegisterClass(TfEditorAlbaranDevProveedor); + EditorRegistry.UnRegisterClass(TfEditorElegirArticulosAlbaranProveedor); + EditorRegistry.UnRegisterClass(TfEditorElegirAlbaranesProveedor); + EditorRegistry.UnRegisterClass(TfEditorAlbaranesProveedorPreview); +end; + +end. + diff --git a/Source/Modulos/Albaranes de proveedor/Views/uDialogOpcionesImpresionAlbaranesProveedor.dcu b/Source/Modulos/Albaranes de proveedor/Views/uDialogOpcionesImpresionAlbaranesProveedor.dcu new file mode 100644 index 0000000..3f6b3ca Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Views/uDialogOpcionesImpresionAlbaranesProveedor.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Views/uDialogOpcionesImpresionAlbaranesProveedor.dfm b/Source/Modulos/Albaranes de proveedor/Views/uDialogOpcionesImpresionAlbaranesProveedor.dfm new file mode 100644 index 0000000..fb61a46 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uDialogOpcionesImpresionAlbaranesProveedor.dfm @@ -0,0 +1,87 @@ +inherited fDialogOpcionesImpresionAlbaranesProveedor: TfDialogOpcionesImpresionAlbaranesProveedor + Caption = 'Opciones para albar'#225'n a proveedor' + ClientHeight = 239 + ClientWidth = 393 + ExplicitWidth = 399 + ExplicitHeight = 271 + PixelsPerInch = 96 + TextHeight = 13 + inherited Bevel2: TBevel + Width = 393 + ExplicitWidth = 393 + end + inherited Bevel3: TBevel + Top = 195 + Width = 393 + ExplicitTop = 195 + ExplicitWidth = 393 + end + inherited pnlBotones: TPanel + Top = 197 + Width = 393 + ExplicitTop = 197 + ExplicitWidth = 393 + inherited btnAceptar: TButton + Left = 229 + ExplicitLeft = 229 + end + inherited btnCancelar: TButton + Left = 308 + ExplicitLeft = 308 + end + end + inherited pnlHeader: TPanel + Width = 393 + ExplicitWidth = 393 + inherited lblInstruccion: TLabel + Width = 343 + Margins.Bottom = 10 + Caption = 'Indique las siguiente opciones para el albar'#225'n de proveedor:' + ExplicitWidth = 340 + end + inherited Label2: TLabel + Top = 31 + Width = 318 + Height = 25 + Visible = False + ExplicitTop = 31 + end + end + inherited pnlCuerpo: TPanel + Width = 393 + Height = 129 + ExplicitWidth = 393 + ExplicitHeight = 129 + object cbVerPrecios: TCheckBox + AlignWithMargins = True + Left = 50 + Top = 29 + Width = 415 + Height = 17 + Caption = 'Mostrar los precios en los conceptos' + Checked = True + State = cbChecked + TabOrder = 0 + end + object cbVerRefProveedor: TCheckBox + AlignWithMargins = True + Left = 50 + Top = 52 + Width = 441 + Height = 17 + Caption = 'Mostrar las referencias de proveedor de los conceptos' + Checked = True + State = cbChecked + TabOrder = 1 + end + end + inherited ActionList1: TActionList + Top = 16 + inherited actAceptar: TAction + OnExecute = actAceptarExecute + end + inherited actCancelar: TAction + OnExecute = actCancelarExecute + end + end +end diff --git a/Source/Modulos/Albaranes de proveedor/Views/uDialogOpcionesImpresionAlbaranesProveedor.pas b/Source/Modulos/Albaranes de proveedor/Views/uDialogOpcionesImpresionAlbaranesProveedor.pas new file mode 100644 index 0000000..6aa590e --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uDialogOpcionesImpresionAlbaranesProveedor.pas @@ -0,0 +1,59 @@ +unit uDialogOpcionesImpresionAlbaranesProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uDialogBase, ActnList, StdCtrls, ExtCtrls; + +type + TfDialogOpcionesImpresionAlbaranesProveedor = class(TfDialogBase) + cbVerPrecios: TCheckBox; + cbVerRefProveedor: TCheckBox; + procedure actAceptarExecute(Sender: TObject); + procedure actCancelarExecute(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + + function ElegirOpcionesImpresionAlbaranProveedor(var AVerPrecios : Boolean; var AVerRefProveedor : Boolean): Boolean; + +implementation + +{$R *.dfm} + +function ElegirOpcionesImpresionAlbaranProveedor(var AVerPrecios : Boolean; var AVerRefProveedor : Boolean): Boolean; +var + AEditor : TfDialogOpcionesImpresionAlbaranesProveedor; +begin + AEditor := TfDialogOpcionesImpresionAlbaranesProveedor.Create(NIL); + try + AEditor.cbVerPrecios.Checked := AVerPrecios; + AEditor.cbVerRefProveedor.Checked := AVerRefProveedor; + + Result := (AEditor.ShowModal = mrOk); + if Result then + begin + AVerPrecios := AEditor.cbVerPrecios.Checked; + AVerRefProveedor := AEditor.cbVerRefProveedor.Checked; + end; + finally + AEditor.Release; + end; +end; + +procedure TfDialogOpcionesImpresionAlbaranesProveedor.actAceptarExecute(Sender: TObject); +begin + inherited; + ModalResult := mrOk +end; + +procedure TfDialogOpcionesImpresionAlbaranesProveedor.actCancelarExecute(Sender: TObject); +begin + inherited; + ModalResult := mrCancel; +end; + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranDevProveedor.dcu b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranDevProveedor.dcu new file mode 100644 index 0000000..3c28efb Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranDevProveedor.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranDevProveedor.dfm b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranDevProveedor.dfm new file mode 100644 index 0000000..b2c73a2 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranDevProveedor.dfm @@ -0,0 +1,216 @@ +inherited fEditorAlbaranDevProveedor: TfEditorAlbaranDevProveedor + Caption = 'Nueva orden de devoluci'#243'n de proveedor' + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + inherited Image1: TImage + Picture.Data = { + 0B546478504E47496D61676589504E470D0A1A0A0000000D4948445200000018 + 000000180806000000E0773DF8000000017352474200AECE1CE9000000046741 + 4D410000B18F0BFC6105000000206348524D00007A26000080840000FA000000 + 80E8000075300000EA6000003A98000017709CBA513C000002F049444154484B + B5965B4854511486D7786348530B45CAECA2946056265156965254820F41E44B + 2F459787822C7BE8A57A30AA07C910349DA1088B082B485249B4902043492AC3 + D2F23A8D638D393A25669A97BFBD8EECE9343367668C3AB0389C3DE7FCDFBAEC + B5F6E800D07FBD1820ED766523FE95494D87382FB0F8DF5C939353181F9FC4E8 + E84FC5D6EE3ACA328AB65B406A4E1DD4E609AA7E6F78640C85B7AABD037C8D82 + 3D6740BAC1044A32C0FE6DD43780BB089CD7F899D3C2771667B30D8DF806F014 + C1F4D4342626A6F0636C42C937A7853D6771AB6DD837803B6FBDAD7104BD56BB + EF0019F66CEEA6BE41DF01BE165ABEC711769B6DB30368A5452DCAEFF0C5F70E + D3C0EC005A51149C48C7C5D3A1301C208F76366BDBEF31A1EE64B557EE1A8EC5 + BBEAF5F8FE9C60AF23F457137ACB099D6584D652C26BC30CD82BC05D04FCA1FD + 11C17C2A142D3951303FFC53FC5531A12C3304E5497AE4A5AC748D4076A7CCAB + 3A0216BF9E43A84C254C6F0A01B292716FF74218B367D66F1EF2434572309EC6 + 84A03061097233525C01B23BB5BCE7B4988B089624822D418791EDB1683A1881 + 866C3FBC5C35077591FEB89CBC02B5973452C4DD296BE00C9179E5DCE6A5AD41 + CBD200B4C510DE2784A131468FC7F375C85B17AF886B02B8F5B5B62703380269 + CD674441A3FDF02C82F0649E104D9B11F60850CF95BEFEAF307F1A428F65109D + 1F07949D21C57B2B7468DABF080DD141A80D2754CC25DC0926DCCFF2029043CB + 59FC43F717076050EC22D391E568DF188B9A5042CD06611984527F8251274002 + 52755EA3063C11DD89B776581D00CBB17058D3E214CFABE2082DA2E8EF6E100A + B604C218267A409C631736AF46315190CB89C613918716CF156EFDB6AE7EBC6D + FF8C376D7D0E404F6624EA1704E281107B21EAC0E2CD46C2957D7A5C3B4CC85F + 1CC5106B09D17117809C887CF4399BAC41D1D620DC15A929490C5044D5C63B8C + CF64E1FD8EAB4462333BFDABE01FB5ECE4DE78A5FDCFED49477EE232E4EE5CAF + 3CAB4D7E2B002400F40B7DA11C32DBE756950000000049454E44AE426082} + end + end + inherited pgPaginas: TPageControl + inherited pagContenido: TTabSheet + inherited frViewDetallesAlbaranProveedor1: TfrViewDetallesAlbaranProveedor + inherited ToolBar1: TToolBar + inherited UpDown1: TUpDown [1] + Left = 109 + ExplicitLeft = 109 + end + inherited ToolButton2: TToolButton [2] + Left = 126 + end + inherited ToolButton3: TToolButton [3] + Left = 240 + end + inherited FontSize: TEdit [4] + Left = 295 + ExplicitLeft = 295 + end + inherited ToolButton4: TToolButton [5] + Left = 417 + ExplicitLeft = 417 + end + inherited ToolButton14: TToolButton [6] + Left = 473 + ExplicitLeft = 473 + end + inherited FontName: TJvFontComboBox [7] + Left = 538 + ExplicitLeft = 538 + end + inherited ToolButton7: TToolButton + Wrap = False + end + inherited ToolButton12: TToolButton + Wrap = False + end + end + inherited cxGrid: TcxGrid + ExplicitTop = 99 + end + inherited cxGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewDetallesAlbaranProveedor1.cxGridView + HitTypes = [gvhtNone, gvhtCell, gvhtRecord, gvhtRowIndicator] + Index = 0 + PopupMenu = frViewDetallesAlbaranProveedor1.GridGeneralPopupMenu + end> + end + end + end + inherited pagInicidencias: TTabSheet + inherited frViewIncidenciasCli: TfrViewIncidencias + inherited GroupBox1: TGroupBox + inherited eIncidencias: TcxDBMemo + ExplicitWidth = 726 + ExplicitHeight = 332 + Height = 332 + Width = 726 + end + end + end + end + end + inherited frViewTotales1: TfrViewTotales + inherited dxLayoutControl1: TdxLayoutControl + LookAndFeel = dxLayoutOfficeLookAndFeel1 + inherited ImporteDto: TcxDBCurrencyEdit + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited ImporteIVA: TcxDBCurrencyEdit + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited ImporteTotal: TcxDBCurrencyEdit + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtDescuento: TcxDBSpinEdit + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtIVA: TcxDBSpinEdit + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited ImporteBase: TcxDBCurrencyEdit + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtRE: TcxDBSpinEdit + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited ImporteRE: TcxDBCurrencyEdit + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited eImporteNeto: TcxDBCurrencyEdit + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited ePorte: TcxDBCurrencyEdit + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited eIVA: TcxDBLookupComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited cbRecargoEquivalencia: TcxDBCheckBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtRetencion: TcxDBSpinEdit + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtImporteRetencion: TcxDBCurrencyEdit + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtFechaRetencion: TcxDBDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Group1: TdxLayoutGroup + inherited dxLayoutControl1Group2: TdxLayoutGroup + Visible = False + end + end + end + end + end +end diff --git a/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranDevProveedor.pas b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranDevProveedor.pas new file mode 100644 index 0000000..38e98cd --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranDevProveedor.pas @@ -0,0 +1,113 @@ +unit uEditorAlbaranDevProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorAlbaranProveedor, dxLayoutLookAndFeels, DB, uDADataTable, + JvAppStorage, JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, uViewTotales, ComCtrls, JvExComCtrls, + JvStatusBar, uViewIncidencias, uViewDetallesBase, uViewDetallesDTO, + uViewDetallesArticulos, uViewDetallesAlbaranProveedor, uCustomView, uViewBase, + uViewAlbaranProveedor, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, + JvExControls, JvComponent, JvNavigationPane, uIEditorAlbaranDevProveedor, + uDAInterfaces, dxGDIPlusClasses, cxControls, cxContainer, cxEdit, cxLabel; + +type + TfEditorAlbaranDevProveedor = class(TfEditorAlbaranProveedor, IEditorAlbaranDevProveedor) + procedure pgPaginasChanging(Sender: TObject; var AllowChange: Boolean); + protected + //Si queremos crear otra vista para el editor heredado solo tendriamos que + //sobreescribir este metodo + procedure AsignarVista; override; + procedure GuardarInterno; override; + procedure EliminarInterno; override; + public + procedure PonerTitulos(const ATitulo: string = ''); override; + end; + +implementation + +{$R *.dfm} + +uses + uDataTableUtils, uDialogUtils, uViewAlbaranDevProveedor; + +{ TfEditorAlbaranDevProveedor } + +procedure TfEditorAlbaranDevProveedor.AsignarVista; +var + AViewAlbaranDevProveedor: TfrViewAlbaranDevProveedor; + +begin + AViewAlbaranDevProveedor := TfrViewAlbaranDevProveedor.create(Self); + with AViewAlbaranDevProveedor do + begin + Parent := pagGeneral; + Align := alClient; + dxLayoutControl1.LookAndFeel := dxLayoutOfficeLookAndFeel1; + end; + ViewAlbaran := AViewAlbaranDevProveedor; +end; + +procedure TfEditorAlbaranDevProveedor.EliminarInterno; +begin + //inherited; <- No descomentar. No hacer la parte del padre (por el mensaje) + if (Application.MessageBox('Desea borrar esta orden de devolucin?', 'Atencin', MB_YESNO) = IDYES) then + begin + FController.Eliminar(FAlbaran); + actCerrar.Execute; + end +end; + +procedure TfEditorAlbaranDevProveedor.GuardarInterno; +var + bEsNuevo : Boolean; +begin + //inherited; <- No descomentar. No hacer la parte del padre (por el mensaje) + + ShowHourglassCursor; +// frViewDetallesAlbaranProveedor1.SaveGridStatus; + frViewDetallesAlbaranProveedor1.BeginUpdate; + try + bEsNuevo := FAlbaran.EsNuevo; + FController.Guardar(FAlbaran); + finally + frViewDetallesAlbaranProveedor1.EndUpdate; +// frViewDetallesAlbaranProveedor1.RestoreGridStatus; + HideHourglassCursor; + end; + if bEsNuevo then + ShowInfoMessage('La orden de devolucin se ha dado de alta con el cdigo ' + FAlbaran.REFERENCIA); + + Modified := False; +end; + +procedure TfEditorAlbaranDevProveedor.pgPaginasChanging(Sender: TObject; + var AllowChange: Boolean); +begin +// inherited; <- No descomentar. No quiero hacer la parte del padre + if (not Assigned(FAlbaran)) or (FAlbaran.ID_PROVEEDOR = ID_NULO) then + begin + ShowWarningMessage('Antes de introducir conceptos debe elegir un proveedor para esta orden de devolucin'); + AllowChange := False; + end; +end; + +procedure TfEditorAlbaranDevProveedor.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := ATitulo; + if (FTitulo = '') and Assigned(FAlbaran) then + begin + if FAlbaran.EsNuevo then + FTitulo := 'Nueva orden de devolucin de proveedor' + else + FTitulo := 'Orden de devolucin de proveedor' + ' - ' + FAlbaran.Proveedor.Nombre; + end; + + inherited PonerTitulos(FTitulo); +end; + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranProveedor.dcu b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranProveedor.dcu new file mode 100644 index 0000000..ad9cbe8 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranProveedor.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranProveedor.dfm b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranProveedor.dfm new file mode 100644 index 0000000..b805017 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranProveedor.dfm @@ -0,0 +1,686 @@ +inherited fEditorAlbaranProveedor: TfEditorAlbaranProveedor + Left = 332 + Top = 147 + Caption = 'Nuevo albar'#225'n de proveedor' + ClientHeight = 619 + ClientWidth = 765 + OnClose = CustomEditorClose + ExplicitWidth = 773 + ExplicitHeight = 653 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 765 + Caption = 'Nuevo albar'#225'n de proveedor' + ExplicitWidth = 765 + inherited Image1: TImage + Left = 632 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 5200000A4D6943435050686F746F73686F70204943432070726F66696C650000 + 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 + 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A + 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 + 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 + 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 + 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C + 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 + 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 + 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F + 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 + 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 + 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 + 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E + 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB + 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F + FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 + F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E + F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 + 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 + 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 + C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 + 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D + 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 + A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D + 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 + 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC + 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE + 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 + 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 + B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 + 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 + 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 + 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F + 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F + AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F + A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 + 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 + 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 + DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 + BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF + D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 + C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 + 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 + 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 + 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B + ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 + F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 + 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE + BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 + F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D + C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE + 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 + 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 + 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 + 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 + 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC + 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A + 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 + 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 + E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 + D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 + 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 + 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 + F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 + 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 + 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D + DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 + 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A + 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 + 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 + 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 + 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 + 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F + 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D + BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D + AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 + 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC + 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E + 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 + B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 + 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC + 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 + 4D410000B18E7CFB51930000026A4944415478DA63FCFFFF3F032D0123B2054B + B79CA49A6DD13EE68C582D004A906CD8DFBFFF80F83F980601EBC07C86733BA6 + E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3C275FB19E62DDD84DF02525C + EE507A9081455D89E1C08C1D0CEF0FC6312CD97890B005D87C802E06027B3BEC + 189C2B0E311CD97F0BCC7FB32F8661F996C394F9E0FF3F605803F11FA0EB41EC + 3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F18E70860DBB4E106701CCDBA4 + 80075B431936EF3D459C05F8520E3600D2B3A8508F61EB81D3C45B802BA86096 + C3E4616AE7E7EB32EC387486721F4C2C7064F8CA7E8E41F8D527BCBE7AF2D589 + 341FC02C6D2BE76788F0FBC520C1F883E1D74F0608FEC1C0F0134603F1C91344 + 58800DCC4C6464884D85B0F119CE2FC1C070F52E160B223C4DC1B9139B0F62DE + 3B31B008E28FEC3FEF1186638D8350371370EEC4E60364D783C0A7F71017C330 + C80767CE4082C6CE701FC3A1F3587C10E46CC4E0567D04A70520CD8400C87010 + C06A819FA3018357ED31AC1A414184EC0310F8FB17182CBF19187EFF02FAE23B + 03C38D1B0839AC1678DBE9C1CB155819032A7B40F49E7A51140B4086FE061AFE + E71784BD660D07839AC60F0636163C167858EB60351C54A1EC6F12C3880390C1 + 201F80F0966D1C0C52F2100BD85819184E5CC662818BA51656C341F4A1560914 + 0BDEBE44180EB268E71E0E061169880557EE383134AFDACB886181BDA93AD8B0 + 7F7F11C532CCC2E39DD2700B4006BE7B85301C1454FB0E7230F089FF6078F004 + 6238D6646A63A40A2E11B101D67D9E600B664EE5C09982DEFDB662D8FA491D77 + 59D43B65214ECDF6BCFB187818A5F1265190E12000B300003BBC36ACFF3E8021 + 0000000049454E44AE426082} + ExplicitLeft = 735 + end + inherited lblDesbloquear: TcxLabel + Left = 667 + ExplicitLeft = 667 + AnchorX = 712 + AnchorY = 14 + end + end + inherited TBXDock: TTBXDock + Width = 765 + ExplicitWidth = 765 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 488 + inherited TBXItem2: TTBXItem + Visible = False + end + inherited TBXSeparatorItem1: TTBXSeparatorItem + Visible = False + end + inherited TBXItem5: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 765 + end + end + inherited pgPaginas: TPageControl + Width = 759 + Height = 472 + TabOrder = 1 + OnChanging = pgPaginasChanging + ExplicitWidth = 759 + ExplicitHeight = 472 + inherited pagGeneral: TTabSheet + ExplicitLeft = 4 + ExplicitTop = 24 + ExplicitWidth = 751 + ExplicitHeight = 444 + end + object pagContenido: TTabSheet + Caption = 'Contenido' + ImageIndex = 1 + inline frViewDetallesAlbaranProveedor1: TfrViewDetallesAlbaranProveedor + Left = 0 + Top = 0 + Width = 751 + Height = 444 + Align = alClient + BiDiMode = bdLeftToRight + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentBiDiMode = False + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 751 + ExplicitHeight = 444 + inherited ToolBar1: TToolBar + Width = 751 + Height = 51 + ExplicitWidth = 751 + ExplicitHeight = 51 + inherited ToolButton3: TToolButton + Wrap = False + end + inherited ToolButton4: TToolButton + Left = 278 + Top = 0 + ExplicitLeft = 278 + ExplicitTop = 0 + end + inherited ToolButton14: TToolButton + Left = 334 + Top = 0 + Wrap = False + ExplicitLeft = 334 + ExplicitTop = 0 + end + inherited FontName: TJvFontComboBox + Left = 399 + Top = 0 + ExplicitLeft = 399 + ExplicitTop = 0 + end + inherited FontSize: TEdit + Left = 544 + Top = 0 + Width = 122 + ExplicitLeft = 544 + ExplicitTop = 0 + ExplicitWidth = 122 + end + inherited UpDown1: TUpDown + Left = 666 + Top = 0 + ExplicitLeft = 666 + ExplicitTop = 0 + end + inherited ToolButton13: TToolButton + Left = 0 + Top = 0 + Wrap = True + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitHeight = 27 + end + inherited ToolButton6: TToolButton + Left = 0 + Top = 27 + ExplicitLeft = 0 + ExplicitTop = 27 + end + inherited ToolButton7: TToolButton + Left = 66 + Top = 27 + ExplicitLeft = 66 + ExplicitTop = 27 + end + inherited ToolButton8: TToolButton + Left = 133 + Top = 27 + ExplicitLeft = 133 + ExplicitTop = 27 + end + inherited ToolButton12: TToolButton + Left = 216 + Top = 27 + ExplicitLeft = 216 + ExplicitTop = 27 + end + inherited ToolButton9: TToolButton + Left = 224 + Top = 27 + ExplicitLeft = 224 + ExplicitTop = 27 + end + inherited ToolButton10: TToolButton + Left = 369 + Top = 27 + ExplicitLeft = 369 + ExplicitTop = 27 + end + inherited ToolButton11: TToolButton + Left = 494 + Top = 27 + ExplicitLeft = 494 + ExplicitTop = 27 + end + end + inherited cxGrid: TcxGrid + Top = 77 + Width = 751 + Height = 367 + ExplicitTop = 77 + ExplicitWidth = 751 + ExplicitHeight = 367 + end + inherited TBXDock1: TTBXDock + Top = 51 + Width = 751 + ExplicitTop = 51 + ExplicitWidth = 751 + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 751 + end + end + inherited cxGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewDetallesAlbaranProveedor1.cxGridView + HitTypes = [gvhtNone, gvhtCell, gvhtRecord, gvhtRowIndicator] + Index = 0 + PopupMenu = frViewDetallesAlbaranProveedor1.GridGeneralPopupMenu + end> + end + end + end + object pagInicidencias: TTabSheet + Caption = 'Incidencias' + ImageIndex = 2 + inline frViewIncidenciasCli: TfrViewIncidencias + Left = 0 + Top = 0 + Width = 751 + Height = 444 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 751 + ExplicitHeight = 444 + inherited pnlSup: TPanel + Width = 751 + ExplicitWidth = 751 + inherited eIncidenciaActiva: TcxDBCheckBox + ExplicitHeight = 21 + end + end + inherited GroupBox1: TGroupBox + Width = 751 + Height = 416 + ExplicitWidth = 751 + ExplicitHeight = 416 + inherited eIncidencias: TcxDBMemo + ExplicitWidth = 734 + ExplicitHeight = 389 + Height = 389 + Width = 734 + end + end + end + end + end + inherited StatusBar: TJvStatusBar + Top = 600 + Width = 765 + Panels = < + item + Width = 200 + end> + ExplicitTop = 600 + ExplicitWidth = 765 + end + inline frViewTotales1: TfrViewTotales [4] + Left = 0 + Top = 554 + Width = 765 + Height = 46 + Align = alBottom + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 4 + ReadOnly = False + ExplicitTop = 554 + ExplicitWidth = 765 + ExplicitHeight = 46 + inherited dxLayoutControl1: TdxLayoutControl + Width = 765 + Height = 46 + LookAndFeel = dxLayoutOfficeLookAndFeel1 + ExplicitWidth = 765 + ExplicitHeight = 46 + inherited Bevel3: TBevel + Left = 425 + Top = 11 + Height = 30 + ExplicitLeft = 425 + ExplicitTop = 11 + ExplicitHeight = 30 + end + inherited Bevel4: TBevel + Left = 537 + Top = 53 + Width = 21 + ExplicitLeft = 537 + ExplicitTop = 53 + ExplicitWidth = 21 + end + inherited Bevel1: TBevel + Left = 537 + Top = 169 + Width = 73 + ExplicitLeft = 537 + ExplicitTop = 169 + ExplicitWidth = 73 + end + inherited Bevel2: TBevel + Left = 120 + Top = 171 + Width = 368 + ExplicitLeft = 120 + ExplicitTop = 171 + ExplicitWidth = 368 + end + inherited ImporteDto: TcxDBCurrencyEdit + Left = 191 + Top = 38 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 191 + ExplicitTop = 38 + ExplicitWidth = 199 + Width = 199 + end + inherited ImporteIVA: TcxDBCurrencyEdit + Left = 608 + Top = 88 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 608 + ExplicitTop = 88 + ExplicitWidth = 192 + Width = 192 + end + inherited ImporteTotal: TcxDBCurrencyEdit + Left = 538 + Top = 142 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 538 + ExplicitTop = 142 + ExplicitWidth = 262 + Width = 262 + end + inherited edtDescuento: TcxDBSpinEdit + Left = 120 + Top = 38 + Properties.OnValidate = frViewTotales1edtDescuentoPropertiesValidate + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 120 + ExplicitTop = 38 + end + inherited edtIVA: TcxDBSpinEdit + Left = 537 + Top = 88 + Properties.OnValidate = frViewTotales1edtIVAPropertiesValidate + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 537 + ExplicitTop = 88 + end + inherited ImporteBase: TcxDBCurrencyEdit + Left = 537 + Top = 11 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 537 + ExplicitTop = 11 + ExplicitWidth = 263 + Width = 263 + end + inherited edtRE: TcxDBSpinEdit + Left = 537 + Top = 115 + DataBinding.DataField = '' + DataBinding.DataSource = nil + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 537 + ExplicitTop = 115 + end + inherited ImporteRE: TcxDBCurrencyEdit + Left = 608 + Top = 115 + DataBinding.DataField = '' + DataBinding.DataSource = nil + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 608 + ExplicitTop = 115 + ExplicitWidth = 192 + Width = 192 + end + inherited eImporteNeto: TcxDBCurrencyEdit + Left = 120 + Top = 11 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 120 + ExplicitTop = 11 + ExplicitWidth = 270 + Width = 270 + end + inherited ePorte: TcxDBCurrencyEdit + Left = 120 + Top = 65 + Properties.OnValidate = frViewTotales1ePortePropertiesValidate + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 120 + ExplicitTop = 65 + ExplicitWidth = 270 + Width = 270 + end + inherited eIVA: TcxDBLookupComboBox + Left = 120 + Top = 92 + DataBinding.DataField = '' + DataBinding.DataSource = nil + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 120 + ExplicitTop = 92 + ExplicitWidth = 132 + Width = 132 + end + inherited bTiposIVA: TButton + Left = 277 + Top = 92 + ExplicitLeft = 277 + ExplicitTop = 92 + end + inherited cbRecargoEquivalencia: TcxDBCheckBox + Left = 120 + Top = 119 + DataBinding.DataField = '' + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 120 + ExplicitTop = 119 + ExplicitWidth = 270 + Width = 270 + end + inherited edtRetencion: TcxDBSpinEdit + Left = 537 + Top = 189 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 537 + ExplicitTop = 189 + end + inherited edtImporteRetencion: TcxDBCurrencyEdit + Left = 608 + Top = 189 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 608 + ExplicitTop = 189 + ExplicitWidth = 180 + Width = 180 + end + inherited edtFechaRetencion: TcxDBDateEdit + Left = 120 + Top = 191 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 120 + ExplicitTop = 191 + ExplicitWidth = 280 + Width = 280 + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Group1: TdxLayoutGroup + ShowCaption = False + ShowBorder = False + inherited dxLayoutControl1Group2: TdxLayoutGroup + inherited dxLayoutControl1Item8: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Group7: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Group6: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Item16: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Item19: TdxLayoutItem + Visible = False + end + end + inherited dxLayoutControl1Group5: TdxLayoutGroup + inherited dxLayoutControl1Item13: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Group3: TdxLayoutGroup + inherited dxLayoutControl1Item12: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Item14: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Group9: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Group8: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Item10: TdxLayoutItem + Visible = False + end + end + end + end + end + end + end + inherited EditorActionList: TActionList [5] + inherited actConfPagina: TAction + Visible = False + end + end + inherited SmallImages: TPngImageList [6] + end + inherited LargeImages: TPngImageList [7] + end + inherited JvFormStorage: TJvFormStorage [8] + end + inherited dsDataTable: TDADataSource [10] + end + object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList + Left = 336 + Top = 176 + object dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel + GroupOptions.CaptionOptions.Font.Charset = DEFAULT_CHARSET + GroupOptions.CaptionOptions.Font.Color = clWindowText + GroupOptions.CaptionOptions.Font.Height = -11 + GroupOptions.CaptionOptions.Font.Name = 'Tahoma' + GroupOptions.CaptionOptions.Font.Style = [fsBold] + GroupOptions.CaptionOptions.TextColor = clHighlight + GroupOptions.CaptionOptions.UseDefaultFont = False + end + end +end diff --git a/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranProveedor.pas b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranProveedor.pas new file mode 100644 index 0000000..cc49556 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranProveedor.pas @@ -0,0 +1,352 @@ +unit uEditorAlbaranProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorDBItem, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, + TB2Toolbar, ExtCtrls, JvExControls, JvNavigationPane, + uCustomView, uViewBase, JvComponentBase, + StdCtrls, pngimage, AppEvnts, cxControls, cxContainer, cxEdit, cxTextEdit, cxMemo, cxDBEdit, + uViewIncidencias, + uAlbaranesProveedorController, + uViewDetallesBase, uViewDetallesAlbaranProveedor, + dxLayoutLookAndFeels, JvExComCtrls, JvStatusBar, uViewTotales, + uIEditorAlbaranProveedor, uBizAlbaranesProveedor, uViewAlbaranProveedor, + uViewDetallesDTO, uViewDetallesArticulos, uDAInterfaces, cxLabel; + +type + TfEditorAlbaranProveedor = class(TfEditorDBItem, IEditorAlbaranProveedor) + pagContenido: TTabSheet; + pagInicidencias: TTabSheet; + frViewIncidenciasCli: TfrViewIncidencias; + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + frViewDetallesAlbaranProveedor1: TfrViewDetallesAlbaranProveedor; + frViewTotales1: TfrViewTotales; + + procedure FormShow(Sender: TObject); + procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); + procedure pgPaginasChanging(Sender: TObject; var AllowChange: Boolean); + procedure frViewTotales1edtDescuentoPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure frViewTotales1edtIVAPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure frViewTotales1ePortePropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + +// procedure frViewDatosYSeleccionContactoedtlNombrePropertiesChange(Sender: TObject); + private + procedure RecalcularPortePorUnidad; + + protected + FAlbaran: IBizAlbaranProveedor; + FViewAlbaran: IViewAlbaranProveedor; + FController : IAlbaranesProveedorController; + + function GetController : IAlbaranesProveedorController; + procedure SetController (const Value : IAlbaranesProveedorController); virtual; + + function GetAlbaran: IBizAlbaranProveedor; + procedure SetAlbaran(const Value: IBizAlbaranProveedor); virtual; + + function GetViewAlbaran: IViewAlbaranProveedor; + procedure SetViewAlbaran(const Value: IViewAlbaranProveedor); + + procedure GuardarInterno; override; + procedure EliminarInterno; override; + procedure PrevisualizarInterno; override; + procedure ImprimirInterno; override; + + function PuedoImprimir: Boolean; override; + + property ViewAlbaran: IViewAlbaranProveedor read GetViewAlbaran write SetViewAlbaran; + + procedure OnProveedorChanged(Sender : TObject); + + //Si queremos crear otra vista para el editor heredado solo tendriamos que + //sobreescribir este metodo + procedure AsignarVista; virtual; + + public + procedure PonerTitulos(const ATitulo: string = ''); override; + property Controller : IAlbaranesProveedorController read GetController write SetController; + property Albaran: IBizAlbaranProveedor read GetAlbaran write SetAlbaran; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +uses + uViewDatosYSeleccionProveedor, uDataModuleUsuarios, uProveedoresController, + uBizDireccionesContacto, uDialogUtils, uDataTableUtils, uFactuGES_App, + uDialogOpcionesImpresionAlbaranesProveedor; + +{$R *.dfm} + +{ TfEditorAlbaranProveedor } + +{ +**************************** TfEditorAlbaranProveedor **************************** +} +procedure TfEditorAlbaranProveedor.AsignarVista; +var + AViewAlbaranProveedor: TfrViewAlbaranProveedor; + +begin + AViewAlbaranProveedor := TfrViewAlbaranProveedor.create(Self); + with AViewAlbaranProveedor do + begin + Parent := pagGeneral; + Align := alClient; + dxLayoutControl1.LookAndFeel := dxLayoutOfficeLookAndFeel1; + end; + ViewAlbaran := AViewAlbaranProveedor; +end; + +constructor TfEditorAlbaranProveedor.Create(AOwner: TComponent); +begin + inherited; + AsignarVista; + pgPaginas.ActivePageIndex := 0; +end; + +procedure TfEditorAlbaranProveedor.CustomEditorClose(Sender: TObject; + var Action: TCloseAction); +begin + inherited; + FViewAlbaran := NIL; + FAlbaran := NIL; +end; + +destructor TfEditorAlbaranProveedor.Destroy; +begin + // Utilizar mejor OnClose; + inherited; +end; + +procedure TfEditorAlbaranProveedor.EliminarInterno; +begin + if (Application.MessageBox('¿Desea borrar este albarán de proveedor?', 'Atención', MB_YESNO) = IDYES) then + begin + FController.Eliminar(FAlbaran); + inherited + end +end; + +procedure TfEditorAlbaranProveedor.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(FViewAlbaran) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Albaran) then + raise Exception.Create('No hay ningún Albaran asignado'); + + Albaran.DataTable.Active := True; + pgPaginas.ActivePage := pagGeneral; +end; + +procedure TfEditorAlbaranProveedor.frViewTotales1edtDescuentoPropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + FAlbaran.DESCUENTO := DisplayValue; +end; + +procedure TfEditorAlbaranProveedor.frViewTotales1edtIVAPropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + FAlbaran.IVA := DisplayValue; +end; + +procedure TfEditorAlbaranProveedor.frViewTotales1ePortePropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + if (not VarIsNull(DisplayValue)) and (length(DisplayValue) > 0) then + FAlbaran.IMPORTE_PORTE := DisplayValue + else + FAlbaran.IMPORTE_PORTE := 0; + + RecalcularPortePorUnidad; +end; + +function TfEditorAlbaranProveedor.GetController: IAlbaranesProveedorController; +begin + Result := FController; +end; + +function TfEditorAlbaranProveedor.GetAlbaran: IBizAlbaranProveedor; +begin + Result := FAlbaran; +end; + +function TfEditorAlbaranProveedor.GetViewAlbaran: IViewAlbaranProveedor; +begin + Result := FViewAlbaran; +end; + +procedure TfEditorAlbaranProveedor.GuardarInterno; +var + bEsNuevo : Boolean; +begin + inherited; + + ShowHourglassCursor; +// frViewDetallesAlbaranProveedor1.SaveGridStatus; + frViewDetallesAlbaranProveedor1.BeginUpdate; + try + bEsNuevo := FAlbaran.EsNuevo; + FController.Guardar(FAlbaran); + finally + frViewDetallesAlbaranProveedor1.EndUpdate; +// frViewDetallesAlbaranProveedor1.RestoreGridStatus; + HideHourglassCursor; + end; + if bEsNuevo then + ShowInfoMessage('El albarán se ha dado de alta con el código ' + FAlbaran.REFERENCIA); + + Modified := False; +end; + +function TfEditorAlbaranProveedor.PuedoImprimir: Boolean; +begin + Result := inherited PuedoImprimir and (not Albaran.Proveedor.IDIsNull); +end; + +procedure TfEditorAlbaranProveedor.ImprimirInterno; +var + AllItems: Boolean; + FImprimirPrecios : Boolean; + FImprimirRefProveedor : Boolean; + +begin + inherited; + AllItems := False; + FImprimirPrecios := True; + FImprimirRefProveedor := True; + + if ElegirOpcionesImpresionAlbaranProveedor(FImprimirPrecios, FImprimirRefProveedor) then + FController.Preview(FAlbaran, AllItems, FImprimirPrecios, FImprimirRefProveedor); +end; + +procedure TfEditorAlbaranProveedor.OnProveedorChanged(Sender: TObject); +begin + if Assigned(FAlbaran) then + begin + FAlbaran.Proveedor := ViewAlbaran.ViewProveedorAlbaran.Proveedor; + + // Si el pedido tiene detalles hay que mirar si los descuentos + // para los artículos hay que cambiarlos. + if (FAlbaran.Detalles.RecordCount > 0) then + begin + FController.DetallesController.ActualizarDetalles(FAlbaran.Detalles, FAlbaran.Proveedor); + end; + end; +end; + +procedure TfEditorAlbaranProveedor.pgPaginasChanging(Sender: TObject; var AllowChange: Boolean); +begin + inherited; + if (not Assigned(FAlbaran)) + or (FAlbaran.ID_PROVEEDOR = 0) then + begin + ShowWarningMessage('Antes de introducir conceptos debe elegir un proveedor para este albarán'); + AllowChange := False; + end; +end; + +procedure TfEditorAlbaranProveedor.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := ATitulo; + if (FTitulo = '') and Assigned(FAlbaran) then + begin + if FAlbaran.EsNuevo then + FTitulo := 'Nuevo albarán de proveedor' + else + FTitulo := 'Albarán de proveedor' + ' - ' + FAlbaran.Proveedor.Nombre + end; + + inherited PonerTitulos(FTitulo); + Self.Caption := FTitulo + ' (' + AppFactuGES.EmpresaActiva.NOMBRE + ')'; +end; + +procedure TfEditorAlbaranProveedor.PrevisualizarInterno; +var + AllItems: Boolean; + FImprimirPrecios : Boolean; + FImprimirRefProveedor : Boolean; + +begin + inherited; + AllItems := False; + FImprimirPrecios := True; + FImprimirRefProveedor := True; + + if ElegirOpcionesImpresionAlbaranProveedor(FImprimirPrecios, FImprimirRefProveedor) then + FController.Preview(FAlbaran, AllItems, FImprimirPrecios, FImprimirRefProveedor); +end; + +procedure TfEditorAlbaranProveedor.RecalcularPortePorUnidad; +begin + //Esta lógica se llamará en el editor porque es para facilitar el rellenado de información del documento + //no puede ir en la clase de negocio porque no es una lógica que tenga sentido fuera del editor. + if Assigned(Controller) + and Assigned(Controller.DetallesController) then + Controller.DetallesController.DesglosarPorteDetalles(FAlbaran.IMPORTE_PORTE, FAlbaran.Detalles) +end; + +procedure TfEditorAlbaranProveedor.SetController(const Value: IAlbaranesProveedorController); +begin + FController := Value; + + if Assigned(FController) then + begin + frViewDetallesAlbaranProveedor1.Controller := Controller.DetallesController; + end; +end; + +procedure TfEditorAlbaranProveedor.SetAlbaran(const Value: IBizAlbaranProveedor); +begin + FAlbaran := Value; + + if Assigned(FAlbaran) then + begin + dsDataTable.DataTable := FAlbaran.DataTable; + frViewTotales1.DADataSource.DataTable := dsDataTable.DataTable; + frViewIncidenciasCli.DADataSource.DataTable := dsDataTable.DataTable; + + if Assigned(FViewAlbaran) then + begin + ViewAlbaran.ViewProveedorAlbaran.OnProveedorChanged := NIL; + try + FViewAlbaran.Albaran := FAlbaran; + frViewDetallesAlbaranProveedor1.Detalles := FAlbaran.Detalles; + frViewDetallesAlbaranProveedor1.Albaran := FAlbaran; //Para poder sacar los descuento del articulos segun el proveedor seleccionado + finally + ViewAlbaran.ViewProveedorAlbaran.OnProveedorChanged := OnProveedorChanged; + end; + end; + end; +end; + +procedure TfEditorAlbaranProveedor.SetViewAlbaran(const Value: IViewAlbaranProveedor); +begin + FViewAlbaran := Value; + + if Assigned(FViewAlbaran) and Assigned(Albaran) then + FViewAlbaran.Albaran := Albaran; +end; + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesDevProveedor.dcu b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesDevProveedor.dcu new file mode 100644 index 0000000..cd214b7 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesDevProveedor.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesDevProveedor.dfm b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesDevProveedor.dfm new file mode 100644 index 0000000..527977b --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesDevProveedor.dfm @@ -0,0 +1,1642 @@ +inherited fEditorAlbaranesDevProveedor: TfEditorAlbaranesDevProveedor + Caption = 'Lista de '#243'rdenes de devoluci'#243'n de proveedor' + ClientWidth = 872 + ExplicitWidth = 880 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 872 + Caption = 'Lista de '#243'rdenes de devoluci'#243'n a proveedor' + ExplicitWidth = 872 + inherited Image1: TImage + Left = 845 + Picture.Data = { + 0B546478504E47496D61676589504E470D0A1A0A0000000D4948445200000018 + 000000180806000000E0773DF8000000017352474200AECE1CE9000000046741 + 4D410000B18F0BFC6105000000206348524D00007A26000080840000FA000000 + 80E8000075300000EA6000003A98000017709CBA513C000002F049444154484B + B5965B4854511486D7786348530B45CAECA2946056265156965254820F41E44B + 2F459787822C7BE8A57A30AA07C910349DA1088B082B485249B4902043492AC3 + D2F23A8D638D393A25669A97BFBD8EECE9343367668C3AB0389C3DE7FCDFBAEC + B5F6E800D07FBD1820ED766523FE95494D87382FB0F8DF5C939353181F9FC4E8 + E84FC5D6EE3ACA328AB65B406A4E1DD4E609AA7E6F78640C85B7AABD037C8D82 + 3D6740BAC1044A32C0FE6DD43780BB089CD7F899D3C2771667B30D8DF806F014 + C1F4D4342626A6F0636C42C937A7853D6771AB6DD837803B6FBDAD7104BD56BB + EF0019F66CEEA6BE41DF01BE165ABEC711769B6DB30368A5452DCAEFF0C5F70E + D3C0EC005A51149C48C7C5D3A1301C208F76366BDBEF31A1EE64B557EE1A8EC5 + BBEAF5F8FE9C60AF23F457137ACB099D6584D652C26BC30CD82BC05D04FCA1FD + 11C17C2A142D3951303FFC53FC5531A12C3304E5497AE4A5AC748D4076A7CCAB + 3A0216BF9E43A84C254C6F0A01B292716FF74218B367D66F1EF2434572309EC6 + 84A03061097233525C01B23BB5BCE7B4988B089624822D418791EDB1683A1881 + 866C3FBC5C35077591FEB89CBC02B5973452C4DD296BE00C9179E5DCE6A5AD41 + CBD200B4C510DE2784A131468FC7F375C85B17AF886B02B8F5B5B62703380269 + CD674441A3FDF02C82F0649E104D9B11F60850CF95BEFEAF307F1A428F65109D + 1F07949D21C57B2B7468DABF080DD141A80D2754CC25DC0926DCCFF2029043CB + 59FC43F717076050EC22D391E568DF188B9A5042CD06611984527F8251274002 + 52755EA3063C11DD89B776581D00CBB17058D3E214CFABE2082DA2E8EF6E100A + B604C218267A409C631736AF46315190CB89C613918716CF156EFDB6AE7EBC6D + FF8C376D7D0E404F6624EA1704E281107B21EAC0E2CD46C2957D7A5C3B4CC85F + 1CC5106B09D17117809C887CF4399BAC41D1D620DC15A929490C5044D5C63B8C + CF64E1FD8EAB4462333BFDABE01FB5ECE4DE78A5FDCFED49477EE232E4EE5CAF + 3CAB4D7E2B002400F40B7DA11C32DBE756950000000049454E44AE426082} + ExplicitLeft = 845 + end + end + inherited TBXDock: TTBXDock + Width = 872 + ExplicitWidth = 872 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 872 + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 872 + end + inherited TBXTMain2: TTBXToolbar + ExplicitWidth = 112 + end + end + inherited StatusBar: TJvStatusBar + Width = 872 + ExplicitWidth = 872 + end + inherited EditorActionList: TActionList + inherited actNuevo: TAction + ImageIndex = 24 + end + inherited actGenerarFactura: TAction + Caption = 'Generar abono' + end + inherited actGenerarDevolucion: TAction + Enabled = False + Visible = False + end + end + inherited SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000001744944415478DA63FCFFFF3FC394 + C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F19ACFDF319CEED + 98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC5BBA09D3007CE0 + D7EFBF609B4178C98683D80D40770136B0AED69461E59623B80D80391B04FE01 + E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D760CCEE587E036 + 07359F66585A6AC0B069CF49FC06C06CFE7CFB30C3CBC5B1F87CE48261C0C15E + 0706FBE20360D999EC710CCA0D350CECECE9183A7FFE9CC9302FB18501C30090 + B3617E7ED6A6C6A0D5FE18AC180E7EFC00E2EF0CB3771930306F4F45189011E5 + C6E0587A10C516900B500C0069FEF00E62C02927540392C39CC1B6C2423DA4F5 + 0CAA0130CD60037E32CCBE15846A405C90034A9445769E4718F0712242F3870F + 1017BC4A413520CA0FE177B841338C20063CAC47688679E15719AA01A15ED60C + ABB71D450903A76BA9E05898BD4A1E6B1CA218004A18E8409BF70D8315EB719C + 89C05E9EC10500D1295EA9BD5461080000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B3A00000B3A01647F570D0000015D4944415478DA + 63FCFFFF3F030830323232C0C0CEB58DCA2F6E6CBDF3FEF129B818C30F061490 + 3FFF3F58032336032E9C58FD9F8B47904155DB192EF6FFD72B867F9F2F31FCB9 + E3CA3063061E0380B6DBB373F01CB076CD66606165C7AAB96001923E6403809A + 9979F925FEC8299B32482B18E2D40C16C7614032D08039164EA97017810CF875 + 5E1CAC196F18EC5AD7C40F74FA073DB36006411179B8E6FF3F5F32FCBEA687A2 + 196B18000D681797D6AAD06008852B64D5BA0434E4251833000DFBFBA2087718 + 2CEF76FFFFE1E119865F5FDF81F9B993706BC61906D0589056D7D07F2223CE8D + 53332103DAC5C4A52B749438706AC6170BECACAC6C3FF4547918F8397FE3D48C + 3F1A79F9E7982A7F66F8FBBA16A7669C061CDB35E1BF9CAA1D83C84B23BC9AB1 + 1A008C466BA0F38F5888D632CC9AF907AF66AC065C383AF73FC7B7150C3B97ED + 21A819AB0137CE2CFBBF776E2643CE8C4F0435231B00004A4C11F0D3652A8300 + 00000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000001974455874536F6674776172650041646F626520496D616765526561 + 647971C9653C000002034944415478DA63FCFFFF3FC394C53BFE33900172623D + 1819610600394469FAF3F71FC3EF3F7F19ACFDF319CEED98866A806DD17E14C5 + 87FB1CC134B2F8AE761B86B9ABF632CC5BBA09D3007CE0D7EFBF609B4178C986 + 83D80D40770136B0AED69461E59623B80D80391B04FE01E5FEFCF907B7D9B7FE + 04C3AA4A6386B53B8EE13700E692BD9D760CCEE587E03607359F66585A6AC0B0 + 69CF49FC06C06CFE7CFB30C3CBC5B1F87CE48261C0C15E0706FBE20360D999EC + 710C5CD2D60C3C37FF333C0DCF66D0B7B1038B7F7D709FE14E4B3CC385339718 + 300C00391BE6E7676D6A0C5C6FCD19642EEF60782BABC1F035CF9581E3D53B86 + A78DEB186E73A9327C927A88302023CA8DC1B1F4208AFB402E502EB9C0702FC5 + 9A81E3F22D86DF02620CAF9EBF6360B6546538EBD7C3C0BC230D6140729833D8 + 5658A887B49E011BA0D5FE98E1C1A54686CF213D0C1FDE7D61F8CCC8C2603A2D + 8861E58F4406E6EDA90803E2821C50A22CB2F33CD800F9D28B0C379AA2197EAF + 3BC8F0919191E1D3BB9F0C2C527C0C4FF36730301F29461810E587F03BDCA019 + 460CA2FFBC18DEEDDCC870F7CD6706E33667861F4F5E331CE9BFC0F0894B8A81 + C1E83BC280502F6B86D5DB8EA28481D3B55486FFFBFE313CB8FE8CE1715C25C3 + 1F73482C307CFEC4C0BC643A03E39B3308034009031D68F3BE61B07DB28781E9 + E36F86DF060298F2BFBE4700003F4A71F77ECF59220000000049454E44AE4260 + 82} + Name = 'PngImage24' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001BE4944415478DA + 63FCFFFF3F032D0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80 + F83F980601EBC07C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3 + C275FB19E62DDD84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD978 + 90B005D87C802E06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9 + E0FF3F605803F11FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F1 + 8E70860DBB4E106701CCDBA480075B431936EF3D459C05F8520E3600D2B3A850 + 8F61EB81D3C45B802BA86096C3E4616AE7E7EB32EC387486763E989DA3CDB0E7 + E839DAF96046A626C3FE131768E783A969EA0C874E5FC26F4184A729387792E3 + 838929AA0CC7CE5EC16F41A89B09387792E3839E042586D317AFE3B720C8D988 + C1ADFA08591674C62A309CBB7213BF057E8E060C5EB5C7F01A06B27CC1913F70 + 7E820D0BD882B62839868BD76FE3B7C0DB4E0F5EAEC0CA1850D9032BF393275F + C1881F18BF394296E1CACD3BF82DF0B0D6C16938884E9B760D6BF0116D818BA5 + 164EC3411667CDB88133E888B2C0DE541D6CD8BFBF88621966E1BFFFFFB1061F + 322068818D912AB844A404E0B5A077CA428A0C8701980500619929EF09CFCE42 + 0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000001B94944415478DA + 63FCFFFF3F032D01E38058C0C8C888C2DFB9B651F9C58DAD77DE3F3E85AAF007 + 7643F3E7FF6724C9828B27D7FCE7E0E46350D3754511FFFFEB15C3BFCF9718FE + 7FB90CC40F18FE7D99C43063068916005D6FCEC2CA71C2CE239F8185959DA0E1 + 050B50CD2468C1C903F3FF4B486B32C8A9986375FDBF179B510C07CB116B01D0 + F5C15C3C426BAC5DB3512CC56738D116000D67061AFE4755DB99411CE803620D + 27C5827C0161B90966F6091841F3E7762BDC7064407410ED5AD7C40F8CD80FC6 + D6D10CFC42D22886FFFFF992E1EFA339600B9001497100B4A05B4246BB44CF2C + 18C3F0FFBF209801C4474B3D4407D1F26EF7FF1F1E9E61F8F5F51D5C2C77D225 + A20C272915415392B4BA9ACC13194939A20C27C7826E7131C1126D6521A20C27 + C902A0E1DC2C2CCC5F0CD5051878397E116538A916E40BF0734F3052FCCEF0FF + FB6BA20C27DA027046E364FFA322C5C420CCF28468C349B1C01F68C10633B967 + C0A021DE70A22D38B9A7E7BF28DF1F06A97F1524194E9405C08C660C8CDC3316 + 624D0CB367FE22C970A22CB87864F27FB66F5B18762DDF45B2E1445970E3F4F4 + FF7BE75530E4CCF844B2E14459404D40730B006B5E9AE0A24640FE0000000049 + 454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000001974455874536F6674776172650041646F626520496D616765526561 + 647971C9653C000003294944415478DAB5956B4814511886DFD15557DD753531 + 352B495129723149222DAF61A921249A4216F4C37F81194445445028F5A32088 + 2E109991F443BAAB98B7F55A9AA1A549B4D2C5CAD2557775BDB4D7D9CE991A2F + EDACED62BD70383373CE7CCF79BF73E61BC662B1E07F8A590828AFECFC67B47D + BBB730820032E07030B39925CDC2F554717B0AD15D73C53660FB11C5A200AD17 + 936C065F38B7FA6C2CCAEE2B70B3FCF1D20047569E78B419A28810345DAB81A6 + F900EE3C6AFE3B40C8C19FCFA81ACEC523E5780BDA144AEE7EAC311F772B5B97 + E7C0C2925C936622ABA7D72696FDBD072C775D51DDEEB8037B445D7CA9C9C5C3 + DA0EFB00BC6D47F4A92A074F1A5ED80758EAE40889BE73BB488EAAA62EFB01B6 + 52C5C3F9717E6E6961246A5A5E2EDFC1A5C3499871EB86AF4ABBA4ABAF33C98E + 39E0A125C764C8CB342080D1C1A0C7AFA603F47C4F5A67871D00215D3FC82077 + 2F3055EF85498B3B64892360D8F9E0BA5940592581DB900903E2506B405E5A0C + F7750A39C8D72443E403F8770119AC044C50382A0CC3D0047F83B333E0A27582 + 4F8F3BBC4619F4497DA15E1B680DC849DDCC7D9D420EE8EAF71700E33D80D30D + 406C60200E5C87B7C15A98246AB82AC4981CD6A37B4D28E4D94AB4F408A4282B + 251AA927DB6C02685EA9BC54E3481BEC87C86C02239561624A8FA9193D7A42C2 + 1195F58E9B2308C84C8A42FAA96782F9A729A20E780D5493D271CB09D37A167A + 33C0CAC9C39DF3E382808C78F95C5DE16B0CAD3DB4AF3FED3707508F3318BE17 + 0453BD8AACDC001D014C93CD764907649B9600EC8ADB28189CFE501467567200 + DD2439450FC2607863C6C7FE0FC07AF232D9FCEF75E4341188349BA43012E8E8 + 1300ECD8BA413038ED5B8A033880A6DC1BA27E5FF4BE7E0F832F105C4436DD03 + A82B75817BAF1116B280B1383956B4F7BA5901126222B860AC79BE2CF3C0E7E7 + 833880AAC40F43DD1350CD1AB1FA10E0190A188D4063B318520F1DB4B5FEF0FC + 3C324222175B01B64587711551482E8D691CA0F4842BFC5E19C83917E1875CB4 + 688EDA188B2A6D040A9E5E4D259147AD00172E97C19612A48D90304160881B6F + E520A657F9C128932C9A43835311004323FF04D4D3607A0FD2DBC40000000049 + 454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end> + Bitmap = {} + end + inherited GridPopupMenu: TPopupMenu + object N4: TMenuItem [5] + Caption = '-' + end + object Acercade1: TMenuItem [6] + Action = actGenerarFactura + end + end + inherited JsNuevoAlbaranDialog: TJSDialog + Instruction.Text = 'Nueva orden de devoluci'#243'n a proveedor' + CustomButtons = < + item + Caption = 'Orden de devoluci'#243'n nueva vac'#237'a' + Value = 100 + end + item + Caption = 'Utilizar un albar'#225'n de proveedor.' + Value = 200 + Info.Strings = ( + + 'Puede utilizar un albar'#225'n de proveedor existente para dar de alt' + + 'a la orden de devoluci'#243'n.') + end> + end + inherited JsPrevisualizarDialog: TJSDialog + CustomButtons = < + item + Caption = 'Previsualizar la orden/es de devoluci'#243'n seleccionada/s' + Value = 100 + Default = True + end + item + Caption = 'Previsualizar la lista de ordenes de devoluci'#243'n actual' + Value = 200 + end> + end + inherited JsImprimirDialog: TJSDialog + CustomButtons = < + item + Caption = 'Imprimir la orden/es de devoluci'#243'n seleccionada/s' + Value = 100 + Default = True + end + item + Caption = 'Imprimir la lista de ordenes de devouci'#243'n actual' + Value = 200 + end> + end + inherited JsListaAlbaranesNoEliminados: TJSDialog + Instruction.Text = + 'Las siguientes ordenes de devoluci'#243'n no han podido ser eliminada' + + 's, porque est'#225'n asociadas a un abono' + end +end diff --git a/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesDevProveedor.pas b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesDevProveedor.pas new file mode 100644 index 0000000..394a943 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesDevProveedor.pas @@ -0,0 +1,91 @@ +unit uEditorAlbaranesDevProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorAlbaranesProveedor, JSDialog, Menus, DB, uDADataTable, + JvAppStorage, JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, JvExComCtrls, JvStatusBar, TBX, + TB2ExtItems, TBXExtItems, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, + JvExControls, JvComponent, JvNavigationPane, uIEditorAlbaranesDevProveedor, + uDAInterfaces, dxGDIPlusClasses; + +type + + TfEditorAlbaranesDevProveedor = class(TfEditorAlbaranesProveedor, IEditorAlbaranesDevProveedor) + N4: TMenuItem; + Acercade1: TMenuItem; + protected + procedure AsignarVista; override; + procedure NuevoInterno; override; + public + procedure PonerTitulos(const ATitulo: string = ''); override; + constructor Create(AOwner: TComponent); override; + end; + +implementation +{$R *.dfm} + +uses + uDataModuleUsuarios, uViewAlbaranesDevProveedor, uFactuGES_App, + uGenerarAlbaranesProvUtils, uBizAlbaranesProveedor; + +{ TfEditorAlbaranesDevProveedor } + +procedure TfEditorAlbaranesDevProveedor.AsignarVista; +begin + ViewGrid := CreateView(TfrViewAlbaranesDevProveedor) as IViewAlbaranesDevProveedor; +end; + +constructor TfEditorAlbaranesDevProveedor.Create(AOwner: TComponent); +begin + inherited; + + FHeaderText := 'Lista de órdenes de devolución de proveedor'; + FWindowCaption := FHeaderText; +end; + +procedure TfEditorAlbaranesDevProveedor.NuevoInterno; +var + Respuesta : Integer; + AAlbaran : IBizAlbaranProveedor; + ADevolucion : IBizAlbaranProveedor; +begin +// inherited; <-- No llamar al padre + + Respuesta := JsNuevoAlbaranDialog.Execute; + + if Respuesta <> IDCANCEL then + begin + case JsNuevoAlbaranDialog.CustomButtonResult of + 200 : begin // Utilizar un albaran + AAlbaran := FController.ElegirAlbaranes(FController.BuscarAlbaranesNormales, + 'Elija el albarán de proveedor que desea utilizar para dar de alta la orden de devolución.', False); + if Assigned(AAlbaran) then + begin + ADevolucion := FController.GenerarDevolucion(AAlbaran); + if Assigned(ADevolucion) then + begin + FController.Ver(ADevolucion); + actRefrescar.Execute; + end; + end; + end; + 100 : begin // Devolución nueva vacía + if FController.AnadirAlbaranDev(Albaranes) then + FController.Ver(Albaranes); + end; + end; + end; +end; + +procedure TfEditorAlbaranesDevProveedor.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := FWindowCaption + ' - ' + AppFactuGES.EmpresaActiva.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedor.dcu b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedor.dcu new file mode 100644 index 0000000..d4f5ba0 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedor.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedor.dfm b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedor.dfm new file mode 100644 index 0000000..74f6863 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedor.dfm @@ -0,0 +1,2917 @@ +inherited fEditorAlbaranesProveedor: TfEditorAlbaranesProveedor + Caption = 'Lista de albaranes de proveedor' + ClientWidth = 606 + ExplicitWidth = 614 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 606 + Caption = 'Lista de albaranes de proveedor' + ExplicitWidth = 606 + inherited Image1: TImage + Left = 579 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 5200000A4D6943435050686F746F73686F70204943432070726F66696C650000 + 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 + 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A + 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 + 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 + 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 + 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C + 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 + 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 + 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F + 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 + 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 + 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 + 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E + 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB + 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F + FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 + F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E + F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 + 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 + 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 + C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 + 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D + 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 + A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D + 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 + 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC + 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE + 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 + 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 + B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 + 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 + 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 + 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F + 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F + AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F + A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 + 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 + 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 + DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 + BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF + D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 + C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 + 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 + 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 + 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B + ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 + F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 + 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE + BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 + F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D + C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE + 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 + 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 + 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 + 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 + 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC + 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A + 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 + 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 + E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 + D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 + 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 + 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 + F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 + 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 + 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D + DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 + 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A + 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 + 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 + 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 + 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 + 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F + 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D + BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D + AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 + 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC + 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E + 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 + B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 + 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC + 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 + 4D410000B18E7CFB51930000026A4944415478DA63FCFFFF3F032D0123B2054B + B79CA49A6DD13EE68C582D004A906CD8DFBFFF80F83F980601EBC07C86733BA6 + E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3C275FB19E62DDD84DF02525C + EE507A9081455D89E1C08C1D0CEF0FC6312CD97890B005D87C802E06027B3BEC + 189C2B0E311CD97F0BCC7FB32F8661F996C394F9E0FF3F605803F11FA0EB41EC + 3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F18E70860DBB4E106701CCDBA4 + 80075B431936EF3D459C05F8520E3600D2B3A8508F61EB81D3C45B802BA86096 + C3E4616AE7E7EB32EC387486721F4C2C7064F8CA7E8E41F8D527BCBE7AF2D589 + 341FC02C6D2BE76788F0FBC520C1F883E1D74F0608FEC1C0F0134603F1C91344 + 58800DCC4C6464884D85B0F119CE2FC1C070F52E160B223C4DC1B9139B0F62DE + 3B31B008E28FEC3FEF1186638D8350371370EEC4E60364D783C0A7F71017C330 + C80767CE4082C6CE701FC3A1F3587C10E46CC4E0567D04A70520CD8400C87010 + C06A819FA3018357ED31AC1A414184EC0310F8FB17182CBF19187EFF02FAE23B + 03C38D1B0839AC1678DBE9C1CB155819032A7B40F49E7A51140B4086FE061AFE + E71784BD660D07839AC60F0636163C167858EB60351C54A1EC6F12C3880390C1 + 201F80F0966D1C0C52F2100BD85819184E5CC662818BA51656C341F4A1560914 + 0BDEBE44180EB268E71E0E061169880557EE383134AFDACB886181BDA93AD8B0 + 7F7F11C532CCC2E39DD2700B4006BE7B85301C1454FB0E7230F089FF6078F004 + 6238D6646A63A40A2E11B101D67D9E600B664EE5C09982DEFDB662D8FA491D77 + 59D43B65214ECDF6BCFB187818A5F1265190E12000B300003BBC36ACFF3E8021 + 0000000049454E44AE426082} + ExplicitLeft = 579 + end + end + inherited TBXDock: TTBXDock + Width = 606 + ExplicitWidth = 606 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 606 + end + inherited tbxFiltro: TTBXToolbar + ExplicitWidth = 427 + inherited lblAno: TTBXLabelItem + Visible = True + end + inherited cbxListaAnos: TTBXComboBoxItem + Visible = True + end + inherited sepAno: TTBXSeparatorItem + Visible = True + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 606 + object TBXSubmenuItem2: TTBXSubmenuItem [4] + Caption = 'A&cciones' + object TBXItem40: TTBXItem + Action = actGenerarDevolucion + end + object TBXItem38: TTBXItem + Action = actGenerarFactura + end + end + end + inherited TBXTMain2: TTBXToolbar + Left = 427 + Visible = True + ExplicitLeft = 427 + ExplicitWidth = 179 + object TBXItem41: TTBXItem + Action = actGenerarDevolucion + DisplayMode = nbdmImageAndText + end + object TBXItem39: TTBXItem + Action = actGenerarFactura + DisplayMode = nbdmImageAndText + end + end + end + inherited StatusBar: TJvStatusBar + Width = 606 + ExplicitWidth = 606 + end + inherited EditorActionList: TActionList + inherited actNuevo: TAction + ImageIndex = 21 + end + inherited actConfPagina: TAction + Visible = False + end + inherited actPrevisualizar: TAction + Visible = True + end + inherited actImprimir: TAction + Visible = True + end + inherited actAnchoAuto: TAction + ImageIndex = 22 + end + object actGenerarFactura: TAction + Category = 'Acciones' + Caption = 'Generar factura' + ImageIndex = 23 + OnExecute = actGenerarFacturaExecute + OnUpdate = actGenerarFacturaUpdate + end + object actGenerarDevolucion: TAction + Category = 'Acciones' + Caption = 'Generar devoluci'#243'n' + Hint = + 'Generar una orden de devoluci'#243'n a partir del albar'#225'n seleccionad' + + 'o' + ImageIndex = 23 + OnExecute = actGenerarDevolucionExecute + OnUpdate = actGenerarDevolucionUpdate + end + end + inherited SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000001744944415478DA63FCFFFF3FC394 + C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F19ACFDF319CEED + 98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC5BBA09D3007CE0 + D7EFBF609B4178C98683D80D40770136B0AED69461E59623B80D80391B04FE01 + E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D760CCEE587E036 + 07359F66585A6AC0B069CF49FC06C06CFE7CFB30C3CBC5B1F87CE48261C0C15E + 0706FBE20360D999EC710CCA0D350CECECE9183A7FFE9CC9302FB18501C30090 + B3617E7ED6A6C6A0D5FE18AC180E7EFC00E2EF0CB3771930306F4F45189011E5 + C6E0587A10C516900B500C0069FEF00E62C02927540392C39CC1B6C2423DA4F5 + 0CAA0130CD60037E32CCBE15846A405C90034A9445769E4718F0712242F3870F + 1017BC4A413520CA0FE177B841338C20063CAC47688679E15719AA01A15ED60C + ABB71D450903A76BA9E05898BD4A1E6B1CA218004A18E8409BF70D8315EB719C + 89C05E9EC10500D1295EA9BD5461080000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B3A00000B3A01647F570D0000015D4944415478DA + 63FCFFFF3F030830323232C0C0CEB58DCA2F6E6CBDF3FEF129B818C30F061490 + 3FFF3F58032336032E9C58FD9F8B47904155DB192EF6FFD72B867F9F2F31FCB9 + E3CA3063061E0380B6DBB373F01CB076CD66606165C7AAB96001923E6403809A + 9979F925FEC8299B32482B18E2D40C16C7614032D08039164EA97017810CF875 + 5E1CAC196F18EC5AD7C40F74FA073DB36006411179B8E6FF3F5F32FCBEA687A2 + 196B18000D681797D6AAD06008852B64D5BA0434E4251833000DFBFBA2087718 + 2CEF76FFFFE1E119865F5FDF81F9B993706BC61906D0589056D7D07F2223CE8D + 53332103DAC5C4A52B749438706AC6170BECACAC6C3FF4547918F8397FE3D48C + 3F1A79F9E7982A7F66F8FBBA16A7669C061CDB35E1BF9CAA1D83C84B23BC9AB1 + 1A008C466BA0F38F5888D632CC9AF907AF66AC065C383AF73FC7B7150C3B97ED + 21A819AB0137CE2CFBBF776E2643CE8C4F0435231B00004A4C11F0D3652A8300 + 00000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001BE4944415478DA + 63FCFFFF3F032D0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80 + F83F980601EBC07C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3 + C275FB19E62DDD84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD978 + 90B005D87C802E06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9 + E0FF3F605803F11FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F1 + 8E70860DBB4E106701CCDBA480075B431936EF3D459C05F8520E3600D2B3A850 + 8F61EB81D3C45B802BA86096C3E4616AE7E7EB32EC387486763E989DA3CDB0E7 + E839DAF96046A626C3FE131768E783A969EA0C874E5FC26F4184A729387792E3 + 838929AA0CC7CE5EC16F41A89B09387792E3839E042586D317AFE3B720C8D988 + C1ADFA08591674C62A309CBB7213BF057E8E060C5EB5C7F01A06B27CC1913F70 + 7E820D0BD882B62839868BD76FE3B7C0DB4E0F5EAEC0CA1850D9032BF393275F + C1881F18BF394296E1CACD3BF82DF0B0D6C16938884E9B760D6BF0116D818BA5 + 164EC3411667CDB88133E888B2C0DE541D6CD8BFBF88621966E1BFFFFFB1061F + 322068818D912AB844A404E0B5A077CA428A0C8701980500619929EF09CFCE42 + 0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000001B94944415478DA + 63FCFFFF3F032D01E38058C0C8C888C2DFB9B651F9C58DAD77DE3F3E85AAF007 + 7643F3E7FF6724C9828B27D7FCE7E0E46350D3754511FFFFEB15C3BFCF9718FE + 7FB90CC40F18FE7D99C43063068916005D6FCEC2CA71C2CE239F8185959DA0E1 + 050B50CD2468C1C903F3FF4B486B32C8A9986375FDBF179B510C07CB116B01D0 + F5C15C3C426BAC5DB3512CC56738D116000D67061AFE4755DB99411CE803620D + 27C5827C0161B90966F6091841F3E7762BDC7064407410ED5AD7C40F8CD80FC6 + D6D10CFC42D22886FFFFF992E1EFA339600B9001497100B4A05B4246BB44CF2C + 18C3F0FFBF209801C4474B3D4407D1F26EF7FF1F1E9E61F8F5F51D5C2C77D225 + A20C272915415392B4BA9ACC13194939A20C27C7826E7131C1126D6521A20C27 + C902A0E1DC2C2CCC5F0CD5051878397E116538A916E40BF0734F3052FCCEF0FF + FB6BA20C27DA027046E364FFA322C5C420CCF28468C349B1C01F68C10633B967 + C0A021DE70A22D38B9A7E7BF28DF1F06A97F1524194E9405C08C660C8CDC3316 + 624D0CB367FE22C970A22CB87864F27FB66F5B18762DDF45B2E1445970E3F4F4 + FF7BE75530E4CCF844B2E14459404D40730B006B5E9AE0A24640FE0000000049 + 454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end> + Bitmap = {} + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [7] + end + inherited dsDataTable: TDADataSource [8] + end + inherited GridPopupMenu: TPopupMenu + inherited N2: TMenuItem + Visible = False + end + object Generardevolucin1: TMenuItem [9] + Action = actGenerarDevolucion + end + object Generarfactura1: TMenuItem [10] + Action = actGenerarFactura + end + object N5: TMenuItem [11] + Caption = '-' + end + end + object JsNuevoAlbaranDialog: TJSDialog + Content.Strings = ( + #191'C'#243'mo desea dar de alta el albar'#225'n?') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Nuevo albar'#225'n de proveedor' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Albar'#225'n nuevo vac'#237'o.' + Value = 100 + end + item + Caption = 'Utilizar un pedido de proveedor.' + Value = 200 + Info.Strings = ( + + 'Puede utilizar un pedido de proveedor existente para dar de alta' + + ' el albar'#225'n nuevo.') + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Left = 144 + Top = 112 + end + object JsPrevisualizarDialog: TJSDialog + Content.Strings = ( + 'Elija una opci'#243'n:') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Previsualizar...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Previsualizar el albaran/es seleccionado/s' + Value = 100 + Default = True + end + item + Caption = 'Previsualizar la lista de albaranes actual' + Value = 200 + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 500 + Left = 232 + Top = 112 + end + object JsImprimirDialog: TJSDialog + Content.Strings = ( + 'Elija una opci'#243'n:') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Imprimir...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Imprimir el albaran/es seleccionado/s' + Value = 100 + Default = True + end + item + Caption = 'Imprimir la lista de albaranes actual' + Value = 200 + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 500 + Left = 264 + Top = 112 + end + object JsListaAlbaranesNoEliminados: TJSDialog + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = + 'Los siguientes albaranes no han podido ser eliminados, porque es' + + 't'#225'n asociados a una factura' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + ButtonBar.Buttons = [cbOK] + ButtonBar.Cancel = cbOK + ButtonBar.UseCancel = False + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 184 + Top = 112 + end +end diff --git a/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedor.pas b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedor.pas new file mode 100644 index 0000000..697cc42 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedor.pas @@ -0,0 +1,416 @@ +unit uEditorAlbaranesProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, Menus, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems, + TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, + JvNavigationPane, uViewGrid, pngimage, JvComponentBase, + uEditorGridBase, + uBizAlbaranesProveedor, uIEditorAlbaranesProveedor, uAlbaranesProveedorController, + uCustomView, uViewBase, uViewBarraSeleccion, uViewGridBase, + uViewAlbaranesProveedor, JvExComCtrls, JvStatusBar, JSDialog, uDAInterfaces; + +type + TfEditorAlbaranesProveedor = class(TfEditorGridBase, IEditorAlbaranesProveedor) + actGenerarFactura: TAction; + JsNuevoAlbaranDialog: TJSDialog; + JsPrevisualizarDialog: TJSDialog; + JsImprimirDialog: TJSDialog; + TBXItem39: TTBXItem; + JsListaAlbaranesNoEliminados: TJSDialog; + actGenerarDevolucion: TAction; + N5: TMenuItem; + Generardevolucin1: TMenuItem; + Generarfactura1: TMenuItem; + TBXSubmenuItem2: TTBXSubmenuItem; + TBXItem38: TTBXItem; + TBXItem40: TTBXItem; + TBXItem41: TTBXItem; + procedure FormShow(Sender: TObject); + procedure actGenerarFacturaExecute(Sender: TObject); + procedure actGenerarFacturaUpdate(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + procedure OnListaAnosChange(Sender: TObject; const Text: string); + procedure actGenerarDevolucionUpdate(Sender: TObject); + procedure actGenerarDevolucionExecute(Sender: TObject); + + protected + FAlbaranes: IBizAlbaranProveedor; + FController : IAlbaranesProveedorController; + + function GetAlbaranes: IBizAlbaranProveedor; + procedure SetAlbaranes(const Value: IBizAlbaranProveedor); + + function GetController : IAlbaranesProveedorController; virtual; + procedure SetController (const Value : IAlbaranesProveedorController); virtual; + + procedure NuevoInterno; override; + procedure ModificarInterno; override; + procedure EliminarInterno; override; + procedure DuplicarInterno; override; + procedure PrevisualizarInterno; override; + procedure ImprimirInterno; override; + procedure RefrescarInterno; override; + + //Si queremos crear otra vista para el editor heredado solo tendriamos que + //sobreescribir este metodo + procedure AsignarVista; virtual; + + public + procedure PonerTitulos(const ATitulo: string = ''); override; + property Albaranes: IBizAlbaranProveedor read GetAlbaranes write SetAlbaranes; + property Controller : IAlbaranesProveedorController read GetController write SetController; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +uses + uDataModuleAlbaranesProveedor, uDataModuleUsuarios, uFactuGES_App, + uGenerarFacturasProvAlbProvUtils, + uGenerarAlbaranesProvUtils, uDialogOpcionesImpresionAlbaranesProveedor, + uEditorBase, schAlbaranesProveedorClient_Intf, + uGridStatusUtils, uDBSelectionListUtils; + +{$R *.dfm} + +{ +*************************** TfEditorAlbaranesProveedor *************************** +} +procedure TfEditorAlbaranesProveedor.actEliminarUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := not (FAlbaranes.ID_FACTURA > 0) +end; + +procedure TfEditorAlbaranesProveedor.actGenerarDevolucionExecute( + Sender: TObject); +var + ADevolucion : IBizAlbaranProveedor; +begin + inherited; + ADevolucion := FController.GenerarDevolucion(FAlbaranes); + if Assigned(ADevolucion) then + FController.Ver(ADevolucion); +end; + +procedure TfEditorAlbaranesProveedor.actGenerarDevolucionUpdate( + Sender: TObject); +begin + (Sender as TAction).Enabled := HayDatos + and not (ViewGrid.NumSeleccionados > 1) + and (Albaranes.REF_FACTURA = '') + and ViewGrid.esSeleccionCeldaDatos; +end; + +procedure TfEditorAlbaranesProveedor.actGenerarFacturaExecute(Sender: TObject); +begin + inherited; + GenerarFacturaProvAlbProv(Albaranes.ID); + actRefrescar.Execute; +end; + +procedure TfEditorAlbaranesProveedor.actGenerarFacturaUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos + and not (ViewGrid.NumSeleccionados > 1) + and (Albaranes.REF_FACTURA = '') + and ViewGrid.esSeleccionCeldaDatos; +end; + +procedure TfEditorAlbaranesProveedor.AsignarVista; +begin + ViewGrid := CreateView(TfrViewAlbaranesProveedor) as IViewAlbaranesProveedor; +end; + +constructor TfEditorAlbaranesProveedor.Create(AOwner: TComponent); +begin + inherited; + + FHeaderText := 'Lista de albaranes de proveedor'; + FWindowCaption := FHeaderText; + + AsignarVista; +end; + +destructor TfEditorAlbaranesProveedor.Destroy; +begin + FAlbaranes := NIL; + FController := NIL; + inherited; +end; + +procedure TfEditorAlbaranesProveedor.DuplicarInterno; +var + AAlbaran : IBizAlbaranProveedor; +begin + inherited; + AAlbaran := FController.Duplicar(Albaranes); + try + FController.Ver(AAlbaran); + finally + actRefrescar.Execute; + end; +end; + +procedure TfEditorAlbaranesProveedor.EliminarInterno; +var + AAlbaranes: IBizAlbaranProveedor; + AllItems: Boolean; +begin + AAlbaranes := Nil; + AllItems := False; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + if AllItems then + begin + if (Application.MessageBox('Desea borrar los albaranes de proveedor seleccionados?', 'Atencin', MB_YESNO) = IDYES) then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Albaranes as ISeleccionable).SelectedRecords); + AAlbaranes := (Controller as IAlbaranesProveedorController).ExtraerSeleccionados(Albaranes) as IBizAlbaranProveedor; + end + end + else begin + if (Application.MessageBox('Desea borrar el albarn de proveedor seleccionado?', 'Atencin', MB_YESNO) = IDYES) then + AAlbaranes := Albaranes; + end; + + if Assigned(AAlbaranes) then + begin + FController.Eliminar(AAlbaranes, AllItems); + if AllItems then + begin + if (AAlbaranes.DataTable.RecordCount > 0) then + begin + with AAlbaranes.DataTable do + begin + First; + while not EOF do + begin + JsListaAlbaranesNoEliminados.Content.Add('Ref. albarn: ' + AAlbaranes.REFERENCIA + ' ' + AAlbaranes.NOMBRE); + Next; + end; + end; + JsListaAlbaranesNoEliminados.Execute; + end; + actRefrescar.Execute; + end; + end; + + ViewGrid.GotoFirst; +end; + +procedure TfEditorAlbaranesProveedor.FormShow(Sender: TObject); +begin + cbxListaAnos.OnChange := OnListaAnosChange; //OJO SIEMPRE ANTES DEL INHERITED + + inherited; + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Albaranes) then + raise Exception.Create('No hay ningn albarn asignado'); + + Albaranes.DataTable.Active := True; + ViewGrid.GotoFirst; +end; + +function TfEditorAlbaranesProveedor.GetController: IAlbaranesProveedorController; +begin + Result := FController; +end; + +procedure TfEditorAlbaranesProveedor.ImprimirInterno; +var + Respuesta : Integer; + AAlbaranes: IBizAlbaranProveedor; + AllItems: Boolean; + FImprimirPrecios : Boolean; + FImprimirRefProveedor : Boolean; + +begin + AAlbaranes := Nil; + AllItems := False; + FImprimirPrecios := True; + FImprimirRefProveedor := True; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + //Si esta agrupado solo podr imprimir la lista de elementos visibles + if not ViewGrid.EsSeleccionCeldaDatos then + inherited + else + begin + Respuesta := JsImprimirDialog.Execute; + if Respuesta <> IDCANCEL then + begin + case JsImprimirDialog.CustomButtonResult of + 200 : begin // Lista de elementos visibles + inherited; + end; + 100 : begin // Elemento Seleccionado + if AllItems then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Albaranes as ISeleccionable).SelectedRecords); + AAlbaranes := (Controller as IAlbaranesProveedorController).ExtraerSeleccionados(Albaranes) as IBizAlbaranProveedor; + end + else + AAlbaranes := Albaranes; + + if Assigned(AAlbaranes) then + begin + if ElegirOpcionesImpresionAlbaranProveedor(FImprimirPrecios, FImprimirRefProveedor) then + FController.Print(AAlbaranes, AllItems, FImprimirPrecios, FImprimirRefProveedor); + end; + end; + end; + end; + end; +end; + +function TfEditorAlbaranesProveedor.GetAlbaranes: IBizAlbaranProveedor; +begin + Result := FAlbaranes; +end; + +procedure TfEditorAlbaranesProveedor.ModificarInterno; +begin + inherited; + FController.Ver(Albaranes); +end; + +procedure TfEditorAlbaranesProveedor.NuevoInterno; +var + Respuesta : Integer; + +begin + inherited; + + Respuesta := JsNuevoAlbaranDialog.Execute; + + if Respuesta <> IDCANCEL then + begin + case JsNuevoAlbaranDialog.CustomButtonResult of + 200 : begin // Utilizar un pedido + GenerarAlbaranProv; + actRefrescar.Execute; + end; + 100 : begin // Albaran nuevo vacio + if FController.Anadir(Albaranes) then + FController.Ver(Albaranes); + end; + end; + end; +end; + +procedure TfEditorAlbaranesProveedor.OnListaAnosChange(Sender: TObject; const Text: string); +begin + Controller.FiltrarAno(Albaranes, DynWhereDataTable, Text); + if Albaranes.DataTable.Active then + RefrescarInterno; +end; + +procedure TfEditorAlbaranesProveedor.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := FWindowCaption + ' - ' + AppFactuGES.EmpresaActiva.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorAlbaranesProveedor.PrevisualizarInterno; +var + Respuesta : Integer; + AAlbaranes: IBizAlbaranProveedor; + AllItems: Boolean; + FImprimirPrecios : Boolean; + FImprimirRefProveedor : Boolean; + +begin + AAlbaranes := Nil; + AllItems := False; + FImprimirPrecios := True; + FImprimirRefProveedor := True; + + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + //Si esta agrupado solo podr imprimir la lista de elementos visibles + if not ViewGrid.EsSeleccionCeldaDatos then + inherited + else + begin + Respuesta := JsPrevisualizarDialog.Execute; + if Respuesta <> IDCANCEL then + begin + case JsPrevisualizarDialog.CustomButtonResult of + 200 : begin // Lista de elementos visibles + inherited; + end; + 100 : begin // Elemento Seleccionado + if AllItems then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Albaranes as ISeleccionable).SelectedRecords); + AAlbaranes := (Controller as IAlbaranesProveedorController).ExtraerSeleccionados(Albaranes) as IBizAlbaranProveedor; + end + else + AAlbaranes := Albaranes; + + + if Assigned(AAlbaranes) then + begin + if ElegirOpcionesImpresionAlbaranProveedor(FImprimirPrecios, FImprimirRefProveedor) then + FController.Preview(AAlbaranes, AllItems, FImprimirPrecios, FImprimirRefProveedor); + end; + end; + end; + end; + end; +end; + +procedure TfEditorAlbaranesProveedor.RefrescarInterno; +begin + //Volvemos a cargar los aos de los albaranes + if Assigned(FController) then + ListaAnos := FController.DarListaAnosAlbaranes; + + inherited; +end; + +procedure TfEditorAlbaranesProveedor.SetController(const Value: IAlbaranesProveedorController); +begin + FController := Value; + + if Assigned(FController) then + ListaAnos := FController.DarListaAnosAlbaranes; +end; + +procedure TfEditorAlbaranesProveedor.SetAlbaranes(const Value: IBizAlbaranProveedor); +begin + FAlbaranes := Value; + + if Assigned(FAlbaranes) then + begin + //Se guarda el where de la sentencia origen, por si el editor tiene filtros que + //afecten a este where y en un futuro se desea volver al where origen (filtro de ao)) + DynWhereDataTable := FAlbaranes.DataTable.DynamicWhere.Xml; + + dsDataTable.DataTable := FAlbaranes.DataTable; + if Assigned(ViewGrid) then + (ViewGrid as IViewAlbaranesProveedor).Albaranes := Albaranes; + end; +end; + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedorReport.dcu b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedorReport.dcu new file mode 100644 index 0000000..2a695c6 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedorReport.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedorReport.dfm b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedorReport.dfm new file mode 100644 index 0000000..b4313f9 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedorReport.dfm @@ -0,0 +1,14 @@ +inherited fEditorAlbaranesProveedorPreview: TfEditorAlbaranesProveedorPreview + Caption = 'Previsualizar el albar'#225'n de proveedor' + PixelsPerInch = 96 + TextHeight = 13 + inherited TBXDock: TTBXDock + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 540 + object TBXItem58: TTBXItem [1] + Action = actExportarRTF + Images = SmallImages + end + end + end +end diff --git a/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedorReport.pas b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedorReport.pas new file mode 100644 index 0000000..f33fd72 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedorReport.pas @@ -0,0 +1,76 @@ +unit uEditorAlbaranesProveedorReport; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorPreview, JvAppStorage, JvAppRegistryStorage, JvComponentBase, + JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, + TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, + ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uIEditorAlbaranesProveedorPreview, + JvExComCtrls, JvStatusBar, frxExportImage, frxExportPDF, frxDCtrl, frxClass, + frxDMPExport, frxGradient, frxChBox, frxCross, frxRich, frxOLE, frxBarcode, + frxExportText, frxExportRTF, frxExportMail, frxExportXLS; + +type + TfEditorAlbaranesProveedorPreview = class(TfEditorPreview, IEditorAlbaranesProveedorPreview) + TBXItem58: TTBXItem; + procedure actExportarRTFExecute(Sender: TObject); + private + FVerPrecios : Boolean; + FVerRefProveedor : Boolean; + function GetVerPrecios: Boolean; + function GetVerRefProveedor: Boolean; + procedure SetVerPrecios(const Value: Boolean); + procedure SetVerRefProveedor(const Value: Boolean); + { Private declarations } + public + property VerPrecios : Boolean read GetVerPrecios write SetVerPrecios; + property VerRefProveedor : Boolean read GetVerRefProveedor write SetVerRefProveedor; + end; + + + +implementation +{$R *.dfm} + +uses + uAlbaranesProveedorReportController, uDialogUtils; + +procedure TfEditorAlbaranesProveedorPreview.actExportarRTFExecute( + Sender: TObject); +var + I: Integer; +begin + // inherited; <- No llamar al padre + if not Assigned(Controller) then + raise Exception.Create('No se ha asignado el controlador necesario'); + + for I := 0 to ListaID.Count - 1 do + if (Controller as IAlbaranesProveedorReportController).ExportToWord(ListaID[I], '', + FVerPrecios, FVerRefProveedor) then + ShowInfoMessage('El albarn de proveedor se ha exportado correctamente.'); + +end; + +function TfEditorAlbaranesProveedorPreview.GetVerPrecios: Boolean; +begin + Result := FVerPrecios; +end; + +function TfEditorAlbaranesProveedorPreview.GetVerRefProveedor: Boolean; +begin + Result := FVerRefProveedor; +end; + +procedure TfEditorAlbaranesProveedorPreview.SetVerPrecios(const Value: Boolean); +begin + FVerPrecios := Value; +end; + +procedure TfEditorAlbaranesProveedorPreview.SetVerRefProveedor(const Value: Boolean); +begin + FVerRefProveedor := Value; +end; + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Views/uEditorDireccionEntregaAlbaranProveedor.dcu b/Source/Modulos/Albaranes de proveedor/Views/uEditorDireccionEntregaAlbaranProveedor.dcu new file mode 100644 index 0000000..819b45d Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Views/uEditorDireccionEntregaAlbaranProveedor.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Views/uEditorDireccionEntregaAlbaranProveedor.dfm b/Source/Modulos/Albaranes de proveedor/Views/uEditorDireccionEntregaAlbaranProveedor.dfm new file mode 100644 index 0000000..61c886f --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorDireccionEntregaAlbaranProveedor.dfm @@ -0,0 +1,191 @@ +object fEditorDireccionEntregaAlbaranProveedor: TfEditorDireccionEntregaAlbaranProveedor + Left = 227 + Top = 108 + BorderStyle = bsDialog + Caption = 'Datos de la direcci'#243'n de entrega:' + ClientHeight = 257 + ClientWidth = 453 + Color = clBtnFace + ParentFont = True + OldCreateOrder = True + Position = poOwnerFormCenter + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + DesignSize = ( + 453 + 257) + PixelsPerInch = 96 + TextHeight = 13 + object Bevel1: TBevel + Left = 8 + Top = 14 + Width = 349 + Height = 225 + Anchors = [akLeft, akTop, akRight] + Shape = bsFrame + end + object Label1: TLabel + Left = 20 + Top = 25 + Width = 110 + Height = 13 + AutoSize = False + Caption = 'Direcci'#243'n:' + end + object Label4: TLabel + Left = 20 + Top = 143 + Width = 110 + Height = 13 + AutoSize = False + Caption = 'C'#243'digo postal:' + end + object Label6: TLabel + Left = 20 + Top = 185 + Width = 109 + Height = 13 + AutoSize = False + Caption = 'Persona de contacto:' + end + object Label7: TLabel + Left = 21 + Top = 210 + Width = 109 + Height = 13 + AutoSize = False + Caption = 'Tel'#233'fono:' + end + object Label3: TLabel + Left = 20 + Top = 90 + Width = 110 + Height = 13 + AutoSize = False + Caption = 'Provincia:' + end + object Label2: TLabel + Left = 21 + Top = 117 + Width = 110 + Height = 13 + AutoSize = False + Caption = 'Poblaci'#243'n:' + end + object OKBtn: TButton + Left = 370 + Top = 13 + Width = 75 + Height = 25 + Anchors = [akTop, akRight] + Caption = '&Aceptar' + Default = True + ModalResult = 1 + TabOrder = 0 + end + object CancelBtn: TButton + Left = 370 + Top = 44 + Width = 75 + Height = 25 + Anchors = [akTop, akRight] + Cancel = True + Caption = '&Cancelar' + ModalResult = 2 + TabOrder = 1 + end + object eDireccion: TDBEdit + Left = 135 + Top = 23 + Width = 210 + Height = 57 + AutoSelect = False + AutoSize = False + DataField = 'CALLE' + DataSource = dsDireccion + TabOrder = 2 + end + object eCodigoPostal: TDBEdit + Left = 135 + Top = 140 + Width = 210 + Height = 21 + DataField = 'CODIGO_POSTAL' + DataSource = dsDireccion + TabOrder = 3 + end + object ePersonaContacto: TDBEdit + Left = 135 + Top = 182 + Width = 210 + Height = 21 + DataField = 'PERSONA_CONTACTO' + DataSource = dsDireccion + TabOrder = 4 + end + object eTelefono: TDBEdit + Left = 136 + Top = 207 + Width = 210 + Height = 21 + DataField = 'TELEFONO' + DataSource = dsDireccion + TabOrder = 5 + end + object cbProvincia: TcxDBComboBox + Left = 136 + Top = 86 + DataBinding.DataField = 'PROVINCIA' + DataBinding.DataSource = dsDireccion + Properties.ImmediatePost = True + Properties.ImmediateUpdateText = True + Properties.PostPopupValueOnTab = True + Properties.OnInitPopup = cbProvinciaPropertiesInitPopup + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 6 + Width = 210 + end + object cbPoblacion: TcxDBComboBox + Left = 136 + Top = 113 + DataBinding.DataField = 'POBLACION' + DataBinding.DataSource = dsDireccion + Properties.ImmediatePost = True + Properties.ImmediateUpdateText = True + Properties.PostPopupValueOnTab = True + Properties.OnInitPopup = cbPoblacionPropertiesInitPopup + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 7 + Width = 210 + end + object dsDireccion: TDADataSource + Left = 16 + Top = 46 + end +end diff --git a/Source/Modulos/Albaranes de proveedor/Views/uEditorDireccionEntregaAlbaranProveedor.pas b/Source/Modulos/Albaranes de proveedor/Views/uEditorDireccionEntregaAlbaranProveedor.pas new file mode 100644 index 0000000..2d1ddb3 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorDireccionEntregaAlbaranProveedor.pas @@ -0,0 +1,202 @@ +unit uEditorDireccionEntregaAlbaranProveedor; + +interface + +uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, + Buttons, ExtCtrls, Mask, DBCtrls, DB, uDADataTable, + cxControls, cxContainer, cxEdit, cxTextEdit, cxDBEdit, + uIEditorDireccionEntregaAlbaranProveedor, uBizAlbaranesProveedor, + uDAInterfaces, cxGraphics, cxMaskEdit, cxDropDownEdit; + +type + TfEditorDireccionEntregaAlbaranProveedor = class(TForm, IEditorDireccionEntregaAlbaranProveedor) + OKBtn: TButton; + CancelBtn: TButton; + Bevel1: TBevel; + eDireccion: TDBEdit; + eCodigoPostal: TDBEdit; + Label1: TLabel; + Label4: TLabel; + dsDireccion: TDADataSource; + Label6: TLabel; + ePersonaContacto: TDBEdit; + Label7: TLabel; + eTelefono: TDBEdit; + Label3: TLabel; + cbProvincia: TcxDBComboBox; + Label2: TLabel; + cbPoblacion: TcxDBComboBox; + + procedure FormShow(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure cbProvinciaPropertiesInitPopup(Sender: TObject); + procedure cbPoblacionPropertiesInitPopup(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure FormDestroy(Sender: TObject); + + private + pDireccion: String; + pPoblacion: String; + pProvincia: String; + pCodigoPostal: String; + pPersonaContacto: String; + pTelefono: String; + FProvincias : TStringList; + FIDProvincia : Integer; //Almacenar la provincia que hay seleccionada para no cargar las poblaciones si no es necesario + FPoblaciones : TStringList; + FAlbaran : IBizAlbaranProveedor; + function GetAlbaran: IBizAlbaranProveedor; + procedure SetAlbaran(const Value: IBizAlbaranProveedor); + procedure CargarProvincias; + procedure CargarPoblaciones; + public + property Albaran: IBizAlbaranProveedor read GetAlbaran write SetAlbaran; + end; + +implementation +{$R *.dfm} + +uses + uProvinciasPoblacionesController, uStringsUtils; + +{ TfEditorDireccionEntrega } + +procedure TfEditorDireccionEntregaAlbaranProveedor.CargarPoblaciones; +var + i : integer; + +begin + if (FIDProvincia <> StrToInt(FProvincias.Values[cbProvincia.Text])) then + Begin + FIDProvincia := StrToInt(FProvincias.Values[cbProvincia.Text]); + + with TProvinciasPoblacionesController.Create do + try + FPoblaciones := DarListaPoblaciones(FIDProvincia); + + with cbPoblacion.Properties.Items do + begin + BeginUpdate; + try + Clear; + for i := 0 to FPoblaciones.Count - 1 do + Add(FPoblaciones.Names[i]); + finally + EndUpdate; + end; + end; + finally + Free; + end; + End; +end; + +procedure TfEditorDireccionEntregaAlbaranProveedor.CargarProvincias; +var + i : integer; +begin + with TProvinciasPoblacionesController.Create do + try + FProvincias := DarListaProvincias; + + with cbProvincia.Properties.Items do + begin + BeginUpdate; + try + Clear; + for i := 0 to FProvincias.Count - 1 do + Add(FProvincias.Names[i]); + finally + EndUpdate; + end; + end; + finally + Free; + end; +end; + +procedure TfEditorDireccionEntregaAlbaranProveedor.cbPoblacionPropertiesInitPopup( + Sender: TObject); +begin + ShowHourglassCursor; + try + FreeANDNIL(FPoblaciones); + if not Assigned(FProvincias) then + CargarProvincias; + if not EsCadenaVacia(cbProvincia.Text) and + (FProvincias.IndexOfName(cbProvincia.Text) <> -1) then + CargarPoblaciones + finally + HideHourglassCursor; + end; +end; + +procedure TfEditorDireccionEntregaAlbaranProveedor.cbProvinciaPropertiesInitPopup( + Sender: TObject); +begin + ShowHourglassCursor; + try + if not Assigned(FProvincias) then + CargarProvincias; + finally + HideHourglassCursor; + end; +end; + +procedure TfEditorDireccionEntregaAlbaranProveedor.FormClose(Sender: TObject; var Action: TCloseAction); +begin + //En el caso de cancelar se recuperan los valores iniciales + if (Self.ModalResult <> mrOk) and (dsDireccion.DataTable.State in dsEditModes) then + begin + eDireccion.Field.Value := pDireccion; + cbPoblacion.DataBinding.Field.Value := pPoblacion; + cbProvincia.DataBinding.Field.Value := pProvincia; + eCodigoPostal.Field.Value := pCodigoPostal; + ePersonaContacto.Field.Value := pPersonaContacto; + eTelefono.Field.Value := pTelefono; + end; +end; + +procedure TfEditorDireccionEntregaAlbaranProveedor.FormCreate(Sender: TObject); +begin + FIDProvincia := 0; + FProvincias := NIL; + FPoblaciones := NIL; +end; + +procedure TfEditorDireccionEntregaAlbaranProveedor.FormDestroy(Sender: TObject); +begin + if Assigned(FProvincias) then + FreeANDNIL(FProvincias); + + if Assigned(FPoblaciones) then + FreeANDNIL(FPoblaciones); +end; + +procedure TfEditorDireccionEntregaAlbaranProveedor.FormShow(Sender: TObject); +begin + //Guardamos los valores iniciales por si al final el usuario cancela + pDireccion := eDireccion.Text; + pPoblacion := cbPoblacion.Text; + pProvincia := cbProvincia.Text; + pCodigoPostal := eCodigoPostal.Text; + pPersonaContacto := ePersonaContacto.Text; + pTelefono := eTelefono.Text; +end; + +function TfEditorDireccionEntregaAlbaranProveedor.GetAlbaran: IBizAlbaranProveedor; +begin + Result := FAlbaran; +end; + +procedure TfEditorDireccionEntregaAlbaranProveedor.SetAlbaran( + const Value: IBizAlbaranProveedor); +begin + FAlbaran := Value; + if Assigned(FAlbaran) then + dsDireccion.DataTable := FAlbaran.DataTable + else + dsDireccion.DataTable := NIL; +end; + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Views/uEditorElegirAlbaranesProveedor.dcu b/Source/Modulos/Albaranes de proveedor/Views/uEditorElegirAlbaranesProveedor.dcu new file mode 100644 index 0000000..29fb87c Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Views/uEditorElegirAlbaranesProveedor.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Views/uEditorElegirAlbaranesProveedor.dfm b/Source/Modulos/Albaranes de proveedor/Views/uEditorElegirAlbaranesProveedor.dfm new file mode 100644 index 0000000..8bf378d --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorElegirAlbaranesProveedor.dfm @@ -0,0 +1,241 @@ +inherited fEditorElegirAlbaranesProveedor: TfEditorElegirAlbaranesProveedor + Caption = 'Seleccionar albar'#225'n de proveedor' + ClientWidth = 790 + ExplicitWidth = 798 + ExplicitHeight = 538 + PixelsPerInch = 96 + TextHeight = 13 + object pnlHeader: TPanel + Left = 0 + Top = 0 + Width = 656 + Height = 64 + Align = alTop + BevelOuter = bvNone + Color = clWhite + Padding.Left = 25 + Padding.Top = 8 + Padding.Right = 25 + Padding.Bottom = 8 + ParentBackground = False + TabOrder = 5 + object lblTitle: TLabel + AlignWithMargins = True + Left = 25 + Top = 8 + Width = 606 + Height = 13 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 0 + Margins.Bottom = 8 + Align = alTop + Caption = 'Seleccione el albar'#225'n de proveedor' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + ExplicitWidth = 135 + end + object lblComments: TLabel + AlignWithMargins = True + Left = 50 + Top = 29 + Width = 581 + Height = 27 + Margins.Left = 25 + Margins.Top = 0 + Margins.Right = 0 + Align = alClient + ExplicitWidth = 3 + ExplicitHeight = 13 + end + end + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 790 + Visible = False + ExplicitWidth = 790 + inherited Image1: TImage + Left = 763 + ExplicitLeft = 629 + end + end + inherited TBXDock: TTBXDock + Top = 87 + Width = 790 + ExplicitTop = 87 + ExplicitWidth = 790 + inherited tbxMain: TTBXToolbar + Left = 427 + ExplicitLeft = 427 + ExplicitWidth = 126 + inherited TBXItem2: TTBXItem + Visible = False + end + inherited TBXSeparatorItem1: TTBXSeparatorItem + Visible = False + end + inherited TBXItem5: TTBXItem + Visible = False + end + inherited TBXItem4: TTBXItem + Visible = False + end + inherited TBXSeparatorItem6: TTBXSeparatorItem + Visible = False + end + inherited TBXItem7: TTBXItem + Visible = False + end + inherited TBXSeparatorItem3: TTBXSeparatorItem + Visible = False + end + inherited TBXSeparatorItem10: TTBXSeparatorItem + Visible = False + end + inherited TBXSeparatorItem2: TTBXSeparatorItem + Visible = False + end + inherited TBXItem6: TTBXItem + Visible = False + end + inherited TBXItem36: TTBXItem + Action = actAnchoAuto2 + end + end + inherited tbxFiltro: TTBXToolbar + Top = 23 + DockPos = -202 + DockRow = 1 + ExplicitTop = 23 + inherited TBXItem34: TTBXItem + Action = actQuitarFiltro2 + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 790 + end + inherited TBXTMain2: TTBXToolbar + Left = 318 + Visible = False + ExplicitLeft = 318 + ExplicitWidth = 133 + end + end + inherited StatusBar: TJvStatusBar + Width = 790 + ExplicitWidth = 790 + end + inline frViewBarraSeleccion1: TfrViewBarraSeleccion [4] + Left = 0 + Top = 449 + Width = 790 + Height = 36 + Align = alBottom + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 449 + ExplicitWidth = 790 + ExplicitHeight = 36 + inherited JvFooter1: TJvFooter + Width = 790 + Height = 36 + ExplicitWidth = 790 + ExplicitHeight = 36 + inherited bSeleccionar: TJvFooterBtn + Left = 578 + Top = 3 + ExplicitLeft = 444 + ExplicitTop = 3 + end + inherited bCancelar: TJvFooterBtn + Left = 682 + Top = 4 + ExplicitLeft = 682 + ExplicitTop = 4 + end + end + inherited BarraSeleccionActionList: TActionList + inherited actSeleccionar: TAction + OnExecute = frViewBarraSeleccion1actSeleccionarExecute + OnUpdate = frViewBarraSeleccion1actSeleccionarUpdate + end + inherited actCancelar: TAction + OnExecute = frViewBarraSeleccion1actCancelarExecute + end + end + end + inherited EditorActionList: TActionList [5] + inherited actPrevisualizar: TAction + Enabled = False + Visible = False + end + inherited actImprimir: TAction + Enabled = False + Visible = False + end + inherited actExportarExcel: TAction + Enabled = False + Visible = False + end + inherited actGenerarFactura: TAction + Enabled = False + Visible = False + end + end + inherited SmallImages: TPngImageList [6] + end + inherited LargeImages: TPngImageList [7] + end + inherited JvFormStorage: TJvFormStorage [8] + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [9] + end + inherited dsDataTable: TDADataSource [10] + Left = 16 + Top = 168 + end + inherited StatusBarImages: TPngImageList [11] + end + inherited GridPopupMenu: TPopupMenu [12] + Left = 56 + Top = 192 + end + inherited JsNuevoAlbaranDialog: TJSDialog [13] + end + inherited JsPrevisualizarDialog: TJSDialog [14] + end + inherited JsImprimirDialog: TJSDialog [15] + end + object EditorSeleccionActionList: TActionList + Images = SmallImages + Left = 152 + Top = 192 + object actBuscar2: TAction + Category = 'Buscar' + Caption = 'Buscar' + ImageIndex = 10 + ShortCut = 114 + end + object actQuitarFiltro2: TAction + Category = 'Buscar' + Caption = 'Quitar filtro y ver todo' + ImageIndex = 19 + OnExecute = actQuitarFiltro2Execute + end + object actAnchoAuto2: TAction + Category = 'Ver' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 21 + OnExecute = actAnchoAuto2Execute + end + end +end diff --git a/Source/Modulos/Albaranes de proveedor/Views/uEditorElegirAlbaranesProveedor.pas b/Source/Modulos/Albaranes de proveedor/Views/uEditorElegirAlbaranesProveedor.pas new file mode 100644 index 0000000..09ca288 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorElegirAlbaranesProveedor.pas @@ -0,0 +1,127 @@ +unit uEditorElegirAlbaranesProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, DB, uDADataTable, Menus, JvAppStorage, JvAppRegistryStorage, + JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns, + ActnList, uCustomView, uViewBase, uViewGridBase, uViewGrid, + uViewAlbaranesProveedor, ComCtrls, TB2ExtItems, TBXExtItems, TBX, + TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvComponent, + JvNavigationPane, uViewBarraSeleccion, StdCtrls, + uEditorAlbaranesProveedor, uBizAlbaranesProveedor, uIEditorElegirAlbaranesProveedor, + JvExComCtrls, JvStatusBar, JSDialog, uDAInterfaces; + +type + TfEditorElegirAlbaranesProveedor = class(TfEditorAlbaranesProveedor, IEditorElegirAlbaranesProveedor) + frViewBarraSeleccion1: TfrViewBarraSeleccion; + lblTitle: TLabel; + lblComments: TLabel; + EditorSeleccionActionList: TActionList; + actBuscar2: TAction; + actQuitarFiltro2: TAction; + actAnchoAuto2: TAction; + pnlHeader: TPanel; + procedure frViewBarraSeleccion1actSeleccionarUpdate(Sender: TObject); + procedure frViewBarraSeleccion1actCancelarExecute(Sender: TObject); + procedure frViewBarraSeleccion1actSeleccionarExecute(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure actAnchoAuto2Execute(Sender: TObject); + procedure actQuitarFiltro2Execute(Sender: TObject); + protected + procedure SetMultiSelect (AValue : Boolean); + function GetMultiSelect : Boolean; + function GetAlbaranesProveedorSeleccionados: IBizAlbaranProveedor; + procedure SetViewGrid(const Value: IViewGridBase); override; + procedure SetMensaje (const AValue: String); + function GetMensaje: String; + public + property Mensaje : String read GetMensaje write SetMensaje; + property AlbaranesProveedorSeleccionados: IBizAlbaranProveedor read GetAlbaranesProveedorSeleccionados; + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + end; + +implementation + +uses + uEditorGridBase, cxGridCustomTableView, uIntegerListUtils, uDBSelectionListUtils, + uGridStatusUtils, uEditorBase, uAlbaranesProveedorController; + +{$R *.dfm} + +{ TfEditorElegirAlbaranesProveedor } + +procedure TfEditorElegirAlbaranesProveedor.actAnchoAuto2Execute(Sender: TObject); +begin + inherited; + actAnchoAuto.Execute; +end; + +procedure TfEditorElegirAlbaranesProveedor.actQuitarFiltro2Execute(Sender: TObject); +begin + inherited; + actQuitarFiltro.Execute; +end; + +procedure TfEditorElegirAlbaranesProveedor.FormShow(Sender: TObject); +begin + inherited; + EditorActionList.State := asSuspended; +end; + +procedure TfEditorElegirAlbaranesProveedor.frViewBarraSeleccion1actCancelarExecute( + Sender: TObject); +begin + inherited; + Close; +end; + +procedure TfEditorElegirAlbaranesProveedor.frViewBarraSeleccion1actSeleccionarExecute( + Sender: TObject); +begin + inherited; + ModalResult := mrOk; +end; + +procedure TfEditorElegirAlbaranesProveedor.frViewBarraSeleccion1actSeleccionarUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (ViewGrid._FocusedView.Controller.SelectedRowCount > 0) +end; + +function TfEditorElegirAlbaranesProveedor.GetAlbaranesProveedorSeleccionados: IBizAlbaranProveedor; +begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Albaranes as ISeleccionable).SelectedRecords); + // En SelectedRecords tengo los ID de las filas seleccionadas del grid + Result := (Controller as IAlbaranesProveedorController).ExtraerSeleccionados(Albaranes) as IBizAlbaranProveedor; +end; + +function TfEditorElegirAlbaranesProveedor.GetMensaje: String; +begin + Result := lblComments.Caption; +end; + +function TfEditorElegirAlbaranesProveedor.GetMultiSelect: Boolean; +begin + Result := ViewGrid.MultiSelect; +end; + +procedure TfEditorElegirAlbaranesProveedor.SetMensaje(const AValue: String); +begin + lblComments.Caption := AValue; +end; + +procedure TfEditorElegirAlbaranesProveedor.SetMultiSelect(AValue: Boolean); +begin + ViewGrid.MultiSelect := AValue; +end; + +procedure TfEditorElegirAlbaranesProveedor.SetViewGrid(const Value: IViewGridBase); +begin + inherited; + ViewGrid.OnDblClick := frViewBarraSeleccion1.actSeleccionar.OnExecute; +end; + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Views/uEditorElegirArticulosAlbaranProveedor.dcu b/Source/Modulos/Albaranes de proveedor/Views/uEditorElegirArticulosAlbaranProveedor.dcu new file mode 100644 index 0000000..022fa77 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Views/uEditorElegirArticulosAlbaranProveedor.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Views/uEditorElegirArticulosAlbaranProveedor.dfm b/Source/Modulos/Albaranes de proveedor/Views/uEditorElegirArticulosAlbaranProveedor.dfm new file mode 100644 index 0000000..a4c6ca5 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorElegirArticulosAlbaranProveedor.dfm @@ -0,0 +1,14 @@ +inherited fEditorElegirArticulosAlbaranProveedor: TfEditorElegirArticulosAlbaranProveedor + Caption = 'fEditorElegirArticulosAlbaranProveedor' + PixelsPerInch = 96 + TextHeight = 13 + inherited pnlHeader: TPanel + inherited lblTitle: TLabel + Width = 606 + end + inherited lblComments: TLabel + Width = 581 + Height = 24 + end + end +end diff --git a/Source/Modulos/Albaranes de proveedor/Views/uEditorElegirArticulosAlbaranProveedor.pas b/Source/Modulos/Albaranes de proveedor/Views/uEditorElegirArticulosAlbaranProveedor.pas new file mode 100644 index 0000000..3dbb719 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorElegirArticulosAlbaranProveedor.pas @@ -0,0 +1,65 @@ +unit uEditorElegirArticulosAlbaranProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorElegirArticulos, Menus, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, + StdActns, ActnList, uCustomView, uViewBase, uViewBarraSeleccion, ComCtrls, + JvExComCtrls, JvStatusBar, TBX, TB2ExtItems, TBXExtItems, TB2Item, TB2Dock, + TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, + uIEditorElegirArticulosAlbaranesProveedor, uBizContactos, + uDAInterfaces, uViewGridBase, uViewGrid, uViewArticulos, StdCtrls; + +type + TfEditorElegirArticulosAlbaranProveedor = class(TfEditorElegirArticulos, IEditorElegirArticulosAlbaranesProveedor) + procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); + private + FProveedor: IBizProveedor; + function GetProveedor: IBizProveedor; + procedure SetProveedor(const Value: IBizProveedor); + + public + property Proveedor: IBizProveedor read GetProveedor write SetProveedor; + constructor Create(AOwner: TComponent); override; + + end; + + +implementation +{$R *.dfm} + +uses uViewElegirArticulosAlbaranesProveedor; + +{ TfEditorElegirArticulosAlbaranProveedor } + +constructor TfEditorElegirArticulosAlbaranProveedor.Create(AOwner: TComponent); +begin + inherited; + ViewGrid := CreateView(TfrViewElegirArticulosAlbaranesProveedor) as IViewElegirArticulosAlbaranesProveedor; +end; + +procedure TfEditorElegirArticulosAlbaranProveedor.FormCloseQuery( + Sender: TObject; var CanClose: Boolean); +begin + FProveedor := Nil; + inherited; +end; + +function TfEditorElegirArticulosAlbaranProveedor.GetProveedor: IBizProveedor; +begin + Result := FProveedor; +end; + +procedure TfEditorElegirArticulosAlbaranProveedor.SetProveedor(const Value: IBizProveedor); +begin + FProveedor := Value; + if Assigned(FProveedor) then + begin + if Assigned(Self.ViewGrid) then + (Self.ViewGrid as IViewElegirArticulosAlbaranesProveedor).Proveedor := FProveedor; + end; +end; + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranDevProveedor.dcu b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranDevProveedor.dcu new file mode 100644 index 0000000..5437311 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranDevProveedor.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranDevProveedor.dfm b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranDevProveedor.dfm new file mode 100644 index 0000000..85e67e6 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranDevProveedor.dfm @@ -0,0 +1,244 @@ +inherited frViewAlbaranDevProveedor: TfrViewAlbaranDevProveedor + Height = 470 + ExplicitHeight = 470 + inherited dxLayoutControl1: TdxLayoutControl + Height = 470 + ExplicitHeight = 470 + inherited edtFechaAlbaran: TcxDBDateEdit + Left = 114 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 114 + ExplicitWidth = 330 + Width = 330 + end + inherited memObservaciones: TcxDBMemo + Left = 444 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 444 + ExplicitWidth = 186 + ExplicitHeight = 172 + Height = 172 + Width = 186 + end + inherited eReferencia: TcxDBTextEdit + Left = 114 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 114 + ExplicitWidth = 330 + Width = 330 + end + inherited frViewDireccionEntregaAlbaranProv1: TfrViewDireccionEntregaAlbaranProv + Width = 445 + Height = 199 + ExplicitWidth = 445 + ExplicitHeight = 199 + inherited dxLayoutControl1: TdxLayoutControl + Width = 445 + Height = 199 + ExplicitWidth = 445 + ExplicitHeight = 199 + inherited rdxDestino1: TRadioButton + Width = 402 + Caption = 'Salida del albar'#225'n del almac'#233'n:' + ExplicitWidth = 402 + end + inherited rdxDestino2: TRadioButton + Width = 287 + Caption = 'Salida del albar'#225'n desde esta otra direcci'#243'n:' + ExplicitWidth = 287 + end + inherited cbLista: TcxDBLookupComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 402 + Width = 402 + end + inherited bModificar: TBitBtn + Left = 254 + Top = 164 + ExplicitLeft = 254 + ExplicitTop = 164 + end + inherited txtDireccion: TStaticText + Width = 765 + Height = 25 + ExplicitWidth = 765 + ExplicitHeight = 25 + end + inherited cbListaObras: TcxDBLookupComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 402 + Width = 402 + end + inherited RadioButton1: TRadioButton + Width = 402 + Caption = 'Salida del albar'#225'n de la obra:' + ExplicitWidth = 402 + end + end + inherited ActionList1: TActionList + Left = 56 + Top = 0 + end + inherited dsAlbaran: TDADataSource + Left = 88 + Top = 0 + end + inherited dsAlmacenes: TDADataSource + Left = 136 + Top = 0 + end + inherited dsObras: TDADataSource + Left = 184 + Top = 0 + end + end + inherited cbFormaPago: TcxDBLookupComboBox + Left = 114 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 114 + ExplicitWidth = 192 + Width = 192 + end + inherited bFormasPago: TButton + Left = 282 + ExplicitLeft = 282 + end + inherited eReferenciaPedidoCli: TcxTextEdit + Left = 114 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 114 + ExplicitWidth = 192 + Width = 192 + end + inherited Button1: TButton + Left = 282 + ExplicitLeft = 282 + end + inherited eRefFactura: TcxDBTextEdit + Left = 114 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 114 + ExplicitWidth = 330 + Width = 330 + end + inherited eReferenciaProveedor: TcxDBTextEdit + Left = 114 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 114 + ExplicitWidth = 330 + Width = 330 + end + inherited eReferenciaFacturaProveedor: TcxDBTextEdit + Left = 114 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 114 + ExplicitWidth = 330 + Width = 330 + end + inherited frViewDatosYSeleccionProveedorAlbaran1: TfrViewDatosYSeleccionProveedorAlbaran + Left = 444 + Width = 411 + ExplicitLeft = 444 + ExplicitWidth = 411 + inherited dxLayoutControl1: TdxLayoutControl + Width = 411 + inherited edtlNombre: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 224 + Width = 224 + end + inherited edtNIFCIF: TcxDBTextEdit + Left = 248 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 248 + end + inherited edtPersonaContacto: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 283 + Width = 283 + end + inherited edtDireccion: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 121 + Width = 121 + end + inherited Button4: TButton + Left = 328 + ExplicitLeft = 328 + end + inherited Button5: TButton + Left = 328 + ExplicitLeft = 328 + end + inherited Button3: TBitBtn + Left = 153 + ExplicitLeft = 153 + end + end + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Group6: TdxLayoutGroup + inherited dxLayoutControl1Group1: TdxLayoutGroup + Caption = 'Datos de la orden' + inherited dxLayoutControl1Item2: TdxLayoutItem + Caption = 'Fecha de orden:' + end + inherited dxLayoutControl1Group5: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Item10: TdxLayoutItem + Caption = 'Ref. abono:' + end + inherited dxLayoutControl1Item12: TdxLayoutItem + Caption = 'Ref. abono prov.:' + end + end + inherited dxLayoutControl1Group8: TdxLayoutGroup + Caption = 'Almac'#233'n de salida' + end + end + end + end +end diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranDevProveedor.pas b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranDevProveedor.pas new file mode 100644 index 0000000..1ae4c613 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranDevProveedor.pas @@ -0,0 +1,25 @@ +unit uViewAlbaranDevProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewAlbaranProveedor, cxGraphics, ActnList, DB, uDADataTable, + dxLayoutControl, cxTextEdit, StdCtrls, cxDropDownEdit, cxLookupEdit, + cxDBLookupEdit, cxDBLookupComboBox, uViewDireccionEntregaAlbaranProv, + uCustomView, uViewBase, uViewDatosYSeleccionProveedor, cxDBEdit, cxMemo, + cxContainer, cxEdit, cxMaskEdit, cxCalendar, cxControls, + uDAInterfaces, uViewDatosYSeleccionProveedorAlbaran; + +type + IViewAlbaranDevProveedor = interface(IViewAlbaranProveedor) + ['{63121947-FB27-4B10-81FA-28B1D144951B}'] + end; + + TfrViewAlbaranDevProveedor = class(TfrViewAlbaranProveedor, IViewAlbaranDevProveedor) + end; + +implementation +{$R *.dfm} + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranProveedor.dcu b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranProveedor.dcu new file mode 100644 index 0000000..e9ab740 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranProveedor.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranProveedor.dfm b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranProveedor.dfm new file mode 100644 index 0000000..3537cd7 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranProveedor.dfm @@ -0,0 +1,547 @@ +inherited frViewAlbaranProveedor: TfrViewAlbaranProveedor + Width = 827 + Height = 585 + OnCreate = CustomViewCreate + OnDestroy = CustomViewDestroy + ExplicitWidth = 827 + ExplicitHeight = 585 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 827 + Height = 585 + Align = alClient + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + DesignSize = ( + 827 + 585) + object edtFechaAlbaran: TcxDBDateEdit + Left = 119 + Top = 82 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_ALBARAN' + DataBinding.DataSource = DADataSource + Properties.ImmediatePost = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 2 + Width = 325 + end + object memObservaciones: TcxDBMemo + Left = 434 + Top = 235 + Anchors = [akLeft, akTop, akRight, akBottom] + DataBinding.DataField = 'OBSERVACIONES' + DataBinding.DataSource = DADataSource + Properties.ScrollBars = ssVertical + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 11 + Height = 287 + Width = 331 + end + object eReferencia: TcxDBTextEdit + Left = 119 + Top = 28 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REFERENCIA' + DataBinding.DataSource = DADataSource + Enabled = False + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 0 + Width = 325 + end + inline frViewDireccionEntregaAlbaranProv1: TfrViewDireccionEntregaAlbaranProv + Left = 22 + Top = 249 + Width = 422 + Height = 314 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 9 + ReadOnly = False + ExplicitLeft = 22 + ExplicitTop = 249 + ExplicitWidth = 422 + ExplicitHeight = 314 + inherited dxLayoutControl1: TdxLayoutControl + Width = 422 + Height = 314 + ExplicitWidth = 422 + ExplicitHeight = 314 + inherited rdxDestino1: TRadioButton + Width = 402 + ExplicitWidth = 402 + end + inherited rdxDestino2: TRadioButton + Width = 402 + ExplicitWidth = 402 + end + inherited cbLista: TcxDBLookupComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 402 + Width = 402 + end + inherited bModificar: TBitBtn + Left = 244 + Top = 279 + ExplicitLeft = 244 + ExplicitTop = 279 + end + inherited txtDireccion: TStaticText + Width = 402 + Height = 140 + ExplicitWidth = 402 + ExplicitHeight = 140 + end + inherited cbListaObras: TcxDBLookupComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 402 + Width = 402 + end + inherited RadioButton1: TRadioButton + Width = 402 + ExplicitWidth = 402 + end + end + inherited ActionList1: TActionList + Left = 32 + Top = 40 + end + end + object cbFormaPago: TcxDBLookupComboBox + Left = 119 + Top = 192 + DataBinding.DataField = 'ID_FORMA_PAGO' + DataBinding.DataSource = DADataSource + Properties.KeyFieldNames = 'ID' + Properties.ListColumns = < + item + FieldName = 'REFERENCIA' + end> + Properties.ListOptions.GridLines = glNone + Properties.ListOptions.ShowHeader = False + Properties.ListOptions.SyncMode = True + Properties.ListSource = dsFormaPago + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 7 + Width = 187 + end + object bFormasPago: TButton + Left = 272 + Top = 192 + Width = 132 + Height = 21 + Caption = 'Ver las formas de pago...' + TabOrder = 8 + OnClick = bFormasPagoClick + end + object eReferenciaPedidoCli: TcxTextEdit + Left = 119 + Top = 109 + Anchors = [akLeft, akTop, akRight] + Enabled = False + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 3 + Width = 187 + end + object Button1: TButton + Left = 272 + Top = 109 + Width = 132 + Height = 23 + Action = actVerPedido + TabOrder = 4 + end + object eRefFactura: TcxDBTextEdit + Left = 119 + Top = 138 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REF_FACTURA' + DataBinding.DataSource = DADataSource + Enabled = False + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 5 + Width = 325 + end + object eReferenciaProveedor: TcxDBTextEdit + Left = 119 + Top = 55 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REFERENCIA_PROVEEDOR' + DataBinding.DataSource = DADataSource + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 1 + Width = 325 + end + object eReferenciaFacturaProveedor: TcxDBTextEdit + Left = 119 + Top = 165 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REF_FACTURA_PROV' + DataBinding.DataSource = DADataSource + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 6 + Width = 325 + end + inline frViewDatosYSeleccionProveedorAlbaran1: TfrViewDatosYSeleccionProveedorAlbaran + Left = 434 + Top = 28 + Width = 411 + Height = 171 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 10 + ReadOnly = False + ExplicitLeft = 434 + ExplicitTop = 28 + ExplicitWidth = 411 + inherited dxLayoutControl1: TdxLayoutControl + Width = 411 + ExplicitWidth = 411 + inherited edtlNombre: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 224 + Width = 224 + end + inherited edtNIFCIF: TcxDBTextEdit + Left = 258 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 258 + end + inherited edtPersonaContacto: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 283 + Width = 283 + end + inherited edtDireccion: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 121 + Width = 121 + end + inherited Button4: TButton + Left = 338 + ExplicitLeft = 338 + end + inherited Button5: TButton + Left = 338 + ExplicitLeft = 338 + end + inherited Button3: TBitBtn + Left = 163 + ExplicitLeft = 163 + end + end + inherited dsProveedor: TDADataSource + Left = 288 + Top = 24 + end + inherited ActionList1: TActionList + Left = 312 + Top = 65528 + end + inherited dsAlbaran: TDADataSource + Left = 280 + Top = 65528 + end + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Group6: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + AutoAligns = [] + AlignHorz = ahClient + Caption = 'Datos del albar'#225'n' + object dxLayoutControl1Item3: TdxLayoutItem + Caption = 'Referencia:' + Control = eReferencia + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item11: TdxLayoutItem + Caption = 'Ref. proveedor:' + Control = eReferenciaProveedor + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item2: TdxLayoutItem + Caption = 'Fecha del albar'#225'n:' + Control = edtFechaAlbaran + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group5: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item8: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Ref. del pedido:' + Control = eReferenciaPedidoCli + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item9: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + ShowCaption = False + Control = Button1 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item10: TdxLayoutItem + Caption = 'Ref. factura:' + Control = eRefFactura + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item12: TdxLayoutItem + Caption = 'Ref. factura prov.:' + Control = eReferenciaFacturaProveedor + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group4: TdxLayoutGroup + ShowCaption = False + Visible = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item5: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Forma pago:' + Control = cbFormaPago + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item7: TdxLayoutItem + ShowCaption = False + Control = bFormasPago + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Group8: TdxLayoutGroup + AutoAligns = [] + AlignHorz = ahClient + AlignVert = avClient + Caption = 'Direcci'#243'n de entrega' + object dxLayoutControl1Item4: TdxLayoutItem + AutoAligns = [aaHorizontal] + AlignVert = avClient + Control = frViewDireccionEntregaAlbaranProv1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Group3: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group2: TdxLayoutGroup + Caption = 'Datos del proveedor' + object dxLayoutControl1Item1: TdxLayoutItem + Caption = 'New Item' + ShowCaption = False + Control = frViewDatosYSeleccionProveedorAlbaran1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group7: TdxLayoutGroup + AutoAligns = [aaHorizontal] + AlignVert = avClient + Caption = 'Observaciones' + object dxLayoutControl1Item6: TdxLayoutItem + AutoAligns = [aaHorizontal] + AlignVert = avClient + Control = memObservaciones + ControlOptions.ShowBorder = False + end + end + end + end + end + object DADataSource: TDADataSource + Left = 8 + Top = 24 + end + object ActionList1: TActionList + Left = 32 + Top = 120 + object actElegirDireccion: TAction + Caption = 'Elegir una direcci'#243'n de env'#237'o...' + OnUpdate = actElegirDireccionUpdate + end + object actVerPedido: TAction + Caption = 'Ver el pedido de prov...' + OnExecute = actVerPedidoExecute + OnUpdate = actVerPedidoUpdate + end + end + object dsFormaPago: TDADataSource + Left = 40 + Top = 24 + end +end diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranProveedor.pas b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranProveedor.pas new file mode 100644 index 0000000..ba92b0f --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranProveedor.pas @@ -0,0 +1,249 @@ +unit uViewAlbaranProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, uBizAlbaranesProveedor, DB, uDADataTable, uCustomView, + AppEvnts, StdCtrls, Mask, DBCtrls, + + uViewObservaciones, + cxGraphics, cxDropDownEdit, cxImageComboBox, cxDBEdit, cxContainer, cxEdit, + cxTextEdit, cxMaskEdit, cxCalendar, dxLayoutControl, cxControls, cxMemo, + uViewDireccionEntregaAlbaranProv, Buttons, ActnList, cxLookupEdit, + cxDBLookupEdit, cxDBLookupComboBox, uFormasPagoController, + uBizPedidosProveedor, uPedidosProveedorController, uBizFormasPago, + uDAInterfaces, uViewDatosYSeleccionProveedorAlbaran; + +type + IViewAlbaranProveedor = interface(IViewBase) + ['{2DA099CE-359A-46E8-90A0-D004FF09040A}'] + function GetAlbaran: IBizAlbaranProveedor; + procedure SetAlbaran(const Value: IBizAlbaranProveedor); + property Albaran: IBizAlbaranProveedor read GetAlbaran write SetAlbaran; + + function GetViewProveedorAlbaran: TfrViewDatosYSeleccionProveedorAlbaran; + property ViewProveedorAlbaran: TfrViewDatosYSeleccionProveedorAlbaran read GetViewProveedorAlbaran; + end; + + TfrViewAlbaranProveedor = class(TfrViewBase, IViewAlbaranProveedor) + DADataSource: TDADataSource; + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Item2: TdxLayoutItem; + edtFechaAlbaran: TcxDBDateEdit; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Group2: TdxLayoutGroup; + dxLayoutControl1Item6: TdxLayoutItem; + memObservaciones: TcxDBMemo; + dxLayoutControl1Item3: TdxLayoutItem; + eReferencia: TcxDBTextEdit; + dxLayoutControl1Group6: TdxLayoutGroup; + dxLayoutControl1Group7: TdxLayoutGroup; + dxLayoutControl1Group8: TdxLayoutGroup; + dxLayoutControl1Group3: TdxLayoutGroup; + ActionList1: TActionList; + actElegirDireccion: TAction; + dxLayoutControl1Item4: TdxLayoutItem; + frViewDireccionEntregaAlbaranProv1: TfrViewDireccionEntregaAlbaranProv; + dxLayoutControl1Item5: TdxLayoutItem; + cbFormaPago: TcxDBLookupComboBox; + dxLayoutControl1Item7: TdxLayoutItem; + bFormasPago: TButton; + dxLayoutControl1Group4: TdxLayoutGroup; + dsFormaPago: TDADataSource; + dxLayoutControl1Item8: TdxLayoutItem; + eReferenciaPedidoCli: TcxTextEdit; + dxLayoutControl1Item9: TdxLayoutItem; + Button1: TButton; + dxLayoutControl1Group5: TdxLayoutGroup; + actVerPedido: TAction; + dxLayoutControl1Item10: TdxLayoutItem; + eRefFactura: TcxDBTextEdit; + dxLayoutControl1Item11: TdxLayoutItem; + eReferenciaProveedor: TcxDBTextEdit; + dxLayoutControl1Item12: TdxLayoutItem; + eReferenciaFacturaProveedor: TcxDBTextEdit; + frViewDatosYSeleccionProveedorAlbaran1: TfrViewDatosYSeleccionProveedorAlbaran; + dxLayoutControl1Item1: TdxLayoutItem; + procedure CustomViewCreate(Sender: TObject); + procedure CustomViewDestroy(Sender: TObject); + procedure frViewProveedorAlbaranButton1Click(Sender: TObject); + procedure frViewProveedorAlbaranButton2Click(Sender: TObject); + procedure bFormasPagoClick(Sender: TObject); + procedure actVerPedidoExecute(Sender: TObject); + + procedure frViewProveedorAlbaranactElegirContactoUpdate(Sender: TObject); + procedure frViewProveedorAlbaranactAnadirContactoUpdate(Sender: TObject); + procedure actElegirDireccionUpdate(Sender: TObject); + procedure actVerPedidoUpdate(Sender: TObject); + + protected + FAlbaran : IBizAlbaranProveedor; + FViewProveedorAlbaran : TfrViewDatosYSeleccionProveedorAlbaran; + FFormasPago : IBizFormaPago; + FFormasPagoController : IFormasPagoController; + FPedidoAsociado : IBizPedidoProveedor; + FPedidoController : IPedidosProveedorController; + + function GetAlbaran: IBizAlbaranProveedor; + procedure SetAlbaran(const Value: IBizAlbaranProveedor); virtual; + function GetViewProveedorAlbaran: TfrViewDatosYSeleccionProveedorAlbaran; + public + property Albaran: IBizAlbaranProveedor read GetAlbaran write SetAlbaran; + property ViewProveedorAlbaran: TfrViewDatosYSeleccionProveedorAlbaran read GetViewProveedorAlbaran; + end; + +implementation + +{$R *.dfm} + +{ TfrViewAlbaranProveedor } + +uses + uProveedoresController, uBizDireccionesContacto, uAlbaranesProveedorController, + schAlbaranesProveedorClient_Intf; + + +procedure TfrViewAlbaranProveedor.actElegirDireccionUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := (not ReadOnly) and + Assigned(FAlbaran) and + Assigned(FViewProveedorAlbaran) and + FAlbaran.DataTable.Active and + Assigned(FAlbaran.Proveedor) and + Assigned(FAlbaran.Proveedor) and + Assigned(FAlbaran.Proveedor.Direcciones) and + FAlbaran.Proveedor.Direcciones.DataTable.Active and + (FAlbaran.Proveedor.Direcciones.DataTable.RecordCount > 0); +end; + +procedure TfrViewAlbaranProveedor.actVerPedidoExecute(Sender: TObject); +begin + inherited; + FPedidoController.Ver(FPedidoAsociado); +end; + +procedure TfrViewAlbaranProveedor.actVerPedidoUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := (Albaran.REF_PED_PROVEEDOR <> '') +end; + +procedure TfrViewAlbaranProveedor.bFormasPagoClick(Sender: TObject); +begin + inherited; + if Assigned(FFormasPago) then + FFormasPagoController.VerTodos(FFormasPago); +end; + +procedure TfrViewAlbaranProveedor.CustomViewCreate(Sender: TObject); +begin + inherited; + FPedidoAsociado := NIL; + FPedidoController := TPedidosProveedorController.Create; + FFormasPago := Nil; + FFormasPagoController := TFormasPagoController.Create; + FViewProveedorAlbaran := frViewDatosYSeleccionProveedorAlbaran1; + + eReferencia.Enabled := False; +end; + +procedure TfrViewAlbaranProveedor.CustomViewDestroy(Sender: TObject); +begin + FPedidoController := NIL; + FFormasPago := NIL; + FFormasPagoController := NIL; + FPedidoAsociado := NIL; + FViewProveedorAlbaran := NIL; + inherited; +end; + +procedure TfrViewAlbaranProveedor.frViewProveedorAlbaranactAnadirContactoUpdate(Sender: TObject); +begin + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := not Assigned(FPedidoAsociado); +end; + +procedure TfrViewAlbaranProveedor.frViewProveedorAlbaranactElegirContactoUpdate(Sender: TObject); +begin + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := (not Assigned(FPedidoAsociado)); +end; + +procedure TfrViewAlbaranProveedor.frViewProveedorAlbaranButton1Click(Sender: TObject); +begin + if Assigned(Albaran) and Assigned(Albaran.Proveedor) and + Assigned (Albaran.Detalles) and (Albaran.Detalles.RecordCount > 0) then + begin + if (Application.MessageBox('Si cambia de proveedor, se eliminarn todos sus artculos de la orden de devolucin actual, Desea continuar?', 'Atencin', MB_YESNO) = IDNO) then + Exit; + end; + FViewProveedorAlbaran.ElegirProveedor; +end; + +procedure TfrViewAlbaranProveedor.frViewProveedorAlbaranButton2Click(Sender: TObject); +begin + if Assigned(Albaran) and Assigned(Albaran.Proveedor) and + Assigned (Albaran.Detalles) and (Albaran.Detalles.RecordCount > 0) then + begin + if (Application.MessageBox('Si cambia de proveedor, se eliminarn todos sus artculos del la orden de devolucin actual, Desea continuar?', 'Atencin', MB_YESNO) = IDNO) then + Exit; + end; + FViewProveedorAlbaran.AnadirNuevoProveedor; +end; + +function TfrViewAlbaranProveedor.GetAlbaran: IBizAlbaranProveedor; +begin + Result := FAlbaran; +end; + +function TfrViewAlbaranProveedor.GetViewProveedorAlbaran: TfrViewDatosYSeleccionProveedorAlbaran; +begin + Result := FViewProveedorAlbaran; +end; + +procedure TfrViewAlbaranProveedor.SetAlbaran(const Value: IBizAlbaranProveedor); +begin + FAlbaran := Value; + if Assigned(FAlbaran) then + begin + DADataSource.DataTable := FAlbaran.DataTable; + + FFormasPago := FFormasPagoController.BuscarTodos; + dsFormaPago.DataTable := FFormasPago.DataTable; + dsFormaPago.DataTable.Active := True; + + FViewProveedorAlbaran.Albaran := FAlbaran; + frViewDireccionEntregaAlbaranProv1.AlbaranProveedor := FAlbaran; + + eReferenciaPedidoCli.Enabled := False; + eRefFactura.Enabled := False; + + FPedidoAsociado := NIL; + if (FAlbaran.ID_PEDIDO > 0) then + begin + FPedidoAsociado := FPedidoController.Buscar(FAlbaran.ID_PEDIDO); + if Assigned(FPedidoAsociado) then + begin + FPedidoAsociado.DataTable.Active := True; + eReferenciaPedidoCli.Text := FPedidoAsociado.REFERENCIA + end + else + eReferenciaPedidoCli.Text := ''; + end + else + eReferenciaPedidoCli.Text := 'No hay pedido asociado'; + end + else begin + DADataSource.DataTable := NIL; + dsFormaPago.DataTable := NIL; + FViewProveedorAlbaran.Albaran := nil; + frViewDireccionEntregaAlbaranProv1.AlbaranProveedor := Nil; + end; +end; + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesDevProveedor.dcu b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesDevProveedor.dcu new file mode 100644 index 0000000..d9c5a10 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesDevProveedor.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesDevProveedor.dfm b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesDevProveedor.dfm new file mode 100644 index 0000000..5c14d05 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesDevProveedor.dfm @@ -0,0 +1,161 @@ +inherited frViewAlbaranesDevProveedor: TfrViewAlbaranesDevProveedor + OnCreate = CustomViewCreate + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + inherited cxGridViewREF_FACTURA: TcxGridDBColumn + Caption = 'Ref. abono' + end + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + inherited TBXDockablePanel1: TTBXDockablePanel + inherited dxLayoutControl1: TdxLayoutControl + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtFechaFinFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39231.765653391200000000 + BuiltInReportLink = True + end + end + inherited GridPNGImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000434944415478DA63FCFFFF3F + 03258011D900464646ACA601D530126D00BA6298A1B80C21CA0090183639925C + 80CB3B040DC0E69A510306BD010C04005E03C801036F00008D248BE16F9028BA + 0000000049454E44AE426082} + Name = 'Icono_header' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000001974455874536F6674776172650041646F626520496D616765526561 + 647971C9653C000002034944415478DA63FCFFFF3FC394C53BFE33900172623D + 1819610600394469FAF3F71FC3EF3F7F19ACFDF319CEED98866A806DD17E14C5 + 87FB1CC134B2F8AE761B86B9ABF632CC5BBA09D3007CE0D7EFBF609B4178C986 + 83D80D40770136B0AED69461E59623B80D80391B04FE01E5FEFCF907B7D9B7FE + 04C3AA4A6386B53B8EE13700E692BD9D760CCEE587E03607359F66585A6AC0B0 + 69CF49FC06C06CFE7CFB30C3CBC5B1F87CE48261C0C15E0706FBE20360D999EC + 710C5CD2D60C3C37FF333C0DCF66D0B7B1038B7F7D709FE14E4B3CC385339718 + 300C00391BE6E7676D6A0C5C6FCD19642EEF60782BABC1F035CF9581E3D53B86 + A78DEB186E73A9327C927A88302023CA8DC1B1F4208AFB402E502EB9C0702FC5 + 9A81E3F22D86DF02620CAF9EBF6360B6546538EBD7C3C0BC230D6140729833D8 + 5658A887B49E011BA0D5FE98E1C1A54686CF213D0C1FDE7D61F8CCC8C2603A2D + 8861E58F4406E6EDA90803E2821C50A22CB2F33CD800F9D28B0C379AA2197EAF + 3BC8F0919191E1D3BB9F0C2C527C0C4FF36730301F29461810E587F03BDCA019 + 460CA2FFBC18DEEDDCC870F7CD6706E33667861F4F5E331CE9BFC0F0894B8A81 + C1E83BC280502F6B86D5DB8EA28481D3B55486FFFBFE313CB8FE8CE1715C25C3 + 1F73482C307CFEC4C0BC643A03E39B3308034009031D68F3BE61B07DB28781E9 + E36F86DF060298F2BFBE4700003F4A71F77ECF59220000000049454E44AE4260 + 82} + Name = 'PngImage1' + Background = clWindow + end> + end +end diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesDevProveedor.pas b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesDevProveedor.pas new file mode 100644 index 0000000..c7f67a6 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesDevProveedor.pas @@ -0,0 +1,64 @@ +unit uViewAlbaranesDevProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewAlbaranesProveedor, cxStyles, cxCustomData, cxGraphics, + cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxImageComboBox, + cxCurrencyEdit, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, + dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, dxPSEdgePatterns, dxPgsDlg, + dxPSCore, ImgList, PngImageList, ActnList, cxGridCustomPopupMenu, + cxGridPopupMenu, dxPScxCommon, dxPScxGrid6Lnk, uDADataTable, TB2Item, TBX, + TB2Toolbar, TBXDkPanels, TB2Dock, uViewFiltroBase, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, cxTextEdit, + uDAInterfaces; + +type + IViewAlbaranesDevProveedor = interface(IViewAlbaranesProveedor) + ['{FB031921-EC00-402F-820D-2EFE0EBB8FCC}'] + end; + + TfrViewAlbaranesDevProveedor = class(TfrViewAlbaranesProveedor, IViewAlbaranesDevProveedor) + procedure CustomViewCreate(Sender: TObject); + end; + +implementation +{$R *.dfm} + +procedure TfrViewAlbaranesDevProveedor.CustomViewCreate(Sender: TObject); +begin + inherited; + with cxGridViewREF_PED_PROVEEDOR do + begin + Visible := False; + VisibleForCustomization := False; + end; + + with cxGridViewCALLE do + begin + Visible := False; + VisibleForCustomization := False; + end; + + with cxGridViewCODIGO_POSTAL do + begin + Visible := False; + VisibleForCustomization := False; + end; + + with cxGridViewPOBLACION do + begin + Visible := False; + VisibleForCustomization := False; + end; + + with cxGridViewPROVINCIA do + begin + Visible := False; + VisibleForCustomization := False; + end; +end; + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesProveedor.dcu b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesProveedor.dcu new file mode 100644 index 0000000..25245f2 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesProveedor.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesProveedor.dfm b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesProveedor.dfm new file mode 100644 index 0000000..81f5c65 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesProveedor.dfm @@ -0,0 +1,534 @@ +inherited frViewAlbaranesProveedor: TfrViewAlbaranesProveedor + Width = 596 + Height = 479 + ExplicitWidth = 596 + ExplicitHeight = 479 + inherited cxGrid: TcxGrid + Width = 596 + Height = 351 + OnActiveTabChanged = cxGridActiveTabChanged + ExplicitWidth = 596 + ExplicitHeight = 351 + inherited cxGridView: TcxGridDBTableView + DataController.KeyFieldNames = 'ID' + DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText, dcoGroupsAlwaysExpanded] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Position = spFooter + Column = cxGridViewIMPORTE_TOTAL + end> + DataController.Summary.FooterSummaryItems = < + item + Format = '0 pedidos' + Kind = skCount + end + item + Format = '0 albaranes' + Kind = skCount + Column = cxGridViewREFERENCIA + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = cxGridViewIMPORTE_TOTAL + end> + DataController.OnCompare = cxGridViewDataControllerCompare + OptionsView.GroupFooters = gfAlwaysVisible + object cxGridViewINCIDENCIAS_ACTIVAS: TcxGridDBColumn + Caption = 'Incidencias' + DataBinding.FieldName = 'INCIDENCIAS_ACTIVAS' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Images = PngImageList + Properties.Items = < + item + Description = 'Sin incidencias' + Value = 0 + end + item + Description = 'Hay incidencias' + ImageIndex = 3 + Tag = 1 + Value = 1 + end> + Properties.ShowDescriptions = False + OnGetCellHint = cxGridViewINCIDENCIAS_ACTIVASGetCellHint + BestFitMaxWidth = 22 + MinWidth = 22 + Options.HorzSizing = False + Width = 22 + end + object cxGridViewREFERENCIA: TcxGridDBColumn + DataBinding.FieldName = 'REFERENCIA' + SortIndex = 0 + SortOrder = soDescending + Width = 52 + end + object cxGridViewREFERENCIA_PROVEEDOR: TcxGridDBColumn + DataBinding.FieldName = 'REFERENCIA_PROVEEDOR' + Width = 51 + end + object cxGridViewFECHA_ALBARAN: TcxGridDBColumn + Caption = 'Fecha' + DataBinding.FieldName = 'FECHA_ALBARAN' + Width = 20 + end + object cxGridViewNOMBRE: TcxGridDBColumn + DataBinding.FieldName = 'NOMBRE' + Width = 109 + end + object cxGridViewREF_PED_PROVEEDOR: TcxGridDBColumn + DataBinding.FieldName = 'REF_PED_PROVEEDOR' + Visible = False + Width = 25 + end + object cxGridViewNOMBRE_ALMACEN: TcxGridDBColumn + DataBinding.FieldName = 'NOMBRE_ALMACEN' + Width = 95 + end + object cxGridViewCALLE: TcxGridDBColumn + Caption = 'Direcci'#243'n de entrega' + DataBinding.FieldName = 'CALLE' + Width = 48 + end + object cxGridViewCODIGO_POSTAL: TcxGridDBColumn + DataBinding.FieldName = 'CODIGO_POSTAL' + Visible = False + end + object cxGridViewPOBLACION: TcxGridDBColumn + DataBinding.FieldName = 'POBLACION' + Visible = False + end + object cxGridViewPROVINCIA: TcxGridDBColumn + DataBinding.FieldName = 'PROVINCIA' + Visible = False + end + object cxGridViewPERSONA_CONTACTO: TcxGridDBColumn + DataBinding.FieldName = 'PERSONA_CONTACTO' + Visible = False + end + object cxGridViewTELEFONO: TcxGridDBColumn + DataBinding.FieldName = 'TELEFONO' + Visible = False + end + object cxGridViewREF_FACTURA: TcxGridDBColumn + Caption = 'Ref. factura' + DataBinding.FieldName = 'REF_FACTURA' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + Width = 20 + end + object cxGridViewREF_FACTURA_PROV: TcxGridDBColumn + DataBinding.FieldName = 'REF_FACTURA_PROV' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + Width = 52 + end + object cxGridViewIMPORTE_TOTAL: TcxGridDBColumn + Caption = 'Importe total' + DataBinding.FieldName = 'IMPORTE_TOTAL' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + Width = 91 + end + object cxGridViewINCIDENCIAS: TcxGridDBColumn + DataBinding.FieldName = 'INCIDENCIAS' + Visible = False + VisibleForCustomization = False + end + end + inherited cxGridLevel: TcxGridLevel + Caption = 'Todos' + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 596 + ExplicitWidth = 596 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 596 + inherited dxLayoutControl1: TdxLayoutControl + Width = 596 + ExplicitWidth = 596 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 499 + Width = 499 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 188 + Width = 188 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 292 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 292 + ExplicitWidth = 294 + Width = 294 + end + inherited eLista: TcxComboBox + Left = 623 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 623 + ExplicitWidth = 215 + Width = 215 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 596 + ExplicitWidth = 596 + inherited tbxBotones: TTBXToolbar + Width = 586 + ExplicitWidth = 586 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 453 + Visible = True + ExplicitTop = 453 + ExplicitWidth = 596 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 596 + ExplicitWidth = 596 + inherited TBXToolbar1: TTBXToolbar + Width = 586 + ExplicitWidth = 586 + object TBXSeparatorItem2: TTBXSeparatorItem + end + object TBXItem3: TTBXItem + Action = actProveedor + end + object TBXSeparatorItem1: TTBXSeparatorItem + end + object TBXItem2: TTBXItem + Action = actAlmacen + end + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 38673.741107951390000000 + BuiltInReportLink = True + end + end + inherited cxStyleRepository1: TcxStyleRepository + Left = 248 + end + inherited ActionList1: TActionList + Left = 392 + Top = 448 + object actProveedor: TAction + Caption = 'Proveedor' + OnExecute = actProveedorExecute + OnUpdate = actProveedorUpdate + end + object actAlmacen: TAction + Caption = 'Almac'#233'n' + OnExecute = actAlmacenExecute + OnUpdate = actAlmacenUpdate + end + end + inherited GridPNGImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000434944415478DA63FCFFFF3F + 03258011D900464646ACA601D530126D00BA6298A1B80C21CA0090183639925C + 80CB3B040DC0E69A510306BD010C04005E03C801036F00008D248BE16F9028BA + 0000000049454E44AE426082} + Name = 'Icono_header' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000001744944415478DA63FCFFFF3FC394 + C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F19ACFDF319CEED + 98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC5BBA09D3007CE0 + D7EFBF609B4178C98683D80D40770136B0AED69461E59623B80D80391B04FE01 + E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D760CCEE587E036 + 07359F66585A6AC0B069CF49FC06C06CFE7CFB30C3CBC5B1F87CE48261C0C15E + 0706FBE20360D999EC710CCA0D350CECECE9183A7FFE9CC9302FB18501C30090 + B3617E7ED6A6C6A0D5FE18AC180E7EFC00E2EF0CB3771930306F4F45189011E5 + C6E0587A10C516900B500C0069FEF00E62C02927540392C39CC1B6C2423DA4F5 + 0CAA0130CD60037E32CCBE15846A405C90034A9445769E4718F0712242F3870F + 1017BC4A413520CA0FE177B841338C20063CAC47688679E15719AA01A15ED60C + ABB71D450903A76BA9E05898BD4A1E6B1CA218004A18E8409BF70D8315EB719C + 89C05E9EC10500D1295EA9BD5461080000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + Bitmap = {} + end + object PngImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000014B4944415478DA + 6364C007F47A8C9999FE9F6162FCCFF0FB2F9309C3A592B31CC61DFF7F9CAD60 + 0449F398B6FF67C4A79FD9A0FBFFDF0BA56035EC469DFF7F9E2B87AB0769FE72 + BA9211AF01AC865DFF7F9F2F03AB41B719A419C4C66B001BD0805F5003B84C3A + FE7F3B53C188AC59D0A20DBF17909DCD6DD2FEFFEB994A0CF5780D00052217DB + 9F338C0CFF19BEFE620507226906100118B327BDFCFFE7EF6F86BF7F20F80F8C + FEFB07C14762FFF9FD0B48FF82D2BF1918D3FB9FFCB734944631F5CFDF7F0CBF + 7EFF65F809C67FE0EC5F403688FEF1EB0F185F3AB2938131A5FBFE7F1B530592 + 35FFF8F597E1DAB16D0C8C89EDB7FEDB5BAA92AC1944DF3ABE858131B6F9EA7F + 675B2D923583F0BD139B1918A3EA2FFC77B2D32559F3AF3F7F191E9CD8C0C018 + 5673E6BF838D1EC99A41006C4070C5F1FF84A2EA3732FFF76F301B9E0EFEFFFF + 4F514202003F5091819E0016AB0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000010E4944415478DA + 63648001BD9EFF0CC8E052092350CC18C83A031531018A9D05AB03C941F530A2 + 180093C026862E0FE5230B10B40D1B1BD546749BB16922CA0BF80C400384BC80 + 2986D300320163F0AC3BFFFFFEFECBF0E70F100369301BCA87B1FFFE81F2FFFC + 63F8FDEB0FC31F20FE0D9203D28C01536FFE6F705663F80033F20784FA00657F + 4016FB815003129F367B3503A3CFC46BFF4BDC3549D208634F9CB79C81D1A3E7 + F2FF4375E638FDD8B6EE2B8646984573672C6660746DBFF0FF68B3154E03CA96 + 7DC56A3B08CC98BD8081D1B1E9ECFF783B23BC4E45D7080353A6CE6160B4AD3B + F53FD8CA94248D303061C24C0646ABCAE3FF0945D59F5F7F816C3431200D4E07 + FFFFFF67A00400007E51EECD81D1728E0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000F54944415478DA + 6364D0EBF9CF70A98411481B3330309C61800013A0D8591C6210F52000643322 + 19802281530C06A07CF20C4062936E00D5BC00058C24072286011402C6EC492F + FFFFF9FB9BE1EF1F08FE03A3FFFE41F091D87F7EFF02D2BFA0F46F06C6F4FE27 + FF2D0DA5514CFDF3F71FC3AFDF7F197E82F11F38FB17900DA27FFCFA03C6978E + EC64604CE9BEFFDFC6548164CD3F7EFD65B8766C1B036362FBADFF2B9B0DC8F2 + BF9C7D2303636CF3D5FF6BDB4DC93240CAAA868131AAFEC27F273B5DA29D0D63 + FFFAF397E1C1890D0C8C613567FE3BD8E891AC1904C00604571CFF4F28AA7E23 + F37FFF06B3E1E9E0FFFFFF1425240089FD645E7C3F344D0000000049454E44AE + 426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000027F4944415478DA + 95926D48535118C79FDB268AA54485D62C4C50962CDC87F5416D9AB966CEA440 + A4E84D828C304C89B217DB87D00F65252B69422F9A4161D6A0507C6D595A6450 + 83CC55787129CE19949B6DD3DDEDDE9D73BABB561835D3030FCF39E739FFDFF3 + C2A1608EF5A1467A415632783A589C100254B0A0EB5A623A9392DCD365B89DBE + FF3CBC5830C0DD9DD726922B34EFDAEB5B53F75972170470D4C8E461DB724D78 + 091139AC66F4FC5E9BA24007FDF3064C75E6DE7DE94BD8DBDC4A834615014B5D + BD8D6985E37BE6056074D2B544934357DCFA1CD2FBEA1B6C908742E96EAFBFFB + 7E5FE2A15A18FA2FC0F978B35E9CBAE94895EE2DB474D82053B918CA4BA2A1BF + D37823B3D879784E80BB36298ADA98368C97937043F3185CACA1E164F12AD89E + 1509132316E659BB39A14807B6A000E74365A5282D43EB67BFC020FD1D76159A + C0502785D8984580B8691830BEA9561F634EFC1340AAA4111E55C60817859611 + E4038EF34256FE6BE86C5A0F807D4010035F2DA3EE1EA32DEEA81EEC7F0126EF + 288E87A8D597389F8DC28280858ACB9FE06C690CBFF702E60DB153E463EF70C5 + D632EEDC1F00FA6A7CA824397D888B46AB671EF300CC826DDC092B5710411CB0 + 406C62D86EEFEA72C69DAA07F76FC0645DD241B15A7D93E3C6A85FE2471D5E68 + 6872C1CE1C2FE46BF0AC2A1842F7B9CBB2CFF8AB05007900A26949819995E075 + 184D43A0FF400B95575CD0FED4010A9907AAB5E1BC9801EC9FA9C261656D0346 + 7FFC8106E2A55C7A591EA551197CC84A1121BB4FC8346AF540CB1307A8950462 + 25E8670B8CD01E6611B198C445D9E5DC75EABD7E4DA32B322C05630F3F15BE54 + 82788F788FF9E9FB679D9110C781FBC077B753433BB478CB0F7C3B8CF0987D51 + CF0000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end> + Left = 56 + Top = 48 + Bitmap = {} + end +end diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesProveedor.pas b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesProveedor.pas new file mode 100644 index 0000000..97b2d5a --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesProveedor.pas @@ -0,0 +1,231 @@ +unit uViewAlbaranesProveedor; + +interface + +uses + Types, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, + cxData, cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl, dxPSEngn, + dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, cxImageComboBox, ImgList, Controls, PngImageList, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + cxGridCustomPopupMenu, cxGridPopupMenu, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, + uDADataTable, cxGridLevel, cxClasses, cxControls, cxGridCustomView, Classes, + cxGrid, uBizAlbaranesProveedor, cxCurrencyEdit, Forms, uViewFiltroBase, + ActnList, TB2Item, TBX, TB2Toolbar, TBXDkPanels, TB2Dock, dxPgsDlg, cxTextEdit, + uDAInterfaces; + +type + IViewAlbaranesProveedor = interface(IViewGrid) + ['{DFD9B90C-E3AE-48E1-A13F-AA75A05BBF3E}'] + function GetAlbaranes: IBizAlbaranProveedor; + procedure SetAlbaranes(const Value: IBizAlbaranProveedor); + property Albaranes: IBizAlbaranProveedor read GetAlbaranes write SetAlbaranes; + end; + + TfrViewAlbaranesProveedor = class(TfrViewGrid, IViewAlbaranesProveedor) + PngImageList: TPngImageList; + cxGridViewREFERENCIA: TcxGridDBColumn; + cxGridViewFECHA_ALBARAN: TcxGridDBColumn; + cxGridViewINCIDENCIAS_ACTIVAS: TcxGridDBColumn; + cxGridViewNOMBRE: TcxGridDBColumn; + cxGridViewCALLE: TcxGridDBColumn; + cxGridViewCODIGO_POSTAL: TcxGridDBColumn; + cxGridViewPOBLACION: TcxGridDBColumn; + cxGridViewPROVINCIA: TcxGridDBColumn; + cxGridViewPERSONA_CONTACTO: TcxGridDBColumn; + cxGridViewTELEFONO: TcxGridDBColumn; + cxGridViewNOMBRE_ALMACEN: TcxGridDBColumn; + cxGridViewREF_PED_PROVEEDOR: TcxGridDBColumn; + cxGridViewREF_FACTURA: TcxGridDBColumn; + cxGridViewIMPORTE_TOTAL: TcxGridDBColumn; + actProveedor: TAction; + actAlmacen: TAction; + TBXItem2: TTBXItem; + TBXSeparatorItem1: TTBXSeparatorItem; + TBXItem3: TTBXItem; + TBXSeparatorItem2: TTBXSeparatorItem; + cxGridViewREFERENCIA_PROVEEDOR: TcxGridDBColumn; + cxGridViewREF_FACTURA_PROV: TcxGridDBColumn; + cxGridViewINCIDENCIAS: TcxGridDBColumn; + procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: + TcxGridLevel); + procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out + AStyle: TcxStyle); + procedure actProveedorExecute(Sender: TObject); + procedure actProveedorUpdate(Sender: TObject); + procedure actAlmacenExecute(Sender: TObject); + procedure actAlmacenUpdate(Sender: TObject); + procedure cxGridViewINCIDENCIAS_ACTIVASGetCellHint( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + ACellViewInfo: TcxGridTableDataCellViewInfo; const AMousePos: TPoint; + var AHintText: TCaption; var AIsHintMultiLine: Boolean; + var AHintTextRect: TRect); + procedure cxGridViewDataControllerCompare( + ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2, + AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer); + + private + //Filtros relativos a la vista + procedure AnadirFiltroFechas; + + protected + FAlbaranes: IBizAlbaranProveedor; + function GetAlbaranes: IBizAlbaranProveedor; + procedure SetAlbaranes(const Value: IBizAlbaranProveedor); + public + procedure AnadirOtrosFiltros; override; + property Albaranes: IBizAlbaranProveedor read GetAlbaranes write SetAlbaranes; + end; + +implementation + +uses + SysUtils, variants, windows, uDataModuleAlbaranesProveedor, + schAlbaranesProveedorClient_Intf, uViewGridBase, cxGridDBDataDefinitions, + uReferenciasUtils, cxVariants; + +{$R *.dfm} + +procedure TfrViewAlbaranesProveedor.actAlmacenExecute(Sender: TObject); +begin + if (cxGridViewNOMBRE_ALMACEN.GroupIndex < 0) then + begin + cxGridViewNOMBRE_ALMACEN.GroupIndex := cxGridView.GroupedColumnCount; + cxGridViewNOMBRE_ALMACEN.Visible := False; + end + else + begin + cxGridViewNOMBRE_ALMACEN.GroupIndex := -1; + cxGridViewNOMBRE_ALMACEN.Visible := True; + end; +end; + +procedure TfrViewAlbaranesProveedor.actAlmacenUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Checked := not (cxGridViewNOMBRE_ALMACEN.GroupIndex < 0); +end; + +procedure TfrViewAlbaranesProveedor.actProveedorExecute(Sender: TObject); +begin + if (cxGridViewNOMBRE.GroupIndex < 0) then + begin + cxGridViewNOMBRE.GroupIndex := cxGridView.GroupedColumnCount; + cxGridViewNOMBRE.Visible := False; + end + else + begin + cxGridViewNOMBRE.GroupIndex := -1; + cxGridViewNOMBRE.Visible := True; + end; +end; + +procedure TfrViewAlbaranesProveedor.actProveedorUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Checked := not (cxGridViewNOMBRE.GroupIndex < 0); +end; + +procedure TfrViewAlbaranesProveedor.AnadirFiltroFechas; +var + Columna: TcxGridDBColumn; + Fecha1, Fecha2: Variant; + FFiltro : TcxFilterCriteriaItemList; +begin + Fecha1 := frViewFiltroBase1.edtFechaIniFiltro.EditValue; + Fecha2 := frViewFiltroBase1.edtFechaFinFiltro.EditValue; + + if not VarIsNull(Fecha1) + and not VarIsNull(Fecha2) then + begin + cxGridView.DataController.Filter.Options := [fcoCaseInsensitive, fcoSoftCompare]; + FFiltro := AddFilterGrid(fboAnd); + + Columna := (cxGridView as TcxGridDBTableView).GetColumnByFieldName('FECHA_ALBARAN'); + FFiltro.AddItem(Columna, foBetween, varArrayOf([Fecha1, Fecha2]), VarToStr(Fecha1) + ' and ' + VarToStr(Fecha2)); + end; +end; + +procedure TfrViewAlbaranesProveedor.AnadirOtrosFiltros; +begin + inherited; + + AnadirFiltroFechas; + + //Finalmente activamos el filtro si tenemos algo + if cxGridView.DataController.Filter.IsEmpty + then cxGridView.DataController.Filter.Active := False + else cxGridView.DataController.Filter.Active := True; + cxGrid.ActiveLevel.GridView := cxGridView; +end; + +procedure TfrViewAlbaranesProveedor.cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel); +begin + inherited; + RefrescarFiltro; +end; + +procedure TfrViewAlbaranesProveedor.cxGridViewDataControllerCompare( + ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2, + AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer); +begin + inherited; + if ((AItemIndex = cxGridViewREFERENCIA.Index) or + (AItemIndex = cxGridViewREF_PED_PROVEEDOR.Index) or + (AItemIndex = cxGridViewREF_FACTURA_PROV.Index) or + (AItemIndex = cxGridViewREFERENCIA_PROVEEDOR.Index)) and + (VarType(V1) = VarType(V2)) and (VarType(V1) = varString) then + Compare := CompararReferencias(V1, V2) + else + Compare := VarCompare(V1, V2); +end; + +procedure TfrViewAlbaranesProveedor.cxGridViewINCIDENCIAS_ACTIVASGetCellHint( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + ACellViewInfo: TcxGridTableDataCellViewInfo; const AMousePos: TPoint; + var AHintText: TCaption; var AIsHintMultiLine: Boolean; + var AHintTextRect: TRect); +begin + inherited; + + if (ARecord.Values[Sender.Index] = '1') then + begin + AIsHintMultiLine := True; + AHintText := ARecord.Values[cxGridViewINCIDENCIAS.Index] + end; +end; + +procedure TfrViewAlbaranesProveedor.cxGridViewStylesGetContentStyle(Sender: + TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: + TcxCustomGridTableItem; out AStyle: TcxStyle); +{var + IndiceCol: Integer; + ASituacion: string;} +begin + inherited; +{ if Assigned(ARecord) then + begin + IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_PresupuestosSITUACION).Index; + ASituacion := VarToStr(ARecord.DisplayTexts[IndiceCol]); + if ASituacion = SITUACION_ACEPTADO then + AStyle := cxStyleAceptado + else if ASituacion = SITUACION_RECHAZADO then + AStyle := cxStyleRechazado; + end; +} +end; + +function TfrViewAlbaranesProveedor.GetAlbaranes: IBizAlbaranProveedor; +begin + Result := FAlbaranes; +end; + +procedure TfrViewAlbaranesProveedor.SetAlbaranes(const Value: IBizAlbaranProveedor); +begin + FAlbaranes := Value; + if Assigned(FAlbaranes) then + dsDataSource.DataTable := FAlbaranes.DataTable; +end; + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewDatosYSeleccionProveedorAlbaran.dcu b/Source/Modulos/Albaranes de proveedor/Views/uViewDatosYSeleccionProveedorAlbaran.dcu new file mode 100644 index 0000000..13e150a Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Views/uViewDatosYSeleccionProveedorAlbaran.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewDatosYSeleccionProveedorAlbaran.dfm b/Source/Modulos/Albaranes de proveedor/Views/uViewDatosYSeleccionProveedorAlbaran.dfm new file mode 100644 index 0000000..63e7dd9 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewDatosYSeleccionProveedorAlbaran.dfm @@ -0,0 +1,657 @@ +inherited frViewDatosYSeleccionProveedorAlbaran: TfrViewDatosYSeleccionProveedorAlbaran + Width = 505 + Height = 171 + ExplicitWidth = 505 + ExplicitHeight = 171 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 505 + Height = 171 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 0 + Margins.Bottom = 0 + Align = alClient + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + DesignSize = ( + 505 + 171) + object edtlNombre: TcxDBTextEdit + Left = 63 + Top = 41 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'NOMBRE' + DataBinding.DataSource = dsProveedor + Enabled = False + ParentFont = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 2 + Height = 21 + Width = 224 + end + object edtNIFCIF: TcxDBTextEdit + Left = 392 + Top = 41 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'NIF_CIF' + DataBinding.DataSource = dsProveedor + Enabled = False + ParentFont = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 3 + Height = 21 + Width = 103 + end + object edtPersonaContacto: TcxDBTextEdit + Left = 63 + Top = 101 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'PERSONA_CONTACTO_PROV' + DataBinding.DataSource = dsAlbaran + ParentFont = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 6 + Height = 21 + Width = 283 + end + object edtDireccion: TcxTextEdit + Left = 63 + Top = 70 + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 4 + Width = 121 + end + object Button4: TButton + Left = 472 + Top = 68 + Width = 23 + Height = 25 + Action = actElegirDireccion + TabOrder = 5 + end + object Button5: TButton + Left = 472 + Top = 99 + Width = 23 + Height = 25 + Action = actElegirPersonaContacto + TabOrder = 7 + end + object Button3: TBitBtn + Left = 297 + Top = 130 + Width = 198 + Height = 25 + Action = actVerContacto + Caption = 'Ver ficha completa del proveedor...' + TabOrder = 8 + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00D3BDAE006543 + 2E0065432E0065432E0065432E0065432E0065432E0065432E0065432E006543 + 2E0065432E0065432E0065432E0065432E0065432E0065432E00D3BDAE00F6F1 + EE00B49F8F00B49F8F00B49F8F00B49F8F00B49F8F00B49F8F00B49F8F00B49F + 8F00B49F8F00B49F8F00B49F8F00B49F8F00B49F8F0065432E00D3BDAE00241B + 7C00190B6B00190B6B00190B6B00190B6B00190B6B00190B6B00241B7C00E2D3 + CC00DFCFC700DECDC400DBC9BF00DAC7BD00B49F8F0065432E00D3BDAE00584D + A5002C2D870031299D003123A1003123A20030299B002B2C8900190B6B00E6DA + D3009E7058009E7058009E7058009E705800B49F8F0065432E00D3BDAE007C75 + B9002D2B92003223A300402F9800412F9B003324A4002D299200190B6B00E9DF + D800E6DAD300E3D5CE00E1D1C900DECDC400B49F8F0065432E00D3BDAE00CFCB + E700473DA400412A90006D8BA8006B8DA300422D8E00190B6B00EEE7E200ECE3 + DE009E7058009E7058009E7058009E705800B49F8F0065432E00D3BDAE00FFFF + FF00C7B6DC004B9A9D005198C6004A93C0004A8A8B00ADA5C000F1EBE700EEE7 + E200ECE3DE00E9DFD800E6DAD300E3D5CE00B49F8F0065432E00D3BDAE00FFFF + FF00A2CBE70059A6DC0058A6DC0053A1D7004D97CA009DB7C800F5EFEC00F1EB + E700EEE7E200ECE3DE00E9DFD800E6DAD300B49F8F0065432E00D3BDAE00EBF6 + FA0068B6DE0061AEE40061ADE4005BA8DE00529FD500649BBC00F7F4F000F5EF + EC00F1EBE700EEE7E200ECE3DE00E9DFD800B49F8F0065432E00D3BDAE00E8F6 + FA0057ADD30058A3D30061ACDE005EABE10054A0D6002F81A400FAF8F600F7F4 + F000F79D6F00F79D6F00F79D6F00F79D6F00B49F8F0065432E00D3BDAE00F4FA + FC0074BEDC00529DCB00529AC8004F99C8004089B8002F81A400FDFCFB00FAF8 + F600F7F4F000F5EFEC00F1EBE700EEE7E200B49F8F0065432E00D3BDAE00FFFF + FF00CCE9F4005EB2DD0059A4D300478EBC002F81A400C4DBE500FFFFFF00FDFC + FB00F79D6F00F79D6F00F79D6F00F79D6F00B49F8F0065432E00D3BDAE00FFFF + FF00FFFFFF00CCE9F400A2CBE700A2CBE700CCE9F400FFFFFF00FFFFFF00FFFF + FF00FEFEFD00FCFAF900F9F6F400F6F1EE00F2EDE90065432E00D3BDAE00D3BD + AE00D3BDAE00D3BDAE00D3BDAE00D3BDAE00D3BDAE00D3BDAE00D3BDAE00D3BD + AE00D3BDAE00D3BDAE00D3BDAE00D3BDAE00D3BDAE00D3BDAE00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} + end + object Button1: TBitBtn + Left = 10 + Top = 10 + Width = 120 + Height = 25 + Action = actElegirContacto + Caption = 'Elegir un proveedor' + TabOrder = 0 + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FF00FF00FF00 + FF00FF00FF00EB00EB00C507C600AB13AD00A119A2009F19A000A215A400AA10 + AC00B608B800CE00CE00EF00EF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00B118C10040407B00344A830031498F002F4596002F4499002F4597003148 + 900033498500374678005A3E5300D201D200FF00FF00FF00FF00FF00FF00FF00 + FF004E42860035508100314990002E429C002C3CA6002B3AAA002B3BA7002D40 + 9E0030479200344F840038577500A0189F00FF00FF00FF00FF00FF00FF00FF00 + FF004C428900334D89002F4499002B3CA8002835B4002631BB002734B6002A3A + AB002E429C00324B8C0036537B00B015B100FF00FF00FF00FF00FF00FF00FF00 + FF008726B300324A8D002D409E002938AF003138B6007A7BCB002830BF002835 + B2002D3FA10031499000483B8700EC01EC00FF00FF00FF00FF00FF00FF00FF00 + FF00F002F60051379D002D409F002937B000808AA300D2D3D3008181BB002834 + B2002D3FA2003A3F9300C511CE00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00EE02F4007324B7003C359300598CAE00498CBB004A81A600392A + 71005929A600D608E100FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00EA0CF400608CD00054A2D80053A1D6004F9DD300488B + C2009D11AC00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF008C67DE005CA9DD005CA9DD005AA7DC0056A4D900519F + D400565FAB00EA00EA00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00EC0DF60060A7DE0063B0E30063B0E30061AEE1005CA9DD0056A4 + D9004E94CC00C105C600FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00C532ED0066B2E5006BB7E9006BB7E90067B3E60061AEE1005AA7 + DC00539FD500A817BE00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00BA3AE7004989B1004A85AC005895BD0068B2E30064B0E4005CA9 + DE0053A0D400AA1BC300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00CA23E8005098C400539AC7004E93BE00437DA2005190BA005198 + C6003C79A000BE08C300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00F804FC006995D40062ACDA005DA6D3005299C6004284AD003C7F + A900535AA100F300F300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00C140ED0071BAEA0068B2E00059A1CF004990BC004378 + AA00C315D600FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00C83EF000808BDF00668BCC007C60C700D116 + E400FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} + end + object BitBtn1: TBitBtn + Left = 136 + Top = 10 + Width = 149 + Height = 25 + Action = actAnadirContacto + Caption = 'Dar de alta un proveedor' + TabOrder = 1 + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00D5BFB1006947 + 3100694731006947310069473100694731006947310069473100694731006947 + 3100694731006947310069473100694731006947310069473100D5BFB100F6F2 + EF00B7A29300B7A29300B7A29300B7A29300B7A29300B7A29300B7A29300B7A2 + 9300B7A29300B7A29300B7A29300B7A29300B7A2930069473100D5BFB100271E + 80001C0D6F001C0D6F001C0D6F001C0D6F001C0D6F001C0D6F00271E8000E3D5 + CE00E0D1C900DFCFC600DCCBC100DBC9BF00B7A2930069473100D5BFB1005C51 + A8002F308B00352CA0003526A4003526A500332C9E002E2F8D001C0D6F00E7DB + D500A1745C00A1745C00A1745C00A1745C00B7A2930069473100D5BFB1008079 + BC00302E95003626A60044329B0045329E003727A700302C95001C0D6F00EAE0 + DA00E7DBD500E4D7D000E2D3CB00DFCFC600B7A2930069473100D5BFB100D1CD + E8004B41A700452D9400718FAB006F91A600463092001C0D6F00EFE8E300EDE4 + DF00A1745C00A1745C00A1745C00A1745C00B7A2930069473100D5BFB100FFFF + FF00C9B9DD004F9DA000559BC8004E96C2004E8E8F00B0A8C200F2ECE800EFE8 + E300EDE4DF00EAE0DA00E7DBD500E4D7D000B7A2930069473100D5BFB100FFFF + FF00A5CDE8005DA9DD005CA9DD0057A4D900519ACC00A0BACA00F5F0ED00F2EC + E800EFE8E300EDE4DF00EAE0DA00E7DBD500B7A2930069473100D5BFB100ECF6 + FA006CB9DF0065B1E50065B0E5005FABDF0056A2D700689EBE00F7F4F100F5F0 + ED00F2ECE800006000000060000000600000B7A2930069473100D5BFB100E9F6 + FA005BB0D5005CA6D50065AFDF0062AEE20058A3D8003285A700FAF8F600F7F4 + F100F7A073000060000033CB510000600000B7A2930069473100D5BFB100F4FA + FC0078C0DD0056A0CD00569DCA00539CCA00448DBB003285A700FDFCFB000060 + 0000006000000060000040D86500006000000060000000600000D5BFB100FFFF + FF00CEEAF40062B5DE005DA7D5004B92BE003285A700C6DCE600FFFFFF000060 + 000060F898005AF28F004DE57A0040D865003AD25C0000600000D5BFB100FFFF + FF00FFFFFF00CEEAF400A5CDE800A5CDE800CEEAF400FFFFFF00FFFFFF000060 + 000000600000006000005AF28F00006000000060000000600000D5BFB100D5BF + B100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BF + B100D5BFB1000060000060F8980000600000D5BFB100D5BFB100FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00006000000060000000600000FF00FF00FF00FF00} + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item7: TdxLayoutItem + ShowCaption = False + Control = Button1 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item10: TdxLayoutItem + ShowCaption = False + Control = BitBtn1 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group4: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item1: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Nombre:' + Control = edtlNombre + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item2: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'NIF/CIF:' + Control = edtNIFCIF + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group3: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item4: TdxLayoutItem + AutoAligns = [] + AlignHorz = ahClient + AlignVert = avCenter + Caption = 'Direcci'#243'n' + Control = edtDireccion + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item5: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'Button4' + ShowCaption = False + Control = Button4 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group5: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group2: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item3: TdxLayoutItem + AutoAligns = [] + AlignHorz = ahClient + AlignVert = avCenter + Caption = 'Contacto:' + Control = edtPersonaContacto + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item6: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + ShowCaption = False + Control = Button5 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item9: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + ShowCaption = False + Control = Button3 + ControlOptions.ShowBorder = False + end + end + end + end + object dsProveedor: TDADataSource + Left = 400 + Top = 8 + end + object ActionList1: TActionList + Images = PngImageList + Left = 368 + Top = 8 + object actElegirContacto: TAction + Caption = 'Elegir un proveedor' + ImageIndex = 1 + OnExecute = actElegirContactoExecute + end + object actAnadirContacto: TAction + Caption = 'Dar de alta un proveedor' + ImageIndex = 0 + OnExecute = actAnadirContactoExecute + end + object actVerContacto: TAction + Caption = 'Ver ficha completa del proveedor...' + ImageIndex = 2 + OnExecute = actVerContactoExecute + OnUpdate = actVerContactoUpdate + end + object actElegirDireccion: TAction + Caption = '...' + OnExecute = actElegirDireccionExecute + OnUpdate = actElegirDireccionUpdate + end + object actElegirPersonaContacto: TAction + Caption = '...' + OnExecute = actElegirPersonaContactoExecute + OnUpdate = actElegirPersonaContactoUpdate + end + end + object dsAlbaran: TDADataSource + Left = 336 + Top = 8 + end + object PngImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000002254944415478DA95936D48535118 + C7FFB7E58535192C322B880A217A238841238212E94B048EA217E88B26158210 + 548322082422FD52862D30823230BF14A4511823D2185834B60537F37DA516B2 + B6B6E6BABB77F7DC97EE3DE6192303F7C0E1790E9CFFEFFFF0F01C0EA5443D0C + 567782B312D7DB3F642C55EF7DB41D1D1DF5686CEC446FDD1018A0B67A1BBD88 + 89287ECF0CD3BA7CFD56382A76CD3F3AC531485BFB499C3FD7CDEE0C60897F84 + FC90E608E28914E2D959EC3FE1C7DAAA3D1460394B8A8244364B8F5577DD1A9C + 071CDABB015383D7F1EB6B0C9A66620D0D994C06493985A39742283B6D638E67 + 2E57E37EEB407107073DAB301EB800E438ACB0DB613301393187E8F418BC17DF + 83A81AAE3D056E0ED871B8C98D6777C3B853D387078F9F2F002AF13DD80C5ECE + C39AB34214C89284597525DCC7DBA0AA3A85ACF139997311C09A413CD20D71E2 + 95D53F544290CD29D0377A51B5FB18155B670144888637EF3E160362810F087E + BB812D3A6F7690475806DCEB1AB0F940CD3F622B07434201E071AAE8F75DC1CF + A482CA861D20CB74241F0E6372F2337CE302155FBDFDA268273C3B5717008EC0 + 138CBEEC814BE621963B613397CC2ECE215596C7D854124D42843993BF9D8485 + 9102406A6FC1CC1701152A8FE50AE88EE6791D691BC1742C85B391105AEE05FE + DF41B4EE08D26971D1F575B91CA8ED7B4D5D35DDA05937F3A7D18902609F7B13 + BA7ADE96F4AFAC6080E6567FC962B68986B1E4CFB868FC01A6204E3EB3788BD6 + 0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AC400000AC401666D82D400000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000002B44944415478DA7D925F4853511C + C77F67F75EF7A799BB9A6E3A5B85A0203EA820F892502121119A523E14141A41 + F5A244819144E4430F452F99580385A4D0CC2009410B940CCC4CA60BB2F04F43 + 65B639B7DD6DF7EEFED93D9D2D144DE60F0E07CEF97D3FE7F7FBFE0EC218433C + 1042B01973AFAF5C0088DDF007B82CCF7AD0E15C70DFBF63774EC0B6D8D2FD0F + 70F65C6C345BD8673C1FD5F8FD41F0F903E0F571FCA8E34F4DE7E0FCC89E80BE + E6727D7E699ECBA0D7668A920CA15004DCDE0028B204EE7561AEA9FD5B19490D + 2707DCABA8CC31A70F531A0A045186154F042C19FBC1A803F8E5F2E0B61EE7C9 + F9656E2429E0537B75E34658B2CB0A02D6B41FF20F9A00A90A48621478418047 + 2FA71ABA865D5D4901939DD575D66C733FCD3089B398A2804CCA97451144318A + EFDA271BFBC7579203DEB41DCD2EC93FEC6252521204555549FF72C2038E8B28 + 35AD1F2A577DE2E89E5398B6D7F6A6A51ACE25920820168B5721C3C4ECEADCE5 + C79315E4D8BB27A0BBB9DC5A54689E326A198B4AEEE26D6C04C3D2ADE7D34D5F + 7EF83B928E311E2DD6828C9C5CE629C2A6B3D67A1B4A05F20722C49BDE0D9C6B + 084E3804E1EA8BEF4B33DB3FD416A0E550119B9E478F6762B590151408D5D543 + 71552DAC0DBC0561F01504F631E0A534A121257466646CE1E32E40EBF1D227AC + 1E5D677919D8A8025AD041E6892A08BF1F8010B1D46F60C8A2614DC4CB0FBE3A + 4A30877D3B00B74F95B94C14B699C8EB6904601463A0555490290491140A823A + 1A027A1AFC64B77B17EBD7C6BC7D3B00374F972DA6D2E8489AF84F6C9054A055 + 6222F156603410D652C011711CD4BDFCFB9AE7B3BB6307E0FCB1E24B590C7A98 + C150E946ACA2F8EB14B9520940A43410411A08A8587AA78DCDFE1C9A69C01276 + EE9A0219E5019D8D2E305A0C36D05384031A2C2AB2129579C52773FC6ACC4DD2 + 968826B0A9F90BC88690F0ED1F7E3F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001FA4944415478DA + A5934B6813511486BF342610A2C50A86A220150BA2145C58D120828ABA2AD2BA + F0B510C48D1B1154A828A55D5877825474AB45375D58A80B9385292DA8A8B151 + 6B6D8DB50F43C1B4C624364C1E73E7E19DA96408B50BCDC0E5CC65E6FFFE7FCE + DCE3324D936A2E577FE46355041BD076B0C9DE280B23E412E3F6FD9A4DDBF107 + 76965F3464524D33109A8E2A7459350E1FBFEC002CF1FCEB1EF28B82F98534C9 + 5C9203A7EFB2A1712F9A6E70A557AD706EA88970FFD1C012E0E8BECDCC3EEF22 + 33338DAECBA7A64E36FB8B5431C389EBB12557B93461D8CED6FE71F8A5036809 + AE271EBA0879177E9F0FB704284A9ED8B7498EB5476D71671F2B276809D63337 + D481B75892EEC86F5429140A7CD7D6D17CEA4E85B3D5070B181A8A3A00AB07C9 + B70F512643567E8410E4F22A46432B8D7B4E2E130BD9C4672F629580A9D02B86 + E76EB0CDF0CA0425A205D8B5F11C5B8F1C5A26B6D6F09B0F0E2058AB11B97495 + D44F95FAB34D881A831F0F26989A9EA0FDEB275B7CEDD6938A1EECDE117000FE + 701FF1A703D4153D28AB6B71E3C2A72C92F6A8C413292E8CBD2F3B8B3F67213A + 3AEE000AB7BB49CC8E11D03CAC92BFDB251D4A5E93B45B90984973FEDD08DDF7 + C22B27889D69239355FE7A54EBD6FA690D0FDAAEBA61DAD59075F4F31707B0BF + 790BBDFD83FF3C076540D7CD9EFF1FA66AC7F93783B161288AF0DFC000000000 + 49454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end> + Left = 432 + Top = 8 + Bitmap = {} + end +end diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewDatosYSeleccionProveedorAlbaran.pas b/Source/Modulos/Albaranes de proveedor/Views/uViewDatosYSeleccionProveedorAlbaran.pas new file mode 100644 index 0000000..b06f7b6 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewDatosYSeleccionProveedorAlbaran.pas @@ -0,0 +1,426 @@ +unit uViewDatosYSeleccionProveedorAlbaran; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, StdCtrls, cxControls, cxContainer, cxEdit, cxLabel, + cxDBLabel, ExtCtrls, DB, uDADataTable, uBizContactos, + ComCtrls, ToolWin, ActnList, ImgList, PngImageList, cxTextEdit, cxDBEdit, + pngimage, JvExControls, JvComponent, JvButton, JvTransparentButton, Mask, + DBCtrls, uProveedoresController, dxLayoutControl, Buttons, uDAInterfaces, + cxMaskEdit, cxButtonEdit, uBizAlbaranesProveedor, uBizDireccionesContacto, + uDireccionesContactoController, Menus, cxLookAndFeelPainters, cxButtons; + +type + IViewDatosYSeleccionProveedorAlbaran = interface(IViewBase) + ['{F1E1FFC0-02C9-47F5-92BC-BE10FA2C5134}'] + function GetAlbaran: IBizAlbaranProveedor; + procedure SetAlbaran(const Value: IBizAlbaranProveedor); + property Albaran: IBizAlbaranProveedor read GetAlbaran write SetAlbaran; + + function GetProveedor: IBizProveedor; + procedure SetProveedor(Value: IBizProveedor); + property Proveedor: IBizProveedor read GetProveedor write SetProveedor; + + function GetID_Proveedor: integer; + procedure SetID_Proveedor(const Value: integer); + property ID_Proveedor: integer read GetID_Proveedor write SetID_Proveedor; + + function GetOnProveedorChanged : TNotifyEvent; + procedure SetOnProveedorChanged (const Value : TNotifyEvent); + property OnProveedorChanged : TNotifyEvent read GetOnProveedorChanged + write SetOnProveedorChanged; + + procedure ElegirPersonaContacto; + procedure ElegirDireccionProveedor; + procedure ElegirProveedor; + procedure VerFichaProveedor; + procedure AnadirNuevoProveedor; + procedure RefrescarDireccion; + end; + + TfrViewDatosYSeleccionProveedorAlbaran = class(TfrViewBase, IViewDatosYSeleccionProveedorAlbaran) + dsProveedor: TDADataSource; + ActionList1: TActionList; + actElegirContacto: TAction; + actAnadirContacto: TAction; + actVerContacto: TAction; + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Item1: TdxLayoutItem; + edtlNombre: TcxDBTextEdit; + dxLayoutControl1Item2: TdxLayoutItem; + edtNIFCIF: TcxDBTextEdit; + dsAlbaran: TDADataSource; + actElegirDireccion: TAction; + actElegirPersonaContacto: TAction; + dxLayoutControl1Item3: TdxLayoutItem; + edtPersonaContacto: TcxDBTextEdit; + dxLayoutControl1Group4: TdxLayoutGroup; + dxLayoutControl1Item4: TdxLayoutItem; + edtDireccion: TcxTextEdit; + Button4: TButton; + dxLayoutControl1Item5: TdxLayoutItem; + dxLayoutControl1Group3: TdxLayoutGroup; + dxLayoutControl1Item6: TdxLayoutItem; + Button5: TButton; + dxLayoutControl1Group5: TdxLayoutGroup; + dxLayoutControl1Item9: TdxLayoutItem; + Button3: TBitBtn; + dxLayoutControl1Group2: TdxLayoutGroup; + dxLayoutControl1Item7: TdxLayoutItem; + Button1: TBitBtn; + dxLayoutControl1Item10: TdxLayoutItem; + BitBtn1: TBitBtn; + dxLayoutControl1Group1: TdxLayoutGroup; + PngImageList: TPngImageList; + procedure actElegirContactoExecute(Sender: TObject); + procedure actAnadirContactoExecute(Sender: TObject); + procedure actVerContactoUpdate(Sender: TObject); + procedure edtPersonaContactoPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure edtDireccionPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure actVerContactoExecute(Sender: TObject); + procedure actElegirDireccionUpdate(Sender: TObject); + procedure actElegirDireccionExecute(Sender: TObject); + procedure actElegirPersonaContactoExecute(Sender: TObject); + procedure actElegirPersonaContactoUpdate(Sender: TObject); + + private + FOnProveedorChanged : TNotifyEvent; + FMsgElegirProveedor: String; + protected + FProveedoresController : IProveedoresController; + FDireccionesController : IDireccionesContactoController; + FAlbaran : IBizAlbaranProveedor; + FProveedor : IBizProveedor; + FDireccion : IBizDireccionesContacto; + function GetProveedor: IBizProveedor; virtual; + procedure SetProveedor(Value: IBizProveedor); virtual; + function GetOnProveedorChanged : TNotifyEvent; + procedure SetOnProveedorChanged (const Value : TNotifyEvent); + procedure SetReadOnly(Value: Boolean); override; + function GetID_Proveedor: integer; virtual; + procedure SetID_Proveedor(const Value: integer); virtual; + function GetAlbaran: IBizAlbaranProveedor; + procedure SetAlbaran(const Value: IBizAlbaranProveedor); + procedure EscribirTextoDireccion; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure ElegirPersonaContacto; + procedure ElegirDireccionProveedor; + procedure ElegirProveedor; + procedure VerFichaProveedor; + procedure AnadirNuevoProveedor; + procedure RefrescarDireccion; + property Albaran: IBizAlbaranProveedor read GetAlbaran write SetAlbaran; + property Proveedor: IBizProveedor read GetProveedor write SetProveedor; + property OnProveedorChanged : TNotifyEvent read GetOnProveedorChanged write SetOnProveedorChanged; + property ID_Proveedor: integer read GetID_Proveedor write SetID_Proveedor; + end; + +implementation + +{$R *.dfm} + +uses + uDataModuleProveedores, Math, uCustomView, uBizContactosPersonal, uDialogUtils; + + +procedure TfrViewDatosYSeleccionProveedorAlbaran.actElegirContactoExecute(Sender: TObject); +begin + ElegirProveedor; +end; + +procedure TfrViewDatosYSeleccionProveedorAlbaran.actElegirDireccionExecute( + Sender: TObject); +begin + inherited; + ElegirDireccionProveedor; +end; + +procedure TfrViewDatosYSeleccionProveedorAlbaran.actElegirDireccionUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := not ReadOnly and Assigned(FProveedor.Direcciones) and + (FProveedor.Direcciones.Active) and (FProveedor.Direcciones.RecordCount > 0); +end; + +procedure TfrViewDatosYSeleccionProveedorAlbaran.actElegirPersonaContactoExecute( + Sender: TObject); +begin + inherited; + ElegirPersonaContacto; +end; + +procedure TfrViewDatosYSeleccionProveedorAlbaran.actElegirPersonaContactoUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := not ReadOnly and Assigned(FProveedor.Personal) and + (FProveedor.Personal.Active) and (FProveedor.Personal.RecordCount > 0); +end; + +procedure TfrViewDatosYSeleccionProveedorAlbaran.actAnadirContactoExecute( + Sender: TObject); +begin + AnadirNuevoProveedor; +end; + +procedure TfrViewDatosYSeleccionProveedorAlbaran.actVerContactoExecute( + Sender: TObject); +begin + inherited; + VerFichaProveedor; +end; + +procedure TfrViewDatosYSeleccionProveedorAlbaran.actVerContactoUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (Length(edtlNombre.Text) > 0); +end; + +procedure TfrViewDatosYSeleccionProveedorAlbaran.AnadirNuevoProveedor; +var + AProveedor : IBizProveedor; +begin + inherited; + AProveedor := (FProveedoresController.Nuevo as IBizProveedor); + FProveedoresController.Ver(AProveedor); + Self.Proveedor := AProveedor; +end; + +constructor TfrViewDatosYSeleccionProveedorAlbaran.Create(AOwner: TComponent); +begin + inherited; + FMsgElegirProveedor := 'Elija el proveedor al que se le realizar el pedido.'; + FProveedoresController := TProveedoresController.Create; + FDireccionesController := TDireccionesContactoController.Create; + + edtlNombre.Enabled := False; + edtNIFCIF.Enabled := False; + edtDireccion.Enabled := False; + edtPersonaContacto.Enabled := False; +end; + +destructor TfrViewDatosYSeleccionProveedorAlbaran.Destroy; +begin + FProveedoresController := NIL; + FDireccionesController := NIL; + inherited; +end; + +procedure TfrViewDatosYSeleccionProveedorAlbaran.edtDireccionPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + inherited; + ElegirDireccionProveedor; +end; + +procedure TfrViewDatosYSeleccionProveedorAlbaran.edtPersonaContactoPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + inherited; + ElegirPersonaContacto; +end; + +procedure TfrViewDatosYSeleccionProveedorAlbaran.ElegirProveedor; +var + AProveedor : IBizProveedor; +begin + inherited; + + AProveedor := (FProveedoresController.ElegirContacto(FProveedoresController.BuscarTodos, FMsgElegirProveedor, False) as IBizProveedor); + + if Assigned(AProveedor) then + Self.Proveedor := AProveedor; + AProveedor := Nil; +end; + +procedure TfrViewDatosYSeleccionProveedorAlbaran.ElegirDireccionProveedor; +var + ADireccion : IBizDireccionesContacto; +begin + inherited; + ADireccion := FProveedoresController.ElegirDireccionEntrega(FProveedor, ' '); + + if Assigned(ADireccion) then + begin + FDireccion := ADireccion; + FAlbaran.Edit; + + if FDireccion.IDIsNull then + begin + FAlbaran.ClearField('ID_DIRECCION'); + FAlbaran.ClearField('IMPORTE_PORTE'); + end + else begin + FAlbaran.ID_DIRECCION := FDireccion.ID; + FAlbaran.IMPORTE_PORTE := FDireccion.PORTE; + end; + FAlbaran.PERSONA_CONTACTO_PROV := FDireccion.PERSONA_CONTACTO; + + EscribirTextoDireccion; + end; +end; + +procedure TfrViewDatosYSeleccionProveedorAlbaran.ElegirPersonaContacto; +var + APersona : IBizContactoPersonal; +begin + inherited; + APersona := FProveedoresController.ElegirPersonaContacto(FProveedor.Personal, + 'El proveedor dispone de personas de contacto dadas de alta en su ficha. Seleccione la que quiere utilizar.'); + if Assigned(APersona) then + begin + FAlbaran.Edit; + FAlbaran.PERSONA_CONTACTO_PROV := APersona.NOMBRE; + end; +end; + +procedure TfrViewDatosYSeleccionProveedorAlbaran.EscribirTextoDireccion; +var + ACadena : String; +begin + ACadena := ''; + + if Assigned(FDireccion) then + ACadena := Format('%s %s %s %s', + [FDireccion.CALLE, FDireccion.POBLACION, + FDireccion.CODIGO_POSTAL, FDireccion.PROVINCIA]); + + edtDireccion.Text := ACadena; +end; + +function TfrViewDatosYSeleccionProveedorAlbaran.GetProveedor: IBizProveedor; +begin + Result := FProveedor; +end; + +function TfrViewDatosYSeleccionProveedorAlbaran.GetID_Proveedor: integer; +begin + Result := -1; + if Assigned(FProveedor) then + Result := FProveedor.ID; +end; + +procedure TfrViewDatosYSeleccionProveedorAlbaran.SetProveedor(Value: IBizProveedor); +begin + FProveedor := Value; + if Assigned(FProveedor) then + begin + dsProveedor.DataTable := FProveedor.DataTable; + + if not FProveedor.DataTable.Active then + FProveedor.DataTable.Active := True; + + //Solo podremos establecer persona de contacto si se ha asignado un proveedor + if FProveedor.ID > 0 then + edtPersonaContacto.Enabled := True; + + if FProveedor.Direcciones.RecordCount > 0 then + ElegirDireccionProveedor + else begin + FAlbaran.Edit; + FAlbaran.PERSONA_CONTACTO_PROV := FProveedor.PERSONA_CONTACTO; + RefrescarDireccion; + end; + end + else begin + dsProveedor.DataTable := NIL; + FProveedor := NIL; + FDireccion := NIL; + edtPersonaContacto.Enabled := False; + end; + + if Assigned(FOnProveedorChanged) then + FOnProveedorChanged(Self); +end; + +procedure TfrViewDatosYSeleccionProveedorAlbaran.SetID_Proveedor(const Value: integer); +begin + Self.Proveedor := IBizProveedor(FProveedoresController.Buscar(Value)); +end; + +function TfrViewDatosYSeleccionProveedorAlbaran.GetOnProveedorChanged: TNotifyEvent; +begin + Result := FOnProveedorChanged; +end; + +function TfrViewDatosYSeleccionProveedorAlbaran.GetAlbaran: IBizAlbaranProveedor; +begin + Result := FAlbaran; +end; + +procedure TfrViewDatosYSeleccionProveedorAlbaran.RefrescarDireccion; +begin + FDireccion := FDireccionesController.Nuevo; + + if (not FAlbaran.ID_DIRECCIONIsNull) and + (FDireccionesController.Localizar(FProveedor.Direcciones, FAlbaran.ID_DIRECCION)) then + FDireccionesController.CopiarDireccion(FProveedor.Direcciones, FDireccion) + else + FDireccionesController.CopiarDireccionFiscal(FProveedor, FDireccion); + + EscribirTextoDireccion; +end; + +procedure TfrViewDatosYSeleccionProveedorAlbaran.SetOnProveedorChanged( + const Value: TNotifyEvent); +begin + FOnProveedorChanged := Value; +end; + +procedure TfrViewDatosYSeleccionProveedorAlbaran.SetAlbaran( + const Value: IBizAlbaranProveedor); +begin + FAlbaran := Value; + if Assigned(FAlbaran) then + begin + dsAlbaran.DataTable := FAlbaran.DataTable; + + FProveedor := FAlbaran.Proveedor; + dsProveedor.DataTable := FProveedor.DataTable; + + if not FProveedor.DataTable.Active then + FProveedor.DataTable.Active := True; + + //Solo podremos establecer persona de contacto si se ha asignado un proveedor + if FProveedor.ID > 0 then + edtPersonaContacto.Enabled := True; + + RefrescarDireccion; + end + else begin + dsAlbaran.DataTable := NIL; + FProveedor := NIL; + FDireccion := NIL; + end; +end; + +procedure TfrViewDatosYSeleccionProveedorAlbaran.SetReadOnly(Value: Boolean); +begin + inherited; + + if (csLoading in Self.ComponentState) then + Exit; + + actAnadirContacto.Enabled := not ReadOnly; + actElegirContacto.Enabled := not ReadOnly; + edtPersonaContacto.Enabled := not ReadOnly; +end; + +procedure TfrViewDatosYSeleccionProveedorAlbaran.VerFichaProveedor; +begin + if not Assigned(Proveedor) then + ShowErrorMessage('No se ha indicado un proveedor', 'El pedido no tiene ningn proveedor asociado a mostrar.') + else begin + FProveedoresController.Ver(Proveedor); + end; +end; + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewDetallesAlbaranProveedor.dcu b/Source/Modulos/Albaranes de proveedor/Views/uViewDetallesAlbaranProveedor.dcu new file mode 100644 index 0000000..12b2a84 Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Views/uViewDetallesAlbaranProveedor.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewDetallesAlbaranProveedor.dfm b/Source/Modulos/Albaranes de proveedor/Views/uViewDetallesAlbaranProveedor.dfm new file mode 100644 index 0000000..b57ac9e --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewDetallesAlbaranProveedor.dfm @@ -0,0 +1,143 @@ +inherited frViewDetallesAlbaranProveedor: TfrViewDetallesAlbaranProveedor + inherited ToolBar1: TToolBar + Height = 73 + ExplicitHeight = 73 + inherited ToolButton3: TToolButton + Wrap = False + end + inherited ToolButton4: TToolButton + Left = 278 + Top = 0 + ExplicitLeft = 278 + ExplicitTop = 0 + end + inherited ToolButton14: TToolButton + Left = 334 + Top = 0 + ExplicitLeft = 334 + ExplicitTop = 0 + end + inherited FontName: TJvFontComboBox + Top = 22 + ExplicitTop = 22 + end + inherited FontSize: TEdit + Top = 22 + ExplicitTop = 22 + end + inherited UpDown1: TUpDown + Top = 22 + ExplicitTop = 22 + end + inherited ToolButton13: TToolButton + Top = 22 + ExplicitTop = 22 + end + inherited ToolButton6: TToolButton + Top = 22 + ExplicitTop = 22 + end + inherited ToolButton7: TToolButton + Top = 22 + ExplicitTop = 22 + end + inherited ToolButton8: TToolButton + Top = 22 + ExplicitTop = 22 + end + inherited ToolButton12: TToolButton + Left = 0 + Top = 22 + Wrap = True + ExplicitLeft = 0 + ExplicitTop = 22 + ExplicitHeight = 27 + end + inherited ToolButton9: TToolButton + Left = 0 + Top = 49 + ExplicitLeft = 0 + ExplicitTop = 49 + end + inherited ToolButton10: TToolButton + Left = 145 + Top = 49 + ExplicitLeft = 145 + ExplicitTop = 49 + end + inherited ToolButton11: TToolButton + Left = 270 + Top = 49 + ExplicitLeft = 270 + ExplicitTop = 49 + end + end + inherited cxGrid: TcxGrid + Top = 99 + Height = 205 + inherited cxGridView: TcxGridDBTableView + inherited cxGridViewTIPO: TcxGridDBColumn + Visible = False + VisibleForCustomization = False + end + inherited cxGridViewREFERENCIA_PROVEEDOR: TcxGridDBColumn + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + Visible = False + end> + Properties.ReadOnly = True + Properties.OnButtonClick = nil + Options.Editing = False + end + inherited cxGridViewREFERENCIA_FABRICANTE: TcxGridDBColumn + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + Visible = False + end> + Properties.ReadOnly = True + Properties.OnButtonClick = nil + Options.Editing = False + end + inherited cxGridViewIMPORTEUNIDAD: TcxGridDBColumn + VisibleForCustomization = False + end + inherited cxGridViewDESCUENTO: TcxGridDBColumn + Visible = True + end + inherited cxGridViewIMPORTENETO: TcxGridDBColumn + Caption = 'Importe coste' + Properties.ReadOnly = False + Visible = True + end + end + end + inherited TBXDock1: TTBXDock + Top = 73 + inherited TBXToolbar1: TTBXToolbar + inherited TBXSubmenuItem1: TTBXSubmenuItem + Visible = False + end + object TBXItem18: TTBXItem [1] + Action = actAnadirArticulos + DisplayMode = nbdmImageAndText + end + end + end + inherited ActionListContenido: TActionList + inherited actAnadirArticulos: TAction + Caption = 'A'#241'adir art'#237'culos...' + end + end + inherited GridGeneralPopupMenu: TPopupMenu + object Aadirartculos1: TMenuItem [4] + Action = actAnadirArticulos + end + object N2: TMenuItem [5] + Caption = '-' + end + end +end diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewDetallesAlbaranProveedor.pas b/Source/Modulos/Albaranes de proveedor/Views/uViewDetallesAlbaranProveedor.pas new file mode 100644 index 0000000..26238ce --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewDetallesAlbaranProveedor.pas @@ -0,0 +1,84 @@ +unit uViewDetallesAlbaranProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewDetallesArticulos, cxStyles, cxCustomData, cxGraphics, cxFilter, + cxData, cxDataStorage, cxEdit, DB, cxDBData, ImgList, PngImageList, + uDADataTable, ActnList, ComCtrls, ToolWin, cxGridLevel, cxClasses, cxControls, + cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + cxGrid, cxImageComboBox, cxTextEdit, cxMaskEdit, cxCheckBox, cxCurrencyEdit, + Grids, DBGrids, StdCtrls, ExtCtrls, cxRichEdit, ExtActns, StdActns, + JvExStdCtrls, JvCombobox, JvColorCombo, TB2Item, TBX, TB2Dock, TB2Toolbar, + uControllerDetallesArticulos, uBizAlbaranesProveedor, uDAInterfaces, + cxButtonEdit, cxDropDownEdit, Menus, cxGridCustomPopupMenu, cxGridPopupMenu, + cxEditRepositoryItems, uViewDetallesArticulosParaVenta; + +type + IViewDetallesAlbaranProveedor = interface(IViewDetallesArticulos) + ['{9326E1A0-BD5E-4BE1-BB3B-6A52C3394118}'] + function GetAlbaran: IBizAlbaranProveedor; + procedure SetAlbaran(const Value: IBizAlbaranProveedor); + property Albaran: IBizAlbaranProveedor read GetAlbaran write SetAlbaran; + end; + + TfrViewDetallesAlbaranProveedor = class(TfrViewDetallesArticulos, IViewDetallesAlbaranProveedor) + TBXItem18: TTBXItem; + N2: TMenuItem; + Aadirartculos1: TMenuItem; + protected + FAlbaran: IBizAlbaranProveedor; + function GetAlbaran: IBizAlbaranProveedor; + procedure SetAlbaran(const Value: IBizAlbaranProveedor); + + procedure AnadirArticulosInterno; override; + procedure RellenarArticulosInterno; override; + function AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean; override; + + public + property Albaran: IBizAlbaranProveedor read GetAlbaran write SetAlbaran; + end; + +implementation +{$R *.dfm} + +uses uDetallesAlbaranProveedorController, uViewDetallesBase; + +{ TfrViewDetallesAlbaranProveedor } + +function TfrViewDetallesAlbaranProveedor.AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean; +begin + if (Albaran.TIPO = CTE_TIPO_ALBARAN_DEV) then + Result := (Controller as IDetallesAlbaranProveedorController).AnadirArticulo(Detalles, pReferencia, TipoReferencia, -1, -1) + else + Result := (Controller as IDetallesAlbaranProveedorController).AnadirArticulo(Detalles, pReferencia, TipoReferencia); +end; + +procedure TfrViewDetallesAlbaranProveedor.AnadirArticulosInterno; +begin + if (Albaran.TIPO = CTE_TIPO_ALBARAN_DEV) then + (Controller as IDetallesAlbaranProveedorController).AnadirArticulos(Detalles, Albaran.Proveedor, true, -1) + else + (Controller as IDetallesAlbaranProveedorController).AnadirArticulos(Detalles, Albaran.Proveedor); +end; + +function TfrViewDetallesAlbaranProveedor.GetAlbaran: IBizAlbaranProveedor; +begin + Result := FAlbaran; +end; + +procedure TfrViewDetallesAlbaranProveedor.RellenarArticulosInterno; +begin + if (Albaran.TIPO = CTE_TIPO_ALBARAN_DEV) then + (Controller as IDetallesAlbaranProveedorController).AnadirArticulos(Detalles, Albaran.Proveedor, False, -1) + else + (Controller as IDetallesAlbaranProveedorController).AnadirArticulos(Detalles, Albaran.Proveedor, False); +end; + +procedure TfrViewDetallesAlbaranProveedor.SetAlbaran(const Value: IBizAlbaranProveedor); +begin + FAlbaran := Value; +end; + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewDireccionEntregaAlbaranProv.dcu b/Source/Modulos/Albaranes de proveedor/Views/uViewDireccionEntregaAlbaranProv.dcu new file mode 100644 index 0000000..055cbbc Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Views/uViewDireccionEntregaAlbaranProv.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewDireccionEntregaAlbaranProv.dfm b/Source/Modulos/Albaranes de proveedor/Views/uViewDireccionEntregaAlbaranProv.dfm new file mode 100644 index 0000000..a2d744c --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewDireccionEntregaAlbaranProv.dfm @@ -0,0 +1,220 @@ +inherited frViewDireccionEntregaAlbaranProv: TfrViewDireccionEntregaAlbaranProv + Width = 785 + Height = 515 + ExplicitWidth = 785 + ExplicitHeight = 515 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 785 + Height = 515 + Align = alClient + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + DesignSize = ( + 785 + 515) + object rdxDestino1: TRadioButton + Left = 10 + Top = 10 + Width = 765 + Height = 17 + Action = actLista + Caption = 'Recibir el albar'#225'n en el almac'#233'n:' + TabOrder = 0 + TabStop = True + end + object rdxDestino2: TRadioButton + Left = 10 + Top = 110 + Width = 765 + Height = 17 + Action = actOtro + Caption = 'Recibir el albar'#225'n en esta otra direcci'#243'n:' + TabOrder = 4 + end + object cbLista: TcxDBLookupComboBox + Left = 10 + Top = 33 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'ID_ALMACEN' + DataBinding.DataSource = dsAlbaran + Properties.DropDownListStyle = lsFixedList + Properties.ImmediatePost = True + Properties.KeyFieldNames = 'ID' + Properties.ListColumns = < + item + FieldName = 'NOMBRE' + end> + Properties.ListOptions.AnsiSort = True + Properties.ListOptions.GridLines = glNone + Properties.ListOptions.ShowHeader = False + Properties.ListOptions.SyncMode = True + Properties.ListSource = dsAlmacenes + Properties.PostPopupValueOnTab = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 1 + Width = 765 + end + object bModificar: TBitBtn + Left = 647 + Top = 480 + Width = 128 + Height = 25 + Caption = 'Modificar la direcci'#243'n...' + TabOrder = 6 + OnClick = bModificarClick + end + object txtDireccion: TStaticText + Left = 10 + Top = 133 + Width = 765 + Height = 341 + AutoSize = False + BevelKind = bkFlat + TabOrder = 5 + OnDblClick = txtDireccionDblClick + end + object cbListaObras: TcxDBLookupComboBox + Left = 10 + Top = 83 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'ID_ALMACEN' + DataBinding.DataSource = dsAlbaran + Properties.DropDownListStyle = lsFixedList + Properties.ImmediatePost = True + Properties.KeyFieldNames = 'ID' + Properties.ListColumns = < + item + FieldName = 'NOMBRE' + end> + Properties.ListOptions.AnsiSort = True + Properties.ListOptions.GridLines = glNone + Properties.ListOptions.ShowHeader = False + Properties.ListOptions.SyncMode = True + Properties.ListSource = dsObras + Properties.PostPopupValueOnTab = True + Properties.OnValidate = cbListaObrasPropertiesValidate + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 3 + Width = 765 + end + object RadioButton1: TRadioButton + Left = 10 + Top = 60 + Width = 765 + Height = 17 + Action = actListaObras + TabOrder = 2 + end + object dxLayoutGroup1: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutItem1: TdxLayoutItem + Caption = 'New Item' + ShowCaption = False + Control = rdxDestino1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item3: TdxLayoutItem + Caption = 'New Item' + ShowCaption = False + Control = cbLista + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item6: TdxLayoutItem + ShowCaption = False + Control = RadioButton1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item5: TdxLayoutItem + Control = cbListaObras + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item2: TdxLayoutItem + Caption = 'New Item' + ShowCaption = False + Control = rdxDestino2 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item4: TdxLayoutItem + AutoAligns = [aaHorizontal] + AlignVert = avClient + ShowCaption = False + Control = txtDireccion + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item1: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Offsets.Left = 15 + ShowCaption = False + Control = bModificar + ControlOptions.ShowBorder = False + end + end + end + object ActionList1: TActionList + Left = 224 + Top = 8 + object actLista: TAction + Caption = 'Recibir el pedido en el almac'#233'n:' + Checked = True + GroupIndex = 1 + OnExecute = actListaExecute + end + object actOtro: TAction + Caption = 'Recibir el pedido en esta otra direcci'#243'n:' + GroupIndex = 1 + OnExecute = actOtroExecute + end + object actListaObras: TAction + Caption = 'Recibir el albar'#225'n en la obra:' + GroupIndex = 1 + OnExecute = actListaObrasExecute + end + end + object dsAlbaran: TDADataSource + Left = 264 + Top = 8 + end + object dsAlmacenes: TDADataSource + Left = 304 + Top = 8 + end + object dsObras: TDADataSource + Left = 344 + Top = 8 + end +end diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewDireccionEntregaAlbaranProv.pas b/Source/Modulos/Albaranes de proveedor/Views/uViewDireccionEntregaAlbaranProv.pas new file mode 100644 index 0000000..0290eff --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewDireccionEntregaAlbaranProv.pas @@ -0,0 +1,307 @@ +unit uViewDireccionEntregaAlbaranProv; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, uBizAlbaranesProveedor, cxGraphics, dxLayoutControl, cxMemo, + cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxLookupEdit, + cxDBLookupEdit, cxDBLookupComboBox, StdCtrls, cxControls, DB, uDADataTable, + ActnList, uBizAlmacenes, uAlmacenesController, uAlbaranesProveedorController, + Buttons, uDAInterfaces, uBizObras, uObrasController; + +type + IViewDireccionEntregaAlbaranProv = interface(IViewBase) + ['{20124A28-C343-4A70-8016-06DDF92C75E7}'] + function GetAlbaranProveedor: IBizAlbaranProveedor; + procedure SetAlbaranProveedor(const Value: IBizAlbaranProveedor); + property AlbaranProveedor: IBizAlbaranProveedor read GetAlbaranProveedor write SetAlbaranProveedor; + end; + + TfrViewDireccionEntregaAlbaranProv = class(TfrViewBase, IViewDireccionEntregaAlbaranProv) + dxLayoutControl1: TdxLayoutControl; + rdxDestino1: TRadioButton; + rdxDestino2: TRadioButton; + cbLista: TcxDBLookupComboBox; + dxLayoutGroup1: TdxLayoutGroup; + dxLayoutItem1: TdxLayoutItem; + dxLayoutControl1Item3: TdxLayoutItem; + dxLayoutControl1Item2: TdxLayoutItem; + ActionList1: TActionList; + actLista: TAction; + actOtro: TAction; + dsAlbaran: TDADataSource; + dsAlmacenes: TDADataSource; + dxLayoutControl1Item1: TdxLayoutItem; + bModificar: TBitBtn; + dxLayoutControl1Item4: TdxLayoutItem; + txtDireccion: TStaticText; + dxLayoutControl1Item5: TdxLayoutItem; + cbListaObras: TcxDBLookupComboBox; + dxLayoutControl1Item6: TdxLayoutItem; + RadioButton1: TRadioButton; + dsObras: TDADataSource; + actListaObras: TAction; + procedure actListaExecute(Sender: TObject); + procedure actOtroExecute(Sender: TObject); + procedure cbListaPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure bModificarClick(Sender: TObject); + procedure txtDireccionDblClick(Sender: TObject); + procedure cbListaObrasPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure actListaObrasExecute(Sender: TObject); + protected + FAlmacenesController : IAlmacenesController; + FAlmacenes: IBizAlmacen; + FObrasController : IObrasController; + FObras: IBizObra; + FAlbaran : IBizAlbaranProveedor; + FController : IAlbaranesProveedorController; + function GetAlbaranProveedor: IBizAlbaranProveedor; + procedure SetAlbaranProveedor(const Value: IBizAlbaranProveedor); + procedure CambioDireccionAlmacen; + procedure CambioDireccionObra; + procedure RefrescarDireccion; + procedure SetReadOnly(Value: Boolean); override; + + public + property AlbaranProveedor: IBizAlbaranProveedor read GetAlbaranProveedor write SetAlbaranProveedor; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation +{$R *.dfm} + +uses + uEditorRegistryUtils, uCustomView, uBizInventario; + +procedure TfrViewDireccionEntregaAlbaranProv.actListaExecute(Sender: TObject); +begin + actLista.Checked := True; + RefrescarDireccion; +end; + +procedure TfrViewDireccionEntregaAlbaranProv.actListaObrasExecute(Sender: TObject); +begin + actListaObras.Checked := True; + RefrescarDireccion; +end; + +procedure TfrViewDireccionEntregaAlbaranProv.actOtroExecute(Sender: TObject); +begin + actOtro.Checked := True; +// memDireccion.Enabled := True; + + if Assigned(FAlbaran) then + begin + FController.VerDireccionEntrega(FAlbaran); + + if (FAlbaran.ID_ALMACEN > 0) then + begin + FAlbaran.Edit; + FAlbaran.ID_ALMACEN := 0; + end; + end; + RefrescarDireccion; +end; + +procedure TfrViewDireccionEntregaAlbaranProv.bModificarClick(Sender: TObject); +begin + inherited; + actOtro.Execute; +end; + +procedure TfrViewDireccionEntregaAlbaranProv.CambioDireccionAlmacen; +begin + if Assigned(FAlbaran) + and Assigned(FAlmacenes) then + begin + FAlbaran.Edit; + FAlbaran.CALLE := FAlmacenes.CALLE; + FAlbaran.POBLACION := FAlmacenes.POBLACION; + FAlbaran.POBLACION := FAlmacenes.POBLACION; + FAlbaran.PROVINCIA := FAlmacenes.PROVINCIA; + FAlbaran.CODIGO_POSTAL := FAlmacenes.CODIGO_POSTAL; + FAlbaran.PERSONA_CONTACTO := FAlmacenes.PERSONA_CONTACTO; + FAlbaran.TELEFONO := FAlmacenes.TELEFONO; + RefrescarDireccion; + end; +end; + +procedure TfrViewDireccionEntregaAlbaranProv.CambioDireccionObra; +begin + if Assigned(FAlbaran) and Assigned(FObras) then + begin + FAlbaran.Edit; + FAlbaran.CALLE := FObras.CALLE; + FAlbaran.POBLACION := FObras.POBLACION; + FAlbaran.POBLACION := FObras.POBLACION; + FAlbaran.PROVINCIA := FObras.PROVINCIA; + FAlbaran.CODIGO_POSTAL := FObras.CODIGO_POSTAL; + RefrescarDireccion; + end; +end; + +procedure TfrViewDireccionEntregaAlbaranProv.cbListaObrasPropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + if Assigned(FAlbaran) and Assigned(FObras) and (FAlbaran.ID_ALMACEN <> FObras.ID) then + CambioDireccionObra; +end; + +procedure TfrViewDireccionEntregaAlbaranProv.cbListaPropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + if Assigned(FAlbaran) and Assigned(FAlmacenes) + and (FAlbaran.ID_ALMACEN <> FAlmacenes.ID) then + CambioDireccionAlmacen; +end; + +constructor TfrViewDireccionEntregaAlbaranProv.Create(AOwner: TComponent); +begin + inherited; + FController := TAlbaranesProveedorController.Create; + FAlmacenesController := TAlmacenesController.Create; + FAlmacenes := FAlmacenesController.BuscarTodos; + FAlmacenes.DataTable.Active := True; + dsAlmacenes.DataTable := FAlmacenes.DataTable; + + FObrasController := TObrasController.Create; + FObras := FObrasController.BuscarTodos; + FObras.DataTable.Active := True; + dsObras.DataTable := FObras.DataTable; +end; + +destructor TfrViewDireccionEntregaAlbaranProv.Destroy; +begin + cbListaObras.Properties.OnValidate := Nil; + cbLista.Properties.OnValidate := Nil; + + FAlmacenesController := Nil; + FAlmacenes := Nil; + + FObrasController := Nil; + FObras := Nil; + + FController := NIL; + inherited; +end; + +function TfrViewDireccionEntregaAlbaranProv.GetAlbaranProveedor: IBizAlbaranProveedor; +begin + Result := FAlbaran; +end; + +procedure TfrViewDireccionEntregaAlbaranProv.RefrescarDireccion; +begin + txtDireccion.Caption := ''; + if Assigned(FAlbaran) then + begin + if (actOtro.Checked) then + begin + cbLista.Enabled := False; + cbLista.Text := ''; + cbListaObras.Enabled := False; + cbListaObras.Text := ''; + + txtDireccion.Enabled := True; + txtDireccion.Caption := FAlbaran.CALLE; + txtDireccion.Caption := txtDireccion.Caption + #13#10 + FAlbaran.CODIGO_POSTAL + ' ' + FAlbaran.POBLACION; + txtDireccion.Caption := txtDireccion.Caption + #13#10 + FAlbaran.PROVINCIA; + bModificar.Enabled := True; + end + else if (actLista.Checked) then + begin + txtDireccion.Enabled := False; + cbListaObras.Enabled := False; + cbListaObras.Text := ''; + + cbLista.Enabled := True; + cbLista.DroppedDown := True; + bModificar.Enabled := False; + end + else begin + txtDireccion.Enabled := False; + cbLista.Enabled := False; + cbLista.Text := ''; + + cbListaObras.Enabled := True; + cbListaObras.DroppedDown := True; + bModificar.Enabled := False; + end; + end; +end; + +procedure TfrViewDireccionEntregaAlbaranProv.SetAlbaranProveedor(const Value: IBizAlbaranProveedor); +begin + cbLista.Properties.OnValidate := NIL; + cbListaObras.Properties.OnValidate := NIL; + dsAlbaran.DataTable := nil; + + FAlbaran := Value; + if Assigned(FAlbaran) then + begin + dsAlbaran.DataTable := FAlbaran.DataTable; + cbLista.Properties.OnValidate := cbListaPropertiesValidate; + cbListaObras.Properties.OnValidate := cbListaPropertiesValidate; + + { Para poder inicializar con el almacn por defecto en el caso de un + albarn nuevo, antes hay que comprobar que la direccin alternativa + est vacia porque puede ser que el albarn se haya generado + automticamente a partir de un pedido a proveedor con una direccin + que no es un almacn. + } + if (FAlbaran.EsNuevo) and + ((Length(FAlbaran.CALLE) = 0) and + (Length(FAlbaran.CODIGO_POSTAL) = 0) and + (Length(FAlbaran.POBLACION) = 0) and + (Length(FAlbaran.PROVINCIA) = 0)) then + if FAlbaran.TIPO_ALMACEN = CTE_INV_ALMACEN then + CambioDireccionAlmacen + else + CambioDireccionObra; + + if (FAlbaran.ID_ALMACEN > 0) then + begin + if FAlbaran.TIPO_ALMACEN = CTE_INV_ALMACEN then + begin + actLista.Checked := True; + cbLista.EditValue := FAlbaran.ID_ALMACEN; //No quitar, si no lo asignamos asi cuando el objeto albaran viene creado a partir de un pedido no coge bien el almacen + end + else + begin + actListaObras.Checked := True; + cbListaObras.EditValue := FAlbaran.ID_ALMACEN; //No quitar, si no lo asignamos asi cuando el objeto albaran viene creado a partir de un pedido no coge bien el almacen + end; + end + else + if not (FAlbaran.EsNuevo) then + actOtro.Checked := True; + + RefrescarDireccion; + end; +end; + +procedure TfrViewDireccionEntregaAlbaranProv.SetReadOnly(Value: Boolean); +begin + inherited; + + if (csLoading in Self.ComponentState) then + Exit; + + rdxDestino1.Enabled := not ReadOnly; + rdxDestino2.Enabled := not ReadOnly; + RadioButton1.Enabled := not ReadOnly; +end; + +procedure TfrViewDireccionEntregaAlbaranProv.txtDireccionDblClick(Sender: TObject); +begin + inherited; + actOtro.Execute; +end; + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewElegirArticulosAlbaranesProveedor.dcu b/Source/Modulos/Albaranes de proveedor/Views/uViewElegirArticulosAlbaranesProveedor.dcu new file mode 100644 index 0000000..49cd5aa Binary files /dev/null and b/Source/Modulos/Albaranes de proveedor/Views/uViewElegirArticulosAlbaranesProveedor.dcu differ diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewElegirArticulosAlbaranesProveedor.dfm b/Source/Modulos/Albaranes de proveedor/Views/uViewElegirArticulosAlbaranesProveedor.dfm new file mode 100644 index 0000000..4c90ea7 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewElegirArticulosAlbaranesProveedor.dfm @@ -0,0 +1,55 @@ +inherited frViewElegirArticulosAlbaranesProveedor: TfrViewElegirArticulosAlbaranesProveedor + Height = 414 + ExplicitHeight = 414 + inherited cxGrid: TcxGrid + Height = 286 + RootLevelOptions.DetailTabsPosition = dtpTop + ExplicitHeight = 286 + inherited cxGridView: TcxGridDBTableView + inherited cxGridViewPRECIO_PVP_VENTA: TcxGridDBColumn + Visible = False + end + inherited cxGridViewPRECIO_PVP_TOTAL: TcxGridDBColumn + Visible = False + end + end + inherited cxGridLevel: TcxGridLevel + Caption = '' + end + object cxGridLevel1: TcxGridLevel + Caption = 'Generales' + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + inherited TBXDockablePanel1: TTBXDockablePanel + inherited dxLayoutControl1: TdxLayoutControl + inherited edtFechaIniFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 225 + ExplicitLeft = 225 + ExplicitWidth = 121 + Width = 121 + end + inherited eLista: TcxComboBox + Left = 383 + ExplicitLeft = 383 + ExplicitWidth = 322 + Width = 322 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 388 + ExplicitTop = 388 + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39252.489745000000000000 + BuiltInReportLink = True + end + end +end diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewElegirArticulosAlbaranesProveedor.pas b/Source/Modulos/Albaranes de proveedor/Views/uViewElegirArticulosAlbaranesProveedor.pas new file mode 100644 index 0000000..0975a9a --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewElegirArticulosAlbaranesProveedor.pas @@ -0,0 +1,107 @@ +unit uViewElegirArticulosAlbaranesProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewArticulosPorProveedor, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxImageComboBox, cxCurrencyEdit, + cxSpinEdit, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, + dxPSCompsProvider, dxPSFillPatterns, dxPSEdgePatterns, ImgList, PngImageList, + cxGridCustomPopupMenu, cxGridPopupMenu, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, + uDADataTable, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, uBizContactos, + dxPgsDlg, ActnList, TB2Item, TBX, TB2Toolbar, TBXDkPanels, TB2Dock, + uViewFiltroBase, uDAInterfaces, uViewArticulos; + +type + IViewElegirArticulosAlbaranesProveedor = interface(IViewArticulos) + ['{93C55517-8F37-4EDF-A1B0-95461D0AD807}'] + function GetProveedor: IBizProveedor; + procedure SetProveedor(const Value: IBizProveedor); + property Proveedor: IBizProveedor read GetProveedor write SetProveedor; + end; + + TfrViewElegirArticulosAlbaranesProveedor = class(TfrViewArticulosPorProveedor, IViewElegirArticulosAlbaranesProveedor) + cxGridLevel1: TcxGridLevel; + procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; + ALevel: TcxGridLevel); + procedure CustomViewDestroy(Sender: TObject); + + private + FProveedor: IBizProveedor; + function GetProveedor: IBizProveedor; + procedure SetProveedor(const Value: IBizProveedor); + + //Filtros relativos a la vista + procedure AnadirFiltroProveedor; + + public + property Proveedor: IBizProveedor read GetProveedor write SetProveedor; + procedure AnadirOtrosFiltros; override; + + end; + +implementation +{$R *.dfm} + +{ TfrViewElegirArticulosAlbaranesProveedor } + +procedure TfrViewElegirArticulosAlbaranesProveedor.AnadirFiltroProveedor; +var + FFiltro : TcxFilterCriteriaItemList; +begin + FFiltro := AddFilterGrid(fboAnd); + + case cxGrid.ActiveLevel.Index of + 0 : if Assigned(FProveedor) then + FFiltro.AddItem(cxGridViewID_PROVEEDOR, foEqual, FProveedor.ID, FProveedor.NOMBRE); + 1 : if Assigned(FProveedor) then + FFiltro.AddItem(cxGridViewID_PROVEEDOR, foEqual, Null, 'ARTICULOS SIN PROVEEDOR'); + end; +end; + +procedure TfrViewElegirArticulosAlbaranesProveedor.AnadirOtrosFiltros; +begin + inherited; + + AnadirFiltroProveedor; + + //Finalmente activamos el filtro si tenemos algo + if cxGridView.DataController.Filter.IsEmpty + then cxGridView.DataController.Filter.Active := False + else cxGridView.DataController.Filter.Active := True; + cxGrid.ActiveLevel.GridView := cxGridView; +end; + +procedure TfrViewElegirArticulosAlbaranesProveedor.CustomViewDestroy( + Sender: TObject); +begin + inherited; + FProveedor := Nil; +end; + +procedure TfrViewElegirArticulosAlbaranesProveedor.cxGridActiveTabChanged( + Sender: TcxCustomGrid; ALevel: TcxGridLevel); +begin + inherited; + RefrescarFiltro; +end; + +function TfrViewElegirArticulosAlbaranesProveedor.GetProveedor: IBizProveedor; +begin + Result := FProveedor; +end; + +procedure TfrViewElegirArticulosAlbaranesProveedor.SetProveedor( + const Value: IBizProveedor); +begin + FProveedor := Value; + if Assigned(FProveedor) then + begin + cxGridLevel.Caption := FProveedor.NOMBRE; + RefrescarFiltro; + end; +end; + +end. diff --git a/Source/Modulos/Almacenes/Almacenes_Group.bdsgroup b/Source/Modulos/Almacenes/Almacenes_Group.bdsgroup new file mode 100644 index 0000000..47346aa --- /dev/null +++ b/Source/Modulos/Almacenes/Almacenes_Group.bdsgroup @@ -0,0 +1,24 @@ + + + + + + + + + + + ..\..\Base\Base.bdsproj + ..\..\Base\GUIBase\GUIBase.bdsproj + ..\..\Base\Usuarios\Usuarios.bdsproj + Model\Almacenes_model.bdsproj + Data\Almacenes_data.bdsproj + Controller\Almacenes_controller.bdsproj + Views\Almacenes_view.bdsproj + Plugin\Almacenes_plugin.bdsproj + Base.bpl GUIBase.bpl Usuarios.bpl Almacenes_model.bpl Almacenes_data.bpl Almacenes_controller.bpl Almacenes_view.bpl Almacenes_plugin.bpl + + + + diff --git a/Source/Modulos/Almacenes/Almacenes_Group.groupproj b/Source/Modulos/Almacenes/Almacenes_Group.groupproj new file mode 100644 index 0000000..9103dd7 --- /dev/null +++ b/Source/Modulos/Almacenes/Almacenes_Group.groupproj @@ -0,0 +1,124 @@ + + + {d11a1db7-eff8-4cb6-8678-b1928036ff3f} + + + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Almacenes/Controller/Almacenes_controller.bdsproj b/Source/Modulos/Almacenes/Controller/Almacenes_controller.bdsproj new file mode 100644 index 0000000..cb52e15 --- /dev/null +++ b/Source/Modulos/Almacenes/Controller/Almacenes_controller.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + Almacenes_controller.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Almacenes/Controller/Almacenes_controller.dcu b/Source/Modulos/Almacenes/Controller/Almacenes_controller.dcu new file mode 100644 index 0000000..16cd976 Binary files /dev/null and b/Source/Modulos/Almacenes/Controller/Almacenes_controller.dcu differ diff --git a/Source/Modulos/Almacenes/Controller/Almacenes_controller.dpk b/Source/Modulos/Almacenes/Controller/Almacenes_controller.dpk new file mode 100644 index 0000000..0428f51 Binary files /dev/null and b/Source/Modulos/Almacenes/Controller/Almacenes_controller.dpk differ diff --git a/Source/Modulos/Almacenes/Controller/Almacenes_controller.dproj b/Source/Modulos/Almacenes/Controller/Almacenes_controller.dproj new file mode 100644 index 0000000..e185f2a --- /dev/null +++ b/Source/Modulos/Almacenes/Controller/Almacenes_controller.dproj @@ -0,0 +1,541 @@ + + + {9697e623-37d9-4e64-8d4c-74d7748385d4} + Almacenes_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Almacenes_controller.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Almacenes_controller.dpk + + + + + MainSource + + + + + + + + + + + + diff --git a/Source/Modulos/Almacenes/Controller/Almacenes_controller.rc b/Source/Modulos/Almacenes/Controller/Almacenes_controller.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Almacenes/Controller/Almacenes_controller.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Almacenes/Controller/Almacenes_controller.res b/Source/Modulos/Almacenes/Controller/Almacenes_controller.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Almacenes/Controller/Almacenes_controller.res differ diff --git a/Source/Modulos/Almacenes/Controller/View/uIEditorAlmacen.dcu b/Source/Modulos/Almacenes/Controller/View/uIEditorAlmacen.dcu new file mode 100644 index 0000000..da9bd66 Binary files /dev/null and b/Source/Modulos/Almacenes/Controller/View/uIEditorAlmacen.dcu differ diff --git a/Source/Modulos/Almacenes/Controller/View/uIEditorAlmacen.pas b/Source/Modulos/Almacenes/Controller/View/uIEditorAlmacen.pas new file mode 100644 index 0000000..663f3df --- /dev/null +++ b/Source/Modulos/Almacenes/Controller/View/uIEditorAlmacen.pas @@ -0,0 +1,22 @@ +unit uIEditorAlmacen; + +interface + +uses + uEditorDBItem, uBizAlmacenes, uAlmacenesController; + +type + IEditorAlmacen = interface(IEditorDBItem) + ['{C3064AF4-9DD6-4DF7-9992-CAF3833AFA2D}'] + function GetController : IAlmacenesController; + procedure SetController (const Value : IAlmacenesController); + property Controller : IAlmacenesController read GetController write SetController; + + function GetAlmacen: IBizAlmacen; + procedure SetAlmacen(const Value: IBizAlmacen); + property Almacen: IBizAlmacen read GetAlmacen write SetAlmacen; + end; + +implementation + +end. diff --git a/Source/Modulos/Almacenes/Controller/View/uIEditorAlmacenes.dcu b/Source/Modulos/Almacenes/Controller/View/uIEditorAlmacenes.dcu new file mode 100644 index 0000000..4c8c6fa Binary files /dev/null and b/Source/Modulos/Almacenes/Controller/View/uIEditorAlmacenes.dcu differ diff --git a/Source/Modulos/Almacenes/Controller/View/uIEditorAlmacenes.pas b/Source/Modulos/Almacenes/Controller/View/uIEditorAlmacenes.pas new file mode 100644 index 0000000..ae62e37 --- /dev/null +++ b/Source/Modulos/Almacenes/Controller/View/uIEditorAlmacenes.pas @@ -0,0 +1,23 @@ +unit uIEditorAlmacenes; + +interface + +uses + uEditorGridBase, uBizAlmacenes, uAlmacenesController; + +type + IEditorAlmacenes = interface(IEditorGridBase) + ['{28CD8E74-C3D5-4862-A8F9-CF0EE3E79FED}'] + function GetAlmacenes: IBizAlmacen; + procedure SetAlmacenes(const Value: IBizAlmacen); + property Almacenes: IBizAlmacen read GetAlmacenes write SetAlmacenes; + + function GetController : IAlmacenesController; + procedure SetController (const Value : IAlmacenesController); + property Controller : IAlmacenesController read GetController write SetController; + end; + + +implementation + +end. diff --git a/Source/Modulos/Almacenes/Controller/View/uIEditorListaAlmacenes.dcu b/Source/Modulos/Almacenes/Controller/View/uIEditorListaAlmacenes.dcu new file mode 100644 index 0000000..a3eebbd Binary files /dev/null and b/Source/Modulos/Almacenes/Controller/View/uIEditorListaAlmacenes.dcu differ diff --git a/Source/Modulos/Almacenes/Controller/View/uIEditorListaAlmacenes.pas b/Source/Modulos/Almacenes/Controller/View/uIEditorListaAlmacenes.pas new file mode 100644 index 0000000..773bd7d --- /dev/null +++ b/Source/Modulos/Almacenes/Controller/View/uIEditorListaAlmacenes.pas @@ -0,0 +1,25 @@ +unit uIEditorListaAlmacenes; + +interface + +uses + uBizAlmacenes; + +type + IEditorListaAlmacenes = interface + ['{79B80CD5-4EEB-425E-8F88-FFE7990AAE54}'] + function GetAlmacenes: IBizAlmacen; + procedure SetAlmacenes(const Value: IBizAlmacen); + property Almacenes: IBizAlmacen read GetAlmacenes write SetAlmacenes; + + function GetAlmacenSeleccionado: IBizAlmacen; + property AlmacenSeleccionado: IBizAlmacen read GetAlmacenSeleccionado; + + function ShowModal : Integer; + procedure Release; + end; + + +implementation + +end. diff --git a/Source/Modulos/Almacenes/Controller/uAlmacenesController.dcu b/Source/Modulos/Almacenes/Controller/uAlmacenesController.dcu new file mode 100644 index 0000000..85ecaca Binary files /dev/null and b/Source/Modulos/Almacenes/Controller/uAlmacenesController.dcu differ diff --git a/Source/Modulos/Almacenes/Controller/uAlmacenesController.pas b/Source/Modulos/Almacenes/Controller/uAlmacenesController.pas new file mode 100644 index 0000000..0b51788 --- /dev/null +++ b/Source/Modulos/Almacenes/Controller/uAlmacenesController.pas @@ -0,0 +1,421 @@ +unit uAlmacenesController; + +interface + + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uEditorDBItem, + uIDataModuleAlmacenes, uBizAlmacenes; + +type + IAlmacenesController = interface(IControllerBase) + ['{1F5E5845-5B29-4C08-87F0-D753E5454068}'] + function Buscar(const ID: Integer): IBizAlmacen; + function BuscarTodos: IBizAlmacen; + procedure Ver(AAlmacen : IBizAlmacen); + procedure VerTodos(AAlmacenes: IBizAlmacen); + function VerLista(AAlmacenes: IBizAlmacen): IBizAlmacen; + function Nuevo : IBizAlmacen; overload; + procedure Anadir(AAlmacen : IBizAlmacen); + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(AAlmacen : IBizAlmacen): Boolean; overload; + function Guardar(AAlmacen : IBizAlmacen): Boolean; + procedure DescartarCambios(AAlmacen : IBizAlmacen); + function Existe(const ID: Integer) : Boolean; + function Duplicar(AAlmacen: IBizAlmacen): IBizAlmacen; + procedure Preview(AAlmacen : IBizAlmacen); + procedure Print(AAlmacen : IBizAlmacen); + function DarListaAlmacenes : TStringList; + end; + + TAlmacenesController = class(TControllerBase, IAlmacenesController) + protected + FDataModule : IDataModuleAlmacenes; + + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; +// procedure AssignarID(AAlmacen: IBizAlmacen; ADataModule : IDataModuleAlmacenes); virtual; + function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; + function _Vacio : IBizAlmacen; + + procedure FiltrarEmpresa(AAlmacen: IBizAlmacen); + function ValidarAlmacen(AAlmacen: IBizAlmacen): Boolean; + + //Estos son los tres mtodos a sobre escribir si se desea heredar toda la logica de + //este controller + procedure AsignarDataModule; virtual; + procedure RecuperarObjetos(AAlmacen: IBizAlmacen); virtual; + + procedure ValidarObjetos; virtual; +// procedure AsignarCodigo(AAlmacen: IBizAlmacen); virtual; + + public + constructor Create; override; + destructor Destroy; override; + + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(AAlmacen : IBizAlmacen): Boolean; overload; + function Guardar(AAlmacen : IBizAlmacen): Boolean; + procedure DescartarCambios(AAlmacen : IBizAlmacen); virtual; + function Existe(const ID: Integer) : Boolean; virtual; + procedure Anadir(AAlmacen : IBizAlmacen); + function Buscar(const ID: Integer): IBizAlmacen; + function BuscarTodos: IBizAlmacen; + function Nuevo : IBizAlmacen; overload; + procedure Ver(AAlmacen : IBizAlmacen); + procedure VerTodos(AAlmacenes: IBizAlmacen); + function VerLista(AAlmacenes: IBizAlmacen): IBizAlmacen; + function Duplicar(AAlmacen: IBizAlmacen): IBizAlmacen; + procedure Preview(AAlmacen : IBizAlmacen); + procedure Print(AAlmacen : IBizAlmacen); + function DarListaAlmacenes : TStringList; + end; + +implementation + +uses + cxControls, DB, uEditorRegistryUtils, schAlmacenesClient_Intf, + uIEditorAlmacenes, uIEditorAlmacen, uDataModuleAlmacenes, + uDataModuleUsuarios, uDAInterfaces, uDataTableUtils, uFactuGES_App, + uDateUtils, uROTypes, DateUtils, Controls, Windows, uIEditorListaAlmacenes; + +{ TAlmacenesController } + +procedure TAlmacenesController.Anadir(AAlmacen: IBizAlmacen); +begin + AAlmacen.Insert; +end; + +{procedure TAlmacenesController.AsignarCodigo(AAlmacen: IBizAlmacen); +begin + if (AAlmacen.EsNuevo) then + AssignarID(AAlmacen, (FDataModule as IDataModuleAlmacenes)); +end;} + +procedure TAlmacenesController.AsignarDataModule; +begin + FDataModule := TDataModuleAlmacenes.Create(Nil); +end; + +{procedure TAlmacenesController.AssignarID(AAlmacen: IBizAlmacen; ADataModule : IDataModuleAlmacenes); +var + NuevoIDCabecera : Integer; +begin + if not Assigned(AAlmacen) then + raise Exception.Create ('Almacen no asignada'); + + NuevoIDCabecera := ADataModule.GetNextID(AAlmacen.DataTable.LogicalName); + + AAlmacen.Edit; + AAlmacen.ID := NuevoIDCabecera; + AAlmacen.Post; +end;} + +function TAlmacenesController.Buscar(const ID: Integer): IBizAlmacen; +begin + Result := (FDataModule as IDataModuleAlmacenes).GetItem(ID); +//Los almacenes sern comunes para todas las empresas. +// FiltrarEmpresa(Result); +end; + +function TAlmacenesController.BuscarTodos: IBizAlmacen; +begin + Result := FDataModule.GetItems; +//Los almacenes sern comunes para todas las empresas. +// FiltrarEmpresa(Result); +end; + +constructor TAlmacenesController.Create; +begin + inherited; + AsignarDataModule; +end; + +function TAlmacenesController.CreateEditor(const AName: String; + const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + +function TAlmacenesController.DarListaAlmacenes: TStringList; +begin + ShowHourglassCursor; + try + Result := FDataModule.DarListaAlmacenes(AppFactuGES.EmpresaActiva.ID); + finally + HideHourglassCursor; + end; +end; + +procedure TAlmacenesController.DescartarCambios(AAlmacen: IBizAlmacen); +begin + if not Assigned(AAlmacen) then + raise Exception.Create ('Almacen no asignado'); + + ShowHourglassCursor; + try + if (AAlmacen.State in dsEditModes) then + AAlmacen.Cancel; + + AAlmacen.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TAlmacenesController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + +function TAlmacenesController.Duplicar(AAlmacen: IBizAlmacen): IBizAlmacen; +begin + Result := Self._Vacio; + ShowHourglassCursor; + try + DuplicarRegistros(AAlmacen.DataTable, Result.DataTable, mdrActual); + + // Hay que dejar algunos campos como si fuera un almacen nuevo + Result.Edit; + with Result do + begin + ID_EMPRESA := AppFactuGES.EmpresaActiva.ID; + USUARIO := AppFactuGES.UsuarioActivo.UserName; + end; + + Result.Post; + finally + HideHourglassCursor; + end; +end; + +function TAlmacenesController.ValidarAlmacen(AAlmacen: IBizAlmacen): Boolean; +begin + if (AAlmacen.DataTable.State in dsEditModes) then + AAlmacen.DataTable.Post; + + if Length(AAlmacen.NOMBRE) = 0 then + raise Exception.Create('Debe indicar al menos el nombre de este almacn.'); + + // Asegurarse de valores en campos "automticos" + AAlmacen.Edit; + try + AAlmacen.USUARIO := AppFactuGES.UsuarioActivo.UserName; + + Result := True; + finally + AAlmacen.Post; + end; +end; + +procedure TAlmacenesController.ValidarObjetos; +begin +// +end; + +procedure TAlmacenesController.Ver(AAlmacen: IBizAlmacen); +var + AEditor : IEditorAlmacen; +begin + AEditor := NIL; + RecuperarObjetos(AAlmacen); + CreateEditor('EditorAlmacen', IEditorAlmacen, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.Almacen := AAlmacen; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +function TAlmacenesController.VerLista(AAlmacenes: IBizAlmacen): IBizAlmacen; +var + AEditor : IEditorListaAlmacenes; +begin + AEditor := NIL; + Result := NIL; + + CreateEditor('EditorListaAlmacenes', IEditorListaAlmacenes, AEditor); + if Assigned(AEditor) then + try + AEditor.Almacenes := AAlmacenes; + if IsPositiveResult(AEditor.ShowModal) then + Result := AEditor.AlmacenSeleccionado; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +procedure TAlmacenesController.VerTodos(AAlmacenes: IBizAlmacen); +var + AEditor : IEditorAlmacenes; +begin + AEditor := NIL; + + CreateEditor('EditorAlmacenes', IEditorAlmacenes, AEditor); + if Assigned(AEditor) then + with AEditor do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Almacenes := AAlmacenes; + ShowEmbedded; + end; +end; + +function TAlmacenesController._Vacio: IBizAlmacen; +begin + Result := Buscar(ID_NULO); +end; + +function TAlmacenesController.Eliminar(const ID: Integer): Boolean; +var + AAlmacen : IBizAlmacen; +begin + AAlmacen := Buscar(ID); + + if not Assigned(AAlmacen) then + raise Exception.Create(Format('No se ha encontrado el almacen con ID = %d', [ID])); + + Result := Eliminar(AAlmacen); + AAlmacen := NIL; +end; + +function TAlmacenesController.Eliminar(AAlmacen: IBizAlmacen): Boolean; +begin + Result := False; + + if not Assigned(AAlmacen) then + raise Exception.Create ('Almacen no asignada'); + + ShowHourglassCursor; + try + if (AAlmacen.State in dsEditModes) then + AAlmacen.Cancel; + + AAlmacen.Delete; + AAlmacen.DataTable.ApplyUpdates; + HideHourglassCursor; + Result := True; + except + on E: Exception do + begin + AAlmacen.DataTable.CancelUpdates; + HideHourglassCursor; + if (Pos('FOREIGN KEY', E.Message) > 0) then + MessageBox(0, 'No se puede borrar este almacen porque tiene artculos', 'Atencin', MB_ICONWARNING or MB_OK); + end; + end; +end; + +procedure TAlmacenesController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +begin + inherited; +// +end; + +procedure TAlmacenesController.RecuperarObjetos(AAlmacen: IBizAlmacen); +begin +// +end; + +function TAlmacenesController.Existe(const ID: Integer): Boolean; +var + AAlmacen : IBizAlmacen; +begin + try + AAlmacen := Buscar(ID); + Result := Assigned(AAlmacen) and (AAlmacen.ID = ID); + finally + AAlmacen := NIL; + end; +end; + +procedure TAlmacenesController.FiltrarEmpresa(AAlmacen: IBizAlmacen); +var + Condicion: TDAWhereExpression; +begin + if AAlmacen.DataTable.Active then + AAlmacen.DataTable.Active := False; + + // Filtrar los Almacenes actuales por empresa + with AAlmacen.DataTable.DynamicWhere do + begin + // (ID_EMPRESA >= ID) + Condicion := NewBinaryExpression(NewField('', fld_AlmacenesID_EMPRESA), NewConstant(AppFactuGES.EmpresaActiva.ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; +end; + +function TAlmacenesController.Guardar(AAlmacen: IBizAlmacen): Boolean; +begin + Result := False; + + if not Assigned(AAlmacen) then + raise Exception.Create ('Almacen no asignada'); + + ValidarObjetos; + + if ValidarAlmacen(AAlmacen) then + begin + ShowHourglassCursor; + try + if (AAlmacen.DataTable.State in dsEditModes) then + AAlmacen.DataTable.Post; + +// AsignarCodigo(AAlmacen); + AAlmacen.DataTable.ApplyUpdates; + + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TAlmacenesController.Nuevo: IBizAlmacen; +var + AAlmacen : IBizAlmacen; +begin + AAlmacen := FDataModule.NewItem; +//Los almacenes sern comunes para todas las empresas. +// FiltrarEmpresa(AAlmacen); + AAlmacen.DataTable.Active := True; + AAlmacen.Insert; + Result := AAlmacen; +end; + +procedure TAlmacenesController.Preview(AAlmacen: IBizAlmacen); +//var +// AReportController : IAlmacenesReportController; +begin +{ AReportController := TAlmacenesReportController.Create; + try + AReportController.Preview(AAlmacen.ID); + finally + AReportController := NIL; + end; +} +end; + +procedure TAlmacenesController.Print(AAlmacen: IBizAlmacen); +//var +// AReportController : IAlmacenesReportController; +begin +{ AReportController := TAlmacenesReportController.Create; + try + AReportController.Print(AAlmacen.ID); + finally + AReportController := NIL; + end; +} +end; + +end. diff --git a/Source/Modulos/Almacenes/Data/Almacenes_data.bdsproj b/Source/Modulos/Almacenes/Data/Almacenes_data.bdsproj new file mode 100644 index 0000000..fa39302 --- /dev/null +++ b/Source/Modulos/Almacenes/Data/Almacenes_data.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + Almacenes_data.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Almacenes/Data/Almacenes_data.dcu b/Source/Modulos/Almacenes/Data/Almacenes_data.dcu new file mode 100644 index 0000000..56dc2e9 Binary files /dev/null and b/Source/Modulos/Almacenes/Data/Almacenes_data.dcu differ diff --git a/Source/Modulos/Almacenes/Data/Almacenes_data.dpk b/Source/Modulos/Almacenes/Data/Almacenes_data.dpk new file mode 100644 index 0000000..a9c9daa Binary files /dev/null and b/Source/Modulos/Almacenes/Data/Almacenes_data.dpk differ diff --git a/Source/Modulos/Almacenes/Data/Almacenes_data.dproj b/Source/Modulos/Almacenes/Data/Almacenes_data.dproj new file mode 100644 index 0000000..0ddc83c --- /dev/null +++ b/Source/Modulos/Almacenes/Data/Almacenes_data.dproj @@ -0,0 +1,538 @@ + + + + {c8118762-09b6-432f-ba26-058fa36c39d9} + Almacenes_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Almacenes_data.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Almacenes_data.dpk + + + + + MainSource + + + +
DataModuleAlmacenes
+
+
+
+ diff --git a/Source/Modulos/Almacenes/Data/Almacenes_data.rc b/Source/Modulos/Almacenes/Data/Almacenes_data.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Almacenes/Data/Almacenes_data.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Almacenes/Data/Almacenes_data.res b/Source/Modulos/Almacenes/Data/Almacenes_data.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Almacenes/Data/Almacenes_data.res differ diff --git a/Source/Modulos/Almacenes/Data/uDataModuleAlmacenes.dcu b/Source/Modulos/Almacenes/Data/uDataModuleAlmacenes.dcu new file mode 100644 index 0000000..fbcc7eb Binary files /dev/null and b/Source/Modulos/Almacenes/Data/uDataModuleAlmacenes.dcu differ diff --git a/Source/Modulos/Almacenes/Data/uDataModuleAlmacenes.dfm b/Source/Modulos/Almacenes/Data/uDataModuleAlmacenes.dfm new file mode 100644 index 0000000..cb39501 --- /dev/null +++ b/Source/Modulos/Almacenes/Data/uDataModuleAlmacenes.dfm @@ -0,0 +1,144 @@ +inherited DataModuleAlmacenes: TDataModuleAlmacenes + OnCreate = DAClientDataModuleCreate + Height = 234 + Width = 300 + object RORemoteService: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvAlmacenes' + Left = 48 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 84 + end + object rda_Almacenes: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetDataCall.RemoteService = RORemoteService + UpdateDataCall.RemoteService = RORemoteService + GetScriptsCall.RemoteService = RORemoteService + RemoteService = RORemoteService + DataStreamer = Bin2DataStreamer + Left = 51 + Top = 143 + end + object tbl_Almacenes: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALMACENES_ID' + Required = True + ServerAutoRefresh = True + DictionaryEntry = 'Almacenes_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'Almacenes_ID_EMPRESA' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Nombre' + DictionaryEntry = 'Almacenes_NOMBRE' + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DisplayLabel = 'Calle' + DictionaryEntry = 'Almacenes_CALLE' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Provincia' + DictionaryEntry = 'Almacenes_PROVINCIA' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DisplayLabel = 'Poblaci'#243'n' + DictionaryEntry = 'Almacenes_POBLACION' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#243'digo postal' + DictionaryEntry = 'Almacenes_CODIGO_POSTAL' + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + DisplayLabel = 'Tel'#233'fono' + DictionaryEntry = 'Almacenes_TELEFONO' + end + item + Name = 'MOVIL' + DataType = datString + Size = 25 + DisplayLabel = 'M'#243'vil' + DictionaryEntry = 'Almacenes_MOVIL' + end + item + Name = 'FAX' + DataType = datString + Size = 25 + DisplayLabel = 'Fax' + DictionaryEntry = 'Almacenes_FAX' + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + DisplayLabel = 'Persona de contacto' + DictionaryEntry = 'Almacenes_PERSONA_CONTACTO' + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + DisplayLabel = 'Observaciones' + DictionaryEntry = 'Almacenes_OBSERVACIONES' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'Almacenes_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'Almacenes_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'Almacenes_USUARIO' + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Almacenes + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Almacenes' + IndexDefs = <> + Left = 192 + Top = 80 + end + object ds_Almacenes: TDADataSource + DataSet = tbl_Almacenes.Dataset + DataTable = tbl_Almacenes + Left = 192 + Top = 16 + end +end diff --git a/Source/Modulos/Almacenes/Data/uDataModuleAlmacenes.pas b/Source/Modulos/Almacenes/Data/uDataModuleAlmacenes.pas new file mode 100644 index 0000000..e9b1f43 --- /dev/null +++ b/Source/Modulos/Almacenes/Data/uDataModuleAlmacenes.pas @@ -0,0 +1,110 @@ +unit uDataModuleAlmacenes; + +interface + +uses + SysUtils, Classes, DB, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, + uIDataModuleAlmacenes, uBizAlmacenes, uDataModuleBase, uDARemoteDataAdapter, + uDADataStreamer, uDABin2DataStreamer, uDAInterfaces, uDAMemDataTable, + uRODynamicRequest; + + +type + TDataModuleAlmacenes = class(TDataModuleBase, IDataModuleAlmacenes) + RORemoteService: TRORemoteService; + Bin2DataStreamer: TDABin2DataStreamer; + rda_Almacenes: TDARemoteDataAdapter; + tbl_Almacenes: TDAMemDataTable; + ds_Almacenes: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + + protected + procedure AsignarClaseNegocio(AAlmacen: TDADataTable); virtual; + public + function GetItems : IBizAlmacen; + function GetItem(const ID : Integer) : IBizAlmacen; + function NewItem : IBizAlmacen; + function DarListaAlmacenes(const IDEmpresa: Integer): TStringList; + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, + schAlmacenesClient_Intf; + +{ TdmAlmacens } + +procedure TDataModuleAlmacenes.AsignarClaseNegocio(AAlmacen: TDADataTable); +begin + AAlmacen.BusinessRulesID := BIZ_CLIENT_ALMACEN; +end; + +procedure TDataModuleAlmacenes.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleAlmacenes.DarListaAlmacenes(const IDEmpresa: Integer): TStringList; +var + ABinary : Binary; +begin + ABinary := (RORemoteService as IsrvAlmacenes).DarListaAlmacenes(IDEmpresa); + Result := TStringList.Create; + Result.LoadFromStream(ABinary); +end; + +function TDataModuleAlmacenes.NewItem: IBizAlmacen; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleAlmacenes.GetItem(const ID: Integer): IBizAlmacen; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + + with Result.DataTable.DynamicWhere do + begin + // (ID = :ID) + Condicion := NewBinaryExpression(NewField('', fld_AlmacenesID), NewConstant(ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TDataModuleAlmacenes.GetItems: IBizAlmacen; +var + AAlmacen : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AAlmacen := CloneDataTable(tbl_Almacenes); + + AsignarClaseNegocio(AAlmacen); + + Result := (AAlmacen as IBizAlmacen); + + finally + HideHourglassCursor; + end; +end; + + +end. diff --git a/Source/Modulos/Almacenes/Model/Almacenes_model.bdsproj b/Source/Modulos/Almacenes/Model/Almacenes_model.bdsproj new file mode 100644 index 0000000..61379b9 --- /dev/null +++ b/Source/Modulos/Almacenes/Model/Almacenes_model.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + Almacenes_model.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Almacenes/Model/Almacenes_model.dcu b/Source/Modulos/Almacenes/Model/Almacenes_model.dcu new file mode 100644 index 0000000..59f169c Binary files /dev/null and b/Source/Modulos/Almacenes/Model/Almacenes_model.dcu differ diff --git a/Source/Modulos/Almacenes/Model/Almacenes_model.dpk b/Source/Modulos/Almacenes/Model/Almacenes_model.dpk new file mode 100644 index 0000000..2a7cac1 Binary files /dev/null and b/Source/Modulos/Almacenes/Model/Almacenes_model.dpk differ diff --git a/Source/Modulos/Almacenes/Model/Almacenes_model.dproj b/Source/Modulos/Almacenes/Model/Almacenes_model.dproj new file mode 100644 index 0000000..ec4319a --- /dev/null +++ b/Source/Modulos/Almacenes/Model/Almacenes_model.dproj @@ -0,0 +1,552 @@ + + + + {6f3570f5-74ad-4a33-a639-70dc8f299b3f} + Almacenes_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Almacenes_model.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + 3 + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Almacenes_model.dpk + Internet Explorer Hosting Support Package + CodeGear Control Panel Applet Package + CodeGear WebSnap Components + CodeGear SOAP Components + Microsoft Office XP Sample Automation Server Wrapper Components + VCL for the Web Design Package for CodeGear RAD Studio + Microsoft Office 2000 Sample Automation Server Wrapper Components + CodeGear C++Builder Internet Explorer 5 Components Package + Borland Sample Controls Design Time Package + CodeGear C++Builder Office 2000 Servers Package + CodeGear C++Builder Office XP Servers Package + + + + + + MainSource + + + + + + + + + diff --git a/Source/Modulos/Almacenes/Model/Almacenes_model.rc b/Source/Modulos/Almacenes/Model/Almacenes_model.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Almacenes/Model/Almacenes_model.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Almacenes/Model/Almacenes_model.res b/Source/Modulos/Almacenes/Model/Almacenes_model.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Almacenes/Model/Almacenes_model.res differ diff --git a/Source/Modulos/Almacenes/Model/Data/uIDataModuleAlmacenes.dcu b/Source/Modulos/Almacenes/Model/Data/uIDataModuleAlmacenes.dcu new file mode 100644 index 0000000..cda196b Binary files /dev/null and b/Source/Modulos/Almacenes/Model/Data/uIDataModuleAlmacenes.dcu differ diff --git a/Source/Modulos/Almacenes/Model/Data/uIDataModuleAlmacenes.pas b/Source/Modulos/Almacenes/Model/Data/uIDataModuleAlmacenes.pas new file mode 100644 index 0000000..9ecfaaf --- /dev/null +++ b/Source/Modulos/Almacenes/Model/Data/uIDataModuleAlmacenes.pas @@ -0,0 +1,19 @@ +unit uIDataModuleAlmacenes; + +interface + +uses + Classes, uBizAlmacenes; + +type + IDataModuleAlmacenes = interface + ['{0FE2B5E6-DE76-4834-B27F-3C754C96B76A}'] + function GetItems: IBizAlmacen; + function GetItem(const ID : Integer) : IBizAlmacen; + function NewItem : IBizAlmacen; + function DarListaAlmacenes(const IDEmpresa: Integer): TStringList; + end; + +implementation + +end. diff --git a/Source/Modulos/Almacenes/Model/schAlmacenesClient_Intf.dcu b/Source/Modulos/Almacenes/Model/schAlmacenesClient_Intf.dcu new file mode 100644 index 0000000..5877e89 Binary files /dev/null and b/Source/Modulos/Almacenes/Model/schAlmacenesClient_Intf.dcu differ diff --git a/Source/Modulos/Almacenes/Model/schAlmacenesClient_Intf.pas b/Source/Modulos/Almacenes/Model/schAlmacenesClient_Intf.pas new file mode 100644 index 0000000..18da1dd --- /dev/null +++ b/Source/Modulos/Almacenes/Model/schAlmacenesClient_Intf.pas @@ -0,0 +1,596 @@ +unit schAlmacenesClient_Intf; + +interface + +uses + Classes, DB, schBase_Intf, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_Almacenes = '{0C3FFC55-67A2-4BDA-9EAA-F90ED49C4DE7}'; + + { Data table names } + nme_Almacenes = 'Almacenes'; + + { Almacenes fields } + fld_AlmacenesID = 'ID'; + fld_AlmacenesID_EMPRESA = 'ID_EMPRESA'; + fld_AlmacenesNOMBRE = 'NOMBRE'; + fld_AlmacenesCALLE = 'CALLE'; + fld_AlmacenesPROVINCIA = 'PROVINCIA'; + fld_AlmacenesPOBLACION = 'POBLACION'; + fld_AlmacenesCODIGO_POSTAL = 'CODIGO_POSTAL'; + fld_AlmacenesTELEFONO = 'TELEFONO'; + fld_AlmacenesMOVIL = 'MOVIL'; + fld_AlmacenesFAX = 'FAX'; + fld_AlmacenesPERSONA_CONTACTO = 'PERSONA_CONTACTO'; + fld_AlmacenesOBSERVACIONES = 'OBSERVACIONES'; + fld_AlmacenesFECHA_ALTA = 'FECHA_ALTA'; + fld_AlmacenesFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_AlmacenesUSUARIO = 'USUARIO'; + + { Almacenes field indexes } + idx_AlmacenesID = 0; + idx_AlmacenesID_EMPRESA = 1; + idx_AlmacenesNOMBRE = 2; + idx_AlmacenesCALLE = 3; + idx_AlmacenesPROVINCIA = 4; + idx_AlmacenesPOBLACION = 5; + idx_AlmacenesCODIGO_POSTAL = 6; + idx_AlmacenesTELEFONO = 7; + idx_AlmacenesMOVIL = 8; + idx_AlmacenesFAX = 9; + idx_AlmacenesPERSONA_CONTACTO = 10; + idx_AlmacenesOBSERVACIONES = 11; + idx_AlmacenesFECHA_ALTA = 12; + idx_AlmacenesFECHA_MODIFICACION = 13; + idx_AlmacenesUSUARIO = 14; + +type + { IAlmacenes } + IAlmacenes = interface(IDAStronglyTypedDataTable) + ['{7C12ADCA-C970-4251-BDFC-7227CE755A91}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_EMPRESAIsNull: Boolean; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetNOMBREIsNull: Boolean; + procedure SetNOMBREIsNull(const aValue: Boolean); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetCALLEIsNull: Boolean; + procedure SetCALLEIsNull(const aValue: Boolean); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetPROVINCIAIsNull: Boolean; + procedure SetPROVINCIAIsNull(const aValue: Boolean); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPOBLACIONIsNull: Boolean; + procedure SetPOBLACIONIsNull(const aValue: Boolean); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetCODIGO_POSTALIsNull: Boolean; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); + function GetTELEFONOValue: String; + procedure SetTELEFONOValue(const aValue: String); + function GetTELEFONOIsNull: Boolean; + procedure SetTELEFONOIsNull(const aValue: Boolean); + function GetMOVILValue: String; + procedure SetMOVILValue(const aValue: String); + function GetMOVILIsNull: Boolean; + procedure SetMOVILIsNull(const aValue: Boolean); + function GetFAXValue: String; + procedure SetFAXValue(const aValue: String); + function GetFAXIsNull: Boolean; + procedure SetFAXIsNull(const aValue: Boolean); + function GetPERSONA_CONTACTOValue: String; + procedure SetPERSONA_CONTACTOValue(const aValue: String); + function GetPERSONA_CONTACTOIsNull: Boolean; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); + function GetOBSERVACIONESValue: IROStrings; + function GetOBSERVACIONESIsNull: Boolean; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_ALTAIsNull: Boolean; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONIsNull: Boolean; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetUSUARIOIsNull: Boolean; + procedure SetUSUARIOIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property TELEFONOIsNull: Boolean read GetTELEFONOIsNull write SetTELEFONOIsNull; + property MOVIL: String read GetMOVILValue write SetMOVILValue; + property MOVILIsNull: Boolean read GetMOVILIsNull write SetMOVILIsNull; + property FAX: String read GetFAXValue write SetFAXValue; + property FAXIsNull: Boolean read GetFAXIsNull write SetFAXIsNull; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull: Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue; + property OBSERVACIONESIsNull: Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + end; + + { TAlmacenesDataTableRules } + TAlmacenesDataTableRules = class(TIntfObjectDADataTableRules, IAlmacenes) + private + f_OBSERVACIONES: IROStrings; + procedure OBSERVACIONES_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetCALLEIsNull: Boolean; virtual; + procedure SetCALLEIsNull(const aValue: Boolean); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetPROVINCIAIsNull: Boolean; virtual; + procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPOBLACIONIsNull: Boolean; virtual; + procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetCODIGO_POSTALIsNull: Boolean; virtual; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual; + function GetTELEFONOValue: String; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + function GetTELEFONOIsNull: Boolean; virtual; + procedure SetTELEFONOIsNull(const aValue: Boolean); virtual; + function GetMOVILValue: String; virtual; + procedure SetMOVILValue(const aValue: String); virtual; + function GetMOVILIsNull: Boolean; virtual; + procedure SetMOVILIsNull(const aValue: Boolean); virtual; + function GetFAXValue: String; virtual; + procedure SetFAXValue(const aValue: String); virtual; + function GetFAXIsNull: Boolean; virtual; + procedure SetFAXIsNull(const aValue: Boolean); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + function GetPERSONA_CONTACTOIsNull: Boolean; virtual; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + function GetOBSERVACIONESIsNull: Boolean; virtual; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property TELEFONOIsNull: Boolean read GetTELEFONOIsNull write SetTELEFONOIsNull; + property MOVIL: String read GetMOVILValue write SetMOVILValue; + property MOVILIsNull: Boolean read GetMOVILIsNull write SetMOVILIsNull; + property FAX: String read GetFAXValue write SetFAXValue; + property FAXIsNull: Boolean read GetFAXIsNull write SetFAXIsNull; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull: Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue; + property OBSERVACIONESIsNull: Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants, uROBinaryHelpers; + +{ TAlmacenesDataTableRules } +constructor TAlmacenesDataTableRules.Create(aDataTable: TDADataTable); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := OBSERVACIONES_OnChange; + f_OBSERVACIONES := NewROStrings(StrList,True); +end; + +destructor TAlmacenesDataTableRules.Destroy; +begin + inherited; +end; + +procedure TAlmacenesDataTableRules.OBSERVACIONES_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_AlmacenesOBSERVACIONES].AsVariant := TStringList(Sender).Text; +end; + +function TAlmacenesDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_AlmacenesID].AsInteger; +end; + +procedure TAlmacenesDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlmacenesID].AsInteger := aValue; +end; + +function TAlmacenesDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_AlmacenesID].IsNull; +end; + +procedure TAlmacenesDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlmacenesID].AsVariant := Null; +end; + +function TAlmacenesDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_AlmacenesID_EMPRESA].AsInteger; +end; + +procedure TAlmacenesDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlmacenesID_EMPRESA].AsInteger := aValue; +end; + +function TAlmacenesDataTableRules.GetID_EMPRESAIsNull: boolean; +begin + result := DataTable.Fields[idx_AlmacenesID_EMPRESA].IsNull; +end; + +procedure TAlmacenesDataTableRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlmacenesID_EMPRESA].AsVariant := Null; +end; + +function TAlmacenesDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_AlmacenesNOMBRE].AsString; +end; + +procedure TAlmacenesDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_AlmacenesNOMBRE].AsString := aValue; +end; + +function TAlmacenesDataTableRules.GetNOMBREIsNull: boolean; +begin + result := DataTable.Fields[idx_AlmacenesNOMBRE].IsNull; +end; + +procedure TAlmacenesDataTableRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlmacenesNOMBRE].AsVariant := Null; +end; + +function TAlmacenesDataTableRules.GetCALLEValue: String; +begin + result := DataTable.Fields[idx_AlmacenesCALLE].AsString; +end; + +procedure TAlmacenesDataTableRules.SetCALLEValue(const aValue: String); +begin + DataTable.Fields[idx_AlmacenesCALLE].AsString := aValue; +end; + +function TAlmacenesDataTableRules.GetCALLEIsNull: boolean; +begin + result := DataTable.Fields[idx_AlmacenesCALLE].IsNull; +end; + +procedure TAlmacenesDataTableRules.SetCALLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlmacenesCALLE].AsVariant := Null; +end; + +function TAlmacenesDataTableRules.GetPROVINCIAValue: String; +begin + result := DataTable.Fields[idx_AlmacenesPROVINCIA].AsString; +end; + +procedure TAlmacenesDataTableRules.SetPROVINCIAValue(const aValue: String); +begin + DataTable.Fields[idx_AlmacenesPROVINCIA].AsString := aValue; +end; + +function TAlmacenesDataTableRules.GetPROVINCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_AlmacenesPROVINCIA].IsNull; +end; + +procedure TAlmacenesDataTableRules.SetPROVINCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlmacenesPROVINCIA].AsVariant := Null; +end; + +function TAlmacenesDataTableRules.GetPOBLACIONValue: String; +begin + result := DataTable.Fields[idx_AlmacenesPOBLACION].AsString; +end; + +procedure TAlmacenesDataTableRules.SetPOBLACIONValue(const aValue: String); +begin + DataTable.Fields[idx_AlmacenesPOBLACION].AsString := aValue; +end; + +function TAlmacenesDataTableRules.GetPOBLACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_AlmacenesPOBLACION].IsNull; +end; + +procedure TAlmacenesDataTableRules.SetPOBLACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlmacenesPOBLACION].AsVariant := Null; +end; + +function TAlmacenesDataTableRules.GetCODIGO_POSTALValue: String; +begin + result := DataTable.Fields[idx_AlmacenesCODIGO_POSTAL].AsString; +end; + +procedure TAlmacenesDataTableRules.SetCODIGO_POSTALValue(const aValue: String); +begin + DataTable.Fields[idx_AlmacenesCODIGO_POSTAL].AsString := aValue; +end; + +function TAlmacenesDataTableRules.GetCODIGO_POSTALIsNull: boolean; +begin + result := DataTable.Fields[idx_AlmacenesCODIGO_POSTAL].IsNull; +end; + +procedure TAlmacenesDataTableRules.SetCODIGO_POSTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlmacenesCODIGO_POSTAL].AsVariant := Null; +end; + +function TAlmacenesDataTableRules.GetTELEFONOValue: String; +begin + result := DataTable.Fields[idx_AlmacenesTELEFONO].AsString; +end; + +procedure TAlmacenesDataTableRules.SetTELEFONOValue(const aValue: String); +begin + DataTable.Fields[idx_AlmacenesTELEFONO].AsString := aValue; +end; + +function TAlmacenesDataTableRules.GetTELEFONOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlmacenesTELEFONO].IsNull; +end; + +procedure TAlmacenesDataTableRules.SetTELEFONOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlmacenesTELEFONO].AsVariant := Null; +end; + +function TAlmacenesDataTableRules.GetMOVILValue: String; +begin + result := DataTable.Fields[idx_AlmacenesMOVIL].AsString; +end; + +procedure TAlmacenesDataTableRules.SetMOVILValue(const aValue: String); +begin + DataTable.Fields[idx_AlmacenesMOVIL].AsString := aValue; +end; + +function TAlmacenesDataTableRules.GetMOVILIsNull: boolean; +begin + result := DataTable.Fields[idx_AlmacenesMOVIL].IsNull; +end; + +procedure TAlmacenesDataTableRules.SetMOVILIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlmacenesMOVIL].AsVariant := Null; +end; + +function TAlmacenesDataTableRules.GetFAXValue: String; +begin + result := DataTable.Fields[idx_AlmacenesFAX].AsString; +end; + +procedure TAlmacenesDataTableRules.SetFAXValue(const aValue: String); +begin + DataTable.Fields[idx_AlmacenesFAX].AsString := aValue; +end; + +function TAlmacenesDataTableRules.GetFAXIsNull: boolean; +begin + result := DataTable.Fields[idx_AlmacenesFAX].IsNull; +end; + +procedure TAlmacenesDataTableRules.SetFAXIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlmacenesFAX].AsVariant := Null; +end; + +function TAlmacenesDataTableRules.GetPERSONA_CONTACTOValue: String; +begin + result := DataTable.Fields[idx_AlmacenesPERSONA_CONTACTO].AsString; +end; + +procedure TAlmacenesDataTableRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + DataTable.Fields[idx_AlmacenesPERSONA_CONTACTO].AsString := aValue; +end; + +function TAlmacenesDataTableRules.GetPERSONA_CONTACTOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlmacenesPERSONA_CONTACTO].IsNull; +end; + +procedure TAlmacenesDataTableRules.SetPERSONA_CONTACTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlmacenesPERSONA_CONTACTO].AsVariant := Null; +end; + +function TAlmacenesDataTableRules.GetOBSERVACIONESValue: IROStrings; +begin + result := f_OBSERVACIONES; + result.Text := DataTable.Fields[idx_AlmacenesOBSERVACIONES].AsString; +end; + +function TAlmacenesDataTableRules.GetOBSERVACIONESIsNull: boolean; +begin + result := DataTable.Fields[idx_AlmacenesOBSERVACIONES].IsNull; +end; + +procedure TAlmacenesDataTableRules.SetOBSERVACIONESIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlmacenesOBSERVACIONES].AsVariant := Null; +end; + +function TAlmacenesDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_AlmacenesFECHA_ALTA].AsDateTime; +end; + +procedure TAlmacenesDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_AlmacenesFECHA_ALTA].AsDateTime := aValue; +end; + +function TAlmacenesDataTableRules.GetFECHA_ALTAIsNull: boolean; +begin + result := DataTable.Fields[idx_AlmacenesFECHA_ALTA].IsNull; +end; + +procedure TAlmacenesDataTableRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlmacenesFECHA_ALTA].AsVariant := Null; +end; + +function TAlmacenesDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_AlmacenesFECHA_MODIFICACION].AsDateTime; +end; + +procedure TAlmacenesDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_AlmacenesFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TAlmacenesDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_AlmacenesFECHA_MODIFICACION].IsNull; +end; + +procedure TAlmacenesDataTableRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlmacenesFECHA_MODIFICACION].AsVariant := Null; +end; + +function TAlmacenesDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_AlmacenesUSUARIO].AsString; +end; + +procedure TAlmacenesDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_AlmacenesUSUARIO].AsString := aValue; +end; + +function TAlmacenesDataTableRules.GetUSUARIOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlmacenesUSUARIO].IsNull; +end; + +procedure TAlmacenesDataTableRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlmacenesUSUARIO].AsVariant := Null; +end; + + +initialization + RegisterDataTableRules(RID_Almacenes, TAlmacenesDataTableRules); + +end. diff --git a/Source/Modulos/Almacenes/Model/schAlmacenesServer_Intf.dcu b/Source/Modulos/Almacenes/Model/schAlmacenesServer_Intf.dcu new file mode 100644 index 0000000..0efd232 Binary files /dev/null and b/Source/Modulos/Almacenes/Model/schAlmacenesServer_Intf.dcu differ diff --git a/Source/Modulos/Almacenes/Model/schAlmacenesServer_Intf.pas b/Source/Modulos/Almacenes/Model/schAlmacenesServer_Intf.pas new file mode 100644 index 0000000..f8f95d5 --- /dev/null +++ b/Source/Modulos/Almacenes/Model/schAlmacenesServer_Intf.pas @@ -0,0 +1,711 @@ +unit schAlmacenesServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schAlmacenesClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_AlmacenesDelta = '{3AC4736D-AB9F-4DAB-B2A2-D9EABF8D0C8C}'; + +type + { IAlmacenesDelta } + IAlmacenesDelta = interface(IAlmacenes) + ['{3AC4736D-AB9F-4DAB-B2A2-D9EABF8D0C8C}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldNOMBREValue : String; + function GetOldCALLEValue : String; + function GetOldPROVINCIAValue : String; + function GetOldPOBLACIONValue : String; + function GetOldCODIGO_POSTALValue : String; + function GetOldTELEFONOValue : String; + function GetOldMOVILValue : String; + function GetOldFAXValue : String; + function GetOldPERSONA_CONTACTOValue : String; + function GetOldOBSERVACIONESValue : IROStrings; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + function GetOldUSUARIOValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldCALLE : String read GetOldCALLEValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property OldTELEFONO : String read GetOldTELEFONOValue; + property OldMOVIL : String read GetOldMOVILValue; + property OldFAX : String read GetOldFAXValue; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + end; + + { TAlmacenesBusinessProcessorRules } + TAlmacenesBusinessProcessorRules = class(TDABusinessProcessorRules, IAlmacenes, IAlmacenesDelta) + private + f_OBSERVACIONES: IROStrings; + procedure OBSERVACIONES_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + function GetNOMBREIsNull: Boolean; virtual; + function GetOldNOMBREValue: String; virtual; + function GetOldNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetCALLEValue: String; virtual; + function GetCALLEIsNull: Boolean; virtual; + function GetOldCALLEValue: String; virtual; + function GetOldCALLEIsNull: Boolean; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + procedure SetCALLEIsNull(const aValue: Boolean); virtual; + function GetPROVINCIAValue: String; virtual; + function GetPROVINCIAIsNull: Boolean; virtual; + function GetOldPROVINCIAValue: String; virtual; + function GetOldPROVINCIAIsNull: Boolean; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual; + function GetPOBLACIONValue: String; virtual; + function GetPOBLACIONIsNull: Boolean; virtual; + function GetOldPOBLACIONValue: String; virtual; + function GetOldPOBLACIONIsNull: Boolean; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetCODIGO_POSTALIsNull: Boolean; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALIsNull: Boolean; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual; + function GetTELEFONOValue: String; virtual; + function GetTELEFONOIsNull: Boolean; virtual; + function GetOldTELEFONOValue: String; virtual; + function GetOldTELEFONOIsNull: Boolean; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + procedure SetTELEFONOIsNull(const aValue: Boolean); virtual; + function GetMOVILValue: String; virtual; + function GetMOVILIsNull: Boolean; virtual; + function GetOldMOVILValue: String; virtual; + function GetOldMOVILIsNull: Boolean; virtual; + procedure SetMOVILValue(const aValue: String); virtual; + procedure SetMOVILIsNull(const aValue: Boolean); virtual; + function GetFAXValue: String; virtual; + function GetFAXIsNull: Boolean; virtual; + function GetOldFAXValue: String; virtual; + function GetOldFAXIsNull: Boolean; virtual; + procedure SetFAXValue(const aValue: String); virtual; + procedure SetFAXIsNull(const aValue: Boolean); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + function GetPERSONA_CONTACTOIsNull: Boolean; virtual; + function GetOldPERSONA_CONTACTOValue: String; virtual; + function GetOldPERSONA_CONTACTOIsNull: Boolean; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + function GetOBSERVACIONESIsNull: Boolean; virtual; + function GetOldOBSERVACIONESValue: IROStrings; virtual; + function GetOldOBSERVACIONESIsNull: Boolean; virtual; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + function GetUSUARIOIsNull: Boolean; virtual; + function GetOldUSUARIOValue: String; virtual; + function GetOldUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull : Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_EMPRESAIsNull : Boolean read GetOldID_EMPRESAIsNull; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull : Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldNOMBREIsNull : Boolean read GetOldNOMBREIsNull; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull : Boolean read GetCALLEIsNull write SetCALLEIsNull; + property OldCALLE : String read GetOldCALLEValue; + property OldCALLEIsNull : Boolean read GetOldCALLEIsNull; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull : Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property OldPROVINCIAIsNull : Boolean read GetOldPROVINCIAIsNull; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull : Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property OldPOBLACIONIsNull : Boolean read GetOldPOBLACIONIsNull; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull : Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property OldCODIGO_POSTALIsNull : Boolean read GetOldCODIGO_POSTALIsNull; + property TELEFONO : String read GetTELEFONOValue write SetTELEFONOValue; + property TELEFONOIsNull : Boolean read GetTELEFONOIsNull write SetTELEFONOIsNull; + property OldTELEFONO : String read GetOldTELEFONOValue; + property OldTELEFONOIsNull : Boolean read GetOldTELEFONOIsNull; + property MOVIL : String read GetMOVILValue write SetMOVILValue; + property MOVILIsNull : Boolean read GetMOVILIsNull write SetMOVILIsNull; + property OldMOVIL : String read GetOldMOVILValue; + property OldMOVILIsNull : Boolean read GetOldMOVILIsNull; + property FAX : String read GetFAXValue write SetFAXValue; + property FAXIsNull : Boolean read GetFAXIsNull write SetFAXIsNull; + property OldFAX : String read GetOldFAXValue; + property OldFAXIsNull : Boolean read GetOldFAXIsNull; + property PERSONA_CONTACTO : String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull : Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property OldPERSONA_CONTACTOIsNull : Boolean read GetOldPERSONA_CONTACTOIsNull; + property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue; + property OBSERVACIONESIsNull : Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property OldOBSERVACIONESIsNull : Boolean read GetOldOBSERVACIONESIsNull; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull : Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_ALTAIsNull : Boolean read GetOldFECHA_ALTAIsNull; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull : Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldUSUARIOIsNull : Boolean read GetOldUSUARIOIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers, uDAInterfaces; + +{ TAlmacenesBusinessProcessorRules } +constructor TAlmacenesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := OBSERVACIONES_OnChange; + f_OBSERVACIONES := NewROStrings(StrList,True); +end; + +destructor TAlmacenesBusinessProcessorRules.Destroy; +begin + inherited; +end; + +procedure TAlmacenesBusinessProcessorRules.OBSERVACIONES_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesOBSERVACIONES] := TStringList(Sender).Text; +end; + +function TAlmacenesBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesID]; +end; + +function TAlmacenesBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesID]); +end; + +function TAlmacenesBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesID]; +end; + +function TAlmacenesBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesID]); +end; + +procedure TAlmacenesBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesID] := aValue; +end; + +procedure TAlmacenesBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesID] := Null; +end; + +function TAlmacenesBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesID_EMPRESA]; +end; + +function TAlmacenesBusinessProcessorRules.GetID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesID_EMPRESA]); +end; + +function TAlmacenesBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesID_EMPRESA]; +end; + +function TAlmacenesBusinessProcessorRules.GetOldID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesID_EMPRESA]); +end; + +procedure TAlmacenesBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesID_EMPRESA] := aValue; +end; + +procedure TAlmacenesBusinessProcessorRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesID_EMPRESA] := Null; +end; + +function TAlmacenesBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesNOMBRE]; +end; + +function TAlmacenesBusinessProcessorRules.GetNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesNOMBRE]); +end; + +function TAlmacenesBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesNOMBRE]; +end; + +function TAlmacenesBusinessProcessorRules.GetOldNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesNOMBRE]); +end; + +procedure TAlmacenesBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesNOMBRE] := aValue; +end; + +procedure TAlmacenesBusinessProcessorRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesNOMBRE] := Null; +end; + +function TAlmacenesBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesCALLE]; +end; + +function TAlmacenesBusinessProcessorRules.GetCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesCALLE]); +end; + +function TAlmacenesBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesCALLE]; +end; + +function TAlmacenesBusinessProcessorRules.GetOldCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesCALLE]); +end; + +procedure TAlmacenesBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesCALLE] := aValue; +end; + +procedure TAlmacenesBusinessProcessorRules.SetCALLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesCALLE] := Null; +end; + +function TAlmacenesBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesPROVINCIA]; +end; + +function TAlmacenesBusinessProcessorRules.GetPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesPROVINCIA]); +end; + +function TAlmacenesBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesPROVINCIA]; +end; + +function TAlmacenesBusinessProcessorRules.GetOldPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesPROVINCIA]); +end; + +procedure TAlmacenesBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesPROVINCIA] := aValue; +end; + +procedure TAlmacenesBusinessProcessorRules.SetPROVINCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesPROVINCIA] := Null; +end; + +function TAlmacenesBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesPOBLACION]; +end; + +function TAlmacenesBusinessProcessorRules.GetPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesPOBLACION]); +end; + +function TAlmacenesBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesPOBLACION]; +end; + +function TAlmacenesBusinessProcessorRules.GetOldPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesPOBLACION]); +end; + +procedure TAlmacenesBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesPOBLACION] := aValue; +end; + +procedure TAlmacenesBusinessProcessorRules.SetPOBLACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesPOBLACION] := Null; +end; + +function TAlmacenesBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesCODIGO_POSTAL]; +end; + +function TAlmacenesBusinessProcessorRules.GetCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesCODIGO_POSTAL]); +end; + +function TAlmacenesBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesCODIGO_POSTAL]; +end; + +function TAlmacenesBusinessProcessorRules.GetOldCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesCODIGO_POSTAL]); +end; + +procedure TAlmacenesBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesCODIGO_POSTAL] := aValue; +end; + +procedure TAlmacenesBusinessProcessorRules.SetCODIGO_POSTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesCODIGO_POSTAL] := Null; +end; + +function TAlmacenesBusinessProcessorRules.GetTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesTELEFONO]; +end; + +function TAlmacenesBusinessProcessorRules.GetTELEFONOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesTELEFONO]); +end; + +function TAlmacenesBusinessProcessorRules.GetOldTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesTELEFONO]; +end; + +function TAlmacenesBusinessProcessorRules.GetOldTELEFONOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesTELEFONO]); +end; + +procedure TAlmacenesBusinessProcessorRules.SetTELEFONOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesTELEFONO] := aValue; +end; + +procedure TAlmacenesBusinessProcessorRules.SetTELEFONOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesTELEFONO] := Null; +end; + +function TAlmacenesBusinessProcessorRules.GetMOVILValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesMOVIL]; +end; + +function TAlmacenesBusinessProcessorRules.GetMOVILIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesMOVIL]); +end; + +function TAlmacenesBusinessProcessorRules.GetOldMOVILValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesMOVIL]; +end; + +function TAlmacenesBusinessProcessorRules.GetOldMOVILIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesMOVIL]); +end; + +procedure TAlmacenesBusinessProcessorRules.SetMOVILValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesMOVIL] := aValue; +end; + +procedure TAlmacenesBusinessProcessorRules.SetMOVILIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesMOVIL] := Null; +end; + +function TAlmacenesBusinessProcessorRules.GetFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesFAX]; +end; + +function TAlmacenesBusinessProcessorRules.GetFAXIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesFAX]); +end; + +function TAlmacenesBusinessProcessorRules.GetOldFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesFAX]; +end; + +function TAlmacenesBusinessProcessorRules.GetOldFAXIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesFAX]); +end; + +procedure TAlmacenesBusinessProcessorRules.SetFAXValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesFAX] := aValue; +end; + +procedure TAlmacenesBusinessProcessorRules.SetFAXIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesFAX] := Null; +end; + +function TAlmacenesBusinessProcessorRules.GetPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesPERSONA_CONTACTO]; +end; + +function TAlmacenesBusinessProcessorRules.GetPERSONA_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesPERSONA_CONTACTO]); +end; + +function TAlmacenesBusinessProcessorRules.GetOldPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesPERSONA_CONTACTO]; +end; + +function TAlmacenesBusinessProcessorRules.GetOldPERSONA_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesPERSONA_CONTACTO]); +end; + +procedure TAlmacenesBusinessProcessorRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesPERSONA_CONTACTO] := aValue; +end; + +procedure TAlmacenesBusinessProcessorRules.SetPERSONA_CONTACTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesPERSONA_CONTACTO] := Null; +end; + +function TAlmacenesBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings; +begin + result := f_OBSERVACIONES; + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesOBSERVACIONES]; +end; + +function TAlmacenesBusinessProcessorRules.GetOBSERVACIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesOBSERVACIONES]); +end; + +function TAlmacenesBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesOBSERVACIONES]; +end; + +function TAlmacenesBusinessProcessorRules.GetOldOBSERVACIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesOBSERVACIONES]); +end; + +procedure TAlmacenesBusinessProcessorRules.SetOBSERVACIONESIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesOBSERVACIONES] := Null; +end; + +function TAlmacenesBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesFECHA_ALTA]; +end; + +function TAlmacenesBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesFECHA_ALTA]); +end; + +function TAlmacenesBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesFECHA_ALTA]; +end; + +function TAlmacenesBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesFECHA_ALTA]); +end; + +procedure TAlmacenesBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesFECHA_ALTA] := aValue; +end; + +procedure TAlmacenesBusinessProcessorRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesFECHA_ALTA] := Null; +end; + +function TAlmacenesBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesFECHA_MODIFICACION]; +end; + +function TAlmacenesBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesFECHA_MODIFICACION]); +end; + +function TAlmacenesBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesFECHA_MODIFICACION]; +end; + +function TAlmacenesBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesFECHA_MODIFICACION]); +end; + +procedure TAlmacenesBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesFECHA_MODIFICACION] := aValue; +end; + +procedure TAlmacenesBusinessProcessorRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesFECHA_MODIFICACION] := Null; +end; + +function TAlmacenesBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesUSUARIO]; +end; + +function TAlmacenesBusinessProcessorRules.GetUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesUSUARIO]); +end; + +function TAlmacenesBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesUSUARIO]; +end; + +function TAlmacenesBusinessProcessorRules.GetOldUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlmacenesUSUARIO]); +end; + +procedure TAlmacenesBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesUSUARIO] := aValue; +end; + +procedure TAlmacenesBusinessProcessorRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlmacenesUSUARIO] := Null; +end; + + +initialization + RegisterBusinessProcessorRules(RID_AlmacenesDelta, TAlmacenesBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Almacenes/Model/uBizAlmacenes.dcu b/Source/Modulos/Almacenes/Model/uBizAlmacenes.dcu new file mode 100644 index 0000000..8c3491e Binary files /dev/null and b/Source/Modulos/Almacenes/Model/uBizAlmacenes.dcu differ diff --git a/Source/Modulos/Almacenes/Model/uBizAlmacenes.pas b/Source/Modulos/Almacenes/Model/uBizAlmacenes.pas new file mode 100644 index 0000000..a220006 --- /dev/null +++ b/Source/Modulos/Almacenes/Model/uBizAlmacenes.pas @@ -0,0 +1,50 @@ +unit uBizAlmacenes; + +interface + +uses + uDAInterfaces, uDADataTable, schAlmacenesClient_Intf; + +const + BIZ_CLIENT_ALMACEN = 'Client.Almacen'; + +type + IBizAlmacen = interface(IAlmacenes) + ['{4DEDACCD-5CC1-474A-BE9A-46D3BCCF9025}'] + function EsNuevo : Boolean; + end; + + TBizAlmacen = class(TAlmacenesDataTableRules, IBizAlmacen) + protected + procedure OnNewRecord(Sender: TDADataTable); override; + + public + function EsNuevo : Boolean; + end; + +implementation + +uses + uFactuGES_App; + +{ TBizAlmacen } + +function TBizAlmacen.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +procedure TBizAlmacen.OnNewRecord(Sender: TDADataTable); +begin + inherited; +// ID := GetRecNo; // -1, -2, -3... + ID_EMPRESA := AppFactuGES.EmpresaActiva.ID; + USUARIO := AppFactuGES.UsuarioActivo.UserName; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_ALMACEN, TBizAlmacen); + +finalization + +end. diff --git a/Source/Modulos/Almacenes/Plugin/Almacenes_plugin.bdsproj b/Source/Modulos/Almacenes/Plugin/Almacenes_plugin.bdsproj new file mode 100644 index 0000000..8bc6066 --- /dev/null +++ b/Source/Modulos/Almacenes/Plugin/Almacenes_plugin.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + Almacenes_plugin.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Almacenes/Plugin/Almacenes_plugin.dcu b/Source/Modulos/Almacenes/Plugin/Almacenes_plugin.dcu new file mode 100644 index 0000000..8c85e76 Binary files /dev/null and b/Source/Modulos/Almacenes/Plugin/Almacenes_plugin.dcu differ diff --git a/Source/Modulos/Almacenes/Plugin/Almacenes_plugin.dpk b/Source/Modulos/Almacenes/Plugin/Almacenes_plugin.dpk new file mode 100644 index 0000000..616e894 Binary files /dev/null and b/Source/Modulos/Almacenes/Plugin/Almacenes_plugin.dpk differ diff --git a/Source/Modulos/Almacenes/Plugin/Almacenes_plugin.dproj b/Source/Modulos/Almacenes/Plugin/Almacenes_plugin.dproj new file mode 100644 index 0000000..5d8d96f --- /dev/null +++ b/Source/Modulos/Almacenes/Plugin/Almacenes_plugin.dproj @@ -0,0 +1,537 @@ + + + {93c484bb-2c1d-4afb-b75d-3ce39b2b3e1c} + Almacenes_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Almacenes_plugin.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Almacenes_plugin.dpk + + + + + MainSource + + + + + + + + diff --git a/Source/Modulos/Almacenes/Plugin/Almacenes_plugin.rc b/Source/Modulos/Almacenes/Plugin/Almacenes_plugin.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Almacenes/Plugin/Almacenes_plugin.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Almacenes/Plugin/Almacenes_plugin.res b/Source/Modulos/Almacenes/Plugin/Almacenes_plugin.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Almacenes/Plugin/Almacenes_plugin.res differ diff --git a/Source/Modulos/Almacenes/Plugin/uPluginAlmacenes.dcu b/Source/Modulos/Almacenes/Plugin/uPluginAlmacenes.dcu new file mode 100644 index 0000000..8ff15e3 Binary files /dev/null and b/Source/Modulos/Almacenes/Plugin/uPluginAlmacenes.dcu differ diff --git a/Source/Modulos/Almacenes/Plugin/uPluginAlmacenes.dfm b/Source/Modulos/Almacenes/Plugin/uPluginAlmacenes.dfm new file mode 100644 index 0000000..56038e5 --- /dev/null +++ b/Source/Modulos/Almacenes/Plugin/uPluginAlmacenes.dfm @@ -0,0 +1,131 @@ +object PluginAlmacenes: TPluginAlmacenes + OldCreateOrder = True + Description = 'Log'#237'stica' + ModuleMenu = MainMenu + ModuleName = 'Almacenes' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software' + Version = '1.0.0' + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001D44944415478DA + B5D4BD4B027118C0F1E737D552D0105843616F838519166551345443A32D2E0D + D15863FF416B2141353544144A2004114144431695841445D00BE950E7905618 + 742F2257CFD9D9EFCE3BEF4EF001797E9CFAFD1C8A125114A19C43648010A2F9 + 8205AF5D7C611296C3FE33961802189F5909C13B1383EFF427B05FB94738B409 + 76BB0DC6E756FEAE7D289EF7EF3E422010280E941ADF589E8754A3AF3820C7F1 + 0DA9D798A5785D8D0D6EAB87F5013A8E81D46BDC521C471750C731F0CEC44DC5 + 5B1B9A41E00510848C36B038D15410C7F3C1FAB261BCABC3998BF31969472B07 + 0A81D97E52D20F62D0E381CCEF5DF3129043CE494F21B03445C4B1D169C36036 + 9B95223C27C0D17E181CCE36E963A19163C1551A40C731747274019DDDED529C + 460EBF1CD601751CCF91D328F40DBA81653905B2976CB10668C5715F5DDEC2D0 + 88473AD3C80ED3681ED08BE3BEBBB997001C1AD98ED79B038AC5F14E9FEE9FF3 + 008D6C3DD41A03EA38FBCDE501FE6F332F090520236BD755C5013A22A8367D3D + F9962C00562315100C06FFFF21D480D938EE743AAD00E4389E3581E1A149D371 + FC0E388ECD03745C17F0F4FA4CC77164401DD705DC2EAFE9B80CE03FA73AAE0B + 9C733EB03A5A714DA05C5376E00756B52DFEBD3C9AE50000000049454E44AE42 + 6082} + Name = 'PngImage1' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + object actAlmacenes: TAction + Tag = 100 + Category = 'Log'#237'stica' + Caption = 'Almacenes' + ImageIndex = 0 + OnExecute = actAlmacenesExecute + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object Ventas1: TMenuItem + Caption = 'Log'#237'stica' + object Almacenes1: TMenuItem + Tag = 110 + Action = actAlmacenes + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000022E4944415478DA + 8D93CF6BD36018C7BF6997A45DD376EA70CA18D31D44981741280C44119DA83D + C87619781A1EFD1BC49B2028B28353141111A43BE8CD934E65A8D4A1686B61B5 + A31DD8CCBAFEDAACEDF226B389EFFB26CBCC54E6030FEFCB4B3E9FE79B9744B0 + 2C0B8220E0F7BA3AB2D75A282DE07F4AD82C60F0851B8F50530BF85EF98A6236 + 8DCCAB69B0B366BD8C95B24ACF4BB877FD226AFD635EC13A5CF99243A356869A + 4D51F8398799EC476D09E5621E0F6F5EC6C8D938EE7C503604EB7055CDA34127 + A8B90C3ECD3CE570A35AA2FD0DCB4B2AEE4F5CC29953C35094102667655B706D + 7480C3F97412AD951AAAC502E6DEBCE47031974673B942BB8AA9DB57103F7D12 + 9D9D413ED4154C8C0BD6FCE7AD2F6C2816C3CE9E6E8862077C3E9F57307CE2FC + 1F80655A308C35E844C7B3273318D8D78FE8B6282449A41211B7DE05FE2D304D + 13866EC34433F0FAC55BF4EDE945A42B0C910A6459C6DD94F27781D936F964B2 + AADB02DAEF9329ECEEED4138A240944548B2840773DBBD02B637596C6238205D + 352AD175643E66B1A3BB0B0A15489204292061AAB0CB2B68D3C96B34367120BE + 3AB2F96C01E1A8825028083920F35778BCD8B721387E6C9C42060788465C50A3 + 12B24AB0582C2110946907282C61BA3588442221B882C343E75C50A30093B104 + 84D849EAD53AFC1D7E0ECFFA631C76FF0526387470D4135977405B62A0D56CB2 + C791891C71618FE0C0FEB873618623B2E33361FB679B4A340A1FF5C01E41928C + 6DF9256E8659FD02D3B7960923D6946A0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD2520000020F4944415478DA + E5D4DB2B04511800F06FB659D7CD2D892816B984258992242129E5924BDEE491 + 47FF81571E9495072F44BB1EF69127CAA5DC436E895C4A92AC6CC48E9961EC39 + 63C7EEEC65CEAC6D5F7CF575E69C33F3FD3AA773861204014219D4FF02298AF2 + FAD2709B5EB8BEBF0E18195B17A4C28A20C2FA8D16E059065EACF7F0FE6203FB + AB986B9619D0EB93A169D0E8757E7A6C089ED2BBC1643291814E4C2CF0EC13F3 + 368FB0AE8E5618DF0E27038381A1200283851181C1C414C191F6CC3F611DED2D + A0D150E4E0402515F0A56CACAF83C8A808A069DA0DF50B8EF65242437D1F11C0 + B13C701C87DBA58555282E2B045A4B83D691AE685040578C6339585DDC808292 + 3C0CC9D13F83728CE378D858D981DC826C8CC9D189DD88C0C10F86151119BAB7 + 7D08593919222843270F74EAC1AFCF2FBC126F181A3FDA3F85F4CC34097245A7 + 4EE2D4814A18EA9F1D5F404A6A1284858779A0B3E789E42009869E2FCF6F2031 + 29016FA11C9DBB4A26034931D691B73777101B1F8341396AB94D53064930C6FE + 21818F0F5688D6454907C589CE5BB3C16C36BBFF3EE5605D6DAF072616E781E7 + C53196FD5D1DEADB9E6D18D06A7F4FE73263C018AAEB17ACAAEC715FCD4F515F + 186ADFDFDE1C975C23615B9A720953042BCA3A556168FB19C68EBF47E8A1AEDA + 0D53044B0DADAA30144EF038A6C60353048BF29B55614ED017A6086E32DD1048 + F8C2FC82A1889083DF93D867F65E51168D0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 80 + Bitmap = {} + end +end diff --git a/Source/Modulos/Almacenes/Plugin/uPluginAlmacenes.pas b/Source/Modulos/Almacenes/Plugin/uPluginAlmacenes.pas new file mode 100644 index 0000000..4cab56f --- /dev/null +++ b/Source/Modulos/Almacenes/Plugin/uPluginAlmacenes.pas @@ -0,0 +1,74 @@ +unit uPluginAlmacenes; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCAlmacenes = interface(IInterface) + ['{ED6B467B-B6DD-4E2E-8E54-BCEB8FD0A012}'] + end; + + TPluginAlmacenes = class(TModuleController, IMCAlmacenes) + actAlmacenes: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + Ventas1: TMenuItem; + Almacenes1: TMenuItem; + procedure actAlmacenesExecute(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, + uAlmacenesController, uBizAlmacenes, uAlmacenesViewRegister; + +function GetModule : TModuleController; +begin + Result := TPluginAlmacenes.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +procedure TPluginAlmacenes.actAlmacenesExecute(Sender: TObject); +var + AAlmacenesController : IAlmacenesController; + AAlmacenes : IBizAlmacen; + +begin + AAlmacenesController := TAlmacenesController.Create; + AAlmacenes := (AAlmacenesController.BuscarTodos as IBizAlmacen); + AAlmacenesController.VerTodos(AAlmacenes); +end; + +constructor TPluginAlmacenes.Create(AOwner: TComponent); +begin + inherited; + uAlmacenesViewRegister.RegisterViews; +end; + +destructor TPluginAlmacenes.Destroy; +begin + uAlmacenesViewRegister.UnregisterViews; + inherited; +end; + +initialization + RegisterModuleClass(TPluginAlmacenes); + +finalization + UnRegisterModuleClass(TPluginAlmacenes); + +end. diff --git a/Source/Modulos/Almacenes/Servidor/srvAlmacenes_Impl.dcu b/Source/Modulos/Almacenes/Servidor/srvAlmacenes_Impl.dcu new file mode 100644 index 0000000..5c5c89b Binary files /dev/null and b/Source/Modulos/Almacenes/Servidor/srvAlmacenes_Impl.dcu differ diff --git a/Source/Modulos/Almacenes/Servidor/srvAlmacenes_Impl.dfm b/Source/Modulos/Almacenes/Servidor/srvAlmacenes_Impl.dfm new file mode 100644 index 0000000..76e621d --- /dev/null +++ b/Source/Modulos/Almacenes/Servidor/srvAlmacenes_Impl.dfm @@ -0,0 +1,496 @@ +object srvAlmacenes: TsrvAlmacenes + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + ConnectionName = 'IBX' + ServiceSchema = schAlmacenes + ServiceDataStreamer = Bin2DataStreamer + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + Height = 249 + Width = 343 + object Diagrams: TDADiagrams + Left = 150 + Top = 82 + DiagramData = ''#13#10''#13#10 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'Almacenes_CALLE' + DataType = datString + Size = 255 + DisplayLabel = 'Calle' + end + item + Name = 'Almacenes_PROVINCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Provincia' + end + item + Name = 'Almacenes_POBLACION' + DataType = datString + Size = 255 + DisplayLabel = 'Poblaci'#243'n' + end + item + Name = 'Almacenes_CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#243'digo postal' + end + item + Name = 'Almacenes_TELEFONO' + DataType = datString + Size = 25 + DisplayLabel = 'Tel'#233'fono' + end + item + Name = 'Almacenes_MOVIL' + DataType = datString + Size = 25 + DisplayLabel = 'M'#243'vil' + end + item + Name = 'Almacenes_FAX' + DataType = datString + Size = 25 + DisplayLabel = 'Fax' + end + item + Name = 'Almacenes_OBSERVACIONES' + DataType = datMemo + DisplayLabel = 'Observaciones' + end + item + Name = 'Almacenes_ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALMACENES_ID' + Required = True + DisplayLabel = 'ID' + end + item + Name = 'Almacenes_ID_EMPRESA' + DataType = datInteger + DisplayLabel = 'ID_EMPRESA' + end + item + Name = 'Almacenes_FECHA_ALTA' + DataType = datDateTime + DisplayLabel = 'FECHA_ALTA' + end + item + Name = 'Almacenes_PERSONA_CONTACTO' + DataType = datString + Size = 255 + DisplayLabel = 'Persona de contacto' + end + item + Name = 'Almacenes_FECHA_MODIFICACION' + DataType = datDateTime + DisplayLabel = 'FECHA_MODIFICACION' + end + item + Name = 'Almacenes_USUARIO' + DataType = datString + Size = 20 + DisplayLabel = 'USUARIO' + end + item + Name = 'Almacenes_NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Nombre' + end> + Left = 150 + Top = 22 + end + object schAlmacenes: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Diagrams = Diagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'ALMACENES' + Name = 'IBX' + SQL = + 'Select ID, NOMBRE'#10'from ALMACENES'#10'where TIPO_ALMACEN = '#39'ALMACEN'#39#10 + + 'order by NOMBRE'#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end> + end> + Name = 'ListaAlmacenes' + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_ALMACENES' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end + item + DatasetField = 'TELEFONO' + TableField = 'TELEFONO' + end + item + DatasetField = 'MOVIL' + TableField = 'MOVIL' + end + item + DatasetField = 'FAX' + TableField = 'FAX' + end + item + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end> + end> + Name = 'Almacenes' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALMACENES_ID' + ServerAutoRefresh = True + DictionaryEntry = 'Almacenes_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'Almacenes_ID_EMPRESA' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DictionaryEntry = 'Almacenes_NOMBRE' + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DictionaryEntry = 'Almacenes_CALLE' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'Almacenes_PROVINCIA' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DictionaryEntry = 'Almacenes_POBLACION' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DictionaryEntry = 'Almacenes_CODIGO_POSTAL' + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + DictionaryEntry = 'Almacenes_TELEFONO' + end + item + Name = 'MOVIL' + DataType = datString + Size = 25 + DictionaryEntry = 'Almacenes_MOVIL' + end + item + Name = 'FAX' + DataType = datString + Size = 25 + DictionaryEntry = 'Almacenes_FAX' + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + DictionaryEntry = 'Almacenes_PERSONA_CONTACTO' + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + DictionaryEntry = 'Almacenes_OBSERVACIONES' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'Almacenes_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'Almacenes_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'Almacenes_USUARIO' + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALMACENES_ID' + Value = '' + end + item + Name = 'ID_EMPRESA' + Value = '' + end + item + Name = 'NOMBRE' + Value = '' + end + item + Name = 'CALLE' + Value = '' + end + item + Name = 'PROVINCIA' + Value = '' + end + item + Name = 'POBLACION' + Value = '' + end + item + Name = 'CODIGO_POSTAL' + Value = '' + end + item + Name = 'TELEFONO' + Value = '' + end + item + Name = 'MOVIL' + Value = '' + end + item + Name = 'FAX' + Value = '' + end + item + Name = 'PERSONA_CONTACTO' + Value = '' + end + item + Name = 'OBSERVACIONES' + Value = '' + end + item + Name = 'USUARIO' + Value = '' + end> + Statements = < + item + ConnectionType = 'Interbase' + Default = True + TargetTable = 'ALMACENES' + SQL = + 'INSERT'#10' INTO ALMACENES'#10' (ID, ID_EMPRESA, TIPO_ALMACEN, NOMBR' + + 'E, CALLE, PROVINCIA, '#10' POBLACION, CODIGO_POSTAL, TELEFONO, M' + + 'OVIL, FAX, PERSONA_CONTACTO, '#10' OBSERVACIONES, FECHA_ALTA, US' + + 'UARIO)'#10' VALUES'#10' (:ID, :ID_EMPRESA, '#39'ALMACEN'#39', :NOMBRE, :CALL' + + 'E, :PROVINCIA,'#10' :POBLACION, :CODIGO_POSTAL, :TELEFONO, :MOVI' + + 'L, :FAX, '#10' :PERSONA_CONTACTO, :OBSERVACIONES, CURRENT_DATE, ' + + ':USUARIO)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_ALMACENES' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + Value = '0' + end> + Statements = < + item + ConnectionType = 'Interbase' + Default = True + TargetTable = 'ALMACENES' + SQL = 'DELETE '#10' FROM'#10' ALMACENES'#10' WHERE'#10' (ID = :OLD_ID)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_ALMACENES' + end + item + Params = < + item + Name = 'ID_EMPRESA' + Value = '' + end + item + Name = 'NOMBRE' + Value = '' + end + item + Name = 'CALLE' + Value = '' + end + item + Name = 'PROVINCIA' + Value = '' + end + item + Name = 'POBLACION' + Value = '' + end + item + Name = 'CODIGO_POSTAL' + Value = '' + end + item + Name = 'TELEFONO' + Value = '' + end + item + Name = 'MOVIL' + Value = '' + end + item + Name = 'FAX' + Value = '' + end + item + Name = 'PERSONA_CONTACTO' + Value = '' + end + item + Name = 'OBSERVACIONES' + Value = '' + end + item + Name = 'USUARIO' + Value = '' + end + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + ConnectionType = 'Interbase' + Default = True + TargetTable = 'ALMACENES' + SQL = + 'UPDATE ALMACENES'#10' SET '#10' ID_EMPRESA = :ID_EMPRESA,'#10' NOMBRE' + + ' = :NOMBRE,'#10' CALLE = :CALLE, '#10' PROVINCIA = :PROVINCIA, '#10' ' + + ' POBLACION = :POBLACION, '#10' CODIGO_POSTAL = :CODIGO_POSTAL, '#10 + + ' TELEFONO = :TELEFONO, '#10' MOVIL = :MOVIL, '#10' FAX = :FAX, ' + + #10' PERSONA_CONTACTO = :PERSONA_CONTACTO, '#10' OBSERVACIONES = ' + + ':OBSERVACIONES, '#10' FECHA_MODIFICACION = CURRENT_DATE,'#10' USUA' + + 'RIO = :USUARIO'#10' WHERE'#10' (ID = :OLD_ID)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_ALMACENES' + end> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 80 + end + object bpAlmacenes: TDABusinessProcessor + Schema = schAlmacenes + InsertCommandName = 'Insert_ALMACENES' + DeleteCommandName = 'Delete_ALMACENES' + UpdateCommandName = 'Update_ALMACENES' + ReferencedDataset = 'Almacenes' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 240 + Top = 24 + end +end diff --git a/Source/Modulos/Almacenes/Servidor/srvAlmacenes_Impl.pas b/Source/Modulos/Almacenes/Servidor/srvAlmacenes_Impl.pas new file mode 100644 index 0000000..b40f8e0 --- /dev/null +++ b/Source/Modulos/Almacenes/Servidor/srvAlmacenes_Impl.pas @@ -0,0 +1,117 @@ +unit srvAlmacenes_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} uDABusinessProcessor, uDABin2DataStreamer, uDADataStreamer, + uDAScriptingProvider, uDAClasses, + FactuGES_Intf, uDAInterfaces; + +type + { TsrvAlmacenes } + TsrvAlmacenes = class(TDataAbstractService, IsrvAlmacenes) + Diagrams: TDADiagrams; + Bin2DataStreamer: TDABin2DataStreamer; + bpAlmacenes: TDABusinessProcessor; + schAlmacenes: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceAfterGetDatasetData(const Dataset: IDADataset; + const IncludeSchema: Boolean; const MaxRecords: Integer); + procedure DARemoteServiceCreate(Sender: TObject); + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; + var aConnectionName: string); + public + function DarListaAlmacenes(const IDEmpresa: Integer): Binary; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer, uROClasses, + uDatabaseUtils, schAlmacenesClient_Intf, uRestriccionesUsuarioUtils; + +procedure Create_srvAlmacenes(out anInstance : IUnknown); +begin + anInstance := TsrvAlmacenes.Create(NIL); +end; + +{ srvAlmacenes } +procedure TsrvAlmacenes.DARemoteServiceAfterGetDatasetData( + const Dataset: IDADataset; const IncludeSchema: Boolean; + const MaxRecords: Integer); +begin + if DataSet.Name = nme_Almacenes then + begin + { Aqu se asegura que el usuario slo accede a los almacenes + de las empresas a las que tiene permiso para acceder + filtrando DataSet por ID_EMPRESA. } + FiltrarAccesoUsuario(Session, Connection, schAlmacenes, DataSet, fld_AlmacenesID_EMPRESA); + end; +end; + +procedure TsrvAlmacenes.DARemoteServiceCreate(Sender: TObject); +begin + //SessionManager := dmServer.SessionManager; +end; + +function TsrvAlmacenes.DarListaAlmacenes(const IDEmpresa: Integer): Binary; +var + ASchema : TDASchema; + AConn : IDAConnection; + dsData: IDADataset; + ALista : TStringList; +begin + Result := Binary.Create; + + ASchema := schAlmacenes; + AConn := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionManager.GetDefaultConnectionName); + + try +//Los almacenes sern comunes para todas las empresas. + dsData := ASchema.NewDataset(AConn, 'ListaAlmacenes'); //, ['ID_EMPRESA'], [IntToStr(IDEmpresa)]); + except + RaiseError('No existe la tabla ALMACENES'); + end; + + ALista := TStringList.Create; + try + dsData.Active := True; +// ALista.Sorted := True; + while not dsData.EOF do + begin + ALista.Add(Format('%s=%d', [dsData.Fields[1].AsString, dsData.Fields[0].AsInteger])); + dsData.Next; + end; + + ALista.SaveToStream(Result); + finally + FreeANDNIL(ALista); + dsData := NIL; + AConn := NIL; + end; +end; + +procedure TsrvAlmacenes.DataAbstractServiceBeforeAcquireConnection( + aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +initialization + TROClassFactory.Create('srvAlmacenes', Create_srvAlmacenes, TsrvAlmacenes_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Almacenes/Views/Almacenes_view.bdsproj b/Source/Modulos/Almacenes/Views/Almacenes_view.bdsproj new file mode 100644 index 0000000..e1f8337 --- /dev/null +++ b/Source/Modulos/Almacenes/Views/Almacenes_view.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + Almacenes_view.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Almacenes/Views/Almacenes_view.dcu b/Source/Modulos/Almacenes/Views/Almacenes_view.dcu new file mode 100644 index 0000000..176b464 Binary files /dev/null and b/Source/Modulos/Almacenes/Views/Almacenes_view.dcu differ diff --git a/Source/Modulos/Almacenes/Views/Almacenes_view.dpk b/Source/Modulos/Almacenes/Views/Almacenes_view.dpk new file mode 100644 index 0000000..9133598 Binary files /dev/null and b/Source/Modulos/Almacenes/Views/Almacenes_view.dpk differ diff --git a/Source/Modulos/Almacenes/Views/Almacenes_view.dproj b/Source/Modulos/Almacenes/Views/Almacenes_view.dproj new file mode 100644 index 0000000..e89d8b0 --- /dev/null +++ b/Source/Modulos/Almacenes/Views/Almacenes_view.dproj @@ -0,0 +1,557 @@ + + + {09ecb9ec-6de2-404d-984b-cc7d73caea9a} + Almacenes_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Almacenes_view.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Almacenes_view.dpk + + + + + MainSource + + + + + + +
fEditorAlmacen
+ TfEditorAlmacen +
+ +
fEditorAlmacenes
+ TfEditorAlmacenes +
+ +
fEditorListaAlmacenes
+ TfListaAlmacenes +
+ +
frViewAlmacen
+ TFrame +
+ +
frViewAlmacenes
+ TFrame +
+
+
+ diff --git a/Source/Modulos/Almacenes/Views/Almacenes_view.rc b/Source/Modulos/Almacenes/Views/Almacenes_view.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Almacenes/Views/Almacenes_view.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Almacenes/Views/Almacenes_view.res b/Source/Modulos/Almacenes/Views/Almacenes_view.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Almacenes/Views/Almacenes_view.res differ diff --git a/Source/Modulos/Almacenes/Views/uAlmacenesViewRegister.dcu b/Source/Modulos/Almacenes/Views/uAlmacenesViewRegister.dcu new file mode 100644 index 0000000..1218221 Binary files /dev/null and b/Source/Modulos/Almacenes/Views/uAlmacenesViewRegister.dcu differ diff --git a/Source/Modulos/Almacenes/Views/uAlmacenesViewRegister.pas b/Source/Modulos/Almacenes/Views/uAlmacenesViewRegister.pas new file mode 100644 index 0000000..267bc9a --- /dev/null +++ b/Source/Modulos/Almacenes/Views/uAlmacenesViewRegister.pas @@ -0,0 +1,27 @@ +unit uAlmacenesViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorAlmacenes, uEditorAlmacen, uEditorListaAlmacenes; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorAlmacen, 'EditorAlmacen'); + EditorRegistry.RegisterClass(TfEditorAlmacenes, 'EditorAlmacenes'); + EditorRegistry.RegisterClass(TfEditorListaAlmacenes, 'EditorListaAlmacenes'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorAlmacen); + EditorRegistry.UnRegisterClass(TfEditorAlmacenes); + EditorRegistry.UnRegisterClass(TfEditorListaAlmacenes); +end; + +end. diff --git a/Source/Modulos/Almacenes/Views/uEditorAlmacen.dcu b/Source/Modulos/Almacenes/Views/uEditorAlmacen.dcu new file mode 100644 index 0000000..a072d7a Binary files /dev/null and b/Source/Modulos/Almacenes/Views/uEditorAlmacen.dcu differ diff --git a/Source/Modulos/Almacenes/Views/uEditorAlmacen.dfm b/Source/Modulos/Almacenes/Views/uEditorAlmacen.dfm new file mode 100644 index 0000000..fad9a9d --- /dev/null +++ b/Source/Modulos/Almacenes/Views/uEditorAlmacen.dfm @@ -0,0 +1,143 @@ +inherited fEditorAlmacen: TfEditorAlmacen + Left = 374 + Top = 273 + HorzScrollBar.Visible = False + VertScrollBar.Visible = False + Caption = 'Ficha de almac'#233'n' + ClientWidth = 632 + Scaled = False + OnClose = CustomEditorClose + ExplicitWidth = 640 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 632 + Caption = 'Almac'#233'n' + ExplicitWidth = 632 + inherited Image1: TImage + Left = 605 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB51930000020F4944415478DAE5D4DB2B04 + 511800F06FB659D7CD2D892816B984258992242129E5924BDEE49147FF81571E + 9495072F44BB1EF69127CAA5DC436E895C4A92AC6CC48E9961EC3963C7EEEC65 + CEAC6D5F7CF575E69C33F3FD3AA773861204014219D4FF02298AF2FAD2709B5E + B8BEBF0E18195B17A4C28A20C2FA8D16E059065EACF7F0FE6203FBAB986B9619 + D0EB93A169D0E8757E7A6C089ED2BBC1643291814E4C2CF0EC13F3368FB0AE8E + 5618DF0E27038381A1200283851181C1C414C191F6CC3F611DED2DA0D150E4E0 + 402515F0A56CACAF83C8A808A069DA0DF50B8EF65242437D1F11C0B13C701C87 + DBA58555282E2B045A4B83D691AE685040578C6339585DDC8082923C0CC9D13F + 83728CE378D858D981DC826C8CC9D189DD88C0C10F86151119BAB77D08593919 + 222843270F74EAC1AFCF2FBC126F181A3FDA3F85F4CC34097245A74EE2D4814A + 18EA9F1D5F404A6A1284858779A0B3E789E42009869E2FCF6F203129016FA11C + 9DBB4A26034931D691B73777101B1F8341396AB94D53064930C6FE21818F0F56 + 88D6454907C589CE5BB3C16C36BBFF3EE5605D6DAF072616E781E7C53196FD5D + 1DEADB9E6D18D06A7F4FE73263C018AAEB17ACAAEC715FCD4F515F186ADFDFDE + 1C975C23615B9A720953042BCA3A556168FB19C68EBF47E8A1AEDA0D53044B0D + ADAA30144EF038A6C60353048BF29B55614ED017A6086E32DD1048F8C2FC82A1 + 889083DF93D867F65E51168D0000000049454E44AE426082} + ExplicitLeft = 607 + end + end + inherited TBXDock: TTBXDock + Width = 632 + ExplicitWidth = 632 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 330 + inherited TBXItem2: TTBXItem + Visible = False + end + inherited TBXItem5: TTBXItem + Visible = False + end + inherited TBXItem23: TTBXItem + Visible = False + end + inherited TBXItem3: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + DockPos = 0 + ExplicitWidth = 632 + inherited TBXSubmenuItem4: TTBXSubmenuItem + inherited TBXItem8: TTBXItem + Visible = False + end + inherited TBXSeparatorItem5: TTBXSeparatorItem + Visible = False + end + inherited TBXItem10: TTBXItem + Visible = False + end + inherited TBXItem21: TTBXItem + Visible = False + end + inherited TBXItem22: TTBXItem + Visible = False + end + inherited TBXItem9: TTBXItem + Visible = False + end + end + inherited TBXSubmenuItem1: TTBXSubmenuItem + inherited TBXItem32: TTBXItem + Visible = False + end + inherited TBXItem31: TTBXItem + Visible = False + end + inherited TBXSeparatorItem13: TTBXSeparatorItem + Visible = False + end + end + end + end + inherited pgPaginas: TPageControl + Width = 626 + ExplicitWidth = 626 + inherited pagGeneral: TTabSheet + ExplicitLeft = 4 + ExplicitTop = 24 + ExplicitWidth = 618 + ExplicitHeight = 332 + end + end + inherited StatusBar: TJvStatusBar + Width = 632 + Panels = < + item + Width = 200 + end> + ExplicitWidth = 632 + end + inherited EditorActionList: TActionList + Top = 128 + end + inherited SmallImages: TPngImageList + Top = 112 + end + inherited dsDataTable: TDADataSource [6] + Left = 168 + Top = 120 + end + inherited LargeImages: TPngImageList [7] + Top = 112 + end + inherited JvFormStorage: TJvFormStorage [8] + end + object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList + Left = 320 + Top = 248 + object dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel + GroupOptions.CaptionOptions.Font.Charset = DEFAULT_CHARSET + GroupOptions.CaptionOptions.Font.Color = clWindowText + GroupOptions.CaptionOptions.Font.Height = -11 + GroupOptions.CaptionOptions.Font.Name = 'Tahoma' + GroupOptions.CaptionOptions.Font.Style = [fsBold] + GroupOptions.CaptionOptions.TextColor = clHighlight + GroupOptions.CaptionOptions.UseDefaultFont = False + end + end +end diff --git a/Source/Modulos/Almacenes/Views/uEditorAlmacen.pas b/Source/Modulos/Almacenes/Views/uEditorAlmacen.pas new file mode 100644 index 0000000..338325f --- /dev/null +++ b/Source/Modulos/Almacenes/Views/uEditorAlmacen.pas @@ -0,0 +1,204 @@ +unit uEditorAlmacen; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorDBItem, ToolWin, ComCtrls, JvExControls, JvComponent, + uViewAlmacen, uBizAlmacenes, JvNavigationPane, ActnList, + uEditorBase, StdActns, TB2Dock, TB2Toolbar, TBX, ImgList, PngImageList, + TB2Item, uEditorItem, DB, uDADataTable, uEditorDBBase, JvFormAutoSize, + uDAScriptingProvider, uDACDSDataTable, StdCtrls, pngimage, ExtCtrls, + TBXDkPanels, JvButton, AppEvnts, uCustomView, uViewBase, + JvAppStorage, JvAppRegistryStorage, JvFormPlacement, JvComponentBase, + + uViewAlmacenes, uIEditorAlmacen, uAlmacenesController, JvExComCtrls, + JvStatusBar, dxLayoutLookAndFeels, uDAInterfaces; + +type + TfEditorAlmacen = class(TfEditorDBItem, IEditorAlmacen) + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + procedure FormShow(Sender: TObject); + procedure dsDataTableDataChange(Sender: TObject; Field: TField); + procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); + protected + FController : IAlmacenesController; + FAlmacen: IBizAlmacen; + FViewAlmacen : IViewAlmacen; + + function GetController : IAlmacenesController; + procedure SetController (const Value : IAlmacenesController); virtual; + function GetAlmacen: IBizAlmacen; virtual; + procedure SetAlmacen(const Value: IBizAlmacen); virtual; + function GetViewAlmacen: IViewAlmacen; + procedure SetViewAlmacen(const Value: IViewAlmacen); + property ViewAlmacen: IViewAlmacen read GetViewAlmacen write SetViewAlmacen; + + procedure GuardarInterno; override; + procedure EliminarInterno; override; + + procedure PonerTitulos(const ATitulo: string = ''); override; + + //Si queremos crear otra vista para el editor heredado solo tendriamos que + //sobreescribir este metodo + procedure AsignarVista; virtual; + + public + property Almacen: IBizAlmacen read GetAlmacen write SetAlmacen; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + uCustomEditor, uDataModuleAlmacenes, uDataModuleBase; + +function ShowEditorAlmacen (ABizObject : TDADataTableRules): TModalResult; +var + AEditor: TfEditorAlmacen; +begin + AEditor := TfEditorAlmacen.Create(Application); + try + AEditor.Almacen := (ABizObject as IBizAlmacen); + Result := AEditor.ShowModal; + finally + AEditor.Release; + end; +end; + +{ +******************************* TfEditorAlmacen ******************************* +} +function TfEditorAlmacen.GetAlmacen: IBizAlmacen; +begin + Result := FAlmacen; +end; + +function TfEditorAlmacen.GetController: IAlmacenesController; +begin + Result := FController; +end; + +function TfEditorAlmacen.GetViewAlmacen: IViewAlmacen; +begin + Result := FViewAlmacen; +end; + +procedure TfEditorAlmacen.GuardarInterno; +begin + inherited; + FController.Guardar(FAlmacen); + Modified := False; +end; + +procedure TfEditorAlmacen.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + if Assigned(Almacen) then + begin + if Almacen.EsNuevo then + FTitulo := 'Nuevo almacn' + else + FTitulo := 'Almacn' + ' - ' + Almacen.NOMBRE; + end; + + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorAlmacen.SetAlmacen(const Value: IBizAlmacen); +begin + FAlmacen := Value; + dsDataTable.DataTable := FAlmacen.DataTable; + + if Assigned(FViewAlmacen) and Assigned(Almacen) then + FViewAlmacen.Almacen := Almacen; +end; + +procedure TfEditorAlmacen.SetController(const Value: IAlmacenesController); +begin + FController := Value; +end; + +procedure TfEditorAlmacen.SetViewAlmacen(const Value: IViewAlmacen); +begin + FViewAlmacen := Value; + + if Assigned(FViewAlmacen) and Assigned(Almacen) then + FViewAlmacen.Almacen := Almacen; +end; + +procedure TfEditorAlmacen.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(FViewAlmacen) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Almacen) then + raise Exception.Create('No hay ningn almacn asignado'); + + Almacen.DataTable.Active := True; +end; + +destructor TfEditorAlmacen.Destroy; +begin + // Utilizar mejor OnClose; + inherited; +end; + +procedure TfEditorAlmacen.AsignarVista; +var + AViewAlmacen: TfrViewAlmacen; +begin + AViewAlmacen := TfrViewAlmacen.create(Self); + with AViewAlmacen do + begin + Parent := pagGeneral; + Align := alClient; + dxLayoutControlAlmacen.LookAndFeel := dxLayoutOfficeLookAndFeel1; + end; + ViewAlmacen := AViewAlmacen; +end; + +constructor TfEditorAlmacen.Create(AOwner: TComponent); +begin + inherited; + pgPaginas.ActivePageIndex := 0; + AsignarVista; +end; + +procedure TfEditorAlmacen.CustomEditorClose(Sender: TObject; + var Action: TCloseAction); +begin + inherited; + dsDataTable.DataTable := NIL; + FViewAlmacen := NIL; + FAlmacen := NIL; +end; + +procedure TfEditorAlmacen.dsDataTableDataChange(Sender: TObject; + Field: TField); +begin + inherited; + if Assigned(FAlmacen) and (not (FAlmacen.DataTable.Fetching) or + not (FAlmacen.DataTable.Opening) or not (FAlmacen.DataTable.Closing)) then + PonerTitulos; +end; + +procedure TfEditorAlmacen.EliminarInterno; +begin + if (Application.MessageBox('Desea borrar este almacen?', 'Atencin', MB_YESNO) = IDYES) then + begin + inherited; + if not FController.Eliminar(FAlmacen) then + actRefrescar.Execute; + end; +end; + +end. + diff --git a/Source/Modulos/Almacenes/Views/uEditorAlmacenes.dcu b/Source/Modulos/Almacenes/Views/uEditorAlmacenes.dcu new file mode 100644 index 0000000..1e7afb3 Binary files /dev/null and b/Source/Modulos/Almacenes/Views/uEditorAlmacenes.dcu differ diff --git a/Source/Modulos/Almacenes/Views/uEditorAlmacenes.dfm b/Source/Modulos/Almacenes/Views/uEditorAlmacenes.dfm new file mode 100644 index 0000000..497a5a5 --- /dev/null +++ b/Source/Modulos/Almacenes/Views/uEditorAlmacenes.dfm @@ -0,0 +1,1503 @@ +inherited fEditorAlmacenes: TfEditorAlmacenes + Left = 489 + Top = 325 + Caption = 'Lista de almacenes' + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Caption = 'Lista de almacenes' + inherited Image1: TImage + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000001D44944415478DAB5D4BD4B02 + 7118C0F1E737D552D0105843616F838519166551345443A32D2E0DD15863FF41 + 6B2141353544144A2004114144431695841445D00BE950E7905618742F2257CF + D9D9EFCE3BEF4EF001797E9CFAFD1C8A125114A19C43648010A2F98205AF5D7C + 611296C3FE33961802189F5909C13B1383EFF427B05FB94738B40976BB0DC6E7 + 56FEAE7D289EF7EF3E422010280E941ADF589E8754A3AF3820C7F10DA9D798A5 + 785D8D0D6EAB87F5013A8E81D46BDC521C471750C731F0CEC44DC55B1B9A41E0 + 0510848C36B038D15410C7F3C1FAB261BCABC3998BF31969472B070A81D97E52 + D20F62D0E381CCEF5DF3129043CE494F21B03445C4B1D169C360369B95223C27 + C0D17E181CCE36E963A19163C1551A40C731747274019DDDED529C460EBF1CD6 + 01751CCF91D328F40DBA81653905B2976CB10668C5715F5DDEC2D088473AD3C8 + 0ED3681ED08BE3BEBBB997001C1AD98ED79B038AC5F14E9FEE9FF3008D6C3DD4 + 1A03EA38FBCDE501FE6F332F090520236BD755C5013A22A8367D3DF9962C0056 + 2315100C06FFFF21D480D938EE743AAD00E4389E3581E1A149D371FC0E388ECD + 03745C17F0F4FA4CC77164401DD705DC2EAFE9B80CE03FA73AAE0B9C733EB03A + 5A714DA05C5376E00756B52DFEBD3C9AE50000000049454E44AE426082} + end + end + inherited TBXDock: TTBXDock + inherited tbxMain: TTBXToolbar + ExplicitWidth = 474 + end + inherited tbxFiltro: TTBXToolbar + ExplicitWidth = 269 + inherited tbxEditFiltro: TTBXEditItem + EditOptions = [tboUseEditWhenVertical] + end + inherited TBXItem37: TTBXItem + Visible = False + end + end + inherited TBXTMain2: TTBXToolbar + Left = 275 + DockPos = 275 + ExplicitLeft = 275 + end + end + inline frViewAlmacenes1: TfrViewAlmacenes [3] + Left = 0 + Top = 102 + Width = 543 + Height = 323 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 102 + ExplicitWidth = 543 + ExplicitHeight = 323 + inherited cxGrid: TcxGrid + Width = 543 + Height = 195 + ExplicitWidth = 543 + ExplicitHeight = 195 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = '0 almacenes' + Kind = skCount + Column = frViewAlmacenes1.cxGridViewNOMBRE + end> + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 543 + ExplicitWidth = 543 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 543 + inherited dxLayoutControl1: TdxLayoutControl + Width = 543 + ExplicitWidth = 543 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 446 + Width = 446 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 233 + Width = 233 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 337 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 337 + ExplicitWidth = 196 + Width = 196 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 543 + ExplicitWidth = 543 + inherited tbxBotones: TTBXToolbar + Width = 533 + ExplicitWidth = 533 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 297 + ExplicitTop = 297 + ExplicitWidth = 543 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 543 + ExplicitWidth = 543 + inherited TBXToolbar1: TTBXToolbar + Width = 533 + ExplicitWidth = 533 + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39213.829884791670000000 + BuiltInReportLink = True + end + end + end + inherited EditorActionList: TActionList [4] + inherited actNuevo: TAction + ImageIndex = 22 + end + end + inherited SmallImages: TPngImageList [5] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000002704944415478DA + 8593DB4B545114C6BF333AFB8CCD3853A11686162811410F1118241524984951 + 0F864F520F3DE8D3FC0DD183145949E12814D1850A9CA2871294A8208BC1862E + 2814836578BF4D9A8D9EBD679A4E6B9D33C7697AB0058BBD38ECEFB7D7FA1647 + 936F607AF6410305D7FA17E07C773946A646D1DE0E0483583334F30E4C554145 + 6508E6700B18903C9CAD7BA64E63B0FF39829D8FF0333E83C5D971CA49DCB874 + 16F1AD0DD0D46CC814BD2D6008078BB8764097CFB45AE2C5D9090B30333A8CBB + 1D17D070A20E5DEF7DD481692239D769B2D8F4B7D86D2D85ACD311FF989BC4D2 + FC34BE4F8FE1E69573387AE4100A7D5E5C1BD0A13973AB93B65014374329B2E4 + 5D76CEA1A9562416E2B8DF7511C7EA6BE05D57004DD36C007BC09718A0EB5669 + 01F4EE2CA0F92A01A9D3EABD7B50B2A908C29D0F97CB9501AC3142AC27826432 + 052525FA9EF4A3627B19021B0210C24D10373AA21EDB44769CB7C0663AE16C26 + 7AAF0FD248E2D58BB728DF560AFF7A1FDC04D0751DD73FFAB21EFCBD3AAE9DCD + BC7E590F432A44238328DD528242BF176E9D3AD0056E7FDA687BD0D60BD4D59E + 4265E52D0B104D3442190AD5C58FF13456439E280C7E88A1A828001F01841010 + 1E81075F37DB1EB435692603D2E9DF48A914E48AB2440641944C522AC43E7F43 + 61C00B9FB7003A89798487136559406D4D1389E832CD2B0D099911328481E363 + D3F014084A0F3CD4FEB3E59D0887C3DA2AE06075235D94D68B2B7C2A06290BC4 + 677C7E0179F92E7A596020AFCA12DBFF420650B5FB784ECB9CD2B0C5067D5B4E + 2CF3750CF9F7AF8A7300BB76D459C6392F33C8C87490FE95A65392F8408E3807 + 10910DF85FFC2BE6F80376357B8923C9356C0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002694944415478DA + B594CB6B134118C0BFB9743D6841A48A1E5A1FF1502A5AA555A3584544BDE829 + 1E04C58B87E4A247FF84EAA168AD90A017C17A908882082A8A50A15AAD448B0F + D0F8A8252D4A1A2D096477670DE37C3B997D249B6636E007C37C330BBFDF3CBE + 59C21803F305615A9411E061E75F7972C233AE7E6B25080A60943073031F4492 + C0BE240005F4909B4B59CB029A4FB1B64709400906423197A28BA7072137F72B + 347C64D22062073C50823D6B4F08733169F7083F9BBA0385D96F502E2EF0F607 + F4D2028CDDBE09EBD7AD8223E792F6BC5EFAEDFB3E742F0BE9749A10E3393067 + D5C704B8AD230EA6C94F25E3AE6646BFAA0CBF3E320885AE9810B01B42605F28 + 17689A18A2404BBB82A9A51794E1AB97AF84F7ED0355419323CAFF5801F3B9EF + A1E0183E01C2B162B08AF0B29D1D552B2BF3704609BEB1732D509302A57FFD02 + 59FBDED2C45C56D6A5F39D4DE1DB36F5D870D3B4EC3EB36497E788F83BC05A8F + 6F276C78585C78FCB2D845EA8C9B378A81683F58D472E0D84F903EFF1D600C9D + 24ECF0C1534DEBBB52A9701007EA149E3C18879ECD117E2C964F3246B7B426F0 + C211F4ECE924F4F675DB70AFE471A93BBCA0168EA097E36F21BA672BE8BAE193 + DC9F8F841304C1B17FF3FA23EC3BB0838FA94F7277AE4B5DD0088E731FDE656D + 81789CAEE4D6F41A35C162705C69F6D3B423F04A463F773417D4C2CB6543801D + 9105B3B99F3E81945C9B5AB6B8C0811862B5A65CB5078E2D9F2FD409AEBCD26C + 38E681025538CE178B259FC00B0F14ECDF7B5C198E7760188623A885070A76EF + 8C29C331A420081E28E8EF3DAA0C9702F9E70C7A3F758209230661A311BC4EF0 + 3FE21F497E40FE838101750000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [7] + end + inherited dsDataTable: TDADataSource [9] + end + inherited StatusBarImages: TPngImageList [10] + Top = 232 + end +end diff --git a/Source/Modulos/Almacenes/Views/uEditorAlmacenes.pas b/Source/Modulos/Almacenes/Views/uEditorAlmacenes.pas new file mode 100644 index 0000000..431795a --- /dev/null +++ b/Source/Modulos/Almacenes/Views/uEditorAlmacenes.pas @@ -0,0 +1,152 @@ +unit uEditorAlmacenes; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorBase, ToolWin, ComCtrls, JvExControls, JvComponent, + JvNavigationPane, uViewAlmacenes, uBizAlmacenes, ActnList, DBActns, uViewGrid, + Menus, uDataModuleBase, ImgList, PngImageList, TB2Dock, TB2Toolbar, TBX, + TB2Item, StdActns, TB2ExtItems, TBXExtItems, TB2MRU, DB, uDADataTable, + JvFormAutoSize, uDAScriptingProvider, uDACDSDataTable, JvAppStorage, + JvAppRegistryStorage, JvFormPlacement, ExtCtrls, uCustomView, uViewBase, + uViewBarraSeleccion, pngimage, uIEditorAlmacenes, uEditorGridBase, + JvComponentBase, uViewGridBase, uAlmacenesController, JvExComCtrls, + JvStatusBar, uDAInterfaces; + +type + TfEditorAlmacenes = class(TfEditorGridBase, IEditorAlmacenes) + frViewAlmacenes1: TfrViewAlmacenes; + procedure FormShow(Sender: TObject); + private + FAlmacenes: IBizAlmacen; + FController : IAlmacenesController; + protected + function GetAlmacenes: IBizAlmacen; + procedure SetAlmacenes(const Value: IBizAlmacen); + function GetController : IAlmacenesController; virtual; + procedure SetController (const Value : IAlmacenesController); virtual; + + procedure NuevoInterno; override; + procedure EliminarInterno; override; + procedure ModificarInterno; override; + procedure DuplicarInterno; override; + + public + procedure PonerTitulos(const ATitulo: string = ''); override; + property Almacenes: IBizAlmacen read GetAlmacenes write SetAlmacenes; + property Controller : IAlmacenesController read GetController write SetController; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +uses + uCustomEditor, uDataModuleAlmacenes, uDataModuleUsuarios, + uEditorAlmacen, uEditorDBBase, uFactuGES_App, + cxGrid, cxGridCustomTableView; //, uListaAlmacenes; + +{$R *.dfm} + +{ +****************************** TfEditorAlmacenes ******************************* +} +procedure TfEditorAlmacenes.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Almacenes) then + raise Exception.Create('No hay ningún Almacen asignado'); + + Almacenes.DataTable.Active := True; + ViewGrid.GotoFirst; +end; + +function TfEditorAlmacenes.GetAlmacenes: IBizAlmacen; +begin + Result := FAlmacenes; +end; + +function TfEditorAlmacenes.GetController: IAlmacenesController; +begin + Result := FController; +end; + +procedure TfEditorAlmacenes.ModificarInterno; +begin + inherited; + FController.Ver(Almacenes); +end; + +procedure TfEditorAlmacenes.NuevoInterno; +begin + inherited; + FController.Anadir(Almacenes); + FController.Ver(Almacenes); +end; + +procedure TfEditorAlmacenes.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := 'Lista de almacenes - ' + AppFactuGES.EmpresaActiva.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorAlmacenes.SetAlmacenes(const Value: IBizAlmacen); +begin + FAlmacenes := Value; + dsDataTable.DataTable := FAlmacenes.DataTable; + if Assigned(ViewGrid) then + (ViewGrid as IViewAlmacenes).Almacenes := Almacenes; +end; + +procedure TfEditorAlmacenes.SetController(const Value: IAlmacenesController); +begin + FController := Value; +end; + +destructor TfEditorAlmacenes.Destroy; +begin + FAlmacenes := NIL; + inherited; +end; + +procedure TfEditorAlmacenes.DuplicarInterno; +var + AAlmacen : IBizAlmacen; +begin + inherited; + AAlmacen := FController.Duplicar(Almacenes); + try + FController.Ver(AAlmacen); + finally + actRefrescar.Execute; + end; +end; + +procedure TfEditorAlmacenes.EliminarInterno; +begin + + if (Application.MessageBox('¿Desea borrar este almacén?', 'Atención', MB_YESNO) = IDYES) then + begin + inherited; + //Para que en el caso de no poderse realizar la operación se refresquen + //los datos y no nos permita eliminar un registro a la segunda + if not FController.Eliminar(Almacenes) then + actRefrescar.Execute; + end; +end; + +constructor TfEditorAlmacenes.Create(AOwner: TComponent); +begin + inherited; + ViewGrid := frViewAlmacenes1; //CreateView(TfrViewAlmacenes) as IViewAlmacenes; +end; + +end. + diff --git a/Source/Modulos/Almacenes/Views/uEditorListaAlmacenes.dcu b/Source/Modulos/Almacenes/Views/uEditorListaAlmacenes.dcu new file mode 100644 index 0000000..00d590b Binary files /dev/null and b/Source/Modulos/Almacenes/Views/uEditorListaAlmacenes.dcu differ diff --git a/Source/Modulos/Almacenes/Views/uEditorListaAlmacenes.dfm b/Source/Modulos/Almacenes/Views/uEditorListaAlmacenes.dfm new file mode 100644 index 0000000..c596580 --- /dev/null +++ b/Source/Modulos/Almacenes/Views/uEditorListaAlmacenes.dfm @@ -0,0 +1,103 @@ +object fEditorListaAlmacenes: TfEditorListaAlmacenes + Left = 356 + Top = 461 + ActiveControl = cxAlmacenes + Caption = 'fEditorListaAlmacenes' + ClientHeight = 116 + ClientWidth = 355 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + PixelsPerInch = 96 + TextHeight = 13 + object Label1: TLabel + Left = 21 + Top = 42 + Width = 100 + Height = 13 + Caption = 'Nombre del almac'#233'n:' + end + object Label5: TLabel + Left = 9 + Top = 9 + Width = 84 + Height = 13 + Caption = 'Elegir almac'#233'n' + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentFont = False + end + object Bevel1: TBevel + Left = 108 + Top = 9 + Width = 237 + Height = 9 + Shape = bsBottomLine + end + object cxAlmacenes: TcxLookupComboBox + Left = 128 + Top = 38 + Properties.KeyFieldNames = 'ID' + Properties.ListColumns = < + item + SortOrder = soAscending + FieldName = 'NOMBRE' + end> + Properties.ListOptions.AnsiSort = True + Properties.ListOptions.GridLines = glNone + Properties.ListOptions.ShowHeader = False + Properties.ListSource = DADataSource + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 217 + end + object pnlSeleccion: TPanel + Left = 0 + Top = 79 + Width = 355 + Height = 37 + Align = alBottom + BevelOuter = bvNone + TabOrder = 1 + DesignSize = ( + 355 + 37) + object bSeleccionar: TButton + Left = 192 + Top = 7 + Width = 74 + Height = 23 + Anchors = [akRight] + Caption = '&Seleccionar' + Default = True + ModalResult = 1 + TabOrder = 0 + end + object bCancelar: TButton + Left = 273 + Top = 7 + Width = 74 + Height = 23 + Anchors = [akRight] + Cancel = True + Caption = '&Cancelar' + ModalResult = 2 + TabOrder = 1 + end + end + object DADataSource: TDADataSource + Left = 84 + Top = 68 + end +end diff --git a/Source/Modulos/Almacenes/Views/uEditorListaAlmacenes.pas b/Source/Modulos/Almacenes/Views/uEditorListaAlmacenes.pas new file mode 100644 index 0000000..2aefe65 --- /dev/null +++ b/Source/Modulos/Almacenes/Views/uEditorListaAlmacenes.pas @@ -0,0 +1,84 @@ +unit uEditorListaAlmacenes; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxGraphics, cxControls, cxContainer, cxEdit, cxTextEdit, + cxMaskEdit, cxDropDownEdit, cxLookupEdit, cxDBLookupEdit, + cxDBLookupComboBox, DB, uDADataTable, uCustomView, uViewBase, + uViewBarraSeleccion, uBizAlmacenes, ExtCtrls, StdCtrls, + Grids, DBGrids, uIEditorListaAlmacenes; + +type + TfEditorListaAlmacenes = class(TForm, IEditorListaAlmacenes) + DADataSource: TDADataSource; + Label1: TLabel; + Label5: TLabel; + Bevel1: TBevel; + cxAlmacenes: TcxLookupComboBox; + pnlSeleccion: TPanel; + bSeleccionar: TButton; + bCancelar: TButton; + private + FAlmacenes: IBizAlmacen; + function GetAlmacenes: IBizAlmacen; + procedure SetAlmacenes(const Value: IBizAlmacen); + procedure localizarAlmacen; + function GetAlmacenSeleccionado: IBizAlmacen; + public + property Almacenes: IBizAlmacen read GetAlmacenes write SetAlmacenes; + property AlmacenSeleccionado: IBizAlmacen read GetAlmacenSeleccionado; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation +{$R *.dfm} + +uses uDataModuleAlmacenes, schAlmacenesClient_Intf; + +{ TfListaAlmacenes } + +constructor TfEditorListaAlmacenes.Create(AOwner: TComponent); +begin + inherited; +end; + +destructor TfEditorListaAlmacenes.Destroy; +begin + FAlmacenes := Nil; + inherited; +end; + +function TfEditorListaAlmacenes.GetAlmacenes: IBizAlmacen; +begin + Result := FAlmacenes; +end; + +function TfEditorListaAlmacenes.GetAlmacenSeleccionado: IBizAlmacen; +begin + localizarAlmacen; + Result := FAlmacenes; +end; + +procedure TfEditorListaAlmacenes.localizarAlmacen; +begin + FAlmacenes.First; + FAlmacenes.Locate(fld_ALMACENESNOMBRE, cxAlmacenes.Text); +end; + +procedure TfEditorListaAlmacenes.SetAlmacenes(const Value: IBizAlmacen); +begin + FAlmacenes := Value; + if Assigned(FAlmacenes) then + begin + DADataSource.DataTable := FAlmacenes.DataTable; + FAlmacenes.DataTable.Active := True; + cxAlmacenes.ItemIndex := 0; + end + else + DADataSource.DataTable := Nil; +end; + +end. diff --git a/Source/Modulos/Almacenes/Views/uListaAlmacenes.dfm b/Source/Modulos/Almacenes/Views/uListaAlmacenes.dfm new file mode 100644 index 0000000..2459930 --- /dev/null +++ b/Source/Modulos/Almacenes/Views/uListaAlmacenes.dfm @@ -0,0 +1,103 @@ +object fListaAlmacenes: TfListaAlmacenes + Left = 356 + Top = 461 + ActiveControl = cxAlmacenes + Caption = 'fListaAlmacenes' + ClientHeight = 116 + ClientWidth = 355 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + PixelsPerInch = 96 + TextHeight = 13 + object Label1: TLabel + Left = 21 + Top = 42 + Width = 100 + Height = 13 + Caption = 'Nombre del almac'#233'n:' + end + object Label5: TLabel + Left = 9 + Top = 9 + Width = 84 + Height = 13 + Caption = 'Elegir almac'#233'n' + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentFont = False + end + object Bevel1: TBevel + Left = 108 + Top = 9 + Width = 237 + Height = 9 + Shape = bsBottomLine + end + object cxAlmacenes: TcxLookupComboBox + Left = 128 + Top = 38 + Properties.KeyFieldNames = 'CODIGO' + Properties.ListColumns = < + item + SortOrder = soAscending + FieldName = 'NOMBRE' + end> + Properties.ListOptions.AnsiSort = True + Properties.ListOptions.GridLines = glNone + Properties.ListOptions.ShowHeader = False + Properties.ListSource = DADataSource + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 217 + end + object pnlSeleccion: TPanel + Left = 0 + Top = 79 + Width = 355 + Height = 37 + Align = alBottom + BevelOuter = bvNone + TabOrder = 1 + DesignSize = ( + 355 + 37) + object bSeleccionar: TButton + Left = 192 + Top = 7 + Width = 74 + Height = 23 + Anchors = [akRight] + Caption = '&Seleccionar' + Default = True + ModalResult = 1 + TabOrder = 0 + OnClick = bSeleccionarClick + end + object bCancelar: TButton + Left = 273 + Top = 7 + Width = 74 + Height = 23 + Anchors = [akRight] + Cancel = True + Caption = '&Cancelar' + ModalResult = 2 + TabOrder = 1 + end + end + object DADataSource: TDADataSource + Left = 84 + Top = 68 + end +end diff --git a/Source/Modulos/Almacenes/Views/uListaAlmacenes.pas b/Source/Modulos/Almacenes/Views/uListaAlmacenes.pas new file mode 100644 index 0000000..4be2f6e --- /dev/null +++ b/Source/Modulos/Almacenes/Views/uListaAlmacenes.pas @@ -0,0 +1,76 @@ +unit uListaAlmacenes; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxGraphics, cxControls, cxContainer, cxEdit, cxTextEdit, + cxMaskEdit, cxDropDownEdit, cxLookupEdit, cxDBLookupEdit, + cxDBLookupComboBox, DB, uDADataTable, uCustomView, uViewBase, + uViewBarraSeleccion, uBizAlmacenes, ExtCtrls, StdCtrls, + Grids, DBGrids; + +type + TfListaAlmacenes = class(TForm) + DADataSource: TDADataSource; + Label1: TLabel; + Label5: TLabel; + Bevel1: TBevel; + cxAlmacenes: TcxLookupComboBox; + pnlSeleccion: TPanel; + bSeleccionar: TButton; + bCancelar: TButton; + procedure bSeleccionarClick(Sender: TObject); + private + FAlmacenes: IBizAlmacen; + function GetAlmacenes: IBizAlmacen; + procedure SetAlmacen(const Value: IBizAlmacen); + public + property Almacenes: IBizAlmacen read GetAlmacenes write SetAlmacen; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation +{$R *.dfm} + +uses uDataModuleAlmacenes, schAlmacenesClient_Intf; + +{ TfListaAlmacenes } + +constructor TfListaAlmacenes.Create(AOwner: TComponent); +begin + inherited; +end; + +destructor TfListaAlmacenes.Destroy; +begin + FAlmacenes := Nil; + inherited; +end; + +function TfListaAlmacenes.GetAlmacenes: IBizAlmacen; +begin + Result := FAlmacenes; +end; + +procedure TfListaAlmacenes.SetAlmacen(const Value: IBizAlmacen); +begin + FAlmacenes := Value; + if Assigned(FAlmacenes) then + begin + DADataSource.DataTable := FAlmacenes.DataTable; + FAlmacenes.DataTable.Active := True; + cxAlmacenes.ItemIndex := 0; + end + else + DADataSource.DataTable := Nil; +end; + +procedure TfListaAlmacenes.bSeleccionarClick(Sender: TObject); +begin + FAlmacenes.First; + FAlmacenes.Locate(fld_ALMACENESNOMBRE, cxAlmacenes.Text); +end; + +end. diff --git a/Source/Modulos/Almacenes/Views/uViewAlmacen.dcu b/Source/Modulos/Almacenes/Views/uViewAlmacen.dcu new file mode 100644 index 0000000..3110e49 Binary files /dev/null and b/Source/Modulos/Almacenes/Views/uViewAlmacen.dcu differ diff --git a/Source/Modulos/Almacenes/Views/uViewAlmacen.dfm b/Source/Modulos/Almacenes/Views/uViewAlmacen.dfm new file mode 100644 index 0000000..dad5ec2 --- /dev/null +++ b/Source/Modulos/Almacenes/Views/uViewAlmacen.dfm @@ -0,0 +1,274 @@ +inherited frViewAlmacen: TfrViewAlmacen + Width = 451 + Height = 304 + Align = alClient + AutoSize = True + ExplicitWidth = 451 + ExplicitHeight = 304 + object dxLayoutControlAlmacen: TdxLayoutControl + Left = 0 + Top = 0 + Width = 451 + Height = 304 + Align = alClient + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + DesignSize = ( + 451 + 304) + object eNombre: TcxDBTextEdit + Left = 130 + Top = 28 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'NOMBRE' + DataBinding.DataSource = DADataSource + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = 14745599 + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 101 + end + object ePersonaContacto: TcxDBTextEdit + Left = 130 + Top = 55 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'PERSONA_CONTACTO' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Width = 101 + end + object eTlfTelefono: TcxDBTextEdit + Left = 341 + Top = 28 + DataBinding.DataField = 'TELEFONO' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 2 + Width = 88 + end + object eTlfMovil: TcxDBTextEdit + Left = 341 + Top = 55 + DataBinding.DataField = 'MOVIL' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 3 + Width = 88 + end + object eFax: TcxDBTextEdit + Left = 341 + Top = 82 + DataBinding.DataField = 'FAX' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 4 + Width = 88 + end + object eCalle: TcxDBTextEdit + Left = 130 + Top = 139 + DataBinding.DataField = 'CALLE' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 5 + Width = 299 + end + object cbPoblacion: TcxDBComboBox + Left = 130 + Top = 193 + DataBinding.DataField = 'POBLACION' + DataBinding.DataSource = DADataSource + Properties.ImmediatePost = True + Properties.ImmediateUpdateText = True + Properties.PostPopupValueOnTab = True + Properties.OnInitPopup = cbPoblacionPropertiesInitPopup + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 8 + Width = 299 + end + object eCodigoPostal: TcxDBTextEdit + Left = 355 + Top = 166 + DataBinding.DataField = 'CODIGO_POSTAL' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 7 + Width = 74 + end + object cbProvincia: TcxDBComboBox + Left = 130 + Top = 166 + DataBinding.DataField = 'PROVINCIA' + DataBinding.DataSource = DADataSource + Properties.ImmediatePost = True + Properties.ImmediateUpdateText = True + Properties.PostPopupValueOnTab = True + Properties.OnInitPopup = cbProvinciaPropertiesInitPopup + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 6 + Width = 186 + end + object dxLayoutControlAlmacenGroup_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControlAlmacenGroup4: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControlAlmacenGroup1: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Datos generales del almac'#233'n' + object dxLayoutControlAlmacenItem3: TdxLayoutItem + Caption = 'Nombre:' + Control = eNombre + ControlOptions.ShowBorder = False + end + object dxLayoutControlAlmacenItem4: TdxLayoutItem + Caption = 'Persona de contacto:' + Control = ePersonaContacto + ControlOptions.ShowBorder = False + end + end + object dxLayoutControlAlmacenGroup2: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Tel'#233'fonos' + object dxLayoutControlAlmacenItem1: TdxLayoutItem + Caption = 'Tel'#233'fono:' + Control = eTlfTelefono + ControlOptions.ShowBorder = False + end + object dxLayoutControlAlmacenItem5: TdxLayoutItem + Caption = 'M'#243'vil:' + Control = eTlfMovil + ControlOptions.ShowBorder = False + end + object dxLayoutControlAlmacenItem6: TdxLayoutItem + Caption = 'N'#250'mero de fax:' + Control = eFax + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControlAlmacenGroup3: TdxLayoutGroup + Caption = 'Direcci'#243'n' + object dxLayoutControlAlmacenItem10: TdxLayoutItem + Caption = 'Calle:' + Control = eCalle + ControlOptions.ShowBorder = False + end + object dxLayoutControlAlmacenGroup6: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControlAlmacenItem9: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Provincia:' + Control = cbProvincia + ControlOptions.ShowBorder = False + end + object dxLayoutControlAlmacenItem7: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'C. P.:' + Control = eCodigoPostal + ControlOptions.ShowBorder = False + end + end + object dxLayoutControlAlmacenItem2: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Poblaci'#243'n:' + Control = cbPoblacion + ControlOptions.ShowBorder = False + end + end + end + end + object DADataSource: TDADataSource + Left = 336 + Top = 64 + end +end diff --git a/Source/Modulos/Almacenes/Views/uViewAlmacen.pas b/Source/Modulos/Almacenes/Views/uViewAlmacen.pas new file mode 100644 index 0000000..170ed0c --- /dev/null +++ b/Source/Modulos/Almacenes/Views/uViewAlmacen.pas @@ -0,0 +1,189 @@ +unit uViewAlmacen; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, ExtCtrls, StdCtrls, Buttons, DB, uDADataTable, + DBCtrls, Grids, DBGrids, uBizAlmacenes, Mask, ComCtrls, uCustomView, + JvComponent, JvFormAutoSize, cxControls, cxContainer, cxEdit, cxTextEdit, + cxDBEdit, dxLayoutControl, uDAInterfaces, cxGraphics, cxMaskEdit, cxDropDownEdit; + +type + IViewAlmacen = interface(IViewBase) + ['{F44F8AEF-CB9C-44D5-93DA-53D6AB6A2D29}'] + function GetAlmacen: IBizAlmacen; + procedure SetAlmacen(const Value: IBizAlmacen); + property Almacen: IBizAlmacen read GetAlmacen write SetAlmacen; + end; + + TfrViewAlmacen = class(TfrViewBase, IViewAlmacen) + DADataSource: TDADataSource; + ePersonaContacto: TcxDBTextEdit; + eTlfTelefono: TcxDBTextEdit; + eTlfMovil: TcxDBTextEdit; + eFax: TcxDBTextEdit; + dxLayoutControlAlmacenGroup_Root: TdxLayoutGroup; + dxLayoutControlAlmacen: TdxLayoutControl; + dxLayoutControlAlmacenGroup1: TdxLayoutGroup; + dxLayoutControlAlmacenItem3: TdxLayoutItem; + eNombre: TcxDBTextEdit; + dxLayoutControlAlmacenItem4: TdxLayoutItem; + dxLayoutControlAlmacenGroup2: TdxLayoutGroup; + dxLayoutControlAlmacenItem1: TdxLayoutItem; + dxLayoutControlAlmacenItem5: TdxLayoutItem; + dxLayoutControlAlmacenItem6: TdxLayoutItem; + dxLayoutControlAlmacenGroup3: TdxLayoutGroup; + dxLayoutControlAlmacenGroup4: TdxLayoutGroup; + dxLayoutControlAlmacenItem10: TdxLayoutItem; + eCalle: TcxDBTextEdit; + dxLayoutControlAlmacenItem2: TdxLayoutItem; + cbPoblacion: TcxDBComboBox; + dxLayoutControlAlmacenItem7: TdxLayoutItem; + eCodigoPostal: TcxDBTextEdit; + dxLayoutControlAlmacenItem9: TdxLayoutItem; + cbProvincia: TcxDBComboBox; + dxLayoutControlAlmacenGroup6: TdxLayoutGroup; + procedure cbProvinciaPropertiesInitPopup(Sender: TObject); + procedure cbPoblacionPropertiesInitPopup(Sender: TObject); + protected + FAlmacen: IBizAlmacen; + FProvincias : TStringList; + FIDProvincia : Integer; //Almacenar la provincia que hay seleccionada para no cargar las poblaciones si no es necesario + FPoblaciones : TStringList; + procedure CargarProvincias; + procedure CargarPoblaciones; + function GetAlmacen: IBizAlmacen; + procedure SetAlmacen(const Value: IBizAlmacen); + public + constructor Create(AOwner : TComponent); override; + destructor Destroy; + property Almacen: IBizAlmacen read GetAlmacen write SetAlmacen; + end; + +implementation + +uses + uDataModuleAlmacenes, uProvinciasPoblacionesController, uStringsUtils; + + +{$R *.dfm} + +{ TfrViewAlmacenes } + +{ +******************************* TfrViewAlmacenes ******************************** +} + +procedure TfrViewAlmacen.CargarPoblaciones; +var + i : integer; + +begin + if (FIDProvincia <> StrToInt(FProvincias.Values[cbProvincia.Text])) then + Begin + FIDProvincia := StrToInt(FProvincias.Values[cbProvincia.Text]); + + with TProvinciasPoblacionesController.Create do + try + FPoblaciones := DarListaPoblaciones(FIDProvincia); + + with cbPoblacion.Properties.Items do + begin + BeginUpdate; + try + Clear; + for i := 0 to FPoblaciones.Count - 1 do + Add(FPoblaciones.Names[i]); + finally + EndUpdate; + end; + end; + finally + Free; + end; + End; +end; + +procedure TfrViewAlmacen.CargarProvincias; +var + i : integer; +begin + with TProvinciasPoblacionesController.Create do + try + FProvincias := DarListaProvincias; + + with cbProvincia.Properties.Items do + begin + BeginUpdate; + try + Clear; + for i := 0 to FProvincias.Count - 1 do + Add(FProvincias.Names[i]); + finally + EndUpdate; + end; + end; + finally + Free; + end; +end; + +procedure TfrViewAlmacen.cbPoblacionPropertiesInitPopup(Sender: TObject); +begin + ShowHourglassCursor; + try + FreeANDNIL(FPoblaciones); + if not Assigned(FProvincias) then + CargarProvincias; + if not EsCadenaVacia(cbProvincia.Text) and (FProvincias.IndexOfName(cbProvincia.Text) <> -1) then + CargarPoblaciones + finally + HideHourglassCursor; + end; +end; + +procedure TfrViewAlmacen.cbProvinciaPropertiesInitPopup(Sender: TObject); +begin + ShowHourglassCursor; + try + if not Assigned(FProvincias) then + CargarProvincias; + finally + HideHourglassCursor; + end; +end; + +constructor TfrViewAlmacen.Create(AOwner: TComponent); +begin + inherited; + FIDProvincia := 0; + FProvincias := NIL; + FPoblaciones := NIL; +end; + +destructor TfrViewAlmacen.Destroy; +begin + if Assigned(FProvincias) then + FreeANDNIL(FProvincias); + + if Assigned(FPoblaciones) then + FreeANDNIL(FPoblaciones); +end; + +function TfrViewAlmacen.GetAlmacen: IBizAlmacen; +begin + Result := FAlmacen; +end; + +procedure TfrViewAlmacen.SetAlmacen(const Value: IBizAlmacen); +begin + FAlmacen := Value; + if Assigned(FAlmacen) then + DADataSource.DataTable := FAlmacen.DataTable + else + DADataSource.DataTable := NIL; +end; + +end. + diff --git a/Source/Modulos/Almacenes/Views/uViewAlmacenes.dcu b/Source/Modulos/Almacenes/Views/uViewAlmacenes.dcu new file mode 100644 index 0000000..c8d9ddb Binary files /dev/null and b/Source/Modulos/Almacenes/Views/uViewAlmacenes.dcu differ diff --git a/Source/Modulos/Almacenes/Views/uViewAlmacenes.dfm b/Source/Modulos/Almacenes/Views/uViewAlmacenes.dfm new file mode 100644 index 0000000..f35d57f --- /dev/null +++ b/Source/Modulos/Almacenes/Views/uViewAlmacenes.dfm @@ -0,0 +1,231 @@ +inherited frViewAlmacenes: TfrViewAlmacenes + Width = 770 + Height = 493 + ExplicitWidth = 770 + ExplicitHeight = 493 + inherited cxGrid: TcxGrid + Width = 770 + Height = 365 + ExplicitTop = 102 + inherited cxGridView: TcxGridDBTableView + DataController.KeyFieldNames = 'ID' + DataController.Summary.FooterSummaryItems = < + item + Format = '0 almacenes' + Kind = skCount + Column = cxGridViewNOMBRE + end> + OptionsBehavior.PullFocusing = True + object cxGridViewNOMBRE: TcxGridDBColumn + DataBinding.FieldName = 'NOMBRE' + SortIndex = 0 + SortOrder = soAscending + Width = 304 + end + object cxGridViewPERSONACONTACTO: TcxGridDBColumn + DataBinding.FieldName = 'PERSONA_CONTACTO' + Width = 118 + end + object cxGridViewTELEFONO: TcxGridDBColumn + DataBinding.FieldName = 'TELEFONO' + BestFitMaxWidth = 64 + Width = 118 + end + object cxGridViewMOVIL: TcxGridDBColumn + DataBinding.FieldName = 'MOVIL' + Visible = False + end + object cxGridViewFAX: TcxGridDBColumn + DataBinding.FieldName = 'FAX' + end + object cxGridViewCALLE: TcxGridDBColumn + DataBinding.FieldName = 'CALLE' + Visible = False + end + object cxGridViewPROVINCIA: TcxGridDBColumn + DataBinding.FieldName = 'PROVINCIA' + Visible = False + end + object cxGridViewPOBLACION: TcxGridDBColumn + DataBinding.FieldName = 'POBLACION' + Visible = False + end + object cxGridViewCODIGO_POSTAL: TcxGridDBColumn + DataBinding.FieldName = 'CODIGO_POSTAL' + Visible = False + end + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 770 + inherited TBXDockablePanel1: TTBXDockablePanel + inherited dxLayoutControl1: TdxLayoutControl + Width = 770 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 474 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 474 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 770 + inherited tbxBotones: TTBXToolbar + Width = 760 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 467 + ExplicitWidth = 607 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 770 + inherited TBXToolbar1: TTBXToolbar + Width = 760 + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 38673.842406053240000000 + BuiltInReportLink = True + end + end + inherited GridPNGImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000434944415478DA63FCFFFF3F + 03258011D900464646ACA601D530126D00BA6298A1B80C21CA0090183639925C + 80CB3B040DC0E69A510306BD010C04005E03C801036F00008D248BE16F9028BA + 0000000049454E44AE426082} + Name = 'Icono_header' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000022E4944415478DA + 8D93CF6BD36018C7BF6997A45DD376EA70CA18D31D44981741280C44119DA83D + C87619781A1EFD1BC49B2028B28353141111A43BE8CD934E65A8D4A1686B61B5 + A31DD8CCBAFEDAACEDF226B389EFFB26CBCC54E6030FEFCB4B3E9FE79B9744B0 + 2C0B8220E0F7BA3AB2D75A282DE07F4AD82C60F0851B8F50530BF85EF98A6236 + 8DCCAB69B0B366BD8C95B24ACF4BB877FD226AFD635EC13A5CF99243A356869A + 4D51F8398799EC476D09E5621E0F6F5EC6C8D938EE7C503604EB7055CDA34127 + A8B90C3ECD3CE570A35AA2FD0DCB4B2AEE4F5CC29953C35094102667655B706D + 7480C3F97412AD951AAAC502E6DEBCE47031974673B942BB8AA9DB57103F7D12 + 9D9D413ED4154C8C0BD6FCE7AD2F6C2816C3CE9E6E8862077C3E9F57307CE2FC + 1F80655A308C35E844C7B3273318D8D78FE8B6282449A41211B7DE05FE2D304D + 13866EC34433F0FAC55BF4EDE945A42B0C910A6459C6DD94F27781D936F964B2 + AADB02DAEF9329ECEEED4138A240944548B2840773DBBD02B637596C6238205D + 352AD175643E66B1A3BB0B0A15489204292061AAB0CB2B68D3C96B34367120BE + 3AB2F96C01E1A8825028083920F35778BCD8B721387E6C9C42060788465C50A3 + 12B24AB0582C2110946907282C61BA3588442221B882C343E75C50A30093B104 + 84D849EAD53AFC1D7E0ECFFA631C76FF0526387470D4135977405B62A0D56CB2 + C791891C71618FE0C0FEB873618623B2E33361FB679B4A340A1FF5C01E41928C + 6DF9256E8659FD02D3B7960923D6946A0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + Bitmap = {} + end +end diff --git a/Source/Modulos/Almacenes/Views/uViewAlmacenes.pas b/Source/Modulos/Almacenes/Views/uViewAlmacenes.pas new file mode 100644 index 0000000..1675069 --- /dev/null +++ b/Source/Modulos/Almacenes/Views/uViewAlmacenes.pas @@ -0,0 +1,69 @@ +unit uViewAlmacenes; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel, + cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGrid, uBizAlmacenes, ActnList, Menus, + cxGridBandedTableView, cxGridDBBandedTableView, JvComponent, + JvFormAutoSize, PngImageList, ImgList, dxPSGlbl, dxPSUtl, dxPSEngn, + dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, cxIntlPrintSys3, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, + cxGridCustomPopupMenu, cxGridPopupMenu, uViewFiltroBase, TB2Item, TBX, + TB2Toolbar, TBXDkPanels, TB2Dock, dxPgsDlg, uDAInterfaces; + +type + IViewAlmacenes = interface(IViewGrid) + ['{E6798DF7-011C-40EC-B368-160C48697445}'] + function GetAlmacenes: IBizAlmacen; + procedure SetAlmacenes(const Value: IBizAlmacen); + property Almacenes: IBizAlmacen read GetAlmacenes write SetAlmacenes; + end; + + TfrViewAlmacenes = class(TfrViewGrid, IViewAlmacenes) + cxGridViewPERSONACONTACTO: TcxGridDBColumn; + cxGridViewNOMBRE: TcxGridDBColumn; + cxGridViewTELEFONO: TcxGridDBColumn; + cxGridViewCALLE: TcxGridDBColumn; + cxGridViewPROVINCIA: TcxGridDBColumn; + cxGridViewPOBLACION: TcxGridDBColumn; + cxGridViewCODIGO_POSTAL: TcxGridDBColumn; + cxGridViewMOVIL: TcxGridDBColumn; + cxGridViewFAX: TcxGridDBColumn; + protected + FAlmacenes: IBizAlmacen; + function GetAlmacenes: IBizAlmacen; virtual; + procedure SetAlmacenes(const Value: IBizAlmacen); virtual; + public + property Almacenes: IBizAlmacen read GetAlmacenes write SetAlmacenes; + end; + +implementation + +uses uDataModuleAlmacenes; + + +{$R *.dfm} + +{ TfrViewAlmacenes } + +{ +******************************* TfrViewAlmacenes ******************************* +} +function TfrViewAlmacenes.GetAlmacenes: IBizAlmacen; +begin + Result := FAlmacenes; +end; + +procedure TfrViewAlmacenes.SetAlmacenes(const Value: IBizAlmacen); +begin + FAlmacenes := Value; + if Assigned(FAlmacenes) then + dsDataSource.DataTable := FAlmacenes.DataTable; +end; + + +end. diff --git a/Source/Modulos/Articulos/Articulos_Group.bdsgroup b/Source/Modulos/Articulos/Articulos_Group.bdsgroup new file mode 100644 index 0000000..40068fd --- /dev/null +++ b/Source/Modulos/Articulos/Articulos_Group.bdsgroup @@ -0,0 +1,24 @@ + + + + + + + + + + + ..\..\Base\Base.bdsproj + ..\..\Base\GUIBase\GUIBase.bdsproj + ..\..\Base\Usuarios\Usuarios.bdsproj + Model\Articulos_model.bdsproj + Data\Articulos_data.bdsproj + Controller\Articulos_controller.bdsproj + Views\Articulos_view.bdsproj + Plugin\Articulos_plugin.bdsproj + Base.bpl GUIBase.bpl Usuarios.bpl Articulos_model.bpl Articulos_data.bpl Articulos_controller.bpl Articulos_view.bpl Articulos_plugin.bpl + + + + diff --git a/Source/Modulos/Articulos/Articulos_Group.groupproj b/Source/Modulos/Articulos/Articulos_Group.groupproj new file mode 100644 index 0000000..063cf2d --- /dev/null +++ b/Source/Modulos/Articulos/Articulos_Group.groupproj @@ -0,0 +1,174 @@ + + + {6fa7160e-0b4c-4f7c-9c55-08938cd225c4} + + + + + + + + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Articulos/Controller/Articulos_controller.bdsproj b/Source/Modulos/Articulos/Controller/Articulos_controller.bdsproj new file mode 100644 index 0000000..ab9e55e --- /dev/null +++ b/Source/Modulos/Articulos/Controller/Articulos_controller.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + Articulos_controller.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + True + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Articulos/Controller/Articulos_controller.dcu b/Source/Modulos/Articulos/Controller/Articulos_controller.dcu new file mode 100644 index 0000000..3e43230 Binary files /dev/null and b/Source/Modulos/Articulos/Controller/Articulos_controller.dcu differ diff --git a/Source/Modulos/Articulos/Controller/Articulos_controller.dpk b/Source/Modulos/Articulos/Controller/Articulos_controller.dpk new file mode 100644 index 0000000..56cc15c Binary files /dev/null and b/Source/Modulos/Articulos/Controller/Articulos_controller.dpk differ diff --git a/Source/Modulos/Articulos/Controller/Articulos_controller.dproj b/Source/Modulos/Articulos/Controller/Articulos_controller.dproj new file mode 100644 index 0000000..f1cf7bf --- /dev/null +++ b/Source/Modulos/Articulos/Controller/Articulos_controller.dproj @@ -0,0 +1,563 @@ + + + + {ff8e8509-28f4-4aa9-88e5-13f60fe956a6} + Articulos_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Articulos_controller.bpl + + + 7.0 + False + False + False + True + 0 + True + True + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + False + True + True + True + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Articulos_controller.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Articulos/Controller/Articulos_controller.rc b/Source/Modulos/Articulos/Controller/Articulos_controller.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Articulos/Controller/Articulos_controller.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Articulos/Controller/Articulos_controller.res b/Source/Modulos/Articulos/Controller/Articulos_controller.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Articulos/Controller/Articulos_controller.res differ diff --git a/Source/Modulos/Articulos/Controller/View/uIEditorArticulo.dcu b/Source/Modulos/Articulos/Controller/View/uIEditorArticulo.dcu new file mode 100644 index 0000000..21239b6 Binary files /dev/null and b/Source/Modulos/Articulos/Controller/View/uIEditorArticulo.dcu differ diff --git a/Source/Modulos/Articulos/Controller/View/uIEditorArticulo.pas b/Source/Modulos/Articulos/Controller/View/uIEditorArticulo.pas new file mode 100644 index 0000000..61198c7 --- /dev/null +++ b/Source/Modulos/Articulos/Controller/View/uIEditorArticulo.pas @@ -0,0 +1,22 @@ +unit uIEditorArticulo; + +interface + +uses + uEditorDBItem, uBizArticulos, uArticulosController; + +type + IEditorArticulo = interface(IEditorDBItem) + ['{3260C102-192B-4797-A390-30C818ECBEA5}'] + function GetController : IArticulosController; + procedure SetController (const Value : IArticulosController); + property Controller : IArticulosController read GetController write SetController; + + function GetArticulo: IBizArticulo; + procedure SetArticulo(const Value: IBizArticulo); + property Articulo: IBizArticulo read GetArticulo write SetArticulo; + end; + +implementation + +end. diff --git a/Source/Modulos/Articulos/Controller/View/uIEditorArticulos.dcu b/Source/Modulos/Articulos/Controller/View/uIEditorArticulos.dcu new file mode 100644 index 0000000..4eead6f Binary files /dev/null and b/Source/Modulos/Articulos/Controller/View/uIEditorArticulos.dcu differ diff --git a/Source/Modulos/Articulos/Controller/View/uIEditorArticulos.pas b/Source/Modulos/Articulos/Controller/View/uIEditorArticulos.pas new file mode 100644 index 0000000..5082fd7 --- /dev/null +++ b/Source/Modulos/Articulos/Controller/View/uIEditorArticulos.pas @@ -0,0 +1,23 @@ +unit uIEditorArticulos; + +interface + +uses + uEditorGridBase, uBizArticulos, uArticulosController; + +type + IEditorArticulos = interface(IEditorGridBase) + ['{997019B7-6663-4EA0-AC5E-EEB126A62808}'] + function GetArticulos: IBizArticulo; + procedure SetArticulos(const Value: IBizArticulo); + property Articulos: IBizArticulo read GetArticulos write SetArticulos; + + function GetController : IArticulosController; + procedure SetController (const Value : IArticulosController); + property Controller : IArticulosController read GetController write SetController; + end; + + +implementation + +end. diff --git a/Source/Modulos/Articulos/Controller/View/uIEditorElegirArticulos.dcu b/Source/Modulos/Articulos/Controller/View/uIEditorElegirArticulos.dcu new file mode 100644 index 0000000..7a025d5 Binary files /dev/null and b/Source/Modulos/Articulos/Controller/View/uIEditorElegirArticulos.dcu differ diff --git a/Source/Modulos/Articulos/Controller/View/uIEditorElegirArticulos.pas b/Source/Modulos/Articulos/Controller/View/uIEditorElegirArticulos.pas new file mode 100644 index 0000000..16030c1 --- /dev/null +++ b/Source/Modulos/Articulos/Controller/View/uIEditorElegirArticulos.pas @@ -0,0 +1,34 @@ +unit uIEditorElegirArticulos; + +interface + +uses + uIEditorArticulos, uBizArticulos, uArticulosController, uGUIBase; + +type + IEditorElegirArticulos = interface(IEditorArticulos) + ['{549F3B97-46E2-4D40-8080-566065735FA0}'] + function GetArticulos: IBizArticulo; + procedure SetArticulos(const Value: IBizArticulo); + property Articulos: IBizArticulo read GetArticulos write SetArticulos; + + function GetController : IArticulosController; + procedure SetController (const Value : IArticulosController); + property Controller : IArticulosController read GetController write SetController; + + function GetArticulosSeleccionados: IBizArticulo; + property ArticulosSeleccionados: IBizArticulo read GetArticulosSeleccionados; + + procedure SetMultiSelect (AValue : Boolean); + function GetMultiSelect : Boolean; + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + + procedure SetMensaje (const AValue: String); + function GetMensaje: String; + property Mensaje : String read GetMensaje write SetMensaje; + end; + + +implementation + +end. diff --git a/Source/Modulos/Articulos/Controller/uArticulosController.dcu b/Source/Modulos/Articulos/Controller/uArticulosController.dcu new file mode 100644 index 0000000..031c7d4 Binary files /dev/null and b/Source/Modulos/Articulos/Controller/uArticulosController.dcu differ diff --git a/Source/Modulos/Articulos/Controller/uArticulosController.pas b/Source/Modulos/Articulos/Controller/uArticulosController.pas new file mode 100644 index 0000000..1ae4c614 --- /dev/null +++ b/Source/Modulos/Articulos/Controller/uArticulosController.pas @@ -0,0 +1,705 @@ +unit uArticulosController; + +interface + + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uEditorDBItem, + uIDataModuleArticulos, uBizArticulos, uProveedoresController, + uBizContactos; + +type + IArticulosController = interface(IControllerBase) + ['{C7EA6486-7BE4-468E-A27A-621E1BA13430}'] + function Buscar(const ID: Integer; AClienteID: Integer = -1): IBizArticulo; overload; + function BuscarInventariables: IBizArticulo; + function BuscarTodos: IBizArticulo; overload; + function BuscarTodosPorProveedor: IBizArticulo; overload; + function BuscarTodos(ACliente: IBizCliente): IBizArticulo; overload; + function BuscarTodos(AProveedor: IBizProveedor): IBizArticulo; overload; + function BuscarReferencia(const Ref: String; AClienteID: Integer): IBizArticulo; + function BuscarReferenciaProveedor(const Ref: String; AClienteID: Integer): IBizArticulo; + procedure Ver(AArticulo : IBizArticulo); + procedure VerTodos; + function Nuevo : IBizArticulo; + procedure Anadir(AArticulo : IBizArticulo); + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(AArticulo : IBizArticulo): Boolean; overload; + function Guardar(AArticulo : IBizArticulo): Boolean; + procedure DescartarCambios(AArticulo : IBizArticulo); + function Existe(const ID: Integer) : Boolean; + function Duplicar(AArticulo: IBizArticulo): IBizArticulo; + procedure Preview(AArticulo : IBizArticulo); + procedure Print(AArticulo : IBizArticulo); + + procedure ElegirProveedor(AArticulo : IBizArticulo); + procedure AnadirProveedor(AArticulo : IBizArticulo); + procedure VerProveedor(AArticulo : IBizArticulo); + function DarListaProveedoresConArticulos: TStringList; + + function ExtraerSeleccionados(AArticulos: IBizArticulo) : IBizArticulo; + function ElegirArticulos(AArticulos : IBizArticulo; AMensaje: String; AMultiSelect: Boolean): IBizArticulo; + procedure CalcularPrecioNeto(AArticulos: IBizArticulo); + + function GetProveedoresController: IProveedoresController; + property ProveedoresController: IProveedoresController read GetProveedoresController; + function DarPrecioPVPVenta(IdArticulo: Integer): TStringList; + end; + + TArticulosController = class(TControllerBase, IArticulosController) + protected + FDataModule : IDataModuleArticulos; + FProveedoresController: IProveedoresController; + function GetProveedoresController: IProveedoresController; + + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; + function _Vacio : IBizArticulo; + + procedure FiltrarEmpresa(AArticulo: IBizArticulo); + function ValidarArticulo(AArticulo: IBizArticulo): Boolean; virtual; + + procedure RecuperarObjetos(AArticulo: IBizArticulo); virtual; + procedure AsignarDataModule; virtual; + + public + property ProveedoresController: IProveedoresController read GetProveedoresController; + + constructor Create; override; + destructor Destroy; override; + + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(AArticulo : IBizArticulo): Boolean; overload; + function Guardar(AArticulo : IBizArticulo): Boolean; + procedure DescartarCambios(AArticulo : IBizArticulo); virtual; + function Existe(const ID: Integer) : Boolean; virtual; + procedure Anadir(AArticulo : IBizArticulo); virtual; + function Buscar(const ID: Integer; AClienteID: Integer = -1): IBizArticulo; virtual; + function BuscarTodos: IBizArticulo; overload; + function BuscarTodosPorProveedor: IBizArticulo; overload; + function BuscarInventariables: IBizArticulo; + function BuscarTodos(ACliente: IBizCliente): IBizArticulo; overload; + function BuscarTodos(ACliente: Integer): IBizArticulo; overload; + function BuscarTodos(AProveedor: IBizProveedor): IBizArticulo; overload; + function BuscarReferencia(const Ref: String; AClienteID: Integer = -1): IBizArticulo; virtual; + function BuscarReferenciaProveedor(const Ref: String; AClienteID: Integer): IBizArticulo; virtual; + function Nuevo : IBizArticulo; virtual; + procedure Ver(AArticulo : IBizArticulo); virtual; + procedure VerTodos; virtual; + function Duplicar(AArticulo: IBizArticulo): IBizArticulo; virtual; + procedure Preview(AArticulo : IBizArticulo); virtual; + procedure Print(AArticulo : IBizArticulo); virtual; + function ExtraerSeleccionados(AArticulos: IBizArticulo) : IBizArticulo; virtual; + function ElegirArticulos(AArticulos : IBizArticulo; AMensaje: String; AMultiSelect: Boolean): IBizArticulo; virtual; + procedure CalcularPrecioNeto(AArticulos: IBizArticulo); + + procedure ElegirProveedor(AArticulo : IBizArticulo); + procedure AnadirProveedor(AArticulo : IBizArticulo); + procedure VerProveedor(AArticulo : IBizArticulo); + function DarListaProveedoresConArticulos: TStringList; + function DarPrecioPVPVenta(IdArticulo: Integer): TStringList; + end; + +implementation + +uses + cxControls, DB, uEditorRegistryUtils, schArticulosClient_Intf, uFactuGES_App, + uIEditorArticulos, uIEditorArticulo, uIEditorElegirArticulos, + uDataModuleArticulos, uDataModuleUsuarios, uDAInterfaces, Dialogs, + uDataTableUtils, uDateUtils, uROTypes, DateUtils, Controls, Windows; + +{ TArticulosController } + +procedure TArticulosController.Anadir(AArticulo: IBizArticulo); +begin + AArticulo.Insert; +end; + +procedure TArticulosController.AnadirProveedor(AArticulo: IBizArticulo); +var + AProveedor : IBizContacto; +begin + inherited; +{ AProveedor := (FProveedoresController.Nuevo as IBizProveedor); + FProveedoresController.Ver(AProveedor); + if Assigned(AProveedor) then + begin + if not AArticulo.DataTable.Editing then + AArticulo.Edit; + AArticulo.ID_PROVEEDOR := AProveedor.ID; + AArticulo.NOMBRE_PROVEEDOR := AProveedor.NOMBRE; + end; + AProveedor := Nil; +} +end; + +procedure TArticulosController.AsignarDataModule; +begin + FDataModule := TDataModuleArticulos.Create(Nil); + FProveedoresController := TProveedoresController.Create; +end; + +function TArticulosController.Buscar(const ID: Integer; AClienteID: Integer = -1): IBizArticulo; +begin +//Quitamos la funcionalidad de poder dar una lista de articulos particular de los clientes +// if (AClienteID = -1) then + Result := (FDataModule as IDataModuleArticulos).GetItem(ID); +// else +// Result := (FDataModule as IDataModuleArticulos).GetItem(ID, AClienteID); + +//Los articulos sern comunes para todas las empresas. +// FiltrarEmpresa(Result); +end; + +function TArticulosController.BuscarInventariables: IBizArticulo; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + + // Filtrar los articulos inventariables + with Result.DataTable.DynamicWhere do + begin + // (ID_EMPRESA >= ID) + Condicion := NewBinaryExpression(NewField('', fld_ArticulosINVENTARIABLE), NewConstant(1, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TArticulosController.BuscarReferencia(const Ref: String; AClienteID: Integer = -1): IBizArticulo; +{var + Condicion: TDAWhereExpression;} +begin + ShowHourglassCursor; + try +//En tecsitel se desactiva el sacar una lista de articulos personalizada por cliente +// if (AClienteID = -1) then + Result := BuscarTodos; +// else +// Result := BuscarTodos(AClienteID); + + // Filtrar por referencia, se cambia por el where anterior porque luego no nos reconoce bien la cadena, al contener UPPER + with Result.DataTable.Where do + begin + AddText(Format('UPPER(%s) = ''%s''', [fld_ArticulosREFERENCIA, UpperCase(Ref)])); + end; + + + { with Result.DataTable.DynamicWhere do + begin + // (REFERENCIA >= Ref) + Condicion := NewBinaryExpression(NewField('', fld_ArticulosREFERENCIA), NewConstant(UpperCase(Ref), datString), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end;} + + finally + HideHourglassCursor; + end; +end; + +function TArticulosController.BuscarReferenciaProveedor(const Ref: String; AClienteID: Integer): IBizArticulo; +{var + Condicion: TDAWhereExpression;} +begin + ShowHourglassCursor; + try +//En tecsitel se desactiva el sacar una lista de articulos personalizada por cliente +// if (AClienteID = -1) then + Result := BuscarTodosPorProveedor; +// else +// Result := BuscarTodos(AClienteID); + + // Filtrar por referencia, se cambia por el where anterior porque luego no nos reconoce bien la cadena, al contener UPPER + with Result.DataTable.Where do + begin + AddText(Format('UPPER(%s) = ''%s''', [fld_ArticulosREFERENCIA_PROV, UpperCase(Ref)])); + end; + + {with Result.DataTable.DynamicWhere do + begin + // (REFERENCIA >= Ref) + Condicion := NewBinaryExpression(NewField('', fld_ArticulosREFERENCIA_PROV), NewConstant(UpperCase(Ref), datString), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end;} + + finally + HideHourglassCursor; + end; +end; + +function TArticulosController.BuscarTodos(ACliente: Integer): IBizArticulo; +begin + Result := FDataModule.GetItems(txArticulo); //ACliente); +//Los articulos sern comunes para todas las empresas. +// FiltrarEmpresa(Result); +end; + +function TArticulosController.BuscarTodos(ACliente: IBizCliente): IBizArticulo; +begin +//En tecsitel se desactiva el sacar una lista de articulos personalizada por cliente +// if not Assigned(ACliente) then +// raise Exception.Create('Falta ACliente: BuscarTodos'); + + Result := BuscarTodos; //(ACliente.ID); +end; + +function TArticulosController.BuscarTodos(AProveedor: IBizProveedor): IBizArticulo; +var + Condicion: TDAWhereExpression; +begin + if Assigned(AProveedor) then + begin + ShowHourglassCursor; + try + Result := BuscarTodosPorProveedor; + + // Filtrar los articulos del proveedor + with Result.DataTable.DynamicWhere do + begin + // (ID_PROVEEDOR = ID) + Condicion := NewBinaryExpression(NewField('', fld_ArticulosParaCompraID_PROVEEDOR), NewConstant(AProveedor.ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + finally + HideHourglassCursor; + end; + end; +end; + +function TArticulosController.BuscarTodosPorProveedor: IBizArticulo; +begin + Result := FDataModule.GetItems(txProveedor); +//Los articulos sern comunes para todas las empresas. +// FiltrarEmpresa(Result); +end; + +function TArticulosController.BuscarTodos: IBizArticulo; +begin + Result := FDataModule.GetItems(txArticulo); +//Los articulos sern comunes para todas las empresas. +// FiltrarEmpresa(Result); +end; + +procedure TArticulosController.CalcularPrecioNeto(AArticulos: IBizArticulo); +var + lPrecioNeto: Double; +begin +{ + if Assigned(AArticulos) then + begin + with AArticulos do + begin + try + ShowHourglassCursor; + DataTable.DisableControls; + if not DataTable.Active then + DataTable.Active := True; + //Calcular precio neto + lPrecioNeto := PRECIO_COSTE - ((PRECIO_COSTE * DESCUENTO)/100); + if (PRECIO_NETO <> lPrecioNeto) then + begin + if not DataTable.Editing then + DataTable.Edit; + PRECIO_NETO := lPrecioNeto; + end; + finally + DataTable.EnableControls; + HideHourglassCursor; + end; + end; + end; +} +end; + +constructor TArticulosController.Create; +begin + inherited; + AsignarDataModule; +end; + +function TArticulosController.CreateEditor(const AName: String; + const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + +function TArticulosController.DarListaProveedoresConArticulos: TStringList; +begin + Result := (FDataModule as IDataModuleArticulos).DarListaProveedoresConArticulos(AppFactuGES.EmpresaActiva.ID); +end; + +function TArticulosController.DarPrecioPVPVenta(IdArticulo: Integer): TStringList; +var + AArticulo: IBizArticulo; +begin + AArticulo := Buscar(IdArticulo); + AArticulo.DataTable.Active := True; + Result := TStringList.Create; + try + with Result do + begin + Add(CurrToStr(AArticulo.PRECIO_PVP_TOTAL)); + Add(CurrToStr(AArticulo.PRECIO_PVP_VENTA)); + end; + finally + AArticulo := NIL; + end; +end; + +procedure TArticulosController.DescartarCambios(AArticulo: IBizArticulo); +begin + if not Assigned(AArticulo) then + raise Exception.Create ('Articulo no asignado'); + + ShowHourglassCursor; + try + if (AArticulo.State in dsEditModes) then + AArticulo.Cancel; + + AArticulo.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TArticulosController.Destroy; +begin + FDataModule := Nil; + FProveedoresController := Nil; + inherited; +end; + +function TArticulosController.Duplicar(AArticulo: IBizArticulo): IBizArticulo; +begin + Result := Self._Vacio; + ShowHourglassCursor; + try + DuplicarRegistros(AArticulo.DataTable, Result.DataTable, mdrActual); + + // Hay que dejar algunos campos como si fuera un artculo nuevo + Result.Edit; + with Result do + begin + ID_EMPRESA := AppFactuGES.EmpresaActiva.ID; + USUARIO := AppFactuGES.UsuarioActivo.UserName; + REFERENCIA := ''; + end; + + Result.Post; + finally + HideHourglassCursor; + end; +end; + +function TArticulosController.ValidarArticulo(AArticulo: IBizArticulo): Boolean; +begin + Result := False; + + if not Assigned(AArticulo) then + raise Exception.Create ('Artculo no asignado'); + + if (AArticulo.DataTable.State in dsEditModes) then + AArticulo.DataTable.Post; + + //Tambien hacemos post de sus tablas hija + if (AArticulo.Proveedores.DataTable.State in dsEditModes) then + AArticulo.Proveedores.DataTable.Post; + + if Length(AArticulo.DESCRIPCION) = 0 then + raise Exception.Create('Debe indicar al menos la descripcin de este artculo.'); + + // Asegurarse de valores en campos "automticos" + AArticulo.Edit; + try + AArticulo.USUARIO := AppFactuGES.UsuarioActivo.UserName; + Result := True; + finally + AArticulo.Post; + end; +end; + +procedure TArticulosController.Ver(AArticulo: IBizArticulo); +var + AEditor : IEditorArticulo; +begin + AEditor := NIL; + + RecuperarObjetos(AArticulo); + + CreateEditor('EditorArticulo', IEditorArticulo, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.Articulo := AArticulo; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +procedure TArticulosController.VerProveedor(AArticulo: IBizArticulo); +var + AProveedor : IBizContacto; +begin +{ + AProveedor := FProveedoresController.Buscar(AArticulo.ID_PROVEEDOR); + FProveedoresController.Ver(AProveedor); + if Assigned(AProveedor) then + begin + if not AArticulo.DataTable.Editing then + AArticulo.Edit; + AArticulo.ID_PROVEEDOR := AProveedor.ID; + AArticulo.NOMBRE_PROVEEDOR := AProveedor.NOMBRE; + end; + AProveedor := Nil; +} +end; + +procedure TArticulosController.VerTodos; +var + AEditor : IEditorArticulos; +begin + AEditor := NIL; + + CreateEditor('EditorArticulos', IEditorArticulos, AEditor); + if Assigned(AEditor) then + with (AEditor as IEditorArticulos) do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + ShowEmbedded; + end; +end; + +function TArticulosController._Vacio: IBizArticulo; +begin + Result := Buscar(ID_NULO); +end; + +function TArticulosController.Eliminar(const ID: Integer): Boolean; +var + AArticulo : IBizArticulo; +begin + AArticulo := Buscar(ID); + + if not Assigned(AArticulo) then + raise Exception.Create(Format('No se ha encontrado el artculo con ID = %d', [ID])); + + AArticulo.DataTable.Active := True; + Result := Eliminar(AArticulo); + AArticulo := NIL; +end; + +function TArticulosController.ElegirArticulos(AArticulos: IBizArticulo; AMensaje: String; AMultiSelect: Boolean): IBizArticulo; +var + AEditor : IEditorElegirArticulos; +begin + Result := NIL; + + CreateEditor('EditorElegirArticulos', IEditorElegirArticulos, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; + AEditor.Articulos := AArticulos; + AEditor.MultiSelect := AMultiSelect; + AEditor.Mensaje := AMensaje; + if IsPositiveResult(AEditor.ShowModal) then + Result := AEditor.ArticulosSeleccionados; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +procedure TArticulosController.ElegirProveedor(AArticulo: IBizArticulo); +var + AProveedor : IBizContacto; +begin + inherited; +{ + AProveedor := (FProveedoresController.ElegirContacto(FProveedoresController.BuscarTodos, '', False) as IBizProveedor); + if Assigned(AProveedor) then + begin + if not AArticulo.DataTable.Editing then + AArticulo.Edit; + AArticulo.ID_PROVEEDOR := AProveedor.ID; + AArticulo.NOMBRE_PROVEEDOR := AProveedor.NOMBRE; + end; + AProveedor := Nil; +} +end; + +function TArticulosController.Eliminar(AArticulo: IBizArticulo): Boolean; +begin + Result := False; + + if not Assigned(AArticulo) then + raise Exception.Create ('Articulo no asignada'); + + ShowHourglassCursor; + try + if (AArticulo.State in dsEditModes) then + AArticulo.Cancel; + + AArticulo.Delete; + AArticulo.DataTable.ApplyUpdates; + HideHourglassCursor; + Result := True; + except + on E: Exception do + begin + AArticulo.DataTable.CancelUpdates; + HideHourglassCursor; + if (Pos('FOREIGN KEY', E.Message) > 0) then + MessageBox(0, 'No se puede borrar este artculo porque tiene artculos', 'Atencin', MB_ICONWARNING or MB_OK); + end; + end; +end; + +procedure TArticulosController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +begin + inherited; +// +end; + +procedure TArticulosController.RecuperarObjetos(AArticulo: IBizArticulo); +begin + // +end; + +function TArticulosController.Existe(const ID: Integer): Boolean; +var + AArticulo : IBizArticulo; +begin + try + AArticulo := Buscar(ID); + Result := Assigned(AArticulo) and (AArticulo.ID = ID); + finally + AArticulo := NIL; + end; +end; + +function TArticulosController.ExtraerSeleccionados(AArticulos: IBizArticulo): IBizArticulo; +var + ASeleccionados : IBizArticulo; +begin + ASeleccionados := (Self.Buscar(ID_NULO) as IBizArticulo); + CopyDataTableDA5(AArticulos.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + +procedure TArticulosController.FiltrarEmpresa(AArticulo: IBizArticulo); +var + Condicion: TDAWhereExpression; +begin + if AArticulo.DataTable.Active then + AArticulo.DataTable.Active := False; + + // Filtrar los Articulos actuales por empresa + with AArticulo.DataTable.DynamicWhere do + begin + // (ID_EMPRESA >= ID) + Condicion := NewBinaryExpression(NewField('', fld_ArticulosID_EMPRESA), NewConstant(AppFactuGES.EmpresaActiva.ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; +end; + +function TArticulosController.GetProveedoresController: IProveedoresController; +begin + Result := FProveedoresController; +end; + +function TArticulosController.Guardar(AArticulo: IBizArticulo): Boolean; +begin + Result := False; + + if ValidarArticulo(AArticulo) then + begin + ShowHourglassCursor; + try + //Para que no salten los eventos de calculo de PVP que dara un pete importante + AArticulo.DataTable.DisableControls; + AArticulo.Proveedores.DataTable.DisableControls; + AArticulo.DataTable.DisableEventHandlers; + AArticulo.Proveedores.DataTable.DisableEventHandlers; + + AArticulo.DataTable.ApplyUpdates; + + Result := True; + finally + //Para que no salten los eventos de calculo de PVP que dara un pete importante + AArticulo.DataTable.EnableControls; + AArticulo.DataTable.EnableEventHandlers; + AArticulo.Proveedores.Datatable.EnableControls; + AArticulo.Proveedores.Datatable.EnableEventHandlers; + + HideHourglassCursor; + end; + end; +end; + +function TArticulosController.Nuevo: IBizArticulo; +var + AArticulo : IBizArticulo; +begin + AArticulo := FDataModule.NewItem; +//Los articulos sern comunes para todas las empresas. +// FiltrarEmpresa(AArticulo); + AArticulo.DataTable.Active := True; + AArticulo.Insert; + Result := AArticulo; +end; + +procedure TArticulosController.Preview(AArticulo: IBizArticulo); +//var +// AReportController : IArticulosReportController; +begin +{ AReportController := TArticulosReportController.Create; + try + AReportController.Preview(AArticulo.ID); + finally + AReportController := NIL; + end; +} +end; + +procedure TArticulosController.Print(AArticulo: IBizArticulo); +//var +// AReportController : IArticulosReportController; +begin +{ AReportController := TArticulosReportController.Create; + try + AReportController.Print(AArticulo.ID); + finally + AReportController := NIL; + end; +} +end; + +end. diff --git a/Source/Modulos/Articulos/Controller/uControllerDetallesArticulos.dcu b/Source/Modulos/Articulos/Controller/uControllerDetallesArticulos.dcu new file mode 100644 index 0000000..7c952d8 Binary files /dev/null and b/Source/Modulos/Articulos/Controller/uControllerDetallesArticulos.dcu differ diff --git a/Source/Modulos/Articulos/Controller/uControllerDetallesArticulos.pas b/Source/Modulos/Articulos/Controller/uControllerDetallesArticulos.pas new file mode 100644 index 0000000..7f2ab44 --- /dev/null +++ b/Source/Modulos/Articulos/Controller/uControllerDetallesArticulos.pas @@ -0,0 +1,387 @@ +unit uControllerDetallesArticulos; + +interface + +uses Classes, Variants, uDACDSDataTable, uDADataTable, uControllerDetallesBase, + uBizArticulos, uArticulosController; + +const + CAMPO_REFERENCIA = 'REFERENCIA'; //Campo ficticio + CAMPO_REFERENCIA_PROVEEDOR = 'REFERENCIA_PROVEEDOR'; //Campo ficticio + +type + TEnumReferencia = (tCliente, tProveedor); + + IControllerDetallesArticulos = interface(IControllerDetallesBase) + ['{6E156796-DB1F-4727-BBFB-FBAEF2E5C098}'] + procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; const ANuevaFila :Boolean = True); + function AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; Referencia: String; TipoReferencia: TEnumReferencia; AClienteID: Integer = -1; const ACantidad: Float = 1): Boolean; overload; + function AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; IDArticulo: Integer; AClienteID: Integer = -1; const ACantidad: Float = 1): Boolean; overload; + procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); + procedure CambiarSignoDetalles(ADetalles: IDAStronglyTypedDataTable; const AAll: Boolean = True); + procedure AnadirConceptoInicial(ADetalles: IDAStronglyTypedDataTable; AConcepto: String); + function DarPrecioPVPVenta(IdArticulo: Integer): TStringList; + end; + + TControllerDetallesArticulos = class (TControllerDetallesBase, IControllerDetallesArticulos) + protected + FArticulosController: IArticulosController; + + procedure EliminarArticulosProveedor(ADetalles: IDAStronglyTypedDataTable); + procedure AsignarDatos(ADetalles: IDAStronglyTypedDataTable; IDCabecera: Integer); virtual; + procedure RellenarOtros(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); virtual; + procedure RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); virtual; + procedure RellenarGenerales(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); virtual; + procedure RellenarCantidad(ADetalles: IDAStronglyTypedDataTable; const ACantidad: Float); virtual; + procedure RellenarDetalle(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo; const ACantidad: Float = 1); virtual; + procedure Add(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo; const ACantidad: Float = 1); overload; + + procedure AsignarController; virtual; + + public + function AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; Referencia: String; TipoReferencia: TEnumReferencia; AClienteID: Integer = -1; const ACantidad: Float = 1): Boolean; overload; + function AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; IDArticulo: Integer; AClienteID: Integer = -1; const ACantidad: Float = 1): Boolean; overload; + procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; const ANuevaFila :Boolean = True); virtual; + procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); + procedure CambiarSignoDetalles(ADetalles: IDAStronglyTypedDataTable; const AAll: Boolean = True); + procedure AnadirConceptoInicial(ADetalles: IDAStronglyTypedDataTable; AConcepto: String); + function DarPrecioPVPVenta(IdArticulo: Integer): TStringList; + + constructor Create; override; + destructor Destroy; override; + end; + + +implementation + +{ TControllerDetallesArticulos } + +uses + DB, Dialogs, cxControls, SysUtils, uDAInterfaces, uCalculosUtils, schArticulosClient_Intf; + +const + CAMPO_UNIDADMEDIDA = 'UNIDAD_MEDIDA'; + + +{ TControllerDetallesArticulos } + +procedure TControllerDetallesArticulos.ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +var + ACantidad: Float; +begin + if (Assigned(ADetalles) and Assigned(AArticulos)) then + begin + if not AArticulos.DataTable.Active then + AArticulos.DataTable.Active := True; + + BeginUpdate(ADetalles); + try + ADetalles.DataTable.First; + with ADetalles.DataTable do + begin + while not EOF do + begin + Edit; + AArticulos.DataTable.First; + try + if AArticulos.DataTable.Locate(CAMPO_ID, FieldByName(CAMPO_ID_ARTICULOS).AsVariant, []) then + begin + //Para mantener la cantidad que ya tuviera el detalle se debe guardar y volver a poner + ACantidad := ADetalles.DataTable.FieldByName(CAMPO_CANTIDAD).AsFloat; + RellenarDetalle(ADetalles, AArticulos, ACantidad); + end; + except + on E: Exception do + ShowMessage(E.Message); + end; + Next; + end; + //Volvemos a dejarlo al principio + ADetalles.DataTable.First; + end; + finally + EndUpdate(ADetalles); + end; + end; +end; + +procedure TControllerDetallesArticulos.Add(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo; const ACantidad: Float); +begin + if Assigned(ADetalles) and Assigned(AArticulos) then + begin + try + ShowHourglassCursor; + BeginUpdate(ADetalles); + + if not ADetalles.DataTable.Active then + ADetalles.DataTable.Active := True; + + if not AArticulos.DataTable.Active then + AArticulos.DataTable.Active := True; + + with AArticulos.DataTable do + begin + First; + while not EOF do + begin + Self.Add(ADetalles, TIPO_DETALLE_CONCEPTO); + RellenarDetalle(ADetalles, AArticulos, ACantidad); + Next; + end; + end; + finally + EndUpdate(ADetalles); + HideHourglassCursor; + end; + end; +end; + +function TControllerDetallesArticulos.AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; IDArticulo, AClienteID: Integer; + const ACantidad: Float): Boolean; +var + AArticulo: IBizArticulo; +begin +{ + Aade el artculo con la referencia pasada por parametro a los detalles pasados por parametro + En el caso de asignar un AClienteID el articulo debe contener el descuento para ese cliente +} + Result := False; + BeginUpdate(ADetalles); + ShowHourglassCursor; + try + AArticulo := FArticulosController.Buscar(IDArticulo, AClienteID); + + if Assigned(AArticulo) then + begin + AArticulo.DataTable.Active := True; + if (AArticulo.RecordCount > 0) then + begin + RellenarDetalle(ADetalles, AArticulo, ACantidad); + Result := True; + end; + end; + finally + EndUpdate(ADetalles); + HideHourglassCursor; + end; +end; + +procedure TControllerDetallesArticulos.AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; const ANuevaFila: Boolean); +var + AArticulos: IBizArticulo; +begin + if Assigned(ADetalles) then + begin + try + AArticulos := (FArticulosController.BuscarTodos as IBizArticulo); + //Si nueva fila es false, quiere decir que se sustituye un determinado artculo, por ello la lista a seleccionar no debe ser multiselect + if ANuevaFila then + begin + AArticulos := FArticulosController.ElegirArticulos(AArticulos, 'Elija los artculos que desea aadir', True); + Add(ADetalles, AArticulos) + end + else + begin + AArticulos := FArticulosController.ElegirArticulos(AArticulos, 'Elija el artculo que desea aadir', False); + RellenarDetalle(ADetalles, AArticulos); + end; + finally + AArticulos := Nil; + end; + end; +end; + +procedure TControllerDetallesArticulos.AnadirConceptoInicial(ADetalles: IDAStronglyTypedDataTable; AConcepto: String); +begin + if Assigned(ADetalles) then + begin + With ADetalles.DataTable do + begin + First; + Add(ADetalles, TIPO_DETALLE_TITULO); + Edit; + FieldByName(CAMPO_CONCEPTO).AsString := AConcepto; + Post; + //Subimos la linea insertada al inicio de los detalles + Self.Mover(ADetalles.DataTable, 1, -1); + //Aadimos linea en blanco + Add(ADetalles, TIPO_DETALLE_CONCEPTO); + Edit; + FieldByName(CAMPO_CONCEPTO).AsString := ''; + Post; +// First; + end; + end; +end; + +procedure TControllerDetallesArticulos.AsignarController; +begin + FArticulosController := TArticulosController.Create; +end; + +procedure TControllerDetallesArticulos.AsignarDatos(ADetalles: IDAStronglyTypedDataTable; IDCabecera: Integer); +begin +// +end; + +procedure TControllerDetallesArticulos.CambiarSignoDetalles(ADetalles: IDAStronglyTypedDataTable; const AAll: Boolean); +begin +//Cambia de signo los detalles de la pasados por parmetro + if Assigned(ADetalles) then + begin + try + BeginUpdate(ADetalles); + + if not ADetalles.DataTable.Active then + ADetalles.DataTable.Active := True; + + with ADetalles.DataTable do + begin + //Cambia el signo a todos + if AAll then + begin + First; + while not EOF do + begin + if (FieldByName(CAMPO_CANTIDAD).AsFloat <> 0) then + begin + Edit; + FieldByName(CAMPO_CANTIDAD).AsFloat := (-1) * FieldByName(CAMPO_CANTIDAD).AsFloat; + end; + Next; + end; + end + //Solo cambia el signo al seleccionado + else + begin + if (FieldByName(CAMPO_CANTIDAD).AsFloat <> 0) then + begin + Edit; + FieldByName(CAMPO_CANTIDAD).AsFloat := (-1) * FieldByName(CAMPO_CANTIDAD).AsFloat; + end; + end; + end; + finally + EndUpdate(ADetalles); + end; + end; +end; + +constructor TControllerDetallesArticulos.Create; +begin + inherited; + AsignarController; +end; + +function TControllerDetallesArticulos.DarPrecioPVPVenta(IdArticulo: Integer): TStringList; +begin + Result := FArticulosController.DarPrecioPVPVenta(IdArticulo); +end; + +destructor TControllerDetallesArticulos.Destroy; +begin + FArticulosController := Nil; + inherited; +end; + +procedure TControllerDetallesArticulos.EliminarArticulosProveedor(ADetalles: IDAStronglyTypedDataTable); +begin + if Assigned(ADetalles) then + begin + with ADetalles.DataTable do + begin + First; + while not Eof do + if not FieldByName(CAMPO_ID_ARTICULOS).IsNull then + Delete + else + Next; + end; + end; +end; + +function TControllerDetallesArticulos.AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; Referencia: String; TipoReferencia: TEnumReferencia; AClienteID: Integer = -1; const ACantidad: Float = 1): Boolean; +var + AArticulo: IBizArticulo; +begin +{ + Aade el artculo con la referencia pasada por parametro a los detalles pasados por parametro + En el caso de asignar un AClienteID el articulo debe contener el descuento para ese cliente +} + Result := False; + BeginUpdate(ADetalles); + ShowHourglassCursor; + try + case TipoReferencia of + tCliente: AArticulo := FArticulosController.BuscarReferencia(Referencia, AClienteID); + tProveedor: AArticulo := FArticulosController.BuscarReferenciaProveedor(Referencia, AClienteID) + end; + + if Assigned(AArticulo) then + begin + AArticulo.DataTable.Active := True; + if (AArticulo.RecordCount > 0) then + begin + RellenarDetalle(ADetalles, AArticulo, ACantidad); + Result := True; + end; + end; + finally + EndUpdate(ADetalles); + HideHourglassCursor; + end; +end; + +procedure TControllerDetallesArticulos.RellenarOtros(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +begin +// Procedimiento que en los hijos se sobreescribir para rellenar otros campos segn necesidades +end; + +procedure TControllerDetallesArticulos.RellenarCantidad(ADetalles: IDAStronglyTypedDataTable; const ACantidad: Float); +begin + if Assigned(ADetalles) then + begin + ADetalles.DataTable.FieldByName(CAMPO_CANTIDAD).AsFloat := ACantidad; + end; +end; + +procedure TControllerDetallesArticulos.RellenarDetalle(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo; const ACantidad: Float); +begin + if Assigned(ADetalles) + and Assigned(AArticulos) then + begin + BeginUpdate(ADetalles); + try + if not ADetalles.DataTable.Editing then + ADetalles.DataTable.Edit; + + RellenarGenerales(ADetalles, AArticulos); + RellenarCantidad(ADetalles, ACantidad); + RellenarImportes(ADetalles, AArticulos); + RellenarOtros(ADetalles, AArticulos); + + ADetalles.DataTable.Post; + finally + EndUpdate(ADetalles); + end; + end; +end; + +procedure TControllerDetallesArticulos.RellenarGenerales(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +begin + if Assigned(AArticulos) then + begin + ADetalles.DataTable.FieldByName(CAMPO_ID_ARTICULOS).AsVariant := AArticulos.ID; + ADetalles.DataTable.FieldByName(CAMPO_REFERENCIA).AsVariant := AArticulos.REFERENCIA; + ADetalles.DataTable.FieldByName(CAMPO_REFERENCIA_PROVEEDOR).AsVariant := AArticulos.REFERENCIA_PROV; + ADetalles.DataTable.FieldByName(CAMPO_CONCEPTO).AsVariant := AArticulos.DESCRIPCION; + ADetalles.DataTable.FieldByName(CAMPO_UNIDADMEDIDA).AsVariant := AArticulos.UNIDAD_MEDIDA; + end; +end; + +procedure TControllerDetallesArticulos.RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +begin +// Procedimiento que en los hijos se sobreescribir para rellenar el campo importe segn necesidades +end; + +end. diff --git a/Source/Modulos/Articulos/Data/Articulos_data.bdsproj b/Source/Modulos/Articulos/Data/Articulos_data.bdsproj new file mode 100644 index 0000000..3ac864d --- /dev/null +++ b/Source/Modulos/Articulos/Data/Articulos_data.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + Articulos_data.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + True + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Articulos/Data/Articulos_data.dcu b/Source/Modulos/Articulos/Data/Articulos_data.dcu new file mode 100644 index 0000000..d04a457 Binary files /dev/null and b/Source/Modulos/Articulos/Data/Articulos_data.dcu differ diff --git a/Source/Modulos/Articulos/Data/Articulos_data.dpk b/Source/Modulos/Articulos/Data/Articulos_data.dpk new file mode 100644 index 0000000..c137fab Binary files /dev/null and b/Source/Modulos/Articulos/Data/Articulos_data.dpk differ diff --git a/Source/Modulos/Articulos/Data/Articulos_data.dproj b/Source/Modulos/Articulos/Data/Articulos_data.dproj new file mode 100644 index 0000000..12340c6 --- /dev/null +++ b/Source/Modulos/Articulos/Data/Articulos_data.dproj @@ -0,0 +1,548 @@ + + + {568778b1-e82d-41e9-b198-b7c58140e81b} + Articulos_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Articulos_data.bpl + + + 7.0 + False + False + False + True + 0 + True + True + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + False + True + True + True + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Articulos_data.dpk + Microsoft Office 2000 Sample Automation Server Wrapper Components + Microsoft Office XP Sample Automation Server Wrapper Components + + + + + + MainSource + + + +
DataModuleArticulos
+
+
+
+ diff --git a/Source/Modulos/Articulos/Data/Articulos_data.rc b/Source/Modulos/Articulos/Data/Articulos_data.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Articulos/Data/Articulos_data.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Articulos/Data/Articulos_data.res b/Source/Modulos/Articulos/Data/Articulos_data.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Articulos/Data/Articulos_data.res differ diff --git a/Source/Modulos/Articulos/Data/uDataModuleArticulos.dcu b/Source/Modulos/Articulos/Data/uDataModuleArticulos.dcu new file mode 100644 index 0000000..ca1f8f5 Binary files /dev/null and b/Source/Modulos/Articulos/Data/uDataModuleArticulos.dcu differ diff --git a/Source/Modulos/Articulos/Data/uDataModuleArticulos.dfm b/Source/Modulos/Articulos/Data/uDataModuleArticulos.dfm new file mode 100644 index 0000000..8c2060f --- /dev/null +++ b/Source/Modulos/Articulos/Data/uDataModuleArticulos.dfm @@ -0,0 +1,528 @@ +inherited DataModuleArticulos: TDataModuleArticulos + OnCreate = DAClientDataModuleCreate + Height = 468 + Width = 619 + object RORemoteService: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvArticulos' + Left = 48 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 84 + end + object rda_Articulos: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetDataCall.RemoteService = RORemoteService + UpdateDataCall.RemoteService = RORemoteService + GetScriptsCall.RemoteService = RORemoteService + RemoteService = RORemoteService + DataStreamer = Bin2DataStreamer + Left = 51 + Top = 151 + end + object tbl_Articulos: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ARTICULOS_ID' + Required = True + ServerAutoRefresh = True + DictionaryEntry = 'Articulos_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'Articulos_ID_EMPRESA' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + DictionaryEntry = 'Articulos_REFERENCIA' + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DisplayLabel = 'Descripci'#243'n' + DictionaryEntry = 'Articulos_DESCRIPCION' + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + DisplayLabel = 'Unidad de medida' + DictionaryEntry = 'Articulos_UNIDAD_MEDIDA' + end + item + Name = 'FAMILIA' + DataType = datString + Size = 255 + DisplayLabel = 'Familia' + DictionaryEntry = 'Articulos_FAMILIA' + end + item + Name = 'IMAGEN' + DataType = datBlob + DisplayLabel = 'Foto' + DictionaryEntry = 'Articulos_IMAGEN' + end + item + Name = 'COMISIONABLE' + DataType = datInteger + DisplayLabel = 'Comisionable' + DictionaryEntry = 'Articulos_COMISIONABLE' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'Articulos_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'Articulos_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'Articulos_USUARIO' + end + item + Name = 'REFERENCIA_PROV' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. proveedor' + DictionaryEntry = 'Articulos_REFERENCIA_PROVEEDOR' + end + item + Name = 'PRECIO_COSTE' + DataType = datCurrency + DisplayLabel = 'Importe' + DictionaryEntry = 'Articulos_PRECIO_COSTE' + end + item + Name = 'PRECIO_PORTE' + DataType = datCurrency + DisplayLabel = 'Precio porte' + DictionaryEntry = 'Articulos_PRECIO_PORTE' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DisplayLabel = 'Descuento' + DictionaryEntry = 'Articulos_DESCUENTO' + end + item + Name = 'PRECIO_NETO' + DataType = datCurrency + DecimalPrecision = 2 + DecimalScale = 2 + DisplayLabel = 'Precio neto' + DictionaryEntry = 'Articulos_PRECIO_NETO' + end + item + Name = 'INVENTARIABLE' + DataType = datSmallInt + DisplayLabel = 'Inventariable' + DictionaryEntry = 'Articulos_INVENTARIABLE' + end + item + Name = 'ELIMINADO' + DataType = datSmallInt + DisplayLabel = 'Eliminado' + DictionaryEntry = 'Articulos_ELIMINADO' + end + item + Name = 'FABRICANTE' + DataType = datString + Size = 255 + DisplayLabel = 'Fabricante' + DictionaryEntry = 'Articulos_FABRICANTE' + end + item + Name = 'REFERENCIA_FABR' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. fabricante' + DictionaryEntry = 'Articulos_REFERENCIA_FABR' + end + item + Name = 'PARAM_MARGEN' + DataType = datFloat + end + item + Name = 'PRECIO_PVP_VENTA' + DataType = datCurrency + DisplayLabel = 'Precio PVP (Solo suministro)' + Alignment = taRightJustify + ServerAutoRefresh = True + DictionaryEntry = 'Articulos_PRECIO_PVP_VENTA' + end + item + Name = 'TIEMPO' + DataType = datInteger + end + item + Name = 'PARAM_TIEMPO' + DataType = datFloat + DisplayLabel = 'Precio min' + Alignment = taRightJustify + DictionaryEntry = 'Articulos_PARAM_TIEMPO' + end + item + Name = 'MANO_OBRA' + DataType = datCurrency + DisplayLabel = 'Mano de obra' + Alignment = taRightJustify + DictionaryEntry = 'Articulos_MANO_OBRA' + end + item + Name = 'PRECIO_PVP_TOTAL' + DataType = datCurrency + DisplayLabel = 'Precio P.V.P (Total)' + Alignment = taRightJustify + ServerAutoRefresh = True + DictionaryEntry = 'Articulos_PRECIO_PVP_TOTAL' + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Articulos + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Articulos' + IndexDefs = <> + Left = 232 + Top = 96 + end + object ds_Articulos: TDADataSource + DataSet = tbl_Articulos.Dataset + DataTable = tbl_Articulos + Left = 232 + Top = 32 + end + object tbl_ProveedoresConArticulos: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end> + Params = < + item + Name = 'ID_EMPRESA' + Value = '' + ParamType = daptInput + end> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Articulos + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'ProveedoresConArticulos' + IndexDefs = <> + Left = 232 + Top = 248 + end + object ds_ProveedoresConArticulos: TDADataSource + DataSet = tbl_ProveedoresConArticulos.Dataset + DataTable = tbl_ProveedoresConArticulos + Left = 232 + Top = 192 + end + object tbl_Articulos_Proveedores: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ARTICULOS_PROVEEDORES_ID' + Required = True + InPrimaryKey = True + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + end + item + Name = 'REFERENCIA_PROV' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. proveedor' + DictionaryEntry = 'Articulos_REFERENCIA_PROVEEDOR' + end + item + Name = 'PRECIO_COSTE' + DataType = datCurrency + DisplayLabel = 'Importe' + DictionaryEntry = 'Articulos_PRECIO_COSTE' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DisplayLabel = 'Descuento' + DictionaryEntry = 'Articulos_DESCUENTO' + end + item + Name = 'PRECIO_NETO' + DataType = datCurrency + DecimalPrecision = 2 + DecimalScale = 2 + DisplayLabel = 'Precio neto' + DictionaryEntry = 'Articulos_PRECIO_NETO' + end + item + Name = 'PRECIO_PORTE' + DataType = datCurrency + DisplayLabel = 'Precio porte' + DictionaryEntry = 'Articulos_PRECIO_PORTE' + end + item + Name = 'PRECIO_PVP_VENTA' + DataType = datCurrency + DisplayLabel = 'Precio PVP (Solo suministro)' + Alignment = taRightJustify + ServerAutoRefresh = True + DictionaryEntry = 'Articulos_PRECIO_PVP_VENTA' + end + item + Name = 'PRECIO_PVP_TOTAL' + DataType = datCurrency + ServerAutoRefresh = True + end> + Params = <> + MasterMappingMode = mmWhere + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Articulos + MasterSource = ds_Articulos + MasterFields = 'ID' + DetailFields = 'ID_ARTICULO' + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Articulos_Proveedores' + IndexDefs = <> + Left = 368 + Top = 88 + end + object ds_Articulos_Proveedores: TDADataSource + DataSet = tbl_Articulos_Proveedores.Dataset + DataTable = tbl_Articulos_Proveedores + Left = 368 + Top = 32 + end + object tbl_ArticulosParaCompra: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ARTICULOS_ID' + Required = True + ServerAutoRefresh = True + DictionaryEntry = 'Articulos_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'Articulos_ID_EMPRESA' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + DictionaryEntry = 'Articulos_REFERENCIA' + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DisplayLabel = 'Descripci'#243'n' + DictionaryEntry = 'Articulos_DESCRIPCION' + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + DisplayLabel = 'Unidad de medida' + DictionaryEntry = 'Articulos_UNIDAD_MEDIDA' + end + item + Name = 'FAMILIA' + DataType = datString + Size = 255 + DisplayLabel = 'Familia' + DictionaryEntry = 'Articulos_FAMILIA' + end + item + Name = 'IMAGEN' + DataType = datBlob + DisplayLabel = 'Foto' + DictionaryEntry = 'Articulos_IMAGEN' + end + item + Name = 'COMISIONABLE' + DataType = datInteger + DisplayLabel = 'Comisionable' + DictionaryEntry = 'Articulos_COMISIONABLE' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'Articulos_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'Articulos_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'Articulos_USUARIO' + end + item + Name = 'REFERENCIA_PROV' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. proveedor' + DictionaryEntry = 'Articulos_REFERENCIA_PROVEEDOR' + end + item + Name = 'PRECIO_COSTE' + DataType = datCurrency + DisplayLabel = 'Importe' + DictionaryEntry = 'Articulos_PRECIO_COSTE' + end + item + Name = 'PRECIO_PORTE' + DataType = datCurrency + DisplayLabel = 'Precio porte' + DictionaryEntry = 'Articulos_PRECIO_PORTE' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DisplayLabel = 'Descuento' + DictionaryEntry = 'Articulos_DESCUENTO' + end + item + Name = 'PRECIO_NETO' + DataType = datCurrency + DecimalPrecision = 2 + DecimalScale = 2 + DisplayLabel = 'Precio neto' + DictionaryEntry = 'Articulos_PRECIO_NETO' + end + item + Name = 'INVENTARIABLE' + DataType = datSmallInt + DisplayLabel = 'Inventariable' + DictionaryEntry = 'Articulos_INVENTARIABLE' + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + end + item + Name = 'NOMBRE_PROVEEDOR' + DataType = datString + Size = 255 + end + item + Name = 'ELIMINADO' + DataType = datSmallInt + DisplayLabel = 'Eliminado' + DictionaryEntry = 'Articulos_ELIMINADO' + end + item + Name = 'FABRICANTE' + DataType = datString + Size = 255 + DisplayLabel = 'Fabricante' + DictionaryEntry = 'Articulos_FABRICANTE' + end + item + Name = 'REFERENCIA_FABR' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. fabricante' + DictionaryEntry = 'Articulos_REFERENCIA_FABR' + end + item + Name = 'PARAM_MARGEN' + DataType = datFloat + end + item + Name = 'PRECIO_PVP_VENTA' + DataType = datCurrency + DisplayLabel = 'Precio PVP (Solo suministro)' + Alignment = taRightJustify + ServerAutoRefresh = True + DictionaryEntry = 'Articulos_PRECIO_PVP_VENTA' + end + item + Name = 'TIEMPO' + DataType = datInteger + end + item + Name = 'PARAM_TIEMPO' + DataType = datFloat + DisplayLabel = 'Precio min' + Alignment = taRightJustify + DictionaryEntry = 'Articulos_PARAM_TIEMPO' + end + item + Name = 'MANO_OBRA' + DataType = datCurrency + DisplayLabel = 'Mano de obra' + Alignment = taRightJustify + DictionaryEntry = 'Articulos_MANO_OBRA' + end + item + Name = 'PRECIO_PVP_TOTAL' + DataType = datCurrency + DisplayLabel = 'Precio P.V.P (Total)' + Alignment = taRightJustify + ServerAutoRefresh = True + DictionaryEntry = 'Articulos_PRECIO_PVP_TOTAL' + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Articulos + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'ArticulosParaCompra' + IndexDefs = <> + Left = 416 + Top = 240 + end + object ds_ArticulosParaCompra: TDADataSource + DataSet = tbl_ArticulosParaCompra.Dataset + DataTable = tbl_ArticulosParaCompra + Left = 416 + Top = 192 + end +end diff --git a/Source/Modulos/Articulos/Data/uDataModuleArticulos.pas b/Source/Modulos/Articulos/Data/uDataModuleArticulos.pas new file mode 100644 index 0000000..2cdfecc --- /dev/null +++ b/Source/Modulos/Articulos/Data/uDataModuleArticulos.pas @@ -0,0 +1,140 @@ +unit uDataModuleArticulos; + +interface + +uses + SysUtils, Classes, DB, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uROWinInetHttpChannel, uROTypes, + uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, + uIDataModuleArticulos, uBizArticulos, uDataModuleBase, uDARemoteDataAdapter, + uDADataStreamer, uDABin2DataStreamer, uDAInterfaces, uDAMemDataTable, + uBizArticulosProveedores; + +type + TDataModuleArticulos = class(TDataModuleBase, IDataModuleArticulos) + RORemoteService: TRORemoteService; + Bin2DataStreamer: TDABin2DataStreamer; + rda_Articulos: TDARemoteDataAdapter; + tbl_Articulos: TDAMemDataTable; + ds_Articulos: TDADataSource; + tbl_ProveedoresConArticulos: TDAMemDataTable; + ds_ProveedoresConArticulos: TDADataSource; + tbl_Articulos_Proveedores: TDAMemDataTable; + ds_Articulos_Proveedores: TDADataSource; + tbl_ArticulosParaCompra: TDAMemDataTable; + ds_ArticulosParaCompra: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + private + function _GetProveedores : IBizArticulosProveedores; + + protected + procedure AsignarClaseNegocio(AArticulo: TDADataTable); virtual; + + public + function GetItems (const Tipo: TEnumArticulos) : IBizArticulo; + function GetItem(const ID : Integer) : IBizArticulo; + function NewItem : IBizArticulo; + function DarListaProveedoresConArticulos(const IDEmpresa: Integer) : TStringList; + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, + schArticulosClient_Intf; + +{ TdmArticulos } + +procedure TDataModuleArticulos.AsignarClaseNegocio(AArticulo: TDADataTable); +begin + AArticulo.BusinessRulesID := BIZ_CLIENT_ARTICULO; +end; + +procedure TDataModuleArticulos.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleArticulos.DarListaProveedoresConArticulos(const IDEmpresa: Integer): TStringList; +begin + Result := TStringList.Create; + Result.LoadFromStream((RORemoteService as IsrvArticulos).DarListaProveedoresConArticulos(IDEmpresa)); +end; + +function TDataModuleArticulos.NewItem: IBizArticulo; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleArticulos._GetProveedores: IBizArticulosProveedores; +var + AProveedores : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AProveedores := CloneDataTable(tbl_Articulos_Proveedores); + with AProveedores do + begin + BusinessRulesID := BIZ_CLIENT_ARTICULOS_PROVEEDORES; + DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; + end; + Result := (AProveedores as IBizArticulosProveedores); + finally + HideHourglassCursor; + end; + +end; + +function TDataModuleArticulos.GetItem(const ID: Integer): IBizArticulo; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := Self.GetItems(txArticulo); + + with Result.DataTable.DynamicWhere do + begin + // (ID = :ID) + Condicion := NewBinaryExpression(NewField('', fld_ArticulosID), NewConstant(ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TDataModuleArticulos.GetItems(const Tipo: TEnumArticulos): IBizArticulo; +var + AArticulo : TDAMemDataTable; +begin + ShowHourglassCursor; + try + case Tipo of + txArticulo: AArticulo := CloneDataTable(tbl_Articulos); + txProveedor: AArticulo := CloneDataTable(tbl_ArticulosParaCompra); + end; + + AsignarClaseNegocio(AArticulo); + + case Tipo of + txArticulo: TBizArticulo(AArticulo.BusinessEventsObj).Proveedores := _GetProveedores; + end; + + Result := (AArticulo as IBizArticulo); + + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Articulos/Model/Articulos_model.bdsproj b/Source/Modulos/Articulos/Model/Articulos_model.bdsproj new file mode 100644 index 0000000..f5c354a --- /dev/null +++ b/Source/Modulos/Articulos/Model/Articulos_model.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + Articulos_model.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + True + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Articulos/Model/Articulos_model.dcu b/Source/Modulos/Articulos/Model/Articulos_model.dcu new file mode 100644 index 0000000..ea5b3ab Binary files /dev/null and b/Source/Modulos/Articulos/Model/Articulos_model.dcu differ diff --git a/Source/Modulos/Articulos/Model/Articulos_model.dpk b/Source/Modulos/Articulos/Model/Articulos_model.dpk new file mode 100644 index 0000000..0041dd5 Binary files /dev/null and b/Source/Modulos/Articulos/Model/Articulos_model.dpk differ diff --git a/Source/Modulos/Articulos/Model/Articulos_model.dproj b/Source/Modulos/Articulos/Model/Articulos_model.dproj new file mode 100644 index 0000000..c517ac1 --- /dev/null +++ b/Source/Modulos/Articulos/Model/Articulos_model.dproj @@ -0,0 +1,557 @@ + + + + {e4f81792-84cf-4900-a6ab-18f6dd2c7ada} + Articulos_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Articulos_model.bpl + + + 7.0 + False + False + False + True + 0 + True + True + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + False + True + True + True + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Articulos_model.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Articulos/Model/Articulos_model.rc b/Source/Modulos/Articulos/Model/Articulos_model.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Articulos/Model/Articulos_model.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Articulos/Model/Articulos_model.res b/Source/Modulos/Articulos/Model/Articulos_model.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Articulos/Model/Articulos_model.res differ diff --git a/Source/Modulos/Articulos/Model/Data/uIDataModuleArticulos.dcu b/Source/Modulos/Articulos/Model/Data/uIDataModuleArticulos.dcu new file mode 100644 index 0000000..7cf316a Binary files /dev/null and b/Source/Modulos/Articulos/Model/Data/uIDataModuleArticulos.dcu differ diff --git a/Source/Modulos/Articulos/Model/Data/uIDataModuleArticulos.pas b/Source/Modulos/Articulos/Model/Data/uIDataModuleArticulos.pas new file mode 100644 index 0000000..b850ddb --- /dev/null +++ b/Source/Modulos/Articulos/Model/Data/uIDataModuleArticulos.pas @@ -0,0 +1,21 @@ +unit uIDataModuleArticulos; + +interface + +uses + uBizArticulos, Classes; + +type + TEnumArticulos = (txArticulo, txProveedor); + + IDataModuleArticulos = interface + ['{9047C468-78DE-404E-9047-1125B382FE3B}'] + function GetItems (const Tipo: TEnumArticulos) : IBizArticulo; + function GetItem(const ID : Integer) : IBizArticulo; + function NewItem : IBizArticulo; + function DarListaProveedoresConArticulos(const IDEmpresa: Integer) : TStringList; + end; + +implementation + +end. diff --git a/Source/Modulos/Articulos/Model/schArticulosClient_Intf.dcu b/Source/Modulos/Articulos/Model/schArticulosClient_Intf.dcu new file mode 100644 index 0000000..e72ee97 Binary files /dev/null and b/Source/Modulos/Articulos/Model/schArticulosClient_Intf.dcu differ diff --git a/Source/Modulos/Articulos/Model/schArticulosClient_Intf.pas b/Source/Modulos/Articulos/Model/schArticulosClient_Intf.pas new file mode 100644 index 0000000..25372a9 --- /dev/null +++ b/Source/Modulos/Articulos/Model/schArticulosClient_Intf.pas @@ -0,0 +1,2560 @@ +unit schArticulosClient_Intf; + +interface + +uses + Classes, DB, schBase_Intf, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_ProveedoresConArticulos = '{5C4B513D-A09F-4964-93E6-DD87A4AAA324}'; + RID_Articulos_Proveedores = '{C23E90C0-7019-447D-ACD4-12687E51658B}'; + RID_Articulos = '{730B578C-0743-43FF-87A3-1D580A528918}'; + RID_ArticulosParaCompra = '{CF8E3694-1AA8-41E9-B4D8-0A3A002BDCB9}'; + + { Data table names } + nme_ProveedoresConArticulos = 'ProveedoresConArticulos'; + nme_Articulos_Proveedores = 'Articulos_Proveedores'; + nme_Articulos = 'Articulos'; + nme_ArticulosParaCompra = 'ArticulosParaCompra'; + + { ProveedoresConArticulos fields } + fld_ProveedoresConArticulosID_PROVEEDOR = 'ID_PROVEEDOR'; + fld_ProveedoresConArticulosNOMBRE = 'NOMBRE'; + + { ProveedoresConArticulos field indexes } + idx_ProveedoresConArticulosID_PROVEEDOR = 0; + idx_ProveedoresConArticulosNOMBRE = 1; + + { Articulos_Proveedores fields } + fld_Articulos_ProveedoresID = 'ID'; + fld_Articulos_ProveedoresID_ARTICULO = 'ID_ARTICULO'; + fld_Articulos_ProveedoresID_PROVEEDOR = 'ID_PROVEEDOR'; + fld_Articulos_ProveedoresREFERENCIA_PROV = 'REFERENCIA_PROV'; + fld_Articulos_ProveedoresPRECIO_COSTE = 'PRECIO_COSTE'; + fld_Articulos_ProveedoresDESCUENTO = 'DESCUENTO'; + fld_Articulos_ProveedoresPRECIO_NETO = 'PRECIO_NETO'; + fld_Articulos_ProveedoresPRECIO_PORTE = 'PRECIO_PORTE'; + fld_Articulos_ProveedoresPRECIO_PVP_VENTA = 'PRECIO_PVP_VENTA'; + fld_Articulos_ProveedoresPRECIO_PVP_TOTAL = 'PRECIO_PVP_TOTAL'; + + { Articulos_Proveedores field indexes } + idx_Articulos_ProveedoresID = 0; + idx_Articulos_ProveedoresID_ARTICULO = 1; + idx_Articulos_ProveedoresID_PROVEEDOR = 2; + idx_Articulos_ProveedoresREFERENCIA_PROV = 3; + idx_Articulos_ProveedoresPRECIO_COSTE = 4; + idx_Articulos_ProveedoresDESCUENTO = 5; + idx_Articulos_ProveedoresPRECIO_NETO = 6; + idx_Articulos_ProveedoresPRECIO_PORTE = 7; + idx_Articulos_ProveedoresPRECIO_PVP_VENTA = 8; + idx_Articulos_ProveedoresPRECIO_PVP_TOTAL = 9; + + { Articulos fields } + fld_ArticulosID = 'ID'; + fld_ArticulosID_EMPRESA = 'ID_EMPRESA'; + fld_ArticulosREFERENCIA = 'REFERENCIA'; + fld_ArticulosDESCRIPCION = 'DESCRIPCION'; + fld_ArticulosUNIDAD_MEDIDA = 'UNIDAD_MEDIDA'; + fld_ArticulosFAMILIA = 'FAMILIA'; + fld_ArticulosIMAGEN = 'IMAGEN'; + fld_ArticulosCOMISIONABLE = 'COMISIONABLE'; + fld_ArticulosFECHA_ALTA = 'FECHA_ALTA'; + fld_ArticulosFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_ArticulosUSUARIO = 'USUARIO'; + fld_ArticulosREFERENCIA_PROV = 'REFERENCIA_PROV'; + fld_ArticulosPRECIO_COSTE = 'PRECIO_COSTE'; + fld_ArticulosPRECIO_PORTE = 'PRECIO_PORTE'; + fld_ArticulosDESCUENTO = 'DESCUENTO'; + fld_ArticulosPRECIO_NETO = 'PRECIO_NETO'; + fld_ArticulosINVENTARIABLE = 'INVENTARIABLE'; + fld_ArticulosELIMINADO = 'ELIMINADO'; + fld_ArticulosFABRICANTE = 'FABRICANTE'; + fld_ArticulosREFERENCIA_FABR = 'REFERENCIA_FABR'; + fld_ArticulosPARAM_MARGEN = 'PARAM_MARGEN'; + fld_ArticulosPRECIO_PVP_VENTA = 'PRECIO_PVP_VENTA'; + fld_ArticulosTIEMPO = 'TIEMPO'; + fld_ArticulosPARAM_TIEMPO = 'PARAM_TIEMPO'; + fld_ArticulosMANO_OBRA = 'MANO_OBRA'; + fld_ArticulosPRECIO_PVP_TOTAL = 'PRECIO_PVP_TOTAL'; + + { Articulos field indexes } + idx_ArticulosID = 0; + idx_ArticulosID_EMPRESA = 1; + idx_ArticulosREFERENCIA = 2; + idx_ArticulosDESCRIPCION = 3; + idx_ArticulosUNIDAD_MEDIDA = 4; + idx_ArticulosFAMILIA = 5; + idx_ArticulosIMAGEN = 6; + idx_ArticulosCOMISIONABLE = 7; + idx_ArticulosFECHA_ALTA = 8; + idx_ArticulosFECHA_MODIFICACION = 9; + idx_ArticulosUSUARIO = 10; + idx_ArticulosREFERENCIA_PROV = 11; + idx_ArticulosPRECIO_COSTE = 12; + idx_ArticulosPRECIO_PORTE = 13; + idx_ArticulosDESCUENTO = 14; + idx_ArticulosPRECIO_NETO = 15; + idx_ArticulosINVENTARIABLE = 16; + idx_ArticulosELIMINADO = 17; + idx_ArticulosFABRICANTE = 18; + idx_ArticulosREFERENCIA_FABR = 19; + idx_ArticulosPARAM_MARGEN = 20; + idx_ArticulosPRECIO_PVP_VENTA = 21; + idx_ArticulosTIEMPO = 22; + idx_ArticulosPARAM_TIEMPO = 23; + idx_ArticulosMANO_OBRA = 24; + idx_ArticulosPRECIO_PVP_TOTAL = 25; + + { ArticulosParaCompra fields } + fld_ArticulosParaCompraID = 'ID'; + fld_ArticulosParaCompraID_EMPRESA = 'ID_EMPRESA'; + fld_ArticulosParaCompraREFERENCIA = 'REFERENCIA'; + fld_ArticulosParaCompraDESCRIPCION = 'DESCRIPCION'; + fld_ArticulosParaCompraUNIDAD_MEDIDA = 'UNIDAD_MEDIDA'; + fld_ArticulosParaCompraFAMILIA = 'FAMILIA'; + fld_ArticulosParaCompraIMAGEN = 'IMAGEN'; + fld_ArticulosParaCompraCOMISIONABLE = 'COMISIONABLE'; + fld_ArticulosParaCompraFECHA_ALTA = 'FECHA_ALTA'; + fld_ArticulosParaCompraFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_ArticulosParaCompraUSUARIO = 'USUARIO'; + fld_ArticulosParaCompraREFERENCIA_PROV = 'REFERENCIA_PROV'; + fld_ArticulosParaCompraPRECIO_COSTE = 'PRECIO_COSTE'; + fld_ArticulosParaCompraPRECIO_PORTE = 'PRECIO_PORTE'; + fld_ArticulosParaCompraDESCUENTO = 'DESCUENTO'; + fld_ArticulosParaCompraPRECIO_NETO = 'PRECIO_NETO'; + fld_ArticulosParaCompraINVENTARIABLE = 'INVENTARIABLE'; + fld_ArticulosParaCompraID_PROVEEDOR = 'ID_PROVEEDOR'; + fld_ArticulosParaCompraNOMBRE_PROVEEDOR = 'NOMBRE_PROVEEDOR'; + fld_ArticulosParaCompraELIMINADO = 'ELIMINADO'; + fld_ArticulosParaCompraFABRICANTE = 'FABRICANTE'; + fld_ArticulosParaCompraREFERENCIA_FABR = 'REFERENCIA_FABR'; + fld_ArticulosParaCompraPARAM_MARGEN = 'PARAM_MARGEN'; + fld_ArticulosParaCompraPRECIO_PVP_VENTA = 'PRECIO_PVP_VENTA'; + fld_ArticulosParaCompraTIEMPO = 'TIEMPO'; + fld_ArticulosParaCompraPARAM_TIEMPO = 'PARAM_TIEMPO'; + fld_ArticulosParaCompraMANO_OBRA = 'MANO_OBRA'; + fld_ArticulosParaCompraPRECIO_PVP_TOTAL = 'PRECIO_PVP_TOTAL'; + fld_ArticulosParaCompraID_ARTICULO = 'ID_ARTICULO'; + + { ArticulosParaCompra field indexes } + idx_ArticulosParaCompraID = 0; + idx_ArticulosParaCompraID_EMPRESA = 1; + idx_ArticulosParaCompraREFERENCIA = 2; + idx_ArticulosParaCompraDESCRIPCION = 3; + idx_ArticulosParaCompraUNIDAD_MEDIDA = 4; + idx_ArticulosParaCompraFAMILIA = 5; + idx_ArticulosParaCompraIMAGEN = 6; + idx_ArticulosParaCompraCOMISIONABLE = 7; + idx_ArticulosParaCompraFECHA_ALTA = 8; + idx_ArticulosParaCompraFECHA_MODIFICACION = 9; + idx_ArticulosParaCompraUSUARIO = 10; + idx_ArticulosParaCompraREFERENCIA_PROV = 11; + idx_ArticulosParaCompraPRECIO_COSTE = 12; + idx_ArticulosParaCompraPRECIO_PORTE = 13; + idx_ArticulosParaCompraDESCUENTO = 14; + idx_ArticulosParaCompraPRECIO_NETO = 15; + idx_ArticulosParaCompraINVENTARIABLE = 16; + idx_ArticulosParaCompraID_PROVEEDOR = 17; + idx_ArticulosParaCompraNOMBRE_PROVEEDOR = 18; + idx_ArticulosParaCompraELIMINADO = 19; + idx_ArticulosParaCompraFABRICANTE = 20; + idx_ArticulosParaCompraREFERENCIA_FABR = 21; + idx_ArticulosParaCompraPARAM_MARGEN = 22; + idx_ArticulosParaCompraPRECIO_PVP_VENTA = 23; + idx_ArticulosParaCompraTIEMPO = 24; + idx_ArticulosParaCompraPARAM_TIEMPO = 25; + idx_ArticulosParaCompraMANO_OBRA = 26; + idx_ArticulosParaCompraPRECIO_PVP_TOTAL = 27; + idx_ArticulosParaCompraID_ARTICULO = 28; + +type + { IProveedoresConArticulos } + IProveedoresConArticulos = interface(IDAStronglyTypedDataTable) + ['{EE9B47ED-6CFF-405D-A2B1-027A58BF0562}'] + { Property getters and setters } + function GetID_PROVEEDORValue: Integer; + procedure SetID_PROVEEDORValue(const aValue: Integer); + function GetID_PROVEEDORIsNull: Boolean; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetNOMBREIsNull: Boolean; + procedure SetNOMBREIsNull(const aValue: Boolean); + + + { Properties } + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + end; + + { TProveedoresConArticulosDataTableRules } + TProveedoresConArticulosDataTableRules = class(TIntfObjectDADataTableRules, IProveedoresConArticulos) + private + protected + { Property getters and setters } + function GetID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetID_PROVEEDORIsNull: Boolean; virtual; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IArticulos_Proveedores } + IArticulos_Proveedores = interface(IDAStronglyTypedDataTable) + ['{202E2D67-E014-4CC6-8E1A-60E915C329A7}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_ARTICULOValue: Integer; + procedure SetID_ARTICULOValue(const aValue: Integer); + function GetID_ARTICULOIsNull: Boolean; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); + function GetID_PROVEEDORValue: Integer; + procedure SetID_PROVEEDORValue(const aValue: Integer); + function GetID_PROVEEDORIsNull: Boolean; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); + function GetREFERENCIA_PROVValue: String; + procedure SetREFERENCIA_PROVValue(const aValue: String); + function GetREFERENCIA_PROVIsNull: Boolean; + procedure SetREFERENCIA_PROVIsNull(const aValue: Boolean); + function GetPRECIO_COSTEValue: Currency; + procedure SetPRECIO_COSTEValue(const aValue: Currency); + function GetPRECIO_COSTEIsNull: Boolean; + procedure SetPRECIO_COSTEIsNull(const aValue: Boolean); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetDESCUENTOIsNull: Boolean; + procedure SetDESCUENTOIsNull(const aValue: Boolean); + function GetPRECIO_NETOValue: Currency; + procedure SetPRECIO_NETOValue(const aValue: Currency); + function GetPRECIO_NETOIsNull: Boolean; + procedure SetPRECIO_NETOIsNull(const aValue: Boolean); + function GetPRECIO_PORTEValue: Currency; + procedure SetPRECIO_PORTEValue(const aValue: Currency); + function GetPRECIO_PORTEIsNull: Boolean; + procedure SetPRECIO_PORTEIsNull(const aValue: Boolean); + function GetPRECIO_PVP_VENTAValue: Currency; + procedure SetPRECIO_PVP_VENTAValue(const aValue: Currency); + function GetPRECIO_PVP_VENTAIsNull: Boolean; + procedure SetPRECIO_PVP_VENTAIsNull(const aValue: Boolean); + function GetPRECIO_PVP_TOTALValue: Currency; + procedure SetPRECIO_PVP_TOTALValue(const aValue: Currency); + function GetPRECIO_PVP_TOTALIsNull: Boolean; + procedure SetPRECIO_PVP_TOTALIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull: Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property REFERENCIA_PROV: String read GetREFERENCIA_PROVValue write SetREFERENCIA_PROVValue; + property REFERENCIA_PROVIsNull: Boolean read GetREFERENCIA_PROVIsNull write SetREFERENCIA_PROVIsNull; + property PRECIO_COSTE: Currency read GetPRECIO_COSTEValue write SetPRECIO_COSTEValue; + property PRECIO_COSTEIsNull: Boolean read GetPRECIO_COSTEIsNull write SetPRECIO_COSTEIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property PRECIO_NETO: Currency read GetPRECIO_NETOValue write SetPRECIO_NETOValue; + property PRECIO_NETOIsNull: Boolean read GetPRECIO_NETOIsNull write SetPRECIO_NETOIsNull; + property PRECIO_PORTE: Currency read GetPRECIO_PORTEValue write SetPRECIO_PORTEValue; + property PRECIO_PORTEIsNull: Boolean read GetPRECIO_PORTEIsNull write SetPRECIO_PORTEIsNull; + property PRECIO_PVP_VENTA: Currency read GetPRECIO_PVP_VENTAValue write SetPRECIO_PVP_VENTAValue; + property PRECIO_PVP_VENTAIsNull: Boolean read GetPRECIO_PVP_VENTAIsNull write SetPRECIO_PVP_VENTAIsNull; + property PRECIO_PVP_TOTAL: Currency read GetPRECIO_PVP_TOTALValue write SetPRECIO_PVP_TOTALValue; + property PRECIO_PVP_TOTALIsNull: Boolean read GetPRECIO_PVP_TOTALIsNull write SetPRECIO_PVP_TOTALIsNull; + end; + + { TArticulos_ProveedoresDataTableRules } + TArticulos_ProveedoresDataTableRules = class(TIntfObjectDADataTableRules, IArticulos_Proveedores) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetID_ARTICULOIsNull: Boolean; virtual; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetID_PROVEEDORIsNull: Boolean; virtual; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_PROVValue: String; virtual; + procedure SetREFERENCIA_PROVValue(const aValue: String); virtual; + function GetREFERENCIA_PROVIsNull: Boolean; virtual; + procedure SetREFERENCIA_PROVIsNull(const aValue: Boolean); virtual; + function GetPRECIO_COSTEValue: Currency; virtual; + procedure SetPRECIO_COSTEValue(const aValue: Currency); virtual; + function GetPRECIO_COSTEIsNull: Boolean; virtual; + procedure SetPRECIO_COSTEIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetPRECIO_NETOValue: Currency; virtual; + procedure SetPRECIO_NETOValue(const aValue: Currency); virtual; + function GetPRECIO_NETOIsNull: Boolean; virtual; + procedure SetPRECIO_NETOIsNull(const aValue: Boolean); virtual; + function GetPRECIO_PORTEValue: Currency; virtual; + procedure SetPRECIO_PORTEValue(const aValue: Currency); virtual; + function GetPRECIO_PORTEIsNull: Boolean; virtual; + procedure SetPRECIO_PORTEIsNull(const aValue: Boolean); virtual; + function GetPRECIO_PVP_VENTAValue: Currency; virtual; + procedure SetPRECIO_PVP_VENTAValue(const aValue: Currency); virtual; + function GetPRECIO_PVP_VENTAIsNull: Boolean; virtual; + procedure SetPRECIO_PVP_VENTAIsNull(const aValue: Boolean); virtual; + function GetPRECIO_PVP_TOTALValue: Currency; virtual; + procedure SetPRECIO_PVP_TOTALValue(const aValue: Currency); virtual; + function GetPRECIO_PVP_TOTALIsNull: Boolean; virtual; + procedure SetPRECIO_PVP_TOTALIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull: Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property REFERENCIA_PROV: String read GetREFERENCIA_PROVValue write SetREFERENCIA_PROVValue; + property REFERENCIA_PROVIsNull: Boolean read GetREFERENCIA_PROVIsNull write SetREFERENCIA_PROVIsNull; + property PRECIO_COSTE: Currency read GetPRECIO_COSTEValue write SetPRECIO_COSTEValue; + property PRECIO_COSTEIsNull: Boolean read GetPRECIO_COSTEIsNull write SetPRECIO_COSTEIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property PRECIO_NETO: Currency read GetPRECIO_NETOValue write SetPRECIO_NETOValue; + property PRECIO_NETOIsNull: Boolean read GetPRECIO_NETOIsNull write SetPRECIO_NETOIsNull; + property PRECIO_PORTE: Currency read GetPRECIO_PORTEValue write SetPRECIO_PORTEValue; + property PRECIO_PORTEIsNull: Boolean read GetPRECIO_PORTEIsNull write SetPRECIO_PORTEIsNull; + property PRECIO_PVP_VENTA: Currency read GetPRECIO_PVP_VENTAValue write SetPRECIO_PVP_VENTAValue; + property PRECIO_PVP_VENTAIsNull: Boolean read GetPRECIO_PVP_VENTAIsNull write SetPRECIO_PVP_VENTAIsNull; + property PRECIO_PVP_TOTAL: Currency read GetPRECIO_PVP_TOTALValue write SetPRECIO_PVP_TOTALValue; + property PRECIO_PVP_TOTALIsNull: Boolean read GetPRECIO_PVP_TOTALIsNull write SetPRECIO_PVP_TOTALIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IArticulos } + IArticulos = interface(IDAStronglyTypedDataTable) + ['{92E42697-A92B-46A4-9A19-3214D8C788E6}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_EMPRESAIsNull: Boolean; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetDESCRIPCIONIsNull: Boolean; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); + function GetUNIDAD_MEDIDAValue: String; + procedure SetUNIDAD_MEDIDAValue(const aValue: String); + function GetUNIDAD_MEDIDAIsNull: Boolean; + procedure SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); + function GetFAMILIAValue: String; + procedure SetFAMILIAValue(const aValue: String); + function GetFAMILIAIsNull: Boolean; + procedure SetFAMILIAIsNull(const aValue: Boolean); + function GetIMAGENValue: IROStream; + function GetIMAGENIsNull: Boolean; + procedure SetIMAGENIsNull(const aValue: Boolean); + function GetCOMISIONABLEValue: Integer; + procedure SetCOMISIONABLEValue(const aValue: Integer); + function GetCOMISIONABLEIsNull: Boolean; + procedure SetCOMISIONABLEIsNull(const aValue: Boolean); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_ALTAIsNull: Boolean; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONIsNull: Boolean; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetUSUARIOIsNull: Boolean; + procedure SetUSUARIOIsNull(const aValue: Boolean); + function GetREFERENCIA_PROVValue: String; + procedure SetREFERENCIA_PROVValue(const aValue: String); + function GetREFERENCIA_PROVIsNull: Boolean; + procedure SetREFERENCIA_PROVIsNull(const aValue: Boolean); + function GetPRECIO_COSTEValue: Currency; + procedure SetPRECIO_COSTEValue(const aValue: Currency); + function GetPRECIO_COSTEIsNull: Boolean; + procedure SetPRECIO_COSTEIsNull(const aValue: Boolean); + function GetPRECIO_PORTEValue: Currency; + procedure SetPRECIO_PORTEValue(const aValue: Currency); + function GetPRECIO_PORTEIsNull: Boolean; + procedure SetPRECIO_PORTEIsNull(const aValue: Boolean); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetDESCUENTOIsNull: Boolean; + procedure SetDESCUENTOIsNull(const aValue: Boolean); + function GetPRECIO_NETOValue: Currency; + procedure SetPRECIO_NETOValue(const aValue: Currency); + function GetPRECIO_NETOIsNull: Boolean; + procedure SetPRECIO_NETOIsNull(const aValue: Boolean); + function GetINVENTARIABLEValue: SmallInt; + procedure SetINVENTARIABLEValue(const aValue: SmallInt); + function GetINVENTARIABLEIsNull: Boolean; + procedure SetINVENTARIABLEIsNull(const aValue: Boolean); + function GetELIMINADOValue: SmallInt; + procedure SetELIMINADOValue(const aValue: SmallInt); + function GetELIMINADOIsNull: Boolean; + procedure SetELIMINADOIsNull(const aValue: Boolean); + function GetFABRICANTEValue: String; + procedure SetFABRICANTEValue(const aValue: String); + function GetFABRICANTEIsNull: Boolean; + procedure SetFABRICANTEIsNull(const aValue: Boolean); + function GetREFERENCIA_FABRValue: String; + procedure SetREFERENCIA_FABRValue(const aValue: String); + function GetREFERENCIA_FABRIsNull: Boolean; + procedure SetREFERENCIA_FABRIsNull(const aValue: Boolean); + function GetPARAM_MARGENValue: Float; + procedure SetPARAM_MARGENValue(const aValue: Float); + function GetPARAM_MARGENIsNull: Boolean; + procedure SetPARAM_MARGENIsNull(const aValue: Boolean); + function GetPRECIO_PVP_VENTAValue: Currency; + procedure SetPRECIO_PVP_VENTAValue(const aValue: Currency); + function GetPRECIO_PVP_VENTAIsNull: Boolean; + procedure SetPRECIO_PVP_VENTAIsNull(const aValue: Boolean); + function GetTIEMPOValue: Integer; + procedure SetTIEMPOValue(const aValue: Integer); + function GetTIEMPOIsNull: Boolean; + procedure SetTIEMPOIsNull(const aValue: Boolean); + function GetPARAM_TIEMPOValue: Float; + procedure SetPARAM_TIEMPOValue(const aValue: Float); + function GetPARAM_TIEMPOIsNull: Boolean; + procedure SetPARAM_TIEMPOIsNull(const aValue: Boolean); + function GetMANO_OBRAValue: Currency; + procedure SetMANO_OBRAValue(const aValue: Currency); + function GetMANO_OBRAIsNull: Boolean; + procedure SetMANO_OBRAIsNull(const aValue: Boolean); + function GetPRECIO_PVP_TOTALValue: Currency; + procedure SetPRECIO_PVP_TOTALValue(const aValue: Currency); + function GetPRECIO_PVP_TOTALIsNull: Boolean; + procedure SetPRECIO_PVP_TOTALIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property UNIDAD_MEDIDA: String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue; + property UNIDAD_MEDIDAIsNull: Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull; + property FAMILIA: String read GetFAMILIAValue write SetFAMILIAValue; + property FAMILIAIsNull: Boolean read GetFAMILIAIsNull write SetFAMILIAIsNull; + property IMAGEN: IROStream read GetIMAGENValue; + property IMAGENIsNull: Boolean read GetIMAGENIsNull write SetIMAGENIsNull; + property COMISIONABLE: Integer read GetCOMISIONABLEValue write SetCOMISIONABLEValue; + property COMISIONABLEIsNull: Boolean read GetCOMISIONABLEIsNull write SetCOMISIONABLEIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property REFERENCIA_PROV: String read GetREFERENCIA_PROVValue write SetREFERENCIA_PROVValue; + property REFERENCIA_PROVIsNull: Boolean read GetREFERENCIA_PROVIsNull write SetREFERENCIA_PROVIsNull; + property PRECIO_COSTE: Currency read GetPRECIO_COSTEValue write SetPRECIO_COSTEValue; + property PRECIO_COSTEIsNull: Boolean read GetPRECIO_COSTEIsNull write SetPRECIO_COSTEIsNull; + property PRECIO_PORTE: Currency read GetPRECIO_PORTEValue write SetPRECIO_PORTEValue; + property PRECIO_PORTEIsNull: Boolean read GetPRECIO_PORTEIsNull write SetPRECIO_PORTEIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property PRECIO_NETO: Currency read GetPRECIO_NETOValue write SetPRECIO_NETOValue; + property PRECIO_NETOIsNull: Boolean read GetPRECIO_NETOIsNull write SetPRECIO_NETOIsNull; + property INVENTARIABLE: SmallInt read GetINVENTARIABLEValue write SetINVENTARIABLEValue; + property INVENTARIABLEIsNull: Boolean read GetINVENTARIABLEIsNull write SetINVENTARIABLEIsNull; + property ELIMINADO: SmallInt read GetELIMINADOValue write SetELIMINADOValue; + property ELIMINADOIsNull: Boolean read GetELIMINADOIsNull write SetELIMINADOIsNull; + property FABRICANTE: String read GetFABRICANTEValue write SetFABRICANTEValue; + property FABRICANTEIsNull: Boolean read GetFABRICANTEIsNull write SetFABRICANTEIsNull; + property REFERENCIA_FABR: String read GetREFERENCIA_FABRValue write SetREFERENCIA_FABRValue; + property REFERENCIA_FABRIsNull: Boolean read GetREFERENCIA_FABRIsNull write SetREFERENCIA_FABRIsNull; + property PARAM_MARGEN: Float read GetPARAM_MARGENValue write SetPARAM_MARGENValue; + property PARAM_MARGENIsNull: Boolean read GetPARAM_MARGENIsNull write SetPARAM_MARGENIsNull; + property PRECIO_PVP_VENTA: Currency read GetPRECIO_PVP_VENTAValue write SetPRECIO_PVP_VENTAValue; + property PRECIO_PVP_VENTAIsNull: Boolean read GetPRECIO_PVP_VENTAIsNull write SetPRECIO_PVP_VENTAIsNull; + property TIEMPO: Integer read GetTIEMPOValue write SetTIEMPOValue; + property TIEMPOIsNull: Boolean read GetTIEMPOIsNull write SetTIEMPOIsNull; + property PARAM_TIEMPO: Float read GetPARAM_TIEMPOValue write SetPARAM_TIEMPOValue; + property PARAM_TIEMPOIsNull: Boolean read GetPARAM_TIEMPOIsNull write SetPARAM_TIEMPOIsNull; + property MANO_OBRA: Currency read GetMANO_OBRAValue write SetMANO_OBRAValue; + property MANO_OBRAIsNull: Boolean read GetMANO_OBRAIsNull write SetMANO_OBRAIsNull; + property PRECIO_PVP_TOTAL: Currency read GetPRECIO_PVP_TOTALValue write SetPRECIO_PVP_TOTALValue; + property PRECIO_PVP_TOTALIsNull: Boolean read GetPRECIO_PVP_TOTALIsNull write SetPRECIO_PVP_TOTALIsNull; + end; + + { TArticulosDataTableRules } + TArticulosDataTableRules = class(TIntfObjectDADataTableRules, IArticulos) + private + f_IMAGEN: IROStream; + procedure IMAGEN_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + function GetUNIDAD_MEDIDAValue: String; virtual; + procedure SetUNIDAD_MEDIDAValue(const aValue: String); virtual; + function GetUNIDAD_MEDIDAIsNull: Boolean; virtual; + procedure SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); virtual; + function GetFAMILIAValue: String; virtual; + procedure SetFAMILIAValue(const aValue: String); virtual; + function GetFAMILIAIsNull: Boolean; virtual; + procedure SetFAMILIAIsNull(const aValue: Boolean); virtual; + function GetIMAGENValue: IROStream; virtual; + function GetIMAGENIsNull: Boolean; virtual; + procedure SetIMAGENIsNull(const aValue: Boolean); virtual; + function GetCOMISIONABLEValue: Integer; virtual; + procedure SetCOMISIONABLEValue(const aValue: Integer); virtual; + function GetCOMISIONABLEIsNull: Boolean; virtual; + procedure SetCOMISIONABLEIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_PROVValue: String; virtual; + procedure SetREFERENCIA_PROVValue(const aValue: String); virtual; + function GetREFERENCIA_PROVIsNull: Boolean; virtual; + procedure SetREFERENCIA_PROVIsNull(const aValue: Boolean); virtual; + function GetPRECIO_COSTEValue: Currency; virtual; + procedure SetPRECIO_COSTEValue(const aValue: Currency); virtual; + function GetPRECIO_COSTEIsNull: Boolean; virtual; + procedure SetPRECIO_COSTEIsNull(const aValue: Boolean); virtual; + function GetPRECIO_PORTEValue: Currency; virtual; + procedure SetPRECIO_PORTEValue(const aValue: Currency); virtual; + function GetPRECIO_PORTEIsNull: Boolean; virtual; + procedure SetPRECIO_PORTEIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetPRECIO_NETOValue: Currency; virtual; + procedure SetPRECIO_NETOValue(const aValue: Currency); virtual; + function GetPRECIO_NETOIsNull: Boolean; virtual; + procedure SetPRECIO_NETOIsNull(const aValue: Boolean); virtual; + function GetINVENTARIABLEValue: SmallInt; virtual; + procedure SetINVENTARIABLEValue(const aValue: SmallInt); virtual; + function GetINVENTARIABLEIsNull: Boolean; virtual; + procedure SetINVENTARIABLEIsNull(const aValue: Boolean); virtual; + function GetELIMINADOValue: SmallInt; virtual; + procedure SetELIMINADOValue(const aValue: SmallInt); virtual; + function GetELIMINADOIsNull: Boolean; virtual; + procedure SetELIMINADOIsNull(const aValue: Boolean); virtual; + function GetFABRICANTEValue: String; virtual; + procedure SetFABRICANTEValue(const aValue: String); virtual; + function GetFABRICANTEIsNull: Boolean; virtual; + procedure SetFABRICANTEIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_FABRValue: String; virtual; + procedure SetREFERENCIA_FABRValue(const aValue: String); virtual; + function GetREFERENCIA_FABRIsNull: Boolean; virtual; + procedure SetREFERENCIA_FABRIsNull(const aValue: Boolean); virtual; + function GetPARAM_MARGENValue: Float; virtual; + procedure SetPARAM_MARGENValue(const aValue: Float); virtual; + function GetPARAM_MARGENIsNull: Boolean; virtual; + procedure SetPARAM_MARGENIsNull(const aValue: Boolean); virtual; + function GetPRECIO_PVP_VENTAValue: Currency; virtual; + procedure SetPRECIO_PVP_VENTAValue(const aValue: Currency); virtual; + function GetPRECIO_PVP_VENTAIsNull: Boolean; virtual; + procedure SetPRECIO_PVP_VENTAIsNull(const aValue: Boolean); virtual; + function GetTIEMPOValue: Integer; virtual; + procedure SetTIEMPOValue(const aValue: Integer); virtual; + function GetTIEMPOIsNull: Boolean; virtual; + procedure SetTIEMPOIsNull(const aValue: Boolean); virtual; + function GetPARAM_TIEMPOValue: Float; virtual; + procedure SetPARAM_TIEMPOValue(const aValue: Float); virtual; + function GetPARAM_TIEMPOIsNull: Boolean; virtual; + procedure SetPARAM_TIEMPOIsNull(const aValue: Boolean); virtual; + function GetMANO_OBRAValue: Currency; virtual; + procedure SetMANO_OBRAValue(const aValue: Currency); virtual; + function GetMANO_OBRAIsNull: Boolean; virtual; + procedure SetMANO_OBRAIsNull(const aValue: Boolean); virtual; + function GetPRECIO_PVP_TOTALValue: Currency; virtual; + procedure SetPRECIO_PVP_TOTALValue(const aValue: Currency); virtual; + function GetPRECIO_PVP_TOTALIsNull: Boolean; virtual; + procedure SetPRECIO_PVP_TOTALIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property UNIDAD_MEDIDA: String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue; + property UNIDAD_MEDIDAIsNull: Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull; + property FAMILIA: String read GetFAMILIAValue write SetFAMILIAValue; + property FAMILIAIsNull: Boolean read GetFAMILIAIsNull write SetFAMILIAIsNull; + property IMAGEN: IROStream read GetIMAGENValue; + property IMAGENIsNull: Boolean read GetIMAGENIsNull write SetIMAGENIsNull; + property COMISIONABLE: Integer read GetCOMISIONABLEValue write SetCOMISIONABLEValue; + property COMISIONABLEIsNull: Boolean read GetCOMISIONABLEIsNull write SetCOMISIONABLEIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property REFERENCIA_PROV: String read GetREFERENCIA_PROVValue write SetREFERENCIA_PROVValue; + property REFERENCIA_PROVIsNull: Boolean read GetREFERENCIA_PROVIsNull write SetREFERENCIA_PROVIsNull; + property PRECIO_COSTE: Currency read GetPRECIO_COSTEValue write SetPRECIO_COSTEValue; + property PRECIO_COSTEIsNull: Boolean read GetPRECIO_COSTEIsNull write SetPRECIO_COSTEIsNull; + property PRECIO_PORTE: Currency read GetPRECIO_PORTEValue write SetPRECIO_PORTEValue; + property PRECIO_PORTEIsNull: Boolean read GetPRECIO_PORTEIsNull write SetPRECIO_PORTEIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property PRECIO_NETO: Currency read GetPRECIO_NETOValue write SetPRECIO_NETOValue; + property PRECIO_NETOIsNull: Boolean read GetPRECIO_NETOIsNull write SetPRECIO_NETOIsNull; + property INVENTARIABLE: SmallInt read GetINVENTARIABLEValue write SetINVENTARIABLEValue; + property INVENTARIABLEIsNull: Boolean read GetINVENTARIABLEIsNull write SetINVENTARIABLEIsNull; + property ELIMINADO: SmallInt read GetELIMINADOValue write SetELIMINADOValue; + property ELIMINADOIsNull: Boolean read GetELIMINADOIsNull write SetELIMINADOIsNull; + property FABRICANTE: String read GetFABRICANTEValue write SetFABRICANTEValue; + property FABRICANTEIsNull: Boolean read GetFABRICANTEIsNull write SetFABRICANTEIsNull; + property REFERENCIA_FABR: String read GetREFERENCIA_FABRValue write SetREFERENCIA_FABRValue; + property REFERENCIA_FABRIsNull: Boolean read GetREFERENCIA_FABRIsNull write SetREFERENCIA_FABRIsNull; + property PARAM_MARGEN: Float read GetPARAM_MARGENValue write SetPARAM_MARGENValue; + property PARAM_MARGENIsNull: Boolean read GetPARAM_MARGENIsNull write SetPARAM_MARGENIsNull; + property PRECIO_PVP_VENTA: Currency read GetPRECIO_PVP_VENTAValue write SetPRECIO_PVP_VENTAValue; + property PRECIO_PVP_VENTAIsNull: Boolean read GetPRECIO_PVP_VENTAIsNull write SetPRECIO_PVP_VENTAIsNull; + property TIEMPO: Integer read GetTIEMPOValue write SetTIEMPOValue; + property TIEMPOIsNull: Boolean read GetTIEMPOIsNull write SetTIEMPOIsNull; + property PARAM_TIEMPO: Float read GetPARAM_TIEMPOValue write SetPARAM_TIEMPOValue; + property PARAM_TIEMPOIsNull: Boolean read GetPARAM_TIEMPOIsNull write SetPARAM_TIEMPOIsNull; + property MANO_OBRA: Currency read GetMANO_OBRAValue write SetMANO_OBRAValue; + property MANO_OBRAIsNull: Boolean read GetMANO_OBRAIsNull write SetMANO_OBRAIsNull; + property PRECIO_PVP_TOTAL: Currency read GetPRECIO_PVP_TOTALValue write SetPRECIO_PVP_TOTALValue; + property PRECIO_PVP_TOTALIsNull: Boolean read GetPRECIO_PVP_TOTALIsNull write SetPRECIO_PVP_TOTALIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { + Esta tabla debe tener los mismos campos y orden de campos que 'Artculos' !!!! + } + { IArticulosParaCompra } + IArticulosParaCompra = interface(IDAStronglyTypedDataTable) + ['{3D547837-FB04-4E59-AD87-C00D844EE481}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_EMPRESAIsNull: Boolean; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetDESCRIPCIONIsNull: Boolean; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); + function GetUNIDAD_MEDIDAValue: String; + procedure SetUNIDAD_MEDIDAValue(const aValue: String); + function GetUNIDAD_MEDIDAIsNull: Boolean; + procedure SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); + function GetFAMILIAValue: String; + procedure SetFAMILIAValue(const aValue: String); + function GetFAMILIAIsNull: Boolean; + procedure SetFAMILIAIsNull(const aValue: Boolean); + function GetIMAGENValue: IROStream; + function GetIMAGENIsNull: Boolean; + procedure SetIMAGENIsNull(const aValue: Boolean); + function GetCOMISIONABLEValue: Integer; + procedure SetCOMISIONABLEValue(const aValue: Integer); + function GetCOMISIONABLEIsNull: Boolean; + procedure SetCOMISIONABLEIsNull(const aValue: Boolean); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_ALTAIsNull: Boolean; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONIsNull: Boolean; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetUSUARIOIsNull: Boolean; + procedure SetUSUARIOIsNull(const aValue: Boolean); + function GetREFERENCIA_PROVValue: String; + procedure SetREFERENCIA_PROVValue(const aValue: String); + function GetREFERENCIA_PROVIsNull: Boolean; + procedure SetREFERENCIA_PROVIsNull(const aValue: Boolean); + function GetPRECIO_COSTEValue: Currency; + procedure SetPRECIO_COSTEValue(const aValue: Currency); + function GetPRECIO_COSTEIsNull: Boolean; + procedure SetPRECIO_COSTEIsNull(const aValue: Boolean); + function GetPRECIO_PORTEValue: Currency; + procedure SetPRECIO_PORTEValue(const aValue: Currency); + function GetPRECIO_PORTEIsNull: Boolean; + procedure SetPRECIO_PORTEIsNull(const aValue: Boolean); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetDESCUENTOIsNull: Boolean; + procedure SetDESCUENTOIsNull(const aValue: Boolean); + function GetPRECIO_NETOValue: Currency; + procedure SetPRECIO_NETOValue(const aValue: Currency); + function GetPRECIO_NETOIsNull: Boolean; + procedure SetPRECIO_NETOIsNull(const aValue: Boolean); + function GetINVENTARIABLEValue: SmallInt; + procedure SetINVENTARIABLEValue(const aValue: SmallInt); + function GetINVENTARIABLEIsNull: Boolean; + procedure SetINVENTARIABLEIsNull(const aValue: Boolean); + function GetID_PROVEEDORValue: Integer; + procedure SetID_PROVEEDORValue(const aValue: Integer); + function GetID_PROVEEDORIsNull: Boolean; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); + function GetNOMBRE_PROVEEDORValue: String; + procedure SetNOMBRE_PROVEEDORValue(const aValue: String); + function GetNOMBRE_PROVEEDORIsNull: Boolean; + procedure SetNOMBRE_PROVEEDORIsNull(const aValue: Boolean); + function GetELIMINADOValue: SmallInt; + procedure SetELIMINADOValue(const aValue: SmallInt); + function GetELIMINADOIsNull: Boolean; + procedure SetELIMINADOIsNull(const aValue: Boolean); + function GetFABRICANTEValue: String; + procedure SetFABRICANTEValue(const aValue: String); + function GetFABRICANTEIsNull: Boolean; + procedure SetFABRICANTEIsNull(const aValue: Boolean); + function GetREFERENCIA_FABRValue: String; + procedure SetREFERENCIA_FABRValue(const aValue: String); + function GetREFERENCIA_FABRIsNull: Boolean; + procedure SetREFERENCIA_FABRIsNull(const aValue: Boolean); + function GetPARAM_MARGENValue: Float; + procedure SetPARAM_MARGENValue(const aValue: Float); + function GetPARAM_MARGENIsNull: Boolean; + procedure SetPARAM_MARGENIsNull(const aValue: Boolean); + function GetPRECIO_PVP_VENTAValue: Currency; + procedure SetPRECIO_PVP_VENTAValue(const aValue: Currency); + function GetPRECIO_PVP_VENTAIsNull: Boolean; + procedure SetPRECIO_PVP_VENTAIsNull(const aValue: Boolean); + function GetTIEMPOValue: Integer; + procedure SetTIEMPOValue(const aValue: Integer); + function GetTIEMPOIsNull: Boolean; + procedure SetTIEMPOIsNull(const aValue: Boolean); + function GetPARAM_TIEMPOValue: Float; + procedure SetPARAM_TIEMPOValue(const aValue: Float); + function GetPARAM_TIEMPOIsNull: Boolean; + procedure SetPARAM_TIEMPOIsNull(const aValue: Boolean); + function GetMANO_OBRAValue: Currency; + procedure SetMANO_OBRAValue(const aValue: Currency); + function GetMANO_OBRAIsNull: Boolean; + procedure SetMANO_OBRAIsNull(const aValue: Boolean); + function GetPRECIO_PVP_TOTALValue: Currency; + procedure SetPRECIO_PVP_TOTALValue(const aValue: Currency); + function GetPRECIO_PVP_TOTALIsNull: Boolean; + procedure SetPRECIO_PVP_TOTALIsNull(const aValue: Boolean); + function GetID_ARTICULOValue: Integer; + procedure SetID_ARTICULOValue(const aValue: Integer); + function GetID_ARTICULOIsNull: Boolean; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property UNIDAD_MEDIDA: String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue; + property UNIDAD_MEDIDAIsNull: Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull; + property FAMILIA: String read GetFAMILIAValue write SetFAMILIAValue; + property FAMILIAIsNull: Boolean read GetFAMILIAIsNull write SetFAMILIAIsNull; + property IMAGEN: IROStream read GetIMAGENValue; + property IMAGENIsNull: Boolean read GetIMAGENIsNull write SetIMAGENIsNull; + property COMISIONABLE: Integer read GetCOMISIONABLEValue write SetCOMISIONABLEValue; + property COMISIONABLEIsNull: Boolean read GetCOMISIONABLEIsNull write SetCOMISIONABLEIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property REFERENCIA_PROV: String read GetREFERENCIA_PROVValue write SetREFERENCIA_PROVValue; + property REFERENCIA_PROVIsNull: Boolean read GetREFERENCIA_PROVIsNull write SetREFERENCIA_PROVIsNull; + property PRECIO_COSTE: Currency read GetPRECIO_COSTEValue write SetPRECIO_COSTEValue; + property PRECIO_COSTEIsNull: Boolean read GetPRECIO_COSTEIsNull write SetPRECIO_COSTEIsNull; + property PRECIO_PORTE: Currency read GetPRECIO_PORTEValue write SetPRECIO_PORTEValue; + property PRECIO_PORTEIsNull: Boolean read GetPRECIO_PORTEIsNull write SetPRECIO_PORTEIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property PRECIO_NETO: Currency read GetPRECIO_NETOValue write SetPRECIO_NETOValue; + property PRECIO_NETOIsNull: Boolean read GetPRECIO_NETOIsNull write SetPRECIO_NETOIsNull; + property INVENTARIABLE: SmallInt read GetINVENTARIABLEValue write SetINVENTARIABLEValue; + property INVENTARIABLEIsNull: Boolean read GetINVENTARIABLEIsNull write SetINVENTARIABLEIsNull; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property NOMBRE_PROVEEDOR: String read GetNOMBRE_PROVEEDORValue write SetNOMBRE_PROVEEDORValue; + property NOMBRE_PROVEEDORIsNull: Boolean read GetNOMBRE_PROVEEDORIsNull write SetNOMBRE_PROVEEDORIsNull; + property ELIMINADO: SmallInt read GetELIMINADOValue write SetELIMINADOValue; + property ELIMINADOIsNull: Boolean read GetELIMINADOIsNull write SetELIMINADOIsNull; + property FABRICANTE: String read GetFABRICANTEValue write SetFABRICANTEValue; + property FABRICANTEIsNull: Boolean read GetFABRICANTEIsNull write SetFABRICANTEIsNull; + property REFERENCIA_FABR: String read GetREFERENCIA_FABRValue write SetREFERENCIA_FABRValue; + property REFERENCIA_FABRIsNull: Boolean read GetREFERENCIA_FABRIsNull write SetREFERENCIA_FABRIsNull; + property PARAM_MARGEN: Float read GetPARAM_MARGENValue write SetPARAM_MARGENValue; + property PARAM_MARGENIsNull: Boolean read GetPARAM_MARGENIsNull write SetPARAM_MARGENIsNull; + property PRECIO_PVP_VENTA: Currency read GetPRECIO_PVP_VENTAValue write SetPRECIO_PVP_VENTAValue; + property PRECIO_PVP_VENTAIsNull: Boolean read GetPRECIO_PVP_VENTAIsNull write SetPRECIO_PVP_VENTAIsNull; + property TIEMPO: Integer read GetTIEMPOValue write SetTIEMPOValue; + property TIEMPOIsNull: Boolean read GetTIEMPOIsNull write SetTIEMPOIsNull; + property PARAM_TIEMPO: Float read GetPARAM_TIEMPOValue write SetPARAM_TIEMPOValue; + property PARAM_TIEMPOIsNull: Boolean read GetPARAM_TIEMPOIsNull write SetPARAM_TIEMPOIsNull; + property MANO_OBRA: Currency read GetMANO_OBRAValue write SetMANO_OBRAValue; + property MANO_OBRAIsNull: Boolean read GetMANO_OBRAIsNull write SetMANO_OBRAIsNull; + property PRECIO_PVP_TOTAL: Currency read GetPRECIO_PVP_TOTALValue write SetPRECIO_PVP_TOTALValue; + property PRECIO_PVP_TOTALIsNull: Boolean read GetPRECIO_PVP_TOTALIsNull write SetPRECIO_PVP_TOTALIsNull; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull: Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + end; + + { TArticulosParaCompraDataTableRules } + TArticulosParaCompraDataTableRules = class(TIntfObjectDADataTableRules, IArticulosParaCompra) + private + f_IMAGEN: IROStream; + procedure IMAGEN_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + function GetUNIDAD_MEDIDAValue: String; virtual; + procedure SetUNIDAD_MEDIDAValue(const aValue: String); virtual; + function GetUNIDAD_MEDIDAIsNull: Boolean; virtual; + procedure SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); virtual; + function GetFAMILIAValue: String; virtual; + procedure SetFAMILIAValue(const aValue: String); virtual; + function GetFAMILIAIsNull: Boolean; virtual; + procedure SetFAMILIAIsNull(const aValue: Boolean); virtual; + function GetIMAGENValue: IROStream; virtual; + function GetIMAGENIsNull: Boolean; virtual; + procedure SetIMAGENIsNull(const aValue: Boolean); virtual; + function GetCOMISIONABLEValue: Integer; virtual; + procedure SetCOMISIONABLEValue(const aValue: Integer); virtual; + function GetCOMISIONABLEIsNull: Boolean; virtual; + procedure SetCOMISIONABLEIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_PROVValue: String; virtual; + procedure SetREFERENCIA_PROVValue(const aValue: String); virtual; + function GetREFERENCIA_PROVIsNull: Boolean; virtual; + procedure SetREFERENCIA_PROVIsNull(const aValue: Boolean); virtual; + function GetPRECIO_COSTEValue: Currency; virtual; + procedure SetPRECIO_COSTEValue(const aValue: Currency); virtual; + function GetPRECIO_COSTEIsNull: Boolean; virtual; + procedure SetPRECIO_COSTEIsNull(const aValue: Boolean); virtual; + function GetPRECIO_PORTEValue: Currency; virtual; + procedure SetPRECIO_PORTEValue(const aValue: Currency); virtual; + function GetPRECIO_PORTEIsNull: Boolean; virtual; + procedure SetPRECIO_PORTEIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetPRECIO_NETOValue: Currency; virtual; + procedure SetPRECIO_NETOValue(const aValue: Currency); virtual; + function GetPRECIO_NETOIsNull: Boolean; virtual; + procedure SetPRECIO_NETOIsNull(const aValue: Boolean); virtual; + function GetINVENTARIABLEValue: SmallInt; virtual; + procedure SetINVENTARIABLEValue(const aValue: SmallInt); virtual; + function GetINVENTARIABLEIsNull: Boolean; virtual; + procedure SetINVENTARIABLEIsNull(const aValue: Boolean); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetID_PROVEEDORIsNull: Boolean; virtual; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetNOMBRE_PROVEEDORValue: String; virtual; + procedure SetNOMBRE_PROVEEDORValue(const aValue: String); virtual; + function GetNOMBRE_PROVEEDORIsNull: Boolean; virtual; + procedure SetNOMBRE_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetELIMINADOValue: SmallInt; virtual; + procedure SetELIMINADOValue(const aValue: SmallInt); virtual; + function GetELIMINADOIsNull: Boolean; virtual; + procedure SetELIMINADOIsNull(const aValue: Boolean); virtual; + function GetFABRICANTEValue: String; virtual; + procedure SetFABRICANTEValue(const aValue: String); virtual; + function GetFABRICANTEIsNull: Boolean; virtual; + procedure SetFABRICANTEIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_FABRValue: String; virtual; + procedure SetREFERENCIA_FABRValue(const aValue: String); virtual; + function GetREFERENCIA_FABRIsNull: Boolean; virtual; + procedure SetREFERENCIA_FABRIsNull(const aValue: Boolean); virtual; + function GetPARAM_MARGENValue: Float; virtual; + procedure SetPARAM_MARGENValue(const aValue: Float); virtual; + function GetPARAM_MARGENIsNull: Boolean; virtual; + procedure SetPARAM_MARGENIsNull(const aValue: Boolean); virtual; + function GetPRECIO_PVP_VENTAValue: Currency; virtual; + procedure SetPRECIO_PVP_VENTAValue(const aValue: Currency); virtual; + function GetPRECIO_PVP_VENTAIsNull: Boolean; virtual; + procedure SetPRECIO_PVP_VENTAIsNull(const aValue: Boolean); virtual; + function GetTIEMPOValue: Integer; virtual; + procedure SetTIEMPOValue(const aValue: Integer); virtual; + function GetTIEMPOIsNull: Boolean; virtual; + procedure SetTIEMPOIsNull(const aValue: Boolean); virtual; + function GetPARAM_TIEMPOValue: Float; virtual; + procedure SetPARAM_TIEMPOValue(const aValue: Float); virtual; + function GetPARAM_TIEMPOIsNull: Boolean; virtual; + procedure SetPARAM_TIEMPOIsNull(const aValue: Boolean); virtual; + function GetMANO_OBRAValue: Currency; virtual; + procedure SetMANO_OBRAValue(const aValue: Currency); virtual; + function GetMANO_OBRAIsNull: Boolean; virtual; + procedure SetMANO_OBRAIsNull(const aValue: Boolean); virtual; + function GetPRECIO_PVP_TOTALValue: Currency; virtual; + procedure SetPRECIO_PVP_TOTALValue(const aValue: Currency); virtual; + function GetPRECIO_PVP_TOTALIsNull: Boolean; virtual; + procedure SetPRECIO_PVP_TOTALIsNull(const aValue: Boolean); virtual; + function GetID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetID_ARTICULOIsNull: Boolean; virtual; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property UNIDAD_MEDIDA: String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue; + property UNIDAD_MEDIDAIsNull: Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull; + property FAMILIA: String read GetFAMILIAValue write SetFAMILIAValue; + property FAMILIAIsNull: Boolean read GetFAMILIAIsNull write SetFAMILIAIsNull; + property IMAGEN: IROStream read GetIMAGENValue; + property IMAGENIsNull: Boolean read GetIMAGENIsNull write SetIMAGENIsNull; + property COMISIONABLE: Integer read GetCOMISIONABLEValue write SetCOMISIONABLEValue; + property COMISIONABLEIsNull: Boolean read GetCOMISIONABLEIsNull write SetCOMISIONABLEIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property REFERENCIA_PROV: String read GetREFERENCIA_PROVValue write SetREFERENCIA_PROVValue; + property REFERENCIA_PROVIsNull: Boolean read GetREFERENCIA_PROVIsNull write SetREFERENCIA_PROVIsNull; + property PRECIO_COSTE: Currency read GetPRECIO_COSTEValue write SetPRECIO_COSTEValue; + property PRECIO_COSTEIsNull: Boolean read GetPRECIO_COSTEIsNull write SetPRECIO_COSTEIsNull; + property PRECIO_PORTE: Currency read GetPRECIO_PORTEValue write SetPRECIO_PORTEValue; + property PRECIO_PORTEIsNull: Boolean read GetPRECIO_PORTEIsNull write SetPRECIO_PORTEIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property PRECIO_NETO: Currency read GetPRECIO_NETOValue write SetPRECIO_NETOValue; + property PRECIO_NETOIsNull: Boolean read GetPRECIO_NETOIsNull write SetPRECIO_NETOIsNull; + property INVENTARIABLE: SmallInt read GetINVENTARIABLEValue write SetINVENTARIABLEValue; + property INVENTARIABLEIsNull: Boolean read GetINVENTARIABLEIsNull write SetINVENTARIABLEIsNull; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property NOMBRE_PROVEEDOR: String read GetNOMBRE_PROVEEDORValue write SetNOMBRE_PROVEEDORValue; + property NOMBRE_PROVEEDORIsNull: Boolean read GetNOMBRE_PROVEEDORIsNull write SetNOMBRE_PROVEEDORIsNull; + property ELIMINADO: SmallInt read GetELIMINADOValue write SetELIMINADOValue; + property ELIMINADOIsNull: Boolean read GetELIMINADOIsNull write SetELIMINADOIsNull; + property FABRICANTE: String read GetFABRICANTEValue write SetFABRICANTEValue; + property FABRICANTEIsNull: Boolean read GetFABRICANTEIsNull write SetFABRICANTEIsNull; + property REFERENCIA_FABR: String read GetREFERENCIA_FABRValue write SetREFERENCIA_FABRValue; + property REFERENCIA_FABRIsNull: Boolean read GetREFERENCIA_FABRIsNull write SetREFERENCIA_FABRIsNull; + property PARAM_MARGEN: Float read GetPARAM_MARGENValue write SetPARAM_MARGENValue; + property PARAM_MARGENIsNull: Boolean read GetPARAM_MARGENIsNull write SetPARAM_MARGENIsNull; + property PRECIO_PVP_VENTA: Currency read GetPRECIO_PVP_VENTAValue write SetPRECIO_PVP_VENTAValue; + property PRECIO_PVP_VENTAIsNull: Boolean read GetPRECIO_PVP_VENTAIsNull write SetPRECIO_PVP_VENTAIsNull; + property TIEMPO: Integer read GetTIEMPOValue write SetTIEMPOValue; + property TIEMPOIsNull: Boolean read GetTIEMPOIsNull write SetTIEMPOIsNull; + property PARAM_TIEMPO: Float read GetPARAM_TIEMPOValue write SetPARAM_TIEMPOValue; + property PARAM_TIEMPOIsNull: Boolean read GetPARAM_TIEMPOIsNull write SetPARAM_TIEMPOIsNull; + property MANO_OBRA: Currency read GetMANO_OBRAValue write SetMANO_OBRAValue; + property MANO_OBRAIsNull: Boolean read GetMANO_OBRAIsNull write SetMANO_OBRAIsNull; + property PRECIO_PVP_TOTAL: Currency read GetPRECIO_PVP_TOTALValue write SetPRECIO_PVP_TOTALValue; + property PRECIO_PVP_TOTALIsNull: Boolean read GetPRECIO_PVP_TOTALIsNull write SetPRECIO_PVP_TOTALIsNull; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull: Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants, uROBinaryHelpers; + +{ TProveedoresConArticulosDataTableRules } +constructor TProveedoresConArticulosDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TProveedoresConArticulosDataTableRules.Destroy; +begin + inherited; +end; + +function TProveedoresConArticulosDataTableRules.GetID_PROVEEDORValue: Integer; +begin + result := DataTable.Fields[idx_ProveedoresConArticulosID_PROVEEDOR].AsInteger; +end; + +procedure TProveedoresConArticulosDataTableRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + DataTable.Fields[idx_ProveedoresConArticulosID_PROVEEDOR].AsInteger := aValue; +end; + +function TProveedoresConArticulosDataTableRules.GetID_PROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresConArticulosID_PROVEEDOR].IsNull; +end; + +procedure TProveedoresConArticulosDataTableRules.SetID_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresConArticulosID_PROVEEDOR].AsVariant := Null; +end; + +function TProveedoresConArticulosDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_ProveedoresConArticulosNOMBRE].AsString; +end; + +procedure TProveedoresConArticulosDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_ProveedoresConArticulosNOMBRE].AsString := aValue; +end; + +function TProveedoresConArticulosDataTableRules.GetNOMBREIsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresConArticulosNOMBRE].IsNull; +end; + +procedure TProveedoresConArticulosDataTableRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresConArticulosNOMBRE].AsVariant := Null; +end; + + +{ TArticulos_ProveedoresDataTableRules } +constructor TArticulos_ProveedoresDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TArticulos_ProveedoresDataTableRules.Destroy; +begin + inherited; +end; + +function TArticulos_ProveedoresDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_Articulos_ProveedoresID].AsInteger; +end; + +procedure TArticulos_ProveedoresDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_Articulos_ProveedoresID].AsInteger := aValue; +end; + +function TArticulos_ProveedoresDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_Articulos_ProveedoresID].IsNull; +end; + +procedure TArticulos_ProveedoresDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Articulos_ProveedoresID].AsVariant := Null; +end; + +function TArticulos_ProveedoresDataTableRules.GetID_ARTICULOValue: Integer; +begin + result := DataTable.Fields[idx_Articulos_ProveedoresID_ARTICULO].AsInteger; +end; + +procedure TArticulos_ProveedoresDataTableRules.SetID_ARTICULOValue(const aValue: Integer); +begin + DataTable.Fields[idx_Articulos_ProveedoresID_ARTICULO].AsInteger := aValue; +end; + +function TArticulos_ProveedoresDataTableRules.GetID_ARTICULOIsNull: boolean; +begin + result := DataTable.Fields[idx_Articulos_ProveedoresID_ARTICULO].IsNull; +end; + +procedure TArticulos_ProveedoresDataTableRules.SetID_ARTICULOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Articulos_ProveedoresID_ARTICULO].AsVariant := Null; +end; + +function TArticulos_ProveedoresDataTableRules.GetID_PROVEEDORValue: Integer; +begin + result := DataTable.Fields[idx_Articulos_ProveedoresID_PROVEEDOR].AsInteger; +end; + +procedure TArticulos_ProveedoresDataTableRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + DataTable.Fields[idx_Articulos_ProveedoresID_PROVEEDOR].AsInteger := aValue; +end; + +function TArticulos_ProveedoresDataTableRules.GetID_PROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_Articulos_ProveedoresID_PROVEEDOR].IsNull; +end; + +procedure TArticulos_ProveedoresDataTableRules.SetID_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Articulos_ProveedoresID_PROVEEDOR].AsVariant := Null; +end; + +function TArticulos_ProveedoresDataTableRules.GetREFERENCIA_PROVValue: String; +begin + result := DataTable.Fields[idx_Articulos_ProveedoresREFERENCIA_PROV].AsString; +end; + +procedure TArticulos_ProveedoresDataTableRules.SetREFERENCIA_PROVValue(const aValue: String); +begin + DataTable.Fields[idx_Articulos_ProveedoresREFERENCIA_PROV].AsString := aValue; +end; + +function TArticulos_ProveedoresDataTableRules.GetREFERENCIA_PROVIsNull: boolean; +begin + result := DataTable.Fields[idx_Articulos_ProveedoresREFERENCIA_PROV].IsNull; +end; + +procedure TArticulos_ProveedoresDataTableRules.SetREFERENCIA_PROVIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Articulos_ProveedoresREFERENCIA_PROV].AsVariant := Null; +end; + +function TArticulos_ProveedoresDataTableRules.GetPRECIO_COSTEValue: Currency; +begin + result := DataTable.Fields[idx_Articulos_ProveedoresPRECIO_COSTE].AsCurrency; +end; + +procedure TArticulos_ProveedoresDataTableRules.SetPRECIO_COSTEValue(const aValue: Currency); +begin + DataTable.Fields[idx_Articulos_ProveedoresPRECIO_COSTE].AsCurrency := aValue; +end; + +function TArticulos_ProveedoresDataTableRules.GetPRECIO_COSTEIsNull: boolean; +begin + result := DataTable.Fields[idx_Articulos_ProveedoresPRECIO_COSTE].IsNull; +end; + +procedure TArticulos_ProveedoresDataTableRules.SetPRECIO_COSTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Articulos_ProveedoresPRECIO_COSTE].AsVariant := Null; +end; + +function TArticulos_ProveedoresDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_Articulos_ProveedoresDESCUENTO].AsFloat; +end; + +procedure TArticulos_ProveedoresDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_Articulos_ProveedoresDESCUENTO].AsFloat := aValue; +end; + +function TArticulos_ProveedoresDataTableRules.GetDESCUENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_Articulos_ProveedoresDESCUENTO].IsNull; +end; + +procedure TArticulos_ProveedoresDataTableRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Articulos_ProveedoresDESCUENTO].AsVariant := Null; +end; + +function TArticulos_ProveedoresDataTableRules.GetPRECIO_NETOValue: Currency; +begin + result := DataTable.Fields[idx_Articulos_ProveedoresPRECIO_NETO].AsCurrency; +end; + +procedure TArticulos_ProveedoresDataTableRules.SetPRECIO_NETOValue(const aValue: Currency); +begin + DataTable.Fields[idx_Articulos_ProveedoresPRECIO_NETO].AsCurrency := aValue; +end; + +function TArticulos_ProveedoresDataTableRules.GetPRECIO_NETOIsNull: boolean; +begin + result := DataTable.Fields[idx_Articulos_ProveedoresPRECIO_NETO].IsNull; +end; + +procedure TArticulos_ProveedoresDataTableRules.SetPRECIO_NETOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Articulos_ProveedoresPRECIO_NETO].AsVariant := Null; +end; + +function TArticulos_ProveedoresDataTableRules.GetPRECIO_PORTEValue: Currency; +begin + result := DataTable.Fields[idx_Articulos_ProveedoresPRECIO_PORTE].AsCurrency; +end; + +procedure TArticulos_ProveedoresDataTableRules.SetPRECIO_PORTEValue(const aValue: Currency); +begin + DataTable.Fields[idx_Articulos_ProveedoresPRECIO_PORTE].AsCurrency := aValue; +end; + +function TArticulos_ProveedoresDataTableRules.GetPRECIO_PORTEIsNull: boolean; +begin + result := DataTable.Fields[idx_Articulos_ProveedoresPRECIO_PORTE].IsNull; +end; + +procedure TArticulos_ProveedoresDataTableRules.SetPRECIO_PORTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Articulos_ProveedoresPRECIO_PORTE].AsVariant := Null; +end; + +function TArticulos_ProveedoresDataTableRules.GetPRECIO_PVP_VENTAValue: Currency; +begin + result := DataTable.Fields[idx_Articulos_ProveedoresPRECIO_PVP_VENTA].AsCurrency; +end; + +procedure TArticulos_ProveedoresDataTableRules.SetPRECIO_PVP_VENTAValue(const aValue: Currency); +begin + DataTable.Fields[idx_Articulos_ProveedoresPRECIO_PVP_VENTA].AsCurrency := aValue; +end; + +function TArticulos_ProveedoresDataTableRules.GetPRECIO_PVP_VENTAIsNull: boolean; +begin + result := DataTable.Fields[idx_Articulos_ProveedoresPRECIO_PVP_VENTA].IsNull; +end; + +procedure TArticulos_ProveedoresDataTableRules.SetPRECIO_PVP_VENTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Articulos_ProveedoresPRECIO_PVP_VENTA].AsVariant := Null; +end; + +function TArticulos_ProveedoresDataTableRules.GetPRECIO_PVP_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_Articulos_ProveedoresPRECIO_PVP_TOTAL].AsCurrency; +end; + +procedure TArticulos_ProveedoresDataTableRules.SetPRECIO_PVP_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_Articulos_ProveedoresPRECIO_PVP_TOTAL].AsCurrency := aValue; +end; + +function TArticulos_ProveedoresDataTableRules.GetPRECIO_PVP_TOTALIsNull: boolean; +begin + result := DataTable.Fields[idx_Articulos_ProveedoresPRECIO_PVP_TOTAL].IsNull; +end; + +procedure TArticulos_ProveedoresDataTableRules.SetPRECIO_PVP_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Articulos_ProveedoresPRECIO_PVP_TOTAL].AsVariant := Null; +end; + + +{ TArticulosDataTableRules } +constructor TArticulosDataTableRules.Create(aDataTable: TDADataTable); +var + ROStream: TROStream; +begin + inherited; + + ROStream := TROStream.Create; + ROStream.OnChange := IMAGEN_OnChange; + f_IMAGEN := ROStream; +end; + +destructor TArticulosDataTableRules.Destroy; +begin + inherited; +end; + +procedure TArticulosDataTableRules.IMAGEN_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_ArticulosIMAGEN].LoadFromStream(TROStream(Sender)); +end; + +function TArticulosDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_ArticulosID].AsInteger; +end; + +procedure TArticulosDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_ArticulosID].AsInteger := aValue; +end; + +function TArticulosDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosID].IsNull; +end; + +procedure TArticulosDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosID].AsVariant := Null; +end; + +function TArticulosDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_ArticulosID_EMPRESA].AsInteger; +end; + +procedure TArticulosDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_ArticulosID_EMPRESA].AsInteger := aValue; +end; + +function TArticulosDataTableRules.GetID_EMPRESAIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosID_EMPRESA].IsNull; +end; + +procedure TArticulosDataTableRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosID_EMPRESA].AsVariant := Null; +end; + +function TArticulosDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_ArticulosREFERENCIA].AsString; +end; + +procedure TArticulosDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_ArticulosREFERENCIA].AsString := aValue; +end; + +function TArticulosDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosREFERENCIA].IsNull; +end; + +procedure TArticulosDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosREFERENCIA].AsVariant := Null; +end; + +function TArticulosDataTableRules.GetDESCRIPCIONValue: String; +begin + result := DataTable.Fields[idx_ArticulosDESCRIPCION].AsString; +end; + +procedure TArticulosDataTableRules.SetDESCRIPCIONValue(const aValue: String); +begin + DataTable.Fields[idx_ArticulosDESCRIPCION].AsString := aValue; +end; + +function TArticulosDataTableRules.GetDESCRIPCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosDESCRIPCION].IsNull; +end; + +procedure TArticulosDataTableRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosDESCRIPCION].AsVariant := Null; +end; + +function TArticulosDataTableRules.GetUNIDAD_MEDIDAValue: String; +begin + result := DataTable.Fields[idx_ArticulosUNIDAD_MEDIDA].AsString; +end; + +procedure TArticulosDataTableRules.SetUNIDAD_MEDIDAValue(const aValue: String); +begin + DataTable.Fields[idx_ArticulosUNIDAD_MEDIDA].AsString := aValue; +end; + +function TArticulosDataTableRules.GetUNIDAD_MEDIDAIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosUNIDAD_MEDIDA].IsNull; +end; + +procedure TArticulosDataTableRules.SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosUNIDAD_MEDIDA].AsVariant := Null; +end; + +function TArticulosDataTableRules.GetFAMILIAValue: String; +begin + result := DataTable.Fields[idx_ArticulosFAMILIA].AsString; +end; + +procedure TArticulosDataTableRules.SetFAMILIAValue(const aValue: String); +begin + DataTable.Fields[idx_ArticulosFAMILIA].AsString := aValue; +end; + +function TArticulosDataTableRules.GetFAMILIAIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosFAMILIA].IsNull; +end; + +procedure TArticulosDataTableRules.SetFAMILIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosFAMILIA].AsVariant := Null; +end; + +function TArticulosDataTableRules.GetIMAGENValue: IROStream; +begin + result := f_IMAGEN; + result.Position := 0; + if not Result.InUpdateMode then begin + DataTable.Fields[idx_ArticulosIMAGEN].SaveToStream(result); + result.Position := 0; + end; +end; + +function TArticulosDataTableRules.GetIMAGENIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosIMAGEN].IsNull; +end; + +procedure TArticulosDataTableRules.SetIMAGENIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosIMAGEN].AsVariant := Null; +end; + +function TArticulosDataTableRules.GetCOMISIONABLEValue: Integer; +begin + result := DataTable.Fields[idx_ArticulosCOMISIONABLE].AsInteger; +end; + +procedure TArticulosDataTableRules.SetCOMISIONABLEValue(const aValue: Integer); +begin + DataTable.Fields[idx_ArticulosCOMISIONABLE].AsInteger := aValue; +end; + +function TArticulosDataTableRules.GetCOMISIONABLEIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosCOMISIONABLE].IsNull; +end; + +procedure TArticulosDataTableRules.SetCOMISIONABLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosCOMISIONABLE].AsVariant := Null; +end; + +function TArticulosDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_ArticulosFECHA_ALTA].AsDateTime; +end; + +procedure TArticulosDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_ArticulosFECHA_ALTA].AsDateTime := aValue; +end; + +function TArticulosDataTableRules.GetFECHA_ALTAIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosFECHA_ALTA].IsNull; +end; + +procedure TArticulosDataTableRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosFECHA_ALTA].AsVariant := Null; +end; + +function TArticulosDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_ArticulosFECHA_MODIFICACION].AsDateTime; +end; + +procedure TArticulosDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_ArticulosFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TArticulosDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosFECHA_MODIFICACION].IsNull; +end; + +procedure TArticulosDataTableRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosFECHA_MODIFICACION].AsVariant := Null; +end; + +function TArticulosDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_ArticulosUSUARIO].AsString; +end; + +procedure TArticulosDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_ArticulosUSUARIO].AsString := aValue; +end; + +function TArticulosDataTableRules.GetUSUARIOIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosUSUARIO].IsNull; +end; + +procedure TArticulosDataTableRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosUSUARIO].AsVariant := Null; +end; + +function TArticulosDataTableRules.GetREFERENCIA_PROVValue: String; +begin + result := DataTable.Fields[idx_ArticulosREFERENCIA_PROV].AsString; +end; + +procedure TArticulosDataTableRules.SetREFERENCIA_PROVValue(const aValue: String); +begin + DataTable.Fields[idx_ArticulosREFERENCIA_PROV].AsString := aValue; +end; + +function TArticulosDataTableRules.GetREFERENCIA_PROVIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosREFERENCIA_PROV].IsNull; +end; + +procedure TArticulosDataTableRules.SetREFERENCIA_PROVIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosREFERENCIA_PROV].AsVariant := Null; +end; + +function TArticulosDataTableRules.GetPRECIO_COSTEValue: Currency; +begin + result := DataTable.Fields[idx_ArticulosPRECIO_COSTE].AsCurrency; +end; + +procedure TArticulosDataTableRules.SetPRECIO_COSTEValue(const aValue: Currency); +begin + DataTable.Fields[idx_ArticulosPRECIO_COSTE].AsCurrency := aValue; +end; + +function TArticulosDataTableRules.GetPRECIO_COSTEIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosPRECIO_COSTE].IsNull; +end; + +procedure TArticulosDataTableRules.SetPRECIO_COSTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosPRECIO_COSTE].AsVariant := Null; +end; + +function TArticulosDataTableRules.GetPRECIO_PORTEValue: Currency; +begin + result := DataTable.Fields[idx_ArticulosPRECIO_PORTE].AsCurrency; +end; + +procedure TArticulosDataTableRules.SetPRECIO_PORTEValue(const aValue: Currency); +begin + DataTable.Fields[idx_ArticulosPRECIO_PORTE].AsCurrency := aValue; +end; + +function TArticulosDataTableRules.GetPRECIO_PORTEIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosPRECIO_PORTE].IsNull; +end; + +procedure TArticulosDataTableRules.SetPRECIO_PORTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosPRECIO_PORTE].AsVariant := Null; +end; + +function TArticulosDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_ArticulosDESCUENTO].AsFloat; +end; + +procedure TArticulosDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_ArticulosDESCUENTO].AsFloat := aValue; +end; + +function TArticulosDataTableRules.GetDESCUENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosDESCUENTO].IsNull; +end; + +procedure TArticulosDataTableRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosDESCUENTO].AsVariant := Null; +end; + +function TArticulosDataTableRules.GetPRECIO_NETOValue: Currency; +begin + result := DataTable.Fields[idx_ArticulosPRECIO_NETO].AsCurrency; +end; + +procedure TArticulosDataTableRules.SetPRECIO_NETOValue(const aValue: Currency); +begin + DataTable.Fields[idx_ArticulosPRECIO_NETO].AsCurrency := aValue; +end; + +function TArticulosDataTableRules.GetPRECIO_NETOIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosPRECIO_NETO].IsNull; +end; + +procedure TArticulosDataTableRules.SetPRECIO_NETOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosPRECIO_NETO].AsVariant := Null; +end; + +function TArticulosDataTableRules.GetINVENTARIABLEValue: SmallInt; +begin + result := DataTable.Fields[idx_ArticulosINVENTARIABLE].AsSmallInt; +end; + +procedure TArticulosDataTableRules.SetINVENTARIABLEValue(const aValue: SmallInt); +begin + DataTable.Fields[idx_ArticulosINVENTARIABLE].AsSmallInt := aValue; +end; + +function TArticulosDataTableRules.GetINVENTARIABLEIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosINVENTARIABLE].IsNull; +end; + +procedure TArticulosDataTableRules.SetINVENTARIABLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosINVENTARIABLE].AsVariant := Null; +end; + +function TArticulosDataTableRules.GetELIMINADOValue: SmallInt; +begin + result := DataTable.Fields[idx_ArticulosELIMINADO].AsSmallInt; +end; + +procedure TArticulosDataTableRules.SetELIMINADOValue(const aValue: SmallInt); +begin + DataTable.Fields[idx_ArticulosELIMINADO].AsSmallInt := aValue; +end; + +function TArticulosDataTableRules.GetELIMINADOIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosELIMINADO].IsNull; +end; + +procedure TArticulosDataTableRules.SetELIMINADOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosELIMINADO].AsVariant := Null; +end; + +function TArticulosDataTableRules.GetFABRICANTEValue: String; +begin + result := DataTable.Fields[idx_ArticulosFABRICANTE].AsString; +end; + +procedure TArticulosDataTableRules.SetFABRICANTEValue(const aValue: String); +begin + DataTable.Fields[idx_ArticulosFABRICANTE].AsString := aValue; +end; + +function TArticulosDataTableRules.GetFABRICANTEIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosFABRICANTE].IsNull; +end; + +procedure TArticulosDataTableRules.SetFABRICANTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosFABRICANTE].AsVariant := Null; +end; + +function TArticulosDataTableRules.GetREFERENCIA_FABRValue: String; +begin + result := DataTable.Fields[idx_ArticulosREFERENCIA_FABR].AsString; +end; + +procedure TArticulosDataTableRules.SetREFERENCIA_FABRValue(const aValue: String); +begin + DataTable.Fields[idx_ArticulosREFERENCIA_FABR].AsString := aValue; +end; + +function TArticulosDataTableRules.GetREFERENCIA_FABRIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosREFERENCIA_FABR].IsNull; +end; + +procedure TArticulosDataTableRules.SetREFERENCIA_FABRIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosREFERENCIA_FABR].AsVariant := Null; +end; + +function TArticulosDataTableRules.GetPARAM_MARGENValue: Float; +begin + result := DataTable.Fields[idx_ArticulosPARAM_MARGEN].AsFloat; +end; + +procedure TArticulosDataTableRules.SetPARAM_MARGENValue(const aValue: Float); +begin + DataTable.Fields[idx_ArticulosPARAM_MARGEN].AsFloat := aValue; +end; + +function TArticulosDataTableRules.GetPARAM_MARGENIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosPARAM_MARGEN].IsNull; +end; + +procedure TArticulosDataTableRules.SetPARAM_MARGENIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosPARAM_MARGEN].AsVariant := Null; +end; + +function TArticulosDataTableRules.GetPRECIO_PVP_VENTAValue: Currency; +begin + result := DataTable.Fields[idx_ArticulosPRECIO_PVP_VENTA].AsCurrency; +end; + +procedure TArticulosDataTableRules.SetPRECIO_PVP_VENTAValue(const aValue: Currency); +begin + DataTable.Fields[idx_ArticulosPRECIO_PVP_VENTA].AsCurrency := aValue; +end; + +function TArticulosDataTableRules.GetPRECIO_PVP_VENTAIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosPRECIO_PVP_VENTA].IsNull; +end; + +procedure TArticulosDataTableRules.SetPRECIO_PVP_VENTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosPRECIO_PVP_VENTA].AsVariant := Null; +end; + +function TArticulosDataTableRules.GetTIEMPOValue: Integer; +begin + result := DataTable.Fields[idx_ArticulosTIEMPO].AsInteger; +end; + +procedure TArticulosDataTableRules.SetTIEMPOValue(const aValue: Integer); +begin + DataTable.Fields[idx_ArticulosTIEMPO].AsInteger := aValue; +end; + +function TArticulosDataTableRules.GetTIEMPOIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosTIEMPO].IsNull; +end; + +procedure TArticulosDataTableRules.SetTIEMPOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosTIEMPO].AsVariant := Null; +end; + +function TArticulosDataTableRules.GetPARAM_TIEMPOValue: Float; +begin + result := DataTable.Fields[idx_ArticulosPARAM_TIEMPO].AsFloat; +end; + +procedure TArticulosDataTableRules.SetPARAM_TIEMPOValue(const aValue: Float); +begin + DataTable.Fields[idx_ArticulosPARAM_TIEMPO].AsFloat := aValue; +end; + +function TArticulosDataTableRules.GetPARAM_TIEMPOIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosPARAM_TIEMPO].IsNull; +end; + +procedure TArticulosDataTableRules.SetPARAM_TIEMPOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosPARAM_TIEMPO].AsVariant := Null; +end; + +function TArticulosDataTableRules.GetMANO_OBRAValue: Currency; +begin + result := DataTable.Fields[idx_ArticulosMANO_OBRA].AsCurrency; +end; + +procedure TArticulosDataTableRules.SetMANO_OBRAValue(const aValue: Currency); +begin + DataTable.Fields[idx_ArticulosMANO_OBRA].AsCurrency := aValue; +end; + +function TArticulosDataTableRules.GetMANO_OBRAIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosMANO_OBRA].IsNull; +end; + +procedure TArticulosDataTableRules.SetMANO_OBRAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosMANO_OBRA].AsVariant := Null; +end; + +function TArticulosDataTableRules.GetPRECIO_PVP_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_ArticulosPRECIO_PVP_TOTAL].AsCurrency; +end; + +procedure TArticulosDataTableRules.SetPRECIO_PVP_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_ArticulosPRECIO_PVP_TOTAL].AsCurrency := aValue; +end; + +function TArticulosDataTableRules.GetPRECIO_PVP_TOTALIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosPRECIO_PVP_TOTAL].IsNull; +end; + +procedure TArticulosDataTableRules.SetPRECIO_PVP_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosPRECIO_PVP_TOTAL].AsVariant := Null; +end; + + +{ TArticulosParaCompraDataTableRules } +constructor TArticulosParaCompraDataTableRules.Create(aDataTable: TDADataTable); +var + ROStream: TROStream; +begin + inherited; + + ROStream := TROStream.Create; + ROStream.OnChange := IMAGEN_OnChange; + f_IMAGEN := ROStream; +end; + +destructor TArticulosParaCompraDataTableRules.Destroy; +begin + inherited; +end; + +procedure TArticulosParaCompraDataTableRules.IMAGEN_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_ArticulosParaCompraIMAGEN].LoadFromStream(TROStream(Sender)); +end; + +function TArticulosParaCompraDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_ArticulosParaCompraID].AsInteger; +end; + +procedure TArticulosParaCompraDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_ArticulosParaCompraID].AsInteger := aValue; +end; + +function TArticulosParaCompraDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosParaCompraID].IsNull; +end; + +procedure TArticulosParaCompraDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosParaCompraID].AsVariant := Null; +end; + +function TArticulosParaCompraDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_ArticulosParaCompraID_EMPRESA].AsInteger; +end; + +procedure TArticulosParaCompraDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_ArticulosParaCompraID_EMPRESA].AsInteger := aValue; +end; + +function TArticulosParaCompraDataTableRules.GetID_EMPRESAIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosParaCompraID_EMPRESA].IsNull; +end; + +procedure TArticulosParaCompraDataTableRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosParaCompraID_EMPRESA].AsVariant := Null; +end; + +function TArticulosParaCompraDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_ArticulosParaCompraREFERENCIA].AsString; +end; + +procedure TArticulosParaCompraDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_ArticulosParaCompraREFERENCIA].AsString := aValue; +end; + +function TArticulosParaCompraDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosParaCompraREFERENCIA].IsNull; +end; + +procedure TArticulosParaCompraDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosParaCompraREFERENCIA].AsVariant := Null; +end; + +function TArticulosParaCompraDataTableRules.GetDESCRIPCIONValue: String; +begin + result := DataTable.Fields[idx_ArticulosParaCompraDESCRIPCION].AsString; +end; + +procedure TArticulosParaCompraDataTableRules.SetDESCRIPCIONValue(const aValue: String); +begin + DataTable.Fields[idx_ArticulosParaCompraDESCRIPCION].AsString := aValue; +end; + +function TArticulosParaCompraDataTableRules.GetDESCRIPCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosParaCompraDESCRIPCION].IsNull; +end; + +procedure TArticulosParaCompraDataTableRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosParaCompraDESCRIPCION].AsVariant := Null; +end; + +function TArticulosParaCompraDataTableRules.GetUNIDAD_MEDIDAValue: String; +begin + result := DataTable.Fields[idx_ArticulosParaCompraUNIDAD_MEDIDA].AsString; +end; + +procedure TArticulosParaCompraDataTableRules.SetUNIDAD_MEDIDAValue(const aValue: String); +begin + DataTable.Fields[idx_ArticulosParaCompraUNIDAD_MEDIDA].AsString := aValue; +end; + +function TArticulosParaCompraDataTableRules.GetUNIDAD_MEDIDAIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosParaCompraUNIDAD_MEDIDA].IsNull; +end; + +procedure TArticulosParaCompraDataTableRules.SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosParaCompraUNIDAD_MEDIDA].AsVariant := Null; +end; + +function TArticulosParaCompraDataTableRules.GetFAMILIAValue: String; +begin + result := DataTable.Fields[idx_ArticulosParaCompraFAMILIA].AsString; +end; + +procedure TArticulosParaCompraDataTableRules.SetFAMILIAValue(const aValue: String); +begin + DataTable.Fields[idx_ArticulosParaCompraFAMILIA].AsString := aValue; +end; + +function TArticulosParaCompraDataTableRules.GetFAMILIAIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosParaCompraFAMILIA].IsNull; +end; + +procedure TArticulosParaCompraDataTableRules.SetFAMILIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosParaCompraFAMILIA].AsVariant := Null; +end; + +function TArticulosParaCompraDataTableRules.GetIMAGENValue: IROStream; +begin + result := f_IMAGEN; + result.Position := 0; + if not Result.InUpdateMode then begin + DataTable.Fields[idx_ArticulosParaCompraIMAGEN].SaveToStream(result); + result.Position := 0; + end; +end; + +function TArticulosParaCompraDataTableRules.GetIMAGENIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosParaCompraIMAGEN].IsNull; +end; + +procedure TArticulosParaCompraDataTableRules.SetIMAGENIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosParaCompraIMAGEN].AsVariant := Null; +end; + +function TArticulosParaCompraDataTableRules.GetCOMISIONABLEValue: Integer; +begin + result := DataTable.Fields[idx_ArticulosParaCompraCOMISIONABLE].AsInteger; +end; + +procedure TArticulosParaCompraDataTableRules.SetCOMISIONABLEValue(const aValue: Integer); +begin + DataTable.Fields[idx_ArticulosParaCompraCOMISIONABLE].AsInteger := aValue; +end; + +function TArticulosParaCompraDataTableRules.GetCOMISIONABLEIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosParaCompraCOMISIONABLE].IsNull; +end; + +procedure TArticulosParaCompraDataTableRules.SetCOMISIONABLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosParaCompraCOMISIONABLE].AsVariant := Null; +end; + +function TArticulosParaCompraDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_ArticulosParaCompraFECHA_ALTA].AsDateTime; +end; + +procedure TArticulosParaCompraDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_ArticulosParaCompraFECHA_ALTA].AsDateTime := aValue; +end; + +function TArticulosParaCompraDataTableRules.GetFECHA_ALTAIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosParaCompraFECHA_ALTA].IsNull; +end; + +procedure TArticulosParaCompraDataTableRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosParaCompraFECHA_ALTA].AsVariant := Null; +end; + +function TArticulosParaCompraDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_ArticulosParaCompraFECHA_MODIFICACION].AsDateTime; +end; + +procedure TArticulosParaCompraDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_ArticulosParaCompraFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TArticulosParaCompraDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosParaCompraFECHA_MODIFICACION].IsNull; +end; + +procedure TArticulosParaCompraDataTableRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosParaCompraFECHA_MODIFICACION].AsVariant := Null; +end; + +function TArticulosParaCompraDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_ArticulosParaCompraUSUARIO].AsString; +end; + +procedure TArticulosParaCompraDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_ArticulosParaCompraUSUARIO].AsString := aValue; +end; + +function TArticulosParaCompraDataTableRules.GetUSUARIOIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosParaCompraUSUARIO].IsNull; +end; + +procedure TArticulosParaCompraDataTableRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosParaCompraUSUARIO].AsVariant := Null; +end; + +function TArticulosParaCompraDataTableRules.GetREFERENCIA_PROVValue: String; +begin + result := DataTable.Fields[idx_ArticulosParaCompraREFERENCIA_PROV].AsString; +end; + +procedure TArticulosParaCompraDataTableRules.SetREFERENCIA_PROVValue(const aValue: String); +begin + DataTable.Fields[idx_ArticulosParaCompraREFERENCIA_PROV].AsString := aValue; +end; + +function TArticulosParaCompraDataTableRules.GetREFERENCIA_PROVIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosParaCompraREFERENCIA_PROV].IsNull; +end; + +procedure TArticulosParaCompraDataTableRules.SetREFERENCIA_PROVIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosParaCompraREFERENCIA_PROV].AsVariant := Null; +end; + +function TArticulosParaCompraDataTableRules.GetPRECIO_COSTEValue: Currency; +begin + result := DataTable.Fields[idx_ArticulosParaCompraPRECIO_COSTE].AsCurrency; +end; + +procedure TArticulosParaCompraDataTableRules.SetPRECIO_COSTEValue(const aValue: Currency); +begin + DataTable.Fields[idx_ArticulosParaCompraPRECIO_COSTE].AsCurrency := aValue; +end; + +function TArticulosParaCompraDataTableRules.GetPRECIO_COSTEIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosParaCompraPRECIO_COSTE].IsNull; +end; + +procedure TArticulosParaCompraDataTableRules.SetPRECIO_COSTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosParaCompraPRECIO_COSTE].AsVariant := Null; +end; + +function TArticulosParaCompraDataTableRules.GetPRECIO_PORTEValue: Currency; +begin + result := DataTable.Fields[idx_ArticulosParaCompraPRECIO_PORTE].AsCurrency; +end; + +procedure TArticulosParaCompraDataTableRules.SetPRECIO_PORTEValue(const aValue: Currency); +begin + DataTable.Fields[idx_ArticulosParaCompraPRECIO_PORTE].AsCurrency := aValue; +end; + +function TArticulosParaCompraDataTableRules.GetPRECIO_PORTEIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosParaCompraPRECIO_PORTE].IsNull; +end; + +procedure TArticulosParaCompraDataTableRules.SetPRECIO_PORTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosParaCompraPRECIO_PORTE].AsVariant := Null; +end; + +function TArticulosParaCompraDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_ArticulosParaCompraDESCUENTO].AsFloat; +end; + +procedure TArticulosParaCompraDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_ArticulosParaCompraDESCUENTO].AsFloat := aValue; +end; + +function TArticulosParaCompraDataTableRules.GetDESCUENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosParaCompraDESCUENTO].IsNull; +end; + +procedure TArticulosParaCompraDataTableRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosParaCompraDESCUENTO].AsVariant := Null; +end; + +function TArticulosParaCompraDataTableRules.GetPRECIO_NETOValue: Currency; +begin + result := DataTable.Fields[idx_ArticulosParaCompraPRECIO_NETO].AsCurrency; +end; + +procedure TArticulosParaCompraDataTableRules.SetPRECIO_NETOValue(const aValue: Currency); +begin + DataTable.Fields[idx_ArticulosParaCompraPRECIO_NETO].AsCurrency := aValue; +end; + +function TArticulosParaCompraDataTableRules.GetPRECIO_NETOIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosParaCompraPRECIO_NETO].IsNull; +end; + +procedure TArticulosParaCompraDataTableRules.SetPRECIO_NETOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosParaCompraPRECIO_NETO].AsVariant := Null; +end; + +function TArticulosParaCompraDataTableRules.GetINVENTARIABLEValue: SmallInt; +begin + result := DataTable.Fields[idx_ArticulosParaCompraINVENTARIABLE].AsSmallInt; +end; + +procedure TArticulosParaCompraDataTableRules.SetINVENTARIABLEValue(const aValue: SmallInt); +begin + DataTable.Fields[idx_ArticulosParaCompraINVENTARIABLE].AsSmallInt := aValue; +end; + +function TArticulosParaCompraDataTableRules.GetINVENTARIABLEIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosParaCompraINVENTARIABLE].IsNull; +end; + +procedure TArticulosParaCompraDataTableRules.SetINVENTARIABLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosParaCompraINVENTARIABLE].AsVariant := Null; +end; + +function TArticulosParaCompraDataTableRules.GetID_PROVEEDORValue: Integer; +begin + result := DataTable.Fields[idx_ArticulosParaCompraID_PROVEEDOR].AsInteger; +end; + +procedure TArticulosParaCompraDataTableRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + DataTable.Fields[idx_ArticulosParaCompraID_PROVEEDOR].AsInteger := aValue; +end; + +function TArticulosParaCompraDataTableRules.GetID_PROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosParaCompraID_PROVEEDOR].IsNull; +end; + +procedure TArticulosParaCompraDataTableRules.SetID_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosParaCompraID_PROVEEDOR].AsVariant := Null; +end; + +function TArticulosParaCompraDataTableRules.GetNOMBRE_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_ArticulosParaCompraNOMBRE_PROVEEDOR].AsString; +end; + +procedure TArticulosParaCompraDataTableRules.SetNOMBRE_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_ArticulosParaCompraNOMBRE_PROVEEDOR].AsString := aValue; +end; + +function TArticulosParaCompraDataTableRules.GetNOMBRE_PROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosParaCompraNOMBRE_PROVEEDOR].IsNull; +end; + +procedure TArticulosParaCompraDataTableRules.SetNOMBRE_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosParaCompraNOMBRE_PROVEEDOR].AsVariant := Null; +end; + +function TArticulosParaCompraDataTableRules.GetELIMINADOValue: SmallInt; +begin + result := DataTable.Fields[idx_ArticulosParaCompraELIMINADO].AsSmallInt; +end; + +procedure TArticulosParaCompraDataTableRules.SetELIMINADOValue(const aValue: SmallInt); +begin + DataTable.Fields[idx_ArticulosParaCompraELIMINADO].AsSmallInt := aValue; +end; + +function TArticulosParaCompraDataTableRules.GetELIMINADOIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosParaCompraELIMINADO].IsNull; +end; + +procedure TArticulosParaCompraDataTableRules.SetELIMINADOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosParaCompraELIMINADO].AsVariant := Null; +end; + +function TArticulosParaCompraDataTableRules.GetFABRICANTEValue: String; +begin + result := DataTable.Fields[idx_ArticulosParaCompraFABRICANTE].AsString; +end; + +procedure TArticulosParaCompraDataTableRules.SetFABRICANTEValue(const aValue: String); +begin + DataTable.Fields[idx_ArticulosParaCompraFABRICANTE].AsString := aValue; +end; + +function TArticulosParaCompraDataTableRules.GetFABRICANTEIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosParaCompraFABRICANTE].IsNull; +end; + +procedure TArticulosParaCompraDataTableRules.SetFABRICANTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosParaCompraFABRICANTE].AsVariant := Null; +end; + +function TArticulosParaCompraDataTableRules.GetREFERENCIA_FABRValue: String; +begin + result := DataTable.Fields[idx_ArticulosParaCompraREFERENCIA_FABR].AsString; +end; + +procedure TArticulosParaCompraDataTableRules.SetREFERENCIA_FABRValue(const aValue: String); +begin + DataTable.Fields[idx_ArticulosParaCompraREFERENCIA_FABR].AsString := aValue; +end; + +function TArticulosParaCompraDataTableRules.GetREFERENCIA_FABRIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosParaCompraREFERENCIA_FABR].IsNull; +end; + +procedure TArticulosParaCompraDataTableRules.SetREFERENCIA_FABRIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosParaCompraREFERENCIA_FABR].AsVariant := Null; +end; + +function TArticulosParaCompraDataTableRules.GetPARAM_MARGENValue: Float; +begin + result := DataTable.Fields[idx_ArticulosParaCompraPARAM_MARGEN].AsFloat; +end; + +procedure TArticulosParaCompraDataTableRules.SetPARAM_MARGENValue(const aValue: Float); +begin + DataTable.Fields[idx_ArticulosParaCompraPARAM_MARGEN].AsFloat := aValue; +end; + +function TArticulosParaCompraDataTableRules.GetPARAM_MARGENIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosParaCompraPARAM_MARGEN].IsNull; +end; + +procedure TArticulosParaCompraDataTableRules.SetPARAM_MARGENIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosParaCompraPARAM_MARGEN].AsVariant := Null; +end; + +function TArticulosParaCompraDataTableRules.GetPRECIO_PVP_VENTAValue: Currency; +begin + result := DataTable.Fields[idx_ArticulosParaCompraPRECIO_PVP_VENTA].AsCurrency; +end; + +procedure TArticulosParaCompraDataTableRules.SetPRECIO_PVP_VENTAValue(const aValue: Currency); +begin + DataTable.Fields[idx_ArticulosParaCompraPRECIO_PVP_VENTA].AsCurrency := aValue; +end; + +function TArticulosParaCompraDataTableRules.GetPRECIO_PVP_VENTAIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosParaCompraPRECIO_PVP_VENTA].IsNull; +end; + +procedure TArticulosParaCompraDataTableRules.SetPRECIO_PVP_VENTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosParaCompraPRECIO_PVP_VENTA].AsVariant := Null; +end; + +function TArticulosParaCompraDataTableRules.GetTIEMPOValue: Integer; +begin + result := DataTable.Fields[idx_ArticulosParaCompraTIEMPO].AsInteger; +end; + +procedure TArticulosParaCompraDataTableRules.SetTIEMPOValue(const aValue: Integer); +begin + DataTable.Fields[idx_ArticulosParaCompraTIEMPO].AsInteger := aValue; +end; + +function TArticulosParaCompraDataTableRules.GetTIEMPOIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosParaCompraTIEMPO].IsNull; +end; + +procedure TArticulosParaCompraDataTableRules.SetTIEMPOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosParaCompraTIEMPO].AsVariant := Null; +end; + +function TArticulosParaCompraDataTableRules.GetPARAM_TIEMPOValue: Float; +begin + result := DataTable.Fields[idx_ArticulosParaCompraPARAM_TIEMPO].AsFloat; +end; + +procedure TArticulosParaCompraDataTableRules.SetPARAM_TIEMPOValue(const aValue: Float); +begin + DataTable.Fields[idx_ArticulosParaCompraPARAM_TIEMPO].AsFloat := aValue; +end; + +function TArticulosParaCompraDataTableRules.GetPARAM_TIEMPOIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosParaCompraPARAM_TIEMPO].IsNull; +end; + +procedure TArticulosParaCompraDataTableRules.SetPARAM_TIEMPOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosParaCompraPARAM_TIEMPO].AsVariant := Null; +end; + +function TArticulosParaCompraDataTableRules.GetMANO_OBRAValue: Currency; +begin + result := DataTable.Fields[idx_ArticulosParaCompraMANO_OBRA].AsCurrency; +end; + +procedure TArticulosParaCompraDataTableRules.SetMANO_OBRAValue(const aValue: Currency); +begin + DataTable.Fields[idx_ArticulosParaCompraMANO_OBRA].AsCurrency := aValue; +end; + +function TArticulosParaCompraDataTableRules.GetMANO_OBRAIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosParaCompraMANO_OBRA].IsNull; +end; + +procedure TArticulosParaCompraDataTableRules.SetMANO_OBRAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosParaCompraMANO_OBRA].AsVariant := Null; +end; + +function TArticulosParaCompraDataTableRules.GetPRECIO_PVP_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_ArticulosParaCompraPRECIO_PVP_TOTAL].AsCurrency; +end; + +procedure TArticulosParaCompraDataTableRules.SetPRECIO_PVP_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_ArticulosParaCompraPRECIO_PVP_TOTAL].AsCurrency := aValue; +end; + +function TArticulosParaCompraDataTableRules.GetPRECIO_PVP_TOTALIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosParaCompraPRECIO_PVP_TOTAL].IsNull; +end; + +procedure TArticulosParaCompraDataTableRules.SetPRECIO_PVP_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosParaCompraPRECIO_PVP_TOTAL].AsVariant := Null; +end; + +function TArticulosParaCompraDataTableRules.GetID_ARTICULOValue: Integer; +begin + result := DataTable.Fields[idx_ArticulosParaCompraID_ARTICULO].AsInteger; +end; + +procedure TArticulosParaCompraDataTableRules.SetID_ARTICULOValue(const aValue: Integer); +begin + DataTable.Fields[idx_ArticulosParaCompraID_ARTICULO].AsInteger := aValue; +end; + +function TArticulosParaCompraDataTableRules.GetID_ARTICULOIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosParaCompraID_ARTICULO].IsNull; +end; + +procedure TArticulosParaCompraDataTableRules.SetID_ARTICULOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosParaCompraID_ARTICULO].AsVariant := Null; +end; + + +initialization + RegisterDataTableRules(RID_ProveedoresConArticulos, TProveedoresConArticulosDataTableRules); + RegisterDataTableRules(RID_Articulos_Proveedores, TArticulos_ProveedoresDataTableRules); + RegisterDataTableRules(RID_Articulos, TArticulosDataTableRules); + RegisterDataTableRules(RID_ArticulosParaCompra, TArticulosParaCompraDataTableRules); + +end. diff --git a/Source/Modulos/Articulos/Model/schArticulosServer_Intf.dcu b/Source/Modulos/Articulos/Model/schArticulosServer_Intf.dcu new file mode 100644 index 0000000..1a66928 Binary files /dev/null and b/Source/Modulos/Articulos/Model/schArticulosServer_Intf.dcu differ diff --git a/Source/Modulos/Articulos/Model/schArticulosServer_Intf.pas b/Source/Modulos/Articulos/Model/schArticulosServer_Intf.pas new file mode 100644 index 0000000..4ded5e4 --- /dev/null +++ b/Source/Modulos/Articulos/Model/schArticulosServer_Intf.pas @@ -0,0 +1,3072 @@ +unit schArticulosServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schArticulosClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_ProveedoresConArticulosDelta = '{6C804022-5DF5-4E60-A6EC-E3C04900D4FC}'; + RID_Articulos_ProveedoresDelta = '{C38F7153-6FAD-4064-8EAC-D97A9F9780AE}'; + RID_ArticulosDelta = '{132D6F55-09CD-4018-A2CB-1D2552713417}'; + RID_ArticulosParaCompraDelta = '{F30257BA-3AC6-486E-B33C-0F429FBA0D62}'; + +type + { IProveedoresConArticulosDelta } + IProveedoresConArticulosDelta = interface(IProveedoresConArticulos) + ['{6C804022-5DF5-4E60-A6EC-E3C04900D4FC}'] + { Property getters and setters } + function GetOldID_PROVEEDORValue : Integer; + function GetOldNOMBREValue : String; + + { Properties } + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property OldNOMBRE : String read GetOldNOMBREValue; + end; + + { TProveedoresConArticulosBusinessProcessorRules } + TProveedoresConArticulosBusinessProcessorRules = class(TDABusinessProcessorRules, IProveedoresConArticulos, IProveedoresConArticulosDelta) + private + protected + { Property getters and setters } + function GetID_PROVEEDORValue: Integer; virtual; + function GetID_PROVEEDORIsNull: Boolean; virtual; + function GetOldID_PROVEEDORValue: Integer; virtual; + function GetOldID_PROVEEDORIsNull: Boolean; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + function GetNOMBREIsNull: Boolean; virtual; + function GetOldNOMBREValue: String; virtual; + function GetOldNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID_PROVEEDOR : Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull : Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property OldID_PROVEEDORIsNull : Boolean read GetOldID_PROVEEDORIsNull; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull : Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldNOMBREIsNull : Boolean read GetOldNOMBREIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IArticulos_ProveedoresDelta } + IArticulos_ProveedoresDelta = interface(IArticulos_Proveedores) + ['{C38F7153-6FAD-4064-8EAC-D97A9F9780AE}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_ARTICULOValue : Integer; + function GetOldID_PROVEEDORValue : Integer; + function GetOldREFERENCIA_PROVValue : String; + function GetOldPRECIO_COSTEValue : Currency; + function GetOldDESCUENTOValue : Float; + function GetOldPRECIO_NETOValue : Currency; + function GetOldPRECIO_PORTEValue : Currency; + function GetOldPRECIO_PVP_VENTAValue : Currency; + function GetOldPRECIO_PVP_TOTALValue : Currency; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property OldREFERENCIA_PROV : String read GetOldREFERENCIA_PROVValue; + property OldPRECIO_COSTE : Currency read GetOldPRECIO_COSTEValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldPRECIO_NETO : Currency read GetOldPRECIO_NETOValue; + property OldPRECIO_PORTE : Currency read GetOldPRECIO_PORTEValue; + property OldPRECIO_PVP_VENTA : Currency read GetOldPRECIO_PVP_VENTAValue; + property OldPRECIO_PVP_TOTAL : Currency read GetOldPRECIO_PVP_TOTALValue; + end; + + { TArticulos_ProveedoresBusinessProcessorRules } + TArticulos_ProveedoresBusinessProcessorRules = class(TDABusinessProcessorRules, IArticulos_Proveedores, IArticulos_ProveedoresDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_ARTICULOValue: Integer; virtual; + function GetID_ARTICULOIsNull: Boolean; virtual; + function GetOldID_ARTICULOValue: Integer; virtual; + function GetOldID_ARTICULOIsNull: Boolean; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + function GetID_PROVEEDORIsNull: Boolean; virtual; + function GetOldID_PROVEEDORValue: Integer; virtual; + function GetOldID_PROVEEDORIsNull: Boolean; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_PROVValue: String; virtual; + function GetREFERENCIA_PROVIsNull: Boolean; virtual; + function GetOldREFERENCIA_PROVValue: String; virtual; + function GetOldREFERENCIA_PROVIsNull: Boolean; virtual; + procedure SetREFERENCIA_PROVValue(const aValue: String); virtual; + procedure SetREFERENCIA_PROVIsNull(const aValue: Boolean); virtual; + function GetPRECIO_COSTEValue: Currency; virtual; + function GetPRECIO_COSTEIsNull: Boolean; virtual; + function GetOldPRECIO_COSTEValue: Currency; virtual; + function GetOldPRECIO_COSTEIsNull: Boolean; virtual; + procedure SetPRECIO_COSTEValue(const aValue: Currency); virtual; + procedure SetPRECIO_COSTEIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + function GetOldDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetPRECIO_NETOValue: Currency; virtual; + function GetPRECIO_NETOIsNull: Boolean; virtual; + function GetOldPRECIO_NETOValue: Currency; virtual; + function GetOldPRECIO_NETOIsNull: Boolean; virtual; + procedure SetPRECIO_NETOValue(const aValue: Currency); virtual; + procedure SetPRECIO_NETOIsNull(const aValue: Boolean); virtual; + function GetPRECIO_PORTEValue: Currency; virtual; + function GetPRECIO_PORTEIsNull: Boolean; virtual; + function GetOldPRECIO_PORTEValue: Currency; virtual; + function GetOldPRECIO_PORTEIsNull: Boolean; virtual; + procedure SetPRECIO_PORTEValue(const aValue: Currency); virtual; + procedure SetPRECIO_PORTEIsNull(const aValue: Boolean); virtual; + function GetPRECIO_PVP_VENTAValue: Currency; virtual; + function GetPRECIO_PVP_VENTAIsNull: Boolean; virtual; + function GetOldPRECIO_PVP_VENTAValue: Currency; virtual; + function GetOldPRECIO_PVP_VENTAIsNull: Boolean; virtual; + procedure SetPRECIO_PVP_VENTAValue(const aValue: Currency); virtual; + procedure SetPRECIO_PVP_VENTAIsNull(const aValue: Boolean); virtual; + function GetPRECIO_PVP_TOTALValue: Currency; virtual; + function GetPRECIO_PVP_TOTALIsNull: Boolean; virtual; + function GetOldPRECIO_PVP_TOTALValue: Currency; virtual; + function GetOldPRECIO_PVP_TOTALIsNull: Boolean; virtual; + procedure SetPRECIO_PVP_TOTALValue(const aValue: Currency); virtual; + procedure SetPRECIO_PVP_TOTALIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_ARTICULO : Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull : Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldID_ARTICULOIsNull : Boolean read GetOldID_ARTICULOIsNull; + property ID_PROVEEDOR : Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull : Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property OldID_PROVEEDORIsNull : Boolean read GetOldID_PROVEEDORIsNull; + property REFERENCIA_PROV : String read GetREFERENCIA_PROVValue write SetREFERENCIA_PROVValue; + property REFERENCIA_PROVIsNull : Boolean read GetREFERENCIA_PROVIsNull write SetREFERENCIA_PROVIsNull; + property OldREFERENCIA_PROV : String read GetOldREFERENCIA_PROVValue; + property OldREFERENCIA_PROVIsNull : Boolean read GetOldREFERENCIA_PROVIsNull; + property PRECIO_COSTE : Currency read GetPRECIO_COSTEValue write SetPRECIO_COSTEValue; + property PRECIO_COSTEIsNull : Boolean read GetPRECIO_COSTEIsNull write SetPRECIO_COSTEIsNull; + property OldPRECIO_COSTE : Currency read GetOldPRECIO_COSTEValue; + property OldPRECIO_COSTEIsNull : Boolean read GetOldPRECIO_COSTEIsNull; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull : Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldDESCUENTOIsNull : Boolean read GetOldDESCUENTOIsNull; + property PRECIO_NETO : Currency read GetPRECIO_NETOValue write SetPRECIO_NETOValue; + property PRECIO_NETOIsNull : Boolean read GetPRECIO_NETOIsNull write SetPRECIO_NETOIsNull; + property OldPRECIO_NETO : Currency read GetOldPRECIO_NETOValue; + property OldPRECIO_NETOIsNull : Boolean read GetOldPRECIO_NETOIsNull; + property PRECIO_PORTE : Currency read GetPRECIO_PORTEValue write SetPRECIO_PORTEValue; + property PRECIO_PORTEIsNull : Boolean read GetPRECIO_PORTEIsNull write SetPRECIO_PORTEIsNull; + property OldPRECIO_PORTE : Currency read GetOldPRECIO_PORTEValue; + property OldPRECIO_PORTEIsNull : Boolean read GetOldPRECIO_PORTEIsNull; + property PRECIO_PVP_VENTA : Currency read GetPRECIO_PVP_VENTAValue write SetPRECIO_PVP_VENTAValue; + property PRECIO_PVP_VENTAIsNull : Boolean read GetPRECIO_PVP_VENTAIsNull write SetPRECIO_PVP_VENTAIsNull; + property OldPRECIO_PVP_VENTA : Currency read GetOldPRECIO_PVP_VENTAValue; + property OldPRECIO_PVP_VENTAIsNull : Boolean read GetOldPRECIO_PVP_VENTAIsNull; + property PRECIO_PVP_TOTAL : Currency read GetPRECIO_PVP_TOTALValue write SetPRECIO_PVP_TOTALValue; + property PRECIO_PVP_TOTALIsNull : Boolean read GetPRECIO_PVP_TOTALIsNull write SetPRECIO_PVP_TOTALIsNull; + property OldPRECIO_PVP_TOTAL : Currency read GetOldPRECIO_PVP_TOTALValue; + property OldPRECIO_PVP_TOTALIsNull : Boolean read GetOldPRECIO_PVP_TOTALIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IArticulosDelta } + IArticulosDelta = interface(IArticulos) + ['{132D6F55-09CD-4018-A2CB-1D2552713417}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldREFERENCIAValue : String; + function GetOldDESCRIPCIONValue : String; + function GetOldUNIDAD_MEDIDAValue : String; + function GetOldFAMILIAValue : String; + function GetOldIMAGENValue : IROStream; + function GetOldCOMISIONABLEValue : Integer; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + function GetOldUSUARIOValue : String; + function GetOldREFERENCIA_PROVValue : String; + function GetOldPRECIO_COSTEValue : Currency; + function GetOldPRECIO_PORTEValue : Currency; + function GetOldDESCUENTOValue : Float; + function GetOldPRECIO_NETOValue : Currency; + function GetOldINVENTARIABLEValue : SmallInt; + function GetOldELIMINADOValue : SmallInt; + function GetOldFABRICANTEValue : String; + function GetOldREFERENCIA_FABRValue : String; + function GetOldPARAM_MARGENValue : Float; + function GetOldPRECIO_PVP_VENTAValue : Currency; + function GetOldTIEMPOValue : Integer; + function GetOldPARAM_TIEMPOValue : Float; + function GetOldMANO_OBRAValue : Currency; + function GetOldPRECIO_PVP_TOTALValue : Currency; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldUNIDAD_MEDIDA : String read GetOldUNIDAD_MEDIDAValue; + property OldFAMILIA : String read GetOldFAMILIAValue; + property OldIMAGEN : IROStream read GetOldIMAGENValue; + property OldCOMISIONABLE : Integer read GetOldCOMISIONABLEValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldREFERENCIA_PROV : String read GetOldREFERENCIA_PROVValue; + property OldPRECIO_COSTE : Currency read GetOldPRECIO_COSTEValue; + property OldPRECIO_PORTE : Currency read GetOldPRECIO_PORTEValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldPRECIO_NETO : Currency read GetOldPRECIO_NETOValue; + property OldINVENTARIABLE : SmallInt read GetOldINVENTARIABLEValue; + property OldELIMINADO : SmallInt read GetOldELIMINADOValue; + property OldFABRICANTE : String read GetOldFABRICANTEValue; + property OldREFERENCIA_FABR : String read GetOldREFERENCIA_FABRValue; + property OldPARAM_MARGEN : Float read GetOldPARAM_MARGENValue; + property OldPRECIO_PVP_VENTA : Currency read GetOldPRECIO_PVP_VENTAValue; + property OldTIEMPO : Integer read GetOldTIEMPOValue; + property OldPARAM_TIEMPO : Float read GetOldPARAM_TIEMPOValue; + property OldMANO_OBRA : Currency read GetOldMANO_OBRAValue; + property OldPRECIO_PVP_TOTAL : Currency read GetOldPRECIO_PVP_TOTALValue; + end; + + { TArticulosBusinessProcessorRules } + TArticulosBusinessProcessorRules = class(TDABusinessProcessorRules, IArticulos, IArticulosDelta) + private + f_IMAGEN: IROStream; + procedure IMAGEN_OnChange(Sender: Tobject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + function GetUNIDAD_MEDIDAValue: String; virtual; + function GetUNIDAD_MEDIDAIsNull: Boolean; virtual; + function GetOldUNIDAD_MEDIDAValue: String; virtual; + function GetOldUNIDAD_MEDIDAIsNull: Boolean; virtual; + procedure SetUNIDAD_MEDIDAValue(const aValue: String); virtual; + procedure SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); virtual; + function GetFAMILIAValue: String; virtual; + function GetFAMILIAIsNull: Boolean; virtual; + function GetOldFAMILIAValue: String; virtual; + function GetOldFAMILIAIsNull: Boolean; virtual; + procedure SetFAMILIAValue(const aValue: String); virtual; + procedure SetFAMILIAIsNull(const aValue: Boolean); virtual; + function GetIMAGENValue: IROStream; virtual; + function GetIMAGENIsNull: Boolean; virtual; + function GetOldIMAGENValue: IROStream; virtual; + function GetOldIMAGENIsNull: Boolean; virtual; + procedure SetIMAGENIsNull(const aValue: Boolean); virtual; + function GetCOMISIONABLEValue: Integer; virtual; + function GetCOMISIONABLEIsNull: Boolean; virtual; + function GetOldCOMISIONABLEValue: Integer; virtual; + function GetOldCOMISIONABLEIsNull: Boolean; virtual; + procedure SetCOMISIONABLEValue(const aValue: Integer); virtual; + procedure SetCOMISIONABLEIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + function GetUSUARIOIsNull: Boolean; virtual; + function GetOldUSUARIOValue: String; virtual; + function GetOldUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_PROVValue: String; virtual; + function GetREFERENCIA_PROVIsNull: Boolean; virtual; + function GetOldREFERENCIA_PROVValue: String; virtual; + function GetOldREFERENCIA_PROVIsNull: Boolean; virtual; + procedure SetREFERENCIA_PROVValue(const aValue: String); virtual; + procedure SetREFERENCIA_PROVIsNull(const aValue: Boolean); virtual; + function GetPRECIO_COSTEValue: Currency; virtual; + function GetPRECIO_COSTEIsNull: Boolean; virtual; + function GetOldPRECIO_COSTEValue: Currency; virtual; + function GetOldPRECIO_COSTEIsNull: Boolean; virtual; + procedure SetPRECIO_COSTEValue(const aValue: Currency); virtual; + procedure SetPRECIO_COSTEIsNull(const aValue: Boolean); virtual; + function GetPRECIO_PORTEValue: Currency; virtual; + function GetPRECIO_PORTEIsNull: Boolean; virtual; + function GetOldPRECIO_PORTEValue: Currency; virtual; + function GetOldPRECIO_PORTEIsNull: Boolean; virtual; + procedure SetPRECIO_PORTEValue(const aValue: Currency); virtual; + procedure SetPRECIO_PORTEIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + function GetOldDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetPRECIO_NETOValue: Currency; virtual; + function GetPRECIO_NETOIsNull: Boolean; virtual; + function GetOldPRECIO_NETOValue: Currency; virtual; + function GetOldPRECIO_NETOIsNull: Boolean; virtual; + procedure SetPRECIO_NETOValue(const aValue: Currency); virtual; + procedure SetPRECIO_NETOIsNull(const aValue: Boolean); virtual; + function GetINVENTARIABLEValue: SmallInt; virtual; + function GetINVENTARIABLEIsNull: Boolean; virtual; + function GetOldINVENTARIABLEValue: SmallInt; virtual; + function GetOldINVENTARIABLEIsNull: Boolean; virtual; + procedure SetINVENTARIABLEValue(const aValue: SmallInt); virtual; + procedure SetINVENTARIABLEIsNull(const aValue: Boolean); virtual; + function GetELIMINADOValue: SmallInt; virtual; + function GetELIMINADOIsNull: Boolean; virtual; + function GetOldELIMINADOValue: SmallInt; virtual; + function GetOldELIMINADOIsNull: Boolean; virtual; + procedure SetELIMINADOValue(const aValue: SmallInt); virtual; + procedure SetELIMINADOIsNull(const aValue: Boolean); virtual; + function GetFABRICANTEValue: String; virtual; + function GetFABRICANTEIsNull: Boolean; virtual; + function GetOldFABRICANTEValue: String; virtual; + function GetOldFABRICANTEIsNull: Boolean; virtual; + procedure SetFABRICANTEValue(const aValue: String); virtual; + procedure SetFABRICANTEIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_FABRValue: String; virtual; + function GetREFERENCIA_FABRIsNull: Boolean; virtual; + function GetOldREFERENCIA_FABRValue: String; virtual; + function GetOldREFERENCIA_FABRIsNull: Boolean; virtual; + procedure SetREFERENCIA_FABRValue(const aValue: String); virtual; + procedure SetREFERENCIA_FABRIsNull(const aValue: Boolean); virtual; + function GetPARAM_MARGENValue: Float; virtual; + function GetPARAM_MARGENIsNull: Boolean; virtual; + function GetOldPARAM_MARGENValue: Float; virtual; + function GetOldPARAM_MARGENIsNull: Boolean; virtual; + procedure SetPARAM_MARGENValue(const aValue: Float); virtual; + procedure SetPARAM_MARGENIsNull(const aValue: Boolean); virtual; + function GetPRECIO_PVP_VENTAValue: Currency; virtual; + function GetPRECIO_PVP_VENTAIsNull: Boolean; virtual; + function GetOldPRECIO_PVP_VENTAValue: Currency; virtual; + function GetOldPRECIO_PVP_VENTAIsNull: Boolean; virtual; + procedure SetPRECIO_PVP_VENTAValue(const aValue: Currency); virtual; + procedure SetPRECIO_PVP_VENTAIsNull(const aValue: Boolean); virtual; + function GetTIEMPOValue: Integer; virtual; + function GetTIEMPOIsNull: Boolean; virtual; + function GetOldTIEMPOValue: Integer; virtual; + function GetOldTIEMPOIsNull: Boolean; virtual; + procedure SetTIEMPOValue(const aValue: Integer); virtual; + procedure SetTIEMPOIsNull(const aValue: Boolean); virtual; + function GetPARAM_TIEMPOValue: Float; virtual; + function GetPARAM_TIEMPOIsNull: Boolean; virtual; + function GetOldPARAM_TIEMPOValue: Float; virtual; + function GetOldPARAM_TIEMPOIsNull: Boolean; virtual; + procedure SetPARAM_TIEMPOValue(const aValue: Float); virtual; + procedure SetPARAM_TIEMPOIsNull(const aValue: Boolean); virtual; + function GetMANO_OBRAValue: Currency; virtual; + function GetMANO_OBRAIsNull: Boolean; virtual; + function GetOldMANO_OBRAValue: Currency; virtual; + function GetOldMANO_OBRAIsNull: Boolean; virtual; + procedure SetMANO_OBRAValue(const aValue: Currency); virtual; + procedure SetMANO_OBRAIsNull(const aValue: Boolean); virtual; + function GetPRECIO_PVP_TOTALValue: Currency; virtual; + function GetPRECIO_PVP_TOTALIsNull: Boolean; virtual; + function GetOldPRECIO_PVP_TOTALValue: Currency; virtual; + function GetOldPRECIO_PVP_TOTALIsNull: Boolean; virtual; + procedure SetPRECIO_PVP_TOTALValue(const aValue: Currency); virtual; + procedure SetPRECIO_PVP_TOTALIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull : Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_EMPRESAIsNull : Boolean read GetOldID_EMPRESAIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull : Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldDESCRIPCIONIsNull : Boolean read GetOldDESCRIPCIONIsNull; + property UNIDAD_MEDIDA : String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue; + property UNIDAD_MEDIDAIsNull : Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull; + property OldUNIDAD_MEDIDA : String read GetOldUNIDAD_MEDIDAValue; + property OldUNIDAD_MEDIDAIsNull : Boolean read GetOldUNIDAD_MEDIDAIsNull; + property FAMILIA : String read GetFAMILIAValue write SetFAMILIAValue; + property FAMILIAIsNull : Boolean read GetFAMILIAIsNull write SetFAMILIAIsNull; + property OldFAMILIA : String read GetOldFAMILIAValue; + property OldFAMILIAIsNull : Boolean read GetOldFAMILIAIsNull; + property IMAGEN : IROStream read GetIMAGENValue; + property IMAGENIsNull : Boolean read GetIMAGENIsNull write SetIMAGENIsNull; + property OldIMAGEN : IROStream read GetOldIMAGENValue; + property OldIMAGENIsNull : Boolean read GetOldIMAGENIsNull; + property COMISIONABLE : Integer read GetCOMISIONABLEValue write SetCOMISIONABLEValue; + property COMISIONABLEIsNull : Boolean read GetCOMISIONABLEIsNull write SetCOMISIONABLEIsNull; + property OldCOMISIONABLE : Integer read GetOldCOMISIONABLEValue; + property OldCOMISIONABLEIsNull : Boolean read GetOldCOMISIONABLEIsNull; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull : Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_ALTAIsNull : Boolean read GetOldFECHA_ALTAIsNull; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull : Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldUSUARIOIsNull : Boolean read GetOldUSUARIOIsNull; + property REFERENCIA_PROV : String read GetREFERENCIA_PROVValue write SetREFERENCIA_PROVValue; + property REFERENCIA_PROVIsNull : Boolean read GetREFERENCIA_PROVIsNull write SetREFERENCIA_PROVIsNull; + property OldREFERENCIA_PROV : String read GetOldREFERENCIA_PROVValue; + property OldREFERENCIA_PROVIsNull : Boolean read GetOldREFERENCIA_PROVIsNull; + property PRECIO_COSTE : Currency read GetPRECIO_COSTEValue write SetPRECIO_COSTEValue; + property PRECIO_COSTEIsNull : Boolean read GetPRECIO_COSTEIsNull write SetPRECIO_COSTEIsNull; + property OldPRECIO_COSTE : Currency read GetOldPRECIO_COSTEValue; + property OldPRECIO_COSTEIsNull : Boolean read GetOldPRECIO_COSTEIsNull; + property PRECIO_PORTE : Currency read GetPRECIO_PORTEValue write SetPRECIO_PORTEValue; + property PRECIO_PORTEIsNull : Boolean read GetPRECIO_PORTEIsNull write SetPRECIO_PORTEIsNull; + property OldPRECIO_PORTE : Currency read GetOldPRECIO_PORTEValue; + property OldPRECIO_PORTEIsNull : Boolean read GetOldPRECIO_PORTEIsNull; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull : Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldDESCUENTOIsNull : Boolean read GetOldDESCUENTOIsNull; + property PRECIO_NETO : Currency read GetPRECIO_NETOValue write SetPRECIO_NETOValue; + property PRECIO_NETOIsNull : Boolean read GetPRECIO_NETOIsNull write SetPRECIO_NETOIsNull; + property OldPRECIO_NETO : Currency read GetOldPRECIO_NETOValue; + property OldPRECIO_NETOIsNull : Boolean read GetOldPRECIO_NETOIsNull; + property INVENTARIABLE : SmallInt read GetINVENTARIABLEValue write SetINVENTARIABLEValue; + property INVENTARIABLEIsNull : Boolean read GetINVENTARIABLEIsNull write SetINVENTARIABLEIsNull; + property OldINVENTARIABLE : SmallInt read GetOldINVENTARIABLEValue; + property OldINVENTARIABLEIsNull : Boolean read GetOldINVENTARIABLEIsNull; + property ELIMINADO : SmallInt read GetELIMINADOValue write SetELIMINADOValue; + property ELIMINADOIsNull : Boolean read GetELIMINADOIsNull write SetELIMINADOIsNull; + property OldELIMINADO : SmallInt read GetOldELIMINADOValue; + property OldELIMINADOIsNull : Boolean read GetOldELIMINADOIsNull; + property FABRICANTE : String read GetFABRICANTEValue write SetFABRICANTEValue; + property FABRICANTEIsNull : Boolean read GetFABRICANTEIsNull write SetFABRICANTEIsNull; + property OldFABRICANTE : String read GetOldFABRICANTEValue; + property OldFABRICANTEIsNull : Boolean read GetOldFABRICANTEIsNull; + property REFERENCIA_FABR : String read GetREFERENCIA_FABRValue write SetREFERENCIA_FABRValue; + property REFERENCIA_FABRIsNull : Boolean read GetREFERENCIA_FABRIsNull write SetREFERENCIA_FABRIsNull; + property OldREFERENCIA_FABR : String read GetOldREFERENCIA_FABRValue; + property OldREFERENCIA_FABRIsNull : Boolean read GetOldREFERENCIA_FABRIsNull; + property PARAM_MARGEN : Float read GetPARAM_MARGENValue write SetPARAM_MARGENValue; + property PARAM_MARGENIsNull : Boolean read GetPARAM_MARGENIsNull write SetPARAM_MARGENIsNull; + property OldPARAM_MARGEN : Float read GetOldPARAM_MARGENValue; + property OldPARAM_MARGENIsNull : Boolean read GetOldPARAM_MARGENIsNull; + property PRECIO_PVP_VENTA : Currency read GetPRECIO_PVP_VENTAValue write SetPRECIO_PVP_VENTAValue; + property PRECIO_PVP_VENTAIsNull : Boolean read GetPRECIO_PVP_VENTAIsNull write SetPRECIO_PVP_VENTAIsNull; + property OldPRECIO_PVP_VENTA : Currency read GetOldPRECIO_PVP_VENTAValue; + property OldPRECIO_PVP_VENTAIsNull : Boolean read GetOldPRECIO_PVP_VENTAIsNull; + property TIEMPO : Integer read GetTIEMPOValue write SetTIEMPOValue; + property TIEMPOIsNull : Boolean read GetTIEMPOIsNull write SetTIEMPOIsNull; + property OldTIEMPO : Integer read GetOldTIEMPOValue; + property OldTIEMPOIsNull : Boolean read GetOldTIEMPOIsNull; + property PARAM_TIEMPO : Float read GetPARAM_TIEMPOValue write SetPARAM_TIEMPOValue; + property PARAM_TIEMPOIsNull : Boolean read GetPARAM_TIEMPOIsNull write SetPARAM_TIEMPOIsNull; + property OldPARAM_TIEMPO : Float read GetOldPARAM_TIEMPOValue; + property OldPARAM_TIEMPOIsNull : Boolean read GetOldPARAM_TIEMPOIsNull; + property MANO_OBRA : Currency read GetMANO_OBRAValue write SetMANO_OBRAValue; + property MANO_OBRAIsNull : Boolean read GetMANO_OBRAIsNull write SetMANO_OBRAIsNull; + property OldMANO_OBRA : Currency read GetOldMANO_OBRAValue; + property OldMANO_OBRAIsNull : Boolean read GetOldMANO_OBRAIsNull; + property PRECIO_PVP_TOTAL : Currency read GetPRECIO_PVP_TOTALValue write SetPRECIO_PVP_TOTALValue; + property PRECIO_PVP_TOTALIsNull : Boolean read GetPRECIO_PVP_TOTALIsNull write SetPRECIO_PVP_TOTALIsNull; + property OldPRECIO_PVP_TOTAL : Currency read GetOldPRECIO_PVP_TOTALValue; + property OldPRECIO_PVP_TOTALIsNull : Boolean read GetOldPRECIO_PVP_TOTALIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IArticulosParaCompraDelta } + IArticulosParaCompraDelta = interface(IArticulosParaCompra) + ['{F30257BA-3AC6-486E-B33C-0F429FBA0D62}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldREFERENCIAValue : String; + function GetOldDESCRIPCIONValue : String; + function GetOldUNIDAD_MEDIDAValue : String; + function GetOldFAMILIAValue : String; + function GetOldIMAGENValue : IROStream; + function GetOldCOMISIONABLEValue : Integer; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + function GetOldUSUARIOValue : String; + function GetOldREFERENCIA_PROVValue : String; + function GetOldPRECIO_COSTEValue : Currency; + function GetOldPRECIO_PORTEValue : Currency; + function GetOldDESCUENTOValue : Float; + function GetOldPRECIO_NETOValue : Currency; + function GetOldINVENTARIABLEValue : SmallInt; + function GetOldID_PROVEEDORValue : Integer; + function GetOldNOMBRE_PROVEEDORValue : String; + function GetOldELIMINADOValue : SmallInt; + function GetOldFABRICANTEValue : String; + function GetOldREFERENCIA_FABRValue : String; + function GetOldPARAM_MARGENValue : Float; + function GetOldPRECIO_PVP_VENTAValue : Currency; + function GetOldTIEMPOValue : Integer; + function GetOldPARAM_TIEMPOValue : Float; + function GetOldMANO_OBRAValue : Currency; + function GetOldPRECIO_PVP_TOTALValue : Currency; + function GetOldID_ARTICULOValue : Integer; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldUNIDAD_MEDIDA : String read GetOldUNIDAD_MEDIDAValue; + property OldFAMILIA : String read GetOldFAMILIAValue; + property OldIMAGEN : IROStream read GetOldIMAGENValue; + property OldCOMISIONABLE : Integer read GetOldCOMISIONABLEValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldREFERENCIA_PROV : String read GetOldREFERENCIA_PROVValue; + property OldPRECIO_COSTE : Currency read GetOldPRECIO_COSTEValue; + property OldPRECIO_PORTE : Currency read GetOldPRECIO_PORTEValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldPRECIO_NETO : Currency read GetOldPRECIO_NETOValue; + property OldINVENTARIABLE : SmallInt read GetOldINVENTARIABLEValue; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property OldNOMBRE_PROVEEDOR : String read GetOldNOMBRE_PROVEEDORValue; + property OldELIMINADO : SmallInt read GetOldELIMINADOValue; + property OldFABRICANTE : String read GetOldFABRICANTEValue; + property OldREFERENCIA_FABR : String read GetOldREFERENCIA_FABRValue; + property OldPARAM_MARGEN : Float read GetOldPARAM_MARGENValue; + property OldPRECIO_PVP_VENTA : Currency read GetOldPRECIO_PVP_VENTAValue; + property OldTIEMPO : Integer read GetOldTIEMPOValue; + property OldPARAM_TIEMPO : Float read GetOldPARAM_TIEMPOValue; + property OldMANO_OBRA : Currency read GetOldMANO_OBRAValue; + property OldPRECIO_PVP_TOTAL : Currency read GetOldPRECIO_PVP_TOTALValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + end; + + { TArticulosParaCompraBusinessProcessorRules } + TArticulosParaCompraBusinessProcessorRules = class(TDABusinessProcessorRules, IArticulosParaCompra, IArticulosParaCompraDelta) + private + f_IMAGEN: IROStream; + procedure IMAGEN_OnChange(Sender: Tobject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + function GetUNIDAD_MEDIDAValue: String; virtual; + function GetUNIDAD_MEDIDAIsNull: Boolean; virtual; + function GetOldUNIDAD_MEDIDAValue: String; virtual; + function GetOldUNIDAD_MEDIDAIsNull: Boolean; virtual; + procedure SetUNIDAD_MEDIDAValue(const aValue: String); virtual; + procedure SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); virtual; + function GetFAMILIAValue: String; virtual; + function GetFAMILIAIsNull: Boolean; virtual; + function GetOldFAMILIAValue: String; virtual; + function GetOldFAMILIAIsNull: Boolean; virtual; + procedure SetFAMILIAValue(const aValue: String); virtual; + procedure SetFAMILIAIsNull(const aValue: Boolean); virtual; + function GetIMAGENValue: IROStream; virtual; + function GetIMAGENIsNull: Boolean; virtual; + function GetOldIMAGENValue: IROStream; virtual; + function GetOldIMAGENIsNull: Boolean; virtual; + procedure SetIMAGENIsNull(const aValue: Boolean); virtual; + function GetCOMISIONABLEValue: Integer; virtual; + function GetCOMISIONABLEIsNull: Boolean; virtual; + function GetOldCOMISIONABLEValue: Integer; virtual; + function GetOldCOMISIONABLEIsNull: Boolean; virtual; + procedure SetCOMISIONABLEValue(const aValue: Integer); virtual; + procedure SetCOMISIONABLEIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + function GetUSUARIOIsNull: Boolean; virtual; + function GetOldUSUARIOValue: String; virtual; + function GetOldUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_PROVValue: String; virtual; + function GetREFERENCIA_PROVIsNull: Boolean; virtual; + function GetOldREFERENCIA_PROVValue: String; virtual; + function GetOldREFERENCIA_PROVIsNull: Boolean; virtual; + procedure SetREFERENCIA_PROVValue(const aValue: String); virtual; + procedure SetREFERENCIA_PROVIsNull(const aValue: Boolean); virtual; + function GetPRECIO_COSTEValue: Currency; virtual; + function GetPRECIO_COSTEIsNull: Boolean; virtual; + function GetOldPRECIO_COSTEValue: Currency; virtual; + function GetOldPRECIO_COSTEIsNull: Boolean; virtual; + procedure SetPRECIO_COSTEValue(const aValue: Currency); virtual; + procedure SetPRECIO_COSTEIsNull(const aValue: Boolean); virtual; + function GetPRECIO_PORTEValue: Currency; virtual; + function GetPRECIO_PORTEIsNull: Boolean; virtual; + function GetOldPRECIO_PORTEValue: Currency; virtual; + function GetOldPRECIO_PORTEIsNull: Boolean; virtual; + procedure SetPRECIO_PORTEValue(const aValue: Currency); virtual; + procedure SetPRECIO_PORTEIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + function GetOldDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetPRECIO_NETOValue: Currency; virtual; + function GetPRECIO_NETOIsNull: Boolean; virtual; + function GetOldPRECIO_NETOValue: Currency; virtual; + function GetOldPRECIO_NETOIsNull: Boolean; virtual; + procedure SetPRECIO_NETOValue(const aValue: Currency); virtual; + procedure SetPRECIO_NETOIsNull(const aValue: Boolean); virtual; + function GetINVENTARIABLEValue: SmallInt; virtual; + function GetINVENTARIABLEIsNull: Boolean; virtual; + function GetOldINVENTARIABLEValue: SmallInt; virtual; + function GetOldINVENTARIABLEIsNull: Boolean; virtual; + procedure SetINVENTARIABLEValue(const aValue: SmallInt); virtual; + procedure SetINVENTARIABLEIsNull(const aValue: Boolean); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + function GetID_PROVEEDORIsNull: Boolean; virtual; + function GetOldID_PROVEEDORValue: Integer; virtual; + function GetOldID_PROVEEDORIsNull: Boolean; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetNOMBRE_PROVEEDORValue: String; virtual; + function GetNOMBRE_PROVEEDORIsNull: Boolean; virtual; + function GetOldNOMBRE_PROVEEDORValue: String; virtual; + function GetOldNOMBRE_PROVEEDORIsNull: Boolean; virtual; + procedure SetNOMBRE_PROVEEDORValue(const aValue: String); virtual; + procedure SetNOMBRE_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetELIMINADOValue: SmallInt; virtual; + function GetELIMINADOIsNull: Boolean; virtual; + function GetOldELIMINADOValue: SmallInt; virtual; + function GetOldELIMINADOIsNull: Boolean; virtual; + procedure SetELIMINADOValue(const aValue: SmallInt); virtual; + procedure SetELIMINADOIsNull(const aValue: Boolean); virtual; + function GetFABRICANTEValue: String; virtual; + function GetFABRICANTEIsNull: Boolean; virtual; + function GetOldFABRICANTEValue: String; virtual; + function GetOldFABRICANTEIsNull: Boolean; virtual; + procedure SetFABRICANTEValue(const aValue: String); virtual; + procedure SetFABRICANTEIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_FABRValue: String; virtual; + function GetREFERENCIA_FABRIsNull: Boolean; virtual; + function GetOldREFERENCIA_FABRValue: String; virtual; + function GetOldREFERENCIA_FABRIsNull: Boolean; virtual; + procedure SetREFERENCIA_FABRValue(const aValue: String); virtual; + procedure SetREFERENCIA_FABRIsNull(const aValue: Boolean); virtual; + function GetPARAM_MARGENValue: Float; virtual; + function GetPARAM_MARGENIsNull: Boolean; virtual; + function GetOldPARAM_MARGENValue: Float; virtual; + function GetOldPARAM_MARGENIsNull: Boolean; virtual; + procedure SetPARAM_MARGENValue(const aValue: Float); virtual; + procedure SetPARAM_MARGENIsNull(const aValue: Boolean); virtual; + function GetPRECIO_PVP_VENTAValue: Currency; virtual; + function GetPRECIO_PVP_VENTAIsNull: Boolean; virtual; + function GetOldPRECIO_PVP_VENTAValue: Currency; virtual; + function GetOldPRECIO_PVP_VENTAIsNull: Boolean; virtual; + procedure SetPRECIO_PVP_VENTAValue(const aValue: Currency); virtual; + procedure SetPRECIO_PVP_VENTAIsNull(const aValue: Boolean); virtual; + function GetTIEMPOValue: Integer; virtual; + function GetTIEMPOIsNull: Boolean; virtual; + function GetOldTIEMPOValue: Integer; virtual; + function GetOldTIEMPOIsNull: Boolean; virtual; + procedure SetTIEMPOValue(const aValue: Integer); virtual; + procedure SetTIEMPOIsNull(const aValue: Boolean); virtual; + function GetPARAM_TIEMPOValue: Float; virtual; + function GetPARAM_TIEMPOIsNull: Boolean; virtual; + function GetOldPARAM_TIEMPOValue: Float; virtual; + function GetOldPARAM_TIEMPOIsNull: Boolean; virtual; + procedure SetPARAM_TIEMPOValue(const aValue: Float); virtual; + procedure SetPARAM_TIEMPOIsNull(const aValue: Boolean); virtual; + function GetMANO_OBRAValue: Currency; virtual; + function GetMANO_OBRAIsNull: Boolean; virtual; + function GetOldMANO_OBRAValue: Currency; virtual; + function GetOldMANO_OBRAIsNull: Boolean; virtual; + procedure SetMANO_OBRAValue(const aValue: Currency); virtual; + procedure SetMANO_OBRAIsNull(const aValue: Boolean); virtual; + function GetPRECIO_PVP_TOTALValue: Currency; virtual; + function GetPRECIO_PVP_TOTALIsNull: Boolean; virtual; + function GetOldPRECIO_PVP_TOTALValue: Currency; virtual; + function GetOldPRECIO_PVP_TOTALIsNull: Boolean; virtual; + procedure SetPRECIO_PVP_TOTALValue(const aValue: Currency); virtual; + procedure SetPRECIO_PVP_TOTALIsNull(const aValue: Boolean); virtual; + function GetID_ARTICULOValue: Integer; virtual; + function GetID_ARTICULOIsNull: Boolean; virtual; + function GetOldID_ARTICULOValue: Integer; virtual; + function GetOldID_ARTICULOIsNull: Boolean; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull : Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_EMPRESAIsNull : Boolean read GetOldID_EMPRESAIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull : Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldDESCRIPCIONIsNull : Boolean read GetOldDESCRIPCIONIsNull; + property UNIDAD_MEDIDA : String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue; + property UNIDAD_MEDIDAIsNull : Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull; + property OldUNIDAD_MEDIDA : String read GetOldUNIDAD_MEDIDAValue; + property OldUNIDAD_MEDIDAIsNull : Boolean read GetOldUNIDAD_MEDIDAIsNull; + property FAMILIA : String read GetFAMILIAValue write SetFAMILIAValue; + property FAMILIAIsNull : Boolean read GetFAMILIAIsNull write SetFAMILIAIsNull; + property OldFAMILIA : String read GetOldFAMILIAValue; + property OldFAMILIAIsNull : Boolean read GetOldFAMILIAIsNull; + property IMAGEN : IROStream read GetIMAGENValue; + property IMAGENIsNull : Boolean read GetIMAGENIsNull write SetIMAGENIsNull; + property OldIMAGEN : IROStream read GetOldIMAGENValue; + property OldIMAGENIsNull : Boolean read GetOldIMAGENIsNull; + property COMISIONABLE : Integer read GetCOMISIONABLEValue write SetCOMISIONABLEValue; + property COMISIONABLEIsNull : Boolean read GetCOMISIONABLEIsNull write SetCOMISIONABLEIsNull; + property OldCOMISIONABLE : Integer read GetOldCOMISIONABLEValue; + property OldCOMISIONABLEIsNull : Boolean read GetOldCOMISIONABLEIsNull; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull : Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_ALTAIsNull : Boolean read GetOldFECHA_ALTAIsNull; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull : Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldUSUARIOIsNull : Boolean read GetOldUSUARIOIsNull; + property REFERENCIA_PROV : String read GetREFERENCIA_PROVValue write SetREFERENCIA_PROVValue; + property REFERENCIA_PROVIsNull : Boolean read GetREFERENCIA_PROVIsNull write SetREFERENCIA_PROVIsNull; + property OldREFERENCIA_PROV : String read GetOldREFERENCIA_PROVValue; + property OldREFERENCIA_PROVIsNull : Boolean read GetOldREFERENCIA_PROVIsNull; + property PRECIO_COSTE : Currency read GetPRECIO_COSTEValue write SetPRECIO_COSTEValue; + property PRECIO_COSTEIsNull : Boolean read GetPRECIO_COSTEIsNull write SetPRECIO_COSTEIsNull; + property OldPRECIO_COSTE : Currency read GetOldPRECIO_COSTEValue; + property OldPRECIO_COSTEIsNull : Boolean read GetOldPRECIO_COSTEIsNull; + property PRECIO_PORTE : Currency read GetPRECIO_PORTEValue write SetPRECIO_PORTEValue; + property PRECIO_PORTEIsNull : Boolean read GetPRECIO_PORTEIsNull write SetPRECIO_PORTEIsNull; + property OldPRECIO_PORTE : Currency read GetOldPRECIO_PORTEValue; + property OldPRECIO_PORTEIsNull : Boolean read GetOldPRECIO_PORTEIsNull; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull : Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldDESCUENTOIsNull : Boolean read GetOldDESCUENTOIsNull; + property PRECIO_NETO : Currency read GetPRECIO_NETOValue write SetPRECIO_NETOValue; + property PRECIO_NETOIsNull : Boolean read GetPRECIO_NETOIsNull write SetPRECIO_NETOIsNull; + property OldPRECIO_NETO : Currency read GetOldPRECIO_NETOValue; + property OldPRECIO_NETOIsNull : Boolean read GetOldPRECIO_NETOIsNull; + property INVENTARIABLE : SmallInt read GetINVENTARIABLEValue write SetINVENTARIABLEValue; + property INVENTARIABLEIsNull : Boolean read GetINVENTARIABLEIsNull write SetINVENTARIABLEIsNull; + property OldINVENTARIABLE : SmallInt read GetOldINVENTARIABLEValue; + property OldINVENTARIABLEIsNull : Boolean read GetOldINVENTARIABLEIsNull; + property ID_PROVEEDOR : Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull : Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property OldID_PROVEEDORIsNull : Boolean read GetOldID_PROVEEDORIsNull; + property NOMBRE_PROVEEDOR : String read GetNOMBRE_PROVEEDORValue write SetNOMBRE_PROVEEDORValue; + property NOMBRE_PROVEEDORIsNull : Boolean read GetNOMBRE_PROVEEDORIsNull write SetNOMBRE_PROVEEDORIsNull; + property OldNOMBRE_PROVEEDOR : String read GetOldNOMBRE_PROVEEDORValue; + property OldNOMBRE_PROVEEDORIsNull : Boolean read GetOldNOMBRE_PROVEEDORIsNull; + property ELIMINADO : SmallInt read GetELIMINADOValue write SetELIMINADOValue; + property ELIMINADOIsNull : Boolean read GetELIMINADOIsNull write SetELIMINADOIsNull; + property OldELIMINADO : SmallInt read GetOldELIMINADOValue; + property OldELIMINADOIsNull : Boolean read GetOldELIMINADOIsNull; + property FABRICANTE : String read GetFABRICANTEValue write SetFABRICANTEValue; + property FABRICANTEIsNull : Boolean read GetFABRICANTEIsNull write SetFABRICANTEIsNull; + property OldFABRICANTE : String read GetOldFABRICANTEValue; + property OldFABRICANTEIsNull : Boolean read GetOldFABRICANTEIsNull; + property REFERENCIA_FABR : String read GetREFERENCIA_FABRValue write SetREFERENCIA_FABRValue; + property REFERENCIA_FABRIsNull : Boolean read GetREFERENCIA_FABRIsNull write SetREFERENCIA_FABRIsNull; + property OldREFERENCIA_FABR : String read GetOldREFERENCIA_FABRValue; + property OldREFERENCIA_FABRIsNull : Boolean read GetOldREFERENCIA_FABRIsNull; + property PARAM_MARGEN : Float read GetPARAM_MARGENValue write SetPARAM_MARGENValue; + property PARAM_MARGENIsNull : Boolean read GetPARAM_MARGENIsNull write SetPARAM_MARGENIsNull; + property OldPARAM_MARGEN : Float read GetOldPARAM_MARGENValue; + property OldPARAM_MARGENIsNull : Boolean read GetOldPARAM_MARGENIsNull; + property PRECIO_PVP_VENTA : Currency read GetPRECIO_PVP_VENTAValue write SetPRECIO_PVP_VENTAValue; + property PRECIO_PVP_VENTAIsNull : Boolean read GetPRECIO_PVP_VENTAIsNull write SetPRECIO_PVP_VENTAIsNull; + property OldPRECIO_PVP_VENTA : Currency read GetOldPRECIO_PVP_VENTAValue; + property OldPRECIO_PVP_VENTAIsNull : Boolean read GetOldPRECIO_PVP_VENTAIsNull; + property TIEMPO : Integer read GetTIEMPOValue write SetTIEMPOValue; + property TIEMPOIsNull : Boolean read GetTIEMPOIsNull write SetTIEMPOIsNull; + property OldTIEMPO : Integer read GetOldTIEMPOValue; + property OldTIEMPOIsNull : Boolean read GetOldTIEMPOIsNull; + property PARAM_TIEMPO : Float read GetPARAM_TIEMPOValue write SetPARAM_TIEMPOValue; + property PARAM_TIEMPOIsNull : Boolean read GetPARAM_TIEMPOIsNull write SetPARAM_TIEMPOIsNull; + property OldPARAM_TIEMPO : Float read GetOldPARAM_TIEMPOValue; + property OldPARAM_TIEMPOIsNull : Boolean read GetOldPARAM_TIEMPOIsNull; + property MANO_OBRA : Currency read GetMANO_OBRAValue write SetMANO_OBRAValue; + property MANO_OBRAIsNull : Boolean read GetMANO_OBRAIsNull write SetMANO_OBRAIsNull; + property OldMANO_OBRA : Currency read GetOldMANO_OBRAValue; + property OldMANO_OBRAIsNull : Boolean read GetOldMANO_OBRAIsNull; + property PRECIO_PVP_TOTAL : Currency read GetPRECIO_PVP_TOTALValue write SetPRECIO_PVP_TOTALValue; + property PRECIO_PVP_TOTALIsNull : Boolean read GetPRECIO_PVP_TOTALIsNull write SetPRECIO_PVP_TOTALIsNull; + property OldPRECIO_PVP_TOTAL : Currency read GetOldPRECIO_PVP_TOTALValue; + property OldPRECIO_PVP_TOTALIsNull : Boolean read GetOldPRECIO_PVP_TOTALIsNull; + property ID_ARTICULO : Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull : Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldID_ARTICULOIsNull : Boolean read GetOldID_ARTICULOIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers, uDAInterfaces; + +{ TProveedoresConArticulosBusinessProcessorRules } +constructor TProveedoresConArticulosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TProveedoresConArticulosBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TProveedoresConArticulosBusinessProcessorRules.GetID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresConArticulosID_PROVEEDOR]; +end; + +function TProveedoresConArticulosBusinessProcessorRules.GetID_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresConArticulosID_PROVEEDOR]); +end; + +function TProveedoresConArticulosBusinessProcessorRules.GetOldID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresConArticulosID_PROVEEDOR]; +end; + +function TProveedoresConArticulosBusinessProcessorRules.GetOldID_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresConArticulosID_PROVEEDOR]); +end; + +procedure TProveedoresConArticulosBusinessProcessorRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresConArticulosID_PROVEEDOR] := aValue; +end; + +procedure TProveedoresConArticulosBusinessProcessorRules.SetID_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresConArticulosID_PROVEEDOR] := Null; +end; + +function TProveedoresConArticulosBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresConArticulosNOMBRE]; +end; + +function TProveedoresConArticulosBusinessProcessorRules.GetNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresConArticulosNOMBRE]); +end; + +function TProveedoresConArticulosBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresConArticulosNOMBRE]; +end; + +function TProveedoresConArticulosBusinessProcessorRules.GetOldNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresConArticulosNOMBRE]); +end; + +procedure TProveedoresConArticulosBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresConArticulosNOMBRE] := aValue; +end; + +procedure TProveedoresConArticulosBusinessProcessorRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresConArticulosNOMBRE] := Null; +end; + + +{ TArticulos_ProveedoresBusinessProcessorRules } +constructor TArticulos_ProveedoresBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TArticulos_ProveedoresBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresID]; +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresID]); +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Articulos_ProveedoresID]; +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Articulos_ProveedoresID]); +end; + +procedure TArticulos_ProveedoresBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresID] := aValue; +end; + +procedure TArticulos_ProveedoresBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresID] := Null; +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresID_ARTICULO]; +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetID_ARTICULOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresID_ARTICULO]); +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetOldID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Articulos_ProveedoresID_ARTICULO]; +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetOldID_ARTICULOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Articulos_ProveedoresID_ARTICULO]); +end; + +procedure TArticulos_ProveedoresBusinessProcessorRules.SetID_ARTICULOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresID_ARTICULO] := aValue; +end; + +procedure TArticulos_ProveedoresBusinessProcessorRules.SetID_ARTICULOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresID_ARTICULO] := Null; +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresID_PROVEEDOR]; +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetID_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresID_PROVEEDOR]); +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetOldID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Articulos_ProveedoresID_PROVEEDOR]; +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetOldID_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Articulos_ProveedoresID_PROVEEDOR]); +end; + +procedure TArticulos_ProveedoresBusinessProcessorRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresID_PROVEEDOR] := aValue; +end; + +procedure TArticulos_ProveedoresBusinessProcessorRules.SetID_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresID_PROVEEDOR] := Null; +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetREFERENCIA_PROVValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresREFERENCIA_PROV]; +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetREFERENCIA_PROVIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresREFERENCIA_PROV]); +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetOldREFERENCIA_PROVValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Articulos_ProveedoresREFERENCIA_PROV]; +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetOldREFERENCIA_PROVIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Articulos_ProveedoresREFERENCIA_PROV]); +end; + +procedure TArticulos_ProveedoresBusinessProcessorRules.SetREFERENCIA_PROVValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresREFERENCIA_PROV] := aValue; +end; + +procedure TArticulos_ProveedoresBusinessProcessorRules.SetREFERENCIA_PROVIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresREFERENCIA_PROV] := Null; +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetPRECIO_COSTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresPRECIO_COSTE]; +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetPRECIO_COSTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresPRECIO_COSTE]); +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetOldPRECIO_COSTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Articulos_ProveedoresPRECIO_COSTE]; +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetOldPRECIO_COSTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Articulos_ProveedoresPRECIO_COSTE]); +end; + +procedure TArticulos_ProveedoresBusinessProcessorRules.SetPRECIO_COSTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresPRECIO_COSTE] := aValue; +end; + +procedure TArticulos_ProveedoresBusinessProcessorRules.SetPRECIO_COSTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresPRECIO_COSTE] := Null; +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresDESCUENTO]; +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresDESCUENTO]); +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Articulos_ProveedoresDESCUENTO]; +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetOldDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Articulos_ProveedoresDESCUENTO]); +end; + +procedure TArticulos_ProveedoresBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresDESCUENTO] := aValue; +end; + +procedure TArticulos_ProveedoresBusinessProcessorRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresDESCUENTO] := Null; +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetPRECIO_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresPRECIO_NETO]; +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetPRECIO_NETOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresPRECIO_NETO]); +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetOldPRECIO_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Articulos_ProveedoresPRECIO_NETO]; +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetOldPRECIO_NETOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Articulos_ProveedoresPRECIO_NETO]); +end; + +procedure TArticulos_ProveedoresBusinessProcessorRules.SetPRECIO_NETOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresPRECIO_NETO] := aValue; +end; + +procedure TArticulos_ProveedoresBusinessProcessorRules.SetPRECIO_NETOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresPRECIO_NETO] := Null; +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetPRECIO_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresPRECIO_PORTE]; +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetPRECIO_PORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresPRECIO_PORTE]); +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetOldPRECIO_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Articulos_ProveedoresPRECIO_PORTE]; +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetOldPRECIO_PORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Articulos_ProveedoresPRECIO_PORTE]); +end; + +procedure TArticulos_ProveedoresBusinessProcessorRules.SetPRECIO_PORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresPRECIO_PORTE] := aValue; +end; + +procedure TArticulos_ProveedoresBusinessProcessorRules.SetPRECIO_PORTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresPRECIO_PORTE] := Null; +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetPRECIO_PVP_VENTAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresPRECIO_PVP_VENTA]; +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetPRECIO_PVP_VENTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresPRECIO_PVP_VENTA]); +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetOldPRECIO_PVP_VENTAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Articulos_ProveedoresPRECIO_PVP_VENTA]; +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetOldPRECIO_PVP_VENTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Articulos_ProveedoresPRECIO_PVP_VENTA]); +end; + +procedure TArticulos_ProveedoresBusinessProcessorRules.SetPRECIO_PVP_VENTAValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresPRECIO_PVP_VENTA] := aValue; +end; + +procedure TArticulos_ProveedoresBusinessProcessorRules.SetPRECIO_PVP_VENTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresPRECIO_PVP_VENTA] := Null; +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetPRECIO_PVP_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresPRECIO_PVP_TOTAL]; +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetPRECIO_PVP_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresPRECIO_PVP_TOTAL]); +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetOldPRECIO_PVP_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Articulos_ProveedoresPRECIO_PVP_TOTAL]; +end; + +function TArticulos_ProveedoresBusinessProcessorRules.GetOldPRECIO_PVP_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Articulos_ProveedoresPRECIO_PVP_TOTAL]); +end; + +procedure TArticulos_ProveedoresBusinessProcessorRules.SetPRECIO_PVP_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresPRECIO_PVP_TOTAL] := aValue; +end; + +procedure TArticulos_ProveedoresBusinessProcessorRules.SetPRECIO_PVP_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Articulos_ProveedoresPRECIO_PVP_TOTAL] := Null; +end; + + +{ TArticulosBusinessProcessorRules } +constructor TArticulosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +var + ROStream: TROStream; +begin + inherited; + + ROStream := TROStream.Create; + ROStream.OnChange := IMAGEN_OnChange; + f_IMAGEN := ROStream; +end; + +destructor TArticulosBusinessProcessorRules.Destroy; +begin + inherited; +end; + +procedure TArticulosBusinessProcessorRules.IMAGEN_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosIMAGEN] := VariantBinaryFromBinary((TROStream(Sender) as IROStream).Stream); +end; + +function TArticulosBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosID]; +end; + +function TArticulosBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosID]); +end; + +function TArticulosBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosID]; +end; + +function TArticulosBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosID]); +end; + +procedure TArticulosBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosID] := aValue; +end; + +procedure TArticulosBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosID] := Null; +end; + +function TArticulosBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosID_EMPRESA]; +end; + +function TArticulosBusinessProcessorRules.GetID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosID_EMPRESA]); +end; + +function TArticulosBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosID_EMPRESA]; +end; + +function TArticulosBusinessProcessorRules.GetOldID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosID_EMPRESA]); +end; + +procedure TArticulosBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosID_EMPRESA] := aValue; +end; + +procedure TArticulosBusinessProcessorRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosID_EMPRESA] := Null; +end; + +function TArticulosBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosREFERENCIA]; +end; + +function TArticulosBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosREFERENCIA]); +end; + +function TArticulosBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosREFERENCIA]; +end; + +function TArticulosBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosREFERENCIA]); +end; + +procedure TArticulosBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosREFERENCIA] := aValue; +end; + +procedure TArticulosBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosREFERENCIA] := Null; +end; + +function TArticulosBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosDESCRIPCION]; +end; + +function TArticulosBusinessProcessorRules.GetDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosDESCRIPCION]); +end; + +function TArticulosBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosDESCRIPCION]; +end; + +function TArticulosBusinessProcessorRules.GetOldDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosDESCRIPCION]); +end; + +procedure TArticulosBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosDESCRIPCION] := aValue; +end; + +procedure TArticulosBusinessProcessorRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosDESCRIPCION] := Null; +end; + +function TArticulosBusinessProcessorRules.GetUNIDAD_MEDIDAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosUNIDAD_MEDIDA]; +end; + +function TArticulosBusinessProcessorRules.GetUNIDAD_MEDIDAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosUNIDAD_MEDIDA]); +end; + +function TArticulosBusinessProcessorRules.GetOldUNIDAD_MEDIDAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosUNIDAD_MEDIDA]; +end; + +function TArticulosBusinessProcessorRules.GetOldUNIDAD_MEDIDAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosUNIDAD_MEDIDA]); +end; + +procedure TArticulosBusinessProcessorRules.SetUNIDAD_MEDIDAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosUNIDAD_MEDIDA] := aValue; +end; + +procedure TArticulosBusinessProcessorRules.SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosUNIDAD_MEDIDA] := Null; +end; + +function TArticulosBusinessProcessorRules.GetFAMILIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosFAMILIA]; +end; + +function TArticulosBusinessProcessorRules.GetFAMILIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosFAMILIA]); +end; + +function TArticulosBusinessProcessorRules.GetOldFAMILIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosFAMILIA]; +end; + +function TArticulosBusinessProcessorRules.GetOldFAMILIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosFAMILIA]); +end; + +procedure TArticulosBusinessProcessorRules.SetFAMILIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosFAMILIA] := aValue; +end; + +procedure TArticulosBusinessProcessorRules.SetFAMILIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosFAMILIA] := Null; +end; + +function TArticulosBusinessProcessorRules.GetIMAGENValue: IROStream; +begin + result := f_IMAGEN; + result.Position := 0; + if not Result.InUpdateMode then begin + WriteVariantBinaryToBinary(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosIMAGEN], result.Stream); + result.Position := 0; + end; +end; + +function TArticulosBusinessProcessorRules.GetIMAGENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosIMAGEN]); +end; + +function TArticulosBusinessProcessorRules.GetOldIMAGENValue: IROStream; +begin + result := NewROStream(); + WriteVariantBinaryToBinary(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosIMAGEN], result.Stream); +end; + +function TArticulosBusinessProcessorRules.GetOldIMAGENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosIMAGEN]); +end; + +procedure TArticulosBusinessProcessorRules.SetIMAGENIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosIMAGEN] := Null; +end; + +function TArticulosBusinessProcessorRules.GetCOMISIONABLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosCOMISIONABLE]; +end; + +function TArticulosBusinessProcessorRules.GetCOMISIONABLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosCOMISIONABLE]); +end; + +function TArticulosBusinessProcessorRules.GetOldCOMISIONABLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosCOMISIONABLE]; +end; + +function TArticulosBusinessProcessorRules.GetOldCOMISIONABLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosCOMISIONABLE]); +end; + +procedure TArticulosBusinessProcessorRules.SetCOMISIONABLEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosCOMISIONABLE] := aValue; +end; + +procedure TArticulosBusinessProcessorRules.SetCOMISIONABLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosCOMISIONABLE] := Null; +end; + +function TArticulosBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosFECHA_ALTA]; +end; + +function TArticulosBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosFECHA_ALTA]); +end; + +function TArticulosBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosFECHA_ALTA]; +end; + +function TArticulosBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosFECHA_ALTA]); +end; + +procedure TArticulosBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosFECHA_ALTA] := aValue; +end; + +procedure TArticulosBusinessProcessorRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosFECHA_ALTA] := Null; +end; + +function TArticulosBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosFECHA_MODIFICACION]; +end; + +function TArticulosBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosFECHA_MODIFICACION]); +end; + +function TArticulosBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosFECHA_MODIFICACION]; +end; + +function TArticulosBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosFECHA_MODIFICACION]); +end; + +procedure TArticulosBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosFECHA_MODIFICACION] := aValue; +end; + +procedure TArticulosBusinessProcessorRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosFECHA_MODIFICACION] := Null; +end; + +function TArticulosBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosUSUARIO]; +end; + +function TArticulosBusinessProcessorRules.GetUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosUSUARIO]); +end; + +function TArticulosBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosUSUARIO]; +end; + +function TArticulosBusinessProcessorRules.GetOldUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosUSUARIO]); +end; + +procedure TArticulosBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosUSUARIO] := aValue; +end; + +procedure TArticulosBusinessProcessorRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosUSUARIO] := Null; +end; + +function TArticulosBusinessProcessorRules.GetREFERENCIA_PROVValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosREFERENCIA_PROV]; +end; + +function TArticulosBusinessProcessorRules.GetREFERENCIA_PROVIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosREFERENCIA_PROV]); +end; + +function TArticulosBusinessProcessorRules.GetOldREFERENCIA_PROVValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosREFERENCIA_PROV]; +end; + +function TArticulosBusinessProcessorRules.GetOldREFERENCIA_PROVIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosREFERENCIA_PROV]); +end; + +procedure TArticulosBusinessProcessorRules.SetREFERENCIA_PROVValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosREFERENCIA_PROV] := aValue; +end; + +procedure TArticulosBusinessProcessorRules.SetREFERENCIA_PROVIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosREFERENCIA_PROV] := Null; +end; + +function TArticulosBusinessProcessorRules.GetPRECIO_COSTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPRECIO_COSTE]; +end; + +function TArticulosBusinessProcessorRules.GetPRECIO_COSTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPRECIO_COSTE]); +end; + +function TArticulosBusinessProcessorRules.GetOldPRECIO_COSTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPRECIO_COSTE]; +end; + +function TArticulosBusinessProcessorRules.GetOldPRECIO_COSTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPRECIO_COSTE]); +end; + +procedure TArticulosBusinessProcessorRules.SetPRECIO_COSTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPRECIO_COSTE] := aValue; +end; + +procedure TArticulosBusinessProcessorRules.SetPRECIO_COSTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPRECIO_COSTE] := Null; +end; + +function TArticulosBusinessProcessorRules.GetPRECIO_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPRECIO_PORTE]; +end; + +function TArticulosBusinessProcessorRules.GetPRECIO_PORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPRECIO_PORTE]); +end; + +function TArticulosBusinessProcessorRules.GetOldPRECIO_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPRECIO_PORTE]; +end; + +function TArticulosBusinessProcessorRules.GetOldPRECIO_PORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPRECIO_PORTE]); +end; + +procedure TArticulosBusinessProcessorRules.SetPRECIO_PORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPRECIO_PORTE] := aValue; +end; + +procedure TArticulosBusinessProcessorRules.SetPRECIO_PORTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPRECIO_PORTE] := Null; +end; + +function TArticulosBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosDESCUENTO]; +end; + +function TArticulosBusinessProcessorRules.GetDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosDESCUENTO]); +end; + +function TArticulosBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosDESCUENTO]; +end; + +function TArticulosBusinessProcessorRules.GetOldDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosDESCUENTO]); +end; + +procedure TArticulosBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosDESCUENTO] := aValue; +end; + +procedure TArticulosBusinessProcessorRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosDESCUENTO] := Null; +end; + +function TArticulosBusinessProcessorRules.GetPRECIO_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPRECIO_NETO]; +end; + +function TArticulosBusinessProcessorRules.GetPRECIO_NETOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPRECIO_NETO]); +end; + +function TArticulosBusinessProcessorRules.GetOldPRECIO_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPRECIO_NETO]; +end; + +function TArticulosBusinessProcessorRules.GetOldPRECIO_NETOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPRECIO_NETO]); +end; + +procedure TArticulosBusinessProcessorRules.SetPRECIO_NETOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPRECIO_NETO] := aValue; +end; + +procedure TArticulosBusinessProcessorRules.SetPRECIO_NETOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPRECIO_NETO] := Null; +end; + +function TArticulosBusinessProcessorRules.GetINVENTARIABLEValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosINVENTARIABLE]; +end; + +function TArticulosBusinessProcessorRules.GetINVENTARIABLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosINVENTARIABLE]); +end; + +function TArticulosBusinessProcessorRules.GetOldINVENTARIABLEValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosINVENTARIABLE]; +end; + +function TArticulosBusinessProcessorRules.GetOldINVENTARIABLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosINVENTARIABLE]); +end; + +procedure TArticulosBusinessProcessorRules.SetINVENTARIABLEValue(const aValue: SmallInt); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosINVENTARIABLE] := aValue; +end; + +procedure TArticulosBusinessProcessorRules.SetINVENTARIABLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosINVENTARIABLE] := Null; +end; + +function TArticulosBusinessProcessorRules.GetELIMINADOValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosELIMINADO]; +end; + +function TArticulosBusinessProcessorRules.GetELIMINADOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosELIMINADO]); +end; + +function TArticulosBusinessProcessorRules.GetOldELIMINADOValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosELIMINADO]; +end; + +function TArticulosBusinessProcessorRules.GetOldELIMINADOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosELIMINADO]); +end; + +procedure TArticulosBusinessProcessorRules.SetELIMINADOValue(const aValue: SmallInt); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosELIMINADO] := aValue; +end; + +procedure TArticulosBusinessProcessorRules.SetELIMINADOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosELIMINADO] := Null; +end; + +function TArticulosBusinessProcessorRules.GetFABRICANTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosFABRICANTE]; +end; + +function TArticulosBusinessProcessorRules.GetFABRICANTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosFABRICANTE]); +end; + +function TArticulosBusinessProcessorRules.GetOldFABRICANTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosFABRICANTE]; +end; + +function TArticulosBusinessProcessorRules.GetOldFABRICANTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosFABRICANTE]); +end; + +procedure TArticulosBusinessProcessorRules.SetFABRICANTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosFABRICANTE] := aValue; +end; + +procedure TArticulosBusinessProcessorRules.SetFABRICANTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosFABRICANTE] := Null; +end; + +function TArticulosBusinessProcessorRules.GetREFERENCIA_FABRValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosREFERENCIA_FABR]; +end; + +function TArticulosBusinessProcessorRules.GetREFERENCIA_FABRIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosREFERENCIA_FABR]); +end; + +function TArticulosBusinessProcessorRules.GetOldREFERENCIA_FABRValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosREFERENCIA_FABR]; +end; + +function TArticulosBusinessProcessorRules.GetOldREFERENCIA_FABRIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosREFERENCIA_FABR]); +end; + +procedure TArticulosBusinessProcessorRules.SetREFERENCIA_FABRValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosREFERENCIA_FABR] := aValue; +end; + +procedure TArticulosBusinessProcessorRules.SetREFERENCIA_FABRIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosREFERENCIA_FABR] := Null; +end; + +function TArticulosBusinessProcessorRules.GetPARAM_MARGENValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPARAM_MARGEN]; +end; + +function TArticulosBusinessProcessorRules.GetPARAM_MARGENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPARAM_MARGEN]); +end; + +function TArticulosBusinessProcessorRules.GetOldPARAM_MARGENValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPARAM_MARGEN]; +end; + +function TArticulosBusinessProcessorRules.GetOldPARAM_MARGENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPARAM_MARGEN]); +end; + +procedure TArticulosBusinessProcessorRules.SetPARAM_MARGENValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPARAM_MARGEN] := aValue; +end; + +procedure TArticulosBusinessProcessorRules.SetPARAM_MARGENIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPARAM_MARGEN] := Null; +end; + +function TArticulosBusinessProcessorRules.GetPRECIO_PVP_VENTAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPRECIO_PVP_VENTA]; +end; + +function TArticulosBusinessProcessorRules.GetPRECIO_PVP_VENTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPRECIO_PVP_VENTA]); +end; + +function TArticulosBusinessProcessorRules.GetOldPRECIO_PVP_VENTAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPRECIO_PVP_VENTA]; +end; + +function TArticulosBusinessProcessorRules.GetOldPRECIO_PVP_VENTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPRECIO_PVP_VENTA]); +end; + +procedure TArticulosBusinessProcessorRules.SetPRECIO_PVP_VENTAValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPRECIO_PVP_VENTA] := aValue; +end; + +procedure TArticulosBusinessProcessorRules.SetPRECIO_PVP_VENTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPRECIO_PVP_VENTA] := Null; +end; + +function TArticulosBusinessProcessorRules.GetTIEMPOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosTIEMPO]; +end; + +function TArticulosBusinessProcessorRules.GetTIEMPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosTIEMPO]); +end; + +function TArticulosBusinessProcessorRules.GetOldTIEMPOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosTIEMPO]; +end; + +function TArticulosBusinessProcessorRules.GetOldTIEMPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosTIEMPO]); +end; + +procedure TArticulosBusinessProcessorRules.SetTIEMPOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosTIEMPO] := aValue; +end; + +procedure TArticulosBusinessProcessorRules.SetTIEMPOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosTIEMPO] := Null; +end; + +function TArticulosBusinessProcessorRules.GetPARAM_TIEMPOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPARAM_TIEMPO]; +end; + +function TArticulosBusinessProcessorRules.GetPARAM_TIEMPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPARAM_TIEMPO]); +end; + +function TArticulosBusinessProcessorRules.GetOldPARAM_TIEMPOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPARAM_TIEMPO]; +end; + +function TArticulosBusinessProcessorRules.GetOldPARAM_TIEMPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPARAM_TIEMPO]); +end; + +procedure TArticulosBusinessProcessorRules.SetPARAM_TIEMPOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPARAM_TIEMPO] := aValue; +end; + +procedure TArticulosBusinessProcessorRules.SetPARAM_TIEMPOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPARAM_TIEMPO] := Null; +end; + +function TArticulosBusinessProcessorRules.GetMANO_OBRAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosMANO_OBRA]; +end; + +function TArticulosBusinessProcessorRules.GetMANO_OBRAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosMANO_OBRA]); +end; + +function TArticulosBusinessProcessorRules.GetOldMANO_OBRAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosMANO_OBRA]; +end; + +function TArticulosBusinessProcessorRules.GetOldMANO_OBRAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosMANO_OBRA]); +end; + +procedure TArticulosBusinessProcessorRules.SetMANO_OBRAValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosMANO_OBRA] := aValue; +end; + +procedure TArticulosBusinessProcessorRules.SetMANO_OBRAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosMANO_OBRA] := Null; +end; + +function TArticulosBusinessProcessorRules.GetPRECIO_PVP_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPRECIO_PVP_TOTAL]; +end; + +function TArticulosBusinessProcessorRules.GetPRECIO_PVP_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPRECIO_PVP_TOTAL]); +end; + +function TArticulosBusinessProcessorRules.GetOldPRECIO_PVP_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPRECIO_PVP_TOTAL]; +end; + +function TArticulosBusinessProcessorRules.GetOldPRECIO_PVP_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPRECIO_PVP_TOTAL]); +end; + +procedure TArticulosBusinessProcessorRules.SetPRECIO_PVP_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPRECIO_PVP_TOTAL] := aValue; +end; + +procedure TArticulosBusinessProcessorRules.SetPRECIO_PVP_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPRECIO_PVP_TOTAL] := Null; +end; + + +{ TArticulosParaCompraBusinessProcessorRules } +constructor TArticulosParaCompraBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +var + ROStream: TROStream; +begin + inherited; + + ROStream := TROStream.Create; + ROStream.OnChange := IMAGEN_OnChange; + f_IMAGEN := ROStream; +end; + +destructor TArticulosParaCompraBusinessProcessorRules.Destroy; +begin + inherited; +end; + +procedure TArticulosParaCompraBusinessProcessorRules.IMAGEN_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraIMAGEN] := VariantBinaryFromBinary((TROStream(Sender) as IROStream).Stream); +end; + +function TArticulosParaCompraBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraID]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraID]); +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraID]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraID]); +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraID] := aValue; +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraID] := Null; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraID_EMPRESA]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraID_EMPRESA]); +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraID_EMPRESA]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraID_EMPRESA]); +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraID_EMPRESA] := aValue; +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraID_EMPRESA] := Null; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraREFERENCIA]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraREFERENCIA]); +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraREFERENCIA]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraREFERENCIA]); +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraREFERENCIA] := aValue; +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraREFERENCIA] := Null; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraDESCRIPCION]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraDESCRIPCION]); +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraDESCRIPCION]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraDESCRIPCION]); +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraDESCRIPCION] := aValue; +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraDESCRIPCION] := Null; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetUNIDAD_MEDIDAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraUNIDAD_MEDIDA]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetUNIDAD_MEDIDAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraUNIDAD_MEDIDA]); +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldUNIDAD_MEDIDAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraUNIDAD_MEDIDA]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldUNIDAD_MEDIDAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraUNIDAD_MEDIDA]); +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetUNIDAD_MEDIDAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraUNIDAD_MEDIDA] := aValue; +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraUNIDAD_MEDIDA] := Null; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetFAMILIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraFAMILIA]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetFAMILIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraFAMILIA]); +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldFAMILIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraFAMILIA]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldFAMILIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraFAMILIA]); +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetFAMILIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraFAMILIA] := aValue; +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetFAMILIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraFAMILIA] := Null; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetIMAGENValue: IROStream; +begin + result := f_IMAGEN; + result.Position := 0; + if not Result.InUpdateMode then begin + WriteVariantBinaryToBinary(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraIMAGEN], result.Stream); + result.Position := 0; + end; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetIMAGENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraIMAGEN]); +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldIMAGENValue: IROStream; +begin + result := NewROStream(); + WriteVariantBinaryToBinary(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraIMAGEN], result.Stream); +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldIMAGENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraIMAGEN]); +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetIMAGENIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraIMAGEN] := Null; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetCOMISIONABLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraCOMISIONABLE]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetCOMISIONABLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraCOMISIONABLE]); +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldCOMISIONABLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraCOMISIONABLE]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldCOMISIONABLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraCOMISIONABLE]); +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetCOMISIONABLEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraCOMISIONABLE] := aValue; +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetCOMISIONABLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraCOMISIONABLE] := Null; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraFECHA_ALTA]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraFECHA_ALTA]); +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraFECHA_ALTA]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraFECHA_ALTA]); +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraFECHA_ALTA] := aValue; +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraFECHA_ALTA] := Null; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraFECHA_MODIFICACION]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraFECHA_MODIFICACION]); +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraFECHA_MODIFICACION]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraFECHA_MODIFICACION]); +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraFECHA_MODIFICACION] := aValue; +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraFECHA_MODIFICACION] := Null; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraUSUARIO]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraUSUARIO]); +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraUSUARIO]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraUSUARIO]); +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraUSUARIO] := aValue; +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraUSUARIO] := Null; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetREFERENCIA_PROVValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraREFERENCIA_PROV]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetREFERENCIA_PROVIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraREFERENCIA_PROV]); +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldREFERENCIA_PROVValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraREFERENCIA_PROV]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldREFERENCIA_PROVIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraREFERENCIA_PROV]); +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetREFERENCIA_PROVValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraREFERENCIA_PROV] := aValue; +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetREFERENCIA_PROVIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraREFERENCIA_PROV] := Null; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetPRECIO_COSTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraPRECIO_COSTE]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetPRECIO_COSTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraPRECIO_COSTE]); +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldPRECIO_COSTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraPRECIO_COSTE]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldPRECIO_COSTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraPRECIO_COSTE]); +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetPRECIO_COSTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraPRECIO_COSTE] := aValue; +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetPRECIO_COSTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraPRECIO_COSTE] := Null; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetPRECIO_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraPRECIO_PORTE]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetPRECIO_PORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraPRECIO_PORTE]); +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldPRECIO_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraPRECIO_PORTE]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldPRECIO_PORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraPRECIO_PORTE]); +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetPRECIO_PORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraPRECIO_PORTE] := aValue; +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetPRECIO_PORTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraPRECIO_PORTE] := Null; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraDESCUENTO]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraDESCUENTO]); +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraDESCUENTO]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraDESCUENTO]); +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraDESCUENTO] := aValue; +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraDESCUENTO] := Null; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetPRECIO_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraPRECIO_NETO]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetPRECIO_NETOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraPRECIO_NETO]); +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldPRECIO_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraPRECIO_NETO]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldPRECIO_NETOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraPRECIO_NETO]); +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetPRECIO_NETOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraPRECIO_NETO] := aValue; +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetPRECIO_NETOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraPRECIO_NETO] := Null; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetINVENTARIABLEValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraINVENTARIABLE]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetINVENTARIABLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraINVENTARIABLE]); +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldINVENTARIABLEValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraINVENTARIABLE]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldINVENTARIABLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraINVENTARIABLE]); +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetINVENTARIABLEValue(const aValue: SmallInt); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraINVENTARIABLE] := aValue; +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetINVENTARIABLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraINVENTARIABLE] := Null; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraID_PROVEEDOR]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetID_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraID_PROVEEDOR]); +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraID_PROVEEDOR]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldID_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraID_PROVEEDOR]); +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraID_PROVEEDOR] := aValue; +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetID_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraID_PROVEEDOR] := Null; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetNOMBRE_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraNOMBRE_PROVEEDOR]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetNOMBRE_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraNOMBRE_PROVEEDOR]); +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldNOMBRE_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraNOMBRE_PROVEEDOR]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldNOMBRE_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraNOMBRE_PROVEEDOR]); +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetNOMBRE_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraNOMBRE_PROVEEDOR] := aValue; +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetNOMBRE_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraNOMBRE_PROVEEDOR] := Null; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetELIMINADOValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraELIMINADO]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetELIMINADOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraELIMINADO]); +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldELIMINADOValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraELIMINADO]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldELIMINADOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraELIMINADO]); +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetELIMINADOValue(const aValue: SmallInt); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraELIMINADO] := aValue; +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetELIMINADOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraELIMINADO] := Null; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetFABRICANTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraFABRICANTE]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetFABRICANTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraFABRICANTE]); +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldFABRICANTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraFABRICANTE]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldFABRICANTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraFABRICANTE]); +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetFABRICANTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraFABRICANTE] := aValue; +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetFABRICANTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraFABRICANTE] := Null; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetREFERENCIA_FABRValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraREFERENCIA_FABR]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetREFERENCIA_FABRIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraREFERENCIA_FABR]); +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldREFERENCIA_FABRValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraREFERENCIA_FABR]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldREFERENCIA_FABRIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraREFERENCIA_FABR]); +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetREFERENCIA_FABRValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraREFERENCIA_FABR] := aValue; +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetREFERENCIA_FABRIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraREFERENCIA_FABR] := Null; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetPARAM_MARGENValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraPARAM_MARGEN]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetPARAM_MARGENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraPARAM_MARGEN]); +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldPARAM_MARGENValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraPARAM_MARGEN]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldPARAM_MARGENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraPARAM_MARGEN]); +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetPARAM_MARGENValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraPARAM_MARGEN] := aValue; +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetPARAM_MARGENIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraPARAM_MARGEN] := Null; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetPRECIO_PVP_VENTAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraPRECIO_PVP_VENTA]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetPRECIO_PVP_VENTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraPRECIO_PVP_VENTA]); +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldPRECIO_PVP_VENTAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraPRECIO_PVP_VENTA]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldPRECIO_PVP_VENTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraPRECIO_PVP_VENTA]); +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetPRECIO_PVP_VENTAValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraPRECIO_PVP_VENTA] := aValue; +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetPRECIO_PVP_VENTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraPRECIO_PVP_VENTA] := Null; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetTIEMPOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraTIEMPO]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetTIEMPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraTIEMPO]); +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldTIEMPOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraTIEMPO]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldTIEMPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraTIEMPO]); +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetTIEMPOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraTIEMPO] := aValue; +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetTIEMPOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraTIEMPO] := Null; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetPARAM_TIEMPOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraPARAM_TIEMPO]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetPARAM_TIEMPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraPARAM_TIEMPO]); +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldPARAM_TIEMPOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraPARAM_TIEMPO]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldPARAM_TIEMPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraPARAM_TIEMPO]); +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetPARAM_TIEMPOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraPARAM_TIEMPO] := aValue; +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetPARAM_TIEMPOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraPARAM_TIEMPO] := Null; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetMANO_OBRAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraMANO_OBRA]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetMANO_OBRAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraMANO_OBRA]); +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldMANO_OBRAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraMANO_OBRA]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldMANO_OBRAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraMANO_OBRA]); +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetMANO_OBRAValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraMANO_OBRA] := aValue; +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetMANO_OBRAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraMANO_OBRA] := Null; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetPRECIO_PVP_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraPRECIO_PVP_TOTAL]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetPRECIO_PVP_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraPRECIO_PVP_TOTAL]); +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldPRECIO_PVP_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraPRECIO_PVP_TOTAL]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldPRECIO_PVP_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraPRECIO_PVP_TOTAL]); +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetPRECIO_PVP_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraPRECIO_PVP_TOTAL] := aValue; +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetPRECIO_PVP_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraPRECIO_PVP_TOTAL] := Null; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraID_ARTICULO]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetID_ARTICULOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraID_ARTICULO]); +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraID_ARTICULO]; +end; + +function TArticulosParaCompraBusinessProcessorRules.GetOldID_ARTICULOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraID_ARTICULO]); +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetID_ARTICULOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraID_ARTICULO] := aValue; +end; + +procedure TArticulosParaCompraBusinessProcessorRules.SetID_ARTICULOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraID_ARTICULO] := Null; +end; + + +initialization + RegisterBusinessProcessorRules(RID_ProveedoresConArticulosDelta, TProveedoresConArticulosBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_Articulos_ProveedoresDelta, TArticulos_ProveedoresBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_ArticulosDelta, TArticulosBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_ArticulosParaCompraDelta, TArticulosParaCompraBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Articulos/Model/uBizArticulos.dcu b/Source/Modulos/Articulos/Model/uBizArticulos.dcu new file mode 100644 index 0000000..c1e4de4 Binary files /dev/null and b/Source/Modulos/Articulos/Model/uBizArticulos.dcu differ diff --git a/Source/Modulos/Articulos/Model/uBizArticulos.pas b/Source/Modulos/Articulos/Model/uBizArticulos.pas new file mode 100644 index 0000000..9e9d304 --- /dev/null +++ b/Source/Modulos/Articulos/Model/uBizArticulos.pas @@ -0,0 +1,170 @@ +unit uBizArticulos; + +interface + +uses + uDAInterfaces, uDADataTable, schArticulosClient_Intf, uDBSelectionListUtils, + uBizArticulosProveedores; + +const + BIZ_CLIENT_ARTICULO = 'Client.Articulo'; + +type + IBizArticulo = interface(IArticulos) + ['{06AB61B1-C225-4791-9F5E-00A60DBA7FFD}'] + function EsNuevo : Boolean; + function HayImagen: Boolean; + procedure SalvarImagen(const AFileName: String); + procedure CargarImagen(const AFileName: String); + procedure QuitarImagen; + + function GetProveedores: IBizArticulosProveedores; + procedure SetProveedores(Value: IBizArticulosProveedores); + property Proveedores: IBizArticulosProveedores read GetProveedores write SetProveedores; + end; + + TBizArticulo = class(TArticulosDataTableRules, IBizArticulo, ISeleccionable) + protected + FProveedores : IBizArticulosProveedores; + FProveedoresLink : TDADataSource; + FSeleccionableInterface : ISeleccionable; + procedure OnNewRecord(Sender: TDADataTable); override; + procedure PARAMETROSPRECIOOnChange(Sender: TDACustomField); + function GetProveedores: IBizArticulosProveedores; + procedure SetProveedores(Value: IBizArticulosProveedores); + + public + procedure IniciarValoresArticuloNuevo; virtual; + function HayImagen: Boolean; + procedure SalvarImagen(const AFileName: String); + procedure CargarImagen(const AFileName: String); + procedure QuitarImagen; + function EsNuevo : Boolean; + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + property SeleccionableInterface : ISeleccionable read FSeleccionableInterface + write FSeleccionableInterface implements ISeleccionable; + property Proveedores: IBizArticulosProveedores read GetProveedores write SetProveedores; + end; + +implementation + +uses + uFactuGES_App, uDataTableUtils, SysUtils, uROClasses, Classes; + +{ TBizArticulo } + +procedure TBizArticulo.CargarImagen(const AFileName: String); +begin +{ inherited; + DataTable.Edit; + DataTable.FieldByName(fld_ArticulosIMAGEN).LoadFromFile(AFileName); + DataTable.Post;} +end; + +constructor TBizArticulo.Create(aDataTable: TDADataTable); +begin + inherited; + + with aDataTable do + begin + FieldByName(fld_ArticulosTIEMPO).OnChange := PARAMETROSPRECIOOnChange; + FieldByName(fld_ArticulosPARAM_TIEMPO).OnChange := PARAMETROSPRECIOOnChange; + FieldByName(fld_ArticulosPARAM_MARGEN).OnChange := PARAMETROSPRECIOOnChange; + end; + + FProveedoresLink := TDADataSource.Create(NIL); + FProveedoresLink.DataTable := aDataTable; + + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +destructor TBizArticulo.Destroy; +begin + FProveedores := NIL; + FProveedoresLink.Free; + + FSeleccionableInterface := NIL; + inherited; +end; + +function TBizArticulo.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +function TBizArticulo.GetProveedores: IBizArticulosProveedores; +begin + Result := FProveedores; +end; + +function TBizArticulo.HayImagen: Boolean; +{var + AStream : TMemoryStream; + AROStream : IROStream;} +begin +{ AStream := TMemoryStream.Create; + AROStream := TROStream.Create(AStream, False); + try + DataTable.FieldByName(fld_ArticulosIMAGEN).SaveToStream(AROStream); + Result := (AROStream.Size > 0); + finally + AROStream := NIL; + FreeAndNIL(AStream); + end;} +end; + +procedure TBizArticulo.IniciarValoresArticuloNuevo; +begin + ID_EMPRESA := AppFactuGES.EmpresaActiva.ID; + USUARIO := AppFactuGES.UsuarioActivo.UserName; + PARAM_TIEMPO := AppFactuGES.EmpresaActiva.PARAM_TIEMPO; + PARAM_MARGEN := AppFactuGES.EmpresaActiva.PARAM_MARGEN; + INVENTARIABLE := 1; + COMISIONABLE := 1; + ELIMINADO := 0; +end; + +procedure TBizArticulo.OnNewRecord(Sender: TDADataTable); +begin + inherited; + IniciarValoresArticuloNuevo; +end; + +procedure TBizArticulo.PARAMETROSPRECIOOnChange(Sender: TDACustomField); +begin + if not Self.DataTable.Editing then + Edit; + + MANO_OBRA := TIEMPO * PARAM_TIEMPO; + + if Assigned(Self.Proveedores) then + begin + Self.Proveedores.RecalcularImportes; + end; +end; + +procedure TBizArticulo.QuitarImagen; +begin +{ DataTable.Edit; + DataTable.Fields[idx_ArticulosIMAGEN].Clear; + DataTable.Post;} +end; + +procedure TBizArticulo.SalvarImagen(const AFileName: String); +begin +// DataTable.FieldByName(fld_ArticulosIMAGEN).SaveToFile(AFileName); +end; + +procedure TBizArticulo.SetProveedores(Value: IBizArticulosProveedores); +begin + FProveedores := Value; + EnlazarMaestroDetalle(FProveedoresLink, FProveedores); +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_ARTICULO, TBizArticulo); + +finalization + +end. diff --git a/Source/Modulos/Articulos/Model/uBizArticulosProveedores.dcu b/Source/Modulos/Articulos/Model/uBizArticulosProveedores.dcu new file mode 100644 index 0000000..1fbeced Binary files /dev/null and b/Source/Modulos/Articulos/Model/uBizArticulosProveedores.dcu differ diff --git a/Source/Modulos/Articulos/Model/uBizArticulosProveedores.pas b/Source/Modulos/Articulos/Model/uBizArticulosProveedores.pas new file mode 100644 index 0000000..582bc5a --- /dev/null +++ b/Source/Modulos/Articulos/Model/uBizArticulosProveedores.pas @@ -0,0 +1,126 @@ +unit uBizArticulosProveedores; + +interface + +uses + uDAInterfaces, uDADataTable, + schArticulosClient_Intf; + +const + BIZ_CLIENT_ARTICULOS_PROVEEDORES = 'Client.ArticulosProveedores'; + +type + IBizArticulosProveedores = interface(IArticulos_Proveedores) + ['{C5F703CB-5400-435C-81E5-9E716104D1C7}'] + function EsNuevo : Boolean; + procedure RecalcularImportes; + end; + + TBizArticulosProveedores = class(TArticulos_ProveedoresDataTableRules, IBizArticulosProveedores) + private + procedure RecalcularImporte; + protected + procedure BeforeInsert(Sender: TDADataTable); override; + procedure OnNewRecord(Sender: TDADataTable); override; + procedure PARAMETROSPRECIOOnChange(Sender: TDACustomField); + + public + procedure RecalcularImportes; + function EsNuevo : Boolean; + constructor Create(aDataTable: TDADataTable); override; + end; + +implementation + +uses + Dialogs,uDataTableUtils, DB; + +{ TBizArticulosProveedores } + +procedure TBizArticulosProveedores.BeforeInsert(Sender: TDADataTable); +var + AMasterTable : TDADataTable; +begin + inherited; + AMasterTable := DataTable.GetMasterDataTable; + if Assigned(AMasterTable) and (AMasterTable.State in dsEditModes) then + AMasterTable.Post; +end; + +constructor TBizArticulosProveedores.Create(aDataTable: TDADataTable); +begin + inherited; + + with aDataTable do + begin + FieldByName(fld_Articulos_ProveedoresPRECIO_COSTE).OnChange := PARAMETROSPRECIOOnChange; + FieldByName(fld_Articulos_ProveedoresDESCUENTO).OnChange := PARAMETROSPRECIOOnChange; + FieldByName(fld_Articulos_ProveedoresPRECIO_PORTE).OnChange := PARAMETROSPRECIOOnChange; + end; +end; + +function TBizArticulosProveedores.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +procedure TBizArticulosProveedores.OnNewRecord(Sender: TDADataTable); +begin + inherited; + PRECIO_PORTE := 0; + PRECIO_COSTE := 0; + DESCUENTO := 0; + PRECIO_NETO := 0; +end; + +procedure TBizArticulosProveedores.PARAMETROSPRECIOOnChange(Sender: TDACustomField); +begin + RecalcularImporte; +end; + +procedure TBizArticulosProveedores.RecalcularImporte; +begin + with Self.DataTable do + begin + if not Editing then + Edit; + + //OJO SI ALGUNA VEZ ESTO CAMBIA TAMBIEN HAY QUE CAMBIAR EL PROCEDIMIENTO ALMACENADO PRO_ART_RECALCULAR_PVP + Self.PRECIO_NETO := Self.PRECIO_COSTE - (Self.PRECIO_COSTE * (Self.DESCUENTO / 100)); + + Self.PRECIO_PVP_VENTA := (Self.PRECIO_NETO + Self.PRECIO_PORTE) * ((MasterSource.DataTable.FieldByName(fld_ArticulosPARAM_MARGEN).AsFloat / 100) + 1); + + Self.PRECIO_PVP_TOTAL := Self.PRECIO_PVP_VENTA + MasterSource.DataTable.FieldByName(fld_ArticulosMANO_OBRA).AsFloat; + end; +end; + +procedure TBizArticulosProveedores.RecalcularImportes; +var + AIdAux: Integer; + +begin + AIdAux := Self.ID; + with Self.DataTable do + begin + DisableControls; + try + First; + while not EOF do + begin + RecalcularImporte; + Post; + Next; + end; + First; + Locate(fld_Articulos_ProveedoresID, AIdAux, []); + finally + EnableControls; + end; + end; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_ARTICULOS_PROVEEDORES, TBizArticulosProveedores); + + +end. diff --git a/Source/Modulos/Articulos/Model/uBizArticulosServer.dcu b/Source/Modulos/Articulos/Model/uBizArticulosServer.dcu new file mode 100644 index 0000000..911a166 Binary files /dev/null and b/Source/Modulos/Articulos/Model/uBizArticulosServer.dcu differ diff --git a/Source/Modulos/Articulos/Model/uBizArticulosServer.pas b/Source/Modulos/Articulos/Model/uBizArticulosServer.pas new file mode 100644 index 0000000..a07bbf1 --- /dev/null +++ b/Source/Modulos/Articulos/Model/uBizArticulosServer.pas @@ -0,0 +1,101 @@ +unit uBizArticulosServer; + +interface + +uses + uDAInterfaces, uDADelta, uDABusinessProcessor, + schArticulosServer_Intf; + +const + BIZ_SERVER_ARTICULOS = 'Server.Articulos'; + +type + TBizArticulosServer = class(TArticulosBusinessProcessorRules) + private + FReferenciaAutomatica : Boolean; + function DarReferencia : String; + function IncrementarReferencia : Boolean; + protected + procedure BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); override; + procedure AfterProcessChange(Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); override; + end; + +implementation + +uses + Variants, uDAClasses, FactuGES_Intf, uROServer, SysUtils, uBusinessUtils, uROClasses, + uDataModuleServer, schArticulosClient_Intf; + +const + REF_ARTICULOS = 'REF_ARTICULOS'; + +{ TBizArticulosServer } + +procedure TBizArticulosServer.AfterProcessChange( + Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); +begin + inherited; + { Por defecto, mantenemos los deltas por si alguna tabla hija los necesita } + CanRemoveFromDelta := False; + + case aChange.ChangeType of + ctInsert, ctUpdate: begin + if FReferenciaAutomatica then + begin + IncrementarReferencia; + FReferenciaAutomatica := False; + end; + end; + end; +end; + +procedure TBizArticulosServer.BeforeProcessDelta( + Sender: TDABusinessProcessor; const aDelta: IDADelta); +begin + FReferenciaAutomatica := False; + + case Sender.CurrentChange.ChangeType of + ctInsert, ctUpdate: begin + //Si la referencia no ha sido asignada le asignamos una nosotros + if REFERENCIAIsNull or (Length(REFERENCIA) = 0) then + begin + FReferenciaAutomatica := True; + REFERENCIA := DarReferencia; + end; + end; + end; +end; + +function TBizArticulosServer.DarReferencia: String; +var + AReferenciasService : IsrvReferencias; + Intf : IInterface; + AClientID : TGUID; +begin + CreateGUID(AClientID); + + GetClassFactory('srvReferencias').CreateInstance(AClientID, Intf); + AReferenciasService := Intf as IsrvReferencias; + Result := AReferenciasService.DarNuevaReferencia(REF_ARTICULOS, -1) +end; + +function TBizArticulosServer.IncrementarReferencia: Boolean; +var + AReferenciasService : IsrvReferencias; + Intf : IInterface; + AClientID : TGUID; +begin + CreateGUID(AClientID); + + GetClassFactory('srvReferencias').CreateInstance(AClientID, Intf); + AReferenciasService := Intf as IsrvReferencias; + Result := AReferenciasService.IncrementarValorReferencia(REF_ARTICULOS, Self.REFERENCIA, -1) +end; + + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_ARTICULOS, TBizArticulosServer); + +end. diff --git a/Source/Modulos/Articulos/Plugin/Articulos_plugin.bdsproj b/Source/Modulos/Articulos/Plugin/Articulos_plugin.bdsproj new file mode 100644 index 0000000..44d9a39 --- /dev/null +++ b/Source/Modulos/Articulos/Plugin/Articulos_plugin.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + Articulos_plugin.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Articulos/Plugin/Articulos_plugin.dcu b/Source/Modulos/Articulos/Plugin/Articulos_plugin.dcu new file mode 100644 index 0000000..5053742 Binary files /dev/null and b/Source/Modulos/Articulos/Plugin/Articulos_plugin.dcu differ diff --git a/Source/Modulos/Articulos/Plugin/Articulos_plugin.dpk b/Source/Modulos/Articulos/Plugin/Articulos_plugin.dpk new file mode 100644 index 0000000..d330425 Binary files /dev/null and b/Source/Modulos/Articulos/Plugin/Articulos_plugin.dpk differ diff --git a/Source/Modulos/Articulos/Plugin/Articulos_plugin.dproj b/Source/Modulos/Articulos/Plugin/Articulos_plugin.dproj new file mode 100644 index 0000000..a52a5e2 --- /dev/null +++ b/Source/Modulos/Articulos/Plugin/Articulos_plugin.dproj @@ -0,0 +1,580 @@ + + + {e4a70e78-dcab-415c-9e35-1956bd41ae1a} + Articulos_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Articulos_plugin.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + DEBUG + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + Articulos_plugin.dpk + + + + + + + MainSource + + + + + + + + + + diff --git a/Source/Modulos/Articulos/Plugin/Articulos_plugin.rc b/Source/Modulos/Articulos/Plugin/Articulos_plugin.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Articulos/Plugin/Articulos_plugin.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Articulos/Plugin/Articulos_plugin.res b/Source/Modulos/Articulos/Plugin/Articulos_plugin.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Articulos/Plugin/Articulos_plugin.res differ diff --git a/Source/Modulos/Articulos/Plugin/uPluginArticulos.dcu b/Source/Modulos/Articulos/Plugin/uPluginArticulos.dcu new file mode 100644 index 0000000..a56fb89 Binary files /dev/null and b/Source/Modulos/Articulos/Plugin/uPluginArticulos.dcu differ diff --git a/Source/Modulos/Articulos/Plugin/uPluginArticulos.dfm b/Source/Modulos/Articulos/Plugin/uPluginArticulos.dfm new file mode 100644 index 0000000..6272140 --- /dev/null +++ b/Source/Modulos/Articulos/Plugin/uPluginArticulos.dfm @@ -0,0 +1,112 @@ +object PluginArticulos: TPluginArticulos + OldCreateOrder = True + DefaultAction = actArticulos + Description = 'Ventas' + ModuleMenu = MainMenu + ModuleName = 'Articulos' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software' + Version = '1.0.0' + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000015E4944415478DA + 63FCFFFF3F032D0123CC822BA552CE406A0F1EB52E84E475BA9FEDC567C17FD5 + 961A0676F62C0C9D3F7F4E63981DDBC290BA18BF7CCEAA678C782D00BA00AC18 + 0EBE7F6760F8F19D61FA0E4306966DA9200308C993600148F38777607AFA4967 + 4C0BB0CB1369014CF37B20FEF19361FACD60540B70CB1361C1875E84E60F1F20 + 2E7C958AB000BF3C11163CA8466806BB1068C0AF728405F8E5F15B004A45D397 + CB634D83200340A9089F3C210B9C0F3CC49DCE1DE4195C08C9539C0FB0B99010 + 20351F50D1023CE99C88620504C041466A3E8059803338D18394D47CC088E118 + 64F0F91303C397CF0CD30F58C1D5939A0F705B00359CE133D082B3EED82D2094 + 0F705A806438D8073743B05A40301FC0D2398A056886337CFDC230FD4902A605 + A400B8056F3A300C67F8F29561FA876C2A5970B38481E1D72F14C319BE7D4189 + 33B22DC0175FC87146AE0578E30B39CEC8B2801440730B007C5C13EF8DA2E719 + 0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + object actArticulos: TAction + Category = 'Ventas' + Caption = 'Lista de art'#237'culos' + ImageIndex = 0 + OnExecute = actArticulosExecute + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object N1: TMenuItem + Caption = 'Log'#237'stica' + object Articulos1: TMenuItem + Tag = 101 + Action = actArticulos + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001004944415478DA + 63BC5C22F99F8148A0D3FD8C115D8C1164806A4B0D84F7FD3B03C3FD3B0CB3DB + 3732A42EC614CB5985CF00A8C2E9177D1858B6A5420C4013C36D4075315821C3 + F5AB0CD37F95430C98852986DB80287FB02D300036A012530CA701071E121788 + F8C3002DC072573F67FCFF9F7004E10C449001403967A09A3D78F4BBE00C44A8 + 0160C3D9D9B33074FEFC398D61766C0BEE408419004C3C60C5700072E98FEF0C + D3771882D5E10C44AC0680347F7807A6A79F748618802FA0AE944A210C80697E + 0FC43F7E324CBF194C82011F7A119A3F7C80B8E0552A09063CA8466806BBE03B + 3CB0091A008A85E9CBE5B1CA13638033308071A6030779061700E6FAF742387F + 63F70000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000001374944415478DA + 63FCFFFF3F033D01E3C8B2F04AA9943390DA43408F0B316A74BA9FED25C6C2FF + AA2D350CECEC59584DF9F9731AC3ECD81686D4C584D5E4AC7AC6489485409781 + 35A180CF9F1818BE7C66987EC08A81655B2AC83062D4906921D42086CF40C3CE + BA63B710BB1A322C443208ECFA9B219816E25643A2856806317CFDC230FD4902 + AA85F8D59060E19B0E0C8318BE7C6598FE211B61216135245878B38481E1D72F + 148318BE015DFFAB1C61216135C45908CA16D397CB33E00220C340D982901A62 + 2D743EF0107FA67690677021460D55333E2ED71303C8CDF834B4104FA626B6EC + 450E5E72333ECC4292A380DC8CCF88D581444401B9191FB78504CA5572333E76 + 0B892857C9CAF8582D24B25C2527E397022DE921270A302C2415901A0554B190 + 9428A086854495BD38333E3DC0F0B71000FEC966E74A55381F0000000049454E + 44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 80 + Bitmap = {} + end +end diff --git a/Source/Modulos/Articulos/Plugin/uPluginArticulos.pas b/Source/Modulos/Articulos/Plugin/uPluginArticulos.pas new file mode 100644 index 0000000..0b1e210 --- /dev/null +++ b/Source/Modulos/Articulos/Plugin/uPluginArticulos.pas @@ -0,0 +1,72 @@ +unit uPluginArticulos; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCArticulos = interface(IInterface) + ['{ED6B467B-B6DD-4E2E-8E54-BCEB8FD0A012}'] + end; + + TPluginArticulos = class(TModuleController, IMCArticulos) + actArticulos: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + N1: TMenuItem; + Articulos1: TMenuItem; + procedure actArticulosExecute(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, + uArticulosController, uBizArticulos, uArticulosViewRegister; + +function GetModule : TModuleController; +begin + Result := TPluginArticulos.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +procedure TPluginArticulos.actArticulosExecute(Sender: TObject); +var + AArticulosController : IArticulosController; + +begin + AArticulosController := TArticulosController.Create; + AArticulosController.VerTodos; +end; + +constructor TPluginArticulos.Create(AOwner: TComponent); +begin + inherited; + uArticulosViewRegister.RegisterViews; +end; + +destructor TPluginArticulos.Destroy; +begin + uArticulosViewRegister.UnregisterViews; + inherited; +end; + +initialization + RegisterModuleClass(TPluginArticulos); + +finalization + UnRegisterModuleClass(TPluginArticulos); + +end. diff --git a/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.dcu b/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.dcu new file mode 100644 index 0000000..3347643 Binary files /dev/null and b/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.dcu differ diff --git a/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.dfm b/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.dfm new file mode 100644 index 0000000..127e71b --- /dev/null +++ b/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.dfm @@ -0,0 +1,1323 @@ +object srvArticulos: TsrvArticulos + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + ConnectionName = 'IBX' + ServiceSchema = schArticulos + ServiceDataStreamer = Bin2DataStreamer + AllowWhereSQL = True + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + Height = 229 + Width = 517 + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'Articulos_REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + end + item + Name = 'Articulos_DESCRIPCION' + DataType = datString + Size = 255 + DisplayLabel = 'Descripci'#243'n' + end + item + Name = 'Articulos_FAMILIA' + DataType = datString + Size = 255 + DisplayLabel = 'Familia' + end + item + Name = 'Articulos_IMAGEN' + DataType = datBlob + DisplayLabel = 'Foto' + end + item + Name = 'Articulos_COMISIONABLE' + DataType = datInteger + DisplayLabel = 'Comisionable' + end + item + Name = 'Articulos_FECHA_ALTA' + DataType = datDateTime + DisplayLabel = 'FECHA_ALTA' + end + item + Name = 'Articulos_FECHA_MODIFICACION' + DataType = datDateTime + DisplayLabel = 'FECHA_MODIFICACION' + end + item + Name = 'Articulos_USUARIO' + DataType = datString + Size = 20 + DisplayLabel = 'USUARIO' + end + item + Name = 'Articulos_REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. proveedor' + end + item + Name = 'Articulos_PRECIO_COSTE' + DataType = datCurrency + DisplayLabel = 'Importe' + end + item + Name = 'Articulos_PRECIO_PORTE' + DataType = datCurrency + DisplayLabel = 'Precio porte' + end + item + Name = 'Articulos_DESCUENTO' + DataType = datFloat + DisplayLabel = 'Descuento' + end + item + Name = 'Articulos_ID' + DataType = datAutoInc + GeneratorName = 'GEN_ARTICULOS_ID' + Required = True + DisplayLabel = 'ID' + ServerAutoRefresh = True + end + item + Name = 'Articulos_ID_EMPRESA' + DataType = datInteger + DisplayLabel = 'ID_EMPRESA' + end + item + Name = 'Articulos_PRECIO_NETO' + DataType = datCurrency + DecimalPrecision = 2 + DecimalScale = 2 + DisplayLabel = 'Precio neto' + end + item + Name = 'Articulos_ID_PROVEEDOR' + DataType = datInteger + DisplayLabel = 'ID_PROVEEDOR' + ServerAutoRefresh = True + end + item + Name = 'Articulos_NOMBRE_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'Nombre' + ServerAutoRefresh = True + end + item + Name = 'Articulos_UNIDAD_MEDIDA' + DataType = datString + Size = 255 + DisplayLabel = 'Unidad de medida' + end + item + Name = 'Articulos_INVENTARIABLE' + DataType = datSmallInt + DisplayLabel = 'Inventariable' + end + item + Name = 'Articulos_ELIMINADO' + DataType = datSmallInt + DisplayLabel = 'Eliminado' + end + item + Name = 'Articulos_FABRICANTE' + DataType = datString + Size = 255 + DisplayLabel = 'Fabricante' + end + item + Name = 'Articulos_REFERENCIA_FABR' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. fabricante' + end + item + Name = 'Articulos_PARAM_MARGEN' + DataType = datFloat + DisplayLabel = 'Margen' + end + item + Name = 'Articulos_PRECIO_PVP_VENTA' + DataType = datCurrency + DisplayLabel = 'Precio PVP (Solo suministro)' + Alignment = taRightJustify + ServerAutoRefresh = True + end + item + Name = 'Articulos_TIEMPO' + DataType = datInteger + DisplayLabel = 'Tiempo' + end + item + Name = 'Articulos_PARAM_TIEMPO' + DataType = datFloat + DisplayLabel = 'Precio min' + Alignment = taRightJustify + end + item + Name = 'Articulos_MANO_OBRA' + DataType = datCurrency + DisplayLabel = 'Mano de obra' + Alignment = taRightJustify + end + item + Name = 'Articulos_PRECIO_PVP_TOTAL' + DataType = datCurrency + DisplayLabel = 'Precio P.V.P (Total)' + Alignment = taRightJustify + ServerAutoRefresh = True + end> + Left = 150 + Top = 22 + end + object schArticulos: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Datasets = < + item + Params = < + item + Name = 'ID_EMPRESA' + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'V_ARTICULOS_PARA_COMPRA' + Name = 'IBX' + SQL = + 'select distinct ID_PROVEEDOR, NOMBRE'#10'from V_articulos_PARA_COMPR' + + 'A'#10'inner join contactos on (contactos.ID = V_articulos_PARA_COMPR' + + 'A.ID_PROVEEDOR)'#10'where ID_EMPRESA = :ID_EMPRESA'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_PROVEEDOR' + TableField = 'ID_PROVEEDOR' + end + item + DatasetField = 'NOMBRE' + TableField = '' + SQLOrigin = 'NOMBRE' + end> + end> + Name = 'ProveedoresConArticulos' + Fields = < + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end> + end + item + Params = <> + Statements = < + item + ConnectionType = 'Interbase' + Default = True + TargetTable = 'ARTICULOS_PROVEEDORES' + Name = 'IBX' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_ARTICULO' + TableField = 'ID_ARTICULO' + end + item + DatasetField = 'ID_PROVEEDOR' + TableField = 'ID_PROVEEDOR' + end + item + DatasetField = 'REFERENCIA_PROV' + TableField = 'REFERENCIA_PROV' + end + item + DatasetField = 'PRECIO_COSTE' + TableField = 'PRECIO_COSTE' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'PRECIO_NETO' + TableField = 'PRECIO_NETO' + end + item + DatasetField = 'PRECIO_PORTE' + TableField = 'PRECIO_PORTE' + end + item + DatasetField = 'PRECIO_PVP_VENTA' + TableField = 'PRECIO_PVP_VENTA' + end + item + DatasetField = 'PRECIO_PVP_TOTAL' + TableField = 'PRECIO_PVP_TOTAL' + end> + end> + Name = 'Articulos_Proveedores' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ARTICULOS_PROVEEDORES_ID' + Required = True + InPrimaryKey = True + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + end + item + Name = 'REFERENCIA_PROV' + DataType = datString + Size = 255 + DictionaryEntry = 'Articulos_REFERENCIA_PROVEEDOR' + end + item + Name = 'PRECIO_COSTE' + DataType = datCurrency + DictionaryEntry = 'Articulos_PRECIO_COSTE' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DictionaryEntry = 'Articulos_DESCUENTO' + end + item + Name = 'PRECIO_NETO' + DataType = datCurrency + DecimalPrecision = 2 + DecimalScale = 2 + DictionaryEntry = 'Articulos_PRECIO_NETO' + end + item + Name = 'PRECIO_PORTE' + DataType = datCurrency + DictionaryEntry = 'Articulos_PRECIO_PORTE' + end + item + Name = 'PRECIO_PVP_VENTA' + DataType = datCurrency + ServerAutoRefresh = True + DictionaryEntry = 'Articulos_PRECIO_PVP_VENTA' + end + item + Name = 'PRECIO_PVP_TOTAL' + DataType = datCurrency + ServerAutoRefresh = True + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_ARTICULOS_PARA_VENTA' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'UNIDAD_MEDIDA' + TableField = 'UNIDAD_MEDIDA' + end + item + DatasetField = 'FAMILIA' + TableField = 'FAMILIA' + end + item + DatasetField = 'IMAGEN' + TableField = 'IMAGEN' + end + item + DatasetField = 'COMISIONABLE' + TableField = 'COMISIONABLE' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end + item + DatasetField = 'REFERENCIA_PROV' + TableField = 'REFERENCIA_PROV' + end + item + DatasetField = 'PRECIO_COSTE' + TableField = 'PRECIO_COSTE' + end + item + DatasetField = 'PRECIO_PORTE' + TableField = 'PRECIO_PORTE' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'PRECIO_NETO' + TableField = 'PRECIO_NETO' + end + item + DatasetField = 'INVENTARIABLE' + TableField = 'INVENTARIABLE' + end + item + DatasetField = 'ELIMINADO' + TableField = 'ELIMINADO' + end + item + DatasetField = 'FABRICANTE' + TableField = 'FABRICANTE' + end + item + DatasetField = 'REFERENCIA_FABR' + TableField = 'REFERENCIA_FABR' + end + item + DatasetField = 'PARAM_MARGEN' + TableField = 'PARAM_MARGEN' + end + item + DatasetField = 'PRECIO_PVP_VENTA' + TableField = 'PRECIO_PVP_VENTA' + end + item + DatasetField = 'TIEMPO' + TableField = 'TIEMPO' + end + item + DatasetField = 'PARAM_TIEMPO' + TableField = 'PARAM_TIEMPO' + end + item + DatasetField = 'MANO_OBRA' + TableField = 'MANO_OBRA' + end + item + DatasetField = 'PRECIO_PVP_TOTAL' + TableField = 'PRECIO_PVP_TOTAL' + end> + end> + Name = 'Articulos' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ARTICULOS_ID' + ServerAutoRefresh = True + DictionaryEntry = 'Articulos_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'Articulos_ID_EMPRESA' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'Articulos_REFERENCIA' + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DictionaryEntry = 'Articulos_DESCRIPCION' + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + DictionaryEntry = 'Articulos_UNIDAD_MEDIDA' + end + item + Name = 'FAMILIA' + DataType = datString + Size = 255 + DictionaryEntry = 'Articulos_FAMILIA' + end + item + Name = 'IMAGEN' + DataType = datBlob + DictionaryEntry = 'Articulos_IMAGEN' + end + item + Name = 'COMISIONABLE' + DataType = datInteger + DictionaryEntry = 'Articulos_COMISIONABLE' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'Articulos_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'Articulos_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'Articulos_USUARIO' + end + item + Name = 'REFERENCIA_PROV' + DataType = datString + Size = 255 + DictionaryEntry = 'Articulos_REFERENCIA_PROVEEDOR' + end + item + Name = 'PRECIO_COSTE' + DataType = datCurrency + DictionaryEntry = 'Articulos_PRECIO_COSTE' + end + item + Name = 'PRECIO_PORTE' + DataType = datCurrency + DictionaryEntry = 'Articulos_PRECIO_PORTE' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DictionaryEntry = 'Articulos_DESCUENTO' + end + item + Name = 'PRECIO_NETO' + DataType = datCurrency + DecimalPrecision = 2 + DecimalScale = 2 + DictionaryEntry = 'Articulos_PRECIO_NETO' + end + item + Name = 'INVENTARIABLE' + DataType = datSmallInt + DictionaryEntry = 'Articulos_INVENTARIABLE' + end + item + Name = 'ELIMINADO' + DataType = datSmallInt + DictionaryEntry = 'Articulos_ELIMINADO' + end + item + Name = 'FABRICANTE' + DataType = datString + Size = 255 + DictionaryEntry = 'Articulos_FABRICANTE' + end + item + Name = 'REFERENCIA_FABR' + DataType = datString + Size = 255 + DictionaryEntry = 'Articulos_REFERENCIA_FABR' + end + item + Name = 'PARAM_MARGEN' + DataType = datFloat + end + item + Name = 'PRECIO_PVP_VENTA' + DataType = datCurrency + ServerAutoRefresh = True + DictionaryEntry = 'Articulos_PRECIO_PVP_VENTA' + end + item + Name = 'TIEMPO' + DataType = datInteger + end + item + Name = 'PARAM_TIEMPO' + DataType = datFloat + DictionaryEntry = 'Articulos_PARAM_TIEMPO' + end + item + Name = 'MANO_OBRA' + DataType = datCurrency + DictionaryEntry = 'Articulos_MANO_OBRA' + end + item + Name = 'PRECIO_PVP_TOTAL' + DataType = datCurrency + ServerAutoRefresh = True + DictionaryEntry = 'Articulos_PRECIO_PVP_TOTAL' + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_ARTICULOS_PARA_COMPRA' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'UNIDAD_MEDIDA' + TableField = 'UNIDAD_MEDIDA' + end + item + DatasetField = 'FAMILIA' + TableField = 'FAMILIA' + end + item + DatasetField = 'IMAGEN' + TableField = 'IMAGEN' + end + item + DatasetField = 'COMISIONABLE' + TableField = 'COMISIONABLE' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end + item + DatasetField = 'REFERENCIA_PROV' + TableField = 'REFERENCIA_PROV' + end + item + DatasetField = 'PRECIO_COSTE' + TableField = 'PRECIO_COSTE' + end + item + DatasetField = 'PRECIO_PORTE' + TableField = 'PRECIO_PORTE' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'PRECIO_NETO' + TableField = 'PRECIO_NETO' + end + item + DatasetField = 'INVENTARIABLE' + TableField = 'INVENTARIABLE' + end + item + DatasetField = 'ID_PROVEEDOR' + TableField = 'ID_PROVEEDOR' + end + item + DatasetField = 'NOMBRE_PROVEEDOR' + TableField = 'NOMBRE_PROVEEDOR' + end + item + DatasetField = 'ELIMINADO' + TableField = 'ELIMINADO' + end + item + DatasetField = 'FABRICANTE' + TableField = 'FABRICANTE' + end + item + DatasetField = 'REFERENCIA_FABR' + TableField = 'REFERENCIA_FABR' + end + item + DatasetField = 'PARAM_MARGEN' + TableField = 'PARAM_MARGEN' + end + item + DatasetField = 'PRECIO_PVP_VENTA' + TableField = 'PRECIO_PVP_VENTA' + end + item + DatasetField = 'TIEMPO' + TableField = 'TIEMPO' + end + item + DatasetField = 'PARAM_TIEMPO' + TableField = 'PARAM_TIEMPO' + end + item + DatasetField = 'MANO_OBRA' + TableField = 'MANO_OBRA' + end + item + DatasetField = 'PRECIO_PVP_TOTAL' + TableField = 'PRECIO_PVP_TOTAL' + end + item + DatasetField = 'ID_ARTICULO' + TableField = 'ID_ARTICULO' + end> + end> + Name = 'ArticulosParaCompra' + Description = + #161#161#161#161' Esta tabla debe tener los mismos campos y orden de campos q' + + 'ue '#39'Art'#237'culos'#39' !!!!' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ARTICULOS_ID' + ServerAutoRefresh = True + DictionaryEntry = 'Articulos_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'Articulos_ID_EMPRESA' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'Articulos_REFERENCIA' + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DictionaryEntry = 'Articulos_DESCRIPCION' + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + DictionaryEntry = 'Articulos_UNIDAD_MEDIDA' + end + item + Name = 'FAMILIA' + DataType = datString + Size = 255 + DictionaryEntry = 'Articulos_FAMILIA' + end + item + Name = 'IMAGEN' + DataType = datBlob + DictionaryEntry = 'Articulos_IMAGEN' + end + item + Name = 'COMISIONABLE' + DataType = datInteger + DictionaryEntry = 'Articulos_COMISIONABLE' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'Articulos_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'Articulos_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'Articulos_USUARIO' + end + item + Name = 'REFERENCIA_PROV' + DataType = datString + Size = 255 + DictionaryEntry = 'Articulos_REFERENCIA_PROVEEDOR' + end + item + Name = 'PRECIO_COSTE' + DataType = datCurrency + DictionaryEntry = 'Articulos_PRECIO_COSTE' + end + item + Name = 'PRECIO_PORTE' + DataType = datCurrency + DictionaryEntry = 'Articulos_PRECIO_PORTE' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DictionaryEntry = 'Articulos_DESCUENTO' + end + item + Name = 'PRECIO_NETO' + DataType = datCurrency + DecimalPrecision = 2 + DecimalScale = 2 + DictionaryEntry = 'Articulos_PRECIO_NETO' + end + item + Name = 'INVENTARIABLE' + DataType = datSmallInt + DictionaryEntry = 'Articulos_INVENTARIABLE' + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + end + item + Name = 'NOMBRE_PROVEEDOR' + DataType = datString + Size = 255 + end + item + Name = 'ELIMINADO' + DataType = datSmallInt + DictionaryEntry = 'Articulos_ELIMINADO' + end + item + Name = 'FABRICANTE' + DataType = datString + Size = 255 + DictionaryEntry = 'Articulos_FABRICANTE' + end + item + Name = 'REFERENCIA_FABR' + DataType = datString + Size = 255 + DictionaryEntry = 'Articulos_REFERENCIA_FABR' + end + item + Name = 'PARAM_MARGEN' + DataType = datFloat + end + item + Name = 'PRECIO_PVP_VENTA' + DataType = datCurrency + ServerAutoRefresh = True + DictionaryEntry = 'Articulos_PRECIO_PVP_VENTA' + end + item + Name = 'TIEMPO' + DataType = datInteger + end + item + Name = 'PARAM_TIEMPO' + DataType = datFloat + DictionaryEntry = 'Articulos_PARAM_TIEMPO' + end + item + Name = 'MANO_OBRA' + DataType = datCurrency + DictionaryEntry = 'Articulos_MANO_OBRA' + end + item + Name = 'PRECIO_PVP_TOTAL' + DataType = datCurrency + ServerAutoRefresh = True + DictionaryEntry = 'Articulos_PRECIO_PVP_TOTAL' + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ARTICULOS_ID' + Value = '' + end + item + Name = 'ID_EMPRESA' + Value = '' + end + item + Name = 'REFERENCIA' + Value = '' + end + item + Name = 'DESCRIPCION' + Value = '' + end + item + Name = 'UNIDAD_MEDIDA' + Value = '' + end + item + Name = 'FAMILIA' + Value = '' + end + item + Name = 'IMAGEN' + Value = '' + end + item + Name = 'COMISIONABLE' + Value = '' + end + item + Name = 'FECHA_ALTA' + Value = '' + end + item + Name = 'FECHA_MODIFICACION' + Value = '' + end + item + Name = 'USUARIO' + Value = '' + end + item + Name = 'INVENTARIABLE' + Value = '' + end + item + Name = 'ELIMINADO' + Value = '' + end + item + Name = 'FABRICANTE' + Value = '' + end + item + Name = 'REFERENCIA_FABR' + Value = '' + end + item + Name = 'PARAM_MARGEN' + Value = '' + end + item + Name = 'TIEMPO' + Value = '' + end + item + Name = 'PARAM_TIEMPO' + Value = '' + end + item + Name = 'MANO_OBRA' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ARTICULOS' + SQL = + 'INSERT'#10' INTO ARTICULOS'#10' (ID, ID_EMPRESA, REFERENCIA, DESCRIP' + + 'CION, UNIDAD_MEDIDA, FAMILIA, IMAGEN,'#10' COMISIONABLE, FECHA_A' + + 'LTA, FECHA_MODIFICACION, USUARIO, '#10' INVENTARIABLE, ELIMINADO' + + ', FABRICANTE, REFERENCIA_FABR, PARAM_MARGEN, TIEMPO,'#10' PARAM_' + + 'TIEMPO, MANO_OBRA)'#10' VALUES'#10' (:ID, :ID_EMPRESA, :REFERENCIA, ' + + ':DESCRIPCION, :UNIDAD_MEDIDA, :FAMILIA,'#10' :IMAGEN, :COMISIONA' + + 'BLE, :FECHA_ALTA, :FECHA_MODIFICACION, '#10' :USUARIO, :INVENTAR' + + 'IABLE, :ELIMINADO, :FABRICANTE, :REFERENCIA_FABR, :PARAM_MARGEN,' + + #10' :TIEMPO, :PARAM_TIEMPO, :MANO_OBRA)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_Articulos' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ARTICULOS' + SQL = 'UPDATE ARTICULOS'#10'SET ELIMINADO = 1'#10'WHERE (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_Articulos' + end + item + Params = < + item + Name = 'ID_EMPRESA' + Value = '' + end + item + Name = 'REFERENCIA' + Value = '' + end + item + Name = 'DESCRIPCION' + Value = '' + end + item + Name = 'UNIDAD_MEDIDA' + Value = '' + end + item + Name = 'FAMILIA' + Value = '' + end + item + Name = 'IMAGEN' + Value = '' + end + item + Name = 'COMISIONABLE' + Value = '' + end + item + Name = 'FECHA_ALTA' + Value = '' + end + item + Name = 'FECHA_MODIFICACION' + Value = '' + end + item + Name = 'USUARIO' + Value = '' + end + item + Name = 'INVENTARIABLE' + Value = '' + end + item + Name = 'ELIMINADO' + Value = '' + end + item + Name = 'FABRICANTE' + Value = '' + end + item + Name = 'REFERENCIA_FABR' + Value = '' + end + item + Name = 'PARAM_MARGEN' + Value = '' + end + item + Name = 'TIEMPO' + Value = '' + end + item + Name = 'PARAM_TIEMPO' + Value = '' + end + item + Name = 'MANO_OBRA' + Value = '' + end + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ARTICULOS' + SQL = + 'UPDATE ARTICULOS'#10' SET '#10' ID_EMPRESA = :ID_EMPRESA,'#10' REFERE' + + 'NCIA = :REFERENCIA, '#10' DESCRIPCION = :DESCRIPCION, '#10' UNIDAD' + + '_MEDIDA = :UNIDAD_MEDIDA,'#10' FAMILIA = :FAMILIA, '#10' IMAGEN = ' + + ':IMAGEN, '#10' COMISIONABLE = :COMISIONABLE, '#10' FECHA_ALTA = :F' + + 'ECHA_ALTA, '#10' FECHA_MODIFICACION = :FECHA_MODIFICACION, '#10' U' + + 'SUARIO = :USUARIO, '#10' INVENTARIABLE = :INVENTARIABLE,'#10' ELIM' + + 'INADO = :ELIMINADO,'#10' FABRICANTE = :FABRICANTE,'#10' REFERENCIA' + + '_FABR = :REFERENCIA_FABR,'#10' PARAM_MARGEN = :PARAM_MARGEN,'#10' ' + + 'TIEMPO = :TIEMPO,'#10' PARAM_TIEMPO = :PARAM_TIEMPO,'#10' MANO_OBR' + + 'A = :MANO_OBRA'#10' WHERE'#10' (ID = :OLD_ID)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_Articulos' + end + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ARTICULOS_PROVEEDORES_ID' + Value = '' + end + item + Name = 'ID_ARTICULO' + Value = '' + end + item + Name = 'ID_PROVEEDOR' + Value = '' + end + item + Name = 'REFERENCIA_PROV' + Value = '' + end + item + Name = 'PRECIO_COSTE' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'PRECIO_NETO' + Value = '' + end + item + Name = 'PRECIO_PORTE' + Value = '' + end + item + Name = 'PRECIO_PVP_VENTA' + Value = '' + end + item + Name = 'PRECIO_PVP_TOTAL' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'ARTICULOS_PROVEEDORES' + SQL = + 'INSERT'#10' INTO ARTICULOS_PROVEEDORES'#10' (ID, ID_ARTICULO, ID_PRO' + + 'VEEDOR, REFERENCIA_PROV, PRECIO_COSTE, '#10' DESCUENTO, PRECIO_N' + + 'ETO, PRECIO_PORTE, PRECIO_PVP_VENTA, PRECIO_PVP_TOTAL)'#10' VALUES'#10 + + ' (:ID, :ID_ARTICULO, :ID_PROVEEDOR, :REFERENCIA_PROV, '#10' :' + + 'PRECIO_COSTE, :DESCUENTO, :PRECIO_NETO, :PRECIO_PORTE, '#10' :PR' + + 'ECIO_PVP_VENTA, :PRECIO_PVP_TOTAL)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_Articulos_Proveedores' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + Value = '0' + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'ARTICULOS_PROVEEDORES' + SQL = + 'DELETE '#10' FROM'#10' ARTICULOS_PROVEEDORES'#10' WHERE'#10' (ID = :OLD_' + + 'ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_Articulos_Proveedores' + end + item + Params = < + item + Name = 'ID_ARTICULO' + Value = '' + end + item + Name = 'ID_PROVEEDOR' + Value = '' + end + item + Name = 'REFERENCIA_PROV' + Value = '' + end + item + Name = 'PRECIO_COSTE' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'PRECIO_NETO' + Value = '' + end + item + Name = 'PRECIO_PORTE' + Value = '' + end + item + Name = 'PRECIO_PVP_VENTA' + Value = '' + end + item + Name = 'PRECIO_PVP_TOTAL' + Value = '' + end + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'ARTICULOS_PROVEEDORES' + SQL = + 'UPDATE ARTICULOS_PROVEEDORES'#10' SET '#10' ID_ARTICULO = :ID_ARTICU' + + 'LO,'#10' ID_PROVEEDOR = :ID_PROVEEDOR, '#10' REFERENCIA_PROV = :RE' + + 'FERENCIA_PROV, '#10' PRECIO_COSTE = :PRECIO_COSTE, '#10' DESCUENTO' + + ' = :DESCUENTO, '#10' PRECIO_NETO = :PRECIO_NETO, '#10' PRECIO_PORT' + + 'E = :PRECIO_PORTE, '#10' PRECIO_PVP_VENTA = :PRECIO_PVP_VENTA, '#10' ' + + ' PRECIO_PVP_TOTAL = :PRECIO_PVP_TOTAL'#10' WHERE'#10' (ID = :OLD_I' + + 'D)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_Articulos_Proveedores' + end> + RelationShips = < + item + Name = 'FK_Articulos_Proveedor1' + MasterDatasetName = 'Articulos' + MasterFields = 'ID' + DetailDatasetName = 'Articulos_Proveedores' + DetailFields = 'ID_ARTICULO' + RelationshipType = rtForeignKey + end> + UpdateRules = < + item + Name = 'Insert Articulos' + DoUpdate = False + DoDelete = False + DatasetName = 'Articulos' + FailureBehavior = fbRaiseException + end + item + Name = 'Insert Articulos_Proveedores' + DoUpdate = False + DoDelete = False + DatasetName = 'Articulos_Proveedores' + FailureBehavior = fbRaiseException + end + item + Name = 'Update Articulos_Proveedores' + DoInsert = False + DoDelete = False + DatasetName = 'Articulos_Proveedores' + FailureBehavior = fbRaiseException + end + item + Name = 'Update Articulos' + DoInsert = False + DoDelete = False + DatasetName = 'Articulos' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete Articulos_Proveedores' + DoUpdate = False + DoInsert = False + DatasetName = 'Articulos_Proveedores' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete Articulos' + DoUpdate = False + DoInsert = False + DatasetName = 'Articulos' + FailureBehavior = fbRaiseException + end> + Version = 0 + Left = 48 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 80 + end + object bpArticulos: TDABusinessProcessor + Schema = schArticulos + InsertCommandName = 'Insert_Articulos' + DeleteCommandName = 'Delete_Articulos' + UpdateCommandName = 'Update_Articulos' + ReferencedDataset = 'Articulos' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 336 + Top = 24 + end + object bpArticulos_Proveedores: TDABusinessProcessor + Schema = schArticulos + InsertCommandName = 'Insert_Articulos_Proveedores' + DeleteCommandName = 'Delete_Articulos_Proveedores' + UpdateCommandName = 'Update_Articulos_Proveedores' + ReferencedDataset = 'Articulos_Proveedores' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 336 + Top = 96 + end +end diff --git a/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.pas b/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.pas new file mode 100644 index 0000000..876b973 --- /dev/null +++ b/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.pas @@ -0,0 +1,108 @@ +unit srvArticulos_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} uDABusinessProcessor, uDABin2DataStreamer, uDADataStreamer, + uDAScriptingProvider, uDAClasses, + FactuGES_Intf, uDAInterfaces; + +type + { TsrvArticulos } + TsrvArticulos = class(TDataAbstractService, IsrvArticulos) + bpArticulos: TDABusinessProcessor; + Bin2DataStreamer: TDABin2DataStreamer; + bpArticulos_Proveedores: TDABusinessProcessor; + schArticulos: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; + const IncludeSchema: Boolean; const MaxRecords: Integer); + procedure DARemoteServiceCreate(Sender: TObject); + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; + var aConnectionName: string); + + function DarListaProveedoresConArticulos(Const IDEmpresa: Integer): Binary; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer, Variants, uStringsUtils, + uDatabaseUtils, schArticulosClient_Intf, uRestriccionesUsuarioUtils, dialogs, + uBizArticulosServer; + +procedure Create_srvArticulos(out anInstance : IUnknown); +begin + anInstance := TsrvArticulos.Create(NIL); +end; + +{ srvArticulos } +procedure TsrvArticulos.DARemoteServiceBeforeGetDatasetData( + const Dataset: IDADataset; const IncludeSchema: Boolean; + const MaxRecords: Integer); +begin + if (DataSet.Name = nme_Articulos) then + begin + { Aqu se asegura que el usuario slo accede a los Articulos + de las empresas a las que tiene permiso para acceder + filtrando DataSet por ID_EMPRESA. } + FiltrarAccesoUsuario(Session, Connection, schArticulos, DataSet, fld_ArticulosID_EMPRESA); + end; +end; + +procedure TsrvArticulos.DARemoteServiceCreate(Sender: TObject); +begin + //SessionManager := dmServer.SessionManager; + bpArticulos.BusinessRulesID := BIZ_SERVER_ARTICULOS; +end; + +function TsrvArticulos.DarListaProveedoresConArticulos(Const IDEmpresa: Integer): Binary; +var + dsProveedores : IDADataset; + Aux : TStringList; +begin + Result := Binary.Create; + + Aux := TStringList.Create; + dsProveedores := schArticulos.NewDataset(Connection, 'ProveedoresConArticulos', ['ID_EMPRESA'], [IDEmpresa], True); + try + while not dsProveedores.EOF do + begin + if not VarIsNull(dsProveedores.Fields[0].AsVariant) then + Aux.Add(Format('%s=%d', [dsProveedores.Fields[1].AsString, dsProveedores.Fields[0].AsInteger])); + dsProveedores.Next; + end; + + Aux.SaveToStream(Result); + + finally + dsProveedores.Close; + dsProveedores := NIL; + FreeAndNil(Aux); + end; +end; + +procedure TsrvArticulos.DataAbstractServiceBeforeAcquireConnection( + aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +initialization + TROClassFactory.Create('srvArticulos', Create_srvArticulos, TsrvArticulos_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Articulos/Views/Articulos_view.bdsproj b/Source/Modulos/Articulos/Views/Articulos_view.bdsproj new file mode 100644 index 0000000..e794ddf --- /dev/null +++ b/Source/Modulos/Articulos/Views/Articulos_view.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + Articulos_view.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + True + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Articulos/Views/Articulos_view.dcu b/Source/Modulos/Articulos/Views/Articulos_view.dcu new file mode 100644 index 0000000..c6042d3 Binary files /dev/null and b/Source/Modulos/Articulos/Views/Articulos_view.dcu differ diff --git a/Source/Modulos/Articulos/Views/Articulos_view.dpk b/Source/Modulos/Articulos/Views/Articulos_view.dpk new file mode 100644 index 0000000..c143bb7 --- /dev/null +++ b/Source/Modulos/Articulos/Views/Articulos_view.dpk @@ -0,0 +1,49 @@ +package Articulos_view; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + GUIBase, + Articulos_model, + Articulos_controller, + Familias_controller, + UnidadesMedida_controller, + Contactos_view, + Fabricantes_controller, + GUISDK_D11R; + +contains + uViewArticulos in 'uViewArticulos.pas' {frViewArticulos: TFrame}, + uArticulosViewRegister in 'uArticulosViewRegister.pas', + uEditorArticulo in 'uEditorArticulo.pas' {fEditorArticulo: TfEditorArticulo}, + uEditorElegirArticulos in 'uEditorElegirArticulos.pas' {fEditorElegirArticulos: TfEditorElegirArticulos}, + uViewArticulo in 'uViewArticulo.pas' {frViewArticulo: TFrame}, + uViewDetallesArticulos in 'uViewDetallesArticulos.pas' {frViewDetallesArticulos: TFrame}, + uViewArticulosProveedores in 'uViewArticulosProveedores.pas' {frViewArticulosProveedores: TFrame}, + uViewArticulosPorProveedor in 'uViewArticulosPorProveedor.pas' {frViewArticulosPorProveedor: TFrame}, + uViewDetallesArticulosParaVenta in 'uViewDetallesArticulosParaVenta.pas' {frViewDetallesArticulosParaVenta: TCustomView}, + uEditorArticulos in 'uEditorArticulos.pas' {fEditorArticulos: TfEditorArticulo}; + +end. diff --git a/Source/Modulos/Articulos/Views/Articulos_view.dproj b/Source/Modulos/Articulos/Views/Articulos_view.dproj new file mode 100644 index 0000000..c4420a1 --- /dev/null +++ b/Source/Modulos/Articulos/Views/Articulos_view.dproj @@ -0,0 +1,587 @@ + + + + {5e4bdd4d-597f-407c-8b0c-32e37fbd6267} + Articulos_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Articulos_view.bpl + + + 7.0 + False + False + False + True + 0 + True + True + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + False + True + True + True + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Articulos_view.dpk + + + + + MainSource + + + + + + + + + + + +
fEditorArticulo
+ TfEditorArticulo +
+ +
fEditorArticulos
+ TfEditorArticulo +
+ +
fEditorElegirArticulos
+ TfEditorElegirArticulos +
+ +
frViewArticulo
+ TFrame +
+ +
frViewArticulos
+ TFrame +
+ +
frViewArticulosPorProveedor
+ TFrame +
+ +
frViewArticulosProveedores
+ TFrame +
+ +
frViewDetallesArticulos
+ TFrame +
+ +
frViewDetallesArticulosParaVenta
+ TCustomView +
+
+
+ diff --git a/Source/Modulos/Articulos/Views/Articulos_view.rc b/Source/Modulos/Articulos/Views/Articulos_view.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Articulos/Views/Articulos_view.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Articulos/Views/Articulos_view.res b/Source/Modulos/Articulos/Views/Articulos_view.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Articulos/Views/Articulos_view.res differ diff --git a/Source/Modulos/Articulos/Views/uArticulosViewRegister.dcu b/Source/Modulos/Articulos/Views/uArticulosViewRegister.dcu new file mode 100644 index 0000000..895da3a Binary files /dev/null and b/Source/Modulos/Articulos/Views/uArticulosViewRegister.dcu differ diff --git a/Source/Modulos/Articulos/Views/uArticulosViewRegister.pas b/Source/Modulos/Articulos/Views/uArticulosViewRegister.pas new file mode 100644 index 0000000..29559a0 --- /dev/null +++ b/Source/Modulos/Articulos/Views/uArticulosViewRegister.pas @@ -0,0 +1,27 @@ +unit uArticulosViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorArticulos, uEditorArticulo, uEditorElegirArticulos; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorArticulo, 'EditorArticulo'); + EditorRegistry.RegisterClass(TfEditorArticulos, 'EditorArticulos'); + EditorRegistry.RegisterClass(TfEditorElegirArticulos, 'EditorElegirArticulos'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorArticulo); + EditorRegistry.UnRegisterClass(TfEditorArticulos); + EditorRegistry.UnRegisterClass(TfEditorElegirArticulos); +end; + +end. diff --git a/Source/Modulos/Articulos/Views/uEditorArticulo.dcu b/Source/Modulos/Articulos/Views/uEditorArticulo.dcu new file mode 100644 index 0000000..4d6d4d9 Binary files /dev/null and b/Source/Modulos/Articulos/Views/uEditorArticulo.dcu differ diff --git a/Source/Modulos/Articulos/Views/uEditorArticulo.dfm b/Source/Modulos/Articulos/Views/uEditorArticulo.dfm new file mode 100644 index 0000000..1d66323 --- /dev/null +++ b/Source/Modulos/Articulos/Views/uEditorArticulo.dfm @@ -0,0 +1,898 @@ +inherited fEditorArticulo: TfEditorArticulo + Left = 374 + Top = 273 + HorzScrollBar.Visible = False + VertScrollBar.Visible = False + Caption = 'Ficha de art'#237'culo' + ClientHeight = 505 + ClientWidth = 905 + Scaled = False + OnClose = CustomEditorClose + ExplicitWidth = 913 + ExplicitHeight = 539 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 905 + Caption = 'Art'#237'culo' + ExplicitWidth = 905 + inherited Image1: TImage + Left = 878 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000AA11B57D14DC000001374944415478DA63FCFFFF3F + 033D01E3C8B2F04AA9943390DA43408F0B316A74BA9FED25C6C2FFAA2D350CEC + EC59584DF9F9731AC3ECD81686D4C584D5E4AC7AC648948540978135A180CF9F + 1818BE7C66987EC08A81655B2AC83062D4906921D42086CF40C3CEBA63B710BB + 1A322C443208ECFA9B219816E25643A2856806317CFDC230FD4902AA85F8D590 + 60E19B0E0C8318BE7C6598FE211B61216135245878B38481E1D72F148318BE01 + 5DFFAB1C61216135C45908CA16D397CB33E00220C340D982901A622D743EF010 + 7FA67690677021460D55333E2ED71303C8CDF834B4104FA626B6EC450E5E7233 + 3ECC4292A380DC8CCF88D581444401B9191FB78504CA5572333E760B892857C9 + CAF8582D24B25C2527E397022DE921270A302C2415901A0554B1909428A08685 + 4495BD38333E3DC0F0B71000FEC966E74A55381F0000000049454E44AE426082} + ExplicitLeft = 607 + end + end + inherited TBXDock: TTBXDock + Width = 905 + ExplicitWidth = 905 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 400 + inherited TBXItem2: TTBXItem + Visible = False + end + inherited TBXItem5: TTBXItem + Visible = False + end + inherited TBXItem23: TTBXItem + Visible = False + end + inherited TBXItem3: TTBXItem + Visible = False + end + object TBXSeparatorItem6: TTBXSeparatorItem [11] + end + object TBXItem33: TTBXItem [12] + Action = actFamilias + DisplayMode = nbdmImageAndText + end + end + inherited tbxMenu: TTBXToolbar + DockPos = 0 + ExplicitWidth = 905 + inherited TBXSubmenuItem4: TTBXSubmenuItem + inherited TBXItem8: TTBXItem + Visible = False + end + inherited TBXSeparatorItem5: TTBXSeparatorItem + Visible = False + end + inherited TBXItem10: TTBXItem + Visible = False + end + inherited TBXItem21: TTBXItem + Visible = False + end + inherited TBXItem22: TTBXItem + Visible = False + end + inherited TBXItem9: TTBXItem + Visible = False + end + end + inherited TBXSubmenuItem1: TTBXSubmenuItem + inherited TBXItem32: TTBXItem + Visible = False + end + inherited TBXItem31: TTBXItem + Visible = False + end + inherited TBXSeparatorItem13: TTBXSeparatorItem + Visible = False + end + end + end + end + inherited pgPaginas: TPageControl + Width = 899 + Height = 404 + ActivePage = TabSheet1 + ExplicitWidth = 899 + ExplicitHeight = 404 + inherited pagGeneral: TTabSheet + ExplicitLeft = 4 + ExplicitTop = 24 + ExplicitWidth = 891 + ExplicitHeight = 376 + end + object TabSheet1: TTabSheet + Caption = 'Precios' + ImageIndex = 1 + inline frViewArticulosProveedores1: TfrViewArticulosProveedores + Left = 0 + Top = 97 + Width = 891 + Height = 279 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitTop = 97 + ExplicitWidth = 891 + ExplicitHeight = 279 + inherited cxGrid: TcxGrid + Width = 891 + Height = 254 + ExplicitWidth = 891 + ExplicitHeight = 254 + inherited cxGridView: TcxGridDBTableView + inherited cxGridViewPRECIO_COSTE: TcxGridDBColumn + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + GroupSummaryAlignment = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + inherited cxGridViewDESCUENTO: TcxGridDBColumn + Properties.Alignment.Horz = taRightJustify + GroupSummaryAlignment = taRightJustify + end + inherited cxGridViewPRECIO_NETO: TcxGridDBColumn + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + GroupSummaryAlignment = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + inherited cxGridViewPRECIO_PORTE: TcxGridDBColumn + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + GroupSummaryAlignment = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + inherited cxGridViewPRECIO_PVP_VENTA: TcxGridDBColumn + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + GroupSummaryAlignment = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + inherited cxGridViewPRECIO_PVP_TOTAL: TcxGridDBColumn + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + GroupSummaryAlignment = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + end + end + inherited ToolBar1: TToolBar + Width = 891 + ExplicitWidth = 891 + end + end + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 891 + Height = 97 + Align = alTop + TabOrder = 1 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + LookAndFeel = dxLayoutOfficeLookAndFeel1 + object eParamMargen: TcxDBSpinEdit + Left = 118 + Top = 30 + DataBinding.DataField = 'PARAM_MARGEN' + DataBinding.DataSource = dsDataTable + Properties.Alignment.Horz = taRightJustify + Properties.AssignedValues.EditFormat = True + Properties.DisplayFormat = ',0.00 %;-,0.00 %' + Properties.ImmediatePost = True + Properties.MaxValue = 100.000000000000000000 + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 0 + Width = 100 + end + object eTiempo: TcxDBSpinEdit + Left = 118 + Top = 57 + DataBinding.DataField = 'TIEMPO' + DataBinding.DataSource = dsDataTable + Properties.Alignment.Horz = taRightJustify + Properties.ImmediatePost = True + Properties.MaxValue = 100000.000000000000000000 + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 1 + Width = 100 + end + object eParamTiempo: TcxDBCurrencyEdit + Left = 300 + Top = 57 + DataBinding.DataField = 'PARAM_TIEMPO' + DataBinding.DataSource = dsDataTable + Properties.Alignment.Horz = taRightJustify + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 2 + Width = 150 + end + object eManoObra: TcxDBSpinEdit + Left = 545 + Top = 57 + DataBinding.DataField = 'MANO_OBRA' + DataBinding.DataSource = dsDataTable + Enabled = False + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = ',0.00 '#8364';-,0.00 '#8364 + Properties.ImmediatePost = True + Properties.MaxValue = 100.000000000000000000 + Properties.SpinButtons.Visible = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 3 + Width = 200 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + AutoAligns = [] + AlignHorz = ahClient + Caption = 'Par'#225'metros de precio' + object dxLayoutControl1Item1: TdxLayoutItem + AutoAligns = [aaVertical] + Caption = 'Margen coste (%):' + Control = eParamMargen + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group3: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item2: TdxLayoutItem + Caption = 'Tiempo min.:' + Control = eTiempo + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item3: TdxLayoutItem + Caption = ' Precio min.:' + Control = eParamTiempo + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item4: TdxLayoutItem + Caption = ' Mano de obra' + Control = eManoObra + ControlOptions.ShowBorder = False + end + end + end + end + end + end + end + inherited StatusBar: TJvStatusBar + Top = 486 + Width = 905 + Panels = < + item + Width = 200 + end> + ExplicitTop = 486 + ExplicitWidth = 905 + end + inherited EditorActionList: TActionList + Left = 64 + Top = 136 + object actFamilias: TAction + Category = 'Acciones' + Caption = 'Familias' + Hint = 'Acceder a la gesti'#243'n de familias de art'#237'culos' + ImageIndex = 21 + OnExecute = actFamiliasExecute + end + end + inherited SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001A34944415478DA9D922177E3300CC7655636C3B20596CD702C86C7E6 + B141C342EF1BE42318167AECD81916BA6CD0638582852A0BCBA46CCDDAF46E77 + EFF4E2A7D8F2FF2759B6724FD9354BF30B09810EF5B16C43866FACAC7DA67DD5 + E364655A15020ECEDD42AD47C839EE4AE9EC5CE492EBB2CF9DFC676BCA83772D + 6C133CEFE14D395F066B0C032AA4346AD5B9905D20C49BD255350196D4BEF40D + C48A47657F44073D05CEDC9AFBF0585F63B61D1379AF7BF2B702C67D8509B0F6 + 4329E52D1DE8CE2CF557B6B93144CAF13C04767702CCED62B12433587FB99141 + 4E1C03C2B70011B72EC02E479843CEAD6E60D04BEED9C1825B47A54E6273CF15 + F73CE9095226D00B891000FB66C1733E2F71CCACCC08EA36043165755141D334 + 2CE6EEAFE429F0552F3468CD5E370CE05842F04E4FE2DFF6A05979CE04633524 + 15F08707024484E0F9EA36C880ACAE7A70DE87931D7B0190BCD0B1326F11E256 + 20FF0098C454D92324167A5320163B95FF47C0518EC02219F4E9D3AB01C780F4 + 3780910A46D167763E3FF508B95A59BA105F037E76038EC28FE6C9B58DCDEC3F + E273F115E07FEC1D6B02010E884AA1F00000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end> + Top = 112 + Bitmap = {} + end + inherited dsDataTable: TDADataSource [6] + Left = 8 + Top = 128 + end + inherited LargeImages: TPngImageList [7] + Top = 112 + end + inherited JvFormStorage: TJvFormStorage [8] + Left = 400 + Top = 152 + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage + Left = 432 + Top = 152 + end + object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList + Left = 240 + Top = 136 + object dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel + GroupOptions.CaptionOptions.Font.Charset = DEFAULT_CHARSET + GroupOptions.CaptionOptions.Font.Color = clWindowText + GroupOptions.CaptionOptions.Font.Height = -11 + GroupOptions.CaptionOptions.Font.Name = 'Tahoma' + GroupOptions.CaptionOptions.Font.Style = [fsBold] + GroupOptions.CaptionOptions.TextColor = clHighlight + GroupOptions.CaptionOptions.UseDefaultFont = False + end + end +end diff --git a/Source/Modulos/Articulos/Views/uEditorArticulo.pas b/Source/Modulos/Articulos/Views/uEditorArticulo.pas new file mode 100644 index 0000000..d8eff2d --- /dev/null +++ b/Source/Modulos/Articulos/Views/uEditorArticulo.pas @@ -0,0 +1,240 @@ +unit uEditorArticulo; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorDBItem, ToolWin, ComCtrls, JvExControls, JvComponent, + uViewArticulo, uBizArticulos, JvNavigationPane, ActnList, + uEditorBase, StdActns, TB2Dock, TB2Toolbar, TBX, ImgList, PngImageList, + TB2Item, uEditorItem, DB, uDADataTable, uEditorDBBase, JvFormAutoSize, + uDAScriptingProvider, uDACDSDataTable, StdCtrls, pngimage, ExtCtrls, + TBXDkPanels, JvButton, AppEvnts, uCustomView, uViewBase, + JvAppStorage, JvAppRegistryStorage, JvFormPlacement, JvComponentBase, + uViewArticulos, uIEditorArticulo, uArticulosController, JvExComCtrls, + JvStatusBar, dxLayoutLookAndFeels, uDAInterfaces, Grids, DBGrids, cxStyles, + cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridLevel, + cxClasses, cxControls, cxGridCustomView, cxGrid, uViewDetallesGenerico, + uViewArticulosProveedores, dxLayoutControl, cxContainer, + cxTextEdit, cxMaskEdit, cxSpinEdit, cxDBEdit, cxCurrencyEdit; + +type + TfEditorArticulo = class(TfEditorDBItem, IEditorArticulo) + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + TBXItem33: TTBXItem; + actFamilias: TAction; + TBXSeparatorItem6: TTBXSeparatorItem; + TabSheet1: TTabSheet; + frViewArticulosProveedores1: TfrViewArticulosProveedores; + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Item1: TdxLayoutItem; + eParamMargen: TcxDBSpinEdit; + dxLayoutControl1Item2: TdxLayoutItem; + eTiempo: TcxDBSpinEdit; + dxLayoutControl1Item3: TdxLayoutItem; + eParamTiempo: TcxDBCurrencyEdit; + dxLayoutControl1Item4: TdxLayoutItem; + eManoObra: TcxDBSpinEdit; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Group3: TdxLayoutGroup; + procedure FormShow(Sender: TObject); + procedure dsDataTableDataChange(Sender: TObject; Field: TField); + procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); + procedure actFamiliasExecute(Sender: TObject); + protected + FController : IArticulosController; + FArticulo: IBizArticulo; + FViewArticulo : IViewArticulo; + + function GetController : IArticulosController; + procedure SetController (const Value : IArticulosController); virtual; + function GetArticulo: IBizArticulo; virtual; + procedure SetArticulo(const Value: IBizArticulo); virtual; + function GetViewArticulo: IViewArticulo; + procedure SetViewArticulo(const Value: IViewArticulo); + property ViewArticulo: IViewArticulo read GetViewArticulo write SetViewArticulo; + + procedure GuardarInterno; override; + procedure EliminarInterno; override; + + //Si queremos crear otra vista para el editor heredado solo tendriamos que + //sobreescribir este metodo + procedure AsignarVista; virtual; + procedure PonerTitulos(const ATitulo: string = ''); override; + + public + property Articulo: IBizArticulo read GetArticulo write SetArticulo; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + uCustomEditor, uDataModuleArticulos, uDataModuleBase, + uBizFamilias, uFamiliasController; + +{ +******************************* TfEditorArticulo ******************************* +} +function TfEditorArticulo.GetArticulo: IBizArticulo; +begin + Result := FArticulo; +end; + +function TfEditorArticulo.GetController: IArticulosController; +begin + Result := FController; +end; + +function TfEditorArticulo.GetViewArticulo: IViewArticulo; +begin + Result := FViewArticulo; +end; + +procedure TfEditorArticulo.GuardarInterno; +begin + inherited; + FController.Guardar(FArticulo); + Modified := False; +end; + +procedure TfEditorArticulo.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + if Assigned(Articulo) then + begin + if Articulo.EsNuevo then + FTitulo := 'Nuevo artculo' + else + FTitulo := 'Artculo'; + + if Length(Articulo.DESCRIPCION) > 0 then + FTitulo := FTitulo + ' - ' + Articulo.DESCRIPCION; + end; + + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorArticulo.SetArticulo(const Value: IBizArticulo); +begin + FArticulo := Value; + dsDataTable.DataTable := FArticulo.DataTable; + + if Assigned(FViewArticulo) and Assigned(Articulo) then + begin + FViewArticulo.Articulo := Articulo; + frViewArticulosProveedores1.Articulo := Articulo; + end; +end; + +procedure TfEditorArticulo.SetController(const Value: IArticulosController); +begin + FController := Value; + if Assigned(FController) then + begin + (ViewArticulo as IViewArticulo).Controller := (FController as IArticulosController); + frViewArticulosProveedores1.Controller := FController; + end; +end; + +procedure TfEditorArticulo.SetViewArticulo(const Value: IViewArticulo); +begin + FViewArticulo := Value; + + if Assigned(FViewArticulo) and Assigned(Articulo) then + FViewArticulo.Articulo := Articulo; +end; + +procedure TfEditorArticulo.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(FViewArticulo) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Articulo) then + raise Exception.Create('No hay ningn almacn asignado'); + + Articulo.DataTable.Active := True; +end; + +destructor TfEditorArticulo.Destroy; +begin + // Utilizar mejor OnClose; + inherited; +end; + +procedure TfEditorArticulo.actFamiliasExecute(Sender: TObject); +var + AFamiliasController : IFamiliasController; + AFamilias : IBizFamilia; +begin + AFamiliasController := TFamiliasController.Create; + try + AFamilias := (AFamiliasController.BuscarTodos as IBizFamilia); + AFamiliasController.VerTodos(AFamilias); + finally + AFamilias := NIL; + AFamiliasController := NIL; + end; +end; + +procedure TfEditorArticulo.AsignarVista; +var + AViewArticulo: TfrViewArticulo; +begin + AViewArticulo := TfrViewArticulo.create(Self); + with AViewArticulo do + begin + Parent := pagGeneral; + Align := alClient; + dxLayoutControlArticulo.LookAndFeel := dxLayoutOfficeLookAndFeel1; + end; + ViewArticulo := AViewArticulo; +end; + +constructor TfEditorArticulo.Create(AOwner: TComponent); +begin + inherited; + pgPaginas.ActivePageIndex := 0; + AsignarVista; +end; + +procedure TfEditorArticulo.CustomEditorClose(Sender: TObject; + var Action: TCloseAction); +begin + inherited; + dsDataTable.DataTable := NIL; + FViewArticulo := NIL; + FArticulo := NIL; +end; + +procedure TfEditorArticulo.dsDataTableDataChange(Sender: TObject; + Field: TField); +begin + inherited; + if Assigned(FArticulo) and (not (FArticulo.DataTable.Fetching) or + not (FArticulo.DataTable.Opening) or not (FArticulo.DataTable.Closing)) then + PonerTitulos; +end; + +procedure TfEditorArticulo.EliminarInterno; +begin + if (Application.MessageBox('Desea borrar este articulo?', 'Atencin', MB_YESNO) = IDYES) then + begin + inherited; + if not FController.Eliminar(FArticulo) then + actRefrescar.Execute; + end; +end; + +end. + diff --git a/Source/Modulos/Articulos/Views/uEditorArticulos.dcu b/Source/Modulos/Articulos/Views/uEditorArticulos.dcu new file mode 100644 index 0000000..e1d80fa Binary files /dev/null and b/Source/Modulos/Articulos/Views/uEditorArticulos.dcu differ diff --git a/Source/Modulos/Articulos/Views/uEditorArticulos.dfm b/Source/Modulos/Articulos/Views/uEditorArticulos.dfm new file mode 100644 index 0000000..90e9cb1 --- /dev/null +++ b/Source/Modulos/Articulos/Views/uEditorArticulos.dfm @@ -0,0 +1,1676 @@ +inherited fEditorArticulos: TfEditorArticulos + Left = 489 + Top = 325 + Caption = 'Lista de art'#237'culos' + ClientWidth = 657 + ExplicitWidth = 665 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 657 + Caption = 'Lista de articulos' + ExplicitWidth = 657 + inherited Image1: TImage + Left = 630 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000AA11B57D14DC000001374944415478DA63FCFFFF3F + 033D01E3C8B2F04AA9943390DA43408F0B316A74BA9FED25C6C2FFAA2D350CEC + EC59584DF9F9731AC3ECD81686D4C584D5E4AC7AC648948540978135A180CF9F + 1818BE7C66987EC08A81655B2AC83062D4906921D42086CF40C3CEBA63B710BB + 1A322C443208ECFA9B219816E25643A2856806317CFDC230FD4902AA85F8D590 + 60E19B0E0C8318BE7C6598FE211B61216135245878B38481E1D72F148318BE01 + 5DFFAB1C61216135C45908CA16D397CB33E00220C340D982901A622D743EF010 + 7FA67690677021460D55333E2ED71303C8CDF834B4104FA626B6EC450E5E7233 + 3ECC4292A380DC8CCF88D581444401B9191FB78504CA5572333E760B892857C9 + CAF8582D24B25C2527E397022DE921270A302C2415901A0554B1909428A08685 + 4495BD38333E3DC0F0B71000FEC966E74A55381F0000000049454E44AE426082} + ExplicitLeft = 516 + end + end + inherited TBXDock: TTBXDock + Width = 657 + ExplicitWidth = 657 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 657 + end + inherited tbxFiltro: TTBXToolbar + inherited tbxEditFiltro: TTBXEditItem + EditOptions = [tboUseEditWhenVertical] + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 657 + end + inherited TBXTMain2: TTBXToolbar + DockPos = 267 + end + end + inherited StatusBar: TJvStatusBar + Width = 657 + ExplicitWidth = 657 + end + object pgPaginas: TPageControl [3] + AlignWithMargins = True + Left = 3 + Top = 105 + Width = 651 + Height = 377 + ActivePage = pagArticulos + Align = alClient + TabOrder = 3 + OnChange = pgPaginasChange + object pagArticulos: TTabSheet + Caption = 'Todos los art'#237'culos' + inline frViewArticulos1: TfrViewArticulos + Left = 0 + Top = 0 + Width = 643 + Height = 349 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 643 + ExplicitHeight = 349 + inherited cxGrid: TcxGrid + Width = 643 + Height = 221 + ExplicitWidth = 643 + ExplicitHeight = 221 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = '0 Art'#237'culos' + Kind = skCount + Column = frViewArticulos1.cxGridViewDESCRIPCION + end> + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 643 + ExplicitWidth = 643 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 643 + inherited dxLayoutControl1: TdxLayoutControl + Width = 643 + ExplicitWidth = 643 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 567 + Width = 567 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtFechaFinFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited eLista: TcxComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 20 + Width = 20 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 643 + ExplicitWidth = 643 + inherited tbxBotones: TTBXToolbar + Width = 633 + ExplicitWidth = 633 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 323 + ExplicitTop = 323 + ExplicitWidth = 643 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 643 + ExplicitWidth = 643 + inherited TBXToolbar1: TTBXToolbar + Width = 633 + ExplicitWidth = 633 + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39632.498140370370000000 + BuiltInReportLink = True + end + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewArticulos1.cxGridView + HitTypes = [gvhtCell] + Index = 0 + end> + end + end + end + object pagArticulosPorProveedor: TTabSheet + Caption = 'Art'#237'culos por proveedor' + ImageIndex = 1 + inline frViewArticulosPorProveedor1: TfrViewArticulosPorProveedor + Left = 0 + Top = 0 + Width = 643 + Height = 349 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 643 + ExplicitHeight = 349 + inherited cxGrid: TcxGrid + Width = 643 + Height = 221 + ExplicitWidth = 643 + ExplicitHeight = 221 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = '0 Art'#237'culos por proveedor' + Kind = skCount + Column = frViewArticulosPorProveedor1.cxGridViewDESCRIPCION + end> + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 643 + ExplicitWidth = 643 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 643 + inherited dxLayoutControl1: TdxLayoutControl + Width = 643 + ExplicitWidth = 643 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 567 + Width = 567 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtFechaFinFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited eLista: TcxComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 20 + Width = 20 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 643 + ExplicitWidth = 643 + inherited tbxBotones: TTBXToolbar + Width = 633 + ExplicitWidth = 633 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 323 + ExplicitTop = 323 + ExplicitWidth = 643 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 643 + ExplicitWidth = 643 + inherited TBXToolbar1: TTBXToolbar + Width = 633 + ExplicitWidth = 633 + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39632.498287210650000000 + BuiltInReportLink = True + end + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewArticulosPorProveedor1.cxGridView + HitTypes = [gvhtCell] + Index = 0 + end> + end + end + end + end + inherited EditorActionList: TActionList + Left = 8 + Top = 160 + inherited actNuevo: TAction + ImageIndex = 24 + end + inherited actPrevisualizar: TAction + Visible = True + end + inherited actImprimir: TAction + Visible = True + end + inherited actExpandir: TAction + Visible = True + end + inherited actContraer: TAction + Visible = True + end + object actFamilias: TAction + Category = 'Acciones' + Caption = 'Familias de art'#237'culos' + OnExecute = actFamiliasExecute + end + end + inherited SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000F84944415478DA + 63FCFFFF3F03084C59BC03C2200072E33C19616C905E46640372623DF06A06AA + 6198B77413C3F99DD3194936E0DFBF7F0CD396EE62D051576128AAEB031B42B4 + 0120CDBFFFFC6398BD720F43B0A70DC3CD7B2FC0869CDB318D91A00130CDBF7F + FF6558B06E3FD80B3040D00064CDBFFF40F0AA6D47C1722083F01A804D3304FF + 63D8B2EF147E03F06906D13B0F9DC56D0058E16F540D20FC07C607CA1D387911 + BB01E991AE043583F847CF5EC16E4052881341CD207CEAE275EC06C406D813D4 + 0CC2E7AFDEC26E40848F2D41CD20B12B37EF603720D8C38AA06610C069809F8B + 39C3A63D2789C994D80D404EA6C400900100F58BBFF09BC1E25C000000004945 + 4E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001A34944415478DA9D922177E3300CC7655636C3B20596CD702C86C7E6 + B141C342EF1BE42318167AECD81916BA6CD0638582852A0BCBA46CCDDAF46E77 + EFF4E2A7D8F2FF2759B6724FD9354BF30B09810EF5B16C43866FACAC7DA67DD5 + E364655A15020ECEDD42AD47C839EE4AE9EC5CE492EBB2CF9DFC676BCA83772D + 6C133CEFE14D395F066B0C032AA4346AD5B9905D20C49BD255350196D4BEF40D + C48A47657F44073D05CEDC9AFBF0585F63B61D1379AF7BF2B702C67D8509B0F6 + 4329E52D1DE8CE2CF557B6B93144CAF13C04767702CCED62B12433587FB99141 + 4E1C03C2B70011B72EC02E479843CEAD6E60D04BEED9C1825B47A54E6273CF15 + F73CE9095226D00B891000FB66C1733E2F71CCACCC08EA36043165755141D334 + 2CE6EEAFE429F0552F3468CD5E370CE05842F04E4FE2DFF6A05979CE04633524 + 15F08707024484E0F9EA36C880ACAE7A70DE87931D7B0190BCD0B1326F11E256 + 20FF0098C454D92324167A5320163B95FF47C0518EC02219F4E9D3AB01C780F4 + 3780910A46D167763E3FF508B95A59BA105F037E76038EC28FE6C9B58DCDEC3F + E273F115E07FEC1D6B02010E884AA1F00000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001004944415478DA + 63BC5C22F99F8148A0D3FD8C115D8C1164806A4B0D84F7FD3B03C3FD3B0CB3DB + 3732A42EC614CB5985CF00A8C2E9177D1858B6A5420C4013C36D4075315821C3 + F5AB0CD37F95430C98852986DB80287FB02D300036A012530CA701071E121788 + F8C3002DC072573F67FCFF9F7004E10C449001403967A09A3D78F4BBE00C44A8 + 0160C3D9D9B33074FEFC398D61766C0BEE408419004C3C60C5700072E98FEF0C + D3771882D5E10C44AC0680347F7807A6A79F748618802FA0AE944A210C80697E + 0FC43F7E324CBF194C82011F7A119A3F7C80B8E0552A09063CA8466806BBE03B + 3CB0091A008A85E9CBE5B1CA13638033308071A6030779061700E6FAF742387F + 63F70000000049454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001684944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0EC8B200D9F0BF50FCE7DF3F8623E71F307CFDF695E1EDDBB76075F396 + 6E22DD025C86A3B337EF3D45BA05C41AFE0F18275B0F9C26CD02520C07A9DB71 + E80CF116906A3848DD9EA3E788B3801CC341FCFD272E10B60096C6C106FCFF4F + B4E1207CE8F425FC1644789AC20DC7662818FFFB8FD311C7CE5EC16F41A89B09 + 4986A3AB3B7DF13A7E0B829C8DC8361C449FBB7213BF057E8E06641B0EC217AF + DFC66F81B79D1ED98683D45DB97907BF051ED63A641B0E02042D70B1D422DB70 + A22CB03755C799C6B1E50964C389B2C0C648155C225202F05A80ADF22007C02C + 0000E2A9A9FE0847986E0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end> + Bitmap = {} + end + inherited dsDataTable: TDADataSource + Left = 8 + Top = 128 + end + inherited GridPopupMenu: TPopupMenu + Left = 40 + Top = 128 + end +end diff --git a/Source/Modulos/Articulos/Views/uEditorArticulos.pas b/Source/Modulos/Articulos/Views/uEditorArticulos.pas new file mode 100644 index 0000000..90a60b0 --- /dev/null +++ b/Source/Modulos/Articulos/Views/uEditorArticulos.pas @@ -0,0 +1,339 @@ +unit uEditorArticulos; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorBase, ToolWin, ComCtrls, JvExControls, JvComponent, + JvNavigationPane, uViewArticulos, uBizArticulos, ActnList, DBActns, uViewGrid, + Menus, uDataModuleBase, ImgList, PngImageList, TB2Dock, TB2Toolbar, TBX, + TB2Item, StdActns, TB2ExtItems, TBXExtItems, TB2MRU, DB, uDADataTable, + JvFormAutoSize, uDAScriptingProvider, uDACDSDataTable, JvAppStorage, + JvAppRegistryStorage, JvFormPlacement, ExtCtrls, uCustomView, uViewBase, + uViewBarraSeleccion, pngimage, uIEditorArticulos, uEditorGridBase, + JvComponentBase, uViewGridBase, uArticulosController, JvExComCtrls, + JvStatusBar, uDAInterfaces, cxGrid, cxGridLevel, uViewArticulosPorProveedor; + +type + TfEditorArticulos = class(TfEditorGridBase, IEditorArticulos) + actFamilias: TAction; + pgPaginas: TPageControl; + pagArticulos: TTabSheet; + pagArticulosPorProveedor: TTabSheet; + frViewArticulos1: TfrViewArticulos; + frViewArticulosPorProveedor1: TfrViewArticulosPorProveedor; + procedure FormShow(Sender: TObject); + procedure actFamiliasExecute(Sender: TObject); + procedure pgPaginasChange(Sender: TObject); + private + FArticulos: IBizArticulo; + FArticulosPorProveedor: IBizArticulo; + FController : IArticulosController; + protected + procedure SetViewGrid(const Value : IViewGridBase); override; + function GetArticulos: IBizArticulo; + procedure SetArticulos(const Value: IBizArticulo); + function GetArticulosPorProveedor: IBizArticulo; + procedure SetArticulosPorProveedor(const Value: IBizArticulo); + + function GetController : IArticulosController; virtual; + procedure SetController (const Value : IArticulosController); virtual; + + procedure NuevoInterno; override; + procedure EliminarInterno; override; + procedure ModificarInterno; override; + procedure ImprimirInterno; override; + procedure PrevisualizarInterno; override; + procedure DuplicarInterno; override; + procedure RefrescarInterno; override; + + public + procedure PonerTitulos(const ATitulo: string = ''); override; + property Articulos: IBizArticulo read GetArticulos write SetArticulos; + property ArticulosPorProveedor: IBizArticulo read GetArticulosPorProveedor write SetArticulosPorProveedor; + property Controller : IArticulosController read GetController write SetController; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +uses + cxControls, uCustomEditor, uDataModuleArticulos, uDataModuleUsuarios, uFactuGES_App, + uEditorArticulo, uEditorDBBase, uBizFamilias, uFamiliasController, + cxGridCustomTableView; //, uListaArticulos; + +{$R *.dfm} + +{ +****************************** TfEditorArticulos ******************************* +} +procedure TfEditorArticulos.FormShow(Sender: TObject); +begin + inherited; + ViewGrid := frViewArticulos1; +end; + +function TfEditorArticulos.GetArticulos: IBizArticulo; +begin + Result := FArticulos; +end; + +function TfEditorArticulos.GetArticulosPorProveedor: IBizArticulo; +begin + Result := FArticulosPorProveedor; +end; + +function TfEditorArticulos.GetController: IArticulosController; +begin + Result := FController; +end; + +procedure TfEditorArticulos.ImprimirInterno; +begin + inherited; +end; + +procedure TfEditorArticulos.ModificarInterno; +var + AArticulo: IBizArticulo; + +begin + inherited; + + case pgPaginas.ActivePage.TabIndex of + 0: begin + AArticulo := Articulos; + FController.Ver(AArticulo); + end; + 1: begin + AArticulo := FController.Buscar(ArticulosPorProveedor.DataTable.FieldByName('ID_ARTICULO').AsInteger); + FController.Ver(AArticulo); + RefrescarInterno; + end; + end; +end; + +procedure TfEditorArticulos.NuevoInterno; +var + AArticulo: IBizArticulo; + +begin + inherited; + + if (FViewGrid._Grid.ActiveLevel.Tag = 1) then + AArticulo := FController.Nuevo + else + begin + AArticulo := Articulos; + FController.Anadir(AArticulo); + end; + + if not AArticulo.DataTable.Active then + AArticulo.DataTable.Active := True; + + FController.Ver(AArticulo); + + if (FViewGrid._Grid.ActiveLevel.Tag = 1) then + Articulos.DataTable.Refresh; +end; + +procedure TfEditorArticulos.pgPaginasChange(Sender: TObject); +begin + inherited; + if pgPaginas.ActivePage.TabIndex = 0 then + ViewGrid := frViewArticulos1 + else + ViewGrid := frViewArticulosPorProveedor1; +end; + +procedure TfEditorArticulos.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := 'Lista de artculos - ' + AppFactuGES.EmpresaActiva.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorArticulos.PrevisualizarInterno; +begin + inherited; +end; + +procedure TfEditorArticulos.RefrescarInterno; +begin +// inherited; + if Assigned(FArticulos) then + begin + frViewArticulos1.SaveGridStatus; + try + frViewArticulos1.dsDataSource.DataTable.Refresh; + finally + frViewArticulos1.RestoreGridStatus; + end; + end; + + if Assigned(FArticulosPorProveedor) then + begin + frViewArticulosPorProveedor1.SaveGridStatus; + try + frViewArticulosPorProveedor1.dsDataSource.DataTable.Refresh; + finally + frViewArticulosPorProveedor1.RestoreGridStatus; + end; + end; +end; + +procedure TfEditorArticulos.SetArticulos(const Value: IBizArticulo); +begin + FArticulos := Value; + dsDataTable.DataTable := FArticulos.DataTable; + if Assigned(ViewGrid) then + (ViewGrid as IViewArticulos).Articulos := FArticulos; +end; + +procedure TfEditorArticulos.SetArticulosPorProveedor(const Value: IBizArticulo); +begin + FArticulosPorProveedor := Value; + dsDataTable.DataTable := FArticulosPorProveedor.DataTable; + if Assigned(ViewGrid) then + (ViewGrid as IViewArticulos).Articulos := FArticulosPorProveedor; +end; + +procedure TfEditorArticulos.SetController(const Value: IArticulosController); +begin + FController := Value; + if Assigned(ViewGrid) then + (ViewGrid as IViewArticulos).Controller := FController; +end; + +procedure TfEditorArticulos.SetViewGrid(const Value: IViewGridBase); +var + APosicionarAlprincipio: Boolean; + +begin + inherited; + + APosicionarAlprincipio := False; + case pgPaginas.ActivePage.TabIndex of + 0: begin + if not Assigned(Articulos) then + begin + APosicionarAlprincipio := True; + Articulos := FController.BuscarTodos; + end; + Articulos.DataTable.Active := True; + + if actFiltrar.Checked then + begin + if not frViewArticulos1.ViewFiltros.VerFiltros then + begin + actFiltrar.Execute; + frViewArticulos1.ViewFiltros.Texto := frViewArticulosPorProveedor1.ViewFiltros.Texto; + end + else + frViewArticulos1.ViewFiltros.Texto := frViewArticulosPorProveedor1.ViewFiltros.Texto; + end + else + begin + + if frViewArticulos1.ViewFiltros.VerFiltros then + actFiltrar.Execute; + + ViewGrid.Filter := tbxEditFiltro.Text; + end; + end; + 1: begin + if not Assigned(ArticulosPorProveedor) then + begin + APosicionarAlprincipio := True; + ArticulosPorProveedor := FController.BuscarTodosPorProveedor; + end; + ArticulosPorProveedor.DataTable.Active := True; + + if actFiltrar.Checked then + begin + if not frViewArticulosPorProveedor1.ViewFiltros.VerFiltros then + begin + actFiltrar.Execute; + frViewArticulosPorProveedor1.ViewFiltros.Texto := frViewArticulos1.ViewFiltros.Texto; + end + else + frViewArticulosPorProveedor1.ViewFiltros.Texto := frViewArticulos1.ViewFiltros.Texto; + end + else + begin + if frViewArticulosPorProveedor1.ViewFiltros.VerFiltros then + actFiltrar.Execute; + ViewGrid.Filter := tbxEditFiltro.Text; + end; + end; + end; + + if APosicionarAlprincipio then + ViewGrid._FocusedView.DataController.GotoFirst; +end; + +destructor TfEditorArticulos.Destroy; +begin + FArticulos := NIL; + FArticulosPorProveedor := NIL; + FController := NIl; + inherited; +end; + +procedure TfEditorArticulos.DuplicarInterno; +var + AArticulo : IBizArticulo; +begin + inherited; + AArticulo := FController.Duplicar(Articulos); + try + FController.Ver(AArticulo); + finally + actRefrescar.Execute; + end; +end; + +procedure TfEditorArticulos.EliminarInterno; +begin + if (Application.MessageBox('Desea borrar este artculo?', 'Atencin', MB_YESNO) = IDYES) then + begin + inherited; + //Para que en el caso de no poderse realizar la operacin se refresquen + //los datos y no nos permita eliminar un registro a la segunda + case pgPaginas.ActivePage.TabIndex of + 0: begin + if not FController.Eliminar(Articulos.ID) then + actRefrescar.Execute; + end; + 1: begin + if not FController.Eliminar(ArticulosPorProveedor.DataTable.FieldByName('ID_ARTICULO').AsInteger) then + actRefrescar.Execute; + end; + end; + RefrescarInterno; + end; +end; + +procedure TfEditorArticulos.actFamiliasExecute(Sender: TObject); +var + AFamiliasController : IFamiliasController; + AFamilias : IBizFamilia; +begin + AFamiliasController := TFamiliasController.Create; + try + AFamilias := (AFamiliasController.BuscarTodos as IBizFamilia); + AFamiliasController.VerTodos(AFamilias); + finally + AFamilias := NIL; + AFamiliasController := NIL; + end; +end; + +constructor TfEditorArticulos.Create(AOwner: TComponent); +begin + inherited; +end; + +end. diff --git a/Source/Modulos/Articulos/Views/uEditorElegirArticulos.dcu b/Source/Modulos/Articulos/Views/uEditorElegirArticulos.dcu new file mode 100644 index 0000000..a3c02fa Binary files /dev/null and b/Source/Modulos/Articulos/Views/uEditorElegirArticulos.dcu differ diff --git a/Source/Modulos/Articulos/Views/uEditorElegirArticulos.dfm b/Source/Modulos/Articulos/Views/uEditorElegirArticulos.dfm new file mode 100644 index 0000000..31b7b72 --- /dev/null +++ b/Source/Modulos/Articulos/Views/uEditorElegirArticulos.dfm @@ -0,0 +1,725 @@ +inherited fEditorElegirArticulos: TfEditorElegirArticulos + Caption = 'Seleccionar art'#237'culos' + ClientWidth = 656 + ExplicitWidth = 664 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Top = 113 + Width = 656 + Caption = 'Lista de art'#237'culos' + Visible = False + ExplicitTop = 168 + ExplicitWidth = 656 + inherited Image1: TImage + Left = 629 + ExplicitLeft = 629 + end + end + inherited TBXDock: TTBXDock + Top = 64 + Width = 656 + Height = 49 + ExplicitTop = 91 + ExplicitWidth = 656 + ExplicitHeight = 49 + inherited tbxMain: TTBXToolbar + Align = alLeft + DockPos = -6 + ExplicitWidth = 283 + inherited TBXItem6: TTBXItem + Visible = False + end + inherited TBXItem36: TTBXItem + Action = actAnchoAuto2 + end + end + inherited tbxFiltro: TTBXToolbar + Left = 283 + Top = 23 + Align = alLeft + DockPos = 101 + DockRow = 1 + ExplicitLeft = 283 + ExplicitTop = 23 + inherited TBXItem34: TTBXItem + Action = actQuitarFiltro2 + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 656 + end + inherited TBXTMain2: TTBXToolbar + Left = 620 + Top = 23 + DockPos = 395 + DockRow = 1 + ExplicitLeft = 620 + ExplicitTop = 23 + end + end + inherited StatusBar: TJvStatusBar + Width = 656 + Visible = False + ExplicitWidth = 656 + end + object pnlHeader: TPanel [3] + Left = 0 + Top = 0 + Width = 656 + Height = 64 + Align = alTop + BevelOuter = bvNone + Color = clWhite + Padding.Left = 25 + Padding.Top = 8 + Padding.Right = 25 + Padding.Bottom = 8 + ParentBackground = False + TabOrder = 4 + ExplicitTop = 27 + object lblTitle: TLabel + AlignWithMargins = True + Left = 25 + Top = 8 + Width = 606 + Height = 13 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 0 + Margins.Bottom = 8 + Align = alTop + Caption = 'Seleccione los art'#237'culos' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + ExplicitWidth = 131 + end + object lblComments: TLabel + AlignWithMargins = True + Left = 50 + Top = 29 + Width = 581 + Height = 24 + Margins.Left = 25 + Margins.Top = 0 + Margins.Right = 0 + Align = alClient + ExplicitWidth = 3 + ExplicitHeight = 13 + end + end + inline frViewBarraSeleccion1: TfrViewBarraSeleccion [4] + Left = 0 + Top = 436 + Width = 656 + Height = 49 + Align = alBottom + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitTop = 436 + ExplicitWidth = 656 + inherited JvFooter1: TJvFooter + Width = 656 + ExplicitWidth = 656 + inherited bSeleccionar: TJvFooterBtn + Left = 444 + ExplicitLeft = 444 + end + inherited bCancelar: TJvFooterBtn + Left = 548 + ExplicitLeft = 548 + end + end + inherited BarraSeleccionActionList: TActionList + Left = 76 + Top = 11 + inherited actSeleccionar: TAction + OnExecute = frViewBarraSeleccion1actSeleccionarExecute + OnUpdate = frViewBarraSeleccion1actSeleccionarUpdate + end + inherited actCancelar: TAction + OnExecute = frViewBarraSeleccion1actCancelarExecute + end + end + end + inherited SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001004944415478DA + 63BC5C22F99F8148A0D3FD8C115D8C1164806A4B0D84F7FD3B03C3FD3B0CB3DB + 3732A42EC614CB5985CF00A8C2E9177D1858B6A5420C4013C36D4075315821C3 + F5AB0CD37F95430C98852986DB80287FB02D300036A012530CA701071E121788 + F8C3002DC072573F67FCFF9F7004E10C449001403967A09A3D78F4BBE00C44A8 + 0160C3D9D9B33074FEFC398D61766C0BEE408419004C3C60C5700072E98FEF0C + D3771882D5E10C44AC0680347F7807A6A79F748618802FA0AE944A210C80697E + 0FC43F7E324CBF194C82011F7A119A3F7C80B8E0552A09063CA8466806BBE03B + 3CB0091A008A85E9CBE5B1CA13638033308071A6030779061700E6FAF742387F + 63F70000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end> + Bitmap = {} + end + inherited EditorActionList: TActionList [8] + Left = 112 + Top = 192 + inherited actNuevo: TAction + ImageIndex = 22 + end + inherited actEliminar: TAction + Enabled = False + Visible = False + end + inherited actImprimir: TAction + Enabled = False + end + inherited actDuplicar: TAction + Visible = False + end + end + inherited dsDataTable: TDADataSource [9] + Left = 8 + Top = 192 + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [10] + end + inherited StatusBarImages: TPngImageList [11] + Top = 384 + end + inherited GridPopupMenu: TPopupMenu + Left = 80 + Top = 192 + end + object EditorSeleccionActionList: TActionList + Images = SmallImages + Left = 152 + Top = 192 + object actBuscar2: TAction + Category = 'Buscar' + Caption = 'Buscar' + ImageIndex = 10 + ShortCut = 114 + end + object actQuitarFiltro2: TAction + Category = 'Buscar' + Caption = 'Quitar filtro y ver todo' + ImageIndex = 19 + OnExecute = actQuitarFiltro2Execute + end + object actAnchoAuto2: TAction + Category = 'Ver' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 21 + OnExecute = actAnchoAuto2Execute + end + end +end diff --git a/Source/Modulos/Articulos/Views/uEditorElegirArticulos.pas b/Source/Modulos/Articulos/Views/uEditorElegirArticulos.pas new file mode 100644 index 0000000..0e85563 --- /dev/null +++ b/Source/Modulos/Articulos/Views/uEditorElegirArticulos.pas @@ -0,0 +1,215 @@ +unit uEditorElegirArticulos; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, DB, uDADataTable, Menus, JvAppStorage, JvAppRegistryStorage, + JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns, + ActnList, uCustomView, uViewBase, uViewGridBase, uViewGrid, + uViewArticulos, ComCtrls, TB2ExtItems, TBXExtItems, TBX, + TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvComponent, + JvNavigationPane, uViewBarraSeleccion, StdCtrls, + uEditorArticulos, uBizArticulos, uIEditorElegirArticulos, + JvExComCtrls, JvStatusBar, uDAInterfaces, uEditorGridBase, uArticulosController; + +type + TfEditorElegirArticulos = class(TfEditorGridBase, IEditorElegirArticulos) + frViewBarraSeleccion1: TfrViewBarraSeleccion; + lblTitle: TLabel; + lblComments: TLabel; + EditorSeleccionActionList: TActionList; + actBuscar2: TAction; + actQuitarFiltro2: TAction; + actAnchoAuto2: TAction; + pnlHeader: TPanel; + procedure frViewBarraSeleccion1actSeleccionarUpdate(Sender: TObject); + procedure frViewBarraSeleccion1actCancelarExecute(Sender: TObject); + procedure frViewBarraSeleccion1actSeleccionarExecute(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure actAnchoAuto2Execute(Sender: TObject); + procedure actQuitarFiltro2Execute(Sender: TObject); + + private + FArticulos: IBizArticulo; + FController : IArticulosController; + + protected + function GetArticulos: IBizArticulo; + procedure SetArticulos(const Value: IBizArticulo); + function GetController : IArticulosController; virtual; + procedure SetController (const Value : IArticulosController); virtual; + + procedure SetMultiSelect (AValue : Boolean); + function GetMultiSelect : Boolean; + function GetArticulosSeleccionados: IBizArticulo; + procedure SetViewGrid(const Value: IViewGridBase); override; + procedure SetMensaje (const AValue: String); + function GetMensaje: String; + + procedure NuevoInterno; override; + procedure ModificarInterno; override; + + public + property Mensaje : String read GetMensaje write SetMensaje; + property ArticulosSeleccionados: IBizArticulo read GetArticulosSeleccionados; + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + property Articulos: IBizArticulo read GetArticulos write SetArticulos; + property Controller : IArticulosController read GetController write SetController; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +uses + cxGridCustomTableView, uIntegerListUtils, uDBSelectionListUtils, + uGridStatusUtils, uEditorBase; + +{$R *.dfm} + +{ TfEditorElegirArticulos } + +procedure TfEditorElegirArticulos.actAnchoAuto2Execute(Sender: TObject); +begin + inherited; + actAnchoAuto.Execute; +end; + +procedure TfEditorElegirArticulos.actQuitarFiltro2Execute(Sender: TObject); +begin + inherited; + actQuitarFiltro.Execute; +end; + +constructor TfEditorElegirArticulos.Create(AOwner: TComponent); +begin + inherited; +end; + +destructor TfEditorElegirArticulos.Destroy; +begin + FArticulos := NIL; + FController := NIl; + inherited; +end; + +procedure TfEditorElegirArticulos.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Articulos) then + raise Exception.Create('No hay ningn articulo asignado'); + + Articulos.DataTable.Active := True; +// EditorActionList.State := asSuspended; +end; + +procedure TfEditorElegirArticulos.frViewBarraSeleccion1actCancelarExecute( + Sender: TObject); +begin + inherited; + Close; +end; + +procedure TfEditorElegirArticulos.frViewBarraSeleccion1actSeleccionarExecute( + Sender: TObject); +begin + inherited; + ModalResult := mrOk; +end; + +procedure TfEditorElegirArticulos.frViewBarraSeleccion1actSeleccionarUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (ViewGrid._FocusedView.Controller.SelectedRowCount > 0) +end; + +function TfEditorElegirArticulos.GetArticulos: IBizArticulo; +begin + Result := FArticulos; +end; + +function TfEditorElegirArticulos.GetArticulosSeleccionados: IBizArticulo; +begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Articulos as ISeleccionable).SelectedRecords); + // En SelectedRecords tengo los ID de las filas seleccionadas del grid + Result := (Controller as IArticulosController).ExtraerSeleccionados(Articulos) as IBizArticulo; +end; + +function TfEditorElegirArticulos.GetController: IArticulosController; +begin + Result := FController; +end; + +function TfEditorElegirArticulos.GetMensaje: String; +begin + Result := lblComments.Caption; +end; + +function TfEditorElegirArticulos.GetMultiSelect: Boolean; +begin + Result := ViewGrid.MultiSelect; +end; + +procedure TfEditorElegirArticulos.ModificarInterno; +var + AArticulo: IBizArticulo; + +begin + inherited; + AArticulo := FController.Buscar(Articulos.ID); + FController.Ver(AArticulo); + RefrescarInterno; +end; + +procedure TfEditorElegirArticulos.NuevoInterno; +var + AArticulo: IBizArticulo; + +begin + inherited; + AArticulo := FController.Nuevo; + if not AArticulo.DataTable.Active then + AArticulo.DataTable.Active := True; + + FController.Ver(AArticulo); + RefrescarInterno; +end; + +procedure TfEditorElegirArticulos.SetArticulos(const Value: IBizArticulo); +begin + FArticulos := Value; + dsDataTable.DataTable := FArticulos.DataTable; + if Assigned(ViewGrid) then + (ViewGrid as IViewArticulos).Articulos := FArticulos; +end; + +procedure TfEditorElegirArticulos.SetController(const Value: IArticulosController); +begin + FController := Value; + if Assigned(ViewGrid) then + (ViewGrid as IViewArticulos).Controller := FController; +end; + +procedure TfEditorElegirArticulos.SetMensaje(const AValue: String); +begin + lblComments.Caption := AValue; +end; + +procedure TfEditorElegirArticulos.SetMultiSelect(AValue: Boolean); +begin + ViewGrid.MultiSelect := AValue; +end; + +procedure TfEditorElegirArticulos.SetViewGrid(const Value: IViewGridBase); +begin + inherited; + ViewGrid.OnDblClick := frViewBarraSeleccion1.actSeleccionar.OnExecute; +end; + +end. diff --git a/Source/Modulos/Articulos/Views/uViewArticulo.dcu b/Source/Modulos/Articulos/Views/uViewArticulo.dcu new file mode 100644 index 0000000..994cd9b Binary files /dev/null and b/Source/Modulos/Articulos/Views/uViewArticulo.dcu differ diff --git a/Source/Modulos/Articulos/Views/uViewArticulo.dfm b/Source/Modulos/Articulos/Views/uViewArticulo.dfm new file mode 100644 index 0000000..7edc3f7 --- /dev/null +++ b/Source/Modulos/Articulos/Views/uViewArticulo.dfm @@ -0,0 +1,506 @@ +inherited frViewArticulo: TfrViewArticulo + Width = 614 + Height = 376 + Align = alClient + OnCreate = CustomViewCreate + OnDestroy = CustomViewDestroy + ExplicitWidth = 451 + ExplicitHeight = 304 + object dxLayoutControlArticulo: TdxLayoutControl + Left = 0 + Top = 0 + Width = 614 + Height = 376 + Align = alClient + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth] + ExplicitWidth = 451 + ExplicitHeight = 304 + DesignSize = ( + 614 + 376) + object PngSpeedButton2: TPngSpeedButton + Left = 552 + Top = 304 + Width = 23 + Height = 22 + Action = actAnadir + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001EB4944415478DA + A5D34B68135114C6F1FF746692462D24D5A8F5B52B81B448501475E142D4EAA2 + 3420E8C68A0A45345BC19DE24A74D50AE2424A11041105DD28A8881411174A70 + E58BA4149A1A0D8D1D9B669E997B9D14B1A44491E6C2D9DDF3BB1F877B94DB8F + 5E4B5A384A1D3831B06759CDDB0E9D5B04865FD9CD6F49C95A374B4ADC20AAE4 + 9936B6F244CF70299DFA3F40F5AB1C74CEB225FE1C654E4796DA7963A6D977F2 + FABF81E061EAC3D1EC0247C531A27A017E846026CC844890CC3CFE3B506F1641 + D9025CCFA4DF384FD27F419BA1231C9D67917ED267AE3507A414E4BF8DD3B1AA + 07A97562F92A31EB037B8D313658137CD292DC5D719A7B83C9E640AEF892F1DC + 454A5FABEC4E5D21BEBE0FD397411217E15599911D547C8DEC60A411B8FC34C7 + C3F7C71710BD73927CB686E785D87FE01D22483267FDC45156620A0DAB069F4F + B53702A9ABBB08AF2E20DB7C1CB386517698FE52A56BE31136272EF0F16D1F44 + 7610EF7D802554A68696003B6F6D42517DAC6A0D3B006CCB67B6686356248944 + 0F8635C9F7A90A91F800E1EE51CA99D81260B40B27C8F607307DECF91AF38687 + A6AB74A7A2940A26E5A28B164FE38CDC67FBE1CC22D03BB226007E2708202700 + 5CAB5E62E14344D785084734664B0EBE8CE18D951A81967661F8E69DE56FA394 + 2D6D33BF00C89C2C72EBA3BC190000000049454E44AE426082} + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + end + object PngSpeedButton1: TPngSpeedButton + Left = 552 + Top = 332 + Width = 23 + Height = 22 + Action = actEliminar + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + end + object eReferencia: TcxDBTextEdit + Left = 122 + Top = 28 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REFERENCIA' + DataBinding.DataSource = dsViewArticulo + Enabled = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 0 + Width = 290 + end + object eDescripcion: TcxDBTextEdit + Left = 122 + Top = 55 + DataBinding.DataField = 'DESCRIPCION' + DataBinding.DataSource = dsViewArticulo + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = 14745599 + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 1 + Width = 290 + end + object eNoComisionable: TcxDBCheckBox + Left = 122 + Top = 163 + Caption = 'Art'#237'culo no comisionable' + DataBinding.DataField = 'COMISIONABLE' + DataBinding.DataSource = dsViewArticulo + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + Properties.ValueChecked = 0 + Properties.ValueUnchecked = 1 + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 5 + Width = 290 + end + object eImagen: TcxImage + Left = 28 + Top = 304 + Properties.GraphicClassName = 'TJPEGImage' + Properties.ImmediatePost = True + Properties.PopupMenuLayout.MenuItems = [] + Properties.Stretch = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 8 + Height = 98 + Width = 355 + end + object cbFamilia: TcxDBComboBox + Left = 122 + Top = 82 + DataBinding.DataField = 'FAMILIA' + DataBinding.DataSource = dsViewArticulo + Properties.DropDownRows = 16 + Properties.ImmediatePost = True + Properties.OnInitPopup = cbFamiliaPropertiesInitPopup + Properties.OnValidate = cbFamiliaPropertiesValidate + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 2 + Width = 290 + end + object cbNoInventariable: TcxDBCheckBox + Left = 122 + Top = 136 + Caption = 'Art'#237'culo no inventariable' + DataBinding.DataField = 'INVENTARIABLE' + DataBinding.DataSource = dsViewArticulo + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + Properties.ValueChecked = 0 + Properties.ValueUnchecked = 1 + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 4 + Width = 290 + end + object cbUnidadMedida: TcxDBComboBox + Left = 122 + Top = 109 + DataBinding.DataField = 'UNIDAD_MEDIDA' + DataBinding.DataSource = dsViewArticulo + Properties.DropDownRows = 16 + Properties.ImmediatePost = True + Properties.OnInitPopup = cbUnidadMedidaPropertiesInitPopup + Properties.OnValidate = cbUnidadMedidaPropertiesValidate + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 3 + Width = 290 + end + object cbFabricante: TcxDBComboBox + Left = 122 + Top = 220 + DataBinding.DataField = 'FABRICANTE' + DataBinding.DataSource = dsViewArticulo + Properties.DropDownRows = 16 + Properties.ImmediatePost = True + Properties.OnInitPopup = cbFabricantePropertiesInitPopup + Properties.OnValidate = cbFabricantePropertiesValidate + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 6 + Width = 290 + end + object eReferenciaFabr: TcxDBTextEdit + Left = 122 + Top = 247 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REFERENCIA_FABR' + DataBinding.DataSource = dsViewArticulo + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.Color = clWindow + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 7 + Width = 171 + end + object dxLayoutControlArticuloGroup_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControlArticuloGroup3: TdxLayoutGroup + Caption = 'New Group' + ShowCaption = False + LayoutDirection = ldHorizontal + ShowBorder = False + end + object dxLayoutControlArticuloGroup14: TdxLayoutGroup + AutoAligns = [] + AlignHorz = ahClient + Caption = 'New Group' + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControlArticuloGroup1: TdxLayoutGroup + AutoAligns = [] + AlignHorz = ahClient + Caption = 'Datos del art'#237'culo' + object dxLayoutControlArticuloItem3: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Referencia:' + Control = eReferencia + ControlOptions.ShowBorder = False + end + object dxLayoutControlArticuloItem8: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Descripci'#243'n:' + Control = eDescripcion + ControlOptions.ShowBorder = False + end + object dxLayoutControlArticuloGroup4: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControlArticuloItem4: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Familia:' + Control = cbFamilia + ControlOptions.ShowBorder = False + end + object dxLayoutControlArticuloItem9: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Unidad de medida:' + Control = cbUnidadMedida + ControlOptions.ShowBorder = False + end + object dxLayoutControlArticuloGroup6: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControlArticuloItem7: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = ' ' + Control = cbNoInventariable + ControlOptions.ShowBorder = False + end + object dxLayoutControlArticuloItem1: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = ' ' + Visible = False + Control = eNoComisionable + ControlOptions.ShowBorder = False + end + end + end + end + object dxLayoutControlArticuloGroup10: TdxLayoutGroup + Caption = 'Datos del fabricante' + object dxLayoutControlArticuloItem10: TdxLayoutItem + Caption = 'Fabricante:' + Control = cbFabricante + ControlOptions.ShowBorder = False + end + object dxLayoutControlArticuloItem11: TdxLayoutItem + AutoAligns = [aaVertical] + Caption = 'Referencia:' + Control = eReferenciaFabr + ControlOptions.ShowBorder = False + end + end + object dxLayoutControlArticuloGroup2: TdxLayoutGroup + AutoAligns = [] + AlignHorz = ahClient + Caption = 'Imagen' + Visible = False + LayoutDirection = ldHorizontal + object dxLayoutControlArticuloItem6: TdxLayoutItem + AutoAligns = [] + AlignHorz = ahClient + AlignVert = avClient + Control = eImagen + ControlOptions.ShowBorder = False + end + object dxLayoutControlArticuloGroup5: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahRight + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControlArticuloItem2: TdxLayoutItem + ShowCaption = False + Control = PngSpeedButton2 + ControlOptions.ShowBorder = False + end + object dxLayoutControlArticuloItem5: TdxLayoutItem + ShowCaption = False + Control = PngSpeedButton1 + ControlOptions.ShowBorder = False + end + end + end + end + end + end + object dsViewArticulo: TDADataSource + Left = 64 + Top = 32 + end + object OpenDialog1: TOpenDialog + Left = 24 + Top = 32 + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001EB4944415478DA + A5D34B68135114C6F1FF746692462D24D5A8F5B52B81B448501475E142D4EAA2 + 3420E8C68A0A45345BC19DE24A74D50AE2424A11041105DD28A8881411174A70 + E58BA4149A1A0D8D1D9B669E997B9D14B1A44491E6C2D9DDF3BB1F877B94DB8F + 5E4B5A384A1D3831B06759CDDB0E9D5B04865FD9CD6F49C95A374B4ADC20AAE4 + 9936B6F244CF70299DFA3F40F5AB1C74CEB225FE1C654E4796DA7963A6D977F2 + FABF81E061EAC3D1EC0247C531A27A017E846026CC844890CC3CFE3B506F1641 + D9025CCFA4DF384FD27F419BA1231C9D67917ED267AE3507A414E4BF8DD3B1AA + 07A97562F92A31EB037B8D313658137CD292DC5D719A7B83C9E640AEF892F1DC + 454A5FABEC4E5D21BEBE0FD397411217E15599911D547C8DEC60A411B8FC34C7 + C3F7C71710BD73927CB686E785D87FE01D22483267FDC45156620A0DAB069F4F + B53702A9ABBB08AF2E20DB7C1CB386517698FE52A56BE31136272EF0F16D1F44 + 7610EF7D802554A68696003B6F6D42517DAC6A0D3B006CCB67B6686356248944 + 0F8635C9F7A90A91F800E1EE51CA99D81260B40B27C8F607307DECF91AF38687 + A6AB74A7A2940A26E5A28B164FE38CDC67FBE1CC22D03BB226007E2708202700 + 5CAB5E62E14344D785084734664B0EBE8CE18D951A81967661F8E69DE56FA394 + 2D6D33BF00C89C2C72EBA3BC190000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 27 + Top = 64 + Bitmap = {} + end + object ActionList1: TActionList + Images = SmallImages + Left = 56 + Top = 64 + object actAnadir: TAction + Hint = 'Cambiar la imagen del producto' + ImageIndex = 0 + OnExecute = actAnadirExecute + end + object actEliminar: TAction + Hint = 'Quitar la imagen del producto' + ImageIndex = 1 + OnExecute = actEliminarExecute + end + end +end diff --git a/Source/Modulos/Articulos/Views/uViewArticulo.pas b/Source/Modulos/Articulos/Views/uViewArticulo.pas new file mode 100644 index 0000000..68f35cc --- /dev/null +++ b/Source/Modulos/Articulos/Views/uViewArticulo.pas @@ -0,0 +1,383 @@ +unit uViewArticulo; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, ExtCtrls, StdCtrls, Buttons, DB, uDADataTable, + DBCtrls, Grids, DBGrids, uBizArticulos, Mask, ComCtrls, uCustomView, + JvComponent, JvFormAutoSize, cxControls, cxContainer, cxEdit, cxTextEdit, + cxDBEdit, dxLayoutControl, cxCheckBox, PngSpeedButton, cxImage, ActnList, + ImgList, PngImageList, cxGraphics, cxMaskEdit, cxDropDownEdit, + uFamiliasController, uViewDatosYSeleccionProveedor, cxSpinEdit, cxCurrencyEdit, + uArticulosController, uUnidadesMedidaController, uFabricantesController, uDAInterfaces; + +type + IViewArticulo = interface(IViewBase) + ['{65206152-786D-47AE-A037-5EF480BC056C}'] + function GetArticulo: IBizArticulo; + procedure SetArticulo(const Value: IBizArticulo); + property Articulo: IBizArticulo read GetArticulo write SetArticulo; + + function GetController : IArticulosController; + procedure SetController (const Value : IArticulosController); + property Controller : IArticulosController read GetController write SetController; + end; + + TfrViewArticulo = class(TfrViewBase, IViewArticulo) + dsViewArticulo: TDADataSource; + dxLayoutControlArticuloGroup_Root: TdxLayoutGroup; + dxLayoutControlArticulo: TdxLayoutControl; + dxLayoutControlArticuloGroup1: TdxLayoutGroup; + dxLayoutControlArticuloItem3: TdxLayoutItem; + eReferencia: TcxDBTextEdit; + dxLayoutControlArticuloItem8: TdxLayoutItem; + eDescripcion: TcxDBTextEdit; + dxLayoutControlArticuloGroup2: TdxLayoutGroup; + dxLayoutControlArticuloItem1: TdxLayoutItem; + eNoComisionable: TcxDBCheckBox; + dxLayoutControlArticuloGroup4: TdxLayoutGroup; + OpenDialog1: TOpenDialog; + SmallImages: TPngImageList; + ActionList1: TActionList; + actAnadir: TAction; + actEliminar: TAction; + dxLayoutControlArticuloItem2: TdxLayoutItem; + PngSpeedButton2: TPngSpeedButton; + dxLayoutControlArticuloItem5: TdxLayoutItem; + PngSpeedButton1: TPngSpeedButton; + dxLayoutControlArticuloGroup3: TdxLayoutGroup; + eImagen: TcxImage; + dxLayoutControlArticuloItem6: TdxLayoutItem; + dxLayoutControlArticuloGroup5: TdxLayoutGroup; + dxLayoutControlArticuloItem4: TdxLayoutItem; + cbFamilia: TcxDBComboBox; + dxLayoutControlArticuloGroup6: TdxLayoutGroup; + dxLayoutControlArticuloItem7: TdxLayoutItem; + cbNoInventariable: TcxDBCheckBox; + dxLayoutControlArticuloItem9: TdxLayoutItem; + cbUnidadMedida: TcxDBComboBox; + dxLayoutControlArticuloItem10: TdxLayoutItem; + cbFabricante: TcxDBComboBox; + dxLayoutControlArticuloItem11: TdxLayoutItem; + eReferenciaFabr: TcxDBTextEdit; + dxLayoutControlArticuloGroup10: TdxLayoutGroup; + dxLayoutControlArticuloGroup14: TdxLayoutGroup; + procedure actEliminarExecute(Sender: TObject); + procedure actAnadirExecute(Sender: TObject); + procedure cbFamiliaPropertiesInitPopup(Sender: TObject); + procedure CustomViewCreate(Sender: TObject); + procedure CustomViewDestroy(Sender: TObject); + procedure cbFamiliaPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure PrecioNetoChanged(Sender: TObject); + procedure cbUnidadMedidaPropertiesInitPopup(Sender: TObject); + procedure cbUnidadMedidaPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure cbFabricantePropertiesInitPopup(Sender: TObject); + procedure cbFabricantePropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + private + procedure CargarImagen; + procedure SalvarImagen; + protected + FFamiliasController: IFamiliasController; + FUnidadesController: IUnidadesMedidaController; + FFabricantesController: IFabricantesController; + FController: IArticulosController; + FArticulo: IBizArticulo; + function GetArticulo: IBizArticulo; + procedure SetArticulo(const Value: IBizArticulo); virtual; + function GetController : IArticulosController; + procedure SetController (const Value : IArticulosController); + procedure OnProveedorChanged(Sender: TObject); + public + property Articulo: IBizArticulo read GetArticulo write SetArticulo; + property Controller : IArticulosController read GetController write SetController; + end; + +implementation + +uses + uDataModuleArticulos, uSistemaFunc, uBizFamilias, uBizContactos, + uBizUnidadesMedida, uBizFabricantes; + +{$R *.dfm} + + +{ TfrViewArticulos } + +{ +******************************* TfrViewArticulos ******************************** +} + +procedure TfrViewArticulo.actAnadirExecute(Sender: TObject); +begin +{ eImagen.LoadFromFile; + if Assigned(eImagen.Picture) then + SalvarImagen;} +end; + +procedure TfrViewArticulo.actEliminarExecute(Sender: TObject); +begin +{ inherited; + eImagen.Clear; + FArticulo.QuitarImagen;} +end; + +procedure TfrViewArticulo.CargarImagen; +{var + aAux : String;} +begin +{ if FArticulo.HayImagen then + begin + ShowHourglassCursor; + try + aAux := DarFicheroJPGTemporal; + FArticulo.SalvarImagen(aAux); + try + eImagen.Picture.LoadFromFile(aAux); + except + on EInvalidGraphic do + ShowMessage('error'); + end; + finally + DeleteFile(aAux); + HideHourglassCursor; + end; + end;} +end; + +procedure TfrViewArticulo.cbFabricantePropertiesInitPopup(Sender: TObject); +begin + inherited; + with cbFabricante.Properties.Items do + begin + if (Count = 0) then + begin + ShowHourglassCursor; + BeginUpdate; + try + Clear; + AddStrings(FFabricantesController.DarListaFabricantes); + finally + EndUpdate; + HideHourglassCursor; + end; + end; + end; +end; + +procedure TfrViewArticulo.cbFabricantePropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); +var + AFabricantes : IBizFabricante; +begin + inherited; + with (Sender as TcxDBComboBox) do + begin + if (Length(DisplayValue) > 0) and (DisplayValue <> FArticulo.FAMILIA) then + if Properties.LookupItems.IndexOf(DisplayValue) < 0 then + begin + ShowHourglassCursor; + Properties.LookupItems.BeginUpdate; + AFabricantes := FFabricantesController.BuscarTodos; + AFabricantes.DataTable.Active := True; + try + FFabricantesController.Anadir(AFabricantes); + AFabricantes.DESCRIPCION := DisplayValue; + FFabricantesController.Guardar(AFabricantes); + Properties.LookupItems.Add(DisplayValue); + finally + Properties.LookupItems.EndUpdate; + HideHourglassCursor; + AFabricantes := NIL; + end; + end; + end; +end; + +procedure TfrViewArticulo.cbFamiliaPropertiesInitPopup(Sender: TObject); +begin + inherited; + with cbFamilia.Properties.Items do + begin + if (Count = 0) then + begin + ShowHourglassCursor; + BeginUpdate; + try + Clear; + AddStrings(FFamiliasController.DarListaFamilias); + finally + EndUpdate; + HideHourglassCursor; + end; + end; + end; +end; + +procedure TfrViewArticulo.cbFamiliaPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); +var + AFamilias : IBizFamilia; +begin + inherited; + with (Sender as TcxDBComboBox) do + begin + if (Length(DisplayValue) > 0) and (DisplayValue <> FArticulo.FAMILIA) then + if Properties.LookupItems.IndexOf(DisplayValue) < 0 then + begin + ShowHourglassCursor; + Properties.LookupItems.BeginUpdate; + AFamilias := FFamiliasController.BuscarTodos; + AFamilias.DataTable.Active := True; + try + FFamiliasController.Anadir(AFamilias); + AFamilias.DESCRIPCION := DisplayValue; + FFamiliasController.Guardar(AFamilias); + Properties.LookupItems.Add(DisplayValue); + finally + Properties.LookupItems.EndUpdate; + HideHourglassCursor; + AFamilias := NIL; + end; + end; + end; +end; + +procedure TfrViewArticulo.cbUnidadMedidaPropertiesInitPopup(Sender: TObject); +begin + inherited; + with cbUnidadMedida.Properties.Items do + begin + if (Count = 0) then + begin + ShowHourglassCursor; + BeginUpdate; + try + Clear; + AddStrings(FUnidadesController.DarListaUnidadesMedida); + finally + EndUpdate; + HideHourglassCursor; + end; + end; + end; +end; + +procedure TfrViewArticulo.cbUnidadMedidaPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); +var + AUnidades : IBizUnidadMedida; +begin + inherited; + with (Sender as TcxDBComboBox) do + begin + if (Length(DisplayValue) > 0) and (DisplayValue <> FArticulo.FAMILIA) then + if Properties.LookupItems.IndexOf(DisplayValue) < 0 then + begin + ShowHourglassCursor; + Properties.LookupItems.BeginUpdate; + AUnidades := FUnidadesController.BuscarTodos; + AUnidades.DataTable.Active := True; + try + FUnidadesController.Anadir(AUnidades); + AUnidades.DESCRIPCION := DisplayValue; + FUnidadesController.Guardar(AUnidades); + Properties.LookupItems.Add(DisplayValue); + finally + Properties.LookupItems.EndUpdate; + HideHourglassCursor; + AUnidades := NIL; + end; + end; + end; +end; + +procedure TfrViewArticulo.CustomViewCreate(Sender: TObject); +begin + inherited; + FFamiliasController := TFamiliasController.Create; + FUnidadesController := TUnidadesMedidaController.Create; + FFabricantesController := TFabricantesController.Create; +end; + +procedure TfrViewArticulo.CustomViewDestroy(Sender: TObject); +begin + FFamiliasController := Nil; + FUnidadesController := NIL; + FFabricantesController := NIL; + inherited; +end; + +function TfrViewArticulo.GetArticulo: IBizArticulo; +begin + Result := FArticulo; +end; + +function TfrViewArticulo.GetController: IArticulosController; +begin + Result := FController; +end; + +procedure TfrViewArticulo.OnProveedorChanged(Sender: TObject); +begin + if Assigned(FArticulo) then + begin + FArticulo.Edit; +// FArticulo.ID_PROVEEDOR := frViewDatosYSeleccionProveedor1.Proveedor.ID; +// FArticulo.DESCUENTO := frViewDatosYSeleccionProveedor1.Proveedor.DESCUENTO; + end; +end; + +procedure TfrViewArticulo.PrecioNetoChanged(Sender: TObject); +begin + if Assigned(FController) then + FController.CalcularPrecioNeto(FArticulo); +end; + +procedure TfrViewArticulo.SalvarImagen; +var + aAux : String; +begin +{ ShowHourglassCursor; + try + aAux := DarFicheroJPGTemporal; + eImagen.Picture.SaveToFile(aAux); + FArticulo.CargarImagen(aAux); + Self.Modified := True; + finally + DeleteFile(aAux); + HideHourglassCursor; + end;} +end; + +procedure TfrViewArticulo.SetArticulo(const Value: IBizArticulo); +begin + FArticulo := Value; +// frViewDatosYSeleccionProveedor1.OnProveedorChanged := NIL; + + if Assigned(FArticulo) then + begin + dsViewArticulo.DataTable := FArticulo.DataTable; +// frViewDatosYSeleccionProveedor1.Controller := FController.ProveedoresController; +// frViewDatosYSeleccionProveedor1.Proveedor := (FController.ProveedoresController.Buscar(FArticulo.ID_PROVEEDOR) as IBizProveedor); +// frViewDatosYSeleccionProveedor1.OnProveedorChanged := OnProveedorChanged; + +// CargarImagen; + end + else begin + dsViewArticulo.DataTable := NIL; + FArticulo := NIL; + eImagen.Clear; + end; +end; + +procedure TfrViewArticulo.SetController(const Value: IArticulosController); +begin + FController := Value; +end; + +end. + diff --git a/Source/Modulos/Articulos/Views/uViewArticulos.dcu b/Source/Modulos/Articulos/Views/uViewArticulos.dcu new file mode 100644 index 0000000..9480231 Binary files /dev/null and b/Source/Modulos/Articulos/Views/uViewArticulos.dcu differ diff --git a/Source/Modulos/Articulos/Views/uViewArticulos.dfm b/Source/Modulos/Articulos/Views/uViewArticulos.dfm new file mode 100644 index 0000000..43d5ada --- /dev/null +++ b/Source/Modulos/Articulos/Views/uViewArticulos.dfm @@ -0,0 +1,327 @@ +inherited frViewArticulos: TfrViewArticulos + Width = 715 + Height = 462 + OnShow = CustomViewShow + ExplicitWidth = 715 + ExplicitHeight = 462 + inherited cxGrid: TcxGrid + Width = 715 + Height = 334 + ExplicitWidth = 715 + ExplicitHeight = 334 + inherited cxGridView: TcxGridDBTableView + DataController.KeyFieldNames = 'RecID' + DataController.Summary.FooterSummaryItems = < + item + Format = '0 Art'#237'culos' + Kind = skCount + Column = cxGridViewDESCRIPCION + end> + DataController.OnCompare = cxGridViewDataControllerCompare + OptionsBehavior.PullFocusing = True + OptionsCustomize.ColumnHidingOnGrouping = False + OptionsView.GroupFooters = gfAlwaysVisible + object cxGridViewRecID: TcxGridDBColumn + DataBinding.FieldName = 'RecID' + Visible = False + VisibleForCustomization = False + end + object cxGridViewID: TcxGridDBColumn + DataBinding.FieldName = 'ID' + Visible = False + VisibleForCustomization = False + end + object cxGridViewID_EMPRESA: TcxGridDBColumn + DataBinding.FieldName = 'ID_EMPRESA' + Visible = False + VisibleForCustomization = False + end + object cxGridViewREFERENCIA: TcxGridDBColumn + DataBinding.FieldName = 'REFERENCIA' + SortIndex = 0 + SortOrder = soAscending + end + object cxGridViewDESCRIPCION: TcxGridDBColumn + DataBinding.FieldName = 'DESCRIPCION' + end + object cxGridViewUNIDAD_MEDIDA: TcxGridDBColumn + DataBinding.FieldName = 'UNIDAD_MEDIDA' + end + object cxGridViewFAMILIA: TcxGridDBColumn + DataBinding.FieldName = 'FAMILIA' + end + object cxGridViewFABRICANTE: TcxGridDBColumn + DataBinding.FieldName = 'FABRICANTE' + end + object cxGridViewREFERENCIA_FABR: TcxGridDBColumn + DataBinding.FieldName = 'REFERENCIA_FABR' + end + object cxGridViewPRECIO_PVP_VENTA: TcxGridDBColumn + DataBinding.FieldName = 'PRECIO_PVP_VENTA' + end + object cxGridViewPRECIO_PVP_TOTAL: TcxGridDBColumn + DataBinding.FieldName = 'PRECIO_PVP_TOTAL' + end + end + inherited cxGridLevel: TcxGridLevel + Caption = 'Todos los art'#237'culos' + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 715 + ExplicitWidth = 715 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 715 + inherited dxLayoutControl1: TdxLayoutControl + Width = 715 + ExplicitWidth = 715 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 618 + Width = 618 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtFechaFinFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited eLista: TcxComboBox + Properties.DropDownRows = 20 + Properties.OnChange = frViewFiltroBase1eListaPropertiesChange + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 71 + Width = 71 + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Group1: TdxLayoutGroup + inherited dxLayoutControl1Item2: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Item3: TdxLayoutItem + Visible = False + end + end + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 715 + ExplicitWidth = 715 + inherited tbxBotones: TTBXToolbar + Width = 705 + ExplicitWidth = 705 + end + end + end + inherited ActionList1: TActionList + inherited actQuitarFiltro: TAction + OnExecute = frViewFiltroBase1actQuitarFiltroExecute + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 436 + Visible = True + ExplicitTop = 436 + ExplicitWidth = 715 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 715 + ExplicitWidth = 715 + inherited TBXToolbar1: TTBXToolbar + Width = 705 + ExplicitWidth = 705 + object TBXSeparatorItem1: TTBXSeparatorItem + end + object TBXItem3: TTBXItem + Action = actFamilia + end + object TBXSeparatorItem2: TTBXSeparatorItem + end + object TBXItem4: TTBXItem + Action = actFabricante + end + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 38673.842406053240000000 + BuiltInReportLink = True + end + end + inherited ActionList1: TActionList + Left = 360 + Top = 280 + object actFamilia: TAction + Caption = 'Familia' + OnExecute = actFamiliaExecute + OnUpdate = actFamiliaUpdate + end + object actFabricante: TAction + Caption = 'Fabricante' + OnExecute = actFabricanteExecute + OnUpdate = actFabricanteUpdate + end + end + inherited GridPNGImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000434944415478DA63FCFFFF3F + 03258011D900464646ACA601D530126D00BA6298A1B80C21CA0090183639925C + 80CB3B040DC0E69A510306BD010C04005E03C801036F00008D248BE16F9028BA + 0000000049454E44AE426082} + Name = 'Icono_header' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000022E4944415478DA + 8D93CF6BD36018C7BF6997A45DD376EA70CA18D31D44981741280C44119DA83D + C87619781A1EFD1BC49B2028B28353141111A43BE8CD934E65A8D4A1686B61B5 + A31DD8CCBAFEDAACEDF226B389EFFB26CBCC54E6030FEFCB4B3E9FE79B9744B0 + 2C0B8220E0F7BA3AB2D75A282DE07F4AD82C60F0851B8F50530BF85EF98A6236 + 8DCCAB69B0B366BD8C95B24ACF4BB877FD226AFD635EC13A5CF99243A356869A + 4D51F8398799EC476D09E5621E0F6F5EC6C8D938EE7C503604EB7055CDA34127 + A8B90C3ECD3CE570A35AA2FD0DCB4B2AEE4F5CC29953C35094102667655B706D + 7480C3F97412AD951AAAC502E6DEBCE47031974673B942BB8AA9DB57103F7D12 + 9D9D413ED4154C8C0BD6FCE7AD2F6C2816C3CE9E6E8862077C3E9F57307CE2FC + 1F80655A308C35E844C7B3273318D8D78FE8B6282449A41211B7DE05FE2D304D + 13866EC34433F0FAC55BF4EDE945A42B0C910A6459C6DD94F27781D936F964B2 + AADB02DAEF9329ECEEED4138A240944548B2840773DBBD02B637596C6238205D + 352AD175643E66B1A3BB0B0A15489204292061AAB0CB2B68D3C96B34367120BE + 3AB2F96C01E1A8825028083920F35778BCD8B721387E6C9C42060788465C50A3 + 12B24AB0582C2110946907282C61BA3588442221B882C343E75C50A30093B104 + 84D849EAD53AFC1D7E0ECFFA631C76FF0526387470D4135977405B62A0D56CB2 + C791891C71618FE0C0FEB873618623B2E33361FB679B4A340A1FF5C01E41928C + 6DF9256E8659FD02D3B7960923D6946A0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000B64944415478DA6364A010300E2A031C80B800CA9E00C407408C008F + 00850F3F3E2C3870E080032103E09A900D031AD0B061C70607A8185E03FE03B1 + 2094FD1E24E7E0E12070E1C2850D1F5E7C4800F21F90EC0207078702A0D30370 + D94E300C0404040E7CF8F0A101C960BC06A000A0ED0140DB0BA006630D604206 + 00F51F0029DE802B80711A000C798703270E34009D0FF33B4600E335C0C0C0E0 + 0028F4A136630D60425E00290685FE075C014C300C8805036F00007263471179 + E402210000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000E54944415478DADD902172C3301045BF4F10C3320B9645B0ACEE0D7C + 83F806F5110C0BD51B6C99A160E1C2C085850B0D372C655965DCA28C3D9DB27C + CD8E44FEDBFF55E19FAAEE104013B77EF53ED100B3595967637A1B7813B098C7 + F8149E435DC3CE807C29F2943FD48C784ABC0520371FF64D83D377597FF201F8 + 28C899DE39D3B005D0AE8B0DB0FB3597143A2B98195EA3DA0248DBC67D79FF98 + B100682278857540224EF131BCD64BFF62363FE215540594C675C098728BB3F5 + 2184031C72DDAE1EFFC89EC85EE493D63FB1A81F526BA65D7808BDA8EE1C0611 + B969BE09F8ABEE007001C1D97F1131BF40440000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end> + Bitmap = {} + end +end diff --git a/Source/Modulos/Articulos/Views/uViewArticulos.pas b/Source/Modulos/Articulos/Views/uViewArticulos.pas new file mode 100644 index 0000000..b2d8364 --- /dev/null +++ b/Source/Modulos/Articulos/Views/uViewArticulos.pas @@ -0,0 +1,205 @@ +unit uViewArticulos; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel, + cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGrid, uBizArticulos, ActnList, Menus, + cxGridBandedTableView, cxGridDBBandedTableView, JvComponent, + JvFormAutoSize, PngImageList, ImgList, dxPSGlbl, dxPSUtl, dxPSEngn, + dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, cxIntlPrintSys3, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, + cxGridCustomPopupMenu, cxGridPopupMenu, cxCurrencyEdit, cxSpinEdit, cxCheckBox, + cxCheckComboBox, cxImageComboBox, TB2Item, TBX, TB2Toolbar, TBXDkPanels, + TB2Dock, uViewFiltroBase, dxPgsDlg, uDAInterfaces, + uArticulosController; + +type + IViewArticulos = interface(IViewGrid) + ['{4C09BEC8-C82B-4DE8-8C36-40DB62224E95}'] + function GetArticulos: IBizArticulo; + procedure SetArticulos(const Value: IBizArticulo); + property Articulos: IBizArticulo read GetArticulos write SetArticulos; + + function GetController : IArticulosController; + procedure SetController (const Value : IArticulosController); + property Controller : IArticulosController read GetController write SetController; + end; + + TfrViewArticulos = class(TfrViewGrid, IViewArticulos) + actFamilia: TAction; + TBXItem3: TTBXItem; + TBXSeparatorItem1: TTBXSeparatorItem; + TBXSeparatorItem2: TTBXSeparatorItem; + TBXItem4: TTBXItem; + actFabricante: TAction; + cxGridViewRecID: TcxGridDBColumn; + cxGridViewID: TcxGridDBColumn; + cxGridViewID_EMPRESA: TcxGridDBColumn; + cxGridViewREFERENCIA: TcxGridDBColumn; + cxGridViewDESCRIPCION: TcxGridDBColumn; + cxGridViewUNIDAD_MEDIDA: TcxGridDBColumn; + cxGridViewFAMILIA: TcxGridDBColumn; + cxGridViewFABRICANTE: TcxGridDBColumn; + cxGridViewREFERENCIA_FABR: TcxGridDBColumn; + cxGridViewPRECIO_PVP_VENTA: TcxGridDBColumn; + cxGridViewPRECIO_PVP_TOTAL: TcxGridDBColumn; + procedure actFamiliaExecute(Sender: TObject); + procedure actFamiliaUpdate(Sender: TObject); + procedure actFabricanteExecute(Sender: TObject); + procedure actFabricanteUpdate(Sender: TObject); + procedure cxGridView2DataControllerCompare(ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2, + AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer); + procedure frViewFiltroBase1eListaPropertiesChange(Sender: TObject); + procedure frViewFiltroBase1actQuitarFiltroExecute(Sender: TObject); + procedure CustomViewShow(Sender: TObject); + procedure cxGridViewDataControllerCompare( + ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2, + AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer); + + protected + FArticulos: IBizArticulo; + FController: IArticulosController; + function GetArticulos: IBizArticulo; virtual; + procedure SetArticulos(const Value: IBizArticulo); virtual; + function GetController : IArticulosController; + procedure SetController (const Value : IArticulosController); + + public + property Articulos: IBizArticulo read GetArticulos write SetArticulos; + property Controller : IArticulosController read GetController write SetController; + procedure AnadirOtrosFiltros; override; + end; + +implementation +{$R *.dfm} + +uses + schArticulosClient_Intf, uReferenciasUtils, cxVariants; + + +{ TfrViewArticulos } + +{ +******************************* TfrViewArticulos ******************************* +} +function TfrViewArticulos.GetArticulos: IBizArticulo; +begin + Result := FArticulos; +end; + +function TfrViewArticulos.GetController: IArticulosController; +begin + Result := FController; +end; + +procedure TfrViewArticulos.SetArticulos(const Value: IBizArticulo); +begin + FArticulos := Value; + if Assigned(FArticulos) then + dsDataSource.DataTable := FArticulos.DataTable; +end; + + +procedure TfrViewArticulos.SetController(const Value: IArticulosController); +begin + FController := Value; +end; + +procedure TfrViewArticulos.actFabricanteExecute(Sender: TObject); +begin + if (cxGridViewFABRICANTE.GroupIndex < 0) then + begin + cxGridViewFABRICANTE.GroupIndex := cxGridView.GroupedColumnCount; + cxGridViewFABRICANTE.Visible := False; + end + else + begin + cxGridViewFABRICANTE.GroupIndex := -1; + cxGridViewFABRICANTE.Visible := True; + end; +end; + +procedure TfrViewArticulos.actFabricanteUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Checked := not (cxGridViewFABRICANTE.GroupIndex < 0); +end; + +procedure TfrViewArticulos.actFamiliaExecute(Sender: TObject); +begin + if (cxGridViewFAMILIA.GroupIndex < 0) then + begin + cxGridViewFAMILIA.GroupIndex := cxGridView.GroupedColumnCount; + cxGridViewFAMILIA.Visible := False; + end + else + begin + cxGridViewFAMILIA.GroupIndex := -1; + cxGridViewFAMILIA.Visible := True; + end; +end; + +procedure TfrViewArticulos.actFamiliaUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Checked := not (cxGridViewFAMILIA.GroupIndex < 0); +end; + +procedure TfrViewArticulos.AnadirOtrosFiltros; +begin + inherited; + + //Finalmente activamos el filtro si tenemos algo + if cxGridView.DataController.Filter.IsEmpty + then cxGridView.DataController.Filter.Active := False + else cxGridView.DataController.Filter.Active := True; + cxGrid.ActiveLevel.GridView := cxGridView; +end; + +procedure TfrViewArticulos.CustomViewShow(Sender: TObject); +begin + inherited; + AjustarAncho; +end; + +procedure TfrViewArticulos.cxGridView2DataControllerCompare( + ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2, + AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer); +begin + inherited; + if ((AItemIndex = cxGridViewREFERENCIA.Index)) and + (VarType(V1) = VarType(V2)) and (VarType(V1) = varString) then + Compare := CompararReferencias(V1, V2) + else + Compare := VarCompare(V1, V2); +end; + +procedure TfrViewArticulos.cxGridViewDataControllerCompare( + ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2, + AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer); +begin + inherited; + if (AItemIndex = cxGridViewREFERENCIA.Index) and + (VarType(V1) = VarType(V2)) and (VarType(V1) = varString) then + Compare := CompararReferencias(V1, V2) + else + Compare := VarCompare(V1, V2); +end; + +procedure TfrViewArticulos.frViewFiltroBase1actQuitarFiltroExecute(Sender: TObject); +begin + frViewFiltroBase1.txtFiltroTodo.Clear; + frViewFiltroBase1.eLista.Clear; +end; + +procedure TfrViewArticulos.frViewFiltroBase1eListaPropertiesChange(Sender: TObject); +begin + inherited; + RefrescarFiltro; +end; + +end. diff --git a/Source/Modulos/Articulos/Views/uViewArticulosPorProveedor.dcu b/Source/Modulos/Articulos/Views/uViewArticulosPorProveedor.dcu new file mode 100644 index 0000000..38940b2 Binary files /dev/null and b/Source/Modulos/Articulos/Views/uViewArticulosPorProveedor.dcu differ diff --git a/Source/Modulos/Articulos/Views/uViewArticulosPorProveedor.dfm b/Source/Modulos/Articulos/Views/uViewArticulosPorProveedor.dfm new file mode 100644 index 0000000..7da8c4e --- /dev/null +++ b/Source/Modulos/Articulos/Views/uViewArticulosPorProveedor.dfm @@ -0,0 +1,492 @@ +inherited frViewArticulosPorProveedor: TfrViewArticulosPorProveedor + Width = 715 + Height = 462 + OnCreate = CustomViewCreate + OnDestroy = CustomViewDestroy + OnShow = CustomViewShow + ExplicitWidth = 715 + ExplicitHeight = 462 + inherited cxGrid: TcxGrid + Width = 715 + Height = 334 + ExplicitWidth = 715 + ExplicitHeight = 334 + inherited cxGridView: TcxGridDBTableView + DataController.KeyFieldNames = 'RecID' + DataController.Summary.FooterSummaryItems = < + item + Format = '0 Art'#237'culos por proveedor' + Kind = skCount + Column = cxGridViewDESCRIPCION + end> + DataController.OnCompare = cxGridViewDataControllerCompare + OptionsBehavior.PullFocusing = True + OptionsCustomize.ColumnHidingOnGrouping = False + OptionsView.GroupFooters = gfAlwaysVisible + object cxGridViewINVENTARIABLE: TcxGridDBColumn + Caption = #191'Inventariable?' + DataBinding.FieldName = 'INVENTARIABLE' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Images = GridPNGImageList + Properties.Items = < + item + Value = 0 + end + item + ImageIndex = 3 + Tag = 1 + Value = 1 + end> + Visible = False + BestFitMaxWidth = 22 + MinWidth = 22 + Options.HorzSizing = False + VisibleForCustomization = False + Width = 22 + end + object cxGridViewCOMISIONABLE: TcxGridDBColumn + Caption = #191'Comisionable?' + DataBinding.FieldName = 'COMISIONABLE' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.DefaultDescription = 'S'#237 + Properties.DefaultImageIndex = 1 + Properties.ImmediatePost = True + Properties.ImmediateUpdateText = True + Properties.Items = < + item + Description = 'S'#237 + ImageIndex = 1 + Tag = 1 + Value = 1 + end + item + Description = 'No' + Value = 0 + end + item + Description = 'S'#237 + ImageIndex = 1 + Tag = 1 + end> + Properties.PostPopupValueOnTab = True + Properties.ShowDescriptions = False + Visible = False + BestFitMaxWidth = 22 + MinWidth = 22 + Options.HorzSizing = False + VisibleForCustomization = False + Width = 22 + end + object cxGridViewREFERENCIA: TcxGridDBColumn + Caption = 'Referencia' + DataBinding.FieldName = 'REFERENCIA' + BestFitMaxWidth = 60 + SortIndex = 0 + SortOrder = soAscending + Width = 60 + end + object cxGridViewFABRICANTE: TcxGridDBColumn + Caption = 'Fabricante' + DataBinding.FieldName = 'FABRICANTE' + BestFitMaxWidth = 60 + end + object cxGridViewREFERENCIA_FABR: TcxGridDBColumn + Caption = 'Ref. fabricante' + DataBinding.FieldName = 'REFERENCIA_FABR' + BestFitMaxWidth = 60 + Width = 60 + end + object cxGridViewDESCRIPCION: TcxGridDBColumn + Caption = 'Descripci'#243'n' + DataBinding.FieldName = 'DESCRIPCION' + Width = 120 + end + object cxGridViewUNIDAD_MEDIDA: TcxGridDBColumn + Caption = 'Unid. medida' + DataBinding.FieldName = 'UNIDAD_MEDIDA' + BestFitMaxWidth = 45 + Width = 60 + end + object cxGridViewFAMILIA: TcxGridDBColumn + Caption = 'Familia' + DataBinding.FieldName = 'FAMILIA' + BestFitMaxWidth = 60 + Width = 60 + end + object cxGridViewNOMBRE_PROVEEDOR: TcxGridDBColumn + Caption = 'Proveedor' + DataBinding.FieldName = 'NOMBRE_PROVEEDOR' + BestFitMaxWidth = 120 + Width = 120 + end + object cxGridViewREFERENCIA_PROV: TcxGridDBColumn + Caption = 'Ref. proveedor' + DataBinding.FieldName = 'REFERENCIA_PROV' + BestFitMaxWidth = 60 + Width = 60 + end + object cxGridViewPRECIO_COSTE: TcxGridDBColumn + Caption = 'Precio material' + DataBinding.FieldName = 'PRECIO_COSTE' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + BestFitMaxWidth = 60 + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewDESCUENTO: TcxGridDBColumn + Caption = 'Descuento' + DataBinding.FieldName = 'DESCUENTO' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = ',0.00 %;-,0.00 %' + BestFitMaxWidth = 60 + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewPRECIO_NETO: TcxGridDBColumn + Caption = 'Precio coste' + DataBinding.FieldName = 'PRECIO_NETO' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + BestFitMaxWidth = 60 + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewPRECIO_PORTE: TcxGridDBColumn + Caption = 'Precio porte' + DataBinding.FieldName = 'PRECIO_PORTE' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + Visible = False + BestFitMaxWidth = 60 + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + VisibleForCustomization = False + end + object cxGridViewMARGEN: TcxGridDBColumn + Caption = 'Margen' + DataBinding.FieldName = 'PARAM_MARGEN' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = ',0.00 %;-,0.00 %' + Visible = False + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewPRECIO_PVP_VENTA: TcxGridDBColumn + Caption = 'Precio P.V.P (solo suministro)' + DataBinding.FieldName = 'PRECIO_PVP_VENTA' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + GroupSummaryAlignment = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewID_PROVEEDOR: TcxGridDBColumn + DataBinding.FieldName = 'ID_PROVEEDOR' + Visible = False + VisibleForCustomization = False + end + object cxGridViewTIEMPO: TcxGridDBColumn + Caption = 'Tiempo min' + DataBinding.FieldName = 'TIEMPO' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Visible = False + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewPARAM_TIEMPO: TcxGridDBColumn + DataBinding.FieldName = 'PARAM_TIEMPO' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + Visible = False + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewMANO_OBRA: TcxGridDBColumn + DataBinding.FieldName = 'MANO_OBRA' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + Visible = False + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewPRECIO_PVP_TOTAL: TcxGridDBColumn + DataBinding.FieldName = 'PRECIO_PVP_TOTAL' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + end + inherited cxGridLevel: TcxGridLevel + Caption = 'Todos los art'#237'culos' + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 715 + ExplicitWidth = 715 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 715 + inherited dxLayoutControl1: TdxLayoutControl + Width = 715 + ExplicitWidth = 715 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 618 + Width = 618 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtFechaFinFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited eLista: TcxComboBox + Properties.DropDownRows = 20 + Properties.OnChange = nil + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 71 + Width = 71 + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Group1: TdxLayoutGroup + inherited dxLayoutControl1Item2: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Item3: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Item4: TdxLayoutItem + Visible = True + end + end + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 715 + ExplicitWidth = 715 + inherited tbxBotones: TTBXToolbar + Width = 705 + ExplicitWidth = 705 + end + end + end + inherited ActionList1: TActionList + inherited actQuitarFiltro: TAction + OnExecute = frViewFiltroBase1actQuitarFiltroExecute + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 436 + Visible = True + ExplicitTop = 436 + ExplicitWidth = 715 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 715 + ExplicitWidth = 715 + inherited TBXToolbar1: TTBXToolbar + Width = 705 + ExplicitWidth = 705 + object TBXSeparatorItem1: TTBXSeparatorItem + end + object TBXItem3: TTBXItem + Action = actFamilia + end + object TBXSeparatorItem2: TTBXSeparatorItem + end + object TBXItem2: TTBXItem + Action = actProveedor + end + object TBXSeparatorItem3: TTBXSeparatorItem + end + object TBXItem4: TTBXItem + Action = actFabricante + end + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 38673.842406053240000000 + BuiltInReportLink = True + end + end + inherited ActionList1: TActionList + Left = 360 + Top = 280 + object actFamilia: TAction + Caption = 'Familia' + OnExecute = actFamiliaExecute + OnUpdate = actFamiliaUpdate + end + object actProveedor: TAction + Caption = 'Proveedor' + OnExecute = actProveedorExecute + OnUpdate = actProveedorUpdate + end + object actFabricante: TAction + Caption = 'Fabricante' + OnExecute = actFabricanteExecute + OnUpdate = actFabricanteUpdate + end + end + inherited GridPNGImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000434944415478DA63FCFFFF3F + 03258011D900464646ACA601D530126D00BA6298A1B80C21CA0090183639925C + 80CB3B040DC0E69A510306BD010C04005E03C801036F00008D248BE16F9028BA + 0000000049454E44AE426082} + Name = 'Icono_header' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000022E4944415478DA + 8D93CF6BD36018C7BF6997A45DD376EA70CA18D31D44981741280C44119DA83D + C87619781A1EFD1BC49B2028B28353141111A43BE8CD934E65A8D4A1686B61B5 + A31DD8CCBAFEDAACEDF226B389EFFB26CBCC54E6030FEFCB4B3E9FE79B9744B0 + 2C0B8220E0F7BA3AB2D75A282DE07F4AD82C60F0851B8F50530BF85EF98A6236 + 8DCCAB69B0B366BD8C95B24ACF4BB877FD226AFD635EC13A5CF99243A356869A + 4D51F8398799EC476D09E5621E0F6F5EC6C8D938EE7C503604EB7055CDA34127 + A8B90C3ECD3CE570A35AA2FD0DCB4B2AEE4F5CC29953C35094102667655B706D + 7480C3F97412AD951AAAC502E6DEBCE47031974673B942BB8AA9DB57103F7D12 + 9D9D413ED4154C8C0BD6FCE7AD2F6C2816C3CE9E6E8862077C3E9F57307CE2FC + 1F80655A308C35E844C7B3273318D8D78FE8B6282449A41211B7DE05FE2D304D + 13866EC34433F0FAC55BF4EDE945A42B0C910A6459C6DD94F27781D936F964B2 + AADB02DAEF9329ECEEED4138A240944548B2840773DBBD02B637596C6238205D + 352AD175643E66B1A3BB0B0A15489204292061AAB0CB2B68D3C96B34367120BE + 3AB2F96C01E1A8825028083920F35778BCD8B721387E6C9C42060788465C50A3 + 12B24AB0582C2110946907282C61BA3588442221B882C343E75C50A30093B104 + 84D849EAD53AFC1D7E0ECFFA631C76FF0526387470D4135977405B62A0D56CB2 + C791891C71618FE0C0FEB873618623B2E33361FB679B4A340A1FF5C01E41928C + 6DF9256E8659FD02D3B7960923D6946A0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000B64944415478DA6364A010300E2A031C80B800CA9E00C407408C008F + 00850F3F3E2C3870E080032103E09A900D031AD0B061C70607A8185E03FE03B1 + 2094FD1E24E7E0E12070E1C2850D1F5E7C4800F21F90EC0207078702A0D30370 + D94E300C0404040E7CF8F0A101C960BC06A000A0ED0140DB0BA006630D604206 + 00F51F0029DE802B80711A000C798703270E34009D0FF33B4600E335C0C0C0E0 + 0028F4A136630D60425E00290685FE075C014C300C8805036F00007263471179 + E402210000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000E54944415478DADD902172C3301045BF4F10C3320B9645B0ACEE0D7C + 83F806F5110C0BD51B6C99A160E1C2C085850B0D372C655965DCA28C3D9DB27C + CD8E44FEDBFF55E19FAAEE104013B77EF53ED100B3595967637A1B7813B098C7 + F8149E435DC3CE807C29F2943FD48C784ABC0520371FF64D83D377597FF201F8 + 28C899DE39D3B005D0AE8B0DB0FB3597143A2B98195EA3DA0248DBC67D79FF98 + B100682278857540224EF131BCD64BFF62363FE215540594C675C098728BB3F5 + 2184031C72DDAE1EFFC89EC85EE493D63FB1A81F526BA65D7808BDA8EE1C0611 + B969BE09F8ABEE007001C1D97F1131BF40440000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end> + Bitmap = {} + end +end diff --git a/Source/Modulos/Articulos/Views/uViewArticulosPorProveedor.pas b/Source/Modulos/Articulos/Views/uViewArticulosPorProveedor.pas new file mode 100644 index 0000000..c666c0d --- /dev/null +++ b/Source/Modulos/Articulos/Views/uViewArticulosPorProveedor.pas @@ -0,0 +1,306 @@ +unit uViewArticulosPorProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel, + cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGrid, uBizArticulos, ActnList, Menus, + cxGridBandedTableView, cxGridDBBandedTableView, JvComponent, + JvFormAutoSize, PngImageList, ImgList, dxPSGlbl, dxPSUtl, dxPSEngn, + dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, cxIntlPrintSys3, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, + cxGridCustomPopupMenu, cxGridPopupMenu, cxCurrencyEdit, cxSpinEdit, cxCheckBox, + cxCheckComboBox, cxImageComboBox, TB2Item, TBX, TB2Toolbar, TBXDkPanels, + TB2Dock, uViewFiltroBase, dxPgsDlg, uDAInterfaces, + uArticulosController, uViewArticulos; + +type + TfrViewArticulosPorProveedor = class(TfrViewGrid, IViewArticulos) + cxGridViewREFERENCIA: TcxGridDBColumn; + cxGridViewDESCRIPCION: TcxGridDBColumn; + cxGridViewFAMILIA: TcxGridDBColumn; + cxGridViewNOMBRE_PROVEEDOR: TcxGridDBColumn; + actFamilia: TAction; + actProveedor: TAction; + TBXItem2: TTBXItem; + TBXItem3: TTBXItem; + TBXSeparatorItem1: TTBXSeparatorItem; + TBXSeparatorItem2: TTBXSeparatorItem; + cxGridViewINVENTARIABLE: TcxGridDBColumn; + cxGridViewUNIDAD_MEDIDA: TcxGridDBColumn; + cxGridViewFABRICANTE: TcxGridDBColumn; + TBXItem4: TTBXItem; + TBXSeparatorItem3: TTBXSeparatorItem; + actFabricante: TAction; + cxGridViewREFERENCIA_FABR: TcxGridDBColumn; + cxGridViewPRECIO_PVP_VENTA: TcxGridDBColumn; + cxGridViewID_PROVEEDOR: TcxGridDBColumn; + cxGridViewMARGEN: TcxGridDBColumn; + cxGridViewPRECIO_PVP_TOTAL: TcxGridDBColumn; + cxGridViewTIEMPO: TcxGridDBColumn; + cxGridViewPARAM_TIEMPO: TcxGridDBColumn; + cxGridViewMANO_OBRA: TcxGridDBColumn; + procedure actProveedorExecute(Sender: TObject); + procedure actProveedorUpdate(Sender: TObject); + procedure actFamiliaExecute(Sender: TObject); + procedure actFamiliaUpdate(Sender: TObject); + procedure actFabricanteExecute(Sender: TObject); + procedure actFabricanteUpdate(Sender: TObject); + procedure cxGridView2DataControllerCompare(ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2, + AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer); + procedure OnFiltroBaseListaPropertiesChange(Sender: TObject); + procedure CustomViewCreate(Sender: TObject); + procedure CustomViewDestroy(Sender: TObject); + procedure frViewFiltroBase1actQuitarFiltroExecute(Sender: TObject); + procedure CustomViewShow(Sender: TObject); + procedure cxGridViewDataControllerCompare( + ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2, + AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer); + + private + FListaProveedores: TStringList; + //Filtros relativos a la vista + procedure AnadirFiltroProveedores; + + protected + FArticulos: IBizArticulo; + FController: IArticulosController; + function GetArticulos: IBizArticulo; virtual; + procedure SetArticulos(const Value: IBizArticulo); virtual; + function GetController : IArticulosController; + procedure SetController (const Value : IArticulosController); + + public + property Articulos: IBizArticulo read GetArticulos write SetArticulos; + property Controller : IArticulosController read GetController write SetController; + procedure AnadirOtrosFiltros; override; + end; + +implementation +{$R *.dfm} + +uses + schArticulosClient_Intf, uReferenciasUtils, cxVariants; + + +{ TfrViewArticulos } + +{ +******************************* TfrViewArticulos ******************************* +} +function TfrViewArticulosPorProveedor.GetArticulos: IBizArticulo; +begin + Result := FArticulos; +end; + +function TfrViewArticulosPorProveedor.GetController: IArticulosController; +begin + Result := FController; +end; + +procedure TfrViewArticulosPorProveedor.SetArticulos(const Value: IBizArticulo); +begin + FArticulos := Value; + if Assigned(FArticulos) then + dsDataSource.DataTable := FArticulos.DataTable; +end; + + +procedure TfrViewArticulosPorProveedor.SetController(const Value: IArticulosController); +var + i: Integer; + +begin + FController := Value; + + //Rellenamos la lista de proveedores con articulos + if Assigned(FController) then + begin + FListaProveedores := FController.DarListaProveedoresConArticulos; + with frViewFiltroBase1.eLista.Properties.Items do + begin + BeginUpdate; + try + Clear; + Add('Todos'); + for i := 0 to FListaProveedores.Count - 1 do + Add(FListaProveedores.Names[i]); + + frViewFiltroBase1.eLista.ItemIndex := 0; + finally + EndUpdate; + end; + end; + end; +end; + +procedure TfrViewArticulosPorProveedor.actFabricanteExecute(Sender: TObject); +begin + if (cxGridViewFABRICANTE.GroupIndex < 0) then + begin + cxGridViewFABRICANTE.GroupIndex := cxGridView.GroupedColumnCount; + cxGridViewFABRICANTE.Visible := False; + end + else + begin + cxGridViewFABRICANTE.GroupIndex := -1; + cxGridViewFABRICANTE.Visible := True; + end; +end; + +procedure TfrViewArticulosPorProveedor.actFabricanteUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Checked := not (cxGridViewFABRICANTE.GroupIndex < 0); +end; + +procedure TfrViewArticulosPorProveedor.actFamiliaExecute(Sender: TObject); +begin + if (cxGridViewFAMILIA.GroupIndex < 0) then + begin + cxGridViewFAMILIA.GroupIndex := cxGridView.GroupedColumnCount; + cxGridViewFAMILIA.Visible := False; + end + else + begin + cxGridViewFAMILIA.GroupIndex := -1; + cxGridViewFAMILIA.Visible := True; + end; +end; + +procedure TfrViewArticulosPorProveedor.actFamiliaUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Checked := not (cxGridViewFAMILIA.GroupIndex < 0); +end; + +procedure TfrViewArticulosPorProveedor.actProveedorExecute(Sender: TObject); +begin + inherited; + if (cxGrid.ActiveLevel.Tag = 1) then + if (cxGridViewNOMBRE_PROVEEDOR.GroupIndex < 0) then + begin + cxGridViewNOMBRE_PROVEEDOR.GroupIndex := cxGridView.GroupedColumnCount; + cxGridViewNOMBRE_PROVEEDOR.Visible := False; + end + else + begin + cxGridViewNOMBRE_PROVEEDOR.GroupIndex := -1; + cxGridViewNOMBRE_PROVEEDOR.Visible := True; + end; +end; + +procedure TfrViewArticulosPorProveedor.actProveedorUpdate(Sender: TObject); +begin + inherited; + if (cxGrid.ActiveLevel.Tag = 1) then + begin + (Sender as TAction).Enabled := True; + (Sender as TAction).Checked := not (cxGridViewNOMBRE_PROVEEDOR.GroupIndex < 0); + end + else + (Sender as TAction).Enabled := False; +end; + +procedure TfrViewArticulosPorProveedor.AnadirFiltroProveedores; +var + FFiltro : TcxFilterCriteriaItemList; + CodigoProveedor: Variant; + Index: Integer; +begin + //Solo se aplica este filtro en el caso de tener activo el panel de detalle de filtro + //y sobre la lista de articulos detallada por proveedor + if frViewFiltroBase1.Visible then + begin + if VarIsNull(frViewFiltroBase1.eLista.EditValue) then + CodigoProveedor := frViewFiltroBase1.eLista.EditValue + else + CodigoProveedor := FListaProveedores.Values[frViewFiltroBase1.eLista.EditValue]; + + if not VarIsNull(CodigoProveedor) + and (VarToStr(CodigoProveedor) <> '') then + begin + FFiltro := AddFilterGrid(fboAnd); + FFiltro.AddItem(cxGridViewID_PROVEEDOR, foEqual, CodigoProveedor, CodigoProveedor); + cxGridViewNOMBRE_PROVEEDOR.Visible := False; + end + else + cxGridViewNOMBRE_PROVEEDOR.Visible := True; + end; +end; + +procedure TfrViewArticulosPorProveedor.AnadirOtrosFiltros; +begin + inherited; + + AnadirFiltroProveedores; + + //Finalmente activamos el filtro si tenemos algo + if cxGridView.DataController.Filter.IsEmpty + then cxGridView.DataController.Filter.Active := False + else cxGridView.DataController.Filter.Active := True; + cxGrid.ActiveLevel.GridView := cxGridView; + +end; + +procedure TfrViewArticulosPorProveedor.CustomViewCreate(Sender: TObject); +begin + inherited; + FListaProveedores := Nil; + Controller := TArticulosController.Create; +end; + +procedure TfrViewArticulosPorProveedor.CustomViewDestroy(Sender: TObject); +begin + inherited; + frViewFiltroBase1.eLista.Properties.OnChange := Nil; + FreeAndNil(FListaProveedores); +end; + +procedure TfrViewArticulosPorProveedor.CustomViewShow(Sender: TObject); +begin + inherited; + AjustarAncho; + frViewFiltroBase1.eLista.Properties.OnChange := OnFiltroBaseListaPropertiesChange; +end; + +procedure TfrViewArticulosPorProveedor.cxGridView2DataControllerCompare( + ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2, + AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer); +begin + inherited; + if ((AItemIndex = cxGridViewREFERENCIA.Index)) and + (VarType(V1) = VarType(V2)) and (VarType(V1) = varString) then + Compare := CompararReferencias(V1, V2) + else + Compare := VarCompare(V1, V2); +end; + +procedure TfrViewArticulosPorProveedor.cxGridViewDataControllerCompare( + ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2, + AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer); +begin + inherited; + if (AItemIndex = cxGridViewREFERENCIA.Index) and + (VarType(V1) = VarType(V2)) and (VarType(V1) = varString) then + Compare := CompararReferencias(V1, V2) + else + Compare := VarCompare(V1, V2); +end; + +procedure TfrViewArticulosPorProveedor.frViewFiltroBase1actQuitarFiltroExecute(Sender: TObject); +begin + frViewFiltroBase1.txtFiltroTodo.Clear; + frViewFiltroBase1.eLista.Clear; +end; + +procedure TfrViewArticulosPorProveedor.OnFiltroBaseListaPropertiesChange(Sender: TObject); +begin + inherited; + RefrescarFiltro; +end; + +end. diff --git a/Source/Modulos/Articulos/Views/uViewArticulosProveedores.dcu b/Source/Modulos/Articulos/Views/uViewArticulosProveedores.dcu new file mode 100644 index 0000000..10e1f3b Binary files /dev/null and b/Source/Modulos/Articulos/Views/uViewArticulosProveedores.dcu differ diff --git a/Source/Modulos/Articulos/Views/uViewArticulosProveedores.dfm b/Source/Modulos/Articulos/Views/uViewArticulosProveedores.dfm new file mode 100644 index 0000000..b608632 --- /dev/null +++ b/Source/Modulos/Articulos/Views/uViewArticulosProveedores.dfm @@ -0,0 +1,109 @@ +inherited frViewArticulosProveedores: TfrViewArticulosProveedores + Width = 774 + Height = 513 + OnShow = CustomViewShow + ExplicitWidth = 774 + ExplicitHeight = 513 + inherited cxGrid: TcxGrid + Width = 774 + Height = 488 + ExplicitWidth = 774 + ExplicitHeight = 488 + inherited cxGridView: TcxGridDBTableView + DataController.KeyFieldNames = 'RecID' + object cxGridViewID_PROVEEDOR: TcxGridDBColumn + DataBinding.FieldName = 'ID_PROVEEDOR' + PropertiesClassName = 'TcxTextEditProperties' + Visible = False + VisibleForCustomization = False + end + object cxGridViewPROVEEDOR: TcxGridDBColumn + Caption = 'Proveedor' + DataBinding.FieldName = 'ID_PROVEEDOR' + PropertiesClassName = 'TcxLookupComboBoxProperties' + Properties.ImmediatePost = True + Properties.KeyFieldNames = 'ID' + Properties.ListColumns = < + item + SortOrder = soAscending + FieldName = 'NOMBRE' + end> + Properties.ListOptions.GridLines = glNone + Properties.ListOptions.ShowHeader = False + Properties.ListOptions.SyncMode = True + Properties.ListSource = dsProveedores + Properties.OnEditValueChanged = cxGridViewPROVEEDORPropertiesEditValueChanged + end + object cxGridViewREFERENCIA_PROV: TcxGridDBColumn + Caption = 'Ref. proveedor' + DataBinding.FieldName = 'REFERENCIA_PROV' + end + object cxGridViewPRECIO_COSTE: TcxGridDBColumn + Caption = 'Precio material' + DataBinding.FieldName = 'PRECIO_COSTE' + end + object cxGridViewDESCUENTO: TcxGridDBColumn + Caption = 'Descuento' + DataBinding.FieldName = 'DESCUENTO' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.ImmediatePost = True + Properties.MaxValue = 100.000000000000000000 + BestFitMaxWidth = 30 + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + Width = 30 + end + object cxGridViewPRECIO_NETO: TcxGridDBColumn + Caption = 'Precio coste' + DataBinding.FieldName = 'PRECIO_NETO' + Options.Editing = False + end + object cxGridViewPRECIO_PORTE: TcxGridDBColumn + Caption = 'Porte' + DataBinding.FieldName = 'PRECIO_PORTE' + Visible = False + VisibleForCustomization = False + end + object cxGridViewPRECIO_PVP_VENTA: TcxGridDBColumn + Caption = 'Precio P.V.P (Suministro)' + DataBinding.FieldName = 'PRECIO_PVP_VENTA' + Options.Editing = False + end + object cxGridViewPRECIO_PVP_TOTAL: TcxGridDBColumn + Caption = 'Precio P.V.P (Total)' + DataBinding.FieldName = 'PRECIO_PVP_TOTAL' + Options.Editing = False + end + object cxGridViewID_ARTICULO: TcxGridDBColumn + DataBinding.FieldName = 'ID_ARTICULO' + Visible = False + VisibleForCustomization = False + end + end + end + inherited ToolBar1: TToolBar + Width = 774 + ExplicitWidth = 774 + inherited ToolButton1: TToolButton + ExplicitWidth = 62 + end + inherited ToolButton4: TToolButton + ExplicitWidth = 74 + end + inherited ToolButton2: TToolButton + ExplicitWidth = 67 + end + inherited ToolButton7: TToolButton + ExplicitWidth = 117 + end + end + inherited ActionListContenido: TActionList + inherited actModificar: TAction + Visible = False + end + end + object dsProveedores: TDADataSource + Left = 72 + Top = 144 + end +end diff --git a/Source/Modulos/Articulos/Views/uViewArticulosProveedores.pas b/Source/Modulos/Articulos/Views/uViewArticulosProveedores.pas new file mode 100644 index 0000000..7147b1c --- /dev/null +++ b/Source/Modulos/Articulos/Views/uViewArticulosProveedores.pas @@ -0,0 +1,131 @@ +unit uViewArticulosProveedores; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, uViewDetallesGenerico, cxStyles, cxCustomData, cxGraphics, + cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ActnList, ImgList, + PngImageList, uDADataTable, ComCtrls, ToolWin, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, cxDBLookupComboBox, cxSpinEdit, + uBizContactos, uProveedoresController, uDAInterfaces, + uBizArticulos, uArticulosController, + cxTextEdit; + +type + IViewArticulosProveedores = interface(IViewBase) + ['{65206152-786D-47AE-A037-5EF480BC056C}'] + function GetArticulo: IBizArticulo; + procedure SetArticulo(const Value: IBizArticulo); + property Articulo: IBizArticulo read GetArticulo write SetArticulo; + + function GetController : IArticulosController; + procedure SetController (const Value : IArticulosController); + property Controller : IArticulosController read GetController write SetController; + end; + + TfrViewArticulosProveedores = class(TfrViewDetallesGenerico, IViewArticulosProveedores) + dsProveedores: TDADataSource; + cxGridViewPROVEEDOR: TcxGridDBColumn; + cxGridViewDESCUENTO: TcxGridDBColumn; + cxGridViewREFERENCIA_PROV: TcxGridDBColumn; + cxGridViewPRECIO_COSTE: TcxGridDBColumn; + cxGridViewPRECIO_NETO: TcxGridDBColumn; + cxGridViewPRECIO_PORTE: TcxGridDBColumn; + cxGridViewPRECIO_PVP_VENTA: TcxGridDBColumn; + cxGridViewPRECIO_PVP_TOTAL: TcxGridDBColumn; + cxGridViewID_PROVEEDOR: TcxGridDBColumn; + cxGridViewID_ARTICULO: TcxGridDBColumn; + procedure cxGridViewPROVEEDORPropertiesEditValueChanged(Sender: TObject); + procedure CustomViewShow(Sender: TObject); + protected + FArticulo: IBizArticulo; + FController: IArticulosController; + FProvController : IProveedoresController; + FProveedores : IBizProveedor; + function GetArticulo: IBizArticulo; + procedure SetArticulo(const Value: IBizArticulo); + + function GetController : IArticulosController; + procedure SetController (const Value : IArticulosController); + + procedure AnadirInterno; override; + + public + property Articulo: IBizArticulo read GetArticulo write SetArticulo; + property Controller : IArticulosController read GetController write SetController; + + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +procedure TfrViewArticulosProveedores.AnadirInterno; +begin + dsDetalles.DataTable.Append; +end; + +constructor TfrViewArticulosProveedores.Create(AOwner: TComponent); +begin + inherited; + FProvController := TProveedoresController.Create; + FProveedores := (FProvController.BuscarTodos as IBizProveedor); + dsProveedores.DataTable := FProveedores.DataTable; + + if not dsProveedores.DataTable.Active then + dsProveedores.DataTable.Active := True; +end; + +procedure TfrViewArticulosProveedores.CustomViewShow(Sender: TObject); +begin + inherited; + cxGridView.ApplyBestFit; +end; + +procedure TfrViewArticulosProveedores.cxGridViewPROVEEDORPropertiesEditValueChanged(Sender: TObject); +begin + inherited; + + //Signamos el descuento del proveedor seleccionado + if not Articulo.Proveedores.DataTable.Editing then + Articulo.Proveedores.DataTable.Edit; + + Articulo.Proveedores.DESCUENTO := FProveedores.DESCUENTO; +end; + +destructor TfrViewArticulosProveedores.Destroy; +begin + if dsProveedores.DataTable.Active then + dsProveedores.DataTable.Active := False; + + FProveedores := NIL; + FProvController := NIL; + inherited; +end; + +function TfrViewArticulosProveedores.GetArticulo: IBizArticulo; +begin + Result := FArticulo; +end; + +function TfrViewArticulosProveedores.GetController: IArticulosController; +begin + Result := FController; +end; + +procedure TfrViewArticulosProveedores.SetArticulo(const Value: IBizArticulo); +begin + FArticulo := Value; + dsDetalles.DataTable := FArticulo.Proveedores.DataTable; +end; + +procedure TfrViewArticulosProveedores.SetController(const Value: IArticulosController); +begin + FController := Value; +end; + +end. diff --git a/Source/Modulos/Articulos/Views/uViewDetallesArticulos.dcu b/Source/Modulos/Articulos/Views/uViewDetallesArticulos.dcu new file mode 100644 index 0000000..c4fc53c Binary files /dev/null and b/Source/Modulos/Articulos/Views/uViewDetallesArticulos.dcu differ diff --git a/Source/Modulos/Articulos/Views/uViewDetallesArticulos.dfm b/Source/Modulos/Articulos/Views/uViewDetallesArticulos.dfm new file mode 100644 index 0000000..5049d52 --- /dev/null +++ b/Source/Modulos/Articulos/Views/uViewDetallesArticulos.dfm @@ -0,0 +1,391 @@ +inherited frViewDetallesArticulos: TfrViewDetallesArticulos + ParentBiDiMode = False + OnShow = CustomViewShow + inherited ToolBar1: TToolBar + inherited FontSize: TEdit + Width = 42 + ExplicitWidth = 42 + end + inherited UpDown1: TUpDown + Left = 187 + Width = 17 + ExplicitLeft = 187 + ExplicitWidth = 17 + end + inherited ToolButton13: TToolButton + Left = 204 + ExplicitLeft = 204 + end + inherited ToolButton6: TToolButton + Left = 212 + ExplicitLeft = 212 + end + inherited ToolButton7: TToolButton + Left = 278 + ExplicitLeft = 278 + end + inherited ToolButton8: TToolButton + Left = 345 + ExplicitLeft = 345 + end + end + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + inherited cxGridViewTIPO: TcxGridDBColumn + MinWidth = 69 + Width = 69 + end + object cxGridViewID_ARTICULO: TcxGridDBColumn [4] + DataBinding.FieldName = 'ID_ARTICULO' + Visible = False + VisibleForCustomization = False + Width = 31 + end + object cxGridViewREFERENCIA: TcxGridDBColumn [5] + Caption = 'Referencia' + DataBinding.FieldName = 'REFERENCIA' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = cxGridViewREFERENCIAPropertiesButtonClick + BestFitMaxWidth = 50 + Width = 50 + end + object cxGridViewREFERENCIA_PROVEEDOR: TcxGridDBColumn [6] + Caption = 'Ref. proveedor' + DataBinding.FieldName = 'REFERENCIA_PROVEEDOR' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = cxGridViewREFERENCIA_PROVEEDORPropertiesButtonClick + BestFitMaxWidth = 50 + Width = 50 + end + object cxGridViewREFERENCIA_FABRICANTE: TcxGridDBColumn [7] + Caption = 'Ref. fabricante' + DataBinding.FieldName = 'REFERENCIA_FABRICANTE' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = cxGridViewREFERENCIA_FABRICANTEPropertiesButtonClick + BestFitMaxWidth = 50 + Width = 50 + end + inherited cxGridViewDESCRIPCION: TcxGridDBColumn + Width = 298 + end + inherited cxGridViewCANTIDAD: TcxGridDBColumn + BestFitMaxWidth = 50 + Width = 91 + end + object cxGridViewUNIDAD_MEDIDA: TcxGridDBColumn [10] + Caption = 'Unid. medida' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.ImmediatePost = True + Properties.ImmediateUpdateText = True + Properties.PostPopupValueOnTab = True + BestFitMaxWidth = 50 + Width = 60 + end + inherited cxGridViewIMPORTEUNIDAD: TcxGridDBColumn + BestFitMaxWidth = 50 + Width = 80 + end + inherited cxGridViewDESCUENTO: TcxGridDBColumn + BestFitMaxWidth = 50 + HeaderAlignmentHorz = taRightJustify + Width = 25 + end + inherited cxGridViewIMPORTENETO: TcxGridDBColumn + BestFitMaxWidth = 50 + end + inherited cxGridViewIMPORTEPORTE: TcxGridDBColumn + BestFitMaxWidth = 50 + end + inherited cxGridViewIMPORTETOTAL: TcxGridDBColumn + BestFitMaxWidth = 50 + Width = 77 + end + end + end + inherited TBXDock1: TTBXDock + inherited TBXToolbar1: TTBXToolbar + inherited TBXSubmenuItem1: TTBXSubmenuItem + object TBXSeparatorItem8: TTBXSeparatorItem [4] + end + inherited TBXItem12: TTBXItem + Enabled = False + Visible = False + end + end + end + end + inherited ActionListContenido: TActionList + object actAnadirArticulos: TAction [12] + Category = 'Operaciones' + Caption = 'Art'#237'culos del cat'#225'logo' + ImageIndex = 12 + OnExecute = actAnadirArticulosExecute + OnUpdate = actAnadirArticulosUpdate + end + object actBuscarArticulo: TAction [13] + Category = 'Operaciones' + Caption = 'Buscar art'#237'culo' + OnExecute = actBuscarArticuloExecute + OnUpdate = actBuscarArticuloUpdate + end + end + inherited ContenidoImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000D04944415478DA + 6364C0062630FCC72A5EC0C0882EC488CB80191909706EDDBA750CAF767D6260 + 5830240DF8F9FB3743EBE6CD780CC011602003409A7F0071EF8E1D10030C30D5 + 31A23B1706609AB1E23F7FC0F4FA2967B01B408CE6A3B76E815D856100319ABF + FFFAC570EEC103540340218D0C92EDECE01AD79E398335ACE106305CC0942CAC + 77871BB0F5E2454820620138A331D3CB09EEECBD57AF929E0E629DADC106FCF9 + F70F1E602419106A67C6F01DE40260805D7AFC9874037C2C0D194EDDBD8B1260 + 241900A6D103178B01000648ED7B1FCA93F30000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000006E4944415478DA + 63FCFFFF3F03258071D40006C6397A1214990036203925952CCD73E7CCC66100 + C85BBF7F32307CFDC4C0F0FD2B03C33710FD05487F46E0374F19E6FE964032E0 + CF6F840120CD200D5F3F43357E42F0416C90013FBFA119B0B099742FC00CA028 + 10073E1D0C7D030077CE5E397DD56C480000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000E14944415478DA + 63FCFFFF3F032580717019C0C8C88822E9D770F9FFA6065D1441740B711A00D2 + 1C1DA5CA307DC64586037DE68C241900D3FCF10B23C39123CF19AE5EBECF7076 + B623235106206BFEF899114C3FBAFB94E1C4D1AB0CB7567A33E235C0BFF1CAFF + 9F3F7F3380B0B7BF2158F3BB8F4C0C7B36EE60F8F9E317C30F207EB1238C91A0 + 17AC728EFC77F234076BFEF2E631C3C1BDE7191E6E0C24CE0B20609CBAFFBFB9 + A31DD0004606B6DF8F18766E3DC9F0726738F106E8C6EFFA6F68AC0617DFB8F6 + 30C3C783B1C41BA016BEF53FCCCF30FCF364326103C801C3C00000BEA5B3E15D + 7F64240000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000DF4944415478DA + 63FCFFFF3F032580717019C0C8C808A643DA6E80057FFDFACDF0F327041FE833 + 074BA25B88D380982805869FBF18183E7E61645830EF34C3B12936C41BE0D770 + F97F74942A58F39123CF19AE5EBECF7076B623F106B8579EFB1F1CAACDF0F133 + 23C3E58BCF18CE9FBDC57079A11B6103FC1BAFFC87F9D9DBDF10EC8247779F32 + 9C387A95E1E78F5F0C3F80F8C58E3046BC2E70283AF91FA6F9DD472620666460 + FBFD8861E7D6930C2F77863312E505E3D4FDFFCD1DED3034131D0620A016BEF5 + BF85B5368A66920C000171F795FF91351334801C300C0C00007FBCB4E1E577C7 + 9A0000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001984944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5360BD30046 + C399181A59989918A23C55181A328C1804F9D8C0069CBD7C07BB01C886FC3F9F + CEF00F28BF7AD75D86888ABD0CEC6CCC0C8F774430FCF9F38FE1E2F57B840DF8 + 7B2E0DACF8C7AF3F0CFC360BC006DCDF120676C1B5DB0F091BF0F3540AC3C3E7 + 9F19DAE79D6758B6FD2E4353A6114384BB22D0D0BF0CB7EE3F216C003288F254 + 66288BD765E0E56206BAE01FC3FDC7CFB01B00F233B3D12C30FBFDA138B0730F + 9C7ECE1056BE8FC1C954926172991958ECF9ABD79806803483FCCC6E36076CC0 + 8B3D5160C52031459FD560B10BCB7DC02E78F3EE2DAA01317E56F038E6B75908 + 567C6D6D1003273B33C396C38F18723B4F32B0B332311C99E70156F3F1D30754 + 03C2BDCC51342303666646066F1B1986EC5035065E6E16B0BA6FDF3EA31A10E4 + 6602762ACC1570F6EFBF503184DCBF7FFF197EFCF8826A809F9311C3A98BB748 + CA4C700340B971E28CA524E7C6FC8CE81800E35A4E592A9A5C6B000000004945 + 4E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001844944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5360BB7010B + 37DF6248A8DB0FE7CB4BF2325C5D1B0237E0ECE53BF80D0081C69967191A669C + 6188F35163985C61C5F0EF1FC4057FFEFC63B878FD1E6103744357335CB9F38E + 61CB240F066B0331B866107DEDF643FC067CFFF98781CB622E98FD745714032B + 0B235CF31F20BE75FF096E03FE01C5CE5D7FC3601ABD8E41535180E1E05C6F14 + CDBF81ECFB8F9F613700A419A478C9D65B0CC98D871862BC5518BAF24DE19A7F + 005D06623F7FF51AD30098669082CA49A71826AFB8CAD05D68CA10E2AC0009FD + DF7FA1B1F08FE1CDBBB7A806C4F859C1A3E8DDC79F0C0185BB182EDE7AC7B0BE + D799415B991F453388FEF8E903AA01E15EE6608993975F31B8656E4709D02D13 + 9D1964C438E19A41F8DBB7CFA80604B999C09D8F1C5DE83683F0BF7FFF197EFC + F8826A809F9311C3A98BB748CA4C700340B971E28CA524E7C6FC8CE818000A3C + 81590C9B58CC0000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001854944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806100A3E14C140DFFCFA763887F3C12 + CF70ECEC0D86AAB65998067CFCF28B41C0763E98FDE6403C83303F07C33FA09A + B71F7E3088392D62B8BB259C81978B85E1ECE53BD80D40B60D643B48F39F3F10 + 67F358CD6778B52F1ACCBF78FD1E6103FE9E4B836B066141BB450CCF764582D9 + D76E3F246CC0CF532970CD202CE6B494E1E1B630A0A17F196EDD7F42D880B707 + E318981819C09ADF7DFCC9A011B886E1EEA66020FF1FC3FDC7CFB01B00F2B356 + D02A869B0F3E305424EA3364846A80BDD1B5F012C3D53BEF1966D558820D7CFE + EA35A601B000BBF5F00343CDD4D30C07CE3C07C70A1F372B838BB91443419426 + 90CD0276C19B776F510D88F1B382FB1539E0E0ECDFB0B080F03F7EFA806A40B8 + 97395882DF6621C1D47870B60BC3B76F9F510D08723321CA6610FEF7EF3FC38F + 1F5F500DF07332623875F1164999096E0028374E9CB194E4DC989F111D03002B + D67559EB1C43180000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000F94944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5368B3803FE + 01D5FCF983D00CC2672FDFC134809B9B1BAF0B9EBE7803D60C32ECE2F57B845D + 80CD6618FFDAED87A4BB00062EDF78C870EBFE13DC2EC067F31F30FF1FC3FDC7 + CF487701C8E61F3FFF800D7AFEEA35A601E836FFFCF507C5F6DFBF612EFAC7F0 + E6DD5B540362FCAC18F8F978890A833D47AF327CFCF401D580702F7354DB70D8 + 0C93FBF6ED33AA01416E26446BFEF7EF3FC38F1F5F500DF07332623875F11651 + 5E8001B801A0DC3871C6529273637E46740C002BB66C59EAC44C620000000049 + 454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001004944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5368B3803FE + 01D5FCF983D00CC2672FDFC16D0037373756839EBE7803D60C32ECE2F57B845D + 80CD6618FFDAED879806E0B2191D5CBEF190E1D6FD27B85D80CFE63F60FE3F86 + FB8F9F613700A499978707A7CD3F7EFE011BF4FCD56B4C03D06DFEF9EB0F8AED + BF7FC35CF48FE1CDBBB7A806C4F85931F0F3F11215067B8E5E65F8F8E903AA01 + E15EE6A8B6E1B01926F7EDDB67540382DC4C88D6FCEFDF7F861F3FBEA01AE0E7 + 64C470EAE22DA2BC0003700340B971E28CA524E7C6FC8CE8180048E16F597BCE + 9D230000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000FC4944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5368B3803FE + 01D5FCF983D00CC2672FDFC16D003737375E97DC79F09CE1E2F57B845D80CD66 + 18FFDAED87980610B219062EDF78C870EBFE13DC2EC067F31F30FF1FC3FDC7CF + B01B00D2CCCBC383D705C7CEDE6278FEEA35A601E836FFFCF507C5F6DFBF612E + FAC7F0E6DD5B540362FCAC18F8F978890A833D47AF327CFCF401D580702F7354 + DB70D80C93FBF6ED33AA01416E26446BFEF7EF3FC38F1F5F500DF07332623875 + F116515E8001B801A0DC3871C6529273637E46740C0021BE635977EAA72D0000 + 000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001CB4944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC480D580CAA3950C4B6E2C61789CFC18A7 + E663676F3054B5CDC234E0EFFFBF0C327364185E7C7BC17020E40083BDB43DC3 + 3FA09A3F7F109A41F8ECE53BD80D587B672D43CBA916860BAF2F3024682530CC + 759987A119C4BF78FD1E76031CD73A324CB09FC0E0B0C681E1CFBF3F0C8F129E + 32B0317280350ADA2D6278B62B12CCBE76FB21A60137DFDF64D058A481E2EFB9 + 4E0B188214C2C09A41E0E1B630A00BFE32DCBAFF04D380C243850C06A2060CB1 + 1A710C871E1F61705C6FC7E020E5C470A02D0C6CB394DB7286BB9B82812EF8C7 + 70FFF13354034CED04194C969B303C4B7DCEC0CDC40B76A6DA52258667536B19 + 562D92623017B16190F75AC57075B53F58EEF9ABD7A806347E886578F0E90183 + 3CAF02C3D5C89B0C69FB531896555B63A4830BCB7DC02E78F3EE2DAA01317E56 + 28A12CECB098E1F18E70440CFCFECBA01DBA91E1F4622F30FFE3A70FA806847B + 99A36886815B1B82E09A61E0E06C17866FDF3EA31A10E4668212DFC83643C410 + 72FFFEFD67F8F1E30BAA017E4E460CA72EDE222933C10D00E5C6893396929C1B + F333A26300FC1C815930D4A9C10000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000002354944415478DA + 9D93DF4B936114C73FEF9CDB9C947A23A546E185062E4308122AB5488942A18B + A2A228229088EEBA0B83EECCCBCAEA1FA8ABD29B0CACB0FC1176538ACA963FA6 + A2AEF9966E6E367CF7EEDDF3F4CEB5B4B640FAC281E7E19CF339E73987479152 + 92D2A34BCAC6650B9A8FD4A0A40089E42BCDE941D128E85AD212E7A896B48F83 + 9B00FF939CB703C6BC26A0FD22D25AB0F5B68DE0467242EB804CD535B352DF32 + DC5C75B2737B1E617D8D79DF0ACD53605FAEA1B6AA8FDEA15F1D24DE9249B3B9 + 2B6837B2B853DD4457749496960ECE8D5772F9C0C8BAFF3720530709B97F404B + EE3E6E1D69E04DC0C3BDD6573CC986DD0EFE0DE80F43DC489E8716E175693977 + 8F37D1A90E71FFF65BAE9AF32ACB379D0246A7F7A7034A3C4E6A5DE568868112 + 55282B2DA4B278179EC0570606A6D0A5412CC7C062B130F9594D071CF617F2F0 + CC35A2C4889B65E644800955C52A159CDBEC84D734739506934195DEC75FD201 + F5C162AE379EE4933A8B61221CD2865D5AF9160AE38F8430AC122104B3A12526 + 9E2F86FE00E83AB8A60BC8D31CB8BD7E8840757D298D27AA189CF4F2B27B98AC + A0056C906DCB425F886F74D0FEC0BE0E99710884397DCC389F90F8CE17D15053 + C188DF47F7B331EADC7BE8B14DD791F80139C495B6B3F68E40ECE0E94C6B5C72 + 4418BCB0485D4539E30195F79D1E0C8FA8902FA43B15A36CFE8D7F4B69558EBA + F616F714951430B3FA9D85FE006BC3B163B243BEDB1AA04D39E4CCB775E95E03 + 2324B0080B22224EC9A7F2432AE627BA3D288D657888700000000049454E44AE + 426082} + Name = 'PngImage12' + Background = clWindow + end> + Bitmap = {} + end + object cxEditRepository1: TcxEditRepository + Left = 112 + Top = 184 + object cxEditRepositoryComboBox_IMPORTEUNIDAD: TcxEditRepositoryComboBoxItem + Properties.ImmediateDropDown = False + Properties.ImmediatePost = True + Properties.ImmediateUpdateText = True + Properties.PostPopupValueOnTab = True + end + object cxEditRepositoryCurrencyItem_IMPORTEUNIDAD: TcxEditRepositoryCurrencyItem + end + end +end diff --git a/Source/Modulos/Articulos/Views/uViewDetallesArticulos.pas b/Source/Modulos/Articulos/Views/uViewDetallesArticulos.pas new file mode 100644 index 0000000..bf86465 --- /dev/null +++ b/Source/Modulos/Articulos/Views/uViewDetallesArticulos.pas @@ -0,0 +1,303 @@ +unit uViewDetallesArticulos; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewDetallesDTO, cxStyles, cxCustomData, cxGraphics, cxFilter, + cxData, cxDataStorage, cxEdit, DB, cxDBData, cxImageComboBox, cxRichEdit, + cxMaskEdit, cxCurrencyEdit, cxCheckBox, ImgList, PngImageList, uDADataTable, + StdActns, ExtActns, ActnList, TB2Item, TBX, TB2Dock, TB2Toolbar, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, ComCtrls, StdCtrls, JvExStdCtrls, + JvCombobox, JvColorCombo, ToolWin, uControllerDetallesArticulos, + cxTextEdit, uDAInterfaces, cxDropDownEdit, cxButtonEdit, + Menus, cxGridCustomPopupMenu, + cxGridPopupMenu, cxEditRepositoryItems; + +type + IViewDetallesArticulos = interface(IViewDetallesDTO) + ['{D2F72E72-9CEA-4E43-AA18-625F7561E627}'] + end; + + TfrViewDetallesArticulos = class(TfrViewDetallesDTO, IViewDetallesArticulos) + cxGridViewID_ARTICULO: TcxGridDBColumn; + cxGridViewREFERENCIA: TcxGridDBColumn; + cxGridViewREFERENCIA_PROVEEDOR: TcxGridDBColumn; + actAnadirArticulos: TAction; + cxGridViewUNIDAD_MEDIDA: TcxGridDBColumn; + actBuscarArticulo: TAction; + TBXSeparatorItem8: TTBXSeparatorItem; + cxGridViewREFERENCIA_FABRICANTE: TcxGridDBColumn; + cxEditRepository1: TcxEditRepository; + cxEditRepositoryComboBox_IMPORTEUNIDAD: TcxEditRepositoryComboBoxItem; + cxEditRepositoryCurrencyItem_IMPORTEUNIDAD: TcxEditRepositoryCurrencyItem; + procedure CustomViewCreate(Sender: TObject); + procedure CustomViewDestroy(Sender: TObject); + procedure actAnadirArticulosExecute(Sender: TObject); + procedure actAnadirArticulosUpdate(Sender: TObject); + procedure OnValidateReferencia(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure OnValidateReferenciaProveedor(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure CustomViewShow(Sender: TObject); + procedure cxGridViewREFERENCIAPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure actBuscarArticuloExecute(Sender: TObject); + procedure actBuscarArticuloUpdate(Sender: TObject); + procedure actDetalleCopiarExecute(Sender: TObject); + procedure actDetallePegarExecute(Sender: TObject); + procedure actDetalleCortarExecute(Sender: TObject); + procedure cxGridViewREFERENCIA_PROVEEDORPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); + procedure cxGridViewREFERENCIA_FABRICANTEPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); + private + procedure RecuperarListaUnidadesMedida; + protected + procedure AnadirArticulosInterno; virtual; + procedure RellenarArticulosInterno; virtual; + function AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean; virtual; + function EsTipoEditable(AItem: TcxCustomGridTableItem): Boolean; override; + end; + +implementation +{$R *.dfm} + +uses + uCalculosUtils, uViewDetallesBase, uControllerDetallesBase, uUnidadesMedidaController; + +procedure TfrViewDetallesArticulos.actAnadirArticulosExecute(Sender: TObject); +begin + cxGridView.BeginUpdate; + try + if cxGridView.Controller.EditingController.IsEditing then + cxGridView.Controller.EditingController.Edit.PostEditValue; + + AnadirArticulosInterno; + finally + cxGridView.EndUpdate; + end; + + SeleccionarFilaActual; +end; + +procedure TfrViewDetallesArticulos.AnadirArticulosInterno; +begin + (Controller as IControllerDetallesArticulos).AnadirArticulos(Detalles); +end; + +procedure TfrViewDetallesArticulos.CustomViewCreate(Sender: TObject); +begin + inherited; + cxGridViewREFERENCIA.Properties.OnValidate := OnValidateReferencia; + cxGridViewREFERENCIA_PROVEEDOR.Properties.OnValidate := OnValidateReferenciaProveedor; +end; + +procedure TfrViewDetallesArticulos.CustomViewDestroy(Sender: TObject); +begin + inherited; + cxGridViewREFERENCIA.Properties.OnValidate := Nil; + cxGridViewREFERENCIA_PROVEEDOR.Properties.OnValidate := Nil; +end; + +procedure TfrViewDetallesArticulos.CustomViewShow(Sender: TObject); +begin + inherited; + + with DADataSource.DataTable do + begin + cxGridView.BeginUpdate; + try + if Assigned(FindField('UNIDAD_MEDIDA')) then + begin + cxGridViewUNIDAD_MEDIDA.DataBinding.FieldName := 'UNIDAD_MEDIDA'; + cxGridViewUNIDAD_MEDIDA.Visible := True; + cxGridViewUNIDAD_MEDIDA.VisibleForCustomization := True; + RecuperarListaUnidadesMedida; + end + else begin + cxGridViewUNIDAD_MEDIDA.DataBinding.FieldName := ''; + cxGridViewUNIDAD_MEDIDA.Visible := False; + cxGridViewUNIDAD_MEDIDA.VisibleForCustomization := False; + end; + + + if Assigned(FindField('REFERENCIA_FABRICANTE')) then + begin + cxGridViewREFERENCIA_FABRICANTE.DataBinding.FieldName := 'REFERENCIA_FABRICANTE'; + cxGridViewREFERENCIA_FABRICANTE.Visible := True; + cxGridViewREFERENCIA_FABRICANTE.VisibleForCustomization := True; + end + else begin + cxGridViewREFERENCIA_FABRICANTE.DataBinding.FieldName := ''; + cxGridViewREFERENCIA_FABRICANTE.Visible := False; + cxGridViewREFERENCIA_FABRICANTE.VisibleForCustomization := False; + end; + + finally + cxGridView.EndUpdate; + end; + end; + + SeleccionarFilaActual; +end; + +procedure TfrViewDetallesArticulos.cxGridViewREFERENCIAPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + inherited; + actBuscarArticulo.Execute; +end; + +procedure TfrViewDetallesArticulos.cxGridViewREFERENCIA_FABRICANTEPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + inherited; + actBuscarArticulo.Execute; +end; + +procedure TfrViewDetallesArticulos.cxGridViewREFERENCIA_PROVEEDORPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + inherited; + actBuscarArticulo.Execute; +end; + +function TfrViewDetallesArticulos.EsTipoEditable( + AItem: TcxCustomGridTableItem): Boolean; +var + IndiceCol : Integer; +begin + Result := True; + + if (AItem.Index in [cxGridViewREFERENCIA.Index, cxGridViewREFERENCIA_PROVEEDOR.Index]) then + begin + IndiceCol := cxGridView.GetColumnByFieldName(CAMPO_TIPO).Index; + if ((AItem.GridView.Items[IndiceCol].EditValue = TIPO_DETALLE_SALTO) or + (AItem.GridView.Items[IndiceCol].EditValue = TIPO_DETALLE_SUBTOTAL) or + (AItem.GridView.Items[IndiceCol].EditValue = TIPO_DETALLE_DESCUENTO) or + (AItem.GridView.Items[IndiceCol].EditValue = TIPO_DETALLE_TITULO)) then + Result := False; + end + else + Result := inherited EsTipoEditable(AItem); +end; + +procedure TfrViewDetallesArticulos.OnValidateReferencia(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); +var + lsReferencia : String; +begin + //En el caso de cadena vacia no validamos + if (VarIsNull(DisplayValue)) then + Exit; + + lsReferencia := VarToStr(DisplayValue); + if (length(trim(lsReferencia)) = 0) then + Exit; + + + if not AnadirArticulo(lsReferencia, tCliente) then + begin + ErrorText := 'La referencia introducida no exite en el catlogo'; + Error := True; + end; +end; + +procedure TfrViewDetallesArticulos.OnValidateReferenciaProveedor(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); +var + lsReferencia : String; +begin + //En el caso de cadena vacia no validamos + if (VarIsNull(DisplayValue)) then + Exit; + + lsReferencia := VarToStr(DisplayValue); + if (length(trim(lsReferencia)) = 0) then + Exit; + + if not AnadirArticulo(lsReferencia, tProveedor) then + begin + ErrorText := 'La referencia introducida no exite en el catlogo'; + Error := True; + end; +end; + +procedure TfrViewDetallesArticulos.RecuperarListaUnidadesMedida; +var + AUnidController : IUnidadesMedidaController; +begin + inherited; + with TcxComboBoxProperties(cxGridViewUNIDAD_MEDIDA.Properties).Items do + begin + if (Count = 0) then + begin + ShowHourglassCursor; + BeginUpdate; + AUnidController := TUnidadesMedidaController.Create; + try + Clear; + AddStrings(AUnidController.DarListaUnidadesMedida); + finally + EndUpdate; + AUnidController := NIL; + HideHourglassCursor; + end; + end; + end; +end; + +procedure TfrViewDetallesArticulos.RellenarArticulosInterno; +begin + (Controller as IControllerDetallesArticulos).AnadirArticulos(Detalles, False); +end; + +procedure TfrViewDetallesArticulos.actAnadirArticulosUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := actAnadir.Enabled; +end; + +procedure TfrViewDetallesArticulos.actBuscarArticuloExecute(Sender: TObject); +begin + cxGridView.BeginUpdate; + try + if cxGridView.Controller.EditingController.IsEditing then + cxGridView.Controller.EditingController.Edit.PostEditValue; + + RellenarArticulosInterno; + finally + cxGridView.EndUpdate; + end; + + SeleccionarFilaActual; +end; + +procedure TfrViewDetallesArticulos.actBuscarArticuloUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := actAnadir.Enabled; +end; + +procedure TfrViewDetallesArticulos.actDetalleCopiarExecute(Sender: TObject); +begin + inherited; + cxGridView.CopyToClipboard(False); +end; + +procedure TfrViewDetallesArticulos.actDetalleCortarExecute(Sender: TObject); +begin + inherited; +// +end; + +procedure TfrViewDetallesArticulos.actDetallePegarExecute(Sender: TObject); +begin + inherited; +// +end; + +function TfrViewDetallesArticulos.AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean; +begin + Result := (Controller as IControllerDetallesArticulos).AnadirArticulo(Detalles, pReferencia, TipoReferencia); +end; + +end. diff --git a/Source/Modulos/Articulos/Views/uViewDetallesArticulosParaVenta.dcu b/Source/Modulos/Articulos/Views/uViewDetallesArticulosParaVenta.dcu new file mode 100644 index 0000000..c040d4d Binary files /dev/null and b/Source/Modulos/Articulos/Views/uViewDetallesArticulosParaVenta.dcu differ diff --git a/Source/Modulos/Articulos/Views/uViewDetallesArticulosParaVenta.dfm b/Source/Modulos/Articulos/Views/uViewDetallesArticulosParaVenta.dfm new file mode 100644 index 0000000..42f0069 --- /dev/null +++ b/Source/Modulos/Articulos/Views/uViewDetallesArticulosParaVenta.dfm @@ -0,0 +1,113 @@ +inherited frViewDetallesArticulosParaVenta: TfrViewDetallesArticulosParaVenta + inherited ToolBar1: TToolBar + Height = 95 + ExplicitHeight = 95 + inherited ToolButton14: TToolButton [1] + Left = 0 + Top = 22 + Wrap = False + ExplicitLeft = 0 + ExplicitTop = 22 + end + inherited ToolButton12: TToolButton [2] + Left = 65 + Wrap = False + ExplicitLeft = 65 + ExplicitHeight = 22 + end + inherited ToolButton13: TToolButton [3] + Left = 0 + Wrap = True + ExplicitLeft = 0 + ExplicitHeight = 27 + end + inherited ToolButton2: TToolButton [4] + Left = 0 + Top = 49 + ExplicitLeft = 0 + ExplicitTop = 49 + end + inherited ToolButton3: TToolButton [5] + Left = 114 + Top = 49 + ExplicitLeft = 114 + ExplicitTop = 49 + end + inherited ToolButton4: TToolButton [6] + Left = 169 + Top = 49 + ExplicitLeft = 169 + ExplicitTop = 49 + end + inherited ToolButton7: TToolButton [7] + Left = 225 + Top = 49 + ExplicitLeft = 225 + ExplicitTop = 49 + end + inherited FontName: TJvFontComboBox [8] + Left = 292 + Top = 49 + ExplicitLeft = 292 + ExplicitTop = 49 + end + inherited ToolButton9: TToolButton [9] + Left = 437 + ExplicitLeft = 437 + end + inherited ToolButton8: TToolButton [10] + Left = 582 + Top = 49 + Wrap = True + ExplicitLeft = 582 + ExplicitTop = 49 + end + inherited FontSize: TEdit [11] + Left = 0 + Top = 71 + ExplicitLeft = 0 + ExplicitTop = 71 + end + inherited UpDown1: TUpDown [12] + Left = 42 + Top = 71 + ExplicitLeft = 42 + ExplicitTop = 71 + end + inherited ToolButton6: TToolButton [13] + Left = 59 + Top = 71 + ExplicitLeft = 59 + ExplicitTop = 71 + end + inherited ToolButton10: TToolButton + Left = 125 + Top = 71 + ExplicitLeft = 125 + ExplicitTop = 71 + end + inherited ToolButton11: TToolButton + Left = 250 + Top = 71 + ExplicitLeft = 250 + ExplicitTop = 71 + end + end + inherited cxGrid: TcxGrid + Top = 121 + Height = 183 + inherited cxGridView: TcxGridDBTableView + inherited cxGridViewREFERENCIA_PROVEEDOR: TcxGridDBColumn + Visible = False + VisibleForCustomization = False + end + inherited cxGridViewREFERENCIA_FABRICANTE: TcxGridDBColumn + Visible = False + VisibleForCustomization = False + end + end + end + inherited TBXDock1: TTBXDock + Top = 95 + end +end diff --git a/Source/Modulos/Articulos/Views/uViewDetallesArticulosParaVenta.pas b/Source/Modulos/Articulos/Views/uViewDetallesArticulosParaVenta.pas new file mode 100644 index 0000000..67329fc --- /dev/null +++ b/Source/Modulos/Articulos/Views/uViewDetallesArticulosParaVenta.pas @@ -0,0 +1,93 @@ +unit uViewDetallesArticulosParaVenta; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewDetallesArticulos, cxStyles, + cxCustomData, cxGraphics, cxFilter, + cxData, cxDataStorage, cxEdit, DB, cxDBData, cxCheckBox, cxImageComboBox, + cxButtonEdit, cxRichEdit, cxMaskEdit, cxDropDownEdit, cxCurrencyEdit, + cxEditRepositoryItems, Menus, cxGridCustomPopupMenu, cxGridPopupMenu, ImgList, + PngImageList, uDAInterfaces, uDADataTable, StdActns, ExtActns, ActnList, + TB2Item, TBX, TB2Dock, TB2Toolbar, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, + cxGrid, ComCtrls, StdCtrls, JvExStdCtrls, JvCombobox, JvColorCombo, ToolWin; + +type + TfrViewDetallesArticulosParaVenta = class(TfrViewDetallesArticulos) + procedure OnIMPORTEUNIDADGetProperties(Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AProperties: TcxCustomEditProperties); + procedure CustomViewDestroy(Sender: TObject); + procedure CustomViewShow(Sender: TObject); + + private + { Private declarations } + public + { Public declarations } + end; + +implementation +{$R *.dfm} + +uses uControllerDetallesArticulos; + +{ TfrViewDetallesArticulosParaVenta } + +procedure TfrViewDetallesArticulosParaVenta.CustomViewDestroy(Sender: TObject); +begin + inherited; + cxGridViewIMPORTEUNIDAD.OnGetPropertiesForEdit := Nil; +end; + +procedure TfrViewDetallesArticulosParaVenta.CustomViewShow(Sender: TObject); +begin + inherited; + + with DADataSource.DataTable do + begin + cxGridView.BeginUpdate; + try + cxGridViewIMPORTEUNIDAD.OnGetPropertiesForEdit := OnIMPORTEUNIDADGetProperties; + finally + cxGridView.EndUpdate; + end; + end; +end; + +procedure TfrViewDetallesArticulosParaVenta.OnIMPORTEUNIDADGetProperties( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AProperties: TcxCustomEditProperties); +var + Aux_IDArticulo: Variant; +begin + Aux_IDArticulo := Null; + cxEditRepositoryComboBox_IMPORTEUNIDAD.Properties.Items.Clear; + + if (_FocusedView.DataController.RecordCount > 0) then + begin + Aux_IDArticulo := ARecord.Values[cxGridViewID_ARTICULO.Index]; + if not VarIsNull(Aux_IDArticulo) and (Aux_IDArticulo > 0) then + begin + with cxEditRepositoryComboBox_IMPORTEUNIDAD.Properties do + begin + ShowHourglassCursor; + Items.BeginUpdate; + try + Items.Clear; + Items.AddStrings((Controller as IControllerDetallesArticulos).DarPrecioPVPVenta(Aux_IDArticulo)); + finally + Items.EndUpdate; + HideHourglassCursor; + end; + end; + AProperties := cxEditRepositoryComboBox_IMPORTEUNIDAD.Properties; + end + else begin + AProperties := cxEditRepositoryCurrencyItem_IMPORTEUNIDAD.Properties; + + end; + end; +end; + +end. diff --git a/Source/Modulos/Banca electronica/Controller/BancaElectronica_controller.bdsproj b/Source/Modulos/Banca electronica/Controller/BancaElectronica_controller.bdsproj new file mode 100644 index 0000000..7e57ead --- /dev/null +++ b/Source/Modulos/Banca electronica/Controller/BancaElectronica_controller.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + BancaElectronica_controller.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Banca electronica/Controller/BancaElectronica_controller.dpk b/Source/Modulos/Banca electronica/Controller/BancaElectronica_controller.dpk new file mode 100644 index 0000000..7a9d496 Binary files /dev/null and b/Source/Modulos/Banca electronica/Controller/BancaElectronica_controller.dpk differ diff --git a/Source/Modulos/Banca electronica/Controller/BancaElectronica_controller.dproj b/Source/Modulos/Banca electronica/Controller/BancaElectronica_controller.dproj new file mode 100644 index 0000000..fc7cd11 --- /dev/null +++ b/Source/Modulos/Banca electronica/Controller/BancaElectronica_controller.dproj @@ -0,0 +1,587 @@ + + + {d465978e-860e-4eb2-9a25-2afb559e8e07} + BancaElectronica_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\BancaElectronica_controller.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + BancaElectronica_controller.dpk + + + + + + + MainSource + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Banca electronica/Controller/BancaElectronica_controller.rc b/Source/Modulos/Banca electronica/Controller/BancaElectronica_controller.rc new file mode 100644 index 0000000..e69de29 diff --git a/Source/Modulos/Banca electronica/Controller/BancaElectronica_controller.res b/Source/Modulos/Banca electronica/Controller/BancaElectronica_controller.res new file mode 100644 index 0000000..36f26e2 Binary files /dev/null and b/Source/Modulos/Banca electronica/Controller/BancaElectronica_controller.res differ diff --git a/Source/Modulos/Banca electronica/Controller/View/uIEditorExportacionNorma19.pas b/Source/Modulos/Banca electronica/Controller/View/uIEditorExportacionNorma19.pas new file mode 100644 index 0000000..dfb4c8a --- /dev/null +++ b/Source/Modulos/Banca electronica/Controller/View/uIEditorExportacionNorma19.pas @@ -0,0 +1,32 @@ +unit uIEditorExportacionNorma19; + +interface + +type + IEditorExportacionNorma19 = interface + ['{FED1E69E-99F3-408E-9CA8-FADEF2E01726}'] + + procedure SetCodigoEntidad(const AValue: Integer); + function GetCodigoEntidad : Integer; + property CodigoEntidad : Integer read GetCodigoEntidad write SetCodigoEntidad; + + procedure SetCodigoAgencia(const AValue: Integer); + function GetCodigoAgencia : Integer; + property CodigoAgencia : Integer read GetCodigoAgencia write SetCodigoAgencia; + + procedure SetFechaCargo(const AValue: TDateTime); + function GetFechaCargo : TDateTime; + property FechaCargo : TDateTime read GetFechaCargo write SetFechaCargo; + + procedure SetFichero(const AValue: String); + function GetFichero : String; + property Fichero : String read GetFichero write SetFichero; + + function ShowModal : Integer; + procedure Release; + end; + + +implementation + +end. diff --git a/Source/Modulos/Banca electronica/Controller/uBancaElectronicaController.pas b/Source/Modulos/Banca electronica/Controller/uBancaElectronicaController.pas new file mode 100644 index 0000000..b19d280 --- /dev/null +++ b/Source/Modulos/Banca electronica/Controller/uBancaElectronicaController.pas @@ -0,0 +1,208 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uBancaElectronicaController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase; + +type + IBancaElectronicaController = interface(IControllerBase) + ['{9E37DF46-D02C-47C4-BCBE-414FB97A7751}'] + procedure GenerarFicheroNorma19 (const IDRemesa : Integer); + end; + + TBancaElectronicaController = class(TControllerBase, IBancaElectronicaController) + private + function DarParametrosParaExportar(var Entidad : Integer; var Oficina : Integer; + var AFechaCargo : TDateTime; var AFileName : String): Boolean; + public + procedure GenerarFicheroNorma19 (const IDRemesa : Integer); + end; + +implementation + +uses + cxControls, Controls, Windows, + CVBNorma1958CSB, + uEditorRegistryUtils, + + uBizEmpresas, uEmpresasController, + uBizContactos, uClientesController, + uBizRemesasCliente, uRemesasClienteController, schRemesasClienteClient_Intf, + schRecibosClienteClient_Intf, Dialogs, + uIEditorExportacionNorma19; + + +{ TBancaElectronicaController } + +procedure TBancaElectronicaController.GenerarFicheroNorma19( + const IDRemesa: Integer); +var + ARemesasController : IRemesasClienteController; + AEmpresasController : IEmpresasController; + AClientesController : IClientesController; + + ARemesa : IBizRemesaCliente; + AEmpresa : IBizEmpresa; + ACliente : IBizCliente; + + ANorma19 : TCVBNorma1958CSB; + I: integer; + AEntidad : Integer; + AOficina : Integer; +begin + ARemesasController := TRemesasClienteController.Create; + AEmpresasController := TEmpresasController.Create; + AClientesController := TClientesController.Create; + + ANorma19 := TCVBNorma1958CSB.Create(NIL); + try + ARemesa := ARemesasController.Buscar(IDRemesa); + ARemesa.DataTable.Active := True; + ARemesasController.RecuperarRecibos(ARemesa); + + if ARemesa.ID <> IDRemesa then + raise Exception.CreateFmt('No existe la remesa con ID %d', [IDRemesa]); + + AEmpresa := AEmpresasController.Buscar(ARemesa.ID_EMPRESA); + AEmpresa.DataTable.Active := True; + + if AEmpresa.ID <> ARemesa.ID_EMPRESA then + raise Exception.CreateFmt('No existe la empresa con ID %d', [ARemesa.ID_EMPRESA]); + + ANorma19.FNomFic := 'REM' + ARemesa.REFERENCIA + '.C19'; + ANorma19.FecAbono := ARemesa.FECHA_REMESA; + + if not DarParametrosParaExportar(AEntidad, AOficina, ANorma19.FecAbono, ANorma19.FNomFic) then + Exit; + + ANorma19.EntRecepPres := IntToStr(AEntidad); + ANorma19.OfiRecepPres := IntToStr(AOficina); + + with ANorma19 do + begin + _NORMA_ := 19; + Procedimiento := prPrimero; // <= ???????????????????????????????????? + Euros := True; + Depura := True; + + Abrir; + + FecCargo := Now; // <= Fecha de generacin del fichero + //FecVcto := ARemesa.FECHA_REMESA; // <= slo para norma 58 + + // PRESENTADOR + Presentador := AEmpresa.NIF_CIF; + SufijoPres := ARemesa.SUFIJO_N19; + NomCliPres := AEmpresa.NOMBRE; + + CompCabecera; + + // el que cobra + Ordenante := AEmpresa.NIF_CIF; + SufijoOrd:= ARemesa.SUFIJO_N19; + NomCliOrd:= AEmpresa.NOMBRE; + EntOrde:= ARemesa.ENTIDAD; + OfiOrde:= ARemesa.SUCURSAL; + DcOrde:= ARemesa.DC; + CcOrde:= ARemesa.CUENTA; + LocalidadOrd:= ''; + CodLocalOrd:= ''; + //FecOrigFormCred:= <= Slo para norma 58 + + CompOrdenante; + + ARemesa.Recibos.DataTable.First; + for I := 0 to (ARemesa.Recibos.DataTable.RecordCount - 1) do + begin + ACliente := (AClientesController.Buscar(ARemesa.Recibos.ID_CLIENTE) as IBizCliente); + ACliente.DataTable.Active := True; + + // el que paga + Referencia := ACliente.REFERENCIA; + NomTitDom := ARemesa.Recibos.NOMBRE_CLIENTE; +// EntTitDom := ARemesa.Recibos.ENTIDAD_CLIENTE; +// OfiTitDom := ARemesa.Recibos.SUCURSAL_CLIENTE; +// DcTitDom := ARemesa.Recibos.DC_CLIENTE; +// CcTitDom := ARemesa.Recibos.CUENTA_CLIENTE; + NomTitCta := ARemesa.Recibos.NOMBRE_CLIENTE; + DomTitCta := ''; + PlzTitCta := ''; + CPtTitCta := ''; + CampConc1 := 'Recibo ' + ARemesa.Recibos.REFERENCIA; + fImporteEu := ARemesa.Recibos.IMPORTE_TOTAL; + + CompRegistro; + + ARemesa.Recibos.DataTable.Next; + end; + + FinOrdenan; + Cerrar; + end; + finally + ARemesasController := NIL; + AEmpresasController := NIL; + AClientesController := NIL; + + AEmpresa := NIL; + + FreeAndNil(ANorma19); + end; +end; + +function TBancaElectronicaController.DarParametrosParaExportar ( + var Entidad : Integer; var Oficina : Integer; var AFechaCargo : TDateTime; + var AFileName : String): Boolean; +var + AEditor : IEditorExportacionNorma19; +begin + Result := False; + AEditor := NIL; + + CreateEditor('EditorExportacionNorma19', IEditorExportacionNorma19, AEditor); + if Assigned(AEditor) then + try + AEditor.CodigoEntidad := Entidad; + AEditor.CodigoAgencia := Oficina; + AEditor.FechaCargo := AFechaCargo; + AEditor.Fichero := AFileName; + + if (AEditor.ShowModal = mrOk) then + begin + AEditor.Entidad := CodigoEntidad; + AEditor.Oficina := CodigoAgencia; + AFechaCargo := AEditor.FechaCargo; + AFileName := AEditor.Fichero; + Result := True; + end; + finally + AEditor.Release; + end; +end; + + +end. diff --git a/Source/Modulos/Banca electronica/Data/BancaElectronica_data.bdsproj b/Source/Modulos/Banca electronica/Data/BancaElectronica_data.bdsproj new file mode 100644 index 0000000..50a6ba0 --- /dev/null +++ b/Source/Modulos/Banca electronica/Data/BancaElectronica_data.bdsproj @@ -0,0 +1,175 @@ + + + + + + + + + + + + BancaElectronica_data.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + diff --git a/Source/Modulos/Banca electronica/Data/BancaElectronica_data.dpk b/Source/Modulos/Banca electronica/Data/BancaElectronica_data.dpk new file mode 100644 index 0000000..23ece21 Binary files /dev/null and b/Source/Modulos/Banca electronica/Data/BancaElectronica_data.dpk differ diff --git a/Source/Modulos/Banca electronica/Data/BancaElectronica_data.dproj b/Source/Modulos/Banca electronica/Data/BancaElectronica_data.dproj new file mode 100644 index 0000000..34d7284 --- /dev/null +++ b/Source/Modulos/Banca electronica/Data/BancaElectronica_data.dproj @@ -0,0 +1,116 @@ + + + {a790c41f-c58c-4960-9333-616896fc3b42} + BancaElectronica_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\BancaElectronica_data.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + DEBUG + + + Delphi.Personality + Package + + + False + True + False + + + False + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + BancaElectronica_data.dpk + + + + + + + MainSource + + + + + + + + + + + + + + + + +
DataModuleBancaElectronica
+ TDAClientDataModule +
+ + + + +
+ +
\ No newline at end of file diff --git a/Source/Modulos/Banca electronica/Data/BancaElectronica_data.res b/Source/Modulos/Banca electronica/Data/BancaElectronica_data.res new file mode 100644 index 0000000..86c94e6 Binary files /dev/null and b/Source/Modulos/Banca electronica/Data/BancaElectronica_data.res differ diff --git a/Source/Modulos/Banca electronica/Data/uDataModuleBancaElectronica.dfm b/Source/Modulos/Banca electronica/Data/uDataModuleBancaElectronica.dfm new file mode 100644 index 0000000..9656025 --- /dev/null +++ b/Source/Modulos/Banca electronica/Data/uDataModuleBancaElectronica.dfm @@ -0,0 +1,14 @@ +inherited DataModuleBancaElectronica: TDataModuleBancaElectronica + OnCreate = DAClientDataModuleCreate + Height = 181 + Width = 518 + object RORemoteService: TRORemoteService + ServiceName = 'srvBancaElectronica' + Left = 48 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 84 + end +end diff --git a/Source/Modulos/Banca electronica/Data/uDataModuleBancaElectronica.pas b/Source/Modulos/Banca electronica/Data/uDataModuleBancaElectronica.pas new file mode 100644 index 0000000..4cdad4a --- /dev/null +++ b/Source/Modulos/Banca electronica/Data/uDataModuleBancaElectronica.pas @@ -0,0 +1,107 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uDataModuleBancaElectronica; + +interface + +uses + SysUtils, Classes, DB, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, + uDataModuleBase, + uIDataModuleBancaElectronica, uBizBancaElectronica, uDADataStreamer, + uDABin2DataStreamer; + +type + TDataModuleBancaElectronica = class(TDataModuleBase, IDataModuleBancaElectronica) + RORemoteService: TRORemoteService; + Bin2DataStreamer: TDABin2DataStreamer; + procedure DAClientDataModuleCreate(Sender: TObject); + public + function GetItems: IBizIBizBanca; + function GetItem(const ID : Integer) : IBizIBizBanca; + function NewItem : IBizIBizBanca; + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, uDAInterfaces, + schBancaElectronicaClient_Intf; + +{ TDataModuleBancaElectronica } + +procedure TDataModuleBancaElectronica.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleBancaElectronica.GetItems: IBizIBizBanca; +var + AIBizBanca : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AIBizBanca := CloneDataTable(tbl_BancaElectronica); + AIBizBanca.BusinessRulesID := BIZ_CLIENT_IBIZBANCA; + Result := (AIBizBanca as IBizIBizBanca); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleBancaElectronica.NewItem: IBizIBizBanca; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleBancaElectronica.GetItem(const ID: Integer): IBizIBizBanca; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + + with Result.DataTable.DynamicWhere do + begin + // (ID = :ID) + Condicion := NewBinaryExpression(NewField('', fld_BancaElectronicaID), NewConstant(ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Banca electronica/Model/BancaElectronica_model.bdsproj b/Source/Modulos/Banca electronica/Model/BancaElectronica_model.bdsproj new file mode 100644 index 0000000..78d2f29 --- /dev/null +++ b/Source/Modulos/Banca electronica/Model/BancaElectronica_model.bdsproj @@ -0,0 +1,175 @@ + + + + + + + + + + + + BancaElectronica_model.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + diff --git a/Source/Modulos/Banca electronica/Model/BancaElectronica_model.dpk b/Source/Modulos/Banca electronica/Model/BancaElectronica_model.dpk new file mode 100644 index 0000000..15bb6ce --- /dev/null +++ b/Source/Modulos/Banca electronica/Model/BancaElectronica_model.dpk @@ -0,0 +1,36 @@ +package BancaElectronica_model; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + Base; + +contains + uIDataModuleBancaElectronica in 'Data\uIDataModuleBancaElectronica.pas', + schBancaElectronicaClient_Intf in 'schBancaElectronicaClient_Intf.pas', + schBancaElectronicaServer_Intf in 'schBancaElectronicaServer_Intf.pas', + uBizBancaElectronica in 'uBizBancaElectronica.pas'; + +end. diff --git a/Source/Modulos/Banca electronica/Model/BancaElectronica_model.dproj b/Source/Modulos/Banca electronica/Model/BancaElectronica_model.dproj new file mode 100644 index 0000000..c22ba8c --- /dev/null +++ b/Source/Modulos/Banca electronica/Model/BancaElectronica_model.dproj @@ -0,0 +1,539 @@ + + + {36741ce3-2830-49dc-8b68-8b189bf8229f} + BancaElectronica_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\BancaElectronica_model.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0BancaElectronica_model.dpk + + + + + MainSource + + + + + + + + + + diff --git a/Source/Modulos/Banca electronica/Model/BancaElectronica_model.res b/Source/Modulos/Banca electronica/Model/BancaElectronica_model.res new file mode 100644 index 0000000..86c94e6 Binary files /dev/null and b/Source/Modulos/Banca electronica/Model/BancaElectronica_model.res differ diff --git a/Source/Modulos/Banca electronica/Model/Data/uIDataModuleBancaElectronica.pas b/Source/Modulos/Banca electronica/Model/Data/uIDataModuleBancaElectronica.pas new file mode 100644 index 0000000..dcd598d --- /dev/null +++ b/Source/Modulos/Banca electronica/Model/Data/uIDataModuleBancaElectronica.pas @@ -0,0 +1,43 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uIDataModuleBancaElectronica; + +interface + +uses + uBizBancaElectronica; + +type + IDataModuleBancaElectronica = interface + ['{53EF1C4A-C134-47A2-9E75-FD0EC3246AA7}'] + function GetItems: IBizIBizBanca; + function GetNextID(const DataSetName : String) : Integer; + function GetItem(const ID : Integer) : IBizIBizBanca; + function NewItem : IBizIBizBanca; + + end; + +implementation + +end. diff --git a/Source/Modulos/Banca electronica/Model/uBizBancaElectronica.pas b/Source/Modulos/Banca electronica/Model/uBizBancaElectronica.pas new file mode 100644 index 0000000..9023124 --- /dev/null +++ b/Source/Modulos/Banca electronica/Model/uBizBancaElectronica.pas @@ -0,0 +1,134 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uBizBancaElectronica; + +interface + +uses + uDAInterfaces, uDADataTable, uDBSelectionListUtils, schBancaElectronicaClient_Intf; + +const + BIZ_CLIENT_IBIZBANCA = 'Client.IBizBanca'; + +type + IBizIBizBanca = interface(IBancaElectronica) + ['{11CFA381-89E3-4491-B1C4-F270EFB2E6FE}'] + function EsNuevo : Boolean; + + // Descomentar esto si hay clases detalles + // procedure SetDetalles(AValue : IBizDetalles); + // function GetDetalles : IBizDetalles; + // property Detalles : IBizDetalles read GetDetalles write SetDetalles; + end; + + TBizIBizBanca = class(TBancaElectronicaDataTableRules, IBizIBizBanca, ISeleccionable) + protected + FSeleccionableInterface : ISeleccionable; + + // Descomentar esto si hay clases detalles + // FDetalles : IBizDetalles; + // FDetallesLink : TDADataSource; + // procedure SetDetalles(AValue : IBizDetalles); + // function GetDetalles : IBizDetalles; + + procedure OnNewRecord(Sender: TDADataTable); override; + public + procedure IniciarValoresIBizBancaNuevo; + function EsNuevo : Boolean; + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + property SeleccionableInterface : ISeleccionable + read FSeleccionableInterface + write FSeleccionableInterface + implements ISeleccionable; + + // Descomentar esto si hay clases detalles + // property Detalles : IBizDetalles read GetDetalles write SetDetalles; + end; + +implementation + +{ TBizIBizBanca } + +uses + SysUtils, uDataTableUtils; + +// Descomentar esto si hay clases detalles +// function TBizIBizBanca.GetDetalles: IBizDetalles; +// begin +// Result := FDetalles; +// end; + +// Descomentar esto si hay clases detalles +// procedure TBizIBizBanca.SetDetalles(AValue: IBizDetalles); +// begin +// FDetalles := AValue; +// EnlazarMaestroDetalle(FDetallesLink, FDetalles); +// end; + +constructor TBizIBizBanca.Create(aDataTable: TDADataTable); +begin + inherited; + // Descomentar esto si hay clases detalles + // FDetallesLink := TDADataSource.Create(NIL); + // FDetallesLink.DataTable := aDataTable; + + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +destructor TBizIBizBanca.Destroy; +begin + // Descomentar esto si hay clases detalles + // FDetalles := NIL; + // FreeAndNIL(FDetallesLink); + + FSeleccionableInterface := NIL; + inherited; +end; + +function TBizIBizBanca.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +procedure TBizIBizBanca.IniciarValoresIBizBancaNuevo; +begin + // +end; + +procedure TBizIBizBanca.OnNewRecord(Sender: TDADataTable); +begin + inherited; + ID := GetRecNo; // -1, -2, -3... + IniciarValoresIBizBancaNuevo; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_IBIZBANCA, TBizIBizBanca); + +finalization + +end. + diff --git a/Source/Modulos/Banca electronica/Plugin/BancaElectronica_plugin.bdsproj b/Source/Modulos/Banca electronica/Plugin/BancaElectronica_plugin.bdsproj new file mode 100644 index 0000000..47bdad1 --- /dev/null +++ b/Source/Modulos/Banca electronica/Plugin/BancaElectronica_plugin.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + BancaElectronica_plugin.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Banca electronica/Plugin/BancaElectronica_plugin.dpk b/Source/Modulos/Banca electronica/Plugin/BancaElectronica_plugin.dpk new file mode 100644 index 0000000..d20d394 Binary files /dev/null and b/Source/Modulos/Banca electronica/Plugin/BancaElectronica_plugin.dpk differ diff --git a/Source/Modulos/Banca electronica/Plugin/BancaElectronica_plugin.dproj b/Source/Modulos/Banca electronica/Plugin/BancaElectronica_plugin.dproj new file mode 100644 index 0000000..9e3699f --- /dev/null +++ b/Source/Modulos/Banca electronica/Plugin/BancaElectronica_plugin.dproj @@ -0,0 +1,577 @@ + + + {e4a70e78-dcab-415c-9e35-1956bd41ae1a} + BancaElectronica_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\BancaElectronica_plugin.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + BancaElectronica_plugin.dpk + + + + + + + MainSource + + + + + + + + diff --git a/Source/Modulos/Banca electronica/Plugin/BancaElectronica_plugin.rc b/Source/Modulos/Banca electronica/Plugin/BancaElectronica_plugin.rc new file mode 100644 index 0000000..e69de29 diff --git a/Source/Modulos/Banca electronica/Plugin/BancaElectronica_plugin.res b/Source/Modulos/Banca electronica/Plugin/BancaElectronica_plugin.res new file mode 100644 index 0000000..36f26e2 Binary files /dev/null and b/Source/Modulos/Banca electronica/Plugin/BancaElectronica_plugin.res differ diff --git a/Source/Modulos/Banca electronica/Plugin/uPluginBancaElectronica.dfm b/Source/Modulos/Banca electronica/Plugin/uPluginBancaElectronica.dfm new file mode 100644 index 0000000..b0d917c --- /dev/null +++ b/Source/Modulos/Banca electronica/Plugin/uPluginBancaElectronica.dfm @@ -0,0 +1,111 @@ +object PluginBancaElectronica: TPluginBancaElectronica + OldCreateOrder = True + DefaultAction = actBancaElectronica + Description = 'Ventas' + ModuleMenu = MainMenu + ModuleName = 'BancaElectronica' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software' + Version = '1.0.0' + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000015E4944415478DA + 63FCFFFF3F032D0123CC822BA552CE406A0F1EB52E84E475BA9FEDC567C17FD5 + 961A0676F62C0C9D3F7F4E63981DDBC290BA18BF7CCEAA678C782D00BA00AC18 + 0EBE7F6760F8F19D61FA0E4306966DA9200308C993600148F38777607AFA4967 + 4C0BB0CB1369014CF37B20FEF19361FACD60540B70CB1361C1875E84E60F1F20 + 2E7C958AB000BF3C11163CA8466806BB1068C0AF728405F8E5F15B004A45D397 + CB634D83200340A9089F3C210B9C0F3CC49DCE1DE4195C08C9539C0FB0B99010 + 20351F50D1023CE99C88620504C041466A3E8059803338D18394D47CC088E118 + 64F0F91303C397CF0CD30F58C1D5939A0F705B00359CE133D082B3EED82D2094 + 0F705A806438D8073743B05A40301FC0D2398A056886337CFDC230FD4902A605 + A400B8056F3A300C67F8F29561FA876C2A5970B38481E1D72F14C319BE7D4189 + 33B22DC0175FC87146AE0578E30B39CEC8B2801440730B007C5C13EF8DA2E719 + 0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + object actBancaElectronica: TAction + Category = 'Ventas' + Caption = 'Cat'#225'logo de art'#237'culos' + ImageIndex = 0 + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object N1: TMenuItem + Caption = 'Log'#237'stica' + object BancaElectronica1: TMenuItem + Tag = 100 + Action = actBancaElectronica + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001004944415478DA + 63BC5C22F99F8148A0D3FD8C115D8C1164806A4B0D84F7FD3B03C3FD3B0CB3DB + 3732A42EC614CB5985CF00A8C2E9177D1858B6A5420C4013C36D4075315821C3 + F5AB0CD37F95430C98852986DB80287FB02D300036A012530CA701071E121788 + F8C3002DC072573F67FCFF9F7004E10C449001403967A09A3D78F4BBE00C44A8 + 0160C3D9D9B33074FEFC398D61766C0BEE408419004C3C60C5700072E98FEF0C + D3771882D5E10C44AC0680347F7807A6A79F748618802FA0AE944A210C80697E + 0FC43F7E324CBF194C82011F7A119A3F7C80B8E0552A09063CA8466806BBE03B + 3CB0091A008A85E9CBE5B1CA13638033308071A6030779061700E6FAF742387F + 63F70000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000001374944415478DA + 63FCFFFF3F033D01E3C8B2F04AA9943390DA43408F0B316A74BA9FED25C6C2FF + AA2D350CECEC59584DF9F9731AC3ECD81686D4C584D5E4AC7AC6489485409781 + 35A180CF9F1818BE7C66987EC08A81655B2AC83062D4906921D42086CF40C3CE + BA63B710BB1A322C443208ECFA9B219816E25643A2856806317CFDC230FD4902 + AA85F8D59060E19B0E0C8318BE7C6598FE211B61216135245878B38481E1D72F + 148318BE015DFFAB1C61216135C45908CA16D397CB33E00220C340D982901A62 + 2D743EF0107FA67690677021460D55333E2ED71303C8CDF834B4104FA626B6EC + 450E5E72333ECC4292A380DC8CCF88D581444401B9191FB78504CA5572333E76 + 0B892857C9CAF8582D24B25C2527E397022DE921270A302C2415901A0554B190 + 9428A086854495BD38333E3DC0F0B71000FEC966E74A55381F0000000049454E + 44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 80 + Bitmap = {} + end +end diff --git a/Source/Modulos/Banca electronica/Plugin/uPluginBancaElectronica.pas b/Source/Modulos/Banca electronica/Plugin/uPluginBancaElectronica.pas new file mode 100644 index 0000000..0ae590b --- /dev/null +++ b/Source/Modulos/Banca electronica/Plugin/uPluginBancaElectronica.pas @@ -0,0 +1,62 @@ +unit uPluginBancaElectronica; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCBancaElectronica = interface(IInterface) + ['{ED6B467B-B6DD-4E2E-8E54-BCEB8FD0A012}'] + end; + + TPluginBancaElectronica = class(TModuleController, IMCBancaElectronica) + actBancaElectronica: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + N1: TMenuItem; + BancaElectronica1: TMenuItem; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, + uBancaElectronicaController, uBancaElectronicaViewRegister; + +function GetModule : TModuleController; +begin + Result := TPluginBancaElectronica.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +constructor TPluginBancaElectronica.Create(AOwner: TComponent); +begin + inherited; + uBancaElectronicaViewRegister.RegisterViews; +end; + +destructor TPluginBancaElectronica.Destroy; +begin + uBancaElectronicaViewRegister.UnregisterViews; + inherited; +end; + +initialization + RegisterModuleClass(TPluginBancaElectronica); + +finalization + UnRegisterModuleClass(TPluginBancaElectronica); + +end. diff --git a/Source/Modulos/Banca electronica/Utiles/CVBNorma1958CSB.pas b/Source/Modulos/Banca electronica/Utiles/CVBNorma1958CSB.pas new file mode 100644 index 0000000..429722a --- /dev/null +++ b/Source/Modulos/Banca electronica/Utiles/CVBNorma1958CSB.pas @@ -0,0 +1,1074 @@ + + // Modificado sobre la base de: CVBNorma19CSB + // Unificadas ambas normas ( 19 y 58 ) + +unit CVBNorma1958CSB; + +interface + +uses + Messages, SysUtils, Classes, Dialogs, CVBUtils; + +type + + TProcedimiento = (prPrimero, prSegundo); + + TCVBNorma1958CSB = class(TComponent) + private + pReg: array[0..164] of char; // Un digito ms por el /0 + + _LL_: integer; // Longitud Lnea. Aqu almacenamos el valor 164 para usarlo + // en el resto del componente. + + _INDICA_: string; + + _CERO_, _SPCE_: char; + + _MSK_PT_, _MSK_EU_: string; + + prProced: TProcedimiento; + HayError: boolean; + + iTotOrd: integer; + iTotRem: integer; + + FEuro: boolean; + FDepura: boolean; + + sPrimerosDigitos: string; + NFic: file; + + fTotImpOrdEu: double; + iTotImpOrdPts: integer; + iTotDomOrd: integer; + iTotRegOrd: integer; + + fTotImpCinEu: double; + iTotImpCinPts: integer; + iTotDomCin: integer; + iTotRegCin: integer; + FEnCasoError: TNotifyEvent; + sReg: string; + + _19_, _58_: integer; + + + { Private declarations } + protected + procedure ChequearDatos(iParte: integer); + procedure Error(iErr: integer); dynamic; + { Protected declarations } + public + + + (* Norma = 19 = recibos al cobro + norma = 58 = recibos al descuento + *) + _NORMA_: integer; + + + + NrError: integer; + CRLF: string; + { El PRESENTADOR (el que fsicamente hace la presentacin del soporte magntico + a la Entidad de Deposito. Puede ser el mismo Cliente Ordenante, pero no necesariamente + y a su vez ser una persona fsica o jurdica } + + + FNomFic: string; // Nombre del archivo en disco + + + Presentador: string; //9 + SufijoPres: string; //3 + NomCliPres: string; //40 + EntRecepPres: string; //4 + OfiRecepPres: string; //4 + + + { El ordenante (El que emite y en nombre del cual se adeudan las domiciliaciones. Puede ser + una persona fsica o jurdica} + // el que cobra + Ordenante: string; //9 + SufijoOrd: string; //3 + NomCliOrd: string; //40 + EntOrde: string; //4 + OfiOrde: string; //4 + DcOrde: string; //2 + CcOrde: string; //2 + LocalidadOrd: string; // 38 + CodLocalOrd: string; // 2 + FecOrigFormCred: TDateTime; // 6 + + // Datos Generales + + + // FecSoporte: TDateTime; // En pantalla pone 'Fecha'. Fecha creacin remesa + FecCargo: TDateTime; // En pantalla pone 'Fecha entrega' + FecAbono: TDateTime; + // En pantalla pone 'Fecha abono'. Fecha para cobrarlos + + FecVcto: TDateTime; + TProc: string; //2 + + // el que paga + Referencia: string; //12 + NomTitDom: string; //40 + EntTitDom: string; //4 + OfiTitDom: string; //4 + DcTitDom: string; //2 + CcTitDom: string; //10 + NomTitCta: string; //40 + DomTitCta: string; //40 + PlzTitCta: string; //35 + CPtTitCta: string; //5 + + fImportePts: double; + fImporteEu: double; + CodDevol: string; // 6 + CodRefInt: string; // 10 + + CampConc: string; //40 + CampConc1: string; //40 + CampConc2: string; //40 + CampConc3: string; //40 + CampConc4: string; //40 + CampConc5: string; //40 + CampConc6: string; //40 + CampConc7: string; //40 + CampConc8: string; //40 + CampConc9: string; //40 + CampConc10: string; //40 + CampConc11: string; //40 + CampConc12: string; //40 + CampConc13: string; //40 + CampConc14: string; //40 + CampConc15: string; //40 + CampConc16: string; //40 + + + + constructor Create(AOwner: TComponent); override; + //destructor free; + procedure Abrir; + procedure IniOrdenan; + procedure IniRegistro; + procedure CompCabecera; + procedure CompOrdenante; + procedure CompRegistro; + procedure FinOrdenan; + procedure Cerrar; + property TotOrd: integer Read iTotOrd; + property TotRem: integer Read iTotRem; + { Public declarations } + published + property NomFichero: string Read FNomFic Write FNomFic; + property Procedimiento: TProcedimiento + Read prProced Write prProced default prPrimero; + property Euros: boolean Read FEuro Write FEuro default False; + property Depura: boolean Read FDepura Write FDepura default False; + property EnCasoError: TNotifyEvent Read FEnCasoError Write FEnCasoError; + { Published declarations } + end; + +procedure Register; + +implementation + +constructor TCVBNorma1958CSB.Create(AOwner: TComponent); +begin + inherited Create(AOwner); + {Asignar la propiedades por defecto} + + _19_ := 19; + _58_ := 58; + + _LL_ := high(pReg); + + _INDICA_ := '<--'; + _CERO_ := '0'; + _SPCE_ := ' '; + + _MSK_PT_ := '0000000000'; + _MSK_EU_ := '00000000.00'; + +end; + +//******************************************************************************* + +procedure TCVBNorma1958CSB.Abrir; +begin + HayError := False; + + AssignFile(NFic, FNomFic); +{$I+} + rewrite(Nfic, _LL_); +{$I-} + if IOResult <> 0 then + error(0); + + fTotImpOrdEu := 0; + iTotImpOrdPts := 0; + iTotDomOrd := 0; + iTotRegOrd := 0; + + fTotImpCinEu := 0; + iTotImpCinPts := 0; + iTotDomCin := 0; + iTotRegCin := 0; + + IniOrdenan; + IniRegistro; + + if CRLF = '' then + CRLF := #13 + #10; + + if FEuro = False then + sPrimerosDigitos := '01' + else + sPrimerosDigitos := '51'; +end; + +procedure TCVBNorma1958CSB.IniOrdenan; +begin + + fTotImpOrdEu := 0; + iTotImpOrdPts := 0; + iTotDomOrd := 0; + iTotRegOrd := 0; + Ordenante := ''; + NomCliOrd := ''; + EntOrde := ''; + OfiOrde := ''; + DcOrde := ''; + CcOrde := ''; + LocalidadOrd := ''; + CodLocalOrd := ''; + + if _NORMA_ = _19_ then + TProc := '01' + else + if _NORMA_ = _58_ then + TProc := '06'; + +end; + +procedure TCVBNorma1958CSB.IniRegistro; +begin + NomTitDom := ''; //40 + EntTitDom := ''; //4 + OfiTitDom := ''; //4 + DcTitDom := ''; //2 + CcTitDom := ''; //10 + fImportePts := 0; + fImporteEu := 0; + CodDevol := ''; //6 + CodRefInt := ''; //10 + CampConc1 := ''; //40 + CampConc2 := ''; //40 + CampConc3 := ''; //40 + CampConc4 := ''; //40 + CampConc5 := ''; //40 + CampConc6 := ''; //40 + CampConc7 := ''; //40 + CampConc8 := ''; //40 + CampConc9 := ''; //40 + CampConc10 := ''; //40 + CampConc11 := ''; //40 + CampConc12 := ''; //40 + CampConc13 := ''; //40 + CampConc14 := ''; //40 + CampConc15 := ''; //40 + CampConc16 := ''; //40 + NomTitCta := ''; //40 + DomTitCta := ''; //40 + PlzTitCta := ''; //35 + CPtTitCta := ''; //5 +end; + +procedure TCVBNorma1958CSB.CompCabecera; +var + cT, cIT: string; +begin + HayError := False; + + sReg := ''; + + ChequearDatos(1); +(* + Presentador + NomCliPres + EntRecepPres + OfiRecepPres +*) + + if _NORMA_ = _19_ then + sReg := sPrimerosDigitos + '80' + else + if _NORMA_ = _58_ then + sReg := sPrimerosDigitos + '70'; + + Presentador := AjustaCIF(Presentador); + + sReg := sReg + Ajusta(Presentador, 'I', 9, _CERO_); //9 + sReg := sReg + Ajusta(SufijoPres, 'I', 3, _CERO_); //3 + // if FecSoporte = 0 then + // FecSoporte := now; + sReg := sReg + Ajusta(FormatDateTime('ddmmyy', FecCargo), 'I', 6, _SPCE_); //6 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); //6 + sReg := sReg + Ajusta(NomCliPres, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta('', 'I', 20, _SPCE_); //20 + sReg := sReg + Ajusta(EntRecepPres, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta(OfiRecepPres, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta('', 'I', 12, _SPCE_); //12 + sReg := sReg + Ajusta('', 'I', 40, _SPCE_); //40 + sReg := sReg + Ajusta('', 'I', 14, _SPCE_); //14 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + + Inc(iTotRegCin); + +end; + + +procedure TCVBNorma1958CSB.CompOrdenante; +var + cT: string; +begin + HayError := False; + sReg := ''; + + ChequearDatos(2); +(* + Ordenante + NomCliOrd + EntOrde + OfiOrde + CcOrde +*) + + // Cdigo de Dato + if FEuro = False then + sPrimerosDigitos := '03' + else + sPrimerosDigitos := '53'; + + if _NORMA_ = _19_ then + sReg := sPrimerosDigitos + '80' + else + if _NORMA_ = _58_ then + sReg := sPrimerosDigitos + '70'; + + Ordenante := AjustaCIF(Ordenante); + + sReg := sReg + Ajusta(Ordenante, 'I', 9, _CERO_); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, _CERO_); //3 + + if FecCargo = 0 then + FecCargo := now; // Fecha entrega soporte + if FecAbono = 0 then + FecAbono := now; // Fecha para cobrar + + sReg := sReg + Ajusta(FormatDateTime('ddmmyy', FecCargo), 'I', 6, _CERO_); // 6 + + if _NORMA_ = _19_ then + sReg := sReg + Ajusta(FormatDateTime('ddmmyy', FecAbono), 'I', 6, _CERO_) //6 + else + if _NORMA_ = _58_ then + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); //6 + + sReg := sReg + Ajusta(NomCliOrd, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta(EntOrde, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta(OfiOrde, 'I', 4, _CERO_); // 4 + sReg := sReg + Ajusta(DcOrde, 'I', 2, _CERO_); // 2 + sReg := sReg + Ajusta(CcOrde, 'I', 10, _CERO_); // 10 + sReg := sReg + Ajusta('', 'I', 8, _SPCE_); // 8 + + if _NORMA_ = _19_ then + TProc := '01' + else + if _NORMA_ = _58_ then + TProc := '06'; + + sReg := sReg + Ajusta(TProc, 'I', 2, _SPCE_); + // Norma 19="01", norma 58="06" // 2 + sReg := sReg + Ajusta('', 'I', 10, _SPCE_); // 10 + sReg := sReg + Ajusta('', 'I', 40, _SPCE_); // 40 + + if _NORMA_ = _58_ then + begin + sReg := sReg + Ajusta('', 'I', 2, _SPCE_); + sReg := sReg + Ajusta('', 'I', 9, _SPCE_); // provincia 9 caracteres + sReg := sReg + Ajusta('', 'I', 3, _SPCE_); + end + else + if _NORMA_ = _19_ then + sReg := sReg + Ajusta('', 'I', 14, _SPCE_); // 14 + + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + + Inc(iTotRegOrd); + Inc(iTotRegCin); + +end; + + +procedure TCVBNorma1958CSB.CompRegistro; +var + sImporteEu, cT, cIT: string; + iP: integer; + bTieneCuentaBanco: boolean; +begin + HayError := False; + sReg := ''; + bTieneCuentaBanco := True; + + ChequearDatos(3); +(* + Referencia + NomTitDom + EntTitDom + OfiTitDom + CcTitDom + (fImportePts=0) and (FEuro=False) + (fImporteEu=0) and (FEuro=True) +*) + + if (prProced = prSegundo) and ((CampConc1 <> '') or + (CampConc2 <> '') or (CampConc3 <> '') or + (CampConc4 <> '') or (CampConc5 <> '') or + (CampConc6 <> '') or (CampConc7 <> '') or + (CampConc8 <> '') or (CampConc9 <> '') or + (CampConc10 <> '') or (CampConc11 <> '') or + (CampConc12 <> '') or (CampConc13 <> '') or + (CampConc14 <> '') or (CampConc15 <> '') or (CampConc16 <> '')) then + Error(210); + (* + if (prProced=prPrimero) and + ( + (NomTitCta<>'') or (DomTitCta<>'') or (PlzTitCta<>'') or (CPtTitCta<>'') + ) then Error(211); + *) + + if prProced = prPrimero then + begin + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + + if _NORMA_ = _19_ then + sReg := sPrimerosDigitos + '80' + else + if _NORMA_ = _58_ then + sReg := sPrimerosDigitos + '70'; + + ChequearDatos(4); + cT := EntTitDom + OfiTitDom + DcTitDom + CcTitDom; + if pos(_INDICA_, cT) > 0 then + begin + bTieneCuentaBanco := False; + + EntTitDom := ''; // Si no va domiciliado, entonces debe ir todo a blanco. + OfiTitDom := ''; + DcTitDom := ''; + CcTitDom := ''; + end; + + sReg := sReg + Ajusta(Ordenante, 'I', 9, _CERO_); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, _CERO_); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, _CERO_); //12 + sReg := sReg + Ajusta(NomTitDom, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta(EntTitDom, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta(OfiTitDom, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta(DcTitDom, 'I', 2, _CERO_); + // Creo que es:** //2 + sReg := sReg + Ajusta(CcTitDom, 'I', 10, _CERO_); //10 + + if FEuro = False then + begin + cIT := FormatFloat(_MSK_PT_, fImportePts); + sReg := sReg + Ajusta(cIT, 'I', 10, _CERO_); //10 + end + else + begin + (* Creo que en Euros deben de ir los 2 decimales siempre, pero + no debe salir el punto decimal. O sea, los 2 ltimos dgitos son + siempre los decimales. Repito: Creo. + *) + sImporteEu := FormatFloat(_MSK_EU_, fImporteEu); + iP := pos(',', sImporteEu); + if iP < 1 then + iP := pos('.', sImporteEu); + cIT := copy(sImporteEu, 1, iP - 1); + sImporteEu := cIT + copy(sImporteEu, iP + 1, 2); + sReg := sReg + Ajusta(sImporteEu, 'I', 10, _CERO_); //10 + end; + + sReg := sReg + Ajusta(CodDevol, 'I', 6, _SPCE_); //6 + sReg := sReg + Ajusta(CodRefInt, 'I', 10, _SPCE_); //10 + sReg := sReg + Ajusta(CampConc1, 'D', 40, _SPCE_); //40 + + if _NORMA_ = _58_ then + sReg := sReg + Ajusta(FormatDateTime('ddmmyy', FecVcto), 'D', 8, _SPCE_) + else + if _NORMA_ = _19_ then + sReg := sReg + Ajusta('', 'I', 8, _SPCE_); // 8 + + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + + Inc(iTotRegOrd); // Registros Ordenantes + Inc(iTotRegCin); // Registros Disco + Inc(iTotDomOrd); // Recibos Ordenante + Inc(iTotDomCin); // Recibos Disco + + if FEuro = False then + begin + iTotImpOrdPts := iTotImpOrdPts + StrToInt(cIT); //fImportePts; + iTotImpCinPts := iTotImpCinPts + StrToInt(FloatToStr(fImportePts)); + end + else + begin + fTotImpOrdEu := fTotImpOrdEu + fImporteEu; + fTotImpCinEu := fTotImpCinEu + fImporteEu; + end; + + + if (CampConc2 <> '') or (CampConc3 <> '') or (CampConc4 <> '') then + begin + sReg := ''; + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + sReg := sPrimerosDigitos + '81'; + sReg := sReg + Ajusta(Ordenante, 'I', 9, _SPCE_); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, _CERO_); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, _SPCE_); //12 + sReg := sReg + Ajusta(CampConc2, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta(CampConc3, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta(CampConc4, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta('', 'I', 14, _SPCE_); //14 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + + Inc(iTotRegOrd); + Inc(iTotRegCin); + end; + + if (CampConc5 <> '') or (CampConc6 <> '') or (CampConc7 <> '') then + begin + sReg := ''; + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + sReg := sPrimerosDigitos + '82'; + sReg := sReg + Ajusta(Ordenante, 'I', 9, _SPCE_); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, _CERO_); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, _SPCE_); //12 + sReg := sReg + Ajusta(CampConc5, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta(CampConc6, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta(CampConc7, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta('', 'I', 14, _SPCE_); //14 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + + Inc(iTotRegOrd); + Inc(iTotRegCin); + end; + + if (CampConc8 <> '') or (CampConc9 <> '') or (CampConc10 <> '') then + begin + sReg := ''; + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + sReg := sPrimerosDigitos + '83'; + sReg := sReg + Ajusta(Ordenante, 'I', 9, _SPCE_); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, _CERO_); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, _SPCE_); //12 + sReg := sReg + Ajusta(CampConc8, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta(CampConc9, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta(CampConc10, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta('', 'I', 14, _SPCE_); //14 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + + Inc(iTotRegOrd); + Inc(iTotRegCin); + end; + + if (CampConc11 <> '') or (CampConc12 <> '') or (CampConc13 <> '') then + begin + sReg := ''; + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + sReg := sPrimerosDigitos + '84'; + sReg := sReg + Ajusta(Ordenante, 'I', 9, _SPCE_); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, _CERO_); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, _SPCE_); //12 + sReg := sReg + Ajusta(CampConc11, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta(CampConc12, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta(CampConc13, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta('', 'I', 14, _SPCE_); //14 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + + Inc(iTotRegOrd); + Inc(iTotRegCin); + end; + + + if (CampConc14 <> '') or (CampConc15 <> '') or (CampConc16 <> '') then + begin + sReg := ''; + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + sReg := sPrimerosDigitos + '85'; + sReg := sReg + Ajusta(Ordenante, 'I', 9, _SPCE_); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, _CERO_); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, _SPCE_); //12 + sReg := sReg + Ajusta(CampConc14, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta(CampConc15, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta(CampConc16, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta('', 'I', 14, _SPCE_); //14 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + + Inc(iTotRegOrd); + Inc(iTotRegCin); + end; + + + if (_NORMA_ = _58_) and (bTieneCuentaBanco = False) then + begin + // if (NomTitCta<>'') or (DomTitCta<>'') or (PlzTitCta<>'') or (CPtTitCta<>'') then + begin + sReg := ''; + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + sReg := sPrimerosDigitos + '76'; + sReg := sReg + Ajusta(Ordenante, 'I', 9, _SPCE_); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, _CERO_); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, _CERO_); //12 + sReg := sReg + Ajusta(DomTitCta, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta(PlzTitCta, 'D', 35, _SPCE_); //35 + sReg := sReg + Ajusta(CPtTitCta, 'D', 5, _SPCE_); //5 + sReg := sReg + Ajusta(LocalidadOrd, 'D', 38, _SPCE_); // 38 + sReg := sReg + Ajusta(CodLocalOrd, 'I', 2, _CERO_); // 2 + sReg := sReg + + Ajusta(FormatDateTime('ddmmyy', FecOrigFormCred), 'I', 6, _SPCE_); + sReg := sReg + Ajusta('', 'I', 8, _SPCE_); // 8 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + + Inc(iTotRegOrd); + Inc(iTotRegCin); + end; + end; + end; + + if prProced = prSegundo then + begin + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + + sReg := sPrimerosDigitos + '80'; + sReg := sReg + Ajusta(Ordenante, 'I', 9, _SPCE_); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, _CERO_); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, _SPCE_); //12 + sReg := sReg + Ajusta(NomTitDom, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta(EntTitDom, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta(OfiTitDom, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta(DcTitDom, 'I', 2, _CERO_); //2 + sReg := sReg + Ajusta(CcTitDom, 'I', 10, _CERO_); //10 + if FEuro = False then + begin + cIT := FormatFloat(_MSK_PT_, fImportePts); + sReg := sReg + Ajusta(cIT, 'I', 10, _CERO_); //10 + end + else + begin + (* Creo que en Euros deben de ir los 2 decimales siempre, pero + no debe salir el punto decimal. O sea, los 2 ltimos dgitos son + siempre los decimales. Repito: Creo. + *) + sImporteEu := FormatFloat(_MSK_EU_, fImporteEu); + iP := pos(',', sImporteEu); + if iP < 1 then + iP := pos('.', sImporteEu); + cIT := copy(sImporteEu, 1, iP - 1); + sImporteEu := cIT + copy(sImporteEu, iP + 1, 2); + sReg := sReg + Ajusta(sImporteEu, 'I', 10, _CERO_); //10 + end; + + sReg := sReg + Ajusta(CodDevol, 'D', 6, _SPCE_); //6 + sReg := sReg + Ajusta(CodRefInt, 'D', 10, _SPCE_); //10 + sReg := sReg + Ajusta(CampConc, 'D', 17, _SPCE_); //17 + sReg := sReg + Ajusta('', 'I', 23, _SPCE_); //23 + sReg := sReg + Ajusta('', 'I', 8, _SPCE_); //8 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + + Inc(iTotRegOrd); + Inc(iTotRegCin); + + if FEuro = False then + begin + iTotImpOrdPts := iTotImpOrdPts + StrToInt(cIT); //fImportePts; + iTotImpCinPts := iTotImpCinPts + StrToInt(FloaTtoStr(fImportePts)); + end + else + begin + fTotImpOrdEu := fTotImpOrdEu + fImporteEu; + fTotImpCinEu := fTotImpCinEu + fImporteEu; + end; + + if (NomTitCta <> '') or (DomTitCta <> '') or (PlzTitCta <> '') or (CPtTitCta <> '') then + begin + sReg := ''; + if NomTitCta = '' then + error(210); + + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + + sReg := sPrimerosDigitos + '86'; + sReg := sReg + Ajusta(Ordenante, 'I', 9, _SPCE_); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, _CERO_); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, _SPCE_); //12 + sReg := sReg + Ajusta(NomTitCta, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta(DomTitCta, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta(PlzTitCta, 'D', 35, _SPCE_); //35 + sReg := sReg + Ajusta(CPtTitCta, 'D', 5, _SPCE_); //5 + sReg := sReg + Ajusta('', 'I', 14, _SPCE_); //14 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + + Inc(iTotRegOrd); + Inc(iTotRegCin); + end; + + end; + + IniRegistro; +end; + + +procedure TCVBNorma1958CSB.FinOrdenan; +var + sTotImpOrdEu, cT, cIT: string; + iP: integer; +begin + HayError := False; + sReg := ''; + + Inc(iTotRegOrd); + Inc(iTotRegCin); + + if FEuro = False then + sPrimerosDigitos := '08' // Ptas + else + sPrimerosDigitos := '58'; // Euros + + + if _NORMA_ = _19_ then + sReg := sPrimerosDigitos + '80' // Norma 19 / Norma 58=70 + else + if _NORMA_ = _58_ then + sReg := sPrimerosDigitos + '70'; + + Ordenante := AjustaCif(Ordenante); + sReg := sReg + Ajusta(Ordenante, 'I', 9, _CERO_); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, _CERO_); //3 + sReg := sReg + Ajusta('', 'D', 12, _SPCE_); //12 + sReg := sReg + Ajusta('', 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta('', 'D', 20, _SPCE_); //20 + if FEuro = False then {float} + sReg := sReg + Ajusta(IntToStr(iTotImpOrdPts), 'I', 10, _CERO_) //10 + else + begin + (* Creo que en Euros deben de ir los 2 decimales siempre, pero + no debe salir el punto decimal. O sea, los 2 ltimos dgitos son + siempre los decimales. Repito: Creo. + *) + sTotImpOrdEu := FormatFloat(_MSK_EU_, fTotImpOrdEu); + iP := pos(',', sTotImpOrdEu); + if iP < 1 then + iP := pos('.', sTotImpOrdEu); + cIT := copy(sTotImpOrdEu, 1, iP - 1); + sTotImpOrdEu := cIT + copy(sTotImpOrdEu, iP + 1, 2); + sReg := sReg + Ajusta(sTotImpOrdEu, 'I', 10, _CERO_); //10 + end; + + sReg := sReg + Ajusta('', 'D', 6, _SPCE_); //6 + sReg := sReg + Ajusta(IntToStr(iTotDomOrd), 'I', 10, _CERO_); //10 + sReg := sReg + Ajusta(IntToStr(iTotRegOrd), 'I', 10, _CERO_); //10 + sReg := sReg + Ajusta('', 'I', 20, _SPCE_); //20 + sReg := sReg + Ajusta('', 'I', 18, _SPCE_); //18 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + + IniOrdenan; +end; + + +procedure TCVBNorma1958CSB.Cerrar; +var + sTotImpCinEu, cT, cIT: string; + iP: integer; +begin + HayError := False; + sReg := ''; + + Inc(iTotRegCin); + + if FEuro = False then + sPrimerosDigitos := '09' + else + sPrimerosDigitos := '59'; + + if _NORMA_ = _19_ then + sReg := sPrimerosDigitos + '80' // 70 en norma 58 + else + if _NORMA_ = _58_ then + sReg := sPrimerosDigitos + '70'; + + Presentador := AjustaCIF(Presentador); + sReg := sReg + Ajusta(Presentador, 'I', 9, _CERO_); //9 + sReg := sReg + Ajusta(SufijoPres, 'I', 3, _CERO_); //3 + sReg := sReg + Ajusta('', 'D', 12, _SPCE_); //12 + sReg := sReg + Ajusta('', 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta('1', 'I', 4, _CERO_); + // Ordenantes. En este programa ser siempre = 1 // 4 + sReg := sReg + Ajusta('', 'D', 16, _SPCE_); //16 + + if FEuro = False then + begin + cIT := FormatFloat(_MSK_PT_, iTotImpCinPts); + sReg := sReg + Ajusta(cIT, 'I', 10, _CERO_); //10 + end + else + begin + (* Creo que en Euros deben de ir los 2 decimales siempre, pero + no debe salir el punto decimal. O sea, los 2 ltimos dgitos son + siempre los decimales. Repito: Creo. No tengo aqu las normas actualizadas para el euro. + *) + sTotImpCinEu := FormatFloat(_MSK_EU_, fTotImpCinEu); + iP := pos(',', sTotImpCinEu); + if iP < 1 then + iP := pos('.', sTotImpCinEu); + cIT := copy(sTotImpCinEu, 1, iP - 1); + sTotImpCinEu := cIT + copy(sTotImpCinEu, iP + 1, 2); + sReg := sReg + Ajusta(sTotImpCinEu, 'I', 10, _CERO_); //10 + end; + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); //6 + sReg := sReg + Ajusta(IntToStr(iTotDomCin), 'I', 10, _CERO_); //10 + sReg := sReg + Ajusta(IntToStr(iTotRegCin), 'I', 10, _CERO_); //10 + sReg := sReg + Ajusta('', 'D', 20, _SPCE_); //20 + sReg := sReg + Ajusta('', 'D', 18, _SPCE_); //18 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + + CloseFile(NFic); +end; + + +procedure TCVBNorma1958CSB.Error(iErr: integer); +begin + NrError := iErr; + HayError := True; + if Assigned(FEnCasoError) then + FEnCasoError(Self) + else + if FDepura = False then + begin + CloseFile(NFic); + if NrError = _LL_ then + raise Exception.Create('Error en la longitud de la lnea') + else + raise Exception.Create('Error en la generacin del fichero'); + end; +end; + + +procedure TCVBNorma1958CSB.ChequearDatos(iParte: integer); +var + bError: boolean; +begin + bError := False; + + if iParte = 1 then + begin + if ((Presentador = '') or (NomCliPres = '') or + (EntRecepPres = '') or (OfiRecepPres = '')) then + begin + if Presentador = '' then + Presentador := _INDICA_; + if NomCliPres = '' then + NomCliPres := _INDICA_; + if EntRecepPres = '' then + EntRecepPres := _INDICA_; + if OfiRecepPres = '' then + OfiRecepPres := _INDICA_; + bError := True; + end; + end + else + if iParte = 2 then + begin + if ((Ordenante = '') or (NomCliOrd = '') or + (EntOrde = '') or (OfiOrde = '') or + (CcOrde = '')) then + begin + if Ordenante = '' then + Ordenante := _INDICA_; + if NomCliOrd = '' then + NomCliOrd := _INDICA_; + if EntOrde = '' then + EntOrde := _INDICA_; + if OfiOrde = '' then + OfiOrde := _INDICA_; + if CcOrde = '' then + CcOrde := _INDICA_; + bError := True; + end; + end + else + if (iParte = 3) or (iParte = 4) then + begin + if ((Referencia = '') or (NomTitDom = '') or + (EntTitDom = '') or (OfiTitDom = '') or + (ccTitDom = '')) then + begin + if Referencia = '' then + Referencia := _INDICA_; + if NomTitDom = '' then + NomTitDom := _INDICA_; + if EntTitDom = '' then + EntTitDom := _INDICA_; + if OfiTitDom = '' then + OfiTitDom := _INDICA_; + if ccTitDom = '' then + ccTitDom := _INDICA_; + bError := True; + end; + end; + + if bError then + ShowMessage('' + CRLF + + 'Faltan datos al procesar el siguiente registro: ' + CRLF + CRLF + + 'Cdigo Cli/Pro: ' + Referencia + CRLF + + 'Nombre Titular: ' + NomTitDom + CRLF + + 'Entidad Domiciliar: ' + EntTitDom + CRLF + + 'Oficina Domiciliar: ' + OfiTitDom + CRLF + + 'Cuenta Domiciliar: ' + ccTitDom + CRLF + + 'Presentador: ' + Presentador + CRLF + + 'Nombre Cliente Pres:' + NomCliPres + CRLF + + 'Entidad Receptora P:' + EntRecepPres + CRLF + + 'Oficina Receptora P:' + OfiRecepPres + CRLF + + 'Ordenante: ' + Ordenante + CRLF + + 'Nombre Cliente Ord.:' + NomCliOrd + CRLF + + 'Entidad Ordenante: ' + EntOrde + CRLF + + 'Oficina Ordenante: ' + OfiOrde + CRLF + + 'Cuenta Ordenante: ' + CcOrde + ); + + if iParte = 3 then + begin + if bError then + begin + if ((fImportePts = 0) and (FEuro = False)) or + ((fImporteEu = 0) and (FEuro = True)) then + begin + ShowMessage(' El importe no puede ser cero !!!'); + Error(27); + end; + end; + end; +end; + + +procedure Register; +begin + RegisterComponents('CVB', [TCVBNORMA1958CSB]); +end; + + +end. diff --git a/Source/Modulos/Banca electronica/Utiles/CVBNorma19CSB.pas b/Source/Modulos/Banca electronica/Utiles/CVBNorma19CSB.pas new file mode 100644 index 0000000..79b7f8e --- /dev/null +++ b/Source/Modulos/Banca electronica/Utiles/CVBNorma19CSB.pas @@ -0,0 +1,1009 @@ + +unit CVBNorma19CSB; + +interface + +uses + Messages, SysUtils, Classes, Dialogs, CVBUtils; + +const + CVBVerNorma19CSB = 'D2 - V 1.0.1'; +// primera version 01 de Febrero de 1999 + +type + TProcedimiento = (prPrimero, prSegundo); + + TCVBNorma19CSB = class(TComponent) + private + pReg: array[0..164] of char; // Un digito ms por el /0 + prProced: TProcedimiento; + HayError: boolean; + + FTotOrd: integer; + FTotRem: integer; + FEuro: boolean; + FDepura: boolean; + + sPrimerosDigitos: string; + NFic: file; + + iTotImpOrdEu: double; + iTotImpOrdPts: integer; + iTotDomOrd: integer; + iTotRegOrd: integer; + + iTotImpCinEu: double; + iTotImpCinPts: double; + iTotDomCin: integer; + iTotRegCin: integer; + FEnCasoError: TNotifyEvent; + sReg: string; + + _19_, _58_: integer; + + + { Private declarations } + protected + procedure ChequearDatos(iParte: integer); + procedure Error(iErr: integer); dynamic; + { Protected declarations } + public + // Impresion19: Procedure (O: TCVBNorma19CSB; Ordenante,NomCliOrd:String;Importe:String); + + + + (* Intento reutilizar esta norma para generar tambin la norma 58 + Norma = 19 = recibos al cobro + norma = 58 = recibos al descuento + *) + _NORMA_: integer; + + + NrError: integer; + CRLF: string; + { El PRESENTADOR (el que fsicamente hace la presentacin del soporte magntico + a la Entidad de Deposito. Puede ser el mismo Cliente Ordenante, pero no necesariamente + y a su vez ser una persona fsica o jurdica } + + + FNomFic: string; // Nombre del archivo en disco + + + Presentador: string; //9 + SufijoPres: string; //3 + NomCliPres: string; //40 + EntRecepPres: string; //4 + OfiRecepPres: string; //4 + + + { El ordenante (El que emite y en nombre del cual se adeudan las domiciliaciones. Puede ser + una persona fsica o jurdica} + // el que cobra + Ordenante: string; //9 + SufijoOrd: string; //3 + NomCliOrd: string; //40 + EntOrde: string; //4 + OfiOrde: string; //4 + DcOrde: string; //2 + CcOrde: string; //2 + + // Datos Generales + + FecCargo: TDateTime; + FecSoporte: TDateTime; + TProc: string; //2 + + // el que paga + Referencia: string; //12 + NomTitDom: string; //40 + EntTitDom: string; //4 + OfiTitDom: string; //4 + DcTitDom: string; //2 + CcTitDom: string; //10 + NomTitCta: string; //40 + DomTitCta: string; //40 + PlzTitCta: string; //35 + CPtTitCta: string; //5 + + ImportePts: double; + ImporteEu: double; + CodDevol: string; // 6 + CodRefInt: string; // 10 + + CampConc: string; //40 + CampConc1: string; //40 + CampConc2: string; //40 + CampConc3: string; //40 + CampConc4: string; //40 + CampConc5: string; //40 + CampConc6: string; //40 + CampConc7: string; //40 + CampConc8: string; //40 + CampConc9: string; //40 + CampConc10: string; //40 + CampConc11: string; //40 + CampConc12: string; //40 + CampConc13: string; //40 + CampConc14: string; //40 + CampConc15: string; //40 + CampConc16: string; //40 + + + + constructor Create(AOwner: TComponent); override; + //destructor free; + procedure Abrir; + procedure IniOrdenan; + procedure IniRegistro; + procedure CompCabecera; + procedure CompOrdenante; + procedure CompRegistro; + procedure FinOrdenan; + procedure Cerrar; + property TotOrd: integer Read FTotOrd; + property TotRem: integer Read FTotRem; + { Public declarations } + published + property NomFichero: string Read FNomFic Write FNomFic; + property Procedimiento: TProcedimiento + Read prProced Write prProced default prPrimero; + property Euros: boolean Read FEuro Write FEuro default False; + property Depura: boolean Read FDepura Write FDepura default False; + property EnCasoError: TNotifyEvent Read FEnCasoError Write FEnCasoError; + { Published declarations } + end; + +procedure Register; + +implementation + +constructor TCVBNorma19CSB.Create(AOwner: TComponent); +begin + inherited Create(AOwner); + {Asignar la propiedades por defecto} + + _19_ := 19; + _58_ := 58; + +end; + +//******************************************************************************* + +procedure TCVBNorma19CSB.Abrir; +begin + HayError := False; + + + AssignFile(NFic, FNomFic); +{$I+} + rewrite(Nfic, 164); +{$I-} + if IOResult <> 0 then + error(0); + + iTotImpOrdEu := 0; + iTotImpOrdPts := 0; + iTotDomOrd := 0; + iTotRegOrd := 0; + + iTotImpCinEu := 0; + iTotImpCinPts := 0; + iTotDomCin := 0; + iTotRegCin := 0; + + IniOrdenan; + IniRegistro; + + if CRLF = '' then + CRLF := #13 + #10; + + if FEuro = False then + sPrimerosDigitos := '01' + else + sPrimerosDigitos := '51'; +end; + +procedure TCVBNorma19CSB.IniOrdenan; +begin + iTotImpOrdEu := 0; + iTotImpOrdPts := 0; + iTotDomOrd := 0; + iTotRegOrd := 0; + Ordenante := ''; + NomCliOrd := ''; + EntOrde := ''; + OfiOrde := ''; + DcOrde := ''; + CcOrde := ''; + + if _NORMA_ = _19_ then + TProc := '01' + else + if _NORMA_ = _58_ then + TProc := '06'; + +end; + +procedure TCVBNorma19CSB.IniRegistro; +begin + NomTitDom := ''; //40 + EntTitDom := ''; //4 + OfiTitDom := ''; //4 + DcTitDom := ''; //2 + CcTitDom := ''; //10 + ImportePts := 0; + ImporteEu := 0; + CodDevol := ''; //6 + CodRefInt := ''; //10 + CampConc1 := ''; //40 + CampConc2 := ''; //40 + CampConc3 := ''; //40 + CampConc4 := ''; //40 + CampConc5 := ''; //40 + CampConc6 := ''; //40 + CampConc7 := ''; //40 + CampConc8 := ''; //40 + CampConc9 := ''; //40 + CampConc10 := ''; //40 + CampConc11 := ''; //40 + CampConc12 := ''; //40 + CampConc13 := ''; //40 + CampConc14 := ''; //40 + CampConc15 := ''; //40 + CampConc16 := ''; //40 + NomTitCta := ''; //40 + DomTitCta := ''; //40 + PlzTitCta := ''; //35 + CPtTitCta := ''; //5 +end; + +procedure TCVBNorma19CSB.CompCabecera; +var + iX: integer; + cT, cIT: string; +begin + HayError := False; + + sReg := ''; + + ChequearDatos(1); +(* + if Presentador='' then Error(1); + if NomCliPres='' then Error(2); + if EntRecepPres='' then Error(4); + if OfiRecepPres='' then Error(5); +*) + + if _NORMA_ = _19_ then + sReg := sPrimerosDigitos + '80' + else + if _NORMA_ = _58_ then + sReg := sPrimerosDigitos + '70'; + + + Presentador := AjustaCIF(Presentador); + + sReg := sReg + Ajusta(Presentador, 'I', 9, '0'); //9 + sReg := sReg + Ajusta(SufijoPres, 'I', 3, '0'); //3 + sReg := sReg + Ajusta(FormatDateTime('ddmmyy', FecSoporte), 'I', 6, ' '); //6 + sReg := sReg + Ajusta('', 'I', 6, ' '); //6 + sReg := sReg + Ajusta(NomCliPres, 'D', 40, ' '); //40 + sReg := sReg + Ajusta('', 'I', 20, ' '); //20 + sReg := sReg + Ajusta(EntRecepPres, 'I', 4, '0'); //4 + sReg := sReg + Ajusta(OfiRecepPres, 'I', 4, '0'); //4 + sReg := sReg + Ajusta('', 'I', 12, ' '); //12 + sReg := sReg + Ajusta('', 'I', 40, ' '); //40 + sReg := sReg + Ajusta('', 'I', 14, ' '); //14 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = 164) then + Error(6); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegCin); + +end; + +procedure TCVBNorma19CSB.CompOrdenante; +begin + HayError := False; + sReg := ''; + + ChequearDatos(2); +(* + if Ordenante='' then Error(10); + if NomCliOrd='' then Error(13); + if EntOrde='' then Error(14); + if OfiOrde='' then Error(15); + if CcOrde='' then Error(17); +*) + + // Cdigo de Dato + if FEuro = False then + sPrimerosDigitos := '03' + else + sPrimerosDigitos := '53'; + + if _NORMA_ = _19_ then + sReg := sPrimerosDigitos + '80' + else + if _NORMA_ = _58_ then + sReg := sPrimerosDigitos + '70'; + + Ordenante := AjustaCIF(Ordenante); + + sReg := sReg + Ajusta(Ordenante, 'I', 9, '0'); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, '0'); //3 + sReg := sReg + Ajusta(FormatDateTime('ddmmyy', FecSoporte), 'I', 6, ' '); //6 + + if _NORMA_ = _19_ then + sReg := sReg + Ajusta(FormatDateTime('ddmmyy', FecCargo), 'I', 6, '0') //6 + else + if _NORMA_ = _58_ then + sReg := sReg + Ajusta('', 'I', 6, ' '); //6 + + sReg := sReg + Ajusta(NomCliOrd, 'D', 40, ' '); //40 + sReg := sReg + Ajusta(EntOrde, 'I', 4, '0'); //4 + sReg := sReg + Ajusta(OfiOrde, 'I', 4, '0'); // 4 + sReg := sReg + Ajusta(DcOrde, 'I', 2, '0'); // 2 + sReg := sReg + Ajusta(CcOrde, 'I', 10, '0'); // 10 + sReg := sReg + Ajusta('', 'I', 8, ' '); // 8 + + if _NORMA_ = _19_ then + TProc := '01' + else + if _NORMA_ = _58_ then + TProc := '06'; + + sReg := sReg + Ajusta(TProc, 'I', 2, ' '); // Norma 19="01", norma 58="06" // 2 + sReg := sReg + Ajusta('', 'I', 10, ' '); // 10 + sReg := sReg + Ajusta('', 'I', 40, ' '); // 40 + + if _NORMA_ = _58_ then + begin + sReg := sReg + Ajusta('', 'I', 2, ' '); + sReg := sReg + Ajusta('', 'I', 9, ' '); // provincia 9 caracteres + sReg := sReg + Ajusta('', 'I', 3, ' '); + end + else + if _NORMA_ = _19_ then + sReg := sReg + Ajusta('', 'I', 14, ' '); // 14 + + sReg := sReg + CRLF; //2 + + if not (length(sReg) = 164) then + Error(18); + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegOrd); + Inc(iTotRegCin); + +end; + +procedure TCVBNorma19CSB.CompRegistro; +var + sImporteEu, cT, cIT: string; + iP: integer; +begin + HayError := False; + sReg := ''; + + ChequearDatos(3); +(* + if Referencia='' then Error(21); + if NomTitDom='' then Error(22); + if EntTitDom='' then Error(23); + if OfiTitDom='' then Error(24); + if CcTitDom='' then Error(26); + if (ImportePts=0) and (FEuro=False) then Error(27); + if (ImporteEu=0) and (FEuro=True) then Error(28); +*) + + if (prProced = prSegundo) and ((CampConc1 <> '') or + (CampConc2 <> '') or (CampConc3 <> '') or + (CampConc4 <> '') or (CampConc5 <> '') or + (CampConc6 <> '') or (CampConc7 <> '') or + (CampConc8 <> '') or (CampConc9 <> '') or + (CampConc10 <> '') or (CampConc11 <> '') or + (CampConc12 <> '') or (CampConc13 <> '') or + (CampConc14 <> '') or (CampConc15 <> '') or (CampConc16 <> '')) then + Error(210); + if (prProced = prPrimero) and ((NomTitCta <> '') or + (DomTitCta <> '') or (PlzTitCta <> '') or (CPtTitCta <> '')) then + Error(211); + + + + if prProced = prPrimero then + begin + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + + if _NORMA_ = _19_ then + sReg := sPrimerosDigitos + '80' + else + if _NORMA_ = _58_ then + sReg := sPrimerosDigitos + '70'; + + sReg := sReg + Ajusta(Ordenante, 'I', 9, '0'); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, '0'); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, '0'); //12 + sReg := sReg + Ajusta(NomTitDom, 'D', 40, ' '); //40 + sReg := sReg + Ajusta(EntTitDom, 'I', 4, '0'); //4 + sReg := sReg + Ajusta(OfiTitDom, 'I', 4, '0'); //4 + sReg := sReg + Ajusta(DcTitDom, 'I', 2, '0'); // Creo que es:** //2 + sReg := sReg + Ajusta(CcTitDom, 'I', 10, '0'); //10 + + cT := EntTitDom + OfiTitDom + DcTitDom + CcTitDom; + if pos('0000000000', cT) > 0 then + if not (_NORMA_ = _58_) then + ChequearDatos(4); + + + if FEuro = False then {float} + begin + cIT := FormatFloat('0000000000', ImportePts); + + // sReg := sReg + Ajusta (IntToStr(ImportePts),'I',10,'0') //10 + sReg := sReg + Ajusta(cIT, 'I', 10, '0'); //10 + + end + else + begin + (* Creo que en Euros deben de ir los 2 decimales siempre, pero + no debe salir el punto decimal. O sea, los 2 ltimos dgitos son + siempre los decimales. Repito: Creo. + *) + Str(ImporteEu: 10: 2, sImporteEu); + iP := pos(',', sImporteEu); + if iP < 1 then + iP := pos('.', sImporteEu); + cT := copy(sImporteEu, 1, iP - 1); + sImporteEu := cT + copy(sImporteEu, iP + 1, 2); + + sReg := sReg + Ajusta(sImporteEu, 'I', 10, '0'); //10 + end; + + sReg := sReg + Ajusta(CodDevol, 'D', 6, ' '); //6 + sReg := sReg + Ajusta(CodRefInt, 'D', 10, ' '); //10 + sReg := sReg + Ajusta(CampConc1, 'D', 40, ' '); //40 + + if _NORMA_ = _58_ then + sReg := sReg + Ajusta(FormatDateTime('ddmmyy', FecCargo), 'D', 8, ' ') + else + if _NORMA_ = _19_ then + sReg := sReg + Ajusta('', 'I', 8, ' '); // 8 + + sReg := sReg + CRLF; //2 + + if not (length(sReg) = 164) then + Error(200); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + + Inc(iTotRegOrd); + Inc(iTotRegCin); + + + Inc(iTotDomOrd); ///////////////----------------- + Inc(iTotDomCin); ///////////////----------------- + + + iTotImpOrdPts := iTotImpOrdPts + StrToInt(cIT); //ImportePts; + iTotImpCinPts := iTotImpCinPts + ImportePts; + iTotImpOrdEu := iTotImpOrdEu + ImporteEu; + iTotImpCinEu := iTotImpCinEu + ImporteEu; + + + if (CampConc2 <> '') or (CampConc3 <> '') or (CampConc4 <> '') then + begin + sReg := ''; + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + sReg := sPrimerosDigitos + '81'; + sReg := sReg + Ajusta(Ordenante, 'I', 9, ' '); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, '0'); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, ' '); //12 + sReg := sReg + Ajusta(CampConc2, 'D', 40, ' '); //40 + sReg := sReg + Ajusta(CampConc3, 'D', 40, ' '); //40 + sReg := sReg + Ajusta(CampConc4, 'D', 40, ' '); //40 + sReg := sReg + Ajusta('', 'I', 14, ' '); //14 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = 164) then + Error(201); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegOrd); + Inc(iTotRegCin); + end; + + if (CampConc5 <> '') or (CampConc6 <> '') or (CampConc7 <> '') then + begin + sReg := ''; + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + sReg := sPrimerosDigitos + '82'; + sReg := sReg + Ajusta(Ordenante, 'I', 9, ' '); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, '0'); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, ' '); //12 + sReg := sReg + Ajusta(CampConc5, 'D', 40, ' '); //40 + sReg := sReg + Ajusta(CampConc6, 'D', 40, ' '); //40 + sReg := sReg + Ajusta(CampConc7, 'D', 40, ' '); //40 + sReg := sReg + Ajusta('', 'I', 14, ' '); //14 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = 164) then + Error(202); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegOrd); + Inc(iTotRegCin); + end; + + if (CampConc8 <> '') or (CampConc9 <> '') or (CampConc10 <> '') then + begin + sReg := ''; + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + sReg := sPrimerosDigitos + '83'; + sReg := sReg + Ajusta(Ordenante, 'I', 9, ' '); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, '0'); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, ' '); //12 + sReg := sReg + Ajusta(CampConc8, 'D', 40, ' '); //40 + sReg := sReg + Ajusta(CampConc9, 'D', 40, ' '); //40 + sReg := sReg + Ajusta(CampConc10, 'D', 40, ' '); //40 + sReg := sReg + Ajusta('', 'I', 14, ' '); //14 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = 164) then + Error(203); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegOrd); + Inc(iTotRegCin); + end; + + if (CampConc11 <> '') or (CampConc12 <> '') or (CampConc13 <> '') then + begin + sReg := ''; + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + sReg := sPrimerosDigitos + '84'; + sReg := sReg + Ajusta(Ordenante, 'I', 9, ' '); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, '0'); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, ' '); //12 + sReg := sReg + Ajusta(CampConc11, 'D', 40, ' '); //40 + sReg := sReg + Ajusta(CampConc12, 'D', 40, ' '); //40 + sReg := sReg + Ajusta(CampConc13, 'D', 40, ' '); //40 + sReg := sReg + Ajusta('', 'I', 14, ' '); //14 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = 164) then + Error(204); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegOrd); + Inc(iTotRegCin); + end; + + + if (CampConc14 <> '') or (CampConc15 <> '') or (CampConc16 <> '') then + begin + sReg := ''; + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + sReg := sPrimerosDigitos + '85'; + sReg := sReg + Ajusta(Ordenante, 'I', 9, ' '); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, '0'); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, ' '); //12 + sReg := sReg + Ajusta(CampConc14, 'D', 40, ' '); //40 + sReg := sReg + Ajusta(CampConc15, 'D', 40, ' '); //40 + sReg := sReg + Ajusta(CampConc16, 'D', 40, ' '); //40 + sReg := sReg + Ajusta('', 'I', 14, ' '); //14 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = 164) then + Error(205); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegOrd); + Inc(iTotRegCin); + end; + + if (NomTitCta <> '') or (DomTitCta <> '') or (PlzTitCta <> '') or (CPtTitCta <> '') then + begin + sReg := ''; + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + sReg := sPrimerosDigitos + '86'; + sReg := sReg + Ajusta(Ordenante, 'I', 9, ' '); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, '0'); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, ' '); //12 + sReg := sReg + Ajusta(NomTitCta, 'D', 40, ' '); //40 + sReg := sReg + Ajusta(DomTitCta, 'D', 40, ' '); //40 + sReg := sReg + Ajusta(PlzTitCta, 'D', 35, ' '); //35 + sReg := sReg + Ajusta(CPtTitCta, 'D', 5, ' '); //5 + sReg := sReg + Ajusta('', 'I', 14, ' '); //14 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = 164) then + Error(206); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegOrd); + Inc(iTotRegCin); + end; + end; + + if prProced = prSegundo then + begin + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + + sReg := sPrimerosDigitos + '80'; + sReg := sReg + Ajusta(Ordenante, 'I', 9, ' '); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, '0'); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, ' '); //12 + sReg := sReg + Ajusta(NomTitDom, 'D', 40, ' '); //40 + sReg := sReg + Ajusta(EntTitDom, 'I', 4, '0'); //4 + sReg := sReg + Ajusta(OfiTitDom, 'I', 4, '0'); //4 + sReg := sReg + Ajusta(DcTitDom, 'I', 2, '0'); //2 + sReg := sReg + Ajusta(CcTitDom, 'I', 10, '0'); //10 + if FEuro = False then {float} + begin + cIT := FormatFloat('0000000000', ImportePts); + // sReg := sReg + Ajusta (IntToStr(ImportePts),'I',10,'0') //10 + sReg := sReg + Ajusta(cIT, 'I', 10, '0'); //10 + end + else + begin + (* Creo que en Euros deben de ir los 2 decimales siempre, pero + no debe salir el punto decimal. O sea, los 2 ltimos dgitos son + siempre los decimales. Repito: Creo. + *) + Str(ImporteEu: 10: 2, sImporteEu); + iP := pos(',', sImporteEu); + if iP < 1 then + iP := pos('.', sImporteEu); + cT := copy(sImporteEu, 1, iP - 1); + sImporteEu := cT + copy(sImporteEu, iP + 1, 2); + + sReg := sReg + Ajusta(sImporteEu, 'I', 10, '0'); //10 + end; + + sReg := sReg + Ajusta(CodDevol, 'D', 6, ' '); //6 + sReg := sReg + Ajusta(CodRefInt, 'D', 10, ' '); //10 + sReg := sReg + Ajusta(CampConc, 'D', 17, ' '); //17 + sReg := sReg + Ajusta('', 'I', 23, ' '); //23 + sReg := sReg + Ajusta('', 'I', 8, ' '); //8 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = 164) then + Error(207); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegOrd); + Inc(iTotRegCin); + iTotImpOrdPts := iTotImpOrdPts + StrToInt(cIT); //ImportePts; + iTotImpCinPts := iTotImpCinPts + ImportePts; + iTotImpOrdEu := iTotImpOrdEu + ImporteEu; + iTotImpCinEu := iTotImpCinEu + ImporteEu; + + + if (NomTitCta <> '') or (DomTitCta <> '') or (PlzTitCta <> '') or (CPtTitCta <> '') then + begin + sReg := ''; + if NomTitCta = '' then + error(210); + + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + + sReg := sPrimerosDigitos + '86'; + sReg := sReg + Ajusta(Ordenante, 'I', 9, ' '); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, '0'); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, ' '); //12 + sReg := sReg + Ajusta(NomTitCta, 'D', 40, ' '); //40 + sReg := sReg + Ajusta(DomTitCta, 'D', 40, ' '); //40 + sReg := sReg + Ajusta(PlzTitCta, 'D', 35, ' '); //35 + sReg := sReg + Ajusta(CPtTitCta, 'D', 5, ' '); //5 + sReg := sReg + Ajusta('', 'I', 14, ' '); //14 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = 164) then + Error(208); + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegOrd); + Inc(iTotRegCin); + end; + + end; + + IniRegistro; +end; + + +procedure TCVBNorma19CSB.FinOrdenan; +var + sTotImpOrdEu, cT: string; + iP: integer; +begin + HayError := False; + sReg := ''; + + Inc(iTotRegOrd); + Inc(iTotRegCin); + + if FEuro = False then + sPrimerosDigitos := '08' // Ptas + else + sPrimerosDigitos := '58'; // Euros + + + if _NORMA_ = _19_ then + sReg := sPrimerosDigitos + '80' // Norma 19 / Norma 58=70 + else + if _NORMA_ = _58_ then + sReg := sPrimerosDigitos + '70'; + + Ordenante := AjustaCif(Ordenante); + sReg := sReg + Ajusta(Ordenante, 'I', 9, '0'); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, '0'); //3 + sReg := sReg + Ajusta('', 'D', 12, ' '); //12 + sReg := sReg + Ajusta('', 'D', 40, ' '); //40 + sReg := sReg + Ajusta('', 'D', 20, ' '); //20 + if FEuro = False then {float} + sReg := sReg + Ajusta(IntToStr(iTotImpOrdPts), 'I', 10, '0') //10 + else + begin + (* Creo que en Euros deben de ir los 2 decimales siempre, pero + no debe salir el punto decimal. O sea, los 2 ltimos dgitos son + siempre los decimales. Repito: Creo. + *) + Str(iTotImpOrdEu: 10: 2, sTotImpOrdEu); + iP := pos(',', sTotImpOrdEu); + if iP < 1 then + iP := pos('.', sTotImpOrdEu); + cT := copy(sTotImpOrdEu, 1, iP - 1); + sTotImpOrdEu := cT + copy(sTotImpOrdEu, iP + 1, 2); + sReg := sReg + Ajusta(sTotImpOrdEu, 'I', 10, '0'); //10 + end; + + sReg := sReg + Ajusta('', 'D', 6, ' '); //6 + sReg := sReg + Ajusta(IntToStr(iTotDomOrd), 'I', 10, '0'); //10 + sReg := sReg + Ajusta(IntToStr(iTotRegOrd), 'I', 10, '0'); //10 + sReg := sReg + Ajusta('', 'I', 20, ' '); //20 + sReg := sReg + Ajusta('', 'I', 18, ' '); //18 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = 164) then + Error(30); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); +(* + if Assigned (Impresion19) then + if FEuro=False + then Impresion19 (Self,Ordenante,NomCliOrd,IntToStr(iTotImpOrdPts)) + else Impresion19 (Self,Ordenante,NomCliOrd,sTotImpOrdEu); +*) + IniOrdenan; + +end; + +procedure TCVBNorma19CSB.Cerrar; +var + sTotImpCinEu, cT, cIT: string; + iP: integer; +begin + HayError := False; + sReg := ''; + + Inc(iTotRegCin); + + if FEuro = False then + sPrimerosDigitos := '09' + else + sPrimerosDigitos := '59'; + + if _NORMA_ = _19_ then + sReg := sPrimerosDigitos + '80' // 70 en norma 58 + else + if _NORMA_ = _58_ then + sReg := sPrimerosDigitos + '70'; + + Presentador := AjustaCIF(Presentador); + sReg := sReg + Ajusta(Presentador, 'I', 9, '0'); //9 + sReg := sReg + Ajusta(SufijoPres, 'I', 3, '0'); //3 + sReg := sReg + Ajusta('', 'D', 12, ' '); //12 + sReg := sReg + Ajusta('', 'D', 40, ' '); //40 + sReg := sReg + Ajusta('1', 'I', 4, '0'); + // Ordenantes. En este programa ser siempre = 1 // 4 + sReg := sReg + Ajusta('', 'D', 16, ' '); //16 + + if FEuro = False then {float} + begin + cIT := FormatFloat('0000000000', iTotImpCinPts); + // sReg := sReg + Ajusta (intToStr(iTotImpCinPts),'I',10,'0') //10 + sReg := sReg + Ajusta(cIT, 'I', 10, '0'); //10 + end + else + begin + (* Creo que en Euros deben de ir los 2 decimales siempre, pero + no debe salir el punto decimal. O sea, los 2 ltimos dgitos son + siempre los decimales. Repito: Creo. No tengo aqu las normas actualizadas para el euro. + *) + Str(iTotImpCinEu: 10: 2, sTotImpCinEu); + iP := pos(',', sTotImpCinEu); + if iP < 1 then + iP := pos('.', sTotImpCinEu); + cT := copy(sTotImpCinEu, 1, iP - 1); + sTotImpCinEu := cT + copy(sTotImpCinEu, iP + 1, 2); + sReg := sReg + Ajusta(sTotImpCinEu, 'I', 10, '0'); //10 + end; + sReg := sReg + Ajusta('', 'I', 6, ' '); //6 + sReg := sReg + Ajusta(IntToStr(iTotDomCin), 'I', 10, '0'); //10 + sReg := sReg + Ajusta(IntToStr(iTotRegCin), 'I', 10, '0'); //10 + sReg := sReg + Ajusta('', 'D', 20, ' '); //20 + sReg := sReg + Ajusta('', 'D', 18, ' '); //18 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = 164) then + Error(40); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + + + CloseFile(NFic); +end; + +procedure TCVBNorma19CSB.Error(iErr: integer); +begin + NrError := iErr; + HayError := True; + if Assigned(FEnCasoError) then + FEnCasoError(Self) + else + if FDepura = False then + begin + CloseFile(NFic); + raise Exception.Create('Error en la generacin del fichero'); + end; +end; + + + +procedure TCVBNorma19CSB.ChequearDatos(iParte: integer); +var + bError: boolean; +begin + bError := False; + + if iParte = 1 then + begin + if ((Presentador = '') or (NomCliPres = '') or + (EntRecepPres = '') or (OfiRecepPres = '')) then + begin + if Presentador = '' then + Presentador := '<--'; + if NomCliPres = '' then + NomCliPres := '<--'; + if EntRecepPres = '' then + EntRecepPres := '<--'; + if OfiRecepPres = '' then + OfiRecepPres := '<--'; + bError := True; + end; + end + else + if iParte = 2 then + begin + if ((Ordenante = '') or (NomCliOrd = '') or + (EntOrde = '') or (OfiOrde = '') or + (CcOrde = '')) then + begin + if Ordenante = '' then + Ordenante := '<--'; + if NomCliOrd = '' then + NomCliOrd := '<--'; + if EntOrde = '' then + EntOrde := '<--'; + if OfiOrde = '' then + OfiOrde := '<--'; + if CcOrde = '' then + CcOrde := '<--'; + bError := True; + end; + end + else + if (iParte = 3) or (iParte = 4) then + begin + if ((Referencia = '') or (NomTitDom = '') or + (EntTitDom = '') or (OfiTitDom = '') or + (ccTitDom = '')) then + begin + if Referencia = '' then + Referencia := '<--'; + if NomTitDom = '' then + NomTitDom := '<--'; + if EntTitDom = '' then + EntTitDom := '<--'; + if OfiTitDom = '' then + OfiTitDom := '<--'; + if ccTitDom = '' then + ccTitDom := '<--'; + bError := True; + end; + end; + + if bError then + ShowMessage('' + CRLF + + 'Faltan datos al procesar el siguiente registro: ' + CRLF + CRLF + + 'Cdigo Cli/Pro: ' + Referencia + CRLF + + 'Nombre Titular: ' + NomTitDom + CRLF + + 'Entidad Domiciliar: ' + EntTitDom + CRLF + + 'Oficina Domiciliar: ' + OfiTitDom + CRLF + + 'Cuenta Domiciliar: ' + ccTitDom + CRLF + + 'Presentador: ' + Presentador + CRLF + + 'Nombre Cliente Pres:' + NomCliPres + CRLF + + 'Entidad Receptora P:' + EntRecepPres + CRLF + + 'Oficina Receptora P:' + OfiRecepPres + CRLF + + 'Ordenante: ' + Ordenante + CRLF + + 'Nombre Cliente Ord.:' + NomCliOrd + CRLF + + 'Entidad Ordenante: ' + EntOrde + CRLF + + 'Oficina Ordenante: ' + OfiOrde + CRLF + + 'Cuenta Ordenante: ' + CcOrde + ); + + if iParte = 3 then + begin + if bError then + begin + if ((ImportePts = 0) and (FEuro = False)) or + ((ImporteEu = 0) and (FEuro = True)) then + begin + ShowMessage(' El importe no puede ser cero !!!'); + Error(27); + end; + end; + end; +end; + + +procedure Register; +begin + RegisterComponents('CVB', [TCVBNORMA19CSB]); +end; + + +end. diff --git a/Source/Modulos/Banca electronica/Utiles/CVBNorma34CSB.pas b/Source/Modulos/Banca electronica/Utiles/CVBNorma34CSB.pas new file mode 100644 index 0000000..ef5d73c --- /dev/null +++ b/Source/Modulos/Banca electronica/Utiles/CVBNorma34CSB.pas @@ -0,0 +1,780 @@ +{------------------------------------------------------------------ + * + * Proyecto : + * Unit : CVBNorma34CSB + * Propsito: Solucionar mltiples problemas con este componente y + * adaptarlo para la norma34 del BSCH + * + * + * Autor : + * Historia : + * Fecha : + * Notas : + * + ------------------------------------------------------------------} + +unit CVBNorma34CSB; + +interface + +uses + Messages, SysUtils, Classes, Dialogs, CVBUtils; + // const CVBVerNorma34CSB = 'D2 - V 1.0.0'; + // primera version 01 de Febrero de 1999 + +type + TModalidad = (moTransfer, moCheques); + TTipoNorma = (tnEstandar, tnBSCH); + + TCVBNorma34CSB = class(TComponent) + private + pReg: array[0..73] of char; // 72 + CRLF + moModalidad: TModalidad; + + tnTipoNorma: TTipoNorma; + + HayError: boolean; + + FTotOrd: integer; + FEuro: boolean; + FDepura: boolean; + FNomFic: string; + + s1DigCodReg: string; // 1 + s2DigCodReg: string; // 1 + sCodOpera: string; // 2 + NFic: file; + sReg: string; + + _MSK_EU_: string; + _LL_: integer; + + iTotImpCinEu: double; + // iTotImpCinPts: Integer; + iTot010Cin: integer; + iTotRegCin: integer; + FEnCasoError: TNotifyEvent; + + { Private declarations } + protected + procedure Error(iErr: integer); dynamic; + { Protected declarations } + public + Impresion34: + procedure(O: TCVBNorma34CSB; Ordenante, NomOrd: string; Importe: string); + + NrError: integer; + FinRegistro: string; + iLotes: integer; + bEsPrimerLote: boolean; + + + { El ordenante (El que emite y en nombre del cual se pagan las Transferencias. Puede ser + una persona fsica o jurdica} + + // el que paga + Ordenante: string; //10 + + FecEnvSoporte: TDateTime; + FecEmiOrdenes: TDateTime; + EntOrd: string; //4 + SucOrd: string; //4 + CtaOrd: string; //10 + DetallCgo: string; //1 + cccOrd: string; //2 + + NomOrd: string; //36 + DomOrd: string; //36 + PlzOrd: string; //36 + Nom2Ord: string; //36 + Dom2Ord: string; //36 + + + + Referencia: string; //12 + // el que cobra + + Beneficiario: string; //12 + // ImportePts: Integer; + ImporteEu: double; + EntBen: string; //4 + SucBen: string; //4 + CtaBen: string; //10 + cccBen: string; //2 + Gastos: string; //1 + Concepto: string; //1 + + FecConcepto: TDateTime; // Fecha de libramiento del recibo + // Lo uso en fechadelconcepto del BSCH 1 reg.de beneficiario + + NomBen: string; //36 + DomBen1: string; //36 + DomBen2: string; //36 + CPTLPlzBen: string; //36 + ProvBen: string; //36 + ConcepBen1: string; //36 + ConcepBen2: string; //36 + DNIBen: string; //18 + NIdBen: string; //18 + + + constructor Create(AOwner: TComponent); override; + //destructor free; + procedure Abrir; + procedure IniRegistro; + procedure CompCabecera; + procedure CompRegistro; + procedure Cerrar; + property TotOrd: integer Read FTotOrd; + { Public declarations } + published + property NomFichero: string Read FNomFic Write FNomFic; + property Modalidad: TModalidad Read moModalidad Write moModalidad default moTransfer; + property Euros: boolean Read FEuro Write FEuro default False; + property Depura: boolean Read FDepura Write FDepura default False; + property EnCasoError: TNotifyEvent Read FEnCasoError Write FEnCasoError; + property TipoNorma: TTipoNorma Read tnTipoNorma Write tnTipoNorma default + tnEstandar; + { Published declarations } + end; + +procedure Register; + +implementation + +const + _ESP_ = ' '; + +const + _CERO_ = '0'; + + +constructor TCVBNorma34CSB.Create(AOwner: TComponent); +begin + inherited Create(AOwner); + {Asignar la propiedades por defecto} + FNomFic := 'CSB34.TXT'; + + _MSK_EU_ := '0000000000.00'; + + _LL_ := 74; // 72 + CRLF +end; + +//******************************************************************************* + +procedure TCVBNorma34CSB.Abrir; +begin + HayError := False; + + AssignFile(NFic, FNomFic); +{$I+} + rewrite(Nfic, _LL_); +{$I-} + if IOResult <> 0 then + error(0); + + iTotImpCinEu := 0; + // iTotImpCinPts:=0; + iTotRegCin := 0; + + IniRegistro; + + if FinRegistro = '' then + FinRegistro := #13 + #10; + + if FEuro = False then + s1DigCodReg := _CERO_ + else + s1DigCodReg := '5'; +end; + + +procedure TCVBNorma34CSB.IniRegistro; +begin + Beneficiario := ''; //12 + // ImportePts := 0; + ImporteEu := 0; + + EntBen := ''; //4 + SucBen := ''; //4 + CtaBen := ''; //10 + cccBen := ''; //2 + + Gastos := ''; //1 + Concepto := ''; //1 + DetallCgo := _ESP_; + + NomBen := ''; //36 + DomBen1 := ''; //36 + DomBen2 := ''; //36 + CPTLPlzBen := ''; //36 + ProvBen := ''; //36 + ConcepBen1 := ''; //36 + ConCepBen2 := ''; //36 + DNIBen := ''; //18 + NIdBen := ''; //18 + +end; + +procedure TCVBNorma34CSB.CompCabecera; +begin + iTotImpCinEu := 0; + iTot010Cin := 0; + iTotRegCin := 0; + + + HayError := False; + //0356 + //Obligatorios + if Ordenante = '' then + Ordenante := _CERO_; + if EntOrd = '' then + EntOrd := _CERO_; + if SucOrd = '' then + SucOrd := _CERO_; + if CtaOrd = '' then + CtaOrd := _CERO_; + if (DetallCgo <> _ESP_) and (DetallCgo <> _CERO_) and (DetallCgo <> '1') then + Error(5); + s2DigCodReg := '03'; + sCodOpera := '56'; + sReg := s2DigCodReg + sCodOpera; //4 + + Ordenante := AjustaCif(Ordenante); + sReg := sReg + Ajusta(Ordenante, 'D', 10, _ESP_); //10 + + case TipoNorma of + tnEstandar: sReg := sReg + Ajusta('', 'I', 12, _ESP_); //12 + tnBSCH: sReg := sReg + 'PAGOCTABANCO'; + end; + + sReg := sReg + '001'; //3 + sReg := sReg + Ajusta(FormatDateTime('ddmmyy', FecEnvSoporte), 'I', 6, _ESP_); //6 + sReg := sReg + Ajusta(FormatDateTime('ddmmyy', FecEmiOrdenes), 'I', 6, _ESP_); //6 + + case TipoNorma of + tnEstandar: sReg := sReg + Ajusta(EntOrd, 'I', 4, _CERO_); //4 + tnBSCH: sReg := sReg + '0049'; + end; + + sReg := sReg + Ajusta(SucOrd, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta(CtaOrd, 'I', 10, _CERO_); //10 + + case TipoNorma of + tnEstandar: sReg := sReg + Ajusta(DetallCgo, 'D', 1, _ESP_); //1 + tnBSCH: sReg := sReg + Ajusta(DetallCgo, 'D', 1, _CERO_); + end; + + case TipoNorma of + tnEstandar: sReg := sReg + Ajusta('', 'I', 3, _ESP_); //3 + tnBSCH: + begin + sReg := sReg + Ajusta('', 'I', 2, _ESP_); + sReg := sReg + 'N'; + end; + end; + + sReg := sReg + Ajusta(cccOrd, 'I', 2, _ESP_); //2 + + case TipoNorma of + tnEstandar: sReg := sReg + Ajusta('', 'I', 7, _ESP_); //7 + tnBSCH: + begin + sReg := sReg + 'T 8'; // T--8 cuatro caracteres + + // /////////////////////////////////////////////////////////////////////////////////////// + + + { + if iLotes > 0 then + begin + if ((iLotes>1) and bEsPrimerLote) then + sReg := sReg + Ajusta( IntToStr(iLotes), 'I', 2, _CERO_ ) + else + sReg := sReg + Ajusta( '', 'I', 2, _CERO_ ); + end + else + sReg := sReg + Ajusta( '', 'I',2,_CERO_); + } + sReg := sReg + '01'; //Ajusta(IntToStr(iLotes),'I',2,_CERO_); + // Esta lnea de arriba sustituye a todo lo que hay en comentarios. Porque de momento + // se v a hacer un slo vencimiento para todos los pagos. El da que se quiera enviar + // distintos vencimientos, habr que quitar esta lnea, des'comentar' lo de arriba y + // cambiar en Remesas para que haga bucles segn las fechas de vencimientos y vaya + // creando cabecera->cuerpo->pie por cada uno de los vencimientos. + + + // /////////////////////////////////////////////////////////////////////////////////////// + + + sReg := sReg + '3'; + end; + end; + + sReg := sReg + FinRegistro; //2 + + if not (length(sReg) = _LL_) then + Error(6); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegCin); + + sReg := s2DigCodReg + sCodOpera; + sReg := sReg + Ajusta(Ordenante, 'D', 10, _ESP_); //10 + + case TipoNorma of + tnEstandar: sReg := sReg + Ajusta('', 'I', 12, _ESP_); //12 + tnBSCH: sReg := sReg + 'PAGOCTABANCO'; + end; + + sReg := sReg + '002'; //3 + sReg := sReg + Ajusta(NomOrd, 'D', 36, _ESP_); //36 + sReg := sReg + Ajusta('', 'I', 7, _ESP_); //7 + sReg := sReg + FinRegistro; //2 + + if not (length(sReg) = _LL_) then + Error(7); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegCin); + + sReg := s2DigCodReg + sCodOpera; + sReg := sReg + Ajusta(Ordenante, 'D', 10, _ESP_); //10 + + case TipoNorma of + tnEstandar: sReg := sReg + Ajusta('', 'I', 12, _ESP_); //12 + tnBSCH: sReg := sReg + 'PAGOCTABANCO'; + end; + + sReg := sReg + '003'; //3 + sReg := sReg + Ajusta(DomOrd, 'D', 36, _ESP_); //36 + sReg := sReg + Ajusta('', 'I', 7, _ESP_); //7 + sReg := sReg + FinRegistro; //2 + + if not (length(sReg) = _LL_) then + Error(8); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegCin); + + sReg := s2DigCodReg + sCodOpera; + sReg := sReg + Ajusta(Ordenante, 'D', 10, _ESP_); //10 + + case TipoNorma of + tnEstandar: sReg := sReg + Ajusta('', 'I', 12, _ESP_); //12 + tnBSCH: sReg := sReg + 'PAGOCTABANCO'; + end; + + sReg := sReg + '004'; //3 + sReg := sReg + Ajusta(PlzOrd, 'D', 36, _ESP_); //36 + sReg := sReg + Ajusta('', 'I', 7, _ESP_); //7 + sReg := sReg + FinRegistro; //2 + + if not (length(sReg) = _LL_) then + Error(9); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegCin); + + if TipoNorma = tnEstandar then + begin + // Opcionales + if (Nom2Ord = '') and (Dom2Ord <> '') then + Error(12); + if Nom2Ord <> '' then + begin + sReg := s2DigCodReg + sCodOpera; + sReg := sReg + Ajusta(Ordenante, 'D', 10, _ESP_); //10 + sReg := sReg + Ajusta('', 'D', 12, _ESP_); //12 + sReg := sReg + '007'; //3 + sReg := sReg + Ajusta(Nom2Ord, 'D', 36, _ESP_); //36 + sReg := sReg + Ajusta('', 'I', 7, _ESP_); //7 + sReg := sReg + FinRegistro; //2 + + if not (length(sReg) = _LL_) then + Error(10); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegCin); + end; + + if Dom2Ord <> '' then + begin + sReg := s2DigCodReg + sCodOpera; + sReg := sReg + Ajusta(Ordenante, 'D', 10, _ESP_); //10 + sReg := sReg + Ajusta('', 'D', 12, _ESP_); //12 + sReg := sReg + '008'; //3 + sReg := sReg + Ajusta(Dom2Ord, 'D', 36, _ESP_); //36 + sReg := sReg + Ajusta('', 'I', 7, _ESP_); //7 + sReg := sReg + FinRegistro; //2 + + if not (length(sReg) = _LL_) then + Error(11); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegCin); + end; + end; +end; + + + + +procedure TCVBNorma34CSB.CompRegistro; +var + sImporteEu, cIT: string; + iP: integer; +begin + HayError := False; + sReg := ''; + if Ordenante = '' then + Ordenante := _CERO_; + if Referencia = '' then + Referencia := _CERO_; + + Referencia := AjustaCif(Referencia); + DNIBen := AjustaCif(DNIBen); + +(* + if (ImportePts=0) and (FEuro=False) then + Error(23); +*) + if (ImporteEu = 0) and (FEuro = True) then + Error(24); + if (Gastos <> '1') and (Gastos <> '2') then + Error(25); + if (Concepto <> '1') and (Concepto <> '8') and (Concepto <> '9') then + Error(26); + + s2DigCodReg := '06'; + + case TipoNorma of + tnEstandar: + begin + if moModalidad = moTransfer then + sCodOpera := '56' + else + if moModalidad = moCheques then + sCodOpera := '57'; + end; + tnBSCH: sCodOpera := '57'; + end; + sReg := s2DigCodReg + sCodOpera; + + sReg := sReg + Ajusta(Ordenante, 'D', 10, _ESP_); //10 + sReg := sReg + Ajusta(Referencia, 'D', 12, _ESP_); //12 + sReg := sReg + '010'; //3 + + // if FEuro=False then + // sReg := sReg + Ajusta (IntToStr(ImportePts),'D',12,_CERO_) //12 + // else + begin + // Str(ImporteEu:12:2,sImporteEu); + + sImporteEu := FormatFloat(_MSK_EU_, ImporteEu); + iP := pos(',', sImporteEu); + if iP < 1 then + iP := pos('.', sImporteEu); + cIT := copy(sImporteEu, 1, iP - 1); + sImporteEu := cIT + copy(sImporteEu, iP + 1, 2); + sReg := sReg + Ajusta(sImporteEu, 'I', 12, _CERO_); + + end; + + case TipoNorma of + tnEstandar: + begin + sReg := sReg + Ajusta(EntBen, 'I', 4, _CERO_); + //4 + sReg := sReg + Ajusta(SucBen, 'I', 4, _CERO_); + //4 + sReg := sReg + Ajusta(CtaBen, 'I', 10, _CERO_); + //10 + end; + tnBSCH: sReg := sReg + Ajusta('', 'I', 4 + 4 + 10, _ESP_); + end; + + case TipoNorma of + tnEstandar: sReg := sReg + Ajusta(Gastos, 'D', 1, _ESP_); //1 + tnBSCH: sReg := sReg + '1'; + end; + case TipoNorma of + tnEstandar: sReg := sReg + Ajusta(Concepto, 'D', 1, _ESP_); //1 + tnBSCH: sReg := sReg + '9'; + end; + case TipoNorma of + tnEstandar: sReg := sReg + Ajusta('', 'I', 2, _ESP_); //2 + tnBSCH: + begin + if ImporteEu >= 0 then + sReg := sReg + _CERO_ // si es positivo el importe + else + sReg := sReg + '1'; // si es negativo el importe + sReg := sReg + _ESP_; + end; + end; + case TipoNorma of + tnEstandar: sReg := sReg + Ajusta(cccBen, 'D', 2, _CERO_); //2 + tnBSCH: sReg := sReg + Ajusta('', 'D', 2, _ESP_); + end; + case TipoNorma of + tnEstandar: sReg := sReg + Ajusta('', 'I', 7, _ESP_); //7 + tnBSCH: + begin + sReg := sReg + FormatDateTime('ddmmyy', FecConcepto); + sReg := sReg + _ESP_; + end; + end; + + sReg := sReg + FinRegistro; //2 + + if not (length(sReg) = _LL_) then + Error(27); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + + Inc(iTot010Cin); + Inc(iTotRegCin); + // iTotImpCinPts := iTotImpCinPts+ImportePts; + iTotImpCinEu := iTotImpCinEu + StrToFloat(sImporteEu); + + + sReg := s2DigCodReg + sCodOpera; //4 + sReg := sReg + Ajusta(Ordenante, 'D', 10, _ESP_); //10 + sReg := sReg + Ajusta(Referencia, 'D', 12, _ESP_); //12 + sReg := sReg + '011'; //3 + sReg := sReg + Ajusta(NomBen, 'D', 36, _ESP_); //36 + sReg := sReg + Ajusta('', 'I', 7, _ESP_); //7 + sReg := sReg + FinRegistro; //2 + + if not (length(sReg) = _LL_) then + Error(28); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegCin); + + //obligatorio en transferencias + if (DomBen1 <> '') or (moModalidad = moTransfer) then + begin + sReg := s2DigCodReg + sCodOpera; //4 + sReg := sReg + Ajusta(Ordenante, 'D', 10, _ESP_); //10 + sReg := sReg + Ajusta(Referencia, 'D', 12, _ESP_); //12 + sReg := sReg + '012'; //3 + sReg := sReg + Ajusta(DomBen1, 'D', 36, _ESP_); //36 + sReg := sReg + Ajusta('', 'I', 7, _ESP_); //7 + sReg := sReg + FinRegistro; //2 + + if not (length(sReg) = _LL_) then + Error(29); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegCin); + end; + + if DomBen2 <> '' then + begin + sReg := s2DigCodReg + sCodOpera; //4 + sReg := sReg + Ajusta(Ordenante, 'D', 10, _ESP_); //10 + sReg := sReg + Ajusta(Referencia, 'D', 12, _ESP_); //12 + sReg := sReg + '013'; //3 + sReg := sReg + Ajusta(DomBen2, 'D', 36, _ESP_); //36 + sReg := sReg + Ajusta('', 'I', 7, _ESP_); //7 + sReg := sReg + FinRegistro; //2 + + if not (length(sReg) = _LL_) then + Error(200); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegCin); + end; + + // Obligatorio en transferencias + if (DomBen1 <> '') or (moModalidad = moTransfer) then + begin + sReg := s2DigCodReg + sCodOpera; //4 + sReg := sReg + Ajusta(Ordenante, 'D', 10, _ESP_); //10 + sReg := sReg + Ajusta(Referencia, 'D', 12, _ESP_); //12 + sReg := sReg + '014'; //3 + sReg := sReg + Ajusta(CPTLPlzBen, 'D', 36, _ESP_); //36 + sReg := sReg + Ajusta('', 'I', 7, _ESP_); //7 + sReg := sReg + FinRegistro; //2 + + if not (length(sReg) = _LL_) then + Error(201); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegCin); + end; + + + if ProvBen <> '' then + begin + sReg := s2DigCodReg + sCodOpera; //4 + sReg := sReg + Ajusta(Ordenante, 'D', 10, _ESP_); //10 + sReg := sReg + Ajusta(Referencia, 'D', 12, _ESP_); //12 + sReg := sReg + '015'; //3 + sReg := sReg + Ajusta(ProvBen, 'D', 36, _ESP_); //36 + sReg := sReg + Ajusta('', 'I', 7, _ESP_); //7 + sReg := sReg + FinRegistro; //2 + + if not (length(sReg) = _LL_) then + Error(202); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegCin); + end; + + + if ConcepBen1 <> '' then + begin + sReg := s2DigCodReg + sCodOpera; //4 + sReg := sReg + Ajusta(Ordenante, 'D', 10, _ESP_); //10 + sReg := sReg + Ajusta(Referencia, 'D', 12, _ESP_); //12 + sReg := sReg + '016'; //3 + sReg := sReg + Ajusta(ConcepBen1, 'D', 36, _ESP_); //36 + sReg := sReg + Ajusta('', 'I', 7, _ESP_); //7 + sReg := sReg + FinRegistro; //2 + + if not (length(sReg) = _LL_) then + Error(203); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegCin); + end; + + if (ConcepBen2 <> '') or (TipoNorma = tnBSCH) then + begin + sReg := s2DigCodReg + sCodOpera; //4 + sReg := sReg + Ajusta(Ordenante, 'D', 10, _ESP_); //10 + sReg := sReg + Ajusta(Referencia, 'D', 12, _ESP_); //12 + sReg := sReg + '017'; //3 + + case TipoNorma of + tnEstandar: sReg := sReg + Ajusta(ConcepBen2, 'D', 36, _ESP_); //36 + tnBSCH: sReg := sReg + Ajusta(Referencia, 'D', 36, _ESP_); + // ???????????????? aqu qu v?????? + end; + + sReg := sReg + Ajusta('', 'I', 7, _ESP_); //7 + sReg := sReg + FinRegistro; //2 + + if not (length(sReg) = _LL_) then + Error(204); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegCin); + end; + + if TipoNorma = tnEstandar then + begin + if (DNIBen <> '') or (NIdBen <> '') then + begin + sReg := s2DigCodReg + sCodOpera; //4 + sReg := sReg + Ajusta(Ordenante, 'D', 10, _ESP_); //10 + sReg := sReg + Ajusta(Referencia, 'D', 12, _ESP_); //12 + sReg := sReg + '018'; //3 + sReg := sReg + Ajusta(DNIBen, 'D', 18, _ESP_); //18 + sReg := sReg + Ajusta(NIdBen, 'D', 18, _ESP_); //18 + sReg := sReg + Ajusta('', 'I', 7, _ESP_); //7 + sReg := sReg + FinRegistro; //2 + + if not (length(sReg) = _LL_) then + Error(205); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegCin); + end; + end; + + IniRegistro; +end; + +procedure TCVBNorma34CSB.Cerrar; +var + sTotImpCinEu, cIT: string; + iP: integer; +begin + HayError := False; + sReg := ''; + + Inc(iTotRegCin); + + case TipoNorma of + tnEstandar: sReg := '0856'; + //+ s1DigCodReg + s2DigCodReg + sCodOpera; //4 + tnBSCH: sReg := '0856'; //'0356'; + end; + + sReg := sReg + Ajusta(Ordenante, 'D', 10, _ESP_); //9 + sReg := sReg + Ajusta('', 'D', 12, _ESP_); //3 + sReg := sReg + Ajusta('', 'D', 3, _ESP_); //3 + // if FEuro=False then + // sReg := sReg + Ajusta (IntToStr(iTotImpCinPts),'I',12,_CERO_) //10 + // else + begin + sTotImpCinEu := FormatFloat(_MSK_EU_, iTotImpCinEu); + iP := pos(',', sTotImpCinEu); + if iP < 1 then + iP := pos('.', sTotImpCinEu); + cIT := copy(sTotImpCinEu, 1, iP - 1); + sTotImpCinEu := cIT + copy(sTotImpCinEu, iP + 1, 2); + sReg := sReg + Ajusta(sTotImpCinEu, 'I', 12, _CERO_); + end; + sReg := sReg + Ajusta(IntToStr(iTot010Cin), 'I', 8, _CERO_); //10 + sReg := sReg + Ajusta(IntToStr(iTotRegCin), 'I', 10, _CERO_); //10 + sReg := sReg + Ajusta('', 'D', 6, _ESP_); //20 + sReg := sReg + Ajusta('', 'D', 7, _ESP_); //18 + sReg := sReg + FinRegistro; //2 + + if not (length(sReg) = _LL_) then + Error(30); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + if Assigned(Impresion34) then + // if FEuro=False + // then Impresion34 (Self,Ordenante,NomOrd,IntToStr(iTotImpCinPts)) + // else + Impresion34(Self, Ordenante, NomOrd, sTotImpCinEu); + + + + + CloseFile(NFic); +end; + +procedure TCVBNorma34CSB.Error(iErr: integer); +begin + NrError := iErr; + HayError := True; + if Assigned(FEnCasoError) then + FEnCasoError(Self) + else + if FDepura = False then + begin + CloseFile(NFic); + raise Exception.Create('Error en la generacin del fichero'); + end; +end; + +procedure Register; +begin + RegisterComponents('CVB', [TCVBNORMA34CSB]); +end; + +end. diff --git a/Source/Modulos/Banca electronica/Utiles/CVBReg.pas b/Source/Modulos/Banca electronica/Utiles/CVBReg.pas new file mode 100644 index 0000000..c9c63cd --- /dev/null +++ b/Source/Modulos/Banca electronica/Utiles/CVBReg.pas @@ -0,0 +1,21 @@ +unit CVBReg; + +{ + Copyright (C) 1999 by Carlos Vieites Bosch +} + +interface + +procedure Register; + +implementation + +uses + Classes, CVBNorma19CSB, CVBNorma1958CSB, CVBNorma34CSB, CVBUtils; + +procedure Register; +begin + RegisterComponents('Cai', [TCVBNORMA19CSB, TCVBNORMA1958CSB, TCVBNORMA34CSB]); +end; + +end. diff --git a/Source/Modulos/Banca electronica/Utiles/CVBUtils.pas b/Source/Modulos/Banca electronica/Utiles/CVBUtils.pas new file mode 100644 index 0000000..f2b87e8 --- /dev/null +++ b/Source/Modulos/Banca electronica/Utiles/CVBUtils.pas @@ -0,0 +1,58 @@ + +unit CVBUtils; + +interface + +uses SysUtils; + +function Trim(const cString: string): string; +function Replicate(c: char; nLen: integer): string; +function Ajusta(sCampo, sOrientacion: string; iLongitud: integer; sRelleno: char): string; + +function AjustaCIF(sCampo: string): string; + + +implementation + +function AjustaCIF(sCampo: string): string; + // Quita cualquier carcter no vlido del cif,nif +var + iX: integer; +begin + Result := ''; + sCampo := UpperCase(sCampo); + + if length(sCampo) < 1 then + sCampo := '0'; + + for iX := 0 to length(sCampo) do + if (sCampo[iX] in ['0'..'9', 'A'..'Z']) then + Result := Result + sCampo[iX]; +end; + + +function Trim(const cString: string): string; +var + I: integer; +begin + Result := TrimLeft(TrimRight(cString)); +end; + +function Replicate(c: char; nLen: integer): string; +begin + Result := stringOfChar(c, nLen); +end; + +function Ajusta(sCampo, sOrientacion: string; iLongitud: integer; sRelleno: char): string; +begin + sCampo := Trim(sCampo); + if uppercase(sOrientacion) = 'I' then + Result := Replicate(sRelleno, iLongitud - Length(sCampo)) + sCampo + else + Result := sCampo + Replicate(sRelleno, iLongitud - Length(sCampo)); + + if length(Result) > iLongitud then + Result := copy(Result, 1, iLongitud); +end; + +end. diff --git a/Source/Modulos/Banca electronica/Views/BancaElectronica_view.bdsproj b/Source/Modulos/Banca electronica/Views/BancaElectronica_view.bdsproj new file mode 100644 index 0000000..322c0cc --- /dev/null +++ b/Source/Modulos/Banca electronica/Views/BancaElectronica_view.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + BancaElectronica_view.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Banca electronica/Views/BancaElectronica_view.dpk b/Source/Modulos/Banca electronica/Views/BancaElectronica_view.dpk new file mode 100644 index 0000000..1f375ba Binary files /dev/null and b/Source/Modulos/Banca electronica/Views/BancaElectronica_view.dpk differ diff --git a/Source/Modulos/Banca electronica/Views/BancaElectronica_view.dproj b/Source/Modulos/Banca electronica/Views/BancaElectronica_view.dproj new file mode 100644 index 0000000..c213c82 --- /dev/null +++ b/Source/Modulos/Banca electronica/Views/BancaElectronica_view.dproj @@ -0,0 +1,580 @@ + + + {318cdb6c-0c6b-444c-81a7-75d2547d33e7} + BancaElectronica_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\BancaElectronica_view.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + BancaElectronica_view.dpk + + + + + + + MainSource + + + + + +
fEditorExportacionNorma19
+
+
+
+ + diff --git a/Source/Modulos/Banca electronica/Views/BancaElectronica_view.rc b/Source/Modulos/Banca electronica/Views/BancaElectronica_view.rc new file mode 100644 index 0000000..e69de29 diff --git a/Source/Modulos/Banca electronica/Views/BancaElectronica_view.res b/Source/Modulos/Banca electronica/Views/BancaElectronica_view.res new file mode 100644 index 0000000..36f26e2 Binary files /dev/null and b/Source/Modulos/Banca electronica/Views/BancaElectronica_view.res differ diff --git a/Source/Modulos/Banca electronica/Views/uBancaElectronicaViewRegister.pas b/Source/Modulos/Banca electronica/Views/uBancaElectronicaViewRegister.pas new file mode 100644 index 0000000..2923de8 --- /dev/null +++ b/Source/Modulos/Banca electronica/Views/uBancaElectronicaViewRegister.pas @@ -0,0 +1,46 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uBancaElectronicaViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorExportacionNorma19; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorExportacionNorma19, 'EditorExportacionNorma19'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorExportacionNorma19); +end; + +end. diff --git a/Source/Modulos/Banca electronica/Views/uEditorExportacionNorma19.dfm b/Source/Modulos/Banca electronica/Views/uEditorExportacionNorma19.dfm new file mode 100644 index 0000000..b1a0ec1 --- /dev/null +++ b/Source/Modulos/Banca electronica/Views/uEditorExportacionNorma19.dfm @@ -0,0 +1,280 @@ +object fEditorExportacionNorma19: TfEditorExportacionNorma19 + Left = 0 + Top = 0 + ActiveControl = edtCodEntidad + BorderStyle = bsDialog + Caption = 'Volcado de remesas a disco (Norma 19)' + ClientHeight = 313 + ClientWidth = 389 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poMainFormCenter + OnCreate = FormCreate + DesignSize = ( + 389 + 313) + PixelsPerInch = 96 + TextHeight = 13 + object Label2: TLabel + Left = 24 + Top = 96 + Width = 90 + Height = 13 + Caption = 'Entidad receptora:' + end + object Label3: TLabel + Left = 24 + Top = 123 + Width = 42 + Height = 13 + Caption = 'Agencia:' + end + object Label4: TLabel + Left = 24 + Top = 153 + Width = 78 + Height = 13 + Caption = 'Fecha de cargo:' + end + object pnlHeader: TPanel + Left = 0 + Top = 0 + Width = 656 + Height = 64 + Align = alTop + BevelOuter = bvNone + Color = clWhite + Padding.Left = 25 + Padding.Top = 8 + Padding.Right = 25 + Padding.Bottom = 8 + ParentBackground = False + TabOrder = 5 + object lblTitle: TLabel + AlignWithMargins = True + Left = 25 + Top = 8 + Width = 606 + Height = 13 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 0 + Margins.Bottom = 8 + Align = alTop + Caption = 'Volcado de remesas a disco' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + ExplicitWidth = 135 + end + object lblComments: TLabel + AlignWithMargins = True + Caption = 'Introduzca los siguientes datos para realizar el volcado' + Left = 50 + Top = 29 + Width = 581 + Height = 27 + Margins.Left = 25 + Margins.Top = 0 + Margins.Right = 0 + Align = alClient + ExplicitWidth = 3 + ExplicitHeight = 13 + end + end + object Image1: TImage + Left = 345 + Top = 15 + Width = 28 + Height = 28 + AutoSize = True + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000002CA4944415478DAADD55F4853 + 511C07F0DF25C49012DA8B1085A14581E46EAD19A3D05885CA8CA251D04325BD + D89342BEF5B087E8CD0C7AA90916E5F0A558C8989935872C866C63EE4F5BB9A8 + 508CB27AB01552F3EE4F3BBFED1E76B7BBED8E7B7F2078CFBDDCCF39BF73EE77 + 8CF575280312CA785ACD4879AE5A31043C7FAABDE243CF1D61B87DC70C81D907 + B2D1AA603A9D86296704548D0D70C3745780AAAFD833A189BE9A265111241897 + 4CC3B4EB1DE8D816887D5EA32862E12F00C1EBCA80630C03FD090E382E05AF16 + 62D8523A91260318BB59308DD89501138718A81FBE07639787E0E2AF8DEC2A53 + F0F4851BEF8D3B5288C5FFFC8551F35CAEB5EDBB406A6B4B401E4B8C0EE1F5E3 + 2040DFDA3AB6F6DCCD058A91499031D201DFDB1590DA5E01588CF14550FDF20F + B860F2E27557C75E8AE5E014FEFFCCB65815A520D9B3014B295688721333D852 + 52DA83CD303EE9A6F7CFF6AA21B199849773D18A2882674EB4E10C2D0DF5D0CF + 8A631DD15570FB23F068D286878694A08DAC39A3EFDC8FE8269704DFC35EA62C + D873EC00DD13AB6A9B00E53172DF1B7A8F60D9CF228B6A35CDE0F3AF945D2582 + 278FEECBED497E3F6676AA102DC4C85F20FA8182783A8B3EFC9EE137996F3FE3 + 150F10829D9A56FAD2647EA5F32D4D028C8C45621F05A0580EDFB2AC22681DD1 + D1B1C21C4650A7DE23C004A72F3F464A0C2CFE86D9ABD308660203785D9CC308 + 1E69DB0D368707A4542DA0580E2358185B52AA1A187C62289BC3B27E6E447338 + BE08E9ED2CDD9AE21C5616CC62B034082EA71B0E0FFEA36780CF61B21DCA829E + E3008DB997C7B2B9BEE3D26F7AE8EC4EAFC2607E753CE89A0268BDB64EBFEF59 + 975F3990BCB0CEDF4531BEC82AC1F01DF772DE13520624395CB71112AC8E2FB2 + 4A95F12B4E88CF61D920C9E186B0BE042B44B71A96690ECB6FA93609AEFB9A8A + CF6DE9FE447358362896C362D1C8C7A26CB0D61C960DD69AC3B2C15A73F83F42 + 0A9D9B19DC72610000000049454E44AE426082} + end + object Bevel1: TBevel + Left = 8 + Top = 268 + Width = 373 + Height = 3 + Anchors = [akLeft, akRight, akBottom] + Shape = bsBottomLine + ExplicitTop = 328 + end + object Label1: TLabel + Left = 24 + Top = 208 + Width = 71 + Height = 13 + Caption = 'Guardar como:' + end + object Bevel2: TBevel + Left = 24 + Top = 188 + Width = 349 + Height = 3 + Anchors = [akLeft, akTop, akRight] + Shape = bsBottomLine + end + object Label5: TLabel + Left = 202 + Top = 96 + Width = 48 + Height = 13 + Caption = '(4 d'#237'gitos)' + end + object Label6: TLabel + Left = 202 + Top = 123 + Width = 48 + Height = 13 + Caption = '(4 d'#237'gitos)' + end + object edtFechaCargo: TcxDateEdit + Left = 120 + Top = 150 + Properties.DateButtons = [btnToday] + Properties.ImmediatePost = True + Properties.SaveTime = False + Properties.ShowTime = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 2 + Width = 167 + end + object edtCodEntidad: TcxMaskEdit + Left = 120 + Top = 93 + Properties.BeepOnError = True + Properties.MaxLength = 4 + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Text = ' ' + Width = 73 + end + object edtCodAgencia: TcxMaskEdit + Left = 120 + Top = 120 + Properties.BeepOnError = True + Properties.MaxLength = 4 + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Text = ' ' + Width = 73 + end + object CancelBtn: TButton + Left = 301 + Top = 277 + Width = 75 + Height = 25 + Anchors = [akLeft, akRight, akBottom] + Cancel = True + Caption = '&Cancelar' + ModalResult = 2 + TabOrder = 4 + OnClick = CancelBtnClick + ExplicitTop = 265 + end + object OKBtn: TButton + Left = 202 + Top = 277 + Width = 85 + Height = 25 + Action = actVolcar + Anchors = [akLeft, akRight, akBottom] + TabOrder = 3 + ExplicitTop = 265 + end + object JvFilenameEdit1: TJvFilenameEdit + Left = 24 + Top = 227 + Width = 349 + Height = 21 + Flat = False + ParentCtl3D = False + Filter = 'Ficheros de norma 19 (*.C19)|*.C19' + DialogOptions = [ofOverwritePrompt, ofHideReadOnly, ofPathMustExist] + DialogTitle = 'Volcar a disco la remesa' + TabOrder = 5 + end + object JvFormStorage: TJvFormStorage + AppStorage = JvAppRegistryStorage + AppStoragePath = 'fEditorBase\' + VersionCheck = fpvcNocheck + StoredProps.Strings = ( + 'edtCodAgencia.Text' + 'edtCodEntidad.Text') + StoredValues = <> + Left = 80 + Top = 64 + end + object JvAppRegistryStorage: TJvAppRegistryStorage + StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' + StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' + Root = 'Software\%APPL_NAME%' + SubStorages = <> + Left = 112 + Top = 64 + end + object ActionList1: TActionList + Left = 272 + Top = 72 + object actVolcar: TAction + Caption = 'Volcar a disco' + OnExecute = actVolcarExecute + OnUpdate = actVolcarUpdate + end + end +end diff --git a/Source/Modulos/Banca electronica/Views/uEditorExportacionNorma19.pas b/Source/Modulos/Banca electronica/Views/uEditorExportacionNorma19.pas new file mode 100644 index 0000000..1fa62d0 --- /dev/null +++ b/Source/Modulos/Banca electronica/Views/uEditorExportacionNorma19.pas @@ -0,0 +1,196 @@ +unit uEditorExportacionNorma19; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ExtCtrls, StdCtrls, pngimage, cxControls, cxContainer, cxEdit, + cxTextEdit, cxMaskEdit, cxDropDownEdit, cxCalendar, + uIEditorExportacionNorma19, JvExControls, JvComponent, + JvAppStorage, JvAppRegistryStorage, JvComponentBase, JvFormPlacement, + JvDialogs, Mask, JvExMask, JvToolEdit, ActnList; + +type + TfEditorExportacionNorma19 = class(TForm, IEditorExportacionNorma19) + OKBtn: TButton; + CancelBtn: TButton; + Image1: TImage; + edtFechaCargo: TcxDateEdit; + Label2: TLabel; + Label3: TLabel; + Label4: TLabel; + edtCodEntidad: TcxMaskEdit; + edtCodAgencia: TcxMaskEdit; + lblTitle: TLabel; + lblComments: TLabel; + Bevel1: TBevel; + JvFormStorage: TJvFormStorage; + JvAppRegistryStorage: TJvAppRegistryStorage; + Label1: TLabel; + Bevel2: TBevel; + JvFilenameEdit1: TJvFilenameEdit; + ActionList1: TActionList; + actVolcar: TAction; + Label5: TLabel; + Label6: TLabel; + procedure OKBtnClick(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure CancelBtnClick(Sender: TObject); + procedure actVolcarUpdate(Sender: TObject); + procedure actVolcarExecute(Sender: TObject); + private + FFichero : String; + protected + procedure SetCodigoEntidad(const AValue: Integer); + function GetCodigoEntidad : Integer; + + procedure SetCodigoAgencia(const AValue: Integer); + function GetCodigoAgencia : Integer; + + procedure SetFechaCargo(const AValue: TDateTime); + function GetFechaCargo : TDateTime; + + procedure SetFichero(const AValue: String); + function GetFichero : String; + public + property CodigoEntidad : Integer read GetCodigoEntidad write SetCodigoEntidad; + property CodigoAgencia : Integer read GetCodigoAgencia write SetCodigoAgencia; + property FechaCargo : TDateTime read GetFechaCargo write SetFechaCargo; + property Fichero : String read GetFichero write SetFichero; + end; + + +implementation + +{$R *.dfm} + +uses + uDialogUtils; + +{ TfEditorExportacionNorma19 } + +procedure TfEditorExportacionNorma19.actVolcarExecute(Sender: TObject); +begin + FFichero := JvFilenameEdit1.FileName; + ModalResult := mrOk; +end; + +procedure TfEditorExportacionNorma19.actVolcarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := + (Length(edtCodEntidad.Text) = 4) and + (Length(edtCodAgencia.Text) = 4) and + (Length(JvFilenameEdit1.Text) > 0) +end; + +procedure TfEditorExportacionNorma19.CancelBtnClick(Sender: TObject); +begin + Close; +end; + +procedure TfEditorExportacionNorma19.FormCreate(Sender: TObject); +var + APath : String; +begin + inherited; + with JvFormStorage do + begin + if Pos('_', Self.Name) = 0 then + APath := Self.Name + else + APath := Copy(Self.Name, 0, (Pos('_', Self.Name)-1)); + AppStoragePath := APath; + end; + edtFechaCargo.Date := Now; +end; + +function TfEditorExportacionNorma19.GetCodigoAgencia: Integer; +begin + Result := StrToInt(edtCodAgencia.Text); +end; + +function TfEditorExportacionNorma19.GetCodigoEntidad: Integer; +begin + Result := StrToInt(edtCodEntidad.Text); +end; + +function TfEditorExportacionNorma19.GetFechaCargo: TDateTime; +begin + Result := edtFechaCargo.Date; +end; + +function TfEditorExportacionNorma19.GetFichero: String; +begin + Result := FFichero; +end; + +procedure TfEditorExportacionNorma19.OKBtnClick(Sender: TObject); +var + ASaveDialog : TSaveDialog; // Save dialog variable + AArchivo : string; + ARuta : String; +begin + AArchivo := FFichero; + ARuta := ExtractFilePath(Application.ExeName); + +// ASaveDialog := TSaveDialog.Create(nil); +// try +// ASaveDialog.Title := 'Volcar a disco la remesa'; +// ASaveDialog.FileName := FFichero; +// +// ASaveDialog.InitialDir := GetCurrentDir; +// +// ASaveDialog.Filter := 'Ficheros de norma 19 (*.C19)|*.C19'; +// ASaveDialog.DefaultExt := 'C19'; +// ASaveDialog.FilterIndex := 1; +// +// try +// if ASaveDialog.Execute then +// begin +// FFichero := ASaveDialog.FileName; +// ModalResult := mrOk +// end +// else begin +// ModalResult := mrCancel; +// end; +// except +// on e: exception do +// ShowErrorMessage('error', 'error', e); +// end; +// finally +// FreeAndNIL(ASaveDialog); +// end; + +{ if SaveFileDialog(Application.Handle, 'C19', 'Ficheros de norma 19 (*.C19)|*.C19', + 'c:\', 'Volcar a disco la remesa', FFichero) then} + if SaveFileDialog(Application.Handle, 'C19', 'Ficheros de norma 19 (*.C19)|*.C19', + ARuta, 'Volcar a disco la remesa', AArchivo) then + ModalResult := mrOk + else + ModalResult := mrCancel; + +end; + +procedure TfEditorExportacionNorma19.SetCodigoAgencia(const AValue: Integer); +begin + edtCodAgencia.Text := IntToStr(AValue); +end; + +procedure TfEditorExportacionNorma19.SetCodigoEntidad(const AValue: Integer); +begin + edtCodEntidad.Text := IntToStr(AValue); +end; + +procedure TfEditorExportacionNorma19.SetFechaCargo(const AValue: TDateTime); +begin + edtFechaCargo.Date := AValue; +end; + +procedure TfEditorExportacionNorma19.SetFichero(const AValue: String); +begin + FFichero := AValue; + JvFilenameEdit1.InitialDir := ExtractFilePath(Application.ExeName); + JvFilenameEdit1.FileName := JvFilenameEdit1.InitialDir + PathDelim + FFichero; +end; + +end. diff --git a/Source/Modulos/Contactos/Contactos_Group.bdsgroup b/Source/Modulos/Contactos/Contactos_Group.bdsgroup new file mode 100644 index 0000000..407bea0 --- /dev/null +++ b/Source/Modulos/Contactos/Contactos_Group.bdsgroup @@ -0,0 +1,35 @@ + + + + + + + + + + + ..\..\DataAbstract_D10\DataAbstract_D10.bdsproj + ..\..\Base\Base.bdsproj + ..\..\Base\Usuarios\Usuarios.bdsproj + ..\..\Base\GUIBase\GUIBase.bdsproj + Model\Contactos_model.bdsproj + Data\Contactos_data.bdsproj + Controller\Contactos_controller.bdsproj + Views\Contactos_view.bdsproj + Plugin\Contactos_plugin.bdsproj + Test\Contactos_Tests.bdsproj + ..\..\Cliente\FactuGES.bdsproj + ..\..\Servidor\FactuGES_Server.bdsproj + DataAbstract_D10.bpl Base.bpl Usuarios.bpl GUIBase.bpl Contactos_model.bpl Contactos_data.bpl Contactos_controller.bpl Contactos_view.bpl Contactos_plugin.bpl Contactos_Tests.exe FactuGES.exe FactuGES_Server.exe + + + + + + + + + + + diff --git a/Source/Modulos/Contactos/Contactos_Group.config b/Source/Modulos/Contactos/Contactos_Group.config new file mode 100644 index 0000000..c8f2834 --- /dev/null +++ b/Source/Modulos/Contactos/Contactos_Group.config @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Source/Modulos/Contactos/Contactos_Group.groupproj b/Source/Modulos/Contactos/Contactos_Group.groupproj new file mode 100644 index 0000000..7e0fb6c --- /dev/null +++ b/Source/Modulos/Contactos/Contactos_Group.groupproj @@ -0,0 +1,144 @@ + + + {9e374daa-b130-47db-a2de-c184f072bea0} + + + + + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Contactos/Controller/Contactos_controller.bdsproj b/Source/Modulos/Contactos/Controller/Contactos_controller.bdsproj new file mode 100644 index 0000000..078363c --- /dev/null +++ b/Source/Modulos/Contactos/Controller/Contactos_controller.bdsproj @@ -0,0 +1,179 @@ + + + + + + + + + + + + Contactos_controller.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + JCL Debug IDE extension + JCL Project Analyzer + JCL Open and Save IDE dialogs with favorite folders + + + diff --git a/Source/Modulos/Contactos/Controller/Contactos_controller.dcu b/Source/Modulos/Contactos/Controller/Contactos_controller.dcu new file mode 100644 index 0000000..3c8a1f3 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/Contactos_controller.dcu differ diff --git a/Source/Modulos/Contactos/Controller/Contactos_controller.dpk b/Source/Modulos/Contactos/Controller/Contactos_controller.dpk new file mode 100644 index 0000000..a2ad358 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/Contactos_controller.dpk @@ -0,0 +1,91 @@ +package Contactos_controller; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + rtl, + vcl, + Base, + GUIBase, + ApplicationBase, + Contactos_model, + Contactos_data, + GUISDK_D11R, + xmlrtl, + cfpack_d11, + vclx, + vclactnband, + designide, + ccpackD11, + dbrtl, + cxLibraryD11, + dxThemeD11, + dxGDIPlusD11, + dxCoreD11, + DataAbstract_Core_D11, + vcldb, + dsnap, + adortl, + RemObjects_Core_D11; + +contains + uContactosController in 'uContactosController.pas', + uIEditorContactos in 'View\uIEditorContactos.pas', + uIEditorContacto in 'View\uIEditorContacto.pas', + uIEditorCliente in 'View\uIEditorCliente.pas', + uIEditorClientes in 'View\uIEditorClientes.pas', + uClientesController in 'uClientesController.pas', + uIEditorProveedores in 'View\uIEditorProveedores.pas', + uIEditorEmpleados in 'View\uIEditorEmpleados.pas', + uIEditorEmpleado in 'View\uIEditorEmpleado.pas', + uIEditorProveedor in 'View\uIEditorProveedor.pas', + uProveedoresController in 'uProveedoresController.pas', + uEmpleadosController in 'uEmpleadosController.pas', + uIEditorElegirClientes in 'View\uIEditorElegirClientes.pas', + uIEditorElegirProveedores in 'View\uIEditorElegirProveedores.pas', + uIEditorElegirContactos in 'View\uIEditorElegirContactos.pas', + uIEditorDireccionContacto in 'View\uIEditorDireccionContacto.pas', + uDireccionesContactoController in 'uDireccionesContactoController.pas', + uIEditorElegirDireccionEntrega in 'View\uIEditorElegirDireccionEntrega.pas', + uGruposClienteController in 'uGruposClienteController.pas', + uIEditorGruposCliente in 'View\uIEditorGruposCliente.pas', + uGruposProveedorController in 'uGruposProveedorController.pas', + uGruposEmpleadoController in 'uGruposEmpleadoController.pas', + uIEditorGruposProveedor in 'View\uIEditorGruposProveedor.pas', + uIEditorGruposEmpleado in 'View\uIEditorGruposEmpleado.pas', + uFichasEmpleadoReportController in 'uFichasEmpleadoReportController.pas', + uIEditorFichasEmpleadoPreview in 'View\uIEditorFichasEmpleadoPreview.pas', + uEtiquetasContactosReportController in 'uEtiquetasContactosReportController.pas', + uIEditorEtiquetasContactosPreview in 'View\uIEditorEtiquetasContactosPreview.pas', + uDatosBancariosContactoController in 'uDatosBancariosContactoController.pas', + uIEditorDatoBancarioContacto in 'View\uIEditorDatoBancarioContacto.pas', + uPersonalContactoController in 'uPersonalContactoController.pas', + uIEditorPersonalContacto in 'View\uIEditorPersonalContacto.pas', + uIEditorElegirPersonaContacto in 'View\uIEditorElegirPersonaContacto.pas', + uAgentesController in 'uAgentesController.pas', + uIEditorAgente in 'View\uIEditorAgente.pas', + uIEditorAgentes in 'View\uIEditorAgentes.pas'; + +end. diff --git a/Source/Modulos/Contactos/Controller/Contactos_controller.dproj b/Source/Modulos/Contactos/Controller/Contactos_controller.dproj new file mode 100644 index 0000000..0cc2fe7 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/Contactos_controller.dproj @@ -0,0 +1,615 @@ + + + + {e4ad187e-0c3a-462a-b435-f69475af2f56} + Contactos_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Contactos_controller.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 + + + + + + + + + + + + + + + + JCL Debug IDE extension + JCL Project Analyzer + JCL Open and Save IDE dialogs with favorite folders + Contactos_controller.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Contactos/Controller/Contactos_controller.drc b/Source/Modulos/Contactos/Controller/Contactos_controller.drc new file mode 100644 index 0000000..d127acd --- /dev/null +++ b/Source/Modulos/Contactos/Controller/Contactos_controller.drc @@ -0,0 +1,16 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Contactos\Controller\Contactos_controller.res */ +/* C:\Codigo\Source\Modulos\Contactos\Controller\Contactos_controller.drf */ diff --git a/Source/Modulos/Contactos/Controller/Contactos_controller.identcache b/Source/Modulos/Contactos/Controller/Contactos_controller.identcache new file mode 100644 index 0000000..718f611 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/Contactos_controller.identcache differ diff --git a/Source/Modulos/Contactos/Controller/Contactos_controller.rc b/Source/Modulos/Contactos/Controller/Contactos_controller.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Contactos/Controller/Contactos_controller.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Contactos/Controller/Contactos_controller.res b/Source/Modulos/Contactos/Controller/Contactos_controller.res new file mode 100644 index 0000000..1641339 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/Contactos_controller.res differ diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorAgente.pas b/Source/Modulos/Contactos/Controller/View/uIEditorAgente.pas new file mode 100644 index 0000000..f8055cb --- /dev/null +++ b/Source/Modulos/Contactos/Controller/View/uIEditorAgente.pas @@ -0,0 +1,16 @@ +unit uIEditorAgente; + +interface + +uses + uIEditorContacto; + +type + IEditorAgente = interface(IEditorContacto) + ['{2A4CBBC3-A10E-408C-8BDD-42D5AA589319}'] + end; + + +implementation + +end. diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorAgentes.pas b/Source/Modulos/Contactos/Controller/View/uIEditorAgentes.pas new file mode 100644 index 0000000..ff963c8 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/View/uIEditorAgentes.pas @@ -0,0 +1,16 @@ +unit uIEditorAgentes; + +interface + +uses + uIEditorContactos, uBizContactos, uGUIBase; + +type + IEditorAgentes = interface(IEditorContactos) + ['{5B5B6B3F-A059-4992-9E5E-0CC2586F7302}'] + end; + + +implementation + +end. diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorCliente.dcu b/Source/Modulos/Contactos/Controller/View/uIEditorCliente.dcu new file mode 100644 index 0000000..f57445c Binary files /dev/null and b/Source/Modulos/Contactos/Controller/View/uIEditorCliente.dcu differ diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorCliente.pas b/Source/Modulos/Contactos/Controller/View/uIEditorCliente.pas new file mode 100644 index 0000000..fda93ef --- /dev/null +++ b/Source/Modulos/Contactos/Controller/View/uIEditorCliente.pas @@ -0,0 +1,16 @@ +unit uIEditorCliente; + +interface + +uses + uIEditorContacto; + +type + IEditorCliente = interface(IEditorContacto) + ['{7B661F3E-3092-4B5C-801D-D7072E41BFEA}'] + end; + + +implementation + +end. diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorClientes.dcu b/Source/Modulos/Contactos/Controller/View/uIEditorClientes.dcu new file mode 100644 index 0000000..a504625 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/View/uIEditorClientes.dcu differ diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorClientes.pas b/Source/Modulos/Contactos/Controller/View/uIEditorClientes.pas new file mode 100644 index 0000000..15940b3 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/View/uIEditorClientes.pas @@ -0,0 +1,16 @@ +unit uIEditorClientes; + +interface + +uses + uIEditorContactos, uBizContactos, uGUIBase; + +type + IEditorClientes = interface(IEditorContactos) + ['{21B73C91-1C30-4DEE-ADAF-F6BC628CE3FE}'] + end; + + +implementation + +end. diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorContacto.dcu b/Source/Modulos/Contactos/Controller/View/uIEditorContacto.dcu new file mode 100644 index 0000000..ec500f0 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/View/uIEditorContacto.dcu differ diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorContacto.pas b/Source/Modulos/Contactos/Controller/View/uIEditorContacto.pas new file mode 100644 index 0000000..5615b02 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/View/uIEditorContacto.pas @@ -0,0 +1,23 @@ +unit uIEditorContacto; + +interface + +uses + uEditorDBItem, uBizContactos, uContactosController; + +type + IEditorContacto = interface(IEditorDBItem) + ['{0397CCD5-5F36-489B-BE3F-F577F99ED28A}'] + function GetController : IContactosController; + procedure SetController (const Value : IContactosController); + property Controller : IContactosController read GetController + write SetController; + + function GetContacto: IBizContacto; + procedure SetContacto(const Value: IBizContacto); + property Contacto: IBizContacto read GetContacto write SetContacto; + end; + +implementation + +end. diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorContactos.dcu b/Source/Modulos/Contactos/Controller/View/uIEditorContactos.dcu new file mode 100644 index 0000000..d37b1b9 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/View/uIEditorContactos.dcu differ diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorContactos.pas b/Source/Modulos/Contactos/Controller/View/uIEditorContactos.pas new file mode 100644 index 0000000..e0f6807 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/View/uIEditorContactos.pas @@ -0,0 +1,24 @@ +unit uIEditorContactos; + +interface + +uses + uEditorGridBase, uBizContactos, uContactosController; + +type + IEditorContactos = interface(IEditorGridBase) + ['{7C24B29A-77B7-46F4-BFB2-9C210393988D}'] + function GetContactos: IBizContacto; + procedure SetContactos(const Value: IBizContacto); + property Contactos: IBizContacto read GetContactos write SetContactos; + + function GetController : IContactosController; + procedure SetController (const Value : IContactosController); + property Controller : IContactosController read GetController + write SetController; + end; + + +implementation + +end. diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorDatoBancarioContacto.dcu b/Source/Modulos/Contactos/Controller/View/uIEditorDatoBancarioContacto.dcu new file mode 100644 index 0000000..0db3795 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/View/uIEditorDatoBancarioContacto.dcu differ diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorDatoBancarioContacto.pas b/Source/Modulos/Contactos/Controller/View/uIEditorDatoBancarioContacto.pas new file mode 100644 index 0000000..55444e4 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/View/uIEditorDatoBancarioContacto.pas @@ -0,0 +1,28 @@ +unit uIEditorDatoBancarioContacto; + +interface + +uses + uBizContactosDatosBancarios, uDatosBancariosContactoController; + +type + IEditorDatoBancarioContacto = interface + ['{BDFD97C4-7054-40E5-A7DA-1A3AD1E13673}'] + + function GetController : IDatosBancariosContactoController; + procedure SetController (const Value : IDatosBancariosContactoController); + property Controller : IDatosBancariosContactoController read GetController + write SetController; + + function GetDatoBancario: IBizContactosDatosBancarios; + procedure SetDatoBancario(const Value: IBizContactosDatosBancarios); + property DatoBancario: IBizContactosDatosBancarios read GetDatoBancario write SetDatoBancario; + + function ShowModal : Integer; + procedure Release; + end; + + +implementation + +end. diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorDireccionContacto.dcu b/Source/Modulos/Contactos/Controller/View/uIEditorDireccionContacto.dcu new file mode 100644 index 0000000..06636bd Binary files /dev/null and b/Source/Modulos/Contactos/Controller/View/uIEditorDireccionContacto.dcu differ diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorDireccionContacto.pas b/Source/Modulos/Contactos/Controller/View/uIEditorDireccionContacto.pas new file mode 100644 index 0000000..8ac618c --- /dev/null +++ b/Source/Modulos/Contactos/Controller/View/uIEditorDireccionContacto.pas @@ -0,0 +1,28 @@ +unit uIEditorDireccionContacto; + +interface + +uses + uBizDireccionesContacto, uDireccionesContactoController; + +type + IEditorEditorDireccion = interface + ['{B684971A-1673-4315-BDF5-EFF511B6F04E}'] + + function GetController : IDireccionesContactoController; + procedure SetController (const Value : IDireccionesContactoController); + property Controller : IDireccionesContactoController read GetController + write SetController; + + function GetDireccion: IBizDireccionesContacto; + procedure SetDireccion(const Value: IBizDireccionesContacto); + property Direccion: IBizDireccionesContacto read GetDireccion write SetDireccion; + + function ShowModal : Integer; + procedure Release; + end; + + +implementation + +end. diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorElegirClientes.dcu b/Source/Modulos/Contactos/Controller/View/uIEditorElegirClientes.dcu new file mode 100644 index 0000000..3260e1b Binary files /dev/null and b/Source/Modulos/Contactos/Controller/View/uIEditorElegirClientes.dcu differ diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorElegirClientes.pas b/Source/Modulos/Contactos/Controller/View/uIEditorElegirClientes.pas new file mode 100644 index 0000000..5d7e6d4 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/View/uIEditorElegirClientes.pas @@ -0,0 +1,16 @@ +unit uIEditorElegirClientes; + +interface + +uses + uIEditorContactos, uIEditorElegirContactos, uBizContactos, uGUIBase; + +type + IEditorElegirClientes = interface(IEditorElegirContactos) + ['{0764982A-B06A-40AF-BE69-1D2FD138B7FE}'] + end; + + +implementation + +end. diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorElegirContactos.dcu b/Source/Modulos/Contactos/Controller/View/uIEditorElegirContactos.dcu new file mode 100644 index 0000000..46de144 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/View/uIEditorElegirContactos.dcu differ diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorElegirContactos.pas b/Source/Modulos/Contactos/Controller/View/uIEditorElegirContactos.pas new file mode 100644 index 0000000..de3c379 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/View/uIEditorElegirContactos.pas @@ -0,0 +1,26 @@ +unit uIEditorElegirContactos; + +interface + +uses + uIEditorContactos, uBizContactos, uGUIBase; + +type + IEditorElegirContactos = interface(IEditorContactos) + ['{4A37A0C7-3CDB-4C36-BCFB-6AE0FFE0138D}'] + function GetContactosSeleccionados: IBizContacto; + property ContactosSeleccionados: IBizContacto read GetContactosSeleccionados; + + procedure SetMultiSelect (AValue : Boolean); + function GetMultiSelect : Boolean; + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + + procedure SetMensaje (const AValue: String); + function GetMensaje: String; + property Mensaje : String read GetMensaje write SetMensaje; + end; + + +implementation + +end. diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorElegirDireccionEntrega.dcu b/Source/Modulos/Contactos/Controller/View/uIEditorElegirDireccionEntrega.dcu new file mode 100644 index 0000000..9d173af Binary files /dev/null and b/Source/Modulos/Contactos/Controller/View/uIEditorElegirDireccionEntrega.dcu differ diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorElegirDireccionEntrega.pas b/Source/Modulos/Contactos/Controller/View/uIEditorElegirDireccionEntrega.pas new file mode 100644 index 0000000..fd71072 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/View/uIEditorElegirDireccionEntrega.pas @@ -0,0 +1,30 @@ +unit uIEditorElegirDireccionEntrega; + +interface + +uses + uBizContactos, uBizDireccionesContacto, uGUIBase; + +type + IEditorElegirDireccionEntrega = interface + ['{AB909782-25E1-4715-B98A-EA62FB9DC03C}'] + function GetContacto: IBizContacto; + procedure SetContacto(const Value: IBizContacto); + property Contacto : IBizContacto read GetContacto write SetContacto; + + procedure SetMensaje (const AValue: String); + function GetMensaje: String; + property Mensaje : String read GetMensaje write SetMensaje; + + function GetDireccionSeleccionada: IBizDireccionesContacto; + property DireccionSeleccionada: IBizDireccionesContacto read GetDireccionSeleccionada; + + function ShowModal : Integer; + procedure Release; + end; + + +implementation + +end. + diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorElegirPersonaContacto.dcu b/Source/Modulos/Contactos/Controller/View/uIEditorElegirPersonaContacto.dcu new file mode 100644 index 0000000..4e17da8 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/View/uIEditorElegirPersonaContacto.dcu differ diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorElegirPersonaContacto.pas b/Source/Modulos/Contactos/Controller/View/uIEditorElegirPersonaContacto.pas new file mode 100644 index 0000000..1c3ae0a --- /dev/null +++ b/Source/Modulos/Contactos/Controller/View/uIEditorElegirPersonaContacto.pas @@ -0,0 +1,29 @@ +unit uIEditorElegirPersonaContacto; + +interface + +uses + uBizContactosPersonal, uGUIBase; + +type + IEditorElegirPersonaContacto = interface + ['{B069A079-BC05-4027-BC1D-D78849F173D0}'] + function GetPersonas: IBizContactoPersonal; + procedure SetPersonas(const Value: IBizContactoPersonal); + property Personas: IBizContactoPersonal read GetPersonas write SetPersonas; + + procedure SetMensaje (const AValue: String); + function GetMensaje: String; + property Mensaje : String read GetMensaje write SetMensaje; + + function GetPersonaSeleccionada: IBizContactoPersonal; + property PersonaSeleccionada: IBizContactoPersonal read GetPersonaSeleccionada; + + function ShowModal : Integer; + procedure Release; + end; + + +implementation + +end. diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorElegirProveedores.dcu b/Source/Modulos/Contactos/Controller/View/uIEditorElegirProveedores.dcu new file mode 100644 index 0000000..7ebdf9e Binary files /dev/null and b/Source/Modulos/Contactos/Controller/View/uIEditorElegirProveedores.dcu differ diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorElegirProveedores.pas b/Source/Modulos/Contactos/Controller/View/uIEditorElegirProveedores.pas new file mode 100644 index 0000000..597ed58 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/View/uIEditorElegirProveedores.pas @@ -0,0 +1,16 @@ +unit uIEditorElegirProveedores; + +interface + +uses + uIEditorContactos, uIEditorElegirContactos, uBizContactos, uGUIBase; + +type + IEditorElegirProveedores = interface(IEditorElegirContactos) + ['{1049B4E1-FFA6-4700-9FF2-70D1C0B7D6AC}'] + end; + + +implementation + +end. diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorEmpleado.dcu b/Source/Modulos/Contactos/Controller/View/uIEditorEmpleado.dcu new file mode 100644 index 0000000..1b490af Binary files /dev/null and b/Source/Modulos/Contactos/Controller/View/uIEditorEmpleado.dcu differ diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorEmpleado.pas b/Source/Modulos/Contactos/Controller/View/uIEditorEmpleado.pas new file mode 100644 index 0000000..a56bd51 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/View/uIEditorEmpleado.pas @@ -0,0 +1,16 @@ +unit uIEditorEmpleado; + +interface + +uses + uIEditorContacto; + +type + IEditorEmpleado = interface(IEditorContacto) + ['{DB41E4F5-1D48-4B13-8370-5D3FEB0586C0}'] + end; + + +implementation + +end. diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorEmpleados.dcu b/Source/Modulos/Contactos/Controller/View/uIEditorEmpleados.dcu new file mode 100644 index 0000000..7ee3b63 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/View/uIEditorEmpleados.dcu differ diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorEmpleados.pas b/Source/Modulos/Contactos/Controller/View/uIEditorEmpleados.pas new file mode 100644 index 0000000..a5b2cf5 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/View/uIEditorEmpleados.pas @@ -0,0 +1,16 @@ +unit uIEditorEmpleados; + +interface + +uses + uIEditorContactos, uBizContactos, uGUIBase; + +type + IEditorEmpleados = interface(IEditorContactos) + ['{982A8AC8-5D43-4C91-9E46-35326CD65C2F}'] + end; + + +implementation + +end. diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorEtiquetasContactosPreview.dcu b/Source/Modulos/Contactos/Controller/View/uIEditorEtiquetasContactosPreview.dcu new file mode 100644 index 0000000..9bdda63 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/View/uIEditorEtiquetasContactosPreview.dcu differ diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorEtiquetasContactosPreview.pas b/Source/Modulos/Contactos/Controller/View/uIEditorEtiquetasContactosPreview.pas new file mode 100644 index 0000000..009332e --- /dev/null +++ b/Source/Modulos/Contactos/Controller/View/uIEditorEtiquetasContactosPreview.pas @@ -0,0 +1,16 @@ +unit uIEditorEtiquetasContactosPreview; + +interface + +uses + uEditorPreview, uBizContactos, uEtiquetasContactosReportController; + +type + IEditorEtiquetasContactosPreview = interface(IEditorPreview) + ['{270D1825-A4A4-4480-BBBA-6DD464ACAD3C}'] + end; + + +implementation + +end. diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorFichasEmpleadoPreview.dcu b/Source/Modulos/Contactos/Controller/View/uIEditorFichasEmpleadoPreview.dcu new file mode 100644 index 0000000..51419a1 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/View/uIEditorFichasEmpleadoPreview.dcu differ diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorFichasEmpleadoPreview.pas b/Source/Modulos/Contactos/Controller/View/uIEditorFichasEmpleadoPreview.pas new file mode 100644 index 0000000..dea9a81 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/View/uIEditorFichasEmpleadoPreview.pas @@ -0,0 +1,16 @@ +unit uIEditorFichasEmpleadoPreview; + +interface + +uses + uEditorPreview, uBizContactos, uFichasEmpleadoReportController; + +type + IEditorFichasEmpleadoPreview = interface(IEditorPreview) + ['{CED11B0E-2A7E-4CF2-A9CF-60A82BEEE9F2}'] + end; + + +implementation + +end. diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorGruposCliente.dcu b/Source/Modulos/Contactos/Controller/View/uIEditorGruposCliente.dcu new file mode 100644 index 0000000..7d403cf Binary files /dev/null and b/Source/Modulos/Contactos/Controller/View/uIEditorGruposCliente.dcu differ diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorGruposCliente.pas b/Source/Modulos/Contactos/Controller/View/uIEditorGruposCliente.pas new file mode 100644 index 0000000..0818b2e --- /dev/null +++ b/Source/Modulos/Contactos/Controller/View/uIEditorGruposCliente.pas @@ -0,0 +1,26 @@ +unit uIEditorGruposCliente; + +interface + +uses + uEditorDBBase, uBizGruposCliente, uGruposClienteController, uGUIBase; + +type + IEditorGruposCliente = interface(ICustomEditor) + ['{7BF79417-A95C-41F3-96DE-707F2D6F29E3}'] + function ShowModal : Integer; + procedure Show; + + function GetGruposCliente: IBizGrupoCliente; + procedure SetGruposCliente(const Value: IBizGrupoCliente); + property GruposCliente: IBizGrupoCliente read GetGruposCliente write SetGruposCliente; + + function GetController : IGruposClienteController; + procedure SetController (const Value : IGruposClienteController); + property Controller : IGruposClienteController read GetController write SetController; + end; + + +implementation + +end. diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorGruposEmpleado.dcu b/Source/Modulos/Contactos/Controller/View/uIEditorGruposEmpleado.dcu new file mode 100644 index 0000000..d588a1c Binary files /dev/null and b/Source/Modulos/Contactos/Controller/View/uIEditorGruposEmpleado.dcu differ diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorGruposEmpleado.pas b/Source/Modulos/Contactos/Controller/View/uIEditorGruposEmpleado.pas new file mode 100644 index 0000000..07ec711 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/View/uIEditorGruposEmpleado.pas @@ -0,0 +1,26 @@ +unit uIEditorGruposEmpleado; + +interface + +uses + uEditorDBBase, uBizGruposEmpleado, uGruposEmpleadoController, uGUIBase; + +type + IEditorGruposEmpleado = interface(ICustomEditor) + ['{02981B41-9986-48D8-927C-A08A45168EDE}'] + function ShowModal : Integer; + procedure Show; + + function GetGruposEmpleado: IBizGrupoEmpleado; + procedure SetGruposEmpleado(const Value: IBizGrupoEmpleado); + property GruposEmpleado: IBizGrupoEmpleado read GetGruposEmpleado write SetGruposEmpleado; + + function GetController : IGruposEmpleadoController; + procedure SetController (const Value : IGruposEmpleadoController); + property Controller : IGruposEmpleadoController read GetController write SetController; + end; + + +implementation + +end. diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorGruposProveedor.dcu b/Source/Modulos/Contactos/Controller/View/uIEditorGruposProveedor.dcu new file mode 100644 index 0000000..52dafe4 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/View/uIEditorGruposProveedor.dcu differ diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorGruposProveedor.pas b/Source/Modulos/Contactos/Controller/View/uIEditorGruposProveedor.pas new file mode 100644 index 0000000..2250865 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/View/uIEditorGruposProveedor.pas @@ -0,0 +1,26 @@ +unit uIEditorGruposProveedor; + +interface + +uses + uEditorDBBase, uBizGruposProveedor, uGruposProveedorController, uGUIBase; + +type + IEditorGruposProveedor = interface(ICustomEditor) + ['{A593BC54-0A28-446E-A6B7-E925D7C4B82C}'] + function ShowModal : Integer; + procedure Show; + + function GetGruposProveedor: IBizGrupoProveedor; + procedure SetGruposProveedor(const Value: IBizGrupoProveedor); + property GruposProveedor: IBizGrupoProveedor read GetGruposProveedor write SetGruposProveedor; + + function GetController : IGruposProveedorController; + procedure SetController (const Value : IGruposProveedorController); + property Controller : IGruposProveedorController read GetController write SetController; + end; + + +implementation + +end. diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorPersonalContacto.dcu b/Source/Modulos/Contactos/Controller/View/uIEditorPersonalContacto.dcu new file mode 100644 index 0000000..9003a71 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/View/uIEditorPersonalContacto.dcu differ diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorPersonalContacto.pas b/Source/Modulos/Contactos/Controller/View/uIEditorPersonalContacto.pas new file mode 100644 index 0000000..75aa674 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/View/uIEditorPersonalContacto.pas @@ -0,0 +1,28 @@ +unit uIEditorPersonalContacto; + +interface + +uses + uBizContactosPersonal, uPersonalContactoController; + +type + IEditorPersonalContacto = interface + ['{2221A124-2ECF-426A-A462-24CC87AC26EC}'] + + function GetController : IPersonalContactoController; + procedure SetController (const Value : IPersonalContactoController); + property Controller : IPersonalContactoController read GetController + write SetController; + + function GetPersonal: IBizContactoPersonal; + procedure SetPersonal(const Value: IBizContactoPersonal); + property Personal: IBizContactoPersonal read GetPersonal write SetPersonal; + + function ShowModal : Integer; + procedure Release; + end; + + +implementation + +end. diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorProveedor.dcu b/Source/Modulos/Contactos/Controller/View/uIEditorProveedor.dcu new file mode 100644 index 0000000..b7ebf77 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/View/uIEditorProveedor.dcu differ diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorProveedor.pas b/Source/Modulos/Contactos/Controller/View/uIEditorProveedor.pas new file mode 100644 index 0000000..accb45e --- /dev/null +++ b/Source/Modulos/Contactos/Controller/View/uIEditorProveedor.pas @@ -0,0 +1,16 @@ +unit uIEditorProveedor; + +interface + +uses + uIEditorContacto; + +type + IEditorProveedor = interface(IEditorContacto) + ['{576E4FBB-035E-41DD-9AF6-6B88649AEADD}'] + end; + + +implementation + +end. diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorProveedores.dcu b/Source/Modulos/Contactos/Controller/View/uIEditorProveedores.dcu new file mode 100644 index 0000000..186961d Binary files /dev/null and b/Source/Modulos/Contactos/Controller/View/uIEditorProveedores.dcu differ diff --git a/Source/Modulos/Contactos/Controller/View/uIEditorProveedores.pas b/Source/Modulos/Contactos/Controller/View/uIEditorProveedores.pas new file mode 100644 index 0000000..724a05f --- /dev/null +++ b/Source/Modulos/Contactos/Controller/View/uIEditorProveedores.pas @@ -0,0 +1,16 @@ +unit uIEditorProveedores; + +interface + +uses + uIEditorContactos, uBizContactos, uGUIBase; + +type + IEditorProveedores = interface(IEditorContactos) + ['{9193393C-E499-4FE5-8CB6-67C0BB22770A}'] + end; + + +implementation + +end. diff --git a/Source/Modulos/Contactos/Controller/uAgentesController.dcu b/Source/Modulos/Contactos/Controller/uAgentesController.dcu new file mode 100644 index 0000000..624a89e Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uAgentesController.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uAgentesController.pas b/Source/Modulos/Contactos/Controller/uAgentesController.pas new file mode 100644 index 0000000..c340b07 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/uAgentesController.pas @@ -0,0 +1,191 @@ +unit uAgentesController; + +interface + +uses + uCustomEditor, Classes, + uContactosController, uBizContactos, + uIEditorAgentes, uIEditorAgente, uIDataModuleContactos, uIDataModuleAgentes; + +type + IAgentesController = interface(IContactosController) + ['{73A25A90-020F-4403-B7A1-55C06CE648D9}'] + function EsEliminable(AAgente: IBizContacto): Boolean; + function Eliminar(AAgente: IBizContacto; AllItems: Boolean = false): Boolean; overload; + end; + + TAgentesController = class(TContactosController, IAgentesController) + protected + function ValidarContacto(AContacto : IBizContacto): Boolean; override; + + public + constructor Create; override; + + function Duplicar(AContacto: IBizContacto): IBizContacto; override; + + function Buscar(const ID: Integer): IBizContacto; override; + function BuscarTodos: IBizContacto; override; + function Nuevo : IBizContacto; override; + procedure Ver(AContacto : IBizContacto); override; + procedure VerTodos(AContactos: IBizContacto); override; + + function Eliminar(AAgente: IBizContacto; AllItems: Boolean = false): Boolean; overload; + function EsEliminable(AAgente: IBizContacto): Boolean; + end; + +implementation + +uses + Windows, SysUtils, cxControls, Dialogs, uDataModuleAgentes, uEditorRegistryUtils, + uDataTableUtils, uDADataTable, DB, schContactosClient_Intf, + uEditorGridBase, uIntegerListUtils; + +{ TAgenteController } + +function TAgentesController.Buscar(const ID: Integer): IBizContacto; +begin + Result := (FDataModule as IDataModuleAgentes).GetItem(ID); + FiltrarEmpresa(Result); +end; + +function TAgentesController.BuscarTodos: IBizContacto; +begin + Result := (FDataModule as IDataModuleAgentes).GetItems; + FiltrarEmpresa(Result); +end; + +constructor TAgentesController.Create; +begin + inherited; + FDataModule := TDataModuleAgentes.Create(Nil); +end; + +function TAgentesController.Duplicar(AContacto: IBizContacto): IBizContacto; +begin + Result := inherited Duplicar(AContacto); +end; + +function TAgentesController.Eliminar(AAgente: IBizContacto; AllItems: Boolean = false): Boolean; +//En el caso de eliminar almenos un elemento del conjunto se devuelve true +var + bEliminado: Boolean; +begin + bEliminado := False; + + if not Assigned(AAgente) then + raise Exception.Create ('Contacto no asignado'); + + ShowHourglassCursor; + try + if not AAgente.DataTable.Active then + AAgente.DataTable.Active := True; + + if (AAgente.State in dsEditModes) then + AAgente.Cancel; + + //Siempre eliminaremos el seleccionado + if EsEliminable(AAgente) then + begin + AAgente.Delete; + bEliminado := True; + end; + + //En el caso de querer eliminar todos los items del objeto AAgente + if AllItems then + begin + with AAgente.DataTable do + begin + First; + while not EOF do + begin + if EsEliminable(AAgente) then + begin + AAgente.Delete; + bEliminado := True + end + else Next; + end; + end; + end; + + if bEliminado then + begin + AAgente.DataTable.ApplyUpdates; + Result := True; + end + else + Result := False; + + finally + HideHourglassCursor; + end; +end; + +function TAgentesController.EsEliminable(AAgente: IBizContacto): Boolean; +begin + if not Assigned(AAgente) then + raise Exception.Create ('Contacto no asignado: EsEliminable'); + + Result := True; +end; + +function TAgentesController.Nuevo: IBizContacto; +var + AContacto : IBizAgente; +begin + AContacto := (FDataModule as IDataModuleAgentes).NewItem; + FiltrarEmpresa(AContacto); + AContacto.DataTable.Active := True; + AContacto.Insert; + Result := AContacto; +end; + +function TAgentesController.ValidarContacto(AContacto: IBizContacto): Boolean; +begin + Result := inherited ValidarContacto(AContacto); +{ + if Result then + begin + if not (AContacto as IBizAgente).FECHA_BAJAIsNull and + (Length((AContacto as IBizAgente).CAUSA_BAJA) = 0) then + raise Exception.Create('Debe indicar la causa de la baja del agente.'); + end; +} +end; + +procedure TAgentesController.Ver(AContacto: IBizContacto); +var + AEditor : IEditorAgente; +begin + AEditor := NIL; + + CreateEditor('EditorAgente', IEditorAgente, AEditor); + if Assigned(AEditor) then + try + AEditor.Contacto := AContacto; + AEditor.Controller := Self; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +procedure TAgentesController.VerTodos(AContactos: IBizContacto); +var + AEditor : IEditorAgentes; +begin + AEditor := NIL; + + CreateEditor('EditorAgentes', IEditorAgentes, AEditor); + if Assigned(AEditor) then + with AEditor do + begin + Contactos := AContactos; + Controller := Self; + MultiSelect := True; + ShowEmbedded; + end; +end; + +end. diff --git a/Source/Modulos/Contactos/Controller/uClientesController.dcu b/Source/Modulos/Contactos/Controller/uClientesController.dcu new file mode 100644 index 0000000..5c84c45 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uClientesController.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uClientesController.pas b/Source/Modulos/Contactos/Controller/uClientesController.pas new file mode 100644 index 0000000..a46d9a3 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/uClientesController.pas @@ -0,0 +1,537 @@ +unit uClientesController; + +interface + +uses + uCustomEditor, Classes, + uContactosController, uBizContactos, uBizDireccionesContacto, + uIEditorClientes, uIEditorCliente, uIDataModuleContactos, uIDataModuleClientes, + uDireccionesContactoController, uBizContactosPersonal; + +type + IClientesController = interface(IContactosController) + ['{AAC3C51A-37F7-4961-B39F-FBC6B6A2B0F1}'] + function BuscarTodosTiendaWeb: IBizCliente; + function BuscarEtiquetadosFelicitacion: IBizCliente; + function TieneDatosBancarios(ACliente: IBizCliente) : Boolean; + function ElegirDireccionEntrega(ACliente: IBizCliente; AMensaje: String): IBizDireccionesContacto; + function EsEliminable(ACliente: IBizContacto): Boolean; + function Eliminar(ACliente: IBizContacto; AllItems: Boolean = false): Boolean; overload; + procedure Preview(ACliente : IBizCliente; AllItems: Boolean = false); + procedure Print(ACliente : IBizCliente; AllItems: Boolean = false); + procedure VerPresupuestosDeCliente(ACliente : IBizCliente); + procedure VerAlbaranesDeCliente(ACliente : IBizCliente); + procedure VerFacturasDeCliente(ACliente : IBizCliente); + procedure VerRecibosDeCliente(ACliente : IBizCliente); + function DarListaCuentasBancarias(const IdCliente: Integer): TStringList; + end; + + TClientesController = class(TContactosController, IClientesController) + protected + FDireccionesController : IDireccionesContactoController; + function ValidarContacto(AContacto: IBizContacto): Boolean; override; + public + constructor Create; override; + destructor Destroy; override; + + function Duplicar(AContacto: IBizContacto): IBizContacto; override; + + function Buscar(const ID: Integer): IBizContacto; override; + function BuscarTodos: IBizContacto; override; + function BuscarTodosTiendaWeb: IBizCliente; + function BuscarEtiquetadosFelicitacion: IBizCliente; + function Nuevo : IBizContacto; override; + procedure Ver(AContacto : IBizContacto); override; + procedure VerTodos(AContactos: IBizContacto); override; + function ElegirContacto(AContactos : IBizContacto; + AMensaje: String; AMultiSelect: Boolean): IBizContacto; override; + function TieneDatosBancarios(ACliente: IBizCliente) : Boolean; + function ElegirDireccionEntrega(ACliente: IBizCliente; + AMensaje: String): IBizDireccionesContacto; + function EsEliminable(ACliente: IBizContacto): Boolean; + function Eliminar(ACliente: IBizContacto; AllItems: Boolean = false): Boolean; overload; + procedure Preview(ACliente : IBizCliente; AllItems: Boolean = false); + procedure Print(ACliente : IBizCliente; AllItems: Boolean = false); + procedure VerPresupuestosDeCliente(ACliente : IBizCliente); + procedure VerAlbaranesDeCliente(ACliente : IBizCliente); + procedure VerFacturasDeCliente(ACliente : IBizCliente); + procedure VerRecibosDeCliente(ACliente : IBizCliente); + function DarListaCuentasBancarias(const IdCliente: Integer): TStringList; + end; + +implementation + +uses + Forms, Windows, SysUtils, Controls, cxControls, uDialogUtils, uDataModuleClientes, uEditorRegistryUtils, + uDataTableUtils, uDADataTable, DB, schContactosClient_Intf, uEtiquetasContactosReportController, + uIEditorElegirClientes, uIEditorElegirDireccionEntrega, uEditorGridBase, uModuleController, + Dialogs, uIntegerListUtils, uFactuGES_App, + uPlugins_Intf; + +{ TClientesController } + +function TClientesController.Buscar(const ID: Integer): IBizContacto; +begin + Result := (FDataModule as IDataModuleClientes).GetItem(ID); + FiltrarEmpresa(Result); +end; + +function TClientesController.BuscarEtiquetadosFelicitacion: IBizCliente; +begin + Result := (FDataModule as IDataModuleClientes).GetItemsFelicitacion; + FiltrarEmpresa(Result); +end; + +function TClientesController.BuscarTodos: IBizContacto; +begin + Result := (FDataModule as IDataModuleClientes).GetItems; + FiltrarEmpresa(Result); +end; + +function TClientesController.BuscarTodosTiendaWeb: IBizCliente; +begin + Result := (FDataModule as IDataModuleClientes).GetItemsTiendaWeb; + FiltrarEmpresa(Result); +end; + +constructor TClientesController.Create; +begin + inherited; + FDataModule := TDataModuleClientes.Create(Nil); + FDireccionesController := TDireccionesContactoController.Create; +end; + +function TClientesController.DarListaCuentasBancarias(const IdCliente: Integer): TStringList; +var + ACliente: IBizCliente; + Aux : String; + +begin + ACliente := (Buscar(IdCliente) as IBizCliente); + ACliente.DataTable.Active := True; + + Result := TStringList.Create; + ShowHourglassCursor; + try + with Result do + begin + ACliente.DatosBancarios.DataTable.First; + while not ACliente.DatosBancarios.DataTable.EOF do + begin + Aux := Format('N de cuenta: %s %s %s %s - Titular: %s ', [ACliente.DatosBancarios.ENTIDAD, + ACliente.DatosBancarios.SUCURSAL, ACliente.DatosBancarios.DC, ACliente.DatosBancarios.CUENTA, ACliente.DatosBancarios.TITULAR]); + Add(Format('%s=%d', [Aux, ACliente.DatosBancarios.ID])); + ACliente.DatosBancarios.DataTable.Next; + end; + end; + finally + ACliente := NIL; + HideHourglassCursor; + end; +end; + +destructor TClientesController.Destroy; +begin + FDireccionesController := NIL; + inherited; +end; + +function TClientesController.Duplicar(AContacto: IBizContacto): IBizContacto; +begin + Result := inherited Duplicar(AContacto); + + if Assigned((Result as IBizCliente).Descuentos) then + DuplicarRegistros((AContacto as IBizCliente).Descuentos.DataTable, (Result as IBizCliente).Descuentos.DataTable, mdrTodos); +end; + +function TClientesController.ElegirContacto(AContactos : IBizContacto; + AMensaje: String; AMultiSelect: Boolean): IBizContacto; +var + AEditor : IEditorElegirClientes; +begin + Result := NIL; + + CreateEditor('EditorElegirClientes', IEditorElegirClientes, AEditor); + if Assigned(AEditor) then + begin + try + AEditor.Contactos := AContactos; + AEditor.Controller := Self; + AEditor.MultiSelect := AMultiSelect; + AEditor.Mensaje := AMensaje; + if IsPositiveResult(AEditor.ShowModal) then + Result := AEditor.ContactosSeleccionados; + finally + AEditor.Release; + AEditor := NIL; + Application.ProcessMessages; + end; + end; +end; + +function TClientesController.ElegirDireccionEntrega(ACliente: IBizCliente; + AMensaje: String): IBizDireccionesContacto; +var + AEditor : IEditorElegirDireccionEntrega; +begin + Result := NIL; + + CreateEditor('EditorElegirDireccionEntrega', IEditorElegirDireccionEntrega, AEditor); + if Assigned(AEditor) then + begin + try + AEditor.Contacto := ACliente; + AEditor.Mensaje := AMensaje; + if IsPositiveResult(AEditor.ShowModal) then + Result := AEditor.DireccionSeleccionada; + finally + AEditor.Release; + AEditor := NIL; + Application.ProcessMessages; + end; + end; +end; + +function TClientesController.Eliminar(ACliente: IBizContacto; AllItems: Boolean): Boolean; +//En el caso de eliminar almenos un elemento del conjunto se devuelve true +var + bEliminado: Boolean; +begin + bEliminado := False; + + if not Assigned(ACliente) then + raise Exception.Create ('Contacto no asignado'); + + ShowHourglassCursor; + try + if not ACliente.DataTable.Active then + ACliente.DataTable.Active := True; + + if (ACliente.State in dsEditModes) then + ACliente.Cancel; + + //Siempre eliminaremos el seleccionado + if EsEliminable(ACliente) then + begin + ACliente.Delete; + bEliminado := True; + end; + + //En el caso de querer eliminar todos los items del objeto ACliente + if AllItems then + begin + with ACliente.DataTable do + begin + First; + while not EOF do + begin + if EsEliminable(ACliente) then + begin + ACliente.Delete; + bEliminado := True + end + else Next; + end; + end; + end; + + if bEliminado then + begin + ACliente.DataTable.ApplyUpdates; + Result := True; + end + else + Result := False; + + HideHourglassCursor; + except + on E: Exception do + begin + ACliente.DataTable.CancelUpdates; + HideHourglassCursor; + if (Pos('FOREIGN KEY', E.Message) > 0) then + MessageBox(0, 'No se pueden borrar el/los cliente/s seleccionado/s porque, alguno/s de ellos tiene documentos dados de alta en la aplicacin (presupuestos, albaranes, facturas, etc)', 'Atencin', MB_ICONWARNING or MB_OK); + end; + end; +end; + +function TClientesController.EsEliminable(ACliente: IBizContacto): Boolean; +begin + if not Assigned(ACliente) then + raise Exception.Create ('Contacto no asignado: EsEliminable'); + + Result := True; +end; + +function TClientesController.Nuevo: IBizContacto; +var + AContacto : IBizCliente; +begin + AContacto := (FDataModule as IDataModuleClientes).NewItem; + FiltrarEmpresa(AContacto); + AContacto.DataTable.Active := True; + AContacto.Insert; + Result := AContacto; +end; + +procedure TClientesController.Preview(ACliente: IBizCliente; AllItems: Boolean); +var + AReportController : IEtiquetasContactosReportController; + ListaID: TIntegerList; +begin + AReportController := TEtiquetasContactosReportController.Create; + ListaID := TIntegerList.Create; + + if not Assigned(ACliente) then + raise Exception.Create ('Cliente no asignado (TieneDatosBancarios)'); + + if not ACliente.DataTable.Active then + ACliente.DataTable.Active := True; + + try + //Si deseamos previsualizar todos los items del objeto albaran + if AllItems then + begin + with ACliente.DataTable do + begin + First; + while not EOF do + begin + ListaID.Add(ACliente.ID); + Next; + end; + end; + end + //Solo previsualizamos el item seleccionado + else + ListaID.Add(ACliente.ID); + + AReportController.Preview(ListaID); + finally + AReportController := NIL; + FreeANDNIL(ListaID); + end; +end; + +procedure TClientesController.Print(ACliente: IBizCliente; AllItems: Boolean); +var + AReportController : IEtiquetasContactosReportController; + ListaID: TIntegerList; + +begin + AReportController := TEtiquetasContactosReportController.Create; + ListaID := TIntegerList.Create; + + if not Assigned(ACliente) then + raise Exception.Create ('Cliente no asignado (TieneDatosBancarios)'); + + if not ACliente.DataTable.Active then + ACliente.DataTable.Active := True; + + try + //Si deseamos previsualizar todos los items del objeto albaran + if AllItems then + begin + with ACliente.DataTable do + begin + First; + while not EOF do + begin + ListaID.Add(ACliente.ID); + Next; + end; + end; + end + //Solo previsualizamos el item seleccionado + else + ListaID.Add(ACliente.ID); + + AReportController.Print(ListaID); + + finally + AReportController := NIL; + FreeANDNil(ListaID); + end; +end; + +function TClientesController.TieneDatosBancarios( + ACliente: IBizCliente): Boolean; +begin + if not Assigned(ACliente) then + raise Exception.Create ('Cliente no asignado (TieneDatosBancarios)'); + + if not ACliente.DataTable.Active then + ACliente.DataTable.Active := True; + + with ACliente.DatosBancarios do + begin + Result := (DataTable.RecordCount > 0) and + ( + (Length(ENTIDAD) > 0) and + (Length(SUCURSAL) > 0) and + (Length(DC) > 0) and + (Length(CUENTA) > 0) + ); + end; +end; + +function TClientesController.ValidarContacto(AContacto: IBizContacto): Boolean; +begin + Result := inherited ValidarContacto(AContacto); + if Result then + begin + with (AContacto as IBizCliente) do + begin + if (BLOQUEADO = 0) then + begin + Edit; + MOTIVO_BLOQUEO := ''; + Post; + end; + + if (TIENDA_WEB = 1) and (Length(EMAIL_1) = 0) then + begin + {ShowWarningMessage('Acceso a la tienda web', + 'Para que el cliente pueda tener acceso a la tienda web es necesario indicar una direccin de e-mail en el campo ''Correo de trabajo''' + + #10#13 + #10#13 + + 'Por favor, indique una direccin o desactive el acceso a la tienda.'); + Result := False;} + raise Exception.Create('Para que el cliente pueda tener acceso a la tienda web es necesario indicar una direccin de e-mail en el campo ''Correo de trabajo''' + + #10#13 + #10#13 + + 'Por favor, indique una direccin o desactive el acceso a la tienda.'); + end; + end; + + { + // Por ahora no existe el concepto de direcciones de entrega asi que esto est desactivado + if Result and (AContacto.Direcciones.RecordCount = 0) then + if (ShowConfirmMessage('El cliente no tiene direcciones asociadas', + AContacto.NOMBRE + ' no tiene ninguna direccin de envo dada de alta, ' + #10#13 + + 'Desea utilizar el domicilio fiscal para dar de alta una direccin de entrega?') = IDYES) then + begin + FDireccionesController.CopiarDireccionFiscal(AContacto, AContacto.Direcciones); + FDireccionesController.Ver(AContacto.Direcciones); + end;} + end; +end; + +procedure TClientesController.Ver(AContacto: IBizContacto); +var + AEditor : IEditorCliente; +begin + AEditor := NIL; + + CreateEditor('EditorCliente', IEditorCliente, AEditor); + if Assigned(AEditor) then + try + AEditor.Contacto := AContacto; + AEditor.Controller := Self; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +procedure TClientesController.VerAlbaranesDeCliente(ACliente: IBizCliente); +var + AModule : TModuleController; + APlugin : IMCAlbaranesCliente; +begin + if not Assigned(ACliente) then + raise Exception.Create ('Cliente no asignado (VerAlbaranesDeCliente)'); + + if not ACliente.DataTable.Active then + ACliente.DataTable.Active := True; + + AModule := AppFactuGES.GetModule(MODULENAME_ALBARANES_CLIENTE); + if Assigned(AModule) then + try + if Supports(AModule, IMCAlbaranesCliente, APlugin) then + APlugin.VerAlbaranes(ACliente.ID, ACliente.NOMBRE); + finally + APlugin := NIL; + end; +end; + +procedure TClientesController.VerFacturasDeCliente(ACliente: IBizCliente); +var + AModule : TModuleController; + APlugin : IMCFacturasCliente; +begin + if not Assigned(ACliente) then + raise Exception.Create ('Cliente no asignado (VerFacturasDeCliente)'); + + if not ACliente.DataTable.Active then + ACliente.DataTable.Active := True; + + AModule := AppFactuGES.GetModule(MODULENAME_FACTURAS_CLIENTE); + if Assigned(AModule) then + try + if Supports(AModule, IMCFacturasCliente, APlugin) then + APlugin.VerFacturas(ACliente.ID, ACliente.NOMBRE); + finally + APlugin := NIL; + end; +end; + +procedure TClientesController.VerPresupuestosDeCliente(ACliente : IBizCliente); +var + AModule : TModuleController; + APlugin : IMCPresupuestosCliente; +begin + if not Assigned(ACliente) then + raise Exception.Create ('Cliente no asignado (VerPresupuestosDeCliente)'); + + if not ACliente.DataTable.Active then + ACliente.DataTable.Active := True; + + AModule := AppFactuGES.GetModule(MODULENAME_PRESUPUESTOS_CLIENTE); + if Assigned(AModule) then + try + if Supports(AModule, IMCPresupuestosCliente, APlugin) then + APlugin.VerPresupuestos(ACliente.ID, ACliente.NOMBRE); + finally + APlugin := NIL; + end; +end; + +procedure TClientesController.VerRecibosDeCliente(ACliente: IBizCliente); +var + AModule : TModuleController; + APlugin : IMCRecibosCliente; +begin + if not Assigned(ACliente) then + raise Exception.Create ('Cliente no asignado (VerFacturasDeCliente)'); + + if not ACliente.DataTable.Active then + ACliente.DataTable.Active := True; + + AModule := AppFactuGES.GetModule(MODULENAME_RECIBOS_CLIENTE); + if Assigned(AModule) then + try + if Supports(AModule, IMCRecibosCliente, APlugin) then + APlugin.VerRecibos(ACliente.ID, ACliente.NOMBRE); + finally + APlugin := NIL; + end; +end; + +procedure TClientesController.VerTodos(AContactos: IBizContacto); +var + AEditor : IEditorClientes; +begin + AEditor := NIL; + + CreateEditor('EditorClientes', IEditorClientes, AEditor); + if Assigned(AEditor) then + with AEditor do + begin + Contactos := AContactos; + Controller := Self; + MultiSelect := True; + ShowEmbedded; + end; +end; + +end. diff --git a/Source/Modulos/Contactos/Controller/uContactosController.dcu b/Source/Modulos/Contactos/Controller/uContactosController.dcu new file mode 100644 index 0000000..7fa3d72 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uContactosController.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uContactosController.pas b/Source/Modulos/Contactos/Controller/uContactosController.pas new file mode 100644 index 0000000..d1b1da5 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/uContactosController.pas @@ -0,0 +1,342 @@ +unit uContactosController; + +interface + + +uses + Windows, Forms, Classes, Controls, Contnrs, SysUtils, uDADataTable, + uBizContactos, uBizContactosDatosBancarios, uIDataModuleContactos, + uControllerBase, uBizContactosPersonal; + +type + IContactosController = interface(IControllerBase) + ['{43F9A4ED-6563-4F95-9A56-330CF9C66731}'] + function Buscar(const ID: Integer): IBizContacto; + function BuscarTodos: IBizContacto; + procedure Ver(AContacto : IBizContacto); + procedure VerTodos(AContactos: IBizContacto); + function Nuevo : IBizContacto; + procedure Anadir(AContacto : IBizContacto); + procedure Eliminar(const ID : Integer); overload; + function Eliminar(AContacto : IBizContacto): Boolean; overload; + function Guardar(AContacto : IBizContacto): Boolean; + procedure DescartarCambios(AContacto : IBizContacto); + function Existe(const ID: Integer) : Boolean; + function Duplicar(AContacto : IBizContacto) : IBizContacto; + function Localizar(AContactos: IBizContacto; const ID : Integer): Boolean; + function ElegirContacto(AContactos : IBizContacto; + AMensaje: String; AMultiSelect: Boolean): IBizContacto; + function ElegirPersonaContacto(APersonal: IBizContactoPersonal; + AMensaje: String): IBizContactoPersonal; + + function ExtraerSeleccionados(AContactos: IBizContacto) : IBizContacto; + function DarListaPersonalConMovil(const IDContacto : Integer): TStringList; + end; + + TContactosController = class(TControllerBase, IContactosController) + protected + FDataModule : IDataModuleContactos; + procedure FiltrarEmpresa(AContacto : IBizContacto); virtual; + function _Vacio : IBizContacto; virtual; + function ValidarContacto(AContacto : IBizContacto): Boolean; virtual; + public + constructor Create; override; + destructor Destroy; override; + + procedure Eliminar(const ID : Integer); overload; virtual; + function Eliminar(AContacto : IBizContacto): Boolean; overload; virtual; + function Guardar(AContacto : IBizContacto): Boolean; + procedure DescartarCambios(AContacto : IBizContacto); virtual; + function Existe(const ID: Integer) : Boolean; virtual; + procedure Anadir(AContacto : IBizContacto); virtual; + function Duplicar(AContacto: IBizContacto): IBizContacto; virtual; + function ExtraerSeleccionados(AContactos: IBizContacto) : IBizContacto; virtual; + function Localizar(AContactos: IBizContacto; const ID : Integer): Boolean; + + // Se implementa en los controladores hijos + function Buscar(const ID: Integer): IBizContacto; virtual; abstract; + function BuscarTodos: IBizContacto; virtual; abstract; + function Nuevo : IBizContacto; virtual; abstract; + procedure Ver(AContacto : IBizContacto); virtual; abstract; + procedure VerTodos(AContactos: IBizContacto); virtual; abstract; + function ElegirContacto(AContactos : IBizContacto; + AMensaje: String; AMultiSelect: Boolean): IBizContacto; virtual; abstract; + function ElegirPersonaContacto(APersonal: IBizContactoPersonal; + AMensaje: String): IBizContactoPersonal; + function DarListaPersonalConMovil(const IDContacto : Integer): TStringList; + end; + +implementation + +uses + Dialogs, uEditorRegistryUtils, cxControls, DB, uDAInterfaces, uDataTableUtils, + schContactosClient_Intf, uFactuGES_App, uIEditorElegirPersonaContacto; + +{ TContactosController } + +procedure TContactosController.Anadir(AContacto: IBizContacto); +begin + AContacto.Insert; +end; + +function TContactosController.Duplicar(AContacto: IBizContacto): IBizContacto; +begin + Result := Self._Vacio; + ShowHourglassCursor; + try + DuplicarRegistros(AContacto.DataTable, Result.DataTable, mdrActual); + DuplicarRegistros(AContacto.DatosBancarios.DataTable, Result.DatosBancarios.DataTable, mdrTodos); + if Assigned(AContacto.Direcciones) then + DuplicarRegistros(AContacto.Direcciones.DataTable, Result.Direcciones.DataTable, mdrTodos); + + // Hay que dejar algunos campos como si fuera un contacto nuevo + Result.Edit; + with Result do + begin + ID_EMPRESA := AppFactuGES.EmpresaActiva.ID; + USUARIO := AppFactuGES.UsuarioActivo.UserName; + REFERENCIA := ''; + end; + + Result.Post; + finally + HideHourglassCursor; + end; +end; + +constructor TContactosController.Create; +begin + inherited; + FDataModule := NIL; +end; + +function TContactosController.DarListaPersonalConMovil(const IDContacto : Integer): TStringList; +var + AContacto: IBizContacto; + AStr : String; +begin + AContacto := IBizContacto(Buscar(IDContacto)); + AContacto.DataTable.Active := True; + Result := TStringList.Create; + try + with Result do + begin + AContacto.Personal.DataTable.First; + while not AContacto.Personal.DataTable.EOF do + begin + AStr := AContacto.Personal.NOMBRE; + if not AContacto.Personal.MOVILIsNull then + AStr := AStr + '. Tlf: ' + AContacto.Personal.MOVIL; + Add(AStr); + AContacto.Personal.DataTable.Next; + end; + end; + finally + AContacto := NIL; + end; +end; + +procedure TContactosController.DescartarCambios(AContacto: IBizContacto); +begin + if not Assigned(AContacto) then + raise Exception.Create ('Contacto no asignado'); + + ShowHourglassCursor; + try + if (AContacto.State in dsEditModes) then + AContacto.Cancel; + + AContacto.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TContactosController.Destroy; +begin + FDataModule := NIL; + inherited; +end; + +function TContactosController.ElegirPersonaContacto( + APersonal: IBizContactoPersonal; AMensaje: String): IBizContactoPersonal; +var + AEditor : IEditorElegirPersonaContacto; +begin + Result := NIL; + + CreateEditor('EditorElegirPersonaContacto', IEditorElegirPersonaContacto, AEditor); + if Assigned(AEditor) then + begin + try + AEditor.Personas := APersonal; + AEditor.Mensaje := AMensaje; + if IsPositiveResult(AEditor.ShowModal) then + Result := AEditor.PersonaSeleccionada; + finally + AEditor.Release; + AEditor := NIL; + Application.ProcessMessages; + end; + end; +end; + +function TContactosController.Eliminar(AContacto: IBizContacto): Boolean; +begin + Result := False; + + if not Assigned(AContacto) then + raise Exception.Create ('Contacto no asignado'); + + ShowHourglassCursor; + try + if (AContacto.State in dsEditModes) then + AContacto.Cancel; + + AContacto.Delete; + AContacto.DataTable.ApplyUpdates; + HideHourglassCursor; + Result := True; + except + on E: Exception do + begin + AContacto.DataTable.CancelUpdates; + HideHourglassCursor; + if (Pos('FOREIGN KEY', E.Message) > 0) then + MessageBox(0, 'No se puede borrar este contacto porque tiene documentos dados de alta (como presupuestos, albaranes, facturas, etc)', 'Atencin', MB_ICONWARNING or MB_OK); + end; + end; +end; + +procedure TContactosController.Eliminar(const ID: Integer); +var + AContacto : IBizContacto; +begin + AContacto := Buscar(ID); + + if not Assigned(AContacto) then + raise Exception.Create(Format('No se ha encontrado el contacto con ID = %d', [ID])); + + Eliminar(AContacto); + AContacto := NIL; +end; + +function TContactosController.Existe(const ID: Integer): Boolean; +var + AContacto : IBizContacto; +begin + try + AContacto := Buscar(ID); + Result := Assigned(AContacto) and (AContacto.ID = ID); + finally + AContacto := NIL; + end; +end; + +function TContactosController.ExtraerSeleccionados(AContactos: IBizContacto): IBizContacto; +var + ASeleccionados : IBizContacto; +begin + ASeleccionados := Self.Buscar(ID_NULO); + CopyDataTableDA5(AContactos.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + +function TContactosController.Guardar(AContacto: IBizContacto): Boolean; +var + dtDetails : TList; + i : integer; +begin + Result := False; + + if ValidarContacto(AContacto) then + begin + ShowHourglassCursor; + + if AContacto.EsNuevo then + begin + AContacto.Edit; + AContacto.ID_EMPRESA := AppFactuGES.EmpresaActiva.ID; + AContacto.Post; + end; + + dtDetails := AContacto.DataTable.GetDetailDataTables; + for i := 0 to dtDetails.Count - 1 do + begin + if (TDADataTable(dtDetails.Items[i])).State in dsEditModes then + (TDADataTable(dtDetails.Items[i])).Post; + end; + + try + AContacto.DataTable.ApplyUpdates; + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TContactosController.Localizar(AContactos: IBizContacto; + const ID: Integer): Boolean; +begin + Result := True; + ShowHourglassCursor; + try + with AContactos.DataTable do + begin + DisableControls; + First; + if not Locate(fld_ContactosID, ID, []) then + Result := False; + EnableControls; + end; + finally + HideHourglassCursor; + end; +end; + +function TContactosController.ValidarContacto(AContacto: IBizContacto): Boolean; +begin + if not Assigned(AContacto) then + raise Exception.Create ('Contacto no asignado'); + + if (AContacto.DataTable.State in dsEditModes) then + AContacto.DataTable.Post; + + if Length(AContacto.NOMBRE) = 0 then + raise Exception.Create('Debe indicar al menos el nombre de este contacto.'); + + // Asegurarse de valores en campos "automticos" + AContacto.Edit; + AContacto.USUARIO := AppFactuGES.UsuarioActivo.UserName; + AContacto.Post; + + Result := True; +end; + +function TContactosController._Vacio: IBizContacto; +begin + Result := Buscar(ID_NULO); +end; + +procedure TContactosController.FiltrarEmpresa(AContacto: IBizContacto); +var + Condicion: TDAWhereExpression; +begin + if AContacto.DataTable.Active then + AContacto.DataTable.Active := False; + + // Filtrar los presupuestos actuales por empresa + with AContacto.DataTable.DynamicWhere do + begin + // (ID_EMPRESA >= ID) + Condicion := NewBinaryExpression(NewField('', fld_ContactosID_EMPRESA), NewConstant(AppFactuGES.EmpresaActiva.ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; +end; + +end. diff --git a/Source/Modulos/Contactos/Controller/uDatosBancariosContactoController.dcu b/Source/Modulos/Contactos/Controller/uDatosBancariosContactoController.dcu new file mode 100644 index 0000000..4db9631 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uDatosBancariosContactoController.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uDatosBancariosContactoController.pas b/Source/Modulos/Contactos/Controller/uDatosBancariosContactoController.pas new file mode 100644 index 0000000..9b35aaf --- /dev/null +++ b/Source/Modulos/Contactos/Controller/uDatosBancariosContactoController.pas @@ -0,0 +1,86 @@ +unit uDatosBancariosContactoController; + +interface + +uses + Windows, Forms, Classes, Controls, Contnrs, SysUtils, uDADataTable, + uBizContactos, uBizContactosDatosBancarios, uIDataModuleContactos, + uControllerBase; + +type + IDatosBancariosContactoController = interface(IControllerBase) + ['{2E1C410A-B11D-4E1C-A7DF-9321BAEA5952}'] + procedure Ver(ADatoBancario : IBizContactosDatosBancarios); + function Localizar(ADatosBancarios: IBizContactosDatosBancarios; const ID : Integer): Boolean; + end; + + TDatosBancariosContactoController = class(TControllerBase, IDatosBancariosContactoController) + private + FDataModule : IDataModuleContactos; + public + procedure Ver(ADatoBancario : IBizContactosDatosBancarios); + function Localizar(ADatosBancarios: IBizContactosDatosBancarios; const ID : Integer): Boolean; + constructor Create; override; + destructor Destroy; override; + end; + +implementation + +{ TDatosBancariosContactoController } + +uses + uDataModuleContactos, schContactosClient_Intf, + uEditorRegistryUtils, cxControls, uIEditorDatoBancarioContacto; + + +constructor TDatosBancariosContactoController.Create; +begin + inherited; + FDataModule := TDataModuleContactos.Create(Nil); +end; + +destructor TDatosBancariosContactoController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + +function TDatosBancariosContactoController.Localizar( + ADatosBancarios: IBizContactosDatosBancarios; const ID : Integer): Boolean; +begin + Result := True; + ShowHourglassCursor; + try + with ADatosBancarios.DataTable do + begin + DisableControls; + First; + if not Locate(fld_DatosBancariosID, ID, []) then + Result := False; + EnableControls; + end; + finally + HideHourglassCursor; + end; +end; + +procedure TDatosBancariosContactoController.Ver( + ADatoBancario : IBizContactosDatosBancarios); +var + AEditor : IEditorDatoBancarioContacto; +begin + AEditor := NIL; + + CreateEditor('EditorDatoBancarioContacto', IEditorDatoBancarioContacto, AEditor); + if Assigned(AEditor) then + try + AEditor.DatoBancario := ADatoBancario; + AEditor.Controller := Self; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +end. diff --git a/Source/Modulos/Contactos/Controller/uDireccionesContactoController.dcu b/Source/Modulos/Contactos/Controller/uDireccionesContactoController.dcu new file mode 100644 index 0000000..cc6ce42 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uDireccionesContactoController.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uDireccionesContactoController.pas b/Source/Modulos/Contactos/Controller/uDireccionesContactoController.pas new file mode 100644 index 0000000..50652c6 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/uDireccionesContactoController.pas @@ -0,0 +1,153 @@ +unit uDireccionesContactoController; + +interface + +uses + Windows, Forms, Classes, Controls, Contnrs, SysUtils, uDADataTable, + uBizContactos, uBizDireccionesContacto, uIDataModuleContactos, + uControllerBase; + +type + IDireccionesContactoController = interface(IControllerBase) + ['{9B6CB172-F32C-414F-A0E2-99920CAF88FB}'] + procedure CopiarDireccionFiscal(AContacto: IBizContacto; ADireccion: IBizDireccionesContacto; AAnadir : Boolean = True); + procedure CopiarDireccion(ADireccionOrigen: IBizDireccionesContacto; ADireccionDestino: IBizDireccionesContacto; AAnadir : Boolean = True); + procedure Ver(ADireccion : IBizDireccionesContacto); + function Localizar(ADirecciones: IBizDireccionesContacto; const ID : Integer): Boolean; + function Nuevo : IBizDireccionesContacto; + end; + + TDireccionesContactoController = class(TControllerBase, IDireccionesContactoController) + private + FDataModule : IDataModuleContactos; + public + procedure CopiarDireccionFiscal(AContacto: IBizContacto; ADireccion: IBizDireccionesContacto; AAnadir : Boolean = True); + procedure CopiarDireccion(ADireccionOrigen: IBizDireccionesContacto; ADireccionDestino: IBizDireccionesContacto; AAnadir : Boolean = True); + procedure Ver(ADireccion : IBizDireccionesContacto); + function Localizar(ADirecciones: IBizDireccionesContacto; const ID : Integer): Boolean; + function Nuevo : IBizDireccionesContacto; + constructor Create; override; + destructor Destroy; override; + end; + +implementation + +{ TDireccionesContactoController } + +uses + uDataModuleContactos, schContactosClient_Intf, uIEditorDireccionContacto, + uEditorRegistryUtils, cxControls, uDataTableUtils; + + +procedure TDireccionesContactoController.CopiarDireccion(ADireccionOrigen, + ADireccionDestino: IBizDireccionesContacto; AAnadir: Boolean); +begin + if not Assigned(ADireccionOrigen) then + raise Exception.Create ('Direccin de origen no asignada (CopiarDireccion)'); + + if not Assigned(ADireccionDestino) then + raise Exception.Create ('Direccin de destino no asignada (CopiarDireccion)'); + + ADireccionOrigen.Active := True; + ADireccionDestino.Active := True; + + DuplicarRegistro(ADireccionOrigen.DataTable, ADireccionDestino.DataTable, True, True, AAnadir); +end; + +procedure TDireccionesContactoController.CopiarDireccionFiscal( + AContacto: IBizContacto; ADireccion: IBizDireccionesContacto; + AAnadir: Boolean); +begin + if not Assigned(AContacto) then + raise Exception.Create ('Contacto no asignado (CopiarDireccionFiscal)'); + + if not Assigned(ADireccion) then + raise Exception.Create ('Direccin no asignada (CopiarDireccionFiscal)'); + + AContacto.Active := True; + ADireccion.Active := True; + + if AAnadir then + ADireccion.DataTable.Insert + else + ADireccion.DataTable.Edit; + try + with ADireccion do + begin + NOMBRE := AContacto.NOMBRE; + CALLE := AContacto.CALLE; + POBLACION := AContacto.POBLACION; + PROVINCIA := AContacto.PROVINCIA; + CODIGO_POSTAL := AContacto.CODIGO_POSTAL; + TELEFONO := AContacto.TELEFONO_1; + FAX := AContacto.FAX; + MOVIL := AContacto.MOVIL_1; + EMAIL := AContacto.EMAIL_1; + PERSONA_CONTACTO := AContacto.PERSONA_CONTACTO; + end; + finally + ADireccion.DataTable.Post; + end; +end; + +constructor TDireccionesContactoController.Create; +begin + inherited; + FDataModule := TDataModuleContactos.Create(Nil); +end; + +destructor TDireccionesContactoController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + +function TDireccionesContactoController.Localizar( + ADirecciones: IBizDireccionesContacto; const ID: Integer): Boolean; +begin + Result := True; + ShowHourglassCursor; + try + with ADirecciones.DataTable do + begin + DisableControls; + First; + if not Locate(fld_DireccionesContactoID, ID, []) then + Result := False; + EnableControls; + end; + finally + HideHourglassCursor; + end; +end; + +function TDireccionesContactoController.Nuevo: IBizDireccionesContacto; +var + ADireccion : IBizDireccionesContacto; +begin + ADireccion := FDataModule.NewDireccion; + ADireccion.DataTable.Active := True; + ADireccion.Insert; + Result := ADireccion; +end; + +procedure TDireccionesContactoController.Ver( + ADireccion: IBizDireccionesContacto); +var + AEditor : IEditorEditorDireccion; +begin + AEditor := NIL; + + CreateEditor('EditorDireccion', IEditorEditorDireccion, AEditor); + if Assigned(AEditor) then + try + AEditor.Direccion := ADireccion; + AEditor.Controller := Self; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +end. diff --git a/Source/Modulos/Contactos/Controller/uEmpleadosController.dcu b/Source/Modulos/Contactos/Controller/uEmpleadosController.dcu new file mode 100644 index 0000000..0d7430b Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uEmpleadosController.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uEmpleadosController.pas b/Source/Modulos/Contactos/Controller/uEmpleadosController.pas new file mode 100644 index 0000000..8896343 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/uEmpleadosController.pas @@ -0,0 +1,299 @@ +unit uEmpleadosController; + +interface + +uses + uCustomEditor, Classes, + uContactosController, uBizContactos, + uIEditorEmpleados, uIEditorEmpleado, uIDataModuleContactos, uIDataModuleEmpleados; + +type + IEmpleadosController = interface(IContactosController) + ['{A3841871-7EF6-4847-9758-EA2B1C521D4A}'] + function EsEliminable(AEmpleado: IBizContacto): Boolean; + function Eliminar(AEmpleado: IBizContacto; AllItems: Boolean = false): Boolean; overload; + procedure Preview(AEmpleado : IBizEmpleado; AllItems: Boolean = false); + procedure Print(AEmpleado : IBizEmpleado; AllItems: Boolean = false); + function DarListaContratosEmpleado: TStringList; + function DarListaEmpleadosConMovil: TStringList; + end; + + TEmpleadosController = class(TContactosController, IEmpleadosController) + protected + function ValidarContacto(AContacto : IBizContacto): Boolean; override; + + public + constructor Create; override; + + function Duplicar(AContacto: IBizContacto): IBizContacto; override; + + function Buscar(const ID: Integer): IBizContacto; override; + function BuscarTodos: IBizContacto; override; + function Nuevo : IBizContacto; override; + procedure Ver(AContacto : IBizContacto); override; + procedure VerTodos(AContactos: IBizContacto); override; + + function Eliminar(AEmpleado: IBizContacto; AllItems: Boolean = false): Boolean; overload; + function EsEliminable(AEmpleado: IBizContacto): Boolean; + + function DarListaContratosEmpleado: TStringList; + function DarListaEmpleadosConMovil: TStringList; + + procedure Preview(AEmpleado : IBizEmpleado; AllItems: Boolean = false); + procedure Print(AEmpleado : IBizEmpleado; AllItems: Boolean = false); + end; + +implementation + +uses + Windows, SysUtils, cxControls, Dialogs, uDataModuleEmpleados, uEditorRegistryUtils, + uDataTableUtils, uDADataTable, DB, schContactosClient_Intf, uFichasEmpleadoReportController, + uEditorGridBase, uIntegerListUtils; + +{ TEmpleadoController } + +function TEmpleadosController.Buscar(const ID: Integer): IBizContacto; +begin + Result := (FDataModule as IDataModuleEmpleados).GetItem(ID); + FiltrarEmpresa(Result); +end; + +function TEmpleadosController.BuscarTodos: IBizContacto; +begin + Result := (FDataModule as IDataModuleEmpleados).GetItems; + FiltrarEmpresa(Result); +end; + +constructor TEmpleadosController.Create; +begin + inherited; + FDataModule := TDataModuleEmpleados.Create(Nil); +end; + +function TEmpleadosController.DarListaContratosEmpleado: TStringList; +begin + Result := (FDataModule as IDataModuleEmpleados).DarListaContratosEmpleado; +end; + +function TEmpleadosController.DarListaEmpleadosConMovil: TStringList; +var + AEmpleados: IBizEmpleado; + AStr : String; +begin + Result := TStringList.Create; + AEmpleados := IBizEmpleado(BuscarTodos); + ShowHourglassCursor; + try + AEmpleados.DataTable.Active := True; + with Result do + begin + AEmpleados.DataTable.First; + while not AEmpleados.DataTable.EOF do + begin + AStr := AEmpleados.NOMBRE; + if not AEmpleados.MOVIL_1IsNull then + AStr := AStr + '. Tlf: ' + AEmpleados.MOVIL_1; + Add(AStr); + AEmpleados.DataTable.Next; + end; + end; + finally + AEmpleados := NIL; + HideHourglassCursor; + end; +end; + +function TEmpleadosController.Duplicar(AContacto: IBizContacto): IBizContacto; +begin + Result := inherited Duplicar(AContacto); +end; + +function TEmpleadosController.Eliminar(AEmpleado: IBizContacto; AllItems: Boolean = false): Boolean; +//En el caso de eliminar almenos un elemento del conjunto se devuelve true +var + bEliminado: Boolean; +begin + bEliminado := False; + + if not Assigned(AEmpleado) then + raise Exception.Create ('Contacto no asignado'); + + ShowHourglassCursor; + try + if not AEmpleado.DataTable.Active then + AEmpleado.DataTable.Active := True; + + if (AEmpleado.State in dsEditModes) then + AEmpleado.Cancel; + + //Siempre eliminaremos el seleccionado + if EsEliminable(AEmpleado) then + begin + AEmpleado.Delete; + bEliminado := True; + end; + + //En el caso de querer eliminar todos los items del objeto AEmpleado + if AllItems then + begin + with AEmpleado.DataTable do + begin + First; + while not EOF do + begin + if EsEliminable(AEmpleado) then + begin + AEmpleado.Delete; + bEliminado := True + end + else Next; + end; + end; + end; + + if bEliminado then + begin + AEmpleado.DataTable.ApplyUpdates; + Result := True; + end + else + Result := False; + + finally + HideHourglassCursor; + end; +end; + +function TEmpleadosController.EsEliminable(AEmpleado: IBizContacto): Boolean; +begin + if not Assigned(AEmpleado) then + raise Exception.Create ('Contacto no asignado: EsEliminable'); + + Result := True; +end; + +function TEmpleadosController.Nuevo: IBizContacto; +var + AContacto : IBizEmpleado; +begin + AContacto := (FDataModule as IDataModuleEmpleados).NewItem; + FiltrarEmpresa(AContacto); + AContacto.DataTable.Active := True; + AContacto.Insert; + Result := AContacto; +end; + +procedure TEmpleadosController.Preview(AEmpleado: IBizEmpleado; AllItems: Boolean); +var + AReportController : IFichasEmpleadoReportController; + ID_Fichas: TIntegerList; +begin + AReportController := TFichasEmpleadoReportController.Create; + ID_Fichas := TIntegerList.Create; + try + //Si deseamos previsualizar todos los items del objeto albaran + if AllItems then + begin + with AEmpleado.DataTable do + begin + First; + while not EOF do + begin + ID_Fichas.Add(AEmpleado.ID); + Next; + end; + end; + end + //Solo previsualizamos el item seleccionado + else + ID_Fichas.Add(AEmpleado.ID); + + AReportController.Preview(ID_Fichas); + finally + AReportController := NIL; + FreeANDNil(ID_Fichas); + end; +end; + +procedure TEmpleadosController.Print(AEmpleado: IBizEmpleado; AllItems: Boolean); +var + AReportController : IFichasEmpleadoReportController; + ID_Fichas: TIntegerList; + +begin + AReportController := TFichasEmpleadoReportController.Create; + ID_Fichas := TIntegerList.Create; + + try + //Si deseamos previsualizar todos los items del objeto albaran + if AllItems then + begin + with AEmpleado.DataTable do + begin + First; + while not EOF do + begin + ID_Fichas.Add(AEmpleado.ID); + Next; + end; + end; + end + //Solo previsualizamos el item seleccionado + else + ID_Fichas.Add(AEmpleado.ID); + + AReportController.Print(ID_Fichas); + finally + AReportController := NIL; + FreeANDNIL(ID_Fichas); + end; +end; + +function TEmpleadosController.ValidarContacto(AContacto: IBizContacto): Boolean; +begin + Result := inherited ValidarContacto(AContacto); + + if Result then + begin + if not (AContacto as IBizEmpleado).FECHA_BAJAIsNull and + (Length((AContacto as IBizEmpleado).CAUSA_BAJA) = 0) then + raise Exception.Create('Debe indicar la causa de la baja del empleado.'); + end; +end; + +procedure TEmpleadosController.Ver(AContacto: IBizContacto); +var + AEditor : IEditorEmpleado; +begin + AEditor := NIL; + + CreateEditor('EditorEmpleado', IEditorEmpleado, AEditor); + if Assigned(AEditor) then + try + AEditor.Contacto := AContacto; + AEditor.Controller := Self; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +procedure TEmpleadosController.VerTodos(AContactos: IBizContacto); +var + AEditor : IEditorEmpleados; +begin + AEditor := NIL; + + CreateEditor('EditorEmpleados', IEditorEmpleados, AEditor); + if Assigned(AEditor) then + with AEditor do + begin + Contactos := AContactos; + Controller := Self; + MultiSelect := True; + ShowEmbedded; + end; +end; + +end. diff --git a/Source/Modulos/Contactos/Controller/uEtiquetasContactosReportController.dcu b/Source/Modulos/Contactos/Controller/uEtiquetasContactosReportController.dcu new file mode 100644 index 0000000..b06c64a Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uEtiquetasContactosReportController.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uEtiquetasContactosReportController.pas b/Source/Modulos/Contactos/Controller/uEtiquetasContactosReportController.pas new file mode 100644 index 0000000..4b749b2 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/uEtiquetasContactosReportController.pas @@ -0,0 +1,119 @@ +unit uEtiquetasContactosReportController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleEtiquetasContactosReport, + uEmpleadosController, uIntegerListUtils; + +type + IEtiquetasContactosReportController = interface(IControllerBase) + ['{76BB35E3-554E-4D30-8D3E-54E488EF82E2}'] + procedure Preview(const ListaID : TIntegerList); + procedure Print(const ListaID : TIntegerList); + end; + + TEtiquetasContactosReportController = class(TControllerBase, IEtiquetasContactosReportController) + private + FDataModule : IDataModuleEtiquetasContactosReport; + function CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; + public + constructor Create; override; + destructor Destroy; override; + + procedure Preview(const ListaID : TIntegerList); + procedure Print(const ListaID : TIntegerList); + end; + + +implementation + +uses + uROTypes, uEditorRegistryUtils, uIEditorEtiquetasContactosPreview, + uEditorPreview, uDataModuleContactos, uEditorBase, cxControls; + +{ TEtiquetasContactosReportController } + +constructor TEtiquetasContactosReportController.Create; +begin + inherited; + FDataModule := TDataModuleContactos.Create(Nil); +end; + +function TEtiquetasContactosReportController.CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + + +destructor TEtiquetasContactosReportController.Destroy; +begin + FDataModule := NIL; + inherited; +end; + +procedure TEtiquetasContactosReportController.Preview(const ListaID : TIntegerList); +var + AStream: Binary; + AEditor : IEditorEtiquetasContactosPreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(ListaID); + try + CreateEditor('EditorEtiquetasContactosPreview', IEditorEtiquetasContactosPreview, AEditor); + if Assigned(AEditor) then + begin + try + AEditor.Controller := Self; + AEditor.ListaID := ListaID; + AEditor.LoadFromStream(AStream); + AEditor.Preview; + finally + AEditor.Release; + end; + end; + finally + FreeAndNil(AStream); + AEditor := Nil; + end; + finally + HideHourglassCursor; + end; +end; + +procedure TEtiquetasContactosReportController.Print(const ListaID : TIntegerList); +var + AStream: Binary; + AEditor : IEditorEtiquetasContactosPreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(ListaID); + try + CreateEditor('EditorEtiquetasContactosPreview', IEditorEtiquetasContactosPreview, AEditor); + if Assigned(AEditor) then + begin + try + AEditor.Controller := Self; + AEditor.ListaID := ListaID; + AEditor.LoadFromStream(AStream); + AEditor.Print; + finally + AEditor.Release; + end; + end; + finally + FreeAndNil(AStream); + AEditor := Nil; + end; + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Contactos/Controller/uFichasEmpleadoReportController.dcu b/Source/Modulos/Contactos/Controller/uFichasEmpleadoReportController.dcu new file mode 100644 index 0000000..f43fa3a Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uFichasEmpleadoReportController.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uFichasEmpleadoReportController.pas b/Source/Modulos/Contactos/Controller/uFichasEmpleadoReportController.pas new file mode 100644 index 0000000..a896374 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/uFichasEmpleadoReportController.pas @@ -0,0 +1,119 @@ +unit uFichasEmpleadoReportController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleFichasEmpleadoReport, + uEmpleadosController, uIntegerListUtils; + +type + IFichasEmpleadoReportController = interface(IControllerBase) + ['{8E43F55F-7D5A-4778-8523-7C105EAEB1AB}'] + procedure Preview(const ListaID : TIntegerList); + procedure Print(const ListaID : TIntegerList); + end; + + TFichasEmpleadoReportController = class(TControllerBase, IFichasEmpleadoReportController) + private + FDataModule : IDataModuleFichasEmpleadoReport; + function CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; + public + constructor Create; override; + destructor Destroy; override; + + procedure Preview(const ListaID : TIntegerList); + procedure Print(const ListaID : TIntegerList); + end; + + +implementation + +uses + uROTypes, uEditorRegistryUtils, uIEditorFichasEmpleadoPreview, + uEditorPreview, uDataModuleEmpleados, uEditorBase, cxControls; + +{ TFichasEmpleadoReportController } + +constructor TFichasEmpleadoReportController.Create; +begin + inherited; + FDataModule := TDataModuleEmpleados.Create(Nil); +end; + +function TFichasEmpleadoReportController.CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + + +destructor TFichasEmpleadoReportController.Destroy; +begin + FDataModule := NIL; + inherited; +end; + +procedure TFichasEmpleadoReportController.Preview(const ListaID : TIntegerList); +var + AStream: Binary; + AEditor : IEditorFichasEmpleadoPreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(ListaID); + try + CreateEditor('EditorFichasEmpleadoPreview', IEditorFichasEmpleadoPreview, AEditor); + if Assigned(AEditor) then + begin + try + AEditor.Controller := Self; + AEditor.ListaID := ListaID; + AEditor.LoadFromStream(AStream); + AEditor.Preview; + finally + AEditor.Release; + end; + end; + finally + FreeAndNil(AStream); + AEditor := Nil; + end; + finally + HideHourglassCursor; + end; +end; + +procedure TFichasEmpleadoReportController.Print(const ListaID : TIntegerList); +var + AStream: Binary; + AEditor : IEditorFichasEmpleadoPreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(ListaID); + try + CreateEditor('EditorFichasEmpleadoPreview', IEditorFichasEmpleadoPreview, AEditor); + if Assigned(AEditor) then + begin + try + AEditor.Controller := Self; + AEditor.ListaID := ListaID; + AEditor.LoadFromStream(AStream); + AEditor.Print; + finally + AEditor.Release; + end; + end; + finally + FreeAndNil(AStream); + AEditor := Nil; + end; + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Contactos/Controller/uGruposClienteController.dcu b/Source/Modulos/Contactos/Controller/uGruposClienteController.dcu new file mode 100644 index 0000000..bc39900 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uGruposClienteController.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uGruposClienteController.pas b/Source/Modulos/Contactos/Controller/uGruposClienteController.pas new file mode 100644 index 0000000..4a268ca --- /dev/null +++ b/Source/Modulos/Contactos/Controller/uGruposClienteController.pas @@ -0,0 +1,219 @@ +unit uGruposClienteController; + +interface + + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uEditorDBItem, + uIDataModuleClientes, uBizGruposCliente; + +type + IGruposClienteController = interface(IControllerBase) + ['{32D31B02-76A6-4C9B-85D4-3C632969AC79}'] + function BuscarTodos: IBizGrupoCliente; + procedure VerTodos(AGruposCliente: IBizGrupoCliente); + procedure Anadir(AGrupoCliente : IBizGrupoCliente); + function Eliminar(AGrupoCliente : IBizGrupoCliente): Boolean; + function Guardar(AGrupoCliente : IBizGrupoCliente): Boolean; + procedure DescartarCambios(AGrupoCliente : IBizGrupoCliente); + function Localizar(AGruposCliente: IBizGrupoCliente; ADescripcion:String): Boolean; + function DarListaGruposCliente: TStringList; + end; + + TGruposClienteController = class(TControllerBase, IGruposClienteController) + protected + FDataModule : IDataModuleClientes; + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; + function ValidarGrupoCliente(AGrupoCliente: IBizGrupoCliente): Boolean; + procedure AsignarDataModule; virtual; + public + constructor Create; override; + destructor Destroy; override; + + function Eliminar(AGrupoCliente : IBizGrupoCliente): Boolean; + function Guardar(AGrupoCliente : IBizGrupoCliente): Boolean; + procedure DescartarCambios(AGrupoCliente : IBizGrupoCliente); virtual; + procedure Anadir(AGrupoCliente : IBizGrupoCliente); + function BuscarTodos: IBizGrupoCliente; + procedure VerTodos(AGruposCliente: IBizGrupoCliente); + function Localizar(AGruposCliente: IBizGrupoCliente; ADescripcion:String): Boolean; + function DarListaGruposCliente: TStringList; + end; + +implementation + +uses + cxControls, DB, uEditorRegistryUtils, + uIEditorGruposCliente, uDataModuleClientes, + uDAInterfaces, uDataTableUtils, + uDateUtils, uROTypes, DateUtils, Controls, Windows, schContactosClient_Intf; + +{ TGruposClienteController } + +procedure TGruposClienteController.Anadir(AGrupoCliente: IBizGrupoCliente); +begin + AGrupoCliente.Insert; +end; + +procedure TGruposClienteController.AsignarDataModule; +begin + FDataModule := TDataModuleClientes.Create(Nil); +end; + +function TGruposClienteController.BuscarTodos: IBizGrupoCliente; +begin + Result := FDataModule.GetGruposCliente; +end; + +constructor TGruposClienteController.Create; +begin + inherited; + AsignarDataModule; +end; + +function TGruposClienteController.CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + +function TGruposClienteController.DarListaGruposCliente: TStringList; +var + AGruposCliente: IBizGrupoCliente; +begin + AGruposCliente := BuscarTodos; + AGruposCliente.DataTable.Active := True; + Result := TStringList.Create; + try + with Result do + begin + AGruposCliente.DataTable.First; + while not AGruposCliente.DataTable.EOF do + begin + Add(AGruposCliente.DESCRIPCION); + AGruposCliente.DataTable.Next; + end; + end; + finally + AGruposCliente := NIL; + end; +end; + +procedure TGruposClienteController.DescartarCambios(AGrupoCliente: IBizGrupoCliente); +begin + if not Assigned(AGrupoCliente) then + raise Exception.Create ('GrupoCliente no asignado'); + + ShowHourglassCursor; + try + if (AGrupoCliente.State in dsEditModes) then + AGrupoCliente.Cancel; + + AGrupoCliente.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TGruposClienteController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + +function TGruposClienteController.ValidarGrupoCliente(AGrupoCliente: IBizGrupoCliente): Boolean; +begin + if not Assigned(AGrupoCliente) then + raise Exception.Create ('GrupoCliente no asignada'); + + if (AGrupoCliente.DataTable.State in dsEditModes) then + AGrupoCliente.DataTable.Post; + + if Length(AGrupoCliente.DESCRIPCION) = 0 then + raise Exception.Create('Debe indicar al menos la descripcin de este grupo.'); + + Result := True; +end; + +procedure TGruposClienteController.VerTodos(AGruposCliente: IBizGrupoCliente); +var + AEditor : IEditorGruposCliente; +begin + AEditor := NIL; + + CreateEditor('EditorGruposCliente', IEditorGruposCliente, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.GruposCliente := AGruposCliente; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +function TGruposClienteController.Eliminar(AGrupoCliente: IBizGrupoCliente): Boolean; +begin + if not Assigned(AGrupoCliente) then + raise Exception.Create ('GrupoCliente no asignada'); + + ShowHourglassCursor; + try + if (AGrupoCliente.State in dsEditModes) then + AGrupoCliente.Cancel; + + AGrupoCliente.Delete; + AGrupoCliente.DataTable.ApplyUpdates; + HideHourglassCursor; + Result := True; + finally + HideHourglassCursor; + end; +end; + +procedure TGruposClienteController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +begin + inherited; +// +end; + +function TGruposClienteController.Guardar(AGrupoCliente: IBizGrupoCliente): Boolean; +begin + Result := False; + + if ValidarGrupoCliente(AGrupoCliente) then + begin + ShowHourglassCursor; + try + if (AGrupoCliente.DataTable.State in dsEditModes) then + AGrupoCliente.DataTable.Post; + + AGrupoCliente.DataTable.ApplyUpdates; + + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TGruposClienteController.Localizar(AGruposCliente: IBizGrupoCliente; ADescripcion: String): Boolean; +begin + Result := True; + ShowHourglassCursor; + try + with AGruposCliente.DataTable do + begin + DisableControls; + First; + if not Locate(fld_GruposClienteDESCRIPCION, ADescripcion, []) then + Result := False; + EnableControls; + end; + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Contactos/Controller/uGruposEmpleadoController.dcu b/Source/Modulos/Contactos/Controller/uGruposEmpleadoController.dcu new file mode 100644 index 0000000..9e85380 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uGruposEmpleadoController.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uGruposEmpleadoController.pas b/Source/Modulos/Contactos/Controller/uGruposEmpleadoController.pas new file mode 100644 index 0000000..2ec0899 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/uGruposEmpleadoController.pas @@ -0,0 +1,219 @@ +unit uGruposEmpleadoController; + +interface + + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uEditorDBItem, + uIDataModuleEmpleados, uBizGruposEmpleado; + +type + IGruposEmpleadoController = interface(IControllerBase) + ['{6820BA19-5E5E-459F-9001-FB4A712ACC4C}'] + function BuscarTodos: IBizGrupoEmpleado; + procedure VerTodos(AGruposEmpleado: IBizGrupoEmpleado); + procedure Anadir(AGrupoEmpleado : IBizGrupoEmpleado); + function Eliminar(AGrupoEmpleado : IBizGrupoEmpleado): Boolean; + function Guardar(AGrupoEmpleado : IBizGrupoEmpleado): Boolean; + procedure DescartarCambios(AGrupoEmpleado : IBizGrupoEmpleado); + function Localizar(AGruposEmpleado: IBizGrupoEmpleado; ADescripcion:String): Boolean; + function DarListaGruposEmpleado: TStringList; + end; + + TGruposEmpleadoController = class(TControllerBase, IGruposEmpleadoController) + protected + FDataModule : IDataModuleEmpleados; + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; + function ValidarGrupoEmpleado(AGrupoEmpleado: IBizGrupoEmpleado): Boolean; + procedure AsignarDataModule; virtual; + public + constructor Create; override; + destructor Destroy; override; + + function Eliminar(AGrupoEmpleado : IBizGrupoEmpleado): Boolean; + function Guardar(AGrupoEmpleado : IBizGrupoEmpleado): Boolean; + procedure DescartarCambios(AGrupoEmpleado : IBizGrupoEmpleado); virtual; + procedure Anadir(AGrupoEmpleado : IBizGrupoEmpleado); + function BuscarTodos: IBizGrupoEmpleado; + procedure VerTodos(AGruposEmpleado: IBizGrupoEmpleado); + function Localizar(AGruposEmpleado: IBizGrupoEmpleado; ADescripcion:String): Boolean; + function DarListaGruposEmpleado: TStringList; + end; + +implementation + +uses + cxControls, DB, uEditorRegistryUtils, + uIEditorGruposEmpleado, uDataModuleEmpleados, + uDAInterfaces, uDataTableUtils, + uDateUtils, uROTypes, DateUtils, Controls, Windows, schContactosClient_Intf; + +{ TGruposEmpleadoController } + +procedure TGruposEmpleadoController.Anadir(AGrupoEmpleado: IBizGrupoEmpleado); +begin + AGrupoEmpleado.Insert; +end; + +procedure TGruposEmpleadoController.AsignarDataModule; +begin + FDataModule := TDataModuleEmpleados.Create(Nil); +end; + +function TGruposEmpleadoController.BuscarTodos: IBizGrupoEmpleado; +begin + Result := FDataModule.GetGruposEmpleado; +end; + +constructor TGruposEmpleadoController.Create; +begin + inherited; + AsignarDataModule; +end; + +function TGruposEmpleadoController.CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + +function TGruposEmpleadoController.DarListaGruposEmpleado: TStringList; +var + AGruposEmpleado: IBizGrupoEmpleado; +begin + AGruposEmpleado := BuscarTodos; + AGruposEmpleado.DataTable.Active := True; + Result := TStringList.Create; + try + with Result do + begin + AGruposEmpleado.DataTable.First; + while not AGruposEmpleado.DataTable.EOF do + begin + Add(AGruposEmpleado.DESCRIPCION); + AGruposEmpleado.DataTable.Next; + end; + end; + finally + AGruposEmpleado := NIL; + end; +end; + +procedure TGruposEmpleadoController.DescartarCambios(AGrupoEmpleado: IBizGrupoEmpleado); +begin + if not Assigned(AGrupoEmpleado) then + raise Exception.Create ('GrupoEmpleado no asignado'); + + ShowHourglassCursor; + try + if (AGrupoEmpleado.State in dsEditModes) then + AGrupoEmpleado.Cancel; + + AGrupoEmpleado.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TGruposEmpleadoController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + +function TGruposEmpleadoController.ValidarGrupoEmpleado(AGrupoEmpleado: IBizGrupoEmpleado): Boolean; +begin + if not Assigned(AGrupoEmpleado) then + raise Exception.Create ('GrupoEmpleado no asignada'); + + if (AGrupoEmpleado.DataTable.State in dsEditModes) then + AGrupoEmpleado.DataTable.Post; + + if Length(AGrupoEmpleado.DESCRIPCION) = 0 then + raise Exception.Create('Debe indicar al menos la descripcin de este grupo.'); + + Result := True; +end; + +procedure TGruposEmpleadoController.VerTodos(AGruposEmpleado: IBizGrupoEmpleado); +var + AEditor : IEditorGruposEmpleado; +begin + AEditor := NIL; + + CreateEditor('EditorGruposEmpleado', IEditorGruposEmpleado, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.GruposEmpleado := AGruposEmpleado; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +function TGruposEmpleadoController.Eliminar(AGrupoEmpleado: IBizGrupoEmpleado): Boolean; +begin + if not Assigned(AGrupoEmpleado) then + raise Exception.Create ('GrupoEmpleado no asignada'); + + ShowHourglassCursor; + try + if (AGrupoEmpleado.State in dsEditModes) then + AGrupoEmpleado.Cancel; + + AGrupoEmpleado.Delete; + AGrupoEmpleado.DataTable.ApplyUpdates; + HideHourglassCursor; + Result := True; + finally + HideHourglassCursor; + end; +end; + +procedure TGruposEmpleadoController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +begin + inherited; +// +end; + +function TGruposEmpleadoController.Guardar(AGrupoEmpleado: IBizGrupoEmpleado): Boolean; +begin + Result := False; + + if ValidarGrupoEmpleado(AGrupoEmpleado) then + begin + ShowHourglassCursor; + try + if (AGrupoEmpleado.DataTable.State in dsEditModes) then + AGrupoEmpleado.DataTable.Post; + + AGrupoEmpleado.DataTable.ApplyUpdates; + + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TGruposEmpleadoController.Localizar(AGruposEmpleado: IBizGrupoEmpleado; ADescripcion: String): Boolean; +begin + Result := True; + ShowHourglassCursor; + try + with AGruposEmpleado.DataTable do + begin + DisableControls; + First; + if not Locate(fld_GruposEmpleadoDESCRIPCION, ADescripcion, []) then + Result := False; + EnableControls; + end; + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Contactos/Controller/uGruposProveedorController.dcu b/Source/Modulos/Contactos/Controller/uGruposProveedorController.dcu new file mode 100644 index 0000000..f66c406 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uGruposProveedorController.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uGruposProveedorController.pas b/Source/Modulos/Contactos/Controller/uGruposProveedorController.pas new file mode 100644 index 0000000..e7f9583 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/uGruposProveedorController.pas @@ -0,0 +1,219 @@ +unit uGruposProveedorController; + +interface + + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uEditorDBItem, + uIDataModuleProveedores, uBizGruposProveedor; + +type + IGruposProveedorController = interface(IControllerBase) + ['{20B27FB1-ECEA-40B6-9869-5F5EC700EEDD}'] + function BuscarTodos: IBizGrupoProveedor; + procedure VerTodos(AGruposProveedor: IBizGrupoProveedor); + procedure Anadir(AGrupoProveedor : IBizGrupoProveedor); + function Eliminar(AGrupoProveedor : IBizGrupoProveedor): Boolean; + function Guardar(AGrupoProveedor : IBizGrupoProveedor): Boolean; + procedure DescartarCambios(AGrupoProveedor : IBizGrupoProveedor); + function Localizar(AGruposProveedor: IBizGrupoProveedor; ADescripcion:String): Boolean; + function DarListaGruposProveedor: TStringList; + end; + + TGruposProveedorController = class(TControllerBase, IGruposProveedorController) + protected + FDataModule : IDataModuleProveedores; + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; + function ValidarGrupoProveedor(AGrupoProveedor: IBizGrupoProveedor): Boolean; + procedure AsignarDataModule; virtual; + public + constructor Create; override; + destructor Destroy; override; + + function Eliminar(AGrupoProveedor : IBizGrupoProveedor): Boolean; + function Guardar(AGrupoProveedor : IBizGrupoProveedor): Boolean; + procedure DescartarCambios(AGrupoProveedor : IBizGrupoProveedor); virtual; + procedure Anadir(AGrupoProveedor : IBizGrupoProveedor); + function BuscarTodos: IBizGrupoProveedor; + procedure VerTodos(AGruposProveedor: IBizGrupoProveedor); + function Localizar(AGruposProveedor: IBizGrupoProveedor; ADescripcion:String): Boolean; + function DarListaGruposProveedor: TStringList; + end; + +implementation + +uses + cxControls, DB, uEditorRegistryUtils, + uIEditorGruposProveedor, uDataModuleProveedores, + uDAInterfaces, uDataTableUtils, + uDateUtils, uROTypes, DateUtils, Controls, Windows, schContactosClient_Intf; + +{ TGruposProveedorController } + +procedure TGruposProveedorController.Anadir(AGrupoProveedor: IBizGrupoProveedor); +begin + AGrupoProveedor.Insert; +end; + +procedure TGruposProveedorController.AsignarDataModule; +begin + FDataModule := TDataModuleProveedores.Create(Nil); +end; + +function TGruposProveedorController.BuscarTodos: IBizGrupoProveedor; +begin + Result := FDataModule.GetGruposProveedor; +end; + +constructor TGruposProveedorController.Create; +begin + inherited; + AsignarDataModule; +end; + +function TGruposProveedorController.CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + +function TGruposProveedorController.DarListaGruposProveedor: TStringList; +var + AGruposProveedor: IBizGrupoProveedor; +begin + AGruposProveedor := BuscarTodos; + AGruposProveedor.DataTable.Active := True; + Result := TStringList.Create; + try + with Result do + begin + AGruposProveedor.DataTable.First; + while not AGruposProveedor.DataTable.EOF do + begin + Add(AGruposProveedor.DESCRIPCION); + AGruposProveedor.DataTable.Next; + end; + end; + finally + AGruposProveedor := NIL; + end; +end; + +procedure TGruposProveedorController.DescartarCambios(AGrupoProveedor: IBizGrupoProveedor); +begin + if not Assigned(AGrupoProveedor) then + raise Exception.Create ('GrupoProveedor no asignado'); + + ShowHourglassCursor; + try + if (AGrupoProveedor.State in dsEditModes) then + AGrupoProveedor.Cancel; + + AGrupoProveedor.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TGruposProveedorController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + +function TGruposProveedorController.ValidarGrupoProveedor(AGrupoProveedor: IBizGrupoProveedor): Boolean; +begin + if not Assigned(AGrupoProveedor) then + raise Exception.Create ('GrupoProveedor no asignada'); + + if (AGrupoProveedor.DataTable.State in dsEditModes) then + AGrupoProveedor.DataTable.Post; + + if Length(AGrupoProveedor.DESCRIPCION) = 0 then + raise Exception.Create('Debe indicar al menos la descripcin de este grupo.'); + + Result := True; +end; + +procedure TGruposProveedorController.VerTodos(AGruposProveedor: IBizGrupoProveedor); +var + AEditor : IEditorGruposProveedor; +begin + AEditor := NIL; + + CreateEditor('EditorGruposProveedor', IEditorGruposProveedor, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.GruposProveedor := AGruposProveedor; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +function TGruposProveedorController.Eliminar(AGrupoProveedor: IBizGrupoProveedor): Boolean; +begin + if not Assigned(AGrupoProveedor) then + raise Exception.Create ('GrupoProveedor no asignada'); + + ShowHourglassCursor; + try + if (AGrupoProveedor.State in dsEditModes) then + AGrupoProveedor.Cancel; + + AGrupoProveedor.Delete; + AGrupoProveedor.DataTable.ApplyUpdates; + HideHourglassCursor; + Result := True; + finally + HideHourglassCursor; + end; +end; + +procedure TGruposProveedorController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +begin + inherited; +// +end; + +function TGruposProveedorController.Guardar(AGrupoProveedor: IBizGrupoProveedor): Boolean; +begin + Result := False; + + if ValidarGrupoProveedor(AGrupoProveedor) then + begin + ShowHourglassCursor; + try + if (AGrupoProveedor.DataTable.State in dsEditModes) then + AGrupoProveedor.DataTable.Post; + + AGrupoProveedor.DataTable.ApplyUpdates; + + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TGruposProveedorController.Localizar(AGruposProveedor: IBizGrupoProveedor; ADescripcion: String): Boolean; +begin + Result := True; + ShowHourglassCursor; + try + with AGruposProveedor.DataTable do + begin + DisableControls; + First; + if not Locate(fld_GruposProveedorDESCRIPCION, ADescripcion, []) then + Result := False; + EnableControls; + end; + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Contactos/Controller/uIEditorAgente.dcu b/Source/Modulos/Contactos/Controller/uIEditorAgente.dcu new file mode 100644 index 0000000..df749ad Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uIEditorAgente.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uIEditorAgentes.dcu b/Source/Modulos/Contactos/Controller/uIEditorAgentes.dcu new file mode 100644 index 0000000..353a0c0 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uIEditorAgentes.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uIEditorCliente.dcu b/Source/Modulos/Contactos/Controller/uIEditorCliente.dcu new file mode 100644 index 0000000..3804f96 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uIEditorCliente.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uIEditorClientes.dcu b/Source/Modulos/Contactos/Controller/uIEditorClientes.dcu new file mode 100644 index 0000000..f63b626 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uIEditorClientes.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uIEditorContacto.dcu b/Source/Modulos/Contactos/Controller/uIEditorContacto.dcu new file mode 100644 index 0000000..b8a16a9 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uIEditorContacto.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uIEditorContactos.dcu b/Source/Modulos/Contactos/Controller/uIEditorContactos.dcu new file mode 100644 index 0000000..e94fe4d Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uIEditorContactos.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uIEditorDatoBancarioContacto.dcu b/Source/Modulos/Contactos/Controller/uIEditorDatoBancarioContacto.dcu new file mode 100644 index 0000000..39837e5 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uIEditorDatoBancarioContacto.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uIEditorDireccionContacto.dcu b/Source/Modulos/Contactos/Controller/uIEditorDireccionContacto.dcu new file mode 100644 index 0000000..00c79f8 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uIEditorDireccionContacto.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uIEditorElegirClientes.dcu b/Source/Modulos/Contactos/Controller/uIEditorElegirClientes.dcu new file mode 100644 index 0000000..51ef4d3 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uIEditorElegirClientes.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uIEditorElegirContactos.dcu b/Source/Modulos/Contactos/Controller/uIEditorElegirContactos.dcu new file mode 100644 index 0000000..8e1e17d Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uIEditorElegirContactos.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uIEditorElegirDireccionEntrega.dcu b/Source/Modulos/Contactos/Controller/uIEditorElegirDireccionEntrega.dcu new file mode 100644 index 0000000..4a45951 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uIEditorElegirDireccionEntrega.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uIEditorElegirPersonaContacto.dcu b/Source/Modulos/Contactos/Controller/uIEditorElegirPersonaContacto.dcu new file mode 100644 index 0000000..140017d Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uIEditorElegirPersonaContacto.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uIEditorElegirProveedores.dcu b/Source/Modulos/Contactos/Controller/uIEditorElegirProveedores.dcu new file mode 100644 index 0000000..90e15ea Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uIEditorElegirProveedores.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uIEditorEmpleado.dcu b/Source/Modulos/Contactos/Controller/uIEditorEmpleado.dcu new file mode 100644 index 0000000..db5fd6a Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uIEditorEmpleado.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uIEditorEmpleados.dcu b/Source/Modulos/Contactos/Controller/uIEditorEmpleados.dcu new file mode 100644 index 0000000..d6df1de Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uIEditorEmpleados.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uIEditorEtiquetasContactosPreview.dcu b/Source/Modulos/Contactos/Controller/uIEditorEtiquetasContactosPreview.dcu new file mode 100644 index 0000000..9ce18ca Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uIEditorEtiquetasContactosPreview.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uIEditorFichasEmpleadoPreview.dcu b/Source/Modulos/Contactos/Controller/uIEditorFichasEmpleadoPreview.dcu new file mode 100644 index 0000000..f4f913a Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uIEditorFichasEmpleadoPreview.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uIEditorGruposCliente.dcu b/Source/Modulos/Contactos/Controller/uIEditorGruposCliente.dcu new file mode 100644 index 0000000..209f7a2 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uIEditorGruposCliente.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uIEditorGruposEmpleado.dcu b/Source/Modulos/Contactos/Controller/uIEditorGruposEmpleado.dcu new file mode 100644 index 0000000..11326ed Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uIEditorGruposEmpleado.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uIEditorGruposProveedor.dcu b/Source/Modulos/Contactos/Controller/uIEditorGruposProveedor.dcu new file mode 100644 index 0000000..0927105 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uIEditorGruposProveedor.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uIEditorPersonalContacto.dcu b/Source/Modulos/Contactos/Controller/uIEditorPersonalContacto.dcu new file mode 100644 index 0000000..440ee69 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uIEditorPersonalContacto.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uIEditorProveedor.dcu b/Source/Modulos/Contactos/Controller/uIEditorProveedor.dcu new file mode 100644 index 0000000..99b5d9d Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uIEditorProveedor.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uIEditorProveedores.dcu b/Source/Modulos/Contactos/Controller/uIEditorProveedores.dcu new file mode 100644 index 0000000..f77c9d6 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uIEditorProveedores.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uPersonalContactoController.dcu b/Source/Modulos/Contactos/Controller/uPersonalContactoController.dcu new file mode 100644 index 0000000..56b6cbd Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uPersonalContactoController.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uPersonalContactoController.pas b/Source/Modulos/Contactos/Controller/uPersonalContactoController.pas new file mode 100644 index 0000000..fbcba8b --- /dev/null +++ b/Source/Modulos/Contactos/Controller/uPersonalContactoController.pas @@ -0,0 +1,84 @@ +unit uPersonalContactoController; + +interface + +uses + Windows, Forms, Classes, Controls, Contnrs, SysUtils, uDADataTable, + uBizContactos, uBizContactosPersonal, uIDataModuleContactos, + uControllerBase; + +type + IPersonalContactoController = interface(IControllerBase) + ['{2A848939-9558-40DA-9886-F34D72331DA9}'] + procedure Ver(APersonal : IBizContactoPersonal); + function Localizar(APersonal: IBizContactoPersonal; const ID : Integer): Boolean; + end; + + TPersonalContactoController = class(TControllerBase, IPersonalContactoController) + private + FDataModule : IDataModuleContactos; + public + procedure Ver(APersonal : IBizContactoPersonal); + function Localizar(APersonal: IBizContactoPersonal; const ID : Integer): Boolean; + constructor Create; override; + destructor Destroy; override; + end; + +implementation + +{ TPersonalContactoController } + +uses + uDataModuleContactos, schContactosClient_Intf, uIEditorPersonalContacto, + uEditorRegistryUtils, cxControls; + +constructor TPersonalContactoController.Create; +begin + inherited; + FDataModule := TDataModuleContactos.Create(Nil); +end; + +destructor TPersonalContactoController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + +function TPersonalContactoController.Localizar( + APersonal: IBizContactoPersonal; const ID: Integer): Boolean; +begin + Result := True; + ShowHourglassCursor; + try + with APersonal.DataTable do + begin + DisableControls; + First; + if not Locate(fld_PersonalContactoID, ID, []) then + Result := False; + EnableControls; + end; + finally + HideHourglassCursor; + end; +end; + +procedure TPersonalContactoController.Ver( + APersonal: IBizContactoPersonal); +var + AEditor : IEditorPersonalContacto; +begin + AEditor := NIL; + + CreateEditor('EditorPersonalContacto', IEditorPersonalContacto, AEditor); + if Assigned(AEditor) then + try + AEditor.Personal := APersonal; + AEditor.Controller := Self; + AEditor.ShowModal; + finally + AEditor.Release; + end; +end; + +end. diff --git a/Source/Modulos/Contactos/Controller/uProveedoresController.dcu b/Source/Modulos/Contactos/Controller/uProveedoresController.dcu new file mode 100644 index 0000000..9cec7f5 Binary files /dev/null and b/Source/Modulos/Contactos/Controller/uProveedoresController.dcu differ diff --git a/Source/Modulos/Contactos/Controller/uProveedoresController.pas b/Source/Modulos/Contactos/Controller/uProveedoresController.pas new file mode 100644 index 0000000..efd1c22 --- /dev/null +++ b/Source/Modulos/Contactos/Controller/uProveedoresController.pas @@ -0,0 +1,488 @@ +unit uProveedoresController; + +interface + +uses + Classes, uCustomEditor, uContactosController, uBizContactos, + uBizDireccionesContacto, uDireccionesContactoController, + uIEditorProveedores, uIEditorProveedor, uIDataModuleContactos, + uIDataModuleProveedores; + +type + IProveedoresController = interface(IContactosController) + ['{50F10D01-5120-470D-A61D-99FE8A76DF93}'] + function BuscarSubcontratas: IBizProveedor; + function BuscarTodosTiendaWeb: IBizProveedor; + function ElegirDireccionEntrega(AProveedor: IBizProveedor; AMensaje: String): IBizDireccionesContacto; + function EsEliminable(AProveedor: IBizContacto): Boolean; + function Eliminar(AProveedor: IBizContacto; AllItems: Boolean = false): Boolean; overload; + procedure Preview(AProveedor : IBizProveedor; AllItems: Boolean = false); + procedure Print(AProveedor : IBizProveedor; AllItems: Boolean = false); + function DarListaDescripcionesProveedores: TStringList; + procedure VerPedidosDeProveedor(AProveedor : IBizProveedor); + procedure VerAlbaranesDeProveedor(AProveedor : IBizProveedor); + procedure VerDevolucionesDeProveedor(AProveedor : IBizProveedor); + procedure VerFacturasDeProveedor(AProveedor : IBizProveedor); + procedure VerRecibosDeProveedor(AProveedor : IBizProveedor); + function DarListaCuentasBancarias(const IdProveedor: Integer): TStringList; + end; + + TProveedoresController = class(TContactosController, IProveedoresController) + protected + FDireccionesController : IDireccionesContactoController; + public + constructor Create; override; + destructor Destroy; override; + + function Buscar(const ID: Integer): IBizContacto; override; + function BuscarTodos: IBizContacto; override; + function BuscarTodosTiendaWeb: IBizProveedor; + function BuscarSubcontratas: IBizProveedor; + function Nuevo : IBizContacto; override; + procedure Ver(AContacto : IBizContacto); override; + procedure VerTodos(AContactos: IBizContacto); override; + function ElegirContacto(AContactos : IBizContacto; + AMensaje: String; AMultiSelect: Boolean): IBizContacto; override; + function ElegirDireccionEntrega(AProveedor: IBizProveedor; + AMensaje: String): IBizDireccionesContacto; + function EsEliminable(AProveedor: IBizContacto): Boolean; + function Eliminar(AProveedor: IBizContacto; AllItems: Boolean = false): Boolean; overload; + procedure Preview(AProveedor : IBizProveedor; AllItems: Boolean = false); + procedure Print(AProveedor : IBizProveedor; AllItems: Boolean = false); + function DarListaDescripcionesProveedores: TStringList; + procedure VerPedidosDeProveedor(AProveedor : IBizProveedor); + procedure VerAlbaranesDeProveedor(AProveedor : IBizProveedor); + procedure VerDevolucionesDeProveedor(AProveedor : IBizProveedor); + procedure VerFacturasDeProveedor(AProveedor : IBizProveedor); + procedure VerRecibosDeProveedor(AProveedor : IBizProveedor); + function DarListaCuentasBancarias(const IdProveedor: Integer): TStringList; + end; + +implementation + +uses + SysUtils, Windows, cxControls, Dialogs, uDataModuleProveedores, uEditorRegistryUtils, + uDataTableUtils, uDADataTable, DB, schContactosClient_Intf, uEtiquetasContactosReportController, + uIEditorElegirProveedores, Controls, uIEditorElegirDireccionEntrega, + uEditorGridBase, uDAInterfaces, uIntegerListUtils, uFactuGES_App, + uPlugins_Intf, uModuleController; + +{ TProveedoresController } + +function TProveedoresController.Buscar(const ID: Integer): IBizContacto; +begin + Result := (FDataModule as IDataModuleProveedores).GetItem(ID); + FiltrarEmpresa(Result); +end; + +function TProveedoresController.BuscarSubcontratas: IBizProveedor; +var + Condicion: TDAWhereExpression; +begin + Result := BuscarTodos as IBizProveedor; + with Result.DataTable.DynamicWhere do + begin + Condicion := NewBinaryExpression(NewField('', fld_ProveedoresSUBCONTRATA), NewConstant(1, datInteger), dboEqual); + Clear; + Expression := Condicion + end; +end; + +function TProveedoresController.BuscarTodos: IBizContacto; +begin + Result := (FDataModule as IDataModuleProveedores).GetItems; + FiltrarEmpresa(Result); +end; + +function TProveedoresController.BuscarTodosTiendaWeb: IBizProveedor; +begin + Result := (FDataModule as IDataModuleProveedores).GetItemsTiendaWeb; + FiltrarEmpresa(Result); +end; + +constructor TProveedoresController.Create; +begin + inherited; + FDataModule := TDataModuleProveedores.Create(Nil); + FDireccionesController := TDireccionesContactoController.Create; +end; + +function TProveedoresController.DarListaCuentasBancarias(const IdProveedor: Integer): TStringList; +var + AProveedor: IBizProveedor; + Aux : String; + +begin + AProveedor := (Buscar(IdProveedor) as IBizProveedor); + AProveedor.DataTable.Active := True; + + Result := TStringList.Create; + ShowHourglassCursor; + try + with Result do + begin + AProveedor.DatosBancarios.DataTable.First; + while not AProveedor.DatosBancarios.DataTable.EOF do + begin + Aux := Format('N de cuenta: %s %s %s %s - Titular: %s ', [AProveedor.DatosBancarios.ENTIDAD, + AProveedor.DatosBancarios.SUCURSAL, AProveedor.DatosBancarios.DC, AProveedor.DatosBancarios.CUENTA, AProveedor.DatosBancarios.TITULAR]); + Add(Format('%s=%d', [Aux, AProveedor.DatosBancarios.ID])); + AProveedor.DatosBancarios.DataTable.Next; + end; + end; + finally + AProveedor := NIL; + HideHourglassCursor; + end; +end; + +function TProveedoresController.DarListaDescripcionesProveedores: TStringList; +begin + Result := (FDataModule as IDataModuleProveedores).DarListaDescripcionesProveedores; +end; + +destructor TProveedoresController.Destroy; +begin + FDireccionesController := NIL; + inherited; +end; + +function TProveedoresController.ElegirContacto(AContactos: IBizContacto; + AMensaje: String; AMultiSelect: Boolean): IBizContacto; +var + AEditor : IEditorElegirProveedores; +begin + Result := NIL; + + CreateEditor('EditorElegirProveedores', IEditorElegirProveedores, AEditor); + if Assigned(AEditor) then + try + AEditor.Contactos := AContactos; + AEditor.Controller := Self; + AEditor.MultiSelect := AMultiSelect; + AEditor.Mensaje := AMensaje; + if IsPositiveResult(AEditor.ShowModal) then + Result := AEditor.ContactosSeleccionados; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +function TProveedoresController.ElegirDireccionEntrega(AProveedor: IBizProveedor; + AMensaje: String): IBizDireccionesContacto; +var + AEditor : IEditorElegirDireccionEntrega; +begin + Result := NIL; + + CreateEditor('EditorElegirDireccionEntrega', IEditorElegirDireccionEntrega, AEditor); + if Assigned(AEditor) then + try + AEditor.Contacto := AProveedor; + AEditor.Mensaje := AMensaje; + if IsPositiveResult(AEditor.ShowModal) then + Result := AEditor.DireccionSeleccionada; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +function TProveedoresController.Eliminar(AProveedor: IBizContacto; AllItems: Boolean): Boolean; +//En el caso de eliminar almenos un elemento del conjunto se devuelve true +var + bEliminado: Boolean; +begin + bEliminado := False; + + if not Assigned(AProveedor) then + raise Exception.Create ('Contacto no asignado'); + + ShowHourglassCursor; + try + if not AProveedor.DataTable.Active then + AProveedor.DataTable.Active := True; + + if (AProveedor.State in dsEditModes) then + AProveedor.Cancel; + + //Siempre eliminaremos el seleccionado + if EsEliminable(AProveedor) then + begin + AProveedor.Delete; + bEliminado := True; + end; + + //En el caso de querer eliminar todos los items del objeto AProveedor + if AllItems then + begin + with AProveedor.DataTable do + begin + First; + while not EOF do + begin + if EsEliminable(AProveedor) then + begin + AProveedor.Delete; + bEliminado := True + end + else Next; + end; + end; + end; + + if bEliminado then + begin + AProveedor.DataTable.ApplyUpdates; + Result := True; + end + else + Result := False; + + HideHourglassCursor; + except + on E: Exception do + begin + AProveedor.DataTable.CancelUpdates; + HideHourglassCursor; + if (Pos('FOREIGN KEY', E.Message) > 0) then + MessageBox(0, 'No se pueden borrar el/los proveedor/es seleccionado/s porque, alguno/s de ellos tiene documentos dados de alta en la aplicacin (pedidos, albaranes, facturas, etc)', 'Atencin', MB_ICONWARNING or MB_OK); + end; + end; +end; + +function TProveedoresController.EsEliminable(AProveedor: IBizContacto): Boolean; +begin + if not Assigned(AProveedor) then + raise Exception.Create ('Contacto no asignado: EsEliminable'); + + Result := True; +end; + +function TProveedoresController.Nuevo: IBizContacto; +var + AContacto : IBizProveedor; +begin + AContacto := (FDataModule as IDataModuleProveedores).NewItem; + FiltrarEmpresa(AContacto); + AContacto.DataTable.Active := True; + AContacto.Insert; + Result := AContacto; +end; + +procedure TProveedoresController.Preview(AProveedor: IBizProveedor; AllItems: Boolean); +var + AReportController : IEtiquetasContactosReportController; + ListaID: TIntegerList; + +begin + AReportController := TEtiquetasContactosReportController.Create; + ListaID := TIntegerList.Create; + + try + //Si deseamos previsualizar todos los items del objeto albaran + if AllItems then + begin + with AProveedor.DataTable do + begin + First; + while not EOF do + begin + ListaID.Add(AProveedor.ID); + Next; + end; + end; + end + //Solo previsualizamos el item seleccionado + else + ListaID.Add(AProveedor.ID); + + AReportController.Preview(ListaID); + finally + AReportController := NIL; + FreeANDNil(ListaID); + end; +end; + +procedure TProveedoresController.Print(AProveedor: IBizProveedor; AllItems: Boolean); +var + AReportController : IEtiquetasContactosReportController; + ListaID: TIntegerList; + +begin + AReportController := TEtiquetasContactosReportController.Create; + ListaID := TIntegerList.Create; + + try + //Si deseamos previsualizar todos los items del objeto albaran + if AllItems then + begin + with AProveedor.DataTable do + begin + First; + while not EOF do + begin + ListaID.Add(AProveedor.ID); + Next; + end; + end; + end + //Solo previsualizamos el item seleccionado + else + ListaID.Add(AProveedor.ID); + + AReportController.Print(ListaID); + + finally + AReportController := NIL; + FreeANDNil(ListaID); + end; +end; + +procedure TProveedoresController.Ver(AContacto: IBizContacto); +var + AEditor : IEditorProveedor; +begin + AEditor := NIL; + + CreateEditor('EditorProveedor', IEditorProveedor, AEditor); + if Assigned(AEditor) then + try + AEditor.Contacto := AContacto; + AEditor.Controller := Self; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +procedure TProveedoresController.VerAlbaranesDeProveedor( + AProveedor: IBizProveedor); +var + AModule : TModuleController; + APlugin : IMCAlbaranesProveedor; +begin + if not Assigned(AProveedor) then + raise Exception.Create ('Proveedor no asignado (VerAlbaranesDeProveedor)'); + + if AProveedor.DataTable.Active then + AProveedor.DataTable.Active := True; + + AModule := AppFactuGES.GetModule(MODULENAME_ALBARANES_PROVEEDOR); + if Assigned(AModule) then + try + if Supports(AModule, IMCAlbaranesProveedor, APlugin) then + APlugin.VerAlbaranes(AProveedor.ID, AProveedor.NOMBRE); + finally + APlugin := NIL; + end; +end; + +procedure TProveedoresController.VerDevolucionesDeProveedor( + AProveedor: IBizProveedor); +var + AModule : TModuleController; + APlugin : IMCAlbaranesProveedor; +begin + if not Assigned(AProveedor) then + raise Exception.Create ('Proveedor no asignado (VerDevolucionesDeProveedor)'); + + if AProveedor.DataTable.Active then + AProveedor.DataTable.Active := True; + + AModule := AppFactuGES.GetModule(MODULENAME_ALBARANES_PROVEEDOR); + if Assigned(AModule) then + try + if Supports(AModule, IMCAlbaranesProveedor, APlugin) then + APlugin.VerDevoluciones(AProveedor.ID, AProveedor.NOMBRE); + finally + APlugin := NIL; + end; +end; + +procedure TProveedoresController.VerFacturasDeProveedor( + AProveedor: IBizProveedor); +var + AModule : TModuleController; + APlugin : IMCFacturasProveedor; +begin + if not Assigned(AProveedor) then + raise Exception.Create ('Proveedor no asignado (VerFacturasDeProveedor)'); + + if AProveedor.DataTable.Active then + AProveedor.DataTable.Active := True; + + AModule := AppFactuGES.GetModule(MODULENAME_FACTURAS_PROVEEDOR); + if Assigned(AModule) then + try + if Supports(AModule, IMCFacturasProveedor, APlugin) then + APlugin.VerFacturas(AProveedor.ID, AProveedor.NOMBRE); + finally + APlugin := NIL; + end; +end; + +procedure TProveedoresController.VerPedidosDeProveedor( + AProveedor: IBizProveedor); +var + AModule : TModuleController; + APlugin : IMCPedidosProveedor; +begin + if not Assigned(AProveedor) then + raise Exception.Create ('Proveedor no asignado (VerPedidosDeProveedor)'); + + if AProveedor.DataTable.Active then + AProveedor.DataTable.Active := True; + + AModule := AppFactuGES.GetModule(MODULENAME_PEDIDOS_PROVEEDOR); + if Assigned(AModule) then + try + if Supports(AModule, IMCPedidosProveedor, APlugin) then + APlugin.VerPedidos(AProveedor.ID, AProveedor.NOMBRE); + finally + APlugin := NIL; + end; +end; + +procedure TProveedoresController.VerRecibosDeProveedor( + AProveedor: IBizProveedor); +var + AModule : TModuleController; + APlugin : IMCRecibosProveedor; +begin + if not Assigned(AProveedor) then + raise Exception.Create ('Proveedor no asignado (VerRecibosDeProveedor)'); + + if AProveedor.DataTable.Active then + AProveedor.DataTable.Active := True; + + AModule := AppFactuGES.GetModule(MODULENAME_RECIBOS_PROVEEDOR); + if Assigned(AModule) then + try + if Supports(AModule, IMCRecibosProveedor, APlugin) then + APlugin.VerRecibos(AProveedor.ID, AProveedor.NOMBRE); + finally + APlugin := NIL; + end; +end; + +procedure TProveedoresController.VerTodos(AContactos: IBizContacto); +var + AEditor : IEditorProveedores; +begin + AEditor := NIL; + + CreateEditor('EditorProveedores', IEditorProveedores, AEditor); + if Assigned(AEditor) then + with AEditor do + begin + Contactos := AContactos; + Controller := Self; + MultiSelect := True; + ShowEmbedded; + end; +end; + +end. diff --git a/Source/Modulos/Contactos/Data/Contactos_data.bdsproj b/Source/Modulos/Contactos/Data/Contactos_data.bdsproj new file mode 100644 index 0000000..cc72120 --- /dev/null +++ b/Source/Modulos/Contactos/Data/Contactos_data.bdsproj @@ -0,0 +1,493 @@ + + + + + + + + + + + + Contactos_data.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + False + diff --git a/Source/Modulos/Contactos/Data/Contactos_data.dcu b/Source/Modulos/Contactos/Data/Contactos_data.dcu new file mode 100644 index 0000000..5918039 Binary files /dev/null and b/Source/Modulos/Contactos/Data/Contactos_data.dcu differ diff --git a/Source/Modulos/Contactos/Data/Contactos_data.dpk b/Source/Modulos/Contactos/Data/Contactos_data.dpk new file mode 100644 index 0000000..d86e9f4 --- /dev/null +++ b/Source/Modulos/Contactos/Data/Contactos_data.dpk @@ -0,0 +1,53 @@ +package Contactos_data; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + rtl, + vcl, + Base, + GUIBase, + ApplicationBase, + Contactos_model, + dbrtl, + cxLibraryD11, + dxThemeD11, + dxGDIPlusD11, + dxCoreD11, + vclx, + RemObjects_Core_D11, + DataAbstract_Core_D11, + vcldb, + dsnap, + adortl; + +contains + uDataModuleContactos in 'uDataModuleContactos.pas' {DataModuleContactos: TDAClientDataModule}, + uDataModuleClientes in 'uDataModuleClientes.pas' {DataModuleClientes: TDAClientDataModule}, + uDataModuleProveedores in 'uDataModuleProveedores.pas' {DataModuleProveedores: TDAClientDataModule}, + uDataModuleEmpleados in 'uDataModuleEmpleados.pas' {DataModuleEmpleados: TDAClientDataModule}, + uDataModuleAgentes in 'uDataModuleAgentes.pas' {DataModuleAgentes: TDAClientDataModule}; + +end. diff --git a/Source/Modulos/Contactos/Data/Contactos_data.dproj b/Source/Modulos/Contactos/Data/Contactos_data.dproj new file mode 100644 index 0000000..3068f93 --- /dev/null +++ b/Source/Modulos/Contactos/Data/Contactos_data.dproj @@ -0,0 +1,574 @@ + + + + {13ceca01-95fe-4f1e-80ed-6dcc5ef31c88} + Contactos_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Contactos_data.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Contactos_data.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + +
DataModuleAgentes
+ TDAClientDataModule +
+ +
DataModuleClientes
+ TDAClientDataModule +
+ +
DataModuleContactos
+ TDAClientDataModule +
+ +
DataModuleEmpleados
+ TDAClientDataModule +
+ +
DataModuleProveedores
+ TDAClientDataModule +
+ +
+
+ diff --git a/Source/Modulos/Contactos/Data/Contactos_data.drc b/Source/Modulos/Contactos/Data/Contactos_data.drc new file mode 100644 index 0000000..5c9543d --- /dev/null +++ b/Source/Modulos/Contactos/Data/Contactos_data.drc @@ -0,0 +1,21 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Contactos\Data\uDataModuleContactos.DFM */ +/* C:\Codigo\Source\Modulos\Contactos\Data\uDataModuleClientes.dfm */ +/* C:\Codigo\Source\Modulos\Contactos\Data\uDataModuleProveedores.dfm */ +/* C:\Codigo\Source\Modulos\Contactos\Data\uDataModuleEmpleados.dfm */ +/* C:\Codigo\Source\Modulos\Contactos\Data\uDataModuleAgentes.dfm */ +/* C:\Codigo\Source\Modulos\Contactos\Data\Contactos_data.res */ +/* C:\Codigo\Source\Modulos\Contactos\Data\Contactos_data.drf */ diff --git a/Source/Modulos/Contactos/Data/Contactos_data.identcache b/Source/Modulos/Contactos/Data/Contactos_data.identcache new file mode 100644 index 0000000..b40c905 Binary files /dev/null and b/Source/Modulos/Contactos/Data/Contactos_data.identcache differ diff --git a/Source/Modulos/Contactos/Data/Contactos_data.rc b/Source/Modulos/Contactos/Data/Contactos_data.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Contactos/Data/Contactos_data.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Contactos/Data/Contactos_data.res b/Source/Modulos/Contactos/Data/Contactos_data.res new file mode 100644 index 0000000..1641339 Binary files /dev/null and b/Source/Modulos/Contactos/Data/Contactos_data.res differ diff --git a/Source/Modulos/Contactos/Data/uDataModuleAgentes.dcu b/Source/Modulos/Contactos/Data/uDataModuleAgentes.dcu new file mode 100644 index 0000000..0b501d7 Binary files /dev/null and b/Source/Modulos/Contactos/Data/uDataModuleAgentes.dcu differ diff --git a/Source/Modulos/Contactos/Data/uDataModuleAgentes.dfm b/Source/Modulos/Contactos/Data/uDataModuleAgentes.dfm new file mode 100644 index 0000000..0ffd736 --- /dev/null +++ b/Source/Modulos/Contactos/Data/uDataModuleAgentes.dfm @@ -0,0 +1,255 @@ +inherited DataModuleAgentes: TDataModuleAgentes + Height = 302 + Width = 543 + inherited ds_Contactos: TDADataSource + DataSet = tbl_Contactos.Dataset + end + inherited ds_DireccionesContacto: TDADataSource + DataSet = tbl_DireccionesContacto.Dataset + end + inherited ds_DatosBancarios: TDADataSource + DataSet = tbl_DatosBancarios.Dataset + end + inherited ds_PersonalContacto: TDADataSource + DataSet = tbl_PersonalContacto.Dataset + end + object tbl_Agentes: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_CONTACTOS_ID' + ServerAutoRefresh = True + DictionaryEntry = 'Contactos_ID' + InPrimaryKey = True + end + item + Name = 'ID_CATEGORIA' + DataType = datInteger + DisplayLabel = 'Contactos_ID_CATEGORIA' + DictionaryEntry = 'Contactos_ID_CATEGORIA' + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + DisplayLabel = 'NIF/CIF' + DictionaryEntry = 'Contactos_NIF_CIF' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Nombre' + DictionaryEntry = 'Contactos_NOMBRE' + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DisplayLabel = 'Direcci'#243'n' + DictionaryEntry = 'Contactos_CALLE' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DisplayLabel = 'Poblaci'#243'n' + DictionaryEntry = 'Contactos_POBLACION' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Provincia' + DictionaryEntry = 'Contactos_PROVINCIA' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#243'digo postal' + DictionaryEntry = 'Contactos_CODIGO_POSTAL' + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + DisplayLabel = 'Tlf. trabajo' + DictionaryEntry = 'Contactos_TELEFONO_1' + end + item + Name = 'TELEFONO_2' + DataType = datString + Size = 25 + DisplayLabel = 'Tlf. particular' + DictionaryEntry = 'Contactos_TELEFONO_2' + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + DisplayLabel = 'M'#243'vil' + DictionaryEntry = 'Contactos_MOVIL_1' + end + item + Name = 'MOVIL_2' + DataType = datString + Size = 25 + DisplayLabel = 'M'#243'vil 2' + DictionaryEntry = 'Contactos_MOVIL_2' + end + item + Name = 'FAX' + DataType = datString + Size = 25 + DisplayLabel = 'Fax' + DictionaryEntry = 'Contactos_FAX' + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + DisplayLabel = 'E-mail trabajo' + DictionaryEntry = 'Contactos_EMAIL_1' + end + item + Name = 'EMAIL_2' + DataType = datString + Size = 255 + DisplayLabel = 'E-mail particular' + DictionaryEntry = 'Contactos_EMAIL_2' + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + DisplayLabel = 'Web' + DictionaryEntry = 'Contactos_PAGINA_WEB' + end + item + Name = 'NOTAS' + DataType = datMemo + BlobType = dabtMemo + DisplayLabel = 'Observaciones' + DictionaryEntry = 'Contactos_NOTAS' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DisplayLabel = 'Empleados_FECHA_ALTA' + DictionaryEntry = 'Empleados_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DisplayLabel = 'Empleados_FECHA_MODIFICACION' + DictionaryEntry = 'Empleados_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DisplayLabel = 'Usuario' + DictionaryEntry = 'Contactos_USUARIO' + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'Contactos_ID_EMPRESA' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + ServerAutoRefresh = True + DictionaryEntry = 'Empleados_REFERENCIA' + end + item + Name = 'FECHA_ALTA_EMPRESA' + DataType = datDateTime + end + item + Name = 'FECHA_BAJA' + DataType = datDateTime + end + item + Name = 'CAUSA_BAJA' + DataType = datString + Size = 255 + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Contactos + LogicalName = 'Agentes' + IndexDefs = <> + Left = 328 + Top = 232 + end + object ds_Agentes: TDADataSource + DataSet = tbl_Agentes.Dataset + DataTable = tbl_Agentes + Left = 328 + Top = 160 + end + object tbl_Agentes_Comisiones: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + ServerAutoRefresh = True + DictionaryEntry = 'Agentes_Comisiones_ID' + InPrimaryKey = True + end + item + Name = 'ID_AGENTE' + DataType = datInteger + DisplayLabel = 'Agentes_Comisiones_ID_AGENTE' + DictionaryEntry = 'Agentes_Comisiones_ID_AGENTE' + end + item + Name = 'ID_PROVEEDOR' + DataType = datSmallInt + DisplayLabel = 'Agentes_Comisiones_ID_PROVEEDOR' + DictionaryEntry = 'Agentes_Comisiones_ID_PROVEEDOR' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Agentes_Comisiones_NOMBRE' + DictionaryEntry = 'Agentes_Comisiones_NOMBRE' + end + item + Name = 'COMISION' + DataType = datFloat + DisplayLabel = 'Agentes_Comisiones_COMISION' + DictionaryEntry = 'Agentes_Comisiones_COMISION' + end> + Params = <> + MasterMappingMode = mmWhere + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Contactos + MasterSource = ds_Agentes + MasterFields = 'ID' + DetailFields = 'ID_AGENTE' + LogicalName = 'Agentes_Comisiones' + IndexDefs = <> + Left = 456 + Top = 232 + end + object ds_Agentes_Comisiones: TDADataSource + DataSet = tbl_Agentes_Comisiones.Dataset + DataTable = tbl_Agentes_Comisiones + Left = 456 + Top = 160 + end +end diff --git a/Source/Modulos/Contactos/Data/uDataModuleAgentes.pas b/Source/Modulos/Contactos/Data/uDataModuleAgentes.pas new file mode 100644 index 0000000..be7eb41 --- /dev/null +++ b/Source/Modulos/Contactos/Data/uDataModuleAgentes.pas @@ -0,0 +1,109 @@ +unit uDataModuleAgentes; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uDataModuleContactos, DB, uDADataTable, uDAScriptingProvider, + uDACDSDataTable, uDABINAdapter, uRORemoteService, + uROClient, uROBinMessage, uROWinInetHttpChannel, uBizGruposEmpleado, uROTypes, + uIDataModuleAgentes, uBizContactos, uDADesigntimeCall, + uDAInterfaces, uDAMemDataTable, uDADataStreamer, uDABin2DataStreamer, + uDARemoteDataAdapter, uIntegerListUtils, uBizAgentesComisiones; + +type + TDataModuleAgentes = class(TDataModuleContactos, IDataModuleAgentes) + tbl_Agentes: TDAMemDataTable; + ds_Agentes: TDADataSource; + tbl_Agentes_Comisiones: TDAMemDataTable; + ds_Agentes_Comisiones: TDADataSource; + protected + function _GetComisiones: IBizAgentesComisiones; + public + function GetItem(const ID : Integer) : IBizAgente; + function NewItem : IBizAgente; + function GetItems : IBizAgente; + + end; + + +implementation + +{$R *.dfm} + +uses + FactuGES_Intf, cxControls, schContactosClient_Intf, uDataTableUtils, + uStringsUtils; + +{ TDataModuleVendedores } + +function TDataModuleAgentes.GetItem(const ID: Integer): IBizAgente; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + + with Result.DataTable.DynamicWhere do + begin + // (ID = :ID) + Condicion := NewBinaryExpression(NewField('', fld_ContactosID), NewConstant(ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TDataModuleAgentes.GetItems: IBizAgente; +var + AContacto : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AContacto := CloneDataTable(tbl_Agentes); + AContacto.BusinessRulesID := BIZ_CLIENT_AGENTE; + + with TBizAgente(AContacto.BusinessEventsObj) do + begin + DatosBancarios := _GetDatosBancarios; + Comisiones := _GetComisiones; + end; + + Result := (AContacto as IBizAgente); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleAgentes.NewItem: IBizAgente; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleAgentes._GetComisiones: IBizAgentesComisiones; +var + AComisiones : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AComisiones := CloneDataTable(tbl_Agentes_Comisiones); + with AComisiones do + begin + BusinessRulesID := BIZ_CLIENT_AGENTE_COMISIONES; + DetailOptions := DetailOptions - + [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; + end; + Result := (AComisiones as IBizAgentesComisiones); + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Contactos/Data/uDataModuleClientes.dcu b/Source/Modulos/Contactos/Data/uDataModuleClientes.dcu new file mode 100644 index 0000000..975f00c Binary files /dev/null and b/Source/Modulos/Contactos/Data/uDataModuleClientes.dcu differ diff --git a/Source/Modulos/Contactos/Data/uDataModuleClientes.dfm b/Source/Modulos/Contactos/Data/uDataModuleClientes.dfm new file mode 100644 index 0000000..9b2331b --- /dev/null +++ b/Source/Modulos/Contactos/Data/uDataModuleClientes.dfm @@ -0,0 +1,385 @@ +inherited DataModuleClientes: TDataModuleClientes + Height = 325 + Width = 636 + inherited rda_Contactos: TDARemoteDataAdapter + Top = 79 + end + inherited Bin2DataStreamer: TDABin2DataStreamer + Top = 136 + end + inherited ds_Contactos: TDADataSource + DataSet = tbl_Contactos.Dataset + end + inherited ds_DireccionesContacto: TDADataSource + DataSet = tbl_DireccionesContacto.Dataset + end + inherited ds_DatosBancarios: TDADataSource + DataSet = tbl_DatosBancarios.Dataset + end + inherited tbl_PersonalContacto: TDAMemDataTable + Left = 440 + end + inherited ds_PersonalContacto: TDADataSource + DataSet = tbl_PersonalContacto.Dataset + Left = 440 + end + object tbl_Clientes: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_CONTACTOS_ID' + ServerAutoRefresh = True + DictionaryEntry = 'Contactos_ID' + InPrimaryKey = True + end + item + Name = 'ID_CATEGORIA' + DataType = datInteger + DisplayLabel = 'Contactos_ID_CATEGORIA' + DictionaryEntry = 'Contactos_ID_CATEGORIA' + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + DisplayLabel = 'NIF/CIF' + DictionaryEntry = 'Contactos_NIF_CIF' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Nombre' + DictionaryEntry = 'Contactos_NOMBRE' + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + DisplayLabel = 'Persona de contacto' + DictionaryEntry = 'Contactos_PERSONA_CONTACTO' + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DisplayLabel = 'Direcci'#243'n' + DictionaryEntry = 'Contactos_CALLE' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DisplayLabel = 'Poblaci'#243'n' + DictionaryEntry = 'Contactos_POBLACION' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Provincia' + DictionaryEntry = 'Contactos_PROVINCIA' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#243'digo postal' + DictionaryEntry = 'Contactos_CODIGO_POSTAL' + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + DisplayLabel = 'Tlf. trabajo' + DictionaryEntry = 'Contactos_TELEFONO_1' + end + item + Name = 'TELEFONO_2' + DataType = datString + Size = 25 + DisplayLabel = 'Tlf. particular' + DictionaryEntry = 'Contactos_TELEFONO_2' + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + DisplayLabel = 'M'#243'vil' + DictionaryEntry = 'Contactos_MOVIL_1' + end + item + Name = 'MOVIL_2' + DataType = datString + Size = 25 + DisplayLabel = 'M'#243'vil 2' + DictionaryEntry = 'Contactos_MOVIL_2' + end + item + Name = 'FAX' + DataType = datString + Size = 25 + DisplayLabel = 'Fax' + DictionaryEntry = 'Contactos_FAX' + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + DisplayLabel = 'E-mail trabajo' + DictionaryEntry = 'Contactos_EMAIL_1' + end + item + Name = 'EMAIL_2' + DataType = datString + Size = 255 + DisplayLabel = 'E-mail particular' + DictionaryEntry = 'Contactos_EMAIL_2' + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + DisplayLabel = 'Web' + DictionaryEntry = 'Contactos_PAGINA_WEB' + end + item + Name = 'NOTAS' + DataType = datMemo + BlobType = dabtMemo + DisplayLabel = 'Observaciones' + DictionaryEntry = 'Contactos_NOTAS' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DisplayLabel = 'Usuario' + DictionaryEntry = 'Contactos_USUARIO' + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'Contactos_ID_EMPRESA' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + ServerAutoRefresh = True + DictionaryEntry = 'Clientes_REFERENCIA' + end + item + Name = 'ID_AGENTE' + DataType = datInteger + end + item + Name = 'GRUPO_CLIENTE' + DataType = datString + Size = 255 + DisplayLabel = 'Grupo de cliente' + DictionaryEntry = 'Clientes_GRUPO_CLIENTE' + end + item + Name = 'NOMBRE_COMERCIAL' + DataType = datString + Size = 255 + DisplayLabel = 'Nombre comercial' + DictionaryEntry = 'Clientes_NOMBRE_COMERCIAL' + end + item + Name = 'VENCIMIENTO_FACTURAS_1' + DataType = datSmallInt + end + item + Name = 'VENCIMIENTO_FACTURAS_2' + DataType = datSmallInt + end + item + Name = 'VENCIMIENTO_FACTURAS_3' + DataType = datSmallInt + end + item + Name = 'BLOQUEADO' + DataType = datSmallInt + DisplayLabel = #191'Bloqueado?' + DictionaryEntry = 'Clientes_BLOQUEADO' + end + item + Name = 'AGENTE' + DataType = datString + Size = 255 + end + item + Name = 'RAPEL' + DataType = datSmallInt + end + item + Name = 'EMAIL_ADMINISTRACION' + DataType = datString + Size = 255 + end + item + Name = 'REGIMEN_IVA' + DataType = datString + Size = 255 + DisplayLabel = 'R'#233'gimen de IVA' + DictionaryEntry = 'Clientes_REGIMEN_IVA' + end + item + Name = 'MOTIVO_BLOQUEO' + DataType = datString + Size = 255 + DisplayLabel = 'Motivo del bloqueo' + DictionaryEntry = 'Clientes_MOTIVO_BLOQUEO' + end + item + Name = 'RECARGO_EQUIVALENCIA' + DataType = datInteger + DisplayLabel = 'Rec. equiv.' + DictionaryEntry = 'Clientes_RECARGO_EQUIVALENCIA' + end + item + Name = 'ID_TIPO_IVA' + DataType = datInteger + DictionaryEntry = 'Clientes_ID_TIPO_IVA' + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + DictionaryEntry = 'Clientes_ID_FORMA_PAGO' + end + item + Name = 'TIENDA_WEB' + DataType = datSmallInt + DictionaryEntry = 'Clientes_TIENDA_WEB' + end + item + Name = 'CODIGO_ASIGNADO' + DataType = datString + Size = 255 + end + item + Name = 'DESCUENTO' + DataType = datFloat + end + item + Name = 'FELICITACION' + DataType = datSmallInt + DisplayLabel = #191'Felicitaci'#243'n?' + DictionaryEntry = 'Clientes_FELICITACION' + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Contactos + LocalDataStreamer = Bin2DataStreamer + LogicalName = 'Clientes' + IndexDefs = <> + Left = 296 + Top = 168 + end + object ds_Clientes: TDADataSource + DataSet = tbl_Clientes.Dataset + DataTable = tbl_Clientes + Left = 296 + Top = 232 + end + object tbl_ClientesDescuentos: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_CLIENTES_DTOS_PROV_ID' + DictionaryEntry = 'ClientesDescuentos_ID' + InPrimaryKey = True + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + DisplayLabel = 'ClientesDescuentos_ID_CLIENTE' + DictionaryEntry = 'ClientesDescuentos_ID_CLIENTE' + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + DisplayLabel = 'ClientesDescuentos_ID_PROVEEDOR' + DictionaryEntry = 'ClientesDescuentos_ID_PROVEEDOR' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'ClientesDescuentos_NOMBRE' + ServerAutoRefresh = True + end + item + Name = 'DESCUENTO' + DataType = datFloat + DisplayLabel = 'Descuento (%)' + Alignment = taRightJustify + DictionaryEntry = 'ClientesDescuentos_DESCUENTO' + end> + Params = <> + MasterMappingMode = mmWhere + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Contactos + LocalDataStreamer = Bin2DataStreamer + MasterSource = ds_Clientes + MasterFields = 'ID' + DetailFields = 'ID_CLIENTE' + LogicalName = 'ClientesDescuentos' + IndexDefs = <> + Left = 448 + Top = 168 + end + object ds_ClientesDescuentos: TDADataSource + DataSet = tbl_ClientesDescuentos.Dataset + DataTable = tbl_ClientesDescuentos + Left = 448 + Top = 224 + end + object tbl_GruposCliente: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_CLIENTES_GRUPOS_ID' + Required = True + DictionaryEntry = 'GruposCliente_ID' + InPrimaryKey = True + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DisplayLabel = 'Descripci'#243'n' + DictionaryEntry = 'GruposCliente_DESCRIPCION' + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Contactos + LocalDataStreamer = Bin2DataStreamer + LogicalName = 'GruposCliente' + IndexDefs = <> + Left = 552 + Top = 168 + end + object ds_GruposCliente: TDADataSource + DataSet = tbl_GruposCliente.Dataset + DataTable = tbl_GruposCliente + Left = 552 + Top = 224 + end +end diff --git a/Source/Modulos/Contactos/Data/uDataModuleClientes.pas b/Source/Modulos/Contactos/Data/uDataModuleClientes.pas new file mode 100644 index 0000000..5e0fb9e --- /dev/null +++ b/Source/Modulos/Contactos/Data/uDataModuleClientes.pas @@ -0,0 +1,173 @@ +unit uDataModuleClientes; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + DB, uDADataTable, uDAScriptingProvider, + uDACDSDataTable, uDABINAdapter, uRORemoteService, + uROClient, uROBinMessage, uROWinInetHttpChannel, uBizClientesDescuentos, + uBizGruposCliente, uBizContactos, uDataModuleContactos, + uIDataModuleClientes, uDADesigntimeCall, uDARemoteDataAdapter, + uDADataStreamer, uRODynamicRequest, uDAInterfaces, uDAMemDataTable, + uDABin2DataStreamer, uControllerBase, uBizContactosDatosBancarios, + uIDataModuleContactos; + +type + TDataModuleClientes = class(TDataModuleContactos, IDataModuleClientes) + tbl_Clientes: TDAMemDataTable; + ds_Clientes: TDADataSource; + tbl_ClientesDescuentos: TDAMemDataTable; + ds_ClientesDescuentos: TDADataSource; + tbl_GruposCliente: TDAMemDataTable; + ds_GruposCliente: TDADataSource; + protected + function _GetDescuentos: IBizClienteDescuentos; + public + function GetItem(const ID : Integer) : IBizCliente; + function NewItem : IBizCliente; + function GetItems : IBizCliente; + function GetItemsTiendaWeb : IBizCliente; + function GetItemsFelicitacion : IBizCliente; + function GetGruposCliente : IBizGrupoCliente; + end; + +implementation + +{$R *.dfm} + +uses + FactuGES_Intf, cxControls, schContactosClient_Intf, + uDataTableUtils, Dialogs, DataAbstract4_Intf; + +{ TdmClientes } + +function TDataModuleClientes.GetGruposCliente: IBizGrupoCliente; +var + AGrupoCliente : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AGrupoCliente := CloneDataTable(tbl_GruposCliente); + AGrupoCliente.BusinessRulesID := BIZ_CLIENT_GRUPOSCLIENTE; + Result := (AGrupoCliente as IBizGrupoCliente); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleClientes.GetItem(const ID: Integer): IBizCliente; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + + with Result.DataTable.DynamicWhere do + begin + // (ID = :ID) + Condicion := NewBinaryExpression(NewField('', fld_ContactosID), NewConstant(ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TDataModuleClientes.GetItems: IBizCliente; +var + AContacto : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AContacto := CloneDataTable(tbl_Clientes); + AContacto.BusinessRulesID := BIZ_CLIENT_CLIENTE; + + with TBizCliente(AContacto.BusinessEventsObj) do + begin + DatosBancarios := _GetDatosBancarios; + Direcciones := _GetDirecciones; + Descuentos := _GetDescuentos; + Personal := _GetPersonal; + end; + + Result := (AContacto as IBizCliente); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleClientes.GetItemsFelicitacion: IBizCliente; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + + with Result.DataTable.DynamicWhere do + begin + Condicion := NewBinaryExpression(NewField('', fld_ClientesFELICITACION), NewConstant(1, datInteger), dboEqual); + + Clear; + Expression := Condicion + end; + + finally + HideHourglassCursor; + end; +end; + +function TDataModuleClientes.GetItemsTiendaWeb: IBizCliente; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + + with Result.DataTable.DynamicWhere do + begin + // (ID = :ID) + Condicion := NewBinaryExpression(NewField('', fld_ClientesTIENDA_WEB), NewConstant(1, datInteger), dboEqual); + + Clear; + Expression := Condicion + end; + + finally + HideHourglassCursor; + end; +end; + +function TDataModuleClientes.NewItem: IBizCliente; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleClientes._GetDescuentos: IBizClienteDescuentos; +var + ADescuentos : TDAMemDataTable; +begin + ShowHourglassCursor; + try + ADescuentos := CloneDataTable(tbl_ClientesDescuentos); + with ADescuentos do + begin + BusinessRulesID := BIZ_CLIENT_CLIENTE_DESCUENTOS; + DetailOptions := DetailOptions - + [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; + end; + Result := (ADescuentos as IBizClienteDescuentos); + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Contactos/Data/uDataModuleContactos.dcu b/Source/Modulos/Contactos/Data/uDataModuleContactos.dcu new file mode 100644 index 0000000..bb1da73 Binary files /dev/null and b/Source/Modulos/Contactos/Data/uDataModuleContactos.dcu differ diff --git a/Source/Modulos/Contactos/Data/uDataModuleContactos.dfm b/Source/Modulos/Contactos/Data/uDataModuleContactos.dfm new file mode 100644 index 0000000..c4f0542 --- /dev/null +++ b/Source/Modulos/Contactos/Data/uDataModuleContactos.dfm @@ -0,0 +1,494 @@ +inherited DataModuleContactos: TDataModuleContactos + OnCreate = DAClientDataModuleCreate + OnDestroy = DataModuleDestroy + Height = 306 + Width = 561 + object RORemoteService: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvContactos' + Left = 40 + Top = 16 + end + object rda_Contactos: TDARemoteDataAdapter + DataStreamer = Bin2DataStreamer + GetSchemaCall.RemoteService = RORemoteService + GetDataCall.RemoteService = RORemoteService + UpdateDataCall.RemoteService = RORemoteService + GetScriptsCall.RemoteService = RORemoteService + RemoteService = RORemoteService + Left = 43 + Top = 143 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 40 + Top = 72 + end + object tbl_Contactos: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_CONTACTOS_ID' + ServerAutoRefresh = True + DictionaryEntry = 'Contactos_ID' + InPrimaryKey = True + end + item + Name = 'ID_CATEGORIA' + DataType = datInteger + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + DisplayLabel = 'NIF/CIF' + DictionaryEntry = 'Contactos_NIF_CIF' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Nombre' + DictionaryEntry = 'Contactos_NOMBRE' + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + DisplayLabel = 'Persona de contacto' + DictionaryEntry = 'Contactos_PERSONA_CONTACTO' + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DisplayLabel = 'Direcci'#243'n' + DictionaryEntry = 'Contactos_CALLE' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DisplayLabel = 'Poblaci'#243'n' + DictionaryEntry = 'Contactos_POBLACION' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Provincia' + DictionaryEntry = 'Contactos_PROVINCIA' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#243'digo postal' + DictionaryEntry = 'Contactos_CODIGO_POSTAL' + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + DisplayLabel = 'Tlf. trabajo' + DictionaryEntry = 'Contactos_TELEFONO_1' + end + item + Name = 'TELEFONO_2' + DataType = datString + Size = 25 + DisplayLabel = 'Tlf. particular' + DictionaryEntry = 'Contactos_TELEFONO_2' + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + DisplayLabel = 'M'#243'vil' + DictionaryEntry = 'Contactos_MOVIL_1' + end + item + Name = 'MOVIL_2' + DataType = datString + Size = 25 + DisplayLabel = 'M'#243'vil 2' + DictionaryEntry = 'Contactos_MOVIL_2' + end + item + Name = 'FAX' + DataType = datString + Size = 25 + DisplayLabel = 'Fax' + DictionaryEntry = 'Contactos_FAX' + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + DisplayLabel = 'E-mail trabajo' + DictionaryEntry = 'Contactos_EMAIL_1' + end + item + Name = 'EMAIL_2' + DataType = datString + Size = 255 + DisplayLabel = 'E-mail particular' + DictionaryEntry = 'Contactos_EMAIL_2' + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + DisplayLabel = 'Web' + DictionaryEntry = 'Contactos_PAGINA_WEB' + end + item + Name = 'NOTAS' + DataType = datMemo + BlobType = dabtMemo + DisplayLabel = 'Observaciones' + DictionaryEntry = 'Contactos_NOTAS' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DisplayLabel = 'Fecha de alta' + DictionaryEntry = 'Contactos_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DisplayLabel = 'Fecha de modificaci'#243'n' + DictionaryEntry = 'Contactos_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DisplayLabel = 'Usuario' + DictionaryEntry = 'Contactos_USUARIO' + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + ServerAutoRefresh = True + DictionaryEntry = 'Contactos_REFERENCIA' + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Contactos + LocalDataStreamer = Bin2DataStreamer + LogicalName = 'Contactos' + IndexDefs = <> + Left = 176 + Top = 16 + end + object ds_Contactos: TDADataSource + DataSet = tbl_Contactos.Dataset + DataTable = tbl_Contactos + Left = 176 + Top = 80 + end + object tbl_DireccionesContacto: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_CONTACTOS_DIR_ID' + ServerAutoRefresh = True + DictionaryEntry = 'DireccionesContacto_ID' + InPrimaryKey = True + end + item + Name = 'ID_CONTACTO' + DataType = datInteger + DictionaryEntry = 'DireccionesContacto_ID_CONTACTO' + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DisplayLabel = 'Calle' + DictionaryEntry = 'DireccionesContacto_CALLE' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DisplayLabel = 'Poblaci'#243'n' + DictionaryEntry = 'DireccionesContacto_POBLACION' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Provincia' + DictionaryEntry = 'DireccionesContacto_PROVINCIA' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#243'digo postal' + DictionaryEntry = 'DireccionesContacto_CODIGO_POSTAL' + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + DisplayLabel = 'Persona de contacto' + DictionaryEntry = 'DireccionesContacto_PERSONA_CONTACTO' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'DireccionesContacto_NOMBRE' + DictionaryEntry = 'DireccionesContacto_NOMBRE' + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + DisplayLabel = 'Tel'#233'fono' + DictionaryEntry = 'DireccionesContacto_TELEFONO' + end + item + Name = 'MOVIL' + DataType = datString + Size = 25 + DisplayLabel = 'M'#243'vil' + DictionaryEntry = 'Contactos_MOVIL_1' + end + item + Name = 'FAX' + DataType = datString + Size = 25 + DisplayLabel = 'Fax' + DictionaryEntry = 'Contactos_FAX' + end + item + Name = 'EMAIL' + DataType = datString + Size = 255 + DisplayLabel = 'E-mail' + DictionaryEntry = 'DireccionesContacto_EMAIL' + end + item + Name = 'NOTAS' + DataType = datMemo + DisplayLabel = 'Notas' + DictionaryEntry = 'DireccionesContacto_NOTAS' + end + item + Name = 'PORTE' + DataType = datFloat + DisplayLabel = 'Coste del porte' + DictionaryEntry = 'DireccionesContacto_PORTE' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + end> + Params = <> + MasterMappingMode = mmWhere + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Contactos + LocalDataStreamer = Bin2DataStreamer + MasterSource = ds_Contactos + MasterFields = 'ID' + DetailFields = 'ID_CONTACTO' + LogicalName = 'DireccionesContacto' + IndexDefs = <> + Left = 320 + Top = 16 + end + object ds_DireccionesContacto: TDADataSource + DataSet = tbl_DireccionesContacto.Dataset + DataTable = tbl_DireccionesContacto + Left = 320 + Top = 80 + end + object tbl_DatosBancarios: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_CONTACTOS_DATOS_BANCO_ID' + ServerAutoRefresh = True + DictionaryEntry = 'DatosBancarios_ID' + InPrimaryKey = True + end + item + Name = 'ID_CONTACTO' + DataType = datInteger + DictionaryEntry = 'DatosBancarios_ID_CONTACTO' + end + item + Name = 'TITULAR' + DataType = datString + Size = 255 + DisplayLabel = 'Titular' + DictionaryEntry = 'DatosBancarios_TITULAR' + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + DisplayLabel = 'C'#243'digo de entidad' + DictionaryEntry = 'DatosBancarios_ENTIDAD' + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + DisplayLabel = 'C'#243'digo de sucursal' + DictionaryEntry = 'DatosBancarios_SUCURSAL' + end + item + Name = 'DC' + DataType = datString + Size = 15 + DisplayLabel = 'D'#237'gito de control' + DictionaryEntry = 'DatosBancarios_DC' + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + DisplayLabel = 'C'#243'digo de cuenta' + DictionaryEntry = 'DatosBancarios_CUENTA' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + end> + Params = <> + MasterMappingMode = mmWhere + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Contactos + LocalDataStreamer = Bin2DataStreamer + MasterSource = ds_Contactos + MasterFields = 'ID' + DetailFields = 'ID_CONTACTO' + LogicalName = 'DatosBancarios' + IndexDefs = <> + Left = 176 + Top = 168 + end + object ds_DatosBancarios: TDADataSource + DataSet = tbl_DatosBancarios.Dataset + DataTable = tbl_DatosBancarios + Left = 176 + Top = 232 + end + object tbl_PersonalContacto: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_CONTACTOS_PERSONAL_ID' + Required = True + DisplayLabel = 'PersonalContacto_ID' + DictionaryEntry = 'PersonalContacto_ID' + InPrimaryKey = True + end + item + Name = 'ID_CONTACTO' + DataType = datInteger + DisplayLabel = 'PersonalContacto_ID_CONTACTO' + DictionaryEntry = 'PersonalContacto_ID_CONTACTO' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Nombre' + DictionaryEntry = 'PersonalContacto_NOMBRE' + end + item + Name = 'PUESTO' + DataType = datString + Size = 255 + DisplayLabel = 'Puesto' + DictionaryEntry = 'PersonalContacto_PUESTO' + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + DisplayLabel = 'Tel'#233'fono' + DictionaryEntry = 'PersonalContacto_TELEFONO' + end + item + Name = 'MOVIL' + DataType = datString + Size = 25 + DisplayLabel = 'M'#243'vil' + DictionaryEntry = 'PersonalContacto_MOVIL' + end + item + Name = 'FAX' + DataType = datString + Size = 25 + DisplayLabel = 'Fax' + DictionaryEntry = 'PersonalContacto_FAX' + end + item + Name = 'EMAIL' + DataType = datString + Size = 255 + DisplayLabel = 'E-mail' + DictionaryEntry = 'PersonalContacto_EMAIL' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DisplayLabel = 'PersonalContacto_FECHA_ALTA' + DictionaryEntry = 'PersonalContacto_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DisplayLabel = 'PersonalContacto_FECHA_MODIFICACION' + DictionaryEntry = 'PersonalContacto_FECHA_MODIFICACION' + end> + Params = <> + MasterMappingMode = mmWhere + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Contactos + LocalDataStreamer = Bin2DataStreamer + MasterSource = ds_Contactos + MasterFields = 'ID' + DetailFields = 'ID_CONTACTO' + LogicalName = 'PersonalContacto' + IndexDefs = <> + Left = 456 + Top = 16 + end + object ds_PersonalContacto: TDADataSource + DataSet = tbl_PersonalContacto.Dataset + DataTable = tbl_PersonalContacto + Left = 456 + Top = 80 + end +end diff --git a/Source/Modulos/Contactos/Data/uDataModuleContactos.pas b/Source/Modulos/Contactos/Data/uDataModuleContactos.pas new file mode 100644 index 0000000..f559c5b --- /dev/null +++ b/Source/Modulos/Contactos/Data/uDataModuleContactos.pas @@ -0,0 +1,185 @@ +unit uDataModuleContactos; + +interface + +uses + SysUtils, Classes, DB, DBClient, + uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, + uRORemoteService, uROClient, uROBinMessage, + uBizContactos, uBizContactosDatosBancarios, + uBizDireccionesContacto, uIDataModuleEtiquetasContactosReport, + uIDataModuleContactos, uDADesigntimeCall, uROTypes, uRODynamicRequest, + uDAInterfaces, uDADataStreamer, uDARemoteDataAdapter, uDABin2DataStreamer, + uDAMemDataTable, uDataModuleBase, uBizContactosPersonal, + uIntegerListUtils; + +type + TDataModuleContactos = class(TDataModuleBase, IDataModuleContactos, IDataModuleEtiquetasContactosReport) + RORemoteService: TRORemoteService; + rda_Contactos: TDARemoteDataAdapter; + Bin2DataStreamer: TDABin2DataStreamer; + tbl_Contactos: TDAMemDataTable; + ds_Contactos: TDADataSource; + tbl_DireccionesContacto: TDAMemDataTable; + ds_DireccionesContacto: TDADataSource; + tbl_DatosBancarios: TDAMemDataTable; + ds_DatosBancarios: TDADataSource; + tbl_PersonalContacto: TDAMemDataTable; + ds_PersonalContacto: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + procedure DataModuleDestroy(Sender: TObject); + public + function _GetDatosBancarios : IBizContactosDatosBancarios; + function _GetDirecciones: IBizDireccionesContacto; + function _GetItems (IDCategoria : Integer): IBizContacto; virtual; + function _GetPersonal: IBizContactoPersonal; + function NewDireccion : IBizDireccionesContacto; + + // Report + function GetReport(const ListaID: TIntegerList): Binary; + end; + +implementation + +{$R *.DFM} + +uses + uDataTableUtils, uDataModuleConexion, cxControls, + FactuGES_Intf, schContactosClient_Intf, Dialogs; + +{ TdmContactos } + +procedure TDataModuleContactos.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +procedure TDataModuleContactos.DataModuleDestroy(Sender: TObject); +begin + // +end; + +function TDataModuleContactos.GetReport(const ListaID: TIntegerList): Binary; +var + AParam : TIntegerArray; +begin + AParam := ListaID.ToIntegerArray; + try + Result := (RORemoteService as IsrvContactos).GenerarInformeEtiquetas(AParam); + finally + FreeANDNIL(AParam); + end; +end; + +function TDataModuleContactos.NewDireccion: IBizDireccionesContacto; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := Self._GetDirecciones; + + with Result.DataTable.DynamicWhere do + begin + // (ID = :ID) + Condicion := NewBinaryExpression(NewField('', fld_DireccionesContactoID), NewConstant(ID_NULO, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TDataModuleContactos._GetDatosBancarios: IBizContactosDatosBancarios; +var + ADatosBancarios : TDAMemDataTable; +begin + ShowHourglassCursor; + try + ADatosBancarios := CloneDataTable(tbl_DatosBancarios); + with ADatosBancarios do + begin + BusinessRulesID := BIZ_CLIENT_CONTACTOS_DATOS_BANCARIOS; + DetailOptions := DetailOptions - + [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; + end; + Result := (ADatosBancarios as IBizContactosDatosBancarios); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleContactos._GetDirecciones: IBizDireccionesContacto; +var + ADirecciones : TDAMemDataTable; +begin + ShowHourglassCursor; + try + ADirecciones := CloneDataTable(tbl_DireccionesContacto); + with ADirecciones do + begin + BusinessRulesID := BIZ_CLIENT_DIRECCIONES_CONTACTO; + DetailOptions := DetailOptions - + [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; + end; + Result := (ADirecciones as IBizDireccionesContacto); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleContactos._GetItems(IDCategoria: Integer): IBizContacto; +var + AContacto : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AContacto := CloneDataTable(tbl_Contactos); + + with AContacto do + case IDCategoria of + CATEGORIA_CLIENTE : BusinessRulesID := BIZ_CLIENT_CLIENTE; + CATEGORIA_PROVEEDOR : BusinessRulesID := BIZ_CLIENT_PROVEEDOR; + CATEGORIA_EMPLEADO : BusinessRulesID := BIZ_CLIENT_EMPLEADO; + end; + + with TBizContacto(AContacto.BusinessEventsObj) do + begin + DatosBancarios := _GetDatosBancarios; + Direcciones := _GetDirecciones; + Personal := _GetPersonal; + end; + + Result := (AContacto as IBizContacto); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleContactos._GetPersonal: IBizContactoPersonal; +var + APersonal : TDAMemDataTable; +begin + ShowHourglassCursor; + try + APersonal := CloneDataTable(tbl_PersonalContacto); + with APersonal do + begin + BusinessRulesID := BIZ_CLIENT_CONTACTO_PERSONAL; + DetailOptions := DetailOptions - + [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; + end; + Result := (APersonal as IBizContactoPersonal); + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Contactos/Data/uDataModuleEmpleados.dcu b/Source/Modulos/Contactos/Data/uDataModuleEmpleados.dcu new file mode 100644 index 0000000..1b76eb1 Binary files /dev/null and b/Source/Modulos/Contactos/Data/uDataModuleEmpleados.dcu differ diff --git a/Source/Modulos/Contactos/Data/uDataModuleEmpleados.dfm b/Source/Modulos/Contactos/Data/uDataModuleEmpleados.dfm new file mode 100644 index 0000000..9e07e39 --- /dev/null +++ b/Source/Modulos/Contactos/Data/uDataModuleEmpleados.dfm @@ -0,0 +1,451 @@ +inherited DataModuleEmpleados: TDataModuleEmpleados + Height = 302 + Width = 543 + inherited tbl_Contactos: TDAMemDataTable + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_CONTACTOS_ID' + ServerAutoRefresh = True + DictionaryEntry = 'Contactos_ID' + InPrimaryKey = True + end + item + Name = 'ID_CATEGORIA' + DataType = datInteger + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + DisplayLabel = 'NIF/CIF' + DictionaryEntry = 'Contactos_NIF_CIF' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + Required = True + DisplayLabel = 'Nombre' + DictionaryEntry = 'Contactos_NOMBRE' + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + DisplayLabel = 'Persona de contacto' + DictionaryEntry = 'Contactos_PERSONA_CONTACTO' + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DisplayLabel = 'Direcci'#243'n' + DictionaryEntry = 'Contactos_CALLE' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DisplayLabel = 'Poblaci'#243'n' + DictionaryEntry = 'Contactos_POBLACION' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Provincia' + DictionaryEntry = 'Contactos_PROVINCIA' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#243'digo postal' + DictionaryEntry = 'Contactos_CODIGO_POSTAL' + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + DisplayLabel = 'Tlf. trabajo' + DictionaryEntry = 'Contactos_TELEFONO_1' + end + item + Name = 'TELEFONO_2' + DataType = datString + Size = 25 + DisplayLabel = 'Tlf. particular' + DictionaryEntry = 'Contactos_TELEFONO_2' + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + DisplayLabel = 'M'#243'vil' + DictionaryEntry = 'Contactos_MOVIL_1' + end + item + Name = 'MOVIL_2' + DataType = datString + Size = 25 + DictionaryEntry = 'Contactos_MOVIL_2' + end + item + Name = 'FAX' + DataType = datString + Size = 25 + DisplayLabel = 'Fax' + DictionaryEntry = 'Contactos_FAX' + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + DisplayLabel = 'E-mail trabajo' + DictionaryEntry = 'Contactos_EMAIL_1' + end + item + Name = 'EMAIL_2' + DataType = datString + Size = 255 + DisplayLabel = 'E-mail particular' + DictionaryEntry = 'Contactos_EMAIL_2' + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + DisplayLabel = 'Web' + DictionaryEntry = 'Contactos_PAGINA_WEB' + end + item + Name = 'NOTAS' + DataType = datMemo + BlobType = dabtMemo + DisplayLabel = 'Observaciones' + DictionaryEntry = 'Contactos_NOTAS' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DisplayLabel = 'Fecha de alta' + DictionaryEntry = 'Contactos_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DisplayLabel = 'Fecha de modificaci'#243'n' + DictionaryEntry = 'Contactos_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DisplayLabel = 'Usuario' + DictionaryEntry = 'Contactos_USUARIO' + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + ServerAutoRefresh = True + DictionaryEntry = 'Contactos_REFERENCIA' + end> + end + inherited ds_Contactos: TDADataSource + DataSet = tbl_Contactos.Dataset + end + inherited ds_DireccionesContacto: TDADataSource + DataSet = tbl_DireccionesContacto.Dataset + end + inherited ds_DatosBancarios: TDADataSource + DataSet = tbl_DatosBancarios.Dataset + end + inherited ds_PersonalContacto: TDADataSource + DataSet = tbl_PersonalContacto.Dataset + end + object tbl_Empleados: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_CONTACTOS_ID' + ServerAutoRefresh = True + DictionaryEntry = 'Contactos_ID' + InPrimaryKey = True + end + item + Name = 'ID_CATEGORIA' + DataType = datInteger + DisplayLabel = 'Contactos_ID_CATEGORIA' + DictionaryEntry = 'Contactos_ID_CATEGORIA' + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + DisplayLabel = 'NIF/CIF' + DictionaryEntry = 'Contactos_NIF_CIF' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Nombre' + DictionaryEntry = 'Contactos_NOMBRE' + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + DisplayLabel = 'Persona de contacto' + DictionaryEntry = 'Contactos_PERSONA_CONTACTO' + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DisplayLabel = 'Direcci'#243'n' + DictionaryEntry = 'Contactos_CALLE' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DisplayLabel = 'Poblaci'#243'n' + DictionaryEntry = 'Contactos_POBLACION' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Provincia' + DictionaryEntry = 'Contactos_PROVINCIA' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#243'digo postal' + DictionaryEntry = 'Contactos_CODIGO_POSTAL' + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + DisplayLabel = 'Tlf. trabajo' + DictionaryEntry = 'Contactos_TELEFONO_1' + end + item + Name = 'TELEFONO_2' + DataType = datString + Size = 25 + DisplayLabel = 'Tlf. particular' + DictionaryEntry = 'Contactos_TELEFONO_2' + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + DisplayLabel = 'M'#243'vil' + DictionaryEntry = 'Contactos_MOVIL_1' + end + item + Name = 'MOVIL_2' + DataType = datString + Size = 25 + DisplayLabel = 'M'#243'vil 2' + DictionaryEntry = 'Contactos_MOVIL_2' + end + item + Name = 'FAX' + DataType = datString + Size = 25 + DisplayLabel = 'Fax' + DictionaryEntry = 'Contactos_FAX' + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + DisplayLabel = 'E-mail trabajo' + DictionaryEntry = 'Contactos_EMAIL_1' + end + item + Name = 'EMAIL_2' + DataType = datString + Size = 255 + DisplayLabel = 'E-mail particular' + DictionaryEntry = 'Contactos_EMAIL_2' + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + DisplayLabel = 'Web' + DictionaryEntry = 'Contactos_PAGINA_WEB' + end + item + Name = 'NOTAS' + DataType = datMemo + BlobType = dabtMemo + DisplayLabel = 'Observaciones' + DictionaryEntry = 'Contactos_NOTAS' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DisplayLabel = 'Empleados_FECHA_ALTA' + DictionaryEntry = 'Empleados_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DisplayLabel = 'Empleados_FECHA_MODIFICACION' + DictionaryEntry = 'Empleados_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DisplayLabel = 'Usuario' + DictionaryEntry = 'Contactos_USUARIO' + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'Contactos_ID_EMPRESA' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + ServerAutoRefresh = True + DictionaryEntry = 'Empleados_REFERENCIA' + end + item + Name = 'FECHA_NACIMIENTO' + DataType = datDateTime + DisplayLabel = 'Fecha nacimiento' + DictionaryEntry = 'Empleados_FECHA_NACIMIENTO' + end + item + Name = 'CATEGORIA' + DataType = datString + Size = 255 + DisplayLabel = 'Categor'#237'a' + DictionaryEntry = 'Empleados_CATEGORIA' + end + item + Name = 'FECHA_ALTA_EMPRESA' + DataType = datDateTime + DisplayLabel = 'Fecha de alta' + DictionaryEntry = 'Empleados_FECHA_ALTA_EMPRESA' + end + item + Name = 'FORMACION_BASE' + DataType = datMemo + DisplayLabel = 'Formaci'#243'n base' + DictionaryEntry = 'Empleados_FORMACION_BASE' + end + item + Name = 'FORMACION_COMPLE' + DataType = datMemo + DisplayLabel = 'Formaci'#243'n complementaria' + DictionaryEntry = 'Empleados_FORMACION_COMPLE' + end + item + Name = 'FORMACION_RECIBIDA' + DataType = datMemo + DisplayLabel = 'Formaci'#243'n recibida' + DictionaryEntry = 'Empleados_FORMACION_RECIBIDA' + end + item + Name = 'EXPERIENCIA' + DataType = datMemo + DisplayLabel = 'Experiencia' + DictionaryEntry = 'Empleados_EXPERIENCIA' + end + item + Name = 'CONTRATO' + DataType = datString + Size = 255 + DisplayLabel = 'Contrato' + DictionaryEntry = 'Empleados_CONTRATO' + end + item + Name = 'DURACION' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_BAJA' + DataType = datDateTime + end + item + Name = 'CAUSA_BAJA' + DataType = datString + Size = 255 + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Contactos + LocalDataStreamer = Bin2DataStreamer + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Empleados' + IndexDefs = <> + Left = 296 + Top = 168 + end + object ds_Empleados: TDADataSource + DataSet = tbl_Empleados.Dataset + DataTable = tbl_Empleados + Left = 296 + Top = 232 + end + object tbl_GruposEmpleado: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_EMPLEADOS_GRUPOS_ID' + Required = True + DictionaryEntry = 'GruposEmpleado_ID' + InPrimaryKey = True + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DisplayLabel = 'Descripci'#243'n' + DictionaryEntry = 'GruposEmpleado_DESCRIPCION' + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Contactos + LocalDataStreamer = Bin2DataStreamer + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'GruposEmpleado' + IndexDefs = <> + Left = 448 + Top = 168 + end + object ds_GruposEmpleado: TDADataSource + DataSet = tbl_GruposEmpleado.Dataset + DataTable = tbl_GruposEmpleado + Left = 448 + Top = 232 + end +end diff --git a/Source/Modulos/Contactos/Data/uDataModuleEmpleados.pas b/Source/Modulos/Contactos/Data/uDataModuleEmpleados.pas new file mode 100644 index 0000000..24befbc --- /dev/null +++ b/Source/Modulos/Contactos/Data/uDataModuleEmpleados.pas @@ -0,0 +1,125 @@ +unit uDataModuleEmpleados; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uDataModuleContactos, DB, uDADataTable, uDAScriptingProvider, + uDACDSDataTable, uDABINAdapter, uRORemoteService, + uROClient, uROBinMessage, uROWinInetHttpChannel, uBizGruposEmpleado, uROTypes, + uIDataModuleEmpleados, uBizContactos, uDADesigntimeCall, uIDataModuleFichasEmpleadoReport, + uDAInterfaces, uDAMemDataTable, uDADataStreamer, uDABin2DataStreamer, + uDARemoteDataAdapter, uIntegerListUtils; + +type + TDataModuleEmpleados = class(TDataModuleContactos, IDataModuleEmpleados, IDataModuleFichasEmpleadoReport) + tbl_Empleados: TDAMemDataTable; + ds_Empleados: TDADataSource; + tbl_GruposEmpleado: TDAMemDataTable; + ds_GruposEmpleado: TDADataSource; + protected + public + function GetItem(const ID : Integer) : IBizEmpleado; + function NewItem : IBizEmpleado; + function GetItems : IBizEmpleado; + function GetGruposEmpleado : IBizGrupoEmpleado; + + function DarListaContratosEmpleado : TStringList; + + // Report + function GetReport(const ListaID: TIntegerList): Binary; + end; + + +implementation + +{$R *.dfm} + +uses + FactuGES_Intf, cxControls, schContactosClient_Intf, uDataTableUtils, + uStringsUtils; + +{ TDataModuleVendedores } + +function TDataModuleEmpleados.DarListaContratosEmpleado: TStringList; +begin + Result := TStringList.Create; + StringToStrings((RORemoteService as IsrvContactos).DarListaContratosEmpleados, '|', Result); +end; + +function TDataModuleEmpleados.GetGruposEmpleado: IBizGrupoEmpleado; +var + AGrupoEmpleado : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AGrupoEmpleado := CloneDataTable(tbl_GruposEmpleado); + AGrupoEmpleado.BusinessRulesID := BIZ_CLIENT_GRUPOSEMPLEADO; + Result := (AGrupoEmpleado as IBizGrupoEmpleado); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleEmpleados.GetItem(const ID: Integer): IBizEmpleado; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + + with Result.DataTable.DynamicWhere do + begin + // (ID = :ID) + Condicion := NewBinaryExpression(NewField('', fld_ContactosID), NewConstant(ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TDataModuleEmpleados.GetItems: IBizEmpleado; +var + AContacto : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AContacto := CloneDataTable(tbl_Empleados); + AContacto.BusinessRulesID := BIZ_CLIENT_EMPLEADO; + + with TBizEmpleado(AContacto.BusinessEventsObj) do + begin + DatosBancarios := _GetDatosBancarios; + end; + + Result := (AContacto as IBizEmpleado); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleEmpleados.GetReport(const ListaID: TIntegerList): Binary; +var + AParam : TIntegerArray; +begin + AParam := ListaID.ToIntegerArray; + try + Result := (RORemoteService as IsrvContactos).GenerarInformeFichaEmpleado(AParam) + finally + FreeANDNil(AParam); + end; +end; + +function TDataModuleEmpleados.NewItem: IBizEmpleado; +begin + Result := GetItem(ID_NULO) +end; + +end. diff --git a/Source/Modulos/Contactos/Data/uDataModuleProveedores.dcu b/Source/Modulos/Contactos/Data/uDataModuleProveedores.dcu new file mode 100644 index 0000000..b719ff9 Binary files /dev/null and b/Source/Modulos/Contactos/Data/uDataModuleProveedores.dcu differ diff --git a/Source/Modulos/Contactos/Data/uDataModuleProveedores.dfm b/Source/Modulos/Contactos/Data/uDataModuleProveedores.dfm new file mode 100644 index 0000000..a6fdea0 --- /dev/null +++ b/Source/Modulos/Contactos/Data/uDataModuleProveedores.dfm @@ -0,0 +1,315 @@ +inherited DataModuleProveedores: TDataModuleProveedores + Height = 311 + Width = 632 + inherited ds_Contactos: TDADataSource + DataSet = tbl_Contactos.Dataset + end + inherited ds_DireccionesContacto: TDADataSource + DataSet = tbl_DireccionesContacto.Dataset + end + inherited ds_DatosBancarios: TDADataSource + DataSet = tbl_DatosBancarios.Dataset + end + inherited tbl_PersonalContacto: TDAMemDataTable + Left = 408 + Top = 176 + end + inherited ds_PersonalContacto: TDADataSource + DataSet = tbl_PersonalContacto.Dataset + Left = 408 + Top = 240 + end + object tbl_GruposProveedor: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_PROVEEDORES_GRUPOS_ID' + Required = True + DictionaryEntry = 'GruposProveedor_ID' + InPrimaryKey = True + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DisplayLabel = 'Descripci'#243'n' + DictionaryEntry = 'GruposProveedor_DESCRIPCION' + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Contactos + LocalDataStreamer = Bin2DataStreamer + LogicalName = 'GruposProveedor' + IndexDefs = <> + Left = 536 + Top = 176 + end + object ds_GruposProveedor: TDADataSource + DataSet = tbl_GruposProveedor.Dataset + DataTable = tbl_GruposProveedor + Left = 536 + Top = 240 + end + object tbl_Proveedores: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_CONTACTOS_ID' + ServerAutoRefresh = True + DictionaryEntry = 'Contactos_ID' + InPrimaryKey = True + end + item + Name = 'ID_CATEGORIA' + DataType = datInteger + DisplayLabel = 'Contactos_ID_CATEGORIA' + DictionaryEntry = 'Contactos_ID_CATEGORIA' + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + DisplayLabel = 'NIF/CIF' + DictionaryEntry = 'Contactos_NIF_CIF' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Nombre' + DictionaryEntry = 'Contactos_NOMBRE' + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + DisplayLabel = 'Persona de contacto' + DictionaryEntry = 'Contactos_PERSONA_CONTACTO' + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DisplayLabel = 'Direcci'#243'n' + DictionaryEntry = 'Contactos_CALLE' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DisplayLabel = 'Poblaci'#243'n' + DictionaryEntry = 'Contactos_POBLACION' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Provincia' + DictionaryEntry = 'Contactos_PROVINCIA' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#243'digo postal' + DictionaryEntry = 'Contactos_CODIGO_POSTAL' + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + DisplayLabel = 'Tlf. trabajo' + DictionaryEntry = 'Contactos_TELEFONO_1' + end + item + Name = 'TELEFONO_2' + DataType = datString + Size = 25 + DisplayLabel = 'Tlf. particular' + DictionaryEntry = 'Contactos_TELEFONO_2' + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + DisplayLabel = 'M'#243'vil' + DictionaryEntry = 'Contactos_MOVIL_1' + end + item + Name = 'MOVIL_2' + DataType = datString + Size = 25 + DisplayLabel = 'M'#243'vil 2' + DictionaryEntry = 'Contactos_MOVIL_2' + end + item + Name = 'FAX' + DataType = datString + Size = 25 + DisplayLabel = 'Fax' + DictionaryEntry = 'Contactos_FAX' + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + DisplayLabel = 'E-mail trabajo' + DictionaryEntry = 'Contactos_EMAIL_1' + end + item + Name = 'EMAIL_2' + DataType = datString + Size = 255 + DisplayLabel = 'E-mail particular' + DictionaryEntry = 'Contactos_EMAIL_2' + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + DisplayLabel = 'Web' + DictionaryEntry = 'Contactos_PAGINA_WEB' + end + item + Name = 'NOTAS' + DataType = datMemo + BlobType = dabtMemo + DisplayLabel = 'Observaciones' + DictionaryEntry = 'Contactos_NOTAS' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DisplayLabel = 'Proveedores_FECHA_ALTA' + DictionaryEntry = 'Proveedores_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DisplayLabel = 'Proveedores_FECHA_MODIFICACION' + DictionaryEntry = 'Proveedores_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DisplayLabel = 'Usuario' + DictionaryEntry = 'Contactos_USUARIO' + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'Contactos_ID_EMPRESA' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + ServerAutoRefresh = True + DictionaryEntry = 'Proveedores_REFERENCIA' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DisplayLabel = 'Descuento (%)' + DictionaryEntry = 'Proveedores_DESCUENTO' + end + item + Name = 'DESCRIPCION_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'Proveedor de...' + DictionaryEntry = 'Proveedores_DESCRIPCION_PROVEEDOR' + end + item + Name = 'CODIGO_ASIGNADO' + DataType = datString + Size = 255 + DisplayLabel = 'C'#243'digo asignado' + DictionaryEntry = 'Proveedores_CODIGO_ASIGNADO' + end + item + Name = 'GRUPO_PROVEEDOR' + DataType = datString + DisplayLabel = 'Grupo proveedor' + DictionaryEntry = 'Proveedores_GRUPO_PROVEEDOR' + end + item + Name = 'REGIMEN_IVA' + DataType = datString + Size = 255 + DisplayLabel = 'R'#233'gimen de IVA' + DictionaryEntry = 'Proveedores_REGIMEN_IVA' + end + item + Name = 'ID_TIPO_IVA' + DataType = datInteger + DictionaryEntry = 'Proveedores_ID_TIPO_IVA' + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + DictionaryEntry = 'Proveedores_ID_FORMA_PAGO' + end + item + Name = 'TIENDA_WEB' + DataType = datSmallInt + DictionaryEntry = 'Proveedores_TIENDA_WEB' + end + item + Name = 'HOMOLOGADO' + DataType = datSmallInt + DisplayLabel = 'Homologado' + DictionaryEntry = 'Proveedores_HOMOLOGADO' + end + item + Name = 'CERTIFICACION' + DataType = datString + Size = 255 + DisplayLabel = 'Certificaciones' + DictionaryEntry = 'Proveedores_CERTIFICACION' + end + item + Name = 'SUBCONTRATA' + DataType = datSmallInt + DisplayLabel = 'Subcontrata' + DictionaryEntry = 'Proveedores_SUBCONTRATA' + end + item + Name = 'EMAIL_ADMINISTRACION' + DataType = datString + Size = 255 + end + item + Name = 'VENCIMIENTO_FACTURAS_1' + DataType = datSmallInt + end + item + Name = 'VENCIMIENTO_FACTURAS_2' + DataType = datSmallInt + end + item + Name = 'VENCIMIENTO_FACTURAS_3' + DataType = datSmallInt + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Contactos + LocalDataStreamer = Bin2DataStreamer + LogicalName = 'Proveedores' + IndexDefs = <> + Left = 296 + Top = 168 + end + object ds_Proveedores: TDADataSource + DataSet = tbl_Proveedores.Dataset + DataTable = tbl_Proveedores + Left = 296 + Top = 232 + end +end diff --git a/Source/Modulos/Contactos/Data/uDataModuleProveedores.pas b/Source/Modulos/Contactos/Data/uDataModuleProveedores.pas new file mode 100644 index 0000000..6b13feb --- /dev/null +++ b/Source/Modulos/Contactos/Data/uDataModuleProveedores.pas @@ -0,0 +1,132 @@ +unit uDataModuleProveedores; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uDataModuleContactos, DB, uDADataTable, uDAScriptingProvider, + uDACDSDataTable, uDABINAdapter, uRORemoteService, + uROClient, uROBinMessage, uROWinInetHttpChannel, uBizGruposProveedor, + + uIDataModuleProveedores, uBizContactos, uDADesigntimeCall, + uDARemoteDataAdapter, uDADataStreamer, uRODynamicRequest, uDAInterfaces, + uDAMemDataTable, uDABin2DataStreamer; + +type + TDataModuleProveedores = class(TDataModuleContactos, IDataModuleProveedores) + tbl_GruposProveedor: TDAMemDataTable; + ds_GruposProveedor: TDADataSource; + tbl_Proveedores: TDAMemDataTable; + ds_Proveedores: TDADataSource; + public + function GetItem(const ID : Integer) : IBizProveedor; + function NewItem : IBizProveedor; + function GetItems : IBizProveedor; + function GetItemsTiendaWeb : IBizProveedor; + function GetGruposProveedor : IBizGrupoProveedor; + function DarListaDescripcionesProveedores : TStringList; + end; + +implementation + +{$R *.dfm} + +uses + FactuGES_Intf, cxControls, schContactosClient_Intf, uDataTableUtils, uStringsUtils; + +{ TDataModuleProveedores } + +function TDataModuleProveedores.DarListaDescripcionesProveedores: TStringList; +begin + Result := TStringList.Create; + StringToStrings((RORemoteService as IsrvContactos).DarListaDescripcionesProveedores, '|', Result); +end; + +function TDataModuleProveedores.GetGruposProveedor: IBizGrupoProveedor; +var + AGrupoProveedor : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AGrupoProveedor := CloneDataTable(tbl_GruposProveedor); + AGrupoProveedor.BusinessRulesID := BIZ_CLIENT_GRUPOSPROVEEDOR; + Result := (AGrupoProveedor as IBizGrupoProveedor); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleProveedores.GetItem(const ID: Integer): IBizProveedor; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + + with Result.DataTable.DynamicWhere do + begin + // (ID = :ID) + Condicion := NewBinaryExpression(NewField('', fld_ContactosID), NewConstant(ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TDataModuleProveedores.GetItems: IBizProveedor; +var + AContacto : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AContacto := CloneDataTable(tbl_Proveedores); + AContacto.BusinessRulesID := BIZ_CLIENT_PROVEEDOR; + + with TBizProveedor(AContacto.BusinessEventsObj) do + begin + DatosBancarios := _GetDatosBancarios; + Direcciones := _GetDirecciones; + Personal := _GetPersonal; + end; + + Result := (AContacto as IBizProveedor); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleProveedores.GetItemsTiendaWeb: IBizProveedor; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + + with Result.DataTable.DynamicWhere do + begin + // (ID = :ID) + Condicion := NewBinaryExpression(NewField('', fld_ClientesTIENDA_WEB), NewConstant(1, datInteger), dboEqual); + + Clear; + Expression := Condicion + end; + + finally + HideHourglassCursor; + end; +end; + +function TDataModuleProveedores.NewItem: IBizProveedor; +begin + Result := GetItem(ID_NULO) +end; + +end. diff --git a/Source/Modulos/Contactos/Model/Contactos_model.bdsproj b/Source/Modulos/Contactos/Model/Contactos_model.bdsproj new file mode 100644 index 0000000..9466337 --- /dev/null +++ b/Source/Modulos/Contactos/Model/Contactos_model.bdsproj @@ -0,0 +1,497 @@ + + + + + + + + + + + + Contactos_model.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + JCL Debug IDE extension + JCL Project Analyzer + JCL Open and Save IDE dialogs with favorite folders + + + + False + diff --git a/Source/Modulos/Contactos/Model/Contactos_model.dcu b/Source/Modulos/Contactos/Model/Contactos_model.dcu new file mode 100644 index 0000000..699bd43 Binary files /dev/null and b/Source/Modulos/Contactos/Model/Contactos_model.dcu differ diff --git a/Source/Modulos/Contactos/Model/Contactos_model.dpk b/Source/Modulos/Contactos/Model/Contactos_model.dpk new file mode 100644 index 0000000..22125fd --- /dev/null +++ b/Source/Modulos/Contactos/Model/Contactos_model.dpk @@ -0,0 +1,61 @@ +package Contactos_model; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + rtl, + vcl, + Base, + GUIBase, + ApplicationBase, + dbrtl, + DataAbstract_Core_D11, + vcldb, + dsnap, + adortl, + RemObjects_Core_D11; + +contains + uBizContactosDatosBancarios in 'uBizContactosDatosBancarios.pas', + uBizContactos in 'uBizContactos.pas', + uIDataModuleContactos in 'Data\uIDataModuleContactos.pas', + uIDataModuleClientes in 'Data\uIDataModuleClientes.pas', + uIDataModuleProveedores in 'Data\uIDataModuleProveedores.pas', + uIDataModuleEmpleados in 'Data\uIDataModuleEmpleados.pas', + uBizDireccionesContacto in 'uBizDireccionesContacto.pas', + uBizClientesDescuentos in 'uBizClientesDescuentos.pas', + uRegimenIVAUtils in '..\Utiles\uRegimenIVAUtils.pas', + uBizGruposCliente in 'uBizGruposCliente.pas', + uBizGruposEmpleado in 'uBizGruposEmpleado.pas', + uBizGruposProveedor in 'uBizGruposProveedor.pas', + uIDataModuleFichasEmpleadoReport in 'Data\uIDataModuleFichasEmpleadoReport.pas', + uIDataModuleEtiquetasContactosReport in 'Data\uIDataModuleEtiquetasContactosReport.pas', + schContactosClient_Intf in 'schContactosClient_Intf.pas', + schContactosServer_Intf in 'schContactosServer_Intf.pas', + uBizContactosPersonal in 'uBizContactosPersonal.pas', + uIDataModuleAgentes in 'Data\uIDataModuleAgentes.pas', + uBizAgentesComisiones in 'uBizAgentesComisiones.pas'; + +end. diff --git a/Source/Modulos/Contactos/Model/Contactos_model.dproj b/Source/Modulos/Contactos/Model/Contactos_model.dproj new file mode 100644 index 0000000..6e39d79 --- /dev/null +++ b/Source/Modulos/Contactos/Model/Contactos_model.dproj @@ -0,0 +1,566 @@ + + + + {a7225a8d-f40d-4878-9a27-c5de0e7cb638} + Contactos_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Contactos_model.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Contactos_model.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Contactos/Model/Contactos_model.drc b/Source/Modulos/Contactos/Model/Contactos_model.drc new file mode 100644 index 0000000..bcdf0e4 --- /dev/null +++ b/Source/Modulos/Contactos/Model/Contactos_model.drc @@ -0,0 +1,16 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Contactos\Model\Contactos_model.res */ +/* C:\Codigo\Source\Modulos\Contactos\Model\Contactos_model.drf */ diff --git a/Source/Modulos/Contactos/Model/Contactos_model.identcache b/Source/Modulos/Contactos/Model/Contactos_model.identcache new file mode 100644 index 0000000..a942e16 Binary files /dev/null and b/Source/Modulos/Contactos/Model/Contactos_model.identcache differ diff --git a/Source/Modulos/Contactos/Model/Contactos_model.rc b/Source/Modulos/Contactos/Model/Contactos_model.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Contactos/Model/Contactos_model.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Contactos/Model/Contactos_model.res b/Source/Modulos/Contactos/Model/Contactos_model.res new file mode 100644 index 0000000..1641339 Binary files /dev/null and b/Source/Modulos/Contactos/Model/Contactos_model.res differ diff --git a/Source/Modulos/Contactos/Model/Data/uIDataModuleAgentes.pas b/Source/Modulos/Contactos/Model/Data/uIDataModuleAgentes.pas new file mode 100644 index 0000000..6cdfa08 --- /dev/null +++ b/Source/Modulos/Contactos/Model/Data/uIDataModuleAgentes.pas @@ -0,0 +1,19 @@ +unit uIDataModuleAgentes; + +interface + +uses + Classes, uBizContactos, uIDataModuleContactos; + +type + IDataModuleAgentes = interface(IDataModuleContactos) + ['{00615221-9B32-42DA-9594-E37785A1E4CA}'] + function GetItem(const ID : Integer) : IBizAgente; + function NewItem : IBizAgente; + function GetItems : IBizAgente; + end; + + +implementation + +end. diff --git a/Source/Modulos/Contactos/Model/Data/uIDataModuleClientes.dcu b/Source/Modulos/Contactos/Model/Data/uIDataModuleClientes.dcu new file mode 100644 index 0000000..8254d55 Binary files /dev/null and b/Source/Modulos/Contactos/Model/Data/uIDataModuleClientes.dcu differ diff --git a/Source/Modulos/Contactos/Model/Data/uIDataModuleClientes.pas b/Source/Modulos/Contactos/Model/Data/uIDataModuleClientes.pas new file mode 100644 index 0000000..9fd5cf7 --- /dev/null +++ b/Source/Modulos/Contactos/Model/Data/uIDataModuleClientes.pas @@ -0,0 +1,25 @@ +unit uIDataModuleClientes; + +interface + +uses + uBizContactos, uIDataModuleContactos, uBizGruposCliente, uBizContactosDatosBancarios; + +type + IDataModuleClientes = interface(IDataModuleContactos) + ['{A7442A11-01F6-4F1A-B6B0-D3B9CCBC5392}'] + function _GetItems (IDCategoria : Integer): IBizContacto; + function _GetDatosBancarios : IBizContactosDatosBancarios; + + function GetItem(const ID : Integer) : IBizCliente; + function NewItem : IBizCliente; + function GetItems : IBizCliente; + function GetItemsTiendaWeb : IBizCliente; + function GetItemsFelicitacion : IBizCliente; + function GetGruposCliente : IBizGrupoCliente; + end; + + +implementation + +end. diff --git a/Source/Modulos/Contactos/Model/Data/uIDataModuleContactos.dcu b/Source/Modulos/Contactos/Model/Data/uIDataModuleContactos.dcu new file mode 100644 index 0000000..35626ec Binary files /dev/null and b/Source/Modulos/Contactos/Model/Data/uIDataModuleContactos.dcu differ diff --git a/Source/Modulos/Contactos/Model/Data/uIDataModuleContactos.pas b/Source/Modulos/Contactos/Model/Data/uIDataModuleContactos.pas new file mode 100644 index 0000000..796805b --- /dev/null +++ b/Source/Modulos/Contactos/Model/Data/uIDataModuleContactos.pas @@ -0,0 +1,22 @@ +unit uIDataModuleContactos; + +interface + +uses + SysUtils, Classes, + uBizContactos, uBizContactosDatosBancarios, uBizDireccionesContacto, + uBizContactosPersonal; + +type + IDataModuleContactos = interface + ['{835FFC4D-1AE9-4020-A042-C9D84EC25A2C}'] + function _GetItems (IDCategoria : Integer): IBizContacto; + function _GetDatosBancarios : IBizContactosDatosBancarios; + function _GetDirecciones: IBizDireccionesContacto; + function _GetPersonal: IBizContactoPersonal; + function NewDireccion : IBizDireccionesContacto; + end; + +implementation + +end. diff --git a/Source/Modulos/Contactos/Model/Data/uIDataModuleEmpleados.dcu b/Source/Modulos/Contactos/Model/Data/uIDataModuleEmpleados.dcu new file mode 100644 index 0000000..a2cc761 Binary files /dev/null and b/Source/Modulos/Contactos/Model/Data/uIDataModuleEmpleados.dcu differ diff --git a/Source/Modulos/Contactos/Model/Data/uIDataModuleEmpleados.pas b/Source/Modulos/Contactos/Model/Data/uIDataModuleEmpleados.pas new file mode 100644 index 0000000..904fda0 --- /dev/null +++ b/Source/Modulos/Contactos/Model/Data/uIDataModuleEmpleados.pas @@ -0,0 +1,21 @@ +unit uIDataModuleEmpleados; + +interface + +uses + Classes, uBizContactos, uIDataModuleContactos, uBizGruposEmpleado; + +type + IDataModuleEmpleados = interface(IDataModuleContactos) + ['{AB1F39BC-CC64-42E6-890C-F10A7AABAA4D}'] + function GetItem(const ID : Integer) : IBizEmpleado; + function NewItem : IBizEmpleado; + function GetItems : IBizEmpleado; + function GetGruposEmpleado : IBizGrupoEmpleado; + function DarListaContratosEmpleado : TStringList; + end; + + +implementation + +end. diff --git a/Source/Modulos/Contactos/Model/Data/uIDataModuleEtiquetasContactosReport.dcu b/Source/Modulos/Contactos/Model/Data/uIDataModuleEtiquetasContactosReport.dcu new file mode 100644 index 0000000..c25c474 Binary files /dev/null and b/Source/Modulos/Contactos/Model/Data/uIDataModuleEtiquetasContactosReport.dcu differ diff --git a/Source/Modulos/Contactos/Model/Data/uIDataModuleEtiquetasContactosReport.pas b/Source/Modulos/Contactos/Model/Data/uIDataModuleEtiquetasContactosReport.pas new file mode 100644 index 0000000..5bf48d6 --- /dev/null +++ b/Source/Modulos/Contactos/Model/Data/uIDataModuleEtiquetasContactosReport.pas @@ -0,0 +1,16 @@ +unit uIDataModuleEtiquetasContactosReport; + +interface + +uses + SysUtils, Classes, uROTypes, uIntegerListUtils; + +type + IDataModuleEtiquetasContactosReport = interface + ['{26E68DED-5BD9-4227-B07F-9644BED7AE7B}'] + function GetReport(const ListaID: TIntegerList): Binary; + end; + +implementation + +end. diff --git a/Source/Modulos/Contactos/Model/Data/uIDataModuleFichasEmpleadoReport.dcu b/Source/Modulos/Contactos/Model/Data/uIDataModuleFichasEmpleadoReport.dcu new file mode 100644 index 0000000..fce16b6 Binary files /dev/null and b/Source/Modulos/Contactos/Model/Data/uIDataModuleFichasEmpleadoReport.dcu differ diff --git a/Source/Modulos/Contactos/Model/Data/uIDataModuleFichasEmpleadoReport.pas b/Source/Modulos/Contactos/Model/Data/uIDataModuleFichasEmpleadoReport.pas new file mode 100644 index 0000000..2be4812 --- /dev/null +++ b/Source/Modulos/Contactos/Model/Data/uIDataModuleFichasEmpleadoReport.pas @@ -0,0 +1,16 @@ +unit uIDataModuleFichasEmpleadoReport; + +interface + +uses + SysUtils, Classes, uROTypes, uIntegerListUtils; + +type + IDataModuleFichasEmpleadoReport = interface + ['{45EEB949-2AC0-459F-88B0-235444B005E4}'] + function GetReport(const ListaID: TIntegerList): Binary; + end; + +implementation + +end. diff --git a/Source/Modulos/Contactos/Model/Data/uIDataModuleGruposCliente.pas b/Source/Modulos/Contactos/Model/Data/uIDataModuleGruposCliente.pas new file mode 100644 index 0000000..cde4515 --- /dev/null +++ b/Source/Modulos/Contactos/Model/Data/uIDataModuleGruposCliente.pas @@ -0,0 +1,16 @@ +unit uIDataModuleGruposCliente; + +interface + +uses + uBizGruposCliente; + +type + IDataModuleGruposCliente = interface + ['{0E08FB88-DDF7-48D7-9FA6-A695B8905248}'] + function GetItems: IBizGrupoCliente; + end; + +implementation + +end. diff --git a/Source/Modulos/Contactos/Model/Data/uIDataModuleProveedores.dcu b/Source/Modulos/Contactos/Model/Data/uIDataModuleProveedores.dcu new file mode 100644 index 0000000..b35dca9 Binary files /dev/null and b/Source/Modulos/Contactos/Model/Data/uIDataModuleProveedores.dcu differ diff --git a/Source/Modulos/Contactos/Model/Data/uIDataModuleProveedores.pas b/Source/Modulos/Contactos/Model/Data/uIDataModuleProveedores.pas new file mode 100644 index 0000000..a029fd8 --- /dev/null +++ b/Source/Modulos/Contactos/Model/Data/uIDataModuleProveedores.pas @@ -0,0 +1,22 @@ +unit uIDataModuleProveedores; + +interface + +uses + Classes, uBizContactos, uIDataModuleContactos, uBizGruposProveedor; + +type + IDataModuleProveedores = interface(IDataModuleContactos) + ['{ED948BD0-F836-41FC-9293-76CD8973CA89}'] + function GetItem(const ID : Integer) : IBizProveedor; + function NewItem : IBizProveedor; + function GetItems : IBizProveedor; + function GetItemsTiendaWeb : IBizProveedor; + function GetGruposProveedor : IBizGrupoProveedor; + function DarListaDescripcionesProveedores : TStringList; + end; + + +implementation + +end. diff --git a/Source/Modulos/Contactos/Model/DataAbstract3_Intf.dcu b/Source/Modulos/Contactos/Model/DataAbstract3_Intf.dcu new file mode 100644 index 0000000..6cff228 Binary files /dev/null and b/Source/Modulos/Contactos/Model/DataAbstract3_Intf.dcu differ diff --git a/Source/Modulos/Contactos/Model/DataAbstract4_Intf.dcu b/Source/Modulos/Contactos/Model/DataAbstract4_Intf.dcu new file mode 100644 index 0000000..1e146cf Binary files /dev/null and b/Source/Modulos/Contactos/Model/DataAbstract4_Intf.dcu differ diff --git a/Source/Modulos/Contactos/Model/schContactosClient_Intf.dcu b/Source/Modulos/Contactos/Model/schContactosClient_Intf.dcu new file mode 100644 index 0000000..8e529ce Binary files /dev/null and b/Source/Modulos/Contactos/Model/schContactosClient_Intf.dcu differ diff --git a/Source/Modulos/Contactos/Model/schContactosClient_Intf.pas b/Source/Modulos/Contactos/Model/schContactosClient_Intf.pas new file mode 100644 index 0000000..73da84d --- /dev/null +++ b/Source/Modulos/Contactos/Model/schContactosClient_Intf.pas @@ -0,0 +1,9058 @@ +unit schContactosClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDAInterfaces, uDADataTable, FmtBCD, uROXMLIntf; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_Contactos = '{14B93F69-65C7-4EC5-B1B3-62AFB72B56CC}'; + RID_GruposCliente = '{124D5907-C17F-45AA-8054-B2907386691A}'; + RID_DatosBancarios = '{ABCF1579-76BE-4A00-9059-0BD20DA768FF}'; + RID_Clientes = '{25A428D4-0DA0-4C84-91A3-C62146B36377}'; + RID_Proveedores = '{BED5456E-216D-4183-BE0E-0CA6A6A3291B}'; + RID_Empleados = '{190D4595-EC77-40B1-83F0-683B59B8CA6A}'; + RID_DireccionesContacto = '{52E7BA67-F88F-4DCC-BBC9-41CEDE7DE3A8}'; + RID_ClientesDescuentos = '{C20093E4-2828-41F4-B798-500C95F1DABE}'; + RID_GruposProveedor = '{A815592C-9F5E-499E-BA92-135145F5608B}'; + RID_GruposEmpleado = '{EC079A8C-D587-4647-804C-DA0B528278CF}'; + RID_Contactos_Refresh = '{762F774A-9D7D-496D-AE66-A018D430B41C}'; + RID_ContratosEmpleados = '{0B52807A-6F66-420F-A38F-2083D4A0D722}'; + RID_DescripcionesProveedores = '{63C50F71-C164-4298-965D-CE0D1B5BC2D5}'; + RID_PersonalContacto = '{E5692F4D-8DEA-48BE-B38C-55553ECF4BC7}'; + RID_Agentes_Comisiones = '{91F3B993-9766-4C99-B97E-03F667F57F4C}'; + RID_Agentes = '{60EF74A6-4CFA-4938-83A1-CF8A893D9556}'; + + { Data table names } + nme_Contactos = 'Contactos'; + nme_GruposCliente = 'GruposCliente'; + nme_DatosBancarios = 'DatosBancarios'; + nme_Clientes = 'Clientes'; + nme_Proveedores = 'Proveedores'; + nme_Empleados = 'Empleados'; + nme_DireccionesContacto = 'DireccionesContacto'; + nme_ClientesDescuentos = 'ClientesDescuentos'; + nme_GruposProveedor = 'GruposProveedor'; + nme_GruposEmpleado = 'GruposEmpleado'; + nme_Contactos_Refresh = 'Contactos_Refresh'; + nme_ContratosEmpleados = 'ContratosEmpleados'; + nme_DescripcionesProveedores = 'DescripcionesProveedores'; + nme_PersonalContacto = 'PersonalContacto'; + nme_Agentes_Comisiones = 'Agentes_Comisiones'; + nme_Agentes = 'Agentes'; + + { Contactos fields } + fld_ContactosID = 'ID'; + fld_ContactosID_CATEGORIA = 'ID_CATEGORIA'; + fld_ContactosNIF_CIF = 'NIF_CIF'; + fld_ContactosNOMBRE = 'NOMBRE'; + fld_ContactosPERSONA_CONTACTO = 'PERSONA_CONTACTO'; + fld_ContactosCALLE = 'CALLE'; + fld_ContactosPOBLACION = 'POBLACION'; + fld_ContactosPROVINCIA = 'PROVINCIA'; + fld_ContactosCODIGO_POSTAL = 'CODIGO_POSTAL'; + fld_ContactosTELEFONO_1 = 'TELEFONO_1'; + fld_ContactosTELEFONO_2 = 'TELEFONO_2'; + fld_ContactosMOVIL_1 = 'MOVIL_1'; + fld_ContactosMOVIL_2 = 'MOVIL_2'; + fld_ContactosFAX = 'FAX'; + fld_ContactosEMAIL_1 = 'EMAIL_1'; + fld_ContactosEMAIL_2 = 'EMAIL_2'; + fld_ContactosPAGINA_WEB = 'PAGINA_WEB'; + fld_ContactosNOTAS = 'NOTAS'; + fld_ContactosFECHA_ALTA = 'FECHA_ALTA'; + fld_ContactosFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_ContactosUSUARIO = 'USUARIO'; + fld_ContactosID_EMPRESA = 'ID_EMPRESA'; + fld_ContactosREFERENCIA = 'REFERENCIA'; + + { Contactos field indexes } + idx_ContactosID = 0; + idx_ContactosID_CATEGORIA = 1; + idx_ContactosNIF_CIF = 2; + idx_ContactosNOMBRE = 3; + idx_ContactosPERSONA_CONTACTO = 4; + idx_ContactosCALLE = 5; + idx_ContactosPOBLACION = 6; + idx_ContactosPROVINCIA = 7; + idx_ContactosCODIGO_POSTAL = 8; + idx_ContactosTELEFONO_1 = 9; + idx_ContactosTELEFONO_2 = 10; + idx_ContactosMOVIL_1 = 11; + idx_ContactosMOVIL_2 = 12; + idx_ContactosFAX = 13; + idx_ContactosEMAIL_1 = 14; + idx_ContactosEMAIL_2 = 15; + idx_ContactosPAGINA_WEB = 16; + idx_ContactosNOTAS = 17; + idx_ContactosFECHA_ALTA = 18; + idx_ContactosFECHA_MODIFICACION = 19; + idx_ContactosUSUARIO = 20; + idx_ContactosID_EMPRESA = 21; + idx_ContactosREFERENCIA = 22; + + { GruposCliente fields } + fld_GruposClienteID = 'ID'; + fld_GruposClienteDESCRIPCION = 'DESCRIPCION'; + + { GruposCliente field indexes } + idx_GruposClienteID = 0; + idx_GruposClienteDESCRIPCION = 1; + + { DatosBancarios fields } + fld_DatosBancariosID = 'ID'; + fld_DatosBancariosID_CONTACTO = 'ID_CONTACTO'; + fld_DatosBancariosTITULAR = 'TITULAR'; + fld_DatosBancariosENTIDAD = 'ENTIDAD'; + fld_DatosBancariosSUCURSAL = 'SUCURSAL'; + fld_DatosBancariosDC = 'DC'; + fld_DatosBancariosCUENTA = 'CUENTA'; + fld_DatosBancariosFECHA_ALTA = 'FECHA_ALTA'; + fld_DatosBancariosFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + + { DatosBancarios field indexes } + idx_DatosBancariosID = 0; + idx_DatosBancariosID_CONTACTO = 1; + idx_DatosBancariosTITULAR = 2; + idx_DatosBancariosENTIDAD = 3; + idx_DatosBancariosSUCURSAL = 4; + idx_DatosBancariosDC = 5; + idx_DatosBancariosCUENTA = 6; + idx_DatosBancariosFECHA_ALTA = 7; + idx_DatosBancariosFECHA_MODIFICACION = 8; + + { Clientes fields } + fld_ClientesID = 'ID'; + fld_ClientesID_CATEGORIA = 'ID_CATEGORIA'; + fld_ClientesNIF_CIF = 'NIF_CIF'; + fld_ClientesNOMBRE = 'NOMBRE'; + fld_ClientesPERSONA_CONTACTO = 'PERSONA_CONTACTO'; + fld_ClientesCALLE = 'CALLE'; + fld_ClientesPOBLACION = 'POBLACION'; + fld_ClientesPROVINCIA = 'PROVINCIA'; + fld_ClientesCODIGO_POSTAL = 'CODIGO_POSTAL'; + fld_ClientesTELEFONO_1 = 'TELEFONO_1'; + fld_ClientesTELEFONO_2 = 'TELEFONO_2'; + fld_ClientesMOVIL_1 = 'MOVIL_1'; + fld_ClientesMOVIL_2 = 'MOVIL_2'; + fld_ClientesFAX = 'FAX'; + fld_ClientesEMAIL_1 = 'EMAIL_1'; + fld_ClientesEMAIL_2 = 'EMAIL_2'; + fld_ClientesPAGINA_WEB = 'PAGINA_WEB'; + fld_ClientesNOTAS = 'NOTAS'; + fld_ClientesFECHA_ALTA = 'FECHA_ALTA'; + fld_ClientesFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_ClientesUSUARIO = 'USUARIO'; + fld_ClientesID_EMPRESA = 'ID_EMPRESA'; + fld_ClientesREFERENCIA = 'REFERENCIA'; + fld_ClientesID_AGENTE = 'ID_AGENTE'; + fld_ClientesGRUPO_CLIENTE = 'GRUPO_CLIENTE'; + fld_ClientesNOMBRE_COMERCIAL = 'NOMBRE_COMERCIAL'; + fld_ClientesVENCIMIENTO_FACTURAS_1 = 'VENCIMIENTO_FACTURAS_1'; + fld_ClientesVENCIMIENTO_FACTURAS_2 = 'VENCIMIENTO_FACTURAS_2'; + fld_ClientesVENCIMIENTO_FACTURAS_3 = 'VENCIMIENTO_FACTURAS_3'; + fld_ClientesBLOQUEADO = 'BLOQUEADO'; + fld_ClientesAGENTE = 'AGENTE'; + fld_ClientesRAPEL = 'RAPEL'; + fld_ClientesEMAIL_ADMINISTRACION = 'EMAIL_ADMINISTRACION'; + fld_ClientesREGIMEN_IVA = 'REGIMEN_IVA'; + fld_ClientesMOTIVO_BLOQUEO = 'MOTIVO_BLOQUEO'; + fld_ClientesRECARGO_EQUIVALENCIA = 'RECARGO_EQUIVALENCIA'; + fld_ClientesID_TIPO_IVA = 'ID_TIPO_IVA'; + fld_ClientesID_FORMA_PAGO = 'ID_FORMA_PAGO'; + fld_ClientesTIENDA_WEB = 'TIENDA_WEB'; + fld_ClientesCODIGO_ASIGNADO = 'CODIGO_ASIGNADO'; + fld_ClientesDESCUENTO = 'DESCUENTO'; + fld_ClientesFELICITACION = 'FELICITACION'; + + { Clientes field indexes } + idx_ClientesID = 0; + idx_ClientesID_CATEGORIA = 1; + idx_ClientesNIF_CIF = 2; + idx_ClientesNOMBRE = 3; + idx_ClientesPERSONA_CONTACTO = 4; + idx_ClientesCALLE = 5; + idx_ClientesPOBLACION = 6; + idx_ClientesPROVINCIA = 7; + idx_ClientesCODIGO_POSTAL = 8; + idx_ClientesTELEFONO_1 = 9; + idx_ClientesTELEFONO_2 = 10; + idx_ClientesMOVIL_1 = 11; + idx_ClientesMOVIL_2 = 12; + idx_ClientesFAX = 13; + idx_ClientesEMAIL_1 = 14; + idx_ClientesEMAIL_2 = 15; + idx_ClientesPAGINA_WEB = 16; + idx_ClientesNOTAS = 17; + idx_ClientesFECHA_ALTA = 18; + idx_ClientesFECHA_MODIFICACION = 19; + idx_ClientesUSUARIO = 20; + idx_ClientesID_EMPRESA = 21; + idx_ClientesREFERENCIA = 22; + idx_ClientesID_AGENTE = 23; + idx_ClientesGRUPO_CLIENTE = 24; + idx_ClientesNOMBRE_COMERCIAL = 25; + idx_ClientesVENCIMIENTO_FACTURAS_1 = 26; + idx_ClientesVENCIMIENTO_FACTURAS_2 = 27; + idx_ClientesVENCIMIENTO_FACTURAS_3 = 28; + idx_ClientesBLOQUEADO = 29; + idx_ClientesAGENTE = 30; + idx_ClientesRAPEL = 31; + idx_ClientesEMAIL_ADMINISTRACION = 32; + idx_ClientesREGIMEN_IVA = 33; + idx_ClientesMOTIVO_BLOQUEO = 34; + idx_ClientesRECARGO_EQUIVALENCIA = 35; + idx_ClientesID_TIPO_IVA = 36; + idx_ClientesID_FORMA_PAGO = 37; + idx_ClientesTIENDA_WEB = 38; + idx_ClientesCODIGO_ASIGNADO = 39; + idx_ClientesDESCUENTO = 40; + idx_ClientesFELICITACION = 41; + + { Proveedores fields } + fld_ProveedoresID = 'ID'; + fld_ProveedoresID_CATEGORIA = 'ID_CATEGORIA'; + fld_ProveedoresNIF_CIF = 'NIF_CIF'; + fld_ProveedoresNOMBRE = 'NOMBRE'; + fld_ProveedoresPERSONA_CONTACTO = 'PERSONA_CONTACTO'; + fld_ProveedoresCALLE = 'CALLE'; + fld_ProveedoresPOBLACION = 'POBLACION'; + fld_ProveedoresPROVINCIA = 'PROVINCIA'; + fld_ProveedoresCODIGO_POSTAL = 'CODIGO_POSTAL'; + fld_ProveedoresTELEFONO_1 = 'TELEFONO_1'; + fld_ProveedoresTELEFONO_2 = 'TELEFONO_2'; + fld_ProveedoresMOVIL_1 = 'MOVIL_1'; + fld_ProveedoresMOVIL_2 = 'MOVIL_2'; + fld_ProveedoresFAX = 'FAX'; + fld_ProveedoresEMAIL_1 = 'EMAIL_1'; + fld_ProveedoresEMAIL_2 = 'EMAIL_2'; + fld_ProveedoresPAGINA_WEB = 'PAGINA_WEB'; + fld_ProveedoresNOTAS = 'NOTAS'; + fld_ProveedoresFECHA_ALTA = 'FECHA_ALTA'; + fld_ProveedoresFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_ProveedoresUSUARIO = 'USUARIO'; + fld_ProveedoresID_EMPRESA = 'ID_EMPRESA'; + fld_ProveedoresREFERENCIA = 'REFERENCIA'; + fld_ProveedoresDESCUENTO = 'DESCUENTO'; + fld_ProveedoresDESCRIPCION_PROVEEDOR = 'DESCRIPCION_PROVEEDOR'; + fld_ProveedoresCODIGO_ASIGNADO = 'CODIGO_ASIGNADO'; + fld_ProveedoresGRUPO_PROVEEDOR = 'GRUPO_PROVEEDOR'; + fld_ProveedoresREGIMEN_IVA = 'REGIMEN_IVA'; + fld_ProveedoresID_TIPO_IVA = 'ID_TIPO_IVA'; + fld_ProveedoresID_FORMA_PAGO = 'ID_FORMA_PAGO'; + fld_ProveedoresTIENDA_WEB = 'TIENDA_WEB'; + fld_ProveedoresHOMOLOGADO = 'HOMOLOGADO'; + fld_ProveedoresCERTIFICACION = 'CERTIFICACION'; + fld_ProveedoresSUBCONTRATA = 'SUBCONTRATA'; + fld_ProveedoresEMAIL_ADMINISTRACION = 'EMAIL_ADMINISTRACION'; + fld_ProveedoresVENCIMIENTO_FACTURAS_1 = 'VENCIMIENTO_FACTURAS_1'; + fld_ProveedoresVENCIMIENTO_FACTURAS_2 = 'VENCIMIENTO_FACTURAS_2'; + fld_ProveedoresVENCIMIENTO_FACTURAS_3 = 'VENCIMIENTO_FACTURAS_3'; + + { Proveedores field indexes } + idx_ProveedoresID = 0; + idx_ProveedoresID_CATEGORIA = 1; + idx_ProveedoresNIF_CIF = 2; + idx_ProveedoresNOMBRE = 3; + idx_ProveedoresPERSONA_CONTACTO = 4; + idx_ProveedoresCALLE = 5; + idx_ProveedoresPOBLACION = 6; + idx_ProveedoresPROVINCIA = 7; + idx_ProveedoresCODIGO_POSTAL = 8; + idx_ProveedoresTELEFONO_1 = 9; + idx_ProveedoresTELEFONO_2 = 10; + idx_ProveedoresMOVIL_1 = 11; + idx_ProveedoresMOVIL_2 = 12; + idx_ProveedoresFAX = 13; + idx_ProveedoresEMAIL_1 = 14; + idx_ProveedoresEMAIL_2 = 15; + idx_ProveedoresPAGINA_WEB = 16; + idx_ProveedoresNOTAS = 17; + idx_ProveedoresFECHA_ALTA = 18; + idx_ProveedoresFECHA_MODIFICACION = 19; + idx_ProveedoresUSUARIO = 20; + idx_ProveedoresID_EMPRESA = 21; + idx_ProveedoresREFERENCIA = 22; + idx_ProveedoresDESCUENTO = 23; + idx_ProveedoresDESCRIPCION_PROVEEDOR = 24; + idx_ProveedoresCODIGO_ASIGNADO = 25; + idx_ProveedoresGRUPO_PROVEEDOR = 26; + idx_ProveedoresREGIMEN_IVA = 27; + idx_ProveedoresID_TIPO_IVA = 28; + idx_ProveedoresID_FORMA_PAGO = 29; + idx_ProveedoresTIENDA_WEB = 30; + idx_ProveedoresHOMOLOGADO = 31; + idx_ProveedoresCERTIFICACION = 32; + idx_ProveedoresSUBCONTRATA = 33; + idx_ProveedoresEMAIL_ADMINISTRACION = 34; + idx_ProveedoresVENCIMIENTO_FACTURAS_1 = 35; + idx_ProveedoresVENCIMIENTO_FACTURAS_2 = 36; + idx_ProveedoresVENCIMIENTO_FACTURAS_3 = 37; + + { Empleados fields } + fld_EmpleadosID = 'ID'; + fld_EmpleadosID_CATEGORIA = 'ID_CATEGORIA'; + fld_EmpleadosNIF_CIF = 'NIF_CIF'; + fld_EmpleadosNOMBRE = 'NOMBRE'; + fld_EmpleadosPERSONA_CONTACTO = 'PERSONA_CONTACTO'; + fld_EmpleadosCALLE = 'CALLE'; + fld_EmpleadosPOBLACION = 'POBLACION'; + fld_EmpleadosPROVINCIA = 'PROVINCIA'; + fld_EmpleadosCODIGO_POSTAL = 'CODIGO_POSTAL'; + fld_EmpleadosTELEFONO_1 = 'TELEFONO_1'; + fld_EmpleadosTELEFONO_2 = 'TELEFONO_2'; + fld_EmpleadosMOVIL_1 = 'MOVIL_1'; + fld_EmpleadosMOVIL_2 = 'MOVIL_2'; + fld_EmpleadosFAX = 'FAX'; + fld_EmpleadosEMAIL_1 = 'EMAIL_1'; + fld_EmpleadosEMAIL_2 = 'EMAIL_2'; + fld_EmpleadosPAGINA_WEB = 'PAGINA_WEB'; + fld_EmpleadosNOTAS = 'NOTAS'; + fld_EmpleadosFECHA_ALTA = 'FECHA_ALTA'; + fld_EmpleadosFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_EmpleadosUSUARIO = 'USUARIO'; + fld_EmpleadosID_EMPRESA = 'ID_EMPRESA'; + fld_EmpleadosREFERENCIA = 'REFERENCIA'; + fld_EmpleadosFECHA_NACIMIENTO = 'FECHA_NACIMIENTO'; + fld_EmpleadosCATEGORIA = 'CATEGORIA'; + fld_EmpleadosFECHA_ALTA_EMPRESA = 'FECHA_ALTA_EMPRESA'; + fld_EmpleadosFORMACION_BASE = 'FORMACION_BASE'; + fld_EmpleadosFORMACION_COMPLE = 'FORMACION_COMPLE'; + fld_EmpleadosFORMACION_RECIBIDA = 'FORMACION_RECIBIDA'; + fld_EmpleadosEXPERIENCIA = 'EXPERIENCIA'; + fld_EmpleadosCONTRATO = 'CONTRATO'; + fld_EmpleadosDURACION = 'DURACION'; + fld_EmpleadosFECHA_BAJA = 'FECHA_BAJA'; + fld_EmpleadosCAUSA_BAJA = 'CAUSA_BAJA'; + + { Empleados field indexes } + idx_EmpleadosID = 0; + idx_EmpleadosID_CATEGORIA = 1; + idx_EmpleadosNIF_CIF = 2; + idx_EmpleadosNOMBRE = 3; + idx_EmpleadosPERSONA_CONTACTO = 4; + idx_EmpleadosCALLE = 5; + idx_EmpleadosPOBLACION = 6; + idx_EmpleadosPROVINCIA = 7; + idx_EmpleadosCODIGO_POSTAL = 8; + idx_EmpleadosTELEFONO_1 = 9; + idx_EmpleadosTELEFONO_2 = 10; + idx_EmpleadosMOVIL_1 = 11; + idx_EmpleadosMOVIL_2 = 12; + idx_EmpleadosFAX = 13; + idx_EmpleadosEMAIL_1 = 14; + idx_EmpleadosEMAIL_2 = 15; + idx_EmpleadosPAGINA_WEB = 16; + idx_EmpleadosNOTAS = 17; + idx_EmpleadosFECHA_ALTA = 18; + idx_EmpleadosFECHA_MODIFICACION = 19; + idx_EmpleadosUSUARIO = 20; + idx_EmpleadosID_EMPRESA = 21; + idx_EmpleadosREFERENCIA = 22; + idx_EmpleadosFECHA_NACIMIENTO = 23; + idx_EmpleadosCATEGORIA = 24; + idx_EmpleadosFECHA_ALTA_EMPRESA = 25; + idx_EmpleadosFORMACION_BASE = 26; + idx_EmpleadosFORMACION_COMPLE = 27; + idx_EmpleadosFORMACION_RECIBIDA = 28; + idx_EmpleadosEXPERIENCIA = 29; + idx_EmpleadosCONTRATO = 30; + idx_EmpleadosDURACION = 31; + idx_EmpleadosFECHA_BAJA = 32; + idx_EmpleadosCAUSA_BAJA = 33; + + { DireccionesContacto fields } + fld_DireccionesContactoID = 'ID'; + fld_DireccionesContactoID_CONTACTO = 'ID_CONTACTO'; + fld_DireccionesContactoCALLE = 'CALLE'; + fld_DireccionesContactoPOBLACION = 'POBLACION'; + fld_DireccionesContactoPROVINCIA = 'PROVINCIA'; + fld_DireccionesContactoCODIGO_POSTAL = 'CODIGO_POSTAL'; + fld_DireccionesContactoPERSONA_CONTACTO = 'PERSONA_CONTACTO'; + fld_DireccionesContactoNOMBRE = 'NOMBRE'; + fld_DireccionesContactoTELEFONO = 'TELEFONO'; + fld_DireccionesContactoMOVIL = 'MOVIL'; + fld_DireccionesContactoFAX = 'FAX'; + fld_DireccionesContactoEMAIL = 'EMAIL'; + fld_DireccionesContactoNOTAS = 'NOTAS'; + fld_DireccionesContactoPORTE = 'PORTE'; + fld_DireccionesContactoFECHA_ALTA = 'FECHA_ALTA'; + fld_DireccionesContactoFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + + { DireccionesContacto field indexes } + idx_DireccionesContactoID = 0; + idx_DireccionesContactoID_CONTACTO = 1; + idx_DireccionesContactoCALLE = 2; + idx_DireccionesContactoPOBLACION = 3; + idx_DireccionesContactoPROVINCIA = 4; + idx_DireccionesContactoCODIGO_POSTAL = 5; + idx_DireccionesContactoPERSONA_CONTACTO = 6; + idx_DireccionesContactoNOMBRE = 7; + idx_DireccionesContactoTELEFONO = 8; + idx_DireccionesContactoMOVIL = 9; + idx_DireccionesContactoFAX = 10; + idx_DireccionesContactoEMAIL = 11; + idx_DireccionesContactoNOTAS = 12; + idx_DireccionesContactoPORTE = 13; + idx_DireccionesContactoFECHA_ALTA = 14; + idx_DireccionesContactoFECHA_MODIFICACION = 15; + + { ClientesDescuentos fields } + fld_ClientesDescuentosID = 'ID'; + fld_ClientesDescuentosID_CLIENTE = 'ID_CLIENTE'; + fld_ClientesDescuentosID_PROVEEDOR = 'ID_PROVEEDOR'; + fld_ClientesDescuentosNOMBRE = 'NOMBRE'; + fld_ClientesDescuentosDESCUENTO = 'DESCUENTO'; + + { ClientesDescuentos field indexes } + idx_ClientesDescuentosID = 0; + idx_ClientesDescuentosID_CLIENTE = 1; + idx_ClientesDescuentosID_PROVEEDOR = 2; + idx_ClientesDescuentosNOMBRE = 3; + idx_ClientesDescuentosDESCUENTO = 4; + + { GruposProveedor fields } + fld_GruposProveedorID = 'ID'; + fld_GruposProveedorDESCRIPCION = 'DESCRIPCION'; + + { GruposProveedor field indexes } + idx_GruposProveedorID = 0; + idx_GruposProveedorDESCRIPCION = 1; + + { GruposEmpleado fields } + fld_GruposEmpleadoID = 'ID'; + fld_GruposEmpleadoDESCRIPCION = 'DESCRIPCION'; + + { GruposEmpleado field indexes } + idx_GruposEmpleadoID = 0; + idx_GruposEmpleadoDESCRIPCION = 1; + + { Contactos_Refresh fields } + fld_Contactos_RefreshID = 'ID'; + fld_Contactos_RefreshNIF_CIF = 'NIF_CIF'; + fld_Contactos_RefreshNOMBRE = 'NOMBRE'; + fld_Contactos_RefreshCALLE = 'CALLE'; + fld_Contactos_RefreshPOBLACION = 'POBLACION'; + fld_Contactos_RefreshPROVINCIA = 'PROVINCIA'; + fld_Contactos_RefreshCODIGO_POSTAL = 'CODIGO_POSTAL'; + fld_Contactos_RefreshTELEFONO_1 = 'TELEFONO_1'; + fld_Contactos_RefreshTELEFONO_2 = 'TELEFONO_2'; + fld_Contactos_RefreshMOVIL_1 = 'MOVIL_1'; + fld_Contactos_RefreshMOVIL_2 = 'MOVIL_2'; + fld_Contactos_RefreshFAX = 'FAX'; + fld_Contactos_RefreshEMAIL_1 = 'EMAIL_1'; + fld_Contactos_RefreshEMAIL_2 = 'EMAIL_2'; + fld_Contactos_RefreshPAGINA_WEB = 'PAGINA_WEB'; + fld_Contactos_RefreshNOTAS = 'NOTAS'; + fld_Contactos_RefreshFECHA_ALTA = 'FECHA_ALTA'; + fld_Contactos_RefreshFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_Contactos_RefreshUSUARIO = 'USUARIO'; + fld_Contactos_RefreshREFERENCIA = 'REFERENCIA'; + fld_Contactos_RefreshPERSONA_CONTACTO = 'PERSONA_CONTACTO'; + + { Contactos_Refresh field indexes } + idx_Contactos_RefreshID = 0; + idx_Contactos_RefreshNIF_CIF = 1; + idx_Contactos_RefreshNOMBRE = 2; + idx_Contactos_RefreshCALLE = 3; + idx_Contactos_RefreshPOBLACION = 4; + idx_Contactos_RefreshPROVINCIA = 5; + idx_Contactos_RefreshCODIGO_POSTAL = 6; + idx_Contactos_RefreshTELEFONO_1 = 7; + idx_Contactos_RefreshTELEFONO_2 = 8; + idx_Contactos_RefreshMOVIL_1 = 9; + idx_Contactos_RefreshMOVIL_2 = 10; + idx_Contactos_RefreshFAX = 11; + idx_Contactos_RefreshEMAIL_1 = 12; + idx_Contactos_RefreshEMAIL_2 = 13; + idx_Contactos_RefreshPAGINA_WEB = 14; + idx_Contactos_RefreshNOTAS = 15; + idx_Contactos_RefreshFECHA_ALTA = 16; + idx_Contactos_RefreshFECHA_MODIFICACION = 17; + idx_Contactos_RefreshUSUARIO = 18; + idx_Contactos_RefreshREFERENCIA = 19; + idx_Contactos_RefreshPERSONA_CONTACTO = 20; + + { ContratosEmpleados fields } + fld_ContratosEmpleadosCONTRATO = 'CONTRATO'; + + { ContratosEmpleados field indexes } + idx_ContratosEmpleadosCONTRATO = 0; + + { DescripcionesProveedores fields } + fld_DescripcionesProveedoresDESCRIPCION_PROVEEDOR = 'DESCRIPCION_PROVEEDOR'; + + { DescripcionesProveedores field indexes } + idx_DescripcionesProveedoresDESCRIPCION_PROVEEDOR = 0; + + { PersonalContacto fields } + fld_PersonalContactoID = 'ID'; + fld_PersonalContactoID_CONTACTO = 'ID_CONTACTO'; + fld_PersonalContactoNOMBRE = 'NOMBRE'; + fld_PersonalContactoPUESTO = 'PUESTO'; + fld_PersonalContactoTELEFONO = 'TELEFONO'; + fld_PersonalContactoMOVIL = 'MOVIL'; + fld_PersonalContactoFAX = 'FAX'; + fld_PersonalContactoEMAIL = 'EMAIL'; + fld_PersonalContactoFECHA_ALTA = 'FECHA_ALTA'; + fld_PersonalContactoFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + + { PersonalContacto field indexes } + idx_PersonalContactoID = 0; + idx_PersonalContactoID_CONTACTO = 1; + idx_PersonalContactoNOMBRE = 2; + idx_PersonalContactoPUESTO = 3; + idx_PersonalContactoTELEFONO = 4; + idx_PersonalContactoMOVIL = 5; + idx_PersonalContactoFAX = 6; + idx_PersonalContactoEMAIL = 7; + idx_PersonalContactoFECHA_ALTA = 8; + idx_PersonalContactoFECHA_MODIFICACION = 9; + + { Agentes_Comisiones fields } + fld_Agentes_ComisionesID = 'ID'; + fld_Agentes_ComisionesID_AGENTE = 'ID_AGENTE'; + fld_Agentes_ComisionesID_PROVEEDOR = 'ID_PROVEEDOR'; + fld_Agentes_ComisionesNOMBRE = 'NOMBRE'; + fld_Agentes_ComisionesCOMISION = 'COMISION'; + + { Agentes_Comisiones field indexes } + idx_Agentes_ComisionesID = 0; + idx_Agentes_ComisionesID_AGENTE = 1; + idx_Agentes_ComisionesID_PROVEEDOR = 2; + idx_Agentes_ComisionesNOMBRE = 3; + idx_Agentes_ComisionesCOMISION = 4; + + { Agentes fields } + fld_AgentesID = 'ID'; + fld_AgentesID_CATEGORIA = 'ID_CATEGORIA'; + fld_AgentesNIF_CIF = 'NIF_CIF'; + fld_AgentesNOMBRE = 'NOMBRE'; + fld_AgentesPERSONA_CONTACTO = 'PERSONA_CONTACTO'; + fld_AgentesCALLE = 'CALLE'; + fld_AgentesPOBLACION = 'POBLACION'; + fld_AgentesPROVINCIA = 'PROVINCIA'; + fld_AgentesCODIGO_POSTAL = 'CODIGO_POSTAL'; + fld_AgentesTELEFONO_1 = 'TELEFONO_1'; + fld_AgentesTELEFONO_2 = 'TELEFONO_2'; + fld_AgentesMOVIL_1 = 'MOVIL_1'; + fld_AgentesMOVIL_2 = 'MOVIL_2'; + fld_AgentesFAX = 'FAX'; + fld_AgentesEMAIL_1 = 'EMAIL_1'; + fld_AgentesEMAIL_2 = 'EMAIL_2'; + fld_AgentesPAGINA_WEB = 'PAGINA_WEB'; + fld_AgentesNOTAS = 'NOTAS'; + fld_AgentesFECHA_ALTA = 'FECHA_ALTA'; + fld_AgentesFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_AgentesUSUARIO = 'USUARIO'; + fld_AgentesID_EMPRESA = 'ID_EMPRESA'; + fld_AgentesREFERENCIA = 'REFERENCIA'; + fld_AgentesFECHA_ALTA_EMPRESA = 'FECHA_ALTA_EMPRESA'; + fld_AgentesFECHA_BAJA = 'FECHA_BAJA'; + fld_AgentesCAUSA_BAJA = 'CAUSA_BAJA'; + + { Agentes field indexes } + idx_AgentesID = 0; + idx_AgentesID_CATEGORIA = 1; + idx_AgentesNIF_CIF = 2; + idx_AgentesNOMBRE = 3; + idx_AgentesPERSONA_CONTACTO = 4; + idx_AgentesCALLE = 5; + idx_AgentesPOBLACION = 6; + idx_AgentesPROVINCIA = 7; + idx_AgentesCODIGO_POSTAL = 8; + idx_AgentesTELEFONO_1 = 9; + idx_AgentesTELEFONO_2 = 10; + idx_AgentesMOVIL_1 = 11; + idx_AgentesMOVIL_2 = 12; + idx_AgentesFAX = 13; + idx_AgentesEMAIL_1 = 14; + idx_AgentesEMAIL_2 = 15; + idx_AgentesPAGINA_WEB = 16; + idx_AgentesNOTAS = 17; + idx_AgentesFECHA_ALTA = 18; + idx_AgentesFECHA_MODIFICACION = 19; + idx_AgentesUSUARIO = 20; + idx_AgentesID_EMPRESA = 21; + idx_AgentesREFERENCIA = 22; + idx_AgentesFECHA_ALTA_EMPRESA = 23; + idx_AgentesFECHA_BAJA = 24; + idx_AgentesCAUSA_BAJA = 25; + +type + { IContactos } + IContactos = interface(IDAStronglyTypedDataTable) + ['{2DB7CF12-84F0-4A60-AD6A-DA3FCBAD6022}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_CATEGORIAValue: Integer; + procedure SetID_CATEGORIAValue(const aValue: Integer); + function GetID_CATEGORIAIsNull: Boolean; + procedure SetID_CATEGORIAIsNull(const aValue: Boolean); + function GetNIF_CIFValue: String; + procedure SetNIF_CIFValue(const aValue: String); + function GetNIF_CIFIsNull: Boolean; + procedure SetNIF_CIFIsNull(const aValue: Boolean); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetNOMBREIsNull: Boolean; + procedure SetNOMBREIsNull(const aValue: Boolean); + function GetPERSONA_CONTACTOValue: String; + procedure SetPERSONA_CONTACTOValue(const aValue: String); + function GetPERSONA_CONTACTOIsNull: Boolean; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetCALLEIsNull: Boolean; + procedure SetCALLEIsNull(const aValue: Boolean); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPOBLACIONIsNull: Boolean; + procedure SetPOBLACIONIsNull(const aValue: Boolean); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetPROVINCIAIsNull: Boolean; + procedure SetPROVINCIAIsNull(const aValue: Boolean); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetCODIGO_POSTALIsNull: Boolean; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); + function GetTELEFONO_1Value: String; + procedure SetTELEFONO_1Value(const aValue: String); + function GetTELEFONO_1IsNull: Boolean; + procedure SetTELEFONO_1IsNull(const aValue: Boolean); + function GetTELEFONO_2Value: String; + procedure SetTELEFONO_2Value(const aValue: String); + function GetTELEFONO_2IsNull: Boolean; + procedure SetTELEFONO_2IsNull(const aValue: Boolean); + function GetMOVIL_1Value: String; + procedure SetMOVIL_1Value(const aValue: String); + function GetMOVIL_1IsNull: Boolean; + procedure SetMOVIL_1IsNull(const aValue: Boolean); + function GetMOVIL_2Value: String; + procedure SetMOVIL_2Value(const aValue: String); + function GetMOVIL_2IsNull: Boolean; + procedure SetMOVIL_2IsNull(const aValue: Boolean); + function GetFAXValue: String; + procedure SetFAXValue(const aValue: String); + function GetFAXIsNull: Boolean; + procedure SetFAXIsNull(const aValue: Boolean); + function GetEMAIL_1Value: String; + procedure SetEMAIL_1Value(const aValue: String); + function GetEMAIL_1IsNull: Boolean; + procedure SetEMAIL_1IsNull(const aValue: Boolean); + function GetEMAIL_2Value: String; + procedure SetEMAIL_2Value(const aValue: String); + function GetEMAIL_2IsNull: Boolean; + procedure SetEMAIL_2IsNull(const aValue: Boolean); + function GetPAGINA_WEBValue: String; + procedure SetPAGINA_WEBValue(const aValue: String); + function GetPAGINA_WEBIsNull: Boolean; + procedure SetPAGINA_WEBIsNull(const aValue: Boolean); + function GetNOTASValue: IROStrings; + function GetNOTASIsNull: Boolean; + procedure SetNOTASIsNull(const aValue: Boolean); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_ALTAIsNull: Boolean; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONIsNull: Boolean; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetUSUARIOIsNull: Boolean; + procedure SetUSUARIOIsNull(const aValue: Boolean); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_EMPRESAIsNull: Boolean; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_CATEGORIA: Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue; + property ID_CATEGORIAIsNull: Boolean read GetID_CATEGORIAIsNull write SetID_CATEGORIAIsNull; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NIF_CIFIsNull: Boolean read GetNIF_CIFIsNull write SetNIF_CIFIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull: Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_1IsNull: Boolean read GetTELEFONO_1IsNull write SetTELEFONO_1IsNull; + property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property TELEFONO_2IsNull: Boolean read GetTELEFONO_2IsNull write SetTELEFONO_2IsNull; + property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_1IsNull: Boolean read GetMOVIL_1IsNull write SetMOVIL_1IsNull; + property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value; + property MOVIL_2IsNull: Boolean read GetMOVIL_2IsNull write SetMOVIL_2IsNull; + property FAX: String read GetFAXValue write SetFAXValue; + property FAXIsNull: Boolean read GetFAXIsNull write SetFAXIsNull; + property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_1IsNull: Boolean read GetEMAIL_1IsNull write SetEMAIL_1IsNull; + property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value; + property EMAIL_2IsNull: Boolean read GetEMAIL_2IsNull write SetEMAIL_2IsNull; + property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property PAGINA_WEBIsNull: Boolean read GetPAGINA_WEBIsNull write SetPAGINA_WEBIsNull; + property NOTAS: IROStrings read GetNOTASValue; + property NOTASIsNull: Boolean read GetNOTASIsNull write SetNOTASIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + end; + + { TContactosDataTableRules } + TContactosDataTableRules = class(TDADataTableRules, IContactos) + private + f_NOTAS: IROStrings; + procedure NOTAS_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_CATEGORIAValue: Integer; virtual; + procedure SetID_CATEGORIAValue(const aValue: Integer); virtual; + function GetID_CATEGORIAIsNull: Boolean; virtual; + procedure SetID_CATEGORIAIsNull(const aValue: Boolean); virtual; + function GetNIF_CIFValue: String; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + function GetNIF_CIFIsNull: Boolean; virtual; + procedure SetNIF_CIFIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + function GetPERSONA_CONTACTOIsNull: Boolean; virtual; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetCALLEIsNull: Boolean; virtual; + procedure SetCALLEIsNull(const aValue: Boolean); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPOBLACIONIsNull: Boolean; virtual; + procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetPROVINCIAIsNull: Boolean; virtual; + procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetCODIGO_POSTALIsNull: Boolean; virtual; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual; + function GetTELEFONO_1Value: String; virtual; + procedure SetTELEFONO_1Value(const aValue: String); virtual; + function GetTELEFONO_1IsNull: Boolean; virtual; + procedure SetTELEFONO_1IsNull(const aValue: Boolean); virtual; + function GetTELEFONO_2Value: String; virtual; + procedure SetTELEFONO_2Value(const aValue: String); virtual; + function GetTELEFONO_2IsNull: Boolean; virtual; + procedure SetTELEFONO_2IsNull(const aValue: Boolean); virtual; + function GetMOVIL_1Value: String; virtual; + procedure SetMOVIL_1Value(const aValue: String); virtual; + function GetMOVIL_1IsNull: Boolean; virtual; + procedure SetMOVIL_1IsNull(const aValue: Boolean); virtual; + function GetMOVIL_2Value: String; virtual; + procedure SetMOVIL_2Value(const aValue: String); virtual; + function GetMOVIL_2IsNull: Boolean; virtual; + procedure SetMOVIL_2IsNull(const aValue: Boolean); virtual; + function GetFAXValue: String; virtual; + procedure SetFAXValue(const aValue: String); virtual; + function GetFAXIsNull: Boolean; virtual; + procedure SetFAXIsNull(const aValue: Boolean); virtual; + function GetEMAIL_1Value: String; virtual; + procedure SetEMAIL_1Value(const aValue: String); virtual; + function GetEMAIL_1IsNull: Boolean; virtual; + procedure SetEMAIL_1IsNull(const aValue: Boolean); virtual; + function GetEMAIL_2Value: String; virtual; + procedure SetEMAIL_2Value(const aValue: String); virtual; + function GetEMAIL_2IsNull: Boolean; virtual; + procedure SetEMAIL_2IsNull(const aValue: Boolean); virtual; + function GetPAGINA_WEBValue: String; virtual; + procedure SetPAGINA_WEBValue(const aValue: String); virtual; + function GetPAGINA_WEBIsNull: Boolean; virtual; + procedure SetPAGINA_WEBIsNull(const aValue: Boolean); virtual; + function GetNOTASValue: IROStrings; virtual; + function GetNOTASIsNull: Boolean; virtual; + procedure SetNOTASIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_CATEGORIA: Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue; + property ID_CATEGORIAIsNull: Boolean read GetID_CATEGORIAIsNull write SetID_CATEGORIAIsNull; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NIF_CIFIsNull: Boolean read GetNIF_CIFIsNull write SetNIF_CIFIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull: Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_1IsNull: Boolean read GetTELEFONO_1IsNull write SetTELEFONO_1IsNull; + property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property TELEFONO_2IsNull: Boolean read GetTELEFONO_2IsNull write SetTELEFONO_2IsNull; + property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_1IsNull: Boolean read GetMOVIL_1IsNull write SetMOVIL_1IsNull; + property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value; + property MOVIL_2IsNull: Boolean read GetMOVIL_2IsNull write SetMOVIL_2IsNull; + property FAX: String read GetFAXValue write SetFAXValue; + property FAXIsNull: Boolean read GetFAXIsNull write SetFAXIsNull; + property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_1IsNull: Boolean read GetEMAIL_1IsNull write SetEMAIL_1IsNull; + property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value; + property EMAIL_2IsNull: Boolean read GetEMAIL_2IsNull write SetEMAIL_2IsNull; + property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property PAGINA_WEBIsNull: Boolean read GetPAGINA_WEBIsNull write SetPAGINA_WEBIsNull; + property NOTAS: IROStrings read GetNOTASValue; + property NOTASIsNull: Boolean read GetNOTASIsNull write SetNOTASIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IGruposCliente } + IGruposCliente = interface(IDAStronglyTypedDataTable) + ['{82FFDC15-328B-4A4E-96D9-AED477D1ED65}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetDESCRIPCIONIsNull: Boolean; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + end; + + { TGruposClienteDataTableRules } + TGruposClienteDataTableRules = class(TDADataTableRules, IGruposCliente) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IDatosBancarios } + IDatosBancarios = interface(IDAStronglyTypedDataTable) + ['{6F903B6D-1421-4FD0-A385-8CB231550883}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_CONTACTOValue: Integer; + procedure SetID_CONTACTOValue(const aValue: Integer); + function GetID_CONTACTOIsNull: Boolean; + procedure SetID_CONTACTOIsNull(const aValue: Boolean); + function GetTITULARValue: String; + procedure SetTITULARValue(const aValue: String); + function GetTITULARIsNull: Boolean; + procedure SetTITULARIsNull(const aValue: Boolean); + function GetENTIDADValue: String; + procedure SetENTIDADValue(const aValue: String); + function GetENTIDADIsNull: Boolean; + procedure SetENTIDADIsNull(const aValue: Boolean); + function GetSUCURSALValue: String; + procedure SetSUCURSALValue(const aValue: String); + function GetSUCURSALIsNull: Boolean; + procedure SetSUCURSALIsNull(const aValue: Boolean); + function GetDCValue: String; + procedure SetDCValue(const aValue: String); + function GetDCIsNull: Boolean; + procedure SetDCIsNull(const aValue: Boolean); + function GetCUENTAValue: String; + procedure SetCUENTAValue(const aValue: String); + function GetCUENTAIsNull: Boolean; + procedure SetCUENTAIsNull(const aValue: Boolean); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_ALTAIsNull: Boolean; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONIsNull: Boolean; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_CONTACTO: Integer read GetID_CONTACTOValue write SetID_CONTACTOValue; + property ID_CONTACTOIsNull: Boolean read GetID_CONTACTOIsNull write SetID_CONTACTOIsNull; + property TITULAR: String read GetTITULARValue write SetTITULARValue; + property TITULARIsNull: Boolean read GetTITULARIsNull write SetTITULARIsNull; + property ENTIDAD: String read GetENTIDADValue write SetENTIDADValue; + property ENTIDADIsNull: Boolean read GetENTIDADIsNull write SetENTIDADIsNull; + property SUCURSAL: String read GetSUCURSALValue write SetSUCURSALValue; + property SUCURSALIsNull: Boolean read GetSUCURSALIsNull write SetSUCURSALIsNull; + property DC: String read GetDCValue write SetDCValue; + property DCIsNull: Boolean read GetDCIsNull write SetDCIsNull; + property CUENTA: String read GetCUENTAValue write SetCUENTAValue; + property CUENTAIsNull: Boolean read GetCUENTAIsNull write SetCUENTAIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + end; + + { TDatosBancariosDataTableRules } + TDatosBancariosDataTableRules = class(TDADataTableRules, IDatosBancarios) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_CONTACTOValue: Integer; virtual; + procedure SetID_CONTACTOValue(const aValue: Integer); virtual; + function GetID_CONTACTOIsNull: Boolean; virtual; + procedure SetID_CONTACTOIsNull(const aValue: Boolean); virtual; + function GetTITULARValue: String; virtual; + procedure SetTITULARValue(const aValue: String); virtual; + function GetTITULARIsNull: Boolean; virtual; + procedure SetTITULARIsNull(const aValue: Boolean); virtual; + function GetENTIDADValue: String; virtual; + procedure SetENTIDADValue(const aValue: String); virtual; + function GetENTIDADIsNull: Boolean; virtual; + procedure SetENTIDADIsNull(const aValue: Boolean); virtual; + function GetSUCURSALValue: String; virtual; + procedure SetSUCURSALValue(const aValue: String); virtual; + function GetSUCURSALIsNull: Boolean; virtual; + procedure SetSUCURSALIsNull(const aValue: Boolean); virtual; + function GetDCValue: String; virtual; + procedure SetDCValue(const aValue: String); virtual; + function GetDCIsNull: Boolean; virtual; + procedure SetDCIsNull(const aValue: Boolean); virtual; + function GetCUENTAValue: String; virtual; + procedure SetCUENTAValue(const aValue: String); virtual; + function GetCUENTAIsNull: Boolean; virtual; + procedure SetCUENTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_CONTACTO: Integer read GetID_CONTACTOValue write SetID_CONTACTOValue; + property ID_CONTACTOIsNull: Boolean read GetID_CONTACTOIsNull write SetID_CONTACTOIsNull; + property TITULAR: String read GetTITULARValue write SetTITULARValue; + property TITULARIsNull: Boolean read GetTITULARIsNull write SetTITULARIsNull; + property ENTIDAD: String read GetENTIDADValue write SetENTIDADValue; + property ENTIDADIsNull: Boolean read GetENTIDADIsNull write SetENTIDADIsNull; + property SUCURSAL: String read GetSUCURSALValue write SetSUCURSALValue; + property SUCURSALIsNull: Boolean read GetSUCURSALIsNull write SetSUCURSALIsNull; + property DC: String read GetDCValue write SetDCValue; + property DCIsNull: Boolean read GetDCIsNull write SetDCIsNull; + property CUENTA: String read GetCUENTAValue write SetCUENTAValue; + property CUENTAIsNull: Boolean read GetCUENTAIsNull write SetCUENTAIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IClientes } + IClientes = interface(IDAStronglyTypedDataTable) + ['{2F65D059-0171-4485-8985-309F1475EB2E}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_CATEGORIAValue: Integer; + procedure SetID_CATEGORIAValue(const aValue: Integer); + function GetID_CATEGORIAIsNull: Boolean; + procedure SetID_CATEGORIAIsNull(const aValue: Boolean); + function GetNIF_CIFValue: String; + procedure SetNIF_CIFValue(const aValue: String); + function GetNIF_CIFIsNull: Boolean; + procedure SetNIF_CIFIsNull(const aValue: Boolean); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetNOMBREIsNull: Boolean; + procedure SetNOMBREIsNull(const aValue: Boolean); + function GetPERSONA_CONTACTOValue: String; + procedure SetPERSONA_CONTACTOValue(const aValue: String); + function GetPERSONA_CONTACTOIsNull: Boolean; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetCALLEIsNull: Boolean; + procedure SetCALLEIsNull(const aValue: Boolean); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPOBLACIONIsNull: Boolean; + procedure SetPOBLACIONIsNull(const aValue: Boolean); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetPROVINCIAIsNull: Boolean; + procedure SetPROVINCIAIsNull(const aValue: Boolean); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetCODIGO_POSTALIsNull: Boolean; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); + function GetTELEFONO_1Value: String; + procedure SetTELEFONO_1Value(const aValue: String); + function GetTELEFONO_1IsNull: Boolean; + procedure SetTELEFONO_1IsNull(const aValue: Boolean); + function GetTELEFONO_2Value: String; + procedure SetTELEFONO_2Value(const aValue: String); + function GetTELEFONO_2IsNull: Boolean; + procedure SetTELEFONO_2IsNull(const aValue: Boolean); + function GetMOVIL_1Value: String; + procedure SetMOVIL_1Value(const aValue: String); + function GetMOVIL_1IsNull: Boolean; + procedure SetMOVIL_1IsNull(const aValue: Boolean); + function GetMOVIL_2Value: String; + procedure SetMOVIL_2Value(const aValue: String); + function GetMOVIL_2IsNull: Boolean; + procedure SetMOVIL_2IsNull(const aValue: Boolean); + function GetFAXValue: String; + procedure SetFAXValue(const aValue: String); + function GetFAXIsNull: Boolean; + procedure SetFAXIsNull(const aValue: Boolean); + function GetEMAIL_1Value: String; + procedure SetEMAIL_1Value(const aValue: String); + function GetEMAIL_1IsNull: Boolean; + procedure SetEMAIL_1IsNull(const aValue: Boolean); + function GetEMAIL_2Value: String; + procedure SetEMAIL_2Value(const aValue: String); + function GetEMAIL_2IsNull: Boolean; + procedure SetEMAIL_2IsNull(const aValue: Boolean); + function GetPAGINA_WEBValue: String; + procedure SetPAGINA_WEBValue(const aValue: String); + function GetPAGINA_WEBIsNull: Boolean; + procedure SetPAGINA_WEBIsNull(const aValue: Boolean); + function GetNOTASValue: IROStrings; + function GetNOTASIsNull: Boolean; + procedure SetNOTASIsNull(const aValue: Boolean); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_ALTAIsNull: Boolean; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONIsNull: Boolean; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetUSUARIOIsNull: Boolean; + procedure SetUSUARIOIsNull(const aValue: Boolean); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_EMPRESAIsNull: Boolean; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetID_AGENTEValue: Integer; + procedure SetID_AGENTEValue(const aValue: Integer); + function GetID_AGENTEIsNull: Boolean; + procedure SetID_AGENTEIsNull(const aValue: Boolean); + function GetGRUPO_CLIENTEValue: String; + procedure SetGRUPO_CLIENTEValue(const aValue: String); + function GetGRUPO_CLIENTEIsNull: Boolean; + procedure SetGRUPO_CLIENTEIsNull(const aValue: Boolean); + function GetNOMBRE_COMERCIALValue: String; + procedure SetNOMBRE_COMERCIALValue(const aValue: String); + function GetNOMBRE_COMERCIALIsNull: Boolean; + procedure SetNOMBRE_COMERCIALIsNull(const aValue: Boolean); + function GetVENCIMIENTO_FACTURAS_1Value: SmallInt; + procedure SetVENCIMIENTO_FACTURAS_1Value(const aValue: SmallInt); + function GetVENCIMIENTO_FACTURAS_1IsNull: Boolean; + procedure SetVENCIMIENTO_FACTURAS_1IsNull(const aValue: Boolean); + function GetVENCIMIENTO_FACTURAS_2Value: SmallInt; + procedure SetVENCIMIENTO_FACTURAS_2Value(const aValue: SmallInt); + function GetVENCIMIENTO_FACTURAS_2IsNull: Boolean; + procedure SetVENCIMIENTO_FACTURAS_2IsNull(const aValue: Boolean); + function GetVENCIMIENTO_FACTURAS_3Value: SmallInt; + procedure SetVENCIMIENTO_FACTURAS_3Value(const aValue: SmallInt); + function GetVENCIMIENTO_FACTURAS_3IsNull: Boolean; + procedure SetVENCIMIENTO_FACTURAS_3IsNull(const aValue: Boolean); + function GetBLOQUEADOValue: SmallInt; + procedure SetBLOQUEADOValue(const aValue: SmallInt); + function GetBLOQUEADOIsNull: Boolean; + procedure SetBLOQUEADOIsNull(const aValue: Boolean); + function GetAGENTEValue: String; + procedure SetAGENTEValue(const aValue: String); + function GetAGENTEIsNull: Boolean; + procedure SetAGENTEIsNull(const aValue: Boolean); + function GetRAPELValue: SmallInt; + procedure SetRAPELValue(const aValue: SmallInt); + function GetRAPELIsNull: Boolean; + procedure SetRAPELIsNull(const aValue: Boolean); + function GetEMAIL_ADMINISTRACIONValue: String; + procedure SetEMAIL_ADMINISTRACIONValue(const aValue: String); + function GetEMAIL_ADMINISTRACIONIsNull: Boolean; + procedure SetEMAIL_ADMINISTRACIONIsNull(const aValue: Boolean); + function GetREGIMEN_IVAValue: String; + procedure SetREGIMEN_IVAValue(const aValue: String); + function GetREGIMEN_IVAIsNull: Boolean; + procedure SetREGIMEN_IVAIsNull(const aValue: Boolean); + function GetMOTIVO_BLOQUEOValue: String; + procedure SetMOTIVO_BLOQUEOValue(const aValue: String); + function GetMOTIVO_BLOQUEOIsNull: Boolean; + procedure SetMOTIVO_BLOQUEOIsNull(const aValue: Boolean); + function GetRECARGO_EQUIVALENCIAValue: Integer; + procedure SetRECARGO_EQUIVALENCIAValue(const aValue: Integer); + function GetRECARGO_EQUIVALENCIAIsNull: Boolean; + procedure SetRECARGO_EQUIVALENCIAIsNull(const aValue: Boolean); + function GetID_TIPO_IVAValue: Integer; + procedure SetID_TIPO_IVAValue(const aValue: Integer); + function GetID_TIPO_IVAIsNull: Boolean; + procedure SetID_TIPO_IVAIsNull(const aValue: Boolean); + function GetID_FORMA_PAGOValue: Integer; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); + function GetID_FORMA_PAGOIsNull: Boolean; + procedure SetID_FORMA_PAGOIsNull(const aValue: Boolean); + function GetTIENDA_WEBValue: SmallInt; + procedure SetTIENDA_WEBValue(const aValue: SmallInt); + function GetTIENDA_WEBIsNull: Boolean; + procedure SetTIENDA_WEBIsNull(const aValue: Boolean); + function GetCODIGO_ASIGNADOValue: String; + procedure SetCODIGO_ASIGNADOValue(const aValue: String); + function GetCODIGO_ASIGNADOIsNull: Boolean; + procedure SetCODIGO_ASIGNADOIsNull(const aValue: Boolean); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetDESCUENTOIsNull: Boolean; + procedure SetDESCUENTOIsNull(const aValue: Boolean); + function GetFELICITACIONValue: SmallInt; + procedure SetFELICITACIONValue(const aValue: SmallInt); + function GetFELICITACIONIsNull: Boolean; + procedure SetFELICITACIONIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_CATEGORIA: Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue; + property ID_CATEGORIAIsNull: Boolean read GetID_CATEGORIAIsNull write SetID_CATEGORIAIsNull; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NIF_CIFIsNull: Boolean read GetNIF_CIFIsNull write SetNIF_CIFIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull: Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_1IsNull: Boolean read GetTELEFONO_1IsNull write SetTELEFONO_1IsNull; + property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property TELEFONO_2IsNull: Boolean read GetTELEFONO_2IsNull write SetTELEFONO_2IsNull; + property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_1IsNull: Boolean read GetMOVIL_1IsNull write SetMOVIL_1IsNull; + property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value; + property MOVIL_2IsNull: Boolean read GetMOVIL_2IsNull write SetMOVIL_2IsNull; + property FAX: String read GetFAXValue write SetFAXValue; + property FAXIsNull: Boolean read GetFAXIsNull write SetFAXIsNull; + property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_1IsNull: Boolean read GetEMAIL_1IsNull write SetEMAIL_1IsNull; + property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value; + property EMAIL_2IsNull: Boolean read GetEMAIL_2IsNull write SetEMAIL_2IsNull; + property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property PAGINA_WEBIsNull: Boolean read GetPAGINA_WEBIsNull write SetPAGINA_WEBIsNull; + property NOTAS: IROStrings read GetNOTASValue; + property NOTASIsNull: Boolean read GetNOTASIsNull write SetNOTASIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property ID_AGENTE: Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property ID_AGENTEIsNull: Boolean read GetID_AGENTEIsNull write SetID_AGENTEIsNull; + property GRUPO_CLIENTE: String read GetGRUPO_CLIENTEValue write SetGRUPO_CLIENTEValue; + property GRUPO_CLIENTEIsNull: Boolean read GetGRUPO_CLIENTEIsNull write SetGRUPO_CLIENTEIsNull; + property NOMBRE_COMERCIAL: String read GetNOMBRE_COMERCIALValue write SetNOMBRE_COMERCIALValue; + property NOMBRE_COMERCIALIsNull: Boolean read GetNOMBRE_COMERCIALIsNull write SetNOMBRE_COMERCIALIsNull; + property VENCIMIENTO_FACTURAS_1: SmallInt read GetVENCIMIENTO_FACTURAS_1Value write SetVENCIMIENTO_FACTURAS_1Value; + property VENCIMIENTO_FACTURAS_1IsNull: Boolean read GetVENCIMIENTO_FACTURAS_1IsNull write SetVENCIMIENTO_FACTURAS_1IsNull; + property VENCIMIENTO_FACTURAS_2: SmallInt read GetVENCIMIENTO_FACTURAS_2Value write SetVENCIMIENTO_FACTURAS_2Value; + property VENCIMIENTO_FACTURAS_2IsNull: Boolean read GetVENCIMIENTO_FACTURAS_2IsNull write SetVENCIMIENTO_FACTURAS_2IsNull; + property VENCIMIENTO_FACTURAS_3: SmallInt read GetVENCIMIENTO_FACTURAS_3Value write SetVENCIMIENTO_FACTURAS_3Value; + property VENCIMIENTO_FACTURAS_3IsNull: Boolean read GetVENCIMIENTO_FACTURAS_3IsNull write SetVENCIMIENTO_FACTURAS_3IsNull; + property BLOQUEADO: SmallInt read GetBLOQUEADOValue write SetBLOQUEADOValue; + property BLOQUEADOIsNull: Boolean read GetBLOQUEADOIsNull write SetBLOQUEADOIsNull; + property AGENTE: String read GetAGENTEValue write SetAGENTEValue; + property AGENTEIsNull: Boolean read GetAGENTEIsNull write SetAGENTEIsNull; + property RAPEL: SmallInt read GetRAPELValue write SetRAPELValue; + property RAPELIsNull: Boolean read GetRAPELIsNull write SetRAPELIsNull; + property EMAIL_ADMINISTRACION: String read GetEMAIL_ADMINISTRACIONValue write SetEMAIL_ADMINISTRACIONValue; + property EMAIL_ADMINISTRACIONIsNull: Boolean read GetEMAIL_ADMINISTRACIONIsNull write SetEMAIL_ADMINISTRACIONIsNull; + property REGIMEN_IVA: String read GetREGIMEN_IVAValue write SetREGIMEN_IVAValue; + property REGIMEN_IVAIsNull: Boolean read GetREGIMEN_IVAIsNull write SetREGIMEN_IVAIsNull; + property MOTIVO_BLOQUEO: String read GetMOTIVO_BLOQUEOValue write SetMOTIVO_BLOQUEOValue; + property MOTIVO_BLOQUEOIsNull: Boolean read GetMOTIVO_BLOQUEOIsNull write SetMOTIVO_BLOQUEOIsNull; + property RECARGO_EQUIVALENCIA: Integer read GetRECARGO_EQUIVALENCIAValue write SetRECARGO_EQUIVALENCIAValue; + property RECARGO_EQUIVALENCIAIsNull: Boolean read GetRECARGO_EQUIVALENCIAIsNull write SetRECARGO_EQUIVALENCIAIsNull; + property ID_TIPO_IVA: Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue; + property ID_TIPO_IVAIsNull: Boolean read GetID_TIPO_IVAIsNull write SetID_TIPO_IVAIsNull; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property ID_FORMA_PAGOIsNull: Boolean read GetID_FORMA_PAGOIsNull write SetID_FORMA_PAGOIsNull; + property TIENDA_WEB: SmallInt read GetTIENDA_WEBValue write SetTIENDA_WEBValue; + property TIENDA_WEBIsNull: Boolean read GetTIENDA_WEBIsNull write SetTIENDA_WEBIsNull; + property CODIGO_ASIGNADO: String read GetCODIGO_ASIGNADOValue write SetCODIGO_ASIGNADOValue; + property CODIGO_ASIGNADOIsNull: Boolean read GetCODIGO_ASIGNADOIsNull write SetCODIGO_ASIGNADOIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property FELICITACION: SmallInt read GetFELICITACIONValue write SetFELICITACIONValue; + property FELICITACIONIsNull: Boolean read GetFELICITACIONIsNull write SetFELICITACIONIsNull; + end; + + { TClientesDataTableRules } + TClientesDataTableRules = class(TDADataTableRules, IClientes) + private + f_NOTAS: IROStrings; + procedure NOTAS_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_CATEGORIAValue: Integer; virtual; + procedure SetID_CATEGORIAValue(const aValue: Integer); virtual; + function GetID_CATEGORIAIsNull: Boolean; virtual; + procedure SetID_CATEGORIAIsNull(const aValue: Boolean); virtual; + function GetNIF_CIFValue: String; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + function GetNIF_CIFIsNull: Boolean; virtual; + procedure SetNIF_CIFIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + function GetPERSONA_CONTACTOIsNull: Boolean; virtual; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetCALLEIsNull: Boolean; virtual; + procedure SetCALLEIsNull(const aValue: Boolean); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPOBLACIONIsNull: Boolean; virtual; + procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetPROVINCIAIsNull: Boolean; virtual; + procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetCODIGO_POSTALIsNull: Boolean; virtual; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual; + function GetTELEFONO_1Value: String; virtual; + procedure SetTELEFONO_1Value(const aValue: String); virtual; + function GetTELEFONO_1IsNull: Boolean; virtual; + procedure SetTELEFONO_1IsNull(const aValue: Boolean); virtual; + function GetTELEFONO_2Value: String; virtual; + procedure SetTELEFONO_2Value(const aValue: String); virtual; + function GetTELEFONO_2IsNull: Boolean; virtual; + procedure SetTELEFONO_2IsNull(const aValue: Boolean); virtual; + function GetMOVIL_1Value: String; virtual; + procedure SetMOVIL_1Value(const aValue: String); virtual; + function GetMOVIL_1IsNull: Boolean; virtual; + procedure SetMOVIL_1IsNull(const aValue: Boolean); virtual; + function GetMOVIL_2Value: String; virtual; + procedure SetMOVIL_2Value(const aValue: String); virtual; + function GetMOVIL_2IsNull: Boolean; virtual; + procedure SetMOVIL_2IsNull(const aValue: Boolean); virtual; + function GetFAXValue: String; virtual; + procedure SetFAXValue(const aValue: String); virtual; + function GetFAXIsNull: Boolean; virtual; + procedure SetFAXIsNull(const aValue: Boolean); virtual; + function GetEMAIL_1Value: String; virtual; + procedure SetEMAIL_1Value(const aValue: String); virtual; + function GetEMAIL_1IsNull: Boolean; virtual; + procedure SetEMAIL_1IsNull(const aValue: Boolean); virtual; + function GetEMAIL_2Value: String; virtual; + procedure SetEMAIL_2Value(const aValue: String); virtual; + function GetEMAIL_2IsNull: Boolean; virtual; + procedure SetEMAIL_2IsNull(const aValue: Boolean); virtual; + function GetPAGINA_WEBValue: String; virtual; + procedure SetPAGINA_WEBValue(const aValue: String); virtual; + function GetPAGINA_WEBIsNull: Boolean; virtual; + procedure SetPAGINA_WEBIsNull(const aValue: Boolean); virtual; + function GetNOTASValue: IROStrings; virtual; + function GetNOTASIsNull: Boolean; virtual; + procedure SetNOTASIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetID_AGENTEValue: Integer; virtual; + procedure SetID_AGENTEValue(const aValue: Integer); virtual; + function GetID_AGENTEIsNull: Boolean; virtual; + procedure SetID_AGENTEIsNull(const aValue: Boolean); virtual; + function GetGRUPO_CLIENTEValue: String; virtual; + procedure SetGRUPO_CLIENTEValue(const aValue: String); virtual; + function GetGRUPO_CLIENTEIsNull: Boolean; virtual; + procedure SetGRUPO_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetNOMBRE_COMERCIALValue: String; virtual; + procedure SetNOMBRE_COMERCIALValue(const aValue: String); virtual; + function GetNOMBRE_COMERCIALIsNull: Boolean; virtual; + procedure SetNOMBRE_COMERCIALIsNull(const aValue: Boolean); virtual; + function GetVENCIMIENTO_FACTURAS_1Value: SmallInt; virtual; + procedure SetVENCIMIENTO_FACTURAS_1Value(const aValue: SmallInt); virtual; + function GetVENCIMIENTO_FACTURAS_1IsNull: Boolean; virtual; + procedure SetVENCIMIENTO_FACTURAS_1IsNull(const aValue: Boolean); virtual; + function GetVENCIMIENTO_FACTURAS_2Value: SmallInt; virtual; + procedure SetVENCIMIENTO_FACTURAS_2Value(const aValue: SmallInt); virtual; + function GetVENCIMIENTO_FACTURAS_2IsNull: Boolean; virtual; + procedure SetVENCIMIENTO_FACTURAS_2IsNull(const aValue: Boolean); virtual; + function GetVENCIMIENTO_FACTURAS_3Value: SmallInt; virtual; + procedure SetVENCIMIENTO_FACTURAS_3Value(const aValue: SmallInt); virtual; + function GetVENCIMIENTO_FACTURAS_3IsNull: Boolean; virtual; + procedure SetVENCIMIENTO_FACTURAS_3IsNull(const aValue: Boolean); virtual; + function GetBLOQUEADOValue: SmallInt; virtual; + procedure SetBLOQUEADOValue(const aValue: SmallInt); virtual; + function GetBLOQUEADOIsNull: Boolean; virtual; + procedure SetBLOQUEADOIsNull(const aValue: Boolean); virtual; + function GetAGENTEValue: String; virtual; + procedure SetAGENTEValue(const aValue: String); virtual; + function GetAGENTEIsNull: Boolean; virtual; + procedure SetAGENTEIsNull(const aValue: Boolean); virtual; + function GetRAPELValue: SmallInt; virtual; + procedure SetRAPELValue(const aValue: SmallInt); virtual; + function GetRAPELIsNull: Boolean; virtual; + procedure SetRAPELIsNull(const aValue: Boolean); virtual; + function GetEMAIL_ADMINISTRACIONValue: String; virtual; + procedure SetEMAIL_ADMINISTRACIONValue(const aValue: String); virtual; + function GetEMAIL_ADMINISTRACIONIsNull: Boolean; virtual; + procedure SetEMAIL_ADMINISTRACIONIsNull(const aValue: Boolean); virtual; + function GetREGIMEN_IVAValue: String; virtual; + procedure SetREGIMEN_IVAValue(const aValue: String); virtual; + function GetREGIMEN_IVAIsNull: Boolean; virtual; + procedure SetREGIMEN_IVAIsNull(const aValue: Boolean); virtual; + function GetMOTIVO_BLOQUEOValue: String; virtual; + procedure SetMOTIVO_BLOQUEOValue(const aValue: String); virtual; + function GetMOTIVO_BLOQUEOIsNull: Boolean; virtual; + procedure SetMOTIVO_BLOQUEOIsNull(const aValue: Boolean); virtual; + function GetRECARGO_EQUIVALENCIAValue: Integer; virtual; + procedure SetRECARGO_EQUIVALENCIAValue(const aValue: Integer); virtual; + function GetRECARGO_EQUIVALENCIAIsNull: Boolean; virtual; + procedure SetRECARGO_EQUIVALENCIAIsNull(const aValue: Boolean); virtual; + function GetID_TIPO_IVAValue: Integer; virtual; + procedure SetID_TIPO_IVAValue(const aValue: Integer); virtual; + function GetID_TIPO_IVAIsNull: Boolean; virtual; + procedure SetID_TIPO_IVAIsNull(const aValue: Boolean); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + function GetID_FORMA_PAGOIsNull: Boolean; virtual; + procedure SetID_FORMA_PAGOIsNull(const aValue: Boolean); virtual; + function GetTIENDA_WEBValue: SmallInt; virtual; + procedure SetTIENDA_WEBValue(const aValue: SmallInt); virtual; + function GetTIENDA_WEBIsNull: Boolean; virtual; + procedure SetTIENDA_WEBIsNull(const aValue: Boolean); virtual; + function GetCODIGO_ASIGNADOValue: String; virtual; + procedure SetCODIGO_ASIGNADOValue(const aValue: String); virtual; + function GetCODIGO_ASIGNADOIsNull: Boolean; virtual; + procedure SetCODIGO_ASIGNADOIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetFELICITACIONValue: SmallInt; virtual; + procedure SetFELICITACIONValue(const aValue: SmallInt); virtual; + function GetFELICITACIONIsNull: Boolean; virtual; + procedure SetFELICITACIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_CATEGORIA: Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue; + property ID_CATEGORIAIsNull: Boolean read GetID_CATEGORIAIsNull write SetID_CATEGORIAIsNull; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NIF_CIFIsNull: Boolean read GetNIF_CIFIsNull write SetNIF_CIFIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull: Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_1IsNull: Boolean read GetTELEFONO_1IsNull write SetTELEFONO_1IsNull; + property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property TELEFONO_2IsNull: Boolean read GetTELEFONO_2IsNull write SetTELEFONO_2IsNull; + property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_1IsNull: Boolean read GetMOVIL_1IsNull write SetMOVIL_1IsNull; + property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value; + property MOVIL_2IsNull: Boolean read GetMOVIL_2IsNull write SetMOVIL_2IsNull; + property FAX: String read GetFAXValue write SetFAXValue; + property FAXIsNull: Boolean read GetFAXIsNull write SetFAXIsNull; + property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_1IsNull: Boolean read GetEMAIL_1IsNull write SetEMAIL_1IsNull; + property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value; + property EMAIL_2IsNull: Boolean read GetEMAIL_2IsNull write SetEMAIL_2IsNull; + property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property PAGINA_WEBIsNull: Boolean read GetPAGINA_WEBIsNull write SetPAGINA_WEBIsNull; + property NOTAS: IROStrings read GetNOTASValue; + property NOTASIsNull: Boolean read GetNOTASIsNull write SetNOTASIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property ID_AGENTE: Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property ID_AGENTEIsNull: Boolean read GetID_AGENTEIsNull write SetID_AGENTEIsNull; + property GRUPO_CLIENTE: String read GetGRUPO_CLIENTEValue write SetGRUPO_CLIENTEValue; + property GRUPO_CLIENTEIsNull: Boolean read GetGRUPO_CLIENTEIsNull write SetGRUPO_CLIENTEIsNull; + property NOMBRE_COMERCIAL: String read GetNOMBRE_COMERCIALValue write SetNOMBRE_COMERCIALValue; + property NOMBRE_COMERCIALIsNull: Boolean read GetNOMBRE_COMERCIALIsNull write SetNOMBRE_COMERCIALIsNull; + property VENCIMIENTO_FACTURAS_1: SmallInt read GetVENCIMIENTO_FACTURAS_1Value write SetVENCIMIENTO_FACTURAS_1Value; + property VENCIMIENTO_FACTURAS_1IsNull: Boolean read GetVENCIMIENTO_FACTURAS_1IsNull write SetVENCIMIENTO_FACTURAS_1IsNull; + property VENCIMIENTO_FACTURAS_2: SmallInt read GetVENCIMIENTO_FACTURAS_2Value write SetVENCIMIENTO_FACTURAS_2Value; + property VENCIMIENTO_FACTURAS_2IsNull: Boolean read GetVENCIMIENTO_FACTURAS_2IsNull write SetVENCIMIENTO_FACTURAS_2IsNull; + property VENCIMIENTO_FACTURAS_3: SmallInt read GetVENCIMIENTO_FACTURAS_3Value write SetVENCIMIENTO_FACTURAS_3Value; + property VENCIMIENTO_FACTURAS_3IsNull: Boolean read GetVENCIMIENTO_FACTURAS_3IsNull write SetVENCIMIENTO_FACTURAS_3IsNull; + property BLOQUEADO: SmallInt read GetBLOQUEADOValue write SetBLOQUEADOValue; + property BLOQUEADOIsNull: Boolean read GetBLOQUEADOIsNull write SetBLOQUEADOIsNull; + property AGENTE: String read GetAGENTEValue write SetAGENTEValue; + property AGENTEIsNull: Boolean read GetAGENTEIsNull write SetAGENTEIsNull; + property RAPEL: SmallInt read GetRAPELValue write SetRAPELValue; + property RAPELIsNull: Boolean read GetRAPELIsNull write SetRAPELIsNull; + property EMAIL_ADMINISTRACION: String read GetEMAIL_ADMINISTRACIONValue write SetEMAIL_ADMINISTRACIONValue; + property EMAIL_ADMINISTRACIONIsNull: Boolean read GetEMAIL_ADMINISTRACIONIsNull write SetEMAIL_ADMINISTRACIONIsNull; + property REGIMEN_IVA: String read GetREGIMEN_IVAValue write SetREGIMEN_IVAValue; + property REGIMEN_IVAIsNull: Boolean read GetREGIMEN_IVAIsNull write SetREGIMEN_IVAIsNull; + property MOTIVO_BLOQUEO: String read GetMOTIVO_BLOQUEOValue write SetMOTIVO_BLOQUEOValue; + property MOTIVO_BLOQUEOIsNull: Boolean read GetMOTIVO_BLOQUEOIsNull write SetMOTIVO_BLOQUEOIsNull; + property RECARGO_EQUIVALENCIA: Integer read GetRECARGO_EQUIVALENCIAValue write SetRECARGO_EQUIVALENCIAValue; + property RECARGO_EQUIVALENCIAIsNull: Boolean read GetRECARGO_EQUIVALENCIAIsNull write SetRECARGO_EQUIVALENCIAIsNull; + property ID_TIPO_IVA: Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue; + property ID_TIPO_IVAIsNull: Boolean read GetID_TIPO_IVAIsNull write SetID_TIPO_IVAIsNull; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property ID_FORMA_PAGOIsNull: Boolean read GetID_FORMA_PAGOIsNull write SetID_FORMA_PAGOIsNull; + property TIENDA_WEB: SmallInt read GetTIENDA_WEBValue write SetTIENDA_WEBValue; + property TIENDA_WEBIsNull: Boolean read GetTIENDA_WEBIsNull write SetTIENDA_WEBIsNull; + property CODIGO_ASIGNADO: String read GetCODIGO_ASIGNADOValue write SetCODIGO_ASIGNADOValue; + property CODIGO_ASIGNADOIsNull: Boolean read GetCODIGO_ASIGNADOIsNull write SetCODIGO_ASIGNADOIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property FELICITACION: SmallInt read GetFELICITACIONValue write SetFELICITACIONValue; + property FELICITACIONIsNull: Boolean read GetFELICITACIONIsNull write SetFELICITACIONIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IProveedores } + IProveedores = interface(IDAStronglyTypedDataTable) + ['{69BB1B32-4DA1-4DCA-B2B1-B8D5ED5FB2AC}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_CATEGORIAValue: Integer; + procedure SetID_CATEGORIAValue(const aValue: Integer); + function GetID_CATEGORIAIsNull: Boolean; + procedure SetID_CATEGORIAIsNull(const aValue: Boolean); + function GetNIF_CIFValue: String; + procedure SetNIF_CIFValue(const aValue: String); + function GetNIF_CIFIsNull: Boolean; + procedure SetNIF_CIFIsNull(const aValue: Boolean); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetNOMBREIsNull: Boolean; + procedure SetNOMBREIsNull(const aValue: Boolean); + function GetPERSONA_CONTACTOValue: String; + procedure SetPERSONA_CONTACTOValue(const aValue: String); + function GetPERSONA_CONTACTOIsNull: Boolean; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetCALLEIsNull: Boolean; + procedure SetCALLEIsNull(const aValue: Boolean); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPOBLACIONIsNull: Boolean; + procedure SetPOBLACIONIsNull(const aValue: Boolean); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetPROVINCIAIsNull: Boolean; + procedure SetPROVINCIAIsNull(const aValue: Boolean); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetCODIGO_POSTALIsNull: Boolean; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); + function GetTELEFONO_1Value: String; + procedure SetTELEFONO_1Value(const aValue: String); + function GetTELEFONO_1IsNull: Boolean; + procedure SetTELEFONO_1IsNull(const aValue: Boolean); + function GetTELEFONO_2Value: String; + procedure SetTELEFONO_2Value(const aValue: String); + function GetTELEFONO_2IsNull: Boolean; + procedure SetTELEFONO_2IsNull(const aValue: Boolean); + function GetMOVIL_1Value: String; + procedure SetMOVIL_1Value(const aValue: String); + function GetMOVIL_1IsNull: Boolean; + procedure SetMOVIL_1IsNull(const aValue: Boolean); + function GetMOVIL_2Value: String; + procedure SetMOVIL_2Value(const aValue: String); + function GetMOVIL_2IsNull: Boolean; + procedure SetMOVIL_2IsNull(const aValue: Boolean); + function GetFAXValue: String; + procedure SetFAXValue(const aValue: String); + function GetFAXIsNull: Boolean; + procedure SetFAXIsNull(const aValue: Boolean); + function GetEMAIL_1Value: String; + procedure SetEMAIL_1Value(const aValue: String); + function GetEMAIL_1IsNull: Boolean; + procedure SetEMAIL_1IsNull(const aValue: Boolean); + function GetEMAIL_2Value: String; + procedure SetEMAIL_2Value(const aValue: String); + function GetEMAIL_2IsNull: Boolean; + procedure SetEMAIL_2IsNull(const aValue: Boolean); + function GetPAGINA_WEBValue: String; + procedure SetPAGINA_WEBValue(const aValue: String); + function GetPAGINA_WEBIsNull: Boolean; + procedure SetPAGINA_WEBIsNull(const aValue: Boolean); + function GetNOTASValue: IROStrings; + function GetNOTASIsNull: Boolean; + procedure SetNOTASIsNull(const aValue: Boolean); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_ALTAIsNull: Boolean; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONIsNull: Boolean; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetUSUARIOIsNull: Boolean; + procedure SetUSUARIOIsNull(const aValue: Boolean); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_EMPRESAIsNull: Boolean; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetDESCUENTOIsNull: Boolean; + procedure SetDESCUENTOIsNull(const aValue: Boolean); + function GetDESCRIPCION_PROVEEDORValue: String; + procedure SetDESCRIPCION_PROVEEDORValue(const aValue: String); + function GetDESCRIPCION_PROVEEDORIsNull: Boolean; + procedure SetDESCRIPCION_PROVEEDORIsNull(const aValue: Boolean); + function GetCODIGO_ASIGNADOValue: String; + procedure SetCODIGO_ASIGNADOValue(const aValue: String); + function GetCODIGO_ASIGNADOIsNull: Boolean; + procedure SetCODIGO_ASIGNADOIsNull(const aValue: Boolean); + function GetGRUPO_PROVEEDORValue: String; + procedure SetGRUPO_PROVEEDORValue(const aValue: String); + function GetGRUPO_PROVEEDORIsNull: Boolean; + procedure SetGRUPO_PROVEEDORIsNull(const aValue: Boolean); + function GetREGIMEN_IVAValue: String; + procedure SetREGIMEN_IVAValue(const aValue: String); + function GetREGIMEN_IVAIsNull: Boolean; + procedure SetREGIMEN_IVAIsNull(const aValue: Boolean); + function GetID_TIPO_IVAValue: Integer; + procedure SetID_TIPO_IVAValue(const aValue: Integer); + function GetID_TIPO_IVAIsNull: Boolean; + procedure SetID_TIPO_IVAIsNull(const aValue: Boolean); + function GetID_FORMA_PAGOValue: Integer; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); + function GetID_FORMA_PAGOIsNull: Boolean; + procedure SetID_FORMA_PAGOIsNull(const aValue: Boolean); + function GetTIENDA_WEBValue: SmallInt; + procedure SetTIENDA_WEBValue(const aValue: SmallInt); + function GetTIENDA_WEBIsNull: Boolean; + procedure SetTIENDA_WEBIsNull(const aValue: Boolean); + function GetHOMOLOGADOValue: SmallInt; + procedure SetHOMOLOGADOValue(const aValue: SmallInt); + function GetHOMOLOGADOIsNull: Boolean; + procedure SetHOMOLOGADOIsNull(const aValue: Boolean); + function GetCERTIFICACIONValue: String; + procedure SetCERTIFICACIONValue(const aValue: String); + function GetCERTIFICACIONIsNull: Boolean; + procedure SetCERTIFICACIONIsNull(const aValue: Boolean); + function GetSUBCONTRATAValue: SmallInt; + procedure SetSUBCONTRATAValue(const aValue: SmallInt); + function GetSUBCONTRATAIsNull: Boolean; + procedure SetSUBCONTRATAIsNull(const aValue: Boolean); + function GetEMAIL_ADMINISTRACIONValue: String; + procedure SetEMAIL_ADMINISTRACIONValue(const aValue: String); + function GetEMAIL_ADMINISTRACIONIsNull: Boolean; + procedure SetEMAIL_ADMINISTRACIONIsNull(const aValue: Boolean); + function GetVENCIMIENTO_FACTURAS_1Value: SmallInt; + procedure SetVENCIMIENTO_FACTURAS_1Value(const aValue: SmallInt); + function GetVENCIMIENTO_FACTURAS_1IsNull: Boolean; + procedure SetVENCIMIENTO_FACTURAS_1IsNull(const aValue: Boolean); + function GetVENCIMIENTO_FACTURAS_2Value: SmallInt; + procedure SetVENCIMIENTO_FACTURAS_2Value(const aValue: SmallInt); + function GetVENCIMIENTO_FACTURAS_2IsNull: Boolean; + procedure SetVENCIMIENTO_FACTURAS_2IsNull(const aValue: Boolean); + function GetVENCIMIENTO_FACTURAS_3Value: SmallInt; + procedure SetVENCIMIENTO_FACTURAS_3Value(const aValue: SmallInt); + function GetVENCIMIENTO_FACTURAS_3IsNull: Boolean; + procedure SetVENCIMIENTO_FACTURAS_3IsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_CATEGORIA: Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue; + property ID_CATEGORIAIsNull: Boolean read GetID_CATEGORIAIsNull write SetID_CATEGORIAIsNull; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NIF_CIFIsNull: Boolean read GetNIF_CIFIsNull write SetNIF_CIFIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull: Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_1IsNull: Boolean read GetTELEFONO_1IsNull write SetTELEFONO_1IsNull; + property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property TELEFONO_2IsNull: Boolean read GetTELEFONO_2IsNull write SetTELEFONO_2IsNull; + property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_1IsNull: Boolean read GetMOVIL_1IsNull write SetMOVIL_1IsNull; + property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value; + property MOVIL_2IsNull: Boolean read GetMOVIL_2IsNull write SetMOVIL_2IsNull; + property FAX: String read GetFAXValue write SetFAXValue; + property FAXIsNull: Boolean read GetFAXIsNull write SetFAXIsNull; + property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_1IsNull: Boolean read GetEMAIL_1IsNull write SetEMAIL_1IsNull; + property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value; + property EMAIL_2IsNull: Boolean read GetEMAIL_2IsNull write SetEMAIL_2IsNull; + property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property PAGINA_WEBIsNull: Boolean read GetPAGINA_WEBIsNull write SetPAGINA_WEBIsNull; + property NOTAS: IROStrings read GetNOTASValue; + property NOTASIsNull: Boolean read GetNOTASIsNull write SetNOTASIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property DESCRIPCION_PROVEEDOR: String read GetDESCRIPCION_PROVEEDORValue write SetDESCRIPCION_PROVEEDORValue; + property DESCRIPCION_PROVEEDORIsNull: Boolean read GetDESCRIPCION_PROVEEDORIsNull write SetDESCRIPCION_PROVEEDORIsNull; + property CODIGO_ASIGNADO: String read GetCODIGO_ASIGNADOValue write SetCODIGO_ASIGNADOValue; + property CODIGO_ASIGNADOIsNull: Boolean read GetCODIGO_ASIGNADOIsNull write SetCODIGO_ASIGNADOIsNull; + property GRUPO_PROVEEDOR: String read GetGRUPO_PROVEEDORValue write SetGRUPO_PROVEEDORValue; + property GRUPO_PROVEEDORIsNull: Boolean read GetGRUPO_PROVEEDORIsNull write SetGRUPO_PROVEEDORIsNull; + property REGIMEN_IVA: String read GetREGIMEN_IVAValue write SetREGIMEN_IVAValue; + property REGIMEN_IVAIsNull: Boolean read GetREGIMEN_IVAIsNull write SetREGIMEN_IVAIsNull; + property ID_TIPO_IVA: Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue; + property ID_TIPO_IVAIsNull: Boolean read GetID_TIPO_IVAIsNull write SetID_TIPO_IVAIsNull; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property ID_FORMA_PAGOIsNull: Boolean read GetID_FORMA_PAGOIsNull write SetID_FORMA_PAGOIsNull; + property TIENDA_WEB: SmallInt read GetTIENDA_WEBValue write SetTIENDA_WEBValue; + property TIENDA_WEBIsNull: Boolean read GetTIENDA_WEBIsNull write SetTIENDA_WEBIsNull; + property HOMOLOGADO: SmallInt read GetHOMOLOGADOValue write SetHOMOLOGADOValue; + property HOMOLOGADOIsNull: Boolean read GetHOMOLOGADOIsNull write SetHOMOLOGADOIsNull; + property CERTIFICACION: String read GetCERTIFICACIONValue write SetCERTIFICACIONValue; + property CERTIFICACIONIsNull: Boolean read GetCERTIFICACIONIsNull write SetCERTIFICACIONIsNull; + property SUBCONTRATA: SmallInt read GetSUBCONTRATAValue write SetSUBCONTRATAValue; + property SUBCONTRATAIsNull: Boolean read GetSUBCONTRATAIsNull write SetSUBCONTRATAIsNull; + property EMAIL_ADMINISTRACION: String read GetEMAIL_ADMINISTRACIONValue write SetEMAIL_ADMINISTRACIONValue; + property EMAIL_ADMINISTRACIONIsNull: Boolean read GetEMAIL_ADMINISTRACIONIsNull write SetEMAIL_ADMINISTRACIONIsNull; + property VENCIMIENTO_FACTURAS_1: SmallInt read GetVENCIMIENTO_FACTURAS_1Value write SetVENCIMIENTO_FACTURAS_1Value; + property VENCIMIENTO_FACTURAS_1IsNull: Boolean read GetVENCIMIENTO_FACTURAS_1IsNull write SetVENCIMIENTO_FACTURAS_1IsNull; + property VENCIMIENTO_FACTURAS_2: SmallInt read GetVENCIMIENTO_FACTURAS_2Value write SetVENCIMIENTO_FACTURAS_2Value; + property VENCIMIENTO_FACTURAS_2IsNull: Boolean read GetVENCIMIENTO_FACTURAS_2IsNull write SetVENCIMIENTO_FACTURAS_2IsNull; + property VENCIMIENTO_FACTURAS_3: SmallInt read GetVENCIMIENTO_FACTURAS_3Value write SetVENCIMIENTO_FACTURAS_3Value; + property VENCIMIENTO_FACTURAS_3IsNull: Boolean read GetVENCIMIENTO_FACTURAS_3IsNull write SetVENCIMIENTO_FACTURAS_3IsNull; + end; + + { TProveedoresDataTableRules } + TProveedoresDataTableRules = class(TDADataTableRules, IProveedores) + private + f_NOTAS: IROStrings; + procedure NOTAS_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_CATEGORIAValue: Integer; virtual; + procedure SetID_CATEGORIAValue(const aValue: Integer); virtual; + function GetID_CATEGORIAIsNull: Boolean; virtual; + procedure SetID_CATEGORIAIsNull(const aValue: Boolean); virtual; + function GetNIF_CIFValue: String; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + function GetNIF_CIFIsNull: Boolean; virtual; + procedure SetNIF_CIFIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + function GetPERSONA_CONTACTOIsNull: Boolean; virtual; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetCALLEIsNull: Boolean; virtual; + procedure SetCALLEIsNull(const aValue: Boolean); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPOBLACIONIsNull: Boolean; virtual; + procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetPROVINCIAIsNull: Boolean; virtual; + procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetCODIGO_POSTALIsNull: Boolean; virtual; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual; + function GetTELEFONO_1Value: String; virtual; + procedure SetTELEFONO_1Value(const aValue: String); virtual; + function GetTELEFONO_1IsNull: Boolean; virtual; + procedure SetTELEFONO_1IsNull(const aValue: Boolean); virtual; + function GetTELEFONO_2Value: String; virtual; + procedure SetTELEFONO_2Value(const aValue: String); virtual; + function GetTELEFONO_2IsNull: Boolean; virtual; + procedure SetTELEFONO_2IsNull(const aValue: Boolean); virtual; + function GetMOVIL_1Value: String; virtual; + procedure SetMOVIL_1Value(const aValue: String); virtual; + function GetMOVIL_1IsNull: Boolean; virtual; + procedure SetMOVIL_1IsNull(const aValue: Boolean); virtual; + function GetMOVIL_2Value: String; virtual; + procedure SetMOVIL_2Value(const aValue: String); virtual; + function GetMOVIL_2IsNull: Boolean; virtual; + procedure SetMOVIL_2IsNull(const aValue: Boolean); virtual; + function GetFAXValue: String; virtual; + procedure SetFAXValue(const aValue: String); virtual; + function GetFAXIsNull: Boolean; virtual; + procedure SetFAXIsNull(const aValue: Boolean); virtual; + function GetEMAIL_1Value: String; virtual; + procedure SetEMAIL_1Value(const aValue: String); virtual; + function GetEMAIL_1IsNull: Boolean; virtual; + procedure SetEMAIL_1IsNull(const aValue: Boolean); virtual; + function GetEMAIL_2Value: String; virtual; + procedure SetEMAIL_2Value(const aValue: String); virtual; + function GetEMAIL_2IsNull: Boolean; virtual; + procedure SetEMAIL_2IsNull(const aValue: Boolean); virtual; + function GetPAGINA_WEBValue: String; virtual; + procedure SetPAGINA_WEBValue(const aValue: String); virtual; + function GetPAGINA_WEBIsNull: Boolean; virtual; + procedure SetPAGINA_WEBIsNull(const aValue: Boolean); virtual; + function GetNOTASValue: IROStrings; virtual; + function GetNOTASIsNull: Boolean; virtual; + procedure SetNOTASIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCION_PROVEEDORValue: String; virtual; + procedure SetDESCRIPCION_PROVEEDORValue(const aValue: String); virtual; + function GetDESCRIPCION_PROVEEDORIsNull: Boolean; virtual; + procedure SetDESCRIPCION_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetCODIGO_ASIGNADOValue: String; virtual; + procedure SetCODIGO_ASIGNADOValue(const aValue: String); virtual; + function GetCODIGO_ASIGNADOIsNull: Boolean; virtual; + procedure SetCODIGO_ASIGNADOIsNull(const aValue: Boolean); virtual; + function GetGRUPO_PROVEEDORValue: String; virtual; + procedure SetGRUPO_PROVEEDORValue(const aValue: String); virtual; + function GetGRUPO_PROVEEDORIsNull: Boolean; virtual; + procedure SetGRUPO_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetREGIMEN_IVAValue: String; virtual; + procedure SetREGIMEN_IVAValue(const aValue: String); virtual; + function GetREGIMEN_IVAIsNull: Boolean; virtual; + procedure SetREGIMEN_IVAIsNull(const aValue: Boolean); virtual; + function GetID_TIPO_IVAValue: Integer; virtual; + procedure SetID_TIPO_IVAValue(const aValue: Integer); virtual; + function GetID_TIPO_IVAIsNull: Boolean; virtual; + procedure SetID_TIPO_IVAIsNull(const aValue: Boolean); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + function GetID_FORMA_PAGOIsNull: Boolean; virtual; + procedure SetID_FORMA_PAGOIsNull(const aValue: Boolean); virtual; + function GetTIENDA_WEBValue: SmallInt; virtual; + procedure SetTIENDA_WEBValue(const aValue: SmallInt); virtual; + function GetTIENDA_WEBIsNull: Boolean; virtual; + procedure SetTIENDA_WEBIsNull(const aValue: Boolean); virtual; + function GetHOMOLOGADOValue: SmallInt; virtual; + procedure SetHOMOLOGADOValue(const aValue: SmallInt); virtual; + function GetHOMOLOGADOIsNull: Boolean; virtual; + procedure SetHOMOLOGADOIsNull(const aValue: Boolean); virtual; + function GetCERTIFICACIONValue: String; virtual; + procedure SetCERTIFICACIONValue(const aValue: String); virtual; + function GetCERTIFICACIONIsNull: Boolean; virtual; + procedure SetCERTIFICACIONIsNull(const aValue: Boolean); virtual; + function GetSUBCONTRATAValue: SmallInt; virtual; + procedure SetSUBCONTRATAValue(const aValue: SmallInt); virtual; + function GetSUBCONTRATAIsNull: Boolean; virtual; + procedure SetSUBCONTRATAIsNull(const aValue: Boolean); virtual; + function GetEMAIL_ADMINISTRACIONValue: String; virtual; + procedure SetEMAIL_ADMINISTRACIONValue(const aValue: String); virtual; + function GetEMAIL_ADMINISTRACIONIsNull: Boolean; virtual; + procedure SetEMAIL_ADMINISTRACIONIsNull(const aValue: Boolean); virtual; + function GetVENCIMIENTO_FACTURAS_1Value: SmallInt; virtual; + procedure SetVENCIMIENTO_FACTURAS_1Value(const aValue: SmallInt); virtual; + function GetVENCIMIENTO_FACTURAS_1IsNull: Boolean; virtual; + procedure SetVENCIMIENTO_FACTURAS_1IsNull(const aValue: Boolean); virtual; + function GetVENCIMIENTO_FACTURAS_2Value: SmallInt; virtual; + procedure SetVENCIMIENTO_FACTURAS_2Value(const aValue: SmallInt); virtual; + function GetVENCIMIENTO_FACTURAS_2IsNull: Boolean; virtual; + procedure SetVENCIMIENTO_FACTURAS_2IsNull(const aValue: Boolean); virtual; + function GetVENCIMIENTO_FACTURAS_3Value: SmallInt; virtual; + procedure SetVENCIMIENTO_FACTURAS_3Value(const aValue: SmallInt); virtual; + function GetVENCIMIENTO_FACTURAS_3IsNull: Boolean; virtual; + procedure SetVENCIMIENTO_FACTURAS_3IsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_CATEGORIA: Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue; + property ID_CATEGORIAIsNull: Boolean read GetID_CATEGORIAIsNull write SetID_CATEGORIAIsNull; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NIF_CIFIsNull: Boolean read GetNIF_CIFIsNull write SetNIF_CIFIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull: Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_1IsNull: Boolean read GetTELEFONO_1IsNull write SetTELEFONO_1IsNull; + property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property TELEFONO_2IsNull: Boolean read GetTELEFONO_2IsNull write SetTELEFONO_2IsNull; + property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_1IsNull: Boolean read GetMOVIL_1IsNull write SetMOVIL_1IsNull; + property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value; + property MOVIL_2IsNull: Boolean read GetMOVIL_2IsNull write SetMOVIL_2IsNull; + property FAX: String read GetFAXValue write SetFAXValue; + property FAXIsNull: Boolean read GetFAXIsNull write SetFAXIsNull; + property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_1IsNull: Boolean read GetEMAIL_1IsNull write SetEMAIL_1IsNull; + property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value; + property EMAIL_2IsNull: Boolean read GetEMAIL_2IsNull write SetEMAIL_2IsNull; + property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property PAGINA_WEBIsNull: Boolean read GetPAGINA_WEBIsNull write SetPAGINA_WEBIsNull; + property NOTAS: IROStrings read GetNOTASValue; + property NOTASIsNull: Boolean read GetNOTASIsNull write SetNOTASIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property DESCRIPCION_PROVEEDOR: String read GetDESCRIPCION_PROVEEDORValue write SetDESCRIPCION_PROVEEDORValue; + property DESCRIPCION_PROVEEDORIsNull: Boolean read GetDESCRIPCION_PROVEEDORIsNull write SetDESCRIPCION_PROVEEDORIsNull; + property CODIGO_ASIGNADO: String read GetCODIGO_ASIGNADOValue write SetCODIGO_ASIGNADOValue; + property CODIGO_ASIGNADOIsNull: Boolean read GetCODIGO_ASIGNADOIsNull write SetCODIGO_ASIGNADOIsNull; + property GRUPO_PROVEEDOR: String read GetGRUPO_PROVEEDORValue write SetGRUPO_PROVEEDORValue; + property GRUPO_PROVEEDORIsNull: Boolean read GetGRUPO_PROVEEDORIsNull write SetGRUPO_PROVEEDORIsNull; + property REGIMEN_IVA: String read GetREGIMEN_IVAValue write SetREGIMEN_IVAValue; + property REGIMEN_IVAIsNull: Boolean read GetREGIMEN_IVAIsNull write SetREGIMEN_IVAIsNull; + property ID_TIPO_IVA: Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue; + property ID_TIPO_IVAIsNull: Boolean read GetID_TIPO_IVAIsNull write SetID_TIPO_IVAIsNull; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property ID_FORMA_PAGOIsNull: Boolean read GetID_FORMA_PAGOIsNull write SetID_FORMA_PAGOIsNull; + property TIENDA_WEB: SmallInt read GetTIENDA_WEBValue write SetTIENDA_WEBValue; + property TIENDA_WEBIsNull: Boolean read GetTIENDA_WEBIsNull write SetTIENDA_WEBIsNull; + property HOMOLOGADO: SmallInt read GetHOMOLOGADOValue write SetHOMOLOGADOValue; + property HOMOLOGADOIsNull: Boolean read GetHOMOLOGADOIsNull write SetHOMOLOGADOIsNull; + property CERTIFICACION: String read GetCERTIFICACIONValue write SetCERTIFICACIONValue; + property CERTIFICACIONIsNull: Boolean read GetCERTIFICACIONIsNull write SetCERTIFICACIONIsNull; + property SUBCONTRATA: SmallInt read GetSUBCONTRATAValue write SetSUBCONTRATAValue; + property SUBCONTRATAIsNull: Boolean read GetSUBCONTRATAIsNull write SetSUBCONTRATAIsNull; + property EMAIL_ADMINISTRACION: String read GetEMAIL_ADMINISTRACIONValue write SetEMAIL_ADMINISTRACIONValue; + property EMAIL_ADMINISTRACIONIsNull: Boolean read GetEMAIL_ADMINISTRACIONIsNull write SetEMAIL_ADMINISTRACIONIsNull; + property VENCIMIENTO_FACTURAS_1: SmallInt read GetVENCIMIENTO_FACTURAS_1Value write SetVENCIMIENTO_FACTURAS_1Value; + property VENCIMIENTO_FACTURAS_1IsNull: Boolean read GetVENCIMIENTO_FACTURAS_1IsNull write SetVENCIMIENTO_FACTURAS_1IsNull; + property VENCIMIENTO_FACTURAS_2: SmallInt read GetVENCIMIENTO_FACTURAS_2Value write SetVENCIMIENTO_FACTURAS_2Value; + property VENCIMIENTO_FACTURAS_2IsNull: Boolean read GetVENCIMIENTO_FACTURAS_2IsNull write SetVENCIMIENTO_FACTURAS_2IsNull; + property VENCIMIENTO_FACTURAS_3: SmallInt read GetVENCIMIENTO_FACTURAS_3Value write SetVENCIMIENTO_FACTURAS_3Value; + property VENCIMIENTO_FACTURAS_3IsNull: Boolean read GetVENCIMIENTO_FACTURAS_3IsNull write SetVENCIMIENTO_FACTURAS_3IsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IEmpleados } + IEmpleados = interface(IDAStronglyTypedDataTable) + ['{52136C1F-BAAE-4C19-A591-9DBFA7B5EF85}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_CATEGORIAValue: Integer; + procedure SetID_CATEGORIAValue(const aValue: Integer); + function GetID_CATEGORIAIsNull: Boolean; + procedure SetID_CATEGORIAIsNull(const aValue: Boolean); + function GetNIF_CIFValue: String; + procedure SetNIF_CIFValue(const aValue: String); + function GetNIF_CIFIsNull: Boolean; + procedure SetNIF_CIFIsNull(const aValue: Boolean); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetNOMBREIsNull: Boolean; + procedure SetNOMBREIsNull(const aValue: Boolean); + function GetPERSONA_CONTACTOValue: String; + procedure SetPERSONA_CONTACTOValue(const aValue: String); + function GetPERSONA_CONTACTOIsNull: Boolean; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetCALLEIsNull: Boolean; + procedure SetCALLEIsNull(const aValue: Boolean); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPOBLACIONIsNull: Boolean; + procedure SetPOBLACIONIsNull(const aValue: Boolean); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetPROVINCIAIsNull: Boolean; + procedure SetPROVINCIAIsNull(const aValue: Boolean); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetCODIGO_POSTALIsNull: Boolean; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); + function GetTELEFONO_1Value: String; + procedure SetTELEFONO_1Value(const aValue: String); + function GetTELEFONO_1IsNull: Boolean; + procedure SetTELEFONO_1IsNull(const aValue: Boolean); + function GetTELEFONO_2Value: String; + procedure SetTELEFONO_2Value(const aValue: String); + function GetTELEFONO_2IsNull: Boolean; + procedure SetTELEFONO_2IsNull(const aValue: Boolean); + function GetMOVIL_1Value: String; + procedure SetMOVIL_1Value(const aValue: String); + function GetMOVIL_1IsNull: Boolean; + procedure SetMOVIL_1IsNull(const aValue: Boolean); + function GetMOVIL_2Value: String; + procedure SetMOVIL_2Value(const aValue: String); + function GetMOVIL_2IsNull: Boolean; + procedure SetMOVIL_2IsNull(const aValue: Boolean); + function GetFAXValue: String; + procedure SetFAXValue(const aValue: String); + function GetFAXIsNull: Boolean; + procedure SetFAXIsNull(const aValue: Boolean); + function GetEMAIL_1Value: String; + procedure SetEMAIL_1Value(const aValue: String); + function GetEMAIL_1IsNull: Boolean; + procedure SetEMAIL_1IsNull(const aValue: Boolean); + function GetEMAIL_2Value: String; + procedure SetEMAIL_2Value(const aValue: String); + function GetEMAIL_2IsNull: Boolean; + procedure SetEMAIL_2IsNull(const aValue: Boolean); + function GetPAGINA_WEBValue: String; + procedure SetPAGINA_WEBValue(const aValue: String); + function GetPAGINA_WEBIsNull: Boolean; + procedure SetPAGINA_WEBIsNull(const aValue: Boolean); + function GetNOTASValue: IROStrings; + function GetNOTASIsNull: Boolean; + procedure SetNOTASIsNull(const aValue: Boolean); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_ALTAIsNull: Boolean; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONIsNull: Boolean; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetUSUARIOIsNull: Boolean; + procedure SetUSUARIOIsNull(const aValue: Boolean); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_EMPRESAIsNull: Boolean; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetFECHA_NACIMIENTOValue: DateTime; + procedure SetFECHA_NACIMIENTOValue(const aValue: DateTime); + function GetFECHA_NACIMIENTOIsNull: Boolean; + procedure SetFECHA_NACIMIENTOIsNull(const aValue: Boolean); + function GetCATEGORIAValue: String; + procedure SetCATEGORIAValue(const aValue: String); + function GetCATEGORIAIsNull: Boolean; + procedure SetCATEGORIAIsNull(const aValue: Boolean); + function GetFECHA_ALTA_EMPRESAValue: DateTime; + procedure SetFECHA_ALTA_EMPRESAValue(const aValue: DateTime); + function GetFECHA_ALTA_EMPRESAIsNull: Boolean; + procedure SetFECHA_ALTA_EMPRESAIsNull(const aValue: Boolean); + function GetFORMACION_BASEValue: IROStrings; + function GetFORMACION_BASEIsNull: Boolean; + procedure SetFORMACION_BASEIsNull(const aValue: Boolean); + function GetFORMACION_COMPLEValue: IROStrings; + function GetFORMACION_COMPLEIsNull: Boolean; + procedure SetFORMACION_COMPLEIsNull(const aValue: Boolean); + function GetFORMACION_RECIBIDAValue: IROStrings; + function GetFORMACION_RECIBIDAIsNull: Boolean; + procedure SetFORMACION_RECIBIDAIsNull(const aValue: Boolean); + function GetEXPERIENCIAValue: IROStrings; + function GetEXPERIENCIAIsNull: Boolean; + procedure SetEXPERIENCIAIsNull(const aValue: Boolean); + function GetCONTRATOValue: String; + procedure SetCONTRATOValue(const aValue: String); + function GetCONTRATOIsNull: Boolean; + procedure SetCONTRATOIsNull(const aValue: Boolean); + function GetDURACIONValue: String; + procedure SetDURACIONValue(const aValue: String); + function GetDURACIONIsNull: Boolean; + procedure SetDURACIONIsNull(const aValue: Boolean); + function GetFECHA_BAJAValue: DateTime; + procedure SetFECHA_BAJAValue(const aValue: DateTime); + function GetFECHA_BAJAIsNull: Boolean; + procedure SetFECHA_BAJAIsNull(const aValue: Boolean); + function GetCAUSA_BAJAValue: String; + procedure SetCAUSA_BAJAValue(const aValue: String); + function GetCAUSA_BAJAIsNull: Boolean; + procedure SetCAUSA_BAJAIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_CATEGORIA: Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue; + property ID_CATEGORIAIsNull: Boolean read GetID_CATEGORIAIsNull write SetID_CATEGORIAIsNull; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NIF_CIFIsNull: Boolean read GetNIF_CIFIsNull write SetNIF_CIFIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull: Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_1IsNull: Boolean read GetTELEFONO_1IsNull write SetTELEFONO_1IsNull; + property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property TELEFONO_2IsNull: Boolean read GetTELEFONO_2IsNull write SetTELEFONO_2IsNull; + property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_1IsNull: Boolean read GetMOVIL_1IsNull write SetMOVIL_1IsNull; + property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value; + property MOVIL_2IsNull: Boolean read GetMOVIL_2IsNull write SetMOVIL_2IsNull; + property FAX: String read GetFAXValue write SetFAXValue; + property FAXIsNull: Boolean read GetFAXIsNull write SetFAXIsNull; + property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_1IsNull: Boolean read GetEMAIL_1IsNull write SetEMAIL_1IsNull; + property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value; + property EMAIL_2IsNull: Boolean read GetEMAIL_2IsNull write SetEMAIL_2IsNull; + property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property PAGINA_WEBIsNull: Boolean read GetPAGINA_WEBIsNull write SetPAGINA_WEBIsNull; + property NOTAS: IROStrings read GetNOTASValue; + property NOTASIsNull: Boolean read GetNOTASIsNull write SetNOTASIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property FECHA_NACIMIENTO: DateTime read GetFECHA_NACIMIENTOValue write SetFECHA_NACIMIENTOValue; + property FECHA_NACIMIENTOIsNull: Boolean read GetFECHA_NACIMIENTOIsNull write SetFECHA_NACIMIENTOIsNull; + property CATEGORIA: String read GetCATEGORIAValue write SetCATEGORIAValue; + property CATEGORIAIsNull: Boolean read GetCATEGORIAIsNull write SetCATEGORIAIsNull; + property FECHA_ALTA_EMPRESA: DateTime read GetFECHA_ALTA_EMPRESAValue write SetFECHA_ALTA_EMPRESAValue; + property FECHA_ALTA_EMPRESAIsNull: Boolean read GetFECHA_ALTA_EMPRESAIsNull write SetFECHA_ALTA_EMPRESAIsNull; + property FORMACION_BASE: IROStrings read GetFORMACION_BASEValue; + property FORMACION_BASEIsNull: Boolean read GetFORMACION_BASEIsNull write SetFORMACION_BASEIsNull; + property FORMACION_COMPLE: IROStrings read GetFORMACION_COMPLEValue; + property FORMACION_COMPLEIsNull: Boolean read GetFORMACION_COMPLEIsNull write SetFORMACION_COMPLEIsNull; + property FORMACION_RECIBIDA: IROStrings read GetFORMACION_RECIBIDAValue; + property FORMACION_RECIBIDAIsNull: Boolean read GetFORMACION_RECIBIDAIsNull write SetFORMACION_RECIBIDAIsNull; + property EXPERIENCIA: IROStrings read GetEXPERIENCIAValue; + property EXPERIENCIAIsNull: Boolean read GetEXPERIENCIAIsNull write SetEXPERIENCIAIsNull; + property CONTRATO: String read GetCONTRATOValue write SetCONTRATOValue; + property CONTRATOIsNull: Boolean read GetCONTRATOIsNull write SetCONTRATOIsNull; + property DURACION: String read GetDURACIONValue write SetDURACIONValue; + property DURACIONIsNull: Boolean read GetDURACIONIsNull write SetDURACIONIsNull; + property FECHA_BAJA: DateTime read GetFECHA_BAJAValue write SetFECHA_BAJAValue; + property FECHA_BAJAIsNull: Boolean read GetFECHA_BAJAIsNull write SetFECHA_BAJAIsNull; + property CAUSA_BAJA: String read GetCAUSA_BAJAValue write SetCAUSA_BAJAValue; + property CAUSA_BAJAIsNull: Boolean read GetCAUSA_BAJAIsNull write SetCAUSA_BAJAIsNull; + end; + + { TEmpleadosDataTableRules } + TEmpleadosDataTableRules = class(TDADataTableRules, IEmpleados) + private + f_NOTAS: IROStrings; + f_FORMACION_BASE: IROStrings; + f_FORMACION_COMPLE: IROStrings; + f_FORMACION_RECIBIDA: IROStrings; + f_EXPERIENCIA: IROStrings; + procedure NOTAS_OnChange(Sender: TObject); + procedure FORMACION_BASE_OnChange(Sender: TObject); + procedure FORMACION_COMPLE_OnChange(Sender: TObject); + procedure FORMACION_RECIBIDA_OnChange(Sender: TObject); + procedure EXPERIENCIA_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_CATEGORIAValue: Integer; virtual; + procedure SetID_CATEGORIAValue(const aValue: Integer); virtual; + function GetID_CATEGORIAIsNull: Boolean; virtual; + procedure SetID_CATEGORIAIsNull(const aValue: Boolean); virtual; + function GetNIF_CIFValue: String; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + function GetNIF_CIFIsNull: Boolean; virtual; + procedure SetNIF_CIFIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + function GetPERSONA_CONTACTOIsNull: Boolean; virtual; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetCALLEIsNull: Boolean; virtual; + procedure SetCALLEIsNull(const aValue: Boolean); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPOBLACIONIsNull: Boolean; virtual; + procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetPROVINCIAIsNull: Boolean; virtual; + procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetCODIGO_POSTALIsNull: Boolean; virtual; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual; + function GetTELEFONO_1Value: String; virtual; + procedure SetTELEFONO_1Value(const aValue: String); virtual; + function GetTELEFONO_1IsNull: Boolean; virtual; + procedure SetTELEFONO_1IsNull(const aValue: Boolean); virtual; + function GetTELEFONO_2Value: String; virtual; + procedure SetTELEFONO_2Value(const aValue: String); virtual; + function GetTELEFONO_2IsNull: Boolean; virtual; + procedure SetTELEFONO_2IsNull(const aValue: Boolean); virtual; + function GetMOVIL_1Value: String; virtual; + procedure SetMOVIL_1Value(const aValue: String); virtual; + function GetMOVIL_1IsNull: Boolean; virtual; + procedure SetMOVIL_1IsNull(const aValue: Boolean); virtual; + function GetMOVIL_2Value: String; virtual; + procedure SetMOVIL_2Value(const aValue: String); virtual; + function GetMOVIL_2IsNull: Boolean; virtual; + procedure SetMOVIL_2IsNull(const aValue: Boolean); virtual; + function GetFAXValue: String; virtual; + procedure SetFAXValue(const aValue: String); virtual; + function GetFAXIsNull: Boolean; virtual; + procedure SetFAXIsNull(const aValue: Boolean); virtual; + function GetEMAIL_1Value: String; virtual; + procedure SetEMAIL_1Value(const aValue: String); virtual; + function GetEMAIL_1IsNull: Boolean; virtual; + procedure SetEMAIL_1IsNull(const aValue: Boolean); virtual; + function GetEMAIL_2Value: String; virtual; + procedure SetEMAIL_2Value(const aValue: String); virtual; + function GetEMAIL_2IsNull: Boolean; virtual; + procedure SetEMAIL_2IsNull(const aValue: Boolean); virtual; + function GetPAGINA_WEBValue: String; virtual; + procedure SetPAGINA_WEBValue(const aValue: String); virtual; + function GetPAGINA_WEBIsNull: Boolean; virtual; + procedure SetPAGINA_WEBIsNull(const aValue: Boolean); virtual; + function GetNOTASValue: IROStrings; virtual; + function GetNOTASIsNull: Boolean; virtual; + procedure SetNOTASIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetFECHA_NACIMIENTOValue: DateTime; virtual; + procedure SetFECHA_NACIMIENTOValue(const aValue: DateTime); virtual; + function GetFECHA_NACIMIENTOIsNull: Boolean; virtual; + procedure SetFECHA_NACIMIENTOIsNull(const aValue: Boolean); virtual; + function GetCATEGORIAValue: String; virtual; + procedure SetCATEGORIAValue(const aValue: String); virtual; + function GetCATEGORIAIsNull: Boolean; virtual; + procedure SetCATEGORIAIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTA_EMPRESAValue: DateTime; virtual; + procedure SetFECHA_ALTA_EMPRESAValue(const aValue: DateTime); virtual; + function GetFECHA_ALTA_EMPRESAIsNull: Boolean; virtual; + procedure SetFECHA_ALTA_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetFORMACION_BASEValue: IROStrings; virtual; + function GetFORMACION_BASEIsNull: Boolean; virtual; + procedure SetFORMACION_BASEIsNull(const aValue: Boolean); virtual; + function GetFORMACION_COMPLEValue: IROStrings; virtual; + function GetFORMACION_COMPLEIsNull: Boolean; virtual; + procedure SetFORMACION_COMPLEIsNull(const aValue: Boolean); virtual; + function GetFORMACION_RECIBIDAValue: IROStrings; virtual; + function GetFORMACION_RECIBIDAIsNull: Boolean; virtual; + procedure SetFORMACION_RECIBIDAIsNull(const aValue: Boolean); virtual; + function GetEXPERIENCIAValue: IROStrings; virtual; + function GetEXPERIENCIAIsNull: Boolean; virtual; + procedure SetEXPERIENCIAIsNull(const aValue: Boolean); virtual; + function GetCONTRATOValue: String; virtual; + procedure SetCONTRATOValue(const aValue: String); virtual; + function GetCONTRATOIsNull: Boolean; virtual; + procedure SetCONTRATOIsNull(const aValue: Boolean); virtual; + function GetDURACIONValue: String; virtual; + procedure SetDURACIONValue(const aValue: String); virtual; + function GetDURACIONIsNull: Boolean; virtual; + procedure SetDURACIONIsNull(const aValue: Boolean); virtual; + function GetFECHA_BAJAValue: DateTime; virtual; + procedure SetFECHA_BAJAValue(const aValue: DateTime); virtual; + function GetFECHA_BAJAIsNull: Boolean; virtual; + procedure SetFECHA_BAJAIsNull(const aValue: Boolean); virtual; + function GetCAUSA_BAJAValue: String; virtual; + procedure SetCAUSA_BAJAValue(const aValue: String); virtual; + function GetCAUSA_BAJAIsNull: Boolean; virtual; + procedure SetCAUSA_BAJAIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_CATEGORIA: Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue; + property ID_CATEGORIAIsNull: Boolean read GetID_CATEGORIAIsNull write SetID_CATEGORIAIsNull; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NIF_CIFIsNull: Boolean read GetNIF_CIFIsNull write SetNIF_CIFIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull: Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_1IsNull: Boolean read GetTELEFONO_1IsNull write SetTELEFONO_1IsNull; + property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property TELEFONO_2IsNull: Boolean read GetTELEFONO_2IsNull write SetTELEFONO_2IsNull; + property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_1IsNull: Boolean read GetMOVIL_1IsNull write SetMOVIL_1IsNull; + property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value; + property MOVIL_2IsNull: Boolean read GetMOVIL_2IsNull write SetMOVIL_2IsNull; + property FAX: String read GetFAXValue write SetFAXValue; + property FAXIsNull: Boolean read GetFAXIsNull write SetFAXIsNull; + property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_1IsNull: Boolean read GetEMAIL_1IsNull write SetEMAIL_1IsNull; + property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value; + property EMAIL_2IsNull: Boolean read GetEMAIL_2IsNull write SetEMAIL_2IsNull; + property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property PAGINA_WEBIsNull: Boolean read GetPAGINA_WEBIsNull write SetPAGINA_WEBIsNull; + property NOTAS: IROStrings read GetNOTASValue; + property NOTASIsNull: Boolean read GetNOTASIsNull write SetNOTASIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property FECHA_NACIMIENTO: DateTime read GetFECHA_NACIMIENTOValue write SetFECHA_NACIMIENTOValue; + property FECHA_NACIMIENTOIsNull: Boolean read GetFECHA_NACIMIENTOIsNull write SetFECHA_NACIMIENTOIsNull; + property CATEGORIA: String read GetCATEGORIAValue write SetCATEGORIAValue; + property CATEGORIAIsNull: Boolean read GetCATEGORIAIsNull write SetCATEGORIAIsNull; + property FECHA_ALTA_EMPRESA: DateTime read GetFECHA_ALTA_EMPRESAValue write SetFECHA_ALTA_EMPRESAValue; + property FECHA_ALTA_EMPRESAIsNull: Boolean read GetFECHA_ALTA_EMPRESAIsNull write SetFECHA_ALTA_EMPRESAIsNull; + property FORMACION_BASE: IROStrings read GetFORMACION_BASEValue; + property FORMACION_BASEIsNull: Boolean read GetFORMACION_BASEIsNull write SetFORMACION_BASEIsNull; + property FORMACION_COMPLE: IROStrings read GetFORMACION_COMPLEValue; + property FORMACION_COMPLEIsNull: Boolean read GetFORMACION_COMPLEIsNull write SetFORMACION_COMPLEIsNull; + property FORMACION_RECIBIDA: IROStrings read GetFORMACION_RECIBIDAValue; + property FORMACION_RECIBIDAIsNull: Boolean read GetFORMACION_RECIBIDAIsNull write SetFORMACION_RECIBIDAIsNull; + property EXPERIENCIA: IROStrings read GetEXPERIENCIAValue; + property EXPERIENCIAIsNull: Boolean read GetEXPERIENCIAIsNull write SetEXPERIENCIAIsNull; + property CONTRATO: String read GetCONTRATOValue write SetCONTRATOValue; + property CONTRATOIsNull: Boolean read GetCONTRATOIsNull write SetCONTRATOIsNull; + property DURACION: String read GetDURACIONValue write SetDURACIONValue; + property DURACIONIsNull: Boolean read GetDURACIONIsNull write SetDURACIONIsNull; + property FECHA_BAJA: DateTime read GetFECHA_BAJAValue write SetFECHA_BAJAValue; + property FECHA_BAJAIsNull: Boolean read GetFECHA_BAJAIsNull write SetFECHA_BAJAIsNull; + property CAUSA_BAJA: String read GetCAUSA_BAJAValue write SetCAUSA_BAJAValue; + property CAUSA_BAJAIsNull: Boolean read GetCAUSA_BAJAIsNull write SetCAUSA_BAJAIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IDireccionesContacto } + IDireccionesContacto = interface(IDAStronglyTypedDataTable) + ['{A00892E0-6BE7-4A54-B211-7B2058E39FAD}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_CONTACTOValue: Integer; + procedure SetID_CONTACTOValue(const aValue: Integer); + function GetID_CONTACTOIsNull: Boolean; + procedure SetID_CONTACTOIsNull(const aValue: Boolean); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetCALLEIsNull: Boolean; + procedure SetCALLEIsNull(const aValue: Boolean); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPOBLACIONIsNull: Boolean; + procedure SetPOBLACIONIsNull(const aValue: Boolean); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetPROVINCIAIsNull: Boolean; + procedure SetPROVINCIAIsNull(const aValue: Boolean); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetCODIGO_POSTALIsNull: Boolean; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); + function GetPERSONA_CONTACTOValue: String; + procedure SetPERSONA_CONTACTOValue(const aValue: String); + function GetPERSONA_CONTACTOIsNull: Boolean; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetNOMBREIsNull: Boolean; + procedure SetNOMBREIsNull(const aValue: Boolean); + function GetTELEFONOValue: String; + procedure SetTELEFONOValue(const aValue: String); + function GetTELEFONOIsNull: Boolean; + procedure SetTELEFONOIsNull(const aValue: Boolean); + function GetMOVILValue: String; + procedure SetMOVILValue(const aValue: String); + function GetMOVILIsNull: Boolean; + procedure SetMOVILIsNull(const aValue: Boolean); + function GetFAXValue: String; + procedure SetFAXValue(const aValue: String); + function GetFAXIsNull: Boolean; + procedure SetFAXIsNull(const aValue: Boolean); + function GetEMAILValue: String; + procedure SetEMAILValue(const aValue: String); + function GetEMAILIsNull: Boolean; + procedure SetEMAILIsNull(const aValue: Boolean); + function GetNOTASValue: IROStrings; + function GetNOTASIsNull: Boolean; + procedure SetNOTASIsNull(const aValue: Boolean); + function GetPORTEValue: Float; + procedure SetPORTEValue(const aValue: Float); + function GetPORTEIsNull: Boolean; + procedure SetPORTEIsNull(const aValue: Boolean); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_ALTAIsNull: Boolean; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONIsNull: Boolean; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_CONTACTO: Integer read GetID_CONTACTOValue write SetID_CONTACTOValue; + property ID_CONTACTOIsNull: Boolean read GetID_CONTACTOIsNull write SetID_CONTACTOIsNull; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull: Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property TELEFONOIsNull: Boolean read GetTELEFONOIsNull write SetTELEFONOIsNull; + property MOVIL: String read GetMOVILValue write SetMOVILValue; + property MOVILIsNull: Boolean read GetMOVILIsNull write SetMOVILIsNull; + property FAX: String read GetFAXValue write SetFAXValue; + property FAXIsNull: Boolean read GetFAXIsNull write SetFAXIsNull; + property EMAIL: String read GetEMAILValue write SetEMAILValue; + property EMAILIsNull: Boolean read GetEMAILIsNull write SetEMAILIsNull; + property NOTAS: IROStrings read GetNOTASValue; + property NOTASIsNull: Boolean read GetNOTASIsNull write SetNOTASIsNull; + property PORTE: Float read GetPORTEValue write SetPORTEValue; + property PORTEIsNull: Boolean read GetPORTEIsNull write SetPORTEIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + end; + + { TDireccionesContactoDataTableRules } + TDireccionesContactoDataTableRules = class(TDADataTableRules, IDireccionesContacto) + private + f_NOTAS: IROStrings; + procedure NOTAS_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_CONTACTOValue: Integer; virtual; + procedure SetID_CONTACTOValue(const aValue: Integer); virtual; + function GetID_CONTACTOIsNull: Boolean; virtual; + procedure SetID_CONTACTOIsNull(const aValue: Boolean); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetCALLEIsNull: Boolean; virtual; + procedure SetCALLEIsNull(const aValue: Boolean); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPOBLACIONIsNull: Boolean; virtual; + procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetPROVINCIAIsNull: Boolean; virtual; + procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetCODIGO_POSTALIsNull: Boolean; virtual; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + function GetPERSONA_CONTACTOIsNull: Boolean; virtual; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetTELEFONOValue: String; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + function GetTELEFONOIsNull: Boolean; virtual; + procedure SetTELEFONOIsNull(const aValue: Boolean); virtual; + function GetMOVILValue: String; virtual; + procedure SetMOVILValue(const aValue: String); virtual; + function GetMOVILIsNull: Boolean; virtual; + procedure SetMOVILIsNull(const aValue: Boolean); virtual; + function GetFAXValue: String; virtual; + procedure SetFAXValue(const aValue: String); virtual; + function GetFAXIsNull: Boolean; virtual; + procedure SetFAXIsNull(const aValue: Boolean); virtual; + function GetEMAILValue: String; virtual; + procedure SetEMAILValue(const aValue: String); virtual; + function GetEMAILIsNull: Boolean; virtual; + procedure SetEMAILIsNull(const aValue: Boolean); virtual; + function GetNOTASValue: IROStrings; virtual; + function GetNOTASIsNull: Boolean; virtual; + procedure SetNOTASIsNull(const aValue: Boolean); virtual; + function GetPORTEValue: Float; virtual; + procedure SetPORTEValue(const aValue: Float); virtual; + function GetPORTEIsNull: Boolean; virtual; + procedure SetPORTEIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_CONTACTO: Integer read GetID_CONTACTOValue write SetID_CONTACTOValue; + property ID_CONTACTOIsNull: Boolean read GetID_CONTACTOIsNull write SetID_CONTACTOIsNull; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull: Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property TELEFONOIsNull: Boolean read GetTELEFONOIsNull write SetTELEFONOIsNull; + property MOVIL: String read GetMOVILValue write SetMOVILValue; + property MOVILIsNull: Boolean read GetMOVILIsNull write SetMOVILIsNull; + property FAX: String read GetFAXValue write SetFAXValue; + property FAXIsNull: Boolean read GetFAXIsNull write SetFAXIsNull; + property EMAIL: String read GetEMAILValue write SetEMAILValue; + property EMAILIsNull: Boolean read GetEMAILIsNull write SetEMAILIsNull; + property NOTAS: IROStrings read GetNOTASValue; + property NOTASIsNull: Boolean read GetNOTASIsNull write SetNOTASIsNull; + property PORTE: Float read GetPORTEValue write SetPORTEValue; + property PORTEIsNull: Boolean read GetPORTEIsNull write SetPORTEIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IClientesDescuentos } + IClientesDescuentos = interface(IDAStronglyTypedDataTable) + ['{4C548880-D3ED-4686-BC44-170BDBE4794F}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_CLIENTEValue: Integer; + procedure SetID_CLIENTEValue(const aValue: Integer); + function GetID_CLIENTEIsNull: Boolean; + procedure SetID_CLIENTEIsNull(const aValue: Boolean); + function GetID_PROVEEDORValue: Integer; + procedure SetID_PROVEEDORValue(const aValue: Integer); + function GetID_PROVEEDORIsNull: Boolean; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetNOMBREIsNull: Boolean; + procedure SetNOMBREIsNull(const aValue: Boolean); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetDESCUENTOIsNull: Boolean; + procedure SetDESCUENTOIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property ID_CLIENTEIsNull: Boolean read GetID_CLIENTEIsNull write SetID_CLIENTEIsNull; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + end; + + { TClientesDescuentosDataTableRules } + TClientesDescuentosDataTableRules = class(TDADataTableRules, IClientesDescuentos) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_CLIENTEValue: Integer; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + function GetID_CLIENTEIsNull: Boolean; virtual; + procedure SetID_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetID_PROVEEDORIsNull: Boolean; virtual; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property ID_CLIENTEIsNull: Boolean read GetID_CLIENTEIsNull write SetID_CLIENTEIsNull; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IGruposProveedor } + IGruposProveedor = interface(IDAStronglyTypedDataTable) + ['{B1ED690F-51F7-4482-A2EC-EBD20B348D57}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetDESCRIPCIONIsNull: Boolean; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + end; + + { TGruposProveedorDataTableRules } + TGruposProveedorDataTableRules = class(TDADataTableRules, IGruposProveedor) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IGruposEmpleado } + IGruposEmpleado = interface(IDAStronglyTypedDataTable) + ['{0CF4F7AF-E9C7-4EB6-A261-FAE055291528}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetDESCRIPCIONIsNull: Boolean; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + end; + + { TGruposEmpleadoDataTableRules } + TGruposEmpleadoDataTableRules = class(TDADataTableRules, IGruposEmpleado) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IContactos_Refresh } + IContactos_Refresh = interface(IDAStronglyTypedDataTable) + ['{65B9A25E-F38D-4FFF-B3BE-7AB95CACFF06}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetNIF_CIFValue: String; + procedure SetNIF_CIFValue(const aValue: String); + function GetNIF_CIFIsNull: Boolean; + procedure SetNIF_CIFIsNull(const aValue: Boolean); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetNOMBREIsNull: Boolean; + procedure SetNOMBREIsNull(const aValue: Boolean); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetCALLEIsNull: Boolean; + procedure SetCALLEIsNull(const aValue: Boolean); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPOBLACIONIsNull: Boolean; + procedure SetPOBLACIONIsNull(const aValue: Boolean); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetPROVINCIAIsNull: Boolean; + procedure SetPROVINCIAIsNull(const aValue: Boolean); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetCODIGO_POSTALIsNull: Boolean; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); + function GetTELEFONO_1Value: String; + procedure SetTELEFONO_1Value(const aValue: String); + function GetTELEFONO_1IsNull: Boolean; + procedure SetTELEFONO_1IsNull(const aValue: Boolean); + function GetTELEFONO_2Value: String; + procedure SetTELEFONO_2Value(const aValue: String); + function GetTELEFONO_2IsNull: Boolean; + procedure SetTELEFONO_2IsNull(const aValue: Boolean); + function GetMOVIL_1Value: String; + procedure SetMOVIL_1Value(const aValue: String); + function GetMOVIL_1IsNull: Boolean; + procedure SetMOVIL_1IsNull(const aValue: Boolean); + function GetMOVIL_2Value: String; + procedure SetMOVIL_2Value(const aValue: String); + function GetMOVIL_2IsNull: Boolean; + procedure SetMOVIL_2IsNull(const aValue: Boolean); + function GetFAXValue: String; + procedure SetFAXValue(const aValue: String); + function GetFAXIsNull: Boolean; + procedure SetFAXIsNull(const aValue: Boolean); + function GetEMAIL_1Value: String; + procedure SetEMAIL_1Value(const aValue: String); + function GetEMAIL_1IsNull: Boolean; + procedure SetEMAIL_1IsNull(const aValue: Boolean); + function GetEMAIL_2Value: String; + procedure SetEMAIL_2Value(const aValue: String); + function GetEMAIL_2IsNull: Boolean; + procedure SetEMAIL_2IsNull(const aValue: Boolean); + function GetPAGINA_WEBValue: String; + procedure SetPAGINA_WEBValue(const aValue: String); + function GetPAGINA_WEBIsNull: Boolean; + procedure SetPAGINA_WEBIsNull(const aValue: Boolean); + function GetNOTASValue: IROStrings; + function GetNOTASIsNull: Boolean; + procedure SetNOTASIsNull(const aValue: Boolean); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_ALTAIsNull: Boolean; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONIsNull: Boolean; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetUSUARIOIsNull: Boolean; + procedure SetUSUARIOIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetPERSONA_CONTACTOValue: String; + procedure SetPERSONA_CONTACTOValue(const aValue: String); + function GetPERSONA_CONTACTOIsNull: Boolean; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NIF_CIFIsNull: Boolean read GetNIF_CIFIsNull write SetNIF_CIFIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_1IsNull: Boolean read GetTELEFONO_1IsNull write SetTELEFONO_1IsNull; + property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property TELEFONO_2IsNull: Boolean read GetTELEFONO_2IsNull write SetTELEFONO_2IsNull; + property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_1IsNull: Boolean read GetMOVIL_1IsNull write SetMOVIL_1IsNull; + property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value; + property MOVIL_2IsNull: Boolean read GetMOVIL_2IsNull write SetMOVIL_2IsNull; + property FAX: String read GetFAXValue write SetFAXValue; + property FAXIsNull: Boolean read GetFAXIsNull write SetFAXIsNull; + property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_1IsNull: Boolean read GetEMAIL_1IsNull write SetEMAIL_1IsNull; + property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value; + property EMAIL_2IsNull: Boolean read GetEMAIL_2IsNull write SetEMAIL_2IsNull; + property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property PAGINA_WEBIsNull: Boolean read GetPAGINA_WEBIsNull write SetPAGINA_WEBIsNull; + property NOTAS: IROStrings read GetNOTASValue; + property NOTASIsNull: Boolean read GetNOTASIsNull write SetNOTASIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull: Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + end; + + { TContactos_RefreshDataTableRules } + TContactos_RefreshDataTableRules = class(TDADataTableRules, IContactos_Refresh) + private + f_NOTAS: IROStrings; + procedure NOTAS_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetNIF_CIFValue: String; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + function GetNIF_CIFIsNull: Boolean; virtual; + procedure SetNIF_CIFIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetCALLEIsNull: Boolean; virtual; + procedure SetCALLEIsNull(const aValue: Boolean); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPOBLACIONIsNull: Boolean; virtual; + procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetPROVINCIAIsNull: Boolean; virtual; + procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetCODIGO_POSTALIsNull: Boolean; virtual; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual; + function GetTELEFONO_1Value: String; virtual; + procedure SetTELEFONO_1Value(const aValue: String); virtual; + function GetTELEFONO_1IsNull: Boolean; virtual; + procedure SetTELEFONO_1IsNull(const aValue: Boolean); virtual; + function GetTELEFONO_2Value: String; virtual; + procedure SetTELEFONO_2Value(const aValue: String); virtual; + function GetTELEFONO_2IsNull: Boolean; virtual; + procedure SetTELEFONO_2IsNull(const aValue: Boolean); virtual; + function GetMOVIL_1Value: String; virtual; + procedure SetMOVIL_1Value(const aValue: String); virtual; + function GetMOVIL_1IsNull: Boolean; virtual; + procedure SetMOVIL_1IsNull(const aValue: Boolean); virtual; + function GetMOVIL_2Value: String; virtual; + procedure SetMOVIL_2Value(const aValue: String); virtual; + function GetMOVIL_2IsNull: Boolean; virtual; + procedure SetMOVIL_2IsNull(const aValue: Boolean); virtual; + function GetFAXValue: String; virtual; + procedure SetFAXValue(const aValue: String); virtual; + function GetFAXIsNull: Boolean; virtual; + procedure SetFAXIsNull(const aValue: Boolean); virtual; + function GetEMAIL_1Value: String; virtual; + procedure SetEMAIL_1Value(const aValue: String); virtual; + function GetEMAIL_1IsNull: Boolean; virtual; + procedure SetEMAIL_1IsNull(const aValue: Boolean); virtual; + function GetEMAIL_2Value: String; virtual; + procedure SetEMAIL_2Value(const aValue: String); virtual; + function GetEMAIL_2IsNull: Boolean; virtual; + procedure SetEMAIL_2IsNull(const aValue: Boolean); virtual; + function GetPAGINA_WEBValue: String; virtual; + procedure SetPAGINA_WEBValue(const aValue: String); virtual; + function GetPAGINA_WEBIsNull: Boolean; virtual; + procedure SetPAGINA_WEBIsNull(const aValue: Boolean); virtual; + function GetNOTASValue: IROStrings; virtual; + function GetNOTASIsNull: Boolean; virtual; + procedure SetNOTASIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + function GetPERSONA_CONTACTOIsNull: Boolean; virtual; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NIF_CIFIsNull: Boolean read GetNIF_CIFIsNull write SetNIF_CIFIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_1IsNull: Boolean read GetTELEFONO_1IsNull write SetTELEFONO_1IsNull; + property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property TELEFONO_2IsNull: Boolean read GetTELEFONO_2IsNull write SetTELEFONO_2IsNull; + property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_1IsNull: Boolean read GetMOVIL_1IsNull write SetMOVIL_1IsNull; + property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value; + property MOVIL_2IsNull: Boolean read GetMOVIL_2IsNull write SetMOVIL_2IsNull; + property FAX: String read GetFAXValue write SetFAXValue; + property FAXIsNull: Boolean read GetFAXIsNull write SetFAXIsNull; + property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_1IsNull: Boolean read GetEMAIL_1IsNull write SetEMAIL_1IsNull; + property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value; + property EMAIL_2IsNull: Boolean read GetEMAIL_2IsNull write SetEMAIL_2IsNull; + property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property PAGINA_WEBIsNull: Boolean read GetPAGINA_WEBIsNull write SetPAGINA_WEBIsNull; + property NOTAS: IROStrings read GetNOTASValue; + property NOTASIsNull: Boolean read GetNOTASIsNull write SetNOTASIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull: Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IContratosEmpleados } + IContratosEmpleados = interface(IDAStronglyTypedDataTable) + ['{C71461FF-81B8-4737-A3A4-346F882232C8}'] + { Property getters and setters } + function GetCONTRATOValue: String; + procedure SetCONTRATOValue(const aValue: String); + function GetCONTRATOIsNull: Boolean; + procedure SetCONTRATOIsNull(const aValue: Boolean); + + + { Properties } + property CONTRATO: String read GetCONTRATOValue write SetCONTRATOValue; + property CONTRATOIsNull: Boolean read GetCONTRATOIsNull write SetCONTRATOIsNull; + end; + + { TContratosEmpleadosDataTableRules } + TContratosEmpleadosDataTableRules = class(TDADataTableRules, IContratosEmpleados) + private + protected + { Property getters and setters } + function GetCONTRATOValue: String; virtual; + procedure SetCONTRATOValue(const aValue: String); virtual; + function GetCONTRATOIsNull: Boolean; virtual; + procedure SetCONTRATOIsNull(const aValue: Boolean); virtual; + + { Properties } + property CONTRATO: String read GetCONTRATOValue write SetCONTRATOValue; + property CONTRATOIsNull: Boolean read GetCONTRATOIsNull write SetCONTRATOIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IDescripcionesProveedores } + IDescripcionesProveedores = interface(IDAStronglyTypedDataTable) + ['{77679B6E-99EF-4BD1-8CAA-21096036D0E1}'] + { Property getters and setters } + function GetDESCRIPCION_PROVEEDORValue: String; + procedure SetDESCRIPCION_PROVEEDORValue(const aValue: String); + function GetDESCRIPCION_PROVEEDORIsNull: Boolean; + procedure SetDESCRIPCION_PROVEEDORIsNull(const aValue: Boolean); + + + { Properties } + property DESCRIPCION_PROVEEDOR: String read GetDESCRIPCION_PROVEEDORValue write SetDESCRIPCION_PROVEEDORValue; + property DESCRIPCION_PROVEEDORIsNull: Boolean read GetDESCRIPCION_PROVEEDORIsNull write SetDESCRIPCION_PROVEEDORIsNull; + end; + + { TDescripcionesProveedoresDataTableRules } + TDescripcionesProveedoresDataTableRules = class(TDADataTableRules, IDescripcionesProveedores) + private + protected + { Property getters and setters } + function GetDESCRIPCION_PROVEEDORValue: String; virtual; + procedure SetDESCRIPCION_PROVEEDORValue(const aValue: String); virtual; + function GetDESCRIPCION_PROVEEDORIsNull: Boolean; virtual; + procedure SetDESCRIPCION_PROVEEDORIsNull(const aValue: Boolean); virtual; + + { Properties } + property DESCRIPCION_PROVEEDOR: String read GetDESCRIPCION_PROVEEDORValue write SetDESCRIPCION_PROVEEDORValue; + property DESCRIPCION_PROVEEDORIsNull: Boolean read GetDESCRIPCION_PROVEEDORIsNull write SetDESCRIPCION_PROVEEDORIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IPersonalContacto } + IPersonalContacto = interface(IDAStronglyTypedDataTable) + ['{B07C08EE-8BAC-4548-B57C-76F885326F10}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_CONTACTOValue: Integer; + procedure SetID_CONTACTOValue(const aValue: Integer); + function GetID_CONTACTOIsNull: Boolean; + procedure SetID_CONTACTOIsNull(const aValue: Boolean); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetNOMBREIsNull: Boolean; + procedure SetNOMBREIsNull(const aValue: Boolean); + function GetPUESTOValue: String; + procedure SetPUESTOValue(const aValue: String); + function GetPUESTOIsNull: Boolean; + procedure SetPUESTOIsNull(const aValue: Boolean); + function GetTELEFONOValue: String; + procedure SetTELEFONOValue(const aValue: String); + function GetTELEFONOIsNull: Boolean; + procedure SetTELEFONOIsNull(const aValue: Boolean); + function GetMOVILValue: String; + procedure SetMOVILValue(const aValue: String); + function GetMOVILIsNull: Boolean; + procedure SetMOVILIsNull(const aValue: Boolean); + function GetFAXValue: String; + procedure SetFAXValue(const aValue: String); + function GetFAXIsNull: Boolean; + procedure SetFAXIsNull(const aValue: Boolean); + function GetEMAILValue: String; + procedure SetEMAILValue(const aValue: String); + function GetEMAILIsNull: Boolean; + procedure SetEMAILIsNull(const aValue: Boolean); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_ALTAIsNull: Boolean; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONIsNull: Boolean; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_CONTACTO: Integer read GetID_CONTACTOValue write SetID_CONTACTOValue; + property ID_CONTACTOIsNull: Boolean read GetID_CONTACTOIsNull write SetID_CONTACTOIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property PUESTO: String read GetPUESTOValue write SetPUESTOValue; + property PUESTOIsNull: Boolean read GetPUESTOIsNull write SetPUESTOIsNull; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property TELEFONOIsNull: Boolean read GetTELEFONOIsNull write SetTELEFONOIsNull; + property MOVIL: String read GetMOVILValue write SetMOVILValue; + property MOVILIsNull: Boolean read GetMOVILIsNull write SetMOVILIsNull; + property FAX: String read GetFAXValue write SetFAXValue; + property FAXIsNull: Boolean read GetFAXIsNull write SetFAXIsNull; + property EMAIL: String read GetEMAILValue write SetEMAILValue; + property EMAILIsNull: Boolean read GetEMAILIsNull write SetEMAILIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + end; + + { TPersonalContactoDataTableRules } + TPersonalContactoDataTableRules = class(TDADataTableRules, IPersonalContacto) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_CONTACTOValue: Integer; virtual; + procedure SetID_CONTACTOValue(const aValue: Integer); virtual; + function GetID_CONTACTOIsNull: Boolean; virtual; + procedure SetID_CONTACTOIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetPUESTOValue: String; virtual; + procedure SetPUESTOValue(const aValue: String); virtual; + function GetPUESTOIsNull: Boolean; virtual; + procedure SetPUESTOIsNull(const aValue: Boolean); virtual; + function GetTELEFONOValue: String; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + function GetTELEFONOIsNull: Boolean; virtual; + procedure SetTELEFONOIsNull(const aValue: Boolean); virtual; + function GetMOVILValue: String; virtual; + procedure SetMOVILValue(const aValue: String); virtual; + function GetMOVILIsNull: Boolean; virtual; + procedure SetMOVILIsNull(const aValue: Boolean); virtual; + function GetFAXValue: String; virtual; + procedure SetFAXValue(const aValue: String); virtual; + function GetFAXIsNull: Boolean; virtual; + procedure SetFAXIsNull(const aValue: Boolean); virtual; + function GetEMAILValue: String; virtual; + procedure SetEMAILValue(const aValue: String); virtual; + function GetEMAILIsNull: Boolean; virtual; + procedure SetEMAILIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_CONTACTO: Integer read GetID_CONTACTOValue write SetID_CONTACTOValue; + property ID_CONTACTOIsNull: Boolean read GetID_CONTACTOIsNull write SetID_CONTACTOIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property PUESTO: String read GetPUESTOValue write SetPUESTOValue; + property PUESTOIsNull: Boolean read GetPUESTOIsNull write SetPUESTOIsNull; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property TELEFONOIsNull: Boolean read GetTELEFONOIsNull write SetTELEFONOIsNull; + property MOVIL: String read GetMOVILValue write SetMOVILValue; + property MOVILIsNull: Boolean read GetMOVILIsNull write SetMOVILIsNull; + property FAX: String read GetFAXValue write SetFAXValue; + property FAXIsNull: Boolean read GetFAXIsNull write SetFAXIsNull; + property EMAIL: String read GetEMAILValue write SetEMAILValue; + property EMAILIsNull: Boolean read GetEMAILIsNull write SetEMAILIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IAgentes_Comisiones } + IAgentes_Comisiones = interface(IDAStronglyTypedDataTable) + ['{1396676A-6951-4D10-BF85-4D549F547492}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_AGENTEValue: Integer; + procedure SetID_AGENTEValue(const aValue: Integer); + function GetID_AGENTEIsNull: Boolean; + procedure SetID_AGENTEIsNull(const aValue: Boolean); + function GetID_PROVEEDORValue: SmallInt; + procedure SetID_PROVEEDORValue(const aValue: SmallInt); + function GetID_PROVEEDORIsNull: Boolean; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetNOMBREIsNull: Boolean; + procedure SetNOMBREIsNull(const aValue: Boolean); + function GetCOMISIONValue: Float; + procedure SetCOMISIONValue(const aValue: Float); + function GetCOMISIONIsNull: Boolean; + procedure SetCOMISIONIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_AGENTE: Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property ID_AGENTEIsNull: Boolean read GetID_AGENTEIsNull write SetID_AGENTEIsNull; + property ID_PROVEEDOR: SmallInt read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property COMISION: Float read GetCOMISIONValue write SetCOMISIONValue; + property COMISIONIsNull: Boolean read GetCOMISIONIsNull write SetCOMISIONIsNull; + end; + + { TAgentes_ComisionesDataTableRules } + TAgentes_ComisionesDataTableRules = class(TDADataTableRules, IAgentes_Comisiones) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_AGENTEValue: Integer; virtual; + procedure SetID_AGENTEValue(const aValue: Integer); virtual; + function GetID_AGENTEIsNull: Boolean; virtual; + procedure SetID_AGENTEIsNull(const aValue: Boolean); virtual; + function GetID_PROVEEDORValue: SmallInt; virtual; + procedure SetID_PROVEEDORValue(const aValue: SmallInt); virtual; + function GetID_PROVEEDORIsNull: Boolean; virtual; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetCOMISIONValue: Float; virtual; + procedure SetCOMISIONValue(const aValue: Float); virtual; + function GetCOMISIONIsNull: Boolean; virtual; + procedure SetCOMISIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_AGENTE: Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property ID_AGENTEIsNull: Boolean read GetID_AGENTEIsNull write SetID_AGENTEIsNull; + property ID_PROVEEDOR: SmallInt read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property COMISION: Float read GetCOMISIONValue write SetCOMISIONValue; + property COMISIONIsNull: Boolean read GetCOMISIONIsNull write SetCOMISIONIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IAgentes } + IAgentes = interface(IDAStronglyTypedDataTable) + ['{0AC6B3A1-8F53-4387-9A75-AAFD330DF895}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_CATEGORIAValue: Integer; + procedure SetID_CATEGORIAValue(const aValue: Integer); + function GetID_CATEGORIAIsNull: Boolean; + procedure SetID_CATEGORIAIsNull(const aValue: Boolean); + function GetNIF_CIFValue: String; + procedure SetNIF_CIFValue(const aValue: String); + function GetNIF_CIFIsNull: Boolean; + procedure SetNIF_CIFIsNull(const aValue: Boolean); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetNOMBREIsNull: Boolean; + procedure SetNOMBREIsNull(const aValue: Boolean); + function GetPERSONA_CONTACTOValue: String; + procedure SetPERSONA_CONTACTOValue(const aValue: String); + function GetPERSONA_CONTACTOIsNull: Boolean; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetCALLEIsNull: Boolean; + procedure SetCALLEIsNull(const aValue: Boolean); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPOBLACIONIsNull: Boolean; + procedure SetPOBLACIONIsNull(const aValue: Boolean); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetPROVINCIAIsNull: Boolean; + procedure SetPROVINCIAIsNull(const aValue: Boolean); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetCODIGO_POSTALIsNull: Boolean; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); + function GetTELEFONO_1Value: String; + procedure SetTELEFONO_1Value(const aValue: String); + function GetTELEFONO_1IsNull: Boolean; + procedure SetTELEFONO_1IsNull(const aValue: Boolean); + function GetTELEFONO_2Value: String; + procedure SetTELEFONO_2Value(const aValue: String); + function GetTELEFONO_2IsNull: Boolean; + procedure SetTELEFONO_2IsNull(const aValue: Boolean); + function GetMOVIL_1Value: String; + procedure SetMOVIL_1Value(const aValue: String); + function GetMOVIL_1IsNull: Boolean; + procedure SetMOVIL_1IsNull(const aValue: Boolean); + function GetMOVIL_2Value: String; + procedure SetMOVIL_2Value(const aValue: String); + function GetMOVIL_2IsNull: Boolean; + procedure SetMOVIL_2IsNull(const aValue: Boolean); + function GetFAXValue: String; + procedure SetFAXValue(const aValue: String); + function GetFAXIsNull: Boolean; + procedure SetFAXIsNull(const aValue: Boolean); + function GetEMAIL_1Value: String; + procedure SetEMAIL_1Value(const aValue: String); + function GetEMAIL_1IsNull: Boolean; + procedure SetEMAIL_1IsNull(const aValue: Boolean); + function GetEMAIL_2Value: String; + procedure SetEMAIL_2Value(const aValue: String); + function GetEMAIL_2IsNull: Boolean; + procedure SetEMAIL_2IsNull(const aValue: Boolean); + function GetPAGINA_WEBValue: String; + procedure SetPAGINA_WEBValue(const aValue: String); + function GetPAGINA_WEBIsNull: Boolean; + procedure SetPAGINA_WEBIsNull(const aValue: Boolean); + function GetNOTASValue: IROStrings; + function GetNOTASIsNull: Boolean; + procedure SetNOTASIsNull(const aValue: Boolean); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_ALTAIsNull: Boolean; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONIsNull: Boolean; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetUSUARIOIsNull: Boolean; + procedure SetUSUARIOIsNull(const aValue: Boolean); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_EMPRESAIsNull: Boolean; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetFECHA_ALTA_EMPRESAValue: DateTime; + procedure SetFECHA_ALTA_EMPRESAValue(const aValue: DateTime); + function GetFECHA_ALTA_EMPRESAIsNull: Boolean; + procedure SetFECHA_ALTA_EMPRESAIsNull(const aValue: Boolean); + function GetFECHA_BAJAValue: DateTime; + procedure SetFECHA_BAJAValue(const aValue: DateTime); + function GetFECHA_BAJAIsNull: Boolean; + procedure SetFECHA_BAJAIsNull(const aValue: Boolean); + function GetCAUSA_BAJAValue: String; + procedure SetCAUSA_BAJAValue(const aValue: String); + function GetCAUSA_BAJAIsNull: Boolean; + procedure SetCAUSA_BAJAIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_CATEGORIA: Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue; + property ID_CATEGORIAIsNull: Boolean read GetID_CATEGORIAIsNull write SetID_CATEGORIAIsNull; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NIF_CIFIsNull: Boolean read GetNIF_CIFIsNull write SetNIF_CIFIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull: Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_1IsNull: Boolean read GetTELEFONO_1IsNull write SetTELEFONO_1IsNull; + property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property TELEFONO_2IsNull: Boolean read GetTELEFONO_2IsNull write SetTELEFONO_2IsNull; + property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_1IsNull: Boolean read GetMOVIL_1IsNull write SetMOVIL_1IsNull; + property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value; + property MOVIL_2IsNull: Boolean read GetMOVIL_2IsNull write SetMOVIL_2IsNull; + property FAX: String read GetFAXValue write SetFAXValue; + property FAXIsNull: Boolean read GetFAXIsNull write SetFAXIsNull; + property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_1IsNull: Boolean read GetEMAIL_1IsNull write SetEMAIL_1IsNull; + property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value; + property EMAIL_2IsNull: Boolean read GetEMAIL_2IsNull write SetEMAIL_2IsNull; + property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property PAGINA_WEBIsNull: Boolean read GetPAGINA_WEBIsNull write SetPAGINA_WEBIsNull; + property NOTAS: IROStrings read GetNOTASValue; + property NOTASIsNull: Boolean read GetNOTASIsNull write SetNOTASIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property FECHA_ALTA_EMPRESA: DateTime read GetFECHA_ALTA_EMPRESAValue write SetFECHA_ALTA_EMPRESAValue; + property FECHA_ALTA_EMPRESAIsNull: Boolean read GetFECHA_ALTA_EMPRESAIsNull write SetFECHA_ALTA_EMPRESAIsNull; + property FECHA_BAJA: DateTime read GetFECHA_BAJAValue write SetFECHA_BAJAValue; + property FECHA_BAJAIsNull: Boolean read GetFECHA_BAJAIsNull write SetFECHA_BAJAIsNull; + property CAUSA_BAJA: String read GetCAUSA_BAJAValue write SetCAUSA_BAJAValue; + property CAUSA_BAJAIsNull: Boolean read GetCAUSA_BAJAIsNull write SetCAUSA_BAJAIsNull; + end; + + { TAgentesDataTableRules } + TAgentesDataTableRules = class(TDADataTableRules, IAgentes) + private + f_NOTAS: IROStrings; + procedure NOTAS_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_CATEGORIAValue: Integer; virtual; + procedure SetID_CATEGORIAValue(const aValue: Integer); virtual; + function GetID_CATEGORIAIsNull: Boolean; virtual; + procedure SetID_CATEGORIAIsNull(const aValue: Boolean); virtual; + function GetNIF_CIFValue: String; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + function GetNIF_CIFIsNull: Boolean; virtual; + procedure SetNIF_CIFIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + function GetPERSONA_CONTACTOIsNull: Boolean; virtual; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetCALLEIsNull: Boolean; virtual; + procedure SetCALLEIsNull(const aValue: Boolean); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPOBLACIONIsNull: Boolean; virtual; + procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetPROVINCIAIsNull: Boolean; virtual; + procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetCODIGO_POSTALIsNull: Boolean; virtual; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual; + function GetTELEFONO_1Value: String; virtual; + procedure SetTELEFONO_1Value(const aValue: String); virtual; + function GetTELEFONO_1IsNull: Boolean; virtual; + procedure SetTELEFONO_1IsNull(const aValue: Boolean); virtual; + function GetTELEFONO_2Value: String; virtual; + procedure SetTELEFONO_2Value(const aValue: String); virtual; + function GetTELEFONO_2IsNull: Boolean; virtual; + procedure SetTELEFONO_2IsNull(const aValue: Boolean); virtual; + function GetMOVIL_1Value: String; virtual; + procedure SetMOVIL_1Value(const aValue: String); virtual; + function GetMOVIL_1IsNull: Boolean; virtual; + procedure SetMOVIL_1IsNull(const aValue: Boolean); virtual; + function GetMOVIL_2Value: String; virtual; + procedure SetMOVIL_2Value(const aValue: String); virtual; + function GetMOVIL_2IsNull: Boolean; virtual; + procedure SetMOVIL_2IsNull(const aValue: Boolean); virtual; + function GetFAXValue: String; virtual; + procedure SetFAXValue(const aValue: String); virtual; + function GetFAXIsNull: Boolean; virtual; + procedure SetFAXIsNull(const aValue: Boolean); virtual; + function GetEMAIL_1Value: String; virtual; + procedure SetEMAIL_1Value(const aValue: String); virtual; + function GetEMAIL_1IsNull: Boolean; virtual; + procedure SetEMAIL_1IsNull(const aValue: Boolean); virtual; + function GetEMAIL_2Value: String; virtual; + procedure SetEMAIL_2Value(const aValue: String); virtual; + function GetEMAIL_2IsNull: Boolean; virtual; + procedure SetEMAIL_2IsNull(const aValue: Boolean); virtual; + function GetPAGINA_WEBValue: String; virtual; + procedure SetPAGINA_WEBValue(const aValue: String); virtual; + function GetPAGINA_WEBIsNull: Boolean; virtual; + procedure SetPAGINA_WEBIsNull(const aValue: Boolean); virtual; + function GetNOTASValue: IROStrings; virtual; + function GetNOTASIsNull: Boolean; virtual; + procedure SetNOTASIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTA_EMPRESAValue: DateTime; virtual; + procedure SetFECHA_ALTA_EMPRESAValue(const aValue: DateTime); virtual; + function GetFECHA_ALTA_EMPRESAIsNull: Boolean; virtual; + procedure SetFECHA_ALTA_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetFECHA_BAJAValue: DateTime; virtual; + procedure SetFECHA_BAJAValue(const aValue: DateTime); virtual; + function GetFECHA_BAJAIsNull: Boolean; virtual; + procedure SetFECHA_BAJAIsNull(const aValue: Boolean); virtual; + function GetCAUSA_BAJAValue: String; virtual; + procedure SetCAUSA_BAJAValue(const aValue: String); virtual; + function GetCAUSA_BAJAIsNull: Boolean; virtual; + procedure SetCAUSA_BAJAIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_CATEGORIA: Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue; + property ID_CATEGORIAIsNull: Boolean read GetID_CATEGORIAIsNull write SetID_CATEGORIAIsNull; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NIF_CIFIsNull: Boolean read GetNIF_CIFIsNull write SetNIF_CIFIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull: Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_1IsNull: Boolean read GetTELEFONO_1IsNull write SetTELEFONO_1IsNull; + property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property TELEFONO_2IsNull: Boolean read GetTELEFONO_2IsNull write SetTELEFONO_2IsNull; + property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_1IsNull: Boolean read GetMOVIL_1IsNull write SetMOVIL_1IsNull; + property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value; + property MOVIL_2IsNull: Boolean read GetMOVIL_2IsNull write SetMOVIL_2IsNull; + property FAX: String read GetFAXValue write SetFAXValue; + property FAXIsNull: Boolean read GetFAXIsNull write SetFAXIsNull; + property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_1IsNull: Boolean read GetEMAIL_1IsNull write SetEMAIL_1IsNull; + property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value; + property EMAIL_2IsNull: Boolean read GetEMAIL_2IsNull write SetEMAIL_2IsNull; + property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property PAGINA_WEBIsNull: Boolean read GetPAGINA_WEBIsNull write SetPAGINA_WEBIsNull; + property NOTAS: IROStrings read GetNOTASValue; + property NOTASIsNull: Boolean read GetNOTASIsNull write SetNOTASIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property FECHA_ALTA_EMPRESA: DateTime read GetFECHA_ALTA_EMPRESAValue write SetFECHA_ALTA_EMPRESAValue; + property FECHA_ALTA_EMPRESAIsNull: Boolean read GetFECHA_ALTA_EMPRESAIsNull write SetFECHA_ALTA_EMPRESAIsNull; + property FECHA_BAJA: DateTime read GetFECHA_BAJAValue write SetFECHA_BAJAValue; + property FECHA_BAJAIsNull: Boolean read GetFECHA_BAJAIsNull write SetFECHA_BAJAIsNull; + property CAUSA_BAJA: String read GetCAUSA_BAJAValue write SetCAUSA_BAJAValue; + property CAUSA_BAJAIsNull: Boolean read GetCAUSA_BAJAIsNull write SetCAUSA_BAJAIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants, uROBinaryHelpers; + +{ TContactosDataTableRules } +constructor TContactosDataTableRules.Create(aDataTable: TDADataTable); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := NOTAS_OnChange; + f_NOTAS := NewROStrings(StrList,True); +end; + +destructor TContactosDataTableRules.Destroy; +begin + inherited; +end; + +procedure TContactosDataTableRules.NOTAS_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_ContactosNOTAS].AsVariant := TStringList(Sender).Text; +end; + +function TContactosDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_ContactosID].AsInteger; +end; + +procedure TContactosDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_ContactosID].AsInteger := aValue; +end; + +function TContactosDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_ContactosID].IsNull; +end; + +procedure TContactosDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ContactosID].AsVariant := Null; +end; + +function TContactosDataTableRules.GetID_CATEGORIAValue: Integer; +begin + result := DataTable.Fields[idx_ContactosID_CATEGORIA].AsInteger; +end; + +procedure TContactosDataTableRules.SetID_CATEGORIAValue(const aValue: Integer); +begin + DataTable.Fields[idx_ContactosID_CATEGORIA].AsInteger := aValue; +end; + +function TContactosDataTableRules.GetID_CATEGORIAIsNull: boolean; +begin + result := DataTable.Fields[idx_ContactosID_CATEGORIA].IsNull; +end; + +procedure TContactosDataTableRules.SetID_CATEGORIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ContactosID_CATEGORIA].AsVariant := Null; +end; + +function TContactosDataTableRules.GetNIF_CIFValue: String; +begin + result := DataTable.Fields[idx_ContactosNIF_CIF].AsString; +end; + +procedure TContactosDataTableRules.SetNIF_CIFValue(const aValue: String); +begin + DataTable.Fields[idx_ContactosNIF_CIF].AsString := aValue; +end; + +function TContactosDataTableRules.GetNIF_CIFIsNull: boolean; +begin + result := DataTable.Fields[idx_ContactosNIF_CIF].IsNull; +end; + +procedure TContactosDataTableRules.SetNIF_CIFIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ContactosNIF_CIF].AsVariant := Null; +end; + +function TContactosDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_ContactosNOMBRE].AsString; +end; + +procedure TContactosDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_ContactosNOMBRE].AsString := aValue; +end; + +function TContactosDataTableRules.GetNOMBREIsNull: boolean; +begin + result := DataTable.Fields[idx_ContactosNOMBRE].IsNull; +end; + +procedure TContactosDataTableRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ContactosNOMBRE].AsVariant := Null; +end; + +function TContactosDataTableRules.GetPERSONA_CONTACTOValue: String; +begin + result := DataTable.Fields[idx_ContactosPERSONA_CONTACTO].AsString; +end; + +procedure TContactosDataTableRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + DataTable.Fields[idx_ContactosPERSONA_CONTACTO].AsString := aValue; +end; + +function TContactosDataTableRules.GetPERSONA_CONTACTOIsNull: boolean; +begin + result := DataTable.Fields[idx_ContactosPERSONA_CONTACTO].IsNull; +end; + +procedure TContactosDataTableRules.SetPERSONA_CONTACTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ContactosPERSONA_CONTACTO].AsVariant := Null; +end; + +function TContactosDataTableRules.GetCALLEValue: String; +begin + result := DataTable.Fields[idx_ContactosCALLE].AsString; +end; + +procedure TContactosDataTableRules.SetCALLEValue(const aValue: String); +begin + DataTable.Fields[idx_ContactosCALLE].AsString := aValue; +end; + +function TContactosDataTableRules.GetCALLEIsNull: boolean; +begin + result := DataTable.Fields[idx_ContactosCALLE].IsNull; +end; + +procedure TContactosDataTableRules.SetCALLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ContactosCALLE].AsVariant := Null; +end; + +function TContactosDataTableRules.GetPOBLACIONValue: String; +begin + result := DataTable.Fields[idx_ContactosPOBLACION].AsString; +end; + +procedure TContactosDataTableRules.SetPOBLACIONValue(const aValue: String); +begin + DataTable.Fields[idx_ContactosPOBLACION].AsString := aValue; +end; + +function TContactosDataTableRules.GetPOBLACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_ContactosPOBLACION].IsNull; +end; + +procedure TContactosDataTableRules.SetPOBLACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ContactosPOBLACION].AsVariant := Null; +end; + +function TContactosDataTableRules.GetPROVINCIAValue: String; +begin + result := DataTable.Fields[idx_ContactosPROVINCIA].AsString; +end; + +procedure TContactosDataTableRules.SetPROVINCIAValue(const aValue: String); +begin + DataTable.Fields[idx_ContactosPROVINCIA].AsString := aValue; +end; + +function TContactosDataTableRules.GetPROVINCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_ContactosPROVINCIA].IsNull; +end; + +procedure TContactosDataTableRules.SetPROVINCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ContactosPROVINCIA].AsVariant := Null; +end; + +function TContactosDataTableRules.GetCODIGO_POSTALValue: String; +begin + result := DataTable.Fields[idx_ContactosCODIGO_POSTAL].AsString; +end; + +procedure TContactosDataTableRules.SetCODIGO_POSTALValue(const aValue: String); +begin + DataTable.Fields[idx_ContactosCODIGO_POSTAL].AsString := aValue; +end; + +function TContactosDataTableRules.GetCODIGO_POSTALIsNull: boolean; +begin + result := DataTable.Fields[idx_ContactosCODIGO_POSTAL].IsNull; +end; + +procedure TContactosDataTableRules.SetCODIGO_POSTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ContactosCODIGO_POSTAL].AsVariant := Null; +end; + +function TContactosDataTableRules.GetTELEFONO_1Value: String; +begin + result := DataTable.Fields[idx_ContactosTELEFONO_1].AsString; +end; + +procedure TContactosDataTableRules.SetTELEFONO_1Value(const aValue: String); +begin + DataTable.Fields[idx_ContactosTELEFONO_1].AsString := aValue; +end; + +function TContactosDataTableRules.GetTELEFONO_1IsNull: boolean; +begin + result := DataTable.Fields[idx_ContactosTELEFONO_1].IsNull; +end; + +procedure TContactosDataTableRules.SetTELEFONO_1IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ContactosTELEFONO_1].AsVariant := Null; +end; + +function TContactosDataTableRules.GetTELEFONO_2Value: String; +begin + result := DataTable.Fields[idx_ContactosTELEFONO_2].AsString; +end; + +procedure TContactosDataTableRules.SetTELEFONO_2Value(const aValue: String); +begin + DataTable.Fields[idx_ContactosTELEFONO_2].AsString := aValue; +end; + +function TContactosDataTableRules.GetTELEFONO_2IsNull: boolean; +begin + result := DataTable.Fields[idx_ContactosTELEFONO_2].IsNull; +end; + +procedure TContactosDataTableRules.SetTELEFONO_2IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ContactosTELEFONO_2].AsVariant := Null; +end; + +function TContactosDataTableRules.GetMOVIL_1Value: String; +begin + result := DataTable.Fields[idx_ContactosMOVIL_1].AsString; +end; + +procedure TContactosDataTableRules.SetMOVIL_1Value(const aValue: String); +begin + DataTable.Fields[idx_ContactosMOVIL_1].AsString := aValue; +end; + +function TContactosDataTableRules.GetMOVIL_1IsNull: boolean; +begin + result := DataTable.Fields[idx_ContactosMOVIL_1].IsNull; +end; + +procedure TContactosDataTableRules.SetMOVIL_1IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ContactosMOVIL_1].AsVariant := Null; +end; + +function TContactosDataTableRules.GetMOVIL_2Value: String; +begin + result := DataTable.Fields[idx_ContactosMOVIL_2].AsString; +end; + +procedure TContactosDataTableRules.SetMOVIL_2Value(const aValue: String); +begin + DataTable.Fields[idx_ContactosMOVIL_2].AsString := aValue; +end; + +function TContactosDataTableRules.GetMOVIL_2IsNull: boolean; +begin + result := DataTable.Fields[idx_ContactosMOVIL_2].IsNull; +end; + +procedure TContactosDataTableRules.SetMOVIL_2IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ContactosMOVIL_2].AsVariant := Null; +end; + +function TContactosDataTableRules.GetFAXValue: String; +begin + result := DataTable.Fields[idx_ContactosFAX].AsString; +end; + +procedure TContactosDataTableRules.SetFAXValue(const aValue: String); +begin + DataTable.Fields[idx_ContactosFAX].AsString := aValue; +end; + +function TContactosDataTableRules.GetFAXIsNull: boolean; +begin + result := DataTable.Fields[idx_ContactosFAX].IsNull; +end; + +procedure TContactosDataTableRules.SetFAXIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ContactosFAX].AsVariant := Null; +end; + +function TContactosDataTableRules.GetEMAIL_1Value: String; +begin + result := DataTable.Fields[idx_ContactosEMAIL_1].AsString; +end; + +procedure TContactosDataTableRules.SetEMAIL_1Value(const aValue: String); +begin + DataTable.Fields[idx_ContactosEMAIL_1].AsString := aValue; +end; + +function TContactosDataTableRules.GetEMAIL_1IsNull: boolean; +begin + result := DataTable.Fields[idx_ContactosEMAIL_1].IsNull; +end; + +procedure TContactosDataTableRules.SetEMAIL_1IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ContactosEMAIL_1].AsVariant := Null; +end; + +function TContactosDataTableRules.GetEMAIL_2Value: String; +begin + result := DataTable.Fields[idx_ContactosEMAIL_2].AsString; +end; + +procedure TContactosDataTableRules.SetEMAIL_2Value(const aValue: String); +begin + DataTable.Fields[idx_ContactosEMAIL_2].AsString := aValue; +end; + +function TContactosDataTableRules.GetEMAIL_2IsNull: boolean; +begin + result := DataTable.Fields[idx_ContactosEMAIL_2].IsNull; +end; + +procedure TContactosDataTableRules.SetEMAIL_2IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ContactosEMAIL_2].AsVariant := Null; +end; + +function TContactosDataTableRules.GetPAGINA_WEBValue: String; +begin + result := DataTable.Fields[idx_ContactosPAGINA_WEB].AsString; +end; + +procedure TContactosDataTableRules.SetPAGINA_WEBValue(const aValue: String); +begin + DataTable.Fields[idx_ContactosPAGINA_WEB].AsString := aValue; +end; + +function TContactosDataTableRules.GetPAGINA_WEBIsNull: boolean; +begin + result := DataTable.Fields[idx_ContactosPAGINA_WEB].IsNull; +end; + +procedure TContactosDataTableRules.SetPAGINA_WEBIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ContactosPAGINA_WEB].AsVariant := Null; +end; + +function TContactosDataTableRules.GetNOTASValue: IROStrings; +begin + result := f_NOTAS; + result.Text := DataTable.Fields[idx_ContactosNOTAS].AsString; +end; + +function TContactosDataTableRules.GetNOTASIsNull: boolean; +begin + result := DataTable.Fields[idx_ContactosNOTAS].IsNull; +end; + +procedure TContactosDataTableRules.SetNOTASIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ContactosNOTAS].AsVariant := Null; +end; + +function TContactosDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_ContactosFECHA_ALTA].AsDateTime; +end; + +procedure TContactosDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_ContactosFECHA_ALTA].AsDateTime := aValue; +end; + +function TContactosDataTableRules.GetFECHA_ALTAIsNull: boolean; +begin + result := DataTable.Fields[idx_ContactosFECHA_ALTA].IsNull; +end; + +procedure TContactosDataTableRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ContactosFECHA_ALTA].AsVariant := Null; +end; + +function TContactosDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_ContactosFECHA_MODIFICACION].AsDateTime; +end; + +procedure TContactosDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_ContactosFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TContactosDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_ContactosFECHA_MODIFICACION].IsNull; +end; + +procedure TContactosDataTableRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ContactosFECHA_MODIFICACION].AsVariant := Null; +end; + +function TContactosDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_ContactosUSUARIO].AsString; +end; + +procedure TContactosDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_ContactosUSUARIO].AsString := aValue; +end; + +function TContactosDataTableRules.GetUSUARIOIsNull: boolean; +begin + result := DataTable.Fields[idx_ContactosUSUARIO].IsNull; +end; + +procedure TContactosDataTableRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ContactosUSUARIO].AsVariant := Null; +end; + +function TContactosDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_ContactosID_EMPRESA].AsInteger; +end; + +procedure TContactosDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_ContactosID_EMPRESA].AsInteger := aValue; +end; + +function TContactosDataTableRules.GetID_EMPRESAIsNull: boolean; +begin + result := DataTable.Fields[idx_ContactosID_EMPRESA].IsNull; +end; + +procedure TContactosDataTableRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ContactosID_EMPRESA].AsVariant := Null; +end; + +function TContactosDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_ContactosREFERENCIA].AsString; +end; + +procedure TContactosDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_ContactosREFERENCIA].AsString := aValue; +end; + +function TContactosDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_ContactosREFERENCIA].IsNull; +end; + +procedure TContactosDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ContactosREFERENCIA].AsVariant := Null; +end; + + +{ TGruposClienteDataTableRules } +constructor TGruposClienteDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TGruposClienteDataTableRules.Destroy; +begin + inherited; +end; + +function TGruposClienteDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_GruposClienteID].AsInteger; +end; + +procedure TGruposClienteDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_GruposClienteID].AsInteger := aValue; +end; + +function TGruposClienteDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_GruposClienteID].IsNull; +end; + +procedure TGruposClienteDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_GruposClienteID].AsVariant := Null; +end; + +function TGruposClienteDataTableRules.GetDESCRIPCIONValue: String; +begin + result := DataTable.Fields[idx_GruposClienteDESCRIPCION].AsString; +end; + +procedure TGruposClienteDataTableRules.SetDESCRIPCIONValue(const aValue: String); +begin + DataTable.Fields[idx_GruposClienteDESCRIPCION].AsString := aValue; +end; + +function TGruposClienteDataTableRules.GetDESCRIPCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_GruposClienteDESCRIPCION].IsNull; +end; + +procedure TGruposClienteDataTableRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_GruposClienteDESCRIPCION].AsVariant := Null; +end; + + +{ TDatosBancariosDataTableRules } +constructor TDatosBancariosDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TDatosBancariosDataTableRules.Destroy; +begin + inherited; +end; + +function TDatosBancariosDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_DatosBancariosID].AsInteger; +end; + +procedure TDatosBancariosDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_DatosBancariosID].AsInteger := aValue; +end; + +function TDatosBancariosDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_DatosBancariosID].IsNull; +end; + +procedure TDatosBancariosDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DatosBancariosID].AsVariant := Null; +end; + +function TDatosBancariosDataTableRules.GetID_CONTACTOValue: Integer; +begin + result := DataTable.Fields[idx_DatosBancariosID_CONTACTO].AsInteger; +end; + +procedure TDatosBancariosDataTableRules.SetID_CONTACTOValue(const aValue: Integer); +begin + DataTable.Fields[idx_DatosBancariosID_CONTACTO].AsInteger := aValue; +end; + +function TDatosBancariosDataTableRules.GetID_CONTACTOIsNull: boolean; +begin + result := DataTable.Fields[idx_DatosBancariosID_CONTACTO].IsNull; +end; + +procedure TDatosBancariosDataTableRules.SetID_CONTACTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DatosBancariosID_CONTACTO].AsVariant := Null; +end; + +function TDatosBancariosDataTableRules.GetTITULARValue: String; +begin + result := DataTable.Fields[idx_DatosBancariosTITULAR].AsString; +end; + +procedure TDatosBancariosDataTableRules.SetTITULARValue(const aValue: String); +begin + DataTable.Fields[idx_DatosBancariosTITULAR].AsString := aValue; +end; + +function TDatosBancariosDataTableRules.GetTITULARIsNull: boolean; +begin + result := DataTable.Fields[idx_DatosBancariosTITULAR].IsNull; +end; + +procedure TDatosBancariosDataTableRules.SetTITULARIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DatosBancariosTITULAR].AsVariant := Null; +end; + +function TDatosBancariosDataTableRules.GetENTIDADValue: String; +begin + result := DataTable.Fields[idx_DatosBancariosENTIDAD].AsString; +end; + +procedure TDatosBancariosDataTableRules.SetENTIDADValue(const aValue: String); +begin + DataTable.Fields[idx_DatosBancariosENTIDAD].AsString := aValue; +end; + +function TDatosBancariosDataTableRules.GetENTIDADIsNull: boolean; +begin + result := DataTable.Fields[idx_DatosBancariosENTIDAD].IsNull; +end; + +procedure TDatosBancariosDataTableRules.SetENTIDADIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DatosBancariosENTIDAD].AsVariant := Null; +end; + +function TDatosBancariosDataTableRules.GetSUCURSALValue: String; +begin + result := DataTable.Fields[idx_DatosBancariosSUCURSAL].AsString; +end; + +procedure TDatosBancariosDataTableRules.SetSUCURSALValue(const aValue: String); +begin + DataTable.Fields[idx_DatosBancariosSUCURSAL].AsString := aValue; +end; + +function TDatosBancariosDataTableRules.GetSUCURSALIsNull: boolean; +begin + result := DataTable.Fields[idx_DatosBancariosSUCURSAL].IsNull; +end; + +procedure TDatosBancariosDataTableRules.SetSUCURSALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DatosBancariosSUCURSAL].AsVariant := Null; +end; + +function TDatosBancariosDataTableRules.GetDCValue: String; +begin + result := DataTable.Fields[idx_DatosBancariosDC].AsString; +end; + +procedure TDatosBancariosDataTableRules.SetDCValue(const aValue: String); +begin + DataTable.Fields[idx_DatosBancariosDC].AsString := aValue; +end; + +function TDatosBancariosDataTableRules.GetDCIsNull: boolean; +begin + result := DataTable.Fields[idx_DatosBancariosDC].IsNull; +end; + +procedure TDatosBancariosDataTableRules.SetDCIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DatosBancariosDC].AsVariant := Null; +end; + +function TDatosBancariosDataTableRules.GetCUENTAValue: String; +begin + result := DataTable.Fields[idx_DatosBancariosCUENTA].AsString; +end; + +procedure TDatosBancariosDataTableRules.SetCUENTAValue(const aValue: String); +begin + DataTable.Fields[idx_DatosBancariosCUENTA].AsString := aValue; +end; + +function TDatosBancariosDataTableRules.GetCUENTAIsNull: boolean; +begin + result := DataTable.Fields[idx_DatosBancariosCUENTA].IsNull; +end; + +procedure TDatosBancariosDataTableRules.SetCUENTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DatosBancariosCUENTA].AsVariant := Null; +end; + +function TDatosBancariosDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_DatosBancariosFECHA_ALTA].AsDateTime; +end; + +procedure TDatosBancariosDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_DatosBancariosFECHA_ALTA].AsDateTime := aValue; +end; + +function TDatosBancariosDataTableRules.GetFECHA_ALTAIsNull: boolean; +begin + result := DataTable.Fields[idx_DatosBancariosFECHA_ALTA].IsNull; +end; + +procedure TDatosBancariosDataTableRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DatosBancariosFECHA_ALTA].AsVariant := Null; +end; + +function TDatosBancariosDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_DatosBancariosFECHA_MODIFICACION].AsDateTime; +end; + +procedure TDatosBancariosDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_DatosBancariosFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TDatosBancariosDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_DatosBancariosFECHA_MODIFICACION].IsNull; +end; + +procedure TDatosBancariosDataTableRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DatosBancariosFECHA_MODIFICACION].AsVariant := Null; +end; + + +{ TClientesDataTableRules } +constructor TClientesDataTableRules.Create(aDataTable: TDADataTable); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := NOTAS_OnChange; + f_NOTAS := NewROStrings(StrList,True); +end; + +destructor TClientesDataTableRules.Destroy; +begin + inherited; +end; + +procedure TClientesDataTableRules.NOTAS_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_ClientesNOTAS].AsVariant := TStringList(Sender).Text; +end; + +function TClientesDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_ClientesID].AsInteger; +end; + +procedure TClientesDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_ClientesID].AsInteger := aValue; +end; + +function TClientesDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesID].IsNull; +end; + +procedure TClientesDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesID].AsVariant := Null; +end; + +function TClientesDataTableRules.GetID_CATEGORIAValue: Integer; +begin + result := DataTable.Fields[idx_ClientesID_CATEGORIA].AsInteger; +end; + +procedure TClientesDataTableRules.SetID_CATEGORIAValue(const aValue: Integer); +begin + DataTable.Fields[idx_ClientesID_CATEGORIA].AsInteger := aValue; +end; + +function TClientesDataTableRules.GetID_CATEGORIAIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesID_CATEGORIA].IsNull; +end; + +procedure TClientesDataTableRules.SetID_CATEGORIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesID_CATEGORIA].AsVariant := Null; +end; + +function TClientesDataTableRules.GetNIF_CIFValue: String; +begin + result := DataTable.Fields[idx_ClientesNIF_CIF].AsString; +end; + +procedure TClientesDataTableRules.SetNIF_CIFValue(const aValue: String); +begin + DataTable.Fields[idx_ClientesNIF_CIF].AsString := aValue; +end; + +function TClientesDataTableRules.GetNIF_CIFIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesNIF_CIF].IsNull; +end; + +procedure TClientesDataTableRules.SetNIF_CIFIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesNIF_CIF].AsVariant := Null; +end; + +function TClientesDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_ClientesNOMBRE].AsString; +end; + +procedure TClientesDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_ClientesNOMBRE].AsString := aValue; +end; + +function TClientesDataTableRules.GetNOMBREIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesNOMBRE].IsNull; +end; + +procedure TClientesDataTableRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesNOMBRE].AsVariant := Null; +end; + +function TClientesDataTableRules.GetPERSONA_CONTACTOValue: String; +begin + result := DataTable.Fields[idx_ClientesPERSONA_CONTACTO].AsString; +end; + +procedure TClientesDataTableRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + DataTable.Fields[idx_ClientesPERSONA_CONTACTO].AsString := aValue; +end; + +function TClientesDataTableRules.GetPERSONA_CONTACTOIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesPERSONA_CONTACTO].IsNull; +end; + +procedure TClientesDataTableRules.SetPERSONA_CONTACTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesPERSONA_CONTACTO].AsVariant := Null; +end; + +function TClientesDataTableRules.GetCALLEValue: String; +begin + result := DataTable.Fields[idx_ClientesCALLE].AsString; +end; + +procedure TClientesDataTableRules.SetCALLEValue(const aValue: String); +begin + DataTable.Fields[idx_ClientesCALLE].AsString := aValue; +end; + +function TClientesDataTableRules.GetCALLEIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesCALLE].IsNull; +end; + +procedure TClientesDataTableRules.SetCALLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesCALLE].AsVariant := Null; +end; + +function TClientesDataTableRules.GetPOBLACIONValue: String; +begin + result := DataTable.Fields[idx_ClientesPOBLACION].AsString; +end; + +procedure TClientesDataTableRules.SetPOBLACIONValue(const aValue: String); +begin + DataTable.Fields[idx_ClientesPOBLACION].AsString := aValue; +end; + +function TClientesDataTableRules.GetPOBLACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesPOBLACION].IsNull; +end; + +procedure TClientesDataTableRules.SetPOBLACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesPOBLACION].AsVariant := Null; +end; + +function TClientesDataTableRules.GetPROVINCIAValue: String; +begin + result := DataTable.Fields[idx_ClientesPROVINCIA].AsString; +end; + +procedure TClientesDataTableRules.SetPROVINCIAValue(const aValue: String); +begin + DataTable.Fields[idx_ClientesPROVINCIA].AsString := aValue; +end; + +function TClientesDataTableRules.GetPROVINCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesPROVINCIA].IsNull; +end; + +procedure TClientesDataTableRules.SetPROVINCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesPROVINCIA].AsVariant := Null; +end; + +function TClientesDataTableRules.GetCODIGO_POSTALValue: String; +begin + result := DataTable.Fields[idx_ClientesCODIGO_POSTAL].AsString; +end; + +procedure TClientesDataTableRules.SetCODIGO_POSTALValue(const aValue: String); +begin + DataTable.Fields[idx_ClientesCODIGO_POSTAL].AsString := aValue; +end; + +function TClientesDataTableRules.GetCODIGO_POSTALIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesCODIGO_POSTAL].IsNull; +end; + +procedure TClientesDataTableRules.SetCODIGO_POSTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesCODIGO_POSTAL].AsVariant := Null; +end; + +function TClientesDataTableRules.GetTELEFONO_1Value: String; +begin + result := DataTable.Fields[idx_ClientesTELEFONO_1].AsString; +end; + +procedure TClientesDataTableRules.SetTELEFONO_1Value(const aValue: String); +begin + DataTable.Fields[idx_ClientesTELEFONO_1].AsString := aValue; +end; + +function TClientesDataTableRules.GetTELEFONO_1IsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesTELEFONO_1].IsNull; +end; + +procedure TClientesDataTableRules.SetTELEFONO_1IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesTELEFONO_1].AsVariant := Null; +end; + +function TClientesDataTableRules.GetTELEFONO_2Value: String; +begin + result := DataTable.Fields[idx_ClientesTELEFONO_2].AsString; +end; + +procedure TClientesDataTableRules.SetTELEFONO_2Value(const aValue: String); +begin + DataTable.Fields[idx_ClientesTELEFONO_2].AsString := aValue; +end; + +function TClientesDataTableRules.GetTELEFONO_2IsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesTELEFONO_2].IsNull; +end; + +procedure TClientesDataTableRules.SetTELEFONO_2IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesTELEFONO_2].AsVariant := Null; +end; + +function TClientesDataTableRules.GetMOVIL_1Value: String; +begin + result := DataTable.Fields[idx_ClientesMOVIL_1].AsString; +end; + +procedure TClientesDataTableRules.SetMOVIL_1Value(const aValue: String); +begin + DataTable.Fields[idx_ClientesMOVIL_1].AsString := aValue; +end; + +function TClientesDataTableRules.GetMOVIL_1IsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesMOVIL_1].IsNull; +end; + +procedure TClientesDataTableRules.SetMOVIL_1IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesMOVIL_1].AsVariant := Null; +end; + +function TClientesDataTableRules.GetMOVIL_2Value: String; +begin + result := DataTable.Fields[idx_ClientesMOVIL_2].AsString; +end; + +procedure TClientesDataTableRules.SetMOVIL_2Value(const aValue: String); +begin + DataTable.Fields[idx_ClientesMOVIL_2].AsString := aValue; +end; + +function TClientesDataTableRules.GetMOVIL_2IsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesMOVIL_2].IsNull; +end; + +procedure TClientesDataTableRules.SetMOVIL_2IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesMOVIL_2].AsVariant := Null; +end; + +function TClientesDataTableRules.GetFAXValue: String; +begin + result := DataTable.Fields[idx_ClientesFAX].AsString; +end; + +procedure TClientesDataTableRules.SetFAXValue(const aValue: String); +begin + DataTable.Fields[idx_ClientesFAX].AsString := aValue; +end; + +function TClientesDataTableRules.GetFAXIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesFAX].IsNull; +end; + +procedure TClientesDataTableRules.SetFAXIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesFAX].AsVariant := Null; +end; + +function TClientesDataTableRules.GetEMAIL_1Value: String; +begin + result := DataTable.Fields[idx_ClientesEMAIL_1].AsString; +end; + +procedure TClientesDataTableRules.SetEMAIL_1Value(const aValue: String); +begin + DataTable.Fields[idx_ClientesEMAIL_1].AsString := aValue; +end; + +function TClientesDataTableRules.GetEMAIL_1IsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesEMAIL_1].IsNull; +end; + +procedure TClientesDataTableRules.SetEMAIL_1IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesEMAIL_1].AsVariant := Null; +end; + +function TClientesDataTableRules.GetEMAIL_2Value: String; +begin + result := DataTable.Fields[idx_ClientesEMAIL_2].AsString; +end; + +procedure TClientesDataTableRules.SetEMAIL_2Value(const aValue: String); +begin + DataTable.Fields[idx_ClientesEMAIL_2].AsString := aValue; +end; + +function TClientesDataTableRules.GetEMAIL_2IsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesEMAIL_2].IsNull; +end; + +procedure TClientesDataTableRules.SetEMAIL_2IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesEMAIL_2].AsVariant := Null; +end; + +function TClientesDataTableRules.GetPAGINA_WEBValue: String; +begin + result := DataTable.Fields[idx_ClientesPAGINA_WEB].AsString; +end; + +procedure TClientesDataTableRules.SetPAGINA_WEBValue(const aValue: String); +begin + DataTable.Fields[idx_ClientesPAGINA_WEB].AsString := aValue; +end; + +function TClientesDataTableRules.GetPAGINA_WEBIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesPAGINA_WEB].IsNull; +end; + +procedure TClientesDataTableRules.SetPAGINA_WEBIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesPAGINA_WEB].AsVariant := Null; +end; + +function TClientesDataTableRules.GetNOTASValue: IROStrings; +begin + result := f_NOTAS; + result.Text := DataTable.Fields[idx_ClientesNOTAS].AsString; +end; + +function TClientesDataTableRules.GetNOTASIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesNOTAS].IsNull; +end; + +procedure TClientesDataTableRules.SetNOTASIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesNOTAS].AsVariant := Null; +end; + +function TClientesDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_ClientesFECHA_ALTA].AsDateTime; +end; + +procedure TClientesDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_ClientesFECHA_ALTA].AsDateTime := aValue; +end; + +function TClientesDataTableRules.GetFECHA_ALTAIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesFECHA_ALTA].IsNull; +end; + +procedure TClientesDataTableRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesFECHA_ALTA].AsVariant := Null; +end; + +function TClientesDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_ClientesFECHA_MODIFICACION].AsDateTime; +end; + +procedure TClientesDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_ClientesFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TClientesDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesFECHA_MODIFICACION].IsNull; +end; + +procedure TClientesDataTableRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesFECHA_MODIFICACION].AsVariant := Null; +end; + +function TClientesDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_ClientesUSUARIO].AsString; +end; + +procedure TClientesDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_ClientesUSUARIO].AsString := aValue; +end; + +function TClientesDataTableRules.GetUSUARIOIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesUSUARIO].IsNull; +end; + +procedure TClientesDataTableRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesUSUARIO].AsVariant := Null; +end; + +function TClientesDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_ClientesID_EMPRESA].AsInteger; +end; + +procedure TClientesDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_ClientesID_EMPRESA].AsInteger := aValue; +end; + +function TClientesDataTableRules.GetID_EMPRESAIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesID_EMPRESA].IsNull; +end; + +procedure TClientesDataTableRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesID_EMPRESA].AsVariant := Null; +end; + +function TClientesDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_ClientesREFERENCIA].AsString; +end; + +procedure TClientesDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_ClientesREFERENCIA].AsString := aValue; +end; + +function TClientesDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesREFERENCIA].IsNull; +end; + +procedure TClientesDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesREFERENCIA].AsVariant := Null; +end; + +function TClientesDataTableRules.GetID_AGENTEValue: Integer; +begin + result := DataTable.Fields[idx_ClientesID_AGENTE].AsInteger; +end; + +procedure TClientesDataTableRules.SetID_AGENTEValue(const aValue: Integer); +begin + DataTable.Fields[idx_ClientesID_AGENTE].AsInteger := aValue; +end; + +function TClientesDataTableRules.GetID_AGENTEIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesID_AGENTE].IsNull; +end; + +procedure TClientesDataTableRules.SetID_AGENTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesID_AGENTE].AsVariant := Null; +end; + +function TClientesDataTableRules.GetGRUPO_CLIENTEValue: String; +begin + result := DataTable.Fields[idx_ClientesGRUPO_CLIENTE].AsString; +end; + +procedure TClientesDataTableRules.SetGRUPO_CLIENTEValue(const aValue: String); +begin + DataTable.Fields[idx_ClientesGRUPO_CLIENTE].AsString := aValue; +end; + +function TClientesDataTableRules.GetGRUPO_CLIENTEIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesGRUPO_CLIENTE].IsNull; +end; + +procedure TClientesDataTableRules.SetGRUPO_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesGRUPO_CLIENTE].AsVariant := Null; +end; + +function TClientesDataTableRules.GetNOMBRE_COMERCIALValue: String; +begin + result := DataTable.Fields[idx_ClientesNOMBRE_COMERCIAL].AsString; +end; + +procedure TClientesDataTableRules.SetNOMBRE_COMERCIALValue(const aValue: String); +begin + DataTable.Fields[idx_ClientesNOMBRE_COMERCIAL].AsString := aValue; +end; + +function TClientesDataTableRules.GetNOMBRE_COMERCIALIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesNOMBRE_COMERCIAL].IsNull; +end; + +procedure TClientesDataTableRules.SetNOMBRE_COMERCIALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesNOMBRE_COMERCIAL].AsVariant := Null; +end; + +function TClientesDataTableRules.GetVENCIMIENTO_FACTURAS_1Value: SmallInt; +begin + result := DataTable.Fields[idx_ClientesVENCIMIENTO_FACTURAS_1].AsSmallInt; +end; + +procedure TClientesDataTableRules.SetVENCIMIENTO_FACTURAS_1Value(const aValue: SmallInt); +begin + DataTable.Fields[idx_ClientesVENCIMIENTO_FACTURAS_1].AsSmallInt := aValue; +end; + +function TClientesDataTableRules.GetVENCIMIENTO_FACTURAS_1IsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesVENCIMIENTO_FACTURAS_1].IsNull; +end; + +procedure TClientesDataTableRules.SetVENCIMIENTO_FACTURAS_1IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesVENCIMIENTO_FACTURAS_1].AsVariant := Null; +end; + +function TClientesDataTableRules.GetVENCIMIENTO_FACTURAS_2Value: SmallInt; +begin + result := DataTable.Fields[idx_ClientesVENCIMIENTO_FACTURAS_2].AsSmallInt; +end; + +procedure TClientesDataTableRules.SetVENCIMIENTO_FACTURAS_2Value(const aValue: SmallInt); +begin + DataTable.Fields[idx_ClientesVENCIMIENTO_FACTURAS_2].AsSmallInt := aValue; +end; + +function TClientesDataTableRules.GetVENCIMIENTO_FACTURAS_2IsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesVENCIMIENTO_FACTURAS_2].IsNull; +end; + +procedure TClientesDataTableRules.SetVENCIMIENTO_FACTURAS_2IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesVENCIMIENTO_FACTURAS_2].AsVariant := Null; +end; + +function TClientesDataTableRules.GetVENCIMIENTO_FACTURAS_3Value: SmallInt; +begin + result := DataTable.Fields[idx_ClientesVENCIMIENTO_FACTURAS_3].AsSmallInt; +end; + +procedure TClientesDataTableRules.SetVENCIMIENTO_FACTURAS_3Value(const aValue: SmallInt); +begin + DataTable.Fields[idx_ClientesVENCIMIENTO_FACTURAS_3].AsSmallInt := aValue; +end; + +function TClientesDataTableRules.GetVENCIMIENTO_FACTURAS_3IsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesVENCIMIENTO_FACTURAS_3].IsNull; +end; + +procedure TClientesDataTableRules.SetVENCIMIENTO_FACTURAS_3IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesVENCIMIENTO_FACTURAS_3].AsVariant := Null; +end; + +function TClientesDataTableRules.GetBLOQUEADOValue: SmallInt; +begin + result := DataTable.Fields[idx_ClientesBLOQUEADO].AsSmallInt; +end; + +procedure TClientesDataTableRules.SetBLOQUEADOValue(const aValue: SmallInt); +begin + DataTable.Fields[idx_ClientesBLOQUEADO].AsSmallInt := aValue; +end; + +function TClientesDataTableRules.GetBLOQUEADOIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesBLOQUEADO].IsNull; +end; + +procedure TClientesDataTableRules.SetBLOQUEADOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesBLOQUEADO].AsVariant := Null; +end; + +function TClientesDataTableRules.GetAGENTEValue: String; +begin + result := DataTable.Fields[idx_ClientesAGENTE].AsString; +end; + +procedure TClientesDataTableRules.SetAGENTEValue(const aValue: String); +begin + DataTable.Fields[idx_ClientesAGENTE].AsString := aValue; +end; + +function TClientesDataTableRules.GetAGENTEIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesAGENTE].IsNull; +end; + +procedure TClientesDataTableRules.SetAGENTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesAGENTE].AsVariant := Null; +end; + +function TClientesDataTableRules.GetRAPELValue: SmallInt; +begin + result := DataTable.Fields[idx_ClientesRAPEL].AsSmallInt; +end; + +procedure TClientesDataTableRules.SetRAPELValue(const aValue: SmallInt); +begin + DataTable.Fields[idx_ClientesRAPEL].AsSmallInt := aValue; +end; + +function TClientesDataTableRules.GetRAPELIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesRAPEL].IsNull; +end; + +procedure TClientesDataTableRules.SetRAPELIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesRAPEL].AsVariant := Null; +end; + +function TClientesDataTableRules.GetEMAIL_ADMINISTRACIONValue: String; +begin + result := DataTable.Fields[idx_ClientesEMAIL_ADMINISTRACION].AsString; +end; + +procedure TClientesDataTableRules.SetEMAIL_ADMINISTRACIONValue(const aValue: String); +begin + DataTable.Fields[idx_ClientesEMAIL_ADMINISTRACION].AsString := aValue; +end; + +function TClientesDataTableRules.GetEMAIL_ADMINISTRACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesEMAIL_ADMINISTRACION].IsNull; +end; + +procedure TClientesDataTableRules.SetEMAIL_ADMINISTRACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesEMAIL_ADMINISTRACION].AsVariant := Null; +end; + +function TClientesDataTableRules.GetREGIMEN_IVAValue: String; +begin + result := DataTable.Fields[idx_ClientesREGIMEN_IVA].AsString; +end; + +procedure TClientesDataTableRules.SetREGIMEN_IVAValue(const aValue: String); +begin + DataTable.Fields[idx_ClientesREGIMEN_IVA].AsString := aValue; +end; + +function TClientesDataTableRules.GetREGIMEN_IVAIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesREGIMEN_IVA].IsNull; +end; + +procedure TClientesDataTableRules.SetREGIMEN_IVAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesREGIMEN_IVA].AsVariant := Null; +end; + +function TClientesDataTableRules.GetMOTIVO_BLOQUEOValue: String; +begin + result := DataTable.Fields[idx_ClientesMOTIVO_BLOQUEO].AsString; +end; + +procedure TClientesDataTableRules.SetMOTIVO_BLOQUEOValue(const aValue: String); +begin + DataTable.Fields[idx_ClientesMOTIVO_BLOQUEO].AsString := aValue; +end; + +function TClientesDataTableRules.GetMOTIVO_BLOQUEOIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesMOTIVO_BLOQUEO].IsNull; +end; + +procedure TClientesDataTableRules.SetMOTIVO_BLOQUEOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesMOTIVO_BLOQUEO].AsVariant := Null; +end; + +function TClientesDataTableRules.GetRECARGO_EQUIVALENCIAValue: Integer; +begin + result := DataTable.Fields[idx_ClientesRECARGO_EQUIVALENCIA].AsInteger; +end; + +procedure TClientesDataTableRules.SetRECARGO_EQUIVALENCIAValue(const aValue: Integer); +begin + DataTable.Fields[idx_ClientesRECARGO_EQUIVALENCIA].AsInteger := aValue; +end; + +function TClientesDataTableRules.GetRECARGO_EQUIVALENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesRECARGO_EQUIVALENCIA].IsNull; +end; + +procedure TClientesDataTableRules.SetRECARGO_EQUIVALENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesRECARGO_EQUIVALENCIA].AsVariant := Null; +end; + +function TClientesDataTableRules.GetID_TIPO_IVAValue: Integer; +begin + result := DataTable.Fields[idx_ClientesID_TIPO_IVA].AsInteger; +end; + +procedure TClientesDataTableRules.SetID_TIPO_IVAValue(const aValue: Integer); +begin + DataTable.Fields[idx_ClientesID_TIPO_IVA].AsInteger := aValue; +end; + +function TClientesDataTableRules.GetID_TIPO_IVAIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesID_TIPO_IVA].IsNull; +end; + +procedure TClientesDataTableRules.SetID_TIPO_IVAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesID_TIPO_IVA].AsVariant := Null; +end; + +function TClientesDataTableRules.GetID_FORMA_PAGOValue: Integer; +begin + result := DataTable.Fields[idx_ClientesID_FORMA_PAGO].AsInteger; +end; + +procedure TClientesDataTableRules.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + DataTable.Fields[idx_ClientesID_FORMA_PAGO].AsInteger := aValue; +end; + +function TClientesDataTableRules.GetID_FORMA_PAGOIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesID_FORMA_PAGO].IsNull; +end; + +procedure TClientesDataTableRules.SetID_FORMA_PAGOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesID_FORMA_PAGO].AsVariant := Null; +end; + +function TClientesDataTableRules.GetTIENDA_WEBValue: SmallInt; +begin + result := DataTable.Fields[idx_ClientesTIENDA_WEB].AsSmallInt; +end; + +procedure TClientesDataTableRules.SetTIENDA_WEBValue(const aValue: SmallInt); +begin + DataTable.Fields[idx_ClientesTIENDA_WEB].AsSmallInt := aValue; +end; + +function TClientesDataTableRules.GetTIENDA_WEBIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesTIENDA_WEB].IsNull; +end; + +procedure TClientesDataTableRules.SetTIENDA_WEBIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesTIENDA_WEB].AsVariant := Null; +end; + +function TClientesDataTableRules.GetCODIGO_ASIGNADOValue: String; +begin + result := DataTable.Fields[idx_ClientesCODIGO_ASIGNADO].AsString; +end; + +procedure TClientesDataTableRules.SetCODIGO_ASIGNADOValue(const aValue: String); +begin + DataTable.Fields[idx_ClientesCODIGO_ASIGNADO].AsString := aValue; +end; + +function TClientesDataTableRules.GetCODIGO_ASIGNADOIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesCODIGO_ASIGNADO].IsNull; +end; + +procedure TClientesDataTableRules.SetCODIGO_ASIGNADOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesCODIGO_ASIGNADO].AsVariant := Null; +end; + +function TClientesDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_ClientesDESCUENTO].AsFloat; +end; + +procedure TClientesDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_ClientesDESCUENTO].AsFloat := aValue; +end; + +function TClientesDataTableRules.GetDESCUENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesDESCUENTO].IsNull; +end; + +procedure TClientesDataTableRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesDESCUENTO].AsVariant := Null; +end; + +function TClientesDataTableRules.GetFELICITACIONValue: SmallInt; +begin + result := DataTable.Fields[idx_ClientesFELICITACION].AsSmallInt; +end; + +procedure TClientesDataTableRules.SetFELICITACIONValue(const aValue: SmallInt); +begin + DataTable.Fields[idx_ClientesFELICITACION].AsSmallInt := aValue; +end; + +function TClientesDataTableRules.GetFELICITACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesFELICITACION].IsNull; +end; + +procedure TClientesDataTableRules.SetFELICITACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesFELICITACION].AsVariant := Null; +end; + + +{ TProveedoresDataTableRules } +constructor TProveedoresDataTableRules.Create(aDataTable: TDADataTable); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := NOTAS_OnChange; + f_NOTAS := NewROStrings(StrList,True); +end; + +destructor TProveedoresDataTableRules.Destroy; +begin + inherited; +end; + +procedure TProveedoresDataTableRules.NOTAS_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_ProveedoresNOTAS].AsVariant := TStringList(Sender).Text; +end; + +function TProveedoresDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_ProveedoresID].AsInteger; +end; + +procedure TProveedoresDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_ProveedoresID].AsInteger := aValue; +end; + +function TProveedoresDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresID].IsNull; +end; + +procedure TProveedoresDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresID].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetID_CATEGORIAValue: Integer; +begin + result := DataTable.Fields[idx_ProveedoresID_CATEGORIA].AsInteger; +end; + +procedure TProveedoresDataTableRules.SetID_CATEGORIAValue(const aValue: Integer); +begin + DataTable.Fields[idx_ProveedoresID_CATEGORIA].AsInteger := aValue; +end; + +function TProveedoresDataTableRules.GetID_CATEGORIAIsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresID_CATEGORIA].IsNull; +end; + +procedure TProveedoresDataTableRules.SetID_CATEGORIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresID_CATEGORIA].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetNIF_CIFValue: String; +begin + result := DataTable.Fields[idx_ProveedoresNIF_CIF].AsString; +end; + +procedure TProveedoresDataTableRules.SetNIF_CIFValue(const aValue: String); +begin + DataTable.Fields[idx_ProveedoresNIF_CIF].AsString := aValue; +end; + +function TProveedoresDataTableRules.GetNIF_CIFIsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresNIF_CIF].IsNull; +end; + +procedure TProveedoresDataTableRules.SetNIF_CIFIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresNIF_CIF].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_ProveedoresNOMBRE].AsString; +end; + +procedure TProveedoresDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_ProveedoresNOMBRE].AsString := aValue; +end; + +function TProveedoresDataTableRules.GetNOMBREIsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresNOMBRE].IsNull; +end; + +procedure TProveedoresDataTableRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresNOMBRE].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetPERSONA_CONTACTOValue: String; +begin + result := DataTable.Fields[idx_ProveedoresPERSONA_CONTACTO].AsString; +end; + +procedure TProveedoresDataTableRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + DataTable.Fields[idx_ProveedoresPERSONA_CONTACTO].AsString := aValue; +end; + +function TProveedoresDataTableRules.GetPERSONA_CONTACTOIsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresPERSONA_CONTACTO].IsNull; +end; + +procedure TProveedoresDataTableRules.SetPERSONA_CONTACTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresPERSONA_CONTACTO].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetCALLEValue: String; +begin + result := DataTable.Fields[idx_ProveedoresCALLE].AsString; +end; + +procedure TProveedoresDataTableRules.SetCALLEValue(const aValue: String); +begin + DataTable.Fields[idx_ProveedoresCALLE].AsString := aValue; +end; + +function TProveedoresDataTableRules.GetCALLEIsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresCALLE].IsNull; +end; + +procedure TProveedoresDataTableRules.SetCALLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresCALLE].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetPOBLACIONValue: String; +begin + result := DataTable.Fields[idx_ProveedoresPOBLACION].AsString; +end; + +procedure TProveedoresDataTableRules.SetPOBLACIONValue(const aValue: String); +begin + DataTable.Fields[idx_ProveedoresPOBLACION].AsString := aValue; +end; + +function TProveedoresDataTableRules.GetPOBLACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresPOBLACION].IsNull; +end; + +procedure TProveedoresDataTableRules.SetPOBLACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresPOBLACION].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetPROVINCIAValue: String; +begin + result := DataTable.Fields[idx_ProveedoresPROVINCIA].AsString; +end; + +procedure TProveedoresDataTableRules.SetPROVINCIAValue(const aValue: String); +begin + DataTable.Fields[idx_ProveedoresPROVINCIA].AsString := aValue; +end; + +function TProveedoresDataTableRules.GetPROVINCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresPROVINCIA].IsNull; +end; + +procedure TProveedoresDataTableRules.SetPROVINCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresPROVINCIA].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetCODIGO_POSTALValue: String; +begin + result := DataTable.Fields[idx_ProveedoresCODIGO_POSTAL].AsString; +end; + +procedure TProveedoresDataTableRules.SetCODIGO_POSTALValue(const aValue: String); +begin + DataTable.Fields[idx_ProveedoresCODIGO_POSTAL].AsString := aValue; +end; + +function TProveedoresDataTableRules.GetCODIGO_POSTALIsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresCODIGO_POSTAL].IsNull; +end; + +procedure TProveedoresDataTableRules.SetCODIGO_POSTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresCODIGO_POSTAL].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetTELEFONO_1Value: String; +begin + result := DataTable.Fields[idx_ProveedoresTELEFONO_1].AsString; +end; + +procedure TProveedoresDataTableRules.SetTELEFONO_1Value(const aValue: String); +begin + DataTable.Fields[idx_ProveedoresTELEFONO_1].AsString := aValue; +end; + +function TProveedoresDataTableRules.GetTELEFONO_1IsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresTELEFONO_1].IsNull; +end; + +procedure TProveedoresDataTableRules.SetTELEFONO_1IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresTELEFONO_1].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetTELEFONO_2Value: String; +begin + result := DataTable.Fields[idx_ProveedoresTELEFONO_2].AsString; +end; + +procedure TProveedoresDataTableRules.SetTELEFONO_2Value(const aValue: String); +begin + DataTable.Fields[idx_ProveedoresTELEFONO_2].AsString := aValue; +end; + +function TProveedoresDataTableRules.GetTELEFONO_2IsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresTELEFONO_2].IsNull; +end; + +procedure TProveedoresDataTableRules.SetTELEFONO_2IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresTELEFONO_2].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetMOVIL_1Value: String; +begin + result := DataTable.Fields[idx_ProveedoresMOVIL_1].AsString; +end; + +procedure TProveedoresDataTableRules.SetMOVIL_1Value(const aValue: String); +begin + DataTable.Fields[idx_ProveedoresMOVIL_1].AsString := aValue; +end; + +function TProveedoresDataTableRules.GetMOVIL_1IsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresMOVIL_1].IsNull; +end; + +procedure TProveedoresDataTableRules.SetMOVIL_1IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresMOVIL_1].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetMOVIL_2Value: String; +begin + result := DataTable.Fields[idx_ProveedoresMOVIL_2].AsString; +end; + +procedure TProveedoresDataTableRules.SetMOVIL_2Value(const aValue: String); +begin + DataTable.Fields[idx_ProveedoresMOVIL_2].AsString := aValue; +end; + +function TProveedoresDataTableRules.GetMOVIL_2IsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresMOVIL_2].IsNull; +end; + +procedure TProveedoresDataTableRules.SetMOVIL_2IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresMOVIL_2].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetFAXValue: String; +begin + result := DataTable.Fields[idx_ProveedoresFAX].AsString; +end; + +procedure TProveedoresDataTableRules.SetFAXValue(const aValue: String); +begin + DataTable.Fields[idx_ProveedoresFAX].AsString := aValue; +end; + +function TProveedoresDataTableRules.GetFAXIsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresFAX].IsNull; +end; + +procedure TProveedoresDataTableRules.SetFAXIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresFAX].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetEMAIL_1Value: String; +begin + result := DataTable.Fields[idx_ProveedoresEMAIL_1].AsString; +end; + +procedure TProveedoresDataTableRules.SetEMAIL_1Value(const aValue: String); +begin + DataTable.Fields[idx_ProveedoresEMAIL_1].AsString := aValue; +end; + +function TProveedoresDataTableRules.GetEMAIL_1IsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresEMAIL_1].IsNull; +end; + +procedure TProveedoresDataTableRules.SetEMAIL_1IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresEMAIL_1].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetEMAIL_2Value: String; +begin + result := DataTable.Fields[idx_ProveedoresEMAIL_2].AsString; +end; + +procedure TProveedoresDataTableRules.SetEMAIL_2Value(const aValue: String); +begin + DataTable.Fields[idx_ProveedoresEMAIL_2].AsString := aValue; +end; + +function TProveedoresDataTableRules.GetEMAIL_2IsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresEMAIL_2].IsNull; +end; + +procedure TProveedoresDataTableRules.SetEMAIL_2IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresEMAIL_2].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetPAGINA_WEBValue: String; +begin + result := DataTable.Fields[idx_ProveedoresPAGINA_WEB].AsString; +end; + +procedure TProveedoresDataTableRules.SetPAGINA_WEBValue(const aValue: String); +begin + DataTable.Fields[idx_ProveedoresPAGINA_WEB].AsString := aValue; +end; + +function TProveedoresDataTableRules.GetPAGINA_WEBIsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresPAGINA_WEB].IsNull; +end; + +procedure TProveedoresDataTableRules.SetPAGINA_WEBIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresPAGINA_WEB].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetNOTASValue: IROStrings; +begin + result := f_NOTAS; + result.Text := DataTable.Fields[idx_ProveedoresNOTAS].AsString; +end; + +function TProveedoresDataTableRules.GetNOTASIsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresNOTAS].IsNull; +end; + +procedure TProveedoresDataTableRules.SetNOTASIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresNOTAS].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_ProveedoresFECHA_ALTA].AsDateTime; +end; + +procedure TProveedoresDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_ProveedoresFECHA_ALTA].AsDateTime := aValue; +end; + +function TProveedoresDataTableRules.GetFECHA_ALTAIsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresFECHA_ALTA].IsNull; +end; + +procedure TProveedoresDataTableRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresFECHA_ALTA].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_ProveedoresFECHA_MODIFICACION].AsDateTime; +end; + +procedure TProveedoresDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_ProveedoresFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TProveedoresDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresFECHA_MODIFICACION].IsNull; +end; + +procedure TProveedoresDataTableRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresFECHA_MODIFICACION].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_ProveedoresUSUARIO].AsString; +end; + +procedure TProveedoresDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_ProveedoresUSUARIO].AsString := aValue; +end; + +function TProveedoresDataTableRules.GetUSUARIOIsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresUSUARIO].IsNull; +end; + +procedure TProveedoresDataTableRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresUSUARIO].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_ProveedoresID_EMPRESA].AsInteger; +end; + +procedure TProveedoresDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_ProveedoresID_EMPRESA].AsInteger := aValue; +end; + +function TProveedoresDataTableRules.GetID_EMPRESAIsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresID_EMPRESA].IsNull; +end; + +procedure TProveedoresDataTableRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresID_EMPRESA].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_ProveedoresREFERENCIA].AsString; +end; + +procedure TProveedoresDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_ProveedoresREFERENCIA].AsString := aValue; +end; + +function TProveedoresDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresREFERENCIA].IsNull; +end; + +procedure TProveedoresDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresREFERENCIA].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_ProveedoresDESCUENTO].AsFloat; +end; + +procedure TProveedoresDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_ProveedoresDESCUENTO].AsFloat := aValue; +end; + +function TProveedoresDataTableRules.GetDESCUENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresDESCUENTO].IsNull; +end; + +procedure TProveedoresDataTableRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresDESCUENTO].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetDESCRIPCION_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_ProveedoresDESCRIPCION_PROVEEDOR].AsString; +end; + +procedure TProveedoresDataTableRules.SetDESCRIPCION_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_ProveedoresDESCRIPCION_PROVEEDOR].AsString := aValue; +end; + +function TProveedoresDataTableRules.GetDESCRIPCION_PROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresDESCRIPCION_PROVEEDOR].IsNull; +end; + +procedure TProveedoresDataTableRules.SetDESCRIPCION_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresDESCRIPCION_PROVEEDOR].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetCODIGO_ASIGNADOValue: String; +begin + result := DataTable.Fields[idx_ProveedoresCODIGO_ASIGNADO].AsString; +end; + +procedure TProveedoresDataTableRules.SetCODIGO_ASIGNADOValue(const aValue: String); +begin + DataTable.Fields[idx_ProveedoresCODIGO_ASIGNADO].AsString := aValue; +end; + +function TProveedoresDataTableRules.GetCODIGO_ASIGNADOIsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresCODIGO_ASIGNADO].IsNull; +end; + +procedure TProveedoresDataTableRules.SetCODIGO_ASIGNADOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresCODIGO_ASIGNADO].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetGRUPO_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_ProveedoresGRUPO_PROVEEDOR].AsString; +end; + +procedure TProveedoresDataTableRules.SetGRUPO_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_ProveedoresGRUPO_PROVEEDOR].AsString := aValue; +end; + +function TProveedoresDataTableRules.GetGRUPO_PROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresGRUPO_PROVEEDOR].IsNull; +end; + +procedure TProveedoresDataTableRules.SetGRUPO_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresGRUPO_PROVEEDOR].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetREGIMEN_IVAValue: String; +begin + result := DataTable.Fields[idx_ProveedoresREGIMEN_IVA].AsString; +end; + +procedure TProveedoresDataTableRules.SetREGIMEN_IVAValue(const aValue: String); +begin + DataTable.Fields[idx_ProveedoresREGIMEN_IVA].AsString := aValue; +end; + +function TProveedoresDataTableRules.GetREGIMEN_IVAIsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresREGIMEN_IVA].IsNull; +end; + +procedure TProveedoresDataTableRules.SetREGIMEN_IVAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresREGIMEN_IVA].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetID_TIPO_IVAValue: Integer; +begin + result := DataTable.Fields[idx_ProveedoresID_TIPO_IVA].AsInteger; +end; + +procedure TProveedoresDataTableRules.SetID_TIPO_IVAValue(const aValue: Integer); +begin + DataTable.Fields[idx_ProveedoresID_TIPO_IVA].AsInteger := aValue; +end; + +function TProveedoresDataTableRules.GetID_TIPO_IVAIsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresID_TIPO_IVA].IsNull; +end; + +procedure TProveedoresDataTableRules.SetID_TIPO_IVAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresID_TIPO_IVA].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetID_FORMA_PAGOValue: Integer; +begin + result := DataTable.Fields[idx_ProveedoresID_FORMA_PAGO].AsInteger; +end; + +procedure TProveedoresDataTableRules.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + DataTable.Fields[idx_ProveedoresID_FORMA_PAGO].AsInteger := aValue; +end; + +function TProveedoresDataTableRules.GetID_FORMA_PAGOIsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresID_FORMA_PAGO].IsNull; +end; + +procedure TProveedoresDataTableRules.SetID_FORMA_PAGOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresID_FORMA_PAGO].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetTIENDA_WEBValue: SmallInt; +begin + result := DataTable.Fields[idx_ProveedoresTIENDA_WEB].AsSmallInt; +end; + +procedure TProveedoresDataTableRules.SetTIENDA_WEBValue(const aValue: SmallInt); +begin + DataTable.Fields[idx_ProveedoresTIENDA_WEB].AsSmallInt := aValue; +end; + +function TProveedoresDataTableRules.GetTIENDA_WEBIsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresTIENDA_WEB].IsNull; +end; + +procedure TProveedoresDataTableRules.SetTIENDA_WEBIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresTIENDA_WEB].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetHOMOLOGADOValue: SmallInt; +begin + result := DataTable.Fields[idx_ProveedoresHOMOLOGADO].AsSmallInt; +end; + +procedure TProveedoresDataTableRules.SetHOMOLOGADOValue(const aValue: SmallInt); +begin + DataTable.Fields[idx_ProveedoresHOMOLOGADO].AsSmallInt := aValue; +end; + +function TProveedoresDataTableRules.GetHOMOLOGADOIsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresHOMOLOGADO].IsNull; +end; + +procedure TProveedoresDataTableRules.SetHOMOLOGADOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresHOMOLOGADO].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetCERTIFICACIONValue: String; +begin + result := DataTable.Fields[idx_ProveedoresCERTIFICACION].AsString; +end; + +procedure TProveedoresDataTableRules.SetCERTIFICACIONValue(const aValue: String); +begin + DataTable.Fields[idx_ProveedoresCERTIFICACION].AsString := aValue; +end; + +function TProveedoresDataTableRules.GetCERTIFICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresCERTIFICACION].IsNull; +end; + +procedure TProveedoresDataTableRules.SetCERTIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresCERTIFICACION].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetSUBCONTRATAValue: SmallInt; +begin + result := DataTable.Fields[idx_ProveedoresSUBCONTRATA].AsSmallInt; +end; + +procedure TProveedoresDataTableRules.SetSUBCONTRATAValue(const aValue: SmallInt); +begin + DataTable.Fields[idx_ProveedoresSUBCONTRATA].AsSmallInt := aValue; +end; + +function TProveedoresDataTableRules.GetSUBCONTRATAIsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresSUBCONTRATA].IsNull; +end; + +procedure TProveedoresDataTableRules.SetSUBCONTRATAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresSUBCONTRATA].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetEMAIL_ADMINISTRACIONValue: String; +begin + result := DataTable.Fields[idx_ProveedoresEMAIL_ADMINISTRACION].AsString; +end; + +procedure TProveedoresDataTableRules.SetEMAIL_ADMINISTRACIONValue(const aValue: String); +begin + DataTable.Fields[idx_ProveedoresEMAIL_ADMINISTRACION].AsString := aValue; +end; + +function TProveedoresDataTableRules.GetEMAIL_ADMINISTRACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresEMAIL_ADMINISTRACION].IsNull; +end; + +procedure TProveedoresDataTableRules.SetEMAIL_ADMINISTRACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresEMAIL_ADMINISTRACION].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetVENCIMIENTO_FACTURAS_1Value: SmallInt; +begin + result := DataTable.Fields[idx_ProveedoresVENCIMIENTO_FACTURAS_1].AsSmallInt; +end; + +procedure TProveedoresDataTableRules.SetVENCIMIENTO_FACTURAS_1Value(const aValue: SmallInt); +begin + DataTable.Fields[idx_ProveedoresVENCIMIENTO_FACTURAS_1].AsSmallInt := aValue; +end; + +function TProveedoresDataTableRules.GetVENCIMIENTO_FACTURAS_1IsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresVENCIMIENTO_FACTURAS_1].IsNull; +end; + +procedure TProveedoresDataTableRules.SetVENCIMIENTO_FACTURAS_1IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresVENCIMIENTO_FACTURAS_1].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetVENCIMIENTO_FACTURAS_2Value: SmallInt; +begin + result := DataTable.Fields[idx_ProveedoresVENCIMIENTO_FACTURAS_2].AsSmallInt; +end; + +procedure TProveedoresDataTableRules.SetVENCIMIENTO_FACTURAS_2Value(const aValue: SmallInt); +begin + DataTable.Fields[idx_ProveedoresVENCIMIENTO_FACTURAS_2].AsSmallInt := aValue; +end; + +function TProveedoresDataTableRules.GetVENCIMIENTO_FACTURAS_2IsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresVENCIMIENTO_FACTURAS_2].IsNull; +end; + +procedure TProveedoresDataTableRules.SetVENCIMIENTO_FACTURAS_2IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresVENCIMIENTO_FACTURAS_2].AsVariant := Null; +end; + +function TProveedoresDataTableRules.GetVENCIMIENTO_FACTURAS_3Value: SmallInt; +begin + result := DataTable.Fields[idx_ProveedoresVENCIMIENTO_FACTURAS_3].AsSmallInt; +end; + +procedure TProveedoresDataTableRules.SetVENCIMIENTO_FACTURAS_3Value(const aValue: SmallInt); +begin + DataTable.Fields[idx_ProveedoresVENCIMIENTO_FACTURAS_3].AsSmallInt := aValue; +end; + +function TProveedoresDataTableRules.GetVENCIMIENTO_FACTURAS_3IsNull: boolean; +begin + result := DataTable.Fields[idx_ProveedoresVENCIMIENTO_FACTURAS_3].IsNull; +end; + +procedure TProveedoresDataTableRules.SetVENCIMIENTO_FACTURAS_3IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ProveedoresVENCIMIENTO_FACTURAS_3].AsVariant := Null; +end; + + +{ TEmpleadosDataTableRules } +constructor TEmpleadosDataTableRules.Create(aDataTable: TDADataTable); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := NOTAS_OnChange; + f_NOTAS := NewROStrings(StrList,True); + + StrList := TStringList.Create; + StrList.OnChange := FORMACION_BASE_OnChange; + f_FORMACION_BASE := NewROStrings(StrList,True); + + StrList := TStringList.Create; + StrList.OnChange := FORMACION_COMPLE_OnChange; + f_FORMACION_COMPLE := NewROStrings(StrList,True); + + StrList := TStringList.Create; + StrList.OnChange := FORMACION_RECIBIDA_OnChange; + f_FORMACION_RECIBIDA := NewROStrings(StrList,True); + + StrList := TStringList.Create; + StrList.OnChange := EXPERIENCIA_OnChange; + f_EXPERIENCIA := NewROStrings(StrList,True); +end; + +destructor TEmpleadosDataTableRules.Destroy; +begin + inherited; +end; + +procedure TEmpleadosDataTableRules.NOTAS_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_EmpleadosNOTAS].AsVariant := TStringList(Sender).Text; +end; + +procedure TEmpleadosDataTableRules.FORMACION_BASE_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_EmpleadosFORMACION_BASE].AsVariant := TStringList(Sender).Text; +end; + +procedure TEmpleadosDataTableRules.FORMACION_COMPLE_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_EmpleadosFORMACION_COMPLE].AsVariant := TStringList(Sender).Text; +end; + +procedure TEmpleadosDataTableRules.FORMACION_RECIBIDA_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_EmpleadosFORMACION_RECIBIDA].AsVariant := TStringList(Sender).Text; +end; + +procedure TEmpleadosDataTableRules.EXPERIENCIA_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_EmpleadosEXPERIENCIA].AsVariant := TStringList(Sender).Text; +end; + +function TEmpleadosDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_EmpleadosID].AsInteger; +end; + +procedure TEmpleadosDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_EmpleadosID].AsInteger := aValue; +end; + +function TEmpleadosDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpleadosID].IsNull; +end; + +procedure TEmpleadosDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpleadosID].AsVariant := Null; +end; + +function TEmpleadosDataTableRules.GetID_CATEGORIAValue: Integer; +begin + result := DataTable.Fields[idx_EmpleadosID_CATEGORIA].AsInteger; +end; + +procedure TEmpleadosDataTableRules.SetID_CATEGORIAValue(const aValue: Integer); +begin + DataTable.Fields[idx_EmpleadosID_CATEGORIA].AsInteger := aValue; +end; + +function TEmpleadosDataTableRules.GetID_CATEGORIAIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpleadosID_CATEGORIA].IsNull; +end; + +procedure TEmpleadosDataTableRules.SetID_CATEGORIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpleadosID_CATEGORIA].AsVariant := Null; +end; + +function TEmpleadosDataTableRules.GetNIF_CIFValue: String; +begin + result := DataTable.Fields[idx_EmpleadosNIF_CIF].AsString; +end; + +procedure TEmpleadosDataTableRules.SetNIF_CIFValue(const aValue: String); +begin + DataTable.Fields[idx_EmpleadosNIF_CIF].AsString := aValue; +end; + +function TEmpleadosDataTableRules.GetNIF_CIFIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpleadosNIF_CIF].IsNull; +end; + +procedure TEmpleadosDataTableRules.SetNIF_CIFIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpleadosNIF_CIF].AsVariant := Null; +end; + +function TEmpleadosDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_EmpleadosNOMBRE].AsString; +end; + +procedure TEmpleadosDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_EmpleadosNOMBRE].AsString := aValue; +end; + +function TEmpleadosDataTableRules.GetNOMBREIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpleadosNOMBRE].IsNull; +end; + +procedure TEmpleadosDataTableRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpleadosNOMBRE].AsVariant := Null; +end; + +function TEmpleadosDataTableRules.GetPERSONA_CONTACTOValue: String; +begin + result := DataTable.Fields[idx_EmpleadosPERSONA_CONTACTO].AsString; +end; + +procedure TEmpleadosDataTableRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + DataTable.Fields[idx_EmpleadosPERSONA_CONTACTO].AsString := aValue; +end; + +function TEmpleadosDataTableRules.GetPERSONA_CONTACTOIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpleadosPERSONA_CONTACTO].IsNull; +end; + +procedure TEmpleadosDataTableRules.SetPERSONA_CONTACTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpleadosPERSONA_CONTACTO].AsVariant := Null; +end; + +function TEmpleadosDataTableRules.GetCALLEValue: String; +begin + result := DataTable.Fields[idx_EmpleadosCALLE].AsString; +end; + +procedure TEmpleadosDataTableRules.SetCALLEValue(const aValue: String); +begin + DataTable.Fields[idx_EmpleadosCALLE].AsString := aValue; +end; + +function TEmpleadosDataTableRules.GetCALLEIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpleadosCALLE].IsNull; +end; + +procedure TEmpleadosDataTableRules.SetCALLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpleadosCALLE].AsVariant := Null; +end; + +function TEmpleadosDataTableRules.GetPOBLACIONValue: String; +begin + result := DataTable.Fields[idx_EmpleadosPOBLACION].AsString; +end; + +procedure TEmpleadosDataTableRules.SetPOBLACIONValue(const aValue: String); +begin + DataTable.Fields[idx_EmpleadosPOBLACION].AsString := aValue; +end; + +function TEmpleadosDataTableRules.GetPOBLACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpleadosPOBLACION].IsNull; +end; + +procedure TEmpleadosDataTableRules.SetPOBLACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpleadosPOBLACION].AsVariant := Null; +end; + +function TEmpleadosDataTableRules.GetPROVINCIAValue: String; +begin + result := DataTable.Fields[idx_EmpleadosPROVINCIA].AsString; +end; + +procedure TEmpleadosDataTableRules.SetPROVINCIAValue(const aValue: String); +begin + DataTable.Fields[idx_EmpleadosPROVINCIA].AsString := aValue; +end; + +function TEmpleadosDataTableRules.GetPROVINCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpleadosPROVINCIA].IsNull; +end; + +procedure TEmpleadosDataTableRules.SetPROVINCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpleadosPROVINCIA].AsVariant := Null; +end; + +function TEmpleadosDataTableRules.GetCODIGO_POSTALValue: String; +begin + result := DataTable.Fields[idx_EmpleadosCODIGO_POSTAL].AsString; +end; + +procedure TEmpleadosDataTableRules.SetCODIGO_POSTALValue(const aValue: String); +begin + DataTable.Fields[idx_EmpleadosCODIGO_POSTAL].AsString := aValue; +end; + +function TEmpleadosDataTableRules.GetCODIGO_POSTALIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpleadosCODIGO_POSTAL].IsNull; +end; + +procedure TEmpleadosDataTableRules.SetCODIGO_POSTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpleadosCODIGO_POSTAL].AsVariant := Null; +end; + +function TEmpleadosDataTableRules.GetTELEFONO_1Value: String; +begin + result := DataTable.Fields[idx_EmpleadosTELEFONO_1].AsString; +end; + +procedure TEmpleadosDataTableRules.SetTELEFONO_1Value(const aValue: String); +begin + DataTable.Fields[idx_EmpleadosTELEFONO_1].AsString := aValue; +end; + +function TEmpleadosDataTableRules.GetTELEFONO_1IsNull: boolean; +begin + result := DataTable.Fields[idx_EmpleadosTELEFONO_1].IsNull; +end; + +procedure TEmpleadosDataTableRules.SetTELEFONO_1IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpleadosTELEFONO_1].AsVariant := Null; +end; + +function TEmpleadosDataTableRules.GetTELEFONO_2Value: String; +begin + result := DataTable.Fields[idx_EmpleadosTELEFONO_2].AsString; +end; + +procedure TEmpleadosDataTableRules.SetTELEFONO_2Value(const aValue: String); +begin + DataTable.Fields[idx_EmpleadosTELEFONO_2].AsString := aValue; +end; + +function TEmpleadosDataTableRules.GetTELEFONO_2IsNull: boolean; +begin + result := DataTable.Fields[idx_EmpleadosTELEFONO_2].IsNull; +end; + +procedure TEmpleadosDataTableRules.SetTELEFONO_2IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpleadosTELEFONO_2].AsVariant := Null; +end; + +function TEmpleadosDataTableRules.GetMOVIL_1Value: String; +begin + result := DataTable.Fields[idx_EmpleadosMOVIL_1].AsString; +end; + +procedure TEmpleadosDataTableRules.SetMOVIL_1Value(const aValue: String); +begin + DataTable.Fields[idx_EmpleadosMOVIL_1].AsString := aValue; +end; + +function TEmpleadosDataTableRules.GetMOVIL_1IsNull: boolean; +begin + result := DataTable.Fields[idx_EmpleadosMOVIL_1].IsNull; +end; + +procedure TEmpleadosDataTableRules.SetMOVIL_1IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpleadosMOVIL_1].AsVariant := Null; +end; + +function TEmpleadosDataTableRules.GetMOVIL_2Value: String; +begin + result := DataTable.Fields[idx_EmpleadosMOVIL_2].AsString; +end; + +procedure TEmpleadosDataTableRules.SetMOVIL_2Value(const aValue: String); +begin + DataTable.Fields[idx_EmpleadosMOVIL_2].AsString := aValue; +end; + +function TEmpleadosDataTableRules.GetMOVIL_2IsNull: boolean; +begin + result := DataTable.Fields[idx_EmpleadosMOVIL_2].IsNull; +end; + +procedure TEmpleadosDataTableRules.SetMOVIL_2IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpleadosMOVIL_2].AsVariant := Null; +end; + +function TEmpleadosDataTableRules.GetFAXValue: String; +begin + result := DataTable.Fields[idx_EmpleadosFAX].AsString; +end; + +procedure TEmpleadosDataTableRules.SetFAXValue(const aValue: String); +begin + DataTable.Fields[idx_EmpleadosFAX].AsString := aValue; +end; + +function TEmpleadosDataTableRules.GetFAXIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpleadosFAX].IsNull; +end; + +procedure TEmpleadosDataTableRules.SetFAXIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpleadosFAX].AsVariant := Null; +end; + +function TEmpleadosDataTableRules.GetEMAIL_1Value: String; +begin + result := DataTable.Fields[idx_EmpleadosEMAIL_1].AsString; +end; + +procedure TEmpleadosDataTableRules.SetEMAIL_1Value(const aValue: String); +begin + DataTable.Fields[idx_EmpleadosEMAIL_1].AsString := aValue; +end; + +function TEmpleadosDataTableRules.GetEMAIL_1IsNull: boolean; +begin + result := DataTable.Fields[idx_EmpleadosEMAIL_1].IsNull; +end; + +procedure TEmpleadosDataTableRules.SetEMAIL_1IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpleadosEMAIL_1].AsVariant := Null; +end; + +function TEmpleadosDataTableRules.GetEMAIL_2Value: String; +begin + result := DataTable.Fields[idx_EmpleadosEMAIL_2].AsString; +end; + +procedure TEmpleadosDataTableRules.SetEMAIL_2Value(const aValue: String); +begin + DataTable.Fields[idx_EmpleadosEMAIL_2].AsString := aValue; +end; + +function TEmpleadosDataTableRules.GetEMAIL_2IsNull: boolean; +begin + result := DataTable.Fields[idx_EmpleadosEMAIL_2].IsNull; +end; + +procedure TEmpleadosDataTableRules.SetEMAIL_2IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpleadosEMAIL_2].AsVariant := Null; +end; + +function TEmpleadosDataTableRules.GetPAGINA_WEBValue: String; +begin + result := DataTable.Fields[idx_EmpleadosPAGINA_WEB].AsString; +end; + +procedure TEmpleadosDataTableRules.SetPAGINA_WEBValue(const aValue: String); +begin + DataTable.Fields[idx_EmpleadosPAGINA_WEB].AsString := aValue; +end; + +function TEmpleadosDataTableRules.GetPAGINA_WEBIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpleadosPAGINA_WEB].IsNull; +end; + +procedure TEmpleadosDataTableRules.SetPAGINA_WEBIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpleadosPAGINA_WEB].AsVariant := Null; +end; + +function TEmpleadosDataTableRules.GetNOTASValue: IROStrings; +begin + result := f_NOTAS; + result.Text := DataTable.Fields[idx_EmpleadosNOTAS].AsString; +end; + +function TEmpleadosDataTableRules.GetNOTASIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpleadosNOTAS].IsNull; +end; + +procedure TEmpleadosDataTableRules.SetNOTASIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpleadosNOTAS].AsVariant := Null; +end; + +function TEmpleadosDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_EmpleadosFECHA_ALTA].AsDateTime; +end; + +procedure TEmpleadosDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_EmpleadosFECHA_ALTA].AsDateTime := aValue; +end; + +function TEmpleadosDataTableRules.GetFECHA_ALTAIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpleadosFECHA_ALTA].IsNull; +end; + +procedure TEmpleadosDataTableRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpleadosFECHA_ALTA].AsVariant := Null; +end; + +function TEmpleadosDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_EmpleadosFECHA_MODIFICACION].AsDateTime; +end; + +procedure TEmpleadosDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_EmpleadosFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TEmpleadosDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpleadosFECHA_MODIFICACION].IsNull; +end; + +procedure TEmpleadosDataTableRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpleadosFECHA_MODIFICACION].AsVariant := Null; +end; + +function TEmpleadosDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_EmpleadosUSUARIO].AsString; +end; + +procedure TEmpleadosDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_EmpleadosUSUARIO].AsString := aValue; +end; + +function TEmpleadosDataTableRules.GetUSUARIOIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpleadosUSUARIO].IsNull; +end; + +procedure TEmpleadosDataTableRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpleadosUSUARIO].AsVariant := Null; +end; + +function TEmpleadosDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_EmpleadosID_EMPRESA].AsInteger; +end; + +procedure TEmpleadosDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_EmpleadosID_EMPRESA].AsInteger := aValue; +end; + +function TEmpleadosDataTableRules.GetID_EMPRESAIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpleadosID_EMPRESA].IsNull; +end; + +procedure TEmpleadosDataTableRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpleadosID_EMPRESA].AsVariant := Null; +end; + +function TEmpleadosDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_EmpleadosREFERENCIA].AsString; +end; + +procedure TEmpleadosDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_EmpleadosREFERENCIA].AsString := aValue; +end; + +function TEmpleadosDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpleadosREFERENCIA].IsNull; +end; + +procedure TEmpleadosDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpleadosREFERENCIA].AsVariant := Null; +end; + +function TEmpleadosDataTableRules.GetFECHA_NACIMIENTOValue: DateTime; +begin + result := DataTable.Fields[idx_EmpleadosFECHA_NACIMIENTO].AsDateTime; +end; + +procedure TEmpleadosDataTableRules.SetFECHA_NACIMIENTOValue(const aValue: DateTime); +begin + DataTable.Fields[idx_EmpleadosFECHA_NACIMIENTO].AsDateTime := aValue; +end; + +function TEmpleadosDataTableRules.GetFECHA_NACIMIENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpleadosFECHA_NACIMIENTO].IsNull; +end; + +procedure TEmpleadosDataTableRules.SetFECHA_NACIMIENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpleadosFECHA_NACIMIENTO].AsVariant := Null; +end; + +function TEmpleadosDataTableRules.GetCATEGORIAValue: String; +begin + result := DataTable.Fields[idx_EmpleadosCATEGORIA].AsString; +end; + +procedure TEmpleadosDataTableRules.SetCATEGORIAValue(const aValue: String); +begin + DataTable.Fields[idx_EmpleadosCATEGORIA].AsString := aValue; +end; + +function TEmpleadosDataTableRules.GetCATEGORIAIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpleadosCATEGORIA].IsNull; +end; + +procedure TEmpleadosDataTableRules.SetCATEGORIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpleadosCATEGORIA].AsVariant := Null; +end; + +function TEmpleadosDataTableRules.GetFECHA_ALTA_EMPRESAValue: DateTime; +begin + result := DataTable.Fields[idx_EmpleadosFECHA_ALTA_EMPRESA].AsDateTime; +end; + +procedure TEmpleadosDataTableRules.SetFECHA_ALTA_EMPRESAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_EmpleadosFECHA_ALTA_EMPRESA].AsDateTime := aValue; +end; + +function TEmpleadosDataTableRules.GetFECHA_ALTA_EMPRESAIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpleadosFECHA_ALTA_EMPRESA].IsNull; +end; + +procedure TEmpleadosDataTableRules.SetFECHA_ALTA_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpleadosFECHA_ALTA_EMPRESA].AsVariant := Null; +end; + +function TEmpleadosDataTableRules.GetFORMACION_BASEValue: IROStrings; +begin + result := f_FORMACION_BASE; + result.Text := DataTable.Fields[idx_EmpleadosFORMACION_BASE].AsString; +end; + +function TEmpleadosDataTableRules.GetFORMACION_BASEIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpleadosFORMACION_BASE].IsNull; +end; + +procedure TEmpleadosDataTableRules.SetFORMACION_BASEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpleadosFORMACION_BASE].AsVariant := Null; +end; + +function TEmpleadosDataTableRules.GetFORMACION_COMPLEValue: IROStrings; +begin + result := f_FORMACION_COMPLE; + result.Text := DataTable.Fields[idx_EmpleadosFORMACION_COMPLE].AsString; +end; + +function TEmpleadosDataTableRules.GetFORMACION_COMPLEIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpleadosFORMACION_COMPLE].IsNull; +end; + +procedure TEmpleadosDataTableRules.SetFORMACION_COMPLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpleadosFORMACION_COMPLE].AsVariant := Null; +end; + +function TEmpleadosDataTableRules.GetFORMACION_RECIBIDAValue: IROStrings; +begin + result := f_FORMACION_RECIBIDA; + result.Text := DataTable.Fields[idx_EmpleadosFORMACION_RECIBIDA].AsString; +end; + +function TEmpleadosDataTableRules.GetFORMACION_RECIBIDAIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpleadosFORMACION_RECIBIDA].IsNull; +end; + +procedure TEmpleadosDataTableRules.SetFORMACION_RECIBIDAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpleadosFORMACION_RECIBIDA].AsVariant := Null; +end; + +function TEmpleadosDataTableRules.GetEXPERIENCIAValue: IROStrings; +begin + result := f_EXPERIENCIA; + result.Text := DataTable.Fields[idx_EmpleadosEXPERIENCIA].AsString; +end; + +function TEmpleadosDataTableRules.GetEXPERIENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpleadosEXPERIENCIA].IsNull; +end; + +procedure TEmpleadosDataTableRules.SetEXPERIENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpleadosEXPERIENCIA].AsVariant := Null; +end; + +function TEmpleadosDataTableRules.GetCONTRATOValue: String; +begin + result := DataTable.Fields[idx_EmpleadosCONTRATO].AsString; +end; + +procedure TEmpleadosDataTableRules.SetCONTRATOValue(const aValue: String); +begin + DataTable.Fields[idx_EmpleadosCONTRATO].AsString := aValue; +end; + +function TEmpleadosDataTableRules.GetCONTRATOIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpleadosCONTRATO].IsNull; +end; + +procedure TEmpleadosDataTableRules.SetCONTRATOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpleadosCONTRATO].AsVariant := Null; +end; + +function TEmpleadosDataTableRules.GetDURACIONValue: String; +begin + result := DataTable.Fields[idx_EmpleadosDURACION].AsString; +end; + +procedure TEmpleadosDataTableRules.SetDURACIONValue(const aValue: String); +begin + DataTable.Fields[idx_EmpleadosDURACION].AsString := aValue; +end; + +function TEmpleadosDataTableRules.GetDURACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpleadosDURACION].IsNull; +end; + +procedure TEmpleadosDataTableRules.SetDURACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpleadosDURACION].AsVariant := Null; +end; + +function TEmpleadosDataTableRules.GetFECHA_BAJAValue: DateTime; +begin + result := DataTable.Fields[idx_EmpleadosFECHA_BAJA].AsDateTime; +end; + +procedure TEmpleadosDataTableRules.SetFECHA_BAJAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_EmpleadosFECHA_BAJA].AsDateTime := aValue; +end; + +function TEmpleadosDataTableRules.GetFECHA_BAJAIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpleadosFECHA_BAJA].IsNull; +end; + +procedure TEmpleadosDataTableRules.SetFECHA_BAJAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpleadosFECHA_BAJA].AsVariant := Null; +end; + +function TEmpleadosDataTableRules.GetCAUSA_BAJAValue: String; +begin + result := DataTable.Fields[idx_EmpleadosCAUSA_BAJA].AsString; +end; + +procedure TEmpleadosDataTableRules.SetCAUSA_BAJAValue(const aValue: String); +begin + DataTable.Fields[idx_EmpleadosCAUSA_BAJA].AsString := aValue; +end; + +function TEmpleadosDataTableRules.GetCAUSA_BAJAIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpleadosCAUSA_BAJA].IsNull; +end; + +procedure TEmpleadosDataTableRules.SetCAUSA_BAJAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpleadosCAUSA_BAJA].AsVariant := Null; +end; + + +{ TDireccionesContactoDataTableRules } +constructor TDireccionesContactoDataTableRules.Create(aDataTable: TDADataTable); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := NOTAS_OnChange; + f_NOTAS := NewROStrings(StrList,True); +end; + +destructor TDireccionesContactoDataTableRules.Destroy; +begin + inherited; +end; + +procedure TDireccionesContactoDataTableRules.NOTAS_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_DireccionesContactoNOTAS].AsVariant := TStringList(Sender).Text; +end; + +function TDireccionesContactoDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_DireccionesContactoID].AsInteger; +end; + +procedure TDireccionesContactoDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_DireccionesContactoID].AsInteger := aValue; +end; + +function TDireccionesContactoDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_DireccionesContactoID].IsNull; +end; + +procedure TDireccionesContactoDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DireccionesContactoID].AsVariant := Null; +end; + +function TDireccionesContactoDataTableRules.GetID_CONTACTOValue: Integer; +begin + result := DataTable.Fields[idx_DireccionesContactoID_CONTACTO].AsInteger; +end; + +procedure TDireccionesContactoDataTableRules.SetID_CONTACTOValue(const aValue: Integer); +begin + DataTable.Fields[idx_DireccionesContactoID_CONTACTO].AsInteger := aValue; +end; + +function TDireccionesContactoDataTableRules.GetID_CONTACTOIsNull: boolean; +begin + result := DataTable.Fields[idx_DireccionesContactoID_CONTACTO].IsNull; +end; + +procedure TDireccionesContactoDataTableRules.SetID_CONTACTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DireccionesContactoID_CONTACTO].AsVariant := Null; +end; + +function TDireccionesContactoDataTableRules.GetCALLEValue: String; +begin + result := DataTable.Fields[idx_DireccionesContactoCALLE].AsString; +end; + +procedure TDireccionesContactoDataTableRules.SetCALLEValue(const aValue: String); +begin + DataTable.Fields[idx_DireccionesContactoCALLE].AsString := aValue; +end; + +function TDireccionesContactoDataTableRules.GetCALLEIsNull: boolean; +begin + result := DataTable.Fields[idx_DireccionesContactoCALLE].IsNull; +end; + +procedure TDireccionesContactoDataTableRules.SetCALLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DireccionesContactoCALLE].AsVariant := Null; +end; + +function TDireccionesContactoDataTableRules.GetPOBLACIONValue: String; +begin + result := DataTable.Fields[idx_DireccionesContactoPOBLACION].AsString; +end; + +procedure TDireccionesContactoDataTableRules.SetPOBLACIONValue(const aValue: String); +begin + DataTable.Fields[idx_DireccionesContactoPOBLACION].AsString := aValue; +end; + +function TDireccionesContactoDataTableRules.GetPOBLACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_DireccionesContactoPOBLACION].IsNull; +end; + +procedure TDireccionesContactoDataTableRules.SetPOBLACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DireccionesContactoPOBLACION].AsVariant := Null; +end; + +function TDireccionesContactoDataTableRules.GetPROVINCIAValue: String; +begin + result := DataTable.Fields[idx_DireccionesContactoPROVINCIA].AsString; +end; + +procedure TDireccionesContactoDataTableRules.SetPROVINCIAValue(const aValue: String); +begin + DataTable.Fields[idx_DireccionesContactoPROVINCIA].AsString := aValue; +end; + +function TDireccionesContactoDataTableRules.GetPROVINCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_DireccionesContactoPROVINCIA].IsNull; +end; + +procedure TDireccionesContactoDataTableRules.SetPROVINCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DireccionesContactoPROVINCIA].AsVariant := Null; +end; + +function TDireccionesContactoDataTableRules.GetCODIGO_POSTALValue: String; +begin + result := DataTable.Fields[idx_DireccionesContactoCODIGO_POSTAL].AsString; +end; + +procedure TDireccionesContactoDataTableRules.SetCODIGO_POSTALValue(const aValue: String); +begin + DataTable.Fields[idx_DireccionesContactoCODIGO_POSTAL].AsString := aValue; +end; + +function TDireccionesContactoDataTableRules.GetCODIGO_POSTALIsNull: boolean; +begin + result := DataTable.Fields[idx_DireccionesContactoCODIGO_POSTAL].IsNull; +end; + +procedure TDireccionesContactoDataTableRules.SetCODIGO_POSTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DireccionesContactoCODIGO_POSTAL].AsVariant := Null; +end; + +function TDireccionesContactoDataTableRules.GetPERSONA_CONTACTOValue: String; +begin + result := DataTable.Fields[idx_DireccionesContactoPERSONA_CONTACTO].AsString; +end; + +procedure TDireccionesContactoDataTableRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + DataTable.Fields[idx_DireccionesContactoPERSONA_CONTACTO].AsString := aValue; +end; + +function TDireccionesContactoDataTableRules.GetPERSONA_CONTACTOIsNull: boolean; +begin + result := DataTable.Fields[idx_DireccionesContactoPERSONA_CONTACTO].IsNull; +end; + +procedure TDireccionesContactoDataTableRules.SetPERSONA_CONTACTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DireccionesContactoPERSONA_CONTACTO].AsVariant := Null; +end; + +function TDireccionesContactoDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_DireccionesContactoNOMBRE].AsString; +end; + +procedure TDireccionesContactoDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_DireccionesContactoNOMBRE].AsString := aValue; +end; + +function TDireccionesContactoDataTableRules.GetNOMBREIsNull: boolean; +begin + result := DataTable.Fields[idx_DireccionesContactoNOMBRE].IsNull; +end; + +procedure TDireccionesContactoDataTableRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DireccionesContactoNOMBRE].AsVariant := Null; +end; + +function TDireccionesContactoDataTableRules.GetTELEFONOValue: String; +begin + result := DataTable.Fields[idx_DireccionesContactoTELEFONO].AsString; +end; + +procedure TDireccionesContactoDataTableRules.SetTELEFONOValue(const aValue: String); +begin + DataTable.Fields[idx_DireccionesContactoTELEFONO].AsString := aValue; +end; + +function TDireccionesContactoDataTableRules.GetTELEFONOIsNull: boolean; +begin + result := DataTable.Fields[idx_DireccionesContactoTELEFONO].IsNull; +end; + +procedure TDireccionesContactoDataTableRules.SetTELEFONOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DireccionesContactoTELEFONO].AsVariant := Null; +end; + +function TDireccionesContactoDataTableRules.GetMOVILValue: String; +begin + result := DataTable.Fields[idx_DireccionesContactoMOVIL].AsString; +end; + +procedure TDireccionesContactoDataTableRules.SetMOVILValue(const aValue: String); +begin + DataTable.Fields[idx_DireccionesContactoMOVIL].AsString := aValue; +end; + +function TDireccionesContactoDataTableRules.GetMOVILIsNull: boolean; +begin + result := DataTable.Fields[idx_DireccionesContactoMOVIL].IsNull; +end; + +procedure TDireccionesContactoDataTableRules.SetMOVILIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DireccionesContactoMOVIL].AsVariant := Null; +end; + +function TDireccionesContactoDataTableRules.GetFAXValue: String; +begin + result := DataTable.Fields[idx_DireccionesContactoFAX].AsString; +end; + +procedure TDireccionesContactoDataTableRules.SetFAXValue(const aValue: String); +begin + DataTable.Fields[idx_DireccionesContactoFAX].AsString := aValue; +end; + +function TDireccionesContactoDataTableRules.GetFAXIsNull: boolean; +begin + result := DataTable.Fields[idx_DireccionesContactoFAX].IsNull; +end; + +procedure TDireccionesContactoDataTableRules.SetFAXIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DireccionesContactoFAX].AsVariant := Null; +end; + +function TDireccionesContactoDataTableRules.GetEMAILValue: String; +begin + result := DataTable.Fields[idx_DireccionesContactoEMAIL].AsString; +end; + +procedure TDireccionesContactoDataTableRules.SetEMAILValue(const aValue: String); +begin + DataTable.Fields[idx_DireccionesContactoEMAIL].AsString := aValue; +end; + +function TDireccionesContactoDataTableRules.GetEMAILIsNull: boolean; +begin + result := DataTable.Fields[idx_DireccionesContactoEMAIL].IsNull; +end; + +procedure TDireccionesContactoDataTableRules.SetEMAILIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DireccionesContactoEMAIL].AsVariant := Null; +end; + +function TDireccionesContactoDataTableRules.GetNOTASValue: IROStrings; +begin + result := f_NOTAS; + result.Text := DataTable.Fields[idx_DireccionesContactoNOTAS].AsString; +end; + +function TDireccionesContactoDataTableRules.GetNOTASIsNull: boolean; +begin + result := DataTable.Fields[idx_DireccionesContactoNOTAS].IsNull; +end; + +procedure TDireccionesContactoDataTableRules.SetNOTASIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DireccionesContactoNOTAS].AsVariant := Null; +end; + +function TDireccionesContactoDataTableRules.GetPORTEValue: Float; +begin + result := DataTable.Fields[idx_DireccionesContactoPORTE].AsFloat; +end; + +procedure TDireccionesContactoDataTableRules.SetPORTEValue(const aValue: Float); +begin + DataTable.Fields[idx_DireccionesContactoPORTE].AsFloat := aValue; +end; + +function TDireccionesContactoDataTableRules.GetPORTEIsNull: boolean; +begin + result := DataTable.Fields[idx_DireccionesContactoPORTE].IsNull; +end; + +procedure TDireccionesContactoDataTableRules.SetPORTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DireccionesContactoPORTE].AsVariant := Null; +end; + +function TDireccionesContactoDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_DireccionesContactoFECHA_ALTA].AsDateTime; +end; + +procedure TDireccionesContactoDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_DireccionesContactoFECHA_ALTA].AsDateTime := aValue; +end; + +function TDireccionesContactoDataTableRules.GetFECHA_ALTAIsNull: boolean; +begin + result := DataTable.Fields[idx_DireccionesContactoFECHA_ALTA].IsNull; +end; + +procedure TDireccionesContactoDataTableRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DireccionesContactoFECHA_ALTA].AsVariant := Null; +end; + +function TDireccionesContactoDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_DireccionesContactoFECHA_MODIFICACION].AsDateTime; +end; + +procedure TDireccionesContactoDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_DireccionesContactoFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TDireccionesContactoDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_DireccionesContactoFECHA_MODIFICACION].IsNull; +end; + +procedure TDireccionesContactoDataTableRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DireccionesContactoFECHA_MODIFICACION].AsVariant := Null; +end; + + +{ TClientesDescuentosDataTableRules } +constructor TClientesDescuentosDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TClientesDescuentosDataTableRules.Destroy; +begin + inherited; +end; + +function TClientesDescuentosDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_ClientesDescuentosID].AsInteger; +end; + +procedure TClientesDescuentosDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_ClientesDescuentosID].AsInteger := aValue; +end; + +function TClientesDescuentosDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesDescuentosID].IsNull; +end; + +procedure TClientesDescuentosDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesDescuentosID].AsVariant := Null; +end; + +function TClientesDescuentosDataTableRules.GetID_CLIENTEValue: Integer; +begin + result := DataTable.Fields[idx_ClientesDescuentosID_CLIENTE].AsInteger; +end; + +procedure TClientesDescuentosDataTableRules.SetID_CLIENTEValue(const aValue: Integer); +begin + DataTable.Fields[idx_ClientesDescuentosID_CLIENTE].AsInteger := aValue; +end; + +function TClientesDescuentosDataTableRules.GetID_CLIENTEIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesDescuentosID_CLIENTE].IsNull; +end; + +procedure TClientesDescuentosDataTableRules.SetID_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesDescuentosID_CLIENTE].AsVariant := Null; +end; + +function TClientesDescuentosDataTableRules.GetID_PROVEEDORValue: Integer; +begin + result := DataTable.Fields[idx_ClientesDescuentosID_PROVEEDOR].AsInteger; +end; + +procedure TClientesDescuentosDataTableRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + DataTable.Fields[idx_ClientesDescuentosID_PROVEEDOR].AsInteger := aValue; +end; + +function TClientesDescuentosDataTableRules.GetID_PROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesDescuentosID_PROVEEDOR].IsNull; +end; + +procedure TClientesDescuentosDataTableRules.SetID_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesDescuentosID_PROVEEDOR].AsVariant := Null; +end; + +function TClientesDescuentosDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_ClientesDescuentosNOMBRE].AsString; +end; + +procedure TClientesDescuentosDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_ClientesDescuentosNOMBRE].AsString := aValue; +end; + +function TClientesDescuentosDataTableRules.GetNOMBREIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesDescuentosNOMBRE].IsNull; +end; + +procedure TClientesDescuentosDataTableRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesDescuentosNOMBRE].AsVariant := Null; +end; + +function TClientesDescuentosDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_ClientesDescuentosDESCUENTO].AsFloat; +end; + +procedure TClientesDescuentosDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_ClientesDescuentosDESCUENTO].AsFloat := aValue; +end; + +function TClientesDescuentosDataTableRules.GetDESCUENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesDescuentosDESCUENTO].IsNull; +end; + +procedure TClientesDescuentosDataTableRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesDescuentosDESCUENTO].AsVariant := Null; +end; + + +{ TGruposProveedorDataTableRules } +constructor TGruposProveedorDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TGruposProveedorDataTableRules.Destroy; +begin + inherited; +end; + +function TGruposProveedorDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_GruposProveedorID].AsInteger; +end; + +procedure TGruposProveedorDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_GruposProveedorID].AsInteger := aValue; +end; + +function TGruposProveedorDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_GruposProveedorID].IsNull; +end; + +procedure TGruposProveedorDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_GruposProveedorID].AsVariant := Null; +end; + +function TGruposProveedorDataTableRules.GetDESCRIPCIONValue: String; +begin + result := DataTable.Fields[idx_GruposProveedorDESCRIPCION].AsString; +end; + +procedure TGruposProveedorDataTableRules.SetDESCRIPCIONValue(const aValue: String); +begin + DataTable.Fields[idx_GruposProveedorDESCRIPCION].AsString := aValue; +end; + +function TGruposProveedorDataTableRules.GetDESCRIPCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_GruposProveedorDESCRIPCION].IsNull; +end; + +procedure TGruposProveedorDataTableRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_GruposProveedorDESCRIPCION].AsVariant := Null; +end; + + +{ TGruposEmpleadoDataTableRules } +constructor TGruposEmpleadoDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TGruposEmpleadoDataTableRules.Destroy; +begin + inherited; +end; + +function TGruposEmpleadoDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_GruposEmpleadoID].AsInteger; +end; + +procedure TGruposEmpleadoDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_GruposEmpleadoID].AsInteger := aValue; +end; + +function TGruposEmpleadoDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_GruposEmpleadoID].IsNull; +end; + +procedure TGruposEmpleadoDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_GruposEmpleadoID].AsVariant := Null; +end; + +function TGruposEmpleadoDataTableRules.GetDESCRIPCIONValue: String; +begin + result := DataTable.Fields[idx_GruposEmpleadoDESCRIPCION].AsString; +end; + +procedure TGruposEmpleadoDataTableRules.SetDESCRIPCIONValue(const aValue: String); +begin + DataTable.Fields[idx_GruposEmpleadoDESCRIPCION].AsString := aValue; +end; + +function TGruposEmpleadoDataTableRules.GetDESCRIPCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_GruposEmpleadoDESCRIPCION].IsNull; +end; + +procedure TGruposEmpleadoDataTableRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_GruposEmpleadoDESCRIPCION].AsVariant := Null; +end; + + +{ TContactos_RefreshDataTableRules } +constructor TContactos_RefreshDataTableRules.Create(aDataTable: TDADataTable); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := NOTAS_OnChange; + f_NOTAS := NewROStrings(StrList,True); +end; + +destructor TContactos_RefreshDataTableRules.Destroy; +begin + inherited; +end; + +procedure TContactos_RefreshDataTableRules.NOTAS_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_Contactos_RefreshNOTAS].AsVariant := TStringList(Sender).Text; +end; + +function TContactos_RefreshDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_Contactos_RefreshID].AsInteger; +end; + +procedure TContactos_RefreshDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_Contactos_RefreshID].AsInteger := aValue; +end; + +function TContactos_RefreshDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_Contactos_RefreshID].IsNull; +end; + +procedure TContactos_RefreshDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Contactos_RefreshID].AsVariant := Null; +end; + +function TContactos_RefreshDataTableRules.GetNIF_CIFValue: String; +begin + result := DataTable.Fields[idx_Contactos_RefreshNIF_CIF].AsString; +end; + +procedure TContactos_RefreshDataTableRules.SetNIF_CIFValue(const aValue: String); +begin + DataTable.Fields[idx_Contactos_RefreshNIF_CIF].AsString := aValue; +end; + +function TContactos_RefreshDataTableRules.GetNIF_CIFIsNull: boolean; +begin + result := DataTable.Fields[idx_Contactos_RefreshNIF_CIF].IsNull; +end; + +procedure TContactos_RefreshDataTableRules.SetNIF_CIFIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Contactos_RefreshNIF_CIF].AsVariant := Null; +end; + +function TContactos_RefreshDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_Contactos_RefreshNOMBRE].AsString; +end; + +procedure TContactos_RefreshDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_Contactos_RefreshNOMBRE].AsString := aValue; +end; + +function TContactos_RefreshDataTableRules.GetNOMBREIsNull: boolean; +begin + result := DataTable.Fields[idx_Contactos_RefreshNOMBRE].IsNull; +end; + +procedure TContactos_RefreshDataTableRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Contactos_RefreshNOMBRE].AsVariant := Null; +end; + +function TContactos_RefreshDataTableRules.GetCALLEValue: String; +begin + result := DataTable.Fields[idx_Contactos_RefreshCALLE].AsString; +end; + +procedure TContactos_RefreshDataTableRules.SetCALLEValue(const aValue: String); +begin + DataTable.Fields[idx_Contactos_RefreshCALLE].AsString := aValue; +end; + +function TContactos_RefreshDataTableRules.GetCALLEIsNull: boolean; +begin + result := DataTable.Fields[idx_Contactos_RefreshCALLE].IsNull; +end; + +procedure TContactos_RefreshDataTableRules.SetCALLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Contactos_RefreshCALLE].AsVariant := Null; +end; + +function TContactos_RefreshDataTableRules.GetPOBLACIONValue: String; +begin + result := DataTable.Fields[idx_Contactos_RefreshPOBLACION].AsString; +end; + +procedure TContactos_RefreshDataTableRules.SetPOBLACIONValue(const aValue: String); +begin + DataTable.Fields[idx_Contactos_RefreshPOBLACION].AsString := aValue; +end; + +function TContactos_RefreshDataTableRules.GetPOBLACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_Contactos_RefreshPOBLACION].IsNull; +end; + +procedure TContactos_RefreshDataTableRules.SetPOBLACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Contactos_RefreshPOBLACION].AsVariant := Null; +end; + +function TContactos_RefreshDataTableRules.GetPROVINCIAValue: String; +begin + result := DataTable.Fields[idx_Contactos_RefreshPROVINCIA].AsString; +end; + +procedure TContactos_RefreshDataTableRules.SetPROVINCIAValue(const aValue: String); +begin + DataTable.Fields[idx_Contactos_RefreshPROVINCIA].AsString := aValue; +end; + +function TContactos_RefreshDataTableRules.GetPROVINCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_Contactos_RefreshPROVINCIA].IsNull; +end; + +procedure TContactos_RefreshDataTableRules.SetPROVINCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Contactos_RefreshPROVINCIA].AsVariant := Null; +end; + +function TContactos_RefreshDataTableRules.GetCODIGO_POSTALValue: String; +begin + result := DataTable.Fields[idx_Contactos_RefreshCODIGO_POSTAL].AsString; +end; + +procedure TContactos_RefreshDataTableRules.SetCODIGO_POSTALValue(const aValue: String); +begin + DataTable.Fields[idx_Contactos_RefreshCODIGO_POSTAL].AsString := aValue; +end; + +function TContactos_RefreshDataTableRules.GetCODIGO_POSTALIsNull: boolean; +begin + result := DataTable.Fields[idx_Contactos_RefreshCODIGO_POSTAL].IsNull; +end; + +procedure TContactos_RefreshDataTableRules.SetCODIGO_POSTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Contactos_RefreshCODIGO_POSTAL].AsVariant := Null; +end; + +function TContactos_RefreshDataTableRules.GetTELEFONO_1Value: String; +begin + result := DataTable.Fields[idx_Contactos_RefreshTELEFONO_1].AsString; +end; + +procedure TContactos_RefreshDataTableRules.SetTELEFONO_1Value(const aValue: String); +begin + DataTable.Fields[idx_Contactos_RefreshTELEFONO_1].AsString := aValue; +end; + +function TContactos_RefreshDataTableRules.GetTELEFONO_1IsNull: boolean; +begin + result := DataTable.Fields[idx_Contactos_RefreshTELEFONO_1].IsNull; +end; + +procedure TContactos_RefreshDataTableRules.SetTELEFONO_1IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Contactos_RefreshTELEFONO_1].AsVariant := Null; +end; + +function TContactos_RefreshDataTableRules.GetTELEFONO_2Value: String; +begin + result := DataTable.Fields[idx_Contactos_RefreshTELEFONO_2].AsString; +end; + +procedure TContactos_RefreshDataTableRules.SetTELEFONO_2Value(const aValue: String); +begin + DataTable.Fields[idx_Contactos_RefreshTELEFONO_2].AsString := aValue; +end; + +function TContactos_RefreshDataTableRules.GetTELEFONO_2IsNull: boolean; +begin + result := DataTable.Fields[idx_Contactos_RefreshTELEFONO_2].IsNull; +end; + +procedure TContactos_RefreshDataTableRules.SetTELEFONO_2IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Contactos_RefreshTELEFONO_2].AsVariant := Null; +end; + +function TContactos_RefreshDataTableRules.GetMOVIL_1Value: String; +begin + result := DataTable.Fields[idx_Contactos_RefreshMOVIL_1].AsString; +end; + +procedure TContactos_RefreshDataTableRules.SetMOVIL_1Value(const aValue: String); +begin + DataTable.Fields[idx_Contactos_RefreshMOVIL_1].AsString := aValue; +end; + +function TContactos_RefreshDataTableRules.GetMOVIL_1IsNull: boolean; +begin + result := DataTable.Fields[idx_Contactos_RefreshMOVIL_1].IsNull; +end; + +procedure TContactos_RefreshDataTableRules.SetMOVIL_1IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Contactos_RefreshMOVIL_1].AsVariant := Null; +end; + +function TContactos_RefreshDataTableRules.GetMOVIL_2Value: String; +begin + result := DataTable.Fields[idx_Contactos_RefreshMOVIL_2].AsString; +end; + +procedure TContactos_RefreshDataTableRules.SetMOVIL_2Value(const aValue: String); +begin + DataTable.Fields[idx_Contactos_RefreshMOVIL_2].AsString := aValue; +end; + +function TContactos_RefreshDataTableRules.GetMOVIL_2IsNull: boolean; +begin + result := DataTable.Fields[idx_Contactos_RefreshMOVIL_2].IsNull; +end; + +procedure TContactos_RefreshDataTableRules.SetMOVIL_2IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Contactos_RefreshMOVIL_2].AsVariant := Null; +end; + +function TContactos_RefreshDataTableRules.GetFAXValue: String; +begin + result := DataTable.Fields[idx_Contactos_RefreshFAX].AsString; +end; + +procedure TContactos_RefreshDataTableRules.SetFAXValue(const aValue: String); +begin + DataTable.Fields[idx_Contactos_RefreshFAX].AsString := aValue; +end; + +function TContactos_RefreshDataTableRules.GetFAXIsNull: boolean; +begin + result := DataTable.Fields[idx_Contactos_RefreshFAX].IsNull; +end; + +procedure TContactos_RefreshDataTableRules.SetFAXIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Contactos_RefreshFAX].AsVariant := Null; +end; + +function TContactos_RefreshDataTableRules.GetEMAIL_1Value: String; +begin + result := DataTable.Fields[idx_Contactos_RefreshEMAIL_1].AsString; +end; + +procedure TContactos_RefreshDataTableRules.SetEMAIL_1Value(const aValue: String); +begin + DataTable.Fields[idx_Contactos_RefreshEMAIL_1].AsString := aValue; +end; + +function TContactos_RefreshDataTableRules.GetEMAIL_1IsNull: boolean; +begin + result := DataTable.Fields[idx_Contactos_RefreshEMAIL_1].IsNull; +end; + +procedure TContactos_RefreshDataTableRules.SetEMAIL_1IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Contactos_RefreshEMAIL_1].AsVariant := Null; +end; + +function TContactos_RefreshDataTableRules.GetEMAIL_2Value: String; +begin + result := DataTable.Fields[idx_Contactos_RefreshEMAIL_2].AsString; +end; + +procedure TContactos_RefreshDataTableRules.SetEMAIL_2Value(const aValue: String); +begin + DataTable.Fields[idx_Contactos_RefreshEMAIL_2].AsString := aValue; +end; + +function TContactos_RefreshDataTableRules.GetEMAIL_2IsNull: boolean; +begin + result := DataTable.Fields[idx_Contactos_RefreshEMAIL_2].IsNull; +end; + +procedure TContactos_RefreshDataTableRules.SetEMAIL_2IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Contactos_RefreshEMAIL_2].AsVariant := Null; +end; + +function TContactos_RefreshDataTableRules.GetPAGINA_WEBValue: String; +begin + result := DataTable.Fields[idx_Contactos_RefreshPAGINA_WEB].AsString; +end; + +procedure TContactos_RefreshDataTableRules.SetPAGINA_WEBValue(const aValue: String); +begin + DataTable.Fields[idx_Contactos_RefreshPAGINA_WEB].AsString := aValue; +end; + +function TContactos_RefreshDataTableRules.GetPAGINA_WEBIsNull: boolean; +begin + result := DataTable.Fields[idx_Contactos_RefreshPAGINA_WEB].IsNull; +end; + +procedure TContactos_RefreshDataTableRules.SetPAGINA_WEBIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Contactos_RefreshPAGINA_WEB].AsVariant := Null; +end; + +function TContactos_RefreshDataTableRules.GetNOTASValue: IROStrings; +begin + result := f_NOTAS; + result.Text := DataTable.Fields[idx_Contactos_RefreshNOTAS].AsString; +end; + +function TContactos_RefreshDataTableRules.GetNOTASIsNull: boolean; +begin + result := DataTable.Fields[idx_Contactos_RefreshNOTAS].IsNull; +end; + +procedure TContactos_RefreshDataTableRules.SetNOTASIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Contactos_RefreshNOTAS].AsVariant := Null; +end; + +function TContactos_RefreshDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_Contactos_RefreshFECHA_ALTA].AsDateTime; +end; + +procedure TContactos_RefreshDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_Contactos_RefreshFECHA_ALTA].AsDateTime := aValue; +end; + +function TContactos_RefreshDataTableRules.GetFECHA_ALTAIsNull: boolean; +begin + result := DataTable.Fields[idx_Contactos_RefreshFECHA_ALTA].IsNull; +end; + +procedure TContactos_RefreshDataTableRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Contactos_RefreshFECHA_ALTA].AsVariant := Null; +end; + +function TContactos_RefreshDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_Contactos_RefreshFECHA_MODIFICACION].AsDateTime; +end; + +procedure TContactos_RefreshDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_Contactos_RefreshFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TContactos_RefreshDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_Contactos_RefreshFECHA_MODIFICACION].IsNull; +end; + +procedure TContactos_RefreshDataTableRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Contactos_RefreshFECHA_MODIFICACION].AsVariant := Null; +end; + +function TContactos_RefreshDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_Contactos_RefreshUSUARIO].AsString; +end; + +procedure TContactos_RefreshDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_Contactos_RefreshUSUARIO].AsString := aValue; +end; + +function TContactos_RefreshDataTableRules.GetUSUARIOIsNull: boolean; +begin + result := DataTable.Fields[idx_Contactos_RefreshUSUARIO].IsNull; +end; + +procedure TContactos_RefreshDataTableRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Contactos_RefreshUSUARIO].AsVariant := Null; +end; + +function TContactos_RefreshDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_Contactos_RefreshREFERENCIA].AsString; +end; + +procedure TContactos_RefreshDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_Contactos_RefreshREFERENCIA].AsString := aValue; +end; + +function TContactos_RefreshDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_Contactos_RefreshREFERENCIA].IsNull; +end; + +procedure TContactos_RefreshDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Contactos_RefreshREFERENCIA].AsVariant := Null; +end; + +function TContactos_RefreshDataTableRules.GetPERSONA_CONTACTOValue: String; +begin + result := DataTable.Fields[idx_Contactos_RefreshPERSONA_CONTACTO].AsString; +end; + +procedure TContactos_RefreshDataTableRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + DataTable.Fields[idx_Contactos_RefreshPERSONA_CONTACTO].AsString := aValue; +end; + +function TContactos_RefreshDataTableRules.GetPERSONA_CONTACTOIsNull: boolean; +begin + result := DataTable.Fields[idx_Contactos_RefreshPERSONA_CONTACTO].IsNull; +end; + +procedure TContactos_RefreshDataTableRules.SetPERSONA_CONTACTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Contactos_RefreshPERSONA_CONTACTO].AsVariant := Null; +end; + + +{ TContratosEmpleadosDataTableRules } +constructor TContratosEmpleadosDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TContratosEmpleadosDataTableRules.Destroy; +begin + inherited; +end; + +function TContratosEmpleadosDataTableRules.GetCONTRATOValue: String; +begin + result := DataTable.Fields[idx_ContratosEmpleadosCONTRATO].AsString; +end; + +procedure TContratosEmpleadosDataTableRules.SetCONTRATOValue(const aValue: String); +begin + DataTable.Fields[idx_ContratosEmpleadosCONTRATO].AsString := aValue; +end; + +function TContratosEmpleadosDataTableRules.GetCONTRATOIsNull: boolean; +begin + result := DataTable.Fields[idx_ContratosEmpleadosCONTRATO].IsNull; +end; + +procedure TContratosEmpleadosDataTableRules.SetCONTRATOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ContratosEmpleadosCONTRATO].AsVariant := Null; +end; + + +{ TDescripcionesProveedoresDataTableRules } +constructor TDescripcionesProveedoresDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TDescripcionesProveedoresDataTableRules.Destroy; +begin + inherited; +end; + +function TDescripcionesProveedoresDataTableRules.GetDESCRIPCION_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_DescripcionesProveedoresDESCRIPCION_PROVEEDOR].AsString; +end; + +procedure TDescripcionesProveedoresDataTableRules.SetDESCRIPCION_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_DescripcionesProveedoresDESCRIPCION_PROVEEDOR].AsString := aValue; +end; + +function TDescripcionesProveedoresDataTableRules.GetDESCRIPCION_PROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_DescripcionesProveedoresDESCRIPCION_PROVEEDOR].IsNull; +end; + +procedure TDescripcionesProveedoresDataTableRules.SetDESCRIPCION_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DescripcionesProveedoresDESCRIPCION_PROVEEDOR].AsVariant := Null; +end; + + +{ TPersonalContactoDataTableRules } +constructor TPersonalContactoDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TPersonalContactoDataTableRules.Destroy; +begin + inherited; +end; + +function TPersonalContactoDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_PersonalContactoID].AsInteger; +end; + +procedure TPersonalContactoDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_PersonalContactoID].AsInteger := aValue; +end; + +function TPersonalContactoDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_PersonalContactoID].IsNull; +end; + +procedure TPersonalContactoDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PersonalContactoID].AsVariant := Null; +end; + +function TPersonalContactoDataTableRules.GetID_CONTACTOValue: Integer; +begin + result := DataTable.Fields[idx_PersonalContactoID_CONTACTO].AsInteger; +end; + +procedure TPersonalContactoDataTableRules.SetID_CONTACTOValue(const aValue: Integer); +begin + DataTable.Fields[idx_PersonalContactoID_CONTACTO].AsInteger := aValue; +end; + +function TPersonalContactoDataTableRules.GetID_CONTACTOIsNull: boolean; +begin + result := DataTable.Fields[idx_PersonalContactoID_CONTACTO].IsNull; +end; + +procedure TPersonalContactoDataTableRules.SetID_CONTACTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PersonalContactoID_CONTACTO].AsVariant := Null; +end; + +function TPersonalContactoDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_PersonalContactoNOMBRE].AsString; +end; + +procedure TPersonalContactoDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_PersonalContactoNOMBRE].AsString := aValue; +end; + +function TPersonalContactoDataTableRules.GetNOMBREIsNull: boolean; +begin + result := DataTable.Fields[idx_PersonalContactoNOMBRE].IsNull; +end; + +procedure TPersonalContactoDataTableRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PersonalContactoNOMBRE].AsVariant := Null; +end; + +function TPersonalContactoDataTableRules.GetPUESTOValue: String; +begin + result := DataTable.Fields[idx_PersonalContactoPUESTO].AsString; +end; + +procedure TPersonalContactoDataTableRules.SetPUESTOValue(const aValue: String); +begin + DataTable.Fields[idx_PersonalContactoPUESTO].AsString := aValue; +end; + +function TPersonalContactoDataTableRules.GetPUESTOIsNull: boolean; +begin + result := DataTable.Fields[idx_PersonalContactoPUESTO].IsNull; +end; + +procedure TPersonalContactoDataTableRules.SetPUESTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PersonalContactoPUESTO].AsVariant := Null; +end; + +function TPersonalContactoDataTableRules.GetTELEFONOValue: String; +begin + result := DataTable.Fields[idx_PersonalContactoTELEFONO].AsString; +end; + +procedure TPersonalContactoDataTableRules.SetTELEFONOValue(const aValue: String); +begin + DataTable.Fields[idx_PersonalContactoTELEFONO].AsString := aValue; +end; + +function TPersonalContactoDataTableRules.GetTELEFONOIsNull: boolean; +begin + result := DataTable.Fields[idx_PersonalContactoTELEFONO].IsNull; +end; + +procedure TPersonalContactoDataTableRules.SetTELEFONOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PersonalContactoTELEFONO].AsVariant := Null; +end; + +function TPersonalContactoDataTableRules.GetMOVILValue: String; +begin + result := DataTable.Fields[idx_PersonalContactoMOVIL].AsString; +end; + +procedure TPersonalContactoDataTableRules.SetMOVILValue(const aValue: String); +begin + DataTable.Fields[idx_PersonalContactoMOVIL].AsString := aValue; +end; + +function TPersonalContactoDataTableRules.GetMOVILIsNull: boolean; +begin + result := DataTable.Fields[idx_PersonalContactoMOVIL].IsNull; +end; + +procedure TPersonalContactoDataTableRules.SetMOVILIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PersonalContactoMOVIL].AsVariant := Null; +end; + +function TPersonalContactoDataTableRules.GetFAXValue: String; +begin + result := DataTable.Fields[idx_PersonalContactoFAX].AsString; +end; + +procedure TPersonalContactoDataTableRules.SetFAXValue(const aValue: String); +begin + DataTable.Fields[idx_PersonalContactoFAX].AsString := aValue; +end; + +function TPersonalContactoDataTableRules.GetFAXIsNull: boolean; +begin + result := DataTable.Fields[idx_PersonalContactoFAX].IsNull; +end; + +procedure TPersonalContactoDataTableRules.SetFAXIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PersonalContactoFAX].AsVariant := Null; +end; + +function TPersonalContactoDataTableRules.GetEMAILValue: String; +begin + result := DataTable.Fields[idx_PersonalContactoEMAIL].AsString; +end; + +procedure TPersonalContactoDataTableRules.SetEMAILValue(const aValue: String); +begin + DataTable.Fields[idx_PersonalContactoEMAIL].AsString := aValue; +end; + +function TPersonalContactoDataTableRules.GetEMAILIsNull: boolean; +begin + result := DataTable.Fields[idx_PersonalContactoEMAIL].IsNull; +end; + +procedure TPersonalContactoDataTableRules.SetEMAILIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PersonalContactoEMAIL].AsVariant := Null; +end; + +function TPersonalContactoDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_PersonalContactoFECHA_ALTA].AsDateTime; +end; + +procedure TPersonalContactoDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_PersonalContactoFECHA_ALTA].AsDateTime := aValue; +end; + +function TPersonalContactoDataTableRules.GetFECHA_ALTAIsNull: boolean; +begin + result := DataTable.Fields[idx_PersonalContactoFECHA_ALTA].IsNull; +end; + +procedure TPersonalContactoDataTableRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PersonalContactoFECHA_ALTA].AsVariant := Null; +end; + +function TPersonalContactoDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_PersonalContactoFECHA_MODIFICACION].AsDateTime; +end; + +procedure TPersonalContactoDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_PersonalContactoFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TPersonalContactoDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_PersonalContactoFECHA_MODIFICACION].IsNull; +end; + +procedure TPersonalContactoDataTableRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PersonalContactoFECHA_MODIFICACION].AsVariant := Null; +end; + + +{ TAgentes_ComisionesDataTableRules } +constructor TAgentes_ComisionesDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TAgentes_ComisionesDataTableRules.Destroy; +begin + inherited; +end; + +function TAgentes_ComisionesDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_Agentes_ComisionesID].AsInteger; +end; + +procedure TAgentes_ComisionesDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_Agentes_ComisionesID].AsInteger := aValue; +end; + +function TAgentes_ComisionesDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_Agentes_ComisionesID].IsNull; +end; + +procedure TAgentes_ComisionesDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Agentes_ComisionesID].AsVariant := Null; +end; + +function TAgentes_ComisionesDataTableRules.GetID_AGENTEValue: Integer; +begin + result := DataTable.Fields[idx_Agentes_ComisionesID_AGENTE].AsInteger; +end; + +procedure TAgentes_ComisionesDataTableRules.SetID_AGENTEValue(const aValue: Integer); +begin + DataTable.Fields[idx_Agentes_ComisionesID_AGENTE].AsInteger := aValue; +end; + +function TAgentes_ComisionesDataTableRules.GetID_AGENTEIsNull: boolean; +begin + result := DataTable.Fields[idx_Agentes_ComisionesID_AGENTE].IsNull; +end; + +procedure TAgentes_ComisionesDataTableRules.SetID_AGENTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Agentes_ComisionesID_AGENTE].AsVariant := Null; +end; + +function TAgentes_ComisionesDataTableRules.GetID_PROVEEDORValue: SmallInt; +begin + result := DataTable.Fields[idx_Agentes_ComisionesID_PROVEEDOR].AsSmallInt; +end; + +procedure TAgentes_ComisionesDataTableRules.SetID_PROVEEDORValue(const aValue: SmallInt); +begin + DataTable.Fields[idx_Agentes_ComisionesID_PROVEEDOR].AsSmallInt := aValue; +end; + +function TAgentes_ComisionesDataTableRules.GetID_PROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_Agentes_ComisionesID_PROVEEDOR].IsNull; +end; + +procedure TAgentes_ComisionesDataTableRules.SetID_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Agentes_ComisionesID_PROVEEDOR].AsVariant := Null; +end; + +function TAgentes_ComisionesDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_Agentes_ComisionesNOMBRE].AsString; +end; + +procedure TAgentes_ComisionesDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_Agentes_ComisionesNOMBRE].AsString := aValue; +end; + +function TAgentes_ComisionesDataTableRules.GetNOMBREIsNull: boolean; +begin + result := DataTable.Fields[idx_Agentes_ComisionesNOMBRE].IsNull; +end; + +procedure TAgentes_ComisionesDataTableRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Agentes_ComisionesNOMBRE].AsVariant := Null; +end; + +function TAgentes_ComisionesDataTableRules.GetCOMISIONValue: Float; +begin + result := DataTable.Fields[idx_Agentes_ComisionesCOMISION].AsFloat; +end; + +procedure TAgentes_ComisionesDataTableRules.SetCOMISIONValue(const aValue: Float); +begin + DataTable.Fields[idx_Agentes_ComisionesCOMISION].AsFloat := aValue; +end; + +function TAgentes_ComisionesDataTableRules.GetCOMISIONIsNull: boolean; +begin + result := DataTable.Fields[idx_Agentes_ComisionesCOMISION].IsNull; +end; + +procedure TAgentes_ComisionesDataTableRules.SetCOMISIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_Agentes_ComisionesCOMISION].AsVariant := Null; +end; + + +{ TAgentesDataTableRules } +constructor TAgentesDataTableRules.Create(aDataTable: TDADataTable); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := NOTAS_OnChange; + f_NOTAS := NewROStrings(StrList,True); +end; + +destructor TAgentesDataTableRules.Destroy; +begin + inherited; +end; + +procedure TAgentesDataTableRules.NOTAS_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_AgentesNOTAS].AsVariant := TStringList(Sender).Text; +end; + +function TAgentesDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_AgentesID].AsInteger; +end; + +procedure TAgentesDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_AgentesID].AsInteger := aValue; +end; + +function TAgentesDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_AgentesID].IsNull; +end; + +procedure TAgentesDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AgentesID].AsVariant := Null; +end; + +function TAgentesDataTableRules.GetID_CATEGORIAValue: Integer; +begin + result := DataTable.Fields[idx_AgentesID_CATEGORIA].AsInteger; +end; + +procedure TAgentesDataTableRules.SetID_CATEGORIAValue(const aValue: Integer); +begin + DataTable.Fields[idx_AgentesID_CATEGORIA].AsInteger := aValue; +end; + +function TAgentesDataTableRules.GetID_CATEGORIAIsNull: boolean; +begin + result := DataTable.Fields[idx_AgentesID_CATEGORIA].IsNull; +end; + +procedure TAgentesDataTableRules.SetID_CATEGORIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AgentesID_CATEGORIA].AsVariant := Null; +end; + +function TAgentesDataTableRules.GetNIF_CIFValue: String; +begin + result := DataTable.Fields[idx_AgentesNIF_CIF].AsString; +end; + +procedure TAgentesDataTableRules.SetNIF_CIFValue(const aValue: String); +begin + DataTable.Fields[idx_AgentesNIF_CIF].AsString := aValue; +end; + +function TAgentesDataTableRules.GetNIF_CIFIsNull: boolean; +begin + result := DataTable.Fields[idx_AgentesNIF_CIF].IsNull; +end; + +procedure TAgentesDataTableRules.SetNIF_CIFIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AgentesNIF_CIF].AsVariant := Null; +end; + +function TAgentesDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_AgentesNOMBRE].AsString; +end; + +procedure TAgentesDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_AgentesNOMBRE].AsString := aValue; +end; + +function TAgentesDataTableRules.GetNOMBREIsNull: boolean; +begin + result := DataTable.Fields[idx_AgentesNOMBRE].IsNull; +end; + +procedure TAgentesDataTableRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AgentesNOMBRE].AsVariant := Null; +end; + +function TAgentesDataTableRules.GetPERSONA_CONTACTOValue: String; +begin + result := DataTable.Fields[idx_AgentesPERSONA_CONTACTO].AsString; +end; + +procedure TAgentesDataTableRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + DataTable.Fields[idx_AgentesPERSONA_CONTACTO].AsString := aValue; +end; + +function TAgentesDataTableRules.GetPERSONA_CONTACTOIsNull: boolean; +begin + result := DataTable.Fields[idx_AgentesPERSONA_CONTACTO].IsNull; +end; + +procedure TAgentesDataTableRules.SetPERSONA_CONTACTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AgentesPERSONA_CONTACTO].AsVariant := Null; +end; + +function TAgentesDataTableRules.GetCALLEValue: String; +begin + result := DataTable.Fields[idx_AgentesCALLE].AsString; +end; + +procedure TAgentesDataTableRules.SetCALLEValue(const aValue: String); +begin + DataTable.Fields[idx_AgentesCALLE].AsString := aValue; +end; + +function TAgentesDataTableRules.GetCALLEIsNull: boolean; +begin + result := DataTable.Fields[idx_AgentesCALLE].IsNull; +end; + +procedure TAgentesDataTableRules.SetCALLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AgentesCALLE].AsVariant := Null; +end; + +function TAgentesDataTableRules.GetPOBLACIONValue: String; +begin + result := DataTable.Fields[idx_AgentesPOBLACION].AsString; +end; + +procedure TAgentesDataTableRules.SetPOBLACIONValue(const aValue: String); +begin + DataTable.Fields[idx_AgentesPOBLACION].AsString := aValue; +end; + +function TAgentesDataTableRules.GetPOBLACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_AgentesPOBLACION].IsNull; +end; + +procedure TAgentesDataTableRules.SetPOBLACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AgentesPOBLACION].AsVariant := Null; +end; + +function TAgentesDataTableRules.GetPROVINCIAValue: String; +begin + result := DataTable.Fields[idx_AgentesPROVINCIA].AsString; +end; + +procedure TAgentesDataTableRules.SetPROVINCIAValue(const aValue: String); +begin + DataTable.Fields[idx_AgentesPROVINCIA].AsString := aValue; +end; + +function TAgentesDataTableRules.GetPROVINCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_AgentesPROVINCIA].IsNull; +end; + +procedure TAgentesDataTableRules.SetPROVINCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AgentesPROVINCIA].AsVariant := Null; +end; + +function TAgentesDataTableRules.GetCODIGO_POSTALValue: String; +begin + result := DataTable.Fields[idx_AgentesCODIGO_POSTAL].AsString; +end; + +procedure TAgentesDataTableRules.SetCODIGO_POSTALValue(const aValue: String); +begin + DataTable.Fields[idx_AgentesCODIGO_POSTAL].AsString := aValue; +end; + +function TAgentesDataTableRules.GetCODIGO_POSTALIsNull: boolean; +begin + result := DataTable.Fields[idx_AgentesCODIGO_POSTAL].IsNull; +end; + +procedure TAgentesDataTableRules.SetCODIGO_POSTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AgentesCODIGO_POSTAL].AsVariant := Null; +end; + +function TAgentesDataTableRules.GetTELEFONO_1Value: String; +begin + result := DataTable.Fields[idx_AgentesTELEFONO_1].AsString; +end; + +procedure TAgentesDataTableRules.SetTELEFONO_1Value(const aValue: String); +begin + DataTable.Fields[idx_AgentesTELEFONO_1].AsString := aValue; +end; + +function TAgentesDataTableRules.GetTELEFONO_1IsNull: boolean; +begin + result := DataTable.Fields[idx_AgentesTELEFONO_1].IsNull; +end; + +procedure TAgentesDataTableRules.SetTELEFONO_1IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AgentesTELEFONO_1].AsVariant := Null; +end; + +function TAgentesDataTableRules.GetTELEFONO_2Value: String; +begin + result := DataTable.Fields[idx_AgentesTELEFONO_2].AsString; +end; + +procedure TAgentesDataTableRules.SetTELEFONO_2Value(const aValue: String); +begin + DataTable.Fields[idx_AgentesTELEFONO_2].AsString := aValue; +end; + +function TAgentesDataTableRules.GetTELEFONO_2IsNull: boolean; +begin + result := DataTable.Fields[idx_AgentesTELEFONO_2].IsNull; +end; + +procedure TAgentesDataTableRules.SetTELEFONO_2IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AgentesTELEFONO_2].AsVariant := Null; +end; + +function TAgentesDataTableRules.GetMOVIL_1Value: String; +begin + result := DataTable.Fields[idx_AgentesMOVIL_1].AsString; +end; + +procedure TAgentesDataTableRules.SetMOVIL_1Value(const aValue: String); +begin + DataTable.Fields[idx_AgentesMOVIL_1].AsString := aValue; +end; + +function TAgentesDataTableRules.GetMOVIL_1IsNull: boolean; +begin + result := DataTable.Fields[idx_AgentesMOVIL_1].IsNull; +end; + +procedure TAgentesDataTableRules.SetMOVIL_1IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AgentesMOVIL_1].AsVariant := Null; +end; + +function TAgentesDataTableRules.GetMOVIL_2Value: String; +begin + result := DataTable.Fields[idx_AgentesMOVIL_2].AsString; +end; + +procedure TAgentesDataTableRules.SetMOVIL_2Value(const aValue: String); +begin + DataTable.Fields[idx_AgentesMOVIL_2].AsString := aValue; +end; + +function TAgentesDataTableRules.GetMOVIL_2IsNull: boolean; +begin + result := DataTable.Fields[idx_AgentesMOVIL_2].IsNull; +end; + +procedure TAgentesDataTableRules.SetMOVIL_2IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AgentesMOVIL_2].AsVariant := Null; +end; + +function TAgentesDataTableRules.GetFAXValue: String; +begin + result := DataTable.Fields[idx_AgentesFAX].AsString; +end; + +procedure TAgentesDataTableRules.SetFAXValue(const aValue: String); +begin + DataTable.Fields[idx_AgentesFAX].AsString := aValue; +end; + +function TAgentesDataTableRules.GetFAXIsNull: boolean; +begin + result := DataTable.Fields[idx_AgentesFAX].IsNull; +end; + +procedure TAgentesDataTableRules.SetFAXIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AgentesFAX].AsVariant := Null; +end; + +function TAgentesDataTableRules.GetEMAIL_1Value: String; +begin + result := DataTable.Fields[idx_AgentesEMAIL_1].AsString; +end; + +procedure TAgentesDataTableRules.SetEMAIL_1Value(const aValue: String); +begin + DataTable.Fields[idx_AgentesEMAIL_1].AsString := aValue; +end; + +function TAgentesDataTableRules.GetEMAIL_1IsNull: boolean; +begin + result := DataTable.Fields[idx_AgentesEMAIL_1].IsNull; +end; + +procedure TAgentesDataTableRules.SetEMAIL_1IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AgentesEMAIL_1].AsVariant := Null; +end; + +function TAgentesDataTableRules.GetEMAIL_2Value: String; +begin + result := DataTable.Fields[idx_AgentesEMAIL_2].AsString; +end; + +procedure TAgentesDataTableRules.SetEMAIL_2Value(const aValue: String); +begin + DataTable.Fields[idx_AgentesEMAIL_2].AsString := aValue; +end; + +function TAgentesDataTableRules.GetEMAIL_2IsNull: boolean; +begin + result := DataTable.Fields[idx_AgentesEMAIL_2].IsNull; +end; + +procedure TAgentesDataTableRules.SetEMAIL_2IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AgentesEMAIL_2].AsVariant := Null; +end; + +function TAgentesDataTableRules.GetPAGINA_WEBValue: String; +begin + result := DataTable.Fields[idx_AgentesPAGINA_WEB].AsString; +end; + +procedure TAgentesDataTableRules.SetPAGINA_WEBValue(const aValue: String); +begin + DataTable.Fields[idx_AgentesPAGINA_WEB].AsString := aValue; +end; + +function TAgentesDataTableRules.GetPAGINA_WEBIsNull: boolean; +begin + result := DataTable.Fields[idx_AgentesPAGINA_WEB].IsNull; +end; + +procedure TAgentesDataTableRules.SetPAGINA_WEBIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AgentesPAGINA_WEB].AsVariant := Null; +end; + +function TAgentesDataTableRules.GetNOTASValue: IROStrings; +begin + result := f_NOTAS; + result.Text := DataTable.Fields[idx_AgentesNOTAS].AsString; +end; + +function TAgentesDataTableRules.GetNOTASIsNull: boolean; +begin + result := DataTable.Fields[idx_AgentesNOTAS].IsNull; +end; + +procedure TAgentesDataTableRules.SetNOTASIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AgentesNOTAS].AsVariant := Null; +end; + +function TAgentesDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_AgentesFECHA_ALTA].AsDateTime; +end; + +procedure TAgentesDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_AgentesFECHA_ALTA].AsDateTime := aValue; +end; + +function TAgentesDataTableRules.GetFECHA_ALTAIsNull: boolean; +begin + result := DataTable.Fields[idx_AgentesFECHA_ALTA].IsNull; +end; + +procedure TAgentesDataTableRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AgentesFECHA_ALTA].AsVariant := Null; +end; + +function TAgentesDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_AgentesFECHA_MODIFICACION].AsDateTime; +end; + +procedure TAgentesDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_AgentesFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TAgentesDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_AgentesFECHA_MODIFICACION].IsNull; +end; + +procedure TAgentesDataTableRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AgentesFECHA_MODIFICACION].AsVariant := Null; +end; + +function TAgentesDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_AgentesUSUARIO].AsString; +end; + +procedure TAgentesDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_AgentesUSUARIO].AsString := aValue; +end; + +function TAgentesDataTableRules.GetUSUARIOIsNull: boolean; +begin + result := DataTable.Fields[idx_AgentesUSUARIO].IsNull; +end; + +procedure TAgentesDataTableRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AgentesUSUARIO].AsVariant := Null; +end; + +function TAgentesDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_AgentesID_EMPRESA].AsInteger; +end; + +procedure TAgentesDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_AgentesID_EMPRESA].AsInteger := aValue; +end; + +function TAgentesDataTableRules.GetID_EMPRESAIsNull: boolean; +begin + result := DataTable.Fields[idx_AgentesID_EMPRESA].IsNull; +end; + +procedure TAgentesDataTableRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AgentesID_EMPRESA].AsVariant := Null; +end; + +function TAgentesDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_AgentesREFERENCIA].AsString; +end; + +procedure TAgentesDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_AgentesREFERENCIA].AsString := aValue; +end; + +function TAgentesDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_AgentesREFERENCIA].IsNull; +end; + +procedure TAgentesDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AgentesREFERENCIA].AsVariant := Null; +end; + +function TAgentesDataTableRules.GetFECHA_ALTA_EMPRESAValue: DateTime; +begin + result := DataTable.Fields[idx_AgentesFECHA_ALTA_EMPRESA].AsDateTime; +end; + +procedure TAgentesDataTableRules.SetFECHA_ALTA_EMPRESAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_AgentesFECHA_ALTA_EMPRESA].AsDateTime := aValue; +end; + +function TAgentesDataTableRules.GetFECHA_ALTA_EMPRESAIsNull: boolean; +begin + result := DataTable.Fields[idx_AgentesFECHA_ALTA_EMPRESA].IsNull; +end; + +procedure TAgentesDataTableRules.SetFECHA_ALTA_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AgentesFECHA_ALTA_EMPRESA].AsVariant := Null; +end; + +function TAgentesDataTableRules.GetFECHA_BAJAValue: DateTime; +begin + result := DataTable.Fields[idx_AgentesFECHA_BAJA].AsDateTime; +end; + +procedure TAgentesDataTableRules.SetFECHA_BAJAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_AgentesFECHA_BAJA].AsDateTime := aValue; +end; + +function TAgentesDataTableRules.GetFECHA_BAJAIsNull: boolean; +begin + result := DataTable.Fields[idx_AgentesFECHA_BAJA].IsNull; +end; + +procedure TAgentesDataTableRules.SetFECHA_BAJAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AgentesFECHA_BAJA].AsVariant := Null; +end; + +function TAgentesDataTableRules.GetCAUSA_BAJAValue: String; +begin + result := DataTable.Fields[idx_AgentesCAUSA_BAJA].AsString; +end; + +procedure TAgentesDataTableRules.SetCAUSA_BAJAValue(const aValue: String); +begin + DataTable.Fields[idx_AgentesCAUSA_BAJA].AsString := aValue; +end; + +function TAgentesDataTableRules.GetCAUSA_BAJAIsNull: boolean; +begin + result := DataTable.Fields[idx_AgentesCAUSA_BAJA].IsNull; +end; + +procedure TAgentesDataTableRules.SetCAUSA_BAJAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AgentesCAUSA_BAJA].AsVariant := Null; +end; + + +initialization + RegisterDataTableRules(RID_Contactos, TContactosDataTableRules); + RegisterDataTableRules(RID_GruposCliente, TGruposClienteDataTableRules); + RegisterDataTableRules(RID_DatosBancarios, TDatosBancariosDataTableRules); + RegisterDataTableRules(RID_Clientes, TClientesDataTableRules); + RegisterDataTableRules(RID_Proveedores, TProveedoresDataTableRules); + RegisterDataTableRules(RID_Empleados, TEmpleadosDataTableRules); + RegisterDataTableRules(RID_DireccionesContacto, TDireccionesContactoDataTableRules); + RegisterDataTableRules(RID_ClientesDescuentos, TClientesDescuentosDataTableRules); + RegisterDataTableRules(RID_GruposProveedor, TGruposProveedorDataTableRules); + RegisterDataTableRules(RID_GruposEmpleado, TGruposEmpleadoDataTableRules); + RegisterDataTableRules(RID_Contactos_Refresh, TContactos_RefreshDataTableRules); + RegisterDataTableRules(RID_ContratosEmpleados, TContratosEmpleadosDataTableRules); + RegisterDataTableRules(RID_DescripcionesProveedores, TDescripcionesProveedoresDataTableRules); + RegisterDataTableRules(RID_PersonalContacto, TPersonalContactoDataTableRules); + RegisterDataTableRules(RID_Agentes_Comisiones, TAgentes_ComisionesDataTableRules); + RegisterDataTableRules(RID_Agentes, TAgentesDataTableRules); + +end. diff --git a/Source/Modulos/Contactos/Model/schContactosServer_Intf.dcu b/Source/Modulos/Contactos/Model/schContactosServer_Intf.dcu new file mode 100644 index 0000000..5ff37a2 Binary files /dev/null and b/Source/Modulos/Contactos/Model/schContactosServer_Intf.dcu differ diff --git a/Source/Modulos/Contactos/Model/schContactosServer_Intf.pas b/Source/Modulos/Contactos/Model/schContactosServer_Intf.pas new file mode 100644 index 0000000..f704e6a --- /dev/null +++ b/Source/Modulos/Contactos/Model/schContactosServer_Intf.pas @@ -0,0 +1,10879 @@ +unit schContactosServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schContactosClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_ContactosDelta = '{CEAC9E34-EC23-4975-8564-049459103E5B}'; + RID_GruposClienteDelta = '{92BEDCB7-57F2-45D0-8EDF-79C519290D32}'; + RID_DatosBancariosDelta = '{56C98169-EDC3-481A-AD9C-FF45E1D9C93B}'; + RID_ClientesDelta = '{28EFB7E0-62B4-4F3D-A4E0-25254B665748}'; + RID_ProveedoresDelta = '{AEECF2DF-D7F7-42E7-9081-76778714FF75}'; + RID_EmpleadosDelta = '{D74B1150-C343-4DC5-A6F5-A7F4E7598F67}'; + RID_DireccionesContactoDelta = '{9FE0DA23-FE77-4167-AEFF-143E4F8C823D}'; + RID_ClientesDescuentosDelta = '{743C4823-D8F2-42F3-9B1D-FAE647AA0B89}'; + RID_GruposProveedorDelta = '{E8CA6C8F-9ECC-41DF-8586-E2E3B9F5458B}'; + RID_GruposEmpleadoDelta = '{714DAE98-83AA-4A95-9A5F-07A6B7E8B355}'; + RID_Contactos_RefreshDelta = '{7DD183E3-37C3-4264-8D84-F4A815289F8B}'; + RID_ContratosEmpleadosDelta = '{E62488A1-C81E-4B36-90ED-206B1033DD39}'; + RID_DescripcionesProveedoresDelta = '{58F6D16F-8509-4805-B234-6263DC21BE65}'; + RID_PersonalContactoDelta = '{517AA226-5930-4EBD-99CB-D01DA050A368}'; + RID_Agentes_ComisionesDelta = '{B489AFCD-F2A4-4762-99E8-171CC8767238}'; + RID_AgentesDelta = '{05D9F35E-0C52-4504-84CC-B35F48442AB5}'; + +type + { IContactosDelta } + IContactosDelta = interface(IContactos) + ['{CEAC9E34-EC23-4975-8564-049459103E5B}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_CATEGORIAValue : Integer; + function GetOldNIF_CIFValue : String; + function GetOldNOMBREValue : String; + function GetOldPERSONA_CONTACTOValue : String; + function GetOldCALLEValue : String; + function GetOldPOBLACIONValue : String; + function GetOldPROVINCIAValue : String; + function GetOldCODIGO_POSTALValue : String; + function GetOldTELEFONO_1Value : String; + function GetOldTELEFONO_2Value : String; + function GetOldMOVIL_1Value : String; + function GetOldMOVIL_2Value : String; + function GetOldFAXValue : String; + function GetOldEMAIL_1Value : String; + function GetOldEMAIL_2Value : String; + function GetOldPAGINA_WEBValue : String; + function GetOldNOTASValue : IROStrings; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + function GetOldUSUARIOValue : String; + function GetOldID_EMPRESAValue : Integer; + function GetOldREFERENCIAValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_CATEGORIA : Integer read GetOldID_CATEGORIAValue; + property OldNIF_CIF : String read GetOldNIF_CIFValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property OldCALLE : String read GetOldCALLEValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property OldTELEFONO_1 : String read GetOldTELEFONO_1Value; + property OldTELEFONO_2 : String read GetOldTELEFONO_2Value; + property OldMOVIL_1 : String read GetOldMOVIL_1Value; + property OldMOVIL_2 : String read GetOldMOVIL_2Value; + property OldFAX : String read GetOldFAXValue; + property OldEMAIL_1 : String read GetOldEMAIL_1Value; + property OldEMAIL_2 : String read GetOldEMAIL_2Value; + property OldPAGINA_WEB : String read GetOldPAGINA_WEBValue; + property OldNOTAS : IROStrings read GetOldNOTASValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + end; + + { TContactosBusinessProcessorRules } + TContactosBusinessProcessorRules = class(TDABusinessProcessorRules, IContactos, IContactosDelta) + private + f_NOTAS: IROStrings; + procedure NOTAS_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_CATEGORIAValue: Integer; virtual; + function GetID_CATEGORIAIsNull: Boolean; virtual; + function GetOldID_CATEGORIAValue: Integer; virtual; + function GetOldID_CATEGORIAIsNull: Boolean; virtual; + procedure SetID_CATEGORIAValue(const aValue: Integer); virtual; + procedure SetID_CATEGORIAIsNull(const aValue: Boolean); virtual; + function GetNIF_CIFValue: String; virtual; + function GetNIF_CIFIsNull: Boolean; virtual; + function GetOldNIF_CIFValue: String; virtual; + function GetOldNIF_CIFIsNull: Boolean; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + procedure SetNIF_CIFIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + function GetNOMBREIsNull: Boolean; virtual; + function GetOldNOMBREValue: String; virtual; + function GetOldNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + function GetPERSONA_CONTACTOIsNull: Boolean; virtual; + function GetOldPERSONA_CONTACTOValue: String; virtual; + function GetOldPERSONA_CONTACTOIsNull: Boolean; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); virtual; + function GetCALLEValue: String; virtual; + function GetCALLEIsNull: Boolean; virtual; + function GetOldCALLEValue: String; virtual; + function GetOldCALLEIsNull: Boolean; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + procedure SetCALLEIsNull(const aValue: Boolean); virtual; + function GetPOBLACIONValue: String; virtual; + function GetPOBLACIONIsNull: Boolean; virtual; + function GetOldPOBLACIONValue: String; virtual; + function GetOldPOBLACIONIsNull: Boolean; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual; + function GetPROVINCIAValue: String; virtual; + function GetPROVINCIAIsNull: Boolean; virtual; + function GetOldPROVINCIAValue: String; virtual; + function GetOldPROVINCIAIsNull: Boolean; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetCODIGO_POSTALIsNull: Boolean; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALIsNull: Boolean; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual; + function GetTELEFONO_1Value: String; virtual; + function GetTELEFONO_1IsNull: Boolean; virtual; + function GetOldTELEFONO_1Value: String; virtual; + function GetOldTELEFONO_1IsNull: Boolean; virtual; + procedure SetTELEFONO_1Value(const aValue: String); virtual; + procedure SetTELEFONO_1IsNull(const aValue: Boolean); virtual; + function GetTELEFONO_2Value: String; virtual; + function GetTELEFONO_2IsNull: Boolean; virtual; + function GetOldTELEFONO_2Value: String; virtual; + function GetOldTELEFONO_2IsNull: Boolean; virtual; + procedure SetTELEFONO_2Value(const aValue: String); virtual; + procedure SetTELEFONO_2IsNull(const aValue: Boolean); virtual; + function GetMOVIL_1Value: String; virtual; + function GetMOVIL_1IsNull: Boolean; virtual; + function GetOldMOVIL_1Value: String; virtual; + function GetOldMOVIL_1IsNull: Boolean; virtual; + procedure SetMOVIL_1Value(const aValue: String); virtual; + procedure SetMOVIL_1IsNull(const aValue: Boolean); virtual; + function GetMOVIL_2Value: String; virtual; + function GetMOVIL_2IsNull: Boolean; virtual; + function GetOldMOVIL_2Value: String; virtual; + function GetOldMOVIL_2IsNull: Boolean; virtual; + procedure SetMOVIL_2Value(const aValue: String); virtual; + procedure SetMOVIL_2IsNull(const aValue: Boolean); virtual; + function GetFAXValue: String; virtual; + function GetFAXIsNull: Boolean; virtual; + function GetOldFAXValue: String; virtual; + function GetOldFAXIsNull: Boolean; virtual; + procedure SetFAXValue(const aValue: String); virtual; + procedure SetFAXIsNull(const aValue: Boolean); virtual; + function GetEMAIL_1Value: String; virtual; + function GetEMAIL_1IsNull: Boolean; virtual; + function GetOldEMAIL_1Value: String; virtual; + function GetOldEMAIL_1IsNull: Boolean; virtual; + procedure SetEMAIL_1Value(const aValue: String); virtual; + procedure SetEMAIL_1IsNull(const aValue: Boolean); virtual; + function GetEMAIL_2Value: String; virtual; + function GetEMAIL_2IsNull: Boolean; virtual; + function GetOldEMAIL_2Value: String; virtual; + function GetOldEMAIL_2IsNull: Boolean; virtual; + procedure SetEMAIL_2Value(const aValue: String); virtual; + procedure SetEMAIL_2IsNull(const aValue: Boolean); virtual; + function GetPAGINA_WEBValue: String; virtual; + function GetPAGINA_WEBIsNull: Boolean; virtual; + function GetOldPAGINA_WEBValue: String; virtual; + function GetOldPAGINA_WEBIsNull: Boolean; virtual; + procedure SetPAGINA_WEBValue(const aValue: String); virtual; + procedure SetPAGINA_WEBIsNull(const aValue: Boolean); virtual; + function GetNOTASValue: IROStrings; virtual; + function GetNOTASIsNull: Boolean; virtual; + function GetOldNOTASValue: IROStrings; virtual; + function GetOldNOTASIsNull: Boolean; virtual; + procedure SetNOTASIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + function GetUSUARIOIsNull: Boolean; virtual; + function GetOldUSUARIOValue: String; virtual; + function GetOldUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_CATEGORIA : Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue; + property ID_CATEGORIAIsNull : Boolean read GetID_CATEGORIAIsNull write SetID_CATEGORIAIsNull; + property OldID_CATEGORIA : Integer read GetOldID_CATEGORIAValue; + property OldID_CATEGORIAIsNull : Boolean read GetOldID_CATEGORIAIsNull; + property NIF_CIF : String read GetNIF_CIFValue write SetNIF_CIFValue; + property NIF_CIFIsNull : Boolean read GetNIF_CIFIsNull write SetNIF_CIFIsNull; + property OldNIF_CIF : String read GetOldNIF_CIFValue; + property OldNIF_CIFIsNull : Boolean read GetOldNIF_CIFIsNull; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull : Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldNOMBREIsNull : Boolean read GetOldNOMBREIsNull; + property PERSONA_CONTACTO : String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull : Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property OldPERSONA_CONTACTOIsNull : Boolean read GetOldPERSONA_CONTACTOIsNull; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull : Boolean read GetCALLEIsNull write SetCALLEIsNull; + property OldCALLE : String read GetOldCALLEValue; + property OldCALLEIsNull : Boolean read GetOldCALLEIsNull; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull : Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property OldPOBLACIONIsNull : Boolean read GetOldPOBLACIONIsNull; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull : Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property OldPROVINCIAIsNull : Boolean read GetOldPROVINCIAIsNull; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull : Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property OldCODIGO_POSTALIsNull : Boolean read GetOldCODIGO_POSTALIsNull; + property TELEFONO_1 : String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_1IsNull : Boolean read GetTELEFONO_1IsNull write SetTELEFONO_1IsNull; + property OldTELEFONO_1 : String read GetOldTELEFONO_1Value; + property OldTELEFONO_1IsNull : Boolean read GetOldTELEFONO_1IsNull; + property TELEFONO_2 : String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property TELEFONO_2IsNull : Boolean read GetTELEFONO_2IsNull write SetTELEFONO_2IsNull; + property OldTELEFONO_2 : String read GetOldTELEFONO_2Value; + property OldTELEFONO_2IsNull : Boolean read GetOldTELEFONO_2IsNull; + property MOVIL_1 : String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_1IsNull : Boolean read GetMOVIL_1IsNull write SetMOVIL_1IsNull; + property OldMOVIL_1 : String read GetOldMOVIL_1Value; + property OldMOVIL_1IsNull : Boolean read GetOldMOVIL_1IsNull; + property MOVIL_2 : String read GetMOVIL_2Value write SetMOVIL_2Value; + property MOVIL_2IsNull : Boolean read GetMOVIL_2IsNull write SetMOVIL_2IsNull; + property OldMOVIL_2 : String read GetOldMOVIL_2Value; + property OldMOVIL_2IsNull : Boolean read GetOldMOVIL_2IsNull; + property FAX : String read GetFAXValue write SetFAXValue; + property FAXIsNull : Boolean read GetFAXIsNull write SetFAXIsNull; + property OldFAX : String read GetOldFAXValue; + property OldFAXIsNull : Boolean read GetOldFAXIsNull; + property EMAIL_1 : String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_1IsNull : Boolean read GetEMAIL_1IsNull write SetEMAIL_1IsNull; + property OldEMAIL_1 : String read GetOldEMAIL_1Value; + property OldEMAIL_1IsNull : Boolean read GetOldEMAIL_1IsNull; + property EMAIL_2 : String read GetEMAIL_2Value write SetEMAIL_2Value; + property EMAIL_2IsNull : Boolean read GetEMAIL_2IsNull write SetEMAIL_2IsNull; + property OldEMAIL_2 : String read GetOldEMAIL_2Value; + property OldEMAIL_2IsNull : Boolean read GetOldEMAIL_2IsNull; + property PAGINA_WEB : String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property PAGINA_WEBIsNull : Boolean read GetPAGINA_WEBIsNull write SetPAGINA_WEBIsNull; + property OldPAGINA_WEB : String read GetOldPAGINA_WEBValue; + property OldPAGINA_WEBIsNull : Boolean read GetOldPAGINA_WEBIsNull; + property NOTAS : IROStrings read GetNOTASValue; + property NOTASIsNull : Boolean read GetNOTASIsNull write SetNOTASIsNull; + property OldNOTAS : IROStrings read GetOldNOTASValue; + property OldNOTASIsNull : Boolean read GetOldNOTASIsNull; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull : Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_ALTAIsNull : Boolean read GetOldFECHA_ALTAIsNull; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull : Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldUSUARIOIsNull : Boolean read GetOldUSUARIOIsNull; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull : Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_EMPRESAIsNull : Boolean read GetOldID_EMPRESAIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IGruposClienteDelta } + IGruposClienteDelta = interface(IGruposCliente) + ['{92BEDCB7-57F2-45D0-8EDF-79C519290D32}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldDESCRIPCIONValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + end; + + { TGruposClienteBusinessProcessorRules } + TGruposClienteBusinessProcessorRules = class(TDABusinessProcessorRules, IGruposCliente, IGruposClienteDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull : Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldDESCRIPCIONIsNull : Boolean read GetOldDESCRIPCIONIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IDatosBancariosDelta } + IDatosBancariosDelta = interface(IDatosBancarios) + ['{56C98169-EDC3-481A-AD9C-FF45E1D9C93B}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_CONTACTOValue : Integer; + function GetOldTITULARValue : String; + function GetOldENTIDADValue : String; + function GetOldSUCURSALValue : String; + function GetOldDCValue : String; + function GetOldCUENTAValue : String; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_CONTACTO : Integer read GetOldID_CONTACTOValue; + property OldTITULAR : String read GetOldTITULARValue; + property OldENTIDAD : String read GetOldENTIDADValue; + property OldSUCURSAL : String read GetOldSUCURSALValue; + property OldDC : String read GetOldDCValue; + property OldCUENTA : String read GetOldCUENTAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + end; + + { TDatosBancariosBusinessProcessorRules } + TDatosBancariosBusinessProcessorRules = class(TDABusinessProcessorRules, IDatosBancarios, IDatosBancariosDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_CONTACTOValue: Integer; virtual; + function GetID_CONTACTOIsNull: Boolean; virtual; + function GetOldID_CONTACTOValue: Integer; virtual; + function GetOldID_CONTACTOIsNull: Boolean; virtual; + procedure SetID_CONTACTOValue(const aValue: Integer); virtual; + procedure SetID_CONTACTOIsNull(const aValue: Boolean); virtual; + function GetTITULARValue: String; virtual; + function GetTITULARIsNull: Boolean; virtual; + function GetOldTITULARValue: String; virtual; + function GetOldTITULARIsNull: Boolean; virtual; + procedure SetTITULARValue(const aValue: String); virtual; + procedure SetTITULARIsNull(const aValue: Boolean); virtual; + function GetENTIDADValue: String; virtual; + function GetENTIDADIsNull: Boolean; virtual; + function GetOldENTIDADValue: String; virtual; + function GetOldENTIDADIsNull: Boolean; virtual; + procedure SetENTIDADValue(const aValue: String); virtual; + procedure SetENTIDADIsNull(const aValue: Boolean); virtual; + function GetSUCURSALValue: String; virtual; + function GetSUCURSALIsNull: Boolean; virtual; + function GetOldSUCURSALValue: String; virtual; + function GetOldSUCURSALIsNull: Boolean; virtual; + procedure SetSUCURSALValue(const aValue: String); virtual; + procedure SetSUCURSALIsNull(const aValue: Boolean); virtual; + function GetDCValue: String; virtual; + function GetDCIsNull: Boolean; virtual; + function GetOldDCValue: String; virtual; + function GetOldDCIsNull: Boolean; virtual; + procedure SetDCValue(const aValue: String); virtual; + procedure SetDCIsNull(const aValue: Boolean); virtual; + function GetCUENTAValue: String; virtual; + function GetCUENTAIsNull: Boolean; virtual; + function GetOldCUENTAValue: String; virtual; + function GetOldCUENTAIsNull: Boolean; virtual; + procedure SetCUENTAValue(const aValue: String); virtual; + procedure SetCUENTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_CONTACTO : Integer read GetID_CONTACTOValue write SetID_CONTACTOValue; + property ID_CONTACTOIsNull : Boolean read GetID_CONTACTOIsNull write SetID_CONTACTOIsNull; + property OldID_CONTACTO : Integer read GetOldID_CONTACTOValue; + property OldID_CONTACTOIsNull : Boolean read GetOldID_CONTACTOIsNull; + property TITULAR : String read GetTITULARValue write SetTITULARValue; + property TITULARIsNull : Boolean read GetTITULARIsNull write SetTITULARIsNull; + property OldTITULAR : String read GetOldTITULARValue; + property OldTITULARIsNull : Boolean read GetOldTITULARIsNull; + property ENTIDAD : String read GetENTIDADValue write SetENTIDADValue; + property ENTIDADIsNull : Boolean read GetENTIDADIsNull write SetENTIDADIsNull; + property OldENTIDAD : String read GetOldENTIDADValue; + property OldENTIDADIsNull : Boolean read GetOldENTIDADIsNull; + property SUCURSAL : String read GetSUCURSALValue write SetSUCURSALValue; + property SUCURSALIsNull : Boolean read GetSUCURSALIsNull write SetSUCURSALIsNull; + property OldSUCURSAL : String read GetOldSUCURSALValue; + property OldSUCURSALIsNull : Boolean read GetOldSUCURSALIsNull; + property DC : String read GetDCValue write SetDCValue; + property DCIsNull : Boolean read GetDCIsNull write SetDCIsNull; + property OldDC : String read GetOldDCValue; + property OldDCIsNull : Boolean read GetOldDCIsNull; + property CUENTA : String read GetCUENTAValue write SetCUENTAValue; + property CUENTAIsNull : Boolean read GetCUENTAIsNull write SetCUENTAIsNull; + property OldCUENTA : String read GetOldCUENTAValue; + property OldCUENTAIsNull : Boolean read GetOldCUENTAIsNull; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull : Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_ALTAIsNull : Boolean read GetOldFECHA_ALTAIsNull; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IClientesDelta } + IClientesDelta = interface(IClientes) + ['{28EFB7E0-62B4-4F3D-A4E0-25254B665748}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_CATEGORIAValue : Integer; + function GetOldNIF_CIFValue : String; + function GetOldNOMBREValue : String; + function GetOldPERSONA_CONTACTOValue : String; + function GetOldCALLEValue : String; + function GetOldPOBLACIONValue : String; + function GetOldPROVINCIAValue : String; + function GetOldCODIGO_POSTALValue : String; + function GetOldTELEFONO_1Value : String; + function GetOldTELEFONO_2Value : String; + function GetOldMOVIL_1Value : String; + function GetOldMOVIL_2Value : String; + function GetOldFAXValue : String; + function GetOldEMAIL_1Value : String; + function GetOldEMAIL_2Value : String; + function GetOldPAGINA_WEBValue : String; + function GetOldNOTASValue : IROStrings; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + function GetOldUSUARIOValue : String; + function GetOldID_EMPRESAValue : Integer; + function GetOldREFERENCIAValue : String; + function GetOldID_AGENTEValue : Integer; + function GetOldGRUPO_CLIENTEValue : String; + function GetOldNOMBRE_COMERCIALValue : String; + function GetOldVENCIMIENTO_FACTURAS_1Value : SmallInt; + function GetOldVENCIMIENTO_FACTURAS_2Value : SmallInt; + function GetOldVENCIMIENTO_FACTURAS_3Value : SmallInt; + function GetOldBLOQUEADOValue : SmallInt; + function GetOldAGENTEValue : String; + function GetOldRAPELValue : SmallInt; + function GetOldEMAIL_ADMINISTRACIONValue : String; + function GetOldREGIMEN_IVAValue : String; + function GetOldMOTIVO_BLOQUEOValue : String; + function GetOldRECARGO_EQUIVALENCIAValue : Integer; + function GetOldID_TIPO_IVAValue : Integer; + function GetOldID_FORMA_PAGOValue : Integer; + function GetOldTIENDA_WEBValue : SmallInt; + function GetOldCODIGO_ASIGNADOValue : String; + function GetOldDESCUENTOValue : Float; + function GetOldFELICITACIONValue : SmallInt; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_CATEGORIA : Integer read GetOldID_CATEGORIAValue; + property OldNIF_CIF : String read GetOldNIF_CIFValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property OldCALLE : String read GetOldCALLEValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property OldTELEFONO_1 : String read GetOldTELEFONO_1Value; + property OldTELEFONO_2 : String read GetOldTELEFONO_2Value; + property OldMOVIL_1 : String read GetOldMOVIL_1Value; + property OldMOVIL_2 : String read GetOldMOVIL_2Value; + property OldFAX : String read GetOldFAXValue; + property OldEMAIL_1 : String read GetOldEMAIL_1Value; + property OldEMAIL_2 : String read GetOldEMAIL_2Value; + property OldPAGINA_WEB : String read GetOldPAGINA_WEBValue; + property OldNOTAS : IROStrings read GetOldNOTASValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldID_AGENTE : Integer read GetOldID_AGENTEValue; + property OldGRUPO_CLIENTE : String read GetOldGRUPO_CLIENTEValue; + property OldNOMBRE_COMERCIAL : String read GetOldNOMBRE_COMERCIALValue; + property OldVENCIMIENTO_FACTURAS_1 : SmallInt read GetOldVENCIMIENTO_FACTURAS_1Value; + property OldVENCIMIENTO_FACTURAS_2 : SmallInt read GetOldVENCIMIENTO_FACTURAS_2Value; + property OldVENCIMIENTO_FACTURAS_3 : SmallInt read GetOldVENCIMIENTO_FACTURAS_3Value; + property OldBLOQUEADO : SmallInt read GetOldBLOQUEADOValue; + property OldAGENTE : String read GetOldAGENTEValue; + property OldRAPEL : SmallInt read GetOldRAPELValue; + property OldEMAIL_ADMINISTRACION : String read GetOldEMAIL_ADMINISTRACIONValue; + property OldREGIMEN_IVA : String read GetOldREGIMEN_IVAValue; + property OldMOTIVO_BLOQUEO : String read GetOldMOTIVO_BLOQUEOValue; + property OldRECARGO_EQUIVALENCIA : Integer read GetOldRECARGO_EQUIVALENCIAValue; + property OldID_TIPO_IVA : Integer read GetOldID_TIPO_IVAValue; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + property OldTIENDA_WEB : SmallInt read GetOldTIENDA_WEBValue; + property OldCODIGO_ASIGNADO : String read GetOldCODIGO_ASIGNADOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldFELICITACION : SmallInt read GetOldFELICITACIONValue; + end; + + { TClientesBusinessProcessorRules } + TClientesBusinessProcessorRules = class(TDABusinessProcessorRules, IClientes, IClientesDelta) + private + f_NOTAS: IROStrings; + procedure NOTAS_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_CATEGORIAValue: Integer; virtual; + function GetID_CATEGORIAIsNull: Boolean; virtual; + function GetOldID_CATEGORIAValue: Integer; virtual; + function GetOldID_CATEGORIAIsNull: Boolean; virtual; + procedure SetID_CATEGORIAValue(const aValue: Integer); virtual; + procedure SetID_CATEGORIAIsNull(const aValue: Boolean); virtual; + function GetNIF_CIFValue: String; virtual; + function GetNIF_CIFIsNull: Boolean; virtual; + function GetOldNIF_CIFValue: String; virtual; + function GetOldNIF_CIFIsNull: Boolean; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + procedure SetNIF_CIFIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + function GetNOMBREIsNull: Boolean; virtual; + function GetOldNOMBREValue: String; virtual; + function GetOldNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + function GetPERSONA_CONTACTOIsNull: Boolean; virtual; + function GetOldPERSONA_CONTACTOValue: String; virtual; + function GetOldPERSONA_CONTACTOIsNull: Boolean; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); virtual; + function GetCALLEValue: String; virtual; + function GetCALLEIsNull: Boolean; virtual; + function GetOldCALLEValue: String; virtual; + function GetOldCALLEIsNull: Boolean; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + procedure SetCALLEIsNull(const aValue: Boolean); virtual; + function GetPOBLACIONValue: String; virtual; + function GetPOBLACIONIsNull: Boolean; virtual; + function GetOldPOBLACIONValue: String; virtual; + function GetOldPOBLACIONIsNull: Boolean; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual; + function GetPROVINCIAValue: String; virtual; + function GetPROVINCIAIsNull: Boolean; virtual; + function GetOldPROVINCIAValue: String; virtual; + function GetOldPROVINCIAIsNull: Boolean; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetCODIGO_POSTALIsNull: Boolean; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALIsNull: Boolean; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual; + function GetTELEFONO_1Value: String; virtual; + function GetTELEFONO_1IsNull: Boolean; virtual; + function GetOldTELEFONO_1Value: String; virtual; + function GetOldTELEFONO_1IsNull: Boolean; virtual; + procedure SetTELEFONO_1Value(const aValue: String); virtual; + procedure SetTELEFONO_1IsNull(const aValue: Boolean); virtual; + function GetTELEFONO_2Value: String; virtual; + function GetTELEFONO_2IsNull: Boolean; virtual; + function GetOldTELEFONO_2Value: String; virtual; + function GetOldTELEFONO_2IsNull: Boolean; virtual; + procedure SetTELEFONO_2Value(const aValue: String); virtual; + procedure SetTELEFONO_2IsNull(const aValue: Boolean); virtual; + function GetMOVIL_1Value: String; virtual; + function GetMOVIL_1IsNull: Boolean; virtual; + function GetOldMOVIL_1Value: String; virtual; + function GetOldMOVIL_1IsNull: Boolean; virtual; + procedure SetMOVIL_1Value(const aValue: String); virtual; + procedure SetMOVIL_1IsNull(const aValue: Boolean); virtual; + function GetMOVIL_2Value: String; virtual; + function GetMOVIL_2IsNull: Boolean; virtual; + function GetOldMOVIL_2Value: String; virtual; + function GetOldMOVIL_2IsNull: Boolean; virtual; + procedure SetMOVIL_2Value(const aValue: String); virtual; + procedure SetMOVIL_2IsNull(const aValue: Boolean); virtual; + function GetFAXValue: String; virtual; + function GetFAXIsNull: Boolean; virtual; + function GetOldFAXValue: String; virtual; + function GetOldFAXIsNull: Boolean; virtual; + procedure SetFAXValue(const aValue: String); virtual; + procedure SetFAXIsNull(const aValue: Boolean); virtual; + function GetEMAIL_1Value: String; virtual; + function GetEMAIL_1IsNull: Boolean; virtual; + function GetOldEMAIL_1Value: String; virtual; + function GetOldEMAIL_1IsNull: Boolean; virtual; + procedure SetEMAIL_1Value(const aValue: String); virtual; + procedure SetEMAIL_1IsNull(const aValue: Boolean); virtual; + function GetEMAIL_2Value: String; virtual; + function GetEMAIL_2IsNull: Boolean; virtual; + function GetOldEMAIL_2Value: String; virtual; + function GetOldEMAIL_2IsNull: Boolean; virtual; + procedure SetEMAIL_2Value(const aValue: String); virtual; + procedure SetEMAIL_2IsNull(const aValue: Boolean); virtual; + function GetPAGINA_WEBValue: String; virtual; + function GetPAGINA_WEBIsNull: Boolean; virtual; + function GetOldPAGINA_WEBValue: String; virtual; + function GetOldPAGINA_WEBIsNull: Boolean; virtual; + procedure SetPAGINA_WEBValue(const aValue: String); virtual; + procedure SetPAGINA_WEBIsNull(const aValue: Boolean); virtual; + function GetNOTASValue: IROStrings; virtual; + function GetNOTASIsNull: Boolean; virtual; + function GetOldNOTASValue: IROStrings; virtual; + function GetOldNOTASIsNull: Boolean; virtual; + procedure SetNOTASIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + function GetUSUARIOIsNull: Boolean; virtual; + function GetOldUSUARIOValue: String; virtual; + function GetOldUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetID_AGENTEValue: Integer; virtual; + function GetID_AGENTEIsNull: Boolean; virtual; + function GetOldID_AGENTEValue: Integer; virtual; + function GetOldID_AGENTEIsNull: Boolean; virtual; + procedure SetID_AGENTEValue(const aValue: Integer); virtual; + procedure SetID_AGENTEIsNull(const aValue: Boolean); virtual; + function GetGRUPO_CLIENTEValue: String; virtual; + function GetGRUPO_CLIENTEIsNull: Boolean; virtual; + function GetOldGRUPO_CLIENTEValue: String; virtual; + function GetOldGRUPO_CLIENTEIsNull: Boolean; virtual; + procedure SetGRUPO_CLIENTEValue(const aValue: String); virtual; + procedure SetGRUPO_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetNOMBRE_COMERCIALValue: String; virtual; + function GetNOMBRE_COMERCIALIsNull: Boolean; virtual; + function GetOldNOMBRE_COMERCIALValue: String; virtual; + function GetOldNOMBRE_COMERCIALIsNull: Boolean; virtual; + procedure SetNOMBRE_COMERCIALValue(const aValue: String); virtual; + procedure SetNOMBRE_COMERCIALIsNull(const aValue: Boolean); virtual; + function GetVENCIMIENTO_FACTURAS_1Value: SmallInt; virtual; + function GetVENCIMIENTO_FACTURAS_1IsNull: Boolean; virtual; + function GetOldVENCIMIENTO_FACTURAS_1Value: SmallInt; virtual; + function GetOldVENCIMIENTO_FACTURAS_1IsNull: Boolean; virtual; + procedure SetVENCIMIENTO_FACTURAS_1Value(const aValue: SmallInt); virtual; + procedure SetVENCIMIENTO_FACTURAS_1IsNull(const aValue: Boolean); virtual; + function GetVENCIMIENTO_FACTURAS_2Value: SmallInt; virtual; + function GetVENCIMIENTO_FACTURAS_2IsNull: Boolean; virtual; + function GetOldVENCIMIENTO_FACTURAS_2Value: SmallInt; virtual; + function GetOldVENCIMIENTO_FACTURAS_2IsNull: Boolean; virtual; + procedure SetVENCIMIENTO_FACTURAS_2Value(const aValue: SmallInt); virtual; + procedure SetVENCIMIENTO_FACTURAS_2IsNull(const aValue: Boolean); virtual; + function GetVENCIMIENTO_FACTURAS_3Value: SmallInt; virtual; + function GetVENCIMIENTO_FACTURAS_3IsNull: Boolean; virtual; + function GetOldVENCIMIENTO_FACTURAS_3Value: SmallInt; virtual; + function GetOldVENCIMIENTO_FACTURAS_3IsNull: Boolean; virtual; + procedure SetVENCIMIENTO_FACTURAS_3Value(const aValue: SmallInt); virtual; + procedure SetVENCIMIENTO_FACTURAS_3IsNull(const aValue: Boolean); virtual; + function GetBLOQUEADOValue: SmallInt; virtual; + function GetBLOQUEADOIsNull: Boolean; virtual; + function GetOldBLOQUEADOValue: SmallInt; virtual; + function GetOldBLOQUEADOIsNull: Boolean; virtual; + procedure SetBLOQUEADOValue(const aValue: SmallInt); virtual; + procedure SetBLOQUEADOIsNull(const aValue: Boolean); virtual; + function GetAGENTEValue: String; virtual; + function GetAGENTEIsNull: Boolean; virtual; + function GetOldAGENTEValue: String; virtual; + function GetOldAGENTEIsNull: Boolean; virtual; + procedure SetAGENTEValue(const aValue: String); virtual; + procedure SetAGENTEIsNull(const aValue: Boolean); virtual; + function GetRAPELValue: SmallInt; virtual; + function GetRAPELIsNull: Boolean; virtual; + function GetOldRAPELValue: SmallInt; virtual; + function GetOldRAPELIsNull: Boolean; virtual; + procedure SetRAPELValue(const aValue: SmallInt); virtual; + procedure SetRAPELIsNull(const aValue: Boolean); virtual; + function GetEMAIL_ADMINISTRACIONValue: String; virtual; + function GetEMAIL_ADMINISTRACIONIsNull: Boolean; virtual; + function GetOldEMAIL_ADMINISTRACIONValue: String; virtual; + function GetOldEMAIL_ADMINISTRACIONIsNull: Boolean; virtual; + procedure SetEMAIL_ADMINISTRACIONValue(const aValue: String); virtual; + procedure SetEMAIL_ADMINISTRACIONIsNull(const aValue: Boolean); virtual; + function GetREGIMEN_IVAValue: String; virtual; + function GetREGIMEN_IVAIsNull: Boolean; virtual; + function GetOldREGIMEN_IVAValue: String; virtual; + function GetOldREGIMEN_IVAIsNull: Boolean; virtual; + procedure SetREGIMEN_IVAValue(const aValue: String); virtual; + procedure SetREGIMEN_IVAIsNull(const aValue: Boolean); virtual; + function GetMOTIVO_BLOQUEOValue: String; virtual; + function GetMOTIVO_BLOQUEOIsNull: Boolean; virtual; + function GetOldMOTIVO_BLOQUEOValue: String; virtual; + function GetOldMOTIVO_BLOQUEOIsNull: Boolean; virtual; + procedure SetMOTIVO_BLOQUEOValue(const aValue: String); virtual; + procedure SetMOTIVO_BLOQUEOIsNull(const aValue: Boolean); virtual; + function GetRECARGO_EQUIVALENCIAValue: Integer; virtual; + function GetRECARGO_EQUIVALENCIAIsNull: Boolean; virtual; + function GetOldRECARGO_EQUIVALENCIAValue: Integer; virtual; + function GetOldRECARGO_EQUIVALENCIAIsNull: Boolean; virtual; + procedure SetRECARGO_EQUIVALENCIAValue(const aValue: Integer); virtual; + procedure SetRECARGO_EQUIVALENCIAIsNull(const aValue: Boolean); virtual; + function GetID_TIPO_IVAValue: Integer; virtual; + function GetID_TIPO_IVAIsNull: Boolean; virtual; + function GetOldID_TIPO_IVAValue: Integer; virtual; + function GetOldID_TIPO_IVAIsNull: Boolean; virtual; + procedure SetID_TIPO_IVAValue(const aValue: Integer); virtual; + procedure SetID_TIPO_IVAIsNull(const aValue: Boolean); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + function GetID_FORMA_PAGOIsNull: Boolean; virtual; + function GetOldID_FORMA_PAGOValue: Integer; virtual; + function GetOldID_FORMA_PAGOIsNull: Boolean; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + procedure SetID_FORMA_PAGOIsNull(const aValue: Boolean); virtual; + function GetTIENDA_WEBValue: SmallInt; virtual; + function GetTIENDA_WEBIsNull: Boolean; virtual; + function GetOldTIENDA_WEBValue: SmallInt; virtual; + function GetOldTIENDA_WEBIsNull: Boolean; virtual; + procedure SetTIENDA_WEBValue(const aValue: SmallInt); virtual; + procedure SetTIENDA_WEBIsNull(const aValue: Boolean); virtual; + function GetCODIGO_ASIGNADOValue: String; virtual; + function GetCODIGO_ASIGNADOIsNull: Boolean; virtual; + function GetOldCODIGO_ASIGNADOValue: String; virtual; + function GetOldCODIGO_ASIGNADOIsNull: Boolean; virtual; + procedure SetCODIGO_ASIGNADOValue(const aValue: String); virtual; + procedure SetCODIGO_ASIGNADOIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + function GetOldDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetFELICITACIONValue: SmallInt; virtual; + function GetFELICITACIONIsNull: Boolean; virtual; + function GetOldFELICITACIONValue: SmallInt; virtual; + function GetOldFELICITACIONIsNull: Boolean; virtual; + procedure SetFELICITACIONValue(const aValue: SmallInt); virtual; + procedure SetFELICITACIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_CATEGORIA : Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue; + property ID_CATEGORIAIsNull : Boolean read GetID_CATEGORIAIsNull write SetID_CATEGORIAIsNull; + property OldID_CATEGORIA : Integer read GetOldID_CATEGORIAValue; + property OldID_CATEGORIAIsNull : Boolean read GetOldID_CATEGORIAIsNull; + property NIF_CIF : String read GetNIF_CIFValue write SetNIF_CIFValue; + property NIF_CIFIsNull : Boolean read GetNIF_CIFIsNull write SetNIF_CIFIsNull; + property OldNIF_CIF : String read GetOldNIF_CIFValue; + property OldNIF_CIFIsNull : Boolean read GetOldNIF_CIFIsNull; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull : Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldNOMBREIsNull : Boolean read GetOldNOMBREIsNull; + property PERSONA_CONTACTO : String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull : Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property OldPERSONA_CONTACTOIsNull : Boolean read GetOldPERSONA_CONTACTOIsNull; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull : Boolean read GetCALLEIsNull write SetCALLEIsNull; + property OldCALLE : String read GetOldCALLEValue; + property OldCALLEIsNull : Boolean read GetOldCALLEIsNull; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull : Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property OldPOBLACIONIsNull : Boolean read GetOldPOBLACIONIsNull; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull : Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property OldPROVINCIAIsNull : Boolean read GetOldPROVINCIAIsNull; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull : Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property OldCODIGO_POSTALIsNull : Boolean read GetOldCODIGO_POSTALIsNull; + property TELEFONO_1 : String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_1IsNull : Boolean read GetTELEFONO_1IsNull write SetTELEFONO_1IsNull; + property OldTELEFONO_1 : String read GetOldTELEFONO_1Value; + property OldTELEFONO_1IsNull : Boolean read GetOldTELEFONO_1IsNull; + property TELEFONO_2 : String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property TELEFONO_2IsNull : Boolean read GetTELEFONO_2IsNull write SetTELEFONO_2IsNull; + property OldTELEFONO_2 : String read GetOldTELEFONO_2Value; + property OldTELEFONO_2IsNull : Boolean read GetOldTELEFONO_2IsNull; + property MOVIL_1 : String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_1IsNull : Boolean read GetMOVIL_1IsNull write SetMOVIL_1IsNull; + property OldMOVIL_1 : String read GetOldMOVIL_1Value; + property OldMOVIL_1IsNull : Boolean read GetOldMOVIL_1IsNull; + property MOVIL_2 : String read GetMOVIL_2Value write SetMOVIL_2Value; + property MOVIL_2IsNull : Boolean read GetMOVIL_2IsNull write SetMOVIL_2IsNull; + property OldMOVIL_2 : String read GetOldMOVIL_2Value; + property OldMOVIL_2IsNull : Boolean read GetOldMOVIL_2IsNull; + property FAX : String read GetFAXValue write SetFAXValue; + property FAXIsNull : Boolean read GetFAXIsNull write SetFAXIsNull; + property OldFAX : String read GetOldFAXValue; + property OldFAXIsNull : Boolean read GetOldFAXIsNull; + property EMAIL_1 : String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_1IsNull : Boolean read GetEMAIL_1IsNull write SetEMAIL_1IsNull; + property OldEMAIL_1 : String read GetOldEMAIL_1Value; + property OldEMAIL_1IsNull : Boolean read GetOldEMAIL_1IsNull; + property EMAIL_2 : String read GetEMAIL_2Value write SetEMAIL_2Value; + property EMAIL_2IsNull : Boolean read GetEMAIL_2IsNull write SetEMAIL_2IsNull; + property OldEMAIL_2 : String read GetOldEMAIL_2Value; + property OldEMAIL_2IsNull : Boolean read GetOldEMAIL_2IsNull; + property PAGINA_WEB : String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property PAGINA_WEBIsNull : Boolean read GetPAGINA_WEBIsNull write SetPAGINA_WEBIsNull; + property OldPAGINA_WEB : String read GetOldPAGINA_WEBValue; + property OldPAGINA_WEBIsNull : Boolean read GetOldPAGINA_WEBIsNull; + property NOTAS : IROStrings read GetNOTASValue; + property NOTASIsNull : Boolean read GetNOTASIsNull write SetNOTASIsNull; + property OldNOTAS : IROStrings read GetOldNOTASValue; + property OldNOTASIsNull : Boolean read GetOldNOTASIsNull; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull : Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_ALTAIsNull : Boolean read GetOldFECHA_ALTAIsNull; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull : Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldUSUARIOIsNull : Boolean read GetOldUSUARIOIsNull; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull : Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_EMPRESAIsNull : Boolean read GetOldID_EMPRESAIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property ID_AGENTE : Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property ID_AGENTEIsNull : Boolean read GetID_AGENTEIsNull write SetID_AGENTEIsNull; + property OldID_AGENTE : Integer read GetOldID_AGENTEValue; + property OldID_AGENTEIsNull : Boolean read GetOldID_AGENTEIsNull; + property GRUPO_CLIENTE : String read GetGRUPO_CLIENTEValue write SetGRUPO_CLIENTEValue; + property GRUPO_CLIENTEIsNull : Boolean read GetGRUPO_CLIENTEIsNull write SetGRUPO_CLIENTEIsNull; + property OldGRUPO_CLIENTE : String read GetOldGRUPO_CLIENTEValue; + property OldGRUPO_CLIENTEIsNull : Boolean read GetOldGRUPO_CLIENTEIsNull; + property NOMBRE_COMERCIAL : String read GetNOMBRE_COMERCIALValue write SetNOMBRE_COMERCIALValue; + property NOMBRE_COMERCIALIsNull : Boolean read GetNOMBRE_COMERCIALIsNull write SetNOMBRE_COMERCIALIsNull; + property OldNOMBRE_COMERCIAL : String read GetOldNOMBRE_COMERCIALValue; + property OldNOMBRE_COMERCIALIsNull : Boolean read GetOldNOMBRE_COMERCIALIsNull; + property VENCIMIENTO_FACTURAS_1 : SmallInt read GetVENCIMIENTO_FACTURAS_1Value write SetVENCIMIENTO_FACTURAS_1Value; + property VENCIMIENTO_FACTURAS_1IsNull : Boolean read GetVENCIMIENTO_FACTURAS_1IsNull write SetVENCIMIENTO_FACTURAS_1IsNull; + property OldVENCIMIENTO_FACTURAS_1 : SmallInt read GetOldVENCIMIENTO_FACTURAS_1Value; + property OldVENCIMIENTO_FACTURAS_1IsNull : Boolean read GetOldVENCIMIENTO_FACTURAS_1IsNull; + property VENCIMIENTO_FACTURAS_2 : SmallInt read GetVENCIMIENTO_FACTURAS_2Value write SetVENCIMIENTO_FACTURAS_2Value; + property VENCIMIENTO_FACTURAS_2IsNull : Boolean read GetVENCIMIENTO_FACTURAS_2IsNull write SetVENCIMIENTO_FACTURAS_2IsNull; + property OldVENCIMIENTO_FACTURAS_2 : SmallInt read GetOldVENCIMIENTO_FACTURAS_2Value; + property OldVENCIMIENTO_FACTURAS_2IsNull : Boolean read GetOldVENCIMIENTO_FACTURAS_2IsNull; + property VENCIMIENTO_FACTURAS_3 : SmallInt read GetVENCIMIENTO_FACTURAS_3Value write SetVENCIMIENTO_FACTURAS_3Value; + property VENCIMIENTO_FACTURAS_3IsNull : Boolean read GetVENCIMIENTO_FACTURAS_3IsNull write SetVENCIMIENTO_FACTURAS_3IsNull; + property OldVENCIMIENTO_FACTURAS_3 : SmallInt read GetOldVENCIMIENTO_FACTURAS_3Value; + property OldVENCIMIENTO_FACTURAS_3IsNull : Boolean read GetOldVENCIMIENTO_FACTURAS_3IsNull; + property BLOQUEADO : SmallInt read GetBLOQUEADOValue write SetBLOQUEADOValue; + property BLOQUEADOIsNull : Boolean read GetBLOQUEADOIsNull write SetBLOQUEADOIsNull; + property OldBLOQUEADO : SmallInt read GetOldBLOQUEADOValue; + property OldBLOQUEADOIsNull : Boolean read GetOldBLOQUEADOIsNull; + property AGENTE : String read GetAGENTEValue write SetAGENTEValue; + property AGENTEIsNull : Boolean read GetAGENTEIsNull write SetAGENTEIsNull; + property OldAGENTE : String read GetOldAGENTEValue; + property OldAGENTEIsNull : Boolean read GetOldAGENTEIsNull; + property RAPEL : SmallInt read GetRAPELValue write SetRAPELValue; + property RAPELIsNull : Boolean read GetRAPELIsNull write SetRAPELIsNull; + property OldRAPEL : SmallInt read GetOldRAPELValue; + property OldRAPELIsNull : Boolean read GetOldRAPELIsNull; + property EMAIL_ADMINISTRACION : String read GetEMAIL_ADMINISTRACIONValue write SetEMAIL_ADMINISTRACIONValue; + property EMAIL_ADMINISTRACIONIsNull : Boolean read GetEMAIL_ADMINISTRACIONIsNull write SetEMAIL_ADMINISTRACIONIsNull; + property OldEMAIL_ADMINISTRACION : String read GetOldEMAIL_ADMINISTRACIONValue; + property OldEMAIL_ADMINISTRACIONIsNull : Boolean read GetOldEMAIL_ADMINISTRACIONIsNull; + property REGIMEN_IVA : String read GetREGIMEN_IVAValue write SetREGIMEN_IVAValue; + property REGIMEN_IVAIsNull : Boolean read GetREGIMEN_IVAIsNull write SetREGIMEN_IVAIsNull; + property OldREGIMEN_IVA : String read GetOldREGIMEN_IVAValue; + property OldREGIMEN_IVAIsNull : Boolean read GetOldREGIMEN_IVAIsNull; + property MOTIVO_BLOQUEO : String read GetMOTIVO_BLOQUEOValue write SetMOTIVO_BLOQUEOValue; + property MOTIVO_BLOQUEOIsNull : Boolean read GetMOTIVO_BLOQUEOIsNull write SetMOTIVO_BLOQUEOIsNull; + property OldMOTIVO_BLOQUEO : String read GetOldMOTIVO_BLOQUEOValue; + property OldMOTIVO_BLOQUEOIsNull : Boolean read GetOldMOTIVO_BLOQUEOIsNull; + property RECARGO_EQUIVALENCIA : Integer read GetRECARGO_EQUIVALENCIAValue write SetRECARGO_EQUIVALENCIAValue; + property RECARGO_EQUIVALENCIAIsNull : Boolean read GetRECARGO_EQUIVALENCIAIsNull write SetRECARGO_EQUIVALENCIAIsNull; + property OldRECARGO_EQUIVALENCIA : Integer read GetOldRECARGO_EQUIVALENCIAValue; + property OldRECARGO_EQUIVALENCIAIsNull : Boolean read GetOldRECARGO_EQUIVALENCIAIsNull; + property ID_TIPO_IVA : Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue; + property ID_TIPO_IVAIsNull : Boolean read GetID_TIPO_IVAIsNull write SetID_TIPO_IVAIsNull; + property OldID_TIPO_IVA : Integer read GetOldID_TIPO_IVAValue; + property OldID_TIPO_IVAIsNull : Boolean read GetOldID_TIPO_IVAIsNull; + property ID_FORMA_PAGO : Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property ID_FORMA_PAGOIsNull : Boolean read GetID_FORMA_PAGOIsNull write SetID_FORMA_PAGOIsNull; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + property OldID_FORMA_PAGOIsNull : Boolean read GetOldID_FORMA_PAGOIsNull; + property TIENDA_WEB : SmallInt read GetTIENDA_WEBValue write SetTIENDA_WEBValue; + property TIENDA_WEBIsNull : Boolean read GetTIENDA_WEBIsNull write SetTIENDA_WEBIsNull; + property OldTIENDA_WEB : SmallInt read GetOldTIENDA_WEBValue; + property OldTIENDA_WEBIsNull : Boolean read GetOldTIENDA_WEBIsNull; + property CODIGO_ASIGNADO : String read GetCODIGO_ASIGNADOValue write SetCODIGO_ASIGNADOValue; + property CODIGO_ASIGNADOIsNull : Boolean read GetCODIGO_ASIGNADOIsNull write SetCODIGO_ASIGNADOIsNull; + property OldCODIGO_ASIGNADO : String read GetOldCODIGO_ASIGNADOValue; + property OldCODIGO_ASIGNADOIsNull : Boolean read GetOldCODIGO_ASIGNADOIsNull; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull : Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldDESCUENTOIsNull : Boolean read GetOldDESCUENTOIsNull; + property FELICITACION : SmallInt read GetFELICITACIONValue write SetFELICITACIONValue; + property FELICITACIONIsNull : Boolean read GetFELICITACIONIsNull write SetFELICITACIONIsNull; + property OldFELICITACION : SmallInt read GetOldFELICITACIONValue; + property OldFELICITACIONIsNull : Boolean read GetOldFELICITACIONIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IProveedoresDelta } + IProveedoresDelta = interface(IProveedores) + ['{AEECF2DF-D7F7-42E7-9081-76778714FF75}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_CATEGORIAValue : Integer; + function GetOldNIF_CIFValue : String; + function GetOldNOMBREValue : String; + function GetOldPERSONA_CONTACTOValue : String; + function GetOldCALLEValue : String; + function GetOldPOBLACIONValue : String; + function GetOldPROVINCIAValue : String; + function GetOldCODIGO_POSTALValue : String; + function GetOldTELEFONO_1Value : String; + function GetOldTELEFONO_2Value : String; + function GetOldMOVIL_1Value : String; + function GetOldMOVIL_2Value : String; + function GetOldFAXValue : String; + function GetOldEMAIL_1Value : String; + function GetOldEMAIL_2Value : String; + function GetOldPAGINA_WEBValue : String; + function GetOldNOTASValue : IROStrings; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + function GetOldUSUARIOValue : String; + function GetOldID_EMPRESAValue : Integer; + function GetOldREFERENCIAValue : String; + function GetOldDESCUENTOValue : Float; + function GetOldDESCRIPCION_PROVEEDORValue : String; + function GetOldCODIGO_ASIGNADOValue : String; + function GetOldGRUPO_PROVEEDORValue : String; + function GetOldREGIMEN_IVAValue : String; + function GetOldID_TIPO_IVAValue : Integer; + function GetOldID_FORMA_PAGOValue : Integer; + function GetOldTIENDA_WEBValue : SmallInt; + function GetOldHOMOLOGADOValue : SmallInt; + function GetOldCERTIFICACIONValue : String; + function GetOldSUBCONTRATAValue : SmallInt; + function GetOldEMAIL_ADMINISTRACIONValue : String; + function GetOldVENCIMIENTO_FACTURAS_1Value : SmallInt; + function GetOldVENCIMIENTO_FACTURAS_2Value : SmallInt; + function GetOldVENCIMIENTO_FACTURAS_3Value : SmallInt; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_CATEGORIA : Integer read GetOldID_CATEGORIAValue; + property OldNIF_CIF : String read GetOldNIF_CIFValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property OldCALLE : String read GetOldCALLEValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property OldTELEFONO_1 : String read GetOldTELEFONO_1Value; + property OldTELEFONO_2 : String read GetOldTELEFONO_2Value; + property OldMOVIL_1 : String read GetOldMOVIL_1Value; + property OldMOVIL_2 : String read GetOldMOVIL_2Value; + property OldFAX : String read GetOldFAXValue; + property OldEMAIL_1 : String read GetOldEMAIL_1Value; + property OldEMAIL_2 : String read GetOldEMAIL_2Value; + property OldPAGINA_WEB : String read GetOldPAGINA_WEBValue; + property OldNOTAS : IROStrings read GetOldNOTASValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldDESCRIPCION_PROVEEDOR : String read GetOldDESCRIPCION_PROVEEDORValue; + property OldCODIGO_ASIGNADO : String read GetOldCODIGO_ASIGNADOValue; + property OldGRUPO_PROVEEDOR : String read GetOldGRUPO_PROVEEDORValue; + property OldREGIMEN_IVA : String read GetOldREGIMEN_IVAValue; + property OldID_TIPO_IVA : Integer read GetOldID_TIPO_IVAValue; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + property OldTIENDA_WEB : SmallInt read GetOldTIENDA_WEBValue; + property OldHOMOLOGADO : SmallInt read GetOldHOMOLOGADOValue; + property OldCERTIFICACION : String read GetOldCERTIFICACIONValue; + property OldSUBCONTRATA : SmallInt read GetOldSUBCONTRATAValue; + property OldEMAIL_ADMINISTRACION : String read GetOldEMAIL_ADMINISTRACIONValue; + property OldVENCIMIENTO_FACTURAS_1 : SmallInt read GetOldVENCIMIENTO_FACTURAS_1Value; + property OldVENCIMIENTO_FACTURAS_2 : SmallInt read GetOldVENCIMIENTO_FACTURAS_2Value; + property OldVENCIMIENTO_FACTURAS_3 : SmallInt read GetOldVENCIMIENTO_FACTURAS_3Value; + end; + + { TProveedoresBusinessProcessorRules } + TProveedoresBusinessProcessorRules = class(TDABusinessProcessorRules, IProveedores, IProveedoresDelta) + private + f_NOTAS: IROStrings; + procedure NOTAS_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_CATEGORIAValue: Integer; virtual; + function GetID_CATEGORIAIsNull: Boolean; virtual; + function GetOldID_CATEGORIAValue: Integer; virtual; + function GetOldID_CATEGORIAIsNull: Boolean; virtual; + procedure SetID_CATEGORIAValue(const aValue: Integer); virtual; + procedure SetID_CATEGORIAIsNull(const aValue: Boolean); virtual; + function GetNIF_CIFValue: String; virtual; + function GetNIF_CIFIsNull: Boolean; virtual; + function GetOldNIF_CIFValue: String; virtual; + function GetOldNIF_CIFIsNull: Boolean; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + procedure SetNIF_CIFIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + function GetNOMBREIsNull: Boolean; virtual; + function GetOldNOMBREValue: String; virtual; + function GetOldNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + function GetPERSONA_CONTACTOIsNull: Boolean; virtual; + function GetOldPERSONA_CONTACTOValue: String; virtual; + function GetOldPERSONA_CONTACTOIsNull: Boolean; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); virtual; + function GetCALLEValue: String; virtual; + function GetCALLEIsNull: Boolean; virtual; + function GetOldCALLEValue: String; virtual; + function GetOldCALLEIsNull: Boolean; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + procedure SetCALLEIsNull(const aValue: Boolean); virtual; + function GetPOBLACIONValue: String; virtual; + function GetPOBLACIONIsNull: Boolean; virtual; + function GetOldPOBLACIONValue: String; virtual; + function GetOldPOBLACIONIsNull: Boolean; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual; + function GetPROVINCIAValue: String; virtual; + function GetPROVINCIAIsNull: Boolean; virtual; + function GetOldPROVINCIAValue: String; virtual; + function GetOldPROVINCIAIsNull: Boolean; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetCODIGO_POSTALIsNull: Boolean; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALIsNull: Boolean; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual; + function GetTELEFONO_1Value: String; virtual; + function GetTELEFONO_1IsNull: Boolean; virtual; + function GetOldTELEFONO_1Value: String; virtual; + function GetOldTELEFONO_1IsNull: Boolean; virtual; + procedure SetTELEFONO_1Value(const aValue: String); virtual; + procedure SetTELEFONO_1IsNull(const aValue: Boolean); virtual; + function GetTELEFONO_2Value: String; virtual; + function GetTELEFONO_2IsNull: Boolean; virtual; + function GetOldTELEFONO_2Value: String; virtual; + function GetOldTELEFONO_2IsNull: Boolean; virtual; + procedure SetTELEFONO_2Value(const aValue: String); virtual; + procedure SetTELEFONO_2IsNull(const aValue: Boolean); virtual; + function GetMOVIL_1Value: String; virtual; + function GetMOVIL_1IsNull: Boolean; virtual; + function GetOldMOVIL_1Value: String; virtual; + function GetOldMOVIL_1IsNull: Boolean; virtual; + procedure SetMOVIL_1Value(const aValue: String); virtual; + procedure SetMOVIL_1IsNull(const aValue: Boolean); virtual; + function GetMOVIL_2Value: String; virtual; + function GetMOVIL_2IsNull: Boolean; virtual; + function GetOldMOVIL_2Value: String; virtual; + function GetOldMOVIL_2IsNull: Boolean; virtual; + procedure SetMOVIL_2Value(const aValue: String); virtual; + procedure SetMOVIL_2IsNull(const aValue: Boolean); virtual; + function GetFAXValue: String; virtual; + function GetFAXIsNull: Boolean; virtual; + function GetOldFAXValue: String; virtual; + function GetOldFAXIsNull: Boolean; virtual; + procedure SetFAXValue(const aValue: String); virtual; + procedure SetFAXIsNull(const aValue: Boolean); virtual; + function GetEMAIL_1Value: String; virtual; + function GetEMAIL_1IsNull: Boolean; virtual; + function GetOldEMAIL_1Value: String; virtual; + function GetOldEMAIL_1IsNull: Boolean; virtual; + procedure SetEMAIL_1Value(const aValue: String); virtual; + procedure SetEMAIL_1IsNull(const aValue: Boolean); virtual; + function GetEMAIL_2Value: String; virtual; + function GetEMAIL_2IsNull: Boolean; virtual; + function GetOldEMAIL_2Value: String; virtual; + function GetOldEMAIL_2IsNull: Boolean; virtual; + procedure SetEMAIL_2Value(const aValue: String); virtual; + procedure SetEMAIL_2IsNull(const aValue: Boolean); virtual; + function GetPAGINA_WEBValue: String; virtual; + function GetPAGINA_WEBIsNull: Boolean; virtual; + function GetOldPAGINA_WEBValue: String; virtual; + function GetOldPAGINA_WEBIsNull: Boolean; virtual; + procedure SetPAGINA_WEBValue(const aValue: String); virtual; + procedure SetPAGINA_WEBIsNull(const aValue: Boolean); virtual; + function GetNOTASValue: IROStrings; virtual; + function GetNOTASIsNull: Boolean; virtual; + function GetOldNOTASValue: IROStrings; virtual; + function GetOldNOTASIsNull: Boolean; virtual; + procedure SetNOTASIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + function GetUSUARIOIsNull: Boolean; virtual; + function GetOldUSUARIOValue: String; virtual; + function GetOldUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + function GetOldDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCION_PROVEEDORValue: String; virtual; + function GetDESCRIPCION_PROVEEDORIsNull: Boolean; virtual; + function GetOldDESCRIPCION_PROVEEDORValue: String; virtual; + function GetOldDESCRIPCION_PROVEEDORIsNull: Boolean; virtual; + procedure SetDESCRIPCION_PROVEEDORValue(const aValue: String); virtual; + procedure SetDESCRIPCION_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetCODIGO_ASIGNADOValue: String; virtual; + function GetCODIGO_ASIGNADOIsNull: Boolean; virtual; + function GetOldCODIGO_ASIGNADOValue: String; virtual; + function GetOldCODIGO_ASIGNADOIsNull: Boolean; virtual; + procedure SetCODIGO_ASIGNADOValue(const aValue: String); virtual; + procedure SetCODIGO_ASIGNADOIsNull(const aValue: Boolean); virtual; + function GetGRUPO_PROVEEDORValue: String; virtual; + function GetGRUPO_PROVEEDORIsNull: Boolean; virtual; + function GetOldGRUPO_PROVEEDORValue: String; virtual; + function GetOldGRUPO_PROVEEDORIsNull: Boolean; virtual; + procedure SetGRUPO_PROVEEDORValue(const aValue: String); virtual; + procedure SetGRUPO_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetREGIMEN_IVAValue: String; virtual; + function GetREGIMEN_IVAIsNull: Boolean; virtual; + function GetOldREGIMEN_IVAValue: String; virtual; + function GetOldREGIMEN_IVAIsNull: Boolean; virtual; + procedure SetREGIMEN_IVAValue(const aValue: String); virtual; + procedure SetREGIMEN_IVAIsNull(const aValue: Boolean); virtual; + function GetID_TIPO_IVAValue: Integer; virtual; + function GetID_TIPO_IVAIsNull: Boolean; virtual; + function GetOldID_TIPO_IVAValue: Integer; virtual; + function GetOldID_TIPO_IVAIsNull: Boolean; virtual; + procedure SetID_TIPO_IVAValue(const aValue: Integer); virtual; + procedure SetID_TIPO_IVAIsNull(const aValue: Boolean); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + function GetID_FORMA_PAGOIsNull: Boolean; virtual; + function GetOldID_FORMA_PAGOValue: Integer; virtual; + function GetOldID_FORMA_PAGOIsNull: Boolean; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + procedure SetID_FORMA_PAGOIsNull(const aValue: Boolean); virtual; + function GetTIENDA_WEBValue: SmallInt; virtual; + function GetTIENDA_WEBIsNull: Boolean; virtual; + function GetOldTIENDA_WEBValue: SmallInt; virtual; + function GetOldTIENDA_WEBIsNull: Boolean; virtual; + procedure SetTIENDA_WEBValue(const aValue: SmallInt); virtual; + procedure SetTIENDA_WEBIsNull(const aValue: Boolean); virtual; + function GetHOMOLOGADOValue: SmallInt; virtual; + function GetHOMOLOGADOIsNull: Boolean; virtual; + function GetOldHOMOLOGADOValue: SmallInt; virtual; + function GetOldHOMOLOGADOIsNull: Boolean; virtual; + procedure SetHOMOLOGADOValue(const aValue: SmallInt); virtual; + procedure SetHOMOLOGADOIsNull(const aValue: Boolean); virtual; + function GetCERTIFICACIONValue: String; virtual; + function GetCERTIFICACIONIsNull: Boolean; virtual; + function GetOldCERTIFICACIONValue: String; virtual; + function GetOldCERTIFICACIONIsNull: Boolean; virtual; + procedure SetCERTIFICACIONValue(const aValue: String); virtual; + procedure SetCERTIFICACIONIsNull(const aValue: Boolean); virtual; + function GetSUBCONTRATAValue: SmallInt; virtual; + function GetSUBCONTRATAIsNull: Boolean; virtual; + function GetOldSUBCONTRATAValue: SmallInt; virtual; + function GetOldSUBCONTRATAIsNull: Boolean; virtual; + procedure SetSUBCONTRATAValue(const aValue: SmallInt); virtual; + procedure SetSUBCONTRATAIsNull(const aValue: Boolean); virtual; + function GetEMAIL_ADMINISTRACIONValue: String; virtual; + function GetEMAIL_ADMINISTRACIONIsNull: Boolean; virtual; + function GetOldEMAIL_ADMINISTRACIONValue: String; virtual; + function GetOldEMAIL_ADMINISTRACIONIsNull: Boolean; virtual; + procedure SetEMAIL_ADMINISTRACIONValue(const aValue: String); virtual; + procedure SetEMAIL_ADMINISTRACIONIsNull(const aValue: Boolean); virtual; + function GetVENCIMIENTO_FACTURAS_1Value: SmallInt; virtual; + function GetVENCIMIENTO_FACTURAS_1IsNull: Boolean; virtual; + function GetOldVENCIMIENTO_FACTURAS_1Value: SmallInt; virtual; + function GetOldVENCIMIENTO_FACTURAS_1IsNull: Boolean; virtual; + procedure SetVENCIMIENTO_FACTURAS_1Value(const aValue: SmallInt); virtual; + procedure SetVENCIMIENTO_FACTURAS_1IsNull(const aValue: Boolean); virtual; + function GetVENCIMIENTO_FACTURAS_2Value: SmallInt; virtual; + function GetVENCIMIENTO_FACTURAS_2IsNull: Boolean; virtual; + function GetOldVENCIMIENTO_FACTURAS_2Value: SmallInt; virtual; + function GetOldVENCIMIENTO_FACTURAS_2IsNull: Boolean; virtual; + procedure SetVENCIMIENTO_FACTURAS_2Value(const aValue: SmallInt); virtual; + procedure SetVENCIMIENTO_FACTURAS_2IsNull(const aValue: Boolean); virtual; + function GetVENCIMIENTO_FACTURAS_3Value: SmallInt; virtual; + function GetVENCIMIENTO_FACTURAS_3IsNull: Boolean; virtual; + function GetOldVENCIMIENTO_FACTURAS_3Value: SmallInt; virtual; + function GetOldVENCIMIENTO_FACTURAS_3IsNull: Boolean; virtual; + procedure SetVENCIMIENTO_FACTURAS_3Value(const aValue: SmallInt); virtual; + procedure SetVENCIMIENTO_FACTURAS_3IsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_CATEGORIA : Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue; + property ID_CATEGORIAIsNull : Boolean read GetID_CATEGORIAIsNull write SetID_CATEGORIAIsNull; + property OldID_CATEGORIA : Integer read GetOldID_CATEGORIAValue; + property OldID_CATEGORIAIsNull : Boolean read GetOldID_CATEGORIAIsNull; + property NIF_CIF : String read GetNIF_CIFValue write SetNIF_CIFValue; + property NIF_CIFIsNull : Boolean read GetNIF_CIFIsNull write SetNIF_CIFIsNull; + property OldNIF_CIF : String read GetOldNIF_CIFValue; + property OldNIF_CIFIsNull : Boolean read GetOldNIF_CIFIsNull; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull : Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldNOMBREIsNull : Boolean read GetOldNOMBREIsNull; + property PERSONA_CONTACTO : String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull : Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property OldPERSONA_CONTACTOIsNull : Boolean read GetOldPERSONA_CONTACTOIsNull; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull : Boolean read GetCALLEIsNull write SetCALLEIsNull; + property OldCALLE : String read GetOldCALLEValue; + property OldCALLEIsNull : Boolean read GetOldCALLEIsNull; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull : Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property OldPOBLACIONIsNull : Boolean read GetOldPOBLACIONIsNull; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull : Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property OldPROVINCIAIsNull : Boolean read GetOldPROVINCIAIsNull; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull : Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property OldCODIGO_POSTALIsNull : Boolean read GetOldCODIGO_POSTALIsNull; + property TELEFONO_1 : String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_1IsNull : Boolean read GetTELEFONO_1IsNull write SetTELEFONO_1IsNull; + property OldTELEFONO_1 : String read GetOldTELEFONO_1Value; + property OldTELEFONO_1IsNull : Boolean read GetOldTELEFONO_1IsNull; + property TELEFONO_2 : String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property TELEFONO_2IsNull : Boolean read GetTELEFONO_2IsNull write SetTELEFONO_2IsNull; + property OldTELEFONO_2 : String read GetOldTELEFONO_2Value; + property OldTELEFONO_2IsNull : Boolean read GetOldTELEFONO_2IsNull; + property MOVIL_1 : String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_1IsNull : Boolean read GetMOVIL_1IsNull write SetMOVIL_1IsNull; + property OldMOVIL_1 : String read GetOldMOVIL_1Value; + property OldMOVIL_1IsNull : Boolean read GetOldMOVIL_1IsNull; + property MOVIL_2 : String read GetMOVIL_2Value write SetMOVIL_2Value; + property MOVIL_2IsNull : Boolean read GetMOVIL_2IsNull write SetMOVIL_2IsNull; + property OldMOVIL_2 : String read GetOldMOVIL_2Value; + property OldMOVIL_2IsNull : Boolean read GetOldMOVIL_2IsNull; + property FAX : String read GetFAXValue write SetFAXValue; + property FAXIsNull : Boolean read GetFAXIsNull write SetFAXIsNull; + property OldFAX : String read GetOldFAXValue; + property OldFAXIsNull : Boolean read GetOldFAXIsNull; + property EMAIL_1 : String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_1IsNull : Boolean read GetEMAIL_1IsNull write SetEMAIL_1IsNull; + property OldEMAIL_1 : String read GetOldEMAIL_1Value; + property OldEMAIL_1IsNull : Boolean read GetOldEMAIL_1IsNull; + property EMAIL_2 : String read GetEMAIL_2Value write SetEMAIL_2Value; + property EMAIL_2IsNull : Boolean read GetEMAIL_2IsNull write SetEMAIL_2IsNull; + property OldEMAIL_2 : String read GetOldEMAIL_2Value; + property OldEMAIL_2IsNull : Boolean read GetOldEMAIL_2IsNull; + property PAGINA_WEB : String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property PAGINA_WEBIsNull : Boolean read GetPAGINA_WEBIsNull write SetPAGINA_WEBIsNull; + property OldPAGINA_WEB : String read GetOldPAGINA_WEBValue; + property OldPAGINA_WEBIsNull : Boolean read GetOldPAGINA_WEBIsNull; + property NOTAS : IROStrings read GetNOTASValue; + property NOTASIsNull : Boolean read GetNOTASIsNull write SetNOTASIsNull; + property OldNOTAS : IROStrings read GetOldNOTASValue; + property OldNOTASIsNull : Boolean read GetOldNOTASIsNull; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull : Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_ALTAIsNull : Boolean read GetOldFECHA_ALTAIsNull; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull : Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldUSUARIOIsNull : Boolean read GetOldUSUARIOIsNull; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull : Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_EMPRESAIsNull : Boolean read GetOldID_EMPRESAIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull : Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldDESCUENTOIsNull : Boolean read GetOldDESCUENTOIsNull; + property DESCRIPCION_PROVEEDOR : String read GetDESCRIPCION_PROVEEDORValue write SetDESCRIPCION_PROVEEDORValue; + property DESCRIPCION_PROVEEDORIsNull : Boolean read GetDESCRIPCION_PROVEEDORIsNull write SetDESCRIPCION_PROVEEDORIsNull; + property OldDESCRIPCION_PROVEEDOR : String read GetOldDESCRIPCION_PROVEEDORValue; + property OldDESCRIPCION_PROVEEDORIsNull : Boolean read GetOldDESCRIPCION_PROVEEDORIsNull; + property CODIGO_ASIGNADO : String read GetCODIGO_ASIGNADOValue write SetCODIGO_ASIGNADOValue; + property CODIGO_ASIGNADOIsNull : Boolean read GetCODIGO_ASIGNADOIsNull write SetCODIGO_ASIGNADOIsNull; + property OldCODIGO_ASIGNADO : String read GetOldCODIGO_ASIGNADOValue; + property OldCODIGO_ASIGNADOIsNull : Boolean read GetOldCODIGO_ASIGNADOIsNull; + property GRUPO_PROVEEDOR : String read GetGRUPO_PROVEEDORValue write SetGRUPO_PROVEEDORValue; + property GRUPO_PROVEEDORIsNull : Boolean read GetGRUPO_PROVEEDORIsNull write SetGRUPO_PROVEEDORIsNull; + property OldGRUPO_PROVEEDOR : String read GetOldGRUPO_PROVEEDORValue; + property OldGRUPO_PROVEEDORIsNull : Boolean read GetOldGRUPO_PROVEEDORIsNull; + property REGIMEN_IVA : String read GetREGIMEN_IVAValue write SetREGIMEN_IVAValue; + property REGIMEN_IVAIsNull : Boolean read GetREGIMEN_IVAIsNull write SetREGIMEN_IVAIsNull; + property OldREGIMEN_IVA : String read GetOldREGIMEN_IVAValue; + property OldREGIMEN_IVAIsNull : Boolean read GetOldREGIMEN_IVAIsNull; + property ID_TIPO_IVA : Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue; + property ID_TIPO_IVAIsNull : Boolean read GetID_TIPO_IVAIsNull write SetID_TIPO_IVAIsNull; + property OldID_TIPO_IVA : Integer read GetOldID_TIPO_IVAValue; + property OldID_TIPO_IVAIsNull : Boolean read GetOldID_TIPO_IVAIsNull; + property ID_FORMA_PAGO : Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property ID_FORMA_PAGOIsNull : Boolean read GetID_FORMA_PAGOIsNull write SetID_FORMA_PAGOIsNull; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + property OldID_FORMA_PAGOIsNull : Boolean read GetOldID_FORMA_PAGOIsNull; + property TIENDA_WEB : SmallInt read GetTIENDA_WEBValue write SetTIENDA_WEBValue; + property TIENDA_WEBIsNull : Boolean read GetTIENDA_WEBIsNull write SetTIENDA_WEBIsNull; + property OldTIENDA_WEB : SmallInt read GetOldTIENDA_WEBValue; + property OldTIENDA_WEBIsNull : Boolean read GetOldTIENDA_WEBIsNull; + property HOMOLOGADO : SmallInt read GetHOMOLOGADOValue write SetHOMOLOGADOValue; + property HOMOLOGADOIsNull : Boolean read GetHOMOLOGADOIsNull write SetHOMOLOGADOIsNull; + property OldHOMOLOGADO : SmallInt read GetOldHOMOLOGADOValue; + property OldHOMOLOGADOIsNull : Boolean read GetOldHOMOLOGADOIsNull; + property CERTIFICACION : String read GetCERTIFICACIONValue write SetCERTIFICACIONValue; + property CERTIFICACIONIsNull : Boolean read GetCERTIFICACIONIsNull write SetCERTIFICACIONIsNull; + property OldCERTIFICACION : String read GetOldCERTIFICACIONValue; + property OldCERTIFICACIONIsNull : Boolean read GetOldCERTIFICACIONIsNull; + property SUBCONTRATA : SmallInt read GetSUBCONTRATAValue write SetSUBCONTRATAValue; + property SUBCONTRATAIsNull : Boolean read GetSUBCONTRATAIsNull write SetSUBCONTRATAIsNull; + property OldSUBCONTRATA : SmallInt read GetOldSUBCONTRATAValue; + property OldSUBCONTRATAIsNull : Boolean read GetOldSUBCONTRATAIsNull; + property EMAIL_ADMINISTRACION : String read GetEMAIL_ADMINISTRACIONValue write SetEMAIL_ADMINISTRACIONValue; + property EMAIL_ADMINISTRACIONIsNull : Boolean read GetEMAIL_ADMINISTRACIONIsNull write SetEMAIL_ADMINISTRACIONIsNull; + property OldEMAIL_ADMINISTRACION : String read GetOldEMAIL_ADMINISTRACIONValue; + property OldEMAIL_ADMINISTRACIONIsNull : Boolean read GetOldEMAIL_ADMINISTRACIONIsNull; + property VENCIMIENTO_FACTURAS_1 : SmallInt read GetVENCIMIENTO_FACTURAS_1Value write SetVENCIMIENTO_FACTURAS_1Value; + property VENCIMIENTO_FACTURAS_1IsNull : Boolean read GetVENCIMIENTO_FACTURAS_1IsNull write SetVENCIMIENTO_FACTURAS_1IsNull; + property OldVENCIMIENTO_FACTURAS_1 : SmallInt read GetOldVENCIMIENTO_FACTURAS_1Value; + property OldVENCIMIENTO_FACTURAS_1IsNull : Boolean read GetOldVENCIMIENTO_FACTURAS_1IsNull; + property VENCIMIENTO_FACTURAS_2 : SmallInt read GetVENCIMIENTO_FACTURAS_2Value write SetVENCIMIENTO_FACTURAS_2Value; + property VENCIMIENTO_FACTURAS_2IsNull : Boolean read GetVENCIMIENTO_FACTURAS_2IsNull write SetVENCIMIENTO_FACTURAS_2IsNull; + property OldVENCIMIENTO_FACTURAS_2 : SmallInt read GetOldVENCIMIENTO_FACTURAS_2Value; + property OldVENCIMIENTO_FACTURAS_2IsNull : Boolean read GetOldVENCIMIENTO_FACTURAS_2IsNull; + property VENCIMIENTO_FACTURAS_3 : SmallInt read GetVENCIMIENTO_FACTURAS_3Value write SetVENCIMIENTO_FACTURAS_3Value; + property VENCIMIENTO_FACTURAS_3IsNull : Boolean read GetVENCIMIENTO_FACTURAS_3IsNull write SetVENCIMIENTO_FACTURAS_3IsNull; + property OldVENCIMIENTO_FACTURAS_3 : SmallInt read GetOldVENCIMIENTO_FACTURAS_3Value; + property OldVENCIMIENTO_FACTURAS_3IsNull : Boolean read GetOldVENCIMIENTO_FACTURAS_3IsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IEmpleadosDelta } + IEmpleadosDelta = interface(IEmpleados) + ['{D74B1150-C343-4DC5-A6F5-A7F4E7598F67}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_CATEGORIAValue : Integer; + function GetOldNIF_CIFValue : String; + function GetOldNOMBREValue : String; + function GetOldPERSONA_CONTACTOValue : String; + function GetOldCALLEValue : String; + function GetOldPOBLACIONValue : String; + function GetOldPROVINCIAValue : String; + function GetOldCODIGO_POSTALValue : String; + function GetOldTELEFONO_1Value : String; + function GetOldTELEFONO_2Value : String; + function GetOldMOVIL_1Value : String; + function GetOldMOVIL_2Value : String; + function GetOldFAXValue : String; + function GetOldEMAIL_1Value : String; + function GetOldEMAIL_2Value : String; + function GetOldPAGINA_WEBValue : String; + function GetOldNOTASValue : IROStrings; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + function GetOldUSUARIOValue : String; + function GetOldID_EMPRESAValue : Integer; + function GetOldREFERENCIAValue : String; + function GetOldFECHA_NACIMIENTOValue : DateTime; + function GetOldCATEGORIAValue : String; + function GetOldFECHA_ALTA_EMPRESAValue : DateTime; + function GetOldFORMACION_BASEValue : IROStrings; + function GetOldFORMACION_COMPLEValue : IROStrings; + function GetOldFORMACION_RECIBIDAValue : IROStrings; + function GetOldEXPERIENCIAValue : IROStrings; + function GetOldCONTRATOValue : String; + function GetOldDURACIONValue : String; + function GetOldFECHA_BAJAValue : DateTime; + function GetOldCAUSA_BAJAValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_CATEGORIA : Integer read GetOldID_CATEGORIAValue; + property OldNIF_CIF : String read GetOldNIF_CIFValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property OldCALLE : String read GetOldCALLEValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property OldTELEFONO_1 : String read GetOldTELEFONO_1Value; + property OldTELEFONO_2 : String read GetOldTELEFONO_2Value; + property OldMOVIL_1 : String read GetOldMOVIL_1Value; + property OldMOVIL_2 : String read GetOldMOVIL_2Value; + property OldFAX : String read GetOldFAXValue; + property OldEMAIL_1 : String read GetOldEMAIL_1Value; + property OldEMAIL_2 : String read GetOldEMAIL_2Value; + property OldPAGINA_WEB : String read GetOldPAGINA_WEBValue; + property OldNOTAS : IROStrings read GetOldNOTASValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldFECHA_NACIMIENTO : DateTime read GetOldFECHA_NACIMIENTOValue; + property OldCATEGORIA : String read GetOldCATEGORIAValue; + property OldFECHA_ALTA_EMPRESA : DateTime read GetOldFECHA_ALTA_EMPRESAValue; + property OldFORMACION_BASE : IROStrings read GetOldFORMACION_BASEValue; + property OldFORMACION_COMPLE : IROStrings read GetOldFORMACION_COMPLEValue; + property OldFORMACION_RECIBIDA : IROStrings read GetOldFORMACION_RECIBIDAValue; + property OldEXPERIENCIA : IROStrings read GetOldEXPERIENCIAValue; + property OldCONTRATO : String read GetOldCONTRATOValue; + property OldDURACION : String read GetOldDURACIONValue; + property OldFECHA_BAJA : DateTime read GetOldFECHA_BAJAValue; + property OldCAUSA_BAJA : String read GetOldCAUSA_BAJAValue; + end; + + { TEmpleadosBusinessProcessorRules } + TEmpleadosBusinessProcessorRules = class(TDABusinessProcessorRules, IEmpleados, IEmpleadosDelta) + private + f_NOTAS: IROStrings; + f_FORMACION_BASE: IROStrings; + f_FORMACION_COMPLE: IROStrings; + f_FORMACION_RECIBIDA: IROStrings; + f_EXPERIENCIA: IROStrings; + procedure NOTAS_OnChange(Sender: TObject); + procedure FORMACION_BASE_OnChange(Sender: TObject); + procedure FORMACION_COMPLE_OnChange(Sender: TObject); + procedure FORMACION_RECIBIDA_OnChange(Sender: TObject); + procedure EXPERIENCIA_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_CATEGORIAValue: Integer; virtual; + function GetID_CATEGORIAIsNull: Boolean; virtual; + function GetOldID_CATEGORIAValue: Integer; virtual; + function GetOldID_CATEGORIAIsNull: Boolean; virtual; + procedure SetID_CATEGORIAValue(const aValue: Integer); virtual; + procedure SetID_CATEGORIAIsNull(const aValue: Boolean); virtual; + function GetNIF_CIFValue: String; virtual; + function GetNIF_CIFIsNull: Boolean; virtual; + function GetOldNIF_CIFValue: String; virtual; + function GetOldNIF_CIFIsNull: Boolean; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + procedure SetNIF_CIFIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + function GetNOMBREIsNull: Boolean; virtual; + function GetOldNOMBREValue: String; virtual; + function GetOldNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + function GetPERSONA_CONTACTOIsNull: Boolean; virtual; + function GetOldPERSONA_CONTACTOValue: String; virtual; + function GetOldPERSONA_CONTACTOIsNull: Boolean; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); virtual; + function GetCALLEValue: String; virtual; + function GetCALLEIsNull: Boolean; virtual; + function GetOldCALLEValue: String; virtual; + function GetOldCALLEIsNull: Boolean; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + procedure SetCALLEIsNull(const aValue: Boolean); virtual; + function GetPOBLACIONValue: String; virtual; + function GetPOBLACIONIsNull: Boolean; virtual; + function GetOldPOBLACIONValue: String; virtual; + function GetOldPOBLACIONIsNull: Boolean; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual; + function GetPROVINCIAValue: String; virtual; + function GetPROVINCIAIsNull: Boolean; virtual; + function GetOldPROVINCIAValue: String; virtual; + function GetOldPROVINCIAIsNull: Boolean; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetCODIGO_POSTALIsNull: Boolean; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALIsNull: Boolean; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual; + function GetTELEFONO_1Value: String; virtual; + function GetTELEFONO_1IsNull: Boolean; virtual; + function GetOldTELEFONO_1Value: String; virtual; + function GetOldTELEFONO_1IsNull: Boolean; virtual; + procedure SetTELEFONO_1Value(const aValue: String); virtual; + procedure SetTELEFONO_1IsNull(const aValue: Boolean); virtual; + function GetTELEFONO_2Value: String; virtual; + function GetTELEFONO_2IsNull: Boolean; virtual; + function GetOldTELEFONO_2Value: String; virtual; + function GetOldTELEFONO_2IsNull: Boolean; virtual; + procedure SetTELEFONO_2Value(const aValue: String); virtual; + procedure SetTELEFONO_2IsNull(const aValue: Boolean); virtual; + function GetMOVIL_1Value: String; virtual; + function GetMOVIL_1IsNull: Boolean; virtual; + function GetOldMOVIL_1Value: String; virtual; + function GetOldMOVIL_1IsNull: Boolean; virtual; + procedure SetMOVIL_1Value(const aValue: String); virtual; + procedure SetMOVIL_1IsNull(const aValue: Boolean); virtual; + function GetMOVIL_2Value: String; virtual; + function GetMOVIL_2IsNull: Boolean; virtual; + function GetOldMOVIL_2Value: String; virtual; + function GetOldMOVIL_2IsNull: Boolean; virtual; + procedure SetMOVIL_2Value(const aValue: String); virtual; + procedure SetMOVIL_2IsNull(const aValue: Boolean); virtual; + function GetFAXValue: String; virtual; + function GetFAXIsNull: Boolean; virtual; + function GetOldFAXValue: String; virtual; + function GetOldFAXIsNull: Boolean; virtual; + procedure SetFAXValue(const aValue: String); virtual; + procedure SetFAXIsNull(const aValue: Boolean); virtual; + function GetEMAIL_1Value: String; virtual; + function GetEMAIL_1IsNull: Boolean; virtual; + function GetOldEMAIL_1Value: String; virtual; + function GetOldEMAIL_1IsNull: Boolean; virtual; + procedure SetEMAIL_1Value(const aValue: String); virtual; + procedure SetEMAIL_1IsNull(const aValue: Boolean); virtual; + function GetEMAIL_2Value: String; virtual; + function GetEMAIL_2IsNull: Boolean; virtual; + function GetOldEMAIL_2Value: String; virtual; + function GetOldEMAIL_2IsNull: Boolean; virtual; + procedure SetEMAIL_2Value(const aValue: String); virtual; + procedure SetEMAIL_2IsNull(const aValue: Boolean); virtual; + function GetPAGINA_WEBValue: String; virtual; + function GetPAGINA_WEBIsNull: Boolean; virtual; + function GetOldPAGINA_WEBValue: String; virtual; + function GetOldPAGINA_WEBIsNull: Boolean; virtual; + procedure SetPAGINA_WEBValue(const aValue: String); virtual; + procedure SetPAGINA_WEBIsNull(const aValue: Boolean); virtual; + function GetNOTASValue: IROStrings; virtual; + function GetNOTASIsNull: Boolean; virtual; + function GetOldNOTASValue: IROStrings; virtual; + function GetOldNOTASIsNull: Boolean; virtual; + procedure SetNOTASIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + function GetUSUARIOIsNull: Boolean; virtual; + function GetOldUSUARIOValue: String; virtual; + function GetOldUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetFECHA_NACIMIENTOValue: DateTime; virtual; + function GetFECHA_NACIMIENTOIsNull: Boolean; virtual; + function GetOldFECHA_NACIMIENTOValue: DateTime; virtual; + function GetOldFECHA_NACIMIENTOIsNull: Boolean; virtual; + procedure SetFECHA_NACIMIENTOValue(const aValue: DateTime); virtual; + procedure SetFECHA_NACIMIENTOIsNull(const aValue: Boolean); virtual; + function GetCATEGORIAValue: String; virtual; + function GetCATEGORIAIsNull: Boolean; virtual; + function GetOldCATEGORIAValue: String; virtual; + function GetOldCATEGORIAIsNull: Boolean; virtual; + procedure SetCATEGORIAValue(const aValue: String); virtual; + procedure SetCATEGORIAIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTA_EMPRESAValue: DateTime; virtual; + function GetFECHA_ALTA_EMPRESAIsNull: Boolean; virtual; + function GetOldFECHA_ALTA_EMPRESAValue: DateTime; virtual; + function GetOldFECHA_ALTA_EMPRESAIsNull: Boolean; virtual; + procedure SetFECHA_ALTA_EMPRESAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALTA_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetFORMACION_BASEValue: IROStrings; virtual; + function GetFORMACION_BASEIsNull: Boolean; virtual; + function GetOldFORMACION_BASEValue: IROStrings; virtual; + function GetOldFORMACION_BASEIsNull: Boolean; virtual; + procedure SetFORMACION_BASEIsNull(const aValue: Boolean); virtual; + function GetFORMACION_COMPLEValue: IROStrings; virtual; + function GetFORMACION_COMPLEIsNull: Boolean; virtual; + function GetOldFORMACION_COMPLEValue: IROStrings; virtual; + function GetOldFORMACION_COMPLEIsNull: Boolean; virtual; + procedure SetFORMACION_COMPLEIsNull(const aValue: Boolean); virtual; + function GetFORMACION_RECIBIDAValue: IROStrings; virtual; + function GetFORMACION_RECIBIDAIsNull: Boolean; virtual; + function GetOldFORMACION_RECIBIDAValue: IROStrings; virtual; + function GetOldFORMACION_RECIBIDAIsNull: Boolean; virtual; + procedure SetFORMACION_RECIBIDAIsNull(const aValue: Boolean); virtual; + function GetEXPERIENCIAValue: IROStrings; virtual; + function GetEXPERIENCIAIsNull: Boolean; virtual; + function GetOldEXPERIENCIAValue: IROStrings; virtual; + function GetOldEXPERIENCIAIsNull: Boolean; virtual; + procedure SetEXPERIENCIAIsNull(const aValue: Boolean); virtual; + function GetCONTRATOValue: String; virtual; + function GetCONTRATOIsNull: Boolean; virtual; + function GetOldCONTRATOValue: String; virtual; + function GetOldCONTRATOIsNull: Boolean; virtual; + procedure SetCONTRATOValue(const aValue: String); virtual; + procedure SetCONTRATOIsNull(const aValue: Boolean); virtual; + function GetDURACIONValue: String; virtual; + function GetDURACIONIsNull: Boolean; virtual; + function GetOldDURACIONValue: String; virtual; + function GetOldDURACIONIsNull: Boolean; virtual; + procedure SetDURACIONValue(const aValue: String); virtual; + procedure SetDURACIONIsNull(const aValue: Boolean); virtual; + function GetFECHA_BAJAValue: DateTime; virtual; + function GetFECHA_BAJAIsNull: Boolean; virtual; + function GetOldFECHA_BAJAValue: DateTime; virtual; + function GetOldFECHA_BAJAIsNull: Boolean; virtual; + procedure SetFECHA_BAJAValue(const aValue: DateTime); virtual; + procedure SetFECHA_BAJAIsNull(const aValue: Boolean); virtual; + function GetCAUSA_BAJAValue: String; virtual; + function GetCAUSA_BAJAIsNull: Boolean; virtual; + function GetOldCAUSA_BAJAValue: String; virtual; + function GetOldCAUSA_BAJAIsNull: Boolean; virtual; + procedure SetCAUSA_BAJAValue(const aValue: String); virtual; + procedure SetCAUSA_BAJAIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_CATEGORIA : Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue; + property ID_CATEGORIAIsNull : Boolean read GetID_CATEGORIAIsNull write SetID_CATEGORIAIsNull; + property OldID_CATEGORIA : Integer read GetOldID_CATEGORIAValue; + property OldID_CATEGORIAIsNull : Boolean read GetOldID_CATEGORIAIsNull; + property NIF_CIF : String read GetNIF_CIFValue write SetNIF_CIFValue; + property NIF_CIFIsNull : Boolean read GetNIF_CIFIsNull write SetNIF_CIFIsNull; + property OldNIF_CIF : String read GetOldNIF_CIFValue; + property OldNIF_CIFIsNull : Boolean read GetOldNIF_CIFIsNull; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull : Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldNOMBREIsNull : Boolean read GetOldNOMBREIsNull; + property PERSONA_CONTACTO : String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull : Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property OldPERSONA_CONTACTOIsNull : Boolean read GetOldPERSONA_CONTACTOIsNull; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull : Boolean read GetCALLEIsNull write SetCALLEIsNull; + property OldCALLE : String read GetOldCALLEValue; + property OldCALLEIsNull : Boolean read GetOldCALLEIsNull; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull : Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property OldPOBLACIONIsNull : Boolean read GetOldPOBLACIONIsNull; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull : Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property OldPROVINCIAIsNull : Boolean read GetOldPROVINCIAIsNull; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull : Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property OldCODIGO_POSTALIsNull : Boolean read GetOldCODIGO_POSTALIsNull; + property TELEFONO_1 : String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_1IsNull : Boolean read GetTELEFONO_1IsNull write SetTELEFONO_1IsNull; + property OldTELEFONO_1 : String read GetOldTELEFONO_1Value; + property OldTELEFONO_1IsNull : Boolean read GetOldTELEFONO_1IsNull; + property TELEFONO_2 : String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property TELEFONO_2IsNull : Boolean read GetTELEFONO_2IsNull write SetTELEFONO_2IsNull; + property OldTELEFONO_2 : String read GetOldTELEFONO_2Value; + property OldTELEFONO_2IsNull : Boolean read GetOldTELEFONO_2IsNull; + property MOVIL_1 : String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_1IsNull : Boolean read GetMOVIL_1IsNull write SetMOVIL_1IsNull; + property OldMOVIL_1 : String read GetOldMOVIL_1Value; + property OldMOVIL_1IsNull : Boolean read GetOldMOVIL_1IsNull; + property MOVIL_2 : String read GetMOVIL_2Value write SetMOVIL_2Value; + property MOVIL_2IsNull : Boolean read GetMOVIL_2IsNull write SetMOVIL_2IsNull; + property OldMOVIL_2 : String read GetOldMOVIL_2Value; + property OldMOVIL_2IsNull : Boolean read GetOldMOVIL_2IsNull; + property FAX : String read GetFAXValue write SetFAXValue; + property FAXIsNull : Boolean read GetFAXIsNull write SetFAXIsNull; + property OldFAX : String read GetOldFAXValue; + property OldFAXIsNull : Boolean read GetOldFAXIsNull; + property EMAIL_1 : String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_1IsNull : Boolean read GetEMAIL_1IsNull write SetEMAIL_1IsNull; + property OldEMAIL_1 : String read GetOldEMAIL_1Value; + property OldEMAIL_1IsNull : Boolean read GetOldEMAIL_1IsNull; + property EMAIL_2 : String read GetEMAIL_2Value write SetEMAIL_2Value; + property EMAIL_2IsNull : Boolean read GetEMAIL_2IsNull write SetEMAIL_2IsNull; + property OldEMAIL_2 : String read GetOldEMAIL_2Value; + property OldEMAIL_2IsNull : Boolean read GetOldEMAIL_2IsNull; + property PAGINA_WEB : String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property PAGINA_WEBIsNull : Boolean read GetPAGINA_WEBIsNull write SetPAGINA_WEBIsNull; + property OldPAGINA_WEB : String read GetOldPAGINA_WEBValue; + property OldPAGINA_WEBIsNull : Boolean read GetOldPAGINA_WEBIsNull; + property NOTAS : IROStrings read GetNOTASValue; + property NOTASIsNull : Boolean read GetNOTASIsNull write SetNOTASIsNull; + property OldNOTAS : IROStrings read GetOldNOTASValue; + property OldNOTASIsNull : Boolean read GetOldNOTASIsNull; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull : Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_ALTAIsNull : Boolean read GetOldFECHA_ALTAIsNull; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull : Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldUSUARIOIsNull : Boolean read GetOldUSUARIOIsNull; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull : Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_EMPRESAIsNull : Boolean read GetOldID_EMPRESAIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property FECHA_NACIMIENTO : DateTime read GetFECHA_NACIMIENTOValue write SetFECHA_NACIMIENTOValue; + property FECHA_NACIMIENTOIsNull : Boolean read GetFECHA_NACIMIENTOIsNull write SetFECHA_NACIMIENTOIsNull; + property OldFECHA_NACIMIENTO : DateTime read GetOldFECHA_NACIMIENTOValue; + property OldFECHA_NACIMIENTOIsNull : Boolean read GetOldFECHA_NACIMIENTOIsNull; + property CATEGORIA : String read GetCATEGORIAValue write SetCATEGORIAValue; + property CATEGORIAIsNull : Boolean read GetCATEGORIAIsNull write SetCATEGORIAIsNull; + property OldCATEGORIA : String read GetOldCATEGORIAValue; + property OldCATEGORIAIsNull : Boolean read GetOldCATEGORIAIsNull; + property FECHA_ALTA_EMPRESA : DateTime read GetFECHA_ALTA_EMPRESAValue write SetFECHA_ALTA_EMPRESAValue; + property FECHA_ALTA_EMPRESAIsNull : Boolean read GetFECHA_ALTA_EMPRESAIsNull write SetFECHA_ALTA_EMPRESAIsNull; + property OldFECHA_ALTA_EMPRESA : DateTime read GetOldFECHA_ALTA_EMPRESAValue; + property OldFECHA_ALTA_EMPRESAIsNull : Boolean read GetOldFECHA_ALTA_EMPRESAIsNull; + property FORMACION_BASE : IROStrings read GetFORMACION_BASEValue; + property FORMACION_BASEIsNull : Boolean read GetFORMACION_BASEIsNull write SetFORMACION_BASEIsNull; + property OldFORMACION_BASE : IROStrings read GetOldFORMACION_BASEValue; + property OldFORMACION_BASEIsNull : Boolean read GetOldFORMACION_BASEIsNull; + property FORMACION_COMPLE : IROStrings read GetFORMACION_COMPLEValue; + property FORMACION_COMPLEIsNull : Boolean read GetFORMACION_COMPLEIsNull write SetFORMACION_COMPLEIsNull; + property OldFORMACION_COMPLE : IROStrings read GetOldFORMACION_COMPLEValue; + property OldFORMACION_COMPLEIsNull : Boolean read GetOldFORMACION_COMPLEIsNull; + property FORMACION_RECIBIDA : IROStrings read GetFORMACION_RECIBIDAValue; + property FORMACION_RECIBIDAIsNull : Boolean read GetFORMACION_RECIBIDAIsNull write SetFORMACION_RECIBIDAIsNull; + property OldFORMACION_RECIBIDA : IROStrings read GetOldFORMACION_RECIBIDAValue; + property OldFORMACION_RECIBIDAIsNull : Boolean read GetOldFORMACION_RECIBIDAIsNull; + property EXPERIENCIA : IROStrings read GetEXPERIENCIAValue; + property EXPERIENCIAIsNull : Boolean read GetEXPERIENCIAIsNull write SetEXPERIENCIAIsNull; + property OldEXPERIENCIA : IROStrings read GetOldEXPERIENCIAValue; + property OldEXPERIENCIAIsNull : Boolean read GetOldEXPERIENCIAIsNull; + property CONTRATO : String read GetCONTRATOValue write SetCONTRATOValue; + property CONTRATOIsNull : Boolean read GetCONTRATOIsNull write SetCONTRATOIsNull; + property OldCONTRATO : String read GetOldCONTRATOValue; + property OldCONTRATOIsNull : Boolean read GetOldCONTRATOIsNull; + property DURACION : String read GetDURACIONValue write SetDURACIONValue; + property DURACIONIsNull : Boolean read GetDURACIONIsNull write SetDURACIONIsNull; + property OldDURACION : String read GetOldDURACIONValue; + property OldDURACIONIsNull : Boolean read GetOldDURACIONIsNull; + property FECHA_BAJA : DateTime read GetFECHA_BAJAValue write SetFECHA_BAJAValue; + property FECHA_BAJAIsNull : Boolean read GetFECHA_BAJAIsNull write SetFECHA_BAJAIsNull; + property OldFECHA_BAJA : DateTime read GetOldFECHA_BAJAValue; + property OldFECHA_BAJAIsNull : Boolean read GetOldFECHA_BAJAIsNull; + property CAUSA_BAJA : String read GetCAUSA_BAJAValue write SetCAUSA_BAJAValue; + property CAUSA_BAJAIsNull : Boolean read GetCAUSA_BAJAIsNull write SetCAUSA_BAJAIsNull; + property OldCAUSA_BAJA : String read GetOldCAUSA_BAJAValue; + property OldCAUSA_BAJAIsNull : Boolean read GetOldCAUSA_BAJAIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IDireccionesContactoDelta } + IDireccionesContactoDelta = interface(IDireccionesContacto) + ['{9FE0DA23-FE77-4167-AEFF-143E4F8C823D}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_CONTACTOValue : Integer; + function GetOldCALLEValue : String; + function GetOldPOBLACIONValue : String; + function GetOldPROVINCIAValue : String; + function GetOldCODIGO_POSTALValue : String; + function GetOldPERSONA_CONTACTOValue : String; + function GetOldNOMBREValue : String; + function GetOldTELEFONOValue : String; + function GetOldMOVILValue : String; + function GetOldFAXValue : String; + function GetOldEMAILValue : String; + function GetOldNOTASValue : IROStrings; + function GetOldPORTEValue : Float; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_CONTACTO : Integer read GetOldID_CONTACTOValue; + property OldCALLE : String read GetOldCALLEValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldTELEFONO : String read GetOldTELEFONOValue; + property OldMOVIL : String read GetOldMOVILValue; + property OldFAX : String read GetOldFAXValue; + property OldEMAIL : String read GetOldEMAILValue; + property OldNOTAS : IROStrings read GetOldNOTASValue; + property OldPORTE : Float read GetOldPORTEValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + end; + + { TDireccionesContactoBusinessProcessorRules } + TDireccionesContactoBusinessProcessorRules = class(TDABusinessProcessorRules, IDireccionesContacto, IDireccionesContactoDelta) + private + f_NOTAS: IROStrings; + procedure NOTAS_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_CONTACTOValue: Integer; virtual; + function GetID_CONTACTOIsNull: Boolean; virtual; + function GetOldID_CONTACTOValue: Integer; virtual; + function GetOldID_CONTACTOIsNull: Boolean; virtual; + procedure SetID_CONTACTOValue(const aValue: Integer); virtual; + procedure SetID_CONTACTOIsNull(const aValue: Boolean); virtual; + function GetCALLEValue: String; virtual; + function GetCALLEIsNull: Boolean; virtual; + function GetOldCALLEValue: String; virtual; + function GetOldCALLEIsNull: Boolean; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + procedure SetCALLEIsNull(const aValue: Boolean); virtual; + function GetPOBLACIONValue: String; virtual; + function GetPOBLACIONIsNull: Boolean; virtual; + function GetOldPOBLACIONValue: String; virtual; + function GetOldPOBLACIONIsNull: Boolean; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual; + function GetPROVINCIAValue: String; virtual; + function GetPROVINCIAIsNull: Boolean; virtual; + function GetOldPROVINCIAValue: String; virtual; + function GetOldPROVINCIAIsNull: Boolean; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetCODIGO_POSTALIsNull: Boolean; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALIsNull: Boolean; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + function GetPERSONA_CONTACTOIsNull: Boolean; virtual; + function GetOldPERSONA_CONTACTOValue: String; virtual; + function GetOldPERSONA_CONTACTOIsNull: Boolean; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + function GetNOMBREIsNull: Boolean; virtual; + function GetOldNOMBREValue: String; virtual; + function GetOldNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetTELEFONOValue: String; virtual; + function GetTELEFONOIsNull: Boolean; virtual; + function GetOldTELEFONOValue: String; virtual; + function GetOldTELEFONOIsNull: Boolean; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + procedure SetTELEFONOIsNull(const aValue: Boolean); virtual; + function GetMOVILValue: String; virtual; + function GetMOVILIsNull: Boolean; virtual; + function GetOldMOVILValue: String; virtual; + function GetOldMOVILIsNull: Boolean; virtual; + procedure SetMOVILValue(const aValue: String); virtual; + procedure SetMOVILIsNull(const aValue: Boolean); virtual; + function GetFAXValue: String; virtual; + function GetFAXIsNull: Boolean; virtual; + function GetOldFAXValue: String; virtual; + function GetOldFAXIsNull: Boolean; virtual; + procedure SetFAXValue(const aValue: String); virtual; + procedure SetFAXIsNull(const aValue: Boolean); virtual; + function GetEMAILValue: String; virtual; + function GetEMAILIsNull: Boolean; virtual; + function GetOldEMAILValue: String; virtual; + function GetOldEMAILIsNull: Boolean; virtual; + procedure SetEMAILValue(const aValue: String); virtual; + procedure SetEMAILIsNull(const aValue: Boolean); virtual; + function GetNOTASValue: IROStrings; virtual; + function GetNOTASIsNull: Boolean; virtual; + function GetOldNOTASValue: IROStrings; virtual; + function GetOldNOTASIsNull: Boolean; virtual; + procedure SetNOTASIsNull(const aValue: Boolean); virtual; + function GetPORTEValue: Float; virtual; + function GetPORTEIsNull: Boolean; virtual; + function GetOldPORTEValue: Float; virtual; + function GetOldPORTEIsNull: Boolean; virtual; + procedure SetPORTEValue(const aValue: Float); virtual; + procedure SetPORTEIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_CONTACTO : Integer read GetID_CONTACTOValue write SetID_CONTACTOValue; + property ID_CONTACTOIsNull : Boolean read GetID_CONTACTOIsNull write SetID_CONTACTOIsNull; + property OldID_CONTACTO : Integer read GetOldID_CONTACTOValue; + property OldID_CONTACTOIsNull : Boolean read GetOldID_CONTACTOIsNull; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull : Boolean read GetCALLEIsNull write SetCALLEIsNull; + property OldCALLE : String read GetOldCALLEValue; + property OldCALLEIsNull : Boolean read GetOldCALLEIsNull; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull : Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property OldPOBLACIONIsNull : Boolean read GetOldPOBLACIONIsNull; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull : Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property OldPROVINCIAIsNull : Boolean read GetOldPROVINCIAIsNull; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull : Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property OldCODIGO_POSTALIsNull : Boolean read GetOldCODIGO_POSTALIsNull; + property PERSONA_CONTACTO : String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull : Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property OldPERSONA_CONTACTOIsNull : Boolean read GetOldPERSONA_CONTACTOIsNull; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull : Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldNOMBREIsNull : Boolean read GetOldNOMBREIsNull; + property TELEFONO : String read GetTELEFONOValue write SetTELEFONOValue; + property TELEFONOIsNull : Boolean read GetTELEFONOIsNull write SetTELEFONOIsNull; + property OldTELEFONO : String read GetOldTELEFONOValue; + property OldTELEFONOIsNull : Boolean read GetOldTELEFONOIsNull; + property MOVIL : String read GetMOVILValue write SetMOVILValue; + property MOVILIsNull : Boolean read GetMOVILIsNull write SetMOVILIsNull; + property OldMOVIL : String read GetOldMOVILValue; + property OldMOVILIsNull : Boolean read GetOldMOVILIsNull; + property FAX : String read GetFAXValue write SetFAXValue; + property FAXIsNull : Boolean read GetFAXIsNull write SetFAXIsNull; + property OldFAX : String read GetOldFAXValue; + property OldFAXIsNull : Boolean read GetOldFAXIsNull; + property EMAIL : String read GetEMAILValue write SetEMAILValue; + property EMAILIsNull : Boolean read GetEMAILIsNull write SetEMAILIsNull; + property OldEMAIL : String read GetOldEMAILValue; + property OldEMAILIsNull : Boolean read GetOldEMAILIsNull; + property NOTAS : IROStrings read GetNOTASValue; + property NOTASIsNull : Boolean read GetNOTASIsNull write SetNOTASIsNull; + property OldNOTAS : IROStrings read GetOldNOTASValue; + property OldNOTASIsNull : Boolean read GetOldNOTASIsNull; + property PORTE : Float read GetPORTEValue write SetPORTEValue; + property PORTEIsNull : Boolean read GetPORTEIsNull write SetPORTEIsNull; + property OldPORTE : Float read GetOldPORTEValue; + property OldPORTEIsNull : Boolean read GetOldPORTEIsNull; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull : Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_ALTAIsNull : Boolean read GetOldFECHA_ALTAIsNull; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IClientesDescuentosDelta } + IClientesDescuentosDelta = interface(IClientesDescuentos) + ['{743C4823-D8F2-42F3-9B1D-FAE647AA0B89}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_CLIENTEValue : Integer; + function GetOldID_PROVEEDORValue : Integer; + function GetOldNOMBREValue : String; + function GetOldDESCUENTOValue : Float; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_CLIENTE : Integer read GetOldID_CLIENTEValue; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + end; + + { TClientesDescuentosBusinessProcessorRules } + TClientesDescuentosBusinessProcessorRules = class(TDABusinessProcessorRules, IClientesDescuentos, IClientesDescuentosDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_CLIENTEValue: Integer; virtual; + function GetID_CLIENTEIsNull: Boolean; virtual; + function GetOldID_CLIENTEValue: Integer; virtual; + function GetOldID_CLIENTEIsNull: Boolean; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + procedure SetID_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + function GetID_PROVEEDORIsNull: Boolean; virtual; + function GetOldID_PROVEEDORValue: Integer; virtual; + function GetOldID_PROVEEDORIsNull: Boolean; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + function GetNOMBREIsNull: Boolean; virtual; + function GetOldNOMBREValue: String; virtual; + function GetOldNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + function GetOldDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_CLIENTE : Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property ID_CLIENTEIsNull : Boolean read GetID_CLIENTEIsNull write SetID_CLIENTEIsNull; + property OldID_CLIENTE : Integer read GetOldID_CLIENTEValue; + property OldID_CLIENTEIsNull : Boolean read GetOldID_CLIENTEIsNull; + property ID_PROVEEDOR : Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull : Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property OldID_PROVEEDORIsNull : Boolean read GetOldID_PROVEEDORIsNull; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull : Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldNOMBREIsNull : Boolean read GetOldNOMBREIsNull; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull : Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldDESCUENTOIsNull : Boolean read GetOldDESCUENTOIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IGruposProveedorDelta } + IGruposProveedorDelta = interface(IGruposProveedor) + ['{E8CA6C8F-9ECC-41DF-8586-E2E3B9F5458B}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldDESCRIPCIONValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + end; + + { TGruposProveedorBusinessProcessorRules } + TGruposProveedorBusinessProcessorRules = class(TDABusinessProcessorRules, IGruposProveedor, IGruposProveedorDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull : Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldDESCRIPCIONIsNull : Boolean read GetOldDESCRIPCIONIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IGruposEmpleadoDelta } + IGruposEmpleadoDelta = interface(IGruposEmpleado) + ['{714DAE98-83AA-4A95-9A5F-07A6B7E8B355}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldDESCRIPCIONValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + end; + + { TGruposEmpleadoBusinessProcessorRules } + TGruposEmpleadoBusinessProcessorRules = class(TDABusinessProcessorRules, IGruposEmpleado, IGruposEmpleadoDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull : Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldDESCRIPCIONIsNull : Boolean read GetOldDESCRIPCIONIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IContactos_RefreshDelta } + IContactos_RefreshDelta = interface(IContactos_Refresh) + ['{7DD183E3-37C3-4264-8D84-F4A815289F8B}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldNIF_CIFValue : String; + function GetOldNOMBREValue : String; + function GetOldCALLEValue : String; + function GetOldPOBLACIONValue : String; + function GetOldPROVINCIAValue : String; + function GetOldCODIGO_POSTALValue : String; + function GetOldTELEFONO_1Value : String; + function GetOldTELEFONO_2Value : String; + function GetOldMOVIL_1Value : String; + function GetOldMOVIL_2Value : String; + function GetOldFAXValue : String; + function GetOldEMAIL_1Value : String; + function GetOldEMAIL_2Value : String; + function GetOldPAGINA_WEBValue : String; + function GetOldNOTASValue : IROStrings; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + function GetOldUSUARIOValue : String; + function GetOldREFERENCIAValue : String; + function GetOldPERSONA_CONTACTOValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldNIF_CIF : String read GetOldNIF_CIFValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldCALLE : String read GetOldCALLEValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property OldTELEFONO_1 : String read GetOldTELEFONO_1Value; + property OldTELEFONO_2 : String read GetOldTELEFONO_2Value; + property OldMOVIL_1 : String read GetOldMOVIL_1Value; + property OldMOVIL_2 : String read GetOldMOVIL_2Value; + property OldFAX : String read GetOldFAXValue; + property OldEMAIL_1 : String read GetOldEMAIL_1Value; + property OldEMAIL_2 : String read GetOldEMAIL_2Value; + property OldPAGINA_WEB : String read GetOldPAGINA_WEBValue; + property OldNOTAS : IROStrings read GetOldNOTASValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + end; + + { TContactos_RefreshBusinessProcessorRules } + TContactos_RefreshBusinessProcessorRules = class(TDABusinessProcessorRules, IContactos_Refresh, IContactos_RefreshDelta) + private + f_NOTAS: IROStrings; + procedure NOTAS_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetNIF_CIFValue: String; virtual; + function GetNIF_CIFIsNull: Boolean; virtual; + function GetOldNIF_CIFValue: String; virtual; + function GetOldNIF_CIFIsNull: Boolean; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + procedure SetNIF_CIFIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + function GetNOMBREIsNull: Boolean; virtual; + function GetOldNOMBREValue: String; virtual; + function GetOldNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetCALLEValue: String; virtual; + function GetCALLEIsNull: Boolean; virtual; + function GetOldCALLEValue: String; virtual; + function GetOldCALLEIsNull: Boolean; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + procedure SetCALLEIsNull(const aValue: Boolean); virtual; + function GetPOBLACIONValue: String; virtual; + function GetPOBLACIONIsNull: Boolean; virtual; + function GetOldPOBLACIONValue: String; virtual; + function GetOldPOBLACIONIsNull: Boolean; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual; + function GetPROVINCIAValue: String; virtual; + function GetPROVINCIAIsNull: Boolean; virtual; + function GetOldPROVINCIAValue: String; virtual; + function GetOldPROVINCIAIsNull: Boolean; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetCODIGO_POSTALIsNull: Boolean; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALIsNull: Boolean; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual; + function GetTELEFONO_1Value: String; virtual; + function GetTELEFONO_1IsNull: Boolean; virtual; + function GetOldTELEFONO_1Value: String; virtual; + function GetOldTELEFONO_1IsNull: Boolean; virtual; + procedure SetTELEFONO_1Value(const aValue: String); virtual; + procedure SetTELEFONO_1IsNull(const aValue: Boolean); virtual; + function GetTELEFONO_2Value: String; virtual; + function GetTELEFONO_2IsNull: Boolean; virtual; + function GetOldTELEFONO_2Value: String; virtual; + function GetOldTELEFONO_2IsNull: Boolean; virtual; + procedure SetTELEFONO_2Value(const aValue: String); virtual; + procedure SetTELEFONO_2IsNull(const aValue: Boolean); virtual; + function GetMOVIL_1Value: String; virtual; + function GetMOVIL_1IsNull: Boolean; virtual; + function GetOldMOVIL_1Value: String; virtual; + function GetOldMOVIL_1IsNull: Boolean; virtual; + procedure SetMOVIL_1Value(const aValue: String); virtual; + procedure SetMOVIL_1IsNull(const aValue: Boolean); virtual; + function GetMOVIL_2Value: String; virtual; + function GetMOVIL_2IsNull: Boolean; virtual; + function GetOldMOVIL_2Value: String; virtual; + function GetOldMOVIL_2IsNull: Boolean; virtual; + procedure SetMOVIL_2Value(const aValue: String); virtual; + procedure SetMOVIL_2IsNull(const aValue: Boolean); virtual; + function GetFAXValue: String; virtual; + function GetFAXIsNull: Boolean; virtual; + function GetOldFAXValue: String; virtual; + function GetOldFAXIsNull: Boolean; virtual; + procedure SetFAXValue(const aValue: String); virtual; + procedure SetFAXIsNull(const aValue: Boolean); virtual; + function GetEMAIL_1Value: String; virtual; + function GetEMAIL_1IsNull: Boolean; virtual; + function GetOldEMAIL_1Value: String; virtual; + function GetOldEMAIL_1IsNull: Boolean; virtual; + procedure SetEMAIL_1Value(const aValue: String); virtual; + procedure SetEMAIL_1IsNull(const aValue: Boolean); virtual; + function GetEMAIL_2Value: String; virtual; + function GetEMAIL_2IsNull: Boolean; virtual; + function GetOldEMAIL_2Value: String; virtual; + function GetOldEMAIL_2IsNull: Boolean; virtual; + procedure SetEMAIL_2Value(const aValue: String); virtual; + procedure SetEMAIL_2IsNull(const aValue: Boolean); virtual; + function GetPAGINA_WEBValue: String; virtual; + function GetPAGINA_WEBIsNull: Boolean; virtual; + function GetOldPAGINA_WEBValue: String; virtual; + function GetOldPAGINA_WEBIsNull: Boolean; virtual; + procedure SetPAGINA_WEBValue(const aValue: String); virtual; + procedure SetPAGINA_WEBIsNull(const aValue: Boolean); virtual; + function GetNOTASValue: IROStrings; virtual; + function GetNOTASIsNull: Boolean; virtual; + function GetOldNOTASValue: IROStrings; virtual; + function GetOldNOTASIsNull: Boolean; virtual; + procedure SetNOTASIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + function GetUSUARIOIsNull: Boolean; virtual; + function GetOldUSUARIOValue: String; virtual; + function GetOldUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + function GetPERSONA_CONTACTOIsNull: Boolean; virtual; + function GetOldPERSONA_CONTACTOValue: String; virtual; + function GetOldPERSONA_CONTACTOIsNull: Boolean; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property NIF_CIF : String read GetNIF_CIFValue write SetNIF_CIFValue; + property NIF_CIFIsNull : Boolean read GetNIF_CIFIsNull write SetNIF_CIFIsNull; + property OldNIF_CIF : String read GetOldNIF_CIFValue; + property OldNIF_CIFIsNull : Boolean read GetOldNIF_CIFIsNull; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull : Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldNOMBREIsNull : Boolean read GetOldNOMBREIsNull; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull : Boolean read GetCALLEIsNull write SetCALLEIsNull; + property OldCALLE : String read GetOldCALLEValue; + property OldCALLEIsNull : Boolean read GetOldCALLEIsNull; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull : Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property OldPOBLACIONIsNull : Boolean read GetOldPOBLACIONIsNull; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull : Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property OldPROVINCIAIsNull : Boolean read GetOldPROVINCIAIsNull; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull : Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property OldCODIGO_POSTALIsNull : Boolean read GetOldCODIGO_POSTALIsNull; + property TELEFONO_1 : String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_1IsNull : Boolean read GetTELEFONO_1IsNull write SetTELEFONO_1IsNull; + property OldTELEFONO_1 : String read GetOldTELEFONO_1Value; + property OldTELEFONO_1IsNull : Boolean read GetOldTELEFONO_1IsNull; + property TELEFONO_2 : String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property TELEFONO_2IsNull : Boolean read GetTELEFONO_2IsNull write SetTELEFONO_2IsNull; + property OldTELEFONO_2 : String read GetOldTELEFONO_2Value; + property OldTELEFONO_2IsNull : Boolean read GetOldTELEFONO_2IsNull; + property MOVIL_1 : String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_1IsNull : Boolean read GetMOVIL_1IsNull write SetMOVIL_1IsNull; + property OldMOVIL_1 : String read GetOldMOVIL_1Value; + property OldMOVIL_1IsNull : Boolean read GetOldMOVIL_1IsNull; + property MOVIL_2 : String read GetMOVIL_2Value write SetMOVIL_2Value; + property MOVIL_2IsNull : Boolean read GetMOVIL_2IsNull write SetMOVIL_2IsNull; + property OldMOVIL_2 : String read GetOldMOVIL_2Value; + property OldMOVIL_2IsNull : Boolean read GetOldMOVIL_2IsNull; + property FAX : String read GetFAXValue write SetFAXValue; + property FAXIsNull : Boolean read GetFAXIsNull write SetFAXIsNull; + property OldFAX : String read GetOldFAXValue; + property OldFAXIsNull : Boolean read GetOldFAXIsNull; + property EMAIL_1 : String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_1IsNull : Boolean read GetEMAIL_1IsNull write SetEMAIL_1IsNull; + property OldEMAIL_1 : String read GetOldEMAIL_1Value; + property OldEMAIL_1IsNull : Boolean read GetOldEMAIL_1IsNull; + property EMAIL_2 : String read GetEMAIL_2Value write SetEMAIL_2Value; + property EMAIL_2IsNull : Boolean read GetEMAIL_2IsNull write SetEMAIL_2IsNull; + property OldEMAIL_2 : String read GetOldEMAIL_2Value; + property OldEMAIL_2IsNull : Boolean read GetOldEMAIL_2IsNull; + property PAGINA_WEB : String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property PAGINA_WEBIsNull : Boolean read GetPAGINA_WEBIsNull write SetPAGINA_WEBIsNull; + property OldPAGINA_WEB : String read GetOldPAGINA_WEBValue; + property OldPAGINA_WEBIsNull : Boolean read GetOldPAGINA_WEBIsNull; + property NOTAS : IROStrings read GetNOTASValue; + property NOTASIsNull : Boolean read GetNOTASIsNull write SetNOTASIsNull; + property OldNOTAS : IROStrings read GetOldNOTASValue; + property OldNOTASIsNull : Boolean read GetOldNOTASIsNull; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull : Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_ALTAIsNull : Boolean read GetOldFECHA_ALTAIsNull; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull : Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldUSUARIOIsNull : Boolean read GetOldUSUARIOIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property PERSONA_CONTACTO : String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull : Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property OldPERSONA_CONTACTOIsNull : Boolean read GetOldPERSONA_CONTACTOIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IContratosEmpleadosDelta } + IContratosEmpleadosDelta = interface(IContratosEmpleados) + ['{E62488A1-C81E-4B36-90ED-206B1033DD39}'] + { Property getters and setters } + function GetOldCONTRATOValue : String; + + { Properties } + property OldCONTRATO : String read GetOldCONTRATOValue; + end; + + { TContratosEmpleadosBusinessProcessorRules } + TContratosEmpleadosBusinessProcessorRules = class(TDABusinessProcessorRules, IContratosEmpleados, IContratosEmpleadosDelta) + private + protected + { Property getters and setters } + function GetCONTRATOValue: String; virtual; + function GetCONTRATOIsNull: Boolean; virtual; + function GetOldCONTRATOValue: String; virtual; + function GetOldCONTRATOIsNull: Boolean; virtual; + procedure SetCONTRATOValue(const aValue: String); virtual; + procedure SetCONTRATOIsNull(const aValue: Boolean); virtual; + + { Properties } + property CONTRATO : String read GetCONTRATOValue write SetCONTRATOValue; + property CONTRATOIsNull : Boolean read GetCONTRATOIsNull write SetCONTRATOIsNull; + property OldCONTRATO : String read GetOldCONTRATOValue; + property OldCONTRATOIsNull : Boolean read GetOldCONTRATOIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IDescripcionesProveedoresDelta } + IDescripcionesProveedoresDelta = interface(IDescripcionesProveedores) + ['{58F6D16F-8509-4805-B234-6263DC21BE65}'] + { Property getters and setters } + function GetOldDESCRIPCION_PROVEEDORValue : String; + + { Properties } + property OldDESCRIPCION_PROVEEDOR : String read GetOldDESCRIPCION_PROVEEDORValue; + end; + + { TDescripcionesProveedoresBusinessProcessorRules } + TDescripcionesProveedoresBusinessProcessorRules = class(TDABusinessProcessorRules, IDescripcionesProveedores, IDescripcionesProveedoresDelta) + private + protected + { Property getters and setters } + function GetDESCRIPCION_PROVEEDORValue: String; virtual; + function GetDESCRIPCION_PROVEEDORIsNull: Boolean; virtual; + function GetOldDESCRIPCION_PROVEEDORValue: String; virtual; + function GetOldDESCRIPCION_PROVEEDORIsNull: Boolean; virtual; + procedure SetDESCRIPCION_PROVEEDORValue(const aValue: String); virtual; + procedure SetDESCRIPCION_PROVEEDORIsNull(const aValue: Boolean); virtual; + + { Properties } + property DESCRIPCION_PROVEEDOR : String read GetDESCRIPCION_PROVEEDORValue write SetDESCRIPCION_PROVEEDORValue; + property DESCRIPCION_PROVEEDORIsNull : Boolean read GetDESCRIPCION_PROVEEDORIsNull write SetDESCRIPCION_PROVEEDORIsNull; + property OldDESCRIPCION_PROVEEDOR : String read GetOldDESCRIPCION_PROVEEDORValue; + property OldDESCRIPCION_PROVEEDORIsNull : Boolean read GetOldDESCRIPCION_PROVEEDORIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IPersonalContactoDelta } + IPersonalContactoDelta = interface(IPersonalContacto) + ['{517AA226-5930-4EBD-99CB-D01DA050A368}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_CONTACTOValue : Integer; + function GetOldNOMBREValue : String; + function GetOldPUESTOValue : String; + function GetOldTELEFONOValue : String; + function GetOldMOVILValue : String; + function GetOldFAXValue : String; + function GetOldEMAILValue : String; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_CONTACTO : Integer read GetOldID_CONTACTOValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldPUESTO : String read GetOldPUESTOValue; + property OldTELEFONO : String read GetOldTELEFONOValue; + property OldMOVIL : String read GetOldMOVILValue; + property OldFAX : String read GetOldFAXValue; + property OldEMAIL : String read GetOldEMAILValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + end; + + { TPersonalContactoBusinessProcessorRules } + TPersonalContactoBusinessProcessorRules = class(TDABusinessProcessorRules, IPersonalContacto, IPersonalContactoDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_CONTACTOValue: Integer; virtual; + function GetID_CONTACTOIsNull: Boolean; virtual; + function GetOldID_CONTACTOValue: Integer; virtual; + function GetOldID_CONTACTOIsNull: Boolean; virtual; + procedure SetID_CONTACTOValue(const aValue: Integer); virtual; + procedure SetID_CONTACTOIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + function GetNOMBREIsNull: Boolean; virtual; + function GetOldNOMBREValue: String; virtual; + function GetOldNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetPUESTOValue: String; virtual; + function GetPUESTOIsNull: Boolean; virtual; + function GetOldPUESTOValue: String; virtual; + function GetOldPUESTOIsNull: Boolean; virtual; + procedure SetPUESTOValue(const aValue: String); virtual; + procedure SetPUESTOIsNull(const aValue: Boolean); virtual; + function GetTELEFONOValue: String; virtual; + function GetTELEFONOIsNull: Boolean; virtual; + function GetOldTELEFONOValue: String; virtual; + function GetOldTELEFONOIsNull: Boolean; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + procedure SetTELEFONOIsNull(const aValue: Boolean); virtual; + function GetMOVILValue: String; virtual; + function GetMOVILIsNull: Boolean; virtual; + function GetOldMOVILValue: String; virtual; + function GetOldMOVILIsNull: Boolean; virtual; + procedure SetMOVILValue(const aValue: String); virtual; + procedure SetMOVILIsNull(const aValue: Boolean); virtual; + function GetFAXValue: String; virtual; + function GetFAXIsNull: Boolean; virtual; + function GetOldFAXValue: String; virtual; + function GetOldFAXIsNull: Boolean; virtual; + procedure SetFAXValue(const aValue: String); virtual; + procedure SetFAXIsNull(const aValue: Boolean); virtual; + function GetEMAILValue: String; virtual; + function GetEMAILIsNull: Boolean; virtual; + function GetOldEMAILValue: String; virtual; + function GetOldEMAILIsNull: Boolean; virtual; + procedure SetEMAILValue(const aValue: String); virtual; + procedure SetEMAILIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_CONTACTO : Integer read GetID_CONTACTOValue write SetID_CONTACTOValue; + property ID_CONTACTOIsNull : Boolean read GetID_CONTACTOIsNull write SetID_CONTACTOIsNull; + property OldID_CONTACTO : Integer read GetOldID_CONTACTOValue; + property OldID_CONTACTOIsNull : Boolean read GetOldID_CONTACTOIsNull; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull : Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldNOMBREIsNull : Boolean read GetOldNOMBREIsNull; + property PUESTO : String read GetPUESTOValue write SetPUESTOValue; + property PUESTOIsNull : Boolean read GetPUESTOIsNull write SetPUESTOIsNull; + property OldPUESTO : String read GetOldPUESTOValue; + property OldPUESTOIsNull : Boolean read GetOldPUESTOIsNull; + property TELEFONO : String read GetTELEFONOValue write SetTELEFONOValue; + property TELEFONOIsNull : Boolean read GetTELEFONOIsNull write SetTELEFONOIsNull; + property OldTELEFONO : String read GetOldTELEFONOValue; + property OldTELEFONOIsNull : Boolean read GetOldTELEFONOIsNull; + property MOVIL : String read GetMOVILValue write SetMOVILValue; + property MOVILIsNull : Boolean read GetMOVILIsNull write SetMOVILIsNull; + property OldMOVIL : String read GetOldMOVILValue; + property OldMOVILIsNull : Boolean read GetOldMOVILIsNull; + property FAX : String read GetFAXValue write SetFAXValue; + property FAXIsNull : Boolean read GetFAXIsNull write SetFAXIsNull; + property OldFAX : String read GetOldFAXValue; + property OldFAXIsNull : Boolean read GetOldFAXIsNull; + property EMAIL : String read GetEMAILValue write SetEMAILValue; + property EMAILIsNull : Boolean read GetEMAILIsNull write SetEMAILIsNull; + property OldEMAIL : String read GetOldEMAILValue; + property OldEMAILIsNull : Boolean read GetOldEMAILIsNull; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull : Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_ALTAIsNull : Boolean read GetOldFECHA_ALTAIsNull; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IAgentes_ComisionesDelta } + IAgentes_ComisionesDelta = interface(IAgentes_Comisiones) + ['{B489AFCD-F2A4-4762-99E8-171CC8767238}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_AGENTEValue : Integer; + function GetOldID_PROVEEDORValue : SmallInt; + function GetOldNOMBREValue : String; + function GetOldCOMISIONValue : Float; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_AGENTE : Integer read GetOldID_AGENTEValue; + property OldID_PROVEEDOR : SmallInt read GetOldID_PROVEEDORValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldCOMISION : Float read GetOldCOMISIONValue; + end; + + { TAgentes_ComisionesBusinessProcessorRules } + TAgentes_ComisionesBusinessProcessorRules = class(TDABusinessProcessorRules, IAgentes_Comisiones, IAgentes_ComisionesDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_AGENTEValue: Integer; virtual; + function GetID_AGENTEIsNull: Boolean; virtual; + function GetOldID_AGENTEValue: Integer; virtual; + function GetOldID_AGENTEIsNull: Boolean; virtual; + procedure SetID_AGENTEValue(const aValue: Integer); virtual; + procedure SetID_AGENTEIsNull(const aValue: Boolean); virtual; + function GetID_PROVEEDORValue: SmallInt; virtual; + function GetID_PROVEEDORIsNull: Boolean; virtual; + function GetOldID_PROVEEDORValue: SmallInt; virtual; + function GetOldID_PROVEEDORIsNull: Boolean; virtual; + procedure SetID_PROVEEDORValue(const aValue: SmallInt); virtual; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + function GetNOMBREIsNull: Boolean; virtual; + function GetOldNOMBREValue: String; virtual; + function GetOldNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetCOMISIONValue: Float; virtual; + function GetCOMISIONIsNull: Boolean; virtual; + function GetOldCOMISIONValue: Float; virtual; + function GetOldCOMISIONIsNull: Boolean; virtual; + procedure SetCOMISIONValue(const aValue: Float); virtual; + procedure SetCOMISIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_AGENTE : Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property ID_AGENTEIsNull : Boolean read GetID_AGENTEIsNull write SetID_AGENTEIsNull; + property OldID_AGENTE : Integer read GetOldID_AGENTEValue; + property OldID_AGENTEIsNull : Boolean read GetOldID_AGENTEIsNull; + property ID_PROVEEDOR : SmallInt read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull : Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property OldID_PROVEEDOR : SmallInt read GetOldID_PROVEEDORValue; + property OldID_PROVEEDORIsNull : Boolean read GetOldID_PROVEEDORIsNull; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull : Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldNOMBREIsNull : Boolean read GetOldNOMBREIsNull; + property COMISION : Float read GetCOMISIONValue write SetCOMISIONValue; + property COMISIONIsNull : Boolean read GetCOMISIONIsNull write SetCOMISIONIsNull; + property OldCOMISION : Float read GetOldCOMISIONValue; + property OldCOMISIONIsNull : Boolean read GetOldCOMISIONIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IAgentesDelta } + IAgentesDelta = interface(IAgentes) + ['{05D9F35E-0C52-4504-84CC-B35F48442AB5}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_CATEGORIAValue : Integer; + function GetOldNIF_CIFValue : String; + function GetOldNOMBREValue : String; + function GetOldPERSONA_CONTACTOValue : String; + function GetOldCALLEValue : String; + function GetOldPOBLACIONValue : String; + function GetOldPROVINCIAValue : String; + function GetOldCODIGO_POSTALValue : String; + function GetOldTELEFONO_1Value : String; + function GetOldTELEFONO_2Value : String; + function GetOldMOVIL_1Value : String; + function GetOldMOVIL_2Value : String; + function GetOldFAXValue : String; + function GetOldEMAIL_1Value : String; + function GetOldEMAIL_2Value : String; + function GetOldPAGINA_WEBValue : String; + function GetOldNOTASValue : IROStrings; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + function GetOldUSUARIOValue : String; + function GetOldID_EMPRESAValue : Integer; + function GetOldREFERENCIAValue : String; + function GetOldFECHA_ALTA_EMPRESAValue : DateTime; + function GetOldFECHA_BAJAValue : DateTime; + function GetOldCAUSA_BAJAValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_CATEGORIA : Integer read GetOldID_CATEGORIAValue; + property OldNIF_CIF : String read GetOldNIF_CIFValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property OldCALLE : String read GetOldCALLEValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property OldTELEFONO_1 : String read GetOldTELEFONO_1Value; + property OldTELEFONO_2 : String read GetOldTELEFONO_2Value; + property OldMOVIL_1 : String read GetOldMOVIL_1Value; + property OldMOVIL_2 : String read GetOldMOVIL_2Value; + property OldFAX : String read GetOldFAXValue; + property OldEMAIL_1 : String read GetOldEMAIL_1Value; + property OldEMAIL_2 : String read GetOldEMAIL_2Value; + property OldPAGINA_WEB : String read GetOldPAGINA_WEBValue; + property OldNOTAS : IROStrings read GetOldNOTASValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldFECHA_ALTA_EMPRESA : DateTime read GetOldFECHA_ALTA_EMPRESAValue; + property OldFECHA_BAJA : DateTime read GetOldFECHA_BAJAValue; + property OldCAUSA_BAJA : String read GetOldCAUSA_BAJAValue; + end; + + { TAgentesBusinessProcessorRules } + TAgentesBusinessProcessorRules = class(TDABusinessProcessorRules, IAgentes, IAgentesDelta) + private + f_NOTAS: IROStrings; + procedure NOTAS_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_CATEGORIAValue: Integer; virtual; + function GetID_CATEGORIAIsNull: Boolean; virtual; + function GetOldID_CATEGORIAValue: Integer; virtual; + function GetOldID_CATEGORIAIsNull: Boolean; virtual; + procedure SetID_CATEGORIAValue(const aValue: Integer); virtual; + procedure SetID_CATEGORIAIsNull(const aValue: Boolean); virtual; + function GetNIF_CIFValue: String; virtual; + function GetNIF_CIFIsNull: Boolean; virtual; + function GetOldNIF_CIFValue: String; virtual; + function GetOldNIF_CIFIsNull: Boolean; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + procedure SetNIF_CIFIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + function GetNOMBREIsNull: Boolean; virtual; + function GetOldNOMBREValue: String; virtual; + function GetOldNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + function GetPERSONA_CONTACTOIsNull: Boolean; virtual; + function GetOldPERSONA_CONTACTOValue: String; virtual; + function GetOldPERSONA_CONTACTOIsNull: Boolean; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); virtual; + function GetCALLEValue: String; virtual; + function GetCALLEIsNull: Boolean; virtual; + function GetOldCALLEValue: String; virtual; + function GetOldCALLEIsNull: Boolean; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + procedure SetCALLEIsNull(const aValue: Boolean); virtual; + function GetPOBLACIONValue: String; virtual; + function GetPOBLACIONIsNull: Boolean; virtual; + function GetOldPOBLACIONValue: String; virtual; + function GetOldPOBLACIONIsNull: Boolean; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual; + function GetPROVINCIAValue: String; virtual; + function GetPROVINCIAIsNull: Boolean; virtual; + function GetOldPROVINCIAValue: String; virtual; + function GetOldPROVINCIAIsNull: Boolean; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetCODIGO_POSTALIsNull: Boolean; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALIsNull: Boolean; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual; + function GetTELEFONO_1Value: String; virtual; + function GetTELEFONO_1IsNull: Boolean; virtual; + function GetOldTELEFONO_1Value: String; virtual; + function GetOldTELEFONO_1IsNull: Boolean; virtual; + procedure SetTELEFONO_1Value(const aValue: String); virtual; + procedure SetTELEFONO_1IsNull(const aValue: Boolean); virtual; + function GetTELEFONO_2Value: String; virtual; + function GetTELEFONO_2IsNull: Boolean; virtual; + function GetOldTELEFONO_2Value: String; virtual; + function GetOldTELEFONO_2IsNull: Boolean; virtual; + procedure SetTELEFONO_2Value(const aValue: String); virtual; + procedure SetTELEFONO_2IsNull(const aValue: Boolean); virtual; + function GetMOVIL_1Value: String; virtual; + function GetMOVIL_1IsNull: Boolean; virtual; + function GetOldMOVIL_1Value: String; virtual; + function GetOldMOVIL_1IsNull: Boolean; virtual; + procedure SetMOVIL_1Value(const aValue: String); virtual; + procedure SetMOVIL_1IsNull(const aValue: Boolean); virtual; + function GetMOVIL_2Value: String; virtual; + function GetMOVIL_2IsNull: Boolean; virtual; + function GetOldMOVIL_2Value: String; virtual; + function GetOldMOVIL_2IsNull: Boolean; virtual; + procedure SetMOVIL_2Value(const aValue: String); virtual; + procedure SetMOVIL_2IsNull(const aValue: Boolean); virtual; + function GetFAXValue: String; virtual; + function GetFAXIsNull: Boolean; virtual; + function GetOldFAXValue: String; virtual; + function GetOldFAXIsNull: Boolean; virtual; + procedure SetFAXValue(const aValue: String); virtual; + procedure SetFAXIsNull(const aValue: Boolean); virtual; + function GetEMAIL_1Value: String; virtual; + function GetEMAIL_1IsNull: Boolean; virtual; + function GetOldEMAIL_1Value: String; virtual; + function GetOldEMAIL_1IsNull: Boolean; virtual; + procedure SetEMAIL_1Value(const aValue: String); virtual; + procedure SetEMAIL_1IsNull(const aValue: Boolean); virtual; + function GetEMAIL_2Value: String; virtual; + function GetEMAIL_2IsNull: Boolean; virtual; + function GetOldEMAIL_2Value: String; virtual; + function GetOldEMAIL_2IsNull: Boolean; virtual; + procedure SetEMAIL_2Value(const aValue: String); virtual; + procedure SetEMAIL_2IsNull(const aValue: Boolean); virtual; + function GetPAGINA_WEBValue: String; virtual; + function GetPAGINA_WEBIsNull: Boolean; virtual; + function GetOldPAGINA_WEBValue: String; virtual; + function GetOldPAGINA_WEBIsNull: Boolean; virtual; + procedure SetPAGINA_WEBValue(const aValue: String); virtual; + procedure SetPAGINA_WEBIsNull(const aValue: Boolean); virtual; + function GetNOTASValue: IROStrings; virtual; + function GetNOTASIsNull: Boolean; virtual; + function GetOldNOTASValue: IROStrings; virtual; + function GetOldNOTASIsNull: Boolean; virtual; + procedure SetNOTASIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + function GetUSUARIOIsNull: Boolean; virtual; + function GetOldUSUARIOValue: String; virtual; + function GetOldUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTA_EMPRESAValue: DateTime; virtual; + function GetFECHA_ALTA_EMPRESAIsNull: Boolean; virtual; + function GetOldFECHA_ALTA_EMPRESAValue: DateTime; virtual; + function GetOldFECHA_ALTA_EMPRESAIsNull: Boolean; virtual; + procedure SetFECHA_ALTA_EMPRESAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALTA_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetFECHA_BAJAValue: DateTime; virtual; + function GetFECHA_BAJAIsNull: Boolean; virtual; + function GetOldFECHA_BAJAValue: DateTime; virtual; + function GetOldFECHA_BAJAIsNull: Boolean; virtual; + procedure SetFECHA_BAJAValue(const aValue: DateTime); virtual; + procedure SetFECHA_BAJAIsNull(const aValue: Boolean); virtual; + function GetCAUSA_BAJAValue: String; virtual; + function GetCAUSA_BAJAIsNull: Boolean; virtual; + function GetOldCAUSA_BAJAValue: String; virtual; + function GetOldCAUSA_BAJAIsNull: Boolean; virtual; + procedure SetCAUSA_BAJAValue(const aValue: String); virtual; + procedure SetCAUSA_BAJAIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_CATEGORIA : Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue; + property ID_CATEGORIAIsNull : Boolean read GetID_CATEGORIAIsNull write SetID_CATEGORIAIsNull; + property OldID_CATEGORIA : Integer read GetOldID_CATEGORIAValue; + property OldID_CATEGORIAIsNull : Boolean read GetOldID_CATEGORIAIsNull; + property NIF_CIF : String read GetNIF_CIFValue write SetNIF_CIFValue; + property NIF_CIFIsNull : Boolean read GetNIF_CIFIsNull write SetNIF_CIFIsNull; + property OldNIF_CIF : String read GetOldNIF_CIFValue; + property OldNIF_CIFIsNull : Boolean read GetOldNIF_CIFIsNull; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull : Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldNOMBREIsNull : Boolean read GetOldNOMBREIsNull; + property PERSONA_CONTACTO : String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull : Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property OldPERSONA_CONTACTOIsNull : Boolean read GetOldPERSONA_CONTACTOIsNull; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull : Boolean read GetCALLEIsNull write SetCALLEIsNull; + property OldCALLE : String read GetOldCALLEValue; + property OldCALLEIsNull : Boolean read GetOldCALLEIsNull; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull : Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property OldPOBLACIONIsNull : Boolean read GetOldPOBLACIONIsNull; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull : Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property OldPROVINCIAIsNull : Boolean read GetOldPROVINCIAIsNull; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull : Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property OldCODIGO_POSTALIsNull : Boolean read GetOldCODIGO_POSTALIsNull; + property TELEFONO_1 : String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_1IsNull : Boolean read GetTELEFONO_1IsNull write SetTELEFONO_1IsNull; + property OldTELEFONO_1 : String read GetOldTELEFONO_1Value; + property OldTELEFONO_1IsNull : Boolean read GetOldTELEFONO_1IsNull; + property TELEFONO_2 : String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property TELEFONO_2IsNull : Boolean read GetTELEFONO_2IsNull write SetTELEFONO_2IsNull; + property OldTELEFONO_2 : String read GetOldTELEFONO_2Value; + property OldTELEFONO_2IsNull : Boolean read GetOldTELEFONO_2IsNull; + property MOVIL_1 : String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_1IsNull : Boolean read GetMOVIL_1IsNull write SetMOVIL_1IsNull; + property OldMOVIL_1 : String read GetOldMOVIL_1Value; + property OldMOVIL_1IsNull : Boolean read GetOldMOVIL_1IsNull; + property MOVIL_2 : String read GetMOVIL_2Value write SetMOVIL_2Value; + property MOVIL_2IsNull : Boolean read GetMOVIL_2IsNull write SetMOVIL_2IsNull; + property OldMOVIL_2 : String read GetOldMOVIL_2Value; + property OldMOVIL_2IsNull : Boolean read GetOldMOVIL_2IsNull; + property FAX : String read GetFAXValue write SetFAXValue; + property FAXIsNull : Boolean read GetFAXIsNull write SetFAXIsNull; + property OldFAX : String read GetOldFAXValue; + property OldFAXIsNull : Boolean read GetOldFAXIsNull; + property EMAIL_1 : String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_1IsNull : Boolean read GetEMAIL_1IsNull write SetEMAIL_1IsNull; + property OldEMAIL_1 : String read GetOldEMAIL_1Value; + property OldEMAIL_1IsNull : Boolean read GetOldEMAIL_1IsNull; + property EMAIL_2 : String read GetEMAIL_2Value write SetEMAIL_2Value; + property EMAIL_2IsNull : Boolean read GetEMAIL_2IsNull write SetEMAIL_2IsNull; + property OldEMAIL_2 : String read GetOldEMAIL_2Value; + property OldEMAIL_2IsNull : Boolean read GetOldEMAIL_2IsNull; + property PAGINA_WEB : String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property PAGINA_WEBIsNull : Boolean read GetPAGINA_WEBIsNull write SetPAGINA_WEBIsNull; + property OldPAGINA_WEB : String read GetOldPAGINA_WEBValue; + property OldPAGINA_WEBIsNull : Boolean read GetOldPAGINA_WEBIsNull; + property NOTAS : IROStrings read GetNOTASValue; + property NOTASIsNull : Boolean read GetNOTASIsNull write SetNOTASIsNull; + property OldNOTAS : IROStrings read GetOldNOTASValue; + property OldNOTASIsNull : Boolean read GetOldNOTASIsNull; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull : Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_ALTAIsNull : Boolean read GetOldFECHA_ALTAIsNull; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull : Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldUSUARIOIsNull : Boolean read GetOldUSUARIOIsNull; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull : Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_EMPRESAIsNull : Boolean read GetOldID_EMPRESAIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property FECHA_ALTA_EMPRESA : DateTime read GetFECHA_ALTA_EMPRESAValue write SetFECHA_ALTA_EMPRESAValue; + property FECHA_ALTA_EMPRESAIsNull : Boolean read GetFECHA_ALTA_EMPRESAIsNull write SetFECHA_ALTA_EMPRESAIsNull; + property OldFECHA_ALTA_EMPRESA : DateTime read GetOldFECHA_ALTA_EMPRESAValue; + property OldFECHA_ALTA_EMPRESAIsNull : Boolean read GetOldFECHA_ALTA_EMPRESAIsNull; + property FECHA_BAJA : DateTime read GetFECHA_BAJAValue write SetFECHA_BAJAValue; + property FECHA_BAJAIsNull : Boolean read GetFECHA_BAJAIsNull write SetFECHA_BAJAIsNull; + property OldFECHA_BAJA : DateTime read GetOldFECHA_BAJAValue; + property OldFECHA_BAJAIsNull : Boolean read GetOldFECHA_BAJAIsNull; + property CAUSA_BAJA : String read GetCAUSA_BAJAValue write SetCAUSA_BAJAValue; + property CAUSA_BAJAIsNull : Boolean read GetCAUSA_BAJAIsNull write SetCAUSA_BAJAIsNull; + property OldCAUSA_BAJA : String read GetOldCAUSA_BAJAValue; + property OldCAUSA_BAJAIsNull : Boolean read GetOldCAUSA_BAJAIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers, uDAInterfaces; + +{ TContactosBusinessProcessorRules } +constructor TContactosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := NOTAS_OnChange; + f_NOTAS := NewROStrings(StrList,True); +end; + +destructor TContactosBusinessProcessorRules.Destroy; +begin + inherited; +end; + +procedure TContactosBusinessProcessorRules.NOTAS_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosNOTAS] := TStringList(Sender).Text; +end; + +function TContactosBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosID]; +end; + +function TContactosBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosID]); +end; + +function TContactosBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosID]; +end; + +function TContactosBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosID]); +end; + +procedure TContactosBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosID] := aValue; +end; + +procedure TContactosBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosID] := Null; +end; + +function TContactosBusinessProcessorRules.GetID_CATEGORIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosID_CATEGORIA]; +end; + +function TContactosBusinessProcessorRules.GetID_CATEGORIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosID_CATEGORIA]); +end; + +function TContactosBusinessProcessorRules.GetOldID_CATEGORIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosID_CATEGORIA]; +end; + +function TContactosBusinessProcessorRules.GetOldID_CATEGORIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosID_CATEGORIA]); +end; + +procedure TContactosBusinessProcessorRules.SetID_CATEGORIAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosID_CATEGORIA] := aValue; +end; + +procedure TContactosBusinessProcessorRules.SetID_CATEGORIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosID_CATEGORIA] := Null; +end; + +function TContactosBusinessProcessorRules.GetNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosNIF_CIF]; +end; + +function TContactosBusinessProcessorRules.GetNIF_CIFIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosNIF_CIF]); +end; + +function TContactosBusinessProcessorRules.GetOldNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosNIF_CIF]; +end; + +function TContactosBusinessProcessorRules.GetOldNIF_CIFIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosNIF_CIF]); +end; + +procedure TContactosBusinessProcessorRules.SetNIF_CIFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosNIF_CIF] := aValue; +end; + +procedure TContactosBusinessProcessorRules.SetNIF_CIFIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosNIF_CIF] := Null; +end; + +function TContactosBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosNOMBRE]; +end; + +function TContactosBusinessProcessorRules.GetNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosNOMBRE]); +end; + +function TContactosBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosNOMBRE]; +end; + +function TContactosBusinessProcessorRules.GetOldNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosNOMBRE]); +end; + +procedure TContactosBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosNOMBRE] := aValue; +end; + +procedure TContactosBusinessProcessorRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosNOMBRE] := Null; +end; + +function TContactosBusinessProcessorRules.GetPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPERSONA_CONTACTO]; +end; + +function TContactosBusinessProcessorRules.GetPERSONA_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPERSONA_CONTACTO]); +end; + +function TContactosBusinessProcessorRules.GetOldPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosPERSONA_CONTACTO]; +end; + +function TContactosBusinessProcessorRules.GetOldPERSONA_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosPERSONA_CONTACTO]); +end; + +procedure TContactosBusinessProcessorRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPERSONA_CONTACTO] := aValue; +end; + +procedure TContactosBusinessProcessorRules.SetPERSONA_CONTACTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPERSONA_CONTACTO] := Null; +end; + +function TContactosBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCALLE]; +end; + +function TContactosBusinessProcessorRules.GetCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCALLE]); +end; + +function TContactosBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosCALLE]; +end; + +function TContactosBusinessProcessorRules.GetOldCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosCALLE]); +end; + +procedure TContactosBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCALLE] := aValue; +end; + +procedure TContactosBusinessProcessorRules.SetCALLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCALLE] := Null; +end; + +function TContactosBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPOBLACION]; +end; + +function TContactosBusinessProcessorRules.GetPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPOBLACION]); +end; + +function TContactosBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosPOBLACION]; +end; + +function TContactosBusinessProcessorRules.GetOldPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosPOBLACION]); +end; + +procedure TContactosBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPOBLACION] := aValue; +end; + +procedure TContactosBusinessProcessorRules.SetPOBLACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPOBLACION] := Null; +end; + +function TContactosBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPROVINCIA]; +end; + +function TContactosBusinessProcessorRules.GetPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPROVINCIA]); +end; + +function TContactosBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosPROVINCIA]; +end; + +function TContactosBusinessProcessorRules.GetOldPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosPROVINCIA]); +end; + +procedure TContactosBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPROVINCIA] := aValue; +end; + +procedure TContactosBusinessProcessorRules.SetPROVINCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPROVINCIA] := Null; +end; + +function TContactosBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCODIGO_POSTAL]; +end; + +function TContactosBusinessProcessorRules.GetCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCODIGO_POSTAL]); +end; + +function TContactosBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosCODIGO_POSTAL]; +end; + +function TContactosBusinessProcessorRules.GetOldCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosCODIGO_POSTAL]); +end; + +procedure TContactosBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCODIGO_POSTAL] := aValue; +end; + +procedure TContactosBusinessProcessorRules.SetCODIGO_POSTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCODIGO_POSTAL] := Null; +end; + +function TContactosBusinessProcessorRules.GetTELEFONO_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosTELEFONO_1]; +end; + +function TContactosBusinessProcessorRules.GetTELEFONO_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosTELEFONO_1]); +end; + +function TContactosBusinessProcessorRules.GetOldTELEFONO_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosTELEFONO_1]; +end; + +function TContactosBusinessProcessorRules.GetOldTELEFONO_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosTELEFONO_1]); +end; + +procedure TContactosBusinessProcessorRules.SetTELEFONO_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosTELEFONO_1] := aValue; +end; + +procedure TContactosBusinessProcessorRules.SetTELEFONO_1IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosTELEFONO_1] := Null; +end; + +function TContactosBusinessProcessorRules.GetTELEFONO_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosTELEFONO_2]; +end; + +function TContactosBusinessProcessorRules.GetTELEFONO_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosTELEFONO_2]); +end; + +function TContactosBusinessProcessorRules.GetOldTELEFONO_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosTELEFONO_2]; +end; + +function TContactosBusinessProcessorRules.GetOldTELEFONO_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosTELEFONO_2]); +end; + +procedure TContactosBusinessProcessorRules.SetTELEFONO_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosTELEFONO_2] := aValue; +end; + +procedure TContactosBusinessProcessorRules.SetTELEFONO_2IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosTELEFONO_2] := Null; +end; + +function TContactosBusinessProcessorRules.GetMOVIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosMOVIL_1]; +end; + +function TContactosBusinessProcessorRules.GetMOVIL_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosMOVIL_1]); +end; + +function TContactosBusinessProcessorRules.GetOldMOVIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosMOVIL_1]; +end; + +function TContactosBusinessProcessorRules.GetOldMOVIL_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosMOVIL_1]); +end; + +procedure TContactosBusinessProcessorRules.SetMOVIL_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosMOVIL_1] := aValue; +end; + +procedure TContactosBusinessProcessorRules.SetMOVIL_1IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosMOVIL_1] := Null; +end; + +function TContactosBusinessProcessorRules.GetMOVIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosMOVIL_2]; +end; + +function TContactosBusinessProcessorRules.GetMOVIL_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosMOVIL_2]); +end; + +function TContactosBusinessProcessorRules.GetOldMOVIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosMOVIL_2]; +end; + +function TContactosBusinessProcessorRules.GetOldMOVIL_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosMOVIL_2]); +end; + +procedure TContactosBusinessProcessorRules.SetMOVIL_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosMOVIL_2] := aValue; +end; + +procedure TContactosBusinessProcessorRules.SetMOVIL_2IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosMOVIL_2] := Null; +end; + +function TContactosBusinessProcessorRules.GetFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosFAX]; +end; + +function TContactosBusinessProcessorRules.GetFAXIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosFAX]); +end; + +function TContactosBusinessProcessorRules.GetOldFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosFAX]; +end; + +function TContactosBusinessProcessorRules.GetOldFAXIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosFAX]); +end; + +procedure TContactosBusinessProcessorRules.SetFAXValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosFAX] := aValue; +end; + +procedure TContactosBusinessProcessorRules.SetFAXIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosFAX] := Null; +end; + +function TContactosBusinessProcessorRules.GetEMAIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosEMAIL_1]; +end; + +function TContactosBusinessProcessorRules.GetEMAIL_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosEMAIL_1]); +end; + +function TContactosBusinessProcessorRules.GetOldEMAIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosEMAIL_1]; +end; + +function TContactosBusinessProcessorRules.GetOldEMAIL_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosEMAIL_1]); +end; + +procedure TContactosBusinessProcessorRules.SetEMAIL_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosEMAIL_1] := aValue; +end; + +procedure TContactosBusinessProcessorRules.SetEMAIL_1IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosEMAIL_1] := Null; +end; + +function TContactosBusinessProcessorRules.GetEMAIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosEMAIL_2]; +end; + +function TContactosBusinessProcessorRules.GetEMAIL_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosEMAIL_2]); +end; + +function TContactosBusinessProcessorRules.GetOldEMAIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosEMAIL_2]; +end; + +function TContactosBusinessProcessorRules.GetOldEMAIL_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosEMAIL_2]); +end; + +procedure TContactosBusinessProcessorRules.SetEMAIL_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosEMAIL_2] := aValue; +end; + +procedure TContactosBusinessProcessorRules.SetEMAIL_2IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosEMAIL_2] := Null; +end; + +function TContactosBusinessProcessorRules.GetPAGINA_WEBValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPAGINA_WEB]; +end; + +function TContactosBusinessProcessorRules.GetPAGINA_WEBIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPAGINA_WEB]); +end; + +function TContactosBusinessProcessorRules.GetOldPAGINA_WEBValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosPAGINA_WEB]; +end; + +function TContactosBusinessProcessorRules.GetOldPAGINA_WEBIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosPAGINA_WEB]); +end; + +procedure TContactosBusinessProcessorRules.SetPAGINA_WEBValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPAGINA_WEB] := aValue; +end; + +procedure TContactosBusinessProcessorRules.SetPAGINA_WEBIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPAGINA_WEB] := Null; +end; + +function TContactosBusinessProcessorRules.GetNOTASValue: IROStrings; +begin + result := f_NOTAS; + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosNOTAS]; +end; + +function TContactosBusinessProcessorRules.GetNOTASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosNOTAS]); +end; + +function TContactosBusinessProcessorRules.GetOldNOTASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosNOTAS]; +end; + +function TContactosBusinessProcessorRules.GetOldNOTASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosNOTAS]); +end; + +procedure TContactosBusinessProcessorRules.SetNOTASIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosNOTAS] := Null; +end; + +function TContactosBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosFECHA_ALTA]; +end; + +function TContactosBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosFECHA_ALTA]); +end; + +function TContactosBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosFECHA_ALTA]; +end; + +function TContactosBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosFECHA_ALTA]); +end; + +procedure TContactosBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosFECHA_ALTA] := aValue; +end; + +procedure TContactosBusinessProcessorRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosFECHA_ALTA] := Null; +end; + +function TContactosBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosFECHA_MODIFICACION]; +end; + +function TContactosBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosFECHA_MODIFICACION]); +end; + +function TContactosBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosFECHA_MODIFICACION]; +end; + +function TContactosBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosFECHA_MODIFICACION]); +end; + +procedure TContactosBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosFECHA_MODIFICACION] := aValue; +end; + +procedure TContactosBusinessProcessorRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosFECHA_MODIFICACION] := Null; +end; + +function TContactosBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosUSUARIO]; +end; + +function TContactosBusinessProcessorRules.GetUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosUSUARIO]); +end; + +function TContactosBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosUSUARIO]; +end; + +function TContactosBusinessProcessorRules.GetOldUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosUSUARIO]); +end; + +procedure TContactosBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosUSUARIO] := aValue; +end; + +procedure TContactosBusinessProcessorRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosUSUARIO] := Null; +end; + +function TContactosBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosID_EMPRESA]; +end; + +function TContactosBusinessProcessorRules.GetID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosID_EMPRESA]); +end; + +function TContactosBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosID_EMPRESA]; +end; + +function TContactosBusinessProcessorRules.GetOldID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosID_EMPRESA]); +end; + +procedure TContactosBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosID_EMPRESA] := aValue; +end; + +procedure TContactosBusinessProcessorRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosID_EMPRESA] := Null; +end; + +function TContactosBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosREFERENCIA]; +end; + +function TContactosBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosREFERENCIA]); +end; + +function TContactosBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosREFERENCIA]; +end; + +function TContactosBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosREFERENCIA]); +end; + +procedure TContactosBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosREFERENCIA] := aValue; +end; + +procedure TContactosBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosREFERENCIA] := Null; +end; + + +{ TGruposClienteBusinessProcessorRules } +constructor TGruposClienteBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TGruposClienteBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TGruposClienteBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_GruposClienteID]; +end; + +function TGruposClienteBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_GruposClienteID]); +end; + +function TGruposClienteBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_GruposClienteID]; +end; + +function TGruposClienteBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_GruposClienteID]); +end; + +procedure TGruposClienteBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_GruposClienteID] := aValue; +end; + +procedure TGruposClienteBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_GruposClienteID] := Null; +end; + +function TGruposClienteBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_GruposClienteDESCRIPCION]; +end; + +function TGruposClienteBusinessProcessorRules.GetDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_GruposClienteDESCRIPCION]); +end; + +function TGruposClienteBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_GruposClienteDESCRIPCION]; +end; + +function TGruposClienteBusinessProcessorRules.GetOldDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_GruposClienteDESCRIPCION]); +end; + +procedure TGruposClienteBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_GruposClienteDESCRIPCION] := aValue; +end; + +procedure TGruposClienteBusinessProcessorRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_GruposClienteDESCRIPCION] := Null; +end; + + +{ TDatosBancariosBusinessProcessorRules } +constructor TDatosBancariosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TDatosBancariosBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TDatosBancariosBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosID]; +end; + +function TDatosBancariosBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosID]); +end; + +function TDatosBancariosBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DatosBancariosID]; +end; + +function TDatosBancariosBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DatosBancariosID]); +end; + +procedure TDatosBancariosBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosID] := aValue; +end; + +procedure TDatosBancariosBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosID] := Null; +end; + +function TDatosBancariosBusinessProcessorRules.GetID_CONTACTOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosID_CONTACTO]; +end; + +function TDatosBancariosBusinessProcessorRules.GetID_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosID_CONTACTO]); +end; + +function TDatosBancariosBusinessProcessorRules.GetOldID_CONTACTOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DatosBancariosID_CONTACTO]; +end; + +function TDatosBancariosBusinessProcessorRules.GetOldID_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DatosBancariosID_CONTACTO]); +end; + +procedure TDatosBancariosBusinessProcessorRules.SetID_CONTACTOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosID_CONTACTO] := aValue; +end; + +procedure TDatosBancariosBusinessProcessorRules.SetID_CONTACTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosID_CONTACTO] := Null; +end; + +function TDatosBancariosBusinessProcessorRules.GetTITULARValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosTITULAR]; +end; + +function TDatosBancariosBusinessProcessorRules.GetTITULARIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosTITULAR]); +end; + +function TDatosBancariosBusinessProcessorRules.GetOldTITULARValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DatosBancariosTITULAR]; +end; + +function TDatosBancariosBusinessProcessorRules.GetOldTITULARIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DatosBancariosTITULAR]); +end; + +procedure TDatosBancariosBusinessProcessorRules.SetTITULARValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosTITULAR] := aValue; +end; + +procedure TDatosBancariosBusinessProcessorRules.SetTITULARIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosTITULAR] := Null; +end; + +function TDatosBancariosBusinessProcessorRules.GetENTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosENTIDAD]; +end; + +function TDatosBancariosBusinessProcessorRules.GetENTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosENTIDAD]); +end; + +function TDatosBancariosBusinessProcessorRules.GetOldENTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DatosBancariosENTIDAD]; +end; + +function TDatosBancariosBusinessProcessorRules.GetOldENTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DatosBancariosENTIDAD]); +end; + +procedure TDatosBancariosBusinessProcessorRules.SetENTIDADValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosENTIDAD] := aValue; +end; + +procedure TDatosBancariosBusinessProcessorRules.SetENTIDADIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosENTIDAD] := Null; +end; + +function TDatosBancariosBusinessProcessorRules.GetSUCURSALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosSUCURSAL]; +end; + +function TDatosBancariosBusinessProcessorRules.GetSUCURSALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosSUCURSAL]); +end; + +function TDatosBancariosBusinessProcessorRules.GetOldSUCURSALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DatosBancariosSUCURSAL]; +end; + +function TDatosBancariosBusinessProcessorRules.GetOldSUCURSALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DatosBancariosSUCURSAL]); +end; + +procedure TDatosBancariosBusinessProcessorRules.SetSUCURSALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosSUCURSAL] := aValue; +end; + +procedure TDatosBancariosBusinessProcessorRules.SetSUCURSALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosSUCURSAL] := Null; +end; + +function TDatosBancariosBusinessProcessorRules.GetDCValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosDC]; +end; + +function TDatosBancariosBusinessProcessorRules.GetDCIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosDC]); +end; + +function TDatosBancariosBusinessProcessorRules.GetOldDCValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DatosBancariosDC]; +end; + +function TDatosBancariosBusinessProcessorRules.GetOldDCIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DatosBancariosDC]); +end; + +procedure TDatosBancariosBusinessProcessorRules.SetDCValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosDC] := aValue; +end; + +procedure TDatosBancariosBusinessProcessorRules.SetDCIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosDC] := Null; +end; + +function TDatosBancariosBusinessProcessorRules.GetCUENTAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosCUENTA]; +end; + +function TDatosBancariosBusinessProcessorRules.GetCUENTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosCUENTA]); +end; + +function TDatosBancariosBusinessProcessorRules.GetOldCUENTAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DatosBancariosCUENTA]; +end; + +function TDatosBancariosBusinessProcessorRules.GetOldCUENTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DatosBancariosCUENTA]); +end; + +procedure TDatosBancariosBusinessProcessorRules.SetCUENTAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosCUENTA] := aValue; +end; + +procedure TDatosBancariosBusinessProcessorRules.SetCUENTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosCUENTA] := Null; +end; + +function TDatosBancariosBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosFECHA_ALTA]; +end; + +function TDatosBancariosBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosFECHA_ALTA]); +end; + +function TDatosBancariosBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DatosBancariosFECHA_ALTA]; +end; + +function TDatosBancariosBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DatosBancariosFECHA_ALTA]); +end; + +procedure TDatosBancariosBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosFECHA_ALTA] := aValue; +end; + +procedure TDatosBancariosBusinessProcessorRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosFECHA_ALTA] := Null; +end; + +function TDatosBancariosBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosFECHA_MODIFICACION]; +end; + +function TDatosBancariosBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosFECHA_MODIFICACION]); +end; + +function TDatosBancariosBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DatosBancariosFECHA_MODIFICACION]; +end; + +function TDatosBancariosBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DatosBancariosFECHA_MODIFICACION]); +end; + +procedure TDatosBancariosBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosFECHA_MODIFICACION] := aValue; +end; + +procedure TDatosBancariosBusinessProcessorRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosFECHA_MODIFICACION] := Null; +end; + + +{ TClientesBusinessProcessorRules } +constructor TClientesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := NOTAS_OnChange; + f_NOTAS := NewROStrings(StrList,True); +end; + +destructor TClientesBusinessProcessorRules.Destroy; +begin + inherited; +end; + +procedure TClientesBusinessProcessorRules.NOTAS_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesNOTAS] := TStringList(Sender).Text; +end; + +function TClientesBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesID]; +end; + +function TClientesBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesID]); +end; + +function TClientesBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesID]; +end; + +function TClientesBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesID]); +end; + +procedure TClientesBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesID] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesID] := Null; +end; + +function TClientesBusinessProcessorRules.GetID_CATEGORIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesID_CATEGORIA]; +end; + +function TClientesBusinessProcessorRules.GetID_CATEGORIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesID_CATEGORIA]); +end; + +function TClientesBusinessProcessorRules.GetOldID_CATEGORIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesID_CATEGORIA]; +end; + +function TClientesBusinessProcessorRules.GetOldID_CATEGORIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesID_CATEGORIA]); +end; + +procedure TClientesBusinessProcessorRules.SetID_CATEGORIAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesID_CATEGORIA] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetID_CATEGORIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesID_CATEGORIA] := Null; +end; + +function TClientesBusinessProcessorRules.GetNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesNIF_CIF]; +end; + +function TClientesBusinessProcessorRules.GetNIF_CIFIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesNIF_CIF]); +end; + +function TClientesBusinessProcessorRules.GetOldNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesNIF_CIF]; +end; + +function TClientesBusinessProcessorRules.GetOldNIF_CIFIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesNIF_CIF]); +end; + +procedure TClientesBusinessProcessorRules.SetNIF_CIFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesNIF_CIF] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetNIF_CIFIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesNIF_CIF] := Null; +end; + +function TClientesBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesNOMBRE]; +end; + +function TClientesBusinessProcessorRules.GetNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesNOMBRE]); +end; + +function TClientesBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesNOMBRE]; +end; + +function TClientesBusinessProcessorRules.GetOldNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesNOMBRE]); +end; + +procedure TClientesBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesNOMBRE] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesNOMBRE] := Null; +end; + +function TClientesBusinessProcessorRules.GetPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesPERSONA_CONTACTO]; +end; + +function TClientesBusinessProcessorRules.GetPERSONA_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesPERSONA_CONTACTO]); +end; + +function TClientesBusinessProcessorRules.GetOldPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesPERSONA_CONTACTO]; +end; + +function TClientesBusinessProcessorRules.GetOldPERSONA_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesPERSONA_CONTACTO]); +end; + +procedure TClientesBusinessProcessorRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesPERSONA_CONTACTO] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetPERSONA_CONTACTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesPERSONA_CONTACTO] := Null; +end; + +function TClientesBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesCALLE]; +end; + +function TClientesBusinessProcessorRules.GetCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesCALLE]); +end; + +function TClientesBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesCALLE]; +end; + +function TClientesBusinessProcessorRules.GetOldCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesCALLE]); +end; + +procedure TClientesBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesCALLE] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetCALLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesCALLE] := Null; +end; + +function TClientesBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesPOBLACION]; +end; + +function TClientesBusinessProcessorRules.GetPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesPOBLACION]); +end; + +function TClientesBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesPOBLACION]; +end; + +function TClientesBusinessProcessorRules.GetOldPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesPOBLACION]); +end; + +procedure TClientesBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesPOBLACION] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetPOBLACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesPOBLACION] := Null; +end; + +function TClientesBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesPROVINCIA]; +end; + +function TClientesBusinessProcessorRules.GetPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesPROVINCIA]); +end; + +function TClientesBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesPROVINCIA]; +end; + +function TClientesBusinessProcessorRules.GetOldPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesPROVINCIA]); +end; + +procedure TClientesBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesPROVINCIA] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetPROVINCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesPROVINCIA] := Null; +end; + +function TClientesBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesCODIGO_POSTAL]; +end; + +function TClientesBusinessProcessorRules.GetCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesCODIGO_POSTAL]); +end; + +function TClientesBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesCODIGO_POSTAL]; +end; + +function TClientesBusinessProcessorRules.GetOldCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesCODIGO_POSTAL]); +end; + +procedure TClientesBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesCODIGO_POSTAL] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetCODIGO_POSTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesCODIGO_POSTAL] := Null; +end; + +function TClientesBusinessProcessorRules.GetTELEFONO_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesTELEFONO_1]; +end; + +function TClientesBusinessProcessorRules.GetTELEFONO_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesTELEFONO_1]); +end; + +function TClientesBusinessProcessorRules.GetOldTELEFONO_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesTELEFONO_1]; +end; + +function TClientesBusinessProcessorRules.GetOldTELEFONO_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesTELEFONO_1]); +end; + +procedure TClientesBusinessProcessorRules.SetTELEFONO_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesTELEFONO_1] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetTELEFONO_1IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesTELEFONO_1] := Null; +end; + +function TClientesBusinessProcessorRules.GetTELEFONO_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesTELEFONO_2]; +end; + +function TClientesBusinessProcessorRules.GetTELEFONO_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesTELEFONO_2]); +end; + +function TClientesBusinessProcessorRules.GetOldTELEFONO_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesTELEFONO_2]; +end; + +function TClientesBusinessProcessorRules.GetOldTELEFONO_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesTELEFONO_2]); +end; + +procedure TClientesBusinessProcessorRules.SetTELEFONO_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesTELEFONO_2] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetTELEFONO_2IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesTELEFONO_2] := Null; +end; + +function TClientesBusinessProcessorRules.GetMOVIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesMOVIL_1]; +end; + +function TClientesBusinessProcessorRules.GetMOVIL_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesMOVIL_1]); +end; + +function TClientesBusinessProcessorRules.GetOldMOVIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesMOVIL_1]; +end; + +function TClientesBusinessProcessorRules.GetOldMOVIL_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesMOVIL_1]); +end; + +procedure TClientesBusinessProcessorRules.SetMOVIL_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesMOVIL_1] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetMOVIL_1IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesMOVIL_1] := Null; +end; + +function TClientesBusinessProcessorRules.GetMOVIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesMOVIL_2]; +end; + +function TClientesBusinessProcessorRules.GetMOVIL_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesMOVIL_2]); +end; + +function TClientesBusinessProcessorRules.GetOldMOVIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesMOVIL_2]; +end; + +function TClientesBusinessProcessorRules.GetOldMOVIL_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesMOVIL_2]); +end; + +procedure TClientesBusinessProcessorRules.SetMOVIL_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesMOVIL_2] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetMOVIL_2IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesMOVIL_2] := Null; +end; + +function TClientesBusinessProcessorRules.GetFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesFAX]; +end; + +function TClientesBusinessProcessorRules.GetFAXIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesFAX]); +end; + +function TClientesBusinessProcessorRules.GetOldFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesFAX]; +end; + +function TClientesBusinessProcessorRules.GetOldFAXIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesFAX]); +end; + +procedure TClientesBusinessProcessorRules.SetFAXValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesFAX] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetFAXIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesFAX] := Null; +end; + +function TClientesBusinessProcessorRules.GetEMAIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesEMAIL_1]; +end; + +function TClientesBusinessProcessorRules.GetEMAIL_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesEMAIL_1]); +end; + +function TClientesBusinessProcessorRules.GetOldEMAIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesEMAIL_1]; +end; + +function TClientesBusinessProcessorRules.GetOldEMAIL_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesEMAIL_1]); +end; + +procedure TClientesBusinessProcessorRules.SetEMAIL_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesEMAIL_1] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetEMAIL_1IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesEMAIL_1] := Null; +end; + +function TClientesBusinessProcessorRules.GetEMAIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesEMAIL_2]; +end; + +function TClientesBusinessProcessorRules.GetEMAIL_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesEMAIL_2]); +end; + +function TClientesBusinessProcessorRules.GetOldEMAIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesEMAIL_2]; +end; + +function TClientesBusinessProcessorRules.GetOldEMAIL_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesEMAIL_2]); +end; + +procedure TClientesBusinessProcessorRules.SetEMAIL_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesEMAIL_2] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetEMAIL_2IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesEMAIL_2] := Null; +end; + +function TClientesBusinessProcessorRules.GetPAGINA_WEBValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesPAGINA_WEB]; +end; + +function TClientesBusinessProcessorRules.GetPAGINA_WEBIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesPAGINA_WEB]); +end; + +function TClientesBusinessProcessorRules.GetOldPAGINA_WEBValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesPAGINA_WEB]; +end; + +function TClientesBusinessProcessorRules.GetOldPAGINA_WEBIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesPAGINA_WEB]); +end; + +procedure TClientesBusinessProcessorRules.SetPAGINA_WEBValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesPAGINA_WEB] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetPAGINA_WEBIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesPAGINA_WEB] := Null; +end; + +function TClientesBusinessProcessorRules.GetNOTASValue: IROStrings; +begin + result := f_NOTAS; + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesNOTAS]; +end; + +function TClientesBusinessProcessorRules.GetNOTASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesNOTAS]); +end; + +function TClientesBusinessProcessorRules.GetOldNOTASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesNOTAS]; +end; + +function TClientesBusinessProcessorRules.GetOldNOTASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesNOTAS]); +end; + +procedure TClientesBusinessProcessorRules.SetNOTASIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesNOTAS] := Null; +end; + +function TClientesBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesFECHA_ALTA]; +end; + +function TClientesBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesFECHA_ALTA]); +end; + +function TClientesBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesFECHA_ALTA]; +end; + +function TClientesBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesFECHA_ALTA]); +end; + +procedure TClientesBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesFECHA_ALTA] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesFECHA_ALTA] := Null; +end; + +function TClientesBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesFECHA_MODIFICACION]; +end; + +function TClientesBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesFECHA_MODIFICACION]); +end; + +function TClientesBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesFECHA_MODIFICACION]; +end; + +function TClientesBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesFECHA_MODIFICACION]); +end; + +procedure TClientesBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesFECHA_MODIFICACION] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesFECHA_MODIFICACION] := Null; +end; + +function TClientesBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesUSUARIO]; +end; + +function TClientesBusinessProcessorRules.GetUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesUSUARIO]); +end; + +function TClientesBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesUSUARIO]; +end; + +function TClientesBusinessProcessorRules.GetOldUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesUSUARIO]); +end; + +procedure TClientesBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesUSUARIO] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesUSUARIO] := Null; +end; + +function TClientesBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesID_EMPRESA]; +end; + +function TClientesBusinessProcessorRules.GetID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesID_EMPRESA]); +end; + +function TClientesBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesID_EMPRESA]; +end; + +function TClientesBusinessProcessorRules.GetOldID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesID_EMPRESA]); +end; + +procedure TClientesBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesID_EMPRESA] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesID_EMPRESA] := Null; +end; + +function TClientesBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesREFERENCIA]; +end; + +function TClientesBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesREFERENCIA]); +end; + +function TClientesBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesREFERENCIA]; +end; + +function TClientesBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesREFERENCIA]); +end; + +procedure TClientesBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesREFERENCIA] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesREFERENCIA] := Null; +end; + +function TClientesBusinessProcessorRules.GetID_AGENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesID_AGENTE]; +end; + +function TClientesBusinessProcessorRules.GetID_AGENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesID_AGENTE]); +end; + +function TClientesBusinessProcessorRules.GetOldID_AGENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesID_AGENTE]; +end; + +function TClientesBusinessProcessorRules.GetOldID_AGENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesID_AGENTE]); +end; + +procedure TClientesBusinessProcessorRules.SetID_AGENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesID_AGENTE] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetID_AGENTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesID_AGENTE] := Null; +end; + +function TClientesBusinessProcessorRules.GetGRUPO_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesGRUPO_CLIENTE]; +end; + +function TClientesBusinessProcessorRules.GetGRUPO_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesGRUPO_CLIENTE]); +end; + +function TClientesBusinessProcessorRules.GetOldGRUPO_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesGRUPO_CLIENTE]; +end; + +function TClientesBusinessProcessorRules.GetOldGRUPO_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesGRUPO_CLIENTE]); +end; + +procedure TClientesBusinessProcessorRules.SetGRUPO_CLIENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesGRUPO_CLIENTE] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetGRUPO_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesGRUPO_CLIENTE] := Null; +end; + +function TClientesBusinessProcessorRules.GetNOMBRE_COMERCIALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesNOMBRE_COMERCIAL]; +end; + +function TClientesBusinessProcessorRules.GetNOMBRE_COMERCIALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesNOMBRE_COMERCIAL]); +end; + +function TClientesBusinessProcessorRules.GetOldNOMBRE_COMERCIALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesNOMBRE_COMERCIAL]; +end; + +function TClientesBusinessProcessorRules.GetOldNOMBRE_COMERCIALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesNOMBRE_COMERCIAL]); +end; + +procedure TClientesBusinessProcessorRules.SetNOMBRE_COMERCIALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesNOMBRE_COMERCIAL] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetNOMBRE_COMERCIALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesNOMBRE_COMERCIAL] := Null; +end; + +function TClientesBusinessProcessorRules.GetVENCIMIENTO_FACTURAS_1Value: SmallInt; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_1]; +end; + +function TClientesBusinessProcessorRules.GetVENCIMIENTO_FACTURAS_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_1]); +end; + +function TClientesBusinessProcessorRules.GetOldVENCIMIENTO_FACTURAS_1Value: SmallInt; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesVENCIMIENTO_FACTURAS_1]; +end; + +function TClientesBusinessProcessorRules.GetOldVENCIMIENTO_FACTURAS_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesVENCIMIENTO_FACTURAS_1]); +end; + +procedure TClientesBusinessProcessorRules.SetVENCIMIENTO_FACTURAS_1Value(const aValue: SmallInt); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_1] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetVENCIMIENTO_FACTURAS_1IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_1] := Null; +end; + +function TClientesBusinessProcessorRules.GetVENCIMIENTO_FACTURAS_2Value: SmallInt; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_2]; +end; + +function TClientesBusinessProcessorRules.GetVENCIMIENTO_FACTURAS_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_2]); +end; + +function TClientesBusinessProcessorRules.GetOldVENCIMIENTO_FACTURAS_2Value: SmallInt; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesVENCIMIENTO_FACTURAS_2]; +end; + +function TClientesBusinessProcessorRules.GetOldVENCIMIENTO_FACTURAS_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesVENCIMIENTO_FACTURAS_2]); +end; + +procedure TClientesBusinessProcessorRules.SetVENCIMIENTO_FACTURAS_2Value(const aValue: SmallInt); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_2] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetVENCIMIENTO_FACTURAS_2IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_2] := Null; +end; + +function TClientesBusinessProcessorRules.GetVENCIMIENTO_FACTURAS_3Value: SmallInt; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_3]; +end; + +function TClientesBusinessProcessorRules.GetVENCIMIENTO_FACTURAS_3IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_3]); +end; + +function TClientesBusinessProcessorRules.GetOldVENCIMIENTO_FACTURAS_3Value: SmallInt; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesVENCIMIENTO_FACTURAS_3]; +end; + +function TClientesBusinessProcessorRules.GetOldVENCIMIENTO_FACTURAS_3IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesVENCIMIENTO_FACTURAS_3]); +end; + +procedure TClientesBusinessProcessorRules.SetVENCIMIENTO_FACTURAS_3Value(const aValue: SmallInt); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_3] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetVENCIMIENTO_FACTURAS_3IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_3] := Null; +end; + +function TClientesBusinessProcessorRules.GetBLOQUEADOValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesBLOQUEADO]; +end; + +function TClientesBusinessProcessorRules.GetBLOQUEADOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesBLOQUEADO]); +end; + +function TClientesBusinessProcessorRules.GetOldBLOQUEADOValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesBLOQUEADO]; +end; + +function TClientesBusinessProcessorRules.GetOldBLOQUEADOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesBLOQUEADO]); +end; + +procedure TClientesBusinessProcessorRules.SetBLOQUEADOValue(const aValue: SmallInt); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesBLOQUEADO] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetBLOQUEADOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesBLOQUEADO] := Null; +end; + +function TClientesBusinessProcessorRules.GetAGENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesAGENTE]; +end; + +function TClientesBusinessProcessorRules.GetAGENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesAGENTE]); +end; + +function TClientesBusinessProcessorRules.GetOldAGENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesAGENTE]; +end; + +function TClientesBusinessProcessorRules.GetOldAGENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesAGENTE]); +end; + +procedure TClientesBusinessProcessorRules.SetAGENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesAGENTE] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetAGENTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesAGENTE] := Null; +end; + +function TClientesBusinessProcessorRules.GetRAPELValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesRAPEL]; +end; + +function TClientesBusinessProcessorRules.GetRAPELIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesRAPEL]); +end; + +function TClientesBusinessProcessorRules.GetOldRAPELValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesRAPEL]; +end; + +function TClientesBusinessProcessorRules.GetOldRAPELIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesRAPEL]); +end; + +procedure TClientesBusinessProcessorRules.SetRAPELValue(const aValue: SmallInt); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesRAPEL] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetRAPELIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesRAPEL] := Null; +end; + +function TClientesBusinessProcessorRules.GetEMAIL_ADMINISTRACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesEMAIL_ADMINISTRACION]; +end; + +function TClientesBusinessProcessorRules.GetEMAIL_ADMINISTRACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesEMAIL_ADMINISTRACION]); +end; + +function TClientesBusinessProcessorRules.GetOldEMAIL_ADMINISTRACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesEMAIL_ADMINISTRACION]; +end; + +function TClientesBusinessProcessorRules.GetOldEMAIL_ADMINISTRACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesEMAIL_ADMINISTRACION]); +end; + +procedure TClientesBusinessProcessorRules.SetEMAIL_ADMINISTRACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesEMAIL_ADMINISTRACION] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetEMAIL_ADMINISTRACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesEMAIL_ADMINISTRACION] := Null; +end; + +function TClientesBusinessProcessorRules.GetREGIMEN_IVAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesREGIMEN_IVA]; +end; + +function TClientesBusinessProcessorRules.GetREGIMEN_IVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesREGIMEN_IVA]); +end; + +function TClientesBusinessProcessorRules.GetOldREGIMEN_IVAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesREGIMEN_IVA]; +end; + +function TClientesBusinessProcessorRules.GetOldREGIMEN_IVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesREGIMEN_IVA]); +end; + +procedure TClientesBusinessProcessorRules.SetREGIMEN_IVAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesREGIMEN_IVA] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetREGIMEN_IVAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesREGIMEN_IVA] := Null; +end; + +function TClientesBusinessProcessorRules.GetMOTIVO_BLOQUEOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesMOTIVO_BLOQUEO]; +end; + +function TClientesBusinessProcessorRules.GetMOTIVO_BLOQUEOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesMOTIVO_BLOQUEO]); +end; + +function TClientesBusinessProcessorRules.GetOldMOTIVO_BLOQUEOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesMOTIVO_BLOQUEO]; +end; + +function TClientesBusinessProcessorRules.GetOldMOTIVO_BLOQUEOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesMOTIVO_BLOQUEO]); +end; + +procedure TClientesBusinessProcessorRules.SetMOTIVO_BLOQUEOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesMOTIVO_BLOQUEO] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetMOTIVO_BLOQUEOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesMOTIVO_BLOQUEO] := Null; +end; + +function TClientesBusinessProcessorRules.GetRECARGO_EQUIVALENCIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesRECARGO_EQUIVALENCIA]; +end; + +function TClientesBusinessProcessorRules.GetRECARGO_EQUIVALENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesRECARGO_EQUIVALENCIA]); +end; + +function TClientesBusinessProcessorRules.GetOldRECARGO_EQUIVALENCIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesRECARGO_EQUIVALENCIA]; +end; + +function TClientesBusinessProcessorRules.GetOldRECARGO_EQUIVALENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesRECARGO_EQUIVALENCIA]); +end; + +procedure TClientesBusinessProcessorRules.SetRECARGO_EQUIVALENCIAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesRECARGO_EQUIVALENCIA] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetRECARGO_EQUIVALENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesRECARGO_EQUIVALENCIA] := Null; +end; + +function TClientesBusinessProcessorRules.GetID_TIPO_IVAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesID_TIPO_IVA]; +end; + +function TClientesBusinessProcessorRules.GetID_TIPO_IVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesID_TIPO_IVA]); +end; + +function TClientesBusinessProcessorRules.GetOldID_TIPO_IVAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesID_TIPO_IVA]; +end; + +function TClientesBusinessProcessorRules.GetOldID_TIPO_IVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesID_TIPO_IVA]); +end; + +procedure TClientesBusinessProcessorRules.SetID_TIPO_IVAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesID_TIPO_IVA] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetID_TIPO_IVAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesID_TIPO_IVA] := Null; +end; + +function TClientesBusinessProcessorRules.GetID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesID_FORMA_PAGO]; +end; + +function TClientesBusinessProcessorRules.GetID_FORMA_PAGOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesID_FORMA_PAGO]); +end; + +function TClientesBusinessProcessorRules.GetOldID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesID_FORMA_PAGO]; +end; + +function TClientesBusinessProcessorRules.GetOldID_FORMA_PAGOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesID_FORMA_PAGO]); +end; + +procedure TClientesBusinessProcessorRules.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesID_FORMA_PAGO] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetID_FORMA_PAGOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesID_FORMA_PAGO] := Null; +end; + +function TClientesBusinessProcessorRules.GetTIENDA_WEBValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesTIENDA_WEB]; +end; + +function TClientesBusinessProcessorRules.GetTIENDA_WEBIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesTIENDA_WEB]); +end; + +function TClientesBusinessProcessorRules.GetOldTIENDA_WEBValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesTIENDA_WEB]; +end; + +function TClientesBusinessProcessorRules.GetOldTIENDA_WEBIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesTIENDA_WEB]); +end; + +procedure TClientesBusinessProcessorRules.SetTIENDA_WEBValue(const aValue: SmallInt); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesTIENDA_WEB] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetTIENDA_WEBIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesTIENDA_WEB] := Null; +end; + +function TClientesBusinessProcessorRules.GetCODIGO_ASIGNADOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesCODIGO_ASIGNADO]; +end; + +function TClientesBusinessProcessorRules.GetCODIGO_ASIGNADOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesCODIGO_ASIGNADO]); +end; + +function TClientesBusinessProcessorRules.GetOldCODIGO_ASIGNADOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesCODIGO_ASIGNADO]; +end; + +function TClientesBusinessProcessorRules.GetOldCODIGO_ASIGNADOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesCODIGO_ASIGNADO]); +end; + +procedure TClientesBusinessProcessorRules.SetCODIGO_ASIGNADOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesCODIGO_ASIGNADO] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetCODIGO_ASIGNADOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesCODIGO_ASIGNADO] := Null; +end; + +function TClientesBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDESCUENTO]; +end; + +function TClientesBusinessProcessorRules.GetDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDESCUENTO]); +end; + +function TClientesBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesDESCUENTO]; +end; + +function TClientesBusinessProcessorRules.GetOldDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesDESCUENTO]); +end; + +procedure TClientesBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDESCUENTO] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDESCUENTO] := Null; +end; + +function TClientesBusinessProcessorRules.GetFELICITACIONValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesFELICITACION]; +end; + +function TClientesBusinessProcessorRules.GetFELICITACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesFELICITACION]); +end; + +function TClientesBusinessProcessorRules.GetOldFELICITACIONValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesFELICITACION]; +end; + +function TClientesBusinessProcessorRules.GetOldFELICITACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesFELICITACION]); +end; + +procedure TClientesBusinessProcessorRules.SetFELICITACIONValue(const aValue: SmallInt); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesFELICITACION] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetFELICITACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesFELICITACION] := Null; +end; + + +{ TProveedoresBusinessProcessorRules } +constructor TProveedoresBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := NOTAS_OnChange; + f_NOTAS := NewROStrings(StrList,True); +end; + +destructor TProveedoresBusinessProcessorRules.Destroy; +begin + inherited; +end; + +procedure TProveedoresBusinessProcessorRules.NOTAS_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresNOTAS] := TStringList(Sender).Text; +end; + +function TProveedoresBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresID]; +end; + +function TProveedoresBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresID]); +end; + +function TProveedoresBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresID]; +end; + +function TProveedoresBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresID]); +end; + +procedure TProveedoresBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresID] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresID] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetID_CATEGORIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresID_CATEGORIA]; +end; + +function TProveedoresBusinessProcessorRules.GetID_CATEGORIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresID_CATEGORIA]); +end; + +function TProveedoresBusinessProcessorRules.GetOldID_CATEGORIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresID_CATEGORIA]; +end; + +function TProveedoresBusinessProcessorRules.GetOldID_CATEGORIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresID_CATEGORIA]); +end; + +procedure TProveedoresBusinessProcessorRules.SetID_CATEGORIAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresID_CATEGORIA] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetID_CATEGORIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresID_CATEGORIA] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresNIF_CIF]; +end; + +function TProveedoresBusinessProcessorRules.GetNIF_CIFIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresNIF_CIF]); +end; + +function TProveedoresBusinessProcessorRules.GetOldNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresNIF_CIF]; +end; + +function TProveedoresBusinessProcessorRules.GetOldNIF_CIFIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresNIF_CIF]); +end; + +procedure TProveedoresBusinessProcessorRules.SetNIF_CIFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresNIF_CIF] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetNIF_CIFIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresNIF_CIF] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresNOMBRE]; +end; + +function TProveedoresBusinessProcessorRules.GetNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresNOMBRE]); +end; + +function TProveedoresBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresNOMBRE]; +end; + +function TProveedoresBusinessProcessorRules.GetOldNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresNOMBRE]); +end; + +procedure TProveedoresBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresNOMBRE] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresNOMBRE] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresPERSONA_CONTACTO]; +end; + +function TProveedoresBusinessProcessorRules.GetPERSONA_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresPERSONA_CONTACTO]); +end; + +function TProveedoresBusinessProcessorRules.GetOldPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresPERSONA_CONTACTO]; +end; + +function TProveedoresBusinessProcessorRules.GetOldPERSONA_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresPERSONA_CONTACTO]); +end; + +procedure TProveedoresBusinessProcessorRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresPERSONA_CONTACTO] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetPERSONA_CONTACTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresPERSONA_CONTACTO] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresCALLE]; +end; + +function TProveedoresBusinessProcessorRules.GetCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresCALLE]); +end; + +function TProveedoresBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresCALLE]; +end; + +function TProveedoresBusinessProcessorRules.GetOldCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresCALLE]); +end; + +procedure TProveedoresBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresCALLE] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetCALLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresCALLE] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresPOBLACION]; +end; + +function TProveedoresBusinessProcessorRules.GetPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresPOBLACION]); +end; + +function TProveedoresBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresPOBLACION]; +end; + +function TProveedoresBusinessProcessorRules.GetOldPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresPOBLACION]); +end; + +procedure TProveedoresBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresPOBLACION] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetPOBLACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresPOBLACION] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresPROVINCIA]; +end; + +function TProveedoresBusinessProcessorRules.GetPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresPROVINCIA]); +end; + +function TProveedoresBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresPROVINCIA]; +end; + +function TProveedoresBusinessProcessorRules.GetOldPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresPROVINCIA]); +end; + +procedure TProveedoresBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresPROVINCIA] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetPROVINCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresPROVINCIA] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresCODIGO_POSTAL]; +end; + +function TProveedoresBusinessProcessorRules.GetCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresCODIGO_POSTAL]); +end; + +function TProveedoresBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresCODIGO_POSTAL]; +end; + +function TProveedoresBusinessProcessorRules.GetOldCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresCODIGO_POSTAL]); +end; + +procedure TProveedoresBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresCODIGO_POSTAL] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetCODIGO_POSTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresCODIGO_POSTAL] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetTELEFONO_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresTELEFONO_1]; +end; + +function TProveedoresBusinessProcessorRules.GetTELEFONO_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresTELEFONO_1]); +end; + +function TProveedoresBusinessProcessorRules.GetOldTELEFONO_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresTELEFONO_1]; +end; + +function TProveedoresBusinessProcessorRules.GetOldTELEFONO_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresTELEFONO_1]); +end; + +procedure TProveedoresBusinessProcessorRules.SetTELEFONO_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresTELEFONO_1] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetTELEFONO_1IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresTELEFONO_1] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetTELEFONO_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresTELEFONO_2]; +end; + +function TProveedoresBusinessProcessorRules.GetTELEFONO_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresTELEFONO_2]); +end; + +function TProveedoresBusinessProcessorRules.GetOldTELEFONO_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresTELEFONO_2]; +end; + +function TProveedoresBusinessProcessorRules.GetOldTELEFONO_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresTELEFONO_2]); +end; + +procedure TProveedoresBusinessProcessorRules.SetTELEFONO_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresTELEFONO_2] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetTELEFONO_2IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresTELEFONO_2] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetMOVIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresMOVIL_1]; +end; + +function TProveedoresBusinessProcessorRules.GetMOVIL_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresMOVIL_1]); +end; + +function TProveedoresBusinessProcessorRules.GetOldMOVIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresMOVIL_1]; +end; + +function TProveedoresBusinessProcessorRules.GetOldMOVIL_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresMOVIL_1]); +end; + +procedure TProveedoresBusinessProcessorRules.SetMOVIL_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresMOVIL_1] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetMOVIL_1IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresMOVIL_1] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetMOVIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresMOVIL_2]; +end; + +function TProveedoresBusinessProcessorRules.GetMOVIL_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresMOVIL_2]); +end; + +function TProveedoresBusinessProcessorRules.GetOldMOVIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresMOVIL_2]; +end; + +function TProveedoresBusinessProcessorRules.GetOldMOVIL_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresMOVIL_2]); +end; + +procedure TProveedoresBusinessProcessorRules.SetMOVIL_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresMOVIL_2] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetMOVIL_2IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresMOVIL_2] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresFAX]; +end; + +function TProveedoresBusinessProcessorRules.GetFAXIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresFAX]); +end; + +function TProveedoresBusinessProcessorRules.GetOldFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresFAX]; +end; + +function TProveedoresBusinessProcessorRules.GetOldFAXIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresFAX]); +end; + +procedure TProveedoresBusinessProcessorRules.SetFAXValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresFAX] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetFAXIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresFAX] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetEMAIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresEMAIL_1]; +end; + +function TProveedoresBusinessProcessorRules.GetEMAIL_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresEMAIL_1]); +end; + +function TProveedoresBusinessProcessorRules.GetOldEMAIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresEMAIL_1]; +end; + +function TProveedoresBusinessProcessorRules.GetOldEMAIL_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresEMAIL_1]); +end; + +procedure TProveedoresBusinessProcessorRules.SetEMAIL_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresEMAIL_1] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetEMAIL_1IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresEMAIL_1] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetEMAIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresEMAIL_2]; +end; + +function TProveedoresBusinessProcessorRules.GetEMAIL_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresEMAIL_2]); +end; + +function TProveedoresBusinessProcessorRules.GetOldEMAIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresEMAIL_2]; +end; + +function TProveedoresBusinessProcessorRules.GetOldEMAIL_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresEMAIL_2]); +end; + +procedure TProveedoresBusinessProcessorRules.SetEMAIL_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresEMAIL_2] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetEMAIL_2IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresEMAIL_2] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetPAGINA_WEBValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresPAGINA_WEB]; +end; + +function TProveedoresBusinessProcessorRules.GetPAGINA_WEBIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresPAGINA_WEB]); +end; + +function TProveedoresBusinessProcessorRules.GetOldPAGINA_WEBValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresPAGINA_WEB]; +end; + +function TProveedoresBusinessProcessorRules.GetOldPAGINA_WEBIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresPAGINA_WEB]); +end; + +procedure TProveedoresBusinessProcessorRules.SetPAGINA_WEBValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresPAGINA_WEB] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetPAGINA_WEBIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresPAGINA_WEB] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetNOTASValue: IROStrings; +begin + result := f_NOTAS; + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresNOTAS]; +end; + +function TProveedoresBusinessProcessorRules.GetNOTASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresNOTAS]); +end; + +function TProveedoresBusinessProcessorRules.GetOldNOTASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresNOTAS]; +end; + +function TProveedoresBusinessProcessorRules.GetOldNOTASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresNOTAS]); +end; + +procedure TProveedoresBusinessProcessorRules.SetNOTASIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresNOTAS] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresFECHA_ALTA]; +end; + +function TProveedoresBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresFECHA_ALTA]); +end; + +function TProveedoresBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresFECHA_ALTA]; +end; + +function TProveedoresBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresFECHA_ALTA]); +end; + +procedure TProveedoresBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresFECHA_ALTA] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresFECHA_ALTA] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresFECHA_MODIFICACION]; +end; + +function TProveedoresBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresFECHA_MODIFICACION]); +end; + +function TProveedoresBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresFECHA_MODIFICACION]; +end; + +function TProveedoresBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresFECHA_MODIFICACION]); +end; + +procedure TProveedoresBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresFECHA_MODIFICACION] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresFECHA_MODIFICACION] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresUSUARIO]; +end; + +function TProveedoresBusinessProcessorRules.GetUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresUSUARIO]); +end; + +function TProveedoresBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresUSUARIO]; +end; + +function TProveedoresBusinessProcessorRules.GetOldUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresUSUARIO]); +end; + +procedure TProveedoresBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresUSUARIO] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresUSUARIO] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresID_EMPRESA]; +end; + +function TProveedoresBusinessProcessorRules.GetID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresID_EMPRESA]); +end; + +function TProveedoresBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresID_EMPRESA]; +end; + +function TProveedoresBusinessProcessorRules.GetOldID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresID_EMPRESA]); +end; + +procedure TProveedoresBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresID_EMPRESA] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresID_EMPRESA] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresREFERENCIA]; +end; + +function TProveedoresBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresREFERENCIA]); +end; + +function TProveedoresBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresREFERENCIA]; +end; + +function TProveedoresBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresREFERENCIA]); +end; + +procedure TProveedoresBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresREFERENCIA] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresREFERENCIA] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresDESCUENTO]; +end; + +function TProveedoresBusinessProcessorRules.GetDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresDESCUENTO]); +end; + +function TProveedoresBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresDESCUENTO]; +end; + +function TProveedoresBusinessProcessorRules.GetOldDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresDESCUENTO]); +end; + +procedure TProveedoresBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresDESCUENTO] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresDESCUENTO] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetDESCRIPCION_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresDESCRIPCION_PROVEEDOR]; +end; + +function TProveedoresBusinessProcessorRules.GetDESCRIPCION_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresDESCRIPCION_PROVEEDOR]); +end; + +function TProveedoresBusinessProcessorRules.GetOldDESCRIPCION_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresDESCRIPCION_PROVEEDOR]; +end; + +function TProveedoresBusinessProcessorRules.GetOldDESCRIPCION_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresDESCRIPCION_PROVEEDOR]); +end; + +procedure TProveedoresBusinessProcessorRules.SetDESCRIPCION_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresDESCRIPCION_PROVEEDOR] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetDESCRIPCION_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresDESCRIPCION_PROVEEDOR] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetCODIGO_ASIGNADOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresCODIGO_ASIGNADO]; +end; + +function TProveedoresBusinessProcessorRules.GetCODIGO_ASIGNADOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresCODIGO_ASIGNADO]); +end; + +function TProveedoresBusinessProcessorRules.GetOldCODIGO_ASIGNADOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresCODIGO_ASIGNADO]; +end; + +function TProveedoresBusinessProcessorRules.GetOldCODIGO_ASIGNADOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresCODIGO_ASIGNADO]); +end; + +procedure TProveedoresBusinessProcessorRules.SetCODIGO_ASIGNADOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresCODIGO_ASIGNADO] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetCODIGO_ASIGNADOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresCODIGO_ASIGNADO] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetGRUPO_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresGRUPO_PROVEEDOR]; +end; + +function TProveedoresBusinessProcessorRules.GetGRUPO_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresGRUPO_PROVEEDOR]); +end; + +function TProveedoresBusinessProcessorRules.GetOldGRUPO_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresGRUPO_PROVEEDOR]; +end; + +function TProveedoresBusinessProcessorRules.GetOldGRUPO_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresGRUPO_PROVEEDOR]); +end; + +procedure TProveedoresBusinessProcessorRules.SetGRUPO_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresGRUPO_PROVEEDOR] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetGRUPO_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresGRUPO_PROVEEDOR] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetREGIMEN_IVAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresREGIMEN_IVA]; +end; + +function TProveedoresBusinessProcessorRules.GetREGIMEN_IVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresREGIMEN_IVA]); +end; + +function TProveedoresBusinessProcessorRules.GetOldREGIMEN_IVAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresREGIMEN_IVA]; +end; + +function TProveedoresBusinessProcessorRules.GetOldREGIMEN_IVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresREGIMEN_IVA]); +end; + +procedure TProveedoresBusinessProcessorRules.SetREGIMEN_IVAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresREGIMEN_IVA] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetREGIMEN_IVAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresREGIMEN_IVA] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetID_TIPO_IVAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresID_TIPO_IVA]; +end; + +function TProveedoresBusinessProcessorRules.GetID_TIPO_IVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresID_TIPO_IVA]); +end; + +function TProveedoresBusinessProcessorRules.GetOldID_TIPO_IVAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresID_TIPO_IVA]; +end; + +function TProveedoresBusinessProcessorRules.GetOldID_TIPO_IVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresID_TIPO_IVA]); +end; + +procedure TProveedoresBusinessProcessorRules.SetID_TIPO_IVAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresID_TIPO_IVA] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetID_TIPO_IVAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresID_TIPO_IVA] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresID_FORMA_PAGO]; +end; + +function TProveedoresBusinessProcessorRules.GetID_FORMA_PAGOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresID_FORMA_PAGO]); +end; + +function TProveedoresBusinessProcessorRules.GetOldID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresID_FORMA_PAGO]; +end; + +function TProveedoresBusinessProcessorRules.GetOldID_FORMA_PAGOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresID_FORMA_PAGO]); +end; + +procedure TProveedoresBusinessProcessorRules.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresID_FORMA_PAGO] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetID_FORMA_PAGOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresID_FORMA_PAGO] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetTIENDA_WEBValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresTIENDA_WEB]; +end; + +function TProveedoresBusinessProcessorRules.GetTIENDA_WEBIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresTIENDA_WEB]); +end; + +function TProveedoresBusinessProcessorRules.GetOldTIENDA_WEBValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresTIENDA_WEB]; +end; + +function TProveedoresBusinessProcessorRules.GetOldTIENDA_WEBIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresTIENDA_WEB]); +end; + +procedure TProveedoresBusinessProcessorRules.SetTIENDA_WEBValue(const aValue: SmallInt); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresTIENDA_WEB] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetTIENDA_WEBIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresTIENDA_WEB] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetHOMOLOGADOValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresHOMOLOGADO]; +end; + +function TProveedoresBusinessProcessorRules.GetHOMOLOGADOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresHOMOLOGADO]); +end; + +function TProveedoresBusinessProcessorRules.GetOldHOMOLOGADOValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresHOMOLOGADO]; +end; + +function TProveedoresBusinessProcessorRules.GetOldHOMOLOGADOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresHOMOLOGADO]); +end; + +procedure TProveedoresBusinessProcessorRules.SetHOMOLOGADOValue(const aValue: SmallInt); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresHOMOLOGADO] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetHOMOLOGADOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresHOMOLOGADO] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetCERTIFICACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresCERTIFICACION]; +end; + +function TProveedoresBusinessProcessorRules.GetCERTIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresCERTIFICACION]); +end; + +function TProveedoresBusinessProcessorRules.GetOldCERTIFICACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresCERTIFICACION]; +end; + +function TProveedoresBusinessProcessorRules.GetOldCERTIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresCERTIFICACION]); +end; + +procedure TProveedoresBusinessProcessorRules.SetCERTIFICACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresCERTIFICACION] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetCERTIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresCERTIFICACION] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetSUBCONTRATAValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresSUBCONTRATA]; +end; + +function TProveedoresBusinessProcessorRules.GetSUBCONTRATAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresSUBCONTRATA]); +end; + +function TProveedoresBusinessProcessorRules.GetOldSUBCONTRATAValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresSUBCONTRATA]; +end; + +function TProveedoresBusinessProcessorRules.GetOldSUBCONTRATAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresSUBCONTRATA]); +end; + +procedure TProveedoresBusinessProcessorRules.SetSUBCONTRATAValue(const aValue: SmallInt); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresSUBCONTRATA] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetSUBCONTRATAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresSUBCONTRATA] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetEMAIL_ADMINISTRACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresEMAIL_ADMINISTRACION]; +end; + +function TProveedoresBusinessProcessorRules.GetEMAIL_ADMINISTRACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresEMAIL_ADMINISTRACION]); +end; + +function TProveedoresBusinessProcessorRules.GetOldEMAIL_ADMINISTRACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresEMAIL_ADMINISTRACION]; +end; + +function TProveedoresBusinessProcessorRules.GetOldEMAIL_ADMINISTRACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresEMAIL_ADMINISTRACION]); +end; + +procedure TProveedoresBusinessProcessorRules.SetEMAIL_ADMINISTRACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresEMAIL_ADMINISTRACION] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetEMAIL_ADMINISTRACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresEMAIL_ADMINISTRACION] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetVENCIMIENTO_FACTURAS_1Value: SmallInt; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_1]; +end; + +function TProveedoresBusinessProcessorRules.GetVENCIMIENTO_FACTURAS_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_1]); +end; + +function TProveedoresBusinessProcessorRules.GetOldVENCIMIENTO_FACTURAS_1Value: SmallInt; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_1]; +end; + +function TProveedoresBusinessProcessorRules.GetOldVENCIMIENTO_FACTURAS_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_1]); +end; + +procedure TProveedoresBusinessProcessorRules.SetVENCIMIENTO_FACTURAS_1Value(const aValue: SmallInt); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_1] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetVENCIMIENTO_FACTURAS_1IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_1] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetVENCIMIENTO_FACTURAS_2Value: SmallInt; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_2]; +end; + +function TProveedoresBusinessProcessorRules.GetVENCIMIENTO_FACTURAS_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_2]); +end; + +function TProveedoresBusinessProcessorRules.GetOldVENCIMIENTO_FACTURAS_2Value: SmallInt; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_2]; +end; + +function TProveedoresBusinessProcessorRules.GetOldVENCIMIENTO_FACTURAS_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_2]); +end; + +procedure TProveedoresBusinessProcessorRules.SetVENCIMIENTO_FACTURAS_2Value(const aValue: SmallInt); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_2] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetVENCIMIENTO_FACTURAS_2IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_2] := Null; +end; + +function TProveedoresBusinessProcessorRules.GetVENCIMIENTO_FACTURAS_3Value: SmallInt; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_3]; +end; + +function TProveedoresBusinessProcessorRules.GetVENCIMIENTO_FACTURAS_3IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_3]); +end; + +function TProveedoresBusinessProcessorRules.GetOldVENCIMIENTO_FACTURAS_3Value: SmallInt; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_3]; +end; + +function TProveedoresBusinessProcessorRules.GetOldVENCIMIENTO_FACTURAS_3IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_3]); +end; + +procedure TProveedoresBusinessProcessorRules.SetVENCIMIENTO_FACTURAS_3Value(const aValue: SmallInt); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_3] := aValue; +end; + +procedure TProveedoresBusinessProcessorRules.SetVENCIMIENTO_FACTURAS_3IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_3] := Null; +end; + + +{ TEmpleadosBusinessProcessorRules } +constructor TEmpleadosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := NOTAS_OnChange; + f_NOTAS := NewROStrings(StrList,True); + + StrList := TStringList.Create; + StrList.OnChange := FORMACION_BASE_OnChange; + f_FORMACION_BASE := NewROStrings(StrList,True); + + StrList := TStringList.Create; + StrList.OnChange := FORMACION_COMPLE_OnChange; + f_FORMACION_COMPLE := NewROStrings(StrList,True); + + StrList := TStringList.Create; + StrList.OnChange := FORMACION_RECIBIDA_OnChange; + f_FORMACION_RECIBIDA := NewROStrings(StrList,True); + + StrList := TStringList.Create; + StrList.OnChange := EXPERIENCIA_OnChange; + f_EXPERIENCIA := NewROStrings(StrList,True); +end; + +destructor TEmpleadosBusinessProcessorRules.Destroy; +begin + inherited; +end; + +procedure TEmpleadosBusinessProcessorRules.NOTAS_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosNOTAS] := TStringList(Sender).Text; +end; + +procedure TEmpleadosBusinessProcessorRules.FORMACION_BASE_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFORMACION_BASE] := TStringList(Sender).Text; +end; + +procedure TEmpleadosBusinessProcessorRules.FORMACION_COMPLE_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFORMACION_COMPLE] := TStringList(Sender).Text; +end; + +procedure TEmpleadosBusinessProcessorRules.FORMACION_RECIBIDA_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFORMACION_RECIBIDA] := TStringList(Sender).Text; +end; + +procedure TEmpleadosBusinessProcessorRules.EXPERIENCIA_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosEXPERIENCIA] := TStringList(Sender).Text; +end; + +function TEmpleadosBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosID]; +end; + +function TEmpleadosBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosID]); +end; + +function TEmpleadosBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosID]; +end; + +function TEmpleadosBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosID]); +end; + +procedure TEmpleadosBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosID] := aValue; +end; + +procedure TEmpleadosBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosID] := Null; +end; + +function TEmpleadosBusinessProcessorRules.GetID_CATEGORIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosID_CATEGORIA]; +end; + +function TEmpleadosBusinessProcessorRules.GetID_CATEGORIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosID_CATEGORIA]); +end; + +function TEmpleadosBusinessProcessorRules.GetOldID_CATEGORIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosID_CATEGORIA]; +end; + +function TEmpleadosBusinessProcessorRules.GetOldID_CATEGORIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosID_CATEGORIA]); +end; + +procedure TEmpleadosBusinessProcessorRules.SetID_CATEGORIAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosID_CATEGORIA] := aValue; +end; + +procedure TEmpleadosBusinessProcessorRules.SetID_CATEGORIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosID_CATEGORIA] := Null; +end; + +function TEmpleadosBusinessProcessorRules.GetNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosNIF_CIF]; +end; + +function TEmpleadosBusinessProcessorRules.GetNIF_CIFIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosNIF_CIF]); +end; + +function TEmpleadosBusinessProcessorRules.GetOldNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosNIF_CIF]; +end; + +function TEmpleadosBusinessProcessorRules.GetOldNIF_CIFIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosNIF_CIF]); +end; + +procedure TEmpleadosBusinessProcessorRules.SetNIF_CIFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosNIF_CIF] := aValue; +end; + +procedure TEmpleadosBusinessProcessorRules.SetNIF_CIFIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosNIF_CIF] := Null; +end; + +function TEmpleadosBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosNOMBRE]; +end; + +function TEmpleadosBusinessProcessorRules.GetNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosNOMBRE]); +end; + +function TEmpleadosBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosNOMBRE]; +end; + +function TEmpleadosBusinessProcessorRules.GetOldNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosNOMBRE]); +end; + +procedure TEmpleadosBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosNOMBRE] := aValue; +end; + +procedure TEmpleadosBusinessProcessorRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosNOMBRE] := Null; +end; + +function TEmpleadosBusinessProcessorRules.GetPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosPERSONA_CONTACTO]; +end; + +function TEmpleadosBusinessProcessorRules.GetPERSONA_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosPERSONA_CONTACTO]); +end; + +function TEmpleadosBusinessProcessorRules.GetOldPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosPERSONA_CONTACTO]; +end; + +function TEmpleadosBusinessProcessorRules.GetOldPERSONA_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosPERSONA_CONTACTO]); +end; + +procedure TEmpleadosBusinessProcessorRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosPERSONA_CONTACTO] := aValue; +end; + +procedure TEmpleadosBusinessProcessorRules.SetPERSONA_CONTACTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosPERSONA_CONTACTO] := Null; +end; + +function TEmpleadosBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosCALLE]; +end; + +function TEmpleadosBusinessProcessorRules.GetCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosCALLE]); +end; + +function TEmpleadosBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosCALLE]; +end; + +function TEmpleadosBusinessProcessorRules.GetOldCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosCALLE]); +end; + +procedure TEmpleadosBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosCALLE] := aValue; +end; + +procedure TEmpleadosBusinessProcessorRules.SetCALLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosCALLE] := Null; +end; + +function TEmpleadosBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosPOBLACION]; +end; + +function TEmpleadosBusinessProcessorRules.GetPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosPOBLACION]); +end; + +function TEmpleadosBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosPOBLACION]; +end; + +function TEmpleadosBusinessProcessorRules.GetOldPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosPOBLACION]); +end; + +procedure TEmpleadosBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosPOBLACION] := aValue; +end; + +procedure TEmpleadosBusinessProcessorRules.SetPOBLACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosPOBLACION] := Null; +end; + +function TEmpleadosBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosPROVINCIA]; +end; + +function TEmpleadosBusinessProcessorRules.GetPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosPROVINCIA]); +end; + +function TEmpleadosBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosPROVINCIA]; +end; + +function TEmpleadosBusinessProcessorRules.GetOldPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosPROVINCIA]); +end; + +procedure TEmpleadosBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosPROVINCIA] := aValue; +end; + +procedure TEmpleadosBusinessProcessorRules.SetPROVINCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosPROVINCIA] := Null; +end; + +function TEmpleadosBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosCODIGO_POSTAL]; +end; + +function TEmpleadosBusinessProcessorRules.GetCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosCODIGO_POSTAL]); +end; + +function TEmpleadosBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosCODIGO_POSTAL]; +end; + +function TEmpleadosBusinessProcessorRules.GetOldCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosCODIGO_POSTAL]); +end; + +procedure TEmpleadosBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosCODIGO_POSTAL] := aValue; +end; + +procedure TEmpleadosBusinessProcessorRules.SetCODIGO_POSTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosCODIGO_POSTAL] := Null; +end; + +function TEmpleadosBusinessProcessorRules.GetTELEFONO_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosTELEFONO_1]; +end; + +function TEmpleadosBusinessProcessorRules.GetTELEFONO_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosTELEFONO_1]); +end; + +function TEmpleadosBusinessProcessorRules.GetOldTELEFONO_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosTELEFONO_1]; +end; + +function TEmpleadosBusinessProcessorRules.GetOldTELEFONO_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosTELEFONO_1]); +end; + +procedure TEmpleadosBusinessProcessorRules.SetTELEFONO_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosTELEFONO_1] := aValue; +end; + +procedure TEmpleadosBusinessProcessorRules.SetTELEFONO_1IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosTELEFONO_1] := Null; +end; + +function TEmpleadosBusinessProcessorRules.GetTELEFONO_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosTELEFONO_2]; +end; + +function TEmpleadosBusinessProcessorRules.GetTELEFONO_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosTELEFONO_2]); +end; + +function TEmpleadosBusinessProcessorRules.GetOldTELEFONO_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosTELEFONO_2]; +end; + +function TEmpleadosBusinessProcessorRules.GetOldTELEFONO_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosTELEFONO_2]); +end; + +procedure TEmpleadosBusinessProcessorRules.SetTELEFONO_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosTELEFONO_2] := aValue; +end; + +procedure TEmpleadosBusinessProcessorRules.SetTELEFONO_2IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosTELEFONO_2] := Null; +end; + +function TEmpleadosBusinessProcessorRules.GetMOVIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosMOVIL_1]; +end; + +function TEmpleadosBusinessProcessorRules.GetMOVIL_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosMOVIL_1]); +end; + +function TEmpleadosBusinessProcessorRules.GetOldMOVIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosMOVIL_1]; +end; + +function TEmpleadosBusinessProcessorRules.GetOldMOVIL_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosMOVIL_1]); +end; + +procedure TEmpleadosBusinessProcessorRules.SetMOVIL_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosMOVIL_1] := aValue; +end; + +procedure TEmpleadosBusinessProcessorRules.SetMOVIL_1IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosMOVIL_1] := Null; +end; + +function TEmpleadosBusinessProcessorRules.GetMOVIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosMOVIL_2]; +end; + +function TEmpleadosBusinessProcessorRules.GetMOVIL_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosMOVIL_2]); +end; + +function TEmpleadosBusinessProcessorRules.GetOldMOVIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosMOVIL_2]; +end; + +function TEmpleadosBusinessProcessorRules.GetOldMOVIL_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosMOVIL_2]); +end; + +procedure TEmpleadosBusinessProcessorRules.SetMOVIL_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosMOVIL_2] := aValue; +end; + +procedure TEmpleadosBusinessProcessorRules.SetMOVIL_2IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosMOVIL_2] := Null; +end; + +function TEmpleadosBusinessProcessorRules.GetFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFAX]; +end; + +function TEmpleadosBusinessProcessorRules.GetFAXIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFAX]); +end; + +function TEmpleadosBusinessProcessorRules.GetOldFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosFAX]; +end; + +function TEmpleadosBusinessProcessorRules.GetOldFAXIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosFAX]); +end; + +procedure TEmpleadosBusinessProcessorRules.SetFAXValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFAX] := aValue; +end; + +procedure TEmpleadosBusinessProcessorRules.SetFAXIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFAX] := Null; +end; + +function TEmpleadosBusinessProcessorRules.GetEMAIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosEMAIL_1]; +end; + +function TEmpleadosBusinessProcessorRules.GetEMAIL_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosEMAIL_1]); +end; + +function TEmpleadosBusinessProcessorRules.GetOldEMAIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosEMAIL_1]; +end; + +function TEmpleadosBusinessProcessorRules.GetOldEMAIL_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosEMAIL_1]); +end; + +procedure TEmpleadosBusinessProcessorRules.SetEMAIL_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosEMAIL_1] := aValue; +end; + +procedure TEmpleadosBusinessProcessorRules.SetEMAIL_1IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosEMAIL_1] := Null; +end; + +function TEmpleadosBusinessProcessorRules.GetEMAIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosEMAIL_2]; +end; + +function TEmpleadosBusinessProcessorRules.GetEMAIL_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosEMAIL_2]); +end; + +function TEmpleadosBusinessProcessorRules.GetOldEMAIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosEMAIL_2]; +end; + +function TEmpleadosBusinessProcessorRules.GetOldEMAIL_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosEMAIL_2]); +end; + +procedure TEmpleadosBusinessProcessorRules.SetEMAIL_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosEMAIL_2] := aValue; +end; + +procedure TEmpleadosBusinessProcessorRules.SetEMAIL_2IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosEMAIL_2] := Null; +end; + +function TEmpleadosBusinessProcessorRules.GetPAGINA_WEBValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosPAGINA_WEB]; +end; + +function TEmpleadosBusinessProcessorRules.GetPAGINA_WEBIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosPAGINA_WEB]); +end; + +function TEmpleadosBusinessProcessorRules.GetOldPAGINA_WEBValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosPAGINA_WEB]; +end; + +function TEmpleadosBusinessProcessorRules.GetOldPAGINA_WEBIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosPAGINA_WEB]); +end; + +procedure TEmpleadosBusinessProcessorRules.SetPAGINA_WEBValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosPAGINA_WEB] := aValue; +end; + +procedure TEmpleadosBusinessProcessorRules.SetPAGINA_WEBIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosPAGINA_WEB] := Null; +end; + +function TEmpleadosBusinessProcessorRules.GetNOTASValue: IROStrings; +begin + result := f_NOTAS; + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosNOTAS]; +end; + +function TEmpleadosBusinessProcessorRules.GetNOTASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosNOTAS]); +end; + +function TEmpleadosBusinessProcessorRules.GetOldNOTASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosNOTAS]; +end; + +function TEmpleadosBusinessProcessorRules.GetOldNOTASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosNOTAS]); +end; + +procedure TEmpleadosBusinessProcessorRules.SetNOTASIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosNOTAS] := Null; +end; + +function TEmpleadosBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFECHA_ALTA]; +end; + +function TEmpleadosBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFECHA_ALTA]); +end; + +function TEmpleadosBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosFECHA_ALTA]; +end; + +function TEmpleadosBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosFECHA_ALTA]); +end; + +procedure TEmpleadosBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFECHA_ALTA] := aValue; +end; + +procedure TEmpleadosBusinessProcessorRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFECHA_ALTA] := Null; +end; + +function TEmpleadosBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFECHA_MODIFICACION]; +end; + +function TEmpleadosBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFECHA_MODIFICACION]); +end; + +function TEmpleadosBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosFECHA_MODIFICACION]; +end; + +function TEmpleadosBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosFECHA_MODIFICACION]); +end; + +procedure TEmpleadosBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFECHA_MODIFICACION] := aValue; +end; + +procedure TEmpleadosBusinessProcessorRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFECHA_MODIFICACION] := Null; +end; + +function TEmpleadosBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosUSUARIO]; +end; + +function TEmpleadosBusinessProcessorRules.GetUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosUSUARIO]); +end; + +function TEmpleadosBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosUSUARIO]; +end; + +function TEmpleadosBusinessProcessorRules.GetOldUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosUSUARIO]); +end; + +procedure TEmpleadosBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosUSUARIO] := aValue; +end; + +procedure TEmpleadosBusinessProcessorRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosUSUARIO] := Null; +end; + +function TEmpleadosBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosID_EMPRESA]; +end; + +function TEmpleadosBusinessProcessorRules.GetID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosID_EMPRESA]); +end; + +function TEmpleadosBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosID_EMPRESA]; +end; + +function TEmpleadosBusinessProcessorRules.GetOldID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosID_EMPRESA]); +end; + +procedure TEmpleadosBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosID_EMPRESA] := aValue; +end; + +procedure TEmpleadosBusinessProcessorRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosID_EMPRESA] := Null; +end; + +function TEmpleadosBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosREFERENCIA]; +end; + +function TEmpleadosBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosREFERENCIA]); +end; + +function TEmpleadosBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosREFERENCIA]; +end; + +function TEmpleadosBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosREFERENCIA]); +end; + +procedure TEmpleadosBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosREFERENCIA] := aValue; +end; + +procedure TEmpleadosBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosREFERENCIA] := Null; +end; + +function TEmpleadosBusinessProcessorRules.GetFECHA_NACIMIENTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFECHA_NACIMIENTO]; +end; + +function TEmpleadosBusinessProcessorRules.GetFECHA_NACIMIENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFECHA_NACIMIENTO]); +end; + +function TEmpleadosBusinessProcessorRules.GetOldFECHA_NACIMIENTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosFECHA_NACIMIENTO]; +end; + +function TEmpleadosBusinessProcessorRules.GetOldFECHA_NACIMIENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosFECHA_NACIMIENTO]); +end; + +procedure TEmpleadosBusinessProcessorRules.SetFECHA_NACIMIENTOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFECHA_NACIMIENTO] := aValue; +end; + +procedure TEmpleadosBusinessProcessorRules.SetFECHA_NACIMIENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFECHA_NACIMIENTO] := Null; +end; + +function TEmpleadosBusinessProcessorRules.GetCATEGORIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosCATEGORIA]; +end; + +function TEmpleadosBusinessProcessorRules.GetCATEGORIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosCATEGORIA]); +end; + +function TEmpleadosBusinessProcessorRules.GetOldCATEGORIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosCATEGORIA]; +end; + +function TEmpleadosBusinessProcessorRules.GetOldCATEGORIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosCATEGORIA]); +end; + +procedure TEmpleadosBusinessProcessorRules.SetCATEGORIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosCATEGORIA] := aValue; +end; + +procedure TEmpleadosBusinessProcessorRules.SetCATEGORIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosCATEGORIA] := Null; +end; + +function TEmpleadosBusinessProcessorRules.GetFECHA_ALTA_EMPRESAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFECHA_ALTA_EMPRESA]; +end; + +function TEmpleadosBusinessProcessorRules.GetFECHA_ALTA_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFECHA_ALTA_EMPRESA]); +end; + +function TEmpleadosBusinessProcessorRules.GetOldFECHA_ALTA_EMPRESAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosFECHA_ALTA_EMPRESA]; +end; + +function TEmpleadosBusinessProcessorRules.GetOldFECHA_ALTA_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosFECHA_ALTA_EMPRESA]); +end; + +procedure TEmpleadosBusinessProcessorRules.SetFECHA_ALTA_EMPRESAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFECHA_ALTA_EMPRESA] := aValue; +end; + +procedure TEmpleadosBusinessProcessorRules.SetFECHA_ALTA_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFECHA_ALTA_EMPRESA] := Null; +end; + +function TEmpleadosBusinessProcessorRules.GetFORMACION_BASEValue: IROStrings; +begin + result := f_FORMACION_BASE; + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFORMACION_BASE]; +end; + +function TEmpleadosBusinessProcessorRules.GetFORMACION_BASEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFORMACION_BASE]); +end; + +function TEmpleadosBusinessProcessorRules.GetOldFORMACION_BASEValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosFORMACION_BASE]; +end; + +function TEmpleadosBusinessProcessorRules.GetOldFORMACION_BASEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosFORMACION_BASE]); +end; + +procedure TEmpleadosBusinessProcessorRules.SetFORMACION_BASEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFORMACION_BASE] := Null; +end; + +function TEmpleadosBusinessProcessorRules.GetFORMACION_COMPLEValue: IROStrings; +begin + result := f_FORMACION_COMPLE; + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFORMACION_COMPLE]; +end; + +function TEmpleadosBusinessProcessorRules.GetFORMACION_COMPLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFORMACION_COMPLE]); +end; + +function TEmpleadosBusinessProcessorRules.GetOldFORMACION_COMPLEValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosFORMACION_COMPLE]; +end; + +function TEmpleadosBusinessProcessorRules.GetOldFORMACION_COMPLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosFORMACION_COMPLE]); +end; + +procedure TEmpleadosBusinessProcessorRules.SetFORMACION_COMPLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFORMACION_COMPLE] := Null; +end; + +function TEmpleadosBusinessProcessorRules.GetFORMACION_RECIBIDAValue: IROStrings; +begin + result := f_FORMACION_RECIBIDA; + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFORMACION_RECIBIDA]; +end; + +function TEmpleadosBusinessProcessorRules.GetFORMACION_RECIBIDAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFORMACION_RECIBIDA]); +end; + +function TEmpleadosBusinessProcessorRules.GetOldFORMACION_RECIBIDAValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosFORMACION_RECIBIDA]; +end; + +function TEmpleadosBusinessProcessorRules.GetOldFORMACION_RECIBIDAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosFORMACION_RECIBIDA]); +end; + +procedure TEmpleadosBusinessProcessorRules.SetFORMACION_RECIBIDAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFORMACION_RECIBIDA] := Null; +end; + +function TEmpleadosBusinessProcessorRules.GetEXPERIENCIAValue: IROStrings; +begin + result := f_EXPERIENCIA; + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosEXPERIENCIA]; +end; + +function TEmpleadosBusinessProcessorRules.GetEXPERIENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosEXPERIENCIA]); +end; + +function TEmpleadosBusinessProcessorRules.GetOldEXPERIENCIAValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosEXPERIENCIA]; +end; + +function TEmpleadosBusinessProcessorRules.GetOldEXPERIENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosEXPERIENCIA]); +end; + +procedure TEmpleadosBusinessProcessorRules.SetEXPERIENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosEXPERIENCIA] := Null; +end; + +function TEmpleadosBusinessProcessorRules.GetCONTRATOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosCONTRATO]; +end; + +function TEmpleadosBusinessProcessorRules.GetCONTRATOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosCONTRATO]); +end; + +function TEmpleadosBusinessProcessorRules.GetOldCONTRATOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosCONTRATO]; +end; + +function TEmpleadosBusinessProcessorRules.GetOldCONTRATOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosCONTRATO]); +end; + +procedure TEmpleadosBusinessProcessorRules.SetCONTRATOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosCONTRATO] := aValue; +end; + +procedure TEmpleadosBusinessProcessorRules.SetCONTRATOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosCONTRATO] := Null; +end; + +function TEmpleadosBusinessProcessorRules.GetDURACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosDURACION]; +end; + +function TEmpleadosBusinessProcessorRules.GetDURACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosDURACION]); +end; + +function TEmpleadosBusinessProcessorRules.GetOldDURACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosDURACION]; +end; + +function TEmpleadosBusinessProcessorRules.GetOldDURACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosDURACION]); +end; + +procedure TEmpleadosBusinessProcessorRules.SetDURACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosDURACION] := aValue; +end; + +procedure TEmpleadosBusinessProcessorRules.SetDURACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosDURACION] := Null; +end; + +function TEmpleadosBusinessProcessorRules.GetFECHA_BAJAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFECHA_BAJA]; +end; + +function TEmpleadosBusinessProcessorRules.GetFECHA_BAJAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFECHA_BAJA]); +end; + +function TEmpleadosBusinessProcessorRules.GetOldFECHA_BAJAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosFECHA_BAJA]; +end; + +function TEmpleadosBusinessProcessorRules.GetOldFECHA_BAJAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosFECHA_BAJA]); +end; + +procedure TEmpleadosBusinessProcessorRules.SetFECHA_BAJAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFECHA_BAJA] := aValue; +end; + +procedure TEmpleadosBusinessProcessorRules.SetFECHA_BAJAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosFECHA_BAJA] := Null; +end; + +function TEmpleadosBusinessProcessorRules.GetCAUSA_BAJAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosCAUSA_BAJA]; +end; + +function TEmpleadosBusinessProcessorRules.GetCAUSA_BAJAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosCAUSA_BAJA]); +end; + +function TEmpleadosBusinessProcessorRules.GetOldCAUSA_BAJAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosCAUSA_BAJA]; +end; + +function TEmpleadosBusinessProcessorRules.GetOldCAUSA_BAJAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpleadosCAUSA_BAJA]); +end; + +procedure TEmpleadosBusinessProcessorRules.SetCAUSA_BAJAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosCAUSA_BAJA] := aValue; +end; + +procedure TEmpleadosBusinessProcessorRules.SetCAUSA_BAJAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpleadosCAUSA_BAJA] := Null; +end; + + +{ TDireccionesContactoBusinessProcessorRules } +constructor TDireccionesContactoBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := NOTAS_OnChange; + f_NOTAS := NewROStrings(StrList,True); +end; + +destructor TDireccionesContactoBusinessProcessorRules.Destroy; +begin + inherited; +end; + +procedure TDireccionesContactoBusinessProcessorRules.NOTAS_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoNOTAS] := TStringList(Sender).Text; +end; + +function TDireccionesContactoBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoID]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoID]); +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoID]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoID]); +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoID] := aValue; +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoID] := Null; +end; + +function TDireccionesContactoBusinessProcessorRules.GetID_CONTACTOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoID_CONTACTO]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetID_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoID_CONTACTO]); +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldID_CONTACTOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoID_CONTACTO]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldID_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoID_CONTACTO]); +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetID_CONTACTOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoID_CONTACTO] := aValue; +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetID_CONTACTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoID_CONTACTO] := Null; +end; + +function TDireccionesContactoBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoCALLE]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoCALLE]); +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoCALLE]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoCALLE]); +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoCALLE] := aValue; +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetCALLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoCALLE] := Null; +end; + +function TDireccionesContactoBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoPOBLACION]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoPOBLACION]); +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoPOBLACION]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoPOBLACION]); +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoPOBLACION] := aValue; +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetPOBLACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoPOBLACION] := Null; +end; + +function TDireccionesContactoBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoPROVINCIA]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoPROVINCIA]); +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoPROVINCIA]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoPROVINCIA]); +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoPROVINCIA] := aValue; +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetPROVINCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoPROVINCIA] := Null; +end; + +function TDireccionesContactoBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoCODIGO_POSTAL]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoCODIGO_POSTAL]); +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoCODIGO_POSTAL]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoCODIGO_POSTAL]); +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoCODIGO_POSTAL] := aValue; +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetCODIGO_POSTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoCODIGO_POSTAL] := Null; +end; + +function TDireccionesContactoBusinessProcessorRules.GetPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoPERSONA_CONTACTO]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetPERSONA_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoPERSONA_CONTACTO]); +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoPERSONA_CONTACTO]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldPERSONA_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoPERSONA_CONTACTO]); +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoPERSONA_CONTACTO] := aValue; +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetPERSONA_CONTACTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoPERSONA_CONTACTO] := Null; +end; + +function TDireccionesContactoBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoNOMBRE]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoNOMBRE]); +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoNOMBRE]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoNOMBRE]); +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoNOMBRE] := aValue; +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoNOMBRE] := Null; +end; + +function TDireccionesContactoBusinessProcessorRules.GetTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoTELEFONO]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetTELEFONOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoTELEFONO]); +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoTELEFONO]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldTELEFONOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoTELEFONO]); +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetTELEFONOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoTELEFONO] := aValue; +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetTELEFONOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoTELEFONO] := Null; +end; + +function TDireccionesContactoBusinessProcessorRules.GetMOVILValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoMOVIL]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetMOVILIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoMOVIL]); +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldMOVILValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoMOVIL]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldMOVILIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoMOVIL]); +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetMOVILValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoMOVIL] := aValue; +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetMOVILIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoMOVIL] := Null; +end; + +function TDireccionesContactoBusinessProcessorRules.GetFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoFAX]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetFAXIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoFAX]); +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoFAX]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldFAXIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoFAX]); +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetFAXValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoFAX] := aValue; +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetFAXIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoFAX] := Null; +end; + +function TDireccionesContactoBusinessProcessorRules.GetEMAILValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoEMAIL]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetEMAILIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoEMAIL]); +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldEMAILValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoEMAIL]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldEMAILIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoEMAIL]); +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetEMAILValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoEMAIL] := aValue; +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetEMAILIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoEMAIL] := Null; +end; + +function TDireccionesContactoBusinessProcessorRules.GetNOTASValue: IROStrings; +begin + result := f_NOTAS; + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoNOTAS]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetNOTASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoNOTAS]); +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldNOTASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoNOTAS]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldNOTASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoNOTAS]); +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetNOTASIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoNOTAS] := Null; +end; + +function TDireccionesContactoBusinessProcessorRules.GetPORTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoPORTE]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetPORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoPORTE]); +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldPORTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoPORTE]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldPORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoPORTE]); +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetPORTEValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoPORTE] := aValue; +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetPORTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoPORTE] := Null; +end; + +function TDireccionesContactoBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoFECHA_ALTA]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoFECHA_ALTA]); +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoFECHA_ALTA]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoFECHA_ALTA]); +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoFECHA_ALTA] := aValue; +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoFECHA_ALTA] := Null; +end; + +function TDireccionesContactoBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoFECHA_MODIFICACION]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoFECHA_MODIFICACION]); +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoFECHA_MODIFICACION]; +end; + +function TDireccionesContactoBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DireccionesContactoFECHA_MODIFICACION]); +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoFECHA_MODIFICACION] := aValue; +end; + +procedure TDireccionesContactoBusinessProcessorRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DireccionesContactoFECHA_MODIFICACION] := Null; +end; + + +{ TClientesDescuentosBusinessProcessorRules } +constructor TClientesDescuentosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TClientesDescuentosBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TClientesDescuentosBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDescuentosID]; +end; + +function TClientesDescuentosBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDescuentosID]); +end; + +function TClientesDescuentosBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesDescuentosID]; +end; + +function TClientesDescuentosBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesDescuentosID]); +end; + +procedure TClientesDescuentosBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDescuentosID] := aValue; +end; + +procedure TClientesDescuentosBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDescuentosID] := Null; +end; + +function TClientesDescuentosBusinessProcessorRules.GetID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDescuentosID_CLIENTE]; +end; + +function TClientesDescuentosBusinessProcessorRules.GetID_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDescuentosID_CLIENTE]); +end; + +function TClientesDescuentosBusinessProcessorRules.GetOldID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesDescuentosID_CLIENTE]; +end; + +function TClientesDescuentosBusinessProcessorRules.GetOldID_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesDescuentosID_CLIENTE]); +end; + +procedure TClientesDescuentosBusinessProcessorRules.SetID_CLIENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDescuentosID_CLIENTE] := aValue; +end; + +procedure TClientesDescuentosBusinessProcessorRules.SetID_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDescuentosID_CLIENTE] := Null; +end; + +function TClientesDescuentosBusinessProcessorRules.GetID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDescuentosID_PROVEEDOR]; +end; + +function TClientesDescuentosBusinessProcessorRules.GetID_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDescuentosID_PROVEEDOR]); +end; + +function TClientesDescuentosBusinessProcessorRules.GetOldID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesDescuentosID_PROVEEDOR]; +end; + +function TClientesDescuentosBusinessProcessorRules.GetOldID_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesDescuentosID_PROVEEDOR]); +end; + +procedure TClientesDescuentosBusinessProcessorRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDescuentosID_PROVEEDOR] := aValue; +end; + +procedure TClientesDescuentosBusinessProcessorRules.SetID_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDescuentosID_PROVEEDOR] := Null; +end; + +function TClientesDescuentosBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDescuentosNOMBRE]; +end; + +function TClientesDescuentosBusinessProcessorRules.GetNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDescuentosNOMBRE]); +end; + +function TClientesDescuentosBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesDescuentosNOMBRE]; +end; + +function TClientesDescuentosBusinessProcessorRules.GetOldNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesDescuentosNOMBRE]); +end; + +procedure TClientesDescuentosBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDescuentosNOMBRE] := aValue; +end; + +procedure TClientesDescuentosBusinessProcessorRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDescuentosNOMBRE] := Null; +end; + +function TClientesDescuentosBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDescuentosDESCUENTO]; +end; + +function TClientesDescuentosBusinessProcessorRules.GetDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDescuentosDESCUENTO]); +end; + +function TClientesDescuentosBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesDescuentosDESCUENTO]; +end; + +function TClientesDescuentosBusinessProcessorRules.GetOldDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesDescuentosDESCUENTO]); +end; + +procedure TClientesDescuentosBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDescuentosDESCUENTO] := aValue; +end; + +procedure TClientesDescuentosBusinessProcessorRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDescuentosDESCUENTO] := Null; +end; + + +{ TGruposProveedorBusinessProcessorRules } +constructor TGruposProveedorBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TGruposProveedorBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TGruposProveedorBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_GruposProveedorID]; +end; + +function TGruposProveedorBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_GruposProveedorID]); +end; + +function TGruposProveedorBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_GruposProveedorID]; +end; + +function TGruposProveedorBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_GruposProveedorID]); +end; + +procedure TGruposProveedorBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_GruposProveedorID] := aValue; +end; + +procedure TGruposProveedorBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_GruposProveedorID] := Null; +end; + +function TGruposProveedorBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_GruposProveedorDESCRIPCION]; +end; + +function TGruposProveedorBusinessProcessorRules.GetDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_GruposProveedorDESCRIPCION]); +end; + +function TGruposProveedorBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_GruposProveedorDESCRIPCION]; +end; + +function TGruposProveedorBusinessProcessorRules.GetOldDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_GruposProveedorDESCRIPCION]); +end; + +procedure TGruposProveedorBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_GruposProveedorDESCRIPCION] := aValue; +end; + +procedure TGruposProveedorBusinessProcessorRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_GruposProveedorDESCRIPCION] := Null; +end; + + +{ TGruposEmpleadoBusinessProcessorRules } +constructor TGruposEmpleadoBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TGruposEmpleadoBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TGruposEmpleadoBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_GruposEmpleadoID]; +end; + +function TGruposEmpleadoBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_GruposEmpleadoID]); +end; + +function TGruposEmpleadoBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_GruposEmpleadoID]; +end; + +function TGruposEmpleadoBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_GruposEmpleadoID]); +end; + +procedure TGruposEmpleadoBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_GruposEmpleadoID] := aValue; +end; + +procedure TGruposEmpleadoBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_GruposEmpleadoID] := Null; +end; + +function TGruposEmpleadoBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_GruposEmpleadoDESCRIPCION]; +end; + +function TGruposEmpleadoBusinessProcessorRules.GetDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_GruposEmpleadoDESCRIPCION]); +end; + +function TGruposEmpleadoBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_GruposEmpleadoDESCRIPCION]; +end; + +function TGruposEmpleadoBusinessProcessorRules.GetOldDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_GruposEmpleadoDESCRIPCION]); +end; + +procedure TGruposEmpleadoBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_GruposEmpleadoDESCRIPCION] := aValue; +end; + +procedure TGruposEmpleadoBusinessProcessorRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_GruposEmpleadoDESCRIPCION] := Null; +end; + + +{ TContactos_RefreshBusinessProcessorRules } +constructor TContactos_RefreshBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := NOTAS_OnChange; + f_NOTAS := NewROStrings(StrList,True); +end; + +destructor TContactos_RefreshBusinessProcessorRules.Destroy; +begin + inherited; +end; + +procedure TContactos_RefreshBusinessProcessorRules.NOTAS_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshNOTAS] := TStringList(Sender).Text; +end; + +function TContactos_RefreshBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshID]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshID]); +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshID]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshID]); +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshID] := aValue; +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshID] := Null; +end; + +function TContactos_RefreshBusinessProcessorRules.GetNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshNIF_CIF]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetNIF_CIFIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshNIF_CIF]); +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshNIF_CIF]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldNIF_CIFIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshNIF_CIF]); +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetNIF_CIFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshNIF_CIF] := aValue; +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetNIF_CIFIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshNIF_CIF] := Null; +end; + +function TContactos_RefreshBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshNOMBRE]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshNOMBRE]); +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshNOMBRE]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshNOMBRE]); +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshNOMBRE] := aValue; +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshNOMBRE] := Null; +end; + +function TContactos_RefreshBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshCALLE]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshCALLE]); +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshCALLE]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshCALLE]); +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshCALLE] := aValue; +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetCALLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshCALLE] := Null; +end; + +function TContactos_RefreshBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshPOBLACION]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshPOBLACION]); +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshPOBLACION]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshPOBLACION]); +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshPOBLACION] := aValue; +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetPOBLACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshPOBLACION] := Null; +end; + +function TContactos_RefreshBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshPROVINCIA]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshPROVINCIA]); +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshPROVINCIA]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshPROVINCIA]); +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshPROVINCIA] := aValue; +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetPROVINCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshPROVINCIA] := Null; +end; + +function TContactos_RefreshBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshCODIGO_POSTAL]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshCODIGO_POSTAL]); +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshCODIGO_POSTAL]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshCODIGO_POSTAL]); +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshCODIGO_POSTAL] := aValue; +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetCODIGO_POSTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshCODIGO_POSTAL] := Null; +end; + +function TContactos_RefreshBusinessProcessorRules.GetTELEFONO_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshTELEFONO_1]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetTELEFONO_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshTELEFONO_1]); +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldTELEFONO_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshTELEFONO_1]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldTELEFONO_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshTELEFONO_1]); +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetTELEFONO_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshTELEFONO_1] := aValue; +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetTELEFONO_1IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshTELEFONO_1] := Null; +end; + +function TContactos_RefreshBusinessProcessorRules.GetTELEFONO_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshTELEFONO_2]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetTELEFONO_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshTELEFONO_2]); +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldTELEFONO_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshTELEFONO_2]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldTELEFONO_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshTELEFONO_2]); +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetTELEFONO_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshTELEFONO_2] := aValue; +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetTELEFONO_2IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshTELEFONO_2] := Null; +end; + +function TContactos_RefreshBusinessProcessorRules.GetMOVIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshMOVIL_1]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetMOVIL_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshMOVIL_1]); +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldMOVIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshMOVIL_1]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldMOVIL_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshMOVIL_1]); +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetMOVIL_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshMOVIL_1] := aValue; +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetMOVIL_1IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshMOVIL_1] := Null; +end; + +function TContactos_RefreshBusinessProcessorRules.GetMOVIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshMOVIL_2]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetMOVIL_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshMOVIL_2]); +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldMOVIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshMOVIL_2]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldMOVIL_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshMOVIL_2]); +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetMOVIL_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshMOVIL_2] := aValue; +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetMOVIL_2IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshMOVIL_2] := Null; +end; + +function TContactos_RefreshBusinessProcessorRules.GetFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshFAX]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetFAXIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshFAX]); +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshFAX]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldFAXIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshFAX]); +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetFAXValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshFAX] := aValue; +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetFAXIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshFAX] := Null; +end; + +function TContactos_RefreshBusinessProcessorRules.GetEMAIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshEMAIL_1]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetEMAIL_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshEMAIL_1]); +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldEMAIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshEMAIL_1]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldEMAIL_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshEMAIL_1]); +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetEMAIL_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshEMAIL_1] := aValue; +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetEMAIL_1IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshEMAIL_1] := Null; +end; + +function TContactos_RefreshBusinessProcessorRules.GetEMAIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshEMAIL_2]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetEMAIL_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshEMAIL_2]); +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldEMAIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshEMAIL_2]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldEMAIL_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshEMAIL_2]); +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetEMAIL_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshEMAIL_2] := aValue; +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetEMAIL_2IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshEMAIL_2] := Null; +end; + +function TContactos_RefreshBusinessProcessorRules.GetPAGINA_WEBValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshPAGINA_WEB]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetPAGINA_WEBIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshPAGINA_WEB]); +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldPAGINA_WEBValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshPAGINA_WEB]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldPAGINA_WEBIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshPAGINA_WEB]); +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetPAGINA_WEBValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshPAGINA_WEB] := aValue; +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetPAGINA_WEBIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshPAGINA_WEB] := Null; +end; + +function TContactos_RefreshBusinessProcessorRules.GetNOTASValue: IROStrings; +begin + result := f_NOTAS; + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshNOTAS]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetNOTASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshNOTAS]); +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldNOTASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshNOTAS]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldNOTASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshNOTAS]); +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetNOTASIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshNOTAS] := Null; +end; + +function TContactos_RefreshBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshFECHA_ALTA]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshFECHA_ALTA]); +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshFECHA_ALTA]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshFECHA_ALTA]); +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshFECHA_ALTA] := aValue; +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshFECHA_ALTA] := Null; +end; + +function TContactos_RefreshBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshFECHA_MODIFICACION]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshFECHA_MODIFICACION]); +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshFECHA_MODIFICACION]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshFECHA_MODIFICACION]); +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshFECHA_MODIFICACION] := aValue; +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshFECHA_MODIFICACION] := Null; +end; + +function TContactos_RefreshBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshUSUARIO]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshUSUARIO]); +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshUSUARIO]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshUSUARIO]); +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshUSUARIO] := aValue; +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshUSUARIO] := Null; +end; + +function TContactos_RefreshBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshREFERENCIA]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshREFERENCIA]); +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshREFERENCIA]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshREFERENCIA]); +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshREFERENCIA] := aValue; +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshREFERENCIA] := Null; +end; + +function TContactos_RefreshBusinessProcessorRules.GetPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshPERSONA_CONTACTO]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetPERSONA_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshPERSONA_CONTACTO]); +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshPERSONA_CONTACTO]; +end; + +function TContactos_RefreshBusinessProcessorRules.GetOldPERSONA_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Contactos_RefreshPERSONA_CONTACTO]); +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshPERSONA_CONTACTO] := aValue; +end; + +procedure TContactos_RefreshBusinessProcessorRules.SetPERSONA_CONTACTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Contactos_RefreshPERSONA_CONTACTO] := Null; +end; + + +{ TContratosEmpleadosBusinessProcessorRules } +constructor TContratosEmpleadosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TContratosEmpleadosBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TContratosEmpleadosBusinessProcessorRules.GetCONTRATOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContratosEmpleadosCONTRATO]; +end; + +function TContratosEmpleadosBusinessProcessorRules.GetCONTRATOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ContratosEmpleadosCONTRATO]); +end; + +function TContratosEmpleadosBusinessProcessorRules.GetOldCONTRATOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContratosEmpleadosCONTRATO]; +end; + +function TContratosEmpleadosBusinessProcessorRules.GetOldCONTRATOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ContratosEmpleadosCONTRATO]); +end; + +procedure TContratosEmpleadosBusinessProcessorRules.SetCONTRATOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContratosEmpleadosCONTRATO] := aValue; +end; + +procedure TContratosEmpleadosBusinessProcessorRules.SetCONTRATOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ContratosEmpleadosCONTRATO] := Null; +end; + + +{ TDescripcionesProveedoresBusinessProcessorRules } +constructor TDescripcionesProveedoresBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TDescripcionesProveedoresBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TDescripcionesProveedoresBusinessProcessorRules.GetDESCRIPCION_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DescripcionesProveedoresDESCRIPCION_PROVEEDOR]; +end; + +function TDescripcionesProveedoresBusinessProcessorRules.GetDESCRIPCION_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DescripcionesProveedoresDESCRIPCION_PROVEEDOR]); +end; + +function TDescripcionesProveedoresBusinessProcessorRules.GetOldDESCRIPCION_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DescripcionesProveedoresDESCRIPCION_PROVEEDOR]; +end; + +function TDescripcionesProveedoresBusinessProcessorRules.GetOldDESCRIPCION_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DescripcionesProveedoresDESCRIPCION_PROVEEDOR]); +end; + +procedure TDescripcionesProveedoresBusinessProcessorRules.SetDESCRIPCION_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DescripcionesProveedoresDESCRIPCION_PROVEEDOR] := aValue; +end; + +procedure TDescripcionesProveedoresBusinessProcessorRules.SetDESCRIPCION_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DescripcionesProveedoresDESCRIPCION_PROVEEDOR] := Null; +end; + + +{ TPersonalContactoBusinessProcessorRules } +constructor TPersonalContactoBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TPersonalContactoBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TPersonalContactoBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoID]; +end; + +function TPersonalContactoBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoID]); +end; + +function TPersonalContactoBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PersonalContactoID]; +end; + +function TPersonalContactoBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PersonalContactoID]); +end; + +procedure TPersonalContactoBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoID] := aValue; +end; + +procedure TPersonalContactoBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoID] := Null; +end; + +function TPersonalContactoBusinessProcessorRules.GetID_CONTACTOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoID_CONTACTO]; +end; + +function TPersonalContactoBusinessProcessorRules.GetID_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoID_CONTACTO]); +end; + +function TPersonalContactoBusinessProcessorRules.GetOldID_CONTACTOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PersonalContactoID_CONTACTO]; +end; + +function TPersonalContactoBusinessProcessorRules.GetOldID_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PersonalContactoID_CONTACTO]); +end; + +procedure TPersonalContactoBusinessProcessorRules.SetID_CONTACTOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoID_CONTACTO] := aValue; +end; + +procedure TPersonalContactoBusinessProcessorRules.SetID_CONTACTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoID_CONTACTO] := Null; +end; + +function TPersonalContactoBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoNOMBRE]; +end; + +function TPersonalContactoBusinessProcessorRules.GetNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoNOMBRE]); +end; + +function TPersonalContactoBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PersonalContactoNOMBRE]; +end; + +function TPersonalContactoBusinessProcessorRules.GetOldNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PersonalContactoNOMBRE]); +end; + +procedure TPersonalContactoBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoNOMBRE] := aValue; +end; + +procedure TPersonalContactoBusinessProcessorRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoNOMBRE] := Null; +end; + +function TPersonalContactoBusinessProcessorRules.GetPUESTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoPUESTO]; +end; + +function TPersonalContactoBusinessProcessorRules.GetPUESTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoPUESTO]); +end; + +function TPersonalContactoBusinessProcessorRules.GetOldPUESTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PersonalContactoPUESTO]; +end; + +function TPersonalContactoBusinessProcessorRules.GetOldPUESTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PersonalContactoPUESTO]); +end; + +procedure TPersonalContactoBusinessProcessorRules.SetPUESTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoPUESTO] := aValue; +end; + +procedure TPersonalContactoBusinessProcessorRules.SetPUESTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoPUESTO] := Null; +end; + +function TPersonalContactoBusinessProcessorRules.GetTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoTELEFONO]; +end; + +function TPersonalContactoBusinessProcessorRules.GetTELEFONOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoTELEFONO]); +end; + +function TPersonalContactoBusinessProcessorRules.GetOldTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PersonalContactoTELEFONO]; +end; + +function TPersonalContactoBusinessProcessorRules.GetOldTELEFONOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PersonalContactoTELEFONO]); +end; + +procedure TPersonalContactoBusinessProcessorRules.SetTELEFONOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoTELEFONO] := aValue; +end; + +procedure TPersonalContactoBusinessProcessorRules.SetTELEFONOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoTELEFONO] := Null; +end; + +function TPersonalContactoBusinessProcessorRules.GetMOVILValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoMOVIL]; +end; + +function TPersonalContactoBusinessProcessorRules.GetMOVILIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoMOVIL]); +end; + +function TPersonalContactoBusinessProcessorRules.GetOldMOVILValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PersonalContactoMOVIL]; +end; + +function TPersonalContactoBusinessProcessorRules.GetOldMOVILIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PersonalContactoMOVIL]); +end; + +procedure TPersonalContactoBusinessProcessorRules.SetMOVILValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoMOVIL] := aValue; +end; + +procedure TPersonalContactoBusinessProcessorRules.SetMOVILIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoMOVIL] := Null; +end; + +function TPersonalContactoBusinessProcessorRules.GetFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoFAX]; +end; + +function TPersonalContactoBusinessProcessorRules.GetFAXIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoFAX]); +end; + +function TPersonalContactoBusinessProcessorRules.GetOldFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PersonalContactoFAX]; +end; + +function TPersonalContactoBusinessProcessorRules.GetOldFAXIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PersonalContactoFAX]); +end; + +procedure TPersonalContactoBusinessProcessorRules.SetFAXValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoFAX] := aValue; +end; + +procedure TPersonalContactoBusinessProcessorRules.SetFAXIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoFAX] := Null; +end; + +function TPersonalContactoBusinessProcessorRules.GetEMAILValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoEMAIL]; +end; + +function TPersonalContactoBusinessProcessorRules.GetEMAILIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoEMAIL]); +end; + +function TPersonalContactoBusinessProcessorRules.GetOldEMAILValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PersonalContactoEMAIL]; +end; + +function TPersonalContactoBusinessProcessorRules.GetOldEMAILIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PersonalContactoEMAIL]); +end; + +procedure TPersonalContactoBusinessProcessorRules.SetEMAILValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoEMAIL] := aValue; +end; + +procedure TPersonalContactoBusinessProcessorRules.SetEMAILIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoEMAIL] := Null; +end; + +function TPersonalContactoBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoFECHA_ALTA]; +end; + +function TPersonalContactoBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoFECHA_ALTA]); +end; + +function TPersonalContactoBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PersonalContactoFECHA_ALTA]; +end; + +function TPersonalContactoBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PersonalContactoFECHA_ALTA]); +end; + +procedure TPersonalContactoBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoFECHA_ALTA] := aValue; +end; + +procedure TPersonalContactoBusinessProcessorRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoFECHA_ALTA] := Null; +end; + +function TPersonalContactoBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoFECHA_MODIFICACION]; +end; + +function TPersonalContactoBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoFECHA_MODIFICACION]); +end; + +function TPersonalContactoBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PersonalContactoFECHA_MODIFICACION]; +end; + +function TPersonalContactoBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PersonalContactoFECHA_MODIFICACION]); +end; + +procedure TPersonalContactoBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoFECHA_MODIFICACION] := aValue; +end; + +procedure TPersonalContactoBusinessProcessorRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PersonalContactoFECHA_MODIFICACION] := Null; +end; + + +{ TAgentes_ComisionesBusinessProcessorRules } +constructor TAgentes_ComisionesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TAgentes_ComisionesBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TAgentes_ComisionesBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Agentes_ComisionesID]; +end; + +function TAgentes_ComisionesBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Agentes_ComisionesID]); +end; + +function TAgentes_ComisionesBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Agentes_ComisionesID]; +end; + +function TAgentes_ComisionesBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Agentes_ComisionesID]); +end; + +procedure TAgentes_ComisionesBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Agentes_ComisionesID] := aValue; +end; + +procedure TAgentes_ComisionesBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Agentes_ComisionesID] := Null; +end; + +function TAgentes_ComisionesBusinessProcessorRules.GetID_AGENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Agentes_ComisionesID_AGENTE]; +end; + +function TAgentes_ComisionesBusinessProcessorRules.GetID_AGENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Agentes_ComisionesID_AGENTE]); +end; + +function TAgentes_ComisionesBusinessProcessorRules.GetOldID_AGENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Agentes_ComisionesID_AGENTE]; +end; + +function TAgentes_ComisionesBusinessProcessorRules.GetOldID_AGENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Agentes_ComisionesID_AGENTE]); +end; + +procedure TAgentes_ComisionesBusinessProcessorRules.SetID_AGENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Agentes_ComisionesID_AGENTE] := aValue; +end; + +procedure TAgentes_ComisionesBusinessProcessorRules.SetID_AGENTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Agentes_ComisionesID_AGENTE] := Null; +end; + +function TAgentes_ComisionesBusinessProcessorRules.GetID_PROVEEDORValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Agentes_ComisionesID_PROVEEDOR]; +end; + +function TAgentes_ComisionesBusinessProcessorRules.GetID_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Agentes_ComisionesID_PROVEEDOR]); +end; + +function TAgentes_ComisionesBusinessProcessorRules.GetOldID_PROVEEDORValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Agentes_ComisionesID_PROVEEDOR]; +end; + +function TAgentes_ComisionesBusinessProcessorRules.GetOldID_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Agentes_ComisionesID_PROVEEDOR]); +end; + +procedure TAgentes_ComisionesBusinessProcessorRules.SetID_PROVEEDORValue(const aValue: SmallInt); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Agentes_ComisionesID_PROVEEDOR] := aValue; +end; + +procedure TAgentes_ComisionesBusinessProcessorRules.SetID_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Agentes_ComisionesID_PROVEEDOR] := Null; +end; + +function TAgentes_ComisionesBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Agentes_ComisionesNOMBRE]; +end; + +function TAgentes_ComisionesBusinessProcessorRules.GetNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Agentes_ComisionesNOMBRE]); +end; + +function TAgentes_ComisionesBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Agentes_ComisionesNOMBRE]; +end; + +function TAgentes_ComisionesBusinessProcessorRules.GetOldNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Agentes_ComisionesNOMBRE]); +end; + +procedure TAgentes_ComisionesBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Agentes_ComisionesNOMBRE] := aValue; +end; + +procedure TAgentes_ComisionesBusinessProcessorRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Agentes_ComisionesNOMBRE] := Null; +end; + +function TAgentes_ComisionesBusinessProcessorRules.GetCOMISIONValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_Agentes_ComisionesCOMISION]; +end; + +function TAgentes_ComisionesBusinessProcessorRules.GetCOMISIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_Agentes_ComisionesCOMISION]); +end; + +function TAgentes_ComisionesBusinessProcessorRules.GetOldCOMISIONValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_Agentes_ComisionesCOMISION]; +end; + +function TAgentes_ComisionesBusinessProcessorRules.GetOldCOMISIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_Agentes_ComisionesCOMISION]); +end; + +procedure TAgentes_ComisionesBusinessProcessorRules.SetCOMISIONValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_Agentes_ComisionesCOMISION] := aValue; +end; + +procedure TAgentes_ComisionesBusinessProcessorRules.SetCOMISIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_Agentes_ComisionesCOMISION] := Null; +end; + + +{ TAgentesBusinessProcessorRules } +constructor TAgentesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := NOTAS_OnChange; + f_NOTAS := NewROStrings(StrList,True); +end; + +destructor TAgentesBusinessProcessorRules.Destroy; +begin + inherited; +end; + +procedure TAgentesBusinessProcessorRules.NOTAS_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesNOTAS] := TStringList(Sender).Text; +end; + +function TAgentesBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesID]; +end; + +function TAgentesBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesID]); +end; + +function TAgentesBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesID]; +end; + +function TAgentesBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesID]); +end; + +procedure TAgentesBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesID] := aValue; +end; + +procedure TAgentesBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesID] := Null; +end; + +function TAgentesBusinessProcessorRules.GetID_CATEGORIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesID_CATEGORIA]; +end; + +function TAgentesBusinessProcessorRules.GetID_CATEGORIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesID_CATEGORIA]); +end; + +function TAgentesBusinessProcessorRules.GetOldID_CATEGORIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesID_CATEGORIA]; +end; + +function TAgentesBusinessProcessorRules.GetOldID_CATEGORIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesID_CATEGORIA]); +end; + +procedure TAgentesBusinessProcessorRules.SetID_CATEGORIAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesID_CATEGORIA] := aValue; +end; + +procedure TAgentesBusinessProcessorRules.SetID_CATEGORIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesID_CATEGORIA] := Null; +end; + +function TAgentesBusinessProcessorRules.GetNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesNIF_CIF]; +end; + +function TAgentesBusinessProcessorRules.GetNIF_CIFIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesNIF_CIF]); +end; + +function TAgentesBusinessProcessorRules.GetOldNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesNIF_CIF]; +end; + +function TAgentesBusinessProcessorRules.GetOldNIF_CIFIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesNIF_CIF]); +end; + +procedure TAgentesBusinessProcessorRules.SetNIF_CIFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesNIF_CIF] := aValue; +end; + +procedure TAgentesBusinessProcessorRules.SetNIF_CIFIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesNIF_CIF] := Null; +end; + +function TAgentesBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesNOMBRE]; +end; + +function TAgentesBusinessProcessorRules.GetNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesNOMBRE]); +end; + +function TAgentesBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesNOMBRE]; +end; + +function TAgentesBusinessProcessorRules.GetOldNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesNOMBRE]); +end; + +procedure TAgentesBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesNOMBRE] := aValue; +end; + +procedure TAgentesBusinessProcessorRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesNOMBRE] := Null; +end; + +function TAgentesBusinessProcessorRules.GetPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesPERSONA_CONTACTO]; +end; + +function TAgentesBusinessProcessorRules.GetPERSONA_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesPERSONA_CONTACTO]); +end; + +function TAgentesBusinessProcessorRules.GetOldPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesPERSONA_CONTACTO]; +end; + +function TAgentesBusinessProcessorRules.GetOldPERSONA_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesPERSONA_CONTACTO]); +end; + +procedure TAgentesBusinessProcessorRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesPERSONA_CONTACTO] := aValue; +end; + +procedure TAgentesBusinessProcessorRules.SetPERSONA_CONTACTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesPERSONA_CONTACTO] := Null; +end; + +function TAgentesBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesCALLE]; +end; + +function TAgentesBusinessProcessorRules.GetCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesCALLE]); +end; + +function TAgentesBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesCALLE]; +end; + +function TAgentesBusinessProcessorRules.GetOldCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesCALLE]); +end; + +procedure TAgentesBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesCALLE] := aValue; +end; + +procedure TAgentesBusinessProcessorRules.SetCALLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesCALLE] := Null; +end; + +function TAgentesBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesPOBLACION]; +end; + +function TAgentesBusinessProcessorRules.GetPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesPOBLACION]); +end; + +function TAgentesBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesPOBLACION]; +end; + +function TAgentesBusinessProcessorRules.GetOldPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesPOBLACION]); +end; + +procedure TAgentesBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesPOBLACION] := aValue; +end; + +procedure TAgentesBusinessProcessorRules.SetPOBLACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesPOBLACION] := Null; +end; + +function TAgentesBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesPROVINCIA]; +end; + +function TAgentesBusinessProcessorRules.GetPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesPROVINCIA]); +end; + +function TAgentesBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesPROVINCIA]; +end; + +function TAgentesBusinessProcessorRules.GetOldPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesPROVINCIA]); +end; + +procedure TAgentesBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesPROVINCIA] := aValue; +end; + +procedure TAgentesBusinessProcessorRules.SetPROVINCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesPROVINCIA] := Null; +end; + +function TAgentesBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesCODIGO_POSTAL]; +end; + +function TAgentesBusinessProcessorRules.GetCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesCODIGO_POSTAL]); +end; + +function TAgentesBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesCODIGO_POSTAL]; +end; + +function TAgentesBusinessProcessorRules.GetOldCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesCODIGO_POSTAL]); +end; + +procedure TAgentesBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesCODIGO_POSTAL] := aValue; +end; + +procedure TAgentesBusinessProcessorRules.SetCODIGO_POSTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesCODIGO_POSTAL] := Null; +end; + +function TAgentesBusinessProcessorRules.GetTELEFONO_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesTELEFONO_1]; +end; + +function TAgentesBusinessProcessorRules.GetTELEFONO_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesTELEFONO_1]); +end; + +function TAgentesBusinessProcessorRules.GetOldTELEFONO_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesTELEFONO_1]; +end; + +function TAgentesBusinessProcessorRules.GetOldTELEFONO_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesTELEFONO_1]); +end; + +procedure TAgentesBusinessProcessorRules.SetTELEFONO_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesTELEFONO_1] := aValue; +end; + +procedure TAgentesBusinessProcessorRules.SetTELEFONO_1IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesTELEFONO_1] := Null; +end; + +function TAgentesBusinessProcessorRules.GetTELEFONO_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesTELEFONO_2]; +end; + +function TAgentesBusinessProcessorRules.GetTELEFONO_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesTELEFONO_2]); +end; + +function TAgentesBusinessProcessorRules.GetOldTELEFONO_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesTELEFONO_2]; +end; + +function TAgentesBusinessProcessorRules.GetOldTELEFONO_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesTELEFONO_2]); +end; + +procedure TAgentesBusinessProcessorRules.SetTELEFONO_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesTELEFONO_2] := aValue; +end; + +procedure TAgentesBusinessProcessorRules.SetTELEFONO_2IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesTELEFONO_2] := Null; +end; + +function TAgentesBusinessProcessorRules.GetMOVIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesMOVIL_1]; +end; + +function TAgentesBusinessProcessorRules.GetMOVIL_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesMOVIL_1]); +end; + +function TAgentesBusinessProcessorRules.GetOldMOVIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesMOVIL_1]; +end; + +function TAgentesBusinessProcessorRules.GetOldMOVIL_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesMOVIL_1]); +end; + +procedure TAgentesBusinessProcessorRules.SetMOVIL_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesMOVIL_1] := aValue; +end; + +procedure TAgentesBusinessProcessorRules.SetMOVIL_1IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesMOVIL_1] := Null; +end; + +function TAgentesBusinessProcessorRules.GetMOVIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesMOVIL_2]; +end; + +function TAgentesBusinessProcessorRules.GetMOVIL_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesMOVIL_2]); +end; + +function TAgentesBusinessProcessorRules.GetOldMOVIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesMOVIL_2]; +end; + +function TAgentesBusinessProcessorRules.GetOldMOVIL_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesMOVIL_2]); +end; + +procedure TAgentesBusinessProcessorRules.SetMOVIL_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesMOVIL_2] := aValue; +end; + +procedure TAgentesBusinessProcessorRules.SetMOVIL_2IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesMOVIL_2] := Null; +end; + +function TAgentesBusinessProcessorRules.GetFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesFAX]; +end; + +function TAgentesBusinessProcessorRules.GetFAXIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesFAX]); +end; + +function TAgentesBusinessProcessorRules.GetOldFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesFAX]; +end; + +function TAgentesBusinessProcessorRules.GetOldFAXIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesFAX]); +end; + +procedure TAgentesBusinessProcessorRules.SetFAXValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesFAX] := aValue; +end; + +procedure TAgentesBusinessProcessorRules.SetFAXIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesFAX] := Null; +end; + +function TAgentesBusinessProcessorRules.GetEMAIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesEMAIL_1]; +end; + +function TAgentesBusinessProcessorRules.GetEMAIL_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesEMAIL_1]); +end; + +function TAgentesBusinessProcessorRules.GetOldEMAIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesEMAIL_1]; +end; + +function TAgentesBusinessProcessorRules.GetOldEMAIL_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesEMAIL_1]); +end; + +procedure TAgentesBusinessProcessorRules.SetEMAIL_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesEMAIL_1] := aValue; +end; + +procedure TAgentesBusinessProcessorRules.SetEMAIL_1IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesEMAIL_1] := Null; +end; + +function TAgentesBusinessProcessorRules.GetEMAIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesEMAIL_2]; +end; + +function TAgentesBusinessProcessorRules.GetEMAIL_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesEMAIL_2]); +end; + +function TAgentesBusinessProcessorRules.GetOldEMAIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesEMAIL_2]; +end; + +function TAgentesBusinessProcessorRules.GetOldEMAIL_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesEMAIL_2]); +end; + +procedure TAgentesBusinessProcessorRules.SetEMAIL_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesEMAIL_2] := aValue; +end; + +procedure TAgentesBusinessProcessorRules.SetEMAIL_2IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesEMAIL_2] := Null; +end; + +function TAgentesBusinessProcessorRules.GetPAGINA_WEBValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesPAGINA_WEB]; +end; + +function TAgentesBusinessProcessorRules.GetPAGINA_WEBIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesPAGINA_WEB]); +end; + +function TAgentesBusinessProcessorRules.GetOldPAGINA_WEBValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesPAGINA_WEB]; +end; + +function TAgentesBusinessProcessorRules.GetOldPAGINA_WEBIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesPAGINA_WEB]); +end; + +procedure TAgentesBusinessProcessorRules.SetPAGINA_WEBValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesPAGINA_WEB] := aValue; +end; + +procedure TAgentesBusinessProcessorRules.SetPAGINA_WEBIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesPAGINA_WEB] := Null; +end; + +function TAgentesBusinessProcessorRules.GetNOTASValue: IROStrings; +begin + result := f_NOTAS; + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesNOTAS]; +end; + +function TAgentesBusinessProcessorRules.GetNOTASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesNOTAS]); +end; + +function TAgentesBusinessProcessorRules.GetOldNOTASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesNOTAS]; +end; + +function TAgentesBusinessProcessorRules.GetOldNOTASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesNOTAS]); +end; + +procedure TAgentesBusinessProcessorRules.SetNOTASIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesNOTAS] := Null; +end; + +function TAgentesBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesFECHA_ALTA]; +end; + +function TAgentesBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesFECHA_ALTA]); +end; + +function TAgentesBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesFECHA_ALTA]; +end; + +function TAgentesBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesFECHA_ALTA]); +end; + +procedure TAgentesBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesFECHA_ALTA] := aValue; +end; + +procedure TAgentesBusinessProcessorRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesFECHA_ALTA] := Null; +end; + +function TAgentesBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesFECHA_MODIFICACION]; +end; + +function TAgentesBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesFECHA_MODIFICACION]); +end; + +function TAgentesBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesFECHA_MODIFICACION]; +end; + +function TAgentesBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesFECHA_MODIFICACION]); +end; + +procedure TAgentesBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesFECHA_MODIFICACION] := aValue; +end; + +procedure TAgentesBusinessProcessorRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesFECHA_MODIFICACION] := Null; +end; + +function TAgentesBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesUSUARIO]; +end; + +function TAgentesBusinessProcessorRules.GetUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesUSUARIO]); +end; + +function TAgentesBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesUSUARIO]; +end; + +function TAgentesBusinessProcessorRules.GetOldUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesUSUARIO]); +end; + +procedure TAgentesBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesUSUARIO] := aValue; +end; + +procedure TAgentesBusinessProcessorRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesUSUARIO] := Null; +end; + +function TAgentesBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesID_EMPRESA]; +end; + +function TAgentesBusinessProcessorRules.GetID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesID_EMPRESA]); +end; + +function TAgentesBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesID_EMPRESA]; +end; + +function TAgentesBusinessProcessorRules.GetOldID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesID_EMPRESA]); +end; + +procedure TAgentesBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesID_EMPRESA] := aValue; +end; + +procedure TAgentesBusinessProcessorRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesID_EMPRESA] := Null; +end; + +function TAgentesBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesREFERENCIA]; +end; + +function TAgentesBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesREFERENCIA]); +end; + +function TAgentesBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesREFERENCIA]; +end; + +function TAgentesBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesREFERENCIA]); +end; + +procedure TAgentesBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesREFERENCIA] := aValue; +end; + +procedure TAgentesBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesREFERENCIA] := Null; +end; + +function TAgentesBusinessProcessorRules.GetFECHA_ALTA_EMPRESAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesFECHA_ALTA_EMPRESA]; +end; + +function TAgentesBusinessProcessorRules.GetFECHA_ALTA_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesFECHA_ALTA_EMPRESA]); +end; + +function TAgentesBusinessProcessorRules.GetOldFECHA_ALTA_EMPRESAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesFECHA_ALTA_EMPRESA]; +end; + +function TAgentesBusinessProcessorRules.GetOldFECHA_ALTA_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesFECHA_ALTA_EMPRESA]); +end; + +procedure TAgentesBusinessProcessorRules.SetFECHA_ALTA_EMPRESAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesFECHA_ALTA_EMPRESA] := aValue; +end; + +procedure TAgentesBusinessProcessorRules.SetFECHA_ALTA_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesFECHA_ALTA_EMPRESA] := Null; +end; + +function TAgentesBusinessProcessorRules.GetFECHA_BAJAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesFECHA_BAJA]; +end; + +function TAgentesBusinessProcessorRules.GetFECHA_BAJAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesFECHA_BAJA]); +end; + +function TAgentesBusinessProcessorRules.GetOldFECHA_BAJAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesFECHA_BAJA]; +end; + +function TAgentesBusinessProcessorRules.GetOldFECHA_BAJAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesFECHA_BAJA]); +end; + +procedure TAgentesBusinessProcessorRules.SetFECHA_BAJAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesFECHA_BAJA] := aValue; +end; + +procedure TAgentesBusinessProcessorRules.SetFECHA_BAJAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesFECHA_BAJA] := Null; +end; + +function TAgentesBusinessProcessorRules.GetCAUSA_BAJAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesCAUSA_BAJA]; +end; + +function TAgentesBusinessProcessorRules.GetCAUSA_BAJAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesCAUSA_BAJA]); +end; + +function TAgentesBusinessProcessorRules.GetOldCAUSA_BAJAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesCAUSA_BAJA]; +end; + +function TAgentesBusinessProcessorRules.GetOldCAUSA_BAJAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AgentesCAUSA_BAJA]); +end; + +procedure TAgentesBusinessProcessorRules.SetCAUSA_BAJAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesCAUSA_BAJA] := aValue; +end; + +procedure TAgentesBusinessProcessorRules.SetCAUSA_BAJAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AgentesCAUSA_BAJA] := Null; +end; + + +initialization + RegisterBusinessProcessorRules(RID_ContactosDelta, TContactosBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_GruposClienteDelta, TGruposClienteBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_DatosBancariosDelta, TDatosBancariosBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_ClientesDelta, TClientesBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_ProveedoresDelta, TProveedoresBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_EmpleadosDelta, TEmpleadosBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_DireccionesContactoDelta, TDireccionesContactoBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_ClientesDescuentosDelta, TClientesDescuentosBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_GruposProveedorDelta, TGruposProveedorBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_GruposEmpleadoDelta, TGruposEmpleadoBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_Contactos_RefreshDelta, TContactos_RefreshBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_ContratosEmpleadosDelta, TContratosEmpleadosBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_DescripcionesProveedoresDelta, TDescripcionesProveedoresBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_PersonalContactoDelta, TPersonalContactoBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_Agentes_ComisionesDelta, TAgentes_ComisionesBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_AgentesDelta, TAgentesBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Contactos/Model/uBizAgentesComisiones.dcu b/Source/Modulos/Contactos/Model/uBizAgentesComisiones.dcu new file mode 100644 index 0000000..d5eb72f Binary files /dev/null and b/Source/Modulos/Contactos/Model/uBizAgentesComisiones.dcu differ diff --git a/Source/Modulos/Contactos/Model/uBizAgentesComisiones.pas b/Source/Modulos/Contactos/Model/uBizAgentesComisiones.pas new file mode 100644 index 0000000..9e8bb79 --- /dev/null +++ b/Source/Modulos/Contactos/Model/uBizAgentesComisiones.pas @@ -0,0 +1,61 @@ +unit uBizAgentesComisiones; + +interface + +uses + uDAInterfaces, uDADataTable, + schContactosClient_Intf; + +const + BIZ_CLIENT_AGENTE_COMISIONES = 'Client.AgenteComisiones'; + +type + IBizAgentesComisiones = interface (IAgentes_Comisiones) + ['{B41B58A9-2CE3-45A2-9EA9-E8C2B72356BB}'] + end; + + TBizAgenteComisiones = class(TAgentes_ComisionesDataTableRules, IBizAgentesComisiones) + private + ContIdAux: Integer; + protected + procedure OnNewRecord(Sender: TDADataTable); override; + procedure BeforeInsert(Sender: TDADataTable); override; + public + constructor Create(aDataTable: TDADataTable); override; + end; + +implementation + +{ TBizAgenteComisiones } + +uses + DB; + +procedure TBizAgenteComisiones.BeforeInsert(Sender: TDADataTable); +var + AMasterTable : TDADataTable; +begin + inherited; + AMasterTable := DataTable.GetMasterDataTable; + if Assigned(AMasterTable) and (AMasterTable.State in dsEditModes) then + AMasterTable.Post; +end; + +constructor TBizAgenteComisiones.Create(aDataTable: TDADataTable); +begin + inherited; + ContIdAux := -1; +end; + +procedure TBizAgenteComisiones.OnNewRecord(Sender: TDADataTable); +begin + inherited; + ID := ContIdAux; // -1, -2, -3... + Dec(ContIdAux); +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_AGENTE_COMISIONES, TBizAgenteComisiones); + +end. + diff --git a/Source/Modulos/Contactos/Model/uBizAgentesServer.dcu b/Source/Modulos/Contactos/Model/uBizAgentesServer.dcu new file mode 100644 index 0000000..24d67d4 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uBizAgentesServer.dcu differ diff --git a/Source/Modulos/Contactos/Model/uBizAgentesServer.pas b/Source/Modulos/Contactos/Model/uBizAgentesServer.pas new file mode 100644 index 0000000..ea3947d --- /dev/null +++ b/Source/Modulos/Contactos/Model/uBizAgentesServer.pas @@ -0,0 +1,122 @@ +unit uBizAgentesServer; + +interface + +uses + schContactosServer_Intf, uDAInterfaces, uDADelta, + uDADataTable, uDABusinessProcessor, uBizContactosServer; + +const + BIZ_SERVER_AGENTE = 'Server.Agente'; + +type + TBizAgenteServer = class(TBizContactosServer) + protected + function DarReferenciaContacto : String; override; + function IncrementarReferenciaContacto : Boolean; override; + + procedure Insert_Datos_Contacto(aChange: TDADeltaChange); override; + procedure Update_Datos_Contacto(aChange: TDADeltaChange); override; + procedure Delete_Datos_Contacto(aChange: TDADeltaChange); override; + end; + +implementation + +uses + uDataModuleServer, uDAClasses, + schContactosClient_Intf, uBusinessUtils; + +const + REF_AGENTES = 'REF_AGENTES'; + +{ TBizAgenteServer } + +function TBizAgenteServer.DarReferenciaContacto: String; +begin + Result := _DarReferenciaInterna(REF_AGENTES) +end; + +procedure TBizAgenteServer.Delete_Datos_Contacto(aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + inherited; + + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + ACommand := ASchema.NewCommand(ACurrentConn, 'Delete_AgentesDatos'); + try + with ACommand do + begin + ParamByName('OLD_ID_EMPLEADO').Value := aChange.OldValueByName[fld_AgentesID]; + Execute; + end; + finally + ACommand := NIL; + end; +end; + +function TBizAgenteServer.IncrementarReferenciaContacto: Boolean; +begin + Result := _IncrementarReferenciaInterna(REF_AGENTES) +end; + +procedure TBizAgenteServer.Insert_Datos_Contacto(aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + inherited; + + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + ACommand := ASchema.NewCommand(ACurrentConn, 'Insert_AgentesDatos'); + try + with ACommand do + begin + ParamByName('ID_AGENTE').Value := aChange.NewValueByName[fld_AgentesID]; + ParamByName('FECHA_ALTA_EMPRESA').Value := aChange.NewValueByName[fld_AgentesFECHA_ALTA_EMPRESA]; + ParamByName('FECHA_BAJA').Value := aChange.NewValueByName[fld_AgentesFECHA_BAJA]; + ParamByName('CAUSA_BAJA').Value := aChange.NewValueByName[fld_AgentesCAUSA_BAJA]; + Execute; + end; + finally + ACommand := NIL; + end; +end; + +procedure TBizAgenteServer.Update_Datos_Contacto(aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + inherited; + + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + ACommand := ASchema.NewCommand(ACurrentConn, 'Update_AgentesDatos'); + try + with ACommand do + begin + ParamByName('OLD_ID_AGENTE').Value := aChange.OldValueByName[fld_AgentesID]; + ParamByName('FECHA_ALTA_EMPRESA').Value := aChange.NewValueByName[fld_AgentesFECHA_ALTA_EMPRESA]; + ParamByName('FECHA_BAJA').Value := aChange.NewValueByName[fld_AgentesFECHA_BAJA]; + ParamByName('CAUSA_BAJA').Value := aChange.NewValueByName[fld_AgentesCAUSA_BAJA]; + Execute; + end; + finally + ACommand := NIL; + end; +end; + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_AGENTE, TBizAgenteServer); + +end. diff --git a/Source/Modulos/Contactos/Model/uBizClientesDescuentos.dcu b/Source/Modulos/Contactos/Model/uBizClientesDescuentos.dcu new file mode 100644 index 0000000..82a0992 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uBizClientesDescuentos.dcu differ diff --git a/Source/Modulos/Contactos/Model/uBizClientesDescuentos.pas b/Source/Modulos/Contactos/Model/uBizClientesDescuentos.pas new file mode 100644 index 0000000..24870f8 --- /dev/null +++ b/Source/Modulos/Contactos/Model/uBizClientesDescuentos.pas @@ -0,0 +1,61 @@ +unit uBizClientesDescuentos; + +interface + +uses + uDAInterfaces, uDADataTable, + schContactosClient_Intf; + +const + BIZ_CLIENT_CLIENTE_DESCUENTOS = 'Client.ClienteDescuentos'; + +type + IBizClienteDescuentos = interface (IClientesDescuentos) + ['{41EF5532-D013-4976-BE23-6094E4C07CEF}'] + end; + + TBizClienteDescuentos = class(TClientesDescuentosDataTableRules, IBizClienteDescuentos) + private + ContIdAux: Integer; + protected + procedure OnNewRecord(Sender: TDADataTable); override; + procedure BeforeInsert(Sender: TDADataTable); override; + public + constructor Create(aDataTable: TDADataTable); override; + end; + +implementation + +{ TBizClienteDescuentos } + +uses + DB; + +procedure TBizClienteDescuentos.BeforeInsert(Sender: TDADataTable); +var + AMasterTable : TDADataTable; +begin + inherited; + AMasterTable := DataTable.GetMasterDataTable; + if Assigned(AMasterTable) and (AMasterTable.State in dsEditModes) then + AMasterTable.Post; +end; + +constructor TBizClienteDescuentos.Create(aDataTable: TDADataTable); +begin + inherited; + ContIdAux := -1; +end; + +procedure TBizClienteDescuentos.OnNewRecord(Sender: TDADataTable); +begin + inherited; + ID := ContIdAux; // -1, -2, -3... + Dec(ContIdAux); +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_CLIENTE_DESCUENTOS, TBizClienteDescuentos); + +end. + diff --git a/Source/Modulos/Contactos/Model/uBizClientesServer.dcu b/Source/Modulos/Contactos/Model/uBizClientesServer.dcu new file mode 100644 index 0000000..0c5538a Binary files /dev/null and b/Source/Modulos/Contactos/Model/uBizClientesServer.dcu differ diff --git a/Source/Modulos/Contactos/Model/uBizClientesServer.pas b/Source/Modulos/Contactos/Model/uBizClientesServer.pas new file mode 100644 index 0000000..4ba0eb1 --- /dev/null +++ b/Source/Modulos/Contactos/Model/uBizClientesServer.pas @@ -0,0 +1,156 @@ +unit uBizClientesServer; + +interface + +uses + schContactosServer_Intf, uDAInterfaces, uDADelta, + uDADataTable, uDABusinessProcessor, uBizContactosServer; + +const + BIZ_SERVER_CLIENTE = 'Server.Cliente'; + +type + TBizClienteServer = class(TBizContactosServer) + protected + function DarReferenciaContacto : String; override; + function IncrementarReferenciaContacto : Boolean; override; + + procedure Insert_Datos_Contacto(aChange: TDADeltaChange); override; + procedure Update_Datos_Contacto(aChange: TDADeltaChange); override; + procedure Delete_Datos_Contacto(aChange: TDADeltaChange); override; + end; + +implementation + +uses + uDataModuleServer, uDAClasses, + schContactosClient_Intf, uBusinessUtils; + +const + REF_CLIENTES = 'REF_CLIENTES'; + + +{ TBizClienteServer } + +function TBizClienteServer.DarReferenciaContacto: String; +begin + Result := _DarReferenciaInterna(REF_CLIENTES); +end; + +procedure TBizClienteServer.Delete_Datos_Contacto(aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + inherited; + + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + ACommand := ASchema.NewCommand(ACurrentConn, 'Delete_ClientesDatos'); + try + with ACommand do + begin + ParamByName('OLD_ID_CLIENTE').Value := aChange.OldValueByName[fld_ClientesID]; + Execute; + end; + finally + ACommand := NIL; + end; +end; + +function TBizClienteServer.IncrementarReferenciaContacto: Boolean; +begin + Result := _IncrementarReferenciaInterna(REF_CLIENTES) +end; + +procedure TBizClienteServer.Insert_Datos_Contacto(aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + inherited; + + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + ACommand := ASchema.NewCommand(ACurrentConn, 'Insert_ClientesDatos'); + try + with ACommand do + begin + ParamByName('ID_CLIENTE').Value := aChange.NewValueByName[fld_ClientesID]; + ParamByName('ID_AGENTE').Value := aChange.NewValueByName[fld_ClientesID_AGENTE]; + ParamByName('RAPEL').Value := aChange.NewValueByName[fld_ClientesRAPEL]; + ParamByName('EMAIL_ADMINISTRACION').Value := aChange.NewValueByName[fld_ClientesEMAIL_ADMINISTRACION]; + ParamByName('GRUPO_CLIENTE').Value := aChange.NewValueByName[fld_ClientesGRUPO_CLIENTE]; + ParamByName('NOMBRE_COMERCIAL').Value := aChange.NewValueByName[fld_ClientesNOMBRE_COMERCIAL]; + ParamByName('BLOQUEADO').Value := aChange.NewValueByName[fld_ClientesBLOQUEADO]; + ParamByName('MOTIVO_BLOQUEO').Value := aChange.NewValueByName[fld_ClientesMOTIVO_BLOQUEO]; + ParamByName('RECARGO_EQUIVALENCIA').Value := aChange.NewValueByName[fld_ClientesRECARGO_EQUIVALENCIA]; + ParamByName('REGIMEN_IVA').Value := aChange.NewValueByName[fld_ClientesREGIMEN_IVA]; + ParamByName('ID_TIPO_IVA').Value := aChange.NewValueByName[fld_ClientesID_TIPO_IVA]; + ParamByName('ID_FORMA_PAGO').Value := aChange.NewValueByName[fld_ClientesID_FORMA_PAGO]; + ParamByName('TIENDA_WEB').Value := aChange.NewValueByName[fld_ClientesTIENDA_WEB]; + ParamByName('CODIGO_ASIGNADO').Value := aChange.NewValueByName[fld_ClientesCODIGO_ASIGNADO]; + ParamByName('DESCUENTO').Value := aChange.NewValueByName[fld_ClientesDESCUENTO]; + ParamByName('VENCIMIENTO_FACTURAS_1').Value := aChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_1]; + ParamByName('VENCIMIENTO_FACTURAS_2').Value := aChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_2]; + ParamByName('VENCIMIENTO_FACTURAS_3').Value := aChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_3]; + ParamByName('FELICITACION').Value := aChange.NewValueByName[fld_ClientesFELICITACION]; + Execute; + end; + finally + ACommand := NIL; + end; +end; + + +procedure TBizClienteServer.Update_Datos_Contacto(aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + inherited; + + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + ACommand := ASchema.NewCommand(ACurrentConn, 'Update_ClientesDatos'); + try + with ACommand do + begin + ParamByName('OLD_ID_CLIENTE').Value := aChange.OldValueByName[fld_ClientesID]; + ParamByName('ID_CLIENTE').Value := aChange.NewValueByName[fld_ClientesID]; + ParamByName('ID_AGENTE').Value := aChange.NewValueByName[fld_ClientesID_AGENTE]; + ParamByName('RAPEL').Value := aChange.NewValueByName[fld_ClientesRAPEL]; + ParamByName('EMAIL_ADMINISTRACION').Value := aChange.NewValueByName[fld_ClientesEMAIL_ADMINISTRACION]; + ParamByName('GRUPO_CLIENTE').Value := aChange.NewValueByName[fld_ClientesGRUPO_CLIENTE]; + ParamByName('NOMBRE_COMERCIAL').Value := aChange.NewValueByName[fld_ClientesNOMBRE_COMERCIAL]; + ParamByName('BLOQUEADO').Value := aChange.NewValueByName[fld_ClientesBLOQUEADO]; + ParamByName('MOTIVO_BLOQUEO').Value := aChange.NewValueByName[fld_ClientesMOTIVO_BLOQUEO]; + ParamByName('RECARGO_EQUIVALENCIA').Value := aChange.NewValueByName[fld_ClientesRECARGO_EQUIVALENCIA]; + ParamByName('REGIMEN_IVA').Value := aChange.NewValueByName[fld_ClientesREGIMEN_IVA]; + ParamByName('ID_TIPO_IVA').Value := aChange.NewValueByName[fld_ClientesID_TIPO_IVA]; + ParamByName('ID_FORMA_PAGO').Value := aChange.NewValueByName[fld_ClientesID_FORMA_PAGO]; + ParamByName('TIENDA_WEB').Value := aChange.NewValueByName[fld_ClientesTIENDA_WEB]; + ParamByName('CODIGO_ASIGNADO').Value := aChange.NewValueByName[fld_ClientesCODIGO_ASIGNADO]; + ParamByName('DESCUENTO').Value := aChange.NewValueByName[fld_ClientesDESCUENTO]; + ParamByName('VENCIMIENTO_FACTURAS_1').Value := aChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_1]; + ParamByName('VENCIMIENTO_FACTURAS_2').Value := aChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_2]; + ParamByName('VENCIMIENTO_FACTURAS_3').Value := aChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_3]; + ParamByName('FELICITACION').Value := aChange.NewValueByName[fld_ClientesFELICITACION]; + + Execute; + end; + finally + ACommand := NIL; + end; +end; + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_CLIENTE, TBizClienteServer); + +end. diff --git a/Source/Modulos/Contactos/Model/uBizContactos.dcu b/Source/Modulos/Contactos/Model/uBizContactos.dcu new file mode 100644 index 0000000..91b3316 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uBizContactos.dcu differ diff --git a/Source/Modulos/Contactos/Model/uBizContactos.pas b/Source/Modulos/Contactos/Model/uBizContactos.pas new file mode 100644 index 0000000..1862f0f --- /dev/null +++ b/Source/Modulos/Contactos/Model/uBizContactos.pas @@ -0,0 +1,1054 @@ +unit uBizContactos; + +interface + +uses + uDAInterfaces, uDADataTable, uROClasses, + schContactosClient_Intf, uBizContactosDatosBancarios, uBizContactosPersonal, + uDBSelectionListUtils, uBizDireccionesContacto, uBizClientesDescuentos, + uBizAgentesComisiones; + +const + BIZ_CLIENT_CONTACTO = 'Client.Contacto'; + BIZ_CLIENT_CLIENTE = 'Client.Cliente'; + BIZ_CLIENT_PROVEEDOR = 'Client.Proveedor'; + BIZ_CLIENT_EMPLEADO = 'Client.Empleado'; + BIZ_CLIENT_AGENTE = 'Client.Agente'; + + CATEGORIA_CLIENTE = 1; + CATEGORIA_PROVEEDOR = 2; + CATEGORIA_AGENTE = 3; + CATEGORIA_EMPLEADO = 4; + + PROVEEDOR_REGIMEN_IVA = 'General'; + CLIENTE_REGIMEN_IVA = 'General'; + PROVEEDOR_DIAS_VENCIMIENTO = 20; + CLIENTE_DIAS_VENCIMIENTO = 15; + CLIENTE_RECARGO_EQUIVALENCIA = 0; + +type + IBizContacto = interface (IContactos) + ['{CD585680-26B6-47A4-B684-89C468670F4A}'] + procedure SetDatosBancarios(AValue : IBizContactosDatosBancarios); + function GetDatosBancarios : IBizContactosDatosBancarios; + property DatosBancarios : IBizContactosDatosBancarios read GetDatosBancarios + write SetDatosBancarios; + + procedure SetPersonal(AValue : IBizContactoPersonal); + function GetPersonal : IBizContactoPersonal; + property Personal : IBizContactoPersonal read GetPersonal + write SetPersonal; + + function GetCategoria : String; + property Categoria : String read GetCategoria; + + function GetDirecciones: IBizDireccionesContacto; + procedure SetDirecciones(const Value: IBizDireccionesContacto); + property Direcciones : IBizDireccionesContacto read GetDirecciones + write SetDirecciones; + + function EsNuevo : Boolean; + end; + + IBizCliente = interface (IBizContacto) + ['{EA48A6AA-AC96-4AD9-B383-F2FD4552EE76}'] + + function GetGRUPO_CLIENTEValue: String; + procedure SetGRUPO_CLIENTEValue(const aValue: String); + + function GetNOMBRE_COMERCIALValue: String; + procedure SetNOMBRE_COMERCIALValue(const aValue: String); + + function GetVENCIMIENTO_FACTURAS_1Value: Smallint; + procedure SetVENCIMIENTO_FACTURAS_1Value(const aValue: Smallint); + + function GetVENCIMIENTO_FACTURAS_2Value: Smallint; + procedure SetVENCIMIENTO_FACTURAS_2Value(const aValue: Smallint); + + function GetVENCIMIENTO_FACTURAS_3Value: Smallint; + procedure SetVENCIMIENTO_FACTURAS_3Value(const aValue: Smallint); + + function GetBLOQUEADOValue: Integer; + procedure SetBLOQUEADOValue(const aValue: Integer); + + function GetMOTIVO_BLOQUEOValue: String; + procedure SetMOTIVO_BLOQUEOValue(const aValue: String); + + function GetRECARGO_EQUIVALENCIAValue: Integer; + procedure SetRECARGO_EQUIVALENCIAValue(const aValue: Integer); + + function GetREGIMEN_IVAValue: String; + procedure SetREGIMEN_IVAValue(const aValue: String); + + function GetID_TIPO_IVAValue: Integer; + procedure SetID_TIPO_IVAValue(const aValue: Integer); + + function GetID_FORMA_PAGOValue: Integer; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); + + function GetTIENDA_WEBValue: Integer; + procedure SetTIENDA_WEBValue(const aValue: Integer); + + function GetDESCUENTOValue: Double; + procedure SetDESCUENTOValue(const aValue: Double); + + function GetDescuentos: IBizClienteDescuentos; + procedure SetDescuentos(Value: IBizClienteDescuentos); + property Descuentos: IBizClienteDescuentos read GetDescuentos write SetDescuentos; + + function GetFELICITACIONValue: Integer; + procedure SetFELICITACIONValue(const aValue: Integer); + + property GRUPO_CLIENTE: String read GetGRUPO_CLIENTEValue write SetGRUPO_CLIENTEValue; + property NOMBRE_COMERCIAL: String read GetNOMBRE_COMERCIALValue write SetNOMBRE_COMERCIALValue; + property VENCIMIENTO_FACTURAS_1: Smallint read GetVENCIMIENTO_FACTURAS_1Value write SetVENCIMIENTO_FACTURAS_1Value; + property VENCIMIENTO_FACTURAS_2: Smallint read GetVENCIMIENTO_FACTURAS_2Value write SetVENCIMIENTO_FACTURAS_2Value; + property VENCIMIENTO_FACTURAS_3: Smallint read GetVENCIMIENTO_FACTURAS_3Value write SetVENCIMIENTO_FACTURAS_3Value; + property BLOQUEADO: Integer read GetBLOQUEADOValue write SetBLOQUEADOValue; + property MOTIVO_BLOQUEO: String read GetMOTIVO_BLOQUEOValue write SetMOTIVO_BLOQUEOValue; + property RECARGO_EQUIVALENCIA: Integer read GetRECARGO_EQUIVALENCIAValue write SetRECARGO_EQUIVALENCIAValue; + property REGIMEN_IVA: String read GetREGIMEN_IVAValue write SetREGIMEN_IVAValue; + property ID_TIPO_IVA: Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property TIENDA_WEB: Integer read GetTIENDA_WEBValue write SetTIENDA_WEBValue; + property DESCUENTO: Double read GetDESCUENTOValue write SetDESCUENTOValue; + property FELICITACION: Integer read GetFELICITACIONValue write SetFELICITACIONValue; + end; + + IBizProveedor = interface (IBizContacto) + ['{0CC1FBB8-C2F1-4E10-87B9-D4EEB1221299}'] + function GetREGIMEN_IVAValue: String; + procedure SetREGIMEN_IVAValue(const aValue: String); + + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + + function GetDESCRIPCION_PROVEEDORValue: String; + procedure SetDESCRIPCION_PROVEEDORValue(const aValue: String); + + function GetCODIGO_ASIGNADOValue: String; + procedure SetCODIGO_ASIGNADOValue(const aValue: String); + + function GetID_TIPO_IVAValue: Integer; + procedure SetID_TIPO_IVAValue(const aValue: Integer); + + function GetID_FORMA_PAGOValue: Integer; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); + + function GetTIENDA_WEBValue: Integer; + procedure SetTIENDA_WEBValue(const aValue: Integer); + + function GetHOMOLOGADOValue: Integer; + procedure SetHOMOLOGADOValue(const aValue: Integer); + + function GetCERTIFICACIONValue: String; + procedure SetCERTIFICACIONValue(const aValue: String); + + function GetGRUPO_PROVEEDORValue: String; + procedure SetGRUPO_PROVEEDORValue(const aValue: String); + + function GetSUBCONTRATAValue: SmallInt; + procedure SetSUBCONTRATAValue(const aValue: SmallInt); + + function GetVENCIMIENTO_FACTURAS_1Value: Smallint; + function GetVENCIMIENTO_FACTURAS_2Value: Smallint; + + function GetVENCIMIENTO_FACTURAS_3Value: Smallint; + procedure SetVENCIMIENTO_FACTURAS_1Value(const Value: Smallint); + + procedure SetVENCIMIENTO_FACTURAS_2Value(const Value: Smallint); + procedure SetVENCIMIENTO_FACTURAS_3Value(const Value: Smallint); + + property REGIMEN_IVA: String read GetREGIMEN_IVAValue write SetREGIMEN_IVAValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCRIPCION_PROVEEDOR: String read GetDESCRIPCION_PROVEEDORValue write SetDESCRIPCION_PROVEEDORValue; + property CODIGO_ASIGNADO: String read GetCODIGO_ASIGNADOValue write SetCODIGO_ASIGNADOValue; + property ID_TIPO_IVA: Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property TIENDA_WEB: Integer read GetTIENDA_WEBValue write SetTIENDA_WEBValue; + property HOMOLOGADO: Integer read GetHOMOLOGADOValue write SetHOMOLOGADOValue; + property CERTIFICACION: String read GetCERTIFICACIONValue write SetCERTIFICACIONValue; + property GRUPO_PROVEEDOR: String read GetGRUPO_PROVEEDORValue write SetGRUPO_PROVEEDORValue; + property SUBCONTRATA: SmallInt read GetSUBCONTRATAValue write SetSUBCONTRATAValue; + property VENCIMIENTO_FACTURAS_1: Smallint read GetVENCIMIENTO_FACTURAS_1Value write SetVENCIMIENTO_FACTURAS_1Value; + property VENCIMIENTO_FACTURAS_2: Smallint read GetVENCIMIENTO_FACTURAS_2Value write SetVENCIMIENTO_FACTURAS_2Value; + property VENCIMIENTO_FACTURAS_3: Smallint read GetVENCIMIENTO_FACTURAS_3Value write SetVENCIMIENTO_FACTURAS_3Value; + end; + + IBizEmpleado = interface (IBizContacto) + ['{CA24021E-A227-47F9-815F-A8565DB0F748}'] + + function GetFECHA_NACIMIENTOValue: TDateTime; + procedure SetFECHA_NACIMIENTOValue(const aValue: TDateTime); + + function GetCATEGORIAValue: String; + procedure SetCATEGORIAValue(const aValue: String); + + function GetFECHA_ALTA_EMPRESAValue: TDateTime; + procedure SetFECHA_ALTA_EMPRESAValue(const aValue: TDateTime); + + function GetFORMACION_BASEValue: IROStrings; + procedure SetFORMACION_BASEValue(const aValue: IROStrings); + + function GetFORMACION_COMPLEValue: IROStrings; + procedure SetFORMACION_COMPLEValue(const aValue: IROStrings); + + function GetFORMACION_RECIBIDAValue: IROStrings; + procedure SetFORMACION_RECIBIDAValue(const aValue: IROStrings); + + function GetEXPERIENCIAValue: IROStrings; + procedure SetEXPERIENCIAValue(const aValue: IROStrings); + + function GetFECHA_BAJAValue: TDateTime; + procedure SetFECHA_BAJAValue(const aValue: TDateTime); + function GetFECHA_BAJAIsNull: Boolean; + procedure SetFECHA_BAJAIsNull(const aValue: Boolean); + + function GetCAUSA_BAJAValue: String; + procedure SetCAUSA_BAJAValue(const aValue: String); + + property FECHA_NACIMIENTO: TDateTime read GetFECHA_NACIMIENTOValue write SetFECHA_NACIMIENTOValue; + property CATEGORIA: String read GetCATEGORIAValue write SetCATEGORIAValue; + property FECHA_ALTA_EMPRESA: TDateTime read GetFECHA_ALTA_EMPRESAValue write SetFECHA_ALTA_EMPRESAValue; + + property FORMACION_BASE: IROStrings read GetFORMACION_BASEValue write SetFORMACION_BASEValue; + property FORMACION_COMPLE: IROStrings read GetFORMACION_COMPLEValue write SetFORMACION_COMPLEValue; + property FORMACION_RECIBIDA: IROStrings read GetFORMACION_RECIBIDAValue write SetFORMACION_RECIBIDAValue; + property EXPERIENCIA: IROStrings read GetEXPERIENCIAValue write SetEXPERIENCIAValue; + property FECHA_BAJA: TDateTime read GetFECHA_BAJAValue write SetFECHA_BAJAValue; + property FECHA_BAJAIsNull: Boolean read GetFECHA_BAJAIsNull write SetFECHA_BAJAIsNull; + property CAUSA_BAJA: String read GetCAUSA_BAJAValue write SetCAUSA_BAJAValue; + end; + + IBizAgente = interface (IBizContacto) + ['{D368B520-6C21-45F9-A8A1-DA76A4122537}'] + function GetComisiones: IBizAgentesComisiones; + procedure SetComisiones(Value: IBizAgentesComisiones); + property Comisiones: IBizAgentesComisiones read GetComisiones write SetComisiones; + end; + + + TBizContacto = class(TContactosDataTableRules, IBizContacto, ISeleccionable) + protected + FDatosBancarios : IBizContactosDatosBancarios; + FDatosBancariosLink : TDADataSource; + FDirecciones : IBizDireccionesContacto; + FDireccionesLink : TDADataSource; + FPersonal : IBizContactoPersonal; + FPersonalLink : TDADataSource; + + FSeleccionableInterface : ISeleccionable; + + procedure SetDatosBancarios(AValue : IBizContactosDatosBancarios); + function GetDatosBancarios : IBizContactosDatosBancarios; + + function GetDirecciones: IBizDireccionesContacto; + procedure SetDirecciones(const Value: IBizDireccionesContacto); + + function GetCategoria : String; + + procedure SetPersonal(AValue : IBizContactoPersonal); + function GetPersonal : IBizContactoPersonal; + + procedure OnNewRecord(Sender: TDADataTable); override; + public + function EsNuevo : Boolean; + procedure IniciarValoresContactoNuevo; virtual; + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + property Categoria : String read GetCategoria; + + property Personal : IBizContactoPersonal read GetPersonal + write SetPersonal; + + property DatosBancarios : IBizContactosDatosBancarios read GetDatosBancarios + write SetDatosBancarios; + + property Direcciones : IBizDireccionesContacto read GetDirecciones + write SetDirecciones; + + property SeleccionableInterface : ISeleccionable read FSeleccionableInterface + write FSeleccionableInterface implements ISeleccionable; + end; + + + TBizCliente = class(TBizContacto, IBizCliente) + protected + FDescuentos : IBizClienteDescuentos; + FDescuentosLink : TDADataSource; + + function GetGRUPO_CLIENTEValue: String; + procedure SetGRUPO_CLIENTEValue(const aValue: String); + + function GetNOMBRE_COMERCIALValue: String; + procedure SetNOMBRE_COMERCIALValue(const aValue: String); + + function GetVENCIMIENTO_FACTURAS_1Value: Smallint; + procedure SetVENCIMIENTO_FACTURAS_1Value(const aValue: Smallint); + + function GetVENCIMIENTO_FACTURAS_2Value: Smallint; + procedure SetVENCIMIENTO_FACTURAS_2Value(const aValue: Smallint); + + function GetVENCIMIENTO_FACTURAS_3Value: Smallint; + procedure SetVENCIMIENTO_FACTURAS_3Value(const aValue: Smallint); + + function GetBLOQUEADOValue: Integer; + procedure SetBLOQUEADOValue(const aValue: Integer); + + function GetMOTIVO_BLOQUEOValue: String; + procedure SetMOTIVO_BLOQUEOValue(const aValue: String); + + function GetRECARGO_EQUIVALENCIAValue: Integer; + procedure SetRECARGO_EQUIVALENCIAValue(const aValue: Integer); + + function GetREGIMEN_IVAValue: String; + procedure SetREGIMEN_IVAValue(const aValue: String); + + function GetID_TIPO_IVAValue: Integer; + procedure SetID_TIPO_IVAValue(const aValue: Integer); + + function GetID_FORMA_PAGOValue: Integer; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); + + function GetTIENDA_WEBValue: Integer; + procedure SetTIENDA_WEBValue(const aValue: Integer); + + function GetDESCUENTOValue: Double; + procedure SetDESCUENTOValue(const aValue: Double); + + function GetDescuentos: IBizClienteDescuentos; + procedure SetDescuentos(Value: IBizClienteDescuentos); + + function GetFELICITACIONValue: Integer; + procedure SetFELICITACIONValue(const aValue: Integer); + public + procedure IniciarValoresContactoNuevo; override; + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + property Descuentos: IBizClienteDescuentos read GetDescuentos write SetDescuentos; + property GRUPO_CLIENTE: String read GetGRUPO_CLIENTEValue write SetGRUPO_CLIENTEValue; + property NOMBRE_COMERCIAL: String read GetNOMBRE_COMERCIALValue write SetNOMBRE_COMERCIALValue; + property VENCIMIENTO_FACTURAS_1: Smallint read GetVENCIMIENTO_FACTURAS_1Value write SetVENCIMIENTO_FACTURAS_1Value; + property VENCIMIENTO_FACTURAS_2: Smallint read GetVENCIMIENTO_FACTURAS_2Value write SetVENCIMIENTO_FACTURAS_2Value; + property VENCIMIENTO_FACTURAS_3: Smallint read GetVENCIMIENTO_FACTURAS_3Value write SetVENCIMIENTO_FACTURAS_3Value; + property BLOQUEADO: Integer read GetBLOQUEADOValue write SetBLOQUEADOValue; + property MOTIVO_BLOQUEO: String read GetMOTIVO_BLOQUEOValue write SetMOTIVO_BLOQUEOValue; + property RECARGO_EQUIVALENCIA: Integer read GetRECARGO_EQUIVALENCIAValue write SetRECARGO_EQUIVALENCIAValue; + property REGIMEN_IVA: String read GetREGIMEN_IVAValue write SetREGIMEN_IVAValue; + property ID_TIPO_IVA: Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property TIENDA_WEB: Integer read GetTIENDA_WEBValue write SetTIENDA_WEBValue; + property DESCUENTO: Double read GetDESCUENTOValue write SetDESCUENTOValue; + property FELICITACION: Integer read GetFELICITACIONValue write SetFELICITACIONValue; + end; + + + TBizProveedor = class(TBizContacto, IBizProveedor) + protected + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + + function GetDESCRIPCION_PROVEEDORValue: String; + procedure SetDESCRIPCION_PROVEEDORValue(const aValue: String); + + function GetCODIGO_ASIGNADOValue: String; + procedure SetCODIGO_ASIGNADOValue(const aValue: String); + + function GetREGIMEN_IVAValue: String; + procedure SetREGIMEN_IVAValue(const aValue: String); + + function GetID_TIPO_IVAValue: Integer; + procedure SetID_TIPO_IVAValue(const aValue: Integer); + + function GetTIENDA_WEBValue: Integer; + procedure SetTIENDA_WEBValue(const aValue: Integer); + + function GetID_FORMA_PAGOValue: Integer; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); + + function GetHOMOLOGADOValue: Integer; + procedure SetHOMOLOGADOValue(const aValue: Integer); + + function GetCERTIFICACIONValue: String; + procedure SetCERTIFICACIONValue(const aValue: String); + + function GetGRUPO_PROVEEDORValue: String; + procedure SetGRUPO_PROVEEDORValue(const aValue: String); + + function GetSUBCONTRATAValue: SmallInt; + procedure SetSUBCONTRATAValue(const aValue: SmallInt); + + function GetVENCIMIENTO_FACTURAS_1Value: Smallint; + function GetVENCIMIENTO_FACTURAS_2Value: Smallint; + function GetVENCIMIENTO_FACTURAS_3Value: Smallint; + + procedure SetVENCIMIENTO_FACTURAS_1Value(const Value: Smallint); + procedure SetVENCIMIENTO_FACTURAS_2Value(const Value: Smallint); + procedure SetVENCIMIENTO_FACTURAS_3Value(const Value: Smallint); + + public + procedure IniciarValoresContactoNuevo; override; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCRIPCION_PROVEEDOR: String read GetDESCRIPCION_PROVEEDORValue write SetDESCRIPCION_PROVEEDORValue; + property CODIGO_ASIGNADO: String read GetCODIGO_ASIGNADOValue write SetCODIGO_ASIGNADOValue; + property REGIMEN_IVA: String read GetREGIMEN_IVAValue write SetREGIMEN_IVAValue; + property ID_TIPO_IVA: Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property TIENDA_WEB: Integer read GetTIENDA_WEBValue write SetTIENDA_WEBValue; + property HOMOLOGADO: Integer read GetHOMOLOGADOValue write SetHOMOLOGADOValue; + property CERTIFICACION: String read GetCERTIFICACIONValue write SetCERTIFICACIONValue; + property GRUPO_PROVEEDOR: String read GetGRUPO_PROVEEDORValue write SetGRUPO_PROVEEDORValue; + property SUBCONTRATA: SmallInt read GetSUBCONTRATAValue write SetSUBCONTRATAValue; + property VENCIMIENTO_FACTURAS_1: Smallint read GetVENCIMIENTO_FACTURAS_1Value write SetVENCIMIENTO_FACTURAS_1Value; + property VENCIMIENTO_FACTURAS_2: Smallint read GetVENCIMIENTO_FACTURAS_2Value write SetVENCIMIENTO_FACTURAS_2Value; + property VENCIMIENTO_FACTURAS_3: Smallint read GetVENCIMIENTO_FACTURAS_3Value write SetVENCIMIENTO_FACTURAS_3Value; + end; + + + TBizEmpleado = class(TBizContacto, IBizEmpleado) + protected + function GetFECHA_NACIMIENTOValue: TDateTime; + procedure SetFECHA_NACIMIENTOValue(const aValue: TDateTime); + + function GetCATEGORIAValue: String; + procedure SetCATEGORIAValue(const aValue: String); + + function GetFECHA_ALTA_EMPRESAValue: TDateTime; + procedure SetFECHA_ALTA_EMPRESAValue(const aValue: TDateTime); + + function GetFORMACION_BASEValue: IROStrings; + procedure SetFORMACION_BASEValue(const aValue: IROStrings); + + function GetFORMACION_COMPLEValue: IROStrings; + procedure SetFORMACION_COMPLEValue(const aValue: IROStrings); + + function GetFORMACION_RECIBIDAValue: IROStrings; + procedure SetFORMACION_RECIBIDAValue(const aValue: IROStrings); + + function GetEXPERIENCIAValue: IROStrings; + procedure SetEXPERIENCIAValue(const aValue: IROStrings); + + function GetFECHA_BAJAValue: TDateTime; + procedure SetFECHA_BAJAValue(const aValue: TDateTime); + function GetFECHA_BAJAIsNull: Boolean; + procedure SetFECHA_BAJAIsNull(const aValue: Boolean); + + function GetCAUSA_BAJAValue: String; + procedure SetCAUSA_BAJAValue(const aValue: String); + + public + property FECHA_NACIMIENTO: TDateTime read GetFECHA_NACIMIENTOValue write SetFECHA_NACIMIENTOValue; + property CATEGORIA: String read GetCATEGORIAValue write SetCATEGORIAValue; + property FECHA_ALTA_EMPRESA: TDateTime read GetFECHA_ALTA_EMPRESAValue write SetFECHA_ALTA_EMPRESAValue; + + property FORMACION_BASE: IROStrings read GetFORMACION_BASEValue write SetFORMACION_BASEValue; + property FORMACION_COMPLE: IROStrings read GetFORMACION_COMPLEValue write SetFORMACION_COMPLEValue; + property FORMACION_RECIBIDA: IROStrings read GetFORMACION_RECIBIDAValue write SetFORMACION_RECIBIDAValue; + property EXPERIENCIA: IROStrings read GetEXPERIENCIAValue write SetEXPERIENCIAValue; + property FECHA_BAJA: TDateTime read GetFECHA_BAJAValue write SetFECHA_BAJAValue; + property FECHA_BAJAIsNull: Boolean read GetFECHA_BAJAIsNull write SetFECHA_BAJAIsNull; + property CAUSA_BAJA: String read GetCAUSA_BAJAValue write SetCAUSA_BAJAValue; + procedure IniciarValoresContactoNuevo; override; + end; + + TBizAgente = class(TBizContacto, IBizAgente) + protected + FComisiones : IBizAgentesComisiones; + FComisionesLink : TDADataSource; + function GetComisiones: IBizAgentesComisiones; + procedure SetComisiones(Value: IBizAgentesComisiones); + public + procedure IniciarValoresContactoNuevo; override; + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + property Comisiones: IBizAgentesComisiones read GetComisiones write SetComisiones; + end; + +implementation + +uses + uDataTableUtils, Classes, DateUtils, SysUtils, uFactuGES_App, Variants; + +{ TBizContacto } + +constructor TBizContacto.Create(aDataTable: TDADataTable); +begin + inherited; + FDatosBancariosLink := TDADataSource.Create(NIL); + FDatosBancariosLink.DataTable := aDataTable; + + FDireccionesLink := TDADataSource.Create(NIL); + FDireccionesLink.DataTable := aDataTable; + + FPersonalLink := TDADataSource.Create(NIL); + FPersonalLink.DataTable := aDataTable; + + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +destructor TBizContacto.Destroy; +begin + FDatosBancarios := NIL; + FDatosBancariosLink.Free; + + FDirecciones := NIL; + FDireccionesLink.Free; + + FPersonal := NIL; + FPersonalLink.Free; + + FSeleccionableInterface := NIL; + inherited; +end; + +function TBizContacto.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +function TBizContacto.GetCategoria: String; +begin + case ID_CATEGORIA of + 1 : Result := 'Cliente'; + 2 : Result := 'Proveedor'; +// 3 : Result := 'Empleado'; + 3 : Result := 'Agente'; + end; +end; + +function TBizContacto.GetDatosBancarios: IBizContactosDatosBancarios; +begin + Result := FDatosBancarios; +end; + +function TBizContacto.GetDirecciones: IBizDireccionesContacto; +begin + Result := FDirecciones; +end; + +function TBizContacto.GetPersonal: IBizContactoPersonal; +begin + Result := FPersonal; +end; + +procedure TBizContacto.IniciarValoresContactoNuevo; +begin + USUARIO := AppFactuGES.UsuarioActivo.UserName; +end; + +procedure TBizContacto.OnNewRecord(Sender: TDADataTable); +begin + inherited; + ID := GetRecNo; // -1, -2, -3... + IniciarValoresContactoNuevo; +end; + +procedure TBizContacto.SetDatosBancarios(AValue: IBizContactosDatosBancarios); +begin + FDatosBancarios := AValue; + EnlazarMaestroDetalle(FDatosBancariosLink, FDatosBancarios); +end; + +procedure TBizContacto.SetDirecciones(const Value: IBizDireccionesContacto); +begin + FDirecciones := Value; + EnlazarMaestroDetalle(FDireccionesLink, FDirecciones); +end; + + +procedure TBizContacto.SetPersonal(AValue: IBizContactoPersonal); +begin + FPersonal := AValue; + EnlazarMaestroDetalle(FPersonalLink, FPersonal); +end; + +{ TBizCliente } + +constructor TBizCliente.Create(aDataTable: TDADataTable); +begin + inherited; + FDescuentos := NIL; + FDescuentosLink := TDADataSource.Create(NIL); + FDescuentosLink.DataTable := aDataTable; +end; + +destructor TBizCliente.Destroy; +begin + FDescuentos := NIL; + FreeAndNIL(FDescuentosLink); + inherited; +end; + +function TBizCliente.GetBLOQUEADOValue: Integer; +begin + result := DataTable.Fields[idx_ClientesBLOQUEADO].AsInteger; +end; + +function TBizCliente.GetDescuentos: IBizClienteDescuentos; +begin + Result := FDescuentos; +end; + +function TBizCliente.GetDESCUENTOValue: Double; +begin + result := DataTable.Fields[idx_ClientesDESCUENTO].AsFloat; +end; + +function TBizCliente.GetFELICITACIONValue: Integer; +begin + result := DataTable.Fields[idx_ClientesFELICITACION].AsInteger; +end; + +function TBizCliente.GetGRUPO_CLIENTEValue: String; +begin + result := DataTable.Fields[idx_ClientesGRUPO_CLIENTE].AsString; +end; + +function TBizCliente.GetID_FORMA_PAGOValue: Integer; +begin + result := DataTable.Fields[idx_ClientesID_FORMA_PAGO].AsInteger; +end; + +function TBizCliente.GetID_TIPO_IVAValue: Integer; +begin + result := DataTable.Fields[idx_ClientesID_TIPO_IVA].AsInteger; +end; + +function TBizCliente.GetMOTIVO_BLOQUEOValue: String; +begin + result := DataTable.Fields[idx_ClientesMOTIVO_BLOQUEO].AsString; +end; + +function TBizCliente.GetNOMBRE_COMERCIALValue: String; +begin + result := DataTable.Fields[idx_ClientesNOMBRE_COMERCIAL].AsString; +end; + +procedure TBizCliente.SetBLOQUEADOValue(const aValue: Integer); +begin + DataTable.Fields[idx_ClientesBLOQUEADO].AsInteger := aValue; +end; + +procedure TBizCliente.SetDescuentos(Value: IBizClienteDescuentos); +begin + FDescuentos := Value; + EnlazarMaestroDetalle(FDescuentosLink, FDescuentos); +end; + +procedure TBizCliente.SetDESCUENTOValue(const aValue: Double); +begin + DataTable.Fields[idx_ClientesDESCUENTO].AsFloat := aValue; +end; + +procedure TBizCliente.SetFELICITACIONValue(const aValue: Integer); +begin + DataTable.Fields[idx_ClientesFELICITACION].AsInteger := aValue; +end; + +procedure TBizCliente.SetGRUPO_CLIENTEValue(const aValue: String); +begin + DataTable.Fields[idx_ClientesGRUPO_CLIENTE].AsString := aValue; +end; + +procedure TBizCliente.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + DataTable.Fields[idx_ClientesID_FORMA_PAGO].AsInteger := aValue; +end; + +procedure TBizCliente.SetID_TIPO_IVAValue(const aValue: Integer); +begin + DataTable.Fields[idx_ClientesID_TIPO_IVA].AsInteger := aValue; +end; + +procedure TBizCliente.SetMOTIVO_BLOQUEOValue(const aValue: String); +begin + DataTable.Fields[idx_ClientesMOTIVO_BLOQUEO].AsString := aValue; +end; + +procedure TBizCliente.SetNOMBRE_COMERCIALValue(const aValue: String); +begin + DataTable.Fields[idx_ClientesNOMBRE_COMERCIAL].AsString := aValue; +end; + +function TBizCliente.GetRECARGO_EQUIVALENCIAValue: Integer; +begin + Result := DataTable.Fields[idx_ClientesRECARGO_EQUIVALENCIA].AsInteger; +end; + +function TBizCliente.GetREGIMEN_IVAValue: String; +begin + Result := DataTable.Fields[idx_ClientesREGIMEN_IVA].AsString; +end; + +function TBizCliente.GetTIENDA_WEBValue: Integer; +begin + result := DataTable.Fields[idx_ClientesTIENDA_WEB].AsInteger; +end; + +function TBizCliente.GetVENCIMIENTO_FACTURAS_1Value: SmallInt; +begin + result := DataTable.Fields[idx_ClientesVENCIMIENTO_FACTURAS_1].AsSmallInt; +end; + +function TBizCliente.GetVENCIMIENTO_FACTURAS_2Value: SmallInt; +begin + result := DataTable.Fields[idx_ClientesVENCIMIENTO_FACTURAS_2].AsSmallInt; +end; + +function TBizCliente.GetVENCIMIENTO_FACTURAS_3Value: SmallInt; +begin + result := DataTable.Fields[idx_ClientesVENCIMIENTO_FACTURAS_3].AsSmallInt; +end; + +procedure TBizCliente.SetRECARGO_EQUIVALENCIAValue(const aValue: Integer); +begin + DataTable.Fields[idx_ClientesRECARGO_EQUIVALENCIA].AsInteger := aValue; +end; + +procedure TBizCliente.SetREGIMEN_IVAValue(const aValue: String); +begin + DataTable.Fields[idx_ClientesREGIMEN_IVA].AsString := aValue; +end; + +procedure TBizCliente.SetTIENDA_WEBValue(const aValue: Integer); +begin + DataTable.Fields[idx_ClientesTIENDA_WEB].AsInteger := aValue; +end; + +procedure TBizCliente.SetVENCIMIENTO_FACTURAS_1Value(const aValue: SmallInt); +begin + DataTable.Fields[idx_ClientesVENCIMIENTO_FACTURAS_1].AsSmallInt := aValue; +end; + +procedure TBizCliente.SetVENCIMIENTO_FACTURAS_2Value(const aValue: SmallInt); +begin + DataTable.Fields[idx_ClientesVENCIMIENTO_FACTURAS_2].AsSmallInt := aValue; +end; + +procedure TBizCliente.SetVENCIMIENTO_FACTURAS_3Value(const aValue: SmallInt); +begin + DataTable.Fields[idx_ClientesVENCIMIENTO_FACTURAS_3].AsSmallInt := aValue; +end; + +procedure TBizCliente.IniciarValoresContactoNuevo; +begin + inherited; + ID_CATEGORIA := CATEGORIA_CLIENTE; + BLOQUEADO := 0; + FELICITACION := 0; + RECARGO_EQUIVALENCIA := CLIENTE_RECARGO_EQUIVALENCIA; + REGIMEN_IVA := CLIENTE_REGIMEN_IVA; + ID_FORMA_PAGO := AppFactuGES.EmpresaActiva.ID_FORMA_PAGO; + ID_TIPO_IVA := AppFactuGES.EmpresaActiva.ID_TIPO_IVA; +end; + +{ TBizProveedor } + +function TBizProveedor.GetGRUPO_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_ProveedoresGRUPO_PROVEEDOR].AsString; +end; + +function TBizProveedor.GetHOMOLOGADOValue: Integer; +begin + result := DataTable.Fields[idx_ProveedoresHOMOLOGADO].AsInteger; +end; + +function TBizProveedor.GetID_FORMA_PAGOValue: Integer; +begin + result := DataTable.Fields[idx_ProveedoresID_FORMA_PAGO].AsInteger; +end; + +function TBizProveedor.GetID_TIPO_IVAValue: Integer; +begin + result := DataTable.Fields[idx_ProveedoresID_TIPO_IVA].AsInteger; +end; + +function TBizProveedor.GetREGIMEN_IVAValue: String; +begin + result := DataTable.Fields[idx_ProveedoresREGIMEN_IVA].AsString; +end; + +function TBizProveedor.GetSUBCONTRATAValue: SmallInt; +begin + result := DataTable.Fields[idx_ProveedoresSUBCONTRATA].AsSmallInt; +end; + +function TBizProveedor.GetTIENDA_WEBValue: Integer; +begin + result := DataTable.Fields[idx_ProveedoresTIENDA_WEB].AsInteger; +end; + +function TBizProveedor.GetVENCIMIENTO_FACTURAS_1Value: Smallint; +begin + result := DataTable.Fields[idx_ProveedoresVENCIMIENTO_FACTURAS_1].AsSmallInt; +end; + +function TBizProveedor.GetVENCIMIENTO_FACTURAS_2Value: Smallint; +begin + result := DataTable.Fields[idx_ProveedoresVENCIMIENTO_FACTURAS_2].AsSmallInt; +end; + +function TBizProveedor.GetVENCIMIENTO_FACTURAS_3Value: Smallint; +begin + result := DataTable.Fields[idx_ProveedoresVENCIMIENTO_FACTURAS_3].AsSmallInt; +end; + +procedure TBizProveedor.IniciarValoresContactoNuevo; +begin + inherited; + ID_CATEGORIA := CATEGORIA_PROVEEDOR; + REGIMEN_IVA := PROVEEDOR_REGIMEN_IVA; + VENCIMIENTO_FACTURAS_1 := PROVEEDOR_DIAS_VENCIMIENTO; + ID_FORMA_PAGO := AppFactuGES.EmpresaActiva.ID_FORMA_PAGO; + ID_TIPO_IVA := AppFactuGES.EmpresaActiva.ID_TIPO_IVA; +end; + +function TBizProveedor.GetCERTIFICACIONValue: String; +begin + result := DataTable.Fields[idx_ProveedoresCERTIFICACION].AsString; +end; + +function TBizProveedor.GetCODIGO_ASIGNADOValue: String; +begin + result := DataTable.Fields[idx_ProveedoresCODIGO_ASIGNADO].AsString; +end; + +function TBizProveedor.GetDESCRIPCION_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_ProveedoresDESCRIPCION_PROVEEDOR].AsString; +end; + +function TBizProveedor.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_ProveedoresDESCUENTO].AsFloat; +end; + +procedure TBizProveedor.SetCERTIFICACIONValue(const aValue: String); +begin + DataTable.Fields[idx_ProveedoresCERTIFICACION].AsString := aValue; +end; + +procedure TBizProveedor.SetCODIGO_ASIGNADOValue(const aValue: String); +begin + DataTable.Fields[idx_ProveedoresCODIGO_ASIGNADO].AsString := aValue; +end; + +procedure TBizProveedor.SetDESCRIPCION_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_ProveedoresDESCRIPCION_PROVEEDOR].AsString := aValue; +end; + +procedure TBizProveedor.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_ProveedoresDESCUENTO].AsFloat := aValue; +end; + +procedure TBizProveedor.SetGRUPO_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_ProveedoresGRUPO_PROVEEDOR].AsString := aValue; +end; + +procedure TBizProveedor.SetHOMOLOGADOValue(const aValue: Integer); +begin + DataTable.Fields[idx_ProveedoresHOMOLOGADO].AsInteger := aValue; +end; + +procedure TBizProveedor.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + DataTable.Fields[idx_ProveedoresID_FORMA_PAGO].AsInteger := aValue; +end; + +procedure TBizProveedor.SetID_TIPO_IVAValue(const aValue: Integer); +begin + DataTable.Fields[idx_ProveedoresID_TIPO_IVA].AsInteger := aValue; +end; + +procedure TBizProveedor.SetREGIMEN_IVAValue(const aValue: String); +begin + DataTable.Fields[idx_ProveedoresREGIMEN_IVA].AsString := aValue; +end; + +procedure TBizProveedor.SetSUBCONTRATAValue(const aValue: SmallInt); +begin + DataTable.Fields[idx_ProveedoresSUBCONTRATA].AsSmallInt := aValue; +end; + +procedure TBizProveedor.SetTIENDA_WEBValue(const aValue: Integer); +begin + DataTable.Fields[idx_ProveedoresTIENDA_WEB].AsInteger := aValue; +end; + +procedure TBizProveedor.SetVENCIMIENTO_FACTURAS_1Value(const Value: Smallint); +begin + DataTable.Fields[idx_ProveedoresVENCIMIENTO_FACTURAS_1].AsSmallInt := Value; +end; + +procedure TBizProveedor.SetVENCIMIENTO_FACTURAS_2Value(const Value: Smallint); +begin + DataTable.Fields[idx_ProveedoresVENCIMIENTO_FACTURAS_2].AsSmallInt := Value; +end; + +procedure TBizProveedor.SetVENCIMIENTO_FACTURAS_3Value(const Value: Smallint); +begin + DataTable.Fields[idx_ProveedoresVENCIMIENTO_FACTURAS_3].AsSmallInt := Value; +end; + +{ TBizEmpleado } + +function TBizEmpleado.GetCATEGORIAValue: String; +begin + result := DataTable.Fields[idx_EmpleadosCATEGORIA].AsString; +end; + +function TBizEmpleado.GetCAUSA_BAJAValue: String; +begin + result := DataTable.Fields[idx_EmpleadosCAUSA_BAJA].AsString; +end; + +function TBizEmpleado.GetEXPERIENCIAValue: IROStrings; +begin + result := NewROStrings(); + result.Text := DataTable.Fields[idx_EmpleadosEXPERIENCIA].AsString; +end; + +function TBizEmpleado.GetFECHA_ALTA_EMPRESAValue: TDateTime; +begin + result := DataTable.Fields[idx_EmpleadosFECHA_ALTA_EMPRESA].AsDateTime; +end; + +function TBizEmpleado.GetFECHA_BAJAIsNull: Boolean; +begin + result := DataTable.Fields[idx_EmpleadosFECHA_BAJA].IsNull; +end; + +function TBizEmpleado.GetFECHA_BAJAValue: TDateTime; +begin + result := DataTable.Fields[idx_EmpleadosFECHA_BAJA].AsDateTime; +end; + +function TBizEmpleado.GetFECHA_NACIMIENTOValue: TDateTime; +begin + result := DataTable.Fields[idx_EmpleadosFECHA_NACIMIENTO].AsDateTime; +end; + +function TBizEmpleado.GetFORMACION_BASEValue: IROStrings; +begin + result := NewROStrings(); + result.Text := DataTable.Fields[idx_EmpleadosFORMACION_BASE].AsString; +end; + +function TBizEmpleado.GetFORMACION_COMPLEValue: IROStrings; +begin + result := NewROStrings(); + result.Text := DataTable.Fields[idx_EmpleadosFORMACION_COMPLE].AsString; +end; + +function TBizEmpleado.GetFORMACION_RECIBIDAValue: IROStrings; +begin + result := NewROStrings(); + result.Text := DataTable.Fields[idx_EmpleadosFORMACION_RECIBIDA].AsString; +end; + +procedure TBizEmpleado.IniciarValoresContactoNuevo; +begin + inherited; + ID_CATEGORIA := CATEGORIA_EMPLEADO; +end; + +procedure TBizEmpleado.SetCATEGORIAValue(const aValue: String); +begin + DataTable.Fields[idx_EmpleadosCATEGORIA].AsString := aValue; +end; + +procedure TBizEmpleado.SetCAUSA_BAJAValue(const aValue: String); +begin + DataTable.Fields[idx_EmpleadosCAUSA_BAJA].AsString := aValue; +end; + +procedure TBizEmpleado.SetEXPERIENCIAValue(const aValue: IROStrings); +begin + DataTable.Fields[idx_EmpleadosEXPERIENCIA].AsString := aValue.Text; +end; + +procedure TBizEmpleado.SetFECHA_ALTA_EMPRESAValue(const aValue: TDateTime); +begin + DataTable.Fields[idx_EmpleadosFECHA_ALTA_EMPRESA].AsDateTime := aValue; +end; + +procedure TBizEmpleado.SetFECHA_BAJAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpleadosFECHA_BAJA].AsVariant := Null; +end; + +procedure TBizEmpleado.SetFECHA_BAJAValue(const aValue: TDateTime); +begin + DataTable.Fields[idx_EmpleadosFECHA_BAJA].AsDateTime := aValue; +end; + +procedure TBizEmpleado.SetFECHA_NACIMIENTOValue(const aValue: TDateTime); +begin + DataTable.Fields[idx_EmpleadosFECHA_NACIMIENTO].AsDateTime := aValue; +end; + +procedure TBizEmpleado.SetFORMACION_BASEValue(const aValue: IROStrings); +begin + DataTable.Fields[idx_EmpleadosFORMACION_BASE].AsString := aValue.Text; +end; + +procedure TBizEmpleado.SetFORMACION_COMPLEValue(const aValue: IROStrings); +begin + DataTable.Fields[idx_EmpleadosFORMACION_COMPLE].AsString := aValue.Text; +end; + +procedure TBizEmpleado.SetFORMACION_RECIBIDAValue(const aValue: IROStrings); +begin + DataTable.Fields[idx_EmpleadosFORMACION_RECIBIDA].AsString := aValue.Text; +end; + +{ TBizAgente } + +constructor TBizAgente.Create(aDataTable: TDADataTable); +begin + inherited; + FComisiones := NIL; + FComisionesLink := TDADataSource.Create(NIL); + FComisionesLink.DataTable := aDataTable; +end; + +destructor TBizAgente.Destroy; +begin + FComisiones := NIL; + FreeAndNIL(FComisionesLink); + inherited; +end; + +function TBizAgente.GetComisiones: IBizAgentesComisiones; +begin + Result := FComisiones; +end; + +procedure TBizAgente.IniciarValoresContactoNuevo; +begin + inherited; + ID_CATEGORIA := CATEGORIA_AGENTE; +end; + +procedure TBizAgente.SetComisiones(Value: IBizAgentesComisiones); +begin + FComisiones := Value; + EnlazarMaestroDetalle(FComisionesLink, FComisiones); +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_CONTACTO, TBizContacto); + + RegisterDataTableRules(BIZ_CLIENT_CLIENTE, TBizCliente); + RegisterDataTableRules(BIZ_CLIENT_PROVEEDOR, TBizProveedor); + RegisterDataTableRules(BIZ_CLIENT_AGENTE, TBizAgente); + RegisterDataTableRules(BIZ_CLIENT_EMPLEADO, TBizEmpleado); + +finalization + +end. diff --git a/Source/Modulos/Contactos/Model/uBizContactosDatosBancarios.dcu b/Source/Modulos/Contactos/Model/uBizContactosDatosBancarios.dcu new file mode 100644 index 0000000..c1a4663 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uBizContactosDatosBancarios.dcu differ diff --git a/Source/Modulos/Contactos/Model/uBizContactosDatosBancarios.pas b/Source/Modulos/Contactos/Model/uBizContactosDatosBancarios.pas new file mode 100644 index 0000000..87cf3e2 --- /dev/null +++ b/Source/Modulos/Contactos/Model/uBizContactosDatosBancarios.pas @@ -0,0 +1,58 @@ +unit uBizContactosDatosBancarios; + +interface + +uses + uDAInterfaces, uDADataTable, + schContactosClient_Intf; + +const + BIZ_CLIENT_CONTACTOS_DATOS_BANCARIOS = 'Client.ContactosDatosBancarios'; + +type + IBizContactosDatosBancarios = interface(IDatosBancarios) + ['{87EC6EA3-7DAE-446F-A968-6DA3C716A113}'] + function EsNuevo : Boolean; + end; + + TBizContactosDatosBancarios = class(TDatosBancariosDataTableRules, IBizContactosDatosBancarios) + protected + procedure BeforeInsert(Sender: TDADataTable); override; + procedure OnNewRecord(Sender: TDADataTable); override; + public + function EsNuevo : Boolean; + end; + +implementation + +uses + Dialogs,uDataTableUtils, DB; + +{ TBizDatosBancarios } + +procedure TBizContactosDatosBancarios.BeforeInsert(Sender: TDADataTable); +var + AMasterTable : TDADataTable; +begin + inherited; + AMasterTable := DataTable.GetMasterDataTable; + if Assigned(AMasterTable) and (AMasterTable.State in dsEditModes) then + AMasterTable.Post; +end; + +function TBizContactosDatosBancarios.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +procedure TBizContactosDatosBancarios.OnNewRecord(Sender: TDADataTable); +begin + inherited; + // +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_CONTACTOS_DATOS_BANCARIOS, TBizContactosDatosBancarios); + + +end. diff --git a/Source/Modulos/Contactos/Model/uBizContactosPersonal.dcu b/Source/Modulos/Contactos/Model/uBizContactosPersonal.dcu new file mode 100644 index 0000000..c476de5 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uBizContactosPersonal.dcu differ diff --git a/Source/Modulos/Contactos/Model/uBizContactosPersonal.pas b/Source/Modulos/Contactos/Model/uBizContactosPersonal.pas new file mode 100644 index 0000000..207e9cd --- /dev/null +++ b/Source/Modulos/Contactos/Model/uBizContactosPersonal.pas @@ -0,0 +1,61 @@ +unit uBizContactosPersonal; + +interface + +uses + uDAInterfaces, uDADataTable, + schContactosClient_Intf; + +const + BIZ_CLIENT_CONTACTO_PERSONAL = 'Client.ContactosPersonal'; + +type + IBizContactoPersonal = interface (IPersonalContacto) + ['{9FFEFD2E-1EED-4FA2-80D7-81B1541B122C}'] + end; + + TBizContactoPersonal = class(TPersonalContactoDataTableRules, IBizContactoPersonal) + private + ContIdAux: Integer; + protected + procedure OnNewRecord(Sender: TDADataTable); override; + procedure BeforeInsert(Sender: TDADataTable); override; + public + constructor Create(aDataTable: TDADataTable); override; + end; + +implementation + +{ TBizContactoPersonal } + +uses + DB; + +procedure TBizContactoPersonal.BeforeInsert(Sender: TDADataTable); +var + AMasterTable : TDADataTable; +begin + inherited; + AMasterTable := DataTable.GetMasterDataTable; + if Assigned(AMasterTable) and (AMasterTable.State in dsEditModes) then + AMasterTable.Post; +end; + +constructor TBizContactoPersonal.Create(aDataTable: TDADataTable); +begin + inherited; + ContIdAux := -1; +end; + +procedure TBizContactoPersonal.OnNewRecord(Sender: TDADataTable); +begin + inherited; + ID := ContIdAux; // -1, -2, -3... + Dec(ContIdAux); +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_CONTACTO_PERSONAL, TBizContactoPersonal); + +end. + diff --git a/Source/Modulos/Contactos/Model/uBizContactosServer.dcu b/Source/Modulos/Contactos/Model/uBizContactosServer.dcu new file mode 100644 index 0000000..ebd310e Binary files /dev/null and b/Source/Modulos/Contactos/Model/uBizContactosServer.dcu differ diff --git a/Source/Modulos/Contactos/Model/uBizContactosServer.pas b/Source/Modulos/Contactos/Model/uBizContactosServer.pas new file mode 100644 index 0000000..4489aa3 --- /dev/null +++ b/Source/Modulos/Contactos/Model/uBizContactosServer.pas @@ -0,0 +1,294 @@ +unit uBizContactosServer; + +interface + +uses + SysUtils, schContactosServer_Intf, uDAInterfaces, + uDADataTable, uDABusinessProcessor, uDADelta; + +const + BIZ_SERVER_CONTACTO = 'Server.Contacto'; + +type + TBizContactosServer = class(TContactosBusinessProcessorRules) + private + FReferenciaAutomatica : Boolean; + protected + function _DarReferenciaInterna(const ATipo: String) : String; + function _IncrementarReferenciaInterna(const ATipo: String) : Boolean; + + function DarReferenciaContacto : String; virtual; abstract; + function IncrementarReferenciaContacto : Boolean; virtual; abstract; + + procedure Insert_Datos_Contacto(aChange: TDADeltaChange); virtual; + procedure Update_Datos_Contacto(aChange: TDADeltaChange); virtual; + procedure Delete_Datos_Contacto(aChange: TDADeltaChange); virtual; + + procedure Insert_Categoria_Contacto(aChange: TDADeltaChange); virtual; + procedure Update_Categoria_Contacto(aChange: TDADeltaChange); virtual; + procedure Delete_Categoria_Contacto(aChange: TDADeltaChange); virtual; + + procedure BeforeProcessDelta(Sender: TDABusinessProcessor; + const aDelta: IDADelta); override; + + procedure AfterProcessChange(Sender: TDABusinessProcessor; + aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); override; + + procedure ProcessError(Sender: TDABusinessProcessor; + aChangeType: TDAChangeType; aChange: TDADeltaChange; + const aCommand: IDASQLCommand; var CanRemoveFromDelta: Boolean; + Error: Exception); override; + end; + +implementation + +uses + Dialogs, uDataModuleServer, uDAClasses, Variants, + schContactosClient_Intf, uBusinessUtils, FactuGES_Intf, uROServer; + +{ TBizContactosServer } + +procedure TBizContactosServer.AfterProcessChange(Sender: TDABusinessProcessor; + aChange: TDADeltaChange; Processed: Boolean; var CanRemoveFromDelta: Boolean); +begin + inherited; + { Por defecto, mantenemos los deltas por si alguna tabla hija los necesita } + CanRemoveFromDelta := False; + + case aChange.ChangeType of + ctInsert: begin + Insert_Categoria_Contacto(aChange); + Insert_Datos_Contacto(aChange); + if FReferenciaAutomatica then + begin + IncrementarReferenciaContacto; + FReferenciaAutomatica := False; + end; + end; + ctUpdate: begin + Update_Categoria_Contacto(aChange); + Update_Datos_Contacto(aChange); + if FReferenciaAutomatica then + begin + IncrementarReferenciaContacto; + FReferenciaAutomatica := False; + end; + end; + ctDelete: begin + Delete_Categoria_Contacto(aChange); + Delete_Datos_Contacto(aChange); + end; + end; +end; + +procedure TBizContactosServer.BeforeProcessDelta(Sender: TDABusinessProcessor; + const aDelta: IDADelta); +begin + inherited; + FReferenciaAutomatica := False; + case Sender.CurrentChange.ChangeType of + ctInsert, ctUpdate: begin + // Si la referencia no ha sido asignada le asignamos una nosotros + if REFERENCIAIsNull or (Length(REFERENCIA) = 0) then + begin + FReferenciaAutomatica := True; + REFERENCIA := DarReferenciaContacto; + end; + end; + end; +end; + +procedure TBizContactosServer.Delete_Categoria_Contacto( + aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + ACommand := ASchema.NewCommand(ACurrentConn, 'Delete_ContactosCategorias'); + try + with ACommand do + begin + ParamByName('OLD_ID_CONTACTO').Value := aChange.OldValueByName[fld_ContactosID]; + ParamByName('OLD_ID_CATEGORIA').Value := aChange.OldValueByName[fld_ContactosID_CATEGORIA]; + Execute; + end; + finally + ACommand := NIL; + end; +end; + +procedure TBizContactosServer.Delete_Datos_Contacto(aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + +//En el caso de querer tener los contactos separados por empresas en lugar de tenerlos en comn +// ACommand := ASchema.NewCommand(ACurrentConn, 'Delete_ContactoEmpresa'); +//En el caso de querer tener los contactos en comn para todas las empresas + ACommand := ASchema.NewCommand(ACurrentConn, 'Delete_ContactoEmpresas'); + try + with ACommand do + begin + ParamByName('OLD_ID_CONTACTO').Value := aChange.OldValueByName[fld_ContactosID]; +// ParamByName('OLD_ID_EMPRESA').Value := aChange.OldValueByName[fld_ContactosID_EMPRESA]; + Execute; + end; + finally + ACommand := NIL; + end; +end; + +procedure TBizContactosServer.Insert_Categoria_Contacto( + aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + ACommand := ASchema.NewCommand(ACurrentConn, 'Insert_ContactosCategorias'); + try + with ACommand do + begin + ParamByName('ID_CONTACTO').Value := aChange.NewValueByName[fld_ContactosID]; + ParamByName('ID_CATEGORIA').Value := aChange.NewValueByName[fld_ContactosID_CATEGORIA]; + Execute; + end; + finally + ACommand := NIL; + end; +end; + +procedure TBizContactosServer.Insert_Datos_Contacto(aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + +//En el caso de querer tener los contactos separados por empresas en lugar de tenerlos en comn +// ACommand := ASchema.NewCommand(ACurrentConn, 'Insert_ContactoEmpresa'); +//En el caso de querer tener los contactos en comn para todas las empresas + ACommand := ASchema.NewCommand(ACurrentConn, 'Insert_ContactoEmpresas'); + try + with ACommand do + begin + ParamByName('ID_CONTACTO').Value := aChange.NewValueByName[fld_ContactosID]; +// ParamByName('ID_EMPRESA').Value := aChange.NewValueByName[fld_ContactosID_EMPRESA]; + Execute; + end; + finally + ACommand := NIL; + end; +end; + +procedure TBizContactosServer.ProcessError(Sender: TDABusinessProcessor; + aChangeType: TDAChangeType; aChange: TDADeltaChange; + const aCommand: IDASQLCommand; var CanRemoveFromDelta: Boolean; + Error: Exception); +begin + inherited; + //IMPORTANTE ESTO HACE QUE EL CLIENTE SE ENTERE DEL ERROR Y LOS BP ASOCIADOS EN EL + //SCHEMA HAGAN ROLLBACK TAMBIEN + CanRemoveFromDelta := True; + raise Exception.Create(Error.Message); +end; + +procedure TBizContactosServer.Update_Categoria_Contacto( + aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + +//En el caso update nos da igual lo que se quiera modificar as que se queda igual + ACommand := ASchema.NewCommand(ACurrentConn, 'Update_ContactosCategorias'); + try + with ACommand do + begin + ParamByName('ID_CONTACTO').Value := aChange.NewValueByName[fld_ContactosID]; + ParamByName('OLD_ID_CONTACTO').Value := aChange.OldValueByName[fld_ContactosID]; + + ParamByName('ID_CATEGORIA').Value := aChange.NewValueByName[fld_ContactosID_CATEGORIA]; + ParamByName('OLD_ID_CATEGORIA').Value := aChange.OldValueByName[fld_ContactosID_CATEGORIA]; + Execute; + end; + finally + ACommand := NIL; + end; +end; + +procedure TBizContactosServer.Update_Datos_Contacto(aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + +//En el caso update nos da igual lo que se quiera modificar as que se queda igual + ACommand := ASchema.NewCommand(ACurrentConn, 'Update_ContactoEmpresa'); + try + with ACommand do + begin + ParamByName('ID_CONTACTO').Value := aChange.NewValueByName[fld_ContactosID]; + ParamByName('OLD_ID_CONTACTO').Value := aChange.OldValueByName[fld_ContactosID]; + + ParamByName('ID_EMPRESA').Value := aChange.NewValueByName[fld_ContactosID_EMPRESA]; + ParamByName('OLD_ID_EMPRESA').Value := aChange.OldValueByName[fld_ContactosID_EMPRESA]; + Execute; + end; + finally + ACommand := NIL; + end; +end; + +function TBizContactosServer._DarReferenciaInterna( + const ATipo: String): String; +var + AReferenciasService : IsrvReferencias; + Intf : IInterface; + AClientID : TGUID; +begin + CreateGUID(AClientID); + + GetClassFactory('srvReferencias').CreateInstance(AClientID, Intf); + AReferenciasService := Intf as IsrvReferencias; + Result := AReferenciasService.DarNuevaReferencia(ATipo, -1) +end; + +function TBizContactosServer._IncrementarReferenciaInterna( + const ATipo: String): Boolean; +var + AReferenciasService : IsrvReferencias; + Intf : IInterface; + AClientID : TGUID; +begin + CreateGUID(AClientID); + + GetClassFactory('srvReferencias').CreateInstance(AClientID, Intf); + AReferenciasService := Intf as IsrvReferencias; + Result := AReferenciasService.IncrementarValorReferencia(ATipo, Self.REFERENCIA, -1) +end; + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_CONTACTO, TBizContactosServer); + +end. diff --git a/Source/Modulos/Contactos/Model/uBizDireccionesContacto.dcu b/Source/Modulos/Contactos/Model/uBizDireccionesContacto.dcu new file mode 100644 index 0000000..5472fee Binary files /dev/null and b/Source/Modulos/Contactos/Model/uBizDireccionesContacto.dcu differ diff --git a/Source/Modulos/Contactos/Model/uBizDireccionesContacto.pas b/Source/Modulos/Contactos/Model/uBizDireccionesContacto.pas new file mode 100644 index 0000000..686b056 --- /dev/null +++ b/Source/Modulos/Contactos/Model/uBizDireccionesContacto.pas @@ -0,0 +1,58 @@ +unit uBizDireccionesContacto; + +interface + +uses + uDAInterfaces, uDADataTable, + schContactosClient_Intf; + +const + BIZ_CLIENT_DIRECCIONES_CONTACTO = 'Client.DireccionesContacto'; + +type + IBizDireccionesContacto = interface(IDireccionesContacto) + ['{CAE362D4-B148-4B54-A426-F178565EA3DE}'] + function EsNuevo : Boolean; + end; + + TBizDireccionesContacto = class(TDireccionesContactoDataTableRules, IBizDireccionesContacto) + protected + procedure BeforeInsert(Sender: TDADataTable); override; + public + function EsNuevo : Boolean; + procedure OnNewRecord(Sender: TDADataTable); override; + end; + +implementation + +uses + Dialogs,uDataTableUtils, DB; + +{ TBizDatosBancarios } + +procedure TBizDireccionesContacto.BeforeInsert(Sender: TDADataTable); +var + AMasterTable : TDADataTable; +begin + inherited; + AMasterTable := DataTable.GetMasterDataTable; + if Assigned(AMasterTable) and (AMasterTable.State in dsEditModes) then + AMasterTable.Post; +end; + +function TBizDireccionesContacto.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +procedure TBizDireccionesContacto.OnNewRecord(Sender: TDADataTable); +begin + inherited; + ID := GetRecNo; // -1, -2, -3... +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_DIRECCIONES_CONTACTO, TBizDireccionesContacto); + + +end. diff --git a/Source/Modulos/Contactos/Model/uBizEmpleadosServer.dcu b/Source/Modulos/Contactos/Model/uBizEmpleadosServer.dcu new file mode 100644 index 0000000..c5d09ee Binary files /dev/null and b/Source/Modulos/Contactos/Model/uBizEmpleadosServer.dcu differ diff --git a/Source/Modulos/Contactos/Model/uBizEmpleadosServer.pas b/Source/Modulos/Contactos/Model/uBizEmpleadosServer.pas new file mode 100644 index 0000000..720447d --- /dev/null +++ b/Source/Modulos/Contactos/Model/uBizEmpleadosServer.pas @@ -0,0 +1,138 @@ +unit uBizEmpleadosServer; + +interface + +uses + schContactosServer_Intf, uDAInterfaces, uDADelta, + uDADataTable, uDABusinessProcessor, uBizContactosServer; + +const + BIZ_SERVER_EMPLEADO = 'Server.Empleado'; + +type + TBizEmpleadoServer = class(TBizContactosServer) + protected + function DarReferenciaContacto : String; override; + function IncrementarReferenciaContacto : Boolean; override; + + procedure Insert_Datos_Contacto(aChange: TDADeltaChange); override; + procedure Update_Datos_Contacto(aChange: TDADeltaChange); override; + procedure Delete_Datos_Contacto(aChange: TDADeltaChange); override; + end; + +implementation + +uses + uDataModuleServer, uDAClasses, + schContactosClient_Intf, uBusinessUtils; + +const + REF_EMPLEADOS = 'REF_EMPLEADOS'; + +{ TBizEmpleadoServer } + +function TBizEmpleadoServer.DarReferenciaContacto: String; +begin + Result := _DarReferenciaInterna(REF_EMPLEADOS) +end; + +procedure TBizEmpleadoServer.Delete_Datos_Contacto(aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + inherited; + + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + ACommand := ASchema.NewCommand(ACurrentConn, 'Delete_EmpleadosDatos'); + try + with ACommand do + begin + ParamByName('OLD_ID_EMPLEADO').Value := aChange.OldValueByName[fld_EmpleadosID]; + Execute; + end; + finally + ACommand := NIL; + end; +end; + +function TBizEmpleadoServer.IncrementarReferenciaContacto: Boolean; +begin + Result := _IncrementarReferenciaInterna(REF_EMPLEADOS) +end; + +procedure TBizEmpleadoServer.Insert_Datos_Contacto(aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + inherited; + + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + ACommand := ASchema.NewCommand(ACurrentConn, 'Insert_EmpleadosDatos'); + try + with ACommand do + begin + ParamByName('ID_EMPLEADO').Value := aChange.NewValueByName[fld_EmpleadosID]; + ParamByName('FECHA_NACIMIENTO').Value := aChange.NewValueByName[fld_EmpleadosFECHA_NACIMIENTO]; + ParamByName('CATEGORIA').Value := aChange.NewValueByName[fld_EmpleadosCATEGORIA]; + ParamByName('FECHA_ALTA_EMPRESA').Value := aChange.NewValueByName[fld_EmpleadosFECHA_ALTA_EMPRESA]; + ParamByName('FORMACION_BASE').Value := aChange.NewValueByName[fld_EmpleadosFORMACION_BASE]; + ParamByName('FORMACION_COMPLE').Value := aChange.NewValueByName[fld_EmpleadosFORMACION_COMPLE]; + ParamByName('FORMACION_RECIBIDA').Value := aChange.NewValueByName[fld_EmpleadosFORMACION_RECIBIDA]; + ParamByName('EXPERIENCIA').Value := aChange.NewValueByName[fld_EmpleadosEXPERIENCIA]; + ParamByName('CONTRATO').Value := aChange.NewValueByName[fld_EmpleadosCONTRATO]; + ParamByName('DURACION').Value := aChange.NewValueByName[fld_EmpleadosDURACION]; + ParamByName('FECHA_BAJA').Value := aChange.NewValueByName[fld_EmpleadosFECHA_BAJA]; + ParamByName('CAUSA_BAJA').Value := aChange.NewValueByName[fld_EmpleadosCAUSA_BAJA]; + Execute; + end; + finally + ACommand := NIL; + end; +end; + +procedure TBizEmpleadoServer.Update_Datos_Contacto(aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + inherited; + + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + ACommand := ASchema.NewCommand(ACurrentConn, 'Update_EmpleadosDatos'); + try + with ACommand do + begin + ParamByName('OLD_ID_EMPLEADO').Value := aChange.OldValueByName[fld_EmpleadosID]; + ParamByName('FECHA_NACIMIENTO').Value := aChange.NewValueByName[fld_EmpleadosFECHA_NACIMIENTO]; + ParamByName('CATEGORIA').Value := aChange.NewValueByName[fld_EmpleadosCATEGORIA]; + ParamByName('FECHA_ALTA_EMPRESA').Value := aChange.NewValueByName[fld_EmpleadosFECHA_ALTA_EMPRESA]; + ParamByName('FORMACION_BASE').Value := aChange.NewValueByName[fld_EmpleadosFORMACION_BASE]; + ParamByName('FORMACION_COMPLE').Value := aChange.NewValueByName[fld_EmpleadosFORMACION_COMPLE]; + ParamByName('FORMACION_RECIBIDA').Value := aChange.NewValueByName[fld_EmpleadosFORMACION_RECIBIDA]; + ParamByName('EXPERIENCIA').Value := aChange.NewValueByName[fld_EmpleadosEXPERIENCIA]; + ParamByName('CONTRATO').Value := aChange.NewValueByName[fld_EmpleadosCONTRATO]; + ParamByName('DURACION').Value := aChange.NewValueByName[fld_EmpleadosDURACION]; + ParamByName('FECHA_BAJA').Value := aChange.NewValueByName[fld_EmpleadosFECHA_BAJA]; + ParamByName('CAUSA_BAJA').Value := aChange.NewValueByName[fld_EmpleadosCAUSA_BAJA]; + Execute; + end; + finally + ACommand := NIL; + end; +end; + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_EMPLEADO, TBizEmpleadoServer); + +end. diff --git a/Source/Modulos/Contactos/Model/uBizGruposCliente.dcu b/Source/Modulos/Contactos/Model/uBizGruposCliente.dcu new file mode 100644 index 0000000..6a4ee89 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uBizGruposCliente.dcu differ diff --git a/Source/Modulos/Contactos/Model/uBizGruposCliente.pas b/Source/Modulos/Contactos/Model/uBizGruposCliente.pas new file mode 100644 index 0000000..36f4cd8 --- /dev/null +++ b/Source/Modulos/Contactos/Model/uBizGruposCliente.pas @@ -0,0 +1,37 @@ +unit uBizGruposCliente; + +interface + +uses + uDAInterfaces, uDADataTable, schContactosClient_Intf; + +const + BIZ_CLIENT_GRUPOSCLIENTE = 'Client.GrupoCliente'; + +type + IBizGrupoCliente = interface(IGruposCliente) + ['{14D53184-B350-4506-9527-E7F7D9442515}'] + end; + + TBizGrupoCliente = class(TGruposClienteDataTableRules, IBizGrupoCliente) + protected + procedure AfterOpen(Sender: TDADataTable); override; + end; + +implementation + +{ TBizGrupoCliente } + +procedure TBizGrupoCliente.AfterOpen(Sender: TDADataTable); +begin + inherited; + DataTable.Sort([fld_GruposClienteDESCRIPCION], [sdAscending]); +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_GRUPOSCLIENTE, TBizGrupoCliente); + +finalization + +end. + diff --git a/Source/Modulos/Contactos/Model/uBizGruposEmpleado.dcu b/Source/Modulos/Contactos/Model/uBizGruposEmpleado.dcu new file mode 100644 index 0000000..dbe672a Binary files /dev/null and b/Source/Modulos/Contactos/Model/uBizGruposEmpleado.dcu differ diff --git a/Source/Modulos/Contactos/Model/uBizGruposEmpleado.pas b/Source/Modulos/Contactos/Model/uBizGruposEmpleado.pas new file mode 100644 index 0000000..1523168 --- /dev/null +++ b/Source/Modulos/Contactos/Model/uBizGruposEmpleado.pas @@ -0,0 +1,37 @@ +unit uBizGruposEmpleado; + +interface + +uses + uDAInterfaces, uDADataTable, schContactosClient_Intf; + +const + BIZ_CLIENT_GRUPOSEMPLEADO = 'Client.GrupoEmpleado'; + +type + IBizGrupoEmpleado = interface(IGruposEmpleado) + ['{0952BCC8-09B6-4D09-9B5E-26853E159B79}'] + end; + + TBizGrupoEmpleado = class(TGruposEmpleadoDataTableRules, IBizGrupoEmpleado) + protected + procedure AfterOpen(Sender: TDADataTable); override; + end; + +implementation + +{ TBizGrupoEmpleado } + +procedure TBizGrupoEmpleado.AfterOpen(Sender: TDADataTable); +begin + inherited; + DataTable.Sort([fld_GruposEmpleadoDESCRIPCION], [sdAscending]); +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_GRUPOSEMPLEADO, TBizGrupoEmpleado); + +finalization + +end. + diff --git a/Source/Modulos/Contactos/Model/uBizGruposProveedor.dcu b/Source/Modulos/Contactos/Model/uBizGruposProveedor.dcu new file mode 100644 index 0000000..9d8576f Binary files /dev/null and b/Source/Modulos/Contactos/Model/uBizGruposProveedor.dcu differ diff --git a/Source/Modulos/Contactos/Model/uBizGruposProveedor.pas b/Source/Modulos/Contactos/Model/uBizGruposProveedor.pas new file mode 100644 index 0000000..8b80871 --- /dev/null +++ b/Source/Modulos/Contactos/Model/uBizGruposProveedor.pas @@ -0,0 +1,39 @@ +unit uBizGruposProveedor; + +interface + +uses + uDAInterfaces, uDADataTable, schContactosClient_Intf; + +const + BIZ_CLIENT_GRUPOSPROVEEDOR = 'Client.GrupoProveedor'; + +type + IBizGrupoProveedor = interface(IGruposProveedor) + ['{2D502FA6-E3D7-4E32-813D-CC5EB554A074}'] + end; + + TBizGrupoProveedor = class(TGruposProveedorDataTableRules, IBizGrupoProveedor) + protected + procedure AfterOpen(Sender: TDADataTable); override; + end; + +implementation + +{ TBizGrupoProveedor } + +procedure TBizGrupoProveedor.AfterOpen(Sender: TDADataTable); +begin + inherited; + DataTable.Sort([fld_GruposProveedorDESCRIPCION], [sdAscending]); +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_GRUPOSPROVEEDOR, TBizGrupoProveedor); + +finalization + +end. + + + diff --git a/Source/Modulos/Contactos/Model/uBizProveedoresServer.dcu b/Source/Modulos/Contactos/Model/uBizProveedoresServer.dcu new file mode 100644 index 0000000..b7710d8 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uBizProveedoresServer.dcu differ diff --git a/Source/Modulos/Contactos/Model/uBizProveedoresServer.pas b/Source/Modulos/Contactos/Model/uBizProveedoresServer.pas new file mode 100644 index 0000000..f627842 --- /dev/null +++ b/Source/Modulos/Contactos/Model/uBizProveedoresServer.pas @@ -0,0 +1,150 @@ +unit uBizProveedoresServer; + +interface + +uses + schContactosServer_Intf, uDAInterfaces, uDADelta, + uDADataTable, uDABusinessProcessor, uBizContactosServer; + +const + BIZ_SERVER_PROVEEDOR = 'Server.Proveedor'; + +type + TBizProveedorServer = class(TBizContactosServer) + protected + function DarReferenciaContacto : String; override; + function IncrementarReferenciaContacto : Boolean; override; + + procedure Insert_Datos_Contacto(aChange: TDADeltaChange); override; + procedure Update_Datos_Contacto(aChange: TDADeltaChange); override; + procedure Delete_Datos_Contacto(aChange: TDADeltaChange); override; + end; + +implementation + +uses + uDataModuleServer, uDAClasses, + schContactosClient_Intf, uBusinessUtils; + +const + REF_PROVEEDORES = 'REF_PROVEEDORES'; + +{ TBizProveedorServer } + +function TBizProveedorServer.DarReferenciaContacto: String; +begin + Result := _DarReferenciaInterna(REF_PROVEEDORES) +end; + +procedure TBizProveedorServer.Delete_Datos_Contacto(aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + inherited; + + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + ACommand := ASchema.NewCommand(ACurrentConn, 'Delete_ProveedoresDatos'); + try + with ACommand do + begin + ParamByName('OLD_ID_PROVEEDOR').Value := aChange.OldValueByName[fld_ProveedoresID]; + Execute; + end; + finally + ACommand := NIL; + end; +end; + +function TBizProveedorServer.IncrementarReferenciaContacto: Boolean; +begin + Result := _IncrementarReferenciaInterna(REF_PROVEEDORES) +end; + +procedure TBizProveedorServer.Insert_Datos_Contacto(aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + inherited; + + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + ACommand := ASchema.NewCommand(ACurrentConn, 'Insert_ProveedoresDatos'); + try + with ACommand do + begin + ParamByName('ID_PROVEEDOR').Value := aChange.NewValueByName[fld_ProveedoresID]; + ParamByName('DESCUENTO').Value := aChange.NewValueByName[fld_ProveedoresDESCUENTO]; + ParamByName('DESCRIPCION_PROVEEDOR').Value := aChange.NewValueByName[fld_ProveedoresDESCRIPCION_PROVEEDOR]; + ParamByName('CODIGO_ASIGNADO').Value := aChange.NewValueByName[fld_ProveedoresCODIGO_ASIGNADO]; + ParamByName('REGIMEN_IVA').Value := aChange.NewValueByName[fld_ProveedoresREGIMEN_IVA]; + ParamByName('ID_TIPO_IVA').Value := aChange.NewValueByName[fld_ProveedoresID_TIPO_IVA]; + ParamByName('ID_FORMA_PAGO').Value := aChange.NewValueByName[fld_ProveedoresID_FORMA_PAGO]; + ParamByName('TIENDA_WEB').Value := aChange.NewValueByName[fld_ProveedoresTIENDA_WEB]; + ParamByName('HOMOLOGADO').Value := aChange.NewValueByName[fld_ProveedoresHOMOLOGADO]; + ParamByName('CERTIFICACION').Value := aChange.NewValueByName[fld_ProveedoresCERTIFICACION]; + ParamByName('GRUPO_PROVEEDOR').Value := aChange.NewValueByName[fld_ProveedoresGRUPO_PROVEEDOR]; + ParamByName('SUBCONTRATA').Value := aChange.NewValueByName[fld_ProveedoresSUBCONTRATA]; + ParamByName('EMAIL_ADMINISTRACION').Value := aChange.NewValueByName[fld_ClientesEMAIL_ADMINISTRACION]; + ParamByName('VENCIMIENTO_FACTURAS_1').Value := aChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_1]; + ParamByName('VENCIMIENTO_FACTURAS_2').Value := aChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_2]; + ParamByName('VENCIMIENTO_FACTURAS_3').Value := aChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_3]; + + Execute; + end; + finally + ACommand := NIL; + end; +end; + + +procedure TBizProveedorServer.Update_Datos_Contacto(aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + inherited; + + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + ACommand := ASchema.NewCommand(ACurrentConn, 'Update_ProveedoresDatos'); + try + with ACommand do + begin + ParamByName('OLD_ID_PROVEEDOR').Value := aChange.OldValueByName[fld_ProveedoresID]; + ParamByName('ID_PROVEEDOR').Value := aChange.NewValueByName[fld_ProveedoresID]; + ParamByName('DESCUENTO').Value := aChange.NewValueByName[fld_ProveedoresDESCUENTO]; + ParamByName('DESCRIPCION_PROVEEDOR').Value := aChange.NewValueByName[fld_ProveedoresDESCRIPCION_PROVEEDOR]; + ParamByName('CODIGO_ASIGNADO').Value := aChange.NewValueByName[fld_ProveedoresCODIGO_ASIGNADO]; + ParamByName('REGIMEN_IVA').Value := aChange.NewValueByName[fld_ProveedoresREGIMEN_IVA]; + ParamByName('ID_TIPO_IVA').Value := aChange.NewValueByName[fld_ProveedoresID_TIPO_IVA]; + ParamByName('ID_FORMA_PAGO').Value := aChange.NewValueByName[fld_ProveedoresID_FORMA_PAGO]; + ParamByName('TIENDA_WEB').Value := aChange.NewValueByName[fld_ProveedoresTIENDA_WEB]; + ParamByName('HOMOLOGADO').Value := aChange.NewValueByName[fld_ProveedoresHOMOLOGADO]; + ParamByName('CERTIFICACION').Value := aChange.NewValueByName[fld_ProveedoresCERTIFICACION]; + ParamByName('GRUPO_PROVEEDOR').Value := aChange.NewValueByName[fld_ProveedoresGRUPO_PROVEEDOR]; + ParamByName('SUBCONTRATA').Value := aChange.NewValueByName[fld_ProveedoresSUBCONTRATA]; + ParamByName('EMAIL_ADMINISTRACION').Value := aChange.NewValueByName[fld_ClientesEMAIL_ADMINISTRACION]; + ParamByName('VENCIMIENTO_FACTURAS_1').Value := aChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_1]; + ParamByName('VENCIMIENTO_FACTURAS_2').Value := aChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_2]; + ParamByName('VENCIMIENTO_FACTURAS_3').Value := aChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_3]; + + Execute; + end; + finally + ACommand := NIL; + end; +end; + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_PROVEEDOR, TBizProveedorServer); + +end. diff --git a/Source/Modulos/Contactos/Model/uDABusinessProcessor.dcu b/Source/Modulos/Contactos/Model/uDABusinessProcessor.dcu new file mode 100644 index 0000000..cccca81 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uDABusinessProcessor.dcu differ diff --git a/Source/Modulos/Contactos/Model/uDAClasses.dcu b/Source/Modulos/Contactos/Model/uDAClasses.dcu new file mode 100644 index 0000000..14abf19 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uDAClasses.dcu differ diff --git a/Source/Modulos/Contactos/Model/uDADataStreamer.dcu b/Source/Modulos/Contactos/Model/uDADataStreamer.dcu new file mode 100644 index 0000000..de5d214 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uDADataStreamer.dcu differ diff --git a/Source/Modulos/Contactos/Model/uDADataTable.dcu b/Source/Modulos/Contactos/Model/uDADataTable.dcu new file mode 100644 index 0000000..6d1ba44 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uDADataTable.dcu differ diff --git a/Source/Modulos/Contactos/Model/uDADelta.dcu b/Source/Modulos/Contactos/Model/uDADelta.dcu new file mode 100644 index 0000000..f42058e Binary files /dev/null and b/Source/Modulos/Contactos/Model/uDADelta.dcu differ diff --git a/Source/Modulos/Contactos/Model/uDADriverManager.dcu b/Source/Modulos/Contactos/Model/uDADriverManager.dcu new file mode 100644 index 0000000..73f3ca3 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uDADriverManager.dcu differ diff --git a/Source/Modulos/Contactos/Model/uDAEngine.dcu b/Source/Modulos/Contactos/Model/uDAEngine.dcu new file mode 100644 index 0000000..4877aaa Binary files /dev/null and b/Source/Modulos/Contactos/Model/uDAEngine.dcu differ diff --git a/Source/Modulos/Contactos/Model/uDAExpressionEvaluator.dcu b/Source/Modulos/Contactos/Model/uDAExpressionEvaluator.dcu new file mode 100644 index 0000000..8659e0b Binary files /dev/null and b/Source/Modulos/Contactos/Model/uDAExpressionEvaluator.dcu differ diff --git a/Source/Modulos/Contactos/Model/uDAHelpers.dcu b/Source/Modulos/Contactos/Model/uDAHelpers.dcu new file mode 100644 index 0000000..dcffcd7 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uDAHelpers.dcu differ diff --git a/Source/Modulos/Contactos/Model/uDAInterfaces.dcu b/Source/Modulos/Contactos/Model/uDAInterfaces.dcu new file mode 100644 index 0000000..ccd8d3e Binary files /dev/null and b/Source/Modulos/Contactos/Model/uDAInterfaces.dcu differ diff --git a/Source/Modulos/Contactos/Model/uDAInterfacesEx.dcu b/Source/Modulos/Contactos/Model/uDAInterfacesEx.dcu new file mode 100644 index 0000000..ffe5c6f Binary files /dev/null and b/Source/Modulos/Contactos/Model/uDAInterfacesEx.dcu differ diff --git a/Source/Modulos/Contactos/Model/uDAMacroProcessors.dcu b/Source/Modulos/Contactos/Model/uDAMacroProcessors.dcu new file mode 100644 index 0000000..6410dea Binary files /dev/null and b/Source/Modulos/Contactos/Model/uDAMacroProcessors.dcu differ diff --git a/Source/Modulos/Contactos/Model/uDAMacros.dcu b/Source/Modulos/Contactos/Model/uDAMacros.dcu new file mode 100644 index 0000000..1e3c543 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uDAMacros.dcu differ diff --git a/Source/Modulos/Contactos/Model/uDAMemDataTable.dcu b/Source/Modulos/Contactos/Model/uDAMemDataTable.dcu new file mode 100644 index 0000000..290b2da Binary files /dev/null and b/Source/Modulos/Contactos/Model/uDAMemDataTable.dcu differ diff --git a/Source/Modulos/Contactos/Model/uDAMemDataset.dcu b/Source/Modulos/Contactos/Model/uDAMemDataset.dcu new file mode 100644 index 0000000..efa2c8a Binary files /dev/null and b/Source/Modulos/Contactos/Model/uDAMemDataset.dcu differ diff --git a/Source/Modulos/Contactos/Model/uDAOracleInterfaces.dcu b/Source/Modulos/Contactos/Model/uDAOracleInterfaces.dcu new file mode 100644 index 0000000..95a5639 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uDAOracleInterfaces.dcu differ diff --git a/Source/Modulos/Contactos/Model/uDARegExpr.dcu b/Source/Modulos/Contactos/Model/uDARegExpr.dcu new file mode 100644 index 0000000..2b963fd Binary files /dev/null and b/Source/Modulos/Contactos/Model/uDARegExpr.dcu differ diff --git a/Source/Modulos/Contactos/Model/uDARes.dcu b/Source/Modulos/Contactos/Model/uDARes.dcu new file mode 100644 index 0000000..6652451 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uDARes.dcu differ diff --git a/Source/Modulos/Contactos/Model/uDASQL92Interfaces.dcu b/Source/Modulos/Contactos/Model/uDASQL92Interfaces.dcu new file mode 100644 index 0000000..7dbfba3 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uDASQL92Interfaces.dcu differ diff --git a/Source/Modulos/Contactos/Model/uDASQL92QueryBuilder.dcu b/Source/Modulos/Contactos/Model/uDASQL92QueryBuilder.dcu new file mode 100644 index 0000000..45acfd8 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uDASQL92QueryBuilder.dcu differ diff --git a/Source/Modulos/Contactos/Model/uDAScriptingProvider.dcu b/Source/Modulos/Contactos/Model/uDAScriptingProvider.dcu new file mode 100644 index 0000000..7dc940c Binary files /dev/null and b/Source/Modulos/Contactos/Model/uDAScriptingProvider.dcu differ diff --git a/Source/Modulos/Contactos/Model/uDASupportClasses.dcu b/Source/Modulos/Contactos/Model/uDASupportClasses.dcu new file mode 100644 index 0000000..2d5112a Binary files /dev/null and b/Source/Modulos/Contactos/Model/uDASupportClasses.dcu differ diff --git a/Source/Modulos/Contactos/Model/uDAUtils.dcu b/Source/Modulos/Contactos/Model/uDAUtils.dcu new file mode 100644 index 0000000..908ee5c Binary files /dev/null and b/Source/Modulos/Contactos/Model/uDAUtils.dcu differ diff --git a/Source/Modulos/Contactos/Model/uDAWhere.dcu b/Source/Modulos/Contactos/Model/uDAWhere.dcu new file mode 100644 index 0000000..069e8d4 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uDAWhere.dcu differ diff --git a/Source/Modulos/Contactos/Model/uDAXMLUtils.dcu b/Source/Modulos/Contactos/Model/uDAXMLUtils.dcu new file mode 100644 index 0000000..c7ce90c Binary files /dev/null and b/Source/Modulos/Contactos/Model/uDAXMLUtils.dcu differ diff --git a/Source/Modulos/Contactos/Model/uIDataModuleAgentes.dcu b/Source/Modulos/Contactos/Model/uIDataModuleAgentes.dcu new file mode 100644 index 0000000..dfda0d6 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uIDataModuleAgentes.dcu differ diff --git a/Source/Modulos/Contactos/Model/uIDataModuleClientes.dcu b/Source/Modulos/Contactos/Model/uIDataModuleClientes.dcu new file mode 100644 index 0000000..0c278cb Binary files /dev/null and b/Source/Modulos/Contactos/Model/uIDataModuleClientes.dcu differ diff --git a/Source/Modulos/Contactos/Model/uIDataModuleContactos.dcu b/Source/Modulos/Contactos/Model/uIDataModuleContactos.dcu new file mode 100644 index 0000000..47b8fb2 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uIDataModuleContactos.dcu differ diff --git a/Source/Modulos/Contactos/Model/uIDataModuleEmpleados.dcu b/Source/Modulos/Contactos/Model/uIDataModuleEmpleados.dcu new file mode 100644 index 0000000..55206b0 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uIDataModuleEmpleados.dcu differ diff --git a/Source/Modulos/Contactos/Model/uIDataModuleEtiquetasContactosReport.dcu b/Source/Modulos/Contactos/Model/uIDataModuleEtiquetasContactosReport.dcu new file mode 100644 index 0000000..0a120d3 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uIDataModuleEtiquetasContactosReport.dcu differ diff --git a/Source/Modulos/Contactos/Model/uIDataModuleFichasEmpleadoReport.dcu b/Source/Modulos/Contactos/Model/uIDataModuleFichasEmpleadoReport.dcu new file mode 100644 index 0000000..08c9d6d Binary files /dev/null and b/Source/Modulos/Contactos/Model/uIDataModuleFichasEmpleadoReport.dcu differ diff --git a/Source/Modulos/Contactos/Model/uIDataModuleProveedores.dcu b/Source/Modulos/Contactos/Model/uIDataModuleProveedores.dcu new file mode 100644 index 0000000..1c1a2e7 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uIDataModuleProveedores.dcu differ diff --git a/Source/Modulos/Contactos/Model/uROAsync.dcu b/Source/Modulos/Contactos/Model/uROAsync.dcu new file mode 100644 index 0000000..669b78b Binary files /dev/null and b/Source/Modulos/Contactos/Model/uROAsync.dcu differ diff --git a/Source/Modulos/Contactos/Model/uROBinaryHelpers.dcu b/Source/Modulos/Contactos/Model/uROBinaryHelpers.dcu new file mode 100644 index 0000000..130233c Binary files /dev/null and b/Source/Modulos/Contactos/Model/uROBinaryHelpers.dcu differ diff --git a/Source/Modulos/Contactos/Model/uROCipher.dcu b/Source/Modulos/Contactos/Model/uROCipher.dcu new file mode 100644 index 0000000..4f03dc5 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uROCipher.dcu differ diff --git a/Source/Modulos/Contactos/Model/uROCiphers.dcu b/Source/Modulos/Contactos/Model/uROCiphers.dcu new file mode 100644 index 0000000..bc285aa Binary files /dev/null and b/Source/Modulos/Contactos/Model/uROCiphers.dcu differ diff --git a/Source/Modulos/Contactos/Model/uROClasses.dcu b/Source/Modulos/Contactos/Model/uROClasses.dcu new file mode 100644 index 0000000..0b15d3e Binary files /dev/null and b/Source/Modulos/Contactos/Model/uROClasses.dcu differ diff --git a/Source/Modulos/Contactos/Model/uROClient.dcu b/Source/Modulos/Contactos/Model/uROClient.dcu new file mode 100644 index 0000000..179bd0f Binary files /dev/null and b/Source/Modulos/Contactos/Model/uROClient.dcu differ diff --git a/Source/Modulos/Contactos/Model/uROClientIntf.dcu b/Source/Modulos/Contactos/Model/uROClientIntf.dcu new file mode 100644 index 0000000..54dae24 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uROClientIntf.dcu differ diff --git a/Source/Modulos/Contactos/Model/uROCompression.dcu b/Source/Modulos/Contactos/Model/uROCompression.dcu new file mode 100644 index 0000000..2b00b72 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uROCompression.dcu differ diff --git a/Source/Modulos/Contactos/Model/uRODECConst.dcu b/Source/Modulos/Contactos/Model/uRODECConst.dcu new file mode 100644 index 0000000..2b9f7dc Binary files /dev/null and b/Source/Modulos/Contactos/Model/uRODECConst.dcu differ diff --git a/Source/Modulos/Contactos/Model/uRODECUtil.dcu b/Source/Modulos/Contactos/Model/uRODECUtil.dcu new file mode 100644 index 0000000..6cc7c67 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uRODECUtil.dcu differ diff --git a/Source/Modulos/Contactos/Model/uRODL.dcu b/Source/Modulos/Contactos/Model/uRODL.dcu new file mode 100644 index 0000000..8657e83 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uRODL.dcu differ diff --git a/Source/Modulos/Contactos/Model/uRODynamicRequest.dcu b/Source/Modulos/Contactos/Model/uRODynamicRequest.dcu new file mode 100644 index 0000000..9420659 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uRODynamicRequest.dcu differ diff --git a/Source/Modulos/Contactos/Model/uROEncryption.dcu b/Source/Modulos/Contactos/Model/uROEncryption.dcu new file mode 100644 index 0000000..a4c0ea0 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uROEncryption.dcu differ diff --git a/Source/Modulos/Contactos/Model/uROEventRepository.dcu b/Source/Modulos/Contactos/Model/uROEventRepository.dcu new file mode 100644 index 0000000..37aa3a2 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uROEventRepository.dcu differ diff --git a/Source/Modulos/Contactos/Model/uROHTTPTools.dcu b/Source/Modulos/Contactos/Model/uROHTTPTools.dcu new file mode 100644 index 0000000..37e9780 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uROHTTPTools.dcu differ diff --git a/Source/Modulos/Contactos/Model/uROHash.dcu b/Source/Modulos/Contactos/Model/uROHash.dcu new file mode 100644 index 0000000..24408d1 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uROHash.dcu differ diff --git a/Source/Modulos/Contactos/Model/uROMSXML2_TLB.dcu b/Source/Modulos/Contactos/Model/uROMSXML2_TLB.dcu new file mode 100644 index 0000000..d6ff286 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uROMSXML2_TLB.dcu differ diff --git a/Source/Modulos/Contactos/Model/uROMSXMLImpl.dcu b/Source/Modulos/Contactos/Model/uROMSXMLImpl.dcu new file mode 100644 index 0000000..df1d6f7 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uROMSXMLImpl.dcu differ diff --git a/Source/Modulos/Contactos/Model/uRORemoteService.dcu b/Source/Modulos/Contactos/Model/uRORemoteService.dcu new file mode 100644 index 0000000..e8eadce Binary files /dev/null and b/Source/Modulos/Contactos/Model/uRORemoteService.dcu differ diff --git a/Source/Modulos/Contactos/Model/uRORes.dcu b/Source/Modulos/Contactos/Model/uRORes.dcu new file mode 100644 index 0000000..5ee8665 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uRORes.dcu differ diff --git a/Source/Modulos/Contactos/Model/uROSerializer.dcu b/Source/Modulos/Contactos/Model/uROSerializer.dcu new file mode 100644 index 0000000..aca5753 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uROSerializer.dcu differ diff --git a/Source/Modulos/Contactos/Model/uROServerIntf.dcu b/Source/Modulos/Contactos/Model/uROServerIntf.dcu new file mode 100644 index 0000000..a51664a Binary files /dev/null and b/Source/Modulos/Contactos/Model/uROServerIntf.dcu differ diff --git a/Source/Modulos/Contactos/Model/uROSessions.dcu b/Source/Modulos/Contactos/Model/uROSessions.dcu new file mode 100644 index 0000000..81b6e1a Binary files /dev/null and b/Source/Modulos/Contactos/Model/uROSessions.dcu differ diff --git a/Source/Modulos/Contactos/Model/uROThread.dcu b/Source/Modulos/Contactos/Model/uROThread.dcu new file mode 100644 index 0000000..a686d02 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uROThread.dcu differ diff --git a/Source/Modulos/Contactos/Model/uROTypes.dcu b/Source/Modulos/Contactos/Model/uROTypes.dcu new file mode 100644 index 0000000..886efa9 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uROTypes.dcu differ diff --git a/Source/Modulos/Contactos/Model/uROXMLIntf.dcu b/Source/Modulos/Contactos/Model/uROXMLIntf.dcu new file mode 100644 index 0000000..7f288ef Binary files /dev/null and b/Source/Modulos/Contactos/Model/uROXMLIntf.dcu differ diff --git a/Source/Modulos/Contactos/Model/uROZLib.dcu b/Source/Modulos/Contactos/Model/uROZLib.dcu new file mode 100644 index 0000000..6f53d92 Binary files /dev/null and b/Source/Modulos/Contactos/Model/uROZLib.dcu differ diff --git a/Source/Modulos/Contactos/Model/uRegimenIVAUtils.dcu b/Source/Modulos/Contactos/Model/uRegimenIVAUtils.dcu new file mode 100644 index 0000000..0ced0ef Binary files /dev/null and b/Source/Modulos/Contactos/Model/uRegimenIVAUtils.dcu differ diff --git a/Source/Modulos/Contactos/Model/uroCipher1.dcu b/Source/Modulos/Contactos/Model/uroCipher1.dcu new file mode 100644 index 0000000..79ee1bf Binary files /dev/null and b/Source/Modulos/Contactos/Model/uroCipher1.dcu differ diff --git a/Source/Modulos/Contactos/Plugin/Contactos_plugin.bdsproj b/Source/Modulos/Contactos/Plugin/Contactos_plugin.bdsproj new file mode 100644 index 0000000..10ee2fb --- /dev/null +++ b/Source/Modulos/Contactos/Plugin/Contactos_plugin.bdsproj @@ -0,0 +1,496 @@ + + + + + + + + + + + + Contactos_plugin.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + JCL Debug IDE extension + JCL Project Analyzer + JCL Open and Save IDE dialogs with favorite folders + + + + diff --git a/Source/Modulos/Contactos/Plugin/Contactos_plugin.dcu b/Source/Modulos/Contactos/Plugin/Contactos_plugin.dcu new file mode 100644 index 0000000..54bb09a Binary files /dev/null and b/Source/Modulos/Contactos/Plugin/Contactos_plugin.dcu differ diff --git a/Source/Modulos/Contactos/Plugin/Contactos_plugin.dex b/Source/Modulos/Contactos/Plugin/Contactos_plugin.dex new file mode 100644 index 0000000..4ab3631 --- /dev/null +++ b/Source/Modulos/Contactos/Plugin/Contactos_plugin.dex @@ -0,0 +1,253 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Contactos/Plugin/Contactos_plugin.dpk b/Source/Modulos/Contactos/Plugin/Contactos_plugin.dpk new file mode 100644 index 0000000..66267c4 Binary files /dev/null and b/Source/Modulos/Contactos/Plugin/Contactos_plugin.dpk differ diff --git a/Source/Modulos/Contactos/Plugin/Contactos_plugin.dproj b/Source/Modulos/Contactos/Plugin/Contactos_plugin.dproj new file mode 100644 index 0000000..7c36759 --- /dev/null +++ b/Source/Modulos/Contactos/Plugin/Contactos_plugin.dproj @@ -0,0 +1,546 @@ + + + {cafb4b38-ab55-40a5-8d2e-c54895b98402} + Contactos_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Contactos_plugin.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Contactos_plugin.dpk + + + + + MainSource + + + + + + + + + + +
PluginContactos
+
+
+
+ diff --git a/Source/Modulos/Contactos/Plugin/Contactos_plugin.drc b/Source/Modulos/Contactos/Plugin/Contactos_plugin.drc new file mode 100644 index 0000000..180ecee --- /dev/null +++ b/Source/Modulos/Contactos/Plugin/Contactos_plugin.drc @@ -0,0 +1,17 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Contactos\Plugin\uPluginContactos.dfm */ +/* C:\Codigo\Source\Modulos\Contactos\Plugin\Contactos_plugin.res */ +/* C:\Codigo\Source\Modulos\Contactos\Plugin\Contactos_plugin.drf */ diff --git a/Source/Modulos/Contactos/Plugin/Contactos_plugin.identcache b/Source/Modulos/Contactos/Plugin/Contactos_plugin.identcache new file mode 100644 index 0000000..448c351 Binary files /dev/null and b/Source/Modulos/Contactos/Plugin/Contactos_plugin.identcache differ diff --git a/Source/Modulos/Contactos/Plugin/Contactos_plugin.rc b/Source/Modulos/Contactos/Plugin/Contactos_plugin.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Contactos/Plugin/Contactos_plugin.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Contactos/Plugin/Contactos_plugin.res b/Source/Modulos/Contactos/Plugin/Contactos_plugin.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Contactos/Plugin/Contactos_plugin.res differ diff --git a/Source/Modulos/Contactos/Plugin/uPluginContactos.dcu b/Source/Modulos/Contactos/Plugin/uPluginContactos.dcu new file mode 100644 index 0000000..67e762c Binary files /dev/null and b/Source/Modulos/Contactos/Plugin/uPluginContactos.dcu differ diff --git a/Source/Modulos/Contactos/Plugin/uPluginContactos.dfm b/Source/Modulos/Contactos/Plugin/uPluginContactos.dfm new file mode 100644 index 0000000..280270a --- /dev/null +++ b/Source/Modulos/Contactos/Plugin/uPluginContactos.dfm @@ -0,0 +1,501 @@ +object PluginContactos: TPluginContactos + OldCreateOrder = True + Description = 'Contactos' + ModuleMenu = MainMenu + ModuleName = 'Contactos' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software' + Version = '1.0.0' + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000033B4944415478DA + DD957F68565518C73F77EF0FDFBDB9B94DC1214D5BB2FD61A3B0399236D66424 + 96A32874A1329D2D322C7F24686C0D539318FE964419E29F6AFF5810D982821C + BA0D57292846A4AD36B7D770BEEFF6FEBA7BEF3DF7DEB773A72EDFDE3BD71FEE + 1F0F3CDC7378CEF97E9EE73CE79CAB24934926B3298F07E0EB73BF4E0AE5B5AA + 79CA18400EC61C86162270F93043033D986692E9454B99337F459A80695AA37E + FB6B58D6BDF1DDFE2BAB3EE2D277479D01033FED440FFC4E389C60381263C474 + 31B7BC9EE205B5FF4BDCFED6AC6E7406F47535A1057AE5242FD1689C585C9516 + 27AA06A9ACFB9C278B5F1A136F3A2D1CB766D3E2115E5FFB713A203E78893F2F + 1C401D1A91C571CBA9493C2E055DE80C066F93F55429E5CB0F3D34F251B392BC + D9D09C0E08F67C457FF7492CCD853FD38FCFEB41C142681AAAAA72FD763F351F + 768E8A08C364D797CEC57DAF2A46EDBAEDCE80E16B67F0E1C7E3F64821032104 + 42D7D125E47AD8A2BAE1F4B8D15B7666327A43F657AEDF910E880C7413BAF205 + 198961321419BB5C681806868444E30922D32B295DBC7E42717B5CB761977391 + FBBB5AD16E76CAED37B17DA66167A13310715358BD8D1905CF4C286E5BFDE6DD + CE806B7D17E8ED68656622814716591882802AB893534259453D3373674F286E + FBDED9F2593AE07C7F072DDDFBE9BBF51BCBF4222AF29F261009D13674836EF3 + 0ED5854B787FE106F29E98312AD47CF01BC7226F5C5DC5BAAD2DA980E7E64F65 + 5FE711DA035DA8DE30B9A129AC29A9E5AFE19B7C1B6C079F0F821994E79552B7 + E06D0AB2E7A4446E9FAA0733FBA0716F2A80593DECF9F118514610D3E2E8468C + BC58169A5710F70B7C46164AC84B70B097A5C5AFB2B5E2133E3DDAE698C1BB6F + 95B3A9797F2A2090DDC1DE1F5AC9F6E5626427107E699ABC702E175E251377DC + 872BECE3EF500F453905B4BE71EAA1176DCBF603A90033FF0F769FDD879600F7 + 340F56A620E936E569525074372ED5432C1C269618A4A6A4868D658DEC39FEBD + 63060DCB5F4C07BCFC4211576F5DE5F8C513FC7CE3171991B0B5EDD7027999A5 + 2964E678D95CD6C4B3F9A5E3467EBFA5011695CD1D77D1442FE77FC51D0195CF + 173E327147C08E96238FFA87F62F6032DBA403FE011B7940FEE55D65A3000000 + 0049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000034D4944415478DA + DD957D6855651CC73FE7BE7177CDB9B18A126639175BE8F08F59BE35D199B6DE + 56833057E20B668AA361A953D3A1A6CEA9C3A0242AFA27184134080A05250DCD + 958E06350269D272EE6ED96DBBDEBB7BCFD9BDE7B5E75CB7E1E59E39FF70FFF8 + C08FE739E739E7FBF93EBFDF799E235996C54436E9FE007C7BEE8F09A15495CF + 924601E26274429707E8BD7C9C707F17866EF160D14B3C5EBA2A43C0304C1156 + AAD74C31D6CDD458370D9E5BB98DDF7FF8DC1910FCB11EF56627916842441CC5 + 705358B68EE2A7ABEF4ADCEE5F78B3CE19D07DA68EC4CD6E0CD3472C26138F2B + C46499981266F19A13E4172F1915AF6BD61C53F35E85C2CBAB776602E4DE5FF9 + EBE72694C890288E473C6AE1754BA89A4AA83F44F6F452CA569EB8A3F3549816 + AFAEDD9509E8EF68A1A7A319537513C80A90E5F322218412496445A13314E495 + ED6D29115533D8DBE25CDC9AF218AFBDB5DB1910E96AC14F00AFC72BDCE9689A + 264225994CD2193159BEF11B74DD766CBB3586DDDF726EDA2B13EE3531AEDE58 + 9F0988062F11FEED2B5C43115C2EE15DBCA80F43627282C1BC45CCA9A81D57DC + 4EDBAA9ABDCE45EE69FD84E4F556917E037BEE16402518F550B06C270F4D2B19 + 57DCBEB7A676FF185FD1852B749CFA80470A13784591355DA357D608F72E64D1 + BA2AB2A74E1F57DC9E5BBFE54026A0E7FC4F5C6A384ADFB5106A6125B3AB6FD0 + D716267859D423D44641F97C166C7F075FCE6329A15D4DDF391679CBDA72DEDE + 7A281DB0A46032178F1CA1EFC2797C8ACE40CEC394AC7883484F3703674F8BC2 + 27E87799E4CD5BC8539B5633E9D15969CE353D3D6D353B1AD3014F46BB38D7D4 + 004A9C298A785085786E1E3E3541408EA1FB250644FCF7CF2045CF2F675E7D23 + FB3F3EE9B8824DD565D4BE7F341D907FA595331F1EC69F9B2D003A01D522A999 + 887D86E47321FB5D44B2DC84FFFE979C19C5547EF935FAC8C6BACDF9C8467B77 + CFB1744051F84FBE3F78402422C914B7878010F78883CE1200D52B21FBDC4407 + E3E21819A2E4C50A66D71DA2F1B3D38E2BD8F0FA3399808AF945F475B4F3CBA7 + 5F70B5BD1D53E455B24CEC73DC4C85458EFF01E6EED94CEECC67C7743ED23200 + 4BE73E31E6B992BA678CF4E6B8E28E80C5A533EE99B823605FC347F7FC8F360A + 98C836E180FF01702244FEF5B056BE0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000034D4944415478DA + DD957D6855651CC73FF7E56CF7DEE962EA340397D96C0B97291B8AD95227EA08 + 6706460E476AA60B06C3B7966FC3AD482457D01441A13F842141232128288656 + B4ECC58992F8C760E2CB9DB9DBBABBD773CFDD793F3DF7EA86977B74FDE1FEE9 + 811FCF73CEF39CEFE7FB3C3F7ECFF1388EC37836CFFF0370E6EC9571A1BC5E55 + E619058887D10953FB87FE9E4F8986AF61990E534A5633B3BC2E4BC0B26C114E + BA376C3136EDF4D8B42D56ADDFCDE5AE93EE80F06FCDE8FDBDC4E2AA880449CB + 4771E5664A17D4FE27F154FFEA862677C08DEE26D4F00D2C3B075956482492C8 + 8A829C8CB274E33166942E1B156FEA305C8F666775929AB7F6640394C805FA7E + 6C23191B16C9F18BA50E92CF836EE8440623E43F534EE5FA638F749E0EDB61ED + A6BDD980C1BE4E6E9DEFC0D67D8482218239121E8490AAA12493F446C2BCF6DE + EF6911DDB038D8E99EDC862A9975EFEC7707C4FEEC244008C92F097726866188 + D0D1348DDE98CDCAFA2F31CD94E3945BEBBEFB7BCEEDD4CE847B438C6BEB9BB3 + 01F1F0AF442F9DC63B1CC3EB15DEC587E67D88ACA8DC9DFC0A15D58D638AA78E + ADAEE1A07B926F751F47BBD92D8EDF2235770FA0138EFB99B5620F85452F8C29 + 9E7AB7B1B1D51D702EDC43E287369E5455249164C334E8570C060BCAA858D0C0 + 53D3A78E299E9ADBB2FDC36C40D7A53B1C387599EBB13BAC29FB8275D38AB97D + 37CA2772057FFD022BE7CCA069CB8B4CCE9B9216DADBF6B56B92B76FAA62DBAE + 8F3201739F2FA2F5F38B745D88A048010AF306D85053C2CDDB71BE3D9FC0D182 + F8127FB364DE04EAEBCA78FA89E919CE0D33F3D81ADE3F9C09D0FD797C70F467 + E2092FDAC449E83E93C2608C612B80AC4E2464EAF8E2830CE903AC7969162DDB + 96D17AF41BD71DBC5B5B49E3BE8F33017D4370A8FD27F27373D14205E8B91344 + 21A9A20EFCE488AB30479591E428036A94E78AF339DDF206E648613DE07CA4D0 + 761C389209187682347FF63D9AA8626FA00033370F4792402CF6EA1A929E4051 + 8650BC1A358B4BD9F7F6620E9FF8CE75075BDF7C391B50BDA8848B57FB69FFAA + 873FAE5C4B5F038EED495F171EC716209B40C124F66F9EC3FCA2E2873A1F6959 + 80E50B673FF45E49BFB3467A7B4C7157C0D2F2671F9BB82BA0E550FB63FFA38D + 02C6B38D3BE05FAF5B45FEC8107D9F0000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003E54944415478DA + DD955D6C145514C7FF33B36D77D952281050902FCB8A74AB8D402DEDBA76B1A6 + 4896501142B028A105DAB47C941A890A292D1FF2D1E00B06358527134D782A1F + 29840A442925D604B5A8444C7830354AA8752DDBD9D9D99DB9D77B6767A69D66 + 1FED0BB3999C7B6736E777CEFF9C7347A094623C2FE1F100745CFF795C286B5E + 29106C00DB180FF99E27450C6BAE09617B40D7990505D1A8F19E101D3AE196DA + D6F82FBBDFA8D987BEABED4E0077A60C0DE2D78BEDF8FD9B0EC8B28CA827170B + CB5F4761C5DB70B927994E4C8754B7D7945BE68007C1D7EBB6A60124D418EE7C + 7E1CA4F7022231050F878731A8C431202B78B1AA162FBDD90C486E23729ED1D1 + F31969A5A90B0D61436DB3135019F2E36EF745F49FD90B414D201257F1AF40E1 + 9A968381070F31F0288EC6CFBAE07DD26F46CD65647270D9A899914EA1D1944C + 5575FB9D80D565F9B87ABA1583D7BE404214214DCAC60CDF2C3CE39B8EC8DFFF + E05CC74D846B0F604E4915AB8268383C71C99D36832DC108DEAA6F7102563140 + E7478DD086EEC0E79F87291327C0EB11118BCAC81029AE7FFD0366966E832FB8 + 1144108D68ADA272ED3592D2DECA64D38E5627201C5C84B30737635AE61F08BC + 5C00558E4361FA27985C2E11E8EAFA0EF35EDB83FCE00626896076162F2A9765 + B473628037EF3AE804AC0C3C8B530DAFB236BA8F70E5327833DC88C754482C7A + 5989E2CBB3DD285AB71F4BC25B98448211A56E69CFB33023B7C0358D879C8015 + A50BF169730DEEF55C4645E83914E64F413291448224D17BBB1FB77AEE21DCF2 + 318A8AD7B276E63520C64DCCF6E4B3414DB998C1D6A631808A121FFA6EF4E0A7 + 96D3C8F5C6E1298940CA5531709F42E99D0C817890D7DE84F94FF8ED880F9CEC + 4C5BE4DDD5E5A87DE7B013505EBC00DD4D9F60EAED3FA16851C4973F40CED224 + 94CE89F0FE32035474E16E2013853BAB91E3CE75E86D4F314D3DE33EEBDE3DE2 + 042C5F9A871B45DB317942162455042D559053C0D4BE928DD85F2C0B68901F25 + F05B830F2BD6541B83F6E1A9CB6933D8B92984FA3D479D80D0923C5C2BAA47B6 + 3B035EC1059A4D206501AE6117D4A40E59D3580308F8FEA9382ACFB419DD4347 + 1D13562DA8D9510DEF1D7302822F3C8D4B8BB761BAC70B8F4B42A628B17162DD + C2A659D535C4182496D0F0E3A22CAC3FD1C29C11B4B577A5CDA061631976BC3F + 0610289C8F6F3BBF427F6F1FD44814601DC465607D0A2231505626A45953915F + 16C0CCD9730D9DC9E813D43A81CD5AECFAE0B81350F2FC1CB3B7C9C884EAB0F7 + 464BEAA39C5A00E33D6CCB01FCD7B8B7CD0928F6CF368FE05427A48668044638 + CC76689DFB23DF0D0B0A3393DDFBC6005A8F9CFCDFBF6836603CAF7107FC0730 + 314BFE0CBC83B80000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002874944415478DA + B5944D68134114C7DF50C47E585BA2D0B095924095A51E4CA5CA2208D58BE9AD + 154F06CA565452A1A224E736F4165088F45222480881DE6C901EA4274F122FC9 + 0A3DE450684C2FA188C4A6F9EA6EB2CE5BBBC36E13936CA40F1E339999FC7FFB + E63F3344555538CB20670EE864D1FA7AC2471B81E6384DD7C9B044739766C2EB + 15DE760C0804246349F18101A53438A83CE6790EC6C62E82D339C4268B451962 + B1644B5053C0CACA0DF63B184C42A5D20399CC1736B6BC2C6A2004E8B9BD9DC6 + 29FF6908317E7520E022B4EFA1DD18428E8E6428148E211CDE8DD3B9B993B5DA + BCDF3F6102944A0AA4523F1A20C4F8D50B0BEF2012798510D5E79BD0C4313736 + B21ADC58E5E2E2559378B9FCB7CD660F80024853000642D6D65E3071CCADAD1C + 033C7BFE441DE55EC2FCBCA3411C7367A704767B85556102C8721DAAD59A49DC + 66EB856834A301425E507F2AD7A176E91E9CEF7B0A333323267145A9433E9F6F + 345914439B3E9F6796E32E306104A1389AB9B7F75B83B8875D50EBE761F36B11 + F2E7EEC395D1D726F31D8E69AD32FD3FABAB115681872E7C8490C3C3636DF1FE + 7E8196DACF8EA60E79303205A4AA40F0130797C7DDF03EFC81E8772597EB7D83 + 000C141704C16F344E83D0EEAC3EE676BB9B4286732E887EE321994A9B8E396E + 35027471F4A1E54DA65BA7FE0B623C5546006E992EDEF4A2E981860A3C2D5D0A + 811548DB9B6C14770922A43312843E8B5D43483BF14A4E82047D05A44A779590 + 4EC47543AD7A6202B413EFD6786245BC1B08B12A6E1542961EDAD4E93BD7A047 + FE0EF6BE7247E2ED2078D1F055665B74739257EFF2BFC03974D0B1782B087D91 + E31430673279EAF62DB52E172C89378344221F9978C331FD9F40086D4CE2187F + 00FADE10E28785B5A40000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B1300000B1301009A9C180000023C4944415478DA + ED933168136114C7FFB7752A5F1637EDDD2266B8E6EB24C221143AA6A534824B + 82D23A6905419D4C68A0E9E860C8A8D2A18A436A4502A296E40CB52A48EFEC0D + EA747789D26EF92E83B982F0F9DD45A2456C9AA6DDFAE0E37DEF3B78BFF7DEFF + 9DC439C7519A740CE819204952E79E5C4E72F80CF081A59992B49F84FFE4DB13 + F028CEA942A11B264AD78E02F020CE654586B92E00E9B5C301A49EA63A6361E2 + 5099407FE788407CF43D78C25B454B3A38E0F138A751FA1BC0C05A2CF46081F7 + E0BE1080523F8087E33CA81C0D16762047099C8A1B561E4083EEACD5FAC1017F + 6BA0CD6A5C1E013E553C584B7FAA1E3C314826CE4F64652A5F26036284BABE58 + AD56B3CD6693F506B8A272720E7057768F451BD3B2F40C9D238484B1F3C51112 + B17BA562E9464F0035A9F2B6B8BBC712BF107744E543945298EF4D4C5F9D4679 + BDECE5D239D213E07FA6AA2A8F9D8D61FECE3CEC2D1BB661C3F86C788542A13B + C059B81E3E343AABCAC2150D636189E29A2434C80E9F1E9ECBE7F3884422C82C + 64203A1A15007D5F005911CA6E35446207D816F3656EB8A665E621F1B119B6A8 + 69C9454AC9A5E06E3A23F07C326AAD26BA038CDB296EEBCFDBC14EFB676B77D4 + 0CFDAD3A24756C99C6A862D0680433533232770DBCD16D0F0398DC7C3DA5F7AD + 413A67734521B0C5D4CC8A11BEB9BE02E66EB8B54D41EC17302B00244210ACA9 + BE520993C36FC0FD5A76BDDACDFE01F79F594F3EBCC5C51FAD1DD46BDFF16DFB + 273CAFD63A35747272E365E2D59E80C3B6634057FB05197A77E091BE20380000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + object actClientes: TAction + Category = 'Ventas' + Caption = 'Clientes' + ImageIndex = 0 + OnExecute = actClientesExecute + end + object actProveedores: TAction + Category = 'Compras' + Caption = 'Proveedores' + ImageIndex = 1 + OnExecute = actProveedoresExecute + end + object actEmpleados: TAction + Category = 'Ventas' + Caption = 'Empleados' + Enabled = False + ImageIndex = 2 + Visible = False + OnExecute = actEmpleadosExecute + OnUpdate = actEmpleadosUpdate + end + object actGruposCliente: TAction + Caption = 'Grupos de cliente' + ImageIndex = 5 + OnExecute = actGruposClienteExecute + end + object actGruposProveedor: TAction + Caption = 'Grupos de proveedor' + ImageIndex = 5 + OnExecute = actGruposProveedorExecute + end + object actGruposEmpleado: TAction + Caption = 'Categorias de empleado' + ImageIndex = 4 + OnExecute = actGruposEmpleadoExecute + end + object actAgentes: TAction + Category = 'Ventas' + Caption = 'Agentes' + ImageIndex = 3 + OnExecute = actAgentesExecute + OnUpdate = actAgentesUpdate + end + end + object MainMenu: TMainMenu + Images = SmallImages + Left = 40 + Top = 16 + object Empresa1: TMenuItem + Caption = 'Empresa' + GroupIndex = 1 + object Vendedores1: TMenuItem + Tag = 102 + Action = actEmpleados + SubMenuImages = SmallImages + end + object Categoriasdeempleado1: TMenuItem + Tag = 103 + Action = actGruposEmpleado + end + end + object Da1: TMenuItem + Caption = 'Datos' + GroupIndex = 1 + object Gruposdeproveedor1: TMenuItem + Tag = 101 + Action = actGruposProveedor + SubMenuImages = SmallImages + end + object GruposCliente1: TMenuItem + Tag = 102 + Action = actGruposCliente + end + end + object Compras1: TMenuItem + Caption = '&Compras' + SubMenuImages = SmallImages + GroupIndex = 1 + OnClick = actProveedoresExecute + object Proveedores1: TMenuItem + Tag = 101 + Action = actProveedores + SubMenuImages = SmallImages + end + end + object Ventas1: TMenuItem + Caption = '&Ventas' + SubMenuImages = SmallImages + GroupIndex = 1 + OnClick = actAgentesExecute + object Agentes1: TMenuItem + Action = actAgentes + end + object Resumen1: TMenuItem + Tag = 101 + Action = actClientes + SubMenuImages = SmallImages + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001EC4944415478DA + A5934B6813511486BF541B88CD26620DA262A51BDB8520158308D5852055B01B + A3E8CEBD2E7CE063512852D09D2E82E04604AB1B5D4451B059D8A6010D84D842 + 5B6B6B1A8D414A4C9B18EB4C27F3F466D41943ED4233309C3BDC39DFFFDF9F7B + 3C9665D1C8E379323CD510C1061C3DD0697F48C531BEE7A7EDB57F6B072DADBB + 9C1F4DE154D74D34DD70DE43272FB9805AF3975484E56F1A856289C2D23CFB4F + 44D8D4BE17DD30B932A8D629B7358D70F7C1D39F8023FBB6917B35C0D78F590C + 43EC5A06954A8505A5C4B1CB2947F14F07D158D205F48436F03E761E640FEB7C + 3ED660204B3263B9597A2F24ED866B8F59DD414F28C8E7443FDE6A55A883AAA9 + 28F232F3FA7ABA8EDFAC53FEBD1E1A4DBB805A0685370F91E65E0880084BD358 + 9255CCB65EDAF784571E413378F97ABC1E90C8C6C88EDC6687E9150EAAA415D8 + BCFB14DD9D875734D76A2235E102B674A85C1CEEA3B498E374F020A666727F21 + 4E662ECFDBAB19BBB9EFD6B3BA0C423B37BA80A4F188E733A32881327EA91991 + 22924FA7B9E427373B45FADCB4A3ACFD72929E78E702EE1506C8E68B18AD0AEA + 5A595C2F44A02D3495BD7CF8344EF2CC24D7EFC4567770361EA65C2EFCF5AA06 + 0241A2E1215BD5302DBB9AA24ECE645C4077D77606A3F17F9E0307D07F23F2FF + C3D4E838FF008E7263BE13CA147C0000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001FA4944415478DA + A5934B6813511486BF342610A2C50A86A220150BA2145C58D120828ABA2AD2BA + F0B510C48D1B1154A828A55D5877825474AB45375D58A80B9385292DA8A8B151 + 6B6D8DB50F43C1B4C624364C1E73E7E19DA96408B50BCDC0E5CC65E6FFFE7FCE + DCE3324D936A2E577FE46355041BD076B0C9DE280B23E412E3F6FD9A4DDBF107 + 76965F3464524D33109A8E2A7459350E1FBFEC002CF1FCEB1EF28B82F98534C9 + 5C9203A7EFB2A1712F9A6E70A557AD706EA88970FFD1C012E0E8BECDCC3EEF22 + 33338DAECBA7A64E36FB8B5431C389EBB12557B93461D8CED6FE71F8A5036809 + AE271EBA0879177E9F0FB704284A9ED8B7498EB5476D71671F2B276809D63337 + D481B75892EEC86F5429140A7CD7D6D17CEA4E85B3D5070B181A8A3A00AB07C9 + B70F512643567E8410E4F22A46432B8D7B4E2E130BD9C4672F629580A9D02B86 + E76EB0CDF0CA0425A205D8B5F11C5B8F1C5A26B6D6F09B0F0E2058AB11B97495 + D44F95FAB34D881A831F0F26989A9EA0FDEB275B7CEDD6938A1EECDE117000FE + 701FF1A703D4153D28AB6B71E3C2A72C92F6A8C413292E8CBD2F3B8B3F67213A + 3AEE000AB7BB49CC8E11D03CAC92BFDB251D4A5E93B45B90984973FEDD08DDF7 + C22B27889D69239355FE7A54EBD6FA690D0FDAAEBA61DAD59075F4F31707B0BF + 790BBDFD83FF3C076540D7CD9EFF1FA66AC7F93783B161288AF0DFC000000000 + 49454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001FE4944415478DA + A593DD4B145118C69F5574D5458A40DD44FCCA9B42D88B8494104A1242C4AF0B + 4DF1CA3FA08822C110F7C6BA124151BB8990F422304183564165053FD05D575C + 4334694D8D1A97C65DDB666677CE7C78668C1D16F3A276E0F09EC3CCFB7B9EF3 + CEFB9A5455453C8F697C76332E820EA8AF28D60F9C7F0DA1832D7D9F9E7B0396 + CC9BD10F15EA54921410498648641A2554363E31005AF2D14A1FF85F0447FE63 + 302106775B06905D741B92ACE0E9B018A39C9F308B37231367809AF2027C5DB0 + 23B0E7832CD3B7AA8C60F0043FC301343DF79CA9D225114557D6CEEFA7960C40 + 755906761C8F00DE044B6A2A122980E37878F677D1D0EED293BBDEE16207D565 + 567C737622391CA1EAA077142108027E485750D2DC1FA3ACD541033A9C2E03A0 + D58071BF05B7EBD0FC831082102F42C9AF4351E98373C984167166D1130B18DB + 6710986B43B198421D44B0282AB0DAECA8B25D3F97ACADF9D50D0390919783D6 + A14F601358D4DE8B4015C3F8E8B420B8EEC6C1E8333DB9A36732A606B76C9906 + E0C31782B1E94384AC57713999859A988413E112D2FCDFC1B3CBD87EFD38AA4C + FEF482CBBB6500BAE759F8DC8710B27211369B697B9990F29B83F998A1202F36 + 5F3D44F7E0D4C50E1A7A97E92FF4FDBD57D30AE17E795F579515558F0A8DDEED + CF06E04EC9350C8FCFFDF31C4401F6177DFF3F4CF18EF329BD276228E7D4407E + 0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000023A4944415478DA + A593DB4B54511487BF39733C3A9A9930A99486541086169598264184522F3D84 + 34200541FF400FD24B17886E6405911111111614158414955866669A1682E565 + 2A310BAF9490CC4C303367CED9E7B4CF0C34F9E043B95FD67ED8EB5BBFF55B7B + B96CDB6621C7D5D436B820421CB07B7B31C1994986EF9E67EAFD6B66748BBCF2 + 6ACA7D07513D5E8430318585B06C4CD38982C58BD2A8F6D5250015856E461E5C + 461DEA623C1060C634980E8428F31DA072DF4999A050FF449B53B95069A3F1F6 + A304C03BD9CC647323564C472CC964457101A1C02CC35F83D41CB9436A762186 + 252B4B15A62930E5BDB5B32F09D0061A098D77B366DD4ABCD919A4692E8C6898 + 573DA394D49C25ABA0848B2D9EF915443A2EE00EFBD9B9AB8C48304A241CC632 + 755E747DA3747F03D9F94508D9BB21EC78741474BCFB90048C3E3CCAD4A7767C + 7B2A599695251FC5181E9BE0D99B097C87EFB1347FAD4C962D1889644B9AD9D9 + DBFF570BD3FD0CDCBCCF6AAF4E6EA5C1AF90CE582B0473F2D871A29E742D33E1 + 813301D38E4FA1BB6F2809C878DA85DA3E82AD06A0761AD70F0DED713ED1F454 + A60E6D60D3C62A4E5F6999E3C1E6F5394940FAB11BA4842268AA0B75AB8EE767 + 1A51BF228D140CE5EA6CB9762A2E3D3E05A705E945EFC0C72440ADBB8AC71064 + A6A8286E05372E624260183018FA4E45CB25CE5D7F3EBF82E8DB1E66FD5F2010 + 469146D96E09502096E2C62A5A4ED5DEDA7875E7273AD1D99F3EFFE724605BE9 + 2A6E35BDFCE73DF803387EA6E1FF9769A1EBFC1BC1A15528DD8924DF00000000 + 49454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C18000001604944415478DA + A5923F48C34014C6DF81B838A88B145DD22D20D8E8505737330A5D9CE4BA650C + 34739BEE0AE7E658B277A8939364B5A0C6A19231500417A14D177539EF1D5EB8 + E64F1D3C7821B9F7BE1FDFFB08E19CC37F0E512FBE1FE9244FD465C9BCE7FBD6 + 5529000FA58C33E60063B1005A04BFF1BEDBA550AF6F42BFFF5280C8A1C1C025 + CA45ABB507C3E19B04FCDE75D04DAFD780F9FC4BC275880418C649E6220F5060 + D735613A5DC81A8FD3AC4F946D6C4C261FD06CD62008926C40B4F8AC164930CE + A4E937DC3F8E6077E354BA4040470FCCB66D5186B4BAF56E814329C44904EC8E + CAFE6C6D013BDBEB08280D51C274C89949210C23081E4C787A8E899E49BB7DBD + 0CA882DC8ECEA558CF244942C0F00B00DC196D3B37D6D23A7AA895FF8112E3CE + 683BFA647F42489518773E68385E7E9D3C845489D5CE6599E810B24A5C166CFE + 3F918FA343935F1CC7A5E23C44D4AB487FBF900142AAC4ABCE0F9C32EE2C4B99 + 4F200000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001B24944415478DA9D52A16E1B41109D6366595810C90B0307069E59E0 + B29665A1E141B32E3474BF20070FAE1462B8259555D22D88643889A5C8F04C1A + 57AAB4797B4E9C334875CA48A3B9B9BB79F366DE14D433EB6DA27D4BB427AAAD + 2F68809DFC641B9358338518C94F3F02509BA4B5A6B802C02C0C03E8D36EE1AC + 15859520C157BC6F1163138BF70132ED0B7E01688F9E2B73942500FCFF00403B + 773E1410E90B4512A4EB9C41338BB894F701FA495995093BA4185054BF75559F + 9432A5719AB555238C18420D772DEC1460CA495D12893FA55D5E950E637E554A + 75B9ACC190DA6FBEF1D509005B4EAFCBEBD3365F8CA0F398993B85ECD462D161 + E7664E0D920A85892F995040B215922814D771B7582C5421F32AE59FDAA3946D + 27611773F72614D84137020A288FE1E68EC068823C7400E3BCB96DAE82FEE8B0 + CB113204B8591DF65496B66656D7F9390AA3819AC4A509459CD924C11FB8BE1C + D39111AC122AF8CA630AFD8B21B13563728BDF50427634223368076E2E3871DC + 47BECA100F4AEC3508C7FB41001500F2EC4A9D51F0DFBBE2AC94ACC330809BDB + BBE6E70FFAFCE7E92F6D1E1E69B3FD87156D9EB43E37CFDA01027CC229770400 + 00000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 94000000097048597300004E2000004E2001167D99DE000002C04944415478DA + E5D54D6813411400E0B788D816B1A5150CA99404AA2CF5E02AFE2C82503DA5B7 + 14BD054A2A6A130F5549CE6DDA9BD0424A2F69041B42A517B1417A909E3C497A + 3129F49043A131BD8422129BE6A7CDCF3A6F935932C96E9AB0928B0F1E43B233 + FBCD4CDE4C384992A093C1FD1F20C7712D0FF0F9C22ED2882487490AD5AFA324 + F748861D0E71516BAC6CB50356B1059E37C2D0D025309B7B99E72B2BDB4D6155 + D0E389D6EE7188E4278F47F85805A564B20BE2F16F4A879919BB0C67320525B7 + B662F8C85D8F6A82B3B33795CF73733B0C5A1BA4AF8D346B6EF7080366B34588 + 447E36A00A485E2A555E2070F425881E1F17209D3E05BF7F2F449E8DAB6D334E + D0E9BCC660B95CA54D240E81809C2A88C0E4E41204026F10955CAE1119C35C5F + 4FC893A9C75EBC7C260D1AA76162C2D48061EEEE66C160C82BAB6C0031105D5E + 7EA560989B9BC906D0EB00E957F10694061EC185EEE730367685C18AC532A452 + 2966825353F739062C14CA70725262B0FEFE2E0806E30C8898C803947A78D8F8 + 9E81D4F9C77075F02D534C26D3A8BC722CA8FDFD3F303F1F80D5D5D71590AC6A + C3E5B2598DC68B0A8430627400452926887652186BC09D14E1DD17235C1EB6C0 + 7BFF078E1E1F52CD0B086220268AA29BAC7091AED04666F714D1A3A353B9D3C1 + 419AEC7F8F72DE286AE913642C168F423E1985303901C16D1E7E4462CC96631D + 204831FC1D996381D58928E96BA5832C168B2A6AE5ED4D310AE216534CF31CD6 + 86DDEE95B4D0BEA4A08969454B575B3354EDA8E8026981F8A25EF8176853B0B6 + 1AB140BC5FEDBA514DB01EA30512CDEB5BA92AA885D102D1F39B368067617A0B + 89015BC5F4A00AB8E4E4DAC2CE42F176C17F1D4D70FAC98034FAE03A9C2BEC80 + A13BD712D60C2577738880E39A206EE9ED5BBCF490FF0DE6DEC3B66F905A3410 + F8AC8AA916CD9D7B77A57221DD16568B92461363C04E46C7C1BF0E73BFE74CCD + 6AD20000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end> + Left = 232 + Top = 80 + Bitmap = {} + end +end diff --git a/Source/Modulos/Contactos/Plugin/uPluginContactos.pas b/Source/Modulos/Contactos/Plugin/uPluginContactos.pas new file mode 100644 index 0000000..4b05459 --- /dev/null +++ b/Source/Modulos/Contactos/Plugin/uPluginContactos.pas @@ -0,0 +1,177 @@ +unit uPluginContactos; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCContactos = interface(IInterface) + ['{BAEDC5D8-2FE8-4907-8027-C60861829BA9}'] + + end; + + TPluginContactos = class(TModuleController, IMCContactos) + actClientes: TAction; + actProveedores: TAction; + Compras1: TMenuItem; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + Proveedores1: TMenuItem; + Resumen1: TMenuItem; + SmallImages: TPngImageList; + Ventas1: TMenuItem; + actEmpleados: TAction; + Vendedores1: TMenuItem; + actGruposCliente: TAction; + actGruposProveedor: TAction; + actGruposEmpleado: TAction; + Categoriasdeempleado1: TMenuItem; + Gruposdeproveedor1: TMenuItem; + Da1: TMenuItem; + Empresa1: TMenuItem; + actAgentes: TAction; + Agentes1: TMenuItem; + procedure actClientesExecute(Sender: TObject); + procedure actProveedoresExecute(Sender: TObject); + procedure actEmpleadosExecute(Sender: TObject); + procedure actGruposClienteExecute(Sender: TObject); + procedure actGruposProveedorExecute(Sender: TObject); + procedure actGruposEmpleadoExecute(Sender: TObject); + procedure actEmpleadosUpdate(Sender: TObject); + procedure actAgentesExecute(Sender: TObject); + procedure actAgentesUpdate(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, uGUIBase, uCustomEditor, SysUtils, uContactosController, + uClientesController, uProveedoresController, uEmpleadosController, uAgentesController, + uGruposClienteController, uBizGruposCliente, uGruposProveedorController, + uBizGruposProveedor, uGruposEmpleadoController, uBizGruposEmpleado, + uContactosViewRegister, uBizContactos, uFactuGES_App; + +function GetModule : TModuleController; +begin + Result := TPluginContactos.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +{ +******************************* TModuleContactos ******************************* +} +procedure TPluginContactos.actAgentesExecute(Sender: TObject); +var + AAgentesController : IAgentesController; + AAgentes : IBizAgente; +begin + AAgentesController := TAgentesController.Create; + AAgentes := (AAgentesController.BuscarTodos as IBizAgente); + AAgentesController.VerTodos(AAgentes); +end; + +procedure TPluginContactos.actAgentesUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := Assigned(AppFactuGES.EmpresaActiva); +end; + +procedure TPluginContactos.actClientesExecute(Sender: TObject); +var + AClientesController : IClientesController; + AClientes : IBizCliente; +begin + try + AClientesController := TClientesController.Create; + AClientes := (AClientesController.BuscarTodos as IBizCliente); + AClientesController.VerTodos(AClientes); + finally + AClientes := Nil; + AClientesController := Nil; + end; +end; + +procedure TPluginContactos.actGruposClienteExecute(Sender: TObject); +var + AGruposClienteController : IGruposClienteController; + AGruposCliente : IBizGrupoCliente; +begin + AGruposClienteController := TGruposClienteController.Create; + AGruposCliente := (AGruposClienteController.BuscarTodos as IBizGrupoCliente); + AGruposClienteController.VerTodos(AGruposCliente); +end; + +procedure TPluginContactos.actGruposEmpleadoExecute(Sender: TObject); +var + AGruposEmpleadoController : IGruposEmpleadoController; + AGruposEmpleado : IBizGrupoEmpleado; +begin + AGruposEmpleadoController := TGruposEmpleadoController.Create; + AGruposEmpleado := (AGruposEmpleadoController.BuscarTodos as IBizGrupoEmpleado); + AGruposEmpleadoController.VerTodos(AGruposEmpleado); +end; + +procedure TPluginContactos.actGruposProveedorExecute(Sender: TObject); +var + AGruposProveedorController : IGruposProveedorController; + AGruposProveedor : IBizGrupoProveedor; +begin + AGruposProveedorController := TGruposProveedorController.Create; + AGruposProveedor := (AGruposProveedorController.BuscarTodos as IBizGrupoProveedor); + AGruposProveedorController.VerTodos(AGruposProveedor); +end; + +procedure TPluginContactos.actProveedoresExecute(Sender: TObject); +var + AProveedoresController : IProveedoresController; + AProveedores : IBizProveedor; +begin + AProveedoresController := TProveedoresController.Create; + AProveedores := (AProveedoresController.BuscarTodos as IBizProveedor); + AProveedoresController.VerTodos(AProveedores); +end; + +procedure TPluginContactos.actEmpleadosExecute(Sender: TObject); +var + AEmpleadosController : IEmpleadosController; + AEmpleados : IBizEmpleado; +begin + AEmpleadosController := TEmpleadosController.Create; + AEmpleados := (AEmpleadosController.BuscarTodos as IBizEmpleado); + AEmpleadosController.VerTodos(AEmpleados); +end; + +procedure TPluginContactos.actEmpleadosUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := Assigned(AppFactuGES.EmpresaActiva); +end; + +constructor TPluginContactos.Create(AOwner: TComponent); +begin + inherited; + uContactosViewRegister.RegisterViews; +end; + +destructor TPluginContactos.Destroy; +begin + uContactosViewRegister.UnregisterViews; + inherited; +end; + +initialization + uHostManager.RegisterModuleClass(TPluginContactos); + +finalization + uHostManager.UnRegisterModuleClass(TPluginContactos); + +end. diff --git a/Source/Modulos/Contactos/Reports/uRptEtiquetasContacto_Server.dcu b/Source/Modulos/Contactos/Reports/uRptEtiquetasContacto_Server.dcu new file mode 100644 index 0000000..b0ca56a Binary files /dev/null and b/Source/Modulos/Contactos/Reports/uRptEtiquetasContacto_Server.dcu differ diff --git a/Source/Modulos/Contactos/Reports/uRptEtiquetasContacto_Server.dfm b/Source/Modulos/Contactos/Reports/uRptEtiquetasContacto_Server.dfm new file mode 100644 index 0000000..5b7c5b8 --- /dev/null +++ b/Source/Modulos/Contactos/Reports/uRptEtiquetasContacto_Server.dfm @@ -0,0 +1,431 @@ +object RptEtiquetasContacto: TRptEtiquetasContacto + OldCreateOrder = True + OnCreate = DataModuleCreate + OnDestroy = DataModuleDestroy + Height = 405 + Width = 447 + object DADataCabecera: TDADataSource + DataSet = tbl_Contactos.Dataset + DataTable = tbl_Contactos + Left = 264 + Top = 72 + end + object tbl_Contactos: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + MasterMappingMode = mmDataRequest + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + IndexDefs = <> + Left = 264 + Top = 128 + end + object frxRichObject1: TfrxRichObject + Left = 48 + Top = 296 + end + object frxBarCodeObject1: TfrxBarCodeObject + Left = 144 + Top = 296 + end + object frxOLEObject1: TfrxOLEObject + Left = 48 + Top = 344 + end + object frxCrossObject1: TfrxCrossObject + Left = 144 + Top = 344 + end + object frxCheckBoxObject1: TfrxCheckBoxObject + Left = 256 + Top = 296 + end + object frxGradientObject1: TfrxGradientObject + Left = 360 + Top = 296 + end + object frxChartObject1: TfrxChartObject + Left = 256 + Top = 344 + end + object schReport: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_CONTACTOS' + SQL = + 'select'#10' ID,'#10' NIF_CIF,'#10' NOMBRE,'#10' PERSONA_CONTACTO,'#10' ' + + ' CALLE,'#10' POBLACION,'#10' PROVINCIA,'#10' CODIGO_POSTAL'#10'from CO' + + 'NTACTOS' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end> + end> + Name = 'InformeEtiquetasContacto' + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 16 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'FacturasCliente_ID' + DataType = datAutoInc + Required = True + DisplayLabel = 'ID' + end + item + Name = 'FacturasCliente_ID_EMPRESA' + DataType = datInteger + DisplayLabel = 'ID_EMPRESA' + end + item + Name = 'FacturasCliente_ID_CONTRATO' + DataType = datInteger + DisplayLabel = 'ID_CONTRATO' + end + item + Name = 'FacturasCliente_FECHA_FACTURA' + DataType = datDateTime + DisplayLabel = 'Fecha de las factura' + end + item + Name = 'FacturasCliente_VENCIMIENTO' + DataType = datInteger + DisplayLabel = 'Vencimiento' + end + item + Name = 'FacturasCliente_SITUACION' + DataType = datString + Size = 255 + DisplayLabel = 'Situaci'#243'n' + end + item + Name = 'FacturasCliente_BASE_IMPONIBLE' + DataType = datFloat + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_DESCUENTO' + DataType = datFloat + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_IVA' + DataType = datFloat + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_TOTAL' + DataType = datFloat + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_FORMA_PAGO' + DataType = datMemo + DisplayLabel = 'Forma de pago' + end + item + Name = 'FacturasCliente_ID_CLIENTE' + DataType = datInteger + DisplayLabel = 'ID_CLIENTE' + end + item + Name = 'FacturasCliente_NIF_CIF' + DataType = datString + Size = 15 + DisplayLabel = 'NIF/CIF' + end + item + Name = 'FacturasCliente_CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#243'd. postal' + end + item + Name = 'FacturasCliente_FECHA_ALTA' + DataType = datDateTime + DisplayLabel = 'FECHA_ALTA' + end + item + Name = 'FacturasCliente_FECHA_MODIFICACION' + DataType = datDateTime + DisplayLabel = 'FECHA_MODIFICACION' + end + item + Name = 'FacturasCliente_OBSERVACIONES' + DataType = datMemo + DisplayLabel = 'Observaciones' + end + item + Name = 'FacturasCliente_NOMBRE' + DataType = datString + Size = 100 + DisplayLabel = 'Cliente' + end + item + Name = 'FacturasCliente_CALLE' + DataType = datString + Size = 150 + DisplayLabel = 'Direcci'#243'n' + end + item + Name = 'FacturasCliente_PROVINCIA' + DataType = datString + Size = 30 + DisplayLabel = 'Provincia' + end + item + Name = 'FacturasCliente_POBLACION' + DataType = datString + Size = 150 + DisplayLabel = 'Poblaci'#243'n' + end + item + Name = 'FacturasCliente_IVA' + DataType = datFloat + DisplayLabel = 'IVA' + end + item + Name = 'FacturasCliente_USUARIO' + DataType = datString + Size = 100 + DisplayLabel = 'USUARIO' + end + item + Name = 'FacturasCliente_REFERENCIA' + DataType = datString + Size = 20 + DisplayLabel = 'Referencia' + end + item + Name = 'FacturasCliente_DESCUENTO' + DataType = datFloat + DisplayLabel = 'Dto.' + end + item + Name = 'FacturasCliente_Detalles_ID' + DataType = datAutoInc + Required = True + DisplayLabel = 'ID' + end + item + Name = 'FacturasCliente_Detalles_ID_FACTURA' + DataType = datInteger + DisplayLabel = 'ID_FACTURA' + end + item + Name = 'FacturasCliente_Detalles_TIPO_DETALLE' + DataType = datString + Size = 10 + DisplayLabel = 'Tipo detalle' + end + item + Name = 'FacturasCliente_Detalles_CONCEPTO' + DataType = datString + Size = 2000 + DisplayLabel = 'Concepto' + end + item + Name = 'FacturasCliente_Detalles_IMPORTE_UNIDAD' + DataType = datFloat + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_Detalles_IMPORTE_TOTAL' + DataType = datFloat + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_Detalles_VISIBLE' + DataType = datInteger + DisplayLabel = #191'Visible?' + end + item + Name = 'FacturasCliente_Detalles_POSICION' + DataType = datInteger + DisplayLabel = 'Posici'#243'n' + end + item + Name = 'FacturasCliente_Detalles_CANTIDAD' + DataType = datInteger + DisplayLabel = 'Cantidad' + end> + Left = 46 + Top = 158 + end + object frxReport: TfrxReport + Version = '4.3' + DotMatrixReport = False + IniFile = '\Software\Fast Reports' + PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator, pbExportQuick] + PreviewOptions.Zoom = 1.000000000000000000 + PrintOptions.Printer = 'Por defecto' + PrintOptions.PrintOnSheet = 0 + ReportOptions.CreateDate = 38330.712904247710000000 + ReportOptions.LastChange = 39328.775946539350000000 + ScriptLanguage = 'PascalScript' + ScriptText.Strings = ( + 'procedure Memo2OnBeforePrint(Sender: TfrxComponent);' + 'var' + ' Cadena: String;' + 'begin' + ' Cadena := '#39#39';' + '' + ' if ( <> '#39#39') then' + ' Cadena := UPPERCASE();' + '' + ' Memo2.Lines.Clear;' + ' Memo2.Lines.Add(Cadena);' + '' + ' if ( <> '#39#39') then' + ' Cadena := UPPERCASE();' + ' Memo2.Lines.Add(Cadena);' + '' + ' Cadena := '#39#39';' + ' if ( <> '#39#39') then' + ' Cadena := UPPERCASE();' + '' + ' if ( <> '#39#39') then' + ' if (Cadena <> '#39#39') then' + + ' Cadena := Cadena + '#39' '#39' + UPPERCASE();' + '' + ' if ( <> '#39#39')' + + ' and ( <> ) then' + ' begin' + ' if ( <> '#39#39') then' + + ' Cadena := Cadena + '#39' ('#39' + UPPERCASE() + '#39')'#39 + ' else' + + ' Cadena := Cadena + '#39' '#39' + UPPERCASE();' + ' end;' + ' Memo2.Lines.Add(Cadena);' + '' + ' Cadena := '#39#39';' + ' Memo2.Lines.Add(Cadena);' + ' if ( <> '#39#39') then' + + ' Cadena := '#39'ATT. '#39' + UPPERCASE();' + ' Memo2.Lines.Add(Cadena);' + 'end;' + '' + 'begin' + '' + 'end.') + ShowProgress = False + StoreInDFM = False + Left = 169 + Top = 16 + end + object frxDBCabecera: TfrxDBDataset + UserName = 'frxDBCabecera' + CloseDataSource = False + DataSource = DADataCabecera + Left = 264 + Top = 16 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 88 + end +end diff --git a/Source/Modulos/Contactos/Reports/uRptEtiquetasContacto_Server.pas b/Source/Modulos/Contactos/Reports/uRptEtiquetasContacto_Server.pas new file mode 100644 index 0000000..b87711d --- /dev/null +++ b/Source/Modulos/Contactos/Reports/uRptEtiquetasContacto_Server.pas @@ -0,0 +1,118 @@ +unit uRptEtiquetasContacto_Server; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, frxClass, frxDBSet, uDAScriptingProvider, + uDADataTable, uDACDSDataTable, DB, uDAClasses, frxChart, frxGradient, + frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes, + uDAInterfaces, uDADataStreamer, uDABin2DataStreamer, uDAMemDataTable, + FactuGES_Intf; + +type + TRptEtiquetasContacto = class(TDataModule) + DADataCabecera: TDADataSource; + tbl_Contactos: TDAMemDataTable; + frxRichObject1: TfrxRichObject; + frxBarCodeObject1: TfrxBarCodeObject; + frxOLEObject1: TfrxOLEObject; + frxCrossObject1: TfrxCrossObject; + frxCheckBoxObject1: TfrxCheckBoxObject; + frxGradientObject1: TfrxGradientObject; + frxChartObject1: TfrxChartObject; + frxDBCabecera: TfrxDBDataset; + frxReport: TfrxReport; + schReport: TDASchema; + DataDictionary: TDADataDictionary; + Bin2DataStreamer: TDABin2DataStreamer; + procedure DataModuleCreate(Sender: TObject); + procedure DataModuleDestroy(Sender: TObject); + private + FConnection: IDAConnection; + public + function GenerarInforme(const ListaID: TIntegerArray): Binary; overload; + end; + +implementation + +{$R *.dfm} + +uses + uSistemaFunc, uDataModuleServer, schContactosClient_Intf; + +const + rptEtiquetasContacto = 'InfEtiquetasContacto.fr3'; + + { Dataset names for schReport } + ds_InformeContactos = 'InformeEtiquetasContacto'; + + +{ TRptEtiquetasContacto } + + +procedure TRptEtiquetasContacto.DataModuleCreate(Sender: TObject); +begin + schReport.ConnectionManager := dmServer.ConnectionManager; + FConnection := dmServer.DarNuevaConexion; + frxReport.EngineOptions.NewSilentMode := simReThrow; + + frxDBCabecera.DataSource := DADataCabecera; + frxDBCabecera.CloseDataSource := False; +end; + +procedure TRptEtiquetasContacto.DataModuleDestroy(Sender: TObject); +begin + tbl_Contactos.Active := False; +end; + +function TRptEtiquetasContacto.GenerarInforme(const ListaID: TIntegerArray): Binary; +var + AStream: TMemoryStream; + dsMaster: IDADataset; + i : Integer; + AWhereStr : String; + AInforme: Variant; + +begin + Result := Binary.Create; + FConnection.BeginTransaction; + + AStream := TMemoryStream.Create; + try + dsMaster := schReport.NewDataset(FConnection, ds_InformeContactos, [], [], False); //, ['ID'], ['611, 751']); //AID]); + AWhereStr := fld_ContactosID + ' in ('; + for i := 0 to ListaID.Count - 1 do + begin + if i > 0 then + AWhereStr := AWhereStr + ', '; + AWhereStr := AWhereStr + IntToStr(ListaID.Items[i]); + end; + + AWhereStr := AWhereStr + ')'; + dsMaster.Where.AddText(AWhereStr); + + dsMaster.Open; + + AStream.Clear; + Bin2DataStreamer.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1); + Bin2DataStreamer.ReadDataset(AStream, tbl_Contactos, TRUE, '', TRUE, TRUE); + + AInforme := DarRutaFichero(DarRutaInformes, rptEtiquetasContacto); + if VarIsNull(AInforme) then + raise Exception.Create (('Error Servidor: GenerarInforme, no encuentra informe ' + rptEtiquetasContacto)); + + frxReport.LoadFromFile(AInforme, True); + frxReport.PrepareReport(True); + + frxReport.PreviewPages.SaveToStream(Result); + + finally + AStream.Free; + dsMaster := Nil; + FConnection.RollbackTransaction; + end; + +end; + +end. diff --git a/Source/Modulos/Contactos/Reports/uRptFichasEmpleado_Server.dcu b/Source/Modulos/Contactos/Reports/uRptFichasEmpleado_Server.dcu new file mode 100644 index 0000000..76576a0 Binary files /dev/null and b/Source/Modulos/Contactos/Reports/uRptFichasEmpleado_Server.dcu differ diff --git a/Source/Modulos/Contactos/Reports/uRptFichasEmpleado_Server.dfm b/Source/Modulos/Contactos/Reports/uRptFichasEmpleado_Server.dfm new file mode 100644 index 0000000..bbb7aa8 --- /dev/null +++ b/Source/Modulos/Contactos/Reports/uRptFichasEmpleado_Server.dfm @@ -0,0 +1,674 @@ +object RptFichasEmpleado: TRptFichasEmpleado + OldCreateOrder = True + OnCreate = DataModuleCreate + OnDestroy = DataModuleDestroy + Height = 405 + Width = 447 + object DADataCabecera: TDADataSource + DataSet = tbl_FichaEmpleado.Dataset + DataTable = tbl_FichaEmpleado + Left = 264 + Top = 72 + end + object tbl_FichaEmpleado: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + MasterMappingMode = mmDataRequest + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + IndexDefs = <> + Left = 264 + Top = 128 + end + object frxRichObject1: TfrxRichObject + Left = 48 + Top = 296 + end + object frxBarCodeObject1: TfrxBarCodeObject + Left = 144 + Top = 296 + end + object frxOLEObject1: TfrxOLEObject + Left = 48 + Top = 344 + end + object frxCrossObject1: TfrxCrossObject + Left = 144 + Top = 344 + end + object frxCheckBoxObject1: TfrxCheckBoxObject + Left = 256 + Top = 296 + end + object frxGradientObject1: TfrxGradientObject + Left = 360 + Top = 296 + end + object frxChartObject1: TfrxChartObject + Left = 256 + Top = 344 + end + object schReport: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Datasets = < + item + Params = < + item + Name = 'ID' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_EMPLEADOS' + SQL = + 'select'#10' V_EMPLEADOS.ID,'#10' V_EMPLEADOS.ID_CATEGORIA,'#10' V_E' + + 'MPLEADOS.NIF_CIF,'#10' V_EMPLEADOS.NOMBRE,'#10' V_EMPLEADOS.PERSON' + + 'A_CONTACTO,'#10' V_EMPLEADOS.CALLE,'#10' V_EMPLEADOS.POBLACION,'#10' ' + + ' V_EMPLEADOS.PROVINCIA,'#10' V_EMPLEADOS.CODIGO_POSTAL,'#10' V_EM' + + 'PLEADOS.TELEFONO_1,'#10' V_EMPLEADOS.TELEFONO_2,'#10' V_EMPLEADOS.' + + 'MOVIL_1,'#10' V_EMPLEADOS.MOVIL_2,'#10' V_EMPLEADOS.FAX,'#10' V_EMP' + + 'LEADOS.EMAIL_1,'#10' V_EMPLEADOS.EMAIL_2,'#10' V_EMPLEADOS.PAGINA_' + + 'WEB,'#10' V_EMPLEADOS.NOTAS,'#10' V_EMPLEADOS.FECHA_ALTA,'#10' V_EM' + + 'PLEADOS.FECHA_MODIFICACION,'#10' V_EMPLEADOS.USUARIO,'#10' V_EMPLE' + + 'ADOS.ID_EMPRESA,'#10' V_EMPLEADOS.REFERENCIA,'#10' V_EMPLEADOS.FEC' + + 'HA_NACIMIENTO,'#10' V_EMPLEADOS.CATEGORIA,'#10' V_EMPLEADOS.FECHA_' + + 'ALTA_EMPRESA,'#10' V_EMPLEADOS.FORMACION_BASE,'#10' V_EMPLEADOS.FO' + + 'RMACION_COMPLE,'#10' V_EMPLEADOS.FORMACION_RECIBIDA,'#10' V_EMPLEA' + + 'DOS.EXPERIENCIA,'#10' EMPRESAS.NOMBRE as NOMBRE_EMPRESA,'#10' EMPR' + + 'ESAS.RAZON_SOCIAL,'#10' EMPRESAS.TELEFONO_1 as TELEFONO_1_EMPRESA' + + ','#10' EMPRESAS.FAX as FAX_EMPRESA,'#10' EMPRESAS.LOGOTIPO'#10' '#10'fr' + + 'om V_EMPLEADOS'#10'left join EMPRESAS on (EMPRESAS.ID = V_EMPLEADOS.' + + 'ID_EMPRESA)'#10'where V_EMPLEADOS.ID = :ID' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_CATEGORIA' + TableField = 'ID_CATEGORIA' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end + item + DatasetField = 'TELEFONO_1' + TableField = 'TELEFONO_1' + end + item + DatasetField = 'TELEFONO_2' + TableField = 'TELEFONO_2' + end + item + DatasetField = 'MOVIL_1' + TableField = 'MOVIL_1' + end + item + DatasetField = 'MOVIL_2' + TableField = 'MOVIL_2' + end + item + DatasetField = 'FAX' + TableField = 'FAX' + end + item + DatasetField = 'EMAIL_1' + TableField = 'EMAIL_1' + end + item + DatasetField = 'EMAIL_2' + TableField = 'EMAIL_2' + end + item + DatasetField = 'PAGINA_WEB' + TableField = 'PAGINA_WEB' + end + item + DatasetField = 'NOTAS' + TableField = 'NOTAS' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'FECHA_NACIMIENTO' + TableField = 'FECHA_NACIMIENTO' + end + item + DatasetField = 'CATEGORIA' + TableField = 'CATEGORIA' + end + item + DatasetField = 'FECHA_ALTA_EMPRESA' + TableField = 'FECHA_ALTA_EMPRESA' + end + item + DatasetField = 'FORMACION_BASE' + TableField = 'FORMACION_BASE' + end + item + DatasetField = 'FORMACION_COMPLE' + TableField = 'FORMACION_COMPLE' + end + item + DatasetField = 'FORMACION_RECIBIDA' + TableField = 'FORMACION_RECIBIDA' + end + item + DatasetField = 'EXPERIENCIA' + TableField = 'EXPERIENCIA' + end + item + DatasetField = 'NOMBRE_EMPRESA' + TableField = 'NOMBRE_EMPRESA' + end + item + DatasetField = 'RAZON_SOCIAL' + TableField = 'RAZON_SOCIAL' + end + item + DatasetField = 'FAX_EMPRESA' + TableField = 'FAX_EMPRESA' + end + item + DatasetField = 'TELEFONO_1_EMPRESA' + TableField = 'TELEFONO_1_EMPRESA' + end + item + DatasetField = 'LOGOTIPO' + TableField = 'LOGOTIPO' + end> + end> + Name = 'InformeFichasEmpleado' + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_CATEGORIA' + DataType = datInteger + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + end + item + Name = 'TELEFONO_2' + DataType = datString + Size = 25 + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + end + item + Name = 'MOVIL_2' + DataType = datString + Size = 25 + end + item + Name = 'FAX' + DataType = datString + Size = 25 + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + end + item + Name = 'EMAIL_2' + DataType = datString + Size = 255 + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + end + item + Name = 'NOTAS' + DataType = datMemo + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_NACIMIENTO' + DataType = datDateTime + end + item + Name = 'CATEGORIA' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_ALTA_EMPRESA' + DataType = datDateTime + end + item + Name = 'FORMACION_BASE' + DataType = datMemo + end + item + Name = 'FORMACION_COMPLE' + DataType = datMemo + end + item + Name = 'FORMACION_RECIBIDA' + DataType = datMemo + end + item + Name = 'EXPERIENCIA' + DataType = datMemo + end + item + Name = 'NOMBRE_EMPRESA' + DataType = datString + Size = 255 + end + item + Name = 'RAZON_SOCIAL' + DataType = datString + Size = 255 + end + item + Name = 'TELEFONO_1_EMPRESA' + DataType = datString + Size = 25 + end + item + Name = 'FAX_EMPRESA' + DataType = datString + Size = 25 + end + item + Name = 'LOGOTIPO' + DataType = datBlob + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 16 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'FacturasCliente_ID' + DataType = datAutoInc + Required = True + DisplayLabel = 'ID' + end + item + Name = 'FacturasCliente_ID_EMPRESA' + DataType = datInteger + DisplayLabel = 'ID_EMPRESA' + end + item + Name = 'FacturasCliente_ID_CONTRATO' + DataType = datInteger + DisplayLabel = 'ID_CONTRATO' + end + item + Name = 'FacturasCliente_FECHA_FACTURA' + DataType = datDateTime + DisplayLabel = 'Fecha de las factura' + end + item + Name = 'FacturasCliente_VENCIMIENTO' + DataType = datInteger + DisplayLabel = 'Vencimiento' + end + item + Name = 'FacturasCliente_SITUACION' + DataType = datString + Size = 255 + DisplayLabel = 'Situaci'#243'n' + end + item + Name = 'FacturasCliente_BASE_IMPONIBLE' + DataType = datFloat + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_DESCUENTO' + DataType = datFloat + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_IVA' + DataType = datFloat + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_TOTAL' + DataType = datFloat + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_FORMA_PAGO' + DataType = datMemo + DisplayLabel = 'Forma de pago' + end + item + Name = 'FacturasCliente_ID_CLIENTE' + DataType = datInteger + DisplayLabel = 'ID_CLIENTE' + end + item + Name = 'FacturasCliente_NIF_CIF' + DataType = datString + Size = 15 + DisplayLabel = 'NIF/CIF' + end + item + Name = 'FacturasCliente_CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#243'd. postal' + end + item + Name = 'FacturasCliente_FECHA_ALTA' + DataType = datDateTime + DisplayLabel = 'FECHA_ALTA' + end + item + Name = 'FacturasCliente_FECHA_MODIFICACION' + DataType = datDateTime + DisplayLabel = 'FECHA_MODIFICACION' + end + item + Name = 'FacturasCliente_OBSERVACIONES' + DataType = datMemo + DisplayLabel = 'Observaciones' + end + item + Name = 'FacturasCliente_NOMBRE' + DataType = datString + Size = 100 + DisplayLabel = 'Cliente' + end + item + Name = 'FacturasCliente_CALLE' + DataType = datString + Size = 150 + DisplayLabel = 'Direcci'#243'n' + end + item + Name = 'FacturasCliente_PROVINCIA' + DataType = datString + Size = 30 + DisplayLabel = 'Provincia' + end + item + Name = 'FacturasCliente_POBLACION' + DataType = datString + Size = 150 + DisplayLabel = 'Poblaci'#243'n' + end + item + Name = 'FacturasCliente_IVA' + DataType = datFloat + DisplayLabel = 'IVA' + end + item + Name = 'FacturasCliente_USUARIO' + DataType = datString + Size = 100 + DisplayLabel = 'USUARIO' + end + item + Name = 'FacturasCliente_REFERENCIA' + DataType = datString + Size = 20 + DisplayLabel = 'Referencia' + end + item + Name = 'FacturasCliente_DESCUENTO' + DataType = datFloat + DisplayLabel = 'Dto.' + end + item + Name = 'FacturasCliente_Detalles_ID' + DataType = datAutoInc + Required = True + DisplayLabel = 'ID' + end + item + Name = 'FacturasCliente_Detalles_ID_FACTURA' + DataType = datInteger + DisplayLabel = 'ID_FACTURA' + end + item + Name = 'FacturasCliente_Detalles_TIPO_DETALLE' + DataType = datString + Size = 10 + DisplayLabel = 'Tipo detalle' + end + item + Name = 'FacturasCliente_Detalles_CONCEPTO' + DataType = datString + Size = 2000 + DisplayLabel = 'Concepto' + end + item + Name = 'FacturasCliente_Detalles_IMPORTE_UNIDAD' + DataType = datFloat + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_Detalles_IMPORTE_TOTAL' + DataType = datFloat + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_Detalles_VISIBLE' + DataType = datInteger + DisplayLabel = #191'Visible?' + end + item + Name = 'FacturasCliente_Detalles_POSICION' + DataType = datInteger + DisplayLabel = 'Posici'#243'n' + end + item + Name = 'FacturasCliente_Detalles_CANTIDAD' + DataType = datInteger + DisplayLabel = 'Cantidad' + end> + Left = 46 + Top = 158 + end + object frxReport: TfrxReport + Version = '4.3' + DotMatrixReport = False + EngineOptions.DoublePass = True + IniFile = '\Software\Fast Reports' + PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator, pbExportQuick] + PreviewOptions.Zoom = 1.000000000000000000 + PrintOptions.Printer = 'Por defecto' + PrintOptions.PrintOnSheet = 0 + ReportOptions.CreateDate = 39065.872423495400000000 + ReportOptions.LastChange = 39329.847549722220000000 + ScriptLanguage = 'PascalScript' + ScriptText.Strings = ( + 'var' + ' Pagina: Variant;' + '' + '' + 'procedure DatosEmpresaOnBeforePrint(Sender: TfrxComponent);' + 'var' + ' Cadena: String;' + 'begin' + ' DatosEmpresa.Lines.Clear;' + ' if ( <> '#39#39') then' + ' Cadena := '#39'TLF: '#39' + ;' + ' DatosEmpresa.Lines.Add(Cadena);' + '' + ' Cadena := '#39#39';' + ' if ( <> '#39#39') then' + ' Cadena := '#39'FAX: '#39' + ;' + ' DatosEmpresa.Lines.Add(Cadena);' + 'end;' + '' + 'procedure NombreEmpresaOnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' NombreEmpresa.Lines.Clear;' + ' NombreEmpresa.Lines.Add();' + 'end;' + '' + 'procedure PageHeader1OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if not Engine.FinalPass then' + ' Set('#39'TotalPaginas'#39', ( + 1));' + '' + ' if Engine.FinalPass then' + ' Set('#39'Pagina'#39', ( + 1));' + 'end;' + '' + 'procedure frxReportOnStartReport(Sender: TfrxComponent);' + 'begin' + ' Set('#39'Pagina'#39', 0);' + ' Set('#39'TotalPaginas'#39', 0);' + 'end;' + '' + 'begin' + '' + 'end.') + ShowProgress = False + StoreInDFM = False + OnStartReport = 'frxReportOnStartReport' + Left = 169 + Top = 16 + end + object frxDBCabecera: TfrxDBDataset + UserName = 'frxDBCabecera' + CloseDataSource = False + DataSource = DADataCabecera + Left = 264 + Top = 16 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 88 + end +end diff --git a/Source/Modulos/Contactos/Reports/uRptFichasEmpleado_Server.pas b/Source/Modulos/Contactos/Reports/uRptFichasEmpleado_Server.pas new file mode 100644 index 0000000..d0ea260 --- /dev/null +++ b/Source/Modulos/Contactos/Reports/uRptFichasEmpleado_Server.pas @@ -0,0 +1,115 @@ +unit uRptFichasEmpleado_Server; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, frxClass, frxDBSet, uDAScriptingProvider, + uDADataTable, uDACDSDataTable, DB, uDAClasses, frxChart, frxGradient, + frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes, + uDAInterfaces, uDADataStreamer, uDABin2DataStreamer, uDAMemDataTable, + FactuGES_Intf; + +type + TRptFichasEmpleado = class(TDataModule) + DADataCabecera: TDADataSource; + tbl_FichaEmpleado: TDAMemDataTable; + frxRichObject1: TfrxRichObject; + frxBarCodeObject1: TfrxBarCodeObject; + frxOLEObject1: TfrxOLEObject; + frxCrossObject1: TfrxCrossObject; + frxCheckBoxObject1: TfrxCheckBoxObject; + frxGradientObject1: TfrxGradientObject; + frxChartObject1: TfrxChartObject; + frxDBCabecera: TfrxDBDataset; + schReport: TDASchema; + DataDictionary: TDADataDictionary; + frxReport: TfrxReport; + Bin2DataStreamer: TDABin2DataStreamer; + procedure DataModuleCreate(Sender: TObject); + procedure DataModuleDestroy(Sender: TObject); + private + FConnection: IDAConnection; + //Genera cada uno de los albaranes a imprimir + procedure _GenerarFicha(const ID: Integer); + public + function GenerarFicha(const ListaID: TIntegerArray): Binary; + end; + +implementation + +{$R *.dfm} + +uses + uSistemaFunc, uDataModuleServer, schContactosClient_Intf; + +const + rptFichaEmpleado = 'InfFichaEmpleado.fr3'; + + { Dataset names for schReport } + ds_InformeFichaEmpleado = 'InformeFichasEmpleado'; + + +{ TRptFichaEmpleado } + + +procedure TRptFichasEmpleado.DataModuleCreate(Sender: TObject); +begin + schReport.ConnectionManager := dmServer.ConnectionManager; + FConnection := dmServer.DarNuevaConexion; + frxReport.EngineOptions.NewSilentMode := simReThrow; + + frxDBCabecera.DataSource := DADataCabecera; + frxDBCabecera.CloseDataSource := False; +end; + +procedure TRptFichasEmpleado.DataModuleDestroy(Sender: TObject); +begin + tbl_FichaEmpleado.Active := False; +end; + +function TRptFichasEmpleado.GenerarFicha(const ListaID: TIntegerArray): Binary; +var + i: Integer; +begin + Result := Binary.Create; + try + //Vamos generando todos y cada uno de las fichas de empleado + for i := 0 to ListaID.Count - 1 do + _GenerarFicha(ListaID.Items[i]); + + frxReport.PreviewPages.SaveToStream(Result); + finally + end; +end; + +procedure TRptFichasEmpleado._GenerarFicha(const ID: Integer); +var + AStream: TMemoryStream; + dsMaster: IDADataset; + AInforme: Variant; +begin + AStream := TMemoryStream.Create; + FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + try + dsMaster := schReport.NewDataset(FConnection, ds_InformeFichaEmpleado, ['ID'], [ID]); + + AStream.Clear; + Bin2DataStreamer.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1); + Bin2DataStreamer.ReadDataset(AStream, tbl_FichaEmpleado, TRUE, '', TRUE, TRUE); + + AInforme := DarRutaFichero(DarRutaInformes, rptFichaEmpleado); + if VarIsNull(AInforme) then + raise Exception.Create (('Error Servidor: _GenerarFicha, no encuentra informe ' + rptFichaEmpleado)); + + frxReport.LoadFromFile(AInforme, True); + frxReport.PrepareReport(False); + + finally + FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + AStream.Free; + dsMaster := Nil; + end; +end; + +end. diff --git a/Source/Modulos/Contactos/Servidor/srvContactos_Impl.dcu b/Source/Modulos/Contactos/Servidor/srvContactos_Impl.dcu new file mode 100644 index 0000000..798698c Binary files /dev/null and b/Source/Modulos/Contactos/Servidor/srvContactos_Impl.dcu differ diff --git a/Source/Modulos/Contactos/Servidor/srvContactos_Impl.dfm b/Source/Modulos/Contactos/Servidor/srvContactos_Impl.dfm new file mode 100644 index 0000000..9a21bd3 --- /dev/null +++ b/Source/Modulos/Contactos/Servidor/srvContactos_Impl.dfm @@ -0,0 +1,5604 @@ +object srvContactos: TsrvContactos + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + ConnectionName = 'IBX' + ServiceSchema = schContactos + ServiceDataStreamer = Bin2DataStreamer + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + Height = 347 + Width = 444 + object schContactos: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Diagrams = Diagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_CONTACTOS' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_CATEGORIA' + TableField = 'ID_CATEGORIA' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end + item + DatasetField = 'TELEFONO_1' + TableField = 'TELEFONO_1' + end + item + DatasetField = 'TELEFONO_2' + TableField = 'TELEFONO_2' + end + item + DatasetField = 'MOVIL_1' + TableField = 'MOVIL_1' + end + item + DatasetField = 'MOVIL_2' + TableField = 'MOVIL_2' + end + item + DatasetField = 'FAX' + TableField = 'FAX' + end + item + DatasetField = 'EMAIL_1' + TableField = 'EMAIL_1' + end + item + DatasetField = 'EMAIL_2' + TableField = 'EMAIL_2' + end + item + DatasetField = 'PAGINA_WEB' + TableField = 'PAGINA_WEB' + end + item + DatasetField = 'NOTAS' + TableField = 'NOTAS' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end> + end> + Name = 'Contactos' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_CONTACTOS_ID' + ServerAutoRefresh = True + DictionaryEntry = 'Contactos_ID' + InPrimaryKey = True + end + item + Name = 'ID_CATEGORIA' + DataType = datInteger + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + DictionaryEntry = 'Contactos_NIF_CIF' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_NOMBRE' + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_PERSONA_CONTACTO' + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_CALLE' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_POBLACION' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_PROVINCIA' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DictionaryEntry = 'Contactos_CODIGO_POSTAL' + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + DictionaryEntry = 'Contactos_TELEFONO_1' + end + item + Name = 'TELEFONO_2' + DataType = datString + Size = 25 + DictionaryEntry = 'Contactos_TELEFONO_2' + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + DictionaryEntry = 'Contactos_MOVIL_1' + end + item + Name = 'MOVIL_2' + DataType = datString + Size = 25 + DictionaryEntry = 'Contactos_MOVIL_2' + end + item + Name = 'FAX' + DataType = datString + Size = 25 + DictionaryEntry = 'Contactos_FAX' + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_EMAIL_1' + end + item + Name = 'EMAIL_2' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_EMAIL_2' + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_PAGINA_WEB' + end + item + Name = 'NOTAS' + DataType = datMemo + BlobType = dabtMemo + DictionaryEntry = 'Contactos_NOTAS' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'Contactos_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'Contactos_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'Contactos_USUARIO' + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + ServerAutoRefresh = True + DictionaryEntry = 'Contactos_REFERENCIA' + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CLIENTES_GRUPOS' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'ID' + TableField = 'ID' + end> + end> + Name = 'GruposCliente' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_CLIENTES_GRUPOS_ID' + DictionaryEntry = 'GruposCliente_ID' + InPrimaryKey = True + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DictionaryEntry = 'GruposCliente_DESCRIPCION' + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CONTACTOS_DATOS_BANCO' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_CONTACTO' + TableField = 'ID_CONTACTO' + end + item + DatasetField = 'TITULAR' + TableField = 'TITULAR' + end + item + DatasetField = 'ENTIDAD' + TableField = 'ENTIDAD' + end + item + DatasetField = 'SUCURSAL' + TableField = 'SUCURSAL' + end + item + DatasetField = 'DC' + TableField = 'DC' + end + item + DatasetField = 'CUENTA' + TableField = 'CUENTA' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end> + end> + Name = 'DatosBancarios' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_CONTACTOS_DATOS_BANCO_ID' + ServerAutoRefresh = True + DictionaryEntry = 'DatosBancarios_ID' + InPrimaryKey = True + end + item + Name = 'ID_CONTACTO' + DataType = datInteger + DictionaryEntry = 'DatosBancarios_ID_CONTACTO' + end + item + Name = 'TITULAR' + DataType = datString + Size = 255 + DictionaryEntry = 'DatosBancarios_TITULAR' + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + DictionaryEntry = 'DatosBancarios_ENTIDAD' + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + DictionaryEntry = 'DatosBancarios_SUCURSAL' + end + item + Name = 'DC' + DataType = datString + Size = 15 + DictionaryEntry = 'DatosBancarios_DC' + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + DictionaryEntry = 'DatosBancarios_CUENTA' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_CLIENTES' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_CATEGORIA' + TableField = 'ID_CATEGORIA' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end + item + DatasetField = 'TELEFONO_1' + TableField = 'TELEFONO_1' + end + item + DatasetField = 'TELEFONO_2' + TableField = 'TELEFONO_2' + end + item + DatasetField = 'MOVIL_1' + TableField = 'MOVIL_1' + end + item + DatasetField = 'MOVIL_2' + TableField = 'MOVIL_2' + end + item + DatasetField = 'FAX' + TableField = 'FAX' + end + item + DatasetField = 'EMAIL_1' + TableField = 'EMAIL_1' + end + item + DatasetField = 'EMAIL_2' + TableField = 'EMAIL_2' + end + item + DatasetField = 'PAGINA_WEB' + TableField = 'PAGINA_WEB' + end + item + DatasetField = 'NOTAS' + TableField = 'NOTAS' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'GRUPO_CLIENTE' + TableField = 'GRUPO_CLIENTE' + end + item + DatasetField = 'NOMBRE_COMERCIAL' + TableField = 'NOMBRE_COMERCIAL' + end + item + DatasetField = 'BLOQUEADO' + TableField = 'BLOQUEADO' + end + item + DatasetField = 'REGIMEN_IVA' + TableField = 'REGIMEN_IVA' + end + item + DatasetField = 'MOTIVO_BLOQUEO' + TableField = 'MOTIVO_BLOQUEO' + end + item + DatasetField = 'RECARGO_EQUIVALENCIA' + TableField = 'RECARGO_EQUIVALENCIA' + end + item + DatasetField = 'ID_TIPO_IVA' + TableField = 'ID_TIPO_IVA' + end + item + DatasetField = 'ID_FORMA_PAGO' + TableField = 'ID_FORMA_PAGO' + end + item + DatasetField = 'TIENDA_WEB' + TableField = 'TIENDA_WEB' + end + item + DatasetField = 'CODIGO_ASIGNADO' + TableField = 'CODIGO_ASIGNADO' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'VENCIMIENTO_FACTURAS_1' + TableField = 'VENCIMIENTO_FACTURAS_1' + end + item + DatasetField = 'VENCIMIENTO_FACTURAS_2' + TableField = 'VENCIMIENTO_FACTURAS_2' + end + item + DatasetField = 'VENCIMIENTO_FACTURAS_3' + TableField = 'VENCIMIENTO_FACTURAS_3' + end + item + DatasetField = 'FELICITACION' + TableField = 'FELICITACION' + end + item + DatasetField = 'ID_AGENTE' + TableField = 'ID_AGENTE' + end + item + DatasetField = 'AGENTE' + TableField = 'AGENTE' + end + item + DatasetField = 'RAPEL' + TableField = 'RAPEL' + end + item + DatasetField = 'EMAIL_ADMINISTRACION' + TableField = 'EMAIL_ADMINISTRACION' + end> + end> + Name = 'Clientes' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_CONTACTOS_ID' + ServerAutoRefresh = True + DictionaryEntry = 'Contactos_ID' + InPrimaryKey = True + end + item + Name = 'ID_CATEGORIA' + DataType = datInteger + DictionaryEntry = 'Contactos_ID_CATEGORIA' + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + DictionaryEntry = 'Contactos_NIF_CIF' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_NOMBRE' + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_PERSONA_CONTACTO' + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_CALLE' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_POBLACION' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_PROVINCIA' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DictionaryEntry = 'Contactos_CODIGO_POSTAL' + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + DictionaryEntry = 'Contactos_TELEFONO_1' + end + item + Name = 'TELEFONO_2' + DataType = datString + Size = 25 + DictionaryEntry = 'Contactos_TELEFONO_2' + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + DictionaryEntry = 'Contactos_MOVIL_1' + end + item + Name = 'MOVIL_2' + DataType = datString + Size = 25 + DictionaryEntry = 'Contactos_MOVIL_2' + end + item + Name = 'FAX' + DataType = datString + Size = 25 + DictionaryEntry = 'Contactos_FAX' + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_EMAIL_1' + end + item + Name = 'EMAIL_2' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_EMAIL_2' + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_PAGINA_WEB' + end + item + Name = 'NOTAS' + DataType = datMemo + BlobType = dabtMemo + DictionaryEntry = 'Contactos_NOTAS' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'Contactos_USUARIO' + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'Contactos_ID_EMPRESA' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + ServerAutoRefresh = True + DictionaryEntry = 'Clientes_REFERENCIA' + end + item + Name = 'ID_AGENTE' + DataType = datInteger + end + item + Name = 'GRUPO_CLIENTE' + DataType = datString + Size = 255 + DictionaryEntry = 'Clientes_GRUPO_CLIENTE' + end + item + Name = 'NOMBRE_COMERCIAL' + DataType = datString + Size = 255 + DictionaryEntry = 'Clientes_NOMBRE_COMERCIAL' + end + item + Name = 'VENCIMIENTO_FACTURAS_1' + DataType = datSmallInt + end + item + Name = 'VENCIMIENTO_FACTURAS_2' + DataType = datSmallInt + end + item + Name = 'VENCIMIENTO_FACTURAS_3' + DataType = datSmallInt + end + item + Name = 'BLOQUEADO' + DataType = datSmallInt + DictionaryEntry = 'Clientes_BLOQUEADO' + end + item + Name = 'AGENTE' + DataType = datString + Size = 255 + end + item + Name = 'RAPEL' + DataType = datSmallInt + end + item + Name = 'EMAIL_ADMINISTRACION' + DataType = datString + Size = 255 + end + item + Name = 'REGIMEN_IVA' + DataType = datString + Size = 255 + DictionaryEntry = 'Clientes_REGIMEN_IVA' + end + item + Name = 'MOTIVO_BLOQUEO' + DataType = datString + Size = 255 + DictionaryEntry = 'Clientes_MOTIVO_BLOQUEO' + end + item + Name = 'RECARGO_EQUIVALENCIA' + DataType = datInteger + DictionaryEntry = 'Clientes_RECARGO_EQUIVALENCIA' + end + item + Name = 'ID_TIPO_IVA' + DataType = datInteger + DictionaryEntry = 'Clientes_ID_TIPO_IVA' + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + DictionaryEntry = 'Clientes_ID_FORMA_PAGO' + end + item + Name = 'TIENDA_WEB' + DataType = datSmallInt + DictionaryEntry = 'Clientes_TIENDA_WEB' + end + item + Name = 'CODIGO_ASIGNADO' + DataType = datString + Size = 255 + end + item + Name = 'DESCUENTO' + DataType = datFloat + end + item + Name = 'FELICITACION' + DataType = datSmallInt + DictionaryEntry = 'Clientes_FELICITACION' + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_PROVEEDORES' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_CATEGORIA' + TableField = 'ID_CATEGORIA' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end + item + DatasetField = 'TELEFONO_1' + TableField = 'TELEFONO_1' + end + item + DatasetField = 'TELEFONO_2' + TableField = 'TELEFONO_2' + end + item + DatasetField = 'MOVIL_1' + TableField = 'MOVIL_1' + end + item + DatasetField = 'MOVIL_2' + TableField = 'MOVIL_2' + end + item + DatasetField = 'FAX' + TableField = 'FAX' + end + item + DatasetField = 'EMAIL_1' + TableField = 'EMAIL_1' + end + item + DatasetField = 'EMAIL_2' + TableField = 'EMAIL_2' + end + item + DatasetField = 'PAGINA_WEB' + TableField = 'PAGINA_WEB' + end + item + DatasetField = 'NOTAS' + TableField = 'NOTAS' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'DESCRIPCION_PROVEEDOR' + TableField = 'DESCRIPCION_PROVEEDOR' + end + item + DatasetField = 'CODIGO_ASIGNADO' + TableField = 'CODIGO_ASIGNADO' + end + item + DatasetField = 'GRUPO_PROVEEDOR' + TableField = 'GRUPO_PROVEEDOR' + end + item + DatasetField = 'REGIMEN_IVA' + TableField = 'REGIMEN_IVA' + end + item + DatasetField = 'ID_TIPO_IVA' + TableField = 'ID_TIPO_IVA' + end + item + DatasetField = 'ID_FORMA_PAGO' + TableField = 'ID_FORMA_PAGO' + end + item + DatasetField = 'TIENDA_WEB' + TableField = 'TIENDA_WEB' + end + item + DatasetField = 'HOMOLOGADO' + TableField = 'HOMOLOGADO' + end + item + DatasetField = 'CERTIFICACION' + TableField = 'CERTIFICACION' + end + item + DatasetField = 'SUBCONTRATA' + TableField = 'SUBCONTRATA' + end + item + DatasetField = 'VENCIMIENTO_FACTURAS_1' + TableField = 'VENCIMIENTO_FACTURAS_1' + end + item + DatasetField = 'VENCIMIENTO_FACTURAS_2' + TableField = 'VENCIMIENTO_FACTURAS_2' + end + item + DatasetField = 'VENCIMIENTO_FACTURAS_3' + TableField = 'VENCIMIENTO_FACTURAS_3' + end + item + DatasetField = 'EMAIL_ADMINISTRACION' + TableField = 'EMAIL_ADMINISTRACION' + end> + end> + Name = 'Proveedores' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_CONTACTOS_ID' + ServerAutoRefresh = True + DictionaryEntry = 'Contactos_ID' + InPrimaryKey = True + end + item + Name = 'ID_CATEGORIA' + DataType = datInteger + DictionaryEntry = 'Contactos_ID_CATEGORIA' + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + DictionaryEntry = 'Contactos_NIF_CIF' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_NOMBRE' + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_PERSONA_CONTACTO' + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_CALLE' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_POBLACION' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_PROVINCIA' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DictionaryEntry = 'Contactos_CODIGO_POSTAL' + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + DictionaryEntry = 'Contactos_TELEFONO_1' + end + item + Name = 'TELEFONO_2' + DataType = datString + Size = 25 + DictionaryEntry = 'Contactos_TELEFONO_2' + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + DictionaryEntry = 'Contactos_MOVIL_1' + end + item + Name = 'MOVIL_2' + DataType = datString + Size = 25 + DictionaryEntry = 'Contactos_MOVIL_2' + end + item + Name = 'FAX' + DataType = datString + Size = 25 + DictionaryEntry = 'Contactos_FAX' + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_EMAIL_1' + end + item + Name = 'EMAIL_2' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_EMAIL_2' + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_PAGINA_WEB' + end + item + Name = 'NOTAS' + DataType = datMemo + BlobType = dabtMemo + DictionaryEntry = 'Contactos_NOTAS' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'Proveedores_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'Proveedores_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'Contactos_USUARIO' + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'Contactos_ID_EMPRESA' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + ServerAutoRefresh = True + DictionaryEntry = 'Proveedores_REFERENCIA' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DictionaryEntry = 'Proveedores_DESCUENTO' + end + item + Name = 'DESCRIPCION_PROVEEDOR' + DataType = datString + Size = 255 + DictionaryEntry = 'Proveedores_DESCRIPCION_PROVEEDOR' + end + item + Name = 'CODIGO_ASIGNADO' + DataType = datString + Size = 255 + DictionaryEntry = 'Proveedores_CODIGO_ASIGNADO' + end + item + Name = 'GRUPO_PROVEEDOR' + DataType = datString + DictionaryEntry = 'Proveedores_GRUPO_PROVEEDOR' + end + item + Name = 'REGIMEN_IVA' + DataType = datString + Size = 255 + DictionaryEntry = 'Proveedores_REGIMEN_IVA' + end + item + Name = 'ID_TIPO_IVA' + DataType = datInteger + DictionaryEntry = 'Proveedores_ID_TIPO_IVA' + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + DictionaryEntry = 'Proveedores_ID_FORMA_PAGO' + end + item + Name = 'TIENDA_WEB' + DataType = datSmallInt + DictionaryEntry = 'Proveedores_TIENDA_WEB' + end + item + Name = 'HOMOLOGADO' + DataType = datSmallInt + DictionaryEntry = 'Proveedores_HOMOLOGADO' + end + item + Name = 'CERTIFICACION' + DataType = datString + Size = 255 + DictionaryEntry = 'Proveedores_CERTIFICACION' + end + item + Name = 'SUBCONTRATA' + DataType = datSmallInt + DictionaryEntry = 'Proveedores_SUBCONTRATA' + end + item + Name = 'EMAIL_ADMINISTRACION' + DataType = datString + Size = 255 + end + item + Name = 'VENCIMIENTO_FACTURAS_1' + DataType = datSmallInt + end + item + Name = 'VENCIMIENTO_FACTURAS_2' + DataType = datSmallInt + end + item + Name = 'VENCIMIENTO_FACTURAS_3' + DataType = datSmallInt + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_EMPLEADOS' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_CATEGORIA' + TableField = 'ID_CATEGORIA' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end + item + DatasetField = 'TELEFONO_1' + TableField = 'TELEFONO_1' + end + item + DatasetField = 'TELEFONO_2' + TableField = 'TELEFONO_2' + end + item + DatasetField = 'MOVIL_1' + TableField = 'MOVIL_1' + end + item + DatasetField = 'MOVIL_2' + TableField = 'MOVIL_2' + end + item + DatasetField = 'FAX' + TableField = 'FAX' + end + item + DatasetField = 'EMAIL_1' + TableField = 'EMAIL_1' + end + item + DatasetField = 'EMAIL_2' + TableField = 'EMAIL_2' + end + item + DatasetField = 'PAGINA_WEB' + TableField = 'PAGINA_WEB' + end + item + DatasetField = 'NOTAS' + TableField = 'NOTAS' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'FECHA_NACIMIENTO' + TableField = 'FECHA_NACIMIENTO' + end + item + DatasetField = 'CATEGORIA' + TableField = 'CATEGORIA' + end + item + DatasetField = 'FECHA_ALTA_EMPRESA' + TableField = 'FECHA_ALTA_EMPRESA' + end + item + DatasetField = 'FORMACION_BASE' + TableField = 'FORMACION_BASE' + end + item + DatasetField = 'FORMACION_COMPLE' + TableField = 'FORMACION_COMPLE' + end + item + DatasetField = 'FORMACION_RECIBIDA' + TableField = 'FORMACION_RECIBIDA' + end + item + DatasetField = 'EXPERIENCIA' + TableField = 'EXPERIENCIA' + end + item + DatasetField = 'CONTRATO' + TableField = 'CONTRATO' + end + item + DatasetField = 'DURACION' + TableField = 'DURACION' + end + item + DatasetField = 'FECHA_BAJA' + TableField = 'FECHA_BAJA' + end + item + DatasetField = 'CAUSA_BAJA' + TableField = 'CAUSA_BAJA' + end> + end> + Name = 'Empleados' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_CONTACTOS_ID' + ServerAutoRefresh = True + DictionaryEntry = 'Contactos_ID' + InPrimaryKey = True + end + item + Name = 'ID_CATEGORIA' + DataType = datInteger + DictionaryEntry = 'Contactos_ID_CATEGORIA' + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + DictionaryEntry = 'Contactos_NIF_CIF' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_NOMBRE' + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_PERSONA_CONTACTO' + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_CALLE' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_POBLACION' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_PROVINCIA' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DictionaryEntry = 'Contactos_CODIGO_POSTAL' + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + DictionaryEntry = 'Contactos_TELEFONO_1' + end + item + Name = 'TELEFONO_2' + DataType = datString + Size = 25 + DictionaryEntry = 'Contactos_TELEFONO_2' + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + DictionaryEntry = 'Contactos_MOVIL_1' + end + item + Name = 'MOVIL_2' + DataType = datString + Size = 25 + DictionaryEntry = 'Contactos_MOVIL_2' + end + item + Name = 'FAX' + DataType = datString + Size = 25 + DictionaryEntry = 'Contactos_FAX' + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_EMAIL_1' + end + item + Name = 'EMAIL_2' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_EMAIL_2' + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_PAGINA_WEB' + end + item + Name = 'NOTAS' + DataType = datMemo + BlobType = dabtMemo + DictionaryEntry = 'Contactos_NOTAS' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'Empleados_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'Empleados_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'Contactos_USUARIO' + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'Contactos_ID_EMPRESA' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + ServerAutoRefresh = True + DictionaryEntry = 'Empleados_REFERENCIA' + end + item + Name = 'FECHA_NACIMIENTO' + DataType = datDateTime + DictionaryEntry = 'Empleados_FECHA_NACIMIENTO' + end + item + Name = 'CATEGORIA' + DataType = datString + Size = 255 + DictionaryEntry = 'Empleados_CATEGORIA' + end + item + Name = 'FECHA_ALTA_EMPRESA' + DataType = datDateTime + DictionaryEntry = 'Empleados_FECHA_ALTA_EMPRESA' + end + item + Name = 'FORMACION_BASE' + DataType = datMemo + DictionaryEntry = 'Empleados_FORMACION_BASE' + end + item + Name = 'FORMACION_COMPLE' + DataType = datMemo + DictionaryEntry = 'Empleados_FORMACION_COMPLE' + end + item + Name = 'FORMACION_RECIBIDA' + DataType = datMemo + DictionaryEntry = 'Empleados_FORMACION_RECIBIDA' + end + item + Name = 'EXPERIENCIA' + DataType = datMemo + DictionaryEntry = 'Empleados_EXPERIENCIA' + end + item + Name = 'CONTRATO' + DataType = datString + Size = 255 + DictionaryEntry = 'Empleados_CONTRATO' + end + item + Name = 'DURACION' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_BAJA' + DataType = datDateTime + end + item + Name = 'CAUSA_BAJA' + DataType = datString + Size = 255 + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CONTACTOS_DIRECCIONES' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_CONTACTO' + TableField = 'ID_CONTACTO' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end + item + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'TELEFONO' + TableField = 'TELEFONO' + end + item + DatasetField = 'MOVIL' + TableField = 'MOVIL' + end + item + DatasetField = 'FAX' + TableField = 'FAX' + end + item + DatasetField = 'EMAIL' + TableField = 'EMAIL' + end + item + DatasetField = 'NOTAS' + TableField = 'NOTAS' + end + item + DatasetField = 'PORTE' + TableField = 'PORTE' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end> + end> + Name = 'DireccionesContacto' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_CONTACTOS_DIR_ID' + ServerAutoRefresh = True + DictionaryEntry = 'DireccionesContacto_ID' + InPrimaryKey = True + end + item + Name = 'ID_CONTACTO' + DataType = datInteger + DictionaryEntry = 'DireccionesContacto_ID_CONTACTO' + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DictionaryEntry = 'DireccionesContacto_CALLE' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DictionaryEntry = 'DireccionesContacto_POBLACION' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'DireccionesContacto_PROVINCIA' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DictionaryEntry = 'DireccionesContacto_CODIGO_POSTAL' + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + DictionaryEntry = 'DireccionesContacto_PERSONA_CONTACTO' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DictionaryEntry = 'DireccionesContacto_NOMBRE' + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + DictionaryEntry = 'DireccionesContacto_TELEFONO' + end + item + Name = 'MOVIL' + DataType = datString + Size = 25 + DictionaryEntry = 'Contactos_MOVIL_1' + end + item + Name = 'FAX' + DataType = datString + Size = 25 + DictionaryEntry = 'Contactos_FAX' + end + item + Name = 'EMAIL' + DataType = datString + Size = 255 + DictionaryEntry = 'DireccionesContacto_EMAIL' + end + item + Name = 'NOTAS' + DataType = datMemo + DictionaryEntry = 'DireccionesContacto_NOTAS' + end + item + Name = 'PORTE' + DataType = datFloat + DictionaryEntry = 'DireccionesContacto_PORTE' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + SQL = + 'SELECT '#10' CLIENTES_DTOS_PROVEEDORES.ID,'#10' CLIENTES_DTOS_PROV' + + 'EEDORES.ID_CLIENTE,'#10' CLIENTES_DTOS_PROVEEDORES.ID_PROVEEDOR,'#10 + + ' CONTACTOS.NOMBRE,'#10' CLIENTES_DTOS_PROVEEDORES.DESCUENTO'#10' ' + + 'FROM'#10' CLIENTES_DTOS_PROVEEDORES'#10' LEFT JOIN CONTACTOS ON (CON' + + 'TACTOS.ID = CLIENTES_DTOS_PROVEEDORES.ID_PROVEEDOR)'#10'WHERE {Where' + + '}'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'ID_PROVEEDOR' + TableField = 'ID_PROVEEDOR' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end> + end> + Name = 'ClientesDescuentos' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_CLIENTES_DTOS_PROV_ID' + ServerAutoRefresh = True + DictionaryEntry = 'ClientesDescuentos_ID' + InPrimaryKey = True + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + DictionaryEntry = 'ClientesDescuentos_ID_CLIENTE' + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + DictionaryEntry = 'ClientesDescuentos_ID_PROVEEDOR' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'ClientesDescuentos_NOMBRE' + ServerAutoRefresh = True + end + item + Name = 'DESCUENTO' + DataType = datFloat + DictionaryEntry = 'ClientesDescuentos_DESCUENTO' + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PROVEEDORES_GRUPOS' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'ID' + TableField = 'ID' + end> + end> + Name = 'GruposProveedor' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_PROVEEDORES_GRUPOS_ID' + DictionaryEntry = 'GruposProveedor_ID' + InPrimaryKey = True + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DictionaryEntry = 'GruposProveedor_DESCRIPCION' + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'EMPLEADOS_GRUPOS' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'ID' + TableField = 'ID' + end> + end> + Name = 'GruposEmpleado' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_EMPLEADOS_GRUPOS_ID' + DictionaryEntry = 'GruposEmpleado_ID' + InPrimaryKey = True + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DictionaryEntry = 'GruposEmpleado_DESCRIPCION' + end> + end + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_CONTACTOS_ID' + Value = '2' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'CONTACTOS' + SQL = + 'SELECT '#10' ID, NIF_CIF, NOMBRE, CALLE, POBLACION, PROVINCIA, CO' + + 'DIGO_POSTAL, '#10' TELEFONO_1, TELEFONO_2, MOVIL_1, MOVIL_2, FAX,' + + ' EMAIL_1, '#10' EMAIL_2, PAGINA_WEB, NOTAS, FECHA_ALTA, FECHA_MOD' + + 'IFICACION, '#10' USUARIO, REFERENCIA, PERSONA_CONTACTO'#10' FROM'#10' ' + + ' CONTACTOS'#10' WHERE {where}'#10' and ID = :ID'#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end + item + DatasetField = 'TELEFONO_1' + TableField = 'TELEFONO_1' + end + item + DatasetField = 'TELEFONO_2' + TableField = 'TELEFONO_2' + end + item + DatasetField = 'MOVIL_1' + TableField = 'MOVIL_1' + end + item + DatasetField = 'MOVIL_2' + TableField = 'MOVIL_2' + end + item + DatasetField = 'FAX' + TableField = 'FAX' + end + item + DatasetField = 'EMAIL_1' + TableField = 'EMAIL_1' + end + item + DatasetField = 'EMAIL_2' + TableField = 'EMAIL_2' + end + item + DatasetField = 'PAGINA_WEB' + TableField = 'PAGINA_WEB' + end + item + DatasetField = 'NOTAS' + TableField = 'NOTAS' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end> + end> + Name = 'Contactos_Refresh' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_CONTACTOS_ID' + DictionaryEntry = 'Contactos_ID' + InPrimaryKey = True + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + Required = True + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + end + item + Name = 'TELEFONO_2' + DataType = datString + Size = 25 + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + end + item + Name = 'MOVIL_2' + DataType = datString + Size = 25 + end + item + Name = 'FAX' + DataType = datString + Size = 25 + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + end + item + Name = 'EMAIL_2' + DataType = datString + Size = 255 + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + end + item + Name = 'NOTAS' + DataType = datMemo + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + end + item + Name = 'USUARIO' + DataType = datString + Size = 30 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + end> + end + item + IsPublic = False + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'EMPLEADOS_DATOS' + SQL = + 'SELECT '#10' DISTINCT CONTRATO'#10' FROM'#10' EMPLEADOS_DATOS'#10' WHERE {' + + 'Where}'#10' ORDER BY CONTRATO'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CONTRATO' + TableField = 'CONTRATO' + end> + end> + Name = 'ContratosEmpleados' + Fields = < + item + Name = 'CONTRATO' + DataType = datString + Size = 255 + DictionaryEntry = 'Empleados_CONTRATO' + end> + end + item + IsPublic = False + Params = <> + Statements = < + item + ConnectionType = 'Interbase' + Default = True + TargetTable = 'PROVEEDORES_DATOS' + SQL = + 'SELECT '#10' DISTINCT DESCRIPCION_PROVEEDOR'#10' FROM'#10' PROVEEDORE' + + 'S_DATOS'#10' WHERE {Where}'#10' ORDER BY DESCRIPCION_PROVEEDOR'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'DESCRIPCION_PROVEEDOR' + TableField = 'DESCRIPCION_PROVEEDOR' + end> + end> + Name = 'DescripcionesProveedores' + Fields = < + item + Name = 'DESCRIPCION_PROVEEDOR' + DataType = datString + Size = 255 + DictionaryEntry = 'Proveedores_DESCRIPCION_PROVEEDOR' + end> + end + item + Params = <> + Statements = < + item + ConnectionType = 'Interbase' + Default = True + TargetTable = 'CONTACTOS_DATOS_PERSONAL' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_CONTACTO' + TableField = 'ID_CONTACTO' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'PUESTO' + TableField = 'PUESTO' + end + item + DatasetField = 'TELEFONO' + TableField = 'TELEFONO' + end + item + DatasetField = 'MOVIL' + TableField = 'MOVIL' + end + item + DatasetField = 'FAX' + TableField = 'FAX' + end + item + DatasetField = 'EMAIL' + TableField = 'EMAIL' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end> + end> + Name = 'PersonalContacto' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_CONTACTOS_PERSONAL_ID' + DictionaryEntry = 'PersonalContacto_ID' + InPrimaryKey = True + end + item + Name = 'ID_CONTACTO' + DataType = datInteger + DictionaryEntry = 'PersonalContacto_ID_CONTACTO' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DictionaryEntry = 'PersonalContacto_NOMBRE' + end + item + Name = 'PUESTO' + DataType = datString + Size = 255 + DictionaryEntry = 'PersonalContacto_PUESTO' + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + DictionaryEntry = 'PersonalContacto_TELEFONO' + end + item + Name = 'MOVIL' + DataType = datString + Size = 25 + DictionaryEntry = 'PersonalContacto_MOVIL' + end + item + Name = 'FAX' + DataType = datString + Size = 25 + DictionaryEntry = 'PersonalContacto_FAX' + end + item + Name = 'EMAIL' + DataType = datString + Size = 255 + DictionaryEntry = 'PersonalContacto_EMAIL' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'PersonalContacto_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'PersonalContacto_FECHA_MODIFICACION' + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'AGENTES_COMISIONES' + Name = 'IBX' + SQL = + 'SELECT'#10' AGENTES_COMISIONES.ID, AGENTES_COMISIONES.ID_AGENTE, ' + + 'AGENTES_COMISIONES.ID_PROVEEDOR,'#10' CONTACTOS.NOMBRE, AGENTES_C' + + 'OMISIONES.COMISION'#10' FROM'#10' AGENTES_COMISIONES'#10' LEFT JOIN CON' + + 'TACTOS ON (CONTACTOS.ID = AGENTES_COMISIONES.ID_PROVEEDOR)'#10' WHE' + + 'RE {Where}'#10' '#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_AGENTE' + TableField = 'ID_AGENTE' + end + item + DatasetField = 'ID_PROVEEDOR' + TableField = 'ID_PROVEEDOR' + end + item + DatasetField = 'NOMBRE' + TableField = '' + SQLOrigin = 'NOMBRE' + end + item + DatasetField = 'COMISION' + TableField = 'COMISION' + end> + end> + Name = 'Agentes_Comisiones' + Fields = < + item + Name = 'ID' + DataType = datInteger + ServerAutoRefresh = True + DictionaryEntry = 'Agentes_Comisiones_ID' + InPrimaryKey = True + end + item + Name = 'ID_AGENTE' + DataType = datInteger + DictionaryEntry = 'Agentes_Comisiones_ID_AGENTE' + end + item + Name = 'ID_PROVEEDOR' + DataType = datSmallInt + DictionaryEntry = 'Agentes_Comisiones_ID_PROVEEDOR' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DictionaryEntry = 'Agentes_Comisiones_NOMBRE' + end + item + Name = 'COMISION' + DataType = datFloat + DictionaryEntry = 'Agentes_Comisiones_COMISION' + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_AGENTES' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_CATEGORIA' + TableField = 'ID_CATEGORIA' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end + item + DatasetField = 'TELEFONO_1' + TableField = 'TELEFONO_1' + end + item + DatasetField = 'TELEFONO_2' + TableField = 'TELEFONO_2' + end + item + DatasetField = 'MOVIL_1' + TableField = 'MOVIL_1' + end + item + DatasetField = 'MOVIL_2' + TableField = 'MOVIL_2' + end + item + DatasetField = 'FAX' + TableField = 'FAX' + end + item + DatasetField = 'EMAIL_1' + TableField = 'EMAIL_1' + end + item + DatasetField = 'EMAIL_2' + TableField = 'EMAIL_2' + end + item + DatasetField = 'PAGINA_WEB' + TableField = 'PAGINA_WEB' + end + item + DatasetField = 'NOTAS' + TableField = 'NOTAS' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'FECHA_ALTA_EMPRESA' + TableField = 'FECHA_ALTA_EMPRESA' + end + item + DatasetField = 'FECHA_BAJA' + TableField = 'FECHA_BAJA' + end + item + DatasetField = 'CAUSA_BAJA' + TableField = 'CAUSA_BAJA' + end + item + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end> + end> + Name = 'Agentes' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_CONTACTOS_ID' + ServerAutoRefresh = True + DictionaryEntry = 'Contactos_ID' + InPrimaryKey = True + end + item + Name = 'ID_CATEGORIA' + DataType = datInteger + DictionaryEntry = 'Contactos_ID_CATEGORIA' + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + DictionaryEntry = 'Contactos_NIF_CIF' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_NOMBRE' + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_CALLE' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_POBLACION' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_PROVINCIA' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DictionaryEntry = 'Contactos_CODIGO_POSTAL' + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + DictionaryEntry = 'Contactos_TELEFONO_1' + end + item + Name = 'TELEFONO_2' + DataType = datString + Size = 25 + DictionaryEntry = 'Contactos_TELEFONO_2' + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + DictionaryEntry = 'Contactos_MOVIL_1' + end + item + Name = 'MOVIL_2' + DataType = datString + Size = 25 + DictionaryEntry = 'Contactos_MOVIL_2' + end + item + Name = 'FAX' + DataType = datString + Size = 25 + DictionaryEntry = 'Contactos_FAX' + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_EMAIL_1' + end + item + Name = 'EMAIL_2' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_EMAIL_2' + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + DictionaryEntry = 'Contactos_PAGINA_WEB' + end + item + Name = 'NOTAS' + DataType = datMemo + BlobType = dabtMemo + DictionaryEntry = 'Contactos_NOTAS' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'Empleados_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'Empleados_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'Contactos_USUARIO' + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'Contactos_ID_EMPRESA' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + ServerAutoRefresh = True + DictionaryEntry = 'Empleados_REFERENCIA' + end + item + Name = 'FECHA_ALTA_EMPRESA' + DataType = datDateTime + end + item + Name = 'FECHA_BAJA' + DataType = datDateTime + end + item + Name = 'CAUSA_BAJA' + DataType = datString + Size = 255 + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_CONTACTOS_ID' + Value = '' + ParamType = daptInput + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + Value = '' + ParamType = daptInput + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + Value = '' + ParamType = daptInput + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + Value = '' + ParamType = daptInput + end + item + Name = 'TELEFONO_2' + DataType = datString + Size = 25 + Value = '' + ParamType = daptInput + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + Value = '' + ParamType = daptInput + end + item + Name = 'MOVIL_2' + DataType = datString + Size = 25 + Value = '' + ParamType = daptInput + end + item + Name = 'FAX' + DataType = datString + Size = 25 + Value = '' + ParamType = daptInput + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'EMAIL_2' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'NOTAS' + DataType = datMemo + Value = '' + ParamType = daptInput + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + Value = '' + ParamType = daptInput + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CONTACTOS' + SQL = + 'INSERT'#10' INTO CONTACTOS'#10' (ID, NIF_CIF, NOMBRE, PERSONA_CONTAC' + + 'TO, CALLE, POBLACION, PROVINCIA, CODIGO_POSTAL,'#10' TELEFONO_1,' + + ' TELEFONO_2, MOVIL_1, MOVIL_2, FAX, EMAIL_1, '#10' EMAIL_2, PAGI' + + 'NA_WEB, NOTAS, USUARIO, REFERENCIA, FECHA_ALTA)'#10' VALUES'#10' (:I' + + 'D, :NIF_CIF, :NOMBRE, :PERSONA_CONTACTO, :CALLE, :POBLACION, :PR' + + 'OVINCIA,'#10' :CODIGO_POSTAL, :TELEFONO_1, :TELEFONO_2, :MOVIL_1' + + ', '#10' :MOVIL_2, :FAX, :EMAIL_1, :EMAIL_2, :PAGINA_WEB, :NOTAS,' + + ' '#10' :USUARIO, :REFERENCIA, CURRENT_TIMESTAMP)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_Contactos' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CONTACTOS' + SQL = 'DELETE '#10' FROM'#10' CONTACTOS'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_Contactos' + end + item + Params = < + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + Value = '' + ParamType = daptInput + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + Value = '' + ParamType = daptInput + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + Value = '' + ParamType = daptInput + end + item + Name = 'TELEFONO_2' + DataType = datString + Size = 25 + Value = '' + ParamType = daptInput + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + Value = '' + ParamType = daptInput + end + item + Name = 'MOVIL_2' + DataType = datString + Size = 25 + Value = '' + ParamType = daptInput + end + item + Name = 'FAX' + DataType = datString + Size = 25 + Value = '' + ParamType = daptInput + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'EMAIL_2' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'NOTAS' + DataType = datMemo + Value = '' + ParamType = daptInput + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + Value = '' + ParamType = daptInput + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CONTACTOS' + SQL = + 'UPDATE CONTACTOS'#10' SET '#10' NIF_CIF = :NIF_CIF,'#10' NOMBRE = :NO' + + 'MBRE, '#10' PERSONA_CONTACTO = :PERSONA_CONTACTO,'#10' CALLE = :CA' + + 'LLE, '#10' POBLACION = :POBLACION, '#10' PROVINCIA = :PROVINCIA, '#10 + + ' CODIGO_POSTAL = :CODIGO_POSTAL, '#10' TELEFONO_1 = :TELEFONO_' + + '1, '#10' TELEFONO_2 = :TELEFONO_2, '#10' MOVIL_1 = :MOVIL_1, '#10' ' + + 'MOVIL_2 = :MOVIL_2, '#10' FAX = :FAX, '#10' EMAIL_1 = :EMAIL_1, '#10' ' + + ' EMAIL_2 = :EMAIL_2, '#10' PAGINA_WEB = :PAGINA_WEB, '#10' NOTAS' + + ' = :NOTAS, '#10' USUARIO = :USUARIO,'#10' REFERENCIA = :REFERENCIA' + + ','#10' FECHA_MODIFICACION = CURRENT_TIMESTAMP'#10' WHERE'#10' (ID = :' + + 'OLD_ID)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_Contactos' + end + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_CONTACTOS_DATOS_BANCO_ID' + Value = '' + ParamType = daptInput + end + item + Name = 'ID_CONTACTO' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'TITULAR' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + Value = '' + ParamType = daptInput + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + Value = '' + ParamType = daptInput + end + item + Name = 'DC' + DataType = datString + Size = 15 + Value = '' + ParamType = daptInput + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CONTACTOS_DATOS_BANCO' + SQL = + 'INSERT'#10' INTO CONTACTOS_DATOS_BANCO'#10' (ID, ID_CONTACTO, TITULA' + + 'R, ENTIDAD, SUCURSAL, DC, CUENTA)'#10' VALUES'#10' (:ID, :ID_CONTACT' + + 'O, :TITULAR, :ENTIDAD, :SUCURSAL, :DC, :CUENTA)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_DatosBancarios' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CONTACTOS_DATOS_BANCO' + SQL = + 'DELETE '#10' FROM'#10' CONTACTOS_DATOS_BANCO'#10' WHERE'#10' (ID = :OLD_' + + 'ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_DatosBancarios' + end + item + Params = < + item + Name = 'ID_CONTACTO' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'TITULAR' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + Value = '' + ParamType = daptInput + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + Value = '' + ParamType = daptInput + end + item + Name = 'DC' + DataType = datString + Size = 15 + Value = '' + ParamType = daptInput + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CONTACTOS_DATOS_BANCO' + SQL = + 'UPDATE CONTACTOS_DATOS_BANCO'#10' SET '#10' ID_CONTACTO = :ID_CONTAC' + + 'TO, '#10' TITULAR = :TITULAR, '#10' ENTIDAD = :ENTIDAD, '#10' SUCUR' + + 'SAL = :SUCURSAL, '#10' DC = :DC, '#10' CUENTA = :CUENTA'#10' WHERE'#10' ' + + ' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_DatosBancarios' + end + item + Params = < + item + Name = 'ID_CONTACTO' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'ID_CATEGORIA' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CONTACTOS_CATEGORIAS' + SQL = + 'INSERT'#10' INTO CONTACTOS_CATEGORIAS'#10' (ID_CONTACTO, ID_CATEGORI' + + 'A)'#10' VALUES'#10' (:ID_CONTACTO, :ID_CATEGORIA)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_ContactosCategorias' + end + item + Params = < + item + Name = 'OLD_ID_CONTACTO' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID_CATEGORIA' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CONTACTOS_CATEGORIAS' + SQL = + 'DELETE '#10' FROM'#10' CONTACTOS_CATEGORIAS'#10' WHERE'#10' (ID_CONTACTO' + + ' = :OLD_ID_CONTACTO) AND '#10' (ID_CATEGORIA = :OLD_ID_CATEGORIA)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_ContactosCategorias' + end + item + Params = < + item + Name = 'ID_CONTACTO' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'ID_CATEGORIA' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID_CONTACTO' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID_CATEGORIA' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CONTACTOS_CATEGORIAS' + SQL = + 'UPDATE CONTACTOS_CATEGORIAS'#10' SET '#10' ID_CONTACTO = :ID_CONTACT' + + 'O, '#10' ID_CATEGORIA = :ID_CATEGORIA'#10' WHERE'#10' (ID_CONTACTO = ' + + ':OLD_ID_CONTACTO) AND '#10' (ID_CATEGORIA = :OLD_ID_CATEGORIA)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_ContactosCategorias' + end + item + Params = < + item + Name = 'ID_CONTACTO' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'EMPRESAS_CONTACTOS' + SQL = + 'INSERT INTO EMPRESAS_CONTACTOS'#10' (ID, ID_EMPRESA, ID_CONTACTO)' + + #10#10'SELECT (SELECT GEN_ID(GEN_EMPRESAS_CONTACTOS_ID, 1) FROM RDB$D' + + 'ATABASE), EMPRESAS.ID, :ID_CONTACTO'#10'FROM EMPRESAS'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_ContactoEmpresas' + end + item + Params = < + item + Name = 'OLD_ID_CONTACTO' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'EMPRESAS_CONTACTOS' + SQL = + 'DELETE '#10' FROM'#10' EMPRESAS_CONTACTOS'#10' WHERE'#10' (ID_CONTACTO =' + + ' :OLD_ID_CONTACTO)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_ContactoEmpresas' + end + item + Params = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'ID_CONTACTO' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID_EMPRESA' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID_CONTACTO' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'EMPRESAS_CONTACTOS' + SQL = + 'UPDATE EMPRESAS_CONTACTOS'#10' SET '#10' ID_EMPRESA = :ID_EMPRESA, '#10 + + ' ID_CONTACTO = :ID_CONTACTO'#10' WHERE'#10' (ID_EMPRESA = :OLD_ID' + + '_EMPRESA) AND '#10' (ID_CONTACTO = :OLD_ID_CONTACTO)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_ContactoEmpresa' + end + item + Params = < + item + Name = 'ID_CLIENTE' + DataType = datInteger + Value = '' + end + item + Name = 'GRUPO_CLIENTE' + DataType = datString + Size = 255 + Value = '' + end + item + Name = 'RECARGO_EQUIVALENCIA' + DataType = datSmallInt + Value = '' + end + item + Name = 'NOMBRE_COMERCIAL' + DataType = datString + Size = 255 + Value = '' + end + item + Name = 'BLOQUEADO' + DataType = datSmallInt + Value = '' + end + item + Name = 'MOTIVO_BLOQUEO' + DataType = datString + Size = 255 + Value = '' + end + item + Name = 'REGIMEN_IVA' + DataType = datString + Size = 255 + Value = '' + end + item + Name = 'ID_TIPO_IVA' + DataType = datInteger + Value = '' + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + Value = '' + end + item + Name = 'TIENDA_WEB' + DataType = datSmallInt + Value = '' + end + item + Name = 'CODIGO_ASIGNADO' + DataType = datString + Size = 255 + Value = '' + end + item + Name = 'DESCUENTO' + DataType = datFloat + Value = '' + end + item + Name = 'RAPEL' + DataType = datSmallInt + Value = '' + end + item + Name = 'ID_AGENTE' + DataType = datInteger + Value = '' + end + item + Name = 'EMAIL_ADMINISTRACION' + DataType = datString + Size = 255 + Value = '' + end + item + Name = 'VENCIMIENTO_FACTURAS_1' + DataType = datSmallInt + Value = '' + end + item + Name = 'VENCIMIENTO_FACTURAS_2' + DataType = datSmallInt + Value = '' + end + item + Name = 'VENCIMIENTO_FACTURAS_3' + DataType = datSmallInt + Value = '' + end + item + Name = 'FELICITACION' + DataType = datSmallInt + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CLIENTES_DATOS' + SQL = + 'INSERT'#10' INTO CLIENTES_DATOS'#10' (ID_CLIENTE, GRUPO_CLIENTE, REC' + + 'ARGO_EQUIVALENCIA, NOMBRE_COMERCIAL,'#10' BLOQUEADO, MOTIVO_BLOQ' + + 'UEO, REGIMEN_IVA, ID_TIPO_IVA, ID_FORMA_PAGO,'#10' TIENDA_WEB, C' + + 'ODIGO_ASIGNADO, DESCUENTO, RAPEL, ID_AGENTE, EMAIL_ADMINISTRACIO' + + 'N,'#10' VENCIMIENTO_FACTURAS_1, VENCIMIENTO_FACTURAS_2, VENCIMIE' + + 'NTO_FACTURAS_3,'#10' FELICITACION)'#10' VALUES'#10' (:ID_CLIENTE, :G' + + 'RUPO_CLIENTE, :RECARGO_EQUIVALENCIA, :NOMBRE_COMERCIAL,'#10' :BL' + + 'OQUEADO, :MOTIVO_BLOQUEO, :REGIMEN_IVA, :ID_TIPO_IVA, :ID_FORMA_' + + 'PAGO,'#10' :TIENDA_WEB, :CODIGO_ASIGNADO, :DESCUENTO, :RAPEL, :I' + + 'D_AGENTE, :EMAIL_ADMINISTRACION,'#10' :VENCIMIENTO_FACTURAS_1, :' + + 'VENCIMIENTO_FACTURAS_2, :VENCIMIENTO_FACTURAS_3,'#10' :FELICITAC' + + 'ION)'#10' '#10#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_ClientesDatos' + end + item + Params = < + item + Name = 'OLD_ID_CLIENTE' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CLIENTES_DATOS' + SQL = + 'DELETE '#10' FROM'#10' CLIENTES_DATOS'#10' WHERE'#10' (ID_CLIENTE = :OLD' + + '_ID_CLIENTE)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_ClientesDatos' + end + item + Params = < + item + Name = 'ID_CLIENTE' + DataType = datInteger + Value = '' + end + item + Name = 'GRUPO_CLIENTE' + DataType = datString + Size = 255 + Value = '' + end + item + Name = 'MOTIVO_BLOQUEO' + DataType = datString + Size = 255 + Value = '' + end + item + Name = 'RECARGO_EQUIVALENCIA' + DataType = datSmallInt + Value = '' + end + item + Name = 'NOMBRE_COMERCIAL' + DataType = datString + Size = 255 + Value = '' + end + item + Name = 'BLOQUEADO' + DataType = datSmallInt + Value = '' + end + item + Name = 'REGIMEN_IVA' + DataType = datString + Size = 255 + Value = '' + end + item + Name = 'ID_TIPO_IVA' + DataType = datInteger + Value = '' + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + Value = '' + end + item + Name = 'TIENDA_WEB' + DataType = datSmallInt + Value = '' + end + item + Name = 'CODIGO_ASIGNADO' + DataType = datString + Size = 255 + Value = '' + end + item + Name = 'DESCUENTO' + DataType = datFloat + Value = '' + end + item + Name = 'RAPEL' + DataType = datSmallInt + Value = '' + end + item + Name = 'ID_AGENTE' + DataType = datInteger + Value = '' + end + item + Name = 'EMAIL_ADMINISTRACION' + DataType = datString + Size = 255 + Value = '' + end + item + Name = 'VENCIMIENTO_FACTURAS_1' + DataType = datSmallInt + Value = '' + end + item + Name = 'VENCIMIENTO_FACTURAS_2' + DataType = datSmallInt + Value = '' + end + item + Name = 'VENCIMIENTO_FACTURAS_3' + DataType = datSmallInt + Value = '' + end + item + Name = 'FELICITACION' + DataType = datSmallInt + Value = '' + end + item + Name = 'OLD_ID_CLIENTE' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CLIENTES_DATOS' + SQL = + 'UPDATE CLIENTES_DATOS'#10' SET '#10' ID_CLIENTE = :ID_CLIENTE, '#10' ' + + 'GRUPO_CLIENTE = :GRUPO_CLIENTE,'#10' MOTIVO_BLOQUEO = :MOTIVO_BLO' + + 'QUEO,'#10' RECARGO_EQUIVALENCIA = :RECARGO_EQUIVALENCIA,'#10' NOMB' + + 'RE_COMERCIAL = :NOMBRE_COMERCIAL,'#10' BLOQUEADO = :BLOQUEADO,'#10' ' + + ' REGIMEN_IVA = :REGIMEN_IVA,'#10' ID_TIPO_IVA = :ID_TIPO_IVA,'#10' ' + + ' ID_FORMA_PAGO = :ID_FORMA_PAGO,'#10' TIENDA_WEB = :TIENDA_WEB,'#10 + + ' CODIGO_ASIGNADO = :CODIGO_ASIGNADO,'#10' DESCUENTO = :DESCUEN' + + 'TO,'#10' RAPEL = :RAPEL,'#10' ID_AGENTE = :ID_AGENTE,'#10' EMAIL_AD' + + 'MINISTRACION = :EMAIL_ADMINISTRACION,'#10' VENCIMIENTO_FACTURAS_1' + + ' = :VENCIMIENTO_FACTURAS_1,'#10' VENCIMIENTO_FACTURAS_2 = :VENCIM' + + 'IENTO_FACTURAS_2,'#10' VENCIMIENTO_FACTURAS_3 = :VENCIMIENTO_FACT' + + 'URAS_3,'#10' FELICITACION = :FELICITACION'#10' WHERE'#10' (ID_CLIENTE' + + ' = :OLD_ID_CLIENTE)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_ClientesDatos' + end + item + Params = < + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + Value = '' + end + item + Name = 'REGIMEN_IVA' + DataType = datString + Size = 255 + Value = '' + end + item + Name = 'DESCUENTO' + DataType = datFloat + Value = '' + end + item + Name = 'DESCRIPCION_PROVEEDOR' + DataType = datString + Size = 255 + Value = '' + end + item + Name = 'CODIGO_ASIGNADO' + DataType = datString + Size = 255 + Value = '' + end + item + Name = 'ID_TIPO_IVA' + DataType = datInteger + Value = '' + end + item + Name = 'SUBCONTRATA' + DataType = datSmallInt + Value = '' + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + Value = '' + end + item + Name = 'TIENDA_WEB' + DataType = datSmallInt + Value = '' + end + item + Name = 'HOMOLOGADO' + DataType = datSmallInt + Value = '' + end + item + Name = 'CERTIFICACION' + DataType = datString + Size = 255 + Value = '' + end + item + Name = 'GRUPO_PROVEEDOR' + DataType = datString + Size = 255 + Value = '' + end + item + Name = 'EMAIL_ADMINISTRACION' + DataType = datString + Size = 255 + Value = '' + end + item + Name = 'VENCIMIENTO_FACTURAS_1' + DataType = datSmallInt + Value = '' + end + item + Name = 'VENCIMIENTO_FACTURAS_2' + DataType = datSmallInt + Value = '' + end + item + Name = 'VENCIMIENTO_FACTURAS_3' + DataType = datSmallInt + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PROVEEDORES_DATOS' + SQL = + 'INSERT'#10' INTO PROVEEDORES_DATOS'#10' (ID_PROVEEDOR, REGIMEN_IVA, ' + + 'DESCUENTO, DESCRIPCION_PROVEEDOR,'#10' CODIGO_ASIGNADO, ID_TIPO_I' + + 'VA, SUBCONTRATA, ID_FORMA_PAGO, TIENDA_WEB,'#10' HOMOLOGADO, CERT' + + 'IFICACION, GRUPO_PROVEEDOR, EMAIL_ADMINISTRACION,'#10' VENCIMIENT' + + 'O_FACTURAS_1, VENCIMIENTO_FACTURAS_2, VENCIMIENTO_FACTURAS_3)'#10' ' + + 'VALUES'#10' (:ID_PROVEEDOR, :REGIMEN_IVA, :DESCUENTO, :DESCRIPCIO' + + 'N_PROVEEDOR,'#10' :CODIGO_ASIGNADO, :ID_TIPO_IVA, :SUBCONTRATA, :' + + 'ID_FORMA_PAGO, :TIENDA_WEB,'#10' :HOMOLOGADO, :CERTIFICACION, :GR' + + 'UPO_PROVEEDOR, :EMAIL_ADMINISTRACION,'#10' :VENCIMIENTO_FACTURAS_' + + '1, :VENCIMIENTO_FACTURAS_2, :VENCIMIENTO_FACTURAS_3)'#10' '#10' '#10#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_ProveedoresDatos' + end + item + Params = < + item + Name = 'OLD_ID_PROVEEDOR' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PROVEEDORES_DATOS' + SQL = + 'DELETE '#10' FROM'#10' PROVEEDORES_DATOS'#10' WHERE'#10' (ID_PROVEEDOR =' + + ' :OLD_ID_PROVEEDOR)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_ProveedoresDatos' + end + item + Params = < + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + Value = '' + end + item + Name = 'REGIMEN_IVA' + DataType = datString + Size = 255 + Value = '' + end + item + Name = 'DESCUENTO' + DataType = datFloat + Value = '' + end + item + Name = 'DESCRIPCION_PROVEEDOR' + DataType = datString + Size = 255 + Value = '' + end + item + Name = 'CODIGO_ASIGNADO' + DataType = datString + Size = 255 + Value = '' + end + item + Name = 'ID_TIPO_IVA' + DataType = datInteger + Value = '' + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + Value = '' + end + item + Name = 'TIENDA_WEB' + DataType = datSmallInt + Value = '' + end + item + Name = 'HOMOLOGADO' + DataType = datSmallInt + Value = '' + end + item + Name = 'CERTIFICACION' + DataType = datString + Size = 255 + Value = '' + end + item + Name = 'GRUPO_PROVEEDOR' + DataType = datString + Size = 255 + Value = '' + end + item + Name = 'SUBCONTRATA' + DataType = datSmallInt + Value = '' + end + item + Name = 'EMAIL_ADMINISTRACION' + DataType = datString + Size = 255 + Value = '' + end + item + Name = 'VENCIMIENTO_FACTURAS_1' + DataType = datSmallInt + Value = '' + end + item + Name = 'VENCIMIENTO_FACTURAS_2' + DataType = datSmallInt + Value = '' + end + item + Name = 'VENCIMIENTO_FACTURAS_3' + DataType = datSmallInt + Value = '' + end + item + Name = 'OLD_ID_PROVEEDOR' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PROVEEDORES_DATOS' + SQL = + 'UPDATE PROVEEDORES_DATOS'#10' SET '#10' ID_PROVEEDOR = :ID_PROVEEDOR' + + ', '#10' REGIMEN_IVA = :REGIMEN_IVA,'#10' DESCUENTO = :DESCUENTO,'#10' ' + + ' DESCRIPCION_PROVEEDOR = :DESCRIPCION_PROVEEDOR,'#10' CODIGO_AS' + + 'IGNADO = :CODIGO_ASIGNADO,'#10' ID_TIPO_IVA = :ID_TIPO_IVA,'#10' I' + + 'D_FORMA_PAGO = :ID_FORMA_PAGO,'#10' TIENDA_WEB = :TIENDA_WEB,'#10' ' + + ' HOMOLOGADO = :HOMOLOGADO,'#10' CERTIFICACION = :CERTIFICACION,'#10' ' + + ' GRUPO_PROVEEDOR = :GRUPO_PROVEEDOR,'#10' SUBCONTRATA = :SUBCON' + + 'TRATA,'#10' EMAIL_ADMINISTRACION = :EMAIL_ADMINISTRACION,'#10' VEN' + + 'CIMIENTO_FACTURAS_1 = :VENCIMIENTO_FACTURAS_1,'#10' VENCIMIENTO_F' + + 'ACTURAS_2 = :VENCIMIENTO_FACTURAS_2,'#10' VENCIMIENTO_FACTURAS_3 ' + + '= :VENCIMIENTO_FACTURAS_3'#10' WHERE'#10' (ID_PROVEEDOR = :OLD_ID_PR' + + 'OVEEDOR)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_ProveedoresDatos' + end + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_CONTACTOS_DIR_ID' + Value = '' + ParamType = daptInput + end + item + Name = 'ID_CONTACTO' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + Value = '' + ParamType = daptInput + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + Value = '' + ParamType = daptInput + end + item + Name = 'MOVIL' + DataType = datString + Size = 25 + Value = '' + ParamType = daptInput + end + item + Name = 'FAX' + DataType = datString + Size = 25 + Value = '' + ParamType = daptInput + end + item + Name = 'EMAIL' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'NOTAS' + DataType = datMemo + Value = '' + ParamType = daptInput + end + item + Name = 'PORTE' + DataType = datFloat + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CONTACTOS_DIRECCIONES' + SQL = + 'INSERT'#10' INTO CONTACTOS_DIRECCIONES'#10' (ID, ID_CONTACTO, NOMBRE' + + ', CALLE, POBLACION, PROVINCIA, CODIGO_POSTAL,'#10' PERSONA_CONTA' + + 'CTO, TELEFONO, MOVIL, FAX, EMAIL, NOTAS, PORTE)'#10' VALUES'#10' (:I' + + 'D, :ID_CONTACTO, :NOMBRE, :CALLE, :POBLACION, :PROVINCIA, :CODIG' + + 'O_POSTAL,'#10' :PERSONA_CONTACTO, :TELEFONO, :MOVIL, :FAX, :EMAI' + + 'L, :NOTAS, :PORTE)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_DireccionesContacto' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CONTACTOS_DIRECCIONES' + SQL = + 'DELETE '#10' FROM'#10' CONTACTOS_DIRECCIONES'#10' WHERE'#10' (ID = :OLD_' + + 'ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_DireccionesContacto' + end + item + Params = < + item + Name = 'ID_CONTACTO' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + Value = '' + ParamType = daptInput + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + Value = '' + ParamType = daptInput + end + item + Name = 'MOVIL' + DataType = datString + Size = 25 + Value = '' + ParamType = daptInput + end + item + Name = 'FAX' + DataType = datString + Size = 25 + Value = '' + ParamType = daptInput + end + item + Name = 'EMAIL' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'NOTAS' + DataType = datMemo + Value = '' + ParamType = daptInput + end + item + Name = 'PORTE' + DataType = datFloat + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CONTACTOS_DIRECCIONES' + SQL = + 'UPDATE CONTACTOS_DIRECCIONES'#10' SET '#10' ID_CONTACTO = :ID_CONTAC' + + 'TO, '#10' NOMBRE = :NOMBRE,'#10' CALLE = :CALLE,'#10' POBLACION = :' + + 'POBLACION, '#10' PROVINCIA = :PROVINCIA, '#10' CODIGO_POSTAL = :CO' + + 'DIGO_POSTAL, '#10' PERSONA_CONTACTO = :PERSONA_CONTACTO,'#10' TELE' + + 'FONO = :TELEFONO,'#10' MOVIL = :MOVIL,'#10' FAX = :FAX,'#10' EMAIL ' + + '= :EMAIL,'#10' NOTAS = :NOTAS,'#10' PORTE = :PORTE'#10' WHERE'#10' (ID' + + ' = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_DireccionesContacto' + end + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_CLIENTES_DTOS_PROV_ID' + Value = '' + ParamType = daptInput + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'DESCUENTO' + DataType = datFloat + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CLIENTES_DTOS_PROVEEDORES' + SQL = + 'INSERT'#10' INTO CLIENTES_DTOS_PROVEEDORES'#10' (ID, ID_CLIENTE, ID_' + + 'PROVEEDOR, DESCUENTO)'#10' VALUES'#10' (:ID, :ID_CLIENTE, :ID_PROVEE' + + 'DOR, :DESCUENTO)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_ClientesDescuentos' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CLIENTES_DTOS_PROVEEDORES' + SQL = + 'DELETE '#10' FROM'#10' CLIENTES_DTOS_PROVEEDORES'#10' WHERE'#10' (ID = :' + + 'OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_ClientesDescuentos' + end + item + Params = < + item + Name = 'ID_CLIENTE' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'DESCUENTO' + DataType = datFloat + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CLIENTES_DTOS_PROVEEDORES' + SQL = + 'UPDATE CLIENTES_DTOS_PROVEEDORES'#10' SET '#10' ID_CLIENTE = :ID_CLI' + + 'ENTE,'#10' ID_PROVEEDOR = :ID_PROVEEDOR, '#10' DESCUENTO = :DESCUE' + + 'NTO'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_ClientesDescuentos' + end + item + Params = < + item + Name = 'OLD_ID_EMPLEADO' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'EMPLEADOS_DATOS' + SQL = + 'DELETE '#10' FROM'#10' EMPLEADOS_DATOS'#10' WHERE'#10' (ID_EMPLEADO = :O' + + 'LD_ID_EMPLEADO)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_EmpleadosDatos' + end + item + Params = < + item + Name = 'ID_EMPLEADO' + Value = '' + end + item + Name = 'FECHA_NACIMIENTO' + Value = '' + end + item + Name = 'CATEGORIA' + Value = '' + end + item + Name = 'FECHA_ALTA_EMPRESA' + Value = '' + end + item + Name = 'FORMACION_BASE' + Value = '' + end + item + Name = 'FORMACION_COMPLE' + Value = '' + end + item + Name = 'FORMACION_RECIBIDA' + Value = '' + end + item + Name = 'EXPERIENCIA' + Value = '' + end + item + Name = 'CONTRATO' + Value = '' + end + item + Name = 'DURACION' + Value = '' + end + item + Name = 'FECHA_BAJA' + Value = '' + end + item + Name = 'CAUSA_BAJA' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'EMPLEADOS_DATOS' + SQL = + 'INSERT'#10' INTO EMPLEADOS_DATOS'#10' (ID_EMPLEADO, FECHA_NACIMIENTO' + + ', CATEGORIA, FECHA_ALTA_EMPRESA, FORMACION_BASE,'#10' FORMACION_C' + + 'OMPLE, FORMACION_RECIBIDA, EXPERIENCIA, CONTRATO, DURACION, FECH' + + 'A_BAJA,'#10' CAUSA_BAJA)'#10' VALUES'#10' (:ID_EMPLEADO, :FECHA_NACIM' + + 'IENTO, :CATEGORIA, :FECHA_ALTA_EMPRESA, :FORMACION_BASE,'#10' :FO' + + 'RMACION_COMPLE, :FORMACION_RECIBIDA, :EXPERIENCIA, :CONTRATO, :D' + + 'URACION, :FECHA_BAJA,'#10' :CAUSA_BAJA)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_EmpleadosDatos' + end + item + Params = < + item + Name = 'FECHA_NACIMIENTO' + Value = '' + end + item + Name = 'CATEGORIA' + Value = '' + end + item + Name = 'FECHA_ALTA_EMPRESA' + Value = '' + end + item + Name = 'FORMACION_BASE' + Value = '' + end + item + Name = 'FORMACION_COMPLE' + Value = '' + end + item + Name = 'FORMACION_RECIBIDA' + Value = '' + end + item + Name = 'EXPERIENCIA' + Value = '' + end + item + Name = 'CONTRATO' + Value = '' + end + item + Name = 'DURACION' + Value = '' + end + item + Name = 'FECHA_BAJA' + Value = '' + end + item + Name = 'CAUSA_BAJA' + Value = '' + end + item + Name = 'OLD_ID_EMPLEADO' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'EMPLEADOS_DATOS' + SQL = + 'UPDATE EMPLEADOS_DATOS'#10' SET '#10' FECHA_NACIMIENTO = :FECHA_NACI' + + 'MIENTO,'#10' CATEGORIA = :CATEGORIA,'#10' FECHA_ALTA_EMPRESA = :FE' + + 'CHA_ALTA_EMPRESA,'#10' FORMACION_BASE = :FORMACION_BASE,'#10' FORM' + + 'ACION_COMPLE = :FORMACION_COMPLE,'#10' FORMACION_RECIBIDA = :FORM' + + 'ACION_RECIBIDA,'#10' EXPERIENCIA = :EXPERIENCIA,'#10' CONTRATO = :' + + 'CONTRATO,'#10' DURACION = :DURACION,'#10' FECHA_BAJA = :FECHA_BAJA' + + ','#10' CAUSA_BAJA = :CAUSA_BAJA'#10' WHERE'#10' (ID_EMPLEADO = :OLD_I' + + 'D_EMPLEADO)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_EmpleadosDatos' + end + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_EMPRESAS_CONTACTOS_ID' + Value = '' + end + item + Name = 'ID_EMPRESA' + Value = '' + end + item + Name = 'ID_CONTACTO' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'EMPRESAS_CONTACTOS' + SQL = + 'INSERT'#10' INTO EMPRESAS_CONTACTOS'#10' (ID, ID_EMPRESA, ID_CONTACT' + + 'O)'#10' VALUES'#10' (:ID, :ID_EMPRESA, :ID_CONTACTO)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_ContactoEmpresa' + end + item + Params = < + item + Name = 'OLD_ID_EMPRESA' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID_CONTACTO' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'EMPRESAS_CONTACTOS' + SQL = + 'DELETE '#10' FROM'#10' EMPRESAS_CONTACTOS'#10' WHERE'#10' (ID_EMPRESA = ' + + ':OLD_ID_EMPRESA) AND '#10' (ID_CONTACTO = :OLD_ID_CONTACTO)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_ContactoEmpresa' + end + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_CONTACTOS_PERSONAL_ID' + Value = '' + end + item + Name = 'ID_CONTACTO' + Value = '' + end + item + Name = 'NOMBRE' + Value = '' + end + item + Name = 'PUESTO' + Value = '' + end + item + Name = 'TELEFONO' + Value = '' + end + item + Name = 'MOVIL' + Value = '' + end + item + Name = 'FAX' + Value = '' + end + item + Name = 'EMAIL' + Value = '' + end> + Statements = < + item + ConnectionType = 'Interbase' + Default = True + TargetTable = 'CONTACTOS_DATOS_PERSONAL' + SQL = + 'INSERT'#10' INTO CONTACTOS_DATOS_PERSONAL'#10' (ID, ID_CONTACTO, NOM' + + 'BRE, PUESTO, TELEFONO, MOVIL, FAX,'#10' EMAIL, FECHA_ALTA)'#10' VAL' + + 'UES'#10' (:ID, :ID_CONTACTO, :NOMBRE, :PUESTO, :TELEFONO, :MOVIL,' + + #10' :FAX, :EMAIL, CURRENT_TIME)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_PersonalContacto' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datAutoInc + Value = '0' + end> + Statements = < + item + ConnectionType = 'Interbase' + Default = True + TargetTable = 'CONTACTOS_DATOS_PERSONAL' + SQL = + 'DELETE '#10' FROM'#10' CONTACTOS_DATOS_PERSONAL'#10' WHERE'#10' (ID = :O' + + 'LD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_PersonalContacto' + end + item + Params = < + item + Name = 'ID_CONTACTO' + Value = '' + end + item + Name = 'NOMBRE' + Value = '' + end + item + Name = 'PUESTO' + Value = '' + end + item + Name = 'TELEFONO' + Value = '' + end + item + Name = 'MOVIL' + Value = '' + end + item + Name = 'FAX' + Value = '' + end + item + Name = 'EMAIL' + Value = '' + end + item + Name = 'FECHA_MODIFICACION' + Value = '' + end + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + ConnectionType = 'Interbase' + Default = True + TargetTable = 'CONTACTOS_DATOS_PERSONAL' + SQL = + 'UPDATE CONTACTOS_DATOS_PERSONAL'#10' SET '#10' ID_CONTACTO = :ID_CON' + + 'TACTO, '#10' NOMBRE = :NOMBRE, '#10' PUESTO = :PUESTO, '#10' TELEFO' + + 'NO = :TELEFONO, '#10' MOVIL = :MOVIL, '#10' FAX = :FAX, '#10' EMAIL' + + ' = :EMAIL, '#10' FECHA_MODIFICACION = :FECHA_MODIFICACION'#10' WHERE' + + #10' (ID = :OLD_ID)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_PersonalContacto' + end + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_AGENTES_COMISIONES_ID' + Value = '' + end + item + Name = 'ID_AGENTE' + DataType = datInteger + Value = '' + end + item + Name = 'ID_PROVEEDOR' + DataType = datSmallInt + Value = '' + end + item + Name = 'COMISION' + DataType = datFloat + Value = '' + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'AGENTES_COMISIONES' + SQL = + 'INSERT'#10' INTO AGENTES_COMISIONES'#10' (ID, ID_AGENTE, ID_PROVEEDO' + + 'R, COMISION)'#10' VALUES'#10' (:ID, :ID_AGENTE, :ID_PROVEEDOR, :COMI' + + 'SION)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_Agentes_Comisiones' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + Value = '' + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'AGENTES_COMISIONES' + SQL = 'DELETE '#10' FROM'#10' AGENTES_COMISIONES'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_Agentes_Comisiones' + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + Value = '' + end + item + Name = 'ID_AGENTE' + DataType = datInteger + Value = '' + end + item + Name = 'ID_PROVEEDOR' + DataType = datSmallInt + Value = '' + end + item + Name = 'COMISION' + DataType = datFloat + Value = '' + end + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'AGENTES_COMISIONES' + SQL = + 'UPDATE AGENTES_COMISIONES'#10' SET '#10' ID = :ID, '#10' ID_AGENTE = ' + + ':ID_AGENTE, '#10' ID_PROVEEDOR = :ID_PROVEEDOR, '#10' COMISION = :' + + 'COMISION'#10' WHERE'#10' (ID = :OLD_ID)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_Agentes_Comisiones' + end + item + Params = < + item + Name = 'ID_AGENTE' + DataType = datInteger + Value = '' + end + item + Name = 'FECHA_ALTA_EMPRESA' + DataType = datDateTime + Value = '' + end + item + Name = 'FECHA_BAJA' + DataType = datDateTime + Value = '' + end + item + Name = 'CAUSA_BAJA' + DataType = datString + Size = 255 + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'AGENTES_DATOS' + SQL = + 'INSERT'#10' INTO AGENTES_DATOS'#10' (ID_AGENTE, FECHA_ALTA_EMPRESA, ' + + 'FECHA_BAJA, CAUSA_BAJA)'#10' VALUES'#10' (:ID_AGENTE, :FECHA_ALTA_EM' + + 'PRESA, :FECHA_BAJA, :CAUSA_BAJA)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_AgentesDatos' + end + item + Params = < + item + Name = 'FECHA_ALTA_EMPRESA' + DataType = datDateTime + Value = '' + end + item + Name = 'FECHA_BAJA' + DataType = datDateTime + Value = '' + end + item + Name = 'CAUSA_BAJA' + DataType = datString + Size = 255 + Value = '' + end + item + Name = 'OLD_ID_AGENTE' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'AGENTES_DATOS' + SQL = + 'UPDATE AGENTES_DATOS'#10' SET '#10' FECHA_ALTA_EMPRESA = :FECHA_ALTA' + + '_EMPRESA,'#10' FECHA_BAJA = :FECHA_BAJA,'#10' CAUSA_BAJA = :CAUSA_' + + 'BAJA'#10' WHERE'#10' (ID_AGENTE = :OLD_ID_AGENTE)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_AgentesDatos' + end + item + Params = < + item + Name = 'OLD_ID_AGENTE' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'AGENTES_DATOS' + SQL = + 'DELETE '#10' FROM'#10' AGENTES_DATOS'#10' WHERE'#10' (ID_AGENTE = :OLD_I' + + 'D_AGENTE)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = ' Delete_AgentesDatos' + end> + RelationShips = < + item + Name = 'FK_PersonalContacto_Empleados' + MasterDatasetName = 'Agentes' + MasterFields = 'ID' + DetailDatasetName = 'PersonalContacto' + DetailFields = 'ID_CONTACTO' + RelationshipType = rtForeignKey + end + item + Name = 'FK_PersonalContacto_Proveedores' + MasterDatasetName = 'Proveedores' + MasterFields = 'ID' + DetailDatasetName = 'PersonalContacto' + DetailFields = 'ID_CONTACTO' + RelationshipType = rtForeignKey + end + item + Name = 'FK_PersonalContacto_Clientes' + MasterDatasetName = 'Clientes' + MasterFields = 'ID' + DetailDatasetName = 'PersonalContacto' + DetailFields = 'ID_CONTACTO' + RelationshipType = rtForeignKey + end + item + Name = 'FK_PersonalContacto_Contactos' + MasterDatasetName = 'Contactos' + MasterFields = 'ID' + DetailDatasetName = 'PersonalContacto' + DetailFields = 'ID_CONTACTO' + RelationshipType = rtForeignKey + end + item + Name = 'FK_AgentesComisiones' + MasterDatasetName = 'Agentes' + MasterFields = 'ID' + DetailDatasetName = 'Agentes_Comisiones' + DetailFields = 'ID_AGENTE' + RelationshipType = rtForeignKey + end + item + Name = 'FK_ClientesDescuentos_Clientes' + MasterDatasetName = 'Clientes' + MasterFields = 'ID' + DetailDatasetName = 'ClientesDescuentos' + DetailFields = 'ID_CLIENTE' + RelationshipType = rtForeignKey + end + item + Name = 'FK_DireccionesContacto_Contactos' + MasterDatasetName = 'Contactos' + MasterFields = 'ID' + DetailDatasetName = 'DireccionesContacto' + DetailFields = 'ID_CONTACTO' + RelationshipType = rtForeignKey + end + item + Name = 'FK_DatosBancarios_Contactos' + MasterDatasetName = 'Contactos' + MasterFields = 'ID' + DetailDatasetName = 'DatosBancarios' + DetailFields = 'ID_CONTACTO' + RelationshipType = rtForeignKey + end + item + Name = 'FK_DatosBancarios_Clientes' + MasterDatasetName = 'Clientes' + MasterFields = 'ID' + DetailDatasetName = 'DatosBancarios' + DetailFields = 'ID_CONTACTO' + RelationshipType = rtForeignKey + end + item + Name = 'FK_DireccionesContacto_Clientes' + MasterDatasetName = 'Clientes' + MasterFields = 'ID' + DetailDatasetName = 'DireccionesContacto' + DetailFields = 'ID_CONTACTO' + RelationshipType = rtForeignKey + end + item + Name = 'FK_DireccionesContacto_Empleados' + MasterDatasetName = 'Agentes' + MasterFields = 'ID' + DetailDatasetName = 'DireccionesContacto' + DetailFields = 'ID_CONTACTO' + RelationshipType = rtForeignKey + end + item + Name = 'FK_DatosBancarios_Empleados' + MasterDatasetName = 'Agentes' + MasterFields = 'ID' + DetailDatasetName = 'DatosBancarios' + DetailFields = 'ID_CONTACTO' + RelationshipType = rtForeignKey + end + item + Name = 'FK_DireccionesContacto_Proveedores' + MasterDatasetName = 'Proveedores' + MasterFields = 'ID' + DetailDatasetName = 'DireccionesContacto' + DetailFields = 'ID_CONTACTO' + RelationshipType = rtForeignKey + end + item + Name = 'FK_DatosBancarios_Proveedores' + MasterDatasetName = 'Proveedores' + MasterFields = 'ID' + DetailDatasetName = 'DatosBancarios' + DetailFields = 'ID_CONTACTO' + RelationshipType = rtForeignKey + end> + UpdateRules = < + item + Name = 'Insert Contactos' + DoUpdate = False + DoDelete = False + DatasetName = 'Contactos' + FailureBehavior = fbRaiseException + end + item + Name = 'Insert Clientes' + DoUpdate = False + DoDelete = False + DatasetName = 'Clientes' + FailureBehavior = fbRaiseException + end + item + Name = 'Insert Empleados' + DoUpdate = False + DoDelete = False + DatasetName = 'Empleados' + FailureBehavior = fbRaiseException + end + item + Name = 'Insert Proveedores' + DoUpdate = False + DoDelete = False + DatasetName = 'Proveedores' + FailureBehavior = fbRaiseException + end + item + Name = 'Insert Agentes' + DoUpdate = False + DoDelete = False + DatasetName = 'Agentes' + FailureBehavior = fbRaiseException + end + item + Name = 'Update Contactos' + DoInsert = False + DoDelete = False + DatasetName = 'Contactos' + FailureBehavior = fbRaiseException + end + item + Name = 'Update Clientes' + DoInsert = False + DoDelete = False + DatasetName = 'Clientes' + FailureBehavior = fbRaiseException + end + item + Name = 'Update Empleados' + DoInsert = False + DoDelete = False + DatasetName = 'Empleados' + FailureBehavior = fbRaiseException + end + item + Name = 'Update Proveedores' + DoInsert = False + DoDelete = False + DatasetName = 'Proveedores' + FailureBehavior = fbRaiseException + end + item + Name = 'Update Agentes' + DoInsert = False + DoDelete = False + DatasetName = 'Agentes' + FailureBehavior = fbRaiseException + end + item + Name = 'Insert DatosBancarios' + DoUpdate = False + DoDelete = False + DatasetName = 'DatosBancarios' + FailureBehavior = fbRaiseException + end + item + Name = 'Update DatosBancarios' + DoInsert = False + DoDelete = False + DatasetName = 'DatosBancarios' + FailureBehavior = fbRaiseException + end + item + Name = 'Insert PersonalContacto' + DoUpdate = False + DoDelete = False + DatasetName = 'PersonalContacto' + FailureBehavior = fbRaiseException + end + item + Name = 'Update PersonalContacto' + DoInsert = False + DoDelete = False + DatasetName = 'PersonalContacto' + FailureBehavior = fbRaiseException + end + item + Name = 'Insert DireccionesContacto' + DoUpdate = False + DoDelete = False + DatasetName = 'DireccionesContacto' + FailureBehavior = fbRaiseException + end + item + Name = 'Update DireccionesContacto' + DoInsert = False + DoDelete = False + DatasetName = 'DireccionesContacto' + FailureBehavior = fbRaiseException + end + item + Name = 'Insert AgentesComisiones' + DoUpdate = False + DoDelete = False + DatasetName = 'AgentesComisiones' + FailureBehavior = fbRaiseException + end + item + Name = 'Update AgentesComisiones' + DoInsert = False + DoDelete = False + DatasetName = 'AgentesComisiones' + FailureBehavior = fbRaiseException + end + item + Name = 'Insert ClientesDescuentos' + DoUpdate = False + DoDelete = False + DatasetName = 'ClientesDescuentos' + FailureBehavior = fbRaiseException + end + item + Name = 'Update ClientesDescuentos' + DoInsert = False + DoDelete = False + DatasetName = 'ClientesDescuentos' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete DatosBancarios' + DoUpdate = False + DoInsert = False + DatasetName = 'DatosBancarios' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete ClientesDescuentos' + DoUpdate = False + DoInsert = False + DatasetName = 'ClientesDescuentos' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete AgentesComisiones' + DoUpdate = False + DoInsert = False + DatasetName = 'AgentesComisiones' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete PersonalContacto' + DoUpdate = False + DoInsert = False + DatasetName = 'PersonalContacto' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete DireccionesContacto' + DoUpdate = False + DoInsert = False + DatasetName = 'DireccionesContacto' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete Proveedores' + DoUpdate = False + DoInsert = False + DatasetName = 'Proveedores' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete Empleados' + DoUpdate = False + DoInsert = False + DatasetName = 'Empleados' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete Clientes' + DoUpdate = False + DoInsert = False + DatasetName = 'Clientes' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete Agentes' + DoUpdate = False + DoInsert = False + DatasetName = 'Agentes' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete Contactos' + DoUpdate = False + DoInsert = False + DatasetName = 'Contactos' + FailureBehavior = fbRaiseException + end> + Version = 0 + Left = 38 + Top = 14 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'DatosBancarios_ID' + DataType = datAutoInc + GeneratorName = 'GEN_CONTACTOS_DATOS_BANCO_ID' + DisplayLabel = 'ID' + end + item + Name = 'DatosBancarios_ID_CONTACTO' + DataType = datInteger + DisplayLabel = 'ID_CONTACTO' + end + item + Name = 'DatosBancarios_TITULAR' + DataType = datString + Size = 255 + DisplayLabel = 'Titular' + end + item + Name = 'DatosBancarios_ENTIDAD' + DataType = datString + Size = 15 + DisplayLabel = 'C'#243'digo de entidad' + end + item + Name = 'DatosBancarios_SUCURSAL' + DataType = datString + Size = 15 + DisplayLabel = 'C'#243'digo de sucursal' + end + item + Name = 'DatosBancarios_DC' + DataType = datString + Size = 15 + DisplayLabel = 'D'#237'gito de control' + end + item + Name = 'DatosBancarios_CUENTA' + DataType = datString + Size = 15 + DisplayLabel = 'C'#243'digo de cuenta' + end + item + Name = 'Contactos_ID' + DataType = datAutoInc + GeneratorName = 'GEN_CONTACTOS_ID' + DisplayLabel = 'ID' + end + item + Name = 'Contactos_NIF_CIF' + DataType = datString + Size = 15 + DisplayLabel = 'NIF/CIF' + end + item + Name = 'Contactos_CALLE' + DataType = datString + Size = 255 + DisplayLabel = 'Direcci'#243'n' + end + item + Name = 'Contactos_POBLACION' + DataType = datString + Size = 255 + DisplayLabel = 'Poblaci'#243'n' + end + item + Name = 'Contactos_PROVINCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Provincia' + end + item + Name = 'Contactos_CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#243'digo postal' + end + item + Name = 'Contactos_TELEFONO_1' + DataType = datString + Size = 25 + DisplayLabel = 'Tlf. trabajo' + end + item + Name = 'Contactos_TELEFONO_2' + DataType = datString + Size = 25 + DisplayLabel = 'Tlf. particular' + end + item + Name = 'Contactos_MOVIL_1' + DataType = datString + Size = 25 + DisplayLabel = 'M'#243'vil' + end + item + Name = 'Contactos_MOVIL_2' + DataType = datString + Size = 25 + DisplayLabel = 'M'#243'vil 2' + end + item + Name = 'Contactos_FAX' + DataType = datString + Size = 25 + DisplayLabel = 'Fax' + end + item + Name = 'Contactos_EMAIL_1' + DataType = datString + Size = 255 + DisplayLabel = 'E-mail trabajo' + end + item + Name = 'Contactos_EMAIL_2' + DataType = datString + Size = 255 + DisplayLabel = 'E-mail particular' + end + item + Name = 'Contactos_PAGINA_WEB' + DataType = datString + Size = 255 + DisplayLabel = 'Web' + end + item + Name = 'Contactos_NOTAS' + DataType = datMemo + BlobType = dabtMemo + DisplayLabel = 'Observaciones' + end + item + Name = 'Contactos_FECHA_ALTA' + DataType = datDateTime + DisplayLabel = 'Fecha de alta' + end + item + Name = 'Contactos_FECHA_MODIFICACION' + DataType = datDateTime + DisplayLabel = 'Fecha de modificaci'#243'n' + end + item + Name = 'Contactos_USUARIO' + DataType = datString + Size = 20 + DisplayLabel = 'Usuario' + end + item + Name = 'Contactos_ID_CATEGORIA' + DataType = datInteger + end + item + Name = 'Contactos_ID_EMPRESA' + DataType = datInteger + DisplayLabel = 'ID_EMPRESA' + end + item + Name = 'Proveedores_DISTRIBUYE' + DataType = datString + Size = 2000 + DisplayLabel = 'Distribuye' + end + item + Name = 'Proveedores_DESCUENTO' + DataType = datFloat + DisplayLabel = 'Descuento (%)' + end + item + Name = 'Clientes_ID_AGENTE' + DataType = datInteger + DisplayLabel = 'ID_AGENTE' + end + item + Name = 'Clientes_GRUPO_CLIENTE' + DataType = datString + Size = 255 + DisplayLabel = 'Grupo de cliente' + end + item + Name = 'DatosBancarios_PERSONA_CONTACTO' + DataType = datString + Size = 255 + end + item + Name = 'DireccionesContacto_CALLE' + DataType = datString + Size = 255 + DisplayLabel = 'Calle' + end + item + Name = 'DireccionesContacto_POBLACION' + DataType = datString + Size = 255 + DisplayLabel = 'Poblaci'#243'n' + end + item + Name = 'DireccionesContacto_PROVINCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Provincia' + end + item + Name = 'DireccionesContacto_CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#243'digo postal' + end + item + Name = 'DireccionesContacto_PERSONA_CONTACTO' + DataType = datString + Size = 255 + DisplayLabel = 'Persona de contacto' + end + item + Name = 'DireccionesContacto_ID' + DataType = datAutoInc + GeneratorName = 'GEN_CONTACTOS_DIR_ID' + DisplayLabel = 'ID' + end + item + Name = 'DireccionesContacto_ID_CONTACTO' + DataType = datInteger + DisplayLabel = 'ID_CONTACTO' + end + item + Name = 'Clientes_NOMBRE_COMERCIAL' + DataType = datString + Size = 255 + DisplayLabel = 'Nombre comercial' + end + item + Name = 'Clientes_VENCIMIENTO_FACTURAS' + DataType = datInteger + DisplayLabel = 'Vencimiento' + end + item + Name = 'Clientes_FELICITACION' + DataType = datSmallInt + DisplayLabel = #191'Felicitaci'#243'n?' + end + item + Name = 'Clientes_BLOQUEADO' + DataType = datSmallInt + DisplayLabel = #191'Bloqueado?' + end + item + Name = 'Contactos_REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + end + item + Name = 'Proveedores_REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + end + item + Name = 'ClientesDescuentos_ID' + DataType = datAutoInc + GeneratorName = 'GEN_CLIENTES_DTOS_PROV_ID' + DisplayLabel = 'ID' + end + item + Name = 'ClientesDescuentos_ID_CLIENTE' + DataType = datInteger + end + item + Name = 'ClientesDescuentos_ID_PROVEEDOR' + DataType = datInteger + end + item + Name = 'ClientesDescuentos_DESCUENTO' + DataType = datFloat + DisplayLabel = 'Descuento (%)' + Alignment = taRightJustify + end + item + Name = 'Clientes_REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'REFERENCIA' + end + item + Name = 'Clientes_MOTIVO_BLOQUEO' + DataType = datString + Size = 255 + DisplayLabel = 'Motivo del bloqueo' + end + item + Name = 'DireccionesContacto_NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'DireccionesContacto_TELEFONO' + DataType = datString + Size = 25 + DisplayLabel = 'Tel'#233'fono' + end + item + Name = 'DireccionesContacto_EMAIL' + DataType = datString + Size = 255 + DisplayLabel = 'E-mail' + end + item + Name = 'DireccionesContacto_NOTAS' + DataType = datMemo + DisplayLabel = 'Notas' + end + item + Name = 'DireccionesContacto_PORTE' + DataType = datFloat + DisplayLabel = 'Coste del porte' + end + item + Name = 'Clientes_RECARGO_EQUIVALENCIA' + DataType = datInteger + DisplayLabel = 'Rec. equiv.' + end + item + Name = 'Clientes_REGIMEN_IVA' + DataType = datString + Size = 255 + DisplayLabel = 'R'#233'gimen de IVA' + end + item + Name = 'Clientes_ID_TIPO_IVA' + DataType = datInteger + DisplayLabel = 'ID_TIPO_IVA' + end + item + Name = 'Clientes_ID_FORMA_PAGO' + DataType = datInteger + DisplayLabel = 'ID_FORMA_PAGO' + end + item + Name = 'Proveedores_REGIMEN_IVA' + DataType = datString + Size = 255 + DisplayLabel = 'R'#233'gimen de IVA' + end + item + Name = 'Proveedores_ID_TIPO_IVA' + DataType = datInteger + DisplayLabel = 'ID_TIPO_IVA' + end + item + Name = 'Proveedores_ID_FORMA_PAGO' + DataType = datInteger + DisplayLabel = 'ID_FORMA_PAGO' + end + item + Name = 'Clientes_TIENDA_WEB' + DataType = datSmallInt + DisplayLabel = 'TIENDA_WEB' + end + item + Name = 'Clientes_AGENTE' + DataType = datString + Size = 255 + end + item + Name = 'Contactos_PERSONA_CONTACTO' + DataType = datString + Size = 255 + DisplayLabel = 'Persona de contacto' + end + item + Name = 'Proveedores_GRUPO_PROVEEDOR' + DataType = datString + DisplayLabel = 'Grupo proveedor' + end + item + Name = 'Proveedores_TIENDA_WEB' + DataType = datSmallInt + DisplayLabel = 'TIENDA_WEB' + end + item + Name = 'Proveedores_HOMOLOGADO' + DataType = datSmallInt + DisplayLabel = 'Homologado' + end + item + Name = 'Proveedores_CERTIFICACION' + DataType = datString + Size = 255 + DisplayLabel = 'Certificaciones' + end + item + Name = 'Proveedores_DESCRIPCION_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'Proveedor de...' + end + item + Name = 'Proveedores_CODIGO_ASIGNADO' + DataType = datString + Size = 255 + DisplayLabel = 'C'#243'digo asignado' + end + item + Name = 'Empleados_FECHA_NACIMIENTO' + DataType = datDateTime + DisplayLabel = 'Fecha nacimiento' + end + item + Name = 'Empleados_CATEGORIA' + DataType = datString + Size = 255 + DisplayLabel = 'Categor'#237'a' + end + item + Name = 'Empleados_FECHA_ALTA_EMPRESA' + DataType = datDateTime + DisplayLabel = 'Fecha de alta' + end + item + Name = 'Empleados_FORMACION_BASE' + DataType = datMemo + DisplayLabel = 'Formaci'#243'n base' + end + item + Name = 'Empleados_FORMACION_COMPLE' + DataType = datMemo + DisplayLabel = 'Formaci'#243'n complementaria' + end + item + Name = 'Empleados_FORMACION_RECIBIDA' + DataType = datMemo + DisplayLabel = 'Formaci'#243'n recibida' + end + item + Name = 'Empleados_EXPERIENCIA' + DataType = datMemo + DisplayLabel = 'Experiencia' + end + item + Name = 'Contactos_NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Nombre' + end + item + Name = 'GruposCliente_ID' + DataType = datAutoInc + GeneratorName = 'GEN_CLIENTES_GRUPOS_ID' + Required = True + DisplayLabel = 'ID' + end + item + Name = 'GruposCliente_DESCRIPCION' + DataType = datString + Size = 255 + DisplayLabel = 'Descripci'#243'n' + end + item + Name = 'GruposEmpleado_ID' + DataType = datAutoInc + GeneratorName = 'GEN_EMPLEADOS_GRUPOS_ID' + Required = True + DisplayLabel = 'ID' + end + item + Name = 'GruposEmpleado_DESCRIPCION' + DataType = datString + Size = 255 + DisplayLabel = 'Descripci'#243'n' + end + item + Name = 'GruposProveedor_ID' + DataType = datAutoInc + GeneratorName = 'GEN_PROVEEDORES_GRUPOS_ID' + Required = True + DisplayLabel = 'ID' + end + item + Name = 'GruposProveedor_DESCRIPCION' + DataType = datString + Size = 255 + DisplayLabel = 'Descripci'#243'n' + end + item + Name = 'Empleados_FECHA_ALTA' + DataType = datDateTime + end + item + Name = 'Empleados_FECHA_MODIFICACION' + DataType = datDateTime + end + item + Name = 'Empleados_REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + ServerAutoRefresh = True + end + item + Name = 'Empleados_CONTRATO' + DataType = datString + Size = 255 + DisplayLabel = 'Contrato' + end + item + Name = 'Proveedores_FECHA_ALTA' + DataType = datDateTime + end + item + Name = 'Proveedores_FECHA_MODIFICACION' + DataType = datDateTime + end + item + Name = 'Proveedores_SUBCONTRATA' + DataType = datSmallInt + DisplayLabel = 'Subcontrata' + end + item + Name = 'PersonalContacto_ID' + DataType = datAutoInc + GeneratorName = 'GEN_CONTACTOS_PERSONAL_ID' + Required = True + end + item + Name = 'PersonalContacto_ID_CONTACTO' + DataType = datInteger + end + item + Name = 'PersonalContacto_NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Nombre' + end + item + Name = 'PersonalContacto_PUESTO' + DataType = datString + Size = 255 + DisplayLabel = 'Puesto' + end + item + Name = 'PersonalContacto_TELEFONO' + DataType = datString + Size = 25 + DisplayLabel = 'Tel'#233'fono' + end + item + Name = 'PersonalContacto_MOVIL' + DataType = datString + Size = 25 + DisplayLabel = 'M'#243'vil' + end + item + Name = 'PersonalContacto_FAX' + DataType = datString + Size = 25 + DisplayLabel = 'Fax' + end + item + Name = 'PersonalContacto_EMAIL' + DataType = datString + Size = 255 + DisplayLabel = 'E-mail' + end + item + Name = 'PersonalContacto_FECHA_ALTA' + DataType = datDateTime + end + item + Name = 'PersonalContacto_FECHA_MODIFICACION' + DataType = datDateTime + end + item + Name = 'Agentes_Comisiones_ID' + DataType = datInteger + DisplayLabel = 'ID' + ServerAutoRefresh = True + end + item + Name = 'Agentes_Comisiones_ID_AGENTE' + DataType = datInteger + end + item + Name = 'Agentes_Comisiones_ID_PROVEEDOR' + DataType = datSmallInt + end + item + Name = 'Agentes_Comisiones_NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'Agentes_Comisiones_COMISION' + DataType = datFloat + end> + Left = 126 + Top = 14 + end + object Diagrams: TDADiagrams + Left = 126 + Top = 82 + DiagramData = ''#13#10''#13#10 + end + object bpContactos: TDABusinessProcessor + Schema = schContactos + InsertCommandName = 'Insert_Contactos' + DeleteCommandName = 'Delete_Contactos' + UpdateCommandName = 'Update_Contactos' + RefreshDatasetName = 'Contactos_Refresh' + ReferencedDataset = 'Contactos' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 224 + Top = 15 + end + object bpDatosBancarios: TDABusinessProcessor + Schema = schContactos + InsertCommandName = 'Insert_DatosBancarios' + DeleteCommandName = 'Delete_DatosBancarios' + UpdateCommandName = 'Update_DatosBancarios' + ReferencedDataset = 'DatosBancarios' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 224 + Top = 79 + end + object bpEmpleados: TDABusinessProcessor + Schema = schContactos + InsertCommandName = 'Insert_Contactos' + DeleteCommandName = 'Delete_Contactos' + UpdateCommandName = 'Update_Contactos' + RefreshDatasetName = 'Contactos_Refresh' + ReferencedDataset = 'Empleados' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 344 + Top = 15 + end + object bpClientes: TDABusinessProcessor + Schema = schContactos + InsertCommandName = 'Insert_Contactos' + DeleteCommandName = 'Delete_Contactos' + UpdateCommandName = 'Update_Contactos' + RefreshDatasetName = 'Contactos_Refresh' + ReferencedDataset = 'Clientes' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 344 + Top = 143 + end + object bpProveedores: TDABusinessProcessor + Schema = schContactos + InsertCommandName = 'Insert_Contactos' + DeleteCommandName = 'Delete_Contactos' + UpdateCommandName = 'Update_Contactos' + RefreshDatasetName = 'Contactos_Refresh' + ReferencedDataset = 'Proveedores' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 344 + Top = 79 + end + object bpDireccionesContacto: TDABusinessProcessor + Schema = schContactos + InsertCommandName = 'Insert_DireccionesContacto' + DeleteCommandName = 'Delete_DireccionesContacto' + UpdateCommandName = 'Update_DireccionesContacto' + ReferencedDataset = 'DireccionesContacto' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 224 + Top = 207 + end + object bpClientesDescuentos: TDABusinessProcessor + Schema = schContactos + InsertCommandName = 'Insert_ClientesDescuentos' + DeleteCommandName = 'Delete_ClientesDescuentos' + UpdateCommandName = 'Update_ClientesDescuentos' + ReferencedDataset = 'ClientesDescuentos' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 344 + Top = 207 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 40 + Top = 80 + end + object bpPersonalContacto: TDABusinessProcessor + Schema = schContactos + InsertCommandName = 'Insert_PersonalContacto' + DeleteCommandName = 'Delete_PersonalContacto' + UpdateCommandName = 'Update_PersonalContacto' + ReferencedDataset = 'PersonalContacto' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 224 + Top = 143 + end + object bpAgentes: TDABusinessProcessor + Schema = schContactos + InsertCommandName = 'Insert_Contactos' + DeleteCommandName = 'Delete_Contactos' + UpdateCommandName = 'Update_Contactos' + RefreshDatasetName = 'Contactos_Refresh' + ReferencedDataset = 'Agentes' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 112 + Top = 151 + end + object bpAgentesComisiones: TDABusinessProcessor + Schema = schContactos + InsertCommandName = 'Insert_Agentes_Comisiones' + DeleteCommandName = 'Delete_Agentes_Comisiones' + UpdateCommandName = 'Update_Agentes_Comisiones' + ReferencedDataset = 'Agentes_Comisiones' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 112 + Top = 207 + end +end diff --git a/Source/Modulos/Contactos/Servidor/srvContactos_Impl.pas b/Source/Modulos/Contactos/Servidor/srvContactos_Impl.pas new file mode 100644 index 0000000..3d8fda0 --- /dev/null +++ b/Source/Modulos/Contactos/Servidor/srvContactos_Impl.pas @@ -0,0 +1,172 @@ +unit srvContactos_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROXMLIntf, uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Required:} uRORemoteDataModule, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} uDABusinessProcessor, uDABin2DataStreamer, uDADataStreamer, + uDAScriptingProvider, uDAClasses, + FactuGES_Intf, uDAInterfaces; + +type + { TsrvContactos } + TsrvContactos = class(TDataAbstractService, IsrvContactos) + Diagrams: TDADiagrams; + bpContactos: TDABusinessProcessor; + bpDatosBancarios: TDABusinessProcessor; + bpEmpleados: TDABusinessProcessor; + bpClientes: TDABusinessProcessor; + bpProveedores: TDABusinessProcessor; + bpDireccionesContacto: TDABusinessProcessor; + bpClientesDescuentos: TDABusinessProcessor; + Bin2DataStreamer: TDABin2DataStreamer; + bpPersonalContacto: TDABusinessProcessor; + bpAgentes: TDABusinessProcessor; + bpAgentesComisiones: TDABusinessProcessor; + schContactos: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; + const IncludeSchema: Boolean; const MaxRecords: Integer); + procedure DARemoteServiceCreate(Sender: TObject); + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; + var aConnectionName: string); + public + function GenerarInformeFichaEmpleado(const ListaID: TIntegerArray): Binary; + function GenerarInformeEtiquetas(const ListaID: TIntegerArray): Binary; + function DarListaContratosEmpleados: String; + function DarListaDescripcionesProveedores: String; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, Dialogs, uBizContactosServer, + uDataModuleServer, uDatabaseUtils, uUsersManager, + schContactosClient_Intf, uBizEmpleadosServer, uBizAgentesServer, + uBizClientesServer, uBizProveedoresServer, uRestriccionesUsuarioUtils, + uStringsUtils, Variants, + uRptFichasEmpleado_Server, uRptEtiquetasContacto_Server; + +procedure Create_srvContactos(out anInstance : IUnknown); +begin + anInstance := TsrvContactos.Create(NIL); +end; + +{ TsrvContactos } + +procedure TsrvContactos.DARemoteServiceBeforeGetDatasetData( + const Dataset: IDADataset; const IncludeSchema: Boolean; + const MaxRecords: Integer); +begin + if Assigned(Dataset.FindField(fld_ContactosID_EMPRESA)) then + begin + { Aqu se asegura que el usuario slo accede a contactos + de las empresas a las que tiene permiso para acceder + filtrando DataSet por ID_EMPRESA. } + FiltrarAccesoUsuario(Session, Connection, schContactos, DataSet, fld_ContactosID_EMPRESA); + end; +end; + +procedure TsrvContactos.DARemoteServiceCreate(Sender: TObject); +begin + //SessionManager := dmServer.SessionManager; + + bpContactos.BusinessRulesID := BIZ_SERVER_CONTACTO; + bpEmpleados.BusinessRulesID := BIZ_SERVER_EMPLEADO; + bpAgentes.BusinessRulesID := BIZ_SERVER_AGENTE; + bpClientes.BusinessRulesID := BIZ_SERVER_CLIENTE; + bpProveedores.BusinessRulesID := BIZ_SERVER_PROVEEDOR; +end; + +function TsrvContactos.DarListaContratosEmpleados: String; +var + dsContratos : IDADataset; + Aux : TStringList; +begin + Aux := TStringList.Create; + + dsContratos := schContactos.NewDataset(Connection, 'ContratosEmpleados', '', True); + try + while not dsContratos.EOF do + begin + if not VarIsNull(dsContratos.FieldValues[0]) then + Aux.Add(dsContratos.FieldValues[0]); + dsContratos.Next; + end; + Result := StringsToString(Aux, '|'); + finally + dsContratos.Close; + dsContratos := NIL; + end; +end; + +function TsrvContactos.DarListaDescripcionesProveedores: String; +var + dsDescripciones : IDADataset; + Aux : TStringList; +begin + Aux := TStringList.Create; + + dsDescripciones := schContactos.NewDataset(Connection, 'DescripcionesProveedores', '', True); + try + while not dsDescripciones.EOF do + begin + if not VarIsNull(dsDescripciones.FieldValues[0]) then + Aux.Add(dsDescripciones.FieldValues[0]); + dsDescripciones.Next; + end; + Result := StringsToString(Aux, '|'); + finally + dsDescripciones.Close; + dsDescripciones := NIL; + end; +end; + +procedure TsrvContactos.DataAbstractServiceBeforeAcquireConnection( + aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +function TsrvContactos.GenerarInformeEtiquetas(const ListaID: TIntegerArray): Binary; +var + AReportGenerator : TRptEtiquetasContacto; +begin + AReportGenerator := TRptEtiquetasContacto.Create(nil); + try + Result := AReportGenerator.GenerarInforme(ListaID); + finally + FreeAndNIL(AReportGenerator); + end; +end; + +function TsrvContactos.GenerarInformeFichaEmpleado(const ListaID: TIntegerArray): Binary; +var + AReportGenerator : TRptFichasEmpleado; +begin + AReportGenerator := TRptFichasEmpleado.Create(nil); + try + Result := AReportGenerator.GenerarFicha(ListaID); + finally + FreeAndNIL(AReportGenerator); + end; +end; + +initialization + TROClassFactory.Create('srvContactos', Create_srvContactos, TsrvContactos_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Contactos/Test/Contactos_Tests.bdsproj b/Source/Modulos/Contactos/Test/Contactos_Tests.bdsproj new file mode 100644 index 0000000..5c4224d --- /dev/null +++ b/Source/Modulos/Contactos/Test/Contactos_Tests.bdsproj @@ -0,0 +1,496 @@ + + + + + + + + + + + + Contactos_Tests.dpr + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + ..\..\..\Output\Cliente + .\ + + ..\..\Lib + ..\..\..\Lib;..\..\Lib + DataAbstract_D10;Base;GUIBase;ClassRegistry;Contactos_model;Contactos_controller;Contactos_view + _CONSOLE_TESTRUNNER;EUREKALOG;EUREKALOG_VER5 + + True + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + Contactos (Test) + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + DUnit / Delphi Win32 + GUI + + + diff --git a/Source/Modulos/Contactos/Test/Contactos_Tests.dpr b/Source/Modulos/Contactos/Test/Contactos_Tests.dpr new file mode 100644 index 0000000..88b99a2 --- /dev/null +++ b/Source/Modulos/Contactos/Test/Contactos_Tests.dpr @@ -0,0 +1,42 @@ +program Contactos_Tests; +{ + + Delphi DUnit Test Project + ------------------------- + This project contains the DUnit test framework and the GUI/Console test runners. + Add "CONSOLE_TESTRUNNER" to the conditional defines entry in the project options + to use the console test runner. Otherwise the GUI test runner will be used by + default. + +} + +{$IFDEF CONSOLE_TESTRUNNER} +{$APPTYPE CONSOLE} +{$ENDIF} + +uses + ExceptionLog, + Forms, + TestFramework, + GUITestRunner, + TextTestRunner, + uContactosViewRegister, + uDataModuleUsuarios, + uDataModuleContactos_Test in 'uDataModuleContactos_Test.pas', + uClientesController_test in 'uClientesController_test.pas', + uHostMainForm in 'uHostMainForm.pas' {HostMainForm}; + +{$R *.RES} + +begin + Application.Initialize; + Application.CreateForm(THostMainForm, HostMainForm); + uContactosViewRegister.RegisterViews; + if dmUsuarios.Login then + begin + dmUsuarios.IDEmpresaActual := 1; + Application.Run; + end; + Application.Terminate; +end. + diff --git a/Source/Modulos/Contactos/Test/Contactos_Tests.dproj b/Source/Modulos/Contactos/Test/Contactos_Tests.dproj new file mode 100644 index 0000000..e90334b --- /dev/null +++ b/Source/Modulos/Contactos/Test/Contactos_Tests.dproj @@ -0,0 +1,603 @@ + + + {73787cd4-7d26-4f01-9ed5-104e78c03cbc} + Contactos_Tests.dpr + Debug + AnyCPU + true + Base;GUIBase;ApplicationBase;Contactos_model;Contactos_controller;Contactos_view + DCC32 + ..\..\..\Output\Cliente\Contactos_Tests.exe + + + 7.0 + False + False + 0 + 3 + ..\..\..\Output\Cliente + .\ + .\ + .\ + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + _CONSOLE_TESTRUNNER;EUREKALOG;EUREKALOG_VER5;RELEASE + + + 7.0 + 3 + ..\..\..\Output\Cliente + .\ + .\ + .\ + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + _CONSOLE_TESTRUNNER;EUREKALOG;DEBUG;EUREKALOG_VER6 + + + Delphi.Personality + + + + False + True + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + Contactos (Test) + 1.0.0.0 + + + + + + 1.0.0.0 + + + + Contactos_Tests.dpr + + + + + + + + + + + + + + Internet Explorer Hosting Support Package + CodeGear Control Panel Applet Package + CodeGear WebSnap Components + CodeGear SOAP Components + Microsoft Office XP Sample Automation Server Wrapper Components + VCL for the Web Design Package for CodeGear RAD Studio + Microsoft Office 2000 Sample Automation Server Wrapper Components + CodeGear C++Builder Internet Explorer 5 Components Package + Borland Sample Controls Design Time Package + CodeGear C++Builder Office 2000 Servers Package + CodeGear C++Builder Office XP Servers Package + + + + + + + MainSource + + + + +
HostMainForm
+
+
+
+ + diff --git a/Source/Modulos/Contactos/Test/Contactos_Tests.res b/Source/Modulos/Contactos/Test/Contactos_Tests.res new file mode 100644 index 0000000..759b21b Binary files /dev/null and b/Source/Modulos/Contactos/Test/Contactos_Tests.res differ diff --git a/Source/Modulos/Contactos/Test/uClientesController_test.pas b/Source/Modulos/Contactos/Test/uClientesController_test.pas new file mode 100644 index 0000000..b5b7a70 --- /dev/null +++ b/Source/Modulos/Contactos/Test/uClientesController_test.pas @@ -0,0 +1,197 @@ +unit uClientesController_test; +{ + + Delphi DUnit Test Case + ---------------------- + This unit contains a skeleton test case class generated by the Test Case Wizard. + Modify the generated code to correctly setup and call the methods from the unit + being tested. + +} + +interface + +uses + TestFramework, uIEditorCliente, + uIEditorClientes, uClientesController, uCustomEditor, uBizContactos; +type + // Test methods for class TClientesController + + TestTClientesController = class(TTestCase) + strict private + FClientesController: IClientesController; + public + procedure SetUp; override; + procedure TearDown; override; + constructor Create(MethodName: string); override; + destructor Destroy; override; + published + procedure TestListar; + procedure TestVer; + procedure TestNuevo; + procedure TestNuevoYVer; + procedure TestEncontrar; + procedure TestSalvar; + procedure TestNuevoYSalvar; + procedure RecuperarUnCliente; + procedure SeleccionarUnCliente; + end; + +implementation + +uses + schContactosClient_Intf, uDADataTable, + SysUtils, Dialogs, uIDataModuleContactos, uDataModuleContactos, + uBizDatosBancarios, + uContactosViewRegister, uHostMainForm; + +constructor TestTClientesController.Create(MethodName: string); +begin + inherited; + +end; + +destructor TestTClientesController.Destroy; +begin + //uContactosViewRegister.UnRegisterViews; + inherited; +end; + +procedure TestTClientesController.RecuperarUnCliente; +var + ACliente : IBizCliente; +begin + ACliente := FClientesController.Buscar(400) as IBizCliente; + CheckNotNull(ACliente, 'Cliente ID=400 no encontrado'); + FClientesController.Ver(ACliente); +end; + +procedure TestTClientesController.SeleccionarUnCliente; +var + AClientes : IBizCliente; + ACliente : IBizCliente; +begin + AClientes := (FClientesController.BuscarTodos as IBizCliente); + CheckNotNull(AClientes, 'Clientes no encontrados'); + ACliente := (FClientesController.ElegirContacto(AClientes, 'Selecciona una lciente', False) as IBizCliente); + CheckNotNull(ACliente, 'Cliente no elegido'); + FClientesController.Ver(ACliente); +end; + +procedure TestTClientesController.SetUp; +begin + FClientesController := TClientesController.Create; +end; + +procedure TestTClientesController.TearDown; +begin + FClientesController := nil; +end; + +procedure TestTClientesController.TestListar; +var + AContactos : IBizCliente; +begin + AContactos := (FClientesController.BuscarTodos as IBizCliente); + FClientesController.VerTodos(AContactos); +end; + +procedure TestTClientesController.TestVer; +begin + CheckTrue(False); + // TODO: Validate method results +end; + +procedure TestTClientesController.TestNuevo; +var + ACliente: IBizCliente; +begin + ACliente := (FClientesController.Nuevo as IBizCliente); + Check(Assigned(ACliente), 'Cliente no creado'); + Check(ACliente.ID < 0, 'Cliente creado pero con ID incorrecto'); + CheckEquals('Cliente', ACliente.Categoria, 'No es un cliente'); + Check(Assigned(ACliente.DatosBancarios), 'Al cliente le faltan los datos bancarios'); + FClientesController.Ver(ACliente); +end; + +procedure TestTClientesController.TestNuevoYSalvar; +var + ACliente: IBizCliente; + I: Integer; +begin + ACliente := (FClientesController.Nuevo as IBizCliente); + with ACliente do + begin + NIF_CIF := '1234567890-X'; + NOMBRE := 'David Arranz Puerta'; + CALLE := 'Dehesa de Viclvaro, 47 2C'; + POBLACION := 'Madrid'; + PROVINCIA := 'Madrid'; + CODIGO_POSTAL := '28053'; + TELEFONO_1 := '123456789'; + TELEFONO_2 := '9876543231'; + MOVIL_1 := '101918171615141312'; + MOVIL_2 := '010203040506070809'; + FAX := '1111111111'; + EMAIL_1 := 'porqueyolovalgo@osea.com'; + EMAIL_2 := 'fromlost@totheriver.com'; + PAGINA_WEB := 'http://www.trapicheos.com'; + DataTable.Post; + end; + + with ACliente.DatosBancarios do + begin + Check(Assigned(ACliente.DatosBancarios), 'Datos bancarios no creado'); + for i := 1 to 5 do + begin + Insert; + Check(ID < 0, 'Datos bancarios nuevo pero con ID incorrecto'); + TITULAR := ACliente.NOMBRE; + ENTIDAD := '1931'; + SUCURSAL := '3034'; + DC := '15'; + CUENTA := '000000' + IntToStr(i); + Post; + end; + end; + + FClientesController.Guardar(ACliente); + + Check(ACliente.ID >= 0, 'ID no asignado correctamente al contacto'); + Check((ACliente.DatosBancarios.RecordCount = 5), 'Faltan filas de datos bancarios'); +end; + +procedure TestTClientesController.TestNuevoYVer; +var + ACliente: IBizCliente; +begin + CheckTrue(False); + ACliente := (FClientesController.Nuevo as IBizCliente); +end; + +procedure TestTClientesController.TestEncontrar; +var + ReturnValue: Boolean; + ID: Integer; +begin + CheckTrue(False); + // TODO: Setup method call parameters +// ReturnValue := FClientesController.ExisteContacto(ID); + // TODO: Validate method results +end; + +procedure TestTClientesController.TestSalvar; +var + AContacto: IBizCliente; +begin + CheckTrue(False); + // TODO: Setup method call parameters +// FClientesController.Salvar(AContacto); + // TODO: Validate method results +end; + +initialization + // Register any test cases with the test runner + RegisterTest(TestTClientesController.Suite); +end. + diff --git a/Source/Modulos/Contactos/Test/uDataModuleContactos_Test.pas b/Source/Modulos/Contactos/Test/uDataModuleContactos_Test.pas new file mode 100644 index 0000000..190dc72 --- /dev/null +++ b/Source/Modulos/Contactos/Test/uDataModuleContactos_Test.pas @@ -0,0 +1,140 @@ +unit uDataModuleContactos_Test; +{ + + Delphi DUnit Test Case + ---------------------- + This unit contains a skeleton test case class generated by the Test Case Wizard. + Modify the generated code to correctly setup and call the methods from the unit + being tested. + +} + +interface + +uses + TestFramework, uBizContactos, uROBinMessage, uROServiceComponent, + uDAClientDataModule, uROClient, uDataModuleContactos, uDACDSDataTable, + uBizDatosBancarios, uDADataTable, Contnrs, Classes, SysUtils, DB, uDAScriptingProvider, + uROWinInetHttpChannel, uDABINAdapter, uRORemoteService, DBClient, + uBizCategoriasContacto; +type + // Test methods for class TdmContactos + + TestTdmContactos = class(TTestCase) + strict private + FdmContactos: TDataModuleContactos; + private + procedure Test_GetItems; + public + procedure SetUp; override; + procedure TearDown; override; + published + procedure Test_GetItems_Clientes; + procedure Test_GetItems_Proveedor; + function Test_GetDatosBancarios : IBizDatosBancarios; + function Test_GetCategorias : IBizCategoriasContacto; +// function Test_GetItems (IDCategoria : Integer): IBizContacto; + end; + +implementation + +uses + Dialogs, uDataTableUtils; + +procedure TestTdmContactos.SetUp; +begin + FdmContactos := TDataModuleContactos.Create(NIL); +end; + +procedure TestTdmContactos.TearDown; +begin + FdmContactos.Free; + FdmContactos := nil; +end; + +function TestTdmContactos.Test_GetCategorias: IBizCategoriasContacto; +begin + +end; + +function TestTdmContactos.Test_GetDatosBancarios: IBizDatosBancarios; +begin + +end; + +procedure TestTdmContactos.Test_GetItems; +begin + // +end; + +procedure TestTdmContactos.Test_GetItems_Clientes; +var + AContacto : IBizContacto; + ACliente: IBizCliente; + I: Integer; +begin + AContacto := FdmContactos._GetItems(CATEGORIA_CLIENTE); + CheckIs(AContacto.DataTable.BusinessEventsObj, TBizCliente); + ACliente := (AContacto as IBizCliente); + + try + with ACliente do + begin + DataTable.Active := True; + Insert; + + Check(ID < 0, Format('ID no vlido ID=%d', [ID])); + CheckEquals('Cliente', Categoria); + + NIF_CIF := '1234567890-X'; + NOMBRE := 'David Arranz Puerta'; + CALLE := 'Dehesa de Viclvaro, 47 2C'; + POBLACION := 'Madrid'; + PROVINCIA := 'Madrid'; + CODIGO_POSTAL := '28053'; + TELEFONO_1 := '123456789'; + TELEFONO_2 := '9876543231'; + MOVIL_1 := '101918171615141312'; + MOVIL_2 := '010203040506070809'; + FAX := '1111111111'; + EMAIL_1 := 'porqueyolovalgo@osea.com'; + EMAIL_2 := 'fromlost@totheriver.com'; + PAGINA_WEB := 'http://www.trapicheos.com'; + + Post; + end; + + Check(Assigned(ACliente.DatosBancarios), 'Datos bancarios no creado'); + with ACliente.DatosBancarios do + begin + Insert; + for i := 0 to 5 do + begin + Insert; + Check(ID < 0, Format('ID no vlido ID=%d', [ID])); + TITULAR := ACliente.NOMBRE; + ENTIDAD := '1931'; + SUCURSAL := '3034'; + DC := '15'; + CUENTA := '000000' + IntToStr(i); + Post; + end; + end; + ACliente.DataTable.ApplyUpdates; + ShowMessage(SysUtils.Format('ID = %d', [ACliente.ID])); + finally + ACliente := NIL; + AContacto := NIL; + end; +end; + +procedure TestTdmContactos.Test_GetItems_Proveedor; +begin + +end; + +initialization + // Register any test cases with the test runner + RegisterTest(TestTdmContactos.Suite); +end. + diff --git a/Source/Modulos/Contactos/Test/uHostMainForm.dfm b/Source/Modulos/Contactos/Test/uHostMainForm.dfm new file mode 100644 index 0000000..1de986c --- /dev/null +++ b/Source/Modulos/Contactos/Test/uHostMainForm.dfm @@ -0,0 +1,28 @@ +object HostMainForm: THostMainForm + Left = 0 + Top = 0 + Caption = 'HostMainForm' + ClientHeight = 598 + ClientWidth = 690 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnCloseQuery = FormCloseQuery + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 690 + Height = 598 + Align = alClient + BevelOuter = bvNone + TabOrder = 0 + end +end diff --git a/Source/Modulos/Contactos/Test/uHostMainForm.pas b/Source/Modulos/Contactos/Test/uHostMainForm.pas new file mode 100644 index 0000000..f036830 --- /dev/null +++ b/Source/Modulos/Contactos/Test/uHostMainForm.pas @@ -0,0 +1,127 @@ +unit uHostMainForm; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uGUIBase, ExtCtrls, uCustomEditor, cxControls, XPMan; + +type + THostMainForm = class(TForm, IHostForm) + Panel1: TPanel; + procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); + procedure FormShow(Sender: TObject); + protected + FContenido : TCustomEditor; + function GetWorkPanel: TWinControl; + procedure OnWorkPanelChanged(AEditor : ICustomEditor); + procedure ShowEmbedded(AEditor : ICustomEditor); + procedure ReleaseEmbedded; + function Login: Boolean; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + property WorkPanel: TWinControl read GetWorkPanel; + end; + +var + HostMainForm: THostMainForm; + +implementation + +{$R *.dfm} + +uses + TestFramework, GUITestRunner, TextTestRunner, uDataModuleUsuarios; + + +{ TForm1 } + +constructor THostMainForm.Create(AOwner: TComponent); +begin + inherited; + FContenido := NIL; + Login; +end; + +destructor THostMainForm.Destroy; +begin + ReleaseEmbedded; + inherited; +end; + +procedure THostMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean); +begin + CanClose := True; + if Assigned(FContenido) then + CanClose := FContenido.CloseQuery; +end; + +procedure THostMainForm.FormShow(Sender: TObject); +begin + if IsConsole then + TextTestRunner.RunRegisteredTests + else + GUITestRunner.RunRegisteredTestsModeless; + Self.SendToBack; +end; + +function THostMainForm.GetWorkPanel: TWinControl; +begin + Result := Panel1; +end; + +function THostMainForm.Login: Boolean; +begin + // + Result := dmUsuarios.Login('Administrador', '1'); + if Result then + dmUsuarios.IDEmpresaActual := 1; + +end; + +procedure THostMainForm.OnWorkPanelChanged(AEditor: ICustomEditor); +begin + // +end; + +procedure THostMainForm.ReleaseEmbedded; +begin + if Assigned(FContenido) then + FContenido.Release; + Application.ProcessMessages; +end; + +procedure THostMainForm.ShowEmbedded(AEditor: ICustomEditor); +begin + if Assigned(FContenido) then + if not FContenido.CloseQuery then + begin + AEditor.Release; + AEditor := NIL; + Exit; + end; + + ShowHourglassCursor; + LockWindowUpdate(Handle); + try + FContenido := AEditor.GetInstance as TCustomEditor; + with (FContenido) do + begin + Visible := False; + BorderIcons := []; + BorderStyle := bsNone; + Parent := WorkPanel; + FContenido.Show; + Align := alClient; + FContenido.SetFocus; + end; + finally + Application.ProcessMessages; + LockWindowUpdate(0); + HideHourglassCursor; + end; + OnWorkPanelChanged(FContenido); +end; + +end. diff --git a/Source/Modulos/Contactos/Utiles/uRegimenIVAUtils.dcu b/Source/Modulos/Contactos/Utiles/uRegimenIVAUtils.dcu new file mode 100644 index 0000000..9abe101 Binary files /dev/null and b/Source/Modulos/Contactos/Utiles/uRegimenIVAUtils.dcu differ diff --git a/Source/Modulos/Contactos/Utiles/uRegimenIVAUtils.pas b/Source/Modulos/Contactos/Utiles/uRegimenIVAUtils.pas new file mode 100644 index 0000000..d6c240c --- /dev/null +++ b/Source/Modulos/Contactos/Utiles/uRegimenIVAUtils.pas @@ -0,0 +1,31 @@ +unit uRegimenIVAUtils; + +interface + +uses + Classes; + +const + REGIMEN_IVA_GENERAL = 'General'; + REGIMEN_IVA_EXENTO = 'Exento'; + REGIMEN_IVA_UE = 'U.E.'; + REGIMEN_IVA_IMPORTACIONES = 'Importaciones'; + +function DarRegimenesIVA : TStringList; + +implementation + +function DarRegimenesIVA : TStringList; +begin + Result := TStringList.Create; + with Result do + begin + Add(REGIMEN_IVA_GENERAL); + Add(REGIMEN_IVA_EXENTO); + Add(REGIMEN_IVA_UE); + Add(REGIMEN_IVA_IMPORTACIONES); + end; +end; + + +end. diff --git a/Source/Modulos/Contactos/Views/Contactos_view.bdsproj b/Source/Modulos/Contactos/Views/Contactos_view.bdsproj new file mode 100644 index 0000000..c1f237f --- /dev/null +++ b/Source/Modulos/Contactos/Views/Contactos_view.bdsproj @@ -0,0 +1,543 @@ + + + + + + + + + + + + Contactos_view.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + ExpressBars extended items by Developer Express Inc. + ExpressCommonLibrary by Developer Express Inc. + ExpressBars by Developer Express Inc. + Express Cross Platform Library by Developer Express Inc. + Express XP Theme Manager by Developer Express Inc. + ExpressEditors Library 5 by Developer Express Inc. + ExpressDataController by Developer Express Inc. + ExpressExtendedEditors Library 5 by Developer Express Inc. + ExpressQuantumGrid 5 by Developer Express Inc. + Express Cross Platform PageControl by Developer Express Inc. + Express Cross Platform Export Library by Developer Express Inc. + ExpressScheduler 2 by Developer Express Inc. + ExpressQuantumTreeList 4 by Developer Express Inc. + ExpressVerticalGrid by Developer Express Inc. + ExpressBars DBNavigator by Developer Express Inc. + ExpressBars extended DB items by Developer Express Inc. + ExpressDocking Library by Developer Express Inc. + ExpressLayout Control by Developer Express Inc. + ExpressNavBar by Developer Express Inc. + ExpressPrinting System by Developer Express Inc. + ExpressSideBar by Developer Express Inc. + JVCL Application and Form Components Runtime Package + JVCL Core Runtime Package + JEDI Code Library RTL package + JEDI Code Library VCL package + JVCL System Runtime Package + JVCL Standard Controls Runtime Package + JVCL Band Objects Runtime Package + JVCL BDE Components Runtime Package + JVCL Controls Runtime Package + JVCL Components Runtime Package + JVCL DotNet Controls Runtime Package + JVCL EDI Components + JVCL Globus Components + JVCL HMI Controls runtime package + JVCL Interpreter Components Runtime Package + JVCL Jans Components + JVCL Managed Threads - runtime package + JVCL Multimedia and Image Components Runtime Package + JVCL Network Components Runtime Package + JVCL Page Style Components Runtime Package + JVCL Plugin Components Runtime Package + JVCL Print Preview Components + JVCL Runtime Design Components Runtime Package + JVCL Time Framework + JVCL Validators and Error Indicator Components + JVCL Wizard Run Time Package + JVCL XP Controls Runtime Package + (untitled) + ExpressGDI+ Library by Developer Express Inc. + + + + diff --git a/Source/Modulos/Contactos/Views/Contactos_view.dcu b/Source/Modulos/Contactos/Views/Contactos_view.dcu new file mode 100644 index 0000000..05fd284 Binary files /dev/null and b/Source/Modulos/Contactos/Views/Contactos_view.dcu differ diff --git a/Source/Modulos/Contactos/Views/Contactos_view.dpk b/Source/Modulos/Contactos/Views/Contactos_view.dpk new file mode 100644 index 0000000..a39d787 --- /dev/null +++ b/Source/Modulos/Contactos/Views/Contactos_view.dpk @@ -0,0 +1,133 @@ +package Contactos_view; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + rtl, + vcl, + Base, + GUIBase, + ApplicationBase, + FormasPago_model, + FormasPago_controller, + TiposIVA_model, + TiposIVA_controller, + Contactos_model, + Contactos_controller, + JvGlobusD11R, + dbrtl, + DataAbstract_Core_D11, + vcldb, + dsnap, + adortl, + RemObjects_Core_D11, + PngComponentsD10, + PNG_D10, + vclactnband, + vclx, + cxLibraryD11, + dxThemeD11, + dxGDIPlusD11, + cxEditorsD11, + cxDataD11, + vcljpg, + cxGridD11, + cxPageControlD11, + cxExtEditorsD11, + cxExportD11, + JvCoreD11R, + Jcl, + JclVcl, + bdertl, + JvSystemD11R, + GUISDK_D11R, + xmlrtl, + cfpack_d11, + designide, + ccpackD11, + JvStdCtrlsD11R, + JvCtrlsD11R, + dxLayoutControlD11, + dxComnD11, + tb2k_d10, + tbx_d10, + dxCoreD11, + dxPSCoreD11, + dxPScxCommonD11, + dxPSLnksD11, + vclshlctrls, + dxPScxGrid6LnkD11, + dclcxLibraryD11, + JSDialog100, + JvPageCompsD11R, + JvAppFrmD11R; + +contains + uContactosViewRegister in 'uContactosViewRegister.pas', + uViewContactos in 'uViewContactos.pas' {frViewContactos: TCustomView}, + uViewClientes in 'uViewClientes.pas' {frViewClientes: TCustomView}, + uEditorContactos in 'uEditorContactos.pas' {fEditorContactos: TCustomEditor}, + uEditorClientes in 'uEditorClientes.pas' {fEditorClientes: TCustomEditor}, + uViewContacto in 'uViewContacto.pas' {frViewContacto: TCustomView}, + uEditorCliente in 'uEditorCliente.pas' {fEditorCliente: TCustomEditor}, + uEditorContacto in 'uEditorContacto.pas' {fEditorContacto: TCustomEditor}, + uViewDatosYSeleccionProveedor in 'uViewDatosYSeleccionProveedor.pas' {frViewDatosYSeleccionProveedor: TFrame}, + uViewProveedores in 'uViewProveedores.pas' {frViewProveedores: TCustomView}, + uViewEmpleados in 'uViewEmpleados.pas' {frViewEmpleados: TCustomView}, + uEditorProveedores in 'uEditorProveedores.pas' {fEditorProveedores: TCustomEditor}, + uViewContactoListaDatosBancarios in 'uViewContactoListaDatosBancarios.pas' {frViewListaDatosBancarios: TFrame}, + uViewEmpleado in 'uViewEmpleado.pas' {frViewEmpleado: TCustomView}, + uEditorProveedor in 'uEditorProveedor.pas' {fEditorProveedor: TCustomEditor}, + uEditorElegirClientes in 'uEditorElegirClientes.pas' {fEditorElegirClientes: TCustomEditor}, + uViewDatosYSeleccionCliente in 'uViewDatosYSeleccionCliente.pas' {frViewDatosYSeleccionCliente: TFrame}, + uEditorElegirProveedores in 'uEditorElegirProveedores.pas' {fEditorElegirProveedores: TCustomEditor}, + uViewDireccionesEntrega in 'uViewDireccionesEntrega.pas' {frViewDireccionesEntrega: TFrame}, + uViewClienteDescuentos in 'uViewClienteDescuentos.pas' {frViewClienteDescuentos: TFrame}, + uEditorDatoBancario in 'uEditorDatoBancario.pas' {fEditorDatoBancario}, + uEditorElegirPersonaContacto in 'uEditorElegirPersonaContacto.pas' {fEditorElegirPersonaContacto: TfEditorElegirDireccionEntrega}, + uViewContactoDatosBancarios in 'uViewContactoDatosBancarios.pas' {frViewClienteDatosBancarios: TFrame}, + uViewProveedorDatosComerciales in 'uViewProveedorDatosComerciales.pas' {frViewProveedorDatosComerciales: TFrame}, + uEditorGruposCliente in 'uEditorGruposCliente.pas' {fEditorGruposCliente: TCustomEditor}, + uEditorEmpleado in 'uEditorEmpleado.pas' {fEditorEmpleado: TCustomEditor}, + uEditorEmpleados in 'uEditorEmpleados.pas' {fEditorEmpleados: TCustomEditor}, + uEditorGruposProveedor in 'uEditorGruposProveedor.pas' {fEditorGruposProveedor: TCustomEditor}, + uEditorGruposEmpleado in 'uEditorGruposEmpleado.pas' {fEditorGruposEmpleado: TCustomEditor}, + uEditorFichasEmpleadoReport in 'uEditorFichasEmpleadoReport.pas' {fEditorFichasEmpleadoReport: TCustomEditor}, + uEditorEtiquetasContactosReport in 'uEditorEtiquetasContactosReport.pas' {fEditorEtiquetasContactosReport: TCustomEditor}, + uEditorDireccion in 'uEditorDireccion.pas' {fEditorDireccion: TCustomEditor}, + uEditorPersonal in 'uEditorPersonal.pas' {fEditorPersonal: TCustomEditor}, + uViewPersonalContacto in 'uViewPersonalContacto.pas' {frViewPersonalContacto: TFrame}, + uEditorElegirDireccionEntrega in 'uEditorElegirDireccionEntrega.pas' {fEditorElegirDireccionEntrega: TCustomEditor}, + uViewDatosYSeleccionClienteBase in 'uViewDatosYSeleccionClienteBase.pas' {frViewDatosYSeleccionClienteBase: TFrame}, + uViewAgentes in 'uViewAgentes.pas' {frViewAgentes: TFrame}, + uEditorAgentes in 'uEditorAgentes.pas' {fEditorAgentes: TCustomEditor}, + uViewProveedor in 'uViewProveedor.pas' {frViewProveedor: TFrame}, + uViewAgente in 'uViewAgente.pas' {frViewAgente: TFrame}, + uViewCliente in 'uViewCliente.pas' {frViewCliente: TFrame}, + uViewAgenteComisiones in 'uViewAgenteComisiones.pas' {frViewAgenteComisiones: TFrame}, + uEditorAgente in 'uEditorAgente.pas' {fEditorAgente: TCustomEditor}, + uViewClienteDatosComerciales in 'uViewClienteDatosComerciales.pas' {frViewClienteDatosComerciales: TFrame}; + +end. diff --git a/Source/Modulos/Contactos/Views/Contactos_view.dproj b/Source/Modulos/Contactos/Views/Contactos_view.dproj new file mode 100644 index 0000000..b881b0b --- /dev/null +++ b/Source/Modulos/Contactos/Views/Contactos_view.dproj @@ -0,0 +1,766 @@ + + + + {3a12ff5e-75c6-4e1e-bc5c-b6b9010ba595} + Contactos_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Contactos_view.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Contactos_view.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fEditorAgente
+ TCustomEditor +
+ +
fEditorAgentes
+ TCustomEditor +
+ +
fEditorCliente
+ TCustomEditor +
+ +
fEditorClientes
+ TCustomEditor +
+ +
fEditorContacto
+ TCustomEditor +
+ +
fEditorContactos
+ TCustomEditor +
+ +
fEditorDatoBancario
+
+ +
fEditorDireccion
+ TCustomEditor +
+ +
fEditorElegirClientes
+ TCustomEditor +
+ +
fEditorElegirDireccionEntrega
+ TCustomEditor +
+ +
fEditorElegirPersonaContacto
+ TfEditorElegirDireccionEntrega +
+ +
fEditorElegirProveedores
+ TCustomEditor +
+ +
fEditorEmpleado
+ TCustomEditor +
+ +
fEditorEmpleados
+ TCustomEditor +
+ +
fEditorEtiquetasContactosReport
+ TCustomEditor +
+ +
fEditorFichasEmpleadoReport
+ TCustomEditor +
+ +
fEditorGruposCliente
+ TCustomEditor +
+ +
fEditorGruposEmpleado
+ TCustomEditor +
+ +
fEditorGruposProveedor
+ TCustomEditor +
+ +
fEditorPersonal
+ TCustomEditor +
+ +
fEditorProveedor
+ TCustomEditor +
+ +
fEditorProveedores
+ TCustomEditor +
+ +
frViewAgente
+ TFrame +
+ +
frViewAgenteComisiones
+ TFrame +
+ +
frViewAgentes
+ TFrame +
+ +
frViewCliente
+ TFrame +
+ +
frViewAgenteComisiones
+ TFrame +
+ +
frViewClienteDescuentos
+ TFrame +
+ +
frViewClientes
+ TCustomView +
+ +
frViewContacto
+ TCustomView +
+ +
frViewClienteDatosBancarios
+ TFrame +
+ +
frViewListaDatosBancarios
+ TFrame +
+ +
frViewContactos
+ TCustomView +
+ +
frViewDatosYSeleccionCliente
+ TFrame +
+ +
frViewDatosYSeleccionClienteBase
+ TFrame +
+ +
frViewDatosYSeleccionProveedor
+ TFrame +
+ +
frViewDireccionesEntrega
+ TFrame +
+ +
frViewEmpleado
+ TCustomView +
+ +
frViewEmpleados
+ TCustomView +
+ +
frViewPersonalContacto
+ TFrame +
+ +
frViewProveedor
+ TFrame +
+ +
frViewProveedorDatosComerciales
+ TFrame +
+ +
frViewProveedores
+ TCustomView +
+ + + + + + + +
+
+ diff --git a/Source/Modulos/Contactos/Views/Contactos_view.drc b/Source/Modulos/Contactos/Views/Contactos_view.drc new file mode 100644 index 0000000..40b11e5 --- /dev/null +++ b/Source/Modulos/Contactos/Views/Contactos_view.drc @@ -0,0 +1,59 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* c:\codigo\source\modulos\contactos\views\uViewContactos.dfm */ +/* c:\codigo\source\modulos\contactos\views\uEditorContactos.dfm */ +/* c:\codigo\source\modulos\contactos\views\uViewClientes.dfm */ +/* c:\codigo\source\modulos\contactos\views\uEditorClientes.dfm */ +/* c:\codigo\source\modulos\contactos\views\uViewProveedores.dfm */ +/* c:\codigo\source\modulos\contactos\views\uEditorProveedores.dfm */ +/* c:\codigo\source\modulos\contactos\views\uViewEmpleados.dfm */ +/* c:\codigo\source\modulos\contactos\views\uEditorEmpleados.dfm */ +/* c:\codigo\source\modulos\contactos\views\uViewAgentes.dfm */ +/* c:\codigo\source\modulos\contactos\views\uEditorAgentes.dfm */ +/* c:\codigo\source\modulos\contactos\views\uEditorElegirClientes.dfm */ +/* c:\codigo\source\modulos\contactos\views\uViewContacto.dfm */ +/* c:\codigo\source\modulos\contactos\views\uViewContactoDatosBancarios.dfm */ +/* c:\codigo\source\modulos\contactos\views\uViewContactoListaDatosBancarios.dfm */ +/* c:\codigo\source\modulos\contactos\views\uViewPersonalContacto.dfm */ +/* c:\codigo\source\modulos\contactos\views\uEditorContacto.dfm */ +/* c:\codigo\source\modulos\contactos\views\uViewCliente.dfm */ +/* c:\codigo\source\modulos\contactos\views\uViewEmpleado.dfm */ +/* c:\codigo\source\modulos\contactos\views\uViewDireccionesEntrega.dfm */ +/* c:\codigo\source\modulos\contactos\views\uViewClienteDescuentos.dfm */ +/* c:\codigo\source\modulos\contactos\views\uViewClienteDatosComerciales.dfm */ +/* c:\codigo\source\modulos\contactos\views\uEditorCliente.dfm */ +/* c:\codigo\source\modulos\contactos\views\uViewProveedor.dfm */ +/* c:\codigo\source\modulos\contactos\views\uViewProveedorDatosComerciales.dfm */ +/* c:\codigo\source\modulos\contactos\views\uEditorProveedor.dfm */ +/* c:\codigo\source\modulos\contactos\views\uViewAgente.dfm */ +/* c:\codigo\source\modulos\contactos\views\uViewAgenteComisiones.dfm */ +/* c:\codigo\source\modulos\contactos\views\uEditorAgente.dfm */ +/* c:\codigo\source\modulos\contactos\views\uEditorEmpleado.dfm */ +/* c:\codigo\source\modulos\contactos\views\uEditorElegirProveedores.dfm */ +/* c:\codigo\source\modulos\contactos\views\uEditorDireccion.dfm */ +/* c:\codigo\source\modulos\contactos\views\uEditorElegirDireccionEntrega.dfm */ +/* c:\codigo\source\modulos\contactos\views\uEditorGruposCliente.dfm */ +/* c:\codigo\source\modulos\contactos\views\uEditorGruposProveedor.dfm */ +/* c:\codigo\source\modulos\contactos\views\uEditorGruposEmpleado.dfm */ +/* c:\codigo\source\modulos\contactos\views\uEditorFichasEmpleadoReport.dfm */ +/* c:\codigo\source\modulos\contactos\views\uEditorEtiquetasContactosReport.dfm */ +/* c:\codigo\source\modulos\contactos\views\uEditorDatoBancario.dfm */ +/* c:\codigo\source\modulos\contactos\views\uEditorPersonal.dfm */ +/* c:\codigo\source\modulos\contactos\views\uEditorElegirPersonaContacto.dfm */ +/* c:\codigo\source\modulos\contactos\views\uViewDatosYSeleccionProveedor.dfm */ +/* c:\codigo\source\modulos\contactos\views\uViewDatosYSeleccionCliente.dfm */ +/* c:\codigo\source\modulos\contactos\views\uViewDatosYSeleccionClienteBase.dfm */ +/* c:\codigo\source\modulos\contactos\views\Contactos_view.res */ +/* c:\codigo\source\modulos\contactos\views\Contactos_view.drf */ diff --git a/Source/Modulos/Contactos/Views/Contactos_view.identcache b/Source/Modulos/Contactos/Views/Contactos_view.identcache new file mode 100644 index 0000000..bf92858 Binary files /dev/null and b/Source/Modulos/Contactos/Views/Contactos_view.identcache differ diff --git a/Source/Modulos/Contactos/Views/Contactos_view.rc b/Source/Modulos/Contactos/Views/Contactos_view.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Contactos/Views/Contactos_view.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Contactos/Views/Contactos_view.res b/Source/Modulos/Contactos/Views/Contactos_view.res new file mode 100644 index 0000000..1641339 Binary files /dev/null and b/Source/Modulos/Contactos/Views/Contactos_view.res differ diff --git a/Source/Modulos/Contactos/Views/uContactosViewRegister.dcu b/Source/Modulos/Contactos/Views/uContactosViewRegister.dcu new file mode 100644 index 0000000..7465410 Binary files /dev/null and b/Source/Modulos/Contactos/Views/uContactosViewRegister.dcu differ diff --git a/Source/Modulos/Contactos/Views/uContactosViewRegister.pas b/Source/Modulos/Contactos/Views/uContactosViewRegister.pas new file mode 100644 index 0000000..e4960c0 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uContactosViewRegister.pas @@ -0,0 +1,84 @@ +unit uContactosViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, + uEditorClientes, uEditorProveedores, + uEditorEmpleados, uEditorAgentes, uEditorElegirCLientes, + uEditorCliente, uEditorProveedor, uEditorAgente, + uEditorEmpleado, uEditorElegirProveedores, uEditorDireccion, + uEditorElegirDireccionEntrega, uEditorGruposCliente, uEditorGruposProveedor, uEditorGruposEmpleado, + uEditorFichasEmpleadoReport, uEditorEtiquetasContactosReport, + uEditorDatoBancario, uEditorPersonal, uEditorElegirPersonaContacto; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorClientes, 'EditorClientes'); + EditorRegistry.RegisterClass(TfEditorProveedores, 'EditorProveedores'); + EditorRegistry.RegisterClass(TfEditorEmpleados, 'EditorEmpleados'); + EditorRegistry.RegisterClass(TfEditorAgentes, 'EditorAgentes'); + + EditorRegistry.RegisterClass(TfEditorCliente, 'EditorCliente'); + EditorRegistry.RegisterClass(TfEditorProveedor, 'EditorProveedor'); + EditorRegistry.RegisterClass(TfEditorEmpleado, 'EditorEmpleado'); + EditorRegistry.RegisterClass(TfEditorAgente, 'EditorAgente'); + + EditorRegistry.RegisterClass(TfEditorElegirClientes, 'EditorElegirClientes'); + EditorRegistry.RegisterClass(TfEditorElegirProveedores, 'EditorElegirProveedores'); + + EditorRegistry.RegisterClass(TfEditorDireccion, 'EditorDireccion'); + EditorRegistry.RegisterClass(TfEditorElegirDireccionEntrega, 'EditorElegirDireccionEntrega'); + + EditorRegistry.RegisterClass(TfEditorPersonal, 'EditorPersonalContacto'); + + EditorRegistry.RegisterClass(TfEditorGruposCliente, 'EditorGruposCliente'); + EditorRegistry.RegisterClass(TfEditorGruposProveedor, 'EditorGruposProveedor'); + EditorRegistry.RegisterClass(TfEditorGruposEmpleado, 'EditorGruposEmpleado'); + + EditorRegistry.RegisterClass(TfEditorDatoBancario, 'EditorDatoBancarioContacto'); + + EditorRegistry.RegisterClass(TfEditorFichasEmpleadoPreview, 'EditorFichasEmpleadoPreview'); + EditorRegistry.RegisterClass(TfEditorEtiquetasContactosPreview, 'EditorEtiquetasContactosPreview'); + + EditorRegistry.RegisterClass(TfEditorElegirPersonaContacto, 'EditorElegirPersonaContacto'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorClientes); + EditorRegistry.UnRegisterClass(TfEditorProveedores); + EditorRegistry.UnRegisterClass(TfEditorEmpleados); + EditorRegistry.UnRegisterClass(TfEditorAgentes); + + EditorRegistry.UnRegisterClass(TfEditorCliente); + EditorRegistry.UnRegisterClass(TfEditorProveedor); + EditorRegistry.UnRegisterClass(TfEditorEmpleado); + EditorRegistry.UnRegisterClass(TfEditorAgente); + + EditorRegistry.UnRegisterClass(TfEditorElegirClientes); + EditorRegistry.UnRegisterClass(TfEditorElegirProveedores); + + EditorRegistry.UnRegisterClass(TfEditorDireccion); + EditorRegistry.UnRegisterClass(TfEditorElegirDireccionEntrega); + + EditorRegistry.UnRegisterClass(TfEditorPersonal); + + EditorRegistry.UnRegisterClass(TfEditorGruposCliente); + EditorRegistry.UnRegisterClass(TfEditorGruposProveedor); + EditorRegistry.UnRegisterClass(TfEditorGruposEmpleado); + + EditorRegistry.UnRegisterClass(TfEditorDatoBancario); + + EditorRegistry.UnRegisterClass(TfEditorFichasEmpleadoPreview); + EditorRegistry.UnRegisterClass(TfEditorEtiquetasContactosPreview); + + EditorRegistry.UnRegisterClass(TfEditorElegirPersonaContacto); +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uEditorAgente.dcu b/Source/Modulos/Contactos/Views/uEditorAgente.dcu new file mode 100644 index 0000000..f08e66e Binary files /dev/null and b/Source/Modulos/Contactos/Views/uEditorAgente.dcu differ diff --git a/Source/Modulos/Contactos/Views/uEditorAgente.dfm b/Source/Modulos/Contactos/Views/uEditorAgente.dfm new file mode 100644 index 0000000..cfeba76 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorAgente.dfm @@ -0,0 +1,2289 @@ +inherited fEditorAgente: TfEditorAgente + Left = 387 + Top = 297 + Caption = 'Ficha de agente' + ClientHeight = 715 + ClientWidth = 870 + ExplicitWidth = 878 + ExplicitHeight = 749 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 870 + Caption = 'Ficha de agente' + ExplicitWidth = 870 + inherited Image1: TImage + Left = 843 + Picture.Data = { + 0B546478504E47496D61676589504E470D0A1A0A0000000D4948445200000018 + 000000180806000000E0773DF8000000017352474200AECE1CE9000000046741 + 4D410000B18F0BFC6105000000206348524D00007A26000080840000FA000000 + 80E8000075300000EA6000003A98000017709CBA513C00000009704859730000 + 17110000171101CA26F33F0000040F49444154484BD595594C9C651486F5C22B + 4DBC6ABC7349AD56AD089434696AD548DDD2DA86DA54206026D029AB8896A626 + 55AA8D315A2D8B8DD6428B550B52455A96863DB4D0B253F6656080D998056686 + 7D29DBE3F70D8B343FDCC9857F7226F96FDEF73DCF3973FE07810736F491061B + 591B2AEEA2237FB24ADBD888BACF40BCB89E858505E6E717989D9B6766768E7B + 33734C4DCF303135C3D8F83423E3530C8D4CE2189E60D03986D53E8A796004A3 + 7518BD79883E93831EC3201E6F8549B97F3B5814878961070DA967C80AD9495A + C08B5C50BF4AE91FF138066D8C8C2D890F4D30E018BF4FDC20C5FB9D680D76BA + 75EB18DC9B9EA0FED2696A43B65314F83CA93E8F73EEED4DC4EE7E989C9F6270 + 389C2BC96D8E318E5D9E5AB33A7B6DCA0E2496B6B25C0A546E14FA6DE5AACF53 + 5C38F824978EBAF1EDFEC78879ED5174EDD52E2C361796514CB6610C6627BA7E + 81C5B898BCB36F80F61EABD2604E302F4AFA9274DF2DFCE6FF2CA9615E14C71D + 4097ADA631E53D4EEFDF446DCE79AC03435804739360BE5E07ADDD16A5C18C30 + C83E1B4D66ECEB34A70761BC1189B3240A535630B69C20AEC6B853F6F78F98AD + CEA5E443E84C4E7A2573BD4C6EA3432497E2CD1AB3D2406E4BEA172A0ABEDEC3 + 68593483F9A118AEA9D0A6FBA3FBD39F8BEACD1467FC8CC9E21458A4B883DE15 + 2CABC5FB69EC30290DA6A6674938EA4D42E01368FEF2C5785D45779A1FBDE9BE + B4FEB297CFDE7984EB17BF47DF6F77315F4EAE11CC572797E277DB8D4A03B9E7 + 099FAA08DBBD89CCCFF708F1C3745CF6A129651FC9916E04B93F44C6B524B1E7 + 8322B9C38545B38C45BB88A56949BCAE750D83F1C9692A8B4A49DE1540C69B87 + B871CA9BFC8497F9FDC35D24EDD84BB2D7214AEACAC5B62C8B0F1010F3EB9A55 + D3625076302AFEA179618954EF38C14D8F700A8E1DA422ED5D4A02FCA972FF98 + 4ACFE3A4449DA44ED345974E6011BBDE2606DAD265A6B1B35F603151D766A4A6 + 594F75934E69303C3A49EE736ACAB74752B12D8A3B216A5ACE1DA1755F34359E + 1F71CB3382BCA7D5FC107FC6C5BC4D6B5DB783CAC63EA581BC2F995B8329740F + E5B64724E5AF8453F14638353BA3846904052F8550F04C28DF78AB84B8602E92 + 372D25AF17CC6B9B0D5435E991E215777B950676715FAE6CFE80C26D6194B947 + 522552D7784653E525D2BB4790FF4228995B8E70EA40042D1A8B0BCB7A33B85D + BF86813C5EB957B2391FF515898127487CFF13E20F8BF28BE16CC071BE0B3E49 + 5C6C1C79C5952EF106B131F58279AD18A8645ED9A8E34E431F52BCACAE47D981 + EBECDAE4D91D1267D729D6D18E566F770D541E2F89450E54626910035D116F5E + 16EFA55C8AD7F670AB56AB3470895B966EBA5845797697C5DB85786B9745889B + 572597DB2299EBA858955C1ADCAC59C3407E20FEEB5AF9E0FCAF3FFAFF00D0BE + 8BB7B4B679610000000049454E44AE426082} + ExplicitLeft = 565 + end + inherited lblDesbloquear: TcxLabel + Left = 745 + ExplicitLeft = 745 + AnchorX = 790 + AnchorY = 14 + end + end + inherited TBXDock: TTBXDock + Width = 870 + ExplicitWidth = 870 + inherited tbxMain: TTBXToolbar + Left = 3 + DockPos = 3 + ExplicitLeft = 3 + ExplicitWidth = 330 + object TBXItem7: TTBXItem [7] + Action = actGruposCliente + DisplayMode = nbdmImageAndText + end + object TBXSubmenuItem8: TTBXSubmenuItem [8] + Caption = 'Documentos relacionados' + DisplayMode = nbdmImageAndText + DropdownCombo = True + Enabled = False + ImageIndex = 22 + Visible = False + object TBXItem36: TTBXItem + Action = actDocumentosPresupuestos + end + object TBXItem35: TTBXItem + Action = actDocumentosAlbaranes + end + object TBXItem34: TTBXItem + Action = actDocumentosFacturas + end + object TBXItem40: TTBXItem + Action = actDocumentosRecibos + end + end + inherited TBXSeparatorItem2: TTBXSeparatorItem [9] + end + inherited TBXItem24: TTBXItem [10] + end + inherited TBXItem23: TTBXItem [11] + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 870 + object TBXSubmenuItem2: TTBXSubmenuItem [4] + Caption = 'A&cciones' + object TBXItem33: TTBXItem + Action = actGruposCliente + end + object TBXSeparatorItem6: TTBXSeparatorItem + end + object TBXSubmenuItem3: TTBXSubmenuItem + Caption = 'Documentos relacionados' + ImageIndex = 22 + object TBXItem39: TTBXItem + Action = actDocumentosPresupuestos + end + object TBXItem38: TTBXItem + Action = actDocumentosAlbaranes + end + object TBXItem37: TTBXItem + Action = actDocumentosFacturas + end + object TBXItem41: TTBXItem + Action = actDocumentosRecibos + end + end + end + end + end + inherited pgPaginas: TPageControl + Width = 864 + Height = 614 + ActivePage = pagGeneral + ExplicitWidth = 864 + ExplicitHeight = 614 + inherited pagGeneral: TTabSheet + ExplicitWidth = 856 + ExplicitHeight = 586 + inline frViewAgente1: TfrViewAgente + Left = 0 + Top = 0 + Width = 856 + Height = 586 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 856 + ExplicitHeight = 586 + inherited dxLayoutControlContacto: TdxLayoutControl + Width = 856 + Height = 586 + ExplicitWidth = 856 + ExplicitHeight = 586 + inherited PngSpeedButton1: TPngSpeedButton + Left = 811 + ExplicitLeft = 811 + end + inherited PngSpeedButton2: TPngSpeedButton + Left = 811 + ExplicitLeft = 811 + end + inherited PngSpeedButton3: TPngSpeedButton + Left = 811 + ExplicitLeft = 811 + end + inherited eCalle: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited cbProvincia: TcxDBComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited cbPoblacion: TcxDBComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited eCodigoPostal: TcxDBTextEdit + Left = 397 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 397 + end + inherited eObservaciones: TcxDBMemo + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitHeight = 38 + Height = 38 + end + inherited eTlfParticular: TcxDBTextEdit + Left = 587 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 587 + end + inherited eTlfTrabajo: TcxDBTextEdit + Left = 587 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 587 + end + inherited eTlfMovil: TcxDBTextEdit + Left = 587 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 587 + end + inherited eFax: TcxDBTextEdit + Left = 587 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 587 + end + inherited eNombre: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited eFechaBaja: TcxDBDateEdit + ExplicitWidth = 229 + Width = 229 + end + inherited eCausaBaja: TcxDBTextEdit + ExplicitWidth = 229 + Width = 229 + end + inherited eNIFCIF: TcxDBTextEdit + Left = 285 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 285 + ExplicitWidth = 126 + Width = 126 + end + inherited eMailTrabajo: TcxDBHyperLinkEdit + Left = 587 + Properties.Prefix = 'mailto:' + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 587 + end + inherited eMailParticular: TcxDBHyperLinkEdit + Left = 587 + Properties.Prefix = 'mailto:' + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 587 + end + inherited ePaginaWeb: TcxDBHyperLinkEdit + Left = 587 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 587 + end + inherited eReferencia: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 73 + Width = 73 + end + inherited ePersonaContacto: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + end + end + end + inherited pagDatosBancarios: TTabSheet + ExplicitWidth = 856 + ExplicitHeight = 586 + inherited frViewListaDatosBancarios: TfrViewListaDatosBancarios + Width = 856 + Height = 586 + ExplicitWidth = 856 + ExplicitHeight = 586 + inherited cxGrid: TcxGrid + Width = 856 + Height = 561 + ExplicitWidth = 856 + ExplicitHeight = 561 + end + inherited ToolBar1: TToolBar + Width = 856 + ExplicitWidth = 856 + inherited ToolButton1: TToolButton + ExplicitWidth = 62 + end + inherited ToolButton4: TToolButton + ExplicitWidth = 74 + end + inherited ToolButton2: TToolButton + ExplicitWidth = 67 + end + inherited ToolButton7: TToolButton + ExplicitWidth = 117 + end + end + end + end + object pagDescuentos: TTabSheet [2] + Caption = 'Descuentos' + ImageIndex = 2 + inline frViewAgenteComisiones1: TfrViewAgenteComisiones + Left = 0 + Top = 0 + Width = 856 + Height = 586 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitLeft = 230 + ExplicitTop = 91 + inherited cxGrid: TcxGrid + Width = 856 + Height = 561 + end + inherited ToolBar1: TToolBar + Width = 856 + end + end + end + inherited pagPersonal: TTabSheet + TabVisible = False + ExplicitWidth = 856 + ExplicitHeight = 586 + inherited frViewPersonalContacto1: TfrViewPersonalContacto + Width = 856 + Height = 586 + ExplicitWidth = 856 + ExplicitHeight = 586 + inherited cxGrid: TcxGrid + Width = 856 + Height = 561 + ExplicitWidth = 856 + ExplicitHeight = 561 + end + inherited ToolBar1: TToolBar + Width = 856 + ExplicitWidth = 856 + inherited ToolButton1: TToolButton + ExplicitWidth = 62 + end + inherited ToolButton4: TToolButton + ExplicitWidth = 74 + end + inherited ToolButton2: TToolButton + ExplicitWidth = 67 + end + inherited ToolButton7: TToolButton + ExplicitWidth = 117 + end + end + end + end + end + inherited StatusBar: TJvStatusBar + Top = 696 + Width = 870 + ExplicitTop = 696 + ExplicitWidth = 870 + end + inherited EditorActionList: TActionList + Top = 208 + inherited actPrevisualizar: TAction + Enabled = False + Visible = False + end + inherited actImprimir: TAction + Enabled = False + Visible = False + end + object actGruposCliente: TAction + Category = 'Acciones' + Caption = 'Grupos de cliente' + Enabled = False + ImageIndex = 21 + Visible = False + OnExecute = actGruposClienteExecute + end + object actDocumentosFacturas: TAction + Category = 'Acciones' + Caption = 'Facturas' + ImageIndex = 25 + OnExecute = actDocumentosFacturasExecute + end + object actDocumentosPresupuestos: TAction + Category = 'Acciones' + Caption = 'Presupuestos' + ImageIndex = 23 + OnExecute = actDocumentosPresupuestosExecute + end + object actDocumentosAlbaranes: TAction + Category = 'Acciones' + Caption = 'Albaranes' + ImageIndex = 24 + OnExecute = actDocumentosAlbaranesExecute + end + object actDocumentosRecibos: TAction + Category = 'Acciones' + Caption = 'Recibos' + ImageIndex = 26 + OnExecute = actDocumentosRecibosExecute + end + end + inherited dsDataTable: TDADataSource + Left = 16 + Top = 240 + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage + Left = 432 + end + inherited StatusBarImages: TPngImageList + Left = 48 + Top = 248 + end + inherited LargeImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002444944415478DA + 9D964B6813511885CF2074E74A70E34277522BD2E842178A1041108A6ED4858A + 28880F908A5D148A50105CD4450B4AC520BE8A56C4D7A2AD548B41A90FAA6932 + 69190CA52E54444DEBA8D8343269E65EE7BF319967676E7BE06766C2F07D77EE + C9C02808C8EDFE118E45A4B3BB07EAD3CB8AF33725E84612EC6FDAB82078EFC0 + 5BAC58BE0C2DED5D2E8992BE5017B8DAF5CDC682058DF5AB30ADCFB82442E084 + 715682DABD142FD5124EDD90DB29D364B83B98C2E60DAB51281A2E894B40705E + FA89EC95956838D881C4E9964809C14D93E3FED028E29B1A509A2BBB24354115 + CEAC19BF19134F504D9084330ED39AB225A0F347C98C28D91B21889D9CA9C12B + A357AE8D1FB8DAD1EA1338E1E6FF29338657EA47CC1667A1EBBAB8EF7A6F5F45 + D078F493D896A078BB980FEE3DEF4FBEB305EB0EA9625BA2CA968533AB93C72F + 52B660EDBE24B43BDB105676F335260DA7FB9E0C8FDA8235BBEFE1FD83BD882A + FB58624E0A4E8B78F63A630BEA772690EB3B8EA8B28F5C32A4E074FD7C246B0B + 68955B6275882AFBF0C5BF52709AE1D478455005C8947DA0ABE01210B4FAA209 + 11E735F19BB4E617C894BDE7FCEF40B8F7C9526339BF40B6EC5DE7F450381D33 + DA845F205B76D3D9E95038CD586ED22F70961D04FFA575E2E1401E3BDAA742E1 + B47DDAC407B7C05BB6176E1A53F833794B08B69FF91E0AA7840AA86C2F9C1979 + 143E0F0941BCED6B283C5240657BE1CC3A16F35921D8DAFA25141E29A0B2F574 + 5BE00B478225F141C8645E81F32F19949E6F27A4041485F3457DA148E71FF2CE + 98E361E521AA0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001CC4944415478DA + 63FCFFFF3F032D0123B2058B361EA79A6D71FE968C582D004A906CD8DFBFFF80 + F83F9806010BDF6C868B7B66E1B6C0752FAA25BB9D8FE3341C59ED5A8B030CF3 + 56EF6198BF64237E0B4871B9C7016B0659651686F9DB8E30BC8BFEC6B070FD3E + C21660F301BA18086CB53DC2E07DD88661CFCD1360FEEB882F0C4B361DA0CC07 + FFFF01C31A88FF005D0F62FFFE070CFF3FFFC0BEF9F3EF2FC38A2D8749F70131 + 00E48B4741EF18D6EE38469C05306F9302EEFBBF61D8B0FB047116E04B39D800 + 48CF4CD5CD0C9BF69D24DE025C4105B31C260F533B4D7913C3D603A768E78389 + 0A1B18761D3E433B1FF4C9AC63D87BFC1CED7CD02DB986E1C0A90BF82D88F631 + 07E74E727CD02EBE8AE1C8994BF82D88F03403E74E727CD024BC9CE1E485ABF8 + 2D08753361F03B66479605F5024B19CE5CBE8EDF8200172386E0130E780D0359 + BEE4CF5C383F8625196C410DEF6286F3D76EE2B7C0D7C1005EAE40CAF97FE0B2 + 072C062CF373EFFB63C40F8C5FC9BD88E1D28D5BF82DF0B2D5C36938882E7814 + 8835F888B6C0CD5A1BA7E1A012B4E46930CEA023CA0247730DB061FFFE428AE5 + DF7F11C5F1BFFF508BFEFD437104322068819D891AB844A404E0B5A077F27C8A + 0C8701980500F0E629EF34B079A30000000049454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F330000026A4944415478DA63FCFFFF3F032D + 0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80F83F980601EBC0 + 7C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3C275FB19E62DDD + 84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD97890B005D87C802E + 06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9E0FF3F605803F1 + 1FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F18E70860DBB4E10 + 6701CCDBA480075B431936EF3D459C05F8520E3600D2B3A8508F61EB81D3C45B + 802BA86096C3E4616AE7E7EB32EC387486721F4C2C7064F8CA7E8E41F8D527BC + BE7AF2D589341FC02C6D2BE76788F0FBC520C1F883E1D74F0608FEC1C0F01346 + 03F1C9134458800DCC4C6464884D85B0F119CE2FC1C070F52E160B223C4DC1B9 + 139B0F62DE3B31B008E28FEC3FEF1186638D8350371370EEC4E60364D783C0A7 + F71017C330C80767CE4082C6CE701FC3A1F3587C10E46CC4E0567D04A70520CD + 8400C87010C06A819FA3018357ED31AC1A414184EC0310F8FB17182CBF19187E + FF02FAE23B03C38D1B0839AC1678DBE9C1CB155819032A7B40F49E7A51140B40 + 86FE061AFEE71784BD660D07839AC60F0636163C167858EB60351C54A1EC6F12 + C3880390C1201F80F0966D1C0C52F2100BD85819184E5CC662818BA51656C341 + F4A15609140BDEBE44180EB268E71E0E061169880557EE383134AFDACB886181 + BDA93AD8B07F7F11C532CCC2E39DD2700B4006BE7B85301C1454FB0E7230F089 + FF6078F0046238D6646A63A40A2E11B101D67D9E600B664EE5C09982DEFDB662 + D8FA491D7759D43B65214ECDF6BCFB187818A5F1265190E12000B300003BBC36 + ACFF3E80210000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001BE4944415478DA + 63FCFFFF3F032D0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80 + F83F980601EBC07C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3 + C275FB19E62DDD84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD978 + 90B005D87C802E06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9 + E0FF3F605803F11FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F1 + 8E70860DBB4E106701CCDBA480075B431936EF3D459C05F8520E3600D2B3A850 + 8F61EB81D3C45B802BA86096C3E4616AE7E7EB32EC387486763E989DA3CDB0E7 + E839DAF96046A626C3FE131768E783A969EA0C874E5FC26F4184A729387792E3 + 838929AA0CC7CE5EC16F41A89B09387792E3839E042586D317AFE3B720C8D988 + C1ADFA08591674C62A309CBB7213BF057E8E060C5EB5C7F01A06B27CC1913F70 + 7E820D0BD882B62839868BD76FE3B7C0DB4E0F5EAEC0CA1850D9032BF393275F + C1881F18BF394296E1CACD3BF82DF0B0D6C16938884E9B760D6BF0116D818BA5 + 164EC3411667CDB88133E888B2C0DE541D6CD8BFBF88621966E1BFFFFFB1061F + 322068818D912AB844A404E0B5A077CA428A0C8701980500619929EF09CFCE42 + 0000000049454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F330000028C4944415478DADD945F4853511C + C7BF77646942ABE9A061F6BF8690D443427B88A2321123166EDAA21E122308EA + B184407DC887E8A932F0611A3542325F0A0729B432A849CA68CA1CA2B86C0C4B + 43A428EFEEEE9FCE39E8DA9FBB7F0F7BE9073F7EE7DE7BCEF7737EBFF33B9753 + 1405F934EEFF00F43A47F34689026C7555392D1425059224232C882C8AB2CC22 + 1B131722121AAFB6C6030E5BDE6514964540126444C2448CB8F0538448C78204 + 99BC672E8A687FA045CFB357C980B1FEE371A033B53EB4365D4B06911D53AFAE + 71603A50C284BF85CEA174CB73709284B647BAD4006A741C2B3EBEFC05756573 + 88AC7C4541D17638433B602C324010049C35F7C33FA1C5C2623D9B5B5AEC407B + 973E7D066BE2E5C5C308FE3EC622151F5A3A8AD3BAB704B21B538B5530EA47E1 + 0D56A2DEFA12C3AE26E8373E25352419D80DEA80C4D21834BD98976DD8AA7130 + F11A9D1B834B2654970C6166D986FDDA018C7F3F8586F303981C59C7C4E941B5 + F594670788CF60161C0AA18067194C840EA2B2CC8B4FD3FB70E1D220263F70AB + 5D403278B2333D2016229105BE5F417606023F85F585467606DBE44D08F37C92 + 38B59480D82EA2ED6736FBD172B1994164D6EB52D4E973A3CD19155F8C5C815E + D3951E10BD48B4B77985C50D073CF86C79AF7A2FF4B596B89DAF992A20F1968A + AB37D377BF02FA9356EC3D72173323B7D89C85D931708100BA5DF3B0DF3E9104 + EE0C5D4F06743A5EABEE72F31F0FF6FCB033B1446BE9B89112EC29B8FC0F70EF + E1E38CBF09CFCD39D5F7CD1DAEE4B9449C1A03701C9751FCE39D5D4A2E6522D0 + 866E17FF22178095843EB532D9DFACA8420980CB0A40C54DA68A3EB56F6EB75F + F56C881D22006FB680B4E5A13B4DB536EB0C52958718AB755A403E2DEF80BF27 + 2521AB920B52530000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end> + Bitmap = {} + end + inherited SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001B24944415478DA9D52A16E1B41109D6366595810C90B0307069E59E0 + B29665A1E141B32E3474BF20070FAE1462B8259555D22D88643889A5C8F04C1A + 57AAB4797B4E9C334875CA48A3B9B9BB79F366DE14D433EB6DA27D4BB427AAAD + 2F68809DFC641B9358338518C94F3F02509BA4B5A6B802C02C0C03E8D36EE1AC + 15859520C157BC6F1163138BF70132ED0B7E01688F9E2B73942500FCFF00403B + 773E1410E90B4512A4EB9C41338BB894F701FA495995093BA4185054BF75559F + 9432A5719AB555238C18420D772DEC1460CA495D12893FA55D5E950E637E554A + 75B9ACC190DA6FBEF1D509005B4EAFCBEBD3365F8CA0F398993B85ECD462D161 + E7664E0D920A85892F995040B215922814D771B7582C5421F32AE59FDAA3946D + 27611773F72614D84137020A288FE1E68EC068823C7400E3BCB96DAE82FEE8B0 + CB113204B8591DF65496B66656D7F9390AA3819AC4A509459CD924C11FB8BE1C + D39111AC122AF8CA630AFD8B21B13563728BDF50427634223368076E2E3871DC + 47BECA100F4AEC3508C7FB41001500F2EC4A9D51F0DFBBE2AC94ACC330809BDB + BBE6E70FFAFCE7E92F6D1E1E69B3FD87156D9EB43E37CFDA01027CC229770400 + 00000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000018E4944415478DA + 6364C002966C3EF19F010F88F1B56084B119CF4E6443516C9CFF8B116440B48F + 398AA6BFFFFE31FCF9F38F61CDAEB30CBD5316329CDF399D116E8051DE4FB0A2 + 7393D8190E9FFFC520127C8201D90098E6DF7FFE326CDC778141469483A1B07E + 26D810B801FF7F7F6498942600D7943FFF3F866610BDF5D025B00B50BC6098F9 + 8AE1CFD7070C971799A1385B3FE73B8AE6DF7F41F45F8603A76F81E5BB27CD87 + 18A01B778AE1EFB7070CD7D68431A07B2779EA0F14CD20F69FBFFF184E5CBA87 + 30402B6415C3DFAFF7196E6E2F67C0E69DA8BECF289A7FFDFECB70EEFA438401 + EA9E9D0CEF2F7530BC7AFA9E01977744435FC03583BC74F9F613840120A78280 + AD211B033EEF78D4BD046BFE0D34E4C683E71003906D21C63B76A58F197E010D + B9F7E4157603B07907E42290A173DA0A192C0A1F805DF0F8E55BEC0660F30E48 + 33C8D0B55B5E3218E7DC0587C5F337EF310DC0E59D3F5F6E317CBEB70E6C8058 + E829B81A8206C0BC03032003163ECF84F3FF337EC76F00CC3BC8A06001AA1EC6 + FFFFF1E65C820000241257B48E5A5E7D0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001774944415478DA + 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F + 192CBCB3192EEE99856A80C35E4B14C5079C8F836964F1ED368718662EDFC530 + 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB0815586BB18966D3A84 + DB0098B341E01F50EECF9F7F709B034F3B312CD3DDC1B06ADB11FC06C05CB2CB + EE0883DB211BB8CD61E7DD18166A6E6558BFEB387E03D06DFEFDE70F981F75D9 + 8361AEEA2686CDFB4EE136609FD33106A77D56605BD79BEE033B1B044036C75F + F76698AEB88161E7A133B80D00391BDDE69FBFFE30FC028AA5DFF567E8975CCD + 70F0D4454C0372623D195C0E58A384F862ED6D0CB157BDC0EC2972EB18721E05 + 317489AE643876EE32A601E9916E605BFEFCFE07B639E2A23BC37CF52D60B1DF + BF21B8F0792843ABE03286D397AE611A9018EA0CD70CF202CC6674D0C0BB98E1 + C2B59B9806C40638C23583FC8D6CF36F688C80F0BF7FFF192EDDB8856940848F + 2DC38A2D8789CE89180680044805200300115980F04CC063740000000049454E + 44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000001744944415478DA63FCFFFF3FC394 + C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F19ACFDF319CEED + 98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC5BBA09D3007CE0 + D7EFBF609B4178C98683D80D40770136B0AED69461E59623B80D80391B04FE01 + E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D760CCEE587E036 + 07359F66585A6AC0B069CF49FC06C06CFE7CFB30C3CBC5B1F87CE48261C0C15E + 0706FBE20360D999EC710CCA0D350CECECE9183A7FFE9CC9302FB18501C30090 + B3617E7ED6A6C6A0D5FE18AC180E7EFC00E2EF0CB3771930306F4F45189011E5 + C6E0587A10C516900B500C0069FEF00E62C02927540392C39CC1B6C2423DA4F5 + 0CAA0130CD60037E32CCBE15846A405C90034A9445769E4718F0712242F3870F + 1017BC4A413520CA0FE177B841338C20063CAC47688679E15719AA01A15ED60C + ABB71D450903A76BA9E05898BD4A1E6B1CA218004A18E8409BF70D8315EB719C + 89C05E9EC10500D1295EA9BD5461080000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001684944415478DA + 63FCFFFF3FC394C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F + 19ACFDF319CEED98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC + 5BBA09D3007CE0D7EFBF609B4178C98683D80D40770136B0AED69461E59623B8 + 0D80391B04FE01E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D + 760CCEE587E03607359F66585A6AC0B069CF49FC06A0DB0CC2207E58FB598685 + 85BA0CDB0E9CC16DC0C15E0706FBE203605B37375A809D0D02209BA3BB2F30CC + C9D566D87DE41C6E0340CE46B7F9E7AF3F6076D2C42B0C53D2D4180E9FBE8C69 + 4046941B8363E94194105F5E6EC810D9791ECC9E99A5C9903EED3A437F920AC3 + 89F357310D480E7386DB08A2435ACF302C2ED687B8049A067266DD62E88A5364 + 387BF906A60171410E280107B3191DB446C9315CBA7E1BD380283F3B147F23DB + FC1BC9E07FFFFE335CB97907D380502F6B86D5DB8E129D13310C0009900A4006 + 00004B6D80F047EC10D30000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F330000012D4944415478DA63FCFFFF3F0325 + 80916203966D3945B60991DEA68C6003B42CC41852B26F6355F4E7E77F86DFDF + FE31FCFEFC97E1FBFBDF60F68E73460C89D19D0CE7764C4318000230434E2E77 + C63048416B135C3308A018D0B7F8235C214CB30CFF5E880B3E3F6278F12F11CC + 16175BC3F0FFF76F06865F7F18E4EC4E103600A41904600688092E076B66001A + 22E77C16BB01BFBEFC6338BFD915C30BC89A19FFFC619075BF881A0620FF8334 + FFFAF297E1D75760A07DF9C3B032A610670C641FF64018D03D793E8682A9B63B + 184C53EA197E89A933309DE86638BFEF3CC3DC7DCF19A6B478C1D973F67E6764 + C465C3B116C5D003AFD556DDBD7C10AB7CB293649865F5BDD5F80CF84FB10B80 + D42A9042AABA00A4D1AAE6FE6A901A503E22D90573F7FD80EB011B40696E0400 + A0BEE1E16734A0290000000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end> + Bitmap = {} + end +end diff --git a/Source/Modulos/Contactos/Views/uEditorAgente.pas b/Source/Modulos/Contactos/Views/uEditorAgente.pas new file mode 100644 index 0000000..5059fa2 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorAgente.pas @@ -0,0 +1,150 @@ +unit uEditorAgente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + uEditorContacto, ImgList, PngImageList, StdActns, ActnList, TBX, + TB2Item, TB2Dock, TB2Toolbar, ComCtrls, JvExControls, JvComponent, + JvNavigationPane, uViewAgente, uBizContactos, DB, uDADataTable, + JvFormAutoSize, uDAScriptingProvider, uDACDSDataTable, uCustomView, + uViewBase, JvAppStorage, JvAppRegistryStorage, + JvFormPlacement, ExtCtrls, pngimage, JvComponentBase, uViewContacto, StdCtrls, + + uIEditorAgente, TBXStatusBars, JvExComCtrls, JvStatusBar, uViewEmpleado, + uViewDireccionesEntrega, uViewDetallesGenerico, + uViewContactoDatosBancarios, dxLayoutLookAndFeels, uViewAgenteComisiones, + uDAInterfaces, uViewContactoListaDatosBancarios, + uViewPersonalContacto, cxControls, cxContainer, cxEdit, cxLabel, + dxGDIPlusClasses; + +type + TfEditorAgente = class(TfEditorContacto, IEditorAgente) + actGruposCliente: TAction; + TBXItem7: TTBXItem; + pagDescuentos: TTabSheet; + TBXSubmenuItem2: TTBXSubmenuItem; + TBXSubmenuItem3: TTBXSubmenuItem; + TBXItem33: TTBXItem; + TBXSeparatorItem6: TTBXSeparatorItem; + actDocumentosPresupuestos: TAction; + actDocumentosAlbaranes: TAction; + actDocumentosFacturas: TAction; + TBXSubmenuItem8: TTBXSubmenuItem; + TBXItem34: TTBXItem; + TBXItem35: TTBXItem; + TBXItem36: TTBXItem; + TBXItem37: TTBXItem; + TBXItem38: TTBXItem; + TBXItem39: TTBXItem; + TBXItem40: TTBXItem; + actDocumentosRecibos: TAction; + TBXItem41: TTBXItem; + frViewAgente1: TfrViewAgente; + frViewAgenteComisiones1: TfrViewAgenteComisiones; + procedure FormShow(Sender: TObject); + procedure actGruposClienteExecute(Sender: TObject); + procedure actDocumentosFacturasExecute(Sender: TObject); + procedure actDocumentosPresupuestosExecute(Sender: TObject); + procedure actDocumentosAlbaranesExecute(Sender: TObject); + procedure actDocumentosRecibosExecute(Sender: TObject); + protected + procedure EliminarInterno; override; + procedure SetContacto(const Value: IBizContacto); override; + public + constructor Create(AOwner: TComponent); override; + procedure PonerTitulos(const ATitulo: string = ''); override; + end; + +implementation + +uses + uEditorItem, uEditorBase, uDataModuleUsuarios, uEditorDBItem, + uGruposClienteController, uBizGruposCliente, uEditorDBBase, uDialogUtils, + uClientesController, uAgentesController; + + +{$R *.dfm} + +procedure TfEditorAgente.actDocumentosAlbaranesExecute(Sender: TObject); +begin + inherited; + (FController as IClientesController).VerAlbaranesDeCliente(IBizCliente(FContacto)); +end; + +procedure TfEditorAgente.actDocumentosFacturasExecute(Sender: TObject); +begin + inherited; + (FController as IClientesController).VerFacturasDeCliente(IBizCliente(FContacto)); +end; + +procedure TfEditorAgente.actDocumentosPresupuestosExecute(Sender: TObject); +begin + inherited; + (FController as IClientesController).VerPresupuestosDeCliente(IBizCliente(FContacto)); +end; + +procedure TfEditorAgente.actDocumentosRecibosExecute(Sender: TObject); +begin + inherited; + (FController as IClientesController).VerRecibosDeCliente(IBizCliente(FContacto)); +end; + +procedure TfEditorAgente.actGruposClienteExecute(Sender: TObject); +var + AGruposController : IGruposClienteController; + AGrupos : IBizGrupoCliente; +begin + AGruposController := TGruposClienteController.Create; + try + AGrupos := (AGruposController.BuscarTodos as IBizGrupoCliente); + AGruposController.VerTodos(AGrupos); + finally + AGrupos := NIL; + AGruposController := NIL; + end; +end; + +constructor TfEditorAgente.Create(AOwner: TComponent); +begin + inherited; + ViewContacto := frViewAgente1; +end; + +procedure TfEditorAgente.EliminarInterno; +begin + if (ShowConfirmMessage('Desea borrar este agente?', '') = IDYES) then + inherited; +end; + +procedure TfEditorAgente.FormShow(Sender: TObject); +begin + inherited; + pgPaginas.ActivePageIndex := 0; +end; + +procedure TfEditorAgente.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + if Assigned(Contacto) then + begin + if Contacto.EsNuevo then + FTitulo := 'Nuevo agente' + else + FTitulo := 'Agente'; + end; + + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorAgente.SetContacto(const Value: IBizContacto); +begin + inherited; + if Assigned(Contacto) then + frViewAgenteComisiones1.dsDetalles.DataTable := (Contacto as IBizAgente).Comisiones.DataTable + else + frViewAgenteComisiones1.dsDetalles.DataTable := NIL; +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uEditorAgentes.dcu b/Source/Modulos/Contactos/Views/uEditorAgentes.dcu new file mode 100644 index 0000000..ced9aa9 Binary files /dev/null and b/Source/Modulos/Contactos/Views/uEditorAgentes.dcu differ diff --git a/Source/Modulos/Contactos/Views/uEditorAgentes.dfm b/Source/Modulos/Contactos/Views/uEditorAgentes.dfm new file mode 100644 index 0000000..25db679 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorAgentes.dfm @@ -0,0 +1,2502 @@ +inherited fEditorAgentes: TfEditorAgentes + Caption = 'fEditorAgentes' + ClientWidth = 786 + ExplicitWidth = 794 + ExplicitHeight = 538 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 786 + Caption = 'Lista de agentes' + ExplicitWidth = 786 + inherited Image1: TImage + Left = 759 + Picture.Data = { + 0B546478504E47496D61676589504E470D0A1A0A0000000D4948445200000018 + 000000180806000000E0773DF8000000017352474200AECE1CE9000000046741 + 4D410000B18F0BFC6105000000206348524D00007A26000080840000FA000000 + 80E8000075300000EA6000003A98000017709CBA513C00000009704859730000 + 17100000171001186111DB0000040F49444154484BD595594C9C651486F5C22B + 4DBC6ABC7349AD56AD089434696AD548DDD2DA86DA54206026D029AB8896A626 + 55AA8D315A2D8B8DD6428B550B52455A96863DB4D0B253F6656080D998056686 + 7D29DBE3F70D8B343FDCC9857F7226F96FDEF73DCF3973FE07810736F491061B + 591B2AEEA2237FB24ADBD888BACF40BCB89E858505E6E717989D9B6766768E7B + 33734C4DCF303135C3D8F83423E3530C8D4CE2189E60D03986D53E8A796004A3 + 7518BD79883E93831EC3201E6F8549B97F3B5814878961070DA967C80AD9495A + C08B5C50BF4AE91FF138066D8C8C2D890F4D30E018BF4FDC20C5FB9D680D76BA + 75EB18DC9B9EA0FED2696A43B65314F83CA93E8F73EEED4DC4EE7E989C9F6270 + 389C2BC96D8E318E5D9E5AB33A7B6DCA0E2496B6B25C0A546E14FA6DE5AACF53 + 5C38F824978EBAF1EDFEC78879ED5174EDD52E2C361796514CB6610C6627BA7E + 81C5B898BCB36F80F61EABD2604E302F4AFA9274DF2DFCE6FF2CA9615E14C71D + 4097ADA631E53D4EEFDF446DCE79AC03435804739360BE5E07ADDD16A5C18C30 + C83E1B4D66ECEB34A70761BC1189B3240A535630B69C20AEC6B853F6F78F98AD + CEA5E443E84C4E7A2573BD4C6EA3432497E2CD1AB3D2406E4BEA172A0ABEDEC3 + 68593483F9A118AEA9D0A6FBA3FBD39F8BEACD1467FC8CC9E21458A4B883DE15 + 2CABC5FB69EC30290DA6A6674938EA4D42E01368FEF2C5785D45779A1FBDE9BE + B4FEB297CFDE7984EB17BF47DF6F77315F4EAE11CC572797E277DB8D4A03B9E7 + 099FAA08DBBD89CCCFF708F1C3745CF6A129651FC9916E04B93F44C6B524B1E7 + 8322B9C38545B38C45BB88A56949BCAE750D83F1C9692A8B4A49DE1540C69B87 + B871CA9BFC8497F9FDC35D24EDD84BB2D7214AEACAC5B62C8B0F1010F3EB9A55 + D3625076302AFEA179618954EF38C14D8F700A8E1DA422ED5D4A02FCA972FF98 + 4ACFE3A4449DA44ED345974E6011BBDE2606DAD265A6B1B35F603151D766A4A6 + 594F75934E69303C3A49EE736ACAB74752B12D8A3B216A5ACE1DA1755F34359E + 1F71CB3382BCA7D5FC107FC6C5BC4D6B5DB783CAC63EA581BC2F995B8329740F + E5B64724E5AF8453F14638353BA3846904052F8550F04C28DF78AB84B8602E92 + 372D25AF17CC6B9B0D5435E991E215777B950676715FAE6CFE80C26D6194B947 + 522552D7784653E525D2BB4790FF4228995B8E70EA40042D1A8B0BCB7A33B85D + BF86813C5EB957B2391FF515898127487CFF13E20F8BF28BE16CC071BE0B3E49 + 5C6C1C79C5952EF106B131F58279AD18A8645ED9A8E34E431F52BCACAE47D981 + EBECDAE4D91D1267D729D6D18E566F770D541E2F89450E54626910035D116F5E + 16EFA55C8AD7F670AB56AB3470895B966EBA5845797697C5DB85786B9745889B + 572597DB2299EBA858955C1ADCAC59C3407E20FEEB5AF9E0FCAF3FFAFF00D0BE + 8BB7B4B679610000000049454E44AE426082} + ExplicitLeft = 759 + end + end + inherited TBXDock: TTBXDock + Width = 786 + ExplicitWidth = 786 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 632 + inherited TBXItem2: TTBXItem + ImageIndex = 22 + Images = SmallImages + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 786 + end + end + inherited StatusBar: TJvStatusBar + Width = 786 + ExplicitWidth = 786 + end + inline frViewAgentes1: TfrViewAgentes [3] + Left = 0 + Top = 102 + Width = 786 + Height = 383 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 102 + ExplicitWidth = 786 + ExplicitHeight = 383 + inherited cxGrid: TcxGrid + Width = 786 + Height = 255 + ExplicitWidth = 786 + ExplicitHeight = 255 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = '0 agentes' + Kind = skCount + FieldName = 'ID' + Column = frViewAgentes1.cxGridViewNIF_CIF + end> + inherited cxGridViewTELEFONO_1: TcxGridDBColumn + Visible = True + end + inherited cxGridViewTELEFONO_2: TcxGridDBColumn + Visible = False + end + inherited cxGridViewEMAIL_1: TcxGridDBColumn + Visible = True + end + inherited cxGridViewFECHA_BAJA: TcxGridDBColumn + Visible = False + VisibleForCustomization = False + end + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 786 + ExplicitWidth = 786 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 786 + inherited dxLayoutControl1: TdxLayoutControl + Width = 786 + ExplicitWidth = 786 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 689 + Width = 689 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 290 + Width = 290 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 324 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 324 + ExplicitWidth = 382 + Width = 382 + end + inherited eLista: TcxComboBox + Left = 668 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 668 + ExplicitWidth = 140 + Width = 140 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 786 + ExplicitWidth = 786 + inherited tbxBotones: TTBXToolbar + Width = 776 + ExplicitWidth = 776 + end + end + end + inherited PngImageList: TPngImageList + Left = 392 + Top = 64 + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 357 + ExplicitTop = 357 + ExplicitWidth = 786 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 786 + ExplicitWidth = 786 + inherited TBXToolbar1: TTBXToolbar + Width = 776 + ExplicitWidth = 776 + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39211.791626689820000000 + BuiltInReportLink = True + end + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewAgentes1.cxGridView + HitTypes = [gvhtCell] + Index = 0 + end> + end + end + inherited EditorActionList: TActionList [4] + Left = 72 + Top = 160 + inherited actPrevisualizar: TAction + Enabled = True + Visible = True + end + inherited actImprimir: TAction + Enabled = True + Visible = True + end + end + inherited SmallImages: TPngImageList [5] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000023A4944415478DA + A593DB4B54511487BF39733C3A9A9930A99486541086169598264184522F3D84 + 34200541FF400FD24B17886E6405911111111614158414955866669A1682E565 + 2A310BAF9490CC4C303367CED9E7B4CF0C34F9E043B95FD67ED8EB5BBFF55B7B + B96CDB6621C7D5D436B820421CB07B7B31C1994986EF9E67EAFD6B66748BBCF2 + 6ACA7D07513D5E8430318585B06C4CD38982C58BD2A8F6D5250015856E461E5C + 461DEA623C1060C634980E8428F31DA072DF4999A050FF449B53B95069A3F1F6 + A304C03BD9CC647323564C472CC964457101A1C02CC35F83D41CB9436A762186 + 252B4B15A62930E5BDB5B32F09D0061A098D77B366DD4ABCD919A4692E8C6898 + 573DA394D49C25ABA0848B2D9EF915443A2EE00EFBD9B9AB8C48304A241CC632 + 755E747DA3747F03D9F94508D9BB21EC78741474BCFB90048C3E3CCAD4A7767C + 7B2A599695251FC5181E9BE0D99B097C87EFB1347FAD4C962D1889644B9AD9D9 + DBFF570BD3FD0CDCBCCF6AAF4E6EA5C1AF90CE582B0473F2D871A29E742D33E1 + 813301D38E4FA1BB6F2809C878DA85DA3E82AD06A0761AD70F0DED713ED1F454 + A60E6D60D3C62A4E5F6999E3C1E6F5394940FAB11BA4842268AA0B75AB8EE767 + 1A51BF228D140CE5EA6CB9762A2E3D3E05A705E945EFC0C72440ADBB8AC71064 + A6A8286E05372E624260183018FA4E45CB25CE5D7F3EBF82E8DB1E66FD5F2010 + 469146D96E09502096E2C62A5A4ED5DEDA7875E7273AD1D99F3EFFE724605BE9 + 2A6E35BDFCE73DF803387EA6E1FF9769A1EBFC1BC1A15528DD8924DF00000000 + 49454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000034D4944415478DA + DD957D6855651CC73FF7E56CF7DEE962EA340397D96C0B97291B8AD95227EA08 + 6706460E476AA60B06C3B7966FC3AD482457D01441A13F842141232128288656 + B4ECC58992F8C760E2CB9DB9DBBABBD773CFDD793F3DF7EA86977B74FDE1FEE9 + 811FCF73CEF39CEFE7FB3C3F7ECFF1388EC37836CFFF0370E6EC9571A1BC5E55 + E619058887D10953FB87FE9E4F8986AF61990E534A5633B3BC2E4BC0B26C114E + BA376C3136EDF4D8B42D56ADDFCDE5AE93EE80F06FCDE8FDBDC4E2AA880449CB + 4771E5664A17D4FE27F154FFEA862677C08DEE26D4F00D2C3B075956482492C8 + 8A829C8CB274E33166942E1B156FEA305C8F666775929AB7F6640394C805FA7E + 6C23191B16C9F18BA50E92CF836EE8440623E43F534EE5FA638F749E0EDB61ED + A6BDD980C1BE4E6E9DEFC0D67D8482218239121E8490AAA12493F446C2BCF6DE + EF6911DDB038D8E99EDC862A9975EFEC7707C4FEEC244008C92F097726866188 + D0D1348DDE98CDCAFA2F31CD94E3945BEBBEFB7BCEEDD4CE847B438C6BEB9BB3 + 01F1F0AF442F9DC63B1CC3EB15DEC587E67D88ACA8DC9DFC0A15D58D638AA78E + ADAEE1A07B926F751F47BBD92D8EDF2235770FA0138EFB99B5620F85452F8C29 + 9E7AB7B1B1D51D702EDC43E287369E5455249164C334E8570C060BCAA858D0C0 + 53D3A78E299E9ADBB2FDC36C40D7A53B1C387599EBB13BAC29FB8275D38AB97D + 37CA2772057FFD022BE7CCA069CB8B4CCE9B9216DADBF6B56B92B76FAA62DBAE + 8F3201739F2FA2F5F38B745D88A048010AF306D85053C2CDDB71BE3D9FC0D182 + F8127FB364DE04EAEBCA78FA89E919CE0D33F3D81ADE3F9C09D0FD797C70F467 + E2092FDAC449E83E93C2608C612B80AC4E2464EAF8E2830CE903AC7969162DDB + 96D17AF41BD71DBC5B5B49E3BE8F33017D4370A8FD27F27373D14205E8B91344 + 21A9A20EFCE488AB30479591E428036A94E78AF339DDF206E648613DE07CA4D0 + 761C389209187682347FF63D9AA8626FA00033370F4792402CF6EA1A929E4051 + 8650BC1A358B4BD9F7F6620E9FF8CE75075BDF7C391B50BDA8848B57FB69FFAA + 873FAE5C4B5F038EED495F171EC716209B40C124F66F9EC3FCA2E2873A1F6959 + 80E50B673FF45E49BFB3467A7B4C7157C0D2F2671F9BB82BA0E550FB63FFA38D + 02C6B38D3BE05FAF5B45FEC8107D9F0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [7] + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage + Left = 440 + end + inherited dsDataTable: TDADataSource [9] + end + inherited StatusBarImages: TPngImageList [10] + end + object JsPrevisualizarDialog: TJSDialog + Content.Strings = ( + 'Elija una opci'#243'n:') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Previsualizar...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Previsualizar la ficha/s de emplado seleccionada/s' + Value = 100 + Default = True + end + item + Caption = 'Previsualizar la lista de agentes actual' + Value = 200 + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 296 + Top = 144 + end + object JsImprimirDialog: TJSDialog + Content.Strings = ( + 'Elija una opci'#243'n:') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Imprimir...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Imprimir la ficha/s de agente seleccionada/s' + Value = 100 + Default = True + end + item + Caption = 'Imprimir la lista de agentes actual' + Value = 200 + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 328 + Top = 144 + end + object JsListaContactosNoEliminados: TJSDialog + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = + 'Los siguientes agentes no han podido ser eliminados, porque tien' + + 'en documentos asociados' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + ButtonBar.Buttons = [cbOK] + ButtonBar.Cancel = cbOK + ButtonBar.UseCancel = False + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 184 + Top = 112 + end +end diff --git a/Source/Modulos/Contactos/Views/uEditorAgentes.pas b/Source/Modulos/Contactos/Views/uEditorAgentes.pas new file mode 100644 index 0000000..f8dbacd --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorAgentes.pas @@ -0,0 +1,102 @@ +unit uEditorAgentes; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + uEditorContactos, Menus, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, + StdActns, ActnList, uCustomView, uViewBase, uViewBarraSeleccion, ComCtrls, + TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, + JvExControls, JvComponent, JvNavigationPane, uViewGridBase, uViewGrid, + uViewContactos, uViewAgentes, uIEditorAgentes, pngimage, TBXStatusBars, + JvExComCtrls, JvStatusBar, JSDialog, uContactosController, uDAInterfaces, + dxGDIPlusClasses; + +type + TfEditorAgentes = class(TfEditorContactos, IEditorAgentes) + frViewAgentes1: TfrViewAgentes; + JsPrevisualizarDialog: TJSDialog; + JsImprimirDialog: TJSDialog; + JsListaContactosNoEliminados: TJSDialog; + + protected + procedure EliminarInterno; override; + + public + constructor Create(AOwner: TComponent); override; + procedure PonerTitulos(const ATitulo: string = ''); override; + end; + +implementation + +uses + uGridStatusUtils, uEditorGridBase, uDataModuleUsuarios, uDialogUtils, uBizContactos, + uAgentesController, uDBSelectionListUtils, uFactuGES_App; + +{$R *.dfm} + +constructor TfEditorAgentes.Create(AOwner: TComponent); +begin + inherited; + ViewGrid := frViewAgentes1; +end; + +procedure TfEditorAgentes.EliminarInterno; +var + AContactos: IBizContacto; + AllItems: Boolean; +begin + AContactos := Nil; + AllItems := False; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + if AllItems then + begin + if (Application.MessageBox('Desea borrar los agentes seleccionados?', 'Atencin', MB_YESNO) = IDYES) then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Contactos as ISeleccionable).SelectedRecords); + AContactos := (Controller as IAgentesController).ExtraerSeleccionados(Contactos) as IBizContacto; + end + end + else begin + if (Application.MessageBox('Desea borrar el agente seleccionado?', 'Atencin', MB_YESNO) = IDYES) then + AContactos := Contactos; + end; + + if Assigned(AContactos) then + begin + (FController as IAgentesController).Eliminar(AContactos, AllItems); + if AllItems then + begin + if (AContactos.DataTable.RecordCount > 0) then + begin + with AContactos.DataTable do + begin + First; + while not EOF do + begin + JsListaContactosNoEliminados.Content.Add('Agente: ' + AContactos.NOMBRE); + Next; + end; + end; + JsListaContactosNoEliminados.Execute; + end; + actRefrescar.Execute; + end; + end; + + ViewGrid.GotoFirst; +end; + +procedure TfEditorAgentes.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := 'Lista de agentes - ' + AppFactuGES.EmpresaActiva.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uEditorCliente.dcu b/Source/Modulos/Contactos/Views/uEditorCliente.dcu new file mode 100644 index 0000000..eed49e8 Binary files /dev/null and b/Source/Modulos/Contactos/Views/uEditorCliente.dcu differ diff --git a/Source/Modulos/Contactos/Views/uEditorCliente.dfm b/Source/Modulos/Contactos/Views/uEditorCliente.dfm new file mode 100644 index 0000000..8fe20ef --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorCliente.dfm @@ -0,0 +1,2628 @@ +inherited fEditorCliente: TfEditorCliente + Left = 387 + Top = 297 + Caption = 'Ficha de cliente' + ClientHeight = 715 + ClientWidth = 870 + ExplicitWidth = 878 + ExplicitHeight = 749 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 870 + Caption = 'Ficha de cliente' + ExplicitWidth = 870 + inherited Image1: TImage + Left = 843 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB51930000033B4944415478DADD957F6856 + 5518C73F77EF0FDFBDB9B94DC1214D5BB2FD61A3B0399236D6642496A32874A1 + 329D2D322C7F24686C0D539318FE964419E29F6AFF5810D982821CBA0D572928 + 46A4AD36B7D770BEEFF6FEBA7BEF3DF7DEB773A72EDFDE3BD71FEE1F0F3CDC73 + 78CEF97E9EE73CE79CAB24934926B3298F07E0EB73BF4E0AE5B5AA79CA18400E + C61C86162270F93043033D986692E9454B99337F459A80695AA37EFB6B58D6BD + F1DDFE2BAB3EE2D277479D01033FED440FFC4E389C60381263C47431B7BC9EE2 + 05B5FF4BDCFED6AC6E7406F47535A1057AE5242FD1689C585C951627AA06A9AC + FB9C278B5F1A136F3A2D1CB766D3E2115E5FFB713A203E78893F2F1C401D1A91 + C571CBA9493C2E055DE80C066F93F55429E5CB0F3D34F251B392BCD9D09C0E08 + F67C457FF7492CCD853FD38FCFEB41C142681AAAAA72FD763F351F768E8A08C3 + 64D797CEC57DAF2A46EDBAEDCE80E16B67F0E1C7E3F6482103210442D7D125E4 + 7AD8A2BAE1F4B8D15B7666327A43F657AEDF910E880C7413BAF2051989613214 + 19BB5C681806868444E30922D32B295DBC7E42717B5CB761977391FBBB5AD16E + 76CAED37B17DA66167A13310715358BD8D1905CF4C286E5BFDE6DDCE806B7D17 + E8ED68656622814716591882802AB893534259453D3373674F286EFBDED9F259 + 3AE07C7F072DDDFBE9BBF51BCBF4222AF29F261009D13674836EF30ED5854B78 + 7FE106F29E98312AD47CF01BC7226F5C5DC5BAAD2DA980E7E64F655FE711DA03 + 5DA8DE30B9A129AC29A9E5AFE19B7C1B6C079F0F821994E79552B7E06D0AB2E7 + A4446E9FAA0733FBA0716F2A80593DECF9F118514610D3E2E8468CBC58169A57 + 10F70B7C46164AC84B70B097A5C5AFB2B5E2133E3DDAE698C1BB6F95B3A9797F + 2A2090DDC1DE1F5AC9F6E5626427107E699ABC702E175E251377DC872BECE3EF + 500F453905B4BE71EAA1176DCBF603A90033FF0F769FDD879600F7340F56A620 + E936E569525074372ED5432C1C269618A4A6A4868D658DEC39FEBD63060DCB5F + 4C07BCFC4211576F5DE5F8C513FC7CE3171991B0B5EDD7027999A52964E678D9 + 5CD6C4B3F9A5E3467EBFA5011695CD1D77D1442FE77FC51D0195CF173E327147 + C08E96238FFA87F62F6032DBA403FE011B7940FEE55D65A30000000049454E44 + AE426082} + ExplicitLeft = 565 + end + inherited lblDesbloquear: TcxLabel + Left = 745 + ExplicitLeft = 745 + AnchorX = 790 + AnchorY = 14 + end + end + inherited TBXDock: TTBXDock + Width = 870 + ExplicitWidth = 870 + inherited tbxMain: TTBXToolbar + Left = 3 + DockPos = 3 + ExplicitLeft = 3 + ExplicitWidth = 606 + object TBXItem7: TTBXItem [7] + Action = actGruposCliente + DisplayMode = nbdmImageAndText + end + object TBXSubmenuItem8: TTBXSubmenuItem [8] + Caption = 'Documentos relacionados' + DisplayMode = nbdmImageAndText + DropdownCombo = True + ImageIndex = 22 + object TBXItem36: TTBXItem + Action = actDocumentosPresupuestos + end + object TBXItem35: TTBXItem + Action = actDocumentosAlbaranes + end + object TBXItem34: TTBXItem + Action = actDocumentosFacturas + end + object TBXItem40: TTBXItem + Action = actDocumentosRecibos + end + end + inherited TBXSeparatorItem2: TTBXSeparatorItem [9] + end + inherited TBXItem24: TTBXItem [10] + end + inherited TBXItem23: TTBXItem [11] + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 870 + object TBXSubmenuItem2: TTBXSubmenuItem [4] + Caption = 'A&cciones' + object TBXItem33: TTBXItem + Action = actGruposCliente + end + object TBXSeparatorItem6: TTBXSeparatorItem + end + object TBXSubmenuItem3: TTBXSubmenuItem + Caption = 'Documentos relacionados' + ImageIndex = 22 + object TBXItem39: TTBXItem + Action = actDocumentosPresupuestos + end + object TBXItem38: TTBXItem + Action = actDocumentosAlbaranes + end + object TBXItem37: TTBXItem + Action = actDocumentosFacturas + end + object TBXItem41: TTBXItem + Action = actDocumentosRecibos + end + end + end + end + end + inherited pgPaginas: TPageControl + Width = 864 + Height = 614 + ActivePage = pagDescuentos + ExplicitWidth = 864 + ExplicitHeight = 614 + inherited pagGeneral: TTabSheet + ExplicitWidth = 856 + ExplicitHeight = 586 + inline frViewCliente1: TfrViewCliente + Left = 0 + Top = 0 + Width = 856 + Height = 586 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 856 + ExplicitHeight = 586 + inherited dxLayoutControlContacto: TdxLayoutControl + Width = 856 + Height = 586 + LookAndFeel = dxLayoutOfficeLookAndFeel + ExplicitWidth = 856 + ExplicitHeight = 586 + inherited PngSpeedButton1: TPngSpeedButton + Left = 794 + Top = 218 + ExplicitLeft = 794 + ExplicitTop = 218 + end + inherited PngSpeedButton2: TPngSpeedButton + Left = 794 + Top = 190 + ExplicitLeft = 794 + ExplicitTop = 190 + end + inherited PngSpeedButton3: TPngSpeedButton + Left = 794 + Top = 162 + ExplicitLeft = 794 + ExplicitTop = 162 + end + inherited Label1: TLabel + Left = 426 + Top = 418 + Width = 269 + ExplicitLeft = 426 + ExplicitTop = 418 + ExplicitWidth = 269 + end + inherited Label2: TLabel + Left = 426 + Top = 321 + Width = 271 + ExplicitLeft = 426 + ExplicitTop = 321 + ExplicitWidth = 271 + end + inherited PngSpeedButton4: TPngSpeedButton + Left = 794 + Top = 366 + ExplicitLeft = 794 + ExplicitTop = 366 + end + inherited eCalle: TcxDBTextEdit + Top = 382 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 382 + ExplicitWidth = 246 + Width = 246 + end + inherited cbProvincia: TcxDBComboBox + Top = 409 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 409 + ExplicitWidth = 145 + Width = 145 + end + inherited eNombreComercial: TcxDBTextEdit + Top = 84 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 84 + ExplicitWidth = 246 + Width = 246 + end + inherited cbClienteBloqueado: TcxDBCheckBox + Top = 304 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 304 + ExplicitWidth = 356 + Width = 356 + end + inherited cbGrupoCliente: TcxDBComboBox + Top = 138 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 138 + ExplicitWidth = 246 + Width = 246 + end + inherited eBloqueo: TcxDBTextEdit + Top = 331 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 331 + ExplicitWidth = 246 + Width = 246 + end + inherited eCodigoAsignado: TcxDBTextEdit + Top = 111 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 111 + ExplicitWidth = 246 + Width = 246 + end + inherited cbPoblacion: TcxDBComboBox + Top = 436 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 436 + ExplicitWidth = 246 + Width = 246 + end + inherited eCodigoPostal: TcxDBTextEdit + Left = 333 + Top = 409 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 333 + ExplicitTop = 409 + end + inherited cbFelicitacion: TcxDBCheckBox + Left = 426 + Top = 270 + ExplicitLeft = 426 + ExplicitTop = 270 + ExplicitWidth = 370 + Width = 370 + end + inherited cxDBCheckBox1: TcxDBCheckBox + Left = 426 + Top = 463 + ExplicitLeft = 426 + ExplicitTop = 463 + ExplicitWidth = 274 + Width = 274 + end + inherited cbRapel: TcxDBCheckBox + Top = 165 + ExplicitTop = 165 + ExplicitWidth = 308 + Width = 308 + end + inherited eMailAdministracion: TcxDBHyperLinkEdit + Left = 538 + Top = 366 + Properties.Prefix = 'mailto:' + ExplicitLeft = 538 + ExplicitTop = 366 + ExplicitWidth = 133 + Width = 133 + end + inherited eObservaciones: TcxDBMemo + Top = 514 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 514 + ExplicitWidth = 656 + ExplicitHeight = 87 + Height = 87 + Width = 656 + end + inherited eTlfParticular: TcxDBTextEdit + Left = 538 + Top = 57 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 538 + ExplicitTop = 57 + ExplicitWidth = 177 + Width = 177 + end + inherited eTlfTrabajo: TcxDBTextEdit + Left = 538 + Top = 30 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 538 + ExplicitTop = 30 + ExplicitWidth = 177 + Width = 177 + end + inherited eTlfMovil: TcxDBTextEdit + Left = 538 + Top = 84 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 538 + ExplicitTop = 84 + ExplicitWidth = 177 + Width = 177 + end + inherited eFax: TcxDBTextEdit + Left = 538 + Top = 111 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 538 + ExplicitTop = 111 + ExplicitWidth = 177 + Width = 177 + end + inherited eNombre: TcxDBTextEdit + Top = 57 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 57 + ExplicitWidth = 246 + Width = 246 + end + inherited eNIFCIF: TcxDBTextEdit + Left = 224 + Top = 30 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 224 + ExplicitTop = 30 + ExplicitWidth = 162 + Width = 162 + end + inherited eMailTrabajo: TcxDBHyperLinkEdit + Left = 538 + Top = 162 + Properties.Prefix = 'mailto:' + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 538 + ExplicitTop = 162 + ExplicitWidth = 148 + Width = 148 + end + inherited eMailParticular: TcxDBHyperLinkEdit + Left = 538 + Top = 190 + Properties.Prefix = 'mailto:' + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 538 + ExplicitTop = 190 + ExplicitWidth = 148 + Width = 148 + end + inherited ePaginaWeb: TcxDBHyperLinkEdit + Left = 538 + Top = 217 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 538 + ExplicitTop = 217 + ExplicitWidth = 148 + Width = 148 + end + inherited eReferencia: TcxDBTextEdit + Top = 30 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 30 + ExplicitWidth = 31 + Width = 31 + end + inherited ePersonaContacto: TcxDBTextEdit + Top = 463 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 463 + ExplicitWidth = 246 + Width = 246 + end + end + inherited dsContacto: TDADataSource + Left = 24 + end + end + end + inherited pagDatosBancarios: TTabSheet + ExplicitWidth = 856 + ExplicitHeight = 586 + inherited frViewListaDatosBancarios: TfrViewListaDatosBancarios + Width = 856 + Height = 586 + ExplicitWidth = 856 + ExplicitHeight = 586 + inherited cxGrid: TcxGrid + Width = 856 + Height = 561 + ExplicitWidth = 856 + ExplicitHeight = 561 + end + inherited ToolBar1: TToolBar + Width = 856 + ExplicitWidth = 856 + inherited ToolButton1: TToolButton + ExplicitWidth = 62 + end + inherited ToolButton4: TToolButton + ExplicitWidth = 74 + end + inherited ToolButton2: TToolButton + ExplicitWidth = 67 + end + inherited ToolButton7: TToolButton + ExplicitWidth = 117 + end + end + end + end + object pagDatosComerciales: TTabSheet [2] + Caption = 'Datos comerciales' + ImageIndex = 4 + inline frViewClienteDatosComerciales1: TfrViewClienteDatosComerciales + Left = 0 + Top = 0 + Width = 856 + Height = 193 + Align = alTop + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 856 + ExplicitHeight = 193 + inherited dxLayoutControl1: TdxLayoutControl + Width = 856 + LookAndFeel = dxLayoutOfficeLookAndFeel + ExplicitWidth = 856 + inherited Label1: TLabel + Left = 564 + Top = 30 + Width = 193 + ExplicitLeft = 564 + ExplicitTop = 30 + ExplicitWidth = 193 + end + inherited Bevel1: TBevel + Top = 138 + Width = 263 + ExplicitTop = 138 + ExplicitWidth = 263 + end + inherited eDiasVencimiento1: TcxDBSpinEdit + Left = 636 + Top = 62 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 636 + ExplicitTop = 62 + end + inherited cbRegimenIVA: TcxDBComboBox + Top = 30 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 30 + ExplicitWidth = 307 + Width = 307 + end + inherited cbRecargoEquivalencia: TcxDBCheckBox + Top = 111 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 111 + ExplicitWidth = 307 + Width = 307 + end + inherited cbFormaPago: TcxDBLookupComboBox + Top = 57 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 57 + ExplicitWidth = 169 + Width = 169 + end + inherited bFormasPago: TButton + Left = 404 + Top = 57 + ExplicitLeft = 404 + ExplicitTop = 57 + end + inherited eIVA: TcxDBLookupComboBox + Top = 84 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 84 + ExplicitWidth = 169 + Width = 169 + end + inherited bTiposIVA: TButton + Left = 404 + Top = 84 + ExplicitLeft = 404 + ExplicitTop = 84 + end + inherited eDescuento: TcxDBSpinEdit + Top = 149 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 149 + end + inherited eDiasVencimiento2: TcxDBSpinEdit + Left = 636 + Top = 89 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 636 + ExplicitTop = 89 + end + inherited eDiasVencimiento3: TcxDBSpinEdit + Left = 636 + Top = 116 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 636 + ExplicitTop = 116 + end + inherited eAgente: TcxDBLookupComboBox + Top = 176 + ExplicitTop = 176 + ExplicitWidth = 216 + Width = 216 + end + end + end + end + object pagDirecciones: TTabSheet [3] + Caption = 'Direcciones' + ImageIndex = 1 + inline frViewDireccionesEntrega1: TfrViewDireccionesEntrega + Left = 0 + Top = 0 + Width = 856 + Height = 586 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 856 + ExplicitHeight = 586 + inherited cxGrid: TcxGrid + Width = 856 + Height = 561 + ExplicitWidth = 856 + ExplicitHeight = 561 + inherited cxGridView: TcxGridDBTableView + inherited cxGridViewID: TcxGridDBColumn + SortIndex = 0 + SortOrder = soAscending + end + end + end + inherited ToolBar1: TToolBar + Width = 856 + ExplicitWidth = 856 + end + end + end + object pagDescuentos: TTabSheet [4] + Caption = 'Descuentos' + ImageIndex = 2 + inline frViewClienteDescuentos1: TfrViewClienteDescuentos + Left = 0 + Top = 0 + Width = 856 + Height = 586 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 856 + ExplicitHeight = 586 + inherited cxGrid: TcxGrid + Width = 856 + Height = 561 + ExplicitWidth = 856 + ExplicitHeight = 561 + end + inherited ToolBar1: TToolBar + Width = 856 + ExplicitWidth = 856 + inherited ToolButton1: TToolButton + ExplicitWidth = 62 + end + inherited ToolButton4: TToolButton + ExplicitWidth = 74 + end + inherited ToolButton2: TToolButton + ExplicitWidth = 67 + end + inherited ToolButton7: TToolButton + ExplicitWidth = 117 + end + end + end + end + inherited pagPersonal: TTabSheet + TabVisible = False + ExplicitWidth = 856 + ExplicitHeight = 586 + inherited frViewPersonalContacto1: TfrViewPersonalContacto + Width = 856 + Height = 586 + ExplicitWidth = 856 + ExplicitHeight = 586 + inherited cxGrid: TcxGrid + Width = 856 + Height = 561 + ExplicitWidth = 856 + ExplicitHeight = 561 + end + inherited ToolBar1: TToolBar + Width = 856 + ExplicitWidth = 856 + inherited ToolButton1: TToolButton + ExplicitWidth = 62 + end + inherited ToolButton4: TToolButton + ExplicitWidth = 74 + end + inherited ToolButton2: TToolButton + ExplicitWidth = 67 + end + inherited ToolButton7: TToolButton + ExplicitWidth = 117 + end + end + end + end + end + inherited StatusBar: TJvStatusBar + Top = 696 + Width = 870 + ExplicitTop = 696 + ExplicitWidth = 870 + end + inherited EditorActionList: TActionList + Top = 208 + inherited actPrevisualizar: TAction + Enabled = False + Visible = False + end + inherited actImprimir: TAction + Enabled = False + Visible = False + end + object actGruposCliente: TAction + Category = 'Acciones' + Caption = 'Grupos de cliente' + ImageIndex = 21 + OnExecute = actGruposClienteExecute + end + object actDocumentosFacturas: TAction + Category = 'Acciones' + Caption = 'Facturas' + ImageIndex = 25 + OnExecute = actDocumentosFacturasExecute + end + object actDocumentosPresupuestos: TAction + Category = 'Acciones' + Caption = 'Presupuestos' + ImageIndex = 23 + OnExecute = actDocumentosPresupuestosExecute + end + object actDocumentosAlbaranes: TAction + Category = 'Acciones' + Caption = 'Albaranes' + ImageIndex = 24 + OnExecute = actDocumentosAlbaranesExecute + end + object actDocumentosRecibos: TAction + Category = 'Acciones' + Caption = 'Recibos' + ImageIndex = 26 + OnExecute = actDocumentosRecibosExecute + end + end + inherited dsDataTable: TDADataSource + Left = 16 + Top = 240 + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage + Left = 432 + end + inherited StatusBarImages: TPngImageList + Left = 48 + Top = 248 + end + inherited LargeImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002444944415478DA + 9D964B6813511885CF2074E74A70E34277522BD2E842178A1041108A6ED4858A + 28880F908A5D148A50105CD4450B4AC520BE8A56C4D7A2AD548B41A90FAA6932 + 69190CA52E54444DEBA8D8343269E65EE7BF319967676E7BE06766C2F07D77EE + C9C02808C8EDFE118E45A4B3BB07EAD3CB8AF33725E84612EC6FDAB82078EFC0 + 5BAC58BE0C2DED5D2E8992BE5017B8DAF5CDC682058DF5AB30ADCFB82442E084 + 715682DABD142FD5124EDD90DB29D364B83B98C2E60DAB51281A2E894B40705E + FA89EC95956838D881C4E9964809C14D93E3FED028E29B1A509A2BBB24354115 + CEAC19BF19134F504D9084330ED39AB225A0F347C98C28D91B21889D9CA9C12B + A357AE8D1FB8DAD1EA1338E1E6FF29338657EA47CC1667A1EBBAB8EF7A6F5F45 + D078F493D896A078BB980FEE3DEF4FBEB305EB0EA9625BA2CA968533AB93C72F + 52B660EDBE24B43BDB105676F335260DA7FB9E0C8FDA8235BBEFE1FD83BD882A + FB58624E0A4E8B78F63A630BEA772690EB3B8EA8B28F5C32A4E074FD7C246B0B + 68955B6275882AFBF0C5BF52709AE1D478455005C8947DA0ABE01210B4FAA209 + 11E735F19BB4E617C894BDE7FCEF40B8F7C9526339BF40B6EC5DE7F450381D33 + DA845F205B76D3D9E95038CD586ED22F70961D04FFA575E2E1401E3BDAA742E1 + B47DDAC407B7C05BB6176E1A53F833794B08B69FF91E0AA7840AA86C2F9C1979 + 143E0F0941BCED6B283C5240657BE1CC3A16F35921D8DAFA25141E29A0B2F574 + 5BE00B478225F141C8645E81F32F19949E6F27A4041485F3457DA148E71FF2CE + 98E361E521AA0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001CC4944415478DA + 63FCFFFF3F032D0123B2058B361EA79A6D71FE968C582D004A906CD8DFBFFF80 + F83F9806010BDF6C868B7B66E1B6C0752FAA25BB9D8FE3341C59ED5A8B030CF3 + 56EF6198BF64237E0B4871B9C7016B0659651686F9DB8E30BC8BFEC6B070FD3E + C21660F301BA18086CB53DC2E07DD88661CFCD1360FEEB882F0C4B361DA0CC07 + FFFF01C31A88FF005D0F62FFFE070CFF3FFFC0BEF9F3EF2FC38A2D8749F70131 + 00E48B4741EF18D6EE38469C05306F9302EEFBBF61D8B0FB047116E04B39D800 + 48CF4CD5CD0C9BF69D24DE025C4105B31C260F533B4D7913C3D603A768E78389 + 0A1B18761D3E433B1FF4C9AC63D87BFC1CED7CD02DB986E1C0A90BF82D88F631 + 07E74E727CD02EBE8AE1C8994BF82D88F03403E74E727CD024BC9CE1E485ABF8 + 2D08753361F03B66479605F5024B19CE5CBE8EDF8200172386E0130E780D0359 + BEE4CF5C383F8625196C410DEF6286F3D76EE2B7C0D7C1005EAE40CAF97FE0B2 + 072C062CF373EFFB63C40F8C5FC9BD88E1D28D5BF82DF0B2D5C36938882E7814 + 8835F888B6C0CD5A1BA7E1A012B4E46930CEA023CA0247730DB061FFFE428AE5 + DF7F11C5F1BFFF508BFEFD437104322068819D891AB844A404E0B5A077F27C8A + 0C8701980500F0E629EF34B079A30000000049454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F330000026A4944415478DA63FCFFFF3F032D + 0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80F83F980601EBC0 + 7C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3C275FB19E62DDD + 84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD97890B005D87C802E + 06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9E0FF3F605803F1 + 1FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F18E70860DBB4E10 + 6701CCDBA480075B431936EF3D459C05F8520E3600D2B3A8508F61EB81D3C45B + 802BA86096C3E4616AE7E7EB32EC387486721F4C2C7064F8CA7E8E41F8D527BC + BE7AF2D589341FC02C6D2BE76788F0FBC520C1F883E1D74F0608FEC1C0F01346 + 03F1C9134458800DCC4C6464884D85B0F119CE2FC1C070F52E160B223C4DC1B9 + 139B0F62DE3B31B008E28FEC3FEF1186638D8350371370EEC4E60364D783C0A7 + F71017C330C80767CE4082C6CE701FC3A1F3587C10E46CC4E0567D04A70520CD + 8400C87010C06A819FA3018357ED31AC1A414184EC0310F8FB17182CBF19187E + FF02FAE23B03C38D1B0839AC1678DBE9C1CB155819032A7B40F49E7A51140B40 + 86FE061AFEE71784BD660D07839AC60F0636163C167858EB60351C54A1EC6F12 + C3880390C1201F80F0966D1C0C52F2100BD85819184E5CC662818BA51656C341 + F4A15609140BDEBE44180EB268E71E0E061169880557EE383134AFDACB886181 + BDA93AD8B07F7F11C532CCC2E39DD2700B4006BE7B85301C1454FB0E7230F089 + FF6078F0046238D6646A63A40A2E11B101D67D9E600B664EE5C09982DEFDB662 + D8FA491D7759D43B65214ECDF6BCFB187818A5F1265190E12000B300003BBC36 + ACFF3E80210000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001BE4944415478DA + 63FCFFFF3F032D0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80 + F83F980601EBC07C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3 + C275FB19E62DDD84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD978 + 90B005D87C802E06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9 + E0FF3F605803F11FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F1 + 8E70860DBB4E106701CCDBA480075B431936EF3D459C05F8520E3600D2B3A850 + 8F61EB81D3C45B802BA86096C3E4616AE7E7EB32EC387486763E989DA3CDB0E7 + E839DAF96046A626C3FE131768E783A969EA0C874E5FC26F4184A729387792E3 + 838929AA0CC7CE5EC16F41A89B09387792E3839E042586D317AFE3B720C8D988 + C1ADFA08591674C62A309CBB7213BF057E8E060C5EB5C7F01A06B27CC1913F70 + 7E820D0BD882B62839868BD76FE3B7C0DB4E0F5EAEC0CA1850D9032BF393275F + C1881F18BF394296E1CACD3BF82DF0B0D6C16938884E9B760D6BF0116D818BA5 + 164EC3411667CDB88133E888B2C0DE541D6CD8BFBF88621966E1BFFFFFB1061F + 322068818D912AB844A404E0B5A077CA428A0C8701980500619929EF09CFCE42 + 0000000049454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F330000028C4944415478DADD945F4853511C + C7BF77646942ABE9A061F6BF8690D443427B88A2321123166EDAA21E122308EA + B184407DC887E8A932F0611A3542325F0A0729B432A849CA68CA1CA2B86C0C4B + 43A428EFEEEE9FCE39E8DA9FBB7F0F7BE9073F7EE7DE7BCEF7737EBFF33B9753 + 1405F934EEFF00F43A47F34689026C7555392D1425059224232C882C8AB2CC22 + 1B131722121AAFB6C6030E5BDE6514964540126444C2448CB8F0538448C78204 + 99BC672E8A687FA045CFB357C980B1FEE371A033B53EB4365D4B06911D53AFAE + 71603A50C284BF85CEA174CB73709284B647BAD4006A741C2B3EBEFC05756573 + 88AC7C4541D17638433B602C324010049C35F7C33FA1C5C2623D9B5B5AEC407B + 973E7D066BE2E5C5C308FE3EC622151F5A3A8AD3BAB704B21B538B5530EA47E1 + 0D56A2DEFA12C3AE26E8373E25352419D80DEA80C4D21834BD98976DD8AA7130 + F11A9D1B834B2654970C6166D986FDDA018C7F3F8586F303981C59C7C4E941B5 + F594670788CF60161C0AA18067194C840EA2B2CC8B4FD3FB70E1D220263F70AB + 5D403278B2333D2016229105BE5F417606023F85F585467606DBE44D08F37C92 + 38B59480D82EA2ED6736FBD172B1994164D6EB52D4E973A3CD19155F8C5C815E + D3951E10BD48B4B77985C50D073CF86C79AF7A2FF4B596B89DAF992A20F1968A + AB37D377BF02FA9356EC3D72173323B7D89C85D931708100BA5DF3B0DF3E9104 + EE0C5D4F06743A5EABEE72F31F0FF6FCB033B1446BE9B89112EC29B8FC0F70EF + E1E38CBF09CFCD39D5F7CD1DAEE4B9449C1A03701C9751FCE39D5D4A2E6522D0 + 866E17FF22178095843EB532D9DFACA8420980CB0A40C54DA68A3EB56F6EB75F + F56C881D22006FB680B4E5A13B4DB536EB0C52958718AB755A403E2DEF80BF27 + 2521AB920B52530000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end> + Bitmap = {} + end + inherited SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001B24944415478DA9D52A16E1B41109D6366595810C90B0307069E59E0 + B29665A1E141B32E3474BF20070FAE1462B8259555D22D88643889A5C8F04C1A + 57AAB4797B4E9C334875CA48A3B9B9BB79F366DE14D433EB6DA27D4BB427AAAD + 2F68809DFC641B9358338518C94F3F02509BA4B5A6B802C02C0C03E8D36EE1AC + 15859520C157BC6F1163138BF70132ED0B7E01688F9E2B73942500FCFF00403B + 773E1410E90B4512A4EB9C41338BB894F701FA495995093BA4185054BF75559F + 9432A5719AB555238C18420D772DEC1460CA495D12893FA55D5E950E637E554A + 75B9ACC190DA6FBEF1D509005B4EAFCBEBD3365F8CA0F398993B85ECD462D161 + E7664E0D920A85892F995040B215922814D771B7582C5421F32AE59FDAA3946D + 27611773F72614D84137020A288FE1E68EC068823C7400E3BCB96DAE82FEE8B0 + CB113204B8591DF65496B66656D7F9390AA3819AC4A509459CD924C11FB8BE1C + D39111AC122AF8CA630AFD8B21B13563728BDF50427634223368076E2E3871DC + 47BECA100F4AEC3508C7FB41001500F2EC4A9D51F0DFBBE2AC94ACC330809BDB + BBE6E70FFAFCE7E92F6D1E1E69B3FD87156D9EB43E37CFDA01027CC229770400 + 00000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000018E4944415478DA + 6364C002966C3EF19F010F88F1B56084B119CF4E6443516C9CFF8B116440B48F + 398AA6BFFFFE31FCF9F38F61CDAEB30CBD5316329CDF399D116E8051DE4FB0A2 + 7393D8190E9FFFC520127C8201D90098E6DF7FFE326CDC778141469483A1B07E + 26D810B801FF7F7F6498942600D7943FFF3F866610BDF5D025B00B50BC6098F9 + 8AE1CFD7070C971799A1385B3FE73B8AE6DF7F41F45F8603A76F81E5BB27CD87 + 18A01B778AE1EFB7070CD7D68431A07B2779EA0F14CD20F69FBFFF184E5CBA87 + 30402B6415C3DFAFF7196E6E2F67C0E69DA8BECF289A7FFDFECB70EEFA438401 + EA9E9D0CEF2F7530BC7AFA9E01977744435FC03583BC74F9F613840120A78280 + AD211B033EEF78D4BD046BFE0D34E4C683E71003906D21C63B76A58F197E010D + B9F7E4157603B07907E42290A173DA0A192C0A1F805DF0F8E55BEC0660F30E48 + 33C8D0B55B5E3218E7DC0587C5F337EF310DC0E59D3F5F6E317CBEB70E6C8058 + E829B81A8206C0BC03032003163ECF84F3FF337EC76F00CC3BC8A06001AA1EC6 + FFFFF1E65C820000241257B48E5A5E7D0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001774944415478DA + 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F + 192CBCB3192EEE99856A80C35E4B14C5079C8F836964F1ED368718662EDFC530 + 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB0815586BB18966D3A84 + DB0098B341E01F50EECF9F7F709B034F3B312CD3DDC1B06ADB11FC06C05CB2CB + EE0883DB211BB8CD61E7DD18166A6E6558BFEB387E03D06DFEFDE70F981F75D9 + 8361AEEA2686CDFB4EE136609FD33106A77D56605BD79BEE033B1B044036C75F + F76698AEB88161E7A133B80D00391BDDE69FBFFE30FC028AA5DFF567E8975CCD + 70F0D4454C0372623D195C0E58A384F862ED6D0CB157BDC0EC2972EB18721E05 + 317489AE643876EE32A601E9916E605BFEFCFE07B639E2A23BC37CF52D60B1DF + BF21B8F0792843ABE03286D397AE611A9018EA0CD70CF202CC6674D0C0BB98E1 + C2B59B9806C40638C23583FC8D6CF36F688C80F0BF7FFF192EDDB8856940848F + 2DC38A2D8789CE89180680044805200300115980F04CC063740000000049454E + 44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000001744944415478DA63FCFFFF3FC394 + C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F19ACFDF319CEED + 98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC5BBA09D3007CE0 + D7EFBF609B4178C98683D80D40770136B0AED69461E59623B80D80391B04FE01 + E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D760CCEE587E036 + 07359F66585A6AC0B069CF49FC06C06CFE7CFB30C3CBC5B1F87CE48261C0C15E + 0706FBE20360D999EC710CCA0D350CECECE9183A7FFE9CC9302FB18501C30090 + B3617E7ED6A6C6A0D5FE18AC180E7EFC00E2EF0CB3771930306F4F45189011E5 + C6E0587A10C516900B500C0069FEF00E62C02927540392C39CC1B6C2423DA4F5 + 0CAA0130CD60037E32CCBE15846A405C90034A9445769E4718F0712242F3870F + 1017BC4A413520CA0FE177B841338C20063CAC47688679E15719AA01A15ED60C + ABB71D450903A76BA9E05898BD4A1E6B1CA218004A18E8409BF70D8315EB719C + 89C05E9EC10500D1295EA9BD5461080000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001684944415478DA + 63FCFFFF3FC394C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F + 19ACFDF319CEED98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC + 5BBA09D3007CE0D7EFBF609B4178C98683D80D40770136B0AED69461E59623B8 + 0D80391B04FE01E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D + 760CCEE587E03607359F66585A6AC0B069CF49FC06A0DB0CC2207E58FB598685 + 85BA0CDB0E9CC16DC0C15E0706FBE203605B37375A809D0D02209BA3BB2F30CC + C9D566D87DE41C6E0340CE46B7F9E7AF3F6076D2C42B0C53D2D4180E9FBE8C69 + 4046941B8363E94194105F5E6EC810D9791ECC9E99A5C9903EED3A437F920AC3 + 89F357310D480E7386DB08A2435ACF302C2ED687B8049A067266DD62E88A5364 + 387BF906A60171410E280107B3191DB446C9315CBA7E1BD380283F3B147F23DB + FC1BC9E07FFFFE335CB97907D380502F6B86D5DB8E129D13310C0009900A4006 + 00004B6D80F047EC10D30000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F330000012D4944415478DA63FCFFFF3F0325 + 80916203966D3945B60991DEA68C6003B42CC41852B26F6355F4E7E77F86DFDF + FE31FCFEFC97E1FBFBDF60F68E73460C89D19D0CE7764C4318000230434E2E77 + C63048416B135C3308A018D0B7F8235C214CB30CFF5E880B3E3F6278F12F11CC + 16175BC3F0FFF76F06865F7F18E4EC4E103600A41904600688092E076B66001A + 22E77C16BB01BFBEFC6338BFD915C30BC89A19FFFC619075BF881A0620FF8334 + FFFAF297E1D75760A07DF9C3B032A610670C641FF64018D03D793E8682A9B63B + 184C53EA197E89A933309DE86638BFEF3CC3DC7DCF19A6B478C1D973F67E6764 + C465C3B116C5D003AFD556DDBD7C10AB7CB293649865F5BDD5F80CF84FB10B80 + D42A9042AABA00A4D1AAE6FE6A901A503E22D90573F7FD80EB011B40696E0400 + A0BEE1E16734A0290000000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end> + Bitmap = {} + end +end diff --git a/Source/Modulos/Contactos/Views/uEditorCliente.pas b/Source/Modulos/Contactos/Views/uEditorCliente.pas new file mode 100644 index 0000000..ccfb01d --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorCliente.pas @@ -0,0 +1,163 @@ +unit uEditorCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + uEditorContacto, ImgList, PngImageList, StdActns, ActnList, TBX, + TB2Item, TB2Dock, TB2Toolbar, ComCtrls, JvExControls, JvComponent, + JvNavigationPane, uViewCliente, uBizContactos, DB, uDADataTable, + JvFormAutoSize, uDAScriptingProvider, uDACDSDataTable, uCustomView, + uViewBase, JvAppStorage, JvAppRegistryStorage, + JvFormPlacement, ExtCtrls, pngimage, JvComponentBase, uViewContacto, StdCtrls, + + uIEditorCliente, TBXStatusBars, JvExComCtrls, JvStatusBar, uViewEmpleado, + uViewDireccionesEntrega, uViewDetallesGenerico, uViewClienteDescuentos, + uViewContactoDatosBancarios, dxLayoutLookAndFeels, + uViewClienteDatosComerciales, uDAInterfaces, uViewContactoListaDatosBancarios, + uViewPersonalContacto, cxControls, cxContainer, cxEdit, cxLabel; + +type + TfEditorCliente = class(TfEditorContacto, IEditorCliente) + frViewCliente1: TfrViewCliente; + pagDirecciones: TTabSheet; + frViewDireccionesEntrega1: TfrViewDireccionesEntrega; + actGruposCliente: TAction; + TBXItem7: TTBXItem; + pagDescuentos: TTabSheet; + frViewClienteDescuentos1: TfrViewClienteDescuentos; + pagDatosComerciales: TTabSheet; + frViewClienteDatosComerciales1: TfrViewClienteDatosComerciales; + TBXSubmenuItem2: TTBXSubmenuItem; + TBXSubmenuItem3: TTBXSubmenuItem; + TBXItem33: TTBXItem; + TBXSeparatorItem6: TTBXSeparatorItem; + actDocumentosPresupuestos: TAction; + actDocumentosAlbaranes: TAction; + actDocumentosFacturas: TAction; + TBXSubmenuItem8: TTBXSubmenuItem; + TBXItem34: TTBXItem; + TBXItem35: TTBXItem; + TBXItem36: TTBXItem; + TBXItem37: TTBXItem; + TBXItem38: TTBXItem; + TBXItem39: TTBXItem; + TBXItem40: TTBXItem; + actDocumentosRecibos: TAction; + TBXItem41: TTBXItem; + procedure FormShow(Sender: TObject); + procedure actGruposClienteExecute(Sender: TObject); + procedure actDocumentosFacturasExecute(Sender: TObject); + procedure actDocumentosPresupuestosExecute(Sender: TObject); + procedure actDocumentosAlbaranesExecute(Sender: TObject); + procedure actDocumentosRecibosExecute(Sender: TObject); + protected + procedure EliminarInterno; override; + procedure SetContacto(const Value: IBizContacto); override; + public + constructor Create(AOwner: TComponent); override; + procedure PonerTitulos(const ATitulo: string = ''); override; + end; + +implementation + +uses + uEditorItem, uEditorBase, uDataModuleUsuarios, uEditorDBItem, + uGruposClienteController, uBizGruposCliente, uEditorDBBase, uDialogUtils, + uClientesController; + + +{$R *.dfm} + +procedure TfEditorCliente.actDocumentosAlbaranesExecute(Sender: TObject); +begin + inherited; + (FController as IClientesController).VerAlbaranesDeCliente(IBizCliente(FContacto)); +end; + +procedure TfEditorCliente.actDocumentosFacturasExecute(Sender: TObject); +begin + inherited; + (FController as IClientesController).VerFacturasDeCliente(IBizCliente(FContacto)); +end; + +procedure TfEditorCliente.actDocumentosPresupuestosExecute(Sender: TObject); +begin + inherited; + (FController as IClientesController).VerPresupuestosDeCliente(IBizCliente(FContacto)); +end; + +procedure TfEditorCliente.actDocumentosRecibosExecute(Sender: TObject); +begin + inherited; + (FController as IClientesController).VerRecibosDeCliente(IBizCliente(FContacto)); +end; + +procedure TfEditorCliente.actGruposClienteExecute(Sender: TObject); +var + AGruposController : IGruposClienteController; + AGrupos : IBizGrupoCliente; +begin + AGruposController := TGruposClienteController.Create; + try + AGrupos := (AGruposController.BuscarTodos as IBizGrupoCliente); + AGruposController.VerTodos(AGrupos); + finally + AGrupos := NIL; + AGruposController := NIL; + end; +end; + +constructor TfEditorCliente.Create(AOwner: TComponent); +begin + inherited; + ViewContacto := frViewCliente1; +end; + +procedure TfEditorCliente.EliminarInterno; +begin + if (ShowConfirmMessage('Desea borrar este cliente?', '') = IDYES) then + inherited; +end; + +procedure TfEditorCliente.FormShow(Sender: TObject); +begin + inherited; + pgPaginas.ActivePageIndex := 0; +end; + +procedure TfEditorCliente.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + if Assigned(Contacto) then + begin + if Contacto.EsNuevo then + FTitulo := 'Nuevo cliente' + else + FTitulo := 'Cliente'; + end; + + inherited PonerTitulos(FTitulo); + + if (Contacto as IBizCliente).BLOQUEADO = 1 then + JvNavPanelHeader.Caption := JvNavPanelHeader.Caption + ' (Bloqueado)'; +end; + +procedure TfEditorCliente.SetContacto(const Value: IBizContacto); +begin + inherited; + if Assigned(Contacto) then + begin + frViewDireccionesEntrega1.dsDetalles.DataTable := Contacto.Direcciones.DataTable; + frViewClienteDescuentos1.dsDetalles.DataTable := (Contacto as IBizCliente).Descuentos.DataTable; + frViewClienteDatosComerciales1.Contacto := Contacto; + end + else begin + frViewDireccionesEntrega1.dsDetalles.DataTable := NIL; + frViewClienteDescuentos1.dsDetalles.DataTable := NIL; + frViewClienteDatosComerciales1.Contacto := NIL; + end; +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uEditorClientes.dcu b/Source/Modulos/Contactos/Views/uEditorClientes.dcu new file mode 100644 index 0000000..ba6ef15 Binary files /dev/null and b/Source/Modulos/Contactos/Views/uEditorClientes.dcu differ diff --git a/Source/Modulos/Contactos/Views/uEditorClientes.dfm b/Source/Modulos/Contactos/Views/uEditorClientes.dfm new file mode 100644 index 0000000..7d09787 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorClientes.dfm @@ -0,0 +1,3154 @@ +inherited fEditorClientes: TfEditorClientes + Left = 441 + Top = 313 + Caption = 'Lista de clientes' + ClientHeight = 519 + ClientWidth = 857 + ExplicitWidth = 865 + ExplicitHeight = 553 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 857 + Caption = 'Lista de clientes' + ExplicitWidth = 857 + inherited Image1: TImage + Left = 830 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB51930000033B4944415478DADD957F6856 + 5518C73F77EF0FDFBDB9B94DC1214D5BB2FD61A3B0399236D6642496A32874A1 + 329D2D322C7F24686C0D539318FE964419E29F6AFF5810D982821CBA0D572928 + 46A4AD36B7D770BEEFF6FEBA7BEF3DF7DEB773A72EDFDE3BD71FEE1F0F3CDC73 + 78CEF97E9EE73CE79CAB24934926B3298F07E0EB73BF4E0AE5B5AA79CA18400E + C61C86162270F93043033D986692E9454B99337F459A80695AA37EFB6B58D6BD + F1DDFE2BAB3EE2D277479D01033FED440FFC4E389C60381263C47431B7BC9EE2 + 05B5FF4BDCFED6AC6E7406F47535A1057AE5242FD1689C585C951627AA06A9AC + FB9C278B5F1A136F3A2D1CB766D3E2115E5FFB713A203E78893F2F1C401D1A91 + C571CBA9493C2E055DE80C066F93F55429E5CB0F3D34F251B392BCD9D09C0E08 + F67C457FF7492CCD853FD38FCFEB41C142681AAAAA72FD763F351F768E8A08C3 + 64D797CEC57DAF2A46EDBAEDCE80E16B67F0E1C7E3F6482103210442D7D125E4 + 7AD8A2BAE1F4B8D15B7666327A43F657AEDF910E880C7413BAF2051989613214 + 19BB5C681806868444E30922D32B295DBC7E42717B5CB761977391FBBB5AD16E + 76CAED37B17DA66167A13310715358BD8D1905CF4C286E5BFDE6DDCE806B7D17 + E8ED68656622814716591882802AB893534259453D3373674F286EFBDED9F259 + 3AE07C7F072DDDFBE9BBF51BCBF4222AF29F261009D13674836EF30ED5854B78 + 7FE106F29E98312AD47CF01BC7226F5C5DC5BAAD2DA980E7E64F655FE711DA03 + 5DA8DE30B9A129AC29A9E5AFE19B7C1B6C079F0F821994E79552B7E06D0AB2E7 + A4446E9FAA0733FBA0716F2A80593DECF9F118514610D3E2E8468CBC58169A57 + 10F70B7C46164AC84B70B097A5C5AFB2B5E2133E3DDAE698C1BB6F95B3A9797F + 2A2090DDC1DE1F5AC9F6E5626427107E699ABC702E175E251377DC872BECE3EF + 500F453905B4BE71EAA1176DCBF603A90033FF0F769FDD879600F7340F56A620 + E936E569525074372ED5432C1C269618A4A6A4868D658DEC39FEBD63060DCB5F + 4C07BCFC4211576F5DE5F8C513FC7CE3171991B0B5EDD7027999A52964E678D9 + 5CD6C4B3F9A5E3467EBFA5011695CD1D77D1442FE77FC51D0195CF173E327147 + C08E96238FFA87F62F6032DBA403FE011B7940FEE55D65A30000000049454E44 + AE426082} + ExplicitLeft = 658 + end + end + inherited TBXDock: TTBXDock + Width = 857 + ExplicitWidth = 857 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 857 + object TBXSubmenuItem3: TTBXSubmenuItem [13] + Caption = 'Documentos relacionados' + DisplayMode = nbdmImageAndText + DropdownCombo = True + ImageIndex = 24 + Images = SmallImages + object TBXItem43: TTBXItem + Action = actDocumentosPresupuestos + end + object TBXItem42: TTBXItem + Action = actDocumentosAlbaranes + end + object TBXItem41: TTBXItem + Action = actDocumentosFacturas + end + object TBXItem44: TTBXItem + Action = actDocumentosRecibos + end + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 857 + inherited TBXSubmenuItemAcciones: TTBXSubmenuItem + object TBXItem381: TTBXItem + Action = actGruposCliente + Caption = 'Ver grupos de cliente...' + Images = SmallImages + end + object TBXSeparatorItem171: TTBXSeparatorItem + end + object TBXSubmenuItem2: TTBXSubmenuItem + Caption = 'Documentos relacionados' + DropdownCombo = True + ImageIndex = 24 + Images = SmallImages + object TBXItem40: TTBXItem + Action = actDocumentosPresupuestos + end + object TBXItem39: TTBXItem + Action = actDocumentosAlbaranes + end + object TBXItem38: TTBXItem + Action = actDocumentosFacturas + end + object TBXItem45: TTBXItem + Action = actDocumentosRecibos + end + end + end + end + inherited TBXTMain2: TTBXToolbar + Left = 275 + DockPos = 275 + ExplicitLeft = 275 + end + end + inherited StatusBar: TJvStatusBar + Top = 500 + Width = 857 + ExplicitTop = 500 + ExplicitWidth = 857 + end + inline frViewClientes1: TfrViewClientes [3] + Left = 0 + Top = 102 + Width = 857 + Height = 398 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 102 + ExplicitWidth = 857 + ExplicitHeight = 398 + inherited cxGrid: TcxGrid + Width = 857 + Height = 270 + ExplicitWidth = 857 + ExplicitHeight = 270 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = '0 clientes' + Kind = skCount + Column = frViewClientes1.cxGridViewBLOQUEADO + end> + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 857 + ExplicitWidth = 857 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 857 + inherited dxLayoutControl1: TdxLayoutControl + Width = 857 + ExplicitWidth = 857 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 689 + Width = 689 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 460 + Width = 460 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 467 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 467 + ExplicitWidth = 212 + Width = 212 + end + inherited eLista: TcxComboBox + Left = 676 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 676 + ExplicitWidth = 215 + Width = 215 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 857 + ExplicitWidth = 857 + inherited tbxBotones: TTBXToolbar + Width = 847 + ExplicitWidth = 847 + end + end + end + inherited PngImageList: TPngImageList + Left = 408 + Top = 80 + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 372 + ExplicitTop = 372 + ExplicitWidth = 857 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 857 + ExplicitWidth = 857 + inherited TBXToolbar1: TTBXToolbar + Width = 847 + ExplicitWidth = 847 + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39388.700534212960000000 + BuiltInReportLink = True + end + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewClientes1.cxGridView + HitTypes = [gvhtCell] + Index = 0 + end> + end + end + inherited EditorActionList: TActionList [4] + Left = 56 + Top = 144 + inherited actNuevo: TAction + ImageIndex = 22 + end + object actGruposCliente: TAction [1] + Category = 'Acciones' + Caption = 'Grupos de cliente' + ImageIndex = 23 + OnExecute = actGruposClienteExecute + end + object actDocumentosFacturas: TAction [2] + Category = 'Acciones' + Caption = 'Facturas' + ImageIndex = 27 + OnExecute = actDocumentosFacturasExecute + OnUpdate = actDocumentosFacturasUpdate + end + inherited actPrevisualizar: TAction + Enabled = True + Visible = True + end + inherited actImprimir: TAction + Enabled = True + Visible = True + end + object actDocumentosPresupuestos: TAction + Category = 'Acciones' + Caption = 'Presupuestos' + ImageIndex = 25 + OnExecute = actDocumentosPresupuestosExecute + OnUpdate = actDocumentosFacturasUpdate + end + object actDocumentosAlbaranes: TAction + Category = 'Acciones' + Caption = 'Albaranes' + ImageIndex = 26 + OnExecute = actDocumentosAlbaranesExecute + OnUpdate = actDocumentosFacturasUpdate + end + object actDocumentosRecibos: TAction + Category = 'Acciones' + Caption = 'Recibos' + ImageIndex = 28 + OnExecute = actDocumentosRecibosExecute + OnUpdate = actDocumentosFacturasUpdate + end + end + inherited SmallImages: TPngImageList [5] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001EC4944415478DA + A5934B6813511486BF541B88CD26620DA262A51BDB8520158308D5852055B01B + A3E8CEBD2E7CE063512852D09D2E82E04604AB1B5D4451B059D8A6010D84D842 + 5B6B6B1A8D414A4C9B18EB4C27F3F466D41943ED4233309C3BDC39DFFFDF9F7B + 3C9665D1C8E379323CD510C1061C3DD0697F48C531BEE7A7EDB57F6B072DADBB + 9C1F4DE154D74D34DD70DE43272FB9805AF3975484E56F1A856289C2D23CFB4F + 44D8D4BE17DD30B932A8D629B7358D70F7C1D39F8023FBB6917B35C0D78F590C + 43EC5A06954A8505A5C4B1CB2947F14F07D158D205F48436F03E761E640FEB7C + 3ED660204B3263B9597A2F24ED866B8F59DD414F28C8E7443FDE6A55A883AAA9 + 28F232F3FA7ABA8EDFAC53FEBD1E1A4DBB805A0685370F91E65E0880084BD358 + 9255CCB65EDAF784571E413378F97ABC1E90C8C6C88EDC6687E9150EAAA415D8 + BCFB14DD9D875734D76A2235E102B674A85C1CEEA3B498E374F020A666727F21 + 4E662ECFDBAB19BBB9EFD6B3BA0C423B37BA80A4F188E733A32881327EA91991 + 22924FA7B9E427373B45FADCB4A3ACFD72929E78E702EE1506C8E68B18AD0AEA + 5A595C2F44A02D3495BD7CF8344EF2CC24D7EFC4567770361EA65C2EFCF5AA06 + 0241A2E1215BD5302DBB9AA24ECE645C4077D77606A3F17F9E0307D07F23F2FF + C3D4E838FF008E7263BE13CA147C0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001B24944415478DA9D52A16E1B41109D6366595810C90B0307069E59E0 + B29665A1E141B32E3474BF20070FAE1462B8259555D22D88643889A5C8F04C1A + 57AAB4797B4E9C334875CA48A3B9B9BB79F366DE14D433EB6DA27D4BB427AAAD + 2F68809DFC641B9358338518C94F3F02509BA4B5A6B802C02C0C03E8D36EE1AC + 15859520C157BC6F1163138BF70132ED0B7E01688F9E2B73942500FCFF00403B + 773E1410E90B4512A4EB9C41338BB894F701FA495995093BA4185054BF75559F + 9432A5719AB555238C18420D772DEC1460CA495D12893FA55D5E950E637E554A + 75B9ACC190DA6FBEF1D509005B4EAFCBEBD3365F8CA0F398993B85ECD462D161 + E7664E0D920A85892F995040B215922814D771B7582C5421F32AE59FDAA3946D + 27611773F72614D84137020A288FE1E68EC068823C7400E3BCB96DAE82FEE8B0 + CB113204B8591DF65496B66656D7F9390AA3819AC4A509459CD924C11FB8BE1C + D39111AC122AF8CA630AFD8B21B13563728BDF50427634223368076E2E3871DC + 47BECA100F4AEC3508C7FB41001500F2EC4A9D51F0DFBBE2AC94ACC330809BDB + BBE6E70FFAFCE7E92F6D1E1E69B3FD87156D9EB43E37CFDA01027CC229770400 + 00000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000018E4944415478DA + 6364C002966C3EF19F010F88F1B56084B119CF4E6443516C9CFF8B116440B48F + 398AA6BFFFFE31FCF9F38F61CDAEB30CBD5316329CDF399D116E8051DE4FB0A2 + 7393D8190E9FFFC520127C8201D90098E6DF7FFE326CDC778141469483A1B07E + 26D810B801FF7F7F6498942600D7943FFF3F866610BDF5D025B00B50BC6098F9 + 8AE1CFD7070C971799A1385B3FE73B8AE6DF7F41F45F8603A76F81E5BB27CD87 + 18A01B778AE1EFB7070CD7D68431A07B2779EA0F14CD20F69FBFFF184E5CBA87 + 30402B6415C3DFAFF7196E6E2F67C0E69DA8BECF289A7FFDFECB70EEFA438401 + EA9E9D0CEF2F7530BC7AFA9E01977744435FC03583BC74F9F613840120A78280 + AD211B033EEF78D4BD046BFE0D34E4C683E71003906D21C63B76A58F197E010D + B9F7E4157603B07907E42290A173DA0A192C0A1F805DF0F8E55BEC0660F30E48 + 33C8D0B55B5E3218E7DC0587C5F337EF310DC0E59D3F5F6E317CBEB70E6C8058 + E829B81A8206C0BC03032003163ECF84F3FF337EC76F00CC3BC8A06001AA1EC6 + FFFFF1E65C820000241257B48E5A5E7D0000000049454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001774944415478DA + 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F + 192CBCB3192EEE99856A80C35E4B14C5079C8F836964F1ED368718662EDFC530 + 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB0815586BB18966D3A84 + DB0098B341E01F50EECF9F7F709B034F3B312CD3DDC1B06ADB11FC06C05CB2CB + EE0883DB211BB8CD61E7DD18166A6E6558BFEB387E03D06DFEFDE70F981F75D9 + 8361AEEA2686CDFB4EE136609FD33106A77D56605BD79BEE033B1B044036C75F + F76698AEB88161E7A133B80D00391BDDE69FBFFE30FC028AA5DFF567E8975CCD + 70F0D4454C0372623D195C0E58A384F862ED6D0CB157BDC0EC2972EB18721E05 + 317489AE643876EE32A601E9916E605BFEFCFE07B639E2A23BC37CF52D60B1DF + BF21B8F0792843ABE03286D397AE611A9018EA0CD70CF202CC6674D0C0BB98E1 + C2B59B9806C40638C23583FC8D6CF36F688C80F0BF7FFF192EDDB8856940848F + 2DC38A2D8789CE89180680044805200300115980F04CC063740000000049454E + 44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000001744944415478DA63FCFFFF3FC394 + C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F19ACFDF319CEED + 98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC5BBA09D3007CE0 + D7EFBF609B4178C98683D80D40770136B0AED69461E59623B80D80391B04FE01 + E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D760CCEE587E036 + 07359F66585A6AC0B069CF49FC06C06CFE7CFB30C3CBC5B1F87CE48261C0C15E + 0706FBE20360D999EC710CCA0D350CECECE9183A7FFE9CC9302FB18501C30090 + B3617E7ED6A6C6A0D5FE18AC180E7EFC00E2EF0CB3771930306F4F45189011E5 + C6E0587A10C516900B500C0069FEF00E62C02927540392C39CC1B6C2423DA4F5 + 0CAA0130CD60037E32CCBE15846A405C90034A9445769E4718F0712242F3870F + 1017BC4A413520CA0FE177B841338C20063CAC47688679E15719AA01A15ED60C + ABB71D450903A76BA9E05898BD4A1E6B1CA218004A18E8409BF70D8315EB719C + 89C05E9EC10500D1295EA9BD5461080000000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001684944415478DA + 63FCFFFF3FC394C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F + 19ACFDF319CEED98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC + 5BBA09D3007CE0D7EFBF609B4178C98683D80D40770136B0AED69461E59623B8 + 0D80391B04FE01E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D + 760CCEE587E03607359F66585A6AC0B069CF49FC06A0DB0CC2207E58FB598685 + 85BA0CDB0E9CC16DC0C15E0706FBE203605B37375A809D0D02209BA3BB2F30CC + C9D566D87DE41C6E0340CE46B7F9E7AF3F6076D2C42B0C53D2D4180E9FBE8C69 + 4046941B8363E94194105F5E6EC810D9791ECC9E99A5C9903EED3A437F920AC3 + 89F357310D480E7386DB08A2435ACF302C2ED687B8049A067266DD62E88A5364 + 387BF906A60171410E280107B3191DB446C9315CBA7E1BD380283F3B147F23DB + FC1BC9E07FFFFE335CB97907D380502F6B86D5DB8E129D13310C0009900A4006 + 00004B6D80F047EC10D30000000049454E44AE426082} + Name = 'PngImage27' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F330000012D4944415478DA63FCFFFF3F0325 + 80916203966D3945B60991DEA68C6003B42CC41852B26F6355F4E7E77F86DFDF + FE31FCFEFC97E1FBFBDF60F68E73460C89D19D0CE7764C4318000230434E2E77 + C63048416B135C3308A018D0B7F8235C214CB30CFF5E880B3E3F6278F12F11CC + 16175BC3F0FFF76F06865F7F18E4EC4E103600A41904600688092E076B66001A + 22E77C16BB01BFBEFC6338BFD915C30BC89A19FFFC619075BF881A0620FF8334 + FFFAF297E1D75760A07DF9C3B032A610670C641FF64018D03D793E8682A9B63B + 184C53EA197E89A933309DE86638BFEF3CC3DC7DCF19A6B478C1D973F67E6764 + C465C3B116C5D003AFD556DDBD7C10AB7CB293649865F5BDD5F80CF84FB10B80 + D42A9042AABA00A4D1AAE6FE6A901A503E22D90573F7FD80EB011B40696E0400 + A0BEE1E16734A0290000000049454E44AE426082} + Name = 'PngImage28' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000033B4944415478DA + DD957F68565518C73F77EF0FDFBDB9B94DC1214D5BB2FD61A3B0399236D66424 + 96A32874A1329D2D322C7F24686C0D539318FE964419E29F6AFF5810D982821C + BA0D57292846A4AD36B7D770BEEFF6FEBA7BEF3DF7DEB773A72EDFDE3BD71FEE + 1F0F3CDC7378CEF97E9EE73CE79CAB24934926B3298F07E0EB73BF4E0AE5B5AA + 79CA18400EC61C86162270F93043033D986692E9454B99337F459A80695AA37E + FB6B58D6BDF1DDFE2BAB3EE2D277479D01033FED440FFC4E389C60381263C474 + 31B7BC9EE205B5FF4BDCFED6AC6E7406F47535A1057AE5242FD1689C585C9516 + 27AA06A9ACFB9C278B5F1A136F3A2D1CB766D3E2115E5FFB713A203E78893F2F + 1C401D1A91C571CBA9493C2E055DE80C066F93F55429E5CB0F3D34F251B392BC + D9D09C0E08F67C457FF7492CCD853FD38FCFEB41C142681AAAAA72FD763F351F + 768E8A08C364D797CEC57DAF2A46EDBAEDCE80E16B67F0E1C7E3F64821032104 + 42D7D125E47AD8A2BAE1F4B8D15B7666327A43F657AEDF910E880C7413BAF205 + 198961321419BB5C681806868444E30922D32B295DBC7E42717B5CB761977391 + FBBB5AD16E76CAED37B17DA66167A13310715358BD8D1905CF4C286E5BFDE6DD + CE806B7D17E8ED68656622814716591882802AB893534259453D3373674F286E + FBDED9F2593AE07C7F072DDDFBE9BBF51BCBF4222AF29F261009D13674836EF3 + 0ED5854B787FE106F29E98312AD47CF01BC7226F5C5DC5BAAD2DA980E7E64F65 + 5FE711DA035DA8DE30B9A129AC29A9E5AFE19B7C1B6C079F0F821994E79552B7 + E06D0AB2E7A4446E9FAA0733FBA0716F2A80593DECF9F118514610D3E2E8468C + BC58169A5710F70B7C46164AC84B70B097A5C5AFB2B5E2133E3DDAE698C1BB6F + 95B3A9797F2A2090DDC1DE1F5AC9F6E5626427107E699ABC702E175E251377DC + 872BECE3EF500F453905B4BE71EAA1176DCBF603A90033FF0F769FDD879600F7 + 340F56A620E936E569525074372ED5432C1C269618A4A6A4868D658DEC39FEBD + 63060DCB5F4C07BCFC4211576F5DE5F8C513FC7CE3171991B0B5EDD7027999A5 + 2964E678D95CD6C4B3F9A5E3467EBFA5011695CD1D77D1442FE77FC51D0195CF + 173E327147C08E96238FFA87F62F6032DBA403FE011B7940FEE55D65A3000000 + 0049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002444944415478DA + 9D964B6813511885CF2074E74A70E34277522BD2E842178A1041108A6ED4858A + 28880F908A5D148A50105CD4450B4AC520BE8A56C4D7A2AD548B41A90FAA6932 + 69190CA52E54444DEBA8D8343269E65EE7BF319967676E7BE06766C2F07D77EE + C9C02808C8EDFE118E45A4B3BB07EAD3CB8AF33725E84612EC6FDAB82078EFC0 + 5BAC58BE0C2DED5D2E8992BE5017B8DAF5CDC682058DF5AB30ADCFB82442E084 + 715682DABD142FD5124EDD90DB29D364B83B98C2E60DAB51281A2E894B40705E + FA89EC95956838D881C4E9964809C14D93E3FED028E29B1A509A2BBB24354115 + CEAC19BF19134F504D9084330ED39AB225A0F347C98C28D91B21889D9CA9C12B + A357AE8D1FB8DAD1EA1338E1E6FF29338657EA47CC1667A1EBBAB8EF7A6F5F45 + D078F493D896A078BB980FEE3DEF4FBEB305EB0EA9625BA2CA968533AB93C72F + 52B660EDBE24B43BDB105676F335260DA7FB9E0C8FDA8235BBEFE1FD83BD882A + FB58624E0A4E8B78F63A630BEA772690EB3B8EA8B28F5C32A4E074FD7C246B0B + 68955B6275882AFBF0C5BF52709AE1D478455005C8947DA0ABE01210B4FAA209 + 11E735F19BB4E617C894BDE7FCEF40B8F7C9526339BF40B6EC5DE7F450381D33 + DA845F205B76D3D9E95038CD586ED22F70961D04FFA575E2E1401E3BDAA742E1 + B47DDAC407B7C05BB6176E1A53F833794B08B69FF91E0AA7840AA86C2F9C1979 + 143E0F0941BCED6B283C5240657BE1CC3A16F35921D8DAFA25141E29A0B2F574 + 5BE00B478225F141C8645E81F32F19949E6F27A4041485F3457DA148E71FF2CE + 98E361E521AA0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001CC4944415478DA + 63FCFFFF3F032D0123B2058B361EA79A6D71FE968C582D004A906CD8DFBFFF80 + F83F9806010BDF6C868B7B66E1B6C0752FAA25BB9D8FE3341C59ED5A8B030CF3 + 56EF6198BF64237E0B4871B9C7016B0659651686F9DB8E30BC8BFEC6B070FD3E + C21660F301BA18086CB53DC2E07DD88661CFCD1360FEEB882F0C4B361DA0CC07 + FFFF01C31A88FF005D0F62FFFE070CFF3FFFC0BEF9F3EF2FC38A2D8749F70131 + 00E48B4741EF18D6EE38469C05306F9302EEFBBF61D8B0FB047116E04B39D800 + 48CF4CD5CD0C9BF69D24DE025C4105B31C260F533B4D7913C3D603A768E78389 + 0A1B18761D3E433B1FF4C9AC63D87BFC1CED7CD02DB986E1C0A90BF82D88F631 + 07E74E727CD02EBE8AE1C8994BF82D88F03403E74E727CD024BC9CE1E485ABF8 + 2D08753361F03B66479605F5024B19CE5CBE8EDF8200172386E0130E780D0359 + BEE4CF5C383F8625196C410DEF6286F3D76EE2B7C0D7C1005EAE40CAF97FE0B2 + 072C062CF373EFFB63C40F8C5FC9BD88E1D28D5BF82DF0B2D5C36938882E7814 + 8835F888B6C0CD5A1BA7E1A012B4E46930CEA023CA0247730DB061FFFE428AE5 + DF7F11C5F1BFFF508BFEFD437104322068819D891AB844A404E0B5A077F27C8A + 0C8701980500F0E629EF34B079A30000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F330000026A4944415478DA63FCFFFF3F032D + 0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80F83F980601EBC0 + 7C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3C275FB19E62DDD + 84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD97890B005D87C802E + 06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9E0FF3F605803F1 + 1FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F18E70860DBB4E10 + 6701CCDBA480075B431936EF3D459C05F8520E3600D2B3A8508F61EB81D3C45B + 802BA86096C3E4616AE7E7EB32EC387486721F4C2C7064F8CA7E8E41F8D527BC + BE7AF2D589341FC02C6D2BE76788F0FBC520C1F883E1D74F0608FEC1C0F01346 + 03F1C9134458800DCC4C6464884D85B0F119CE2FC1C070F52E160B223C4DC1B9 + 139B0F62DE3B31B008E28FEC3FEF1186638D8350371370EEC4E60364D783C0A7 + F71017C330C80767CE4082C6CE701FC3A1F3587C10E46CC4E0567D04A70520CD + 8400C87010C06A819FA3018357ED31AC1A414184EC0310F8FB17182CBF19187E + FF02FAE23B03C38D1B0839AC1678DBE9C1CB155819032A7B40F49E7A51140B40 + 86FE061AFEE71784BD660D07839AC60F0636163C167858EB60351C54A1EC6F12 + C3880390C1201F80F0966D1C0C52F2100BD85819184E5CC662818BA51656C341 + F4A15609140BDEBE44180EB268E71E0E061169880557EE383134AFDACB886181 + BDA93AD8B07F7F11C532CCC2E39DD2700B4006BE7B85301C1454FB0E7230F089 + FF6078F0046238D6646A63A40A2E11B101D67D9E600B664EE5C09982DEFDB662 + D8FA491D7759D43B65214ECDF6BCFB187818A5F1265190E12000B300003BBC36 + ACFF3E80210000000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001BE4944415478DA + 63FCFFFF3F032D0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80 + F83F980601EBC07C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3 + C275FB19E62DDD84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD978 + 90B005D87C802E06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9 + E0FF3F605803F11FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F1 + 8E70860DBB4E106701CCDBA480075B431936EF3D459C05F8520E3600D2B3A850 + 8F61EB81D3C45B802BA86096C3E4616AE7E7EB32EC387486763E989DA3CDB0E7 + E839DAF96046A626C3FE131768E783A969EA0C874E5FC26F4184A729387792E3 + 838929AA0CC7CE5EC16F41A89B09387792E3839E042586D317AFE3B720C8D988 + C1ADFA08591674C62A309CBB7213BF057E8E060C5EB5C7F01A06B27CC1913F70 + 7E820D0BD882B62839868BD76FE3B7C0DB4E0F5EAEC0CA1850D9032BF393275F + C1881F18BF394296E1CACD3BF82DF0B0D6C16938884E9B760D6BF0116D818BA5 + 164EC3411667CDB88133E888B2C0DE541D6CD8BFBF88621966E1BFFFFFB1061F + 322068818D912AB844A404E0B5A077CA428A0C8701980500619929EF09CFCE42 + 0000000049454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F330000028C4944415478DADD945F4853511C + C7BF77646942ABE9A061F6BF8690D443427B88A2321123166EDAA21E122308EA + B184407DC887E8A932F0611A3542325F0A0729B432A849CA68CA1CA2B86C0C4B + 43A428EFEEEE9FCE39E8DA9FBB7F0F7BE9073F7EE7DE7BCEF7737EBFF33B9753 + 1405F934EEFF00F43A47F34689026C7555392D1425059224232C882C8AB2CC22 + 1B131722121AAFB6C6030E5BDE6514964540126444C2448CB8F0538448C78204 + 99BC672E8A687FA045CFB357C980B1FEE371A033B53EB4365D4B06911D53AFAE + 71603A50C284BF85CEA174CB73709284B647BAD4006A741C2B3EBEFC05756573 + 88AC7C4541D17638433B602C324010049C35F7C33FA1C5C2623D9B5B5AEC407B + 973E7D066BE2E5C5C308FE3EC622151F5A3A8AD3BAB704B21B538B5530EA47E1 + 0D56A2DEFA12C3AE26E8373E25352419D80DEA80C4D21834BD98976DD8AA7130 + F11A9D1B834B2654970C6166D986FDDA018C7F3F8586F303981C59C7C4E941B5 + F594670788CF60161C0AA18067194C840EA2B2CC8B4FD3FB70E1D220263F70AB + 5D403278B2333D2016229105BE5F417606023F85F585467606DBE44D08F37C92 + 38B59480D82EA2ED6736FBD172B1994164D6EB52D4E973A3CD19155F8C5C815E + D3951E10BD48B4B77985C50D073CF86C79AF7A2FF4B596B89DAF992A20F1968A + AB37D377BF02FA9356EC3D72173323B7D89C85D931708100BA5DF3B0DF3E9104 + EE0C5D4F06743A5EABEE72F31F0FF6FCB033B1446BE9B89112EC29B8FC0F70EF + E1E38CBF09CFCD39D5F7CD1DAEE4B9449C1A03701C9751FCE39D5D4A2E6522D0 + 866E17FF22178095843EB532D9DFACA8420980CB0A40C54DA68A3EB56F6EB75F + F56C881D22006FB680B4E5A13B4DB536EB0C52958718AB755A403E2DEF80BF27 + 2521AB920B52530000000049454E44AE426082} + Name = 'PngImage27' + Background = clWindow + end> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [7] + end + inherited dsDataTable: TDADataSource [9] + end + inherited StatusBarImages: TPngImageList [10] + end + inherited GridPopupMenu: TPopupMenu + object Documentosrelacionados1: TMenuItem [9] + Caption = 'Documentos relacionados' + ImageIndex = 24 + object Presupuestos1: TMenuItem + Action = actDocumentosPresupuestos + end + object Albaranes1: TMenuItem + Action = actDocumentosAlbaranes + end + object Facturas1: TMenuItem + Action = actDocumentosFacturas + end + object Recibos1: TMenuItem + Action = actDocumentosRecibos + end + end + end + object JsListaContactosNoEliminados: TJSDialog + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = + 'Los siguientes clientes no han podido ser eliminados, porque tie' + + 'nen documentos asociados' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + ButtonBar.Buttons = [cbOK] + ButtonBar.Cancel = cbOK + ButtonBar.UseCancel = False + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 184 + Top = 112 + end + object JsPrevisualizarDialog: TJSDialog + Content.Strings = ( + 'Elija una opci'#243'n:') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Previsualizar...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Previsualizar las etiquetas de los clientes seleccionados' + Value = 100 + Default = True + end + item + Caption = 'Previsualizar la lista de clientes actual' + Value = 200 + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 550 + Left = 296 + Top = 144 + end + object JsImprimirDialog: TJSDialog + Content.Strings = ( + 'Elija una opci'#243'n:') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Imprimir...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Imprimir las etiquetas de los clientes seleccionados' + Value = 100 + Default = True + end + item + Caption = 'Imprimir la lista de clientes actual' + Value = 200 + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 550 + Left = 328 + Top = 144 + end +end diff --git a/Source/Modulos/Contactos/Views/uEditorClientes.pas b/Source/Modulos/Contactos/Views/uEditorClientes.pas new file mode 100644 index 0000000..732f28c --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorClientes.pas @@ -0,0 +1,277 @@ +unit uEditorClientes; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + uEditorContactos, Menus, ImgList, PngImageList, StdActns, + ActnList, TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, + JvExControls, JvComponent, JvNavigationPane, DB, uDADataTable, + JvFormAutoSize, ComCtrls, uDAScriptingProvider, uDACDSDataTable, StdCtrls, + JvAppStorage, JvAppRegistryStorage, JvFormPlacement, uCustomView, + uViewBase, uViewBarraSeleccion, ExtCtrls, pngimage, JvComponentBase, + + uIEditorClientes, uViewGridBase, uViewGrid, uViewContactos, uViewClientes, + TBXStatusBars, JvExComCtrls, JvStatusBar, JSDialog, uDAInterfaces; + +type + TfEditorClientes = class(TfEditorContactos, IEditorClientes) + JsPrevisualizarDialog: TJSDialog; + JsImprimirDialog: TJSDialog; + actGruposCliente: TAction; + JsListaContactosNoEliminados: TJSDialog; + frViewClientes1: TfrViewClientes; + actDocumentosPresupuestos: TAction; + actDocumentosAlbaranes: TAction; + actDocumentosFacturas: TAction; + TBXItem381: TTBXItem; + TBXSeparatorItem171: TTBXSeparatorItem; + TBXSubmenuItem2: TTBXSubmenuItem; + TBXItem38: TTBXItem; + TBXItem39: TTBXItem; + TBXItem40: TTBXItem; + Documentosrelacionados1: TMenuItem; + Presupuestos1: TMenuItem; + Albaranes1: TMenuItem; + Facturas1: TMenuItem; + TBXSubmenuItem3: TTBXSubmenuItem; + TBXItem41: TTBXItem; + TBXItem42: TTBXItem; + TBXItem43: TTBXItem; + actDocumentosRecibos: TAction; + Recibos1: TMenuItem; + TBXItem44: TTBXItem; + TBXItem45: TTBXItem; + procedure actGruposClienteExecute(Sender: TObject); + procedure actDocumentosFacturasUpdate(Sender: TObject); + procedure actDocumentosPresupuestosExecute(Sender: TObject); + procedure actDocumentosFacturasExecute(Sender: TObject); + procedure actDocumentosAlbaranesExecute(Sender: TObject); + procedure actDocumentosRecibosExecute(Sender: TObject); + protected + procedure ImprimirInterno; override; + procedure PrevisualizarInterno; override; + procedure EliminarInterno; override; + public + constructor Create(AOwner: TComponent); override; + procedure PonerTitulos(const ATitulo: string = ''); override; + end; + +implementation + +uses + uGridStatusUtils, uDataModuleContactos, uDMBase, uEditorGridBase, uBizContactos, + uDBSelectionListUtils, uDataModuleUsuarios, uDialogUtils, uFactuGES_App, + uGruposClienteController, uBizGruposCliente, uClientesController; + +{$R *.dfm} + + +{ +******************************* TfEditorClientes ******************************* +} +procedure TfEditorClientes.actDocumentosAlbaranesExecute(Sender: TObject); +begin + inherited; + (FController as IClientesController).VerAlbaranesDeCliente(IBizCliente(FContactos)); +end; + +procedure TfEditorClientes.actDocumentosFacturasExecute(Sender: TObject); +begin + inherited; + (FController as IClientesController).VerFacturasDeCliente(IBizCliente(FContactos)); +end; + +procedure TfEditorClientes.actDocumentosFacturasUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos + and not ViewGrid.IsEmpty + and ViewGrid.EsSeleccionCeldaDatos +end; + +procedure TfEditorClientes.actDocumentosPresupuestosExecute(Sender: TObject); +begin + inherited; + (FController as IClientesController).VerPresupuestosDeCliente(IBizCliente(FContactos)); +end; + +procedure TfEditorClientes.actDocumentosRecibosExecute(Sender: TObject); +begin + inherited; + (FController as IClientesController).VerRecibosDeCliente(IBizCliente(FContactos)); +end; + +procedure TfEditorClientes.actGruposClienteExecute(Sender: TObject); +var + AGruposController : IGruposClienteController; + AGrupos : IBizGrupoCliente; +begin + AGruposController := TGruposClienteController.Create; + try + AGrupos := (AGruposController.BuscarTodos as IBizGrupoCliente); + AGruposController.VerTodos(AGrupos); + finally + AGrupos := NIL; + AGruposController := NIL; + end; +end; + +constructor TfEditorClientes.Create(AOwner: TComponent); +begin + inherited; + ViewGrid := frViewClientes1; +end; + +procedure TfEditorClientes.EliminarInterno; +var + AContactos: IBizContacto; + AllItems: Boolean; +begin + AContactos := Nil; + AllItems := False; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + if AllItems then + begin + if (Application.MessageBox('¿Desea borrar los clientes seleccionados?', 'Atención', MB_YESNO) = IDYES) then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Contactos as ISeleccionable).SelectedRecords); + AContactos := (Controller as IClientesController).ExtraerSeleccionados(Contactos) as IBizContacto; + end + end + else begin + if (Application.MessageBox('¿Desea borrar el cliente seleccionado?', 'Atención', MB_YESNO) = IDYES) then + AContactos := Contactos; + end; + + if Assigned(AContactos) then + begin + (FController as IClientesController).Eliminar(AContactos, AllItems); + if AllItems then + begin + if (AContactos.DataTable.RecordCount > 0) then + begin + with AContactos.DataTable do + begin + First; + while not EOF do + begin + JsListaContactosNoEliminados.Content.Add('Cliente: ' + AContactos.NOMBRE); + Next; + end; + end; + JsListaContactosNoEliminados.Execute; + end; + actRefrescar.Execute; + end; + end; + + ViewGrid.GotoFirst; +end; + +procedure TfEditorClientes.ImprimirInterno; +var + Respuesta : Integer; + AClientes: IBizCliente; + AllItems: Boolean; +begin + AClientes := Nil; + AllItems := False; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + //Si esta agrupado solo podré imprimir la lista de elementos visibles + if not ViewGrid.esSeleccionCeldaDatos then + inherited + else + begin + Respuesta := JsImprimirDialog.Execute; + if Respuesta <> IDCANCEL then + begin + case JsPrevisualizarDialog.CustomButtonResult of + 200 : begin // Lista de elementos visibles + inherited; + end; + 300 : begin // Lista de elementos etiquetados con felicitación + AllItems := True; + AClientes := (Controller as IClientesController).BuscarEtiquetadosFelicitacion; + if Assigned(AClientes) then + (FController as IClientesController).Print(AClientes, AllItems); + end; + 100 : begin // Elemento Seleccionado + if AllItems then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Contactos as ISeleccionable).SelectedRecords); + AClientes := (Controller as IClientesController).ExtraerSeleccionados(Contactos) as IBizCliente; + end + else + AClientes := (Contactos as IBizCliente); + + if Assigned(AClientes) then + (FController as IClientesController).Print(AClientes, AllItems); + end; + end; + end; + end; +end; + +procedure TfEditorClientes.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := 'Lista de clientes - ' + AppFactuGES.EmpresaActiva.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorClientes.PrevisualizarInterno; +var + Respuesta : Integer; + AClientes: IBizCliente; + AllItems: Boolean; +begin + AClientes := Nil; + AllItems := False; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + //Si esta agrupado solo podré imprimir la lista de elementos visibles + if not ViewGrid.esSeleccionCeldaDatos then + inherited + else + begin + Respuesta := JsPrevisualizarDialog.Execute; + if Respuesta <> IDCANCEL then + begin + case JsPrevisualizarDialog.CustomButtonResult of + 200 : begin // Lista de elementos visibles + inherited; + end; + 300 : begin // Lista de elementos etiquetados con felicitación + AllItems := True; + AClientes := (Controller as IClientesController).BuscarEtiquetadosFelicitacion; + if Assigned(AClientes) then + (FController as IClientesController).Preview(AClientes, AllItems); + end; + 100 : begin // Elemento Seleccionado + if AllItems then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Contactos as ISeleccionable).SelectedRecords); + AClientes := (Controller as IClientesController).ExtraerSeleccionados(Contactos) as IBizCliente; + end + else + AClientes := (Contactos as IBizCliente); + + if Assigned(AClientes) then + (FController as IClientesController).Preview(AClientes, AllItems); + end; + end; + end; + end; +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uEditorContacto.dcu b/Source/Modulos/Contactos/Views/uEditorContacto.dcu new file mode 100644 index 0000000..ba98648 Binary files /dev/null and b/Source/Modulos/Contactos/Views/uEditorContacto.dcu differ diff --git a/Source/Modulos/Contactos/Views/uEditorContacto.dfm b/Source/Modulos/Contactos/Views/uEditorContacto.dfm new file mode 100644 index 0000000..c8ab0b2 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorContacto.dfm @@ -0,0 +1,215 @@ +inherited fEditorContacto: TfEditorContacto + Left = 575 + Top = 291 + HorzScrollBar.Visible = False + VertScrollBar.Visible = False + Caption = 'Ficha de contacto' + ClientWidth = 632 + Scaled = False + ExplicitWidth = 640 + ExplicitHeight = 240 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 632 + Caption = 'Contacto' + ExplicitWidth = 632 + inherited Image1: TImage + Left = 499 + ExplicitLeft = 607 + end + inherited lblDesbloquear: TcxLabel + Left = 534 + ExplicitLeft = 534 + AnchorX = 579 + AnchorY = 14 + end + end + inherited TBXDock: TTBXDock + Width = 632 + ExplicitWidth = 632 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 488 + inherited TBXItem2: TTBXItem + Visible = False + end + inherited TBXItem5: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + DockPos = 0 + ExplicitWidth = 632 + inherited TBXSubmenuItem4: TTBXSubmenuItem + inherited TBXItem8: TTBXItem + Visible = False + end + inherited TBXSeparatorItem5: TTBXSeparatorItem + Visible = False + end + inherited TBXItem10: TTBXItem + Visible = False + end + inherited TBXItem21: TTBXItem + Visible = False + end + inherited TBXItem22: TTBXItem + Visible = False + end + inherited TBXItem9: TTBXItem + Visible = False + end + end + inherited TBXSubmenuItem1: TTBXSubmenuItem + inherited TBXItem32: TTBXItem + Visible = False + end + inherited TBXItem31: TTBXItem + Visible = False + end + inherited TBXSeparatorItem13: TTBXSeparatorItem + Visible = False + end + end + end + end + inherited pgPaginas: TPageControl + Width = 626 + ActivePage = pagDatosBancarios + ExplicitWidth = 626 + inherited pagGeneral: TTabSheet + ExplicitLeft = 4 + ExplicitTop = 24 + ExplicitWidth = 618 + ExplicitHeight = 332 + end + object pagDatosBancarios: TTabSheet + Caption = 'Datos bancarios' + ImageIndex = 1 + inline frViewListaDatosBancarios: TfrViewListaDatosBancarios + Left = 0 + Top = 0 + Width = 618 + Height = 332 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 618 + ExplicitHeight = 332 + inherited cxGrid: TcxGrid + Width = 618 + Height = 307 + ExplicitWidth = 618 + ExplicitHeight = 307 + end + inherited ToolBar1: TToolBar + Width = 618 + ExplicitWidth = 618 + inherited ToolButton1: TToolButton + ExplicitWidth = 113 + end + inherited ToolButton4: TToolButton + ExplicitWidth = 113 + end + inherited ToolButton2: TToolButton + ExplicitWidth = 113 + end + inherited ToolButton7: TToolButton + ExplicitWidth = 113 + end + end + end + end + object pagPersonal: TTabSheet + Caption = 'Personal' + ImageIndex = 2 + inline frViewPersonalContacto1: TfrViewPersonalContacto + Left = 0 + Top = 0 + Width = 618 + Height = 332 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 618 + ExplicitHeight = 332 + inherited cxGrid: TcxGrid + Width = 618 + Height = 307 + ExplicitWidth = 618 + ExplicitHeight = 307 + end + inherited ToolBar1: TToolBar + Width = 618 + ExplicitWidth = 618 + inherited ToolButton1: TToolButton + ExplicitWidth = 113 + end + inherited ToolButton4: TToolButton + ExplicitWidth = 113 + end + inherited ToolButton2: TToolButton + ExplicitWidth = 113 + end + inherited ToolButton7: TToolButton + ExplicitWidth = 113 + end + end + end + end + end + inherited StatusBar: TJvStatusBar + Width = 632 + Panels = < + item + Width = 200 + end> + ExplicitWidth = 632 + end + inherited EditorActionList: TActionList + Top = 128 + end + inherited dsDataTable: TDADataSource [5] + Left = 168 + Top = 120 + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [6] + Top = 144 + end + inherited StatusBarImages: TPngImageList [7] + end + inherited JvFormStorage: TJvFormStorage [8] + Top = 144 + end + inherited LargeImages: TPngImageList [9] + Top = 112 + end + inherited SmallImages: TPngImageList [10] + Top = 112 + end + object dxLayoutLookAndFeel: TdxLayoutLookAndFeelList + Left = 320 + Top = 248 + object dxLayoutOfficeLookAndFeel: TdxLayoutOfficeLookAndFeel + GroupOptions.CaptionOptions.Font.Charset = DEFAULT_CHARSET + GroupOptions.CaptionOptions.Font.Color = clWindowText + GroupOptions.CaptionOptions.Font.Height = -11 + GroupOptions.CaptionOptions.Font.Name = 'Tahoma' + GroupOptions.CaptionOptions.Font.Style = [fsBold] + GroupOptions.CaptionOptions.TextColor = clHighlight + GroupOptions.CaptionOptions.UseDefaultFont = False + end + end +end diff --git a/Source/Modulos/Contactos/Views/uEditorContacto.pas b/Source/Modulos/Contactos/Views/uEditorContacto.pas new file mode 100644 index 0000000..f30a956 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorContacto.pas @@ -0,0 +1,194 @@ +unit uEditorContacto; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorDBItem, ToolWin, ComCtrls, JvExControls, JvComponent, + uViewContacto, uBizContactos, JvNavigationPane, ActnList, + uEditorBase, StdActns, TB2Dock, TB2Toolbar, TBX, ImgList, PngImageList, + TB2Item, uEditorItem, DB, uDADataTable, uEditorDBBase, JvFormAutoSize, + uDAScriptingProvider, uDACDSDataTable, StdCtrls, pngimage, ExtCtrls, + TBXDkPanels, JvButton, AppEvnts, uCustomView, uViewBase, + JvAppStorage, JvAppRegistryStorage, JvFormPlacement, JvComponentBase, + + uIEditorContacto, uContactosController, TBXStatusBars, JvExComCtrls, + JvStatusBar, uViewContactoDatosBancarios, dxLayoutLookAndFeels, JvLabel, + uDAInterfaces, uViewDetallesGenerico, uViewContactoListaDatosBancarios, + uViewPersonalContacto, cxControls, cxContainer, cxEdit, cxLabel; + +type + TfEditorContacto = class(TfEditorDBItem, IEditorContacto) + pagDatosBancarios: TTabSheet; + dxLayoutLookAndFeel: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel: TdxLayoutOfficeLookAndFeel; + frViewListaDatosBancarios: TfrViewListaDatosBancarios; + pagPersonal: TTabSheet; + frViewPersonalContacto1: TfrViewPersonalContacto; + procedure FormShow(Sender: TObject); + procedure dsDataTableDataChange(Sender: TObject; Field: TField); + protected + FController : IContactosController; + FContacto: IBizContacto; + FViewContacto : IViewContacto; + function GetContacto: IBizContacto; virtual; + procedure SetContacto(const Value: IBizContacto); virtual; + + function GetViewContacto: IViewContacto; + procedure SetViewContacto(const Value: IViewContacto); + procedure GuardarInterno; override; + procedure EliminarInterno; override; + property ViewContacto: IViewContacto read GetViewContacto write + SetViewContacto; + function GetController : IContactosController; virtual; + procedure SetController (const Value : IContactosController); virtual; + public + procedure PonerTitulos(const ATitulo: string = ''); override; + constructor Create(AOwner: TComponent); override; + property Controller : IContactosController read GetController + write SetController; + property Contacto: IBizContacto read GetContacto write SetContacto; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + uFactuGES_App, uCustomEditor, uDataModuleContactos, + uDMBase, uDataModuleUsuarios; + +{ +******************************* TfEditorContacto ******************************* +} +function TfEditorContacto.GetContacto: IBizContacto; +begin + Result := FContacto; +end; + +function TfEditorContacto.GetController: IContactosController; +begin + Result := FController; +end; + +function TfEditorContacto.GetViewContacto: IViewContacto; +begin + Result := FViewContacto; +end; + +procedure TfEditorContacto.GuardarInterno; +begin + inherited; + FController.Guardar(FContacto); + Modified := False; +end; + +procedure TfEditorContacto.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := ATitulo; + + if Assigned(Contacto) then + begin + if (FTitulo = '') then + begin + if Contacto.EsNuevo then + FTitulo := 'Nuevo contacto' + else + FTitulo := 'Contacto'; + end; + + if Length(Contacto.NOMBRE) > 0 then + FTitulo := FTitulo + ' - ' + Contacto.NOMBRE; + end; + + inherited PonerTitulos(FTitulo); + + Self.Caption := FTitulo + ' (' + AppFactuGES.EmpresaActiva.NOMBRE + ')'; +end; + +procedure TfEditorContacto.SetContacto(const Value: IBizContacto); +begin + FContacto := Value; + dsDataTable.DataTable := FContacto.DataTable; + + if Assigned(FViewContacto) and Assigned(Contacto) then + begin + FViewContacto.Contacto := Contacto; + frViewListaDatosBancarios.dsDetalles.DataTable := FContacto.DatosBancarios.DataTable; + + if Assigned(FContacto.Personal) then + frViewPersonalContacto1.dsDetalles.DataTable := FContacto.Personal.DataTable + else + frViewPersonalContacto1.dsDetalles.DataTable := NIL; + end + else begin + frViewListaDatosBancarios.dsDetalles.DataTable := NIL; + frViewPersonalContacto1.dsDetalles.DataTable := NIL; + end; +end; + +procedure TfEditorContacto.SetController(const Value: IContactosController); +begin + FController := Value; + + if Assigned(FViewContacto) then + FViewContacto.Controller := FController; +end; + +procedure TfEditorContacto.SetViewContacto(const Value: IViewContacto); +begin + FViewContacto := Value; + + if Assigned(FViewContacto) and Assigned(Contacto) then + FViewContacto.Contacto := Contacto; +end; + +procedure TfEditorContacto.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(FViewContacto) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Contacto) then + raise Exception.Create('No hay ningn contacto asignado'); + + Contacto.DataTable.Active := True; +// FViewContacto.ShowEmbedded(pagGeneral); +// FViewContacto.SetFocus; +end; + +constructor TfEditorContacto.Create(AOwner: TComponent); +begin + inherited; + pgPaginas.ActivePageIndex := 0; +end; + +destructor TfEditorContacto.Destroy; +begin + FViewContacto := NIL; + FContacto := NIL; + inherited; +end; + +procedure TfEditorContacto.dsDataTableDataChange(Sender: TObject; + Field: TField); +begin + inherited; + if Assigned(Contacto) and (not (Contacto.DataTable.Fetching) or + not (Contacto.DataTable.Opening) or not (Contacto.DataTable.Closing)) then + PonerTitulos; +end; + +procedure TfEditorContacto.EliminarInterno; +begin + inherited; + if not FController.Eliminar(FContacto) then + actRefrescar.Execute; +end; + +end. + diff --git a/Source/Modulos/Contactos/Views/uEditorContactos.dcu b/Source/Modulos/Contactos/Views/uEditorContactos.dcu new file mode 100644 index 0000000..2746cad Binary files /dev/null and b/Source/Modulos/Contactos/Views/uEditorContactos.dcu differ diff --git a/Source/Modulos/Contactos/Views/uEditorContactos.dfm b/Source/Modulos/Contactos/Views/uEditorContactos.dfm new file mode 100644 index 0000000..79c1d17 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorContactos.dfm @@ -0,0 +1,40 @@ +inherited fEditorContactos: TfEditorContactos + Left = 285 + Top = 448 + Caption = 'Lista de contactos' + ExplicitWidth = 320 + ExplicitHeight = 240 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Caption = 'Lista de contactos' + end + inherited TBXDock: TTBXDock + inherited tbxFiltro: TTBXToolbar + ExplicitWidth = 269 + inherited tbxEditFiltro: TTBXEditItem + EditOptions = [tboUseEditWhenVertical] + end + inherited TBXItem37: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + object TBXSubmenuItemAcciones: TTBXSubmenuItem [4] + Caption = 'A&cciones' + end + end + inherited TBXTMain2: TTBXToolbar + Left = 318 + ExplicitLeft = 318 + end + end + inherited EditorActionList: TActionList + inherited actPrevisualizar: TAction + Enabled = False + end + inherited actImprimir: TAction + Enabled = False + end + end +end diff --git a/Source/Modulos/Contactos/Views/uEditorContactos.pas b/Source/Modulos/Contactos/Views/uEditorContactos.pas new file mode 100644 index 0000000..3b563f2 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorContactos.pas @@ -0,0 +1,169 @@ +unit uEditorContactos; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorBase, uEditorGridBase, ToolWin, ComCtrls, JvExControls, JvComponent, + JvNavigationPane, uViewContactos, uBizContactos, ActnList, DBActns, uViewGridBase, + Menus, uDMBase, ImgList, PngImageList, TB2Dock, TB2Toolbar, TBX, + TB2Item, StdActns, TB2ExtItems, TBXExtItems, TB2MRU, DB, uDADataTable, + JvFormAutoSize, uDAScriptingProvider, uDACDSDataTable, JvAppStorage, + JvAppRegistryStorage, JvFormPlacement, ExtCtrls, uCustomView, uViewBase, + uViewBarraSeleccion, JvComponentBase, uContactosController, + + uIEditorContactos, pngimage, TBXStatusBars, JvExComCtrls, JvStatusBar, + uDAInterfaces; + +type + TfEditorContactos = class(TfEditorGridBase, IEditorContactos) + TBXSubmenuItemAcciones: TTBXSubmenuItem; + procedure FormShow(Sender: TObject); + protected + FContactos: IBizContacto; + FController : IContactosController; + + function GetContactos: IBizContacto; virtual; + procedure SetContactos(const Value: IBizContacto); virtual; + procedure SetViewGrid(const Value: IViewGridBase); override; + function GetController : IContactosController; virtual; + procedure SetController (const Value : IContactosController); virtual; + procedure NuevoInterno; override; + procedure ModificarInterno; override; + procedure EliminarInterno; override; + procedure DuplicarInterno; override; + procedure ImprimirInterno; override; + procedure PrevisualizarInterno; override; + + public + procedure PonerTitulos(const ATitulo: string = ''); override; + property Controller : IContactosController read GetController + write SetController; + property Contactos: IBizContacto read GetContactos write SetContactos; + destructor Destroy; override; + end; + +implementation + +uses + uCustomEditor, uDataModuleContactos, uFactuGES_App, + uEditorDBBase, cxGrid, cxGridCustomTableView, + uDBSelectionListUtils; + +{$R *.dfm} + +{ +****************************** TfEditorContactos ******************************* +} +procedure TfEditorContactos.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Contactos) then + raise Exception.Create('No hay ningn contacto asignado'); + + Contactos.DataTable.Active := True; + ViewGrid.GotoFirst; +end; + +function TfEditorContactos.GetContactos: IBizContacto; +begin + Result := FContactos; +end; + +function TfEditorContactos.GetController: IContactosController; +begin + Result := FController; +end; + +procedure TfEditorContactos.ImprimirInterno; +begin + inherited; +end; + +procedure TfEditorContactos.ModificarInterno; +begin + inherited; + FController.Ver(Contactos); +end; + +procedure TfEditorContactos.NuevoInterno; +begin + inherited; + FController.Anadir(Contactos); + FController.Ver(Contactos); +end; + +procedure TfEditorContactos.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := ATitulo; + if FTitulo = '' then + FTitulo := 'Lista de contactos - ' + AppFactuGES.EmpresaActiva.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorContactos.PrevisualizarInterno; +begin + inherited; +end; + +procedure TfEditorContactos.SetContactos(const Value: IBizContacto); +begin + FContactos := Value; + + if Assigned(FContactos) and Assigned(FContactos.DataTable) then + begin + dsDataTable.DataTable := FContactos.DataTable; + if Assigned(ViewGrid) then + (ViewGrid as IViewContactos).Contactos := FContactos; + end; +end; + +procedure TfEditorContactos.SetController(const Value: IContactosController); +begin + FController := Value; +end; + +procedure TfEditorContactos.SetViewGrid(const Value: IViewGridBase); +begin + inherited; + if Assigned(ViewGrid) and Assigned(Contactos) then + (ViewGrid as IViewContactos).Contactos := Contactos; +end; + +destructor TfEditorContactos.Destroy; +begin + FContactos := NIL; + FController := NIL; + inherited; +end; + +procedure TfEditorContactos.DuplicarInterno; +var + AContacto : IBizContacto; +begin + inherited; + AContacto := FController.Duplicar(Contactos); + try + FController.Ver(AContacto); + finally + actRefrescar.Execute; + end; +end; + +procedure TfEditorContactos.EliminarInterno; +begin + inherited; + //Para que en el caso de no poderse realizar la operacin se refresquen + //los datos y no nos permita eliminar un registro a la segunda + if not FController.Eliminar(Contactos) then + actRefrescar.Execute; +end; + +end. + diff --git a/Source/Modulos/Contactos/Views/uEditorDatoBancario.dcu b/Source/Modulos/Contactos/Views/uEditorDatoBancario.dcu new file mode 100644 index 0000000..1d19307 Binary files /dev/null and b/Source/Modulos/Contactos/Views/uEditorDatoBancario.dcu differ diff --git a/Source/Modulos/Contactos/Views/uEditorDatoBancario.dfm b/Source/Modulos/Contactos/Views/uEditorDatoBancario.dfm new file mode 100644 index 0000000..c1eacd4 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorDatoBancario.dfm @@ -0,0 +1,136 @@ +object fEditorDatoBancario: TfEditorDatoBancario + Left = 227 + Top = 108 + ActiveControl = eTitular + BorderStyle = bsDialog + Caption = 'Cambiar datos bancarios' + ClientHeight = 193 + ClientWidth = 426 + Color = clBtnFace + ParentFont = True + OldCreateOrder = True + Position = poOwnerFormCenter + DesignSize = ( + 426 + 193) + PixelsPerInch = 96 + TextHeight = 13 + object Bevel1: TBevel + Left = 8 + Top = 8 + Width = 329 + Height = 177 + Anchors = [akLeft, akTop, akRight] + Shape = bsFrame + end + object Label2: TLabel + Left = 20 + Top = 71 + Width = 110 + Height = 13 + AutoSize = False + Caption = 'C'#243'digo de entidad:' + end + object Label3: TLabel + Left = 20 + Top = 98 + Width = 110 + Height = 13 + AutoSize = False + Caption = 'C'#243'digo de sucursal:' + end + object Label4: TLabel + Left = 20 + Top = 125 + Width = 110 + Height = 13 + AutoSize = False + Caption = 'D'#237'gito de control:' + end + object Label5: TLabel + Left = 20 + Top = 27 + Width = 110 + Height = 13 + AutoSize = False + Caption = 'Nombre descriptivo:' + end + object Label6: TLabel + Left = 20 + Top = 152 + Width = 109 + Height = 13 + AutoSize = False + Caption = 'C'#243'digo de cuenta:' + end + object OKBtn: TButton + Left = 343 + Top = 7 + Width = 75 + Height = 25 + Anchors = [akTop, akRight] + Caption = '&Aceptar' + ModalResult = 1 + TabOrder = 0 + end + object CancelBtn: TButton + Left = 343 + Top = 38 + Width = 75 + Height = 25 + Anchors = [akTop, akRight] + Cancel = True + Caption = '&Cancelar' + ModalResult = 2 + TabOrder = 1 + end + object eEntidad: TDBEdit + Left = 136 + Top = 67 + Width = 94 + Height = 21 + DataField = 'ENTIDAD' + DataSource = dsDatosBancarios + TabOrder = 3 + end + object eSucursal: TDBEdit + Left = 136 + Top = 94 + Width = 95 + Height = 21 + DataField = 'SUCURSAL' + DataSource = dsDatosBancarios + TabOrder = 4 + end + object eDC: TDBEdit + Left = 136 + Top = 121 + Width = 41 + Height = 21 + DataField = 'DC' + DataSource = dsDatosBancarios + TabOrder = 5 + end + object eTitular: TDBEdit + Left = 135 + Top = 24 + Width = 191 + Height = 21 + DataField = 'TITULAR' + DataSource = dsDatosBancarios + TabOrder = 2 + end + object eCuenta: TDBEdit + Left = 136 + Top = 148 + Width = 191 + Height = 21 + DataField = 'CUENTA' + DataSource = dsDatosBancarios + TabOrder = 6 + end + object dsDatosBancarios: TDADataSource + Left = 352 + Top = 72 + end +end diff --git a/Source/Modulos/Contactos/Views/uEditorDatoBancario.pas b/Source/Modulos/Contactos/Views/uEditorDatoBancario.pas new file mode 100644 index 0000000..a41df39 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorDatoBancario.pas @@ -0,0 +1,89 @@ +unit uEditorDatoBancario; + +interface + +uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, + Buttons, ExtCtrls, Mask, DBCtrls, DB, uDAInterfaces, uDADataTable, + uBizContactosDatosBancarios, uIEditorDatoBancarioContacto, + uDatosBancariosContactoController; + +type + TfEditorDatoBancario = class(TForm, IEditorDatoBancarioContacto) + OKBtn: TButton; + CancelBtn: TButton; + Bevel1: TBevel; + eEntidad: TDBEdit; + eSucursal: TDBEdit; + eDC: TDBEdit; + Label2: TLabel; + Label3: TLabel; + Label4: TLabel; + dsDatosBancarios: TDADataSource; + Label5: TLabel; + eTitular: TDBEdit; + Label6: TLabel; + eCuenta: TDBEdit; + protected + FController : IDatosBancariosContactoController; + FDatosBanco : IBizContactosDatosBancarios; + + function GetController : IDatosBancariosContactoController; + procedure SetController (const Value : IDatosBancariosContactoController); + function GetDatoBancario: IBizContactosDatosBancarios; + procedure SetDatoBancario(const Value: IBizContactosDatosBancarios); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + property Controller : IDatosBancariosContactoController read GetController + write SetController; + property DatoBancario: IBizContactosDatosBancarios read GetDatoBancario write SetDatoBancario; + end; + +implementation + +uses + Variants; + +{$R *.dfm} + +{ TfEditorDireccion } + +constructor TfEditorDatoBancario.Create(AOwner: TComponent); +begin + inherited; + FController := NIL; +end; + +destructor TfEditorDatoBancario.Destroy; +begin + FController := NIL; + inherited; +end; + +function TfEditorDatoBancario.GetController: IDatosBancariosContactoController; +begin + Result := FController; +end; + +function TfEditorDatoBancario.GetDatoBancario: IBizContactosDatosBancarios; +begin + Result := FDatosBanco; +end; + +procedure TfEditorDatoBancario.SetController( + const Value: IDatosBancariosContactoController); +begin + FController := Value; +end; + +procedure TfEditorDatoBancario.SetDatoBancario( + const Value: IBizContactosDatosBancarios); +begin + FDatosBanco := Value; + if Assigned(FDatosBanco) then + dsDatosBancarios.DataTable := FDatosBanco.DataTable + else + dsDatosBancarios.DataTable := NIL; +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uEditorDireccion.dcu b/Source/Modulos/Contactos/Views/uEditorDireccion.dcu new file mode 100644 index 0000000..3441798 Binary files /dev/null and b/Source/Modulos/Contactos/Views/uEditorDireccion.dcu differ diff --git a/Source/Modulos/Contactos/Views/uEditorDireccion.dfm b/Source/Modulos/Contactos/Views/uEditorDireccion.dfm new file mode 100644 index 0000000..95a926b --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorDireccion.dfm @@ -0,0 +1,306 @@ +object fEditorDireccion: TfEditorDireccion + Left = 227 + Top = 108 + ActiveControl = eNombre + BorderStyle = bsDialog + Caption = 'Cambiar datos de la direcci'#243'n' + ClientHeight = 499 + ClientWidth = 426 + Color = clBtnFace + ParentFont = True + OldCreateOrder = True + Position = poOwnerFormCenter + DesignSize = ( + 426 + 499) + PixelsPerInch = 96 + TextHeight = 13 + object Bevel1: TBevel + Left = 8 + Top = 8 + Width = 329 + Height = 457 + Anchors = [akLeft, akTop, akRight] + Shape = bsFrame + end + object Label1: TLabel + Left = 20 + Top = 67 + Width = 110 + Height = 13 + AutoSize = False + Caption = 'Direcci'#243'n:' + end + object Label2: TLabel + Left = 20 + Top = 131 + Width = 110 + Height = 13 + AutoSize = False + Caption = 'Poblaci'#243'n:' + end + object Label3: TLabel + Left = 20 + Top = 159 + Width = 110 + Height = 13 + AutoSize = False + Caption = 'Provincia:' + end + object Label4: TLabel + Left = 20 + Top = 185 + Width = 110 + Height = 13 + AutoSize = False + Caption = 'C'#243'digo postal:' + end + object Label5: TLabel + Left = 20 + Top = 27 + Width = 110 + Height = 13 + AutoSize = False + Caption = 'Nombre descriptivo:' + end + object Label6: TLabel + Left = 20 + Top = 227 + Width = 109 + Height = 13 + AutoSize = False + Caption = 'Persona de contacto:' + end + object Label7: TLabel + Left = 21 + Top = 251 + Width = 109 + Height = 13 + AutoSize = False + Caption = 'Tel'#233'fono:' + end + object PngSpeedButton3: TPngSpeedButton + Left = 304 + Top = 320 + Width = 23 + Height = 22 + OnClick = PngSpeedButton3Click + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001964944415478DA + 63FCFFFF3F03232323033A58BCE9F87F647EAC9F258622B05E6C068034873B8A + 80D92019C62F8F194C1356339CDF399D91A0014B361FFB1FE6208AA299E1F323 + 306D52F90CC5100C03566E3DFC3FD04E02A2F9F727064690462066006A66FC02 + 64FFFAC8603451096E088A01CB361FFDFF8F819981183077D11A86FDAB7B18E1 + 062CDD7CE27F14573FC3B2EF450CD13E86181ABE7DFFCDF0F5DB6F866FDFFE30 + 1CB97897218AB38FC1B85B98E1DC8E698C600396000D8861696058FAB7116CC0 + 94C5FBB0DAEC6CAECF70EED6238668E67AB057500CF8F0E10383A0A0208A0B90 + 6D06B1BF01D9379E3C67387AFE09C389A37BD15CE06B01B47907434EAC13C3EF + 3F7F19662E3F8862BB898606C3EFDFFF1896EF3DCFA0A5C0CD306FE9265403FC + 9D20362F5CB71F4CE7C47AA01890D5BC164C7716F980D56018606BAC0656B079 + EF2986F82047AC6150DEB785A13CD911AC06C300234D05867DC72F30B8D818E1 + 8DC2494B0E63F702281075D455884A07576EDEC134404A5480E1DAED07441900 + 021806F44D5D44B46618801B400900007F4518F05E90AAF20000000049454E44 + AE426082} + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + end + object Label8: TLabel + Left = 21 + Top = 323 + Width = 109 + Height = 13 + AutoSize = False + Caption = 'Correo electr'#243'nico:' + end + object Label9: TLabel + Left = 21 + Top = 363 + Width = 109 + Height = 13 + AutoSize = False + Caption = 'Notas:' + end + object Label10: TLabel + Left = 20 + Top = 471 + Width = 156 + Height = 13 + AutoSize = False + Caption = 'Coste del env'#237'o a esta direcci'#243'n:' + Visible = False + end + object Label11: TLabel + Left = 21 + Top = 275 + Width = 109 + Height = 13 + AutoSize = False + Caption = 'Movil:' + end + object Label12: TLabel + Left = 21 + Top = 299 + Width = 109 + Height = 13 + AutoSize = False + Caption = 'Fax:' + end + object OKBtn: TButton + Left = 343 + Top = 7 + Width = 75 + Height = 25 + Anchors = [akTop, akRight] + Caption = '&Aceptar' + ModalResult = 1 + TabOrder = 0 + end + object CancelBtn: TButton + Left = 343 + Top = 38 + Width = 75 + Height = 25 + Anchors = [akTop, akRight] + Cancel = True + Caption = '&Cancelar' + ModalResult = 2 + TabOrder = 1 + end + object eDireccion: TDBEdit + Left = 135 + Top = 65 + Width = 191 + Height = 57 + AutoSelect = False + AutoSize = False + DataField = 'CALLE' + DataSource = dsDireccion + TabOrder = 3 + end + object ePoblacion: TDBEdit + Left = 135 + Top = 128 + Width = 191 + Height = 21 + DataField = 'POBLACION' + DataSource = dsDireccion + TabOrder = 4 + end + object eProvincia: TDBEdit + Left = 135 + Top = 156 + Width = 191 + Height = 21 + DataField = 'PROVINCIA' + DataSource = dsDireccion + TabOrder = 5 + end + object eCodigoPostal: TDBEdit + Left = 135 + Top = 182 + Width = 191 + Height = 21 + DataField = 'CODIGO_POSTAL' + DataSource = dsDireccion + TabOrder = 6 + end + object eNombre: TDBEdit + Left = 135 + Top = 24 + Width = 191 + Height = 21 + DataField = 'NOMBRE' + DataSource = dsDireccion + TabOrder = 2 + end + object ePersonaContacto: TDBEdit + Left = 135 + Top = 224 + Width = 191 + Height = 21 + DataField = 'PERSONA_CONTACTO' + DataSource = dsDireccion + TabOrder = 7 + end + object eTelefono: TDBEdit + Left = 136 + Top = 248 + Width = 191 + Height = 21 + DataField = 'TELEFONO' + DataSource = dsDireccion + TabOrder = 8 + end + object eMail: TcxDBHyperLinkEdit + Left = 136 + Top = 320 + DataBinding.DataField = 'EMAIL' + DataBinding.DataSource = dsDireccion + Properties.OnEditValueChanged = eMailPropertiesEditValueChanged + Properties.OnValidate = eMailPropertiesValidate + Properties.Prefix = 'mailto:' + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 9 + Width = 162 + end + object eNotas: TDBMemo + Left = 136 + Top = 360 + Width = 190 + Height = 94 + DataField = 'NOTAS' + DataSource = dsDireccion + ScrollBars = ssVertical + TabOrder = 10 + end + object ePortes: TcxDBCurrencyEdit + Left = 194 + Top = 471 + DataBinding.DataField = 'PORTE' + DataBinding.DataSource = dsDireccion + Properties.UseThousandSeparator = True + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 11 + Visible = False + Width = 143 + end + object eMovil: TDBEdit + Left = 136 + Top = 272 + Width = 191 + Height = 21 + DataField = 'MOVIL' + DataSource = dsDireccion + TabOrder = 12 + end + object eFax: TDBEdit + Left = 136 + Top = 296 + Width = 191 + Height = 21 + DataField = 'FAX' + DataSource = dsDireccion + TabOrder = 13 + end + object dsDireccion: TDADataSource + Left = 352 + Top = 72 + end +end diff --git a/Source/Modulos/Contactos/Views/uEditorDireccion.pas b/Source/Modulos/Contactos/Views/uEditorDireccion.pas new file mode 100644 index 0000000..c46beae --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorDireccion.pas @@ -0,0 +1,129 @@ +unit uEditorDireccion; + +interface + +uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, + Buttons, ExtCtrls, Mask, DBCtrls, DB, uDADataTable, PngSpeedButton, + cxControls, cxContainer, cxEdit, cxTextEdit, cxHyperLinkEdit, cxDBEdit, + uIEditorDireccionContacto, uDireccionesContactoController, uBizDireccionesContacto, + cxCurrencyEdit, uDAInterfaces; + +type + TfEditorDireccion = class(TForm, IEditorEditorDireccion) + OKBtn: TButton; + CancelBtn: TButton; + Bevel1: TBevel; + eDireccion: TDBEdit; + ePoblacion: TDBEdit; + eProvincia: TDBEdit; + eCodigoPostal: TDBEdit; + Label1: TLabel; + Label2: TLabel; + Label3: TLabel; + Label4: TLabel; + dsDireccion: TDADataSource; + Label5: TLabel; + eNombre: TDBEdit; + Label6: TLabel; + ePersonaContacto: TDBEdit; + Label7: TLabel; + eTelefono: TDBEdit; + eMail: TcxDBHyperLinkEdit; + PngSpeedButton3: TPngSpeedButton; + Label8: TLabel; + Label9: TLabel; + eNotas: TDBMemo; + Label10: TLabel; + ePortes: TcxDBCurrencyEdit; + Label11: TLabel; + eMovil: TDBEdit; + Label12: TLabel; + eFax: TDBEdit; + procedure PngSpeedButton3Click(Sender: TObject); + procedure eMailPropertiesEditValueChanged(Sender: TObject); + procedure eMailPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + protected + FController : IDireccionesContactoController; + FDireccion: IBizDireccionesContacto; + + function GetController : IDireccionesContactoController; + procedure SetController (const Value : IDireccionesContactoController); + function GetDireccion: IBizDireccionesContacto; + procedure SetDireccion(const Value: IBizDireccionesContacto); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + property Controller : IDireccionesContactoController read GetController + write SetController; + property Direccion: IBizDireccionesContacto read GetDireccion write SetDireccion; + end; + +implementation + +uses + Variants; + +{$R *.dfm} + +type + THackcxDBHyperLinkEdit = class(TcxDBHyperLinkEdit); + +{ TfEditorDireccion } + +constructor TfEditorDireccion.Create(AOwner: TComponent); +begin + inherited; + FController := NIL; +end; + +destructor TfEditorDireccion.Destroy; +begin + FController := NIL; + inherited; +end; + +procedure TfEditorDireccion.eMailPropertiesEditValueChanged(Sender: TObject); +begin + if not VarIsNull((Sender as TcxDBHyperLinkEdit).EditValue) then + (Sender as TcxDBHyperLinkEdit).EditValue := StringReplace((Sender as TcxDBHyperLinkEdit).EditValue, (Sender as TcxDBHyperLinkEdit).Properties.Prefix, '', []); +end; + +procedure TfEditorDireccion.eMailPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); +begin + if not VarIsNull(DisplayValue) then + DisplayValue := StringReplace(DisplayValue, (Sender as TcxDBHyperLinkEdit).Properties.Prefix, '', []); +end; + +function TfEditorDireccion.GetController: IDireccionesContactoController; +begin + Result := FController; +end; + +function TfEditorDireccion.GetDireccion: IBizDireccionesContacto; +begin + Result := FDireccion; +end; + +procedure TfEditorDireccion.PngSpeedButton3Click(Sender: TObject); +begin + THackcxDBHyperLinkEdit(eMail).DoStart; +end; + +procedure TfEditorDireccion.SetController( + const Value: IDireccionesContactoController); +begin + FController := Value; +end; + +procedure TfEditorDireccion.SetDireccion(const Value: IBizDireccionesContacto); +begin + FDireccion := Value; + if Assigned(FDireccion) then + dsDireccion.DataTable := FDireccion.DataTable + else + dsDireccion.DataTable := NIL; +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uEditorElegirClientes.dcu b/Source/Modulos/Contactos/Views/uEditorElegirClientes.dcu new file mode 100644 index 0000000..5124254 Binary files /dev/null and b/Source/Modulos/Contactos/Views/uEditorElegirClientes.dcu differ diff --git a/Source/Modulos/Contactos/Views/uEditorElegirClientes.dfm b/Source/Modulos/Contactos/Views/uEditorElegirClientes.dfm new file mode 100644 index 0000000..e6ab037 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorElegirClientes.dfm @@ -0,0 +1,703 @@ +inherited fEditorElegirClientes: TfEditorElegirClientes + Caption = 'Seleccionar el cliente' + ClientWidth = 683 + ExplicitWidth = 691 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Top = 113 + Width = 683 + Visible = False + ExplicitLeft = -8 + ExplicitTop = 133 + ExplicitWidth = 683 + inherited Image1: TImage + Left = 656 + ExplicitLeft = 629 + end + end + inherited TBXDock: TTBXDock + Top = 64 + Width = 683 + Height = 49 + ExplicitTop = 64 + ExplicitWidth = 683 + ExplicitHeight = 49 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 378 + inherited TBXItem36: TTBXItem + Action = actAnchoAuto2 + end + end + inherited tbxFiltro: TTBXToolbar + Left = 378 + Top = 23 + DockPos = 96 + DockRow = 1 + ExplicitLeft = 378 + ExplicitTop = 23 + inherited TBXItem34: TTBXItem + Action = actQuitarFiltro2 + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 683 + end + inherited TBXTMain2: TTBXToolbar + Left = 647 + Top = 23 + DockPos = 656 + DockRow = 1 + ExplicitLeft = 647 + ExplicitTop = 23 + end + end + inherited StatusBar: TJvStatusBar + Width = 683 + Visible = False + ExplicitWidth = 683 + end + inline frViewBarraSeleccion1: TfrViewBarraSeleccion [3] + Left = 0 + Top = 464 + Width = 683 + Height = 36 + Align = alBottom + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 464 + ExplicitWidth = 683 + ExplicitHeight = 36 + inherited JvFooter1: TJvFooter + Width = 683 + Height = 36 + ExplicitWidth = 683 + ExplicitHeight = 36 + inherited bSeleccionar: TJvFooterBtn + Left = 471 + Top = 3 + ModalResult = 0 + ExplicitLeft = 471 + ExplicitTop = 3 + end + inherited bCancelar: TJvFooterBtn + Left = 575 + Top = 4 + ExplicitLeft = 575 + ExplicitTop = 4 + end + end + inherited BarraSeleccionActionList: TActionList + inherited actSeleccionar: TAction + OnExecute = frViewBarraSeleccion1actSeleccionarExecute + OnUpdate = frViewBarraSeleccion1actSeleccionarUpdate + end + inherited actCancelar: TAction + OnExecute = frViewBarraSeleccion1actCancelarExecute + end + end + end + object pnlHeader: TPanel [4] + Left = 0 + Top = 0 + Width = 683 + Height = 64 + Align = alTop + BevelOuter = bvNone + Color = clWhite + Padding.Left = 25 + Padding.Top = 8 + Padding.Right = 25 + Padding.Bottom = 8 + ParentBackground = False + TabOrder = 5 + ExplicitTop = 27 + object lblTitle: TLabel + AlignWithMargins = True + Left = 25 + Top = 8 + Width = 633 + Height = 13 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 0 + Margins.Bottom = 8 + Align = alTop + Caption = 'Seleccione el cliente' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + ExplicitWidth = 114 + end + object lblComments: TLabel + AlignWithMargins = True + Left = 50 + Top = 29 + Width = 608 + Height = 24 + Margins.Left = 25 + Margins.Top = 0 + Margins.Right = 0 + Align = alClient + ExplicitWidth = 3 + ExplicitHeight = 13 + end + end + inherited frViewClientes1: TfrViewClientes [5] + Top = 140 + Width = 683 + Height = 324 + Padding.Left = 10 + Padding.Top = 10 + Padding.Right = 10 + Padding.Bottom = 5 + TabOrder = 4 + ExplicitTop = 166 + ExplicitWidth = 683 + ExplicitHeight = 298 + inherited cxGrid: TcxGrid + Left = 10 + Top = 112 + Width = 663 + Height = 181 + ExplicitLeft = 10 + ExplicitTop = 112 + ExplicitWidth = 663 + ExplicitHeight = 155 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = '0 clientes' + Kind = skCount + Column = frViewClientes1.cxGridViewTiendaWeb + end> + OptionsView.Footer = False + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Left = 10 + Top = 10 + Width = 663 + ExplicitLeft = 10 + ExplicitTop = 10 + ExplicitWidth = 663 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 663 + inherited dxLayoutControl1: TdxLayoutControl + Width = 663 + ExplicitWidth = 663 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 689 + Width = 689 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 460 + Width = 460 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 397 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 397 + ExplicitWidth = 123 + Width = 123 + end + inherited eLista: TcxComboBox + Left = 515 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 515 + ExplicitWidth = 215 + Width = 215 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 663 + ExplicitWidth = 663 + inherited tbxBotones: TTBXToolbar + Width = 653 + ExplicitWidth = 653 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Left = 10 + Top = 293 + ExplicitLeft = 10 + ExplicitTop = 267 + ExplicitWidth = 663 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 663 + ExplicitWidth = 663 + inherited TBXToolbar1: TTBXToolbar + Width = 653 + ExplicitWidth = 653 + end + end + end + inherited dsDataSource: TDADataSource + Left = 144 + Top = 56 + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + BuiltInReportLink = True + end + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewClientes1.cxGridView + HitTypes = [gvhtCell] + Index = 0 + end> + end + end + inherited EditorActionList: TActionList [6] + Left = 112 + Top = 192 + inherited actNuevo: TAction + Visible = False + end + inherited actGruposCliente: TAction + Visible = False + end + inherited actModificar: TAction + Visible = False + end + inherited actGuardarCerrar: TAction + Visible = False + end + inherited actGuardar: TAction + Visible = False + end + inherited actEliminar: TAction + Visible = False + end + inherited actConfPagina: TAction + Visible = False + end + inherited actDeshacer: TEditUndo + Visible = False + end + inherited actCortar: TEditCut + Visible = False + end + inherited actCerrar: TAction + Visible = False + end + inherited actCopiar: TEditCopy + Visible = False + end + inherited actPegar: TEditPaste + Visible = False + end + inherited actSeleccionarTodo: TEditSelectAll + Visible = False + end + inherited actLimpiar: TEditDelete + Visible = False + end + inherited actRefrescar: TAction + Visible = False + end + inherited actAcercaDe: TAction + Visible = False + end + inherited actBuscar: TAction + Visible = False + end + inherited actAnterior: TAction + Visible = False + end + inherited actSiguiente: TAction + Visible = False + end + inherited actCancelarCambios: TAction + Visible = False + end + inherited actDuplicar: TAction + Visible = False + end + end + inherited SmallImages: TPngImageList [7] + end + inherited LargeImages: TPngImageList [8] + end + inherited JvFormStorage: TJvFormStorage [9] + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [10] + end + inherited dsDataTable: TDADataSource [11] + Left = 8 + Top = 192 + end + inherited StatusBarImages: TPngImageList [12] + end + inherited GridPopupMenu: TPopupMenu [13] + Left = 80 + Top = 192 + end + inherited JsListaContactosNoEliminados: TJSDialog [14] + end + inherited JsPrevisualizarDialog: TJSDialog [15] + end + object JsClienteBloqueadoDialog: TJSDialog + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF94000000097048597300004E2000004E2001167D99 + DE0000000467414D410000B18E7CFB51930000037F4944415478DAC5D57B4853 + 511C07F0EF9D73B365E98A69AB344AA908F30F2BEC4130ED01817FF447417F64 + 4541EF07511662312D8AFA53A108E9614456461A948FB234154D31C957E92A5C + 6EF391CD9EBAB9DD57F7DCB5B5E64CE7A87E7077EFE1FCEEF9DCDFD93DF7503C + CFE35F06F5DF418AA286250919547126645339693C0294193CF751E3CA97A89E + 59AD9F4E3595B335874A6077A47BDCEF668C0A6AB590AE0A962E92CB95E7487B + 61E2498D7B3F6731212FF72E6B1DFC503B3864491934A03EA302CCB8C0173B11 + 689931214EAE0C3E4720F98C35BF3F3A67034F7F87DDFC1236533172EF55549B + BFD853BA3A9817D90DA07D069F9EC6ACE010558E3B66EB2A150777C6C405FB05 + F41B58EB4717DADD6B493EF3007A9FC03C2D646AA97CB92C64B2767172A5C61D + 2B28696749BBDF6CAADF73F0F05289622678E61BECBDD5625F5797616D9892AD + DA95EDA8724C60B916D3145355B79CD5B96326A37E7DFE23D41DDD81C5D1B351 + 14B3FC986386ED5FC10E18C42A3F9B2D1B4F14A067CC60951691814A742ED9DA + F61BD6D3ADDF909687FBCEFCCAB3489229F020767516E8BE1A1115AB34E8A34E + E6A373CC60451A22E42A183CC19AE7FAF8CB7568204B45C8E48B52113B251C4D + 0474FEB724AFF39D7E4EC64318C60492B7D31C0A4DE8743CF604073EE8B7CF9B + 059D049070343889145193D4B829829D42E10172312FC8AE4F52ABF0242103CC + 1FC1748A9224A406AF080A1FA8849F31D41F92582EF95A919ECE732382755941 + 09E06D65F1BB7BFCF55077498D269D3C71E7C5A1F291C14C8A77628C317FD441 + 795E5821C2DCF2ACDD71B85D2B628F2373B71A87AEF1D4A8E04818CD70A86FED + 455B473F96C48421664E08590FC330F2102DB51750DB08FFC09AC66E9CCDAE85 + 8D66113E65024EEF8D4364986C18C6B3345AEBB3FD07AFE4B7E07671BBABBD6F + 63349296A904F067952CE3AAF8D5CB1BFE83CDBA1E9CBFDA80BE4F5644842B70 + 62DB5C44A8028661E478DD7CC73F9054C13134721E7688556E5A371F5B564DF4 + 8A91A3ED55C1F841C794D1E239A7D0E4029335815E3192D7DE56383ED01D2383 + 5D2FE973819B57525E3172D6BD29F51DF4C4205C5F2FFDFC0B5C417BC5841FE8 + DE96F9067AC3BCBD8DDE30123E81F4FB5CAF5F0FE71AF3441C7D76D738042331 + 3A984509DB378C0425DF427F82608C1591476EF3C61141B23DDD388099FDDF61 + F459F00861D2238FE6C0F8C7EDE96FC73F077F00E79165F68A80720F00000000 + 49454E44AE426082} + Instruction.Text = 'El cliente est'#225' bloqueado' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Quiero elegir otro cliente' + Value = 100 + Default = True + end + item + Caption = 'Continuar aunque est'#233' bloqueado' + Value = 200 + end> + ButtonBar.Buttons = [] + ButtonBar.Default = cbCancel + MainIcon = tdiCustom + Title = #161'Atenci'#243'n!' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Left = 152 + Top = 232 + end + object EditorSeleccionActionList: TActionList + Images = SmallImages + Left = 200 + Top = 192 + object actBuscar2: TAction + Category = 'Buscar' + Caption = 'Buscar' + ImageIndex = 10 + ShortCut = 114 + end + object actQuitarFiltro2: TAction + Category = 'Buscar' + Caption = 'Quitar filtro y ver todo' + ImageIndex = 19 + OnExecute = actQuitarFiltro2Execute + end + object actAnchoAuto2: TAction + Category = 'Ver' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 21 + OnExecute = actAnchoAuto2Execute + end + end +end diff --git a/Source/Modulos/Contactos/Views/uEditorElegirClientes.pas b/Source/Modulos/Contactos/Views/uEditorElegirClientes.pas new file mode 100644 index 0000000..e8dab6d --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorElegirClientes.pas @@ -0,0 +1,157 @@ +unit uEditorElegirClientes; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorClientes, DB, uDADataTable, Menus, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, + StdActns, ActnList, uCustomView, uViewBase, uViewGridBase, uViewGrid, + uViewContactos, uViewClientes, ComCtrls, TB2ExtItems, TBXExtItems, TBX, + TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvComponent, + JvNavigationPane, uIEditorElegirClientes, uViewBarraSeleccion, + StdCtrls, uBizContactos, TBXStatusBars, JvExComCtrls, JvStatusBar, JSDialog, + uDAInterfaces; + +type + TfEditorElegirClientes = class(TfEditorClientes, IEditorElegirClientes) + frViewBarraSeleccion1: TfrViewBarraSeleccion; + lblTitle: TLabel; + lblComments: TLabel; + JsClienteBloqueadoDialog: TJSDialog; + EditorSeleccionActionList: TActionList; + actBuscar2: TAction; + actQuitarFiltro2: TAction; + actAnchoAuto2: TAction; + pnlHeader: TPanel; + procedure frViewBarraSeleccion1actSeleccionarUpdate(Sender: TObject); + procedure frViewBarraSeleccion1actCancelarExecute(Sender: TObject); + procedure frViewBarraSeleccion1actSeleccionarExecute(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure actQuitarFiltro2Execute(Sender: TObject); + procedure actAnchoAuto2Execute(Sender: TObject); + protected + procedure SetMultiSelect (AValue : Boolean); + function GetMultiSelect : Boolean; + function GetContactosSeleccionados: IBizContacto; + procedure SetViewGrid(const Value: IViewGridBase); override; + procedure SetMensaje (const AValue: String); + function GetMensaje: String; + public + property Mensaje : String read GetMensaje write SetMensaje; + property ContactosSeleccionados: IBizContacto read GetContactosSeleccionados; + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + end; + +implementation + +uses + uEditorGridBase, cxGridCustomTableView, uIntegerListUtils, uEditorContactos, + uGridStatusUtils, uEditorBase, cxControls, uDBSelectionListUtils, + uDialogUtils; + +{$R *.dfm} + +{ TfEditorElegirClientes } + +procedure TfEditorElegirClientes.actAnchoAuto2Execute(Sender: TObject); +begin + inherited; + actAnchoAuto.Execute; +end; + +procedure TfEditorElegirClientes.actQuitarFiltro2Execute(Sender: TObject); +begin + inherited; + actQuitarFiltro.Execute; +end; + +procedure TfEditorElegirClientes.FormShow(Sender: TObject); +begin + inherited; + EditorActionList.State := asSuspended; + frViewClientes1.cxViewGridPopupMenu.PopupMenus.Items[0].HitTypes := []; +end; + +procedure TfEditorElegirClientes.frViewBarraSeleccion1actCancelarExecute(Sender: TObject); +begin + inherited; + Close; +end; + +procedure TfEditorElegirClientes.frViewBarraSeleccion1actSeleccionarExecute(Sender: TObject); +var + Respuesta : Integer; +begin + inherited; + + // El cliente seleccionado est bloqueado? + if (FContactos as IBizCliente).BLOQUEADO = 1 then + begin + JsClienteBloqueadoDialog.Content.Text := 'Motivo: ' + + (FContactos as IBizCliente).MOTIVO_BLOQUEO; + Respuesta := JsClienteBloqueadoDialog.Execute; + + if Respuesta <> IDCANCEL then + begin + case JsClienteBloqueadoDialog.CustomButtonResult of + 200 : begin // Utilizarlo aunque est bloqueado + ModalResult := mrOk; + Exit; + end; + 100 : begin // Elegir otro + Exit; + end; + end; + end; + end + else // El cliente no est bloqueado. Puedo continuar. + ModalResult := mrOk; +end; + +procedure TfEditorElegirClientes.frViewBarraSeleccion1actSeleccionarUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (ViewGrid._FocusedView.Controller.SelectedRowCount > 0) +end; + +function TfEditorElegirClientes.GetContactosSeleccionados: IBizContacto; +begin + ShowHourglassCursor; + try + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Contactos as ISeleccionable).SelectedRecords); + // En Contactos.SelectedRecords tengo los ID de las filas seleccionadas del grid + Result := Controller.ExtraerSeleccionados(Contactos); + finally + HideHourglassCursor; + end; +end; + +function TfEditorElegirClientes.GetMensaje: String; +begin + Result := lblComments.Caption; +end; + +function TfEditorElegirClientes.GetMultiSelect: Boolean; +begin + Result := ViewGrid.MultiSelect; +end; + +procedure TfEditorElegirClientes.SetMensaje(const AValue: String); +begin + lblComments.Caption := AValue; +end; + +procedure TfEditorElegirClientes.SetMultiSelect(AValue: Boolean); +begin + ViewGrid.MultiSelect := AValue; +end; + +procedure TfEditorElegirClientes.SetViewGrid(const Value: IViewGridBase); +begin + inherited; + ViewGrid.OnDblClick := frViewBarraSeleccion1.actSeleccionar.OnExecute; +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uEditorElegirDireccionEntrega.dcu b/Source/Modulos/Contactos/Views/uEditorElegirDireccionEntrega.dcu new file mode 100644 index 0000000..7bc9a87 Binary files /dev/null and b/Source/Modulos/Contactos/Views/uEditorElegirDireccionEntrega.dcu differ diff --git a/Source/Modulos/Contactos/Views/uEditorElegirDireccionEntrega.dfm b/Source/Modulos/Contactos/Views/uEditorElegirDireccionEntrega.dfm new file mode 100644 index 0000000..d1a129d --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorElegirDireccionEntrega.dfm @@ -0,0 +1,473 @@ +object fEditorElegirDireccionEntrega: TfEditorElegirDireccionEntrega + Left = 227 + Top = 108 + BorderStyle = bsDialog + Caption = 'Elegir una direcci'#243'n de cliente' + ClientHeight = 506 + ClientWidth = 599 + Color = clBtnFace + ParentFont = True + OldCreateOrder = True + Position = poOwnerFormCenter + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object pnlHeader: TPanel + Left = 0 + Top = 0 + Width = 656 + Height = 64 + Align = alTop + BevelOuter = bvNone + Color = clWhite + Padding.Left = 25 + Padding.Top = 8 + Padding.Right = 25 + Padding.Bottom = 8 + ParentBackground = False + TabOrder = 5 + object lblTitle: TLabel + AlignWithMargins = True + Left = 25 + Top = 8 + Width = 606 + Height = 13 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 0 + Margins.Bottom = 8 + Align = alTop + Caption = 'Seleccione una direcci'#243'n del cliente' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + ExplicitWidth = 135 + end + object lblComments: TLabel + AlignWithMargins = True + Left = 50 + Top = 29 + Width = 581 + Height = 27 + Margins.Left = 25 + Margins.Top = 0 + Margins.Right = 0 + Align = alClient + ExplicitWidth = 3 + ExplicitHeight = 13 + Caption = 'El cliente dispone de varias direcciones dadas de alta en su fic' + + 'ha. Seleccione la direcci'#243'n del cliente que quiere utilizar.' + end + end + inline frViewBarraSeleccion1: TfrViewBarraSeleccion + Left = 0 + Top = 457 + Width = 599 + Height = 49 + Align = alBottom + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitTop = 457 + ExplicitWidth = 599 + inherited JvFooter1: TJvFooter + Width = 599 + ExplicitWidth = 599 + inherited bSeleccionar: TJvFooterBtn + Left = 387 + ExplicitLeft = 387 + end + inherited bCancelar: TJvFooterBtn + Left = 491 + ExplicitLeft = 491 + end + end + inherited BarraSeleccionActionList: TActionList + Top = 11 + inherited actSeleccionar: TAction + OnExecute = frViewBarraSeleccion1actSeleccionarExecute + end + inherited actCancelar: TAction + OnExecute = frViewBarraSeleccion1actCancelarExecute + end + end + end + object DBCtrlGrid1: TDBCtrlGrid + Left = 45 + Top = 214 + Width = 539 + Height = 241 + Margins.Left = 10 + Margins.Top = 10 + Margins.Right = 10 + Margins.Bottom = 0 + AllowDelete = False + AllowInsert = False + Color = clBtnFace + DataSource = dsDirecciones + PanelHeight = 80 + PanelWidth = 522 + ParentColor = False + TabOrder = 1 + OnDblClick = DBCtrlGrid1DblClick + object eCalle: TDBText + Left = 48 + Top = 25 + Width = 472 + Height = 17 + DataField = 'CALLE' + DataSource = dsDirecciones + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + Transparent = True + OnDblClick = ComponenteDblClick + end + object ePoblacion: TDBText + Left = 70 + Top = 42 + Width = 251 + Height = 17 + DataField = 'POBLACION' + DataSource = dsDirecciones + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + Transparent = True + OnDblClick = ComponenteDblClick + end + object eTelefono: TDBText + Left = 383 + Top = 59 + Width = 130 + Height = 17 + DataField = 'TELEFONO' + DataSource = dsDirecciones + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + Transparent = True + OnDblClick = ComponenteDblClick + end + object eProvincia: TDBText + Left = 383 + Top = 42 + Width = 130 + Height = 17 + DataField = 'PROVINCIA' + DataSource = dsDirecciones + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + Transparent = True + OnDblClick = ComponenteDblClick + end + object ePersonaContacto: TDBText + Left = 124 + Top = 59 + Width = 261 + Height = 17 + DataField = 'PERSONA_CONTACTO' + DataSource = dsDirecciones + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + Transparent = True + OnDblClick = ComponenteDblClick + end + object eNombre: TDBText + Left = 8 + Top = 7 + Width = 345 + Height = 17 + DataField = 'NOMBRE' + DataSource = dsDirecciones + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + Transparent = True + OnDblClick = ComponenteDblClick + end + object eCodigoPostal: TDBText + Left = 327 + Top = 42 + Width = 50 + Height = 17 + DataField = 'CODIGO_POSTAL' + DataSource = dsDirecciones + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + Transparent = True + OnDblClick = ComponenteDblClick + end + object Label1: TLabel + Left = 15 + Top = 25 + Width = 27 + Height = 13 + Caption = 'Calle:' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + OnDblClick = ComponenteDblClick + end + object Label2: TLabel + Left = 15 + Top = 42 + Width = 49 + Height = 13 + Caption = 'Poblaci'#243'n:' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + OnDblClick = ComponenteDblClick + end + object Label4: TLabel + Left = 15 + Top = 59 + Width = 103 + Height = 13 + Caption = 'Persona de contacto:' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + OnDblClick = ComponenteDblClick + end + end + object rdxDestino1: TRadioButton + Left = 16 + Top = 77 + Width = 335 + Height = 17 + Action = actDirSocial + TabOrder = 2 + TabStop = True + end + object RadioButton1: TRadioButton + Left = 16 + Top = 193 + Width = 335 + Height = 17 + Action = actOtro + TabOrder = 3 + TabStop = True + end + object pnlDirSocial: TPanel + Left = 45 + Top = 97 + Width = 520 + Height = 81 + Color = clWindow + ParentBackground = False + TabOrder = 4 + object DBText1: TDBText + Left = 8 + Top = 5 + Width = 497 + Height = 17 + DataField = 'NOMBRE' + DataSource = dsContacto + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + Transparent = True + end + object Label3: TLabel + Left = 13 + Top = 23 + Width = 27 + Height = 13 + Caption = 'Calle:' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object DBText2: TDBText + Left = 46 + Top = 23 + Width = 465 + Height = 17 + DataField = 'CALLE' + DataSource = dsContacto + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + Transparent = True + end + object Label5: TLabel + Left = 13 + Top = 40 + Width = 49 + Height = 13 + Caption = 'Poblaci'#243'n:' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object DBText3: TDBText + Left = 68 + Top = 40 + Width = 251 + Height = 17 + DataField = 'POBLACION' + DataSource = dsContacto + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + Transparent = True + end + object DBText4: TDBText + Left = 325 + Top = 40 + Width = 50 + Height = 17 + DataField = 'CODIGO_POSTAL' + DataSource = dsContacto + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + Transparent = True + end + object DBText5: TDBText + Left = 381 + Top = 40 + Width = 130 + Height = 17 + DataField = 'PROVINCIA' + DataSource = dsContacto + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + Transparent = True + end + object DBText7: TDBText + Left = 381 + Top = 57 + Width = 130 + Height = 17 + DataField = 'TELEFONO_1' + DataSource = dsContacto + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + Transparent = True + end + object Label6: TLabel + Left = 13 + Top = 57 + Width = 103 + Height = 13 + Caption = 'Persona de contacto:' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object DBText6: TDBText + Left = 122 + Top = 57 + Width = 261 + Height = 17 + DataField = 'PERSONA_CONTACTO' + DataSource = dsContacto + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + Transparent = True + end + end + object dsDirecciones: TDADataSource + Left = 16 + Top = 222 + end + object ActionList1: TActionList + Left = 16 + Top = 104 + object actDirSocial: TAction + Caption = 'Utilizar la direcci'#243'n social del cliente:' + Checked = True + GroupIndex = 1 + OnExecute = actDirSocialExecute + end + object actOtro: TAction + Caption = 'Utilizar la siguiente direcci'#243'n del cliente' + GroupIndex = 1 + OnExecute = actOtroExecute + OnUpdate = actOtroUpdate + end + end + object dsContacto: TDADataSource + Left = 16 + Top = 134 + end +end diff --git a/Source/Modulos/Contactos/Views/uEditorElegirDireccionEntrega.pas b/Source/Modulos/Contactos/Views/uEditorElegirDireccionEntrega.pas new file mode 100644 index 0000000..5c00a20 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorElegirDireccionEntrega.pas @@ -0,0 +1,276 @@ +unit uEditorElegirDireccionEntrega; + +interface + +uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, + Buttons, ExtCtrls, Mask, DBCtrls, DB, uDADataTable, + cxControls, cxContainer, cxEdit, cxTextEdit, cxDBEdit, + uIEditorElegirDireccionEntrega, uCustomView, uBizContactos, + uViewBase, uViewBarraSeleccion, JvExControls, JvComponent, + DBCGrids, uBizDireccionesContacto, uDAInterfaces, ActnList, + uDireccionesContactoController; + +type + TfEditorElegirDireccionEntrega = class(TForm, IEditorElegirDireccionEntrega) + dsDirecciones: TDADataSource; + frViewBarraSeleccion1: TfrViewBarraSeleccion; + lblTitle: TLabel; + lblComments: TLabel; + DBCtrlGrid1: TDBCtrlGrid; + eCalle: TDBText; + ePoblacion: TDBText; + eTelefono: TDBText; + eProvincia: TDBText; + ePersonaContacto: TDBText; + eNombre: TDBText; + eCodigoPostal: TDBText; + Label1: TLabel; + Label2: TLabel; + Label4: TLabel; + rdxDestino1: TRadioButton; + RadioButton1: TRadioButton; + ActionList1: TActionList; + actDirSocial: TAction; + actOtro: TAction; + dsContacto: TDADataSource; + pnlDirSocial: TPanel; + DBText1: TDBText; + Label3: TLabel; + DBText2: TDBText; + Label5: TLabel; + DBText3: TDBText; + DBText4: TDBText; + DBText5: TDBText; + DBText7: TDBText; + Label6: TLabel; + DBText6: TDBText; + procedure frViewBarraSeleccion1actSeleccionarExecute(Sender: TObject); + procedure frViewBarraSeleccion1actCancelarExecute(Sender: TObject); + procedure DBCtrlGrid1DblClick(Sender: TObject); + procedure ComponenteDblClick(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure FormDestroy(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure actDirSocialExecute(Sender: TObject); + procedure actOtroExecute(Sender: TObject); + procedure actOtroUpdate(Sender: TObject); + private + procedure ColorearTextoDirSocial(AColor : TColor); + procedure ColorearTextoDirOtra(AColor : TColor); + protected + FDirecciones: IBizDireccionesContacto; + FContacto : IBizContacto; + FDireccionesController : IDireccionesContactoController; + function GetContacto: IBizContacto; + procedure SetContacto(const Value: IBizContacto); + + procedure SetMensaje (const AValue: String); + function GetMensaje: String; + + function GetDireccionSeleccionada: IBizDireccionesContacto; + + procedure RefrescarEstado; + published + public + property Mensaje : String read GetMensaje write SetMensaje; + property Contacto : IBizContacto read GetContacto write SetContacto; + property DireccionSeleccionada: IBizDireccionesContacto read GetDireccionSeleccionada; + end; + +implementation +{$R *.dfm} + +uses + uStringsUtils, Variants, uDialogUtils; + +{ TfEditorDireccionEntrega } + +procedure TfEditorElegirDireccionEntrega.DBCtrlGrid1DblClick(Sender: TObject); +begin + frViewBarraSeleccion1.actSeleccionar.Execute; +end; + +procedure TfEditorElegirDireccionEntrega.FormCreate(Sender: TObject); +begin + FDireccionesController := TDireccionesContactoController.Create; +end; + +procedure TfEditorElegirDireccionEntrega.FormDestroy(Sender: TObject); +begin + FDireccionesController := NIL; +end; + +procedure TfEditorElegirDireccionEntrega.FormShow(Sender: TObject); +begin + if Assigned(FContacto) then + begin + if Supports(FContacto, IBizCliente) then + begin + Caption := 'Elegir una direccin de cliente'; + lblTitle.Caption := 'Seleccione una direccin de cliente'; + end; + if Supports(FContacto, IBizProveedor) then + begin + Caption := 'Elegir una direccin de proveedor'; + lblTitle.Caption := 'Seleccione una direccin de proveedor'; + end; + end; + + actDirSocial.Checked := True; + RefrescarEstado; +end; + +procedure TfEditorElegirDireccionEntrega.actDirSocialExecute(Sender: TObject); +begin + actDirSocial.Checked := True; + RefrescarEstado; +end; + +procedure TfEditorElegirDireccionEntrega.actOtroExecute(Sender: TObject); +begin + actOtro.Checked := True; + RefrescarEstado; +end; + +procedure TfEditorElegirDireccionEntrega.actOtroUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := (FDirecciones.RecordCount > 0) +end; + +procedure TfEditorElegirDireccionEntrega.ComponenteDblClick(Sender: TObject); +begin + DBCtrlGrid1DblClick(Sender); +end; + +procedure TfEditorElegirDireccionEntrega.frViewBarraSeleccion1actCancelarExecute( + Sender: TObject); +begin + ModalResult := mrCancel; +end; + +procedure TfEditorElegirDireccionEntrega.frViewBarraSeleccion1actSeleccionarExecute( + Sender: TObject); +begin + ModalResult := mrOk; +end; + +function TfEditorElegirDireccionEntrega.GetContacto: IBizContacto; +begin + Result := FContacto; +end; + +function TfEditorElegirDireccionEntrega.GetDireccionSeleccionada: IBizDireccionesContacto; +begin + Result := FDireccionesController.Nuevo; + if actOtro.Checked then + begin + with Result do + begin + ID := FDirecciones.ID; + NOMBRE := FDirecciones.NOMBRE; + CALLE := FDirecciones.CALLE; + POBLACION := FDirecciones.POBLACION; + CODIGO_POSTAL := FDirecciones.CODIGO_POSTAL; + PROVINCIA := FDirecciones.PROVINCIA; + TELEFONO := FDirecciones.TELEFONO; + FAX := FDirecciones.FAX; + MOVIL := FDirecciones.MOVIL; + EMAIL := FDirecciones.EMAIL; + PERSONA_CONTACTO := FDirecciones.PERSONA_CONTACTO; + end; + end + else begin + with Result do + begin + DataTable.FieldByName('ID').AsVariant := Null; + NOMBRE := FContacto.NOMBRE; + CALLE := FContacto.CALLE; + POBLACION := FContacto.POBLACION; + CODIGO_POSTAL := FContacto.CODIGO_POSTAL; + PROVINCIA := FContacto.PROVINCIA; + TELEFONO := FContacto.TELEFONO_1; + FAX := FContacto.FAX; + MOVIL := FContacto.MOVIL_1; + EMAIL := FContacto.EMAIL_1; + PERSONA_CONTACTO := FContacto.PERSONA_CONTACTO; + end; + end; +end; + +function TfEditorElegirDireccionEntrega.GetMensaje: String; +begin + Result := lblComments.Caption; +end; + +procedure TfEditorElegirDireccionEntrega.RefrescarEstado; +begin + if (actOtro.Checked) then + begin + DBCtrlGrid1.Enabled := True; + DBCtrlGrid1.Color := clWindow; + pnlDirSocial.Enabled := False; + pnlDirSocial.Color := clBtnFace; + + ColorearTextoDirOtra(clWindowText); + ColorearTextoDirSocial(clGray); + end; + + if (actDirSocial.Checked) then + begin + DBCtrlGrid1.Enabled := False; + DBCtrlGrid1.Color := clBtnFace; + pnlDirSocial.Enabled := True; + pnlDirSocial.Color := clWindow; + + ColorearTextoDirSocial(clWindowText); + ColorearTextoDirOtra(clGray); + end; +end; + +procedure TfEditorElegirDireccionEntrega.ColorearTextoDirOtra(AColor: TColor); +begin + eNombre.Font.Color := AColor; + eCalle.Font.Color := AColor; + ePoblacion.Font.Color := AColor; + eProvincia.Font.Color := AColor; + eTelefono.Font.Color := AColor; + ePersonaContacto.Font.Color := AColor; + eCodigoPostal.Font.Color := AColor; +end; + +procedure TfEditorElegirDireccionEntrega.ColorearTextoDirSocial(AColor: TColor); +begin + DBText1.Font.Color := AColor; + DBText2.Font.Color := AColor; + DBText3.Font.Color := AColor; + DBText4.Font.Color := AColor; + DBText5.Font.Color := AColor; + DBText6.Font.Color := AColor; + DBText7.Font.Color := AColor; +end; + +procedure TfEditorElegirDireccionEntrega.SetContacto(const Value: IBizContacto); +begin + FContacto := Value; + if Assigned(FContacto) then + begin + FDirecciones := FContacto.Direcciones; + dsContacto.DataTable := FContacto.DataTable; + dsDirecciones.DataTable := FDirecciones.DataTable; + end + else begin + FDirecciones := NIL; + dsDirecciones.DataTable := NIL; + dsContacto.DataTable := NIL; + end; +end; + +procedure TfEditorElegirDireccionEntrega.SetMensaje(const AValue: String); +begin + if not EsCadenaVacia(AValue) then + lblComments.Caption := AValue + else + lblComments.Caption := ' '; +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uEditorElegirPersonaContacto.dcu b/Source/Modulos/Contactos/Views/uEditorElegirPersonaContacto.dcu new file mode 100644 index 0000000..107da57 Binary files /dev/null and b/Source/Modulos/Contactos/Views/uEditorElegirPersonaContacto.dcu differ diff --git a/Source/Modulos/Contactos/Views/uEditorElegirPersonaContacto.dfm b/Source/Modulos/Contactos/Views/uEditorElegirPersonaContacto.dfm new file mode 100644 index 0000000..294bb84 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorElegirPersonaContacto.dfm @@ -0,0 +1,262 @@ +object fEditorElegirPersonaContacto: TfEditorElegirPersonaContacto + Left = 227 + Top = 108 + BorderStyle = bsDialog + Caption = 'Elegir una direcciones de cliente' + ClientHeight = 383 + ClientWidth = 599 + Color = clBtnFace + ParentFont = True + OldCreateOrder = True + Position = poOwnerFormCenter + PixelsPerInch = 96 + TextHeight = 13 + object pnlHeader: TPanel + Left = 0 + Top = 0 + Width = 656 + Height = 64 + Align = alTop + BevelOuter = bvNone + Color = clWhite + Padding.Left = 25 + Padding.Top = 8 + Padding.Right = 25 + Padding.Bottom = 8 + ParentBackground = False + TabOrder = 5 + object lblTitle: TLabel + AlignWithMargins = True + Left = 25 + Top = 8 + Width = 606 + Height = 13 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 0 + Margins.Bottom = 8 + Align = alTop + Caption = 'Seleccione una persona de contacto' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + ExplicitWidth = 135 + end + object lblComments: TLabel + AlignWithMargins = True + Left = 50 + Top = 29 + Width = 581 + Height = 27 + Margins.Left = 25 + Margins.Top = 0 + Margins.Right = 0 + Align = alClient + ExplicitWidth = 3 + ExplicitHeight = 13 + Caption = 'El cliente dispone de personas de contacto dadas de alta en su f' + + 'icha. Seleccione la que quiere utilizar.' + end + end + inline frViewBarraSeleccion1: TfrViewBarraSeleccion + Left = 0 + Top = 334 + Width = 599 + Height = 49 + Align = alBottom + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitTop = 334 + ExplicitWidth = 599 + inherited JvFooter1: TJvFooter + Width = 599 + ExplicitWidth = 599 + inherited bSeleccionar: TJvFooterBtn + Left = 387 + ExplicitLeft = 387 + end + inherited bCancelar: TJvFooterBtn + Left = 491 + ExplicitLeft = 491 + end + end + inherited BarraSeleccionActionList: TActionList + Top = 11 + inherited actSeleccionar: TAction + OnExecute = frViewBarraSeleccion1actSeleccionarExecute + end + inherited actCancelar: TAction + OnExecute = frViewBarraSeleccion1actCancelarExecute + end + end + end + object DBCtrlGrid1: TDBCtrlGrid + Left = 8 + Top = 66 + Width = 583 + Height = 261 + Margins.Left = 10 + Margins.Top = 10 + Margins.Right = 10 + Margins.Bottom = 0 + AllowDelete = False + AllowInsert = False + Color = clBtnFace + DataSource = dsPersonas + PanelHeight = 87 + PanelWidth = 566 + ParentColor = False + TabOrder = 1 + SelectedColor = clHighlight + OnDblClick = DBCtrlGrid1DblClick + object ePuesto: TDBText + Left = 58 + Top = 28 + Width = 502 + Height = 17 + DataField = 'PUESTO' + DataSource = dsPersonas + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + Transparent = True + OnDblClick = ComponenteDblClick + end + object eTelefono: TDBText + Left = 70 + Top = 47 + Width = 187 + Height = 17 + DataField = 'TELEFONO' + DataSource = dsPersonas + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + Transparent = True + OnDblClick = ComponenteDblClick + end + object eNombre: TDBText + Left = 8 + Top = 7 + Width = 537 + Height = 17 + DataField = 'NOMBRE' + DataSource = dsPersonas + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + Transparent = True + OnDblClick = ComponenteDblClick + end + object Label1: TLabel + Left = 15 + Top = 28 + Width = 37 + Height = 13 + Caption = 'Puesto:' + OnDblClick = ComponenteDblClick + end + object Label2: TLabel + Left = 15 + Top = 47 + Width = 46 + Height = 13 + Caption = 'Tel'#233'fono:' + OnDblClick = ComponenteDblClick + end + object Label3: TLabel + Left = 281 + Top = 47 + Width = 47 + Height = 13 + Caption = 'Tlf. m'#243'vil:' + OnDblClick = ComponenteDblClick + end + object eMovil: TDBText + Left = 334 + Top = 47 + Width = 187 + Height = 17 + DataField = 'MOVIL' + DataSource = dsPersonas + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + Transparent = True + OnDblClick = ComponenteDblClick + end + object Label4: TLabel + Left = 16 + Top = 66 + Width = 48 + Height = 13 + Caption = 'N'#250'm. fax:' + OnDblClick = ComponenteDblClick + end + object eFax: TDBText + Left = 70 + Top = 66 + Width = 187 + Height = 17 + DataField = 'FAX' + DataSource = dsPersonas + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + Transparent = True + OnDblClick = ComponenteDblClick + end + object Label5: TLabel + Left = 281 + Top = 66 + Width = 32 + Height = 13 + Caption = 'E-mail:' + OnDblClick = ComponenteDblClick + end + object eEMail: TDBText + Left = 334 + Top = 66 + Width = 187 + Height = 17 + DataField = 'EMAIL' + DataSource = dsPersonas + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + Transparent = True + OnDblClick = ComponenteDblClick + end + end + object dsPersonas: TDADataSource + Left = 24 + Top = 286 + end +end diff --git a/Source/Modulos/Contactos/Views/uEditorElegirPersonaContacto.pas b/Source/Modulos/Contactos/Views/uEditorElegirPersonaContacto.pas new file mode 100644 index 0000000..8f55cca --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorElegirPersonaContacto.pas @@ -0,0 +1,111 @@ +unit uEditorElegirPersonaContacto; + +interface + +uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, + Buttons, ExtCtrls, Mask, DBCtrls, DB, uDADataTable, + cxControls, cxContainer, cxEdit, cxTextEdit, cxDBEdit, + uIEditorElegirPersonaContacto, uCustomView, + uViewBase, uViewBarraSeleccion, JvExControls, JvComponent, + DBCGrids, uBizContactosPersonal, uDAInterfaces; + +type + TfEditorElegirPersonaContacto = class(TForm, IEditorElegirPersonaContacto) + dsPersonas: TDADataSource; + frViewBarraSeleccion1: TfrViewBarraSeleccion; + lblTitle: TLabel; + lblComments: TLabel; + DBCtrlGrid1: TDBCtrlGrid; + ePuesto: TDBText; + eTelefono: TDBText; + eNombre: TDBText; + Label1: TLabel; + Label2: TLabel; + Label3: TLabel; + eMovil: TDBText; + Label4: TLabel; + eFax: TDBText; + Label5: TLabel; + eEMail: TDBText; + procedure frViewBarraSeleccion1actSeleccionarExecute(Sender: TObject); + procedure frViewBarraSeleccion1actCancelarExecute(Sender: TObject); + procedure DBCtrlGrid1DblClick(Sender: TObject); + procedure ComponenteDblClick(Sender: TObject); + + protected + FPersonas: IBizContactoPersonal; + function GetPersonas: IBizContactoPersonal; + procedure SetPersonas(const Value: IBizContactoPersonal); + + function GetPersonaSeleccionada: IBizContactoPersonal; + + procedure SetMensaje (const AValue: String); + function GetMensaje: String; + public + property Mensaje : String read GetMensaje write SetMensaje; + property Personas: IBizContactoPersonal read GetPersonas write SetPersonas; + property PersonaSeleccionada: IBizContactoPersonal read GetPersonaSeleccionada; + end; + +implementation +{$R *.dfm} + +uses + uDireccionesContactoController; + +{ TfEditorDireccionEntrega } + +procedure TfEditorElegirPersonaContacto.DBCtrlGrid1DblClick(Sender: TObject); +begin + frViewBarraSeleccion1.actSeleccionar.Execute; +end; + +procedure TfEditorElegirPersonaContacto.ComponenteDblClick(Sender: TObject); +begin + DBCtrlGrid1DblClick(Sender); +end; + +procedure TfEditorElegirPersonaContacto.frViewBarraSeleccion1actCancelarExecute( + Sender: TObject); +begin + ModalResult := mrCancel; +end; + +procedure TfEditorElegirPersonaContacto.frViewBarraSeleccion1actSeleccionarExecute( + Sender: TObject); +begin + ModalResult := mrOk; +end; + +function TfEditorElegirPersonaContacto.GetPersonas: IBizContactoPersonal; +begin + Result := FPersonas; +end; + +function TfEditorElegirPersonaContacto.GetPersonaSeleccionada: IBizContactoPersonal; +begin + // Devuelvo el mismo objeto que recibo pero con el punto de lectura + // posicionado en la direccin elegida. + Result := FPersonas; +end; + +function TfEditorElegirPersonaContacto.GetMensaje: String; +begin + Result := lblComments.Caption; +end; + +procedure TfEditorElegirPersonaContacto.SetPersonas(const Value: IBizContactoPersonal); +begin + FPersonas := Value; + if Assigned(FPersonas) then + dsPersonas.DataTable := FPersonas.DataTable + else + dsPersonas.DataTable := NIL; +end; + +procedure TfEditorElegirPersonaContacto.SetMensaje(const AValue: String); +begin + lblComments.Caption := AValue; +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uEditorElegirProveedores.dcu b/Source/Modulos/Contactos/Views/uEditorElegirProveedores.dcu new file mode 100644 index 0000000..28ab5b4 Binary files /dev/null and b/Source/Modulos/Contactos/Views/uEditorElegirProveedores.dcu differ diff --git a/Source/Modulos/Contactos/Views/uEditorElegirProveedores.dfm b/Source/Modulos/Contactos/Views/uEditorElegirProveedores.dfm new file mode 100644 index 0000000..d163ee1 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorElegirProveedores.dfm @@ -0,0 +1,391 @@ +inherited fEditorElegirProveedores: TfEditorElegirProveedores + Caption = 'Seleccionar el proveedor' + ClientHeight = 480 + ClientWidth = 656 + ExplicitWidth = 664 + ExplicitHeight = 514 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Top = 113 + Width = 656 + Visible = False + ExplicitLeft = 8 + ExplicitTop = 166 + ExplicitWidth = 656 + inherited Image1: TImage + Left = 629 + ExplicitLeft = 629 + end + end + inherited TBXDock: TTBXDock + Top = 64 + Width = 656 + Height = 49 + ExplicitTop = 64 + ExplicitWidth = 656 + ExplicitHeight = 49 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 351 + inherited TBXItem36: TTBXItem + Action = actAnchoAuto2 + end + end + inherited tbxFiltro: TTBXToolbar + Left = 351 + Top = 23 + DockPos = 108 + DockRow = 1 + ExplicitLeft = 351 + ExplicitTop = 23 + inherited TBXItem34: TTBXItem + Action = actQuitarFiltro2 + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 656 + end + inherited TBXTMain2: TTBXToolbar + Left = 620 + Top = 23 + DockPos = 629 + DockRow = 1 + ExplicitLeft = 620 + ExplicitTop = 23 + end + end + inherited StatusBar: TJvStatusBar + Top = 461 + Width = 656 + Visible = False + ExplicitTop = 461 + ExplicitWidth = 656 + end + inline frViewBarraSeleccion1: TfrViewBarraSeleccion [3] + Left = 0 + Top = 425 + Width = 656 + Height = 36 + Align = alBottom + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 425 + ExplicitWidth = 656 + ExplicitHeight = 36 + inherited JvFooter1: TJvFooter + Width = 656 + Height = 36 + ExplicitWidth = 656 + ExplicitHeight = 36 + inherited bSeleccionar: TJvFooterBtn + Left = 444 + Top = 3 + ExplicitLeft = 444 + ExplicitTop = 3 + end + inherited bCancelar: TJvFooterBtn + Left = 548 + Top = 4 + ExplicitLeft = 548 + ExplicitTop = 4 + end + end + inherited BarraSeleccionActionList: TActionList + inherited actSeleccionar: TAction + OnExecute = frViewBarraSeleccion1actSeleccionarExecute + OnUpdate = frViewBarraSeleccion1actSeleccionarUpdate + end + inherited actCancelar: TAction + OnExecute = frViewBarraSeleccion1actCancelarExecute + end + end + end + object pnlHeader: TPanel [4] + Left = 0 + Top = 0 + Width = 656 + Height = 64 + Align = alTop + BevelOuter = bvNone + Color = clWhite + Padding.Left = 25 + Padding.Top = 8 + Padding.Right = 25 + Padding.Bottom = 8 + ParentBackground = False + TabOrder = 5 + ExplicitTop = 27 + object lblTitle: TLabel + AlignWithMargins = True + Left = 25 + Top = 8 + Width = 606 + Height = 13 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 0 + Margins.Bottom = 8 + Align = alTop + Caption = 'Seleccione el proveedor' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + ExplicitWidth = 135 + end + object lblComments: TLabel + AlignWithMargins = True + Left = 50 + Top = 29 + Width = 581 + Height = 24 + Margins.Left = 25 + Margins.Top = 0 + Margins.Right = 0 + Align = alClient + ExplicitWidth = 3 + ExplicitHeight = 13 + end + end + inherited frViewProveedores1: TfrViewProveedores [5] + Top = 140 + Width = 656 + Height = 285 + Padding.Left = 10 + Padding.Top = 10 + Padding.Right = 10 + Padding.Bottom = 5 + TabOrder = 4 + ExplicitTop = 166 + ExplicitWidth = 656 + ExplicitHeight = 259 + inherited cxGrid: TcxGrid + Left = 10 + Top = 112 + Width = 636 + Height = 142 + ExplicitLeft = 10 + ExplicitTop = 112 + ExplicitWidth = 636 + ExplicitHeight = 116 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = '0 proveedores' + Kind = skCount + FieldName = 'ID' + Column = frViewProveedores1.cxGridViewNOMBRE + end> + OptionsView.Footer = False + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Left = 10 + Top = 10 + Width = 636 + ExplicitLeft = 10 + ExplicitTop = 10 + ExplicitWidth = 636 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 636 + inherited dxLayoutControl1: TdxLayoutControl + Width = 636 + ExplicitWidth = 636 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 446 + Width = 446 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 219 + Width = 219 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 261 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 261 + ExplicitWidth = 210 + Width = 210 + end + inherited eLista: TcxComboBox + Left = 462 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 462 + ExplicitWidth = 215 + Width = 215 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 636 + ExplicitWidth = 636 + inherited tbxBotones: TTBXToolbar + Width = 626 + ExplicitWidth = 626 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Left = 10 + Top = 254 + ExplicitLeft = 10 + ExplicitTop = 228 + ExplicitWidth = 636 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 636 + ExplicitWidth = 636 + inherited TBXToolbar1: TTBXToolbar + Width = 626 + ExplicitWidth = 626 + end + end + end + inherited dsDataSource: TDADataSource + Left = 144 + Top = 56 + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + BuiltInReportLink = True + end + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewProveedores1.cxGridView + HitTypes = [gvhtCell] + Index = 0 + end> + end + end + inherited EditorActionList: TActionList [6] + Left = 112 + Top = 192 + inherited actNuevo: TAction + Visible = False + end + inherited actModificar: TAction + Visible = False + end + inherited actGuardarCerrar: TAction + Visible = False + end + inherited actGuardar: TAction + Visible = False + end + inherited actEliminar: TAction + Visible = False + end + inherited actConfPagina: TAction + Visible = False + end + inherited actDeshacer: TEditUndo + Visible = False + end + inherited actCortar: TEditCut + Visible = False + end + inherited actCerrar: TAction + Visible = False + end + inherited actCopiar: TEditCopy + Visible = False + end + inherited actPegar: TEditPaste + Visible = False + end + inherited actSeleccionarTodo: TEditSelectAll + Visible = False + end + inherited actLimpiar: TEditDelete + Visible = False + end + inherited actRefrescar: TAction + Visible = False + end + inherited actAcercaDe: TAction + Visible = False + end + inherited actBuscar: TAction + Visible = False + end + inherited actAnterior: TAction + Visible = False + end + inherited actSiguiente: TAction + Visible = False + end + inherited actCancelarCambios: TAction + Visible = False + end + inherited actDuplicar: TAction + Visible = False + end + end + inherited SmallImages: TPngImageList [7] + end + inherited LargeImages: TPngImageList [8] + end + inherited JvFormStorage: TJvFormStorage [9] + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [10] + end + inherited dsDataTable: TDADataSource [11] + Left = 8 + Top = 192 + end + inherited StatusBarImages: TPngImageList [12] + end + inherited GridPopupMenu: TPopupMenu [13] + Left = 80 + Top = 192 + end + inherited JsPrevisualizarDialog: TJSDialog [14] + end + inherited JsImprimirDialog: TJSDialog [15] + end + object EditorSeleccionActionList: TActionList + Images = SmallImages + Left = 200 + Top = 192 + object actBuscar2: TAction + Category = 'Buscar' + Caption = 'Buscar' + ImageIndex = 10 + ShortCut = 114 + end + object actQuitarFiltro2: TAction + Category = 'Buscar' + Caption = 'Quitar filtro y ver todo' + ImageIndex = 19 + OnExecute = actQuitarFiltro2Execute + end + object actAnchoAuto2: TAction + Category = 'Ver' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 21 + OnExecute = actAnchoAuto2Execute + end + end +end diff --git a/Source/Modulos/Contactos/Views/uEditorElegirProveedores.pas b/Source/Modulos/Contactos/Views/uEditorElegirProveedores.pas new file mode 100644 index 0000000..bb4893f --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorElegirProveedores.pas @@ -0,0 +1,133 @@ +unit uEditorElegirProveedores; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorProveedores, DB, uDADataTable, Menus, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, + StdActns, ActnList, uCustomView, uViewBase, uViewGridBase, uViewGrid, + uViewContactos, uViewProveedores, ComCtrls, TB2ExtItems, TBXExtItems, TBX, + TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvComponent, + JvNavigationPane, uIEditorElegirProveedores, uViewBarraSeleccion, + StdCtrls, uBizContactos, TBXStatusBars, JvExComCtrls, JvStatusBar, JSDialog, + uDAInterfaces; + +type + TfEditorElegirProveedores = class(TfEditorProveedores, IEditorElegirProveedores) + frViewBarraSeleccion1: TfrViewBarraSeleccion; + lblTitle: TLabel; + lblComments: TLabel; + EditorSeleccionActionList: TActionList; + actBuscar2: TAction; + actQuitarFiltro2: TAction; + actAnchoAuto2: TAction; + pnlHeader: TPanel; + procedure frViewBarraSeleccion1actSeleccionarUpdate(Sender: TObject); + procedure frViewBarraSeleccion1actCancelarExecute(Sender: TObject); + procedure frViewBarraSeleccion1actSeleccionarExecute(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure actQuitarFiltro2Execute(Sender: TObject); + procedure actAnchoAuto2Execute(Sender: TObject); + protected + procedure SetMultiSelect (AValue : Boolean); + function GetMultiSelect : Boolean; + function GetContactosSeleccionados: IBizContacto; + procedure SetViewGrid(const Value: IViewGridBase); override; + procedure SetMensaje (const AValue: String); + function GetMensaje: String; + public + property Mensaje : String read GetMensaje write SetMensaje; + property ContactosSeleccionados: IBizContacto read GetContactosSeleccionados; + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + end; + +implementation + +uses + uEditorGridBase, cxGridCustomTableView, uIntegerListUtils, uEditorContactos, + uGridStatusUtils, uEditorBase, cxControls, uDBSelectionListUtils; + +{$R *.dfm} + +{ TfEditorElegirProveedores } + +procedure TfEditorElegirProveedores.actAnchoAuto2Execute(Sender: TObject); +begin + inherited; + actAnchoAuto.Execute; +end; + +procedure TfEditorElegirProveedores.actQuitarFiltro2Execute(Sender: TObject); +begin + inherited; + actQuitarFiltro.Execute; +end; + +procedure TfEditorElegirProveedores.FormShow(Sender: TObject); +begin + inherited; + EditorActionList.State := asSuspended; + frViewProveedores1.cxViewGridPopupMenu.PopupMenus.Items[0].HitTypes := []; +end; + +procedure TfEditorElegirProveedores.frViewBarraSeleccion1actCancelarExecute( + Sender: TObject); +begin + inherited; + Close; +end; + +procedure TfEditorElegirProveedores.frViewBarraSeleccion1actSeleccionarExecute( + Sender: TObject); +begin + inherited; + ModalResult := mrOk; +end; + +procedure TfEditorElegirProveedores.frViewBarraSeleccion1actSeleccionarUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (ViewGrid._FocusedView.Controller.SelectedRowCount > 0) +end; + +function TfEditorElegirProveedores.GetContactosSeleccionados: IBizContacto; +begin + ShowHourglassCursor; + try + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Contactos as ISeleccionable).SelectedRecords); + // En Contactos.SelectedRecords tengo los ID de las filas seleccionadas del grid + Result := Controller.ExtraerSeleccionados(Contactos); + finally + HideHourglassCursor; + end; +end; + +function TfEditorElegirProveedores.GetMensaje: String; +begin + Result := lblComments.Caption; +end; + +function TfEditorElegirProveedores.GetMultiSelect: Boolean; +begin + Result := ViewGrid.MultiSelect; +end; + +procedure TfEditorElegirProveedores.SetMensaje(const AValue: String); +begin + lblComments.Caption := AValue; +end; + +procedure TfEditorElegirProveedores.SetMultiSelect(AValue: Boolean); +begin + ViewGrid.MultiSelect := AValue; +end; + +procedure TfEditorElegirProveedores.SetViewGrid(const Value: IViewGridBase); +begin + inherited; + ViewGrid.OnDblClick := frViewBarraSeleccion1.actSeleccionar.OnExecute; +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uEditorEmpleado.dcu b/Source/Modulos/Contactos/Views/uEditorEmpleado.dcu new file mode 100644 index 0000000..b11d46d Binary files /dev/null and b/Source/Modulos/Contactos/Views/uEditorEmpleado.dcu differ diff --git a/Source/Modulos/Contactos/Views/uEditorEmpleado.dfm b/Source/Modulos/Contactos/Views/uEditorEmpleado.dfm new file mode 100644 index 0000000..4b893c0 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorEmpleado.dfm @@ -0,0 +1,1159 @@ +inherited fEditorEmpleado: TfEditorEmpleado + Caption = 'fEditorEmpleado' + ClientHeight = 583 + ClientWidth = 929 + ExplicitWidth = 937 + ExplicitHeight = 617 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 929 + ExplicitWidth = 929 + inherited Image1: TImage + Left = 902 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 520000000467414D410000AA11B57D14DC000003E54944415478DADD955D6C14 + 5514C7FF33B36D77D952281050902FCB8A74AB8D402DEDBA76B1A64896501142 + B028A105DAB47C941A890A292D1FF2D1E00B06358527134D782A1F29840A4429 + 25D604B5A8444C7830354AA8752DDBD9D9D99DB9D77B6767A69D661FED0BB399 + 9C7B6736E777CEFF9C7347A094623C2FE1F100745CFF795C286B5E29106C00DB + 180FF99E27450C6BAE09617B40D7990505D1A8F19E101D3AE196DAD6F82FBBDF + A8D987BEABED4E0077A60C0DE2D78BEDF8FD9B0EC8B28CA827170BCB5F4761C5 + DB70B927994E4C8754B7D7945BE68007C1D7EBB6A60124D418EE7C7E1CA4F702 + 2231050F878731A8C431202B78B1AA162FBDD90C486E23729ED1D1F31969A5A9 + 0B0D61436DB3135019F2E36EF745F49FD90B414D201257F1AF40E19A96838107 + 0F31F0288EC6CFBAE07DD26F46CD65647270D9A899914EA1D1944C5575FB9D80 + D565F9B87ABA1583D7BE404214214DCAC60CDF2C3CE39B8EC8DFFFE05CC74D84 + 6B0F604E4915AB8268383C71C99D36832DC108DEAA6F7102563140E7478DD086 + EEC0E79F87291327C0EB11118BCAC81029AE7FFD0366966E832FB81144108D68 + ADA272ED3592D2DECA64D38E5627201C5C84B30737635AE61F08BC5C00558E43 + 61FA27985C2E11E8EAFA0EF35EDB83FCE00626896076162F2A9765B473628037 + EF3AE804AC0C3C8B530DAFB236BA8F70E5327833DC88C754482C7A5989E2CBB3 + DD285AB71F4BC25B98448211A56E69CFB33023B7C0358D879C8015A50BF16973 + 0DEEF55C4645E83914E64F413291448224D17BBB1FB77AEE21DCF2318A8AD7B2 + 76E63520C64DCCF6E4B3414DB998C1D6A631808A121FFA6EF4E0A796D3C8F5C6 + E1298940CA5531709F42E99D0C817890D7DE84F94FF8ED880F9CEC4C5BE4DDD5 + E5A87DE7B013505EBC00DD4D9F60EAED3FA16851C4973F40CED22494CE89F0FE + 32035474E16E2013853BAB91E3CE75E86D4F314D3DE33EEBDE3DE2042C5F9A87 + 1B45DB317942162455042D559053C0D4BE928DD85F2C0B68901F25F05B830F2B + D6541B83F6E1A9CB6933D8B92984FA3D479D80D0923C5C2BAA47B63B035EC105 + 9A4D206501AE6117D4A40E59D3580308F8FEA9382ACFB419DD43471D13562DA8 + D9510DEF1D7302822F3C8D4B8BB761BAC70B8F4B42A628B17162DDC2A659D535 + C4182496D0F0E3A22CAC3FD1C29C11B4B577A5CDA061631976BC3F0610289C8F + 6F3BBF427F6F1FD44814601DC465607D0A2231505626A45953915F16C0CCD973 + 0D9DC9E813D43A81CD5AECFAE0B81350F2FC1CB3B7C9C884EAB0F7464BEAA39C + 5A00E33D6CCB01FCD7B8B7CD0928F6CF368FE05427A48668044638CC76689DFB + 23DF0D0B0A3393DDFBC6005A8F9CFCDFBF6836603CAF7107FC0730314BFE0CBC + 83B80000000049454E44AE426082} + ExplicitLeft = 645 + end + end + inherited TBXDock: TTBXDock + Width = 929 + ExplicitWidth = 929 + inherited tbxMain: TTBXToolbar + DockPos = 0 + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 929 + end + end + inherited pgPaginas: TPageControl + Width = 923 + Height = 482 + ActivePage = pagGeneral + ExplicitWidth = 923 + ExplicitHeight = 482 + inherited pagGeneral: TTabSheet + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 915 + ExplicitHeight = 454 + inline frViewEmpleado1: TfrViewEmpleado + Left = 0 + Top = 0 + Width = 915 + Height = 454 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 915 + ExplicitHeight = 454 + inherited dxLayoutControlContacto: TdxLayoutControl + Width = 915 + Height = 454 + LookAndFeel = dxLayoutOfficeLookAndFeel + ExplicitWidth = 915 + ExplicitHeight = 454 + inherited PngSpeedButton1: TPngSpeedButton + Left = 870 + Top = 218 + ExplicitLeft = 870 + ExplicitTop = 218 + end + inherited PngSpeedButton2: TPngSpeedButton + Left = 870 + Top = 190 + ExplicitLeft = 870 + ExplicitTop = 190 + end + inherited PngSpeedButton3: TPngSpeedButton + Left = 870 + Top = 162 + ExplicitLeft = 870 + ExplicitTop = 162 + end + inherited eCalle: TcxDBTextEdit + Top = 243 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 243 + ExplicitWidth = 341 + Width = 341 + end + inherited cbProvincia: TcxDBComboBox + Top = 270 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 270 + ExplicitWidth = 240 + Width = 240 + end + inherited cbPoblacion: TcxDBComboBox + Top = 297 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 297 + ExplicitWidth = 341 + Width = 341 + end + inherited eCodigoPostal: TcxDBTextEdit + Left = 397 + Top = 270 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 397 + ExplicitTop = 270 + end + inherited eObservaciones: TcxDBMemo + Top = 375 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 375 + ExplicitWidth = 871 + ExplicitHeight = 63 + Height = 63 + Width = 871 + end + inherited eFechaNacimiento: TcxDBDateEdit + Top = 84 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 84 + ExplicitWidth = 341 + Width = 341 + end + inherited eFechaAltaEmpresa: TcxDBDateEdit + Top = 111 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 111 + ExplicitWidth = 341 + Width = 341 + end + inherited cbCategoria: TcxDBComboBox + Top = 138 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 138 + ExplicitWidth = 341 + Width = 341 + end + inherited cbContrato: TcxDBComboBox + Left = 585 + Top = 270 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 585 + ExplicitTop = 270 + ExplicitWidth = 308 + Width = 308 + end + inherited eDuracionContrato: TcxDBTextEdit + Left = 585 + Top = 297 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 585 + ExplicitTop = 297 + ExplicitWidth = 308 + Width = 308 + end + inherited eTlfParticular: TcxDBTextEdit + Left = 585 + Top = 57 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 585 + ExplicitTop = 57 + ExplicitWidth = 308 + Width = 308 + end + inherited eTlfTrabajo: TcxDBTextEdit + Left = 585 + Top = 30 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 585 + ExplicitTop = 30 + ExplicitWidth = 308 + Width = 308 + end + inherited eTlfMovil: TcxDBTextEdit + Left = 585 + Top = 84 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 585 + ExplicitTop = 84 + ExplicitWidth = 308 + Width = 308 + end + inherited eFax: TcxDBTextEdit + Left = 585 + Top = 111 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 585 + ExplicitTop = 111 + ExplicitWidth = 308 + Width = 308 + end + inherited eNombre: TcxDBTextEdit + Top = 57 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 57 + ExplicitWidth = 341 + Width = 341 + end + inherited eNIFCIF: TcxDBTextEdit + Left = 259 + Top = 30 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 259 + ExplicitTop = 30 + ExplicitWidth = 203 + Width = 203 + end + inherited eMailTrabajo: TcxDBHyperLinkEdit + Left = 585 + Top = 162 + Properties.Prefix = 'mailto:' + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 585 + ExplicitTop = 162 + ExplicitWidth = 279 + Width = 279 + end + inherited eMailParticular: TcxDBHyperLinkEdit + Left = 585 + Top = 190 + Properties.Prefix = 'mailto:' + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 585 + ExplicitTop = 190 + ExplicitWidth = 279 + Width = 279 + end + inherited eFechaBaja: TcxDBDateEdit + Top = 165 + Properties.ImmediatePost = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 165 + ExplicitWidth = 341 + Width = 341 + end + inherited eCausaBaja: TcxDBTextEdit + Top = 192 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 192 + ExplicitWidth = 341 + Width = 341 + end + inherited ePaginaWeb: TcxDBHyperLinkEdit + Left = 585 + Top = 217 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 585 + ExplicitTop = 217 + ExplicitWidth = 279 + Width = 279 + end + inherited eReferencia: TcxDBTextEdit + Top = 30 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 30 + ExplicitWidth = 105 + Width = 105 + end + inherited ePersonaContacto: TcxDBTextEdit + Top = 324 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 324 + ExplicitWidth = 341 + Width = 341 + end + end + inherited dsContacto: TDADataSource + Left = 8 + Top = 64 + end + end + end + inherited pagDatosBancarios: TTabSheet + ExplicitWidth = 915 + ExplicitHeight = 454 + inherited frViewListaDatosBancarios: TfrViewListaDatosBancarios + Width = 915 + Height = 454 + ExplicitWidth = 915 + ExplicitHeight = 454 + inherited cxGrid: TcxGrid + Width = 915 + Height = 429 + ExplicitWidth = 915 + ExplicitHeight = 429 + end + inherited ToolBar1: TToolBar + Width = 915 + ExplicitWidth = 915 + inherited ToolButton1: TToolButton + ExplicitWidth = 62 + end + inherited ToolButton4: TToolButton + ExplicitWidth = 74 + end + inherited ToolButton2: TToolButton + ExplicitWidth = 67 + end + inherited ToolButton7: TToolButton + ExplicitWidth = 117 + end + end + end + end + inherited pagPersonal: TTabSheet + TabVisible = False + ExplicitWidth = 915 + ExplicitHeight = 454 + inherited frViewPersonalContacto1: TfrViewPersonalContacto + Width = 915 + Height = 454 + ExplicitWidth = 915 + ExplicitHeight = 454 + inherited cxGrid: TcxGrid + Width = 915 + Height = 429 + ExplicitWidth = 915 + ExplicitHeight = 429 + end + inherited ToolBar1: TToolBar + Width = 915 + ExplicitWidth = 915 + inherited ToolButton1: TToolButton + ExplicitWidth = 62 + end + inherited ToolButton4: TToolButton + ExplicitWidth = 74 + end + inherited ToolButton2: TToolButton + ExplicitWidth = 67 + end + inherited ToolButton7: TToolButton + ExplicitWidth = 117 + end + end + end + end + object pagFormacion: TTabSheet + Caption = 'Formaci'#243'n' + ImageIndex = 2 + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 0 + ExplicitHeight = 0 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 915 + Height = 454 + Align = alClient + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + LookAndFeel = dxLayoutOfficeLookAndFeel + object eFormacionBasica: TcxDBMemo + Left = 22 + Top = 30 + DataBinding.DataField = 'FORMACION_BASE' + DataBinding.DataSource = frViewEmpleado1.dsContacto + Properties.ScrollBars = ssVertical + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 0 + Height = 116 + Width = 871 + end + object eFormacionComplementaria: TcxDBMemo + Left = 22 + Top = 176 + DataBinding.DataField = 'FORMACION_COMPLE' + DataBinding.DataSource = frViewEmpleado1.dsContacto + Properties.ScrollBars = ssVertical + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 1 + Height = 116 + Width = 871 + end + object eFormacionRecibida: TcxDBMemo + Left = 22 + Top = 322 + DataBinding.DataField = 'FORMACION_RECIBIDA' + DataBinding.DataSource = frViewEmpleado1.dsContacto + Properties.ScrollBars = ssVertical + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 2 + Height = 116 + Width = 871 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + Caption = 'Formaci'#243'n b'#225'sica' + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + AutoAligns = [aaHorizontal] + AlignVert = avClient + Caption = 'Formaci'#243'n basica' + object dxLayoutControl1Item1: TdxLayoutItem + AutoAligns = [aaHorizontal] + AlignVert = avClient + Control = eFormacionBasica + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group2: TdxLayoutGroup + AutoAligns = [aaHorizontal] + AlignVert = avClient + Caption = 'Fomaci'#243'n complementaria' + object dxLayoutControl1Item2: TdxLayoutItem + AutoAligns = [aaHorizontal] + AlignVert = avClient + Control = eFormacionComplementaria + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group3: TdxLayoutGroup + AutoAligns = [aaHorizontal] + AlignVert = avClient + Caption = 'Formaci'#243'n recibida' + object dxLayoutControl1Item3: TdxLayoutItem + AutoAligns = [aaHorizontal] + AlignVert = avClient + Control = eFormacionRecibida + ControlOptions.ShowBorder = False + end + end + end + end + end + object pagExperiencia: TTabSheet + Caption = 'Experiencia' + ImageIndex = 3 + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 0 + ExplicitHeight = 0 + object dxLayoutControl2: TdxLayoutControl + Left = 0 + Top = 0 + Width = 915 + Height = 454 + Align = alClient + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + LookAndFeel = dxLayoutOfficeLookAndFeel + object eExperiencia: TcxDBMemo + Left = 22 + Top = 30 + Align = alClient + DataBinding.DataField = 'EXPERIENCIA' + DataBinding.DataSource = frViewEmpleado1.dsContacto + Properties.ScrollBars = ssVertical + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 0 + Height = 408 + Width = 871 + end + object dxLayoutGroup1: TdxLayoutGroup + Caption = 'Formaci'#243'n b'#225'sica' + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutGroup3: TdxLayoutGroup + AutoAligns = [aaHorizontal] + AlignVert = avClient + Caption = 'Experiencia (Acci'#243'n formativa / Fecha / Duraci'#243'n)' + object dxLayoutItem1: TdxLayoutItem + AutoAligns = [aaHorizontal] + AlignVert = avClient + Control = eExperiencia + ControlOptions.ShowBorder = False + end + end + end + end + end + end + inherited StatusBar: TJvStatusBar + Top = 564 + Width = 929 + ExplicitTop = 564 + ExplicitWidth = 929 + end + inherited EditorActionList: TActionList + object actGruposEmpleado: TAction + Category = 'Acciones' + Caption = 'Categorias de empleado' + ImageIndex = 21 + OnExecute = actGruposEmpleadoExecute + end + end + inherited SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001B24944415478DA9D52A16E1B41109D6366595810C90B0307069E59E0 + B29665A1E141B32E3474BF20070FAE1462B8259555D22D88643889A5C8F04C1A + 57AAB4797B4E9C334875CA48A3B9B9BB79F366DE14D433EB6DA27D4BB427AAAD + 2F68809DFC641B9358338518C94F3F02509BA4B5A6B802C02C0C03E8D36EE1AC + 15859520C157BC6F1163138BF70132ED0B7E01688F9E2B73942500FCFF00403B + 773E1410E90B4512A4EB9C41338BB894F701FA495995093BA4185054BF75559F + 9432A5719AB555238C18420D772DEC1460CA495D12893FA55D5E950E637E554A + 75B9ACC190DA6FBEF1D509005B4EAFCBEBD3365F8CA0F398993B85ECD462D161 + E7664E0D920A85892F995040B215922814D771B7582C5421F32AE59FDAA3946D + 27611773F72614D84137020A288FE1E68EC068823C7400E3BCB96DAE82FEE8B0 + CB113204B8591DF65496B66656D7F9390AA3819AC4A509459CD924C11FB8BE1C + D39111AC122AF8CA630AFD8B21B13563728BDF50427634223368076E2E3871DC + 47BECA100F4AEC3508C7FB41001500F2EC4A9D51F0DFBBE2AC94ACC330809BDB + BBE6E70FFAFCE7E92F6D1E1E69B3FD87156D9EB43E37CFDA01027CC229770400 + 00000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end> + Bitmap = {} + end +end diff --git a/Source/Modulos/Contactos/Views/uEditorEmpleado.pas b/Source/Modulos/Contactos/Views/uEditorEmpleado.pas new file mode 100644 index 0000000..0c78cd0 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorEmpleado.pas @@ -0,0 +1,129 @@ +unit uEditorEmpleado; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + uEditorContacto, JvAppStorage, JvAppRegistryStorage, JvComponentBase, + JvFormPlacement, DB, uDADataTable, ImgList, PngImageList, StdActns, ActnList, + ComCtrls, TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, + JvComponent, JvNavigationPane, uCustomView, uViewBase, uViewContacto, + uViewEmpleado, uBizContactos, + uIEditorEmpleado, pngimage, TBXStatusBars, JvExComCtrls, JvStatusBar, + uViewDetallesGenerico, uViewContactoDatosBancarios, dxLayoutLookAndFeels, + dxLayoutControl, cxContainer, cxEdit, cxTextEdit, cxMemo, cxDBEdit, cxControls, + uDAInterfaces, uViewContactoListaDatosBancarios, uViewPersonalContacto; + +type + TfEditorEmpleado = class(TfEditorContacto, IEditorEmpleado) + frViewEmpleado1: TfrViewEmpleado; + pagFormacion: TTabSheet; + pagExperiencia: TTabSheet; + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Item1: TdxLayoutItem; + eFormacionBasica: TcxDBMemo; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Item2: TdxLayoutItem; + eFormacionComplementaria: TcxDBMemo; + dxLayoutControl1Group2: TdxLayoutGroup; + dxLayoutControl1Item3: TdxLayoutItem; + eFormacionRecibida: TcxDBMemo; + dxLayoutControl1Group3: TdxLayoutGroup; + dxLayoutControl2: TdxLayoutControl; + eExperiencia: TcxDBMemo; + dxLayoutGroup1: TdxLayoutGroup; + dxLayoutGroup3: TdxLayoutGroup; + dxLayoutItem1: TdxLayoutItem; + actGruposEmpleado: TAction; + procedure actGruposEmpleadoExecute(Sender: TObject); + protected + procedure EliminarInterno; override; + procedure ImprimirInterno; override; + procedure PrevisualizarInterno; override; + procedure SetContacto(const Value: IBizContacto); override; + public + constructor Create(AOwner: TComponent); override; + procedure PonerTitulos(const ATitulo: string = ''); override; + end; + +implementation + +uses + uEditorDBItem, uDialogUtils, uGruposEmpleadoController, uBizGruposEmpleado, + uEmpleadosController; + +{$R *.dfm} + +{ TfEditorEmpleado } + +procedure TfEditorEmpleado.actGruposEmpleadoExecute(Sender: TObject); +var + AGruposController : IGruposEmpleadoController; + AGrupos : IBizGrupoEmpleado; +begin + AGruposController := TGruposEmpleadoController.Create; + try + AGrupos := (AGruposController.BuscarTodos as IBizGrupoEmpleado); + AGruposController.VerTodos(AGrupos); + finally + AGrupos := NIL; + AGruposController := NIL; + end; +end; + +constructor TfEditorEmpleado.Create(AOwner: TComponent); +begin + inherited; + ViewContacto := frViewEmpleado1; +end; + +procedure TfEditorEmpleado.EliminarInterno; +begin + if (ShowConfirmMessage('¿Desea borrar este empleado?', '') = IDYES) then + inherited; +end; + +procedure TfEditorEmpleado.ImprimirInterno; +var + AFichas: IBizEmpleado; +begin + AFichas := Nil; + AFichas := (Contacto as IBizEmpleado); + + if Assigned(AFichas) then + (FController as IEmpleadosController).Print(AFichas); +end; + +procedure TfEditorEmpleado.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + if Assigned(Contacto) then + begin + if Contacto.EsNuevo then + FTitulo := 'Nuevo empleado' + else + FTitulo := 'Empleado'; + end; + + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorEmpleado.PrevisualizarInterno; +var + AFichas: IBizEmpleado; +begin + AFichas := Nil; + AFichas := (Contacto as IBizEmpleado); + + if Assigned(AFichas) then + (FController as IEmpleadosController).Preview(AFichas); +end; + +procedure TfEditorEmpleado.SetContacto(const Value: IBizContacto); +begin + inherited; +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uEditorEmpleados.dcu b/Source/Modulos/Contactos/Views/uEditorEmpleados.dcu new file mode 100644 index 0000000..660eb22 Binary files /dev/null and b/Source/Modulos/Contactos/Views/uEditorEmpleados.dcu differ diff --git a/Source/Modulos/Contactos/Views/uEditorEmpleados.dfm b/Source/Modulos/Contactos/Views/uEditorEmpleados.dfm new file mode 100644 index 0000000..271d023 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorEmpleados.dfm @@ -0,0 +1,2456 @@ +inherited fEditorEmpleados: TfEditorEmpleados + Caption = 'fEditorEmpleados' + ClientWidth = 786 + ExplicitWidth = 794 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 786 + Caption = 'Lista de empleados' + ExplicitWidth = 786 + inherited Image1: TImage + Left = 759 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 520000000467414D410000AA11B57D14DC0000034C4944415478DADD957D6855 + 651CC73FF76DF765BA983ACBC0596BB685CB940DA36CA50B75883303238723B7 + 4C170C86A62DDF865B9148ADC02982427F0863040D05C1A0185AD1B217274AD2 + 1F8349EA9DB9EBBCDEBB73CFDD793F3DF7EA46977B6CFDE1FEE9811FCF73CEF3 + 9CEFE7FB3C3F7ECF71D9B6CD5436D7FF0370EAEC9529A1BC5E55E69A00888789 + 0943BDC350FFE744C357310D9B59256B78A2BC2E4BC0342D1176BAD72D3136AC + F4D8B04C566DD8C9E5DEE3CE80F02FAD684303C4E28A880449D343716503A54B + 6AFF9378AA5FBDB1C51970ADAF05257C0DD3CA419264128924922C2325A32CDB + 7484B9A5CB27C45BBA74C7A379AF3A49CD5BBBB20172E40283DF77908C8D89E4 + 78C5521B9FC785A66B444622E43D594EE58623FFEA3C1D96CDBAFADDD98091C1 + 1E6E9CEFC2D23C84822182393E5C082145454E2619888479EDFD5FD3229A6EB2 + BFC739B94D5512EBDFD9EB0C88FDDE4380103EAF4FB833D0755D8486AAAA0CC4 + 2C56367E8561A41CA7DC9AF7DDDF736EA57626DCEB625CDBD89A0D88877F267A + A91BF7580CB75B78171F1AF72192AC303AF3652AAA9B27154F1D5B5DD37EE724 + DFE83B8A7ABD4F1CBF496AEE1E40231CF752B462170585CF4E2A9E7AB7A9B9DD + 19702EDC4FE2BB0E1E53147C22C9BAA13324EB8CE49751B1A489C7E7CC9E543C + 35B779DB47D980DE4BB7D877E2327FC66EB1B6EC4BD63F5ACCCDD1289F4915FC + F513AC5C309796CDCF313377565A6877C769C7246FABAF62EB8E8F33010B9F29 + A4FD8B8BF45E8820FB0214E40EB3B1A684EB37E37C7D3E81AD06F1246EF3CAA2 + 6934D69531EF913919CE7523F3D89A3E389809D0BCB97C78F847E20937EAF419 + 681E8382600CC50C30AA4C27646878E32344B561D6BE5844DBD6E5B41F3EE3B8 + 83776B2B69DEF3492660F02E1CE8FC813CBF1F35948FE69F260A491175E02547 + 5C857E45C22B451956A23C5D9C4777DB1B18E385F50FE7E385B67DDFA7998031 + 3B48EBA16F514515BB03F918FE5C6C9F0FC4628FA6E2D512C8F25D64B74ACDD2 + 52F6BCBD9483C7BE71DCC196375FCA0654BF50C2C53F86E83CD9CF6F57AEA6AF + 01DB72A5AF0B976D099045207F067B1B16B0B8B0F881CEC75B16E0D5E7E73FF0 + 5E49BF33C77B6B527147C0B2F2A71E9AB823A0ED40E743FFA34D00A6B24D39E0 + 6FAF6B45FE0D6316680000000049454E44AE426082} + ExplicitLeft = 759 + end + end + inherited TBXDock: TTBXDock + Width = 786 + ExplicitWidth = 786 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 632 + inherited TBXItem2: TTBXItem + ImageIndex = 22 + Images = SmallImages + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 786 + end + end + inherited StatusBar: TJvStatusBar + Width = 786 + ExplicitWidth = 786 + end + inline frViewEmpleados1: TfrViewEmpleados [3] + Left = 0 + Top = 102 + Width = 786 + Height = 323 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 102 + ExplicitWidth = 786 + ExplicitHeight = 323 + inherited cxGrid: TcxGrid + Width = 786 + Height = 195 + ExplicitWidth = 786 + ExplicitHeight = 195 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = '0 empleados' + Kind = skCount + FieldName = 'ID' + Column = frViewEmpleados1.cxGridViewNIF_CIF + end> + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 786 + ExplicitWidth = 786 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 786 + inherited dxLayoutControl1: TdxLayoutControl + Width = 786 + ExplicitWidth = 786 + inherited txtFiltroTodo: TcxTextEdit + ExplicitWidth = 689 + Width = 689 + end + inherited edtFechaIniFiltro: TcxDateEdit + ExplicitWidth = 290 + Width = 290 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 394 + ExplicitLeft = 394 + ExplicitWidth = 382 + Width = 382 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 786 + ExplicitWidth = 786 + inherited tbxBotones: TTBXToolbar + Width = 776 + ExplicitWidth = 776 + end + end + end + inherited PngImageList: TPngImageList + Left = 392 + Top = 64 + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 297 + ExplicitTop = 297 + ExplicitWidth = 786 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 786 + ExplicitWidth = 786 + inherited TBXToolbar1: TTBXToolbar + Width = 776 + ExplicitWidth = 776 + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39211.791626689820000000 + BuiltInReportLink = True + end + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewEmpleados1.cxGridView + HitTypes = [gvhtCell] + Index = 0 + end> + end + end + inherited EditorActionList: TActionList [4] + Left = 72 + Top = 160 + inherited actPrevisualizar: TAction + Enabled = True + Visible = True + end + inherited actImprimir: TAction + Enabled = True + Visible = True + end + end + inherited SmallImages: TPngImageList [5] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001FE4944415478DA + A593DD4B145118C69F5574D5458A40DD44FCCA9B42D88B8494104A1242C4AF0B + 4DF1CA3FA08822C110F7C6BA124151BB8990F422304183564165053FD05D575C + 4334694D8D1A97C65DDB666677CE7C78668C1D16F3A276E0F09EC3CCFB7B9EF3 + CEFB9A5455453C8F697C76332E820EA8AF28D60F9C7F0DA1832D7D9F9E7B0396 + CC9BD10F15EA54921410498648641A2554363E31005AF2D14A1FF85F0447FE63 + 302106775B06905D741B92ACE0E9B018A39C9F308B37231367809AF2027C5DB0 + 23B0E7832CD3B7AA8C60F0043FC301343DF79CA9D225114557D6CEEFA7960C40 + 755906761C8F00DE044B6A2A122980E37878F677D1D0EED293BBDEE16207D565 + 567C737622391CA1EAA077142108027E485750D2DC1FA3ACD541033A9C2E03A0 + D58071BF05B7EBD0FC831082102F42C9AF4351E98373C984167166D1130B18DB + 6710986B43B198421D44B0282AB0DAECA8B25D3F97ACADF9D50D0390919783D6 + A14F601358D4DE8B4015C3F8E8B420B8EEC6C1E8333DB9A36732A606B76C9906 + E0C31782B1E94384AC57713999859A988413E112D2FCDFC1B3CBD87EFD38AA4C + FEF482CBBB6500BAE759F8DC8710B27211369B697B9990F29B83F998A1202F36 + 5F3D44F7E0D4C50E1A7A97E92FF4FDBD57D30AE17E795F579515558F0A8DDEED + CF06E04EC9350C8FCFFDF31C4401F6177DFF3F4CF18EF329BD276228E7D4407E + 0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000034D4944415478DA + DD957D6855651CC73FF7E56CF7DEE962EA340397D96C0B97291B8AD95227EA08 + 6706460E476AA60B06C3B7966FC3AD482457D01441A13F842141232128288656 + B4ECC58992F8C760E2CB9DB9DBBABBD773CFDD793F3DF7EA86977B74FDE1FEE9 + 811FCF73CEF39CEFE7FB3C3F7ECFF1388EC37836CFFF0370E6EC9571A1BC5E55 + E619058887D10953FB87FE9E4F8986AF61990E534A5633B3BC2E4BC0B26C114E + BA376C3136EDF4D8B42D56ADDFCDE5AE93EE80F06FCDE8FDBDC4E2AA880449CB + 4771E5664A17D4FE27F154FFEA862677C08DEE26D4F00D2C3B075956482492C8 + 8A829C8CB274E33166942E1B156FEA305C8F666775929AB7F6640394C805FA7E + 6C23191B16C9F18BA50E92CF836EE8440623E43F534EE5FA638F749E0EDB61ED + A6BDD980C1BE4E6E9DEFC0D67D8482218239121E8490AAA12493F446C2BCF6DE + EF6911DDB038D8E99EDC862A9975EFEC7707C4FEEC244008C92F097726866188 + D0D1348DDE98CDCAFA2F31CD94E3945BEBBEFB7BCEEDD4CE847B438C6BEB9BB3 + 01F1F0AF442F9DC63B1CC3EB15DEC587E67D88ACA8DC9DFC0A15D58D638AA78E + ADAEE1A07B926F751F47BBD92D8EDF2235770FA0138EFB99B5620F85452F8C29 + 9E7AB7B1B1D51D702EDC43E287369E5455249164C334E8570C060BCAA858D0C0 + 53D3A78E299E9ADBB2FDC36C40D7A53B1C387599EBB13BAC29FB8275D38AB97D + 37CA2772057FFD022BE7CCA069CB8B4CCE9B9216DADBF6B56B92B76FAA62DBAE + 8F3201739F2FA2F5F38B745D88A048010AF306D85053C2CDDB71BE3D9FC0D182 + F8127FB364DE04EAEBCA78FA89E919CE0D33F3D81ADE3F9C09D0FD797C70F467 + E2092FDAC449E83E93C2608C612B80AC4E2464EAF8E2830CE903AC7969162DDB + 96D17AF41BD71DBC5B5B49E3BE8F33017D4370A8FD27F27373D14205E8B91344 + 21A9A20EFCE488AB30479591E428036A94E78AF339DDF206E648613DE07CA4D0 + 761C389209187682347FF63D9AA8626FA00033370F4792402CF6EA1A929E4051 + 8650BC1A358B4BD9F7F6620E9FF8CE75075BDF7C391B50BDA8848B57FB69FFAA + 873FAE5C4B5F038EED495F171EC716209B40C124F66F9EC3FCA2E2873A1F6959 + 80E50B673FF45E49BFB3467A7B4C7157C0D2F2671F9BB82BA0E550FB63FFA38D + 02C6B38D3BE05FAF5B45FEC8107D9F0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [7] + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage + Left = 440 + end + inherited dsDataTable: TDADataSource [9] + end + inherited StatusBarImages: TPngImageList [10] + end + object JsPrevisualizarDialog: TJSDialog + Content.Strings = ( + 'Elija una opci'#243'n:') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Previsualizar...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Previsualizar la ficha/s de emplado seleccionada/s' + Value = 100 + Default = True + end + item + Caption = 'Previsualizar la lista de empleados actual' + Value = 200 + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 296 + Top = 144 + end + object JsImprimirDialog: TJSDialog + Content.Strings = ( + 'Elija una opci'#243'n:') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Imprimir...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Imprimir la ficha/s de empleado seleccionada/s' + Value = 100 + Default = True + end + item + Caption = 'Imprimir la lista de empleados actual' + Value = 200 + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 328 + Top = 144 + end + object JsListaContactosNoEliminados: TJSDialog + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = + 'Los siguientes empleados no han podido ser eliminados, porque ti' + + 'enen documentos asociados' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + ButtonBar.Buttons = [cbOK] + ButtonBar.Cancel = cbOK + ButtonBar.UseCancel = False + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 184 + Top = 112 + end +end diff --git a/Source/Modulos/Contactos/Views/uEditorEmpleados.pas b/Source/Modulos/Contactos/Views/uEditorEmpleados.pas new file mode 100644 index 0000000..911d4e3 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorEmpleados.pas @@ -0,0 +1,185 @@ +unit uEditorEmpleados; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + uEditorContactos, Menus, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, + StdActns, ActnList, uCustomView, uViewBase, uViewBarraSeleccion, ComCtrls, + TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, + JvExControls, JvComponent, JvNavigationPane, uViewGridBase, uViewGrid, + uViewContactos, uViewEmpleados, uIEditorEmpleados, pngimage, TBXStatusBars, + JvExComCtrls, JvStatusBar, JSDialog, uContactosController, uDAInterfaces; + +type + TfEditorEmpleados = class(TfEditorContactos, IEditorEmpleados) + frViewEmpleados1: TfrViewEmpleados; + JsPrevisualizarDialog: TJSDialog; + JsImprimirDialog: TJSDialog; + JsListaContactosNoEliminados: TJSDialog; + + protected + procedure EliminarInterno; override; + procedure ImprimirInterno; override; + procedure PrevisualizarInterno; override; + + public + constructor Create(AOwner: TComponent); override; + procedure PonerTitulos(const ATitulo: string = ''); override; + end; + +implementation + +uses + uGridStatusUtils, uEditorGridBase, uDataModuleUsuarios, uDialogUtils, uBizContactos, + uEmpleadosController, uDBSelectionListUtils, uFactuGES_App; + +{$R *.dfm} + +constructor TfEditorEmpleados.Create(AOwner: TComponent); +begin + inherited; + ViewGrid := frViewEmpleados1; +end; + +procedure TfEditorEmpleados.EliminarInterno; +var + AContactos: IBizContacto; + AllItems: Boolean; +begin + AContactos := Nil; + AllItems := False; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + if AllItems then + begin + if (Application.MessageBox('Desea borrar los empleados seleccionados?', 'Atencin', MB_YESNO) = IDYES) then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Contactos as ISeleccionable).SelectedRecords); + AContactos := (Controller as IEmpleadosController).ExtraerSeleccionados(Contactos) as IBizContacto; + end + end + else begin + if (Application.MessageBox('Desea borrar el empleado seleccionado?', 'Atencin', MB_YESNO) = IDYES) then + AContactos := Contactos; + end; + + if Assigned(AContactos) then + begin + (FController as IEmpleadosController).Eliminar(AContactos, AllItems); + if AllItems then + begin + if (AContactos.DataTable.RecordCount > 0) then + begin + with AContactos.DataTable do + begin + First; + while not EOF do + begin + JsListaContactosNoEliminados.Content.Add('Empleado: ' + AContactos.NOMBRE); + Next; + end; + end; + JsListaContactosNoEliminados.Execute; + end; + actRefrescar.Execute; + end; + end; + + ViewGrid.GotoFirst; +end; + +procedure TfEditorEmpleados.ImprimirInterno; +var + Respuesta : Integer; + AFichas: IBizEmpleado; + AllItems: Boolean; +begin + AFichas := Nil; + AllItems := False; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + //Si esta agrupado solo podr imprimir la lista de elementos visibles + if not ViewGrid.esSeleccionCeldaDatos then + inherited + else + begin + Respuesta := JsPrevisualizarDialog.Execute; + if Respuesta <> IDCANCEL then + begin + case JsPrevisualizarDialog.CustomButtonResult of + 200 : begin // Lista de elementos visibles + inherited; + end; + 100 : begin // Elemento Seleccionado + if AllItems then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Contactos as ISeleccionable).SelectedRecords); + AFichas := (Controller as IEmpleadosController).ExtraerSeleccionados(Contactos) as IBizEmpleado; + end + else + AFichas := (Contactos as IBizEmpleado); + + if Assigned(AFichas) then + (FController as IEmpleadosController).Print(AFichas, AllItems); + end; + end; + end; + end; +end; + +procedure TfEditorEmpleados.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := 'Lista de empleados - ' + AppFactuGES.EmpresaActiva.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorEmpleados.PrevisualizarInterno; +var + Respuesta : Integer; + AFichas: IBizEmpleado; + AllItems: Boolean; +begin + AFichas := Nil; + AllItems := False; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + //Si esta agrupado solo podr imprimir la lista de elementos visibles + if not ViewGrid.esSeleccionCeldaDatos then + inherited + else + begin + Respuesta := JsPrevisualizarDialog.Execute; + if Respuesta <> IDCANCEL then + begin + case JsPrevisualizarDialog.CustomButtonResult of + 200 : begin // Lista de elementos visibles + inherited; + end; + 100 : begin // Elemento Seleccionado + if AllItems then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Contactos as ISeleccionable).SelectedRecords); + AFichas := (Controller as IEmpleadosController).ExtraerSeleccionados(Contactos) as IBizEmpleado; + end + else + AFichas := (Contactos as IBizEmpleado); + + if Assigned(AFichas) then + (FController as IEmpleadosController).Preview(AFichas, AllItems); + end; + end; + end; + end; +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uEditorEtiquetasContactosReport.dcu b/Source/Modulos/Contactos/Views/uEditorEtiquetasContactosReport.dcu new file mode 100644 index 0000000..97257d6 Binary files /dev/null and b/Source/Modulos/Contactos/Views/uEditorEtiquetasContactosReport.dcu differ diff --git a/Source/Modulos/Contactos/Views/uEditorEtiquetasContactosReport.dfm b/Source/Modulos/Contactos/Views/uEditorEtiquetasContactosReport.dfm new file mode 100644 index 0000000..6d9c73c --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorEtiquetasContactosReport.dfm @@ -0,0 +1,22 @@ +inherited fEditorEtiquetasContactosPreview: TfEditorEtiquetasContactosPreview + Caption = 'Previsualizar la factura' + ExplicitWidth = 803 + ExplicitHeight = 240 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + ExplicitWidth = 795 + inherited Image1: TImage + Left = 768 + ExplicitLeft = 768 + end + end + inherited StatusBar: TJvStatusBar + ExplicitWidth = 795 + end + inherited frxReport1: TfrxReport + Datasets = <> + Variables = <> + Style = <> + end +end diff --git a/Source/Modulos/Contactos/Views/uEditorEtiquetasContactosReport.pas b/Source/Modulos/Contactos/Views/uEditorEtiquetasContactosReport.pas new file mode 100644 index 0000000..6678721 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorEtiquetasContactosReport.pas @@ -0,0 +1,28 @@ +unit uEditorEtiquetasContactosReport; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorPreview, frxExportImage, frxExportPDF, frxDCtrl, frxClass, + frxDMPExport, frxGradient, frxChBox, frxCross, frxRich, frxOLE, + frxBarcode, JvAppStorage, JvAppRegistryStorage, JvComponentBase, + JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, + TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, + ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uIEditorEtiquetasContactosPreview, + JvExComCtrls, JvStatusBar; + +type + TfEditorEtiquetasContactosPreview = class(TfEditorPreview, IEditorEtiquetasContactosPreview) + private + { Private declarations } + public + { Public declarations } + end; + + +implementation + +{$R *.dfm} + +end. diff --git a/Source/Modulos/Contactos/Views/uEditorFichasEmpleadoReport.dcu b/Source/Modulos/Contactos/Views/uEditorFichasEmpleadoReport.dcu new file mode 100644 index 0000000..95bf027 Binary files /dev/null and b/Source/Modulos/Contactos/Views/uEditorFichasEmpleadoReport.dcu differ diff --git a/Source/Modulos/Contactos/Views/uEditorFichasEmpleadoReport.dfm b/Source/Modulos/Contactos/Views/uEditorFichasEmpleadoReport.dfm new file mode 100644 index 0000000..5ab584a --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorFichasEmpleadoReport.dfm @@ -0,0 +1,22 @@ +inherited fEditorFichasEmpleadoPreview: TfEditorFichasEmpleadoPreview + Caption = 'Previsualizar la factura' + ExplicitWidth = 803 + ExplicitHeight = 240 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + ExplicitWidth = 795 + inherited Image1: TImage + Left = 768 + ExplicitLeft = 768 + end + end + inherited StatusBar: TJvStatusBar + ExplicitWidth = 795 + end + inherited frxReport1: TfrxReport + Datasets = <> + Variables = <> + Style = <> + end +end diff --git a/Source/Modulos/Contactos/Views/uEditorFichasEmpleadoReport.pas b/Source/Modulos/Contactos/Views/uEditorFichasEmpleadoReport.pas new file mode 100644 index 0000000..21e843f --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorFichasEmpleadoReport.pas @@ -0,0 +1,28 @@ +unit uEditorFichasEmpleadoReport; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorPreview, frxExportImage, frxExportPDF, frxDCtrl, frxClass, + frxDMPExport, frxGradient, frxChBox, frxCross, frxRich, frxOLE, + frxBarcode, JvAppStorage, JvAppRegistryStorage, JvComponentBase, + JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, + TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, + ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uIEditorFichasEmpleadoPreview, + JvExComCtrls, JvStatusBar; + +type + TfEditorFichasEmpleadoPreview = class(TfEditorPreview, IEditorFichasEmpleadoPreview) + private + { Private declarations } + public + { Public declarations } + end; + + +implementation + +{$R *.dfm} + +end. diff --git a/Source/Modulos/Contactos/Views/uEditorGruposCliente.dcu b/Source/Modulos/Contactos/Views/uEditorGruposCliente.dcu new file mode 100644 index 0000000..b6275ae Binary files /dev/null and b/Source/Modulos/Contactos/Views/uEditorGruposCliente.dcu differ diff --git a/Source/Modulos/Contactos/Views/uEditorGruposCliente.dfm b/Source/Modulos/Contactos/Views/uEditorGruposCliente.dfm new file mode 100644 index 0000000..9e15dfb --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorGruposCliente.dfm @@ -0,0 +1,142 @@ +object fEditorGruposCliente: TfEditorGruposCliente + Left = 453 + Top = 234 + ActiveControl = ListaGruposCliente + BorderIcons = [biSystemMenu] + BorderStyle = bsSingle + Caption = 'Administraci'#243'n de grupos de clientes' + ClientHeight = 499 + ClientWidth = 404 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = CustomEditorClose + OnShow = FormShow + InstanceID = 0 + ReadOnly = False + PixelsPerInch = 96 + TextHeight = 13 + object bAceptar: TButton + Left = 226 + Top = 464 + Width = 75 + Height = 25 + Action = actAceptar + Default = True + TabOrder = 1 + end + object bCancelar: TButton + Left = 314 + Top = 464 + Width = 75 + Height = 25 + Action = actCancelar + Cancel = True + TabOrder = 2 + end + object PageControl1: TPageControl + Left = 8 + Top = 8 + Width = 390 + Height = 442 + ActivePage = TabSheet1 + TabOrder = 0 + object TabSheet1: TTabSheet + Caption = 'Grupos de cliente' + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 0 + ExplicitHeight = 0 + object Label1: TLabel + Left = 10 + Top = 12 + Width = 121 + Height = 13 + Caption = 'Lista de grupos de cliente' + end + object ListaGruposCliente: TDBLookupListBox + Left = 8 + Top = 31 + Width = 281 + Height = 277 + KeyField = 'RecID' + ListField = 'DESCRIPCION' + ListSource = DADataSource + TabOrder = 0 + end + object bEliminar: TButton + Left = 304 + Top = 31 + Width = 75 + Height = 25 + Action = actEliminar + TabOrder = 1 + end + object GroupBox1: TGroupBox + Left = 6 + Top = 318 + Width = 369 + Height = 84 + Caption = 'A'#241'adir un nuevo grupo de cliente' + TabOrder = 2 + object eCategoria: TLabel + Left = 18 + Top = 20 + Width = 87 + Height = 13 + Caption = 'Nombre del grupo:' + end + object bAnadir: TButton + Left = 282 + Top = 38 + Width = 75 + Height = 25 + Action = actAnadir + TabOrder = 1 + end + object editGrupoCliente: TEdit + Left = 18 + Top = 40 + Width = 255 + Height = 21 + TabOrder = 0 + end + end + end + end + object ActionList1: TActionList + Left = 144 + Top = 16 + object actAnadir: TAction + Caption = '&A'#241'adir' + OnExecute = actAnadirExecute + OnUpdate = actAnadirUpdate + end + object actEliminar: TAction + Caption = '&Eliminar' + OnExecute = actEliminarExecute + OnUpdate = actEliminarUpdate + end + object actAceptar: TAction + Caption = 'A&ceptar' + OnExecute = actAceptarExecute + end + object actCancelar: TAction + Caption = '&Cancelar' + OnExecute = actCancelarExecute + end + object actCerrar: TAction + Caption = 'actCerrar' + OnExecute = actCerrarExecute + end + end + object DADataSource: TDADataSource + Left = 168 + Top = 16 + end +end diff --git a/Source/Modulos/Contactos/Views/uEditorGruposCliente.pas b/Source/Modulos/Contactos/Views/uEditorGruposCliente.pas new file mode 100644 index 0000000..a8dca27 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorGruposCliente.pas @@ -0,0 +1,179 @@ +{ +=============================================================================== + Copyright () 2006. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: 22-05-2006 + Versin actual: 1.0.0 + Fecha versin actual: 22-05-2006 +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uEditorGruposCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, DB, StdCtrls, DBCtrls, uDADataTable, ActnList, + uIEditorGruposCliente, uCustomEditor, uGUIBase, ExtCtrls, + ComCtrls, uBizGruposCliente, uGruposClienteController, uDAInterfaces; + +type + TfEditorGruposCliente = class(TCustomEditor, IEditorGruposCliente) + ActionList1: TActionList; + DADataSource: TDADataSource; + ListaGruposCliente: TDBLookupListBox; + editGrupoCliente: TEdit; + bAnadir: TButton; + actAnadir: TAction; + actEliminar: TAction; + bEliminar: TButton; + actAceptar: TAction; + actCancelar: TAction; + bAceptar: TButton; + bCancelar: TButton; + actCerrar: TAction; + PageControl1: TPageControl; + TabSheet1: TTabSheet; + GroupBox1: TGroupBox; + Label1: TLabel; + procedure FormShow(Sender: TObject); + procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); + + procedure actAnadirExecute(Sender: TObject); + procedure actEliminarExecute(Sender: TObject); + procedure actAceptarExecute(Sender: TObject); + procedure actCancelarExecute(Sender: TObject); + procedure actCerrarExecute(Sender: TObject); + procedure actAnadirUpdate(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + protected + FGruposCliente: IBizGrupoCliente; + FController: IGruposClienteController; + function GetGruposCliente: IBizGrupoCliente; + procedure SetGruposCliente(const Value: IBizGrupoCliente); + function GetController : IGruposClienteController; + procedure SetController (const Value : IGruposClienteController); + public + property GruposCliente: IBizGrupoCliente read GetGruposCliente write SetGruposCliente; + property Controller : IGruposClienteController read GetController write SetController; + end; + + +implementation +{$R *.dfm} + +{ TfEditorGruposCliente } + +uses + uDialogUtils; + + +function TfEditorGruposCliente.GetController: IGruposClienteController; +begin + Result := FController; +end; + +function TfEditorGruposCliente.GetGruposCliente: IBizGrupoCliente; +begin + Result := FGruposCliente; +end; + +procedure TfEditorGruposCliente.SetController(const Value: IGruposClienteController); +begin + FController := Value; +end; + +procedure TfEditorGruposCliente.SetGruposCliente(const Value: IBizGrupoCliente); +begin + FGruposCliente := Value; + DADataSource.DataTable := (FGruposCliente as IBizGrupoCliente).DataTable; + DADataSource.DataTable.Open; +end; + +procedure TfEditorGruposCliente.actAnadirExecute(Sender: TObject); +begin + if not FController.Localizar(GruposCliente, editGrupoCliente.Text) then + begin + GruposCliente.Append; + GruposCliente.DESCRIPCION := editGrupoCliente.Text; + GruposCliente.Post; + editGrupoCliente.Clear; + ListaGruposCliente.SetFocus; + end + else + ShowErrorMessage('Ya existe el grupo ' + editGrupoCliente.Text, + 'Ya existe el grupo de cliente ''' + editGrupoCliente.Text + ''' en la lista.'); +end; + +procedure TfEditorGruposCliente.actEliminarExecute(Sender: TObject); +begin + GruposCliente.Delete; + ListaGruposCliente.SetFocus; +end; + +procedure TfEditorGruposCliente.actEliminarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := (FGruposCliente.DataTable.RecordCount > 0) and + (Length(ListaGruposCliente.SelectedItem) > 0); + +end; + +procedure TfEditorGruposCliente.CustomEditorClose(Sender: TObject; var Action: TCloseAction); +begin + FGruposCliente := Nil; + FController := Nil; +end; + +procedure TfEditorGruposCliente.actAceptarExecute(Sender: TObject); +begin + try + GruposCliente.DataTable.ApplyUpdates; + except + on E : Exception do begin + GruposCliente.DataTable.CancelUpdates; + ShowErrorMessage('Error al guardar cambios', 'Se ha producido un error grave', E); + exit; + end; + end; + actCerrar.Execute; +end; + +procedure TfEditorGruposCliente.actCancelarExecute(Sender: TObject); +begin + GruposCliente.DataTable.CancelUpdates; + actCerrar.Execute; +end; + +procedure TfEditorGruposCliente.actCerrarExecute(Sender: TObject); +begin + Close; +end; + +procedure TfEditorGruposCliente.actAnadirUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := (Length(editGrupoCliente.Text) > 0) +end; + +procedure TfEditorGruposCliente.FormShow(Sender: TObject); +begin + if not FGruposCliente.DataTable.Active then + FGruposCliente.DataTable.Active := true; + + editGrupoCliente.SetFocus; +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uEditorGruposEmpleado.dcu b/Source/Modulos/Contactos/Views/uEditorGruposEmpleado.dcu new file mode 100644 index 0000000..cdafd77 Binary files /dev/null and b/Source/Modulos/Contactos/Views/uEditorGruposEmpleado.dcu differ diff --git a/Source/Modulos/Contactos/Views/uEditorGruposEmpleado.dfm b/Source/Modulos/Contactos/Views/uEditorGruposEmpleado.dfm new file mode 100644 index 0000000..2c7190b --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorGruposEmpleado.dfm @@ -0,0 +1,138 @@ +object fEditorGruposEmpleado: TfEditorGruposEmpleado + Left = 453 + Top = 234 + ActiveControl = ListaGruposEmpleado + BorderIcons = [biSystemMenu] + BorderStyle = bsSingle + Caption = 'Administraci'#243'n de categoras de empleados' + ClientHeight = 499 + ClientWidth = 404 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = CustomEditorClose + OnShow = FormShow + InstanceID = 0 + ReadOnly = False + PixelsPerInch = 96 + TextHeight = 13 + object bAceptar: TButton + Left = 226 + Top = 464 + Width = 75 + Height = 25 + Action = actAceptar + Default = True + TabOrder = 1 + end + object bCancelar: TButton + Left = 314 + Top = 464 + Width = 75 + Height = 25 + Action = actCancelar + Cancel = True + TabOrder = 2 + end + object PageControl1: TPageControl + Left = 8 + Top = 8 + Width = 390 + Height = 442 + ActivePage = TabSheet1 + TabOrder = 0 + object TabSheet1: TTabSheet + Caption = 'Categoras de empleado' + object Label1: TLabel + Left = 10 + Top = 12 + Width = 121 + Height = 13 + Caption = 'Lista de categoras de empleado' + end + object ListaGruposEmpleado: TDBLookupListBox + Left = 8 + Top = 31 + Width = 281 + Height = 277 + KeyField = 'RecID' + ListField = 'DESCRIPCION' + ListSource = DADataSource + TabOrder = 0 + end + object bEliminar: TButton + Left = 304 + Top = 31 + Width = 75 + Height = 25 + Action = actEliminar + TabOrder = 1 + end + object GroupBox1: TGroupBox + Left = 6 + Top = 318 + Width = 369 + Height = 84 + Caption = 'A'#241'adir una nueva categoria de empleado' + TabOrder = 2 + object eCategoria: TLabel + Left = 18 + Top = 20 + Width = 87 + Height = 13 + Caption = 'Nombre del grupo:' + end + object bAnadir: TButton + Left = 282 + Top = 38 + Width = 75 + Height = 25 + Action = actAnadir + TabOrder = 1 + end + object editGrupoEmpleado: TEdit + Left = 18 + Top = 40 + Width = 255 + Height = 21 + TabOrder = 0 + end + end + end + end + object ActionList1: TActionList + Left = 144 + Top = 16 + object actAnadir: TAction + Caption = '&A'#241'adir' + OnExecute = actAnadirExecute + OnUpdate = actAnadirUpdate + end + object actEliminar: TAction + Caption = '&Eliminar' + OnExecute = actEliminarExecute + OnUpdate = actEliminarUpdate + end + object actAceptar: TAction + Caption = 'A&ceptar' + OnExecute = actAceptarExecute + end + object actCancelar: TAction + Caption = '&Cancelar' + OnExecute = actCancelarExecute + end + object actCerrar: TAction + Caption = 'actCerrar' + OnExecute = actCerrarExecute + end + end + object DADataSource: TDADataSource + Left = 168 + Top = 16 + end +end diff --git a/Source/Modulos/Contactos/Views/uEditorGruposEmpleado.pas b/Source/Modulos/Contactos/Views/uEditorGruposEmpleado.pas new file mode 100644 index 0000000..4dc8ab9 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorGruposEmpleado.pas @@ -0,0 +1,179 @@ +{ +=============================================================================== + Copyright () 2006. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: 22-05-2006 + Versin actual: 1.0.0 + Fecha versin actual: 22-05-2006 +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uEditorGruposEmpleado; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, DB, StdCtrls, DBCtrls, uDADataTable, ActnList, + uIEditorGruposEmpleado, uCustomEditor, uGUIBase, ExtCtrls, + ComCtrls, uBizGruposEmpleado, uGruposEmpleadoController; + +type + TfEditorGruposEmpleado = class(TCustomEditor, IEditorGruposEmpleado) + ActionList1: TActionList; + DADataSource: TDADataSource; + ListaGruposEmpleado: TDBLookupListBox; + editGrupoEmpleado: TEdit; + bAnadir: TButton; + actAnadir: TAction; + actEliminar: TAction; + bEliminar: TButton; + actAceptar: TAction; + actCancelar: TAction; + bAceptar: TButton; + bCancelar: TButton; + actCerrar: TAction; + PageControl1: TPageControl; + TabSheet1: TTabSheet; + GroupBox1: TGroupBox; + Label1: TLabel; + procedure FormShow(Sender: TObject); + procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); + + procedure actAnadirExecute(Sender: TObject); + procedure actEliminarExecute(Sender: TObject); + procedure actAceptarExecute(Sender: TObject); + procedure actCancelarExecute(Sender: TObject); + procedure actCerrarExecute(Sender: TObject); + procedure actAnadirUpdate(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + protected + FGruposEmpleado: IBizGrupoEmpleado; + FController: IGruposEmpleadoController; + function GetGruposEmpleado: IBizGrupoEmpleado; + procedure SetGruposEmpleado(const Value: IBizGrupoEmpleado); + function GetController : IGruposEmpleadoController; + procedure SetController (const Value : IGruposEmpleadoController); + public + property GruposEmpleado: IBizGrupoEmpleado read GetGruposEmpleado write SetGruposEmpleado; + property Controller : IGruposEmpleadoController read GetController write SetController; + end; + + +implementation +{$R *.dfm} + +{ TfEditorGruposEmpleado } + +uses + uDialogUtils; + + +function TfEditorGruposEmpleado.GetController: IGruposEmpleadoController; +begin + Result := FController; +end; + +function TfEditorGruposEmpleado.GetGruposEmpleado: IBizGrupoEmpleado; +begin + Result := FGruposEmpleado; +end; + +procedure TfEditorGruposEmpleado.SetController(const Value: IGruposEmpleadoController); +begin + FController := Value; +end; + +procedure TfEditorGruposEmpleado.SetGruposEmpleado(const Value: IBizGrupoEmpleado); +begin + FGruposEmpleado := Value; + DADataSource.DataTable := (FGruposEmpleado as IBizGrupoEmpleado).DataTable; + DADataSource.DataTable.Open; +end; + +procedure TfEditorGruposEmpleado.actAnadirExecute(Sender: TObject); +begin + if not FController.Localizar(GruposEmpleado, editGrupoEmpleado.Text) then + begin + GruposEmpleado.Append; + GruposEmpleado.DESCRIPCION := editGrupoEmpleado.Text; + GruposEmpleado.Post; + editGrupoEmpleado.Clear; + ListaGruposEmpleado.SetFocus; + end + else + ShowErrorMessage('Ya existe el grupo ' + editGrupoEmpleado.Text, + 'Ya existe la categora de empleado ''' + editGrupoEmpleado.Text + ''' en la lista.'); +end; + +procedure TfEditorGruposEmpleado.actEliminarExecute(Sender: TObject); +begin + GruposEmpleado.Delete; + ListaGruposEmpleado.SetFocus; +end; + +procedure TfEditorGruposEmpleado.actEliminarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := (FGruposEmpleado.DataTable.RecordCount > 0) and + (Length(ListaGruposEmpleado.SelectedItem) > 0); + +end; + +procedure TfEditorGruposEmpleado.CustomEditorClose(Sender: TObject; var Action: TCloseAction); +begin + FGruposEmpleado := Nil; + FController := Nil; +end; + +procedure TfEditorGruposEmpleado.actAceptarExecute(Sender: TObject); +begin + try + GruposEmpleado.DataTable.ApplyUpdates; + except + on E : Exception do begin + GruposEmpleado.DataTable.CancelUpdates; + ShowErrorMessage('Error al guardar cambios', 'Se ha producido un error grave', E); + exit; + end; + end; + actCerrar.Execute; +end; + +procedure TfEditorGruposEmpleado.actCancelarExecute(Sender: TObject); +begin + GruposEmpleado.DataTable.CancelUpdates; + actCerrar.Execute; +end; + +procedure TfEditorGruposEmpleado.actCerrarExecute(Sender: TObject); +begin + Close; +end; + +procedure TfEditorGruposEmpleado.actAnadirUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := (Length(editGrupoEmpleado.Text) > 0) +end; + +procedure TfEditorGruposEmpleado.FormShow(Sender: TObject); +begin + if not FGruposEmpleado.DataTable.Active then + FGruposEmpleado.DataTable.Active := true; + + editGrupoEmpleado.SetFocus; +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uEditorGruposProveedor.dcu b/Source/Modulos/Contactos/Views/uEditorGruposProveedor.dcu new file mode 100644 index 0000000..17988f6 Binary files /dev/null and b/Source/Modulos/Contactos/Views/uEditorGruposProveedor.dcu differ diff --git a/Source/Modulos/Contactos/Views/uEditorGruposProveedor.dfm b/Source/Modulos/Contactos/Views/uEditorGruposProveedor.dfm new file mode 100644 index 0000000..7e21433 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorGruposProveedor.dfm @@ -0,0 +1,138 @@ +object fEditorGruposProveedor: TfEditorGruposProveedor + Left = 453 + Top = 234 + ActiveControl = ListaGruposProveedor + BorderIcons = [biSystemMenu] + BorderStyle = bsSingle + Caption = 'Administraci'#243'n de grupos de proveedores' + ClientHeight = 499 + ClientWidth = 404 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = CustomEditorClose + OnShow = FormShow + InstanceID = 0 + ReadOnly = False + PixelsPerInch = 96 + TextHeight = 13 + object bAceptar: TButton + Left = 226 + Top = 464 + Width = 75 + Height = 25 + Action = actAceptar + Default = True + TabOrder = 1 + end + object bCancelar: TButton + Left = 314 + Top = 464 + Width = 75 + Height = 25 + Action = actCancelar + Cancel = True + TabOrder = 2 + end + object PageControl1: TPageControl + Left = 8 + Top = 8 + Width = 390 + Height = 442 + ActivePage = TabSheet1 + TabOrder = 0 + object TabSheet1: TTabSheet + Caption = 'Grupos de proveedor' + object Label1: TLabel + Left = 10 + Top = 12 + Width = 121 + Height = 13 + Caption = 'Lista de grupos de proveedor' + end + object ListaGruposProveedor: TDBLookupListBox + Left = 8 + Top = 31 + Width = 281 + Height = 277 + KeyField = 'RecID' + ListField = 'DESCRIPCION' + ListSource = DADataSource + TabOrder = 0 + end + object bEliminar: TButton + Left = 304 + Top = 31 + Width = 75 + Height = 25 + Action = actEliminar + TabOrder = 1 + end + object GroupBox1: TGroupBox + Left = 6 + Top = 318 + Width = 369 + Height = 84 + Caption = 'A'#241'adir un nuevo grupo de proveedor' + TabOrder = 2 + object eCategoria: TLabel + Left = 18 + Top = 20 + Width = 87 + Height = 13 + Caption = 'Nombre del grupo:' + end + object bAnadir: TButton + Left = 282 + Top = 38 + Width = 75 + Height = 25 + Action = actAnadir + TabOrder = 1 + end + object editGrupoProveedor: TEdit + Left = 18 + Top = 40 + Width = 255 + Height = 21 + TabOrder = 0 + end + end + end + end + object ActionList1: TActionList + Left = 144 + Top = 16 + object actAnadir: TAction + Caption = '&A'#241'adir' + OnExecute = actAnadirExecute + OnUpdate = actAnadirUpdate + end + object actEliminar: TAction + Caption = '&Eliminar' + OnExecute = actEliminarExecute + OnUpdate = actEliminarUpdate + end + object actAceptar: TAction + Caption = 'A&ceptar' + OnExecute = actAceptarExecute + end + object actCancelar: TAction + Caption = '&Cancelar' + OnExecute = actCancelarExecute + end + object actCerrar: TAction + Caption = 'actCerrar' + OnExecute = actCerrarExecute + end + end + object DADataSource: TDADataSource + Left = 168 + Top = 16 + end +end diff --git a/Source/Modulos/Contactos/Views/uEditorGruposProveedor.pas b/Source/Modulos/Contactos/Views/uEditorGruposProveedor.pas new file mode 100644 index 0000000..721f840 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorGruposProveedor.pas @@ -0,0 +1,179 @@ +{ +=============================================================================== + Copyright () 2006. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: 22-05-2006 + Versin actual: 1.0.0 + Fecha versin actual: 22-05-2006 +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uEditorGruposProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, DB, StdCtrls, DBCtrls, uDADataTable, ActnList, + uIEditorGruposProveedor, uCustomEditor, uGUIBase, ExtCtrls, + ComCtrls, uBizGruposProveedor, uGruposProveedorController; + +type + TfEditorGruposProveedor = class(TCustomEditor, IEditorGruposProveedor) + ActionList1: TActionList; + DADataSource: TDADataSource; + ListaGruposProveedor: TDBLookupListBox; + editGrupoProveedor: TEdit; + bAnadir: TButton; + actAnadir: TAction; + actEliminar: TAction; + bEliminar: TButton; + actAceptar: TAction; + actCancelar: TAction; + bAceptar: TButton; + bCancelar: TButton; + actCerrar: TAction; + PageControl1: TPageControl; + TabSheet1: TTabSheet; + GroupBox1: TGroupBox; + Label1: TLabel; + procedure FormShow(Sender: TObject); + procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); + + procedure actAnadirExecute(Sender: TObject); + procedure actEliminarExecute(Sender: TObject); + procedure actAceptarExecute(Sender: TObject); + procedure actCancelarExecute(Sender: TObject); + procedure actCerrarExecute(Sender: TObject); + procedure actAnadirUpdate(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + protected + FGruposProveedor: IBizGrupoProveedor; + FController: IGruposProveedorController; + function GetGruposProveedor: IBizGrupoProveedor; + procedure SetGruposProveedor(const Value: IBizGrupoProveedor); + function GetController : IGruposProveedorController; + procedure SetController (const Value : IGruposProveedorController); + public + property GruposProveedor: IBizGrupoProveedor read GetGruposProveedor write SetGruposProveedor; + property Controller : IGruposProveedorController read GetController write SetController; + end; + + +implementation +{$R *.dfm} + +{ TfEditorGruposProveedor } + +uses + uDialogUtils; + + +function TfEditorGruposProveedor.GetController: IGruposProveedorController; +begin + Result := FController; +end; + +function TfEditorGruposProveedor.GetGruposProveedor: IBizGrupoProveedor; +begin + Result := FGruposProveedor; +end; + +procedure TfEditorGruposProveedor.SetController(const Value: IGruposProveedorController); +begin + FController := Value; +end; + +procedure TfEditorGruposProveedor.SetGruposProveedor(const Value: IBizGrupoProveedor); +begin + FGruposProveedor := Value; + DADataSource.DataTable := (FGruposProveedor as IBizGrupoProveedor).DataTable; + DADataSource.DataTable.Open; +end; + +procedure TfEditorGruposProveedor.actAnadirExecute(Sender: TObject); +begin + if not FController.Localizar(GruposProveedor, editGrupoProveedor.Text) then + begin + GruposProveedor.Append; + GruposProveedor.DESCRIPCION := editGrupoProveedor.Text; + GruposProveedor.Post; + editGrupoProveedor.Clear; + ListaGruposProveedor.SetFocus; + end + else + ShowErrorMessage('Ya existe el grupo ' + editGrupoProveedor.Text, + 'Ya existe el grupo de proveedor ''' + editGrupoProveedor.Text + ''' en la lista.'); +end; + +procedure TfEditorGruposProveedor.actEliminarExecute(Sender: TObject); +begin + GruposProveedor.Delete; + ListaGruposProveedor.SetFocus; +end; + +procedure TfEditorGruposProveedor.actEliminarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := (FGruposProveedor.DataTable.RecordCount > 0) and + (Length(ListaGruposProveedor.SelectedItem) > 0); + +end; + +procedure TfEditorGruposProveedor.CustomEditorClose(Sender: TObject; var Action: TCloseAction); +begin + FGruposProveedor := Nil; + FController := Nil; +end; + +procedure TfEditorGruposProveedor.actAceptarExecute(Sender: TObject); +begin + try + GruposProveedor.DataTable.ApplyUpdates; + except + on E : Exception do begin + GruposProveedor.DataTable.CancelUpdates; + ShowErrorMessage('Error al guardar cambios', 'Se ha producido un error grave', E); + exit; + end; + end; + actCerrar.Execute; +end; + +procedure TfEditorGruposProveedor.actCancelarExecute(Sender: TObject); +begin + GruposProveedor.DataTable.CancelUpdates; + actCerrar.Execute; +end; + +procedure TfEditorGruposProveedor.actCerrarExecute(Sender: TObject); +begin + Close; +end; + +procedure TfEditorGruposProveedor.actAnadirUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := (Length(editGrupoProveedor.Text) > 0) +end; + +procedure TfEditorGruposProveedor.FormShow(Sender: TObject); +begin + if not FGruposProveedor.DataTable.Active then + FGruposProveedor.DataTable.Active := true; + + editGrupoProveedor.SetFocus; +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uEditorPersonal.dcu b/Source/Modulos/Contactos/Views/uEditorPersonal.dcu new file mode 100644 index 0000000..804a500 Binary files /dev/null and b/Source/Modulos/Contactos/Views/uEditorPersonal.dcu differ diff --git a/Source/Modulos/Contactos/Views/uEditorPersonal.dfm b/Source/Modulos/Contactos/Views/uEditorPersonal.dfm new file mode 100644 index 0000000..4c7f465 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorPersonal.dfm @@ -0,0 +1,201 @@ +object fEditorPersonal: TfEditorPersonal + Left = 227 + Top = 108 + ActiveControl = eNombre + BorderStyle = bsDialog + Caption = 'Datos de personal' + ClientHeight = 205 + ClientWidth = 527 + Color = clBtnFace + ParentFont = True + OldCreateOrder = True + Position = poOwnerFormCenter + DesignSize = ( + 527 + 205) + PixelsPerInch = 96 + TextHeight = 13 + object Bevel1: TBevel + Left = 8 + Top = 8 + Width = 430 + Height = 185 + Anchors = [akLeft, akTop, akRight] + Shape = bsFrame + ExplicitWidth = 329 + end + object Label5: TLabel + Left = 20 + Top = 27 + Width = 110 + Height = 13 + AutoSize = False + Caption = 'Nombre completo:' + end + object Label6: TLabel + Left = 20 + Top = 55 + Width = 109 + Height = 13 + AutoSize = False + Caption = 'Puesto:' + end + object Label7: TLabel + Left = 20 + Top = 90 + Width = 109 + Height = 13 + AutoSize = False + Caption = 'Tel'#233'fono:' + end + object Label11: TLabel + Left = 20 + Top = 113 + Width = 109 + Height = 13 + AutoSize = False + Caption = 'Movil:' + end + object Label12: TLabel + Left = 20 + Top = 137 + Width = 109 + Height = 13 + AutoSize = False + Caption = 'Fax:' + end + object PngSpeedButton3: TPngSpeedButton + Left = 401 + Top = 154 + Width = 23 + Height = 22 + Anchors = [akTop, akRight] + OnClick = PngSpeedButton3Click + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001964944415478DA + 63FCFFFF3F03232323033A58BCE9F87F647EAC9F258622B05E6C068034873B8A + 80D92019C62F8F194C1356339CDF399D91A0014B361FFB1FE6208AA299E1F323 + 306D52F90CC5100C03566E3DFC3FD04E02A2F9F727064690462066006A66FC02 + 64FFFAC8603451096E088A01CB361FFDFF8F819981183077D11A86FDAB7B18E1 + 062CDD7CE27F14573FC3B2EF450CD13E86181ABE7DFFCDF0F5DB6F866FDFFE30 + 1CB97897218AB38FC1B85B98E1DC8E698C600396000D8861696058FAB7116CC0 + 94C5FBB0DAEC6CAECF70EED6238668E67AB057500CF8F0E10383A0A0208A0B90 + 6D06B1BF01D9379E3C67387AFE09C389A37BD15CE06B01B47907434EAC13C3EF + 3F7F19662E3F8862BB898606C3EFDFFF1896EF3DCFA0A5C0CD306FE9265403FC + 9D20362F5CB71F4CE7C47AA01890D5BC164C7716F980D56018606BAC0656B079 + EF2986F82047AC6150DEB785A13CD911AC06C300234D05867DC72F30B8D818E1 + 8DC2494B0E63F702281075D455884A07576EDEC134404A5480E1DAED07441900 + 021806F44D5D44B46618801B400900007F4518F05E90AAF20000000049454E44 + AE426082} + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + ExplicitLeft = 302 + end + object Label8: TLabel + Left = 20 + Top = 158 + Width = 109 + Height = 13 + AutoSize = False + Caption = 'Correo electr'#243'nico:' + end + object OKBtn: TButton + Left = 444 + Top = 7 + Width = 75 + Height = 25 + Anchors = [akTop, akRight] + Caption = '&Aceptar' + ModalResult = 1 + TabOrder = 0 + end + object CancelBtn: TButton + Left = 444 + Top = 38 + Width = 75 + Height = 25 + Anchors = [akTop, akRight] + Cancel = True + Caption = '&Cancelar' + ModalResult = 2 + TabOrder = 1 + OnClick = CancelBtnClick + end + object eNombre: TDBEdit + Left = 135 + Top = 24 + Width = 290 + Height = 21 + Anchors = [akLeft, akTop, akRight] + DataField = 'NOMBRE' + DataSource = dsPersonal + TabOrder = 2 + end + object ePuesto: TDBEdit + Left = 135 + Top = 55 + Width = 290 + Height = 21 + Anchors = [akLeft, akTop, akRight] + DataField = 'PUESTO' + DataSource = dsPersonal + TabOrder = 3 + end + object eTelefono: TDBEdit + Left = 135 + Top = 87 + Width = 290 + Height = 21 + Anchors = [akLeft, akTop, akRight] + DataField = 'TELEFONO' + DataSource = dsPersonal + TabOrder = 4 + end + object eMovil: TDBEdit + Left = 135 + Top = 110 + Width = 290 + Height = 21 + Anchors = [akLeft, akTop, akRight] + DataField = 'MOVIL' + DataSource = dsPersonal + TabOrder = 5 + end + object eFax: TDBEdit + Left = 135 + Top = 132 + Width = 290 + Height = 21 + Anchors = [akLeft, akTop, akRight] + DataField = 'FAX' + DataSource = dsPersonal + TabOrder = 6 + end + object eMail: TcxDBHyperLinkEdit + Left = 134 + Top = 155 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'EMAIL' + DataBinding.DataSource = dsPersonal + Properties.OnEditValueChanged = eMailPropertiesEditValueChanged + Properties.OnValidate = eMailPropertiesValidate + Properties.Prefix = 'mailto:' + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 7 + Width = 261 + end + object dsPersonal: TDADataSource + Left = 440 + Top = 72 + end +end diff --git a/Source/Modulos/Contactos/Views/uEditorPersonal.pas b/Source/Modulos/Contactos/Views/uEditorPersonal.pas new file mode 100644 index 0000000..fd6722f --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorPersonal.pas @@ -0,0 +1,124 @@ +unit uEditorPersonal; + +interface + +uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, + Buttons, ExtCtrls, Mask, DBCtrls, DB, uDADataTable, PngSpeedButton, + cxControls, cxContainer, cxEdit, cxTextEdit, cxHyperLinkEdit, cxDBEdit, + uPersonalContactoController, uBizContactosPersonal, + uDAInterfaces, uIEditorPersonalContacto; + +type + TfEditorPersonal = class(TForm, IEditorPersonalContacto) + OKBtn: TButton; + CancelBtn: TButton; + Bevel1: TBevel; + dsPersonal: TDADataSource; + Label5: TLabel; + eNombre: TDBEdit; + Label6: TLabel; + ePuesto: TDBEdit; + Label7: TLabel; + eTelefono: TDBEdit; + Label11: TLabel; + eMovil: TDBEdit; + Label12: TLabel; + eFax: TDBEdit; + eMail: TcxDBHyperLinkEdit; + PngSpeedButton3: TPngSpeedButton; + Label8: TLabel; + procedure PngSpeedButton3Click(Sender: TObject); + procedure eMailPropertiesEditValueChanged(Sender: TObject); + procedure eMailPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure CancelBtnClick(Sender: TObject); + protected + FController : IPersonalContactoController; + FPersonal: IBizContactoPersonal; + + function GetController : IPersonalContactoController; + procedure SetController (const Value : IPersonalContactoController); + function GetPersonal: IBizContactoPersonal; + procedure SetPersonal(const Value: IBizContactoPersonal); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + property Controller : IPersonalContactoController read GetController + write SetController; + property Personal: IBizContactoPersonal read GetPersonal write SetPersonal; + end; + +implementation + +uses + Variants; + +type + THackcxDBHyperLinkEdit = class(TcxDBHyperLinkEdit); + +{$R *.dfm} + +{ TfEditorPersonal } + +procedure TfEditorPersonal.CancelBtnClick(Sender: TObject); +begin + if FPersonal.DataTable.Editing then + FPersonal.Cancel; +end; + +constructor TfEditorPersonal.Create(AOwner: TComponent); +begin + inherited; + FController := NIL; +end; + +destructor TfEditorPersonal.Destroy; +begin + FController := NIL; + inherited; +end; + +procedure TfEditorPersonal.eMailPropertiesEditValueChanged(Sender: TObject); +begin + if not VarIsNull((Sender as TcxDBHyperLinkEdit).EditValue) then + (Sender as TcxDBHyperLinkEdit).EditValue := StringReplace((Sender as TcxDBHyperLinkEdit).EditValue, (Sender as TcxDBHyperLinkEdit).Properties.Prefix, '', []); +end; + +procedure TfEditorPersonal.eMailPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); +begin + if not VarIsNull(DisplayValue) then + DisplayValue := StringReplace(DisplayValue, (Sender as TcxDBHyperLinkEdit).Properties.Prefix, '', []); +end; + +function TfEditorPersonal.GetController: IPersonalContactoController; +begin + Result := FController; +end; + +function TfEditorPersonal.GetPersonal: IBizContactoPersonal; +begin + Result := FPersonal; +end; + +procedure TfEditorPersonal.PngSpeedButton3Click(Sender: TObject); +begin + THackcxDBHyperLinkEdit(eMail).DoStart; +end; + +procedure TfEditorPersonal.SetController( + const Value: IPersonalContactoController); +begin + FController := Value; +end; + +procedure TfEditorPersonal.SetPersonal(const Value: IBizContactoPersonal); +begin + FPersonal := Value; + if Assigned(FPersonal) then + dsPersonal.DataTable := FPersonal.DataTable + else + dsPersonal.DataTable := NIL; +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uEditorProveedor.dcu b/Source/Modulos/Contactos/Views/uEditorProveedor.dcu new file mode 100644 index 0000000..0cb0324 Binary files /dev/null and b/Source/Modulos/Contactos/Views/uEditorProveedor.dcu differ diff --git a/Source/Modulos/Contactos/Views/uEditorProveedor.dfm b/Source/Modulos/Contactos/Views/uEditorProveedor.dfm new file mode 100644 index 0000000..bf212d9 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorProveedor.dfm @@ -0,0 +1,2623 @@ +inherited fEditorProveedor: TfEditorProveedor + Caption = 'fEditorProveedor' + ClientHeight = 620 + ClientWidth = 830 + ExplicitWidth = 838 + ExplicitHeight = 654 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 830 + ExplicitWidth = 830 + inherited Image1: TImage + Left = 803 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 520000000467414D410000AA11B57D14DC0000034D4944415478DADD957D6855 + 651CC73FE7BE7177CDB9B18A126639175BE8F08F59BE35D199B6DE56833057E2 + 0B668AA361A953D3A1A6CEA9C3A0242AFA27184134080A05250DCD958E063502 + 69D272EE6ED96DBBDEBB7BCFD9BDE7B5E75CB7E1E59E39FF70FFF8C08FE739E7 + 39E7FBF93EBFDF799E235996C54436E9FE007C7BEE8F09A15495CF924601E262 + 74429707E8BD7C9C707F17866EF160D14B3C5EBA2A43C0304C1156AAD74C31D6 + CDD458370D9E5BB98DDF7FF8DC1910FCB11EF56627916842441CC5705358B68E + E2A7ABEF4ADCEE5F78B3CE19D07DA68EC4CD6E0CD3472C26138F2BC464999812 + 66F19A13E4172F1915AF6BD61C53F35E85C2CBAB776602E4DE5FF9EBE72694C8 + 90288E473C6AE1754BA89A4AA83F44F6F452CA569EB8A3F3549816AFAEDD9509 + E8EF68A1A7A319537513C80A90E5F322218412496445A13314E495ED6D291155 + 33D8DBE25CDC9AF218AFBDB5DB1910E96AC14F00AFC72BDCE9689A264225994C + D2193159BEF11B74DD766CBB3586DDDF726EDA2B13EE3531AEDE589F0988062F + 11FEED2B5C43115C2EE15DBCA80F43627282C1BC45CCA9A81D57DC4EDBAA9ABD + CE45EE69FD84E4F556917E037BEE16402518F550B06C270F4D2B1957DCBEB7A6 + 76FF185FD1852B749CFA80470A13784591355DA357D608F72E64D1BA2AB2A74E + 1F57DC9E5BBFE54026A0E7FC4F5C6A384ADFB5106A6125B3AB6FD0D716267859 + D423D44641F97C166C7F075FCE6329A15D4DDF391679CBDA72DEDE7A281DB0A4 + 6032178F1CA1EFC2797C8ACE40CEC394AC7883484F3703674F8BC227E87799E4 + CD5BC8539B5633E9D15969CE353D3D6D353B1AD3014F46BB38D7D4004A9C298A + 785085786E1E3E3541408EA1FB250644FCF7CF2045CF2F675E7D23FB3F3EE9B8 + 824DD565D4BE7F341D907FA595331F1EC69F9B2D003A01D522A999887D86E473 + 21FB5D44B2DC84FFFE979C19C5547EF935FAC8C6BACDF9C8467B77CFB1744051 + F84FBE3F78402422C914B7878010F78883CE1200D52B21FBDC4407E3E21819A2 + E4C50A66D71DA2F1B3D38E2BD8F0FA3399808AF945F475B4F3CBA75F70B5BD1D + 53E455B24CEC73DC4C85458EFF01E6EED94CEECC67C7743ED232004BE73E31E6 + B992BA678CF4E6B8E28E80C5A533EE99B823605FC347F7FC8F360A98C836E180 + FF01702244FEF5B056BE0000000049454E44AE426082} + ExplicitLeft = 621 + end + inherited lblDesbloquear: TcxLabel + Left = 705 + ExplicitLeft = 705 + AnchorX = 750 + AnchorY = 14 + end + end + inherited TBXDock: TTBXDock + Width = 830 + ExplicitWidth = 830 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 496 + object TBXSubmenuItem2: TTBXSubmenuItem [7] + Caption = 'Documentos relacionados' + DisplayMode = nbdmImageAndText + DropdownCombo = True + ImageIndex = 22 + object TBXItem42: TTBXItem + Action = actDocumentosPedidos + end + object TBXItem41: TTBXItem + Action = actDocumentosAlbaranes + end + object TBXItem40: TTBXItem + Action = actDocumentosDevoluciones + end + object TBXItem39: TTBXItem + Action = actDocumentosFacturas + end + object TBXItem38: TTBXItem + Action = actDocumentosRecibos + end + end + inherited TBXSeparatorItem2: TTBXSeparatorItem [8] + end + inherited TBXItem23: TTBXItem [9] + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 830 + object TBXSubmenuItem3: TTBXSubmenuItem [4] + Caption = 'A&cciones' + object TBXItem7: TTBXItem + Action = actGruposProveedor + end + object TBXSeparatorItem6: TTBXSeparatorItem + end + object TBXSubmenuItem8: TTBXSubmenuItem + Caption = 'Documentos relacionados' + ImageIndex = 22 + object TBXItem36: TTBXItem + Action = actDocumentosPedidos + end + object TBXItem35: TTBXItem + Action = actDocumentosAlbaranes + end + object TBXItem34: TTBXItem + Action = actDocumentosDevoluciones + end + object TBXItem33: TTBXItem + Action = actDocumentosFacturas + end + object TBXItem37: TTBXItem + Action = actDocumentosRecibos + end + end + end + end + end + inherited pgPaginas: TPageControl + Width = 824 + Height = 519 + ActivePage = pagDatosComerciales + ExplicitWidth = 824 + ExplicitHeight = 519 + inherited pagGeneral: TTabSheet + ExplicitWidth = 816 + ExplicitHeight = 491 + inline frViewProveedor1: TfrViewProveedor + Left = 0 + Top = 0 + Width = 816 + Height = 491 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 816 + ExplicitHeight = 491 + inherited dxLayoutControlContacto: TdxLayoutControl + Width = 816 + Height = 491 + LookAndFeel = dxLayoutOfficeLookAndFeel + ExplicitWidth = 816 + ExplicitHeight = 491 + inherited PngSpeedButton1: TPngSpeedButton + Left = 754 + Top = 218 + ExplicitLeft = 754 + ExplicitTop = 218 + end + inherited PngSpeedButton2: TPngSpeedButton + Left = 754 + Top = 190 + ExplicitLeft = 754 + ExplicitTop = 190 + end + inherited PngSpeedButton3: TPngSpeedButton + Left = 754 + Top = 162 + ExplicitLeft = 754 + ExplicitTop = 162 + end + inherited Label1: TLabel + Left = 475 + Top = 251 + Width = 342 + ExplicitLeft = 475 + ExplicitTop = 251 + ExplicitWidth = 342 + end + inherited Label2: TLabel + Top = 399 + Width = 324 + ExplicitTop = 399 + ExplicitWidth = 324 + end + inherited PngSpeedButton4: TPngSpeedButton + Left = 435 + Top = 444 + ExplicitLeft = 435 + ExplicitTop = 444 + end + inherited eCalle: TcxDBTextEdit + Top = 267 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 267 + ExplicitWidth = 366 + Width = 366 + end + inherited cbProvincia: TcxDBComboBox + Top = 294 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 294 + ExplicitWidth = 265 + Width = 265 + end + inherited cbPoblacion: TcxDBComboBox + Top = 321 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 321 + ExplicitWidth = 366 + Width = 366 + end + inherited cxDBCheckBox2: TcxDBCheckBox + Top = 189 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 189 + ExplicitWidth = 478 + Width = 478 + end + inherited eCertificaciones: TcxDBTextEdit + Top = 216 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 216 + ExplicitWidth = 366 + Width = 366 + end + inherited cbGrupoProveedor: TcxDBComboBox + Top = 138 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 138 + ExplicitWidth = 277 + Width = 277 + end + inherited cbDescripcionProveedor: TcxDBComboBox + Top = 84 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 84 + ExplicitWidth = 366 + Width = 366 + end + inherited eMailAdministracion: TcxDBHyperLinkEdit + Top = 444 + Properties.Prefix = 'mailto:' + ExplicitTop = 444 + ExplicitWidth = 186 + Width = 186 + end + inherited eCodigoAsignado: TcxDBTextEdit + Top = 111 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 111 + ExplicitWidth = 366 + Width = 366 + end + inherited eCodigoPostal: TcxDBTextEdit + Left = 393 + Top = 294 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 393 + ExplicitTop = 294 + end + inherited eObservaciones: TcxDBMemo + Top = 496 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 496 + ExplicitWidth = 772 + ExplicitHeight = 76 + Height = 76 + Width = 772 + end + inherited cxDBCheckBox3: TcxDBCheckBox + Left = 375 + Top = 138 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 375 + ExplicitTop = 138 + end + inherited cxDBCheckBox1: TcxDBCheckBox + Left = 475 + Top = 283 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 475 + ExplicitTop = 283 + ExplicitWidth = 236 + Width = 236 + end + inherited eTlfParticular: TcxDBTextEdit + Left = 581 + Top = 57 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 581 + ExplicitTop = 57 + ExplicitWidth = 171 + Width = 171 + end + inherited eTlfTrabajo: TcxDBTextEdit + Left = 581 + Top = 30 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 581 + ExplicitTop = 30 + ExplicitWidth = 171 + Width = 171 + end + inherited eTlfMovil: TcxDBTextEdit + Left = 581 + Top = 84 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 581 + ExplicitTop = 84 + ExplicitWidth = 171 + Width = 171 + end + inherited eFax: TcxDBTextEdit + Left = 581 + Top = 111 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 581 + ExplicitTop = 111 + ExplicitWidth = 171 + Width = 171 + end + inherited eNombre: TcxDBTextEdit + Top = 57 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 57 + ExplicitWidth = 366 + Width = 366 + end + inherited eNIFCIF: TcxDBTextEdit + Left = 254 + Top = 30 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 254 + ExplicitTop = 30 + ExplicitWidth = 229 + Width = 229 + end + inherited eMailTrabajo: TcxDBHyperLinkEdit + Left = 581 + Top = 162 + Properties.Prefix = 'mailto:' + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 581 + ExplicitTop = 162 + ExplicitWidth = 142 + Width = 142 + end + inherited eMailParticular: TcxDBHyperLinkEdit + Left = 581 + Top = 190 + Properties.Prefix = 'mailto:' + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 581 + ExplicitTop = 190 + ExplicitWidth = 142 + Width = 142 + end + inherited ePaginaWeb: TcxDBHyperLinkEdit + Left = 581 + Top = 217 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 581 + ExplicitTop = 217 + ExplicitWidth = 142 + Width = 142 + end + inherited eReferencia: TcxDBTextEdit + Top = 30 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 30 + ExplicitWidth = 84 + Width = 84 + end + inherited ePersonaContacto: TcxDBTextEdit + Top = 348 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 348 + ExplicitWidth = 366 + Width = 366 + end + end + end + end + inherited pagDatosBancarios: TTabSheet + ExplicitWidth = 816 + ExplicitHeight = 491 + inherited frViewListaDatosBancarios: TfrViewListaDatosBancarios + Width = 816 + Height = 491 + ExplicitWidth = 816 + ExplicitHeight = 491 + inherited cxGrid: TcxGrid + Width = 816 + Height = 466 + ExplicitWidth = 816 + ExplicitHeight = 466 + end + inherited ToolBar1: TToolBar + Width = 816 + ExplicitWidth = 816 + inherited ToolButton1: TToolButton + ExplicitWidth = 62 + end + inherited ToolButton4: TToolButton + ExplicitWidth = 74 + end + inherited ToolButton2: TToolButton + ExplicitWidth = 67 + end + inherited ToolButton7: TToolButton + ExplicitWidth = 117 + end + end + end + end + object pagDatosComerciales: TTabSheet [2] + Caption = 'Datos comerciales' + ImageIndex = 2 + inline frViewProveedorDatosComerciales1: TfrViewProveedorDatosComerciales + Left = 0 + Top = 0 + Width = 816 + Height = 185 + Align = alTop + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 816 + ExplicitHeight = 185 + inherited dxLayoutControl1: TdxLayoutControl + Width = 816 + LookAndFeel = dxLayoutOfficeLookAndFeel + ExplicitWidth = 816 + inherited Label1: TLabel + Left = 584 + Top = 30 + Width = 190 + Height = 26 + ExplicitLeft = 584 + ExplicitTop = 30 + ExplicitWidth = 190 + ExplicitHeight = 26 + end + inherited Bevel1: TBevel + Top = 111 + Width = 415 + ExplicitTop = 111 + ExplicitWidth = 415 + end + inherited cbRegimenIVA: TcxDBComboBox + Top = 30 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 30 + ExplicitWidth = 398 + Width = 398 + end + inherited cbFormaPago: TcxDBLookupComboBox + Top = 57 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 57 + ExplicitWidth = 260 + Width = 260 + end + inherited bFormasPago: TButton + Left = 424 + Top = 57 + ExplicitLeft = 424 + ExplicitTop = 57 + end + inherited eIVA: TcxDBLookupComboBox + Top = 84 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 84 + ExplicitWidth = 260 + Width = 260 + end + inherited bTiposIVA: TButton + Left = 424 + Top = 84 + ExplicitLeft = 424 + ExplicitTop = 84 + end + inherited eDescuento: TcxDBSpinEdit + Top = 122 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 122 + ExplicitWidth = 226 + Width = 226 + end + inherited eDiasVencimiento1: TcxDBSpinEdit + Left = 656 + Top = 62 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 656 + ExplicitTop = 62 + end + inherited eDiasVencimiento2: TcxDBSpinEdit + Left = 656 + Top = 89 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 656 + ExplicitTop = 89 + end + inherited eDiasVencimiento3: TcxDBSpinEdit + Left = 656 + Top = 116 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 656 + ExplicitTop = 116 + end + inherited dxLayoutGroup1: TdxLayoutGroup + inherited dxLayoutControl1Group5: TdxLayoutGroup + Visible = False + end + end + end + end + end + object pagDirecciones: TTabSheet [3] + Caption = 'Direcciones' + ImageIndex = 3 + TabVisible = False + inline frViewDireccionesEntrega1: TfrViewDireccionesEntrega + Left = 0 + Top = 0 + Width = 816 + Height = 491 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 816 + ExplicitHeight = 491 + inherited cxGrid: TcxGrid + Width = 816 + Height = 466 + ExplicitWidth = 816 + ExplicitHeight = 466 + end + inherited ToolBar1: TToolBar + Width = 816 + ExplicitWidth = 816 + end + end + end + inherited pagPersonal: TTabSheet + TabVisible = False + ExplicitWidth = 816 + ExplicitHeight = 491 + inherited frViewPersonalContacto1: TfrViewPersonalContacto + Width = 816 + Height = 491 + ExplicitWidth = 816 + ExplicitHeight = 491 + inherited cxGrid: TcxGrid + Width = 816 + Height = 466 + ExplicitWidth = 816 + ExplicitHeight = 466 + end + inherited ToolBar1: TToolBar + Width = 816 + ExplicitWidth = 816 + inherited ToolButton1: TToolButton + ExplicitWidth = 62 + end + inherited ToolButton4: TToolButton + ExplicitWidth = 74 + end + inherited ToolButton2: TToolButton + ExplicitWidth = 67 + end + inherited ToolButton7: TToolButton + ExplicitWidth = 117 + end + end + end + end + end + inherited StatusBar: TJvStatusBar + Top = 601 + Width = 830 + ExplicitTop = 601 + ExplicitWidth = 830 + end + inherited EditorActionList: TActionList + Top = 184 + inherited actPrevisualizar: TAction + Enabled = False + Visible = False + end + inherited actImprimir: TAction + Enabled = False + Visible = False + end + object actGruposProveedor: TAction + Category = 'Acciones' + Caption = 'Grupos de proveedor' + ImageIndex = 21 + OnExecute = actGruposProveedorExecute + end + object actDocumentosPedidos: TAction + Category = 'Acciones' + Caption = 'Pedidos' + ImageIndex = 23 + OnExecute = actDocumentosPedidosExecute + end + object actDocumentosAlbaranes: TAction + Category = 'Acciones' + Caption = 'Albaranes' + ImageIndex = 24 + OnExecute = actDocumentosAlbaranesExecute + end + object actDocumentosDevoluciones: TAction + Category = 'Acciones' + Caption = 'Devoluciones' + ImageIndex = 25 + OnExecute = actDocumentosDevolucionesExecute + end + object actDocumentosFacturas: TAction + Category = 'Acciones' + Caption = 'Facturas' + ImageIndex = 26 + OnExecute = actDocumentosFacturasExecute + end + object actDocumentosRecibos: TAction + Category = 'Acciones' + Caption = 'Recibos' + ImageIndex = 27 + OnExecute = actDocumentosRecibosExecute + end + end + inherited LargeImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002444944415478DA + 9D964B6813511885CF2074E74A70E34277522BD2E842178A1041108A6ED4858A + 28880F908A5D148A50105CD4450B4AC520BE8A56C4D7A2AD548B41A90FAA6932 + 69190CA52E54444DEBA8D8343269E65EE7BF319967676E7BE06766C2F07D77EE + C9C02808C8EDFE118E45A4B3BB07EAD3CB8AF33725E84612EC6FDAB82078EFC0 + 5BAC58BE0C2DED5D2E8992BE5017B8DAF5CDC682058DF5AB30ADCFB82442E084 + 715682DABD142FD5124EDD90DB29D364B83B98C2E60DAB51281A2E894B40705E + FA89EC95956838D881C4E9964809C14D93E3FED028E29B1A509A2BBB24354115 + CEAC19BF19134F504D9084330ED39AB225A0F347C98C28D91B21889D9CA9C12B + A357AE8D1FB8DAD1EA1338E1E6FF29338657EA47CC1667A1EBBAB8EF7A6F5F45 + D078F493D896A078BB980FEE3DEF4FBEB305EB0EA9625BA2CA968533AB93C72F + 52B660EDBE24B43BDB105676F335260DA7FB9E0C8FDA8235BBEFE1FD83BD882A + FB58624E0A4E8B78F63A630BEA772690EB3B8EA8B28F5C32A4E074FD7C246B0B + 68955B6275882AFBF0C5BF52709AE1D478455005C8947DA0ABE01210B4FAA209 + 11E735F19BB4E617C894BDE7FCEF40B8F7C9526339BF40B6EC5DE7F450381D33 + DA845F205B76D3D9E95038CD586ED22F70961D04FFA575E2E1401E3BDAA742E1 + B47DDAC407B7C05BB6176E1A53F833794B08B69FF91E0AA7840AA86C2F9C1979 + 143E0F0941BCED6B283C5240657BE1CC3A16F35921D8DAFA25141E29A0B2F574 + 5BE00B478225F141C8645E81F32F19949E6F27A4041485F3457DA148E71FF2CE + 98E361E521AA0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026C4944415478DA + 63FCFFFF3FC3A28DC7FF335009C4F95B3222F319611600254836ECEFDF7F40FC + 1F4C8380856F36C3C53DB3705BB0D7D21EC500E7E307711A8EACD674CF2E8679 + ABF730CC5FB211BF05A4B8FC808D2383328B34C3B6D3CB19225F7E6358B87E1F + 610BB0F9005D0C046C0FEE63386CEFC470F3FC21303FECD91786259B0E50E683 + FFFF80610DC47F80AE07B17FFF0386FF9F7F60DFFCF9F79761C596C3A4FB8018 + 00F285EF83770C6B771C23CE0298B749015E77DF306CD87D82380BF0A51C6C00 + A44771E55A864DFB4E126F01AEA082590E9387A9955BBE8661EB8153B4F381E4 + 92550CBB0E9FA1AE0F6EAA108EABC75FEDC8F3C1B4584686847408FBE74F0686 + 5F3F2018C4FEF903824F1C47B320DAC71C9C3B09F98058C3F9251818AEDC45B2 + 20C2D30C9C3BF1F90064388B207EDFFD798F301C250E42DD4C188E39B910B400 + E67A10F8F80EE2E21F5097FFFACEC070FA0C2468EC0D0F311C3C8FE483001723 + 86D32E6E785D078A5890664200643808A058E0EB60002F5720E5FC3F70D90316 + 0396F94FA343C11620FB001C247F81F83703C36F501C007D70ED3A420EC5022F + 5B3D9C8683E81771E11816FCFA05341888FF40E995ABD919D4357E32B0B160B1 + C0CD5A1BA7E1A012F44D62248605A038005B00F201106FDACACE202D0FB1808D + 9581E1F865240B1CCD35C086FDFB0B29967FFF4514C7FFFE432C3ADD2D8F62C1 + 9B1708C341166DDFCDCE202A0DB1E0F21D3B86F6750719E116D899A8814B447C + 806DAF0FDC0250F0BC7B89301C44EF39C0CEC02FFE93E1FE1388E128C9B477F2 + 7C82A9235D7236D882A993D971AA79F7DB1C6E38DC0262417738C73AA00181F8 + D4201B0E0200C20B50400F1E42A70000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F330000026A4944415478DA63FCFFFF3F032D + 0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80F83F980601EBC0 + 7C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3C275FB19E62DDD + 84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD97890B005D87C802E + 06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9E0FF3F605803F1 + 1FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F18E70860DBB4E10 + 6701CCDBA480075B431936EF3D459C05F8520E3600D2B3A8508F61EB81D3C45B + 802BA86096C3E4616AE7E7EB32EC387486721F4C2C7064F8CA7E8E41F8D527BC + BE7AF2D589341FC02C6D2BE76788F0FBC520C1F883E1D74F0608FEC1C0F01346 + 03F1C9134458800DCC4C6464884D85B0F119CE2FC1C070F52E160B223C4DC1B9 + 139B0F62DE3B31B008E28FEC3FEF1186638D8350371370EEC4E60364D783C0A7 + F71017C330C80767CE4082C6CE701FC3A1F3587C10E46CC4E0567D04A70520CD + 8400C87010C06A819FA3018357ED31AC1A414184EC0310F8FB17182CBF19187E + FF02FAE23B03C38D1B0839AC1678DBE9C1CB155819032A7B40F49E7A51140B40 + 86FE061AFEE71784BD660D07839AC60F0636163C167858EB60351C54A1EC6F12 + C3880390C1201F80F0966D1C0C52F2100BD85819184E5CC662818BA51656C341 + F4A15609140BDEBE44180EB268E71E0E061169880557EE383134AFDACB886181 + BDA93AD8B07F7F11C532CCC2E39DD2700B4006BE7B85301C1454FB0E7230F089 + FF6078F0046238D6646A63A40A2E11B101D67D9E600B664EE5C09982DEFDB662 + D8FA491D7759D43B65214ECDF6BCFB187818A5F1265190E12000B300003BBC36 + ACFF3E80210000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000001974455874536F6674776172650041646F626520496D616765526561 + 647971C9653C000003294944415478DAB5956B4814511886DFD15557DD753531 + 352B495129723149222DAF61A921249A4216F4C37F81194445445028F5A32088 + 2E109991F443BAAB98B7F55A9AA1A549B4D2C5CAD2557775BDB4D7D9CE991A2F + EDACED62BD70383373CE7CCF79BF73E61BC662B1E07F8A590828AFECFC67B47D + BBB730820032E07030B39925CDC2F554717B0AD15D73C53660FB11C5A200AD17 + 936C065F38B7FA6C2CCAEE2B70B3FCF1D20047569E78B419A28810345DAB81A6 + F900EE3C6AFE3B40C8C19FCFA81ACEC523E5780BDA144AEE7EAC311F772B5B97 + E7C0C2925C936622ABA7D72696FDBD072C775D51DDEEB8037B445D7CA9C9C5C3 + DA0EFB00BC6D47F4A92A074F1A5ED80758EAE40889BE73BB488EAAA62EFB01B6 + 52C5C3F9717E6E6961246A5A5E2EDFC1A5C3499871EB86AF4ABBA4ABAF33C98E + 39E0A125C764C8CB342080D1C1A0C7AFA603F47C4F5A67871D00215D3FC82077 + 2F3055EF85498B3B64892360D8F9E0BA5940592581DB900903E2506B405E5A0C + F7750A39C8D72443E403F8770119AC044C50382A0CC3D0047F83B333E0A27582 + 4F8F3BBC4619F4497DA15E1B680DC849DDCC7D9D420EE8EAF71700E33D80D30D + 406C60200E5C87B7C15A98246AB82AC4981CD6A37B4D28E4D94AB4F408A4282B + 251AA927DB6C02685EA9BC54E3481BEC87C86C02239561624A8FA9193D7A42C2 + 1195F58E9B2308C84C8A42FAA96782F9A729A20E780D5493D271CB09D37A167A + 33C0CAC9C39DF3E382808C78F95C5DE16B0CAD3DB4AF3FED3707508F3318BE17 + 0453BD8AACDC001D014C93CD764907649B9600EC8ADB28189CFE501467567200 + DD2439450FC2607863C6C7FE0FC07AF232D9FCEF75E4341188349BA43012E8E8 + 1300ECD8BA413038ED5B8A033880A6DC1BA27E5FF4BE7E0F832F105C4436DD03 + A82B75817BAF1116B280B1383956B4F7BA5901126222B860AC79BE2CF3C0E7E7 + 833880AAC40F43DD1350CD1AB1FA10E0190A188D4063B318520F1DB4B5FEF0FC + 3C324222175B01B64587711551482E8D691CA0F4842BFC5E19C83917E1875CB4 + 688EDA188B2A6D040A9E5E4D259147AD00172E97C19612A48D90304160881B6F + E520A657F9C128932C9A43835311004323FF04D4D3607A0FD2DBC40000000049 + 454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001BE4944415478DA + 63FCFFFF3F032D0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80 + F83F980601EBC07C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3 + C275FB19E62DDD84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD978 + 90B005D87C802E06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9 + E0FF3F605803F11FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F1 + 8E70860DBB4E106701CCDBA480075B431936EF3D459C05F8520E3600D2B3A850 + 8F61EB81D3C45B802BA86096C3E4616AE7E7EB32EC387486763E989DA3CDB0E7 + E839DAF96046A626C3FE131768E783A969EA0C874E5FC26F4184A729387792E3 + 838929AA0CC7CE5EC16F41A89B09387792E3839E042586D317AFE3B720C8D988 + C1ADFA08591674C62A309CBB7213BF057E8E060C5EB5C7F01A06B27CC1913F70 + 7E820D0BD882B62839868BD76FE3B7C0DB4E0F5EAEC0CA1850D9032BF393275F + C1881F18BF394296E1CACD3BF82DF0B0D6C16938884E9B760D6BF0116D818BA5 + 164EC3411667CDB88133E888B2C0DE541D6CD8BFBF88621966E1BFFFFFB1061F + 322068818D912AB844A404E0B5A077CA428A0C8701980500619929EF09CFCE42 + 0000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F330000028C4944415478DADD945F4853511C + C7BF77646942ABE9A061F6BF8690D443427B88A2321123166EDAA21E122308EA + B184407DC887E8A932F0611A3542325F0A0729B432A849CA68CA1CA2B86C0C4B + 43A428EFEEEE9FCE39E8DA9FBB7F0F7BE9073F7EE7DE7BCEF7737EBFF33B9753 + 1405F934EEFF00F43A47F34689026C7555392D1425059224232C882C8AB2CC22 + 1B131722121AAFB6C6030E5BDE6514964540126444C2448CB8F0538448C78204 + 99BC672E8A687FA045CFB357C980B1FEE371A033B53EB4365D4B06911D53AFAE + 71603A50C284BF85CEA174CB73709284B647BAD4006A741C2B3EBEFC05756573 + 88AC7C4541D17638433B602C324010049C35F7C33FA1C5C2623D9B5B5AEC407B + 973E7D066BE2E5C5C308FE3EC622151F5A3A8AD3BAB704B21B538B5530EA47E1 + 0D56A2DEFA12C3AE26E8373E25352419D80DEA80C4D21834BD98976DD8AA7130 + F11A9D1B834B2654970C6166D986FDDA018C7F3F8586F303981C59C7C4E941B5 + F594670788CF60161C0AA18067194C840EA2B2CC8B4FD3FB70E1D220263F70AB + 5D403278B2333D2016229105BE5F417606023F85F585467606DBE44D08F37C92 + 38B59480D82EA2ED6736FBD172B1994164D6EB52D4E973A3CD19155F8C5C815E + D3951E10BD48B4B77985C50D073CF86C79AF7A2FF4B596B89DAF992A20F1968A + AB37D377BF02FA9356EC3D72173323B7D89C85D931708100BA5DF3B0DF3E9104 + EE0C5D4F06743A5EABEE72F31F0FF6FCB033B1446BE9B89112EC29B8FC0F70EF + E1E38CBF09CFCD39D5F7CD1DAEE4B9449C1A03701C9751FCE39D5D4A2E6522D0 + 866E17FF22178095843EB532D9DFACA8420980CB0A40C54DA68A3EB56F6EB75F + F56C881D22006FB680B4E5A13B4DB536EB0C52958718AB755A403E2DEF80BF27 + 2521AB920B52530000000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end> + Bitmap = {} + end + inherited SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001B24944415478DA9D52A16E1B41109D6366595810C90B0307069E59E0 + B29665A1E141B32E3474BF20070FAE1462B8259555D22D88643889A5C8F04C1A + 57AAB4797B4E9C334875CA48A3B9B9BB79F366DE14D433EB6DA27D4BB427AAAD + 2F68809DFC641B9358338518C94F3F02509BA4B5A6B802C02C0C03E8D36EE1AC + 15859520C157BC6F1163138BF70132ED0B7E01688F9E2B73942500FCFF00403B + 773E1410E90B4512A4EB9C41338BB894F701FA495995093BA4185054BF75559F + 9432A5719AB555238C18420D772DEC1460CA495D12893FA55D5E950E637E554A + 75B9ACC190DA6FBEF1D509005B4EAFCBEBD3365F8CA0F398993B85ECD462D161 + E7664E0D920A85892F995040B215922814D771B7582C5421F32AE59FDAA3946D + 27611773F72614D84137020A288FE1E68EC068823C7400E3BCB96DAE82FEE8B0 + CB113204B8591DF65496B66656D7F9390AA3819AC4A509459CD924C11FB8BE1C + D39111AC122AF8CA630AFD8B21B13563728BDF50427634223368076E2E3871DC + 47BECA100F4AEC3508C7FB41001500F2EC4A9D51F0DFBBE2AC94ACC330809BDB + BBE6E70FFAFCE7E92F6D1E1E69B3FD87156D9EB43E37CFDA01027CC229770400 + 00000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000018E4944415478DA + 6364C002966C3EF19F010F88F1B56084B119CF4E6443516C9CFF8B116440B48F + 398AA6BFFFFE31FCF9F38F61CDAEB30CBD5316329CDF399D116E8051DE4FB0A2 + 7393D8190E9FFFC520127C8201D90098E6DF7FFE326CDC778141469483A1B07E + 26D810B801FF7F7F6498942600D7943FFF3F866610BDF5D025B00B50BC6098F9 + 8AE1CFD7070C971799A1385B3FE73B8AE6DF7F41F45F8603A76F81E5BB27CD87 + 18A01B778AE1EFB7070CD7D68431A07B2779EA0F14CD20F69FBFFF184E5CBA87 + 30402B6415C3DFAFF7196E6E2F67C0E69DA8BECF289A7FFDFECB70EEFA438401 + EA9E9D0CEF2F7530BC7AFA9E01977744435FC03583BC74F9F613840120A78280 + AD211B033EEF78D4BD046BFE0D34E4C683E71003906D21C63B76A58F197E010D + B9F7E4157603B07907E42290A173DA0A192C0A1F805DF0F8E55BEC0660F30E48 + 33C8D0B55B5E3218E7DC0587C5F337EF310DC0E59D3F5F6E317CBEB70E6C8058 + E829B81A8206C0BC03032003163ECF84F3FF337EC76F00CC3BC8A06001AA1EC6 + FFFFF1E65C820000241257B48E5A5E7D0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001864944415478DA + 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F + 192CBCB3192EEE99856AC05E4B2B14C5CEC78F81696471AB030719662EDFC530 + 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB001DDAD3B19966D3A84 + DB0098B341E01F50EECF9F7F709BCFB93B33686EDCCEB06ADB11FC06C05C627B + E830C3613B5BB8CD97BDDD1954D66E6158BFEB387E0360367FBA7990E1C5C218 + 7C3E72C130C0F1D85186FD56D66059719B070CAA2D350CECEC59183A7FFE9CC6 + 303BB68501C30090B3617E7EDAACCCA0D3FD0CAC180EBE7F6760F8F19D61FA0E + 4306966DA9080372623D190EDAD8A0D80272018A0120CD1FDE81E9E9279D510D + 488F7463F805B4F9CF6F50A8FF61B8EAEB816A004CF37B20FEF19361FACD6054 + 0312439DE19A415EB815E88D30E0432F42F3870F1017BC4A45352036C011AE19 + 140320D7FC9E6A0031E041354233D80540037E95A31A10E163CBB062CB61D438 + BA9A0A8E85E9CBE5B1C6218A01A084810EB478DF3058B39EC099081CE4195C00 + 45135E518E0B4E380000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000001744944415478DA63FCFFFF3FC394 + C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F19ACFDF319CEED + 98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC5BBA09D3007CE0 + D7EFBF609B4178C98683D80D40770136B0AED69461E59623B80D80391B04FE01 + E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D760CCEE587E036 + 07359F66585A6AC0B069CF49FC06C06CFE7CFB30C3CBC5B1F87CE48261C0C15E + 0706FBE20360D999EC710CCA0D350CECECE9183A7FFE9CC9302FB18501C30090 + B3617E7ED6A6C6A0D5FE18AC180E7EFC00E2EF0CB3771930306F4F45189011E5 + C6E0587A10C516900B500C0069FEF00E62C02927540392C39CC1B6C2423DA4F5 + 0CAA0130CD60037E32CCBE15846A405C90034A9445769E4718F0712242F3870F + 1017BC4A413520CA0FE177B841338C20063CAC47688679E15719AA01A15ED60C + ABB71D450903A76BA9E05898BD4A1E6B1CA218004A18E8409BF70D8315EB719C + 89C05E9EC10500D1295EA9BD5461080000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000001974455874536F6674776172650041646F626520496D616765526561 + 647971C9653C000002034944415478DA63FCFFFF3FC394C53BFE33900172623D + 1819610600394469FAF3F71FC3EF3F7F19ACFDF319CEED98866A806DD17E14C5 + 87FB1CC134B2F8AE761B86B9ABF632CC5BBA09D3007CE0D7EFBF609B4178C986 + 83D80D40770136B0AED69461E59623B80D80391B04FE01E5FEFCF907B7D9B7FE + 04C3AA4A6386B53B8EE13700E692BD9D760CCEE587E03607359F66585A6AC0B0 + 69CF49FC06C06CFE7CFB30C3CBC5B1F87CE48261C0C15E0706FBE20360D999EC + 710C5CD2D60C3C37FF333C0DCF66D0B7B1038B7F7D709FE14E4B3CC385339718 + 300C00391BE6E7676D6A0C5C6FCD19642EEF60782BABC1F035CF9581E3D53B86 + A78DEB186E73A9327C927A88302023CA8DC1B1F4208AFB402E502EB9C0702FC5 + 9A81E3F22D86DF02620CAF9EBF6360B6546538EBD7C3C0BC230D6140729833D8 + 5658A887B49E011BA0D5FE98E1C1A54686CF213D0C1FDE7D61F8CCC8C2603A2D + 8861E58F4406E6EDA90803E2821C50A22CB2F33CD800F9D28B0C379AA2197EAF + 3BC8F0919191E1D3BB9F0C2C527C0C4FF36730301F29461810E587F03BDCA019 + 460CA2FFBC18DEEDDCC870F7CD6706E33667861F4F5E331CE9BFC0F0894B8A81 + C1E83BC280502F6B86D5DB8EA28481D3B55486FFFBFE313CB8FE8CE1715C25C3 + 1F73482C307CFEC4C0BC643A03E39B3308034009031D68F3BE61B07DB28781E9 + E36F86DF060298F2BFBE4700003F4A71F77ECF59220000000049454E44AE4260 + 82} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001684944415478DA + 63FCFFFF3FC394C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F + 19ACFDF319CEED98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC + 5BBA09D3007CE0D7EFBF609B4178C98683D80D40770136B0AED69461E59623B8 + 0D80391B04FE01E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D + 760CCEE587E03607359F66585A6AC0B069CF49FC06A0DB0CC2207E58FB598685 + 85BA0CDB0E9CC16DC0C15E0706FBE203605B37375A809D0D02209BA3BB2F30CC + C9D566D87DE41C6E0340CE46B7F9E7AF3F6076D2C42B0C53D2D4180E9FBE8C69 + 4046941B8363E94194105F5E6EC810D9791ECC9E99A5C9903EED3A437F920AC3 + 89F357310D480E7386DB08A2435ACF302C2ED687B8049A067266DD62E88A5364 + 387BF906A60171410E280107B3191DB446C9315CBA7E1BD380283F3B147F23DB + FC1BC9E07FFFFE335CB97907D380502F6B86D5DB8E129D13310C0009900A4006 + 00004B6D80F047EC10D30000000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F330000012D4944415478DA63FCFFFF3F0325 + 80916203966D3945B60991DEA68C6003B42CC41852B26F6355F4E7E77F86DFDF + FE31FCFEFC97E1FBFBDF60F68E73460C89D19D0CE7764C4318000230434E2E77 + C63048416B135C3308A018D0B7F8235C214CB30CFF5E880B3E3F6278F12F11CC + 16175BC3F0FFF76F06865F7F18E4EC4E103600A41904600688092E076B66001A + 22E77C16BB01BFBEFC6338BFD915C30BC89A19FFFC619075BF881A0620FF8334 + FFFAF297E1D75760A07DF9C3B032A610670C641FF64018D03D793E8682A9B63B + 184C53EA197E89A933309DE86638BFEF3CC3DC7DCF19A6B478C1D973F67E6764 + C465C3B116C5D003AFD556DDBD7C10AB7CB293649865F5BDD5F80CF84FB10B80 + D42A9042AABA00A4D1AAE6FE6A901A503E22D90573F7FD80EB011B40696E0400 + A0BEE1E16734A0290000000049454E44AE426082} + Name = 'PngImage27' + Background = clWindow + end> + Bitmap = {} + end + inherited dxLayoutLookAndFeel: TdxLayoutLookAndFeelList + Left = 280 + Top = 224 + end +end diff --git a/Source/Modulos/Contactos/Views/uEditorProveedor.pas b/Source/Modulos/Contactos/Views/uEditorProveedor.pas new file mode 100644 index 0000000..3f3ee43 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorProveedor.pas @@ -0,0 +1,159 @@ +unit uEditorProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + uEditorContacto, uCustomView, uViewBase, uViewContacto, + uViewProveedor, JvAppStorage, JvAppRegistryStorage, JvComponentBase, + JvFormPlacement, DB, uDADataTable, ImgList, PngImageList, StdActns, ActnList, + ComCtrls, TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, + JvComponent, JvNavigationPane, + + uIEditorProveedor, cxControls, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, + cxSpinEdit, cxDBEdit, pngimage, TBXStatusBars, JvExComCtrls, JvStatusBar, + dxLayoutLookAndFeels, uViewContactoDatosBancarios, uBizContactos, + uViewProveedorDatosComerciales, uViewDetallesGenerico, uViewDireccionesEntrega, + uDAInterfaces, uViewContactoListaDatosBancarios, uViewPersonalContacto, + cxLabel; + +type + TfEditorProveedor = class(TfEditorContacto, IEditorProveedor) + frViewProveedor1: TfrViewProveedor; + pagDatosComerciales: TTabSheet; + frViewProveedorDatosComerciales1: TfrViewProveedorDatosComerciales; + pagDirecciones: TTabSheet; + frViewDireccionesEntrega1: TfrViewDireccionesEntrega; + actGruposProveedor: TAction; + actDocumentosPedidos: TAction; + actDocumentosAlbaranes: TAction; + actDocumentosDevoluciones: TAction; + actDocumentosFacturas: TAction; + actDocumentosRecibos: TAction; + TBXSubmenuItem3: TTBXSubmenuItem; + TBXItem7: TTBXItem; + TBXItem33: TTBXItem; + TBXItem34: TTBXItem; + TBXItem35: TTBXItem; + TBXItem36: TTBXItem; + TBXSeparatorItem6: TTBXSeparatorItem; + TBXItem37: TTBXItem; + TBXSubmenuItem2: TTBXSubmenuItem; + TBXItem38: TTBXItem; + TBXItem39: TTBXItem; + TBXItem40: TTBXItem; + TBXItem41: TTBXItem; + TBXItem42: TTBXItem; + TBXSubmenuItem8: TTBXSubmenuItem; + procedure actGruposProveedorExecute(Sender: TObject); + procedure actDocumentosAlbaranesExecute(Sender: TObject); + procedure actDocumentosPedidosExecute(Sender: TObject); + procedure actDocumentosDevolucionesExecute(Sender: TObject); + procedure actDocumentosFacturasExecute(Sender: TObject); + procedure actDocumentosRecibosExecute(Sender: TObject); + protected + procedure EliminarInterno; override; + procedure SetContacto(const Value: IBizContacto); override; + public + constructor Create(AOwner: TComponent); override; + procedure PonerTitulos(const ATitulo: string = ''); override; + end; + +implementation + +{$R *.dfm} + +{ TfEditorProveedor } + +uses + uDialogUtils, uGruposProveedorController, uBizGruposProveedor, + uProveedoresController; + +procedure TfEditorProveedor.actDocumentosAlbaranesExecute(Sender: TObject); +begin + inherited; + (FController as IProveedoresController).VerAlbaranesDeProveedor(IBizProveedor(Contacto)); +end; + +procedure TfEditorProveedor.actDocumentosDevolucionesExecute(Sender: TObject); +begin + inherited; + (FController as IProveedoresController).VerDevolucionesDeProveedor(IBizProveedor(Contacto)); +end; + +procedure TfEditorProveedor.actDocumentosFacturasExecute(Sender: TObject); +begin + inherited; + (FController as IProveedoresController).VerFacturasDeProveedor(IBizProveedor(Contacto)); +end; + +procedure TfEditorProveedor.actDocumentosPedidosExecute(Sender: TObject); +begin + inherited; + (FController as IProveedoresController).VerPedidosDeProveedor(IBizProveedor(Contacto)); +end; + +procedure TfEditorProveedor.actDocumentosRecibosExecute(Sender: TObject); +begin + inherited; + (FController as IProveedoresController).VerRecibosDeProveedor(IBizProveedor(Contacto)); +end; + +procedure TfEditorProveedor.actGruposProveedorExecute(Sender: TObject); +var + AGruposController : IGruposProveedorController; + AGrupos : IBizGrupoProveedor; +begin + AGruposController := TGruposProveedorController.Create; + try + AGrupos := (AGruposController.BuscarTodos as IBizGrupoProveedor); + AGruposController.VerTodos(AGrupos); + finally + AGrupos := NIL; + AGruposController := NIL; + end; +end; + +constructor TfEditorProveedor.Create(AOwner: TComponent); +begin + inherited; + ViewContacto := frViewProveedor1; +end; + +procedure TfEditorProveedor.EliminarInterno; +begin + if (ShowConfirmMessage('Desea borrar este proveedor?', '') = IDYES) then + inherited; +end; + +procedure TfEditorProveedor.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + if Assigned(Contacto) then + begin + if Contacto.EsNuevo then + FTitulo := 'Nuevo proveedor' + else + FTitulo := 'Proveedor'; + end; + + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorProveedor.SetContacto(const Value: IBizContacto); +begin + inherited; + if Assigned(Contacto) then + begin + frViewDireccionesEntrega1.dsDetalles.DataTable := Contacto.Direcciones.DataTable; + frViewProveedorDatosComerciales1.Contacto := Contacto + end + else + begin + frViewProveedorDatosComerciales1.Contacto := NIL; + frViewDireccionesEntrega1.dsDetalles.DataTable := NIL; + end; +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uEditorProveedores.dcu b/Source/Modulos/Contactos/Views/uEditorProveedores.dcu new file mode 100644 index 0000000..9a0f8c9 Binary files /dev/null and b/Source/Modulos/Contactos/Views/uEditorProveedores.dcu differ diff --git a/Source/Modulos/Contactos/Views/uEditorProveedores.dfm b/Source/Modulos/Contactos/Views/uEditorProveedores.dfm new file mode 100644 index 0000000..5069fc9 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorProveedores.dfm @@ -0,0 +1,3147 @@ +inherited fEditorProveedores: TfEditorProveedores + Caption = 'fEditorProveedores' + ExplicitWidth = 714 + ExplicitHeight = 538 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Caption = 'Lista de proveedores' + inherited Image1: TImage + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 520000000467414D410000AA11B57D14DC0000034D4944415478DADD957D6855 + 651CC73FE7BE7177CDB9B18A126639175BE8F08F59BE35D199B6DE56833057E2 + 0B668AA361A953D3A1A6CEA9C3A0242AFA27184134080A05250DCD958E063502 + 69D272EE6ED96DBBDEBB7BCFD9BDE7B5E75CB7E1E59E39FF70FFF8C08FE739E7 + 39E7FBF93EBFDF799E235996C54436E9FE007C7BEE8F09A15495CF924601E262 + 74429707E8BD7C9C707F17866EF160D14B3C5EBA2A43C0304C1156AAD74C31D6 + CDD458370D9E5BB98DDF7FF8DC1910FCB11EF56627916842441CC5705358B68E + E2A7ABEF4ADCEE5F78B3CE19D07DA68EC4CD6E0CD3472C26138F2BC464999812 + 66F19A13E4172F1915AF6BD61C53F35E85C2CBAB776602E4DE5FF9EBE72694C8 + 90288E473C6AE1754BA89A4AA83F44F6F452CA569EB8A3F3549816AFAEDD9509 + E8EF68A1A7A319537513C80A90E5F322218412496445A13314E495ED6D291155 + 33D8DBE25CDC9AF218AFBDB5DB1910E96AC14F00AFC72BDCE9689A264225994C + D2193159BEF11B74DD766CBB3586DDDF726EDA2B13EE3531AEDE589F0988062F + 11FEED2B5C43115C2EE15DBCA80F43627282C1BC45CCA9A81D57DC4EDBAA9ABD + CE45EE69FD84E4F556917E037BEE16402518F550B06C270F4D2B1957DCBEB7A6 + 76FF185FD1852B749CFA80470A13784591355DA357D608F72E64D1BA2AB2A74E + 1F57DC9E5BBFE54026A0E7FC4F5C6A384ADFB5106A6125B3AB6FD0D716267859 + D423D44641F97C166C7F075FCE6329A15D4DDF391679CBDA72DEDE7A281DB0A4 + 6032178F1CA1EFC2797C8ACE40CEC394AC7883484F3703674F8BC227E87799E4 + CD5BC8539B5633E9D15969CE353D3D6D353B1AD3014F46BB38D7D4004A9C298A + 785085786E1E3E3541408EA1FB250644FCF7CF2045CF2F675E7D23FB3F3EE9B8 + 824DD565D4BE7F341D907FA595331F1EC69F9B2D003A01D522A999887D86E473 + 21FB5D44B2DC84FFFE979C19C5547EF935FAC8C6BACDF9C8467B77CFB1744051 + F84FBE3F78402422C914B7878010F78883CE1200D52B21FBDC4407E3E21819A2 + E4C50A66D71DA2F1B3D38E2BD8F0FA3399808AF945F475B4F3CBA75F70B5BD1D + 53E455B24CEC73DC4C85458EFF01E6EED94CEECC67C7743ED232004BE73E31E6 + B992BA678CF4E6B8E28E80C5A533EE99B823605FC347F7FC8F360A98C836E180 + FF01702244FEF5B056BE0000000049454E44AE426082} + end + end + inherited TBXDock: TTBXDock + inherited tbxMain: TTBXToolbar + ExplicitWidth = 706 + inherited TBXItem2: TTBXItem + Images = SmallImages + end + object TBXSubmenuItem3: TTBXSubmenuItem [14] + Caption = 'Documentos relacionados' + DisplayMode = nbdmImageAndText + DropdownCombo = True + ImageIndex = 23 + object TBXItem46: TTBXItem + Action = actDocumentosPedidos + end + object TBXItem45: TTBXItem + Action = actDocumentosAlbaranes + end + object TBXItem44: TTBXItem + Action = actDocumentosDevoluciones + end + object TBXItem43: TTBXItem + Action = actDocumentosFacturas + end + object TBXItem47: TTBXItem + Action = actDocumentosRecibos + end + end + inherited TBXSeparatorItem2: TTBXSeparatorItem [15] + end + inherited TBXItem26: TTBXItem [16] + end + end + inherited tbxMenu: TTBXToolbar + inherited TBXSubmenuItemAcciones: TTBXSubmenuItem + object TBXSubmenuItem2: TTBXSubmenuItem + Caption = 'Documentos relacionados' + object TBXItem42: TTBXItem + Action = actDocumentosPedidos + end + object TBXItem41: TTBXItem + Action = actDocumentosAlbaranes + end + object TBXItem40: TTBXItem + Action = actDocumentosDevoluciones + end + object TBXItem39: TTBXItem + Action = actDocumentosFacturas + end + object TBXItem38: TTBXItem + Action = actDocumentosRecibos + end + end + end + end + inherited TBXTMain2: TTBXToolbar + Left = 270 + DockPos = 270 + ExplicitLeft = 270 + end + end + inline frViewProveedores1: TfrViewProveedores [3] + Left = 0 + Top = 102 + Width = 706 + Height = 383 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 102 + ExplicitWidth = 706 + ExplicitHeight = 383 + inherited cxGrid: TcxGrid + Width = 706 + Height = 255 + ExplicitWidth = 706 + ExplicitHeight = 255 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = '0 proveedores' + Kind = skCount + FieldName = 'NIF_CIF' + Column = frViewProveedores1.cxGridViewREFERENCIA + end> + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 706 + ExplicitWidth = 706 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 706 + inherited dxLayoutControl1: TdxLayoutControl + Width = 706 + ExplicitWidth = 706 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 446 + Width = 446 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 219 + Width = 219 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 323 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 323 + ExplicitWidth = 210 + Width = 210 + end + inherited eLista: TcxComboBox + Left = 570 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 570 + ExplicitWidth = 215 + Width = 215 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 706 + ExplicitWidth = 706 + inherited tbxBotones: TTBXToolbar + Width = 696 + ExplicitWidth = 696 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 357 + ExplicitTop = 357 + ExplicitWidth = 706 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 706 + ExplicitWidth = 706 + inherited TBXToolbar1: TTBXToolbar + Width = 696 + ExplicitWidth = 696 + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39211.792703807870000000 + BuiltInReportLink = True + end + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewProveedores1.cxGridView + HitTypes = [gvhtCell] + Index = 0 + end> + end + end + inherited EditorActionList: TActionList [4] + inherited actNuevo: TAction + ImageIndex = 22 + end + inherited actPrevisualizar: TAction + Enabled = True + Visible = True + end + inherited actImprimir: TAction + Enabled = True + Visible = True + end + object actDocumentosPedidos: TAction + Category = 'Acciones' + Caption = 'Pedidos' + ImageIndex = 24 + OnExecute = actDocumentosPedidosExecute + OnUpdate = actDocumentosPedidosUpdate + end + object actDocumentosAlbaranes: TAction + Category = 'Acciones' + Caption = 'Albaranes' + ImageIndex = 25 + OnExecute = actDocumentosAlbaranesExecute + OnUpdate = actDocumentosPedidosUpdate + end + object actDocumentosDevoluciones: TAction + Category = 'Acciones' + Caption = 'Devoluciones' + ImageIndex = 26 + OnExecute = actDocumentosDevolucionesExecute + OnUpdate = actDocumentosPedidosUpdate + end + object actDocumentosFacturas: TAction + Category = 'Acciones' + Caption = 'Facturas' + ImageIndex = 27 + OnExecute = actDocumentosFacturasExecute + OnUpdate = actDocumentosPedidosUpdate + end + object actDocumentosRecibos: TAction + Category = 'Acciones' + Caption = 'Recibos' + ImageIndex = 28 + OnExecute = actDocumentosRecibosExecute + OnUpdate = actDocumentosPedidosUpdate + end + end + inherited SmallImages: TPngImageList [5] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001FA4944415478DA + A5934B6813511486BF342610A2C50A86A220150BA2145C58D120828ABA2AD2BA + F0B510C48D1B1154A828A55D5877825474AB45375D58A80B9385292DA8A8B151 + 6B6D8DB50F43C1B4C624364C1E73E7E19DA96408B50BCDC0E5CC65E6FFFE7FCE + DCE3324D936A2E577FE46355041BD076B0C9DE280B23E412E3F6FD9A4DDBF107 + 76965F3464524D33109A8E2A7459350E1FBFEC002CF1FCEB1EF28B82F98534C9 + 5C9203A7EFB2A1712F9A6E70A557AD706EA88970FFD1C012E0E8BECDCC3EEF22 + 33338DAECBA7A64E36FB8B5431C389EBB12557B93461D8CED6FE71F8A5036809 + AE271EBA0879177E9F0FB704284A9ED8B7498EB5476D71671F2B276809D63337 + D481B75892EEC86F5429140A7CD7D6D17CEA4E85B3D5070B181A8A3A00AB07C9 + B70F512643567E8410E4F22A46432B8D7B4E2E130BD9C4672F629580A9D02B86 + E76EB0CDF0CA0425A205D8B5F11C5B8F1C5A26B6D6F09B0F0E2058AB11B97495 + D44F95FAB34D881A831F0F26989A9EA0FDEB275B7CEDD6938A1EECDE117000FE + 701FF1A703D4153D28AB6B71E3C2A72C92F6A8C413292E8CBD2F3B8B3F67213A + 3AEE000AB7BB49CC8E11D03CAC92BFDB251D4A5E93B45B90984973FEDD08DDF7 + C22B27889D69239355FE7A54EBD6FA690D0FDAAEBA61DAD59075F4F31707B0BF + 790BBDFD83FF3C076540D7CD9EFF1FA66AC7F93783B161288AF0DFC000000000 + 49454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000018E4944415478DA + 6364C002966C3EF19F010F88F1B56084B119CF4E6443516C9CFF8B116440B48F + 398AA6BFFFFE31FCF9F38F61CDAEB30CBD5316329CDF399D116E8051DE4FB0A2 + 7393D8190E9FFFC520127C8201D90098E6DF7FFE326CDC778141469483A1B07E + 26D810B801FF7F7F6498942600D7943FFF3F866610BDF5D025B00B50BC6098F9 + 8AE1CFD7070C971799A1385B3FE73B8AE6DF7F41F45F8603A76F81E5BB27CD87 + 18A01B778AE1EFB7070CD7D68431A07B2779EA0F14CD20F69FBFFF184E5CBA87 + 30402B6415C3DFAFF7196E6E2F67C0E69DA8BECF289A7FFDFECB70EEFA438401 + EA9E9D0CEF2F7530BC7AFA9E01977744435FC03583BC74F9F613840120A78280 + AD211B033EEF78D4BD046BFE0D34E4C683E71003906D21C63B76A58F197E010D + B9F7E4157603B07907E42290A173DA0A192C0A1F805DF0F8E55BEC0660F30E48 + 33C8D0B55B5E3218E7DC0587C5F337EF310DC0E59D3F5F6E317CBEB70E6C8058 + E829B81A8206C0BC03032003163ECF84F3FF337EC76F00CC3BC8A06001AA1EC6 + FFFFF1E65C820000241257B48E5A5E7D0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001864944415478DA + 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F + 192CBCB3192EEE99856AC05E4B2B14C5CEC78F81696471AB030719662EDFC530 + 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB001DDAD3B19966D3A84 + DB0098B341E01F50EECF9F7F709BCFB93B33686EDCCEB06ADB11FC06C05C627B + E830C3613B5BB8CD97BDDD1954D66E6158BFEB387E0360367FBA7990E1C5C218 + 7C3E72C130C0F1D85186FD56D66059719B070CAA2D350CECEC59183A7FFE9CC6 + 303BB68501C30090B3617E7EDAACCCA0D3FD0CAC180EBE7F6760F8F19D61FA0E + 4306966DA9080372623D190EDAD8A0D80272018A0120CD1FDE81E9E9279D510D + 488F7463F805B4F9CF6F50A8FF61B8EAEB816A004CF37B20FEF19361FACD6054 + 0312439DE19A415EB815E88D30E0432F42F3870F1017BC4A45352036C011AE19 + 140320D7FC9E6A0031E041354233D80540037E95A31A10E163CBB062CB61D438 + BA9A0A8E85E9CBE5B1C6218A01A084810EB478DF3058B39EC099081CE4195C00 + 45135E518E0B4E380000000049454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000001744944415478DA63FCFFFF3FC394 + C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F19ACFDF319CEED + 98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC5BBA09D3007CE0 + D7EFBF609B4178C98683D80D40770136B0AED69461E59623B80D80391B04FE01 + E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D760CCEE587E036 + 07359F66585A6AC0B069CF49FC06C06CFE7CFB30C3CBC5B1F87CE48261C0C15E + 0706FBE20360D999EC710CCA0D350CECECE9183A7FFE9CC9302FB18501C30090 + B3617E7ED6A6C6A0D5FE18AC180E7EFC00E2EF0CB3771930306F4F45189011E5 + C6E0587A10C516900B500C0069FEF00E62C02927540392C39CC1B6C2423DA4F5 + 0CAA0130CD60037E32CCBE15846A405C90034A9445769E4718F0712242F3870F + 1017BC4A413520CA0FE177B841338C20063CAC47688679E15719AA01A15ED60C + ABB71D450903A76BA9E05898BD4A1E6B1CA218004A18E8409BF70D8315EB719C + 89C05E9EC10500D1295EA9BD5461080000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000001974455874536F6674776172650041646F626520496D616765526561 + 647971C9653C000002034944415478DA63FCFFFF3FC394C53BFE33900172623D + 1819610600394469FAF3F71FC3EF3F7F19ACFDF319CEED98866A806DD17E14C5 + 87FB1CC134B2F8AE761B86B9ABF632CC5BBA09D3007CE0D7EFBF609B4178C986 + 83D80D40770136B0AED69461E59623B80D80391B04FE01E5FEFCF907B7D9B7FE + 04C3AA4A6386B53B8EE13700E692BD9D760CCEE587E03607359F66585A6AC0B0 + 69CF49FC06C06CFE7CFB30C3CBC5B1F87CE48261C0C15E0706FBE20360D999EC + 710C5CD2D60C3C37FF333C0DCF66D0B7B1038B7F7D709FE14E4B3CC385339718 + 300C00391BE6E7676D6A0C5C6FCD19642EEF60782BABC1F035CF9581E3D53B86 + A78DEB186E73A9327C927A88302023CA8DC1B1F4208AFB402E502EB9C0702FC5 + 9A81E3F22D86DF02620CAF9EBF6360B6546538EBD7C3C0BC230D6140729833D8 + 5658A887B49E011BA0D5FE98E1C1A54686CF213D0C1FDE7D61F8CCC8C2603A2D + 8861E58F4406E6EDA90803E2821C50A22CB2F33CD800F9D28B0C379AA2197EAF + 3BC8F0919191E1D3BB9F0C2C527C0C4FF36730301F29461810E587F03BDCA019 + 460CA2FFBC18DEEDDCC870F7CD6706E33667861F4F5E331CE9BFC0F0894B8A81 + C1E83BC280502F6B86D5DB8EA28481D3B55486FFFBFE313CB8FE8CE1715C25C3 + 1F73482C307CFEC4C0BC643A03E39B3308034009031D68F3BE61B07DB28781E9 + E36F86DF060298F2BFBE4700003F4A71F77ECF59220000000049454E44AE4260 + 82} + Name = 'PngImage26' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001684944415478DA + 63FCFFFF3FC394C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F + 19ACFDF319CEED98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC + 5BBA09D3007CE0D7EFBF609B4178C98683D80D40770136B0AED69461E59623B8 + 0D80391B04FE01E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D + 760CCEE587E03607359F66585A6AC0B069CF49FC06A0DB0CC2207E58FB598685 + 85BA0CDB0E9CC16DC0C15E0706FBE203605B37375A809D0D02209BA3BB2F30CC + C9D566D87DE41C6E0340CE46B7F9E7AF3F6076D2C42B0C53D2D4180E9FBE8C69 + 4046941B8363E94194105F5E6EC810D9791ECC9E99A5C9903EED3A437F920AC3 + 89F357310D480E7386DB08A2435ACF302C2ED687B8049A067266DD62E88A5364 + 387BF906A60171410E280107B3191DB446C9315CBA7E1BD380283F3B147F23DB + FC1BC9E07FFFFE335CB97907D380502F6B86D5DB8E129D13310C0009900A4006 + 00004B6D80F047EC10D30000000049454E44AE426082} + Name = 'PngImage27' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F330000012D4944415478DA63FCFFFF3F0325 + 80916203966D3945B60991DEA68C6003B42CC41852B26F6355F4E7E77F86DFDF + FE31FCFEFC97E1FBFBDF60F68E73460C89D19D0CE7764C4318000230434E2E77 + C63048416B135C3308A018D0B7F8235C214CB30CFF5E880B3E3F6278F12F11CC + 16175BC3F0FFF76F06865F7F18E4EC4E103600A41904600688092E076B66001A + 22E77C16BB01BFBEFC6338BFD915C30BC89A19FFFC619075BF881A0620FF8334 + FFFAF297E1D75760A07DF9C3B032A610670C641FF64018D03D793E8682A9B63B + 184C53EA197E89A933309DE86638BFEF3CC3DC7DCF19A6B478C1D973F67E6764 + C465C3B116C5D003AFD556DDBD7C10AB7CB293649865F5BDD5F80CF84FB10B80 + D42A9042AABA00A4D1AAE6FE6A901A503E22D90573F7FD80EB011B40696E0400 + A0BEE1E16734A0290000000049454E44AE426082} + Name = 'PngImage28' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002444944415478DA + 9D964B6813511885CF2074E74A70E34277522BD2E842178A1041108A6ED4858A + 28880F908A5D148A50105CD4450B4AC520BE8A56C4D7A2AD548B41A90FAA6932 + 69190CA52E54444DEBA8D8343269E65EE7BF319967676E7BE06766C2F07D77EE + C9C02808C8EDFE118E45A4B3BB07EAD3CB8AF33725E84612EC6FDAB82078EFC0 + 5BAC58BE0C2DED5D2E8992BE5017B8DAF5CDC682058DF5AB30ADCFB82442E084 + 715682DABD142FD5124EDD90DB29D364B83B98C2E60DAB51281A2E894B40705E + FA89EC95956838D881C4E9964809C14D93E3FED028E29B1A509A2BBB24354115 + CEAC19BF19134F504D9084330ED39AB225A0F347C98C28D91B21889D9CA9C12B + A357AE8D1FB8DAD1EA1338E1E6FF29338657EA47CC1667A1EBBAB8EF7A6F5F45 + D078F493D896A078BB980FEE3DEF4FBEB305EB0EA9625BA2CA968533AB93C72F + 52B660EDBE24B43BDB105676F335260DA7FB9E0C8FDA8235BBEFE1FD83BD882A + FB58624E0A4E8B78F63A630BEA772690EB3B8EA8B28F5C32A4E074FD7C246B0B + 68955B6275882AFBF0C5BF52709AE1D478455005C8947DA0ABE01210B4FAA209 + 11E735F19BB4E617C894BDE7FCEF40B8F7C9526339BF40B6EC5DE7F450381D33 + DA845F205B76D3D9E95038CD586ED22F70961D04FFA575E2E1401E3BDAA742E1 + B47DDAC407B7C05BB6176E1A53F833794B08B69FF91E0AA7840AA86C2F9C1979 + 143E0F0941BCED6B283C5240657BE1CC3A16F35921D8DAFA25141E29A0B2F574 + 5BE00B478225F141C8645E81F32F19949E6F27A4041485F3457DA148E71FF2CE + 98E361E521AA0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026C4944415478DA + 63FCFFFF3FC3A28DC7FF335009C4F95B3222F319611600254836ECEFDF7F40FC + 1F4C8380856F36C3C53DB3705BB0D7D21EC500E7E307711A8EACD674CF2E8679 + ABF730CC5FB211BF05A4B8FC808D2383328B34C3B6D3CB19225F7E6358B87E1F + 610BB0F9005D0C046C0FEE63386CEFC470F3FC21303FECD91786259B0E50E683 + FFFF80610DC47F80AE07B17FFF0386FF9F7F60DFFCF9F79761C596C3A4FB8018 + 00F285EF83770C6B771C23CE0298B749015E77DF306CD87D82380BF0A51C6C00 + A44771E55A864DFB4E126F01AEA082590E9387A9955BBE8661EB8153B4F381E4 + 92550CBB0E9FA1AE0F6EAA108EABC75FEDC8F3C1B4584686847408FBE74F0686 + 5F3F2018C4FEF903824F1C47B320DAC71C9C3B09F98058C3F9251818AEDC45B2 + 20C2D30C9C3BF1F90064388B207EDFFD798F301C250E42DD4C188E39B910B400 + E67A10F8F80EE2E21F5097FFFACEC070FA0C2468EC0D0F311C3C8FE483001723 + 86D32E6E785D078A5890664200643808A058E0EB60002F5720E5FC3F70D90316 + 0396F94FA343C11620FB001C247F81F83703C36F501C007D70ED3A420EC5022F + 5B3D9C8683E81771E11816FCFA05341888FF40E995ABD919D4357E32B0B160B1 + C0CD5A1BA7E1A012F44D62248605A038005B00F201106FDACACE202D0FB1808D + 9581E1F865240B1CCD35C086FDFB0B29967FFF4514C7FFFE432C3ADD2D8F62C1 + 9B1708C341166DDFCDCE202A0DB1E0F21D3B86F6750719E116D899A8814B447C + 806DAF0FDC0250F0BC7B89301C44EF39C0CEC02FFE93E1FE1388E128C9B477F2 + 7C82A9235D7236D882A993D971AA79F7DB1C6E38DC0262417738C73AA00181F8 + D4201B0E0200C20B50400F1E42A70000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F330000026A4944415478DA63FCFFFF3F032D + 0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80F83F980601EBC0 + 7C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3C275FB19E62DDD + 84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD97890B005D87C802E + 06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9E0FF3F605803F1 + 1FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F18E70860DBB4E10 + 6701CCDBA480075B431936EF3D459C05F8520E3600D2B3A8508F61EB81D3C45B + 802BA86096C3E4616AE7E7EB32EC387486721F4C2C7064F8CA7E8E41F8D527BC + BE7AF2D589341FC02C6D2BE76788F0FBC520C1F883E1D74F0608FEC1C0F01346 + 03F1C9134458800DCC4C6464884D85B0F119CE2FC1C070F52E160B223C4DC1B9 + 139B0F62DE3B31B008E28FEC3FEF1186638D8350371370EEC4E60364D783C0A7 + F71017C330C80767CE4082C6CE701FC3A1F3587C10E46CC4E0567D04A70520CD + 8400C87010C06A819FA3018357ED31AC1A414184EC0310F8FB17182CBF19187E + FF02FAE23B03C38D1B0839AC1678DBE9C1CB155819032A7B40F49E7A51140B40 + 86FE061AFEE71784BD660D07839AC60F0636163C167858EB60351C54A1EC6F12 + C3880390C1201F80F0966D1C0C52F2100BD85819184E5CC662818BA51656C341 + F4A15609140BDEBE44180EB268E71E0E061169880557EE383134AFDACB886181 + BDA93AD8B07F7F11C532CCC2E39DD2700B4006BE7B85301C1454FB0E7230F089 + FF6078F0046238D6646A63A40A2E11B101D67D9E600B664EE5C09982DEFDB662 + D8FA491D7759D43B65214ECDF6BCFB187818A5F1265190E12000B300003BBC36 + ACFF3E80210000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000001974455874536F6674776172650041646F626520496D616765526561 + 647971C9653C000003294944415478DAB5956B4814511886DFD15557DD753531 + 352B495129723149222DAF61A921249A4216F4C37F81194445445028F5A32088 + 2E109991F443BAAB98B7F55A9AA1A549B4D2C5CAD2557775BDB4D7D9CE991A2F + EDACED62BD70383373CE7CCF79BF73E61BC662B1E07F8A590828AFECFC67B47D + BBB730820032E07030B39925CDC2F554717B0AD15D73C53660FB11C5A200AD17 + 936C065F38B7FA6C2CCAEE2B70B3FCF1D20047569E78B419A28810345DAB81A6 + F900EE3C6AFE3B40C8C19FCFA81ACEC523E5780BDA144AEE7EAC311F772B5B97 + E7C0C2925C936622ABA7D72696FDBD072C775D51DDEEB8037B445D7CA9C9C5C3 + DA0EFB00BC6D47F4A92A074F1A5ED80758EAE40889BE73BB488EAAA62EFB01B6 + 52C5C3F9717E6E6961246A5A5E2EDFC1A5C3499871EB86AF4ABBA4ABAF33C98E + 39E0A125C764C8CB342080D1C1A0C7AFA603F47C4F5A67871D00215D3FC82077 + 2F3055EF85498B3B64892360D8F9E0BA5940592581DB900903E2506B405E5A0C + F7750A39C8D72443E403F8770119AC044C50382A0CC3D0047F83B333E0A27582 + 4F8F3BBC4619F4497DA15E1B680DC849DDCC7D9D420EE8EAF71700E33D80D30D + 406C60200E5C87B7C15A98246AB82AC4981CD6A37B4D28E4D94AB4F408A4282B + 251AA927DB6C02685EA9BC54E3481BEC87C86C02239561624A8FA9193D7A42C2 + 1195F58E9B2308C84C8A42FAA96782F9A729A20E780D5493D271CB09D37A167A + 33C0CAC9C39DF3E382808C78F95C5DE16B0CAD3DB4AF3FED3707508F3318BE17 + 0453BD8AACDC001D014C93CD764907649B9600EC8ADB28189CFE501467567200 + DD2439450FC2607863C6C7FE0FC07AF232D9FCEF75E4341188349BA43012E8E8 + 1300ECD8BA413038ED5B8A033880A6DC1BA27E5FF4BE7E0F832F105C4436DD03 + A82B75817BAF1116B280B1383956B4F7BA5901126222B860AC79BE2CF3C0E7E7 + 833880AAC40F43DD1350CD1AB1FA10E0190A188D4063B318520F1DB4B5FEF0FC + 3C324222175B01B64587711551482E8D691CA0F4842BFC5E19C83917E1875CB4 + 688EDA188B2A6D040A9E5E4D259147AD00172E97C19612A48D90304160881B6F + E520A657F9C128932C9A43835311004323FF04D4D3607A0FD2DBC40000000049 + 454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001BE4944415478DA + 63FCFFFF3F032D0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80 + F83F980601EBC07C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3 + C275FB19E62DDD84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD978 + 90B005D87C802E06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9 + E0FF3F605803F11FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F1 + 8E70860DBB4E106701CCDBA480075B431936EF3D459C05F8520E3600D2B3A850 + 8F61EB81D3C45B802BA86096C3E4616AE7E7EB32EC387486763E989DA3CDB0E7 + E839DAF96046A626C3FE131768E783A969EA0C874E5FC26F4184A729387792E3 + 838929AA0CC7CE5EC16F41A89B09387792E3839E042586D317AFE3B720C8D988 + C1ADFA08591674C62A309CBB7213BF057E8E060C5EB5C7F01A06B27CC1913F70 + 7E820D0BD882B62839868BD76FE3B7C0DB4E0F5EAEC0CA1850D9032BF393275F + C1881F18BF394296E1CACD3BF82DF0B0D6C16938884E9B760D6BF0116D818BA5 + 164EC3411667CDB88133E888B2C0DE541D6CD8BFBF88621966E1BFFFFFB1061F + 322068818D912AB844A404E0B5A077CA428A0C8701980500619929EF09CFCE42 + 0000000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F330000028C4944415478DADD945F4853511C + C7BF77646942ABE9A061F6BF8690D443427B88A2321123166EDAA21E122308EA + B184407DC887E8A932F0611A3542325F0A0729B432A849CA68CA1CA2B86C0C4B + 43A428EFEEEE9FCE39E8DA9FBB7F0F7BE9073F7EE7DE7BCEF7737EBFF33B9753 + 1405F934EEFF00F43A47F34689026C7555392D1425059224232C882C8AB2CC22 + 1B131722121AAFB6C6030E5BDE6514964540126444C2448CB8F0538448C78204 + 99BC672E8A687FA045CFB357C980B1FEE371A033B53EB4365D4B06911D53AFAE + 71603A50C284BF85CEA174CB73709284B647BAD4006A741C2B3EBEFC05756573 + 88AC7C4541D17638433B602C324010049C35F7C33FA1C5C2623D9B5B5AEC407B + 973E7D066BE2E5C5C308FE3EC622151F5A3A8AD3BAB704B21B538B5530EA47E1 + 0D56A2DEFA12C3AE26E8373E25352419D80DEA80C4D21834BD98976DD8AA7130 + F11A9D1B834B2654970C6166D986FDDA018C7F3F8586F303981C59C7C4E941B5 + F594670788CF60161C0AA18067194C840EA2B2CC8B4FD3FB70E1D220263F70AB + 5D403278B2333D2016229105BE5F417606023F85F585467606DBE44D08F37C92 + 38B59480D82EA2ED6736FBD172B1994164D6EB52D4E973A3CD19155F8C5C815E + D3951E10BD48B4B77985C50D073CF86C79AF7A2FF4B596B89DAF992A20F1968A + AB37D377BF02FA9356EC3D72173323B7D89C85D931708100BA5DF3B0DF3E9104 + EE0C5D4F06743A5EABEE72F31F0FF6FCB033B1446BE9B89112EC29B8FC0F70EF + E1E38CBF09CFCD39D5F7CD1DAEE4B9449C1A03701C9751FCE39D5D4A2E6522D0 + 866E17FF22178095843EB532D9DFACA8420980CB0A40C54DA68A3EB56F6EB75F + F56C881D22006FB680B4E5A13B4DB536EB0C52958718AB755A403E2DEF80BF27 + 2521AB920B52530000000049454E44AE426082} + Name = 'PngImage27' + Background = clWindow + end> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [7] + end + inherited dsDataTable: TDADataSource [9] + end + inherited StatusBarImages: TPngImageList [10] + end + inherited GridPopupMenu: TPopupMenu + object Documentosrelacionados1: TMenuItem [10] + Caption = 'Documentos relacionados' + object Pedidos1: TMenuItem + Action = actDocumentosPedidos + end + object Albaranes1: TMenuItem + Action = actDocumentosAlbaranes + end + object Devoluciones1: TMenuItem + Action = actDocumentosDevoluciones + end + object Facturas1: TMenuItem + Action = actDocumentosFacturas + end + object Recibos1: TMenuItem + Action = actDocumentosRecibos + end + end + end + object JsPrevisualizarDialog: TJSDialog + Content.Strings = ( + 'Elija una opci'#243'n:') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Previsualizar...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Previsualizar las etiquetas de los proveedores seleccionados' + Value = 100 + Default = True + end + item + Caption = 'Previsualizar la lista de proveedores actual' + Value = 200 + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 550 + Left = 296 + Top = 144 + end + object JsImprimirDialog: TJSDialog + Content.Strings = ( + 'Elija una opci'#243'n:') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Imprimir...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Imprimir las etiquetas de los proveedores seleccionados' + Value = 100 + Default = True + end + item + Caption = 'Imprimir la lista de proveedores actual' + Value = 200 + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 550 + Left = 328 + Top = 136 + end + object JsListaContactosNoEliminados: TJSDialog + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = + 'Los siguientes clientes no han podido ser eliminados, porque tie' + + 'nen documentos asociados' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + ButtonBar.Buttons = [cbOK] + ButtonBar.Cancel = cbOK + ButtonBar.UseCancel = False + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 184 + Top = 112 + end +end diff --git a/Source/Modulos/Contactos/Views/uEditorProveedores.pas b/Source/Modulos/Contactos/Views/uEditorProveedores.pas new file mode 100644 index 0000000..51e4ccb --- /dev/null +++ b/Source/Modulos/Contactos/Views/uEditorProveedores.pas @@ -0,0 +1,253 @@ +unit uEditorProveedores; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + uEditorContactos, Menus, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, + StdActns, ActnList, uCustomView, uViewBase, uViewBarraSeleccion, ComCtrls, + TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, + JvExControls, JvComponent, JvNavigationPane, + + uIEditorProveedores, uViewGridBase, uViewGrid, uViewContactos, uViewProveedores, + pngimage, TBXStatusBars, JvExComCtrls, JvStatusBar, JSDialog, uDAInterfaces; + +type + TfEditorProveedores = class(TfEditorContactos, IEditorProveedores) + frViewProveedores1: TfrViewProveedores; + JsPrevisualizarDialog: TJSDialog; + JsImprimirDialog: TJSDialog; + JsListaContactosNoEliminados: TJSDialog; + actDocumentosPedidos: TAction; + actDocumentosAlbaranes: TAction; + actDocumentosDevoluciones: TAction; + actDocumentosFacturas: TAction; + actDocumentosRecibos: TAction; + TBXSubmenuItem2: TTBXSubmenuItem; + TBXItem38: TTBXItem; + TBXItem39: TTBXItem; + TBXItem40: TTBXItem; + TBXItem41: TTBXItem; + TBXItem42: TTBXItem; + TBXSubmenuItem3: TTBXSubmenuItem; + TBXItem43: TTBXItem; + TBXItem44: TTBXItem; + TBXItem45: TTBXItem; + TBXItem46: TTBXItem; + TBXItem47: TTBXItem; + Documentosrelacionados1: TMenuItem; + Pedidos1: TMenuItem; + Albaranes1: TMenuItem; + Devoluciones1: TMenuItem; + Facturas1: TMenuItem; + Recibos1: TMenuItem; + procedure actDocumentosPedidosUpdate(Sender: TObject); + procedure actDocumentosPedidosExecute(Sender: TObject); + procedure actDocumentosAlbaranesExecute(Sender: TObject); + procedure actDocumentosDevolucionesExecute(Sender: TObject); + procedure actDocumentosFacturasExecute(Sender: TObject); + procedure actDocumentosRecibosExecute(Sender: TObject); + protected + procedure ImprimirInterno; override; + procedure PrevisualizarInterno; override; + procedure EliminarInterno; override; + public + constructor Create(AOwner: TComponent); override; + procedure PonerTitulos(const ATitulo: string = ''); override; + end; + +implementation + +uses + uGridStatusUtils, uEditorGridBase, uDataModuleUsuarios, uDialogUtils, uBizContactos, + uDBSelectionListUtils, uProveedoresController, uFactuGES_App; + +{$R *.dfm} + +{ TfEditorProveedores } + +procedure TfEditorProveedores.actDocumentosAlbaranesExecute(Sender: TObject); +begin + inherited; + (FController as IProveedoresController).VerAlbaranesDeProveedor(IBizProveedor(FContactos)); +end; + +procedure TfEditorProveedores.actDocumentosDevolucionesExecute(Sender: TObject); +begin + inherited; + (FController as IProveedoresController).VerDevolucionesDeProveedor(IBizProveedor(FContactos)); +end; + +procedure TfEditorProveedores.actDocumentosFacturasExecute(Sender: TObject); +begin + inherited; + (FController as IProveedoresController).VerFacturasDeProveedor(IBizProveedor(FContactos)); +end; + +procedure TfEditorProveedores.actDocumentosPedidosExecute(Sender: TObject); +begin + inherited; + (FController as IProveedoresController).VerPedidosDeProveedor(IBizProveedor(FContactos)); +end; + +procedure TfEditorProveedores.actDocumentosPedidosUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos + and not ViewGrid.IsEmpty + and ViewGrid.EsSeleccionCeldaDatos +end; + +procedure TfEditorProveedores.actDocumentosRecibosExecute(Sender: TObject); +begin + inherited; + (FController as IProveedoresController).VerRecibosDeProveedor(IBizProveedor(FContactos)); +end; + +constructor TfEditorProveedores.Create(AOwner: TComponent); +begin + inherited; + ViewGrid := frViewProveedores1; +end; + +procedure TfEditorProveedores.EliminarInterno; +var + AContactos: IBizContacto; + AllItems: Boolean; +begin + AContactos := Nil; + AllItems := False; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + if AllItems then + begin + if (Application.MessageBox('Desea borrar los proveedores seleccionados?', 'Atencin', MB_YESNO) = IDYES) then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Contactos as ISeleccionable).SelectedRecords); + AContactos := (Controller as IProveedoresController).ExtraerSeleccionados(Contactos) as IBizContacto; + end + end + else begin + if (Application.MessageBox('Desea borrar el proveedor seleccionado?', 'Atencin', MB_YESNO) = IDYES) then + AContactos := Contactos; + end; + + if Assigned(AContactos) then + begin + (FController as IProveedoresController).Eliminar(AContactos, AllItems); + if AllItems then + begin + if (AContactos.DataTable.RecordCount > 0) then + begin + with AContactos.DataTable do + begin + First; + while not EOF do + begin + JsListaContactosNoEliminados.Content.Add('Cliente: ' + AContactos.NOMBRE); + Next; + end; + end; + JsListaContactosNoEliminados.Execute; + end; + actRefrescar.Execute; + end; + end; + + ViewGrid.GotoFirst; +end; + +procedure TfEditorProveedores.ImprimirInterno; +var + Respuesta : Integer; + AProveedores: IBizProveedor; + AllItems: Boolean; +begin + AProveedores := Nil; + AllItems := False; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + //Si esta agrupado solo podr imprimir la lista de elementos visibles + if not ViewGrid.esSeleccionCeldaDatos then + inherited + else + begin + Respuesta := JsImprimirDialog.Execute; + if Respuesta <> IDCANCEL then + begin + case JsImprimirDialog.CustomButtonResult of + 200 : begin // Lista de elementos visibles + inherited; + end; + 100 : begin // Elemento Seleccionado + if AllItems then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Contactos as ISeleccionable).SelectedRecords); + AProveedores := (Controller as IProveedoresController).ExtraerSeleccionados(Contactos) as IBizProveedor; + end + else + AProveedores := (Contactos as IBizProveedor); + + if Assigned(AProveedores) then + (FController as IProveedoresController).Print(AProveedores, AllItems); + end; + end; + end; + end; +end; + +procedure TfEditorProveedores.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := 'Lista de proveedores - ' + AppFactuGES.EmpresaActiva.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorProveedores.PrevisualizarInterno; +var + Respuesta : Integer; + AProveedores: IBizProveedor; + AllItems: Boolean; +begin + AProveedores := Nil; + AllItems := False; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + //Si esta agrupado solo podr imprimir la lista de elementos visibles + if not ViewGrid.esSeleccionCeldaDatos then + inherited + else + begin + Respuesta := JsPrevisualizarDialog.Execute; + if Respuesta <> IDCANCEL then + begin + case JsPrevisualizarDialog.CustomButtonResult of + 200 : begin // Lista de elementos visibles + inherited; + end; + 100 : begin // Elemento Seleccionado + if AllItems then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Contactos as ISeleccionable).SelectedRecords); + AProveedores := (Controller as IProveedoresController).ExtraerSeleccionados(Contactos) as IBizProveedor; + end + else + AProveedores := (Contactos as IBizProveedor); + + if Assigned(AProveedores) then + (FController as IProveedoresController).Preview(AProveedores, AllItems); + end; + end; + end; + end; +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uViewAgente.dcu b/Source/Modulos/Contactos/Views/uViewAgente.dcu new file mode 100644 index 0000000..5b7f511 Binary files /dev/null and b/Source/Modulos/Contactos/Views/uViewAgente.dcu differ diff --git a/Source/Modulos/Contactos/Views/uViewAgente.dfm b/Source/Modulos/Contactos/Views/uViewAgente.dfm new file mode 100644 index 0000000..4e0208f --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewAgente.dfm @@ -0,0 +1,323 @@ +inherited frViewAgente: TfrViewAgente + Width = 673 + Height = 424 + ExplicitWidth = 673 + ExplicitHeight = 424 + inherited dxLayoutControlContacto: TdxLayoutControl + Width = 673 + Height = 424 + ExplicitWidth = 673 + ExplicitHeight = 424 + inherited PngSpeedButton1: TPngSpeedButton + Left = 628 + ExplicitLeft = 628 + end + inherited PngSpeedButton2: TPngSpeedButton + Left = 628 + ExplicitLeft = 628 + end + inherited PngSpeedButton3: TPngSpeedButton + Left = 628 + ExplicitLeft = 628 + end + inherited eCalle: TcxDBTextEdit + Left = 121 + Top = 193 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 6 + ExplicitLeft = 121 + ExplicitTop = 193 + ExplicitWidth = 239 + Width = 239 + end + inherited cbProvincia: TcxDBComboBox + Left = 121 + Top = 220 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 7 + ExplicitLeft = 121 + ExplicitTop = 220 + ExplicitWidth = 138 + Width = 138 + end + inherited cbPoblacion: TcxDBComboBox + Left = 121 + Top = 247 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 9 + ExplicitLeft = 121 + ExplicitTop = 247 + ExplicitWidth = 239 + Width = 239 + end + inherited eCodigoPostal: TcxDBTextEdit + Left = 295 + Top = 220 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 8 + ExplicitLeft = 295 + ExplicitTop = 220 + end + inherited eObservaciones: TcxDBMemo + Top = 331 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 18 + ExplicitTop = 331 + ExplicitWidth = 629 + ExplicitHeight = 38 + Height = 38 + Width = 629 + end + object eFechaAltaEmpresa: TcxDBDateEdit [8] + Left = 121 + Top = 82 + DataBinding.DataField = 'FECHA_ALTA_EMPRESA' + DataBinding.DataSource = dsContacto + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 3 + Width = 239 + end + inherited eTlfParticular: TcxDBTextEdit + Left = 485 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 12 + ExplicitLeft = 485 + ExplicitWidth = 166 + Width = 166 + end + inherited eTlfTrabajo: TcxDBTextEdit + Left = 485 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 11 + ExplicitLeft = 485 + ExplicitWidth = 166 + Width = 166 + end + inherited eTlfMovil: TcxDBTextEdit + Left = 485 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 13 + ExplicitLeft = 485 + ExplicitWidth = 166 + Width = 166 + end + inherited eFax: TcxDBTextEdit + Left = 485 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 14 + ExplicitLeft = 485 + ExplicitWidth = 166 + Width = 166 + end + inherited eNombre: TcxDBTextEdit + Left = 121 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 121 + ExplicitWidth = 239 + Width = 239 + end + inherited eNIFCIF: TcxDBTextEdit + Left = 231 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 231 + ExplicitWidth = 126 + Width = 126 + end + inherited eMailTrabajo: TcxDBHyperLinkEdit + Left = 485 + Properties.Prefix = 'mailto:' + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 15 + ExplicitLeft = 485 + ExplicitWidth = 137 + Width = 137 + end + inherited eMailParticular: TcxDBHyperLinkEdit + Left = 485 + Properties.Prefix = 'mailto:' + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 16 + ExplicitLeft = 485 + ExplicitWidth = 137 + Width = 137 + end + object eFechaBaja: TcxDBDateEdit [17] + Left = 121 + Top = 109 + DataBinding.DataField = 'FECHA_BAJA' + DataBinding.DataSource = dsContacto + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 4 + Width = 229 + end + object eCausaBaja: TcxDBTextEdit [18] + Left = 121 + Top = 136 + DataBinding.DataField = 'CAUSA_BAJA' + DataBinding.DataSource = dsContacto + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 5 + Width = 229 + end + inherited ePaginaWeb: TcxDBHyperLinkEdit + Left = 485 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 17 + ExplicitLeft = 485 + ExplicitWidth = 137 + Width = 137 + end + inherited eReferencia: TcxDBTextEdit + Left = 121 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 121 + ExplicitWidth = 73 + Width = 73 + end + inherited ePersonaContacto: TcxDBTextEdit + Left = 121 + Top = 274 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 10 + ExplicitLeft = 121 + ExplicitTop = 274 + ExplicitWidth = 239 + Width = 239 + end + inherited dxLayoutControlContactoGroup_Root: TdxLayoutGroup + inherited dxLayoutControlContactoGroup9: TdxLayoutGroup + inherited dxLayoutControlContactoGroup4: TdxLayoutGroup + inherited dxLayoutControlContactoGroup1: TdxLayoutGroup + inherited dxLayoutControlContactoGroup16: TdxLayoutGroup + inherited dxLayoutControlContactoItem14: TdxLayoutItem + Caption = 'DNI:' + end + end + inherited dxLayoutControlContactoItem13: TdxLayoutItem + Caption = 'Nombre y apellidos:' + end + object dxLayoutControlContactoItem19: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Fecha de alta:' + Control = eFechaAltaEmpresa + ControlOptions.ShowBorder = False + end + object dxLayoutControlContactoItem23: TdxLayoutItem + Caption = 'Fecha de baja:' + Control = eFechaBaja + ControlOptions.ShowBorder = False + end + object dxLayoutControlContactoItem24: TdxLayoutItem + Caption = 'Causa de baja:' + Control = eCausaBaja + ControlOptions.ShowBorder = False + end + end + inherited dxLayoutControlContactoGroup3: TdxLayoutGroup + inherited dxLayoutControlContactoItem167: TdxLayoutItem + Visible = False + end + end + end + inherited dxLayoutControlContactoGroup6: TdxLayoutGroup + inherited dxLayoutControlContactoGroup2: TdxLayoutGroup + inherited dxLayoutControlContactoItem10: TdxLayoutItem + Caption = 'Tlf. trabajo:' + Visible = False + end + inherited dxLayoutControlContactoItem9: TdxLayoutItem + Caption = 'Tlf. particular:' + Visible = False + end + inherited dxLayoutControlContactoItem12: TdxLayoutItem + Visible = False + end + end + inherited dxLayoutControlContactoGroup5: TdxLayoutGroup + Visible = False + end + end + end + end + end + inherited dsContacto: TDADataSource + Left = 32 + Top = 80 + end +end diff --git a/Source/Modulos/Contactos/Views/uViewAgente.pas b/Source/Modulos/Contactos/Views/uViewAgente.pas new file mode 100644 index 0000000..68af935 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewAgente.pas @@ -0,0 +1,30 @@ +unit uViewAgente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewContacto, dxLayoutLookAndFeels, DB, uDADataTable, + dxLayoutControl, cxMemo, cxDBEdit, cxContainer, cxEdit, cxTextEdit, cxControls, + cxMaskEdit, cxSpinEdit, ImgList, PngImageList, ActnList, cxHyperLinkEdit, + Buttons, PngSpeedButton, cxDropDownEdit, cxCalendar, cxGraphics, + uDAInterfaces; + +type + IViewAgente = interface(IViewContacto) + ['{2A575DFD-24EE-4C8E-A152-AAFEA6ECB53B}'] + end; + + TfrViewAgente = class(TfrViewContacto, IViewAgente) + dxLayoutControlContactoItem19: TdxLayoutItem; + eFechaAltaEmpresa: TcxDBDateEdit; + dxLayoutControlContactoItem23: TdxLayoutItem; + eFechaBaja: TcxDBDateEdit; + dxLayoutControlContactoItem24: TdxLayoutItem; + eCausaBaja: TcxDBTextEdit; + end; + +implementation +{$R *.dfm} + +end. diff --git a/Source/Modulos/Contactos/Views/uViewAgenteComisiones.dcu b/Source/Modulos/Contactos/Views/uViewAgenteComisiones.dcu new file mode 100644 index 0000000..9d28036 Binary files /dev/null and b/Source/Modulos/Contactos/Views/uViewAgenteComisiones.dcu differ diff --git a/Source/Modulos/Contactos/Views/uViewAgenteComisiones.dfm b/Source/Modulos/Contactos/Views/uViewAgenteComisiones.dfm new file mode 100644 index 0000000..982e986 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewAgenteComisiones.dfm @@ -0,0 +1,68 @@ +inherited frViewAgenteComisiones: TfrViewAgenteComisiones + Width = 626 + Height = 495 + ExplicitWidth = 626 + ExplicitHeight = 495 + inherited cxGrid: TcxGrid + Width = 626 + Height = 470 + ExplicitWidth = 626 + ExplicitHeight = 470 + inherited cxGridView: TcxGridDBTableView + object cxGridViewPROVEEDOR: TcxGridDBColumn + Caption = 'Proveedor' + DataBinding.FieldName = 'ID_PROVEEDOR' + PropertiesClassName = 'TcxLookupComboBoxProperties' + Properties.ImmediatePost = True + Properties.KeyFieldNames = 'ID' + Properties.ListColumns = < + item + SortOrder = soAscending + FieldName = 'NOMBRE' + end> + Properties.ListOptions.GridLines = glNone + Properties.ListOptions.ShowHeader = False + Properties.ListSource = dsProveedores + end + object cxGridViewCOMISION: TcxGridDBColumn + Caption = 'Comisi'#243'n' + DataBinding.FieldName = 'COMISION' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = ',0.00 %;-,0.00 %' + Properties.ImmediatePost = True + Properties.MaxValue = 100.000000000000000000 + BestFitMaxWidth = 30 + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + Width = 30 + end + end + end + inherited ToolBar1: TToolBar + Width = 626 + ExplicitWidth = 626 + inherited ToolButton1: TToolButton + ExplicitWidth = 62 + end + inherited ToolButton4: TToolButton + ExplicitWidth = 74 + end + inherited ToolButton2: TToolButton + ExplicitWidth = 67 + end + inherited ToolButton7: TToolButton + ExplicitWidth = 117 + end + end + inherited ActionListContenido: TActionList + inherited actModificar: TAction + Enabled = False + Visible = False + end + end + object dsProveedores: TDADataSource + Left = 72 + Top = 144 + end +end diff --git a/Source/Modulos/Contactos/Views/uViewAgenteComisiones.pas b/Source/Modulos/Contactos/Views/uViewAgenteComisiones.pas new file mode 100644 index 0000000..a50fe50 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewAgenteComisiones.pas @@ -0,0 +1,54 @@ +unit uViewAgenteComisiones; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, uViewDetallesGenerico, cxStyles, cxCustomData, cxGraphics, + cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ActnList, ImgList, + PngImageList, uDADataTable, ComCtrls, ToolWin, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, uBizContactos, uProveedoresController, + cxDBLookupComboBox, cxSpinEdit, uDAInterfaces; + +type + TfrViewAgenteComisiones = class(TfrViewDetallesGenerico) + dsProveedores: TDADataSource; + cxGridViewPROVEEDOR: TcxGridDBColumn; + cxGridViewCOMISION: TcxGridDBColumn; + protected + FProvController : IProveedoresController; + FProveedores : IBizProveedor; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +{ TfrAgenteComisiones } + +constructor TfrViewAgenteComisiones.Create(AOwner: TComponent); +begin + inherited; + FProvController := TProveedoresController.Create; + FProveedores := (FProvController.BuscarTodos as IBizProveedor); + dsProveedores.DataTable := FProveedores.DataTable; + + if not dsProveedores.DataTable.Active then + dsProveedores.DataTable.Active := True; +end; + +destructor TfrViewAgenteComisiones.Destroy; +begin + if dsProveedores.DataTable.Active then + dsProveedores.DataTable.Active := False; + + FProveedores := NIL; + FProvController := NIL; + inherited; +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uViewAgentes.dcu b/Source/Modulos/Contactos/Views/uViewAgentes.dcu new file mode 100644 index 0000000..6ae6410 Binary files /dev/null and b/Source/Modulos/Contactos/Views/uViewAgentes.dcu differ diff --git a/Source/Modulos/Contactos/Views/uViewAgentes.dfm b/Source/Modulos/Contactos/Views/uViewAgentes.dfm new file mode 100644 index 0000000..54d1716 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewAgentes.dfm @@ -0,0 +1,229 @@ +inherited frViewAgentes: TfrViewAgentes + inherited cxGrid: TcxGrid + RootLevelOptions.DetailTabsPosition = dtpTop + OnActiveTabChanged = cxGridActiveTabChanged + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = '0 agentes' + Kind = skCount + FieldName = 'ID' + Column = cxGridViewNIF_CIF + end> + inherited cxGridViewICONO: TcxGridDBColumn + VisibleForCustomization = False + end + inherited cxGridViewNIF_CIF: TcxGridDBColumn + Caption = 'DNI' + end + inherited cxGridViewNOMBRE: TcxGridDBColumn + Caption = 'Nombre y apellidos' + end + inherited cxGridViewTELEFONO_1: TcxGridDBColumn + Visible = False + VisibleForCustomization = False + end + inherited cxGridViewTELEFONO_2: TcxGridDBColumn + Visible = True + end + inherited cxGridViewEMAIL_1: TcxGridDBColumn + Visible = False + end + object cxGridViewFECHA_BAJA: TcxGridDBColumn + Caption = 'Fecha de baja' + DataBinding.FieldName = 'FECHA_BAJA' + end + end + inherited cxGridLevel: TcxGridLevel + Caption = 'Todos' + end + object cxGridLevel1: TcxGridLevel + Caption = 'Activos' + end + object cxGridLevel2: TcxGridLevel + Caption = 'Inactivos' + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + inherited TBXDockablePanel1: TTBXDockablePanel + inherited dxLayoutControl1: TdxLayoutControl + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 238 + Width = 238 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 263 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 263 + ExplicitWidth = 205 + Width = 205 + end + inherited eLista: TcxComboBox + Left = 451 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 451 + ExplicitWidth = 140 + Width = 140 + end + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39211.791248726860000000 + BuiltInReportLink = True + end + end + inherited cxStyleRepository1: TcxStyleRepository + object cxStyleActivos: TcxStyle + end + object cxStyleInactivos: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = DEFAULT_CHARSET + Font.Color = clMaroon + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clSilver + end + end + inherited GridPNGImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000434944415478DA63FCFFFF3F + 03258011D900464646ACA601D530126D00BA6298A1B80C21CA0090183639925C + 80CB3B040DC0E69A510306BD010C04005E03C801036F00008D248BE16F9028BA + 0000000049454E44AE426082} + Name = 'Icono_header' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000002444944415478DA + A5D25F4853711407F0EFFDB3CDEB9DE6367391418B98521ABEA4988619C508F6 + 30A9142A8C281B6188088DA850090A2A288408C47A721404816325E120514C61 + 8159F6070D7CB04599CB66CEFB77D7FBEBF61ABB3ED4F7F5C0E79CC339142104 + FF13EA6F405C5E1A9879DAD7303F3A00411090E61C283DD0800A5F335C1BDDD4 + BA80AA8853D3FD37E7F578349012252CAEAE624992911424541D0F62EFB1CECF + 2E9773AB29F07E344A120F2E835254A46405CB14015B988FE4C222922B32DA7B + 63F0945553A6C0506F17597AF1102A4D83D96087DB5B8C126F11523F7E2232F0 + 12FEE0555405CE9B03915B6D44FB350D6F9907CEBC5CF01C0D312DC042130C8F + 4C6173CD59EC6B6C3307C29DCDA4D0FA05B575E550041992B1BF6AACC3D2402C + F60A9E4321F89A5ACD81DB67EA09A439F803D5E02D399045058CD15D90D278F4 + 780C9547BB703878711D20D44C66C79FC357BF0B153B9DC8A819A87A06F1C904 + 26C667E1EFBE8BA623E7CC8189A1E1F677DDF77B1CBC0C6E4F0A8C434172CE18 + 2A5E004AE7B0BDAF237CB0B2EEA4293018BCD3E39AFCDA2E6969C8FB1790BF3B + 0369300FFC073708CDE263ADF57BCBBD1B9B4C8168E96952906B03A3D0203512 + F2CB09A8213BC46FC614D020ACA8F8D4EA45C7854B5456E049C92962CFB180A7 + 5810BB0EC606B0AB2C94CC1A044D03240AAFB7C8B83212CE0EF46F3B418A381E + 1CCBC04A33A0414137BE5159D3201A88A86A78B3C3866BCF7AB303D1FEC85822 + FE764649A55B605C40FF536268E88C01D9AC608A5D085D0F995FE15FF21B1558 + 1FF02CF09AE30000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + Bitmap = {} + end +end diff --git a/Source/Modulos/Contactos/Views/uViewAgentes.pas b/Source/Modulos/Contactos/Views/uViewAgentes.pas new file mode 100644 index 0000000..5f2e4ea --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewAgentes.pas @@ -0,0 +1,99 @@ +unit uViewAgentes; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewContactos, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg, + dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, ImgList, PngImageList, cxGridCustomPopupMenu, + cxGridPopupMenu, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, uDADataTable, + cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + cxClasses, cxControls, cxGridCustomView, cxGrid, dxPgsDlg, ActnList, TB2Item, + TBX, TB2Toolbar, TBXDkPanels, TB2Dock, uViewFiltroBase, uDAInterfaces, + Menus, uCustomView, uViewBase; + +type + IViewAgentes = interface(IViewContactos) + ['{0C1EC67F-E9AC-4552-8E1E-BA3888FF6ABA}'] + end; + + TfrViewAgentes = class(TfrViewContactos, IViewAgentes) + cxGridLevel1: TcxGridLevel; + cxGridLevel2: TcxGridLevel; + cxGridViewFECHA_BAJA: TcxGridDBColumn; + cxStyleActivos: TcxStyle; + cxStyleInactivos: TcxStyle; + procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel); + procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; + out AStyle: TcxStyle); + private + //Filtros relativos a la vista + procedure AnadirFiltroSituaciones; + + public + procedure AnadirOtrosFiltros; override; + end; + +implementation +{$R *.dfm} + +uses schContactosClient_Intf; + +procedure TfrViewAgentes.AnadirFiltroSituaciones; +var + FFiltro : TcxFilterCriteriaItemList; +begin + FFiltro := AddFilterGrid(fboAnd); + + case cxGrid.ActiveLevel.Index of + 1 : FFiltro.AddItem(cxGridViewFECHA_BAJA, foEqual, Null, 'ACTIVOS'); + 2 : FFiltro.AddItem(cxGridViewFECHA_BAJA, foNotEqual, Null, 'INACTIVOS'); + end; +end; + +procedure TfrViewAgentes.AnadirOtrosFiltros; +begin + inherited; + + AnadirFiltroSituaciones; + + //Finalmente activamos el filtro si tenemos algo + if cxGridView.DataController.Filter.IsEmpty then + cxGridView.DataController.Filter.Active := False + else + cxGridView.DataController.Filter.Active := True; + cxGrid.ActiveLevel.GridView := cxGridView; +end; + +procedure TfrViewAgentes.cxGridActiveTabChanged(Sender: TcxCustomGrid; + ALevel: TcxGridLevel); +begin + inherited; + RefrescarFiltro; +end; + +procedure TfrViewAgentes.cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +var + IndiceCol: Integer; + ASituacion: String; +begin + inherited; +{ + if Assigned(ARecord) then + begin + IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_AgentesFECHA_BAJA).Index; + ASituacion := VarToStr(ARecord.DisplayTexts[IndiceCol]); + if Length(ASituacion) = 0 then + AStyle.TextColor := cxStyleActivos.TextColor + else + AStyle.TextColor := cxStyleInactivos.TextColor; + end; +} +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uViewCategorias.dfm b/Source/Modulos/Contactos/Views/uViewCategorias.dfm new file mode 100644 index 0000000..ac5389c --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewCategorias.dfm @@ -0,0 +1,21 @@ +inherited frViewCategorias: TfrViewCategorias + Width = 256 + ExplicitWidth = 256 + object DBGrid1: TDBGrid + Left = 8 + Top = 8 + Width = 241 + Height = 121 + DataSource = DADataSource + TabOrder = 0 + TitleFont.Charset = DEFAULT_CHARSET + TitleFont.Color = clWindowText + TitleFont.Height = -11 + TitleFont.Name = 'Tahoma' + TitleFont.Style = [] + end + object DADataSource: TDADataSource + Left = 8 + Top = 136 + end +end diff --git a/Source/Modulos/Contactos/Views/uViewCategorias.pas b/Source/Modulos/Contactos/Views/uViewCategorias.pas new file mode 100644 index 0000000..d71838a --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewCategorias.pas @@ -0,0 +1,30 @@ +unit uViewCategorias; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, StdCtrls, DBCtrls, DB, uDADataTable, Grids, DBGrids, + JvComponent, JvFormAutoSize; + +type + TfrViewCategorias = class(TfrViewBase) + DADataSource: TDADataSource; + DBGrid1: TDBGrid; + end; + +var + frViewCategorias: TfrViewCategorias; + +implementation + +{$R *.dfm} + +initialization + RegisterClass(TfrViewCategorias); + +finalization + + UnRegisterClass(TfrViewCategorias); + +end. diff --git a/Source/Modulos/Contactos/Views/uViewCliente.dcu b/Source/Modulos/Contactos/Views/uViewCliente.dcu new file mode 100644 index 0000000..9a4e40a Binary files /dev/null and b/Source/Modulos/Contactos/Views/uViewCliente.dcu differ diff --git a/Source/Modulos/Contactos/Views/uViewCliente.dfm b/Source/Modulos/Contactos/Views/uViewCliente.dfm new file mode 100644 index 0000000..27e7658 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewCliente.dfm @@ -0,0 +1,600 @@ +inherited frViewCliente: TfrViewCliente + Width = 958 + Height = 698 + OnCreate = CustomViewCreate + OnDestroy = CustomViewDestroy + ExplicitWidth = 958 + ExplicitHeight = 698 + inherited dxLayoutControlContacto: TdxLayoutControl + Width = 958 + Height = 698 + ExplicitWidth = 958 + ExplicitHeight = 698 + inherited PngSpeedButton1: TPngSpeedButton + Left = 913 + ExplicitLeft = 913 + end + inherited PngSpeedButton2: TPngSpeedButton + Left = 913 + ExplicitLeft = 913 + end + inherited PngSpeedButton3: TPngSpeedButton + Left = 913 + ExplicitLeft = 913 + end + object Label1: TLabel [3] + Left = 494 + Top = 440 + Width = 269 + Height = 39 + Margins.Bottom = 0 + Caption = + 'Para que el cliente pueda tener acceso a la tienda web, obligato' + + 'riamente debe tener indicado un correo electr'#243'nico de trabajo' + WordWrap = True + end + object Label2: TLabel [4] + Left = 494 + Top = 337 + Width = 271 + Height = 39 + Margins.Bottom = 0 + Caption = + 'Si procede, indique la direcci'#243'n de correo electr'#243'nico del clien' + + 'te que se utilizar'#225' para enviar documentaci'#243'n (facturas, albaran' + + 'es, recibos, etc.) por e-mail.' + WordWrap = True + end + object PngSpeedButton4: TPngSpeedButton [5] + Left = 913 + Top = 382 + Width = 23 + Height = 22 + Action = actMandarCorreoTrabajo + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001964944415478DA + 63FCFFFF3F03232323033A58BCE9F87F647EAC9F258622B05E6C068034873B8A + 80D92019C62F8F194C1356339CDF399D91A0014B361FFB1FE6208AA299E1F323 + 306D52F90CC5100C03566E3DFC3FD04E02A2F9F727064690462066006A66FC02 + 64FFFAC8603451096E088A01CB361FFDFF8F819981183077D11A86FDAB7B18E1 + 062CDD7CE27F14573FC3B2EF450CD13E86181ABE7DFFCDF0F5DB6F866FDFFE30 + 1CB97897218AB38FC1B85B98E1DC8E698C600396000D8861696058FAB7116CC0 + 94C5FBB0DAEC6CAECF70EED6238668E67AB057500CF8F0E10383A0A0208A0B90 + 6D06B1BF01D9379E3C67387AFE09C389A37BD15CE06B01B47907434EAC13C3EF + 3F7F19662E3F8862BB898606C3EFDFFF1896EF3DCFA0A5C0CD306FE9265403FC + 9D20362F5CB71F4CE7C47AA01890D5BC164C7716F980D56018606BAC0656B079 + EF2986F82047AC6150DEB785A13CD911AC06C300234D05867DC72F30B8D818E1 + 8DC2494B0E63F702281075D455884A07576EDEC134404A5480E1DAED07441900 + 021806F44D5D44B46618801B400900007F4518F05E90AAF20000000049454E44 + AE426082} + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + end + inherited eCalle: TcxDBTextEdit + Left = 132 + Top = 404 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 9 + ExplicitLeft = 132 + ExplicitTop = 404 + ExplicitWidth = 260 + Width = 260 + end + inherited cbProvincia: TcxDBComboBox + Left = 132 + Top = 431 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 10 + ExplicitLeft = 132 + ExplicitTop = 431 + ExplicitWidth = 159 + Width = 159 + end + object eNombreComercial: TcxDBTextEdit [8] + Left = 132 + Top = 82 + DataBinding.DataField = 'NOMBRE_COMERCIAL' + DataBinding.DataSource = dsContacto + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 3 + Width = 260 + end + object cbClienteBloqueado: TcxDBCheckBox [9] + Left = 22 + Top = 320 + Action = actBloqueoCliente + DataBinding.DataField = 'BLOQUEADO' + DataBinding.DataSource = dsContacto + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + Properties.ValueChecked = 1 + Properties.ValueUnchecked = 0 + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 7 + Width = 370 + end + object cbGrupoCliente: TcxDBComboBox [10] + Left = 132 + Top = 136 + DataBinding.DataField = 'GRUPO_CLIENTE' + DataBinding.DataSource = dsContacto + Properties.ImmediatePost = True + Properties.OnInitPopup = cbGrupoClientePropertiesInitPopup + Properties.OnValidate = cbGrupoClientePropertiesValidate + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 5 + Width = 260 + end + object eBloqueo: TcxDBTextEdit [11] + Left = 132 + Top = 347 + DataBinding.DataField = 'MOTIVO_BLOQUEO' + DataBinding.DataSource = dsContacto + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 8 + Width = 260 + end + object eCodigoAsignado: TcxDBTextEdit [12] + Left = 132 + Top = 109 + DataBinding.DataField = 'CODIGO_ASIGNADO' + DataBinding.DataSource = dsContacto + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 4 + Width = 260 + end + inherited cbPoblacion: TcxDBComboBox + Left = 132 + Top = 458 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 12 + ExplicitLeft = 132 + ExplicitTop = 458 + ExplicitWidth = 260 + Width = 260 + end + inherited eCodigoPostal: TcxDBTextEdit + Left = 399 + Top = 431 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 11 + ExplicitLeft = 399 + ExplicitTop = 431 + end + object cbFelicitacion: TcxDBCheckBox [15] + Left = 494 + Top = 280 + Caption = 'Mandar felicitaci'#243'n navide'#241'a a este cliente' + DataBinding.DataField = 'FELICITACION' + DataBinding.DataSource = dsContacto + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + Properties.ValueChecked = 1 + Properties.ValueUnchecked = 0 + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 21 + Width = 370 + end + object cxDBCheckBox1: TcxDBCheckBox [16] + Left = 494 + Top = 485 + Caption = 'Permitir el acceso de este cliente a la tienda web' + DataBinding.DataField = 'TIENDA_WEB' + DataBinding.DataSource = dsContacto + Properties.ImmediatePost = True + Properties.MultiLine = True + Properties.NullStyle = nssUnchecked + Properties.ValueChecked = 1 + Properties.ValueUnchecked = 0 + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 23 + Width = 274 + end + object cbRapel: TcxDBCheckBox [17] + Left = 22 + Top = 163 + Caption = 'Este cliente tiene rapel' + DataBinding.DataField = 'RAPEL' + DataBinding.DataSource = dsContacto + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + Properties.ValueChecked = 1 + Properties.ValueUnchecked = 0 + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 6 + OnClick = actBloqueoClienteExecute + Width = 308 + end + object eMailAdministracion: TcxDBHyperLinkEdit [18] + Left = 606 + Top = 382 + DataBinding.DataField = 'EMAIL_ADMINISTRACION' + DataBinding.DataSource = dsContacto + Properties.OnEditValueChanged = eMailAdministracionPropertiesEditValueChanged + Properties.OnValidate = eMailAdministracionPropertiesValidate + Properties.Prefix = 'mailto:' + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 22 + Width = 133 + end + inherited eObservaciones: TcxDBMemo + Top = 542 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 24 + ExplicitTop = 542 + ExplicitWidth = 733 + ExplicitHeight = 69 + Height = 69 + Width = 733 + end + inherited eTlfParticular: TcxDBTextEdit + Left = 606 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 15 + ExplicitLeft = 606 + ExplicitWidth = 238 + Width = 238 + end + inherited eTlfTrabajo: TcxDBTextEdit + Left = 606 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 14 + ExplicitLeft = 606 + ExplicitWidth = 238 + Width = 238 + end + inherited eTlfMovil: TcxDBTextEdit + Left = 606 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 16 + ExplicitLeft = 606 + ExplicitWidth = 238 + Width = 238 + end + inherited eFax: TcxDBTextEdit + Left = 606 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 17 + ExplicitLeft = 606 + ExplicitWidth = 238 + Width = 238 + end + inherited eNombre: TcxDBTextEdit + Left = 132 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 132 + ExplicitWidth = 260 + Width = 260 + end + inherited eNIFCIF: TcxDBTextEdit + Left = 338 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 338 + ExplicitWidth = 91 + Width = 91 + end + inherited eMailTrabajo: TcxDBHyperLinkEdit + Left = 606 + Properties.Prefix = 'mailto:' + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 18 + ExplicitLeft = 606 + ExplicitWidth = 209 + Width = 209 + end + inherited eMailParticular: TcxDBHyperLinkEdit + Left = 606 + Properties.Prefix = 'mailto:' + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 19 + ExplicitLeft = 606 + ExplicitWidth = 209 + Width = 209 + end + inherited ePaginaWeb: TcxDBHyperLinkEdit + Left = 606 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 20 + ExplicitLeft = 606 + ExplicitWidth = 209 + Width = 209 + end + inherited eReferencia: TcxDBTextEdit + Left = 132 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 132 + end + inherited ePersonaContacto: TcxDBTextEdit + Left = 132 + Top = 485 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 13 + ExplicitLeft = 132 + ExplicitTop = 485 + ExplicitWidth = 260 + Width = 260 + end + inherited dxLayoutControlContactoGroup_Root: TdxLayoutGroup + AutoAligns = [aaHorizontal] + AlignVert = avBottom + inherited dxLayoutControlContactoGroup9: TdxLayoutGroup + inherited dxLayoutControlContactoGroup4: TdxLayoutGroup + inherited dxLayoutControlContactoGroup1: TdxLayoutGroup + object dxLayoutControlContactoItem24: TdxLayoutItem + Caption = 'Nombre comercial:' + Control = eNombreComercial + ControlOptions.ShowBorder = False + end + object dxLayoutControlContactoItem22: TdxLayoutItem + Caption = 'C'#243'digo de proveedor:' + Visible = False + Control = eCodigoAsignado + ControlOptions.ShowBorder = False + end + object dxLayoutControlContactoItem19: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Grupo de cliente:' + Control = cbGrupoCliente + ControlOptions.ShowBorder = False + end + object dxLayoutControlContactoItem29: TdxLayoutItem + Caption = 'New Item' + ShowCaption = False + Control = cbRapel + ControlOptions.ShowBorder = False + end + end + object dxLayoutControlContactoGroup18: TdxLayoutGroup [1] + Caption = 'Bloqueo' + object dxLayoutControlContactoItem26: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = ' ' + ShowCaption = False + Control = cbClienteBloqueado + ControlOptions.ShowBorder = False + end + object dxLayoutControlContactoItem16: TdxLayoutItem + Caption = 'Motivo del bloqueo:' + Control = eBloqueo + ControlOptions.ShowBorder = False + end + end + inherited dxLayoutControlContactoGroup3: TdxLayoutGroup + Caption = 'Domicilio fiscal' + end + end + inherited dxLayoutControlContactoGroup6: TdxLayoutGroup + inherited dxLayoutControlContactoGroup2: TdxLayoutGroup + inherited dxLayoutControlContactoItem9: TdxLayoutItem + Visible = False + end + end + object dxLayoutControlContactoGroup8: TdxLayoutGroup + Caption = 'Otros' + Visible = False + object dxLayoutControlContactoItem20: TdxLayoutItem + ShowCaption = False + Control = cbFelicitacion + ControlOptions.ShowBorder = False + end + end + object dxLayoutControlContactoGroup14: TdxLayoutGroup + Caption = 'Correo electr'#243'nico de administraci'#243'n' + object dxLayoutControlContactoItem23: TdxLayoutItem + ShowCaption = False + Control = Label2 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControlContactoGroup15: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControlContactoItem27: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Correo administrativo:' + Control = eMailAdministracion + ControlOptions.ShowBorder = False + end + object dxLayoutControlContactoItem28: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + ShowCaption = False + Control = PngSpeedButton4 + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControlContactoGroup30: TdxLayoutGroup + AutoAligns = [aaHorizontal] + AlignVert = avClient + Caption = 'Acceso a la tienda web' + object dxLayoutControlContactoItem21: TdxLayoutItem + ShowCaption = False + Control = Label1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControlContactoItem48: TdxLayoutItem + ShowCaption = False + Control = cxDBCheckBox1 + ControlOptions.ShowBorder = False + end + end + end + end + inherited dxLayoutControlContactoGroup7: TdxLayoutGroup + inherited dxLayoutControlContactoItem8: TdxLayoutItem + ControlOptions.MinHeight = 10 + end + end + end + end + inherited ActionList1: TActionList + inherited actMandarCorreoParticular: TAction + Category = 'Correos' + end + inherited actMandarCorreoTrabajo: TAction + Category = 'Correos' + end + inherited actVerPaginaWeb: TAction + Category = 'Web' + end + object actBloqueoCliente: TAction + Category = 'Bloqueo' + Caption = 'Este cliente est'#225' bloqueado' + OnExecute = actBloqueoClienteExecute + end + object actMandarCorreoAdministracion: TAction + Category = 'Correos' + OnExecute = actMandarCorreoAdministracionExecute + OnUpdate = actMandarCorreoAdministracionUpdate + end + end +end diff --git a/Source/Modulos/Contactos/Views/uViewCliente.pas b/Source/Modulos/Contactos/Views/uViewCliente.pas new file mode 100644 index 0000000..f374f2b --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewCliente.pas @@ -0,0 +1,172 @@ +unit uViewCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewContacto, DB, uDADataTable, DBCtrls, + StdCtrls, Mask, ExtCtrls, uCustomView, + uViewBase, JvComponent, JvFormAutoSize, cxControls, uBizContactos, + cxContainer, cxEdit, cxTextEdit, cxDBEdit, dxLayoutLookAndFeels, + dxLayoutControl, cxMemo, cxHyperLinkEdit, ImgList, ActnList, Buttons, + PngSpeedButton, PngImageList, cxGraphics, cxMaskEdit, cxDropDownEdit, + cxLookupEdit, cxDBLookupEdit, cxDBLookupComboBox, uGruposClienteController, + cxCheckBox, cxSpinEdit, Grids, DBGrids, uDAInterfaces; + +type + IViewCliente = interface(IViewContacto) + ['{C06F4653-1745-4B7E-A3DC-102B2F23238E}'] + end; + + TfrViewCliente = class(TfrViewContacto, IViewCliente) + dxLayoutControlContactoItem24: TdxLayoutItem; + eNombreComercial: TcxDBTextEdit; + dxLayoutControlContactoItem26: TdxLayoutItem; + cbClienteBloqueado: TcxDBCheckBox; + dxLayoutControlContactoGroup18: TdxLayoutGroup; + dxLayoutControlContactoItem19: TdxLayoutItem; + cbGrupoCliente: TcxDBComboBox; + dxLayoutControlContactoItem16: TdxLayoutItem; + eBloqueo: TcxDBTextEdit; + actBloqueoCliente: TAction; + dxLayoutControlContactoItem22: TdxLayoutItem; + eCodigoAsignado: TcxDBTextEdit; + dxLayoutControlContactoGroup8: TdxLayoutGroup; + dxLayoutControlContactoItem20: TdxLayoutItem; + cbFelicitacion: TcxDBCheckBox; + dxLayoutControlContactoItem29: TdxLayoutItem; + dxLayoutControlContactoItem48: TdxLayoutItem; + dxLayoutControlContactoGroup30: TdxLayoutGroup; + cxDBCheckBox1: TcxDBCheckBox; + Label1: TLabel; + cbRapel: TcxDBCheckBox; + Label2: TLabel; + eMailAdministracion: TcxDBHyperLinkEdit; + PngSpeedButton4: TPngSpeedButton; + actMandarCorreoAdministracion: TAction; + + + procedure cbGrupoClientePropertiesInitPopup(Sender: TObject); + procedure cbGrupoClientePropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure CustomViewCreate(Sender: TObject); + procedure CustomViewDestroy(Sender: TObject); + procedure actBloqueoClienteExecute(Sender: TObject); + procedure actMandarCorreoAdministracionExecute(Sender: TObject); + procedure eMailAdministracionPropertiesEditValueChanged(Sender: TObject); + procedure eMailAdministracionPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure actMandarCorreoAdministracionUpdate(Sender: TObject); + protected + FGrupoController: IGruposClienteController; + procedure SetContacto(const Value: IBizContacto); override; + end; + +implementation + +{$R *.dfm} + +uses + uBizGruposCliente; + +type + THackcxDBHyperLinkEdit = class(TcxDBHyperLinkEdit); + +{ TfrViewCliente } + +procedure TfrViewCliente.actBloqueoClienteExecute(Sender: TObject); +begin + inherited; + eBloqueo.Enabled := cbClienteBloqueado.Checked; +end; + +procedure TfrViewCliente.actMandarCorreoAdministracionExecute(Sender: TObject); +begin + inherited; + THackcxDBHyperLinkEdit(eMailAdministracion).DoStart; +end; + +procedure TfrViewCliente.actMandarCorreoAdministracionUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (Length(eMailAdministracion.Text) > 0) +end; + +procedure TfrViewCliente.cbGrupoClientePropertiesInitPopup(Sender: TObject); +begin + inherited; + with cbGrupoCliente.Properties.Items do + begin + BeginUpdate; + try + Clear; + AddStrings(FGrupoController.DarListaGruposCliente); + finally + EndUpdate; + end; + end; +end; + +procedure TfrViewCliente.cbGrupoClientePropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); +var + AGrupo : IBizGrupoCliente; +begin + inherited; + with (Sender as TcxDBComboBox) do + begin + if (Length(DisplayValue) > 0) and (DisplayValue <> (Contacto as IBizCliente).GRUPO_CLIENTE) then + if Properties.LookupItems.IndexOf(DisplayValue) < 0 then + begin + Properties.LookupItems.BeginUpdate; + AGrupo := FGrupoController.BuscarTodos; + AGrupo.DataTable.Active := True; + try + FGrupoController.Anadir(AGrupo); + AGrupo.DESCRIPCION := DisplayValue; + FGrupoController.Guardar(AGrupo); + Properties.LookupItems.Add(DisplayValue); + finally + Properties.LookupItems.EndUpdate; + AGrupo := NIL; + end; + end; + end; +end; + +procedure TfrViewCliente.CustomViewCreate(Sender: TObject); +begin + inherited; + FGrupoController := TGruposClienteController.Create; +end; + +procedure TfrViewCliente.CustomViewDestroy(Sender: TObject); +begin + FGrupoController := NIL; + inherited; +end; + +procedure TfrViewCliente.eMailAdministracionPropertiesEditValueChanged( + Sender: TObject); +begin + inherited; + if not VarIsNull((Sender as TcxDBHyperLinkEdit).EditValue) then + (Sender as TcxDBHyperLinkEdit).EditValue := StringReplace((Sender as TcxDBHyperLinkEdit).EditValue, (Sender as TcxDBHyperLinkEdit).Properties.Prefix, '', []); +end; + +procedure TfrViewCliente.eMailAdministracionPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); +begin + inherited; + if not VarIsNull(DisplayValue) then + DisplayValue := StringReplace(DisplayValue, (Sender as TcxDBHyperLinkEdit).Properties.Prefix, '', []); +end; + +procedure TfrViewCliente.SetContacto(const Value: IBizContacto); +begin + inherited; + if Assigned(FContacto) then + eBloqueo.Enabled := cbClienteBloqueado.Checked; +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uViewClienteDatosComerciales.dcu b/Source/Modulos/Contactos/Views/uViewClienteDatosComerciales.dcu new file mode 100644 index 0000000..43def9b Binary files /dev/null and b/Source/Modulos/Contactos/Views/uViewClienteDatosComerciales.dcu differ diff --git a/Source/Modulos/Contactos/Views/uViewClienteDatosComerciales.dfm b/Source/Modulos/Contactos/Views/uViewClienteDatosComerciales.dfm new file mode 100644 index 0000000..ea3aec6 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewClienteDatosComerciales.dfm @@ -0,0 +1,454 @@ +inherited frViewClienteDatosComerciales: TfrViewClienteDatosComerciales + Width = 725 + Height = 284 + OnCreate = CustomViewCreate + OnDestroy = CustomViewDestroy + ExplicitWidth = 725 + ExplicitHeight = 284 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 725 + Height = 209 + Align = alTop + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth] + object Label1: TLabel + Left = 435 + Top = 28 + Width = 227 + Height = 26 + Caption = + 'Puede indicar el d'#237'a del mes en el cual el cliente realiza los p' + + 'agos.' + Transparent = True + WordWrap = True + end + object Bevel1: TBevel + Left = 22 + Top = 136 + Width = 263 + Height = 5 + Shape = bsBottomLine + end + object eDiasVencimiento1: TcxDBSpinEdit + Left = 507 + Top = 60 + DataBinding.DataField = 'VENCIMIENTO_FACTURAS_1' + DataBinding.DataSource = dsDatosComerciales + Properties.DisplayFormat = '##' + Properties.ImmediatePost = True + Properties.SpinButtons.Visible = False + Properties.UseDisplayFormatWhenEditing = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 8 + Width = 79 + end + object cbRegimenIVA: TcxDBComboBox + Left = 111 + Top = 28 + DataBinding.DataField = 'REGIMEN_IVA' + DataBinding.DataSource = dsDatosComerciales + Properties.DropDownListStyle = lsFixedList + Properties.ImmediatePost = True + Properties.ImmediateUpdateText = True + Properties.OnInitPopup = cbRegimenIVAPropertiesInitPopup + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 0 + Width = 121 + end + object cbRecargoEquivalencia: TcxDBCheckBox + Left = 111 + Top = 109 + Caption = 'Aplicar recargo de equivalencia' + DataBinding.DataField = 'RECARGO_EQUIVALENCIA' + DataBinding.DataSource = dsDatosComerciales + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + Properties.ValueChecked = 1 + Properties.ValueUnchecked = 0 + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 5 + Width = 121 + end + object cbFormaPago: TcxDBLookupComboBox + Left = 111 + Top = 55 + DataBinding.DataField = 'ID_FORMA_PAGO' + DataBinding.DataSource = dsDatosComerciales + Properties.ImmediatePost = True + Properties.KeyFieldNames = 'ID' + Properties.ListColumns = < + item + FieldName = 'REFERENCIA' + end> + Properties.ListOptions.GridLines = glNone + Properties.ListOptions.ShowHeader = False + Properties.ListOptions.SyncMode = True + Properties.ListSource = dsFormaPago + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 1 + Width = 121 + end + object bFormasPago: TButton + Left = 273 + Top = 55 + Width = 132 + Height = 21 + Caption = 'Ver las formas de pago...' + TabOrder = 2 + OnClick = bFormasPagoClick + end + object eIVA: TcxDBLookupComboBox + Left = 111 + Top = 82 + DataBinding.DataField = 'ID_TIPO_IVA' + DataBinding.DataSource = dsDatosComerciales + Properties.ImmediatePost = True + Properties.KeyFieldNames = 'ID' + Properties.ListColumns = < + item + FieldName = 'REFERENCIA' + end> + Properties.ListOptions.GridLines = glNone + Properties.ListOptions.ShowHeader = False + Properties.ListOptions.SyncMode = True + Properties.ListSource = dsTiposIVA + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 3 + Width = 121 + end + object bTiposIVA: TButton + Left = 273 + Top = 82 + Width = 132 + Height = 21 + Caption = 'Ver los tipos de IVA...' + TabOrder = 4 + OnClick = bTiposIVAClick + end + object eDescuento: TcxDBSpinEdit + Left = 111 + Top = 147 + DataBinding.DataField = 'DESCUENTO' + DataBinding.DataSource = dsDatosComerciales + Properties.AssignedValues.MinValue = True + Properties.ImmediatePost = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 6 + Width = 190 + end + object eDiasVencimiento2: TcxDBSpinEdit + Left = 507 + Top = 87 + DataBinding.DataField = 'VENCIMIENTO_FACTURAS_2' + DataBinding.DataSource = dsDatosComerciales + Properties.DisplayFormat = '##' + Properties.ImmediatePost = True + Properties.SpinButtons.Visible = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 9 + Width = 79 + end + object eDiasVencimiento3: TcxDBSpinEdit + Left = 507 + Top = 114 + DataBinding.DataField = 'VENCIMIENTO_FACTURAS_3' + DataBinding.DataSource = dsDatosComerciales + Properties.DisplayFormat = '##' + Properties.ImmediatePost = True + Properties.SpinButtons.Visible = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 10 + Width = 79 + end + object eAgente: TcxDBLookupComboBox + Left = 111 + Top = 174 + DataBinding.DataField = 'ID_AGENTE' + DataBinding.DataSource = dsDatosComerciales + Properties.KeyFieldNames = 'ID' + Properties.ListColumns = < + item + SortOrder = soAscending + FieldName = 'NOMBRE' + end> + Properties.ListOptions.GridLines = glNone + Properties.ListOptions.ShowHeader = False + Properties.ListSource = dsAgentes + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 7 + Width = 216 + end + object dxLayoutGroup1: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Group3: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Datos comerciales' + object dxLayoutControl1Item3: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'R'#233'gimen de IVA:' + Control = cbRegimenIVA + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group2: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item5: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Forma de pago:' + Control = cbFormaPago + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item7: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'Button1' + ShowCaption = False + Control = bFormasPago + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group1: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item8: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'IVA por defecto' + Control = eIVA + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item9: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + ShowCaption = False + Control = bTiposIVA + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item4: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = ' ' + Control = cbRecargoEquivalencia + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item10: TdxLayoutItem + Caption = 'Bevel1' + ShowCaption = False + Control = Bevel1 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item1: TdxLayoutItem + AutoAligns = [aaVertical] + Caption = 'Dto. por defecto:' + Visible = False + Control = eDescuento + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item31: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Agente:' + Control = eAgente + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group5: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Datos para facturaci'#243'n' + object dxLayoutControl1Item6: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Label1' + ShowCaption = False + Control = Label1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item2: TdxLayoutItem + AutoAligns = [aaVertical] + Caption = 'D'#237'a del mes 1:' + Control = eDiasVencimiento1 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item11: TdxLayoutItem + AutoAligns = [aaVertical] + Caption = 'D'#237'a del mes 2:' + Control = eDiasVencimiento2 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item12: TdxLayoutItem + AutoAligns = [aaVertical] + Caption = 'D'#237'a del mes 3:' + Control = eDiasVencimiento3 + ControlOptions.ShowBorder = False + end + end + end + end + object dsAgentes: TDADataSource + Left = 40 + Top = 8 + end + object dsDatosComerciales: TDADataSource + Left = 8 + Top = 8 + end + object dsFormaPago: TDADataSource + Left = 40 + Top = 48 + end + object dsTiposIVA: TDADataSource + Left = 8 + Top = 48 + end +end diff --git a/Source/Modulos/Contactos/Views/uViewClienteDatosComerciales.pas b/Source/Modulos/Contactos/Views/uViewClienteDatosComerciales.pas new file mode 100644 index 0000000..dfaeeb6 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewClienteDatosComerciales.pas @@ -0,0 +1,160 @@ +unit uViewClienteDatosComerciales; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, cxGraphics, DB, uDADataTable, dxLayoutControl, + cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxLookupEdit, + cxDBLookupEdit, cxDBLookupComboBox, cxControls, cxSpinEdit, cxDBEdit, + uBizContactos, cxCheckBox, StdCtrls, uFormasPagoController, uAgentesController, + uTiposIVAController, uDAInterfaces, uBizFormasPago, uBizTiposIVA, ExtCtrls; + +type + IViewClienteDatosComerciales = interface(IViewBase) + ['{50D671FA-1109-4D7D-B3F8-8E7DCFEB32A4}'] + function GetContacto: IBizContacto; + procedure SetContacto(const Value: IBizContacto); + property Contacto: IBizContacto read GetContacto write SetContacto; + end; + + TfrViewClienteDatosComerciales = class(TfrViewBase, IViewClienteDatosComerciales) + dxLayoutControl1: TdxLayoutControl; + dxLayoutGroup1: TdxLayoutGroup; + dxLayoutControl1Group3: TdxLayoutGroup; + dsAgentes: TDADataSource; + dxLayoutControl1Item2: TdxLayoutItem; + eDiasVencimiento1: TcxDBSpinEdit; + dxLayoutControl1Item3: TdxLayoutItem; + cbRegimenIVA: TcxDBComboBox; + dsDatosComerciales: TDADataSource; + dxLayoutControl1Item4: TdxLayoutItem; + cbRecargoEquivalencia: TcxDBCheckBox; + dsFormaPago: TDADataSource; + dxLayoutControl1Item5: TdxLayoutItem; + cbFormaPago: TcxDBLookupComboBox; + dxLayoutControl1Group5: TdxLayoutGroup; + Label1: TLabel; + dxLayoutControl1Item6: TdxLayoutItem; + bFormasPago: TButton; + dxLayoutControl1Item7: TdxLayoutItem; + dxLayoutControl1Item8: TdxLayoutItem; + eIVA: TcxDBLookupComboBox; + dxLayoutControl1Item9: TdxLayoutItem; + bTiposIVA: TButton; + dsTiposIVA: TDADataSource; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Group2: TdxLayoutGroup; + dxLayoutControl1Item1: TdxLayoutItem; + eDescuento: TcxDBSpinEdit; + Bevel1: TBevel; + dxLayoutControl1Item10: TdxLayoutItem; + dxLayoutControl1Item11: TdxLayoutItem; + eDiasVencimiento2: TcxDBSpinEdit; + dxLayoutControl1Item12: TdxLayoutItem; + eDiasVencimiento3: TcxDBSpinEdit; + eAgente: TcxDBLookupComboBox; + procedure CustomViewCreate(Sender: TObject); + procedure CustomViewDestroy(Sender: TObject); + procedure cbRegimenIVAPropertiesInitPopup(Sender: TObject); + procedure bFormasPagoClick(Sender: TObject); + procedure bTiposIVAClick(Sender: TObject); + protected + FContacto : IBizContacto; + FAgentesController : IAgentesController; + FTiposIVA : IBizTipoIVA; + FFormasPago : IBizFormaPago; + FFormasPagoController : IFormasPagoController; + FTiposIVAController : ITiposIVAController; + function GetContacto: IBizContacto; + procedure SetContacto(const Value: IBizContacto); + public + property Contacto: IBizContacto read GetContacto write SetContacto; + end; + + +implementation + +{$R *.dfm} + +uses + uRegimenIVAUtils; + +{ TfrViewClienteDatosComerciales } + +procedure TfrViewClienteDatosComerciales.bFormasPagoClick(Sender: TObject); +begin + inherited; + if Assigned(FFormasPago) then + FFormasPagoController.VerTodos(FFormasPago); +end; + +procedure TfrViewClienteDatosComerciales.bTiposIVAClick(Sender: TObject); +begin + inherited; + if Assigned(FTiposIVA) then + FTiposIVAController.VerTodos(FTiposIVA); +end; + +procedure TfrViewClienteDatosComerciales.cbRegimenIVAPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with cbRegimenIVA.Properties do + begin + if Items.Count = 0 then + Items := DarRegimenesIVA; + end; +end; + +procedure TfrViewClienteDatosComerciales.CustomViewCreate(Sender: TObject); +begin + inherited; + FTiposIVA := Nil; + FFormasPago := Nil; + FContacto := Nil; + FAgentesController := TAgentesController.Create; + FFormasPagoController := TFormasPagoController.Create; + FTiposIVAController := TTiposIVAController.Create; +end; + +procedure TfrViewClienteDatosComerciales.CustomViewDestroy(Sender: TObject); +begin + inherited; + FTiposIVA := Nil; + FFormasPago := Nil; + FContacto := Nil; + FAgentesController := NIL; + FFormasPagoController := NIL; + FTiposIVAController := NIL; +end; + +function TfrViewClienteDatosComerciales.GetContacto: IBizContacto; +begin + Result := FContacto; +end; + +procedure TfrViewClienteDatosComerciales.SetContacto(const Value: IBizContacto); +begin + FContacto := Value; + if Assigned(FContacto) then + begin + dsDatosComerciales.DataTable := FContacto.DataTable; + dsAgentes.DataTable := FAgentesController.BuscarTodos.DataTable; + dsAgentes.DataTable.Active := True; + FFormasPago := FFormasPagoController.BuscarTodos; + dsFormaPago.DataTable := FFormasPago.DataTable; + dsFormaPago.DataTable.Active := True; + FTiposIVA := FTiposIVAController.BuscarTodos; + dsTiposIVA.DataTable := FTiposIVA.DataTable; + dsTiposIVA.DataTable.Active := True; + end + else begin + dsDatosComerciales.DataTable := NIL; + dsAgentes.DataTable := NIL; + dsFormaPago.DataTable := NIL; + dsTiposIVA.DataTable := NIL; + end +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uViewClienteDescuentos.dcu b/Source/Modulos/Contactos/Views/uViewClienteDescuentos.dcu new file mode 100644 index 0000000..df9873f Binary files /dev/null and b/Source/Modulos/Contactos/Views/uViewClienteDescuentos.dcu differ diff --git a/Source/Modulos/Contactos/Views/uViewClienteDescuentos.dfm b/Source/Modulos/Contactos/Views/uViewClienteDescuentos.dfm new file mode 100644 index 0000000..ac5c64d --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewClienteDescuentos.dfm @@ -0,0 +1,66 @@ +inherited frViewClienteDescuentos: TfrViewClienteDescuentos + Width = 580 + Height = 513 + ExplicitWidth = 580 + ExplicitHeight = 513 + inherited cxGrid: TcxGrid + Width = 580 + Height = 488 + ExplicitWidth = 580 + ExplicitHeight = 488 + inherited cxGridView: TcxGridDBTableView + object cxGridViewPROVEEDOR: TcxGridDBColumn + Caption = 'Proveedor' + DataBinding.FieldName = 'ID_PROVEEDOR' + PropertiesClassName = 'TcxLookupComboBoxProperties' + Properties.ImmediatePost = True + Properties.KeyFieldNames = 'ID' + Properties.ListColumns = < + item + SortOrder = soAscending + FieldName = 'NOMBRE' + end> + Properties.ListOptions.GridLines = glNone + Properties.ListOptions.ShowHeader = False + Properties.ListSource = dsProveedores + end + object cxGridViewDESCUENTO: TcxGridDBColumn + Caption = 'Descuento' + DataBinding.FieldName = 'DESCUENTO' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.DisplayFormat = ',0.00 %;-,0.00 %' + Properties.ImmediatePost = True + Properties.MaxValue = 100.000000000000000000 + BestFitMaxWidth = 30 + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + Width = 30 + end + end + end + inherited ToolBar1: TToolBar + Width = 580 + ExplicitWidth = 580 + inherited ToolButton1: TToolButton + ExplicitWidth = 62 + end + inherited ToolButton4: TToolButton + ExplicitWidth = 74 + end + inherited ToolButton2: TToolButton + ExplicitWidth = 67 + end + inherited ToolButton7: TToolButton + ExplicitWidth = 117 + end + end + inherited ActionListContenido: TActionList + inherited actModificar: TAction + Visible = False + end + end + object dsProveedores: TDADataSource + Left = 72 + Top = 144 + end +end diff --git a/Source/Modulos/Contactos/Views/uViewClienteDescuentos.pas b/Source/Modulos/Contactos/Views/uViewClienteDescuentos.pas new file mode 100644 index 0000000..ea8c2aa --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewClienteDescuentos.pas @@ -0,0 +1,52 @@ +unit uViewClienteDescuentos; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, uViewDetallesGenerico, cxStyles, cxCustomData, cxGraphics, + cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ActnList, ImgList, + PngImageList, uDADataTable, ComCtrls, ToolWin, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, cxDBLookupComboBox, cxSpinEdit, + uBizContactos, uProveedoresController, uDAInterfaces; + +type + TfrViewClienteDescuentos = class(TfrViewDetallesGenerico) + dsProveedores: TDADataSource; + cxGridViewPROVEEDOR: TcxGridDBColumn; + cxGridViewDESCUENTO: TcxGridDBColumn; + protected + FProvController : IProveedoresController; + FProveedores : IBizProveedor; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +constructor TfrViewClienteDescuentos.Create(AOwner: TComponent); +begin + inherited; + FProvController := TProveedoresController.Create; + FProveedores := (FProvController.BuscarTodos as IBizProveedor); + dsProveedores.DataTable := FProveedores.DataTable; + + if not dsProveedores.DataTable.Active then + dsProveedores.DataTable.Active := True; +end; + +destructor TfrViewClienteDescuentos.Destroy; +begin + if dsProveedores.DataTable.Active then + dsProveedores.DataTable.Active := False; + + FProveedores := NIL; + FProvController := NIL; + inherited; +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uViewClientes.dcu b/Source/Modulos/Contactos/Views/uViewClientes.dcu new file mode 100644 index 0000000..fd9e649 Binary files /dev/null and b/Source/Modulos/Contactos/Views/uViewClientes.dcu differ diff --git a/Source/Modulos/Contactos/Views/uViewClientes.dfm b/Source/Modulos/Contactos/Views/uViewClientes.dfm new file mode 100644 index 0000000..e1b2f85 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewClientes.dfm @@ -0,0 +1,516 @@ +inherited frViewClientes: TfrViewClientes + Width = 793 + Height = 449 + ExplicitWidth = 793 + ExplicitHeight = 449 + inherited cxGrid: TcxGrid + Width = 793 + Height = 321 + ExplicitWidth = 793 + ExplicitHeight = 321 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = '0 clientes' + Kind = skCount + Column = cxGridViewREFERENCIA + end> + inherited cxGridViewICONO: TcxGridDBColumn + OnGetCellHint = cxGridViewICONOGetCellHint + end + object cxGridViewBLOQUEADO: TcxGridDBColumn [1] + DataBinding.FieldName = 'BLOQUEADO' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Images = GridPNGImageList + Properties.Items = < + item + Value = 0 + end + item + ImageIndex = 4 + Value = 1 + end> + BestFitMaxWidth = 22 + MinWidth = 22 + Options.HorzSizing = False + Width = 22 + end + object cxGridViewFELICITACION: TcxGridDBColumn [2] + Caption = 'Felicitaci'#243'n' + DataBinding.FieldName = 'FELICITACION' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Images = GridPNGImageList + Properties.Items = < + item + Description = 'Mandar felicitacion' + ImageIndex = 3 + Value = 1 + end + item + Value = 0 + end> + Properties.ReadOnly = True + Visible = False + OnGetCellHint = cxGridViewFELICITACIONGetCellHint + BestFitMaxWidth = 22 + MinWidth = 22 + Options.HorzSizing = False + VisibleForCustomization = False + Width = 22 + end + object cxGridViewTiendaWeb: TcxGridDBColumn [3] + Caption = 'Acceso a tienda web' + DataBinding.FieldName = 'TIENDA_WEB' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Images = GridPNGImageList + Properties.Items = < + item + Value = 0 + end + item + ImageIndex = 5 + Value = 1 + end> + Properties.ShowDescriptions = False + BestFitMaxWidth = 22 + MinWidth = 22 + Options.HorzSizing = False + Width = 22 + end + object cxGridViewRAPEL: TcxGridDBColumn [4] + Caption = 'Rapel' + DataBinding.FieldName = 'RAPEL' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Images = GridPNGImageList + Properties.Items = < + item + Value = 0 + end + item + ImageIndex = 6 + Value = 1 + end> + end + object cxGridViewNOMBRE_COMERCIAL: TcxGridDBColumn [8] + DataBinding.FieldName = 'NOMBRE_COMERCIAL' + BestFitMaxWidth = 90 + Width = 164 + end + object cxGridViewAGENTE: TcxGridDBColumn + Caption = 'Agente' + DataBinding.FieldName = 'AGENTE' + Visible = False + end + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 793 + ExplicitWidth = 793 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 793 + inherited dxLayoutControl1: TdxLayoutControl + Width = 793 + ExplicitWidth = 793 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 696 + Width = 696 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 154 + Width = 154 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 201 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 201 + ExplicitWidth = 525 + Width = 525 + end + inherited eLista: TcxComboBox + Left = 630 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 630 + ExplicitWidth = 215 + Width = 215 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 793 + ExplicitWidth = 793 + inherited tbxBotones: TTBXToolbar + Width = 783 + ExplicitWidth = 783 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 423 + ExplicitTop = 423 + ExplicitWidth = 793 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 793 + ExplicitWidth = 793 + inherited TBXToolbar1: TTBXToolbar + Width = 783 + Visible = False + ExplicitWidth = 783 + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + Left = 104 + Top = 96 + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 38673.845245682870000000 + BuiltInReportLink = True + end + end + inherited dxPSEngineController1: TdxPSEngineController + Left = 104 + end + inherited cxStyleRepository1: TcxStyleRepository + Left = 64 + end + inherited GridPNGImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000434944415478DA63FCFFFF3F + 03258011D900464646ACA601D530126D00BA6298A1B80C21CA0090183639925C + 80CB3B040DC0E69A510306BD010C04005E03C801036F00008D248BE16F9028BA + 0000000049454E44AE426082} + Name = 'Icono_header' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AC400000AC401666D82D4000002A94944415478DA + 7D925D48536118C79FF3B5AF36DD66B639CB924243225010BC49BA914004CDE8 + E32228B482EA4689A22289C8CBA28B32B1061688902912D28D16991F6062B2DC + 45921FB954669BF39C9D6DE7EC9CF3EEBC9D2D8C2CB7079E9BF779FEBFF7F922 + 30C69034822060D3665F5F3A0B90B8C672FCAEC07AD8E35DF0DFBFE3F64EC05F + F647F72FC0DB75AED1E1B43D138438C9B26108B11C0443BC30ECF959D731303F + 9411D0D35C612C2ADBEF3319F5B992AC402412037F9003A4C8E05F17679BDA3E + 976BA9D1F4807B95552E877D90222910250556023170E66481D900F0CD17C0AD + 5DDE63F3CBFC505AC0685B6DE34654762B88009B350B8AF658815011C8521C04 + 518487DD530D9D83BECEB480C98EDA13F9798E5E9A61526F098440D1CA572409 + 24298EEFBA271B7BC756D203FA5A8FE49516EDF3313A5D8AA0AAAAD6BF929A01 + CFC7505DCBBBAAD590349C710BD3EEFA57D916D3A954920648249255283031B3 + 3A7BE1D164A5F61CCC0878D15C917FA8C43165D6334E558B25DBD80847E51BCF + A79B3E7D65DB33AEF1E04D570EE5723DB513C4C966E9006101ED0662043C6697 + 30B7DB3021CE6D5C5EEA58FAB22DE0F0ADBD36D25E38A6E6E2126413E00CAA81 + FAE27AE85FEB876EF10D30DC0E2083542432F3E3F8E2CBC5F7FF01CA5A8E3E21 + 6CC6AB8A264636110C7A80EADC2AE88B0E004474C0B026A035C76BF2B2A7ED43 + 29E671680BA0FC76B50F5BC902641501658B90304BA0EA11100A05544C0774D8 + 0834A7396B04DFE8C8E9B58FC19EAD80EB358B84852E44D9F1DF62930C9856B5 + 6320801419A0A27AA079430AB4303E722530EE6FDF3A838B15E729B3E50195C3 + D855B34A247F074A8BA91A40A2808C91803955E6E70233F36F3D0D58C6DEEDD6 + B8D35040179B9DA602305266AC028925A4A0B822A090C20BAB09BF96F35D736E + 53F70B90E997F07974AFDF0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AC400000AC401666D82D400000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002DF4944415478DA7D937B4853 + 511CC7BFE7DE6D6E6B730F73D35596591A3DCC0C6305450F2418416214094191 + 547FF44F12414511917FE67F192C56EB8F1EF4B0591151C6D48AB0B0700A153D + B7C856D3B63B1FBBBB8FDDDBDD966989FDE0C039E7777E9FDFF3105996911642 + 08C6E4ED8DBD3B80D4C11833648B0CC67BFA3E864F1DF3F475A57563EFC784FC + 0BE8BBB4B3DE5E6039974824A9582C8E9F3106033F87121D3D3F6ADC773FB4FD + 1770BDC1A92BAD2C09E97539F91C2F60787814E10106A2C0233CC8BE3DD0FCB2 + 4A793F3235E0E49A6A87DDFA90A668B09C80AF915114E4E5C2A005DE852272E3 + A5BE8DEFBFC4DBA6043C69DE5C1F1DE13D82486031E7A27496194412C1734924 + 58164D57BA775F7810F44E0978E1DEBC6546A1FDA64AADCEDCA544118212BEC0 + 71E0B8A47CC2F3A2FEE6D3AFDE89C5FC0BD0D2B8BA7059E99C905AA3C9102449 + 52F2173235F83C48A7FCD199C9A1D0F0348661028A7AD7D5D6AB3D93BAF0CA53 + 7BCD64D46FCB785100A9543A0A012DC145527F38B2C5ED76B7D6D5D4552449B2 + D5E7F3CD9904B8D8E09CB178A1BDDB90A32E90145D3A8D687C84F7F6CED278BD + DE3FC3E25CE794BBDABBC85F8005871D79B4C371D64AC8D6066E1E3142998151 + 820D1533B356BAEC62C24CE64851B1F11A941F996DA1ACC54FA57C79A1684960 + BBB809B565B5F07DF7615FA21FB67217A0FDED3EC964F6DDFEE67140E5F1B567 + 8845B75F508C450B0B6D0EE0CAAF46CBC85D740EAD846D85026083409C012F24 + A031EAF1E8DEE57140D5515748365345A2998568629132709072441081C66355 + 156C4B5CE0DF3DC39DDB5E943BD761EE5C136EDDEF9C0038B4E91331AA8A4553 + 326BACE721AB24651808FC794B609BBF0AFCC06B743CEFC0FA954BC17C63E00F + 0426D4608F73176D309EA6F3D456C92091B477D08A4E2278B8B804B9F6E5A0B8 + 8F08BE09C26A95A1CC02FCFEC0A4DF385D5BA42A3314E88BA0A30DB2044AE644 + E14D53DDF9DEE7ED88B2D92E525C0CD16876FF0BB9A57DB17BDAA3CE00000000 + 49454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000DA4944415478DA + 63FCFFFF3F03258091620356EF3C4F9109600342DC0C082AFCF5E72FC3EFDF40 + 0CA47FFD86B07DE32B1106FCACF4842B666FDF8E55F3FB0A0706711375864727 + 2E326CB7686398B77413611720DB3C31C29AA12A429F7803D09DFDB9D60E2E47 + D0006C7E06B3A1E2FB8F5FC06E80E3CC9B585D33DF4714C5D023A72F631AF0F7 + DF7FB0E4DFBFFF70DA0C133F75E11AAA0130CD9EF3EF6275C114677E1443CF5F + BD893020D0451F2AF907D5DF7FFEA188832D81CA5FB9790761808F830EC39C95 + 7B484E857003DAFA66919E86A180F2CC44A90100C02F10E6EECAFFF800000000 + 49454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001664944415478DA + 63FCFFFF3F0325801164002323235CE05023A73990D266E3FF3E1726F6EB2367 + 3290BA6A57FFFD244C0C66318A0130CDD679E7E622DBF2FB6627C3DCB9AB8EEA + CAFC2F861982CB802490E6DF2F0F32CCE8C8801B90919100A6418664CFFE6683 + D380131318FE9BC65F67985CA8C960A4C86901B20DE42AA0774E18582430CC98 + B180A1600103235106C014C2C4F11A70B8890B6C0BB1210F0C540BDBBA6F27E1 + 069C9CC8F8DFC0630603ABB83D41CDB0F0C99FFF9F11C50090D3FFBDD9C7F0FF + EF2F04FE87603380D93F18AE9C9ECB70E202037603FEBEDC01D770ECC67D86A6 + 69F718EAB29418CCE538C19AFFFFF9CE70F5FC32DC06FC79B6096EB367C161B8 + B3B7B42A8335FFFBF383E1FAE575B80DF8FD780D8AB3BDCBCEA368FE0FC437AE + 6FC36DC0AFFB8BE1066C3EFD8C61C69A370CD1EEAC0C61269C60038004C3CDDB + FBB01B008A850B3B3208C602385DA01B004A07E7EE139F0E40A914251D500200 + A1723AF0CAFCCBE70000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C18000003734944415478DA + 5D536D685B55187ECEBDB99FB9371F26CB92ACADE9D66E75DDA6D356A6881B82 + 6C32904DA63074B66EEA90CDFDEC3EF0D7500A4357D18A286D6163A820289BCC + 0A83EE872875FB51964E6AD79936ED9A6459BE939B9BDCE4DEEBA1B2317DE1E1 + 1C78CFFB9CE77DCE7909FE17472F7ED6EEF0048E36D5F8FE464509A5EACBD0ED + DB497DE9E0B71E73FBF04FEF4AF30F9F27F7375F5DBA244795F90F798FF350C8 + 25A8204D52327E455ABB89997B69CC2C1EB3513958DEE81646BB4CF183AF0F93 + EA03826D9FBC2AADEFDE7CCE15C8EF0BAB3D64B5732B54BE84941647AC30821B + A934A6E2A750486E876054EC8857FFDEBB5CEE9F1C7A565F21D83DBE635075E5 + 06DABD9DCCA3AE67D04A21D18C6ECAB8BA78067FDC791A7F67A7908C1F875D8E + 81E3BEB4D6284367164E6C3849768D7DD1BB208C4F74866795764F184165275A + DDCF839851F8A55770FD6E0197E782984EA4A06573407314D0AEC04DF6547A5A + 4EBF403A07EF8D2CE84B879E78EA30DABC15F8652F9C9C8FEA62B04AFE18B17C + 04130B04F3E93C6CBD9F220E946F8194FDE80A7E33420283E94CBA58F2B56F7A + 072DBE3928BC0889E321B2AF51834E60BEE0403449FD2B14815A3FD0B806948A + 60AA1236C8C359221C9BB6EB848510FE19ABDB4E83C536B0CC2A18D647D08C16 + 54AA26EAC51250BD492DEFA32B07520C436E5610300E8084DF9CB4133207A880 + 103A0F8BB3C092000813815EDB4D9DB4695181DEFC2325380ED44DB055111EAB + 036AE92D9035AF4FDACBA60EB85C802C03920628BF81F0E760D75F048A8F5382 + C7A879598A8B609A0978B95904C94658ECFE1CF1EF9918CF98DA2EA8EABF04A2 + 08B8AF52A201C034687100C89C070C9A2B95C19ACB5817BC8247ECB53095BDA3 + 6473DF54FF5CECAFB19A53249024DA070F7035C07792BEC46D20F73255F10695 + 5E072A1A78AB82273B0A10A52D0D67CF8EE748C7FBB70423BE185DCA26D6DBA2 + 408BB91510FF59DAB7053B71844A6F50050618D3845BE2B135E2B36AFEAE0BBF + 9F5DD7B7F2137B07FEEC4ECEDEB99CCFA4DAEAB64D2C16F0847F41F9EE26587A + 081C6120700E04A84F1EA76AF3A2F707D3E73B3039D4A63F18A6EEF7AEB53A74 + 32ACE5F22FD51A794E76C5A16522B4230E0A55E6969CB620AB5A4351C6F219F5 + 54F44248FBCF34DE8FDE23333B19ADFAB683AFED330A26388103E371A6ACAAF5 + 5D59653E9FFE744BECE1F3FF00F7B9639E6BE4CA2D0000000049454E44AE4260 + 82} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C18000000CD4944415478DA + 63FCFFFF3F032580719818C0C8C84894627777F7FF3B77EE04EB23D9006C9A89 + 3600AED978C65D86B3192A241900D73CE30703C3890B0C0C972F38000D394894 + 01C89A35AE7C018BDD38BE660AD0805C820660D30C35E00D900A81B902AB0128 + 01663CE30E83AE81B2068F0AC3CDA78F19FEF3FF0479E319506E1DC825180660 + 0D6DE3194F19E5CCA5C09A2D0C90BD7317C5005C5105346032D01539E89A4131 + 023700A766842177342C43949135C3C3C0C3C303BF66649730307822A705980B + FE13D48C030000F232A0AC2AC1CAB80000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end> + Bitmap = {} + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + Left = 32 + end +end diff --git a/Source/Modulos/Contactos/Views/uViewClientes.pas b/Source/Modulos/Contactos/Views/uViewClientes.pas new file mode 100644 index 0000000..3f768a4 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewClientes.pas @@ -0,0 +1,71 @@ +unit uViewClientes; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewContactos, cxStyles, cxCustomData, cxGraphics, cxFilter, + cxData, cxDataStorage, cxEdit, DB, cxDBData, ActnList, uDADataTable, + cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + cxClasses, cxControls, cxGridCustomView, cxGrid, JvComponent, + JvFormAutoSize, cxImage, PngImageList, ImgList, dxPSGlbl, dxPSUtl, + dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, + dxPSFillPatterns, dxPSEdgePatterns, cxIntlPrintSys3, dxPSCore, + dxPScxCommon, cxImageComboBox, cxGridCustomPopupMenu, cxGridPopupMenu, + dxPScxGrid6Lnk, ExtCtrls, JvComponentBase, JvBalloonHint, JvHint, + uViewFiltroBase, dxPgsDlg, TB2Item, TBX, TB2Toolbar, TBXDkPanels, TB2Dock, + uDAInterfaces, cxTextEdit, Menus, uCustomView, uViewBase; + +type + IViewClientes = interface(IViewContactos) + ['{7964E0AB-3075-43E7-94BC-513D80A1C116}'] + end; + + TfrViewClientes = class(TfrViewContactos, IViewClientes) + cxGridViewNOMBRE_COMERCIAL: TcxGridDBColumn; + cxGridViewBLOQUEADO: TcxGridDBColumn; + cxGridViewTiendaWeb: TcxGridDBColumn; + cxGridViewFELICITACION: TcxGridDBColumn; + cxGridViewRAPEL: TcxGridDBColumn; + cxGridViewAGENTE: TcxGridDBColumn; + procedure cxGridViewICONOGetCellHint(Sender: TcxCustomGridTableItem; + ARecord: TcxCustomGridRecord; ACellViewInfo: TcxGridTableDataCellViewInfo; + const AMousePos: TPoint; var AHintText: TCaption; + var AIsHintMultiLine: Boolean; var AHintTextRect: TRect); + procedure cxGridViewFELICITACIONGetCellHint(Sender: TcxCustomGridTableItem; + ARecord: TcxCustomGridRecord; ACellViewInfo: TcxGridTableDataCellViewInfo; + const AMousePos: TPoint; var AHintText: TCaption; + var AIsHintMultiLine: Boolean; var AHintTextRect: TRect); + end; + + +implementation + +uses uViewGridBase; + + +{$R *.dfm} + + +procedure TfrViewClientes.cxGridViewFELICITACIONGetCellHint( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + ACellViewInfo: TcxGridTableDataCellViewInfo; const AMousePos: TPoint; + var AHintText: TCaption; var AIsHintMultiLine: Boolean; + var AHintTextRect: TRect); +begin + inherited; + if (cxGridView.DataController.DisplayTexts[ARecord.Index, cxGridViewFELICITACION.Index] = '1') then + AHintText := 'Enviar felicitacin navidea'; +end; + +procedure TfrViewClientes.cxGridViewICONOGetCellHint( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + ACellViewInfo: TcxGridTableDataCellViewInfo; const AMousePos: TPoint; + var AHintText: TCaption; var AIsHintMultiLine: Boolean; + var AHintTextRect: TRect); +begin + if (cxGridView.DataController.DisplayTexts[ARecord.Index, cxGridViewBLOQUEADO.Index] = '1') then + AHintText := 'Cliente bloqueado'; +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uViewContacto.dcu b/Source/Modulos/Contactos/Views/uViewContacto.dcu new file mode 100644 index 0000000..d7967e1 Binary files /dev/null and b/Source/Modulos/Contactos/Views/uViewContacto.dcu differ diff --git a/Source/Modulos/Contactos/Views/uViewContacto.dfm b/Source/Modulos/Contactos/Views/uViewContacto.dfm new file mode 100644 index 0000000..96a423e --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewContacto.dfm @@ -0,0 +1,728 @@ +inherited frViewContacto: TfrViewContacto + Width = 674 + Height = 388 + ExplicitWidth = 674 + ExplicitHeight = 388 + object dxLayoutControlContacto: TdxLayoutControl + Left = 0 + Top = 0 + Width = 674 + Height = 388 + Align = alClient + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + object PngSpeedButton1: TPngSpeedButton + Left = 629 + Top = 222 + Width = 23 + Height = 22 + Action = actVerPaginaWeb + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C18000003734944415478DA + 5D536D685B55187ECEBDB99FB9371F26CB92ACADE9D66E75DDA6D356A6881B82 + 6C32904DA63074B66EEA90CDFDEC3EF0D7500A4357D18A286D6163A820289BCC + 0A83EE872875FB51964E6AD79936ED9A6459BE939B9BDCE4DEEBA1B2317DE1E1 + 1C78CFFB9CE77DCE7909FE17472F7ED6EEF0048E36D5F8FE464509A5EACBD0ED + DB497DE9E0B71E73FBF04FEF4AF30F9F27F7375F5DBA244795F90F798FF350C8 + 25A8204D52327E455ABB89997B69CC2C1EB3513958DEE81646BB4CF183AF0F93 + EA03826D9FBC2AADEFDE7CCE15C8EF0BAB3D64B5732B54BE84941647AC30821B + A934A6E2A750486E876054EC8857FFDEBB5CEE9F1C7A565F21D83DBE635075E5 + 06DABD9DCCA3AE67D04A21D18C6ECAB8BA78067FDC791A7F67A7908C1F875D8E + 81E3BEB4D6284367164E6C3849768D7DD1BB208C4F74866795764F184165275A + DDCF839851F8A55770FD6E0197E782984EA4A06573407314D0AEC04DF6547A5A + 4EBF403A07EF8D2CE84B879E78EA30DABC15F8652F9C9C8FEA62B04AFE18B17C + 04130B04F3E93C6CBD9F220E946F8194FDE80A7E33420283E94CBA58F2B56F7A + 072DBE3928BC0889E321B2AF51834E60BEE0403449FD2B14815A3FD0B806948A + 60AA1236C8C359221C9BB6EB848510FE19ABDB4E83C536B0CC2A18D647D08C16 + 54AA26EAC51250BD492DEFA32B07520C436E5610300E8084DF9CB4133207A880 + 103A0F8BB3C092000813815EDB4D9DB4695181DEFC2325380ED44DB055111EAB + 036AE92D9035AF4FDACBA60EB85C802C03920628BF81F0E760D75F048A8F5382 + C7A879598A8B609A0978B95904C94658ECFE1CF1EF9918CF98DA2EA8EABF04A2 + 08B8AF52A201C034687100C89C070C9A2B95C19ACB5817BC8247ECB53095BDA3 + 6473DF54FF5CECAFB19A53249024DA070F7035C07792BEC46D20F73255F10695 + 5E072A1A78AB82273B0A10A52D0D67CF8EE748C7FBB70423BE185DCA26D6DBA2 + 408BB91510FF59DAB7053B71844A6F50050618D3845BE2B135E2B36AFEAE0BBF + 9F5DD7B7F2137B07FEEC4ECEDEB99CCFA4DAEAB64D2C16F0847F41F9EE26587A + 081C6120700E04A84F1EA76AF3A2F707D3E73B3039D4A63F18A6EEF7AEB53A74 + 32ACE5F22FD51A794E76C5A16522B4230E0A55E6969CB620AB5A4351C6F219F5 + 54F44248FBCF34DE8FDE23333B19ADFAB683AFED330A26388103E371A6ACAAF5 + 5D59653E9FFE744BECE1F3FF00F7B9639E6BE4CA2D0000000049454E44AE4260 + 82} + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + end + object PngSpeedButton2: TPngSpeedButton + Left = 629 + Top = 194 + Width = 23 + Height = 22 + Action = actMandarCorreoParticular + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001964944415478DA + 63FCFFFF3F03232323033A58BCE9F87F647EAC9F258622B05E6C068034873B8A + 80D92019C62F8F194C1356339CDF399D91A0014B361FFB1FE6208AA299E1F323 + 306D52F90CC5100C03566E3DFC3FD04E02A2F9F727064690462066006A66FC02 + 64FFFAC8603451096E088A01CB361FFDFF8F819981183077D11A86FDAB7B18E1 + 062CDD7CE27F14573FC3B2EF450CD13E86181ABE7DFFCDF0F5DB6F866FDFFE30 + 1CB97897218AB38FC1B85B98E1DC8E698C600396000D8861696058FAB7116CC0 + 94C5FBB0DAEC6CAECF70EED6238668E67AB057500CF8F0E10383A0A0208A0B90 + 6D06B1BF01D9379E3C67387AFE09C389A37BD15CE06B01B47907434EAC13C3EF + 3F7F19662E3F8862BB898606C3EFDFFF1896EF3DCFA0A5C0CD306FE9265403FC + 9D20362F5CB71F4CE7C47AA01890D5BC164C7716F980D56018606BAC0656B079 + EF2986F82047AC6150DEB785A13CD911AC06C300234D05867DC72F30B8D818E1 + 8DC2494B0E63F702281075D455884A07576EDEC134404A5480E1DAED07441900 + 021806F44D5D44B46618801B400900007F4518F05E90AAF20000000049454E44 + AE426082} + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + end + object PngSpeedButton3: TPngSpeedButton + Left = 629 + Top = 166 + Width = 23 + Height = 22 + Action = actMandarCorreoTrabajo + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001964944415478DA + 63FCFFFF3F03232323033A58BCE9F87F647EAC9F258622B05E6C068034873B8A + 80D92019C62F8F194C1356339CDF399D91A0014B361FFB1FE6208AA299E1F323 + 306D52F90CC5100C03566E3DFC3FD04E02A2F9F727064690462066006A66FC02 + 64FFFAC8603451096E088A01CB361FFDFF8F819981183077D11A86FDAB7B18E1 + 062CDD7CE27F14573FC3B2EF450CD13E86181ABE7DFFCDF0F5DB6F866FDFFE30 + 1CB97897218AB38FC1B85B98E1DC8E698C600396000D8861696058FAB7116CC0 + 94C5FBB0DAEC6CAECF70EED6238668E67AB057500CF8F0E10383A0A0208A0B90 + 6D06B1BF01D9379E3C67387AFE09C389A37BD15CE06B01B47907434EAC13C3EF + 3F7F19662E3F8862BB898606C3EFDFFF1896EF3DCFA0A5C0CD306FE9265403FC + 9D20362F5CB71F4CE7C47AA01890D5BC164C7716F980D56018606BAC0656B079 + EF2986F82047AC6150DEB785A13CD911AC06C300234D05867DC72F30B8D818E1 + 8DC2494B0E63F702281075D455884A07576EDEC134404A5480E1DAED07441900 + 021806F44D5D44B46618801B400900007F4518F05E90AAF20000000049454E44 + AE426082} + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + end + object eCalle: TcxDBTextEdit + Left = 115 + Top = 142 + DataBinding.DataField = 'CALLE' + DataBinding.DataSource = dsContacto + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 3 + Width = 256 + end + object cbProvincia: TcxDBComboBox + Left = 115 + Top = 169 + DataBinding.DataField = 'PROVINCIA' + DataBinding.DataSource = dsContacto + Properties.ImmediatePost = True + Properties.ImmediateUpdateText = True + Properties.PostPopupValueOnTab = True + Properties.OnInitPopup = eProvinciaPropertiesInitPopup + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 4 + Width = 155 + end + object cbPoblacion: TcxDBComboBox + Left = 115 + Top = 196 + DataBinding.DataField = 'POBLACION' + DataBinding.DataSource = dsContacto + Properties.ImmediatePost = True + Properties.ImmediateUpdateText = True + Properties.PostPopupValueOnTab = True + Properties.OnInitPopup = cbPoblacionPropertiesInitPopup + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 6 + Width = 256 + end + object eCodigoPostal: TcxDBTextEdit + Left = 306 + Top = 169 + DataBinding.DataField = 'CODIGO_POSTAL' + DataBinding.DataSource = dsContacto + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 5 + Width = 65 + end + object eObservaciones: TcxDBMemo + Left = 22 + Top = 280 + DataBinding.DataField = 'NOTAS' + DataBinding.DataSource = dsContacto + Properties.ScrollBars = ssVertical + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 15 + Height = 86 + Width = 630 + end + object eTlfParticular: TcxDBTextEdit + Left = 496 + Top = 55 + DataBinding.DataField = 'TELEFONO_2' + DataBinding.DataSource = dsContacto + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 9 + Width = 156 + end + object eTlfTrabajo: TcxDBTextEdit + Left = 496 + Top = 28 + DataBinding.DataField = 'TELEFONO_1' + DataBinding.DataSource = dsContacto + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 8 + Width = 156 + end + object eTlfMovil: TcxDBTextEdit + Left = 496 + Top = 82 + DataBinding.DataField = 'MOVIL_1' + DataBinding.DataSource = dsContacto + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 10 + Width = 156 + end + object eFax: TcxDBTextEdit + Left = 496 + Top = 109 + DataBinding.DataField = 'FAX' + DataBinding.DataSource = dsContacto + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 11 + Width = 156 + end + object eNombre: TcxDBTextEdit + Left = 115 + Top = 55 + DataBinding.DataField = 'NOMBRE' + DataBinding.DataSource = dsContacto + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 2 + Width = 256 + end + object eNIFCIF: TcxDBTextEdit + Left = 267 + Top = 28 + DataBinding.DataField = 'NIF_CIF' + DataBinding.DataSource = dsContacto + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 1 + Width = 104 + end + object eMailTrabajo: TcxDBHyperLinkEdit + Left = 496 + Top = 166 + DataBinding.DataField = 'EMAIL_1' + DataBinding.DataSource = dsContacto + Properties.OnEditValueChanged = eMailTrabajoPropertiesEditValueChanged + Properties.OnValidate = eMailTrabajoPropertiesValidate + Properties.Prefix = 'mailto:' + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 12 + Width = 127 + end + object eMailParticular: TcxDBHyperLinkEdit + Left = 496 + Top = 194 + DataBinding.DataField = 'EMAIL_2' + DataBinding.DataSource = dsContacto + Properties.OnEditValueChanged = eMailTrabajoPropertiesEditValueChanged + Properties.OnValidate = eMailTrabajoPropertiesValidate + Properties.Prefix = 'mailto:' + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 13 + Width = 127 + end + object ePaginaWeb: TcxDBHyperLinkEdit + Left = 496 + Top = 221 + DataBinding.DataField = 'PAGINA_WEB' + DataBinding.DataSource = dsContacto + Properties.ValidateOnEnter = True + Properties.OnEditValueChanged = eMailTrabajoPropertiesEditValueChanged + Properties.OnValidate = eMailTrabajoPropertiesValidate + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 14 + Width = 127 + end + object eReferencia: TcxDBTextEdit + Left = 115 + Top = 28 + DataBinding.DataField = 'REFERENCIA' + DataBinding.DataSource = dsContacto + Enabled = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 0 + Width = 99 + end + object ePersonaContacto: TcxDBTextEdit + Left = 115 + Top = 223 + DataBinding.DataField = 'PERSONA_CONTACTO' + DataBinding.DataSource = dsContacto + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 7 + Width = 256 + end + object dxLayoutControlContactoGroup_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControlContactoGroup9: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControlContactoGroup4: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControlContactoGroup1: TdxLayoutGroup + AutoAligns = [aaHorizontal] + AlignVert = avClient + Caption = 'Datos generales' + object dxLayoutControlContactoGroup16: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControlContactoItem25: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'C'#243'digo:' + Control = eReferencia + ControlOptions.ShowBorder = False + end + object dxLayoutControlContactoItem14: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'NIF/CIF:' + Control = eNIFCIF + ControlOptions.ShowBorder = False + end + end + object dxLayoutControlContactoItem13: TdxLayoutItem + Caption = 'Nombre:' + Control = eNombre + ControlOptions.ShowBorder = False + end + end + object dxLayoutControlContactoGroup3: TdxLayoutGroup + AutoAligns = [aaHorizontal] + Caption = 'Direcci'#243'n' + object dxLayoutControlContactoItem1: TdxLayoutItem + Caption = 'Calle:' + Control = eCalle + ControlOptions.ShowBorder = False + end + object dxLayoutControlContactoGroup10: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControlContactoItem2: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Provincia:' + Control = cbProvincia + ControlOptions.ShowBorder = False + end + object dxLayoutControlContactoItem4: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'C.P.:' + Control = eCodigoPostal + ControlOptions.ShowBorder = False + end + end + object dxLayoutControlContactoItem3: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Poblaci'#243'n:' + Control = cbPoblacion + ControlOptions.ShowBorder = False + end + object dxLayoutControlContactoItem167: TdxLayoutItem + Caption = 'Persona contacto:' + Control = ePersonaContacto + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControlContactoGroup6: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControlContactoGroup2: TdxLayoutGroup + Caption = 'Tel'#233'fonos' + object dxLayoutControlContactoItem10: TdxLayoutItem + Caption = 'Tel'#233'fono 1:' + Control = eTlfTrabajo + ControlOptions.ShowBorder = False + end + object dxLayoutControlContactoItem9: TdxLayoutItem + Caption = 'Tel'#233'fono 2:' + Control = eTlfParticular + ControlOptions.ShowBorder = False + end + object dxLayoutControlContactoItem11: TdxLayoutItem + Caption = 'M'#243'vil:' + Control = eTlfMovil + ControlOptions.ShowBorder = False + end + object dxLayoutControlContactoItem12: TdxLayoutItem + Caption = 'Fax:' + Control = eFax + ControlOptions.ShowBorder = False + end + end + object dxLayoutControlContactoGroup5: TdxLayoutGroup + Caption = 'Correo electr'#243'nico e internet' + object dxLayoutControlContactoGroup12: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControlContactoItem7: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Correo de trabajo:' + Control = eMailTrabajo + ControlOptions.ShowBorder = False + end + object dxLayoutControlContactoItem18: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'PngSpeedButton3' + ShowCaption = False + Control = PngSpeedButton3 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControlContactoGroup110: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControlContactoGroup13: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControlContactoItem6: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Correo particular:' + Control = eMailParticular + ControlOptions.ShowBorder = False + end + object dxLayoutControlContactoItem5: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'P'#225'gina web:' + Control = ePaginaWeb + ControlOptions.ShowBorder = False + end + end + object dxLayoutControlContactoGroup11: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahRight + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControlContactoItem17: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'PngSpeedButton2' + ShowCaption = False + Control = PngSpeedButton2 + ControlOptions.ShowBorder = False + end + object dxLayoutControlContactoItem15: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'PngSpeedButton1' + ShowCaption = False + Control = PngSpeedButton1 + ControlOptions.ShowBorder = False + end + end + end + end + end + end + object dxLayoutControlContactoGroup7: TdxLayoutGroup + AutoAligns = [aaHorizontal] + AlignVert = avClient + Caption = 'Observaciones' + object dxLayoutControlContactoItem8: TdxLayoutItem + AutoAligns = [aaHorizontal] + AlignVert = avClient + Caption = 'cxDBMemo1' + ShowCaption = False + Control = eObservaciones + ControlOptions.ShowBorder = False + end + end + end + end + object dsContacto: TDADataSource + Left = 16 + Top = 56 + end + object ActionList1: TActionList + Images = ImageList1 + Left = 32 + Top = 176 + object actMandarCorreoParticular: TAction + ImageIndex = 0 + OnExecute = actMandarCorreoParticularExecute + OnUpdate = actMandarCorreoParticularUpdate + end + object actMandarCorreoTrabajo: TAction + ImageIndex = 0 + OnExecute = actMandarCorreoTrabajoExecute + OnUpdate = actMandarCorreoTrabajoUpdate + end + object actVerPaginaWeb: TAction + ImageIndex = 1 + OnExecute = actVerPaginaWebExecute + OnUpdate = actVerPaginaWebUpdate + end + end + object ImageList1: TPngImageList + PngImages = <> + Left = 64 + Top = 176 + end +end diff --git a/Source/Modulos/Contactos/Views/uViewContacto.pas b/Source/Modulos/Contactos/Views/uViewContacto.pas new file mode 100644 index 0000000..90d5fda --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewContacto.pas @@ -0,0 +1,318 @@ +unit uViewContacto; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, ExtCtrls, StdCtrls, Buttons, DB, uDADataTable, + DBCtrls, Grids, DBGrids, uBizContactos, Mask, ComCtrls, uCustomView, + JvComponent, JvFormAutoSize, cxControls, cxContainer, cxEdit, cxTextEdit, + cxDBEdit, dxLayoutControl, dxLayoutLookAndFeels, cxMemo, cxHyperLinkEdit, + ImgList, ActnList, PngImageList, PngSpeedButton, uDAInterfaces, uContactosController, + cxGraphics, cxMaskEdit, cxDropDownEdit; + +type + IViewContacto = interface(IViewBase) + ['{5FCFD172-5F8A-4639-B479-1CF0061526B5}'] + function GetController : IContactosController; + procedure SetController (const Value : IContactosController); + property Controller : IContactosController read GetController + write SetController; + + function GetContacto: IBizContacto; + procedure SetContacto(const Value: IBizContacto); + property Contacto: IBizContacto read GetContacto write SetContacto; + end; + + TfrViewContacto = class(TfrViewBase, IViewContacto) + dsContacto: TDADataSource; + dxLayoutControlContactoGroup_Root: TdxLayoutGroup; + dxLayoutControlContacto: TdxLayoutControl; + dxLayoutControlContactoGroup1: TdxLayoutGroup; + dxLayoutControlContactoGroup2: TdxLayoutGroup; + dxLayoutControlContactoGroup3: TdxLayoutGroup; + dxLayoutControlContactoGroup4: TdxLayoutGroup; + dxLayoutControlContactoGroup5: TdxLayoutGroup; + dxLayoutControlContactoGroup6: TdxLayoutGroup; + dxLayoutControlContactoGroup7: TdxLayoutGroup; + dxLayoutControlContactoGroup9: TdxLayoutGroup; + dxLayoutControlContactoItem1: TdxLayoutItem; + eCalle: TcxDBTextEdit; + dxLayoutControlContactoItem2: TdxLayoutItem; + cbProvincia: TcxDBComboBox; + dxLayoutControlContactoItem3: TdxLayoutItem; + cbPoblacion: TcxDBComboBox; + dxLayoutControlContactoItem4: TdxLayoutItem; + eCodigoPostal: TcxDBTextEdit; + eObservaciones: TcxDBMemo; + dxLayoutControlContactoItem8: TdxLayoutItem; + dxLayoutControlContactoItem9: TdxLayoutItem; + eTlfParticular: TcxDBTextEdit; + dxLayoutControlContactoItem10: TdxLayoutItem; + eTlfTrabajo: TcxDBTextEdit; + dxLayoutControlContactoItem11: TdxLayoutItem; + eTlfMovil: TcxDBTextEdit; + dxLayoutControlContactoItem12: TdxLayoutItem; + eFax: TcxDBTextEdit; + dxLayoutControlContactoItem13: TdxLayoutItem; + eNombre: TcxDBTextEdit; + dxLayoutControlContactoItem14: TdxLayoutItem; + eNIFCIF: TcxDBTextEdit; + dxLayoutControlContactoItem7: TdxLayoutItem; + eMailTrabajo: TcxDBHyperLinkEdit; + ActionList1: TActionList; + actMandarCorreoParticular: TAction; + actMandarCorreoTrabajo: TAction; + actVerPaginaWeb: TAction; + dxLayoutControlContactoItem6: TdxLayoutItem; + eMailParticular: TcxDBHyperLinkEdit; + dxLayoutControlContactoGroup110: TdxLayoutGroup; + dxLayoutControlContactoItem5: TdxLayoutItem; + ePaginaWeb: TcxDBHyperLinkEdit; + ImageList1: TPngImageList; + PngSpeedButton1: TPngSpeedButton; + dxLayoutControlContactoItem15: TdxLayoutItem; + PngSpeedButton2: TPngSpeedButton; + dxLayoutControlContactoItem17: TdxLayoutItem; + PngSpeedButton3: TPngSpeedButton; + dxLayoutControlContactoItem18: TdxLayoutItem; + dxLayoutControlContactoGroup12: TdxLayoutGroup; + dxLayoutControlContactoGroup13: TdxLayoutGroup; + dxLayoutControlContactoGroup11: TdxLayoutGroup; + dxLayoutControlContactoItem25: TdxLayoutItem; + eReferencia: TcxDBTextEdit; + dxLayoutControlContactoGroup16: TdxLayoutGroup; + dxLayoutControlContactoItem167: TdxLayoutItem; + ePersonaContacto: TcxDBTextEdit; + dxLayoutControlContactoGroup10: TdxLayoutGroup; + procedure eMailTrabajoPropertiesEditValueChanged(Sender: TObject); + procedure actMandarCorreoParticularExecute(Sender: TObject); + procedure actMandarCorreoTrabajoExecute(Sender: TObject); + procedure actVerPaginaWebExecute(Sender: TObject); + procedure actMandarCorreoParticularUpdate(Sender: TObject); + procedure actMandarCorreoTrabajoUpdate(Sender: TObject); + procedure actVerPaginaWebUpdate(Sender: TObject); + procedure eMailTrabajoPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure eProvinciaPropertiesInitPopup(Sender: TObject); + procedure cbPoblacionPropertiesInitPopup(Sender: TObject); + protected + FContacto: IBizContacto; + FController : IContactosController; + FProvincias : TStringList; + FIDProvincia : Integer; //Almacenar la provincia que hay seleccionada para no cargar las poblaciones si no es necesario + FPoblaciones : TStringList; + procedure CargarProvincias; + procedure CargarPoblaciones; + function GetContacto: IBizContacto; virtual; + procedure SetContacto(const Value: IBizContacto); virtual; + function GetController : IContactosController; virtual; + procedure SetController (const Value : IContactosController); virtual; + public + constructor Create(AOwner : TComponent); override; + destructor Destroy; override; + property Controller : IContactosController read GetController + write SetController; + property Contacto: IBizContacto read GetContacto write SetContacto; + end; + +implementation +{$R *.dfm} + +uses + uProvinciasPoblacionesController, uStringsUtils; + +type + THackcxDBHyperLinkEdit = class(TcxDBHyperLinkEdit); + +{ TfrViewContactos } + +{ +******************************* TfrViewContacto ******************************** +} +procedure TfrViewContacto.actMandarCorreoParticularExecute(Sender: TObject); +begin + inherited; + THackcxDBHyperLinkEdit(eMailParticular).DoStart; +end; + +procedure TfrViewContacto.actMandarCorreoParticularUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (Length(eMailParticular.Text) > 0) +end; + +procedure TfrViewContacto.actMandarCorreoTrabajoExecute(Sender: TObject); +begin + inherited; + THackcxDBHyperLinkEdit(eMailTrabajo).DoStart; +end; + +procedure TfrViewContacto.actMandarCorreoTrabajoUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (Length(eMailTrabajo.Text) > 0) +end; + +procedure TfrViewContacto.actVerPaginaWebExecute(Sender: TObject); +begin + inherited; + THackcxDBHyperLinkEdit(ePaginaWeb).DoStart; +end; + +procedure TfrViewContacto.actVerPaginaWebUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (Length(ePaginaWeb.Text) > 0) +end; + +procedure TfrViewContacto.CargarPoblaciones; +var + i : integer; + +begin + if (FIDProvincia <> StrToInt(FProvincias.Values[cbProvincia.Text])) then + Begin + FIDProvincia := StrToInt(FProvincias.Values[cbProvincia.Text]); + + with TProvinciasPoblacionesController.Create do + try + FPoblaciones := DarListaPoblaciones(FIDProvincia); + + with cbPoblacion.Properties.Items do + begin + BeginUpdate; + try + Clear; + for i := 0 to FPoblaciones.Count - 1 do + Add(FPoblaciones.Names[i]); + finally + EndUpdate; + end; + end; + finally + Free; + end; + End; +end; + +procedure TfrViewContacto.CargarProvincias; +var + i : integer; +begin + with TProvinciasPoblacionesController.Create do + try + FProvincias := DarListaProvincias; + + with cbProvincia.Properties.Items do + begin + BeginUpdate; + try + Clear; + for i := 0 to FProvincias.Count - 1 do + Add(FProvincias.Names[i]); + finally + EndUpdate; + end; + end; + finally + Free; + end; +end; + +procedure TfrViewContacto.cbPoblacionPropertiesInitPopup(Sender: TObject); +begin + inherited; + + ShowHourglassCursor; + try + FreeANDNIL(FPoblaciones); + if not Assigned(FProvincias) then + CargarProvincias; + if not EsCadenaVacia(cbProvincia.Text) and (FProvincias.IndexOfName(cbProvincia.Text) <> -1) then + CargarPoblaciones + finally + HideHourglassCursor; + end; +end; + +constructor TfrViewContacto.Create(AOwner : TComponent); +begin + inherited; + FIDProvincia := 0; + FProvincias := NIL; + FPoblaciones := NIL; +end; + +destructor TfrViewContacto.Destroy; +begin + if Assigned(FProvincias) then + FreeANDNIL(FProvincias); + + if Assigned(FPoblaciones) then + FreeANDNIL(FPoblaciones); + + inherited; +end; + +procedure TfrViewContacto.eMailTrabajoPropertiesEditValueChanged(Sender: TObject); +begin + inherited; + if not VarIsNull((Sender as TcxDBHyperLinkEdit).EditValue) then + (Sender as TcxDBHyperLinkEdit).EditValue := StringReplace((Sender as TcxDBHyperLinkEdit).EditValue, (Sender as TcxDBHyperLinkEdit).Properties.Prefix, '', []); +end; + +procedure TfrViewContacto.eMailTrabajoPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); +begin + inherited; + if not VarIsNull(DisplayValue) then + DisplayValue := StringReplace(DisplayValue, (Sender as TcxDBHyperLinkEdit).Properties.Prefix, '', []); +end; + +procedure TfrViewContacto.eProvinciaPropertiesInitPopup(Sender: TObject); +begin + inherited; + ShowHourglassCursor; + try + if not Assigned(FProvincias) then + CargarProvincias; + finally + HideHourglassCursor; + end; +end; + +function TfrViewContacto.GetContacto: IBizContacto; +begin + Result := FContacto; +end; + +function TfrViewContacto.GetController: IContactosController; +begin + Result := FController; +end; + +procedure TfrViewContacto.SetContacto(const Value: IBizContacto); +begin + FContacto := Value; + if Assigned(FContacto) then + begin + dsContacto.DataTable := FContacto.DataTable; + end + else begin + dsContacto.DataTable := NIL; + end; +end; + +procedure TfrViewContacto.SetController(const Value: IContactosController); +begin + FController := Value; +end; + +initialization + RegisterClass(TfrViewContacto); + +finalization + UnRegisterClass(TfrViewContacto); + +end. diff --git a/Source/Modulos/Contactos/Views/uViewContactoDatosBancarios.dcu b/Source/Modulos/Contactos/Views/uViewContactoDatosBancarios.dcu new file mode 100644 index 0000000..02aeccd Binary files /dev/null and b/Source/Modulos/Contactos/Views/uViewContactoDatosBancarios.dcu differ diff --git a/Source/Modulos/Contactos/Views/uViewContactoDatosBancarios.dfm b/Source/Modulos/Contactos/Views/uViewContactoDatosBancarios.dfm new file mode 100644 index 0000000..db311d5 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewContactoDatosBancarios.dfm @@ -0,0 +1,171 @@ +inherited frViewClienteDatosBancarios: TfrViewClienteDatosBancarios + Width = 501 + Height = 149 + ExplicitWidth = 501 + ExplicitHeight = 149 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 501 + Height = 129 + Align = alTop + ParentBackground = True + TabOrder = 0 + AutoContentSizes = [acsWidth] + object eEntidad: TcxDBTextEdit + Left = 117 + Top = 55 + DataBinding.DataField = 'ENTIDAD' + DataBinding.DataSource = dsDatosBancarios + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Width = 114 + end + object eSucursal: TcxDBTextEdit + Left = 341 + Top = 55 + DataBinding.DataField = 'SUCURSAL' + DataBinding.DataSource = dsDatosBancarios + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 2 + Width = 112 + end + object eCuenta: TcxDBTextEdit + Left = 238 + Top = 82 + DataBinding.DataField = 'CUENTA' + DataBinding.DataSource = dsDatosBancarios + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 4 + Width = 194 + end + object eDC: TcxDBTextEdit + Left = 117 + Top = 82 + DataBinding.DataField = 'DC' + DataBinding.DataSource = dsDatosBancarios + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 3 + Width = 47 + end + object eTitular: TcxDBTextEdit + Left = 117 + Top = 28 + DataBinding.DataField = 'TITULAR' + DataBinding.DataSource = dsDatosBancarios + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 194 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group3: TdxLayoutGroup + Caption = 'Datos bancarios' + object dxLayoutControl1Item5: TdxLayoutItem + Caption = 'Nombre del banco:' + Control = eTitular + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group2: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item1: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'C'#243'd. entidad:' + Control = eEntidad + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item2: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'C'#243'd. sucursal:' + Control = eSucursal + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group4: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item4: TdxLayoutItem + Caption = 'DC:' + Control = eDC + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item3: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'C'#243'd. cuenta:' + Control = eCuenta + ControlOptions.ShowBorder = False + end + end + end + end + end + end + object dsDatosBancarios: TDADataSource + Left = 8 + Top = 8 + end +end diff --git a/Source/Modulos/Contactos/Views/uViewContactoDatosBancarios.pas b/Source/Modulos/Contactos/Views/uViewContactoDatosBancarios.pas new file mode 100644 index 0000000..ef75386 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewContactoDatosBancarios.pas @@ -0,0 +1,39 @@ +unit uViewContactoDatosBancarios; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, dxLayoutControl, cxControls, cxContainer, cxEdit, + cxTextEdit, cxDBEdit, DB, uDADataTable, uDAInterfaces; + +type + IViewDatosBancarios = interface(IViewBase) + ['{2C3C0C39-F0AE-4FC2-A198-91D901890801}'] + end; + + TfrViewClienteDatosBancarios = class(TfrViewBase, IViewDatosBancarios) + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Item1: TdxLayoutItem; + eEntidad: TcxDBTextEdit; + dxLayoutControl1Item2: TdxLayoutItem; + eSucursal: TcxDBTextEdit; + dxLayoutControl1Item3: TdxLayoutItem; + eCuenta: TcxDBTextEdit; + dxLayoutControl1Item4: TdxLayoutItem; + eDC: TcxDBTextEdit; + dxLayoutControl1Item5: TdxLayoutItem; + eTitular: TcxDBTextEdit; + dxLayoutControl1Group2: TdxLayoutGroup; + dxLayoutControl1Group3: TdxLayoutGroup; + dxLayoutControl1Group4: TdxLayoutGroup; + dxLayoutControl1Group1: TdxLayoutGroup; + dsDatosBancarios: TDADataSource; + end; + +implementation + +{$R *.dfm} + +end. diff --git a/Source/Modulos/Contactos/Views/uViewContactoListaDatosBancarios.dcu b/Source/Modulos/Contactos/Views/uViewContactoListaDatosBancarios.dcu new file mode 100644 index 0000000..e11ad16 Binary files /dev/null and b/Source/Modulos/Contactos/Views/uViewContactoListaDatosBancarios.dcu differ diff --git a/Source/Modulos/Contactos/Views/uViewContactoListaDatosBancarios.dfm b/Source/Modulos/Contactos/Views/uViewContactoListaDatosBancarios.dfm new file mode 100644 index 0000000..f22f14d --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewContactoListaDatosBancarios.dfm @@ -0,0 +1,60 @@ +inherited frViewListaDatosBancarios: TfrViewListaDatosBancarios + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + OnCellDblClick = cxGridViewCellDblClick + OptionsData.Appending = False + OptionsData.Deleting = False + OptionsData.Editing = False + OptionsData.Inserting = False + inherited cxGridViewID: TcxGridDBColumn + VisibleForCustomization = False + end + object cxGridViewTITULAR: TcxGridDBColumn + DataBinding.FieldName = 'TITULAR' + PropertiesClassName = 'TcxTextEditProperties' + Width = 80 + end + object cxGridViewENTIDAD: TcxGridDBColumn + DataBinding.FieldName = 'ENTIDAD' + PropertiesClassName = 'TcxTextEditProperties' + BestFitMaxWidth = 45 + Width = 45 + end + object cxGridViewSUCURSAL: TcxGridDBColumn + DataBinding.FieldName = 'SUCURSAL' + PropertiesClassName = 'TcxTextEditProperties' + BestFitMaxWidth = 45 + Width = 45 + end + object cxGridViewDC: TcxGridDBColumn + DataBinding.FieldName = 'DC' + PropertiesClassName = 'TcxTextEditProperties' + BestFitMaxWidth = 30 + Width = 30 + end + object cxGridViewCUENTA: TcxGridDBColumn + DataBinding.FieldName = 'CUENTA' + PropertiesClassName = 'TcxTextEditProperties' + Width = 80 + end + end + end + inherited ToolBar1: TToolBar + inherited ToolButton1: TToolButton + ExplicitWidth = 62 + end + inherited ToolButton4: TToolButton + ExplicitWidth = 74 + end + inherited ToolButton2: TToolButton + ExplicitWidth = 67 + end + inherited ToolButton7: TToolButton + ExplicitWidth = 117 + end + end + inherited dsDetalles: TDADataSource + DataSet = tbl_Contactos.Dataset + DataTable = DataModuleContactos.tbl_Contactos + end +end diff --git a/Source/Modulos/Contactos/Views/uViewContactoListaDatosBancarios.pas b/Source/Modulos/Contactos/Views/uViewContactoListaDatosBancarios.pas new file mode 100644 index 0000000..2d5e608 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewContactoListaDatosBancarios.pas @@ -0,0 +1,76 @@ +unit uViewContactoListaDatosBancarios; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewDetallesGenerico, cxStyles, cxCustomData, cxGraphics, cxFilter, + cxData, cxDataStorage, cxEdit, DB, cxDBData, ActnList, ImgList, PngImageList, + uDAInterfaces, uDADataTable, ComCtrls, ToolWin, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, cxTextEdit; + +type + IViewListaDatosBancarios = interface(IViewDetallesGenerico) + ['{E6489FBE-C472-494A-AA04-7B63B3262521}'] + end; + + TfrViewListaDatosBancarios = class(TfrViewDetallesGenerico, IViewListaDatosBancarios) + cxGridViewTITULAR: TcxGridDBColumn; + cxGridViewENTIDAD: TcxGridDBColumn; + cxGridViewSUCURSAL: TcxGridDBColumn; + cxGridViewDC: TcxGridDBColumn; + cxGridViewCUENTA: TcxGridDBColumn; + procedure cxGridViewCellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure actEliminarExecute(Sender: TObject); + protected + procedure AnadirInterno; override; + procedure ModificarInterno; override; + end; + +implementation + +uses + uDataModuleContactos, uBizContactosDatosBancarios, + uDatosBancariosContactoController, uDialogUtils; + +{$R *.dfm} + +{ TfrViewListaDatosBancarios } + +procedure TfrViewListaDatosBancarios.actEliminarExecute(Sender: TObject); +begin + if (ShowConfirmMessage('Eliminar una cuenta bancaria', 'Desea eliminar esta cuenta bancaria?') = IDYES) then + inherited; +end; + +procedure TfrViewListaDatosBancarios.AnadirInterno; +begin + inherited; + try + with TDatosBancariosContactoController.Create do + Ver((dsDetalles.DataTable) as IBizContactosDatosBancarios); + finally + if (dsDetalles.DataTable.State in dsEditModes) then + dsDetalles.DataTable.Post; + end; +end; + +procedure TfrViewListaDatosBancarios.cxGridViewCellDblClick( + Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; + AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); +begin + inherited; + actModificar.Execute; +end; + +procedure TfrViewListaDatosBancarios.ModificarInterno; +begin + inherited; + with TDatosBancariosContactoController.Create do + Ver((dsDetalles.DataTable) as IBizContactosDatosBancarios); +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uViewContactos.dcu b/Source/Modulos/Contactos/Views/uViewContactos.dcu new file mode 100644 index 0000000..0f81fbd Binary files /dev/null and b/Source/Modulos/Contactos/Views/uViewContactos.dcu differ diff --git a/Source/Modulos/Contactos/Views/uViewContactos.dfm b/Source/Modulos/Contactos/Views/uViewContactos.dfm new file mode 100644 index 0000000..ca86f4e --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewContactos.dfm @@ -0,0 +1,182 @@ +inherited frViewContactos: TfrViewContactos + Width = 557 + Height = 458 + ExplicitWidth = 557 + ExplicitHeight = 458 + inherited cxGrid: TcxGrid + Width = 557 + Height = 330 + ExplicitWidth = 557 + ExplicitHeight = 330 + inherited cxGridView: TcxGridDBTableView + DataController.KeyFieldNames = 'ID' + DataController.Summary.FooterSummaryItems = < + item + Format = '0 clientes' + Kind = skCount + FieldName = 'ID' + Column = cxGridViewNOMBRE + end> + OptionsBehavior.PullFocusing = True + object cxGridViewREFERENCIA: TcxGridDBColumn + Caption = 'C'#243'digo' + DataBinding.FieldName = 'REFERENCIA' + BestFitMaxWidth = 60 + Width = 50 + end + object cxGridViewNIF_CIF: TcxGridDBColumn + DataBinding.FieldName = 'NIF_CIF' + BestFitMaxWidth = 60 + Width = 50 + end + object cxGridViewNOMBRE: TcxGridDBColumn + DataBinding.FieldName = 'NOMBRE' + SortIndex = 0 + SortOrder = soAscending + Width = 164 + end + object cxGridViewCALLE: TcxGridDBColumn + DataBinding.FieldName = 'CALLE' + Visible = False + BestFitMaxWidth = 60 + end + object cxGridViewPOBLACION: TcxGridDBColumn + DataBinding.FieldName = 'POBLACION' + Visible = False + BestFitMaxWidth = 60 + end + object cxGridViewPROVINCIA: TcxGridDBColumn + DataBinding.FieldName = 'PROVINCIA' + Visible = False + BestFitMaxWidth = 60 + end + object cxGridViewCODIGO_POSTAL: TcxGridDBColumn + DataBinding.FieldName = 'CODIGO_POSTAL' + Visible = False + BestFitMaxWidth = 60 + Width = 47 + end + object cxGridViewTELEFONO_1: TcxGridDBColumn + Caption = 'Tlf. trabajo' + DataBinding.FieldName = 'TELEFONO_1' + BestFitMaxWidth = 60 + Width = 84 + end + object cxGridViewTELEFONO_2: TcxGridDBColumn + Caption = 'Tlf. particular' + DataBinding.FieldName = 'TELEFONO_2' + Visible = False + BestFitMaxWidth = 60 + end + object cxGridViewMOVIL_1: TcxGridDBColumn + DataBinding.FieldName = 'MOVIL_1' + BestFitMaxWidth = 60 + Width = 49 + end + object cxGridViewFAX: TcxGridDBColumn + DataBinding.FieldName = 'FAX' + Visible = False + BestFitMaxWidth = 60 + end + object cxGridViewEMAIL_1: TcxGridDBColumn + Caption = 'E-mail trabajo' + DataBinding.FieldName = 'EMAIL_1' + BestFitMaxWidth = 60 + Width = 43 + end + object cxGridViewEMAIL_2: TcxGridDBColumn + Caption = 'E-mail particular' + DataBinding.FieldName = 'EMAIL_2' + Visible = False + BestFitMaxWidth = 60 + end + object cxGridViewPAGINA_WEB: TcxGridDBColumn + DataBinding.FieldName = 'PAGINA_WEB' + Visible = False + BestFitMaxWidth = 60 + end + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 557 + ExplicitWidth = 557 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 557 + inherited dxLayoutControl1: TdxLayoutControl + Width = 557 + ExplicitWidth = 557 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 460 + Width = 460 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 161 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 161 + ExplicitWidth = 322 + Width = 322 + end + inherited eLista: TcxComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 557 + ExplicitWidth = 557 + inherited tbxBotones: TTBXToolbar + Width = 547 + ExplicitWidth = 547 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 432 + ExplicitTop = 432 + ExplicitWidth = 557 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 557 + ExplicitWidth = 557 + inherited TBXToolbar1: TTBXToolbar + Width = 547 + ExplicitWidth = 547 + end + end + end + inherited dsDataSource: TDADataSource + Left = 32 + Top = 48 + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39213.849016018520000000 + BuiltInReportLink = True + end + end + inherited ActionList1: TActionList + Left = 336 + Top = 304 + end + inherited GridPNGImageList: TPngImageList + Left = 264 + Top = 304 + end +end diff --git a/Source/Modulos/Contactos/Views/uViewContactos.pas b/Source/Modulos/Contactos/Views/uViewContactos.pas new file mode 100644 index 0000000..6903893 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewContactos.pas @@ -0,0 +1,72 @@ +unit uViewContactos; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel, + cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGrid, uBizContactos, ActnList, Menus, + cxGridBandedTableView, cxGridDBBandedTableView, JvComponent, + JvFormAutoSize, PngImageList, ImgList, dxPSGlbl, dxPSUtl, dxPSEngn, + dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, cxIntlPrintSys3, dxPSCore, dxPScxCommon, + uDataModuleClientes, cxGridCustomPopupMenu, cxGridPopupMenu, uViewFiltroBase, + ComCtrls, TB2Item, TBX, TB2Toolbar, dxPgsDlg, dxPScxGrid6Lnk, uDAInterfaces, TBXDkPanels, + TB2Dock, uCustomView, uViewBase; + +type + IViewContactos = interface(IViewGrid) + ['{9E43DEE1-F72B-4C93-8592-1C7DF01E293D}'] + function GetContactos: IBizContacto; + procedure SetContactos(const Value: IBizContacto); + property Contactos: IBizContacto read GetContactos write SetContactos; + end; + + TfrViewContactos = class(TfrViewGrid, IViewContactos) + cxGridViewNIF_CIF: TcxGridDBColumn; + cxGridViewNOMBRE: TcxGridDBColumn; + cxGridViewCALLE: TcxGridDBColumn; + cxGridViewPOBLACION: TcxGridDBColumn; + cxGridViewPROVINCIA: TcxGridDBColumn; + cxGridViewCODIGO_POSTAL: TcxGridDBColumn; + cxGridViewTELEFONO_1: TcxGridDBColumn; + cxGridViewTELEFONO_2: TcxGridDBColumn; + cxGridViewMOVIL_1: TcxGridDBColumn; + cxGridViewFAX: TcxGridDBColumn; + cxGridViewEMAIL_1: TcxGridDBColumn; + cxGridViewEMAIL_2: TcxGridDBColumn; + cxGridViewPAGINA_WEB: TcxGridDBColumn; + cxGridViewREFERENCIA: TcxGridDBColumn; + protected + FContactos: IBizContacto; + function GetContactos: IBizContacto; virtual; + procedure SetContactos(const Value: IBizContacto); virtual; + public + property DataSet: IBizContacto read GetContactos write SetContactos; + end; + +implementation + +{$R *.dfm} + +{ TfrViewContactos } + +{ +******************************* TfrViewContactos ******************************* +} +function TfrViewContactos.GetContactos: IBizContacto; +begin + Result := FContactos; +end; + +procedure TfrViewContactos.SetContactos(const Value: IBizContacto); +begin + FContactos := Value; + if Assigned(FContactos) then + dsDataSource.DataTable := FContactos.DataTable; +end; + + +end. diff --git a/Source/Modulos/Contactos/Views/uViewDatosYSeleccionCliente.dcu b/Source/Modulos/Contactos/Views/uViewDatosYSeleccionCliente.dcu new file mode 100644 index 0000000..a361b52 Binary files /dev/null and b/Source/Modulos/Contactos/Views/uViewDatosYSeleccionCliente.dcu differ diff --git a/Source/Modulos/Contactos/Views/uViewDatosYSeleccionCliente.dfm b/Source/Modulos/Contactos/Views/uViewDatosYSeleccionCliente.dfm new file mode 100644 index 0000000..5def27f --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewDatosYSeleccionCliente.dfm @@ -0,0 +1,501 @@ +inherited frViewDatosYSeleccionCliente: TfrViewDatosYSeleccionCliente + Width = 350 + Height = 212 + ExplicitWidth = 350 + ExplicitHeight = 212 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 350 + Height = 212 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 0 + Margins.Bottom = 0 + Align = alClient + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + DesignSize = ( + 350 + 212) + object edtlNombre: TcxDBTextEdit + Left = 64 + Top = 41 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'NOMBRE' + DataBinding.DataSource = DADataSource + Enabled = False + ParentFont = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 2 + Height = 21 + Width = 224 + end + object edtNIFCIF: TcxDBTextEdit + Left = 64 + Top = 68 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'NIF_CIF' + DataBinding.DataSource = DADataSource + Enabled = False + ParentFont = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 3 + Height = 21 + Width = 562 + end + object edtCalle: TcxDBTextEdit + Left = 64 + Top = 95 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'CALLE' + DataBinding.DataSource = DADataSource + Enabled = False + ParentFont = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 4 + Height = 21 + Width = 562 + end + object edtPoblacion: TcxDBTextEdit + Left = 64 + Top = 122 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'POBLACION' + DataBinding.DataSource = DADataSource + Enabled = False + ParentFont = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 5 + Height = 21 + Width = 177 + end + object edtProvincia: TcxDBTextEdit + Left = 64 + Top = 149 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'PROVINCIA' + DataBinding.DataSource = DADataSource + Enabled = False + ParentFont = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 7 + Height = 21 + Width = 327 + end + object edtCodigoPostal: TcxDBTextEdit + Left = 258 + Top = 122 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'CODIGO_POSTAL' + DataBinding.DataSource = DADataSource + Enabled = False + ParentFont = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 6 + Height = 21 + Width = 82 + end + object Button1: TBitBtn + Left = 10 + Top = 10 + Width = 115 + Height = 25 + Action = actElegirContacto + Caption = 'Elegir un cliente' + TabOrder = 0 + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FF00FF00FF00 + FF00FF00FF00EB00EB00C507C600AB13AD00A119A2009F19A000A215A400AA10 + AC00B608B800CE00CE00EF00EF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00B426B000526840004A823400478F310043962F0042992F0043972F004690 + 3100488533004B7237005A405100D201D200FF00FF00FF00FF00FF00FF00FF00 + FF0062654E004F81350047903100409C2E003AA62C0038AA2B0039A72B003E9E + 2D00459230004D84340056753800A0189F00FF00FF00FF00FF00FF00FF00FF00 + FF005F6B4C004B89330042992F0039A82B0032B428002EBB260031B6270037AB + 2A00409C2E00498C3200527B3600B015B100FF00FF00FF00FF00FF00FF00FF00 + FF0090488700488D32003E9E2D0035AF290035B631007ACB7B002DBF280033B2 + 28003DA12D0047903100576A4800EC01EC00FF00FF00FF00FF00FF00FF00FF00 + FF00F008F1005F7351003E9F2D0034B0290080AC8100D2D3D30081BB820032B2 + 28003DA22D004A863A00C519C500FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00EE09EF007861730036923E00598CAE00498CBB004A81A6002B70 + 3A00606D5900D613D600FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00EA0CF400608CD00054A2D80053A1D6004F9DD300488B + C2009D11AC00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF008C67DE005CA9DD005CA9DD005AA7DC0056A4D900519F + D400565FAB00EA00EA00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00EC0DF60060A7DE0063B0E30063B0E30061AEE1005CA9DD0056A4 + D9004E94CC00C105C600FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00C532ED0066B2E5006BB7E9006BB7E90067B3E60061AEE1005AA7 + DC00539FD500A817BE00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00BA3AE7004989B1004A85AC005895BD0068B2E30064B0E4005CA9 + DE0053A0D400AA1BC300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00CA23E8005098C400539AC7004E93BE00437DA2005190BA005198 + C6003C79A000BE08C300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00F804FC006995D40062ACDA005DA6D3005299C6004284AD003C7F + A900535AA100F300F300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00C140ED0071BAEA0068B2E00059A1CF004990BC004378 + AA00C315D600FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00C83EF000808BDF00668BCC007C60C700D116 + E400FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} + end + object Button2: TBitBtn + Left = 131 + Top = 10 + Width = 143 + Height = 25 + Action = actAnadirContacto + Caption = 'Dar de alta un cliente' + TabOrder = 1 + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00D5BFB1006947 + 3100694731006947310069473100694731006947310069473100694731006947 + 3100694731006947310069473100694731006947310069473100D5BFB100F6F2 + EF00B7A29300B7A29300B7A29300B7A29300B7A29300B7A29300B7A29300B7A2 + 9300B7A29300B7A29300B7A29300B7A29300B7A2930069473100D5BFB1002A80 + 1E00136F0D00136F0D00136F0D00136F0D00136F0D00136F0D002A801E00E3D5 + CE00E0D1C900DFCFC600DCCBC100DBC9BF00B7A2930069473100D5BFB10059A8 + 5100448B2F003CA02C0032A4260032A526003D9E2C00438D2E00136F0D00E7DB + D500A1745C00A1745C00A1745C00A1745C00B7A2930069473100D5BFB10080BC + 790042952E0031A62600369B3200369E320032A727003E952C00136F0D00EAE0 + DA00E7DBD500E4D7D000E2D3CB00DFCFC600B7A2930069473100D5BFB100CFE8 + CD004CA741002D942F0071AB90006FA68E0030923100136F0D00EFE8E300EDE4 + DF00A1745C00A1745C00A1745C00A1745C00B7A2930069473100D5BFB100FFFF + FF00B9DDC2004F9DA000559BC8004E96C2004E8E8F00A8C2AA00F2ECE800EFE8 + E300EDE4DF00EAE0DA00E7DBD500E4D7D000B7A2930069473100D5BFB100FFFF + FF00A5CDE8005DAADD005CA9DD0057A4D900519ACC00A0BACA00F5F0ED00F2EC + E800EFE8E300EDE4DF00EAE0DA00E7DBD500B7A2930069473100D5BFB100ECF6 + FA006CB9DF0065B2E50065B1E5005FACDF0056A2D700689EBE00F7F4F100F5F0 + ED00F2ECE800006000000060000000600000B7A2930069473100D5BFB100E9F6 + FA005BB0D5005CA6D50065AFDF0062AFE20058A4D8003285A700FAF8F600F7F4 + F100F7A073000060000033CB510000600000B7A2930069473100D5BFB100F4FA + FC0078C0DD0056A0CD00569DCA00539CCA00448DBB003285A700FDFCFB000060 + 0000006000000060000040D86500006000000060000000600000D5BFB100FFFF + FF00CEEAF40062B5DE005DA7D5004B92BE003285A700C6DCE600FFFFFF000060 + 000060F898005AF28F004DE57A0040D865003AD25C0000600000D5BFB100FFFF + FF00FFFFFF00CEEAF400A5CDE800A5CDE800CEEAF400FFFFFF00FFFFFF000060 + 000000600000006000005AF28F00006000000060000000600000D5BFB100D5BF + B100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BF + B100D5BFB1000060000060F8980000600000D5BFB100D5BFB100FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00006000000060000000600000FF00FF00FF00FF00} + end + object Button3: TBitBtn + Left = 148 + Top = 176 + Width = 192 + Height = 25 + Action = actVerContacto + Caption = 'Ver ficha completa del cliente...' + TabOrder = 8 + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00D5BFB1006947 + 3100694731006947310069473100694731006947310069473100694731006947 + 3100694731006947310069473100694731006947310069473100D5BFB100F6F2 + EF00B7A29300B7A29300B7A29300B7A29300B7A29300B7A29300B7A29300B7A2 + 9300B7A29300B7A29300B7A29300B7A29300B7A2930069473100D5BFB1002A80 + 1E00136F0D00136F0D00136F0D00136F0D00136F0D00136F0D002A801E00E3D5 + CE00E0D1C900DFCFC600DCCBC100DBC9BF00B7A2930069473100D5BFB10059A8 + 5100448B2F003CA02C0032A4260032A526003D9E2C00438D2E00136F0D00E7DB + D500A1745C00A1745C00A1745C00A1745C00B7A2930069473100D5BFB10080BC + 790042952E0031A62600369B3200369E320032A727003E952C00136F0D00EAE0 + DA00E7DBD500E4D7D000E2D3CB00DFCFC600B7A2930069473100D5BFB100CFE8 + CD004CA741002D942F0071AB90006FA68E0030923100136F0D00EFE8E300EDE4 + DF00A1745C00A1745C00A1745C00A1745C00B7A2930069473100D5BFB100FFFF + FF00B9DDC2004F9DA000559BC8004E96C2004E8E8F00A8C2AA00F2ECE800EFE8 + E300EDE4DF00EAE0DA00E7DBD500E4D7D000B7A2930069473100D5BFB100FFFF + FF00A5CDE8005DAADD005CA9DD0057A4D900519ACC00A0BACA00F5F0ED00F2EC + E800EFE8E300EDE4DF00EAE0DA00E7DBD500B7A2930069473100D5BFB100ECF6 + FA006CB9DF0065B2E50065B1E5005FACDF0056A2D700689EBE00F7F4F100F5F0 + ED00F2ECE800EFE8E300EDE4DF00EAE0DA00B7A2930069473100D5BFB100E9F6 + FA005BB0D5005CA6D50065AFDF0062AFE20058A4D8003285A700FAF8F600F7F4 + F100F7A07300F7A07300F7A07300F7A07300B7A2930069473100D5BFB100F4FA + FC0078C0DD0056A0CD00569DCA00539CCA00448DBB003285A700FDFCFB00FAF8 + F600F7F4F100F5F0ED00F2ECE800EFE8E300B7A2930069473100D5BFB100FFFF + FF00CEEAF40062B5DE005DA7D5004B92BE003285A700C6DCE600FFFFFF00FDFC + FB00F7A07300F7A07300F7A07300F7A07300B7A2930069473100D5BFB100FFFF + FF00FFFFFF00CEEAF400A5CDE800A5CDE800CEEAF400FFFFFF00FFFFFF00FFFF + FF00FEFEFD00FCFAF900F9F6F400F6F2EF00F3EEEA0069473100D5BFB100D5BF + B100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BF + B100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item7: TdxLayoutItem + Caption = 'Button1' + ShowCaption = False + Control = Button1 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item8: TdxLayoutItem + Caption = 'Button2' + ShowCaption = False + Control = Button2 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item1: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Nombre:' + Control = edtlNombre + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item2: TdxLayoutItem + Caption = 'NIF/CIF' + Control = edtNIFCIF + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item3: TdxLayoutItem + Caption = 'Calle:' + Control = edtCalle + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group2: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item4: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Poblaci'#243'n:' + Control = edtPoblacion + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item6: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'C.P.:' + Control = edtCodigoPostal + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item5: TdxLayoutItem + Caption = 'Provincia:' + Control = edtProvincia + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item9: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'Button3' + ShowCaption = False + Control = Button3 + ControlOptions.ShowBorder = False + end + end + end + object DADataSource: TDADataSource + Left = 8 + Top = 160 + end + object ActionList1: TActionList + Images = PngImageList + Left = 40 + Top = 160 + object actElegirContacto: TAction + Caption = 'Elegir un cliente' + ImageIndex = 1 + OnExecute = actElegirContactoExecute + end + object actAnadirContacto: TAction + Caption = 'Dar de alta un cliente' + ImageIndex = 0 + OnExecute = actAnadirContactoExecute + end + object actVerContacto: TAction + Caption = 'Ver ficha completa del cliente...' + ImageIndex = 2 + OnExecute = actVerContactoExecute + OnUpdate = actVerContactoUpdate + end + end + object PngImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000002224944415478DA + 95935D48936114C77FCB36584A6064161515DEA441108B240293E8A682246805 + DEA45020F40196505D081242DE94512B8C20169937056914D52E726B6083B114 + D44CD3D51A216BB6656B5FEF677B5FF31D23033DF070CE03CFFFF73F1CCE6362 + 29D1806AD44E4C5A32F5F58FAA8BD5D73DD8465757034D4D4EFA4E8C62000ED7 + 56E997647490DFE131BD2ED9584971D98EB9478D2603D279B39EE6733DC6DD00 + 68E2EF7E07E95F2291688C48629ABDC71DACABD8AD0334E7B420104D24F4A3D5 + DDD707E60087F66C2234D0CECF2F41643987556566676799C9C4387AD18FF964 + 91E178EA522DF73ADC851D1CA85ECD27D77948995861B552844C2A9962303441 + DD051FA22473E5095C735B3972DAC6D3DB016EED7BC9FD47CFE601E57CF3B661 + C966D1E62C880299549A696915B6639D4892A243D6B6AC349C0B00DA0C22EF7B + 484EBDCA015424512491125036D751B1CBAE8BB5330F12459937EF860A01DEA0 + 8BA0FB0E5B154BAE832C810CACDF594F4DD5C17FC45AF6FA87F3800D95022DFD + ADC47E84682CDF8F222A3C9CF1303915E6C3E5495DDC7AE379C14E546F5F9307 + F8E4C7BC187F4BA6344E49D24C6E8A24AD12E65809A1895102CD6386B3F8B793 + C0F0C73CC0196927188E2297651096A7D096D4922D6659DCC2E7AF43F8CE8C70 + F5AEEBFF1D9CF5D889C7230BAE6F696939BDF6D7BAABACA87A567279647C320F + A8B16DA1BBD7B3A47FA5850168EB702C596C6CA2AA2EFA332E187F0080F1503E + 182A98A90000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AC400000AC401666D82D4000002A94944415478DA + 7D925D48536118C79FF3B5AF36DD66B639CB924243225010BC49BA914004CDE8 + E32228B482EA4689A22289C8CBA28B32B1061688902912D28D16991F6062B2DC + 45921FB954669BF39C9D6DE7EC9CF3EEBC9D2D8C2CB7079E9BF779FEBFF7F922 + 30C69034822060D3665F5F3A0B90B8C672FCAEC07AD8E35DF0DFBFE3F64EC05F + F647F72FC0DB75AED1E1B43D138438C9B26108B11C0443BC30ECF959D731303F + 9411D0D35C612C2ADBEF3319F5B992AC402412037F9003A4C8E05F17679BDA3E + 976BA9D1F4807B95552E877D90222910250556023170E66481D900F0CD17C0AD + 5DDE63F3CBFC505AC0685B6DE34654762B88009B350B8AF658815011C8521C04 + 518487DD530D9D83BECEB480C98EDA13F9798E5E9A61526F098440D1CA572409 + 24298EEFBA271B7BC756D203FA5A8FE49516EDF3313A5D8AA0AAAAD6BF929A01 + CFC7505DCBBBAAD590349C710BD3EEFA57D916D3A954920648249255283031B3 + 3A7BE1D164A5F61CCC0878D15C917FA8C43165D6334E558B25DBD80847E51BCF + A79B3E7D65DB33AEF1E04D570EE5723DB513C4C966E9006101ED0662043C6697 + 30B7DB3021CE6D5C5EEA58FAB22DE0F0ADBD36D25E38A6E6E2126413E00CAA81 + FAE27AE85FEB876EF10D30DC0E2083542432F3E3F8E2CBC5F7FF01CA5A8E3E21 + 6CC6AB8A264636110C7A80EADC2AE88B0E004474C0B026A035C76BF2B2A7ED43 + 29E671680BA0FC76B50F5BC902641501658B90304BA0EA11100A05544C0774D8 + 0834A7396B04DFE8C8E9B58FC19EAD80EB358B84852E44D9F1DF62930C9856B5 + 6320801419A0A27AA079430AB4303E722530EE6FDF3A838B15E729B3E50195C3 + D855B34A247F074A8BA91A40A2808C91803955E6E70233F36F3D0D58C6DEEDD6 + B8D35040179B9DA602305266AC028925A4A0B822A090C20BAB09BF96F35D736E + 53F70B90E997F07974AFDF0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001EC4944415478DA + A5934B6813511486BF541B88CD26620DA262A51BDB8520158308D5852055B01B + A3E8CEBD2E7CE063512852D09D2E82E04604AB1B5D4451B059D8A6010D84D842 + 5B6B6B1A8D414A4C9B18EB4C27F3F466D41943ED4233309C3BDC39DFFFDF9F7B + 3C9665D1C8E379323CD510C1061C3DD0697F48C531BEE7A7EDB57F6B072DADBB + 9C1F4DE154D74D34DD70DE43272FB9805AF3975484E56F1A856289C2D23CFB4F + 44D8D4BE17DD30B932A8D629B7358D70F7C1D39F8023FBB6917B35C0D78F590C + 43EC5A06954A8505A5C4B1CB2947F14F07D158D205F48436F03E761E640FEB7C + 3ED660204B3263B9597A2F24ED866B8F59DD414F28C8E7443FDE6A55A883AAA9 + 28F232F3FA7ABA8EDFAC53FEBD1E1A4DBB805A0685370F91E65E0880084BD358 + 9255CCB65EDAF784571E413378F97ABC1E90C8C6C88EDC6687E9150EAAA415D8 + BCFB14DD9D875734D76A2235E102B674A85C1CEEA3B498E374F020A666727F21 + 4E662ECFDBAB19BBB9EFD6B3BA0C423B37BA80A4F188E733A32881327EA91991 + 22924FA7B9E427373B45FADCB4A3ACFD72929E78E702EE1506C8E68B18AD0AEA + 5A595C2F44A02D3495BD7CF8344EF2CC24D7EFC4567770361EA65C2EFCF5AA06 + 0241A2E1215BD5302DBB9AA24ECE645C4077D77606A3F17F9E0307D07F23F2FF + C3D4E838FF008E7263BE13CA147C0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end> + Left = 72 + Top = 160 + Bitmap = {} + end +end diff --git a/Source/Modulos/Contactos/Views/uViewDatosYSeleccionCliente.pas b/Source/Modulos/Contactos/Views/uViewDatosYSeleccionCliente.pas new file mode 100644 index 0000000..b53cded --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewDatosYSeleccionCliente.pas @@ -0,0 +1,244 @@ +unit uViewDatosYSeleccionCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, StdCtrls, cxControls, cxContainer, cxEdit, cxLabel, + cxDBLabel, ExtCtrls, DB, uDADataTable, uBizContactos, + ComCtrls, ToolWin, ActnList, ImgList, PngImageList, cxTextEdit, cxDBEdit, + pngimage, JvExControls, JvComponent, JvButton, JvTransparentButton, Mask, + DBCtrls, uClientesController, dxLayoutControl, Buttons, uDAInterfaces; + +type + IViewDatosYSeleccionCliente = interface(IViewBase) + ['{BCC2B36B-4A19-4981-B69A-56E258A898F0}'] + function GetController: IClientesController; + procedure SetController(Value: IClientesController); + property Controller: IClientesController read GetController write SetController; + + function GetCliente: IBizCliente; + procedure SetCliente(Value: IBizCliente); + property Cliente: IBizCliente read GetCliente write SetCliente; + + function GetID_Cliente: integer; + procedure SetID_Cliente(const Value: integer); + property ID_Cliente: integer read GetID_Cliente write SetID_Cliente; + + function GetOnClienteChanged : TNotifyEvent; + procedure SetOnClienteChanged (const Value : TNotifyEvent); + property OnClienteChanged : TNotifyEvent read GetOnClienteChanged + write SetOnClienteChanged; + + function GetMsgElegirCliente: String; + procedure SetMsgElegirCliente(const Value: String); + property MsgElegirCliente : String read GetMsgElegirCliente + write SetMsgElegirCliente; + end; + + TfrViewDatosYSeleccionCliente = class(TfrViewBase, IViewDatosYSeleccionCliente) + DADataSource: TDADataSource; + ActionList1: TActionList; + actElegirContacto: TAction; + actAnadirContacto: TAction; + actVerContacto: TAction; + PngImageList: TPngImageList; + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Item1: TdxLayoutItem; + edtlNombre: TcxDBTextEdit; + dxLayoutControl1Item2: TdxLayoutItem; + edtNIFCIF: TcxDBTextEdit; + dxLayoutControl1Item3: TdxLayoutItem; + edtCalle: TcxDBTextEdit; + dxLayoutControl1Item4: TdxLayoutItem; + edtPoblacion: TcxDBTextEdit; + dxLayoutControl1Item5: TdxLayoutItem; + edtProvincia: TcxDBTextEdit; + dxLayoutControl1Item6: TdxLayoutItem; + edtCodigoPostal: TcxDBTextEdit; + Button1: TBitBtn; + dxLayoutControl1Item7: TdxLayoutItem; + Button2: TBitBtn; + dxLayoutControl1Item8: TdxLayoutItem; + Button3: TBitBtn; + dxLayoutControl1Item9: TdxLayoutItem; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Group2: TdxLayoutGroup; + procedure actElegirContactoExecute(Sender: TObject); + procedure actAnadirContactoExecute(Sender: TObject); + procedure actVerContactoExecute(Sender: TObject); + procedure actVerContactoUpdate(Sender: TObject); + + private + FOnClienteChanged : TNotifyEvent; + FMsgElegirCliente: String; + function GetMsgElegirCliente: String; + procedure SetMsgElegirCliente(const Value: String); + + protected + FController : IClientesController; + FCliente : IBizCliente; + function GetController: IClientesController; + procedure SetController(Value: IClientesController); + function GetCliente: IBizCliente; virtual; + procedure SetCliente(Value: IBizCliente); virtual; + function GetOnClienteChanged : TNotifyEvent; + procedure SetOnClienteChanged (const Value : TNotifyEvent); + procedure SetReadOnly(Value: Boolean); override; + function GetID_Cliente: integer; virtual; + procedure SetID_Cliente(const Value: integer); virtual; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + property Controller: IClientesController read GetController write SetController; + property Cliente: IBizCliente read GetCliente write SetCliente; + property OnClienteChanged : TNotifyEvent read GetOnClienteChanged write SetOnClienteChanged; + property MsgElegirCliente : String read GetMsgElegirCliente write SetMsgElegirCliente; + property ID_Cliente: integer read GetID_Cliente write SetID_Cliente; + end; + +implementation + +{$R *.dfm} + +uses + uDataModuleClientes, Math, uCustomView; + +procedure TfrViewDatosYSeleccionCliente.actElegirContactoExecute(Sender: TObject); +var + ACliente : IBizCliente; +begin + inherited; + ACliente := (Controller.ElegirContacto(Controller.BuscarTodos, FMsgElegirCliente, False) as IBizCliente); + if Assigned(ACliente) then + begin + Self.Update; + ShowHourglassCursor; + try + Cliente := ACliente; + finally + HideHourglassCursor; + end; + end; + ACliente := Nil; +end; + +procedure TfrViewDatosYSeleccionCliente.actAnadirContactoExecute( + Sender: TObject); +var + ACliente : IBizCliente; +begin + inherited; + ACliente := (Controller.Nuevo as IBizCliente); + Controller.Ver(ACliente); + Cliente := ACliente; +end; + +procedure TfrViewDatosYSeleccionCliente.actVerContactoExecute(Sender: TObject); +begin + inherited; + Controller.Ver(Cliente); +end; + +procedure TfrViewDatosYSeleccionCliente.actVerContactoUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (Length(edtlNombre.Text) > 0); +end; + +constructor TfrViewDatosYSeleccionCliente.Create(AOwner: TComponent); +begin + inherited; + FMsgElegirCliente := ''; + FController := NIL; +end; + +destructor TfrViewDatosYSeleccionCliente.Destroy; +begin + FController := NIL; + inherited; +end; + +function TfrViewDatosYSeleccionCliente.GetCliente: IBizCliente; +begin + Result := FCliente; +end; + +function TfrViewDatosYSeleccionCliente.GetController: IClientesController; +begin + if not Assigned(FController) then + FController := TClientesController.Create; + Result := FController; +end; + +function TfrViewDatosYSeleccionCliente.GetID_Cliente: integer; +begin + Result := -1; + if Assigned(FCliente) then + Result := FCliente.ID; +end; + +function TfrViewDatosYSeleccionCliente.GetMsgElegirCliente: String; +begin + Result := FMsgElegirCliente; +end; + +procedure TfrViewDatosYSeleccionCliente.SetCliente(Value: IBizCliente); +begin + FCliente := Value; + if Assigned(FCliente) then + begin + DADataSource.DataTable := FCliente.DataTable; + if not FCliente.DataTable.Active then + FCliente.DataTable.Active := True; + end + else + DADataSource.DataTable := NIL; + + if Assigned(FOnClienteChanged) then + FOnClienteChanged(Self); +end; + +procedure TfrViewDatosYSeleccionCliente.SetController(Value: IClientesController); +begin + if Assigned(FController) then + FController := NIL; + + FController := Value; +end; + +procedure TfrViewDatosYSeleccionCliente.SetID_Cliente(const Value: integer); +begin + Self.Cliente := IBizCliente(Controller.Buscar(Value)); +end; + +procedure TfrViewDatosYSeleccionCliente.SetMsgElegirCliente( + const Value: String); +begin + FMsgElegirCliente := Value; +end; + +function TfrViewDatosYSeleccionCliente.GetOnClienteChanged: TNotifyEvent; +begin + Result := FOnClienteChanged; +end; + +procedure TfrViewDatosYSeleccionCliente.SetOnClienteChanged( + const Value: TNotifyEvent); +begin + FOnClienteChanged := Value; +end; + +procedure TfrViewDatosYSeleccionCliente.SetReadOnly(Value: Boolean); +begin + inherited; + + if (csLoading in Self.ComponentState) then + Exit; + + actAnadirContacto.Enabled := not ReadOnly; + actElegirContacto.Enabled := not ReadOnly; +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uViewDatosYSeleccionClienteBase.dcu b/Source/Modulos/Contactos/Views/uViewDatosYSeleccionClienteBase.dcu new file mode 100644 index 0000000..404cdb0 Binary files /dev/null and b/Source/Modulos/Contactos/Views/uViewDatosYSeleccionClienteBase.dcu differ diff --git a/Source/Modulos/Contactos/Views/uViewDatosYSeleccionClienteBase.dfm b/Source/Modulos/Contactos/Views/uViewDatosYSeleccionClienteBase.dfm new file mode 100644 index 0000000..9b39a66 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewDatosYSeleccionClienteBase.dfm @@ -0,0 +1,319 @@ +inherited frViewDatosYSeleccionClienteBase: TfrViewDatosYSeleccionClienteBase + Width = 413 + Height = 218 + ExplicitWidth = 413 + ExplicitHeight = 218 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 35 + Width = 413 + Height = 183 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 0 + Margins.Bottom = 0 + Align = alClient + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + ExplicitTop = 0 + ExplicitWidth = 505 + ExplicitHeight = 82 + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + end + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 413 + Height = 35 + Align = alTop + BevelOuter = bvNone + Padding.Left = 4 + Padding.Top = 4 + Padding.Right = 4 + Padding.Bottom = 4 + TabOrder = 1 + ExplicitTop = -6 + object bvSeparador: TBevel + AlignWithMargins = True + Left = 261 + Top = 4 + Width = 5 + Height = 27 + Margins.Top = 0 + Margins.Right = 0 + Margins.Bottom = 0 + Align = alLeft + Shape = bsLeftLine + end + object bElegirCliente: TBitBtn + AlignWithMargins = True + Left = 4 + Top = 4 + Width = 115 + Height = 27 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 2 + Margins.Bottom = 0 + Action = actElegirContacto + Align = alLeft + Caption = 'Elegir un cliente' + TabOrder = 0 + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FF00FF00FF00 + FF00FF00FF00EB00EB00C507C600AB13AD00A119A2009F19A000A215A400AA10 + AC00B608B800CE00CE00EF00EF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00B426B000526840004A823400478F310043962F0042992F0043972F004690 + 3100488533004B7237005A405100D201D200FF00FF00FF00FF00FF00FF00FF00 + FF0062654E004F81350047903100409C2E003AA62C0038AA2B0039A72B003E9E + 2D00459230004D84340056753800A0189F00FF00FF00FF00FF00FF00FF00FF00 + FF005F6B4C004B89330042992F0039A82B0032B428002EBB260031B6270037AB + 2A00409C2E00498C3200527B3600B015B100FF00FF00FF00FF00FF00FF00FF00 + FF0090488700488D32003E9E2D0035AF290035B631007ACB7B002DBF280033B2 + 28003DA12D0047903100576A4800EC01EC00FF00FF00FF00FF00FF00FF00FF00 + FF00F008F1005F7351003E9F2D0034B0290080AC8100D2D3D30081BB820032B2 + 28003DA22D004A863A00C519C500FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00EE09EF007861730036923E00598CAE00498CBB004A81A6002B70 + 3A00606D5900D613D600FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00EA0CF400608CD00054A2D80053A1D6004F9DD300488B + C2009D11AC00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF008C67DE005CA9DD005CA9DD005AA7DC0056A4D900519F + D400565FAB00EA00EA00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00EC0DF60060A7DE0063B0E30063B0E30061AEE1005CA9DD0056A4 + D9004E94CC00C105C600FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00C532ED0066B2E5006BB7E9006BB7E90067B3E60061AEE1005AA7 + DC00539FD500A817BE00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00BA3AE7004989B1004A85AC005895BD0068B2E30064B0E4005CA9 + DE0053A0D400AA1BC300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00CA23E8005098C400539AC7004E93BE00437DA2005190BA005198 + C6003C79A000BE08C300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00F804FC006995D40062ACDA005DA6D3005299C6004284AD003C7F + A900535AA100F300F300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00C140ED0071BAEA0068B2E00059A1CF004990BC004378 + AA00C315D600FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00C83EF000808BDF00668BCC007C60C700D116 + E400FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} + ExplicitLeft = -2 + ExplicitTop = 5 + end + object bNuevoCliente: TBitBtn + Left = 266 + Top = 4 + Width = 135 + Height = 27 + Action = actAnadirContacto + Align = alLeft + Caption = 'Dar de alta un cliente' + TabOrder = 1 + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00D5BFB1006947 + 3100694731006947310069473100694731006947310069473100694731006947 + 3100694731006947310069473100694731006947310069473100D5BFB100F6F2 + EF00B7A29300B7A29300B7A29300B7A29300B7A29300B7A29300B7A29300B7A2 + 9300B7A29300B7A29300B7A29300B7A29300B7A2930069473100D5BFB1002A80 + 1E00136F0D00136F0D00136F0D00136F0D00136F0D00136F0D002A801E00E3D5 + CE00E0D1C900DFCFC600DCCBC100DBC9BF00B7A2930069473100D5BFB10059A8 + 5100448B2F003CA02C0032A4260032A526003D9E2C00438D2E00136F0D00E7DB + D500A1745C00A1745C00A1745C00A1745C00B7A2930069473100D5BFB10080BC + 790042952E0031A62600369B3200369E320032A727003E952C00136F0D00EAE0 + DA00E7DBD500E4D7D000E2D3CB00DFCFC600B7A2930069473100D5BFB100CFE8 + CD004CA741002D942F0071AB90006FA68E0030923100136F0D00EFE8E300EDE4 + DF00A1745C00A1745C00A1745C00A1745C00B7A2930069473100D5BFB100FFFF + FF00B9DDC2004F9DA000559BC8004E96C2004E8E8F00A8C2AA00F2ECE800EFE8 + E300EDE4DF00EAE0DA00E7DBD500E4D7D000B7A2930069473100D5BFB100FFFF + FF00A5CDE8005DAADD005CA9DD0057A4D900519ACC00A0BACA00F5F0ED00F2EC + E800EFE8E300EDE4DF00EAE0DA00E7DBD500B7A2930069473100D5BFB100ECF6 + FA006CB9DF0065B2E50065B1E5005FACDF0056A2D700689EBE00F7F4F100F5F0 + ED00F2ECE800006000000060000000600000B7A2930069473100D5BFB100E9F6 + FA005BB0D5005CA6D50065AFDF0062AFE20058A4D8003285A700FAF8F600F7F4 + F100F7A073000060000033CB510000600000B7A2930069473100D5BFB100F4FA + FC0078C0DD0056A0CD00569DCA00539CCA00448DBB003285A700FDFCFB000060 + 0000006000000060000040D86500006000000060000000600000D5BFB100FFFF + FF00CEEAF40062B5DE005DA7D5004B92BE003285A700C6DCE600FFFFFF000060 + 000060F898005AF28F004DE57A0040D865003AD25C0000600000D5BFB100FFFF + FF00FFFFFF00CEEAF400A5CDE800A5CDE800CEEAF400FFFFFF00FFFFFF000060 + 000000600000006000005AF28F00006000000060000000600000D5BFB100D5BF + B100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BF + B100D5BFB1000060000060F8980000600000D5BFB100D5BFB100FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00006000000060000000600000FF00FF00FF00FF00} + ExplicitLeft = 262 + ExplicitTop = 2 + end + object bVerFicha: TBitBtn + Left = 121 + Top = 4 + Width = 137 + Height = 27 + Action = actVerContacto + Align = alLeft + Caption = 'Ver ficha del cliente...' + TabOrder = 2 + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00D5BFB1006947 + 3100694731006947310069473100694731006947310069473100694731006947 + 3100694731006947310069473100694731006947310069473100D5BFB100F6F2 + EF00B7A29300B7A29300B7A29300B7A29300B7A29300B7A29300B7A29300B7A2 + 9300B7A29300B7A29300B7A29300B7A29300B7A2930069473100D5BFB1002A80 + 1E00136F0D00136F0D00136F0D00136F0D00136F0D00136F0D002A801E00E3D5 + CE00E0D1C900DFCFC600DCCBC100DBC9BF00B7A2930069473100D5BFB10059A8 + 5100448B2F003CA02C0032A4260032A526003D9E2C00438D2E00136F0D00E7DB + D500A1745C00A1745C00A1745C00A1745C00B7A2930069473100D5BFB10080BC + 790042952E0031A62600369B3200369E320032A727003E952C00136F0D00EAE0 + DA00E7DBD500E4D7D000E2D3CB00DFCFC600B7A2930069473100D5BFB100CFE8 + CD004CA741002D942F0071AB90006FA68E0030923100136F0D00EFE8E300EDE4 + DF00A1745C00A1745C00A1745C00A1745C00B7A2930069473100D5BFB100FFFF + FF00B9DDC2004F9DA000559BC8004E96C2004E8E8F00A8C2AA00F2ECE800EFE8 + E300EDE4DF00EAE0DA00E7DBD500E4D7D000B7A2930069473100D5BFB100FFFF + FF00A5CDE8005DAADD005CA9DD0057A4D900519ACC00A0BACA00F5F0ED00F2EC + E800EFE8E300EDE4DF00EAE0DA00E7DBD500B7A2930069473100D5BFB100ECF6 + FA006CB9DF0065B2E50065B1E5005FACDF0056A2D700689EBE00F7F4F100F5F0 + ED00F2ECE800EFE8E300EDE4DF00EAE0DA00B7A2930069473100D5BFB100E9F6 + FA005BB0D5005CA6D50065AFDF0062AFE20058A4D8003285A700FAF8F600F7F4 + F100F7A07300F7A07300F7A07300F7A07300B7A2930069473100D5BFB100F4FA + FC0078C0DD0056A0CD00569DCA00539CCA00448DBB003285A700FDFCFB00FAF8 + F600F7F4F100F5F0ED00F2ECE800EFE8E300B7A2930069473100D5BFB100FFFF + FF00CEEAF40062B5DE005DA7D5004B92BE003285A700C6DCE600FFFFFF00FDFC + FB00F7A07300F7A07300F7A07300F7A07300B7A2930069473100D5BFB100FFFF + FF00FFFFFF00CEEAF400A5CDE800A5CDE800CEEAF400FFFFFF00FFFFFF00FFFF + FF00FEFEFD00FCFAF900F9F6F400F6F2EF00F3EEEA0069473100D5BFB100D5BF + B100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BF + B100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} + ExplicitLeft = 119 + ExplicitTop = 5 + end + end + object dsCliente: TDADataSource + Left = 168 + Top = 8 + end + object ActionList1: TActionList + Images = PngImageList + Left = 136 + Top = 8 + object actElegirContacto: TAction + Caption = 'Elegir un cliente' + ImageIndex = 0 + OnExecute = actElegirContactoExecute + end + object actAnadirContacto: TAction + Caption = 'Dar de alta un cliente' + ImageIndex = 1 + OnExecute = actAnadirContactoExecute + end + object actVerContacto: TAction + Caption = 'Ver ficha del cliente...' + ImageIndex = 2 + OnExecute = actVerContactoExecute + end + object actElegirDireccion: TAction + Caption = '...' + OnExecute = actElegirDireccionExecute + OnUpdate = actElegirDireccionUpdate + end + object actElegirPersonaContacto: TAction + Caption = '...' + OnExecute = actElegirPersonaContactoExecute + OnUpdate = actElegirPersonaContactoUpdate + end + end + object PngImageList: TPngImageList + ShareImages = True + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AC400000AC401666D82D4000002A94944415478DA + 7D925D48536118C79FF3B5AF36DD66B639CB924243225010BC49BA914004CDE8 + E32228B482EA4689A22289C8CBA28B32B1061688902912D28D16991F6062B2DC + 45921FB954669BF39C9D6DE7EC9CF3EEBC9D2D8C2CB7079E9BF779FEBFF7F922 + 30C69034822060D3665F5F3A0B90B8C672FCAEC07AD8E35DF0DFBFE3F64EC05F + F647F72FC0DB75AED1E1B43D138438C9B26108B11C0443BC30ECF959D731303F + 9411D0D35C612C2ADBEF3319F5B992AC402412037F9003A4C8E05F17679BDA3E + 976BA9D1F4807B95552E877D90222910250556023170E66481D900F0CD17C0AD + 5DDE63F3CBFC505AC0685B6DE34654762B88009B350B8AF658815011C8521C04 + 518487DD530D9D83BECEB480C98EDA13F9798E5E9A61526F098440D1CA572409 + 24298EEFBA271B7BC756D203FA5A8FE49516EDF3313A5D8AA0AAAAD6BF929A01 + CFC7505DCBBBAAD590349C710BD3EEFA57D916D3A954920648249255283031B3 + 3A7BE1D164A5F61CCC0878D15C917FA8C43165D6334E558B25DBD80847E51BCF + A79B3E7D65DB33AEF1E04D570EE5723DB513C4C966E9006101ED0662043C6697 + 30B7DB3021CE6D5C5EEA58FAB22DE0F0ADBD36D25E38A6E6E2126413E00CAA81 + FAE27AE85FEB876EF10D30DC0E2083542432F3E3F8E2CBC5F7FF01CA5A8E3E21 + 6CC6AB8A264636110C7A80EADC2AE88B0E004474C0B026A035C76BF2B2A7ED43 + 29E671680BA0FC76B50F5BC902641501658B90304BA0EA11100A05544C0774D8 + 0834A7396B04DFE8C8E9B58FC19EAD80EB358B84852E44D9F1DF62930C9856B5 + 6320801419A0A27AA079430AB4303E722530EE6FDF3A838B15E729B3E50195C3 + D855B34A247F074A8BA91A40A2808C91803955E6E70233F36F3D0D58C6DEEDD6 + B8D35040179B9DA602305266AC028925A4A0B822A090C20BAB09BF96F35D736E + 53F70B90E997F07974AFDF0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000002224944415478DA + 95935D48936114C77FCB36584A6064161515DEA441108B240293E8A682246805 + DEA45020F40196505D081242DE94512B8C20169937056914D52E726B6083B114 + D44CD3D51A216BB6656B5FEF677B5FF31D23033DF070CE03CFFFF73F1CCE6362 + 29D1806AD44E4C5A32F5F58FAA8BD5D73DD8465757034D4D4EFA4E8C62000ED7 + 56E997647490DFE131BD2ED9584971D98EB9478D2603D279B39EE6733DC6DD00 + 68E2EF7E07E95F2291688C48629ABDC71DACABD8AD0334E7B420104D24F4A3D5 + DDD707E60087F66C2234D0CECF2F41643987556566676799C9C4387AD18FF964 + 91E178EA522DF73ADC851D1CA85ECD27D77948995861B552844C2A9962303441 + DD051FA22473E5095C735B3972DAC6D3DB016EED7BC9FD47CFE601E57CF3B661 + C966D1E62C880299549A696915B6639D4892A243D6B6AC349C0B00DA0C22EF7B + 484EBDCA015424512491125036D751B1CBAE8BB5330F12459937EF860A01DEA0 + 8BA0FB0E5B154BAE832C810CACDF594F4DD5C17FC45AF6FA87F3800D95022DFD + ADC47E84682CDF8F222A3C9CF1303915E6C3E5495DDC7AE379C14E546F5F9307 + F8E4C7BC187F4BA6344E49D24C6E8A24AD12E65809A1895102CD6386B3F8B793 + C0F0C73CC0196927188E2297651096A7D096D4922D6659DCC2E7AF43F8CE8C70 + F5AEEBFF1D9CF5D889C7230BAE6F696939BDF6D7BAABACA87A567279647C320F + A8B16DA1BBD7B3A47FA5850168EB702C596C6CA2AA2EFA332E187F0080F1503E + 182A98A90000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001EC4944415478DA + A5934B6813511486BF541B88CD26620DA262A51BDB8520158308D5852055B01B + A3E8CEBD2E7CE063512852D09D2E82E04604AB1B5D4451B059D8A6010D84D842 + 5B6B6B1A8D414A4C9B18EB4C27F3F466D41943ED4233309C3BDC39DFFFDF9F7B + 3C9665D1C8E379323CD510C1061C3DD0697F48C531BEE7A7EDB57F6B072DADBB + 9C1F4DE154D74D34DD70DE43272FB9805AF3975484E56F1A856289C2D23CFB4F + 44D8D4BE17DD30B932A8D629B7358D70F7C1D39F8023FBB6917B35C0D78F590C + 43EC5A06954A8505A5C4B1CB2947F14F07D158D205F48436F03E761E640FEB7C + 3ED660204B3263B9597A2F24ED866B8F59DD414F28C8E7443FDE6A55A883AAA9 + 28F232F3FA7ABA8EDFAC53FEBD1E1A4DBB805A0685370F91E65E0880084BD358 + 9255CCB65EDAF784571E413378F97ABC1E90C8C6C88EDC6687E9150EAAA415D8 + BCFB14DD9D875734D76A2235E102B674A85C1CEEA3B498E374F020A666727F21 + 4E662ECFDBAB19BBB9EFD6B3BA0C423B37BA80A4F188E733A32881327EA91991 + 22924FA7B9E427373B45FADCB4A3ACFD72929E78E702EE1506C8E68B18AD0AEA + 5A595C2F44A02D3495BD7CF8344EF2CC24D7EFC4567770361EA65C2EFCF5AA06 + 0241A2E1215BD5302DBB9AA24ECE645C4077D77606A3F17F9E0307D07F23F2FF + C3D4E838FF008E7263BE13CA147C0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end> + Left = 200 + Top = 8 + Bitmap = {} + end +end diff --git a/Source/Modulos/Contactos/Views/uViewDatosYSeleccionClienteBase.pas b/Source/Modulos/Contactos/Views/uViewDatosYSeleccionClienteBase.pas new file mode 100644 index 0000000..8065a49 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewDatosYSeleccionClienteBase.pas @@ -0,0 +1,315 @@ +unit uViewDatosYSeleccionClienteBase; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, StdCtrls, cxControls, cxContainer, cxEdit, cxLabel, + cxDBLabel, ExtCtrls, DB, uDADataTable, uBizContactos, uClientesController, + uDAInterfaces, uBizDireccionesContacto, + uDireccionesContactoController, uBizContactosPersonal, ImgList, PngImageList, + ActnList, dxLayoutControl, Buttons; + +type + IViewDatosYSeleccionClienteBase = interface(IViewBase) + ['{EC1BAC23-95A7-469F-8E86-939C149C4528}'] + function GetCliente: IBizCliente; + procedure SetCliente(Value: IBizCliente); + property Cliente: IBizCliente read GetCliente write SetCliente; + + function GetID_Cliente: integer; + procedure SetID_Cliente(const Value: integer); + property ID_Cliente: integer read GetID_Cliente write SetID_Cliente; + + function GetOnClienteChanged : TNotifyEvent; + procedure SetOnClienteChanged (const Value : TNotifyEvent); + property OnClienteChanged : TNotifyEvent read GetOnClienteChanged + write SetOnClienteChanged; + + procedure ElegirPersonaContacto; + procedure ElegirDireccionCliente; + procedure ElegirCliente; + procedure VerFichaCliente; + procedure AnadirNuevoCliente; + end; + + TfrViewDatosYSeleccionClienteBase = class(TfrViewBase, IViewDatosYSeleccionClienteBase) + dsCliente: TDADataSource; + ActionList1: TActionList; + actElegirContacto: TAction; + actAnadirContacto: TAction; + actVerContacto: TAction; + PngImageList: TPngImageList; + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + actElegirDireccion: TAction; + actElegirPersonaContacto: TAction; + Panel1: TPanel; + bElegirCliente: TBitBtn; + bNuevoCliente: TBitBtn; + bVerFicha: TBitBtn; + bvSeparador: TBevel; + procedure actElegirContactoExecute(Sender: TObject); + procedure actAnadirContactoExecute(Sender: TObject); + procedure edtPersonaContactoPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure edtDireccionPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure actVerContactoExecute(Sender: TObject); + procedure actElegirDireccionUpdate(Sender: TObject); + procedure actElegirDireccionExecute(Sender: TObject); + procedure actElegirPersonaContactoExecute(Sender: TObject); + procedure actElegirPersonaContactoUpdate(Sender: TObject); + + private + FOnClienteChanged : TNotifyEvent; + FMsgElegirCliente: String; + FMsgElegirDireccion: String; + FMsgElegirPersonaContacto: String; + protected + FClientesController : IClientesController; + FDireccionesController : IDireccionesContactoController; + + FCliente : IBizCliente; + FDireccion : IBizDireccionesContacto; + FPersonaContacto : IBizContactoPersonal; + + function GetCliente: IBizCliente; virtual; + procedure SetCliente(Value: IBizCliente); virtual; + function GetOnClienteChanged : TNotifyEvent; + procedure SetOnClienteChanged (const Value : TNotifyEvent); + procedure SetReadOnly(Value: Boolean); override; + function GetID_Cliente: integer; virtual; + procedure SetID_Cliente(const Value: integer); virtual; + + procedure InicializarMensajes; virtual; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + + procedure ElegirPersonaContacto; virtual; + procedure ElegirDireccionCliente; virtual; + procedure ElegirCliente; virtual; + procedure VerFichaCliente; virtual; + procedure AnadirNuevoCliente; virtual; + + property Cliente: IBizCliente read GetCliente write SetCliente; + property OnClienteChanged : TNotifyEvent read GetOnClienteChanged write SetOnClienteChanged; + property ID_Cliente: integer read GetID_Cliente write SetID_Cliente; + end; + +implementation + +{$R *.dfm} + +uses + uDataModuleClientes, Math, uCustomView, uDialogUtils; + + +procedure TfrViewDatosYSeleccionClienteBase.actElegirContactoExecute(Sender: TObject); +begin + ElegirCliente; +end; + +procedure TfrViewDatosYSeleccionClienteBase.actElegirDireccionExecute( + Sender: TObject); +begin + inherited; + ElegirDireccionCliente; +end; + +procedure TfrViewDatosYSeleccionClienteBase.actElegirDireccionUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := Assigned(FCliente.Direcciones) and + (FCliente.Direcciones.Active) and (FCliente.Direcciones.RecordCount > 0); +end; + +procedure TfrViewDatosYSeleccionClienteBase.actElegirPersonaContactoExecute( + Sender: TObject); +begin + inherited; + ElegirPersonaContacto; +end; + +procedure TfrViewDatosYSeleccionClienteBase.actElegirPersonaContactoUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := Assigned(FCliente.Personal) and + (FCliente.Personal.Active) and (FCliente.Personal.RecordCount > 0); +end; + +procedure TfrViewDatosYSeleccionClienteBase.actAnadirContactoExecute( + Sender: TObject); +begin + AnadirNuevoCliente; +end; + +procedure TfrViewDatosYSeleccionClienteBase.actVerContactoExecute( + Sender: TObject); +begin + inherited; + VerFichaCliente; +end; + +procedure TfrViewDatosYSeleccionClienteBase.AnadirNuevoCliente; +var + ACliente : IBizCliente; +begin + inherited; + ACliente := (FClientesController.Nuevo as IBizCliente); + FClientesController.Ver(ACliente); + Self.Cliente := ACliente; +end; + +constructor TfrViewDatosYSeleccionClienteBase.Create(AOwner: TComponent); +begin + inherited; + + FClientesController := TClientesController.Create; + FDireccionesController := TDireccionesContactoController.Create; + + FPersonaContacto := NIL; + FDireccion := NIL; + FCliente := NIL; +end; + +destructor TfrViewDatosYSeleccionClienteBase.Destroy; +begin + FPersonaContacto := NIL; + FDireccion := NIL; + FCliente := NIL; + + FClientesController := NIL; + FDireccionesController := NIL; + inherited; +end; + +procedure TfrViewDatosYSeleccionClienteBase.edtDireccionPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + inherited; + ElegirDireccionCliente; +end; + +procedure TfrViewDatosYSeleccionClienteBase.edtPersonaContactoPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + inherited; + ElegirPersonaContacto; +end; + +procedure TfrViewDatosYSeleccionClienteBase.ElegirCliente; +var + ACliente : IBizCliente; +begin + inherited; + ACliente := (FClientesController.ElegirContacto(FClientesController.BuscarTodos, FMsgElegirCliente, False) as IBizCliente); + + if Assigned(ACliente) then + Self.Cliente := ACliente; + ACliente := Nil; +end; + +procedure TfrViewDatosYSeleccionClienteBase.ElegirDireccionCliente; +var + ADireccion : IBizDireccionesContacto; +begin + inherited; + ADireccion := FClientesController.ElegirDireccionEntrega(FCliente, FMsgElegirDireccion); + + if Assigned(ADireccion) then + FDireccion := ADireccion; +end; + +procedure TfrViewDatosYSeleccionClienteBase.ElegirPersonaContacto; +var + APersona : IBizContactoPersonal; +begin + inherited; + APersona := FClientesController.ElegirPersonaContacto(FCliente.Personal, FMsgElegirPersonaContacto); + if Assigned(APersona) then + FPersonaContacto := APersona; +end; + +function TfrViewDatosYSeleccionClienteBase.GetCliente: IBizCliente; +begin + Result := FCliente; +end; + +function TfrViewDatosYSeleccionClienteBase.GetID_Cliente: integer; +begin + Result := -1; + if Assigned(FCliente) then + Result := FCliente.ID; +end; + +procedure TfrViewDatosYSeleccionClienteBase.SetCliente(Value: IBizCliente); +begin + FCliente := Value; + if Assigned(FCliente) then + begin + dsCliente.DataTable := FCliente.DataTable; + + if not FCliente.DataTable.Active then + FCliente.DataTable.Active := True; + end + else begin + dsCliente.DataTable := NIL; + FCliente := NIL; + FDireccion := NIL; + FPersonaContacto := NIL; + end; + + if Assigned(FOnClienteChanged) then + FOnClienteChanged(Self); +end; + +procedure TfrViewDatosYSeleccionClienteBase.SetID_Cliente(const Value: integer); +begin + Self.Cliente := IBizCliente(FClientesController.Buscar(Value)); +end; + +function TfrViewDatosYSeleccionClienteBase.GetOnClienteChanged: TNotifyEvent; +begin + Result := FOnClienteChanged; +end; + +procedure TfrViewDatosYSeleccionClienteBase.InicializarMensajes; +begin + FMsgElegirCliente := 'Elija el cliente que desea utilizar.'; + FMsgElegirPersonaContacto := 'El cliente dispone de personas de contacto dadas de alta en su ficha. Seleccione la que quiere utilizar.'; + FMsgElegirDireccion := 'El cliente dispone de direcciones de contacto dadas de alta en su ficha. Seleccione la que quiere utilizar.'; +end; + +procedure TfrViewDatosYSeleccionClienteBase.SetOnClienteChanged( + const Value: TNotifyEvent); +begin + FOnClienteChanged := Value; +end; + +procedure TfrViewDatosYSeleccionClienteBase.SetReadOnly(Value: Boolean); +begin + inherited; + + if (csLoading in Self.ComponentState) then + Exit; + + actAnadirContacto.Enabled := not ReadOnly; + actElegirContacto.Enabled := not ReadOnly; + actElegirDireccion.Enabled := not ReadOnly; + actElegirPersonaContacto.Enabled := not ReadOnly; +end; + +procedure TfrViewDatosYSeleccionClienteBase.VerFichaCliente; +begin + if not Assigned(Cliente) then + ShowErrorMessage('No se ha indicado un cliente', '') + else begin + FClientesController.Ver(Cliente); + end; +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uViewDatosYSeleccionProveedor.dcu b/Source/Modulos/Contactos/Views/uViewDatosYSeleccionProveedor.dcu new file mode 100644 index 0000000..c4cf6b0 Binary files /dev/null and b/Source/Modulos/Contactos/Views/uViewDatosYSeleccionProveedor.dcu differ diff --git a/Source/Modulos/Contactos/Views/uViewDatosYSeleccionProveedor.dfm b/Source/Modulos/Contactos/Views/uViewDatosYSeleccionProveedor.dfm new file mode 100644 index 0000000..2e122ab --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewDatosYSeleccionProveedor.dfm @@ -0,0 +1,668 @@ +inherited frViewDatosYSeleccionProveedor: TfrViewDatosYSeleccionProveedor + Width = 350 + Height = 202 + ExplicitWidth = 350 + ExplicitHeight = 202 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 350 + Height = 211 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 0 + Margins.Bottom = 0 + Align = alTop + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + DesignSize = ( + 350 + 211) + object edtlNombre: TcxDBTextEdit + Left = 64 + Top = 41 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'NOMBRE' + DataBinding.DataSource = DADataSource + Enabled = False + ParentFont = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 2 + Height = 21 + Width = 276 + end + object edtNIFCIF: TcxDBTextEdit + Left = 64 + Top = 68 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'NIF_CIF' + DataBinding.DataSource = DADataSource + Enabled = False + ParentFont = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 3 + Height = 21 + Width = 562 + end + object edtCalle: TcxDBTextEdit + Left = 64 + Top = 95 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'CALLE' + DataBinding.DataSource = DADataSource + Enabled = False + ParentFont = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 4 + Height = 21 + Width = 562 + end + object edtPoblacion: TcxDBTextEdit + Left = 64 + Top = 122 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'POBLACION' + DataBinding.DataSource = DADataSource + Enabled = False + ParentFont = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 5 + Height = 21 + Width = 177 + end + object edtProvincia: TcxDBTextEdit + Left = 64 + Top = 149 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'PROVINCIA' + DataBinding.DataSource = DADataSource + Enabled = False + ParentFont = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 7 + Height = 21 + Width = 327 + end + object edtCodigoPostal: TcxDBTextEdit + Left = 258 + Top = 122 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'CODIGO_POSTAL' + DataBinding.DataSource = DADataSource + Enabled = False + ParentFont = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 6 + Height = 21 + Width = 82 + end + object Button1: TBitBtn + Left = 10 + Top = 10 + Width = 120 + Height = 25 + Action = actElegirContacto + Caption = 'Elegir un proveedor' + TabOrder = 0 + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FF00FF00FF00 + FF00FF00FF00EB00EB00C507C600AB13AD00A119A2009F19A000A215A400AA10 + AC00B608B800CE00CE00EF00EF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00B118C10040407B00344A830031498F002F4596002F4499002F4597003148 + 900033498500374678005A3E5300D201D200FF00FF00FF00FF00FF00FF00FF00 + FF004E42860035508100314990002E429C002C3CA6002B3AAA002B3BA7002D40 + 9E0030479200344F840038577500A0189F00FF00FF00FF00FF00FF00FF00FF00 + FF004C428900334D89002F4499002B3CA8002835B4002631BB002734B6002A3A + AB002E429C00324B8C0036537B00B015B100FF00FF00FF00FF00FF00FF00FF00 + FF008726B300324A8D002D409E002938AF003138B6007A7BCB002830BF002835 + B2002D3FA10031499000483B8700EC01EC00FF00FF00FF00FF00FF00FF00FF00 + FF00F002F60051379D002D409F002937B000808AA300D2D3D3008181BB002834 + B2002D3FA2003A3F9300C511CE00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00EE02F4007324B7003C359300598CAE00498CBB004A81A600392A + 71005929A600D608E100FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00EA0CF400608CD00054A2D80053A1D6004F9DD300488B + C2009D11AC00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF008C67DE005CA9DD005CA9DD005AA7DC0056A4D900519F + D400565FAB00EA00EA00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00EC0DF60060A7DE0063B0E30063B0E30061AEE1005CA9DD0056A4 + D9004E94CC00C105C600FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00C532ED0066B2E5006BB7E9006BB7E90067B3E60061AEE1005AA7 + DC00539FD500A817BE00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00BA3AE7004989B1004A85AC005895BD0068B2E30064B0E4005CA9 + DE0053A0D400AA1BC300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00CA23E8005098C400539AC7004E93BE00437DA2005190BA005198 + C6003C79A000BE08C300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00F804FC006995D40062ACDA005DA6D3005299C6004284AD003C7F + A900535AA100F300F300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00C140ED0071BAEA0068B2E00059A1CF004990BC004378 + AA00C315D600FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00C83EF000808BDF00668BCC007C60C700D116 + E400FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} + end + object Button2: TBitBtn + Left = 136 + Top = 10 + Width = 149 + Height = 25 + Action = actAnadirContacto + Caption = 'Dar de alta un proveedor' + TabOrder = 1 + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00D5BFB1006947 + 3100694731006947310069473100694731006947310069473100694731006947 + 3100694731006947310069473100694731006947310069473100D5BFB100F6F2 + EF00B7A29300B7A29300B7A29300B7A29300B7A29300B7A29300B7A29300B7A2 + 9300B7A29300B7A29300B7A29300B7A29300B7A2930069473100D5BFB100271E + 80001C0D6F001C0D6F001C0D6F001C0D6F001C0D6F001C0D6F00271E8000E3D5 + CE00E0D1C900DFCFC600DCCBC100DBC9BF00B7A2930069473100D5BFB1005C51 + A8002F308B00352CA0003526A4003526A500332C9E002E2F8D001C0D6F00E7DB + D500A1745C00A1745C00A1745C00A1745C00B7A2930069473100D5BFB1008079 + BC00302E95003626A60044329B0045329E003727A700302C95001C0D6F00EAE0 + DA00E7DBD500E4D7D000E2D3CB00DFCFC600B7A2930069473100D5BFB100D1CD + E8004B41A700452D9400718FAB006F91A600463092001C0D6F00EFE8E300EDE4 + DF00A1745C00A1745C00A1745C00A1745C00B7A2930069473100D5BFB100FFFF + FF00C9B9DD004F9DA000559BC8004E96C2004E8E8F00B0A8C200F2ECE800EFE8 + E300EDE4DF00EAE0DA00E7DBD500E4D7D000B7A2930069473100D5BFB100FFFF + FF00A5CDE8005DA9DD005CA9DD0057A4D900519ACC00A0BACA00F5F0ED00F2EC + E800EFE8E300EDE4DF00EAE0DA00E7DBD500B7A2930069473100D5BFB100ECF6 + FA006CB9DF0065B1E50065B0E5005FABDF0056A2D700689EBE00F7F4F100F5F0 + ED00F2ECE800006000000060000000600000B7A2930069473100D5BFB100E9F6 + FA005BB0D5005CA6D50065AFDF0062AEE20058A3D8003285A700FAF8F600F7F4 + F100F7A073000060000033CB510000600000B7A2930069473100D5BFB100F4FA + FC0078C0DD0056A0CD00569DCA00539CCA00448DBB003285A700FDFCFB000060 + 0000006000000060000040D86500006000000060000000600000D5BFB100FFFF + FF00CEEAF40062B5DE005DA7D5004B92BE003285A700C6DCE600FFFFFF000060 + 000060F898005AF28F004DE57A0040D865003AD25C0000600000D5BFB100FFFF + FF00FFFFFF00CEEAF400A5CDE800A5CDE800CEEAF400FFFFFF00FFFFFF000060 + 000000600000006000005AF28F00006000000060000000600000D5BFB100D5BF + B100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BF + B100D5BFB1000060000060F8980000600000D5BFB100D5BFB100FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00006000000060000000600000FF00FF00FF00FF00} + end + object Button3: TBitBtn + Left = 142 + Top = 176 + Width = 198 + Height = 25 + Action = actVerContacto + Caption = 'Ver ficha completa del proveedor...' + TabOrder = 8 + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00D3BDAE006543 + 2E0065432E0065432E0065432E0065432E0065432E0065432E0065432E006543 + 2E0065432E0065432E0065432E0065432E0065432E0065432E00D3BDAE00F6F1 + EE00B49F8F00B49F8F00B49F8F00B49F8F00B49F8F00B49F8F00B49F8F00B49F + 8F00B49F8F00B49F8F00B49F8F00B49F8F00B49F8F0065432E00D3BDAE00241B + 7C00190B6B00190B6B00190B6B00190B6B00190B6B00190B6B00241B7C00E2D3 + CC00DFCFC700DECDC400DBC9BF00DAC7BD00B49F8F0065432E00D3BDAE00584D + A5002C2D870031299D003123A1003123A20030299B002B2C8900190B6B00E6DA + D3009E7058009E7058009E7058009E705800B49F8F0065432E00D3BDAE007C75 + B9002D2B92003223A300402F9800412F9B003324A4002D299200190B6B00E9DF + D800E6DAD300E3D5CE00E1D1C900DECDC400B49F8F0065432E00D3BDAE00CFCB + E700473DA400412A90006D8BA8006B8DA300422D8E00190B6B00EEE7E200ECE3 + DE009E7058009E7058009E7058009E705800B49F8F0065432E00D3BDAE00FFFF + FF00C7B6DC004B9A9D005198C6004A93C0004A8A8B00ADA5C000F1EBE700EEE7 + E200ECE3DE00E9DFD800E6DAD300E3D5CE00B49F8F0065432E00D3BDAE00FFFF + FF00A2CBE70059A6DC0058A6DC0053A1D7004D97CA009DB7C800F5EFEC00F1EB + E700EEE7E200ECE3DE00E9DFD800E6DAD300B49F8F0065432E00D3BDAE00EBF6 + FA0068B6DE0061AEE40061ADE4005BA8DE00529FD500649BBC00F7F4F000F5EF + EC00F1EBE700EEE7E200ECE3DE00E9DFD800B49F8F0065432E00D3BDAE00E8F6 + FA0057ADD30058A3D30061ACDE005EABE10054A0D6002F81A400FAF8F600F7F4 + F000F79D6F00F79D6F00F79D6F00F79D6F00B49F8F0065432E00D3BDAE00F4FA + FC0074BEDC00529DCB00529AC8004F99C8004089B8002F81A400FDFCFB00FAF8 + F600F7F4F000F5EFEC00F1EBE700EEE7E200B49F8F0065432E00D3BDAE00FFFF + FF00CCE9F4005EB2DD0059A4D300478EBC002F81A400C4DBE500FFFFFF00FDFC + FB00F79D6F00F79D6F00F79D6F00F79D6F00B49F8F0065432E00D3BDAE00FFFF + FF00FFFFFF00CCE9F400A2CBE700A2CBE700CCE9F400FFFFFF00FFFFFF00FFFF + FF00FEFEFD00FCFAF900F9F6F400F6F1EE00F2EDE90065432E00D3BDAE00D3BD + AE00D3BDAE00D3BDAE00D3BDAE00D3BDAE00D3BDAE00D3BDAE00D3BDAE00D3BD + AE00D3BDAE00D3BDAE00D3BDAE00D3BDAE00D3BDAE00D3BDAE00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item7: TdxLayoutItem + Caption = 'Button1' + ShowCaption = False + Control = Button1 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item8: TdxLayoutItem + Caption = 'Button2' + ShowCaption = False + Control = Button2 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item1: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Nombre:' + Control = edtlNombre + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item2: TdxLayoutItem + Caption = 'NIF/CIF' + Control = edtNIFCIF + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item3: TdxLayoutItem + Caption = 'Calle:' + Control = edtCalle + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group2: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item4: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Poblaci'#243'n:' + Control = edtPoblacion + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item6: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'C.P.:' + Control = edtCodigoPostal + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item5: TdxLayoutItem + Caption = 'Provincia:' + Control = edtProvincia + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item9: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'Button3' + ShowCaption = False + Control = Button3 + ControlOptions.ShowBorder = False + end + end + end + object DADataSource: TDADataSource + Left = 8 + Top = 160 + end + object ActionList1: TActionList + Images = PngImageList + Left = 40 + Top = 160 + object actElegirContacto: TAction + Caption = 'Elegir un proveedor' + ImageIndex = 1 + OnExecute = actElegirContactoExecute + end + object actAnadirContacto: TAction + Caption = 'Dar de alta un proveedor' + ImageIndex = 0 + OnExecute = actAnadirContactoExecute + end + object actVerContacto: TAction + Caption = 'Ver ficha completa del proveedor...' + ImageIndex = 2 + OnExecute = actVerContactoExecute + OnUpdate = actVerContactoUpdate + end + end + object PngImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000002254944415478DA95936D48535118 + C7FFB7E58535192C322B880A217A238841238212E94B048EA217E88B26158210 + 548322082422FD52862D30823230BF14A4511823D2185834B60537F37DA516B2 + B6B6E6BABB77F7DC97EE3DE6192303F7C0E1790E9CFFEFFFF0F01C0EA5443D0C + 567782B312D7DB3F642C55EF7DB41D1D1DF5686CEC446FDD1018A0B67A1BBD88 + 89287ECF0CD3BA7CFD56382A76CD3F3AC531485BFB499C3FD7CDEE0C60897F84 + FC90E608E28914E2D959EC3FE1C7DAAA3D1460394B8A8244364B8F5577DD1A9C + 071CDABB015383D7F1EB6B0C9A66620D0D994C06493985A39742283B6D638E67 + 2E57E37EEB407107073DAB301EB800E438ACB0DB613301393187E8F418BC17DF + 83A81AAE3D056E0ED871B8C98D6777C3B853D387078F9F2F002AF13DD80C5ECE + C39AB34214C89284597525DCC7DBA0AA3A85ACF139997311C09A413CD20D71E2 + 95D53F544290CD29D0377A51B5FB18155B670144888637EF3E160362810F087E + BB812D3A6F7690475806DCEB1AB0F940CD3F622B07434201E071AAE8F75DC1CF + A482CA861D20CB74241F0E6372F2337CE302155FBDFDA268273C3B5717008EC0 + 138CBEEC814BE621963B613397CC2ECE215596C7D854124D42843993BF9D8485 + 9102406A6FC1CC1701152A8FE50AE88EE6791D691BC1742C85B391105AEE05FE + DF41B4EE08D26971D1F575B91CA8ED7B4D5D35DDA05937F3A7D18902609F7B13 + BA7ADE96F4AFAC6080E6567FC962B68986B1E4CFB868FC01A6204E3EB3788BD6 + 0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AC400000AC401666D82D400000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000002B44944415478DA7D925F4853511C + C77F67F75EF7A799BB9A6E3A5B85A0203EA820F892502121119A523E14141A41 + F5A244819144E4430F452F99580385A4D0CC2009410B940CCC4CA60BB2F04F43 + 65B639B7DD6DF7EEFED93D9D2D144DE60F0E07CEF97D3FE7F7FBFE0EC218433C + 1042B01973AFAF5C0088DDF007B82CCF7AD0E15C70DFBF63774EC0B6D8D2FD0F + 70F65C6C345BD8673C1FD5F8FD41F0F903E0F571FCA8E34F4DE7E0FCC89E80BE + E6727D7E699ECBA0D7668A920CA15004DCDE0028B204EE7561AEA9FD5B19490D + 2707DCABA8CC31A70F531A0A045186154F042C19FBC1A803F8E5F2E0B61EE7C9 + F9656E2429E0537B75E34658B2CB0A02D6B41FF20F9A00A90A48621478418047 + 2FA71ABA865D5D4901939DD575D66C733FCD3089B398A2804CCA97451144318A + EFDA271BFBC7579203DEB41DCD2EC93FEC6252521204555549FF72C2038E8B28 + 35AD1F2A577DE2E89E5398B6D7F6A6A51ACE25920820168B5721C3C4ECEADCE5 + C79315E4D8BB27A0BBB9DC5A54689E326A198B4AEEE26D6C04C3D2ADE7D34D5F + 7EF83B928E311E2DD6828C9C5CE629C2A6B3D67A1B4A05F20722C49BDE0D9C6B + 084E3804E1EA8BEF4B33DB3FD416A0E550119B9E478F6762B590151408D5D543 + 71552DAC0DBC0561F01504F631E0A534A121257466646CE1E32E40EBF1D227AC + 1E5D677919D8A8025AD041E6892A08BF1F8010B1D46F60C8A2614DC4CB0FBE3A + 4A30877D3B00B74F95B94C14B699C8EB6904601463A0555490290491140A823A + 1A027A1AFC64B77B17EBD7C6BC7D3B00374F972DA6D2E8489AF84F6C9054A055 + 6222F156603410D652C011711CD4BDFCFB9AE7B3BB6307E0FCB1E24B590C7A98 + C150E946ACA2F8EB14B9520940A43410411A08A8587AA78DCDFE1C9A69C01276 + EE9A0219E5019D8D2E305A0C36D05384031A2C2AB2129579C52773FC6ACC4DD2 + 968826B0A9F90BC88690F0ED1F7E3F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001FA4944415478DA + A5934B6813511486BF342610A2C50A86A220150BA2145C58D120828ABA2AD2BA + F0B510C48D1B1154A828A55D5877825474AB45375D58A80B9385292DA8A8B151 + 6B6D8DB50F43C1B4C624364C1E73E7E19DA96408B50BCDC0E5CC65E6FFFE7FCE + DCE3324D936A2E577FE46355041BD076B0C9DE280B23E412E3F6FD9A4DDBF107 + 76965F3464524D33109A8E2A7459350E1FBFEC002CF1FCEB1EF28B82F98534C9 + 5C9203A7EFB2A1712F9A6E70A557AD706EA88970FFD1C012E0E8BECDCC3EEF22 + 33338DAECBA7A64E36FB8B5431C389EBB12557B93461D8CED6FE71F8A5036809 + AE271EBA0879177E9F0FB704284A9ED8B7498EB5476D71671F2B276809D63337 + D481B75892EEC86F5429140A7CD7D6D17CEA4E85B3D5070B181A8A3A00AB07C9 + B70F512643567E8410E4F22A46432B8D7B4E2E130BD9C4672F629580A9D02B86 + E76EB0CDF0CA0425A205D8B5F11C5B8F1C5A26B6D6F09B0F0E2058AB11B97495 + D44F95FAB34D881A831F0F26989A9EA0FDEB275B7CEDD6938A1EECDE117000FE + 701FF1A703D4153D28AB6B71E3C2A72C92F6A8C413292E8CBD2F3B8B3F67213A + 3AEE000AB7BB49CC8E11D03CAC92BFDB251D4A5E93B45B90984973FEDD08DDF7 + C22B27889D69239355FE7A54EBD6FA690D0FDAAEBA61DAD59075F4F31707B0BF + 790BBDFD83FF3C076540D7CD9EFF1FA66AC7F93783B161288AF0DFC000000000 + 49454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end> + Left = 72 + Top = 160 + Bitmap = {} + end +end diff --git a/Source/Modulos/Contactos/Views/uViewDatosYSeleccionProveedor.pas b/Source/Modulos/Contactos/Views/uViewDatosYSeleccionProveedor.pas new file mode 100644 index 0000000..f3fbc36 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewDatosYSeleccionProveedor.pas @@ -0,0 +1,265 @@ +unit uViewDatosYSeleccionProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, StdCtrls, cxControls, cxContainer, cxEdit, cxLabel, + cxDBLabel, ExtCtrls, DB, uDADataTable, uBizContactos, + ComCtrls, ToolWin, ActnList, ImgList, PngImageList, cxTextEdit, cxDBEdit, + pngimage, JvExControls, JvComponent, JvButton, JvTransparentButton, Mask, + DBCtrls, + uProveedoresController, dxLayoutControl, Buttons, uDAInterfaces; + +type + IViewDatosYSeleccionProveedor = interface(IViewBase) + ['{EE8C51BD-618D-4211-A247-6FA9BD8EBFD9}'] + function GetController: IProveedoresController; + procedure SetController(Value: IProveedoresController); + property Controller: IProveedoresController read GetController write SetController; + + function GetProveedor: IBizProveedor; + procedure SetProveedor(Value: IBizProveedor); + property Proveedor: IBizProveedor read GetProveedor write SetProveedor; + + function GetID_Proveedor: integer; + procedure SetID_Proveedor(const Value: integer); + property ID_Proveedor: integer read GetID_Proveedor write SetID_Proveedor; + + function GetOnProveedorChanged : TNotifyEvent; + procedure SetOnProveedorChanged (const Value : TNotifyEvent); + property OnProveedorChanged : TNotifyEvent read GetOnProveedorChanged + write SetOnProveedorChanged; + + function GetMsgElegirProveedor: String; + procedure SetMsgElegirProveedor(const Value: String); + property MsgElegirProveedor : String read GetMsgElegirProveedor + write SetMsgElegirProveedor; + end; + + TfrViewDatosYSeleccionProveedor = class(TfrViewBase, IViewDatosYSeleccionProveedor) + DADataSource: TDADataSource; + ActionList1: TActionList; + actElegirContacto: TAction; + actAnadirContacto: TAction; + actVerContacto: TAction; + PngImageList: TPngImageList; + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Item1: TdxLayoutItem; + edtlNombre: TcxDBTextEdit; + dxLayoutControl1Item2: TdxLayoutItem; + edtNIFCIF: TcxDBTextEdit; + dxLayoutControl1Item3: TdxLayoutItem; + edtCalle: TcxDBTextEdit; + dxLayoutControl1Item4: TdxLayoutItem; + edtPoblacion: TcxDBTextEdit; + dxLayoutControl1Item5: TdxLayoutItem; + edtProvincia: TcxDBTextEdit; + dxLayoutControl1Item6: TdxLayoutItem; + edtCodigoPostal: TcxDBTextEdit; + Button1: TBitBtn; + dxLayoutControl1Item7: TdxLayoutItem; + Button2: TBitBtn; + dxLayoutControl1Item8: TdxLayoutItem; + Button3: TBitBtn; + dxLayoutControl1Item9: TdxLayoutItem; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Group2: TdxLayoutGroup; + procedure actElegirContactoExecute(Sender: TObject); + procedure actAnadirContactoExecute(Sender: TObject); + procedure actVerContactoExecute(Sender: TObject); + procedure actVerContactoUpdate(Sender: TObject); + private + FController : IProveedoresController; + FProveedor : IBizProveedor; + FOnProveedorChanged : TNotifyEvent; + FMsgElegirProveedor : String; + protected + function GetController: IProveedoresController; + procedure SetController(Value: IProveedoresController); + function GetProveedor: IBizProveedor; + procedure SetProveedor(Value: IBizProveedor); + function GetOnProveedorChanged : TNotifyEvent; + procedure SetOnProveedorChanged (const Value : TNotifyEvent); + function GetMsgElegirProveedor: String; + procedure SetMsgElegirProveedor(const Value: String); + procedure SetReadOnly(Value: Boolean); override; + function GetID_Proveedor: integer; + procedure SetID_Proveedor(const Value: integer); + + procedure ElegirProveedorInternal; virtual; + procedure VerFichaProveedorInternal; virtual; + procedure NuevoProveedorInternal; virtual; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + property MsgElegirProveedor : String read GetMsgElegirProveedor write SetMsgElegirProveedor; + property Controller: IProveedoresController read GetController write SetController; + property Proveedor: IBizProveedor read GetProveedor write SetProveedor; + property ID_Proveedor: integer read GetID_Proveedor write SetID_Proveedor; + property OnProveedorChanged : TNotifyEvent read GetOnProveedorChanged write SetOnProveedorChanged; + end; + +implementation + +{$R *.dfm} + +uses + uDataModuleProveedores, Math; + +procedure TfrViewDatosYSeleccionProveedor.actElegirContactoExecute(Sender: TObject); +begin + inherited; + ElegirProveedorInternal; +end; + +procedure TfrViewDatosYSeleccionProveedor.actAnadirContactoExecute( + Sender: TObject); +begin + inherited; + NuevoProveedorInternal +end; + +procedure TfrViewDatosYSeleccionProveedor.actVerContactoExecute(Sender: TObject); +begin + inherited; + VerFichaProveedorInternal; +end; + +procedure TfrViewDatosYSeleccionProveedor.actVerContactoUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (Length(edtlNombre.Text) > 0); +end; + +constructor TfrViewDatosYSeleccionProveedor.Create(AOwner: TComponent); +begin + inherited; + FMsgElegirProveedor := ''; + FController := NIL; +end; + +destructor TfrViewDatosYSeleccionProveedor.Destroy; +begin + FController := NIL; + inherited; +end; + +procedure TfrViewDatosYSeleccionProveedor.ElegirProveedorInternal; +var + AProveedor : IBizProveedor; +begin + inherited; + AProveedor := (Controller.ElegirContacto(Controller.BuscarTodos, + FMsgElegirProveedor, False) as IBizProveedor); + + if Assigned(AProveedor) then + begin + Self.Update; + ShowHourglassCursor; + try + Proveedor := AProveedor; + finally + HideHourglassCursor; + end; + end; +end; + +function TfrViewDatosYSeleccionProveedor.GetProveedor: IBizProveedor; +begin + Result := FProveedor; +end; + +procedure TfrViewDatosYSeleccionProveedor.NuevoProveedorInternal; +var + AProveedor : IBizProveedor; +begin + inherited; + AProveedor := (Controller.Nuevo as IBizProveedor); + Controller.Ver(AProveedor); + Proveedor := AProveedor; +end; + +function TfrViewDatosYSeleccionProveedor.GetController: IProveedoresController; +begin + if not Assigned(FController) then + FController := TProveedoresController.Create; + Result := FController; +end; + +function TfrViewDatosYSeleccionProveedor.GetID_Proveedor: integer; +begin + Result := -1; + if Assigned(FProveedor) then + Result := FProveedor.ID; +end; + +function TfrViewDatosYSeleccionProveedor.GetMsgElegirProveedor: String; +begin + Result := FMsgElegirProveedor; +end; + +procedure TfrViewDatosYSeleccionProveedor.SetProveedor(Value: IBizProveedor); +begin + FProveedor := Value; + if Assigned(FProveedor) then + begin + DADataSource.DataTable := FProveedor.DataTable; + if not FProveedor.DataTable.Active then + FProveedor.DataTable.Active := True; + end + else + DADataSource.DataTable := NIL; + + if Assigned(FOnProveedorChanged) then + FOnProveedorChanged(Self); +end; + +procedure TfrViewDatosYSeleccionProveedor.SetReadOnly(Value: Boolean); +begin + inherited; + + if (csLoading in Self.ComponentState) then + Exit; + + actAnadirContacto.Enabled := not ReadOnly; + actElegirContacto.Enabled := not ReadOnly; +end; + +procedure TfrViewDatosYSeleccionProveedor.VerFichaProveedorInternal; +begin + Controller.Ver(Proveedor); +end; + +procedure TfrViewDatosYSeleccionProveedor.SetController(Value: IProveedoresController); +begin + if Assigned(FController) then + FController := NIL; + + FController := Value; +end; + +procedure TfrViewDatosYSeleccionProveedor.SetID_Proveedor(const Value: integer); +begin + Self.Proveedor := IBizProveedor(Controller.Buscar(Value)); +end; + +procedure TfrViewDatosYSeleccionProveedor.SetMsgElegirProveedor( + const Value: String); +begin + FMsgElegirProveedor := Value; +end; + +function TfrViewDatosYSeleccionProveedor.GetOnProveedorChanged: TNotifyEvent; +begin + Result := FOnProveedorChanged; +end; + +procedure TfrViewDatosYSeleccionProveedor.SetOnProveedorChanged( + const Value: TNotifyEvent); +begin + FOnProveedorChanged := Value; +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uViewDireccion.dfm b/Source/Modulos/Contactos/Views/uViewDireccion.dfm new file mode 100644 index 0000000..a8deb64 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewDireccion.dfm @@ -0,0 +1,120 @@ +inherited frViewDireccion: TfrViewDireccion + Width = 384 + Height = 152 + ExplicitWidth = 384 + ExplicitHeight = 152 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 384 + Height = 152 + Align = alTop + ParentBackground = True + TabOrder = 0 + AutoContentSizes = [acsWidth, acsHeight] + DesignSize = ( + 384 + 152) + object eCalle: TcxDBTextEdit + Left = 96 + Top = 28 + DataBinding.DataField = 'CALLE' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 656 + end + object ePoblacion: TcxDBTextEdit + Left = 96 + Top = 55 + DataBinding.DataField = 'POBLACION' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Width = 405 + end + object eCodigoPostal: TcxDBTextEdit + Left = 96 + Top = 82 + DataBinding.DataField = 'CODIGO_POSTAL' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 2 + Width = 66 + end + object eProvincia: TcxDBTextEdit + Left = 96 + Top = 109 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'PROVINCIA' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 3 + Width = 585 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + Caption = 'Direcci'#243'n' + object dxLayoutControl1Item1: TdxLayoutItem + Caption = 'Direcci'#243'n:' + Control = eCalle + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group2: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item2: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Poblaci'#243'n:' + Control = ePoblacion + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item3: TdxLayoutItem + Caption = 'C'#243'digo postal:' + Control = eCodigoPostal + ControlOptions.MinWidth = 5 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item4: TdxLayoutItem + Caption = 'Provincia:' + Control = eProvincia + ControlOptions.ShowBorder = False + end + end + end + end + end + object DADataSource: TDADataSource + Left = 24 + Top = 32 + end +end diff --git a/Source/Modulos/Contactos/Views/uViewDireccion.pas b/Source/Modulos/Contactos/Views/uViewDireccion.pas new file mode 100644 index 0000000..c33bd09 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewDireccion.pas @@ -0,0 +1,39 @@ +unit uViewDireccion; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, StdCtrls, Mask, DBCtrls, DB, uDADataTable, ExtCtrls, + JvComponent, JvFormAutoSize, cxControls, cxContainer, cxEdit, cxTextEdit, + cxDBEdit, dxLayoutControl; + +type + TfrViewDireccion = class(TfrViewBase) + DADataSource: TDADataSource; + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Group1: TdxLayoutGroup; + eProvincia: TcxDBTextEdit; + eCalle: TcxDBTextEdit; + ePoblacion: TcxDBTextEdit; + eCodigoPostal: TcxDBTextEdit; + dxLayoutControl1Item1: TdxLayoutItem; + dxLayoutControl1Item2: TdxLayoutItem; + dxLayoutControl1Item3: TdxLayoutItem; + dxLayoutControl1Group2: TdxLayoutGroup; + dxLayoutControl1Item4: TdxLayoutItem; + protected + end; + +implementation + +{$R *.dfm} + +{initialization + RegisterClass(TfrViewDireccion); + +finalization + UnRegisterClass(TfrViewDireccion);} + +end. diff --git a/Source/Modulos/Contactos/Views/uViewDireccionesEntrega.dcu b/Source/Modulos/Contactos/Views/uViewDireccionesEntrega.dcu new file mode 100644 index 0000000..d29dab1 Binary files /dev/null and b/Source/Modulos/Contactos/Views/uViewDireccionesEntrega.dcu differ diff --git a/Source/Modulos/Contactos/Views/uViewDireccionesEntrega.dfm b/Source/Modulos/Contactos/Views/uViewDireccionesEntrega.dfm new file mode 100644 index 0000000..c1321bb --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewDireccionesEntrega.dfm @@ -0,0 +1,91 @@ +inherited frViewDireccionesEntrega: TfrViewDireccionesEntrega + Width = 583 + Height = 464 + ExplicitWidth = 583 + ExplicitHeight = 464 + inherited cxGrid: TcxGrid + Width = 583 + Height = 439 + ExplicitWidth = 583 + ExplicitHeight = 439 + inherited cxGridView: TcxGridDBTableView + OnDblClick = cxGridViewDblClick + OptionsData.Appending = False + OptionsData.Deleting = False + OptionsData.DeletingConfirmation = False + OptionsData.Editing = False + OptionsData.Inserting = False + object cxGridViewNOMBRE: TcxGridDBColumn + Caption = 'Nombre' + DataBinding.FieldName = 'NOMBRE' + Width = 88 + end + object cxGridViewDIRECCION: TcxGridDBColumn + Caption = 'Direcci'#243'n' + DataBinding.FieldName = 'CALLE' + PropertiesClassName = 'TcxTextEditProperties' + Width = 128 + end + object cxGridViewPOBLACION: TcxGridDBColumn + Caption = 'Poblaci'#243'n' + DataBinding.FieldName = 'POBLACION' + PropertiesClassName = 'TcxTextEditProperties' + BestFitMaxWidth = 64 + Width = 103 + end + object cxGridViewCP: TcxGridDBColumn + Caption = 'Cod. postal' + DataBinding.FieldName = 'CODIGO_POSTAL' + PropertiesClassName = 'TcxTextEditProperties' + Visible = False + Width = 76 + end + object cxGridViewPROVINCIA: TcxGridDBColumn + Caption = 'Provincia' + DataBinding.FieldName = 'PROVINCIA' + PropertiesClassName = 'TcxTextEditProperties' + Visible = False + BestFitMaxWidth = 64 + Width = 213 + end + object cxGridViewPERSONA_CONTACTO: TcxGridDBColumn + Caption = 'Persona de contacto' + DataBinding.FieldName = 'PERSONA_CONTACTO' + PropertiesClassName = 'TcxTextEditProperties' + Width = 92 + end + object cxGridViewTELEFONO: TcxGridDBColumn + DataBinding.FieldName = 'TELEFONO' + Width = 54 + end + object cxGridViewEMAIL: TcxGridDBColumn + DataBinding.FieldName = 'EMAIL' + Width = 50 + end + object cxGridViewPORTE: TcxGridDBColumn + DataBinding.FieldName = 'PORTE' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + Width = 54 + end + end + end + inherited ToolBar1: TToolBar + Width = 583 + ExplicitWidth = 583 + inherited ToolButton1: TToolButton + ExplicitWidth = 62 + end + inherited ToolButton4: TToolButton + ExplicitWidth = 74 + end + inherited ToolButton2: TToolButton + ExplicitWidth = 67 + end + inherited ToolButton7: TToolButton + ExplicitWidth = 117 + end + end +end diff --git a/Source/Modulos/Contactos/Views/uViewDireccionesEntrega.pas b/Source/Modulos/Contactos/Views/uViewDireccionesEntrega.pas new file mode 100644 index 0000000..1584ed9 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewDireccionesEntrega.pas @@ -0,0 +1,73 @@ +unit uViewDireccionesEntrega; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxTextEdit, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridBandedTableView, + cxGridDBBandedTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, + uDADataTable, Grids, DBGrids, ActnList, ImgList, PngImageList, ComCtrls, + ToolWin, cxGridDBTableView, uViewDetallesGenerico, cxCurrencyEdit, + uDAInterfaces; + +type + TfrViewDireccionesEntrega = class(TfrViewDetallesGenerico) + cxGridViewDIRECCION: TcxGridDBColumn; + cxGridViewPOBLACION: TcxGridDBColumn; + cxGridViewCP: TcxGridDBColumn; + cxGridViewPROVINCIA: TcxGridDBColumn; + cxGridViewPERSONA_CONTACTO: TcxGridDBColumn; + cxGridViewNOMBRE: TcxGridDBColumn; + cxGridViewTELEFONO: TcxGridDBColumn; + cxGridViewEMAIL: TcxGridDBColumn; + cxGridViewPORTE: TcxGridDBColumn; + procedure cxGridViewDblClick(Sender: TObject); + procedure actEliminarExecute(Sender: TObject); + protected + procedure AnadirInterno; override; + procedure ModificarInterno; override; + public + { Public declarations } + end; + +implementation + +{$R *.dfm} + +uses + uDialogUtils, uDireccionesContactoController, uBizDireccionesContacto; + +procedure TfrViewDireccionesEntrega.actEliminarExecute(Sender: TObject); +begin + if (ShowConfirmMessage('Eliminar una direccin', 'Desea eliminar esta direccin?') = IDYES) then + inherited; +end; + +procedure TfrViewDireccionesEntrega.AnadirInterno; +begin + inherited; + try + with TDireccionesContactoController.Create do + Ver((dsDetalles.DataTable) as IBizDireccionesContacto); + finally + if (dsDetalles.DataTable.State in dsEditModes) then + dsDetalles.DataTable.Post; + end; +end; + +procedure TfrViewDireccionesEntrega.cxGridViewDblClick(Sender: TObject); +begin + inherited; + actModificar.Execute; +end; + +procedure TfrViewDireccionesEntrega.ModificarInterno; +begin + inherited; + with TDireccionesContactoController.Create do + Ver((dsDetalles.DataTable) as IBizDireccionesContacto); +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uViewEmpleado.dcu b/Source/Modulos/Contactos/Views/uViewEmpleado.dcu new file mode 100644 index 0000000..064404e Binary files /dev/null and b/Source/Modulos/Contactos/Views/uViewEmpleado.dcu differ diff --git a/Source/Modulos/Contactos/Views/uViewEmpleado.dfm b/Source/Modulos/Contactos/Views/uViewEmpleado.dfm new file mode 100644 index 0000000..97a2bae --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewEmpleado.dfm @@ -0,0 +1,368 @@ +inherited frViewEmpleado: TfrViewEmpleado + Width = 673 + Height = 424 + OnCreate = CustomViewCreate + OnDestroy = CustomViewDestroy + ExplicitWidth = 673 + ExplicitHeight = 424 + inherited dxLayoutControlContacto: TdxLayoutControl + Width = 673 + Height = 424 + ExplicitWidth = 673 + ExplicitHeight = 424 + inherited PngSpeedButton1: TPngSpeedButton + Left = 611 + ExplicitLeft = 611 + end + inherited PngSpeedButton2: TPngSpeedButton + Left = 611 + ExplicitLeft = 611 + end + inherited PngSpeedButton3: TPngSpeedButton + Left = 611 + ExplicitLeft = 611 + end + inherited eCalle: TcxDBTextEdit + Left = 121 + Top = 247 + TabOrder = 8 + ExplicitLeft = 121 + ExplicitTop = 247 + ExplicitWidth = 239 + Width = 239 + end + inherited cbProvincia: TcxDBComboBox + Left = 121 + Top = 274 + TabOrder = 9 + ExplicitLeft = 121 + ExplicitTop = 274 + ExplicitWidth = 138 + Width = 138 + end + inherited cbPoblacion: TcxDBComboBox + Left = 121 + Top = 301 + TabOrder = 11 + ExplicitLeft = 121 + ExplicitTop = 301 + ExplicitWidth = 239 + Width = 239 + end + inherited eCodigoPostal: TcxDBTextEdit + Left = 285 + Top = 274 + TabOrder = 10 + ExplicitLeft = 285 + ExplicitTop = 274 + end + inherited eObservaciones: TcxDBMemo + Top = 385 + TabOrder = 22 + ExplicitTop = 385 + ExplicitWidth = 629 + ExplicitHeight = 38 + Height = 38 + Width = 629 + end + object eFechaNacimiento: TcxDBDateEdit [8] + Left = 121 + Top = 82 + DataBinding.DataField = 'FECHA_NACIMIENTO' + DataBinding.DataSource = dsContacto + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 3 + Width = 239 + end + object eFechaAltaEmpresa: TcxDBDateEdit [9] + Left = 121 + Top = 109 + DataBinding.DataField = 'FECHA_ALTA_EMPRESA' + DataBinding.DataSource = dsContacto + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 4 + Width = 239 + end + object cbCategoria: TcxDBComboBox [10] + Left = 121 + Top = 136 + DataBinding.DataField = 'CATEGORIA' + DataBinding.DataSource = dsContacto + Properties.ImmediatePost = True + Properties.OnInitPopup = cbCategoriaPropertiesInitPopup + Properties.OnValidate = cbCategoriaPropertiesValidate + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 5 + Width = 239 + end + object cbContrato: TcxDBComboBox [11] + Left = 475 + Top = 280 + DataBinding.DataField = 'CONTRATO' + DataBinding.DataSource = dsContacto + Properties.ImmediatePost = True + Properties.ImmediateUpdateText = True + Properties.OnInitPopup = cbContratoPropertiesInitPopup + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 20 + Width = 166 + end + object eDuracionContrato: TcxDBTextEdit [12] + Left = 475 + Top = 307 + DataBinding.DataField = 'DURACION' + DataBinding.DataSource = dsContacto + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 21 + Width = 166 + end + inherited eTlfParticular: TcxDBTextEdit + Left = 475 + TabOrder = 14 + ExplicitLeft = 475 + ExplicitWidth = 166 + Width = 166 + end + inherited eTlfTrabajo: TcxDBTextEdit + Left = 475 + TabOrder = 13 + ExplicitLeft = 475 + ExplicitWidth = 166 + Width = 166 + end + inherited eTlfMovil: TcxDBTextEdit + Left = 475 + TabOrder = 15 + ExplicitLeft = 475 + ExplicitWidth = 166 + Width = 166 + end + inherited eFax: TcxDBTextEdit + Left = 475 + TabOrder = 16 + ExplicitLeft = 475 + ExplicitWidth = 166 + Width = 166 + end + inherited eNombre: TcxDBTextEdit + Left = 121 + ExplicitLeft = 121 + ExplicitWidth = 239 + Width = 239 + end + inherited eNIFCIF: TcxDBTextEdit + Left = 225 + ExplicitLeft = 225 + ExplicitWidth = 126 + Width = 126 + end + inherited eMailTrabajo: TcxDBHyperLinkEdit + Left = 475 + Properties.Prefix = 'mailto:' + TabOrder = 17 + ExplicitLeft = 475 + ExplicitWidth = 137 + Width = 137 + end + inherited eMailParticular: TcxDBHyperLinkEdit + Left = 475 + Properties.Prefix = 'mailto:' + TabOrder = 18 + ExplicitLeft = 475 + ExplicitWidth = 137 + Width = 137 + end + inherited ePaginaWeb: TcxDBHyperLinkEdit + Left = 475 + TabOrder = 19 + ExplicitLeft = 475 + ExplicitWidth = 137 + Width = 137 + end + inherited eReferencia: TcxDBTextEdit + Left = 121 + ExplicitLeft = 121 + ExplicitWidth = 73 + Width = 73 + end + inherited ePersonaContacto: TcxDBTextEdit + Left = 121 + Top = 328 + TabOrder = 12 + ExplicitLeft = 121 + ExplicitTop = 328 + ExplicitWidth = 239 + Width = 239 + end + object eFechaBaja: TcxDBDateEdit [24] + Left = 121 + Top = 163 + DataBinding.DataField = 'FECHA_BAJA' + DataBinding.DataSource = dsContacto + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 6 + Width = 229 + end + object eCausaBaja: TcxDBTextEdit [25] + Left = 121 + Top = 190 + DataBinding.DataField = 'CAUSA_BAJA' + DataBinding.DataSource = dsContacto + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 7 + Width = 229 + end + inherited dxLayoutControlContactoGroup_Root: TdxLayoutGroup + inherited dxLayoutControlContactoGroup9: TdxLayoutGroup + inherited dxLayoutControlContactoGroup4: TdxLayoutGroup + inherited dxLayoutControlContactoGroup1: TdxLayoutGroup + inherited dxLayoutControlContactoGroup16: TdxLayoutGroup + inherited dxLayoutControlContactoItem14: TdxLayoutItem + Caption = 'DNI:' + end + end + inherited dxLayoutControlContactoItem13: TdxLayoutItem + Caption = 'Nombre y apellidos:' + end + object dxLayoutControlContactoItem16: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Fecha nacimiento:' + Control = eFechaNacimiento + ControlOptions.ShowBorder = False + end + object dxLayoutControlContactoItem19: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Fecha de alta:' + Control = eFechaAltaEmpresa + ControlOptions.ShowBorder = False + end + object dxLayoutControlContactoItem20: TdxLayoutItem + Caption = 'Categor'#237'a:' + Control = cbCategoria + ControlOptions.ShowBorder = False + end + object dxLayoutControlContactoItem23: TdxLayoutItem + Caption = 'Fecha de baja:' + Control = eFechaBaja + ControlOptions.ShowBorder = False + end + object dxLayoutControlContactoItem24: TdxLayoutItem + Caption = 'Causa de baja:' + Control = eCausaBaja + ControlOptions.ShowBorder = False + end + end + inherited dxLayoutControlContactoGroup3: TdxLayoutGroup + inherited dxLayoutControlContactoItem167: TdxLayoutItem + Visible = False + end + end + end + inherited dxLayoutControlContactoGroup6: TdxLayoutGroup + inherited dxLayoutControlContactoGroup2: TdxLayoutGroup + inherited dxLayoutControlContactoItem10: TdxLayoutItem + Caption = 'Tlf. trabajo:' + Visible = False + end + inherited dxLayoutControlContactoItem9: TdxLayoutItem + Caption = 'Tlf. particular:' + end + inherited dxLayoutControlContactoItem12: TdxLayoutItem + Visible = False + end + end + inherited dxLayoutControlContactoGroup5: TdxLayoutGroup + Visible = False + end + object dxLayoutControlContactoGroup14: TdxLayoutGroup + Caption = 'Contrato' + object dxLayoutControlContactoItem21: TdxLayoutItem + Caption = 'Tipo de contrato:' + Control = cbContrato + ControlOptions.ShowBorder = False + end + object dxLayoutControlContactoItem22: TdxLayoutItem + Caption = 'Duraci'#243'n:' + Control = eDuracionContrato + ControlOptions.ShowBorder = False + end + end + end + end + end + end + inherited dsContacto: TDADataSource + Left = 32 + Top = 80 + end +end diff --git a/Source/Modulos/Contactos/Views/uViewEmpleado.pas b/Source/Modulos/Contactos/Views/uViewEmpleado.pas new file mode 100644 index 0000000..3e71a56 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewEmpleado.pas @@ -0,0 +1,127 @@ +unit uViewEmpleado; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewContacto, dxLayoutLookAndFeels, DB, uDADataTable, + dxLayoutControl, cxMemo, cxDBEdit, cxContainer, cxEdit, cxTextEdit, cxControls, + cxMaskEdit, cxSpinEdit, ImgList, PngImageList, ActnList, cxHyperLinkEdit, + Buttons, PngSpeedButton, cxDropDownEdit, cxCalendar, cxGraphics, uGruposEmpleadoController, + uDAInterfaces; + +type + IViewEmpleado = interface(IViewContacto) + ['{245F4A36-39A4-4081-9826-F05FBBC729AE}'] + end; + + TfrViewEmpleado = class(TfrViewContacto, IViewEmpleado) + eFechaNacimiento: TcxDBDateEdit; + dxLayoutControlContactoItem16: TdxLayoutItem; + dxLayoutControlContactoItem19: TdxLayoutItem; + eFechaAltaEmpresa: TcxDBDateEdit; + dxLayoutControlContactoItem20: TdxLayoutItem; + cbCategoria: TcxDBComboBox; + dxLayoutControlContactoItem21: TdxLayoutItem; + cbContrato: TcxDBComboBox; + dxLayoutControlContactoItem22: TdxLayoutItem; + eDuracionContrato: TcxDBTextEdit; + dxLayoutControlContactoGroup14: TdxLayoutGroup; + dxLayoutControlContactoItem23: TdxLayoutItem; + eFechaBaja: TcxDBDateEdit; + dxLayoutControlContactoItem24: TdxLayoutItem; + eCausaBaja: TcxDBTextEdit; + procedure CustomViewCreate(Sender: TObject); + procedure CustomViewDestroy(Sender: TObject); + procedure cbCategoriaPropertiesInitPopup(Sender: TObject); + procedure cbCategoriaPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure cbContratoPropertiesInitPopup(Sender: TObject); + protected + FGrupoController: IGruposEmpleadoController; + public + { Public declarations } + end; + +implementation +{$R *.dfm} + +uses + uBizGruposEmpleado, uBizContactos, uEmpleadosController; + +procedure TfrViewEmpleado.cbCategoriaPropertiesInitPopup(Sender: TObject); +begin + inherited; + with cbCategoria.Properties.Items do + begin + ShowHourglassCursor; + BeginUpdate; + try + Clear; + AddStrings(FGrupoController.DarListaGruposEmpleado); + finally + EndUpdate; + HideHourglassCursor; + end; + end; +end; + +procedure TfrViewEmpleado.cbCategoriaPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); +var + AGrupo : IBizGrupoEmpleado; +begin + inherited; + with (Sender as TcxDBComboBox) do + begin + if (Length(DisplayValue) > 0) and (DisplayValue <> (Contacto as IBizEmpleado).CATEGORIA) then + if Properties.LookupItems.IndexOf(DisplayValue) < 0 then + begin + ShowHourglassCursor; + Properties.LookupItems.BeginUpdate; + AGrupo := FGrupoController.BuscarTodos; + AGrupo.DataTable.Active := True; + try + FGrupoController.Anadir(AGrupo); + AGrupo.DESCRIPCION := DisplayValue; + FGrupoController.Guardar(AGrupo); + Properties.LookupItems.Add(DisplayValue); + finally + Properties.LookupItems.EndUpdate; + AGrupo := NIL; + HideHourglassCursor; + end; + end; + end; +end; + +procedure TfrViewEmpleado.cbContratoPropertiesInitPopup(Sender: TObject); +begin + inherited; + with cbContrato.Properties.Items do + begin + ShowHourglassCursor; + BeginUpdate; + try + Clear; + AddStrings((FController as IEmpleadosController).DarListaContratosEmpleado); + finally + EndUpdate; + HideHourglassCursor; + end; + end; +end; + +procedure TfrViewEmpleado.CustomViewCreate(Sender: TObject); +begin + inherited; + FGrupoController := TGruposEmpleadoController.Create; +end; + +procedure TfrViewEmpleado.CustomViewDestroy(Sender: TObject); +begin + FGrupoController := NIL; + inherited; +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uViewEmpleados.dcu b/Source/Modulos/Contactos/Views/uViewEmpleados.dcu new file mode 100644 index 0000000..f968c47 Binary files /dev/null and b/Source/Modulos/Contactos/Views/uViewEmpleados.dcu differ diff --git a/Source/Modulos/Contactos/Views/uViewEmpleados.dfm b/Source/Modulos/Contactos/Views/uViewEmpleados.dfm new file mode 100644 index 0000000..5c7682c --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewEmpleados.dfm @@ -0,0 +1,234 @@ +inherited frViewEmpleados: TfrViewEmpleados + inherited cxGrid: TcxGrid + RootLevelOptions.DetailTabsPosition = dtpTop + OnActiveTabChanged = cxGridActiveTabChanged + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = '0 agentes' + Kind = skCount + FieldName = 'ID' + Column = cxGridViewNIF_CIF + end> + inherited cxGridViewICONO: TcxGridDBColumn + VisibleForCustomization = False + end + inherited cxGridViewNIF_CIF: TcxGridDBColumn + Caption = 'DNI' + end + inherited cxGridViewNOMBRE: TcxGridDBColumn + Caption = 'Nombre y apellidos' + end + inherited cxGridViewTELEFONO_1: TcxGridDBColumn + Visible = False + VisibleForCustomization = False + end + inherited cxGridViewTELEFONO_2: TcxGridDBColumn + Visible = True + end + inherited cxGridViewEMAIL_1: TcxGridDBColumn + Visible = False + end + object cxGridViewFECHA_BAJA: TcxGridDBColumn + Caption = 'Fecha de baja' + DataBinding.FieldName = 'FECHA_BAJA' + end + end + inherited cxGridLevel: TcxGridLevel + Caption = 'Todos' + end + object cxGridLevel1: TcxGridLevel + Caption = 'Activos' + end + object cxGridLevel2: TcxGridLevel + Caption = 'Inactivos' + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + inherited TBXDockablePanel1: TTBXDockablePanel + inherited dxLayoutControl1: TdxLayoutControl + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 238 + Width = 238 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 263 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 263 + ExplicitWidth = 205 + Width = 205 + end + inherited eLista: TcxComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 140 + Width = 140 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + ExplicitWidth = 128 + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39211.791248726860000000 + BuiltInReportLink = True + end + end + inherited cxStyleRepository1: TcxStyleRepository + object cxStyleActivos: TcxStyle + end + object cxStyleInactivos: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = DEFAULT_CHARSET + Font.Color = clMaroon + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clSilver + end + end + inherited GridPNGImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000434944415478DA63FCFFFF3F + 03258011D900464646ACA601D530126D00BA6298A1B80C21CA0090183639925C + 80CB3B040DC0E69A510306BD010C04005E03C801036F00008D248BE16F9028BA + 0000000049454E44AE426082} + Name = 'Icono_header' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AC400000AC401666D82D4000002B84944415478DA + 7DD25B4814511807F06FD61DC79DBDB8177577D9B23B4B2E3D84F6500F3D2542 + D20DE902F910FA105D84209F0C45A82048082A562C4DA3A4B21E7C0B12332168 + 438D7523D128D745DDCBAC7B9B9DD9B9CF342B289AAC7F989773BEEFC739F31D + 445114C807411058CBCCDBA64600E9762A4D56C4E2197FE06FF46EE7C08C0F36 + 64BDEF7F60FAE5E56687C3F22C976335C954065692698827C8DC989F38DBF731 + 38B22DF0A6A546E7AEDE17C2755839C70B90CDD21026D2200A3C8457D8D9D61E + FF11B5942A0CB41FAB7539AC9F8A3445C0B0022C1234386C2630EA00E61608E5 + DEE0AFBA60981A29088C3FAE6F4E64F95E4144C06A31817BA7191059049E6381 + 6618783838D5F4EAF3527F41C0E7AD6FD8E1B47FD0A2E8EA9A248A20A8C71738 + 0E588E55DA9F4F340FFB228581A1CEA3CE6AF7EE105A5CBC2AC8B2ACDE5F5845 + 489216CF748CD54653FC976DA730D973FA9DD9885F582DCA0352FE14027C9B5E + 9EBDFAE4C7717539BE2DD0D752E33AE4B14F1A30D421AB7BF96B24D314DFDAEB + BF35F53BD35D708CF9E8DA5ED88CA4CB8BEF92CF77C9FD8811D4374023D026D5 + 294CE2800FA102D788D777A6373EA875C0D4D167290D5ABE32065755AECC0937 + ABE6A1D16381813F08780336D027A250925ECE2AECF773E1F7F747B700FB2FF5 + 3E15A5F21B94D50E399B034AAC18347810E89F33813699528108E02A82318B8B + 11DF83C3742C94D8041C3CE90D7158792563B3036D2A03CE640111D783866501 + A349C05304E049F54BC5202E8F5E8C8F0D0D6D023C271ECD8BA8654FAE34DF6C + 05DE6804495B0C1AF527A25416302A05783A01BA4C1C086EFC7A7462B87B13E0 + 3ED57E45614ABB6483DDCA636644D0E901B45A005E02AD40032690A0A5E33C9F + 9909ACCC0D379189D8CF2D53309BCD658273AF1BAD705582466F4064492329AC + 20F15C0E2882449716226A5930AD66ADE71FDF3497F05E932988000000004945 + 4E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + Bitmap = {} + end +end diff --git a/Source/Modulos/Contactos/Views/uViewEmpleados.pas b/Source/Modulos/Contactos/Views/uViewEmpleados.pas new file mode 100644 index 0000000..aa663eb --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewEmpleados.pas @@ -0,0 +1,97 @@ +unit uViewEmpleados; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewContactos, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg, + dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, ImgList, PngImageList, cxGridCustomPopupMenu, + cxGridPopupMenu, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, uDADataTable, + cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + cxClasses, cxControls, cxGridCustomView, cxGrid, dxPgsDlg, ActnList, TB2Item, + TBX, TB2Toolbar, TBXDkPanels, TB2Dock, uViewFiltroBase, uDAInterfaces, + Menus, uCustomView, uViewBase; + +type + IViewEmpleados = interface(IViewContactos) + ['{15826F4B-664B-4DDA-B9CD-723CE8843094}'] + end; + + TfrViewEmpleados = class(TfrViewContactos, IViewEmpleados) + cxGridLevel1: TcxGridLevel; + cxGridLevel2: TcxGridLevel; + cxGridViewFECHA_BAJA: TcxGridDBColumn; + cxStyleActivos: TcxStyle; + cxStyleInactivos: TcxStyle; + procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel); + procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; + out AStyle: TcxStyle); + private + //Filtros relativos a la vista + procedure AnadirFiltroSituaciones; + + public + procedure AnadirOtrosFiltros; override; + end; + +implementation +{$R *.dfm} + +uses schContactosClient_Intf; + +procedure TfrViewEmpleados.AnadirFiltroSituaciones; +var + FFiltro : TcxFilterCriteriaItemList; +begin + FFiltro := AddFilterGrid(fboAnd); + + case cxGrid.ActiveLevel.Index of + 1 : FFiltro.AddItem(cxGridViewFECHA_BAJA, foEqual, Null, 'ACTIVOS'); + 2 : FFiltro.AddItem(cxGridViewFECHA_BAJA, foNotEqual, Null, 'INACTIVOS'); + end; +end; + +procedure TfrViewEmpleados.AnadirOtrosFiltros; +begin + inherited; + + AnadirFiltroSituaciones; + + //Finalmente activamos el filtro si tenemos algo + if cxGridView.DataController.Filter.IsEmpty then + cxGridView.DataController.Filter.Active := False + else + cxGridView.DataController.Filter.Active := True; + cxGrid.ActiveLevel.GridView := cxGridView; +end; + +procedure TfrViewEmpleados.cxGridActiveTabChanged(Sender: TcxCustomGrid; + ALevel: TcxGridLevel); +begin + inherited; + RefrescarFiltro; +end; + +procedure TfrViewEmpleados.cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +var + IndiceCol: Integer; + ASituacion: String; +begin + inherited; + if Assigned(ARecord) then + begin + IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_EmpleadosFECHA_BAJA).Index; + ASituacion := VarToStr(ARecord.DisplayTexts[IndiceCol]); + if Length(ASituacion) = 0 then + AStyle.TextColor := cxStyleActivos.TextColor + else + AStyle.TextColor := cxStyleInactivos.TextColor; + end; +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uViewInternet.dfm b/Source/Modulos/Contactos/Views/uViewInternet.dfm new file mode 100644 index 0000000..c28a0d1 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewInternet.dfm @@ -0,0 +1,89 @@ +inherited frViewInternet: TfrViewInternet + Width = 247 + Height = 125 + ExplicitWidth = 247 + ExplicitHeight = 125 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 247 + Height = 125 + Align = alTop + ParentBackground = True + TabOrder = 0 + AutoContentSizes = [acsWidth] + ExplicitWidth = 630 + object eMailParticular: TcxDBTextEdit + Left = 86 + Top = 55 + DataBinding.DataField = 'EMAIL_2' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Width = 165 + end + object eMailTrabajo: TcxDBTextEdit + Left = 86 + Top = 28 + DataBinding.DataField = 'EMAIL_1' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 165 + end + object ePaginaWeb: TcxDBTextEdit + Left = 86 + Top = 82 + DataBinding.DataField = 'PAGINA_WEB' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 2 + Width = 165 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + Caption = 'Internet' + object dxLayoutControl1Item2: TdxLayoutItem + Caption = 'Trabajo:' + Control = eMailTrabajo + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item1: TdxLayoutItem + Caption = 'Particular:' + Control = eMailParticular + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item3: TdxLayoutItem + Caption = 'P'#225'gina web:' + Control = ePaginaWeb + ControlOptions.ShowBorder = False + end + end + end + end + object DADataSource: TDADataSource + Left = 152 + Top = 8 + end +end diff --git a/Source/Modulos/Contactos/Views/uViewInternet.pas b/Source/Modulos/Contactos/Views/uViewInternet.pas new file mode 100644 index 0000000..7992ee6 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewInternet.pas @@ -0,0 +1,37 @@ +unit uViewInternet; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, DB, uDADataTable, StdCtrls, Mask, DBCtrls, ExtCtrls, + JvComponent, JvFormAutoSize, cxControls, cxContainer, cxEdit, cxTextEdit, + cxDBEdit, dxLayoutControl; + +type + TfrViewInternet = class(TfrViewBase) + DADataSource: TDADataSource; + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Item1: TdxLayoutItem; + eMailParticular: TcxDBTextEdit; + dxLayoutControl1Item2: TdxLayoutItem; + eMailTrabajo: TcxDBTextEdit; + dxLayoutControl1Item3: TdxLayoutItem; + ePaginaWeb: TcxDBTextEdit; + dxLayoutControl1Group1: TdxLayoutGroup; + end; + +implementation + +{$R *.dfm} + +{initialization + RegisterClass(TfrViewInternet); + +finalization + + UnRegisterClass(TfrViewInternet);} + +end. + diff --git a/Source/Modulos/Contactos/Views/uViewPersonalContacto.dcu b/Source/Modulos/Contactos/Views/uViewPersonalContacto.dcu new file mode 100644 index 0000000..1410bac Binary files /dev/null and b/Source/Modulos/Contactos/Views/uViewPersonalContacto.dcu differ diff --git a/Source/Modulos/Contactos/Views/uViewPersonalContacto.dfm b/Source/Modulos/Contactos/Views/uViewPersonalContacto.dfm new file mode 100644 index 0000000..6340430 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewPersonalContacto.dfm @@ -0,0 +1,72 @@ +inherited frViewPersonalContacto: TfrViewPersonalContacto + Width = 583 + Height = 464 + ExplicitWidth = 583 + ExplicitHeight = 464 + inherited cxGrid: TcxGrid + Width = 583 + Height = 439 + ExplicitWidth = 583 + ExplicitHeight = 439 + inherited cxGridView: TcxGridDBTableView + OnDblClick = cxGridViewDblClick + OptionsData.Appending = False + OptionsData.Deleting = False + OptionsData.DeletingConfirmation = False + OptionsData.Editing = False + OptionsData.Inserting = False + object cxGridViewNOMBRE: TcxGridDBColumn + Caption = 'Nombre' + DataBinding.FieldName = 'NOMBRE' + PropertiesClassName = 'TcxTextEditProperties' + Width = 88 + end + object cxGridViewPUESTO: TcxGridDBColumn + Caption = 'Puesto' + DataBinding.FieldName = 'PUESTO' + PropertiesClassName = 'TcxTextEditProperties' + Width = 128 + end + object cxGridViewTELEFONO: TcxGridDBColumn + Caption = 'Tel'#233'fono' + DataBinding.FieldName = 'TELEFONO' + PropertiesClassName = 'TcxTextEditProperties' + Width = 54 + end + object cxGridViewMOVIL: TcxGridDBColumn + Caption = 'M'#243'vil' + DataBinding.FieldName = 'MOVIL' + PropertiesClassName = 'TcxTextEditProperties' + Width = 54 + end + object cxGridViewFAX: TcxGridDBColumn + Caption = 'Fax' + DataBinding.FieldName = 'FAX' + PropertiesClassName = 'TcxTextEditProperties' + Width = 54 + end + object cxGridViewEMAIL: TcxGridDBColumn + Caption = 'E-Mail' + DataBinding.FieldName = 'EMAIL' + PropertiesClassName = 'TcxTextEditProperties' + Width = 50 + end + end + end + inherited ToolBar1: TToolBar + Width = 583 + ExplicitWidth = 583 + inherited ToolButton1: TToolButton + ExplicitWidth = 62 + end + inherited ToolButton4: TToolButton + ExplicitWidth = 74 + end + inherited ToolButton2: TToolButton + ExplicitWidth = 67 + end + inherited ToolButton7: TToolButton + ExplicitWidth = 117 + end + end +end diff --git a/Source/Modulos/Contactos/Views/uViewPersonalContacto.pas b/Source/Modulos/Contactos/Views/uViewPersonalContacto.pas new file mode 100644 index 0000000..63ba235 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewPersonalContacto.pas @@ -0,0 +1,70 @@ +unit uViewPersonalContacto; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxTextEdit, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridBandedTableView, + cxGridDBBandedTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, + uDADataTable, Grids, DBGrids, ActnList, ImgList, PngImageList, ComCtrls, + ToolWin, cxGridDBTableView, uViewDetallesGenerico, + uDAInterfaces, StdCtrls; + +type + TfrViewPersonalContacto = class(TfrViewDetallesGenerico) + cxGridViewNOMBRE: TcxGridDBColumn; + cxGridViewPUESTO: TcxGridDBColumn; + cxGridViewTELEFONO: TcxGridDBColumn; + cxGridViewMOVIL: TcxGridDBColumn; + cxGridViewFAX: TcxGridDBColumn; + cxGridViewEMAIL: TcxGridDBColumn; + procedure cxGridViewDblClick(Sender: TObject); + procedure actEliminarExecute(Sender: TObject); + protected + procedure AnadirInterno; override; + procedure ModificarInterno; override; + public + { Public declarations } + end; + +implementation + +{$R *.dfm} + +uses + uDialogUtils, uPersonalContactoController, uBizContactosPersonal; + +procedure TfrViewPersonalContacto.actEliminarExecute(Sender: TObject); +begin + if (ShowConfirmMessage('Eliminar un contacto de personal', 'Desea eliminar este contacto de personal?') = IDYES) then + inherited; +end; + +procedure TfrViewPersonalContacto.AnadirInterno; +begin + inherited; + try + with TPersonalContactoController.Create do + Ver((dsDetalles.DataTable) as IBizContactoPersonal); + finally + if (dsDetalles.DataTable.State in dsEditModes) then + dsDetalles.DataTable.Post; + end; +end; + +procedure TfrViewPersonalContacto.cxGridViewDblClick(Sender: TObject); +begin + inherited; + actModificar.Execute; +end; + +procedure TfrViewPersonalContacto.ModificarInterno; +begin + inherited; + with TPersonalContactoController.Create do + Ver((dsDetalles.DataTable) as IBizContactoPersonal); +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uViewProveedor.dcu b/Source/Modulos/Contactos/Views/uViewProveedor.dcu new file mode 100644 index 0000000..e49c68c Binary files /dev/null and b/Source/Modulos/Contactos/Views/uViewProveedor.dcu differ diff --git a/Source/Modulos/Contactos/Views/uViewProveedor.dfm b/Source/Modulos/Contactos/Views/uViewProveedor.dfm new file mode 100644 index 0000000..1950ff2 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewProveedor.dfm @@ -0,0 +1,547 @@ +inherited frViewProveedor: TfrViewProveedor + Width = 917 + Height = 629 + OnCreate = CustomViewCreate + OnDestroy = CustomViewDestroy + ExplicitWidth = 917 + ExplicitHeight = 629 + inherited dxLayoutControlContacto: TdxLayoutControl + Width = 917 + Height = 629 + ExplicitWidth = 799 + ExplicitHeight = 492 + inherited PngSpeedButton1: TPngSpeedButton + Left = 872 + ExplicitLeft = 872 + end + inherited PngSpeedButton2: TPngSpeedButton + Left = 872 + ExplicitLeft = 872 + end + inherited PngSpeedButton3: TPngSpeedButton + Left = 872 + ExplicitLeft = 872 + end + object Label1: TLabel [3] + Left = 543 + Top = 262 + Width = 322 + Height = 26 + Caption = + '(Al incluir un proveedor en la tienda, todos los materiales que ' + + 'sirve ese proveedor ser'#225'n tambi'#233'n incluidos)' + WordWrap = True + end + object Label2: TLabel [4] + Left = 22 + Top = 415 + Width = 324 + Height = 39 + Margins.Bottom = 0 + Caption = + 'Si procede, indique la direcci'#243'n de correo electr'#243'nico del prove' + + 'edor que se utilizar'#225' para enviar documentaci'#243'n (como pedidos) p' + + 'or e-mail.' + WordWrap = True + end + object PngSpeedButton4: TPngSpeedButton [5] + Left = 502 + Top = 460 + Width = 23 + Height = 22 + Action = actMandarCorreoTrabajo + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001964944415478DA + 63FCFFFF3F03232323033A58BCE9F87F647EAC9F258622B05E6C068034873B8A + 80D92019C62F8F194C1356339CDF399D91A0014B361FFB1FE6208AA299E1F323 + 306D52F90CC5100C03566E3DFC3FD04E02A2F9F727064690462066006A66FC02 + 64FFFAC8603451096E088A01CB361FFDFF8F819981183077D11A86FDAB7B18E1 + 062CDD7CE27F14573FC3B2EF450CD13E86181ABE7DFFCDF0F5DB6F866FDFFE30 + 1CB97897218AB38FC1B85B98E1DC8E698C600396000D8861696058FAB7116CC0 + 94C5FBB0DAEC6CAECF70EED6238668E67AB057500CF8F0E10383A0A0208A0B90 + 6D06B1BF01D9379E3C67387AFE09C389A37BD15CE06B01B47907434EAC13C3EF + 3F7F19662E3F8862BB898606C3EFDFFF1896EF3DCFA0A5C0CD306FE9265403FC + 9D20362F5CB71F4CE7C47AA01890D5BC164C7716F980D56018606BAC0656B079 + EF2986F82047AC6150DEB785A13CD911AC06C300234D05867DC72F30B8D818E1 + 8DC2494B0E63F702281075D455884A07576EDEC134404A5480E1DAED07441900 + 021806F44D5D44B46618801B400900007F4518F05E90AAF20000000049454E44 + AE426082} + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + end + inherited eCalle: TcxDBTextEdit + Left = 134 + Top = 277 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 9 + ExplicitLeft = 134 + ExplicitTop = 277 + ExplicitWidth = 330 + Width = 330 + end + inherited cbProvincia: TcxDBComboBox + Left = 134 + Top = 304 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 10 + ExplicitLeft = 134 + ExplicitTop = 304 + end + inherited cbPoblacion: TcxDBComboBox + Left = 134 + Top = 331 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 12 + ExplicitLeft = 134 + ExplicitTop = 331 + end + object cxDBCheckBox2: TcxDBCheckBox [9] + Left = 22 + Top = 193 + Caption = 'El proveedor est'#225' homologado' + DataBinding.DataField = 'HOMOLOGADO' + DataBinding.DataSource = dsContacto + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + Properties.ValueChecked = 1 + Properties.ValueUnchecked = 0 + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 7 + Width = 442 + end + object eCertificaciones: TcxDBTextEdit [10] + Left = 134 + Top = 220 + DataBinding.DataField = 'CERTIFICACION' + DataBinding.DataSource = dsContacto + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 8 + Width = 330 + end + object cbGrupoProveedor: TcxDBComboBox [11] + Left = 134 + Top = 136 + DataBinding.DataField = 'GRUPO_PROVEEDOR' + DataBinding.DataSource = dsContacto + Properties.ImmediatePost = True + Properties.OnInitPopup = cbGrupoProveedorPropertiesInitPopup + Properties.OnValidate = cbGrupoProveedorPropertiesValidate + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 5 + Width = 241 + end + object cbDescripcionProveedor: TcxDBComboBox [12] + Left = 134 + Top = 82 + DataBinding.DataField = 'DESCRIPCION_PROVEEDOR' + DataBinding.DataSource = dsContacto + Properties.ImmediatePost = True + Properties.ImmediateUpdateText = True + Properties.OnInitPopup = cbDescripcionProveedorPropertiesInitPopup + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 3 + Width = 330 + end + object eMailAdministracion: TcxDBHyperLinkEdit [13] + Left = 134 + Top = 460 + DataBinding.DataField = 'EMAIL_ADMINISTRACION' + DataBinding.DataSource = dsContacto + Properties.OnEditValueChanged = eMailAdministracionPropertiesEditValueChanged + Properties.OnValidate = eMailAdministracionPropertiesValidate + Properties.Prefix = 'mailto:' + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 14 + Width = 186 + end + object eCodigoAsignado: TcxDBTextEdit [14] + Left = 134 + Top = 109 + DataBinding.DataField = 'CODIGO_ASIGNADO' + DataBinding.DataSource = dsContacto + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 4 + Width = 330 + end + inherited eCodigoPostal: TcxDBTextEdit + Left = 460 + Top = 304 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 11 + ExplicitLeft = 460 + ExplicitTop = 304 + end + inherited eObservaciones: TcxDBMemo + Top = 518 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 23 + ExplicitTop = 518 + ExplicitHeight = 55 + Height = 55 + end + object cxDBCheckBox3: TcxDBCheckBox [17] + Left = 442 + Top = 136 + Caption = 'Subcontrata' + DataBinding.DataField = 'SUBCONTRATA' + DataBinding.DataSource = dsContacto + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + Properties.ValueChecked = 1 + Properties.ValueUnchecked = 0 + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 6 + Width = 83 + end + object cxDBCheckBox1: TcxDBCheckBox [18] + Left = 543 + Top = 294 + Caption = 'Incluir este proveedor en la tienda web' + DataBinding.DataField = 'TIENDA_WEB' + DataBinding.DataSource = dsContacto + Properties.ImmediatePost = True + Properties.MultiLine = True + Properties.NullStyle = nssUnchecked + Properties.ValueChecked = 1 + Properties.ValueUnchecked = 0 + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 22 + Width = 236 + end + inherited eTlfParticular: TcxDBTextEdit + Left = 650 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 16 + ExplicitLeft = 650 + ExplicitWidth = 171 + Width = 171 + end + inherited eTlfTrabajo: TcxDBTextEdit + Left = 650 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 15 + ExplicitLeft = 650 + ExplicitWidth = 171 + Width = 171 + end + inherited eTlfMovil: TcxDBTextEdit + Left = 650 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 17 + ExplicitLeft = 650 + ExplicitWidth = 171 + Width = 171 + end + inherited eFax: TcxDBTextEdit + Left = 650 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 18 + ExplicitLeft = 650 + ExplicitWidth = 171 + Width = 171 + end + inherited eNombre: TcxDBTextEdit + Left = 134 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 134 + ExplicitWidth = 330 + Width = 330 + end + inherited eNIFCIF: TcxDBTextEdit + Left = 261 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 261 + ExplicitWidth = 226 + Width = 226 + end + inherited eMailTrabajo: TcxDBHyperLinkEdit + Left = 650 + Properties.Prefix = 'mailto:' + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 19 + ExplicitLeft = 650 + ExplicitWidth = 142 + Width = 142 + end + inherited eMailParticular: TcxDBHyperLinkEdit + Left = 650 + Properties.Prefix = 'mailto:' + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 20 + ExplicitLeft = 650 + ExplicitWidth = 142 + Width = 142 + end + inherited ePaginaWeb: TcxDBHyperLinkEdit + Left = 650 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 21 + ExplicitLeft = 650 + ExplicitWidth = 142 + Width = 142 + end + inherited eReferencia: TcxDBTextEdit + Left = 134 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 134 + ExplicitWidth = 51 + Width = 51 + end + inherited ePersonaContacto: TcxDBTextEdit + Left = 134 + Top = 358 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 13 + ExplicitLeft = 134 + ExplicitTop = 358 + ExplicitWidth = 330 + Width = 330 + end + inherited dxLayoutControlContactoGroup_Root: TdxLayoutGroup + inherited dxLayoutControlContactoGroup9: TdxLayoutGroup + inherited dxLayoutControlContactoGroup4: TdxLayoutGroup + inherited dxLayoutControlContactoGroup1: TdxLayoutGroup + object dxLayoutControlContactoItem21: TdxLayoutItem + Caption = 'Proveedor de...:' + Visible = False + Control = cbDescripcionProveedor + ControlOptions.ShowBorder = False + end + object dxLayoutControlContactoItem24: TdxLayoutItem + Caption = 'C'#243'digo de cliente:' + Visible = False + Control = eCodigoAsignado + ControlOptions.ShowBorder = False + end + object dxLayoutControlContactoGroup15: TdxLayoutGroup + ShowCaption = False + Visible = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControlContactoItem20: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Grupo de proveedor' + Visible = False + Control = cbGrupoProveedor + ControlOptions.ShowBorder = False + end + object dxLayoutControlContactoItem26: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + ShowCaption = False + Control = cxDBCheckBox3 + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControlContactoGroup14: TdxLayoutGroup [1] + Caption = 'Homologaci'#243'n' + Visible = False + object dxLayoutControlContactoItem22: TdxLayoutItem + Caption = 'El proveedor est'#225' homologado' + ShowCaption = False + Control = cxDBCheckBox2 + ControlOptions.ShowBorder = False + end + object dxLayoutControlContactoItem23: TdxLayoutItem + Caption = 'Tipo de homologaci'#243'n:' + Control = eCertificaciones + ControlOptions.ShowBorder = False + end + end + object dxLayoutControlContactoGroup24: TdxLayoutGroup + Caption = 'Correo electr'#243'nico de administraci'#243'n' + object dxLayoutControlContactoItem33: TdxLayoutItem + ShowCaption = False + Control = Label2 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControlContactoGroup35: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControlContactoItem34: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Correo administrativo:' + Control = eMailAdministracion + ControlOptions.ShowBorder = False + end + object dxLayoutControlContactoItem36: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + ShowCaption = False + Control = PngSpeedButton4 + ControlOptions.ShowBorder = False + end + end + end + end + inherited dxLayoutControlContactoGroup6: TdxLayoutGroup + inherited dxLayoutControlContactoGroup2: TdxLayoutGroup + inherited dxLayoutControlContactoItem9: TdxLayoutItem + Visible = False + end + end + object dxLayoutControlContactoItem19: TdxLayoutItem + ShowCaption = False + Control = Label1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControlContactoItem16: TdxLayoutItem + ShowCaption = False + Control = cxDBCheckBox1 + ControlOptions.ShowBorder = False + end + end + end + end + end + inherited dsContacto: TDADataSource + Left = 32 + Top = 88 + end + inherited ActionList1: TActionList + object actMandarCorreoAdministrativo: TAction + OnExecute = actMandarCorreoAdministrativoExecute + OnUpdate = actMandarCorreoAdministrativoUpdate + end + end +end diff --git a/Source/Modulos/Contactos/Views/uViewProveedor.pas b/Source/Modulos/Contactos/Views/uViewProveedor.pas new file mode 100644 index 0000000..fe04f89 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewProveedor.pas @@ -0,0 +1,170 @@ +unit uViewProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewContacto, dxLayoutLookAndFeels, DB, uDADataTable, + dxLayoutControl, cxMemo, cxDBEdit, cxContainer, cxEdit, cxTextEdit, cxControls, + cxMaskEdit, cxSpinEdit, ImgList, PngImageList, ActnList, cxHyperLinkEdit, + Buttons, PngSpeedButton, StdCtrls, cxCheckBox, cxGraphics, cxDropDownEdit, + uGruposProveedorController, uDAInterfaces; + +type + IViewProveedor = interface(IViewContacto) + ['{D251B289-767A-489A-A862-BE564C79EFE6}'] + end; + + TfrViewProveedor = class(TfrViewContacto, IViewProveedor) + dxLayoutControlContactoItem22: TdxLayoutItem; + cxDBCheckBox2: TcxDBCheckBox; + dxLayoutControlContactoItem23: TdxLayoutItem; + eCertificaciones: TcxDBTextEdit; + dxLayoutControlContactoGroup14: TdxLayoutGroup; + dxLayoutControlContactoItem20: TdxLayoutItem; + cbGrupoProveedor: TcxDBComboBox; + dxLayoutControlContactoItem21: TdxLayoutItem; + cbDescripcionProveedor: TcxDBComboBox; + dxLayoutControlContactoItem24: TdxLayoutItem; + eCodigoAsignado: TcxDBTextEdit; + dxLayoutControlContactoItem26: TdxLayoutItem; + cxDBCheckBox3: TcxDBCheckBox; + dxLayoutControlContactoGroup15: TdxLayoutGroup; + dxLayoutControlContactoItem16: TdxLayoutItem; + cxDBCheckBox1: TcxDBCheckBox; + dxLayoutControlContactoItem19: TdxLayoutItem; + Label1: TLabel; + + Label2: TLabel; + eMailAdministracion: TcxDBHyperLinkEdit; + PngSpeedButton4: TPngSpeedButton; + actMandarCorreoAdministrativo: TAction; + procedure actMandarCorreoAdministrativoExecute(Sender: TObject); + procedure actMandarCorreoAdministrativoUpdate(Sender: TObject); + procedure eMailAdministracionPropertiesEditValueChanged(Sender: TObject); + procedure eMailAdministracionPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + + + + + procedure CustomViewCreate(Sender: TObject); + procedure CustomViewDestroy(Sender: TObject); + procedure cbGrupoProveedorPropertiesInitPopup(Sender: TObject); + procedure cbGrupoProveedorPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure cbDescripcionProveedorPropertiesInitPopup(Sender: TObject); + protected + FGrupoController: IGruposProveedorController; + public + + end; + +implementation +{$R *.dfm} + +uses + uBizGruposProveedor, uBizContactos, uProveedoresController; + +type + THackcxDBHyperLinkEdit = class(TcxDBHyperLinkEdit); + +procedure TfrViewProveedor.actMandarCorreoAdministrativoExecute( + Sender: TObject); +begin + THackcxDBHyperLinkEdit(eMailAdministracion).DoStart; +end; + +procedure TfrViewProveedor.actMandarCorreoAdministrativoUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := (Length(eMailAdministracion.Text) > 0) +end; + +procedure TfrViewProveedor.cbDescripcionProveedorPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with cbDescripcionProveedor.Properties.Items do + begin + ShowHourglassCursor; + BeginUpdate; + try + Clear; + AddStrings((FController as IProveedoresController).DarListaDescripcionesProveedores); + finally + EndUpdate; + HideHourglassCursor; + end; + end; +end; + +procedure TfrViewProveedor.cbGrupoProveedorPropertiesInitPopup(Sender: TObject); +begin + inherited; + with cbGrupoProveedor.Properties.Items do + begin + BeginUpdate; + try + Clear; + AddStrings(FGrupoController.DarListaGruposProveedor); + finally + EndUpdate; + end; + end; +end; + +procedure TfrViewProveedor.cbGrupoProveedorPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); +var + AGrupo : IBizGrupoProveedor; +begin + inherited; + with (Sender as TcxDBComboBox) do + begin + if (Length(DisplayValue) > 0) and (DisplayValue <> (Contacto as IBizProveedor).GRUPO_PROVEEDOR) then + if Properties.LookupItems.IndexOf(DisplayValue) < 0 then + begin + Properties.LookupItems.BeginUpdate; + AGrupo := FGrupoController.BuscarTodos; + AGrupo.DataTable.Active := True; + try + FGrupoController.Anadir(AGrupo); + AGrupo.DESCRIPCION := DisplayValue; + FGrupoController.Guardar(AGrupo); + Properties.LookupItems.Add(DisplayValue); + finally + Properties.LookupItems.EndUpdate; + AGrupo := NIL; + end; + end; + end; +end; + +procedure TfrViewProveedor.CustomViewCreate(Sender: TObject); +begin + inherited; + FGrupoController := TGruposProveedorController.Create; +end; + +procedure TfrViewProveedor.CustomViewDestroy(Sender: TObject); +begin + FGrupoController := Nil; + inherited; +end; + +procedure TfrViewProveedor.eMailAdministracionPropertiesEditValueChanged( + Sender: TObject); +begin + if not VarIsNull((Sender as TcxDBHyperLinkEdit).EditValue) then + (Sender as TcxDBHyperLinkEdit).EditValue := StringReplace((Sender as TcxDBHyperLinkEdit).EditValue, (Sender as TcxDBHyperLinkEdit).Properties.Prefix, '', []); +end; + +procedure TfrViewProveedor.eMailAdministracionPropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + if not VarIsNull(DisplayValue) then + DisplayValue := StringReplace(DisplayValue, (Sender as TcxDBHyperLinkEdit).Properties.Prefix, '', []); +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uViewProveedorDatosComerciales.dcu b/Source/Modulos/Contactos/Views/uViewProveedorDatosComerciales.dcu new file mode 100644 index 0000000..751f27d Binary files /dev/null and b/Source/Modulos/Contactos/Views/uViewProveedorDatosComerciales.dcu differ diff --git a/Source/Modulos/Contactos/Views/uViewProveedorDatosComerciales.dfm b/Source/Modulos/Contactos/Views/uViewProveedorDatosComerciales.dfm new file mode 100644 index 0000000..a374d18 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewProveedorDatosComerciales.dfm @@ -0,0 +1,379 @@ +inherited frViewProveedorDatosComerciales: TfrViewProveedorDatosComerciales + Width = 642 + Height = 191 + OnCreate = CustomViewCreate + OnDestroy = CustomViewDestroy + ExplicitWidth = 642 + ExplicitHeight = 191 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 642 + Height = 177 + Align = alTop + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth] + object Label1: TLabel + Left = 468 + Top = 28 + Width = 149 + Height = 39 + Caption = + 'Puede indicar el d'#237'a del mes en el cual el proveedor realiza los' + + ' cobros.' + Transparent = True + WordWrap = True + end + object Bevel1: TBevel + Left = 22 + Top = 109 + Width = 415 + Height = 5 + Shape = bsBottomLine + end + object cbRegimenIVA: TcxDBComboBox + Left = 111 + Top = 28 + DataBinding.DataField = 'REGIMEN_IVA' + DataBinding.DataSource = dsDatosComerciales + Properties.DropDownListStyle = lsFixedList + Properties.ImmediatePost = True + Properties.ImmediateUpdateText = True + Properties.OnInitPopup = cbRegimenIVAPropertiesInitPopup + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 0 + Width = 121 + end + object cbFormaPago: TcxDBLookupComboBox + Left = 111 + Top = 55 + DataBinding.DataField = 'ID_FORMA_PAGO' + DataBinding.DataSource = dsDatosComerciales + Properties.KeyFieldNames = 'ID' + Properties.ListColumns = < + item + FieldName = 'REFERENCIA' + end> + Properties.ListOptions.GridLines = glNone + Properties.ListOptions.ShowHeader = False + Properties.ListOptions.SyncMode = True + Properties.ListSource = dsFormaPago + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 1 + Width = 121 + end + object bFormasPago: TButton + Left = 306 + Top = 55 + Width = 132 + Height = 21 + Caption = 'Ver las formas de pago...' + TabOrder = 2 + OnClick = bFormasPagoClick + end + object eIVA: TcxDBLookupComboBox + Left = 111 + Top = 82 + DataBinding.DataField = 'ID_TIPO_IVA' + DataBinding.DataSource = dsDatosComerciales + Properties.KeyFieldNames = 'ID' + Properties.ListColumns = < + item + FieldName = 'REFERENCIA' + end> + Properties.ListOptions.GridLines = glNone + Properties.ListOptions.ShowHeader = False + Properties.ListOptions.SyncMode = True + Properties.ListSource = dsTiposIVA + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 3 + Width = 121 + end + object bTiposIVA: TButton + Left = 306 + Top = 82 + Width = 132 + Height = 21 + Caption = 'Ver los tipos de IVA...' + TabOrder = 4 + OnClick = bTiposIVAClick + end + object eDescuento: TcxDBSpinEdit + Left = 111 + Top = 120 + DataBinding.DataField = 'DESCUENTO' + DataBinding.DataSource = dsDatosComerciales + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 5 + Width = 159 + end + object eDiasVencimiento1: TcxDBSpinEdit + Left = 540 + Top = 73 + DataBinding.DataField = 'VENCIMIENTO_FACTURAS_1' + DataBinding.DataSource = dsDatosComerciales + Properties.DisplayFormat = '##' + Properties.ImmediatePost = True + Properties.SpinButtons.Visible = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 6 + Width = 79 + end + object eDiasVencimiento2: TcxDBSpinEdit + Left = 540 + Top = 100 + DataBinding.DataField = 'VENCIMIENTO_FACTURAS_2' + DataBinding.DataSource = dsDatosComerciales + Properties.DisplayFormat = '##' + Properties.ImmediatePost = True + Properties.SpinButtons.Visible = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 7 + Width = 79 + end + object eDiasVencimiento3: TcxDBSpinEdit + Left = 540 + Top = 127 + DataBinding.DataField = 'VENCIMIENTO_FACTURAS_3' + DataBinding.DataSource = dsDatosComerciales + Properties.DisplayFormat = '##' + Properties.ImmediatePost = True + Properties.SpinButtons.Visible = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 8 + Width = 79 + end + object dxLayoutGroup1: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Group3: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Datos comerciales' + object dxLayoutControl1Item3: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'R'#233'gimen de IVA:' + Control = cbRegimenIVA + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group2: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item5: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Forma de pago:' + Control = cbFormaPago + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item7: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'Button1' + ShowCaption = False + Control = bFormasPago + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group1: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group4: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item8: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'IVA por defecto' + Control = eIVA + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item9: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + ShowCaption = False + Control = bTiposIVA + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item2: TdxLayoutItem + Control = Bevel1 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item1: TdxLayoutItem + AutoAligns = [aaVertical] + Caption = 'Dto. por defecto:' + Control = eDescuento + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Group5: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Datos para facturaci'#243'n' + object dxLayoutControl1Item6: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Label1' + ShowCaption = False + Control = Label1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item4: TdxLayoutItem + AutoAligns = [aaVertical] + Caption = 'D'#237'a del mes 1:' + Control = eDiasVencimiento1 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item11: TdxLayoutItem + AutoAligns = [aaVertical] + Caption = 'D'#237'a del mes 2:' + Control = eDiasVencimiento2 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item12: TdxLayoutItem + AutoAligns = [aaVertical] + Caption = 'D'#237'a del mes 3:' + Control = eDiasVencimiento3 + ControlOptions.ShowBorder = False + end + end + end + end + object dsAgentes: TDADataSource + Left = 40 + Top = 8 + end + object dsDatosComerciales: TDADataSource + Left = 8 + Top = 8 + end + object dsFormaPago: TDADataSource + Left = 40 + Top = 48 + end + object dsTiposIVA: TDADataSource + Left = 8 + Top = 48 + end +end diff --git a/Source/Modulos/Contactos/Views/uViewProveedorDatosComerciales.pas b/Source/Modulos/Contactos/Views/uViewProveedorDatosComerciales.pas new file mode 100644 index 0000000..4bb23db --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewProveedorDatosComerciales.pas @@ -0,0 +1,153 @@ +unit uViewProveedorDatosComerciales; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, cxGraphics, DB, uDADataTable, dxLayoutControl, + cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxLookupEdit, + cxDBLookupEdit, cxDBLookupComboBox, cxControls, cxSpinEdit, cxDBEdit, + uBizContactos, cxCheckBox, StdCtrls, uFormasPagoController, uTiposIVAController, + uDAInterfaces, uBizTiposIVA, uBizFormasPago, ExtCtrls; + +type + IViewProveedorDatosComerciales = interface(IViewBase) + ['{26EEABD7-5603-48B5-ACC3-F493DAA1A0EC}'] + function GetContacto: IBizContacto; + procedure SetContacto(const Value: IBizContacto); + property Contacto: IBizContacto read GetContacto write SetContacto; + end; + + TfrViewProveedorDatosComerciales = class(TfrViewBase, IViewProveedorDatosComerciales) + dxLayoutControl1: TdxLayoutControl; + dxLayoutGroup1: TdxLayoutGroup; + dxLayoutControl1Group3: TdxLayoutGroup; + dsAgentes: TDADataSource; + dxLayoutControl1Item3: TdxLayoutItem; + cbRegimenIVA: TcxDBComboBox; + dsDatosComerciales: TDADataSource; + dsFormaPago: TDADataSource; + dxLayoutControl1Item5: TdxLayoutItem; + cbFormaPago: TcxDBLookupComboBox; + dxLayoutControl1Group5: TdxLayoutGroup; + Label1: TLabel; + dxLayoutControl1Item6: TdxLayoutItem; + bFormasPago: TButton; + dxLayoutControl1Item7: TdxLayoutItem; + dxLayoutControl1Item8: TdxLayoutItem; + eIVA: TcxDBLookupComboBox; + dxLayoutControl1Item9: TdxLayoutItem; + bTiposIVA: TButton; + dsTiposIVA: TDADataSource; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Group2: TdxLayoutGroup; + dxLayoutControl1Item1: TdxLayoutItem; + eDescuento: TcxDBSpinEdit; + dxLayoutControl1Group4: TdxLayoutGroup; + dxLayoutControl1Item2: TdxLayoutItem; + Bevel1: TBevel; + dxLayoutControl1Item4: TdxLayoutItem; + eDiasVencimiento1: TcxDBSpinEdit; + dxLayoutControl1Item11: TdxLayoutItem; + eDiasVencimiento2: TcxDBSpinEdit; + dxLayoutControl1Item12: TdxLayoutItem; + eDiasVencimiento3: TcxDBSpinEdit; + procedure CustomViewCreate(Sender: TObject); + procedure CustomViewDestroy(Sender: TObject); + procedure cbRegimenIVAPropertiesInitPopup(Sender: TObject); + procedure bFormasPagoClick(Sender: TObject); + procedure bTiposIVAClick(Sender: TObject); + protected + FContacto : IBizContacto; + FTiposIVA : IBizTipoIVA; + FFormasPago : IBizFormaPago; + FFormasPagoController : IFormasPagoController; + FTiposIVAController : ITiposIVAController; + function GetContacto: IBizContacto; + procedure SetContacto(const Value: IBizContacto); + public + property Contacto: IBizContacto read GetContacto write SetContacto; + end; + + +implementation + +{$R *.dfm} + +uses + uRegimenIVAUtils; + +{ TfrViewProveedorDatosComerciales } + +procedure TfrViewProveedorDatosComerciales.bFormasPagoClick(Sender: TObject); +begin + inherited; + if Assigned(FFormasPago) then + FFormasPagoController.VerTodos(FFormasPago); +end; + +procedure TfrViewProveedorDatosComerciales.bTiposIVAClick(Sender: TObject); +begin + inherited; + if Assigned(FTiposIVA) then + FTiposIVAController.VerTodos(FTiposIVA); +end; + +procedure TfrViewProveedorDatosComerciales.cbRegimenIVAPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with cbRegimenIVA.Properties do + begin + if Items.Count = 0 then + Items := DarRegimenesIVA; + end; +end; + +procedure TfrViewProveedorDatosComerciales.CustomViewCreate(Sender: TObject); +begin + inherited; + FTiposIVA := Nil; + FFormasPago := Nil; + FContacto := Nil; + FFormasPagoController := TFormasPagoController.Create; + FTiposIVAController := TTiposIVAController.Create; +end; + +procedure TfrViewProveedorDatosComerciales.CustomViewDestroy(Sender: TObject); +begin + inherited; + FTiposIVA := Nil; + FFormasPago := Nil; + FContacto := Nil; + FFormasPagoController := NIL; + FTiposIVAController := NIL; +end; + +function TfrViewProveedorDatosComerciales.GetContacto: IBizContacto; +begin + Result := FContacto; +end; + +procedure TfrViewProveedorDatosComerciales.SetContacto(const Value: IBizContacto); +begin + FContacto := Value; + if Assigned(FContacto) then + begin + dsDatosComerciales.DataTable := FContacto.DataTable; + FFormasPago := FFormasPagoController.BuscarTodos; + dsFormaPago.DataTable := FFormasPago.DataTable; + dsFormaPago.DataTable.Active := True; + + FTiposIVA := FTiposIVAController.BuscarTodos; + dsTiposIVA.DataTable := FTiposIVA.DataTable; + dsTiposIVA.DataTable.Active := True; + end + else begin + dsDatosComerciales.DataTable := NIL; + dsFormaPago.DataTable := NIL; + dsTiposIVA.DataTable := NIL; + end +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uViewProveedores.dcu b/Source/Modulos/Contactos/Views/uViewProveedores.dcu new file mode 100644 index 0000000..80b4aff Binary files /dev/null and b/Source/Modulos/Contactos/Views/uViewProveedores.dcu differ diff --git a/Source/Modulos/Contactos/Views/uViewProveedores.dfm b/Source/Modulos/Contactos/Views/uViewProveedores.dfm new file mode 100644 index 0000000..a84ce61 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewProveedores.dfm @@ -0,0 +1,482 @@ +inherited frViewProveedores: TfrViewProveedores + Width = 483 + Height = 435 + ExplicitWidth = 483 + ExplicitHeight = 435 + inherited cxGrid: TcxGrid + Width = 483 + Height = 307 + ExplicitWidth = 483 + ExplicitHeight = 307 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = '0 proveedores' + Kind = skCount + FieldName = 'NIF_CIF' + Column = cxGridViewNIF_CIF + end> + inherited cxGridViewICONO: TcxGridDBColumn + OnGetCellHint = cxGridViewICONOGetCellHint + end + object cxGridViewTIENDA_WEB: TcxGridDBColumn [1] + Caption = 'Incluido en tienda web' + DataBinding.FieldName = 'TIENDA_WEB' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Images = GridPNGImageList + Properties.Items = < + item + Value = 0 + end + item + ImageIndex = 3 + Value = 1 + end> + BestFitMaxWidth = 22 + MinWidth = 22 + Options.HorzSizing = False + Width = 22 + end + object cxGridViewHOMOLOGADO: TcxGridDBColumn [2] + DataBinding.FieldName = 'HOMOLOGADO' + Visible = False + BestFitMaxWidth = 20 + VisibleForCustomization = False + Width = 22 + end + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 483 + ExplicitWidth = 483 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 483 + inherited dxLayoutControl1: TdxLayoutControl + Width = 483 + ExplicitWidth = 483 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 386 + Width = 386 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 125 + Width = 125 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 172 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 172 + ExplicitWidth = 244 + Width = 244 + end + inherited eLista: TcxComboBox + Left = 381 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 381 + ExplicitWidth = 140 + Width = 140 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 483 + ExplicitWidth = 483 + inherited tbxBotones: TTBXToolbar + Width = 473 + ExplicitWidth = 473 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 409 + ExplicitTop = 409 + ExplicitWidth = 483 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 483 + ExplicitWidth = 483 + inherited TBXToolbar1: TTBXToolbar + Width = 473 + ExplicitWidth = 473 + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39211.790492430550000000 + BuiltInReportLink = True + end + end + inherited GridPNGImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000434944415478DA63FCFFFF3F + 03258011D900464646ACA601D530126D00BA6298A1B80C21CA0090183639925C + 80CB3B040DC0E69A510306BD010C04005E03C801036F00008D248BE16F9028BA + 0000000049454E44AE426082} + Name = 'Icono_header' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AC400000AC401666D82D400000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000002B44944415478DA7D925F4853511C + C77F67F75EF7A799BB9A6E3A5B85A0203EA820F892502121119A523E14141A41 + F5A244819144E4430F452F99580385A4D0CC2009410B940CCC4CA60BB2F04F43 + 65B639B7DD6DF7EEFED93D9D2D144DE60F0E07CEF97D3FE7F7FBFE0EC218433C + 1042B01973AFAF5C0088DDF007B82CCF7AD0E15C70DFBF63774EC0B6D8D2FD0F + 70F65C6C345BD8673C1FD5F8FD41F0F903E0F571FCA8E34F4DE7E0FCC89E80BE + E6727D7E699ECBA0D7668A920CA15004DCDE0028B204EE7561AEA9FD5B19490D + 2707DCABA8CC31A70F531A0A045186154F042C19FBC1A803F8E5F2E0B61EE7C9 + F9656E2429E0537B75E34658B2CB0A02D6B41FF20F9A00A90A48621478418047 + 2FA71ABA865D5D4901939DD575D66C733FCD3089B398A2804CCA97451144318A + EFDA271BFBC7579203DEB41DCD2EC93FEC6252521204555549FF72C2038E8B28 + 35AD1F2A577DE2E89E5398B6D7F6A6A51ACE25920820168B5721C3C4ECEADCE5 + C79315E4D8BB27A0BBB9DC5A54689E326A198B4AEEE26D6C04C3D2ADE7D34D5F + 7EF83B928E311E2DD6828C9C5CE629C2A6B3D67A1B4A05F20722C49BDE0D9C6B + 084E3804E1EA8BEF4B33DB3FD416A0E550119B9E478F6762B590151408D5D543 + 71552DAC0DBC0561F01504F631E0A534A121257466646CE1E32E40EBF1D227AC + 1E5D677919D8A8025AD041E6892A08BF1F8010B1D46F60C8A2614DC4CB0FBE3A + 4A30877D3B00B74F95B94C14B699C8EB6904601463A0555490290491140A823A + 1A027A1AFC64B77B17EBD7C6BC7D3B00374F972DA6D2E8489AF84F6C9054A055 + 6222F156603410D652C011711CD4BDFCFB9AE7B3BB6307E0FCB1E24B590C7A98 + C150E946ACA2F8EB14B9520940A43410411A08A8587AA78DCDFE1C9A69C01276 + EE9A0219E5019D8D2E305A0C36D05384031A2C2AB2129579C52773FC6ACC4DD2 + 968826B0A9F90BC88690F0ED1F7E3F0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AC400000AC401666D82D400000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000002F04944415478DA7DD16B48536118 + 07F0FF713BCE8DDDBD6C3A9D2B9B4209E96C54446641651769155DD0C0CCB448 + 28A502ADA49BF5A9A2202B53704105DDE843456111424117AC06FB9084D69633 + F3D68ED35DCECEF19C8E834616F381032FEF79DE1FCFFBFE099EE731550441E0 + 4F75DFABDE014C1EF452BE94A1913187B377E0F4B136E75BFC55D173FF02CE9B + E5953ABDE67A20108AF37AC730EAA5303CEA0B743A066D2D8F7A9ECF08DCAD5B + 24CDB664B9655249321D66303EEEC7C030059609636024D85DDBFCC12AB44EC4 + 064E16AE4CD3693B4471220469069E213FF4894AC813802FEE21BEE9A673754F + 9FEF794CE055F386CA5F13E1368625A0512B919DA106C1B108D3210482419CBF + DDB5ABBDC3DD1E1378DFB261B32155775F4C9291BD499605238CCFD034683AC4 + 1F6F7B5F79FFB52736F0A069696A7EB6C94DC6C747048EE384FB339137F0F9FC + ACADF1C5CAFE51BA73C6143EB66DBAA352C8B6469A0460929B0407129F3D3FFA + 664B5E667C9F48985D7234F8ED4F1AFF01F6BA4586DCB9BA2EB984D47353FFE2 + 24606406F65BCF25BEA8BC94B4D7DB61CE5169D7D653DE69C05435187212D3D2 + C92B04AFDE62D8662414A010921840B0163E5DB38F985FEEC08D8A3CE8E6A5CC + 293E34D83B0D68C8CCD568B3C4AF93796E6E32E2C1969503FDFB8110A0560379 + DB6BA1CAB461CC7D020EBBF00C42B4AE9F7F018D2B2C973552A2461360902AD7 + 429FBF18324B169EDEA9C2CE6B9D50A9F2842E97F0150183142AB60385454BB7 + 448123EBAC6EB58837AA832C92C452A49B73A1B32E4640C9A3E3D9211CB85A0B + D0F6087252585AF2779F29A96EBD10050E9758BF2AC4C42C15CD4211E6A15568 + 9156B010A3F211C8A4AD58B647B8C7D85427851B17058B2EA8AA3EDBD51E05CA + 96E7ED4C21897389A4482BE73942A3D4C2B460095CFDA760AB17C6A75CB05FA3 + 601346579B808B7B81E30F79625A0A4294490946718E5C2F3396146F3497AE29 + B3DE6A58B53ED36CF22F5856EC99B7B0A6EFDDE3D68C21D713C9A777BDA6F637 + 3CF11B67B066C954E54E420000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C18000003734944415478DA + 5D536D685B55187ECEBDB99FB9371F26CB92ACADE9D66E75DDA6D356A6881B82 + 6C32904DA63074B66EEA90CDFDEC3EF0D7500A4357D18A286D6163A820289BCC + 0A83EE872875FB51964E6AD79936ED9A6459BE939B9BDCE4DEEBA1B2317DE1E1 + 1C78CFFB9CE77DCE7909FE17472F7ED6EEF0048E36D5F8FE464509A5EACBD0ED + DB497DE9E0B71E73FBF04FEF4AF30F9F27F7375F5DBA244795F90F798FF350C8 + 25A8204D52327E455ABB89997B69CC2C1EB3513958DEE81646BB4CF183AF0F93 + EA03826D9FBC2AADEFDE7CCE15C8EF0BAB3D64B5732B54BE84941647AC30821B + A934A6E2A750486E876054EC8857FFDEBB5CEE9F1C7A565F21D83DBE635075E5 + 06DABD9DCCA3AE67D04A21D18C6ECAB8BA78067FDC791A7F67A7908C1F875D8E + 81E3BEB4D6284367164E6C3849768D7DD1BB208C4F74866795764F184165275A + DDCF839851F8A55770FD6E0197E782984EA4A06573407314D0AEC04DF6547A5A + 4EBF403A07EF8D2CE84B879E78EA30DABC15F8652F9C9C8FEA62B04AFE18B17C + 04130B04F3E93C6CBD9F220E946F8194FDE80A7E33420283E94CBA58F2B56F7A + 072DBE3928BC0889E321B2AF51834E60BEE0403449FD2B14815A3FD0B806948A + 60AA1236C8C359221C9BB6EB848510FE19ABDB4E83C536B0CC2A18D647D08C16 + 54AA26EAC51250BD492DEFA32B07520C436E5610300E8084DF9CB4133207A880 + 103A0F8BB3C092000813815EDB4D9DB4695181DEFC2325380ED44DB055111EAB + 036AE92D9035AF4FDACBA60EB85C802C03920628BF81F0E760D75F048A8F5382 + C7A879598A8B609A0978B95904C94658ECFE1CF1EF9918CF98DA2EA8EABF04A2 + 08B8AF52A201C034687100C89C070C9A2B95C19ACB5817BC8247ECB53095BDA3 + 6473DF54FF5CECAFB19A53249024DA070F7035C07792BEC46D20F73255F10695 + 5E072A1A78AB82273B0A10A52D0D67CF8EE748C7FBB70423BE185DCA26D6DBA2 + 408BB91510FF59DAB7053B71844A6F50050618D3845BE2B135E2B36AFEAE0BBF + 9F5DD7B7F2137B07FEEC4ECEDEB99CCFA4DAEAB64D2C16F0847F41F9EE26587A + 081C6120700E04A84F1EA76AF3A2F707D3E73B3039D4A63F18A6EEF7AEB53A74 + 32ACE5F22FD51A794E76C5A16522B4230E0A55E6969CB620AB5A4351C6F219F5 + 54F44248FBCF34DE8FDE23333B19ADFAB683AFED330A26388103E371A6ACAAF5 + 5D59653E9FFE744BECE1F3FF00F7B9639E6BE4CA2D0000000049454E44AE4260 + 82} + Name = 'PngImage3' + Background = clWindow + end> + Bitmap = {} + end +end diff --git a/Source/Modulos/Contactos/Views/uViewProveedores.pas b/Source/Modulos/Contactos/Views/uViewProveedores.pas new file mode 100644 index 0000000..7036bcd --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewProveedores.pas @@ -0,0 +1,66 @@ +unit uViewProveedores; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewContactos, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg, + dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, ImgList, PngImageList, cxGridCustomPopupMenu, + cxGridPopupMenu, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, uDADataTable, + cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + cxClasses, cxControls, cxGridCustomView, cxGrid, dxPgsDlg, ActnList, TB2Item, + TBX, TB2Toolbar, TBXDkPanels, TB2Dock, uViewFiltroBase, cxImageComboBox, + uDAInterfaces, Menus, uCustomView, uViewBase; + +type + IViewProveedores = interface(IViewContactos) + ['{C64C0439-5D1D-4B60-9FC0-4E75E58F7384}'] + end; + + TfrViewProveedores = class(TfrViewContactos, IViewProveedores) + cxGridViewTIENDA_WEB: TcxGridDBColumn; + cxGridViewHOMOLOGADO: TcxGridDBColumn; + procedure cxGridViewICONOGetCellHint(Sender: TcxCustomGridTableItem; + ARecord: TcxCustomGridRecord; ACellViewInfo: TcxGridTableDataCellViewInfo; + const AMousePos: TPoint; var AHintText: TCaption; + var AIsHintMultiLine: Boolean; var AHintTextRect: TRect); + procedure cxGridViewICONOCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + end; + +implementation + +{$R *.dfm} + +procedure TfrViewProveedores.cxGridViewICONOCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +var + R : TRect; +begin + //inherited; <- No llamamos al padre porque queremos hacer tratamiento especial + R := AViewInfo.ContentBounds; + ACanvas.FillRect(R); + if (cxGridView.DataController.DisplayTexts[AViewInfo.GridRecord.RecordIndex, + cxGridViewHOMOLOGADO.Index] = '1') then + ACanvas.DrawImage(GridPNGImageList, R.Left + 2, R.Top + 2, 2) + else + ACanvas.DrawImage(GridPNGImageList, R.Left + 2, R.Top + 2, 1); + ADone := True; +end; + +procedure TfrViewProveedores.cxGridViewICONOGetCellHint( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + ACellViewInfo: TcxGridTableDataCellViewInfo; const AMousePos: TPoint; + var AHintText: TCaption; var AIsHintMultiLine: Boolean; + var AHintTextRect: TRect); +begin + inherited; + if (cxGridView.DataController.DisplayTexts[ARecord.Index, cxGridViewHOMOLOGADO.Index] = '1') then + AHintText := 'Proveedor homologado'; +end; + +end. diff --git a/Source/Modulos/Contactos/Views/uViewTelefonos.dfm b/Source/Modulos/Contactos/Views/uViewTelefonos.dfm new file mode 100644 index 0000000..c312fc0 --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewTelefonos.dfm @@ -0,0 +1,118 @@ +inherited frViewTelefonos: TfrViewTelefonos + Width = 261 + Height = 152 + ExplicitWidth = 261 + ExplicitHeight = 152 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 261 + Height = 152 + Align = alTop + ParentBackground = True + TabOrder = 0 + AutoContentSizes = [acsWidth] + ExplicitWidth = 693 + DesignSize = ( + 261 + 152) + object eTlfParticular: TcxDBTextEdit + Left = 76 + Top = 55 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'TELEFONO_2' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Width = 566 + end + object eTlfTrabajo: TcxDBTextEdit + Left = 76 + Top = 28 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'TELEFONO_1' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 566 + end + object eTlfMovil: TcxDBTextEdit + Left = 76 + Top = 82 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'MOVIL_1' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 2 + Width = 566 + end + object eFax: TcxDBTextEdit + Left = 76 + Top = 109 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FAX' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 3 + Width = 566 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + AutoAligns = [aaHorizontal] + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + AutoAligns = [aaHorizontal] + Caption = 'Tel'#233'fonos' + object dxLayoutControl1Item2: TdxLayoutItem + Caption = 'Trabajo:' + Control = eTlfTrabajo + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item1: TdxLayoutItem + Caption = 'Particular:' + Control = eTlfParticular + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item3: TdxLayoutItem + Caption = 'M'#243'vil:' + Control = eTlfMovil + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item4: TdxLayoutItem + Caption = 'Fax:' + Control = eFax + ControlOptions.ShowBorder = False + end + end + end + end + object DADataSource: TDADataSource + Left = 16 + Top = 32 + end +end diff --git a/Source/Modulos/Contactos/Views/uViewTelefonos.pas b/Source/Modulos/Contactos/Views/uViewTelefonos.pas new file mode 100644 index 0000000..de2368f --- /dev/null +++ b/Source/Modulos/Contactos/Views/uViewTelefonos.pas @@ -0,0 +1,39 @@ +unit uViewTelefonos; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, DB, uDADataTable, StdCtrls, Mask, DBCtrls, ExtCtrls, + JvComponent, JvFormAutoSize, cxControls, cxContainer, cxEdit, cxTextEdit, + cxDBEdit, dxLayoutControl; + +type + TfrViewTelefonos = class(TfrViewBase) + DADataSource: TDADataSource; + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Item1: TdxLayoutItem; + eTlfParticular: TcxDBTextEdit; + dxLayoutControl1Item2: TdxLayoutItem; + eTlfTrabajo: TcxDBTextEdit; + dxLayoutControl1Item3: TdxLayoutItem; + eTlfMovil: TcxDBTextEdit; + dxLayoutControl1Item4: TdxLayoutItem; + eFax: TcxDBTextEdit; + end; + +implementation + +{$R *.dfm} + +{initialization + RegisterClass(TfrViewTelefonos); + +finalization + + UnRegisterClass(TfrViewTelefonos);} + +end. + diff --git a/Source/Modulos/Fabricantes/Controller/Fabricantes_controller.dcu b/Source/Modulos/Fabricantes/Controller/Fabricantes_controller.dcu new file mode 100644 index 0000000..3a1895c Binary files /dev/null and b/Source/Modulos/Fabricantes/Controller/Fabricantes_controller.dcu differ diff --git a/Source/Modulos/Fabricantes/Controller/Fabricantes_controller.dpk b/Source/Modulos/Fabricantes/Controller/Fabricantes_controller.dpk new file mode 100644 index 0000000..b86e97f Binary files /dev/null and b/Source/Modulos/Fabricantes/Controller/Fabricantes_controller.dpk differ diff --git a/Source/Modulos/Fabricantes/Controller/Fabricantes_controller.dproj b/Source/Modulos/Fabricantes/Controller/Fabricantes_controller.dproj new file mode 100644 index 0000000..541542e --- /dev/null +++ b/Source/Modulos/Fabricantes/Controller/Fabricantes_controller.dproj @@ -0,0 +1,543 @@ + + + + {7f80f8aa-6912-4714-986d-aed73035472b} + Fabricantes_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Fabricantes_controller.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Release\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Fabricantes_controller.dpk + + + + + MainSource + + + + + + + + + + + + + diff --git a/Source/Modulos/Fabricantes/Controller/Fabricantes_controller.rc b/Source/Modulos/Fabricantes/Controller/Fabricantes_controller.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Fabricantes/Controller/Fabricantes_controller.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Fabricantes/Controller/Fabricantes_controller.res b/Source/Modulos/Fabricantes/Controller/Fabricantes_controller.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Fabricantes/Controller/Fabricantes_controller.res differ diff --git a/Source/Modulos/Fabricantes/Controller/View/uIEditorFabricantes.dcu b/Source/Modulos/Fabricantes/Controller/View/uIEditorFabricantes.dcu new file mode 100644 index 0000000..42a27ca Binary files /dev/null and b/Source/Modulos/Fabricantes/Controller/View/uIEditorFabricantes.dcu differ diff --git a/Source/Modulos/Fabricantes/Controller/View/uIEditorFabricantes.pas b/Source/Modulos/Fabricantes/Controller/View/uIEditorFabricantes.pas new file mode 100644 index 0000000..4dcbf65 --- /dev/null +++ b/Source/Modulos/Fabricantes/Controller/View/uIEditorFabricantes.pas @@ -0,0 +1,26 @@ +unit uIEditorFabricantes; + +interface + +uses + uEditorDBBase, uBizFabricantes, uFabricantesController, uGUIBase; + +type + IEditorFabricantes = interface(ICustomEditor) + ['{BCA44D6E-18A9-4F38-9D52-9A2F6C721DA3}'] + function GetFabricantes: IBizFabricante; + procedure SetFabricantes(const Value: IBizFabricante); + property Fabricantes: IBizFabricante read GetFabricantes write SetFabricantes; + + function GetController : IFabricantesController; + procedure SetController (const Value : IFabricantesController); + property Controller : IFabricantesController read GetController write SetController; + + function ShowModal : Integer; + procedure Show; + end; + + +implementation + +end. diff --git a/Source/Modulos/Fabricantes/Controller/uFabricantesController.dcu b/Source/Modulos/Fabricantes/Controller/uFabricantesController.dcu new file mode 100644 index 0000000..3a82991 Binary files /dev/null and b/Source/Modulos/Fabricantes/Controller/uFabricantesController.dcu differ diff --git a/Source/Modulos/Fabricantes/Controller/uFabricantesController.pas b/Source/Modulos/Fabricantes/Controller/uFabricantesController.pas new file mode 100644 index 0000000..56c9757 --- /dev/null +++ b/Source/Modulos/Fabricantes/Controller/uFabricantesController.pas @@ -0,0 +1,235 @@ +unit uFabricantesController; + +interface + + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uEditorDBItem, + uIDataModuleFabricantes, uBizFabricantes; + +type + IFabricantesController = interface(IControllerBase) + ['{8D56360B-0AAA-41FA-9C48-90C586B07E37}'] + function BuscarTodos: IBizFabricante; + procedure VerTodos(AFabricantes: IBizFabricante); + procedure Anadir(AFabricante : IBizFabricante); + function Eliminar(AFabricante : IBizFabricante): Boolean; + function Guardar(AFabricante : IBizFabricante): Boolean; + procedure DescartarCambios(AFabricante : IBizFabricante); + function Localizar(AFabricantes: IBizFabricante; ADescripcion:String): Boolean; + function DarListaFabricantes: TStringList; + end; + + TFabricantesController = class(TControllerBase, IFabricantesController) + protected + FDataModule : IDataModuleFabricantes; + + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; + + function ValidarFabricante(AFabricante: IBizFabricante): Boolean; + + //Estos son los tres mtodos a sobre escribir si se desea heredar toda la logica de + //este controller + procedure AsignarDataModule; virtual; + + procedure ValidarObjetos; virtual; + + public + constructor Create; override; + destructor Destroy; override; + + function Eliminar(AFabricante : IBizFabricante): Boolean; + function Guardar(AFabricante : IBizFabricante): Boolean; + procedure DescartarCambios(AFabricante : IBizFabricante); virtual; + procedure Anadir(AFabricante : IBizFabricante); + function BuscarTodos: IBizFabricante; + procedure VerTodos(AFabricantes: IBizFabricante); + function Localizar(AFabricantes: IBizFabricante; ADescripcion:String): Boolean; + function DarListaFabricantes: TStringList; + end; + +implementation + +uses + cxControls, DB, uEditorRegistryUtils, schFabricantesClient_Intf, + uIEditorFabricantes, uDataModuleFabricantes, + uDAInterfaces, uDataTableUtils, + uDateUtils, uROTypes, DateUtils, Controls, Windows; + +{ TFabricantesController } + +procedure TFabricantesController.Anadir(AFabricante: IBizFabricante); +begin + AFabricante.Insert; +end; + +procedure TFabricantesController.AsignarDataModule; +begin + FDataModule := TDataModuleFabricantes.Create(Nil); +end; + +function TFabricantesController.BuscarTodos: IBizFabricante; +begin + Result := FDataModule.GetItems; +end; + +constructor TFabricantesController.Create; +begin + inherited; + AsignarDataModule; +end; + +function TFabricantesController.CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + +function TFabricantesController.DarListaFabricantes: TStringList; +var + AFabricantes: IBizFabricante; +begin + AFabricantes := BuscarTodos; + AFabricantes.DataTable.Active := True; + Result := TStringList.Create; + try + with Result do + begin + AFabricantes.DataTable.First; + while not AFabricantes.DataTable.EOF do + begin + Add(AFabricantes.DESCRIPCION); + AFabricantes.DataTable.Next; + end; + end; + finally + AFabricantes := NIL; + end; +end; + +procedure TFabricantesController.DescartarCambios(AFabricante: IBizFabricante); +begin + if not Assigned(AFabricante) then + raise Exception.Create ('Almacen no asignado'); + + ShowHourglassCursor; + try + if (AFabricante.State in dsEditModes) then + AFabricante.Cancel; + + AFabricante.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TFabricantesController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + +function TFabricantesController.ValidarFabricante(AFabricante: IBizFabricante): Boolean; +begin + Result := False; + + if not Assigned(AFabricante) then + raise Exception.Create ('Fabricante no asignado'); + + if (AFabricante.DataTable.State in dsEditModes) then + AFabricante.DataTable.Post; + + Result := True; +end; + +procedure TFabricantesController.ValidarObjetos; +begin +// +end; + +procedure TFabricantesController.VerTodos(AFabricantes: IBizFabricante); +var + AEditor : IEditorFabricantes; +begin + AEditor := NIL; + + CreateEditor('EditorFabricantes', IEditorFabricantes, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.Fabricantes := AFabricantes; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +function TFabricantesController.Eliminar(AFabricante: IBizFabricante): Boolean; +begin + Result := False; + + if not Assigned(AFabricante) then + raise Exception.Create ('Almacen no asignada'); + + ShowHourglassCursor; + try + if (AFabricante.State in dsEditModes) then + AFabricante.Cancel; + + AFabricante.Delete; + AFabricante.DataTable.ApplyUpdates; + HideHourglassCursor; + Result := True; + finally + HideHourglassCursor; + end; +end; + +procedure TFabricantesController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +begin + inherited; +// +end; + +function TFabricantesController.Guardar(AFabricante: IBizFabricante): Boolean; +begin + Result := False; + + if not Assigned(AFabricante) then + raise Exception.Create ('Almacen no asignada'); + + ValidarObjetos; + + if ValidarFabricante(AFabricante) then + begin + ShowHourglassCursor; + try + AFabricante.DataTable.ApplyUpdates; + + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TFabricantesController.Localizar(AFabricantes: IBizFabricante; ADescripcion: String): Boolean; +begin + Result := True; + ShowHourglassCursor; + try + with AFabricantes.DataTable do + begin + DisableControls; + First; + if not Locate(fld_FabricantesDESCRIPCION, ADescripcion, []) then + Result := False; + EnableControls; + end; + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Fabricantes/Data/Fabricantes_data.dcu b/Source/Modulos/Fabricantes/Data/Fabricantes_data.dcu new file mode 100644 index 0000000..8b1aed1 Binary files /dev/null and b/Source/Modulos/Fabricantes/Data/Fabricantes_data.dcu differ diff --git a/Source/Modulos/Fabricantes/Data/Fabricantes_data.dpk b/Source/Modulos/Fabricantes/Data/Fabricantes_data.dpk new file mode 100644 index 0000000..baa0b13 Binary files /dev/null and b/Source/Modulos/Fabricantes/Data/Fabricantes_data.dpk differ diff --git a/Source/Modulos/Fabricantes/Data/Fabricantes_data.dproj b/Source/Modulos/Fabricantes/Data/Fabricantes_data.dproj new file mode 100644 index 0000000..dac126b --- /dev/null +++ b/Source/Modulos/Fabricantes/Data/Fabricantes_data.dproj @@ -0,0 +1,554 @@ + + + + {55d06c67-fc74-4d88-8787-801dee872bb3} + Fabricantes_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Fabricantes_data.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Fabricantes_data.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + +
DataModuleFabricante
+
+
+
+ diff --git a/Source/Modulos/Fabricantes/Data/Fabricantes_data.drc b/Source/Modulos/Fabricantes/Data/Fabricantes_data.drc new file mode 100644 index 0000000..141d4b7 --- /dev/null +++ b/Source/Modulos/Fabricantes/Data/Fabricantes_data.drc @@ -0,0 +1,17 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Fabricantes\Data\uDataModuleFabricantes.dfm */ +/* C:\Codigo\Source\Modulos\Fabricantes\Data\Fabricantes_data.res */ +/* c:\temp\dtf159.tmp */ diff --git a/Source/Modulos/Fabricantes/Data/Fabricantes_data.rc b/Source/Modulos/Fabricantes/Data/Fabricantes_data.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Fabricantes/Data/Fabricantes_data.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Fabricantes/Data/Fabricantes_data.res b/Source/Modulos/Fabricantes/Data/Fabricantes_data.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Fabricantes/Data/Fabricantes_data.res differ diff --git a/Source/Modulos/Fabricantes/Data/uDataModuleFabricantes.dcu b/Source/Modulos/Fabricantes/Data/uDataModuleFabricantes.dcu new file mode 100644 index 0000000..82362db Binary files /dev/null and b/Source/Modulos/Fabricantes/Data/uDataModuleFabricantes.dcu differ diff --git a/Source/Modulos/Fabricantes/Data/uDataModuleFabricantes.dfm b/Source/Modulos/Fabricantes/Data/uDataModuleFabricantes.dfm new file mode 100644 index 0000000..c7d8503 --- /dev/null +++ b/Source/Modulos/Fabricantes/Data/uDataModuleFabricantes.dfm @@ -0,0 +1,61 @@ +inherited DataModuleFabricantes: TDataModuleFabricantes + OnCreate = DAClientDataModuleCreate + Height = 165 + Width = 409 + object RORemoteService: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvFabricantes' + Left = 48 + Top = 24 + end + object rda_Fabricantes: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetDataCall.RemoteService = RORemoteService + UpdateDataCall.RemoteService = RORemoteService + GetScriptsCall.RemoteService = RORemoteService + RemoteService = RORemoteService + DataStreamer = Bin2DataStreamer + Left = 203 + Top = 23 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 96 + end + object tbl_Fabricantes: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_FABRICANTES_ID' + Required = True + ServerAutoRefresh = True + DictionaryEntry = 'Fabricantes_ID' + InPrimaryKey = True + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DisplayLabel = 'Descripci'#195#179'n' + DictionaryEntry = 'Fabricantes_DESCRIPCION' + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Fabricantes + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Fabricantes' + IndexDefs = <> + Left = 312 + Top = 32 + end + object ds_Fabricantes: TDADataSource + DataSet = tbl_Fabricantes.Dataset + DataTable = tbl_Fabricantes + Left = 312 + Top = 88 + end +end diff --git a/Source/Modulos/Fabricantes/Data/uDataModuleFabricantes.pas b/Source/Modulos/Fabricantes/Data/uDataModuleFabricantes.pas new file mode 100644 index 0000000..4da6a59 --- /dev/null +++ b/Source/Modulos/Fabricantes/Data/uDataModuleFabricantes.pas @@ -0,0 +1,112 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uDataModuleFabricantes; + +interface + +uses + SysUtils, Classes, DB, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, + + uIDataModuleFabricantes, uBizFabricantes, uDADataStreamer, uDARemoteDataAdapter, + uDAInterfaces, uRODynamicRequest, uDABin2DataStreamer, uDAMemDataTable, + uDataModuleBase; + +type + TDataModuleFabricantes = class(TDataModuleBase, IDataModuleFabricantes) + RORemoteService: TRORemoteService; + rda_Fabricantes: TDARemoteDataAdapter; + Bin2DataStreamer: TDABin2DataStreamer; + tbl_Fabricantes: TDAMemDataTable; + ds_Fabricantes: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + public + function GetItems: IBizFabricante; + function GetItem(const ID : Integer) : IBizFabricante; + function NewItem : IBizFabricante; + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, + schFabricantesClient_Intf; + +{ TDataModuleFabricantes } + +procedure TDataModuleFabricantes.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleFabricantes.GetItems: IBizFabricante; +var + AFabricante : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AFabricante := CloneDataTable(tbl_Fabricantes); + AFabricante.BusinessRulesID := BIZ_CLIENT_Fabricante; + + Result := (AFabricante as IBizFabricante); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleFabricantes.NewItem: IBizFabricante; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleFabricantes.GetItem(const ID: Integer): IBizFabricante; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + + with Result.DataTable.DynamicWhere do + begin + // (ID = :ID) + Condicion := NewBinaryExpression(NewField('', fld_FabricantesID), NewConstant(ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Fabricantes/Fabricantes_Group.groupproj b/Source/Modulos/Fabricantes/Fabricantes_Group.groupproj new file mode 100644 index 0000000..cd4a005 --- /dev/null +++ b/Source/Modulos/Fabricantes/Fabricantes_Group.groupproj @@ -0,0 +1,114 @@ + + + {033276d8-059f-49be-9cc2-3276e536a74d} + + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Fabricantes/Model/Data/uIDataModuleFabricantes.dcu b/Source/Modulos/Fabricantes/Model/Data/uIDataModuleFabricantes.dcu new file mode 100644 index 0000000..1ba83b0 Binary files /dev/null and b/Source/Modulos/Fabricantes/Model/Data/uIDataModuleFabricantes.dcu differ diff --git a/Source/Modulos/Fabricantes/Model/Data/uIDataModuleFabricantes.pas b/Source/Modulos/Fabricantes/Model/Data/uIDataModuleFabricantes.pas new file mode 100644 index 0000000..009221d --- /dev/null +++ b/Source/Modulos/Fabricantes/Model/Data/uIDataModuleFabricantes.pas @@ -0,0 +1,42 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uIDataModuleFabricantes; + +interface + +uses + uBizFabricantes; + +type + IDataModuleFabricantes = interface + ['{15D57E95-7964-482D-858D-EE49699B708A}'] + function GetItems: IBizFabricante; + function GetItem(const ID : Integer) : IBizFabricante; + function NewItem : IBizFabricante; + + end; + +implementation + +end. diff --git a/Source/Modulos/Fabricantes/Model/Fabricantes_model.dcu b/Source/Modulos/Fabricantes/Model/Fabricantes_model.dcu new file mode 100644 index 0000000..73c4ec6 Binary files /dev/null and b/Source/Modulos/Fabricantes/Model/Fabricantes_model.dcu differ diff --git a/Source/Modulos/Fabricantes/Model/Fabricantes_model.dpk b/Source/Modulos/Fabricantes/Model/Fabricantes_model.dpk new file mode 100644 index 0000000..55286b4 Binary files /dev/null and b/Source/Modulos/Fabricantes/Model/Fabricantes_model.dpk differ diff --git a/Source/Modulos/Fabricantes/Model/Fabricantes_model.dproj b/Source/Modulos/Fabricantes/Model/Fabricantes_model.dproj new file mode 100644 index 0000000..1b9fe8c --- /dev/null +++ b/Source/Modulos/Fabricantes/Model/Fabricantes_model.dproj @@ -0,0 +1,551 @@ + + + + {82fe21d8-609d-444d-879e-4d9e1c291607} + Fabricantes_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Fabricantes_model.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Release\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Fabricantes_model.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Fabricantes/Model/Fabricantes_model.drc b/Source/Modulos/Fabricantes/Model/Fabricantes_model.drc new file mode 100644 index 0000000..4763227 --- /dev/null +++ b/Source/Modulos/Fabricantes/Model/Fabricantes_model.drc @@ -0,0 +1,16 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Fabricantes\Model\Fabricantes_model.res */ +/* c:\temp\dtf157.tmp */ diff --git a/Source/Modulos/Fabricantes/Model/Fabricantes_model.rc b/Source/Modulos/Fabricantes/Model/Fabricantes_model.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Fabricantes/Model/Fabricantes_model.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Fabricantes/Model/Fabricantes_model.res b/Source/Modulos/Fabricantes/Model/Fabricantes_model.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Fabricantes/Model/Fabricantes_model.res differ diff --git a/Source/Modulos/Fabricantes/Model/schFabricantesClient_Intf.dcu b/Source/Modulos/Fabricantes/Model/schFabricantesClient_Intf.dcu new file mode 100644 index 0000000..3ef6f99 Binary files /dev/null and b/Source/Modulos/Fabricantes/Model/schFabricantesClient_Intf.dcu differ diff --git a/Source/Modulos/Fabricantes/Model/schFabricantesClient_Intf.pas b/Source/Modulos/Fabricantes/Model/schFabricantesClient_Intf.pas new file mode 100644 index 0000000..636be4e --- /dev/null +++ b/Source/Modulos/Fabricantes/Model/schFabricantesClient_Intf.pas @@ -0,0 +1,134 @@ +unit schFabricantesClient_Intf; + +interface + +uses + Classes, DB, schBase_Intf, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_Fabricantes = '{24607721-C2E1-4EFD-B898-307AC1462048}'; + + { Data table names } + nme_Fabricantes = 'Fabricantes'; + + { Fabricantes fields } + fld_FabricantesID = 'ID'; + fld_FabricantesDESCRIPCION = 'DESCRIPCION'; + + { Fabricantes field indexes } + idx_FabricantesID = 0; + idx_FabricantesDESCRIPCION = 1; + +type + { IFabricantes } + IFabricantes = interface(IDAStronglyTypedDataTable) + ['{6018A1F9-F72E-46E2-A71E-C34CA806D20E}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetDESCRIPCIONIsNull: Boolean; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + end; + + { TFabricantesDataTableRules } + TFabricantesDataTableRules = class(TIntfObjectDADataTableRules, IFabricantes) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants, uROBinaryHelpers; + +{ TFabricantesDataTableRules } +constructor TFabricantesDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TFabricantesDataTableRules.Destroy; +begin + inherited; +end; + +function TFabricantesDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_FabricantesID].AsInteger; +end; + +procedure TFabricantesDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_FabricantesID].AsInteger := aValue; +end; + +function TFabricantesDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_FabricantesID].IsNull; +end; + +procedure TFabricantesDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FabricantesID].AsVariant := Null; +end; + +function TFabricantesDataTableRules.GetDESCRIPCIONValue: String; +begin + result := DataTable.Fields[idx_FabricantesDESCRIPCION].AsString; +end; + +procedure TFabricantesDataTableRules.SetDESCRIPCIONValue(const aValue: String); +begin + DataTable.Fields[idx_FabricantesDESCRIPCION].AsString := aValue; +end; + +function TFabricantesDataTableRules.GetDESCRIPCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_FabricantesDESCRIPCION].IsNull; +end; + +procedure TFabricantesDataTableRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FabricantesDESCRIPCION].AsVariant := Null; +end; + + +initialization + RegisterDataTableRules(RID_Fabricantes, TFabricantesDataTableRules); + +end. diff --git a/Source/Modulos/Fabricantes/Model/schFabricantesServer_Intf.dcu b/Source/Modulos/Fabricantes/Model/schFabricantesServer_Intf.dcu new file mode 100644 index 0000000..4cc8d2d Binary files /dev/null and b/Source/Modulos/Fabricantes/Model/schFabricantesServer_Intf.dcu differ diff --git a/Source/Modulos/Fabricantes/Model/schFabricantesServer_Intf.pas b/Source/Modulos/Fabricantes/Model/schFabricantesServer_Intf.pas new file mode 100644 index 0000000..2b11441 --- /dev/null +++ b/Source/Modulos/Fabricantes/Model/schFabricantesServer_Intf.pas @@ -0,0 +1,143 @@ +unit schFabricantesServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schFabricantesClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_FabricantesDelta = '{4EA345C5-9E36-44DF-8403-CBEE4967A1B5}'; + +type + { IFabricantesDelta } + IFabricantesDelta = interface(IFabricantes) + ['{4EA345C5-9E36-44DF-8403-CBEE4967A1B5}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldDESCRIPCIONValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + end; + + { TFabricantesBusinessProcessorRules } + TFabricantesBusinessProcessorRules = class(TDABusinessProcessorRules, IFabricantes, IFabricantesDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull : Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldDESCRIPCIONIsNull : Boolean read GetOldDESCRIPCIONIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers, uDAInterfaces; + +{ TFabricantesBusinessProcessorRules } +constructor TFabricantesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TFabricantesBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TFabricantesBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FabricantesID]; +end; + +function TFabricantesBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FabricantesID]); +end; + +function TFabricantesBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FabricantesID]; +end; + +function TFabricantesBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FabricantesID]); +end; + +procedure TFabricantesBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FabricantesID] := aValue; +end; + +procedure TFabricantesBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FabricantesID] := Null; +end; + +function TFabricantesBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FabricantesDESCRIPCION]; +end; + +function TFabricantesBusinessProcessorRules.GetDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FabricantesDESCRIPCION]); +end; + +function TFabricantesBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FabricantesDESCRIPCION]; +end; + +function TFabricantesBusinessProcessorRules.GetOldDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FabricantesDESCRIPCION]); +end; + +procedure TFabricantesBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FabricantesDESCRIPCION] := aValue; +end; + +procedure TFabricantesBusinessProcessorRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FabricantesDESCRIPCION] := Null; +end; + + +initialization + RegisterBusinessProcessorRules(RID_FabricantesDelta, TFabricantesBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Fabricantes/Model/uBizFabricantes.dcu b/Source/Modulos/Fabricantes/Model/uBizFabricantes.dcu new file mode 100644 index 0000000..68276c2 Binary files /dev/null and b/Source/Modulos/Fabricantes/Model/uBizFabricantes.dcu differ diff --git a/Source/Modulos/Fabricantes/Model/uBizFabricantes.pas b/Source/Modulos/Fabricantes/Model/uBizFabricantes.pas new file mode 100644 index 0000000..a15eea6 --- /dev/null +++ b/Source/Modulos/Fabricantes/Model/uBizFabricantes.pas @@ -0,0 +1,141 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uBizFabricantes; + +interface + +uses + uDAInterfaces, uDADataTable, uDBSelectionListUtils, schFabricantesClient_Intf; + +const + BIZ_CLIENT_Fabricante = 'Client.Fabricante'; + +type + IBizFabricante = interface(IFabricantes) + ['{A82736D7-55AC-475F-8B08-98832EB6A1B1}'] + function EsNuevo : Boolean; + + // Descomentar esto si hay clases detalles + // procedure SetDetalles(AValue : IBizDetalles); + // function GetDetalles : IBizDetalles; + // property Detalles : IBizDetalles read GetDetalles write SetDetalles; + end; + + TBizFabricante = class(TFabricantesDataTableRules, IBizFabricante, ISeleccionable) + protected + FSeleccionableInterface : ISeleccionable; + + // Descomentar esto si hay clases detalles + // FDetalles : IBizDetalles; + // FDetallesLink : TDADataSource; + // procedure SetDetalles(AValue : IBizDetalles); + // function GetDetalles : IBizDetalles; + + procedure OnNewRecord(Sender: TDADataTable); override; + procedure AfterOpen(Sender: TDADataTable); override; + public + procedure IniciarValoresFabricanteNuevo; + function EsNuevo : Boolean; + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + property SeleccionableInterface : ISeleccionable + read FSeleccionableInterface + write FSeleccionableInterface + implements ISeleccionable; + + // Descomentar esto si hay clases detalles + // property Detalles : IBizDetalles read GetDetalles write SetDetalles; + end; + +implementation + +{ TBizFabricante } + +uses + SysUtils, uDataTableUtils; + +// Descomentar esto si hay clases detalles +// function TBizFabricante.GetDetalles: IBizDetalles; +// begin +// Result := FDetalles; +// end; + +// Descomentar esto si hay clases detalles +// procedure TBizFabricante.SetDetalles(AValue: IBizDetalles); +// begin +// FDetalles := AValue; +// EnlazarMaestroDetalle(FDetallesLink, FDetalles); +// end; + +procedure TBizFabricante.AfterOpen(Sender: TDADataTable); +begin + inherited; + DataTable.Sort([fld_FabricantesDESCRIPCION], [sdAscending]); +end; + +constructor TBizFabricante.Create(aDataTable: TDADataTable); +begin + inherited; + // Descomentar esto si hay clases detalles + // FDetallesLink := TDADataSource.Create(NIL); + // FDetallesLink.DataTable := aDataTable; + + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +destructor TBizFabricante.Destroy; +begin + // Descomentar esto si hay clases detalles + // FDetalles := NIL; + // FreeAndNIL(FDetallesLink); + + FSeleccionableInterface := NIL; + inherited; +end; + +function TBizFabricante.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +procedure TBizFabricante.IniciarValoresFabricanteNuevo; +begin + // +end; + +procedure TBizFabricante.OnNewRecord(Sender: TDADataTable); +begin + inherited; + ID := GetRecNo; // -1, -2, -3... + IniciarValoresFabricanteNuevo; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_Fabricante, TBizFabricante); + +finalization + +end. + diff --git a/Source/Modulos/Fabricantes/Plugin/Fabricantes_plugin.dcu b/Source/Modulos/Fabricantes/Plugin/Fabricantes_plugin.dcu new file mode 100644 index 0000000..955415b Binary files /dev/null and b/Source/Modulos/Fabricantes/Plugin/Fabricantes_plugin.dcu differ diff --git a/Source/Modulos/Fabricantes/Plugin/Fabricantes_plugin.dpk b/Source/Modulos/Fabricantes/Plugin/Fabricantes_plugin.dpk new file mode 100644 index 0000000..207b252 Binary files /dev/null and b/Source/Modulos/Fabricantes/Plugin/Fabricantes_plugin.dpk differ diff --git a/Source/Modulos/Fabricantes/Plugin/Fabricantes_plugin.dproj b/Source/Modulos/Fabricantes/Plugin/Fabricantes_plugin.dproj new file mode 100644 index 0000000..36496b7 --- /dev/null +++ b/Source/Modulos/Fabricantes/Plugin/Fabricantes_plugin.dproj @@ -0,0 +1,546 @@ + + + + {139324a2-0c57-446d-aebd-edd9578e22fd} + Fabricantes_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Fabricantes_plugin.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Release\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Fabricantes_plugin.dpk + + + + + MainSource + + + + + + + + + + +
PluginFabricantes
+
+ +
+
+ diff --git a/Source/Modulos/Fabricantes/Plugin/Fabricantes_plugin.rc b/Source/Modulos/Fabricantes/Plugin/Fabricantes_plugin.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Fabricantes/Plugin/Fabricantes_plugin.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Fabricantes/Plugin/Fabricantes_plugin.res b/Source/Modulos/Fabricantes/Plugin/Fabricantes_plugin.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Fabricantes/Plugin/Fabricantes_plugin.res differ diff --git a/Source/Modulos/Fabricantes/Plugin/uPluginFabricantes.dcu b/Source/Modulos/Fabricantes/Plugin/uPluginFabricantes.dcu new file mode 100644 index 0000000..824ca21 Binary files /dev/null and b/Source/Modulos/Fabricantes/Plugin/uPluginFabricantes.dcu differ diff --git a/Source/Modulos/Fabricantes/Plugin/uPluginFabricantes.dfm b/Source/Modulos/Fabricantes/Plugin/uPluginFabricantes.dfm new file mode 100644 index 0000000..0ea4d57 --- /dev/null +++ b/Source/Modulos/Fabricantes/Plugin/uPluginFabricantes.dfm @@ -0,0 +1,136 @@ +object PluginFabricantes: TPluginFabricantes + OldCreateOrder = True + DefaultAction = actFabricantes + Description = 'Fabricantes' + ModuleMenu = MainMenu + ModuleName = 'Fabricantes' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software S.L.' + Version = '1.0.0' + Height = 234 + Width = 459 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002874944415478DA + B5944D68134114C7DF50C47E585BA2D0B095924095A51E4CA5CA2208D58BE9AD + 154F06CA565452A1A224E736F4165088F45222480881DE6C901EA4274F122FC9 + 0A3DE450684C2FA188C4A6F9EA6EB2CE5BBBC36E13936CA40F1E339999FC7FFB + E63F3344555538CB20670EE864D1FA7AC2471B81E6384DD7C9B044739766C2EB + 15DE760C0804246349F18101A53438A83CE6790EC6C62E82D339C4268B451962 + B1644B5053C0CACA0DF63B184C42A5D20399CC1736B6BC2C6A2004E8B9BD9DC6 + 29FF6908317E7520E022B4EFA1DD18428E8E6428148E211CDE8DD3B9B993B5DA + BCDF3F6102944A0AA4523F1A20C4F8D50B0BEF2012798510D5E79BD0C4313736 + B21ADC58E5E2E2559378B9FCB7CD660F80024853000642D6D65E3071CCADAD1C + 033C7BFE441DE55EC2FCBCA3411C7367A704767B85556102C8721DAAD59A49DC + 66EB856834A301425E507F2AD7A176E91E9CEF7B0A333323267145A9433E9F6F + 345914439B3E9F6796E32E306104A1389AB9B7F75B83B8875D50EBE761F36B11 + F2E7EEC395D1D726F31D8E69AD32FD3FABAB115681872E7C8490C3C3636DF1FE + 7E8196DACF8EA60E79303205A4AA40F0130797C7DDF03EFC81E8772597EB7D83 + 000C141704C16F344E83D0EEAC3EE676BB9B4286732E887EE321994A9B8E396E + 35027471F4A1E54DA65BA7FE0B623C5546006E992EDEF4A2E981860A3C2D5D0A + 811548DB9B6C14770922A43312843E8B5D43483BF14A4E82047D05A44A779590 + 4EC47543AD7A6202B413EFD6786245BC1B08B12A6E1542961EDAD4E93BD7A047 + FE0EF6BE7247E2ED2078D1F055665B74739257EFF2BFC03974D0B1782B087D91 + E31430673279EAF62DB52E172C89378344221F9978C331FD9F40086D4CE2187F + 00FADE10E28785B5A40000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = SmallImages + Left = 40 + Top = 72 + object actFabricantes: TAction + Category = 'Datos' + Caption = 'Fabricantes' + ImageIndex = 0 + OnExecute = actFabricantesExecute + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object Ventas1: TMenuItem + Caption = 'Datos' + object Fabricantes1: TMenuItem + Tag = 313 + Action = actFabricantes + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C18000001604944415478DA + A5923F48C34014C6DF81B838A88B145DD22D20D8E8505737330A5D9CE4BA650C + 34739BEE0AE7E658B277A8939364B5A0C6A19231500417A14D177539EF1D5EB8 + E64F1D3C7821B9F7BE1FDFFB08E19CC37F0E512FBE1FE9244FD465C9BCE7FBD6 + 5529000FA58C33E60063B1005A04BFF1BEDBA550AF6F42BFFF5280C8A1C1C025 + CA45ABB507C3E19B04FCDE75D04DAFD780F9FC4BC275880418C649E6220F5060 + D735613A5DC81A8FD3AC4F946D6C4C261FD06CD62008926C40B4F8AC164930CE + A4E937DC3F8E6077E354BA4040470FCCB66D5186B4BAF56E814329C44904EC8E + CAFE6C6D013BDBEB08280D51C274C89949210C23081E4C787A8E899E49BB7DBD + 0CA882DC8ECEA558CF244942C0F00B00DC196D3B37D6D23A7AA895FF8112E3CE + 683BFA647F42489518773E68385E7E9D3C845489D5CE6599E810B24A5C166CFE + 3F918FA343935F1CC7A5E23C44D4AB487FBF900142AAC4ABCE0F9C32EE2C4B99 + 4F200000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 94000000097048597300004E2000004E2001167D99DE000002C04944415478DA + E5D54D6813411400E0B788D816B1A5150CA99404AA2CF5E02AFE2C82503DA5B7 + 14BD054A2A6A130F5549CE6DDA9BD0424A2F69041B42A517B1417A909E3C497A + 3129F49043A131BD8422129BE6A7CDCF3A6F935932C96E9AB0928B0F1E43B233 + FBCD4CDE4C384992A093C1FD1F20C7712D0FF0F9C22ED2882487490AD5AFA324 + F748861D0E71516BAC6CB50356B1059E37C2D0D025309B7B99E72B2BDB4D6155 + D0E389D6EE7188E4278F47F85805A564B20BE2F16F4A879919BB0C67320525B7 + B662F8C85D8F6A82B3B33795CF73733B0C5A1BA4AF8D346B6EF7080366B34588 + 447E36A00A485E2A555E2070F425881E1F17209D3E05BF7F2F449E8DAB6D334E + D0E9BCC660B95CA54D240E81809C2A88C0E4E41204026F10955CAE1119C35C5F + 4FC893A9C75EBC7C260D1AA76162C2D48061EEEE66C160C82BAB6C0031105D5E + 7EA560989B9BC906D0EB00E957F10694061EC185EEE730367685C18AC532A452 + 2966825353F739062C14CA70725262B0FEFE2E0806E30C8898C803947A78D8F8 + 9E81D4F9C77075F02D534C26D3A8BC722CA8FDFD3F303F1F80D5D5D71590AC6A + C3E5B2598DC68B0A8430627400452926887652186BC09D14E1DD17235C1EB6C0 + 7BFF078E1E1F52CD0B086220268AA29BAC7091AED04666F714D1A3A353B9D3C1 + 419AEC7F8F72DE286AE913642C168F423E1985303901C16D1E7E4462CC96631D + 204831FC1D996381D58928E96BA5832C168B2A6AE5ED4D310AE216534CF31CD6 + 86DDEE95B4D0BEA4A08969454B575B3354EDA8E8026981F8A25EF8176853B0B6 + 1AB140BC5FEDBA514DB01EA30512CDEB5BA92AA885D102D1F39B368067617A0B + 89015BC5F4A00AB8E4E4DAC2CE42F176C17F1D4D70FAC98034FAE03A9C2BEC80 + A13BD712D60C2577738880E39A206EE9ED5BBCF490FF0DE6DEC3B66F905A3410 + F8AC8AA916CD9D7B77A57221DD16568B92461363C04E46C7C1BF0E73BFE74CCD + 6AD20000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 80 + Bitmap = {} + end +end diff --git a/Source/Modulos/Fabricantes/Plugin/uPluginFabricantes.pas b/Source/Modulos/Fabricantes/Plugin/uPluginFabricantes.pas new file mode 100644 index 0000000..4b6b4b8 --- /dev/null +++ b/Source/Modulos/Fabricantes/Plugin/uPluginFabricantes.pas @@ -0,0 +1,73 @@ +unit uPluginFabricantes; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCFabricantes = interface(IInterface) + ['{F7C8960F-5ECE-492B-8D6C-D068DAA66E6C}'] + end; + + TPluginFabricantes = class(TModuleController, IMCFabricantes) + actFabricantes: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + Ventas1: TMenuItem; + Fabricantes1: TMenuItem; + procedure actFabricantesExecute(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, + uFabricantesController, uBizFabricantes, uFabricantesViewRegister; + +function GetModule : TModuleController; +begin + Result := TPluginFabricantes.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +procedure TPluginFabricantes.actFabricantesExecute(Sender: TObject); +var + AFabricantesController : IFabricantesController; + AFabricantes : IBizFabricante; +begin + AFabricantesController := TFabricantesController.Create; + AFabricantes := (AFabricantesController.BuscarTodos as IBizFabricante); + AFabricantesController.VerTodos(AFabricantes); +end; + +constructor TPluginFabricantes.Create(AOwner: TComponent); +begin + inherited; + uFabricantesViewRegister.RegisterViews; +end; + +destructor TPluginFabricantes.Destroy; +begin + uFabricantesViewRegister.UnregisterViews; + inherited; +end; + +initialization + RegisterModuleClass(TPluginFabricantes); + +finalization + UnRegisterModuleClass(TPluginFabricantes); + +end. diff --git a/Source/Modulos/Fabricantes/Servidor/srvFabricantes_Impl.dcu b/Source/Modulos/Fabricantes/Servidor/srvFabricantes_Impl.dcu new file mode 100644 index 0000000..a62234d Binary files /dev/null and b/Source/Modulos/Fabricantes/Servidor/srvFabricantes_Impl.dcu differ diff --git a/Source/Modulos/Fabricantes/Servidor/srvFabricantes_Impl.dfm b/Source/Modulos/Fabricantes/Servidor/srvFabricantes_Impl.dfm new file mode 100644 index 0000000..12cb86a --- /dev/null +++ b/Source/Modulos/Fabricantes/Servidor/srvFabricantes_Impl.dfm @@ -0,0 +1,88 @@ +object srvFabricantes: TsrvFabricantes + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + ServiceSchema = schFabricantes + ServiceDataStreamer = Bin2DataStreamer + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + Height = 300 + Width = 334 + object Diagrams: TDADiagrams + Left = 150 + Top = 88 + DiagramData = ''#13#10''#13#10 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'Fabricantes_ID' + DataType = datAutoInc + GeneratorName = 'GEN_FABRICANTES_ID' + Required = True + DisplayLabel = 'ID' + ServerAutoRefresh = True + end + item + Name = 'Fabricantes_DESCRIPCION' + DataType = datString + Size = 255 + DisplayLabel = 'Descripci'#243'n' + end> + Left = 150 + Top = 24 + end + object schFabricantes: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Diagrams = Diagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'FABRICANTES' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end> + end> + Name = 'Fabricantes' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_FABRICANTES_ID' + ServerAutoRefresh = True + DictionaryEntry = 'Fabricantes_ID' + InPrimaryKey = True + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DictionaryEntry = 'Fabricantes_DESCRIPCION' + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 88 + end +end diff --git a/Source/Modulos/Fabricantes/Servidor/srvFabricantes_Impl.pas b/Source/Modulos/Fabricantes/Servidor/srvFabricantes_Impl.pas new file mode 100644 index 0000000..95920d5 --- /dev/null +++ b/Source/Modulos/Fabricantes/Servidor/srvFabricantes_Impl.pas @@ -0,0 +1,61 @@ +unit srvFabricantes_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} uDABusinessProcessor, uDABin2DataStreamer, uDADataStreamer, + uDAScriptingProvider, uDAClasses, + FactuGES_Intf, uDAInterfaces; + +type + { TsrvFabricantes } + TsrvFabricantes = class(TDataAbstractService, IsrvFabricantes) + Diagrams: TDADiagrams; + Bin2DataStreamer: TDABin2DataStreamer; + schFabricantes: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceCreate(Sender: TObject); + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; + var aConnectionName: string); + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer, uDatabaseUtils; + +procedure Create_srvFabricantes(out anInstance : IUnknown); +begin + anInstance := TsrvFabricantes.Create(NIL); +end; + +{ srvFabricantes } +procedure TsrvFabricantes.DARemoteServiceCreate(Sender: TObject); +begin + SessionManager := dmServer.SessionManager; +end; + +procedure TsrvFabricantes.DataAbstractServiceBeforeAcquireConnection( + aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +initialization + TROClassFactory.Create('srvFabricantes', Create_srvFabricantes, TsrvFabricantes_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Fabricantes/Views/Fabricantes_view.dcu b/Source/Modulos/Fabricantes/Views/Fabricantes_view.dcu new file mode 100644 index 0000000..f9df68e Binary files /dev/null and b/Source/Modulos/Fabricantes/Views/Fabricantes_view.dcu differ diff --git a/Source/Modulos/Fabricantes/Views/Fabricantes_view.dpk b/Source/Modulos/Fabricantes/Views/Fabricantes_view.dpk new file mode 100644 index 0000000..a9cb51d Binary files /dev/null and b/Source/Modulos/Fabricantes/Views/Fabricantes_view.dpk differ diff --git a/Source/Modulos/Fabricantes/Views/Fabricantes_view.dproj b/Source/Modulos/Fabricantes/Views/Fabricantes_view.dproj new file mode 100644 index 0000000..e94547a --- /dev/null +++ b/Source/Modulos/Fabricantes/Views/Fabricantes_view.dproj @@ -0,0 +1,545 @@ + + + {e3d36a6f-7004-4c89-9f3d-f2d77e386d1b} + Fabricantes_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Fabricantes_view.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Release\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Fabricantes_view.dpk + + + + + MainSource + + + + + + + + + +
fEditorFabricantes
+ TfEditorUnidadesMedida +
+ +
+
+ diff --git a/Source/Modulos/Fabricantes/Views/Fabricantes_view.rc b/Source/Modulos/Fabricantes/Views/Fabricantes_view.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Fabricantes/Views/Fabricantes_view.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Fabricantes/Views/Fabricantes_view.res b/Source/Modulos/Fabricantes/Views/Fabricantes_view.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Fabricantes/Views/Fabricantes_view.res differ diff --git a/Source/Modulos/Fabricantes/Views/uEditorFabricantes.dcu b/Source/Modulos/Fabricantes/Views/uEditorFabricantes.dcu new file mode 100644 index 0000000..d1453f0 Binary files /dev/null and b/Source/Modulos/Fabricantes/Views/uEditorFabricantes.dcu differ diff --git a/Source/Modulos/Fabricantes/Views/uEditorFabricantes.dfm b/Source/Modulos/Fabricantes/Views/uEditorFabricantes.dfm new file mode 100644 index 0000000..c82fd5a --- /dev/null +++ b/Source/Modulos/Fabricantes/Views/uEditorFabricantes.dfm @@ -0,0 +1,144 @@ +object fEditorFabricantes: TfEditorFabricantes + Left = 453 + Top = 234 + ActiveControl = ListaFabricantes + BorderIcons = [biSystemMenu] + BorderStyle = bsSingle + Caption = 'Administraci'#243'n de fabricantes' + ClientHeight = 494 + ClientWidth = 404 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = CustomEditorClose + OnShow = FormShow + InstanceID = 0 + ReadOnly = False + PixelsPerInch = 96 + TextHeight = 13 + object bAceptar: TButton + Left = 235 + Top = 462 + Width = 75 + Height = 23 + Action = actAceptar + Default = True + TabOrder = 1 + end + object bCancelar: TButton + Left = 321 + Top = 462 + Width = 75 + Height = 23 + Action = actCancelar + Cancel = True + TabOrder = 2 + end + object PageControl1: TPageControl + Left = 8 + Top = 8 + Width = 390 + Height = 442 + ActivePage = TabSheet1 + TabOrder = 0 + object TabSheet1: TTabSheet + Caption = 'Fabricantes' + object Label1: TLabel + Left = 10 + Top = 12 + Width = 147 + Height = 13 + Caption = 'Lista de fabricantes disponibles' + end + object Label2: TLabel + Left = 10 + Top = 326 + Width = 128 + Height = 13 + Caption = 'A'#241'adir un nuevo fabricante' + end + object Bevel1: TBevel + Left = 144 + Top = 330 + Width = 232 + Height = 5 + Shape = bsBottomLine + end + object eCategoria: TLabel + Left = 18 + Top = 353 + Width = 40 + Height = 13 + Caption = 'Nombre:' + end + object ListaFabricantes: TDBLookupListBox + Left = 8 + Top = 31 + Width = 262 + Height = 277 + KeyField = 'RecID' + ListField = 'DESCRIPCION' + ListSource = DADataSource + TabOrder = 0 + end + object bEliminar: TButton + Left = 281 + Top = 31 + Width = 95 + Height = 23 + Action = actEliminar + TabOrder = 1 + end + object editFabricante: TEdit + Left = 64 + Top = 349 + Width = 312 + Height = 21 + TabOrder = 2 + end + object bAnadir: TButton + Left = 281 + Top = 382 + Width = 95 + Height = 23 + Action = actAnadir + TabOrder = 3 + end + end + end + object ActionList1: TActionList + Left = 144 + Top = 16 + object actAnadir: TAction + Caption = '&A'#241'adir' + OnExecute = actAnadirExecute + OnUpdate = actAnadirUpdate + end + object actEliminar: TAction + Caption = '&Eliminar' + OnExecute = actEliminarExecute + OnUpdate = actEliminarUpdate + end + object actAceptar: TAction + Caption = 'A&ceptar' + OnExecute = actAceptarExecute + end + object actCancelar: TAction + Caption = '&Cancelar' + OnExecute = actCancelarExecute + end + object actCerrar: TAction + Caption = 'actCerrar' + OnExecute = actCerrarExecute + end + end + object DADataSource: TDADataSource + Left = 168 + Top = 16 + end +end diff --git a/Source/Modulos/Fabricantes/Views/uEditorFabricantes.pas b/Source/Modulos/Fabricantes/Views/uEditorFabricantes.pas new file mode 100644 index 0000000..d0a1221 --- /dev/null +++ b/Source/Modulos/Fabricantes/Views/uEditorFabricantes.pas @@ -0,0 +1,181 @@ +{ +=============================================================================== + Copyright () 2006. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: 22-05-2006 + Versin actual: 1.0.0 + Fecha versin actual: 22-05-2006 +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uEditorFabricantes; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, DB, StdCtrls, DBCtrls, uDADataTable, ActnList, + uIEditorFabricantes, uCustomEditor, uGUIBase, ExtCtrls, + ComCtrls, uBizFabricantes, uFabricantesController, uDAInterfaces; + +type + TfEditorFabricantes = class(TCustomEditor, IEditorFabricantes) + ActionList1: TActionList; + DADataSource: TDADataSource; + ListaFabricantes: TDBLookupListBox; + actAnadir: TAction; + actEliminar: TAction; + bEliminar: TButton; + actAceptar: TAction; + actCancelar: TAction; + bAceptar: TButton; + bCancelar: TButton; + actCerrar: TAction; + PageControl1: TPageControl; + TabSheet1: TTabSheet; + Label1: TLabel; + Label2: TLabel; + Bevel1: TBevel; + eCategoria: TLabel; + editFabricante: TEdit; + bAnadir: TButton; + procedure FormShow(Sender: TObject); + procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); + + procedure actAnadirExecute(Sender: TObject); + procedure actEliminarExecute(Sender: TObject); + procedure actAceptarExecute(Sender: TObject); + procedure actCancelarExecute(Sender: TObject); + procedure actCerrarExecute(Sender: TObject); + procedure actAnadirUpdate(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + protected + FFabricantes: IBizFabricante; + FController: IFabricantesController; + function GetFabricantes: IBizFabricante; + procedure SetFabricantes(const Value: IBizFabricante); + function GetController : IFabricantesController; + procedure SetController (const Value : IFabricantesController); + public + property Fabricantes: IBizFabricante read GetFabricantes write SetFabricantes; + property Controller : IFabricantesController read GetController write SetController; + end; + + +implementation +{$R *.dfm} + +{ TfEditorFabricantes } + +uses + uDialogUtils; + +function TfEditorFabricantes.GetController: IFabricantesController; +begin + Result := FController; +end; + +function TfEditorFabricantes.GetFabricantes: IBizFabricante; +begin + Result := FFabricantes; +end; + +procedure TfEditorFabricantes.SetController(const Value: IFabricantesController); +begin + FController := Value; +end; + +procedure TfEditorFabricantes.SetFabricantes(const Value: IBizFabricante); +begin + FFabricantes := Value; + DADataSource.DataTable := (FFabricantes as IBizFabricante).DataTable; + DADataSource.DataTable.Open; +end; + +procedure TfEditorFabricantes.actAnadirExecute(Sender: TObject); +begin + if not FController.Localizar(Fabricantes, editFabricante.Text) then + begin + Fabricantes.Append; + Fabricantes.DESCRIPCION := editFabricante.Text; + Fabricantes.Post; + editFabricante.Clear; + ListaFabricantes.SetFocus; + end + else + ShowErrorMessage('Ya existe la unidad ' + editFabricante.Text, + 'Ya existe la unidad ''' + editFabricante.Text + ''' en la lista.'); +end; + +procedure TfEditorFabricantes.actEliminarExecute(Sender: TObject); +begin + Fabricantes.Delete; + ListaFabricantes.SetFocus; +end; + +procedure TfEditorFabricantes.actEliminarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := (FFabricantes.DataTable.RecordCount > 0) and + (Length(ListaFabricantes.SelectedItem) > 0); + +end; + +procedure TfEditorFabricantes.CustomEditorClose(Sender: TObject; var Action: TCloseAction); +begin + FFabricantes := Nil; + FController := Nil; +end; + +procedure TfEditorFabricantes.actAceptarExecute(Sender: TObject); +begin + try + Fabricantes.DataTable.ApplyUpdates; + except + on E : Exception do begin + Fabricantes.DataTable.CancelUpdates; + ShowErrorMessage('Error al guardar cambios', 'Se ha producido un error grave', E); + exit; + end; + end; + actCerrar.Execute; +end; + +procedure TfEditorFabricantes.actCancelarExecute(Sender: TObject); +begin + Fabricantes.DataTable.CancelUpdates; + actCerrar.Execute; +end; + +procedure TfEditorFabricantes.actCerrarExecute(Sender: TObject); +begin + Close; +end; + +procedure TfEditorFabricantes.actAnadirUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := (Length(editFabricante.Text) > 0) +end; + +procedure TfEditorFabricantes.FormShow(Sender: TObject); +begin + if not FFabricantes.DataTable.Active then + FFabricantes.DataTable.Active := true; + + FFabricantes.DataTable.Sort(['DESCRIPCION'], [sdAscending]); + EditFabricante.SetFocus; +end; + +end. diff --git a/Source/Modulos/Fabricantes/Views/uFabricantesViewRegister.dcu b/Source/Modulos/Fabricantes/Views/uFabricantesViewRegister.dcu new file mode 100644 index 0000000..faf9aab Binary files /dev/null and b/Source/Modulos/Fabricantes/Views/uFabricantesViewRegister.dcu differ diff --git a/Source/Modulos/Fabricantes/Views/uFabricantesViewRegister.pas b/Source/Modulos/Fabricantes/Views/uFabricantesViewRegister.pas new file mode 100644 index 0000000..d1c389c --- /dev/null +++ b/Source/Modulos/Fabricantes/Views/uFabricantesViewRegister.pas @@ -0,0 +1,23 @@ +unit uFabricantesViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorFabricantes; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorFabricantes, 'EditorFabricantes'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorFabricantes); +end; + +end. diff --git a/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.bdsproj b/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.bdsproj new file mode 100644 index 0000000..3428492 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + FacturasCliente_controller.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.dcu b/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.dcu new file mode 100644 index 0000000..3940ef7 Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.dpk b/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.dpk new file mode 100644 index 0000000..ac1db4e Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.dpk differ diff --git a/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.dproj b/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.dproj new file mode 100644 index 0000000..37905b8 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.dproj @@ -0,0 +1,554 @@ + + + {7ed85635-c723-4c0b-bf1d-f719e0ea33ad} + FacturasCliente_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\FacturasCliente_controller.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0FacturasCliente_controller.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.drc b/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.drc new file mode 100644 index 0000000..3d53f34 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.drc @@ -0,0 +1,16 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Facturas de cliente\Controller\FacturasCliente_controller.res */ +/* c:\temp\dtf1A7.tmp */ diff --git a/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.rc b/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.res b/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.res differ diff --git a/Source/Modulos/Facturas de cliente/Controller/View/uIEditorElegirArticulosFacturasCliente.dcu b/Source/Modulos/Facturas de cliente/Controller/View/uIEditorElegirArticulosFacturasCliente.dcu new file mode 100644 index 0000000..8d25f08 Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Controller/View/uIEditorElegirArticulosFacturasCliente.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Controller/View/uIEditorElegirArticulosFacturasCliente.pas b/Source/Modulos/Facturas de cliente/Controller/View/uIEditorElegirArticulosFacturasCliente.pas new file mode 100644 index 0000000..f77a3fe --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Controller/View/uIEditorElegirArticulosFacturasCliente.pas @@ -0,0 +1,16 @@ +unit uIEditorElegirArticulosFacturasCliente; + +interface + +uses + uIEditorElegirArticulos; + +type + IEditorElegirArticulosFacturasCliente = interface(IEditorElegirArticulos) + ['{84BBDB97-8717-4EC6-9F61-BDE0C4E34B2B}'] + end; + + +implementation + +end. diff --git a/Source/Modulos/Facturas de cliente/Controller/View/uIEditorElegirFacturasCliente.dcu b/Source/Modulos/Facturas de cliente/Controller/View/uIEditorElegirFacturasCliente.dcu new file mode 100644 index 0000000..eda69b8 Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Controller/View/uIEditorElegirFacturasCliente.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Controller/View/uIEditorElegirFacturasCliente.pas b/Source/Modulos/Facturas de cliente/Controller/View/uIEditorElegirFacturasCliente.pas new file mode 100644 index 0000000..a58bd98 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Controller/View/uIEditorElegirFacturasCliente.pas @@ -0,0 +1,27 @@ +unit uIEditorElegirFacturasCliente; + +interface + +uses + uIEditorFacturasCliente, uBizFacturasCliente, uGUIBase; + +type + IEditorElegirFacturasCliente = interface(IEditorFacturasCliente) + ['{ACCA545C-3D0C-4FD1-9472-A41AD3C2AF9E}'] + function GetFacturasClienteSeleccionados: IBizFacturaCliente; + property FacturasClienteSeleccionados: IBizFacturaCliente read GetFacturasClienteSeleccionados; + + procedure SetMultiSelect (AValue : Boolean); + function GetMultiSelect : Boolean; + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + + procedure SetMensaje (const AValue: String); + function GetMensaje: String; + property Mensaje : String read GetMensaje write SetMensaje; + + end; + + +implementation + +end. diff --git a/Source/Modulos/Facturas de cliente/Controller/View/uIEditorFacturaCliente.dcu b/Source/Modulos/Facturas de cliente/Controller/View/uIEditorFacturaCliente.dcu new file mode 100644 index 0000000..49418a6 Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Controller/View/uIEditorFacturaCliente.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Controller/View/uIEditorFacturaCliente.pas b/Source/Modulos/Facturas de cliente/Controller/View/uIEditorFacturaCliente.pas new file mode 100644 index 0000000..ca15a13 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Controller/View/uIEditorFacturaCliente.pas @@ -0,0 +1,23 @@ +unit uIEditorFacturaCliente; + +interface + +uses + uEditorDBItem, uBizFacturasCliente, uFacturasClienteController; + +type + IEditorFacturaCliente = interface(IEditorDBItem) + ['{644C8935-438F-426E-B707-40EA467506F5}'] + function GetController : IFacturasClienteController; + procedure SetController (const Value : IFacturasClienteController); + property Controller : IFacturasClienteController read GetController + write SetController; + + function GetFactura: IBizFacturaCliente; + procedure SetFactura(const Value: IBizFacturaCliente); + property Factura: IBizFacturaCliente read GetFactura write SetFactura; + end; + +implementation + +end. diff --git a/Source/Modulos/Facturas de cliente/Controller/View/uIEditorFacturasCliente.dcu b/Source/Modulos/Facturas de cliente/Controller/View/uIEditorFacturasCliente.dcu new file mode 100644 index 0000000..6a95216 Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Controller/View/uIEditorFacturasCliente.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Controller/View/uIEditorFacturasCliente.pas b/Source/Modulos/Facturas de cliente/Controller/View/uIEditorFacturasCliente.pas new file mode 100644 index 0000000..7b7fd02 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Controller/View/uIEditorFacturasCliente.pas @@ -0,0 +1,23 @@ +unit uIEditorFacturasCliente; + +interface + +uses + uEditorGridBase, uBizFacturasCliente, uFacturasClienteController; + +type + IEditorFacturasCliente = interface(IEditorGridBase) + ['{85006835-66D2-4E5C-B206-CF713E419077}'] + function GetFacturas: IBizFacturaCliente; + procedure SetFacturas(const Value: IBizFacturaCliente); + property Facturas: IBizFacturaCliente read GetFacturas write SetFacturas; + + function GetController : IFacturasClienteController; + procedure SetController (const Value : IFacturasClienteController); + property Controller : IFacturasClienteController read GetController write SetController; + end; + + +implementation + +end. diff --git a/Source/Modulos/Facturas de cliente/Controller/View/uIEditorFacturasClientePreview.dcu b/Source/Modulos/Facturas de cliente/Controller/View/uIEditorFacturasClientePreview.dcu new file mode 100644 index 0000000..0c439a0 Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Controller/View/uIEditorFacturasClientePreview.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Controller/View/uIEditorFacturasClientePreview.pas b/Source/Modulos/Facturas de cliente/Controller/View/uIEditorFacturasClientePreview.pas new file mode 100644 index 0000000..97fe3df --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Controller/View/uIEditorFacturasClientePreview.pas @@ -0,0 +1,16 @@ +unit uIEditorFacturasClientePreview; + +interface + +uses + uEditorPreview, uBizFacturasCliente, uFacturasClienteReportController; + +type + IEditorFacturasClientePreview = interface(IEditorPreview) + ['{0B893ED1-261A-4358-814E-18D7FD768E14}'] + end; + + +implementation + +end. diff --git a/Source/Modulos/Facturas de cliente/Controller/View/uIEditorSituacionFacturaCliente.dcu b/Source/Modulos/Facturas de cliente/Controller/View/uIEditorSituacionFacturaCliente.dcu new file mode 100644 index 0000000..07a20eb Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Controller/View/uIEditorSituacionFacturaCliente.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Controller/View/uIEditorSituacionFacturaCliente.pas b/Source/Modulos/Facturas de cliente/Controller/View/uIEditorSituacionFacturaCliente.pas new file mode 100644 index 0000000..909c38e --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Controller/View/uIEditorSituacionFacturaCliente.pas @@ -0,0 +1,27 @@ +unit uIEditorSituacionFacturaCliente; + +interface + +uses + uBizFacturasCliente, uFacturasClienteController; + +type + IEditorSituacionFacturaCliente = interface + ['{29CBF2CD-AFD5-49F6-964C-38188F15702E}'] + function GetController : IFacturasClienteController; + procedure SetController (const Value : IFacturasClienteController); + property Controller : IFacturasClienteController read GetController + write SetController; + + function GetFacturaCliente: IBizFacturaCliente; + procedure SetFacturaCliente(const Value: IBizFacturaCliente); + property FacturaCliente: IBizFacturaCliente read GetFacturaCliente + write SetFacturaCliente; + + function ShowModal : Integer; + procedure Release; + end; + +implementation + +end. diff --git a/Source/Modulos/Facturas de cliente/Controller/uArticulosFacturaClienteController.dcu b/Source/Modulos/Facturas de cliente/Controller/uArticulosFacturaClienteController.dcu new file mode 100644 index 0000000..234eb22 Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Controller/uArticulosFacturaClienteController.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Controller/uArticulosFacturaClienteController.pas b/Source/Modulos/Facturas de cliente/Controller/uArticulosFacturaClienteController.pas new file mode 100644 index 0000000..924ed74 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Controller/uArticulosFacturaClienteController.pas @@ -0,0 +1,46 @@ +unit uArticulosFacturaClienteController; + +interface + +uses + uDADataTable, uArticulosController, uBizArticulos; + +type + IArticulosFacturaClienteController = interface(IArticulosController) + ['{64370F32-8C18-47F5-BD21-0902D64BE798}'] + end; + + TArticulosFacturaClienteController = class(TArticulosController, IArticulosFacturaClienteController) + public + function ElegirArticulos(AArticulos : IBizArticulo; AMensaje: String; AMultiSelect: Boolean): IBizArticulo; override; + end; + +implementation + +{ TArticulosFacturaClienteController } + +uses Controls, cxControls, uIEditorElegirArticulosFacturasCliente, uIEditorElegirArticulos; + +function TArticulosFacturaClienteController.ElegirArticulos(AArticulos: IBizArticulo; AMensaje: String; + AMultiSelect: Boolean): IBizArticulo; +var + AEditor : IEditorElegirArticulosFacturasCliente; +begin + Result := NIL; + + CreateEditor('EditorElegirArticulosFacturaCliente', IEditorElegirArticulosFacturasCliente, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; + AEditor.Articulos := AArticulos; + AEditor.MultiSelect := AMultiSelect; + AEditor.Mensaje := AMensaje; + if IsPositiveResult(AEditor.ShowModal) then + Result := AEditor.ArticulosSeleccionados; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +end. diff --git a/Source/Modulos/Facturas de cliente/Controller/uDetallesFacturaClienteController.dcu b/Source/Modulos/Facturas de cliente/Controller/uDetallesFacturaClienteController.dcu new file mode 100644 index 0000000..ed97363 Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Controller/uDetallesFacturaClienteController.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Controller/uDetallesFacturaClienteController.pas b/Source/Modulos/Facturas de cliente/Controller/uDetallesFacturaClienteController.pas new file mode 100644 index 0000000..63df8b8 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Controller/uDetallesFacturaClienteController.pas @@ -0,0 +1,185 @@ +unit uDetallesFacturaClienteController; + +interface + +uses + Classes, uDADataTable, uControllerDetallesArticulos, uBizDetallesFacturaCliente, uIDataModuleFacturasCliente, + uBizContactos, uBizArticulos; + +type + IDetallesFacturaClienteController = interface(IControllerDetallesArticulos) + ['{D3942A48-C55B-4A98-AC5B-B5E652ED393E}'] + procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente; const ANuevaFila :Boolean = True; const ACantidad: Integer = 1); overload; + procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente); + procedure AnadirDetalleFacturaAsociadaAbono(ADetalles: IBizDetallesFacturaCliente; AReferencia: String; AFecha: String); + procedure DesglosarPorteDetalles(ImportePorte: Currency; ADetalles: IDAStronglyTypedDataTable); + function DarTotalPorteTotal(ADetalles: IDAStronglyTypedDataTable): Double; + end; + + TDetallesFacturaClienteController = class(TControllerDetallesArticulos, IDetallesFacturaClienteController) + private + FDataModule : IDataModuleFacturasCliente; + protected +// procedure AsignarDatos(ADetalles: IDAStronglyTypedDataTable; IDCabecera: Integer); override; + procedure RellenarOtros(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); overload; override; + procedure RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); override; + + procedure AsignarController; override; + //Si sobreescribimos este mtodo podremos tener en cuenta otras columnas para el calculo del importe total de un concepto + function CalcularImporteTotalConcepto(DataTable: TDADataTable): Double; override; + procedure ValidarCampos(DataTable: TDADataTable); override; + procedure DesglosarPorteDetalles(ImportePorte: Currency; ADetalles: IDAStronglyTypedDataTable); + function DarTotalPorteTotal(ADetalles: IDAStronglyTypedDataTable): Double; + + public + function DarListaTiposDetalle: TStringList; override; + + procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente; const ANuevaFila :Boolean = True; const ACantidad: Integer = 1); overload; + procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente); overload; + + //ABONOS + procedure AnadirDetalleFacturaAsociadaAbono(ADetalles: IBizDetallesFacturaCliente; AReferencia: String; AFecha: String); + + constructor Create; override; + destructor Destroy; override; + end; + +implementation + +{ TDetallesFacturaClienteController } + +uses Variants, uDataModuleFacturasCliente, uArticulosFacturaClienteController, + uControllerDetallesBase, Dialogs, uDialogUtils, SysUtils, uCalculosUtils; + +procedure TDetallesFacturaClienteController.ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente); +var + AArticulos : IBizArticulo; +begin + if Assigned(ADetalles) then + begin + try + AArticulos := (FArticulosController.BuscarTodos(ACliente) as IBizArticulo); + ActualizarDetalles(ADetalles, AArticulos); + ShowInfoMessage('Se ha actualizado el descuento para el cliente seleccionado'); + finally + AArticulos := Nil; + end; + end; +end; + +procedure TDetallesFacturaClienteController.AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente; const ANuevaFila :Boolean; const ACantidad: Integer); +var + AArticulos: IBizArticulo; +begin + if Assigned(ADetalles) then + begin + try + AArticulos := (FArticulosController.BuscarTodos(ACliente) as IBizArticulo); + + //Si nueva fila es false, quiere decir que se sustituye un determinado artculo, por ello la lista a seleccionar no debe ser multiselect + if ANuevaFila then + begin + AArticulos := (FArticulosController as IArticulosFacturaClienteController).ElegirArticulos(AArticulos, 'Elija los artculos que desea aadir a esta factura de cliente', True); + Add(ADetalles, AArticulos, ACantidad) + end + else + begin + AArticulos := (FArticulosController as IArticulosFacturaClienteController).ElegirArticulos(AArticulos, 'Elija el artculo que desea aadir a esta factura de cliente', False); + RellenarDetalle(ADetalles, AArticulos, ACantidad); + end; + + finally + AArticulos := Nil; + end; + end; +end; + +procedure TDetallesFacturaClienteController.AnadirDetalleFacturaAsociadaAbono(ADetalles: IBizDetallesFacturaCliente; AReferencia: String; AFecha: String); +begin + AnadirConceptoInicial(ADetalles, 'ABONO DE FACTURA ' + AReferencia + ' con fecha ' + AFecha); +end; + +procedure TDetallesFacturaClienteController.AsignarController; +begin + FArticulosController := TArticulosFacturaClienteController.Create; +end; + +{procedure TDetallesFacturaClienteController.AsignarDatos(ADetalles: IDAStronglyTypedDataTable; IDCabecera: Integer); +begin + inherited; + + with (ADetalles as IBizDetallesFacturaCliente) do + begin + Edit; +// ID := FDataModule.GetNextID(DataTable.LogicalName); + ID_FACTURA := IDCabecera; + Post + end; +end;} + +function TDetallesFacturaClienteController.CalcularImporteTotalConcepto(DataTable: TDADataTable): Double; +begin + Result := CalcularLineaConcepto(DataTable); +end; + +constructor TDetallesFacturaClienteController.Create; +begin + inherited; + FDataModule := TDataModuleFacturasCliente.Create(Nil); +end; + +function TDetallesFacturaClienteController.DarListaTiposDetalle: TStringList; +begin + Result := TStringList.Create; + Result.Values[TIPO_DETALLE_CONCEPTO] := TIPO_DETALLE_CONCEPTO; + Result.Values[TIPO_DETALLE_TITULO] := TIPO_DETALLE_TITULO; +// Result.Values[TIPO_DETALLE_TITULO_OPCIONAL] := TIPO_DETALLE_TITULO_OPCIONAL; + Result.Values[TIPO_DETALLE_SUBTOTAL] := TIPO_DETALLE_SUBTOTAL; +// Result.Values[TIPO_DETALLE_DESCUENTO] := TIPO_DETALLE_DESCUENTO; +// Result.Values[TIPO_DETALLE_SALTO] := TIPO_DETALLE_SALTO; +end; + +function TDetallesFacturaClienteController.DarTotalPorteTotal(ADetalles: IDAStronglyTypedDataTable): Double; +begin + Result := DarTotalPorte(ADetalles); +end; + +procedure TDetallesFacturaClienteController.DesglosarPorteDetalles(ImportePorte: Currency; ADetalles: IDAStronglyTypedDataTable); +begin + DesglosarPorte(ImportePorte, ADetalles); + ActualizarTotales(ADetalles); +end; + +destructor TDetallesFacturaClienteController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + +procedure TDetallesFacturaClienteController.RellenarOtros(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +begin +//En Tecsitel no se tiene en cuenta el descuento de cliente para el precio PVP +// if Assigned(AArticulos) then +// ADetalles.DataTable.FieldByName(CAMPO_DESCUENTO).AsFloat := AArticulos.DESCUENTO +// else +// ADetalles.DataTable.FieldByName(CAMPO_DESCUENTO).AsFloat := 0; +end; + +procedure TDetallesFacturaClienteController.ValidarCampos(DataTable: TDADataTable); +begin + inherited; + ValidarCamposLineaConcepto(DataTable); +end; + +procedure TDetallesFacturaClienteController.RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +begin +//Como en tecsitel no hay descuento por linea de detalle, solo recuperamos nuevamente el valor del articulo cuando el detalle no tenga niguno +//de esta forma evitamos que al cambiar de cliente se quiten los importes que se hubiesen establecido para los articulos. + if ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).IsNull then + if Assigned(AArticulos) then + ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := AArticulos.PRECIO_PVP_TOTAL + else + ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := Null; +end; + +end. diff --git a/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.dcu b/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.dcu new file mode 100644 index 0000000..7e360bf Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas b/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas new file mode 100644 index 0000000..0f5d53b --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas @@ -0,0 +1,1268 @@ +unit uFacturasClienteController; + +interface + + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleFacturasCliente, + uClientesController, uDetallesFacturaClienteController, uBizAlbaranesCliente, + uBizFacturasCliente; + +type + IFacturasClienteController = interface(IControllerBase) + ['{CAD20B4E-6D0B-4A1C-9306-B195824B6CAD}'] + function GetClienteController: IClientesController; + procedure SetClienteController(const Value: IClientesController); + property ClienteController: IClientesController read GetClienteController write SetClienteController; + + function GetDetallesController: IDetallesFacturaClienteController; + procedure SetDetallesController(const Value: IDetallesFacturaClienteController); + property DetallesController: IDetallesFacturaClienteController read GetDetallesController write SetDetallesController; + + function Buscar(const ID: Integer): IBizFacturaCliente; + function BuscarTodos: IBizFacturaCliente; overload; + function BuscarTodos(const AID_Cliente: Integer): IBizFacturaCliente; overload; + function BuscarTodasPendientesComision(IdAgente: Integer; IdComision: Integer; IdFacturasAsociadas: String): IBizFacturaCliente; + procedure Ver(AFactura : IBizFacturaCliente); + procedure VerTodos(AFacturas: IBizFacturaCliente; + const AVerModal : Boolean = False; const AWindowCaption: String = ''; + const AHeaderText: String = ''); + function Nuevo (withInsert: Boolean = True) : IBizFacturaCliente; + function Anadir(AFactura : IBizFacturaCliente) : Boolean; overload; + function AnadirAbono(AFactura : IBizFacturaCliente) : Boolean; +// function Anadir(AFacturas : IBizFacturaCliente; AListaAlbaranes : IBizAlbaranCliente): Boolean; overload; +// function Anadir(AFactura : IBizFacturaCliente; const IDPedido : Integer): Boolean; overload; + + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(AFactura : IBizFacturaCliente; AllItems: Boolean = false): Boolean; overload; + function Guardar(AFactura : IBizFacturaCliente): Boolean; + procedure DescartarCambios(AFactura : IBizFacturaCliente); + function Existe(const ID: Integer) : Boolean; + procedure RecuperarCliente(AFactura : IBizFacturaCliente); + function Duplicar(AFactura: IBizFacturaCliente): IBizFacturaCliente; + function GenerarAbono(AFactura: IBizFacturaCliente): IBizFacturaCliente; + + procedure Preview(AFactura : IBizFacturaCliente; AllItems: Boolean = false; + const VerSello: Boolean = True; const VerCopia: Boolean = True); + procedure Print(AFactura : IBizFacturaCliente; AllItems: Boolean = false; + const VerSello: Boolean = True; const VerCopia: Boolean = True); + + procedure RecalcularImportes(AFactura: IBizFacturaCliente); + function EsModificable(AFactura: IBizFacturaCliente): Boolean; + function EsEliminable(AFactura: IBizFacturaCliente): Boolean; + + function ElegirFacturas(AFacturas : IBizFacturaCliente; AMensaje: String; AMultiSelect: Boolean): IBizFacturaCliente; + function ExtraerSeleccionados(ARecibosCliente: IBizFacturaCliente) : IBizFacturaCliente; + procedure EnviarFacturaPorEMail(AFactura : IBizFacturaCliente); + + function DarListaAnosFacturas: TStringList; + procedure FiltrarAno(AFactura: IBizFacturaCliente; ADynWhereDataTable: WideString; const Ano: String); + end; + + TFacturasClienteController = class(TControllerBase, IFacturasClienteController) + private + FDataModule : IDataModuleFacturasCliente; + FClienteController : IClientesController; + FDetallesController : IDetallesFacturaClienteController; + + function GetClienteController: IClientesController; + procedure SetClienteController(const Value: IClientesController); + + function GetDetallesController: IDetallesFacturaClienteController; + procedure SetDetallesController(const Value: IDetallesFacturaClienteController); + + function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; + function _Vacio : IBizFacturaCliente; + + procedure FiltrarEmpresa(AFactura: IBizFacturaCliente); + function ValidarFactura(AFactura: IBizFacturaCliente): Boolean; + procedure GenerarRecibos(AFactura: IBizFacturaCliente); + + protected + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + + public + property ClienteController: IClientesController read GetClienteController write SetClienteController; + property DetallesController: IDetallesFacturaClienteController read GetDetallesController write SetDetallesController; + + constructor Create; override; + destructor Destroy; override; + + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(AFactura : IBizFacturaCliente; AllItems: Boolean = false): Boolean; overload; + function Guardar(AFactura : IBizFacturaCliente): Boolean; + procedure DescartarCambios(AFactura : IBizFacturaCliente); virtual; + function Existe(const ID: Integer) : Boolean; virtual; + function Anadir(AFactura : IBizFacturaCliente): Boolean; overload; + function AnadirAbono(AFactura : IBizFacturaCliente) : Boolean; +// function Anadir(AFacturas : IBizFacturaCliente; AListaAlbaranes : IBizAlbaranCliente): Boolean; overload; +// function Anadir(AFactura : IBizFacturaCliente; const IDPedido : Integer): Boolean; overload; + function Buscar(const ID: Integer): IBizFacturaCliente; + function BuscarTodos: IBizFacturaCliente; overload; + function BuscarTodos(const AID_Cliente: Integer): IBizFacturaCliente; overload; + function BuscarTodasPendientesComision(IdAgente: Integer; IdComision: Integer; IdFacturasAsociadas: String): IBizFacturaCliente; + function Nuevo (withInsert: Boolean = True) : IBizFacturaCliente; + procedure Ver(AFactura : IBizFacturaCliente); + procedure VerTodos(AFacturas: IBizFacturaCliente; + const AVerModal : Boolean = False; const AWindowCaption: String = ''; + const AHeaderText: String = ''); + function Duplicar(AFactura: IBizFacturaCliente): IBizFacturaCliente; + function GenerarAbono(AFactura: IBizFacturaCliente): IBizFacturaCliente; + procedure RecuperarCliente(AFactura : IBizFacturaCliente); + + procedure Preview(AFactura : IBizFacturaCliente; AllItems: Boolean = false; + const VerSello: Boolean = True; const VerCopia: Boolean = True); + procedure Print(AFactura : IBizFacturaCliente; AllItems: Boolean = false; + const VerSello: Boolean = True; const VerCopia: Boolean = True); + + procedure RecalcularImportes(AFactura: IBizFacturaCliente); + function EsModificable(AFactura: IBizFacturaCliente): Boolean; + function EsEliminable(AFactura: IBizFacturaCliente): Boolean; + + function ElegirFacturas(AFacturas : IBizFacturaCliente; AMensaje: String; AMultiSelect: Boolean): IBizFacturaCliente; + function ExtraerSeleccionados(AFacturasCliente: IBizFacturaCliente) : IBizFacturaCliente; + procedure EnviarFacturaPorEMail(AFactura : IBizFacturaCliente); + + function DarListaAnosFacturas: TStringList; + procedure FiltrarAno(AFactura: IBizFacturaCliente; ADynWhereDataTable: WideString; const Ano: String); + end; + +implementation + +uses + Windows, Controls, cxControls, DB, uEditorRegistryUtils, schFacturasClienteClient_Intf, + uBizContactos, uIEditorFacturasCliente, uIEditorFacturaCliente, uFactuGES_App, + uDataModuleFacturasCliente, uBizDetallesFacturaCliente, uControllerDetallesBase, + uDataModuleUsuarios, uDAInterfaces, uDataTableUtils, uDateUtils, uNumUtils, + uAlbaranesClienteController, schAlbaranesClienteClient_Intf, uROTypes, uDetallesAlbaranClienteController, + uBizDetallesAlbaranCliente, uFacturasClienteReportController, + DateUtils, Forms, uFormasPagoController, uBizFormasPago, uIEditorElegirFacturasCliente, + uRecibosClienteController, uBizRecibosCliente, uIntegerListUtils, + uSistemaFunc, uDialogElegirEMail, uEMailUtils, Dialogs, uStringsUtils, + uROXMLIntf; + + +{procedure CopiarArticulosPedido(AOrigen: IBizDetallesPedidoCliente; + ADestino : IBizDetallesFacturaCliente); +var + i : integer; + ADetallesController : IDetallesFacturaClienteController; +begin + if not Assigned(AOrigen) then + raise Exception.Create ('Origen no asignado (CopiarArticulosPedido)'); + + if not Assigned(ADestino) then + raise Exception.Create ('Destino no asignado (CopiarArticulosPedido)'); + + if not AOrigen.DataTable.Active then + AOrigen.DataTable.Active := True; + + if not ADestino.DataTable.Active then + ADestino.DataTable.Active := True; + + ADetallesController := TDetallesFacturaClienteController.Create; + try + //OJO IMPORTANTE + //Siempre que vayamos a trabajar con los detalles debemos hacer un beginupdate de los mismos y un endupdate para + //obligarle siempre a recalcular los detalles una sola vez + ADetallesController.BeginUpdate(ADestino); + + AOrigen.DataTable.First; + for i := 0 to AOrigen.DataTable.RecordCount - 1 do + begin + ADetallesController.Add(ADestino, TIPO_DETALLE_CONCEPTO); + ADestino.Edit; + ADestino.REFERENCIA := AOrigen.REFERENCIA; + if AOrigen.ID_ARTICULO > 0 then + ADestino.ID_ARTICULO := AOrigen.ID_ARTICULO; + ADestino.CONCEPTO := AOrigen.CONCEPTO; + ADestino.CANTIDAD := AOrigen.CANTIDAD; + ADestino.IMPORTE_UNIDAD := AOrigen.IMPORTE_UNIDAD; + ADestino.IMPORTE_TOTAL := AOrigen.IMPORTE_TOTAL; + ADestino.DESCUENTO := AOrigen.DESCUENTO; + ADestino.IMPORTE_PORTE := AOrigen.IMPORTE_PORTE; + ADestino.VISIBLE := AOrigen.VISIBLE; + ADestino.REFERENCIA_PROVEEDOR := AOrigen.REFERENCIA_PROVEEDOR; + ADestino.Post; + AOrigen.Next; + end; + finally + ADetallesController.EndUpdate(ADestino); + ADetallesController := NIL; + end; +end;} + + + +{ TFacturasClienteController } + +function TFacturasClienteController.Anadir(AFactura: IBizFacturaCliente) : Boolean; +begin + if not Assigned(AFactura) then + raise Exception.Create ('Factura no asignada (Anadir)'); + AFactura.Insert; + Result := True; +end; + +function TFacturasClienteController.AnadirAbono(AFactura: IBizFacturaCliente): Boolean; +begin + Anadir(AFactura); + AFactura.TIPO := CTE_TIPO_ABONO; + Result := True; +end; + +{ +function TFacturasClienteController.Anadir(AFacturas: IBizFacturaCliente; + AListaAlbaranes: IBizAlbaranCliente): Boolean; +var + AFacturaActual : IBizFacturaCliente; + AAlbaranesController : IAlbaranesClienteController; + I: Integer; + bEnEdicion : Boolean; +begin + // ATENCIN!!! AFacturas tiene que estar vacio para no pisar facturas + // ya generadas. + if not Assigned(AFacturas) then + raise Exception.Create ('Factura no asignada (Anadir)'); + + if not Assigned(AListaAlbaranes) then + raise Exception.Create ('Albaranes no asignados (Anadir)'); + + if not AFacturas.DataTable.Active then + AFacturas.DataTable.Active := True; + + if not AListaAlbaranes.DataTable.Active then + AListaAlbaranes.DataTable.Active := True; + + ShowHourglassCursor; + Application.ProcessMessages; + + AAlbaranesController := TAlbaranesClienteController.Create; + try + // Ordenar por fecha de albaran + AListaAlbaranes.DataTable.Sort([fld_AlbaranesClienteFECHA_ALBARAN], [uDADataTable.sdAscending]); + AListaAlbaranes.First; + for I := 0 to AListaAlbaranes.DataTable.RecordCount - 1 do + begin + AListaAlbaranes._Cliente := NIL; + AFacturaActual := NIL; + + // Busco si hay alguna factura ya hecha de ese cliente + AFacturas.DataTable.First; + if AFacturas.DataTable.Locate(fld_FacturasClienteID_CLIENTE, AListaAlbaranes.ID_CLIENTE, []) then + begin + AFacturaActual := AFacturas; + RecuperarCliente(AFacturaActual); + AFacturaActual.Cliente.DataTable.Active := True; + end + else begin + // No hay factura de ese cliente. Creo una nueva + Anadir(AFacturas); + AAlbaranesController.RecuperarCliente(AListaAlbaranes); + AListaAlbaranes.Cliente.DataTable.Active := True; + AFacturas.Cliente := AListaAlbaranes.Cliente; + + //Si el albaran es de tipo devolucin hacemos la factura de tipo abono + if (AListaAlbaranes.TIPO = CTE_TIPO_ALBARAN_DEV) then + begin + bEnEdicion := (AFacturas.DataTable.State in dsEditModes); + if not bEnEdicion then + AFacturas.Edit; + AFacturas.TIPO := CTE_TIPO_ABONO; + AFacturas.Post; + if bEnEdicion then + AFacturas.Edit; + end; + + AFacturaActual := AFacturas; + end; + + // Ya tengo la factura. Le aado los conceptos del albarn + AFacturaActual.Detalles.DataTable.Last; + // Aado el ttulo + Self.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_TITULO); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := 'Albarn ' + AListaAlbaranes.REFERENCIA + ' del ' + DateToStr(AListaAlbaranes.FECHA_ALBARAN); + Post; + end; + // Aado el contenido del albarn + CopiarArticulosAlbaran(AListaAlbaranes.Detalles, AFacturaActual.Detalles); + + Self.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_CONCEPTO); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := 'Porte del albarn'; + CANTIDAD := 1; + IMPORTE_UNIDAD := AListaAlbaranes.IMPORTE_PORTE; + Post; + end; + + // Aado el resumen + Self.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_SUBTOTAL); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := 'Total del albarn ' + AListaAlbaranes.REFERENCIA; + Post; + end; + + // Aado una lnea en blanco + Self.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_CONCEPTO); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := ''; + Post; + end; + + // Guardo la factura que acabo de generar o editar + AFacturaActual.CalcularImporteTotal; + Self.Guardar(AFacturaActual); + // Asocio la factura con el albarn + AListaAlbaranes.Edit; + AListaAlbaranes.ID_FACTURA := AFacturaActual.ID; + AListaAlbaranes.Post; + AAlbaranesController.Guardar(AListaAlbaranes); + + AListaAlbaranes.Next; + end; + Result := True; + finally + AAlbaranesController := NIL; + HideHourglassCursor + end; +end; +} + +{function TFacturasClienteController.Anadir(AFactura: IBizFacturaCliente; + const IDPedido: Integer): Boolean; +var + APedidosController : IPedidosClienteController; + APedido : IBizPedidoCliente; +begin + Result := False; + if not Assigned(AFactura) then + raise Exception.Create ('Factura no asignada (Anadir)'); + + if (IDPedido < 0) or (IDPedido = 0) then + raise Exception.Create (Format('ID de pedido (%d) incorrecto (Anadir)', [IDPedido])); + + if not AFactura.DataTable.Active then + AFactura.DataTable.Active := True; + + ShowHourglassCursor; + Application.ProcessMessages; + + APedido := NIL; + APedidosController := TPedidosClienteController.Create; + try + APedido := APedidosController.Buscar(IDPedido); + + if not Assigned(APedido) then + raise Exception.Create (Format('No se ha encontrado un pedido de cliente con ID %d (Anadir)', [IDPedido])); + + APedido.DataTable.Active := True; + APedidosController.RecuperarCliente(APedido); + Self.Anadir(AFactura); + AFactura.Cliente := APedido.Cliente; + + CopiarArticulosPedido(APedido.Detalles, AFactura.Detalles); + + // Guardo la factura que acabo de generar + AFactura.CalcularImporteTotal; + Self.Guardar(AFactura); + + Result := True; + finally + APedido := NIL; + APedidosController := NIL; + HideHourglassCursor; + Application.ProcessMessages; + end; +end;} + + +function TFacturasClienteController.Buscar(const ID: Integer): IBizFacturaCliente; +begin + Result := (FDataModule as IDataModuleFacturasCliente).GetItem(ID); + FiltrarEmpresa(Result); +end; + +function TFacturasClienteController.BuscarTodasPendientesComision(IdAgente:Integer; IdComision: Integer; IdFacturasAsociadas: String): IBizFacturaCliente; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + with Result.DataTable.DynamicWhere do + begin + //Todas las facturas de un agente determinado + Condicion := NewBinaryExpression(NewField('', fld_FacturasClienteID_AGENTE), NewConstant(IdAgente, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + with Result.DataTable.DynamicWhere do + begin + //Todas aquellas que no esten asociadas a ninguna comisin o asociadas a la comisin, + //pero no asociadas en el editor de la comision, esto es porque se puede agregar y quitar + //facturas y todos los cambios estan el cache y por lo tanto al pedir las facturas a seleccionar + //debemos tener en cuenta dichso cambios en cache + Condicion := NewBinaryExpression(NewField('', fld_FacturasClienteID_COMISION_LIQUIDADA), NewNull(), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + +{REPASARRRRRRR + //Quitamos aquellas que ya estn asociadas + if length(IdFacturasAsociadas) > 0 then + with Result.DataTable.DynamicWhere do + begin + Condicion := NewBinaryExpression(NewField('', fld_FacturasClienteID), ' not in (' + IdFacturasAsociadas + ')');, dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + with Result.DataTable.Where do + begin + + CLOSEBraket; + AddOperator(opOR); + + OpenBraket; + //En caso de ser facturas ya asociadas lo limitamos a la comision actual + //ya que no debemos poder elegir facturas asociadas a otras comisiones + OpenBraket; + AddText(fld_FacturasClienteID_COMISION_LIQUIDADA + ' = ' + IntToStr(IdComision)); + CloseBraket; + //En el caso de que halla facturas asociadas + if length(IdFacturasAsociadas) > 0 then + begin + AddOperator(opAND); + OpenBraket; + AddText(fld_FacturasClienteID + ' not in (' + IdFacturasAsociadas + ')'); + CloseBraket; + end; + CloseBraket; + + CloseBraket; + end; +} + finally + HideHourglassCursor; + end; +end; + +function TFacturasClienteController.BuscarTodos( + const AID_Cliente: Integer): IBizFacturaCliente; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + + with Result.DataTable.DynamicWhere do + begin + // ID_CLIENTE + Condicion := NewBinaryExpression(NewField('', fld_FacturasClienteID_CLIENTE), NewConstant(AID_Cliente, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + finally + HideHourglassCursor; + end; +end; + +function TFacturasClienteController.BuscarTodos: IBizFacturaCliente; +begin + Result := FDataModule.GetItems; + FiltrarEmpresa(Result); +end; + +constructor TFacturasClienteController.Create; +begin + inherited; + FDataModule := TDataModuleFacturasCliente.Create(Nil); + FClienteController := TClientesController.Create; + FDetallesController := TDetallesFacturaClienteController.Create; + FDetallesController.addObservador(Self); +end; + +function TFacturasClienteController.CreateEditor(const AName: String; + const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + +function TFacturasClienteController.DarListaAnosFacturas: TStringList; +begin + Result := FDataModule.GetAnosItems; +end; + +procedure TFacturasClienteController.DescartarCambios(AFactura: IBizFacturaCliente); +begin + if not Assigned(AFactura) then + raise Exception.Create ('Factura no asignada'); + + ShowHourglassCursor; + try + if (AFactura.State in dsEditModes) then + AFactura.Cancel; + + AFactura.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TFacturasClienteController.Destroy; +begin + FDataModule := Nil; + FClienteController := Nil; + FDetallesController := Nil; + inherited; +end; + +function TFacturasClienteController.Duplicar(AFactura: IBizFacturaCliente): IBizFacturaCliente; +begin + Result := Self._Vacio; + ShowHourglassCursor; + try + DuplicarRegistros(AFactura.DataTable, Result.DataTable, mdrActual); + DuplicarRegistros(AFactura.Detalles.DataTable, Result.Detalles.DataTable, mdrTodos); + + // Hay que dejar algunos campos como si fuera una factura nueva + Result.Edit; + with Result do + begin + ID_EMPRESA := AppFactuGES.EmpresaActiva.ID; + USUARIO := AppFactuGES.UsuarioActivo.UserName; + REFERENCIA := ''; //Para que se asigne una nueva + SITUACION := CTE_PENDIENTE; //Al ser una nueva debe de estar pendiente + FECHA_FACTURA := DateOf(Now); + ID_COMISION_LIQUIDADA := 0; + end; + + Result.Post; + finally + HideHourglassCursor; + end; +end; + +function TFacturasClienteController.ValidarFactura(AFactura: IBizFacturaCliente): Boolean; +var + AFormaPago: IBizFormaPago; + +begin + if not Assigned(AFactura) then + raise Exception.Create ('Factura no asignada'); + + if (AFactura.DataTable.State in dsEditModes) then + AFactura.DataTable.Post; + + //Tambien hacemos post de sus tablas hija + if (AFactura.Detalles.DataTable.State in dsEditModes) then + AFactura.Detalles.DataTable.Post; + + if (AFactura.ID_CLIENTE < 0) or (AFactura.ID_CLIENTE = 0) then + // No comprobar el objeto Cliente por que puede fallar la validacin + // cuando se generan facturas automticamente. +{ (not Assigned(AFactura.Cliente)) or + (AFactura.Cliente.IsEmpty) then} + raise Exception.Create('Debe indicar el cliente de esta factura'); + + if (EsFechaVacia(AFactura.FECHA_FACTURA)) then + raise Exception.Create('Debe indicar la fecha de esta factura'); + + //En el caso de asignar una retencin a la factura ser obligatorio meter la fecha de retencin. + if (AFactura.IMPORTE_RETENCION > 0) then + if (EsFechaVacia(AFactura.FECHA_RETENCION)) then + raise Exception.Create('Debe indicar la fecha de vencimiento de la retencin, para poder asociarla al recibo que contendr el importe de la retencin.'); + + if (AFactura.Detalles.DataTable.RecordCount = 0) then + raise Exception.Create('La factura debe tener al menos un concepto en su contenido'); + + { Esta validacin puede saltar cuando se generan facturas automticamente + por albaranes o pedidos y el cliente no tiene Tipo de IVA puesto. } +{ if (AFactura.ID_TIPO_IVA = 0) then + raise Exception.Create('Debe indicar un tipo de IVA para esta factura');} + + //De esta forma obligaremos siempre a tener un recibo asociado a la factura, + //porque si la forma de pago no tiene plazos es obligatorio la fecha de vencimiento + with TFormasPagoController.Create do + begin + try + AFormaPago := Buscar(AFactura.ID_FORMA_PAGO); + AFormaPago.DataTable.Active := True; + if (AFormaPago.Plazos.RecordCount = 0) + and (EsFechaVacia(AFactura.FECHA_VENCIMIENTO)) then + raise Exception.Create('Debe indicar una fecha de vencimiento para esta factura'); + finally + AFormaPago := NIL; + Free; + end; + end; + + //En caso de ser un Abono no podra tener un importe total positivo + if (AFactura.TIPO = CTE_TIPO_ABONO) then + if (AFactura.IMPORTE_TOTAL > 0) then + raise Exception.Create('Un abono nunca no puede tener un importe positivo, asegurese que las cantidades sean negativas'); + + { Asegurarse de valores en campos "automticos" tanto + en MODIFICACIN como en INSERCIN. } + AFactura.Edit; + try + AFactura.USUARIO := AppFactuGES.UsuarioActivo.UserName; + + if Assigned(AFactura.Cliente) + and (AFactura.ID_CLIENTE <> AFactura.Cliente.ID) then + AFactura.ID_CLIENTE := AFactura.Cliente.ID; + + Result := True; + finally + AFactura.Post; + end; +end; + +procedure TFacturasClienteController.Ver(AFactura: IBizFacturaCliente); +var + AEditor : IEditorFacturaCliente; +begin + AEditor := NIL; + + RecuperarCliente(AFactura); + CreateEditor('EditorFacturaCliente', IEditorFacturaCliente, AEditor); + + if Assigned(AEditor) then + try + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.Factura := AFactura; + + //MODO CONSULTAR + if not EsModificable(AFactura) then + begin + SetDataTableReadOnly(AFactura.DataTable, True); + AEditor.ReadOnly := True; + end; + + AEditor.ShowModal; + + //MODO CONSULTAR (Se deja la tabla como estaba) + if AEditor.ReadOnly then + SetDataTableReadOnly(AFactura.DataTable, False); + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +procedure TFacturasClienteController.VerTodos(AFacturas: IBizFacturaCliente; + const AVerModal : Boolean = False; const AWindowCaption: String = ''; + const AHeaderText: String = ''); +var + AEditor : IEditorFacturasCliente; +begin + AEditor := NIL; + + CreateEditor('EditorFacturasCliente', IEditorFacturasCliente, AEditor); + if Assigned(AEditor) then + try + if not EsCadenaVacia(AWindowCaption) then + AEditor.WindowCaption := AWindowCaption; + + if not EsCadenaVacia(AHeaderText) then + AEditor.HeaderText := AHeaderText; + + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.Facturas := AFacturas; + AEditor.MultiSelect := True; + if AVerModal then + AEditor.ShowModal + else + AEditor.ShowEmbedded; + finally + if AVerModal then + AEditor.Release; + AEditor := Nil; + end; +end; + +function TFacturasClienteController._Vacio: IBizFacturaCliente; +begin + Result := Buscar(ID_NULO); +end; + +function TFacturasClienteController.Eliminar(const ID: Integer): Boolean; +var + AFactura : IBizFacturaCliente; +begin + AFactura := Buscar(ID); + + if not Assigned(AFactura) then + raise Exception.Create(Format('No se ha encontrado la factura con ID = %d', [ID])); + + Result := Eliminar(AFactura); + AFactura := NIL; +end; + +function TFacturasClienteController.ElegirFacturas(AFacturas: IBizFacturaCliente; AMensaje: String; + AMultiSelect: Boolean): IBizFacturaCliente; +var + AEditor : IEditorElegirFacturasCliente; +begin + Result := NIL; + + CreateEditor('EditorElegirFacturasCliente', IEditorElegirFacturasCliente, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; + AEditor.Facturas := AFacturas; + AEditor.MultiSelect := AMultiSelect; + AEditor.Mensaje := AMensaje; + if IsPositiveResult(AEditor.ShowModal) then + Result := AEditor.FacturasClienteSeleccionados; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +function TFacturasClienteController.Eliminar(AFactura: IBizFacturaCliente; AllItems: Boolean = false): Boolean; +//En el caso de eliminar almenos un elemento del conjunto se devuelve true +var + bEliminado: Boolean; + +begin + bEliminado := False; + + if not Assigned(AFactura) then + raise Exception.Create ('Factura no asignada'); + + ShowHourglassCursor; + try + if not AFactura.DataTable.Active then + AFactura.DataTable.Active := True; + + if (AFactura.State in dsEditModes) then + AFactura.Cancel; + + //Siempre eliminaremos el seleccionado + if EsEliminable(AFactura) then + begin + AFactura.Delete; + bEliminado := True; + end; + + //En el caso de querer eliminar todos los items del objeto AAlbaran + if AllItems then + begin + with AFactura.DataTable do + begin + First; + while not EOF do + begin + if EsEliminable(AFactura) then + begin + AFactura.Delete; + bEliminado := True + end + else Next; + end; + end; + end; + + if bEliminado then + begin + try + AFactura.DataTable.ApplyUpdates; + Result := True + except + //En el caso de una factura que tiene recibos con devoluciones hechas no se puede borrar aunque la factura este en situacion de pendiente + AFactura.DataTable.CancelUpdates; + Result := False; + end; + end + else + Result := False; + + finally + HideHourglassCursor; + end; +end; + +procedure TFacturasClienteController.EnviarFacturaPorEMail( + AFactura: IBizFacturaCliente); +var + AReportController : IFacturasClienteReportController; + AFicheroTMP : TFileName; + AEMail : String; + AListaEmail : TStringList; +begin + if not Assigned(AFactura) then + raise Exception.Create ('Factura no asignado (EnviarFacturaPorEMail)'); + + if AFactura.DataTable.Active then + AFactura.DataTable.Active := True; + + AFicheroTMP := DarFicheroPDFTemporal(EscapeIllegalChars(AFactura.REFERENCIA)); + + AListaEmail := TStringList.Create; + try + RecuperarCliente(AFactura); + AFactura.Cliente.DataTable.Active := True; + + if not AFactura.Cliente.EMAIL_1IsNull then + AListaEmail.Add(AFactura.Cliente.EMAIL_1); + if not AFactura.Cliente.EMAIL_2IsNull then + AListaEmail.Add(AFactura.Cliente.EMAIL_2); + + if not ElegirEMail(AListaEmail, AEMail) then + Exit; + finally + FreeANDNIL(AListaEmail); + end; + + ShowHourglassCursor; + AReportController := TFacturasClienteReportController.Create; + try + AReportController.ExportToPDF(AFactura.ID, AFicheroTMP); + EnviarEMailMAPI('Factura ' + AFactura.REFERENCIA, '', AFicheroTMP, '', '', AFactura.Cliente.NOMBRE, AEMail); + finally + SysUtils.DeleteFile(AFicheroTMP); + AReportController := NIL; + HideHourglassCursor; + end; +end; + +function TFacturasClienteController.EsEliminable(AFactura: IBizFacturaCliente): Boolean; +begin + Result := EsModificable(AFactura); +end; + +function TFacturasClienteController.EsModificable(AFactura: IBizFacturaCliente): Boolean; +begin + if not Assigned(AFactura) then + raise Exception.Create ('Factura no asignado: EsModificable'); + + Result := (AFactura.SITUACION = CTE_PENDIENTE); +end; + +procedure TFacturasClienteController.RecalcularImportes( + AFactura: IBizFacturaCliente); +var + bEnEdicion : Boolean; + ADetallePosAct : Integer; +begin + if not Assigned(AFactura) then + raise Exception.Create ('Factura no asignado (RecalcularImportes)'); + + if AFactura.DataTable.Active then + AFactura.DataTable.Active := True; + + { Hay que guardar la posicin en la que estamos en los detalles por que + la asignacin de valores a los campos IMPORTE_NETO e IMPORTE_PORTE + (ver ms adelante) colocan el puntero en la tabla detalle al principio. + No he encontrado la razn por la que mueve el puntero. } + + ADetallePosAct := AFactura.Detalles.POSICION; + + bEnEdicion := (AFactura.DataTable.State in dsEditModes); + if not bEnEdicion then + AFactura.Edit; + + ShowHourglassCursor; + try + AFactura.IMPORTE_NETO := FDetallesController.DarTotalImporteTotal(AFactura.Detalles); + AFactura.IMPORTE_PORTE := FDetallesController.DarTotalPorteTotal(AFactura.Detalles); + + if not bEnEdicion then + AFactura.Post; + finally + HideHourglassCursor; + // Restaurar la posicin que tenamos en los detalles. + FDetallesController.LocalizarPosicion(AFactura.Detalles, ADetallePosAct); + end; +end; + +procedure TFacturasClienteController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +var + AFactura : IBizFacturaCliente; + ADetalles : IBizDetallesFacturaCliente; +begin + inherited; + + if Supports(ADataTable, IBizDetallesFacturaCliente, ADetalles) and + Supports(ADetalles.DataTable.MasterSource.DataTable, IBizFacturaCliente, AFactura) then + begin + RecalcularImportes(AFactura); + end; +end; + +procedure TFacturasClienteController.RecuperarCliente( + AFactura: IBizFacturaCliente); +begin + AFactura._Cliente := (FClienteController.Buscar(AFactura.ID_CLIENTE) as IBizCliente); +end; + +function TFacturasClienteController.Existe(const ID: Integer): Boolean; +var + AFactura : IBizFacturaCliente; +begin + try + AFactura := Buscar(ID); + Result := Assigned(AFactura) and (AFactura.ID = ID); + finally + AFactura := NIL; + end; +end; + +function TFacturasClienteController.ExtraerSeleccionados(AFacturasCliente: IBizFacturaCliente): IBizFacturaCliente; +var + ASeleccionados : IBizFacturaCliente; +begin + ASeleccionados := (Self.Buscar(ID_NULO) as IBizFacturaCliente); + CopyDataTableDA5(AFacturasCliente.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + +procedure TFacturasClienteController.FiltrarAno(AFactura: IBizFacturaCliente; ADynWhereDataTable: WideString; const Ano: String); +var + Condicion: TDAWhereExpression; + FechaIni: String; + FechaFin: String; + +begin + AFactura.DataTable.DynamicWhere.Clear; + AFactura.DataTable.DynamicWhere.Xml := ADynWhereDataTable; + + if (Ano <> 'Todos') then + begin + // Filtrar las facturas actuales por empresa + FechaIni := '01/01/' + Ano; + FechaFin := '31/12/' + Ano; + with AFactura.DataTable.DynamicWhere do + begin + // (FECHA_INICIO between FECHA_FIN) + Condicion := NewBinaryExpression(NewField('', fld_FacturasClienteFECHA_FACTURA), NewConstant(FechaIni, datString), dboGreaterOrEqual); + Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_FacturasClienteFECHA_FACTURA), NewConstant(FechaFin, datString), dboLessOrEqual), Condicion, dboAnd); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Condicion, Expression, dboAnd); + end; + end; +end; + +procedure TFacturasClienteController.FiltrarEmpresa(AFactura: IBizFacturaCliente); +var + Condicion: TDAWhereExpression; +begin + if AFactura.DataTable.Active then + AFactura.DataTable.Active := False; + + // Filtrar las facturas actuales por empresa + with AFactura.DataTable.DynamicWhere do + begin + // (ID_EMPRESA >= ID) + Condicion := NewBinaryExpression(NewField('', fld_FacturasClienteID_EMPRESA), NewConstant(AppFactuGES.EmpresaActiva.ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; +end; + +procedure TFacturasClienteController.SetClienteController(const Value: IClientesController); +begin + FClienteController := Value; +end; + +procedure TFacturasClienteController.SetDetallesController(const Value: IDetallesFacturaClienteController); +begin + FDetallesController := Value; +end; + +function TFacturasClienteController.Guardar(AFactura: IBizFacturaCliente): Boolean; +begin + Result := False; + + if not Assigned(AFactura) then + raise Exception.Create ('Factura no asignada'); + + if not Assigned(FDetallesController) then + raise Exception.Create ('Controller detalles no asignado'); + + if ValidarFactura(AFactura) then + begin + ShowHourglassCursor; + + // Asegurarnos de que todos los importes estn bien. + RecalcularImportes(AFactura); + + try + AFactura.DataTable.ApplyUpdates; + + //Se generan los recibos automticamente a partir de la forma de pago + GenerarRecibos(AFactura); + + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TFacturasClienteController.Nuevo(withInsert: Boolean = True): IBizFacturaCliente; +var + AFactura : IBizFacturaCliente; +begin + AFactura := FDataModule.NewItem; + FiltrarEmpresa(AFactura); + AFactura.DataTable.Active := True; + if WithInsert then + AFactura.Insert; + Result := AFactura; +end; + +procedure TFacturasClienteController.Preview(AFactura: IBizFacturaCliente; AllItems: Boolean = false; +const VerSello: Boolean = True; const VerCopia: Boolean = True); +var + AReportController : IFacturasClienteReportController; + ID_Facturas: TIntegerList; + +begin + AReportController := TFacturasClienteReportController.Create; + ID_Facturas := TIntegerList.Create; + + try + //Si deseamos previsualizar todos los items del objeto albaran + if AllItems then + begin + with AFactura.DataTable do + begin + First; + while not EOF do + begin + ID_Facturas.Add(AFactura.ID); + Next; + end; + end; + end + //Solo previsualizamos el item seleccionado + else + ID_Facturas.Add(AFactura.ID); + + AReportController.Preview(ID_Facturas, VerSello, VerCopia); + + finally + AReportController := NIL; + FreeANDNIL(ID_Facturas); + end; +end; + +procedure TFacturasClienteController.Print(AFactura: IBizFacturaCliente; AllItems: Boolean = false; +const VerSello: Boolean = True; const VerCopia: Boolean = True); +var + AReportController : IFacturasClienteReportController; + ID_Facturas: TIntegerList; + +begin + AReportController := TFacturasClienteReportController.Create; + ID_Facturas := TIntegerList.Create; + + try + //Si deseamos previsualizar todos los items del objeto albaran + if AllItems then + begin + with AFactura.DataTable do + begin + First; + while not EOF do + begin + ID_Facturas.Add(AFactura.ID); + Next; + end; + end; + end + //Solo previsualizamos el item seleccionado + else + ID_Facturas.Add(AFactura.ID); + + AReportController.Print(ID_Facturas, VerSello, VerCopia); + + finally + AReportController := NIL; + FreeANDNIL(ID_Facturas); + end; +end; + +function TFacturasClienteController.GenerarAbono(AFactura: IBizFacturaCliente): IBizFacturaCliente; +begin + ShowHourglassCursor; + try + Result := Duplicar(AFactura); + //Aade un concepto con los datos de la factura asociada al abono + FDetallesController.AnadirDetalleFacturaAsociadaAbono(Result.Detalles, AFactura.REFERENCIA, DateToStr(AFactura.FECHA_FACTURA)); + //Convierte todos los articulos de la factura a negativos por se un abono + FDetallesController.CambiarSignoDetalles(Result.Detalles); + + // Hay que dejar algunos campos como si fuera una factura nueva + Result.Edit; + Result.TIPO := CTE_TIPO_ABONO; + Result.Post; + + finally + HideHourglassCursor; + end; +end; + +procedure TFacturasClienteController.GenerarRecibos(AFactura: IBizFacturaCliente); +var + AFormasPagoController : IFormasPagoController; + AFormaPago: IBizFormaPago; + ARecibosClienteController: IRecibosClienteController; + ARecibos: IBizRecibosCliente; + AFechaVencimiento: TDateTime; + i: Integer; + ADiaVencimiento: Integer; + ADiasMas: Integer; + BSemaforo: Boolean; + AImporteTotal: Double; + +begin + if not Assigned(AFactura) then + Exit; + + AFormasPagoController := TFormasPagoController.Create; + AFormaPago := AFormasPagoController.Buscar(AFactura.ID_FORMA_PAGO); + AFormaPago.DataTable.Active := True; + if AFormaPago.DataTable.RecordCount <> 1 then + Exit; //No hay forma de pago en la factura y por lo tanto no se generan recibos + //raise Exception.Create('No existe la forma de pago de la factura'); + + ARecibosClienteController := TRecibosClienteController.Create; + //Eliminamos todos los recibos que tuviera la factura porque sabemos que todos + //estarn pendientes (solo permitiremos modificar y eliminar facturas pendientes, + //parcialmente pagadas o pagadas no + ARecibos := ARecibosClienteController.BuscarRecibosFactura(AFactura.ID); + ARecibosClienteController.EliminarTodo(ARecibos); + + //Si hay retencin, se generar un recibo por ese importe, y el resto se generarn recibos + //segn forma de pago + AImporteTotal := AFactura.IMPORTE_TOTAL - AFactura.IMPORTE_RETENCION; + + //Vamos a generar todos los recibos necesarios para la factura + With AFormaPago.Plazos.DataTable do + begin + i := 1; + First; + repeat + ARecibos := ARecibosClienteController.Nuevo; + ARecibos.Edit; + ARecibos.ID_FACTURA := AFactura.ID; + ARecibos.REFERENCIA := AFactura.REFERENCIA + ' - ' + IntToStr(i); + ARecibos.FECHA_EMISION := AFactura.FECHA_FACTURA; + + if AFormaPago.Plazos.RecordCount < 1 then + begin + ARecibos.FECHA_VENCIMIENTO := AFactura.FECHA_VENCIMIENTO; + ARecibos.IMPORTE := AImporteTotal; + end + else + begin + AFechaVencimiento := AFactura.FECHA_FACTURA + AFormaPago.Plazos.NUM_DIAS; + ADiasMas := 0; + BSemaforo := False; + if (AFactura.Cliente.VENCIMIENTO_FACTURAS_1 <> 0) + or (AFactura.Cliente.VENCIMIENTO_FACTURAS_2 <> 0) + or (AFactura.Cliente.VENCIMIENTO_FACTURAS_3 <> 0) then + begin + ADiaVencimiento := DayOf(AFechaVencimiento); + while (ADiaVencimiento <> AFactura.Cliente.VENCIMIENTO_FACTURAS_1) + and (ADiaVencimiento <> AFactura.Cliente.VENCIMIENTO_FACTURAS_2) + and (ADiaVencimiento <> AFactura.Cliente.VENCIMIENTO_FACTURAS_3) do + begin + if ADiaVencimiento = DaysInMonth(AFechaVencimiento) then + begin + ADiaVencimiento := 1; + + //Controlamos con una variable semaforo que no nos quedemos en un bucle infinito + //intentando encontrar el dia de pago establecido para el cliente (es el caso de tener + //asignado el dia de pago 30 y llegar febrero en el que no se encuentra dicho dia, o + //tener como dia de pago los das 31 y en el caso de meses de 30 dias no encontrarlo. + if BSemaforo then + begin + ADiasMas := 0; + Break + end + else + BSemaforo := True; + end + else + Inc(ADiaVencimiento); + Inc(ADiasMas); + end; + end; + AFechaVencimiento := IncDay(AFechaVencimiento, ADiasMas); + ARecibos.FECHA_VENCIMIENTO := AFechaVencimiento; + ARecibos.IMPORTE := AImporteTotal * (AFormaPago.Plazos.PORCENTAJE / 100); + end; + + ARecibos.DESCRIPCION := 'Pago de factura ' + AFactura.REFERENCIA + ': son ' + CifraToLetras(ARecibos.IMPORTE); + ARecibosClienteController.Guardar(ARecibos); + Inc(i); + Next; + until (eof); + + //Si hay retencin generaremos un recibo para dicha retencin + if AFactura.IMPORTE_RETENCION > 0 then + begin + ARecibos := ARecibosClienteController.Nuevo; + ARecibos.Edit; + ARecibos.ID_FACTURA := AFactura.ID; + ARecibos.REFERENCIA := AFactura.REFERENCIA + ' - ' + IntToStr(i); + ARecibos.FECHA_EMISION := AFactura.FECHA_FACTURA; + ARecibos.FECHA_VENCIMIENTO := AFactura.FECHA_RETENCION; + ARecibos.IMPORTE := AFactura.IMPORTE_RETENCION; + ARecibos.DESCRIPCION := 'Pago de factura de retencin ' + AFactura.REFERENCIA + ': son ' + CifraToLetras(ARecibos.IMPORTE); + ARecibosClienteController.Guardar(ARecibos); + end; + end; + + //Liberamos + AFormasPagoController := Nil; + AFormaPago := Nil; + ARecibosClienteController := Nil; + ARecibos := Nil; +end; + +function TFacturasClienteController.GetClienteController: IClientesController; +begin + Result := FClienteController; +end; + +function TFacturasClienteController.GetDetallesController: IDetallesFacturaClienteController; +begin + Result := FDetallesController; +end; + +end. diff --git a/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteReportController.dcu b/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteReportController.dcu new file mode 100644 index 0000000..76800a7 Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteReportController.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteReportController.pas b/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteReportController.pas new file mode 100644 index 0000000..34e8ecc --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteReportController.pas @@ -0,0 +1,169 @@ +unit uFacturasClienteReportController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleFacturasClienteReport, + uClientesController, uDetallesFacturaClienteController, + uBizFacturasCliente, uIntegerListUtils; + +type + IFacturasClienteReportController = interface(IControllerBase) + ['{A0F41767-4FF6-4BAE-9FC9-894DD721D756}'] + procedure Preview(const AListaID : TIntegerList; const VerSello: Boolean = True; const VerCopia: Boolean = True); + procedure Print(const AListaID : TIntegerList; const VerSello: Boolean = True; const VerCopia: Boolean = True); + function ExportToWord(const AID: Integer; const AFileName : String = ''; const VerSello: Boolean = True): Boolean; + function ExportToPDF(const AID: Integer; const AFileName : String = ''; const VerSello: Boolean = True): Boolean; + end; + + TFacturasClienteReportController = class(TControllerBase, IFacturasClienteReportController) + private + FDataModule : IDataModuleFacturasClienteReport; + function CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; + public + constructor Create; override; + destructor Destroy; override; + + procedure Preview(const AListaID : TIntegerList; const VerSello: Boolean = True; const VerCopia: Boolean = True); + procedure Print(const AListaID : TIntegerList; const VerSello: Boolean = True; const VerCopia: Boolean = True); + function ExportToWord(const AID: Integer; const AFileName : String = ''; const VerSello: Boolean = True): Boolean; + function ExportToPDF(const AID: Integer; const AFileName : String = ''; const VerSello: Boolean = True): Boolean; + end; + + +implementation + +uses + uROTypes, uEditorRegistryUtils, uIEditorFacturasClientePreview, + uEditorPreview, uDataModuleFacturasCliente, uEditorBase, cxControls, + uStringsUtils, uSistemaFunc; + +{ TFacturasClienteReportController } + +constructor TFacturasClienteReportController.Create; +begin + inherited; + FDataModule := TDataModuleFacturasCliente.Create(Nil); +end; + +function TFacturasClienteReportController.CreateEditor(const AName: String; + const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + + +destructor TFacturasClienteReportController.Destroy; +begin + FDataModule := NIL; + inherited; +end; + +function TFacturasClienteReportController.ExportToPDF(const AID: Integer; const AFileName: String = ''; const VerSello: Boolean = True): Boolean; +var + AStream: Binary; +begin + Result := False; + if EsCadenaVacia(AFileName) then + Exit; + + ShowHourglassCursor; + try + AStream := FDataModule.GetRptPDFFactura(AID, VerSello); + try + AStream.SaveToFile(AFileName); + Result := True; + finally + FreeAndNil(AStream); + end; + finally + HideHourglassCursor; + end; +end; + +function TFacturasClienteReportController.ExportToWord(const AID: Integer; + const AFileName: String = ''; const VerSello: Boolean = True): Boolean; +var + AStream: Binary; + AFile : String; +begin + Result := False; + AFile := AFileName; + + if EsCadenaVacia(AFile) and (not PreguntarFicheroWordExportar(AFile)) then + Exit; + + ShowHourglassCursor; + try + AStream := FDataModule.GetRptWordFactura(AID, VerSello); + try + AStream.SaveToFile(AFile); + Result := True; + finally + FreeAndNil(AStream); + end; + finally + HideHourglassCursor; + end; +end; + +procedure TFacturasClienteReportController.Preview(const AListaID : TIntegerList; const VerSello: Boolean = True; const VerCopia: Boolean = True); +var + AStream: Binary; + AEditor : IEditorFacturasClientePreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetRptFacturas(AListaID, VerSello, VerCopia); + try + CreateEditor('EditorFacturasClientePreview', IEditorFacturasClientePreview, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; + AEditor.ListaID := AListaID; + AEditor.LoadFromStream(AStream); + AEditor.Preview; + finally + AEditor.Release; + end; + finally + FreeAndNil(AStream); + AEditor := Nil; + end; + finally + HideHourglassCursor; + end; +end; + +procedure TFacturasClienteReportController.Print(const AListaID : TIntegerList; const VerSello: Boolean = True; const VerCopia: Boolean = True); +var + AStream: Binary; + AEditor : IEditorFacturasClientePreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetRptFacturas(AListaID, VerSello, VerCopia); + try + CreateEditor('EditorFacturasClientePreview', IEditorFacturasClientePreview, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; + AEditor.LoadFromStream(AStream); + AEditor.Print; + finally + AEditor.Release; + end; + finally + FreeAndNil(AStream); + AEditor := Nil; + end; + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Facturas de cliente/Data/FacturasCliente_data.bdsproj b/Source/Modulos/Facturas de cliente/Data/FacturasCliente_data.bdsproj new file mode 100644 index 0000000..5c32ca5 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Data/FacturasCliente_data.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + FacturasCliente_data.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Facturas de cliente/Data/FacturasCliente_data.dcu b/Source/Modulos/Facturas de cliente/Data/FacturasCliente_data.dcu new file mode 100644 index 0000000..55ce9f7 Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Data/FacturasCliente_data.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Data/FacturasCliente_data.dpk b/Source/Modulos/Facturas de cliente/Data/FacturasCliente_data.dpk new file mode 100644 index 0000000..a82664e Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Data/FacturasCliente_data.dpk differ diff --git a/Source/Modulos/Facturas de cliente/Data/FacturasCliente_data.dproj b/Source/Modulos/Facturas de cliente/Data/FacturasCliente_data.dproj new file mode 100644 index 0000000..9ff4889 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Data/FacturasCliente_data.dproj @@ -0,0 +1,541 @@ + + + + {38eef566-1895-4bdd-8007-f92f5e32cce6} + FacturasCliente_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\FacturasCliente_data.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0FacturasCliente_data.dpk + + + + + MainSource + + + +
DataModuleFacturasCliente
+ TDAClientDataModule +
+
+
+ diff --git a/Source/Modulos/Facturas de cliente/Data/FacturasCliente_data.drc b/Source/Modulos/Facturas de cliente/Data/FacturasCliente_data.drc new file mode 100644 index 0000000..41c39b7 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Data/FacturasCliente_data.drc @@ -0,0 +1,17 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Facturas de cliente\Data\uDataModuleFacturasCliente.dfm */ +/* C:\Codigo\Source\Modulos\Facturas de cliente\Data\FacturasCliente_data.res */ +/* c:\temp\dtf1A5.tmp */ diff --git a/Source/Modulos/Facturas de cliente/Data/FacturasCliente_data.rc b/Source/Modulos/Facturas de cliente/Data/FacturasCliente_data.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Data/FacturasCliente_data.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Facturas de cliente/Data/FacturasCliente_data.res b/Source/Modulos/Facturas de cliente/Data/FacturasCliente_data.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Data/FacturasCliente_data.res differ diff --git a/Source/Modulos/Facturas de cliente/Data/uDataModuleFacturasCliente.dcu b/Source/Modulos/Facturas de cliente/Data/uDataModuleFacturasCliente.dcu new file mode 100644 index 0000000..8454dcd Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Data/uDataModuleFacturasCliente.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Data/uDataModuleFacturasCliente.dfm b/Source/Modulos/Facturas de cliente/Data/uDataModuleFacturasCliente.dfm new file mode 100644 index 0000000..8d81c39 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Data/uDataModuleFacturasCliente.dfm @@ -0,0 +1,426 @@ +inherited DataModuleFacturasCliente: TDataModuleFacturasCliente + OnCreate = DAClientDataModuleCreate + Height = 318 + Width = 518 + object RORemoteService: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvFacturasCliente' + Left = 48 + Top = 24 + end + object rda_FacturasCliente: TDARemoteDataAdapter + DataStreamer = Bin2DataStreamer + GetSchemaCall.RemoteService = RORemoteService + GetDataCall.RemoteService = RORemoteService + UpdateDataCall.RemoteService = RORemoteService + GetScriptsCall.RemoteService = RORemoteService + RemoteService = RORemoteService + Left = 51 + Top = 143 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 80 + end + object tbl_FacturasCliente: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_FACTURAS_CLIENTE_ID' + Required = True + ServerAutoRefresh = True + DictionaryEntry = 'FacturasCliente_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'FacturasCliente_ID_EMPRESA' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 20 + DisplayLabel = 'Referencia' + DictionaryEntry = 'FacturasCliente_REFERENCIA' + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + DisplayLabel = 'Tipo' + DictionaryEntry = 'FacturasCliente_TIPO' + end + item + Name = 'ID_COMISION_LIQUIDADA' + DataType = datInteger + DictionaryEntry = 'FacturasCliente_ID_COMISION_LIQUIDADA' + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + DisplayLabel = 'Fecha de las factura' + DictionaryEntry = 'FacturasCliente_FECHA_FACTURA' + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'FECHA_RETENCION' + DataType = datDateTime + end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + DisplayLabel = 'Situaci'#243'n' + DictionaryEntry = 'FacturasCliente_SITUACION' + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_BASE_IMPONIBLE' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DisplayLabel = 'Dto.' + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_DESCUENTO' + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_IMPORTE_DESCUENTO' + end + item + Name = 'IVA' + DataType = datFloat + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_IVA' + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_IMPORTE_IVA' + end + item + Name = 'RE' + DataType = datFloat + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_RE' + end + item + Name = 'IMPORTE_RE' + DataType = datCurrency + DisplayLabel = 'Importe RE' + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_IMPORTE_RE' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_IMPORTE_TOTAL' + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + DisplayLabel = 'Observaciones' + DictionaryEntry = 'FacturasCliente_OBSERVACIONES' + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + DictionaryEntry = 'FacturasCliente_ID_CLIENTE' + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + DisplayLabel = 'NIF/CIF' + DictionaryEntry = 'FacturasCliente_NIF_CIF' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 100 + DisplayLabel = 'Cliente' + DictionaryEntry = 'FacturasCliente_NOMBRE' + end + item + Name = 'ID_DIRECCION' + DataType = datInteger + end + item + Name = 'CALLE' + DataType = datString + Size = 150 + DisplayLabel = 'Direcci'#243'n' + DictionaryEntry = 'FacturasCliente_CALLE' + end + item + Name = 'POBLACION' + DataType = datString + Size = 150 + DisplayLabel = 'Poblaci'#243'n' + DictionaryEntry = 'FacturasCliente_POBLACION' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 30 + DisplayLabel = 'Provincia' + DictionaryEntry = 'FacturasCliente_PROVINCIA' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#243'd. postal' + DictionaryEntry = 'FacturasCliente_CODIGO_POSTAL' + end + item + Name = 'DATOS_BANCARIOS' + DataType = datString + Size = 255 + DisplayLabel = 'Datos bancarios' + DictionaryEntry = 'FacturasCliente_DATOS_BANCARIOS' + end + item + Name = 'CLIENTE_FINAL' + DataType = datString + Size = 255 + DisplayLabel = 'Cliente final' + DictionaryEntry = 'FacturasCliente_CLIENTE_FINAL' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'FacturasCliente_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'FacturasCliente_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 100 + DictionaryEntry = 'FacturasCliente_USUARIO' + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + DisplayLabel = 'FacturasCliente_ID_FORMA_PAGO' + DictionaryEntry = 'FacturasCliente_ID_FORMA_PAGO' + end + item + Name = 'RECARGO_EQUIVALENCIA' + DataType = datSmallInt + DisplayLabel = #191'Con R.E.?' + DictionaryEntry = 'FacturasCliente_RECARGO_EQUIVALENCIA' + end + item + Name = 'ID_TIPO_IVA' + DataType = datInteger + DictionaryEntry = 'FacturasCliente_ID_TIPO_IVA' + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + DisplayLabel = 'Importe neto' + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_IMPORTE_NETO' + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + DisplayLabel = 'Importe del porte' + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_IMPORTE_PORTE' + end + item + Name = 'ID_AGENTE' + DataType = datInteger + DictionaryEntry = 'FacturasCliente_ID_AGENTE' + end + item + Name = 'REFERENCIA_COMISION' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasCliente_REFERENCIA_COMISION' + end + item + Name = 'RETENCION' + DataType = datFloat + end + item + Name = 'IMPORTE_RETENCION' + DataType = datCurrency + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_FacturasCliente + LogicalName = 'FacturasCliente' + IndexDefs = <> + Left = 240 + Top = 112 + end + object ds_FacturasCliente: TDADataSource + DataSet = tbl_FacturasCliente.Dataset + DataTable = tbl_FacturasCliente + Left = 240 + Top = 48 + end + object tbl_FacturasCliente_Detalles: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_FACTURA_CLIENTE_DETALLES_ID' + Required = True + ServerAutoRefresh = True + DictionaryEntry = 'FacturasCliente_Detalles_ID' + InPrimaryKey = True + end + item + Name = 'ID_FACTURA' + DataType = datInteger + DictionaryEntry = 'FacturasCliente_Detalles_ID_FACTURA' + end + item + Name = 'POSICION' + DataType = datInteger + DisplayLabel = 'Posici'#243'n' + DictionaryEntry = 'FacturasCliente_Detalles_POSICION' + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + DisplayLabel = 'Tipo detalle' + DictionaryEntry = 'FacturasCliente_Detalles_TIPO_DETALLE' + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + DisplayLabel = 'Concepto' + DictionaryEntry = 'FacturasCliente_Detalles_CONCEPTO' + end + item + Name = 'CANTIDAD' + DataType = datFloat + DisplayLabel = 'Cantidad' + DictionaryEntry = 'FacturasCliente_Detalles_CANTIDAD' + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_Detalles_IMPORTE_UNIDAD' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + DictionaryEntry = 'FacturasCliente_Detalles_IMPORTE_TOTAL' + end + item + Name = 'VISIBLE' + DataType = datInteger + DisplayLabel = #191'Visible?' + DictionaryEntry = 'FacturasCliente_Detalles_VISIBLE' + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + DisplayLabel = 'FacturasCliente_Detalles_ID_ARTICULO' + DictionaryEntry = 'FacturasCliente_Detalles_ID_ARTICULO' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DisplayLabel = 'FacturasCliente_Detalles_DESCUENTO' + DictionaryEntry = 'FacturasCliente_Detalles_DESCUENTO' + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + DisplayLabel = 'FacturasCliente_Detalles_IMPORTE_PORTE' + DictionaryEntry = 'FacturasCliente_Detalles_IMPORTE_PORTE' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'FacturasCliente_Detalles_REFERENCIA_PROVEEDOR' + DictionaryEntry = 'FacturasCliente_Detalles_REFERENCIA_PROVEEDOR' + end> + Params = <> + MasterMappingMode = mmWhere + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_FacturasCliente + MasterSource = ds_FacturasCliente + MasterFields = 'ID' + DetailFields = 'ID_FACTURA' + LogicalName = 'FacturasCliente_Detalles' + IndexDefs = <> + Left = 400 + Top = 112 + end + object ds_FacturasCliente_Detalles: TDADataSource + DataSet = tbl_FacturasCliente_Detalles.Dataset + DataTable = tbl_FacturasCliente_Detalles + Left = 400 + Top = 40 + end + object tbl_ListaAnosFacturas: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ANO' + DataType = datString + Size = 254 + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_FacturasCliente + LogicalName = 'ListaAnosFacturas' + IndexDefs = <> + Left = 240 + Top = 240 + end + object ds_ListaAnosFacturas: TDADataSource + DataSet = tbl_ListaAnosFacturas.Dataset + DataTable = tbl_ListaAnosFacturas + Left = 240 + Top = 176 + end +end diff --git a/Source/Modulos/Facturas de cliente/Data/uDataModuleFacturasCliente.pas b/Source/Modulos/Facturas de cliente/Data/uDataModuleFacturasCliente.pas new file mode 100644 index 0000000..cf147e4 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Data/uDataModuleFacturasCliente.pas @@ -0,0 +1,183 @@ +unit uDataModuleFacturasCliente; + +interface + +uses + SysUtils, Classes, DB, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uRORemoteService, uROClient, uROBinMessage, + + uIDataModuleFacturasCliente, uBizFacturasCliente, uBizDetallesFacturaCliente, + uDADesigntimeCall, uIDataModuleFacturasClienteReport, uDataModuleBase, + uDAInterfaces, uDAMemDataTable, uDADataStreamer, uDABin2DataStreamer, + uDARemoteDataAdapter, uIntegerListUtils; + +type + TDataModuleFacturasCliente = class(TDataModuleBase, IDataModuleFacturasCliente, IDataModuleFacturasClienteReport) + RORemoteService: TRORemoteService; + rda_FacturasCliente: TDARemoteDataAdapter; + Bin2DataStreamer: TDABin2DataStreamer; + tbl_FacturasCliente: TDAMemDataTable; + ds_FacturasCliente: TDADataSource; + tbl_FacturasCliente_Detalles: TDAMemDataTable; + ds_FacturasCliente_Detalles: TDADataSource; + tbl_ListaAnosFacturas: TDAMemDataTable; + ds_ListaAnosFacturas: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + private + function _GetDetalles : IBizDetallesFacturaCliente; + public + function GetAnosItems : TStringList; + function GetItems : IBizFacturaCliente; + function GetItem(const ID : Integer) : IBizFacturaCliente; + function NewItem : IBizFacturaCliente; + + // Report + function GetRptFacturas(const AListaID: TIntegerList; const VerSello: Boolean = True; const VerCopia: Boolean = True): Binary; + function GetRptWordFactura(const AID: Integer; const VerSello: Boolean = True): Binary; + function GetRptPDFFactura(const AID: Integer; const VerSello: Boolean = True): Binary; + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, + schFacturasClienteClient_Intf, uBizContactos, Dialogs; + +{ TdmPresupuestos } + +procedure TDataModuleFacturasCliente.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleFacturasCliente.GetRptFacturas(const AListaID: TIntegerList; const VerSello: Boolean = True; const VerCopia: Boolean = True): Binary; +var + AParam : TIntegerArray; +begin + AParam := AListaID.ToIntegerArray; + try + Result := (RORemoteService as IsrvFacturasCliente).GenerarInforme(AParam, VerSello, VerCopia); + finally + FreeANDNIL(AParam); + end; +end; + +function TDataModuleFacturasCliente.GetRptPDFFactura(const AID: Integer; const VerSello: Boolean = True): Binary; +var + AParam : TIntegerArray; +begin + AParam := TIntegerArray.Create; + try + AParam.Add(AID); + Result := (RORemoteService as IsrvFacturasCliente).GenerarInformeEnPDF(AParam, VerSello); + finally + FreeANDNIL(AParam); + end; +end; + +function TDataModuleFacturasCliente.GetRptWordFactura(const AID: Integer; const VerSello: Boolean = True): Binary; +begin + Result := (RORemoteService as IsrvFacturasCliente).GenerarInformeEnWord(AID, VerSello) +end; + +function TDataModuleFacturasCliente.NewItem: IBizFacturaCliente; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleFacturasCliente._GetDetalles: IBizDetallesFacturaCliente; +var + ADetalles : TDAMemDataTable; +begin + ShowHourglassCursor; + try + ADetalles := CloneDataTable(tbl_FacturasCliente_Detalles); + with ADetalles do + begin + BusinessRulesID := BIZ_CLIENT_DETALLES_FACTURA_CLIENTE; + DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; + end; + Result := (ADetalles as IBizDetallesFacturaCliente); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleFacturasCliente.GetItem(const ID: Integer): IBizFacturaCliente; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + + with Result.DataTable.DynamicWhere do + begin + // (ID = :ID) + Condicion := NewBinaryExpression(NewField('', fld_FacturasClienteID), NewConstant(ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TDataModuleFacturasCliente.GetAnosItems: TStringList; +var + AListaAnos: TStringList; +begin + AListaAnos := TStringList.Create; + ShowHourglassCursor; + try + with tbl_ListaAnosFacturas do + begin + Open; + First; + while not eof do + begin + AListaAnos.Add(Format('%s=%s', [Fields[0].AsString, Fields[0].AsString])); + Next; + end; + Close; + end; + Result := AListaAnos; + finally + HideHourglassCursor; + end; +end; + +function TDataModuleFacturasCliente.GetItems: IBizFacturaCliente; +var + AFactura : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AFactura := CloneDataTable(tbl_FacturasCliente); + + // EL CAMPO REFERENCIA TIENE QUE SER AUTOREFRESH!!!!! + AFactura.FieldByName(fld_FacturasClienteREFERENCIA).ServerAutoRefresh := TRUE; + + AFactura.BusinessRulesID := BIZ_CLIENT_FACTURA_CLIENTE; + + with TBizFacturaCliente(AFactura.BusinessEventsObj) do + begin + Detalles := _GetDetalles; + end; + + Result := (AFactura as IBizFacturaCliente); + finally + HideHourglassCursor; + end; +end; + + +end. diff --git a/Source/Modulos/Facturas de cliente/FacturasCliente_Group.bdsgroup b/Source/Modulos/Facturas de cliente/FacturasCliente_Group.bdsgroup new file mode 100644 index 0000000..5a105d8 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/FacturasCliente_Group.bdsgroup @@ -0,0 +1,37 @@ + + + + + + + + + + + + + ..\..\Base\Base.bdsproj + ..\..\Base\ControllerBase\ControllerBase.bdsproj + ..\..\Base\GUIBase\GUIBase.bdsproj + ..\Contactos\Model\Contactos_model.bdsproj + ..\Contactos\Data\Contactos_data.bdsproj + ..\Contactos\Controller\Contactos_controller.bdsproj + ..\Articulos\Views\Articulos_view.bdsproj + ..\Articulos\Model\Articulos_model.bdsproj + ..\Articulos\Data\Articulos_data.bdsproj + ..\Articulos\Controller\Articulos_controller.bdsproj + ..\Contactos\Views\Contactos_view.bdsproj + Model\FacturasCliente_model.bdsproj + Data\FacturasCliente_data.bdsproj + Controller\FacturasCliente_controller.bdsproj + Views\FacturasCliente_view.bdsproj + ..\..\Cliente\FactuGES.bdsproj + ..\..\Servidor\FactuGES_Server.bdsproj + ..\Relaciones\Albaranes de cliente - Facturas de cliente\AlbCli_FacCli_relation.bdsproj + ..\Albaranes de cliente\Controller\AlbaranesCliente_controller.bdsproj + Base.bpl ControllerBase.bpl GUIBase.bpl Contactos_model.bpl Contactos_data.bpl Contactos_controller.bpl Articulos_view.bpl Articulos_model.bpl Articulos_data.bpl Articulos_controller.bpl Contactos_view.bpl FacturasCliente_model.bpl FacturasCliente_data.bpl FacturasCliente_controller.bpl FacturasCliente_view.bpl FactuGES.exe FactuGES_Server.exe AlbCli_FacCli_relation.bpl AlbaranesCliente_controller.bpl + + + + diff --git a/Source/Modulos/Facturas de cliente/FacturasCliente_Group.groupproj b/Source/Modulos/Facturas de cliente/FacturasCliente_Group.groupproj new file mode 100644 index 0000000..6061b7e --- /dev/null +++ b/Source/Modulos/Facturas de cliente/FacturasCliente_Group.groupproj @@ -0,0 +1,324 @@ + + + {4fc2fdb5-faa5-4b92-afc6-33a803d10c02} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Facturas de cliente/Model/Data/uIDataModuleFacturasCliente.dcu b/Source/Modulos/Facturas de cliente/Model/Data/uIDataModuleFacturasCliente.dcu new file mode 100644 index 0000000..c7a67a3 Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Model/Data/uIDataModuleFacturasCliente.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Model/Data/uIDataModuleFacturasCliente.pas b/Source/Modulos/Facturas de cliente/Model/Data/uIDataModuleFacturasCliente.pas new file mode 100644 index 0000000..25cf5dd --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Model/Data/uIDataModuleFacturasCliente.pas @@ -0,0 +1,20 @@ +unit uIDataModuleFacturasCliente; + +interface + +uses + SysUtils, Classes, uROTypes, + uBizFacturasCliente, uBizDetallesFacturaCliente; + +type + IDataModuleFacturasCliente = interface + ['{B0BDC388-E831-4946-B736-E817E3EA4B7C}'] + function GetAnosItems : TStringList; + function GetItems: IBizFacturaCliente; + function GetItem(const ID : Integer) : IBizFacturaCliente; + function NewItem : IBizFacturaCliente; + end; + +implementation + +end. diff --git a/Source/Modulos/Facturas de cliente/Model/Data/uIDataModuleFacturasClienteReport.dcu b/Source/Modulos/Facturas de cliente/Model/Data/uIDataModuleFacturasClienteReport.dcu new file mode 100644 index 0000000..35df43f Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Model/Data/uIDataModuleFacturasClienteReport.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Model/Data/uIDataModuleFacturasClienteReport.pas b/Source/Modulos/Facturas de cliente/Model/Data/uIDataModuleFacturasClienteReport.pas new file mode 100644 index 0000000..ae163b9 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Model/Data/uIDataModuleFacturasClienteReport.pas @@ -0,0 +1,18 @@ +unit uIDataModuleFacturasClienteReport; + +interface + +uses + SysUtils, Classes, uROTypes, uIntegerListUtils; + +type + IDataModuleFacturasClienteReport = interface + ['{D241A912-78C6-4C65-AEBF-8DDEFE35F511}'] + function GetRptFacturas(const AListaID: TIntegerList; const VerSello: Boolean = True; const VerCopia: Boolean = True): Binary; + function GetRptWordFactura(const AID: Integer; const VerSello: Boolean = True): Binary; + function GetRptPDFFactura(const AID: Integer; const VerSello: Boolean = True): Binary; + end; + +implementation + +end. diff --git a/Source/Modulos/Facturas de cliente/Model/FacturasCliente_model.bdsproj b/Source/Modulos/Facturas de cliente/Model/FacturasCliente_model.bdsproj new file mode 100644 index 0000000..96091bc --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Model/FacturasCliente_model.bdsproj @@ -0,0 +1,496 @@ + + + + + + + + + + + + FacturasCliente_model.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + EurekaLog 5.1.9 + + + + True + diff --git a/Source/Modulos/Facturas de cliente/Model/FacturasCliente_model.dcu b/Source/Modulos/Facturas de cliente/Model/FacturasCliente_model.dcu new file mode 100644 index 0000000..e308783 Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Model/FacturasCliente_model.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Model/FacturasCliente_model.dpk b/Source/Modulos/Facturas de cliente/Model/FacturasCliente_model.dpk new file mode 100644 index 0000000..b5e56bf Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Model/FacturasCliente_model.dpk differ diff --git a/Source/Modulos/Facturas de cliente/Model/FacturasCliente_model.dproj b/Source/Modulos/Facturas de cliente/Model/FacturasCliente_model.dproj new file mode 100644 index 0000000..4a51a8f --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Model/FacturasCliente_model.dproj @@ -0,0 +1,548 @@ + + + {a7225a8d-f40d-4878-9a27-c5de0e7cb638} + FacturasCliente_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\FacturasCliente_model.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + EurekaLog 5.1.9 + FacturasCliente_model.dpk + + + + + MainSource + + + + + + + + + + + + + + diff --git a/Source/Modulos/Facturas de cliente/Model/FacturasCliente_model.drc b/Source/Modulos/Facturas de cliente/Model/FacturasCliente_model.drc new file mode 100644 index 0000000..515c733 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Model/FacturasCliente_model.drc @@ -0,0 +1,16 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Facturas de cliente\Model\FacturasCliente_model.res */ +/* c:\temp\dtf1A3.tmp */ diff --git a/Source/Modulos/Facturas de cliente/Model/FacturasCliente_model.rc b/Source/Modulos/Facturas de cliente/Model/FacturasCliente_model.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Model/FacturasCliente_model.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Facturas de cliente/Model/FacturasCliente_model.res b/Source/Modulos/Facturas de cliente/Model/FacturasCliente_model.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Model/FacturasCliente_model.res differ diff --git a/Source/Modulos/Facturas de cliente/Model/ModelSupport_FacturasCliente_model/FacturasCliente_model.prjconfig b/Source/Modulos/Facturas de cliente/Model/ModelSupport_FacturasCliente_model/FacturasCliente_model.prjconfig new file mode 100644 index 0000000..c8f2834 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Model/ModelSupport_FacturasCliente_model/FacturasCliente_model.prjconfig @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Source/Modulos/Facturas de cliente/Model/ModelSupport_FacturasCliente_model/Presupuestos_model.prjconfig b/Source/Modulos/Facturas de cliente/Model/ModelSupport_FacturasCliente_model/Presupuestos_model.prjconfig new file mode 100644 index 0000000..c8f2834 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Model/ModelSupport_FacturasCliente_model/Presupuestos_model.prjconfig @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Source/Modulos/Facturas de cliente/Model/ModelSupport_FacturasCliente_model/default.txaPackage b/Source/Modulos/Facturas de cliente/Model/ModelSupport_FacturasCliente_model/default.txaPackage new file mode 100644 index 0000000..e69de29 diff --git a/Source/Modulos/Facturas de cliente/Model/schFacturasClienteClient_Intf.dcu b/Source/Modulos/Facturas de cliente/Model/schFacturasClienteClient_Intf.dcu new file mode 100644 index 0000000..5a5b6f6 Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Model/schFacturasClienteClient_Intf.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Model/schFacturasClienteClient_Intf.pas b/Source/Modulos/Facturas de cliente/Model/schFacturasClienteClient_Intf.pas new file mode 100644 index 0000000..1991ae5 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Model/schFacturasClienteClient_Intf.pas @@ -0,0 +1,2115 @@ +unit schFacturasClienteClient_Intf; + +interface + +uses + Classes, DB, schBase_Intf, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_ListaAnosFacturas = '{FD7D4D74-BB5E-4F18-9F1A-AAF12EB25DC9}'; + RID_FacturasCliente = '{C2CB3D1C-C182-4CE2-AA95-14AE2D5FFC12}'; + RID_FacturasCliente_Detalles = '{CAE1BB94-5B84-483D-8C3A-1300951E64F2}'; + + { Data table names } + nme_ListaAnosFacturas = 'ListaAnosFacturas'; + nme_FacturasCliente = 'FacturasCliente'; + nme_FacturasCliente_Detalles = 'FacturasCliente_Detalles'; + + { ListaAnosFacturas fields } + fld_ListaAnosFacturasANO = 'ANO'; + + { ListaAnosFacturas field indexes } + idx_ListaAnosFacturasANO = 0; + + { FacturasCliente fields } + fld_FacturasClienteID = 'ID'; + fld_FacturasClienteID_EMPRESA = 'ID_EMPRESA'; + fld_FacturasClienteREFERENCIA = 'REFERENCIA'; + fld_FacturasClienteTIPO = 'TIPO'; + fld_FacturasClienteID_COMISION_LIQUIDADA = 'ID_COMISION_LIQUIDADA'; + fld_FacturasClienteFECHA_FACTURA = 'FECHA_FACTURA'; + fld_FacturasClienteFECHA_VENCIMIENTO = 'FECHA_VENCIMIENTO'; + fld_FacturasClienteFECHA_RETENCION = 'FECHA_RETENCION'; + fld_FacturasClienteSITUACION = 'SITUACION'; + fld_FacturasClienteBASE_IMPONIBLE = 'BASE_IMPONIBLE'; + fld_FacturasClienteDESCUENTO = 'DESCUENTO'; + fld_FacturasClienteIMPORTE_DESCUENTO = 'IMPORTE_DESCUENTO'; + fld_FacturasClienteIVA = 'IVA'; + fld_FacturasClienteIMPORTE_IVA = 'IMPORTE_IVA'; + fld_FacturasClienteRE = 'RE'; + fld_FacturasClienteIMPORTE_RE = 'IMPORTE_RE'; + fld_FacturasClienteIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_FacturasClienteOBSERVACIONES = 'OBSERVACIONES'; + fld_FacturasClienteID_CLIENTE = 'ID_CLIENTE'; + fld_FacturasClienteNIF_CIF = 'NIF_CIF'; + fld_FacturasClienteNOMBRE = 'NOMBRE'; + fld_FacturasClienteID_DIRECCION = 'ID_DIRECCION'; + fld_FacturasClienteCALLE = 'CALLE'; + fld_FacturasClientePOBLACION = 'POBLACION'; + fld_FacturasClientePROVINCIA = 'PROVINCIA'; + fld_FacturasClienteCODIGO_POSTAL = 'CODIGO_POSTAL'; + fld_FacturasClienteDATOS_BANCARIOS = 'DATOS_BANCARIOS'; + fld_FacturasClienteCLIENTE_FINAL = 'CLIENTE_FINAL'; + fld_FacturasClienteFECHA_ALTA = 'FECHA_ALTA'; + fld_FacturasClienteFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_FacturasClienteUSUARIO = 'USUARIO'; + fld_FacturasClienteID_FORMA_PAGO = 'ID_FORMA_PAGO'; + fld_FacturasClienteRECARGO_EQUIVALENCIA = 'RECARGO_EQUIVALENCIA'; + fld_FacturasClienteID_TIPO_IVA = 'ID_TIPO_IVA'; + fld_FacturasClienteIMPORTE_NETO = 'IMPORTE_NETO'; + fld_FacturasClienteIMPORTE_PORTE = 'IMPORTE_PORTE'; + fld_FacturasClienteID_AGENTE = 'ID_AGENTE'; + fld_FacturasClienteREFERENCIA_COMISION = 'REFERENCIA_COMISION'; + fld_FacturasClienteRETENCION = 'RETENCION'; + fld_FacturasClienteIMPORTE_RETENCION = 'IMPORTE_RETENCION'; + + { FacturasCliente field indexes } + idx_FacturasClienteID = 0; + idx_FacturasClienteID_EMPRESA = 1; + idx_FacturasClienteREFERENCIA = 2; + idx_FacturasClienteTIPO = 3; + idx_FacturasClienteID_COMISION_LIQUIDADA = 4; + idx_FacturasClienteFECHA_FACTURA = 5; + idx_FacturasClienteFECHA_VENCIMIENTO = 6; + idx_FacturasClienteFECHA_RETENCION = 7; + idx_FacturasClienteSITUACION = 8; + idx_FacturasClienteBASE_IMPONIBLE = 9; + idx_FacturasClienteDESCUENTO = 10; + idx_FacturasClienteIMPORTE_DESCUENTO = 11; + idx_FacturasClienteIVA = 12; + idx_FacturasClienteIMPORTE_IVA = 13; + idx_FacturasClienteRE = 14; + idx_FacturasClienteIMPORTE_RE = 15; + idx_FacturasClienteIMPORTE_TOTAL = 16; + idx_FacturasClienteOBSERVACIONES = 17; + idx_FacturasClienteID_CLIENTE = 18; + idx_FacturasClienteNIF_CIF = 19; + idx_FacturasClienteNOMBRE = 20; + idx_FacturasClienteID_DIRECCION = 21; + idx_FacturasClienteCALLE = 22; + idx_FacturasClientePOBLACION = 23; + idx_FacturasClientePROVINCIA = 24; + idx_FacturasClienteCODIGO_POSTAL = 25; + idx_FacturasClienteDATOS_BANCARIOS = 26; + idx_FacturasClienteCLIENTE_FINAL = 27; + idx_FacturasClienteFECHA_ALTA = 28; + idx_FacturasClienteFECHA_MODIFICACION = 29; + idx_FacturasClienteUSUARIO = 30; + idx_FacturasClienteID_FORMA_PAGO = 31; + idx_FacturasClienteRECARGO_EQUIVALENCIA = 32; + idx_FacturasClienteID_TIPO_IVA = 33; + idx_FacturasClienteIMPORTE_NETO = 34; + idx_FacturasClienteIMPORTE_PORTE = 35; + idx_FacturasClienteID_AGENTE = 36; + idx_FacturasClienteREFERENCIA_COMISION = 37; + idx_FacturasClienteRETENCION = 38; + idx_FacturasClienteIMPORTE_RETENCION = 39; + + { FacturasCliente_Detalles fields } + fld_FacturasCliente_DetallesID = 'ID'; + fld_FacturasCliente_DetallesID_FACTURA = 'ID_FACTURA'; + fld_FacturasCliente_DetallesPOSICION = 'POSICION'; + fld_FacturasCliente_DetallesTIPO_DETALLE = 'TIPO_DETALLE'; + fld_FacturasCliente_DetallesCONCEPTO = 'CONCEPTO'; + fld_FacturasCliente_DetallesCANTIDAD = 'CANTIDAD'; + fld_FacturasCliente_DetallesUNIDAD_MEDIDA = 'UNIDAD_MEDIDA'; + fld_FacturasCliente_DetallesIMPORTE_UNIDAD = 'IMPORTE_UNIDAD'; + fld_FacturasCliente_DetallesIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_FacturasCliente_DetallesVISIBLE = 'VISIBLE'; + fld_FacturasCliente_DetallesID_ARTICULO = 'ID_ARTICULO'; + fld_FacturasCliente_DetallesDESCUENTO = 'DESCUENTO'; + fld_FacturasCliente_DetallesIMPORTE_PORTE = 'IMPORTE_PORTE'; + fld_FacturasCliente_DetallesREFERENCIA = 'REFERENCIA'; + fld_FacturasCliente_DetallesREFERENCIA_PROVEEDOR = 'REFERENCIA_PROVEEDOR'; + + { FacturasCliente_Detalles field indexes } + idx_FacturasCliente_DetallesID = 0; + idx_FacturasCliente_DetallesID_FACTURA = 1; + idx_FacturasCliente_DetallesPOSICION = 2; + idx_FacturasCliente_DetallesTIPO_DETALLE = 3; + idx_FacturasCliente_DetallesCONCEPTO = 4; + idx_FacturasCliente_DetallesCANTIDAD = 5; + idx_FacturasCliente_DetallesUNIDAD_MEDIDA = 6; + idx_FacturasCliente_DetallesIMPORTE_UNIDAD = 7; + idx_FacturasCliente_DetallesIMPORTE_TOTAL = 8; + idx_FacturasCliente_DetallesVISIBLE = 9; + idx_FacturasCliente_DetallesID_ARTICULO = 10; + idx_FacturasCliente_DetallesDESCUENTO = 11; + idx_FacturasCliente_DetallesIMPORTE_PORTE = 12; + idx_FacturasCliente_DetallesREFERENCIA = 13; + idx_FacturasCliente_DetallesREFERENCIA_PROVEEDOR = 14; + +type + { IListaAnosFacturas } + IListaAnosFacturas = interface(IDAStronglyTypedDataTable) + ['{CD6D3B14-759E-4A7A-A148-CB8DDBFA0D92}'] + { Property getters and setters } + function GetANOValue: String; + procedure SetANOValue(const aValue: String); + function GetANOIsNull: Boolean; + procedure SetANOIsNull(const aValue: Boolean); + + + { Properties } + property ANO: String read GetANOValue write SetANOValue; + property ANOIsNull: Boolean read GetANOIsNull write SetANOIsNull; + end; + + { TListaAnosFacturasDataTableRules } + TListaAnosFacturasDataTableRules = class(TIntfObjectDADataTableRules, IListaAnosFacturas) + private + protected + { Property getters and setters } + function GetANOValue: String; virtual; + procedure SetANOValue(const aValue: String); virtual; + function GetANOIsNull: Boolean; virtual; + procedure SetANOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ANO: String read GetANOValue write SetANOValue; + property ANOIsNull: Boolean read GetANOIsNull write SetANOIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IFacturasCliente } + IFacturasCliente = interface(IDAStronglyTypedDataTable) + ['{6E9731DA-0B33-43DF-9128-37F89A8D1645}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_EMPRESAIsNull: Boolean; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetTIPOValue: String; + procedure SetTIPOValue(const aValue: String); + function GetTIPOIsNull: Boolean; + procedure SetTIPOIsNull(const aValue: Boolean); + function GetID_COMISION_LIQUIDADAValue: Integer; + procedure SetID_COMISION_LIQUIDADAValue(const aValue: Integer); + function GetID_COMISION_LIQUIDADAIsNull: Boolean; + procedure SetID_COMISION_LIQUIDADAIsNull(const aValue: Boolean); + function GetFECHA_FACTURAValue: DateTime; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); + function GetFECHA_FACTURAIsNull: Boolean; + procedure SetFECHA_FACTURAIsNull(const aValue: Boolean); + function GetFECHA_VENCIMIENTOValue: DateTime; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); + function GetFECHA_VENCIMIENTOIsNull: Boolean; + procedure SetFECHA_VENCIMIENTOIsNull(const aValue: Boolean); + function GetFECHA_RETENCIONValue: DateTime; + procedure SetFECHA_RETENCIONValue(const aValue: DateTime); + function GetFECHA_RETENCIONIsNull: Boolean; + procedure SetFECHA_RETENCIONIsNull(const aValue: Boolean); + function GetSITUACIONValue: String; + procedure SetSITUACIONValue(const aValue: String); + function GetSITUACIONIsNull: Boolean; + procedure SetSITUACIONIsNull(const aValue: Boolean); + function GetBASE_IMPONIBLEValue: Currency; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); + function GetBASE_IMPONIBLEIsNull: Boolean; + procedure SetBASE_IMPONIBLEIsNull(const aValue: Boolean); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetDESCUENTOIsNull: Boolean; + procedure SetDESCUENTOIsNull(const aValue: Boolean); + function GetIMPORTE_DESCUENTOValue: Currency; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); + function GetIMPORTE_DESCUENTOIsNull: Boolean; + procedure SetIMPORTE_DESCUENTOIsNull(const aValue: Boolean); + function GetIVAValue: Float; + procedure SetIVAValue(const aValue: Float); + function GetIVAIsNull: Boolean; + procedure SetIVAIsNull(const aValue: Boolean); + function GetIMPORTE_IVAValue: Currency; + procedure SetIMPORTE_IVAValue(const aValue: Currency); + function GetIMPORTE_IVAIsNull: Boolean; + procedure SetIMPORTE_IVAIsNull(const aValue: Boolean); + function GetREValue: Float; + procedure SetREValue(const aValue: Float); + function GetREIsNull: Boolean; + procedure SetREIsNull(const aValue: Boolean); + function GetIMPORTE_REValue: Currency; + procedure SetIMPORTE_REValue(const aValue: Currency); + function GetIMPORTE_REIsNull: Boolean; + procedure SetIMPORTE_REIsNull(const aValue: Boolean); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetIMPORTE_TOTALIsNull: Boolean; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); + function GetOBSERVACIONESValue: IROStrings; + function GetOBSERVACIONESIsNull: Boolean; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); + function GetID_CLIENTEValue: Integer; + procedure SetID_CLIENTEValue(const aValue: Integer); + function GetID_CLIENTEIsNull: Boolean; + procedure SetID_CLIENTEIsNull(const aValue: Boolean); + function GetNIF_CIFValue: String; + procedure SetNIF_CIFValue(const aValue: String); + function GetNIF_CIFIsNull: Boolean; + procedure SetNIF_CIFIsNull(const aValue: Boolean); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetNOMBREIsNull: Boolean; + procedure SetNOMBREIsNull(const aValue: Boolean); + function GetID_DIRECCIONValue: Integer; + procedure SetID_DIRECCIONValue(const aValue: Integer); + function GetID_DIRECCIONIsNull: Boolean; + procedure SetID_DIRECCIONIsNull(const aValue: Boolean); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetCALLEIsNull: Boolean; + procedure SetCALLEIsNull(const aValue: Boolean); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPOBLACIONIsNull: Boolean; + procedure SetPOBLACIONIsNull(const aValue: Boolean); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetPROVINCIAIsNull: Boolean; + procedure SetPROVINCIAIsNull(const aValue: Boolean); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetCODIGO_POSTALIsNull: Boolean; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); + function GetDATOS_BANCARIOSValue: String; + procedure SetDATOS_BANCARIOSValue(const aValue: String); + function GetDATOS_BANCARIOSIsNull: Boolean; + procedure SetDATOS_BANCARIOSIsNull(const aValue: Boolean); + function GetCLIENTE_FINALValue: String; + procedure SetCLIENTE_FINALValue(const aValue: String); + function GetCLIENTE_FINALIsNull: Boolean; + procedure SetCLIENTE_FINALIsNull(const aValue: Boolean); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_ALTAIsNull: Boolean; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONIsNull: Boolean; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetUSUARIOIsNull: Boolean; + procedure SetUSUARIOIsNull(const aValue: Boolean); + function GetID_FORMA_PAGOValue: Integer; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); + function GetID_FORMA_PAGOIsNull: Boolean; + procedure SetID_FORMA_PAGOIsNull(const aValue: Boolean); + function GetRECARGO_EQUIVALENCIAValue: SmallInt; + procedure SetRECARGO_EQUIVALENCIAValue(const aValue: SmallInt); + function GetRECARGO_EQUIVALENCIAIsNull: Boolean; + procedure SetRECARGO_EQUIVALENCIAIsNull(const aValue: Boolean); + function GetID_TIPO_IVAValue: Integer; + procedure SetID_TIPO_IVAValue(const aValue: Integer); + function GetID_TIPO_IVAIsNull: Boolean; + procedure SetID_TIPO_IVAIsNull(const aValue: Boolean); + function GetIMPORTE_NETOValue: Currency; + procedure SetIMPORTE_NETOValue(const aValue: Currency); + function GetIMPORTE_NETOIsNull: Boolean; + procedure SetIMPORTE_NETOIsNull(const aValue: Boolean); + function GetIMPORTE_PORTEValue: Currency; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); + function GetIMPORTE_PORTEIsNull: Boolean; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); + function GetID_AGENTEValue: Integer; + procedure SetID_AGENTEValue(const aValue: Integer); + function GetID_AGENTEIsNull: Boolean; + procedure SetID_AGENTEIsNull(const aValue: Boolean); + function GetREFERENCIA_COMISIONValue: String; + procedure SetREFERENCIA_COMISIONValue(const aValue: String); + function GetREFERENCIA_COMISIONIsNull: Boolean; + procedure SetREFERENCIA_COMISIONIsNull(const aValue: Boolean); + function GetRETENCIONValue: Float; + procedure SetRETENCIONValue(const aValue: Float); + function GetRETENCIONIsNull: Boolean; + procedure SetRETENCIONIsNull(const aValue: Boolean); + function GetIMPORTE_RETENCIONValue: Currency; + procedure SetIMPORTE_RETENCIONValue(const aValue: Currency); + function GetIMPORTE_RETENCIONIsNull: Boolean; + procedure SetIMPORTE_RETENCIONIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull: Boolean read GetTIPOIsNull write SetTIPOIsNull; + property ID_COMISION_LIQUIDADA: Integer read GetID_COMISION_LIQUIDADAValue write SetID_COMISION_LIQUIDADAValue; + property ID_COMISION_LIQUIDADAIsNull: Boolean read GetID_COMISION_LIQUIDADAIsNull write SetID_COMISION_LIQUIDADAIsNull; + property FECHA_FACTURA: DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property FECHA_FACTURAIsNull: Boolean read GetFECHA_FACTURAIsNull write SetFECHA_FACTURAIsNull; + property FECHA_VENCIMIENTO: DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + property FECHA_VENCIMIENTOIsNull: Boolean read GetFECHA_VENCIMIENTOIsNull write SetFECHA_VENCIMIENTOIsNull; + property FECHA_RETENCION: DateTime read GetFECHA_RETENCIONValue write SetFECHA_RETENCIONValue; + property FECHA_RETENCIONIsNull: Boolean read GetFECHA_RETENCIONIsNull write SetFECHA_RETENCIONIsNull; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property SITUACIONIsNull: Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property BASE_IMPONIBLEIsNull: Boolean read GetBASE_IMPONIBLEIsNull write SetBASE_IMPONIBLEIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property IMPORTE_DESCUENTOIsNull: Boolean read GetIMPORTE_DESCUENTOIsNull write SetIMPORTE_DESCUENTOIsNull; + property IVA: Float read GetIVAValue write SetIVAValue; + property IVAIsNull: Boolean read GetIVAIsNull write SetIVAIsNull; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property IMPORTE_IVAIsNull: Boolean read GetIMPORTE_IVAIsNull write SetIMPORTE_IVAIsNull; + property RE: Float read GetREValue write SetREValue; + property REIsNull: Boolean read GetREIsNull write SetREIsNull; + property IMPORTE_RE: Currency read GetIMPORTE_REValue write SetIMPORTE_REValue; + property IMPORTE_REIsNull: Boolean read GetIMPORTE_REIsNull write SetIMPORTE_REIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue; + property OBSERVACIONESIsNull: Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property ID_CLIENTEIsNull: Boolean read GetID_CLIENTEIsNull write SetID_CLIENTEIsNull; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NIF_CIFIsNull: Boolean read GetNIF_CIFIsNull write SetNIF_CIFIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property ID_DIRECCION: Integer read GetID_DIRECCIONValue write SetID_DIRECCIONValue; + property ID_DIRECCIONIsNull: Boolean read GetID_DIRECCIONIsNull write SetID_DIRECCIONIsNull; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property DATOS_BANCARIOS: String read GetDATOS_BANCARIOSValue write SetDATOS_BANCARIOSValue; + property DATOS_BANCARIOSIsNull: Boolean read GetDATOS_BANCARIOSIsNull write SetDATOS_BANCARIOSIsNull; + property CLIENTE_FINAL: String read GetCLIENTE_FINALValue write SetCLIENTE_FINALValue; + property CLIENTE_FINALIsNull: Boolean read GetCLIENTE_FINALIsNull write SetCLIENTE_FINALIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property ID_FORMA_PAGOIsNull: Boolean read GetID_FORMA_PAGOIsNull write SetID_FORMA_PAGOIsNull; + property RECARGO_EQUIVALENCIA: SmallInt read GetRECARGO_EQUIVALENCIAValue write SetRECARGO_EQUIVALENCIAValue; + property RECARGO_EQUIVALENCIAIsNull: Boolean read GetRECARGO_EQUIVALENCIAIsNull write SetRECARGO_EQUIVALENCIAIsNull; + property ID_TIPO_IVA: Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue; + property ID_TIPO_IVAIsNull: Boolean read GetID_TIPO_IVAIsNull write SetID_TIPO_IVAIsNull; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_NETOIsNull: Boolean read GetIMPORTE_NETOIsNull write SetIMPORTE_NETOIsNull; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull: Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property ID_AGENTE: Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property ID_AGENTEIsNull: Boolean read GetID_AGENTEIsNull write SetID_AGENTEIsNull; + property REFERENCIA_COMISION: String read GetREFERENCIA_COMISIONValue write SetREFERENCIA_COMISIONValue; + property REFERENCIA_COMISIONIsNull: Boolean read GetREFERENCIA_COMISIONIsNull write SetREFERENCIA_COMISIONIsNull; + property RETENCION: Float read GetRETENCIONValue write SetRETENCIONValue; + property RETENCIONIsNull: Boolean read GetRETENCIONIsNull write SetRETENCIONIsNull; + property IMPORTE_RETENCION: Currency read GetIMPORTE_RETENCIONValue write SetIMPORTE_RETENCIONValue; + property IMPORTE_RETENCIONIsNull: Boolean read GetIMPORTE_RETENCIONIsNull write SetIMPORTE_RETENCIONIsNull; + end; + + { TFacturasClienteDataTableRules } + TFacturasClienteDataTableRules = class(TIntfObjectDADataTableRules, IFacturasCliente) + private + f_OBSERVACIONES: IROStrings; + procedure OBSERVACIONES_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetTIPOValue: String; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + function GetTIPOIsNull: Boolean; virtual; + procedure SetTIPOIsNull(const aValue: Boolean); virtual; + function GetID_COMISION_LIQUIDADAValue: Integer; virtual; + procedure SetID_COMISION_LIQUIDADAValue(const aValue: Integer); virtual; + function GetID_COMISION_LIQUIDADAIsNull: Boolean; virtual; + procedure SetID_COMISION_LIQUIDADAIsNull(const aValue: Boolean); virtual; + function GetFECHA_FACTURAValue: DateTime; virtual; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); virtual; + function GetFECHA_FACTURAIsNull: Boolean; virtual; + procedure SetFECHA_FACTURAIsNull(const aValue: Boolean); virtual; + function GetFECHA_VENCIMIENTOValue: DateTime; virtual; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); virtual; + function GetFECHA_VENCIMIENTOIsNull: Boolean; virtual; + procedure SetFECHA_VENCIMIENTOIsNull(const aValue: Boolean); virtual; + function GetFECHA_RETENCIONValue: DateTime; virtual; + procedure SetFECHA_RETENCIONValue(const aValue: DateTime); virtual; + function GetFECHA_RETENCIONIsNull: Boolean; virtual; + procedure SetFECHA_RETENCIONIsNull(const aValue: Boolean); virtual; + function GetSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetSITUACIONIsNull: Boolean; virtual; + procedure SetSITUACIONIsNull(const aValue: Boolean); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + function GetBASE_IMPONIBLEIsNull: Boolean; virtual; + procedure SetBASE_IMPONIBLEIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + function GetIMPORTE_DESCUENTOIsNull: Boolean; virtual; + procedure SetIMPORTE_DESCUENTOIsNull(const aValue: Boolean); virtual; + function GetIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + function GetIVAIsNull: Boolean; virtual; + procedure SetIVAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + function GetIMPORTE_IVAIsNull: Boolean; virtual; + procedure SetIMPORTE_IVAIsNull(const aValue: Boolean); virtual; + function GetREValue: Float; virtual; + procedure SetREValue(const aValue: Float); virtual; + function GetREIsNull: Boolean; virtual; + procedure SetREIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_REValue: Currency; virtual; + procedure SetIMPORTE_REValue(const aValue: Currency); virtual; + function GetIMPORTE_REIsNull: Boolean; virtual; + procedure SetIMPORTE_REIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + function GetOBSERVACIONESIsNull: Boolean; virtual; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); virtual; + function GetID_CLIENTEValue: Integer; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + function GetID_CLIENTEIsNull: Boolean; virtual; + procedure SetID_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetNIF_CIFValue: String; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + function GetNIF_CIFIsNull: Boolean; virtual; + procedure SetNIF_CIFIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetID_DIRECCIONValue: Integer; virtual; + procedure SetID_DIRECCIONValue(const aValue: Integer); virtual; + function GetID_DIRECCIONIsNull: Boolean; virtual; + procedure SetID_DIRECCIONIsNull(const aValue: Boolean); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetCALLEIsNull: Boolean; virtual; + procedure SetCALLEIsNull(const aValue: Boolean); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPOBLACIONIsNull: Boolean; virtual; + procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetPROVINCIAIsNull: Boolean; virtual; + procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetCODIGO_POSTALIsNull: Boolean; virtual; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual; + function GetDATOS_BANCARIOSValue: String; virtual; + procedure SetDATOS_BANCARIOSValue(const aValue: String); virtual; + function GetDATOS_BANCARIOSIsNull: Boolean; virtual; + procedure SetDATOS_BANCARIOSIsNull(const aValue: Boolean); virtual; + function GetCLIENTE_FINALValue: String; virtual; + procedure SetCLIENTE_FINALValue(const aValue: String); virtual; + function GetCLIENTE_FINALIsNull: Boolean; virtual; + procedure SetCLIENTE_FINALIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + function GetID_FORMA_PAGOIsNull: Boolean; virtual; + procedure SetID_FORMA_PAGOIsNull(const aValue: Boolean); virtual; + function GetRECARGO_EQUIVALENCIAValue: SmallInt; virtual; + procedure SetRECARGO_EQUIVALENCIAValue(const aValue: SmallInt); virtual; + function GetRECARGO_EQUIVALENCIAIsNull: Boolean; virtual; + procedure SetRECARGO_EQUIVALENCIAIsNull(const aValue: Boolean); virtual; + function GetID_TIPO_IVAValue: Integer; virtual; + procedure SetID_TIPO_IVAValue(const aValue: Integer); virtual; + function GetID_TIPO_IVAIsNull: Boolean; virtual; + procedure SetID_TIPO_IVAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + function GetIMPORTE_NETOIsNull: Boolean; virtual; + procedure SetIMPORTE_NETOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEIsNull: Boolean; virtual; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); virtual; + function GetID_AGENTEValue: Integer; virtual; + procedure SetID_AGENTEValue(const aValue: Integer); virtual; + function GetID_AGENTEIsNull: Boolean; virtual; + procedure SetID_AGENTEIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_COMISIONValue: String; virtual; + procedure SetREFERENCIA_COMISIONValue(const aValue: String); virtual; + function GetREFERENCIA_COMISIONIsNull: Boolean; virtual; + procedure SetREFERENCIA_COMISIONIsNull(const aValue: Boolean); virtual; + function GetRETENCIONValue: Float; virtual; + procedure SetRETENCIONValue(const aValue: Float); virtual; + function GetRETENCIONIsNull: Boolean; virtual; + procedure SetRETENCIONIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_RETENCIONValue: Currency; virtual; + procedure SetIMPORTE_RETENCIONValue(const aValue: Currency); virtual; + function GetIMPORTE_RETENCIONIsNull: Boolean; virtual; + procedure SetIMPORTE_RETENCIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull: Boolean read GetTIPOIsNull write SetTIPOIsNull; + property ID_COMISION_LIQUIDADA: Integer read GetID_COMISION_LIQUIDADAValue write SetID_COMISION_LIQUIDADAValue; + property ID_COMISION_LIQUIDADAIsNull: Boolean read GetID_COMISION_LIQUIDADAIsNull write SetID_COMISION_LIQUIDADAIsNull; + property FECHA_FACTURA: DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property FECHA_FACTURAIsNull: Boolean read GetFECHA_FACTURAIsNull write SetFECHA_FACTURAIsNull; + property FECHA_VENCIMIENTO: DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + property FECHA_VENCIMIENTOIsNull: Boolean read GetFECHA_VENCIMIENTOIsNull write SetFECHA_VENCIMIENTOIsNull; + property FECHA_RETENCION: DateTime read GetFECHA_RETENCIONValue write SetFECHA_RETENCIONValue; + property FECHA_RETENCIONIsNull: Boolean read GetFECHA_RETENCIONIsNull write SetFECHA_RETENCIONIsNull; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property SITUACIONIsNull: Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property BASE_IMPONIBLEIsNull: Boolean read GetBASE_IMPONIBLEIsNull write SetBASE_IMPONIBLEIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property IMPORTE_DESCUENTOIsNull: Boolean read GetIMPORTE_DESCUENTOIsNull write SetIMPORTE_DESCUENTOIsNull; + property IVA: Float read GetIVAValue write SetIVAValue; + property IVAIsNull: Boolean read GetIVAIsNull write SetIVAIsNull; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property IMPORTE_IVAIsNull: Boolean read GetIMPORTE_IVAIsNull write SetIMPORTE_IVAIsNull; + property RE: Float read GetREValue write SetREValue; + property REIsNull: Boolean read GetREIsNull write SetREIsNull; + property IMPORTE_RE: Currency read GetIMPORTE_REValue write SetIMPORTE_REValue; + property IMPORTE_REIsNull: Boolean read GetIMPORTE_REIsNull write SetIMPORTE_REIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue; + property OBSERVACIONESIsNull: Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property ID_CLIENTEIsNull: Boolean read GetID_CLIENTEIsNull write SetID_CLIENTEIsNull; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NIF_CIFIsNull: Boolean read GetNIF_CIFIsNull write SetNIF_CIFIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property ID_DIRECCION: Integer read GetID_DIRECCIONValue write SetID_DIRECCIONValue; + property ID_DIRECCIONIsNull: Boolean read GetID_DIRECCIONIsNull write SetID_DIRECCIONIsNull; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property DATOS_BANCARIOS: String read GetDATOS_BANCARIOSValue write SetDATOS_BANCARIOSValue; + property DATOS_BANCARIOSIsNull: Boolean read GetDATOS_BANCARIOSIsNull write SetDATOS_BANCARIOSIsNull; + property CLIENTE_FINAL: String read GetCLIENTE_FINALValue write SetCLIENTE_FINALValue; + property CLIENTE_FINALIsNull: Boolean read GetCLIENTE_FINALIsNull write SetCLIENTE_FINALIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property ID_FORMA_PAGOIsNull: Boolean read GetID_FORMA_PAGOIsNull write SetID_FORMA_PAGOIsNull; + property RECARGO_EQUIVALENCIA: SmallInt read GetRECARGO_EQUIVALENCIAValue write SetRECARGO_EQUIVALENCIAValue; + property RECARGO_EQUIVALENCIAIsNull: Boolean read GetRECARGO_EQUIVALENCIAIsNull write SetRECARGO_EQUIVALENCIAIsNull; + property ID_TIPO_IVA: Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue; + property ID_TIPO_IVAIsNull: Boolean read GetID_TIPO_IVAIsNull write SetID_TIPO_IVAIsNull; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_NETOIsNull: Boolean read GetIMPORTE_NETOIsNull write SetIMPORTE_NETOIsNull; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull: Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property ID_AGENTE: Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property ID_AGENTEIsNull: Boolean read GetID_AGENTEIsNull write SetID_AGENTEIsNull; + property REFERENCIA_COMISION: String read GetREFERENCIA_COMISIONValue write SetREFERENCIA_COMISIONValue; + property REFERENCIA_COMISIONIsNull: Boolean read GetREFERENCIA_COMISIONIsNull write SetREFERENCIA_COMISIONIsNull; + property RETENCION: Float read GetRETENCIONValue write SetRETENCIONValue; + property RETENCIONIsNull: Boolean read GetRETENCIONIsNull write SetRETENCIONIsNull; + property IMPORTE_RETENCION: Currency read GetIMPORTE_RETENCIONValue write SetIMPORTE_RETENCIONValue; + property IMPORTE_RETENCIONIsNull: Boolean read GetIMPORTE_RETENCIONIsNull write SetIMPORTE_RETENCIONIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IFacturasCliente_Detalles } + IFacturasCliente_Detalles = interface(IDAStronglyTypedDataTable) + ['{7562C65C-C3D3-4104-BAAE-5F11D0C87BF4}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_FACTURAValue: Integer; + procedure SetID_FACTURAValue(const aValue: Integer); + function GetID_FACTURAIsNull: Boolean; + procedure SetID_FACTURAIsNull(const aValue: Boolean); + function GetPOSICIONValue: Integer; + procedure SetPOSICIONValue(const aValue: Integer); + function GetPOSICIONIsNull: Boolean; + procedure SetPOSICIONIsNull(const aValue: Boolean); + function GetTIPO_DETALLEValue: String; + procedure SetTIPO_DETALLEValue(const aValue: String); + function GetTIPO_DETALLEIsNull: Boolean; + procedure SetTIPO_DETALLEIsNull(const aValue: Boolean); + function GetCONCEPTOValue: String; + procedure SetCONCEPTOValue(const aValue: String); + function GetCONCEPTOIsNull: Boolean; + procedure SetCONCEPTOIsNull(const aValue: Boolean); + function GetCANTIDADValue: Float; + procedure SetCANTIDADValue(const aValue: Float); + function GetCANTIDADIsNull: Boolean; + procedure SetCANTIDADIsNull(const aValue: Boolean); + function GetUNIDAD_MEDIDAValue: String; + procedure SetUNIDAD_MEDIDAValue(const aValue: String); + function GetUNIDAD_MEDIDAIsNull: Boolean; + procedure SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); + function GetIMPORTE_UNIDADValue: Currency; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); + function GetIMPORTE_UNIDADIsNull: Boolean; + procedure SetIMPORTE_UNIDADIsNull(const aValue: Boolean); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetIMPORTE_TOTALIsNull: Boolean; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); + function GetVISIBLEValue: Integer; + procedure SetVISIBLEValue(const aValue: Integer); + function GetVISIBLEIsNull: Boolean; + procedure SetVISIBLEIsNull(const aValue: Boolean); + function GetID_ARTICULOValue: Integer; + procedure SetID_ARTICULOValue(const aValue: Integer); + function GetID_ARTICULOIsNull: Boolean; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetDESCUENTOIsNull: Boolean; + procedure SetDESCUENTOIsNull(const aValue: Boolean); + function GetIMPORTE_PORTEValue: Currency; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); + function GetIMPORTE_PORTEIsNull: Boolean; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetREFERENCIA_PROVEEDORValue: String; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); + function GetREFERENCIA_PROVEEDORIsNull: Boolean; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull: Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property POSICIONIsNull: Boolean read GetPOSICIONIsNull write SetPOSICIONIsNull; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property TIPO_DETALLEIsNull: Boolean read GetTIPO_DETALLEIsNull write SetTIPO_DETALLEIsNull; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CONCEPTOIsNull: Boolean read GetCONCEPTOIsNull write SetCONCEPTOIsNull; + property CANTIDAD: Float read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDADIsNull: Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; + property UNIDAD_MEDIDA: String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue; + property UNIDAD_MEDIDAIsNull: Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull; + property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_UNIDADIsNull: Boolean read GetIMPORTE_UNIDADIsNull write SetIMPORTE_UNIDADIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property VISIBLEIsNull: Boolean read GetVISIBLEIsNull write SetVISIBLEIsNull; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull: Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull: Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull: Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + end; + + { TFacturasCliente_DetallesDataTableRules } + TFacturasCliente_DetallesDataTableRules = class(TIntfObjectDADataTableRules, IFacturasCliente_Detalles) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetID_FACTURAIsNull: Boolean; virtual; + procedure SetID_FACTURAIsNull(const aValue: Boolean); virtual; + function GetPOSICIONValue: Integer; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + function GetPOSICIONIsNull: Boolean; virtual; + procedure SetPOSICIONIsNull(const aValue: Boolean); virtual; + function GetTIPO_DETALLEValue: String; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + function GetTIPO_DETALLEIsNull: Boolean; virtual; + procedure SetTIPO_DETALLEIsNull(const aValue: Boolean); virtual; + function GetCONCEPTOValue: String; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + function GetCONCEPTOIsNull: Boolean; virtual; + procedure SetCONCEPTOIsNull(const aValue: Boolean); virtual; + function GetCANTIDADValue: Float; virtual; + procedure SetCANTIDADValue(const aValue: Float); virtual; + function GetCANTIDADIsNull: Boolean; virtual; + procedure SetCANTIDADIsNull(const aValue: Boolean); virtual; + function GetUNIDAD_MEDIDAValue: String; virtual; + procedure SetUNIDAD_MEDIDAValue(const aValue: String); virtual; + function GetUNIDAD_MEDIDAIsNull: Boolean; virtual; + procedure SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_UNIDADValue: Currency; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual; + function GetIMPORTE_UNIDADIsNull: Boolean; virtual; + procedure SetIMPORTE_UNIDADIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetVISIBLEValue: Integer; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + function GetVISIBLEIsNull: Boolean; virtual; + procedure SetVISIBLEIsNull(const aValue: Boolean); virtual; + function GetID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetID_ARTICULOIsNull: Boolean; virtual; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEIsNull: Boolean; virtual; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + function GetREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull: Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property POSICIONIsNull: Boolean read GetPOSICIONIsNull write SetPOSICIONIsNull; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property TIPO_DETALLEIsNull: Boolean read GetTIPO_DETALLEIsNull write SetTIPO_DETALLEIsNull; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CONCEPTOIsNull: Boolean read GetCONCEPTOIsNull write SetCONCEPTOIsNull; + property CANTIDAD: Float read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDADIsNull: Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; + property UNIDAD_MEDIDA: String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue; + property UNIDAD_MEDIDAIsNull: Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull; + property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_UNIDADIsNull: Boolean read GetIMPORTE_UNIDADIsNull write SetIMPORTE_UNIDADIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property VISIBLEIsNull: Boolean read GetVISIBLEIsNull write SetVISIBLEIsNull; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull: Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull: Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull: Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants, uROBinaryHelpers; + +{ TListaAnosFacturasDataTableRules } +constructor TListaAnosFacturasDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TListaAnosFacturasDataTableRules.Destroy; +begin + inherited; +end; + +function TListaAnosFacturasDataTableRules.GetANOValue: String; +begin + result := DataTable.Fields[idx_ListaAnosFacturasANO].AsString; +end; + +procedure TListaAnosFacturasDataTableRules.SetANOValue(const aValue: String); +begin + DataTable.Fields[idx_ListaAnosFacturasANO].AsString := aValue; +end; + +function TListaAnosFacturasDataTableRules.GetANOIsNull: boolean; +begin + result := DataTable.Fields[idx_ListaAnosFacturasANO].IsNull; +end; + +procedure TListaAnosFacturasDataTableRules.SetANOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ListaAnosFacturasANO].AsVariant := Null; +end; + + +{ TFacturasClienteDataTableRules } +constructor TFacturasClienteDataTableRules.Create(aDataTable: TDADataTable); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := OBSERVACIONES_OnChange; + f_OBSERVACIONES := NewROStrings(StrList,True); +end; + +destructor TFacturasClienteDataTableRules.Destroy; +begin + inherited; +end; + +procedure TFacturasClienteDataTableRules.OBSERVACIONES_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_FacturasClienteOBSERVACIONES].AsVariant := TStringList(Sender).Text; +end; + +function TFacturasClienteDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_FacturasClienteID].AsInteger; +end; + +procedure TFacturasClienteDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasClienteID].AsInteger := aValue; +end; + +function TFacturasClienteDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteID].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteID].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_FacturasClienteID_EMPRESA].AsInteger; +end; + +procedure TFacturasClienteDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasClienteID_EMPRESA].AsInteger := aValue; +end; + +function TFacturasClienteDataTableRules.GetID_EMPRESAIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteID_EMPRESA].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteID_EMPRESA].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_FacturasClienteREFERENCIA].AsString; +end; + +procedure TFacturasClienteDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasClienteREFERENCIA].AsString := aValue; +end; + +function TFacturasClienteDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteREFERENCIA].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteREFERENCIA].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetTIPOValue: String; +begin + result := DataTable.Fields[idx_FacturasClienteTIPO].AsString; +end; + +procedure TFacturasClienteDataTableRules.SetTIPOValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasClienteTIPO].AsString := aValue; +end; + +function TFacturasClienteDataTableRules.GetTIPOIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteTIPO].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetTIPOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteTIPO].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetID_COMISION_LIQUIDADAValue: Integer; +begin + result := DataTable.Fields[idx_FacturasClienteID_COMISION_LIQUIDADA].AsInteger; +end; + +procedure TFacturasClienteDataTableRules.SetID_COMISION_LIQUIDADAValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasClienteID_COMISION_LIQUIDADA].AsInteger := aValue; +end; + +function TFacturasClienteDataTableRules.GetID_COMISION_LIQUIDADAIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteID_COMISION_LIQUIDADA].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetID_COMISION_LIQUIDADAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteID_COMISION_LIQUIDADA].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetFECHA_FACTURAValue: DateTime; +begin + result := DataTable.Fields[idx_FacturasClienteFECHA_FACTURA].AsDateTime; +end; + +procedure TFacturasClienteDataTableRules.SetFECHA_FACTURAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_FacturasClienteFECHA_FACTURA].AsDateTime := aValue; +end; + +function TFacturasClienteDataTableRules.GetFECHA_FACTURAIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteFECHA_FACTURA].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetFECHA_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteFECHA_FACTURA].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetFECHA_VENCIMIENTOValue: DateTime; +begin + result := DataTable.Fields[idx_FacturasClienteFECHA_VENCIMIENTO].AsDateTime; +end; + +procedure TFacturasClienteDataTableRules.SetFECHA_VENCIMIENTOValue(const aValue: DateTime); +begin + DataTable.Fields[idx_FacturasClienteFECHA_VENCIMIENTO].AsDateTime := aValue; +end; + +function TFacturasClienteDataTableRules.GetFECHA_VENCIMIENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteFECHA_VENCIMIENTO].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetFECHA_VENCIMIENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteFECHA_VENCIMIENTO].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetFECHA_RETENCIONValue: DateTime; +begin + result := DataTable.Fields[idx_FacturasClienteFECHA_RETENCION].AsDateTime; +end; + +procedure TFacturasClienteDataTableRules.SetFECHA_RETENCIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_FacturasClienteFECHA_RETENCION].AsDateTime := aValue; +end; + +function TFacturasClienteDataTableRules.GetFECHA_RETENCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteFECHA_RETENCION].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetFECHA_RETENCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteFECHA_RETENCION].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetSITUACIONValue: String; +begin + result := DataTable.Fields[idx_FacturasClienteSITUACION].AsString; +end; + +procedure TFacturasClienteDataTableRules.SetSITUACIONValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasClienteSITUACION].AsString := aValue; +end; + +function TFacturasClienteDataTableRules.GetSITUACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteSITUACION].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetSITUACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteSITUACION].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := DataTable.Fields[idx_FacturasClienteBASE_IMPONIBLE].AsCurrency; +end; + +procedure TFacturasClienteDataTableRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasClienteBASE_IMPONIBLE].AsCurrency := aValue; +end; + +function TFacturasClienteDataTableRules.GetBASE_IMPONIBLEIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteBASE_IMPONIBLE].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetBASE_IMPONIBLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteBASE_IMPONIBLE].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_FacturasClienteDESCUENTO].AsFloat; +end; + +procedure TFacturasClienteDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_FacturasClienteDESCUENTO].AsFloat := aValue; +end; + +function TFacturasClienteDataTableRules.GetDESCUENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteDESCUENTO].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteDESCUENTO].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetIMPORTE_DESCUENTOValue: Currency; +begin + result := DataTable.Fields[idx_FacturasClienteIMPORTE_DESCUENTO].AsCurrency; +end; + +procedure TFacturasClienteDataTableRules.SetIMPORTE_DESCUENTOValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasClienteIMPORTE_DESCUENTO].AsCurrency := aValue; +end; + +function TFacturasClienteDataTableRules.GetIMPORTE_DESCUENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteIMPORTE_DESCUENTO].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetIMPORTE_DESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteIMPORTE_DESCUENTO].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetIVAValue: Float; +begin + result := DataTable.Fields[idx_FacturasClienteIVA].AsFloat; +end; + +procedure TFacturasClienteDataTableRules.SetIVAValue(const aValue: Float); +begin + DataTable.Fields[idx_FacturasClienteIVA].AsFloat := aValue; +end; + +function TFacturasClienteDataTableRules.GetIVAIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteIVA].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetIVAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteIVA].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetIMPORTE_IVAValue: Currency; +begin + result := DataTable.Fields[idx_FacturasClienteIMPORTE_IVA].AsCurrency; +end; + +procedure TFacturasClienteDataTableRules.SetIMPORTE_IVAValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasClienteIMPORTE_IVA].AsCurrency := aValue; +end; + +function TFacturasClienteDataTableRules.GetIMPORTE_IVAIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteIMPORTE_IVA].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetIMPORTE_IVAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteIMPORTE_IVA].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetREValue: Float; +begin + result := DataTable.Fields[idx_FacturasClienteRE].AsFloat; +end; + +procedure TFacturasClienteDataTableRules.SetREValue(const aValue: Float); +begin + DataTable.Fields[idx_FacturasClienteRE].AsFloat := aValue; +end; + +function TFacturasClienteDataTableRules.GetREIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteRE].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetREIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteRE].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetIMPORTE_REValue: Currency; +begin + result := DataTable.Fields[idx_FacturasClienteIMPORTE_RE].AsCurrency; +end; + +procedure TFacturasClienteDataTableRules.SetIMPORTE_REValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasClienteIMPORTE_RE].AsCurrency := aValue; +end; + +function TFacturasClienteDataTableRules.GetIMPORTE_REIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteIMPORTE_RE].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetIMPORTE_REIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteIMPORTE_RE].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_FacturasClienteIMPORTE_TOTAL].AsCurrency; +end; + +procedure TFacturasClienteDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasClienteIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TFacturasClienteDataTableRules.GetIMPORTE_TOTALIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteIMPORTE_TOTAL].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteIMPORTE_TOTAL].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetOBSERVACIONESValue: IROStrings; +begin + result := f_OBSERVACIONES; + result.Text := DataTable.Fields[idx_FacturasClienteOBSERVACIONES].AsString; +end; + +function TFacturasClienteDataTableRules.GetOBSERVACIONESIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteOBSERVACIONES].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetOBSERVACIONESIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteOBSERVACIONES].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetID_CLIENTEValue: Integer; +begin + result := DataTable.Fields[idx_FacturasClienteID_CLIENTE].AsInteger; +end; + +procedure TFacturasClienteDataTableRules.SetID_CLIENTEValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasClienteID_CLIENTE].AsInteger := aValue; +end; + +function TFacturasClienteDataTableRules.GetID_CLIENTEIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteID_CLIENTE].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetID_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteID_CLIENTE].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetNIF_CIFValue: String; +begin + result := DataTable.Fields[idx_FacturasClienteNIF_CIF].AsString; +end; + +procedure TFacturasClienteDataTableRules.SetNIF_CIFValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasClienteNIF_CIF].AsString := aValue; +end; + +function TFacturasClienteDataTableRules.GetNIF_CIFIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteNIF_CIF].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetNIF_CIFIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteNIF_CIF].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_FacturasClienteNOMBRE].AsString; +end; + +procedure TFacturasClienteDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasClienteNOMBRE].AsString := aValue; +end; + +function TFacturasClienteDataTableRules.GetNOMBREIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteNOMBRE].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteNOMBRE].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetID_DIRECCIONValue: Integer; +begin + result := DataTable.Fields[idx_FacturasClienteID_DIRECCION].AsInteger; +end; + +procedure TFacturasClienteDataTableRules.SetID_DIRECCIONValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasClienteID_DIRECCION].AsInteger := aValue; +end; + +function TFacturasClienteDataTableRules.GetID_DIRECCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteID_DIRECCION].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetID_DIRECCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteID_DIRECCION].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetCALLEValue: String; +begin + result := DataTable.Fields[idx_FacturasClienteCALLE].AsString; +end; + +procedure TFacturasClienteDataTableRules.SetCALLEValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasClienteCALLE].AsString := aValue; +end; + +function TFacturasClienteDataTableRules.GetCALLEIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteCALLE].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetCALLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteCALLE].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetPOBLACIONValue: String; +begin + result := DataTable.Fields[idx_FacturasClientePOBLACION].AsString; +end; + +procedure TFacturasClienteDataTableRules.SetPOBLACIONValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasClientePOBLACION].AsString := aValue; +end; + +function TFacturasClienteDataTableRules.GetPOBLACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClientePOBLACION].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetPOBLACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClientePOBLACION].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetPROVINCIAValue: String; +begin + result := DataTable.Fields[idx_FacturasClientePROVINCIA].AsString; +end; + +procedure TFacturasClienteDataTableRules.SetPROVINCIAValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasClientePROVINCIA].AsString := aValue; +end; + +function TFacturasClienteDataTableRules.GetPROVINCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClientePROVINCIA].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetPROVINCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClientePROVINCIA].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetCODIGO_POSTALValue: String; +begin + result := DataTable.Fields[idx_FacturasClienteCODIGO_POSTAL].AsString; +end; + +procedure TFacturasClienteDataTableRules.SetCODIGO_POSTALValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasClienteCODIGO_POSTAL].AsString := aValue; +end; + +function TFacturasClienteDataTableRules.GetCODIGO_POSTALIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteCODIGO_POSTAL].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetCODIGO_POSTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteCODIGO_POSTAL].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetDATOS_BANCARIOSValue: String; +begin + result := DataTable.Fields[idx_FacturasClienteDATOS_BANCARIOS].AsString; +end; + +procedure TFacturasClienteDataTableRules.SetDATOS_BANCARIOSValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasClienteDATOS_BANCARIOS].AsString := aValue; +end; + +function TFacturasClienteDataTableRules.GetDATOS_BANCARIOSIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteDATOS_BANCARIOS].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetDATOS_BANCARIOSIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteDATOS_BANCARIOS].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetCLIENTE_FINALValue: String; +begin + result := DataTable.Fields[idx_FacturasClienteCLIENTE_FINAL].AsString; +end; + +procedure TFacturasClienteDataTableRules.SetCLIENTE_FINALValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasClienteCLIENTE_FINAL].AsString := aValue; +end; + +function TFacturasClienteDataTableRules.GetCLIENTE_FINALIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteCLIENTE_FINAL].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetCLIENTE_FINALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteCLIENTE_FINAL].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_FacturasClienteFECHA_ALTA].AsDateTime; +end; + +procedure TFacturasClienteDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_FacturasClienteFECHA_ALTA].AsDateTime := aValue; +end; + +function TFacturasClienteDataTableRules.GetFECHA_ALTAIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteFECHA_ALTA].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteFECHA_ALTA].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_FacturasClienteFECHA_MODIFICACION].AsDateTime; +end; + +procedure TFacturasClienteDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_FacturasClienteFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TFacturasClienteDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteFECHA_MODIFICACION].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteFECHA_MODIFICACION].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_FacturasClienteUSUARIO].AsString; +end; + +procedure TFacturasClienteDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasClienteUSUARIO].AsString := aValue; +end; + +function TFacturasClienteDataTableRules.GetUSUARIOIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteUSUARIO].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteUSUARIO].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetID_FORMA_PAGOValue: Integer; +begin + result := DataTable.Fields[idx_FacturasClienteID_FORMA_PAGO].AsInteger; +end; + +procedure TFacturasClienteDataTableRules.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasClienteID_FORMA_PAGO].AsInteger := aValue; +end; + +function TFacturasClienteDataTableRules.GetID_FORMA_PAGOIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteID_FORMA_PAGO].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetID_FORMA_PAGOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteID_FORMA_PAGO].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetRECARGO_EQUIVALENCIAValue: SmallInt; +begin + result := DataTable.Fields[idx_FacturasClienteRECARGO_EQUIVALENCIA].AsSmallInt; +end; + +procedure TFacturasClienteDataTableRules.SetRECARGO_EQUIVALENCIAValue(const aValue: SmallInt); +begin + DataTable.Fields[idx_FacturasClienteRECARGO_EQUIVALENCIA].AsSmallInt := aValue; +end; + +function TFacturasClienteDataTableRules.GetRECARGO_EQUIVALENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteRECARGO_EQUIVALENCIA].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetRECARGO_EQUIVALENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteRECARGO_EQUIVALENCIA].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetID_TIPO_IVAValue: Integer; +begin + result := DataTable.Fields[idx_FacturasClienteID_TIPO_IVA].AsInteger; +end; + +procedure TFacturasClienteDataTableRules.SetID_TIPO_IVAValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasClienteID_TIPO_IVA].AsInteger := aValue; +end; + +function TFacturasClienteDataTableRules.GetID_TIPO_IVAIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteID_TIPO_IVA].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetID_TIPO_IVAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteID_TIPO_IVA].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetIMPORTE_NETOValue: Currency; +begin + result := DataTable.Fields[idx_FacturasClienteIMPORTE_NETO].AsCurrency; +end; + +procedure TFacturasClienteDataTableRules.SetIMPORTE_NETOValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasClienteIMPORTE_NETO].AsCurrency := aValue; +end; + +function TFacturasClienteDataTableRules.GetIMPORTE_NETOIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteIMPORTE_NETO].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetIMPORTE_NETOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteIMPORTE_NETO].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetIMPORTE_PORTEValue: Currency; +begin + result := DataTable.Fields[idx_FacturasClienteIMPORTE_PORTE].AsCurrency; +end; + +procedure TFacturasClienteDataTableRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasClienteIMPORTE_PORTE].AsCurrency := aValue; +end; + +function TFacturasClienteDataTableRules.GetIMPORTE_PORTEIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteIMPORTE_PORTE].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetIMPORTE_PORTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteIMPORTE_PORTE].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetID_AGENTEValue: Integer; +begin + result := DataTable.Fields[idx_FacturasClienteID_AGENTE].AsInteger; +end; + +procedure TFacturasClienteDataTableRules.SetID_AGENTEValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasClienteID_AGENTE].AsInteger := aValue; +end; + +function TFacturasClienteDataTableRules.GetID_AGENTEIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteID_AGENTE].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetID_AGENTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteID_AGENTE].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetREFERENCIA_COMISIONValue: String; +begin + result := DataTable.Fields[idx_FacturasClienteREFERENCIA_COMISION].AsString; +end; + +procedure TFacturasClienteDataTableRules.SetREFERENCIA_COMISIONValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasClienteREFERENCIA_COMISION].AsString := aValue; +end; + +function TFacturasClienteDataTableRules.GetREFERENCIA_COMISIONIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteREFERENCIA_COMISION].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetREFERENCIA_COMISIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteREFERENCIA_COMISION].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetRETENCIONValue: Float; +begin + result := DataTable.Fields[idx_FacturasClienteRETENCION].AsFloat; +end; + +procedure TFacturasClienteDataTableRules.SetRETENCIONValue(const aValue: Float); +begin + DataTable.Fields[idx_FacturasClienteRETENCION].AsFloat := aValue; +end; + +function TFacturasClienteDataTableRules.GetRETENCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteRETENCION].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetRETENCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteRETENCION].AsVariant := Null; +end; + +function TFacturasClienteDataTableRules.GetIMPORTE_RETENCIONValue: Currency; +begin + result := DataTable.Fields[idx_FacturasClienteIMPORTE_RETENCION].AsCurrency; +end; + +procedure TFacturasClienteDataTableRules.SetIMPORTE_RETENCIONValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasClienteIMPORTE_RETENCION].AsCurrency := aValue; +end; + +function TFacturasClienteDataTableRules.GetIMPORTE_RETENCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteIMPORTE_RETENCION].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetIMPORTE_RETENCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteIMPORTE_RETENCION].AsVariant := Null; +end; + + +{ TFacturasCliente_DetallesDataTableRules } +constructor TFacturasCliente_DetallesDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TFacturasCliente_DetallesDataTableRules.Destroy; +begin + inherited; +end; + +function TFacturasCliente_DetallesDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_FacturasCliente_DetallesID].AsInteger; +end; + +procedure TFacturasCliente_DetallesDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasCliente_DetallesID].AsInteger := aValue; +end; + +function TFacturasCliente_DetallesDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasCliente_DetallesID].IsNull; +end; + +procedure TFacturasCliente_DetallesDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasCliente_DetallesID].AsVariant := Null; +end; + +function TFacturasCliente_DetallesDataTableRules.GetID_FACTURAValue: Integer; +begin + result := DataTable.Fields[idx_FacturasCliente_DetallesID_FACTURA].AsInteger; +end; + +procedure TFacturasCliente_DetallesDataTableRules.SetID_FACTURAValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasCliente_DetallesID_FACTURA].AsInteger := aValue; +end; + +function TFacturasCliente_DetallesDataTableRules.GetID_FACTURAIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasCliente_DetallesID_FACTURA].IsNull; +end; + +procedure TFacturasCliente_DetallesDataTableRules.SetID_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasCliente_DetallesID_FACTURA].AsVariant := Null; +end; + +function TFacturasCliente_DetallesDataTableRules.GetPOSICIONValue: Integer; +begin + result := DataTable.Fields[idx_FacturasCliente_DetallesPOSICION].AsInteger; +end; + +procedure TFacturasCliente_DetallesDataTableRules.SetPOSICIONValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasCliente_DetallesPOSICION].AsInteger := aValue; +end; + +function TFacturasCliente_DetallesDataTableRules.GetPOSICIONIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasCliente_DetallesPOSICION].IsNull; +end; + +procedure TFacturasCliente_DetallesDataTableRules.SetPOSICIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasCliente_DetallesPOSICION].AsVariant := Null; +end; + +function TFacturasCliente_DetallesDataTableRules.GetTIPO_DETALLEValue: String; +begin + result := DataTable.Fields[idx_FacturasCliente_DetallesTIPO_DETALLE].AsString; +end; + +procedure TFacturasCliente_DetallesDataTableRules.SetTIPO_DETALLEValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasCliente_DetallesTIPO_DETALLE].AsString := aValue; +end; + +function TFacturasCliente_DetallesDataTableRules.GetTIPO_DETALLEIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasCliente_DetallesTIPO_DETALLE].IsNull; +end; + +procedure TFacturasCliente_DetallesDataTableRules.SetTIPO_DETALLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasCliente_DetallesTIPO_DETALLE].AsVariant := Null; +end; + +function TFacturasCliente_DetallesDataTableRules.GetCONCEPTOValue: String; +begin + result := DataTable.Fields[idx_FacturasCliente_DetallesCONCEPTO].AsString; +end; + +procedure TFacturasCliente_DetallesDataTableRules.SetCONCEPTOValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasCliente_DetallesCONCEPTO].AsString := aValue; +end; + +function TFacturasCliente_DetallesDataTableRules.GetCONCEPTOIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasCliente_DetallesCONCEPTO].IsNull; +end; + +procedure TFacturasCliente_DetallesDataTableRules.SetCONCEPTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasCliente_DetallesCONCEPTO].AsVariant := Null; +end; + +function TFacturasCliente_DetallesDataTableRules.GetCANTIDADValue: Float; +begin + result := DataTable.Fields[idx_FacturasCliente_DetallesCANTIDAD].AsFloat; +end; + +procedure TFacturasCliente_DetallesDataTableRules.SetCANTIDADValue(const aValue: Float); +begin + DataTable.Fields[idx_FacturasCliente_DetallesCANTIDAD].AsFloat := aValue; +end; + +function TFacturasCliente_DetallesDataTableRules.GetCANTIDADIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasCliente_DetallesCANTIDAD].IsNull; +end; + +procedure TFacturasCliente_DetallesDataTableRules.SetCANTIDADIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasCliente_DetallesCANTIDAD].AsVariant := Null; +end; + +function TFacturasCliente_DetallesDataTableRules.GetUNIDAD_MEDIDAValue: String; +begin + result := DataTable.Fields[idx_FacturasCliente_DetallesUNIDAD_MEDIDA].AsString; +end; + +procedure TFacturasCliente_DetallesDataTableRules.SetUNIDAD_MEDIDAValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasCliente_DetallesUNIDAD_MEDIDA].AsString := aValue; +end; + +function TFacturasCliente_DetallesDataTableRules.GetUNIDAD_MEDIDAIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasCliente_DetallesUNIDAD_MEDIDA].IsNull; +end; + +procedure TFacturasCliente_DetallesDataTableRules.SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasCliente_DetallesUNIDAD_MEDIDA].AsVariant := Null; +end; + +function TFacturasCliente_DetallesDataTableRules.GetIMPORTE_UNIDADValue: Currency; +begin + result := DataTable.Fields[idx_FacturasCliente_DetallesIMPORTE_UNIDAD].AsCurrency; +end; + +procedure TFacturasCliente_DetallesDataTableRules.SetIMPORTE_UNIDADValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasCliente_DetallesIMPORTE_UNIDAD].AsCurrency := aValue; +end; + +function TFacturasCliente_DetallesDataTableRules.GetIMPORTE_UNIDADIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasCliente_DetallesIMPORTE_UNIDAD].IsNull; +end; + +procedure TFacturasCliente_DetallesDataTableRules.SetIMPORTE_UNIDADIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasCliente_DetallesIMPORTE_UNIDAD].AsVariant := Null; +end; + +function TFacturasCliente_DetallesDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_FacturasCliente_DetallesIMPORTE_TOTAL].AsCurrency; +end; + +procedure TFacturasCliente_DetallesDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasCliente_DetallesIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TFacturasCliente_DetallesDataTableRules.GetIMPORTE_TOTALIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasCliente_DetallesIMPORTE_TOTAL].IsNull; +end; + +procedure TFacturasCliente_DetallesDataTableRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasCliente_DetallesIMPORTE_TOTAL].AsVariant := Null; +end; + +function TFacturasCliente_DetallesDataTableRules.GetVISIBLEValue: Integer; +begin + result := DataTable.Fields[idx_FacturasCliente_DetallesVISIBLE].AsInteger; +end; + +procedure TFacturasCliente_DetallesDataTableRules.SetVISIBLEValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasCliente_DetallesVISIBLE].AsInteger := aValue; +end; + +function TFacturasCliente_DetallesDataTableRules.GetVISIBLEIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasCliente_DetallesVISIBLE].IsNull; +end; + +procedure TFacturasCliente_DetallesDataTableRules.SetVISIBLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasCliente_DetallesVISIBLE].AsVariant := Null; +end; + +function TFacturasCliente_DetallesDataTableRules.GetID_ARTICULOValue: Integer; +begin + result := DataTable.Fields[idx_FacturasCliente_DetallesID_ARTICULO].AsInteger; +end; + +procedure TFacturasCliente_DetallesDataTableRules.SetID_ARTICULOValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasCliente_DetallesID_ARTICULO].AsInteger := aValue; +end; + +function TFacturasCliente_DetallesDataTableRules.GetID_ARTICULOIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasCliente_DetallesID_ARTICULO].IsNull; +end; + +procedure TFacturasCliente_DetallesDataTableRules.SetID_ARTICULOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasCliente_DetallesID_ARTICULO].AsVariant := Null; +end; + +function TFacturasCliente_DetallesDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_FacturasCliente_DetallesDESCUENTO].AsFloat; +end; + +procedure TFacturasCliente_DetallesDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_FacturasCliente_DetallesDESCUENTO].AsFloat := aValue; +end; + +function TFacturasCliente_DetallesDataTableRules.GetDESCUENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasCliente_DetallesDESCUENTO].IsNull; +end; + +procedure TFacturasCliente_DetallesDataTableRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasCliente_DetallesDESCUENTO].AsVariant := Null; +end; + +function TFacturasCliente_DetallesDataTableRules.GetIMPORTE_PORTEValue: Currency; +begin + result := DataTable.Fields[idx_FacturasCliente_DetallesIMPORTE_PORTE].AsCurrency; +end; + +procedure TFacturasCliente_DetallesDataTableRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasCliente_DetallesIMPORTE_PORTE].AsCurrency := aValue; +end; + +function TFacturasCliente_DetallesDataTableRules.GetIMPORTE_PORTEIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasCliente_DetallesIMPORTE_PORTE].IsNull; +end; + +procedure TFacturasCliente_DetallesDataTableRules.SetIMPORTE_PORTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasCliente_DetallesIMPORTE_PORTE].AsVariant := Null; +end; + +function TFacturasCliente_DetallesDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_FacturasCliente_DetallesREFERENCIA].AsString; +end; + +procedure TFacturasCliente_DetallesDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasCliente_DetallesREFERENCIA].AsString := aValue; +end; + +function TFacturasCliente_DetallesDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasCliente_DetallesREFERENCIA].IsNull; +end; + +procedure TFacturasCliente_DetallesDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasCliente_DetallesREFERENCIA].AsVariant := Null; +end; + +function TFacturasCliente_DetallesDataTableRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_FacturasCliente_DetallesREFERENCIA_PROVEEDOR].AsString; +end; + +procedure TFacturasCliente_DetallesDataTableRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasCliente_DetallesREFERENCIA_PROVEEDOR].AsString := aValue; +end; + +function TFacturasCliente_DetallesDataTableRules.GetREFERENCIA_PROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasCliente_DetallesREFERENCIA_PROVEEDOR].IsNull; +end; + +procedure TFacturasCliente_DetallesDataTableRules.SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasCliente_DetallesREFERENCIA_PROVEEDOR].AsVariant := Null; +end; + + +initialization + RegisterDataTableRules(RID_ListaAnosFacturas, TListaAnosFacturasDataTableRules); + RegisterDataTableRules(RID_FacturasCliente, TFacturasClienteDataTableRules); + RegisterDataTableRules(RID_FacturasCliente_Detalles, TFacturasCliente_DetallesDataTableRules); + +end. diff --git a/Source/Modulos/Facturas de cliente/Model/schFacturasClienteServer_Intf.dcu b/Source/Modulos/Facturas de cliente/Model/schFacturasClienteServer_Intf.dcu new file mode 100644 index 0000000..18725a0 Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Model/schFacturasClienteServer_Intf.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Model/schFacturasClienteServer_Intf.pas b/Source/Modulos/Facturas de cliente/Model/schFacturasClienteServer_Intf.pas new file mode 100644 index 0000000..f6dfc50 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Model/schFacturasClienteServer_Intf.pas @@ -0,0 +1,2546 @@ +unit schFacturasClienteServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schFacturasClienteClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_ListaAnosFacturasDelta = '{918AF647-D101-44B9-AC18-3D64BE3A714A}'; + RID_FacturasClienteDelta = '{566BE766-12BF-4272-8214-8550BD00F7E3}'; + RID_FacturasCliente_DetallesDelta = '{B1AB58CB-D6F2-4108-AB5F-B352E9C27B9F}'; + +type + { IListaAnosFacturasDelta } + IListaAnosFacturasDelta = interface(IListaAnosFacturas) + ['{918AF647-D101-44B9-AC18-3D64BE3A714A}'] + { Property getters and setters } + function GetOldANOValue : String; + + { Properties } + property OldANO : String read GetOldANOValue; + end; + + { TListaAnosFacturasBusinessProcessorRules } + TListaAnosFacturasBusinessProcessorRules = class(TDABusinessProcessorRules, IListaAnosFacturas, IListaAnosFacturasDelta) + private + protected + { Property getters and setters } + function GetANOValue: String; virtual; + function GetANOIsNull: Boolean; virtual; + function GetOldANOValue: String; virtual; + function GetOldANOIsNull: Boolean; virtual; + procedure SetANOValue(const aValue: String); virtual; + procedure SetANOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ANO : String read GetANOValue write SetANOValue; + property ANOIsNull : Boolean read GetANOIsNull write SetANOIsNull; + property OldANO : String read GetOldANOValue; + property OldANOIsNull : Boolean read GetOldANOIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IFacturasClienteDelta } + IFacturasClienteDelta = interface(IFacturasCliente) + ['{566BE766-12BF-4272-8214-8550BD00F7E3}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldREFERENCIAValue : String; + function GetOldTIPOValue : String; + function GetOldID_COMISION_LIQUIDADAValue : Integer; + function GetOldFECHA_FACTURAValue : DateTime; + function GetOldFECHA_VENCIMIENTOValue : DateTime; + function GetOldFECHA_RETENCIONValue : DateTime; + function GetOldSITUACIONValue : String; + function GetOldBASE_IMPONIBLEValue : Currency; + function GetOldDESCUENTOValue : Float; + function GetOldIMPORTE_DESCUENTOValue : Currency; + function GetOldIVAValue : Float; + function GetOldIMPORTE_IVAValue : Currency; + function GetOldREValue : Float; + function GetOldIMPORTE_REValue : Currency; + function GetOldIMPORTE_TOTALValue : Currency; + function GetOldOBSERVACIONESValue : IROStrings; + function GetOldID_CLIENTEValue : Integer; + function GetOldNIF_CIFValue : String; + function GetOldNOMBREValue : String; + function GetOldID_DIRECCIONValue : Integer; + function GetOldCALLEValue : String; + function GetOldPOBLACIONValue : String; + function GetOldPROVINCIAValue : String; + function GetOldCODIGO_POSTALValue : String; + function GetOldDATOS_BANCARIOSValue : String; + function GetOldCLIENTE_FINALValue : String; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + function GetOldUSUARIOValue : String; + function GetOldID_FORMA_PAGOValue : Integer; + function GetOldRECARGO_EQUIVALENCIAValue : SmallInt; + function GetOldID_TIPO_IVAValue : Integer; + function GetOldIMPORTE_NETOValue : Currency; + function GetOldIMPORTE_PORTEValue : Currency; + function GetOldID_AGENTEValue : Integer; + function GetOldREFERENCIA_COMISIONValue : String; + function GetOldRETENCIONValue : Float; + function GetOldIMPORTE_RETENCIONValue : Currency; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldTIPO : String read GetOldTIPOValue; + property OldID_COMISION_LIQUIDADA : Integer read GetOldID_COMISION_LIQUIDADAValue; + property OldFECHA_FACTURA : DateTime read GetOldFECHA_FACTURAValue; + property OldFECHA_VENCIMIENTO : DateTime read GetOldFECHA_VENCIMIENTOValue; + property OldFECHA_RETENCION : DateTime read GetOldFECHA_RETENCIONValue; + property OldSITUACION : String read GetOldSITUACIONValue; + property OldBASE_IMPONIBLE : Currency read GetOldBASE_IMPONIBLEValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldIMPORTE_DESCUENTO : Currency read GetOldIMPORTE_DESCUENTOValue; + property OldIVA : Float read GetOldIVAValue; + property OldIMPORTE_IVA : Currency read GetOldIMPORTE_IVAValue; + property OldRE : Float read GetOldREValue; + property OldIMPORTE_RE : Currency read GetOldIMPORTE_REValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property OldID_CLIENTE : Integer read GetOldID_CLIENTEValue; + property OldNIF_CIF : String read GetOldNIF_CIFValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldID_DIRECCION : Integer read GetOldID_DIRECCIONValue; + property OldCALLE : String read GetOldCALLEValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property OldDATOS_BANCARIOS : String read GetOldDATOS_BANCARIOSValue; + property OldCLIENTE_FINAL : String read GetOldCLIENTE_FINALValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + property OldRECARGO_EQUIVALENCIA : SmallInt read GetOldRECARGO_EQUIVALENCIAValue; + property OldID_TIPO_IVA : Integer read GetOldID_TIPO_IVAValue; + property OldIMPORTE_NETO : Currency read GetOldIMPORTE_NETOValue; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property OldID_AGENTE : Integer read GetOldID_AGENTEValue; + property OldREFERENCIA_COMISION : String read GetOldREFERENCIA_COMISIONValue; + property OldRETENCION : Float read GetOldRETENCIONValue; + property OldIMPORTE_RETENCION : Currency read GetOldIMPORTE_RETENCIONValue; + end; + + { TFacturasClienteBusinessProcessorRules } + TFacturasClienteBusinessProcessorRules = class(TDABusinessProcessorRules, IFacturasCliente, IFacturasClienteDelta) + private + f_OBSERVACIONES: IROStrings; + procedure OBSERVACIONES_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetTIPOValue: String; virtual; + function GetTIPOIsNull: Boolean; virtual; + function GetOldTIPOValue: String; virtual; + function GetOldTIPOIsNull: Boolean; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + procedure SetTIPOIsNull(const aValue: Boolean); virtual; + function GetID_COMISION_LIQUIDADAValue: Integer; virtual; + function GetID_COMISION_LIQUIDADAIsNull: Boolean; virtual; + function GetOldID_COMISION_LIQUIDADAValue: Integer; virtual; + function GetOldID_COMISION_LIQUIDADAIsNull: Boolean; virtual; + procedure SetID_COMISION_LIQUIDADAValue(const aValue: Integer); virtual; + procedure SetID_COMISION_LIQUIDADAIsNull(const aValue: Boolean); virtual; + function GetFECHA_FACTURAValue: DateTime; virtual; + function GetFECHA_FACTURAIsNull: Boolean; virtual; + function GetOldFECHA_FACTURAValue: DateTime; virtual; + function GetOldFECHA_FACTURAIsNull: Boolean; virtual; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); virtual; + procedure SetFECHA_FACTURAIsNull(const aValue: Boolean); virtual; + function GetFECHA_VENCIMIENTOValue: DateTime; virtual; + function GetFECHA_VENCIMIENTOIsNull: Boolean; virtual; + function GetOldFECHA_VENCIMIENTOValue: DateTime; virtual; + function GetOldFECHA_VENCIMIENTOIsNull: Boolean; virtual; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); virtual; + procedure SetFECHA_VENCIMIENTOIsNull(const aValue: Boolean); virtual; + function GetFECHA_RETENCIONValue: DateTime; virtual; + function GetFECHA_RETENCIONIsNull: Boolean; virtual; + function GetOldFECHA_RETENCIONValue: DateTime; virtual; + function GetOldFECHA_RETENCIONIsNull: Boolean; virtual; + procedure SetFECHA_RETENCIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_RETENCIONIsNull(const aValue: Boolean); virtual; + function GetSITUACIONValue: String; virtual; + function GetSITUACIONIsNull: Boolean; virtual; + function GetOldSITUACIONValue: String; virtual; + function GetOldSITUACIONIsNull: Boolean; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + procedure SetSITUACIONIsNull(const aValue: Boolean); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + function GetBASE_IMPONIBLEIsNull: Boolean; virtual; + function GetOldBASE_IMPONIBLEValue: Currency; virtual; + function GetOldBASE_IMPONIBLEIsNull: Boolean; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + procedure SetBASE_IMPONIBLEIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + function GetOldDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + function GetIMPORTE_DESCUENTOIsNull: Boolean; virtual; + function GetOldIMPORTE_DESCUENTOValue: Currency; virtual; + function GetOldIMPORTE_DESCUENTOIsNull: Boolean; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + procedure SetIMPORTE_DESCUENTOIsNull(const aValue: Boolean); virtual; + function GetIVAValue: Float; virtual; + function GetIVAIsNull: Boolean; virtual; + function GetOldIVAValue: Float; virtual; + function GetOldIVAIsNull: Boolean; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + procedure SetIVAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + function GetIMPORTE_IVAIsNull: Boolean; virtual; + function GetOldIMPORTE_IVAValue: Currency; virtual; + function GetOldIMPORTE_IVAIsNull: Boolean; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + procedure SetIMPORTE_IVAIsNull(const aValue: Boolean); virtual; + function GetREValue: Float; virtual; + function GetREIsNull: Boolean; virtual; + function GetOldREValue: Float; virtual; + function GetOldREIsNull: Boolean; virtual; + procedure SetREValue(const aValue: Float); virtual; + procedure SetREIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_REValue: Currency; virtual; + function GetIMPORTE_REIsNull: Boolean; virtual; + function GetOldIMPORTE_REValue: Currency; virtual; + function GetOldIMPORTE_REIsNull: Boolean; virtual; + procedure SetIMPORTE_REValue(const aValue: Currency); virtual; + procedure SetIMPORTE_REIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + function GetOBSERVACIONESIsNull: Boolean; virtual; + function GetOldOBSERVACIONESValue: IROStrings; virtual; + function GetOldOBSERVACIONESIsNull: Boolean; virtual; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); virtual; + function GetID_CLIENTEValue: Integer; virtual; + function GetID_CLIENTEIsNull: Boolean; virtual; + function GetOldID_CLIENTEValue: Integer; virtual; + function GetOldID_CLIENTEIsNull: Boolean; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + procedure SetID_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetNIF_CIFValue: String; virtual; + function GetNIF_CIFIsNull: Boolean; virtual; + function GetOldNIF_CIFValue: String; virtual; + function GetOldNIF_CIFIsNull: Boolean; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + procedure SetNIF_CIFIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + function GetNOMBREIsNull: Boolean; virtual; + function GetOldNOMBREValue: String; virtual; + function GetOldNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetID_DIRECCIONValue: Integer; virtual; + function GetID_DIRECCIONIsNull: Boolean; virtual; + function GetOldID_DIRECCIONValue: Integer; virtual; + function GetOldID_DIRECCIONIsNull: Boolean; virtual; + procedure SetID_DIRECCIONValue(const aValue: Integer); virtual; + procedure SetID_DIRECCIONIsNull(const aValue: Boolean); virtual; + function GetCALLEValue: String; virtual; + function GetCALLEIsNull: Boolean; virtual; + function GetOldCALLEValue: String; virtual; + function GetOldCALLEIsNull: Boolean; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + procedure SetCALLEIsNull(const aValue: Boolean); virtual; + function GetPOBLACIONValue: String; virtual; + function GetPOBLACIONIsNull: Boolean; virtual; + function GetOldPOBLACIONValue: String; virtual; + function GetOldPOBLACIONIsNull: Boolean; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual; + function GetPROVINCIAValue: String; virtual; + function GetPROVINCIAIsNull: Boolean; virtual; + function GetOldPROVINCIAValue: String; virtual; + function GetOldPROVINCIAIsNull: Boolean; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetCODIGO_POSTALIsNull: Boolean; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALIsNull: Boolean; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual; + function GetDATOS_BANCARIOSValue: String; virtual; + function GetDATOS_BANCARIOSIsNull: Boolean; virtual; + function GetOldDATOS_BANCARIOSValue: String; virtual; + function GetOldDATOS_BANCARIOSIsNull: Boolean; virtual; + procedure SetDATOS_BANCARIOSValue(const aValue: String); virtual; + procedure SetDATOS_BANCARIOSIsNull(const aValue: Boolean); virtual; + function GetCLIENTE_FINALValue: String; virtual; + function GetCLIENTE_FINALIsNull: Boolean; virtual; + function GetOldCLIENTE_FINALValue: String; virtual; + function GetOldCLIENTE_FINALIsNull: Boolean; virtual; + procedure SetCLIENTE_FINALValue(const aValue: String); virtual; + procedure SetCLIENTE_FINALIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + function GetUSUARIOIsNull: Boolean; virtual; + function GetOldUSUARIOValue: String; virtual; + function GetOldUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + function GetID_FORMA_PAGOIsNull: Boolean; virtual; + function GetOldID_FORMA_PAGOValue: Integer; virtual; + function GetOldID_FORMA_PAGOIsNull: Boolean; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + procedure SetID_FORMA_PAGOIsNull(const aValue: Boolean); virtual; + function GetRECARGO_EQUIVALENCIAValue: SmallInt; virtual; + function GetRECARGO_EQUIVALENCIAIsNull: Boolean; virtual; + function GetOldRECARGO_EQUIVALENCIAValue: SmallInt; virtual; + function GetOldRECARGO_EQUIVALENCIAIsNull: Boolean; virtual; + procedure SetRECARGO_EQUIVALENCIAValue(const aValue: SmallInt); virtual; + procedure SetRECARGO_EQUIVALENCIAIsNull(const aValue: Boolean); virtual; + function GetID_TIPO_IVAValue: Integer; virtual; + function GetID_TIPO_IVAIsNull: Boolean; virtual; + function GetOldID_TIPO_IVAValue: Integer; virtual; + function GetOldID_TIPO_IVAIsNull: Boolean; virtual; + procedure SetID_TIPO_IVAValue(const aValue: Integer); virtual; + procedure SetID_TIPO_IVAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + function GetIMPORTE_NETOIsNull: Boolean; virtual; + function GetOldIMPORTE_NETOValue: Currency; virtual; + function GetOldIMPORTE_NETOIsNull: Boolean; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + procedure SetIMPORTE_NETOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + function GetIMPORTE_PORTEIsNull: Boolean; virtual; + function GetOldIMPORTE_PORTEValue: Currency; virtual; + function GetOldIMPORTE_PORTEIsNull: Boolean; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); virtual; + function GetID_AGENTEValue: Integer; virtual; + function GetID_AGENTEIsNull: Boolean; virtual; + function GetOldID_AGENTEValue: Integer; virtual; + function GetOldID_AGENTEIsNull: Boolean; virtual; + procedure SetID_AGENTEValue(const aValue: Integer); virtual; + procedure SetID_AGENTEIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_COMISIONValue: String; virtual; + function GetREFERENCIA_COMISIONIsNull: Boolean; virtual; + function GetOldREFERENCIA_COMISIONValue: String; virtual; + function GetOldREFERENCIA_COMISIONIsNull: Boolean; virtual; + procedure SetREFERENCIA_COMISIONValue(const aValue: String); virtual; + procedure SetREFERENCIA_COMISIONIsNull(const aValue: Boolean); virtual; + function GetRETENCIONValue: Float; virtual; + function GetRETENCIONIsNull: Boolean; virtual; + function GetOldRETENCIONValue: Float; virtual; + function GetOldRETENCIONIsNull: Boolean; virtual; + procedure SetRETENCIONValue(const aValue: Float); virtual; + procedure SetRETENCIONIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_RETENCIONValue: Currency; virtual; + function GetIMPORTE_RETENCIONIsNull: Boolean; virtual; + function GetOldIMPORTE_RETENCIONValue: Currency; virtual; + function GetOldIMPORTE_RETENCIONIsNull: Boolean; virtual; + procedure SetIMPORTE_RETENCIONValue(const aValue: Currency); virtual; + procedure SetIMPORTE_RETENCIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull : Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_EMPRESAIsNull : Boolean read GetOldID_EMPRESAIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property TIPO : String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull : Boolean read GetTIPOIsNull write SetTIPOIsNull; + property OldTIPO : String read GetOldTIPOValue; + property OldTIPOIsNull : Boolean read GetOldTIPOIsNull; + property ID_COMISION_LIQUIDADA : Integer read GetID_COMISION_LIQUIDADAValue write SetID_COMISION_LIQUIDADAValue; + property ID_COMISION_LIQUIDADAIsNull : Boolean read GetID_COMISION_LIQUIDADAIsNull write SetID_COMISION_LIQUIDADAIsNull; + property OldID_COMISION_LIQUIDADA : Integer read GetOldID_COMISION_LIQUIDADAValue; + property OldID_COMISION_LIQUIDADAIsNull : Boolean read GetOldID_COMISION_LIQUIDADAIsNull; + property FECHA_FACTURA : DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property FECHA_FACTURAIsNull : Boolean read GetFECHA_FACTURAIsNull write SetFECHA_FACTURAIsNull; + property OldFECHA_FACTURA : DateTime read GetOldFECHA_FACTURAValue; + property OldFECHA_FACTURAIsNull : Boolean read GetOldFECHA_FACTURAIsNull; + property FECHA_VENCIMIENTO : DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + property FECHA_VENCIMIENTOIsNull : Boolean read GetFECHA_VENCIMIENTOIsNull write SetFECHA_VENCIMIENTOIsNull; + property OldFECHA_VENCIMIENTO : DateTime read GetOldFECHA_VENCIMIENTOValue; + property OldFECHA_VENCIMIENTOIsNull : Boolean read GetOldFECHA_VENCIMIENTOIsNull; + property FECHA_RETENCION : DateTime read GetFECHA_RETENCIONValue write SetFECHA_RETENCIONValue; + property FECHA_RETENCIONIsNull : Boolean read GetFECHA_RETENCIONIsNull write SetFECHA_RETENCIONIsNull; + property OldFECHA_RETENCION : DateTime read GetOldFECHA_RETENCIONValue; + property OldFECHA_RETENCIONIsNull : Boolean read GetOldFECHA_RETENCIONIsNull; + property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue; + property SITUACIONIsNull : Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull; + property OldSITUACION : String read GetOldSITUACIONValue; + property OldSITUACIONIsNull : Boolean read GetOldSITUACIONIsNull; + property BASE_IMPONIBLE : Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property BASE_IMPONIBLEIsNull : Boolean read GetBASE_IMPONIBLEIsNull write SetBASE_IMPONIBLEIsNull; + property OldBASE_IMPONIBLE : Currency read GetOldBASE_IMPONIBLEValue; + property OldBASE_IMPONIBLEIsNull : Boolean read GetOldBASE_IMPONIBLEIsNull; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull : Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldDESCUENTOIsNull : Boolean read GetOldDESCUENTOIsNull; + property IMPORTE_DESCUENTO : Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property IMPORTE_DESCUENTOIsNull : Boolean read GetIMPORTE_DESCUENTOIsNull write SetIMPORTE_DESCUENTOIsNull; + property OldIMPORTE_DESCUENTO : Currency read GetOldIMPORTE_DESCUENTOValue; + property OldIMPORTE_DESCUENTOIsNull : Boolean read GetOldIMPORTE_DESCUENTOIsNull; + property IVA : Float read GetIVAValue write SetIVAValue; + property IVAIsNull : Boolean read GetIVAIsNull write SetIVAIsNull; + property OldIVA : Float read GetOldIVAValue; + property OldIVAIsNull : Boolean read GetOldIVAIsNull; + property IMPORTE_IVA : Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property IMPORTE_IVAIsNull : Boolean read GetIMPORTE_IVAIsNull write SetIMPORTE_IVAIsNull; + property OldIMPORTE_IVA : Currency read GetOldIMPORTE_IVAValue; + property OldIMPORTE_IVAIsNull : Boolean read GetOldIMPORTE_IVAIsNull; + property RE : Float read GetREValue write SetREValue; + property REIsNull : Boolean read GetREIsNull write SetREIsNull; + property OldRE : Float read GetOldREValue; + property OldREIsNull : Boolean read GetOldREIsNull; + property IMPORTE_RE : Currency read GetIMPORTE_REValue write SetIMPORTE_REValue; + property IMPORTE_REIsNull : Boolean read GetIMPORTE_REIsNull write SetIMPORTE_REIsNull; + property OldIMPORTE_RE : Currency read GetOldIMPORTE_REValue; + property OldIMPORTE_REIsNull : Boolean read GetOldIMPORTE_REIsNull; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull : Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldIMPORTE_TOTALIsNull : Boolean read GetOldIMPORTE_TOTALIsNull; + property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue; + property OBSERVACIONESIsNull : Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property OldOBSERVACIONESIsNull : Boolean read GetOldOBSERVACIONESIsNull; + property ID_CLIENTE : Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property ID_CLIENTEIsNull : Boolean read GetID_CLIENTEIsNull write SetID_CLIENTEIsNull; + property OldID_CLIENTE : Integer read GetOldID_CLIENTEValue; + property OldID_CLIENTEIsNull : Boolean read GetOldID_CLIENTEIsNull; + property NIF_CIF : String read GetNIF_CIFValue write SetNIF_CIFValue; + property NIF_CIFIsNull : Boolean read GetNIF_CIFIsNull write SetNIF_CIFIsNull; + property OldNIF_CIF : String read GetOldNIF_CIFValue; + property OldNIF_CIFIsNull : Boolean read GetOldNIF_CIFIsNull; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull : Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldNOMBREIsNull : Boolean read GetOldNOMBREIsNull; + property ID_DIRECCION : Integer read GetID_DIRECCIONValue write SetID_DIRECCIONValue; + property ID_DIRECCIONIsNull : Boolean read GetID_DIRECCIONIsNull write SetID_DIRECCIONIsNull; + property OldID_DIRECCION : Integer read GetOldID_DIRECCIONValue; + property OldID_DIRECCIONIsNull : Boolean read GetOldID_DIRECCIONIsNull; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull : Boolean read GetCALLEIsNull write SetCALLEIsNull; + property OldCALLE : String read GetOldCALLEValue; + property OldCALLEIsNull : Boolean read GetOldCALLEIsNull; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull : Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property OldPOBLACIONIsNull : Boolean read GetOldPOBLACIONIsNull; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull : Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property OldPROVINCIAIsNull : Boolean read GetOldPROVINCIAIsNull; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull : Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property OldCODIGO_POSTALIsNull : Boolean read GetOldCODIGO_POSTALIsNull; + property DATOS_BANCARIOS : String read GetDATOS_BANCARIOSValue write SetDATOS_BANCARIOSValue; + property DATOS_BANCARIOSIsNull : Boolean read GetDATOS_BANCARIOSIsNull write SetDATOS_BANCARIOSIsNull; + property OldDATOS_BANCARIOS : String read GetOldDATOS_BANCARIOSValue; + property OldDATOS_BANCARIOSIsNull : Boolean read GetOldDATOS_BANCARIOSIsNull; + property CLIENTE_FINAL : String read GetCLIENTE_FINALValue write SetCLIENTE_FINALValue; + property CLIENTE_FINALIsNull : Boolean read GetCLIENTE_FINALIsNull write SetCLIENTE_FINALIsNull; + property OldCLIENTE_FINAL : String read GetOldCLIENTE_FINALValue; + property OldCLIENTE_FINALIsNull : Boolean read GetOldCLIENTE_FINALIsNull; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull : Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_ALTAIsNull : Boolean read GetOldFECHA_ALTAIsNull; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull : Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldUSUARIOIsNull : Boolean read GetOldUSUARIOIsNull; + property ID_FORMA_PAGO : Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property ID_FORMA_PAGOIsNull : Boolean read GetID_FORMA_PAGOIsNull write SetID_FORMA_PAGOIsNull; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + property OldID_FORMA_PAGOIsNull : Boolean read GetOldID_FORMA_PAGOIsNull; + property RECARGO_EQUIVALENCIA : SmallInt read GetRECARGO_EQUIVALENCIAValue write SetRECARGO_EQUIVALENCIAValue; + property RECARGO_EQUIVALENCIAIsNull : Boolean read GetRECARGO_EQUIVALENCIAIsNull write SetRECARGO_EQUIVALENCIAIsNull; + property OldRECARGO_EQUIVALENCIA : SmallInt read GetOldRECARGO_EQUIVALENCIAValue; + property OldRECARGO_EQUIVALENCIAIsNull : Boolean read GetOldRECARGO_EQUIVALENCIAIsNull; + property ID_TIPO_IVA : Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue; + property ID_TIPO_IVAIsNull : Boolean read GetID_TIPO_IVAIsNull write SetID_TIPO_IVAIsNull; + property OldID_TIPO_IVA : Integer read GetOldID_TIPO_IVAValue; + property OldID_TIPO_IVAIsNull : Boolean read GetOldID_TIPO_IVAIsNull; + property IMPORTE_NETO : Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_NETOIsNull : Boolean read GetIMPORTE_NETOIsNull write SetIMPORTE_NETOIsNull; + property OldIMPORTE_NETO : Currency read GetOldIMPORTE_NETOValue; + property OldIMPORTE_NETOIsNull : Boolean read GetOldIMPORTE_NETOIsNull; + property IMPORTE_PORTE : Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull : Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property OldIMPORTE_PORTEIsNull : Boolean read GetOldIMPORTE_PORTEIsNull; + property ID_AGENTE : Integer read GetID_AGENTEValue write SetID_AGENTEValue; + property ID_AGENTEIsNull : Boolean read GetID_AGENTEIsNull write SetID_AGENTEIsNull; + property OldID_AGENTE : Integer read GetOldID_AGENTEValue; + property OldID_AGENTEIsNull : Boolean read GetOldID_AGENTEIsNull; + property REFERENCIA_COMISION : String read GetREFERENCIA_COMISIONValue write SetREFERENCIA_COMISIONValue; + property REFERENCIA_COMISIONIsNull : Boolean read GetREFERENCIA_COMISIONIsNull write SetREFERENCIA_COMISIONIsNull; + property OldREFERENCIA_COMISION : String read GetOldREFERENCIA_COMISIONValue; + property OldREFERENCIA_COMISIONIsNull : Boolean read GetOldREFERENCIA_COMISIONIsNull; + property RETENCION : Float read GetRETENCIONValue write SetRETENCIONValue; + property RETENCIONIsNull : Boolean read GetRETENCIONIsNull write SetRETENCIONIsNull; + property OldRETENCION : Float read GetOldRETENCIONValue; + property OldRETENCIONIsNull : Boolean read GetOldRETENCIONIsNull; + property IMPORTE_RETENCION : Currency read GetIMPORTE_RETENCIONValue write SetIMPORTE_RETENCIONValue; + property IMPORTE_RETENCIONIsNull : Boolean read GetIMPORTE_RETENCIONIsNull write SetIMPORTE_RETENCIONIsNull; + property OldIMPORTE_RETENCION : Currency read GetOldIMPORTE_RETENCIONValue; + property OldIMPORTE_RETENCIONIsNull : Boolean read GetOldIMPORTE_RETENCIONIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IFacturasCliente_DetallesDelta } + IFacturasCliente_DetallesDelta = interface(IFacturasCliente_Detalles) + ['{B1AB58CB-D6F2-4108-AB5F-B352E9C27B9F}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_FACTURAValue : Integer; + function GetOldPOSICIONValue : Integer; + function GetOldTIPO_DETALLEValue : String; + function GetOldCONCEPTOValue : String; + function GetOldCANTIDADValue : Float; + function GetOldUNIDAD_MEDIDAValue : String; + function GetOldIMPORTE_UNIDADValue : Currency; + function GetOldIMPORTE_TOTALValue : Currency; + function GetOldVISIBLEValue : Integer; + function GetOldID_ARTICULOValue : Integer; + function GetOldDESCUENTOValue : Float; + function GetOldIMPORTE_PORTEValue : Currency; + function GetOldREFERENCIAValue : String; + function GetOldREFERENCIA_PROVEEDORValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property OldPOSICION : Integer read GetOldPOSICIONValue; + property OldTIPO_DETALLE : String read GetOldTIPO_DETALLEValue; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property OldCANTIDAD : Float read GetOldCANTIDADValue; + property OldUNIDAD_MEDIDA : String read GetOldUNIDAD_MEDIDAValue; + property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + end; + + { TFacturasCliente_DetallesBusinessProcessorRules } + TFacturasCliente_DetallesBusinessProcessorRules = class(TDABusinessProcessorRules, IFacturasCliente_Detalles, IFacturasCliente_DetallesDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_FACTURAValue: Integer; virtual; + function GetID_FACTURAIsNull: Boolean; virtual; + function GetOldID_FACTURAValue: Integer; virtual; + function GetOldID_FACTURAIsNull: Boolean; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + procedure SetID_FACTURAIsNull(const aValue: Boolean); virtual; + function GetPOSICIONValue: Integer; virtual; + function GetPOSICIONIsNull: Boolean; virtual; + function GetOldPOSICIONValue: Integer; virtual; + function GetOldPOSICIONIsNull: Boolean; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + procedure SetPOSICIONIsNull(const aValue: Boolean); virtual; + function GetTIPO_DETALLEValue: String; virtual; + function GetTIPO_DETALLEIsNull: Boolean; virtual; + function GetOldTIPO_DETALLEValue: String; virtual; + function GetOldTIPO_DETALLEIsNull: Boolean; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + procedure SetTIPO_DETALLEIsNull(const aValue: Boolean); virtual; + function GetCONCEPTOValue: String; virtual; + function GetCONCEPTOIsNull: Boolean; virtual; + function GetOldCONCEPTOValue: String; virtual; + function GetOldCONCEPTOIsNull: Boolean; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + procedure SetCONCEPTOIsNull(const aValue: Boolean); virtual; + function GetCANTIDADValue: Float; virtual; + function GetCANTIDADIsNull: Boolean; virtual; + function GetOldCANTIDADValue: Float; virtual; + function GetOldCANTIDADIsNull: Boolean; virtual; + procedure SetCANTIDADValue(const aValue: Float); virtual; + procedure SetCANTIDADIsNull(const aValue: Boolean); virtual; + function GetUNIDAD_MEDIDAValue: String; virtual; + function GetUNIDAD_MEDIDAIsNull: Boolean; virtual; + function GetOldUNIDAD_MEDIDAValue: String; virtual; + function GetOldUNIDAD_MEDIDAIsNull: Boolean; virtual; + procedure SetUNIDAD_MEDIDAValue(const aValue: String); virtual; + procedure SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_UNIDADValue: Currency; virtual; + function GetIMPORTE_UNIDADIsNull: Boolean; virtual; + function GetOldIMPORTE_UNIDADValue: Currency; virtual; + function GetOldIMPORTE_UNIDADIsNull: Boolean; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual; + procedure SetIMPORTE_UNIDADIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetVISIBLEValue: Integer; virtual; + function GetVISIBLEIsNull: Boolean; virtual; + function GetOldVISIBLEValue: Integer; virtual; + function GetOldVISIBLEIsNull: Boolean; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + procedure SetVISIBLEIsNull(const aValue: Boolean); virtual; + function GetID_ARTICULOValue: Integer; virtual; + function GetID_ARTICULOIsNull: Boolean; virtual; + function GetOldID_ARTICULOValue: Integer; virtual; + function GetOldID_ARTICULOIsNull: Boolean; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + function GetOldDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + function GetIMPORTE_PORTEIsNull: Boolean; virtual; + function GetOldIMPORTE_PORTEValue: Currency; virtual; + function GetOldIMPORTE_PORTEIsNull: Boolean; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + function GetREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + function GetOldREFERENCIA_PROVEEDORValue: String; virtual; + function GetOldREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_FACTURA : Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull : Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property OldID_FACTURAIsNull : Boolean read GetOldID_FACTURAIsNull; + property POSICION : Integer read GetPOSICIONValue write SetPOSICIONValue; + property POSICIONIsNull : Boolean read GetPOSICIONIsNull write SetPOSICIONIsNull; + property OldPOSICION : Integer read GetOldPOSICIONValue; + property OldPOSICIONIsNull : Boolean read GetOldPOSICIONIsNull; + property TIPO_DETALLE : String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property TIPO_DETALLEIsNull : Boolean read GetTIPO_DETALLEIsNull write SetTIPO_DETALLEIsNull; + property OldTIPO_DETALLE : String read GetOldTIPO_DETALLEValue; + property OldTIPO_DETALLEIsNull : Boolean read GetOldTIPO_DETALLEIsNull; + property CONCEPTO : String read GetCONCEPTOValue write SetCONCEPTOValue; + property CONCEPTOIsNull : Boolean read GetCONCEPTOIsNull write SetCONCEPTOIsNull; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property OldCONCEPTOIsNull : Boolean read GetOldCONCEPTOIsNull; + property CANTIDAD : Float read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDADIsNull : Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; + property OldCANTIDAD : Float read GetOldCANTIDADValue; + property OldCANTIDADIsNull : Boolean read GetOldCANTIDADIsNull; + property UNIDAD_MEDIDA : String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue; + property UNIDAD_MEDIDAIsNull : Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull; + property OldUNIDAD_MEDIDA : String read GetOldUNIDAD_MEDIDAValue; + property OldUNIDAD_MEDIDAIsNull : Boolean read GetOldUNIDAD_MEDIDAIsNull; + property IMPORTE_UNIDAD : Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_UNIDADIsNull : Boolean read GetIMPORTE_UNIDADIsNull write SetIMPORTE_UNIDADIsNull; + property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue; + property OldIMPORTE_UNIDADIsNull : Boolean read GetOldIMPORTE_UNIDADIsNull; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull : Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldIMPORTE_TOTALIsNull : Boolean read GetOldIMPORTE_TOTALIsNull; + property VISIBLE : Integer read GetVISIBLEValue write SetVISIBLEValue; + property VISIBLEIsNull : Boolean read GetVISIBLEIsNull write SetVISIBLEIsNull; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property OldVISIBLEIsNull : Boolean read GetOldVISIBLEIsNull; + property ID_ARTICULO : Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull : Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldID_ARTICULOIsNull : Boolean read GetOldID_ARTICULOIsNull; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull : Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldDESCUENTOIsNull : Boolean read GetOldDESCUENTOIsNull; + property IMPORTE_PORTE : Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull : Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property OldIMPORTE_PORTEIsNull : Boolean read GetOldIMPORTE_PORTEIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property REFERENCIA_PROVEEDOR : String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull : Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + property OldREFERENCIA_PROVEEDORIsNull : Boolean read GetOldREFERENCIA_PROVEEDORIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers, uDAInterfaces; + +{ TListaAnosFacturasBusinessProcessorRules } +constructor TListaAnosFacturasBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TListaAnosFacturasBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TListaAnosFacturasBusinessProcessorRules.GetANOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosFacturasANO]; +end; + +function TListaAnosFacturasBusinessProcessorRules.GetANOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosFacturasANO]); +end; + +function TListaAnosFacturasBusinessProcessorRules.GetOldANOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaAnosFacturasANO]; +end; + +function TListaAnosFacturasBusinessProcessorRules.GetOldANOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ListaAnosFacturasANO]); +end; + +procedure TListaAnosFacturasBusinessProcessorRules.SetANOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosFacturasANO] := aValue; +end; + +procedure TListaAnosFacturasBusinessProcessorRules.SetANOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosFacturasANO] := Null; +end; + + +{ TFacturasClienteBusinessProcessorRules } +constructor TFacturasClienteBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := OBSERVACIONES_OnChange; + f_OBSERVACIONES := NewROStrings(StrList,True); +end; + +destructor TFacturasClienteBusinessProcessorRules.Destroy; +begin + inherited; +end; + +procedure TFacturasClienteBusinessProcessorRules.OBSERVACIONES_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteOBSERVACIONES] := TStringList(Sender).Text; +end; + +function TFacturasClienteBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID]; +end; + +function TFacturasClienteBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteID]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteID]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_EMPRESA]; +end; + +function TFacturasClienteBusinessProcessorRules.GetID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_EMPRESA]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteID_EMPRESA]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteID_EMPRESA]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_EMPRESA] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_EMPRESA] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteREFERENCIA]; +end; + +function TFacturasClienteBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteREFERENCIA]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteREFERENCIA]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteREFERENCIA]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteREFERENCIA] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteREFERENCIA] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteTIPO]; +end; + +function TFacturasClienteBusinessProcessorRules.GetTIPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteTIPO]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteTIPO]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldTIPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteTIPO]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetTIPOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteTIPO] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetTIPOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteTIPO] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetID_COMISION_LIQUIDADAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_COMISION_LIQUIDADA]; +end; + +function TFacturasClienteBusinessProcessorRules.GetID_COMISION_LIQUIDADAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_COMISION_LIQUIDADA]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldID_COMISION_LIQUIDADAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteID_COMISION_LIQUIDADA]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldID_COMISION_LIQUIDADAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteID_COMISION_LIQUIDADA]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetID_COMISION_LIQUIDADAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_COMISION_LIQUIDADA] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetID_COMISION_LIQUIDADAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_COMISION_LIQUIDADA] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetFECHA_FACTURAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteFECHA_FACTURA]; +end; + +function TFacturasClienteBusinessProcessorRules.GetFECHA_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteFECHA_FACTURA]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldFECHA_FACTURAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteFECHA_FACTURA]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldFECHA_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteFECHA_FACTURA]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetFECHA_FACTURAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteFECHA_FACTURA] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetFECHA_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteFECHA_FACTURA] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetFECHA_VENCIMIENTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteFECHA_VENCIMIENTO]; +end; + +function TFacturasClienteBusinessProcessorRules.GetFECHA_VENCIMIENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteFECHA_VENCIMIENTO]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldFECHA_VENCIMIENTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteFECHA_VENCIMIENTO]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldFECHA_VENCIMIENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteFECHA_VENCIMIENTO]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetFECHA_VENCIMIENTOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteFECHA_VENCIMIENTO] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetFECHA_VENCIMIENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteFECHA_VENCIMIENTO] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetFECHA_RETENCIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteFECHA_RETENCION]; +end; + +function TFacturasClienteBusinessProcessorRules.GetFECHA_RETENCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteFECHA_RETENCION]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldFECHA_RETENCIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteFECHA_RETENCION]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldFECHA_RETENCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteFECHA_RETENCION]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetFECHA_RETENCIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteFECHA_RETENCION] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetFECHA_RETENCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteFECHA_RETENCION] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteSITUACION]; +end; + +function TFacturasClienteBusinessProcessorRules.GetSITUACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteSITUACION]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteSITUACION]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldSITUACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteSITUACION]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetSITUACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteSITUACION] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetSITUACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteSITUACION] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteBASE_IMPONIBLE]; +end; + +function TFacturasClienteBusinessProcessorRules.GetBASE_IMPONIBLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteBASE_IMPONIBLE]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteBASE_IMPONIBLE]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldBASE_IMPONIBLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteBASE_IMPONIBLE]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteBASE_IMPONIBLE] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetBASE_IMPONIBLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteBASE_IMPONIBLE] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteDESCUENTO]; +end; + +function TFacturasClienteBusinessProcessorRules.GetDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteDESCUENTO]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteDESCUENTO]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteDESCUENTO]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteDESCUENTO] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteDESCUENTO] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_DESCUENTO]; +end; + +function TFacturasClienteBusinessProcessorRules.GetIMPORTE_DESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_DESCUENTO]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteIMPORTE_DESCUENTO]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldIMPORTE_DESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteIMPORTE_DESCUENTO]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetIMPORTE_DESCUENTOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_DESCUENTO] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetIMPORTE_DESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_DESCUENTO] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIVA]; +end; + +function TFacturasClienteBusinessProcessorRules.GetIVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIVA]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteIVA]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldIVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteIVA]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetIVAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIVA] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetIVAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIVA] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_IVA]; +end; + +function TFacturasClienteBusinessProcessorRules.GetIMPORTE_IVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_IVA]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteIMPORTE_IVA]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldIMPORTE_IVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteIMPORTE_IVA]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetIMPORTE_IVAValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_IVA] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetIMPORTE_IVAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_IVA] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetREValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteRE]; +end; + +function TFacturasClienteBusinessProcessorRules.GetREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteRE]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldREValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteRE]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteRE]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetREValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteRE] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetREIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteRE] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetIMPORTE_REValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_RE]; +end; + +function TFacturasClienteBusinessProcessorRules.GetIMPORTE_REIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_RE]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldIMPORTE_REValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteIMPORTE_RE]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldIMPORTE_REIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteIMPORTE_RE]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetIMPORTE_REValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_RE] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetIMPORTE_REIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_RE] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_TOTAL]; +end; + +function TFacturasClienteBusinessProcessorRules.GetIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_TOTAL]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteIMPORTE_TOTAL]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteIMPORTE_TOTAL]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_TOTAL] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_TOTAL] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings; +begin + result := f_OBSERVACIONES; + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteOBSERVACIONES]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOBSERVACIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteOBSERVACIONES]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteOBSERVACIONES]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldOBSERVACIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteOBSERVACIONES]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetOBSERVACIONESIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteOBSERVACIONES] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_CLIENTE]; +end; + +function TFacturasClienteBusinessProcessorRules.GetID_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_CLIENTE]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteID_CLIENTE]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldID_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteID_CLIENTE]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetID_CLIENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_CLIENTE] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetID_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_CLIENTE] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteNIF_CIF]; +end; + +function TFacturasClienteBusinessProcessorRules.GetNIF_CIFIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteNIF_CIF]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteNIF_CIF]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldNIF_CIFIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteNIF_CIF]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetNIF_CIFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteNIF_CIF] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetNIF_CIFIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteNIF_CIF] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteNOMBRE]; +end; + +function TFacturasClienteBusinessProcessorRules.GetNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteNOMBRE]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteNOMBRE]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteNOMBRE]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteNOMBRE] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteNOMBRE] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetID_DIRECCIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_DIRECCION]; +end; + +function TFacturasClienteBusinessProcessorRules.GetID_DIRECCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_DIRECCION]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldID_DIRECCIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteID_DIRECCION]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldID_DIRECCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteID_DIRECCION]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetID_DIRECCIONValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_DIRECCION] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetID_DIRECCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_DIRECCION] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteCALLE]; +end; + +function TFacturasClienteBusinessProcessorRules.GetCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteCALLE]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteCALLE]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteCALLE]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteCALLE] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetCALLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteCALLE] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClientePOBLACION]; +end; + +function TFacturasClienteBusinessProcessorRules.GetPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClientePOBLACION]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClientePOBLACION]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClientePOBLACION]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClientePOBLACION] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetPOBLACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClientePOBLACION] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClientePROVINCIA]; +end; + +function TFacturasClienteBusinessProcessorRules.GetPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClientePROVINCIA]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClientePROVINCIA]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClientePROVINCIA]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClientePROVINCIA] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetPROVINCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClientePROVINCIA] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteCODIGO_POSTAL]; +end; + +function TFacturasClienteBusinessProcessorRules.GetCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteCODIGO_POSTAL]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteCODIGO_POSTAL]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteCODIGO_POSTAL]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteCODIGO_POSTAL] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetCODIGO_POSTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteCODIGO_POSTAL] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetDATOS_BANCARIOSValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteDATOS_BANCARIOS]; +end; + +function TFacturasClienteBusinessProcessorRules.GetDATOS_BANCARIOSIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteDATOS_BANCARIOS]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldDATOS_BANCARIOSValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteDATOS_BANCARIOS]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldDATOS_BANCARIOSIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteDATOS_BANCARIOS]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetDATOS_BANCARIOSValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteDATOS_BANCARIOS] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetDATOS_BANCARIOSIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteDATOS_BANCARIOS] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetCLIENTE_FINALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteCLIENTE_FINAL]; +end; + +function TFacturasClienteBusinessProcessorRules.GetCLIENTE_FINALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteCLIENTE_FINAL]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldCLIENTE_FINALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteCLIENTE_FINAL]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldCLIENTE_FINALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteCLIENTE_FINAL]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetCLIENTE_FINALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteCLIENTE_FINAL] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetCLIENTE_FINALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteCLIENTE_FINAL] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteFECHA_ALTA]; +end; + +function TFacturasClienteBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteFECHA_ALTA]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteFECHA_ALTA]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteFECHA_ALTA]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteFECHA_ALTA] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteFECHA_ALTA] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteFECHA_MODIFICACION]; +end; + +function TFacturasClienteBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteFECHA_MODIFICACION]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteFECHA_MODIFICACION]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteFECHA_MODIFICACION]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteFECHA_MODIFICACION] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteFECHA_MODIFICACION] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteUSUARIO]; +end; + +function TFacturasClienteBusinessProcessorRules.GetUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteUSUARIO]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteUSUARIO]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteUSUARIO]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteUSUARIO] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteUSUARIO] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_FORMA_PAGO]; +end; + +function TFacturasClienteBusinessProcessorRules.GetID_FORMA_PAGOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_FORMA_PAGO]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteID_FORMA_PAGO]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldID_FORMA_PAGOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteID_FORMA_PAGO]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_FORMA_PAGO] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetID_FORMA_PAGOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_FORMA_PAGO] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetRECARGO_EQUIVALENCIAValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteRECARGO_EQUIVALENCIA]; +end; + +function TFacturasClienteBusinessProcessorRules.GetRECARGO_EQUIVALENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteRECARGO_EQUIVALENCIA]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldRECARGO_EQUIVALENCIAValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteRECARGO_EQUIVALENCIA]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldRECARGO_EQUIVALENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteRECARGO_EQUIVALENCIA]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetRECARGO_EQUIVALENCIAValue(const aValue: SmallInt); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteRECARGO_EQUIVALENCIA] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetRECARGO_EQUIVALENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteRECARGO_EQUIVALENCIA] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetID_TIPO_IVAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_TIPO_IVA]; +end; + +function TFacturasClienteBusinessProcessorRules.GetID_TIPO_IVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_TIPO_IVA]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldID_TIPO_IVAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteID_TIPO_IVA]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldID_TIPO_IVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteID_TIPO_IVA]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetID_TIPO_IVAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_TIPO_IVA] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetID_TIPO_IVAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_TIPO_IVA] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_NETO]; +end; + +function TFacturasClienteBusinessProcessorRules.GetIMPORTE_NETOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_NETO]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteIMPORTE_NETO]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldIMPORTE_NETOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteIMPORTE_NETO]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetIMPORTE_NETOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_NETO] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetIMPORTE_NETOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_NETO] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_PORTE]; +end; + +function TFacturasClienteBusinessProcessorRules.GetIMPORTE_PORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_PORTE]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteIMPORTE_PORTE]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldIMPORTE_PORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteIMPORTE_PORTE]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_PORTE] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetIMPORTE_PORTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_PORTE] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetID_AGENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_AGENTE]; +end; + +function TFacturasClienteBusinessProcessorRules.GetID_AGENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_AGENTE]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldID_AGENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteID_AGENTE]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldID_AGENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteID_AGENTE]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetID_AGENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_AGENTE] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetID_AGENTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID_AGENTE] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetREFERENCIA_COMISIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteREFERENCIA_COMISION]; +end; + +function TFacturasClienteBusinessProcessorRules.GetREFERENCIA_COMISIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteREFERENCIA_COMISION]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldREFERENCIA_COMISIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteREFERENCIA_COMISION]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldREFERENCIA_COMISIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteREFERENCIA_COMISION]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetREFERENCIA_COMISIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteREFERENCIA_COMISION] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetREFERENCIA_COMISIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteREFERENCIA_COMISION] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetRETENCIONValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteRETENCION]; +end; + +function TFacturasClienteBusinessProcessorRules.GetRETENCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteRETENCION]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldRETENCIONValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteRETENCION]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldRETENCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteRETENCION]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetRETENCIONValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteRETENCION] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetRETENCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteRETENCION] := Null; +end; + +function TFacturasClienteBusinessProcessorRules.GetIMPORTE_RETENCIONValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_RETENCION]; +end; + +function TFacturasClienteBusinessProcessorRules.GetIMPORTE_RETENCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_RETENCION]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldIMPORTE_RETENCIONValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteIMPORTE_RETENCION]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldIMPORTE_RETENCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteIMPORTE_RETENCION]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetIMPORTE_RETENCIONValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_RETENCION] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetIMPORTE_RETENCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTE_RETENCION] := Null; +end; + + +{ TFacturasCliente_DetallesBusinessProcessorRules } +constructor TFacturasCliente_DetallesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TFacturasCliente_DetallesBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesID]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesID]); +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesID]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesID]); +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesID] := aValue; +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesID] := Null; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesID_FACTURA]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetID_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesID_FACTURA]); +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesID_FACTURA]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldID_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesID_FACTURA]); +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetID_FACTURAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesID_FACTURA] := aValue; +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetID_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesID_FACTURA] := Null; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesPOSICION]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetPOSICIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesPOSICION]); +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesPOSICION]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldPOSICIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesPOSICION]); +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetPOSICIONValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesPOSICION] := aValue; +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetPOSICIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesPOSICION] := Null; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetTIPO_DETALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesTIPO_DETALLE]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetTIPO_DETALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesTIPO_DETALLE]); +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldTIPO_DETALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesTIPO_DETALLE]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldTIPO_DETALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesTIPO_DETALLE]); +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetTIPO_DETALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesTIPO_DETALLE] := aValue; +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetTIPO_DETALLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesTIPO_DETALLE] := Null; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesCONCEPTO]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetCONCEPTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesCONCEPTO]); +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesCONCEPTO]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldCONCEPTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesCONCEPTO]); +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetCONCEPTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesCONCEPTO] := aValue; +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetCONCEPTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesCONCEPTO] := Null; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetCANTIDADValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesCANTIDAD]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetCANTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesCANTIDAD]); +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldCANTIDADValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesCANTIDAD]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldCANTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesCANTIDAD]); +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetCANTIDADValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesCANTIDAD] := aValue; +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetCANTIDADIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesCANTIDAD] := Null; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetUNIDAD_MEDIDAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesUNIDAD_MEDIDA]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetUNIDAD_MEDIDAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesUNIDAD_MEDIDA]); +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldUNIDAD_MEDIDAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesUNIDAD_MEDIDA]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldUNIDAD_MEDIDAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesUNIDAD_MEDIDA]); +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetUNIDAD_MEDIDAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesUNIDAD_MEDIDA] := aValue; +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesUNIDAD_MEDIDA] := Null; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetIMPORTE_UNIDADValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesIMPORTE_UNIDAD]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetIMPORTE_UNIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesIMPORTE_UNIDAD]); +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldIMPORTE_UNIDADValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesIMPORTE_UNIDAD]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldIMPORTE_UNIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesIMPORTE_UNIDAD]); +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetIMPORTE_UNIDADValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesIMPORTE_UNIDAD] := aValue; +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetIMPORTE_UNIDADIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesIMPORTE_UNIDAD] := Null; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesIMPORTE_TOTAL]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesIMPORTE_TOTAL]); +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesIMPORTE_TOTAL]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesIMPORTE_TOTAL]); +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesIMPORTE_TOTAL] := aValue; +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesIMPORTE_TOTAL] := Null; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesVISIBLE]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetVISIBLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesVISIBLE]); +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesVISIBLE]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldVISIBLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesVISIBLE]); +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetVISIBLEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesVISIBLE] := aValue; +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetVISIBLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesVISIBLE] := Null; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesID_ARTICULO]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetID_ARTICULOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesID_ARTICULO]); +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesID_ARTICULO]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldID_ARTICULOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesID_ARTICULO]); +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetID_ARTICULOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesID_ARTICULO] := aValue; +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetID_ARTICULOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesID_ARTICULO] := Null; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesDESCUENTO]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesDESCUENTO]); +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesDESCUENTO]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesDESCUENTO]); +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesDESCUENTO] := aValue; +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesDESCUENTO] := Null; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesIMPORTE_PORTE]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetIMPORTE_PORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesIMPORTE_PORTE]); +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesIMPORTE_PORTE]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldIMPORTE_PORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesIMPORTE_PORTE]); +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesIMPORTE_PORTE] := aValue; +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetIMPORTE_PORTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesIMPORTE_PORTE] := Null; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesREFERENCIA]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesREFERENCIA]); +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesREFERENCIA]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesREFERENCIA]); +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesREFERENCIA] := aValue; +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesREFERENCIA] := Null; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesREFERENCIA_PROVEEDOR]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetREFERENCIA_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesREFERENCIA_PROVEEDOR]); +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesREFERENCIA_PROVEEDOR]; +end; + +function TFacturasCliente_DetallesBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasCliente_DetallesREFERENCIA_PROVEEDOR]); +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesREFERENCIA_PROVEEDOR] := aValue; +end; + +procedure TFacturasCliente_DetallesBusinessProcessorRules.SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasCliente_DetallesREFERENCIA_PROVEEDOR] := Null; +end; + + +initialization + RegisterBusinessProcessorRules(RID_ListaAnosFacturasDelta, TListaAnosFacturasBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_FacturasClienteDelta, TFacturasClienteBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_FacturasCliente_DetallesDelta, TFacturasCliente_DetallesBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Facturas de cliente/Model/uBizDetallesFacturaCliente.dcu b/Source/Modulos/Facturas de cliente/Model/uBizDetallesFacturaCliente.dcu new file mode 100644 index 0000000..8980967 Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Model/uBizDetallesFacturaCliente.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Model/uBizDetallesFacturaCliente.pas b/Source/Modulos/Facturas de cliente/Model/uBizDetallesFacturaCliente.pas new file mode 100644 index 0000000..38e2595 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Model/uBizDetallesFacturaCliente.pas @@ -0,0 +1,50 @@ +unit uBizDetallesFacturaCliente; + +interface + +uses + uDAInterfaces, uDADataTable, schFacturasClienteClient_Intf; + +const + BIZ_CLIENT_DETALLES_FACTURA_CLIENTE = 'Client.DetallesFactura.Cliente'; + +type + IBizDetallesFacturaCliente = interface(IFacturasCliente_Detalles) + ['{6C1BDF6E-242E-4921-819F-096278C3331C}'] + end; + + TBizDetallesFacturaCliente = class(TFacturasCliente_DetallesDataTableRules, IBizDetallesFacturaCliente) + protected + procedure OnNewRecord(Sender: TDADataTable); override; + procedure BeforeInsert(Sender: TDADataTable); override; + end; + +implementation + +uses + DB; + +{ TBizDetallesFacturaCliente } + +procedure TBizDetallesFacturaCliente.BeforeInsert(Sender: TDADataTable); +var + AMasterTable : TDADataTable; +begin + inherited; + AMasterTable := DataTable.GetMasterDataTable; + if Assigned(AMasterTable) and (AMasterTable.State = dsInsert) then + begin + AMasterTable.Post; + end; +end; + +procedure TBizDetallesFacturaCliente.OnNewRecord(Sender: TDADataTable); +begin + inherited; + VISIBLE := 1; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_DETALLES_FACTURA_CLIENTE, TBizDetallesFacturaCliente); + +end. diff --git a/Source/Modulos/Facturas de cliente/Model/uBizFacturasCliente.dcu b/Source/Modulos/Facturas de cliente/Model/uBizFacturasCliente.dcu new file mode 100644 index 0000000..0e9c537 Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Model/uBizFacturasCliente.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Model/uBizFacturasCliente.pas b/Source/Modulos/Facturas de cliente/Model/uBizFacturasCliente.pas new file mode 100644 index 0000000..20c4e67 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Model/uBizFacturasCliente.pas @@ -0,0 +1,383 @@ +unit uBizFacturasCliente; + +interface + +uses + uDAInterfaces, uDADataTable, schFacturasClienteClient_Intf, + uBizContactos, uBizDetallesFacturaCliente, uDBSelectionListUtils, Classes; + +const + BIZ_CLIENT_FACTURA_CLIENTE = 'Client.FacturaCliente'; + + CTE_TIPO_ABONO = 'A'; + CTE_TIPO_FACTURA = 'F'; + + CTE_PENDIENTE = 'PENDIENTE'; + CTE_PARCIAMENTE_PAGADA = 'PARCIALMENTE PAGADA'; + CTE_PAGADA = 'PAGADA'; + +type + IBizFacturaCliente = interface(IFacturasCliente) + ['{8C6F2523-41FB-4240-A242-C14390FBD2B7}'] + + procedure SetCliente(AValue : IBizCliente); + function GetCliente : IBizCliente; + property Cliente : IBizCliente read GetCliente write SetCliente; + + // Esta propidad es para que el controlador pueda acceder directamente + // a la propiedad Cliente + procedure _SetCliente(AValue : IBizCliente); + function _GetCliente : IBizCliente; + property _Cliente : IBizCliente read _GetCliente write _SetCliente; + + function GetDetalles: IBizDetallesFacturaCliente; + procedure SetDetalles(Value: IBizDetallesFacturaCliente); + property Detalles: IBizDetallesFacturaCliente read GetDetalles write SetDetalles; + + function EsNuevo : Boolean; + procedure CalcularImporteTotal; + end; + + TBizFacturaCliente = class(TFacturasClienteDataTableRules, IBizFacturaCliente, ISeleccionable) + private + FSeleccionableInterface : ISeleccionable; +// procedure CalcularDescuento; + procedure CalcularIVA; + procedure CalcularRE; + procedure CalcularRetencion; + procedure CalcularBaseImponible; + procedure AsignarTipoIVA (IDTipoIVA : Integer); + + protected + FCliente : IBizCliente; + FDetalles : IBizDetallesFacturaCliente; + FDetallesLink : TDADataSource; + + procedure SetCliente(AValue : IBizCliente); + function GetCliente : IBizCliente; + + procedure _SetCliente(AValue : IBizCliente); + function _GetCliente : IBizCliente; + + function GetDetalles: IBizDetallesFacturaCliente; + procedure SetDetalles(Value: IBizDetallesFacturaCliente); + + procedure RECARGO_EQUIVALENCIAOnChange(Sender: TDACustomField); + procedure ID_TIPO_IVAOnChange(Sender: TDACustomField); + + procedure IMPORTE_NETOOnChange(Sender: TDACustomField); + procedure IMPORTE_PORTEOnChange(Sender: TDACustomField); + procedure DESCUENTOOnChange(Sender: TDACustomField); + procedure IVAOnChange(Sender: TDACustomField); + procedure REOnChange(Sender: TDACustomField); + procedure RetencionOnChange(Sender: TDACustomField); + + procedure OnNewRecord(Sender: TDADataTable); override; + + function GetSITUACIONValue: String; override; +// procedure SetID_FORMA_PAGOValue(const aValue: Integer); override; + procedure SetID_COMISION_LIQUIDADAValue(const aValue: Integer); override; + procedure SetID_TIPO_IVAValue(const aValue: Integer); override; + + public + function EsNuevo : Boolean; + procedure IniciarValoresFacturaNueva; + procedure CalcularImporteTotal; + + property Cliente : IBizCliente read GetCliente write SetCliente; + property _Cliente : IBizCliente read _GetCliente write _SetCliente; + property Detalles: IBizDetallesFacturaCliente read GetDetalles write SetDetalles; + + property SeleccionableInterface : ISeleccionable read FSeleccionableInterface + write FSeleccionableInterface implements ISeleccionable; + + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + end; + +implementation + +uses + SysUtils, uDataTableUtils, DB, uDateUtils, DateUtils, uDataModuleUsuarios, + Variants, cxDateUtils, uTiposIVAController, uBizTiposIVA, uFactuGES_App; + +{ TBizFacturaCliente } + +function TBizFacturaCliente.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +procedure TBizFacturaCliente.AsignarTipoIVA(IDTipoIVA: Integer); +var + ATiposIVAController : ITiposIVAController; + ATipoIVA : IBizTipoIVA; +begin + inherited; + + ATiposIVAController := TTiposIVAController.Create; + try + ATipoIVA := ATiposIVAController.Buscar(IDTipoIVA); + ATipoIVA.DataTable.Active := True; + if Assigned(ATipoIVA) then + begin + Edit; + IVA := ATipoIVA.IVA; + if (RECARGO_EQUIVALENCIA = 1) then + RE := ATipoIVA.RE + else + RE := 0; + end; + finally + ATiposIVAController := NIL; + end; +end; + +procedure TBizFacturaCliente.CalcularBaseImponible; +begin + if not Self.DataTable.Editing then + Edit; + IMPORTE_DESCUENTO := IMPORTE_NETO * (DESCUENTO/100); + BASE_IMPONIBLE := IMPORTE_NETO - IMPORTE_DESCUENTO + IMPORTE_PORTE; +end; + +{procedure TBizFacturaCliente.CalcularDescuento; +begin + if not Self.DataTable.Editing then + Edit; + IMPORTE_DESCUENTO := (DESCUENTO / 100) * IMPORTE_NETO; +end;} + +procedure TBizFacturaCliente.CalcularImporteTotal; +begin + DataTable.DisableControls; + DataTable.Fields.FieldEventsDisabled := True; + try + CalcularBaseImponible; + CalcularIVA; + CalcularRE; + CalcularRetencion; + + if not Self.DataTable.Editing then + Edit; + IMPORTE_TOTAL := BASE_IMPONIBLE + IMPORTE_IVA + IMPORTE_RE; + finally + DataTable.Fields.FieldEventsDisabled := False; + DataTable.EnableControls; + end; +end; + +procedure TBizFacturaCliente.CalcularIVA; +begin + if not Self.DataTable.Editing then + Edit; + IMPORTE_IVA := (IVA / 100) * BASE_IMPONIBLE; +end; + +procedure TBizFacturaCliente.CalcularRE; +begin + if not Self.DataTable.Editing then + Edit; + IMPORTE_RE := (RE / 100) * BASE_IMPONIBLE; +end; + +procedure TBizFacturaCliente.CalcularRetencion; +begin + if not Self.DataTable.Editing then + Edit; + IMPORTE_RETENCION := (RETENCION / 100) * BASE_IMPONIBLE; +end; + +constructor TBizFacturaCliente.Create(aDataTable: TDADataTable); +begin + inherited; + FCliente := Nil; + + with DataTable do + begin + FieldByName(fld_FacturasClienteID_TIPO_IVA).OnChange := ID_TIPO_IVAOnChange; + FieldByName(fld_FacturasClienteRECARGO_EQUIVALENCIA).OnChange := RECARGO_EQUIVALENCIAOnChange; + + FieldByName(fld_FacturasClienteIMPORTE_NETO).OnChange := IMPORTE_NETOOnChange; + FieldByName(fld_FacturasClienteIMPORTE_PORTE).OnChange := IMPORTE_PORTEOnChange; + FieldByName(fld_FacturasClienteDESCUENTO).OnChange := DESCUENTOOnChange; + FieldByName(fld_FacturasClienteIVA).OnChange := IVAOnChange; + FieldByName(fld_FacturasClienteRE).OnChange := REOnChange; + FieldByName(fld_FacturasClienteRetencion).OnChange := RetencionOnChange; + end; + + FDetallesLink := TDADataSource.Create(NIL); + FDetallesLink.DataTable := aDataTable; + + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +procedure TBizFacturaCliente.DESCUENTOOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +destructor TBizFacturaCliente.Destroy; +begin + FCliente := NIL; + FDetalles := NIL; + FDetallesLink.Free; + + FSeleccionableInterface := NIL; + inherited; +end; + +function TBizFacturaCliente.GetCliente: IBizCliente; +begin + Result := FCliente; +end; + +function TBizFacturaCliente.GetDetalles: IBizDetallesFacturaCliente; +begin + Result := FDetalles; +end; + +function TBizFacturaCliente.GetSITUACIONValue: String; +begin + result := Trim(DataTable.Fields[idx_FacturasClienteSITUACION].AsString); +end; + +procedure TBizFacturaCliente.ID_TIPO_IVAOnChange(Sender: TDACustomField); +begin + AsignarTipoIVA(ID_TIPO_IVA); +end; + +procedure TBizFacturaCliente.IMPORTE_NETOOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +procedure TBizFacturaCliente.IMPORTE_PORTEOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +procedure TBizFacturaCliente.IniciarValoresFacturaNueva; +begin + ID_EMPRESA := AppFactuGES.EmpresaActiva.ID; + USUARIO := AppFactuGES.UsuarioActivo.UserName; + FECHA_FACTURA := DateOf(Now); + FECHA_VENCIMIENTO := DateOf(Now); + TIPO := CTE_TIPO_FACTURA; + ID_CLIENTE := ID_NULO; + ID_FORMA_PAGO := AppFactuGES.EmpresaActiva.ID_FORMA_PAGO; + ID_TIPO_IVA := AppFactuGES.EmpresaActiva.ID_TIPO_IVA; + RE := 0; + SITUACION := CTE_PENDIENTE; +end; + +procedure TBizFacturaCliente.IVAOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +procedure TBizFacturaCliente.OnNewRecord(Sender: TDADataTable); +begin + inherited; +// ID := GetRecNo; // -1, -2, -3... + IniciarValoresFacturaNueva; +end; + +procedure TBizFacturaCliente.RECARGO_EQUIVALENCIAOnChange( + Sender: TDACustomField); +begin + AsignarTipoIVA(ID_TIPO_IVA); +end; + +procedure TBizFacturaCliente.REOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +procedure TBizFacturaCliente.RetencionOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +procedure TBizFacturaCliente.SetCliente(AValue: IBizCliente); +var + bEnEdicion : Boolean; +begin + FCliente := AValue; + + bEnEdicion := (DataTable.State in dsEditModes); + if not bEnEdicion then + Edit; + + if Assigned(FCliente) then + begin + if not FCliente.DataTable.Active then + FCliente.DataTable.Active := True; + + ID_CLIENTE := FCliente.ID; + NOMBRE := FCliente.NOMBRE; + NIF_CIF := FCliente.NIF_CIF; + CALLE := FCliente.CALLE; + CODIGO_POSTAL := FCliente.CODIGO_POSTAL; + PROVINCIA := FCliente.PROVINCIA; + POBLACION := FCliente.POBLACION; + if FCliente.ID_FORMA_PAGO > 0 then + ID_FORMA_PAGO := FCliente.ID_FORMA_PAGO; + if FCliente.ID_TIPO_IVA > 0 then + ID_TIPO_IVA := FCliente.ID_TIPO_IVA; + RECARGO_EQUIVALENCIA := FCliente.RECARGO_EQUIVALENCIA; + DESCUENTO := FCliente.DESCUENTO; + Post; + + if bEnEdicion then + Edit; + end +end; + +procedure TBizFacturaCliente.SetDetalles(Value: IBizDetallesFacturaCliente); +begin + FDetalles := Value; + EnlazarMaestroDetalle(FDetallesLink, FDetalles); +end; + +procedure TBizFacturaCliente.SetID_COMISION_LIQUIDADAValue(const aValue: Integer); +begin + if (aValue = 0) then + SetFieldNull(DataTable, fld_FacturasClienteID_COMISION_LIQUIDADA) + else + inherited; +end; + +{procedure TBizFacturaCliente.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + if (aValue = 0) then + SetFieldNull(DataTable, fld_FacturasClienteID_FORMA_PAGO) + else + inherited; +end;} + +procedure TBizFacturaCliente.SetID_TIPO_IVAValue(const aValue: Integer); +begin + if (aValue = 0) then + SetFieldNull(DataTable, fld_FacturasClienteID_TIPO_IVA) + else + inherited; +end; + +function TBizFacturaCliente._GetCliente: IBizCliente; +begin + Result := FCliente; +end; + +procedure TBizFacturaCliente._SetCliente(AValue: IBizCliente); +begin + FCliente := AValue; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_FACTURA_CLIENTE, TBizFacturaCliente); + +finalization + +end. + diff --git a/Source/Modulos/Facturas de cliente/Model/uBizFacturasClienteServer.dcu b/Source/Modulos/Facturas de cliente/Model/uBizFacturasClienteServer.dcu new file mode 100644 index 0000000..c949124 Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Model/uBizFacturasClienteServer.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Model/uBizFacturasClienteServer.pas b/Source/Modulos/Facturas de cliente/Model/uBizFacturasClienteServer.pas new file mode 100644 index 0000000..2e103a1 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Model/uBizFacturasClienteServer.pas @@ -0,0 +1,142 @@ +unit uBizFacturasClienteServer; + +interface + +uses + uDAInterfaces, uDADelta, uDABusinessProcessor, + schFacturasClienteServer_Intf; + +const + BIZ_SERVER_FACTURAS_CLIENTE = 'Server.FacturasCliente'; + +type + TBizFacturasClienteServer = class(TFacturasClienteBusinessProcessorRules) + private + FReferenciaAutomatica : Boolean; + function DarReferencia : String; + function IncrementarReferencia : Boolean; + protected + procedure Delete_Asiento_Factura(aChange: TDADeltaChange); virtual; + procedure BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); override; + procedure AfterProcessChange(Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); override; + end; + +implementation + +uses + Variants, uDAClasses, uBusinessUtils, uROClasses, uROServer, SysUtils, + uDataModuleServer, schFacturasClienteClient_Intf, FactuGES_Intf; + +const + REF_FACTURAS_CLIENTE = 'REF_FACTURAS_CLIENTE'; + CTE_TIPO_ABONO = 'A'; + CTE_TIPO_FACTURA = 'F'; + + +{ TBizFacturasClienteServer } + +procedure TBizFacturasClienteServer.AfterProcessChange( + Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); +begin + inherited; + case aChange.ChangeType of + ctInsert: begin +// Insert_Asiento_Factura(aChange); + end; + ctUpdate: begin +// Update_Asiento_Factura(aChange); + end; + ctDelete: begin +// Delete_Asiento_Factura(aChange); + end; + end; + + { Por defecto, mantenemos los deltas por si alguna tabla hija los necesita } + CanRemoveFromDelta := False; + + case aChange.ChangeType of + ctInsert, ctUpdate: begin + if FReferenciaAutomatica then + begin + IncrementarReferencia; + FReferenciaAutomatica := False; + end; + end; + end; +end; + +procedure TBizFacturasClienteServer.BeforeProcessDelta( + Sender: TDABusinessProcessor; const aDelta: IDADelta); +begin + FReferenciaAutomatica := False; + + case Sender.CurrentChange.ChangeType of + ctInsert, ctUpdate: begin + //Si la referencia no ha sido asignada le asignamos una nosotros + if REFERENCIAIsNull or (Length(REFERENCIA) = 0) then + begin + FReferenciaAutomatica := True; + REFERENCIA := DarReferencia; + end; + end; + end; +end; + +function TBizFacturasClienteServer.DarReferencia: String; +var + AReferenciasService : IsrvReferencias; + Intf : IInterface; + AClientID : TGUID; +begin + // Aunque sea un abono, la referencia es la misma que una factura + + CreateGUID(AClientID); + + GetClassFactory('srvReferencias').CreateInstance(AClientID, Intf); + AReferenciasService := Intf as IsrvReferencias; + Result := AReferenciasService.DarNuevaReferencia(REF_FACTURAS_CLIENTE, ID_EMPRESA) +end; + +function TBizFacturasClienteServer.IncrementarReferencia: Boolean; +var + AReferenciasService : IsrvReferencias; + Intf : IInterface; + AClientID : TGUID; +begin + // Aunque sea un abono, la referencia es la misma que una factura + + CreateGUID(AClientID); + + GetClassFactory('srvReferencias').CreateInstance(AClientID, Intf); + AReferenciasService := Intf as IsrvReferencias; + Result := AReferenciasService.IncrementarValorReferencia(REF_FACTURAS_CLIENTE, Self.REFERENCIA, ID_EMPRESA) +end; + +procedure TBizFacturasClienteServer.Delete_Asiento_Factura(aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + //Eliminamos los recibos de la factura + ACommand := ASchema.NewCommand(ACurrentConn, 'Delete_RecibosFactura'); + try + with ACommand do + begin + ParamByName('ID_FACTURA').Value := aChange.OldValueByName[fld_FacturasClienteID]; + Execute; + end; + finally + ACommand := NIL; + end; +end; + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_FACTURAS_CLIENTE, TBizFacturasClienteServer); + +end. diff --git a/Source/Modulos/Facturas de cliente/Plugin/FacturasCliente_plugin.bdsproj b/Source/Modulos/Facturas de cliente/Plugin/FacturasCliente_plugin.bdsproj new file mode 100644 index 0000000..300c85f --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Plugin/FacturasCliente_plugin.bdsproj @@ -0,0 +1,495 @@ + + + + + + + + + + + + FacturasCliente_plugin.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + EurekaLog 5.1.9 + + + + diff --git a/Source/Modulos/Facturas de cliente/Plugin/FacturasCliente_plugin.dcu b/Source/Modulos/Facturas de cliente/Plugin/FacturasCliente_plugin.dcu new file mode 100644 index 0000000..398c768 Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Plugin/FacturasCliente_plugin.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Plugin/FacturasCliente_plugin.dpk b/Source/Modulos/Facturas de cliente/Plugin/FacturasCliente_plugin.dpk new file mode 100644 index 0000000..fe3e348 Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Plugin/FacturasCliente_plugin.dpk differ diff --git a/Source/Modulos/Facturas de cliente/Plugin/FacturasCliente_plugin.dproj b/Source/Modulos/Facturas de cliente/Plugin/FacturasCliente_plugin.dproj new file mode 100644 index 0000000..36c9895 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Plugin/FacturasCliente_plugin.dproj @@ -0,0 +1,556 @@ + + + {e7d762a1-3a15-46b2-bd5b-3821d13b8347} + FacturasCliente_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\FacturasCliente_plugin.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 + + + + + + + + + + + + + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + EurekaLog 5.1.9 + FacturasCliente_plugin.dpk + + + + + MainSource + + + + + +
PluginFacturasCliente
+
+
+
+ \ No newline at end of file diff --git a/Source/Modulos/Facturas de cliente/Plugin/FacturasCliente_plugin.drc b/Source/Modulos/Facturas de cliente/Plugin/FacturasCliente_plugin.drc new file mode 100644 index 0000000..ebc0feb --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Plugin/FacturasCliente_plugin.drc @@ -0,0 +1,17 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Facturas de cliente\Plugin\uPluginFacturasCliente.dfm */ +/* C:\Codigo\Source\Modulos\Facturas de cliente\Plugin\FacturasCliente_plugin.res */ +/* c:\temp\dtf1FB.tmp */ diff --git a/Source/Modulos/Facturas de cliente/Plugin/FacturasCliente_plugin.rc b/Source/Modulos/Facturas de cliente/Plugin/FacturasCliente_plugin.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Plugin/FacturasCliente_plugin.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Facturas de cliente/Plugin/FacturasCliente_plugin.res b/Source/Modulos/Facturas de cliente/Plugin/FacturasCliente_plugin.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Plugin/FacturasCliente_plugin.res differ diff --git a/Source/Modulos/Facturas de cliente/Plugin/uPluginFacturasCliente.dcu b/Source/Modulos/Facturas de cliente/Plugin/uPluginFacturasCliente.dcu new file mode 100644 index 0000000..204fd9f Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Plugin/uPluginFacturasCliente.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Plugin/uPluginFacturasCliente.dfm b/Source/Modulos/Facturas de cliente/Plugin/uPluginFacturasCliente.dfm new file mode 100644 index 0000000..23dc28a --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Plugin/uPluginFacturasCliente.dfm @@ -0,0 +1,131 @@ +object PluginFacturasCliente: TPluginFacturasCliente + OldCreateOrder = True + DefaultAction = actFacturasCliente + Description = 'Ventas' + ModuleMenu = MainMenu + ModuleName = 'Facturas de cliente' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software' + Version = '1.0.0' + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001BE4944415478DA + 63FCFFFF3F032D0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80 + F83F980601EBC07C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3 + C275FB19E62DDD84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD978 + 90B005D87C802E06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9 + E0FF3F605803F11FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F1 + 8E70860DBB4E106701CCDBA480075B431936EF3D459C05F8520E3600D2B3A850 + 8F61EB81D3C45B802BA86096C3E4616AE7E7EB32EC387486763E989DA3CDB0E7 + E839DAF96046A626C3FE131768E783A969EA0C874E5FC26F4184A729387792E3 + 838929AA0CC7CE5EC16F41A89B09387792E3839E042586D317AFE3B720C8D988 + C1ADFA08591674C62A309CBB7213BF057E8E060C5EB5C7F01A06B27CC1913F70 + 7E820D0BD882B62839868BD76FE3B7C0DB4E0F5EAEC0CA1850D9032BF393275F + C1881F18BF394296E1CACD3BF82DF0B0D6C16938884E9B760D6BF0116D818BA5 + 164EC3411667CDB88133E888B2C0DE541D6CD8BFBF88621966E1BFFFFFB1061F + 322068818D912AB844A404E0B5A077CA428A0C8701980500619929EF09CFCE42 + 0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + object actFacturasCliente: TAction + Category = 'Ventas' + Caption = 'Facturas de cliente' + ImageIndex = 0 + OnExecute = actFacturasClienteExecute + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object Ventas1: TMenuItem + Tag = 400 + Caption = '&Ventas' + GroupIndex = 1 + ImageIndex = 0 + object Facturasdecliente1: TMenuItem + Tag = 301 + Action = actFacturasCliente + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001684944415478DA + 63FCFFFF3FC394C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F + 19ACFDF319CEED98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC + 5BBA09D3007CE0D7EFBF609B4178C98683D80D40770136B0AED69461E59623B8 + 0D80391B04FE01E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D + 760CCEE587E03607359F66585A6AC0B069CF49FC06A0DB0CC2207E58FB598685 + 85BA0CDB0E9CC16DC0C15E0706FBE203605B37375A809D0D02209BA3BB2F30CC + C9D566D87DE41C6E0340CE46B7F9E7AF3F6076D2C42B0C53D2D4180E9FBE8C69 + 4046941B8363E94194105F5E6EC810D9791ECC9E99A5C9903EED3A437F920AC3 + 89F357310D480E7386DB08A2435ACF302C2ED687B8049A067266DD62E88A5364 + 387BF906A60171410E280107B3191DB446C9315CBA7E1BD380283F3B147F23DB + FC1BC9E07FFFFE335CB97907D380502F6B86D5DB8E129D13310C0009900A4006 + 00004B6D80F047EC10D30000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000002834944415478DA + BDD6ED4F52511800F087ECDFA8B5D6CB2A8550FC525862BC28B56966F9B2D658 + 5B7373D69ABDACF5A12FADD6875EB6968DD922299C1481888680C0E555485494 + 20B2FADCFAD6565FE53EDD7B0B86099C6BD7F970D9E53CDC7B7EE73907388810 + 11363344C5A023F0916BB0B9FC73559B7970C7DFD7DCFBDC8150B5A5AA24705A + 23159505C7A90CB62A0EFCF7E869A62F9A46C8E568C8D134C8DB2EC382EB6979 + D0EE4F635B5335340C506B3A0B3F549485FEBDDE7DF730182C7E308C38F881EB + 0D1654CBF680FFD70A04F42EF819D181D14691C131DF073C79ACA66C85A5F2C1 + 078D70F44A0022D4E742EE47E81C98EC413268F3A6B05D29E65D19BB4EB91C72 + E7E2B56373E6C93019B47A97F0945252B212BEC156FADDDB031667940738CD80 + AA3F60F114AD37BE79BAC1EA9A21836F3D8BD8A13EC881953E959582BD77F4BA + 14ECD3713268712791F9A20A064D572530E19B25836FDC0B7846535B002BAD65 + 7E40C5D7E4EF310E88C14925C8E06BD73C7636D709AEF0F9A56AF084E7798053 + 0CD8221C1CEADF0FBE68920C9AA7E6B0AB4526784AF57DFB808A2D92C1516702 + BBB5F5822B1CECDD0BA1D9140FF05D023BB532EEA74A08F8F8C26E88CEA5C9E0 + C8E47B660DEB41712D28684A1F9DDF05F164861FD8A1AE03E58DB0A00AEFEB76 + 4262294B064D13716C57D582E666541078EFEC0E486696C9E02B470C5B9BA470 + FC568C57E7ECA086232B85B64EBE9503EFF46C8754F60B3FF044A3A4F49643AF + FEFBD03B985DB3CEF9F6EDAE6D905EFE4A065F8ECFA0F6888488B103EAD37F2A + 39EDEB028DF62836378889187BBE38547EFBE20D0E8F4550231713B172B9E2E0 + 05BEB0855175A886DBCB362288A0C11AC227CFCC1B82E5A322B819F11BFB7D9A + E74CD9D0710000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 80 + Bitmap = {} + end +end diff --git a/Source/Modulos/Facturas de cliente/Plugin/uPluginFacturasCliente.pas b/Source/Modulos/Facturas de cliente/Plugin/uPluginFacturasCliente.pas new file mode 100644 index 0000000..2284c40 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Plugin/uPluginFacturasCliente.pas @@ -0,0 +1,97 @@ +unit uPluginFacturasCliente; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList, uPlugins_Intf; + +type + TPluginFacturasCliente = class(TModuleController, IMCFacturasCliente) + actFacturasCliente: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + Ventas1: TMenuItem; + Facturasdecliente1: TMenuItem; + procedure actFacturasClienteExecute(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure VerFacturas(const ID_Cliente: Integer; + const ANombreCliente : String = ''); + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, cxControls, + uFacturasClienteController, uBizFacturasCliente, uFacturasClienteViewRegister; + +function GetModule : TModuleController; +begin + Result := TPluginFacturasCliente.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +procedure TPluginFacturasCliente.actFacturasClienteExecute(Sender: TObject); +var + AFacturasClienteController : IFacturasClienteController; + AFacturasCliente : IBizFacturaCliente; + +begin + AFacturasClienteController := TFacturasClienteController.Create; + AFacturasCliente := (AFacturasClienteController.BuscarTodos as IBizFacturaCliente); + AFacturasClienteController.VerTodos(AFacturasCliente); +end; + +constructor TPluginFacturasCliente.Create(AOwner: TComponent); +begin + inherited; + ModuleName := MODULENAME_FACTURAS_CLIENTE; + uFacturasClienteViewRegister.RegisterViews; +end; + +destructor TPluginFacturasCliente.Destroy; +begin + uFacturasClienteViewRegister.UnregisterViews; + inherited; +end; + +procedure TPluginFacturasCliente.VerFacturas(const ID_Cliente: Integer; + const ANombreCliente: String); +var + AFacturasClienteController : IFacturasClienteController; + AFacturasCliente : IBizFacturaCliente; + AText : String; +begin + AText := Format('Lista de facturas del cliente %s', [ANombreCliente]); + AFacturasClienteController := TFacturasClienteController.Create; + try + ShowHourglassCursor; + try + AFacturasCliente := AFacturasClienteController.BuscarTodos(ID_Cliente); + finally + HideHourglassCursor; + end; + AFacturasClienteController.VerTodos(AFacturasCliente, True, AText); + finally + AFacturasCliente := NIL; + AFacturasClienteController := NIL; + end; +end; + + +initialization + RegisterModuleClass(TPluginFacturasCliente); + +finalization + UnRegisterModuleClass(TPluginFacturasCliente); + +end. diff --git a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dcu b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dcu new file mode 100644 index 0000000..1df77eb Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm new file mode 100644 index 0000000..3173b91 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm @@ -0,0 +1,2184 @@ +object RptFacturasCliente: TRptFacturasCliente + OldCreateOrder = True + OnCreate = DataModuleCreate + OnDestroy = DataModuleDestroy + Height = 513 + Width = 933 + object schReport: TDASchema + ConnectionManager = dmServer.ConnectionManager + Datasets = < + item + Params = < + item + Name = 'ID' + DataType = datInteger + Value = '1' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'select'#10' v_facturas_cliente.id, v_facturas_cliente.id_empresa,'#10 + + ' v_facturas_cliente.referencia, v_facturas_cliente.tipo,'#10' v_' + + 'facturas_cliente.fecha_factura, v_facturas_cliente.fecha_VENCIMI' + + 'ENTO,'#10' v_facturas_cliente.base_imponible,'#10' v_facturas_client' + + 'e.situacion, v_facturas_cliente.descuento,'#10' v_facturas_cliente' + + '.importe_descuento, v_facturas_cliente.iva,'#10' v_facturas_client' + + 'e.importe_iva, v_facturas_cliente.re,'#10' v_facturas_cliente.impo' + + 'rte_re, v_facturas_cliente.importe_total,'#10' v_facturas_cliente.' + + 'observaciones, v_facturas_cliente.nif_cif,'#10' v_facturas_cliente' + + '.id_cliente, v_facturas_cliente.nombre,'#10' v_facturas_cliente.ca' + + 'lle, v_facturas_cliente.provincia,'#10' v_facturas_cliente.poblaci' + + 'on, v_facturas_cliente.codigo_postal,'#10' v_facturas_cliente.reca' + + 'rgo_equivalencia, v_facturas_cliente.importe_neto,'#10' v_facturas' + + '_cliente.importe_porte, formas_pago.descripcion as FORMA_PAGO,'#10' ' + + ' v_facturas_cliente.DATOS_BANCARIOS, v_facturas_cliente.RETENCI' + + 'ON, v_facturas_cliente.IMPORTE_RETENCION'#10'from v_facturas_cliente' + + #10' left outer join formas_pago on (formas_pago.id = v_facturas_' + + 'cliente.id_forma_pago)'#10'WHERE V_FACTURAS_CLIENTE.ID = :ID'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'TIPO' + TableField = 'TIPO' + end + item + DatasetField = 'FECHA_FACTURA' + TableField = 'FECHA_FACTURA' + end + item + DatasetField = 'BASE_IMPONIBLE' + TableField = 'BASE_IMPONIBLE' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IMPORTE_DESCUENTO' + TableField = 'IMPORTE_DESCUENTO' + end + item + DatasetField = 'IVA' + TableField = 'IVA' + end + item + DatasetField = 'IMPORTE_IVA' + TableField = 'IMPORTE_IVA' + end + item + DatasetField = 'RE' + TableField = 'RE' + end + item + DatasetField = 'IMPORTE_RE' + TableField = 'IMPORTE_RE' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end + item + DatasetField = 'RECARGO_EQUIVALENCIA' + TableField = 'RECARGO_EQUIVALENCIA' + end + item + DatasetField = 'IMPORTE_NETO' + TableField = 'IMPORTE_NETO' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end + item + DatasetField = 'FORMA_PAGO' + TableField = 'FORMA_PAGO' + end + item + DatasetField = 'DATOS_BANCARIOS' + TableField = 'DATOS_BANCARIOS' + end + item + DatasetField = 'FECHA_VENCIMIENTO' + TableField = 'FECHA_VENCIMIENTO' + end + item + DatasetField = 'RETENCION' + TableField = 'RETENCION' + end + item + DatasetField = 'IMPORTE_RETENCION' + TableField = 'IMPORTE_RETENCION' + end> + end> + Name = 'InformeFacturasCliente' + Fields = < + item + Name = 'ID' + DataType = datInteger + DictionaryEntry = 'FacturasCliente_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'FacturasCliente_ID_EMPRESA' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasCliente_REFERENCIA' + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + DictionaryEntry = 'FacturasCliente_FECHA_FACTURA' + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + DictionaryEntry = 'FacturasCliente_BASE_IMPONIBLE' + end + item + Name = 'SITUACION' + DataType = datString + Size = 19 + end + item + Name = 'DESCUENTO' + DataType = datFloat + DictionaryEntry = 'FacturasCliente_DESCUENTO' + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + DictionaryEntry = 'FacturasCliente_IMPORTE_DESCUENTO' + end + item + Name = 'IVA' + DataType = datFloat + DictionaryEntry = 'FacturasCliente_IVA' + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + DictionaryEntry = 'FacturasCliente_IMPORTE_IVA' + end + item + Name = 'RE' + DataType = datFloat + end + item + Name = 'IMPORTE_RE' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DictionaryEntry = 'FacturasCliente_IMPORTE_TOTAL' + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + DictionaryEntry = 'FacturasCliente_OBSERVACIONES' + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + DictionaryEntry = 'FacturasCliente_NIF_CIF' + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + DictionaryEntry = 'FacturasCliente_ID_CLIENTE' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasCliente_NOMBRE' + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasCliente_CALLE' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasCliente_PROVINCIA' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasCliente_POBLACION' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DictionaryEntry = 'FacturasCliente_CODIGO_POSTAL' + end + item + Name = 'RECARGO_EQUIVALENCIA' + DataType = datSmallInt + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + end + item + Name = 'FORMA_PAGO' + DataType = datString + Size = 255 + end + item + Name = 'DATOS_BANCARIOS' + DataType = datString + Size = 255 + end + item + Name = 'RETENCION' + DataType = datFloat + end + item + Name = 'IMPORTE_RETENCION' + DataType = datCurrency + end> + ReadOnly = True + end + item + Params = < + item + Name = 'ID_FACTURA' + DataType = datInteger + Value = '2' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'SELECT'#10' DET.ID, DET.ID_FACTURA, DET.POSICION, DET.TIPO_DETALL' + + 'E, ARTICULOS.REFERENCIA,'#10' DET.CONCEPTO, DET.CANTIDAD, DET.UNI' + + 'DAD_MEDIDA, DET.IMPORTE_UNIDAD,'#10' DET.DESCUENTO, DET.IMPORTE_T' + + 'OTAL, DET.VISIBLE'#10'FROM FACTURAS_CLIENTE_DETALLES AS DET'#10'LEFT OUT' + + 'ER JOIN ARTICULOS ON (ARTICULOS.ID = DET.ID_ARTICULO)'#10'WHERE DET.' + + 'ID_FACTURA = :ID_FACTURA AND DET.VISIBLE = 1 AND {Where}'#10'ORDER B' + + 'Y DET.ID_FACTURA, DET.POSICION;'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_FACTURA' + TableField = 'ID_FACTURA' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + end + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'UNIDAD_MEDIDA' + TableField = 'UNIDAD_MEDIDA' + end + item + DatasetField = 'IMPORTE_UNIDAD' + TableField = 'IMPORTE_UNIDAD' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'VISIBLE' + TableField = 'VISIBLE' + end> + end> + Name = 'InformeFacturasCliente_Detalles' + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_FACTURA' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + end + item + Name = 'CANTIDAD' + DataType = datFloat + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + end + item + Name = 'DESCUENTO' + DataType = datFloat + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'VISIBLE' + DataType = datSmallInt + end> + end + item + Params = < + item + Name = 'ID_FACTURA' + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'SELECT'#10' V_RECIBOS_CLIENTE.ID_FACTURA, V_RECIBOS_CLIENTE.FECHA' + + '_VENCIMIENTO, V_RECIBOS_CLIENTE.IMPORTE_TOTAL'#10'FROM V_RECIBOS_CLI' + + 'ENTE'#10'WHERE V_RECIBOS_CLIENTE.ID_FACTURA = :ID_FACTURA'#10'ORDER BY V' + + '_RECIBOS_CLIENTE.FECHA_VENCIMIENTO'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_FACTURA' + TableField = 'ID_FACTURA' + end + item + DatasetField = 'FECHA_VENCIMIENTO' + TableField = 'FECHA_VENCIMIENTO' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end> + end> + Name = 'InformeFacturasCliente_Vencimientos' + Fields = < + item + Name = 'ID_FACTURA' + DataType = datInteger + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_FACTURAS_CLIENTE' + SQL = + 'select ID_EMPRESA,'#10'extract (year from fecha_factura) as ANO,'#10'ext' + + 'ract (month from fecha_factura) as MES,'#10'case'#10'when extract (month' + + ' from fecha_factura) = 1 then '#39'ENERO - '#39' || extract (year from f' + + 'echa_factura)'#10'when extract (month from fecha_factura) = 2 then '#39 + + 'FEBRERO - '#39' || extract (year from fecha_factura)'#10'when extract (m' + + 'onth from fecha_factura) = 3 then '#39'MARZO - '#39' || extract (year fr' + + 'om fecha_factura)'#10'when extract (month from fecha_factura) = 4 th' + + 'en '#39'ABRIL - '#39' || extract (year from fecha_factura)'#10'when extract ' + + '(month from fecha_factura) = 5 then '#39'MAYO - '#39' || extract (year f' + + 'rom fecha_factura)'#10'when extract (month from fecha_factura) = 6 t' + + 'hen '#39'JUNIO - '#39' || extract (year from fecha_factura)'#10'when extract' + + ' (month from fecha_factura) = 7 then '#39'JULIO - '#39' || extract (year' + + ' from fecha_factura)'#10'when extract (month from fecha_factura) = 8' + + ' then '#39'AGOSTO - '#39' || extract (year from fecha_factura)'#10'when extr' + + 'act (month from fecha_factura) = 9 then '#39'SEPTIEMBRE - '#39' || extra' + + 'ct (year from fecha_factura)'#10'when extract (month from fecha_fact' + + 'ura) = 10 then '#39'OCTUBRE - '#39' || extract (year from fecha_factura)' + + #10'when extract (month from fecha_factura) = 11 then '#39'NOVIEMBRE - ' + + #39' || extract (year from fecha_factura)'#10'when extract (month from ' + + 'fecha_factura) = 12 then '#39'DICIEMBRE - '#39' || extract (year from fe' + + 'cha_factura)'#10'end as TITULO,'#10'REFERENCIA, ID_CLIENTE, NOMBRE, SIT' + + 'UACION, NIF_CIF, FECHA_FACTURA, fecha_vencimiento, BASE_IMPONIBL' + + 'E, IMPORTE_IVA, IMPORTE_TOTAL'#10#10'from V_facturas_cliente'#10'where {wh' + + 'ere}'#10'order by ANO, MES, FECHA_FACTURA, NOMBRE'#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'MES' + TableField = '' + SQLOrigin = 'MES' + end + item + DatasetField = 'TITULO' + TableField = '' + SQLOrigin = 'TITULO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end + item + DatasetField = 'FECHA_FACTURA' + TableField = 'FECHA_FACTURA' + end + item + DatasetField = 'BASE_IMPONIBLE' + TableField = 'BASE_IMPONIBLE' + end + item + DatasetField = 'IMPORTE_IVA' + TableField = 'IMPORTE_IVA' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'ANO' + TableField = '' + SQLOrigin = 'ANO' + end + item + DatasetField = 'FECHA_VENCIMIENTO' + TableField = 'FECHA_VENCIMIENTO' + end> + end> + Name = 'InformeListadoFacturas' + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 19 + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_FACTURAS_CLIENTE' + SQL = + 'select ID_EMPRESA,'#10'extract (year from fecha_vencimiento) as ANO,' + + #10'extract (month from fecha_vencimiento) as MES,'#10'case'#10'when extrac' + + 't (month from fecha_vencimiento) = 1 then '#39'ENERO - '#39' || extract ' + + '(year from fecha_vencimiento)'#10'when extract (month from fecha_ven' + + 'cimiento) = 2 then '#39'FEBRERO - '#39' || extract (year from fecha_venc' + + 'imiento)'#10'when extract (month from fecha_vencimiento) = 3 then '#39'M' + + 'ARZO - '#39' || extract (year from fecha_vencimiento)'#10'when extract (' + + 'month from fecha_vencimiento) = 4 then '#39'ABRIL - '#39' || extract (ye' + + 'ar from fecha_vencimiento)'#10'when extract (month from fecha_vencim' + + 'iento) = 5 then '#39'MAYO - '#39' || extract (year from fecha_vencimient' + + 'o)'#10'when extract (month from fecha_vencimiento) = 6 then '#39'JUNIO -' + + ' '#39' || extract (year from fecha_vencimiento)'#10'when extract (month ' + + 'from fecha_vencimiento) = 7 then '#39'JULIO - '#39' || extract (year fro' + + 'm fecha_vencimiento)'#10'when extract (month from fecha_vencimiento)' + + ' = 8 then '#39'AGOSTO - '#39' || extract (year from fecha_vencimiento)'#10'w' + + 'hen extract (month from fecha_vencimiento) = 9 then '#39'SEPTIEMBRE ' + + '- '#39' || extract (year from fecha_vencimiento)'#10'when extract (month' + + ' from fecha_vencimiento) = 10 then '#39'OCTUBRE - '#39' || extract (year' + + ' from fecha_vencimiento)'#10'when extract (month from fecha_vencimie' + + 'nto) = 11 then '#39'NOVIEMBRE - '#39' || extract (year from fecha_vencim' + + 'iento)'#10'when extract (month from fecha_vencimiento) = 12 then '#39'DI' + + 'CIEMBRE - '#39' || extract (year from fecha_vencimiento)'#10'end as TITU' + + 'LO,'#10'REFERENCIA, ID_CLIENTE, NOMBRE, SITUACION, NIF_CIF, fecha_f' + + 'actura, fecha_vencimiento, BASE_IMPONIBLE, IMPORTE_IVA, IMPORTE_' + + 'TOTAL'#10#10'from V_facturas_cliente'#10'where {where}'#10'order by ANO, MES, ' + + 'fecha_vencimiento, NOMBRE'#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'ANO' + TableField = '' + SQLOrigin = 'ANO' + end + item + DatasetField = 'MES' + TableField = '' + SQLOrigin = 'MES' + end + item + DatasetField = 'TITULO' + TableField = '' + SQLOrigin = 'TITULO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end + item + DatasetField = 'FECHA_FACTURA' + TableField = 'FECHA_FACTURA' + end + item + DatasetField = 'FECHA_VENCIMIENTO' + TableField = 'FECHA_VENCIMIENTO' + end + item + DatasetField = 'BASE_IMPONIBLE' + TableField = 'BASE_IMPONIBLE' + end + item + DatasetField = 'IMPORTE_IVA' + TableField = 'IMPORTE_IVA' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end> + end> + Name = 'InformeListadoFacturasPendientes' + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 19 + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_FACTURAS_CLIENTE' + SQL = + 'select ID_EMPRESA,'#10'extract (year from fecha_factura) as ANO,'#10'ext' + + 'ract (month from fecha_factura) as MES,'#10'case'#10'when extract (month' + + ' from fecha_factura) = 1 then '#39'ENERO - '#39' || extract (year from f' + + 'echa_factura)'#10'when extract (month from fecha_factura) = 2 then '#39 + + 'FEBRERO - '#39' || extract (year from fecha_factura)'#10'when extract (m' + + 'onth from fecha_factura) = 3 then '#39'MARZO - '#39' || extract (year fr' + + 'om fecha_factura)'#10'when extract (month from fecha_factura) = 4 th' + + 'en '#39'ABRIL - '#39' || extract (year from fecha_factura)'#10'when extract ' + + '(month from fecha_factura) = 5 then '#39'MAYO - '#39' || extract (year f' + + 'rom fecha_factura)'#10'when extract (month from fecha_factura) = 6 t' + + 'hen '#39'JUNIO - '#39' || extract (year from fecha_factura)'#10'when extract' + + ' (month from fecha_factura) = 7 then '#39'JULIO - '#39' || extract (year' + + ' from fecha_factura)'#10'when extract (month from fecha_factura) = 8' + + ' then '#39'AGOSTO - '#39' || extract (year from fecha_factura)'#10'when extr' + + 'act (month from fecha_factura) = 9 then '#39'SEPTIEMBRE - '#39' || extra' + + 'ct (year from fecha_factura)'#10'when extract (month from fecha_fact' + + 'ura) = 10 then '#39'OCTUBRE - '#39' || extract (year from fecha_factura)' + + #10'when extract (month from fecha_factura) = 11 then '#39'NOVIEMBRE - ' + + #39' || extract (year from fecha_factura)'#10'when extract (month from ' + + 'fecha_factura) = 12 then '#39'DICIEMBRE - '#39' || extract (year from fe' + + 'cha_factura)'#10'end as TITULO,'#10'sum(BASE_IMPONIBLE) as BASE_IMPONIBL' + + 'E,'#10'sum(IMPORTE_IVA) as IMPORTE_IVA,'#10'sum(IMPORTE_TOTAL) AS IMPORT' + + 'E_TOTAL'#10'from V_facturas_cliente'#10'group by 1,2,3,4'#10'order by 1,2,3,' + + '4'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'ANO' + TableField = '' + SQLOrigin = 'ANO' + end + item + DatasetField = 'MES' + TableField = '' + SQLOrigin = 'MES' + end + item + DatasetField = 'TITULO' + TableField = '' + SQLOrigin = 'TITULO' + end + item + DatasetField = 'BASE_IMPONIBLE' + TableField = 'BASE_IMPONIBLE' + end + item + DatasetField = 'IMPORTE_IVA' + TableField = 'IMPORTE_IVA' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end> + end> + Name = 'InformeListadoFacturasResumen' + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 16 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'FacturasCliente_ID' + DataType = datAutoInc + Required = True + DisplayLabel = 'ID' + end + item + Name = 'FacturasCliente_ID_EMPRESA' + DataType = datInteger + DisplayLabel = 'ID_EMPRESA' + end + item + Name = 'FacturasCliente_ID_CONTRATO' + DataType = datInteger + DisplayLabel = 'ID_CONTRATO' + end + item + Name = 'FacturasCliente_FECHA_FACTURA' + DataType = datDateTime + DisplayLabel = 'Fecha de las factura' + end + item + Name = 'FacturasCliente_VENCIMIENTO' + DataType = datInteger + DisplayLabel = 'Vencimiento' + end + item + Name = 'FacturasCliente_SITUACION' + DataType = datString + Size = 255 + DisplayLabel = 'Situaci'#243'n' + end + item + Name = 'FacturasCliente_BASE_IMPONIBLE' + DataType = datFloat + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_DESCUENTO' + DataType = datFloat + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_IVA' + DataType = datFloat + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_TOTAL' + DataType = datFloat + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_FORMA_PAGO' + DataType = datMemo + DisplayLabel = 'Forma de pago' + end + item + Name = 'FacturasCliente_ID_CLIENTE' + DataType = datInteger + DisplayLabel = 'ID_CLIENTE' + end + item + Name = 'FacturasCliente_NIF_CIF' + DataType = datString + Size = 15 + DisplayLabel = 'NIF/CIF' + end + item + Name = 'FacturasCliente_CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#243'd. postal' + end + item + Name = 'FacturasCliente_FECHA_ALTA' + DataType = datDateTime + DisplayLabel = 'FECHA_ALTA' + end + item + Name = 'FacturasCliente_FECHA_MODIFICACION' + DataType = datDateTime + DisplayLabel = 'FECHA_MODIFICACION' + end + item + Name = 'FacturasCliente_OBSERVACIONES' + DataType = datMemo + DisplayLabel = 'Observaciones' + end + item + Name = 'FacturasCliente_NOMBRE' + DataType = datString + Size = 100 + DisplayLabel = 'Cliente' + end + item + Name = 'FacturasCliente_CALLE' + DataType = datString + Size = 150 + DisplayLabel = 'Direcci'#243'n' + end + item + Name = 'FacturasCliente_PROVINCIA' + DataType = datString + Size = 30 + DisplayLabel = 'Provincia' + end + item + Name = 'FacturasCliente_POBLACION' + DataType = datString + Size = 150 + DisplayLabel = 'Poblaci'#243'n' + end + item + Name = 'FacturasCliente_IVA' + DataType = datFloat + DisplayLabel = 'IVA' + end + item + Name = 'FacturasCliente_USUARIO' + DataType = datString + Size = 100 + DisplayLabel = 'USUARIO' + end + item + Name = 'FacturasCliente_REFERENCIA' + DataType = datString + Size = 20 + DisplayLabel = 'Referencia' + end + item + Name = 'FacturasCliente_DESCUENTO' + DataType = datFloat + DisplayLabel = 'Dto.' + end + item + Name = 'FacturasCliente_Detalles_ID' + DataType = datAutoInc + Required = True + DisplayLabel = 'ID' + end + item + Name = 'FacturasCliente_Detalles_ID_FACTURA' + DataType = datInteger + DisplayLabel = 'ID_FACTURA' + end + item + Name = 'FacturasCliente_Detalles_TIPO_DETALLE' + DataType = datString + Size = 25 + DisplayLabel = 'Tipo detalle' + end + item + Name = 'FacturasCliente_Detalles_CONCEPTO' + DataType = datString + Size = 2000 + DisplayLabel = 'Concepto' + end + item + Name = 'FacturasCliente_Detalles_IMPORTE_UNIDAD' + DataType = datFloat + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_Detalles_IMPORTE_TOTAL' + DataType = datFloat + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_Detalles_VISIBLE' + DataType = datInteger + DisplayLabel = #191'Visible?' + end + item + Name = 'FacturasCliente_Detalles_POSICION' + DataType = datInteger + DisplayLabel = 'Posici'#243'n' + end + item + Name = 'FacturasCliente_Detalles_CANTIDAD' + DataType = datInteger + DisplayLabel = 'Cantidad' + end> + Left = 46 + Top = 158 + end + object frxDBCabecera: TfrxDBDataset + UserName = 'frxDBCabecera' + CloseDataSource = False + DataSource = DADSCabecera + BCDToCurrency = False + Left = 264 + Top = 16 + end + object frxDBDetalles: TfrxDBDataset + UserName = 'frxDBDetalles' + CloseDataSource = False + DataSource = DADSDetalles + BCDToCurrency = False + Left = 344 + Top = 16 + end + object IBDatabase1: TIBDatabase + DatabaseName = 'C:\Codigo\Output\Debug\Database\FACTUGES.FDB' + Params.Strings = ( + 'user_name=sysdba' + 'password=masterkey' + 'lc_ctype=ISO8859_1') + LoginPrompt = False + DefaultTransaction = IBTransaction1 + Left = 48 + Top = 296 + end + object IBTransaction1: TIBTransaction + Left = 48 + Top = 352 + end + object DataSource1: TDataSource + DataSet = cabecera + Left = 216 + Top = 296 + end + object DataSource2: TDataSource + DataSet = detalles + Left = 216 + Top = 352 + end + object cabecera: TIBQuery + Database = IBDatabase1 + Transaction = IBTransaction1 + SQL.Strings = ( + 'select' + ' v_facturas_cliente.id, v_facturas_cliente.id_empresa,' + ' v_facturas_cliente.referencia, v_facturas_cliente.tipo,' + + ' v_facturas_cliente.fecha_factura, v_facturas_cliente.base_imp' + + 'onible,' + ' v_facturas_cliente.situacion, v_facturas_cliente.descuento,' + ' v_facturas_cliente.importe_descuento, v_facturas_cliente.iva,' + ' v_facturas_cliente.importe_iva, v_facturas_cliente.re,' + + ' v_facturas_cliente.importe_re, v_facturas_cliente.importe_tot' + + 'al,' + ' v_facturas_cliente.observaciones, v_facturas_cliente.nif_cif,' + ' v_facturas_cliente.id_cliente, v_facturas_cliente.nombre,' + ' v_facturas_cliente.calle, v_facturas_cliente.provincia,' + + ' v_facturas_cliente.poblacion, v_facturas_cliente.codigo_posta' + + 'l,' + + ' v_facturas_cliente.recargo_equivalencia, v_facturas_cliente.i' + + 'mporte_neto,' + + ' v_facturas_cliente.importe_porte, formas_pago.descripcion as ' + + 'FORMA_PAGO,' + ' v_facturas_cliente.DATOS_BANCARIOS' + 'from v_facturas_cliente' + + ' left outer join formas_pago on (formas_pago.id = v_facturas_c' + + 'liente.id_forma_pago)' + 'WHERE V_FACTURAS_CLIENTE.ID = 2') + Left = 136 + Top = 296 + object cabeceraID: TIntegerField + FieldName = 'ID' + Origin = '"V_FACTURAS_CLIENTE"."ID"' + end + object cabeceraID_EMPRESA: TIntegerField + FieldName = 'ID_EMPRESA' + Origin = '"V_FACTURAS_CLIENTE"."ID_EMPRESA"' + end + object cabeceraREFERENCIA: TIBStringField + FieldName = 'REFERENCIA' + Origin = '"V_FACTURAS_CLIENTE"."REFERENCIA"' + Size = 255 + end + object cabeceraTIPO: TIBStringField + FieldKind = fkInternalCalc + FieldName = 'TIPO' + Origin = '"V_FACTURAS_CLIENTE"."TIPO"' + ProviderFlags = [] + ReadOnly = True + FixedChar = True + Size = 1 + end + object cabeceraFECHA_FACTURA: TDateField + FieldName = 'FECHA_FACTURA' + Origin = '"V_FACTURAS_CLIENTE"."FECHA_FACTURA"' + end + object cabeceraBASE_IMPONIBLE: TIBBCDField + FieldName = 'BASE_IMPONIBLE' + Origin = '"V_FACTURAS_CLIENTE"."BASE_IMPONIBLE"' + Precision = 18 + Size = 2 + end + object cabeceraSITUACION: TIBStringField + FieldKind = fkInternalCalc + FieldName = 'SITUACION' + Origin = '"V_FACTURAS_CLIENTE"."SITUACION"' + ProviderFlags = [] + ReadOnly = True + FixedChar = True + Size = 19 + end + object cabeceraDESCUENTO: TFloatField + FieldName = 'DESCUENTO' + Origin = '"V_FACTURAS_CLIENTE"."DESCUENTO"' + end + object cabeceraIMPORTE_DESCUENTO: TIBBCDField + FieldName = 'IMPORTE_DESCUENTO' + Origin = '"V_FACTURAS_CLIENTE"."IMPORTE_DESCUENTO"' + Precision = 18 + Size = 2 + end + object cabeceraIVA: TFloatField + FieldName = 'IVA' + Origin = '"V_FACTURAS_CLIENTE"."IVA"' + end + object cabeceraIMPORTE_IVA: TIBBCDField + FieldName = 'IMPORTE_IVA' + Origin = '"V_FACTURAS_CLIENTE"."IMPORTE_IVA"' + Precision = 18 + Size = 2 + end + object cabeceraRE: TFloatField + FieldName = 'RE' + Origin = '"V_FACTURAS_CLIENTE"."RE"' + end + object cabeceraIMPORTE_RE: TIBBCDField + FieldName = 'IMPORTE_RE' + Origin = '"V_FACTURAS_CLIENTE"."IMPORTE_RE"' + Precision = 18 + Size = 2 + end + object cabeceraIMPORTE_TOTAL: TIBBCDField + FieldName = 'IMPORTE_TOTAL' + Origin = '"V_FACTURAS_CLIENTE"."IMPORTE_TOTAL"' + Precision = 18 + Size = 2 + end + object cabeceraOBSERVACIONES: TMemoField + FieldName = 'OBSERVACIONES' + Origin = '"V_FACTURAS_CLIENTE"."OBSERVACIONES"' + ProviderFlags = [pfInUpdate] + BlobType = ftMemo + Size = 8 + end + object cabeceraNIF_CIF: TIBStringField + FieldName = 'NIF_CIF' + Origin = '"V_FACTURAS_CLIENTE"."NIF_CIF"' + Size = 15 + end + object cabeceraID_CLIENTE: TIntegerField + FieldName = 'ID_CLIENTE' + Origin = '"V_FACTURAS_CLIENTE"."ID_CLIENTE"' + end + object cabeceraNOMBRE: TIBStringField + FieldName = 'NOMBRE' + Origin = '"V_FACTURAS_CLIENTE"."NOMBRE"' + Size = 255 + end + object cabeceraCALLE: TIBStringField + FieldName = 'CALLE' + Origin = '"V_FACTURAS_CLIENTE"."CALLE"' + Size = 255 + end + object cabeceraPROVINCIA: TIBStringField + FieldName = 'PROVINCIA' + Origin = '"V_FACTURAS_CLIENTE"."PROVINCIA"' + Size = 255 + end + object cabeceraPOBLACION: TIBStringField + FieldName = 'POBLACION' + Origin = '"V_FACTURAS_CLIENTE"."POBLACION"' + Size = 255 + end + object cabeceraCODIGO_POSTAL: TIBStringField + FieldName = 'CODIGO_POSTAL' + Origin = '"V_FACTURAS_CLIENTE"."CODIGO_POSTAL"' + Size = 10 + end + object cabeceraRECARGO_EQUIVALENCIA: TSmallintField + FieldName = 'RECARGO_EQUIVALENCIA' + Origin = '"V_FACTURAS_CLIENTE"."RECARGO_EQUIVALENCIA"' + end + object cabeceraIMPORTE_NETO: TIBBCDField + FieldName = 'IMPORTE_NETO' + Origin = '"V_FACTURAS_CLIENTE"."IMPORTE_NETO"' + Precision = 18 + Size = 2 + end + object cabeceraIMPORTE_PORTE: TIBBCDField + FieldName = 'IMPORTE_PORTE' + Origin = '"V_FACTURAS_CLIENTE"."IMPORTE_PORTE"' + Precision = 18 + Size = 2 + end + object cabeceraFORMA_PAGO: TIBStringField + FieldName = 'FORMA_PAGO' + Origin = '"FORMAS_PAGO"."DESCRIPCION"' + Size = 255 + end + object cabeceraDATOS_BANCARIOS: TIBStringField + FieldName = 'DATOS_BANCARIOS' + Origin = '"V_FACTURAS_CLIENTE"."DATOS_BANCARIOS"' + Size = 255 + end + end + object detalles: TIBQuery + Database = IBDatabase1 + Transaction = IBTransaction1 + SQL.Strings = ( + 'SELECT' + + ' DET.ID, DET.ID_FACTURA, DET.POSICION, DET.TIPO_DETALLE, ARTI' + + 'CULOS.REFERENCIA,' + + ' DET.CONCEPTO, DET.CANTIDAD, DET.IMPORTE_UNIDAD, DET.DESCUENT' + + 'O,' + ' DET.IMPORTE_TOTAL, DET.VISIBLE' + 'FROM FACTURAS_CLIENTE_DETALLES DET' + 'LEFT OUTER JOIN ARTICULOS ON (ARTICULOS.ID = DET.ID_ARTICULO)' + 'WHERE DET.ID_FACTURA = 2 AND DET.VISIBLE = 1 ' + 'ORDER BY DET.ID_FACTURA, DET.POSICION;') + Left = 136 + Top = 352 + object detallesID: TIntegerField + FieldName = 'ID' + Origin = '"FACTURAS_CLIENTE_DETALLES"."ID"' + ProviderFlags = [pfInUpdate, pfInWhere, pfInKey] + Required = True + end + object detallesID_FACTURA: TIntegerField + FieldName = 'ID_FACTURA' + Origin = '"FACTURAS_CLIENTE_DETALLES"."ID_FACTURA"' + Required = True + end + object detallesPOSICION: TIntegerField + FieldName = 'POSICION' + Origin = '"FACTURAS_CLIENTE_DETALLES"."POSICION"' + end + object detallesTIPO_DETALLE: TIBStringField + FieldName = 'TIPO_DETALLE' + Origin = '"FACTURAS_CLIENTE_DETALLES"."TIPO_DETALLE"' + Size = 10 + end + object detallesCONCEPTO: TIBStringField + FieldName = 'CONCEPTO' + Origin = '"FACTURAS_CLIENTE_DETALLES"."CONCEPTO"' + Size = 2000 + end + object detallesCANTIDAD: TIntegerField + FieldName = 'CANTIDAD' + Origin = '"FACTURAS_CLIENTE_DETALLES"."CANTIDAD"' + end + object detallesIMPORTE_UNIDAD: TIBBCDField + FieldName = 'IMPORTE_UNIDAD' + Origin = '"FACTURAS_CLIENTE_DETALLES"."IMPORTE_UNIDAD"' + Precision = 18 + Size = 2 + end + object detallesDESCUENTO: TFloatField + FieldName = 'DESCUENTO' + Origin = '"FACTURAS_CLIENTE_DETALLES"."DESCUENTO"' + end + object detallesIMPORTE_TOTAL: TIBBCDField + FieldName = 'IMPORTE_TOTAL' + Origin = '"FACTURAS_CLIENTE_DETALLES"."IMPORTE_TOTAL"' + Precision = 18 + Size = 2 + end + object detallesVISIBLE: TSmallintField + FieldName = 'VISIBLE' + Origin = '"FACTURAS_CLIENTE_DETALLES"."VISIBLE"' + end + object detallesREFERENCIA: TIBStringField + FieldName = 'REFERENCIA' + Origin = '"ARTICULOS"."REFERENCIA"' + Size = 255 + end + end + object DADSCabecera: TDADataSource + DataSet = tbl_Cabecera.Dataset + DataTable = tbl_Cabecera + Left = 264 + Top = 72 + end + object DADSDetalles: TDADataSource + DataSet = tbl_Detalles.Dataset + DataTable = tbl_Detalles + Left = 344 + Top = 72 + end + object tbl_Detalles: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_FACTURA' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + end + item + Name = 'CANTIDAD' + DataType = datFloat + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + end + item + Name = 'DESCUENTO' + DataType = datFloat + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'VISIBLE' + DataType = datSmallInt + end> + Params = < + item + Name = 'ID_FACTURA' + DataType = datInteger + Value = '2' + ParamType = daptInput + end> + MasterParamsMappings.Strings = ( + 'ID_FACTURA=ID') + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = Bin2DataStreamer + LogicalName = 'InformeFacturasCliente_Detalles' + IndexDefs = <> + Left = 344 + Top = 128 + end + object tbl_Cabecera: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + DictionaryEntry = 'FacturasCliente_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'FacturasCliente_ID_EMPRESA' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasCliente_REFERENCIA' + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + DictionaryEntry = 'FacturasCliente_FECHA_FACTURA' + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + DictionaryEntry = 'FacturasCliente_BASE_IMPONIBLE' + end + item + Name = 'SITUACION' + DataType = datString + Size = 19 + end + item + Name = 'DESCUENTO' + DataType = datFloat + DictionaryEntry = 'FacturasCliente_DESCUENTO' + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + DictionaryEntry = 'FacturasCliente_IMPORTE_DESCUENTO' + end + item + Name = 'IVA' + DataType = datFloat + DictionaryEntry = 'FacturasCliente_IVA' + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + DictionaryEntry = 'FacturasCliente_IMPORTE_IVA' + end + item + Name = 'RE' + DataType = datFloat + end + item + Name = 'IMPORTE_RE' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DictionaryEntry = 'FacturasCliente_IMPORTE_TOTAL' + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + DictionaryEntry = 'FacturasCliente_OBSERVACIONES' + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + DictionaryEntry = 'FacturasCliente_NIF_CIF' + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + DictionaryEntry = 'FacturasCliente_ID_CLIENTE' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasCliente_NOMBRE' + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasCliente_CALLE' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasCliente_PROVINCIA' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasCliente_POBLACION' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DictionaryEntry = 'FacturasCliente_CODIGO_POSTAL' + end + item + Name = 'RECARGO_EQUIVALENCIA' + DataType = datSmallInt + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + end + item + Name = 'FORMA_PAGO' + DataType = datString + Size = 255 + end + item + Name = 'DATOS_BANCARIOS' + DataType = datString + Size = 255 + end + item + Name = 'RETENCION' + DataType = datFloat + end + item + Name = 'IMPORTE_RETENCION' + DataType = datCurrency + end> + Params = < + item + Name = 'ID' + DataType = datInteger + Value = '1' + ParamType = daptInput + end> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = Bin2DataStreamer + LogicalName = 'InformeFacturasCliente' + IndexDefs = <> + Left = 264 + Top = 128 + end + object frxCheckBoxObject1: TfrxCheckBoxObject + Left = 296 + Top = 288 + end + object frxChartObject1: TfrxChartObject + Left = 296 + Top = 336 + end + object frxGradientObject1: TfrxGradientObject + Left = 360 + Top = 288 + end + object frxCrossObject1: TfrxCrossObject + Left = 360 + Top = 440 + end + object frxOLEObject1: TfrxOLEObject + Left = 296 + Top = 440 + end + object frxBarCodeObject1: TfrxBarCodeObject + Left = 360 + Top = 392 + end + object frxRichObject1: TfrxRichObject + Left = 296 + Top = 392 + end + object frxReport: TfrxReport + Version = '4.7.71' + DotMatrixReport = False + EngineOptions.DoublePass = True + IniFile = '\Software\Fast Reports' + PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator, pbExportQuick] + PreviewOptions.Zoom = 1.000000000000000000 + PrintOptions.Printer = 'Por defecto' + PrintOptions.PrintOnSheet = 0 + ReportOptions.CreateDate = 39065.872423495400000000 + ReportOptions.LastChange = 39920.656640081000000000 + ScriptLanguage = 'PascalScript' + ScriptText.Strings = ( + '' + 'procedure DatosEmpresaOnBeforePrint(Sender: TfrxComponent);' + 'var' + ' Cadena: String;' + 'begin' + '{ DatosEmpresa.Lines.Clear;' + ' if ( <> '#39#39') then' + ' Cadena := '#39'TLF: '#39' + ;' + ' if ( <> '#39#39') then' + + ' Cadena := Cadena + '#39' FAX: '#39' + ;' + ' DatosEmpresa.Lines.Add(Cadena);' + '}' + 'end;' + '' + 'procedure NombreEmpresaOnBeforePrint(Sender: TfrxComponent);' + 'begin' + '{ NombreEmpresa.Lines.Clear;' + ' NombreEmpresa.Lines.Add();' + '}' + 'end;' + '' + 'procedure DireccionEnvioOnBeforePrint(Sender: TfrxComponent);' + 'var' + ' ACadena : String;' + 'begin' + '{ ACadena := '#39#39';' + ' DireccionEnvio.Lines.Clear;' + ' if ( <> '#39#39') then' + ' ACadena := ;' + '' + ' if ( <> '#39#39') then' + + ' ACadena := ACadena + '#39' '#39' + ;' + '' + ' DireccionEnvio.Lines.Add(ACadena);' + ' ACadena := '#39#39';' + ' DireccionEnvio.Lines.Add();' + ' if ( <> '#39#39') then' + ' ACadena := + '#39' '#39';' + ' if ( <> '#39#39') then' + ' ACadena := ACadena + ;' + '' + ' if (ACadena <> '#39#39') then' + ' DireccionEnvio.Lines.Add(ACadena);' + '' + ' if ( <> '#39#39') then' + ' DireccionEnvio.Lines.Add();' + '' + ' if ( <> '#39#39') then' + ' DireccionEnvio.Lines.Add();' + '}' + 'end;' + '' + 'procedure PageHeader1OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if not Engine.FinalPass then' + ' Set('#39'TotalPaginas'#39', ( + 1));' + '' + ' if Engine.FinalPass then' + ' Set('#39'Pagina'#39', ( + 1)); ' + 'end;' + '' + 'procedure frxReportOnStartReport(Sender: TfrxComponent);' + 'begin' + ' Set('#39'Pagina'#39', 0);' + ' Set('#39'TotalPaginas'#39', 0);' + ' Set('#39'Capitulo'#39', 0);' + ' Set('#39'NumCapitulos'#39', 0); ' + 'end;' + '' + 'procedure Memo4OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if (Length() = 0) then' + ' Memo4.Visible := False; ' + 'end;' + '' + 'procedure Memo22OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if ( = 0) then' + ' begin ' + ' Subtotal.Text := '#39'Base imponible:'#39';' + ' BaseImponible.Text := '#39'Importe total:'#39'; ' + ' BaseImponible.Font.Style := fsBold;' + '' + + ' ImpBaseImponible.Text := FormatFloat('#39'#,##0.00 '#8364#39', );' + ' ImpBaseImponible.Font.Style := fsBold; ' + ' ' + ' Descuento.Text := '#39'[]% IVA:'#39';' + ' ImpDescuento.Text := '#39'[frxDBCabecera."IMPORTE_IVA"]'#39';' + ' Memo11.Color := $00CCFFCC;' + '' + ' if ( > 0) then' + ' begin ' + ' BaseImponible.Text := '#39'Total certificaci'#243'n:'#39';' + + ' IVA.Text := FormatFloat('#39'#,##0.00 %'#39',) + '#39' Retenci'#243'n:'#39'; ' + + ' ImpIVA.Text := FormatFloat('#39'-#,##0.00 '#8364#39',);' + + ' ImporteTotal.Text := '#39'TOTAL FACTURA'#39'; ' + + ' ' + + ' ' + + ' ImpImporteTotal.Text := FormatFloat('#39'#,##0.00 '#8364#39', ( - ' + + ')); ' + ' end ' + ' else' + ' begin' + ' IVA.Visible := False;' + ' ImpIVA.Visible := False;' + ' ImporteTotal.Visible := False;' + ' ImpImporteTotal.Visible := False;' + ' Memo16.Visible := False; ' + ' Memo17.Visible := False;' + ' end;' + ' end' + ' else' + ' begin ' + ' if ( > 0) then' + ' begin' + ' ImporteTotal.Text := '#39'Total certificaci'#243'n:'#39'; ' + ' Retencion.Visible := True;' + ' ImpRetencion.Visible := True;' + ' LinRetencion.Visible := True; ' + ' TotalFacturaRet.Visible := True;' + ' ImpTotalFacturaRet.Visible := True;' + ' LinImporteTotalFacturaRet.Visible := True; ' + ' end' + ' end ' + 'end;' + '' + 'procedure Memo39OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' Memo39.Clear; ' + ' if ( = '#39'F'#39') then' + + ' Memo39.Text := '#39'FACTURA'#39' ' + + ' ' + ' else' + ' Memo39.Text := '#39'ABONO'#39'; ' + 'end;' + '' + 'procedure Picture4OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if ( = 1) then' + ' Picture4.Visible := True' + ' else' + ' Picture4.Visible := False; ' + 'end;' + '' + 'procedure eCopiaOnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if ( = 1) then' + ' begin ' + ' eCopia.Visible := True; ' + ' Picture4.Visible := False; ' + ' end ' + ' else' + ' eCopia.Visible := False; ' + 'end;' + '' + 'begin' + '' + 'end.') + ShowProgress = False + StoreInDFM = False + OnStartReport = 'frxReportOnStartReport' + Left = 145 + Top = 16 + end + object frxDBVencimientos: TfrxDBDataset + UserName = 'frxDBVencimientos' + CloseDataSource = False + DataSource = DADSVencimientos + BCDToCurrency = False + Left = 440 + Top = 16 + end + object DADSVencimientos: TDADataSource + DataSet = tbl_Vencimientos.Dataset + DataTable = tbl_Vencimientos + Left = 440 + Top = 72 + end + object tbl_Vencimientos: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID_FACTURA' + DataType = datInteger + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + Params = < + item + Name = 'ID_FACTURA' + Value = '' + ParamType = daptInput + end> + MasterParamsMappings.Strings = ( + 'ID_FACTURA=ID') + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = Bin2DataStreamer + LogicalName = 'InformeFacturasCliente_Vencimientos' + IndexDefs = <> + Left = 440 + Top = 128 + end + object vencimientos: TIBQuery + Database = IBDatabase1 + Transaction = IBTransaction1 + SQL.Strings = ( + 'SELECT' + + ' V_RECIBOS_CLIENTE.FECHA_VENCIMIENTO, V_RECIBOS_CLIENTE.IMPOR' + + 'TE_TOTAL' + 'FROM V_RECIBOS_CLIENTE' + 'WHERE V_RECIBOS_CLIENTE.ID_FACTURA = 2' + 'ORDER BY V_RECIBOS_CLIENTE.FECHA_VENCIMIENTO') + Left = 136 + Top = 408 + object vencimientosFECHA_VENCIMIENTO: TDateField + FieldName = 'FECHA_VENCIMIENTO' + Origin = '"V_RECIBOS_CLIENTE"."FECHA_VENCIMIENTO"' + end + object vencimientosIMPORTE_TOTAL: TIBBCDField + FieldKind = fkInternalCalc + FieldName = 'IMPORTE_TOTAL' + Origin = '"V_RECIBOS_CLIENTE"."IMPORTE_TOTAL"' + ProviderFlags = [] + ReadOnly = True + Precision = 18 + Size = 2 + end + end + object DataSource3: TDataSource + DataSet = vencimientos + Left = 216 + Top = 408 + end + object frxPDFExport1: TfrxPDFExport + ShowDialog = False + UseFileCache = True + ShowProgress = False + OverwritePrompt = False + PrintOptimized = True + Outline = False + Background = False + HTMLTags = True + Author = 'FactuGES' + Subject = 'FactuGES' + Creator = 'FactuGES' + ProtectionFlags = [ePrint, eModify, eCopy, eAnnot] + HideToolbar = False + HideMenubar = False + HideWindowUI = False + FitWindow = False + CenterWindow = False + PrintScaling = False + Left = 424 + Top = 288 + end + object tbl_InformeListadoFacturas: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 19 + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + Params = <> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = Bin2DataStreamer + LogicalName = 'InformeListadoFacturas' + IndexDefs = <> + Left = 576 + Top = 128 + end + object DADSInformeListadoFacturas: TDADataSource + DataSet = tbl_InformeListadoFacturas.Dataset + DataTable = tbl_InformeListadoFacturas + Left = 576 + Top = 72 + end + object frxDBInformeListadoFacturas: TfrxDBDataset + UserName = 'frxDBInformeListadoFacturas' + CloseDataSource = False + DataSource = DADSInformeListadoFacturas + BCDToCurrency = False + Left = 576 + Top = 16 + end + object frxDBInformeListadoFacturasPendientes: TfrxDBDataset + UserName = 'frxDBInformeListadoFacturasPendientes' + CloseDataSource = False + DataSource = DADSInformeListadoFacturasPendientes + BCDToCurrency = False + Left = 792 + Top = 16 + end + object DADSInformeListadoFacturasPendientes: TDADataSource + DataSet = tbl_InformeListadoFacturasPendientes.Dataset + DataTable = tbl_InformeListadoFacturasPendientes + Left = 792 + Top = 72 + end + object tbl_InformeListadoFacturasPendientes: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 19 + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + Params = <> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = Bin2DataStreamer + LogicalName = 'InformeListadoFacturasPendientes' + IndexDefs = <> + Left = 792 + Top = 128 + end + object frxDBInformeListadoFacturasResumen: TfrxDBDataset + UserName = 'frxDBInformeListadoFacturasResumen' + CloseDataSource = True + DataSource = DADSInformeListadoFacturasResumen + BCDToCurrency = False + Left = 576 + Top = 216 + end + object DADSInformeListadoFacturasResumen: TDADataSource + DataSet = tbl_InformeListadoFacturasResumen.Dataset + DataTable = tbl_InformeListadoFacturasResumen + Left = 576 + Top = 272 + end + object tbl_InformeListadoFacturasResumen: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + MasterMappingMode = mmDataRequest + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + IndexDefs = <> + Left = 576 + Top = 328 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 88 + end +end diff --git a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm.bak b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm.bak new file mode 100644 index 0000000..17eaa57 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm.bak @@ -0,0 +1,2184 @@ +object RptFacturasCliente: TRptFacturasCliente + OldCreateOrder = True + OnCreate = DataModuleCreate + OnDestroy = DataModuleDestroy + Height = 513 + Width = 933 + object schReport: TDASchema + ConnectionManager = dmServer.ConnectionManager + Datasets = < + item + Params = < + item + Name = 'ID' + DataType = datInteger + Value = '1' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'select'#10' v_facturas_cliente.id, v_facturas_cliente.id_empresa,'#10 + + ' v_facturas_cliente.referencia, v_facturas_cliente.tipo,'#10' v_' + + 'facturas_cliente.fecha_factura, v_facturas_cliente.fecha_VENCIMI' + + 'ENTO,'#10' v_facturas_cliente.base_imponible,'#10' v_facturas_client' + + 'e.situacion, v_facturas_cliente.descuento,'#10' v_facturas_cliente' + + '.importe_descuento, v_facturas_cliente.iva,'#10' v_facturas_client' + + 'e.importe_iva, v_facturas_cliente.re,'#10' v_facturas_cliente.impo' + + 'rte_re, v_facturas_cliente.importe_total,'#10' v_facturas_cliente.' + + 'observaciones, v_facturas_cliente.nif_cif,'#10' v_facturas_cliente' + + '.id_cliente, v_facturas_cliente.nombre,'#10' v_facturas_cliente.ca' + + 'lle, v_facturas_cliente.provincia,'#10' v_facturas_cliente.poblaci' + + 'on, v_facturas_cliente.codigo_postal,'#10' v_facturas_cliente.reca' + + 'rgo_equivalencia, v_facturas_cliente.importe_neto,'#10' v_facturas' + + '_cliente.importe_porte, formas_pago.descripcion as FORMA_PAGO,'#10' ' + + ' v_facturas_cliente.DATOS_BANCARIOS, v_facturas_cliente.RETENCI' + + 'ON, v_facturas_cliente.IMPORTE_RETENCION'#10'from v_facturas_cliente' + + #10' left outer join formas_pago on (formas_pago.id = v_facturas_' + + 'cliente.id_forma_pago)'#10'WHERE V_FACTURAS_CLIENTE.ID = :ID'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'TIPO' + TableField = 'TIPO' + end + item + DatasetField = 'FECHA_FACTURA' + TableField = 'FECHA_FACTURA' + end + item + DatasetField = 'BASE_IMPONIBLE' + TableField = 'BASE_IMPONIBLE' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IMPORTE_DESCUENTO' + TableField = 'IMPORTE_DESCUENTO' + end + item + DatasetField = 'IVA' + TableField = 'IVA' + end + item + DatasetField = 'IMPORTE_IVA' + TableField = 'IMPORTE_IVA' + end + item + DatasetField = 'RE' + TableField = 'RE' + end + item + DatasetField = 'IMPORTE_RE' + TableField = 'IMPORTE_RE' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end + item + DatasetField = 'RECARGO_EQUIVALENCIA' + TableField = 'RECARGO_EQUIVALENCIA' + end + item + DatasetField = 'IMPORTE_NETO' + TableField = 'IMPORTE_NETO' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end + item + DatasetField = 'FORMA_PAGO' + TableField = 'FORMA_PAGO' + end + item + DatasetField = 'DATOS_BANCARIOS' + TableField = 'DATOS_BANCARIOS' + end + item + DatasetField = 'FECHA_VENCIMIENTO' + TableField = 'FECHA_VENCIMIENTO' + end + item + DatasetField = 'RETENCION' + TableField = 'RETENCION' + end + item + DatasetField = 'IMPORTE_RETENCION' + TableField = 'IMPORTE_RETENCION' + end> + end> + Name = 'InformeFacturasCliente' + Fields = < + item + Name = 'ID' + DataType = datInteger + DictionaryEntry = 'FacturasCliente_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'FacturasCliente_ID_EMPRESA' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasCliente_REFERENCIA' + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + DictionaryEntry = 'FacturasCliente_FECHA_FACTURA' + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + DictionaryEntry = 'FacturasCliente_BASE_IMPONIBLE' + end + item + Name = 'SITUACION' + DataType = datString + Size = 19 + end + item + Name = 'DESCUENTO' + DataType = datFloat + DictionaryEntry = 'FacturasCliente_DESCUENTO' + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + DictionaryEntry = 'FacturasCliente_IMPORTE_DESCUENTO' + end + item + Name = 'IVA' + DataType = datFloat + DictionaryEntry = 'FacturasCliente_IVA' + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + DictionaryEntry = 'FacturasCliente_IMPORTE_IVA' + end + item + Name = 'RE' + DataType = datFloat + end + item + Name = 'IMPORTE_RE' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DictionaryEntry = 'FacturasCliente_IMPORTE_TOTAL' + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + DictionaryEntry = 'FacturasCliente_OBSERVACIONES' + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + DictionaryEntry = 'FacturasCliente_NIF_CIF' + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + DictionaryEntry = 'FacturasCliente_ID_CLIENTE' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasCliente_NOMBRE' + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasCliente_CALLE' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasCliente_PROVINCIA' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasCliente_POBLACION' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DictionaryEntry = 'FacturasCliente_CODIGO_POSTAL' + end + item + Name = 'RECARGO_EQUIVALENCIA' + DataType = datSmallInt + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + end + item + Name = 'FORMA_PAGO' + DataType = datString + Size = 255 + end + item + Name = 'DATOS_BANCARIOS' + DataType = datString + Size = 255 + end + item + Name = 'RETENCION' + DataType = datFloat + end + item + Name = 'IMPORTE_RETENCION' + DataType = datCurrency + end> + ReadOnly = True + end + item + Params = < + item + Name = 'ID_FACTURA' + DataType = datInteger + Value = '2' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'SELECT'#10' DET.ID, DET.ID_FACTURA, DET.POSICION, DET.TIPO_DETALL' + + 'E, ARTICULOS.REFERENCIA,'#10' DET.CONCEPTO, DET.CANTIDAD, DET.UNI' + + 'DAD_MEDIDA, DET.IMPORTE_UNIDAD,'#10' DET.DESCUENTO, DET.IMPORTE_T' + + 'OTAL, DET.VISIBLE'#10'FROM FACTURAS_CLIENTE_DETALLES AS DET'#10'LEFT OUT' + + 'ER JOIN ARTICULOS ON (ARTICULOS.ID = DET.ID_ARTICULO)'#10'WHERE DET.' + + 'ID_FACTURA = :ID_FACTURA AND DET.VISIBLE = 1 AND {Where}'#10'ORDER B' + + 'Y DET.ID_FACTURA, DET.POSICION;'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_FACTURA' + TableField = 'ID_FACTURA' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + end + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'UNIDAD_MEDIDA' + TableField = 'UNIDAD_MEDIDA' + end + item + DatasetField = 'IMPORTE_UNIDAD' + TableField = 'IMPORTE_UNIDAD' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'VISIBLE' + TableField = 'VISIBLE' + end> + end> + Name = 'InformeFacturasCliente_Detalles' + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_FACTURA' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + end + item + Name = 'CANTIDAD' + DataType = datFloat + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + end + item + Name = 'DESCUENTO' + DataType = datFloat + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'VISIBLE' + DataType = datSmallInt + end> + end + item + Params = < + item + Name = 'ID_FACTURA' + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'SELECT'#10' V_RECIBOS_CLIENTE.ID_FACTURA, V_RECIBOS_CLIENTE.FECHA' + + '_VENCIMIENTO, V_RECIBOS_CLIENTE.IMPORTE_TOTAL'#10'FROM V_RECIBOS_CLI' + + 'ENTE'#10'WHERE V_RECIBOS_CLIENTE.ID_FACTURA = :ID_FACTURA'#10'ORDER BY V' + + '_RECIBOS_CLIENTE.FECHA_VENCIMIENTO'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_FACTURA' + TableField = 'ID_FACTURA' + end + item + DatasetField = 'FECHA_VENCIMIENTO' + TableField = 'FECHA_VENCIMIENTO' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end> + end> + Name = 'InformeFacturasCliente_Vencimientos' + Fields = < + item + Name = 'ID_FACTURA' + DataType = datInteger + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_FACTURAS_CLIENTE' + SQL = + 'select ID_EMPRESA,'#10'extract (year from fecha_factura) as ANO,'#10'ext' + + 'ract (month from fecha_factura) as MES,'#10'case'#10'when extract (month' + + ' from fecha_factura) = 1 then '#39'ENERO - '#39' || extract (year from f' + + 'echa_factura)'#10'when extract (month from fecha_factura) = 2 then '#39 + + 'FEBRERO - '#39' || extract (year from fecha_factura)'#10'when extract (m' + + 'onth from fecha_factura) = 3 then '#39'MARZO - '#39' || extract (year fr' + + 'om fecha_factura)'#10'when extract (month from fecha_factura) = 4 th' + + 'en '#39'ABRIL - '#39' || extract (year from fecha_factura)'#10'when extract ' + + '(month from fecha_factura) = 5 then '#39'MAYO - '#39' || extract (year f' + + 'rom fecha_factura)'#10'when extract (month from fecha_factura) = 6 t' + + 'hen '#39'JUNIO - '#39' || extract (year from fecha_factura)'#10'when extract' + + ' (month from fecha_factura) = 7 then '#39'JULIO - '#39' || extract (year' + + ' from fecha_factura)'#10'when extract (month from fecha_factura) = 8' + + ' then '#39'AGOSTO - '#39' || extract (year from fecha_factura)'#10'when extr' + + 'act (month from fecha_factura) = 9 then '#39'SEPTIEMBRE - '#39' || extra' + + 'ct (year from fecha_factura)'#10'when extract (month from fecha_fact' + + 'ura) = 10 then '#39'OCTUBRE - '#39' || extract (year from fecha_factura)' + + #10'when extract (month from fecha_factura) = 11 then '#39'NOVIEMBRE - ' + + #39' || extract (year from fecha_factura)'#10'when extract (month from ' + + 'fecha_factura) = 12 then '#39'DICIEMBRE - '#39' || extract (year from fe' + + 'cha_factura)'#10'end as TITULO,'#10'REFERENCIA, ID_CLIENTE, NOMBRE, SIT' + + 'UACION, NIF_CIF, FECHA_FACTURA, fecha_vencimiento, BASE_IMPONIBL' + + 'E, IMPORTE_IVA, IMPORTE_TOTAL'#10#10'from V_facturas_cliente'#10'where {wh' + + 'ere}'#10'order by ANO, MES, FECHA_FACTURA, NOMBRE'#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'MES' + TableField = '' + SQLOrigin = 'MES' + end + item + DatasetField = 'TITULO' + TableField = '' + SQLOrigin = 'TITULO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end + item + DatasetField = 'FECHA_FACTURA' + TableField = 'FECHA_FACTURA' + end + item + DatasetField = 'BASE_IMPONIBLE' + TableField = 'BASE_IMPONIBLE' + end + item + DatasetField = 'IMPORTE_IVA' + TableField = 'IMPORTE_IVA' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'ANO' + TableField = '' + SQLOrigin = 'ANO' + end + item + DatasetField = 'FECHA_VENCIMIENTO' + TableField = 'FECHA_VENCIMIENTO' + end> + end> + Name = 'InformeListadoFacturas' + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 19 + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_FACTURAS_CLIENTE' + SQL = + 'select ID_EMPRESA,'#10'extract (year from fecha_vencimiento) as ANO,' + + #10'extract (month from fecha_vencimiento) as MES,'#10'case'#10'when extrac' + + 't (month from fecha_vencimiento) = 1 then '#39'ENERO - '#39' || extract ' + + '(year from fecha_vencimiento)'#10'when extract (month from fecha_ven' + + 'cimiento) = 2 then '#39'FEBRERO - '#39' || extract (year from fecha_venc' + + 'imiento)'#10'when extract (month from fecha_vencimiento) = 3 then '#39'M' + + 'ARZO - '#39' || extract (year from fecha_vencimiento)'#10'when extract (' + + 'month from fecha_vencimiento) = 4 then '#39'ABRIL - '#39' || extract (ye' + + 'ar from fecha_vencimiento)'#10'when extract (month from fecha_vencim' + + 'iento) = 5 then '#39'MAYO - '#39' || extract (year from fecha_vencimient' + + 'o)'#10'when extract (month from fecha_vencimiento) = 6 then '#39'JUNIO -' + + ' '#39' || extract (year from fecha_vencimiento)'#10'when extract (month ' + + 'from fecha_vencimiento) = 7 then '#39'JULIO - '#39' || extract (year fro' + + 'm fecha_vencimiento)'#10'when extract (month from fecha_vencimiento)' + + ' = 8 then '#39'AGOSTO - '#39' || extract (year from fecha_vencimiento)'#10'w' + + 'hen extract (month from fecha_vencimiento) = 9 then '#39'SEPTIEMBRE ' + + '- '#39' || extract (year from fecha_vencimiento)'#10'when extract (month' + + ' from fecha_vencimiento) = 10 then '#39'OCTUBRE - '#39' || extract (year' + + ' from fecha_vencimiento)'#10'when extract (month from fecha_vencimie' + + 'nto) = 11 then '#39'NOVIEMBRE - '#39' || extract (year from fecha_vencim' + + 'iento)'#10'when extract (month from fecha_vencimiento) = 12 then '#39'DI' + + 'CIEMBRE - '#39' || extract (year from fecha_vencimiento)'#10'end as TITU' + + 'LO,'#10'REFERENCIA, ID_CLIENTE, NOMBRE, SITUACION, NIF_CIF, fecha_f' + + 'actura, fecha_vencimiento, BASE_IMPONIBLE, IMPORTE_IVA, IMPORTE_' + + 'TOTAL'#10#10'from V_facturas_cliente'#10'where {where}'#10'order by ANO, MES, ' + + 'fecha_vencimiento, NOMBRE'#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'ANO' + TableField = '' + SQLOrigin = 'ANO' + end + item + DatasetField = 'MES' + TableField = '' + SQLOrigin = 'MES' + end + item + DatasetField = 'TITULO' + TableField = '' + SQLOrigin = 'TITULO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end + item + DatasetField = 'FECHA_FACTURA' + TableField = 'FECHA_FACTURA' + end + item + DatasetField = 'FECHA_VENCIMIENTO' + TableField = 'FECHA_VENCIMIENTO' + end + item + DatasetField = 'BASE_IMPONIBLE' + TableField = 'BASE_IMPONIBLE' + end + item + DatasetField = 'IMPORTE_IVA' + TableField = 'IMPORTE_IVA' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end> + end> + Name = 'InformeListadoFacturasPendientes' + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 19 + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_FACTURAS_CLIENTE' + SQL = + 'select ID_EMPRESA,'#10'extract (year from fecha_factura) as ANO,'#10'ext' + + 'ract (month from fecha_factura) as MES,'#10'case'#10'when extract (month' + + ' from fecha_factura) = 1 then '#39'ENERO - '#39' || extract (year from f' + + 'echa_factura)'#10'when extract (month from fecha_factura) = 2 then '#39 + + 'FEBRERO - '#39' || extract (year from fecha_factura)'#10'when extract (m' + + 'onth from fecha_factura) = 3 then '#39'MARZO - '#39' || extract (year fr' + + 'om fecha_factura)'#10'when extract (month from fecha_factura) = 4 th' + + 'en '#39'ABRIL - '#39' || extract (year from fecha_factura)'#10'when extract ' + + '(month from fecha_factura) = 5 then '#39'MAYO - '#39' || extract (year f' + + 'rom fecha_factura)'#10'when extract (month from fecha_factura) = 6 t' + + 'hen '#39'JUNIO - '#39' || extract (year from fecha_factura)'#10'when extract' + + ' (month from fecha_factura) = 7 then '#39'JULIO - '#39' || extract (year' + + ' from fecha_factura)'#10'when extract (month from fecha_factura) = 8' + + ' then '#39'AGOSTO - '#39' || extract (year from fecha_factura)'#10'when extr' + + 'act (month from fecha_factura) = 9 then '#39'SEPTIEMBRE - '#39' || extra' + + 'ct (year from fecha_factura)'#10'when extract (month from fecha_fact' + + 'ura) = 10 then '#39'OCTUBRE - '#39' || extract (year from fecha_factura)' + + #10'when extract (month from fecha_factura) = 11 then '#39'NOVIEMBRE - ' + + #39' || extract (year from fecha_factura)'#10'when extract (month from ' + + 'fecha_factura) = 12 then '#39'DICIEMBRE - '#39' || extract (year from fe' + + 'cha_factura)'#10'end as TITULO,'#10'sum(BASE_IMPONIBLE) as BASE_IMPONIBL' + + 'E,'#10'sum(IMPORTE_IVA) as IMPORTE_IVA,'#10'sum(IMPORTE_TOTAL) AS IMPORT' + + 'E_TOTAL'#10'from V_facturas_cliente'#10'group by 1,2,3,4'#10'order by 1,2,3,' + + '4'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'ANO' + TableField = '' + SQLOrigin = 'ANO' + end + item + DatasetField = 'MES' + TableField = '' + SQLOrigin = 'MES' + end + item + DatasetField = 'TITULO' + TableField = '' + SQLOrigin = 'TITULO' + end + item + DatasetField = 'BASE_IMPONIBLE' + TableField = 'BASE_IMPONIBLE' + end + item + DatasetField = 'IMPORTE_IVA' + TableField = 'IMPORTE_IVA' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end> + end> + Name = 'InformeListadoFacturasResumen' + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 16 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'FacturasCliente_ID' + DataType = datAutoInc + Required = True + DisplayLabel = 'ID' + end + item + Name = 'FacturasCliente_ID_EMPRESA' + DataType = datInteger + DisplayLabel = 'ID_EMPRESA' + end + item + Name = 'FacturasCliente_ID_CONTRATO' + DataType = datInteger + DisplayLabel = 'ID_CONTRATO' + end + item + Name = 'FacturasCliente_FECHA_FACTURA' + DataType = datDateTime + DisplayLabel = 'Fecha de las factura' + end + item + Name = 'FacturasCliente_VENCIMIENTO' + DataType = datInteger + DisplayLabel = 'Vencimiento' + end + item + Name = 'FacturasCliente_SITUACION' + DataType = datString + Size = 255 + DisplayLabel = 'Situaci'#243'n' + end + item + Name = 'FacturasCliente_BASE_IMPONIBLE' + DataType = datFloat + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_DESCUENTO' + DataType = datFloat + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_IVA' + DataType = datFloat + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_TOTAL' + DataType = datFloat + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_FORMA_PAGO' + DataType = datMemo + DisplayLabel = 'Forma de pago' + end + item + Name = 'FacturasCliente_ID_CLIENTE' + DataType = datInteger + DisplayLabel = 'ID_CLIENTE' + end + item + Name = 'FacturasCliente_NIF_CIF' + DataType = datString + Size = 15 + DisplayLabel = 'NIF/CIF' + end + item + Name = 'FacturasCliente_CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#243'd. postal' + end + item + Name = 'FacturasCliente_FECHA_ALTA' + DataType = datDateTime + DisplayLabel = 'FECHA_ALTA' + end + item + Name = 'FacturasCliente_FECHA_MODIFICACION' + DataType = datDateTime + DisplayLabel = 'FECHA_MODIFICACION' + end + item + Name = 'FacturasCliente_OBSERVACIONES' + DataType = datMemo + DisplayLabel = 'Observaciones' + end + item + Name = 'FacturasCliente_NOMBRE' + DataType = datString + Size = 100 + DisplayLabel = 'Cliente' + end + item + Name = 'FacturasCliente_CALLE' + DataType = datString + Size = 150 + DisplayLabel = 'Direcci'#243'n' + end + item + Name = 'FacturasCliente_PROVINCIA' + DataType = datString + Size = 30 + DisplayLabel = 'Provincia' + end + item + Name = 'FacturasCliente_POBLACION' + DataType = datString + Size = 150 + DisplayLabel = 'Poblaci'#243'n' + end + item + Name = 'FacturasCliente_IVA' + DataType = datFloat + DisplayLabel = 'IVA' + end + item + Name = 'FacturasCliente_USUARIO' + DataType = datString + Size = 100 + DisplayLabel = 'USUARIO' + end + item + Name = 'FacturasCliente_REFERENCIA' + DataType = datString + Size = 20 + DisplayLabel = 'Referencia' + end + item + Name = 'FacturasCliente_DESCUENTO' + DataType = datFloat + DisplayLabel = 'Dto.' + end + item + Name = 'FacturasCliente_Detalles_ID' + DataType = datAutoInc + Required = True + DisplayLabel = 'ID' + end + item + Name = 'FacturasCliente_Detalles_ID_FACTURA' + DataType = datInteger + DisplayLabel = 'ID_FACTURA' + end + item + Name = 'FacturasCliente_Detalles_TIPO_DETALLE' + DataType = datString + Size = 25 + DisplayLabel = 'Tipo detalle' + end + item + Name = 'FacturasCliente_Detalles_CONCEPTO' + DataType = datString + Size = 2000 + DisplayLabel = 'Concepto' + end + item + Name = 'FacturasCliente_Detalles_IMPORTE_UNIDAD' + DataType = datFloat + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_Detalles_IMPORTE_TOTAL' + DataType = datFloat + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_Detalles_VISIBLE' + DataType = datInteger + DisplayLabel = #191'Visible?' + end + item + Name = 'FacturasCliente_Detalles_POSICION' + DataType = datInteger + DisplayLabel = 'Posici'#243'n' + end + item + Name = 'FacturasCliente_Detalles_CANTIDAD' + DataType = datInteger + DisplayLabel = 'Cantidad' + end> + Left = 46 + Top = 158 + end + object frxDBCabecera: TfrxDBDataset + UserName = 'frxDBCabecera' + CloseDataSource = False + DataSource = DADSCabecera + BCDToCurrency = False + Left = 264 + Top = 16 + end + object frxDBDetalles: TfrxDBDataset + UserName = 'frxDBDetalles' + CloseDataSource = False + DataSource = DADSDetalles + BCDToCurrency = False + Left = 344 + Top = 16 + end + object IBDatabase1: TIBDatabase + DatabaseName = 'C:\Codigo Tecsitel\Output\Debug\Database\FACTUGES.FDB' + Params.Strings = ( + 'user_name=sysdba' + 'password=masterkey' + 'lc_ctype=ISO8859_1') + LoginPrompt = False + DefaultTransaction = IBTransaction1 + Left = 48 + Top = 296 + end + object IBTransaction1: TIBTransaction + Left = 48 + Top = 352 + end + object DataSource1: TDataSource + DataSet = cabecera + Left = 216 + Top = 296 + end + object DataSource2: TDataSource + DataSet = detalles + Left = 216 + Top = 352 + end + object cabecera: TIBQuery + Database = IBDatabase1 + Transaction = IBTransaction1 + SQL.Strings = ( + 'select' + ' v_facturas_cliente.id, v_facturas_cliente.id_empresa,' + ' v_facturas_cliente.referencia, v_facturas_cliente.tipo,' + + ' v_facturas_cliente.fecha_factura, v_facturas_cliente.base_imp' + + 'onible,' + ' v_facturas_cliente.situacion, v_facturas_cliente.descuento,' + ' v_facturas_cliente.importe_descuento, v_facturas_cliente.iva,' + ' v_facturas_cliente.importe_iva, v_facturas_cliente.re,' + + ' v_facturas_cliente.importe_re, v_facturas_cliente.importe_tot' + + 'al,' + ' v_facturas_cliente.observaciones, v_facturas_cliente.nif_cif,' + ' v_facturas_cliente.id_cliente, v_facturas_cliente.nombre,' + ' v_facturas_cliente.calle, v_facturas_cliente.provincia,' + + ' v_facturas_cliente.poblacion, v_facturas_cliente.codigo_posta' + + 'l,' + + ' v_facturas_cliente.recargo_equivalencia, v_facturas_cliente.i' + + 'mporte_neto,' + + ' v_facturas_cliente.importe_porte, formas_pago.descripcion as ' + + 'FORMA_PAGO,' + ' v_facturas_cliente.DATOS_BANCARIOS' + 'from v_facturas_cliente' + + ' left outer join formas_pago on (formas_pago.id = v_facturas_c' + + 'liente.id_forma_pago)' + 'WHERE V_FACTURAS_CLIENTE.ID = 2') + Left = 136 + Top = 296 + object cabeceraID: TIntegerField + FieldName = 'ID' + Origin = '"V_FACTURAS_CLIENTE"."ID"' + end + object cabeceraID_EMPRESA: TIntegerField + FieldName = 'ID_EMPRESA' + Origin = '"V_FACTURAS_CLIENTE"."ID_EMPRESA"' + end + object cabeceraREFERENCIA: TIBStringField + FieldName = 'REFERENCIA' + Origin = '"V_FACTURAS_CLIENTE"."REFERENCIA"' + Size = 255 + end + object cabeceraTIPO: TIBStringField + FieldKind = fkInternalCalc + FieldName = 'TIPO' + Origin = '"V_FACTURAS_CLIENTE"."TIPO"' + ProviderFlags = [] + ReadOnly = True + FixedChar = True + Size = 1 + end + object cabeceraFECHA_FACTURA: TDateField + FieldName = 'FECHA_FACTURA' + Origin = '"V_FACTURAS_CLIENTE"."FECHA_FACTURA"' + end + object cabeceraBASE_IMPONIBLE: TIBBCDField + FieldName = 'BASE_IMPONIBLE' + Origin = '"V_FACTURAS_CLIENTE"."BASE_IMPONIBLE"' + Precision = 18 + Size = 2 + end + object cabeceraSITUACION: TIBStringField + FieldKind = fkInternalCalc + FieldName = 'SITUACION' + Origin = '"V_FACTURAS_CLIENTE"."SITUACION"' + ProviderFlags = [] + ReadOnly = True + FixedChar = True + Size = 19 + end + object cabeceraDESCUENTO: TFloatField + FieldName = 'DESCUENTO' + Origin = '"V_FACTURAS_CLIENTE"."DESCUENTO"' + end + object cabeceraIMPORTE_DESCUENTO: TIBBCDField + FieldName = 'IMPORTE_DESCUENTO' + Origin = '"V_FACTURAS_CLIENTE"."IMPORTE_DESCUENTO"' + Precision = 18 + Size = 2 + end + object cabeceraIVA: TFloatField + FieldName = 'IVA' + Origin = '"V_FACTURAS_CLIENTE"."IVA"' + end + object cabeceraIMPORTE_IVA: TIBBCDField + FieldName = 'IMPORTE_IVA' + Origin = '"V_FACTURAS_CLIENTE"."IMPORTE_IVA"' + Precision = 18 + Size = 2 + end + object cabeceraRE: TFloatField + FieldName = 'RE' + Origin = '"V_FACTURAS_CLIENTE"."RE"' + end + object cabeceraIMPORTE_RE: TIBBCDField + FieldName = 'IMPORTE_RE' + Origin = '"V_FACTURAS_CLIENTE"."IMPORTE_RE"' + Precision = 18 + Size = 2 + end + object cabeceraIMPORTE_TOTAL: TIBBCDField + FieldName = 'IMPORTE_TOTAL' + Origin = '"V_FACTURAS_CLIENTE"."IMPORTE_TOTAL"' + Precision = 18 + Size = 2 + end + object cabeceraOBSERVACIONES: TMemoField + FieldName = 'OBSERVACIONES' + Origin = '"V_FACTURAS_CLIENTE"."OBSERVACIONES"' + ProviderFlags = [pfInUpdate] + BlobType = ftMemo + Size = 8 + end + object cabeceraNIF_CIF: TIBStringField + FieldName = 'NIF_CIF' + Origin = '"V_FACTURAS_CLIENTE"."NIF_CIF"' + Size = 15 + end + object cabeceraID_CLIENTE: TIntegerField + FieldName = 'ID_CLIENTE' + Origin = '"V_FACTURAS_CLIENTE"."ID_CLIENTE"' + end + object cabeceraNOMBRE: TIBStringField + FieldName = 'NOMBRE' + Origin = '"V_FACTURAS_CLIENTE"."NOMBRE"' + Size = 255 + end + object cabeceraCALLE: TIBStringField + FieldName = 'CALLE' + Origin = '"V_FACTURAS_CLIENTE"."CALLE"' + Size = 255 + end + object cabeceraPROVINCIA: TIBStringField + FieldName = 'PROVINCIA' + Origin = '"V_FACTURAS_CLIENTE"."PROVINCIA"' + Size = 255 + end + object cabeceraPOBLACION: TIBStringField + FieldName = 'POBLACION' + Origin = '"V_FACTURAS_CLIENTE"."POBLACION"' + Size = 255 + end + object cabeceraCODIGO_POSTAL: TIBStringField + FieldName = 'CODIGO_POSTAL' + Origin = '"V_FACTURAS_CLIENTE"."CODIGO_POSTAL"' + Size = 10 + end + object cabeceraRECARGO_EQUIVALENCIA: TSmallintField + FieldName = 'RECARGO_EQUIVALENCIA' + Origin = '"V_FACTURAS_CLIENTE"."RECARGO_EQUIVALENCIA"' + end + object cabeceraIMPORTE_NETO: TIBBCDField + FieldName = 'IMPORTE_NETO' + Origin = '"V_FACTURAS_CLIENTE"."IMPORTE_NETO"' + Precision = 18 + Size = 2 + end + object cabeceraIMPORTE_PORTE: TIBBCDField + FieldName = 'IMPORTE_PORTE' + Origin = '"V_FACTURAS_CLIENTE"."IMPORTE_PORTE"' + Precision = 18 + Size = 2 + end + object cabeceraFORMA_PAGO: TIBStringField + FieldName = 'FORMA_PAGO' + Origin = '"FORMAS_PAGO"."DESCRIPCION"' + Size = 255 + end + object cabeceraDATOS_BANCARIOS: TIBStringField + FieldName = 'DATOS_BANCARIOS' + Origin = '"V_FACTURAS_CLIENTE"."DATOS_BANCARIOS"' + Size = 255 + end + end + object detalles: TIBQuery + Database = IBDatabase1 + Transaction = IBTransaction1 + SQL.Strings = ( + 'SELECT' + + ' DET.ID, DET.ID_FACTURA, DET.POSICION, DET.TIPO_DETALLE, ARTI' + + 'CULOS.REFERENCIA,' + + ' DET.CONCEPTO, DET.CANTIDAD, DET.IMPORTE_UNIDAD, DET.DESCUENT' + + 'O,' + ' DET.IMPORTE_TOTAL, DET.VISIBLE' + 'FROM FACTURAS_CLIENTE_DETALLES DET' + 'LEFT OUTER JOIN ARTICULOS ON (ARTICULOS.ID = DET.ID_ARTICULO)' + 'WHERE DET.ID_FACTURA = 2 AND DET.VISIBLE = 1 ' + 'ORDER BY DET.ID_FACTURA, DET.POSICION;') + Left = 136 + Top = 352 + object detallesID: TIntegerField + FieldName = 'ID' + Origin = '"FACTURAS_CLIENTE_DETALLES"."ID"' + ProviderFlags = [pfInUpdate, pfInWhere, pfInKey] + Required = True + end + object detallesID_FACTURA: TIntegerField + FieldName = 'ID_FACTURA' + Origin = '"FACTURAS_CLIENTE_DETALLES"."ID_FACTURA"' + Required = True + end + object detallesPOSICION: TIntegerField + FieldName = 'POSICION' + Origin = '"FACTURAS_CLIENTE_DETALLES"."POSICION"' + end + object detallesTIPO_DETALLE: TIBStringField + FieldName = 'TIPO_DETALLE' + Origin = '"FACTURAS_CLIENTE_DETALLES"."TIPO_DETALLE"' + Size = 10 + end + object detallesCONCEPTO: TIBStringField + FieldName = 'CONCEPTO' + Origin = '"FACTURAS_CLIENTE_DETALLES"."CONCEPTO"' + Size = 2000 + end + object detallesCANTIDAD: TIntegerField + FieldName = 'CANTIDAD' + Origin = '"FACTURAS_CLIENTE_DETALLES"."CANTIDAD"' + end + object detallesIMPORTE_UNIDAD: TIBBCDField + FieldName = 'IMPORTE_UNIDAD' + Origin = '"FACTURAS_CLIENTE_DETALLES"."IMPORTE_UNIDAD"' + Precision = 18 + Size = 2 + end + object detallesDESCUENTO: TFloatField + FieldName = 'DESCUENTO' + Origin = '"FACTURAS_CLIENTE_DETALLES"."DESCUENTO"' + end + object detallesIMPORTE_TOTAL: TIBBCDField + FieldName = 'IMPORTE_TOTAL' + Origin = '"FACTURAS_CLIENTE_DETALLES"."IMPORTE_TOTAL"' + Precision = 18 + Size = 2 + end + object detallesVISIBLE: TSmallintField + FieldName = 'VISIBLE' + Origin = '"FACTURAS_CLIENTE_DETALLES"."VISIBLE"' + end + object detallesREFERENCIA: TIBStringField + FieldName = 'REFERENCIA' + Origin = '"ARTICULOS"."REFERENCIA"' + Size = 255 + end + end + object DADSCabecera: TDADataSource + DataSet = tbl_Cabecera.Dataset + DataTable = tbl_Cabecera + Left = 264 + Top = 72 + end + object DADSDetalles: TDADataSource + DataSet = tbl_Detalles.Dataset + DataTable = tbl_Detalles + Left = 344 + Top = 72 + end + object tbl_Detalles: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_FACTURA' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + end + item + Name = 'CANTIDAD' + DataType = datFloat + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + end + item + Name = 'DESCUENTO' + DataType = datFloat + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'VISIBLE' + DataType = datSmallInt + end> + Params = < + item + Name = 'ID_FACTURA' + DataType = datInteger + Value = '2' + ParamType = daptInput + end> + MasterParamsMappings.Strings = ( + 'ID_FACTURA=ID') + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = Bin2DataStreamer + LogicalName = 'InformeFacturasCliente_Detalles' + IndexDefs = <> + Left = 344 + Top = 128 + end + object tbl_Cabecera: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + DictionaryEntry = 'FacturasCliente_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'FacturasCliente_ID_EMPRESA' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasCliente_REFERENCIA' + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + DictionaryEntry = 'FacturasCliente_FECHA_FACTURA' + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + DictionaryEntry = 'FacturasCliente_BASE_IMPONIBLE' + end + item + Name = 'SITUACION' + DataType = datString + Size = 19 + end + item + Name = 'DESCUENTO' + DataType = datFloat + DictionaryEntry = 'FacturasCliente_DESCUENTO' + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + DictionaryEntry = 'FacturasCliente_IMPORTE_DESCUENTO' + end + item + Name = 'IVA' + DataType = datFloat + DictionaryEntry = 'FacturasCliente_IVA' + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + DictionaryEntry = 'FacturasCliente_IMPORTE_IVA' + end + item + Name = 'RE' + DataType = datFloat + end + item + Name = 'IMPORTE_RE' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DictionaryEntry = 'FacturasCliente_IMPORTE_TOTAL' + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + DictionaryEntry = 'FacturasCliente_OBSERVACIONES' + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + DictionaryEntry = 'FacturasCliente_NIF_CIF' + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + DictionaryEntry = 'FacturasCliente_ID_CLIENTE' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasCliente_NOMBRE' + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasCliente_CALLE' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasCliente_PROVINCIA' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasCliente_POBLACION' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DictionaryEntry = 'FacturasCliente_CODIGO_POSTAL' + end + item + Name = 'RECARGO_EQUIVALENCIA' + DataType = datSmallInt + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + end + item + Name = 'FORMA_PAGO' + DataType = datString + Size = 255 + end + item + Name = 'DATOS_BANCARIOS' + DataType = datString + Size = 255 + end + item + Name = 'RETENCION' + DataType = datFloat + end + item + Name = 'IMPORTE_RETENCION' + DataType = datCurrency + end> + Params = < + item + Name = 'ID' + DataType = datInteger + Value = '1' + ParamType = daptInput + end> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = Bin2DataStreamer + LogicalName = 'InformeFacturasCliente' + IndexDefs = <> + Left = 264 + Top = 128 + end + object frxCheckBoxObject1: TfrxCheckBoxObject + Left = 296 + Top = 288 + end + object frxChartObject1: TfrxChartObject + Left = 296 + Top = 336 + end + object frxGradientObject1: TfrxGradientObject + Left = 360 + Top = 288 + end + object frxCrossObject1: TfrxCrossObject + Left = 360 + Top = 440 + end + object frxOLEObject1: TfrxOLEObject + Left = 296 + Top = 440 + end + object frxBarCodeObject1: TfrxBarCodeObject + Left = 360 + Top = 392 + end + object frxRichObject1: TfrxRichObject + Left = 296 + Top = 392 + end + object frxReport: TfrxReport + Version = '4.7.71' + DotMatrixReport = False + EngineOptions.DoublePass = True + IniFile = '\Software\Fast Reports' + PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator, pbExportQuick] + PreviewOptions.Zoom = 1.000000000000000000 + PrintOptions.Printer = 'Por defecto' + PrintOptions.PrintOnSheet = 0 + ReportOptions.CreateDate = 39065.872423495400000000 + ReportOptions.LastChange = 39920.656640081000000000 + ScriptLanguage = 'PascalScript' + ScriptText.Strings = ( + '' + 'procedure DatosEmpresaOnBeforePrint(Sender: TfrxComponent);' + 'var' + ' Cadena: String;' + 'begin' + '{ DatosEmpresa.Lines.Clear;' + ' if ( <> '#39#39') then' + ' Cadena := '#39'TLF: '#39' + ;' + ' if ( <> '#39#39') then' + + ' Cadena := Cadena + '#39' FAX: '#39' + ;' + ' DatosEmpresa.Lines.Add(Cadena);' + '}' + 'end;' + '' + 'procedure NombreEmpresaOnBeforePrint(Sender: TfrxComponent);' + 'begin' + '{ NombreEmpresa.Lines.Clear;' + ' NombreEmpresa.Lines.Add();' + '}' + 'end;' + '' + 'procedure DireccionEnvioOnBeforePrint(Sender: TfrxComponent);' + 'var' + ' ACadena : String;' + 'begin' + '{ ACadena := '#39#39';' + ' DireccionEnvio.Lines.Clear;' + ' if ( <> '#39#39') then' + ' ACadena := ;' + '' + ' if ( <> '#39#39') then' + + ' ACadena := ACadena + '#39' '#39' + ;' + '' + ' DireccionEnvio.Lines.Add(ACadena);' + ' ACadena := '#39#39';' + ' DireccionEnvio.Lines.Add();' + ' if ( <> '#39#39') then' + ' ACadena := + '#39' '#39';' + ' if ( <> '#39#39') then' + ' ACadena := ACadena + ;' + '' + ' if (ACadena <> '#39#39') then' + ' DireccionEnvio.Lines.Add(ACadena);' + '' + ' if ( <> '#39#39') then' + ' DireccionEnvio.Lines.Add();' + '' + ' if ( <> '#39#39') then' + ' DireccionEnvio.Lines.Add();' + '}' + 'end;' + '' + 'procedure PageHeader1OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if not Engine.FinalPass then' + ' Set('#39'TotalPaginas'#39', ( + 1));' + '' + ' if Engine.FinalPass then' + ' Set('#39'Pagina'#39', ( + 1)); ' + 'end;' + '' + 'procedure frxReportOnStartReport(Sender: TfrxComponent);' + 'begin' + ' Set('#39'Pagina'#39', 0);' + ' Set('#39'TotalPaginas'#39', 0);' + ' Set('#39'Capitulo'#39', 0);' + ' Set('#39'NumCapitulos'#39', 0); ' + 'end;' + '' + 'procedure Memo4OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if (Length() = 0) then' + ' Memo4.Visible := False; ' + 'end;' + '' + 'procedure Memo22OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if ( = 0) then' + ' begin ' + ' Subtotal.Text := '#39'Base imponible:'#39';' + ' BaseImponible.Text := '#39'Importe total:'#39'; ' + ' BaseImponible.Font.Style := fsBold;' + '' + + ' ImpBaseImponible.Text := FormatFloat('#39'#,##0.00 '#8364#39', );' + ' ImpBaseImponible.Font.Style := fsBold; ' + ' ' + ' Descuento.Text := '#39'[]% IVA:'#39';' + ' ImpDescuento.Text := '#39'[frxDBCabecera."IMPORTE_IVA"]'#39';' + ' Memo11.Color := $00CCFFCC;' + '' + ' if ( > 0) then' + ' begin ' + ' BaseImponible.Text := '#39'Total certificaci'#243'n:'#39';' + + ' IVA.Text := FormatFloat('#39'#,##0.00 %'#39',) + '#39' Retenci'#243'n:'#39'; ' + + ' ImpIVA.Text := FormatFloat('#39'-#,##0.00 '#8364#39',);' + + ' ImporteTotal.Text := '#39'TOTAL FACTURA'#39'; ' + + ' ' + + ' ' + + ' ImpImporteTotal.Text := FormatFloat('#39'#,##0.00 '#8364#39', ( - ' + + ')); ' + ' end ' + ' else' + ' begin' + ' IVA.Visible := False;' + ' ImpIVA.Visible := False;' + ' ImporteTotal.Visible := False;' + ' ImpImporteTotal.Visible := False;' + ' Memo16.Visible := False; ' + ' Memo17.Visible := False;' + ' end;' + ' end' + ' else' + ' begin ' + ' if ( > 0) then' + ' begin' + ' ImporteTotal.Text := '#39'Total certificaci'#243'n:'#39'; ' + ' Retencion.Visible := True;' + ' ImpRetencion.Visible := True;' + ' LinRetencion.Visible := True; ' + ' TotalFacturaRet.Visible := True;' + ' ImpTotalFacturaRet.Visible := True;' + ' LinImporteTotalFacturaRet.Visible := True; ' + ' end' + ' end ' + 'end;' + '' + 'procedure Memo39OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' Memo39.Clear; ' + ' if ( = '#39'F'#39') then' + + ' Memo39.Text := '#39'FACTURA'#39' ' + + ' ' + ' else' + ' Memo39.Text := '#39'ABONO'#39'; ' + 'end;' + '' + 'procedure Picture4OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if ( = 1) then' + ' Picture4.Visible := True' + ' else' + ' Picture4.Visible := False; ' + 'end;' + '' + 'procedure eCopiaOnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if ( = 1) then' + ' begin ' + ' eCopia.Visible := True; ' + ' Picture4.Visible := False; ' + ' end ' + ' else' + ' eCopia.Visible := False; ' + 'end;' + '' + 'begin' + '' + 'end.') + ShowProgress = False + StoreInDFM = False + OnStartReport = 'frxReportOnStartReport' + Left = 145 + Top = 16 + end + object frxDBVencimientos: TfrxDBDataset + UserName = 'frxDBVencimientos' + CloseDataSource = False + DataSource = DADSVencimientos + BCDToCurrency = False + Left = 440 + Top = 16 + end + object DADSVencimientos: TDADataSource + DataSet = tbl_Vencimientos.Dataset + DataTable = tbl_Vencimientos + Left = 440 + Top = 72 + end + object tbl_Vencimientos: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID_FACTURA' + DataType = datInteger + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + Params = < + item + Name = 'ID_FACTURA' + Value = '' + ParamType = daptInput + end> + MasterParamsMappings.Strings = ( + 'ID_FACTURA=ID') + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = Bin2DataStreamer + LogicalName = 'InformeFacturasCliente_Vencimientos' + IndexDefs = <> + Left = 440 + Top = 128 + end + object vencimientos: TIBQuery + Database = IBDatabase1 + Transaction = IBTransaction1 + SQL.Strings = ( + 'SELECT' + + ' V_RECIBOS_CLIENTE.FECHA_VENCIMIENTO, V_RECIBOS_CLIENTE.IMPOR' + + 'TE_TOTAL' + 'FROM V_RECIBOS_CLIENTE' + 'WHERE V_RECIBOS_CLIENTE.ID_FACTURA = 2' + 'ORDER BY V_RECIBOS_CLIENTE.FECHA_VENCIMIENTO') + Left = 136 + Top = 408 + object vencimientosFECHA_VENCIMIENTO: TDateField + FieldName = 'FECHA_VENCIMIENTO' + Origin = '"V_RECIBOS_CLIENTE"."FECHA_VENCIMIENTO"' + end + object vencimientosIMPORTE_TOTAL: TIBBCDField + FieldKind = fkInternalCalc + FieldName = 'IMPORTE_TOTAL' + Origin = '"V_RECIBOS_CLIENTE"."IMPORTE_TOTAL"' + ProviderFlags = [] + ReadOnly = True + Precision = 18 + Size = 2 + end + end + object DataSource3: TDataSource + DataSet = vencimientos + Left = 216 + Top = 408 + end + object frxPDFExport1: TfrxPDFExport + ShowDialog = False + UseFileCache = True + ShowProgress = False + OverwritePrompt = False + PrintOptimized = True + Outline = False + Background = False + HTMLTags = True + Author = 'FactuGES' + Subject = 'FactuGES' + Creator = 'FactuGES' + ProtectionFlags = [ePrint, eModify, eCopy, eAnnot] + HideToolbar = False + HideMenubar = False + HideWindowUI = False + FitWindow = False + CenterWindow = False + PrintScaling = False + Left = 424 + Top = 288 + end + object tbl_InformeListadoFacturas: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 19 + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + Params = <> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = Bin2DataStreamer + LogicalName = 'InformeListadoFacturas' + IndexDefs = <> + Left = 576 + Top = 128 + end + object DADSInformeListadoFacturas: TDADataSource + DataSet = tbl_InformeListadoFacturas.Dataset + DataTable = tbl_InformeListadoFacturas + Left = 576 + Top = 72 + end + object frxDBInformeListadoFacturas: TfrxDBDataset + UserName = 'frxDBInformeListadoFacturas' + CloseDataSource = False + DataSource = DADSInformeListadoFacturas + BCDToCurrency = False + Left = 576 + Top = 16 + end + object frxDBInformeListadoFacturasPendientes: TfrxDBDataset + UserName = 'frxDBInformeListadoFacturasPendientes' + CloseDataSource = False + DataSource = DADSInformeListadoFacturasPendientes + BCDToCurrency = False + Left = 792 + Top = 16 + end + object DADSInformeListadoFacturasPendientes: TDADataSource + DataSet = tbl_InformeListadoFacturasPendientes.Dataset + DataTable = tbl_InformeListadoFacturasPendientes + Left = 792 + Top = 72 + end + object tbl_InformeListadoFacturasPendientes: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 19 + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + Params = <> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = Bin2DataStreamer + LogicalName = 'InformeListadoFacturasPendientes' + IndexDefs = <> + Left = 792 + Top = 128 + end + object frxDBInformeListadoFacturasResumen: TfrxDBDataset + UserName = 'frxDBInformeListadoFacturasResumen' + CloseDataSource = True + DataSource = DADSInformeListadoFacturasResumen + BCDToCurrency = False + Left = 576 + Top = 216 + end + object DADSInformeListadoFacturasResumen: TDADataSource + DataSet = tbl_InformeListadoFacturasResumen.Dataset + DataTable = tbl_InformeListadoFacturasResumen + Left = 576 + Top = 272 + end + object tbl_InformeListadoFacturasResumen: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + MasterMappingMode = mmDataRequest + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + IndexDefs = <> + Left = 576 + Top = 328 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 88 + end +end diff --git a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas new file mode 100644 index 0000000..82ad53d --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas @@ -0,0 +1,714 @@ +unit uRptFacturasCliente_Server; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, frxClass, frxDBSet, uDAScriptingProvider, + uDADataTable, uDACDSDataTable, DB, uDAClasses, frxChart, frxGradient, + frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes, + uDAInterfaces, uDADataStreamer, IBCustomDataSet, IBQuery, IBDatabase, + uDAMemDataTable, FactuGES_Intf, frxExportPDF, uDABin2DataStreamer; + +type + TRptFacturasCliente = class(TDataModule) + frxDBCabecera: TfrxDBDataset; + frxDBDetalles: TfrxDBDataset; + DataDictionary: TDADataDictionary; + IBDatabase1: TIBDatabase; + IBTransaction1: TIBTransaction; + DataSource1: TDataSource; + DataSource2: TDataSource; + cabecera: TIBQuery; + detalles: TIBQuery; + DADSCabecera: TDADataSource; + DADSDetalles: TDADataSource; + tbl_Detalles: TDAMemDataTable; + tbl_Cabecera: TDAMemDataTable; + frxCheckBoxObject1: TfrxCheckBoxObject; + frxChartObject1: TfrxChartObject; + frxGradientObject1: TfrxGradientObject; + frxCrossObject1: TfrxCrossObject; + frxOLEObject1: TfrxOLEObject; + frxBarCodeObject1: TfrxBarCodeObject; + frxRichObject1: TfrxRichObject; + frxReport: TfrxReport; + cabeceraID: TIntegerField; + cabeceraID_EMPRESA: TIntegerField; + cabeceraREFERENCIA: TIBStringField; + cabeceraTIPO: TIBStringField; + cabeceraFECHA_FACTURA: TDateField; + cabeceraBASE_IMPONIBLE: TIBBCDField; + cabeceraSITUACION: TIBStringField; + cabeceraDESCUENTO: TFloatField; + cabeceraIMPORTE_DESCUENTO: TIBBCDField; + cabeceraIVA: TFloatField; + cabeceraIMPORTE_IVA: TIBBCDField; + cabeceraRE: TFloatField; + cabeceraIMPORTE_RE: TIBBCDField; + cabeceraIMPORTE_TOTAL: TIBBCDField; + cabeceraOBSERVACIONES: TMemoField; + cabeceraNIF_CIF: TIBStringField; + cabeceraID_CLIENTE: TIntegerField; + cabeceraNOMBRE: TIBStringField; + cabeceraCALLE: TIBStringField; + cabeceraPROVINCIA: TIBStringField; + cabeceraPOBLACION: TIBStringField; + cabeceraCODIGO_POSTAL: TIBStringField; + cabeceraRECARGO_EQUIVALENCIA: TSmallintField; + cabeceraIMPORTE_NETO: TIBBCDField; + cabeceraIMPORTE_PORTE: TIBBCDField; + cabeceraFORMA_PAGO: TIBStringField; + detallesID: TIntegerField; + detallesID_FACTURA: TIntegerField; + detallesPOSICION: TIntegerField; + detallesTIPO_DETALLE: TIBStringField; + detallesCONCEPTO: TIBStringField; + detallesCANTIDAD: TIntegerField; + detallesIMPORTE_UNIDAD: TIBBCDField; + detallesDESCUENTO: TFloatField; + detallesIMPORTE_TOTAL: TIBBCDField; + detallesVISIBLE: TSmallintField; + detallesREFERENCIA: TIBStringField; + frxDBVencimientos: TfrxDBDataset; + DADSVencimientos: TDADataSource; + tbl_Vencimientos: TDAMemDataTable; + vencimientos: TIBQuery; + DataSource3: TDataSource; + cabeceraDATOS_BANCARIOS: TIBStringField; + vencimientosFECHA_VENCIMIENTO: TDateField; + vencimientosIMPORTE_TOTAL: TIBBCDField; + frxPDFExport1: TfrxPDFExport; + tbl_InformeListadoFacturas: TDAMemDataTable; + DADSInformeListadoFacturas: TDADataSource; + frxDBInformeListadoFacturas: TfrxDBDataset; + frxDBInformeListadoFacturasPendientes: TfrxDBDataset; + DADSInformeListadoFacturasPendientes: TDADataSource; + tbl_InformeListadoFacturasPendientes: TDAMemDataTable; + schReport: TDASchema; + frxDBInformeListadoFacturasResumen: TfrxDBDataset; + DADSInformeListadoFacturasResumen: TDADataSource; + tbl_InformeListadoFacturasResumen: TDAMemDataTable; + Bin2DataStreamer: TDABin2DataStreamer; + procedure DataModuleCreate(Sender: TObject); + procedure DataModuleDestroy(Sender: TObject); + private + FConnection: IDAConnection; + FIdEmpresa: Integer; + FFechaInicio: Variant; + FFechaFin: Variant; + FFechaVenInicio: Variant; + FFechaVenFin: Variant; + FListaIDClientes: TIntegerArray; + FListaNombresClientes : TStringList; + FImporteMinimo: Currency; + FDesglosado : Boolean; + + //Genera cada una de las facturas a imprimir + procedure _GenerarFactura(const ID: Integer; const VerSello: Boolean = True; const VerCopia: Boolean = True); + + procedure PrepararTablaInforme(ATabla: TDAMemDataTable); + procedure PrepararTablaResumenInforme(ATabla: IDADataset); + function _GenerarInforme(const TipoInforme: String): Binary; + procedure IniciarParametrosInforme; + procedure RecuperarNombresClientes; + public + function GenerarFactura(const ListaID : TIntegerArray; const VerSello: Boolean = True; const VerCopia: Boolean = True): Binary; + function GenerarFacturaEnPDF(const ListaID : TIntegerArray; const VerSello: Boolean = True): Binary; + function GenerarInformeIVA(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoFacturas(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoFacturasPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + end; + +implementation + +{$R *.dfm} + +uses + uSistemaFunc, StrUtils, uDataModuleServer, schFacturasClienteClient_Intf, + uROServer, DataAbstract4_Intf; + +const + rptFacturaCliente = 'InfFacturaCliente.fr3'; + rptInformeIVA = 'InformeIVAClientes.fr3'; + rptInformeIVADesglosado = 'InformeIVAClientesDesglosado.fr3'; + rptInformeListadoFacturasCliente = 'InformeListadoFacturasCliente.fr3'; + rptInformeListadoFacturasClienteDesglosado = 'InformeListadoFacturasClienteDesglosado.fr3'; + rptInformeListadoFactuasClientePendiente = 'InformeListadoFacturasClientePendientes.fr3'; + rptInformeListadoFactuasClientePendienteDesglosado = 'InformeListadoFacturasClientePendientesDesglosado.fr3'; + + { Dataset names for schReport } + ds_InformeListadoFacturasResumen = 'InformeListadoFacturasResumen'; + + +{ TRptFacturasCliente } + + +procedure TRptFacturasCliente.DataModuleCreate(Sender: TObject); +begin + schReport.ConnectionManager := dmServer.ConnectionManager; + FConnection := dmServer.DarNuevaConexion; + frxReport.EngineOptions.NewSilentMode := simReThrow; + + FListaNombresClientes := TStringList.Create; + + frxDBCabecera.DataSource := DADSCabecera; + frxDBCabecera.CloseDataSource := False; + + frxDBDetalles.DataSource := DADSDetalles; + frxDBDetalles.CloseDataSource := False; + + frxDBVencimientos.DataSource := DADSVencimientos; + frxDBVencimientos.CloseDataSource := False; +end; + +procedure TRptFacturasCliente.DataModuleDestroy(Sender: TObject); +begin + tbl_Cabecera.Active := False; + tbl_Detalles.Active := False; + tbl_Vencimientos.Active := False; + + FreeANDNIL(FListaNombresClientes); +end; + +function TRptFacturasCliente.GenerarFactura(const ListaID: TIntegerArray; const VerSello: Boolean = True; const VerCopia: Boolean = True): Binary; +var + i: Integer; +begin + Result := Binary.Create; + try + //Vamos generando todos y cada una de las facturas recibidas + for i := 0 to ListaID.Count - 1 do + _GenerarFactura(ListaID.Items[i], VerSello, VerCopia); + + frxReport.PreviewPages.SaveToStream(Result); + finally + end; +end; + +function TRptFacturasCliente.GenerarFacturaEnPDF(const ListaID: TIntegerArray; const VerSello: Boolean = True): Binary; +var + i: Integer; +begin + Result := Binary.Create; + try + //Vamos generando todos y cada una de las facturas recibidas + for i := 0 to ListaID.Count - 1 do + _GenerarFactura(ListaID.Items[i], VerSello); + + frxPDFExport1.Stream := Result; + frxReport.Export(frxPDFExport1) + finally + end; +end; + +function TRptFacturasCliente.GenerarInformeIVA(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; +var + ATipoInforme: String; + AStream: TMemoryStream; + dsMaster: IDADataset; + +begin + FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + + AStream := TMemoryStream.Create; + try + //Inicializamos parametros + FIdEmpresa := IdEmpresa; + FFechaInicio := FechaInicio; + FFechaFin := FechaFin; + FFechaVenInicio := Null; + FFechaVenFin := Null; + FImporteMinimo := ImporteMinimo; + + if Assigned(FListaIDClientes) then + FListaIDClientes.Free; + FListaIDClientes := ListaIDClientes; + + //Se van a prepara las tablas del informe + if tbl_InformeListadoFacturas.Active then + tbl_InformeListadoFacturas.Active := False; + PrepararTablaInforme(tbl_InformeListadoFacturas); + + //Se prepara la tabla del listado resumen del informe + if tbl_InformeListadoFacturasResumen.Active then + tbl_InformeListadoFacturasResumen.Active := False; + dsMaster := schReport.NewDataset(FConnection, ds_InformeListadoFacturasResumen, [], [], False); + PrepararTablaResumenInforme(dsMaster); + //Esto se hace para rellenar la tabla del datamodule que usa el informe. + dsMaster.Open; + AStream.Clear; + Bin2DataStreamer.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1); + Bin2DataStreamer.ReadDataset(AStream, tbl_InformeListadoFacturasResumen, TRUE, '', TRUE, TRUE); + + //DESGLOSADO POR CLIENTE EN ESTE INFORME NO SE DESGLOSAR POR CLIENTE + if Desglosado then + ATipoInforme := rptInformeIVADesglosado + else + ATipoInforme := rptInformeIVA; + + //Finalmente se abren las tablas del informe + tbl_InformeListadoFacturas.Active := True; + tbl_InformeListadoFacturasResumen.Active := True; + + Result := _GenerarInforme(ATipoInforme); + finally + AStream.Free; + dsMaster := Nil; + FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + end; +end; + +function TRptFacturasCliente.GenerarInformeListadoFacturas(const IdEmpresa: Integer; + const FechaInicio, FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; + const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; +var + ATipoInforme: String; + AStream: TMemoryStream; + dsMaster: IDADataset; + +begin + FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + + AStream := TMemoryStream.Create; + try + //Inicializamos parametros + FIdEmpresa := IdEmpresa; + FFechaInicio := FechaInicio; + FFechaFin := FechaFin; + FFechaVenInicio := FechaVenInicio; + FFechaVenFin := FechaVenFin; + FImporteMinimo := ImporteMinimo; + + if Assigned(FListaIDClientes) then + FListaIDClientes.Free; + FListaIDClientes := ListaIDClientes; + + //Se prepara la tabla del listado general del informe + if tbl_InformeListadoFacturas.Active then + tbl_InformeListadoFacturas.Active := False; + PrepararTablaInforme(tbl_InformeListadoFacturas); + + //Se prepara la tabla del listado resumen del informe + if tbl_InformeListadoFacturasResumen.Active then + tbl_InformeListadoFacturasResumen.Active := False; + dsMaster := schReport.NewDataset(FConnection, ds_InformeListadoFacturasResumen, [], [], False); + PrepararTablaResumenInforme(dsMaster); + //Esto se hace para rellenar la tabla del datamodule que usa el informe. + dsMaster.Open; + AStream.Clear; + Bin2DataStreamer.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1); + Bin2DataStreamer.ReadDataset(AStream, tbl_InformeListadoFacturasResumen, TRUE, '', TRUE, TRUE); + + //DESGLOSADO POR CLIENTE EN ESTE INFORME NO SE DESGLOSAR POR CLIENTE + FDesglosado := Desglosado; + if FDesglosado then + ATipoInforme := rptInformeListadoFacturasClienteDesglosado + else + ATipoInforme := rptInformeListadoFacturasCliente; + + //Finalmente se abren las tablas del informe + tbl_InformeListadoFacturas.Active := True; + tbl_InformeListadoFacturasResumen.Active := True; + + Result := _GenerarInforme(ATipoInforme); + + finally + AStream.Free; + dsMaster := Nil; + FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + end; +end; + +function TRptFacturasCliente.GenerarInformeListadoFacturasPendientes( + const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; + const FechaVenInicio: Variant; const FechaVenFin: Variant; + const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; + const ImporteMinimo: Currency): Binary; +var + Condicion: TDAWhereExpression; + ATipoInforme: String; + AStream: TMemoryStream; + dsMaster: IDADataset; + +begin + FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + + AStream := TMemoryStream.Create; + try + //Inicializamos parametros + FIdEmpresa := IdEmpresa; + FFechaInicio := FechaInicio; + FFechaFin := FechaFin; + FFechaVenInicio := FechaVenInicio; + FFechaVenFin := FechaVenFin; + FImporteMinimo := ImporteMinimo; + FListaIDClientes := ListaIDClientes; + + //Se prepara la tabla del listado general del informe + if tbl_InformeListadoFacturasPendientes.Active then + tbl_InformeListadoFacturasPendientes.Active := False; + PrepararTablaInforme(tbl_InformeListadoFacturasPendientes); + + // Filtrar el informe por situacion + with tbl_InformeListadoFacturasPendientes.DynamicWhere do + begin + // (ID_EMPRESA >= ID) + Condicion := NewBinaryExpression(NewField('', fld_FacturasClienteSITUACION), NewConstant('PAGADA', datString), dboNotEqual); + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + //DESGLOSADO POR CLIENTE EN ESTE INFORME NO SE DESGLOSAR POR CLIENTE + FDesglosado := Desglosado; + if FDesglosado then + ATipoInforme := rptInformeListadoFactuasClientePendienteDesglosado + else + ATipoInforme := rptInformeListadoFactuasClientePendiente; + + //Finalmente se abren las tablas del informe + tbl_InformeListadoFacturasPendientes.Active := True; + + Result := _GenerarInforme(ATipoInforme); + + finally + AStream.Free; + dsMaster := Nil; + FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + end; +end; + +procedure TRptFacturasCliente.IniciarParametrosInforme; +var + ATextos : TStringList; + ACadena : String; +begin + ATextos := TStringList.Create; + + try + if (not VarIsNull(FFechaInicio)) and (not VarIsNull(FFechaFin)) then + ACadena := Format('Fechas de factura desde el %s hasta el %s', [VarToStr(FFechaInicio), VarToStr(FFechaFin)]) + else + ACadena := 'Sin rango de fechas'; + ATextos.Add(ACadena); + ACadena := ''; + + // Filtrar el informe por fechas de vencimiento + if (not VarIsNull(FFechaVenInicio)) and (not VarIsNull(FFechaVenFin)) then + begin + ACadena := Format('Vencimientos desde el %s hasta el %s', [VarToStr(FFechaVenInicio), VarToStr(FFechaVenFin)]); + ATextos.Add(ACadena); + ACadena := ''; + end; + + if (FImporteMinimo > 0) then + begin + ACadena := Format('Facturas con importe superior a %m', [FImporteMinimo]); + ATextos.Add(ACadena); + ACadena := ''; + end; + + if Assigned(FListaIDClientes) and (FListaIDClientes.Count > 0) then + begin + RecuperarNombresClientes; + ACadena := FListaNombresClientes.Text; + end + else begin + ACadena := 'Todos los clientes'; + if FDesglosado then + ACadena := ACadena + ' (desglosados)' + end; + + ATextos.Add(ACadena); + ACadena := ''; + + frxReport.Variables.Variables['TextoParametros'] := ATextos.Text; + finally + FreeAndNil(ATextos); + end; +end; + +procedure TRptFacturasCliente.PrepararTablaInforme(ATabla: TDAMemDataTable); +var + Condicion: TDAWhereExpression; + i: Integer; + +begin + // Filtrar el informe por empresa + with ATabla.DynamicWhere do + begin + // (ID_EMPRESA >= ID) + Condicion := NewBinaryExpression(NewField('', fld_FacturasClienteID_EMPRESA), NewConstant(FIdEmpresa, datInteger), dboEqual); + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + // Filtrar el informe por fechas + if not VarIsNull(FFechaInicio) + and not VarIsNull(FFechaFin) then + begin + with ATabla.DynamicWhere do + begin + // (FECHA_INICIO between FECHA_FIN) + Condicion := NewBinaryExpression(NewField('', fld_FacturasClienteFECHA_FACTURA), NewConstant(FFechaInicio, datDateTime), dboGreaterOrEqual); + Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_FacturasClienteFECHA_FACTURA), NewConstant(FFechaFin, datDateTime), dboLessOrEqual), Condicion, dboAnd); + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + end; + + // Filtrar el informe por fechas de vencimiento + if not VarIsNull(FFechaVenInicio) + and not VarIsNull(FFechaVenFin) then + begin + with ATabla.DynamicWhere do + begin + // (FECHA_VENCIMIENTO_INICIO between FECHA_VENCIMIENTO_FIN) + Condicion := NewBinaryExpression(NewField('', fld_FacturasClienteFECHA_VENCIMIENTO), NewConstant(FFechaVenInicio, datDateTime), dboGreaterOrEqual); + Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_FacturasClienteFECHA_VENCIMIENTO), NewConstant(FFechaVenFin, datDateTime), dboLessOrEqual), Condicion, dboAnd); + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + end; + + // Filtrar el informe por proveedor + if Assigned(FListaIDClientes) then + begin + with ATabla.DynamicWhere do + begin + for i := 0 to FListaIDClientes.Count - 1 do + begin + + // (ID_CLIENTE = ID) + Condicion := NewBinaryExpression(NewField('', fld_FacturasClienteID_CLIENTE), NewConstant(FListaIDClientes.Items[i], datInteger), dboEqual); + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + end; + end; + + // Filtrar el informe por importe minimo + if (FImporteMinimo > 0) then + begin + with ATabla.DynamicWhere do + begin + // (IMPORTE_TOTAL > ImporteMinimo) + Condicion := NewBinaryExpression(NewField('', fld_FacturasCLienteIMPORTE_TOTAL), NewConstant(FImporteMinimo, datCurrency), dboGreaterOrEqual); + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + end; +end; + +procedure TRptFacturasCliente.PrepararTablaResumenInforme(ATabla: IDADataset); +var + i: Integer; + AWhereStr : String; + +begin + // Filtrar el informe por empresa + AWhereStr := ' (' + fld_FacturasCLienteID_EMPRESA + ' = ' + IntToStr(FIdEmpresa) + ') '; + + // Filtrar el informe por fechas + if not VarIsNull(FFechaInicio) + and not VarIsNull(FFechaFin) then + begin + if Length(AWhereStr) > 0 then + AWhereStr := AWhereStr + 'AND'; + AWhereStr := AWhereStr + ' (' + fld_FacturasCLienteFECHA_FACTURA + ' between ''' + ReplaceStr(VarToStr(FFechaInicio),'/','.') + ''' and ''' + ReplaceStr(VarToStr(FFechaFin),'/','.') + ''') '; + end; + + // Filtrar el informe por fechas de vencimiento + if not VarIsNull(FFechaVenInicio) + and not VarIsNull(FFechaVenFin) then + begin + if Length(AWhereStr) > 0 then + AWhereStr := AWhereStr + 'AND'; + AWhereStr := AWhereStr + ' (' + fld_FacturasCLienteFECHA_VENCIMIENTO + ' between ''' + ReplaceStr(VarToStr(FFechaVenInicio),'/','.') + ''' and ''' + ReplaceStr(VarToStr(FFechaVenFin),'/','.') + ''') '; + end; + + // Filtrar el informe por proveedor + if Assigned(FListaIDClientes) then + begin + for i := 0 to FListaIDClientes.Count - 1 do + begin + if Length(AWhereStr) > 0 then + AWhereStr := AWhereStr + 'AND'; + AWhereStr := AWhereStr + ' (' + fld_FacturasCLienteID_CLIENTE + ' = ' + IntToStr(FListaIDClientes.Items[i]) + ') '; + end; + end; + + // Filtrar el informe por importe minimo + if (FImporteMinimo > 0) then + begin + if Length(AWhereStr) > 0 then + AWhereStr := AWhereStr + 'AND'; + AWhereStr := AWhereStr + ' (' + fld_FacturasCLienteIMPORTE_TOTAL + ' >= ' + CurrToStr(FImporteMinimo) + ') '; + end; + + ATabla.Where.AddText(AWhereStr); +end; + +procedure TRptFacturasCliente.RecuperarNombresClientes; +var + AContactosService : IsrvContactos; + Intf : IInterface; + AClientID : TGUID; + + ATableNameArray: StringArray; + ATableRequestInfoArray: TableRequestInfoArray; + ATableRequestInfo: TableRequestInfoV5; + AStream: TMemoryStream; + ADataTable: TDAMemDataTable; + i: Integer; + AWhereBuilder : TDAWhereBuilder; + ACondicion : TDAWhereExpression; +begin + CreateGUID(AClientID); + + GetClassFactory('srvContactos').CreateInstance(AClientID, Intf); + + if Assigned(Intf) then + begin + AContactosService := Intf as IsrvContactos; + + ATableNameArray := StringArray.Create; + ATableRequestInfoArray := TableRequestInfoArray.Create; + AWhereBuilder := TDAWhereBuilder.Create; + try + ATableNameArray.Add('Clientes'); + ATableRequestInfo := TableRequestInfoV5.Create; + + with ATableRequestInfo do + begin + IncludeSchema := True; + MaxRecords := -1; + UserFilter := ''; + + AWhereBuilder.Clear; + with AWhereBuilder do + for i := 0 to FListaIDClientes.Count - 1 do + begin + ACondicion := NewBinaryExpression( + NewBinaryExpression(NewField('', 'ID'), NewConstant(FListaIDClientes[i], datInteger), dboEqual), + NewBinaryExpression(NewField('', 'ID_EMPRESA'), NewConstant(FIdEmpresa, datInteger), dboEqual), + dboAnd); + + if not AWhereBuilder.IsEmpty then + Expression := NewBinaryExpression(Expression, ACondicion, dboOr) + else + Expression := ACondicion; + end; + + WhereClause := AWhereBuilder.ExpressionToXmlNode(AWhereBuilder.Expression); + end; + + try + ATableRequestInfoArray.Add(ATableRequestInfo); + AStream := AContactosService.GetData(ATableNameArray, ATableRequestInfoArray); + if Assigned(AStream) then + begin + ADataTable := TDAMemDataTable.Create(nil); + try + ADataTable.Name := 'Clientes'; + ADataTable.LocalDataStreamer := Bin2DataStreamer; + ADataTable.RemoteFetchEnabled := False; + Bin2DataStreamer.ReadDataset(AStream, ADataTable, True); + + ADataTable.Open; + FListaNombresClientes.Clear; + for i := 0 to ADataTable.RecordCount - 1 do + begin + FListaNombresClientes.Add(ADataTable.FieldByName('NOMBRE').AsString); + ADataTable.Next; + end; + + finally + FreeANDNil(ADataTable); + end; + end; + except + on e: Exception do + dmServer.EscribirLog(e.Message); + end; + finally + FreeANDNIL(ATableRequestInfoArray); + FreeANDNIL(ATableNameArray); + FreeANDNIL(AWhereBuilder); + end; + end; +end; + +procedure TRptFacturasCliente._GenerarFactura(const ID: Integer; const VerSello: Boolean = True; const VerCopia: Boolean = True); +var + AInforme: Variant; + +begin + FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + try + tbl_Cabecera.Active := False; + tbl_Detalles.Active := False; + tbl_Vencimientos.Active := False; + + tbl_Cabecera.ParamByName('ID').AsInteger := ID; + tbl_Detalles.ParamByName('ID_FACTURA').AsInteger := ID; + tbl_Vencimientos.ParamByName('ID_FACTURA').AsInteger := ID; + + tbl_Cabecera.Active := True; + tbl_Detalles.Active := True; + tbl_Vencimientos.Active := True; + + AInforme := DarRutaFichero(DarRutaInformes, rptFacturaCliente, tbl_Cabecera.FieldByName('ID_EMPRESA').AsString); + if VarIsNull(AInforme) then + raise Exception.Create (('Error Servidor: _GenerarFactura, no encuentra informe ' + rptFacturaCliente)); + + frxReport.LoadFromFile(AInforme, True); + if VerSello then + frxReport.Variables.Variables['VerSello'] := 1 + else + frxReport.Variables.Variables['VerSello'] := 0; + + //La primera impresion siempre es sin la etiqueta copia + frxReport.Variables.Variables['VerCopia'] := 0; + frxReport.PrepareReport(False); + if VerCopia then + begin + frxReport.Variables.Variables['VerCopia'] := 1; + frxReport.Variables.Variables['VerSello'] := 0; //El sello nunca saldr en la copia + frxReport.PrepareReport(False); + end; + + finally + FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + end; +end; + +function TRptFacturasCliente._GenerarInforme(const TipoInforme: String): Binary; +var + AInforme: Variant; +begin + Result := Binary.Create; + AInforme := DarRutaFichero(DarRutaInformes, TipoInforme, IntToStr(FIdEmpresa)); + if VarIsNull(AInforme) then + raise Exception.Create (('Error Servidor: _GenerarInforme, no encuentra informe ' + TipoInforme)); + + frxReport.LoadFromFile(AInforme, True); + IniciarParametrosInforme; + + frxReport.PrepareReport(False); + frxReport.PreviewPages.SaveToStream(Result); +end; + +end. diff --git a/Source/Modulos/Facturas de cliente/Reports/uRptWordFacturaCliente.dcu b/Source/Modulos/Facturas de cliente/Reports/uRptWordFacturaCliente.dcu new file mode 100644 index 0000000..4ca2f26 Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Reports/uRptWordFacturaCliente.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Reports/uRptWordFacturaCliente.dfm b/Source/Modulos/Facturas de cliente/Reports/uRptWordFacturaCliente.dfm new file mode 100644 index 0000000..1a6065c --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Reports/uRptWordFacturaCliente.dfm @@ -0,0 +1,781 @@ +object RptWordFacturaCliente: TRptWordFacturaCliente + OldCreateOrder = False + OnCreate = DataModuleCreate + Height = 366 + Width = 514 + object schReport: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Datasets = < + item + Params = < + item + Name = 'ID' + Value = '2' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'select'#10' v_facturas_cliente.id, v_facturas_cliente.id_empresa,'#10 + + ' v_facturas_cliente.referencia, v_facturas_cliente.tipo,'#10' v_' + + 'facturas_cliente.fecha_factura, v_facturas_cliente.base_imponibl' + + 'e,'#10' v_facturas_cliente.situacion, v_facturas_cliente.descuento' + + ','#10' v_facturas_cliente.importe_descuento, v_facturas_cliente.iv' + + 'a,'#10' v_facturas_cliente.importe_iva, v_facturas_cliente.re,'#10' ' + + 'v_facturas_cliente.importe_re, v_facturas_cliente.importe_total,' + + #10' v_facturas_cliente.observaciones, v_facturas_cliente.nif_cif' + + ','#10' v_facturas_cliente.id_cliente, v_facturas_cliente.nombre,'#10' ' + + ' v_facturas_cliente.calle, v_facturas_cliente.provincia,'#10' v_f' + + 'acturas_cliente.poblacion, v_facturas_cliente.codigo_postal,'#10' ' + + 'v_facturas_cliente.recargo_equivalencia, v_facturas_cliente.impo' + + 'rte_neto,'#10' v_facturas_cliente.importe_porte, formas_pago.descr' + + 'ipcion as FORMA_PAGO,'#10' v_facturas_cliente.datos_bancarios, v_f' + + 'acturas_cliente.fecha_vencimiento,'#10' v_facturas_cliente.retenci' + + 'on, v_facturas_cliente.importe_retencion'#10'from v_facturas_cliente' + + #10' left outer join formas_pago on (formas_pago.id = v_facturas_' + + 'cliente.id_forma_pago)'#10'WHERE V_FACTURAS_CLIENTE.ID = :ID'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end + item + DatasetField = 'TIPO' + TableField = 'TIPO' + end + item + DatasetField = 'FECHA_FACTURA' + TableField = 'FECHA_FACTURA' + end + item + DatasetField = 'BASE_IMPONIBLE' + TableField = 'BASE_IMPONIBLE' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IMPORTE_DESCUENTO' + TableField = 'IMPORTE_DESCUENTO' + end + item + DatasetField = 'IVA' + TableField = 'IVA' + end + item + DatasetField = 'IMPORTE_IVA' + TableField = 'IMPORTE_IVA' + end + item + DatasetField = 'RE' + TableField = 'RE' + end + item + DatasetField = 'IMPORTE_RE' + TableField = 'IMPORTE_RE' + end + item + DatasetField = 'RECARGO_EQUIVALENCIA' + TableField = 'RECARGO_EQUIVALENCIA' + end + item + DatasetField = 'IMPORTE_NETO' + TableField = 'IMPORTE_NETO' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end + item + DatasetField = 'FORMA_PAGO' + TableField = 'FORMA_PAGO' + end + item + DatasetField = 'DATOS_BANCARIOS' + TableField = 'DATOS_BANCARIOS' + end + item + DatasetField = 'FECHA_VENCIMIENTO' + TableField = 'FECHA_VENCIMIENTO' + end + item + DatasetField = 'RETENCION' + TableField = 'RETENCION' + end + item + DatasetField = 'IMPORTE_RETENCION' + TableField = 'IMPORTE_RETENCION' + end> + end> + Name = 'Informe_Cabecera' + Fields = < + item + Name = 'ID' + DataType = datInteger + Required = True + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + end + item + Name = 'SITUACION' + DataType = datString + Size = 19 + end + item + Name = 'DESCUENTO' + DataType = datFloat + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + end + item + Name = 'IVA' + DataType = datFloat + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + end + item + Name = 'RE' + DataType = datFloat + end + item + Name = 'IMPORTE_RE' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + end + item + Name = 'RECARGO_EQUIVALENCIA' + DataType = datSmallInt + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + end + item + Name = 'FORMA_PAGO' + DataType = datString + Size = 255 + end + item + Name = 'DATOS_BANCARIOS' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'RETENCION' + DataType = datFloat + end + item + Name = 'IMPORTE_RETENCION' + DataType = datCurrency + end> + ReadOnly = True + end + item + Params = < + item + Name = 'ID_FACTURA' + Value = '2' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + SQL = + 'SELECT'#10' DET.ID, DET.ID_FACTURA, DET.POSICION, DET.TIPO_DETALL' + + 'E, ARTICULOS.REFERENCIA,'#10' F_RTFTOTEXT(CONCEPTO) as CONCEPTO, ' + + 'CONCEPTO as CONCEPTO_RTF, CANTIDAD,'#10' DET.UNIDAD_MEDIDA,'#10' D' + + 'ET.IMPORTE_UNIDAD, DET.DESCUENTO,'#10' DET.IMPORTE_TOTAL, DET.VIS' + + 'IBLE'#10'FROM FACTURAS_CLIENTE_DETALLES AS DET'#10'LEFT OUTER JOIN ARTIC' + + 'ULOS ON (ARTICULOS.ID = DET.ID_ARTICULO)'#10'WHERE DET.ID_FACTURA = ' + + ':ID_FACTURA AND DET.VISIBLE = 1 AND {Where}'#10'ORDER BY DET.ID_FACT' + + 'URA, DET.POSICION;'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'IMPORTE_UNIDAD' + TableField = 'IMPORTE_UNIDAD' + end + item + DatasetField = 'ID_FACTURA' + TableField = 'ID_FACTURA' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'VISIBLE' + TableField = 'VISIBLE' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'CONCEPTO_RTF' + TableField = 'CONCEPTO_RTF' + end + item + DatasetField = 'UNIDAD_MEDIDA' + TableField = 'UNIDAD_MEDIDA' + end> + end> + Name = 'Informe_Detalles' + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_FACTURA' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 254 + end + item + Name = 'CONCEPTO_RTF' + DataType = datString + Size = 2000 + end + item + Name = 'CANTIDAD' + DataType = datFloat + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + end + item + Name = 'DESCUENTO' + DataType = datFloat + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'VISIBLE' + DataType = datSmallInt + end> + ReadOnly = True + end + item + Params = < + item + Name = 'ID_FACTURA' + Value = '2' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'SELECT'#10' V_RECIBOS_CLIENTE.ID_FACTURA, V_RECIBOS_CLIENTE.FECHA' + + '_VENCIMIENTO, V_RECIBOS_CLIENTE.IMPORTE_TOTAL'#10'FROM V_RECIBOS_CLI' + + 'ENTE'#10'WHERE V_RECIBOS_CLIENTE.ID_FACTURA = :ID_FACTURA'#10'ORDER BY V' + + '_RECIBOS_CLIENTE.FECHA_VENCIMIENTO'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_FACTURA' + TableField = 'ID_FACTURA' + end + item + DatasetField = 'FECHA_VENCIMIENTO' + TableField = 'FECHA_VENCIMIENTO' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end> + end> + Name = 'Informe_Vencimientos' + Fields = < + item + Name = 'ID_FACTURA' + DataType = datInteger + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 16 + end + object DataDictionary: TDADataDictionary + Fields = <> + Left = 46 + Top = 142 + end + object DABin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 80 + end + object tbl_Cabecera: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + Required = True + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + end + item + Name = 'SITUACION' + DataType = datString + Size = 19 + end + item + Name = 'DESCUENTO' + DataType = datFloat + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + end + item + Name = 'IVA' + DataType = datFloat + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + end + item + Name = 'RE' + DataType = datFloat + end + item + Name = 'IMPORTE_RE' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + end + item + Name = 'RECARGO_EQUIVALENCIA' + DataType = datSmallInt + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + end + item + Name = 'FORMA_PAGO' + DataType = datString + Size = 255 + end + item + Name = 'DATOS_BANCARIOS' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'RETENCION' + DataType = datFloat + end + item + Name = 'IMPORTE_RETENCION' + DataType = datCurrency + end> + Params = < + item + Name = 'ID' + Value = '2' + ParamType = daptInput + end> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer + LogicalName = 'Informe_Cabecera' + IndexDefs = <> + Left = 168 + Top = 16 + end + object tbl_Detalles: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_FACTURA' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 254 + end + item + Name = 'CONCEPTO_RTF' + DataType = datString + Size = 2000 + end + item + Name = 'CANTIDAD' + DataType = datFloat + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + end + item + Name = 'DESCUENTO' + DataType = datFloat + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'VISIBLE' + DataType = datSmallInt + end> + Params = < + item + Name = 'ID_FACTURA' + Value = '2' + ParamType = daptInput + end> + MasterParamsMappings.Strings = ( + 'ID_PRESUPUESTO=ID_PRESUPUESTO') + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer + LogicalName = 'Informe_Detalles' + IndexDefs = <> + Left = 264 + Top = 16 + end + object tbl_Empresa: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = < + item + Name = 'ID' + Value = '31' + ParamType = daptInput + end> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LogicalName = 'Empresa' + IndexDefs = <> + Left = 168 + Top = 80 + end + object tbl_Vencimientos: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID_FACTURA' + DataType = datInteger + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + Params = < + item + Name = 'ID_FACTURA' + Value = '2' + ParamType = daptInput + end> + MasterParamsMappings.Strings = ( + 'ID_PRESUPUESTO=ID_PRESUPUESTO') + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer + LogicalName = 'Informe_Vencimientos' + IndexDefs = <> + Left = 352 + Top = 16 + end +end diff --git a/Source/Modulos/Facturas de cliente/Reports/uRptWordFacturaCliente.pas b/Source/Modulos/Facturas de cliente/Reports/uRptWordFacturaCliente.pas new file mode 100644 index 0000000..13abae7 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Reports/uRptWordFacturaCliente.pas @@ -0,0 +1,445 @@ +unit uRptWordFacturaCliente; + +interface + +uses + SysUtils, Classes, AHWord97, IB, IBCustomDataSet, IBDatabase, + Word2000, + uDAInterfaces, uDADataStreamer, uDABin2DataStreamer, uDAClasses, + uDAScriptingProvider, uDADataTable, uDAMemDataTable; + +type + TRptWordFacturaCliente = class(TDataModule) + DABin2DataStreamer: TDABin2DataStreamer; + tbl_Cabecera: TDAMemDataTable; + tbl_Detalles: TDAMemDataTable; + tbl_Empresa: TDAMemDataTable; + tbl_Vencimientos: TDAMemDataTable; + schReport: TDASchema; + DataDictionary: TDADataDictionary; + procedure DataModuleCreate(Sender: TObject); + private + FConnection: IDAConnection; + FPlantilla : string; + FWordApp : TWordApp; + FDocumento : TWordDoc; +// FNumCapitulos : Integer; + FCodigoFactura : string; + FNombreFichero : String; + FVerSello : Boolean; +// function DarNumCapitulos : Integer; +// procedure InsertarConceptos(Tabla : Table); + function Generar : Boolean; + function RellenarCabecera : boolean; virtual; + function RellenarInforme : boolean; virtual; + procedure _GenerarFactura(const AID: String); + public + function Exportar(Codigo, Fichero : String; const VerSello: Boolean = True): Boolean; + constructor Create (AOwner : TComponent); override; + destructor Destroy; override; + end; + +implementation + +{ TRptWordFacturaCliente } + +{$R *.dfm} + +uses + Windows, Variants, Dialogs, uDataModuleServer, uStringsUtils, uSistemaFunc, + srvEmpresas_Impl, uROTypes, uROClasses; + +const + rptInforme = 'FacturaCliente.rdx'; + +constructor TRptWordFacturaCliente.Create(AOwner: TComponent); +begin + inherited; + FDocumento := NIL; +end; + +{function TRptWordFacturaCliente.DarNumCapitulos: Integer; +var + AuxNumCapitulos : integer; +begin + AuxNumCapitulos := 0; + tbl_Cabecera.First; + while not tbl_Cabecera.Eof do + begin + if tbl_Cabecera.FieldByName('TIPO_DETALLE').AsString = 'Titulo' then + AuxNumCapitulos := AuxNumCapitulos + 1; + tbl_Cabecera.Next; + end; + tbl_Cabecera.First; + Result := AuxNumCapitulos; +end;} + +destructor TRptWordFacturaCliente.Destroy; +begin + if FDocumento <> NIL then + FDocumento.Free; + FDocumento := NIL; + inherited; +end; + +function TRptWordFacturaCliente.Exportar(Codigo, Fichero: String; const VerSello: Boolean = True): Boolean; +begin + if EsCadenaVacia(Fichero) then + begin + Result := False; + raise Exception.Create('Falta indicar el fichero donde se exportar el listado.'); + end; + + FNombreFichero := Fichero; + FCodigoFactura := Codigo; + FVerSello := VerSello; + _GenerarFactura(Codigo); + Result := True; +end; + +procedure TRptWordFacturaCliente.DataModuleCreate(Sender: TObject); +begin + schReport.ConnectionManager := dmServer.ConnectionManager; + FConnection := dmServer.DarNuevaConexion; +end; + +function TRptWordFacturaCliente.Generar : Boolean; +begin + FWordApp := TWordApp.Create (False, False); + with FWordApp do + begin + Visible := False; + ScreenUpdating := False; + end; + + FDocumento := TWordDoc.CreateNewDoc(FWordApp, FPlantilla); + FWordApp.SaveActiveDocAs(FNombreFichero); + try + if not RellenarCabecera then + RaiseError('Se producido un error al generar la cabecera en MS Word.'); + + if not RellenarInforme then + RaiseError('Se producido un error al generar el informe en MS Word.'); + + FWordApp.CloseApp(wdSaveChanges); + Result := True; + finally + FDocumento := NIL; + FWordApp := NIL; + end; +end; + +{procedure TRptWordFacturaCliente.InsertarConceptos(Tabla : Table); +var + numRows, numCols, mergeSplit, shiftCells : OleVariant; + iContador : Integer; + TotalConceptos : Double; + ACantidad: String; + AIndice: Integer; + AText : String; +begin + TotalConceptos := 0; + numRows := 2; + numCols := 1; + mergeSplit := False; + shiftCells := False; + iContador := 2; // Empezar en la 2 fila de celdas. La primera es la + // cabecera de la tabla. + + with Tabla, tbl_Detalles do + begin + while not EOF do + begin + if FieldByName('TIPO_DETALLE').AsString <> 'Concepto' then + Break; + // Partir la celda actual en 2 filas de 1 columna. + Rows.Item(iContador).Cells.Split (numRows, numCols, mergesplit); + Cell(iContador, 1).Range.Text := FieldByName('CONCEPTO').AsString; + + ACantidad := FloatToStr(FieldByName('CANTIDAD').AsFloat); + AIndice := Pos(',', ACantidad); + if AIndice > 0 then + AText := FormatFloat('#,0.00', FieldByName('CANTIDAD').AsFloat) + else + AText := FormatFloat('#,0.##', FieldByName('CANTIDAD').AsFloat); + + Cell(iContador, 2).Range.Text := AText; + + + if (FieldByName('IMPORTE_UNIDAD').AsFloat = 0) then + Cell(iContador, 3).Range.Text := '' + else + Cell(iContador, 3).Range.Text := FormatFloat(DISPLAY_EUROS2, FieldByName('IMPORTE_UNIDAD').AsFloat); + + if (FieldByName('IMPORTE_TOTAL').AsFloat = 0) then + Cell(iContador, 4).Range.Text := '' + else + Cell(iContador, 4).Range.Text := FormatFloat(DISPLAY_EUROS2, FieldByName('IMPORTE_TOTAL').AsFloat); + + TotalConceptos := TotalConceptos + FieldByName('IMPORTE_TOTAL').AsFloat; + Next; + Inc (iContador); + end; + // Borrar la fila vaca que sobra + Rows.Item(iContador).Cells.Delete(shiftCells); + Cell(iContador, 1).Range.Text := 'Total: ' + FormatFloat(DISPLAY_EUROS2, TotalConceptos); + AutoFitBehavior(wdAutoFitWindow); + end; +end;} + +function TRptWordFacturaCliente.RellenarCabecera: boolean; +var + NombreFichero, + Texto, +// FicheroTemporal : String; +// LinkToFile, SaveWithDocument, _Range : OleVariant; +// Imagen : InlineShape; + _ShiftCells : OleVariant; + ImporteAux : Double; + Cadena : String; +begin + + //PARA DIBUJAR EL LOGOTIPO MULTIEMPRESA + {--------------------------- PENDIENTE + if (EmpresaActiva.Logotipo <> Nil) then + begin + //Activamos cabecera + FWordApp.Application.ActiveWindow.ActivePane.View.SeekView := wdSeekCurrentPageHeader; + LinkToFile := False; + SaveWithDocument := True; + _Range := EmptyParam; + FicheroTemporal := DarFicheroTemporal; + EmpresaActiva.Logotipo.SaveToFile (FicheroTemporal); + Imagen := FWordApp.Application.ActiveWindow.ActivePane.Selection.InlineShapes.AddPicture(ficherotemporal, LinkToFile, SaveWithDocument, _Range); + + //Formateamos imagen + if ((Imagen.Get_Width > ANCHO_LOGO_INF)) then + begin + Imagen.Set_Height(((ANCHO_LOGO_INF * Imagen.Get_Height) /Imagen.Get_Width)); + Imagen.Set_Width(ANCHO_LOGO_INF); + end; + end; + ---------------------------- } + + with FDocumento, tbl_Cabecera do + begin + //Activamos cabecera + FWordApp.Application.ActiveWindow.ActivePane.View.SeekView := wdSeekCurrentPageHeader; + + if (FieldByName('TIPO').AsString = 'F') then + ReplaceBookmark('CodigoFacturaCab', FieldByName('REFERENCIA').AsString) + else + ReplaceBookmark('CodigoFacturaCab', FieldByName('REFERENCIA').AsString); + ReplaceBookmark('FechaFacturaCab', FieldByName('FECHA_FACTURA').AsString); + + //Se cambia se omiten los vencimientos de los recibos solo tendremos en cuenta el de la factura + Cadena := FieldByName('FECHA_VENCIMIENTO').AsString; +{ tbl_Vencimientos.First; + Cadena := ''; + while not tbl_Vencimientos.eof do + begin + Cadena := Cadena + tbl_Vencimientos.FieldByName('FECHA_VENCIMIENTO').AsString + ' '; + tbl_Vencimientos.Next; + end; +} + + ReplaceBookmark('VencimientoCab', Cadena); + ReplaceBookmark('FormaPagoCab', FieldByName('FORMA_PAGO').AsString); + ReplaceBookmark('BancoCab', FieldByName('DATOS_BANCARIOS').AsString); + + ReplaceBookmark('NombreClienteCab', FieldByName('NOMBRE').AsString); + ReplaceBookmark('CIFClienteCab', FieldByName('NIF_CIF').AsString); + + ReplaceBookmark('DireccionClienteCab', FieldByName('CALLE').AsString); + ReplaceBookmark('PoblacionClienteCab', + FieldByName('CODIGO_POSTAL').AsString + ' ' + + FieldByName('POBLACION').AsString + ' ' + FieldByName('PROVINCIA').AsString); + + ReplaceBookmark('BaseImponible', FormatFloat(DISPLAY_EUROS2, FieldByName('IMPORTE_NETO').AsFloat)); + ImporteAux := FieldByName('BASE_IMPONIBLE').AsFloat; // - FieldByName('IMPORTE_DESCUENTO').AsFloat; + ReplaceBookmark('BaseImponible2', FormatFloat(DISPLAY_EUROS2, ImporteAux)); + + if (FieldByName('DESCUENTO').AsInteger = 0) then + begin + ReplaceBookmark('BaseImponibleTexto', 'Base imponible'); + FWordApp.GotoBookmark('CeldasDescuento'); + _ShiftCells := wdDeleteCellsShiftLeft; + FWordApp.Application.Selection.Cells.Delete(_ShiftCells); + end + else begin + ReplaceBookmark('Descuento', FieldByName('DESCUENTO').AsString); + ReplaceBookmark('ImporteDto', FormatFloat(DISPLAY_EUROS2, FieldByName('IMPORTE_DESCUENTO').AsFloat)); + end; + if EsCadenaVacia(FieldByName('IVA').AsString) then + ReplaceBookmark('IVA', '0') + else + ReplaceBookmark('IVA', FieldByName('IVA').AsString); + ReplaceBookmark('ImporteIVA', FormatFloat(DISPLAY_EUROS2, FieldByName('IMPORTE_IVA').AsFloat)); + ReplaceBookmark('ImporteTotal', FormatFloat(DISPLAY_EUROS2, FieldByName('IMPORTE_TOTAL').AsFloat)); + + if (FieldByName('RETENCION').AsInteger = 0) then + begin + FWordApp.GotoBookmark('CeldasRetencion'); + _ShiftCells := wdDeleteCellsShiftLeft; + FWordApp.Application.Selection.Cells.Delete(_ShiftCells); + end + else begin + ReplaceBookmark('TituloImporteTotal', 'Total certificacion'); + ReplaceBookmark('Retencion', FieldByName('RETENCION').AsString); + ReplaceBookmark('ImporteRetencion', FormatFloat(DISPLAY_EUROS2, FieldByName('IMPORTE_RETENCION').AsFloat)); + ReplaceBookmark('ImporteTotalRet', FormatFloat(DISPLAY_EUROS2, (FieldByName('IMPORTE_TOTAL').AsFloat - FieldByName('IMPORTE_RETENCION').AsFloat))); + end; + + Texto := FieldByName('OBSERVACIONES').AsString; + if not EsCadenaVacia(Texto) then + begin + NombreFichero := DarFicheroTemporal; + EscribirEnFichero(NombreFichero, Texto); + FWordApp.InsertFile(NombreFichero, 'Descripcion'); + SysUtils.DeleteFile(NombreFichero); + end; + + ReplaceBookmark('NombreEmpresa', tbl_Empresa.FieldByName('NOMBRE').AsString); + ReplaceBookmark('CifEmpresa', tbl_Empresa.FieldByName('NIF_CIF').AsString); + ReplaceBookmark('DireccionEmpresa', + Format('%s. %s %s', [tbl_Empresa.FieldByName('CALLE').AsString, + tbl_Empresa.FieldByName('CODIGO_POSTAL').AsString, tbl_Empresa.FieldByName('POBLACION').AsString])); + ReplaceBookmark('TelefonoEmpresa', tbl_Empresa.FieldByName('TELEFONO_1').AsString); + ReplaceBookmark('FaxEmpresa', tbl_Empresa.FieldByName('FAX').AsString); + ReplaceBookmark('CorreoEmpresa', tbl_Empresa.FieldByName('EMAIL_1').AsString); + + ReplaceBookmark('DatosRegistroMercantil', tbl_Empresa.FieldByName('REGISTRO_MERCANTIL').AsString); + + if not FVerSello then + ReplaceBookmark('Sello', ''); + + Close; + end; + Result := True; +end; + +function TRptWordFacturaCliente.RellenarInforme : boolean; +var + numRows, numCols, mergesplit : OleVariant; + iRowCount : Integer; + TipoConAnterior : String; + Seleccion : TWordRange; + TotalCapitulo : Double; + EsCapitulo : Boolean; + ACantidad: String; + AIndice: Integer; + AText : String; +begin + Result := False; + iRowCount := 2; + numrows := 2; + numcols := 1; + mergeSplit := False; + TipoConAnterior := ''; + TotalCapitulo := 0; + EsCapitulo := False; + + with FDocumento.Document.Tables.Item(1), tbl_detalles do + begin + First; + while not tbl_detalles.EOF do + begin + if (TipoConAnterior = 'Concepto') and (FieldByName('TIPO_DETALLE').AsString = 'Titulo') then + begin + Rows.Item (iRowCount).Cells.Split (numRows, numCols, mergesplit); + if EsCapitulo then + begin + Rows.Item (iRowCount).Cells.Split (numRows, numCols, mergesplit); + Cell(iRowCount, 2).Range.Text := 'TOTAL DEL CAPTULO'; + Cell(iRowCount, 5).Range.Text := FormatFloat(DISPLAY_EUROS2, TotalCapitulo); + TotalCapitulo := 0; + Inc (iRowCount); + end; + Inc (iRowCount); + end; + Rows.Item (iRowCount).Cells.Split (numRows, numCols, mergesplit); + if FieldByName('TIPO_DETALLE').AsString = 'Titulo' then + begin + Cell(iRowCount, 2).Range.Text := FieldByName('CONCEPTO').AsString; + Rows.Item(iRowCount).Select; + Seleccion := FDocumento.AddRangeFromSelection; + Seleccion.Bold := True; + TotalCapitulo := 0; + EsCapitulo := True; + end + else begin + Cell(iRowCount, 1).Range.Text := FieldByName('REFERENCIA').AsString; + Cell(iRowCount, 2).Range.Text := FieldByName('CONCEPTO').AsString; + + ACantidad := FloatToStr(FieldByName('CANTIDAD').AsFloat); + if ACantidad = '0' then + AText := '' + else begin + AIndice := Pos(',', ACantidad); + if AIndice > 0 then + AText := FormatFloat('#,0.00', FieldByName('CANTIDAD').AsFloat) + else + AText := FormatFloat('#,0.##', FieldByName('CANTIDAD').AsFloat); + end; + + Cell(iRowCount, 3).Range.Text := AText + ' ' + FieldByName('UNIDAD_MEDIDA').AsString; + if FieldByName('IMPORTE_UNIDAD').AsFloat <> 0 then + Cell(iRowCount, 4).Range.Text := FormatFloat(DISPLAY_EUROS2, FieldByName('IMPORTE_UNIDAD').AsFloat); + + if FieldByName('IMPORTE_TOTAL').AsFloat <> 0 then + Cell(iRowCount, 5).Range.Text := FormatFloat(DISPLAY_EUROS2, FieldByName('IMPORTE_TOTAL').AsFloat); + + TotalCapitulo := TotalCapitulo + FieldByName('IMPORTE_TOTAL').AsFloat; + end; + TipoConAnterior := FieldByName('TIPO_DETALLE').AsString; + Next; + Inc (iRowCount); + end; + if EsCapitulo then + begin + Rows.Item (iRowCount).Cells.Split (numRows, numCols, mergesplit); + Cell(iRowCount, 2).Range.Text := 'TOTAL DEL CAPTULO'; + Cell(iRowCount, 5).Range.Text := FormatFloat(DISPLAY_EUROS2, TotalCapitulo); + TotalCapitulo := 0; + end; + Close; + end; + Result := True; +end; + +procedure TRptWordFacturaCliente._GenerarFactura(const AID: String); +var + ACopiaPlantilla : String; +begin + FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + try + tbl_Cabecera.ParamByName('ID').AsString := AID; + tbl_Detalles.ParamByName('ID_FACTURA').AsString := AID; + tbl_Vencimientos.ParamByName('ID_FACTURA').AsString := AID; + + tbl_Cabecera.Active := True; + tbl_Detalles.Active := True; + tbl_Vencimientos.Active := True; + + FPlantilla := DarRutaInformes + tbl_Cabecera.FieldByName('ID_EMPRESA').AsString + '\' + rptInforme; + + FCodigoFactura := AID; + + if RecuperarEmpresa(tbl_Cabecera.FieldByName('ID_EMPRESA').AsInteger, tbl_Empresa) then + begin + ACopiaPlantilla := DarFicheroTemporal; + CopiarFichero(FPlantilla, ACopiaPlantilla); + FPlantilla := ACopiaPlantilla; + try + Generar; + finally + SysUtils.DeleteFile(ACopiaPlantilla); + end; + end; + finally + FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + end; +end; + + +end. diff --git a/Source/Modulos/Facturas de cliente/Servidor/schFacturasCliente.daConnections b/Source/Modulos/Facturas de cliente/Servidor/schFacturasCliente.daConnections new file mode 100644 index 0000000..157d15b --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Servidor/schFacturasCliente.daConnections @@ -0,0 +1 @@ +IBX?Server=localhost;Database=D:\Proyectos\FactuGES (CNJ)\Codigo\BD\FACTUGES.FDB;UserID=sysdba;Password=masterkey;Dialect=3;Charset=ISO8859_1;TrueIBX010pbWaitTrue6001 diff --git a/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dcu b/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dcu new file mode 100644 index 0000000..1938ff7 Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm b/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm new file mode 100644 index 0000000..15d98fa --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm @@ -0,0 +1,1533 @@ +object srvFacturasCliente: TsrvFacturasCliente + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + ConnectionName = 'IBX' + ServiceSchema = schFacturasCliente + ServiceDataStreamer = Bin2DataStreamer + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + Height = 180 + Width = 386 + object schFacturasCliente: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Diagrams = Diagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + Name = 'IBX' + SQL = + 'select ANO from'#10'(select distinct(substr(FECHA_FACTURA, 1,4)) as ' + + 'ANO'#10'from facturas_cliente'#10'order by 1 desc)'#10#10'UNION ALL'#10#10'select di' + + 'stinct '#39'Todos'#39' as ANO'#10'from empresas'#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ANO' + TableField = 'ANO' + end> + end> + Name = 'ListaAnosFacturas' + Fields = < + item + Name = 'ANO' + DataType = datString + Size = 254 + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_FACTURAS_CLIENTE' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'TIPO' + TableField = 'TIPO' + end + item + DatasetField = 'ID_COMISION_LIQUIDADA' + TableField = 'ID_COMISION_LIQUIDADA' + end + item + DatasetField = 'FECHA_FACTURA' + TableField = 'FECHA_FACTURA' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'BASE_IMPONIBLE' + TableField = 'BASE_IMPONIBLE' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IMPORTE_DESCUENTO' + TableField = 'IMPORTE_DESCUENTO' + end + item + DatasetField = 'IVA' + TableField = 'IVA' + end + item + DatasetField = 'IMPORTE_IVA' + TableField = 'IMPORTE_IVA' + end + item + DatasetField = 'RE' + TableField = 'RE' + end + item + DatasetField = 'IMPORTE_RE' + TableField = 'IMPORTE_RE' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end + item + DatasetField = 'ID_FORMA_PAGO' + TableField = 'ID_FORMA_PAGO' + end + item + DatasetField = 'RECARGO_EQUIVALENCIA' + TableField = 'RECARGO_EQUIVALENCIA' + end + item + DatasetField = 'ID_TIPO_IVA' + TableField = 'ID_TIPO_IVA' + end + item + DatasetField = 'IMPORTE_NETO' + TableField = 'IMPORTE_NETO' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end + item + DatasetField = 'ID_AGENTE' + TableField = 'ID_AGENTE' + end + item + DatasetField = 'REFERENCIA_COMISION' + TableField = 'REFERENCIA_COMISION' + end + item + DatasetField = 'DATOS_BANCARIOS' + TableField = 'DATOS_BANCARIOS' + end + item + DatasetField = 'CLIENTE_FINAL' + TableField = 'CLIENTE_FINAL' + end + item + DatasetField = 'ID_DIRECCION' + TableField = 'ID_DIRECCION' + end + item + DatasetField = 'FECHA_VENCIMIENTO' + TableField = 'FECHA_VENCIMIENTO' + end + item + DatasetField = 'RETENCION' + TableField = 'RETENCION' + end + item + DatasetField = 'IMPORTE_RETENCION' + TableField = 'IMPORTE_RETENCION' + end + item + DatasetField = 'FECHA_RETENCION' + TableField = 'FECHA_RETENCION' + end> + end> + Name = 'FacturasCliente' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_FACTURAS_CLIENTE_ID' + ServerAutoRefresh = True + DictionaryEntry = 'FacturasCliente_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'FacturasCliente_ID_EMPRESA' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 20 + DictionaryEntry = 'FacturasCliente_REFERENCIA' + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + DictionaryEntry = 'FacturasCliente_TIPO' + end + item + Name = 'ID_COMISION_LIQUIDADA' + DataType = datInteger + DictionaryEntry = 'FacturasCliente_ID_COMISION_LIQUIDADA' + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + DictionaryEntry = 'FacturasCliente_FECHA_FACTURA' + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'FECHA_RETENCION' + DataType = datDateTime + end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasCliente_SITUACION' + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + DictionaryEntry = 'FacturasCliente_BASE_IMPONIBLE' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DictionaryEntry = 'FacturasCliente_DESCUENTO' + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + DictionaryEntry = 'FacturasCliente_IMPORTE_DESCUENTO' + end + item + Name = 'IVA' + DataType = datFloat + DictionaryEntry = 'FacturasCliente_IVA' + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + DictionaryEntry = 'FacturasCliente_IMPORTE_IVA' + end + item + Name = 'RE' + DataType = datFloat + DictionaryEntry = 'FacturasCliente_RE' + end + item + Name = 'IMPORTE_RE' + DataType = datCurrency + DictionaryEntry = 'FacturasCliente_IMPORTE_RE' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DictionaryEntry = 'FacturasCliente_IMPORTE_TOTAL' + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + DictionaryEntry = 'FacturasCliente_OBSERVACIONES' + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + DictionaryEntry = 'FacturasCliente_ID_CLIENTE' + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + DictionaryEntry = 'FacturasCliente_NIF_CIF' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 100 + DictionaryEntry = 'FacturasCliente_NOMBRE' + end + item + Name = 'ID_DIRECCION' + DataType = datInteger + end + item + Name = 'CALLE' + DataType = datString + Size = 150 + DictionaryEntry = 'FacturasCliente_CALLE' + end + item + Name = 'POBLACION' + DataType = datString + Size = 150 + DictionaryEntry = 'FacturasCliente_POBLACION' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 30 + DictionaryEntry = 'FacturasCliente_PROVINCIA' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DictionaryEntry = 'FacturasCliente_CODIGO_POSTAL' + end + item + Name = 'DATOS_BANCARIOS' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasCliente_DATOS_BANCARIOS' + end + item + Name = 'CLIENTE_FINAL' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasCliente_CLIENTE_FINAL' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'FacturasCliente_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'FacturasCliente_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 100 + DictionaryEntry = 'FacturasCliente_USUARIO' + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + DictionaryEntry = 'FacturasCliente_ID_FORMA_PAGO' + end + item + Name = 'RECARGO_EQUIVALENCIA' + DataType = datSmallInt + DictionaryEntry = 'FacturasCliente_RECARGO_EQUIVALENCIA' + end + item + Name = 'ID_TIPO_IVA' + DataType = datInteger + DictionaryEntry = 'FacturasCliente_ID_TIPO_IVA' + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + DictionaryEntry = 'FacturasCliente_IMPORTE_NETO' + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + DictionaryEntry = 'FacturasCliente_IMPORTE_PORTE' + end + item + Name = 'ID_AGENTE' + DataType = datInteger + DictionaryEntry = 'FacturasCliente_ID_AGENTE' + end + item + Name = 'REFERENCIA_COMISION' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasCliente_REFERENCIA_COMISION' + end + item + Name = 'RETENCION' + DataType = datFloat + end + item + Name = 'IMPORTE_RETENCION' + DataType = datCurrency + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'FACTURAS_CLIENTE_DETALLES' + SQL = + 'SELECT'#10' FACTURAS_CLIENTE_DETALLES.ID, FACTURAS_CLIENTE_DETALL' + + 'ES.ID_FACTURA,'#10' FACTURAS_CLIENTE_DETALLES.POSICION, FACTURAS_' + + 'CLIENTE_DETALLES.TIPO_DETALLE,'#10' FACTURAS_CLIENTE_DETALLES.CON' + + 'CEPTO, FACTURAS_CLIENTE_DETALLES.CANTIDAD,'#10' FACTURAS_CLIENTE_' + + 'DETALLES.UNIDAD_MEDIDA, FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD' + + ','#10' FACTURAS_CLIENTE_DETALLES.IMPORTE_TOTAL, FACTURAS_CLIENTE_' + + 'DETALLES.VISIBLE,'#10#10' FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, FA' + + 'CTURAS_CLIENTE_DETALLES.DESCUENTO,'#10' FACTURAS_CLIENTE_DETALLES' + + '.IMPORTE_PORTE, ARTICULOS.REFERENCIA,'#10' '#10' '#39#39' as REFERENCIA_' + + 'PROVEEDOR /*Es necesario porque los detalles es comun para la ra' + + 'ma del cliente como del proveedor*/'#10#10'FROM FACTURAS_CLIENTE_DETAL' + + 'LES'#10'LEFT JOIN ARTICULOS ON FACTURAS_CLIENTE_DETALLES.ID_ARTICULO' + + ' = ARTICULOS.ID'#10'where {where}'#10'ORDER BY POSICION;'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_FACTURA' + TableField = 'ID_FACTURA' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + end + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'IMPORTE_UNIDAD' + TableField = 'IMPORTE_UNIDAD' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'VISIBLE' + TableField = 'VISIBLE' + end + item + DatasetField = 'ID_ARTICULO' + TableField = 'ID_ARTICULO' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end + item + DatasetField = 'REFERENCIA' + TableField = '' + SQLOrigin = 'REFERENCIA' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = '' + SQLOrigin = 'REFERENCIA_PROVEEDOR' + end + item + DatasetField = 'UNIDAD_MEDIDA' + TableField = 'UNIDAD_MEDIDA' + end> + end> + Name = 'FacturasCliente_Detalles' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_FACTURA_CLIENTE_DETALLES_ID' + ServerAutoRefresh = True + DictionaryEntry = 'FacturasCliente_Detalles_ID' + InPrimaryKey = True + end + item + Name = 'ID_FACTURA' + DataType = datInteger + DictionaryEntry = 'FacturasCliente_Detalles_ID_FACTURA' + end + item + Name = 'POSICION' + DataType = datInteger + DictionaryEntry = 'FacturasCliente_Detalles_POSICION' + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + DictionaryEntry = 'FacturasCliente_Detalles_TIPO_DETALLE' + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + DictionaryEntry = 'FacturasCliente_Detalles_CONCEPTO' + end + item + Name = 'CANTIDAD' + DataType = datFloat + DictionaryEntry = 'FacturasCliente_Detalles_CANTIDAD' + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + DictionaryEntry = 'FacturasCliente_Detalles_IMPORTE_UNIDAD' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DictionaryEntry = 'FacturasCliente_Detalles_IMPORTE_TOTAL' + end + item + Name = 'VISIBLE' + DataType = datInteger + DictionaryEntry = 'FacturasCliente_Detalles_VISIBLE' + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + DictionaryEntry = 'FacturasCliente_Detalles_ID_ARTICULO' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DictionaryEntry = 'FacturasCliente_Detalles_DESCUENTO' + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + DictionaryEntry = 'FacturasCliente_Detalles_IMPORTE_PORTE' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasCliente_Detalles_REFERENCIA_PROVEEDOR' + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'ID_FACTURA' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + Name = 'IBX' + SQL = 'delete from recibos_cliente'#10'where id_factura = :ID_FACTURA'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_RecibosFactura' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'FACTURAS_CLIENTE' + SQL = 'DELETE '#10' FROM'#10' FACTURAS_CLIENTE'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_FacturasCliente' + end + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_FACTURA_CLIENTE_DETALLES_ID' + Value = '' + end + item + Name = 'CANTIDAD' + Value = '' + end + item + Name = 'UNIDAD_MEDIDA' + Value = '' + end + item + Name = 'POSICION' + Value = '' + end + item + Name = 'ID_FACTURA' + Value = '' + end + item + Name = 'TIPO_DETALLE' + Value = '' + end + item + Name = 'CONCEPTO' + Value = '' + end + item + Name = 'IMPORTE_UNIDAD' + Value = '' + end + item + Name = 'IMPORTE_TOTAL' + Value = '' + end + item + Name = 'VISIBLE' + Value = '' + end + item + Name = 'ID_ARTICULO' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'IMPORTE_PORTE' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'FACTURAS_CLIENTE_DETALLES' + SQL = + 'INSERT'#10' INTO FACTURAS_CLIENTE_DETALLES'#10' (ID, CANTIDAD, UNIDA' + + 'D_MEDIDA, POSICION, ID_FACTURA, TIPO_DETALLE, CONCEPTO,'#10' IMP' + + 'ORTE_UNIDAD, IMPORTE_TOTAL, VISIBLE,'#10' ID_ARTICULO, DESCUENTO' + + ', IMPORTE_PORTE)'#10' VALUES'#10' (:ID, :CANTIDAD, :UNIDAD_MEDIDA, :' + + 'POSICION, :ID_FACTURA, :TIPO_DETALLE, :CONCEPTO,'#10' :IMPORTE_U' + + 'NIDAD, :IMPORTE_TOTAL, :VISIBLE,'#10' :ID_ARTICULO, :DESCUENTO, ' + + ':IMPORTE_PORTE)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_FacturasCliente_Detalles' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'FACTURAS_CLIENTE_DETALLES' + SQL = + 'DELETE '#10' FROM'#10' FACTURAS_CLIENTE_DETALLES'#10' WHERE'#10' (ID = :' + + 'OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_FacturasCliente_Detalles' + end + item + Params = < + item + Name = 'CANTIDAD' + Value = '' + end + item + Name = 'UNIDAD_MEDIDA' + Value = '' + end + item + Name = 'POSICION' + Value = '' + end + item + Name = 'ID_FACTURA' + Value = '' + end + item + Name = 'TIPO_DETALLE' + Value = '' + end + item + Name = 'CONCEPTO' + Value = '' + end + item + Name = 'IMPORTE_UNIDAD' + Value = '' + end + item + Name = 'IMPORTE_TOTAL' + Value = '' + end + item + Name = 'VISIBLE' + Value = '' + end + item + Name = 'ID_ARTICULO' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'IMPORTE_PORTE' + Value = '' + end + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'FACTURAS_CLIENTE_DETALLES' + SQL = + 'UPDATE FACTURAS_CLIENTE_DETALLES'#10' SET '#10' CANTIDAD = :CANTIDAD' + + ', '#10' UNIDAD_MEDIDA = :UNIDAD_MEDIDA,'#10' POSICION = :POSICION,' + + ' '#10' ID_FACTURA = :ID_FACTURA, '#10' TIPO_DETALLE = :TIPO_DETALL' + + 'E, '#10' CONCEPTO = :CONCEPTO, '#10' IMPORTE_UNIDAD = :IMPORTE_UNI' + + 'DAD, '#10' IMPORTE_TOTAL = :IMPORTE_TOTAL,'#10' VISIBLE = :VISIBLE' + + ','#10' ID_ARTICULO = :ID_ARTICULO,'#10' DESCUENTO = :DESCUENTO,'#10' ' + + ' IMPORTE_PORTE = :IMPORTE_PORTE'#10' WHERE'#10' (ID = :OLD_ID)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_FacturasCliente_Detalles' + end + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_FACTURAS_CLIENTE_ID' + Value = '' + end + item + Name = 'ID_EMPRESA' + Value = '' + end + item + Name = 'REFERENCIA' + Value = '' + end + item + Name = 'FECHA_FACTURA' + Value = '' + end + item + Name = 'FECHA_VENCIMIENTO' + Value = '' + end + item + Name = 'FECHA_RETENCION' + Value = '' + end + item + Name = 'BASE_IMPONIBLE' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'IMPORTE_DESCUENTO' + Value = '' + end + item + Name = 'IVA' + Value = '' + end + item + Name = 'IMPORTE_IVA' + Value = '' + end + item + Name = 'RE' + Value = '' + end + item + Name = 'IMPORTE_RE' + Value = '' + end + item + Name = 'IMPORTE_TOTAL' + Value = '' + end + item + Name = 'OBSERVACIONES' + Value = '' + end + item + Name = 'ID_CLIENTE' + Value = '' + end + item + Name = 'NIF_CIF' + Value = '' + end + item + Name = 'NOMBRE' + Value = '' + end + item + Name = 'ID_DIRECCION' + Value = '' + end + item + Name = 'CALLE' + Value = '' + end + item + Name = 'POBLACION' + Value = '' + end + item + Name = 'PROVINCIA' + Value = '' + end + item + Name = 'CODIGO_POSTAL' + Value = '' + end + item + Name = 'FECHA_ALTA' + Value = '' + end + item + Name = 'FECHA_MODIFICACION' + Value = '' + end + item + Name = 'USUARIO' + Value = '' + end + item + Name = 'ID_FORMA_PAGO' + Value = '' + end + item + Name = 'RECARGO_EQUIVALENCIA' + Value = '' + end + item + Name = 'ID_TIPO_IVA' + Value = '' + end + item + Name = 'IMPORTE_NETO' + Value = '' + end + item + Name = 'IMPORTE_PORTE' + Value = '' + end + item + Name = 'DATOS_BANCARIOS' + Value = '' + end + item + Name = 'CLIENTE_FINAL' + Value = '' + end + item + Name = 'RETENCION' + Value = '' + end + item + Name = 'IMPORTE_RETENCION' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'FACTURAS_CLIENTE' + SQL = + 'INSERT INTO FACTURAS_CLIENTE ('#10' ID,'#10' ID_EMPRESA,'#10' REFER' + + 'ENCIA,'#10' FECHA_FACTURA,'#10' FECHA_VENCIMIENTO,'#10' FECHA_RETEN' + + 'CION,'#10' BASE_IMPONIBLE,'#10' DESCUENTO,'#10' IMPORTE_DESCUENTO,'#10 + + ' IVA,'#10' IMPORTE_IVA,'#10' RE,'#10' IMPORTE_RE,'#10' IMPORTE_TO' + + 'TAL,'#10' OBSERVACIONES,'#10' ID_CLIENTE,'#10' NIF_CIF,'#10' NOMBRE,' + + #10' ID_DIRECCION,'#10' CALLE,'#10' POBLACION,'#10' PROVINCIA,'#10' ' + + 'CODIGO_POSTAL,'#10' FECHA_ALTA,'#10' FECHA_MODIFICACION,'#10' USUAR' + + 'IO,'#10' ID_FORMA_PAGO,'#10' RECARGO_EQUIVALENCIA,'#10' ID_TIPO_IVA' + + ','#10' IMPORTE_NETO,'#10' IMPORTE_PORTE,'#10' DATOS_BANCARIOS,'#10' ' + + 'CLIENTE_FINAL,'#10' RETENCION,'#10' IMPORTE_RETENCION)'#10' VALUES ('#10 + + ' :ID,'#10' :ID_EMPRESA,'#10' :REFERENCIA,'#10' :FECHA_FACTURA,'#10' ' + + ' :FECHA_VENCIMIENTO,'#10' :FECHA_RETENCION,'#10' :BASE_IMPONIBLE' + + ','#10' :DESCUENTO,'#10' :IMPORTE_DESCUENTO,'#10' :IVA,'#10' :IMPORTE' + + '_IVA,'#10' :RE,'#10' :IMPORTE_RE,'#10' :IMPORTE_TOTAL,'#10' :OBSERVA' + + 'CIONES,'#10' :ID_CLIENTE,'#10' :NIF_CIF,'#10' :NOMBRE,'#10' :ID_DIRE' + + 'CCION,'#10' :CALLE,'#10' :POBLACION,'#10' :PROVINCIA,'#10' :CODIGO_P' + + 'OSTAL,'#10' :FECHA_ALTA,'#10' :FECHA_MODIFICACION,'#10' :USUARIO,'#10' ' + + ' :ID_FORMA_PAGO,'#10' :RECARGO_EQUIVALENCIA,'#10' :ID_TIPO_IVA,'#10 + + ' :IMPORTE_NETO,'#10' :IMPORTE_PORTE,'#10' :DATOS_BANCARIOS,'#10' ' + + ' :CLIENTE_FINAL,'#10' :RETENCION,'#10' :IMPORTE_RETENCION);'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_FacturasCliente' + end + item + Params = < + item + Name = 'ID_EMPRESA' + Value = '' + end + item + Name = 'REFERENCIA' + Value = '' + end + item + Name = 'FECHA_FACTURA' + Value = '' + end + item + Name = 'FECHA_VENCIMIENTO' + Value = '' + end + item + Name = 'FECHA_RETENCION' + Value = '' + end + item + Name = 'BASE_IMPONIBLE' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'IMPORTE_DESCUENTO' + Value = '' + end + item + Name = 'IVA' + Value = '' + end + item + Name = 'IMPORTE_IVA' + Value = '' + end + item + Name = 'RE' + Value = '' + end + item + Name = 'IMPORTE_RE' + Value = '' + end + item + Name = 'IMPORTE_TOTAL' + Value = '' + end + item + Name = 'OBSERVACIONES' + Value = '' + end + item + Name = 'ID_CLIENTE' + Value = '' + end + item + Name = 'NIF_CIF' + Value = '' + end + item + Name = 'NOMBRE' + Value = '' + end + item + Name = 'ID_DIRECCION' + Value = '' + end + item + Name = 'CALLE' + Value = '' + end + item + Name = 'POBLACION' + Value = '' + end + item + Name = 'PROVINCIA' + Value = '' + end + item + Name = 'CODIGO_POSTAL' + Value = '' + end + item + Name = 'FECHA_ALTA' + Value = '' + end + item + Name = 'FECHA_MODIFICACION' + Value = '' + end + item + Name = 'USUARIO' + Value = '' + end + item + Name = 'ID_FORMA_PAGO' + Value = '' + end + item + Name = 'RECARGO_EQUIVALENCIA' + Value = '' + end + item + Name = 'ID_TIPO_IVA' + Value = '' + end + item + Name = 'IMPORTE_NETO' + Value = '' + end + item + Name = 'IMPORTE_PORTE' + Value = '' + end + item + Name = 'DATOS_BANCARIOS' + Value = '' + end + item + Name = 'CLIENTE_FINAL' + Value = '' + end + item + Name = 'RETENCION' + Value = '' + end + item + Name = 'IMPORTE_RETENCION' + Value = '' + end + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'FACTURAS_CLIENTE' + SQL = + 'UPDATE FACTURAS_CLIENTE'#10' SET'#10' ID_EMPRESA = :ID_EMPRESA,'#10' ' + + 'REFERENCIA = :REFERENCIA,'#10' FECHA_FACTURA = :FECHA_FACTURA,'#10' ' + + ' FECHA_VENCIMIENTO = :FECHA_VENCIMIENTO,'#10' FECHA_RETENCION = ' + + ':FECHA_RETENCION,'#10' BASE_IMPONIBLE = :BASE_IMPONIBLE,'#10' DESC' + + 'UENTO = :DESCUENTO,'#10' IMPORTE_DESCUENTO = :IMPORTE_DESCUENTO,'#10 + + ' IVA = :IVA,'#10' IMPORTE_IVA = :IMPORTE_IVA,'#10' RE = :RE,'#10' ' + + ' IMPORTE_RE = :IMPORTE_RE,'#10' IMPORTE_TOTAL = :IMPORTE_TOTAL,'#10 + + ' OBSERVACIONES = :OBSERVACIONES,'#10' ID_CLIENTE = :ID_CLIENTE' + + ','#10' NIF_CIF = :NIF_CIF,'#10' NOMBRE = :NOMBRE,'#10' ID_DIRECCION' + + ' = :ID_DIRECCION,'#10' CALLE = :CALLE,'#10' POBLACION = :POBLACION' + + ','#10' PROVINCIA = :PROVINCIA,'#10' CODIGO_POSTAL = :CODIGO_POSTAL' + + ','#10' FECHA_ALTA = :FECHA_ALTA,'#10' FECHA_MODIFICACION = :FECHA_' + + 'MODIFICACION,'#10' USUARIO = :USUARIO,'#10' ID_FORMA_PAGO = :ID_FO' + + 'RMA_PAGO,'#10' RECARGO_EQUIVALENCIA = :RECARGO_EQUIVALENCIA,'#10' ' + + 'ID_TIPO_IVA = :ID_TIPO_IVA,'#10' IMPORTE_NETO = :IMPORTE_NETO,'#10' ' + + ' IMPORTE_PORTE = :IMPORTE_PORTE,'#10' DATOS_BANCARIOS = :DATOS_B' + + 'ANCARIOS,'#10' CLIENTE_FINAL = :CLIENTE_FINAL,'#10' RETENCION = :R' + + 'ETENCION,'#10' IMPORTE_RETENCION = :IMPORTE_RETENCION'#10' WHERE'#10' (' + + 'ID = :OLD_ID);'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_FacturasCliente' + end> + RelationShips = < + item + Name = 'FK_FacturasCliente_Detalles' + MasterDatasetName = 'FacturasCliente' + MasterFields = 'ID' + DetailDatasetName = 'FacturasCliente_Detalles' + DetailFields = 'ID_FACTURA' + RelationshipType = rtForeignKey + end> + UpdateRules = < + item + Name = 'Insert FacturasCliente' + DoUpdate = False + DoDelete = False + DatasetName = 'FacturasCliente' + FailureBehavior = fbRaiseException + end + item + Name = 'Insert DetallesFacturasCliente' + DoUpdate = False + DoDelete = False + DatasetName = 'FacturasCliente_Detalles' + FailureBehavior = fbRaiseException + end + item + Name = 'Update FacturasCliente' + DoInsert = False + DoDelete = False + DatasetName = 'FacturasCliente' + FailureBehavior = fbRaiseException + end + item + Name = 'Update DetallesFacturasCliente' + DoInsert = False + DoDelete = False + DatasetName = 'FacturasCliente_Detalles' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete DetallesFacturasCliente' + DoUpdate = False + DoInsert = False + DatasetName = 'FacturasCliente_Detalles' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete FacturasCliente' + DoUpdate = False + DoInsert = False + DatasetName = 'FacturasCliente' + FailureBehavior = fbRaiseException + end> + Version = 0 + Left = 48 + Top = 24 + end + object Diagrams: TDADiagrams + Left = 150 + Top = 74 + DiagramData = ''#13#10''#13#10 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'FacturasCliente_CLIENTE_FINAL' + DataType = datString + Size = 255 + DisplayLabel = 'Cliente final' + end + item + Name = 'FacturasCliente_ID' + DataType = datAutoInc + GeneratorName = 'GEN_FACTURAS_CLIENTE_ID' + Required = True + DisplayLabel = 'ID' + ServerAutoRefresh = True + end + item + Name = 'FacturasCliente_ID_EMPRESA' + DataType = datInteger + DisplayLabel = 'ID_EMPRESA' + end + item + Name = 'FacturasCliente_FECHA_FACTURA' + DataType = datDateTime + DisplayLabel = 'Fecha de las factura' + end + item + Name = 'FacturasCliente_VENCIMIENTO' + DataType = datInteger + DisplayLabel = 'Vencimiento' + end + item + Name = 'FacturasCliente_SITUACION' + DataType = datString + Size = 255 + DisplayLabel = 'Situaci'#243'n' + end + item + Name = 'FacturasCliente_BASE_IMPONIBLE' + DataType = datCurrency + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_DESCUENTO' + DataType = datCurrency + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_IVA' + DataType = datCurrency + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_FORMA_PAGO' + DataType = datMemo + DisplayLabel = 'Forma de pago' + end + item + Name = 'FacturasCliente_ID_CLIENTE' + DataType = datInteger + DisplayLabel = 'ID_CLIENTE' + end + item + Name = 'FacturasCliente_NIF_CIF' + DataType = datString + Size = 15 + DisplayLabel = 'NIF/CIF' + end + item + Name = 'FacturasCliente_CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#243'd. postal' + end + item + Name = 'FacturasCliente_FECHA_ALTA' + DataType = datDateTime + DisplayLabel = 'FECHA_ALTA' + end + item + Name = 'FacturasCliente_FECHA_MODIFICACION' + DataType = datDateTime + DisplayLabel = 'FECHA_MODIFICACION' + end + item + Name = 'FacturasCliente_OBSERVACIONES' + DataType = datMemo + DisplayLabel = 'Observaciones' + end + item + Name = 'FacturasCliente_NOMBRE' + DataType = datString + Size = 100 + DisplayLabel = 'Cliente' + end + item + Name = 'FacturasCliente_CALLE' + DataType = datString + Size = 150 + DisplayLabel = 'Direcci'#243'n' + end + item + Name = 'FacturasCliente_PROVINCIA' + DataType = datString + Size = 30 + DisplayLabel = 'Provincia' + end + item + Name = 'FacturasCliente_POBLACION' + DataType = datString + Size = 150 + DisplayLabel = 'Poblaci'#243'n' + end + item + Name = 'FacturasCliente_IVA' + DataType = datFloat + DisplayLabel = 'IVA' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_USUARIO' + DataType = datString + Size = 100 + DisplayLabel = 'USUARIO' + end + item + Name = 'FacturasCliente_DESCUENTO' + DataType = datFloat + DisplayLabel = 'Dto.' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_Detalles_ID' + DataType = datAutoInc + GeneratorName = 'GEN_FACTURA_CLIENTE_DETALLES_ID' + Required = True + DisplayLabel = 'ID' + ServerAutoRefresh = True + end + item + Name = 'FacturasCliente_Detalles_ID_FACTURA' + DataType = datInteger + DisplayLabel = 'ID_FACTURA' + end + item + Name = 'FacturasCliente_Detalles_TIPO_DETALLE' + DataType = datString + Size = 25 + DisplayLabel = 'Tipo detalle' + end + item + Name = 'FacturasCliente_Detalles_CONCEPTO' + DataType = datString + Size = 2000 + DisplayLabel = 'Concepto' + end + item + Name = 'FacturasCliente_Detalles_IMPORTE_UNIDAD' + DataType = datCurrency + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_Detalles_IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_Detalles_VISIBLE' + DataType = datInteger + DisplayLabel = #191'Visible?' + end + item + Name = 'FacturasCliente_Detalles_POSICION' + DataType = datInteger + DisplayLabel = 'Posici'#243'n' + end + item + Name = 'FacturasCliente_Detalles_CANTIDAD' + DataType = datFloat + DisplayLabel = 'Cantidad' + end + item + Name = 'FacturasCliente_FECHA_PAGADO' + DataType = datDateTime + DisplayLabel = 'Fecha de pago' + end + item + Name = 'FacturasCliente_FECHA_VENCIMIENTO' + DataType = datDateTime + DisplayLabel = 'Fecha de vencimiento' + ServerAutoRefresh = True + end + item + Name = 'FacturasCliente_RE' + DataType = datFloat + DisplayLabel = 'RE' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_RE' + DataType = datCurrency + DisplayLabel = 'Importe RE' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_REFERENCIA' + DataType = datString + Size = 20 + DisplayLabel = 'Referencia' + ServerAutoRefresh = True + end + item + Name = 'FacturasCliente_ID_FORMA_PAGO' + DataType = datInteger + end + item + Name = 'FacturasCliente_IMPORTE_NETO' + DataType = datCurrency + DisplayLabel = 'Importe neto' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_PORTE' + DataType = datCurrency + DisplayLabel = 'Importe del porte' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_RECARGO_EQUIVALENCIA' + DataType = datSmallInt + DisplayLabel = #191'Con R.E.?' + end + item + Name = 'FacturasCliente_TIPO' + DataType = datString + Size = 1 + DisplayLabel = 'Tipo' + end + item + Name = 'FacturasCliente_ID_TIPO_IVA' + DataType = datInteger + DisplayLabel = 'ID_TIPO_IVA' + end + item + Name = 'FacturasCliente_ID_COMISION_LIQUIDADA' + DataType = datInteger + DisplayLabel = 'ID_COMISION_LIQUIDADA' + end + item + Name = 'FacturasCliente_REFERENCIA_COMISION' + DataType = datString + Size = 255 + DisplayLabel = 'REFERENCIA_COMISION' + end + item + Name = 'FacturasCliente_ID_AGENTE' + DataType = datInteger + DisplayLabel = 'ID_AGENTE' + end + item + Name = 'FacturasCliente_Detalles_ID_ARTICULO' + DataType = datInteger + end + item + Name = 'FacturasCliente_Detalles_DESCUENTO' + DataType = datFloat + end + item + Name = 'FacturasCliente_Detalles_IMPORTE_PORTE' + DataType = datCurrency + end + item + Name = 'FacturasCliente_Detalles_REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'FacturasCliente_Detalles_REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + end + item + Name = 'FacturasCliente_DATOS_BANCARIOS' + DataType = datString + Size = 255 + DisplayLabel = 'Datos bancarios' + end> + Left = 150 + Top = 22 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 80 + end + object bpFacturasCliente: TDABusinessProcessor + Schema = schFacturasCliente + InsertCommandName = 'Insert_FacturasCliente' + DeleteCommandName = 'Delete_FacturasCliente' + UpdateCommandName = 'Update_FacturasCliente' + ReferencedDataset = 'FacturasCliente' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 248 + Top = 24 + end + object bpFacturasClienteDetalles: TDABusinessProcessor + Schema = schFacturasCliente + InsertCommandName = 'Insert_FacturasCliente_Detalles' + DeleteCommandName = 'Delete_FacturasCliente_Detalles' + UpdateCommandName = 'Update_FacturasCliente_Detalles' + ReferencedDataset = 'FacturasCliente_Detalles' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 248 + Top = 77 + end +end diff --git a/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.pas b/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.pas new file mode 100644 index 0000000..680db59 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.pas @@ -0,0 +1,135 @@ +unit srvFacturasCliente_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} uDABusinessProcessor, uDABin2DataStreamer, uDADataStreamer, + uDAScriptingProvider, uDAClasses, + FactuGES_Intf, uDAInterfaces; + +type + { TsrvFacturasCliente } + TsrvFacturasCliente = class(TDataAbstractService, IsrvFacturasCliente) + Diagrams: TDADiagrams; + Bin2DataStreamer: TDABin2DataStreamer; + bpFacturasCliente: TDABusinessProcessor; + bpFacturasClienteDetalles: TDABusinessProcessor; + schFacturasCliente: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; + const IncludeSchema: Boolean; const MaxRecords: Integer); + procedure DARemoteServiceCreate(Sender: TObject); + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; var aConnectionName: string); + private + protected + { IsrvFacturasCliente methods } + function GenerarInforme(const ListaID: TIntegerArray; const VerSello: Boolean = True; const VerCopia: Boolean = True): Binary; + function GenerarInformeEnWord(const ID: Integer; const VerSello: Boolean = True): Binary; + function GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerSello: Boolean = True): Binary; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, Dialogs, uSistemaFunc, uROClasses, + uDataModuleServer, uDatabaseUtils, uUsersManager, schFacturasClienteClient_Intf, + uRestriccionesUsuarioUtils, +// uRptFacturasCliente_Server, + uBizFacturasClienteServer, uRptWordFacturaCliente, uRptFacturasCliente_Server; + +procedure Create_srvFacturasCliente(out anInstance : IUnknown); +begin + anInstance := TsrvFacturasCliente.Create(NIL); +end; + +{ srvFacturasCliente } + +procedure TsrvFacturasCliente.DARemoteServiceBeforeGetDatasetData( + const Dataset: IDADataset; const IncludeSchema: Boolean; + const MaxRecords: Integer); +begin +{ + if DataSet.Name = nme_FacturasCliente then + begin + { Aqu se asegura que el usuario slo accede a facturas + de las empresas a las que tiene permiso para acceder + filtrando DataSet por ID_EMPRESA. } +{ FiltrarAccesoUsuario(Session, Connection, schFacturasCliente, DataSet, fld_FacturasClienteID_EMPRESA); + end; +} +end; + +procedure TsrvFacturasCliente.DARemoteServiceCreate(Sender: TObject); +begin + //SessionManager := dmServer.SessionManager; + bpFacturasCliente.BusinessRulesID := BIZ_SERVER_FACTURAS_CLIENTE; +end; + +procedure TsrvFacturasCliente.DataAbstractServiceBeforeAcquireConnection( + aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +function TsrvFacturasCliente.GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerSello: Boolean = True): Binary; +var + AReportGenerator : TRptFacturasCliente; +begin + AReportGenerator := TRptFacturasCliente.Create(nil); + try + Result := AReportGenerator.GenerarFacturaEnPDF(ListaID, VerSello); + finally + FreeAndNIL(AReportGenerator); + end; +end; + +function TsrvFacturasCliente.GenerarInforme(const ListaID: TIntegerArray; const VerSello: Boolean = True; const VerCopia: Boolean = True): Binary; +var + AReportGenerator : TRptFacturasCliente; +begin + AReportGenerator := TRptFacturasCliente.Create(nil); + try + Result := AReportGenerator.GenerarFactura(ListaID, VerSello, VerCopia); + finally + FreeAndNIL(AReportGenerator); + end; +end; + +function TsrvFacturasCliente.GenerarInformeEnWord(const ID: Integer; const VerSello: Boolean = True): Binary; +var + AReportGenerator : TRptWordFacturaCliente; + AFicheroTMP : TFileName; +begin + Result := NIL; + AFicheroTMP := DarFicheroTemporal; + AReportGenerator := TRptWordFacturaCliente.Create(nil); + try + if AReportGenerator.Exportar(IntToStr(ID), AFicheroTMP, VerSello) then + begin + Result := Binary.Create; + Result.LoadFromFile(AFicheroTMP); + SysUtils.DeleteFile(AFicheroTMP) + end; + finally + FreeAndNIL(AReportGenerator); + end; +end; + +initialization + TROClassFactory.Create('srvFacturasCliente', Create_srvFacturasCliente, TsrvFacturasCliente_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Facturas de cliente/Test/Presupuestos_Test.bdsproj b/Source/Modulos/Facturas de cliente/Test/Presupuestos_Test.bdsproj new file mode 100644 index 0000000..c5dacc4 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Test/Presupuestos_Test.bdsproj @@ -0,0 +1,496 @@ + + + + + + + + + + + + Presupuestos_Test.dpr + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + ..\..\..\Output\Cliente + .\ + + ..\..\Lib + ..\..\..\Lib;..\..\Lib + DataAbstract_D10;base;GUIBase;ClassRegistry;Empresas_controller;Presupuestos_model;presupuestos_data;presupuestos_controller;presupuestos_view;presupuestos_plugin + _CONSOLE_TESTRUNNER;EUREKALOG;EUREKALOG_VER5 + + True + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + Presupuestos_Test + + + + Presupuestos_Test + 1.0.0.0 + + + + + DUnit / Delphi Win32 + GUI + + + diff --git a/Source/Modulos/Facturas de cliente/Test/Presupuestos_Test.dpr b/Source/Modulos/Facturas de cliente/Test/Presupuestos_Test.dpr new file mode 100644 index 0000000..5b59687 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Test/Presupuestos_Test.dpr @@ -0,0 +1,40 @@ +program Presupuestos_Test; +{ + + Delphi DUnit Test Project + ------------------------- + This project contains the DUnit test framework and the GUI/Console test runners. + Add "CONSOLE_TESTRUNNER" to the conditional defines entry in the project options + to use the console test runner. Otherwise the GUI test runner will be used by + default. + +} + +{$IFDEF CONSOLE_TESTRUNNER} +{$APPTYPE CONSOLE} +{$ENDIF} + +uses + ExceptionLog, + Forms, + TestFramework, + GUITestRunner, + TextTestRunner, + uPresupuestosViewRegister, + uContactosViewRegister, + uPluginPresupuestos_Test in 'uPluginPresupuestos_Test.pas', + uHostMainForm in 'uHostMainForm.pas' {HostMainForm}, + uPresupuestosController_Test in 'uPresupuestosController_Test.pas', + uDataModulePresupuestos_Test in 'uDataModulePresupuestos_Test.pas'; + +{$R *.RES} + +begin + Application.Initialize; + Application.CreateForm(THostMainForm, HostMainForm); + uPresupuestosViewRegister.RegisterViews; + uContactosViewRegister.RegisterViews; + Application.Run; + Application.Terminate; +end. + diff --git a/Source/Modulos/Facturas de cliente/Test/Presupuestos_Test.res b/Source/Modulos/Facturas de cliente/Test/Presupuestos_Test.res new file mode 100644 index 0000000..37a3dbd Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Test/Presupuestos_Test.res differ diff --git a/Source/Modulos/Facturas de cliente/Test/uDataModulePresupuestos_Test.pas b/Source/Modulos/Facturas de cliente/Test/uDataModulePresupuestos_Test.pas new file mode 100644 index 0000000..b054a7c --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Test/uDataModulePresupuestos_Test.pas @@ -0,0 +1,98 @@ +unit uDataModulePresupuestos_Test; +{ + + Delphi DUnit Test Case + ---------------------- + This unit contains a skeleton test case class generated by the Test Case Wizard. + Modify the generated code to correctly setup and call the methods from the unit + being tested. + +} + +interface + +uses + TestFramework, uROBinMessage, uROServiceComponent, uDAClientDataModule, + uDACDSDataTable, uDADataTable, uBizDetallesPresupuesto, uBizPresupuestos, Classes, DB, + uDAScriptingProvider, SysUtils, uIDataModulePresupuestos, uROWinInetHttpChannel, + uROClient, uDABINAdapter, uRORemoteService, DBClient, uDataModulePresupuestos; +type + // Test methods for class TDataModulePresupuestos + + TestTDataModulePresupuestos = class(TTestCase) + strict private + FDataModulePresupuestos: TDataModulePresupuestos; + public + procedure SetUp; override; + procedure TearDown; override; + published + procedure TestDAClientDataModuleCreate; + procedure Test_CloneDataTable; + procedure TestGetDetalles; + procedure TestGetItems; + procedure TestGetNextID; + end; + +implementation + +procedure TestTDataModulePresupuestos.SetUp; +begin + FDataModulePresupuestos := TDataModulePresupuestos.Create(Nil); +end; + +procedure TestTDataModulePresupuestos.TearDown; +begin + FDataModulePresupuestos.Free; + FDataModulePresupuestos := nil; +end; + +procedure TestTDataModulePresupuestos.TestDAClientDataModuleCreate; +var + Sender: TObject; +begin + // TODO: Setup method call parameters + FDataModulePresupuestos.DAClientDataModuleCreate(Sender); + // TODO: Validate method results +end; + +procedure TestTDataModulePresupuestos.Test_CloneDataTable; +var + ReturnValue: TDACDSDataTable; + ADataTable: TDACDSDataTable; +begin + // TODO: Setup method call parameters + ReturnValue := FDataModulePresupuestos._CloneDataTable(ADataTable); + // TODO: Validate method results +end; + +procedure TestTDataModulePresupuestos.TestGetDetalles; +var + ReturnValue: IBizDetallesPresupuesto; +begin +// ReturnValue := FDataModulePresupuestos.GetDetalles; + // TODO: Validate method results +end; + +procedure TestTDataModulePresupuestos.TestGetItems; +var + ReturnValue: IBizPresupuesto; +begin + ReturnValue := FDataModulePresupuestos.GetItems; + // TODO: Validate method results +end; + +procedure TestTDataModulePresupuestos.TestGetNextID; +var + ReturnValue: Integer; + DataSetName: string; +begin + // TODO: Setup method call parameters + ReturnValue := FDataModulePresupuestos.GetNextID(DataSetName); + // TODO: Validate method results +end; + +initialization + // Register any test cases with the test runner + RegisterTest(TestTDataModulePresupuestos.Suite); +end. + diff --git a/Source/Modulos/Facturas de cliente/Test/uHostMainForm.dfm b/Source/Modulos/Facturas de cliente/Test/uHostMainForm.dfm new file mode 100644 index 0000000..1de986c --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Test/uHostMainForm.dfm @@ -0,0 +1,28 @@ +object HostMainForm: THostMainForm + Left = 0 + Top = 0 + Caption = 'HostMainForm' + ClientHeight = 598 + ClientWidth = 690 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnCloseQuery = FormCloseQuery + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 690 + Height = 598 + Align = alClient + BevelOuter = bvNone + TabOrder = 0 + end +end diff --git a/Source/Modulos/Facturas de cliente/Test/uHostMainForm.pas b/Source/Modulos/Facturas de cliente/Test/uHostMainForm.pas new file mode 100644 index 0000000..50f4b46 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Test/uHostMainForm.pas @@ -0,0 +1,116 @@ +unit uHostMainForm; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uGUIBase, ExtCtrls, uCustomEditor, cxControls; + +type + THostMainForm = class(TForm, IHostForm) + Panel1: TPanel; + procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); + procedure FormShow(Sender: TObject); + protected + FContenido : TCustomEditor; + function GetWorkPanel: TWinControl; + procedure OnWorkPanelChanged(AEditor : ICustomEditor); + procedure ShowEmbedded(AEditor : ICustomEditor); + procedure ReleaseEmbedded; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + property WorkPanel: TWinControl read GetWorkPanel; + end; + +var + HostMainForm: THostMainForm; + +implementation + +{$R *.dfm} + +uses + TestFramework, GUITestRunner, TextTestRunner; + + +{ TForm1 } + +constructor THostMainForm.Create(AOwner: TComponent); +begin + inherited; + FContenido := NIL; +end; + +destructor THostMainForm.Destroy; +begin + ReleaseEmbedded; + inherited; +end; + +procedure THostMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean); +begin + CanClose := True; + if Assigned(FContenido) then + CanClose := FContenido.CloseQuery; +end; + +procedure THostMainForm.FormShow(Sender: TObject); +begin + if IsConsole then + TextTestRunner.RunRegisteredTests + else + GUITestRunner.RunRegisteredTestsModeless; + Self.SendToBack; +end; + +function THostMainForm.GetWorkPanel: TWinControl; +begin + Result := Panel1; +end; + +procedure THostMainForm.OnWorkPanelChanged(AEditor: ICustomEditor); +begin + // +end; + +procedure THostMainForm.ReleaseEmbedded; +begin + if Assigned(FContenido) then + FContenido.Release; + Application.ProcessMessages; +end; + +procedure THostMainForm.ShowEmbedded(AEditor: ICustomEditor); +begin + if Assigned(FContenido) then + if not FContenido.CloseQuery then + begin + AEditor.Release; + AEditor := NIL; + Exit; + end; + + ShowHourglassCursor; + LockWindowUpdate(Handle); + try + FContenido := AEditor.GetInstance as TCustomEditor; + with (FContenido) do + begin + Visible := False; + BorderIcons := []; + BorderStyle := bsNone; + Parent := WorkPanel; + FContenido.Show; + Align := alClient; + FContenido.SetFocus; + end; + finally + Application.ProcessMessages; + LockWindowUpdate(0); + HideHourglassCursor; + end; + OnWorkPanelChanged(FContenido); +end; + +end. diff --git a/Source/Modulos/Facturas de cliente/Test/uPluginPresupuestos_Test.pas b/Source/Modulos/Facturas de cliente/Test/uPluginPresupuestos_Test.pas new file mode 100644 index 0000000..e8df46e --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Test/uPluginPresupuestos_Test.pas @@ -0,0 +1,56 @@ +unit uPluginPresupuestos_Test; +{ + + Delphi DUnit Test Case + ---------------------- + This unit contains a skeleton test case class generated by the Test Case Wizard. + Modify the generated code to correctly setup and call the methods from the unit + being tested. + +} + +interface + +uses + TestFramework, ActnList, uPluginPresupuestos, Classes, ImgList, uInterfaces, + uModuleController, uHostManager, PngImageList, Controls, Menus; +type + // Test methods for class TPluginPresupuestos + + TestTPluginPresupuestos = class(TTestCase) + strict private + FPluginPresupuestos: TPluginPresupuestos; + public + procedure SetUp; override; + procedure TearDown; override; + published + procedure TestactPresupuestosExecute; + end; + +implementation + +procedure TestTPluginPresupuestos.SetUp; +begin + FPluginPresupuestos := TPluginPresupuestos.Create(Nil); +end; + +procedure TestTPluginPresupuestos.TearDown; +begin + FPluginPresupuestos.Free; + FPluginPresupuestos := nil; +end; + +procedure TestTPluginPresupuestos.TestactPresupuestosExecute; +var + Sender: TObject; +begin + // TODO: Setup method call parameters +// FPluginPresupuestos.actPresupuestosExecute(Sender); + // TODO: Validate method results +end; + +initialization + // Register any test cases with the test runner + RegisterTest(TestTPluginPresupuestos.Suite); +end. + diff --git a/Source/Modulos/Facturas de cliente/Test/uPresupuestosController_Test.pas b/Source/Modulos/Facturas de cliente/Test/uPresupuestosController_Test.pas new file mode 100644 index 0000000..e5e483c --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Test/uPresupuestosController_Test.pas @@ -0,0 +1,85 @@ +unit uPresupuestosController_Test; +{ + + Delphi DUnit Test Case + ---------------------- + This unit contains a skeleton test case class generated by the Test Case Wizard. + Modify the generated code to correctly setup and call the methods from the unit + being tested. + +} + +interface + +uses + TestFramework, uBizPresupuestos, Classes, Contnrs, Windows, + Forms, SysUtils, Controls, uBizDetallesPresupuesto, uIDataModulePresupuestos, + uPresupuestosController; +type + // Test methods for class TPresupuestosController + + TestTPresupuestosController = class(TTestCase) + strict private + FPresupuestosController : IPresupuestosController; + public + procedure SetUp; override; + procedure TearDown; override; + published + procedure TestBuscarTodos; + procedure TestVerTodos; + procedure hola; + end; + +var + FPresupuestosController: IPresupuestosController; + +implementation + +uses dialogs; + + +procedure TestTPresupuestosController.hola; +begin + // +end; + +procedure TestTPresupuestosController.SetUp; +begin + FPresupuestosController := TPresupuestosController.Create; +end; + +procedure TestTPresupuestosController.TearDown; +begin + FPresupuestosController := Nil; +end; + +procedure TestTPresupuestosController.TestBuscarTodos; +var + ReturnValue: IBizPresupuesto; +begin + ReturnValue := FPresupuestosController.BuscarTodos; + + ReturnValue.DataTable.Open; + showmessage(IntToStr(ReturnValue.DataTable.RecordCount)); +end; + +procedure TestTPresupuestosController.TestVerTodos; +var + APresupuestos: IBizPresupuesto; +begin + APresupuestos := FPresupuestosController.BuscarTodos; + APresupuestos.DataTable.Open; + // TODO: Setup method call parameters + FPresupuestosController.VerTodos(APresupuestos); + // TODO: Validate method results +end; + +initialization + // Register any test cases with the test runner + RegisterTest(TestTPresupuestosController.Suite); + +finalization + + +end. + diff --git a/Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.bdsproj b/Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.bdsproj new file mode 100644 index 0000000..3845929 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + FacturasCliente_view.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.dcu b/Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.dcu new file mode 100644 index 0000000..f14a8f6 Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.dpk b/Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.dpk new file mode 100644 index 0000000..8b15070 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.dpk @@ -0,0 +1,55 @@ +package FacturasCliente_view; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + Base, + GUIBase, + ApplicationBase, + FacturasCliente_model, + FacturasCliente_controller, + Contactos_view, + Articulos_view, + AlbCli_FacCli_relation, + PreCli_FacCli_relation, + GestorInformes_controller, + rtl, + vcl; + +contains + uFacturasClienteViewRegister in 'uFacturasClienteViewRegister.pas', + uViewFacturasCliente in 'uViewFacturasCliente.pas' {frViewFacturasCliente: TFrame}, + uEditorFacturasCliente in 'uEditorFacturasCliente.pas' {fEditorFacturasCliente: TfEditorFacturasCliente}, + uViewFacturaCliente in 'uViewFacturaCliente.pas' {frViewFacturaCliente: TFrame}, + uEditorFacturaCliente in 'uEditorFacturaCliente.pas' {fEditorFacturaCliente: TfEditorFacturaCliente}, + uViewDetallesFacturaCliente in 'uViewDetallesFacturaCliente.pas' {frViewDetallesFacturaCliente: TFrame}, + uEditorFacturasClienteReport in 'uEditorFacturasClienteReport.pas' {fEditorFacturasClientePreview}, + uEditorElegirArticulosFacturaCliente in 'uEditorElegirArticulosFacturaCliente.pas' {fEditorElegirArticulosFacturaCliente: TForm}, + uViewElegirArticulosFacturasCliente in 'uViewElegirArticulosFacturasCliente.pas' {frViewElegirArticulosFacturasCliente: TFrame}, + uEditorElegirFacturasCliente in 'uEditorElegirFacturasCliente.pas' {fEditorElegirFacturasCliente: TfEditorElegirFacturasCliente}, + uViewDatosYSeleccionClienteFacturaCliente in 'uViewDatosYSeleccionClienteFacturaCliente.pas' {frViewDatosYSeleccionClienteFacturaCliente: TFrame}, + uDialogOpcionesImpresionFacturasCliente in 'uDialogOpcionesImpresionFacturasCliente.pas' {fDialogOpcionesImpresionFacturasCliente: TfEditorElegirFacturasCliente}; + +end. diff --git a/Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.dproj b/Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.dproj new file mode 100644 index 0000000..4cf71f8 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.dproj @@ -0,0 +1,592 @@ + + + + {9e558626-cf49-4cff-a178-e12c186758ac} + FacturasCliente_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\FacturasCliente_view.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0FacturasCliente_view.dpk + + + + + MainSource + + + + + + + + + + + + + + +
fDialogOpcionesImpresionFacturasCliente
+ TfEditorElegirFacturasCliente +
+ +
fEditorElegirArticulosFacturaCliente
+ TForm +
+ +
fEditorElegirFacturasCliente
+ TfEditorElegirFacturasCliente +
+ +
fEditorFacturaCliente
+ TfEditorFacturaCliente +
+ +
fEditorFacturasCliente
+ TfEditorFacturasCliente +
+ +
fEditorFacturasClientePreview
+
+ + +
frViewDatosYSeleccionClienteFacturaCliente
+ TFrame +
+ +
frViewDetallesFacturaCliente
+ TFrame +
+ +
frViewElegirArticulosFacturasCliente
+ TFrame +
+ +
frViewFacturaCliente
+ TFrame +
+ +
frViewFacturasCliente
+ TFrame +
+
+
+ diff --git a/Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.drc b/Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.drc new file mode 100644 index 0000000..8709554 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.drc @@ -0,0 +1,27 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Facturas de cliente\Views\uViewFacturasCliente.dfm */ +/* C:\Codigo\Source\Modulos\Facturas de cliente\Views\uDialogOpcionesImpresionFacturasCliente.dfm */ +/* C:\Codigo\Source\Modulos\Facturas de cliente\Views\uEditorFacturasCliente.dfm */ +/* C:\Codigo\Source\Modulos\Facturas de cliente\Views\uViewDatosYSeleccionClienteFacturaCliente.dfm */ +/* C:\Codigo\Source\Modulos\Facturas de cliente\Views\uViewFacturaCliente.dfm */ +/* C:\Codigo\Source\Modulos\Facturas de cliente\Views\uViewDetallesFacturaCliente.dfm */ +/* C:\Codigo\Source\Modulos\Facturas de cliente\Views\uEditorFacturaCliente.dfm */ +/* C:\Codigo\Source\Modulos\Facturas de cliente\Views\uEditorFacturasClienteReport.dfm */ +/* C:\Codigo\Source\Modulos\Facturas de cliente\Views\uViewElegirArticulosFacturasCliente.dfm */ +/* C:\Codigo\Source\Modulos\Facturas de cliente\Views\uEditorElegirArticulosFacturaCliente.dfm */ +/* C:\Codigo\Source\Modulos\Facturas de cliente\Views\uEditorElegirFacturasCliente.dfm */ +/* C:\Codigo\Source\Modulos\Facturas de cliente\Views\FacturasCliente_view.res */ +/* c:\temp\dtf1F9.tmp */ diff --git a/Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.rc b/Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.res b/Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.res differ diff --git a/Source/Modulos/Facturas de cliente/Views/uDialogOpcionesImpresionFacturasCliente.dcu b/Source/Modulos/Facturas de cliente/Views/uDialogOpcionesImpresionFacturasCliente.dcu new file mode 100644 index 0000000..474f17d Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Views/uDialogOpcionesImpresionFacturasCliente.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Views/uDialogOpcionesImpresionFacturasCliente.dfm b/Source/Modulos/Facturas de cliente/Views/uDialogOpcionesImpresionFacturasCliente.dfm new file mode 100644 index 0000000..9922c1f --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uDialogOpcionesImpresionFacturasCliente.dfm @@ -0,0 +1,87 @@ +inherited fDialogOpcionesImpresionFacturasCliente: TfDialogOpcionesImpresionFacturasCliente + Caption = 'Opciones para facturas de cliente' + ClientHeight = 240 + ClientWidth = 418 + ExplicitWidth = 424 + ExplicitHeight = 272 + PixelsPerInch = 96 + TextHeight = 13 + inherited Bevel2: TBevel + Width = 418 + ExplicitWidth = 418 + end + inherited Bevel3: TBevel + Top = 196 + Width = 418 + ExplicitTop = 196 + ExplicitWidth = 418 + end + inherited pnlBotones: TPanel + Top = 198 + Width = 418 + ExplicitTop = 198 + ExplicitWidth = 418 + inherited btnAceptar: TButton + Left = 254 + ExplicitLeft = 254 + end + inherited btnCancelar: TButton + Left = 333 + ExplicitLeft = 333 + end + end + inherited pnlHeader: TPanel + Width = 418 + ExplicitWidth = 418 + inherited lblInstruccion: TLabel + Width = 368 + Margins.Bottom = 10 + Caption = 'Indique las siguiente opciones para la factura de cliente:' + ExplicitWidth = 317 + end + inherited Label2: TLabel + Top = 31 + Width = 343 + Height = 25 + Visible = False + ExplicitTop = 31 + end + end + inherited pnlCuerpo: TPanel + Width = 418 + Height = 130 + ExplicitWidth = 418 + ExplicitHeight = 130 + object cbVerCopia: TCheckBox + AlignWithMargins = True + Left = 50 + Top = 51 + Width = 279 + Height = 17 + Caption = 'Indicar '#39'COPIA'#39' en la cabecera' + Checked = True + State = cbChecked + TabOrder = 0 + end + object cbVerSello: TCheckBox + AlignWithMargins = True + Left = 50 + Top = 28 + Width = 200 + Height = 17 + Caption = 'Mostrar sello de la empresa' + Checked = True + State = cbChecked + TabOrder = 1 + end + end + inherited ActionList1: TActionList + Top = 16 + inherited actAceptar: TAction + OnExecute = actAceptarExecute + end + inherited actCancelar: TAction + OnExecute = actCancelarExecute + end + end +end diff --git a/Source/Modulos/Facturas de cliente/Views/uDialogOpcionesImpresionFacturasCliente.pas b/Source/Modulos/Facturas de cliente/Views/uDialogOpcionesImpresionFacturasCliente.pas new file mode 100644 index 0000000..50b2c5f --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uDialogOpcionesImpresionFacturasCliente.pas @@ -0,0 +1,59 @@ +unit uDialogOpcionesImpresionFacturasCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uDialogBase, ActnList, StdCtrls, ExtCtrls; + +type + TfDialogOpcionesImpresionFacturasCliente = class(TfDialogBase) + cbVerSello: TCheckBox; + cbVerCopia: TCheckBox; + procedure actAceptarExecute(Sender: TObject); + procedure actCancelarExecute(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + + function ElegirOpcionesImpresionFacturaCliente(var AVerSello : Boolean; var AVerCopia : Boolean): Boolean; + +implementation + +{$R *.dfm} + +function ElegirOpcionesImpresionFacturaCliente(var AVerSello : Boolean; var AVerCopia : Boolean): Boolean; +var + AEditor : TfDialogOpcionesImpresionFacturasCliente; +begin + AEditor := TfDialogOpcionesImpresionFacturasCliente.Create(NIL); + try + AEditor.cbVerSello.Checked := AVerSello; + AEditor.cbVerCopia.Checked := AVerCopia; + + Result := (AEditor.ShowModal = mrOk); + if Result then + begin + AVerSello := AEditor.cbVerSello.Checked; + AVerCopia := AEditor.cbVerCopia.Checked; + end; + finally + AEditor.Release; + end; +end; + +procedure TfDialogOpcionesImpresionFacturasCliente.actAceptarExecute(Sender: TObject); +begin + inherited; + ModalResult := mrOk +end; + +procedure TfDialogOpcionesImpresionFacturasCliente.actCancelarExecute(Sender: TObject); +begin + inherited; + ModalResult := mrCancel; +end; + +end. diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorElegirArticulosFacturaCliente.dcu b/Source/Modulos/Facturas de cliente/Views/uEditorElegirArticulosFacturaCliente.dcu new file mode 100644 index 0000000..df46788 Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Views/uEditorElegirArticulosFacturaCliente.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorElegirArticulosFacturaCliente.dfm b/Source/Modulos/Facturas de cliente/Views/uEditorElegirArticulosFacturaCliente.dfm new file mode 100644 index 0000000..9e9e2de --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uEditorElegirArticulosFacturaCliente.dfm @@ -0,0 +1,7 @@ +inherited fEditorElegirArticulosFacturaCliente: TfEditorElegirArticulosFacturaCliente + Caption = 'fEditorElegirArticulosFacturaCliente' + ExplicitWidth = 320 + ExplicitHeight = 478 + PixelsPerInch = 96 + TextHeight = 13 +end diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorElegirArticulosFacturaCliente.pas b/Source/Modulos/Facturas de cliente/Views/uEditorElegirArticulosFacturaCliente.pas new file mode 100644 index 0000000..f99c801 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uEditorElegirArticulosFacturaCliente.pas @@ -0,0 +1,35 @@ +unit uEditorElegirArticulosFacturaCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorElegirArticulos, Menus, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, + StdActns, ActnList, uCustomView, uViewBase, uViewBarraSeleccion, ComCtrls, + JvExComCtrls, JvStatusBar, TBX, TB2ExtItems, TBXExtItems, TB2Item, TB2Dock, + TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, + uIEditorElegirArticulosFacturasCliente, uDAInterfaces, + uViewGridBase, uViewGrid, uViewArticulos, StdCtrls; + +type + TfEditorElegirArticulosFacturaCliente = class(TfEditorElegirArticulos, IEditorElegirArticulosFacturasCliente) + public + constructor Create(AOwner: TComponent); override; + end; + + +implementation +{$R *.dfm} + +uses uViewElegirArticulosFacturasCliente; + +{ TfEditorElegirArticulosFacturaCliente } + +constructor TfEditorElegirArticulosFacturaCliente.Create(AOwner: TComponent); +begin + inherited; + ViewGrid := CreateView(TfrViewElegirArticulosFacturasCliente) as IViewElegirArticulosFacturasCliente; +end; + +end. diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorElegirFacturasCliente.dcu b/Source/Modulos/Facturas de cliente/Views/uEditorElegirFacturasCliente.dcu new file mode 100644 index 0000000..1f58c1e Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Views/uEditorElegirFacturasCliente.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorElegirFacturasCliente.dfm b/Source/Modulos/Facturas de cliente/Views/uEditorElegirFacturasCliente.dfm new file mode 100644 index 0000000..a6981c8 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uEditorElegirFacturasCliente.dfm @@ -0,0 +1,357 @@ +inherited fEditorElegirFacturasCliente: TfEditorElegirFacturasCliente + Caption = 'Seleccionar facturas de cliente' + ClientWidth = 654 + ExplicitWidth = 662 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Top = 113 + Width = 654 + Caption = 'Lista de facturas de cliente para liquidar su comisi'#243'n' + Visible = False + ExplicitLeft = -8 + ExplicitTop = 169 + ExplicitWidth = 654 + inherited Image1: TImage + Left = 627 + ExplicitLeft = 629 + end + end + inherited TBXDock: TTBXDock + Top = 64 + Width = 654 + Height = 49 + ExplicitTop = 64 + ExplicitWidth = 654 + ExplicitHeight = 49 + inherited tbxMain: TTBXToolbar + Left = 97 + ExplicitLeft = 97 + ExplicitWidth = 371 + inherited TBXSubmenuItem2: TTBXSubmenuItem + Visible = False + end + inherited TBXItem5: TTBXItem + Visible = False + end + inherited TBXItem6: TTBXItem + Visible = False + end + inherited TBXItem36: TTBXItem + Action = actAnchoAuto2 + end + end + inherited tbxFiltro: TTBXToolbar + Top = 23 + DockRow = 1 + ExplicitTop = 23 + ExplicitWidth = 97 + inherited sepAno: TTBXSeparatorItem + Visible = False + end + inherited TBXLabelItem1: TTBXLabelItem + Visible = False + end + inherited tbxEditFiltro: TTBXEditItem + Visible = False + end + inherited TBXItem34: TTBXItem + Action = actQuitarFiltro2 + Visible = False + end + inherited TBXItem37: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 654 + end + inherited TBXTMain2: TTBXToolbar + Left = 468 + Top = 23 + DockPos = 462 + DockRow = 1 + ExplicitLeft = 468 + ExplicitTop = 23 + end + end + inherited StatusBar: TJvStatusBar + Width = 654 + ExplicitWidth = 654 + end + inline frViewBarraSeleccion1: TfrViewBarraSeleccion [3] + Left = 0 + Top = 611 + Width = 654 + Height = 36 + Align = alBottom + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 4 + ReadOnly = False + ExplicitTop = 611 + ExplicitWidth = 654 + ExplicitHeight = 36 + inherited JvFooter1: TJvFooter + Width = 654 + Height = 36 + ExplicitWidth = 654 + ExplicitHeight = 36 + inherited bSeleccionar: TJvFooterBtn + Left = 442 + Top = 3 + ExplicitLeft = 444 + ExplicitTop = 3 + end + inherited bCancelar: TJvFooterBtn + Left = 546 + Top = 4 + ExplicitLeft = 546 + ExplicitTop = 4 + end + end + inherited BarraSeleccionActionList: TActionList + inherited actSeleccionar: TAction + OnExecute = frViewBarraSeleccion1actSeleccionarExecute + OnUpdate = frViewBarraSeleccion1actSeleccionarUpdate + end + inherited actCancelar: TAction + OnExecute = frViewBarraSeleccion1actCancelarExecute + end + end + end + object pnlHeader: TPanel [4] + Left = 0 + Top = 0 + Width = 654 + Height = 64 + Align = alTop + BevelOuter = bvNone + Color = clWhite + Padding.Left = 25 + Padding.Top = 8 + Padding.Right = 25 + Padding.Bottom = 8 + ParentBackground = False + TabOrder = 5 + object lblTitle: TLabel + AlignWithMargins = True + Left = 25 + Top = 8 + Width = 604 + Height = 13 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 0 + Margins.Bottom = 8 + Align = alTop + Caption = + 'Seleccione las facturas de cliente, que desea liquidar su comisi' + + #243'n' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + ExplicitWidth = 365 + end + object lblComments: TLabel + AlignWithMargins = True + Left = 50 + Top = 29 + Width = 579 + Height = 24 + Margins.Left = 25 + Margins.Top = 0 + Margins.Right = 0 + Align = alClient + ExplicitWidth = 3 + ExplicitHeight = 13 + end + end + inherited frViewFacturasCliente1: TfrViewFacturasCliente [5] + Top = 140 + Width = 654 + Height = 471 + ExplicitTop = 163 + ExplicitWidth = 654 + ExplicitHeight = 448 + inherited cxGrid: TcxGrid + Width = 654 + Height = 343 + RootLevelOptions.DetailTabsPosition = dtpNone + ExplicitWidth = 654 + ExplicitHeight = 320 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Position = spFooter + Column = frViewFacturasCliente1.cxGridViewIMPORTE_IVA + end> + DataController.Summary.FooterSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = frViewFacturasCliente1.cxGridViewIMPORTE_IVA + end + item + Format = '0 facturas' + Kind = skCount + Column = frViewFacturasCliente1.cxGridViewTIPO + end> + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 654 + Visible = True + ExplicitWidth = 654 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 654 + inherited dxLayoutControl1: TdxLayoutControl + Width = 654 + ExplicitWidth = 654 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 273 + Width = 273 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 208 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 208 + ExplicitWidth = 416 + Width = 416 + end + inherited eLista: TcxComboBox + Left = 624 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 624 + ExplicitWidth = 20 + Width = 20 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 654 + ExplicitWidth = 654 + inherited tbxBotones: TTBXToolbar + Width = 644 + ExplicitWidth = 644 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 445 + ExplicitTop = 422 + ExplicitWidth = 654 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 654 + ExplicitWidth = 654 + inherited TBXToolbar1: TTBXToolbar + Width = 644 + ExplicitWidth = 644 + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + BuiltInReportLink = True + end + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewFacturasCliente1.cxGridView + HitTypes = [gvhtCell] + Index = 0 + end> + end + end + inherited EditorActionList: TActionList [8] + Left = 112 + Top = 192 + inherited actNuevo: TAction + Visible = False + end + inherited actEliminar: TAction + Visible = False + end + inherited actPrevisualizar: TAction + Visible = False + end + inherited actImprimir: TAction + Visible = False + end + inherited actDuplicar: TAction + Visible = False + end + end + inherited dsDataTable: TDADataSource + Left = 8 + Top = 192 + end + inherited JvFormStorage: TJvFormStorage [12] + end + inherited GridPopupMenu: TPopupMenu [13] + Left = 80 + Top = 192 + end + inherited JsNuevaFacturaDialog: TJSDialog [14] + end + inherited JsListaFacturasGeneradas: TJSDialog [15] + end + inherited JsPrevisualizarDialog: TJSDialog [16] + end + inherited JsImprimirDialog: TJSDialog [17] + end + inherited JsNuevoAbonoDialog: TJSDialog [18] + end + inherited JsListaFacturasNoEliminadas: TJSDialog [19] + end + object EditorSeleccionActionList: TActionList + Images = SmallImages + Left = 152 + Top = 192 + object actBuscar2: TAction + Category = 'Buscar' + Caption = 'Buscar' + ImageIndex = 10 + ShortCut = 114 + end + object actQuitarFiltro2: TAction + Category = 'Buscar' + Caption = 'Quitar filtro y ver todo' + ImageIndex = 19 + end + object actAnchoAuto2: TAction + Category = 'Ver' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 21 + OnExecute = actAnchoAuto2Execute + end + end +end diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorElegirFacturasCliente.pas b/Source/Modulos/Facturas de cliente/Views/uEditorElegirFacturasCliente.pas new file mode 100644 index 0000000..f4e0e56 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uEditorElegirFacturasCliente.pas @@ -0,0 +1,150 @@ +{ +=============================================================================== + Copyright (©) 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los términos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versión: + Versión actual: 1.0.0 + Fecha versión actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uEditorElegirFacturasCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, DB, uDADataTable, Menus, JvAppStorage, JvAppRegistryStorage, + JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns, + ActnList, uCustomView, uViewBase, uViewGridBase, uViewGrid, + JvExComCtrls, JvStatusBar, + ComCtrls, TB2ExtItems, TBXExtItems, TBX, + TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvComponent, + JvNavigationPane, uViewBarraSeleccion, StdCtrls, + + uViewFacturasCliente, uEditorFacturasCliente, uBizFacturasCliente, uIEditorElegirFacturasCliente, + Buttons, cxRadioGroup, cxMaskEdit, cxDropDownEdit, cxCalendar, cxControls, + cxContainer, cxEdit, cxTextEdit, TBXDkPanels, JSDialog, uDAInterfaces; + + +type + TfEditorElegirFacturasCliente = class(TfEditorFacturasCliente, IEditorElegirFacturasCliente) + frViewBarraSeleccion1: TfrViewBarraSeleccion; + lblTitle: TLabel; + lblComments: TLabel; + EditorSeleccionActionList: TActionList; + actBuscar2: TAction; + actQuitarFiltro2: TAction; + actAnchoAuto2: TAction; + pnlHeader: TPanel; + procedure frViewBarraSeleccion1actSeleccionarUpdate(Sender: TObject); + procedure frViewBarraSeleccion1actCancelarExecute(Sender: TObject); + procedure frViewBarraSeleccion1actSeleccionarExecute(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure actAnchoAuto2Execute(Sender: TObject); + protected + procedure SetMultiSelect (AValue : Boolean); + function GetMultiSelect : Boolean; + function GetFacturasClienteSeleccionados: IBizFacturaCliente; + procedure SetViewGrid(const Value: IViewGridBase); override; + procedure SetMensaje (const AValue: String); + function GetMensaje: String; + public + property Mensaje : String read GetMensaje write SetMensaje; + property FacturasClienteSeleccionados: IBizFacturaCliente read GetFacturasClienteSeleccionados; + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + end; + +implementation + +uses + uEditorGridBase, cxGridCustomTableView, uIntegerListUtils, uDBSelectionListUtils, + uGridStatusUtils, uDialogUtils, uEditorBase, uFacturasClienteController, uDateUtils; + +{$R *.dfm} + +{ TfEditorElegirFacturasCliente } + +procedure TfEditorElegirFacturasCliente.actAnchoAuto2Execute(Sender: TObject); +begin + inherited; + actAnchoAuto.Execute; +end; + +procedure TfEditorElegirFacturasCliente.FormShow(Sender: TObject); +begin + inherited; + EditorActionList.State := asSuspended; + + frViewFacturasCliente1.frViewFiltroBase1.edtFechaIniFiltro.EditValue := darFechaPrimerDia(now); + frViewFacturasCliente1.frViewFiltroBase1.edtFechaFinFiltro.EditValue := darFechaUltimoDia(now); +end; + +procedure TfEditorElegirFacturasCliente.frViewBarraSeleccion1actCancelarExecute( + Sender: TObject); +begin + inherited; + Close; +end; + +procedure TfEditorElegirFacturasCliente.frViewBarraSeleccion1actSeleccionarExecute( + Sender: TObject); +begin + inherited; + ModalResult := mrOk; +end; + +procedure TfEditorElegirFacturasCliente.frViewBarraSeleccion1actSeleccionarUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (ViewGrid._FocusedView.Controller.SelectedRowCount > 0) +end; + +function TfEditorElegirFacturasCliente.GetFacturasClienteSeleccionados: IBizFacturaCliente; +begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Facturas as ISeleccionable).SelectedRecords); + // En SelectedRecords tengo los ID de las filas seleccionadas del grid + Result := (Controller as IFacturasClienteController).ExtraerSeleccionados(Facturas) as IBizFacturaCliente; +end; + +function TfEditorElegirFacturasCliente.GetMensaje: String; +begin + Result := lblComments.Caption; +end; + +function TfEditorElegirFacturasCliente.GetMultiSelect: Boolean; +begin + Result := ViewGrid.MultiSelect; +end; + +procedure TfEditorElegirFacturasCliente.SetMensaje(const AValue: String); +begin + lblComments.Caption := AValue; +end; + +procedure TfEditorElegirFacturasCliente.SetMultiSelect(AValue: Boolean); +begin + ViewGrid.MultiSelect := AValue; +end; + +procedure TfEditorElegirFacturasCliente.SetViewGrid(const Value: IViewGridBase); +begin + inherited; + ViewGrid.OnDblClick := frViewBarraSeleccion1.actSeleccionar.OnExecute; +end; + +end. diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.dcu b/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.dcu new file mode 100644 index 0000000..53ec8ad Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.dfm b/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.dfm new file mode 100644 index 0000000..4894dea --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.dfm @@ -0,0 +1,1985 @@ +inherited fEditorFacturaCliente: TfEditorFacturaCliente + Left = 454 + Top = 208 + Caption = 'Nueva factura de cliente' + ClientHeight = 611 + ClientWidth = 823 + Position = poScreenCenter + OnClose = CustomEditorClose + ExplicitWidth = 831 + ExplicitHeight = 645 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 823 + Caption = 'Nueva factura de cliente' + ExplicitWidth = 812 + inherited Image1: TImage + Left = 796 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000001BE4944415478DA63FCFFFF3F + 032D0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80F83F980601 + EBC07C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3C275FB19E6 + 2DDD84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD97890B005D87C + 802E06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9E0FF3F6058 + 03F11FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F18E70860DBB + 4E106701CCDBA480075B431936EF3D459C05F8520E3600D2B3A8508F61EB81D3 + C45B802BA86096C3E4616AE7E7EB32EC387486763E989DA3CDB0E7E839DAF960 + 46A626C3FE131768E783A969EA0C874E5FC26F4184A729387792E3838929AA0C + C7CE5EC16F41A89B09387792E3839E042586D317AFE3B720C8D988C1ADFA0859 + 1674C62A309CBB7213BF057E8E060C5EB5C7F01A06B27CC1913F707E820D0BD8 + 82B62839868BD76FE3B7C0DB4E0F5EAEC0CA1850D9032BF393275FC1881F18BF + 394296E1CACD3BF82DF0B0D6C16938884E9B760D6BF0116D818BA5164EC34116 + 67CDB88133E888B2C0DE541D6CD8BFBF88621966E1BFFFFFB1061F322068818D + 912AB844A404E0B5A077CA428A0C8701980500619929EF09CFCE420000000049 + 454E44AE426082} + ExplicitLeft = 742 + end + inherited lblDesbloquear: TcxLabel + Left = 698 + ExplicitLeft = 687 + AnchorX = 743 + AnchorY = 14 + end + end + inherited TBXDock: TTBXDock + Width = 823 + ExplicitWidth = 812 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 613 + inherited TBXItem2: TTBXItem + Visible = False + end + inherited TBXSeparatorItem1: TTBXSeparatorItem + Visible = False + end + inherited TBXItem5: TTBXItem + Visible = False + end + object TBXSeparatorItem6: TTBXSeparatorItem [11] + end + object TBXItem7: TTBXItem [12] + Action = actEnviarEMail + DisplayMode = nbdmImageAndText + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 823 + inherited TBXSubmenuItem4: TTBXSubmenuItem + inherited TBXItem8: TTBXItem + Visible = False + end + inherited TBXSeparatorItem5: TTBXSeparatorItem + Visible = False + end + inherited TBXItem10: TTBXItem + Visible = False + end + end + object TBXSubmenuItem2: TTBXSubmenuItem [4] + Caption = 'A&cciones' + object TBXItem33: TTBXItem + Action = actEnviarEMail + end + end + end + end + inherited pgPaginas: TPageControl + Width = 817 + Height = 315 + OnChanging = pgPaginasChanging + ExplicitWidth = 806 + ExplicitHeight = 312 + inherited pagGeneral: TTabSheet + ExplicitLeft = 4 + ExplicitTop = 24 + ExplicitWidth = 798 + ExplicitHeight = 284 + inline frViewFacturaCliente1: TfrViewFacturaCliente + Left = 0 + Top = 0 + Width = 809 + Height = 287 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 798 + ExplicitHeight = 284 + inherited dxLayoutControl1: TdxLayoutControl + Width = 809 + Height = 287 + ExplicitWidth = 798 + ExplicitHeight = 284 + DesignSize = ( + 809 + 287) + inherited Label1: TLabel + Left = 383 + Width = 311 + ExplicitLeft = 383 + ExplicitWidth = 311 + end + inherited eReferencia: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 249 + Width = 249 + end + inherited edtFecha: TcxDBDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 249 + Width = 249 + end + inherited memObservaciones: TcxDBMemo + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 351 + ExplicitHeight = 136 + Height = 136 + Width = 351 + end + inherited cbFormaPago: TcxDBLookupComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 111 + Width = 111 + end + inherited bFormasPago: TButton + Left = 201 + ExplicitLeft = 201 + end + inherited cbCuentaBancaria: TcxDBComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 249 + Width = 249 + end + inherited cbClienteFinal: TcxDBTextEdit + Left = 383 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 383 + ExplicitWidth = 339 + Width = 339 + end + inherited bElegirClienteFinal: TButton + Left = 736 + ExplicitLeft = 736 + end + inherited frViewDatosYSeleccionClienteFacturaCliente1: TfrViewDatosYSeleccionClienteFacturaCliente + Left = 372 + Width = 505 + ExplicitLeft = 372 + ExplicitWidth = 505 + inherited dxLayoutControl1: TdxLayoutControl + Width = 505 + inherited edtlNombre: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 224 + Width = 224 + end + inherited edtNIFCIF: TcxDBTextEdit + Left = 285 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 285 + end + inherited Button3: TBitBtn + Left = 196 + ExplicitLeft = 196 + end + inherited edtDireccion: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 121 + Width = 121 + end + inherited Button4: TButton + Left = 365 + ExplicitLeft = 365 + end + end + end + inherited edtFechaVemcimiento: TcxDBDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 275 + Width = 275 + end + end + end + end + object pagContenido: TTabSheet + Caption = 'Contenido' + ImageIndex = 1 + ExplicitWidth = 798 + ExplicitHeight = 284 + inline frViewDetallesFacturaCliente1: TfrViewDetallesFacturaCliente + Left = 0 + Top = 0 + Width = 809 + Height = 287 + Align = alClient + BiDiMode = bdLeftToRight + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentBiDiMode = False + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 798 + ExplicitHeight = 284 + inherited ToolBar1: TToolBar + Width = 809 + Height = 78 + ExplicitWidth = 809 + ExplicitHeight = 78 + inherited ToolButton3: TToolButton + Wrap = False + end + inherited ToolButton4: TToolButton + Left = 278 + Top = 0 + ExplicitLeft = 278 + ExplicitTop = 0 + end + inherited ToolButton14: TToolButton + Left = 334 + Top = 0 + Wrap = False + ExplicitLeft = 334 + ExplicitTop = 0 + end + inherited FontName: TJvFontComboBox + Left = 399 + Top = 0 + ExplicitLeft = 399 + ExplicitTop = 0 + end + inherited ToolButton13: TToolButton [6] + Left = 0 + Top = 0 + Wrap = True + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitHeight = 27 + end + inherited FontSize: TEdit [7] + Left = 0 + Top = 27 + Width = 264 + ExplicitLeft = 0 + ExplicitTop = 27 + ExplicitWidth = 264 + end + inherited UpDown1: TUpDown [8] + Left = 264 + Top = 27 + ExplicitLeft = 264 + ExplicitTop = 27 + end + inherited ToolButton6: TToolButton + Left = 281 + Top = 27 + ExplicitLeft = 281 + ExplicitTop = 27 + end + inherited ToolButton7: TToolButton + Left = 347 + Top = 27 + ExplicitLeft = 347 + ExplicitTop = 27 + end + inherited ToolButton8: TToolButton + Left = 414 + Top = 27 + ExplicitLeft = 414 + ExplicitTop = 27 + end + inherited ToolButton12: TToolButton + Left = 0 + Top = 27 + Wrap = True + ExplicitLeft = 0 + ExplicitTop = 27 + ExplicitHeight = 27 + end + inherited ToolButton9: TToolButton + Left = 0 + Top = 54 + ExplicitLeft = 0 + ExplicitTop = 54 + end + inherited ToolButton10: TToolButton + Left = 145 + Top = 54 + ExplicitLeft = 145 + ExplicitTop = 54 + end + inherited ToolButton11: TToolButton + Left = 270 + Top = 54 + ExplicitLeft = 270 + ExplicitTop = 54 + end + end + inherited cxGrid: TcxGrid + Top = 104 + Width = 809 + Height = 183 + ExplicitTop = 104 + ExplicitWidth = 809 + ExplicitHeight = 183 + end + inherited TBXDock1: TTBXDock + Top = 78 + Width = 809 + ExplicitTop = 78 + ExplicitWidth = 809 + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 809 + end + end + inherited cxGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewDetallesFacturaCliente1.cxGridView + HitTypes = [gvhtNone, gvhtCell, gvhtRecord, gvhtRowIndicator] + Index = 0 + PopupMenu = frViewDetallesFacturaCliente1.GridGeneralPopupMenu + end> + end + end + end + end + inherited StatusBar: TJvStatusBar + Top = 592 + Width = 823 + Panels = < + item + Width = 200 + end> + ExplicitTop = 589 + ExplicitWidth = 812 + end + inline frViewTotales1: TfrViewTotales [4] + Left = 0 + Top = 397 + Width = 823 + Height = 195 + Align = alBottom + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 4 + ReadOnly = False + ExplicitTop = 394 + ExplicitWidth = 812 + ExplicitHeight = 195 + inherited dxLayoutControl1: TdxLayoutControl + Width = 823 + Height = 195 + LookAndFeel = frViewFacturaCliente1.dxLayoutOfficeLookAndFeel1 + ExplicitWidth = 812 + ExplicitHeight = 195 + inherited Bevel3: TBevel + Left = 411 + Top = 30 + Height = 122 + ExplicitLeft = 411 + ExplicitTop = 30 + ExplicitHeight = 122 + end + inherited Bevel4: TBevel + Left = 523 + Top = 60 + Width = 192 + ExplicitLeft = 523 + ExplicitTop = 60 + ExplicitWidth = 192 + end + inherited Bevel1: TBevel + Left = 523 + Top = 164 + Width = 368 + ExplicitLeft = 523 + ExplicitTop = 164 + ExplicitWidth = 368 + end + inherited Bevel2: TBevel + Top = 190 + Width = 368 + ExplicitTop = 190 + ExplicitWidth = 368 + end + inherited ImporteDto: TcxDBCurrencyEdit + Top = 57 + Enabled = False + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 57 + ExplicitWidth = 184 + Width = 184 + end + inherited ImporteIVA: TcxDBCurrencyEdit + Left = 594 + Top = 83 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 594 + ExplicitTop = 83 + ExplicitWidth = 249 + Width = 249 + end + inherited ImporteTotal: TcxDBCurrencyEdit + Left = 524 + Top = 137 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 524 + ExplicitTop = 137 + ExplicitWidth = 319 + Width = 319 + end + inherited edtDescuento: TcxDBSpinEdit + Top = 57 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 57 + end + inherited edtIVA: TcxDBSpinEdit + Left = 523 + Top = 83 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 523 + ExplicitTop = 83 + end + inherited ImporteBase: TcxDBCurrencyEdit + Left = 523 + Top = 30 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 523 + ExplicitTop = 30 + ExplicitWidth = 320 + Width = 320 + end + inherited edtRE: TcxDBSpinEdit + Left = 523 + Top = 110 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 523 + ExplicitTop = 110 + end + inherited ImporteRE: TcxDBCurrencyEdit + Left = 594 + Top = 110 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 594 + ExplicitTop = 110 + ExplicitWidth = 249 + Width = 249 + end + inherited eImporteNeto: TcxDBCurrencyEdit + Top = 30 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 30 + ExplicitWidth = 255 + Width = 255 + end + inherited ePorte: TcxDBCurrencyEdit + Top = 84 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 84 + ExplicitWidth = 255 + Width = 255 + end + inherited eIVA: TcxDBLookupComboBox + Top = 111 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 111 + ExplicitWidth = 117 + Width = 117 + end + inherited bTiposIVA: TButton + Left = 263 + Top = 111 + ExplicitLeft = 263 + ExplicitTop = 111 + end + inherited cbRecargoEquivalencia: TcxDBCheckBox + Top = 138 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 138 + ExplicitWidth = 255 + Width = 255 + end + inherited edtRetencion: TcxDBSpinEdit + Left = 523 + Top = 184 + DataBinding.DataField = 'RETENCION' + Properties.AssignedValues.MinValue = True + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 523 + ExplicitTop = 184 + end + inherited edtImporteRetencion: TcxDBCurrencyEdit + Left = 594 + Top = 184 + DataBinding.DataField = 'IMPORTE_RETENCION' + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 594 + ExplicitTop = 184 + ExplicitWidth = 152 + Width = 152 + end + inherited edtFechaRetencion: TcxDBDateEdit + Top = 210 + DataBinding.DataField = 'FECHA_RETENCION' + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 210 + ExplicitWidth = 150 + Width = 150 + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Group1: TdxLayoutGroup + inherited dxLayoutControl1Group2: TdxLayoutGroup + inherited dxLayoutControl1Group7: TdxLayoutGroup + inherited dxLayoutControl1Item9: TdxLayoutItem + Visible = False + end + end + inherited dxLayoutControl1Item16: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Item21: TdxLayoutItem + Visible = True + end + end + inherited dxLayoutControl1Group5: TdxLayoutGroup + inherited dxLayoutControl1Group3: TdxLayoutGroup + inherited dxLayoutControl1Item14: TdxLayoutItem + Offsets.Bottom = 3 + Offsets.Top = 3 + end + inherited dxLayoutControl1Group8: TdxLayoutGroup + Visible = False + inherited dxLayoutControl1Item7: TdxLayoutItem + Visible = True + end + end + inherited dxLayoutControl1Group11: TdxLayoutGroup + Visible = True + end + end + end + end + end + end + end + inherited EditorActionList: TActionList [5] + Left = 8 + Top = 144 + object actEnviarEMail: TAction + Category = 'Acciones' + Caption = 'Enviar por e-mail...' + ImageIndex = 21 + OnExecute = actEnviarEMailExecute + OnUpdate = actEnviarEMailUpdate + end + end + inherited SmallImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001964944415478DA + 63FCFFFF3F03232323033A58BCE9F87F647EAC9F258622B05E6C068034873B8A + 80D92019C62F8F194C1356339CDF399D91A0014B361FFB1FE6208AA299E1F323 + 306D52F90CC5100C03566E3DFC3FD04E02A2F9F727064690462066006A66FC02 + 64FFFAC8603451096E088A01CB361FFDFF8F819981183077D11A86FDAB7B18E1 + 062CDD7CE27F14573FC3B2EF450CD13E86181ABE7DFFCDF0F5DB6F866FDFFE30 + 1CB97897218AB38FC1B85B98E1DC8E698C600396000D8861696058FAB7116CC0 + 94C5FBB0DAEC6CAECF70EED6238668E67AB057500CF8F0E10383A0A0208A0B90 + 6D06B1BF01D9379E3C67387AFE09C389A37BD15CE06B01B47907434EAC13C3EF + 3F7F19662E3F8862BB898606C3EFDFFF1896EF3DCFA0A5C0CD306FE9265403FC + 9D20362F5CB71F4CE7C47AA01890D5BC164C7716F980D56018606BAC0656B079 + EF2986F82047AC6150DEB785A13CD911AC06C300234D05867DC72F30B8D818E1 + 8DC2494B0E63F702281075D455884A07576EDEC134404A5480E1DAED07441900 + 021806F44D5D44B46618801B400900007F4518F05E90AAF20000000049454E44 + AE426082} + Name = 'PngImage21' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList [7] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002434944415478DA + B593DB6B13411C85CFA8AF0A11C5BED882977AA11A8A86A64AB5DA68ABB4DA17 + 9B071B94824F5510FF9022D8B4A2226AEA5DA434822951BC556D55225544E905 + A448895048369562B6D9ACFB1BC9CA38BBEB46D203CB4C7667BEEF4CD865BAAE + 6321C348C018B35D101978EDD82074A8D67633673B09081EDCB3426CA42A40D6 + B88C91E6BE536FF07EB097152D7003879A416FA21297AF0F584A6C056EE1BF47 + 053D63014B89A540826B3F0D5086C30B406859735E18C3D31D924412B8827368 + 4680334348E99E392D480401C19DDE26B75114059722FD5C620AFAA2C3FAFED9 + E3882FBB8AA3CD358E80F9790D2ABF727F8D1A129FBF625FE618EE6867F94912 + B11E662BE88EC45CB76ED8518DAC9AC3A7C96FF682743A0D8FC7637B02A7E604 + CF1ABF27A692285FBE1213E33F70EEE67951D0DEE247B86F109DED8D459FC0E7 + DD04D5904C2567904AA5103C5C8FC6B633A2A0ADC9C7175FB81547CBAE1A5454 + 7890CFEBBCE1F7E4AC25383537C79B131C2AC3E8E4184E869A7839E92F6ADD5B + 6D6EBC72FF0997AC2A5BCAE1D1E7239602EFDA4A684BF2589C5BC4E12782017E + FFE2ED47B2E060DD1661F38DE80B2E2138B5B20A352509C143ADBBCDFB91FE67 + B220E0DF2C01EEC55E99ADEC426D8F1CD829DCBBFBF0A52CA8DBB64158147D3C + 22B4720A356E6EF8F3F63D30F64A025FD51A73417C2821B5FA57A875BDDFCBE7 + 4F87476541D5FAD5FCE1D0DB8F429B6242CDB76FDD88771FBEC88275E565FC41 + A1C5FF86DA532CBF64B297228E272855244157F85AC9E085988285CC2F0A951A + EF05170AF90000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [8] + end + inherited dsDataTable: TDADataSource [10] + end +end diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.pas b/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.pas new file mode 100644 index 0000000..999bf9f --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.pas @@ -0,0 +1,498 @@ +unit uEditorFacturaCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorDBItem, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, + TB2Toolbar, ExtCtrls, JvExControls, JvNavigationPane, + uViewFacturaCliente, uCustomView, uViewBase, uViewTotales, + StdCtrls, pngimage, AppEvnts, JvComponentBase, + uBizFacturasCliente, uBizTiposIVA, + + + uIEditorFacturaCliente, uFacturasClienteController, uViewDetallesBase, + uViewDetallesFacturaCliente, dxLayoutLookAndFeels, JvExComCtrls, JvStatusBar, + uViewDetallesDTO, uViewDetallesArticulos, uTiposIVAController, uDAInterfaces, + cxControls, cxContainer, cxEdit, cxTextEdit, cxDBEdit, Grids, DBGrids, + uViewDetallesArticulosParaVenta, cxLabel; + + +type + TfEditorFacturaCliente = class(TfEditorDBItem, IEditorFacturaCliente) + frViewFacturaCliente1: TfrViewFacturaCliente; + frViewTotales1: TfrViewTotales; + frViewDetallesFacturaCliente1: TfrViewDetallesFacturaCliente; + actEnviarEMail: TAction; + TBXSeparatorItem6: TTBXSeparatorItem; + TBXItem7: TTBXItem; + TBXSubmenuItem2: TTBXSubmenuItem; + TBXItem33: TTBXItem; + procedure FormShow(Sender: TObject); + procedure frViewClienteFactura1edtlNombrePropertiesEditValueChanged(Sender: TObject); + procedure dsDataTableDataChange(Sender: TObject; Field: TField); + procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); + procedure frViewClienteFacturaedtlNombrePropertiesChange(Sender: TObject); + procedure pgPaginasChanging(Sender: TObject; var AllowChange: Boolean); +// procedure frViewTotales1edtDescuentoPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure frViewTotales1bTiposIVAClick(Sender: TObject); +// procedure frViewTotales1eIVAPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); +// procedure frViewTotales1cbRecargoEquivalenciaPropertiesEditValueChanged(Sender: TObject); +// procedure frViewTotales1ePortePropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure frViewTotales1ePorteEditing(Sender: TObject; var CanEdit: Boolean); + procedure actEnviarEMailExecute(Sender: TObject); + procedure actEnviarEMailUpdate(Sender: TObject); + + private + procedure RecalcularPortePorUnidad; + + protected + FController : IFacturasClienteController; + FFactura: IBizFacturaCliente; + FTiposIVAController : ITiposIVAController; + FTiposIVA: IBizTipoIVA; + FViewFactura: IViewFacturaCliente; + function GetController : IFacturasClienteController; + procedure SetController (const Value : IFacturasClienteController); + function GetFactura: IBizFacturaCliente; + procedure SetFactura(const Value: IBizFacturaCliente); + + function GetViewFactura: IViewFacturaCliente; + procedure SetViewFactura(const Value: IViewFacturaCliente); + + property ViewFacturaCliente: IViewFacturaCliente read GetViewFactura write SetViewFactura; + + procedure OnClienteChanged(Sender: TObject); + + procedure GuardarInterno; override; + procedure EliminarInterno; override; + procedure ImprimirInterno; override; + procedure PrevisualizarInterno; override; + + procedure PonerTitulos(const ATitulo: string = ''); override; + function PuedoImprimir: Boolean; override; + function PuedoEnviar: Boolean; virtual; + + public + destructor Destroy; override; + property Controller : IFacturasClienteController read GetController write SetController; + property Factura: IBizFacturaCliente read GetFactura write SetFactura; + constructor Create(AOwner: TComponent); override; + procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); override; //Importante en este punto se deben de quitar los eventos que puedan afectar a la tabla una vez se cierre el editor. + end; + +implementation +{$R *.dfm} + +uses + uBizContactos, uDataModuleUsuarios, uFactuGES_App, + uDetallesFacturaClienteController, uDialogUtils, uDataTableUtils, + uDialogOpcionesImpresionFacturasCliente; +// uGenerarAlbaranesCliFacCliUtils; + + +{ TfEditorFacturaCliente } + +{ +**************************** TfEditorFacturaCliente **************************** +} + +procedure TfEditorFacturaCliente.actEnviarEMailExecute(Sender: TObject); +begin + if actEnviarEMail.Enabled then + begin + if Modified then + begin + if (ShowConfirmMessage('Se han producido cambios', 'Se han producido cambios y no se puede enviar por email hasta que no se guarden.' + #10#13 + + 'Desea guardarlos ahora?') = IDYES) then + begin + GuardarInterno; + FController.EnviarFacturaPorEMail(Factura); + end + else + ShowInfoMessage('Recuerde guardar los cambios si quiere enviar por email.'); + end + else + FController.EnviarFacturaPorEMail(Factura); + end; +end; + +procedure TfEditorFacturaCliente.actEnviarEMailUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos and PuedoEnviar; +end; + +constructor TfEditorFacturaCliente.Create(AOwner: TComponent); +begin + inherited; + pgPaginas.ActivePageIndex := 0; + ViewFacturaCliente := frViewFacturaCliente1; + FTiposIVAController := TTiposIVAController.Create; +end; + +procedure TfEditorFacturaCliente.CustomEditorClose(Sender: TObject; + var Action: TCloseAction); +begin + inherited; + Factura := NIL; + FTiposIVA := NIL; + + FTiposIVAController := Nil; + FController := NIL; + FViewFactura := NIL; +end; + +destructor TfEditorFacturaCliente.Destroy; +begin + inherited; +end; + +procedure TfEditorFacturaCliente.dsDataTableDataChange(Sender: TObject; + Field: TField); +begin + inherited; + if Assigned(FFactura) and (not (FFactura.DataTable.Fetching) or + not (FFactura.DataTable.Opening) or not (FFactura.DataTable.Closing)) then + PonerTitulos; +end; + +procedure TfEditorFacturaCliente.EliminarInterno; +var + ACadena : String; +begin + if Factura.TIPO = CTE_TIPO_FACTURA then + ACadena := 'Desea borrar esta factura de cliente?' + else + ACadena := 'Desea borrar este abono a cliente?'; + + if (Application.MessageBox(PChar(ACadena), 'Atencin', MB_YESNO) = IDYES) then + begin + //Es el caso de querer borrar una factura pendiente cuyos recibos tienen devoluciones + if not FController.Eliminar(Factura) then + Application.MessageBox('La factura no ha podido ser eliminada porque tiene recibos con pagos o devoluciones emitidas.', 'Atencin', MB_OK); + inherited; + end; +end; + +procedure TfEditorFacturaCliente.FormCloseQuery(Sender: TObject; var CanClose: Boolean); +begin + inherited; + + frViewTotales1.cbRecargoEquivalencia.Properties.OnEditValueChanged := nil; + frViewTotales1.eIVA.Properties.OnValidate := nil; + frViewTotales1.ePorte.Properties.OnValidate := nil; +end; + +procedure TfEditorFacturaCliente.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(FViewFactura) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Factura) then + raise Exception.Create('No hay ninguna factura asignada'); + + Factura.DataTable.Active := True; +end; + +procedure TfEditorFacturaCliente.frViewClienteFactura1edtlNombrePropertiesEditValueChanged(Sender: TObject); +begin + inherited; + with (Sender as TcxDBTextEdit) do + Enabled := (FFactura.ID <> 0) +end; + +procedure TfEditorFacturaCliente.frViewClienteFacturaedtlNombrePropertiesChange( + Sender: TObject); +begin + inherited; + PonerTitulos; +end; + +procedure TfEditorFacturaCliente.frViewTotales1bTiposIVAClick(Sender: TObject); +begin + inherited; + FTiposIVAController.VerTodos(FTiposIVA); +end; + +{ +procedure TfEditorFacturaCliente.frViewTotales1cbRecargoEquivalenciaPropertiesEditValueChanged( + Sender: TObject); +begin + inherited; + if Assigned(Factura) then + begin + Factura.Edit; + if frViewTotales1.cbRecargoEquivalencia.Checked then + Factura.RECARGO_EQUIVALENCIA := 1 + else + Factura.RECARGO_EQUIVALENCIA := 0; + end; +end; +} + +{ +procedure TfEditorFacturaCliente.frViewTotales1edtDescuentoPropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + Factura.DESCUENTO := DisplayValue; +end; +} +{ +procedure TfEditorFacturaCliente.frViewTotales1eIVAPropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + Factura.Edit; + Factura.ID_TIPO_IVA := ((frViewTotales1.dsTiposIVA.DataTable) as IBizTipoIVA).ID; +end; +} +procedure TfEditorFacturaCliente.frViewTotales1ePorteEditing(Sender: TObject; + var CanEdit: Boolean); +begin + inherited; + if FFactura.TIPO = CTE_TIPO_ABONO then + CanEdit := False; +end; + +{ +procedure TfEditorFacturaCliente.frViewTotales1ePortePropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + + if (not VarIsNull(DisplayValue)) and (Length(DisplayValue) > 0) then + FFactura.IMPORTE_PORTE := DisplayValue + else + FFactura.IMPORTE_PORTE := 0; + +// RecalcularPortePorUnidad; En los documentos de cliente el porte no se desglosa por articulo +end; +} + +function TfEditorFacturaCliente.GetController: IFacturasClienteController; +begin + Result := FController; +end; + +function TfEditorFacturaCliente.GetFactura: IBizFacturaCliente; +begin + Result := FFactura; +end; + +function TfEditorFacturaCliente.GetViewFactura: IViewFacturaCliente; +begin + Result := FViewFactura; +end; + +procedure TfEditorFacturaCliente.GuardarInterno; +var + bEsNuevo : Boolean; +begin + inherited; + + ShowHourglassCursor; + //frViewDetallesFacturaCliente1.SaveGridStatus; // Para guardar estado del grid + frViewDetallesFacturaCliente1.BeginUpdate; // Para que no se mueva el foco + try + bEsNuevo := FFactura.EsNuevo; + FController.Guardar(FFactura); + finally + frViewDetallesFacturaCliente1.EndUpdate; + //frViewDetallesFacturaCliente1.RestoreGridStatus; + HideHourglassCursor; + end; + + if bEsNuevo then + begin + if FFactura.TIPO = CTE_TIPO_FACTURA then + ShowInfoMessage('La factura se ha dado de alta con el cdigo ' + FFactura.REFERENCIA) + else + begin + ShowInfoMessage('El abono se ha dado de alta con el cdigo ' + FFactura.REFERENCIA); + //Preguntamos is desea hacer una orden de devolucin asociada +// if (Application.MessageBox('Desea crear una orden de devolucin para el abono?', 'Atencin', MB_YESNO) = IDYES) then +// GenerarAlbaranCli(FFactura); + end; + end; + + Modified := False; +end; + +procedure TfEditorFacturaCliente.ImprimirInterno; +var + AVerSello: Boolean; + AVerCopia: Boolean; + AllItems: Boolean; + +begin + inherited; + AllItems := False; + AVerSello := True; + AVerCopia := True; + + //Preguntamos si desea que en las facturas se vea el Sello + if ElegirOpcionesImpresionFacturaCliente(AVerSello, AVerCopia) then + FController.Print(FFactura, AllItems, AVerSello, AVerCopia); +end; + +procedure TfEditorFacturaCliente.OnClienteChanged(Sender: TObject); +begin + FFactura.Cliente := ViewFacturaCliente.ViewClienteFactura.Cliente; + + if not (FFactura.DataTable.State in dsEditModes) then + FFactura.DataTable.Edit; + + // Actualizar IVA y RE a partir del tipo de IVA del cliente. + Factura.IVA := ((frViewTotales1.dsTiposIVA.DataTable) as IBizTipoIVA).IVA; + if FFactura.Cliente.RECARGO_EQUIVALENCIA = 1 then + Factura.RE := ((frViewTotales1.dsTiposIVA.DataTable) as IBizTipoIVA).RE + else + Factura.RE := 0; + +//Desactivado porque en presupuestos no utilizan el catlogo de clientes + // Si la factura tiene detalles hay que mirar si los descuentos y otros campos + // para los artculos hay que cambiarlos. +// if (FFactura.Detalles.RecordCount > 0) then +// FController.DetallesController.ActualizarDetalles(FFactura.Detalles, FFactura.Cliente); +end; + +procedure TfEditorFacturaCliente.pgPaginasChanging(Sender: TObject; + var AllowChange: Boolean); +var + ACadena : String; +begin + inherited; + + if (not Assigned(FFactura)) or (FFactura.ID_CLIENTE = ID_NULO) then + begin + if FFactura.TIPO = CTE_TIPO_FACTURA then + ACadena := 'Antes debe elegir un cliente para esta factura' + else + ACadena := 'Antes debe elegir un cliente para este abono'; + ShowWarningMessage(ACadena); + AllowChange := False; + end; +end; + +function TfEditorFacturaCliente.PuedoEnviar: Boolean; +begin + Result := not Factura.Cliente.IDIsNull; +end; + +function TfEditorFacturaCliente.PuedoImprimir: Boolean; +begin + Result := inherited PuedoImprimir and (not Factura.Cliente.IDIsNull); +end; + +procedure TfEditorFacturaCliente.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := ATitulo; + if (FTitulo = '') and Assigned(Factura) then + begin + if Factura.EsNuevo then + if Factura.TIPO = CTE_TIPO_FACTURA then + FTitulo := 'Nueva factura de cliente' + else + FTitulo := 'Nuevo abono a cliente' + else + if Factura.TIPO = CTE_TIPO_FACTURA then + FTitulo := 'Factura de cliente' + ' - ' + FFactura.Cliente.Nombre + else + FTitulo := 'Abono a cliente' + ' - ' + FFactura.Cliente.Nombre + end; + + inherited PonerTitulos(FTitulo); + + Self.Caption := FTitulo + ' (' + AppFactuGES.EmpresaActiva.NOMBRE + ')'; +end; + +procedure TfEditorFacturaCliente.PrevisualizarInterno; +var + AVerSello: Boolean; + AVerCopia: Boolean; + AllItems: Boolean; + +begin + inherited; + AllItems := False; + AVerSello := True; + AVerCopia := True; + + //Preguntamos si desea que en las facturas se vea el Sello + if ElegirOpcionesImpresionFacturaCliente(AVerSello, AVerCopia) then + FController.Preview(FFactura, AllItems, AVerSello, AVerCopia); +end; + +procedure TfEditorFacturaCliente.RecalcularPortePorUnidad; +begin + //Esta lgica se llamar en el editor porque es para facilitar el rellenado de informacin del documento + //no puede ir en la clase de negocio porque no es una lgica que tenga sentido fuera del editor. + if Assigned(Controller) + and Assigned(Controller.DetallesController) then + Controller.DetallesController.DesglosarPorteDetalles(FFactura.IMPORTE_PORTE, FFactura.Detalles) +end; + +procedure TfEditorFacturaCliente.SetController(const Value: IFacturasClienteController); +begin + FController := Value; + + if Assigned(FController) then + begin + ViewFacturaCliente.Controller := FController; + frViewDetallesFacturaCliente1.Controller := Controller.DetallesController; + end; +end; + +procedure TfEditorFacturaCliente.SetFactura(const Value: IBizFacturaCliente); +begin + FFactura := Value; + + if Assigned(FFactura) then + begin + dsDataTable.DataTable := FFactura.DataTable; + frViewTotales1.DADataSource.DataTable := FFactura.DataTable; + + FTiposIVA := FTiposIVAController.BuscarTodos; + frViewTotales1.dsTiposIVA.DataTable := FTiposIVA.DataTable; + FTiposIVA.DataTable.Active := True; + + if Assigned(FViewFactura) then + begin + ViewFacturaCliente.ViewClienteFactura.OnClienteChanged := NIL; + try + FViewFactura.Factura := FFactura; + frViewDetallesFacturaCliente1.Detalles := FFactura.Detalles; + frViewDetallesFacturaCliente1.Factura := FFactura; //Para poder sacar los descuento del articulos segun el cliente seleccionado + finally + ViewFacturaCliente.ViewClienteFactura.OnClienteChanged := OnClienteChanged; + end; + end; + end + else begin + ViewFacturaCliente.ViewClienteFactura.OnClienteChanged := NIL; + dsDataTable.DataTable := NIL; + frViewTotales1.DADataSource.DataTable := NIL; + frViewTotales1.dsTiposIVA.DataTable := NIL; + end +end; + +procedure TfEditorFacturaCliente.SetViewFactura(const Value: IViewFacturaCliente); +begin + FViewFactura := Value; + + if Assigned(FViewFactura) and Assigned(Factura) then + FViewFactura.Factura := Factura; +end; + +end. diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dcu b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dcu new file mode 100644 index 0000000..f3ae941 Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dfm b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dfm new file mode 100644 index 0000000..151d0f7 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dfm @@ -0,0 +1,4013 @@ +inherited fEditorFacturasCliente: TfEditorFacturasCliente + Caption = 'Lista de facturas de cliente' + ClientHeight = 666 + ClientWidth = 842 + ExplicitWidth = 850 + ExplicitHeight = 700 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 842 + Caption = 'Lista de facturas de cliente' + ExplicitWidth = 842 + inherited Image1: TImage + Left = 815 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000001BE4944415478DA63FCFFFF3F + 032D0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80F83F980601 + EBC07C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3C275FB19E6 + 2DDD84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD97890B005D87C + 802E06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9E0FF3F6058 + 03F11FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F18E70860DBB + 4E106701CCDBA480075B431936EF3D459C05F8520E3600D2B3A8508F61EB81D3 + C45B802BA86096C3E4616AE7E7EB32EC387486763E989DA3CDB0E7E839DAF960 + 46A626C3FE131768E783A969EA0C874E5FC26F4184A729387792E3838929AA0C + C7CE5EC16F41A89B09387792E3839E042586D317AFE3B720C8D988C1ADFA0859 + 1674C62A309CBB7213BF057E8E060C5EB5C7F01A06B27CC1913F707E820D0BD8 + 82B62839868BD76FE3B7C0DB4E0F5EAEC0CA1850D9032BF393275FC1881F18BF + 394296E1CACD3BF82DF0B0D6C16938884E9B760D6BF0116D818BA5164EC34116 + 67CDB88133E888B2C0DE541D6CD8BFBF88621966E1BFFFFFB1061F322068818D + 912AB844A404E0B5A077CA428A0C8701980500619929EF09CFCE420000000049 + 454E44AE426082} + ExplicitLeft = 613 + end + end + inherited TBXDock: TTBXDock + Width = 842 + ExplicitWidth = 842 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 842 + object TBXSubmenuItem2: TTBXSubmenuItem [0] + Caption = 'Nuevo' + DisplayMode = nbdmImageAndText + ImageIndex = 22 + Images = SmallImages + object TBXItem39: TTBXItem + Action = actNuevaFactura + Caption = 'Nueva factura...' + end + object TBXItem38: TTBXItem + Action = actNuevoAbono + Caption = 'Nuevo abono...' + end + end + inherited TBXItem2: TTBXItem + Visible = False + end + object TBXItem40: TTBXItem [14] + Action = actEnviarEMail + DisplayMode = nbdmImageAndText + end + end + inherited tbxFiltro: TTBXToolbar + ExplicitWidth = 427 + inherited lblAno: TTBXLabelItem + Visible = True + end + inherited cbxListaAnos: TTBXComboBoxItem + Visible = True + end + inherited sepAno: TTBXSeparatorItem + Visible = True + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 842 + end + inherited TBXTMain2: TTBXToolbar + Left = 427 + Visible = True + ExplicitLeft = 427 + ExplicitWidth = 66 + object TBXItem41: TTBXItem + Action = actInformes + end + end + end + inherited StatusBar: TJvStatusBar + Top = 647 + Width = 842 + ExplicitTop = 647 + ExplicitWidth = 842 + end + inline frViewFacturasCliente1: TfrViewFacturasCliente [3] + Left = 0 + Top = 102 + Width = 842 + Height = 545 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 102 + ExplicitWidth = 842 + ExplicitHeight = 545 + inherited cxGrid: TcxGrid + Width = 842 + Height = 417 + ExplicitWidth = 842 + ExplicitHeight = 417 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Position = spFooter + Column = frViewFacturasCliente1.cxGridViewBASE_IMPONIBLE + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Position = spFooter + Column = frViewFacturasCliente1.cxGridViewIMPORTE_TOTAL + end> + DataController.Summary.FooterSummaryItems = < + item + Format = '0 facturas' + Kind = skCount + Column = frViewFacturasCliente1.cxGridViewREFERENCIA + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = frViewFacturasCliente1.cxGridViewBASE_IMPONIBLE + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = frViewFacturasCliente1.cxGridViewIMPORTE_TOTAL + end> + inherited cxGridViewBASE_IMPONIBLE: TcxGridDBColumn + Visible = True + end + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 842 + ExplicitWidth = 842 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 842 + inherited dxLayoutControl1: TdxLayoutControl + Width = 842 + ExplicitWidth = 842 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 600 + Width = 600 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 263 + Width = 263 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 441 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 441 + ExplicitWidth = 263 + Width = 263 + end + inherited eLista: TcxComboBox + Left = 801 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 801 + ExplicitWidth = 20 + Width = 20 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 842 + ExplicitWidth = 842 + inherited tbxBotones: TTBXToolbar + Width = 832 + ExplicitWidth = 832 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 519 + ExplicitTop = 519 + ExplicitWidth = 842 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 842 + ExplicitWidth = 842 + inherited TBXToolbar1: TTBXToolbar + Width = 832 + ExplicitWidth = 832 + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39211.772728402780000000 + BuiltInReportLink = True + end + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewFacturasCliente1.cxGridView + HitTypes = [gvhtCell] + Index = 0 + end> + end + end + inherited EditorActionList: TActionList [4] + Left = 136 + Top = 176 + inherited actNuevo: TAction + ImageIndex = 22 + end + inherited actPrevisualizar: TAction + Visible = True + end + inherited actImprimir: TAction + Visible = True + end + inherited actDuplicar: TAction + Hint = 'Generar una factura nueva a partir de la factura seleccionada' + end + object actNuevaFactura: TAction + Category = 'Archivo' + Caption = 'Factura' + ImageIndex = 23 + OnExecute = actNuevaFacturaExecute + end + object actNuevoAbono: TAction + Category = 'Archivo' + Caption = 'Abono' + ImageIndex = 24 + OnExecute = actNuevoAbonoExecute + end + object actEnviarEMail: TAction + Category = 'Acciones' + Caption = 'Enviar por e-mail...' + OnExecute = actEnviarEMailExecute + OnUpdate = actEnviarEMailUpdate + end + object actInformes: TAction + Category = 'Acciones' + Caption = 'Informes' + OnExecute = actInformesExecute + end + end + inherited SmallImages: TPngImageList [5] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001684944415478DA + 63FCFFFF3FC394C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F + 19ACFDF319CEED98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC + 5BBA09D3007CE0D7EFBF609B4178C98683D80D40770136B0AED69461E59623B8 + 0D80391B04FE01E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D + 760CCEE587E03607359F66585A6AC0B069CF49FC06A0DB0CC2207E58FB598685 + 85BA0CDB0E9CC16DC0C15E0706FBE203605B37375A809D0D02209BA3BB2F30CC + C9D566D87DE41C6E0340CE46B7F9E7AF3F6076D2C42B0C53D2D4180E9FBE8C69 + 4046941B8363E94194105F5E6EC810D9791ECC9E99A5C9903EED3A437F920AC3 + 89F357310D480E7386DB08A2435ACF302C2ED687B8049A067266DD62E88A5364 + 387BF906A60171410E280107B3191DB446C9315CBA7E1BD380283F3B147F23DB + FC1BC9E07FFFFE335CB97907D380502F6B86D5DB8E129D13310C0009900A4006 + 00004B6D80F047EC10D30000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000001A14944415478DA639CBC68FB7F06 + 2241EE3E4F38FBFFFCFF8C209A1164404EAC075E8D7FFEFE63F8FDE72F035706 + 1BC38C19090C19190B300DB02DDA0FD770B8CF11857FE4BD139C0D330006F0BA + E0D7EFBF609B79B2D8C11A41E0F5E7CF0CAF3E7D02E395134F6277013A407641 + 6EAD2BC3E4E6DD982E001900723A08FCFBFF9FE1FB8FDF60DB7DEB4F30ACAA34 + 6658BBE31838107D320C18B6CCB8803D0C607EDFDB69C7E05C7E88615DAD2943 + 50F36986A5A5060C9BF69CC41F0B300360B67FFBF18BE1CF9F7F0C61ED671916 + 16EA326C3B708661DED24D0CE7764C6344F61E8A01077B1D18EC8B0F306C6EB4 + 003B1D647374F7058639B9DA0CBB8F9C236C00C8E9207F836CFFFAED17989D34 + F10AC394343586C3A72FE3362023CA8DC1B1F4205C7079B9214364E779869959 + 9A0CE9D3AE33F427A9309C387F15B701C961CE60DB407EF66F3CC9B0B8589FE1 + DB77880B7266DD62E88A5364387BF9066E03E2821CC09A411A425ACF60A483D6 + 2839864BD76FE33620CA0FE277982B40B67F83A60310FEF7EF3FC3959B77701B + 10EA65CDB07ADB51064200A70120096201BA01006B4F3A16F9FB392100000000 + 49454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000001794944415478DA639CBC68FB7F06 + 12404EAC0723329F1164005010AFA63F7FFF31FCFEF397C1DA3F9FE1DC8E69D8 + 0DB02DDA0F173CDCE788C257E977C269385E17FCFAFD176C730E173BC38C8404 + B0D8E7CF9F193E7DFA04C6134F9EC4EE027440940B4006809C0E02FFFEFF67F8 + FEE337D876DFFA130CAB2A8D19D6EE38C6306FE926FC6100F3FBDE4E3B06E7F2 + 430CEB6A4D19829A4F332C2D3560D8B4E7247106C06CFFF6E317C39F3FFF18C2 + DACF322C2CD465D876E00C61030EF63A30D8171F60D8DC6801763AC8E6E8EE0B + 0C7372B519761F3947D80090D341FE06D9FEF5DB2F303B69E2158629696A0C87 + 4F5FC66D4046941B8363E941B8E0F2724386C8CEF30C33B33419D2A75D67E84F + 52613871FE2A6E0392C39CC1B681FCECDF78926171B13EC3B7EF1017E4CCBAC5 + D015A7C870F6F20DDC06C405398035833484B49EC188EBD62839864BD76FE336 + 20CA0FE277982B40B67F83A60310FEF7EF3FC3959B77701B10EA65CDB07ADB51 + 064200A70120096201BA0100A6C62916A56F74520000000049454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end> + Left = 395 + Bitmap = {} + end + inherited LargeImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001BE4944415478DA + 63FCFFFF3F032D0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80 + F83F980601EBC07C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3 + C275FB19E62DDD84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD978 + 90B005D87C802E06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9 + E0FF3F605803F11FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F1 + 8E70860DBB4E106701CCDBA480075B431936EF3D459C05F8520E3600D2B3A850 + 8F61EB81D3C45B802BA86096C3E4616AE7E7EB32EC387486763E989DA3CDB0E7 + E839DAF96046A626C3FE131768E783A969EA0C874E5FC26F4184A729387792E3 + 838929AA0CC7CE5EC16F41A89B09387792E3839E042586D317AFE3B720C8D988 + C1ADFA08591674C62A309CBB7213BF057E8E060C5EB5C7F01A06B27CC1913F70 + 7E820D0BD882B62839868BD76FE3B7C0DB4E0F5EAEC0CA1850D9032BF393275F + C1881F18BF394296E1CACD3BF82DF0B0D6C16938884E9B760D6BF0116D818BA5 + 164EC3411667CDB88133E888B2C0DE541D6CD8BFBF88621966E1BFFFFFB1061F + 322068818D912AB844A404E0B5A077CA428A0C8701980500619929EF09CFCE42 + 0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [7] + end + inherited dsDataTable: TDADataSource [9] + end + inherited StatusBarImages: TPngImageList [10] + end + inherited GridPopupMenu: TPopupMenu + inherited N2: TMenuItem + Visible = False + end + object N4: TMenuItem [8] + Caption = '-' + end + object Cambiarlasituacin1: TMenuItem [9] + Caption = 'Cambiar la situaci'#243'n' + Hint = + 'Cambiar la situaci'#243'n de la factura seleccionada (Pendiente/Pagad' + + 'a)' + end + object Enviarporemail1: TMenuItem [11] + Action = actEnviarEMail + end + end + object JsNuevaFacturaDialog: TJSDialog + Content.Strings = ( + #191'C'#243'mo desea dar de alta la factura?') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Nueva factura de cliente' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Factura nueva vac'#237'a.' + Value = 100 + Default = True + end + item + Caption = 'Utilizar uno o m'#225's presupuestos de cliente.' + Value = 200 + Info.Strings = ( + + 'Puede utilizar uno o m'#225's presupuestos existentes para dar de alt' + + 'a una factura nueva.') + end + item + Caption = 'Utilizar uno o m'#225's albaranes de cliente.' + Value = 300 + Info.Strings = ( + + 'Puede utilizar uno o m'#225's albaranes existentes para dar de alta l' + + 'a factura nueva.') + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 168 + Top = 144 + end + object JsListaFacturasGeneradas: TJSDialog + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Lista de facturas generadas' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + ButtonBar.Buttons = [cbOK] + ButtonBar.Cancel = cbOK + ButtonBar.UseCancel = False + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 200 + Top = 144 + end + object JsPrevisualizarDialog: TJSDialog + Content.Strings = ( + 'Elija una opci'#243'n:') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Previsualizar...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Previsualizar la factura/s seleccionada/s' + Value = 100 + Default = True + end + item + Caption = 'Previsualizar la lista de facturas actual' + Value = 200 + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 296 + Top = 144 + end + object JsImprimirDialog: TJSDialog + Content.Strings = ( + 'Elija una opci'#243'n:') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Imprimir...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Imprimir la factura/s seleccionada/s' + Value = 100 + Default = True + end + item + Caption = 'Imprimir la lista de facturas actual' + Value = 200 + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 328 + Top = 144 + end + object JsNuevoAbonoDialog: TJSDialog + Content.Strings = ( + #191'C'#243'mo desea dar de alta el abono?') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Nuevo abono a cliente' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Abono nuevo vac'#237'o.' + Value = 100 + Default = True + end + item + Caption = 'Utilizar la factura de cliente seleccionada.' + Value = 200 + Info.Strings = ( + + 'Puede utilizar una factura de cliente para dar de alta el nuevo ' + + 'abono.') + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 232 + Top = 144 + end + object JsListaFacturasNoEliminadas: TJSDialog + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = + 'Las siguientes facturas no han podido ser eliminadas, porque tie' + + 'nen recibos con pagos o devoluciones emitidas' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + ButtonBar.Buttons = [cbOK] + ButtonBar.Cancel = cbOK + ButtonBar.UseCancel = False + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 184 + Top = 112 + end + object JSInformesDialog: TJSDialog + Content.Strings = ( + 'Seleccione el informe que desea realizar') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Nuevo informe' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Listado de facturas pendientes.' + Value = 100 + Default = True + end + item + Caption = 'Listado de IVA.' + Value = 200 + end + item + Caption = 'Listado de facturas' + Value = 300 + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 408 + Top = 80 + end +end diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.pas b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.pas new file mode 100644 index 0000000..8013fde --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.pas @@ -0,0 +1,478 @@ +unit uEditorFacturasCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, Menus, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems, + TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, + JvNavigationPane, uViewGrid, pngimage, JvComponentBase, + uEditorGridBase, + uBizFacturasCliente, uIEditorFacturasCliente, uFacturasClienteController, + uCustomView, uViewBase, uViewBarraSeleccion, uViewGridBase, + uViewFacturasCliente, JvExComCtrls, JvStatusBar, JSDialog, uDAInterfaces, + cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, cxGridLevel, + cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGrid, StdCtrls, cxContainer, cxTextEdit, + cxMaskEdit, cxDropDownEdit, cxLookupEdit, cxDBLookupEdit, cxDBLookupComboBox; + +type + + TfEditorFacturasCliente = class(TfEditorGridBase, IEditorFacturasCliente) + frViewFacturasCliente1: TfrViewFacturasCliente; + Cambiarlasituacin1: TMenuItem; + N4: TMenuItem; + JsNuevaFacturaDialog: TJSDialog; + JsListaFacturasGeneradas: TJSDialog; + JsPrevisualizarDialog: TJSDialog; + JsImprimirDialog: TJSDialog; + TBXSubmenuItem2: TTBXSubmenuItem; + actNuevaFactura: TAction; + TBXItem38: TTBXItem; + TBXItem39: TTBXItem; + actNuevoAbono: TAction; + JsNuevoAbonoDialog: TJSDialog; + JsListaFacturasNoEliminadas: TJSDialog; + actEnviarEMail: TAction; + TBXItem40: TTBXItem; + Enviarporemail1: TMenuItem; + actInformes: TAction; + TBXItem41: TTBXItem; + JSInformesDialog: TJSDialog; + procedure FormShow(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + procedure actNuevaFacturaExecute(Sender: TObject); + procedure actNuevoAbonoExecute(Sender: TObject); + procedure actEnviarEMailUpdate(Sender: TObject); + procedure actEnviarEMailExecute(Sender: TObject); + procedure actInformesExecute(Sender: TObject); + procedure OnListaAnosChange(Sender: TObject; const Text: string); + + private + FFacturas: IBizFacturaCliente; + FController : IFacturasClienteController; + + protected + function GetFacturas: IBizFacturaCliente; + procedure SetFacturas(const Value: IBizFacturaCliente); + + function GetController : IFacturasClienteController; virtual; + procedure SetController (const Value : IFacturasClienteController); virtual; + + procedure NuevoInterno; override; + procedure EliminarInterno; override; + procedure ModificarInterno; override; + procedure DuplicarInterno; override; + procedure ImprimirInterno; override; + procedure PrevisualizarInterno; override; + procedure RefrescarInterno; override; + + public + property Facturas: IBizFacturaCliente read GetFacturas write SetFacturas; + property Controller : IFacturasClienteController read GetController write SetController; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure PonerTitulos(const ATitulo: string = ''); override; + end; + + +implementation + +uses + uDataModuleFacturasCliente, uDataModuleUsuarios, uAlbaranesClienteController, uFactuGES_App, + uGenerarFacturasCliAlbCliUtils, uGenerarFacturasCliPreCliUtils, + uBizAlbaranesCliente, uGestorInformesController, uDialogOpcionesImpresionFacturasCliente, + uEditorBase, uGridStatusUtils, uDBSelectionListUtils, udialogUtils; + +{$R *.dfm} + +{ +*************************** TfEditorFacturasCliente *************************** +} +procedure TfEditorFacturasCliente.actEliminarUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := (FFacturas.SITUACION = 'PENDIENTE'); +end; + +procedure TfEditorFacturasCliente.actEnviarEMailExecute(Sender: TObject); +begin + inherited; + FController.EnviarFacturaPorEMail(FFacturas); +end; + +procedure TfEditorFacturasCliente.actEnviarEMailUpdate(Sender: TObject); +begin + inherited; + if HayDatos and Assigned(ViewGrid) then + (Sender as TAction).Enabled := ViewGrid.esSeleccionCeldaDatos + and (ViewGrid.NumSeleccionados > 0) + else + (Sender as TAction).Enabled := False; +end; + +procedure TfEditorFacturasCliente.actInformesExecute(Sender: TObject); +var + Respuesta : Integer; + AGestorInformesController : IGestorInformesController; + +begin + AGestorInformesController := TGestorInformesController.Create; + try + + Respuesta := JsInformesDialog.Execute; + + if Respuesta <> IDCANCEL then + begin + case JsInformesDialog.CustomButtonResult of + 100 : begin // Listado de facturas pendientes + AGestorInformesController.VerInformeListadoFacturasCliPendientes; + end; + 200 : begin // Listado de IVA + AGestorInformesController.VerInformeIVAClientes; + end; + 300 : begin // Listado de facturas de cliente + AGestorInformesController.VerInformeListadoFacturasCli; + end; + end; + end; + + finally + AGestorInformesController := NIL; + end; +end; + +procedure TfEditorFacturasCliente.actNuevaFacturaExecute(Sender: TObject); +begin + actNuevo.Execute; +end; + +procedure TfEditorFacturasCliente.actNuevoAbonoExecute(Sender: TObject); +var + Respuesta : Integer; + Opcion : Integer; +begin + inherited; + //ABONOS + if (Facturas.TIPO = CTE_TIPO_FACTURA) then + begin + Respuesta := JsNuevoAbonoDialog.Execute; + //Nos salimos sin hace nada + if Respuesta = IDCANCEL then + Exit; + Opcion := JsNuevoAbonoDialog.CustomButtonResult; + end + else + Opcion := 100; + + case Opcion of + 200 : begin // Utilizar factura seleccionada + FController.Ver(FController.GenerarAbono(Facturas)); + actRefrescar.Execute; + ViewGrid._FocusedView.DataController.GotoFirst; + end; + 100 : begin // Abono nuevo vacio + if FController.AnadirAbono(Facturas) then + FController.Ver(Facturas); + end; + end; +end; + +constructor TfEditorFacturasCliente.Create(AOwner: TComponent); +begin + inherited; + + FHeaderText := 'Lista de facturas de cliente'; + FWindowCaption := FHeaderText; + + ViewGrid := frViewFacturasCliente1; // CreateView(TfrViewFacturasCliente) as IViewFacturasCliente; +end; + +destructor TfEditorFacturasCliente.Destroy; +begin + FFacturas := NIL; + inherited; +end; + +procedure TfEditorFacturasCliente.DuplicarInterno; +var + AFactura : IBizFacturaCliente; +begin + inherited; + AFactura := FController.Duplicar(FFacturas); + try + FController.Ver(AFactura); + finally + actRefrescar.Execute; + end; +end; + +procedure TfEditorFacturasCliente.EliminarInterno; +var + ACadena : String; + AFacturas: IBizFacturaCliente; + AllItems: Boolean; +begin + AFacturas := Nil; + AllItems := False; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + if AllItems then + begin + if (Application.MessageBox('¿Desea borrar las facturas/abonos de cliente seleccionados?', 'Atención', MB_YESNO) = IDYES) then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Facturas as ISeleccionable).SelectedRecords); + AFacturas := (Controller as IFacturasClienteController).ExtraerSeleccionados(Facturas) as IBizFacturaCliente; + end + end + else begin + if Facturas.TIPO = CTE_TIPO_FACTURA then + ACadena := '¿Desea borrar esta factura de cliente?' + else + ACadena := '¿Desea borrar este abono a cliente?'; + + if (Application.MessageBox(PChar(ACadena), 'Atención', MB_YESNO) = IDYES) then + AFacturas := Facturas; + end; + + if Assigned(AFacturas) then + begin + if (not FController.Eliminar(AFacturas, AllItems)) + and (not AllItems) then //Es el caso de querer borrar una factura pendiente cuyos recibos tienen devoluciones + begin + JsListaFacturasNoEliminadas.Content.Clear; + JsListaFacturasNoEliminadas.Content.Add('Ref. factura: ' + AFacturas.REFERENCIA + ' ' + AFacturas.NOMBRE); + JsListaFacturasNoEliminadas.Execute; + end; + + if AllItems then + begin + if (AFacturas.DataTable.RecordCount > 0) then + begin + with AFacturas.DataTable do + begin + JsListaFacturasNoEliminadas.Content.Clear; + First; + while not EOF do + begin + JsListaFacturasNoEliminadas.Content.Add('Ref. factura: ' + AFacturas.REFERENCIA + ' ' + AFacturas.NOMBRE); + Next; + end; + end; + JsListaFacturasNoEliminadas.Execute; + end; + actRefrescar.Execute; + end + end; + + ViewGrid.GotoFirst; +end; + +procedure TfEditorFacturasCliente.FormShow(Sender: TObject); +begin + cbxListaAnos.OnChange := OnListaAnosChange; //OJO SIEMPRE ANTES DEL INHERITED + + inherited; + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Facturas) then + raise Exception.Create('No hay ninguna factura asignada'); + + Facturas.DataTable.Active := True; + ViewGrid.GotoFirst; +end; + +function TfEditorFacturasCliente.GetController: IFacturasClienteController; +begin + Result := FController; +end; + +function TfEditorFacturasCliente.GetFacturas: IBizFacturaCliente; +begin + Result := FFacturas; +end; + +procedure TfEditorFacturasCliente.ImprimirInterno; +var + Respuesta : Integer; + AFacturas: IBizFacturaCliente; + AllItems: Boolean; + AVerSello: Boolean; + AVerCopia: Boolean; +begin + AFacturas := Nil; + AllItems := False; + AVerSello := True; + AVerCopia := True; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + //Si esta agrupado solo podré imprimir la lista de elementos visibles + if not ViewGrid.esSeleccionCeldaDatos then + inherited + else + begin + Respuesta := JsImprimirDialog.Execute; + if Respuesta <> IDCANCEL then + begin + case JsImprimirDialog.CustomButtonResult of + 200 : begin // Lista de elementos visibles + inherited; + end; + 100 : begin // Elemento Seleccionado + if AllItems then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Facturas as ISeleccionable).SelectedRecords); + AFacturas := (Controller as IFacturasClienteController).ExtraerSeleccionados(Facturas) as IBizFacturaCliente; + end + else + AFacturas := Facturas; + + //Preguntamos si desea que en las facturas se vea el Sello + if ElegirOpcionesImpresionFacturaCliente(AVerSello, AVerCopia) then + if Assigned(AFacturas) then + FController.Print(AFacturas, AllItems, AVerSello, AVerCopia); + end; + end; + end; + end; +end; + +procedure TfEditorFacturasCliente.ModificarInterno; +begin + inherited; + FController.Ver(Facturas); +end; + +procedure TfEditorFacturasCliente.NuevoInterno; +var + Respuesta : Integer; +begin + inherited; + + Respuesta := JsNuevaFacturaDialog.Execute; + + if Respuesta <> IDCANCEL then + begin + case JsNuevaFacturaDialog.CustomButtonResult of + 200 : begin // Utilizar presupuestos + GenerarFacturaCliPre; + actRefrescar.Execute; + end; + 300 : begin // Utilizar albaranes + GenerarFacturaCliAlb; + actRefrescar.Execute; + end; + 100 : begin // Albaran nuevo vacio + if FController.Anadir(Facturas) then + FController.Ver(Facturas); + end; + end; + end; +end; + +procedure TfEditorFacturasCliente.OnListaAnosChange(Sender: TObject; const Text: string); +begin + Controller.FiltrarAno(Facturas, DynWhereDataTable, Text); + if Facturas.DataTable.Active then + RefrescarInterno; +end; + +procedure TfEditorFacturasCliente.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := FWindowCaption + ' - ' + AppFactuGES.EmpresaActiva.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorFacturasCliente.PrevisualizarInterno; +var + Respuesta : Integer; + AFacturas: IBizFacturaCliente; + AllItems: Boolean; + AVerSello: Boolean; + AVerCopia: Boolean; +begin + AFacturas := Nil; + AllItems := False; + AVerSello := True; + AVerCopia := True; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + //Si esta agrupado solo podré imprimir la lista de elementos visibles + if not ViewGrid.esSeleccionCeldaDatos then + inherited + else + begin + Respuesta := JsPrevisualizarDialog.Execute; + if Respuesta <> IDCANCEL then + begin + case JsPrevisualizarDialog.CustomButtonResult of + 200 : begin // Lista de elementos visibles + inherited; + end; + 100 : begin // Elemento Seleccionado + if AllItems then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Facturas as ISeleccionable).SelectedRecords); + AFacturas := (Controller as IFacturasClienteController).ExtraerSeleccionados(Facturas) as IBizFacturaCliente; + end + else + AFacturas := Facturas; + + //Preguntamos si desea que en las facturas se vea el Sello + if ElegirOpcionesImpresionFacturaCliente(AVerSello, AVerCopia) then + if Assigned(AFacturas) then + FController.Preview(AFacturas, AllItems, AVerSello, AVerCopia); + end; + end; + end; + end; +end; + +procedure TfEditorFacturasCliente.RefrescarInterno; +begin + //Volvemos a cargar los años de las facturas + if Assigned(FController) then + ListaAnos := FController.DarListaAnosFacturas; + + inherited; +end; + +procedure TfEditorFacturasCliente.SetController(const Value: IFacturasClienteController); +begin + FController := Value; + + if Assigned(FController) then + ListaAnos := FController.DarListaAnosFacturas; +end; + +procedure TfEditorFacturasCliente.SetFacturas(const Value: IBizFacturaCliente); +begin + FFacturas := Value; + + if Assigned(FFacturas) then + begin + //Se guarda el where de la sentencia origen, por si el editor tiene filtros que + //afecten a este where y en un futuro se desea volver al where origen (filtro de año)) + DynWhereDataTable := FFacturas.DataTable.DynamicWhere.Xml; + + dsDataTable.DataTable := FFacturas.DataTable; + if Assigned(ViewGrid) then + (ViewGrid as IViewFacturasCliente).Facturas := Facturas; + end; +end; + +end. diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorFacturasClienteReport.dcu b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasClienteReport.dcu new file mode 100644 index 0000000..e2e8960 Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasClienteReport.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorFacturasClienteReport.dfm b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasClienteReport.dfm new file mode 100644 index 0000000..96d8584 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasClienteReport.dfm @@ -0,0 +1,33 @@ +inherited fEditorFacturasClientePreview: TfEditorFacturasClientePreview + Caption = 'Previsualizar la factura' + ClientWidth = 622 + ExplicitWidth = 630 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 622 + ExplicitWidth = 622 + inherited Image1: TImage + Left = 595 + ExplicitLeft = 595 + end + end + inherited TBXDock: TTBXDock + Width = 622 + ExplicitWidth = 622 + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 622 + end + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 540 + object TBXItem58: TTBXItem [1] + Action = actExportarRTF + Images = SmallImages + end + end + end + inherited StatusBar: TJvStatusBar + Width = 622 + ExplicitWidth = 622 + end +end diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorFacturasClienteReport.pas b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasClienteReport.pas new file mode 100644 index 0000000..276cf55 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasClienteReport.pas @@ -0,0 +1,50 @@ +unit uEditorFacturasClienteReport; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorPreview, +{ frxExportImage, frxExportPDF, frxDCtrl, frxClass, frxDMPExport, frxGradient, + frxChBox, frxCross, frxRich, frxChart, frxOLE, frxBarcode, +} + JvAppStorage, JvAppRegistryStorage, JvComponentBase, + JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, + TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, + ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uIEditorFacturasClientePreview, + JvExComCtrls, JvStatusBar, frxExportText, frxExportRTF, frxExportMail, + frxExportXLS, frxExportImage, frxExportPDF, frxClass, frxDCtrl, frxGradient, + frxChBox, frxCross, frxRich, frxOLE, frxBarcode; + +type + TfEditorFacturasClientePreview = class(TfEditorPreview, IEditorFacturasClientePreview) + TBXItem58: TTBXItem; + procedure actExportarRTFExecute(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + + +implementation + +{$R *.dfm} + +uses + uFacturasClienteReportController, uIntegerListUtils, uDialogUtils; + +procedure TfEditorFacturasClientePreview.actExportarRTFExecute(Sender: TObject); +var + I: Integer; +begin + // inherited; <- No llamar al padre + if not Assigned(Controller) then + raise Exception.Create('No se ha asignado el controlador necesario'); + + for I := 0 to ListaID.Count - 1 do + if (Controller as IFacturasClienteReportController).ExportToWord(ListaID[I]) then + ShowInfoMessage('La factura se ha exportado correctamente.'); +end; + +end. diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorInfFacturasClienteReport.dfm b/Source/Modulos/Facturas de cliente/Views/uEditorInfFacturasClienteReport.dfm new file mode 100644 index 0000000..5f0a64d --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uEditorInfFacturasClienteReport.dfm @@ -0,0 +1,6 @@ +inherited fEditorPreview1: TfEditorPreview1 + Caption = 'fEditorPreview1' + ExplicitHeight = 492 + PixelsPerInch = 96 + TextHeight = 13 +end diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorInfFacturasClienteReport.pas b/Source/Modulos/Facturas de cliente/Views/uEditorInfFacturasClienteReport.pas new file mode 100644 index 0000000..67cd04f --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uEditorInfFacturasClienteReport.pas @@ -0,0 +1,30 @@ +unit uEditorInfFacturasClienteReport; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorPreview, frxExportText, frxExportRTF, frxExportMail, + frxExportXLS, frxExportImage, frxExportPDF, frxClass, frxDCtrl, frxGradient, + frxChBox, frxCross, frxRich, frxOLE, frxBarcode, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, + StdActns, ActnList, ComCtrls, JvExComCtrls, JvStatusBar, TB2ExtItems, + TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, + JvExControls, JvNavigationPane; + +type + TfEditorPreview1 = class(TfEditorPreview) + private + { Private declarations } + public + { Public declarations } + end; + +var + fEditorPreview1: TfEditorPreview1; + +implementation + +{$R *.dfm} + +end. diff --git a/Source/Modulos/Facturas de cliente/Views/uFacturasClienteViewRegister.dcu b/Source/Modulos/Facturas de cliente/Views/uFacturasClienteViewRegister.dcu new file mode 100644 index 0000000..7bc83cc Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Views/uFacturasClienteViewRegister.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Views/uFacturasClienteViewRegister.pas b/Source/Modulos/Facturas de cliente/Views/uFacturasClienteViewRegister.pas new file mode 100644 index 0000000..6a77fb8 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uFacturasClienteViewRegister.pas @@ -0,0 +1,35 @@ +unit uFacturasClienteViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorFacturasCliente, uEditorFacturaCliente, + uEditorFacturasClienteReport, uEditorElegirArticulosFacturaCliente, + uEditorElegirFacturasCliente, uDialogOpcionesImpresionFacturasCliente; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorFacturasCliente, 'EditorFacturasCliente'); + EditorRegistry.RegisterClass(TfEditorFacturaCliente, 'EditorFacturaCliente'); + EditorRegistry.RegisterClass(TfEditorElegirArticulosFacturaCliente, 'EditorElegirArticulosFacturaCliente'); + EditorRegistry.RegisterClass(TfEditorElegirFacturasCliente, 'EditorElegirFacturasCliente'); + EditorRegistry.RegisterClass(TfEditorFacturasClientePreview, 'EditorFacturasClientePreview'); + EditorRegistry.RegisterClass(TfDialogOpcionesImpresionFacturasCliente, 'DialogOpcionesImpresionFacturasCliente'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorFacturasCliente); + EditorRegistry.UnRegisterClass(TfEditorFacturaCliente); + EditorRegistry.UnRegisterClass(TfEditorElegirArticulosFacturaCliente); + EditorRegistry.UnRegisterClass(TfEditorElegirFacturasCliente); + EditorRegistry.UnRegisterClass(TfEditorFacturasClientePreview); + EditorRegistry.UnRegisterClass(TfDialogOpcionesImpresionFacturasCliente); +end; + +end. diff --git a/Source/Modulos/Facturas de cliente/Views/uViewDatosYSeleccionClienteFacturaCliente.dcu b/Source/Modulos/Facturas de cliente/Views/uViewDatosYSeleccionClienteFacturaCliente.dcu new file mode 100644 index 0000000..d398489 Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Views/uViewDatosYSeleccionClienteFacturaCliente.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Views/uViewDatosYSeleccionClienteFacturaCliente.dfm b/Source/Modulos/Facturas de cliente/Views/uViewDatosYSeleccionClienteFacturaCliente.dfm new file mode 100644 index 0000000..b7df537 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uViewDatosYSeleccionClienteFacturaCliente.dfm @@ -0,0 +1,435 @@ +inherited frViewDatosYSeleccionClienteFacturaCliente: TfrViewDatosYSeleccionClienteFacturaCliente + Width = 505 + Height = 138 + ExplicitWidth = 505 + ExplicitHeight = 138 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 505 + Height = 138 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 0 + Margins.Bottom = 0 + Align = alClient + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + DesignSize = ( + 505 + 138) + object edtlNombre: TcxDBTextEdit + Left = 58 + Top = 41 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'NOMBRE' + DataBinding.DataSource = dsCliente + Enabled = False + ParentFont = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 2 + Height = 21 + Width = 224 + end + object edtNIFCIF: TcxDBTextEdit + Left = 392 + Top = 41 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'NIF_CIF' + DataBinding.DataSource = dsCliente + Enabled = False + ParentFont = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 3 + Height = 21 + Width = 103 + end + object Button1: TBitBtn + Left = 10 + Top = 10 + Width = 115 + Height = 25 + Action = actElegirContacto + Caption = 'Elegir un cliente' + TabOrder = 0 + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FF00FF00FF00 + FF00FF00FF00EB00EB00C507C600AB13AD00A119A2009F19A000A215A400AA10 + AC00B608B800CE00CE00EF00EF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00B426B000526840004A823400478F310043962F0042992F0043972F004690 + 3100488533004B7237005A405100D201D200FF00FF00FF00FF00FF00FF00FF00 + FF0062654E004F81350047903100409C2E003AA62C0038AA2B0039A72B003E9E + 2D00459230004D84340056753800A0189F00FF00FF00FF00FF00FF00FF00FF00 + FF005F6B4C004B89330042992F0039A82B0032B428002EBB260031B6270037AB + 2A00409C2E00498C3200527B3600B015B100FF00FF00FF00FF00FF00FF00FF00 + FF0090488700488D32003E9E2D0035AF290035B631007ACB7B002DBF280033B2 + 28003DA12D0047903100576A4800EC01EC00FF00FF00FF00FF00FF00FF00FF00 + FF00F008F1005F7351003E9F2D0034B0290080AC8100D2D3D30081BB820032B2 + 28003DA22D004A863A00C519C500FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00EE09EF007861730036923E00598CAE00498CBB004A81A6002B70 + 3A00606D5900D613D600FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00EA0CF400608CD00054A2D80053A1D6004F9DD300488B + C2009D11AC00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF008C67DE005CA9DD005CA9DD005AA7DC0056A4D900519F + D400565FAB00EA00EA00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00EC0DF60060A7DE0063B0E30063B0E30061AEE1005CA9DD0056A4 + D9004E94CC00C105C600FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00C532ED0066B2E5006BB7E9006BB7E90067B3E60061AEE1005AA7 + DC00539FD500A817BE00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00BA3AE7004989B1004A85AC005895BD0068B2E30064B0E4005CA9 + DE0053A0D400AA1BC300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00CA23E8005098C400539AC7004E93BE00437DA2005190BA005198 + C6003C79A000BE08C300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00F804FC006995D40062ACDA005DA6D3005299C6004284AD003C7F + A900535AA100F300F300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00C140ED0071BAEA0068B2E00059A1CF004990BC004378 + AA00C315D600FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00C83EF000808BDF00668BCC007C60C700D116 + E400FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} + end + object Button2: TBitBtn + Left = 131 + Top = 10 + Width = 143 + Height = 25 + Action = actAnadirContacto + Caption = 'Dar de alta un cliente' + TabOrder = 1 + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00D5BFB1006947 + 3100694731006947310069473100694731006947310069473100694731006947 + 3100694731006947310069473100694731006947310069473100D5BFB100F6F2 + EF00B7A29300B7A29300B7A29300B7A29300B7A29300B7A29300B7A29300B7A2 + 9300B7A29300B7A29300B7A29300B7A29300B7A2930069473100D5BFB1002A80 + 1E00136F0D00136F0D00136F0D00136F0D00136F0D00136F0D002A801E00E3D5 + CE00E0D1C900DFCFC600DCCBC100DBC9BF00B7A2930069473100D5BFB10059A8 + 5100448B2F003CA02C0032A4260032A526003D9E2C00438D2E00136F0D00E7DB + D500A1745C00A1745C00A1745C00A1745C00B7A2930069473100D5BFB10080BC + 790042952E0031A62600369B3200369E320032A727003E952C00136F0D00EAE0 + DA00E7DBD500E4D7D000E2D3CB00DFCFC600B7A2930069473100D5BFB100CFE8 + CD004CA741002D942F0071AB90006FA68E0030923100136F0D00EFE8E300EDE4 + DF00A1745C00A1745C00A1745C00A1745C00B7A2930069473100D5BFB100FFFF + FF00B9DDC2004F9DA000559BC8004E96C2004E8E8F00A8C2AA00F2ECE800EFE8 + E300EDE4DF00EAE0DA00E7DBD500E4D7D000B7A2930069473100D5BFB100FFFF + FF00A5CDE8005DAADD005CA9DD0057A4D900519ACC00A0BACA00F5F0ED00F2EC + E800EFE8E300EDE4DF00EAE0DA00E7DBD500B7A2930069473100D5BFB100ECF6 + FA006CB9DF0065B2E50065B1E5005FACDF0056A2D700689EBE00F7F4F100F5F0 + ED00F2ECE800006000000060000000600000B7A2930069473100D5BFB100E9F6 + FA005BB0D5005CA6D50065AFDF0062AFE20058A4D8003285A700FAF8F600F7F4 + F100F7A073000060000033CB510000600000B7A2930069473100D5BFB100F4FA + FC0078C0DD0056A0CD00569DCA00539CCA00448DBB003285A700FDFCFB000060 + 0000006000000060000040D86500006000000060000000600000D5BFB100FFFF + FF00CEEAF40062B5DE005DA7D5004B92BE003285A700C6DCE600FFFFFF000060 + 000060F898005AF28F004DE57A0040D865003AD25C0000600000D5BFB100FFFF + FF00FFFFFF00CEEAF400A5CDE800A5CDE800CEEAF400FFFFFF00FFFFFF000060 + 000000600000006000005AF28F00006000000060000000600000D5BFB100D5BF + B100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BF + B100D5BFB1000060000060F8980000600000D5BFB100D5BFB100FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00006000000060000000600000FF00FF00FF00FF00} + end + object Button3: TBitBtn + Left = 303 + Top = 99 + Width = 192 + Height = 25 + Action = actVerContacto + Caption = 'Ver ficha completa del cliente...' + TabOrder = 6 + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00D5BFB1006947 + 3100694731006947310069473100694731006947310069473100694731006947 + 3100694731006947310069473100694731006947310069473100D5BFB100F6F2 + EF00B7A29300B7A29300B7A29300B7A29300B7A29300B7A29300B7A29300B7A2 + 9300B7A29300B7A29300B7A29300B7A29300B7A2930069473100D5BFB1002A80 + 1E00136F0D00136F0D00136F0D00136F0D00136F0D00136F0D002A801E00E3D5 + CE00E0D1C900DFCFC600DCCBC100DBC9BF00B7A2930069473100D5BFB10059A8 + 5100448B2F003CA02C0032A4260032A526003D9E2C00438D2E00136F0D00E7DB + D500A1745C00A1745C00A1745C00A1745C00B7A2930069473100D5BFB10080BC + 790042952E0031A62600369B3200369E320032A727003E952C00136F0D00EAE0 + DA00E7DBD500E4D7D000E2D3CB00DFCFC600B7A2930069473100D5BFB100CFE8 + CD004CA741002D942F0071AB90006FA68E0030923100136F0D00EFE8E300EDE4 + DF00A1745C00A1745C00A1745C00A1745C00B7A2930069473100D5BFB100FFFF + FF00B9DDC2004F9DA000559BC8004E96C2004E8E8F00A8C2AA00F2ECE800EFE8 + E300EDE4DF00EAE0DA00E7DBD500E4D7D000B7A2930069473100D5BFB100FFFF + FF00A5CDE8005DAADD005CA9DD0057A4D900519ACC00A0BACA00F5F0ED00F2EC + E800EFE8E300EDE4DF00EAE0DA00E7DBD500B7A2930069473100D5BFB100ECF6 + FA006CB9DF0065B2E50065B1E5005FACDF0056A2D700689EBE00F7F4F100F5F0 + ED00F2ECE800EFE8E300EDE4DF00EAE0DA00B7A2930069473100D5BFB100E9F6 + FA005BB0D5005CA6D50065AFDF0062AFE20058A4D8003285A700FAF8F600F7F4 + F100F7A07300F7A07300F7A07300F7A07300B7A2930069473100D5BFB100F4FA + FC0078C0DD0056A0CD00569DCA00539CCA00448DBB003285A700FDFCFB00FAF8 + F600F7F4F100F5F0ED00F2ECE800EFE8E300B7A2930069473100D5BFB100FFFF + FF00CEEAF40062B5DE005DA7D5004B92BE003285A700C6DCE600FFFFFF00FDFC + FB00F7A07300F7A07300F7A07300F7A07300B7A2930069473100D5BFB100FFFF + FF00FFFFFF00CEEAF400A5CDE800A5CDE800CEEAF400FFFFFF00FFFFFF00FFFF + FF00FEFEFD00FCFAF900F9F6F400F6F2EF00F3EEEA0069473100D5BFB100D5BF + B100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BF + B100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} + end + object edtDireccion: TcxTextEdit + Left = 58 + Top = 70 + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 4 + Width = 121 + end + object Button4: TButton + Left = 472 + Top = 68 + Width = 23 + Height = 25 + Action = actElegirDireccion + TabOrder = 5 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item7: TdxLayoutItem + Caption = 'Button1' + ShowCaption = False + Control = Button1 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item8: TdxLayoutItem + Caption = 'Button2' + ShowCaption = False + Control = Button2 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group2: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group4: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item1: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Nombre:' + Control = edtlNombre + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item2: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'NIF/CIF:' + Control = edtNIFCIF + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group3: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item4: TdxLayoutItem + AutoAligns = [] + AlignHorz = ahClient + AlignVert = avCenter + Caption = 'Direcci'#243'n' + Control = edtDireccion + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item5: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'Button4' + ShowCaption = False + Control = Button4 + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Item9: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'Button3' + ShowCaption = False + Control = Button3 + ControlOptions.ShowBorder = False + end + end + end + object dsCliente: TDADataSource + Left = 400 + Top = 8 + end + object ActionList1: TActionList + Images = PngImageList + Left = 368 + Top = 8 + object actElegirContacto: TAction + Caption = 'Elegir un cliente' + ImageIndex = 1 + OnExecute = actElegirContactoExecute + end + object actAnadirContacto: TAction + Caption = 'Dar de alta un cliente' + ImageIndex = 0 + OnExecute = actAnadirContactoExecute + end + object actVerContacto: TAction + Caption = 'Ver ficha completa del cliente...' + ImageIndex = 2 + OnExecute = actVerContactoExecute + OnUpdate = actVerContactoUpdate + end + object actElegirDireccion: TAction + Caption = '...' + OnExecute = actElegirDireccionExecute + OnUpdate = actElegirDireccionUpdate + end + end + object PngImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000002224944415478DA + 95935D48936114C77FCB36584A6064161515DEA441108B240293E8A682246805 + DEA45020F40196505D081242DE94512B8C20169937056914D52E726B6083B114 + D44CD3D51A216BB6656B5FEF677B5FF31D23033DF070CE03CFFFF73F1CCE6362 + 29D1806AD44E4C5A32F5F58FAA8BD5D73DD8465757034D4D4EFA4E8C62000ED7 + 56E997647490DFE131BD2ED9584971D98EB9478D2603D279B39EE6733DC6DD00 + 68E2EF7E07E95F2291688C48629ABDC71DACABD8AD0334E7B420104D24F4A3D5 + DDD707E60087F66C2234D0CECF2F41643987556566676799C9C4387AD18FF964 + 91E178EA522DF73ADC851D1CA85ECD27D77948995861B552844C2A9962303441 + DD051FA22473E5095C735B3972DAC6D3DB016EED7BC9FD47CFE601E57CF3B661 + C966D1E62C880299549A696915B6639D4892A243D6B6AC349C0B00DA0C22EF7B + 484EBDCA015424512491125036D751B1CBAE8BB5330F12459937EF860A01DEA0 + 8BA0FB0E5B154BAE832C810CACDF594F4DD5C17FC45AF6FA87F3800D95022DFD + ADC47E84682CDF8F222A3C9CF1303915E6C3E5495DDC7AE379C14E546F5F9307 + F8E4C7BC187F4BA6344E49D24C6E8A24AD12E65809A1895102CD6386B3F8B793 + C0F0C73CC0196927188E2297651096A7D096D4922D6659DCC2E7AF43F8CE8C70 + F5AEEBFF1D9CF5D889C7230BAE6F696939BDF6D7BAABACA87A567279647C320F + A8B16DA1BBD7B3A47FA5850168EB702C596C6CA2AA2EFA332E187F0080F1503E + 182A98A90000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AC400000AC401666D82D4000002A94944415478DA + 7D925D48536118C79FF3B5AF36DD66B639CB924243225010BC49BA914004CDE8 + E32228B482EA4689A22289C8CBA28B32B1061688902912D28D16991F6062B2DC + 45921FB954669BF39C9D6DE7EC9CF3EEBC9D2D8C2CB7079E9BF779FEBFF7F922 + 30C69034822060D3665F5F3A0B90B8C672FCAEC07AD8E35DF0DFBFE3F64EC05F + F647F72FC0DB75AED1E1B43D138438C9B26108B11C0443BC30ECF959D731303F + 9411D0D35C612C2ADBEF3319F5B992AC402412037F9003A4C8E05F17679BDA3E + 976BA9D1F4807B95552E877D90222910250556023170E66481D900F0CD17C0AD + 5DDE63F3CBFC505AC0685B6DE34654762B88009B350B8AF658815011C8521C04 + 518487DD530D9D83BECEB480C98EDA13F9798E5E9A61526F098440D1CA572409 + 24298EEFBA271B7BC756D203FA5A8FE49516EDF3313A5D8AA0AAAAD6BF929A01 + CFC7505DCBBBAAD590349C710BD3EEFA57D916D3A954920648249255283031B3 + 3A7BE1D164A5F61CCC0878D15C917FA8C43165D6334E558B25DBD80847E51BCF + A79B3E7D65DB33AEF1E04D570EE5723DB513C4C966E9006101ED0662043C6697 + 30B7DB3021CE6D5C5EEA58FAB22DE0F0ADBD36D25E38A6E6E2126413E00CAA81 + FAE27AE85FEB876EF10D30DC0E2083542432F3E3F8E2CBC5F7FF01CA5A8E3E21 + 6CC6AB8A264636110C7A80EADC2AE88B0E004474C0B026A035C76BF2B2A7ED43 + 29E671680BA0FC76B50F5BC902641501658B90304BA0EA11100A05544C0774D8 + 0834A7396B04DFE8C8E9B58FC19EAD80EB358B84852E44D9F1DF62930C9856B5 + 6320801419A0A27AA079430AB4303E722530EE6FDF3A838B15E729B3E50195C3 + D855B34A247F074A8BA91A40A2808C91803955E6E70233F36F3D0D58C6DEEDD6 + B8D35040179B9DA602305266AC028925A4A0B822A090C20BAB09BF96F35D736E + 53F70B90E997F07974AFDF0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001EC4944415478DA + A5934B6813511486BF541B88CD26620DA262A51BDB8520158308D5852055B01B + A3E8CEBD2E7CE063512852D09D2E82E04604AB1B5D4451B059D8A6010D84D842 + 5B6B6B1A8D414A4C9B18EB4C27F3F466D41943ED4233309C3BDC39DFFFDF9F7B + 3C9665D1C8E379323CD510C1061C3DD0697F48C531BEE7A7EDB57F6B072DADBB + 9C1F4DE154D74D34DD70DE43272FB9805AF3975484E56F1A856289C2D23CFB4F + 44D8D4BE17DD30B932A8D629B7358D70F7C1D39F8023FBB6917B35C0D78F590C + 43EC5A06954A8505A5C4B1CB2947F14F07D158D205F48436F03E761E640FEB7C + 3ED660204B3263B9597A2F24ED866B8F59DD414F28C8E7443FDE6A55A883AAA9 + 28F232F3FA7ABA8EDFAC53FEBD1E1A4DBB805A0685370F91E65E0880084BD358 + 9255CCB65EDAF784571E413378F97ABC1E90C8C6C88EDC6687E9150EAAA415D8 + BCFB14DD9D875734D76A2235E102B674A85C1CEEA3B498E374F020A666727F21 + 4E662ECFDBAB19BBB9EFD6B3BA0C423B37BA80A4F188E733A32881327EA91991 + 22924FA7B9E427373B45FADCB4A3ACFD72929E78E702EE1506C8E68B18AD0AEA + 5A595C2F44A02D3495BD7CF8344EF2CC24D7EFC4567770361EA65C2EFCF5AA06 + 0241A2E1215BD5302DBB9AA24ECE645C4077D77606A3F17F9E0307D07F23F2FF + C3D4E838FF008E7263BE13CA147C0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end> + Left = 304 + Top = 8 + Bitmap = {} + end + object dsFactura: TDADataSource + Left = 336 + Top = 8 + end +end diff --git a/Source/Modulos/Facturas de cliente/Views/uViewDatosYSeleccionClienteFacturaCliente.pas b/Source/Modulos/Facturas de cliente/Views/uViewDatosYSeleccionClienteFacturaCliente.pas new file mode 100644 index 0000000..cc242d2 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uViewDatosYSeleccionClienteFacturaCliente.pas @@ -0,0 +1,390 @@ +unit uViewDatosYSeleccionClienteFacturaCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, StdCtrls, cxControls, cxContainer, cxEdit, cxLabel, + cxDBLabel, ExtCtrls, DB, uDADataTable, uBizContactos, + ComCtrls, ToolWin, ActnList, ImgList, PngImageList, cxTextEdit, cxDBEdit, + pngimage, JvExControls, JvComponent, JvButton, JvTransparentButton, Mask, + DBCtrls, uClientesController, dxLayoutControl, Buttons, uDAInterfaces, + cxMaskEdit, cxButtonEdit, uBizFacturasCliente, uBizDireccionesContacto, + uDireccionesContactoController, Menus, cxLookAndFeelPainters, cxButtons; + +type + IViewDatosYSeleccionClienteFacturaCliente = interface(IViewBase) + ['{0336F03C-3349-4368-BF63-D03E6F741069}'] + function GetFactura: IBizFacturaCliente; + procedure SetFactura(const Value: IBizFacturaCliente); + property Factura: IBizFacturaCliente read GetFactura write SetFactura; + + function GetCliente: IBizCliente; + procedure SetCliente(Value: IBizCliente); + property Cliente: IBizCliente read GetCliente write SetCliente; + +{ function GetID_Cliente: integer; + procedure SetID_Cliente(const Value: integer); + property ID_Cliente: integer read GetID_Cliente write SetID_Cliente;} + + function GetOnClienteChanged : TNotifyEvent; + procedure SetOnClienteChanged (const Value : TNotifyEvent); + property OnClienteChanged : TNotifyEvent read GetOnClienteChanged + write SetOnClienteChanged; + + procedure ElegirDireccionCliente; + procedure ElegirCliente; + procedure VerFichaCliente; + procedure AnadirNuevoCliente; + procedure RefrescarDireccion; + end; + + TfrViewDatosYSeleccionClienteFacturaCliente = class(TfrViewBase, IViewDatosYSeleccionClienteFacturaCliente) + dsCliente: TDADataSource; + ActionList1: TActionList; + actElegirContacto: TAction; + actAnadirContacto: TAction; + actVerContacto: TAction; + PngImageList: TPngImageList; + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Item1: TdxLayoutItem; + edtlNombre: TcxDBTextEdit; + dxLayoutControl1Item2: TdxLayoutItem; + edtNIFCIF: TcxDBTextEdit; + Button1: TBitBtn; + dxLayoutControl1Item7: TdxLayoutItem; + Button2: TBitBtn; + dxLayoutControl1Item8: TdxLayoutItem; + Button3: TBitBtn; + dxLayoutControl1Item9: TdxLayoutItem; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Group2: TdxLayoutGroup; + dsFactura: TDADataSource; + actElegirDireccion: TAction; + dxLayoutControl1Group4: TdxLayoutGroup; + dxLayoutControl1Item4: TdxLayoutItem; + edtDireccion: TcxTextEdit; + Button4: TButton; + dxLayoutControl1Item5: TdxLayoutItem; + dxLayoutControl1Group3: TdxLayoutGroup; + procedure actElegirContactoExecute(Sender: TObject); + procedure actAnadirContactoExecute(Sender: TObject); + procedure actVerContactoUpdate(Sender: TObject); + procedure edtDireccionPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure actVerContactoExecute(Sender: TObject); + procedure actElegirDireccionUpdate(Sender: TObject); + procedure actElegirDireccionExecute(Sender: TObject); + procedure actElegirPersonaContactoUpdate(Sender: TObject); + + private + FOnClienteChanged : TNotifyEvent; + FMsgElegirCliente: String; + protected + FClientesController : IClientesController; + FDireccionesController : IDireccionesContactoController; + FFactura : IBizFacturaCliente; + FCliente : IBizCliente; + FDireccion : IBizDireccionesContacto; + function GetCliente: IBizCliente; virtual; + procedure SetCliente(Value: IBizCliente); virtual; + function GetOnClienteChanged : TNotifyEvent; + procedure SetOnClienteChanged (const Value : TNotifyEvent); + procedure SetReadOnly(Value: Boolean); override; + function GetID_Cliente: integer; virtual; + procedure SetID_Cliente(const Value: integer); virtual; + function GetFactura: IBizFacturaCliente; + procedure SetFactura(const Value: IBizFacturaCliente); + procedure EscribirTextoDireccion; + procedure CopiarDireccionAFactura; + procedure LimpiarDireccionDeFactura; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure ElegirDireccionCliente; + procedure ElegirCliente; + procedure VerFichaCliente; + procedure AnadirNuevoCliente; + procedure RefrescarDireccion; + property Factura: IBizFacturaCliente read GetFactura write SetFactura; + property Cliente: IBizCliente read GetCliente write SetCliente; + property OnClienteChanged : TNotifyEvent read GetOnClienteChanged write SetOnClienteChanged; + property ID_Cliente: integer read GetID_Cliente write SetID_Cliente; + end; + +implementation + +{$R *.dfm} + +uses + uDataModuleClientes, Math, uCustomView, uBizContactosPersonal, uDialogUtils; + + +procedure TfrViewDatosYSeleccionClienteFacturaCliente.actElegirContactoExecute(Sender: TObject); +begin + ElegirCliente; +end; + +procedure TfrViewDatosYSeleccionClienteFacturaCliente.actElegirDireccionExecute( + Sender: TObject); +begin + inherited; + ElegirDireccionCliente; +end; + +procedure TfrViewDatosYSeleccionClienteFacturaCliente.actElegirDireccionUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := Assigned(FCliente.Direcciones) and + (FCliente.Direcciones.Active) and (FCliente.Direcciones.RecordCount > 0); +end; + +procedure TfrViewDatosYSeleccionClienteFacturaCliente.actElegirPersonaContactoUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := Assigned(FCliente.Personal) and + (FCliente.Personal.Active) and (FCliente.Personal.RecordCount > 0); +end; + +procedure TfrViewDatosYSeleccionClienteFacturaCliente.actAnadirContactoExecute( + Sender: TObject); +begin + AnadirNuevoCliente; +end; + +procedure TfrViewDatosYSeleccionClienteFacturaCliente.actVerContactoExecute( + Sender: TObject); +begin + inherited; + VerFichaCliente; +end; + +procedure TfrViewDatosYSeleccionClienteFacturaCliente.actVerContactoUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (Length(edtlNombre.Text) > 0); +end; + +procedure TfrViewDatosYSeleccionClienteFacturaCliente.AnadirNuevoCliente; +var + ACliente : IBizCliente; +begin + inherited; + ACliente := (FClientesController.Nuevo as IBizCliente); + FClientesController.Ver(ACliente); + Self.Cliente := ACliente; +end; + +procedure TfrViewDatosYSeleccionClienteFacturaCliente.CopiarDireccionAFactura; +begin + FFactura.Edit; + FFactura.ID_DIRECCION := FDireccion.ID; + FFactura.CALLE := FDireccion.CALLE; + FFactura.POBLACION := FDireccion.POBLACION; + FFactura.CODIGO_POSTAL := FDireccion.CODIGO_POSTAL; + FFactura.PROVINCIA := FDireccion.PROVINCIA; + + FFactura.IMPORTE_PORTE := FDireccion.PORTE; +end; + +constructor TfrViewDatosYSeleccionClienteFacturaCliente.Create(AOwner: TComponent); +begin + inherited; + FMsgElegirCliente := 'Elija el cliente al que se le realizar la factura.'; + FClientesController := TClientesController.Create; + FDireccionesController := TDireccionesContactoController.Create; + + edtlNombre.Enabled := False; + edtNIFCIF.Enabled := False; + edtDireccion.Enabled := False; +end; + +destructor TfrViewDatosYSeleccionClienteFacturaCliente.Destroy; +begin + FClientesController := NIL; + FDireccionesController := NIL; + inherited; +end; + +procedure TfrViewDatosYSeleccionClienteFacturaCliente.edtDireccionPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + inherited; + ElegirDireccionCliente; +end; + +procedure TfrViewDatosYSeleccionClienteFacturaCliente.ElegirCliente; +var + ACliente : IBizCliente; +begin + inherited; + ACliente := (FClientesController.ElegirContacto(FClientesController.BuscarTodos, FMsgElegirCliente, False) as IBizCliente); + + if Assigned(ACliente) then + Self.Cliente := ACliente; + ACliente := Nil; +end; + +procedure TfrViewDatosYSeleccionClienteFacturaCliente.ElegirDireccionCliente; +var + ADireccion : IBizDireccionesContacto; +begin + inherited; + ADireccion := FClientesController.ElegirDireccionEntrega(FCliente, ' '); + + if Assigned(ADireccion) then + begin + FDireccion := ADireccion; + +// if FDireccion.IDIsNull then +// LimpiarDireccionDeFactura +// else + CopiarDireccionAFactura; + + EscribirTextoDireccion; + end; +end; + +procedure TfrViewDatosYSeleccionClienteFacturaCliente.EscribirTextoDireccion; +var + ACadena : String; +begin + ACadena := ''; + + if Assigned(FDireccion) then + ACadena := Format('%s %s %s %s', + [FFactura.CALLE, FFactura.POBLACION, + FFactura.CODIGO_POSTAL, FFactura.PROVINCIA]); + + edtDireccion.Text := ACadena; +end; + +function TfrViewDatosYSeleccionClienteFacturaCliente.GetCliente: IBizCliente; +begin + Result := FCliente; +end; + +function TfrViewDatosYSeleccionClienteFacturaCliente.GetID_Cliente: integer; +begin + Result := -1; + if Assigned(FCliente) then + Result := FCliente.ID; +end; + +procedure TfrViewDatosYSeleccionClienteFacturaCliente.SetCliente(Value: IBizCliente); +begin + FCliente := Value; + if Assigned(FCliente) then + begin + dsCliente.DataTable := FCliente.DataTable; + + if not FCliente.DataTable.Active then + FCliente.DataTable.Active := True; + + if FCliente.Direcciones.RecordCount > 0 then + ElegirDireccionCliente + else + RefrescarDireccion; + end + else begin + dsCliente.DataTable := NIL; + FCliente := NIL; + FDireccion := NIL; + end; + + if Assigned(FOnClienteChanged) then + FOnClienteChanged(Self); +end; + +procedure TfrViewDatosYSeleccionClienteFacturaCliente.SetID_Cliente(const Value: integer); +begin + Self.Cliente := IBizCliente(FClientesController.Buscar(Value)); +end; + +function TfrViewDatosYSeleccionClienteFacturaCliente.GetOnClienteChanged: TNotifyEvent; +begin + Result := FOnClienteChanged; +end; + +procedure TfrViewDatosYSeleccionClienteFacturaCliente.LimpiarDireccionDeFactura; +begin + FFactura.Edit; + FFactura.ClearField('ID_DIRECCION'); + FFactura.ClearField('CALLE'); + FFactura.ClearField('POBLACION'); + FFactura.ClearField('CODIGO_POSTAL'); + FFactura.ClearField('PROVINCIA'); + FFactura.ClearField('IMPORTE_PORTE'); +end; + +function TfrViewDatosYSeleccionClienteFacturaCliente.GetFactura: IBizFacturaCliente; +begin + Result := FFactura; +end; + +procedure TfrViewDatosYSeleccionClienteFacturaCliente.RefrescarDireccion; +begin + FDireccion := FDireccionesController.Nuevo; + + if (not FFactura.ID_DIRECCIONIsNull) and + (FDireccionesController.Localizar(FCliente.Direcciones, FFactura.ID_DIRECCION)) then + FDireccionesController.CopiarDireccion(FCliente.Direcciones, FDireccion) + else + FDireccionesController.CopiarDireccionFiscal(FCliente, FDireccion); + + EscribirTextoDireccion; +end; + +procedure TfrViewDatosYSeleccionClienteFacturaCliente.SetOnClienteChanged( + const Value: TNotifyEvent); +begin + FOnClienteChanged := Value; +end; + +procedure TfrViewDatosYSeleccionClienteFacturaCliente.SetFactura( + const Value: IBizFacturaCliente); +begin + FFactura := Value; + if Assigned(FFactura) then + begin + dsFactura.DataTable := FFactura.DataTable; + + FCliente := FFactura.Cliente; + dsCliente.DataTable := FCliente.DataTable; + + if not FCliente.DataTable.Active then + FCliente.DataTable.Active := True; + + RefrescarDireccion; + end + else begin + dsFactura.DataTable := NIL; + FCliente := NIL; + FDireccion := NIL; + end; +end; + +procedure TfrViewDatosYSeleccionClienteFacturaCliente.SetReadOnly(Value: Boolean); +begin + inherited; + + if (csLoading in Self.ComponentState) then + Exit; + + actAnadirContacto.Enabled := not ReadOnly; + actElegirContacto.Enabled := not ReadOnly; +end; + +procedure TfrViewDatosYSeleccionClienteFacturaCliente.VerFichaCliente; +begin + if not Assigned(Cliente) then + ShowErrorMessage('No se ha indicado un cliente', 'La factura no tiene ningn cliente asociado a mostrar.') + else begin + FClientesController.Ver(Cliente); + end; +end; + +end. diff --git a/Source/Modulos/Facturas de cliente/Views/uViewDetallesFacturaCliente.dcu b/Source/Modulos/Facturas de cliente/Views/uViewDetallesFacturaCliente.dcu new file mode 100644 index 0000000..fd6fa2b Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Views/uViewDetallesFacturaCliente.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Views/uViewDetallesFacturaCliente.dfm b/Source/Modulos/Facturas de cliente/Views/uViewDetallesFacturaCliente.dfm new file mode 100644 index 0000000..0f9b5c1 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uViewDetallesFacturaCliente.dfm @@ -0,0 +1,89 @@ +inherited frViewDetallesFacturaCliente: TfrViewDetallesFacturaCliente + inherited ToolBar1: TToolBar + Height = 95 + ExplicitHeight = 95 + inherited FontName: TJvFontComboBox [4] + Left = 56 + Top = 22 + ExplicitLeft = 56 + ExplicitTop = 22 + end + inherited ToolButton14: TToolButton [5] + Left = 201 + Wrap = False + ExplicitLeft = 201 + end + inherited FontSize: TEdit + Left = 266 + Top = 22 + ExplicitLeft = 266 + ExplicitTop = 22 + end + inherited UpDown1: TUpDown + Left = 308 + Top = 22 + ExplicitLeft = 308 + ExplicitTop = 22 + end + inherited ToolButton13: TToolButton + Left = 325 + Top = 22 + ExplicitLeft = 325 + ExplicitTop = 22 + end + inherited ToolButton11: TToolButton [9] + Left = 333 + Top = 22 + ExplicitLeft = 333 + ExplicitTop = 22 + end + inherited ToolButton12: TToolButton [10] + Left = 0 + Top = 22 + Wrap = True + ExplicitLeft = 0 + ExplicitTop = 22 + ExplicitHeight = 27 + end + inherited ToolButton9: TToolButton [11] + Left = 0 + Top = 49 + ExplicitLeft = 0 + ExplicitTop = 49 + end + inherited ToolButton10: TToolButton [12] + Left = 145 + Top = 49 + ExplicitLeft = 145 + ExplicitTop = 49 + end + inherited ToolButton6: TToolButton [13] + Left = 270 + Top = 49 + ExplicitLeft = 270 + ExplicitTop = 49 + end + inherited ToolButton7: TToolButton [14] + Left = 336 + Top = 49 + Wrap = True + ExplicitLeft = 336 + ExplicitTop = 49 + end + inherited ToolButton8: TToolButton [15] + Left = 0 + Top = 71 + ExplicitLeft = 0 + ExplicitTop = 71 + end + end + inherited cxGrid: TcxGrid + Top = 121 + Height = 183 + ExplicitHeight = 210 + end + inherited TBXDock1: TTBXDock + Top = 95 + ExplicitTop = 68 + end +end diff --git a/Source/Modulos/Facturas de cliente/Views/uViewDetallesFacturaCliente.pas b/Source/Modulos/Facturas de cliente/Views/uViewDetallesFacturaCliente.pas new file mode 100644 index 0000000..48cd5fc --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uViewDetallesFacturaCliente.pas @@ -0,0 +1,81 @@ +unit uViewDetallesFacturaCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewDetallesBase, cxStyles, cxCustomData, cxGraphics, cxFilter, + cxData, cxDataStorage, cxEdit, DB, cxDBData, ImgList, PngImageList, + uDADataTable, ActnList, ComCtrls, ToolWin, cxGridLevel, cxClasses, cxControls, + cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + cxGrid, cxImageComboBox, cxTextEdit, cxMaskEdit, cxCheckBox, cxCurrencyEdit, + Grids, DBGrids, StdCtrls, ExtCtrls, cxRichEdit, StdActns, ExtActns, + JvExStdCtrls, JvCombobox, JvColorCombo, TB2Item, TBX, TB2Dock, TB2Toolbar, + uControllerDetallesArticulos, uViewDetallesArticulos, uBizFacturasCliente, + uDAInterfaces, cxDropDownEdit, cxButtonEdit, Menus, cxGridCustomPopupMenu, + cxGridPopupMenu, cxEditRepositoryItems, uViewDetallesArticulosParaVenta; + +type + IViewDetallesFacturaCliente = interface(IViewDetallesArticulos) + ['{0EEC7246-B2FD-4F93-AB15-AA12D6E67302}'] + function GetFactura: IBizFacturaCliente; + procedure SetFactura(const Value: IBizFacturaCliente); + property Factura: IBizFacturaCliente read GetFactura write SetFactura; + end; + + TfrViewDetallesFacturaCliente = class(TfrViewDetallesArticulosParaVenta, IViewDetallesFacturaCliente) + protected + FFactura: IBizFacturaCliente; + function GetFactura: IBizFacturaCliente; + procedure SetFactura(const Value: IBizFacturaCliente); + + procedure AnadirArticulosInterno; override; + procedure RellenarArticulosInterno; override; + function AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean; override; + + public + property Factura: IBizFacturaCliente read GetFactura write SetFactura; + end; + +implementation +{$R *.dfm} + +uses uDetallesFacturaClienteController; + +{ TfrViewDetallesFacturaCliente } + +function TfrViewDetallesFacturaCliente.AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean; +begin + if (Factura.TIPO = CTE_TIPO_ABONO) then + Result := (Controller as IDetallesFacturaClienteController).AnadirArticulo(Detalles, pReferencia, TipoReferencia, Factura.Cliente.ID, -1) + else + Result := (Controller as IDetallesFacturaClienteController).AnadirArticulo(Detalles, pReferencia, TipoReferencia, Factura.Cliente.ID); +end; + +procedure TfrViewDetallesFacturaCliente.AnadirArticulosInterno; +begin + if (Factura.TIPO = CTE_TIPO_ABONO) then + (Controller as IDetallesFacturaClienteController).AnadirArticulos(Detalles, Factura.Cliente, true, -1) + else + (Controller as IDetallesFacturaClienteController).AnadirArticulos(Detalles, Factura.Cliente); +end; + +function TfrViewDetallesFacturaCliente.GetFactura: IBizFacturaCliente; +begin + Result := FFactura; +end; + +procedure TfrViewDetallesFacturaCliente.RellenarArticulosInterno; +begin + if (Factura.TIPO = CTE_TIPO_ABONO) then + (Controller as IDetallesFacturaClienteController).AnadirArticulos(Detalles, Factura.Cliente, False, -1) + else + (Controller as IDetallesFacturaClienteController).AnadirArticulos(Detalles, Factura.Cliente, False); +end; + +procedure TfrViewDetallesFacturaCliente.SetFactura(const Value: IBizFacturaCliente); +begin + FFactura := Value; +end; + +end. diff --git a/Source/Modulos/Facturas de cliente/Views/uViewElegirArticulosFacturasCliente.dcu b/Source/Modulos/Facturas de cliente/Views/uViewElegirArticulosFacturasCliente.dcu new file mode 100644 index 0000000..d057cca Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Views/uViewElegirArticulosFacturasCliente.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Views/uViewElegirArticulosFacturasCliente.dfm b/Source/Modulos/Facturas de cliente/Views/uViewElegirArticulosFacturasCliente.dfm new file mode 100644 index 0000000..2bf9438 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uViewElegirArticulosFacturasCliente.dfm @@ -0,0 +1,8 @@ +inherited frViewElegirArticulosFacturasCliente: TfrViewElegirArticulosFacturasCliente + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39231.869697800920000000 + BuiltInReportLink = True + end + end +end diff --git a/Source/Modulos/Facturas de cliente/Views/uViewElegirArticulosFacturasCliente.pas b/Source/Modulos/Facturas de cliente/Views/uViewElegirArticulosFacturasCliente.pas new file mode 100644 index 0000000..4eed742 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uViewElegirArticulosFacturasCliente.pas @@ -0,0 +1,28 @@ +unit uViewElegirArticulosFacturasCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewArticulos, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxImageComboBox, cxCurrencyEdit, + cxSpinEdit, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, + dxPSCompsProvider, dxPSFillPatterns, dxPSEdgePatterns, ImgList, PngImageList, + cxGridCustomPopupMenu, cxGridPopupMenu, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, + uDADataTable, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, dxPgsDlg, + ActnList, TB2Item, TBX, TB2Toolbar, TBXDkPanels, TB2Dock, uViewFiltroBase, + uDAInterfaces; + +type + IViewElegirArticulosFacturasCliente = interface(IViewArticulos) + ['{BEDD8521-7AD7-4715-BD9E-4911FD522604}'] + end; + + TfrViewElegirArticulosFacturasCliente = class(TfrViewArticulos, IViewElegirArticulosFacturasCliente) + end; + +implementation +{$R *.dfm} + +end. diff --git a/Source/Modulos/Facturas de cliente/Views/uViewFacturaCliente.dcu b/Source/Modulos/Facturas de cliente/Views/uViewFacturaCliente.dcu new file mode 100644 index 0000000..b7e6c62 Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Views/uViewFacturaCliente.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Views/uViewFacturaCliente.dfm b/Source/Modulos/Facturas de cliente/Views/uViewFacturaCliente.dfm new file mode 100644 index 0000000..c3d0680 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uViewFacturaCliente.dfm @@ -0,0 +1,449 @@ +inherited frViewFacturaCliente: TfrViewFacturaCliente + Width = 1146 + Height = 511 + Align = alClient + OnCreate = CustomViewCreate + OnDestroy = CustomViewDestroy + ExplicitWidth = 451 + ExplicitHeight = 304 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 1146 + Height = 511 + Align = alClient + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + LookAndFeel = dxLayoutOfficeLookAndFeel1 + ExplicitWidth = 451 + ExplicitHeight = 304 + DesignSize = ( + 1146 + 511) + object Label1: TLabel + Left = 617 + Top = 193 + Width = 311 + Height = 26 + Caption = + 'Opcionalmente, puede escribir el nombre del cliente final de est' + + 'e presupuesto o elegirlo de la lista de clientes.' + WordWrap = True + end + object eReferencia: TcxDBTextEdit + Left = 124 + Top = 30 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REFERENCIA' + DataBinding.DataSource = DADataSource + Enabled = False + Properties.ReadOnly = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 0 + Width = 165 + end + object edtFecha: TcxDBDateEdit + Left = 124 + Top = 57 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_FACTURA' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 1 + Width = 293 + end + object memObservaciones: TcxDBMemo + Left = 22 + Top = 285 + Anchors = [akLeft, akTop, akRight, akBottom] + DataBinding.DataField = 'OBSERVACIONES' + DataBinding.DataSource = DADataSource + Properties.ScrollBars = ssVertical + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 9 + Height = 345 + Width = 355 + end + object cbFormaPago: TcxDBLookupComboBox + Left = 146 + Top = 103 + DataBinding.DataField = 'ID_FORMA_PAGO' + DataBinding.DataSource = DADataSource + Properties.ImmediatePost = True + Properties.KeyFieldNames = 'ID' + Properties.ListColumns = < + item + FieldName = 'REFERENCIA' + end> + Properties.ListOptions.GridLines = glNone + Properties.ListOptions.ShowHeader = False + Properties.ListOptions.SyncMode = True + Properties.ListSource = dsFormaPago + Properties.PostPopupValueOnTab = True + Properties.OnEditValueChanged = edtFechaVemcimientoPropertiesEditValueChanged + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 2 + Width = 269 + end + object bFormasPago: TButton + Left = 435 + Top = 103 + Width = 132 + Height = 23 + Caption = 'Ver las formas de pago...' + TabOrder = 3 + OnClick = bFormasPagoClick + end + object cbCuentaBancaria: TcxDBComboBox + Left = 146 + Top = 159 + DataBinding.DataField = 'DATOS_BANCARIOS' + DataBinding.DataSource = DADataSource + Properties.DropDownListStyle = lsFixedList + Properties.DropDownRows = 12 + Properties.ImmediatePost = True + Properties.ImmediateUpdateText = True + Properties.PostPopupValueOnTab = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 5 + Width = 165 + end + object cbClienteFinal: TcxDBTextEdit + Left = 617 + Top = 227 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'CLIENTE_FINAL' + DataBinding.DataSource = DADataSource + Properties.ReadOnly = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 7 + Width = 339 + end + object bElegirClienteFinal: TButton + Left = 1090 + Top = 225 + Width = 23 + Height = 25 + Action = actElegirClienteFinal + TabOrder = 8 + end + inline frViewDatosYSeleccionClienteFacturaCliente1: TfrViewDatosYSeleccionClienteFacturaCliente + Left = 606 + Top = 30 + Width = 505 + Height = 138 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 6 + ReadOnly = False + ExplicitLeft = 606 + ExplicitTop = 30 + inherited dxLayoutControl1: TdxLayoutControl + ExplicitWidth = 101 + inherited edtlNombre: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtNIFCIF: TcxDBTextEdit + Left = 405 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 405 + end + inherited Button3: TBitBtn + Left = 316 + ExplicitLeft = 316 + end + inherited edtDireccion: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited Button4: TButton + Left = 485 + ExplicitLeft = 485 + end + end + inherited ActionList1: TActionList + Left = 120 + Top = 48 + end + inherited PngImageList: TPngImageList + Left = 48 + Top = 48 + end + inherited dsFactura: TDADataSource + Left = 80 + Top = 48 + end + end + object edtFechaVemcimiento: TcxDBDateEdit + Left = 146 + Top = 132 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_VENCIMIENTO' + DataBinding.DataSource = DADataSource + Properties.OnEditValueChanged = edtFechaVemcimientoPropertiesEditValueChanged + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 4 + Width = 275 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group9: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Datos de la factura' + object dxLayoutControl1Item1: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Referencia:' + Control = eReferencia + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item2: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Fecha de la factura:' + Control = edtFecha + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group6: TdxLayoutGroup + Caption = 'Forma de pago' + object dxLayoutControl1Group4: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group3: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item4: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Forma de pago:' + Control = cbFormaPago + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item10: TdxLayoutItem + ShowCaption = False + Control = bFormasPago + ControlOptions.ShowBorder = False + end + end + object ledtFechaVencimiento: TdxLayoutItem + Caption = 'Fecha de vencimiento:' + Control = edtFechaVemcimiento + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item3: TdxLayoutItem + Caption = 'Cuenta bancaria:' + Control = cbCuentaBancaria + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Group2: TdxLayoutGroup + AutoAligns = [] + AlignHorz = ahClient + AlignVert = avClient + Caption = 'Datos del cliente' + object dxLayoutControl1Item6: TdxLayoutItem + Caption = 'frViewDatosYSeleccionClienteFacturaCliente1' + ShowCaption = False + Control = frViewDatosYSeleccionClienteFacturaCliente1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group7: TdxLayoutGroup + Caption = 'Cliente final' + object dxLayoutControl1Item7: TdxLayoutItem + ShowCaption = False + Control = Label1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group8: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item8: TdxLayoutItem + AutoAligns = [] + AlignHorz = ahClient + AlignVert = avCenter + Control = cbClienteFinal + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item9: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + ShowCaption = False + Control = bElegirClienteFinal + ControlOptions.ShowBorder = False + end + end + end + end + end + object dxLayoutControl1Group5: TdxLayoutGroup + AutoAligns = [] + AlignHorz = ahClient + AlignVert = avClient + Caption = 'Descripci'#243'n' + LayoutDirection = ldHorizontal + object dxLayoutControl1Item5: TdxLayoutItem + AutoAligns = [] + AlignHorz = ahClient + AlignVert = avClient + Control = memObservaciones + ControlOptions.ShowBorder = False + end + end + end + end + object DADataSource: TDADataSource + Left = 16 + Top = 56 + end + object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList + Left = 120 + Top = 24 + object dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel + GroupOptions.CaptionOptions.Font.Charset = DEFAULT_CHARSET + GroupOptions.CaptionOptions.Font.Color = clWindowText + GroupOptions.CaptionOptions.Font.Height = -11 + GroupOptions.CaptionOptions.Font.Name = 'Tahoma' + GroupOptions.CaptionOptions.Font.Style = [fsBold] + GroupOptions.CaptionOptions.TextColor = clHighlight + GroupOptions.CaptionOptions.UseDefaultFont = False + end + end + object dsFormaPago: TDADataSource + Left = 16 + Top = 24 + end + object ActionList1: TActionList + Left = 16 + Top = 96 + object actElegirClienteFinal: TAction + Caption = '...' + OnExecute = actElegirClienteFinalExecute + OnUpdate = actElegirClienteFinalUpdate + end + end +end diff --git a/Source/Modulos/Facturas de cliente/Views/uViewFacturaCliente.pas b/Source/Modulos/Facturas de cliente/Views/uViewFacturaCliente.pas new file mode 100644 index 0000000..ff51ba4 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uViewFacturaCliente.pas @@ -0,0 +1,282 @@ +unit uViewFacturaCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, DB, uDADataTable, uCustomView, + uBizFacturasCliente, + cxControls, cxContainer, cxEdit, cxTextEdit, cxDBEdit, dxLayoutControl, + cxMemo, cxMaskEdit, cxDropDownEdit, cxCalendar, cxSpinEdit, StdCtrls, Mask, + DBCtrls, cxGraphics, dxLayoutLookAndFeels, cxLookupEdit, cxDBLookupEdit, + cxDBLookupComboBox, uFormasPagoController, uDAInterfaces, uBizFormasPago, + ActnList, uViewDatosYSeleccionClienteFacturaCliente, uFacturasClienteController; + +type + IViewFacturaCliente = interface(IViewBase) + ['{3A95930C-20B3-41E9-93CB-21138ADB5B70}'] + function GetFactura: IBizFacturaCliente; + procedure SetFactura(const Value: IBizFacturaCliente); + property Factura: IBizFacturaCliente read GetFactura write SetFactura; + function GetController : IFacturasClienteController; + procedure SetController (const Value : IFacturasClienteController); + property Controller : IFacturasClienteController read GetController write SetController; + + function GetViewClienteFactura: IViewDatosYSeleccionClienteFacturaCliente; + property ViewClienteFactura: IViewDatosYSeleccionClienteFacturaCliente read GetViewClienteFactura; + end; + + TfrViewFacturaCliente = class(TfrViewBase, IViewFacturaCliente) + DADataSource: TDADataSource; + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Item1: TdxLayoutItem; + eReferencia: TcxDBTextEdit; + dxLayoutControl1Item2: TdxLayoutItem; + edtFecha: TcxDBDateEdit; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Group2: TdxLayoutGroup; + dxLayoutControl1Item5: TdxLayoutItem; + memObservaciones: TcxDBMemo; + dxLayoutControl1Group5: TdxLayoutGroup; + dxLayoutControl1Item6: TdxLayoutItem; + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + dsFormaPago: TDADataSource; + dxLayoutControl1Item4: TdxLayoutItem; + cbFormaPago: TcxDBLookupComboBox; + dxLayoutControl1Item10: TdxLayoutItem; + bFormasPago: TButton; + dxLayoutControl1Item3: TdxLayoutItem; + cbCuentaBancaria: TcxDBComboBox; + dxLayoutControl1Item7: TdxLayoutItem; + Label1: TLabel; + dxLayoutControl1Item8: TdxLayoutItem; + cbClienteFinal: TcxDBTextEdit; + dxLayoutControl1Item9: TdxLayoutItem; + bElegirClienteFinal: TButton; + dxLayoutControl1Group7: TdxLayoutGroup; + dxLayoutControl1Group8: TdxLayoutGroup; + ActionList1: TActionList; + actElegirClienteFinal: TAction; + frViewDatosYSeleccionClienteFacturaCliente1: TfrViewDatosYSeleccionClienteFacturaCliente; + dxLayoutControl1Group9: TdxLayoutGroup; + dxLayoutControl1Group6: TdxLayoutGroup; + dxLayoutControl1Group4: TdxLayoutGroup; + ledtFechaVencimiento: TdxLayoutItem; + edtFechaVemcimiento: TcxDBDateEdit; + dxLayoutControl1Group3: TdxLayoutGroup; + procedure bFormasPagoClick(Sender: TObject); + procedure CustomViewDestroy(Sender: TObject); + procedure CustomViewCreate(Sender: TObject); + procedure actElegirClienteFinalExecute(Sender: TObject); + procedure actElegirClienteFinalUpdate(Sender: TObject); + procedure edtFechaVemcimientoPropertiesEditValueChanged(Sender: TObject); + protected + FFactura : IBizFacturaCliente; + FController : IFacturasClienteController; + FFormasPago : IBizFormaPago; + FFormasPagoController : IFormasPagoController; + FViewClienteFactura : IViewDatosYSeleccionClienteFacturaCliente; + function GetFactura: IBizFacturaCliente; + procedure SetFactura(const Value: IBizFacturaCliente); + function GetController : IFacturasClienteController; + procedure SetController (const Value : IFacturasClienteController); + procedure RellenarCuentasBancarias; + function GetViewClienteFactura: IViewDatosYSeleccionClienteFacturaCliente; + + public + property Factura: IBizFacturaCliente read GetFactura write SetFactura; + property Controller : IFacturasClienteController read GetController write SetController; + property ViewClienteFactura: IViewDatosYSeleccionClienteFacturaCliente read GetViewClienteFactura; + end; + + +implementation + +uses + uDataModuleContactos, schFacturasClienteClient_Intf, uFactuGES_App, + uEmpresasController, uClientesController, uBizContactos, uBizDireccionesContacto; + +{$R *.dfm} + +{ TfrViewFacturaCliente } + +procedure TfrViewFacturaCliente.actElegirClienteFinalExecute(Sender: TObject); +var + ACliente : IBizCliente; + AClienteController : IClientesController; +begin + inherited; + AClienteController := TClientesController.Create; + try + ACliente := (AClienteController.ElegirContacto(AClienteController.BuscarTodos, + 'Elija el cliente final de esta factura', False) as IBizCliente); + if Assigned(ACliente) then + begin + ShowHourglassCursor; + try + FFactura.Edit; + FFactura.CLIENTE_FINAL := ACliente.NOMBRE; + finally + HideHourglassCursor; + end; + end; + finally + ACliente := NIL; + AClienteController := NIL; + end; +end; + +procedure TfrViewFacturaCliente.actElegirClienteFinalUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (not ReadOnly); +end; + +procedure TfrViewFacturaCliente.bFormasPagoClick(Sender: TObject); +begin + inherited; + if Assigned(FFormasPago) then + FFormasPagoController.VerTodos(FFormasPago); +end; + +procedure TfrViewFacturaCliente.CustomViewCreate(Sender: TObject); +begin + inherited; + FFormasPago := Nil; + FFormasPagoController := TFormasPagoController.Create; + FViewClienteFactura := frViewDatosYSeleccionClienteFacturaCliente1; +end; + +procedure TfrViewFacturaCliente.CustomViewDestroy(Sender: TObject); +begin + inherited; + FFormasPago := Nil; + FFormasPagoController := NIL; + FViewClienteFactura := NIL; +end; + +procedure TfrViewFacturaCliente.edtFechaVemcimientoPropertiesEditValueChanged( + Sender: TObject); +begin + if Assigned(FFormasPago) then + if (FFormasPago.Plazos.RecordCount = 0) then + ledtFechaVencimiento.Enabled := True + else + ledtFechaVencimiento.Enabled := False; +end; + +function TfrViewFacturaCliente.GetController: IFacturasClienteController; +begin + Result := FController; +end; + +function TfrViewFacturaCliente.GetFactura: IBizFacturaCliente; +begin + Result := FFactura; +end; + +function TfrViewFacturaCliente.GetViewClienteFactura: IViewDatosYSeleccionClienteFacturaCliente; +begin + Result := FViewClienteFactura; +end; + +procedure TfrViewFacturaCliente.RellenarCuentasBancarias; +var + AController : IEmpresasController; + ALista : TStringList; + AListaIBAN : TStringList; + AListaCliente: TStringList; + i : integer; +begin + AController := TEmpresasController.Create; + try + ALista := AController.DarListaCuentasBancarias(AppFactuGES.EmpresaActiva); + AListaIBAN := AController.DarListaCuentasBancariasIBAN(AppFactuGES.EmpresaActiva); + AListaCliente := Controller.ClienteController.DarListaCuentasBancarias(FFactura.ID_CLIENTE); + + try + with cbCuentaBancaria.Properties.Items do + begin + BeginUpdate; + try + Clear; + Add(''); + for i := 0 to ALista.Count - 1 do + Add(ALista.Names[i]); + + if AListaIBAN.Count > 0 then + begin + Add('--------------'); + for i := 0 to AListaIBAN.Count - 1 do + Add(AListaIBAN.Names[i]); + end; + + if AListaCliente.Count > 0 then + begin + Add('--------------'); + for i := 0 to AListaCliente.Count - 1 do + Add(AListaCliente.Names[i]); + end; + + finally + EndUpdate; + end; + end; + finally + FreeANDNIL(ALista); + FreeANDNIL(AListaIBAN); + end; + finally + AController := NIL; + end; +end; + +procedure TfrViewFacturaCliente.SetController(const Value: IFacturasClienteController); +begin + FController := Value; +end; + +procedure TfrViewFacturaCliente.SetFactura(const Value: IBizFacturaCliente); +var + ACadena : String; +begin + FFactura := Value; + RellenarCuentasBancarias; + + if Assigned(FFactura) then + begin + DADataSource.DataTable := FFactura.DataTable; + + FViewClienteFactura.Factura := FFactura; + + FFormasPago := FFormasPagoController.BuscarTodos; + dsFormaPago.DataTable := FFormasPago.DataTable; + dsFormaPago.DataTable.Active := True; + + //Posicionamos la tabla en la forma de pago que tiene la factura ya que no lo hace el componente por si solo + FFormasPago.DataTable.Locate(fld_FacturasClienteID, FFactura.ID_FORMA_PAGO, []); + if (FFormasPago.Plazos.RecordCount = 0) then + ledtFechaVencimiento.Enabled := True + else + ledtFechaVencimiento.Enabled := False; + + if FFactura.TIPO = CTE_TIPO_ABONO then + begin + dxLayoutControl1Group1.Caption := 'Datos del abono:'; + dxLayoutControl1Item2.Caption := 'Fecha del abono:'; + ACadena := 'Elija el cliente al que se le realizar el abono.'; + end + else + ACadena := 'Elija el cliente al que se le realizar la factura.'; + //ViewDatosYSeleccionClienteFacturaCliente1.MsgElegirCliente := ACadena; + end + else begin + DADataSource.DataTable := NIL; + dsFormaPago.DataTable := NIL; + FViewClienteFactura.Factura := NIL; + end; +end; + +end. diff --git a/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.dcu b/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.dcu new file mode 100644 index 0000000..ccdedef Binary files /dev/null and b/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.dcu differ diff --git a/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.dfm b/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.dfm new file mode 100644 index 0000000..efe9345 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.dfm @@ -0,0 +1,537 @@ +inherited frViewFacturasCliente: TfrViewFacturasCliente + Width = 665 + Height = 418 + ExplicitWidth = 665 + ExplicitHeight = 418 + inherited cxGrid: TcxGrid + Width = 665 + Height = 290 + RootLevelOptions.DetailTabsPosition = dtpTop + OnActiveTabChanged = cxGridActiveTabChanged + ExplicitWidth = 665 + ExplicitHeight = 290 + inherited cxGridView: TcxGridDBTableView + DataController.KeyFieldNames = 'ID' + DataController.Options = [dcoAnsiSort, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoGroupsAlwaysExpanded] + DataController.Summary.FooterSummaryItems = < + item + Format = '0 facturas' + Kind = skCount + Column = cxGridViewREFERENCIA + end> + DataController.OnCompare = cxGridViewDataControllerCompare + OptionsCustomize.ColumnHidingOnGrouping = False + OptionsView.GroupFooters = gfAlwaysVisible + object cxGridViewTIPO: TcxGridDBColumn + DataBinding.FieldName = 'TIPO' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Images = PngImageList + Properties.Items = < + item + Description = 'Factura' + ImageIndex = 2 + Value = 'F' + end + item + Description = 'Abono' + ImageIndex = 3 + Value = 'A' + end> + Properties.LargeImages = PngImageList + end + object cxGridViewREFERENCIA: TcxGridDBColumn + DataBinding.FieldName = 'REFERENCIA' + PropertiesClassName = 'TcxTextEditProperties' + SortIndex = 0 + SortOrder = soDescending + Width = 69 + end + object cxGridViewSITUACION: TcxGridDBColumn + DataBinding.FieldName = 'SITUACION' + Width = 32 + end + object cxGridViewFECHA_FACTURA: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_FACTURA' + PropertiesClassName = 'TcxDateEditProperties' + Width = 28 + end + object cxGridViewFECHA_VENCIMIENTO: TcxGridDBColumn + Caption = 'Fecha vto.' + DataBinding.FieldName = 'FECHA_VENCIMIENTO' + PropertiesClassName = 'TcxDateEditProperties' + end + object cxGridViewNIF_CIF: TcxGridDBColumn + DataBinding.FieldName = 'NIF_CIF' + Visible = False + end + object cxGridViewNOMBRE: TcxGridDBColumn + DataBinding.FieldName = 'NOMBRE' + Width = 181 + end + object cxGridViewCALLE: TcxGridDBColumn + DataBinding.FieldName = 'CALLE' + Visible = False + end + object cxGridViewCODIGO_POSTAL: TcxGridDBColumn + DataBinding.FieldName = 'CODIGO_POSTAL' + Visible = False + end + object cxGridViewPOBLACION: TcxGridDBColumn + DataBinding.FieldName = 'POBLACION' + Visible = False + end + object cxGridViewPROVINCIA: TcxGridDBColumn + DataBinding.FieldName = 'PROVINCIA' + Visible = False + end + object cxGridViewBASE_IMPONIBLE: TcxGridDBColumn + DataBinding.FieldName = 'BASE_IMPONIBLE' + PropertiesClassName = 'TcxCurrencyEditProperties' + Visible = False + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewDESCUENTO: TcxGridDBColumn + DataBinding.FieldName = 'DESCUENTO' + Visible = False + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewIMPORTE_DESCUENTO: TcxGridDBColumn + DataBinding.FieldName = 'IMPORTE_DESCUENTO' + PropertiesClassName = 'TcxCurrencyEditProperties' + Visible = False + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewIVA: TcxGridDBColumn + DataBinding.FieldName = 'IVA' + Visible = False + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewIMPORTE_IVA: TcxGridDBColumn + DataBinding.FieldName = 'IMPORTE_IVA' + PropertiesClassName = 'TcxCurrencyEditProperties' + Visible = False + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewIMPORTE_TOTAL: TcxGridDBColumn + Caption = 'Importe total' + DataBinding.FieldName = 'IMPORTE_TOTAL' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + Width = 128 + end + object cxGridViewIMPORTE_RETENCION: TcxGridDBColumn + Caption = 'Importe retenido' + DataBinding.FieldName = 'IMPORTE_RETENCION' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewREFERENCIA_COMISION: TcxGridDBColumn + Caption = 'Liquidaci'#243'n' + DataBinding.FieldName = 'REFERENCIA_COMISION' + Visible = False + VisibleForCustomization = False + Width = 54 + end + end + inherited cxGridLevel: TcxGridLevel + Caption = 'Todas' + end + object cxGridPendientes: TcxGridLevel + Caption = 'Pendientes' + end + object cxGridParcial: TcxGridLevel + Caption = 'Parcialmente pagadas' + end + object cxGridPagadas: TcxGridLevel + Caption = 'Pagadas' + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 665 + ExplicitWidth = 665 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 665 + inherited dxLayoutControl1: TdxLayoutControl + Width = 665 + ExplicitWidth = 665 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 568 + Width = 568 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 144 + Width = 144 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 248 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 248 + ExplicitWidth = 273 + Width = 273 + end + inherited eLista: TcxComboBox + Left = 558 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 558 + ExplicitWidth = 97 + Width = 97 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 665 + ExplicitWidth = 665 + inherited tbxBotones: TTBXToolbar + Width = 655 + ExplicitWidth = 655 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 392 + Visible = True + ExplicitTop = 392 + ExplicitWidth = 665 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 665 + ExplicitWidth = 665 + inherited TBXToolbar1: TTBXToolbar + Width = 655 + ExplicitWidth = 655 + object TBXSeparatorItem2: TTBXSeparatorItem + end + object TBXItem3: TTBXItem + Action = actCliente + end + object TBXSeparatorItem1: TTBXSeparatorItem + end + object TBXItem2: TTBXItem + Action = actProvincia + end + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 38673.741107951390000000 + BuiltInReportLink = True + end + end + inherited cxStyleRepository1: TcxStyleRepository + object cxStylePagada: TcxStyle + AssignedValues = [svTextColor] + TextColor = clBlack + end + object cxStyleAbono: TcxStyle + AssignedValues = [svTextColor] + TextColor = clRed + end + object cxStylePendientes: TcxStyle + AssignedValues = [svTextColor] + TextColor = clGreen + end + object cxStyleParciales: TcxStyle + AssignedValues = [svTextColor] + TextColor = clBlue + end + end + inherited ActionList1: TActionList + object actCliente: TAction + Caption = 'Cliente' + OnExecute = actClienteExecute + OnUpdate = actClienteUpdate + end + object actProvincia: TAction + Caption = 'Provincia' + OnExecute = actProvinciaExecute + OnUpdate = actProvinciaUpdate + end + end + object PngImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000001DA4944415478DA + 63FCFFFF3F032580912C5DF2F33964B539E3DF7DF8F1956403380CE7C85B5929 + CFFAF99ED7FCFCED9BE124192060B7D8D6CE5279E99B876C42674FFC0CFEF9C0 + 7A27D10628FBAF0FB030915F74E7EA6FE6F387FF87FD7A6AB195E83090F55915 + EEE7A23BE7FCD9CFAC170EFF4EFDF6C07A31D18128E1BE3CC8DB597BE1A3BBBF + B98EECFA91FBFDBEF574A0F07FA20C10B09B67EBE366B8E3CDF37F9C47F77CED + FC7CD3AE125D0DC400B3897C9CCCBCEADFD9182F331C4CFC010E6DCB39F29E0E + 3A07599939E477AE7FBFFBE3CF4BBE0C77F27F621820EAB848DFDC447931372B + 9FE68E5DF7577F3C73368E414588D9C6496BB3AA92B8CBDECD9FDEBC7CF9D3F2 + E71DE7BBD85CC928EAB438C4C7556F3A0B1B8BC8B1BD9FFFDE7B753F4C41994B + C3CA48B1E5F09ECFFFEF3F7D19F3FB5AD0725CDE047B41276243A09D85FAAAA7 + CFBFB11CDEFBEA8EA79F98E4C3FBBFB8CF9F7BBDE5EB453F3FE440C31E060CF5 + 4C4ED9F63B6565845D5EBEFEF29F11287AE9C4AF2FAFBF3D32FF753EFE3ABE80 + 86C7028FF5429B101F83FDCF5F7F66797697E1FFCDDB6FA7FFBAE69F4D289A91 + A2B19EC539C7E1C49BC7EC46F71EBDD9FFF9DFD338868B994F4930808181D76E + 413EF33F56D90F0F5ED4323C29FE4E4833080000904EC47A3EA3126900000000 + 49454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000029B4944415478DA + A5936B48536118C7FFE79CB5CD332F639B9A379C683051B232CDEA835D14BB40 + A444501FACCC254811F529858811519411917D705A5041D04D30A34F82214118 + D8B0455E2A755E6665BA9DCDED6C3BDBDE76365C9A981F7AE0BDF0C2FFF7FE9F + E7E1A10821F89FA0C27B7E8B8ED526D731085A9DAFAA6EFC4B1053FAA844AA8A + 377053B64ED27BAC99C2E6FB4574667A4F5676B23C5ECE9091FE2F97B98ECA4B + CB9405B794AAEC9CAB5E307A97C3ED8383AB26BD35CF29EC7ED68AA4A45A0483 + 4852B1484D64C9A8E9EB15AEB3F2E282962D7BBC5FA651B73A5C424AC0E59E05 + 673B88BEBAB762FA14726EC7639DB60BB1B145083DC4C824D0A62790E901CB75 + FB4B53A362EF060351B08D6E978706CF4F807356C0A41F10C1118018BA3B6A68 + 33DE8065F345080D82B4940432373933E863A43AC1E3A5E0E68730E72883F9D4 + E482B33F003136B6A52251DD831879B60811530A2FF1CEF31670F3DB60AAB52E + 2ECB528018EB8D5948D6F442264D8C8A03018299D94321DBED7FD775194051FE + E49C54A36CB2715E3AEA423CBD9E09CCD977C05C3FB222407DA0FD4A467E6643 + FF472B450221A15F2010FCF39048E222109F052E5B294CA72DCB008A8AA7E775 + 25B94DC343D394D3EE167F2670380CA1DCDBC02A8CA194F685213EE11B387E17 + 3ED78D4701CCF687E559C579AF79DE2B991AFB19B1EC703EC0BBEAE351AF85F7 + 4E42B6E626683A0182300CDFFC4E98CE58C300CDD1EEC9B8B5AAB4B1C13184AD + BBDD668CFB8A6139E15952B1BCBB19A10E192161F6840A3B04DE594ACC677F50 + CAC35D2F78BFBFCAEBE211A20BB0FFDA8A0FF57D2B0E4381510F09DD0412EC20 + 7DFA6A0A9B8C25502ABBC1307270DC35BCAF69587504739B3341532CF9543F10 + E94261CB16486417F07DF4082C06CFAA80455DF80DE5433FF01720E9DB000000 + 0049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000001A14944415478DA639CBC68FB7F06 + 2241EE3E4F38FBFFFCFF8C209A1164404EAC075E8D7FFEFE63F8FDE72F035706 + 1BC38C19090C19190B300DB02DDA0FD770B8CF11857FE4BD139C0D330006F0BA + E0D7EFBF609B79B2D8C11A41E0F5E7CF0CAF3E7D02E395134F6277013A407641 + 6EAD2BC3E4E6DD982E001900723A08FCFBFF9FE1FB8FDF60DB7DEB4F30ACAA34 + 6658BBE31838107D320C18B6CCB8803D0C607EDFDB69C7E05C7E88615DAD2943 + 50F36986A5A5060C9BF69CC41F0B300360B67FFBF18BE1CF9F7F0C61ED671916 + 16EA326C3B708661DED24D0CE7764C6344F61E8A01077B1D18EC8B0F306C6EB4 + 003B1D647374F7058639B9DA0CBB8F9C236C00C8E9207F836CFFFAED17989D34 + F10AC394343586C3A72FE3362023CA8DC1B1F4205C7079B9214364E779869959 + 9A0CE9D3AE33F427A9309C387F15B701C961CE60DB407EF66F3CC9B0B8589FE1 + DB77880B7266DD62E88A5364387BF9066E03E2821CC09A411A425ACF60A483D6 + 2839864BD76FE33620CA0FE277982B40B67F83A60310FEF7EF3FC3959B77701B + 10EA65CDB07ADB51064200A70120096201BA01006B4F3A16F9FB392100000000 + 49454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000001794944415478DA639CBC68FB7F06 + 12404EAC0723329F1164005010AFA63F7FFF31FCFEF397C1DA3F9FE1DC8E69D8 + 0DB02DDA0F173CDCE788C257E977C269385E17FCFAFD176C730E173BC38C8404 + B0D8E7CF9F193E7DFA04C6134F9EC4EE027440940B4006809C0E02FFFEFF67F8 + FEE337D876DFFA130CAB2A8D19D6EE38C6306FE926FC6100F3FBDE4E3B06E7F2 + 430CEB6A4D19829A4F332C2D3560D8B4E7247106C06CFFF6E317C39F3FFF18C2 + DACF322C2CD465D876E00C61030EF63A30D8171F60D8DC6801763AC8E6E8EE0B + 0C7372B519761F3947D80090D341FE06D9FEF5DB2F303B69E2158629696A0C87 + 4F5FC66D4046941B8363E941B8E0F2724386C8CEF30C33B33419D2A75D67E84F + 52613871FE2A6E0392C39CC1B681FCECDF78926171B13EC3B7EF1017E4CCBAC5 + D015A7C870F6F20DDC06C405398035833484B49EC188EBD62839864BD76FE336 + 20CA0FE277982B40B67F83A60310FEF7EF3FC3959B77701B10EA65CDB07ADB51 + 064200A70120096201BA0100A6C62916A56F74520000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end> + Left = 56 + Top = 48 + Bitmap = {} + end +end diff --git a/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.pas b/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.pas new file mode 100644 index 0000000..7fc4f33 --- /dev/null +++ b/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.pas @@ -0,0 +1,244 @@ +unit uViewFacturasCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewGrid, uViewPreview, cxStyles, cxCustomData, cxGraphics, + cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl, + dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, + dxPSFillPatterns, dxPSEdgePatterns, cxImageComboBox, cxTextEdit, ImgList, + PngImageList, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, ActnList, uDADataTable, + cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGrid, + cxImage, Grids, DBGrids, uBizFacturasCliente, cxGridCustomPopupMenu, + cxGridPopupMenu, cxCalendar, cxCurrencyEdit, uViewFiltroBase, TB2Item, TBX, + TB2Toolbar, TBXDkPanels, TB2Dock, dxPgsDlg, uDAInterfaces, uCustomView, + uViewBase; + +type + IViewFacturasCliente = interface(IViewGrid) + ['{927A005F-5D71-4C37-B9E7-10292F9D467C}'] + function GetFacturas: IBizFacturaCliente; + procedure SetFacturas(const Value: IBizFacturaCliente); + property Facturas: IBizFacturaCliente read GetFacturas write SetFacturas; + end; + + TfrViewFacturasCliente = class(TfrViewGrid, IViewFacturasCliente) + PngImageList: TPngImageList; + cxGridViewNOMBRE: TcxGridDBColumn; + cxGridViewREFERENCIA: TcxGridDBColumn; + cxGridViewFECHA_FACTURA: TcxGridDBColumn; + cxGridViewSITUACION: TcxGridDBColumn; + cxGridViewBASE_IMPONIBLE: TcxGridDBColumn; + cxGridViewIMPORTE_DESCUENTO: TcxGridDBColumn; + cxGridViewDESCUENTO: TcxGridDBColumn; + cxGridViewIMPORTE_IVA: TcxGridDBColumn; + cxGridViewIMPORTE_TOTAL: TcxGridDBColumn; + cxGridViewIVA: TcxGridDBColumn; + cxGridViewNIF_CIF: TcxGridDBColumn; + cxGridViewCALLE: TcxGridDBColumn; + cxGridViewPROVINCIA: TcxGridDBColumn; + cxGridViewCODIGO_POSTAL: TcxGridDBColumn; + cxGridViewPOBLACION: TcxGridDBColumn; + cxStylePagada: TcxStyle; + cxGridPendientes: TcxGridLevel; + cxGridParcial: TcxGridLevel; + cxStyleAbono: TcxStyle; + cxGridPagadas: TcxGridLevel; + cxGridViewREFERENCIA_COMISION: TcxGridDBColumn; + cxStylePendientes: TcxStyle; + cxStyleParciales: TcxStyle; + actCliente: TAction; + actProvincia: TAction; + TBXItem2: TTBXItem; + TBXSeparatorItem1: TTBXSeparatorItem; + TBXItem3: TTBXItem; + TBXSeparatorItem2: TTBXSeparatorItem; + cxGridViewTIPO: TcxGridDBColumn; + cxGridViewFECHA_VENCIMIENTO: TcxGridDBColumn; + cxGridViewIMPORTE_RETENCION: TcxGridDBColumn; + procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; + out AStyle: TcxStyle); + procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel); + procedure actClienteExecute(Sender: TObject); + procedure actProvinciaExecute(Sender: TObject); + procedure actProvinciaUpdate(Sender: TObject); + procedure actClienteUpdate(Sender: TObject); + procedure cxGridViewDataControllerCompare( + ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2, + AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer); + + private + //Filtros relativos a la vista + procedure AnadirFiltroSituaciones; + procedure AnadirFiltroFechas; + + protected + FFacturas: IBizFacturaCliente; + function GetFacturas: IBizFacturaCliente; + procedure SetFacturas(const Value: IBizFacturaCliente); + + public + procedure AnadirOtrosFiltros; override; + property Facturas: IBizFacturaCliente read GetFacturas write SetFacturas; + end; + + +implementation + +uses + uDataModuleFacturasCliente, DateUtils, uViewGridBase, uReferenciasUtils, + cxVariants; + +{$R *.dfm} + +{ TfrViewFacturasCliente } + +procedure TfrViewFacturasCliente.actClienteExecute(Sender: TObject); +begin + if (cxGridViewNOMBRE.GroupIndex < 0) then + begin + cxGridViewNOMBRE.GroupIndex := cxGridView.GroupedColumnCount; + cxGridViewNOMBRE.Visible := False; + end + else + begin + cxGridViewNOMBRE.GroupIndex := -1; + cxGridViewNOMBRE.Visible := True; + end; +end; + +procedure TfrViewFacturasCliente.actClienteUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Checked := not (cxGridViewNOMBRE.GroupIndex < 0); +end; + +procedure TfrViewFacturasCliente.actProvinciaExecute(Sender: TObject); +begin + if (cxGridViewPROVINCIA.GroupIndex < 0) then + begin + cxGridViewPROVINCIA.GroupIndex := cxGridView.GroupedColumnCount; + cxGridViewPROVINCIA.Visible := False; + end + else + begin + cxGridViewPROVINCIA.GroupIndex := -1; + cxGridViewPROVINCIA.Visible := True; + end; +end; + +procedure TfrViewFacturasCliente.actProvinciaUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Checked := not (cxGridViewPROVINCIA.GroupIndex < 0); +end; + +procedure TfrViewFacturasCliente.AnadirFiltroFechas; +var + Columna: TcxGridDBColumn; + Fecha1, Fecha2: Variant; + FFiltro : TcxFilterCriteriaItemList; +begin + Fecha1 := frViewFiltroBase1.edtFechaIniFiltro.EditValue; + Fecha2 := frViewFiltroBase1.edtFechaFinFiltro.EditValue; + + if not VarIsNull(Fecha1) + and not VarIsNull(Fecha2) then + begin + cxGridView.DataController.Filter.Options := [fcoCaseInsensitive, fcoSoftCompare]; + FFiltro := AddFilterGrid(fboAnd); + + Columna := (cxGridView as TcxGridDBTableView).GetColumnByFieldName('FECHA_FACTURA'); + FFiltro.AddItem(Columna, foBetween, varArrayOf([Fecha1, Fecha2]), VarToStr(Fecha1) + ' and ' + VarToStr(Fecha2)); + end; +end; + +procedure TfrViewFacturasCliente.AnadirFiltroSituaciones; +var + FFiltro : TcxFilterCriteriaItemList; +begin + FFiltro := AddFilterGrid(fboAnd); + + case cxGrid.ActiveLevel.Index of + 1 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, CTE_PENDIENTE, CTE_PENDIENTE); + 2 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, CTE_PARCIAMENTE_PAGADA, CTE_PARCIAMENTE_PAGADA); + 3 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, CTE_PAGADA, CTE_PAGADA); + end; +end; + +procedure TfrViewFacturasCliente.AnadirOtrosFiltros; +begin + inherited; + + AnadirFiltroSituaciones; + AnadirFiltroFechas; + + //Finalmente activamos el filtro si tenemos algo + if cxGridView.DataController.Filter.IsEmpty + then cxGridView.DataController.Filter.Active := False + else cxGridView.DataController.Filter.Active := True; + cxGrid.ActiveLevel.GridView := cxGridView; +end; + +procedure TfrViewFacturasCliente.cxGridActiveTabChanged(Sender: TcxCustomGrid; + ALevel: TcxGridLevel); +begin + inherited; + RefrescarFiltro; +end; + +procedure TfrViewFacturasCliente.cxGridViewDataControllerCompare( + ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2, + AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer); +begin + inherited; + if ((AItemIndex = cxGridViewREFERENCIA.Index) or + (AItemIndex = cxGridViewREFERENCIA_COMISION.Index)) and + (VarType(V1) = VarType(V2)) and (VarType(V1) = varString) then + Compare := CompararReferencias(V1, V2) + else + Compare := VarCompare(V1, V2); +end; + +procedure TfrViewFacturasCliente.cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +var + IndiceCol: Integer; + ASituacion: string; +begin + inherited; + + if Assigned(ARecord) then + begin + IndiceCol := cxGridViewSITUACION.Index; + ASituacion := VarToStr(ARecord.DisplayTexts[IndiceCol]); + if (ASituacion = CTE_PAGADA) then + AStyle.TextColor := cxStylePagada.TextColor + else if (ASituacion = CTE_PENDIENTE) then + AStyle.TextColor := cxStylePendientes.TextColor + else if (ASituacion = CTE_PARCIAMENTE_PAGADA) then + AStyle.TextColor := cxStyleParciales.TextColor; + + IndiceCol := cxGridViewIMPORTE_TOTAL.Index; + if (Pos('-', ARecord.DisplayTexts[IndiceCol]) > 0) then + AStyle.TextColor := cxStyleAbono.TextColor; + end; +end; + +function TfrViewFacturasCliente.GetFacturas: IBizFacturaCliente; +begin + Result := FFacturas; +end; + +procedure TfrViewFacturasCliente.SetFacturas(const Value: IBizFacturaCliente); +begin + FFacturas := Value; + if Assigned(FFacturas) then + dsDataSource.DataTable := FFacturas.DataTable; +end; + +end. diff --git a/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.bdsproj b/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.bdsproj new file mode 100644 index 0000000..91952f8 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + FacturasProveedor_controller.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.dcu b/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.dcu new file mode 100644 index 0000000..403a269 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.dpk b/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.dpk new file mode 100644 index 0000000..fe12545 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.dpk differ diff --git a/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.dproj b/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.dproj new file mode 100644 index 0000000..4e1f05f --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.dproj @@ -0,0 +1,553 @@ + + + + {7ed85635-c723-4c0b-bf1d-f719e0ea33ad} + FacturasProveedor_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\FacturasProveedor_controller.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0FacturasProveedor_controller.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.drc b/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.drc new file mode 100644 index 0000000..08bb91d --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.drc @@ -0,0 +1,16 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Facturas de proveedor\Controller\FacturasProveedor_controller.res */ +/* c:\temp\dtf1D1.tmp */ diff --git a/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.rc b/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.res b/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.res differ diff --git a/Source/Modulos/Facturas de proveedor/Controller/View/uIEditorElegirArticulosFacturasProveedor.dcu b/Source/Modulos/Facturas de proveedor/Controller/View/uIEditorElegirArticulosFacturasProveedor.dcu new file mode 100644 index 0000000..dfbfb13 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Controller/View/uIEditorElegirArticulosFacturasProveedor.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Controller/View/uIEditorElegirArticulosFacturasProveedor.pas b/Source/Modulos/Facturas de proveedor/Controller/View/uIEditorElegirArticulosFacturasProveedor.pas new file mode 100644 index 0000000..f01488f --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Controller/View/uIEditorElegirArticulosFacturasProveedor.pas @@ -0,0 +1,19 @@ +unit uIEditorElegirArticulosFacturasProveedor; + +interface + +uses + uIEditorElegirArticulos, uBizContactos; + +type + IEditorElegirArticulosFacturasProveedor = interface(IEditorElegirArticulos) + ['{21C9BC41-C4B2-44CD-BCB3-F32A4BD5AC4E}'] + function GetProveedor: IBizProveedor; + procedure SetProveedor(const Value: IBizProveedor); + property Proveedor: IBizProveedor read GetProveedor write SetProveedor; + end; + + +implementation + +end. diff --git a/Source/Modulos/Facturas de proveedor/Controller/View/uIEditorElegirDomiciliacion.dcu b/Source/Modulos/Facturas de proveedor/Controller/View/uIEditorElegirDomiciliacion.dcu new file mode 100644 index 0000000..38b5a13 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Controller/View/uIEditorElegirDomiciliacion.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Controller/View/uIEditorElegirDomiciliacion.pas b/Source/Modulos/Facturas de proveedor/Controller/View/uIEditorElegirDomiciliacion.pas new file mode 100644 index 0000000..ba41fe5 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Controller/View/uIEditorElegirDomiciliacion.pas @@ -0,0 +1,18 @@ +unit uIEditorElegirDomiciliacion; + +interface + +uses + uEditorBasico; + +type + IEditorElegirDomiciliacion = interface(IEditorBasico) + ['{35DDA0EC-8A96-432E-9721-755CD52923FA}'] + function GetCuentaBancaria: String; + procedure SetCuentaBancaria(const Value: String); + property CuentaBancaria: String Read GetCuentaBancaria write SetCuentaBancaria; + end; + +implementation + +end. diff --git a/Source/Modulos/Facturas de proveedor/Controller/View/uIEditorFacturaProveedor.dcu b/Source/Modulos/Facturas de proveedor/Controller/View/uIEditorFacturaProveedor.dcu new file mode 100644 index 0000000..e5f4f29 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Controller/View/uIEditorFacturaProveedor.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Controller/View/uIEditorFacturaProveedor.pas b/Source/Modulos/Facturas de proveedor/Controller/View/uIEditorFacturaProveedor.pas new file mode 100644 index 0000000..285566e --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Controller/View/uIEditorFacturaProveedor.pas @@ -0,0 +1,23 @@ +unit uIEditorFacturaProveedor; + +interface + +uses + uEditorDBItem, uBizFacturasProveedor, uFacturasProveedorController; + +type + IEditorFacturaProveedor = interface(IEditorDBItem) + ['{D95EDF71-36DA-4F49-8AD4-7EA013B96079}'] + function GetController : IFacturasProveedorController; + procedure SetController (const Value : IFacturasProveedorController); + property Controller : IFacturasProveedorController read GetController + write SetController; + + function GetFactura: IBizFacturaProveedor; + procedure SetFactura(const Value: IBizFacturaProveedor); + property Factura: IBizFacturaProveedor read GetFactura write SetFactura; + end; + +implementation + +end. diff --git a/Source/Modulos/Facturas de proveedor/Controller/View/uIEditorFacturasProveedor.dcu b/Source/Modulos/Facturas de proveedor/Controller/View/uIEditorFacturasProveedor.dcu new file mode 100644 index 0000000..dd567da Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Controller/View/uIEditorFacturasProveedor.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Controller/View/uIEditorFacturasProveedor.pas b/Source/Modulos/Facturas de proveedor/Controller/View/uIEditorFacturasProveedor.pas new file mode 100644 index 0000000..b0c0a57 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Controller/View/uIEditorFacturasProveedor.pas @@ -0,0 +1,22 @@ +unit uIEditorFacturasProveedor; + +interface + +uses + uEditorGridBase, uBizFacturasProveedor, uFacturasProveedorController; + +type + IEditorFacturasProveedor = interface(IEditorGridBase) + ['{441E8FBB-2AF9-4D19-99A8-7A6A6DDAEB61}'] + function GetFacturas: IBizFacturaProveedor; + procedure SetFacturas(const Value: IBizFacturaProveedor); + property Facturas: IBizFacturaProveedor read GetFacturas write SetFacturas; + + function GetController : IFacturasProveedorController; + procedure SetController (const Value : IFacturasProveedorController); + property Controller : IFacturasProveedorController read GetController write SetController; + end; + +implementation + +end. diff --git a/Source/Modulos/Facturas de proveedor/Controller/View/uIEditorFacturasProveedorPreview.dcu b/Source/Modulos/Facturas de proveedor/Controller/View/uIEditorFacturasProveedorPreview.dcu new file mode 100644 index 0000000..0752b69 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Controller/View/uIEditorFacturasProveedorPreview.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Controller/View/uIEditorFacturasProveedorPreview.pas b/Source/Modulos/Facturas de proveedor/Controller/View/uIEditorFacturasProveedorPreview.pas new file mode 100644 index 0000000..e72fc54 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Controller/View/uIEditorFacturasProveedorPreview.pas @@ -0,0 +1,16 @@ +unit uIEditorFacturasProveedorPreview; + +interface + +uses + uEditorPreview, uBizFacturasProveedor, uFacturasProveedorReportController; + +type + IEditorFacturasProveedorPreview = interface(IEditorPreview) + ['{520F6A85-4D0D-4298-A2F1-F7ACF72D2878}'] + end; + + +implementation + +end. diff --git a/Source/Modulos/Facturas de proveedor/Controller/uArticulosFacturaProveedorController.dcu b/Source/Modulos/Facturas de proveedor/Controller/uArticulosFacturaProveedorController.dcu new file mode 100644 index 0000000..a5b5006 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Controller/uArticulosFacturaProveedorController.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Controller/uArticulosFacturaProveedorController.pas b/Source/Modulos/Facturas de proveedor/Controller/uArticulosFacturaProveedorController.pas new file mode 100644 index 0000000..39a8262 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Controller/uArticulosFacturaProveedorController.pas @@ -0,0 +1,48 @@ +unit uArticulosFacturaProveedorController; + +interface + +uses + uDADataTable, uArticulosController, uBizArticulos, uBizContactos; + +type + IArticulosFacturaProveedorController = interface(IArticulosController) + ['{9B6F6963-D16F-43FE-B33F-47824A5FAFE7}'] + function ElegirArticulos(AArticulos : IBizArticulo; AMensaje: String; AMultiSelect: Boolean; const AProveedor: IBizProveedor): IBizArticulo; + end; + + TArticulosFacturaProveedorController = class(TArticulosController, IArticulosFacturaProveedorController) + public + function ElegirArticulos(AArticulos : IBizArticulo; AMensaje: String; AMultiSelect: Boolean; const AProveedor: IBizProveedor): IBizArticulo; overload; + end; + +implementation + +{ TArticulosFacturaProveedorController } + +uses Controls, cxControls, uIEditorElegirArticulosFacturasProveedor, uIEditorElegirArticulos; + +function TArticulosFacturaProveedorController.ElegirArticulos(AArticulos: IBizArticulo; AMensaje: String; + AMultiSelect: Boolean; const AProveedor: IBizProveedor): IBizArticulo; +var + AEditor : IEditorElegirArticulosFacturasProveedor; +begin + Result := NIL; + + CreateEditor('EditorElegirArticulosFacturaProveedor', IEditorElegirArticulosFacturasProveedor, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; + AEditor.Articulos := AArticulos; + AEditor.Proveedor := AProveedor; + AEditor.MultiSelect := AMultiSelect; + AEditor.Mensaje := AMensaje; + if IsPositiveResult(AEditor.ShowModal) then + Result := AEditor.ArticulosSeleccionados; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +end. diff --git a/Source/Modulos/Facturas de proveedor/Controller/uDetallesFacturaProveedorController.dcu b/Source/Modulos/Facturas de proveedor/Controller/uDetallesFacturaProveedorController.dcu new file mode 100644 index 0000000..ad9797d Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Controller/uDetallesFacturaProveedorController.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Controller/uDetallesFacturaProveedorController.pas b/Source/Modulos/Facturas de proveedor/Controller/uDetallesFacturaProveedorController.pas new file mode 100644 index 0000000..fee9b09 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Controller/uDetallesFacturaProveedorController.pas @@ -0,0 +1,190 @@ +unit uDetallesFacturaProveedorController; + +interface + +uses + Classes, uDADataTable, uControllerDetallesArticulos, uBizDetallesFacturaProveedor, uIDataModuleFacturasProveedor, + uBizContactos, uBizArticulos; + +const + CAMPO_REFERENCIA_FABRICANTE = 'REFERENCIA_FABRICANTE'; + +type + IDetallesFacturaProveedorController = interface(IControllerDetallesArticulos) + ['{49F6199E-E031-42F5-AEA5-E70C3E3479A1}'] + procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor; const ANuevaFila :Boolean = True; const ACantidad: Integer = 1); overload; + procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor); + procedure AnadirDetalleFacturaAsociadaAbono(ADetalles: IBizDetallesFacturaProveedor; AReferencia: String; AFecha: String); + procedure DesglosarPorteDetalles(ImportePorte: Currency; ADetalles: IDAStronglyTypedDataTable); + function DarTotalPorteTotal(ADetalles: IDAStronglyTypedDataTable): Double; + end; + + TDetallesFacturaProveedorController = class(TControllerDetallesArticulos, IDetallesFacturaProveedorController) + private + FDataModule : IDataModuleFacturasProveedor; + protected + procedure RellenarOtros(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); overload; override; + procedure RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); override; + + procedure AsignarController; override; + //Si sobreescribimos este mtodo podremos tener en cuenta otras columnas para el calculo del importe total de un concepto + function CalcularImporteTotalConcepto(DataTable: TDADataTable): Double; override; + procedure ValidarCampos(DataTable: TDADataTable); override; + procedure DesglosarPorteDetalles(ImportePorte: Currency; ADetalles: IDAStronglyTypedDataTable); + function DarTotalPorteTotal(ADetalles: IDAStronglyTypedDataTable): Double; + + public + function DarListaTiposDetalle: TStringList; override; + + procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor; const ANuevaFila :Boolean = True; const ACantidad: Integer = 1); overload; + procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor); overload; + procedure AnadirDetalleFacturaAsociadaAbono(ADetalles: IBizDetallesFacturaProveedor; AReferencia: String; AFecha: String); + constructor Create; override; + destructor Destroy; override; + end; + +implementation + +{ TDetallesFacturaProveedorController } + +uses uDAInterfaces, Variants, uDataModuleFacturasProveedor, uArticulosFacturaProveedorController, + uControllerDetallesBase, Dialogs, SysUtils, uDialogUtils, uCalculosUtils, schArticulosClient_Intf, + schFacturasProveedorClient_Intf; + +procedure TDetallesFacturaProveedorController.ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor); +var + AArticulos : IBizArticulo; +begin + if Assigned(ADetalles) then + begin + try + AArticulos := (FArticulosController.BuscarTodos(AProveedor) as IBizArticulo); + ActualizarDetalles(ADetalles, AArticulos); + EliminarArticulosProveedor(ADetalles); + ShowInfoMessage('Se han eliminado todos los artculos que no pertenecen al nuevo proveedor seleccionado, y los que pertenecen sus descuentos han sido adaptados al proveedor seleccionado'); + finally + AArticulos := Nil; + end; + end; +end; + +procedure TDetallesFacturaProveedorController.AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor; const ANuevaFila :Boolean; const ACantidad: Integer); +var + AArticulos: IBizArticulo; +begin + if Assigned(ADetalles) then + begin + try + AArticulos := (FArticulosController.BuscarTodosPorProveedor as IBizArticulo); + + //Si nueva fila es false, quiere decir que se sustituye un determinado artculo, por ello la lista a seleccionar no debe ser multiselect + if ANuevaFila then + begin + AArticulos := (FArticulosController as IArticulosFacturaProveedorController).ElegirArticulos(AArticulos, 'Elija los artculos que desea aadir a esta factura de Proveedor', True, AProveedor); + Add(ADetalles, AArticulos, ACantidad) + end + else + begin + AArticulos := (FArticulosController as IArticulosFacturaProveedorController).ElegirArticulos(AArticulos, 'Elija el artculo que desea aadir a esta factura de Proveedor', False, AProveedor); + RellenarDetalle(ADetalles, AArticulos, ACantidad); + end; + + finally + AArticulos := Nil; + end; + end; +end; + +procedure TDetallesFacturaProveedorController.AnadirDetalleFacturaAsociadaAbono( + ADetalles: IBizDetallesFacturaProveedor; AReferencia, AFecha: String); +begin + AnadirConceptoInicial(ADetalles, 'ABONO DE FACTURA ' + AReferencia + ' con fecha ' + AFecha); +end; + +procedure TDetallesFacturaProveedorController.AsignarController; +begin + FArticulosController := TArticulosFacturaProveedorController.Create; +end; + +function TDetallesFacturaProveedorController.CalcularImporteTotalConcepto(DataTable: TDADataTable): Double; +begin + Result := CalcularLineaConcepto(DataTable); +end; + +constructor TDetallesFacturaProveedorController.Create; +begin + inherited; + FDataModule := TDataModuleFacturasProveedor.Create(Nil); +end; + +function TDetallesFacturaProveedorController.DarListaTiposDetalle: TStringList; +begin + Result := TStringList.Create; + Result.Values[TIPO_DETALLE_CONCEPTO] := TIPO_DETALLE_CONCEPTO; + Result.Values[TIPO_DETALLE_TITULO] := TIPO_DETALLE_TITULO; +// Result.Values[TIPO_DETALLE_TITULO_OPCIONAL] := TIPO_DETALLE_TITULO_OPCIONAL; + Result.Values[TIPO_DETALLE_SUBTOTAL] := TIPO_DETALLE_SUBTOTAL; +// Result.Values[TIPO_DETALLE_DESCUENTO] := TIPO_DETALLE_DESCUENTO; +// Result.Values[TIPO_DETALLE_SALTO] := TIPO_DETALLE_SALTO; +end; + +function TDetallesFacturaProveedorController.DarTotalPorteTotal(ADetalles: IDAStronglyTypedDataTable): Double; +begin + Result := DarTotalPorte(ADetalles); +end; + +procedure TDetallesFacturaProveedorController.DesglosarPorteDetalles(ImportePorte: Currency; ADetalles: IDAStronglyTypedDataTable); +begin + DesglosarPorte(ImportePorte, ADetalles); + ActualizarTotales(ADetalles); +end; + +destructor TDetallesFacturaProveedorController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + +procedure TDetallesFacturaProveedorController.RellenarOtros(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +var + AField: TDAField; + +begin + if Assigned(AArticulos) then + ADetalles.DataTable.FieldByName(CAMPO_DESCUENTO).AsFloat := AArticulos.DESCUENTO + else + ADetalles.DataTable.FieldByName(CAMPO_DESCUENTO).AsFloat := 0; + + //Sobreescribimos el id del articulo por el campo ID_ARTICULO que nos hemos tenido que crear para + //almacenar el codigo de artculo ya que ID esta destinado a ID_ARTICULO||ID_PROVEEDOR, para identificar de forma + //unica los articulos desglosados por proveedor. + AField := AArticulos.DataTable.FindField(CAMPO_ID_ARTICULOS); + if Assigned(AField) then + ADetalles.DataTable.FieldByName(CAMPO_ID_ARTICULOS).AsVariant := AField.AsVariant; + + AField := AArticulos.DataTable.FindField(fld_ArticulosREFERENCIA_FABR); + if Assigned(AField) then + ADetalles.DataTable.FieldByName(fld_FacturasProveedor_DetallesREFERENCIA_FABRICANTE).AsVariant := AField.AsVariant; +end; + +procedure TDetallesFacturaProveedorController.ValidarCampos(DataTable: TDADataTable); +begin + inherited; + ValidarCamposLineaConcepto(DataTable); +end; + +procedure TDetallesFacturaProveedorController.RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +begin + if Assigned(AArticulos) then + begin + ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := AArticulos.PRECIO_COSTE; + ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_PORTE).AsVariant := AArticulos.PRECIO_PORTE + end + else + begin + ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := Null; + ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_PORTE).AsVariant := Null + end; +end; + +end. diff --git a/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorController.dcu b/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorController.dcu new file mode 100644 index 0000000..3af7890 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorController.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorController.pas b/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorController.pas new file mode 100644 index 0000000..56f16c4 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorController.pas @@ -0,0 +1,1102 @@ +unit uFacturasProveedorController; + +interface + + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleFacturasProveedor, + uProveedoresController, uDetallesFacturaProveedorController, uBizFacturasProveedor, + uBizAlbaranesProveedor; + +type + IFacturasProveedorController = interface(IControllerBase) + ['{3868267C-E61A-4B79-AF61-648B2D627F56}'] + function GetProveedorController: IProveedoresController; + procedure SetProveedorController(const Value: IProveedoresController); + property ProveedorController: IProveedoresController read GetProveedorController write SetProveedorController; + + function GetDetallesController: IDetallesFacturaProveedorController; + procedure SetDetallesController(const Value: IDetallesFacturaProveedorController); + property DetallesController: IDetallesFacturaProveedorController read GetDetallesController write SetDetallesController; + + function Buscar(const ID: Integer): IBizFacturaProveedor; + function BuscarTodos: IBizFacturaProveedor; overload; + function BuscarTodos(const ID_Proveedor : Integer): IBizFacturaProveedor; overload; + procedure Ver(AFactura : IBizFacturaProveedor); + procedure VerTodos(AFacturas: IBizFacturaProveedor; + const AVerModal : Boolean = False; const AWindowCaption: String = ''; + const AHeaderText: String = ''); + function Nuevo (withInsert: Boolean = True) : IBizFacturaProveedor; + function Anadir(AFactura : IBizFacturaProveedor) : Boolean; overload; + function AnadirAbono(AFactura : IBizFacturaProveedor) : Boolean; +// function Anadir(AFacturas : IBizFacturaProveedor; AListaAlbaranes : IBizAlbaranProveedor): Boolean; overload; + function Anadir(AFactura : IBizFacturaProveedor; const IDPedido : Integer): Boolean; overload; + + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(AFactura : IBizFacturaProveedor; AllItems: Boolean = false): Boolean; overload; + function Guardar(AFactura : IBizFacturaProveedor): Boolean; + procedure DescartarCambios(AFactura : IBizFacturaProveedor); + function Existe(const ID: Integer) : Boolean; + procedure RecuperarProveedor(AFactura : IBizFacturaProveedor); + function Duplicar(AFactura: IBizFacturaProveedor): IBizFacturaProveedor; + function GenerarAbono(AFactura: IBizFacturaProveedor): IBizFacturaProveedor; + + procedure Preview(AFactura : IBizFacturaProveedor; AllItems: Boolean = false); + procedure Print(AFactura : IBizFacturaProveedor; AllItems: Boolean = false); + + procedure RecalcularImportes(FFactura: IBizFacturaProveedor); + function EsModificable(AFactura: IBizFacturaProveedor): Boolean; + function EsEliminable(AFactura: IBizFacturaProveedor): Boolean; + + function ElegirFacturas(AFacturas : IBizFacturaProveedor; AMensaje: String; AMultiSelect: Boolean): IBizFacturaProveedor; + function ExtraerSeleccionados(ARecibosProveedor: IBizFacturaProveedor) : IBizFacturaProveedor; + + function DarListaAnosFacturas: TStringList; + procedure FiltrarAno(AFactura: IBizFacturaProveedor; ADynWhereDataTable: WideString; const Ano: String); + + function AsignarCuentaBancaria(AFacturas: IBizFacturaProveedor): TStringList; + end; + + TFacturasProveedorController = class(TControllerBase, IFacturasProveedorController) + private + FDataModule : IDataModuleFacturasProveedor; + FProveedorController : IProveedoresController; + FDetallesController : IDetallesFacturaProveedorController; + + function GetProveedorController: IProveedoresController; + procedure SetProveedorController(const Value: IProveedoresController); + + function GetDetallesController: IDetallesFacturaProveedorController; + procedure SetDetallesController(const Value: IDetallesFacturaProveedorController); + + function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; + function _Vacio : IBizFacturaProveedor; + + procedure FiltrarEmpresa(AFactura: IBizFacturaProveedor); + + function ValidarFactura(AFactura: IBizFacturaProveedor): Boolean; + procedure GenerarRecibos(AFactura: IBizFacturaProveedor); + + protected + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + + public + property ProveedorController: IProveedoresController read GetProveedorController write SetProveedorController; + property DetallesController: IDetallesFacturaProveedorController read GetDetallesController write SetDetallesController; + + constructor Create; override; + destructor Destroy; override; + + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(AFactura : IBizFacturaProveedor; AllItems: Boolean = false): Boolean; overload; + function Guardar(AFactura : IBizFacturaProveedor): Boolean; + procedure DescartarCambios(AFactura : IBizFacturaProveedor); virtual; + function Existe(const ID: Integer) : Boolean; virtual; + function Anadir(AFactura : IBizFacturaProveedor) : Boolean; overload; + function AnadirAbono(AFactura : IBizFacturaProveedor) : Boolean; +// function Anadir(AFacturas : IBizFacturaProveedor; AListaAlbaranes : IBizAlbaranProveedor): Boolean; overload; + function Anadir(AFactura : IBizFacturaProveedor; const IDPedido : Integer): Boolean; overload; + function Buscar(const ID: Integer): IBizFacturaProveedor; + function BuscarTodos: IBizFacturaProveedor; overload; + function BuscarTodos(const ID_Proveedor : Integer): IBizFacturaProveedor; overload; +// function BuscarTodasPendientesComision(IdAgente: Integer; IdComision: Integer; IdFacturasAsociadas: String): IBizFacturaProveedor; + function Nuevo (withInsert: Boolean = True): IBizFacturaProveedor; + procedure Ver(AFactura : IBizFacturaProveedor); + procedure VerTodos(AFacturas: IBizFacturaProveedor; + const AVerModal : Boolean = False; const AWindowCaption: String = ''; + const AHeaderText: String = ''); + function Duplicar(AFactura: IBizFacturaProveedor): IBizFacturaProveedor; + function GenerarAbono(AFactura: IBizFacturaProveedor): IBizFacturaProveedor; + procedure RecuperarProveedor(AFactura : IBizFacturaProveedor); + + procedure Preview(AFactura : IBizFacturaProveedor; AllItems: Boolean = false); + procedure Print(AFactura : IBizFacturaProveedor; AllItems: Boolean = false); + + procedure RecalcularImportes(FFactura: IBizFacturaProveedor); + function EsModificable(AFactura: IBizFacturaProveedor): Boolean; + function EsEliminable(AFactura: IBizFacturaProveedor): Boolean; + + function ElegirFacturas(AFacturas : IBizFacturaProveedor; AMensaje: String; AMultiSelect: Boolean): IBizFacturaProveedor; + function ExtraerSeleccionados(AFacturasProveedor: IBizFacturaProveedor) : IBizFacturaProveedor; + + function DarListaAnosFacturas: TStringList; + procedure FiltrarAno(AFactura: IBizFacturaProveedor; ADynWhereDataTable: WideString; const Ano: String); + + function AsignarCuentaBancaria(AFacturas: IBizFacturaProveedor): TStringList; + end; + +implementation + +uses + Windows, Controls, cxControls, DB, uEditorRegistryUtils, schFacturasProveedorClient_Intf, + uBizContactos, uIEditorFacturasProveedor, uIEditorFacturaProveedor, uFactuGES_App, + uDataModuleFacturasProveedor, uBizDetallesFacturaProveedor, uControllerDetallesBase, + uDataModuleUsuarios, uDAInterfaces, uDataTableUtils, uDateUtils, uROTypes, + uAlbaranesProveedorController, schAlbaranesProveedorClient_Intf, uDetallesAlbaranProveedorController, + + uBizPedidosProveedor, uPedidosProveedorController, uBizDetallesPedidoProveedor, + uRecibosProveedorController, uBizRecibosProveedor, uNumUtils, + uFacturasProveedorReportController, DateUtils, Forms, Dialogs, + uFormasPagoController, uBizFormasPago, uStringsUtils, + uIEditorElegirDomiciliacion, + + cxEdit; + +procedure CopiarArticulosPedido(AOrigen: IBizDetallesPedidoProveedor; + ADestino : IBizDetallesFacturaProveedor); +var + i : integer; + ADetallesController : IDetallesFacturaProveedorController; +begin + if not Assigned(AOrigen) then + raise Exception.Create ('Origen no asignado (CopiarArticulosPedido)'); + + if not Assigned(ADestino) then + raise Exception.Create ('Destino no asignado (CopiarArticulosPedido)'); + + if not AOrigen.DataTable.Active then + AOrigen.DataTable.Active := True; + + if not ADestino.DataTable.Active then + ADestino.DataTable.Active := True; + + ADetallesController := TDetallesFacturaProveedorController.Create; + try + //OJO IMPORTANTE + //Siempre que vayamos a trabajar con los detalles debemos hacer un beginupdate de los mismos y un endupdate para + //obligarle siempre a recalcular los detalles una sola vez + ADetallesController.BeginUpdate(ADestino); + + AOrigen.DataTable.First; + for i := 0 to AOrigen.DataTable.RecordCount - 1 do + begin + ADetallesController.Add(ADestino, TIPO_DETALLE_CONCEPTO); + ADestino.Edit; + ADestino.REFERENCIA := AOrigen.REFERENCIA; + if AOrigen.ID_ARTICULO > 0 then + ADestino.ID_ARTICULO := AOrigen.ID_ARTICULO; + ADestino.CONCEPTO := AOrigen.CONCEPTO; + ADestino.CANTIDAD := AOrigen.CANTIDAD; + ADestino.IMPORTE_UNIDAD := AOrigen.IMPORTE_UNIDAD; + ADestino.IMPORTE_TOTAL := AOrigen.IMPORTE_TOTAL; + ADestino.DESCUENTO := AOrigen.DESCUENTO; + ADestino.IMPORTE_PORTE := AOrigen.IMPORTE_PORTE; + ADestino.VISIBLE := AOrigen.VISIBLE; + ADestino.REFERENCIA_PROVEEDOR := AOrigen.REFERENCIA_PROVEEDOR; + ADestino.Post; + AOrigen.Next; + end; + finally + ADetallesController.EndUpdate(ADestino); + ADetallesController := NIL; + end; +end; + +{ TFacturasProveedorController } + +function TFacturasProveedorController.Anadir(AFactura: IBizFacturaProveedor) : Boolean; +begin + if not Assigned(AFactura) then + raise Exception.Create ('Factura no asignada (Anadir)'); + AFactura.Insert; + Result := True; +end; + + +function TFacturasProveedorController.Anadir(AFactura: IBizFacturaProveedor; + const IDPedido: Integer): Boolean; +var + APedidosController : IPedidosProveedorController; + APedido : IBizPedidoProveedor; +begin + Result := False; + if not Assigned(AFactura) then + raise Exception.Create ('Factura no asignada (Anadir)'); + + if (IDPedido < 0) or (IDPedido = 0) then + raise Exception.Create (Format('ID de pedido (%d) incorrecto (Anadir)', [IDPedido])); + + if not AFactura.DataTable.Active then + AFactura.DataTable.Active := True; + + ShowHourglassCursor; + Application.ProcessMessages; + + APedido := NIL; + APedidosController := TPedidosProveedorController.Create; + try + APedido := APedidosController.Buscar(IDPedido); + + if not Assigned(APedido) then + raise Exception.Create (Format('No se ha encontrado un pedido de Proveedor con ID %d (Anadir)', [IDPedido])); + + APedido.DataTable.Active := True; + APedidosController.RecuperarProveedor(APedido); + + Self.Anadir(AFactura); + AFactura.Proveedor := APedido.Proveedor; + + CopiarArticulosPedido(APedido.Detalles, AFactura.Detalles); + + // Guardo la factura que acabo de generar + AFactura.CalcularImporteTotal; + Self.Guardar(AFactura); + + Result := True; + finally + APedido := NIL; + APedidosController := NIL; + HideHourglassCursor; + Application.ProcessMessages; + end; +end; + +function TFacturasProveedorController.AnadirAbono(AFactura: IBizFacturaProveedor): Boolean; +begin + Result := Anadir(AFactura); + AFactura.TIPO := CTE_TIPO_ABONO; +end; + +function TFacturasProveedorController.AsignarCuentaBancaria(AFacturas: IBizFacturaProveedor): TStringList; +//Devolver la lista de facturas que no han podido ser modificadas referencia=nombreproveedor +var + AEditor : IEditorElegirDomiciliacion; + ACuentaBancaria: String; + +begin + Result := TStringList.Create; + + if Assigned(AFacturas) then + begin + CreateEditor('EditorElegirDomiciliacion', IEditorElegirDomiciliacion, AEditor); + if Assigned(AEditor) then + try + if (AEditor.ShowModal = mrOk) then + ACuentaBancaria := AEditor.CuentaBancaria; + finally + AEditor.Release; + AEditor := NIL; + end; + + with AFacturas.DataTable do + begin + First; + while not EOF do + begin + if (AFacturas.SITUACION = CTE_PENDIENTE) then + begin + Edit; + AFacturas.DATOS_BANCARIOS := ACuentaBancaria; + Post; + end + else + Result.Add(Format('%s=%s', [AFacturas.REFERENCIA, AFacturas.NOMBRE])); + Next; + end; + ApplyUpdates; + end; + end; +end; + +function TFacturasProveedorController.Buscar(const ID: Integer): IBizFacturaProveedor; +begin + Result := (FDataModule as IDataModuleFacturasProveedor).GetItem(ID); + FiltrarEmpresa(Result); +end; + +function TFacturasProveedorController.BuscarTodos( + const ID_Proveedor: Integer): IBizFacturaProveedor; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + + with Result.DataTable.DynamicWhere do + begin + // ID_CLIENTE + Condicion := NewBinaryExpression(NewField('', fld_FacturasProveedorID_PROVEEDOR), + NewConstant(ID_Proveedor, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + finally + HideHourglassCursor; + end; +end; + +{REPASARRRRR +function TFacturasProveedorController.BuscarTodasPendientesComision(IdAgente:Integer; IdComision: Integer; IdFacturasAsociadas: String): IBizFacturaProveedor; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + //Todas las facturas de un agente determinado + OpenBraket; + AddText(fld_FacturasProveedorID_AGENTE + ' = ' + IntToStr(IdAgente)); + CloseBraket; + + //Todas aquellas que no esten asociadas a ninguna comisin o asociadas a la comisin, + //pero no asociadas en el editor de la comision, esto es porque se puede agregar y quitar + //facturas y todos los cambios estan el cache y por lo tanto al pedir las facturas a seleccionar + //debemos tener en cuenta dichso cambios en cache + AddOperator(opAND); + OpenBraket; + OpenBraket; + //En el caso de ser facturas sin asociar + OpenBraket; + AddText(fld_FacturasProveedorID_COMISION_LIQUIDADA + ' IS NULL '); + CloseBraket; + //Quitamos aquellas que ya estn asociadas + if length(IdFacturasAsociadas) > 0 then + begin + AddOperator(opAND); + OpenBraket; + AddText(fld_FacturasProveedorID + ' not in (' + IdFacturasAsociadas + ')'); + CloseBraket; + end; + CloseBraket; + + AddOperator(opOR); + + OpenBraket; + //En caso de ser facturas ya asociadas lo limitamos a la comision actual + //ya que no debemos poder elegir facturas asociadas a otras comisiones + OpenBraket; + AddText(fld_FacturasProveedorID_COMISION_LIQUIDADA + ' = ' + IntToStr(IdComision)); + CloseBraket; + //En el caso de que halla facturas asociadas + if length(IdFacturasAsociadas) > 0 then + begin + AddOperator(opAND); + OpenBraket; + AddText(fld_FacturasProveedorID + ' not in (' + IdFacturasAsociadas + ')'); + CloseBraket; + end; + CloseBraket; + + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; +} + +function TFacturasProveedorController.BuscarTodos: IBizFacturaProveedor; +begin + Result := FDataModule.GetItems; + FiltrarEmpresa(Result); +end; + +constructor TFacturasProveedorController.Create; +begin + inherited; + FDataModule := TDataModuleFacturasProveedor.Create(Nil); + FProveedorController := TProveedoresController.Create; + FDetallesController := TDetallesFacturaProveedorController.Create; + FDetallesController.addObservador(Self); +end; + +function TFacturasProveedorController.CreateEditor(const AName: String; + const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + +function TFacturasProveedorController.DarListaAnosFacturas: TStringList; +begin + Result := FDataModule.GetAnosItems; +end; + +procedure TFacturasProveedorController.DescartarCambios(AFactura: IBizFacturaProveedor); +begin + if not Assigned(AFactura) then + raise Exception.Create ('Factura no asignada'); + + ShowHourglassCursor; + try + if (AFactura.State in dsEditModes) then + AFactura.Cancel; + + AFactura.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TFacturasProveedorController.Destroy; +begin + FDataModule := Nil; + FProveedorController := Nil; + FDetallesController := Nil; + inherited; +end; + +function TFacturasProveedorController.Duplicar(AFactura: IBizFacturaProveedor): IBizFacturaProveedor; +begin + Result := Self._Vacio; + ShowHourglassCursor; + try + DuplicarRegistros(AFactura.DataTable, Result.DataTable, mdrActual); + DuplicarRegistros(AFactura.Detalles.DataTable, Result.Detalles.DataTable, mdrTodos); + + // Hay que dejar algunos campos como si fuera una factura nueva + Result.Edit; + with Result do + begin + ID_EMPRESA := AppFactuGES.EmpresaActiva.ID; + USUARIO := AppFactuGES.UsuarioActivo.UserName; + REFERENCIA := ''; //Para que se asigne una nueva + SITUACION := CTE_PENDIENTE; //Una factura nueva debe estar pendiente + FECHA_FACTURA := DateOf(Now); + end; + + Result.Post; + finally + HideHourglassCursor; + end; +end; + +function TFacturasProveedorController.ValidarFactura(AFactura: IBizFacturaProveedor): Boolean; +var + AFormaPago: IBizFormaPago; + +begin + Result := False; + + if not Assigned(AFactura) then + raise Exception.Create ('Factura no asignada'); + + if (AFactura.DataTable.State in dsEditModes) then + AFactura.DataTable.Post; + + //Tambien hacemos post de sus tablas hija + if (AFactura.Detalles.DataTable.State in dsEditModes) then + AFactura.Detalles.DataTable.Post; + + if (AFactura.ID_PROVEEDOR < 0) or (AFactura.ID_PROVEEDOR = 0) then + // No comprobar el objeto Proveedor por que puede fallar la validacin + // cuando se generan facturas automticamente. +{ (not Assigned(AFactura.Proveedor)) or + (AFactura.Proveedor.IsEmpty) then} + raise Exception.Create('Debe indicar el Proveedor de esta factura'); + + if (EsFechaVacia(AFactura.FECHA_FACTURA)) then + raise Exception.Create('Debe indicar la fecha de esta factura'); + + if (AFactura.Detalles.DataTable.RecordCount = 0) then + raise Exception.Create('La factura debe tener al menos un concepto en su contenido'); + + { Esta validacin puede saltar cuando se generan facturas automticamente + por albaranes o pedidos y el Proveedor no tiene Tipo de IVA puesto. } +{ if (AFactura.ID_TIPO_IVA = 0) then + raise Exception.Create('Debe indicar un tipo de IVA para esta factura');} + + //De esta forma obligaremos siempre a tener un recibo asociado a la factura, + //porque si la forma de pago no tiene plazos es obligatorio la fecha de vencimiento + with TFormasPagoController.Create do + begin + try + AFormaPago := Buscar(AFactura.ID_FORMA_PAGO); + AFormaPago.DataTable.Active := True; + if (AFormaPago.Plazos.RecordCount = 0) + and (EsFechaVacia(AFactura.FECHA_VENCIMIENTO)) then + raise Exception.Create('Debe indicar una fecha de vencimiento para esta factura'); + finally + AFormaPago := NIL; + Free; + end; + end; + + //En caso de ser un Abono no podra tener un importe total positivo + if (AFactura.TIPO = CTE_TIPO_ABONO) then + if (AFactura.IMPORTE_TOTAL >= 0) then + raise Exception.Create('Un abono nunca no puede tener un importe positivo'); + + { Asegurarse de valores en campos "automticos" tanto + en MODIFICACIN como en INSERCIN. } + AFactura.Edit; + try + AFactura.USUARIO := AppFactuGES.UsuarioActivo.UserName; + + if Assigned(AFactura.Proveedor) + and (AFactura.ID_Proveedor <> AFactura.Proveedor.ID) then + AFactura.ID_Proveedor := AFactura.Proveedor.ID; + + Result := True; + finally + AFactura.Post; + end; +end; + +procedure TFacturasProveedorController.Ver(AFactura: IBizFacturaProveedor); +var + AEditor : IEditorFacturaProveedor; +begin + AEditor := NIL; + + RecuperarProveedor(AFactura); + CreateEditor('EditorFacturaProveedor', IEditorFacturaProveedor, AEditor); + + if Assigned(AEditor) then + try + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.Factura := AFactura; + + //MODO CONSULTAR + if not EsModificable(AFactura) then + begin + SetDataTableReadOnly(AFactura.DataTable, True); + AEditor.ReadOnly := True; + end; + + AEditor.ShowModal; + + //MODO CONSULTAR (Se deja la tabla como estaba) + if AEditor.ReadOnly then + SetDataTableReadOnly(AFactura.DataTable, False); + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +procedure TFacturasProveedorController.VerTodos(AFacturas: IBizFacturaProveedor; + const AVerModal : Boolean = False; const AWindowCaption: String = ''; + const AHeaderText: String = ''); +var + AEditor : IEditorFacturasProveedor; +begin + AEditor := NIL; + + CreateEditor('EditorFacturasProveedor', IEditorFacturasProveedor, AEditor); + try + if not EsCadenaVacia(AWindowCaption) then + AEditor.WindowCaption := AWindowCaption; + + if not EsCadenaVacia(AHeaderText) then + AEditor.HeaderText := AHeaderText; + + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.Facturas := AFacturas; + AEditor.MultiSelect := True; + if AVerModal then + AEditor.ShowModal + else + AEditor.ShowEmbedded; + finally + if AVerModal then + AEditor.Release; + AEditor := Nil; + end; +end; + +function TFacturasProveedorController._Vacio: IBizFacturaProveedor; +begin + Result := Buscar(ID_NULO); +end; + +function TFacturasProveedorController.Eliminar(const ID: Integer): Boolean; +var + AFactura : IBizFacturaProveedor; +begin + AFactura := Buscar(ID); + + if not Assigned(AFactura) then + raise Exception.Create(Format('No se ha encontrado la factura con ID = %d', [ID])); + + Result := Eliminar(AFactura); + AFactura := NIL; +end; + +function TFacturasProveedorController.ElegirFacturas(AFacturas: IBizFacturaProveedor; AMensaje: String; + AMultiSelect: Boolean): IBizFacturaProveedor; +{var + AEditor : IEditorElegirFacturasProveedor;} +begin + Result := NIL; +{ + CreateEditor('EditorElegirFacturasProveedor', IEditorElegirFacturasProveedor, AEditor); + if Assigned(AEditor) then + with AEditor do + begin + try + Controller := Self; + Facturas := AFacturas; + MultiSelect := AMultiSelect; + Mensaje := AMensaje; + if IsPositiveResult(ShowModal) then + Result := FacturasProveedoreSeleccionados; + finally + AEditor.Release; + AEditor := NIL; + end; + end; +} +end; + +function TFacturasProveedorController.Eliminar(AFactura: IBizFacturaProveedor; AllItems: Boolean = false): Boolean; +//En el caso de eliminar almenos un elemento del conjunto se devuelve true +var + bEliminado: Boolean; + +begin + bEliminado := False; + + if not Assigned(AFactura) then + raise Exception.Create ('Factura no asignada'); + + ShowHourglassCursor; + try + if not AFactura.DataTable.Active then + AFactura.DataTable.Active := True; + + if (AFactura.State in dsEditModes) then + AFactura.Cancel; + + //Siempre eliminaremos el seleccionado + if EsEliminable(AFactura) then + begin + AFactura.Delete; + bEliminado := True; + end; + + //En el caso de querer eliminar todos los items del objeto AAlbaran + if AllItems then + begin + with AFactura.DataTable do + begin + First; + while not EOF do + begin + if EsEliminable(AFactura) then + begin + AFactura.Delete; + bEliminado := True + end + else Next; + end; + end; + end; + + if bEliminado then + begin + try + AFactura.DataTable.ApplyUpdates; + Result := True + except + //En el caso de una factura que tiene recibos con devoluciones hechas no se puede borrar aunque la factura este en situacion de pendiente + AFactura.DataTable.CancelUpdates; + Result := False; + end; + end + else + Result := False; + + finally + HideHourglassCursor; + end; +end; + +function TFacturasProveedorController.EsEliminable(AFactura: IBizFacturaProveedor): Boolean; +begin + Result := EsModificable(AFactura); +end; + +function TFacturasProveedorController.EsModificable(AFactura: IBizFacturaProveedor): Boolean; +begin + if not Assigned(AFactura) then + raise Exception.Create ('Factura no asignado: EsModificable'); + + Result := (AFactura.SITUACION = CTE_PENDIENTE); +end; + +procedure TFacturasProveedorController.RecalcularImportes( + FFactura: IBizFacturaProveedor); +var + bEnEdicion : Boolean; + ADetallePosAct : Integer; +begin + if not Assigned(FFactura) then + raise Exception.Create ('Factura no asignada (RecalcularImportes)'); + + if FFactura.DataTable.Active then + FFactura.DataTable.Active := True; + + { Hay que guardar la posicin en la que estamos en los detalles por que + la asignacin de valores a los campos IMPORTE_NETO e IMPORTE_PORTE + (ver ms adelante) colocan el puntero en la tabla detalle al principio. + No he encontrado la razn por la que mueve el puntero. } + + ADetallePosAct := FFactura.Detalles.POSICION; + + bEnEdicion := (FFactura.DataTable.State in dsEditModes); + if not bEnEdicion then + FFactura.Edit; + + ShowHourglassCursor; + try + FFactura.IMPORTE_NETO := FDetallesController.DarTotalImporteTotal(FFactura.Detalles); + FFactura.IMPORTE_PORTE := FDetallesController.DarTotalPorteTotal(FFactura.Detalles); + if not bEnEdicion then + FFactura.Post; + finally + HideHourglassCursor; + // Restaurar la posicin que tenamos en los detalles. + FDetallesController.LocalizarPosicion(FFactura.Detalles, ADetallePosAct); + end; +end; + +procedure TFacturasProveedorController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +var + AFactura : IBizFacturaProveedor; + ADetalles : IBizDetallesFacturaProveedor; +begin + inherited; + + if Supports(ADataTable, IBizDetallesFacturaProveedor, ADetalles) and + Supports(ADetalles.DataTable.MasterSource.DataTable, IBizFacturaProveedor, AFactura) then + begin + RecalcularImportes(AFactura); + end; +end; + +procedure TFacturasProveedorController.RecuperarProveedor(AFactura: IBizFacturaProveedor); +begin + AFactura._Proveedor := (FProveedorController.Buscar(AFactura.ID_Proveedor) as IBizProveedor); +end; + +function TFacturasProveedorController.Existe(const ID: Integer): Boolean; +var + AFactura : IBizFacturaProveedor; +begin + try + AFactura := Buscar(ID); + Result := Assigned(AFactura) and (AFactura.ID = ID); + finally + AFactura := NIL; + end; +end; + +function TFacturasProveedorController.ExtraerSeleccionados(AFacturasProveedor: IBizFacturaProveedor): IBizFacturaProveedor; +var + ASeleccionados : IBizFacturaProveedor; +begin + ASeleccionados := (Self.Buscar(ID_NULO) as IBizFacturaProveedor); + CopyDataTableDA5(AFacturasProveedor.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + +procedure TFacturasProveedorController.FiltrarAno(AFactura: IBizFacturaProveedor; ADynWhereDataTable: WideString; const Ano: String); +var + Condicion: TDAWhereExpression; + FechaIni: String; + FechaFin: String; + +begin + AFactura.DataTable.DynamicWhere.Clear; + AFactura.DataTable.DynamicWhere.Xml := ADynWhereDataTable; + + if (Ano <> 'Todos') then + begin + // Filtrar las facturas actuales por empresa + FechaIni := '01/01/' + Ano; + FechaFin := '31/12/' + Ano; + with AFactura.DataTable.DynamicWhere do + begin + // (FECHA_INICIO between FECHA_FIN) + Condicion := NewBinaryExpression(NewField('', fld_FacturasProveedorFECHA_FACTURA), NewConstant(FechaIni, datString), dboGreaterOrEqual); + Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_FacturasProveedorFECHA_FACTURA), NewConstant(FechaFin, datString), dboLessOrEqual), Condicion, dboAnd); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Condicion, Expression, dboAnd); + end; + end; +end; + +procedure TFacturasProveedorController.FiltrarEmpresa(AFactura: IBizFacturaProveedor); +var + Condicion: TDAWhereExpression; +begin + if AFactura.DataTable.Active then + AFactura.DataTable.Active := False; + + // Filtrar las facturas actuales por empresa + with AFactura.DataTable.DynamicWhere do + begin + // (ID_EMPRESA >= ID) + Condicion := NewBinaryExpression(NewField('', fld_FacturasProveedorID_EMPRESA), NewConstant(AppFactuGES.EmpresaActiva.ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; +end; + +procedure TFacturasProveedorController.SetProveedorController(const Value: IProveedoresController); +begin + FProveedorController := Value; +end; + +procedure TFacturasProveedorController.SetDetallesController(const Value: IDetallesFacturaProveedorController); +begin + FDetallesController := Value; +end; + +function TFacturasProveedorController.Guardar(AFactura: IBizFacturaProveedor): Boolean; +begin + Result := False; + + if not Assigned(AFactura) then + raise Exception.Create ('Factura no asignada'); + + if not Assigned(FDetallesController) then + raise Exception.Create ('Controller detalles no asignado'); + + if ValidarFactura(AFactura) then + begin + ShowHourglassCursor; + + // Asegurarnos de que todos los importes estn bien. + RecalcularImportes(AFactura); + + try + AFactura.DataTable.ApplyUpdates; + + //Se generan los recibos automticamente a partir de la forma de pago + GenerarRecibos(AFactura); + + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TFacturasProveedorController.Nuevo(withInsert: Boolean = True): IBizFacturaProveedor; +var + AFactura : IBizFacturaProveedor; +begin + AFactura := FDataModule.NewItem; + FiltrarEmpresa(AFactura); + AFactura.DataTable.Active := True; + if withInsert then + AFactura.Insert; + Result := AFactura; +end; + +procedure TFacturasProveedorController.Preview(AFactura: IBizFacturaProveedor; AllItems: Boolean = false); +var + AReportController : IFacturasProveedorReportController; + ID_Facturas: TStringList; + +begin + AReportController := TFacturasProveedorReportController.Create; + try + ID_Facturas := TStringList.Create; + + //Si deseamos previsualizar todos los items del objeto albaran + if AllItems then + begin + with AFactura.DataTable do + begin + First; + while not EOF do + begin + ID_Facturas.Add(IntToStr(AFactura.ID)); + Next; + end; + end; + end + //Solo previsualizamos el item seleccionado + else + ID_Facturas.Add(IntToStr(AFactura.ID)); + + AReportController.Preview(ID_Facturas.CommaText); + + finally + AReportController := NIL; + FreeANDNIL(ID_Facturas); + end; +end; + +procedure TFacturasProveedorController.Print(AFactura: IBizFacturaProveedor; AllItems: Boolean = false); +var + AReportController : IFacturasProveedorReportController; + ID_Facturas: TStringList; + +begin + AReportController := TFacturasProveedorReportController.Create; + try + ID_Facturas := TStringList.Create; + + //Si deseamos previsualizar todos los items del objeto albaran + if AllItems then + begin + with AFactura.DataTable do + begin + First; + while not EOF do + begin + ID_Facturas.Add(IntToStr(AFactura.ID)); + Next; + end; + end; + end + //Solo previsualizamos el item seleccionado + else + ID_Facturas.Add(IntToStr(AFactura.ID)); + + AReportController.Print(ID_Facturas.CommaText); + + finally + AReportController := NIL; + FreeANDNIL(ID_Facturas); + end; +end; + +function TFacturasProveedorController.GenerarAbono(AFactura: IBizFacturaProveedor): IBizFacturaProveedor; +begin + ShowHourglassCursor; + try + Result := Duplicar(AFactura); + //Aade un concepto con los datos de la factura asociada al abono + FDetallesController.AnadirDetalleFacturaAsociadaAbono(Result.Detalles, AFactura.REFERENCIA, DateToStr(AFactura.FECHA_FACTURA)); + //Convierte todos los articulos de la factura a negativos por se un abono + FDetallesController.CambiarSignoDetalles(Result.Detalles); + + // Hay que dejar algunos campos como si fuera una factura nueva + Result.Edit; + Result.TIPO := CTE_TIPO_ABONO; + Result.Post; + + finally + HideHourglassCursor; + end; +end; + +procedure TFacturasProveedorController.GenerarRecibos(AFactura: IBizFacturaProveedor); +var + AFormasPagoController : IFormasPagoController; + AFormaPago: IBizFormaPago; + ARecibosProveedorController: IRecibosProveedorController; + ARecibos: IBizRecibosProveedor; + AFechaVencimiento: TDateTime; + i: Integer; + ADiaVencimiento: Integer; + ADiasMas: Integer; + BSemaforo: Boolean; + +begin + + if not Assigned(AFactura) then + Exit; + + AFormasPagoController := TFormasPagoController.Create; + AFormaPago := AFormasPagoController.Buscar(AFactura.ID_FORMA_PAGO); + AFormaPago.DataTable.Active := True; + + ARecibosProveedorController := TRecibosProveedorController.Create; + //Eliminamos todos los recibos que tuviera la factura porque sabemos que todos + //estarn pendientes (solo permitiremos modificar y eliminar facturas pendientes, + //parcialmente pagadas o pagadas no + ARecibos := ARecibosProveedorController.BuscarRecibosFactura(AFactura.ID); + ARecibosProveedorController.EliminarTodo(ARecibos); + + //Se cambia la lgica a peticion de tecsitel, en el caso de meter una fecha de vencimiento, + //los plazos de la forma de pago no tendrn efecto, se generar un recibo con el 100% y fecha de vencimiento + //de la factura. + With AFormaPago.Plazos.DataTable do + begin + i := 1; + First; + repeat + ARecibos := ARecibosProveedorController.Nuevo; + ARecibos.Edit; + ARecibos.ID_FACTURA := AFactura.ID; + ARecibos.REFERENCIA := AFactura.REFERENCIA + ' - ' + IntToStr(i); + ARecibos.FECHA_EMISION := AFactura.FECHA_FACTURA; + + if AFormaPago.Plazos.RecordCount < 1 then + begin + ARecibos.FECHA_VENCIMIENTO := AFactura.FECHA_VENCIMIENTO; + ARecibos.IMPORTE := AFactura.IMPORTE_TOTAL; + end + else + begin + AFechaVencimiento := AFactura.FECHA_FACTURA + AFormaPago.Plazos.NUM_DIAS; + ADiasMas := 0; + BSemaforo := False; + if (AFactura.Proveedor.VENCIMIENTO_FACTURAS_1 <> 0) + or (AFactura.Proveedor.VENCIMIENTO_FACTURAS_2 <> 0) + or (AFactura.Proveedor.VENCIMIENTO_FACTURAS_3 <> 0) then + begin + ADiaVencimiento := DayOf(AFechaVencimiento); + while (ADiaVencimiento <> AFactura.Proveedor.VENCIMIENTO_FACTURAS_1) + and (ADiaVencimiento <> AFactura.Proveedor.VENCIMIENTO_FACTURAS_2) + and (ADiaVencimiento <> AFactura.Proveedor.VENCIMIENTO_FACTURAS_3) do + begin + if ADiaVencimiento = DaysInMonth(AFechaVencimiento) then + begin + ADiaVencimiento := 1; + + //Controlamos con una variable semaforo que no nos quedemos en un bucle infinito + //intentando encontrar el dia de pago establecido para el cliente (es el caso de tener + //asignado el dia de pago 30 y llegar febrero en el que no se encuentra dicho dia, o + //tener como dia de pago los das 31 y en el caso de meses de 30 dias no encontrarlo. + if BSemaforo then + begin + ADiasMas := 0; + Break + end + else + BSemaforo := True; + end + else + Inc(ADiaVencimiento); + Inc(ADiasMas); + end; + end; + + AFechaVencimiento := IncDay(AFechaVencimiento, ADiasMas); + ARecibos.FECHA_VENCIMIENTO := AFechaVencimiento; + ARecibos.IMPORTE := AFactura.IMPORTE_TOTAL * (AFormaPago.Plazos.PORCENTAJE / 100); + end; + + ARecibos.DESCRIPCION := 'Pago de factura ' + AFactura.REFERENCIA + ': son ' + CifraToLetras(ARecibos.IMPORTE); + ARecibosProveedorController.Guardar(ARecibos); + Inc(i); + Next; + until (eof); + end; + + //Liberamos + AFormasPagoController := Nil; + AFormaPago := Nil; + ARecibosProveedorController := Nil; + ARecibos := Nil; +end; + +function TFacturasProveedorController.GetProveedorController: IProveedoresController; +begin + Result := FProveedorController; +end; + +function TFacturasProveedorController.GetDetallesController: IDetallesFacturaProveedorController; +begin + Result := FDetallesController; +end; + +end. diff --git a/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorReportController.dcu b/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorReportController.dcu new file mode 100644 index 0000000..b008e28 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorReportController.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorReportController.pas b/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorReportController.pas new file mode 100644 index 0000000..6922539 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorReportController.pas @@ -0,0 +1,112 @@ +unit uFacturasProveedorReportController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleFacturasProveedorReport, + uClientesController, uDetallesFacturaProveedorController, uBizFacturasProveedor; + +type + IFacturasProveedorReportController = interface(IControllerBase) + ['{551F82DC-B8DC-482E-A20D-15003E845078}'] + procedure Preview(const AFacturaID : String); + procedure Print(const AFacturaID : String); + end; + + TFacturasProveedorReportController = class(TControllerBase, IFacturasProveedorReportController) + private + FDataModule : IDataModuleFacturasProveedorReport; + function CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; + public + constructor Create; override; + destructor Destroy; override; + + procedure Preview(const AFacturaID : String); + procedure Print(const AFacturaID : String); + end; + + +implementation + +uses + uROTypes, uEditorRegistryUtils, uIEditorFacturasProveedorPreview, + uEditorPreview, uDataModuleFacturasProveedor, uEditorBase, cxControls; + +{ TFacturasProveedorReportController } + +constructor TFacturasProveedorReportController.Create; +begin + inherited; + FDataModule := TDataModuleFacturasProveedor.Create(Nil); +end; + +function TFacturasProveedorReportController.CreateEditor(const AName: String; + const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + + +destructor TFacturasProveedorReportController.Destroy; +begin + FDataModule := NIL; + inherited; +end; + +procedure TFacturasProveedorReportController.Preview(const AFacturaID : String); +var + AStream: Binary; + AEditor : IEditorFacturasProveedorPreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(AFacturaID); + try + CreateEditor('EditorFacturasProveedorPreview', IEditorFacturasProveedorPreview, AEditor); + if Assigned(AEditor) then + try + AEditor.LoadFromStream(AStream); + AEditor.Preview; + finally + AEditor.Release; + end; + finally + FreeAndNil(AStream); + AEditor := Nil; + end; + finally + HideHourglassCursor; + end; +end; + +procedure TFacturasProveedorReportController.Print(const AFacturaID : String); +var + AStream: Binary; + AEditor : IEditorFacturasProveedorPreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(AFacturaID); + try + CreateEditor('EditorFacturasProveedorPreview', IEditorFacturasProveedorPreview, AEditor); + if Assigned(AEditor) then + try + AEditor.LoadFromStream(AStream); + AEditor.Print; + finally + AEditor.Release; + end; + finally + FreeAndNil(AStream); + AEditor := Nil; + end; + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Facturas de proveedor/Data/FacturasProveedor_data.bdsproj b/Source/Modulos/Facturas de proveedor/Data/FacturasProveedor_data.bdsproj new file mode 100644 index 0000000..95da152 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Data/FacturasProveedor_data.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + FacturasProveedor_data.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Facturas de proveedor/Data/FacturasProveedor_data.dcu b/Source/Modulos/Facturas de proveedor/Data/FacturasProveedor_data.dcu new file mode 100644 index 0000000..b58cdf4 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Data/FacturasProveedor_data.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Data/FacturasProveedor_data.dpk b/Source/Modulos/Facturas de proveedor/Data/FacturasProveedor_data.dpk new file mode 100644 index 0000000..e709e0e Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Data/FacturasProveedor_data.dpk differ diff --git a/Source/Modulos/Facturas de proveedor/Data/FacturasProveedor_data.dproj b/Source/Modulos/Facturas de proveedor/Data/FacturasProveedor_data.dproj new file mode 100644 index 0000000..fe65b23 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Data/FacturasProveedor_data.dproj @@ -0,0 +1,541 @@ + + + {38eef566-1895-4bdd-8007-f92f5e32cce6} + FacturasProveedor_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\FacturasProveedor_data.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0FacturasProveedor_data.dpk + + + + + MainSource + + + + +
DataModuleFacturasProveedor
+ TDAClientDataModule +
+
+
+ diff --git a/Source/Modulos/Facturas de proveedor/Data/FacturasProveedor_data.drc b/Source/Modulos/Facturas de proveedor/Data/FacturasProveedor_data.drc new file mode 100644 index 0000000..7cac6f8 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Data/FacturasProveedor_data.drc @@ -0,0 +1,17 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Facturas de proveedor\Data\uDataModuleFacturasProveedor.dfm */ +/* C:\Codigo\Source\Modulos\Facturas de proveedor\Data\FacturasProveedor_data.res */ +/* c:\temp\dtf1CF.tmp */ diff --git a/Source/Modulos/Facturas de proveedor/Data/FacturasProveedor_data.rc b/Source/Modulos/Facturas de proveedor/Data/FacturasProveedor_data.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Data/FacturasProveedor_data.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Facturas de proveedor/Data/FacturasProveedor_data.res b/Source/Modulos/Facturas de proveedor/Data/FacturasProveedor_data.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Data/FacturasProveedor_data.res differ diff --git a/Source/Modulos/Facturas de proveedor/Data/uDataModuleFacturasProveedor.dcu b/Source/Modulos/Facturas de proveedor/Data/uDataModuleFacturasProveedor.dcu new file mode 100644 index 0000000..d100101 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Data/uDataModuleFacturasProveedor.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Data/uDataModuleFacturasProveedor.dfm b/Source/Modulos/Facturas de proveedor/Data/uDataModuleFacturasProveedor.dfm new file mode 100644 index 0000000..f55dfce --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Data/uDataModuleFacturasProveedor.dfm @@ -0,0 +1,471 @@ +inherited DataModuleFacturasProveedor: TDataModuleFacturasProveedor + OnCreate = DAClientDataModuleCreate + Height = 318 + Width = 518 + object RORemoteService: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvFacturasProveedor' + Left = 48 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 84 + end + object rda_FacturasProveedor: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetDataCall.RemoteService = RORemoteService + UpdateDataCall.RemoteService = RORemoteService + GetScriptsCall.RemoteService = RORemoteService + RemoteService = RORemoteService + DataStreamer = Bin2DataStreamer + Left = 51 + Top = 151 + end + object tbl_FacturasProveedor: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_FACTURAS_PROVEEDOR_ID' + Required = True + ServerAutoRefresh = True + DictionaryEntry = 'FacturasProveedor_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'FacturasProveedor_ID_EMPRESA' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 20 + DisplayLabel = 'Referencia' + DictionaryEntry = 'FacturasProveedor_REFERENCIA' + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + DisplayLabel = 'Tipo' + DictionaryEntry = 'FacturasProveedor_TIPO' + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasProveedor_REFERENCIA_PROVEEDOR' + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + DisplayLabel = 'Fecha de las factura' + DictionaryEntry = 'FacturasProveedor_FECHA_FACTURA' + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + DisplayLabel = 'Fecha vto.' + end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + DisplayLabel = 'Situaci'#243'n' + DictionaryEntry = 'FacturasProveedor_SITUACION' + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + DictionaryEntry = 'FacturasProveedor_BASE_IMPONIBLE' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DisplayLabel = 'Dto.' + Alignment = taRightJustify + DictionaryEntry = 'FacturasProveedor_DESCUENTO' + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + DictionaryEntry = 'FacturasProveedor_IMPORTE_DESCUENTO' + end + item + Name = 'IVA' + DataType = datFloat + Alignment = taRightJustify + DictionaryEntry = 'FacturasProveedor_IVA' + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + DictionaryEntry = 'FacturasProveedor_IMPORTE_IVA' + end + item + Name = 'RE' + DataType = datFloat + Alignment = taRightJustify + DictionaryEntry = 'FacturasProveedor_RE' + end + item + Name = 'IMPORTE_RE' + DataType = datCurrency + DisplayLabel = 'Importe RE' + Alignment = taRightJustify + DictionaryEntry = 'FacturasProveedor_IMPORTE_RE' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + DictionaryEntry = 'FacturasProveedor_IMPORTE_TOTAL' + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + DisplayLabel = 'Observaciones' + DictionaryEntry = 'FacturasProveedor_OBSERVACIONES' + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + DisplayLabel = 'FacturasProveedor_ID_PROVEEDOR' + DictionaryEntry = 'FacturasProveedor_ID_PROVEEDOR' + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + DisplayLabel = 'NIF/CIF' + DictionaryEntry = 'FacturasProveedor_NIF_CIF' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 100 + DisplayLabel = 'Cliente' + DictionaryEntry = 'FacturasProveedor_NOMBRE' + end + item + Name = 'CALLE' + DataType = datString + Size = 150 + DisplayLabel = 'Direcci'#243'n' + DictionaryEntry = 'FacturasProveedor_CALLE' + end + item + Name = 'POBLACION' + DataType = datString + Size = 150 + DisplayLabel = 'Poblaci'#243'n' + DictionaryEntry = 'FacturasProveedor_POBLACION' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 30 + DisplayLabel = 'Provincia' + DictionaryEntry = 'FacturasProveedor_PROVINCIA' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#243'd. postal' + DictionaryEntry = 'FacturasProveedor_CODIGO_POSTAL' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'FacturasProveedor_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'FacturasProveedor_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 100 + DictionaryEntry = 'FacturasProveedor_USUARIO' + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + DisplayLabel = 'FacturasProveedor_ID_FORMA_PAGO' + DictionaryEntry = 'FacturasProveedor_ID_FORMA_PAGO' + end + item + Name = 'RECARGO_EQUIVALENCIA' + DataType = datSmallInt + DisplayLabel = #191'Con R.E.?' + DictionaryEntry = 'FacturasProveedor_RECARGO_EQUIVALENCIA' + end + item + Name = 'ID_TIPO_IVA' + DataType = datInteger + DictionaryEntry = 'FacturasProveedor_ID_TIPO_IVA' + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + DisplayLabel = 'Importe neto' + Alignment = taRightJustify + DictionaryEntry = 'FacturasProveedor_IMPORTE_NETO' + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + DisplayLabel = 'Importe del porte' + Alignment = taRightJustify + DictionaryEntry = 'FacturasProveedor_IMPORTE_PORTE' + end + item + Name = 'DATOS_BANCARIOS' + DataType = datString + Size = 255 + DisplayLabel = 'Datos bancarios' + DictionaryEntry = 'FacturasProveedor_DATOS_BANCARIOS' + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_FacturasProveedor + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'FacturasProveedor' + IndexDefs = <> + Left = 208 + Top = 32 + end + object ds_FacturasProveedor: TDADataSource + DataSet = tbl_FacturasProveedor.Dataset + DataTable = tbl_FacturasProveedor + Left = 208 + Top = 104 + end + object tbl_FacturasProveedor_Detalles: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_FACTURA_PROV_DETALLES_ID' + Required = True + ServerAutoRefresh = True + DictionaryEntry = 'FacturasProveedor_Detalles_ID' + InPrimaryKey = True + end + item + Name = 'ID_FACTURA' + DataType = datInteger + DictionaryEntry = 'FacturasProveedor_Detalles_ID_FACTURA' + end + item + Name = 'POSICION' + DataType = datInteger + DisplayLabel = 'Posici'#243'n' + DictionaryEntry = 'FacturasProveedor_Detalles_POSICION' + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + DisplayLabel = 'Tipo detalle' + DictionaryEntry = 'FacturasProveedor_Detalles_TIPO_DETALLE' + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + DisplayLabel = 'Concepto' + DictionaryEntry = 'FacturasProveedor_Detalles_CONCEPTO' + end + item + Name = 'CANTIDAD' + DataType = datFloat + DisplayLabel = 'Cantidad' + DictionaryEntry = 'FacturasProveedor_Detalles_CANTIDAD' + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + DictionaryEntry = 'FacturasProveedor_Detalles_IMPORTE_UNIDAD' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + DictionaryEntry = 'FacturasProveedor_Detalles_IMPORTE_TOTAL' + end + item + Name = 'VISIBLE' + DataType = datSmallInt + DisplayLabel = #191'Visible?' + DictionaryEntry = 'FacturasProveedor_Detalles_VISIBLE' + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + DictionaryEntry = 'FacturasProveedor_Detalles_ID_ARTICULO' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DictionaryEntry = 'FacturasProveedor_Detalles_DESCUENTO' + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + DictionaryEntry = 'FacturasProveedor_Detalles_IMPORTE_PORTE' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasProveedor_Detalles_REFERENCIA' + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasProveedor_Detalles_REFERENCIA_PROVEEDOR' + end + item + Name = 'REFERENCIA_FABRICANTE' + DataType = datString + Size = 255 + end> + Params = <> + MasterMappingMode = mmWhere + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_FacturasProveedor + MasterSource = ds_FacturasProveedor + MasterFields = 'ID' + DetailFields = 'ID_FACTURA' + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'FacturasProveedor_Detalles' + IndexDefs = <> + Left = 368 + Top = 32 + end + object ds_FacturasProveedor_Detalles: TDADataSource + DataSet = tbl_FacturasProveedor_Detalles.Dataset + DataTable = tbl_FacturasProveedor_Detalles + Left = 368 + Top = 104 + end + object tbl_FacturasProveedor_Pedidos: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_PEDIDOS_PROV_PEDIDOS_ID' + DictionaryEntry = 'FacturasProveedor_Pedidos_ID' + InPrimaryKey = True + end + item + Name = 'ID_FACTURA' + DataType = datInteger + DisplayLabel = 'FacturasProveedor_Pedidos_ID_FACTURA' + DictionaryEntry = 'FacturasProveedor_Pedidos_ID_FACTURA' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + DictionaryEntry = 'FacturasProveedor_Pedidos_IMPORTE_TOTAL' + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + DisplayLabel = 'FacturasProveedor_Pedidos_ID_PEDIDO' + DictionaryEntry = 'FacturasProveedor_Pedidos_ID_PEDIDO' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. pedido' + DictionaryEntry = 'FacturasProveedor_Pedidos_REFERENCIA' + end + item + Name = 'FECHA_PEDIDO' + DataType = datDateTime + DisplayLabel = 'Fecha' + DictionaryEntry = 'FacturasProveedor_Pedidos_FECHA_PEDIDO' + end + item + Name = 'PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'Proveedor' + DictionaryEntry = 'FacturasProveedor_Pedidos_PROVEEDOR' + end> + Params = <> + MasterMappingMode = mmWhere + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_FacturasProveedor + MasterSource = ds_FacturasProveedor + MasterFields = 'ID' + DetailFields = 'ID_FACTURA' + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'FacturasProveedor_Pedidos' + IndexDefs = <> + Left = 368 + Top = 168 + end + object ds_FacturasProveedor_Pedidos: TDADataSource + DataSet = tbl_FacturasProveedor_Pedidos.Dataset + DataTable = tbl_FacturasProveedor_Pedidos + Left = 368 + Top = 232 + end + object tbl_ListaAnosFacturas: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ANO' + DataType = datString + Size = 254 + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_FacturasProveedor + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'ListaAnosFacturas' + IndexDefs = <> + Left = 208 + Top = 208 + end + object ds_ListaAnosFacturas: TDADataSource + DataSet = tbl_ListaAnosFacturas.Dataset + DataTable = tbl_ListaAnosFacturas + Left = 208 + Top = 160 + end +end diff --git a/Source/Modulos/Facturas de proveedor/Data/uDataModuleFacturasProveedor.pas b/Source/Modulos/Facturas de proveedor/Data/uDataModuleFacturasProveedor.pas new file mode 100644 index 0000000..3362ed3 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Data/uDataModuleFacturasProveedor.pas @@ -0,0 +1,178 @@ +unit uDataModuleFacturasProveedor; + +interface + +uses + SysUtils, Classes, DB, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uRORemoteService, uROClient, uROBinMessage, + uDataModuleBase, + uIDataModuleFacturasProveedor, uBizFacturasProveedor, uBizDetallesFacturaProveedor, + uBizPedidosFacturaProveedor, + uDADesigntimeCall, uIDataModuleFacturasProveedorReport, uDARemoteDataAdapter, + uDADataStreamer, uDABin2DataStreamer, uDAInterfaces, uDAMemDataTable; + +type + TDataModuleFacturasProveedor = class(TDataModuleBase, IDataModuleFacturasProveedor, IDataModuleFacturasProveedorReport) + RORemoteService: TRORemoteService; + Bin2DataStreamer: TDABin2DataStreamer; + rda_FacturasProveedor: TDARemoteDataAdapter; + tbl_FacturasProveedor: TDAMemDataTable; + ds_FacturasProveedor: TDADataSource; + tbl_FacturasProveedor_Detalles: TDAMemDataTable; + ds_FacturasProveedor_Detalles: TDADataSource; + tbl_FacturasProveedor_Pedidos: TDAMemDataTable; + ds_FacturasProveedor_Pedidos: TDADataSource; + tbl_ListaAnosFacturas: TDAMemDataTable; + ds_ListaAnosFacturas: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + private + function _GetDetalles : IBizDetallesFacturaProveedor; + function _GetPedidos : IBizPedidosFacturaProveedor; + public + function GetItems : IBizFacturaProveedor; + function GetItem(const ID : Integer) : IBizFacturaProveedor; + function NewItem : IBizFacturaProveedor; + + // Report + function GetReport(const AFacturaID: String): Binary; + + function GetAnosItems : TStringList; + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataTableUtils, uDataModuleConexion, cxControls, + schFacturasProveedorClient_Intf, uBizContactos; + +{ TdmFacturasProveedor } + +procedure TDataModuleFacturasProveedor.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleFacturasProveedor.GetReport(const AFacturaID: String): Binary; +begin +// Result := (RORemoteService as IsrvFacturasProveedor).GenerateReport(AFacturaID) +end; + +function TDataModuleFacturasProveedor.NewItem: IBizFacturaProveedor; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleFacturasProveedor._GetDetalles: IBizDetallesFacturaProveedor; +var + ADetalles : TDAMemDataTable; +begin + ShowHourglassCursor; + try + ADetalles := CloneDataTable(tbl_FacturasProveedor_Detalles); + with ADetalles do + begin + BusinessRulesID := BIZ_CLIENT_DETALLES_FACTURA_PROVEEDOR; + DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; + end; + Result := (ADetalles as IBizDetallesFacturaProveedor); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleFacturasProveedor._GetPedidos: IBizPedidosFacturaProveedor; +var + APedidos : TDAMemDataTable; +begin + ShowHourglassCursor; + try + APedidos := CloneDataTable(tbl_FacturasProveedor_Pedidos); + with APedidos do + begin + BusinessRulesID := BIZ_CLIENT_PEDIDOS_FACTURA_PROVEEDOR; + DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; + end; + Result := (APedidos as IBizPedidosFacturaProveedor); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleFacturasProveedor.GetAnosItems: TStringList; +var + AListaAnos: TStringList; +begin + AListaAnos := TStringList.Create; + ShowHourglassCursor; + try + with tbl_ListaAnosFacturas do + begin + Open; + First; + while not eof do + begin + AListaAnos.Add(Format('%s=%s', [Fields[0].AsString, Fields[0].AsString])); + Next; + end; + Close; + end; + Result := AListaAnos; + finally + HideHourglassCursor; + end; +end; + +function TDataModuleFacturasProveedor.GetItem(const ID: Integer): IBizFacturaProveedor; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + + with Result.DataTable.DynamicWhere do + begin + // (ID = :ID) + Condicion := NewBinaryExpression(NewField('', fld_FacturasProveedorID), NewConstant(ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TDataModuleFacturasProveedor.GetItems: IBizFacturaProveedor; +var + AFactura : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AFactura := CloneDataTable(tbl_FacturasProveedor); + AFactura.BusinessRulesID := BIZ_CLIENT_FACTURA_PROVEEDOR; + + // EL CAMPO REFERENCIA TIENE QUE SER AUTOREFRESH!!!!! + AFactura.FieldByName(fld_FacturasProveedorREFERENCIA).ServerAutoRefresh := TRUE; + + with TBizFacturaProveedor(AFactura.BusinessEventsObj) do + begin + Detalles := _GetDetalles; +// Pedidos := _GetPedidos; + end; + + Result := (AFactura as IBizFacturaProveedor); + finally + HideHourglassCursor; + end; +end; + + +end. diff --git a/Source/Modulos/Facturas de proveedor/FacturasProveedor_Group.bdsgroup b/Source/Modulos/Facturas de proveedor/FacturasProveedor_Group.bdsgroup new file mode 100644 index 0000000..f8a84b0 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/FacturasProveedor_Group.bdsgroup @@ -0,0 +1,41 @@ + + + + + + + + + + + + + ..\..\DataAbstract_D10\DataAbstract_D10.bdsproj + ..\..\Base\Base.bdsproj + ..\..\Base\GUIBase\GUIBase.bdsproj + ..\Contactos\Views\Contactos_view.bdsproj + ..\Articulos\Views\Articulos_view.bdsproj + ..\Recibos de proveedor\Model\RecibosProveedor_model.bdsproj + ..\Recibos de proveedor\Data\RecibosProveedor_data.bdsproj + ..\Recibos de proveedor\Controller\RecibosProveedor_controller.bdsproj + ..\Recibos de proveedor\Views\RecibosProveedor_view.bdsproj + ..\Recibos de proveedor\Plugin\RecibosProveedor_plugin.bdsproj + Model\FacturasProveedor_model.bdsproj + Data\FacturasProveedor_data.bdsproj + ..\Albaranes de proveedor\Controller\AlbaranesProveedor_controller.bdsproj + ..\Albaranes de proveedor\Views\AlbaranesProveedor_view.bdsproj + ..\Albaranes de proveedor\Plugin\AlbaranesProveedor_plugin.bdsproj + ..\Pedidos a proveedor\Controller\PedidosProveedor_controller.bdsproj + Controller\FacturasProveedor_controller.bdsproj + ..\Relaciones\Albaranes de proveedor - Facturas de proveedor\AlbProv_FacProv_relation.bdsproj + ..\Relaciones\Pedidos de proveedor - Facturas de proveedor\PedProv_FacProv_relation.bdsproj + Views\FacturasProveedor_view.bdsproj + Plugin\FacturasProveedor_plugin.bdsproj + ..\..\Cliente\FactuGES.bdsproj + ..\..\Servidor\FactuGES_Server.bdsproj + DataAbstract_D10.bpl Base.bpl GUIBase.bpl Contactos_view.bpl Articulos_view.bpl RecibosProveedor_model.bpl RecibosProveedor_data.bpl RecibosProveedor_controller.bpl RecibosProveedor_view.bpl RecibosProveedor_plugin.bpl FacturasProveedor_model.bpl FacturasProveedor_data.bpl AlbaranesProveedor_controller.bpl AlbaranesProveedor_view.bpl AlbaranesProveedor_plugin.bpl PedidosProveedor_controller.bpl FacturasProveedor_controller.bpl AlbProv_FacProv_relation.bpl PedProv_FacProv_relation.bpl FacturasProveedor_view.bpl FacturasProveedor_plugin.bpl FactuGES.exe FactuGES_Server.exe + + + + diff --git a/Source/Modulos/Facturas de proveedor/FacturasProveedor_Group.config b/Source/Modulos/Facturas de proveedor/FacturasProveedor_Group.config new file mode 100644 index 0000000..c8f2834 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/FacturasProveedor_Group.config @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Source/Modulos/Facturas de proveedor/FacturasProveedor_Group.groupproj b/Source/Modulos/Facturas de proveedor/FacturasProveedor_Group.groupproj new file mode 100644 index 0000000..351e67c --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/FacturasProveedor_Group.groupproj @@ -0,0 +1,314 @@ + + + {245fdb90-fbaa-4d27-93b1-6b97711e2c63} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Facturas de proveedor/Model/Data/uIDataModuleFacturasProveedor.dcu b/Source/Modulos/Facturas de proveedor/Model/Data/uIDataModuleFacturasProveedor.dcu new file mode 100644 index 0000000..1aa24a2 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Model/Data/uIDataModuleFacturasProveedor.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Model/Data/uIDataModuleFacturasProveedor.pas b/Source/Modulos/Facturas de proveedor/Model/Data/uIDataModuleFacturasProveedor.pas new file mode 100644 index 0000000..bf21f57 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Model/Data/uIDataModuleFacturasProveedor.pas @@ -0,0 +1,20 @@ +unit uIDataModuleFacturasProveedor; + +interface + +uses + SysUtils, Classes, uROTypes, + uBizFacturasProveedor, uBizDetallesFacturaProveedor; + +type + IDataModuleFacturasProveedor = interface + ['{FD0F5B2F-5556-4031-86F0-EFF96805FD66}'] + function GetAnosItems : TStringList; + function GetItems: IBizFacturaProveedor; + function GetItem(const ID : Integer) : IBizFacturaProveedor; + function NewItem : IBizFacturaProveedor; + end; + +implementation + +end. diff --git a/Source/Modulos/Facturas de proveedor/Model/Data/uIDataModuleFacturasProveedorReport.dcu b/Source/Modulos/Facturas de proveedor/Model/Data/uIDataModuleFacturasProveedorReport.dcu new file mode 100644 index 0000000..d24bea0 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Model/Data/uIDataModuleFacturasProveedorReport.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Model/Data/uIDataModuleFacturasProveedorReport.pas b/Source/Modulos/Facturas de proveedor/Model/Data/uIDataModuleFacturasProveedorReport.pas new file mode 100644 index 0000000..8194f39 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Model/Data/uIDataModuleFacturasProveedorReport.pas @@ -0,0 +1,16 @@ +unit uIDataModuleFacturasProveedorReport; + +interface + +uses + SysUtils, Classes, uROTypes; + +type + IDataModuleFacturasProveedorReport = interface + ['{4979ACC5-069C-45C8-9D0B-49FC471F1A92}'] + function GetReport(const AFacturaID: String): Binary; + end; + +implementation + +end. diff --git a/Source/Modulos/Facturas de proveedor/Model/FacturasProveedor_model.bdsproj b/Source/Modulos/Facturas de proveedor/Model/FacturasProveedor_model.bdsproj new file mode 100644 index 0000000..a6f02f0 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Model/FacturasProveedor_model.bdsproj @@ -0,0 +1,496 @@ + + + + + + + + + + + + FacturasProveedor_model.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + EurekaLog 5.1.9 + + + + True + diff --git a/Source/Modulos/Facturas de proveedor/Model/FacturasProveedor_model.dcu b/Source/Modulos/Facturas de proveedor/Model/FacturasProveedor_model.dcu new file mode 100644 index 0000000..28c7bcf Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Model/FacturasProveedor_model.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Model/FacturasProveedor_model.dpk b/Source/Modulos/Facturas de proveedor/Model/FacturasProveedor_model.dpk new file mode 100644 index 0000000..94df676 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Model/FacturasProveedor_model.dpk differ diff --git a/Source/Modulos/Facturas de proveedor/Model/FacturasProveedor_model.dproj b/Source/Modulos/Facturas de proveedor/Model/FacturasProveedor_model.dproj new file mode 100644 index 0000000..5e57be2 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Model/FacturasProveedor_model.dproj @@ -0,0 +1,560 @@ + + + + {a7225a8d-f40d-4878-9a27-c5de0e7cb638} + FacturasProveedor_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\FacturasProveedor_model.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;..\..\..\Lib;..\..\Lib + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;..\..\..\Lib;..\..\Lib + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;..\..\..\Lib;..\..\Lib + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 + ExpressPrinting System by Developer Express Inc. + Microsoft Office 2000 Sample Automation Server Wrapper Components + Microsoft Office XP Sample Automation Server Wrapper Components + FacturasProveedor_model.dpkFalse + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Facturas de proveedor/Model/FacturasProveedor_model.drc b/Source/Modulos/Facturas de proveedor/Model/FacturasProveedor_model.drc new file mode 100644 index 0000000..be0f261 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Model/FacturasProveedor_model.drc @@ -0,0 +1,16 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Facturas de proveedor\Model\FacturasProveedor_model.res */ +/* c:\temp\dtf1CD.tmp */ diff --git a/Source/Modulos/Facturas de proveedor/Model/FacturasProveedor_model.rc b/Source/Modulos/Facturas de proveedor/Model/FacturasProveedor_model.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Model/FacturasProveedor_model.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Facturas de proveedor/Model/FacturasProveedor_model.res b/Source/Modulos/Facturas de proveedor/Model/FacturasProveedor_model.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Model/FacturasProveedor_model.res differ diff --git a/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorClient_Intf.dcu b/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorClient_Intf.dcu new file mode 100644 index 0000000..2fd6d3a Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorClient_Intf.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorClient_Intf.pas b/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorClient_Intf.pas new file mode 100644 index 0000000..5325152 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorClient_Intf.pas @@ -0,0 +1,2192 @@ +unit schFacturasProveedorClient_Intf; + +interface + +uses + Classes, DB, schBase_Intf, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_ListaAnosFacturas = '{B75825C2-3B8D-4DF1-AF22-024910F5FBD9}'; + RID_FacturasProveedor = '{44FD4DE6-500F-4F58-A58C-97CF98028CD2}'; + RID_FacturasProveedor_Detalles = '{1CB49BE9-8421-4FD5-80E8-12FFC6360422}'; + RID_FacturasProveedor_Pedidos = '{961FA245-B4B9-478F-8B57-34025D5C9EEB}'; + + { Data table names } + nme_ListaAnosFacturas = 'ListaAnosFacturas'; + nme_FacturasProveedor = 'FacturasProveedor'; + nme_FacturasProveedor_Detalles = 'FacturasProveedor_Detalles'; + nme_FacturasProveedor_Pedidos = 'FacturasProveedor_Pedidos'; + + { ListaAnosFacturas fields } + fld_ListaAnosFacturasANO = 'ANO'; + + { ListaAnosFacturas field indexes } + idx_ListaAnosFacturasANO = 0; + + { FacturasProveedor fields } + fld_FacturasProveedorID = 'ID'; + fld_FacturasProveedorID_EMPRESA = 'ID_EMPRESA'; + fld_FacturasProveedorREFERENCIA = 'REFERENCIA'; + fld_FacturasProveedorTIPO = 'TIPO'; + fld_FacturasProveedorREFERENCIA_PROVEEDOR = 'REFERENCIA_PROVEEDOR'; + fld_FacturasProveedorFECHA_FACTURA = 'FECHA_FACTURA'; + fld_FacturasProveedorFECHA_VENCIMIENTO = 'FECHA_VENCIMIENTO'; + fld_FacturasProveedorSITUACION = 'SITUACION'; + fld_FacturasProveedorBASE_IMPONIBLE = 'BASE_IMPONIBLE'; + fld_FacturasProveedorDESCUENTO = 'DESCUENTO'; + fld_FacturasProveedorIMPORTE_DESCUENTO = 'IMPORTE_DESCUENTO'; + fld_FacturasProveedorIVA = 'IVA'; + fld_FacturasProveedorIMPORTE_IVA = 'IMPORTE_IVA'; + fld_FacturasProveedorRE = 'RE'; + fld_FacturasProveedorIMPORTE_RE = 'IMPORTE_RE'; + fld_FacturasProveedorIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_FacturasProveedorOBSERVACIONES = 'OBSERVACIONES'; + fld_FacturasProveedorID_PROVEEDOR = 'ID_PROVEEDOR'; + fld_FacturasProveedorNIF_CIF = 'NIF_CIF'; + fld_FacturasProveedorNOMBRE = 'NOMBRE'; + fld_FacturasProveedorCALLE = 'CALLE'; + fld_FacturasProveedorPOBLACION = 'POBLACION'; + fld_FacturasProveedorPROVINCIA = 'PROVINCIA'; + fld_FacturasProveedorCODIGO_POSTAL = 'CODIGO_POSTAL'; + fld_FacturasProveedorFECHA_ALTA = 'FECHA_ALTA'; + fld_FacturasProveedorFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_FacturasProveedorUSUARIO = 'USUARIO'; + fld_FacturasProveedorID_FORMA_PAGO = 'ID_FORMA_PAGO'; + fld_FacturasProveedorRECARGO_EQUIVALENCIA = 'RECARGO_EQUIVALENCIA'; + fld_FacturasProveedorID_TIPO_IVA = 'ID_TIPO_IVA'; + fld_FacturasProveedorIMPORTE_NETO = 'IMPORTE_NETO'; + fld_FacturasProveedorIMPORTE_PORTE = 'IMPORTE_PORTE'; + fld_FacturasProveedorDATOS_BANCARIOS = 'DATOS_BANCARIOS'; + + { FacturasProveedor field indexes } + idx_FacturasProveedorID = 0; + idx_FacturasProveedorID_EMPRESA = 1; + idx_FacturasProveedorREFERENCIA = 2; + idx_FacturasProveedorTIPO = 3; + idx_FacturasProveedorREFERENCIA_PROVEEDOR = 4; + idx_FacturasProveedorFECHA_FACTURA = 5; + idx_FacturasProveedorFECHA_VENCIMIENTO = 6; + idx_FacturasProveedorSITUACION = 7; + idx_FacturasProveedorBASE_IMPONIBLE = 8; + idx_FacturasProveedorDESCUENTO = 9; + idx_FacturasProveedorIMPORTE_DESCUENTO = 10; + idx_FacturasProveedorIVA = 11; + idx_FacturasProveedorIMPORTE_IVA = 12; + idx_FacturasProveedorRE = 13; + idx_FacturasProveedorIMPORTE_RE = 14; + idx_FacturasProveedorIMPORTE_TOTAL = 15; + idx_FacturasProveedorOBSERVACIONES = 16; + idx_FacturasProveedorID_PROVEEDOR = 17; + idx_FacturasProveedorNIF_CIF = 18; + idx_FacturasProveedorNOMBRE = 19; + idx_FacturasProveedorCALLE = 20; + idx_FacturasProveedorPOBLACION = 21; + idx_FacturasProveedorPROVINCIA = 22; + idx_FacturasProveedorCODIGO_POSTAL = 23; + idx_FacturasProveedorFECHA_ALTA = 24; + idx_FacturasProveedorFECHA_MODIFICACION = 25; + idx_FacturasProveedorUSUARIO = 26; + idx_FacturasProveedorID_FORMA_PAGO = 27; + idx_FacturasProveedorRECARGO_EQUIVALENCIA = 28; + idx_FacturasProveedorID_TIPO_IVA = 29; + idx_FacturasProveedorIMPORTE_NETO = 30; + idx_FacturasProveedorIMPORTE_PORTE = 31; + idx_FacturasProveedorDATOS_BANCARIOS = 32; + + { FacturasProveedor_Detalles fields } + fld_FacturasProveedor_DetallesID = 'ID'; + fld_FacturasProveedor_DetallesID_FACTURA = 'ID_FACTURA'; + fld_FacturasProveedor_DetallesPOSICION = 'POSICION'; + fld_FacturasProveedor_DetallesTIPO_DETALLE = 'TIPO_DETALLE'; + fld_FacturasProveedor_DetallesCONCEPTO = 'CONCEPTO'; + fld_FacturasProveedor_DetallesCANTIDAD = 'CANTIDAD'; + fld_FacturasProveedor_DetallesUNIDAD_MEDIDA = 'UNIDAD_MEDIDA'; + fld_FacturasProveedor_DetallesIMPORTE_UNIDAD = 'IMPORTE_UNIDAD'; + fld_FacturasProveedor_DetallesIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_FacturasProveedor_DetallesVISIBLE = 'VISIBLE'; + fld_FacturasProveedor_DetallesID_ARTICULO = 'ID_ARTICULO'; + fld_FacturasProveedor_DetallesDESCUENTO = 'DESCUENTO'; + fld_FacturasProveedor_DetallesIMPORTE_PORTE = 'IMPORTE_PORTE'; + fld_FacturasProveedor_DetallesREFERENCIA = 'REFERENCIA'; + fld_FacturasProveedor_DetallesREFERENCIA_PROVEEDOR = 'REFERENCIA_PROVEEDOR'; + fld_FacturasProveedor_DetallesREFERENCIA_FABRICANTE = 'REFERENCIA_FABRICANTE'; + + { FacturasProveedor_Detalles field indexes } + idx_FacturasProveedor_DetallesID = 0; + idx_FacturasProveedor_DetallesID_FACTURA = 1; + idx_FacturasProveedor_DetallesPOSICION = 2; + idx_FacturasProveedor_DetallesTIPO_DETALLE = 3; + idx_FacturasProveedor_DetallesCONCEPTO = 4; + idx_FacturasProveedor_DetallesCANTIDAD = 5; + idx_FacturasProveedor_DetallesUNIDAD_MEDIDA = 6; + idx_FacturasProveedor_DetallesIMPORTE_UNIDAD = 7; + idx_FacturasProveedor_DetallesIMPORTE_TOTAL = 8; + idx_FacturasProveedor_DetallesVISIBLE = 9; + idx_FacturasProveedor_DetallesID_ARTICULO = 10; + idx_FacturasProveedor_DetallesDESCUENTO = 11; + idx_FacturasProveedor_DetallesIMPORTE_PORTE = 12; + idx_FacturasProveedor_DetallesREFERENCIA = 13; + idx_FacturasProveedor_DetallesREFERENCIA_PROVEEDOR = 14; + idx_FacturasProveedor_DetallesREFERENCIA_FABRICANTE = 15; + + { FacturasProveedor_Pedidos fields } + fld_FacturasProveedor_PedidosID = 'ID'; + fld_FacturasProveedor_PedidosID_FACTURA = 'ID_FACTURA'; + fld_FacturasProveedor_PedidosIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_FacturasProveedor_PedidosID_PEDIDO = 'ID_PEDIDO'; + fld_FacturasProveedor_PedidosREFERENCIA = 'REFERENCIA'; + fld_FacturasProveedor_PedidosFECHA_PEDIDO = 'FECHA_PEDIDO'; + fld_FacturasProveedor_PedidosPROVEEDOR = 'PROVEEDOR'; + + { FacturasProveedor_Pedidos field indexes } + idx_FacturasProveedor_PedidosID = 0; + idx_FacturasProveedor_PedidosID_FACTURA = 1; + idx_FacturasProveedor_PedidosIMPORTE_TOTAL = 2; + idx_FacturasProveedor_PedidosID_PEDIDO = 3; + idx_FacturasProveedor_PedidosREFERENCIA = 4; + idx_FacturasProveedor_PedidosFECHA_PEDIDO = 5; + idx_FacturasProveedor_PedidosPROVEEDOR = 6; + +type + { IListaAnosFacturas } + IListaAnosFacturas = interface(IDAStronglyTypedDataTable) + ['{CB673572-AD31-405A-9EF0-0FC870012A4E}'] + { Property getters and setters } + function GetANOValue: String; + procedure SetANOValue(const aValue: String); + function GetANOIsNull: Boolean; + procedure SetANOIsNull(const aValue: Boolean); + + + { Properties } + property ANO: String read GetANOValue write SetANOValue; + property ANOIsNull: Boolean read GetANOIsNull write SetANOIsNull; + end; + + { TListaAnosFacturasDataTableRules } + TListaAnosFacturasDataTableRules = class(TIntfObjectDADataTableRules, IListaAnosFacturas) + private + protected + { Property getters and setters } + function GetANOValue: String; virtual; + procedure SetANOValue(const aValue: String); virtual; + function GetANOIsNull: Boolean; virtual; + procedure SetANOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ANO: String read GetANOValue write SetANOValue; + property ANOIsNull: Boolean read GetANOIsNull write SetANOIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IFacturasProveedor } + IFacturasProveedor = interface(IDAStronglyTypedDataTable) + ['{20CB371E-32B4-45B7-B925-7DAF93C6F093}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_EMPRESAIsNull: Boolean; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetTIPOValue: String; + procedure SetTIPOValue(const aValue: String); + function GetTIPOIsNull: Boolean; + procedure SetTIPOIsNull(const aValue: Boolean); + function GetREFERENCIA_PROVEEDORValue: String; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); + function GetREFERENCIA_PROVEEDORIsNull: Boolean; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); + function GetFECHA_FACTURAValue: DateTime; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); + function GetFECHA_FACTURAIsNull: Boolean; + procedure SetFECHA_FACTURAIsNull(const aValue: Boolean); + function GetFECHA_VENCIMIENTOValue: DateTime; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); + function GetFECHA_VENCIMIENTOIsNull: Boolean; + procedure SetFECHA_VENCIMIENTOIsNull(const aValue: Boolean); + function GetSITUACIONValue: String; + procedure SetSITUACIONValue(const aValue: String); + function GetSITUACIONIsNull: Boolean; + procedure SetSITUACIONIsNull(const aValue: Boolean); + function GetBASE_IMPONIBLEValue: Currency; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); + function GetBASE_IMPONIBLEIsNull: Boolean; + procedure SetBASE_IMPONIBLEIsNull(const aValue: Boolean); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetDESCUENTOIsNull: Boolean; + procedure SetDESCUENTOIsNull(const aValue: Boolean); + function GetIMPORTE_DESCUENTOValue: Currency; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); + function GetIMPORTE_DESCUENTOIsNull: Boolean; + procedure SetIMPORTE_DESCUENTOIsNull(const aValue: Boolean); + function GetIVAValue: Float; + procedure SetIVAValue(const aValue: Float); + function GetIVAIsNull: Boolean; + procedure SetIVAIsNull(const aValue: Boolean); + function GetIMPORTE_IVAValue: Currency; + procedure SetIMPORTE_IVAValue(const aValue: Currency); + function GetIMPORTE_IVAIsNull: Boolean; + procedure SetIMPORTE_IVAIsNull(const aValue: Boolean); + function GetREValue: Float; + procedure SetREValue(const aValue: Float); + function GetREIsNull: Boolean; + procedure SetREIsNull(const aValue: Boolean); + function GetIMPORTE_REValue: Currency; + procedure SetIMPORTE_REValue(const aValue: Currency); + function GetIMPORTE_REIsNull: Boolean; + procedure SetIMPORTE_REIsNull(const aValue: Boolean); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetIMPORTE_TOTALIsNull: Boolean; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); + function GetOBSERVACIONESValue: IROStrings; + function GetOBSERVACIONESIsNull: Boolean; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); + function GetID_PROVEEDORValue: Integer; + procedure SetID_PROVEEDORValue(const aValue: Integer); + function GetID_PROVEEDORIsNull: Boolean; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); + function GetNIF_CIFValue: String; + procedure SetNIF_CIFValue(const aValue: String); + function GetNIF_CIFIsNull: Boolean; + procedure SetNIF_CIFIsNull(const aValue: Boolean); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetNOMBREIsNull: Boolean; + procedure SetNOMBREIsNull(const aValue: Boolean); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetCALLEIsNull: Boolean; + procedure SetCALLEIsNull(const aValue: Boolean); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPOBLACIONIsNull: Boolean; + procedure SetPOBLACIONIsNull(const aValue: Boolean); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetPROVINCIAIsNull: Boolean; + procedure SetPROVINCIAIsNull(const aValue: Boolean); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetCODIGO_POSTALIsNull: Boolean; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_ALTAIsNull: Boolean; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONIsNull: Boolean; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetUSUARIOIsNull: Boolean; + procedure SetUSUARIOIsNull(const aValue: Boolean); + function GetID_FORMA_PAGOValue: Integer; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); + function GetID_FORMA_PAGOIsNull: Boolean; + procedure SetID_FORMA_PAGOIsNull(const aValue: Boolean); + function GetRECARGO_EQUIVALENCIAValue: SmallInt; + procedure SetRECARGO_EQUIVALENCIAValue(const aValue: SmallInt); + function GetRECARGO_EQUIVALENCIAIsNull: Boolean; + procedure SetRECARGO_EQUIVALENCIAIsNull(const aValue: Boolean); + function GetID_TIPO_IVAValue: Integer; + procedure SetID_TIPO_IVAValue(const aValue: Integer); + function GetID_TIPO_IVAIsNull: Boolean; + procedure SetID_TIPO_IVAIsNull(const aValue: Boolean); + function GetIMPORTE_NETOValue: Currency; + procedure SetIMPORTE_NETOValue(const aValue: Currency); + function GetIMPORTE_NETOIsNull: Boolean; + procedure SetIMPORTE_NETOIsNull(const aValue: Boolean); + function GetIMPORTE_PORTEValue: Currency; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); + function GetIMPORTE_PORTEIsNull: Boolean; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); + function GetDATOS_BANCARIOSValue: String; + procedure SetDATOS_BANCARIOSValue(const aValue: String); + function GetDATOS_BANCARIOSIsNull: Boolean; + procedure SetDATOS_BANCARIOSIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull: Boolean read GetTIPOIsNull write SetTIPOIsNull; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull: Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + property FECHA_FACTURA: DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property FECHA_FACTURAIsNull: Boolean read GetFECHA_FACTURAIsNull write SetFECHA_FACTURAIsNull; + property FECHA_VENCIMIENTO: DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + property FECHA_VENCIMIENTOIsNull: Boolean read GetFECHA_VENCIMIENTOIsNull write SetFECHA_VENCIMIENTOIsNull; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property SITUACIONIsNull: Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property BASE_IMPONIBLEIsNull: Boolean read GetBASE_IMPONIBLEIsNull write SetBASE_IMPONIBLEIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property IMPORTE_DESCUENTOIsNull: Boolean read GetIMPORTE_DESCUENTOIsNull write SetIMPORTE_DESCUENTOIsNull; + property IVA: Float read GetIVAValue write SetIVAValue; + property IVAIsNull: Boolean read GetIVAIsNull write SetIVAIsNull; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property IMPORTE_IVAIsNull: Boolean read GetIMPORTE_IVAIsNull write SetIMPORTE_IVAIsNull; + property RE: Float read GetREValue write SetREValue; + property REIsNull: Boolean read GetREIsNull write SetREIsNull; + property IMPORTE_RE: Currency read GetIMPORTE_REValue write SetIMPORTE_REValue; + property IMPORTE_REIsNull: Boolean read GetIMPORTE_REIsNull write SetIMPORTE_REIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue; + property OBSERVACIONESIsNull: Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NIF_CIFIsNull: Boolean read GetNIF_CIFIsNull write SetNIF_CIFIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property ID_FORMA_PAGOIsNull: Boolean read GetID_FORMA_PAGOIsNull write SetID_FORMA_PAGOIsNull; + property RECARGO_EQUIVALENCIA: SmallInt read GetRECARGO_EQUIVALENCIAValue write SetRECARGO_EQUIVALENCIAValue; + property RECARGO_EQUIVALENCIAIsNull: Boolean read GetRECARGO_EQUIVALENCIAIsNull write SetRECARGO_EQUIVALENCIAIsNull; + property ID_TIPO_IVA: Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue; + property ID_TIPO_IVAIsNull: Boolean read GetID_TIPO_IVAIsNull write SetID_TIPO_IVAIsNull; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_NETOIsNull: Boolean read GetIMPORTE_NETOIsNull write SetIMPORTE_NETOIsNull; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull: Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property DATOS_BANCARIOS: String read GetDATOS_BANCARIOSValue write SetDATOS_BANCARIOSValue; + property DATOS_BANCARIOSIsNull: Boolean read GetDATOS_BANCARIOSIsNull write SetDATOS_BANCARIOSIsNull; + end; + + { TFacturasProveedorDataTableRules } + TFacturasProveedorDataTableRules = class(TIntfObjectDADataTableRules, IFacturasProveedor) + private + f_OBSERVACIONES: IROStrings; + procedure OBSERVACIONES_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetTIPOValue: String; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + function GetTIPOIsNull: Boolean; virtual; + procedure SetTIPOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + function GetREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetFECHA_FACTURAValue: DateTime; virtual; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); virtual; + function GetFECHA_FACTURAIsNull: Boolean; virtual; + procedure SetFECHA_FACTURAIsNull(const aValue: Boolean); virtual; + function GetFECHA_VENCIMIENTOValue: DateTime; virtual; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); virtual; + function GetFECHA_VENCIMIENTOIsNull: Boolean; virtual; + procedure SetFECHA_VENCIMIENTOIsNull(const aValue: Boolean); virtual; + function GetSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetSITUACIONIsNull: Boolean; virtual; + procedure SetSITUACIONIsNull(const aValue: Boolean); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + function GetBASE_IMPONIBLEIsNull: Boolean; virtual; + procedure SetBASE_IMPONIBLEIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + function GetIMPORTE_DESCUENTOIsNull: Boolean; virtual; + procedure SetIMPORTE_DESCUENTOIsNull(const aValue: Boolean); virtual; + function GetIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + function GetIVAIsNull: Boolean; virtual; + procedure SetIVAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + function GetIMPORTE_IVAIsNull: Boolean; virtual; + procedure SetIMPORTE_IVAIsNull(const aValue: Boolean); virtual; + function GetREValue: Float; virtual; + procedure SetREValue(const aValue: Float); virtual; + function GetREIsNull: Boolean; virtual; + procedure SetREIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_REValue: Currency; virtual; + procedure SetIMPORTE_REValue(const aValue: Currency); virtual; + function GetIMPORTE_REIsNull: Boolean; virtual; + procedure SetIMPORTE_REIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + function GetOBSERVACIONESIsNull: Boolean; virtual; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetID_PROVEEDORIsNull: Boolean; virtual; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetNIF_CIFValue: String; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + function GetNIF_CIFIsNull: Boolean; virtual; + procedure SetNIF_CIFIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetCALLEIsNull: Boolean; virtual; + procedure SetCALLEIsNull(const aValue: Boolean); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPOBLACIONIsNull: Boolean; virtual; + procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetPROVINCIAIsNull: Boolean; virtual; + procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetCODIGO_POSTALIsNull: Boolean; virtual; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + function GetID_FORMA_PAGOIsNull: Boolean; virtual; + procedure SetID_FORMA_PAGOIsNull(const aValue: Boolean); virtual; + function GetRECARGO_EQUIVALENCIAValue: SmallInt; virtual; + procedure SetRECARGO_EQUIVALENCIAValue(const aValue: SmallInt); virtual; + function GetRECARGO_EQUIVALENCIAIsNull: Boolean; virtual; + procedure SetRECARGO_EQUIVALENCIAIsNull(const aValue: Boolean); virtual; + function GetID_TIPO_IVAValue: Integer; virtual; + procedure SetID_TIPO_IVAValue(const aValue: Integer); virtual; + function GetID_TIPO_IVAIsNull: Boolean; virtual; + procedure SetID_TIPO_IVAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + function GetIMPORTE_NETOIsNull: Boolean; virtual; + procedure SetIMPORTE_NETOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEIsNull: Boolean; virtual; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); virtual; + function GetDATOS_BANCARIOSValue: String; virtual; + procedure SetDATOS_BANCARIOSValue(const aValue: String); virtual; + function GetDATOS_BANCARIOSIsNull: Boolean; virtual; + procedure SetDATOS_BANCARIOSIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull: Boolean read GetTIPOIsNull write SetTIPOIsNull; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull: Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + property FECHA_FACTURA: DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property FECHA_FACTURAIsNull: Boolean read GetFECHA_FACTURAIsNull write SetFECHA_FACTURAIsNull; + property FECHA_VENCIMIENTO: DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + property FECHA_VENCIMIENTOIsNull: Boolean read GetFECHA_VENCIMIENTOIsNull write SetFECHA_VENCIMIENTOIsNull; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property SITUACIONIsNull: Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property BASE_IMPONIBLEIsNull: Boolean read GetBASE_IMPONIBLEIsNull write SetBASE_IMPONIBLEIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property IMPORTE_DESCUENTOIsNull: Boolean read GetIMPORTE_DESCUENTOIsNull write SetIMPORTE_DESCUENTOIsNull; + property IVA: Float read GetIVAValue write SetIVAValue; + property IVAIsNull: Boolean read GetIVAIsNull write SetIVAIsNull; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property IMPORTE_IVAIsNull: Boolean read GetIMPORTE_IVAIsNull write SetIMPORTE_IVAIsNull; + property RE: Float read GetREValue write SetREValue; + property REIsNull: Boolean read GetREIsNull write SetREIsNull; + property IMPORTE_RE: Currency read GetIMPORTE_REValue write SetIMPORTE_REValue; + property IMPORTE_REIsNull: Boolean read GetIMPORTE_REIsNull write SetIMPORTE_REIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue; + property OBSERVACIONESIsNull: Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NIF_CIFIsNull: Boolean read GetNIF_CIFIsNull write SetNIF_CIFIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property ID_FORMA_PAGOIsNull: Boolean read GetID_FORMA_PAGOIsNull write SetID_FORMA_PAGOIsNull; + property RECARGO_EQUIVALENCIA: SmallInt read GetRECARGO_EQUIVALENCIAValue write SetRECARGO_EQUIVALENCIAValue; + property RECARGO_EQUIVALENCIAIsNull: Boolean read GetRECARGO_EQUIVALENCIAIsNull write SetRECARGO_EQUIVALENCIAIsNull; + property ID_TIPO_IVA: Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue; + property ID_TIPO_IVAIsNull: Boolean read GetID_TIPO_IVAIsNull write SetID_TIPO_IVAIsNull; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_NETOIsNull: Boolean read GetIMPORTE_NETOIsNull write SetIMPORTE_NETOIsNull; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull: Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property DATOS_BANCARIOS: String read GetDATOS_BANCARIOSValue write SetDATOS_BANCARIOSValue; + property DATOS_BANCARIOSIsNull: Boolean read GetDATOS_BANCARIOSIsNull write SetDATOS_BANCARIOSIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IFacturasProveedor_Detalles } + IFacturasProveedor_Detalles = interface(IDAStronglyTypedDataTable) + ['{AE1A2F3E-33E1-4593-A397-EF5B9520D17E}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_FACTURAValue: Integer; + procedure SetID_FACTURAValue(const aValue: Integer); + function GetID_FACTURAIsNull: Boolean; + procedure SetID_FACTURAIsNull(const aValue: Boolean); + function GetPOSICIONValue: Integer; + procedure SetPOSICIONValue(const aValue: Integer); + function GetPOSICIONIsNull: Boolean; + procedure SetPOSICIONIsNull(const aValue: Boolean); + function GetTIPO_DETALLEValue: String; + procedure SetTIPO_DETALLEValue(const aValue: String); + function GetTIPO_DETALLEIsNull: Boolean; + procedure SetTIPO_DETALLEIsNull(const aValue: Boolean); + function GetCONCEPTOValue: String; + procedure SetCONCEPTOValue(const aValue: String); + function GetCONCEPTOIsNull: Boolean; + procedure SetCONCEPTOIsNull(const aValue: Boolean); + function GetCANTIDADValue: Float; + procedure SetCANTIDADValue(const aValue: Float); + function GetCANTIDADIsNull: Boolean; + procedure SetCANTIDADIsNull(const aValue: Boolean); + function GetUNIDAD_MEDIDAValue: String; + procedure SetUNIDAD_MEDIDAValue(const aValue: String); + function GetUNIDAD_MEDIDAIsNull: Boolean; + procedure SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); + function GetIMPORTE_UNIDADValue: Currency; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); + function GetIMPORTE_UNIDADIsNull: Boolean; + procedure SetIMPORTE_UNIDADIsNull(const aValue: Boolean); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetIMPORTE_TOTALIsNull: Boolean; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); + function GetVISIBLEValue: SmallInt; + procedure SetVISIBLEValue(const aValue: SmallInt); + function GetVISIBLEIsNull: Boolean; + procedure SetVISIBLEIsNull(const aValue: Boolean); + function GetID_ARTICULOValue: Integer; + procedure SetID_ARTICULOValue(const aValue: Integer); + function GetID_ARTICULOIsNull: Boolean; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetDESCUENTOIsNull: Boolean; + procedure SetDESCUENTOIsNull(const aValue: Boolean); + function GetIMPORTE_PORTEValue: Currency; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); + function GetIMPORTE_PORTEIsNull: Boolean; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetREFERENCIA_PROVEEDORValue: String; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); + function GetREFERENCIA_PROVEEDORIsNull: Boolean; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); + function GetREFERENCIA_FABRICANTEValue: String; + procedure SetREFERENCIA_FABRICANTEValue(const aValue: String); + function GetREFERENCIA_FABRICANTEIsNull: Boolean; + procedure SetREFERENCIA_FABRICANTEIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull: Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property POSICIONIsNull: Boolean read GetPOSICIONIsNull write SetPOSICIONIsNull; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property TIPO_DETALLEIsNull: Boolean read GetTIPO_DETALLEIsNull write SetTIPO_DETALLEIsNull; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CONCEPTOIsNull: Boolean read GetCONCEPTOIsNull write SetCONCEPTOIsNull; + property CANTIDAD: Float read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDADIsNull: Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; + property UNIDAD_MEDIDA: String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue; + property UNIDAD_MEDIDAIsNull: Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull; + property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_UNIDADIsNull: Boolean read GetIMPORTE_UNIDADIsNull write SetIMPORTE_UNIDADIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property VISIBLE: SmallInt read GetVISIBLEValue write SetVISIBLEValue; + property VISIBLEIsNull: Boolean read GetVISIBLEIsNull write SetVISIBLEIsNull; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull: Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull: Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull: Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + property REFERENCIA_FABRICANTE: String read GetREFERENCIA_FABRICANTEValue write SetREFERENCIA_FABRICANTEValue; + property REFERENCIA_FABRICANTEIsNull: Boolean read GetREFERENCIA_FABRICANTEIsNull write SetREFERENCIA_FABRICANTEIsNull; + end; + + { TFacturasProveedor_DetallesDataTableRules } + TFacturasProveedor_DetallesDataTableRules = class(TIntfObjectDADataTableRules, IFacturasProveedor_Detalles) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetID_FACTURAIsNull: Boolean; virtual; + procedure SetID_FACTURAIsNull(const aValue: Boolean); virtual; + function GetPOSICIONValue: Integer; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + function GetPOSICIONIsNull: Boolean; virtual; + procedure SetPOSICIONIsNull(const aValue: Boolean); virtual; + function GetTIPO_DETALLEValue: String; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + function GetTIPO_DETALLEIsNull: Boolean; virtual; + procedure SetTIPO_DETALLEIsNull(const aValue: Boolean); virtual; + function GetCONCEPTOValue: String; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + function GetCONCEPTOIsNull: Boolean; virtual; + procedure SetCONCEPTOIsNull(const aValue: Boolean); virtual; + function GetCANTIDADValue: Float; virtual; + procedure SetCANTIDADValue(const aValue: Float); virtual; + function GetCANTIDADIsNull: Boolean; virtual; + procedure SetCANTIDADIsNull(const aValue: Boolean); virtual; + function GetUNIDAD_MEDIDAValue: String; virtual; + procedure SetUNIDAD_MEDIDAValue(const aValue: String); virtual; + function GetUNIDAD_MEDIDAIsNull: Boolean; virtual; + procedure SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_UNIDADValue: Currency; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual; + function GetIMPORTE_UNIDADIsNull: Boolean; virtual; + procedure SetIMPORTE_UNIDADIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetVISIBLEValue: SmallInt; virtual; + procedure SetVISIBLEValue(const aValue: SmallInt); virtual; + function GetVISIBLEIsNull: Boolean; virtual; + procedure SetVISIBLEIsNull(const aValue: Boolean); virtual; + function GetID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetID_ARTICULOIsNull: Boolean; virtual; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEIsNull: Boolean; virtual; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + function GetREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_FABRICANTEValue: String; virtual; + procedure SetREFERENCIA_FABRICANTEValue(const aValue: String); virtual; + function GetREFERENCIA_FABRICANTEIsNull: Boolean; virtual; + procedure SetREFERENCIA_FABRICANTEIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull: Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property POSICIONIsNull: Boolean read GetPOSICIONIsNull write SetPOSICIONIsNull; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property TIPO_DETALLEIsNull: Boolean read GetTIPO_DETALLEIsNull write SetTIPO_DETALLEIsNull; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CONCEPTOIsNull: Boolean read GetCONCEPTOIsNull write SetCONCEPTOIsNull; + property CANTIDAD: Float read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDADIsNull: Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; + property UNIDAD_MEDIDA: String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue; + property UNIDAD_MEDIDAIsNull: Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull; + property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_UNIDADIsNull: Boolean read GetIMPORTE_UNIDADIsNull write SetIMPORTE_UNIDADIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property VISIBLE: SmallInt read GetVISIBLEValue write SetVISIBLEValue; + property VISIBLEIsNull: Boolean read GetVISIBLEIsNull write SetVISIBLEIsNull; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull: Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull: Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull: Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + property REFERENCIA_FABRICANTE: String read GetREFERENCIA_FABRICANTEValue write SetREFERENCIA_FABRICANTEValue; + property REFERENCIA_FABRICANTEIsNull: Boolean read GetREFERENCIA_FABRICANTEIsNull write SetREFERENCIA_FABRICANTEIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IFacturasProveedor_Pedidos } + IFacturasProveedor_Pedidos = interface(IDAStronglyTypedDataTable) + ['{00E2CBCC-20FA-40E8-A713-06794CC6A2B1}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_FACTURAValue: Integer; + procedure SetID_FACTURAValue(const aValue: Integer); + function GetID_FACTURAIsNull: Boolean; + procedure SetID_FACTURAIsNull(const aValue: Boolean); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetIMPORTE_TOTALIsNull: Boolean; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); + function GetID_PEDIDOValue: Integer; + procedure SetID_PEDIDOValue(const aValue: Integer); + function GetID_PEDIDOIsNull: Boolean; + procedure SetID_PEDIDOIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetFECHA_PEDIDOValue: DateTime; + procedure SetFECHA_PEDIDOValue(const aValue: DateTime); + function GetFECHA_PEDIDOIsNull: Boolean; + procedure SetFECHA_PEDIDOIsNull(const aValue: Boolean); + function GetPROVEEDORValue: String; + procedure SetPROVEEDORValue(const aValue: String); + function GetPROVEEDORIsNull: Boolean; + procedure SetPROVEEDORIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull: Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property ID_PEDIDOIsNull: Boolean read GetID_PEDIDOIsNull write SetID_PEDIDOIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property FECHA_PEDIDO: DateTime read GetFECHA_PEDIDOValue write SetFECHA_PEDIDOValue; + property FECHA_PEDIDOIsNull: Boolean read GetFECHA_PEDIDOIsNull write SetFECHA_PEDIDOIsNull; + property PROVEEDOR: String read GetPROVEEDORValue write SetPROVEEDORValue; + property PROVEEDORIsNull: Boolean read GetPROVEEDORIsNull write SetPROVEEDORIsNull; + end; + + { TFacturasProveedor_PedidosDataTableRules } + TFacturasProveedor_PedidosDataTableRules = class(TIntfObjectDADataTableRules, IFacturasProveedor_Pedidos) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetID_FACTURAIsNull: Boolean; virtual; + procedure SetID_FACTURAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetID_PEDIDOValue: Integer; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + function GetID_PEDIDOIsNull: Boolean; virtual; + procedure SetID_PEDIDOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetFECHA_PEDIDOValue: DateTime; virtual; + procedure SetFECHA_PEDIDOValue(const aValue: DateTime); virtual; + function GetFECHA_PEDIDOIsNull: Boolean; virtual; + procedure SetFECHA_PEDIDOIsNull(const aValue: Boolean); virtual; + function GetPROVEEDORValue: String; virtual; + procedure SetPROVEEDORValue(const aValue: String); virtual; + function GetPROVEEDORIsNull: Boolean; virtual; + procedure SetPROVEEDORIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull: Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property ID_PEDIDOIsNull: Boolean read GetID_PEDIDOIsNull write SetID_PEDIDOIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property FECHA_PEDIDO: DateTime read GetFECHA_PEDIDOValue write SetFECHA_PEDIDOValue; + property FECHA_PEDIDOIsNull: Boolean read GetFECHA_PEDIDOIsNull write SetFECHA_PEDIDOIsNull; + property PROVEEDOR: String read GetPROVEEDORValue write SetPROVEEDORValue; + property PROVEEDORIsNull: Boolean read GetPROVEEDORIsNull write SetPROVEEDORIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants, uROBinaryHelpers; + +{ TListaAnosFacturasDataTableRules } +constructor TListaAnosFacturasDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TListaAnosFacturasDataTableRules.Destroy; +begin + inherited; +end; + +function TListaAnosFacturasDataTableRules.GetANOValue: String; +begin + result := DataTable.Fields[idx_ListaAnosFacturasANO].AsString; +end; + +procedure TListaAnosFacturasDataTableRules.SetANOValue(const aValue: String); +begin + DataTable.Fields[idx_ListaAnosFacturasANO].AsString := aValue; +end; + +function TListaAnosFacturasDataTableRules.GetANOIsNull: boolean; +begin + result := DataTable.Fields[idx_ListaAnosFacturasANO].IsNull; +end; + +procedure TListaAnosFacturasDataTableRules.SetANOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ListaAnosFacturasANO].AsVariant := Null; +end; + + +{ TFacturasProveedorDataTableRules } +constructor TFacturasProveedorDataTableRules.Create(aDataTable: TDADataTable); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := OBSERVACIONES_OnChange; + f_OBSERVACIONES := NewROStrings(StrList,True); +end; + +destructor TFacturasProveedorDataTableRules.Destroy; +begin + inherited; +end; + +procedure TFacturasProveedorDataTableRules.OBSERVACIONES_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_FacturasProveedorOBSERVACIONES].AsVariant := TStringList(Sender).Text; +end; + +function TFacturasProveedorDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_FacturasProveedorID].AsInteger; +end; + +procedure TFacturasProveedorDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasProveedorID].AsInteger := aValue; +end; + +function TFacturasProveedorDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedorID].IsNull; +end; + +procedure TFacturasProveedorDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedorID].AsVariant := Null; +end; + +function TFacturasProveedorDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_FacturasProveedorID_EMPRESA].AsInteger; +end; + +procedure TFacturasProveedorDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasProveedorID_EMPRESA].AsInteger := aValue; +end; + +function TFacturasProveedorDataTableRules.GetID_EMPRESAIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedorID_EMPRESA].IsNull; +end; + +procedure TFacturasProveedorDataTableRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedorID_EMPRESA].AsVariant := Null; +end; + +function TFacturasProveedorDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedorREFERENCIA].AsString; +end; + +procedure TFacturasProveedorDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedorREFERENCIA].AsString := aValue; +end; + +function TFacturasProveedorDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedorREFERENCIA].IsNull; +end; + +procedure TFacturasProveedorDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedorREFERENCIA].AsVariant := Null; +end; + +function TFacturasProveedorDataTableRules.GetTIPOValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedorTIPO].AsString; +end; + +procedure TFacturasProveedorDataTableRules.SetTIPOValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedorTIPO].AsString := aValue; +end; + +function TFacturasProveedorDataTableRules.GetTIPOIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedorTIPO].IsNull; +end; + +procedure TFacturasProveedorDataTableRules.SetTIPOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedorTIPO].AsVariant := Null; +end; + +function TFacturasProveedorDataTableRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedorREFERENCIA_PROVEEDOR].AsString; +end; + +procedure TFacturasProveedorDataTableRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedorREFERENCIA_PROVEEDOR].AsString := aValue; +end; + +function TFacturasProveedorDataTableRules.GetREFERENCIA_PROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedorREFERENCIA_PROVEEDOR].IsNull; +end; + +procedure TFacturasProveedorDataTableRules.SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedorREFERENCIA_PROVEEDOR].AsVariant := Null; +end; + +function TFacturasProveedorDataTableRules.GetFECHA_FACTURAValue: DateTime; +begin + result := DataTable.Fields[idx_FacturasProveedorFECHA_FACTURA].AsDateTime; +end; + +procedure TFacturasProveedorDataTableRules.SetFECHA_FACTURAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_FacturasProveedorFECHA_FACTURA].AsDateTime := aValue; +end; + +function TFacturasProveedorDataTableRules.GetFECHA_FACTURAIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedorFECHA_FACTURA].IsNull; +end; + +procedure TFacturasProveedorDataTableRules.SetFECHA_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedorFECHA_FACTURA].AsVariant := Null; +end; + +function TFacturasProveedorDataTableRules.GetFECHA_VENCIMIENTOValue: DateTime; +begin + result := DataTable.Fields[idx_FacturasProveedorFECHA_VENCIMIENTO].AsDateTime; +end; + +procedure TFacturasProveedorDataTableRules.SetFECHA_VENCIMIENTOValue(const aValue: DateTime); +begin + DataTable.Fields[idx_FacturasProveedorFECHA_VENCIMIENTO].AsDateTime := aValue; +end; + +function TFacturasProveedorDataTableRules.GetFECHA_VENCIMIENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedorFECHA_VENCIMIENTO].IsNull; +end; + +procedure TFacturasProveedorDataTableRules.SetFECHA_VENCIMIENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedorFECHA_VENCIMIENTO].AsVariant := Null; +end; + +function TFacturasProveedorDataTableRules.GetSITUACIONValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedorSITUACION].AsString; +end; + +procedure TFacturasProveedorDataTableRules.SetSITUACIONValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedorSITUACION].AsString := aValue; +end; + +function TFacturasProveedorDataTableRules.GetSITUACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedorSITUACION].IsNull; +end; + +procedure TFacturasProveedorDataTableRules.SetSITUACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedorSITUACION].AsVariant := Null; +end; + +function TFacturasProveedorDataTableRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := DataTable.Fields[idx_FacturasProveedorBASE_IMPONIBLE].AsCurrency; +end; + +procedure TFacturasProveedorDataTableRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasProveedorBASE_IMPONIBLE].AsCurrency := aValue; +end; + +function TFacturasProveedorDataTableRules.GetBASE_IMPONIBLEIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedorBASE_IMPONIBLE].IsNull; +end; + +procedure TFacturasProveedorDataTableRules.SetBASE_IMPONIBLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedorBASE_IMPONIBLE].AsVariant := Null; +end; + +function TFacturasProveedorDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_FacturasProveedorDESCUENTO].AsFloat; +end; + +procedure TFacturasProveedorDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_FacturasProveedorDESCUENTO].AsFloat := aValue; +end; + +function TFacturasProveedorDataTableRules.GetDESCUENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedorDESCUENTO].IsNull; +end; + +procedure TFacturasProveedorDataTableRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedorDESCUENTO].AsVariant := Null; +end; + +function TFacturasProveedorDataTableRules.GetIMPORTE_DESCUENTOValue: Currency; +begin + result := DataTable.Fields[idx_FacturasProveedorIMPORTE_DESCUENTO].AsCurrency; +end; + +procedure TFacturasProveedorDataTableRules.SetIMPORTE_DESCUENTOValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasProveedorIMPORTE_DESCUENTO].AsCurrency := aValue; +end; + +function TFacturasProveedorDataTableRules.GetIMPORTE_DESCUENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedorIMPORTE_DESCUENTO].IsNull; +end; + +procedure TFacturasProveedorDataTableRules.SetIMPORTE_DESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedorIMPORTE_DESCUENTO].AsVariant := Null; +end; + +function TFacturasProveedorDataTableRules.GetIVAValue: Float; +begin + result := DataTable.Fields[idx_FacturasProveedorIVA].AsFloat; +end; + +procedure TFacturasProveedorDataTableRules.SetIVAValue(const aValue: Float); +begin + DataTable.Fields[idx_FacturasProveedorIVA].AsFloat := aValue; +end; + +function TFacturasProveedorDataTableRules.GetIVAIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedorIVA].IsNull; +end; + +procedure TFacturasProveedorDataTableRules.SetIVAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedorIVA].AsVariant := Null; +end; + +function TFacturasProveedorDataTableRules.GetIMPORTE_IVAValue: Currency; +begin + result := DataTable.Fields[idx_FacturasProveedorIMPORTE_IVA].AsCurrency; +end; + +procedure TFacturasProveedorDataTableRules.SetIMPORTE_IVAValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasProveedorIMPORTE_IVA].AsCurrency := aValue; +end; + +function TFacturasProveedorDataTableRules.GetIMPORTE_IVAIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedorIMPORTE_IVA].IsNull; +end; + +procedure TFacturasProveedorDataTableRules.SetIMPORTE_IVAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedorIMPORTE_IVA].AsVariant := Null; +end; + +function TFacturasProveedorDataTableRules.GetREValue: Float; +begin + result := DataTable.Fields[idx_FacturasProveedorRE].AsFloat; +end; + +procedure TFacturasProveedorDataTableRules.SetREValue(const aValue: Float); +begin + DataTable.Fields[idx_FacturasProveedorRE].AsFloat := aValue; +end; + +function TFacturasProveedorDataTableRules.GetREIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedorRE].IsNull; +end; + +procedure TFacturasProveedorDataTableRules.SetREIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedorRE].AsVariant := Null; +end; + +function TFacturasProveedorDataTableRules.GetIMPORTE_REValue: Currency; +begin + result := DataTable.Fields[idx_FacturasProveedorIMPORTE_RE].AsCurrency; +end; + +procedure TFacturasProveedorDataTableRules.SetIMPORTE_REValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasProveedorIMPORTE_RE].AsCurrency := aValue; +end; + +function TFacturasProveedorDataTableRules.GetIMPORTE_REIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedorIMPORTE_RE].IsNull; +end; + +procedure TFacturasProveedorDataTableRules.SetIMPORTE_REIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedorIMPORTE_RE].AsVariant := Null; +end; + +function TFacturasProveedorDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_FacturasProveedorIMPORTE_TOTAL].AsCurrency; +end; + +procedure TFacturasProveedorDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasProveedorIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TFacturasProveedorDataTableRules.GetIMPORTE_TOTALIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedorIMPORTE_TOTAL].IsNull; +end; + +procedure TFacturasProveedorDataTableRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedorIMPORTE_TOTAL].AsVariant := Null; +end; + +function TFacturasProveedorDataTableRules.GetOBSERVACIONESValue: IROStrings; +begin + result := f_OBSERVACIONES; + result.Text := DataTable.Fields[idx_FacturasProveedorOBSERVACIONES].AsString; +end; + +function TFacturasProveedorDataTableRules.GetOBSERVACIONESIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedorOBSERVACIONES].IsNull; +end; + +procedure TFacturasProveedorDataTableRules.SetOBSERVACIONESIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedorOBSERVACIONES].AsVariant := Null; +end; + +function TFacturasProveedorDataTableRules.GetID_PROVEEDORValue: Integer; +begin + result := DataTable.Fields[idx_FacturasProveedorID_PROVEEDOR].AsInteger; +end; + +procedure TFacturasProveedorDataTableRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasProveedorID_PROVEEDOR].AsInteger := aValue; +end; + +function TFacturasProveedorDataTableRules.GetID_PROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedorID_PROVEEDOR].IsNull; +end; + +procedure TFacturasProveedorDataTableRules.SetID_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedorID_PROVEEDOR].AsVariant := Null; +end; + +function TFacturasProveedorDataTableRules.GetNIF_CIFValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedorNIF_CIF].AsString; +end; + +procedure TFacturasProveedorDataTableRules.SetNIF_CIFValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedorNIF_CIF].AsString := aValue; +end; + +function TFacturasProveedorDataTableRules.GetNIF_CIFIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedorNIF_CIF].IsNull; +end; + +procedure TFacturasProveedorDataTableRules.SetNIF_CIFIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedorNIF_CIF].AsVariant := Null; +end; + +function TFacturasProveedorDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedorNOMBRE].AsString; +end; + +procedure TFacturasProveedorDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedorNOMBRE].AsString := aValue; +end; + +function TFacturasProveedorDataTableRules.GetNOMBREIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedorNOMBRE].IsNull; +end; + +procedure TFacturasProveedorDataTableRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedorNOMBRE].AsVariant := Null; +end; + +function TFacturasProveedorDataTableRules.GetCALLEValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedorCALLE].AsString; +end; + +procedure TFacturasProveedorDataTableRules.SetCALLEValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedorCALLE].AsString := aValue; +end; + +function TFacturasProveedorDataTableRules.GetCALLEIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedorCALLE].IsNull; +end; + +procedure TFacturasProveedorDataTableRules.SetCALLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedorCALLE].AsVariant := Null; +end; + +function TFacturasProveedorDataTableRules.GetPOBLACIONValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedorPOBLACION].AsString; +end; + +procedure TFacturasProveedorDataTableRules.SetPOBLACIONValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedorPOBLACION].AsString := aValue; +end; + +function TFacturasProveedorDataTableRules.GetPOBLACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedorPOBLACION].IsNull; +end; + +procedure TFacturasProveedorDataTableRules.SetPOBLACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedorPOBLACION].AsVariant := Null; +end; + +function TFacturasProveedorDataTableRules.GetPROVINCIAValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedorPROVINCIA].AsString; +end; + +procedure TFacturasProveedorDataTableRules.SetPROVINCIAValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedorPROVINCIA].AsString := aValue; +end; + +function TFacturasProveedorDataTableRules.GetPROVINCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedorPROVINCIA].IsNull; +end; + +procedure TFacturasProveedorDataTableRules.SetPROVINCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedorPROVINCIA].AsVariant := Null; +end; + +function TFacturasProveedorDataTableRules.GetCODIGO_POSTALValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedorCODIGO_POSTAL].AsString; +end; + +procedure TFacturasProveedorDataTableRules.SetCODIGO_POSTALValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedorCODIGO_POSTAL].AsString := aValue; +end; + +function TFacturasProveedorDataTableRules.GetCODIGO_POSTALIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedorCODIGO_POSTAL].IsNull; +end; + +procedure TFacturasProveedorDataTableRules.SetCODIGO_POSTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedorCODIGO_POSTAL].AsVariant := Null; +end; + +function TFacturasProveedorDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_FacturasProveedorFECHA_ALTA].AsDateTime; +end; + +procedure TFacturasProveedorDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_FacturasProveedorFECHA_ALTA].AsDateTime := aValue; +end; + +function TFacturasProveedorDataTableRules.GetFECHA_ALTAIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedorFECHA_ALTA].IsNull; +end; + +procedure TFacturasProveedorDataTableRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedorFECHA_ALTA].AsVariant := Null; +end; + +function TFacturasProveedorDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_FacturasProveedorFECHA_MODIFICACION].AsDateTime; +end; + +procedure TFacturasProveedorDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_FacturasProveedorFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TFacturasProveedorDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedorFECHA_MODIFICACION].IsNull; +end; + +procedure TFacturasProveedorDataTableRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedorFECHA_MODIFICACION].AsVariant := Null; +end; + +function TFacturasProveedorDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedorUSUARIO].AsString; +end; + +procedure TFacturasProveedorDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedorUSUARIO].AsString := aValue; +end; + +function TFacturasProveedorDataTableRules.GetUSUARIOIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedorUSUARIO].IsNull; +end; + +procedure TFacturasProveedorDataTableRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedorUSUARIO].AsVariant := Null; +end; + +function TFacturasProveedorDataTableRules.GetID_FORMA_PAGOValue: Integer; +begin + result := DataTable.Fields[idx_FacturasProveedorID_FORMA_PAGO].AsInteger; +end; + +procedure TFacturasProveedorDataTableRules.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasProveedorID_FORMA_PAGO].AsInteger := aValue; +end; + +function TFacturasProveedorDataTableRules.GetID_FORMA_PAGOIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedorID_FORMA_PAGO].IsNull; +end; + +procedure TFacturasProveedorDataTableRules.SetID_FORMA_PAGOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedorID_FORMA_PAGO].AsVariant := Null; +end; + +function TFacturasProveedorDataTableRules.GetRECARGO_EQUIVALENCIAValue: SmallInt; +begin + result := DataTable.Fields[idx_FacturasProveedorRECARGO_EQUIVALENCIA].AsSmallInt; +end; + +procedure TFacturasProveedorDataTableRules.SetRECARGO_EQUIVALENCIAValue(const aValue: SmallInt); +begin + DataTable.Fields[idx_FacturasProveedorRECARGO_EQUIVALENCIA].AsSmallInt := aValue; +end; + +function TFacturasProveedorDataTableRules.GetRECARGO_EQUIVALENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedorRECARGO_EQUIVALENCIA].IsNull; +end; + +procedure TFacturasProveedorDataTableRules.SetRECARGO_EQUIVALENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedorRECARGO_EQUIVALENCIA].AsVariant := Null; +end; + +function TFacturasProveedorDataTableRules.GetID_TIPO_IVAValue: Integer; +begin + result := DataTable.Fields[idx_FacturasProveedorID_TIPO_IVA].AsInteger; +end; + +procedure TFacturasProveedorDataTableRules.SetID_TIPO_IVAValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasProveedorID_TIPO_IVA].AsInteger := aValue; +end; + +function TFacturasProveedorDataTableRules.GetID_TIPO_IVAIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedorID_TIPO_IVA].IsNull; +end; + +procedure TFacturasProveedorDataTableRules.SetID_TIPO_IVAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedorID_TIPO_IVA].AsVariant := Null; +end; + +function TFacturasProveedorDataTableRules.GetIMPORTE_NETOValue: Currency; +begin + result := DataTable.Fields[idx_FacturasProveedorIMPORTE_NETO].AsCurrency; +end; + +procedure TFacturasProveedorDataTableRules.SetIMPORTE_NETOValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasProveedorIMPORTE_NETO].AsCurrency := aValue; +end; + +function TFacturasProveedorDataTableRules.GetIMPORTE_NETOIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedorIMPORTE_NETO].IsNull; +end; + +procedure TFacturasProveedorDataTableRules.SetIMPORTE_NETOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedorIMPORTE_NETO].AsVariant := Null; +end; + +function TFacturasProveedorDataTableRules.GetIMPORTE_PORTEValue: Currency; +begin + result := DataTable.Fields[idx_FacturasProveedorIMPORTE_PORTE].AsCurrency; +end; + +procedure TFacturasProveedorDataTableRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasProveedorIMPORTE_PORTE].AsCurrency := aValue; +end; + +function TFacturasProveedorDataTableRules.GetIMPORTE_PORTEIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedorIMPORTE_PORTE].IsNull; +end; + +procedure TFacturasProveedorDataTableRules.SetIMPORTE_PORTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedorIMPORTE_PORTE].AsVariant := Null; +end; + +function TFacturasProveedorDataTableRules.GetDATOS_BANCARIOSValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedorDATOS_BANCARIOS].AsString; +end; + +procedure TFacturasProveedorDataTableRules.SetDATOS_BANCARIOSValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedorDATOS_BANCARIOS].AsString := aValue; +end; + +function TFacturasProveedorDataTableRules.GetDATOS_BANCARIOSIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedorDATOS_BANCARIOS].IsNull; +end; + +procedure TFacturasProveedorDataTableRules.SetDATOS_BANCARIOSIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedorDATOS_BANCARIOS].AsVariant := Null; +end; + + +{ TFacturasProveedor_DetallesDataTableRules } +constructor TFacturasProveedor_DetallesDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TFacturasProveedor_DetallesDataTableRules.Destroy; +begin + inherited; +end; + +function TFacturasProveedor_DetallesDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_FacturasProveedor_DetallesID].AsInteger; +end; + +procedure TFacturasProveedor_DetallesDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasProveedor_DetallesID].AsInteger := aValue; +end; + +function TFacturasProveedor_DetallesDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedor_DetallesID].IsNull; +end; + +procedure TFacturasProveedor_DetallesDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedor_DetallesID].AsVariant := Null; +end; + +function TFacturasProveedor_DetallesDataTableRules.GetID_FACTURAValue: Integer; +begin + result := DataTable.Fields[idx_FacturasProveedor_DetallesID_FACTURA].AsInteger; +end; + +procedure TFacturasProveedor_DetallesDataTableRules.SetID_FACTURAValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasProveedor_DetallesID_FACTURA].AsInteger := aValue; +end; + +function TFacturasProveedor_DetallesDataTableRules.GetID_FACTURAIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedor_DetallesID_FACTURA].IsNull; +end; + +procedure TFacturasProveedor_DetallesDataTableRules.SetID_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedor_DetallesID_FACTURA].AsVariant := Null; +end; + +function TFacturasProveedor_DetallesDataTableRules.GetPOSICIONValue: Integer; +begin + result := DataTable.Fields[idx_FacturasProveedor_DetallesPOSICION].AsInteger; +end; + +procedure TFacturasProveedor_DetallesDataTableRules.SetPOSICIONValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasProveedor_DetallesPOSICION].AsInteger := aValue; +end; + +function TFacturasProveedor_DetallesDataTableRules.GetPOSICIONIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedor_DetallesPOSICION].IsNull; +end; + +procedure TFacturasProveedor_DetallesDataTableRules.SetPOSICIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedor_DetallesPOSICION].AsVariant := Null; +end; + +function TFacturasProveedor_DetallesDataTableRules.GetTIPO_DETALLEValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedor_DetallesTIPO_DETALLE].AsString; +end; + +procedure TFacturasProveedor_DetallesDataTableRules.SetTIPO_DETALLEValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedor_DetallesTIPO_DETALLE].AsString := aValue; +end; + +function TFacturasProveedor_DetallesDataTableRules.GetTIPO_DETALLEIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedor_DetallesTIPO_DETALLE].IsNull; +end; + +procedure TFacturasProveedor_DetallesDataTableRules.SetTIPO_DETALLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedor_DetallesTIPO_DETALLE].AsVariant := Null; +end; + +function TFacturasProveedor_DetallesDataTableRules.GetCONCEPTOValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedor_DetallesCONCEPTO].AsString; +end; + +procedure TFacturasProveedor_DetallesDataTableRules.SetCONCEPTOValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedor_DetallesCONCEPTO].AsString := aValue; +end; + +function TFacturasProveedor_DetallesDataTableRules.GetCONCEPTOIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedor_DetallesCONCEPTO].IsNull; +end; + +procedure TFacturasProveedor_DetallesDataTableRules.SetCONCEPTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedor_DetallesCONCEPTO].AsVariant := Null; +end; + +function TFacturasProveedor_DetallesDataTableRules.GetCANTIDADValue: Float; +begin + result := DataTable.Fields[idx_FacturasProveedor_DetallesCANTIDAD].AsFloat; +end; + +procedure TFacturasProveedor_DetallesDataTableRules.SetCANTIDADValue(const aValue: Float); +begin + DataTable.Fields[idx_FacturasProveedor_DetallesCANTIDAD].AsFloat := aValue; +end; + +function TFacturasProveedor_DetallesDataTableRules.GetCANTIDADIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedor_DetallesCANTIDAD].IsNull; +end; + +procedure TFacturasProveedor_DetallesDataTableRules.SetCANTIDADIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedor_DetallesCANTIDAD].AsVariant := Null; +end; + +function TFacturasProveedor_DetallesDataTableRules.GetUNIDAD_MEDIDAValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedor_DetallesUNIDAD_MEDIDA].AsString; +end; + +procedure TFacturasProveedor_DetallesDataTableRules.SetUNIDAD_MEDIDAValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedor_DetallesUNIDAD_MEDIDA].AsString := aValue; +end; + +function TFacturasProveedor_DetallesDataTableRules.GetUNIDAD_MEDIDAIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedor_DetallesUNIDAD_MEDIDA].IsNull; +end; + +procedure TFacturasProveedor_DetallesDataTableRules.SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedor_DetallesUNIDAD_MEDIDA].AsVariant := Null; +end; + +function TFacturasProveedor_DetallesDataTableRules.GetIMPORTE_UNIDADValue: Currency; +begin + result := DataTable.Fields[idx_FacturasProveedor_DetallesIMPORTE_UNIDAD].AsCurrency; +end; + +procedure TFacturasProveedor_DetallesDataTableRules.SetIMPORTE_UNIDADValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasProveedor_DetallesIMPORTE_UNIDAD].AsCurrency := aValue; +end; + +function TFacturasProveedor_DetallesDataTableRules.GetIMPORTE_UNIDADIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedor_DetallesIMPORTE_UNIDAD].IsNull; +end; + +procedure TFacturasProveedor_DetallesDataTableRules.SetIMPORTE_UNIDADIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedor_DetallesIMPORTE_UNIDAD].AsVariant := Null; +end; + +function TFacturasProveedor_DetallesDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_FacturasProveedor_DetallesIMPORTE_TOTAL].AsCurrency; +end; + +procedure TFacturasProveedor_DetallesDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasProveedor_DetallesIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TFacturasProveedor_DetallesDataTableRules.GetIMPORTE_TOTALIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedor_DetallesIMPORTE_TOTAL].IsNull; +end; + +procedure TFacturasProveedor_DetallesDataTableRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedor_DetallesIMPORTE_TOTAL].AsVariant := Null; +end; + +function TFacturasProveedor_DetallesDataTableRules.GetVISIBLEValue: SmallInt; +begin + result := DataTable.Fields[idx_FacturasProveedor_DetallesVISIBLE].AsSmallInt; +end; + +procedure TFacturasProveedor_DetallesDataTableRules.SetVISIBLEValue(const aValue: SmallInt); +begin + DataTable.Fields[idx_FacturasProveedor_DetallesVISIBLE].AsSmallInt := aValue; +end; + +function TFacturasProveedor_DetallesDataTableRules.GetVISIBLEIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedor_DetallesVISIBLE].IsNull; +end; + +procedure TFacturasProveedor_DetallesDataTableRules.SetVISIBLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedor_DetallesVISIBLE].AsVariant := Null; +end; + +function TFacturasProveedor_DetallesDataTableRules.GetID_ARTICULOValue: Integer; +begin + result := DataTable.Fields[idx_FacturasProveedor_DetallesID_ARTICULO].AsInteger; +end; + +procedure TFacturasProveedor_DetallesDataTableRules.SetID_ARTICULOValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasProveedor_DetallesID_ARTICULO].AsInteger := aValue; +end; + +function TFacturasProveedor_DetallesDataTableRules.GetID_ARTICULOIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedor_DetallesID_ARTICULO].IsNull; +end; + +procedure TFacturasProveedor_DetallesDataTableRules.SetID_ARTICULOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedor_DetallesID_ARTICULO].AsVariant := Null; +end; + +function TFacturasProveedor_DetallesDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_FacturasProveedor_DetallesDESCUENTO].AsFloat; +end; + +procedure TFacturasProveedor_DetallesDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_FacturasProveedor_DetallesDESCUENTO].AsFloat := aValue; +end; + +function TFacturasProveedor_DetallesDataTableRules.GetDESCUENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedor_DetallesDESCUENTO].IsNull; +end; + +procedure TFacturasProveedor_DetallesDataTableRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedor_DetallesDESCUENTO].AsVariant := Null; +end; + +function TFacturasProveedor_DetallesDataTableRules.GetIMPORTE_PORTEValue: Currency; +begin + result := DataTable.Fields[idx_FacturasProveedor_DetallesIMPORTE_PORTE].AsCurrency; +end; + +procedure TFacturasProveedor_DetallesDataTableRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasProveedor_DetallesIMPORTE_PORTE].AsCurrency := aValue; +end; + +function TFacturasProveedor_DetallesDataTableRules.GetIMPORTE_PORTEIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedor_DetallesIMPORTE_PORTE].IsNull; +end; + +procedure TFacturasProveedor_DetallesDataTableRules.SetIMPORTE_PORTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedor_DetallesIMPORTE_PORTE].AsVariant := Null; +end; + +function TFacturasProveedor_DetallesDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedor_DetallesREFERENCIA].AsString; +end; + +procedure TFacturasProveedor_DetallesDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedor_DetallesREFERENCIA].AsString := aValue; +end; + +function TFacturasProveedor_DetallesDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedor_DetallesREFERENCIA].IsNull; +end; + +procedure TFacturasProveedor_DetallesDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedor_DetallesREFERENCIA].AsVariant := Null; +end; + +function TFacturasProveedor_DetallesDataTableRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedor_DetallesREFERENCIA_PROVEEDOR].AsString; +end; + +procedure TFacturasProveedor_DetallesDataTableRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedor_DetallesREFERENCIA_PROVEEDOR].AsString := aValue; +end; + +function TFacturasProveedor_DetallesDataTableRules.GetREFERENCIA_PROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedor_DetallesREFERENCIA_PROVEEDOR].IsNull; +end; + +procedure TFacturasProveedor_DetallesDataTableRules.SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedor_DetallesREFERENCIA_PROVEEDOR].AsVariant := Null; +end; + +function TFacturasProveedor_DetallesDataTableRules.GetREFERENCIA_FABRICANTEValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedor_DetallesREFERENCIA_FABRICANTE].AsString; +end; + +procedure TFacturasProveedor_DetallesDataTableRules.SetREFERENCIA_FABRICANTEValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedor_DetallesREFERENCIA_FABRICANTE].AsString := aValue; +end; + +function TFacturasProveedor_DetallesDataTableRules.GetREFERENCIA_FABRICANTEIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedor_DetallesREFERENCIA_FABRICANTE].IsNull; +end; + +procedure TFacturasProveedor_DetallesDataTableRules.SetREFERENCIA_FABRICANTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedor_DetallesREFERENCIA_FABRICANTE].AsVariant := Null; +end; + + +{ TFacturasProveedor_PedidosDataTableRules } +constructor TFacturasProveedor_PedidosDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TFacturasProveedor_PedidosDataTableRules.Destroy; +begin + inherited; +end; + +function TFacturasProveedor_PedidosDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_FacturasProveedor_PedidosID].AsInteger; +end; + +procedure TFacturasProveedor_PedidosDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasProveedor_PedidosID].AsInteger := aValue; +end; + +function TFacturasProveedor_PedidosDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedor_PedidosID].IsNull; +end; + +procedure TFacturasProveedor_PedidosDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedor_PedidosID].AsVariant := Null; +end; + +function TFacturasProveedor_PedidosDataTableRules.GetID_FACTURAValue: Integer; +begin + result := DataTable.Fields[idx_FacturasProveedor_PedidosID_FACTURA].AsInteger; +end; + +procedure TFacturasProveedor_PedidosDataTableRules.SetID_FACTURAValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasProveedor_PedidosID_FACTURA].AsInteger := aValue; +end; + +function TFacturasProveedor_PedidosDataTableRules.GetID_FACTURAIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedor_PedidosID_FACTURA].IsNull; +end; + +procedure TFacturasProveedor_PedidosDataTableRules.SetID_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedor_PedidosID_FACTURA].AsVariant := Null; +end; + +function TFacturasProveedor_PedidosDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_FacturasProveedor_PedidosIMPORTE_TOTAL].AsCurrency; +end; + +procedure TFacturasProveedor_PedidosDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_FacturasProveedor_PedidosIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TFacturasProveedor_PedidosDataTableRules.GetIMPORTE_TOTALIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedor_PedidosIMPORTE_TOTAL].IsNull; +end; + +procedure TFacturasProveedor_PedidosDataTableRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedor_PedidosIMPORTE_TOTAL].AsVariant := Null; +end; + +function TFacturasProveedor_PedidosDataTableRules.GetID_PEDIDOValue: Integer; +begin + result := DataTable.Fields[idx_FacturasProveedor_PedidosID_PEDIDO].AsInteger; +end; + +procedure TFacturasProveedor_PedidosDataTableRules.SetID_PEDIDOValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasProveedor_PedidosID_PEDIDO].AsInteger := aValue; +end; + +function TFacturasProveedor_PedidosDataTableRules.GetID_PEDIDOIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedor_PedidosID_PEDIDO].IsNull; +end; + +procedure TFacturasProveedor_PedidosDataTableRules.SetID_PEDIDOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedor_PedidosID_PEDIDO].AsVariant := Null; +end; + +function TFacturasProveedor_PedidosDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedor_PedidosREFERENCIA].AsString; +end; + +procedure TFacturasProveedor_PedidosDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedor_PedidosREFERENCIA].AsString := aValue; +end; + +function TFacturasProveedor_PedidosDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedor_PedidosREFERENCIA].IsNull; +end; + +procedure TFacturasProveedor_PedidosDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedor_PedidosREFERENCIA].AsVariant := Null; +end; + +function TFacturasProveedor_PedidosDataTableRules.GetFECHA_PEDIDOValue: DateTime; +begin + result := DataTable.Fields[idx_FacturasProveedor_PedidosFECHA_PEDIDO].AsDateTime; +end; + +procedure TFacturasProveedor_PedidosDataTableRules.SetFECHA_PEDIDOValue(const aValue: DateTime); +begin + DataTable.Fields[idx_FacturasProveedor_PedidosFECHA_PEDIDO].AsDateTime := aValue; +end; + +function TFacturasProveedor_PedidosDataTableRules.GetFECHA_PEDIDOIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedor_PedidosFECHA_PEDIDO].IsNull; +end; + +procedure TFacturasProveedor_PedidosDataTableRules.SetFECHA_PEDIDOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedor_PedidosFECHA_PEDIDO].AsVariant := Null; +end; + +function TFacturasProveedor_PedidosDataTableRules.GetPROVEEDORValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedor_PedidosPROVEEDOR].AsString; +end; + +procedure TFacturasProveedor_PedidosDataTableRules.SetPROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedor_PedidosPROVEEDOR].AsString := aValue; +end; + +function TFacturasProveedor_PedidosDataTableRules.GetPROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedor_PedidosPROVEEDOR].IsNull; +end; + +procedure TFacturasProveedor_PedidosDataTableRules.SetPROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedor_PedidosPROVEEDOR].AsVariant := Null; +end; + + +initialization + RegisterDataTableRules(RID_ListaAnosFacturas, TListaAnosFacturasDataTableRules); + RegisterDataTableRules(RID_FacturasProveedor, TFacturasProveedorDataTableRules); + RegisterDataTableRules(RID_FacturasProveedor_Detalles, TFacturasProveedor_DetallesDataTableRules); + RegisterDataTableRules(RID_FacturasProveedor_Pedidos, TFacturasProveedor_PedidosDataTableRules); + +end. diff --git a/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorServer_Intf.dcu b/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorServer_Intf.dcu new file mode 100644 index 0000000..ada1a45 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorServer_Intf.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorServer_Intf.pas b/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorServer_Intf.pas new file mode 100644 index 0000000..e7e1285 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorServer_Intf.pas @@ -0,0 +1,2625 @@ +unit schFacturasProveedorServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schFacturasProveedorClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_ListaAnosFacturasDelta = '{EC0C9C41-F75A-44AF-9563-C1BF7C94797E}'; + RID_FacturasProveedorDelta = '{E6CC20F4-E176-4296-8598-60A05EE8A3BA}'; + RID_FacturasProveedor_DetallesDelta = '{F1E67867-CD3F-4CAD-A9E2-103852351589}'; + RID_FacturasProveedor_PedidosDelta = '{F8DF3A8E-57BE-4D89-AA51-C60A1A6845F0}'; + +type + { IListaAnosFacturasDelta } + IListaAnosFacturasDelta = interface(IListaAnosFacturas) + ['{EC0C9C41-F75A-44AF-9563-C1BF7C94797E}'] + { Property getters and setters } + function GetOldANOValue : String; + + { Properties } + property OldANO : String read GetOldANOValue; + end; + + { TListaAnosFacturasBusinessProcessorRules } + TListaAnosFacturasBusinessProcessorRules = class(TDABusinessProcessorRules, IListaAnosFacturas, IListaAnosFacturasDelta) + private + protected + { Property getters and setters } + function GetANOValue: String; virtual; + function GetANOIsNull: Boolean; virtual; + function GetOldANOValue: String; virtual; + function GetOldANOIsNull: Boolean; virtual; + procedure SetANOValue(const aValue: String); virtual; + procedure SetANOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ANO : String read GetANOValue write SetANOValue; + property ANOIsNull : Boolean read GetANOIsNull write SetANOIsNull; + property OldANO : String read GetOldANOValue; + property OldANOIsNull : Boolean read GetOldANOIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IFacturasProveedorDelta } + IFacturasProveedorDelta = interface(IFacturasProveedor) + ['{E6CC20F4-E176-4296-8598-60A05EE8A3BA}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldREFERENCIAValue : String; + function GetOldTIPOValue : String; + function GetOldREFERENCIA_PROVEEDORValue : String; + function GetOldFECHA_FACTURAValue : DateTime; + function GetOldFECHA_VENCIMIENTOValue : DateTime; + function GetOldSITUACIONValue : String; + function GetOldBASE_IMPONIBLEValue : Currency; + function GetOldDESCUENTOValue : Float; + function GetOldIMPORTE_DESCUENTOValue : Currency; + function GetOldIVAValue : Float; + function GetOldIMPORTE_IVAValue : Currency; + function GetOldREValue : Float; + function GetOldIMPORTE_REValue : Currency; + function GetOldIMPORTE_TOTALValue : Currency; + function GetOldOBSERVACIONESValue : IROStrings; + function GetOldID_PROVEEDORValue : Integer; + function GetOldNIF_CIFValue : String; + function GetOldNOMBREValue : String; + function GetOldCALLEValue : String; + function GetOldPOBLACIONValue : String; + function GetOldPROVINCIAValue : String; + function GetOldCODIGO_POSTALValue : String; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + function GetOldUSUARIOValue : String; + function GetOldID_FORMA_PAGOValue : Integer; + function GetOldRECARGO_EQUIVALENCIAValue : SmallInt; + function GetOldID_TIPO_IVAValue : Integer; + function GetOldIMPORTE_NETOValue : Currency; + function GetOldIMPORTE_PORTEValue : Currency; + function GetOldDATOS_BANCARIOSValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldTIPO : String read GetOldTIPOValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + property OldFECHA_FACTURA : DateTime read GetOldFECHA_FACTURAValue; + property OldFECHA_VENCIMIENTO : DateTime read GetOldFECHA_VENCIMIENTOValue; + property OldSITUACION : String read GetOldSITUACIONValue; + property OldBASE_IMPONIBLE : Currency read GetOldBASE_IMPONIBLEValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldIMPORTE_DESCUENTO : Currency read GetOldIMPORTE_DESCUENTOValue; + property OldIVA : Float read GetOldIVAValue; + property OldIMPORTE_IVA : Currency read GetOldIMPORTE_IVAValue; + property OldRE : Float read GetOldREValue; + property OldIMPORTE_RE : Currency read GetOldIMPORTE_REValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property OldNIF_CIF : String read GetOldNIF_CIFValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldCALLE : String read GetOldCALLEValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + property OldRECARGO_EQUIVALENCIA : SmallInt read GetOldRECARGO_EQUIVALENCIAValue; + property OldID_TIPO_IVA : Integer read GetOldID_TIPO_IVAValue; + property OldIMPORTE_NETO : Currency read GetOldIMPORTE_NETOValue; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property OldDATOS_BANCARIOS : String read GetOldDATOS_BANCARIOSValue; + end; + + { TFacturasProveedorBusinessProcessorRules } + TFacturasProveedorBusinessProcessorRules = class(TDABusinessProcessorRules, IFacturasProveedor, IFacturasProveedorDelta) + private + f_OBSERVACIONES: IROStrings; + procedure OBSERVACIONES_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetTIPOValue: String; virtual; + function GetTIPOIsNull: Boolean; virtual; + function GetOldTIPOValue: String; virtual; + function GetOldTIPOIsNull: Boolean; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + procedure SetTIPOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + function GetREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + function GetOldREFERENCIA_PROVEEDORValue: String; virtual; + function GetOldREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetFECHA_FACTURAValue: DateTime; virtual; + function GetFECHA_FACTURAIsNull: Boolean; virtual; + function GetOldFECHA_FACTURAValue: DateTime; virtual; + function GetOldFECHA_FACTURAIsNull: Boolean; virtual; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); virtual; + procedure SetFECHA_FACTURAIsNull(const aValue: Boolean); virtual; + function GetFECHA_VENCIMIENTOValue: DateTime; virtual; + function GetFECHA_VENCIMIENTOIsNull: Boolean; virtual; + function GetOldFECHA_VENCIMIENTOValue: DateTime; virtual; + function GetOldFECHA_VENCIMIENTOIsNull: Boolean; virtual; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); virtual; + procedure SetFECHA_VENCIMIENTOIsNull(const aValue: Boolean); virtual; + function GetSITUACIONValue: String; virtual; + function GetSITUACIONIsNull: Boolean; virtual; + function GetOldSITUACIONValue: String; virtual; + function GetOldSITUACIONIsNull: Boolean; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + procedure SetSITUACIONIsNull(const aValue: Boolean); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + function GetBASE_IMPONIBLEIsNull: Boolean; virtual; + function GetOldBASE_IMPONIBLEValue: Currency; virtual; + function GetOldBASE_IMPONIBLEIsNull: Boolean; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + procedure SetBASE_IMPONIBLEIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + function GetOldDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + function GetIMPORTE_DESCUENTOIsNull: Boolean; virtual; + function GetOldIMPORTE_DESCUENTOValue: Currency; virtual; + function GetOldIMPORTE_DESCUENTOIsNull: Boolean; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + procedure SetIMPORTE_DESCUENTOIsNull(const aValue: Boolean); virtual; + function GetIVAValue: Float; virtual; + function GetIVAIsNull: Boolean; virtual; + function GetOldIVAValue: Float; virtual; + function GetOldIVAIsNull: Boolean; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + procedure SetIVAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + function GetIMPORTE_IVAIsNull: Boolean; virtual; + function GetOldIMPORTE_IVAValue: Currency; virtual; + function GetOldIMPORTE_IVAIsNull: Boolean; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + procedure SetIMPORTE_IVAIsNull(const aValue: Boolean); virtual; + function GetREValue: Float; virtual; + function GetREIsNull: Boolean; virtual; + function GetOldREValue: Float; virtual; + function GetOldREIsNull: Boolean; virtual; + procedure SetREValue(const aValue: Float); virtual; + procedure SetREIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_REValue: Currency; virtual; + function GetIMPORTE_REIsNull: Boolean; virtual; + function GetOldIMPORTE_REValue: Currency; virtual; + function GetOldIMPORTE_REIsNull: Boolean; virtual; + procedure SetIMPORTE_REValue(const aValue: Currency); virtual; + procedure SetIMPORTE_REIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + function GetOBSERVACIONESIsNull: Boolean; virtual; + function GetOldOBSERVACIONESValue: IROStrings; virtual; + function GetOldOBSERVACIONESIsNull: Boolean; virtual; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + function GetID_PROVEEDORIsNull: Boolean; virtual; + function GetOldID_PROVEEDORValue: Integer; virtual; + function GetOldID_PROVEEDORIsNull: Boolean; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetNIF_CIFValue: String; virtual; + function GetNIF_CIFIsNull: Boolean; virtual; + function GetOldNIF_CIFValue: String; virtual; + function GetOldNIF_CIFIsNull: Boolean; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + procedure SetNIF_CIFIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + function GetNOMBREIsNull: Boolean; virtual; + function GetOldNOMBREValue: String; virtual; + function GetOldNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetCALLEValue: String; virtual; + function GetCALLEIsNull: Boolean; virtual; + function GetOldCALLEValue: String; virtual; + function GetOldCALLEIsNull: Boolean; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + procedure SetCALLEIsNull(const aValue: Boolean); virtual; + function GetPOBLACIONValue: String; virtual; + function GetPOBLACIONIsNull: Boolean; virtual; + function GetOldPOBLACIONValue: String; virtual; + function GetOldPOBLACIONIsNull: Boolean; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual; + function GetPROVINCIAValue: String; virtual; + function GetPROVINCIAIsNull: Boolean; virtual; + function GetOldPROVINCIAValue: String; virtual; + function GetOldPROVINCIAIsNull: Boolean; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetCODIGO_POSTALIsNull: Boolean; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALIsNull: Boolean; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + function GetUSUARIOIsNull: Boolean; virtual; + function GetOldUSUARIOValue: String; virtual; + function GetOldUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + function GetID_FORMA_PAGOIsNull: Boolean; virtual; + function GetOldID_FORMA_PAGOValue: Integer; virtual; + function GetOldID_FORMA_PAGOIsNull: Boolean; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + procedure SetID_FORMA_PAGOIsNull(const aValue: Boolean); virtual; + function GetRECARGO_EQUIVALENCIAValue: SmallInt; virtual; + function GetRECARGO_EQUIVALENCIAIsNull: Boolean; virtual; + function GetOldRECARGO_EQUIVALENCIAValue: SmallInt; virtual; + function GetOldRECARGO_EQUIVALENCIAIsNull: Boolean; virtual; + procedure SetRECARGO_EQUIVALENCIAValue(const aValue: SmallInt); virtual; + procedure SetRECARGO_EQUIVALENCIAIsNull(const aValue: Boolean); virtual; + function GetID_TIPO_IVAValue: Integer; virtual; + function GetID_TIPO_IVAIsNull: Boolean; virtual; + function GetOldID_TIPO_IVAValue: Integer; virtual; + function GetOldID_TIPO_IVAIsNull: Boolean; virtual; + procedure SetID_TIPO_IVAValue(const aValue: Integer); virtual; + procedure SetID_TIPO_IVAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + function GetIMPORTE_NETOIsNull: Boolean; virtual; + function GetOldIMPORTE_NETOValue: Currency; virtual; + function GetOldIMPORTE_NETOIsNull: Boolean; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + procedure SetIMPORTE_NETOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + function GetIMPORTE_PORTEIsNull: Boolean; virtual; + function GetOldIMPORTE_PORTEValue: Currency; virtual; + function GetOldIMPORTE_PORTEIsNull: Boolean; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); virtual; + function GetDATOS_BANCARIOSValue: String; virtual; + function GetDATOS_BANCARIOSIsNull: Boolean; virtual; + function GetOldDATOS_BANCARIOSValue: String; virtual; + function GetOldDATOS_BANCARIOSIsNull: Boolean; virtual; + procedure SetDATOS_BANCARIOSValue(const aValue: String); virtual; + procedure SetDATOS_BANCARIOSIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull : Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_EMPRESAIsNull : Boolean read GetOldID_EMPRESAIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property TIPO : String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull : Boolean read GetTIPOIsNull write SetTIPOIsNull; + property OldTIPO : String read GetOldTIPOValue; + property OldTIPOIsNull : Boolean read GetOldTIPOIsNull; + property REFERENCIA_PROVEEDOR : String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull : Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + property OldREFERENCIA_PROVEEDORIsNull : Boolean read GetOldREFERENCIA_PROVEEDORIsNull; + property FECHA_FACTURA : DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property FECHA_FACTURAIsNull : Boolean read GetFECHA_FACTURAIsNull write SetFECHA_FACTURAIsNull; + property OldFECHA_FACTURA : DateTime read GetOldFECHA_FACTURAValue; + property OldFECHA_FACTURAIsNull : Boolean read GetOldFECHA_FACTURAIsNull; + property FECHA_VENCIMIENTO : DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + property FECHA_VENCIMIENTOIsNull : Boolean read GetFECHA_VENCIMIENTOIsNull write SetFECHA_VENCIMIENTOIsNull; + property OldFECHA_VENCIMIENTO : DateTime read GetOldFECHA_VENCIMIENTOValue; + property OldFECHA_VENCIMIENTOIsNull : Boolean read GetOldFECHA_VENCIMIENTOIsNull; + property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue; + property SITUACIONIsNull : Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull; + property OldSITUACION : String read GetOldSITUACIONValue; + property OldSITUACIONIsNull : Boolean read GetOldSITUACIONIsNull; + property BASE_IMPONIBLE : Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property BASE_IMPONIBLEIsNull : Boolean read GetBASE_IMPONIBLEIsNull write SetBASE_IMPONIBLEIsNull; + property OldBASE_IMPONIBLE : Currency read GetOldBASE_IMPONIBLEValue; + property OldBASE_IMPONIBLEIsNull : Boolean read GetOldBASE_IMPONIBLEIsNull; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull : Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldDESCUENTOIsNull : Boolean read GetOldDESCUENTOIsNull; + property IMPORTE_DESCUENTO : Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property IMPORTE_DESCUENTOIsNull : Boolean read GetIMPORTE_DESCUENTOIsNull write SetIMPORTE_DESCUENTOIsNull; + property OldIMPORTE_DESCUENTO : Currency read GetOldIMPORTE_DESCUENTOValue; + property OldIMPORTE_DESCUENTOIsNull : Boolean read GetOldIMPORTE_DESCUENTOIsNull; + property IVA : Float read GetIVAValue write SetIVAValue; + property IVAIsNull : Boolean read GetIVAIsNull write SetIVAIsNull; + property OldIVA : Float read GetOldIVAValue; + property OldIVAIsNull : Boolean read GetOldIVAIsNull; + property IMPORTE_IVA : Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property IMPORTE_IVAIsNull : Boolean read GetIMPORTE_IVAIsNull write SetIMPORTE_IVAIsNull; + property OldIMPORTE_IVA : Currency read GetOldIMPORTE_IVAValue; + property OldIMPORTE_IVAIsNull : Boolean read GetOldIMPORTE_IVAIsNull; + property RE : Float read GetREValue write SetREValue; + property REIsNull : Boolean read GetREIsNull write SetREIsNull; + property OldRE : Float read GetOldREValue; + property OldREIsNull : Boolean read GetOldREIsNull; + property IMPORTE_RE : Currency read GetIMPORTE_REValue write SetIMPORTE_REValue; + property IMPORTE_REIsNull : Boolean read GetIMPORTE_REIsNull write SetIMPORTE_REIsNull; + property OldIMPORTE_RE : Currency read GetOldIMPORTE_REValue; + property OldIMPORTE_REIsNull : Boolean read GetOldIMPORTE_REIsNull; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull : Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldIMPORTE_TOTALIsNull : Boolean read GetOldIMPORTE_TOTALIsNull; + property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue; + property OBSERVACIONESIsNull : Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property OldOBSERVACIONESIsNull : Boolean read GetOldOBSERVACIONESIsNull; + property ID_PROVEEDOR : Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull : Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property OldID_PROVEEDORIsNull : Boolean read GetOldID_PROVEEDORIsNull; + property NIF_CIF : String read GetNIF_CIFValue write SetNIF_CIFValue; + property NIF_CIFIsNull : Boolean read GetNIF_CIFIsNull write SetNIF_CIFIsNull; + property OldNIF_CIF : String read GetOldNIF_CIFValue; + property OldNIF_CIFIsNull : Boolean read GetOldNIF_CIFIsNull; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull : Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldNOMBREIsNull : Boolean read GetOldNOMBREIsNull; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull : Boolean read GetCALLEIsNull write SetCALLEIsNull; + property OldCALLE : String read GetOldCALLEValue; + property OldCALLEIsNull : Boolean read GetOldCALLEIsNull; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull : Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property OldPOBLACIONIsNull : Boolean read GetOldPOBLACIONIsNull; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull : Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property OldPROVINCIAIsNull : Boolean read GetOldPROVINCIAIsNull; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull : Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property OldCODIGO_POSTALIsNull : Boolean read GetOldCODIGO_POSTALIsNull; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull : Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_ALTAIsNull : Boolean read GetOldFECHA_ALTAIsNull; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull : Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldUSUARIOIsNull : Boolean read GetOldUSUARIOIsNull; + property ID_FORMA_PAGO : Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property ID_FORMA_PAGOIsNull : Boolean read GetID_FORMA_PAGOIsNull write SetID_FORMA_PAGOIsNull; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + property OldID_FORMA_PAGOIsNull : Boolean read GetOldID_FORMA_PAGOIsNull; + property RECARGO_EQUIVALENCIA : SmallInt read GetRECARGO_EQUIVALENCIAValue write SetRECARGO_EQUIVALENCIAValue; + property RECARGO_EQUIVALENCIAIsNull : Boolean read GetRECARGO_EQUIVALENCIAIsNull write SetRECARGO_EQUIVALENCIAIsNull; + property OldRECARGO_EQUIVALENCIA : SmallInt read GetOldRECARGO_EQUIVALENCIAValue; + property OldRECARGO_EQUIVALENCIAIsNull : Boolean read GetOldRECARGO_EQUIVALENCIAIsNull; + property ID_TIPO_IVA : Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue; + property ID_TIPO_IVAIsNull : Boolean read GetID_TIPO_IVAIsNull write SetID_TIPO_IVAIsNull; + property OldID_TIPO_IVA : Integer read GetOldID_TIPO_IVAValue; + property OldID_TIPO_IVAIsNull : Boolean read GetOldID_TIPO_IVAIsNull; + property IMPORTE_NETO : Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_NETOIsNull : Boolean read GetIMPORTE_NETOIsNull write SetIMPORTE_NETOIsNull; + property OldIMPORTE_NETO : Currency read GetOldIMPORTE_NETOValue; + property OldIMPORTE_NETOIsNull : Boolean read GetOldIMPORTE_NETOIsNull; + property IMPORTE_PORTE : Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull : Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property OldIMPORTE_PORTEIsNull : Boolean read GetOldIMPORTE_PORTEIsNull; + property DATOS_BANCARIOS : String read GetDATOS_BANCARIOSValue write SetDATOS_BANCARIOSValue; + property DATOS_BANCARIOSIsNull : Boolean read GetDATOS_BANCARIOSIsNull write SetDATOS_BANCARIOSIsNull; + property OldDATOS_BANCARIOS : String read GetOldDATOS_BANCARIOSValue; + property OldDATOS_BANCARIOSIsNull : Boolean read GetOldDATOS_BANCARIOSIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IFacturasProveedor_DetallesDelta } + IFacturasProveedor_DetallesDelta = interface(IFacturasProveedor_Detalles) + ['{F1E67867-CD3F-4CAD-A9E2-103852351589}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_FACTURAValue : Integer; + function GetOldPOSICIONValue : Integer; + function GetOldTIPO_DETALLEValue : String; + function GetOldCONCEPTOValue : String; + function GetOldCANTIDADValue : Float; + function GetOldUNIDAD_MEDIDAValue : String; + function GetOldIMPORTE_UNIDADValue : Currency; + function GetOldIMPORTE_TOTALValue : Currency; + function GetOldVISIBLEValue : SmallInt; + function GetOldID_ARTICULOValue : Integer; + function GetOldDESCUENTOValue : Float; + function GetOldIMPORTE_PORTEValue : Currency; + function GetOldREFERENCIAValue : String; + function GetOldREFERENCIA_PROVEEDORValue : String; + function GetOldREFERENCIA_FABRICANTEValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property OldPOSICION : Integer read GetOldPOSICIONValue; + property OldTIPO_DETALLE : String read GetOldTIPO_DETALLEValue; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property OldCANTIDAD : Float read GetOldCANTIDADValue; + property OldUNIDAD_MEDIDA : String read GetOldUNIDAD_MEDIDAValue; + property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldVISIBLE : SmallInt read GetOldVISIBLEValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + property OldREFERENCIA_FABRICANTE : String read GetOldREFERENCIA_FABRICANTEValue; + end; + + { TFacturasProveedor_DetallesBusinessProcessorRules } + TFacturasProveedor_DetallesBusinessProcessorRules = class(TDABusinessProcessorRules, IFacturasProveedor_Detalles, IFacturasProveedor_DetallesDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_FACTURAValue: Integer; virtual; + function GetID_FACTURAIsNull: Boolean; virtual; + function GetOldID_FACTURAValue: Integer; virtual; + function GetOldID_FACTURAIsNull: Boolean; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + procedure SetID_FACTURAIsNull(const aValue: Boolean); virtual; + function GetPOSICIONValue: Integer; virtual; + function GetPOSICIONIsNull: Boolean; virtual; + function GetOldPOSICIONValue: Integer; virtual; + function GetOldPOSICIONIsNull: Boolean; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + procedure SetPOSICIONIsNull(const aValue: Boolean); virtual; + function GetTIPO_DETALLEValue: String; virtual; + function GetTIPO_DETALLEIsNull: Boolean; virtual; + function GetOldTIPO_DETALLEValue: String; virtual; + function GetOldTIPO_DETALLEIsNull: Boolean; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + procedure SetTIPO_DETALLEIsNull(const aValue: Boolean); virtual; + function GetCONCEPTOValue: String; virtual; + function GetCONCEPTOIsNull: Boolean; virtual; + function GetOldCONCEPTOValue: String; virtual; + function GetOldCONCEPTOIsNull: Boolean; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + procedure SetCONCEPTOIsNull(const aValue: Boolean); virtual; + function GetCANTIDADValue: Float; virtual; + function GetCANTIDADIsNull: Boolean; virtual; + function GetOldCANTIDADValue: Float; virtual; + function GetOldCANTIDADIsNull: Boolean; virtual; + procedure SetCANTIDADValue(const aValue: Float); virtual; + procedure SetCANTIDADIsNull(const aValue: Boolean); virtual; + function GetUNIDAD_MEDIDAValue: String; virtual; + function GetUNIDAD_MEDIDAIsNull: Boolean; virtual; + function GetOldUNIDAD_MEDIDAValue: String; virtual; + function GetOldUNIDAD_MEDIDAIsNull: Boolean; virtual; + procedure SetUNIDAD_MEDIDAValue(const aValue: String); virtual; + procedure SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_UNIDADValue: Currency; virtual; + function GetIMPORTE_UNIDADIsNull: Boolean; virtual; + function GetOldIMPORTE_UNIDADValue: Currency; virtual; + function GetOldIMPORTE_UNIDADIsNull: Boolean; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual; + procedure SetIMPORTE_UNIDADIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetVISIBLEValue: SmallInt; virtual; + function GetVISIBLEIsNull: Boolean; virtual; + function GetOldVISIBLEValue: SmallInt; virtual; + function GetOldVISIBLEIsNull: Boolean; virtual; + procedure SetVISIBLEValue(const aValue: SmallInt); virtual; + procedure SetVISIBLEIsNull(const aValue: Boolean); virtual; + function GetID_ARTICULOValue: Integer; virtual; + function GetID_ARTICULOIsNull: Boolean; virtual; + function GetOldID_ARTICULOValue: Integer; virtual; + function GetOldID_ARTICULOIsNull: Boolean; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + function GetOldDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + function GetIMPORTE_PORTEIsNull: Boolean; virtual; + function GetOldIMPORTE_PORTEValue: Currency; virtual; + function GetOldIMPORTE_PORTEIsNull: Boolean; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + function GetREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + function GetOldREFERENCIA_PROVEEDORValue: String; virtual; + function GetOldREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_FABRICANTEValue: String; virtual; + function GetREFERENCIA_FABRICANTEIsNull: Boolean; virtual; + function GetOldREFERENCIA_FABRICANTEValue: String; virtual; + function GetOldREFERENCIA_FABRICANTEIsNull: Boolean; virtual; + procedure SetREFERENCIA_FABRICANTEValue(const aValue: String); virtual; + procedure SetREFERENCIA_FABRICANTEIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_FACTURA : Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull : Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property OldID_FACTURAIsNull : Boolean read GetOldID_FACTURAIsNull; + property POSICION : Integer read GetPOSICIONValue write SetPOSICIONValue; + property POSICIONIsNull : Boolean read GetPOSICIONIsNull write SetPOSICIONIsNull; + property OldPOSICION : Integer read GetOldPOSICIONValue; + property OldPOSICIONIsNull : Boolean read GetOldPOSICIONIsNull; + property TIPO_DETALLE : String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property TIPO_DETALLEIsNull : Boolean read GetTIPO_DETALLEIsNull write SetTIPO_DETALLEIsNull; + property OldTIPO_DETALLE : String read GetOldTIPO_DETALLEValue; + property OldTIPO_DETALLEIsNull : Boolean read GetOldTIPO_DETALLEIsNull; + property CONCEPTO : String read GetCONCEPTOValue write SetCONCEPTOValue; + property CONCEPTOIsNull : Boolean read GetCONCEPTOIsNull write SetCONCEPTOIsNull; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property OldCONCEPTOIsNull : Boolean read GetOldCONCEPTOIsNull; + property CANTIDAD : Float read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDADIsNull : Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; + property OldCANTIDAD : Float read GetOldCANTIDADValue; + property OldCANTIDADIsNull : Boolean read GetOldCANTIDADIsNull; + property UNIDAD_MEDIDA : String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue; + property UNIDAD_MEDIDAIsNull : Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull; + property OldUNIDAD_MEDIDA : String read GetOldUNIDAD_MEDIDAValue; + property OldUNIDAD_MEDIDAIsNull : Boolean read GetOldUNIDAD_MEDIDAIsNull; + property IMPORTE_UNIDAD : Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_UNIDADIsNull : Boolean read GetIMPORTE_UNIDADIsNull write SetIMPORTE_UNIDADIsNull; + property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue; + property OldIMPORTE_UNIDADIsNull : Boolean read GetOldIMPORTE_UNIDADIsNull; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull : Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldIMPORTE_TOTALIsNull : Boolean read GetOldIMPORTE_TOTALIsNull; + property VISIBLE : SmallInt read GetVISIBLEValue write SetVISIBLEValue; + property VISIBLEIsNull : Boolean read GetVISIBLEIsNull write SetVISIBLEIsNull; + property OldVISIBLE : SmallInt read GetOldVISIBLEValue; + property OldVISIBLEIsNull : Boolean read GetOldVISIBLEIsNull; + property ID_ARTICULO : Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull : Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldID_ARTICULOIsNull : Boolean read GetOldID_ARTICULOIsNull; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull : Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldDESCUENTOIsNull : Boolean read GetOldDESCUENTOIsNull; + property IMPORTE_PORTE : Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull : Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property OldIMPORTE_PORTEIsNull : Boolean read GetOldIMPORTE_PORTEIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property REFERENCIA_PROVEEDOR : String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull : Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + property OldREFERENCIA_PROVEEDORIsNull : Boolean read GetOldREFERENCIA_PROVEEDORIsNull; + property REFERENCIA_FABRICANTE : String read GetREFERENCIA_FABRICANTEValue write SetREFERENCIA_FABRICANTEValue; + property REFERENCIA_FABRICANTEIsNull : Boolean read GetREFERENCIA_FABRICANTEIsNull write SetREFERENCIA_FABRICANTEIsNull; + property OldREFERENCIA_FABRICANTE : String read GetOldREFERENCIA_FABRICANTEValue; + property OldREFERENCIA_FABRICANTEIsNull : Boolean read GetOldREFERENCIA_FABRICANTEIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IFacturasProveedor_PedidosDelta } + IFacturasProveedor_PedidosDelta = interface(IFacturasProveedor_Pedidos) + ['{F8DF3A8E-57BE-4D89-AA51-C60A1A6845F0}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_FACTURAValue : Integer; + function GetOldIMPORTE_TOTALValue : Currency; + function GetOldID_PEDIDOValue : Integer; + function GetOldREFERENCIAValue : String; + function GetOldFECHA_PEDIDOValue : DateTime; + function GetOldPROVEEDORValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldFECHA_PEDIDO : DateTime read GetOldFECHA_PEDIDOValue; + property OldPROVEEDOR : String read GetOldPROVEEDORValue; + end; + + { TFacturasProveedor_PedidosBusinessProcessorRules } + TFacturasProveedor_PedidosBusinessProcessorRules = class(TDABusinessProcessorRules, IFacturasProveedor_Pedidos, IFacturasProveedor_PedidosDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_FACTURAValue: Integer; virtual; + function GetID_FACTURAIsNull: Boolean; virtual; + function GetOldID_FACTURAValue: Integer; virtual; + function GetOldID_FACTURAIsNull: Boolean; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + procedure SetID_FACTURAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetID_PEDIDOValue: Integer; virtual; + function GetID_PEDIDOIsNull: Boolean; virtual; + function GetOldID_PEDIDOValue: Integer; virtual; + function GetOldID_PEDIDOIsNull: Boolean; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + procedure SetID_PEDIDOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetFECHA_PEDIDOValue: DateTime; virtual; + function GetFECHA_PEDIDOIsNull: Boolean; virtual; + function GetOldFECHA_PEDIDOValue: DateTime; virtual; + function GetOldFECHA_PEDIDOIsNull: Boolean; virtual; + procedure SetFECHA_PEDIDOValue(const aValue: DateTime); virtual; + procedure SetFECHA_PEDIDOIsNull(const aValue: Boolean); virtual; + function GetPROVEEDORValue: String; virtual; + function GetPROVEEDORIsNull: Boolean; virtual; + function GetOldPROVEEDORValue: String; virtual; + function GetOldPROVEEDORIsNull: Boolean; virtual; + procedure SetPROVEEDORValue(const aValue: String); virtual; + procedure SetPROVEEDORIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_FACTURA : Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull : Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property OldID_FACTURAIsNull : Boolean read GetOldID_FACTURAIsNull; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull : Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldIMPORTE_TOTALIsNull : Boolean read GetOldIMPORTE_TOTALIsNull; + property ID_PEDIDO : Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property ID_PEDIDOIsNull : Boolean read GetID_PEDIDOIsNull write SetID_PEDIDOIsNull; + property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue; + property OldID_PEDIDOIsNull : Boolean read GetOldID_PEDIDOIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property FECHA_PEDIDO : DateTime read GetFECHA_PEDIDOValue write SetFECHA_PEDIDOValue; + property FECHA_PEDIDOIsNull : Boolean read GetFECHA_PEDIDOIsNull write SetFECHA_PEDIDOIsNull; + property OldFECHA_PEDIDO : DateTime read GetOldFECHA_PEDIDOValue; + property OldFECHA_PEDIDOIsNull : Boolean read GetOldFECHA_PEDIDOIsNull; + property PROVEEDOR : String read GetPROVEEDORValue write SetPROVEEDORValue; + property PROVEEDORIsNull : Boolean read GetPROVEEDORIsNull write SetPROVEEDORIsNull; + property OldPROVEEDOR : String read GetOldPROVEEDORValue; + property OldPROVEEDORIsNull : Boolean read GetOldPROVEEDORIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers, uDAInterfaces; + +{ TListaAnosFacturasBusinessProcessorRules } +constructor TListaAnosFacturasBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TListaAnosFacturasBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TListaAnosFacturasBusinessProcessorRules.GetANOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosFacturasANO]; +end; + +function TListaAnosFacturasBusinessProcessorRules.GetANOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosFacturasANO]); +end; + +function TListaAnosFacturasBusinessProcessorRules.GetOldANOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaAnosFacturasANO]; +end; + +function TListaAnosFacturasBusinessProcessorRules.GetOldANOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ListaAnosFacturasANO]); +end; + +procedure TListaAnosFacturasBusinessProcessorRules.SetANOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosFacturasANO] := aValue; +end; + +procedure TListaAnosFacturasBusinessProcessorRules.SetANOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosFacturasANO] := Null; +end; + + +{ TFacturasProveedorBusinessProcessorRules } +constructor TFacturasProveedorBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := OBSERVACIONES_OnChange; + f_OBSERVACIONES := NewROStrings(StrList,True); +end; + +destructor TFacturasProveedorBusinessProcessorRules.Destroy; +begin + inherited; +end; + +procedure TFacturasProveedorBusinessProcessorRules.OBSERVACIONES_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorOBSERVACIONES] := TStringList(Sender).Text; +end; + +function TFacturasProveedorBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorID]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorID]); +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorID]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorID]); +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorID] := aValue; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorID] := Null; +end; + +function TFacturasProveedorBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorID_EMPRESA]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorID_EMPRESA]); +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorID_EMPRESA]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorID_EMPRESA]); +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorID_EMPRESA] := aValue; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorID_EMPRESA] := Null; +end; + +function TFacturasProveedorBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorREFERENCIA]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorREFERENCIA]); +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorREFERENCIA]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorREFERENCIA]); +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorREFERENCIA] := aValue; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorREFERENCIA] := Null; +end; + +function TFacturasProveedorBusinessProcessorRules.GetTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorTIPO]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetTIPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorTIPO]); +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorTIPO]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldTIPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorTIPO]); +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetTIPOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorTIPO] := aValue; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetTIPOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorTIPO] := Null; +end; + +function TFacturasProveedorBusinessProcessorRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorREFERENCIA_PROVEEDOR]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetREFERENCIA_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorREFERENCIA_PROVEEDOR]); +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorREFERENCIA_PROVEEDOR]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorREFERENCIA_PROVEEDOR]); +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorREFERENCIA_PROVEEDOR] := aValue; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorREFERENCIA_PROVEEDOR] := Null; +end; + +function TFacturasProveedorBusinessProcessorRules.GetFECHA_FACTURAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorFECHA_FACTURA]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetFECHA_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorFECHA_FACTURA]); +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldFECHA_FACTURAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorFECHA_FACTURA]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldFECHA_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorFECHA_FACTURA]); +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetFECHA_FACTURAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorFECHA_FACTURA] := aValue; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetFECHA_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorFECHA_FACTURA] := Null; +end; + +function TFacturasProveedorBusinessProcessorRules.GetFECHA_VENCIMIENTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorFECHA_VENCIMIENTO]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetFECHA_VENCIMIENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorFECHA_VENCIMIENTO]); +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldFECHA_VENCIMIENTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorFECHA_VENCIMIENTO]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldFECHA_VENCIMIENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorFECHA_VENCIMIENTO]); +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetFECHA_VENCIMIENTOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorFECHA_VENCIMIENTO] := aValue; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetFECHA_VENCIMIENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorFECHA_VENCIMIENTO] := Null; +end; + +function TFacturasProveedorBusinessProcessorRules.GetSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorSITUACION]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetSITUACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorSITUACION]); +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorSITUACION]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldSITUACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorSITUACION]); +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetSITUACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorSITUACION] := aValue; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetSITUACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorSITUACION] := Null; +end; + +function TFacturasProveedorBusinessProcessorRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorBASE_IMPONIBLE]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetBASE_IMPONIBLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorBASE_IMPONIBLE]); +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorBASE_IMPONIBLE]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldBASE_IMPONIBLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorBASE_IMPONIBLE]); +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorBASE_IMPONIBLE] := aValue; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetBASE_IMPONIBLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorBASE_IMPONIBLE] := Null; +end; + +function TFacturasProveedorBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorDESCUENTO]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorDESCUENTO]); +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorDESCUENTO]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorDESCUENTO]); +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorDESCUENTO] := aValue; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorDESCUENTO] := Null; +end; + +function TFacturasProveedorBusinessProcessorRules.GetIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_DESCUENTO]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetIMPORTE_DESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_DESCUENTO]); +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorIMPORTE_DESCUENTO]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldIMPORTE_DESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorIMPORTE_DESCUENTO]); +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetIMPORTE_DESCUENTOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_DESCUENTO] := aValue; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetIMPORTE_DESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_DESCUENTO] := Null; +end; + +function TFacturasProveedorBusinessProcessorRules.GetIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIVA]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetIVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIVA]); +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorIVA]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldIVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorIVA]); +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetIVAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIVA] := aValue; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetIVAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIVA] := Null; +end; + +function TFacturasProveedorBusinessProcessorRules.GetIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_IVA]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetIMPORTE_IVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_IVA]); +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorIMPORTE_IVA]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldIMPORTE_IVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorIMPORTE_IVA]); +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetIMPORTE_IVAValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_IVA] := aValue; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetIMPORTE_IVAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_IVA] := Null; +end; + +function TFacturasProveedorBusinessProcessorRules.GetREValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorRE]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorRE]); +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldREValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorRE]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorRE]); +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetREValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorRE] := aValue; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetREIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorRE] := Null; +end; + +function TFacturasProveedorBusinessProcessorRules.GetIMPORTE_REValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_RE]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetIMPORTE_REIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_RE]); +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldIMPORTE_REValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorIMPORTE_RE]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldIMPORTE_REIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorIMPORTE_RE]); +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetIMPORTE_REValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_RE] := aValue; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetIMPORTE_REIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_RE] := Null; +end; + +function TFacturasProveedorBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_TOTAL]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_TOTAL]); +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorIMPORTE_TOTAL]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorIMPORTE_TOTAL]); +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_TOTAL] := aValue; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_TOTAL] := Null; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings; +begin + result := f_OBSERVACIONES; + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorOBSERVACIONES]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOBSERVACIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorOBSERVACIONES]); +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorOBSERVACIONES]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldOBSERVACIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorOBSERVACIONES]); +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetOBSERVACIONESIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorOBSERVACIONES] := Null; +end; + +function TFacturasProveedorBusinessProcessorRules.GetID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorID_PROVEEDOR]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetID_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorID_PROVEEDOR]); +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorID_PROVEEDOR]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldID_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorID_PROVEEDOR]); +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorID_PROVEEDOR] := aValue; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetID_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorID_PROVEEDOR] := Null; +end; + +function TFacturasProveedorBusinessProcessorRules.GetNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorNIF_CIF]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetNIF_CIFIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorNIF_CIF]); +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorNIF_CIF]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldNIF_CIFIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorNIF_CIF]); +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetNIF_CIFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorNIF_CIF] := aValue; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetNIF_CIFIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorNIF_CIF] := Null; +end; + +function TFacturasProveedorBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorNOMBRE]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorNOMBRE]); +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorNOMBRE]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorNOMBRE]); +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorNOMBRE] := aValue; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorNOMBRE] := Null; +end; + +function TFacturasProveedorBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorCALLE]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorCALLE]); +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorCALLE]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorCALLE]); +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorCALLE] := aValue; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetCALLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorCALLE] := Null; +end; + +function TFacturasProveedorBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorPOBLACION]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorPOBLACION]); +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorPOBLACION]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorPOBLACION]); +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorPOBLACION] := aValue; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetPOBLACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorPOBLACION] := Null; +end; + +function TFacturasProveedorBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorPROVINCIA]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorPROVINCIA]); +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorPROVINCIA]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorPROVINCIA]); +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorPROVINCIA] := aValue; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetPROVINCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorPROVINCIA] := Null; +end; + +function TFacturasProveedorBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorCODIGO_POSTAL]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorCODIGO_POSTAL]); +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorCODIGO_POSTAL]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorCODIGO_POSTAL]); +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorCODIGO_POSTAL] := aValue; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetCODIGO_POSTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorCODIGO_POSTAL] := Null; +end; + +function TFacturasProveedorBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorFECHA_ALTA]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorFECHA_ALTA]); +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorFECHA_ALTA]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorFECHA_ALTA]); +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorFECHA_ALTA] := aValue; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorFECHA_ALTA] := Null; +end; + +function TFacturasProveedorBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorFECHA_MODIFICACION]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorFECHA_MODIFICACION]); +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorFECHA_MODIFICACION]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorFECHA_MODIFICACION]); +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorFECHA_MODIFICACION] := aValue; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorFECHA_MODIFICACION] := Null; +end; + +function TFacturasProveedorBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorUSUARIO]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorUSUARIO]); +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorUSUARIO]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorUSUARIO]); +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorUSUARIO] := aValue; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorUSUARIO] := Null; +end; + +function TFacturasProveedorBusinessProcessorRules.GetID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorID_FORMA_PAGO]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetID_FORMA_PAGOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorID_FORMA_PAGO]); +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorID_FORMA_PAGO]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldID_FORMA_PAGOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorID_FORMA_PAGO]); +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorID_FORMA_PAGO] := aValue; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetID_FORMA_PAGOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorID_FORMA_PAGO] := Null; +end; + +function TFacturasProveedorBusinessProcessorRules.GetRECARGO_EQUIVALENCIAValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorRECARGO_EQUIVALENCIA]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetRECARGO_EQUIVALENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorRECARGO_EQUIVALENCIA]); +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldRECARGO_EQUIVALENCIAValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorRECARGO_EQUIVALENCIA]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldRECARGO_EQUIVALENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorRECARGO_EQUIVALENCIA]); +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetRECARGO_EQUIVALENCIAValue(const aValue: SmallInt); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorRECARGO_EQUIVALENCIA] := aValue; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetRECARGO_EQUIVALENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorRECARGO_EQUIVALENCIA] := Null; +end; + +function TFacturasProveedorBusinessProcessorRules.GetID_TIPO_IVAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorID_TIPO_IVA]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetID_TIPO_IVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorID_TIPO_IVA]); +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldID_TIPO_IVAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorID_TIPO_IVA]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldID_TIPO_IVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorID_TIPO_IVA]); +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetID_TIPO_IVAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorID_TIPO_IVA] := aValue; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetID_TIPO_IVAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorID_TIPO_IVA] := Null; +end; + +function TFacturasProveedorBusinessProcessorRules.GetIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_NETO]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetIMPORTE_NETOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_NETO]); +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorIMPORTE_NETO]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldIMPORTE_NETOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorIMPORTE_NETO]); +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetIMPORTE_NETOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_NETO] := aValue; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetIMPORTE_NETOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_NETO] := Null; +end; + +function TFacturasProveedorBusinessProcessorRules.GetIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_PORTE]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetIMPORTE_PORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_PORTE]); +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorIMPORTE_PORTE]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldIMPORTE_PORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorIMPORTE_PORTE]); +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_PORTE] := aValue; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetIMPORTE_PORTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTE_PORTE] := Null; +end; + +function TFacturasProveedorBusinessProcessorRules.GetDATOS_BANCARIOSValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorDATOS_BANCARIOS]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetDATOS_BANCARIOSIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorDATOS_BANCARIOS]); +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldDATOS_BANCARIOSValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorDATOS_BANCARIOS]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldDATOS_BANCARIOSIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorDATOS_BANCARIOS]); +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetDATOS_BANCARIOSValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorDATOS_BANCARIOS] := aValue; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetDATOS_BANCARIOSIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorDATOS_BANCARIOS] := Null; +end; + + +{ TFacturasProveedor_DetallesBusinessProcessorRules } +constructor TFacturasProveedor_DetallesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TFacturasProveedor_DetallesBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesID]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesID]); +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesID]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesID]); +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesID] := aValue; +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesID] := Null; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesID_FACTURA]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetID_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesID_FACTURA]); +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesID_FACTURA]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldID_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesID_FACTURA]); +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetID_FACTURAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesID_FACTURA] := aValue; +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetID_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesID_FACTURA] := Null; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesPOSICION]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetPOSICIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesPOSICION]); +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesPOSICION]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldPOSICIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesPOSICION]); +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetPOSICIONValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesPOSICION] := aValue; +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetPOSICIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesPOSICION] := Null; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetTIPO_DETALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesTIPO_DETALLE]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetTIPO_DETALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesTIPO_DETALLE]); +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldTIPO_DETALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesTIPO_DETALLE]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldTIPO_DETALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesTIPO_DETALLE]); +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetTIPO_DETALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesTIPO_DETALLE] := aValue; +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetTIPO_DETALLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesTIPO_DETALLE] := Null; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesCONCEPTO]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetCONCEPTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesCONCEPTO]); +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesCONCEPTO]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldCONCEPTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesCONCEPTO]); +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetCONCEPTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesCONCEPTO] := aValue; +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetCONCEPTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesCONCEPTO] := Null; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetCANTIDADValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesCANTIDAD]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetCANTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesCANTIDAD]); +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldCANTIDADValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesCANTIDAD]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldCANTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesCANTIDAD]); +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetCANTIDADValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesCANTIDAD] := aValue; +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetCANTIDADIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesCANTIDAD] := Null; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetUNIDAD_MEDIDAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesUNIDAD_MEDIDA]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetUNIDAD_MEDIDAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesUNIDAD_MEDIDA]); +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldUNIDAD_MEDIDAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesUNIDAD_MEDIDA]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldUNIDAD_MEDIDAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesUNIDAD_MEDIDA]); +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetUNIDAD_MEDIDAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesUNIDAD_MEDIDA] := aValue; +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesUNIDAD_MEDIDA] := Null; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetIMPORTE_UNIDADValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesIMPORTE_UNIDAD]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetIMPORTE_UNIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesIMPORTE_UNIDAD]); +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldIMPORTE_UNIDADValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesIMPORTE_UNIDAD]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldIMPORTE_UNIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesIMPORTE_UNIDAD]); +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetIMPORTE_UNIDADValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesIMPORTE_UNIDAD] := aValue; +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetIMPORTE_UNIDADIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesIMPORTE_UNIDAD] := Null; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesIMPORTE_TOTAL]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesIMPORTE_TOTAL]); +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesIMPORTE_TOTAL]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesIMPORTE_TOTAL]); +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesIMPORTE_TOTAL] := aValue; +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesIMPORTE_TOTAL] := Null; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetVISIBLEValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesVISIBLE]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetVISIBLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesVISIBLE]); +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldVISIBLEValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesVISIBLE]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldVISIBLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesVISIBLE]); +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetVISIBLEValue(const aValue: SmallInt); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesVISIBLE] := aValue; +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetVISIBLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesVISIBLE] := Null; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesID_ARTICULO]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetID_ARTICULOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesID_ARTICULO]); +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesID_ARTICULO]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldID_ARTICULOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesID_ARTICULO]); +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetID_ARTICULOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesID_ARTICULO] := aValue; +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetID_ARTICULOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesID_ARTICULO] := Null; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesDESCUENTO]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesDESCUENTO]); +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesDESCUENTO]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesDESCUENTO]); +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesDESCUENTO] := aValue; +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesDESCUENTO] := Null; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesIMPORTE_PORTE]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetIMPORTE_PORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesIMPORTE_PORTE]); +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesIMPORTE_PORTE]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldIMPORTE_PORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesIMPORTE_PORTE]); +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesIMPORTE_PORTE] := aValue; +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetIMPORTE_PORTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesIMPORTE_PORTE] := Null; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesREFERENCIA]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesREFERENCIA]); +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesREFERENCIA]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesREFERENCIA]); +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesREFERENCIA] := aValue; +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesREFERENCIA] := Null; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesREFERENCIA_PROVEEDOR]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetREFERENCIA_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesREFERENCIA_PROVEEDOR]); +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesREFERENCIA_PROVEEDOR]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesREFERENCIA_PROVEEDOR]); +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesREFERENCIA_PROVEEDOR] := aValue; +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesREFERENCIA_PROVEEDOR] := Null; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetREFERENCIA_FABRICANTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesREFERENCIA_FABRICANTE]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetREFERENCIA_FABRICANTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesREFERENCIA_FABRICANTE]); +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldREFERENCIA_FABRICANTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesREFERENCIA_FABRICANTE]; +end; + +function TFacturasProveedor_DetallesBusinessProcessorRules.GetOldREFERENCIA_FABRICANTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_DetallesREFERENCIA_FABRICANTE]); +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetREFERENCIA_FABRICANTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesREFERENCIA_FABRICANTE] := aValue; +end; + +procedure TFacturasProveedor_DetallesBusinessProcessorRules.SetREFERENCIA_FABRICANTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_DetallesREFERENCIA_FABRICANTE] := Null; +end; + + +{ TFacturasProveedor_PedidosBusinessProcessorRules } +constructor TFacturasProveedor_PedidosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TFacturasProveedor_PedidosBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TFacturasProveedor_PedidosBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_PedidosID]; +end; + +function TFacturasProveedor_PedidosBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_PedidosID]); +end; + +function TFacturasProveedor_PedidosBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_PedidosID]; +end; + +function TFacturasProveedor_PedidosBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_PedidosID]); +end; + +procedure TFacturasProveedor_PedidosBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_PedidosID] := aValue; +end; + +procedure TFacturasProveedor_PedidosBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_PedidosID] := Null; +end; + +function TFacturasProveedor_PedidosBusinessProcessorRules.GetID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_PedidosID_FACTURA]; +end; + +function TFacturasProveedor_PedidosBusinessProcessorRules.GetID_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_PedidosID_FACTURA]); +end; + +function TFacturasProveedor_PedidosBusinessProcessorRules.GetOldID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_PedidosID_FACTURA]; +end; + +function TFacturasProveedor_PedidosBusinessProcessorRules.GetOldID_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_PedidosID_FACTURA]); +end; + +procedure TFacturasProveedor_PedidosBusinessProcessorRules.SetID_FACTURAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_PedidosID_FACTURA] := aValue; +end; + +procedure TFacturasProveedor_PedidosBusinessProcessorRules.SetID_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_PedidosID_FACTURA] := Null; +end; + +function TFacturasProveedor_PedidosBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_PedidosIMPORTE_TOTAL]; +end; + +function TFacturasProveedor_PedidosBusinessProcessorRules.GetIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_PedidosIMPORTE_TOTAL]); +end; + +function TFacturasProveedor_PedidosBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_PedidosIMPORTE_TOTAL]; +end; + +function TFacturasProveedor_PedidosBusinessProcessorRules.GetOldIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_PedidosIMPORTE_TOTAL]); +end; + +procedure TFacturasProveedor_PedidosBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_PedidosIMPORTE_TOTAL] := aValue; +end; + +procedure TFacturasProveedor_PedidosBusinessProcessorRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_PedidosIMPORTE_TOTAL] := Null; +end; + +function TFacturasProveedor_PedidosBusinessProcessorRules.GetID_PEDIDOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_PedidosID_PEDIDO]; +end; + +function TFacturasProveedor_PedidosBusinessProcessorRules.GetID_PEDIDOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_PedidosID_PEDIDO]); +end; + +function TFacturasProveedor_PedidosBusinessProcessorRules.GetOldID_PEDIDOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_PedidosID_PEDIDO]; +end; + +function TFacturasProveedor_PedidosBusinessProcessorRules.GetOldID_PEDIDOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_PedidosID_PEDIDO]); +end; + +procedure TFacturasProveedor_PedidosBusinessProcessorRules.SetID_PEDIDOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_PedidosID_PEDIDO] := aValue; +end; + +procedure TFacturasProveedor_PedidosBusinessProcessorRules.SetID_PEDIDOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_PedidosID_PEDIDO] := Null; +end; + +function TFacturasProveedor_PedidosBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_PedidosREFERENCIA]; +end; + +function TFacturasProveedor_PedidosBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_PedidosREFERENCIA]); +end; + +function TFacturasProveedor_PedidosBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_PedidosREFERENCIA]; +end; + +function TFacturasProveedor_PedidosBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_PedidosREFERENCIA]); +end; + +procedure TFacturasProveedor_PedidosBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_PedidosREFERENCIA] := aValue; +end; + +procedure TFacturasProveedor_PedidosBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_PedidosREFERENCIA] := Null; +end; + +function TFacturasProveedor_PedidosBusinessProcessorRules.GetFECHA_PEDIDOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_PedidosFECHA_PEDIDO]; +end; + +function TFacturasProveedor_PedidosBusinessProcessorRules.GetFECHA_PEDIDOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_PedidosFECHA_PEDIDO]); +end; + +function TFacturasProveedor_PedidosBusinessProcessorRules.GetOldFECHA_PEDIDOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_PedidosFECHA_PEDIDO]; +end; + +function TFacturasProveedor_PedidosBusinessProcessorRules.GetOldFECHA_PEDIDOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_PedidosFECHA_PEDIDO]); +end; + +procedure TFacturasProveedor_PedidosBusinessProcessorRules.SetFECHA_PEDIDOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_PedidosFECHA_PEDIDO] := aValue; +end; + +procedure TFacturasProveedor_PedidosBusinessProcessorRules.SetFECHA_PEDIDOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_PedidosFECHA_PEDIDO] := Null; +end; + +function TFacturasProveedor_PedidosBusinessProcessorRules.GetPROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_PedidosPROVEEDOR]; +end; + +function TFacturasProveedor_PedidosBusinessProcessorRules.GetPROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_PedidosPROVEEDOR]); +end; + +function TFacturasProveedor_PedidosBusinessProcessorRules.GetOldPROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_PedidosPROVEEDOR]; +end; + +function TFacturasProveedor_PedidosBusinessProcessorRules.GetOldPROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedor_PedidosPROVEEDOR]); +end; + +procedure TFacturasProveedor_PedidosBusinessProcessorRules.SetPROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_PedidosPROVEEDOR] := aValue; +end; + +procedure TFacturasProveedor_PedidosBusinessProcessorRules.SetPROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedor_PedidosPROVEEDOR] := Null; +end; + + +initialization + RegisterBusinessProcessorRules(RID_ListaAnosFacturasDelta, TListaAnosFacturasBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_FacturasProveedorDelta, TFacturasProveedorBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_FacturasProveedor_DetallesDelta, TFacturasProveedor_DetallesBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_FacturasProveedor_PedidosDelta, TFacturasProveedor_PedidosBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Facturas de proveedor/Model/uBizDetallesFacturaProveedor.dcu b/Source/Modulos/Facturas de proveedor/Model/uBizDetallesFacturaProveedor.dcu new file mode 100644 index 0000000..d962bef Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Model/uBizDetallesFacturaProveedor.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Model/uBizDetallesFacturaProveedor.pas b/Source/Modulos/Facturas de proveedor/Model/uBizDetallesFacturaProveedor.pas new file mode 100644 index 0000000..22e7254 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Model/uBizDetallesFacturaProveedor.pas @@ -0,0 +1,48 @@ +unit uBizDetallesFacturaProveedor; + +interface + +uses + uDAInterfaces, uDADataTable, schFacturasProveedorClient_Intf; + +const + BIZ_CLIENT_DETALLES_FACTURA_Proveedor = 'Client.DetallesFactura.Proveedor'; + +type + IBizDetallesFacturaProveedor = interface(IFacturasProveedor_Detalles) + ['{785A33CF-17AF-4FFC-9904-33AD3489A6B5}'] + end; + + TBizDetallesFacturaProveedor = class(TFacturasProveedor_DetallesDataTableRules, IBizDetallesFacturaProveedor) + protected + procedure OnNewRecord(Sender: TDADataTable); override; + procedure BeforeInsert(Sender: TDADataTable); override; + end; + +implementation + +uses + SysUtils, DB; + +{ TBizDetallesFacturaProveedor } + +procedure TBizDetallesFacturaProveedor.BeforeInsert(Sender: TDADataTable); +var + AMasterTable : TDADataTable; +begin + inherited; + AMasterTable := DataTable.GetMasterDataTable; + if Assigned(AMasterTable) and (AMasterTable.State = dsInsert) then + AMasterTable.Post; +end; + +procedure TBizDetallesFacturaProveedor.OnNewRecord(Sender: TDADataTable); +begin + inherited; + VISIBLE := 1; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_DETALLES_FACTURA_PROVEEDOR, TBizDetallesFacturaProveedor); + +end. diff --git a/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedor.dcu b/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedor.dcu new file mode 100644 index 0000000..6eea951 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedor.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedor.pas b/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedor.pas new file mode 100644 index 0000000..0a2546f --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedor.pas @@ -0,0 +1,356 @@ +unit uBizFacturasProveedor; + +interface + +uses + uDAInterfaces, uDADataTable, schFacturasProveedorClient_Intf, + uBizContactos, uBizDetallesFacturaProveedor, uBizPedidosFacturaProveedor, + uDBSelectionListUtils, Classes; + +const + BIZ_CLIENT_FACTURA_PROVEEDOR = 'Client.FacturaProveedor'; + + CTE_TIPO_ABONO = 'A'; + CTE_TIPO_FACTURA = 'F'; + + CTE_PENDIENTE = 'PENDIENTE'; + CTE_PARCIAMENTE_PAGADA = 'PARCIALMENTE PAGADA'; + CTE_PAGADA = 'PAGADA'; + +type + IBizFacturaProveedor = interface(IFacturasProveedor) + ['{4BC473E5-3B82-4C1A-8E52-2A227490F94E}'] + + procedure SetProveedor(AValue : IBizProveedor); + function GetProveedor : IBizProveedor; + property Proveedor : IBizProveedor read GetProveedor write SetProveedor; + + // Esta propidad es para que el controlador pueda acceder directamente + // a la propiedad Proveedor + procedure _SetProveedor(AValue : IBizProveedor); + function _GetProveedor : IBizProveedor; + property _Proveedor : IBizProveedor read _GetProveedor write _SetProveedor; + + function GetDetalles: IBizDetallesFacturaProveedor; + procedure SetDetalles(Value: IBizDetallesFacturaProveedor); + property Detalles: IBizDetallesFacturaProveedor read GetDetalles write SetDetalles; + + function GetPedidos: IBizPedidosFacturaProveedor; + procedure SetPedidos(Value: IBizPedidosFacturaProveedor); + property Pedidos: IBizPedidosFacturaProveedor read GetPedidos write SetPedidos; + + function EsNuevo : Boolean; + procedure CalcularImporteTotal; + end; + + TBizFacturaProveedor = class(TFacturasProveedorDataTableRules, IBizFacturaProveedor, ISeleccionable) + private + FSeleccionableInterface : ISeleccionable; + procedure CalcularDescuento; + procedure CalcularIVA; + procedure CalcularRE; + procedure CalcularBaseImponible; + procedure AsignarTipoIVA (IDTipoIVA : Integer); + protected + FProveedor : IBizProveedor; + FDetalles : IBizDetallesFacturaProveedor; + FDetallesLink : TDADataSource; + FPedidos: IBizPedidosFacturaProveedor; + FPedidosLink : TDADataSource; + + procedure SetProveedor(AValue : IBizProveedor); + function GetProveedor : IBizProveedor; + + procedure _SetProveedor(AValue : IBizProveedor); + function _GetProveedor : IBizProveedor; + + function GetDetalles: IBizDetallesFacturaProveedor; + procedure SetDetalles(Value: IBizDetallesFacturaProveedor); + + function GetPedidos: IBizPedidosFacturaProveedor; + procedure SetPedidos(Value: IBizPedidosFacturaProveedor); + + procedure RECARGO_EQUIVALENCIAOnChange(Sender: TDACustomField); + procedure ID_TIPO_IVAOnChange(Sender: TDACustomField); + + procedure IMPORTE_NETOOnChange(Sender: TDACustomField); + procedure IMPORTE_PORTEOnChange(Sender: TDACustomField); + procedure DESCUENTOOnChange(Sender: TDACustomField); + procedure IVAOnChange(Sender: TDACustomField); + procedure REOnChange(Sender: TDACustomField); + + procedure OnNewRecord(Sender: TDADataTable); override; + + public + function EsNuevo : Boolean; + procedure IniciarValoresFacturaNueva; + procedure CalcularImporteTotal; + + property Proveedor : IBizProveedor read GetProveedor write SetProveedor; + property _Proveedor : IBizProveedor read _GetProveedor write _SetProveedor; + property Detalles: IBizDetallesFacturaProveedor read GetDetalles write SetDetalles; + property Pedidos: IBizPedidosFacturaProveedor read GetPedidos write SetPedidos; + + property SeleccionableInterface : ISeleccionable read FSeleccionableInterface + write FSeleccionableInterface implements ISeleccionable; + + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + end; + +implementation + +uses + SysUtils, uDataTableUtils, DB, uDateUtils, DateUtils, uDataModuleUsuarios, + Variants, cxDateUtils, uTiposIVAController, uBizTiposIVA, uFactuGES_App; + +{ TBizFacturaProveedor } + +function TBizFacturaProveedor.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +procedure TBizFacturaProveedor.AsignarTipoIVA(IDTipoIVA: Integer); +var + ATiposIVAController : ITiposIVAController; + ATipoIVA : IBizTipoIVA; +begin + inherited; + + ATiposIVAController := TTiposIVAController.Create; + try + ATipoIVA := ATiposIVAController.Buscar(IDTipoIVA); + ATipoIVA.DataTable.Active := True; + if Assigned(ATipoIVA) then + begin + Edit; + IVA := ATipoIVA.IVA; + if (RECARGO_EQUIVALENCIA = 1) then + RE := ATipoIVA.RE + else + RE := 0; + end; + finally + ATiposIVAController := NIL; + end; +end; + +procedure TBizFacturaProveedor.CalcularBaseImponible; +begin + if not Self.DataTable.Editing then + Edit; + IMPORTE_DESCUENTO := IMPORTE_NETO * (DESCUENTO/100); + BASE_IMPONIBLE := IMPORTE_NETO - IMPORTE_DESCUENTO; // + IMPORTE_PORTE; ya no se tiene en cuenta porque se desglosa por artculo +end; + +procedure TBizFacturaProveedor.CalcularDescuento; +begin + if not Self.DataTable.Editing then + Edit; + IMPORTE_DESCUENTO := (DESCUENTO / 100) * BASE_IMPONIBLE; +end; + +procedure TBizFacturaProveedor.CalcularImporteTotal; +begin + DataTable.DisableControls; + DataTable.Fields.FieldEventsDisabled := True; + try + CalcularBaseImponible; + CalcularIVA; + CalcularRE; + + if not Self.DataTable.Editing then + Edit; + IMPORTE_TOTAL := BASE_IMPONIBLE + IMPORTE_IVA + IMPORTE_RE; + finally + DataTable.Fields.FieldEventsDisabled := False; + DataTable.EnableControls; + end; +end; + +procedure TBizFacturaProveedor.CalcularIVA; +begin + if not Self.DataTable.Editing then + Edit; + IMPORTE_IVA := (IVA / 100) * (BASE_IMPONIBLE - IMPORTE_DESCUENTO); +end; + +procedure TBizFacturaProveedor.CalcularRE; +begin + if not Self.DataTable.Editing then + Edit; + IMPORTE_RE := (RE / 100) * (BASE_IMPONIBLE - IMPORTE_DESCUENTO); +end; + +constructor TBizFacturaProveedor.Create(aDataTable: TDADataTable); +begin + inherited; + FProveedor := Nil; + + with DataTable do + begin + FieldByName(fld_FacturasProveedorID_TIPO_IVA).OnChange := ID_TIPO_IVAOnChange; + FieldByName(fld_FacturasProveedorRECARGO_EQUIVALENCIA).OnChange := RECARGO_EQUIVALENCIAOnChange; + + FieldByName(fld_FacturasProveedorIMPORTE_NETO).OnChange := IMPORTE_NETOOnChange; + FieldByName(fld_FacturasProveedorIMPORTE_PORTE).OnChange := IMPORTE_PORTEOnChange; + FieldByName(fld_FacturasProveedorDESCUENTO).OnChange := DESCUENTOOnChange; + FieldByName(fld_FacturasProveedorIVA).OnChange := IVAOnChange; + FieldByName(fld_FacturasProveedorRE).OnChange := REOnChange; + end; + + FDetallesLink := TDADataSource.Create(NIL); + FDetallesLink.DataTable := aDataTable; + + FPedidosLink := TDADataSource.Create(NIL); + FPedidosLink.DataTable := aDataTable; + + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +procedure TBizFacturaProveedor.DESCUENTOOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +destructor TBizFacturaProveedor.Destroy; +begin + FProveedor := NIL; + FDetalles := NIL; + FDetallesLink.Free; + FPedidos := NIL; + FPedidosLink.Free; + + FSeleccionableInterface := NIL; + inherited; +end; + +function TBizFacturaProveedor.GetPedidos: IBizPedidosFacturaProveedor; +begin + Result := FPedidos; +end; + +function TBizFacturaProveedor.GetProveedor: IBizProveedor; +begin + Result := FProveedor; +end; + +function TBizFacturaProveedor.GetDetalles: IBizDetallesFacturaProveedor; +begin + Result := FDetalles; +end; + +procedure TBizFacturaProveedor.ID_TIPO_IVAOnChange(Sender: TDACustomField); +begin + AsignarTipoIVA(ID_TIPO_IVA); +end; + +procedure TBizFacturaProveedor.IMPORTE_NETOOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +procedure TBizFacturaProveedor.IMPORTE_PORTEOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +procedure TBizFacturaProveedor.IniciarValoresFacturaNueva; +begin + ID_EMPRESA := AppFactuGES.EmpresaActiva.ID; + USUARIO := AppFactuGES.UsuarioActivo.UserName; + FECHA_FACTURA := DateOf(Now); + FECHA_VENCIMIENTO := DateOf(Now); + ID_PROVEEDOR := ID_NULO; + TIPO := CTE_TIPO_FACTURA; + ID_FORMA_PAGO := AppFactuGES.EmpresaActiva.ID_FORMA_PAGO; + ID_TIPO_IVA := AppFactuGES.EmpresaActiva.ID_TIPO_IVA; + RE := 0; + SITUACION := CTE_PENDIENTE; +end; + +procedure TBizFacturaProveedor.IVAOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +procedure TBizFacturaProveedor.OnNewRecord(Sender: TDADataTable); +begin + inherited; + IniciarValoresFacturaNueva; +end; + +procedure TBizFacturaProveedor.RECARGO_EQUIVALENCIAOnChange( + Sender: TDACustomField); +begin + AsignarTipoIVA(ID_TIPO_IVA); +end; + +procedure TBizFacturaProveedor.REOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +procedure TBizFacturaProveedor.SetPedidos(Value: IBizPedidosFacturaProveedor); +begin + FPedidos := Value; + EnlazarMaestroDetalle(FPedidosLink, FPedidos); +end; + +procedure TBizFacturaProveedor.SetProveedor(AValue: IBizProveedor); +var + bEnEdicion : Boolean; +begin + FProveedor := AValue; + + bEnEdicion := (DataTable.State in dsEditModes); + if not bEnEdicion then + Edit; + + if Assigned(FProveedor) then + begin + if not FProveedor.DataTable.Active then + FProveedor.DataTable.Active := True; + + ID_Proveedor := FProveedor.ID; + NOMBRE := FProveedor.NOMBRE; + NIF_CIF := FProveedor.NIF_CIF; + CALLE := FProveedor.CALLE; + CODIGO_POSTAL := FProveedor.CODIGO_POSTAL; + PROVINCIA := FProveedor.PROVINCIA; + POBLACION := FProveedor.POBLACION; + if FProveedor.ID_FORMA_PAGO > 0 then + ID_FORMA_PAGO := FProveedor.ID_FORMA_PAGO; + if FProveedor.ID_TIPO_IVA > 0 then + ID_TIPO_IVA := FProveedor.ID_TIPO_IVA; +// RECARGO_EQUIVALENCIA := FProveedor.RECARGO_EQUIVALENCIA; + Post; + + if bEnEdicion then + Edit; + end +end; + +procedure TBizFacturaProveedor.SetDetalles(Value: IBizDetallesFacturaProveedor); +begin + FDetalles := Value; + EnlazarMaestroDetalle(FDetallesLink, FDetalles); +end; + +function TBizFacturaProveedor._GetProveedor: IBizProveedor; +begin + Result := FProveedor; +end; + +procedure TBizFacturaProveedor._SetProveedor(AValue: IBizProveedor); +begin + FProveedor := AValue; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_FACTURA_PROVEEDOR, TBizFacturaProveedor); + +finalization + +end. diff --git a/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedorServer.dcu b/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedorServer.dcu new file mode 100644 index 0000000..ffdb15d Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedorServer.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedorServer.pas b/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedorServer.pas new file mode 100644 index 0000000..5f4726f --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedorServer.pas @@ -0,0 +1,146 @@ +unit uBizFacturasProveedorServer; + +interface + +uses + uDAInterfaces, uDADelta, uDABusinessProcessor, + schFacturasProveedorServer_Intf; + +const + BIZ_SERVER_FACTURAS_PROVEEDOR = 'Server.FacturasProveedor'; + + +type + TBizFacturasProveedorServer = class(TFacturasProveedorBusinessProcessorRules) + private + FReferenciaAutomatica : Boolean; + function DarReferencia : String; + function IncrementarReferencia : Boolean; + protected + procedure Delete_Asiento_Factura(aChange: TDADeltaChange); virtual; + procedure BeforeProcessDelta(Sender: TDABusinessProcessor; + const aDelta: IDADelta); override; + procedure AfterProcessChange(Sender: TDABusinessProcessor; + aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); override; + end; + +implementation + +uses + Variants, uDAClasses, uReferenciasUtils, uBusinessUtils, uROClasses, uDataModuleServer, + schFacturasProveedorClient_Intf, FactuGES_Intf, uROServer, SysUtils; + +const + REF_FACTURAS_PROVEEDOR = 'REF_FACTURAS_PROVEEDOR'; + CTE_TIPO_ABONO = 'A'; + CTE_TIPO_FACTURA = 'F'; + + +{ TBizFacturasProveedorServer } + +procedure TBizFacturasProveedorServer.AfterProcessChange( + Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); +begin + inherited; + case aChange.ChangeType of + ctInsert: begin +// Insert_Asiento_Factura(aChange); + end; + ctUpdate: begin +// Update_Asiento_Factura(aChange); + end; + ctDelete: begin +// Delete_Asiento_Factura(aChange); + end; + end; + + { Por defecto, mantenemos los deltas por si alguna tabla hija los necesita } + CanRemoveFromDelta := False; + + case aChange.ChangeType of + ctInsert, ctUpdate: begin + if FReferenciaAutomatica then + begin + IncrementarReferencia; + FReferenciaAutomatica := False; + end; + end; + end; +end; + +procedure TBizFacturasProveedorServer.BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); +begin + FReferenciaAutomatica := False; + + case Sender.CurrentChange.ChangeType of + ctInsert, ctUpdate: begin + //Si la referencia no ha sido asignada le asignamos una nosotros + if REFERENCIAIsNull or (Length(REFERENCIA) = 0) then + begin + FReferenciaAutomatica := True; + REFERENCIA := DarReferencia; + end; + end; + end; +end; + +function TBizFacturasProveedorServer.DarReferencia: String; +var + AReferenciasService : IsrvReferencias; + Intf : IInterface; + AClientID : TGUID; +begin + // Aunque sea un abono, la referencia es la misma que una factura + + CreateGUID(AClientID); + + GetClassFactory('srvReferencias').CreateInstance(AClientID, Intf); + AReferenciasService := Intf as IsrvReferencias; + Result := AReferenciasService.DarNuevaReferencia(REF_FACTURAS_PROVEEDOR, ID_EMPRESA) +end; + +function TBizFacturasProveedorServer.IncrementarReferencia: Boolean; +var + AReferenciasService : IsrvReferencias; + Intf : IInterface; + AClientID : TGUID; +begin + // Aunque sea un abono, la referencia es la misma que una factura + + CreateGUID(AClientID); + + GetClassFactory('srvReferencias').CreateInstance(AClientID, Intf); + AReferenciasService := Intf as IsrvReferencias; + Result := AReferenciasService.IncrementarValorReferencia(REF_FACTURAS_PROVEEDOR, Self.REFERENCIA, ID_EMPRESA) +end; + + +procedure TBizFacturasProveedorServer.Delete_Asiento_Factura(aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + //Eliminamos los recibos de la factura + ACommand := ASchema.NewCommand(ACurrentConn, 'Delete_RecibosFactura'); + try + with ACommand do + begin + ParamByName('ID_FACTURA').Value := aChange.OldValueByName[fld_FacturasProveedorID]; + Execute; + end; + finally + ACommand := NIL; + end; +end; + + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_FACTURAS_PROVEEDOR, TBizFacturasProveedorServer); + +end. diff --git a/Source/Modulos/Facturas de proveedor/Model/uBizPedidosFacturaProveedor.dcu b/Source/Modulos/Facturas de proveedor/Model/uBizPedidosFacturaProveedor.dcu new file mode 100644 index 0000000..57bfb32 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Model/uBizPedidosFacturaProveedor.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Model/uBizPedidosFacturaProveedor.pas b/Source/Modulos/Facturas de proveedor/Model/uBizPedidosFacturaProveedor.pas new file mode 100644 index 0000000..b64a45e --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Model/uBizPedidosFacturaProveedor.pas @@ -0,0 +1,47 @@ +unit uBizPedidosFacturaProveedor; + +interface + +uses + uDAInterfaces, uDADataTable, schFacturasProveedorClient_Intf; + +const + BIZ_CLIENT_PEDIDOS_FACTURA_PROVEEDOR = 'Client.PedidosFacturaProveedor'; + +type + IBizPedidosFacturaProveedor = interface(IFacturasProveedor_Pedidos) + ['{D0426F98-561B-46F1-9ADC-31A8BB1D68F4}'] + end; + + TBizPedidosFacturaProveedor = class(TFacturasProveedor_PedidosDataTableRules, IBizPedidosFacturaProveedor) + protected + procedure OnNewRecord(Sender: TDADataTable); override; + procedure BeforeInsert(Sender: TDADataTable); override; + end; + +implementation + +uses + SysUtils, DB; + +{ TBizPedidosFacturaProveedor } + +procedure TBizPedidosFacturaProveedor.BeforeInsert(Sender: TDADataTable); +var + AMasterTable : TDADataTable; +begin + inherited; + AMasterTable := DataTable.GetMasterDataTable; + if Assigned(AMasterTable) and (AMasterTable.State = dsInsert) then + AMasterTable.Post; +end; + +procedure TBizPedidosFacturaProveedor.OnNewRecord(Sender: TDADataTable); +begin + inherited; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_PEDIDOS_FACTURA_PROVEEDOR, TBizPedidosFacturaProveedor); + +end. diff --git a/Source/Modulos/Facturas de proveedor/Plugin/FacturasProveedor_plugin.bdsproj b/Source/Modulos/Facturas de proveedor/Plugin/FacturasProveedor_plugin.bdsproj new file mode 100644 index 0000000..0ce4590 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Plugin/FacturasProveedor_plugin.bdsproj @@ -0,0 +1,496 @@ + + + + + + + + + + + + FacturasProveedor_plugin.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + EurekaLog 5.1.9 + + + + diff --git a/Source/Modulos/Facturas de proveedor/Plugin/FacturasProveedor_plugin.dcu b/Source/Modulos/Facturas de proveedor/Plugin/FacturasProveedor_plugin.dcu new file mode 100644 index 0000000..23e3118 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Plugin/FacturasProveedor_plugin.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Plugin/FacturasProveedor_plugin.dpk b/Source/Modulos/Facturas de proveedor/Plugin/FacturasProveedor_plugin.dpk new file mode 100644 index 0000000..ee6ba60 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Plugin/FacturasProveedor_plugin.dpk differ diff --git a/Source/Modulos/Facturas de proveedor/Plugin/FacturasProveedor_plugin.dproj b/Source/Modulos/Facturas de proveedor/Plugin/FacturasProveedor_plugin.dproj new file mode 100644 index 0000000..6d58847 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Plugin/FacturasProveedor_plugin.dproj @@ -0,0 +1,552 @@ + + + {e7d762a1-3a15-46b2-bd5b-3821d13b8347} + FacturasProveedor_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\FacturasProveedor_plugin.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 + + + + + + + + + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + EurekaLog 5.1.9 + FacturasProveedor_plugin.dpk + + + + + MainSource + + + + +
PluginFacturasProveedor
+
+
+
+ + diff --git a/Source/Modulos/Facturas de proveedor/Plugin/FacturasProveedor_plugin.drc b/Source/Modulos/Facturas de proveedor/Plugin/FacturasProveedor_plugin.drc new file mode 100644 index 0000000..a9b1045 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Plugin/FacturasProveedor_plugin.drc @@ -0,0 +1,17 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Facturas de proveedor\Plugin\uPluginFacturasProveedor.dfm */ +/* C:\Codigo\Source\Modulos\Facturas de proveedor\Plugin\FacturasProveedor_plugin.res */ +/* c:\temp\dtf20F.tmp */ diff --git a/Source/Modulos/Facturas de proveedor/Plugin/FacturasProveedor_plugin.rc b/Source/Modulos/Facturas de proveedor/Plugin/FacturasProveedor_plugin.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Plugin/FacturasProveedor_plugin.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Facturas de proveedor/Plugin/FacturasProveedor_plugin.res b/Source/Modulos/Facturas de proveedor/Plugin/FacturasProveedor_plugin.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Plugin/FacturasProveedor_plugin.res differ diff --git a/Source/Modulos/Facturas de proveedor/Plugin/uPluginFacturasProveedor.dcu b/Source/Modulos/Facturas de proveedor/Plugin/uPluginFacturasProveedor.dcu new file mode 100644 index 0000000..9e42bb6 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Plugin/uPluginFacturasProveedor.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Plugin/uPluginFacturasProveedor.dfm b/Source/Modulos/Facturas de proveedor/Plugin/uPluginFacturasProveedor.dfm new file mode 100644 index 0000000..c237584 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Plugin/uPluginFacturasProveedor.dfm @@ -0,0 +1,131 @@ +object PluginFacturasProveedor: TPluginFacturasProveedor + OldCreateOrder = True + DefaultAction = actFacturasProveedor + Description = 'Compras' + ModuleMenu = MainMenu + ModuleName = 'Facturas de proveedor' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software' + Version = '1.0.0' + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001BE4944415478DA + 63FCFFFF3F032D0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80 + F83F980601EBC07C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3 + C275FB19E62DDD84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD978 + 90B005D87C802E06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9 + E0FF3F605803F11FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F1 + 8E70860DBB4E106701CCDBA480075B431936EF3D459C05F8520E3600D2B3A850 + 8F61EB81D3C45B802BA86096C3E4616AE7E7EB32EC387486763E989DA3CDB0E7 + E839DAF96046A626C3FE131768E783A969EA0C874E5FC26F4184A729387792E3 + 838929AA0CC7CE5EC16F41A89B09387792E3839E042586D317AFE3B720C8D988 + C1ADFA08591674C62A309CBB7213BF057E8E060C5EB5C7F01A06B27CC1913F70 + 7E820D0BD882B62839868BD76FE3B7C0DB4E0F5EAEC0CA1850D9032BF393275F + C1881F18BF394296E1CACD3BF82DF0B0D6C16938884E9B760D6BF0116D818BA5 + 164EC3411667CDB88133E888B2C0DE541D6CD8BFBF88621966E1BFFFFFB1061F + 322068818D912AB844A404E0B5A077CA428A0C8701980500619929EF09CFCE42 + 0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + object actFacturasProveedor: TAction + Category = 'Compras' + Caption = 'Facturas de proveedor' + ImageIndex = 0 + OnExecute = actFacturasProveedorExecute + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object Compras1: TMenuItem + Tag = 400 + Caption = '&Compras' + GroupIndex = 1 + ImageIndex = 0 + object Facturasdeproveedor1: TMenuItem + Tag = 301 + Action = actFacturasProveedor + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001684944415478DA + 63FCFFFF3FC394C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F + 19ACFDF319CEED98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC + 5BBA09D3007CE0D7EFBF609B4178C98683D80D40770136B0AED69461E59623B8 + 0D80391B04FE01E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D + 760CCEE587E03607359F66585A6AC0B069CF49FC06A0DB0CC2207E58FB598685 + 85BA0CDB0E9CC16DC0C15E0706FBE203605B37375A809D0D02209BA3BB2F30CC + C9D566D87DE41C6E0340CE46B7F9E7AF3F6076D2C42B0C53D2D4180E9FBE8C69 + 4046941B8363E94194105F5E6EC810D9791ECC9E99A5C9903EED3A437F920AC3 + 89F357310D480E7386DB08A2435ACF302C2ED687B8049A067266DD62E88A5364 + 387BF906A60171410E280107B3191DB446C9315CBA7E1BD380283F3B147F23DB + FC1BC9E07FFFFE335CB97907D380502F6B86D5DB8E129D13310C0009900A4006 + 00004B6D80F047EC10D30000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000002834944415478DA + BDD6ED4F52511800F087ECDFA8B5D6CB2A8550FC525862BC28B56966F9B2D658 + 5B7373D69ABDACF5A12FADD6875EB6968DD922299C1481888680C0E555485494 + 20B2FADCFAD6565FE53EDD7B0B86099C6BD7F970D9E53CDC7B7EE73907388810 + 11363344C5A023F0916BB0B9FC73559B7970C7DFD7DCFBDC8150B5A5AA24705A + 23159505C7A90CB62A0EFCF7E869A62F9A46C8E568C8D134C8DB2EC382EB6979 + D0EE4F635B5335340C506B3A0B3F549485FEBDDE7DF730182C7E308C38F881EB + 0D1654CBF680FFD70A04F42EF819D181D14691C131DF073C79ACA66C85A5F2C1 + 078D70F44A0022D4E742EE47E81C98EC413268F3A6B05D29E65D19BB4EB91C72 + E7E2B56373E6C93019B47A97F0945252B212BEC156FADDDB031667940738CD80 + AA3F60F114AD37BE79BAC1EA9A21836F3D8BD8A13EC881953E959582BD77F4BA + 14ECD3713268712791F9A20A064D572530E19B25836FDC0B7846535B002BAD65 + 7E40C5D7E4EF310E88C14925C8E06BD73C7636D709AEF0F9A56AF084E7798053 + 0CD8221C1CEADF0FBE68920C9AA7E6B0AB4526784AF57DFB808A2D92C1516702 + BBB5F5822B1CECDD0BA1D9140FF05D023BB532EEA74A08F8F8C26E88CEA5C9E0 + C8E47B660DEB41712D28684A1F9DDF05F164861FD8A1AE03E58DB0A00AEFEB76 + 4262294B064D13716C57D582E666541078EFEC0E486696C9E02B470C5B9BA470 + FC568C57E7ECA086232B85B64EBE9503EFF46C8754F60B3FF044A3A4F49643AF + FEFBD03B985DB3CEF9F6EDAE6D905EFE4A065F8ECFA0F6888488B103EAD37F2A + 39EDEB028DF62836378889187BBE38547EFBE20D0E8F4550231713B172B9E2E0 + 05BEB0855175A886DBCB362288A0C11AC227CFCC1B82E5A322B819F11BFB7D9A + E74CD9D0710000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 80 + Bitmap = {} + end +end diff --git a/Source/Modulos/Facturas de proveedor/Plugin/uPluginFacturasProveedor.pas b/Source/Modulos/Facturas de proveedor/Plugin/uPluginFacturasProveedor.pas new file mode 100644 index 0000000..e56fc0e --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Plugin/uPluginFacturasProveedor.pas @@ -0,0 +1,97 @@ +unit uPluginFacturasProveedor; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList, uPlugins_Intf; + +type + TPluginFacturasProveedor = class(TModuleController, IMCFacturasProveedor) + actFacturasProveedor: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + Compras1: TMenuItem; + Facturasdeproveedor1: TMenuItem; + procedure actFacturasProveedorExecute(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure VerFacturas(const ID_Proveedor: Integer; + const ANombreProveedor : String = ''); + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, cxControls, + uFacturasProveedorController, uBizFacturasProveedor, + uFacturasProveedorViewRegister; + +function GetModule : TModuleController; +begin + Result := TPluginFacturasProveedor.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +procedure TPluginFacturasProveedor.actFacturasProveedorExecute(Sender: TObject); +var + AFacturasProveedorController : IFacturasProveedorController; + AFacturasProveedor : IBizFacturaProveedor; + +begin + AFacturasProveedorController := TFacturasProveedorController.Create; + AFacturasProveedor := (AFacturasProveedorController.BuscarTodos as IBizFacturaProveedor); + AFacturasProveedorController.VerTodos(AFacturasProveedor); +end; + +constructor TPluginFacturasProveedor.Create(AOwner: TComponent); +begin + inherited; + ModuleName := MODULENAME_FACTURAS_PROVEEDOR; + uFacturasProveedorViewRegister.RegisterViews; +end; + +destructor TPluginFacturasProveedor.Destroy; +begin + uFacturasProveedorViewRegister.UnregisterViews; + inherited; +end; + +procedure TPluginFacturasProveedor.VerFacturas(const ID_Proveedor: Integer; + const ANombreProveedor: String); +var + AFacturasProveedorController : IFacturasProveedorController; + AFacturasProveedor : IBizFacturaProveedor; + AText : String; +begin + AText := Format('Lista de facturas del proveedor %s', [ANombreProveedor]); + AFacturasProveedorController := TFacturasProveedorController.Create; + try + ShowHourglassCursor; + try + AFacturasProveedor := AFacturasProveedorController.BuscarTodos(ID_Proveedor); + finally + HideHourglassCursor; + end; + AFacturasProveedorController.VerTodos(AFacturasProveedor, True, AText); + finally + AFacturasProveedor := NIL; + AFacturasProveedorController := NIL; + end; +end; + +initialization + RegisterModuleClass(TPluginFacturasProveedor); + +finalization + UnRegisterModuleClass(TPluginFacturasProveedor); + +end. diff --git a/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.dcu b/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.dcu new file mode 100644 index 0000000..f76f0ad Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.dfm b/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.dfm new file mode 100644 index 0000000..cc41b21 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.dfm @@ -0,0 +1,1496 @@ +object RptFacturasProveedor: TRptFacturasProveedor + OldCreateOrder = True + OnCreate = DataModuleCreate + OnDestroy = DataModuleDestroy + Height = 513 + Width = 933 + object schReport: TDASchema + ConnectionManager = dmServer.ConnectionManager + Datasets = < + item + Params = < + item + Name = 'ID' + DataType = datInteger + Value = '1' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'select'#10' V_FACTURAS_PROVEEDOR.id, V_FACTURAS_PROVEEDOR.id_empre' + + 'sa,'#10' V_FACTURAS_PROVEEDOR.referencia, V_FACTURAS_PROVEEDOR.tip' + + 'o,'#10' V_FACTURAS_PROVEEDOR.fecha_factura, V_FACTURAS_PROVEEDOR.b' + + 'ase_imponible,'#10' V_FACTURAS_PROVEEDOR.situacion, V_FACTURAS_PRO' + + 'VEEDOR.descuento,'#10' V_FACTURAS_PROVEEDOR.importe_descuento, V_F' + + 'ACTURAS_PROVEEDOR.iva,'#10' V_FACTURAS_PROVEEDOR.importe_iva, V_FA' + + 'CTURAS_PROVEEDOR.re,'#10' V_FACTURAS_PROVEEDOR.importe_re, V_FACTU' + + 'RAS_PROVEEDOR.importe_total,'#10' V_FACTURAS_PROVEEDOR.observacion' + + 'es, V_FACTURAS_PROVEEDOR.nif_cif,'#10' V_FACTURAS_PROVEEDOR.id_pro' + + 'veedor, V_FACTURAS_PROVEEDOR.nombre,'#10' V_FACTURAS_PROVEEDOR.cal' + + 'le, V_FACTURAS_PROVEEDOR.provincia,'#10' V_FACTURAS_PROVEEDOR.pobl' + + 'acion, V_FACTURAS_PROVEEDOR.codigo_postal,'#10' V_FACTURAS_PROVEED' + + 'OR.recargo_equivalencia, V_FACTURAS_PROVEEDOR.importe_neto,'#10' V' + + '_FACTURAS_PROVEEDOR.importe_porte, formas_pago.descripcion as FO' + + 'RMA_PAGO,'#10' V_FACTURAS_PROVEEDOR.DATOS_BANCARIOS'#10'from V_FACTURA' + + 'S_PROVEEDOR'#10' left outer join formas_pago on (formas_pago.id = ' + + 'V_FACTURAS_PROVEEDOR.id_forma_pago)'#10'WHERE V_FACTURAS_PROVEEDOR.I' + + 'D = :ID'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'TIPO' + TableField = 'TIPO' + end + item + DatasetField = 'FECHA_FACTURA' + TableField = 'FECHA_FACTURA' + end + item + DatasetField = 'BASE_IMPONIBLE' + TableField = 'BASE_IMPONIBLE' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IMPORTE_DESCUENTO' + TableField = 'IMPORTE_DESCUENTO' + end + item + DatasetField = 'IVA' + TableField = 'IVA' + end + item + DatasetField = 'IMPORTE_IVA' + TableField = 'IMPORTE_IVA' + end + item + DatasetField = 'RE' + TableField = 'RE' + end + item + DatasetField = 'IMPORTE_RE' + TableField = 'IMPORTE_RE' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end + item + DatasetField = 'ID_PROVEEDOR' + TableField = 'ID_PROVEEDOR' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end + item + DatasetField = 'RECARGO_EQUIVALENCIA' + TableField = 'RECARGO_EQUIVALENCIA' + end + item + DatasetField = 'IMPORTE_NETO' + TableField = 'IMPORTE_NETO' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end + item + DatasetField = 'FORMA_PAGO' + TableField = 'FORMA_PAGO' + end + item + DatasetField = 'DATOS_BANCARIOS' + TableField = 'DATOS_BANCARIOS' + end> + end> + Name = 'InformeFacturasProveedor' + Fields = < + item + Name = 'ID' + DataType = datInteger + DictionaryEntry = 'FacturasCliente_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'FacturasCliente_ID_EMPRESA' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasCliente_REFERENCIA' + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + DictionaryEntry = 'FacturasCliente_FECHA_FACTURA' + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + DictionaryEntry = 'FacturasCliente_BASE_IMPONIBLE' + end + item + Name = 'SITUACION' + DataType = datString + Size = 19 + end + item + Name = 'DESCUENTO' + DataType = datFloat + DictionaryEntry = 'FacturasCliente_DESCUENTO' + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + DictionaryEntry = 'FacturasCliente_IMPORTE_DESCUENTO' + end + item + Name = 'IVA' + DataType = datFloat + DictionaryEntry = 'FacturasCliente_IVA' + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + DictionaryEntry = 'FacturasCliente_IMPORTE_IVA' + end + item + Name = 'RE' + DataType = datFloat + end + item + Name = 'IMPORTE_RE' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DictionaryEntry = 'FacturasCliente_IMPORTE_TOTAL' + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + DictionaryEntry = 'FacturasCliente_OBSERVACIONES' + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + DictionaryEntry = 'FacturasCliente_NIF_CIF' + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasCliente_NOMBRE' + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasCliente_CALLE' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasCliente_PROVINCIA' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasCliente_POBLACION' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DictionaryEntry = 'FacturasCliente_CODIGO_POSTAL' + end + item + Name = 'RECARGO_EQUIVALENCIA' + DataType = datSmallInt + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + end + item + Name = 'FORMA_PAGO' + DataType = datString + Size = 255 + end + item + Name = 'DATOS_BANCARIOS' + DataType = datString + Size = 255 + end> + ReadOnly = True + end + item + Params = < + item + Name = 'ID_FACTURA' + DataType = datInteger + Value = '2' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'SELECT'#10' DET.ID, DET.ID_FACTURA, DET.POSICION, DET.TIPO_DETALL' + + 'E, ARTICULOS.REFERENCIA,'#10' DET.CONCEPTO, DET.CANTIDAD, DET.UNI' + + 'DAD_MEDIDA, DET.IMPORTE_UNIDAD,'#10' DET.DESCUENTO, DET.IMPORTE_T' + + 'OTAL, DET.VISIBLE'#10'FROM FACTURAS_PROVEEDOR_DETALLES AS DET'#10'LEFT O' + + 'UTER JOIN ARTICULOS ON (ARTICULOS.ID = DET.ID_ARTICULO)'#10'WHERE DE' + + 'T.ID_FACTURA = :ID_FACTURA AND DET.VISIBLE = 1 AND {Where}'#10'ORDER' + + ' BY DET.ID_FACTURA, DET.POSICION;'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_FACTURA' + TableField = 'ID_FACTURA' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + end + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'UNIDAD_MEDIDA' + TableField = 'UNIDAD_MEDIDA' + end + item + DatasetField = 'IMPORTE_UNIDAD' + TableField = 'IMPORTE_UNIDAD' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'VISIBLE' + TableField = 'VISIBLE' + end> + end> + Name = 'InformeFacturasProveedor_Detalles' + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_FACTURA' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + end + item + Name = 'CANTIDAD' + DataType = datFloat + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + end + item + Name = 'DESCUENTO' + DataType = datFloat + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'VISIBLE' + DataType = datSmallInt + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_FACTURAS_PROVEEDOR' + SQL = + 'select ID_EMPRESA,'#10'extract (year from fecha_vencimiento) as ANO,' + + #10'extract (month from fecha_vencimiento) as MES,'#10'case'#10'when extrac' + + 't (month from fecha_vencimiento) = 1 then '#39'ENERO - '#39' || extract ' + + '(year from fecha_vencimiento)'#10'when extract (month from fecha_ven' + + 'cimiento) = 2 then '#39'FEBRERO - '#39' || extract (year from fecha_venc' + + 'imiento)'#10'when extract (month from fecha_vencimiento) = 3 then '#39'M' + + 'ARZO - '#39' || extract (year from fecha_vencimiento)'#10'when extract (' + + 'month from fecha_vencimiento) = 4 then '#39'ABRIL - '#39' || extract (ye' + + 'ar from fecha_vencimiento)'#10'when extract (month from fecha_vencim' + + 'iento) = 5 then '#39'MAYO - '#39' || extract (year from fecha_vencimient' + + 'o)'#10'when extract (month from fecha_vencimiento) = 6 then '#39'JUNIO -' + + ' '#39' || extract (year from fecha_vencimiento)'#10'when extract (month ' + + 'from fecha_vencimiento) = 7 then '#39'JULIO - '#39' || extract (year fro' + + 'm fecha_vencimiento)'#10'when extract (month from fecha_vencimiento)' + + ' = 8 then '#39'AGOSTO - '#39' || extract (year from fecha_vencimiento)'#10'w' + + 'hen extract (month from fecha_vencimiento) = 9 then '#39'SEPTIEMBRE ' + + '- '#39' || extract (year from fecha_vencimiento)'#10'when extract (month' + + ' from fecha_vencimiento) = 10 then '#39'OCTUBRE - '#39' || extract (year' + + ' from fecha_vencimiento)'#10'when extract (month from fecha_vencimie' + + 'nto) = 11 then '#39'NOVIEMBRE - '#39' || extract (year from fecha_vencim' + + 'iento)'#10'when extract (month from fecha_vencimiento) = 12 then '#39'DI' + + 'CIEMBRE - '#39' || extract (year from fecha_vencimiento)'#10'end as TITU' + + 'LO,'#10'REFERENCIA, ID_PROVEEDOR, NOMBRE, SITUACION, NIF_CIF, FECHA' + + '_FACTURA, FECHA_VENCIMIENTO, BASE_IMPONIBLE, IMPORTE_IVA, IMPORT' + + 'E_TOTAL,'#10'case'#10'when strlen(DATOS_BANCARIOS) = 0 then '#39'Sin cuenta ' + + 'bancaria'#39#10'else DATOS_BANCARIOS'#10'end as DATOS_BANCARIOS'#10#10#10'from V_f' + + 'acturas_proveedor'#10'where {where}'#10'order by ANO, MES, fecha_vencimi' + + 'ento, DATOS_BANCARIOS, NOMBRE'#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'ANO' + TableField = '' + SQLOrigin = 'ANO' + end + item + DatasetField = 'MES' + TableField = '' + SQLOrigin = 'MES' + end + item + DatasetField = 'TITULO' + TableField = '' + SQLOrigin = 'TITULO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID_PROVEEDOR' + TableField = 'ID_PROVEEDOR' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end + item + DatasetField = 'FECHA_FACTURA' + TableField = 'FECHA_FACTURA' + end + item + DatasetField = 'FECHA_VENCIMIENTO' + TableField = 'FECHA_VENCIMIENTO' + end + item + DatasetField = 'BASE_IMPONIBLE' + TableField = 'BASE_IMPONIBLE' + end + item + DatasetField = 'IMPORTE_IVA' + TableField = 'IMPORTE_IVA' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'DATOS_BANCARIOS' + TableField = 'DATOS_BANCARIOS' + end> + end> + Name = 'InformeListadoFacturasPendientes' + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 19 + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'DATOS_BANCARIOS' + DataType = datString + Size = 255 + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_FACTURAS_PROVEEDOR' + SQL = + 'select ID_EMPRESA,'#10'extract (year from fecha_factura) as ANO,'#10'ext' + + 'ract (month from fecha_factura) as MES,'#10'case'#10'when extract (month' + + ' from fecha_factura) = 1 then '#39'ENERO - '#39' || extract (year from f' + + 'echa_factura)'#10'when extract (month from fecha_factura) = 2 then '#39 + + 'FEBRERO - '#39' || extract (year from fecha_factura)'#10'when extract (m' + + 'onth from fecha_factura) = 3 then '#39'MARZO - '#39' || extract (year fr' + + 'om fecha_factura)'#10'when extract (month from fecha_factura) = 4 th' + + 'en '#39'ABRIL - '#39' || extract (year from fecha_factura)'#10'when extract ' + + '(month from fecha_factura) = 5 then '#39'MAYO - '#39' || extract (year f' + + 'rom fecha_factura)'#10'when extract (month from fecha_factura) = 6 t' + + 'hen '#39'JUNIO - '#39' || extract (year from fecha_factura)'#10'when extract' + + ' (month from fecha_factura) = 7 then '#39'JULIO - '#39' || extract (year' + + ' from fecha_factura)'#10'when extract (month from fecha_factura) = 8' + + ' then '#39'AGOSTO - '#39' || extract (year from fecha_factura)'#10'when extr' + + 'act (month from fecha_factura) = 9 then '#39'SEPTIEMBRE - '#39' || extra' + + 'ct (year from fecha_factura)'#10'when extract (month from fecha_fact' + + 'ura) = 10 then '#39'OCTUBRE - '#39' || extract (year from fecha_factura)' + + #10'when extract (month from fecha_factura) = 11 then '#39'NOVIEMBRE - ' + + #39' || extract (year from fecha_factura)'#10'when extract (month from ' + + 'fecha_factura) = 12 then '#39'DICIEMBRE - '#39' || extract (year from fe' + + 'cha_factura)'#10'end as TITULO,'#10'REFERENCIA, ID_PROVEEDOR, NOMBRE, S' + + 'ITUACION, NIF_CIF, FECHA_FACTURA, fecha_vencimiento, BASE_IMPONI' + + 'BLE, IMPORTE_IVA, IMPORTE_TOTAL'#10#10'from V_facturas_proveedor'#10'where' + + ' {where}'#10'order by ANO, MES, fecha_factura, NOMBRE'#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'ANO' + TableField = '' + SQLOrigin = 'ANO' + end + item + DatasetField = 'MES' + TableField = '' + SQLOrigin = 'MES' + end + item + DatasetField = 'TITULO' + TableField = '' + SQLOrigin = 'TITULO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID_PROVEEDOR' + TableField = 'ID_PROVEEDOR' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end + item + DatasetField = 'FECHA_FACTURA' + TableField = 'FECHA_FACTURA' + end + item + DatasetField = 'FECHA_VENCIMIENTO' + TableField = 'FECHA_VENCIMIENTO' + end + item + DatasetField = 'BASE_IMPONIBLE' + TableField = 'BASE_IMPONIBLE' + end + item + DatasetField = 'IMPORTE_IVA' + TableField = 'IMPORTE_IVA' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end> + end> + Name = 'InformeListadoFacturas' + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 19 + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + Default = True + SQL = + 'select ID_EMPRESA,'#10'extract (year from fecha_vencimiento) as ANO,' + + #10'extract (month from fecha_vencimiento) as MES,'#10'case'#10'when extrac' + + 't (month from fecha_vencimiento) = 1 then '#39'ENERO - '#39' || extract ' + + '(year from fecha_vencimiento)'#10'when extract (month from fecha_ven' + + 'cimiento) = 2 then '#39'FEBRERO - '#39' || extract (year from fecha_venc' + + 'imiento)'#10'when extract (month from fecha_vencimiento) = 3 then '#39'M' + + 'ARZO - '#39' || extract (year from fecha_vencimiento)'#10'when extract (' + + 'month from fecha_vencimiento) = 4 then '#39'ABRIL - '#39' || extract (ye' + + 'ar from fecha_vencimiento)'#10'when extract (month from fecha_vencim' + + 'iento) = 5 then '#39'MAYO - '#39' || extract (year from fecha_vencimient' + + 'o)'#10'when extract (month from fecha_vencimiento) = 6 then '#39'JUNIO -' + + ' '#39' || extract (year from fecha_vencimiento)'#10'when extract (month ' + + 'from fecha_vencimiento) = 7 then '#39'JULIO - '#39' || extract (year fro' + + 'm fecha_vencimiento)'#10'when extract (month from fecha_vencimiento)' + + ' = 8 then '#39'AGOSTO - '#39' || extract (year from fecha_vencimiento)'#10'w' + + 'hen extract (month from fecha_vencimiento) = 9 then '#39'SEPTIEMBRE ' + + '- '#39' || extract (year from fecha_vencimiento)'#10'when extract (month' + + ' from fecha_vencimiento) = 10 then '#39'OCTUBRE - '#39' || extract (year' + + ' from fecha_vencimiento)'#10'when extract (month from fecha_vencimie' + + 'nto) = 11 then '#39'NOVIEMBRE - '#39' || extract (year from fecha_vencim' + + 'iento)'#10'when extract (month from fecha_vencimiento) = 12 then '#39'DI' + + 'CIEMBRE - '#39' || extract (year from fecha_vencimiento)'#10'end as TITU' + + 'LO,'#10'case'#10'when strlen(DATOS_BANCARIOS) = 0 then '#39'Sin cuenta banca' + + 'ria'#39#10'else DATOS_BANCARIOS'#10'end as DATOS_BANCARIOS,'#10'sum(IMPORTE_TO' + + 'TAL) as importe_total'#10#10'from V_facturas_proveedor'#10#10'group by 1,2,3' + + ',4,5'#10'order by 1,2,3,4,5'#10#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'ANO' + TableField = 'ANO' + end + item + DatasetField = 'MES' + TableField = 'MES' + end + item + DatasetField = 'TITULO' + TableField = 'TITULO' + end + item + DatasetField = 'DATOS_BANCARIOS' + TableField = 'DATOS_BANCARIOS' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end> + end> + Name = 'InformeListadoFacturasPendientesResumen' + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'DATOS_BANCARIOS' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_FACTURAS_PROVEEDOR' + SQL = + 'select ID_EMPRESA,'#10'extract (year from fecha_factura) as ANO,'#10'ext' + + 'ract (month from fecha_factura) as MES,'#10'case'#10'when extract (month' + + ' from fecha_factura) = 1 then '#39'ENERO - '#39' || extract (year from f' + + 'echa_factura)'#10'when extract (month from fecha_factura) = 2 then '#39 + + 'FEBRERO - '#39' || extract (year from fecha_factura)'#10'when extract (m' + + 'onth from fecha_factura) = 3 then '#39'MARZO - '#39' || extract (year fr' + + 'om fecha_factura)'#10'when extract (month from fecha_factura) = 4 th' + + 'en '#39'ABRIL - '#39' || extract (year from fecha_factura)'#10'when extract ' + + '(month from fecha_factura) = 5 then '#39'MAYO - '#39' || extract (year f' + + 'rom fecha_factura)'#10'when extract (month from fecha_factura) = 6 t' + + 'hen '#39'JUNIO - '#39' || extract (year from fecha_factura)'#10'when extract' + + ' (month from fecha_factura) = 7 then '#39'JULIO - '#39' || extract (year' + + ' from fecha_factura)'#10'when extract (month from fecha_factura) = 8' + + ' then '#39'AGOSTO - '#39' || extract (year from fecha_factura)'#10'when extr' + + 'act (month from fecha_factura) = 9 then '#39'SEPTIEMBRE - '#39' || extra' + + 'ct (year from fecha_factura)'#10'when extract (month from fecha_fact' + + 'ura) = 10 then '#39'OCTUBRE - '#39' || extract (year from fecha_factura)' + + #10'when extract (month from fecha_factura) = 11 then '#39'NOVIEMBRE - ' + + #39' || extract (year from fecha_factura)'#10'when extract (month from ' + + 'fecha_factura) = 12 then '#39'DICIEMBRE - '#39' || extract (year from fe' + + 'cha_factura)'#10'end as TITULO,'#10'sum(BASE_IMPONIBLE) as BASE_IMPONIBL' + + 'E,'#10'sum(IMPORTE_IVA) as IMPORTE_IVA,'#10'sum(IMPORTE_TOTAL) AS IMPORT' + + 'E_TOTAL'#10'from V_facturas_proveedor'#10'group by 1,2,3,4'#10'order by 1,2,' + + '3,4'#10#10#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'ANO' + TableField = '' + SQLOrigin = 'ANO' + end + item + DatasetField = 'MES' + TableField = '' + SQLOrigin = 'MES' + end + item + DatasetField = 'TITULO' + TableField = '' + SQLOrigin = 'TITULO' + end + item + DatasetField = 'BASE_IMPONIBLE' + TableField = 'BASE_IMPONIBLE' + end + item + DatasetField = 'IMPORTE_IVA' + TableField = 'IMPORTE_IVA' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end> + end> + Name = 'InformeListadoFacturasResumen' + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 64 + Top = 16 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'FacturasCliente_ID' + DataType = datAutoInc + Required = True + DisplayLabel = 'ID' + end + item + Name = 'FacturasCliente_ID_EMPRESA' + DataType = datInteger + DisplayLabel = 'ID_EMPRESA' + end + item + Name = 'FacturasCliente_ID_CONTRATO' + DataType = datInteger + DisplayLabel = 'ID_CONTRATO' + end + item + Name = 'FacturasCliente_FECHA_FACTURA' + DataType = datDateTime + DisplayLabel = 'Fecha de las factura' + end + item + Name = 'FacturasCliente_VENCIMIENTO' + DataType = datInteger + DisplayLabel = 'Vencimiento' + end + item + Name = 'FacturasCliente_SITUACION' + DataType = datString + Size = 255 + DisplayLabel = 'Situaci'#243'n' + end + item + Name = 'FacturasCliente_BASE_IMPONIBLE' + DataType = datFloat + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_DESCUENTO' + DataType = datFloat + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_IVA' + DataType = datFloat + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_IMPORTE_TOTAL' + DataType = datFloat + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_FORMA_PAGO' + DataType = datMemo + DisplayLabel = 'Forma de pago' + end + item + Name = 'FacturasCliente_ID_CLIENTE' + DataType = datInteger + DisplayLabel = 'ID_CLIENTE' + end + item + Name = 'FacturasCliente_NIF_CIF' + DataType = datString + Size = 15 + DisplayLabel = 'NIF/CIF' + end + item + Name = 'FacturasCliente_CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#243'd. postal' + end + item + Name = 'FacturasCliente_FECHA_ALTA' + DataType = datDateTime + DisplayLabel = 'FECHA_ALTA' + end + item + Name = 'FacturasCliente_FECHA_MODIFICACION' + DataType = datDateTime + DisplayLabel = 'FECHA_MODIFICACION' + end + item + Name = 'FacturasCliente_OBSERVACIONES' + DataType = datMemo + DisplayLabel = 'Observaciones' + end + item + Name = 'FacturasCliente_NOMBRE' + DataType = datString + Size = 100 + DisplayLabel = 'Cliente' + end + item + Name = 'FacturasCliente_CALLE' + DataType = datString + Size = 150 + DisplayLabel = 'Direcci'#243'n' + end + item + Name = 'FacturasCliente_PROVINCIA' + DataType = datString + Size = 30 + DisplayLabel = 'Provincia' + end + item + Name = 'FacturasCliente_POBLACION' + DataType = datString + Size = 150 + DisplayLabel = 'Poblaci'#243'n' + end + item + Name = 'FacturasCliente_IVA' + DataType = datFloat + DisplayLabel = 'IVA' + end + item + Name = 'FacturasCliente_USUARIO' + DataType = datString + Size = 100 + DisplayLabel = 'USUARIO' + end + item + Name = 'FacturasCliente_REFERENCIA' + DataType = datString + Size = 20 + DisplayLabel = 'Referencia' + end + item + Name = 'FacturasCliente_DESCUENTO' + DataType = datFloat + DisplayLabel = 'Dto.' + end + item + Name = 'FacturasCliente_Detalles_ID' + DataType = datAutoInc + Required = True + DisplayLabel = 'ID' + end + item + Name = 'FacturasCliente_Detalles_ID_FACTURA' + DataType = datInteger + DisplayLabel = 'ID_FACTURA' + end + item + Name = 'FacturasCliente_Detalles_TIPO_DETALLE' + DataType = datString + Size = 25 + DisplayLabel = 'Tipo detalle' + end + item + Name = 'FacturasCliente_Detalles_CONCEPTO' + DataType = datString + Size = 2000 + DisplayLabel = 'Concepto' + end + item + Name = 'FacturasCliente_Detalles_IMPORTE_UNIDAD' + DataType = datFloat + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_Detalles_IMPORTE_TOTAL' + DataType = datFloat + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'FacturasCliente_Detalles_VISIBLE' + DataType = datInteger + DisplayLabel = #191'Visible?' + end + item + Name = 'FacturasCliente_Detalles_POSICION' + DataType = datInteger + DisplayLabel = 'Posici'#243'n' + end + item + Name = 'FacturasCliente_Detalles_CANTIDAD' + DataType = datInteger + DisplayLabel = 'Cantidad' + end> + Left = 62 + Top = 142 + end + object frxCheckBoxObject1: TfrxCheckBoxObject + Left = 296 + Top = 288 + end + object frxChartObject1: TfrxChartObject + Left = 296 + Top = 336 + end + object frxGradientObject1: TfrxGradientObject + Left = 360 + Top = 288 + end + object frxCrossObject1: TfrxCrossObject + Left = 360 + Top = 440 + end + object frxOLEObject1: TfrxOLEObject + Left = 296 + Top = 440 + end + object frxBarCodeObject1: TfrxBarCodeObject + Left = 360 + Top = 392 + end + object frxRichObject1: TfrxRichObject + Left = 296 + Top = 392 + end + object frxReport: TfrxReport + Version = '4.3' + DotMatrixReport = False + EngineOptions.DoublePass = True + IniFile = '\Software\Fast Reports' + PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator, pbExportQuick] + PreviewOptions.Zoom = 1.000000000000000000 + PrintOptions.Printer = 'Por defecto' + PrintOptions.PrintOnSheet = 0 + ReportOptions.CreateDate = 37800.807714351900000000 + ReportOptions.LastChange = 39836.719287280100000000 + ScriptLanguage = 'PascalScript' + ScriptText.Strings = ( + 'procedure mContinuaOnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if Engine.FinalPass then' + ' begin' + ' if ( = ) then' + ' begin ' + ' mContinua.Visible := False;' + ' end ' + ' else' + ' begin ' + ' mContinua.Visible := True;' + ' end ' + ' end; ' + 'end;' + '' + 'procedure Memo11OnBeforePrint(Sender: TfrxComponent);' + 'var' + + ' ACadena : String; ' + + ' ' + 'begin' + + ' ACadena := ; ' + ' if Pos('#39'N'#186' de cuenta: '#39', ACadena) > 0 then' + ' begin' + ' Delete(ACadena, 1, 14);' + + ' Memo11.Lines.Text := '#39' '#39' + ACadena; ' + + ' ' + ' end;' + 'end;' + '' + 'procedure Memo10OnBeforePrint(Sender: TfrxComponent);' + 'var' + + ' ACadena : String; ' + + ' ' + 'begin' + + ' ACadena := ; ' + ' if Pos('#39'N'#186' de cuenta: '#39', ACadena) > 0 then' + ' begin' + ' Delete(ACadena, 1, 14);' + + ' Memo10.Lines.Text := '#39' '#39' + ACadena; ' + + ' ' + ' end;' + 'end;' + '' + 'begin' + '' + 'end.') + ShowProgress = False + StoreInDFM = False + OnStartReport = 'frxReportOnStartReport' + Left = 153 + Top = 16 + end + object frxPDFExport1: TfrxPDFExport + ShowDialog = False + UseFileCache = True + ShowProgress = False + PrintOptimized = True + Outline = False + Author = 'FactuGES' + Subject = 'FactuGES' + Background = False + Creator = 'FactuGES' + HTMLTags = True + Left = 424 + Top = 288 + end + object tbl_InformeListadoFacturas: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 19 + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + Params = <> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = Bin2DataStreamer + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'InformeListadoFacturas' + IndexDefs = <> + Left = 576 + Top = 128 + end + object DADSInformeListadoFacturas: TDADataSource + DataSet = tbl_InformeListadoFacturas.Dataset + DataTable = tbl_InformeListadoFacturas + Left = 576 + Top = 72 + end + object frxDBInformeListadoFacturas: TfrxDBDataset + UserName = 'frxDBInformeListadoFacturas' + CloseDataSource = False + DataSource = DADSInformeListadoFacturas + Left = 576 + Top = 16 + end + object tbl_InformeListadoFacturasPendientes: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 19 + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'DATOS_BANCARIOS' + DataType = datString + Size = 255 + end> + Params = <> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = Bin2DataStreamer + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'InformeListadoFacturasPendientes' + IndexDefs = <> + Left = 768 + Top = 128 + end + object DADSInformeListadoFacturasPendientes: TDADataSource + DataSet = tbl_InformeListadoFacturasPendientes.Dataset + DataTable = tbl_InformeListadoFacturasPendientes + Left = 768 + Top = 72 + end + object frxDBInformeListadoFacturasPendientes: TfrxDBDataset + UserName = 'frxDBInformeListadoFacturasPendientes' + CloseDataSource = False + DataSource = DADSInformeListadoFacturasPendientes + Left = 768 + Top = 16 + end + object DADSInformeListadoFacturasPendResumen: TDADataSource + DataSet = tbl_InformeListadoFacturasPendResumen.Dataset + DataTable = tbl_InformeListadoFacturasPendResumen + Left = 768 + Top = 264 + end + object frxDBInformeListadoFacturasPendResumen: TfrxDBDataset + UserName = 'frxDBInformeListadoFacturasPendResumen' + CloseDataSource = False + DataSource = DADSInformeListadoFacturasPendResumen + Left = 768 + Top = 208 + end + object frxDBInformeListadoFacturasResumen: TfrxDBDataset + UserName = 'frxDBInformeListadoFacturasResumen' + CloseDataSource = False + DataSource = DADSInformeListadoFacturasResumen + Left = 576 + Top = 216 + end + object DADSInformeListadoFacturasResumen: TDADataSource + DataSet = tbl_InformeListadoFacturasResumen.Dataset + DataTable = tbl_InformeListadoFacturasResumen + Left = 576 + Top = 272 + end + object tbl_InformeListadoFacturasResumen: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + MasterMappingMode = mmDataRequest + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + IndexDefs = <> + Left = 576 + Top = 328 + end + object tbl_InformeListadoFacturasPendResumen: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + MasterMappingMode = mmDataRequest + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + IndexDefs = <> + Left = 768 + Top = 328 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 64 + Top = 88 + end + object DARemoteDataAdapter: TDARemoteDataAdapter + Left = 64 + Top = 200 + end +end diff --git a/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.pas b/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.pas new file mode 100644 index 0000000..ad6ffa6 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.pas @@ -0,0 +1,605 @@ +unit uRptFacturasProveedor_Server; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, frxClass, frxDBSet, uDAScriptingProvider, + uDADataTable, uDACDSDataTable, DB, uDAClasses, frxChart, frxGradient, + frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes, + uDAInterfaces, uDADataStreamer, IBCustomDataSet, IBQuery, IBDatabase, + uDAMemDataTable, FactuGES_Intf, frxExportPDF, uDABin2DataStreamer, + uDARemoteDataAdapter; + +type + TRptFacturasProveedor = class(TDataModule) + DataDictionary: TDADataDictionary; + frxCheckBoxObject1: TfrxCheckBoxObject; + frxChartObject1: TfrxChartObject; + frxGradientObject1: TfrxGradientObject; + frxCrossObject1: TfrxCrossObject; + frxOLEObject1: TfrxOLEObject; + frxBarCodeObject1: TfrxBarCodeObject; + frxRichObject1: TfrxRichObject; + frxReport: TfrxReport; + frxPDFExport1: TfrxPDFExport; + tbl_InformeListadoFacturas: TDAMemDataTable; + DADSInformeListadoFacturas: TDADataSource; + frxDBInformeListadoFacturas: TfrxDBDataset; + tbl_InformeListadoFacturasPendientes: TDAMemDataTable; + DADSInformeListadoFacturasPendientes: TDADataSource; + frxDBInformeListadoFacturasPendientes: TfrxDBDataset; + DADSInformeListadoFacturasPendResumen: TDADataSource; + frxDBInformeListadoFacturasPendResumen: TfrxDBDataset; + frxDBInformeListadoFacturasResumen: TfrxDBDataset; + DADSInformeListadoFacturasResumen: TDADataSource; + tbl_InformeListadoFacturasResumen: TDAMemDataTable; + tbl_InformeListadoFacturasPendResumen: TDAMemDataTable; + Bin2DataStreamer: TDABin2DataStreamer; + DARemoteDataAdapter: TDARemoteDataAdapter; + schReport: TDASchema; + procedure DataModuleCreate(Sender: TObject); + procedure DataModuleDestroy(Sender: TObject); + private + FConnection: IDAConnection; + FIdEmpresa: Integer; + FFechaInicio: Variant; + FFechaFin: Variant; + FFechaVenInicio: Variant; + FFechaVenFin: Variant; + FListaIDProveedores: TIntegerArray; + FListaNombresProveedores: TStringList; + FImporteMinimo: Currency; + FDesglosado : Boolean; + procedure RecuperarNombresProveedores; + procedure PrepararTablaInforme(ATabla: TDAMemDataTable); + procedure PrepararTablaResumenInforme(ATabla: IDADataset); + procedure IniciarParametrosInforme; + function _GenerarInforme(const TipoInforme: String): Binary; + public + function GenerarInformeIVA(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoFacturas(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoFacturasPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + end; + +implementation + +{$R *.dfm} + +uses + uSistemaFunc, StrUtils, uDataModuleServer, schFacturasProveedorClient_Intf, + uROServer, DataAbstract4_Intf; + +const + rptInformeIVA = 'InformeIVAProveedores.fr3'; + rptInformeIVADesglosado = 'InformeIVAProveedoresDesglosado.fr3'; + rptInformeListadoFacturasProveedor = 'InformeListadoFacturasProveedor.fr3'; + rptInformeListadoFacturasProveedorDesglosado = 'InformeListadoFacturasProveedorDesglosado.fr3'; + rptInformeListadoFactuasProveedorPendiente = 'InformeListadoFacturasProveedorPendientes.fr3'; + rptInformeListadoFactuasProveedorPendienteDesglosado = 'InformeListadoFacturasProveedorPendientesDesglosado.fr3'; + + { Dataset names for schReport } + ds_InformeListadoFacturasResumen = 'InformeListadoFacturasResumen'; + ds_InformeListadoFacturasPendientesResumen = 'InformeListadoFacturasPendientesResumen'; + +{ TRptFacturasProveedor } + + +procedure TRptFacturasProveedor.DataModuleCreate(Sender: TObject); +begin + schReport.ConnectionManager := dmServer.ConnectionManager; + FConnection := dmServer.DarNuevaConexion; + frxReport.EngineOptions.NewSilentMode := simReThrow; + + FListaNombresProveedores := TStringList.Create; +end; + +procedure TRptFacturasProveedor.DataModuleDestroy(Sender: TObject); +begin + FreeANDNIL(FListaNombresProveedores); +end; + +function TRptFacturasProveedor.GenerarInformeIVA(const IdEmpresa: Integer; + const FechaInicio, FechaFin: Variant; + const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; + const ImporteMinimo: Currency): Binary; +var + ATipoInforme: String; + AStream: TMemoryStream; + dsMaster: IDADataset; + +begin + FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + + AStream := TMemoryStream.Create; + try + //Inicializamos parametros + FIdEmpresa := IdEmpresa; + FFechaInicio := FechaInicio; + FFechaFin := FechaFin; + FFechaVenInicio := Null; + FFechaVenFin := Null; + FImporteMinimo := ImporteMinimo; + FDesglosado := Desglosado; + + if Assigned(FListaIDProveedores) then + FListaIDProveedores.Free; + + FListaIDProveedores := ListaIDProveedores; + + //Se van a prepara las tablas del informe + if tbl_InformeListadoFacturas.Active then + tbl_InformeListadoFacturas.Active := False; + + PrepararTablaInforme(tbl_InformeListadoFacturas); + + //Se prepara la tabla del listado resumen del informe + if tbl_InformeListadoFacturasResumen.Active then + tbl_InformeListadoFacturasResumen.Active := False; + + dsMaster := schReport.NewDataset(FConnection, ds_InformeListadoFacturasResumen, [], [], False); + PrepararTablaResumenInforme(dsMaster); + + //Esto se hace para rellenar la tabla del datamodule que usa el informe. + dsMaster.Open; + AStream.Clear; + Bin2DataStreamer.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1); + Bin2DataStreamer.ReadDataset(AStream, tbl_InformeListadoFacturasResumen, TRUE, '', TRUE, TRUE); + + //DESGLOSADO POR PROVEEDOR EN ESTE INFORME NO SE DESGLOSAR POR PROVEEDOR + if FDesglosado then + ATipoInforme := rptInformeIVADesglosado + else + ATipoInforme := rptInformeIVA; + + //Finalmente se abren las tablas del informe + tbl_InformeListadoFacturas.Active := True; + tbl_InformeListadoFacturasResumen.Active := True; + + Result := _GenerarInforme(ATipoInforme); + + finally + AStream.Free; + dsMaster := Nil; + FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + end; +end; + +function TRptFacturasProveedor.GenerarInformeListadoFacturas( + const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; + const FechaVenInicio, FechaVenFin: Variant; + const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; + const ImporteMinimo: Currency): Binary; +var + ATipoInforme: String; + AStream: TMemoryStream; + dsMaster: IDADataset; + +begin + FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + + AStream := TMemoryStream.Create; + try + //Inicializamos parametros + FIdEmpresa := IdEmpresa; + FFechaInicio := FechaInicio; + FFechaFin := FechaFin; + FFechaVenInicio := FechaVenInicio; + FFechaVenFin := FechaVenFin; + FImporteMinimo := ImporteMinimo; + FDesglosado := Desglosado; + + if Assigned(FListaIDProveedores) then + FListaIDProveedores.Free; + FListaIDProveedores := ListaIDProveedores; + + //Se prepara la tabla del listado general del informe + if tbl_InformeListadoFacturas.Active then + tbl_InformeListadoFacturas.Active := False; + + PrepararTablaInforme(tbl_InformeListadoFacturas); + + //Se prepara la tabla del listado resumen del informe + if tbl_InformeListadoFacturasResumen.Active then + tbl_InformeListadoFacturasResumen.Active := False; + dsMaster := schReport.NewDataset(FConnection, ds_InformeListadoFacturasResumen, [], [], False); + + PrepararTablaResumenInforme(dsMaster); + + //Esto se hace para rellenar la tabla del datamodule que usa el informe. + dsMaster.Open; + AStream.Clear; + Bin2DataStreamer.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1); + Bin2DataStreamer.ReadDataset(AStream, tbl_InformeListadoFacturasResumen, TRUE, '', TRUE, TRUE); + + //DESGLOSADO POR PROVEEDOR EN ESTE INFORME NO SE DESGLOSAR POR PROVEEDOR + if FDesglosado then + ATipoInforme := rptInformeListadoFacturasProveedorDesglosado + else + ATipoInforme := rptInformeListadoFacturasProveedor; + + //Finalmente se abren las tablas del informe + tbl_InformeListadoFacturas.Active := True; + tbl_InformeListadoFacturasResumen.Active := True; + + Result := _GenerarInforme(ATipoInforme); + + finally + AStream.Free; + dsMaster := Nil; + FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + end; +end; + +function TRptFacturasProveedor.GenerarInformeListadoFacturasPendientes( + const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; + const FechaVenInicio, FechaVenFin: Variant; + const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; + const ImporteMinimo: Currency): Binary; +var + Condicion: TDAWhereExpression; + ATipoInforme: String; + AStream: TMemoryStream; + dsMaster: IDADataset; + +begin + FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + + AStream := TMemoryStream.Create; + try + //Inicializamos parametros + FIdEmpresa := IdEmpresa; + FFechaInicio := FechaInicio; + FFechaFin := FechaFin; + FFechaVenInicio := FechaVenInicio; + FFechaVenFin := FechaVenFin; + FImporteMinimo := ImporteMinimo; + FDesglosado := Desglosado; + + if Assigned(FListaIDProveedores) then + FListaIDProveedores.Free; + FListaIDProveedores := ListaIDProveedores; + + + //Se prepara la tabla del listado general del informe + if tbl_InformeListadoFacturasPendientes.Active then + tbl_InformeListadoFacturasPendientes.Active := False; + + PrepararTablaInforme(tbl_InformeListadoFacturasPendientes); + + // Filtrar el informe por situacion + with tbl_InformeListadoFacturasPendientes.DynamicWhere do + begin + // (SITUACION >= PAGADA) + Condicion := NewBinaryExpression(NewField('', fld_FacturasProveedorSITUACION), NewConstant('PAGADA', datString), dboNotEqual); + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + //Se prepara la tabla del listado resumen del informe + if tbl_InformeListadoFacturasPendResumen.Active then + tbl_InformeListadoFacturasPendResumen.Active := False; + + dsMaster := schReport.NewDataset(FConnection, ds_InformeListadoFacturasPendientesResumen, [], [], False); + PrepararTablaResumenInforme(dsMaster); + + // Filtrar el informe por situacion + dsMaster.Where.AddText(' AND (SITUACION <> ''PAGADA'')'); + + //Esto se hace para rellenar la tabla del datamodule que usa el informe. + dsMaster.Open; + AStream.Clear; + Bin2DataStreamer.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1); + Bin2DataStreamer.ReadDataset(AStream, tbl_InformeListadoFacturasPendResumen, TRUE, '', TRUE, TRUE); + + //DESGLOSADO POR PROVEEDOR EN ESTE INFORME + if FDesglosado then + ATipoInforme := rptInformeListadoFactuasProveedorPendienteDesglosado + else + ATipoInforme := rptInformeListadoFactuasProveedorPendiente; + + //Finalmente se abren las tablas del informe + tbl_InformeListadoFacturasPendientes.Active := True; + tbl_InformeListadoFacturasPendResumen.Active := True; + + Result := _GenerarInforme(ATipoInforme); + + finally + AStream.Free; + dsMaster := Nil; + FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + end; +end; + +procedure TRptFacturasProveedor.IniciarParametrosInforme; +var + ATextos : TStringList; + ACadena : String; +begin + ATextos := TStringList.Create; + + try + if (not VarIsNull(FFechaInicio)) and (not VarIsNull(FFechaFin)) then + ACadena := Format('Fechas de factura desde el %s hasta el %s', [VarToStr(FFechaInicio), VarToStr(FFechaFin)]) + else + ACadena := 'Sin rango de fechas'; + ATextos.Add(ACadena); + ACadena := ''; + + // Filtrar el informe por fechas de vencimiento + if (not VarIsNull(FFechaVenInicio)) and (not VarIsNull(FFechaVenFin)) then + begin + ACadena := Format('Vencimientos desde el %s hasta el %s', [VarToStr(FFechaVenInicio), VarToStr(FFechaVenFin)]); + ATextos.Add(ACadena); + ACadena := ''; + end; + + if (FImporteMinimo > 0) then + begin + ACadena := Format('Facturas con importe superior a %m', [FImporteMinimo]); + ATextos.Add(ACadena); + ACadena := ''; + end; + + if Assigned(FListaIDProveedores) and (FListaIDProveedores.Count > 0) then + begin + RecuperarNombresProveedores; + ACadena := FListaNombresProveedores.Text; + end + else begin + ACadena := 'Todos los proveedores'; + if FDesglosado then + ACadena := ACadena + ' (desglosados)' + end; + + ATextos.Add(ACadena); + ACadena := ''; + + frxReport.Variables.Variables['TextoParametros'] := ATextos.Text; + finally + FreeAndNil(ATextos); + end; +end; + +procedure TRptFacturasProveedor.PrepararTablaInforme(ATabla: TDAMemDataTable); +var + Condicion: TDAWhereExpression; + i: Integer; + +begin + // Filtrar el informe por empresa + with ATabla.DynamicWhere do + begin + // (ID_EMPRESA >= ID) + Condicion := NewBinaryExpression(NewField('', fld_FacturasProveedorID_EMPRESA), NewConstant(FIdEmpresa, datInteger), dboEqual); + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + // Filtrar el informe por fechas + if not VarIsNull(FFechaInicio) and + not VarIsNull(FFechaFin) then + begin + with ATabla.DynamicWhere do + begin + // (FECHA_INICIO between FECHA_FIN) + Condicion := NewBinaryExpression(NewField('', fld_FacturasProveedorFECHA_FACTURA), NewConstant(FFechaInicio, datDateTime), dboGreaterOrEqual); + Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_FacturasProveedorFECHA_FACTURA), NewConstant(FFechaFin, datDateTime), dboLessOrEqual), Condicion, dboAnd); + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + end; + + // Filtrar el informe por fechas de vencimiento + if not VarIsNull(FFechaVenInicio) + and not VarIsNull(FFechaVenFin) then + begin + with ATabla.DynamicWhere do + begin + // (FECHA_VENCIMIENTO_INICIO between FECHA_VENCIMIENTO_FIN) + Condicion := NewBinaryExpression(NewField('', fld_FacturasProveedorFECHA_VENCIMIENTO), NewConstant(FFechaVenInicio, datDateTime), dboGreaterOrEqual); + Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_FacturasProveedorFECHA_VENCIMIENTO), NewConstant(FFechaVenFin, datDateTime), dboLessOrEqual), Condicion, dboAnd); + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + end; + + // Filtrar el informe por proveedor + if Assigned(FListaIDProveedores) then + begin + with ATabla.DynamicWhere do + begin + for i := 0 to FListaIDProveedores.Count - 1 do + begin + + // (ID_PROVEEDOR = ID) + Condicion := NewBinaryExpression(NewField('', fld_FacturasProveedorID_PROVEEDOR), NewConstant(FListaIDProveedores.Items[i], datInteger), dboEqual); + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + end; + end; + + // Filtrar el informe por importe minimo + if (FImporteMinimo > 0) then + begin + with ATabla.DynamicWhere do + begin + // (IMPORTE_TOTAL > ImporteMinimo) + Condicion := NewBinaryExpression(NewField('', fld_FacturasProveedorIMPORTE_TOTAL), NewConstant(FImporteMinimo, datCurrency), dboGreaterOrEqual); + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + end; +end; + +procedure TRptFacturasProveedor.PrepararTablaResumenInforme(ATabla: IDADataset); +var + i: Integer; + AWhereStr : String; + +begin + // Filtrar el informe por empresa + AWhereStr := ' (' + fld_FacturasProveedorID_EMPRESA + ' = ' + IntToStr(FIdEmpresa) + ') '; + + // Filtrar el informe por fechas + if not VarIsNull(FFechaInicio) + and not VarIsNull(FFechaFin) then + begin + if Length(AWhereStr) > 0 then + AWhereStr := AWhereStr + 'AND'; + AWhereStr := AWhereStr + ' (' + fld_FacturasProveedorFECHA_FACTURA + ' between ''' + ReplaceStr(VarToStr(FFechaInicio),'/','.') + ''' and ''' + ReplaceStr(VarToStr(FFechaFin),'/','.') + ''') '; + end; + + // Filtrar el informe por fechas de vencimiento + if not VarIsNull(FFechaVenInicio) + and not VarIsNull(FFechaVenFin) then + begin + if Length(AWhereStr) > 0 then + AWhereStr := AWhereStr + 'AND'; + AWhereStr := AWhereStr + ' (' + fld_FacturasProveedorFECHA_VENCIMIENTO + ' between ''' + ReplaceStr(VarToStr(FFechaVenInicio),'/','.') + ''' and ''' + ReplaceStr(VarToStr(FFechaVenFin),'/','.') + ''') '; + end; + + // Filtrar el informe por proveedor + if Assigned(FListaIDProveedores) then + begin + for i := 0 to FListaIDProveedores.Count - 1 do + begin + if Length(AWhereStr) > 0 then + AWhereStr := AWhereStr + 'AND'; + AWhereStr := AWhereStr + ' (' + fld_FacturasProveedorID_PROVEEDOR + ' = ' + IntToStr(FListaIDProveedores.Items[i]) + ') '; + end; + end; + + // Filtrar el informe por importe minimo + if (FImporteMinimo > 0) then + begin + if Length(AWhereStr) > 0 then + AWhereStr := AWhereStr + 'AND'; + AWhereStr := AWhereStr + ' (' + fld_FacturasProveedorIMPORTE_TOTAL + ' >= ' + CurrToStr(FImporteMinimo) + ') '; + end; + + ATabla.Where.AddText(AWhereStr); +end; + +procedure TRptFacturasProveedor.RecuperarNombresProveedores; +var + AContactosService : IsrvContactos; + Intf : IInterface; + AClientID : TGUID; + + ATableNameArray: StringArray; + ATableRequestInfoArray: TableRequestInfoArray; + ATableRequestInfo: TableRequestInfoV5; + AStream: TMemoryStream; + ADataTable: TDAMemDataTable; + i: Integer; + AWhereBuilder : TDAWhereBuilder; + ACondicion : TDAWhereExpression; +begin + CreateGUID(AClientID); + + GetClassFactory('srvContactos').CreateInstance(AClientID, Intf); + + if Assigned(Intf) then + begin + AContactosService := Intf as IsrvContactos; + + ATableNameArray := StringArray.Create; + ATableRequestInfoArray := TableRequestInfoArray.Create; + AWhereBuilder := TDAWhereBuilder.Create; + try + ATableNameArray.Add('Proveedores'); + ATableRequestInfo := TableRequestInfoV5.Create; + + with ATableRequestInfo do + begin + IncludeSchema := True; + MaxRecords := -1; + UserFilter := ''; + + AWhereBuilder.Clear; + with AWhereBuilder do + for i := 0 to FListaIDProveedores.Count - 1 do + begin + ACondicion := NewBinaryExpression( + NewBinaryExpression(NewField('', 'ID'), NewConstant(FListaIDProveedores[i], datInteger), dboEqual), + NewBinaryExpression(NewField('', 'ID_EMPRESA'), NewConstant(FIdEmpresa, datInteger), dboEqual), + dboAnd); + + if not AWhereBuilder.IsEmpty then + Expression := NewBinaryExpression(Expression, ACondicion, dboOr) + else + Expression := ACondicion; + end; + + WhereClause := AWhereBuilder.ExpressionToXmlNode(AWhereBuilder.Expression); + end; + + try + ATableRequestInfoArray.Add(ATableRequestInfo); + AStream := AContactosService.GetData(ATableNameArray, ATableRequestInfoArray); + if Assigned(AStream) then + begin + ADataTable := TDAMemDataTable.Create(nil); + try + ADataTable.Name := 'Proveedores'; + ADataTable.LocalDataStreamer := Bin2DataStreamer; + ADataTable.RemoteFetchEnabled := False; + Bin2DataStreamer.ReadDataset(AStream, ADataTable, True); + + ADataTable.Open; + FListaNombresProveedores.Clear; + for i := 0 to ADataTable.RecordCount - 1 do + begin + FListaNombresProveedores.Add(ADataTable.FieldByName('NOMBRE').AsString); + ADataTable.Next; + end; + + finally + FreeANDNil(ADataTable); + end; + end; + except + on e: Exception do + dmServer.EscribirLog(e.Message); + end; + finally + FreeANDNIL(ATableRequestInfoArray); + FreeANDNIL(ATableNameArray); + FreeANDNIL(AWhereBuilder); + end; + end; +end; + + +function TRptFacturasProveedor._GenerarInforme(const TipoInforme: String): Binary; +var + AInforme: Variant; +begin + Result := Binary.Create; + + AInforme := DarRutaFichero(DarRutaInformes, TipoInforme, IntTostr(FIdEmpresa)); + if VarIsNull(AInforme) then + raise Exception.Create (('Error Servidor: _GenerarInforme, no encuentra informe ' + TipoInforme)); + + frxReport.LoadFromFile(AInforme, True); + IniciarParametrosInforme; + + frxReport.PrepareReport(False); + frxReport.PreviewPages.SaveToStream(Result); +end; + +end. diff --git a/Source/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.dcu b/Source/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.dcu new file mode 100644 index 0000000..af7697f Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.dfm b/Source/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.dfm new file mode 100644 index 0000000..a6dd319 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.dfm @@ -0,0 +1,1710 @@ +object srvFacturasProveedor: TsrvFacturasProveedor + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + ConnectionName = 'IBX' + ServiceSchema = schFacturasProveedor + ServiceDataStreamer = Bin2DataStreamer + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + Height = 216 + Width = 386 + object schFacturasProveedor: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Diagrams = Diagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + Name = 'IBX' + SQL = + 'select ANO from'#10'(select distinct(substr(FECHA_FACTURA, 1,4)) as ' + + 'ANO'#10'from facturas_proveedor'#10'order by 1 desc)'#10#10'UNION ALL'#10#10'select ' + + 'distinct '#39'Todos'#39' as ANO'#10'from empresas'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ANO' + TableField = 'ANO' + end> + end> + Name = 'ListaAnosFacturas' + Fields = < + item + Name = 'ANO' + DataType = datString + Size = 254 + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_FACTURAS_PROVEEDOR' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'TIPO' + TableField = 'TIPO' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = 'REFERENCIA_PROVEEDOR' + end + item + DatasetField = 'FECHA_FACTURA' + TableField = 'FECHA_FACTURA' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'BASE_IMPONIBLE' + TableField = 'BASE_IMPONIBLE' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IMPORTE_DESCUENTO' + TableField = 'IMPORTE_DESCUENTO' + end + item + DatasetField = 'IVA' + TableField = 'IVA' + end + item + DatasetField = 'IMPORTE_IVA' + TableField = 'IMPORTE_IVA' + end + item + DatasetField = 'RE' + TableField = 'RE' + end + item + DatasetField = 'IMPORTE_RE' + TableField = 'IMPORTE_RE' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'ID_PROVEEDOR' + TableField = 'ID_PROVEEDOR' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end + item + DatasetField = 'ID_FORMA_PAGO' + TableField = 'ID_FORMA_PAGO' + end + item + DatasetField = 'RECARGO_EQUIVALENCIA' + TableField = 'RECARGO_EQUIVALENCIA' + end + item + DatasetField = 'ID_TIPO_IVA' + TableField = 'ID_TIPO_IVA' + end + item + DatasetField = 'IMPORTE_NETO' + TableField = 'IMPORTE_NETO' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end + item + DatasetField = 'DATOS_BANCARIOS' + TableField = 'DATOS_BANCARIOS' + end + item + DatasetField = 'FECHA_VENCIMIENTO' + TableField = 'FECHA_VENCIMIENTO' + end> + end> + Name = 'FacturasProveedor' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_FACTURAS_PROVEEDOR_ID' + ServerAutoRefresh = True + DictionaryEntry = 'FacturasProveedor_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'FacturasProveedor_ID_EMPRESA' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 20 + DictionaryEntry = 'FacturasProveedor_REFERENCIA' + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + DictionaryEntry = 'FacturasProveedor_TIPO' + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasProveedor_REFERENCIA_PROVEEDOR' + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + DictionaryEntry = 'FacturasProveedor_FECHA_FACTURA' + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + DisplayLabel = 'Fecha vto.' + end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasProveedor_SITUACION' + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + DictionaryEntry = 'FacturasProveedor_BASE_IMPONIBLE' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DictionaryEntry = 'FacturasProveedor_DESCUENTO' + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + DictionaryEntry = 'FacturasProveedor_IMPORTE_DESCUENTO' + end + item + Name = 'IVA' + DataType = datFloat + DictionaryEntry = 'FacturasProveedor_IVA' + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + DictionaryEntry = 'FacturasProveedor_IMPORTE_IVA' + end + item + Name = 'RE' + DataType = datFloat + DictionaryEntry = 'FacturasProveedor_RE' + end + item + Name = 'IMPORTE_RE' + DataType = datCurrency + DictionaryEntry = 'FacturasProveedor_IMPORTE_RE' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DictionaryEntry = 'FacturasProveedor_IMPORTE_TOTAL' + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + DictionaryEntry = 'FacturasProveedor_OBSERVACIONES' + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + DictionaryEntry = 'FacturasProveedor_ID_PROVEEDOR' + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + DictionaryEntry = 'FacturasProveedor_NIF_CIF' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 100 + DictionaryEntry = 'FacturasProveedor_NOMBRE' + end + item + Name = 'CALLE' + DataType = datString + Size = 150 + DictionaryEntry = 'FacturasProveedor_CALLE' + end + item + Name = 'POBLACION' + DataType = datString + Size = 150 + DictionaryEntry = 'FacturasProveedor_POBLACION' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 30 + DictionaryEntry = 'FacturasProveedor_PROVINCIA' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DictionaryEntry = 'FacturasProveedor_CODIGO_POSTAL' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'FacturasProveedor_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'FacturasProveedor_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 100 + DictionaryEntry = 'FacturasProveedor_USUARIO' + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + DictionaryEntry = 'FacturasProveedor_ID_FORMA_PAGO' + end + item + Name = 'RECARGO_EQUIVALENCIA' + DataType = datSmallInt + DictionaryEntry = 'FacturasProveedor_RECARGO_EQUIVALENCIA' + end + item + Name = 'ID_TIPO_IVA' + DataType = datInteger + DictionaryEntry = 'FacturasProveedor_ID_TIPO_IVA' + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + DictionaryEntry = 'FacturasProveedor_IMPORTE_NETO' + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + DictionaryEntry = 'FacturasProveedor_IMPORTE_PORTE' + end + item + Name = 'DATOS_BANCARIOS' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasProveedor_DATOS_BANCARIOS' + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'FACTURAS_PROVEEDOR_DETALLES' + SQL = + 'SELECT'#10' FACTURAS_PROVEEDOR_DETALLES.ID, FACTURAS_PROVEEDOR_DE' + + 'TALLES.ID_FACTURA,'#10' FACTURAS_PROVEEDOR_DETALLES.POSICION, FAC' + + 'TURAS_PROVEEDOR_DETALLES.TIPO_DETALLE,'#10' FACTURAS_PROVEEDOR_DE' + + 'TALLES.CONCEPTO, FACTURAS_PROVEEDOR_DETALLES.CANTIDAD,'#10' FACTU' + + 'RAS_PROVEEDOR_DETALLES.UNIDAD_MEDIDA, FACTURAS_PROVEEDOR_DETALLE' + + 'S.IMPORTE_UNIDAD,'#10' FACTURAS_PROVEEDOR_DETALLES.IMPORTE_TOTAL,' + + ' FACTURAS_PROVEEDOR_DETALLES.VISIBLE,'#10#10' FACTURAS_PROVEEDOR_DE' + + 'TALLES.ID_ARTICULO, FACTURAS_PROVEEDOR_DETALLES.DESCUENTO,'#10' F' + + 'ACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE,'#10' ARTICULOS.REFERENC' + + 'IA, ARTICULOS_PROVEEDORES.REFERENCIA_PROV as REFERENCIA_PROVEEDO' + + 'R,'#10' ARTICULOS.REFERENCIA_FABR as REFERENCIA_FABRICANTE'#10#10'FROM ' + + 'FACTURAS_PROVEEDOR_DETALLES'#10'LEFT JOIN ARTICULOS ON FACTURAS_PROV' + + 'EEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID'#10'LEFT JOIN FACTURAS_PRO' + + 'VEEDOR ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.I' + + 'D_FACTURA)'#10'LEFT JOIN ARTICULOS_PROVEEDORES ON ((ARTICULOS_PROVEE' + + 'DORES.ID_ARTICULO = ARTICULOS.ID) AND (ARTICULOS_PROVEEDORES.ID_' + + 'PROVEEDOR = FACTURAS_PROVEEDOR.ID_PROVEEDOR))'#10#10'WHERE {where}'#10'ORD' + + 'ER BY POSICION;'#10#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_FACTURA' + TableField = 'ID_FACTURA' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + end + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'IMPORTE_UNIDAD' + TableField = 'IMPORTE_UNIDAD' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'VISIBLE' + TableField = 'VISIBLE' + end + item + DatasetField = 'ID_ARTICULO' + TableField = 'ID_ARTICULO' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end + item + DatasetField = 'REFERENCIA' + TableField = '' + SQLOrigin = 'REFERENCIA' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = '' + SQLOrigin = 'REFERENCIA_PROVEEDOR' + end + item + DatasetField = 'REFERENCIA_FABRICANTE' + TableField = '' + SQLOrigin = 'REFERENCIA_FABRICANTE' + end + item + DatasetField = 'UNIDAD_MEDIDA' + TableField = '' + SQLOrigin = 'UNIDAD_MEDIDA' + end> + end> + Name = 'FacturasProveedor_Detalles' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_FACTURA_PROV_DETALLES_ID' + ServerAutoRefresh = True + DictionaryEntry = 'FacturasProveedor_Detalles_ID' + InPrimaryKey = True + end + item + Name = 'ID_FACTURA' + DataType = datInteger + DictionaryEntry = 'FacturasProveedor_Detalles_ID_FACTURA' + end + item + Name = 'POSICION' + DataType = datInteger + DictionaryEntry = 'FacturasProveedor_Detalles_POSICION' + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + DictionaryEntry = 'FacturasProveedor_Detalles_TIPO_DETALLE' + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + DictionaryEntry = 'FacturasProveedor_Detalles_CONCEPTO' + end + item + Name = 'CANTIDAD' + DataType = datFloat + DictionaryEntry = 'FacturasProveedor_Detalles_CANTIDAD' + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + DictionaryEntry = 'FacturasProveedor_Detalles_IMPORTE_UNIDAD' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DictionaryEntry = 'FacturasProveedor_Detalles_IMPORTE_TOTAL' + end + item + Name = 'VISIBLE' + DataType = datSmallInt + DictionaryEntry = 'FacturasProveedor_Detalles_VISIBLE' + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + DictionaryEntry = 'FacturasProveedor_Detalles_ID_ARTICULO' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DictionaryEntry = 'FacturasProveedor_Detalles_DESCUENTO' + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + DictionaryEntry = 'FacturasProveedor_Detalles_IMPORTE_PORTE' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasProveedor_Detalles_REFERENCIA' + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasProveedor_Detalles_REFERENCIA_PROVEEDOR' + end + item + Name = 'REFERENCIA_FABRICANTE' + DataType = datString + Size = 255 + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'FACTURAS_PROVEEDOR_PEDIDOS' + SQL = + 'SELECT'#10' FACTURAS_PROVEEDOR_PEDIDOS.ID, FACTURAS_PROVEEDOR_PED' + + 'IDOS.ID_FACTURA,'#10' FACTURAS_PROVEEDOR_PEDIDOS.IMPORTE_TOTAL,'#10#10 + + ' FACTURAS_PROVEEDOR_PEDIDOS.ID_PEDIDO,'#10#10' V_PEDIDOS_PROVEED' + + 'OR.REFERENCIA, V_PEDIDOS_PROVEEDOR.FECHA_PEDIDO, V_PEDIDOS_PROVE' + + 'EDOR.NOMBRE as PROVEEDOR'#10'FROM FACTURAS_PROVEEDOR_PEDIDOS'#10'LEFT JO' + + 'IN V_PEDIDOS_PROVEEDOR ON FACTURAS_PROVEEDOR_PEDIDOS.ID_PEDIDO =' + + ' V_PEDIDOS_PROVEEDOR.ID'#10'WHERE {where}'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_FACTURA' + TableField = 'ID_FACTURA' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'ID_PEDIDO' + TableField = '' + SQLOrigin = 'ID_PEDIDO' + end + item + DatasetField = 'REFERENCIA' + TableField = '' + SQLOrigin = 'REFERENCIA' + end + item + DatasetField = 'FECHA_PEDIDO' + TableField = '' + SQLOrigin = 'FECHA_PEDIDO' + end + item + DatasetField = 'PROVEEDOR' + TableField = '' + SQLOrigin = 'PROVEEDOR' + end> + end> + Name = 'FacturasProveedor_Pedidos' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_PEDIDOS_PROV_PEDIDOS_ID' + DictionaryEntry = 'FacturasProveedor_Pedidos_ID' + InPrimaryKey = True + end + item + Name = 'ID_FACTURA' + DataType = datInteger + DictionaryEntry = 'FacturasProveedor_Pedidos_ID_FACTURA' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DictionaryEntry = 'FacturasProveedor_Pedidos_IMPORTE_TOTAL' + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + DictionaryEntry = 'FacturasProveedor_Pedidos_ID_PEDIDO' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasProveedor_Pedidos_REFERENCIA' + end + item + Name = 'FECHA_PEDIDO' + DataType = datDateTime + DictionaryEntry = 'FacturasProveedor_Pedidos_FECHA_PEDIDO' + end + item + Name = 'PROVEEDOR' + DataType = datString + Size = 255 + DictionaryEntry = 'FacturasProveedor_Pedidos_PROVEEDOR' + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'ID_FACTURA' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + Name = 'IBX' + SQL = 'delete from recibos_proveedor'#10'where id_factura = :ID_FACTURA'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_RecibosFactura' + end + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_FACTURAS_PROVEEDOR_ID' + Value = '' + end + item + Name = 'ID_EMPRESA' + Value = '' + end + item + Name = 'REFERENCIA' + Value = '' + end + item + Name = 'REFERENCIA_PROVEEDOR' + Value = '' + end + item + Name = 'FECHA_FACTURA' + Value = '' + end + item + Name = 'BASE_IMPONIBLE' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'IMPORTE_DESCUENTO' + Value = '' + end + item + Name = 'IVA' + Value = '' + end + item + Name = 'IMPORTE_IVA' + Value = '' + end + item + Name = 'RE' + Value = '' + end + item + Name = 'IMPORTE_RE' + Value = '' + end + item + Name = 'IMPORTE_TOTAL' + Value = '' + end + item + Name = 'OBSERVACIONES' + Value = '' + end + item + Name = 'ID_PROVEEDOR' + Value = '' + end + item + Name = 'NIF_CIF' + Value = '' + end + item + Name = 'NOMBRE' + Value = '' + end + item + Name = 'CALLE' + Value = '' + end + item + Name = 'POBLACION' + Value = '' + end + item + Name = 'PROVINCIA' + Value = '' + end + item + Name = 'CODIGO_POSTAL' + Value = '' + end + item + Name = 'FECHA_ALTA' + Value = '' + end + item + Name = 'FECHA_MODIFICACION' + Value = '' + end + item + Name = 'USUARIO' + Value = '' + end + item + Name = 'ID_FORMA_PAGO' + Value = '' + end + item + Name = 'RECARGO_EQUIVALENCIA' + Value = '' + end + item + Name = 'ID_TIPO_IVA' + Value = '' + end + item + Name = 'IMPORTE_NETO' + Value = '' + end + item + Name = 'IMPORTE_PORTE' + Value = '' + end + item + Name = 'DATOS_BANCARIOS' + Value = '' + end + item + Name = 'FECHA_VENCIMIENTO' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'FACTURAS_PROVEEDOR' + SQL = + 'INSERT'#10' INTO FACTURAS_PROVEEDOR'#10' (ID, ID_EMPRESA, REFERENCIA' + + ', REFERENCIA_PROVEEDOR,'#10' FECHA_FACTURA, BASE_IMPONIBLE, DESC' + + 'UENTO,'#10' IMPORTE_DESCUENTO, IVA, IMPORTE_IVA, RE, IMPORTE_RE,' + + ' '#10' IMPORTE_TOTAL, OBSERVACIONES, ID_PROVEEDOR, NIF_CIF, '#10' ' + + ' NOMBRE, CALLE, POBLACION, PROVINCIA, CODIGO_POSTAL, '#10' FECH' + + 'A_ALTA, FECHA_MODIFICACION, USUARIO, ID_FORMA_PAGO, '#10' RECARG' + + 'O_EQUIVALENCIA, ID_TIPO_IVA, IMPORTE_NETO, IMPORTE_PORTE,'#10' D' + + 'ATOS_BANCARIOS, FECHA_VENCIMIENTO)'#10' VALUES'#10' (:ID, :ID_EMPRES' + + 'A, :REFERENCIA, :REFERENCIA_PROVEEDOR,'#10' :FECHA_FACTURA, :BAS' + + 'E_IMPONIBLE, :DESCUENTO,'#10' :IMPORTE_DESCUENTO, :IVA, :IMPORTE' + + '_IVA, :RE, :IMPORTE_RE, '#10' :IMPORTE_TOTAL, :OBSERVACIONES, :I' + + 'D_PROVEEDOR, :NIF_CIF, '#10' :NOMBRE, :CALLE, :POBLACION, :PROVI' + + 'NCIA, :CODIGO_POSTAL, '#10' :FECHA_ALTA, :FECHA_MODIFICACION, :U' + + 'SUARIO, :ID_FORMA_PAGO, '#10' :RECARGO_EQUIVALENCIA, :ID_TIPO_IV' + + 'A, :IMPORTE_NETO, '#10' :IMPORTE_PORTE, :DATOS_BANCARIOS, :FECHA' + + '_VENCIMIENTO)'#10' '#10' '#10#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_FacturasProveedor' + end + item + Params = < + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'FACTURAS_PROVEEDOR' + SQL = + 'DELETE '#10' FROM'#10' FACTURAS_PROVEEDOR'#10' WHERE'#10' (ID = :OLD_ID)' + + #10#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_FacturasProveedor' + end + item + Params = < + item + Name = 'ID' + Value = '' + end + item + Name = 'ID_EMPRESA' + Value = '' + end + item + Name = 'REFERENCIA' + Value = '' + end + item + Name = 'REFERENCIA_PROVEEDOR' + Value = '' + end + item + Name = 'FECHA_FACTURA' + Value = '' + end + item + Name = 'BASE_IMPONIBLE' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'IMPORTE_DESCUENTO' + Value = '' + end + item + Name = 'IVA' + Value = '' + end + item + Name = 'IMPORTE_IVA' + Value = '' + end + item + Name = 'RE' + Value = '' + end + item + Name = 'IMPORTE_RE' + Value = '' + end + item + Name = 'IMPORTE_TOTAL' + Value = '' + end + item + Name = 'OBSERVACIONES' + Value = '' + end + item + Name = 'ID_PROVEEDOR' + Value = '' + end + item + Name = 'NIF_CIF' + Value = '' + end + item + Name = 'NOMBRE' + Value = '' + end + item + Name = 'CALLE' + Value = '' + end + item + Name = 'POBLACION' + Value = '' + end + item + Name = 'PROVINCIA' + Value = '' + end + item + Name = 'CODIGO_POSTAL' + Value = '' + end + item + Name = 'FECHA_ALTA' + Value = '' + end + item + Name = 'FECHA_MODIFICACION' + Value = '' + end + item + Name = 'USUARIO' + Value = '' + end + item + Name = 'ID_FORMA_PAGO' + Value = '' + end + item + Name = 'RECARGO_EQUIVALENCIA' + Value = '' + end + item + Name = 'ID_TIPO_IVA' + Value = '' + end + item + Name = 'IMPORTE_NETO' + Value = '' + end + item + Name = 'IMPORTE_PORTE' + Value = '' + end + item + Name = 'DATOS_BANCARIOS' + Value = '' + end + item + Name = 'FECHA_VENCIMIENTO' + Value = '' + end + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'FACTURAS_PROVEEDOR' + SQL = + 'UPDATE FACTURAS_PROVEEDOR'#10' SET '#10' ID = :ID,'#10' ID_EMPRESA = ' + + ':ID_EMPRESA, '#10' REFERENCIA = :REFERENCIA, '#10' REFERENCIA_PROV' + + 'EEDOR = :REFERENCIA_PROVEEDOR,'#10' FECHA_FACTURA = :FECHA_FACTUR' + + 'A, '#10' BASE_IMPONIBLE = :BASE_IMPONIBLE,'#10' DESCUENTO = :DESCU' + + 'ENTO, '#10' IMPORTE_DESCUENTO = :IMPORTE_DESCUENTO, '#10' IVA = :I' + + 'VA, '#10' IMPORTE_IVA = :IMPORTE_IVA, '#10' RE = :RE, '#10' IMPORTE' + + '_RE = :IMPORTE_RE, '#10' IMPORTE_TOTAL = :IMPORTE_TOTAL, '#10' OBS' + + 'ERVACIONES = :OBSERVACIONES, '#10' ID_PROVEEDOR = :ID_PROVEEDOR, ' + + #10' NIF_CIF = :NIF_CIF, '#10' NOMBRE = :NOMBRE, '#10' CALLE = :CA' + + 'LLE, '#10' POBLACION = :POBLACION, '#10' PROVINCIA = :PROVINCIA, '#10 + + ' CODIGO_POSTAL = :CODIGO_POSTAL, '#10' FECHA_ALTA = :FECHA_ALT' + + 'A, '#10' FECHA_MODIFICACION = :FECHA_MODIFICACION, '#10' USUARIO =' + + ' :USUARIO, '#10' ID_FORMA_PAGO = :ID_FORMA_PAGO, '#10' RECARGO_EQU' + + 'IVALENCIA = :RECARGO_EQUIVALENCIA, '#10' ID_TIPO_IVA = :ID_TIPO_I' + + 'VA, '#10' IMPORTE_NETO = :IMPORTE_NETO, '#10' IMPORTE_PORTE = :IMP' + + 'ORTE_PORTE,'#10' DATOS_BANCARIOS = :DATOS_BANCARIOS,'#10' FECHA_VE' + + 'NCIMIENTO = :FECHA_VENCIMIENTO'#10' WHERE'#10' (ID = :OLD_ID)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_FacturasProveedor' + end + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_FACTURA_PROV_DETALLES_ID' + Value = '' + end + item + Name = 'ID_FACTURA' + Value = '' + end + item + Name = 'POSICION' + Value = '' + end + item + Name = 'TIPO_DETALLE' + Value = '' + end + item + Name = 'CONCEPTO' + Value = '' + end + item + Name = 'CANTIDAD' + Value = '' + end + item + Name = 'UNIDAD_MEDIDA' + Value = '' + end + item + Name = 'IMPORTE_UNIDAD' + Value = '' + end + item + Name = 'IMPORTE_TOTAL' + Value = '' + end + item + Name = 'VISIBLE' + Value = '' + end + item + Name = 'ID_ARTICULO' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'IMPORTE_PORTE' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'FACTURAS_PROVEEDOR_DETALLES' + SQL = + 'INSERT'#10' INTO FACTURAS_PROVEEDOR_DETALLES'#10' (ID, ID_FACTURA, P' + + 'OSICION, TIPO_DETALLE, CONCEPTO, CANTIDAD, UNIDAD_MEDIDA,'#10' I' + + 'MPORTE_UNIDAD, IMPORTE_TOTAL, VISIBLE, ID_ARTICULO, '#10' DESCUE' + + 'NTO, IMPORTE_PORTE)'#10' VALUES'#10' (:ID, :ID_FACTURA, :POSICION, :' + + 'TIPO_DETALLE, :CONCEPTO, :CANTIDAD, :UNIDAD_MEDIDA,'#10' :IMPORT' + + 'E_UNIDAD, :IMPORTE_TOTAL, :VISIBLE, :ID_ARTICULO, '#10' :DESCUEN' + + 'TO, :IMPORTE_PORTE)'#10' '#10' '#10#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_FacturasProveedor_Detalles' + end + item + Params = < + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'FACTURAS_PROVEEDOR_DETALLES' + SQL = + 'DELETE '#10' FROM'#10' FACTURAS_PROVEEDOR_DETALLES'#10' WHERE'#10' (ID =' + + ' :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_FacturasProveedor_Detalles' + end + item + Params = < + item + Name = 'ID' + Value = '' + end + item + Name = 'ID_FACTURA' + Value = '' + end + item + Name = 'POSICION' + Value = '' + end + item + Name = 'TIPO_DETALLE' + Value = '' + end + item + Name = 'CONCEPTO' + Value = '' + end + item + Name = 'CANTIDAD' + Value = '' + end + item + Name = 'UNIDAD_MEDIDA' + Value = '' + end + item + Name = 'IMPORTE_UNIDAD' + Value = '' + end + item + Name = 'IMPORTE_TOTAL' + Value = '' + end + item + Name = 'VISIBLE' + Value = '' + end + item + Name = 'ID_ARTICULO' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'IMPORTE_PORTE' + Value = '' + end + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'FACTURAS_PROVEEDOR_DETALLES' + SQL = + 'UPDATE FACTURAS_PROVEEDOR_DETALLES'#10' SET '#10' ID = :ID,'#10' ID_F' + + 'ACTURA = :ID_FACTURA, '#10' POSICION = :POSICION, '#10' TIPO_DETAL' + + 'LE = :TIPO_DETALLE, '#10' CONCEPTO = :CONCEPTO, '#10' CANTIDAD = :' + + 'CANTIDAD, '#10' UNIDAD_MEDIDA = :UNIDAD_MEDIDA,'#10' IMPORTE_UNIDA' + + 'D = :IMPORTE_UNIDAD, '#10' IMPORTE_TOTAL = :IMPORTE_TOTAL, '#10' V' + + 'ISIBLE = :VISIBLE, '#10' ID_ARTICULO = :ID_ARTICULO, '#10' DESCUEN' + + 'TO = :DESCUENTO, '#10' IMPORTE_PORTE = :IMPORTE_PORTE'#10' WHERE'#10' ' + + ' (ID = :OLD_ID)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_FacturasProveedor_Detalles' + end + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_PEDIDOS_PROV_PEDIDOS_ID' + Value = '' + end + item + Name = 'ID_FACTURA' + Value = '' + end + item + Name = 'ID_PEDIDO' + Value = '' + end + item + Name = 'IMPORTE_TOTAL' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'FACTURAS_PROVEEDOR_PEDIDOS' + SQL = + 'INSERT'#10' INTO FACTURAS_PROVEEDOR_PEDIDOS'#10' (ID, ID_FACTURA, ID' + + '_PEDIDO, IMPORTE_TOTAL)'#10' VALUES'#10' (:ID, :ID_FACTURA, :ID_PEDI' + + 'DO, :IMPORTE_TOTAL)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_FacturasProveedor_Pedidos' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datAutoInc + Value = '0' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'FACTURAS_PROVEEDOR_PEDIDOS' + SQL = + 'DELETE '#10' FROM'#10' FACTURAS_PROVEEDOR_PEDIDOS'#10' WHERE'#10' (ID = ' + + ':OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_FacturasProveedor_Pedidos' + end + item + Params = < + item + Name = 'ID_FACTURA' + Value = '' + end + item + Name = 'IMPORTE_TOTAL' + Value = '' + end + item + Name = 'ID_PEDIDO' + Value = '' + end + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'FACTURAS_PROVEEDOR_PEDIDOS' + SQL = + 'UPDATE FACTURAS_PROVEEDOR_PEDIDOS'#10' SET '#10' ID_FACTURA = :ID_FA' + + 'CTURA, '#10' IMPORTE_TOTAL = :IMPORTE_TOTAL, '#10' ID_PEDIDO = :ID' + + '_PEDIDO'#10' WHERE'#10' (ID = :OLD_ID)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_FacturasProveedor_Pedidos' + end> + RelationShips = < + item + Name = 'FK_FacturasProveedor_Pedidos' + MasterDatasetName = 'FacturasProveedor' + MasterFields = 'ID' + DetailDatasetName = 'FacturasProveedor_Pedidos' + DetailFields = 'ID_FACTURA' + RelationshipType = rtForeignKey + end + item + Name = 'FK_FacturasProveedor_Detalles' + MasterDatasetName = 'FacturasProveedor' + MasterFields = 'ID' + DetailDatasetName = 'FacturasProveedor_Detalles' + DetailFields = 'ID_FACTURA' + RelationshipType = rtForeignKey + end> + UpdateRules = < + item + Name = 'Insert FacturasProveedor' + DoUpdate = False + DoDelete = False + DatasetName = 'FacturasProveedor' + FailureBehavior = fbRaiseException + end + item + Name = 'Insert FacturasProveedor_Detalles' + DoUpdate = False + DoDelete = False + DatasetName = 'FacturasProveedor_Detalles' + FailureBehavior = fbRaiseException + end + item + Name = 'Insert FacturasProveedor_Pedidos' + DoUpdate = False + DoDelete = False + DatasetName = 'FacturasProveedor_Pedidos' + FailureBehavior = fbRaiseException + end + item + Name = 'Update FacturasProveedor' + DoInsert = False + DoDelete = False + DatasetName = 'FacturasProveedor' + FailureBehavior = fbRaiseException + end + item + Name = 'Update FacturasProveedor_Detalles' + DoInsert = False + DoDelete = False + DatasetName = 'FacturasProveedor_Detalles' + FailureBehavior = fbRaiseException + end + item + Name = 'Update FacturasProveedor_Pedidos' + DoInsert = False + DoDelete = False + DatasetName = 'FacturasProveedor_Pedidos' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete FacturasProveedor_Detalles' + DoUpdate = False + DoInsert = False + DatasetName = 'FacturasProveedor_Detalles' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete FacturasProveedor_Pedidos' + DoUpdate = False + DoInsert = False + DatasetName = 'FacturasProveedor_Pedidos' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete FacturasProveedor' + DoUpdate = False + DoInsert = False + DatasetName = 'FacturasProveedor' + FailureBehavior = fbRaiseException + end> + Version = 0 + Left = 48 + Top = 24 + end + object Diagrams: TDADiagrams + Left = 150 + Top = 74 + DiagramData = ''#13#10''#13#10 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'FacturasProveedor_ID' + DataType = datAutoInc + GeneratorName = 'GEN_FACTURAS_PROVEEDOR_ID' + Required = True + DisplayLabel = 'ID' + ServerAutoRefresh = True + end + item + Name = 'FacturasProveedor_ID_EMPRESA' + DataType = datInteger + DisplayLabel = 'ID_EMPRESA' + end + item + Name = 'FacturasProveedor_FECHA_FACTURA' + DataType = datDateTime + DisplayLabel = 'Fecha de las factura' + end + item + Name = 'FacturasProveedor_VENCIMIENTO' + DataType = datInteger + DisplayLabel = 'Vencimiento' + end + item + Name = 'FacturasProveedor_SITUACION' + DataType = datString + Size = 255 + DisplayLabel = 'Situaci'#243'n' + end + item + Name = 'FacturasProveedor_BASE_IMPONIBLE' + DataType = datCurrency + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + end + item + Name = 'FacturasProveedor_IMPORTE_DESCUENTO' + DataType = datCurrency + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + end + item + Name = 'FacturasProveedor_IMPORTE_IVA' + DataType = datCurrency + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + end + item + Name = 'FacturasProveedor_IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'FacturasProveedor_FORMA_PAGO' + DataType = datMemo + DisplayLabel = 'Forma de pago' + end + item + Name = 'FacturasProveedor_ID_CLIENTE' + DataType = datInteger + DisplayLabel = 'ID_CLIENTE' + end + item + Name = 'FacturasProveedor_NIF_CIF' + DataType = datString + Size = 15 + DisplayLabel = 'NIF/CIF' + end + item + Name = 'FacturasProveedor_CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#243'd. postal' + end + item + Name = 'FacturasProveedor_FECHA_ALTA' + DataType = datDateTime + DisplayLabel = 'FECHA_ALTA' + end + item + Name = 'FacturasProveedor_FECHA_MODIFICACION' + DataType = datDateTime + DisplayLabel = 'FECHA_MODIFICACION' + end + item + Name = 'FacturasProveedor_OBSERVACIONES' + DataType = datMemo + DisplayLabel = 'Observaciones' + end + item + Name = 'FacturasProveedor_NOMBRE' + DataType = datString + Size = 100 + DisplayLabel = 'Cliente' + end + item + Name = 'FacturasProveedor_CALLE' + DataType = datString + Size = 150 + DisplayLabel = 'Direcci'#243'n' + end + item + Name = 'FacturasProveedor_PROVINCIA' + DataType = datString + Size = 30 + DisplayLabel = 'Provincia' + end + item + Name = 'FacturasProveedor_POBLACION' + DataType = datString + Size = 150 + DisplayLabel = 'Poblaci'#243'n' + end + item + Name = 'FacturasProveedor_IVA' + DataType = datFloat + DisplayLabel = 'IVA' + Alignment = taRightJustify + end + item + Name = 'FacturasProveedor_USUARIO' + DataType = datString + Size = 100 + DisplayLabel = 'USUARIO' + end + item + Name = 'FacturasProveedor_DESCUENTO' + DataType = datFloat + DisplayLabel = 'Dto.' + Alignment = taRightJustify + end + item + Name = 'FacturasProveedor_Detalles_ID' + DataType = datAutoInc + GeneratorName = 'GEN_FACTURA_PROV_DETALLES_ID' + Required = True + DisplayLabel = 'ID' + ServerAutoRefresh = True + end + item + Name = 'FacturasProveedor_Detalles_ID_FACTURA' + DataType = datInteger + DisplayLabel = 'ID_FACTURA' + end + item + Name = 'FacturasProveedor_Detalles_TIPO_DETALLE' + DataType = datString + Size = 25 + DisplayLabel = 'Tipo detalle' + end + item + Name = 'FacturasProveedor_Detalles_CONCEPTO' + DataType = datString + Size = 2000 + DisplayLabel = 'Concepto' + end + item + Name = 'FacturasProveedor_Detalles_IMPORTE_UNIDAD' + DataType = datCurrency + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + end + item + Name = 'FacturasProveedor_Detalles_IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'FacturasProveedor_Detalles_VISIBLE' + DataType = datSmallInt + DisplayLabel = #191'Visible?' + end + item + Name = 'FacturasProveedor_Detalles_POSICION' + DataType = datInteger + DisplayLabel = 'Posici'#243'n' + end + item + Name = 'FacturasProveedor_Detalles_CANTIDAD' + DataType = datFloat + DisplayLabel = 'Cantidad' + end + item + Name = 'FacturasProveedor_FECHA_PAGADO' + DataType = datDateTime + DisplayLabel = 'Fecha de pago' + end + item + Name = 'FacturasProveedor_DATOS_BANCARIOS' + DataType = datString + Size = 255 + DisplayLabel = 'Datos bancarios' + end + item + Name = 'FacturasProveedor_FECHA_VENCIMIENTO' + DataType = datDateTime + DisplayLabel = 'Fecha de vencimiento' + ServerAutoRefresh = True + end + item + Name = 'FacturasProveedor_RE' + DataType = datFloat + DisplayLabel = 'RE' + Alignment = taRightJustify + end + item + Name = 'FacturasProveedor_IMPORTE_RE' + DataType = datCurrency + DisplayLabel = 'Importe RE' + Alignment = taRightJustify + end + item + Name = 'FacturasProveedor_REFERENCIA' + DataType = datString + Size = 20 + DisplayLabel = 'Referencia' + ServerAutoRefresh = True + end + item + Name = 'FacturasProveedor_ID_FORMA_PAGO' + DataType = datInteger + end + item + Name = 'FacturasProveedor_IMPORTE_NETO' + DataType = datCurrency + DisplayLabel = 'Importe neto' + Alignment = taRightJustify + end + item + Name = 'FacturasProveedor_IMPORTE_PORTE' + DataType = datCurrency + DisplayLabel = 'Importe del porte' + Alignment = taRightJustify + end + item + Name = 'FacturasProveedor_RECARGO_EQUIVALENCIA' + DataType = datSmallInt + DisplayLabel = #191'Con R.E.?' + end + item + Name = 'FacturasProveedor_ID_PROVEEDOR' + DataType = datInteger + end + item + Name = 'FacturasProveedor_ID_TIPO_IVA' + DataType = datInteger + DisplayLabel = 'ID_TIPO_IVA' + end + item + Name = 'FacturasProveedor_Detalles_DESCUENTO' + DataType = datFloat + DisplayLabel = 'DESCUENTO' + end + item + Name = 'FacturasProveedor_Detalles_ID_ARTICULO' + DataType = datInteger + DisplayLabel = 'ID_ARTICULO' + end + item + Name = 'FacturasProveedor_Detalles_IMPORTE_PORTE' + DataType = datCurrency + DisplayLabel = 'IMPORTE_PORTE' + end + item + Name = 'FacturasProveedor_Detalles_REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'REFERENCIA' + end + item + Name = 'FacturasProveedor_Detalles_REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'REFERENCIA_PROVEEDOR' + end + item + Name = 'FacturasProveedor_TIPO' + DataType = datString + Size = 1 + DisplayLabel = 'Tipo' + end + item + Name = 'FacturasProveedor_REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'REFERENCIA_PROVEEDOR' + end + item + Name = 'FacturasProveedor_Pedidos_ID' + DataType = datAutoInc + GeneratorName = 'GEN_PEDIDOS_PROV_PEDIDOS_ID' + DisplayLabel = 'ID' + end + item + Name = 'FacturasProveedor_Pedidos_ID_FACTURA' + DataType = datInteger + end + item + Name = 'FacturasProveedor_Pedidos_IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + end + item + Name = 'FacturasProveedor_Pedidos_ID_PEDIDO' + DataType = datInteger + end + item + Name = 'FacturasProveedor_Pedidos_REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. pedido' + end + item + Name = 'FacturasProveedor_Pedidos_FECHA_PEDIDO' + DataType = datDateTime + DisplayLabel = 'Fecha' + end + item + Name = 'FacturasProveedor_Pedidos_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'Proveedor' + end> + Left = 150 + Top = 22 + end + object bpFacturasProveedor: TDABusinessProcessor + Schema = schFacturasProveedor + InsertCommandName = 'Insert_FacturasProveedor' + DeleteCommandName = 'Delete_FacturasProveedor' + UpdateCommandName = 'Update_FacturasProveedor' + ReferencedDataset = 'FacturasProveedor' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 280 + Top = 16 + end + object bpFacturasProveedor_Detalles: TDABusinessProcessor + Schema = schFacturasProveedor + InsertCommandName = 'Insert_FacturasProveedor_Detalles' + DeleteCommandName = 'Delete_FacturasProveedor_Detalles' + UpdateCommandName = 'Update_FacturasProveedor_Detalles' + ReferencedDataset = 'FacturasProveedor_Detalles' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 280 + Top = 72 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 80 + end + object bpFacturasProveedor_Pedidos: TDABusinessProcessor + Schema = schFacturasProveedor + InsertCommandName = 'Insert_FacturasProveedor_Pedidos' + DeleteCommandName = 'Delete_FacturasProveedor_Pedidos' + UpdateCommandName = 'Update_FacturasProveedor_Pedidos' + ReferencedDataset = 'FacturasProveedor_Pedidos' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 280 + Top = 128 + end +end diff --git a/Source/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.pas b/Source/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.pas new file mode 100644 index 0000000..bfde10a --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.pas @@ -0,0 +1,85 @@ +unit srvFacturasProveedor_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} uDABusinessProcessor, uDABin2DataStreamer, uDADataStreamer, + uDAScriptingProvider, uDAClasses, + FactuGES_Intf, uDAInterfaces; + +type + { TsrvFacturasProveedor } + TsrvFacturasProveedor = class(TDataAbstractService, IsrvFacturasProveedor) + Diagrams: TDADiagrams; + bpFacturasProveedor: TDABusinessProcessor; + bpFacturasProveedor_Detalles: TDABusinessProcessor; + Bin2DataStreamer: TDABin2DataStreamer; + bpFacturasProveedor_Pedidos: TDABusinessProcessor; + schFacturasProveedor: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; + const IncludeSchema: Boolean; const MaxRecords: Integer); + procedure DARemoteServiceCreate(Sender: TObject); + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; + var aConnectionName: string); + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, Dialogs, + uDataModuleServer, uDatabaseUtils, uUsersManager, schFacturasProveedorClient_Intf, + uRestriccionesUsuarioUtils, uBizFacturasProveedorServer; +// uRptFacturasProveedor_Server; + +procedure Create_srvFacturasProveedor(out anInstance : IUnknown); +begin + anInstance := TsrvFacturasProveedor.Create(NIL); +end; + +{ srvFacturasProveedor } + +procedure TsrvFacturasProveedor.DARemoteServiceBeforeGetDatasetData( + const Dataset: IDADataset; const IncludeSchema: Boolean; + const MaxRecords: Integer); +begin +{ if DataSet.Name = nme_FacturasProveedor then + begin + { Aqu se asegura que el usuario slo accede a facturas + de las empresas a las que tiene permiso para acceder + filtrando DataSet por ID_EMPRESA. } +{ FiltrarAccesoUsuario(Session, Connection, schFacturasProveedor, DataSet, fld_FacturasProveedorID_EMPRESA); + end; +} +end; + +procedure TsrvFacturasProveedor.DARemoteServiceCreate(Sender: TObject); +begin + //SessionManager := dmServer.SessionManager; + bpFacturasProveedor.BusinessRulesID := BIZ_SERVER_FACTURAS_PROVEEDOR; +end; + +procedure TsrvFacturasProveedor.DataAbstractServiceBeforeAcquireConnection( + aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +initialization + TROClassFactory.Create('srvFacturasProveedor', Create_srvFacturasProveedor, TsrvFacturasProveedor_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Facturas de proveedor/Test/Presupuestos_Test.bdsproj b/Source/Modulos/Facturas de proveedor/Test/Presupuestos_Test.bdsproj new file mode 100644 index 0000000..c5dacc4 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Test/Presupuestos_Test.bdsproj @@ -0,0 +1,496 @@ + + + + + + + + + + + + Presupuestos_Test.dpr + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + ..\..\..\Output\Cliente + .\ + + ..\..\Lib + ..\..\..\Lib;..\..\Lib + DataAbstract_D10;base;GUIBase;ClassRegistry;Empresas_controller;Presupuestos_model;presupuestos_data;presupuestos_controller;presupuestos_view;presupuestos_plugin + _CONSOLE_TESTRUNNER;EUREKALOG;EUREKALOG_VER5 + + True + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + Presupuestos_Test + + + + Presupuestos_Test + 1.0.0.0 + + + + + DUnit / Delphi Win32 + GUI + + + diff --git a/Source/Modulos/Facturas de proveedor/Test/Presupuestos_Test.dpr b/Source/Modulos/Facturas de proveedor/Test/Presupuestos_Test.dpr new file mode 100644 index 0000000..5b59687 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Test/Presupuestos_Test.dpr @@ -0,0 +1,40 @@ +program Presupuestos_Test; +{ + + Delphi DUnit Test Project + ------------------------- + This project contains the DUnit test framework and the GUI/Console test runners. + Add "CONSOLE_TESTRUNNER" to the conditional defines entry in the project options + to use the console test runner. Otherwise the GUI test runner will be used by + default. + +} + +{$IFDEF CONSOLE_TESTRUNNER} +{$APPTYPE CONSOLE} +{$ENDIF} + +uses + ExceptionLog, + Forms, + TestFramework, + GUITestRunner, + TextTestRunner, + uPresupuestosViewRegister, + uContactosViewRegister, + uPluginPresupuestos_Test in 'uPluginPresupuestos_Test.pas', + uHostMainForm in 'uHostMainForm.pas' {HostMainForm}, + uPresupuestosController_Test in 'uPresupuestosController_Test.pas', + uDataModulePresupuestos_Test in 'uDataModulePresupuestos_Test.pas'; + +{$R *.RES} + +begin + Application.Initialize; + Application.CreateForm(THostMainForm, HostMainForm); + uPresupuestosViewRegister.RegisterViews; + uContactosViewRegister.RegisterViews; + Application.Run; + Application.Terminate; +end. + diff --git a/Source/Modulos/Facturas de proveedor/Test/Presupuestos_Test.res b/Source/Modulos/Facturas de proveedor/Test/Presupuestos_Test.res new file mode 100644 index 0000000..37a3dbd Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Test/Presupuestos_Test.res differ diff --git a/Source/Modulos/Facturas de proveedor/Test/uDataModulePresupuestos_Test.pas b/Source/Modulos/Facturas de proveedor/Test/uDataModulePresupuestos_Test.pas new file mode 100644 index 0000000..b054a7c --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Test/uDataModulePresupuestos_Test.pas @@ -0,0 +1,98 @@ +unit uDataModulePresupuestos_Test; +{ + + Delphi DUnit Test Case + ---------------------- + This unit contains a skeleton test case class generated by the Test Case Wizard. + Modify the generated code to correctly setup and call the methods from the unit + being tested. + +} + +interface + +uses + TestFramework, uROBinMessage, uROServiceComponent, uDAClientDataModule, + uDACDSDataTable, uDADataTable, uBizDetallesPresupuesto, uBizPresupuestos, Classes, DB, + uDAScriptingProvider, SysUtils, uIDataModulePresupuestos, uROWinInetHttpChannel, + uROClient, uDABINAdapter, uRORemoteService, DBClient, uDataModulePresupuestos; +type + // Test methods for class TDataModulePresupuestos + + TestTDataModulePresupuestos = class(TTestCase) + strict private + FDataModulePresupuestos: TDataModulePresupuestos; + public + procedure SetUp; override; + procedure TearDown; override; + published + procedure TestDAClientDataModuleCreate; + procedure Test_CloneDataTable; + procedure TestGetDetalles; + procedure TestGetItems; + procedure TestGetNextID; + end; + +implementation + +procedure TestTDataModulePresupuestos.SetUp; +begin + FDataModulePresupuestos := TDataModulePresupuestos.Create(Nil); +end; + +procedure TestTDataModulePresupuestos.TearDown; +begin + FDataModulePresupuestos.Free; + FDataModulePresupuestos := nil; +end; + +procedure TestTDataModulePresupuestos.TestDAClientDataModuleCreate; +var + Sender: TObject; +begin + // TODO: Setup method call parameters + FDataModulePresupuestos.DAClientDataModuleCreate(Sender); + // TODO: Validate method results +end; + +procedure TestTDataModulePresupuestos.Test_CloneDataTable; +var + ReturnValue: TDACDSDataTable; + ADataTable: TDACDSDataTable; +begin + // TODO: Setup method call parameters + ReturnValue := FDataModulePresupuestos._CloneDataTable(ADataTable); + // TODO: Validate method results +end; + +procedure TestTDataModulePresupuestos.TestGetDetalles; +var + ReturnValue: IBizDetallesPresupuesto; +begin +// ReturnValue := FDataModulePresupuestos.GetDetalles; + // TODO: Validate method results +end; + +procedure TestTDataModulePresupuestos.TestGetItems; +var + ReturnValue: IBizPresupuesto; +begin + ReturnValue := FDataModulePresupuestos.GetItems; + // TODO: Validate method results +end; + +procedure TestTDataModulePresupuestos.TestGetNextID; +var + ReturnValue: Integer; + DataSetName: string; +begin + // TODO: Setup method call parameters + ReturnValue := FDataModulePresupuestos.GetNextID(DataSetName); + // TODO: Validate method results +end; + +initialization + // Register any test cases with the test runner + RegisterTest(TestTDataModulePresupuestos.Suite); +end. + diff --git a/Source/Modulos/Facturas de proveedor/Test/uHostMainForm.dfm b/Source/Modulos/Facturas de proveedor/Test/uHostMainForm.dfm new file mode 100644 index 0000000..1de986c --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Test/uHostMainForm.dfm @@ -0,0 +1,28 @@ +object HostMainForm: THostMainForm + Left = 0 + Top = 0 + Caption = 'HostMainForm' + ClientHeight = 598 + ClientWidth = 690 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnCloseQuery = FormCloseQuery + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 690 + Height = 598 + Align = alClient + BevelOuter = bvNone + TabOrder = 0 + end +end diff --git a/Source/Modulos/Facturas de proveedor/Test/uHostMainForm.pas b/Source/Modulos/Facturas de proveedor/Test/uHostMainForm.pas new file mode 100644 index 0000000..50f4b46 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Test/uHostMainForm.pas @@ -0,0 +1,116 @@ +unit uHostMainForm; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uGUIBase, ExtCtrls, uCustomEditor, cxControls; + +type + THostMainForm = class(TForm, IHostForm) + Panel1: TPanel; + procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); + procedure FormShow(Sender: TObject); + protected + FContenido : TCustomEditor; + function GetWorkPanel: TWinControl; + procedure OnWorkPanelChanged(AEditor : ICustomEditor); + procedure ShowEmbedded(AEditor : ICustomEditor); + procedure ReleaseEmbedded; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + property WorkPanel: TWinControl read GetWorkPanel; + end; + +var + HostMainForm: THostMainForm; + +implementation + +{$R *.dfm} + +uses + TestFramework, GUITestRunner, TextTestRunner; + + +{ TForm1 } + +constructor THostMainForm.Create(AOwner: TComponent); +begin + inherited; + FContenido := NIL; +end; + +destructor THostMainForm.Destroy; +begin + ReleaseEmbedded; + inherited; +end; + +procedure THostMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean); +begin + CanClose := True; + if Assigned(FContenido) then + CanClose := FContenido.CloseQuery; +end; + +procedure THostMainForm.FormShow(Sender: TObject); +begin + if IsConsole then + TextTestRunner.RunRegisteredTests + else + GUITestRunner.RunRegisteredTestsModeless; + Self.SendToBack; +end; + +function THostMainForm.GetWorkPanel: TWinControl; +begin + Result := Panel1; +end; + +procedure THostMainForm.OnWorkPanelChanged(AEditor: ICustomEditor); +begin + // +end; + +procedure THostMainForm.ReleaseEmbedded; +begin + if Assigned(FContenido) then + FContenido.Release; + Application.ProcessMessages; +end; + +procedure THostMainForm.ShowEmbedded(AEditor: ICustomEditor); +begin + if Assigned(FContenido) then + if not FContenido.CloseQuery then + begin + AEditor.Release; + AEditor := NIL; + Exit; + end; + + ShowHourglassCursor; + LockWindowUpdate(Handle); + try + FContenido := AEditor.GetInstance as TCustomEditor; + with (FContenido) do + begin + Visible := False; + BorderIcons := []; + BorderStyle := bsNone; + Parent := WorkPanel; + FContenido.Show; + Align := alClient; + FContenido.SetFocus; + end; + finally + Application.ProcessMessages; + LockWindowUpdate(0); + HideHourglassCursor; + end; + OnWorkPanelChanged(FContenido); +end; + +end. diff --git a/Source/Modulos/Facturas de proveedor/Test/uPluginPresupuestos_Test.pas b/Source/Modulos/Facturas de proveedor/Test/uPluginPresupuestos_Test.pas new file mode 100644 index 0000000..e8df46e --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Test/uPluginPresupuestos_Test.pas @@ -0,0 +1,56 @@ +unit uPluginPresupuestos_Test; +{ + + Delphi DUnit Test Case + ---------------------- + This unit contains a skeleton test case class generated by the Test Case Wizard. + Modify the generated code to correctly setup and call the methods from the unit + being tested. + +} + +interface + +uses + TestFramework, ActnList, uPluginPresupuestos, Classes, ImgList, uInterfaces, + uModuleController, uHostManager, PngImageList, Controls, Menus; +type + // Test methods for class TPluginPresupuestos + + TestTPluginPresupuestos = class(TTestCase) + strict private + FPluginPresupuestos: TPluginPresupuestos; + public + procedure SetUp; override; + procedure TearDown; override; + published + procedure TestactPresupuestosExecute; + end; + +implementation + +procedure TestTPluginPresupuestos.SetUp; +begin + FPluginPresupuestos := TPluginPresupuestos.Create(Nil); +end; + +procedure TestTPluginPresupuestos.TearDown; +begin + FPluginPresupuestos.Free; + FPluginPresupuestos := nil; +end; + +procedure TestTPluginPresupuestos.TestactPresupuestosExecute; +var + Sender: TObject; +begin + // TODO: Setup method call parameters +// FPluginPresupuestos.actPresupuestosExecute(Sender); + // TODO: Validate method results +end; + +initialization + // Register any test cases with the test runner + RegisterTest(TestTPluginPresupuestos.Suite); +end. + diff --git a/Source/Modulos/Facturas de proveedor/Test/uPresupuestosController_Test.pas b/Source/Modulos/Facturas de proveedor/Test/uPresupuestosController_Test.pas new file mode 100644 index 0000000..e5e483c --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Test/uPresupuestosController_Test.pas @@ -0,0 +1,85 @@ +unit uPresupuestosController_Test; +{ + + Delphi DUnit Test Case + ---------------------- + This unit contains a skeleton test case class generated by the Test Case Wizard. + Modify the generated code to correctly setup and call the methods from the unit + being tested. + +} + +interface + +uses + TestFramework, uBizPresupuestos, Classes, Contnrs, Windows, + Forms, SysUtils, Controls, uBizDetallesPresupuesto, uIDataModulePresupuestos, + uPresupuestosController; +type + // Test methods for class TPresupuestosController + + TestTPresupuestosController = class(TTestCase) + strict private + FPresupuestosController : IPresupuestosController; + public + procedure SetUp; override; + procedure TearDown; override; + published + procedure TestBuscarTodos; + procedure TestVerTodos; + procedure hola; + end; + +var + FPresupuestosController: IPresupuestosController; + +implementation + +uses dialogs; + + +procedure TestTPresupuestosController.hola; +begin + // +end; + +procedure TestTPresupuestosController.SetUp; +begin + FPresupuestosController := TPresupuestosController.Create; +end; + +procedure TestTPresupuestosController.TearDown; +begin + FPresupuestosController := Nil; +end; + +procedure TestTPresupuestosController.TestBuscarTodos; +var + ReturnValue: IBizPresupuesto; +begin + ReturnValue := FPresupuestosController.BuscarTodos; + + ReturnValue.DataTable.Open; + showmessage(IntToStr(ReturnValue.DataTable.RecordCount)); +end; + +procedure TestTPresupuestosController.TestVerTodos; +var + APresupuestos: IBizPresupuesto; +begin + APresupuestos := FPresupuestosController.BuscarTodos; + APresupuestos.DataTable.Open; + // TODO: Setup method call parameters + FPresupuestosController.VerTodos(APresupuestos); + // TODO: Validate method results +end; + +initialization + // Register any test cases with the test runner + RegisterTest(TestTPresupuestosController.Suite); + +finalization + + +end. + diff --git a/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.bdsproj b/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.bdsproj new file mode 100644 index 0000000..bd76eaa --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.bdsproj @@ -0,0 +1,494 @@ + + + + + + + + + + + + FacturasProveedor_view.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + + + + diff --git a/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.dcu b/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.dcu new file mode 100644 index 0000000..43bb180 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.dpk b/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.dpk new file mode 100644 index 0000000..aa90864 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.dpk differ diff --git a/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.dproj b/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.dproj new file mode 100644 index 0000000..24cab1a --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.dproj @@ -0,0 +1,606 @@ + + + + {0292650a-554d-47ac-933a-ac71d1f18f02} + FacturasProveedor_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\FacturasProveedor_view.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + FacturasProveedor_view.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + + + + + +
fEditorElegirArticulosFacturaProveedor
+ TfEditorElegirArticulosFacturaProveedor +
+ +
fEditorElegirDomiciliacion
+ TfEditorFacturaProveedor +
+ +
fEditorFacturaProveedor
+ TfEditorFacturaProveedor +
+ +
fEditorFacturasProveedor
+ TfEditorFacturasProveedor +
+ +
fEditorFacturasProveedorReport
+ TfEditorFacturasProveedorReport +
+ + +
frViewDetallesFacturaProveedor
+ TFrame +
+ +
frViewElegirArticulosFacturasProveedor
+ TFrame +
+ +
frViewFacturaProveedor
+ TFrame +
+ +
frViewFacturasProveedor
+ TFrame +
+ +
frViewPedidosFacturaProveedor
+ TFrame +
+ + + + + +
+
+ diff --git a/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.rc b/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.res b/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.res differ diff --git a/Source/Modulos/Facturas de proveedor/Views/uEditorElegirArticulosFacturaProveedor.dcu b/Source/Modulos/Facturas de proveedor/Views/uEditorElegirArticulosFacturaProveedor.dcu new file mode 100644 index 0000000..47ca352 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Views/uEditorElegirArticulosFacturaProveedor.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Views/uEditorElegirArticulosFacturaProveedor.dfm b/Source/Modulos/Facturas de proveedor/Views/uEditorElegirArticulosFacturaProveedor.dfm new file mode 100644 index 0000000..e8f8658 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uEditorElegirArticulosFacturaProveedor.dfm @@ -0,0 +1,5 @@ +inherited fEditorElegirArticulosFacturaProveedor: TfEditorElegirArticulosFacturaProveedor + Caption = 'fEditorElegirArticulosFacturaProveedor' + PixelsPerInch = 96 + TextHeight = 13 +end diff --git a/Source/Modulos/Facturas de proveedor/Views/uEditorElegirArticulosFacturaProveedor.pas b/Source/Modulos/Facturas de proveedor/Views/uEditorElegirArticulosFacturaProveedor.pas new file mode 100644 index 0000000..de9b84b --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uEditorElegirArticulosFacturaProveedor.pas @@ -0,0 +1,65 @@ +unit uEditorElegirArticulosFacturaProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorElegirArticulos, Menus, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, + StdActns, ActnList, uCustomView, uViewBase, uViewBarraSeleccion, ComCtrls, + JvExComCtrls, JvStatusBar, TBX, TB2ExtItems, TBXExtItems, TB2Item, TB2Dock, + TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, + uIEditorElegirArticulosFacturasProveedor, uBizContactos, + uDAInterfaces, uViewGridBase, uViewGrid, uViewArticulos; + +type + TfEditorElegirArticulosFacturaProveedor = class(TfEditorElegirArticulos, IEditorElegirArticulosFacturasProveedor) + procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); + private + FProveedor: IBizProveedor; + function GetProveedor: IBizProveedor; + procedure SetProveedor(const Value: IBizProveedor); + + public + property Proveedor: IBizProveedor read GetProveedor write SetProveedor; + constructor Create(AOwner: TComponent); override; + + end; + + +implementation +{$R *.dfm} + +uses uViewElegirArticulosFacturasProveedor; + +{ TfEditorElegirArticulosFacturaCliente } + +constructor TfEditorElegirArticulosFacturaProveedor.Create(AOwner: TComponent); +begin + inherited; + ViewGrid := CreateView(TfrViewElegirArticulosFacturasProveedor) as IViewElegirArticulosFacturasProveedor; +end; + +procedure TfEditorElegirArticulosFacturaProveedor.FormCloseQuery( + Sender: TObject; var CanClose: Boolean); +begin + FProveedor := Nil; + inherited; +end; + +function TfEditorElegirArticulosFacturaProveedor.GetProveedor: IBizProveedor; +begin + Result := FProveedor; +end; + +procedure TfEditorElegirArticulosFacturaProveedor.SetProveedor(const Value: IBizProveedor); +begin + FProveedor := Value; + if Assigned(FProveedor) then + begin + if Assigned(Self.ViewGrid) then + (Self.ViewGrid as IViewElegirArticulosFacturasProveedor).Proveedor := FProveedor; + end; +end; + +end. diff --git a/Source/Modulos/Facturas de proveedor/Views/uEditorElegirDomiciliacion.dcu b/Source/Modulos/Facturas de proveedor/Views/uEditorElegirDomiciliacion.dcu new file mode 100644 index 0000000..2f39bee Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Views/uEditorElegirDomiciliacion.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Views/uEditorElegirDomiciliacion.dfm b/Source/Modulos/Facturas de proveedor/Views/uEditorElegirDomiciliacion.dfm new file mode 100644 index 0000000..f21c9ca --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uEditorElegirDomiciliacion.dfm @@ -0,0 +1,87 @@ +object fEditorElegirDomiciliacion: TfEditorElegirDomiciliacion + Left = 0 + Top = 0 + BorderStyle = bsDialog + Caption = 'Domiciliaci'#243'n bancaria' + ClientHeight = 124 + ClientWidth = 497 + Color = clWindow + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object Label1: TLabel + Left = 21 + Top = 16 + Width = 319 + Height = 13 + Caption = + 'Seleccione la cuenta bancaria donde desea domiciliar la/s factur' + + 'a/s' + end + object Label2: TLabel + Left = 22 + Top = 45 + Width = 83 + Height = 13 + Alignment = taRightJustify + Caption = 'Cuenta bancaria:' + end + object Panel1: TPanel + Left = 0 + Top = 83 + Width = 497 + Height = 41 + Align = alBottom + TabOrder = 0 + DesignSize = ( + 497 + 41) + object bAceptar: TButton + Left = 333 + Top = 8 + Width = 75 + Height = 25 + Anchors = [akTop, akRight] + Caption = 'Aceptar' + ModalResult = 1 + TabOrder = 0 + end + object bCancelar: TButton + Left = 414 + Top = 8 + Width = 75 + Height = 25 + Anchors = [akTop, akRight] + Caption = 'Cancelar' + ModalResult = 2 + TabOrder = 1 + end + end + object cbCuentaBancaria: TcxComboBox + Left = 111 + Top = 41 + Properties.DropDownListStyle = lsFixedList + Properties.DropDownRows = 12 + Properties.ImmediatePost = True + Properties.ImmediateUpdateText = True + Properties.PostPopupValueOnTab = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 1 + Width = 297 + end +end diff --git a/Source/Modulos/Facturas de proveedor/Views/uEditorElegirDomiciliacion.pas b/Source/Modulos/Facturas de proveedor/Views/uEditorElegirDomiciliacion.pas new file mode 100644 index 0000000..b645d4d --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uEditorElegirDomiciliacion.pas @@ -0,0 +1,90 @@ +unit uEditorElegirDomiciliacion; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, cxControls, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, + cxDropDownEdit, cxCalendar, ExtCtrls, uEditorBasico, uIEditorElegirDomiciliacion, + cxGraphics, DB, uDAInterfaces, uDADataTable, cxDBEdit, uEmpresasController; + +type + TfEditorElegirDomiciliacion = class(TfEditorBasico, IEditorElegirDomiciliacion) + Label1: TLabel; + bAceptar: TButton; + bCancelar: TButton; + Label2: TLabel; + Panel1: TPanel; + cbCuentaBancaria: TcxComboBox; + procedure FormShow(Sender: TObject); + + private + FCuentaBancaria: String; + function GetCuentaBancaria: String; + procedure SetCuentaBancaria(const Value: String); + + public + property CuentaBancaria: String Read GetCuentaBancaria write SetCuentaBancaria; + end; + +implementation +{$R *.dfm} + +uses uFactuGES_App; + +procedure TfEditorElegirDomiciliacion.FormShow(Sender: TObject); +var + AController: IEmpresasController; + ALista : TStringList; + AListaIBAN : TStringList; + i : integer; + +begin + AController := TEmpresasController.Create; + try + ALista := AController.DarListaCuentasBancarias(AppFactuGES.EmpresaActiva); + AListaIBAN := AController.DarListaCuentasBancariasIBAN(AppFactuGES.EmpresaActiva); + + try + with cbCuentaBancaria.Properties.Items do + begin + BeginUpdate; + try + Clear; + Add(''); + for i := 0 to ALista.Count - 1 do + Add(ALista.Names[i]); + + if AListaIBAN.Count > 0 then + begin + Add('--------------'); + for i := 0 to AListaIBAN.Count - 1 do + Add(AListaIBAN.Names[i]); + end; + finally + EndUpdate; + end; + end; + finally + FreeANDNIL(ALista); + FreeANDNIL(AListaIBAN); + end; + finally + AController := NIL; + end; + + cbCuentaBancaria.ItemIndex := 0; +end; + +function TfEditorElegirDomiciliacion.GetCuentaBancaria: String; +begin + Result := cbCuentaBancaria.EditValue; +end; + +procedure TfEditorElegirDomiciliacion.SetCuentaBancaria(const Value: String); +begin + cbCuentaBancaria.ItemIndex := cbCuentaBancaria.Properties.Items.IndexOfName(Value); +end; + + +end. diff --git a/Source/Modulos/Facturas de proveedor/Views/uEditorFacturaProveedor.dcu b/Source/Modulos/Facturas de proveedor/Views/uEditorFacturaProveedor.dcu new file mode 100644 index 0000000..3e498e4 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Views/uEditorFacturaProveedor.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Views/uEditorFacturaProveedor.dfm b/Source/Modulos/Facturas de proveedor/Views/uEditorFacturaProveedor.dfm new file mode 100644 index 0000000..0a25baf --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uEditorFacturaProveedor.dfm @@ -0,0 +1,726 @@ +inherited fEditorFacturaProveedor: TfEditorFacturaProveedor + Left = 454 + Top = 208 + Caption = 'Nueva factura de proveedor' + ClientHeight = 633 + ClientWidth = 819 + Position = poScreenCenter + OnClose = CustomEditorClose + ExplicitWidth = 827 + ExplicitHeight = 667 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 819 + Caption = 'Nueva factura de proveedor' + ExplicitWidth = 819 + inherited Image1: TImage + Left = 686 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000001BE4944415478DA63FCFFFF3F + 032D0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80F83F980601 + EBC07C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3C275FB19E6 + 2DDD84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD97890B005D87C + 802E06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9E0FF3F6058 + 03F11FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F18E70860DBB + 4E106701CCDBA480075B431936EF3D459C05F8520E3600D2B3A8508F61EB81D3 + C45B802BA86096C3E4616AE7E7EB32EC387486763E989DA3CDB0E7E839DAF960 + 46A626C3FE131768E783A969EA0C874E5FC26F4184A729387792E3838929AA0C + C7CE5EC16F41A89B09387792E3839E042586D317AFE3B720C8D988C1ADFA0859 + 1674C62A309CBB7213BF057E8E060C5EB5C7F01A06B27CC1913F707E820D0BD8 + 82B62839868BD76FE3B7C0DB4E0F5EAEC0CA1850D9032BF393275FC1881F18BF + 394296E1CACD3BF82DF0B0D6C16938884E9B760D6BF0116D818BA5164EC34116 + 67CDB88133E888B2C0DE541D6CD8BFBF88621966E1BFFFFFB1061F322068818D + 912AB844A404E0B5A077CA428A0C8701980500619929EF09CFCE420000000049 + 454E44AE426082} + ExplicitLeft = 742 + end + inherited lblDesbloquear: TcxLabel + Left = 721 + ExplicitLeft = 721 + AnchorX = 766 + AnchorY = 14 + end + end + inherited TBXDock: TTBXDock + Width = 819 + ExplicitWidth = 819 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 330 + inherited TBXItem2: TTBXItem + Visible = False + end + inherited TBXSeparatorItem1: TTBXSeparatorItem + Visible = False + end + inherited TBXItem5: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 819 + inherited TBXSubmenuItem4: TTBXSubmenuItem + inherited TBXItem8: TTBXItem + Visible = False + end + inherited TBXSeparatorItem5: TTBXSeparatorItem + Visible = False + end + inherited TBXItem10: TTBXItem + Visible = False + end + end + end + end + inherited pgPaginas: TPageControl + Width = 813 + Height = 362 + ActivePage = pagContenido + OnChanging = pgPaginasChanging + ExplicitWidth = 813 + ExplicitHeight = 362 + inherited pagGeneral: TTabSheet + ExplicitLeft = 4 + ExplicitTop = 24 + ExplicitWidth = 805 + ExplicitHeight = 334 + inline frViewFacturaProveedor1: TfrViewFacturaProveedor + Left = 0 + Top = 0 + Width = 805 + Height = 334 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 805 + ExplicitHeight = 334 + inherited dxLayoutControl1: TdxLayoutControl + Width = 805 + Height = 334 + ExplicitWidth = 805 + ExplicitHeight = 334 + inherited eReferencia: TcxDBTextEdit + Properties.ReadOnly = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 242 + Width = 242 + end + inherited edtFecha: TcxDBDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 242 + Width = 242 + end + inherited memObservaciones: TcxDBMemo + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 356 + ExplicitHeight = 161 + Height = 161 + Width = 356 + end + inherited cbFormaPago: TcxDBLookupComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 104 + Width = 104 + end + inherited bFormasPago: TButton + Left = 251 + ExplicitLeft = 251 + end + inherited eReferenciaProveedor: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 242 + Width = 242 + end + inherited frViewProveedorFactura: TfrViewDatosYSeleccionProveedor + Left = 411 + Width = 377 + ExplicitLeft = 411 + ExplicitWidth = 377 + inherited dxLayoutControl1: TdxLayoutControl + Width = 377 + ExplicitWidth = 377 + inherited edtlNombre: TcxDBTextEdit + DataBinding.DataSource = frViewFacturaProveedor1.DADataSource + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 303 + Width = 303 + end + inherited edtNIFCIF: TcxDBTextEdit + DataBinding.DataSource = frViewFacturaProveedor1.DADataSource + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 303 + Width = 303 + end + inherited edtCalle: TcxDBTextEdit + DataBinding.DataSource = frViewFacturaProveedor1.DADataSource + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 303 + Width = 303 + end + inherited edtPoblacion: TcxDBTextEdit + DataBinding.DataSource = frViewFacturaProveedor1.DADataSource + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 185 + Width = 185 + end + inherited edtProvincia: TcxDBTextEdit + DataBinding.DataSource = frViewFacturaProveedor1.DADataSource + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 303 + Width = 303 + end + inherited edtCodigoPostal: TcxDBTextEdit + Left = 280 + DataBinding.DataSource = frViewFacturaProveedor1.DADataSource + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 280 + end + inherited Button3: TBitBtn + Left = 164 + ExplicitLeft = 164 + end + end + end + inherited cbCuentaBancaria: TcxDBComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 165 + Width = 165 + end + inherited edtFechaVencimiento: TcxDBDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 251 + Width = 251 + end + end + end + end + object pagContenido: TTabSheet + Caption = 'Contenido' + ImageIndex = 1 + inline frViewDetallesFacturaProveedor1: TfrViewDetallesFacturaProveedor + Left = 0 + Top = 0 + Width = 805 + Height = 334 + Align = alClient + BiDiMode = bdLeftToRight + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentBiDiMode = False + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 805 + ExplicitHeight = 334 + inherited ToolBar1: TToolBar + Width = 805 + Height = 51 + ExplicitWidth = 805 + ExplicitHeight = 51 + inherited ToolButton3: TToolButton + Wrap = False + end + inherited ToolButton4: TToolButton + Left = 278 + Top = 0 + ExplicitLeft = 278 + ExplicitTop = 0 + end + inherited ToolButton14: TToolButton [4] + Left = 334 + Top = 0 + ExplicitLeft = 334 + ExplicitTop = 0 + end + inherited FontName: TJvFontComboBox [5] + Left = 399 + Top = 0 + ExplicitLeft = 399 + ExplicitTop = 0 + end + inherited FontSize: TEdit + Left = 544 + Top = 0 + Width = 200 + ExplicitLeft = 544 + ExplicitTop = 0 + ExplicitWidth = 200 + end + inherited ToolButton13: TToolButton [7] + Left = 0 + Top = 0 + Wrap = True + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitHeight = 27 + end + inherited UpDown1: TUpDown [8] + Left = 0 + Top = 27 + ExplicitLeft = 0 + ExplicitTop = 27 + end + inherited ToolButton6: TToolButton [9] + Left = 17 + Top = 27 + ExplicitLeft = 17 + ExplicitTop = 27 + end + inherited ToolButton7: TToolButton [10] + Left = 83 + Top = 27 + ExplicitLeft = 83 + ExplicitTop = 27 + end + inherited ToolButton8: TToolButton [11] + Left = 150 + Top = 27 + ExplicitLeft = 150 + ExplicitTop = 27 + end + inherited ToolButton12: TToolButton [12] + Left = 233 + Top = 27 + ExplicitLeft = 233 + ExplicitTop = 27 + ExplicitHeight = 22 + end + inherited ToolButton9: TToolButton [13] + Left = 241 + Top = 27 + ExplicitLeft = 241 + ExplicitTop = 27 + end + inherited ToolButton10: TToolButton [14] + Left = 386 + Top = 27 + ExplicitLeft = 386 + ExplicitTop = 27 + end + inherited ToolButton11: TToolButton [15] + Left = 511 + Top = 27 + ExplicitLeft = 511 + ExplicitTop = 27 + end + end + inherited cxGrid: TcxGrid + Top = 77 + Width = 805 + Height = 257 + ExplicitTop = 77 + ExplicitWidth = 805 + ExplicitHeight = 257 + end + inherited TBXDock1: TTBXDock + Top = 51 + Width = 805 + ExplicitTop = 51 + ExplicitWidth = 805 + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 805 + end + end + inherited cxGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewDetallesFacturaProveedor1.cxGridView + HitTypes = [gvhtCell] + Index = 0 + end + item + HitTypes = [] + Index = 1 + end> + end + end + end + object pagPedidos: TTabSheet + Caption = 'Pedidos' + ImageIndex = 2 + TabVisible = False + inline frViewPedidosFacturaProveedor1: TfrViewPedidosFacturaProveedor + Left = 0 + Top = 0 + Width = 805 + Height = 334 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 805 + ExplicitHeight = 334 + inherited cxGrid: TcxGrid + Width = 805 + Height = 309 + ExplicitWidth = 805 + ExplicitHeight = 309 + end + inherited ToolBar1: TToolBar + Width = 805 + ExplicitWidth = 805 + end + end + end + end + inherited StatusBar: TJvStatusBar + Top = 614 + Width = 819 + Panels = < + item + Width = 200 + end> + ExplicitTop = 614 + ExplicitWidth = 819 + end + inline frViewTotales1: TfrViewTotales [4] + Left = 0 + Top = 444 + Width = 819 + Height = 170 + Align = alBottom + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 4 + ReadOnly = False + ExplicitTop = 444 + ExplicitWidth = 819 + ExplicitHeight = 170 + inherited dxLayoutControl1: TdxLayoutControl + Width = 819 + Height = 170 + ExplicitWidth = 819 + ExplicitHeight = 170 + inherited Bevel3: TBevel + Left = 460 + Top = 30 + Height = 122 + ExplicitLeft = 460 + ExplicitTop = 30 + ExplicitHeight = 122 + end + inherited Bevel4: TBevel + Left = 572 + Top = 60 + Width = 186 + ExplicitLeft = 572 + ExplicitTop = 60 + ExplicitWidth = 186 + end + inherited Bevel1: TBevel + Left = 572 + Top = 164 + Width = 73 + ExplicitLeft = 572 + ExplicitTop = 164 + ExplicitWidth = 73 + end + inherited Bevel2: TBevel + Top = 190 + Width = 368 + ExplicitTop = 190 + ExplicitWidth = 368 + end + inherited ImporteDto: TcxDBCurrencyEdit + Top = 57 + Enabled = False + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 57 + ExplicitWidth = 260 + Width = 260 + end + inherited ImporteIVA: TcxDBCurrencyEdit + Left = 643 + Top = 83 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 643 + ExplicitTop = 83 + ExplicitWidth = 163 + Width = 163 + end + inherited ImporteTotal: TcxDBCurrencyEdit + Left = 573 + Top = 137 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 573 + ExplicitTop = 137 + ExplicitWidth = 233 + Width = 233 + end + inherited edtDescuento: TcxDBSpinEdit + Top = 57 + Properties.OnValidate = frViewTotales1edtDescuentoPropertiesValidate + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 57 + end + inherited edtIVA: TcxDBSpinEdit + Left = 572 + Top = 83 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 572 + ExplicitTop = 83 + end + inherited ImporteBase: TcxDBCurrencyEdit + Left = 572 + Top = 30 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 572 + ExplicitTop = 30 + ExplicitWidth = 234 + Width = 234 + end + inherited edtRE: TcxDBSpinEdit + Left = 572 + Top = 110 + Properties.AssignedValues.MinValue = True + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 572 + ExplicitTop = 110 + end + inherited ImporteRE: TcxDBCurrencyEdit + Left = 643 + Top = 110 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 643 + ExplicitTop = 110 + ExplicitWidth = 163 + Width = 163 + end + inherited eImporteNeto: TcxDBCurrencyEdit + Top = 30 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 30 + ExplicitWidth = 331 + Width = 331 + end + inherited ePorte: TcxDBCurrencyEdit + Top = 84 + DataBinding.DataSource = dsDataTable + Properties.OnValidate = frViewTotales1ePortePropertiesValidate + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + OnEditing = frViewTotales1ePorteEditing + ExplicitTop = 84 + ExplicitWidth = 331 + Width = 331 + end + inherited eIVA: TcxDBLookupComboBox + Top = 111 + Properties.OnValidate = frViewTotales1eIVAPropertiesValidate + Style.Color = clInfoBk + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 111 + ExplicitWidth = 193 + Width = 193 + end + inherited bTiposIVA: TButton + Left = 312 + Top = 111 + OnClick = frViewTotales1bTiposIVAClick + ExplicitLeft = 312 + ExplicitTop = 111 + end + inherited cbRecargoEquivalencia: TcxDBCheckBox + Top = 138 + Properties.OnEditValueChanged = frViewTotales1cbRecargoEquivalenciaPropertiesEditValueChanged + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 138 + ExplicitWidth = 331 + Width = 331 + end + inherited edtRetencion: TcxDBSpinEdit + Left = 572 + Top = 184 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 572 + ExplicitTop = 184 + end + inherited edtImporteRetencion: TcxDBCurrencyEdit + Left = 643 + Top = 184 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 643 + ExplicitTop = 184 + ExplicitWidth = 180 + Width = 180 + end + inherited edtFechaRetencion: TcxDBDateEdit + Top = 210 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 210 + ExplicitWidth = 280 + Width = 280 + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + LookAndFeel = frViewFacturaProveedor1.dxLayoutOfficeLookAndFeel1 + inherited dxLayoutControl1Group1: TdxLayoutGroup + inherited dxLayoutControl1Group2: TdxLayoutGroup + inherited dxLayoutControl1Group7: TdxLayoutGroup + inherited dxLayoutControl1Item9: TdxLayoutItem + Visible = False + end + end + inherited dxLayoutControl1Item16: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Item19: TdxLayoutItem + Visible = False + end + end + inherited dxLayoutControl1Group5: TdxLayoutGroup + inherited dxLayoutControl1Group3: TdxLayoutGroup + inherited dxLayoutControl1Item14: TdxLayoutItem + Offsets.Bottom = 3 + Offsets.Top = 3 + end + inherited dxLayoutControl1Group8: TdxLayoutGroup + Visible = False + inherited dxLayoutControl1Item7: TdxLayoutItem + Visible = True + end + end + inherited dxLayoutControl1Item10: TdxLayoutItem + Visible = False + end + end + end + end + end + end + end + inherited EditorActionList: TActionList [5] + Left = 8 + Top = 144 + inherited actPrevisualizar: TAction + Enabled = False + Visible = False + end + inherited actImprimir: TAction + Enabled = False + Visible = False + end + end + inherited SmallImages: TPngImageList [6] + end + inherited LargeImages: TPngImageList [7] + end + inherited JvFormStorage: TJvFormStorage [8] + end + inherited dsDataTable: TDADataSource [10] + end +end diff --git a/Source/Modulos/Facturas de proveedor/Views/uEditorFacturaProveedor.pas b/Source/Modulos/Facturas de proveedor/Views/uEditorFacturaProveedor.pas new file mode 100644 index 0000000..49b85b4 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uEditorFacturaProveedor.pas @@ -0,0 +1,424 @@ +unit uEditorFacturaProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorDBItem, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, + TB2Toolbar, ExtCtrls, JvExControls, JvNavigationPane, + uCustomView, uViewBase, uViewTotales, + StdCtrls, pngimage, AppEvnts, JvComponentBase, + uBizFacturasProveedor, uIEditorFacturaProveedor, uFacturasProveedorController, uViewDetallesBase, + dxLayoutLookAndFeels, JvExComCtrls, JvStatusBar, uBizTiposIVA, + uViewDetallesDTO, uViewDetallesArticulos, uTiposIVAController, + uViewDetallesFacturaProveedor, uViewFacturaProveedor, uDAInterfaces, + uViewDetallesGenerico, uViewPedidosFacturaProveedor, cxControls, cxContainer, + cxEdit, cxLabel; + + +type + TfEditorFacturaProveedor = class(TfEditorDBItem, IEditorFacturaProveedor) + frViewTotales1: TfrViewTotales; + frViewFacturaProveedor1: TfrViewFacturaProveedor; + frViewDetallesFacturaProveedor1: TfrViewDetallesFacturaProveedor; + pagPedidos: TTabSheet; + frViewPedidosFacturaProveedor1: TfrViewPedidosFacturaProveedor; + procedure FormShow(Sender: TObject); + procedure frViewProveedorFactura1edtlNombrePropertiesEditValueChanged( + Sender: TObject); + procedure dsDataTableDataChange(Sender: TObject; Field: TField); + procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); + procedure frViewProveedorFacturaedtlNombrePropertiesChange(Sender: TObject); + procedure pgPaginasChanging(Sender: TObject; var AllowChange: Boolean); + procedure frViewTotales1edtDescuentoPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure frViewTotales1bTiposIVAClick(Sender: TObject); + procedure frViewTotales1eIVAPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure frViewTotales1cbRecargoEquivalenciaPropertiesEditValueChanged(Sender: TObject); + procedure frViewTotales1ePortePropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure frViewTotales1ePorteEditing(Sender: TObject; var CanEdit: Boolean); + + private + procedure RecalcularPortePorUnidad; + + protected + FController : IFacturasProveedorController; + FFactura: IBizFacturaProveedor; + FViewFactura: IViewFacturaProveedor; + FTiposIVAController : ITiposIVAController; + FTiposIVA: IBizTipoIVA; + function GetController : IFacturasProveedorController; + procedure SetController (const Value : IFacturasProveedorController); + function GetFactura: IBizFacturaProveedor; + procedure SetFactura(const Value: IBizFacturaProveedor); + + function GetViewFactura: IViewFacturaProveedor; + procedure SetViewFactura(const Value: IViewFacturaProveedor); + + property ViewFacturaProveedor: IViewFacturaProveedor read GetViewFactura write SetViewFactura; + + procedure OnProveedorChanged(Sender: TObject); + + procedure GuardarInterno; override; + procedure EliminarInterno; override; + procedure ImprimirInterno; override; + procedure PrevisualizarInterno; override; + + procedure PonerTitulos(const ATitulo: string = ''); override; + public + destructor Destroy; override; + property Controller : IFacturasProveedorController read GetController write SetController; + property Factura: IBizFacturaProveedor read GetFactura write SetFactura; + constructor Create(AOwner: TComponent); override; + end; + +implementation +{$R *.dfm} + +uses + cxDBEdit, uBizContactos, uDataModuleUsuarios, uFactuGES_App, + uDetallesFacturaProveedorController, uDialogUtils, uDataTableUtils, + uGenerarAlbaranesProvFacProvUtils; + + +{ TfEditorFacturaProveedor } + +{ +**************************** TfEditorFacturaProveedor **************************** +} +constructor TfEditorFacturaProveedor.Create(AOwner: TComponent); +begin + inherited; + pgPaginas.ActivePageIndex := 0; + ViewFacturaProveedor := frViewFacturaProveedor1; + FTiposIVAController := TTiposIVAController.Create; +end; + +procedure TfEditorFacturaProveedor.CustomEditorClose(Sender: TObject; + var Action: TCloseAction); +begin + inherited; + dsDataTable.DataTable := NIL; + frViewTotales1.DADataSource.DataTable := NIL; + + FTiposIVA := NIL; + FTiposIVAController := Nil; + FController := NIL; + FViewFactura := NIL; + Factura := NIL; +end; + +destructor TfEditorFacturaProveedor.Destroy; +begin + inherited; +end; + +procedure TfEditorFacturaProveedor.dsDataTableDataChange(Sender: TObject; + Field: TField); +begin + inherited; + if Assigned(FFactura) and (not (FFactura.DataTable.Fetching) or + not (FFactura.DataTable.Opening) or not (FFactura.DataTable.Closing)) then + PonerTitulos; +end; + +procedure TfEditorFacturaProveedor.EliminarInterno; +var + AMensaje : String; +begin + if FFactura.TIPO = CTE_TIPO_ABONO then + AMensaje := 'Desea borrar esta factura de proveedor?' + else + AMensaje := 'Desea borrar este abono de proveedor?'; + + if (Application.MessageBox(PChar(AMensaje), 'Atencin', MB_YESNO) = IDYES) then + begin + //Es el caso de querer borrar una factura pendiente cuyos recibos tienen devoluciones + if not FController.Eliminar(Factura) then + Application.MessageBox('La factura no ha podido ser eliminada porque tiene recibos con pagos o devoluciones emitidas.', 'Atencin', MB_OK); + inherited; + end; +end; + +procedure TfEditorFacturaProveedor.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(FViewFactura) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Factura) then + raise Exception.Create('No hay ninguna factura asignada'); + + Factura.DataTable.Active := True; +end; + +procedure TfEditorFacturaProveedor.frViewProveedorFactura1edtlNombrePropertiesEditValueChanged(Sender: TObject); +begin + inherited; + with (Sender as TcxDBTextEdit) do + Enabled := (FFactura.ID <> 0) +end; + +procedure TfEditorFacturaProveedor.frViewProveedorFacturaedtlNombrePropertiesChange( + Sender: TObject); +begin + inherited; + PonerTitulos; +end; + +procedure TfEditorFacturaProveedor.frViewTotales1bTiposIVAClick(Sender: TObject); +begin + inherited; + FTiposIVAController.VerTodos(FTiposIVA); +end; + +procedure TfEditorFacturaProveedor.frViewTotales1cbRecargoEquivalenciaPropertiesEditValueChanged( + Sender: TObject); +begin + inherited; +{ if frViewTotales1.cbRecargoEquivalencia.Checked then + Factura.RECARGO_EQUIVALENCIA := 1 + else + Factura.RECARGO_EQUIVALENCIA := 0;} +end; + +procedure TfEditorFacturaProveedor.frViewTotales1edtDescuentoPropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + Factura.DESCUENTO := DisplayValue; +end; + +procedure TfEditorFacturaProveedor.frViewTotales1eIVAPropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + Factura.Edit; + Factura.ID_TIPO_IVA := FTiposIVA.ID; //((frViewTotales1.dsTiposIVA.DataTable) as IBizTipoIVA).ID; +end; + +procedure TfEditorFacturaProveedor.frViewTotales1ePorteEditing(Sender: TObject; var CanEdit: Boolean); +begin + inherited; + if FFactura.TIPO = CTE_TIPO_ABONO then + CanEdit := False; +end; + +procedure TfEditorFacturaProveedor.frViewTotales1ePortePropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + if (not VarIsNull(DisplayValue)) and (length(DisplayValue) > 0) then + FFactura.IMPORTE_PORTE := DisplayValue + else + FFactura.IMPORTE_PORTE := 0; + + RecalcularPortePorUnidad; +end; + +function TfEditorFacturaProveedor.GetController: IFacturasProveedorController; +begin + Result := FController; +end; + +function TfEditorFacturaProveedor.GetFactura: IBizFacturaProveedor; +begin + Result := FFactura; +end; + +function TfEditorFacturaProveedor.GetViewFactura: IViewFacturaProveedor; +begin + Result := FViewFactura; +end; + +procedure TfEditorFacturaProveedor.GuardarInterno; +var + bEsNuevo : Boolean; +begin + inherited; + + ShowHourglassCursor; + //frViewDetallesFacturaProveedor1.SaveGridStatus; // Para guardar estado del grid + frViewDetallesFacturaProveedor1.BeginUpdate; // Para que no se mueva el foco + try + bEsNuevo := FFactura.EsNuevo; + + FController.Guardar(FFactura); + finally + frViewDetallesFacturaProveedor1.EndUpdate; + //frViewDetallesFacturaProveedor1.RestoreGridStatus; + HideHourglassCursor; + end; + + if bEsNuevo then + begin + if FFactura.TIPO = CTE_TIPO_FACTURA then + ShowInfoMessage('La factura se ha dado de alta con el cdigo ' + FFactura.REFERENCIA) + else + begin + ShowInfoMessage('El abono se ha dado de alta con el cdigo ' + FFactura.REFERENCIA); + //Preguntamos is desea hacer una orden de devolucin asociada + if (Application.MessageBox('Desea crear una orden de devolucin para el abono?', 'Atencin', MB_YESNO) = IDYES) then + GenerarAlbaranProv(FFactura); + end; + end; + Modified := False; +end; + +procedure TfEditorFacturaProveedor.ImprimirInterno; +begin +{ + inherited; + FController.Print(FFactura); +} +end; + +procedure TfEditorFacturaProveedor.OnProveedorChanged(Sender: TObject); +var + FDetallesController : IDetallesFacturaProveedorController; +begin + FFactura.Proveedor := frViewFacturaProveedor1.frViewProveedorFactura.Proveedor; + + if not (FFactura.DataTable.State in dsEditModes) then + FFactura.DataTable.Edit; + + // Actualizar IVA y RE a partir del tipo de IVA del proveedor. + Factura.IVA := FTiposIVA.IVA; //((frViewTotales1.dsTiposIVA.DataTable) as IBizTipoIVA).IVA; +// if FFactura.Proveedor.RECARGO_EQUIVALENCIA = 1 then +// Factura.RE := ((frViewTotales1.dsTiposIVA.DataTable) as IBizTipoIVA).RE +// else +// Factura.RE := 0; + + // Si la factura tiene detalles hay que mirar si los descuentos y otros campos + // para los artculos hay que cambiarlos. + if (FFactura.Detalles.RecordCount > 0) then + FController.DetallesController.ActualizarDetalles(FFactura.Detalles, FFactura.Proveedor); + + // Si la factura tiene pedidos asociados hay que mirar si pertenecen al proveedor seleccionado si no es as se eliminan +// if (FFactura.Pedidos.RecordCount > 0) then +// begin +// showmessage('Comprobar si los pedidos pertenecen al nuevo proveedor'); +// end; +end; + +procedure TfEditorFacturaProveedor.pgPaginasChanging(Sender: TObject; + var AllowChange: Boolean); +var + AMensaje : String; +begin + inherited; + if (not Assigned(FFactura)) or (FFactura.ID_PROVEEDOR = ID_NULO) then + begin + if FFactura.TIPO = CTE_TIPO_FACTURA then + AMensaje := 'Antes debe elegir un proveedor para esta factura' + else + AMensaje := 'Antes debe elegir un proveedor para este abono'; + ShowWarningMessage(AMensaje); + AllowChange := False; + end; +end; + +procedure TfEditorFacturaProveedor.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := ATitulo; + if (FTitulo = '') and Assigned(Factura) then + begin + if Factura.EsNuevo then + if Factura.TIPO = CTE_TIPO_FACTURA then + FTitulo := 'Nueva factura de proveedor' + else + FTitulo := 'Nuevo abono de proveedor' + else + if Factura.TIPO = CTE_TIPO_FACTURA then + FTitulo := 'Factura de proveedor' + ' - ' + FFactura.Proveedor.Nombre + else + FTitulo := 'Abono de proveedor' + ' - ' + FFactura.Proveedor.Nombre + end; + + inherited PonerTitulos(FTitulo); + + Self.Caption := FTitulo + ' (' + AppFactuGES.EmpresaActiva.NOMBRE + ')'; +end; + +procedure TfEditorFacturaProveedor.PrevisualizarInterno; +begin +{ + inherited; + FController.Preview(FFactura); +} +end; + +procedure TfEditorFacturaProveedor.RecalcularPortePorUnidad; +begin + //Esta lgica se llamar en el editor porque es para facilitar el rellenado de informacin del documento + //no puede ir en la clase de negocio porque no es una lgica que tenga sentido fuera del editor. + if Assigned(Controller) + and Assigned(Controller.DetallesController) then + Controller.DetallesController.DesglosarPorteDetalles(FFactura.IMPORTE_PORTE, FFactura.Detalles) +end; + +procedure TfEditorFacturaProveedor.SetController(const Value: IFacturasProveedorController); +begin + FController := Value; + + if Assigned(FController) then + begin + ViewFacturaProveedor.Controller := Controller; + frViewDetallesFacturaProveedor1.Controller := Controller.DetallesController; + end; +end; + +procedure TfEditorFacturaProveedor.SetFactura(const Value: IBizFacturaProveedor); +begin + FFactura := Value; + + if Assigned(FFactura) then + begin + dsDataTable.DataTable := FFactura.DataTable; + + frViewTotales1.DADataSource.DataTable := FFactura.DataTable; + + FTiposIVA := FTiposIVAController.BuscarTodos; + frViewTotales1.dsTiposIVA.DataTable := FTiposIVA.DataTable; + FTiposIVA.DataTable.Active := True; + + if Assigned(FViewFactura) then + begin + frViewFacturaProveedor1.frViewProveedorFactura.Proveedor := FFactura.Proveedor; + frViewFacturaProveedor1.frViewProveedorFactura.OnProveedorChanged := OnProveedorChanged; + + FViewFactura.Factura := FFactura; + frViewPedidosFacturaProveedor1.Pedidos := FFactura.Pedidos; + frViewDetallesFacturaProveedor1.Detalles := FFactura.Detalles; + frViewDetallesFacturaProveedor1.Factura := FFactura; //Para poder sacar los descuento del articulos segun el proveedor seleccionado + end; + end + else begin + frViewFacturaProveedor1.frViewProveedorFactura.OnProveedorChanged := NIL; + frViewFacturaProveedor1.frViewProveedorFactura.Proveedor := NIL; + dsDataTable.DataTable := NIL; + frViewTotales1.DADataSource.DataTable := NIL; + frViewTotales1.dsTiposIVA.DataTable := NIL; + end +end; + +procedure TfEditorFacturaProveedor.SetViewFactura(const Value: IViewFacturaProveedor); +begin + FViewFactura := Value; + + if Assigned(FViewFactura) and Assigned(Factura) then + FViewFactura.Factura := Factura; +end; + +end. + \ No newline at end of file diff --git a/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedor.dcu b/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedor.dcu new file mode 100644 index 0000000..340e2b1 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedor.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedor.dfm b/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedor.dfm new file mode 100644 index 0000000..43d0428 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedor.dfm @@ -0,0 +1,4318 @@ +inherited fEditorFacturasProveedor: TfEditorFacturasProveedor + Caption = 'Lista de facturas de proveedor' + ClientHeight = 666 + ClientWidth = 849 + ExplicitWidth = 857 + ExplicitHeight = 700 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 849 + Caption = 'Lista de facturas de proveedor' + ExplicitWidth = 849 + inherited Image1: TImage + Left = 822 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000001BE4944415478DA63FCFFFF3F + 032D0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80F83F980601 + EBC07C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3C275FB19E6 + 2DDD84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD97890B005D87C + 802E06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9E0FF3F6058 + 03F11FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F18E70860DBB + 4E106701CCDBA480075B431936EF3D459C05F8520E3600D2B3A8508F61EB81D3 + C45B802BA86096C3E4616AE7E7EB32EC387486763E989DA3CDB0E7E839DAF960 + 46A626C3FE131768E783A969EA0C874E5FC26F4184A729387792E3838929AA0C + C7CE5EC16F41A89B09387792E3839E042586D317AFE3B720C8D988C1ADFA0859 + 1674C62A309CBB7213BF057E8E060C5EB5C7F01A06B27CC1913F707E820D0BD8 + 82B62839868BD76FE3B7C0DB4E0F5EAEC0CA1850D9032BF393275FC1881F18BF + 394296E1CACD3BF82DF0B0D6C16938884E9B760D6BF0116D818BA5164EC34116 + 67CDB88133E888B2C0DE541D6CD8BFBF88621966E1BFFFFFB1061F322068818D + 912AB844A404E0B5A077CA428A0C8701980500619929EF09CFCE420000000049 + 454E44AE426082} + ExplicitLeft = 613 + end + end + inherited TBXDock: TTBXDock + Width = 849 + ExplicitWidth = 849 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 775 + object TBXSubmenuItem2: TTBXSubmenuItem [0] + Caption = 'Nuevo' + DisplayMode = nbdmImageAndText + ImageIndex = 22 + object TBXItem39: TTBXItem + Action = actNuevaFactura + Caption = 'Nueva factura...' + DisplayMode = nbdmImageAndText + end + object TBXItem38: TTBXItem + Action = actNuevoAbono + Caption = 'Nuevo abono...' + DisplayMode = nbdmImageAndText + end + end + inherited TBXItem2: TTBXItem + Visible = False + end + end + inherited tbxFiltro: TTBXToolbar + ExplicitWidth = 427 + inherited lblAno: TTBXLabelItem + Visible = True + end + inherited cbxListaAnos: TTBXComboBoxItem + Visible = True + end + inherited sepAno: TTBXSeparatorItem + Visible = True + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 849 + end + inherited TBXTMain2: TTBXToolbar + Left = 427 + Visible = True + ExplicitLeft = 427 + ExplicitWidth = 179 + object TBXItem41: TTBXItem + Action = actDomiciliacion + end + object TBXSeparatorItem17: TTBXSeparatorItem + end + object TBXItem40: TTBXItem + Action = actInformes + end + end + end + inherited StatusBar: TJvStatusBar + Top = 647 + Width = 849 + ExplicitTop = 647 + ExplicitWidth = 849 + end + inline frViewFacturasProveedor1: TfrViewFacturasProveedor [3] + Left = 0 + Top = 102 + Width = 849 + Height = 545 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 102 + ExplicitWidth = 849 + ExplicitHeight = 545 + inherited cxGrid: TcxGrid + Width = 849 + Height = 417 + ExplicitWidth = 849 + ExplicitHeight = 417 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Position = spFooter + Column = frViewFacturasProveedor1.cxGridViewIMPORTE_TOTAL + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Position = spFooter + Column = frViewFacturasProveedor1.cxGridViewBASE_IMPONIBLE + end> + DataController.Summary.FooterSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = frViewFacturasProveedor1.cxGridViewIMPORTE_TOTAL + end + item + Format = '0 facturas' + Kind = skCount + Column = frViewFacturasProveedor1.cxGridViewREFERENCIA + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = frViewFacturasProveedor1.cxGridViewBASE_IMPONIBLE + end> + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 849 + ExplicitWidth = 849 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 849 + inherited dxLayoutControl1: TdxLayoutControl + Width = 849 + ExplicitWidth = 849 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 809 + Width = 809 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 282 + Width = 282 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 386 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 386 + ExplicitWidth = 453 + Width = 453 + end + inherited eLista: TcxComboBox + Left = 876 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 876 + ExplicitWidth = 215 + Width = 215 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 849 + ExplicitWidth = 849 + inherited tbxBotones: TTBXToolbar + Width = 839 + ExplicitWidth = 839 + end + end + end + inherited ActionList1: TActionList + Left = 352 + Top = 64 + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 519 + ExplicitTop = 519 + ExplicitWidth = 849 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 849 + ExplicitWidth = 849 + inherited TBXToolbar1: TTBXToolbar + Width = 839 + ExplicitWidth = 839 + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39211.783604050930000000 + BuiltInReportLink = True + end + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewFacturasProveedor1.cxGridView + HitTypes = [gvhtCell] + Index = 0 + end> + end + end + inherited EditorActionList: TActionList [4] + Left = 136 + Top = 176 + inherited actNuevo: TAction + ImageIndex = 22 + end + inherited actConfPagina: TAction + Visible = False + end + inherited actPrevisualizar: TAction + Visible = True + end + inherited actImprimir: TAction + Visible = True + end + inherited actDuplicar: TAction + Hint = 'Generar una factura nueva a partir de la factura seleccionada' + end + object actNuevaFactura: TAction + Category = 'Archivo' + Caption = 'Factura' + ImageIndex = 23 + OnExecute = actNuevaFacturaExecute + end + object actNuevoAbono: TAction + Category = 'Archivo' + Caption = 'Abono' + ImageIndex = 24 + OnExecute = actNuevoAbonoExecute + end + object actInformes: TAction + Category = 'Acciones' + Caption = 'Informes' + OnExecute = actInformesExecute + end + object actDomiciliacion: TAction + Category = 'Acciones' + Caption = 'Asignar domiciliaci'#243'n' + OnExecute = actDomiciliacionExecute + OnUpdate = actDomiciliacionUpdate + end + end + inherited SmallImages: TPngImageList [5] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001684944415478DA + 63FCFFFF3FC394C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F + 19ACFDF319CEED98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC + 5BBA09D3007CE0D7EFBF609B4178C98683D80D40770136B0AED69461E59623B8 + 0D80391B04FE01E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D + 760CCEE587E03607359F66585A6AC0B069CF49FC06A0DB0CC2207E58FB598685 + 85BA0CDB0E9CC16DC0C15E0706FBE203605B37375A809D0D02209BA3BB2F30CC + C9D566D87DE41C6E0340CE46B7F9E7AF3F6076D2C42B0C53D2D4180E9FBE8C69 + 4046941B8363E94194105F5E6EC810D9791ECC9E99A5C9903EED3A437F920AC3 + 89F357310D480E7386DB08A2435ACF302C2ED687B8049A067266DD62E88A5364 + 387BF906A60171410E280107B3191DB446C9315CBA7E1BD380283F3B147F23DB + FC1BC9E07FFFFE335CB97907D380502F6B86D5DB8E129D13310C0009900A4006 + 00004B6D80F047EC10D30000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000001A14944415478DA639CBC68FB7F06 + 2241EE3E4F38FBFFFCFF8C209A1164404EAC075E8D7FFEFE63F8FDE72F035706 + 1BC38C19090C19190B300DB02DDA0FD770B8CF11857FE4BD139C0D330006F0BA + E0D7EFBF609B79B2D8C11A41E0F5E7CF0CAF3E7D02E395134F6277013A407641 + 6EAD2BC3E4E6DD982E001900723A08FCFBFF9FE1FB8FDF60DB7DEB4F30ACAA34 + 6658BBE31838107D320C18B6CCB8803D0C607EDFDB69C7E05C7E88615DAD2943 + 50F36986A5A5060C9BF69CC41F0B300360B67FFBF18BE1CF9F7F0C61ED671916 + 16EA326C3B708661DED24D0CE7764C6344F61E8A01077B1D18EC8B0F306C6EB4 + 003B1D647374F7058639B9DA0CBB8F9C236C00C8E9207F836CFFFAED17989D34 + F10AC394343586C3A72FE3362023CA8DC1B1F4205C7079B9214364E779869959 + 9A0CE9D3AE33F427A9309C387F15B701C961CE60DB407EF66F3CC9B0B8589FE1 + DB77880B7266DD62E88A5364387BF9066E03E2821CC09A411A425ACF60A483D6 + 2839864BD76FE33620CA0FE277982B40B67F83A60310FEF7EF3FC3959B77701B + 10EA65CDB07ADB51064200A70120096201BA01006B4F3A16F9FB392100000000 + 49454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000001794944415478DA639CBC68FB7F06 + 12404EAC0723329F1164005010AFA63F7FFF31FCFEF397C1DA3F9FE1DC8E69D8 + 0DB02DDA0F173CDCE788C257E977C269385E17FCFAFD176C730E173BC38C8404 + B0D8E7CF9F193E7DFA04C6134F9EC4EE027440940B4006809C0E02FFFEFF67F8 + FEE337D876DFFA130CAB2A8D19D6EE38C6306FE926FC6100F3FBDE4E3B06E7F2 + 430CEB6A4D19829A4F332C2D3560D8B4E7247106C06CFFF6E317C39F3FFF18C2 + DACF322C2CD465D876E00C61030EF63A30D8171F60D8DC6801763AC8E6E8EE0B + 0C7372B519761F3947D80090D341FE06D9FEF5DB2F303B69E2158629696A0C87 + 4F5FC66D4046941B8363E941B8E0F2724386C8CEF30C33B33419D2A75D67E84F + 52613871FE2A6E0392C39CC1B681FCECDF78926171B13EC3B7EF1017E4CCBAC5 + D015A7C870F6F20DDC06C405398035833484B49EC188EBD62839864BD76FE336 + 20CA0FE277982B40B67F83A60310FEF7EF3FC3959B77701B10EA65CDB07ADB51 + 064200A70120096201BA0100A6C62916A56F74520000000049454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end> + Left = 395 + Bitmap = {} + end + inherited LargeImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001BE4944415478DA + 63FCFFFF3F032D0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80 + F83F980601EBC07C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3 + C275FB19E62DDD84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD978 + 90B005D87C802E06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9 + E0FF3F605803F11FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F1 + 8E70860DBB4E106701CCDBA480075B431936EF3D459C05F8520E3600D2B3A850 + 8F61EB81D3C45B802BA86096C3E4616AE7E7EB32EC387486763E989DA3CDB0E7 + E839DAF96046A626C3FE131768E783A969EA0C874E5FC26F4184A729387792E3 + 838929AA0CC7CE5EC16F41A89B09387792E3839E042586D317AFE3B720C8D988 + C1ADFA08591674C62A309CBB7213BF057E8E060C5EB5C7F01A06B27CC1913F70 + 7E820D0BD882B62839868BD76FE3B7C0DB4E0F5EAEC0CA1850D9032BF393275F + C1881F18BF394296E1CACD3BF82DF0B0D6C16938884E9B760D6BF0116D818BA5 + 164EC3411667CDB88133E888B2C0DE541D6CD8BFBF88621966E1BFFFFFB1061F + 322068818D912AB844A404E0B5A077CA428A0C8701980500619929EF09CFCE42 + 0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [7] + end + inherited dsDataTable: TDADataSource [9] + end + inherited StatusBarImages: TPngImageList [10] + end + inherited GridPopupMenu: TPopupMenu + inherited N2: TMenuItem + Visible = False + end + object N4: TMenuItem [8] + Caption = '-' + end + object Cambiarlasituacin1: TMenuItem [9] + Caption = 'Cambiar la situaci'#243'n' + Hint = + 'Cambiar la situaci'#243'n de la factura seleccionada (Pendiente/Pagad' + + 'a)' + end + end + object JsNuevaFacturaDialog: TJSDialog + Content.Strings = ( + #191'C'#243'mo desea dar de alta la factura?') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Nueva factura de proveedor' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Factura nueva vac'#237'a.' + Value = 100 + Default = True + end + item + Caption = 'Utilizar uno o m'#225's pedidos de proveedor' + Value = 200 + Info.Strings = ( + + 'Puede utilizar uno o m'#225's albaranes existentes para dar de alta l' + + 'a factura nueva') + end + item + Caption = 'Utilizar uno o m'#225's albaranes de proveedor.' + Value = 300 + Info.Strings = ( + + 'Puede utilizar uno o m'#225's albaranes existentes para dar de alta l' + + 'a factura nueva.') + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 168 + Top = 144 + end + object JsListaFacturasGeneradas: TJSDialog + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Lista de facturas generadas' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + ButtonBar.Buttons = [cbOK] + ButtonBar.Cancel = cbOK + ButtonBar.UseCancel = False + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 200 + Top = 144 + end + object JsNuevoAbonoDialog: TJSDialog + Content.Strings = ( + #191'C'#243'mo desea dar de alta el abono?') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Nuevo abono de proveedor' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Abono nuevo vac'#237'o.' + Value = 100 + Default = True + end + item + Caption = 'Utilizar la factura de proveedor seleccionada.' + Value = 200 + Info.Strings = ( + + 'Puede utilizar la factura seleccionada para dar de alta el nuevo' + + ' abono.') + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 232 + Top = 144 + end + object JsPrevisualizarDialog: TJSDialog + Content.Strings = ( + 'Elija una opci'#243'n:') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Previsualizar...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Previsualizar la factura/s seleccionada/s' + Value = 100 + Default = True + end + item + Caption = 'Previsualizar la lista de facturas actual' + Value = 200 + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 296 + Top = 144 + end + object JsImprimirDialog: TJSDialog + Content.Strings = ( + 'Elija una opci'#243'n:') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Imprimir...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Imprimir la factura/s seleccionada/s' + Value = 100 + Default = True + end + item + Caption = 'Imprimir la lista de facturas actual' + Value = 200 + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 328 + Top = 144 + end + object JsListaFacturasNoEliminadas: TJSDialog + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = + 'Las siguientes facturas no han podido ser eliminadas, porque tie' + + 'nen recibos con pagos o devoluciones emitidas' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + ButtonBar.Buttons = [cbOK] + ButtonBar.Cancel = cbOK + ButtonBar.UseCancel = False + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 184 + Top = 112 + end + object JSInformesDialog: TJSDialog + Content.Strings = ( + 'Seleccione el informe que desea realizar') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Nuevo informe' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Listado de facturas pendientes.' + Value = 100 + Default = True + end + item + Caption = 'Listado de IVA.' + Value = 200 + end + item + Caption = 'Listado de facturas' + Value = 300 + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 408 + Top = 72 + end + object JsListaFacturasNoModificables: TJSDialog + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = + 'Las siguientes facturas no han podido ser modificadas, porque ti' + + 'enen recibos con pagos o devoluciones emitidas' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + ButtonBar.Buttons = [cbOK] + ButtonBar.Cancel = cbOK + ButtonBar.UseCancel = False + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 224 + Top = 112 + end +end diff --git a/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedor.pas b/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedor.pas new file mode 100644 index 0000000..cec76e4 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedor.pas @@ -0,0 +1,407 @@ +unit uEditorFacturasProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, Menus, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems, + TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, + JvNavigationPane, uViewGrid, pngimage, JvComponentBase, + uEditorGridBase, uBizFacturasProveedor, uIEditorFacturasProveedor, + uFacturasProveedorController, uCustomView, uViewBase, uViewBarraSeleccion, + uViewGridBase, JvExComCtrls, JvStatusBar, JSDialog, + uViewFacturasProveedor, uDAInterfaces; + +type + + TfEditorFacturasProveedor = class(TfEditorGridBase, IEditorFacturasProveedor) + Cambiarlasituacin1: TMenuItem; + N4: TMenuItem; + JsNuevaFacturaDialog: TJSDialog; + JsListaFacturasGeneradas: TJSDialog; + frViewFacturasProveedor1: TfrViewFacturasProveedor; + actNuevaFactura: TAction; + actNuevoAbono: TAction; + JsNuevoAbonoDialog: TJSDialog; + TBXSubmenuItem2: TTBXSubmenuItem; + TBXItem38: TTBXItem; + TBXItem39: TTBXItem; + JsPrevisualizarDialog: TJSDialog; + JsImprimirDialog: TJSDialog; + JsListaFacturasNoEliminadas: TJSDialog; + JSInformesDialog: TJSDialog; + actInformes: TAction; + TBXItem40: TTBXItem; + actDomiciliacion: TAction; + TBXItem41: TTBXItem; + TBXSeparatorItem17: TTBXSeparatorItem; + JsListaFacturasNoModificables: TJSDialog; + procedure FormShow(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + procedure actNuevaFacturaExecute(Sender: TObject); + procedure actNuevoAbonoExecute(Sender: TObject); + procedure actInformesExecute(Sender: TObject); + procedure OnListaAnosChange(Sender: TObject; const Text: string); + procedure actDomiciliacionExecute(Sender: TObject); + procedure actDomiciliacionUpdate(Sender: TObject); + + private + FFacturas: IBizFacturaProveedor; + FController : IFacturasProveedorController; + protected + function GetFacturas: IBizFacturaProveedor; + procedure SetFacturas(const Value: IBizFacturaProveedor); + + function GetController : IFacturasProveedorController; virtual; + procedure SetController (const Value : IFacturasProveedorController); virtual; + + procedure NuevoInterno; override; + procedure EliminarInterno; override; + procedure ModificarInterno; override; + procedure DuplicarInterno; override; + procedure RefrescarInterno; override; + + public + procedure PonerTitulos(const ATitulo: string = ''); override; + property Facturas: IBizFacturaProveedor read GetFacturas write SetFacturas; + property Controller : IFacturasProveedorController read GetController write SetController; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + + +implementation + +uses + uDataModuleFacturasProveedor, uDataModuleUsuarios, cxControls, + uGridStatusUtils, uDBSelectionListUtils, uFactuGES_App, + uAlbaranesProveedorController, uBizAlbaranesProveedor, + uEditorBase, uGenerarFacturasProvAlbProvUtils, uGenerarFacturasProvPedUtils, + uGestorInformesController; + +{$R *.dfm} + +{ +*************************** TfEditorFacturasProveedor *************************** +} +procedure TfEditorFacturasProveedor.actDomiciliacionExecute(Sender: TObject); +var + AFacturas: IBizFacturaProveedor; + AListaFacturasNoModificadas: TStringList; + i: integer; + +begin + inherited; + + ViewGrid.SaveGridStatus; + try + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Facturas as ISeleccionable).SelectedRecords); + AFacturas := (Controller as IFacturasProveedorController).ExtraerSeleccionados(Facturas) as IBizFacturaProveedor; + finally + ViewGrid.RestoreGridStatus; + end; + + AListaFacturasNoModificadas := Controller.AsignarCuentaBancaria(AFacturas); + + JsListaFacturasNoModificables.Content.Clear; + for i := 0 to AListaFacturasNoModificadas.Count - 1 do + JsListaFacturasNoModificables.Content.Add('Ref. factura: ' + AListaFacturasNoModificadas.Names[i] + ' ' + AListaFacturasNoModificadas.Values[AListaFacturasNoModificadas.Names[i]]); + if AListaFacturasNoModificadas.Count > 0 then + JsListaFacturasNoModificables.Execute; + + FreeAndNil(AListaFacturasNoModificadas); + RefrescarInterno; +end; + +procedure TfEditorFacturasProveedor.actDomiciliacionUpdate(Sender: TObject); +begin + inherited; + + if HayDatos and Assigned(ViewGrid) then + (Sender as TAction).Enabled := not (dsDataTable.DataTable.State in dsEditModes) + and ViewGrid.esSeleccionCeldaDatos + and (ViewGrid.NumSeleccionados > 0) + else + (Sender as TAction).Enabled := False; + + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := (FFacturas.SITUACION = CTE_PENDIENTE); +end; + +procedure TfEditorFacturasProveedor.actEliminarUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := (FFacturas.SITUACION = CTE_PENDIENTE); +end; + +procedure TfEditorFacturasProveedor.actInformesExecute(Sender: TObject); +var + Respuesta : Integer; + AGestorInformesController : IGestorInformesController; + +begin + AGestorInformesController := TGestorInformesController.Create; + try + + Respuesta := JsInformesDialog.Execute; + + if Respuesta <> IDCANCEL then + begin + case JsInformesDialog.CustomButtonResult of + 100 : begin // Listado de facturas pendientes + AGestorInformesController.VerInformeListadoFacturasProvPendientes; + end; + 200 : begin // Listado de IVA + AGestorInformesController.VerInformeIVAProveedores; + end; + 300 : begin // Listado de facturas de cliente + AGestorInformesController.VerInformeListadoFacturasProv; + end; + end; + end; + + finally + AGestorInformesController := NIL; + end; +end; + +procedure TfEditorFacturasProveedor.actNuevaFacturaExecute(Sender: TObject); +begin + actNuevo.Execute; +end; + +procedure TfEditorFacturasProveedor.actNuevoAbonoExecute(Sender: TObject); +var + Respuesta : Integer; + Opcion : Integer; +begin + inherited; + //ABONOS + if (Facturas.TIPO = CTE_TIPO_FACTURA) then + begin + Respuesta := JsNuevoAbonoDialog.Execute; + //Nos salimos sin hace nada + if Respuesta = IDCANCEL then + Exit; + Opcion := JsNuevoAbonoDialog.CustomButtonResult; + end + else + Opcion := 100; + + case Opcion of + 200 : begin // Utilizar factura seleccionada + FController.Ver(FController.GenerarAbono(Facturas)); + actRefrescar.Execute; + ViewGrid._FocusedView.DataController.GotoFirst; + end; + 100 : begin // Abono nuevo vacio + if FController.AnadirAbono(Facturas) then + FController.Ver(Facturas); + end; + end; +end; + +constructor TfEditorFacturasProveedor.Create(AOwner: TComponent); +begin + inherited; + + FHeaderText := 'Lista de facturas de proveedor'; + FWindowCaption := FHeaderText; + + ViewGrid := frViewFacturasProveedor1; // CreateView(TfrViewFacturasProveedor) as IViewFacturasProveedor; +end; + +destructor TfEditorFacturasProveedor.Destroy; +begin + FFacturas := NIL; + inherited; +end; + +procedure TfEditorFacturasProveedor.DuplicarInterno; +var + AFactura : IBizFacturaProveedor; +begin + inherited; + AFactura := FController.Duplicar(FFacturas); + try + FController.Ver(AFactura); + finally + actRefrescar.Execute; + end; +end; + +procedure TfEditorFacturasProveedor.EliminarInterno; +var + ACadena : String; + AFacturas: IBizFacturaProveedor; + AllItems: Boolean; +begin + AFacturas := Nil; + AllItems := False; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + if AllItems then + begin + if (Application.MessageBox('¿Desea borrar las facturas/abonos de proveedor seleccionados?', 'Atención', MB_YESNO) = IDYES) then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Facturas as ISeleccionable).SelectedRecords); + AFacturas := (Controller as IFacturasProveedorController).ExtraerSeleccionados(Facturas) as IBizFacturaProveedor; + end + end + else begin + if Facturas.TIPO = CTE_TIPO_FACTURA then + ACadena := '¿Desea borrar esta factura de proveedor?' + else + ACadena := '¿Desea borrar este abono a proveedor?'; + + if (Application.MessageBox(PChar(ACadena), 'Atención', MB_YESNO) = IDYES) then + AFacturas := Facturas; + end; + + if Assigned(AFacturas) then + begin + if (not FController.Eliminar(AFacturas, AllItems)) + and (not AllItems) then //Es el caso de querer borrar una factura pendiente cuyos recibos tienen devoluciones + begin + JsListaFacturasNoEliminadas.Content.Clear; + JsListaFacturasNoEliminadas.Content.Add('Ref. factura: ' + AFacturas.REFERENCIA + ' ' + AFacturas.NOMBRE); + JsListaFacturasNoEliminadas.Execute; + end; + + if AllItems then + begin + if (AFacturas.DataTable.RecordCount > 0) then + begin + with AFacturas.DataTable do + begin + JsListaFacturasNoEliminadas.Content.Clear; + First; + while not EOF do + begin + JsListaFacturasNoEliminadas.Content.Add('Ref. factura: ' + AFacturas.REFERENCIA + ' ' + AFacturas.NOMBRE); + Next; + end; + end; + JsListaFacturasNoEliminadas.Execute; + end; + actRefrescar.Execute; + end; + end; + + ViewGrid.GotoFirst; +end; + +procedure TfEditorFacturasProveedor.FormShow(Sender: TObject); +begin + cbxListaAnos.OnChange := OnListaAnosChange; //OJO SIEMPRE ANTES DEL INHERITED + + inherited; + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Facturas) then + raise Exception.Create('No hay ninguna facturas asignada'); + + Facturas.DataTable.Active := True; + ViewGrid.GotoFirst; +end; + +function TfEditorFacturasProveedor.GetController: IFacturasProveedorController; +begin + Result := FController; +end; + +function TfEditorFacturasProveedor.GetFacturas: IBizFacturaProveedor; +begin + Result := FFacturas; +end; + +procedure TfEditorFacturasProveedor.ModificarInterno; +begin + inherited; + FController.Ver(Facturas); +end; + +procedure TfEditorFacturasProveedor.NuevoInterno; +var + Respuesta : Integer; +begin + inherited; + + Respuesta := JsNuevaFacturaDialog.Execute; + + if Respuesta <> IDCANCEL then + begin + case JsNuevaFacturaDialog.CustomButtonResult of + 100 : begin // Factura nuevo vacio + if FController.Anadir(Facturas) then + FController.Ver(Facturas); + end; + 200 : begin // Utilizar pedidos + GenerarFacturaProvPed; + actRefrescar.Execute; + end; + 300 : begin // Utilizar albaranes + GenerarFacturaProvAlbProv; + actRefrescar.Execute; + end; + end; + end; +end; + +procedure TfEditorFacturasProveedor.OnListaAnosChange(Sender: TObject; const Text: string); +begin + Controller.FiltrarAno(Facturas, DynWhereDataTable, Text); + if Facturas.DataTable.Active then + RefrescarInterno; +end; + +procedure TfEditorFacturasProveedor.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := FWindowCaption + ' - ' + AppFactuGES.EmpresaActiva.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorFacturasProveedor.RefrescarInterno; +begin + //Volvemos a cargar los años de los albaranes + if Assigned(FController) then + ListaAnos := FController.DarListaAnosFacturas; + + inherited; +end; + +procedure TfEditorFacturasProveedor.SetController(const Value: IFacturasProveedorController); +begin + FController := Value; + + if Assigned(FController) then + ListaAnos := FController.DarListaAnosFacturas; +end; + +procedure TfEditorFacturasProveedor.SetFacturas(const Value: IBizFacturaProveedor); +begin + FFacturas := Value; + + if Assigned(FFacturas) then + begin + //Se guarda el where de la sentencia origen, por si el editor tiene filtros que + //afecten a este where y en un futuro se desea volver al where origen (filtro de año)) + DynWhereDataTable := FFacturas.DataTable.DynamicWhere.Xml; + + dsDataTable.DataTable := FFacturas.DataTable; + if Assigned(ViewGrid) then + (ViewGrid as IViewFacturasProveedor).Facturas := Facturas; + end; +end; + +end. + \ No newline at end of file diff --git a/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedorReport.dcu b/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedorReport.dcu new file mode 100644 index 0000000..1a6f291 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedorReport.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedorReport.dfm b/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedorReport.dfm new file mode 100644 index 0000000..11be50c --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedorReport.dfm @@ -0,0 +1,10 @@ +inherited fEditorFacturasProveedorPreview: TfEditorFacturasProveedorPreview + Caption = 'Previsualizar la factura' + PixelsPerInch = 96 + TextHeight = 13 + inherited frxReport1: TfrxReport + Datasets = <> + Variables = <> + Style = <> + end +end diff --git a/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedorReport.pas b/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedorReport.pas new file mode 100644 index 0000000..f8b1126 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedorReport.pas @@ -0,0 +1,26 @@ +unit uEditorFacturasProveedorReport; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorPreview, JvAppStorage, JvAppRegistryStorage, JvComponentBase, + JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, + TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, + ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uIEditorFacturasProveedorPreview, + JvExComCtrls, JvStatusBar; + +type + TfEditorFacturasProveedorPreview = class(TfEditorPreview, IEditorFacturasProveedorPreview) + private + { Private declarations } + public + { Public declarations } + end; + + +implementation + +{$R *.dfm} + +end. diff --git a/Source/Modulos/Facturas de proveedor/Views/uFacturasProveedorViewRegister.dcu b/Source/Modulos/Facturas de proveedor/Views/uFacturasProveedorViewRegister.dcu new file mode 100644 index 0000000..6323791 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Views/uFacturasProveedorViewRegister.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Views/uFacturasProveedorViewRegister.pas b/Source/Modulos/Facturas de proveedor/Views/uFacturasProveedorViewRegister.pas new file mode 100644 index 0000000..2ef7aa8 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uFacturasProveedorViewRegister.pas @@ -0,0 +1,33 @@ +unit uFacturasProveedorViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorFacturasProveedor, uEditorFacturaProveedor, + uEditorElegirDomiciliacion, uEditorElegirArticulosFacturaProveedor, + uEditorFacturasProveedorReport; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorElegirDomiciliacion, 'EditorElegirDomiciliacion'); + EditorRegistry.RegisterClass(TfEditorFacturasProveedor, 'EditorFacturasProveedor'); + EditorRegistry.RegisterClass(TfEditorFacturaProveedor, 'EditorFacturaProveedor'); + EditorRegistry.RegisterClass(TfEditorElegirArticulosFacturaProveedor, 'EditorElegirArticulosFacturaProveedor'); + EditorRegistry.RegisterClass(TfEditorFacturasProveedorPreview, 'EditorFacturasProveedorPreview'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorElegirDomiciliacion); + EditorRegistry.UnRegisterClass(TfEditorFacturasProveedor); + EditorRegistry.UnRegisterClass(TfEditorFacturaProveedor); + EditorRegistry.UnRegisterClass(TfEditorElegirArticulosFacturaProveedor); + EditorRegistry.UnRegisterClass(TfEditorFacturasProveedorPreview); +end; + +end. diff --git a/Source/Modulos/Facturas de proveedor/Views/uViewDetallesFacturaProveedor.dcu b/Source/Modulos/Facturas de proveedor/Views/uViewDetallesFacturaProveedor.dcu new file mode 100644 index 0000000..954fbf8 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Views/uViewDetallesFacturaProveedor.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Views/uViewDetallesFacturaProveedor.dfm b/Source/Modulos/Facturas de proveedor/Views/uViewDetallesFacturaProveedor.dfm new file mode 100644 index 0000000..07e7f88 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uViewDetallesFacturaProveedor.dfm @@ -0,0 +1,130 @@ +inherited frViewDetallesFacturaProveedor: TfrViewDetallesFacturaProveedor + inherited ToolBar1: TToolBar + Height = 73 + ExplicitHeight = 73 + inherited ToolButton3: TToolButton + Wrap = False + end + inherited ToolButton4: TToolButton + Left = 278 + Top = 0 + ExplicitLeft = 278 + ExplicitTop = 0 + end + inherited ToolButton14: TToolButton + Left = 334 + Top = 0 + ExplicitLeft = 334 + ExplicitTop = 0 + end + inherited FontName: TJvFontComboBox + Top = 22 + ExplicitTop = 22 + end + inherited FontSize: TEdit + Top = 22 + ExplicitTop = 22 + end + inherited UpDown1: TUpDown + Top = 22 + ExplicitTop = 22 + end + inherited ToolButton13: TToolButton + Top = 22 + ExplicitTop = 22 + end + inherited ToolButton6: TToolButton + Top = 22 + ExplicitTop = 22 + end + inherited ToolButton7: TToolButton + Top = 22 + ExplicitTop = 22 + end + inherited ToolButton8: TToolButton + Top = 22 + ExplicitTop = 22 + end + inherited ToolButton12: TToolButton + Left = 0 + Top = 22 + Wrap = True + ExplicitLeft = 0 + ExplicitTop = 22 + ExplicitHeight = 27 + end + inherited ToolButton9: TToolButton + Left = 0 + Top = 49 + ExplicitLeft = 0 + ExplicitTop = 49 + end + inherited ToolButton10: TToolButton + Left = 145 + Top = 49 + ExplicitLeft = 145 + ExplicitTop = 49 + end + inherited ToolButton11: TToolButton + Left = 270 + Top = 49 + ExplicitLeft = 270 + ExplicitTop = 49 + end + end + inherited cxGrid: TcxGrid + Top = 99 + Height = 205 + inherited cxGridView: TcxGridDBTableView + inherited cxGridViewREFERENCIA: TcxGridDBColumn + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + Visible = False + end> + Properties.ReadOnly = True + Properties.OnButtonClick = nil + Options.Editing = False + end + inherited cxGridViewREFERENCIA_PROVEEDOR: TcxGridDBColumn + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + Visible = False + end> + Properties.ReadOnly = True + Properties.OnButtonClick = nil + Visible = False + Options.Editing = False + end + inherited cxGridViewREFERENCIA_FABRICANTE: TcxGridDBColumn + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + Visible = False + end> + Properties.ReadOnly = True + Properties.OnButtonClick = nil + Visible = False + Options.Editing = False + end + inherited cxGridViewIMPORTEUNIDAD: TcxGridDBColumn + VisibleForCustomization = False + end + inherited cxGridViewDESCUENTO: TcxGridDBColumn + Visible = True + end + inherited cxGridViewIMPORTENETO: TcxGridDBColumn + Caption = 'Importe coste' + Visible = True + end + end + end + inherited TBXDock1: TTBXDock + Top = 73 + ExplicitTop = 73 + end +end diff --git a/Source/Modulos/Facturas de proveedor/Views/uViewDetallesFacturaProveedor.pas b/Source/Modulos/Facturas de proveedor/Views/uViewDetallesFacturaProveedor.pas new file mode 100644 index 0000000..836e8d4 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uViewDetallesFacturaProveedor.pas @@ -0,0 +1,82 @@ +unit uViewDetallesFacturaProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewDetallesBase, cxStyles, cxCustomData, cxGraphics, cxFilter, + cxData, cxDataStorage, cxEdit, DB, cxDBData, ImgList, PngImageList, + uDADataTable, ActnList, ComCtrls, ToolWin, cxGridLevel, cxClasses, cxControls, + cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + cxGrid, cxImageComboBox, cxTextEdit, cxMaskEdit, cxCheckBox, cxCurrencyEdit, + Grids, DBGrids, StdCtrls, ExtCtrls, cxRichEdit, StdActns, ExtActns, + JvExStdCtrls, JvCombobox, JvColorCombo, TB2Item, TBX, TB2Dock, TB2Toolbar, + uControllerDetallesArticulos, uViewDetallesArticulos, uBizFacturasProveedor, + uDAInterfaces, cxButtonEdit, cxDropDownEdit, + Menus, cxGridCustomPopupMenu, + cxGridPopupMenu, cxEditRepositoryItems; + +type + IViewDetallesFacturaProveedor = interface(IViewDetallesArticulos) + ['{28876F6E-E6EC-4DDA-9023-AE23EB9D6A62}'] + function GetFactura: IBizFacturaProveedor; + procedure SetFactura(const Value: IBizFacturaProveedor); + property Factura: IBizFacturaProveedor read GetFactura write SetFactura; + end; + + TfrViewDetallesFacturaProveedor = class(TfrViewDetallesArticulos, IViewDetallesFacturaProveedor) + protected + FFactura: IBizFacturaProveedor; + function GetFactura: IBizFacturaProveedor; + procedure SetFactura(const Value: IBizFacturaProveedor); + + procedure AnadirArticulosInterno; override; + procedure RellenarArticulosInterno; override; + function AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean; override; + + public + property Factura: IBizFacturaProveedor read GetFactura write SetFactura; + end; + +implementation +{$R *.dfm} + +uses uDetallesFacturaProveedorController; + +{ TfrViewDetallesFacturaProveedor } + +function TfrViewDetallesFacturaProveedor.AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean; +begin + if (Factura.TIPO = CTE_TIPO_ABONO) then + Result := (Controller as IDetallesFacturaProveedorController).AnadirArticulo(Detalles, pReferencia, tProveedor, -1, -1) + else + Result := (Controller as IDetallesFacturaProveedorController).AnadirArticulo(Detalles, pReferencia, tProveedor, -1, -1); +end; + +procedure TfrViewDetallesFacturaProveedor.AnadirArticulosInterno; +begin + if (Factura.TIPO = CTE_TIPO_ABONO) then + (Controller as IDetallesFacturaProveedorController).AnadirArticulos(Detalles, Factura.Proveedor, true, -1) + else + (Controller as IDetallesFacturaProveedorController).AnadirArticulos(Detalles, Factura.Proveedor); +end; + +function TfrViewDetallesFacturaProveedor.GetFactura: IBizFacturaProveedor; +begin + Result := FFactura; +end; + +procedure TfrViewDetallesFacturaProveedor.RellenarArticulosInterno; +begin + if (Factura.TIPO = CTE_TIPO_ABONO) then + (Controller as IDetallesFacturaProveedorController).AnadirArticulos(Detalles, Factura.Proveedor, False, -1) + else + (Controller as IDetallesFacturaProveedorController).AnadirArticulos(Detalles, Factura.Proveedor, False); +end; + +procedure TfrViewDetallesFacturaProveedor.SetFactura(const Value: IBizFacturaProveedor); +begin + FFactura := Value; +end; + +end. diff --git a/Source/Modulos/Facturas de proveedor/Views/uViewElegirArticulosFacturasProveedor.dcu b/Source/Modulos/Facturas de proveedor/Views/uViewElegirArticulosFacturasProveedor.dcu new file mode 100644 index 0000000..0410b94 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Views/uViewElegirArticulosFacturasProveedor.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Views/uViewElegirArticulosFacturasProveedor.dfm b/Source/Modulos/Facturas de proveedor/Views/uViewElegirArticulosFacturasProveedor.dfm new file mode 100644 index 0000000..373e5ad --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uViewElegirArticulosFacturasProveedor.dfm @@ -0,0 +1,56 @@ +inherited frViewElegirArticulosFacturasProveedor: TfrViewElegirArticulosFacturasProveedor + Height = 449 + ExplicitHeight = 449 + inherited cxGrid: TcxGrid + Height = 321 + RootLevelOptions.DetailTabsPosition = dtpTop + OnActiveTabChanged = cxGridActiveTabChanged + ExplicitHeight = 321 + inherited cxGridView: TcxGridDBTableView + inherited cxGridViewPRECIO_PVP_VENTA: TcxGridDBColumn + Visible = False + end + inherited cxGridViewPRECIO_PVP_TOTAL: TcxGridDBColumn + Visible = False + end + end + inherited cxGridLevel: TcxGridLevel + Caption = '' + end + object cxGridLevel1: TcxGridLevel + Caption = 'Generales' + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + inherited TBXDockablePanel1: TTBXDockablePanel + inherited dxLayoutControl1: TdxLayoutControl + inherited edtFechaIniFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 225 + ExplicitLeft = 225 + ExplicitWidth = 121 + Width = 121 + end + inherited eLista: TcxComboBox + Left = 383 + ExplicitLeft = 383 + ExplicitWidth = 322 + Width = 322 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 423 + ExplicitTop = 423 + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39252.442388773150000000 + BuiltInReportLink = True + end + end +end diff --git a/Source/Modulos/Facturas de proveedor/Views/uViewElegirArticulosFacturasProveedor.pas b/Source/Modulos/Facturas de proveedor/Views/uViewElegirArticulosFacturasProveedor.pas new file mode 100644 index 0000000..a4762fb --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uViewElegirArticulosFacturasProveedor.pas @@ -0,0 +1,102 @@ +unit uViewElegirArticulosFacturasProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewArticulos, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxImageComboBox, cxCurrencyEdit, + cxSpinEdit, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, + dxPSCompsProvider, dxPSFillPatterns, dxPSEdgePatterns, ImgList, PngImageList, + cxGridCustomPopupMenu, cxGridPopupMenu, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, + uDADataTable, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, dxPgsDlg, + ActnList, TB2Item, TBX, TB2Toolbar, TBXDkPanels, TB2Dock, uViewFiltroBase, + uBizContactos, uDAInterfaces, uViewArticulosPorProveedor; + +type + IViewElegirArticulosFacturasProveedor = interface(IViewArticulos) + ['{8F2E6451-0A4E-4DF1-908A-62BB5785A150}'] + function GetProveedor: IBizProveedor; + procedure SetProveedor(const Value: IBizProveedor); + property Proveedor: IBizProveedor read GetProveedor write SetProveedor; + end; + + TfrViewElegirArticulosFacturasProveedor = class(TfrViewArticulosPorProveedor, IViewElegirArticulosFacturasProveedor) + cxGridLevel1: TcxGridLevel; + procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel); + procedure CustomViewDestroy(Sender: TObject); + + private + FProveedor: IBizProveedor; + function GetProveedor: IBizProveedor; + procedure SetProveedor(const Value: IBizProveedor); + + //Filtros relativos a la vista + procedure AnadirFiltroProveedor; + + public + property Proveedor: IBizProveedor read GetProveedor write SetProveedor; + procedure AnadirOtrosFiltros; override; + + end; + +implementation +{$R *.dfm} + +procedure TfrViewElegirArticulosFacturasProveedor.AnadirFiltroProveedor; +var + FFiltro : TcxFilterCriteriaItemList; +begin + FFiltro := AddFilterGrid(fboAnd); + + case cxGrid.ActiveLevel.Index of + 0 : if Assigned(FProveedor) then + FFiltro.AddItem(cxGridViewID_PROVEEDOR, foEqual, FProveedor.ID, FProveedor.NOMBRE); + 1 : if Assigned(FProveedor) then + FFiltro.AddItem(cxGridViewID_PROVEEDOR, foEqual, Null, 'ARTICULOS SIN PROVEEDOR'); + end; +end; + +procedure TfrViewElegirArticulosFacturasProveedor.AnadirOtrosFiltros; +begin + inherited; + + AnadirFiltroProveedor; + + //Finalmente activamos el filtro si tenemos algo + if cxGridView.DataController.Filter.IsEmpty + then cxGridView.DataController.Filter.Active := False + else cxGridView.DataController.Filter.Active := True; + cxGrid.ActiveLevel.GridView := cxGridView; +end; + +procedure TfrViewElegirArticulosFacturasProveedor.CustomViewDestroy(Sender: TObject); +begin + FProveedor := Nil; + inherited; +end; + +procedure TfrViewElegirArticulosFacturasProveedor.cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel); +begin + inherited; + RefrescarFiltro; +end; + +function TfrViewElegirArticulosFacturasProveedor.GetProveedor: IBizProveedor; +begin + Result := FProveedor; +end; + +procedure TfrViewElegirArticulosFacturasProveedor.SetProveedor( + const Value: IBizProveedor); +begin + FProveedor := Value; + if Assigned(FProveedor) then + begin + cxGridLevel.Caption := FProveedor.NOMBRE; + RefrescarFiltro; + end; +end; + +end. diff --git a/Source/Modulos/Facturas de proveedor/Views/uViewFacturaProveedor.dcu b/Source/Modulos/Facturas de proveedor/Views/uViewFacturaProveedor.dcu new file mode 100644 index 0000000..547afda Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Views/uViewFacturaProveedor.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Views/uViewFacturaProveedor.dfm b/Source/Modulos/Facturas de proveedor/Views/uViewFacturaProveedor.dfm new file mode 100644 index 0000000..2c91f1e --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uViewFacturaProveedor.dfm @@ -0,0 +1,395 @@ +inherited frViewFacturaProveedor: TfrViewFacturaProveedor + Width = 687 + Height = 304 + Align = alClient + OnCreate = CustomViewCreate + OnDestroy = CustomViewDestroy + ExplicitWidth = 451 + ExplicitHeight = 304 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 687 + Height = 304 + Align = alClient + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + LookAndFeel = dxLayoutOfficeLookAndFeel1 + ExplicitWidth = 451 + DesignSize = ( + 687 + 304) + object eReferencia: TcxDBTextEdit + Left = 136 + Top = 30 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REFERENCIA' + DataBinding.DataSource = DADataSource + Enabled = False + Properties.ReadOnly = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 0 + Width = 159 + end + object edtFecha: TcxDBDateEdit + Left = 136 + Top = 84 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_FACTURA' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 2 + Width = 159 + end + object memObservaciones: TcxDBMemo + Left = 22 + Top = 242 + Anchors = [akLeft, akTop, akRight, akBottom] + DataBinding.DataField = 'OBSERVACIONES' + DataBinding.DataSource = DADataSource + Properties.ScrollBars = ssVertical + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 7 + Height = 159 + Width = 301 + end + object cbFormaPago: TcxDBLookupComboBox + Left = 136 + Top = 135 + DataBinding.DataField = 'ID_FORMA_PAGO' + DataBinding.DataSource = DADataSource + Properties.ImmediatePost = True + Properties.KeyFieldNames = 'ID' + Properties.ListColumns = < + item + FieldName = 'REFERENCIA' + end> + Properties.ListOptions.GridLines = glNone + Properties.ListOptions.ShowHeader = False + Properties.ListOptions.SyncMode = True + Properties.ListSource = dsFormaPago + Properties.OnEditValueChanged = cbFormaPagoPropertiesEditValueChanged + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 3 + Width = 78 + end + object bFormasPago: TButton + Left = 204 + Top = 135 + Width = 132 + Height = 23 + Caption = 'Ver las formas de pago...' + TabOrder = 4 + OnClick = bFormasPagoClick + end + object eReferenciaProveedor: TcxDBTextEdit + Left = 136 + Top = 57 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REFERENCIA_PROVEEDOR' + DataBinding.DataSource = DADataSource + Properties.ReadOnly = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 1 + Width = 158 + end + inline frViewProveedorFactura: TfrViewDatosYSeleccionProveedor + Left = 364 + Top = 30 + Width = 350 + Height = 202 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 8 + ReadOnly = False + ExplicitLeft = 364 + ExplicitTop = 30 + inherited dxLayoutControl1: TdxLayoutControl + inherited edtlNombre: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtNIFCIF: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 562 + Width = 562 + end + inherited edtCalle: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 562 + Width = 562 + end + inherited edtPoblacion: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 177 + Width = 177 + end + inherited edtProvincia: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 327 + Width = 327 + end + inherited edtCodigoPostal: TcxDBTextEdit + Left = 209 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 209 + end + inherited Button3: TBitBtn + Left = 93 + ExplicitLeft = 93 + end + end + end + object cbCuentaBancaria: TcxDBComboBox + Left = 136 + Top = 191 + DataBinding.DataField = 'DATOS_BANCARIOS' + DataBinding.DataSource = DADataSource + Properties.DropDownListStyle = lsFixedList + Properties.DropDownRows = 12 + Properties.ImmediatePost = True + Properties.ImmediateUpdateText = True + Properties.PostPopupValueOnTab = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 6 + Width = 165 + end + object edtFechaVencimiento: TcxDBDateEdit + Left = 136 + Top = 164 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_VENCIMIENTO' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 5 + Width = 251 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Group6: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Datos de la factura' + object dxLayoutControl1Item1: TdxLayoutItem + Caption = 'Referencia:' + Control = eReferencia + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item6: TdxLayoutItem + Caption = 'Referencia proveedor:' + Control = eReferenciaProveedor + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item2: TdxLayoutItem + Caption = 'Fecha de la factura:' + Control = edtFecha + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group7: TdxLayoutGroup + Caption = 'Forma de pago' + object dxLayoutControl1Group3: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group8: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item4: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Forma de pago:' + Control = cbFormaPago + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item10: TdxLayoutItem + ShowCaption = False + Control = bFormasPago + ControlOptions.ShowBorder = False + end + end + object ledtFechaVencimiento: TdxLayoutItem + Caption = 'Fecha vencimiento:' + Control = edtFechaVencimiento + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item7: TdxLayoutItem + Caption = 'Cuenta bancaria:' + Control = cbCuentaBancaria + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group5: TdxLayoutGroup + AutoAligns = [aaHorizontal] + AlignVert = avClient + Caption = 'Observaciones' + LayoutDirection = ldHorizontal + object dxLayoutControl1Item5: TdxLayoutItem + AutoAligns = [] + AlignHorz = ahClient + AlignVert = avClient + Control = memObservaciones + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Group2: TdxLayoutGroup + AutoAligns = [] + AlignHorz = ahClient + AlignVert = avClient + Caption = 'Datos del proveedor' + object dxLayoutControl1Item3: TdxLayoutItem + Control = frViewProveedorFactura + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + end + end + end + object DADataSource: TDADataSource + Left = 16 + Top = 56 + end + object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList + Left = 88 + Top = 24 + object dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel + GroupOptions.CaptionOptions.Font.Charset = DEFAULT_CHARSET + GroupOptions.CaptionOptions.Font.Color = clWindowText + GroupOptions.CaptionOptions.Font.Height = -11 + GroupOptions.CaptionOptions.Font.Name = 'Tahoma' + GroupOptions.CaptionOptions.Font.Style = [fsBold] + GroupOptions.CaptionOptions.TextColor = clHighlight + GroupOptions.CaptionOptions.UseDefaultFont = False + end + end + object dsFormaPago: TDADataSource + Left = 64 + Top = 24 + end +end diff --git a/Source/Modulos/Facturas de proveedor/Views/uViewFacturaProveedor.pas b/Source/Modulos/Facturas de proveedor/Views/uViewFacturaProveedor.pas new file mode 100644 index 0000000..6cfb268 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uViewFacturaProveedor.pas @@ -0,0 +1,251 @@ +unit uViewFacturaProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, DB, uDADataTable, uCustomView, + uViewDatosYSeleccionCliente, uBizFacturasProveedor, + cxControls, cxContainer, cxEdit, cxTextEdit, cxDBEdit, dxLayoutControl, + cxMemo, cxMaskEdit, cxDropDownEdit, cxCalendar, cxSpinEdit, StdCtrls, Mask, + DBCtrls, cxGraphics, dxLayoutLookAndFeels, cxLookupEdit, cxDBLookupEdit, + cxDBLookupComboBox, uFormasPagoController, uViewDatosYSeleccionProveedor, + uDAInterfaces, uBizFormasPago, uFacturasProveedorController; + +type + IViewFacturaProveedor = interface(IViewBase) + ['{DD934441-75CC-452F-8861-684961E90BB6}'] + function GetFactura: IBizFacturaProveedor; + procedure SetFactura(const Value: IBizFacturaProveedor); + property Factura: IBizFacturaProveedor read GetFactura write SetFactura; + function GetController : IFacturasProveedorController; + procedure SetController (const Value : IFacturasProveedorController); + property Controller : IFacturasProveedorController read GetController write SetController; + end; + + TfrViewFacturaProveedor = class(TfrViewBase, IViewFacturaProveedor) + DADataSource: TDADataSource; + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Item1: TdxLayoutItem; + eReferencia: TcxDBTextEdit; + dxLayoutControl1Item2: TdxLayoutItem; + edtFecha: TcxDBDateEdit; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Group2: TdxLayoutGroup; + dxLayoutControl1Item5: TdxLayoutItem; + memObservaciones: TcxDBMemo; + dxLayoutControl1Group5: TdxLayoutGroup; + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + dsFormaPago: TDADataSource; + dxLayoutControl1Item4: TdxLayoutItem; + cbFormaPago: TcxDBLookupComboBox; + dxLayoutControl1Item10: TdxLayoutItem; + bFormasPago: TButton; + dxLayoutControl1Group6: TdxLayoutGroup; + dxLayoutControl1Item6: TdxLayoutItem; + eReferenciaProveedor: TcxDBTextEdit; + dxLayoutControl1Item3: TdxLayoutItem; + frViewProveedorFactura: TfrViewDatosYSeleccionProveedor; + dxLayoutControl1Item7: TdxLayoutItem; + cbCuentaBancaria: TcxDBComboBox; + dxLayoutControl1Group7: TdxLayoutGroup; + dxLayoutControl1Group3: TdxLayoutGroup; + ledtFechaVencimiento: TdxLayoutItem; + edtFechaVencimiento: TcxDBDateEdit; + dxLayoutControl1Group8: TdxLayoutGroup; + procedure bFormasPagoClick(Sender: TObject); + procedure CustomViewDestroy(Sender: TObject); + procedure CustomViewCreate(Sender: TObject); + procedure frViewProveedorFacturaButton1Click(Sender: TObject); + procedure frViewProveedorFacturaButton2Click(Sender: TObject); + procedure cbFormaPagoPropertiesEditValueChanged(Sender: TObject); + + protected + FFactura : IBizFacturaProveedor; + FController : IFacturasProveedorController; + FFormasPago : IBizFormaPago; + FFormasPagoController : IFormasPagoController; + function GetFactura: IBizFacturaProveedor; + procedure SetFactura(const Value: IBizFacturaProveedor); + function GetController : IFacturasProveedorController; + procedure SetController (const Value : IFacturasProveedorController); + procedure RellenarCuentasBancarias; + + public + property Factura: IBizFacturaProveedor read GetFactura write SetFactura; + property Controller : IFacturasProveedorController read GetController write SetController; + end; + + +implementation + +uses + uDataModuleContactos, schFacturasProveedorClient_Intf, uFactuGES_App, + uEmpresasController; + +{$R *.dfm} + +{ TfrViewFacturaProveedor } + +procedure TfrViewFacturaProveedor.bFormasPagoClick(Sender: TObject); +begin + inherited; + if Assigned(FFormasPago) then + FFormasPagoController.VerTodos(FFormasPago); +end; + +procedure TfrViewFacturaProveedor.cbFormaPagoPropertiesEditValueChanged( + Sender: TObject); +begin + inherited; + if Assigned(FFormasPago) then + if (FFormasPago.Plazos.RecordCount = 0) then + ledtFechaVencimiento.Enabled := True + else + ledtFechaVencimiento.Enabled := False; +end; + +procedure TfrViewFacturaProveedor.CustomViewCreate(Sender: TObject); +begin + inherited; + FFormasPago := Nil; + FFormasPagoController := TFormasPagoController.Create; + frViewProveedorFactura.MsgElegirProveedor := 'Elija el proveedor al que se le realizar la factura.'; +end; + +procedure TfrViewFacturaProveedor.CustomViewDestroy(Sender: TObject); +begin + inherited; + FFormasPago := Nil; + FFormasPagoController := NIL; +end; + +procedure TfrViewFacturaProveedor.frViewProveedorFacturaButton1Click(Sender: TObject); +begin + if Assigned(Factura) and Assigned(Factura.Proveedor) and + Assigned (Factura.Detalles) and (Factura.Detalles.RecordCount > 0) then + begin + if (Application.MessageBox('Si cambia de proveedor, se eliminarn todos sus artculos de la factura actual, Desea continuar?', 'Atencin', MB_YESNO) = IDNO) then + Exit; + end; + frViewProveedorFactura.actElegirContacto.Execute; +end; + +procedure TfrViewFacturaProveedor.frViewProveedorFacturaButton2Click( + Sender: TObject); +begin + if Assigned(Factura) and Assigned(Factura.Proveedor) and + Assigned (Factura.Detalles) and (Factura.Detalles.RecordCount > 0) then + begin + if (Application.MessageBox('Si cambia de proveedor, se eliminarn todos sus artculos de la factura actual, Desea continuar?', 'Atencin', MB_YESNO) = IDNO) then + Exit; + end; + frViewProveedorFactura.actAnadirContacto.Execute; +end; + +function TfrViewFacturaProveedor.GetController: IFacturasProveedorController; +begin + Result := FController; +end; + +function TfrViewFacturaProveedor.GetFactura: IBizFacturaProveedor; +begin + Result := FFactura; +end; + +procedure TfrViewFacturaProveedor.RellenarCuentasBancarias; +var + AController : IEmpresasController; + ALista : TStringList; + AListaIBAN : TStringList; + AListaProveedor : TStringList; + i : integer; +begin + AController := TEmpresasController.Create; + try + ALista := AController.DarListaCuentasBancarias(AppFactuGES.EmpresaActiva); + AListaIBAN := AController.DarListaCuentasBancariasIBAN(AppFactuGES.EmpresaActiva); + AListaProveedor := Controller.ProveedorController.DarListaCuentasBancarias(FFactura.ID_PROVEEDOR); + + try + with cbCuentaBancaria.Properties.Items do + begin + BeginUpdate; + try + Clear; + Add(''); + for i := 0 to ALista.Count - 1 do + Add(ALista.Names[i]); + + if AListaIBAN.Count > 0 then + begin + Add('--------------'); + for i := 0 to AListaIBAN.Count - 1 do + Add(AListaIBAN.Names[i]); + end; + + if AListaProveedor.Count > 0 then + begin + Add('--------------'); + for i := 0 to AListaProveedor.Count - 1 do + Add(AListaProveedor.Names[i]); + end; + + finally + EndUpdate; + end; + end; + finally + FreeANDNIL(ALista); + FreeANDNIL(AListaIBAN); + end; + finally + AController := NIL; + end; +end; + +procedure TfrViewFacturaProveedor.SetController(const Value: IFacturasProveedorController); +begin + FController := Value; + + if Assigned(FController) then + frViewProveedorFactura.Controller := Controller.ProveedorController; +end; + +procedure TfrViewFacturaProveedor.SetFactura(const Value: IBizFacturaProveedor); +begin + FFactura := Value; + + RellenarCuentasBancarias; + + if Assigned(FFactura) then + begin + DADataSource.DataTable := FFactura.DataTable; + + FFormasPago := FFormasPagoController.BuscarTodos; + dsFormaPago.DataTable := FFormasPago.DataTable; + dsFormaPago.DataTable.Active := True; + + //Posicionamos la tabla en la forma de pago que tiene la factura ya que no lo hace el componente por si solo + FFormasPago.DataTable.Locate(fld_FacturasProveedorID, FFactura.ID_FORMA_PAGO, []); + if (FFormasPago.Plazos.RecordCount = 0) then + ledtFechaVencimiento.Enabled := True + else + ledtFechaVencimiento.Enabled := False; + + if FFactura.TIPO = CTE_TIPO_ABONO then + begin + dxLayoutControl1Item2.Caption := 'Fecha del abono:'; + dxLayoutControl1Group1.Caption := 'Datos del abono'; + end; + end + else begin + DADataSource.DataTable := NIL; + dsFormaPago.DataTable := NIL; + frViewProveedorFactura.Proveedor := NIL + end; +end; + +end. diff --git a/Source/Modulos/Facturas de proveedor/Views/uViewFacturasProveedor.dcu b/Source/Modulos/Facturas de proveedor/Views/uViewFacturasProveedor.dcu new file mode 100644 index 0000000..ac73fa4 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Views/uViewFacturasProveedor.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Views/uViewFacturasProveedor.dfm b/Source/Modulos/Facturas de proveedor/Views/uViewFacturasProveedor.dfm new file mode 100644 index 0000000..bf4624d --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uViewFacturasProveedor.dfm @@ -0,0 +1,401 @@ +inherited frViewFacturasProveedor: TfrViewFacturasProveedor + Width = 531 + Height = 432 + ExplicitWidth = 531 + ExplicitHeight = 432 + inherited cxGrid: TcxGrid + Width = 531 + Height = 304 + RootLevelOptions.DetailTabsPosition = dtpTop + OnActiveTabChanged = cxGridActiveTabChanged + ExplicitWidth = 531 + ExplicitHeight = 304 + inherited cxGridView: TcxGridDBTableView + DataController.KeyFieldNames = 'ID' + DataController.Options = [dcoAnsiSort, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoGroupsAlwaysExpanded] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Position = spFooter + Column = cxGridViewIMPORTE_TOTAL + end> + DataController.Summary.FooterSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = cxGridViewIMPORTE_TOTAL + end + item + Format = '0 facturas' + Kind = skCount + Column = cxGridViewREFERENCIA + end> + DataController.OnCompare = cxGridViewDataControllerCompare + OptionsCustomize.ColumnHidingOnGrouping = False + OptionsView.GroupFooters = gfAlwaysVisible + object cxGridViewTIPO: TcxGridDBColumn + DataBinding.FieldName = 'TIPO' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Items = < + item + Description = 'Factura' + ImageIndex = 2 + Value = 'F' + end + item + Description = 'Abono' + ImageIndex = 3 + Tag = 1 + Value = 'A' + end> + end + object cxGridViewREFERENCIA: TcxGridDBColumn + DataBinding.FieldName = 'REFERENCIA' + PropertiesClassName = 'TcxTextEditProperties' + SortIndex = 0 + SortOrder = soDescending + Width = 78 + end + object cxGridViewREFERENCIA_PROVEEDOR: TcxGridDBColumn + Caption = 'Ref. proveedor' + DataBinding.FieldName = 'REFERENCIA_PROVEEDOR' + Width = 45 + end + object cxGridViewSITUACION: TcxGridDBColumn + DataBinding.FieldName = 'SITUACION' + Width = 32 + end + object cxGridViewFECHA_FACTURA: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_FACTURA' + PropertiesClassName = 'TcxDateEditProperties' + Width = 27 + end + object cxGridViewFECHA_VENCIMIENTO: TcxGridDBColumn + Caption = 'Fecha vto.' + DataBinding.FieldName = 'FECHA_VENCIMIENTO' + PropertiesClassName = 'TcxDateEditProperties' + end + object cxGridViewNIF_CIF: TcxGridDBColumn + DataBinding.FieldName = 'NIF_CIF' + Visible = False + end + object cxGridViewNOMBRE: TcxGridDBColumn + Caption = 'Proveedor' + DataBinding.FieldName = 'NOMBRE' + Width = 212 + end + object cxGridViewCALLE: TcxGridDBColumn + DataBinding.FieldName = 'CALLE' + Visible = False + end + object cxGridViewCODIGO_POSTAL: TcxGridDBColumn + DataBinding.FieldName = 'CODIGO_POSTAL' + Visible = False + end + object cxGridViewPOBLACION: TcxGridDBColumn + DataBinding.FieldName = 'POBLACION' + Visible = False + end + object cxGridViewPROVINCIA: TcxGridDBColumn + DataBinding.FieldName = 'PROVINCIA' + Visible = False + end + object cxGridViewBASE_IMPONIBLE: TcxGridDBColumn + DataBinding.FieldName = 'BASE_IMPONIBLE' + PropertiesClassName = 'TcxCurrencyEditProperties' + Visible = False + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewDESCUENTO: TcxGridDBColumn + DataBinding.FieldName = 'DESCUENTO' + Visible = False + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewIMPORTE_DESCUENTO: TcxGridDBColumn + DataBinding.FieldName = 'IMPORTE_DESCUENTO' + PropertiesClassName = 'TcxCurrencyEditProperties' + Visible = False + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewIVA: TcxGridDBColumn + DataBinding.FieldName = 'IVA' + Visible = False + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewIMPORTE_IVA: TcxGridDBColumn + DataBinding.FieldName = 'IMPORTE_IVA' + PropertiesClassName = 'TcxCurrencyEditProperties' + Visible = False + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewIMPORTE_TOTAL: TcxGridDBColumn + DataBinding.FieldName = 'IMPORTE_TOTAL' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + Width = 98 + end + object cxGridViewREFERENCIA_COMISION: TcxGridDBColumn + Caption = 'Liquidaci'#243'n' + DataBinding.FieldName = 'REFERENCIA_COMISION' + Visible = False + end + end + inherited cxGridLevel: TcxGridLevel + Caption = 'Todas' + end + object cxGridPendientes: TcxGridLevel + Caption = 'Pendientes' + end + object cxGridParcial: TcxGridLevel + Caption = 'Parcialmente pagadas' + end + object cxGridPagadas: TcxGridLevel + Caption = 'Pagadas' + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 531 + ExplicitWidth = 531 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 531 + inherited dxLayoutControl1: TdxLayoutControl + Width = 531 + ExplicitWidth = 531 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 434 + Width = 434 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 229 + Width = 229 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 333 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 333 + ExplicitWidth = 188 + Width = 188 + end + inherited eLista: TcxComboBox + Left = 558 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 558 + ExplicitWidth = 215 + Width = 215 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 531 + ExplicitWidth = 531 + inherited tbxBotones: TTBXToolbar + Width = 521 + ExplicitWidth = 521 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 406 + Visible = True + ExplicitTop = 406 + ExplicitWidth = 531 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 531 + ExplicitWidth = 531 + inherited TBXToolbar1: TTBXToolbar + Width = 521 + ExplicitWidth = 521 + object TBXSeparatorItem2: TTBXSeparatorItem + end + object TBXItem3: TTBXItem + Action = actProveedor + end + object TBXSeparatorItem1: TTBXSeparatorItem + end + object TBXItem2: TTBXItem + Action = actProvincia + end + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 38673.741107951390000000 + BuiltInReportLink = True + end + end + inherited cxStyleRepository1: TcxStyleRepository + object cxStylePagada: TcxStyle + AssignedValues = [svTextColor] + TextColor = clBlack + end + object cxStyleAbono: TcxStyle + AssignedValues = [svTextColor] + TextColor = clRed + end + object cxStylePendientes: TcxStyle + AssignedValues = [svTextColor] + TextColor = clGreen + end + object cxStyleParciales: TcxStyle + AssignedValues = [svTextColor] + TextColor = clBlue + end + end + inherited ActionList1: TActionList + Left = 328 + Top = 328 + object actProveedor: TAction + Caption = 'Proveedor' + OnExecute = actProveedorExecute + OnUpdate = actProveedorUpdate + end + object actProvincia: TAction + Caption = 'Provincia' + OnExecute = actProvinciaExecute + OnUpdate = actProvinciaUpdate + end + end + inherited GridPNGImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000434944415478DA63FCFFFF3F + 03258011D900464646ACA601D530126D00BA6298A1B80C21CA0090183639925C + 80CB3B040DC0E69A510306BD010C04005E03C801036F00008D248BE16F9028BA + 0000000049454E44AE426082} + Name = 'Icono_header' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001684944415478DA + 63FCFFFF3FC394C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F + 19ACFDF319CEED98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC + 5BBA09D3007CE0D7EFBF609B4178C98683D80D40770136B0AED69461E59623B8 + 0D80391B04FE01E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D + 760CCEE587E03607359F66585A6AC0B069CF49FC06A0DB0CC2207E58FB598685 + 85BA0CDB0E9CC16DC0C15E0706FBE203605B37375A809D0D02209BA3BB2F30CC + C9D566D87DE41C6E0340CE46B7F9E7AF3F6076D2C42B0C53D2D4180E9FBE8C69 + 4046941B8363E94194105F5E6EC810D9791ECC9E99A5C9903EED3A437F920AC3 + 89F357310D480E7386DB08A2435ACF302C2ED687B8049A067266DD62E88A5364 + 387BF906A60171410E280107B3191DB446C9315CBA7E1BD380283F3B147F23DB + FC1BC9E07FFFFE335CB97907D380502F6B86D5DB8E129D13310C0009900A4006 + 00004B6D80F047EC10D30000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + Bitmap = {} + end + object PngImageList10: TPngImageList + PngImages = <> + Left = 328 + end +end diff --git a/Source/Modulos/Facturas de proveedor/Views/uViewFacturasProveedor.pas b/Source/Modulos/Facturas de proveedor/Views/uViewFacturasProveedor.pas new file mode 100644 index 0000000..f69ada5 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uViewFacturasProveedor.pas @@ -0,0 +1,243 @@ +unit uViewFacturasProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewGrid, uViewPreview, cxStyles, cxCustomData, cxGraphics, + cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl, + dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, + dxPSFillPatterns, dxPSEdgePatterns, cxImageComboBox, cxTextEdit, ImgList, + PngImageList, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, ActnList, uDADataTable, + cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGrid, + cxImage, Grids, DBGrids, uBizFacturasProveedor, cxGridCustomPopupMenu, + cxGridPopupMenu, cxCalendar, cxCurrencyEdit, uViewFiltroBase, TB2Item, TBX, + TB2Toolbar, TBXDkPanels, TB2Dock, dxPgsDlg, uDAInterfaces; + +type + IViewFacturasProveedor = interface(IViewGrid) + ['{F0015E71-D890-4266-B7F4-7BCB38AFA0DE}'] + function GetFacturas: IBizFacturaProveedor; + procedure SetFacturas(const Value: IBizFacturaProveedor); + property Facturas: IBizFacturaProveedor read GetFacturas write SetFacturas; + end; + + TfrViewFacturasProveedor = class(TfrViewGrid, IViewFacturasProveedor) + cxGridViewNOMBRE: TcxGridDBColumn; + cxGridViewREFERENCIA: TcxGridDBColumn; + cxGridViewFECHA_FACTURA: TcxGridDBColumn; + cxGridViewSITUACION: TcxGridDBColumn; + cxGridViewBASE_IMPONIBLE: TcxGridDBColumn; + cxGridViewIMPORTE_DESCUENTO: TcxGridDBColumn; + cxGridViewDESCUENTO: TcxGridDBColumn; + cxGridViewIMPORTE_IVA: TcxGridDBColumn; + cxGridViewIMPORTE_TOTAL: TcxGridDBColumn; + cxGridViewIVA: TcxGridDBColumn; + cxGridViewNIF_CIF: TcxGridDBColumn; + cxGridViewCALLE: TcxGridDBColumn; + cxGridViewPROVINCIA: TcxGridDBColumn; + cxGridViewCODIGO_POSTAL: TcxGridDBColumn; + cxGridViewPOBLACION: TcxGridDBColumn; + cxStylePagada: TcxStyle; + cxGridPendientes: TcxGridLevel; + cxGridParcial: TcxGridLevel; + cxStyleAbono: TcxStyle; + cxGridPagadas: TcxGridLevel; + cxGridViewREFERENCIA_COMISION: TcxGridDBColumn; + cxGridViewREFERENCIA_PROVEEDOR: TcxGridDBColumn; + cxStylePendientes: TcxStyle; + cxStyleParciales: TcxStyle; + actProveedor: TAction; + actProvincia: TAction; + TBXItem2: TTBXItem; + TBXSeparatorItem1: TTBXSeparatorItem; + TBXItem3: TTBXItem; + TBXSeparatorItem2: TTBXSeparatorItem; + cxGridViewTIPO: TcxGridDBColumn; + cxGridViewFECHA_VENCIMIENTO: TcxGridDBColumn; + procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; + out AStyle: TcxStyle); + procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel); + procedure actProveedorExecute(Sender: TObject); + procedure actProveedorUpdate(Sender: TObject); + procedure actProvinciaExecute(Sender: TObject); + procedure actProvinciaUpdate(Sender: TObject); + procedure cxGridViewDataControllerCompare( + ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2, + AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer); + + private + //Filtros relativos a la vista + procedure AnadirFiltroSituaciones; + procedure AnadirFiltroFechas; + + protected + FFacturas: IBizFacturaProveedor; + function GetFacturas: IBizFacturaProveedor; + procedure SetFacturas(const Value: IBizFacturaProveedor); + public + procedure AnadirOtrosFiltros; override; + property Facturas: IBizFacturaProveedor read GetFacturas write SetFacturas; + end; + + +implementation + +uses + uDataModuleFacturasProveedor, DateUtils, uViewGridBase, uReferenciasUtils, + cxVariants; + +{$R *.dfm} + +{ TfrViewFacturasProveedor } + +procedure TfrViewFacturasProveedor.actProveedorExecute(Sender: TObject); +begin + if (cxGridViewNOMBRE.GroupIndex < 0) then + begin + cxGridViewNOMBRE.GroupIndex := cxGridView.GroupedColumnCount; + cxGridViewNOMBRE.Visible := False; + end + else + begin + cxGridViewNOMBRE.GroupIndex := -1; + cxGridViewNOMBRE.Visible := True; + end; +end; + +procedure TfrViewFacturasProveedor.actProveedorUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Checked := not (cxGridViewNOMBRE.GroupIndex < 0); +end; + +procedure TfrViewFacturasProveedor.actProvinciaExecute(Sender: TObject); +begin + if (cxGridViewPROVINCIA.GroupIndex < 0) then + begin + cxGridViewPROVINCIA.GroupIndex := cxGridView.GroupedColumnCount; + cxGridViewPROVINCIA.Visible := False; + end + else + begin + cxGridViewPROVINCIA.GroupIndex := -1; + cxGridViewPROVINCIA.Visible := True; + end; +end; + +procedure TfrViewFacturasProveedor.actProvinciaUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Checked := not (cxGridViewPROVINCIA.GroupIndex < 0); +end; + +procedure TfrViewFacturasProveedor.AnadirFiltroFechas; +var + Columna: TcxGridDBColumn; + Fecha1, Fecha2: Variant; + FFiltro : TcxFilterCriteriaItemList; +begin + Fecha1 := frViewFiltroBase1.edtFechaIniFiltro.EditValue; + Fecha2 := frViewFiltroBase1.edtFechaFinFiltro.EditValue; + + if not VarIsNull(Fecha1) + and not VarIsNull(Fecha2) then + begin + cxGridView.DataController.Filter.Options := [fcoCaseInsensitive, fcoSoftCompare]; + FFiltro := AddFilterGrid(fboAnd); + + Columna := (cxGridView as TcxGridDBTableView).GetColumnByFieldName('FECHA_FACTURA'); + FFiltro.AddItem(Columna, foBetween, varArrayOf([Fecha1, Fecha2]), VarToStr(Fecha1) + ' and ' + VarToStr(Fecha2)); + end; +end; + +procedure TfrViewFacturasProveedor.AnadirFiltroSituaciones; +var + FFiltro : TcxFilterCriteriaItemList; +begin + FFiltro := AddFilterGrid(fboAnd); + + case cxGrid.ActiveLevel.Index of + 1 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, CTE_PENDIENTE, CTE_PENDIENTE); + 2 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, CTE_PARCIAMENTE_PAGADA, CTE_PARCIAMENTE_PAGADA); + 3 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, CTE_PAGADA, CTE_PAGADA); + end; +end; + +procedure TfrViewFacturasProveedor.AnadirOtrosFiltros; +begin + inherited; + + AnadirFiltroSituaciones; + AnadirFiltroFechas; + + //Finalmente activamos el filtro si tenemos algo + if cxGridView.DataController.Filter.IsEmpty + then cxGridView.DataController.Filter.Active := False + else cxGridView.DataController.Filter.Active := True; + cxGrid.ActiveLevel.GridView := cxGridView; +end; + +procedure TfrViewFacturasProveedor.cxGridActiveTabChanged(Sender: TcxCustomGrid; + ALevel: TcxGridLevel); +begin + inherited; + RefrescarFiltro; +end; + +procedure TfrViewFacturasProveedor.cxGridViewDataControllerCompare( + ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2, + AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer); +begin + inherited; + if ((AItemIndex = cxGridViewREFERENCIA.Index) or + (AItemIndex = cxGridViewREFERENCIA_COMISION.Index) or + (AItemIndex = cxGridViewREFERENCIA_PROVEEDOR.Index)) and + (VarType(V1) = VarType(V2)) and (VarType(V1) = varString) then + Compare := CompararReferencias(V1, V2) + else + Compare := VarCompare(V1, V2); +end; + +procedure TfrViewFacturasProveedor.cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +var + IndiceCol: Integer; + ASituacion: string; +begin + inherited; + + if Assigned(ARecord) then + begin + + IndiceCol := cxGridViewSITUACION.Index; + ASituacion := UPPERCASE(VarToStr(ARecord.DisplayTexts[IndiceCol])); + if (ASituacion = CTE_PAGADA) then + AStyle.TextColor := cxStylePagada.TextColor + else if (ASituacion = CTE_PENDIENTE) then + AStyle.TextColor := cxStylePendientes.TextColor + else if (ASituacion = CTE_PARCIAMENTE_PAGADA) then + AStyle.TextColor := cxStyleParciales.TextColor; + + IndiceCol := cxGridViewIMPORTE_TOTAL.Index; + if (Pos('-', ARecord.DisplayTexts[IndiceCol]) > 0) then + AStyle.TextColor := cxStyleAbono.TextColor; + end; +end; + +function TfrViewFacturasProveedor.GetFacturas: IBizFacturaProveedor; +begin + Result := FFacturas; +end; + +procedure TfrViewFacturasProveedor.SetFacturas(const Value: IBizFacturaProveedor); +begin + FFacturas := Value; + if Assigned(FFacturas) then + dsDataSource.DataTable := FFacturas.DataTable; +end; + +end. diff --git a/Source/Modulos/Facturas de proveedor/Views/uViewPedidosFacturaProveedor.dcu b/Source/Modulos/Facturas de proveedor/Views/uViewPedidosFacturaProveedor.dcu new file mode 100644 index 0000000..eaf28c4 Binary files /dev/null and b/Source/Modulos/Facturas de proveedor/Views/uViewPedidosFacturaProveedor.dcu differ diff --git a/Source/Modulos/Facturas de proveedor/Views/uViewPedidosFacturaProveedor.dfm b/Source/Modulos/Facturas de proveedor/Views/uViewPedidosFacturaProveedor.dfm new file mode 100644 index 0000000..aa00eda --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uViewPedidosFacturaProveedor.dfm @@ -0,0 +1,38 @@ +inherited frViewPedidosFacturaProveedor: TfrViewPedidosFacturaProveedor + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + object cxGridViewID_FACTURA: TcxGridDBColumn + DataBinding.FieldName = 'ID_FACTURA' + end + object cxGridViewID_PEDIDO: TcxGridDBColumn + DataBinding.FieldName = 'ID_PEDIDO' + end + object cxGridViewREFERENCIA: TcxGridDBColumn + DataBinding.FieldName = 'REFERENCIA' + end + object cxGridViewFECHA_PEDIDO: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_PEDIDO' + end + object cxGridViewPROVEEDOR: TcxGridDBColumn + DataBinding.FieldName = 'PROVEEDOR' + end + object cxGridViewIMPORTE_TOTAL: TcxGridDBColumn + DataBinding.FieldName = 'IMPORTE_TOTAL' + end + end + end + inherited ToolBar1: TToolBar + inherited ToolButton1: TToolButton + ExplicitWidth = 62 + end + inherited ToolButton4: TToolButton + ExplicitWidth = 74 + end + inherited ToolButton2: TToolButton + ExplicitWidth = 67 + end + inherited ToolButton7: TToolButton + ExplicitWidth = 117 + end + end +end diff --git a/Source/Modulos/Facturas de proveedor/Views/uViewPedidosFacturaProveedor.pas b/Source/Modulos/Facturas de proveedor/Views/uViewPedidosFacturaProveedor.pas new file mode 100644 index 0000000..e4af690 --- /dev/null +++ b/Source/Modulos/Facturas de proveedor/Views/uViewPedidosFacturaProveedor.pas @@ -0,0 +1,62 @@ +unit uViewPedidosFacturaProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewDetallesGenerico, cxStyles, + cxCustomData, cxGraphics, cxFilter, + cxData, cxDataStorage, cxEdit, DB, cxDBData, ActnList, ImgList, PngImageList, + uDAInterfaces, uDADataTable, ComCtrls, ToolWin, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, uBizPedidosFacturaProveedor; + +type + IViewPedidosFacturaProveedor = interface + ['{5ADBA311-E801-4AEC-9208-1003D23EA596}'] + function GetPedidos: IBizPedidosFacturaProveedor; + procedure SetPedidos(const Value: IBizPedidosFacturaProveedor); + property Pedidos: IBizPedidosFacturaProveedor read GetPedidos write SetPedidos; + end; + + TfrViewPedidosFacturaProveedor = class(TfrViewDetallesGenerico, IViewPedidosFacturaProveedor) + cxGridViewID_FACTURA: TcxGridDBColumn; + cxGridViewID_PEDIDO: TcxGridDBColumn; + cxGridViewREFERENCIA: TcxGridDBColumn; + cxGridViewFECHA_PEDIDO: TcxGridDBColumn; + cxGridViewPROVEEDOR: TcxGridDBColumn; + cxGridViewIMPORTE_TOTAL: TcxGridDBColumn; + private + FPedidos: IBizPedidosFacturaProveedor; + function GetPedidos: IBizPedidosFacturaProveedor; + procedure SetPedidos(const Value: IBizPedidosFacturaProveedor); + + public + property Pedidos: IBizPedidosFacturaProveedor read GetPedidos write SetPedidos; + end; + +var + frViewPedidosFacturaProveedor: TfrViewPedidosFacturaProveedor; + +implementation + +{$R *.dfm} + +{ TfrViewPedidosFacturaProveedor } + +function TfrViewPedidosFacturaProveedor.GetPedidos: IBizPedidosFacturaProveedor; +begin + Result := FPedidos; +end; + +procedure TfrViewPedidosFacturaProveedor.SetPedidos(const Value: IBizPedidosFacturaProveedor); +begin + FPedidos := Value; + + if Assigned(FPedidos) then + dsDetalles.DataTable := FPedidos.DataTable + else + dsDetalles.DataTable := NIL; +end; + +end. diff --git a/Source/Modulos/Familias/Controller/Familias_controller.bdsproj b/Source/Modulos/Familias/Controller/Familias_controller.bdsproj new file mode 100644 index 0000000..027024c --- /dev/null +++ b/Source/Modulos/Familias/Controller/Familias_controller.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + Familias_controller.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Familias/Controller/Familias_controller.cfg b/Source/Modulos/Familias/Controller/Familias_controller.cfg new file mode 100644 index 0000000..9deaa09 --- /dev/null +++ b/Source/Modulos/Familias/Controller/Familias_controller.cfg @@ -0,0 +1,39 @@ +-$A8 +-$B- +-$C+ +-$D- +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L- +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$Y- +-$Z1 +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-$M16384,1048576 +-K$00400000 +-E"C:\Codigo\Output\Debug" +-LE"C:\Codigo\Output\Debug\Cliente" +-LN"C:\Codigo\Source\Modulos\Lib" +-U"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Imports";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\Indy10";"C:\Codigo Tecsitel\Lib";"C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK";"C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract";"C:\Codigo Tecsitel\Lib\CCPack";"C:\Codigo Tecsitel\Lib\CFPack";"C:\Codigo Tecsitel\Lib\GUISDK";"C:\Codigo Tecsitel\Lib\PluginSDK";"C:\Codigo Tecsitel\Lib\DevExpressVCL";"C:\Codigo Tecsitel\Lib\FastReport4";"C:\Codigo Tecsitel\Lib\JCL";"C:\Codigo Tecsitel\Lib\JVCL";"C:\Codigo Tecsitel\Lib\PngComponents";"C:\Codigo Tecsitel\Lib\cxIntl6";"C:\Codigo Tecsitel\Lib\cxIntlPrintSys3";"C:\Codigo Tecsitel\Lib\TB2k+TBX";"C:\Codigo Tecsitel\Lib\Mustangpeak\MPCommonLib";"C:\Codigo Tecsitel\Lib\Mustangpeak\EasyListview";"C:\Codigo Tecsitel\Lib\JSDialog";"C:\Codigo Tecsitel\Lib\UserControl";;"C:\Codigo Tecsitel\Source\Lib"; +-O"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Imports";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\Indy10";"C:\Codigo Tecsitel\Lib";"C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK";"C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract";"C:\Codigo Tecsitel\Lib\CCPack";"C:\Codigo Tecsitel\Lib\CFPack";"C:\Codigo Tecsitel\Lib\GUISDK";"C:\Codigo Tecsitel\Lib\PluginSDK";"C:\Codigo Tecsitel\Lib\DevExpressVCL";"C:\Codigo Tecsitel\Lib\FastReport4";"C:\Codigo Tecsitel\Lib\JCL";"C:\Codigo Tecsitel\Lib\JVCL";"C:\Codigo Tecsitel\Lib\PngComponents";"C:\Codigo Tecsitel\Lib\cxIntl6";"C:\Codigo Tecsitel\Lib\cxIntlPrintSys3";"C:\Codigo Tecsitel\Lib\TB2k+TBX";"C:\Codigo Tecsitel\Lib\Mustangpeak\MPCommonLib";"C:\Codigo Tecsitel\Lib\Mustangpeak\EasyListview";"C:\Codigo Tecsitel\Lib\JSDialog";"C:\Codigo Tecsitel\Lib\UserControl";;"C:\Codigo Tecsitel\Source\Lib"; +-I"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Imports";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\Indy10";"C:\Codigo Tecsitel\Lib";"C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK";"C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract";"C:\Codigo Tecsitel\Lib\CCPack";"C:\Codigo Tecsitel\Lib\CFPack";"C:\Codigo Tecsitel\Lib\GUISDK";"C:\Codigo Tecsitel\Lib\PluginSDK";"C:\Codigo Tecsitel\Lib\DevExpressVCL";"C:\Codigo Tecsitel\Lib\FastReport4";"C:\Codigo Tecsitel\Lib\JCL";"C:\Codigo Tecsitel\Lib\JVCL";"C:\Codigo Tecsitel\Lib\PngComponents";"C:\Codigo Tecsitel\Lib\cxIntl6";"C:\Codigo Tecsitel\Lib\cxIntlPrintSys3";"C:\Codigo Tecsitel\Lib\TB2k+TBX";"C:\Codigo Tecsitel\Lib\Mustangpeak\MPCommonLib";"C:\Codigo Tecsitel\Lib\Mustangpeak\EasyListview";"C:\Codigo Tecsitel\Lib\JSDialog";"C:\Codigo Tecsitel\Lib\UserControl";;"C:\Codigo Tecsitel\Source\Lib"; +-R"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Imports";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\Indy10";"C:\Codigo Tecsitel\Lib";"C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK";"C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract";"C:\Codigo Tecsitel\Lib\CCPack";"C:\Codigo Tecsitel\Lib\CFPack";"C:\Codigo Tecsitel\Lib\GUISDK";"C:\Codigo Tecsitel\Lib\PluginSDK";"C:\Codigo Tecsitel\Lib\DevExpressVCL";"C:\Codigo Tecsitel\Lib\FastReport4";"C:\Codigo Tecsitel\Lib\JCL";"C:\Codigo Tecsitel\Lib\JVCL";"C:\Codigo Tecsitel\Lib\PngComponents";"C:\Codigo Tecsitel\Lib\cxIntl6";"C:\Codigo Tecsitel\Lib\cxIntlPrintSys3";"C:\Codigo Tecsitel\Lib\TB2k+TBX";"C:\Codigo Tecsitel\Lib\Mustangpeak\MPCommonLib";"C:\Codigo Tecsitel\Lib\Mustangpeak\EasyListview";"C:\Codigo Tecsitel\Lib\JSDialog";"C:\Codigo Tecsitel\Lib\UserControl";;"C:\Codigo Tecsitel\Source\Lib"; diff --git a/Source/Modulos/Familias/Controller/Familias_controller.cfg.bak b/Source/Modulos/Familias/Controller/Familias_controller.cfg.bak new file mode 100644 index 0000000..9f3c652 --- /dev/null +++ b/Source/Modulos/Familias/Controller/Familias_controller.cfg.bak @@ -0,0 +1,39 @@ +-$A8 +-$B- +-$C+ +-$D- +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L- +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$Y- +-$Z1 +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-$M16384,1048576 +-K$00400000 +-E"C:\Codigo Tecsitel\Output\Debug" +-LE"C:\Codigo Tecsitel\Output\Debug\Cliente" +-LN"C:\Codigo Tecsitel\Source\Modulos\Lib" +-U"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Imports";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\Indy10";"C:\Codigo Tecsitel\Lib";"C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK";"C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract";"C:\Codigo Tecsitel\Lib\CCPack";"C:\Codigo Tecsitel\Lib\CFPack";"C:\Codigo Tecsitel\Lib\GUISDK";"C:\Codigo Tecsitel\Lib\PluginSDK";"C:\Codigo Tecsitel\Lib\DevExpressVCL";"C:\Codigo Tecsitel\Lib\FastReport4";"C:\Codigo Tecsitel\Lib\JCL";"C:\Codigo Tecsitel\Lib\JVCL";"C:\Codigo Tecsitel\Lib\PngComponents";"C:\Codigo Tecsitel\Lib\cxIntl6";"C:\Codigo Tecsitel\Lib\cxIntlPrintSys3";"C:\Codigo Tecsitel\Lib\TB2k+TBX";"C:\Codigo Tecsitel\Lib\Mustangpeak\MPCommonLib";"C:\Codigo Tecsitel\Lib\Mustangpeak\EasyListview";"C:\Codigo Tecsitel\Lib\JSDialog";"C:\Codigo Tecsitel\Lib\UserControl";;"C:\Codigo Tecsitel\Source\Lib"; +-O"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Imports";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\Indy10";"C:\Codigo Tecsitel\Lib";"C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK";"C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract";"C:\Codigo Tecsitel\Lib\CCPack";"C:\Codigo Tecsitel\Lib\CFPack";"C:\Codigo Tecsitel\Lib\GUISDK";"C:\Codigo Tecsitel\Lib\PluginSDK";"C:\Codigo Tecsitel\Lib\DevExpressVCL";"C:\Codigo Tecsitel\Lib\FastReport4";"C:\Codigo Tecsitel\Lib\JCL";"C:\Codigo Tecsitel\Lib\JVCL";"C:\Codigo Tecsitel\Lib\PngComponents";"C:\Codigo Tecsitel\Lib\cxIntl6";"C:\Codigo Tecsitel\Lib\cxIntlPrintSys3";"C:\Codigo Tecsitel\Lib\TB2k+TBX";"C:\Codigo Tecsitel\Lib\Mustangpeak\MPCommonLib";"C:\Codigo Tecsitel\Lib\Mustangpeak\EasyListview";"C:\Codigo Tecsitel\Lib\JSDialog";"C:\Codigo Tecsitel\Lib\UserControl";;"C:\Codigo Tecsitel\Source\Lib"; +-I"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Imports";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\Indy10";"C:\Codigo Tecsitel\Lib";"C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK";"C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract";"C:\Codigo Tecsitel\Lib\CCPack";"C:\Codigo Tecsitel\Lib\CFPack";"C:\Codigo Tecsitel\Lib\GUISDK";"C:\Codigo Tecsitel\Lib\PluginSDK";"C:\Codigo Tecsitel\Lib\DevExpressVCL";"C:\Codigo Tecsitel\Lib\FastReport4";"C:\Codigo Tecsitel\Lib\JCL";"C:\Codigo Tecsitel\Lib\JVCL";"C:\Codigo Tecsitel\Lib\PngComponents";"C:\Codigo Tecsitel\Lib\cxIntl6";"C:\Codigo Tecsitel\Lib\cxIntlPrintSys3";"C:\Codigo Tecsitel\Lib\TB2k+TBX";"C:\Codigo Tecsitel\Lib\Mustangpeak\MPCommonLib";"C:\Codigo Tecsitel\Lib\Mustangpeak\EasyListview";"C:\Codigo Tecsitel\Lib\JSDialog";"C:\Codigo Tecsitel\Lib\UserControl";;"C:\Codigo Tecsitel\Source\Lib"; +-R"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Imports";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\Indy10";"C:\Codigo Tecsitel\Lib";"C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK";"C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract";"C:\Codigo Tecsitel\Lib\CCPack";"C:\Codigo Tecsitel\Lib\CFPack";"C:\Codigo Tecsitel\Lib\GUISDK";"C:\Codigo Tecsitel\Lib\PluginSDK";"C:\Codigo Tecsitel\Lib\DevExpressVCL";"C:\Codigo Tecsitel\Lib\FastReport4";"C:\Codigo Tecsitel\Lib\JCL";"C:\Codigo Tecsitel\Lib\JVCL";"C:\Codigo Tecsitel\Lib\PngComponents";"C:\Codigo Tecsitel\Lib\cxIntl6";"C:\Codigo Tecsitel\Lib\cxIntlPrintSys3";"C:\Codigo Tecsitel\Lib\TB2k+TBX";"C:\Codigo Tecsitel\Lib\Mustangpeak\MPCommonLib";"C:\Codigo Tecsitel\Lib\Mustangpeak\EasyListview";"C:\Codigo Tecsitel\Lib\JSDialog";"C:\Codigo Tecsitel\Lib\UserControl";;"C:\Codigo Tecsitel\Source\Lib"; diff --git a/Source/Modulos/Familias/Controller/Familias_controller.dcu b/Source/Modulos/Familias/Controller/Familias_controller.dcu new file mode 100644 index 0000000..de83dfe Binary files /dev/null and b/Source/Modulos/Familias/Controller/Familias_controller.dcu differ diff --git a/Source/Modulos/Familias/Controller/Familias_controller.dpk b/Source/Modulos/Familias/Controller/Familias_controller.dpk new file mode 100644 index 0000000..a47a1e7 Binary files /dev/null and b/Source/Modulos/Familias/Controller/Familias_controller.dpk differ diff --git a/Source/Modulos/Familias/Controller/Familias_controller.dproj b/Source/Modulos/Familias/Controller/Familias_controller.dproj new file mode 100644 index 0000000..2544ac7 --- /dev/null +++ b/Source/Modulos/Familias/Controller/Familias_controller.dproj @@ -0,0 +1,542 @@ + + + {7f80f8aa-6912-4714-986d-aed73035472b} + Familias_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Familias_controller.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Familias_controller.dpk + + + + + MainSource + + + + + + + + + + + + + diff --git a/Source/Modulos/Familias/Controller/Familias_controller.rc b/Source/Modulos/Familias/Controller/Familias_controller.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Familias/Controller/Familias_controller.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Familias/Controller/Familias_controller.res b/Source/Modulos/Familias/Controller/Familias_controller.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Familias/Controller/Familias_controller.res differ diff --git a/Source/Modulos/Familias/Controller/View/uIEditorFamilias.dcu b/Source/Modulos/Familias/Controller/View/uIEditorFamilias.dcu new file mode 100644 index 0000000..69a5692 Binary files /dev/null and b/Source/Modulos/Familias/Controller/View/uIEditorFamilias.dcu differ diff --git a/Source/Modulos/Familias/Controller/View/uIEditorFamilias.pas b/Source/Modulos/Familias/Controller/View/uIEditorFamilias.pas new file mode 100644 index 0000000..3435d2e --- /dev/null +++ b/Source/Modulos/Familias/Controller/View/uIEditorFamilias.pas @@ -0,0 +1,26 @@ +unit uIEditorFamilias; + +interface + +uses + uEditorDBBase, uBizFamilias, uFamiliasController, uGUIBase; + +type + IEditorFamilias = interface(ICustomEditor) + ['{28CD8E74-C3D5-4862-A8F9-CF0EE3E79FED}'] + function GetFamilias: IBizFamilia; + procedure SetFamilias(const Value: IBizFamilia); + property Familias: IBizFamilia read GetFamilias write SetFamilias; + + function GetController : IFamiliasController; + procedure SetController (const Value : IFamiliasController); + property Controller : IFamiliasController read GetController write SetController; + + function ShowModal : Integer; + procedure Show; + end; + + +implementation + +end. diff --git a/Source/Modulos/Familias/Controller/uFamiliasController.dcu b/Source/Modulos/Familias/Controller/uFamiliasController.dcu new file mode 100644 index 0000000..968f8a1 Binary files /dev/null and b/Source/Modulos/Familias/Controller/uFamiliasController.dcu differ diff --git a/Source/Modulos/Familias/Controller/uFamiliasController.pas b/Source/Modulos/Familias/Controller/uFamiliasController.pas new file mode 100644 index 0000000..94bd92b --- /dev/null +++ b/Source/Modulos/Familias/Controller/uFamiliasController.pas @@ -0,0 +1,224 @@ +unit uFamiliasController; + +interface + + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uEditorDBItem, + uIDataModuleFamilias, uBizFamilias; + +type + IFamiliasController = interface(IControllerBase) + ['{3987874F-57A8-4C71-8B7E-CBD2D1580CBC}'] + function BuscarTodos: IBizFamilia; + procedure VerTodos(AFamilias: IBizFamilia); + procedure Anadir(AFamilia : IBizFamilia); + function Eliminar(AFamilia : IBizFamilia): Boolean; + function Guardar(AFamilia : IBizFamilia): Boolean; + procedure DescartarCambios(AFamilia : IBizFamilia); + function Localizar(AFamilias: IBizFamilia; ADescripcion:String): Boolean; + function DarListaFamilias: TStringList; + end; + + TFamiliasController = class(TControllerBase, IFamiliasController) + protected + FDataModule : IDataModuleFamilias; + + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; + + function ValidarFamilia(AFamilia: IBizFamilia): Boolean; + + //Estos son los tres mtodos a sobre escribir si se desea heredar toda la logica de + //este controller + procedure AsignarDataModule; virtual; + + public + constructor Create; override; + destructor Destroy; override; + + function Eliminar(AFamilia : IBizFamilia): Boolean; + function Guardar(AFamilia : IBizFamilia): Boolean; + procedure DescartarCambios(AFamilia : IBizFamilia); virtual; + procedure Anadir(AFamilia : IBizFamilia); + function BuscarTodos: IBizFamilia; + procedure VerTodos(AFamilias: IBizFamilia); + function Localizar(AFamilias: IBizFamilia; ADescripcion:String): Boolean; + function DarListaFamilias: TStringList; + end; + +implementation + +uses + cxControls, DB, uEditorRegistryUtils, schFamiliasClient_Intf, + uIEditorFamilias, uDataModuleFamilias, + uDAInterfaces, uDataTableUtils, + uDateUtils, uROTypes, DateUtils, Controls, Windows; + +{ TFamiliasController } + +procedure TFamiliasController.Anadir(AFamilia: IBizFamilia); +begin + AFamilia.Insert; +end; + +procedure TFamiliasController.AsignarDataModule; +begin + FDataModule := TDataModuleFamilias.Create(Nil); +end; + +function TFamiliasController.BuscarTodos: IBizFamilia; +begin + Result := FDataModule.GetItems; +end; + +constructor TFamiliasController.Create; +begin + inherited; + AsignarDataModule; +end; + +function TFamiliasController.CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + +function TFamiliasController.DarListaFamilias: TStringList; +var + AFamilias: IBizFamilia; +begin + AFamilias := BuscarTodos; + AFamilias.DataTable.Active := True; + Result := TStringList.Create; + try + with Result do + begin + AFamilias.DataTable.First; + while not AFamilias.DataTable.EOF do + begin + Add(AFamilias.DESCRIPCION); + AFamilias.DataTable.Next; + end; + end; + finally + AFamilias := NIL; + end; +end; + +procedure TFamiliasController.DescartarCambios(AFamilia: IBizFamilia); +begin + if not Assigned(AFamilia) then + raise Exception.Create ('Almacen no asignado'); + + ShowHourglassCursor; + try + if (AFamilia.State in dsEditModes) then + AFamilia.Cancel; + + AFamilia.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TFamiliasController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + +function TFamiliasController.ValidarFamilia(AFamilia: IBizFamilia): Boolean; +begin + Result := False; + + if not Assigned(AFamilia) then + raise Exception.Create ('Familia no asignada'); + + if (AFamilia.DataTable.State in dsEditModes) then + AFamilia.DataTable.Post; + + Result := True; +end; + +procedure TFamiliasController.VerTodos(AFamilias: IBizFamilia); +var + AEditor : IEditorFamilias; +begin + AEditor := NIL; + + CreateEditor('EditorFamilias', IEditorFamilias, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.Familias := AFamilias; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +function TFamiliasController.Eliminar(AFamilia: IBizFamilia): Boolean; +begin + if not Assigned(AFamilia) then + raise Exception.Create ('Almacen no asignada'); + + ShowHourglassCursor; + try + if (AFamilia.State in dsEditModes) then + AFamilia.Cancel; + + AFamilia.Delete; + AFamilia.DataTable.ApplyUpdates; + HideHourglassCursor; + Result := True; + finally + HideHourglassCursor; + end; +end; + +procedure TFamiliasController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +begin + inherited; +// +end; + +function TFamiliasController.Guardar(AFamilia: IBizFamilia): Boolean; +begin + Result := False; + + if not Assigned(AFamilia) then + raise Exception.Create ('Almacen no asignada'); + + if ValidarFamilia(AFamilia) then + begin + ShowHourglassCursor; + try + AFamilia.DataTable.ApplyUpdates; + + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TFamiliasController.Localizar(AFamilias: IBizFamilia; ADescripcion: String): Boolean; +begin + Result := True; + ShowHourglassCursor; + try + with AFamilias.DataTable do + begin + DisableControls; + First; + if not Locate(fld_FamiliasDESCRIPCION, ADescripcion, []) then + Result := False; + EnableControls; + end; + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Familias/Data/Familias_data.bdsproj b/Source/Modulos/Familias/Data/Familias_data.bdsproj new file mode 100644 index 0000000..daa0e7c --- /dev/null +++ b/Source/Modulos/Familias/Data/Familias_data.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + Familias_data.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Familias/Data/Familias_data.dcu b/Source/Modulos/Familias/Data/Familias_data.dcu new file mode 100644 index 0000000..7b03dae Binary files /dev/null and b/Source/Modulos/Familias/Data/Familias_data.dcu differ diff --git a/Source/Modulos/Familias/Data/Familias_data.dpk b/Source/Modulos/Familias/Data/Familias_data.dpk new file mode 100644 index 0000000..8bd6ecb Binary files /dev/null and b/Source/Modulos/Familias/Data/Familias_data.dpk differ diff --git a/Source/Modulos/Familias/Data/Familias_data.dproj b/Source/Modulos/Familias/Data/Familias_data.dproj new file mode 100644 index 0000000..1b0d1c0 --- /dev/null +++ b/Source/Modulos/Familias/Data/Familias_data.dproj @@ -0,0 +1,543 @@ + + + + {28b6d86e-fac2-4bfd-97d9-fcea860835eb} + Familias_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Familias_data.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Familias_data.dpk + + + + + MainSource + + + + + + + + +
DataModuleFamilias
+
+
+
+ diff --git a/Source/Modulos/Familias/Data/Familias_data.rc b/Source/Modulos/Familias/Data/Familias_data.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Familias/Data/Familias_data.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Familias/Data/Familias_data.res b/Source/Modulos/Familias/Data/Familias_data.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Familias/Data/Familias_data.res differ diff --git a/Source/Modulos/Familias/Data/uDataModuleFamilias.dcu b/Source/Modulos/Familias/Data/uDataModuleFamilias.dcu new file mode 100644 index 0000000..db06408 Binary files /dev/null and b/Source/Modulos/Familias/Data/uDataModuleFamilias.dcu differ diff --git a/Source/Modulos/Familias/Data/uDataModuleFamilias.dfm b/Source/Modulos/Familias/Data/uDataModuleFamilias.dfm new file mode 100644 index 0000000..f10bdf1 --- /dev/null +++ b/Source/Modulos/Familias/Data/uDataModuleFamilias.dfm @@ -0,0 +1,60 @@ +inherited DataModuleFamilias: TDataModuleFamilias + OnCreate = DAClientDataModuleCreate + Height = 195 + Width = 390 + object RORemoteService: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvFamilias' + Left = 48 + Top = 24 + end + object rda_Familias: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetDataCall.RemoteService = RORemoteService + UpdateDataCall.RemoteService = RORemoteService + GetScriptsCall.RemoteService = RORemoteService + RemoteService = RORemoteService + DataStreamer = Bin2DataStreamer + Left = 203 + Top = 23 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 88 + end + object tbl_Familias: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_EMPRESAS_ID' + Required = True + DictionaryEntry = 'Familias_ID' + InPrimaryKey = True + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DisplayLabel = 'Descripci'#243'n' + DictionaryEntry = 'Familias_DESCRIPCION' + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Familias + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Familias' + IndexDefs = <> + Left = 280 + Top = 24 + end + object ds_Familias: TDADataSource + DataSet = tbl_Familias.Dataset + DataTable = tbl_Familias + Left = 280 + Top = 88 + end +end diff --git a/Source/Modulos/Familias/Data/uDataModuleFamilias.pas b/Source/Modulos/Familias/Data/uDataModuleFamilias.pas new file mode 100644 index 0000000..17f7230 --- /dev/null +++ b/Source/Modulos/Familias/Data/uDataModuleFamilias.pas @@ -0,0 +1,59 @@ +unit uDataModuleFamilias; + +interface + +uses + SysUtils, Classes, DB, uIDataModuleFamilias, uBizFamilias, uDAInterfaces, uDADataTable, + uDAScriptingProvider, uDAMemDataTable, uDADataStreamer, uDABin2DataStreamer, + uDARemoteDataAdapter, uROClient, uRORemoteService, uDataModuleBase; + +type + TDataModuleFamilias = class(TDataModuleBase, IDataModuleFamilias) + RORemoteService: TRORemoteService; + rda_Familias: TDARemoteDataAdapter; + Bin2DataStreamer: TDABin2DataStreamer; + tbl_Familias: TDAMemDataTable; + ds_Familias: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + protected + procedure AsignarClaseNegocio(AFamilia: TDADataTable); + public + function GetItems : IBizFamilia; + end; + +implementation +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, + schFamiliasClient_Intf; + +{ TdmFamilias } + +procedure TDataModuleFamilias.AsignarClaseNegocio(AFamilia: TDADataTable); +begin + AFamilia.BusinessRulesID := BIZ_CLIENT_FAMILIA; +end; + +procedure TDataModuleFamilias.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleFamilias.GetItems: IBizFamilia; +var + AFamilia : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AFamilia := CloneDataTable(tbl_Familias); + AsignarClaseNegocio(AFamilia); + Result := (AFamilia as IBizFamilia); + finally + HideHourglassCursor; + end; +end; + + +end. diff --git a/Source/Modulos/Familias/Familias_Group.bdsgroup b/Source/Modulos/Familias/Familias_Group.bdsgroup new file mode 100644 index 0000000..df259d5 --- /dev/null +++ b/Source/Modulos/Familias/Familias_Group.bdsgroup @@ -0,0 +1,24 @@ + + + + + + + + + + + ..\..\Base\Base.bdsproj + ..\..\Base\GUIBase\GUIBase.bdsproj + ..\..\Base\Usuarios\Usuarios.bdsproj + Model\Familias_model.bdsproj + Data\Familias_data.bdsproj + Controller\Familias_controller.bdsproj + Views\Familias_view.bdsproj + Plugin\Familias_plugin.bdsproj + Base.bpl GUIBase.bpl Usuarios.bpl Familias_model.bpl Familias_data.bpl Familias_controller.bpl Familias_view.bpl Familias_plugin.bpl + + + + diff --git a/Source/Modulos/Familias/Familias_Group.groupproj b/Source/Modulos/Familias/Familias_Group.groupproj new file mode 100644 index 0000000..09dfb6d --- /dev/null +++ b/Source/Modulos/Familias/Familias_Group.groupproj @@ -0,0 +1,124 @@ + + + {9a7cc043-5043-46ff-a039-c4103c4aa6b2} + + + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Familias/Model/Data/uIDataModuleFamilias.dcu b/Source/Modulos/Familias/Model/Data/uIDataModuleFamilias.dcu new file mode 100644 index 0000000..59c492e Binary files /dev/null and b/Source/Modulos/Familias/Model/Data/uIDataModuleFamilias.dcu differ diff --git a/Source/Modulos/Familias/Model/Data/uIDataModuleFamilias.pas b/Source/Modulos/Familias/Model/Data/uIDataModuleFamilias.pas new file mode 100644 index 0000000..5ca8314 --- /dev/null +++ b/Source/Modulos/Familias/Model/Data/uIDataModuleFamilias.pas @@ -0,0 +1,16 @@ +unit uIDataModuleFamilias; + +interface + +uses + uBizFamilias; + +type + IDataModuleFamilias = interface + ['{0FE2B5E6-DE76-4834-B27F-3C754C96B76A}'] + function GetItems: IBizFamilia; + end; + +implementation + +end. diff --git a/Source/Modulos/Familias/Model/Familias_model.bdsproj b/Source/Modulos/Familias/Model/Familias_model.bdsproj new file mode 100644 index 0000000..6ffd6bb --- /dev/null +++ b/Source/Modulos/Familias/Model/Familias_model.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + Familias_model.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Familias/Model/Familias_model.dcu b/Source/Modulos/Familias/Model/Familias_model.dcu new file mode 100644 index 0000000..2fa45ce Binary files /dev/null and b/Source/Modulos/Familias/Model/Familias_model.dcu differ diff --git a/Source/Modulos/Familias/Model/Familias_model.dpk b/Source/Modulos/Familias/Model/Familias_model.dpk new file mode 100644 index 0000000..2c98e26 Binary files /dev/null and b/Source/Modulos/Familias/Model/Familias_model.dpk differ diff --git a/Source/Modulos/Familias/Model/Familias_model.dproj b/Source/Modulos/Familias/Model/Familias_model.dproj new file mode 100644 index 0000000..c37ab0f --- /dev/null +++ b/Source/Modulos/Familias/Model/Familias_model.dproj @@ -0,0 +1,542 @@ + + + {73acd39c-b2f0-49b7-9acf-10945bbac8c1} + Familias_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Familias_model.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Familias_model.dpk + + + + + MainSource + + + + + + + + + + + + + diff --git a/Source/Modulos/Familias/Model/Familias_model.rc b/Source/Modulos/Familias/Model/Familias_model.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Familias/Model/Familias_model.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Familias/Model/Familias_model.res b/Source/Modulos/Familias/Model/Familias_model.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Familias/Model/Familias_model.res differ diff --git a/Source/Modulos/Familias/Model/schFamiliasClient_Intf.dcu b/Source/Modulos/Familias/Model/schFamiliasClient_Intf.dcu new file mode 100644 index 0000000..6a19700 Binary files /dev/null and b/Source/Modulos/Familias/Model/schFamiliasClient_Intf.dcu differ diff --git a/Source/Modulos/Familias/Model/schFamiliasClient_Intf.pas b/Source/Modulos/Familias/Model/schFamiliasClient_Intf.pas new file mode 100644 index 0000000..e79db11 --- /dev/null +++ b/Source/Modulos/Familias/Model/schFamiliasClient_Intf.pas @@ -0,0 +1,134 @@ +unit schFamiliasClient_Intf; + +interface + +uses + Classes, DB, schBase_Intf, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_Familias = '{BF295C1C-0281-4A3D-88CA-BF367A96144B}'; + + { Data table names } + nme_Familias = 'Familias'; + + { Familias fields } + fld_FamiliasID = 'ID'; + fld_FamiliasDESCRIPCION = 'DESCRIPCION'; + + { Familias field indexes } + idx_FamiliasID = 0; + idx_FamiliasDESCRIPCION = 1; + +type + { IFamilias } + IFamilias = interface(IDAStronglyTypedDataTable) + ['{8FA3E165-5E9C-4333-8F87-56DED8F3D1EA}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetDESCRIPCIONIsNull: Boolean; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + end; + + { TFamiliasDataTableRules } + TFamiliasDataTableRules = class(TIntfObjectDADataTableRules, IFamilias) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants, uROBinaryHelpers; + +{ TFamiliasDataTableRules } +constructor TFamiliasDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TFamiliasDataTableRules.Destroy; +begin + inherited; +end; + +function TFamiliasDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_FamiliasID].AsInteger; +end; + +procedure TFamiliasDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_FamiliasID].AsInteger := aValue; +end; + +function TFamiliasDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_FamiliasID].IsNull; +end; + +procedure TFamiliasDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FamiliasID].AsVariant := Null; +end; + +function TFamiliasDataTableRules.GetDESCRIPCIONValue: String; +begin + result := DataTable.Fields[idx_FamiliasDESCRIPCION].AsString; +end; + +procedure TFamiliasDataTableRules.SetDESCRIPCIONValue(const aValue: String); +begin + DataTable.Fields[idx_FamiliasDESCRIPCION].AsString := aValue; +end; + +function TFamiliasDataTableRules.GetDESCRIPCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_FamiliasDESCRIPCION].IsNull; +end; + +procedure TFamiliasDataTableRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FamiliasDESCRIPCION].AsVariant := Null; +end; + + +initialization + RegisterDataTableRules(RID_Familias, TFamiliasDataTableRules); + +end. diff --git a/Source/Modulos/Familias/Model/schFamiliasServer_Intf.dcu b/Source/Modulos/Familias/Model/schFamiliasServer_Intf.dcu new file mode 100644 index 0000000..b98c9a8 Binary files /dev/null and b/Source/Modulos/Familias/Model/schFamiliasServer_Intf.dcu differ diff --git a/Source/Modulos/Familias/Model/schFamiliasServer_Intf.pas b/Source/Modulos/Familias/Model/schFamiliasServer_Intf.pas new file mode 100644 index 0000000..4b79cf3 --- /dev/null +++ b/Source/Modulos/Familias/Model/schFamiliasServer_Intf.pas @@ -0,0 +1,143 @@ +unit schFamiliasServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schFamiliasClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_FamiliasDelta = '{CEAAE8BD-8120-4DF5-9246-6C0E96C56111}'; + +type + { IFamiliasDelta } + IFamiliasDelta = interface(IFamilias) + ['{CEAAE8BD-8120-4DF5-9246-6C0E96C56111}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldDESCRIPCIONValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + end; + + { TFamiliasBusinessProcessorRules } + TFamiliasBusinessProcessorRules = class(TDABusinessProcessorRules, IFamilias, IFamiliasDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull : Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldDESCRIPCIONIsNull : Boolean read GetOldDESCRIPCIONIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers, uDAInterfaces; + +{ TFamiliasBusinessProcessorRules } +constructor TFamiliasBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TFamiliasBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TFamiliasBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FamiliasID]; +end; + +function TFamiliasBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FamiliasID]); +end; + +function TFamiliasBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FamiliasID]; +end; + +function TFamiliasBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FamiliasID]); +end; + +procedure TFamiliasBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FamiliasID] := aValue; +end; + +procedure TFamiliasBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FamiliasID] := Null; +end; + +function TFamiliasBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FamiliasDESCRIPCION]; +end; + +function TFamiliasBusinessProcessorRules.GetDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FamiliasDESCRIPCION]); +end; + +function TFamiliasBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FamiliasDESCRIPCION]; +end; + +function TFamiliasBusinessProcessorRules.GetOldDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FamiliasDESCRIPCION]); +end; + +procedure TFamiliasBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FamiliasDESCRIPCION] := aValue; +end; + +procedure TFamiliasBusinessProcessorRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FamiliasDESCRIPCION] := Null; +end; + + +initialization + RegisterBusinessProcessorRules(RID_FamiliasDelta, TFamiliasBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Familias/Model/uBizFamilias.dcu b/Source/Modulos/Familias/Model/uBizFamilias.dcu new file mode 100644 index 0000000..963af70 Binary files /dev/null and b/Source/Modulos/Familias/Model/uBizFamilias.dcu differ diff --git a/Source/Modulos/Familias/Model/uBizFamilias.pas b/Source/Modulos/Familias/Model/uBizFamilias.pas new file mode 100644 index 0000000..d54aa64 --- /dev/null +++ b/Source/Modulos/Familias/Model/uBizFamilias.pas @@ -0,0 +1,36 @@ +unit uBizFamilias; + +interface + +uses + uDAInterfaces, uDADataTable, schFamiliasClient_Intf; + +const + BIZ_CLIENT_FAMILIA = 'Client.Familia'; + +type + IBizFamilia = interface(IFamilias) + ['{4DEDACCD-5CC1-474A-BE9A-46D3BCCF9025}'] + end; + + TBizFamilia = class(TFamiliasDataTableRules, IBizFamilia) + procedure AfterOpen(Sender: TDADataTable); override; + end; + +implementation + +{ TBizFamilia } + +procedure TBizFamilia.AfterOpen(Sender: TDADataTable); +begin + inherited; + DataTable.Sort([fld_FamiliasDESCRIPCION], [sdAscending]); +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_FAMILIA, TBizFamilia); + +finalization + +end. + diff --git a/Source/Modulos/Familias/Plugin/Familias_plugin.bdsproj b/Source/Modulos/Familias/Plugin/Familias_plugin.bdsproj new file mode 100644 index 0000000..012abf9 --- /dev/null +++ b/Source/Modulos/Familias/Plugin/Familias_plugin.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + Familias_plugin.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Familias/Plugin/Familias_plugin.dcu b/Source/Modulos/Familias/Plugin/Familias_plugin.dcu new file mode 100644 index 0000000..7e4b06c Binary files /dev/null and b/Source/Modulos/Familias/Plugin/Familias_plugin.dcu differ diff --git a/Source/Modulos/Familias/Plugin/Familias_plugin.dpk b/Source/Modulos/Familias/Plugin/Familias_plugin.dpk new file mode 100644 index 0000000..2effbfe Binary files /dev/null and b/Source/Modulos/Familias/Plugin/Familias_plugin.dpk differ diff --git a/Source/Modulos/Familias/Plugin/Familias_plugin.dproj b/Source/Modulos/Familias/Plugin/Familias_plugin.dproj new file mode 100644 index 0000000..e5d0baa --- /dev/null +++ b/Source/Modulos/Familias/Plugin/Familias_plugin.dproj @@ -0,0 +1,543 @@ + + + {82e36812-58c4-491b-b463-6b951e95da51} + Familias_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Familias_plugin.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Familias_plugin.dpk + + + + + MainSource + + + + + + + + + + + + + + diff --git a/Source/Modulos/Familias/Plugin/Familias_plugin.rc b/Source/Modulos/Familias/Plugin/Familias_plugin.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Familias/Plugin/Familias_plugin.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Familias/Plugin/Familias_plugin.res b/Source/Modulos/Familias/Plugin/Familias_plugin.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Familias/Plugin/Familias_plugin.res differ diff --git a/Source/Modulos/Familias/Plugin/uPluginFamilias.dcu b/Source/Modulos/Familias/Plugin/uPluginFamilias.dcu new file mode 100644 index 0000000..e165513 Binary files /dev/null and b/Source/Modulos/Familias/Plugin/uPluginFamilias.dcu differ diff --git a/Source/Modulos/Familias/Plugin/uPluginFamilias.dfm b/Source/Modulos/Familias/Plugin/uPluginFamilias.dfm new file mode 100644 index 0000000..54d891a --- /dev/null +++ b/Source/Modulos/Familias/Plugin/uPluginFamilias.dfm @@ -0,0 +1,77 @@ +object PluginFamilias: TPluginFamilias + OldCreateOrder = True + DefaultAction = actFamilias + Description = 'Familias' + ModuleMenu = MainMenu + ModuleName = 'Familias' + SmallImages = SmallImages + LargeImages = SmallImages + Author = 'Rodax Software' + Version = '1.0.0' + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = <> + Left = 232 + Top = 16 + end + object ModuleActionList: TActionList + Images = SmallImages + Left = 40 + Top = 72 + object actFamilias: TAction + Category = 'Familias' + Caption = 'Familias de art'#237'culos' + ImageIndex = 0 + OnExecute = actFamiliasExecute + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object Ventas1: TMenuItem + Caption = 'Datos' + object Familias1: TMenuItem + Tag = 19000 + Action = actFamilias + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001A34944415478DA9D922177E3300CC7655636C3B20596CD702C86C7E6 + B141C342EF1BE42318167AECD81916BA6CD0638582852A0BCBA46CCDDAF46E77 + EFF4E2A7D8F2FF2759B6724FD9354BF30B09810EF5B16C43866FACAC7DA67DD5 + E364655A15020ECEDD42AD47C839EE4AE9EC5CE492EBB2CF9DFC676BCA83772D + 6C133CEFE14D395F066B0C032AA4346AD5B9905D20C49BD255350196D4BEF40D + C48A47657F44073D05CEDC9AFBF0585F63B61D1379AF7BF2B702C67D8509B0F6 + 4329E52D1DE8CE2CF557B6B93144CAF13C04767702CCED62B12433587FB99141 + 4E1C03C2B70011B72EC02E479843CEAD6E60D04BEED9C1825B47A54E6273CF15 + F73CE9095226D00B891000FB66C1733E2F71CCACCC08EA36043165755141D334 + 2CE6EEAFE429F0552F3468CD5E370CE05842F04E4FE2DFF6A05979CE04633524 + 15F08707024484E0F9EA36C880ACAE7A70DE87931D7B0190BCD0B1326F11E256 + 20FF0098C454D92324167A5320163B95FF47C0518EC02219F4E9D3AB01C780F4 + 3780910A46D167763E3FF508B95A59BA105F037E76038EC28FE6C9B58DCDEC3F + E273F115E07FEC1D6B02010E884AA1F00000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = <> + Left = 232 + Top = 80 + end +end diff --git a/Source/Modulos/Familias/Plugin/uPluginFamilias.pas b/Source/Modulos/Familias/Plugin/uPluginFamilias.pas new file mode 100644 index 0000000..6c4e154 --- /dev/null +++ b/Source/Modulos/Familias/Plugin/uPluginFamilias.pas @@ -0,0 +1,73 @@ +unit uPluginFamilias; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCFamilias = interface(IInterface) + ['{CD2D4FD9-B669-4447-A080-4D797B192A6F}'] + end; + + TPluginFamilias = class(TModuleController, IMCFamilias) + actFamilias: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + Ventas1: TMenuItem; + Familias1: TMenuItem; + procedure actFamiliasExecute(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, + uFamiliasController, uBizFamilias, uFamiliasViewRegister; + +function GetModule : TModuleController; +begin + Result := TPluginFamilias.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +procedure TPluginFamilias.actFamiliasExecute(Sender: TObject); +var + AFamiliasController : IFamiliasController; + AFamilias : IBizFamilia; +begin + AFamiliasController := TFamiliasController.Create; + AFamilias := (AFamiliasController.BuscarTodos as IBizFamilia); + AFamiliasController.VerTodos(AFamilias); +end; + +constructor TPluginFamilias.Create(AOwner: TComponent); +begin + inherited; + uFamiliasViewRegister.RegisterViews; +end; + +destructor TPluginFamilias.Destroy; +begin + uFamiliasViewRegister.UnregisterViews; + inherited; +end; + +initialization + RegisterModuleClass(TPluginFamilias); + +finalization + UnRegisterModuleClass(TPluginFamilias); + +end. diff --git a/Source/Modulos/Familias/Servidor/srvFamilias_Impl.dcu b/Source/Modulos/Familias/Servidor/srvFamilias_Impl.dcu new file mode 100644 index 0000000..5031368 Binary files /dev/null and b/Source/Modulos/Familias/Servidor/srvFamilias_Impl.dcu differ diff --git a/Source/Modulos/Familias/Servidor/srvFamilias_Impl.dfm b/Source/Modulos/Familias/Servidor/srvFamilias_Impl.dfm new file mode 100644 index 0000000..8657dcb --- /dev/null +++ b/Source/Modulos/Familias/Servidor/srvFamilias_Impl.dfm @@ -0,0 +1,107 @@ +object srvFamilias: TsrvFamilias + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + ConnectionName = 'IBX' + ServiceSchema = schFamilias + ServiceDataStreamer = Bin2DataStreamer + AllowExecuteSQL = True + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + Height = 249 + Width = 343 + object Diagrams: TDADiagrams + Left = 150 + Top = 82 + DiagramData = ''#13#10''#13#10 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'Familias_ID' + DataType = datAutoInc + GeneratorName = 'GEN_FAMILIAS_ID' + Required = True + DisplayLabel = 'ID' + end + item + Name = 'Familias_DESCRIPCION' + DataType = datString + Size = 255 + DisplayLabel = 'Descripci'#243'n' + end> + Left = 150 + Top = 22 + end + object schFamilias: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Diagrams = Diagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'FAMILIAS' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'ID' + TableField = 'ID' + end> + end> + Name = 'Familias' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_FAMILIAS_ID' + DictionaryEntry = 'Familias_ID' + InPrimaryKey = True + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DictionaryEntry = 'Familias_DESCRIPCION' + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = < + item + Name = 'Insert Familias' + DoUpdate = False + DoDelete = False + DatasetName = 'Familias' + FailureBehavior = fbRaiseException + end + item + Name = 'Update Familias' + DoInsert = False + DoDelete = False + DatasetName = 'Familias' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete Familias' + DoUpdate = False + DoInsert = False + DatasetName = 'Familias' + FailureBehavior = fbRaiseException + end> + Version = 0 + Left = 48 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 80 + end +end diff --git a/Source/Modulos/Familias/Servidor/srvFamilias_Impl.pas b/Source/Modulos/Familias/Servidor/srvFamilias_Impl.pas new file mode 100644 index 0000000..bee0295 --- /dev/null +++ b/Source/Modulos/Familias/Servidor/srvFamilias_Impl.pas @@ -0,0 +1,63 @@ +unit srvFamilias_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} uDABusinessProcessor, uDABin2DataStreamer, uDADataStreamer, + uDAScriptingProvider, uDAClasses, + FactuGES_Intf, uDAInterfaces; + +type + { TsrvFamilias } + TsrvFamilias = class(TDataAbstractService, IsrvFamilias) + Diagrams: TDADiagrams; + Bin2DataStreamer: TDABin2DataStreamer; + schFamilias: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceCreate(Sender: TObject); + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; + var aConnectionName: string); + { IsrvFamilias methods } + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer, + uDatabaseUtils, schFamiliasClient_Intf, uRestriccionesUsuarioUtils; + +procedure Create_srvFamilias(out anInstance : IUnknown); +begin + anInstance := TsrvFamilias.Create(NIL); +end; + +{ srvFamilias } +procedure TsrvFamilias.DARemoteServiceCreate(Sender: TObject); +begin + //SessionManager := dmServer.SessionManager; +end; + +procedure TsrvFamilias.DataAbstractServiceBeforeAcquireConnection( + aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +initialization + TROClassFactory.Create('srvFamilias', Create_srvFamilias, TsrvFamilias_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Familias/Views/Familias_view.bdsproj b/Source/Modulos/Familias/Views/Familias_view.bdsproj new file mode 100644 index 0000000..763df36 --- /dev/null +++ b/Source/Modulos/Familias/Views/Familias_view.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + Familias_view.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Familias/Views/Familias_view.dcu b/Source/Modulos/Familias/Views/Familias_view.dcu new file mode 100644 index 0000000..ec2b929 Binary files /dev/null and b/Source/Modulos/Familias/Views/Familias_view.dcu differ diff --git a/Source/Modulos/Familias/Views/Familias_view.dpk b/Source/Modulos/Familias/Views/Familias_view.dpk new file mode 100644 index 0000000..a36dbf5 Binary files /dev/null and b/Source/Modulos/Familias/Views/Familias_view.dpk differ diff --git a/Source/Modulos/Familias/Views/Familias_view.dproj b/Source/Modulos/Familias/Views/Familias_view.dproj new file mode 100644 index 0000000..96213d4 --- /dev/null +++ b/Source/Modulos/Familias/Views/Familias_view.dproj @@ -0,0 +1,545 @@ + + + {e3d36a6f-7004-4c89-9f3d-f2d77e386d1b} + Familias_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Familias_view.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Familias_view.dpk + + + + + MainSource + + + + + + + + + +
fEditorFamilias
+ TfEditorFamilias +
+ +
+
+ diff --git a/Source/Modulos/Familias/Views/Familias_view.rc b/Source/Modulos/Familias/Views/Familias_view.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Familias/Views/Familias_view.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Familias/Views/Familias_view.res b/Source/Modulos/Familias/Views/Familias_view.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Familias/Views/Familias_view.res differ diff --git a/Source/Modulos/Familias/Views/uEditorFamilias.dcu b/Source/Modulos/Familias/Views/uEditorFamilias.dcu new file mode 100644 index 0000000..df87e4e Binary files /dev/null and b/Source/Modulos/Familias/Views/uEditorFamilias.dcu differ diff --git a/Source/Modulos/Familias/Views/uEditorFamilias.dfm b/Source/Modulos/Familias/Views/uEditorFamilias.dfm new file mode 100644 index 0000000..c086a62 --- /dev/null +++ b/Source/Modulos/Familias/Views/uEditorFamilias.dfm @@ -0,0 +1,144 @@ +object fEditorFamilias: TfEditorFamilias + Left = 453 + Top = 234 + ActiveControl = ListaFamilias + BorderIcons = [biSystemMenu] + BorderStyle = bsSingle + Caption = 'Administraci'#243'n de familias de art'#237'culos' + ClientHeight = 494 + ClientWidth = 404 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = CustomEditorClose + OnShow = FormShow + InstanceID = 0 + ReadOnly = False + PixelsPerInch = 96 + TextHeight = 13 + object bAceptar: TButton + Left = 235 + Top = 462 + Width = 75 + Height = 23 + Action = actAceptar + Default = True + TabOrder = 1 + end + object bCancelar: TButton + Left = 321 + Top = 462 + Width = 75 + Height = 23 + Action = actCancelar + Cancel = True + TabOrder = 2 + end + object PageControl1: TPageControl + Left = 8 + Top = 8 + Width = 390 + Height = 442 + ActivePage = TabSheet1 + TabOrder = 0 + object TabSheet1: TTabSheet + Caption = 'Familias de art'#237'culos' + object Label1: TLabel + Left = 10 + Top = 12 + Width = 213 + Height = 13 + Caption = 'Lista de familias disponibles para los art'#237'culos' + end + object Label2: TLabel + Left = 10 + Top = 326 + Width = 116 + Height = 13 + Caption = 'A'#241'adir una nueva familia' + end + object Bevel1: TBevel + Left = 132 + Top = 330 + Width = 244 + Height = 5 + Shape = bsBottomLine + end + object eCategoria: TLabel + Left = 18 + Top = 353 + Width = 98 + Height = 13 + Caption = 'Nombre de la familia:' + end + object ListaFamilias: TDBLookupListBox + Left = 8 + Top = 31 + Width = 262 + Height = 277 + KeyField = 'RecID' + ListField = 'DESCRIPCION' + ListSource = DADataSource + TabOrder = 0 + end + object bEliminar: TButton + Left = 281 + Top = 31 + Width = 95 + Height = 23 + Action = actEliminar + TabOrder = 1 + end + object editFamilia: TEdit + Left = 122 + Top = 349 + Width = 254 + Height = 21 + TabOrder = 2 + end + object bAnadir: TButton + Left = 281 + Top = 382 + Width = 95 + Height = 23 + Action = actAnadir + TabOrder = 3 + end + end + end + object ActionList1: TActionList + Left = 144 + Top = 16 + object actAnadir: TAction + Caption = '&A'#241'adir' + OnExecute = actAnadirExecute + OnUpdate = actAnadirUpdate + end + object actEliminar: TAction + Caption = '&Eliminar' + OnExecute = actEliminarExecute + OnUpdate = actEliminarUpdate + end + object actAceptar: TAction + Caption = 'A&ceptar' + OnExecute = actAceptarExecute + end + object actCancelar: TAction + Caption = '&Cancelar' + OnExecute = actCancelarExecute + end + object actCerrar: TAction + Caption = 'actCerrar' + OnExecute = actCerrarExecute + end + end + object DADataSource: TDADataSource + Left = 168 + Top = 16 + end +end diff --git a/Source/Modulos/Familias/Views/uEditorFamilias.pas b/Source/Modulos/Familias/Views/uEditorFamilias.pas new file mode 100644 index 0000000..36572d5 --- /dev/null +++ b/Source/Modulos/Familias/Views/uEditorFamilias.pas @@ -0,0 +1,180 @@ +{ +=============================================================================== + Copyright () 2006. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: 22-05-2006 + Versin actual: 1.0.0 + Fecha versin actual: 22-05-2006 +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uEditorFamilias; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, DB, StdCtrls, DBCtrls, uDADataTable, ActnList, + uIEditorFamilias, uCustomEditor, uGUIBase, ExtCtrls, + ComCtrls, uBizFamilias, uFamiliasController, uDAInterfaces; + +type + TfEditorFamilias = class(TCustomEditor, IEditorFamilias) + ActionList1: TActionList; + DADataSource: TDADataSource; + ListaFamilias: TDBLookupListBox; + actAnadir: TAction; + actEliminar: TAction; + bEliminar: TButton; + actAceptar: TAction; + actCancelar: TAction; + bAceptar: TButton; + bCancelar: TButton; + actCerrar: TAction; + PageControl1: TPageControl; + TabSheet1: TTabSheet; + Label1: TLabel; + Label2: TLabel; + Bevel1: TBevel; + eCategoria: TLabel; + editFamilia: TEdit; + bAnadir: TButton; + procedure FormShow(Sender: TObject); + procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); + + procedure actAnadirExecute(Sender: TObject); + procedure actEliminarExecute(Sender: TObject); + procedure actAceptarExecute(Sender: TObject); + procedure actCancelarExecute(Sender: TObject); + procedure actCerrarExecute(Sender: TObject); + procedure actAnadirUpdate(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + protected + FFamilias: IBizFamilia; + FController: IFamiliasController; + function GetFamilias: IBizFamilia; + procedure SetFamilias(const Value: IBizFamilia); + function GetController : IFamiliasController; + procedure SetController (const Value : IFamiliasController); + public + property Familias: IBizFamilia read GetFamilias write SetFamilias; + property Controller : IFamiliasController read GetController write SetController; + end; + + +implementation +{$R *.dfm} + +{ TfEditorFamilias } + +uses + uDialogUtils; + +function TfEditorFamilias.GetController: IFamiliasController; +begin + Result := FController; +end; + +function TfEditorFamilias.GetFamilias: IBizFamilia; +begin + Result := FFamilias; +end; + +procedure TfEditorFamilias.SetController(const Value: IFamiliasController); +begin + FController := Value; +end; + +procedure TfEditorFamilias.SetFamilias(const Value: IBizFamilia); +begin + FFamilias := Value; + DADataSource.DataTable := (FFamilias as IBizFamilia).DataTable; + DADataSource.DataTable.Open; +end; + +procedure TfEditorFamilias.actAnadirExecute(Sender: TObject); +begin + if not FController.Localizar(Familias, editFamilia.Text) then + begin + Familias.Append; + Familias.DESCRIPCION := editFamilia.Text; + Familias.Post; + editFamilia.Clear; + ListaFamilias.SetFocus; + end + else + ShowErrorMessage('Ya existe la familia ' + editFamilia.Text, + 'Ya existe la familia ''' + editFamilia.Text + ''' en la lista.'); +end; + +procedure TfEditorFamilias.actEliminarExecute(Sender: TObject); +begin + Familias.Delete; + ListaFamilias.SetFocus; +end; + +procedure TfEditorFamilias.actEliminarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := (FFamilias.DataTable.RecordCount > 0) and + (Length(ListaFamilias.SelectedItem) > 0); + +end; + +procedure TfEditorFamilias.CustomEditorClose(Sender: TObject; var Action: TCloseAction); +begin + FFamilias := Nil; + FController := Nil; +end; + +procedure TfEditorFamilias.actAceptarExecute(Sender: TObject); +begin + try + Familias.DataTable.ApplyUpdates; + except + on E : Exception do begin + Familias.DataTable.CancelUpdates; + ShowErrorMessage('Error al guardar cambios', 'Se ha producido un error grave', E); + exit; + end; + end; + actCerrar.Execute; +end; + +procedure TfEditorFamilias.actCancelarExecute(Sender: TObject); +begin + Familias.DataTable.CancelUpdates; + actCerrar.Execute; +end; + +procedure TfEditorFamilias.actCerrarExecute(Sender: TObject); +begin + Close; +end; + +procedure TfEditorFamilias.actAnadirUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := (Length(editFamilia.Text) > 0) +end; + +procedure TfEditorFamilias.FormShow(Sender: TObject); +begin + if not FFamilias.DataTable.Active then + FFamilias.DataTable.Active := true; + + EditFamilia.SetFocus; +end; + +end. diff --git a/Source/Modulos/Familias/Views/uFamiliasViewRegister.dcu b/Source/Modulos/Familias/Views/uFamiliasViewRegister.dcu new file mode 100644 index 0000000..0ffacaa Binary files /dev/null and b/Source/Modulos/Familias/Views/uFamiliasViewRegister.dcu differ diff --git a/Source/Modulos/Familias/Views/uFamiliasViewRegister.pas b/Source/Modulos/Familias/Views/uFamiliasViewRegister.pas new file mode 100644 index 0000000..755b013 --- /dev/null +++ b/Source/Modulos/Familias/Views/uFamiliasViewRegister.pas @@ -0,0 +1,23 @@ +unit uFamiliasViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorFamilias; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorFamilias, 'EditorFamilias'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorFamilias); +end; + +end. diff --git a/Source/Modulos/Formas de pago/Controller/FormasPago_controller.bdsproj b/Source/Modulos/Formas de pago/Controller/FormasPago_controller.bdsproj new file mode 100644 index 0000000..f81f2c1 --- /dev/null +++ b/Source/Modulos/Formas de pago/Controller/FormasPago_controller.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + FormasPago_controller.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Formas de pago/Controller/FormasPago_controller.dcu b/Source/Modulos/Formas de pago/Controller/FormasPago_controller.dcu new file mode 100644 index 0000000..256ee73 Binary files /dev/null and b/Source/Modulos/Formas de pago/Controller/FormasPago_controller.dcu differ diff --git a/Source/Modulos/Formas de pago/Controller/FormasPago_controller.dpk b/Source/Modulos/Formas de pago/Controller/FormasPago_controller.dpk new file mode 100644 index 0000000..94b140a Binary files /dev/null and b/Source/Modulos/Formas de pago/Controller/FormasPago_controller.dpk differ diff --git a/Source/Modulos/Formas de pago/Controller/FormasPago_controller.dproj b/Source/Modulos/Formas de pago/Controller/FormasPago_controller.dproj new file mode 100644 index 0000000..1d17ed4 --- /dev/null +++ b/Source/Modulos/Formas de pago/Controller/FormasPago_controller.dproj @@ -0,0 +1,546 @@ + + + {7f80f8aa-6912-4714-986d-aed73035472b} + FormasPago_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\FormasPago_controller.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + DEBUG + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0FormasPago_controller.dpk + + + + + MainSource + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Formas de pago/Controller/FormasPago_controller.gex b/Source/Modulos/Formas de pago/Controller/FormasPago_controller.gex new file mode 100644 index 0000000..9d9fd7d --- /dev/null +++ b/Source/Modulos/Formas de pago/Controller/FormasPago_controller.gex @@ -0,0 +1,7 @@ +[General] +Name=FormasPago_controller +Project=1 +[Classes] +Count=2 +Class0="TFormasPagoController","TObservador, IFormasPagoController","uFormasPagoController","0","T:\Codigo (Luis Leon)\Modulos\Formas de pago\Controller\uFormasPagoController.pas" +Class1="TFormasPagoPlazosController","TInterfacedObject, IFormasPagoPlazosController","uFormasPagoPlazosController","0","T:\Codigo (Luis Leon)\Modulos\Formas de pago\Controller\uFormasPagoPlazosController.pas" diff --git a/Source/Modulos/Formas de pago/Controller/FormasPago_controller.rc b/Source/Modulos/Formas de pago/Controller/FormasPago_controller.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Formas de pago/Controller/FormasPago_controller.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Formas de pago/Controller/FormasPago_controller.res b/Source/Modulos/Formas de pago/Controller/FormasPago_controller.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Formas de pago/Controller/FormasPago_controller.res differ diff --git a/Source/Modulos/Formas de pago/Controller/View/uIEditorFormaPago.dcu b/Source/Modulos/Formas de pago/Controller/View/uIEditorFormaPago.dcu new file mode 100644 index 0000000..6e9a76b Binary files /dev/null and b/Source/Modulos/Formas de pago/Controller/View/uIEditorFormaPago.dcu differ diff --git a/Source/Modulos/Formas de pago/Controller/View/uIEditorFormaPago.pas b/Source/Modulos/Formas de pago/Controller/View/uIEditorFormaPago.pas new file mode 100644 index 0000000..6b4ba06 --- /dev/null +++ b/Source/Modulos/Formas de pago/Controller/View/uIEditorFormaPago.pas @@ -0,0 +1,22 @@ +unit uIEditorFormaPago; + +interface + +uses + uBizFormasPago; + +type + IEditorFormaPago = interface + ['{3CDABEA1-F952-4F35-8A31-279FFB7C31E4}'] + function GetFormaPago: IBizFormaPago; + procedure SetFormaPago(const Value: IBizFormaPago); + property FormaPago: IBizFormaPago read GetFormaPago write SetFormaPago; + + function ShowModal : Integer; + procedure Release; + end; + + +implementation + +end. diff --git a/Source/Modulos/Formas de pago/Controller/View/uIEditorFormasPago.dcu b/Source/Modulos/Formas de pago/Controller/View/uIEditorFormasPago.dcu new file mode 100644 index 0000000..55f89b0 Binary files /dev/null and b/Source/Modulos/Formas de pago/Controller/View/uIEditorFormasPago.dcu differ diff --git a/Source/Modulos/Formas de pago/Controller/View/uIEditorFormasPago.pas b/Source/Modulos/Formas de pago/Controller/View/uIEditorFormasPago.pas new file mode 100644 index 0000000..750d066 --- /dev/null +++ b/Source/Modulos/Formas de pago/Controller/View/uIEditorFormasPago.pas @@ -0,0 +1,21 @@ +unit uIEditorFormasPago; + +interface + +uses + uBizFormasPago; + +type + IEditorFormasPago = interface + ['{47A77BA9-3845-469B-A790-81F3C6E0F134}'] + function GetFormasPago: IBizFormaPago; + procedure SetFormasPago(const Value: IBizFormaPago); + property FormasPago: IBizFormaPago read GetFormasPago write SetFormasPago; + function ShowModal : Integer; + procedure Release; + end; + + +implementation + +end. diff --git a/Source/Modulos/Formas de pago/Controller/uFormasPagoController.dcu b/Source/Modulos/Formas de pago/Controller/uFormasPagoController.dcu new file mode 100644 index 0000000..32613bf Binary files /dev/null and b/Source/Modulos/Formas de pago/Controller/uFormasPagoController.dcu differ diff --git a/Source/Modulos/Formas de pago/Controller/uFormasPagoController.pas b/Source/Modulos/Formas de pago/Controller/uFormasPagoController.pas new file mode 100644 index 0000000..ba79eaa --- /dev/null +++ b/Source/Modulos/Formas de pago/Controller/uFormasPagoController.pas @@ -0,0 +1,269 @@ +unit uFormasPagoController; + +interface + + +uses + Classes, SysUtils, uDADataTable, uControllerBase, + uBizFormasPago, uFormasPagoPlazosController, uIDataModuleFormasPago; +type + IFormasPagoController = interface(IControllerBase) + ['{94E5F2B6-64C8-4331-B9CB-3ED730478529}'] + function BuscarTodos: IBizFormaPago; + function Buscar(ID: Integer): IBizFormaPago; + procedure VerTodos(AFormasPago: IBizFormaPago); + procedure Ver(AFormaPago: IBizFormaPago); + procedure Anadir(AFormaPago : IBizFormaPago); + function Eliminar(AFormaPago : IBizFormaPago): Boolean; + function Guardar(AFormaPago : IBizFormaPago): Boolean; + procedure DescartarCambios(AFormaPago : IBizFormaPago); + function Localizar(AFormasPago: IBizFormaPago; ADescripcion:String): Boolean; + function DarListaFormasPago: TStringList; + end; + + TFormasPagoController = class(TControllerBase, IFormasPagoController) + protected + FDataModule : IDataModuleFormasPago; + FPlazosController : IFormasPagoPlazosController; + + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; + + function ValidarFormaPago(AFormaPago: IBizFormaPago): Boolean; + procedure AsignarDataModule; + + public + constructor Create; override; + destructor Destroy; override; + + function Eliminar(AFormaPago : IBizFormaPago): Boolean; + function Guardar(AFormaPago : IBizFormaPago): Boolean; virtual; + procedure DescartarCambios(AFormaPago : IBizFormaPago); virtual; + procedure Anadir(AFormaPago : IBizFormaPago); + function BuscarTodos: IBizFormaPago; + function Buscar(ID: Integer): IBizFormaPago; + procedure VerTodos(AFormasPago: IBizFormaPago); + procedure Ver(AFormaPago: IBizFormaPago); + function Localizar(AFormasPago: IBizFormaPago; ADescripcion:String): Boolean; + function DarListaFormasPago: TStringList; + end; + +implementation + +uses + cxControls, DB, uEditorRegistryUtils, schFormasPagoClient_Intf, + uIEditorFormasPago, uIEditorFormaPago, uDataModuleFormasPago, + uDAInterfaces, uDataTableUtils, uDialogUtils, + uDateUtils, uROTypes, DateUtils, Controls, Windows; + +{ TFormasPagoController } + +procedure TFormasPagoController.Anadir(AFormaPago: IBizFormaPago); +begin + AFormaPago.Insert; +end; + +procedure TFormasPagoController.AsignarDataModule; +begin + FDataModule := TDataModuleFormasPago.Create(Nil); +end; + +function TFormasPagoController.Buscar(ID: Integer): IBizFormaPago; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + + with Result.DataTable.DynamicWhere do + begin + // (ID = :ID) + Condicion := NewBinaryExpression(NewField('', fld_FormasPagoID), NewConstant(ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TFormasPagoController.BuscarTodos: IBizFormaPago; +begin + Result := FDataModule.GetItems; +end; + +constructor TFormasPagoController.Create; +begin + inherited; + AsignarDataModule; + FPlazosController := TFormasPagoPlazosController.Create; +end; + +function TFormasPagoController.CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + +function TFormasPagoController.DarListaFormasPago: TStringList; +var + AFormasPago: IBizFormaPago; +begin + AFormasPago := BuscarTodos; + AFormasPago.DataTable.Active := True; + Result := TStringList.Create; + try + with Result do + begin + AFormasPago.DataTable.First; + while not AFormasPago.DataTable.EOF do + begin + Add(AFormasPago.DESCRIPCION); + AFormasPago.DataTable.Next; + end; + end; + finally + AFormasPago := NIL; + end; +end; + +procedure TFormasPagoController.DescartarCambios(AFormaPago: IBizFormaPago); +begin + if not Assigned(AFormaPago) then + raise Exception.Create ('Forma de pago no asignada'); + + ShowHourglassCursor; + try + if (AFormaPago.State in dsEditModes) then + AFormaPago.Cancel; + + AFormaPago.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TFormasPagoController.Destroy; +begin + FDataModule:= NIL; + FPlazosController := NIL; + inherited; +end; + +function TFormasPagoController.ValidarFormaPago(AFormaPago: IBizFormaPago): Boolean; +begin + Result := False; + + if not Assigned(AFormaPago) then + raise Exception.Create ('Forma de pago no asignada'); + + if (AFormaPago.DataTable.State in dsEditModes) then + AFormaPago.DataTable.Post; + + if Length(AFormaPago.REFERENCIA) = 0 then + raise Exception.Create('Debe indicar una referencia para esta forma de pago.'); + + if Length(AFormaPago.DESCRIPCION) = 0 then + raise Exception.Create('Debe indicar una descripcin para esta forma de pago.'); + + Result := True; +end; + +procedure TFormasPagoController.Ver(AFormaPago: IBizFormaPago); +var + AEditor : IEditorFormaPago; +begin + AEditor := NIL; + + CreateEditor('EditorFormaPago', IEditorFormaPago, AEditor); + if Assigned(AEditor) then + try + AEditor.FormaPago := AFormaPago; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +procedure TFormasPagoController.VerTodos(AFormasPago: IBizFormaPago); +var + AEditor : IEditorFormasPago; +begin + AEditor := NIL; + + CreateEditor('EditorFormasPago', IEditorFormasPago, AEditor); + if Assigned(AEditor) then + try + AEditor.FormasPago := AFormasPago; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +function TFormasPagoController.Eliminar(AFormaPago: IBizFormaPago): Boolean; +begin + if not Assigned(AFormaPago) then + raise Exception.Create ('Forma de pago no asignada'); + + ShowHourglassCursor; + try + if (AFormaPago.State in dsEditModes) then + AFormaPago.Cancel; + + AFormaPago.Delete; + AFormaPago.DataTable.ApplyUpdates; + HideHourglassCursor; + Result := True; + finally + HideHourglassCursor; + end; +end; + +procedure TFormasPagoController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +begin + inherited; +// +end; + +function TFormasPagoController.Guardar(AFormaPago: IBizFormaPago): Boolean; +begin + Result := False; + + if ValidarFormaPago(AFormaPago) then + begin + ShowHourglassCursor; + try + AFormaPago.DataTable.ApplyUpdates; + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TFormasPagoController.Localizar(AFormasPago: IBizFormaPago; ADescripcion: String): Boolean; +begin + Result := True; + ShowHourglassCursor; + try + with AFormasPago.DataTable do + begin + DisableControls; + First; + if not Locate(fld_FormasPagoDESCRIPCION, ADescripcion, []) then + Result := False; + EnableControls; + end; + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Formas de pago/Controller/uFormasPagoPlazosController.dcu b/Source/Modulos/Formas de pago/Controller/uFormasPagoPlazosController.dcu new file mode 100644 index 0000000..ae197be Binary files /dev/null and b/Source/Modulos/Formas de pago/Controller/uFormasPagoPlazosController.dcu differ diff --git a/Source/Modulos/Formas de pago/Controller/uFormasPagoPlazosController.pas b/Source/Modulos/Formas de pago/Controller/uFormasPagoPlazosController.pas new file mode 100644 index 0000000..aba3e54 --- /dev/null +++ b/Source/Modulos/Formas de pago/Controller/uFormasPagoPlazosController.pas @@ -0,0 +1,42 @@ +unit uFormasPagoPlazosController; + +interface + +uses + Windows, Forms, Classes, Controls, Contnrs, SysUtils, uDADataTable, + uBizFormasPago, uBizFormasPagoPlazos, uIDataModuleFormasPago, + uControllerBase; +type + IFormasPagoPlazosController = interface(IControllerBase) + ['{3FCE2A31-9783-45F9-96D6-1157165AB8DB}'] + end; + + TFormasPagoPlazosController = class(TControllerBase, IFormasPagoPlazosController) + private + FDataModule : IDataModuleFormasPago; + public + constructor Create; override; + destructor Destroy; override; + end; + +implementation + +{ TFormasPagoPlazosController } + +uses + uEditorRegistryUtils, uDataModuleFormasPago, + cxControls, schFormasPagoClient_Intf; + +constructor TFormasPagoPlazosController.Create; +begin + inherited; + FDataModule := TDataModuleFormasPago.Create(Nil); +end; + +destructor TFormasPagoPlazosController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + +end. diff --git a/Source/Modulos/Formas de pago/Data/FormasPago_data.bdsproj b/Source/Modulos/Formas de pago/Data/FormasPago_data.bdsproj new file mode 100644 index 0000000..62fa68d --- /dev/null +++ b/Source/Modulos/Formas de pago/Data/FormasPago_data.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + FormasPago_data.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Formas de pago/Data/FormasPago_data.dcu b/Source/Modulos/Formas de pago/Data/FormasPago_data.dcu new file mode 100644 index 0000000..627693e Binary files /dev/null and b/Source/Modulos/Formas de pago/Data/FormasPago_data.dcu differ diff --git a/Source/Modulos/Formas de pago/Data/FormasPago_data.dpk b/Source/Modulos/Formas de pago/Data/FormasPago_data.dpk new file mode 100644 index 0000000..24236f2 Binary files /dev/null and b/Source/Modulos/Formas de pago/Data/FormasPago_data.dpk differ diff --git a/Source/Modulos/Formas de pago/Data/FormasPago_data.dproj b/Source/Modulos/Formas de pago/Data/FormasPago_data.dproj new file mode 100644 index 0000000..4227de3 --- /dev/null +++ b/Source/Modulos/Formas de pago/Data/FormasPago_data.dproj @@ -0,0 +1,548 @@ + + + + {c8118762-09b6-432f-ba26-058fa36c39d9} + FormasPago_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\FormasPago_data.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + DEBUG + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0FormasPago_data.dpk + + + + + MainSource + + + + + + + + + + + + +
DataModuleFormasPago
+
+
+
+ \ No newline at end of file diff --git a/Source/Modulos/Formas de pago/Data/FormasPago_data.rc b/Source/Modulos/Formas de pago/Data/FormasPago_data.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Formas de pago/Data/FormasPago_data.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Formas de pago/Data/FormasPago_data.res b/Source/Modulos/Formas de pago/Data/FormasPago_data.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Formas de pago/Data/FormasPago_data.res differ diff --git a/Source/Modulos/Formas de pago/Data/uDataModuleFormasPago.dcu b/Source/Modulos/Formas de pago/Data/uDataModuleFormasPago.dcu new file mode 100644 index 0000000..5d14352 Binary files /dev/null and b/Source/Modulos/Formas de pago/Data/uDataModuleFormasPago.dcu differ diff --git a/Source/Modulos/Formas de pago/Data/uDataModuleFormasPago.dfm b/Source/Modulos/Formas de pago/Data/uDataModuleFormasPago.dfm new file mode 100644 index 0000000..afe340f --- /dev/null +++ b/Source/Modulos/Formas de pago/Data/uDataModuleFormasPago.dfm @@ -0,0 +1,155 @@ +inherited DataModuleFormasPago: TDataModuleFormasPago + OnCreate = DAClientDataModuleCreate + Height = 264 + Width = 483 + object RORemoteService: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvFormasPago' + Left = 48 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 104 + end + object rda_FormasPago: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetDataCall.RemoteService = RORemoteService + UpdateDataCall.RemoteService = RORemoteService + GetScriptsCall.RemoteService = RORemoteService + RemoteService = RORemoteService + DataStreamer = Bin2DataStreamer + Left = 208 + Top = 24 + end + object tbl_FormasPago: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_FORMAS_PAGO_ID' + Required = True + ServerAutoRefresh = True + DictionaryEntry = 'FormasPago_ID' + InPrimaryKey = True + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + DictionaryEntry = 'FormasPago_REFERENCIA' + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DisplayLabel = 'Descripci'#243'n' + DictionaryEntry = 'FormasPago_DESCRIPCION' + end + item + Name = 'TITULAR' + DataType = datString + Size = 255 + DisplayLabel = 'Titular' + DictionaryEntry = 'FormasPago_TITULAR' + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + DisplayLabel = 'C'#243'd. Entidad' + DictionaryEntry = 'FormasPago_ENTIDAD' + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + DisplayLabel = 'C'#243'd. Sucusal' + DictionaryEntry = 'FormasPago_SUCURSAL' + end + item + Name = 'DC' + DataType = datString + Size = 15 + DictionaryEntry = 'FormasPago_DC' + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + DisplayLabel = 'C'#243'd. Cuenta' + DictionaryEntry = 'FormasPago_CUENTA' + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_FormasPago + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'FormasPago' + IndexDefs = <> + Left = 208 + Top = 104 + end + object ds_FormasPago: TDADataSource + DataSet = tbl_FormasPago.Dataset + DataTable = tbl_FormasPago + Left = 208 + Top = 176 + end + object tbl_FormasPagoPlazos: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_FORMAS_PAGO_PLAZOS_ID' + Required = True + DisplayLabel = 'FormasPagoPlazos_ID' + ServerAutoRefresh = True + DictionaryEntry = 'FormasPagoPlazos_ID' + InPrimaryKey = True + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + Required = True + DisplayLabel = 'FormasPagoPlazos_ID_FORMA_PAGO' + DictionaryEntry = 'FormasPagoPlazos_ID_FORMA_PAGO' + end + item + Name = 'NUM_DIAS' + DataType = datSmallInt + DisplayLabel = 'Num. d'#237'as' + DictionaryEntry = 'FormasPagoPlazos_NUM_DIAS' + end + item + Name = 'PORCENTAJE' + DataType = datFloat + DisplayLabel = '% aplazado' + Alignment = taRightJustify + DictionaryEntry = 'FormasPagoPlazos_PORCENTAJE' + end> + Params = <> + MasterMappingMode = mmWhere + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_FormasPago + MasterSource = ds_FormasPago + MasterFields = 'ID' + DetailFields = 'ID_FORMA_PAGO' + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'FormasPagoPlazos' + IndexDefs = <> + Left = 344 + Top = 104 + end + object ds_FormasPagoPlazos: TDADataSource + DataSet = tbl_FormasPagoPlazos.Dataset + DataTable = tbl_FormasPagoPlazos + Left = 344 + Top = 176 + end +end diff --git a/Source/Modulos/Formas de pago/Data/uDataModuleFormasPago.pas b/Source/Modulos/Formas de pago/Data/uDataModuleFormasPago.pas new file mode 100644 index 0000000..0e204e6 --- /dev/null +++ b/Source/Modulos/Formas de pago/Data/uDataModuleFormasPago.pas @@ -0,0 +1,81 @@ +unit uDataModuleFormasPago; + +interface + +uses + SysUtils, Classes, DB, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, uControllerBase, + uBizFormasPago, uBizFormasPagoPlazos, + uDARemoteDataAdapter, uDADataStreamer, uDAInterfaces, uRODynamicRequest, + uDABin2DataStreamer, uDAMemDataTable, uIDataModuleFormasPago, uDataModuleBase; +type + TDataModuleFormasPago = class(TDataModuleBase, IDataModuleFormasPago) + RORemoteService: TRORemoteService; + Bin2DataStreamer: TDABin2DataStreamer; + rda_FormasPago: TDARemoteDataAdapter; + tbl_FormasPago: TDAMemDataTable; + ds_FormasPago: TDADataSource; + tbl_FormasPagoPlazos: TDAMemDataTable; + ds_FormasPagoPlazos: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + protected + function _GetPlazos: IBizFormaPagoPlazos; + public + function GetItems: IBizFormaPago; + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, + schFormasPagoClient_Intf; + +{ TdmAlmacens } + +procedure TDataModuleFormasPago.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleFormasPago._GetPlazos: IBizFormaPagoPlazos; +var + APlazos : TDAMemDataTable; +begin + ShowHourglassCursor; + try + APlazos := CloneDataTable(tbl_FormasPagoPlazos); + with APlazos do + begin + BusinessRulesID := BIZ_CLIENT_FORMAPAGOPLAZOS; + DetailOptions := DetailOptions - + [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; + end; + Result := (APlazos as IBizFormaPagoPlazos); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleFormasPago.GetItems: IBizFormaPago; +var + AFormaPago : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AFormaPago := CloneDataTable(tbl_FormasPago); + AFormaPago.BusinessRulesID := BIZ_CLIENT_FORMAPAGO; + with TBizFormaPago(AFormaPago.BusinessEventsObj) do + Plazos := _GetPlazos; + + Result := (AFormaPago as IBizFormaPago); + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Formas de pago/FormasPago_Group.bdsgroup b/Source/Modulos/Formas de pago/FormasPago_Group.bdsgroup new file mode 100644 index 0000000..a345972 --- /dev/null +++ b/Source/Modulos/Formas de pago/FormasPago_Group.bdsgroup @@ -0,0 +1,24 @@ + + + + + + + + + + + ..\..\Base\Base.bdsproj + ..\..\Base\GUIBase\GUIBase.bdsproj + ..\..\Base\Usuarios\Usuarios.bdsproj + Model\FormasPago_model.bdsproj + Data\FormasPago_data.bdsproj + Controller\FormasPago_controller.bdsproj + Views\FormasPago_view.bdsproj + Plugin\FormasPago_plugin.bdsproj + Base.bpl GUIBase.bpl Usuarios.bpl FormasPago_model.bpl FormasPago_data.bpl FormasPago_controller.bpl FormasPago_view.bpl FormasPago_plugin.bpl + + + + diff --git a/Source/Modulos/Formas de pago/FormasPago_Group.groupproj b/Source/Modulos/Formas de pago/FormasPago_Group.groupproj new file mode 100644 index 0000000..07ae046 --- /dev/null +++ b/Source/Modulos/Formas de pago/FormasPago_Group.groupproj @@ -0,0 +1,114 @@ + + + {3df776bd-a3f8-4f3a-9129-45fdb4a2ee63} + + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Formas de pago/Model/Data/uIDataModuleFormasPago.dcu b/Source/Modulos/Formas de pago/Model/Data/uIDataModuleFormasPago.dcu new file mode 100644 index 0000000..d3755b6 Binary files /dev/null and b/Source/Modulos/Formas de pago/Model/Data/uIDataModuleFormasPago.dcu differ diff --git a/Source/Modulos/Formas de pago/Model/Data/uIDataModuleFormasPago.pas b/Source/Modulos/Formas de pago/Model/Data/uIDataModuleFormasPago.pas new file mode 100644 index 0000000..c0e7da7 --- /dev/null +++ b/Source/Modulos/Formas de pago/Model/Data/uIDataModuleFormasPago.pas @@ -0,0 +1,16 @@ +unit uIDataModuleFormasPago; + +interface + +uses + uBizFormasPago; + +type + IDataModuleFormasPago = interface(IInterface) + ['{CC6A63E1-2AF2-40E5-B6DC-46CC1549AA56}'] + function GetItems: IBizFormaPago; + end; + +implementation + +end. diff --git a/Source/Modulos/Formas de pago/Model/FormasPago_model.bdsproj b/Source/Modulos/Formas de pago/Model/FormasPago_model.bdsproj new file mode 100644 index 0000000..57c3141 --- /dev/null +++ b/Source/Modulos/Formas de pago/Model/FormasPago_model.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + FormasPago_model.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Formas de pago/Model/FormasPago_model.dcu b/Source/Modulos/Formas de pago/Model/FormasPago_model.dcu new file mode 100644 index 0000000..1671068 Binary files /dev/null and b/Source/Modulos/Formas de pago/Model/FormasPago_model.dcu differ diff --git a/Source/Modulos/Formas de pago/Model/FormasPago_model.dpk b/Source/Modulos/Formas de pago/Model/FormasPago_model.dpk new file mode 100644 index 0000000..74555db Binary files /dev/null and b/Source/Modulos/Formas de pago/Model/FormasPago_model.dpk differ diff --git a/Source/Modulos/Formas de pago/Model/FormasPago_model.dproj b/Source/Modulos/Formas de pago/Model/FormasPago_model.dproj new file mode 100644 index 0000000..2273e1a --- /dev/null +++ b/Source/Modulos/Formas de pago/Model/FormasPago_model.dproj @@ -0,0 +1,544 @@ + + + + {73acd39c-b2f0-49b7-9acf-10945bbac8c1} + FormasPago_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\FormasPago_model.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0FormasPago_model.dpk + + + + + MainSource + + + + + + + + + + + + + + diff --git a/Source/Modulos/Formas de pago/Model/FormasPago_model.rc b/Source/Modulos/Formas de pago/Model/FormasPago_model.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Formas de pago/Model/FormasPago_model.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Formas de pago/Model/FormasPago_model.res b/Source/Modulos/Formas de pago/Model/FormasPago_model.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Formas de pago/Model/FormasPago_model.res differ diff --git a/Source/Modulos/Formas de pago/Model/schFormasPagoClient_Intf.dcu b/Source/Modulos/Formas de pago/Model/schFormasPagoClient_Intf.dcu new file mode 100644 index 0000000..895d9ee Binary files /dev/null and b/Source/Modulos/Formas de pago/Model/schFormasPagoClient_Intf.dcu differ diff --git a/Source/Modulos/Formas de pago/Model/schFormasPagoClient_Intf.pas b/Source/Modulos/Formas de pago/Model/schFormasPagoClient_Intf.pas new file mode 100644 index 0000000..5f4b493 --- /dev/null +++ b/Source/Modulos/Formas de pago/Model/schFormasPagoClient_Intf.pas @@ -0,0 +1,526 @@ +unit schFormasPagoClient_Intf; + +interface + +uses + Classes, DB, schBase_Intf, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_FormasPago = '{0AC9176F-E9B6-43BA-B03E-0973D7074140}'; + RID_FormasPagoPlazos = '{F02E8B61-F06F-48FE-B705-0C42FB672FB5}'; + + { Data table names } + nme_FormasPago = 'FormasPago'; + nme_FormasPagoPlazos = 'FormasPagoPlazos'; + + { FormasPago fields } + fld_FormasPagoID = 'ID'; + fld_FormasPagoREFERENCIA = 'REFERENCIA'; + fld_FormasPagoDESCRIPCION = 'DESCRIPCION'; + fld_FormasPagoTITULAR = 'TITULAR'; + fld_FormasPagoENTIDAD = 'ENTIDAD'; + fld_FormasPagoSUCURSAL = 'SUCURSAL'; + fld_FormasPagoDC = 'DC'; + fld_FormasPagoCUENTA = 'CUENTA'; + + { FormasPago field indexes } + idx_FormasPagoID = 0; + idx_FormasPagoREFERENCIA = 1; + idx_FormasPagoDESCRIPCION = 2; + idx_FormasPagoTITULAR = 3; + idx_FormasPagoENTIDAD = 4; + idx_FormasPagoSUCURSAL = 5; + idx_FormasPagoDC = 6; + idx_FormasPagoCUENTA = 7; + + { FormasPagoPlazos fields } + fld_FormasPagoPlazosID = 'ID'; + fld_FormasPagoPlazosID_FORMA_PAGO = 'ID_FORMA_PAGO'; + fld_FormasPagoPlazosNUM_DIAS = 'NUM_DIAS'; + fld_FormasPagoPlazosPORCENTAJE = 'PORCENTAJE'; + + { FormasPagoPlazos field indexes } + idx_FormasPagoPlazosID = 0; + idx_FormasPagoPlazosID_FORMA_PAGO = 1; + idx_FormasPagoPlazosNUM_DIAS = 2; + idx_FormasPagoPlazosPORCENTAJE = 3; + +type + { IFormasPago } + IFormasPago = interface(IDAStronglyTypedDataTable) + ['{2906012F-51D2-4722-A42A-1A1F0B5F5DA3}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetDESCRIPCIONIsNull: Boolean; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); + function GetTITULARValue: String; + procedure SetTITULARValue(const aValue: String); + function GetTITULARIsNull: Boolean; + procedure SetTITULARIsNull(const aValue: Boolean); + function GetENTIDADValue: String; + procedure SetENTIDADValue(const aValue: String); + function GetENTIDADIsNull: Boolean; + procedure SetENTIDADIsNull(const aValue: Boolean); + function GetSUCURSALValue: String; + procedure SetSUCURSALValue(const aValue: String); + function GetSUCURSALIsNull: Boolean; + procedure SetSUCURSALIsNull(const aValue: Boolean); + function GetDCValue: String; + procedure SetDCValue(const aValue: String); + function GetDCIsNull: Boolean; + procedure SetDCIsNull(const aValue: Boolean); + function GetCUENTAValue: String; + procedure SetCUENTAValue(const aValue: String); + function GetCUENTAIsNull: Boolean; + procedure SetCUENTAIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property TITULAR: String read GetTITULARValue write SetTITULARValue; + property TITULARIsNull: Boolean read GetTITULARIsNull write SetTITULARIsNull; + property ENTIDAD: String read GetENTIDADValue write SetENTIDADValue; + property ENTIDADIsNull: Boolean read GetENTIDADIsNull write SetENTIDADIsNull; + property SUCURSAL: String read GetSUCURSALValue write SetSUCURSALValue; + property SUCURSALIsNull: Boolean read GetSUCURSALIsNull write SetSUCURSALIsNull; + property DC: String read GetDCValue write SetDCValue; + property DCIsNull: Boolean read GetDCIsNull write SetDCIsNull; + property CUENTA: String read GetCUENTAValue write SetCUENTAValue; + property CUENTAIsNull: Boolean read GetCUENTAIsNull write SetCUENTAIsNull; + end; + + { TFormasPagoDataTableRules } + TFormasPagoDataTableRules = class(TIntfObjectDADataTableRules, IFormasPago) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + function GetTITULARValue: String; virtual; + procedure SetTITULARValue(const aValue: String); virtual; + function GetTITULARIsNull: Boolean; virtual; + procedure SetTITULARIsNull(const aValue: Boolean); virtual; + function GetENTIDADValue: String; virtual; + procedure SetENTIDADValue(const aValue: String); virtual; + function GetENTIDADIsNull: Boolean; virtual; + procedure SetENTIDADIsNull(const aValue: Boolean); virtual; + function GetSUCURSALValue: String; virtual; + procedure SetSUCURSALValue(const aValue: String); virtual; + function GetSUCURSALIsNull: Boolean; virtual; + procedure SetSUCURSALIsNull(const aValue: Boolean); virtual; + function GetDCValue: String; virtual; + procedure SetDCValue(const aValue: String); virtual; + function GetDCIsNull: Boolean; virtual; + procedure SetDCIsNull(const aValue: Boolean); virtual; + function GetCUENTAValue: String; virtual; + procedure SetCUENTAValue(const aValue: String); virtual; + function GetCUENTAIsNull: Boolean; virtual; + procedure SetCUENTAIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property TITULAR: String read GetTITULARValue write SetTITULARValue; + property TITULARIsNull: Boolean read GetTITULARIsNull write SetTITULARIsNull; + property ENTIDAD: String read GetENTIDADValue write SetENTIDADValue; + property ENTIDADIsNull: Boolean read GetENTIDADIsNull write SetENTIDADIsNull; + property SUCURSAL: String read GetSUCURSALValue write SetSUCURSALValue; + property SUCURSALIsNull: Boolean read GetSUCURSALIsNull write SetSUCURSALIsNull; + property DC: String read GetDCValue write SetDCValue; + property DCIsNull: Boolean read GetDCIsNull write SetDCIsNull; + property CUENTA: String read GetCUENTAValue write SetCUENTAValue; + property CUENTAIsNull: Boolean read GetCUENTAIsNull write SetCUENTAIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IFormasPagoPlazos } + IFormasPagoPlazos = interface(IDAStronglyTypedDataTable) + ['{6C99169B-3B96-4E95-9886-BFBDAF1C5836}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_FORMA_PAGOValue: Integer; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); + function GetID_FORMA_PAGOIsNull: Boolean; + procedure SetID_FORMA_PAGOIsNull(const aValue: Boolean); + function GetNUM_DIASValue: SmallInt; + procedure SetNUM_DIASValue(const aValue: SmallInt); + function GetNUM_DIASIsNull: Boolean; + procedure SetNUM_DIASIsNull(const aValue: Boolean); + function GetPORCENTAJEValue: Float; + procedure SetPORCENTAJEValue(const aValue: Float); + function GetPORCENTAJEIsNull: Boolean; + procedure SetPORCENTAJEIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property ID_FORMA_PAGOIsNull: Boolean read GetID_FORMA_PAGOIsNull write SetID_FORMA_PAGOIsNull; + property NUM_DIAS: SmallInt read GetNUM_DIASValue write SetNUM_DIASValue; + property NUM_DIASIsNull: Boolean read GetNUM_DIASIsNull write SetNUM_DIASIsNull; + property PORCENTAJE: Float read GetPORCENTAJEValue write SetPORCENTAJEValue; + property PORCENTAJEIsNull: Boolean read GetPORCENTAJEIsNull write SetPORCENTAJEIsNull; + end; + + { TFormasPagoPlazosDataTableRules } + TFormasPagoPlazosDataTableRules = class(TIntfObjectDADataTableRules, IFormasPagoPlazos) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + function GetID_FORMA_PAGOIsNull: Boolean; virtual; + procedure SetID_FORMA_PAGOIsNull(const aValue: Boolean); virtual; + function GetNUM_DIASValue: SmallInt; virtual; + procedure SetNUM_DIASValue(const aValue: SmallInt); virtual; + function GetNUM_DIASIsNull: Boolean; virtual; + procedure SetNUM_DIASIsNull(const aValue: Boolean); virtual; + function GetPORCENTAJEValue: Float; virtual; + procedure SetPORCENTAJEValue(const aValue: Float); virtual; + function GetPORCENTAJEIsNull: Boolean; virtual; + procedure SetPORCENTAJEIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property ID_FORMA_PAGOIsNull: Boolean read GetID_FORMA_PAGOIsNull write SetID_FORMA_PAGOIsNull; + property NUM_DIAS: SmallInt read GetNUM_DIASValue write SetNUM_DIASValue; + property NUM_DIASIsNull: Boolean read GetNUM_DIASIsNull write SetNUM_DIASIsNull; + property PORCENTAJE: Float read GetPORCENTAJEValue write SetPORCENTAJEValue; + property PORCENTAJEIsNull: Boolean read GetPORCENTAJEIsNull write SetPORCENTAJEIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants, uROBinaryHelpers; + +{ TFormasPagoDataTableRules } +constructor TFormasPagoDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TFormasPagoDataTableRules.Destroy; +begin + inherited; +end; + +function TFormasPagoDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_FormasPagoID].AsInteger; +end; + +procedure TFormasPagoDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_FormasPagoID].AsInteger := aValue; +end; + +function TFormasPagoDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_FormasPagoID].IsNull; +end; + +procedure TFormasPagoDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FormasPagoID].AsVariant := Null; +end; + +function TFormasPagoDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_FormasPagoREFERENCIA].AsString; +end; + +procedure TFormasPagoDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_FormasPagoREFERENCIA].AsString := aValue; +end; + +function TFormasPagoDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_FormasPagoREFERENCIA].IsNull; +end; + +procedure TFormasPagoDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FormasPagoREFERENCIA].AsVariant := Null; +end; + +function TFormasPagoDataTableRules.GetDESCRIPCIONValue: String; +begin + result := DataTable.Fields[idx_FormasPagoDESCRIPCION].AsString; +end; + +procedure TFormasPagoDataTableRules.SetDESCRIPCIONValue(const aValue: String); +begin + DataTable.Fields[idx_FormasPagoDESCRIPCION].AsString := aValue; +end; + +function TFormasPagoDataTableRules.GetDESCRIPCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_FormasPagoDESCRIPCION].IsNull; +end; + +procedure TFormasPagoDataTableRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FormasPagoDESCRIPCION].AsVariant := Null; +end; + +function TFormasPagoDataTableRules.GetTITULARValue: String; +begin + result := DataTable.Fields[idx_FormasPagoTITULAR].AsString; +end; + +procedure TFormasPagoDataTableRules.SetTITULARValue(const aValue: String); +begin + DataTable.Fields[idx_FormasPagoTITULAR].AsString := aValue; +end; + +function TFormasPagoDataTableRules.GetTITULARIsNull: boolean; +begin + result := DataTable.Fields[idx_FormasPagoTITULAR].IsNull; +end; + +procedure TFormasPagoDataTableRules.SetTITULARIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FormasPagoTITULAR].AsVariant := Null; +end; + +function TFormasPagoDataTableRules.GetENTIDADValue: String; +begin + result := DataTable.Fields[idx_FormasPagoENTIDAD].AsString; +end; + +procedure TFormasPagoDataTableRules.SetENTIDADValue(const aValue: String); +begin + DataTable.Fields[idx_FormasPagoENTIDAD].AsString := aValue; +end; + +function TFormasPagoDataTableRules.GetENTIDADIsNull: boolean; +begin + result := DataTable.Fields[idx_FormasPagoENTIDAD].IsNull; +end; + +procedure TFormasPagoDataTableRules.SetENTIDADIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FormasPagoENTIDAD].AsVariant := Null; +end; + +function TFormasPagoDataTableRules.GetSUCURSALValue: String; +begin + result := DataTable.Fields[idx_FormasPagoSUCURSAL].AsString; +end; + +procedure TFormasPagoDataTableRules.SetSUCURSALValue(const aValue: String); +begin + DataTable.Fields[idx_FormasPagoSUCURSAL].AsString := aValue; +end; + +function TFormasPagoDataTableRules.GetSUCURSALIsNull: boolean; +begin + result := DataTable.Fields[idx_FormasPagoSUCURSAL].IsNull; +end; + +procedure TFormasPagoDataTableRules.SetSUCURSALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FormasPagoSUCURSAL].AsVariant := Null; +end; + +function TFormasPagoDataTableRules.GetDCValue: String; +begin + result := DataTable.Fields[idx_FormasPagoDC].AsString; +end; + +procedure TFormasPagoDataTableRules.SetDCValue(const aValue: String); +begin + DataTable.Fields[idx_FormasPagoDC].AsString := aValue; +end; + +function TFormasPagoDataTableRules.GetDCIsNull: boolean; +begin + result := DataTable.Fields[idx_FormasPagoDC].IsNull; +end; + +procedure TFormasPagoDataTableRules.SetDCIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FormasPagoDC].AsVariant := Null; +end; + +function TFormasPagoDataTableRules.GetCUENTAValue: String; +begin + result := DataTable.Fields[idx_FormasPagoCUENTA].AsString; +end; + +procedure TFormasPagoDataTableRules.SetCUENTAValue(const aValue: String); +begin + DataTable.Fields[idx_FormasPagoCUENTA].AsString := aValue; +end; + +function TFormasPagoDataTableRules.GetCUENTAIsNull: boolean; +begin + result := DataTable.Fields[idx_FormasPagoCUENTA].IsNull; +end; + +procedure TFormasPagoDataTableRules.SetCUENTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FormasPagoCUENTA].AsVariant := Null; +end; + + +{ TFormasPagoPlazosDataTableRules } +constructor TFormasPagoPlazosDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TFormasPagoPlazosDataTableRules.Destroy; +begin + inherited; +end; + +function TFormasPagoPlazosDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_FormasPagoPlazosID].AsInteger; +end; + +procedure TFormasPagoPlazosDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_FormasPagoPlazosID].AsInteger := aValue; +end; + +function TFormasPagoPlazosDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_FormasPagoPlazosID].IsNull; +end; + +procedure TFormasPagoPlazosDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FormasPagoPlazosID].AsVariant := Null; +end; + +function TFormasPagoPlazosDataTableRules.GetID_FORMA_PAGOValue: Integer; +begin + result := DataTable.Fields[idx_FormasPagoPlazosID_FORMA_PAGO].AsInteger; +end; + +procedure TFormasPagoPlazosDataTableRules.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + DataTable.Fields[idx_FormasPagoPlazosID_FORMA_PAGO].AsInteger := aValue; +end; + +function TFormasPagoPlazosDataTableRules.GetID_FORMA_PAGOIsNull: boolean; +begin + result := DataTable.Fields[idx_FormasPagoPlazosID_FORMA_PAGO].IsNull; +end; + +procedure TFormasPagoPlazosDataTableRules.SetID_FORMA_PAGOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FormasPagoPlazosID_FORMA_PAGO].AsVariant := Null; +end; + +function TFormasPagoPlazosDataTableRules.GetNUM_DIASValue: SmallInt; +begin + result := DataTable.Fields[idx_FormasPagoPlazosNUM_DIAS].AsSmallInt; +end; + +procedure TFormasPagoPlazosDataTableRules.SetNUM_DIASValue(const aValue: SmallInt); +begin + DataTable.Fields[idx_FormasPagoPlazosNUM_DIAS].AsSmallInt := aValue; +end; + +function TFormasPagoPlazosDataTableRules.GetNUM_DIASIsNull: boolean; +begin + result := DataTable.Fields[idx_FormasPagoPlazosNUM_DIAS].IsNull; +end; + +procedure TFormasPagoPlazosDataTableRules.SetNUM_DIASIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FormasPagoPlazosNUM_DIAS].AsVariant := Null; +end; + +function TFormasPagoPlazosDataTableRules.GetPORCENTAJEValue: Float; +begin + result := DataTable.Fields[idx_FormasPagoPlazosPORCENTAJE].AsFloat; +end; + +procedure TFormasPagoPlazosDataTableRules.SetPORCENTAJEValue(const aValue: Float); +begin + DataTable.Fields[idx_FormasPagoPlazosPORCENTAJE].AsFloat := aValue; +end; + +function TFormasPagoPlazosDataTableRules.GetPORCENTAJEIsNull: boolean; +begin + result := DataTable.Fields[idx_FormasPagoPlazosPORCENTAJE].IsNull; +end; + +procedure TFormasPagoPlazosDataTableRules.SetPORCENTAJEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FormasPagoPlazosPORCENTAJE].AsVariant := Null; +end; + + +initialization + RegisterDataTableRules(RID_FormasPago, TFormasPagoDataTableRules); + RegisterDataTableRules(RID_FormasPagoPlazos, TFormasPagoPlazosDataTableRules); + +end. diff --git a/Source/Modulos/Formas de pago/Model/schFormasPagoServer_Intf.dcu b/Source/Modulos/Formas de pago/Model/schFormasPagoServer_Intf.dcu new file mode 100644 index 0000000..43f85f8 Binary files /dev/null and b/Source/Modulos/Formas de pago/Model/schFormasPagoServer_Intf.dcu differ diff --git a/Source/Modulos/Formas de pago/Model/schFormasPagoServer_Intf.pas b/Source/Modulos/Formas de pago/Model/schFormasPagoServer_Intf.pas new file mode 100644 index 0000000..874b45c --- /dev/null +++ b/Source/Modulos/Formas de pago/Model/schFormasPagoServer_Intf.pas @@ -0,0 +1,609 @@ +unit schFormasPagoServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schFormasPagoClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_FormasPagoDelta = '{3B5575C3-8103-4890-A2BF-8B93698E666B}'; + RID_FormasPagoPlazosDelta = '{E0326434-91CF-4E0E-B620-9C98B3FF28EA}'; + +type + { IFormasPagoDelta } + IFormasPagoDelta = interface(IFormasPago) + ['{3B5575C3-8103-4890-A2BF-8B93698E666B}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldREFERENCIAValue : String; + function GetOldDESCRIPCIONValue : String; + function GetOldTITULARValue : String; + function GetOldENTIDADValue : String; + function GetOldSUCURSALValue : String; + function GetOldDCValue : String; + function GetOldCUENTAValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldTITULAR : String read GetOldTITULARValue; + property OldENTIDAD : String read GetOldENTIDADValue; + property OldSUCURSAL : String read GetOldSUCURSALValue; + property OldDC : String read GetOldDCValue; + property OldCUENTA : String read GetOldCUENTAValue; + end; + + { TFormasPagoBusinessProcessorRules } + TFormasPagoBusinessProcessorRules = class(TDABusinessProcessorRules, IFormasPago, IFormasPagoDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + function GetTITULARValue: String; virtual; + function GetTITULARIsNull: Boolean; virtual; + function GetOldTITULARValue: String; virtual; + function GetOldTITULARIsNull: Boolean; virtual; + procedure SetTITULARValue(const aValue: String); virtual; + procedure SetTITULARIsNull(const aValue: Boolean); virtual; + function GetENTIDADValue: String; virtual; + function GetENTIDADIsNull: Boolean; virtual; + function GetOldENTIDADValue: String; virtual; + function GetOldENTIDADIsNull: Boolean; virtual; + procedure SetENTIDADValue(const aValue: String); virtual; + procedure SetENTIDADIsNull(const aValue: Boolean); virtual; + function GetSUCURSALValue: String; virtual; + function GetSUCURSALIsNull: Boolean; virtual; + function GetOldSUCURSALValue: String; virtual; + function GetOldSUCURSALIsNull: Boolean; virtual; + procedure SetSUCURSALValue(const aValue: String); virtual; + procedure SetSUCURSALIsNull(const aValue: Boolean); virtual; + function GetDCValue: String; virtual; + function GetDCIsNull: Boolean; virtual; + function GetOldDCValue: String; virtual; + function GetOldDCIsNull: Boolean; virtual; + procedure SetDCValue(const aValue: String); virtual; + procedure SetDCIsNull(const aValue: Boolean); virtual; + function GetCUENTAValue: String; virtual; + function GetCUENTAIsNull: Boolean; virtual; + function GetOldCUENTAValue: String; virtual; + function GetOldCUENTAIsNull: Boolean; virtual; + procedure SetCUENTAValue(const aValue: String); virtual; + procedure SetCUENTAIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull : Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldDESCRIPCIONIsNull : Boolean read GetOldDESCRIPCIONIsNull; + property TITULAR : String read GetTITULARValue write SetTITULARValue; + property TITULARIsNull : Boolean read GetTITULARIsNull write SetTITULARIsNull; + property OldTITULAR : String read GetOldTITULARValue; + property OldTITULARIsNull : Boolean read GetOldTITULARIsNull; + property ENTIDAD : String read GetENTIDADValue write SetENTIDADValue; + property ENTIDADIsNull : Boolean read GetENTIDADIsNull write SetENTIDADIsNull; + property OldENTIDAD : String read GetOldENTIDADValue; + property OldENTIDADIsNull : Boolean read GetOldENTIDADIsNull; + property SUCURSAL : String read GetSUCURSALValue write SetSUCURSALValue; + property SUCURSALIsNull : Boolean read GetSUCURSALIsNull write SetSUCURSALIsNull; + property OldSUCURSAL : String read GetOldSUCURSALValue; + property OldSUCURSALIsNull : Boolean read GetOldSUCURSALIsNull; + property DC : String read GetDCValue write SetDCValue; + property DCIsNull : Boolean read GetDCIsNull write SetDCIsNull; + property OldDC : String read GetOldDCValue; + property OldDCIsNull : Boolean read GetOldDCIsNull; + property CUENTA : String read GetCUENTAValue write SetCUENTAValue; + property CUENTAIsNull : Boolean read GetCUENTAIsNull write SetCUENTAIsNull; + property OldCUENTA : String read GetOldCUENTAValue; + property OldCUENTAIsNull : Boolean read GetOldCUENTAIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IFormasPagoPlazosDelta } + IFormasPagoPlazosDelta = interface(IFormasPagoPlazos) + ['{E0326434-91CF-4E0E-B620-9C98B3FF28EA}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_FORMA_PAGOValue : Integer; + function GetOldNUM_DIASValue : SmallInt; + function GetOldPORCENTAJEValue : Float; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + property OldNUM_DIAS : SmallInt read GetOldNUM_DIASValue; + property OldPORCENTAJE : Float read GetOldPORCENTAJEValue; + end; + + { TFormasPagoPlazosBusinessProcessorRules } + TFormasPagoPlazosBusinessProcessorRules = class(TDABusinessProcessorRules, IFormasPagoPlazos, IFormasPagoPlazosDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + function GetID_FORMA_PAGOIsNull: Boolean; virtual; + function GetOldID_FORMA_PAGOValue: Integer; virtual; + function GetOldID_FORMA_PAGOIsNull: Boolean; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + procedure SetID_FORMA_PAGOIsNull(const aValue: Boolean); virtual; + function GetNUM_DIASValue: SmallInt; virtual; + function GetNUM_DIASIsNull: Boolean; virtual; + function GetOldNUM_DIASValue: SmallInt; virtual; + function GetOldNUM_DIASIsNull: Boolean; virtual; + procedure SetNUM_DIASValue(const aValue: SmallInt); virtual; + procedure SetNUM_DIASIsNull(const aValue: Boolean); virtual; + function GetPORCENTAJEValue: Float; virtual; + function GetPORCENTAJEIsNull: Boolean; virtual; + function GetOldPORCENTAJEValue: Float; virtual; + function GetOldPORCENTAJEIsNull: Boolean; virtual; + procedure SetPORCENTAJEValue(const aValue: Float); virtual; + procedure SetPORCENTAJEIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_FORMA_PAGO : Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property ID_FORMA_PAGOIsNull : Boolean read GetID_FORMA_PAGOIsNull write SetID_FORMA_PAGOIsNull; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + property OldID_FORMA_PAGOIsNull : Boolean read GetOldID_FORMA_PAGOIsNull; + property NUM_DIAS : SmallInt read GetNUM_DIASValue write SetNUM_DIASValue; + property NUM_DIASIsNull : Boolean read GetNUM_DIASIsNull write SetNUM_DIASIsNull; + property OldNUM_DIAS : SmallInt read GetOldNUM_DIASValue; + property OldNUM_DIASIsNull : Boolean read GetOldNUM_DIASIsNull; + property PORCENTAJE : Float read GetPORCENTAJEValue write SetPORCENTAJEValue; + property PORCENTAJEIsNull : Boolean read GetPORCENTAJEIsNull write SetPORCENTAJEIsNull; + property OldPORCENTAJE : Float read GetOldPORCENTAJEValue; + property OldPORCENTAJEIsNull : Boolean read GetOldPORCENTAJEIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers, uDAInterfaces; + +{ TFormasPagoBusinessProcessorRules } +constructor TFormasPagoBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TFormasPagoBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TFormasPagoBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoID]; +end; + +function TFormasPagoBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoID]); +end; + +function TFormasPagoBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FormasPagoID]; +end; + +function TFormasPagoBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FormasPagoID]); +end; + +procedure TFormasPagoBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoID] := aValue; +end; + +procedure TFormasPagoBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoID] := Null; +end; + +function TFormasPagoBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoREFERENCIA]; +end; + +function TFormasPagoBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoREFERENCIA]); +end; + +function TFormasPagoBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FormasPagoREFERENCIA]; +end; + +function TFormasPagoBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FormasPagoREFERENCIA]); +end; + +procedure TFormasPagoBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoREFERENCIA] := aValue; +end; + +procedure TFormasPagoBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoREFERENCIA] := Null; +end; + +function TFormasPagoBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoDESCRIPCION]; +end; + +function TFormasPagoBusinessProcessorRules.GetDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoDESCRIPCION]); +end; + +function TFormasPagoBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FormasPagoDESCRIPCION]; +end; + +function TFormasPagoBusinessProcessorRules.GetOldDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FormasPagoDESCRIPCION]); +end; + +procedure TFormasPagoBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoDESCRIPCION] := aValue; +end; + +procedure TFormasPagoBusinessProcessorRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoDESCRIPCION] := Null; +end; + +function TFormasPagoBusinessProcessorRules.GetTITULARValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoTITULAR]; +end; + +function TFormasPagoBusinessProcessorRules.GetTITULARIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoTITULAR]); +end; + +function TFormasPagoBusinessProcessorRules.GetOldTITULARValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FormasPagoTITULAR]; +end; + +function TFormasPagoBusinessProcessorRules.GetOldTITULARIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FormasPagoTITULAR]); +end; + +procedure TFormasPagoBusinessProcessorRules.SetTITULARValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoTITULAR] := aValue; +end; + +procedure TFormasPagoBusinessProcessorRules.SetTITULARIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoTITULAR] := Null; +end; + +function TFormasPagoBusinessProcessorRules.GetENTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoENTIDAD]; +end; + +function TFormasPagoBusinessProcessorRules.GetENTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoENTIDAD]); +end; + +function TFormasPagoBusinessProcessorRules.GetOldENTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FormasPagoENTIDAD]; +end; + +function TFormasPagoBusinessProcessorRules.GetOldENTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FormasPagoENTIDAD]); +end; + +procedure TFormasPagoBusinessProcessorRules.SetENTIDADValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoENTIDAD] := aValue; +end; + +procedure TFormasPagoBusinessProcessorRules.SetENTIDADIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoENTIDAD] := Null; +end; + +function TFormasPagoBusinessProcessorRules.GetSUCURSALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoSUCURSAL]; +end; + +function TFormasPagoBusinessProcessorRules.GetSUCURSALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoSUCURSAL]); +end; + +function TFormasPagoBusinessProcessorRules.GetOldSUCURSALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FormasPagoSUCURSAL]; +end; + +function TFormasPagoBusinessProcessorRules.GetOldSUCURSALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FormasPagoSUCURSAL]); +end; + +procedure TFormasPagoBusinessProcessorRules.SetSUCURSALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoSUCURSAL] := aValue; +end; + +procedure TFormasPagoBusinessProcessorRules.SetSUCURSALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoSUCURSAL] := Null; +end; + +function TFormasPagoBusinessProcessorRules.GetDCValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoDC]; +end; + +function TFormasPagoBusinessProcessorRules.GetDCIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoDC]); +end; + +function TFormasPagoBusinessProcessorRules.GetOldDCValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FormasPagoDC]; +end; + +function TFormasPagoBusinessProcessorRules.GetOldDCIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FormasPagoDC]); +end; + +procedure TFormasPagoBusinessProcessorRules.SetDCValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoDC] := aValue; +end; + +procedure TFormasPagoBusinessProcessorRules.SetDCIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoDC] := Null; +end; + +function TFormasPagoBusinessProcessorRules.GetCUENTAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoCUENTA]; +end; + +function TFormasPagoBusinessProcessorRules.GetCUENTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoCUENTA]); +end; + +function TFormasPagoBusinessProcessorRules.GetOldCUENTAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FormasPagoCUENTA]; +end; + +function TFormasPagoBusinessProcessorRules.GetOldCUENTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FormasPagoCUENTA]); +end; + +procedure TFormasPagoBusinessProcessorRules.SetCUENTAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoCUENTA] := aValue; +end; + +procedure TFormasPagoBusinessProcessorRules.SetCUENTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoCUENTA] := Null; +end; + + +{ TFormasPagoPlazosBusinessProcessorRules } +constructor TFormasPagoPlazosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TFormasPagoPlazosBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TFormasPagoPlazosBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoPlazosID]; +end; + +function TFormasPagoPlazosBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoPlazosID]); +end; + +function TFormasPagoPlazosBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FormasPagoPlazosID]; +end; + +function TFormasPagoPlazosBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FormasPagoPlazosID]); +end; + +procedure TFormasPagoPlazosBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoPlazosID] := aValue; +end; + +procedure TFormasPagoPlazosBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoPlazosID] := Null; +end; + +function TFormasPagoPlazosBusinessProcessorRules.GetID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoPlazosID_FORMA_PAGO]; +end; + +function TFormasPagoPlazosBusinessProcessorRules.GetID_FORMA_PAGOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoPlazosID_FORMA_PAGO]); +end; + +function TFormasPagoPlazosBusinessProcessorRules.GetOldID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FormasPagoPlazosID_FORMA_PAGO]; +end; + +function TFormasPagoPlazosBusinessProcessorRules.GetOldID_FORMA_PAGOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FormasPagoPlazosID_FORMA_PAGO]); +end; + +procedure TFormasPagoPlazosBusinessProcessorRules.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoPlazosID_FORMA_PAGO] := aValue; +end; + +procedure TFormasPagoPlazosBusinessProcessorRules.SetID_FORMA_PAGOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoPlazosID_FORMA_PAGO] := Null; +end; + +function TFormasPagoPlazosBusinessProcessorRules.GetNUM_DIASValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoPlazosNUM_DIAS]; +end; + +function TFormasPagoPlazosBusinessProcessorRules.GetNUM_DIASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoPlazosNUM_DIAS]); +end; + +function TFormasPagoPlazosBusinessProcessorRules.GetOldNUM_DIASValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FormasPagoPlazosNUM_DIAS]; +end; + +function TFormasPagoPlazosBusinessProcessorRules.GetOldNUM_DIASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FormasPagoPlazosNUM_DIAS]); +end; + +procedure TFormasPagoPlazosBusinessProcessorRules.SetNUM_DIASValue(const aValue: SmallInt); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoPlazosNUM_DIAS] := aValue; +end; + +procedure TFormasPagoPlazosBusinessProcessorRules.SetNUM_DIASIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoPlazosNUM_DIAS] := Null; +end; + +function TFormasPagoPlazosBusinessProcessorRules.GetPORCENTAJEValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoPlazosPORCENTAJE]; +end; + +function TFormasPagoPlazosBusinessProcessorRules.GetPORCENTAJEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoPlazosPORCENTAJE]); +end; + +function TFormasPagoPlazosBusinessProcessorRules.GetOldPORCENTAJEValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FormasPagoPlazosPORCENTAJE]; +end; + +function TFormasPagoPlazosBusinessProcessorRules.GetOldPORCENTAJEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FormasPagoPlazosPORCENTAJE]); +end; + +procedure TFormasPagoPlazosBusinessProcessorRules.SetPORCENTAJEValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoPlazosPORCENTAJE] := aValue; +end; + +procedure TFormasPagoPlazosBusinessProcessorRules.SetPORCENTAJEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FormasPagoPlazosPORCENTAJE] := Null; +end; + + +initialization + RegisterBusinessProcessorRules(RID_FormasPagoDelta, TFormasPagoBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_FormasPagoPlazosDelta, TFormasPagoPlazosBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Formas de pago/Model/uBizFormasPago.dcu b/Source/Modulos/Formas de pago/Model/uBizFormasPago.dcu new file mode 100644 index 0000000..5378da3 Binary files /dev/null and b/Source/Modulos/Formas de pago/Model/uBizFormasPago.dcu differ diff --git a/Source/Modulos/Formas de pago/Model/uBizFormasPago.pas b/Source/Modulos/Formas de pago/Model/uBizFormasPago.pas new file mode 100644 index 0000000..72a33db --- /dev/null +++ b/Source/Modulos/Formas de pago/Model/uBizFormasPago.pas @@ -0,0 +1,95 @@ +unit uBizFormasPago; + +interface + +uses + uDAInterfaces, uDADataTable, schFormasPagoClient_Intf, + uBizFormasPagoPlazos; + +const + BIZ_CLIENT_FORMAPAGO = 'Client.FormaPago'; + +type + IBizFormaPago = interface(IFormasPago) + ['{F79E3238-1E0D-4FB6-9AF7-E5703619B067}'] + function EsNuevo : Boolean; + + function GetPlazos: IBizFormaPagoPlazos; + procedure SetPlazos(const Value: IBizFormaPagoPlazos); + property Plazos : IBizFormaPagoPlazos read GetPlazos + write SetPlazos; + end; + + TBizFormaPago = class(TFormasPagoDataTableRules, IBizFormaPago) + protected + FPlazos : IBizFormaPagoPlazos; + FPlazosLink : TDADataSource; + procedure OnNewRecord(Sender: TDADataTable); override; + function GetPlazos: IBizFormaPagoPlazos; + procedure SetPlazos(const Value: IBizFormaPagoPlazos); + public + procedure IniciarValoresFormaPagoNueva; + function EsNuevo : Boolean; + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + property Plazos : IBizFormaPagoPlazos read GetPlazos + write SetPlazos; + end; + +implementation + +{ TBizFormaPago } + +uses + SysUtils, uDataTableUtils; + +constructor TBizFormaPago.Create(aDataTable: TDADataTable); +begin + inherited; + FPlazos := NIL; + FPlazosLink := TDADataSource.Create(NIL); + FPlazosLink.DataTable := aDataTable; +end; + +destructor TBizFormaPago.Destroy; +begin + FPlazos := NIL; + FreeAndNIL(FPlazosLink); + inherited; +end; + +function TBizFormaPago.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +function TBizFormaPago.GetPlazos: IBizFormaPagoPlazos; +begin + Result := FPlazos; +end; + +procedure TBizFormaPago.IniciarValoresFormaPagoNueva; +begin + // +end; + +procedure TBizFormaPago.OnNewRecord(Sender: TDADataTable); +begin + inherited; +// Eliminar ID := GetRecNo; // -1, -2, -3... + IniciarValoresFormaPagoNueva; +end; + +procedure TBizFormaPago.SetPlazos(const Value: IBizFormaPagoPlazos); +begin + FPlazos := Value; + EnlazarMaestroDetalle(FPlazosLink, FPlazos); +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_FORMAPAGO, TBizFormaPago); + +finalization + +end. + diff --git a/Source/Modulos/Formas de pago/Model/uBizFormasPagoPlazos.dcu b/Source/Modulos/Formas de pago/Model/uBizFormasPagoPlazos.dcu new file mode 100644 index 0000000..75a2be0 Binary files /dev/null and b/Source/Modulos/Formas de pago/Model/uBizFormasPagoPlazos.dcu differ diff --git a/Source/Modulos/Formas de pago/Model/uBizFormasPagoPlazos.pas b/Source/Modulos/Formas de pago/Model/uBizFormasPagoPlazos.pas new file mode 100644 index 0000000..3900763 --- /dev/null +++ b/Source/Modulos/Formas de pago/Model/uBizFormasPagoPlazos.pas @@ -0,0 +1,67 @@ +unit uBizFormasPagoPlazos; + +interface + +uses + uDAInterfaces, uDADataTable, schFormasPagoClient_Intf; + +const + BIZ_CLIENT_FORMAPAGOPLAZOS = 'Client.FormaPagoPlazos'; + +type + IBizFormaPagoPlazos = interface(IFormasPagoPlazos) + ['{F90A56C5-F63E-4501-8855-B3967CF15A8A}'] + function EsNuevo : Boolean; + end; + + TBizFormasPagoPlazos = class(TFormasPagoPlazosDataTableRules, IBizFormaPagoPlazos) + protected + procedure OnNewRecord(Sender: TDADataTable); override; + procedure BeforeInsert(Sender: TDADataTable); override; + public + procedure IniciarValoresPlazoNuevo; + function EsNuevo : Boolean; + end; + + +implementation + +{ TBizFormasPagoPlazos } + +uses + Dialogs, DB; + +procedure TBizFormasPagoPlazos.BeforeInsert(Sender: TDADataTable); +var + AMasterTable : TDADataTable; +begin + inherited; + AMasterTable := DataTable.GetMasterDataTable; + if Assigned(AMasterTable) and (AMasterTable.State = dsInsert) then + AMasterTable.Post; +end; + +function TBizFormasPagoPlazos.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +procedure TBizFormasPagoPlazos.IniciarValoresPlazoNuevo; +begin + // +end; + +procedure TBizFormasPagoPlazos.OnNewRecord(Sender: TDADataTable); +begin + inherited; +// Eliminar ID := GetRecNo; // -1, -2, -3... + IniciarValoresPlazoNuevo +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_FORMAPAGOPLAZOS, TBizFormasPagoPlazos); + +finalization + +end. + diff --git a/Source/Modulos/Formas de pago/Plugin/FormasPago_plugin.bdsproj b/Source/Modulos/Formas de pago/Plugin/FormasPago_plugin.bdsproj new file mode 100644 index 0000000..3bf0833 --- /dev/null +++ b/Source/Modulos/Formas de pago/Plugin/FormasPago_plugin.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + FormasPago_plugin.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Formas de pago/Plugin/FormasPago_plugin.dcu b/Source/Modulos/Formas de pago/Plugin/FormasPago_plugin.dcu new file mode 100644 index 0000000..e538c9e Binary files /dev/null and b/Source/Modulos/Formas de pago/Plugin/FormasPago_plugin.dcu differ diff --git a/Source/Modulos/Formas de pago/Plugin/FormasPago_plugin.dpk b/Source/Modulos/Formas de pago/Plugin/FormasPago_plugin.dpk new file mode 100644 index 0000000..4a51898 --- /dev/null +++ b/Source/Modulos/Formas de pago/Plugin/FormasPago_plugin.dpk @@ -0,0 +1,42 @@ +package FormasPago_plugin; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} +{$DEFINE DEBUG} + +requires + rtl, + vcl, + Base, + GUIBase, + ApplicationBase, + FormasPago_model, + FormasPago_controller, + FormasPago_view, + PluginSDK_D11R; + +contains + uPluginFormasPago in 'uPluginFormasPago.pas'; + +end. diff --git a/Source/Modulos/Formas de pago/Plugin/FormasPago_plugin.dproj b/Source/Modulos/Formas de pago/Plugin/FormasPago_plugin.dproj new file mode 100644 index 0000000..20442ca --- /dev/null +++ b/Source/Modulos/Formas de pago/Plugin/FormasPago_plugin.dproj @@ -0,0 +1,544 @@ + + + {82e36812-58c4-491b-b463-6b951e95da51} + FormasPago_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\FormasPago_plugin.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + DEBUG + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0FormasPago_plugin.dpk + + + + + MainSource + + + + + + + + + + + + + + diff --git a/Source/Modulos/Formas de pago/Plugin/FormasPago_plugin.rc b/Source/Modulos/Formas de pago/Plugin/FormasPago_plugin.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Formas de pago/Plugin/FormasPago_plugin.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Formas de pago/Plugin/FormasPago_plugin.res b/Source/Modulos/Formas de pago/Plugin/FormasPago_plugin.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Formas de pago/Plugin/FormasPago_plugin.res differ diff --git a/Source/Modulos/Formas de pago/Plugin/uPluginFormasPago.dcu b/Source/Modulos/Formas de pago/Plugin/uPluginFormasPago.dcu new file mode 100644 index 0000000..3da7518 Binary files /dev/null and b/Source/Modulos/Formas de pago/Plugin/uPluginFormasPago.dcu differ diff --git a/Source/Modulos/Formas de pago/Plugin/uPluginFormasPago.dfm b/Source/Modulos/Formas de pago/Plugin/uPluginFormasPago.dfm new file mode 100644 index 0000000..21628f0 --- /dev/null +++ b/Source/Modulos/Formas de pago/Plugin/uPluginFormasPago.dfm @@ -0,0 +1,135 @@ +object PluginFormasPago: TPluginFormasPago + OldCreateOrder = True + DefaultAction = actFormasPago + Description = 'FormasPago' + ModuleMenu = MainMenu + ModuleName = 'FormasPago' + SmallImages = SmallImages + LargeImages = SmallImages + Author = 'Rodax Software' + Version = '1.0.0' + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002744944415478DA + 63FCFFFF3F032D01E3F0B060F9D6D334B3056E41A4B729491AFFFCFDCFF0F7EF + 3F869FBFFE80E93FFFFE8169301B887FFDFECB109E5E876A41E249438206FF05 + AAFFF5F72FC3AF3F7FC0F4975FBF207C10065A02932BFAB59C61DED24D9816CC + 373F8F6291F45B6F8626CF660C8BFE010D0361CFD5F60C1F791E800DBF14F082 + 4169A520D8928ABFAB705B00022036B2E11718CF33189F346660B809E4A83330 + 9C353FCBA0F9438BE117D007415B3C189EB2DF66B811FC1AAC566C3137431DC3 + 5AFC3E8019CE7C8A89E1AFD93F300D32FC6CDC5906E379408BB419183EEB7C61 + E0BDC2C3F05AE50D43F84E5F86BD51C718841771817DD0CEB211BB05E841C3BC + 1C684124D082C54C10C39719339C8D02D2B38C193E447C6410D8C2CFF0C2E525 + 43D49E00860B7F2EC0E3A3977D0B911620FBE02A508203887F30807DF056ED1D + 83F02D218627324F18E20E86329CFA79166EC164AEEDF82D40B6E42F50C36596 + 4B9038B80894D087C481DC5B79869F3F7E60180E02382D404E4520C58A1FFC18 + 6A9C6BC196FC03A7F5BF700CE247EF0D841BFE33E50F03E34C46FC16C0003C6D + 03B1CCB31F0C5325B4B1E60BDE877B505C0E03582D40CFA57FA039F3EA444D06 + 09A7200645CB1E86FBC74BC06A5EDC0726E7FBF719E6EE7BCE30A7DA09C3E229 + 4F73312D98B2780756570A7E3BC7A0F4660ED8307450DD928DD3E273AC89080B + BA27CF27584C9C2B7B88553CA5751FA65AA0E12000B680919191A0E1C75A14FF + 93124C404BC3E6EEFBB19A140B4281D42A6CC13467EF77AC96022D6024CA0290 + E196969AABB0C91D3F7E1D6BDC008101D0828BC45A803778402EC5A597681FE0 + 0A1E200087355E0B6809686E0100FA3E2AAB1481BE0E0000000049454E44AE42 + 6082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = SmallImages + Left = 40 + Top = 72 + object actFormasPago: TAction + Category = 'FormasPago' + Caption = 'Formas de pago' + ImageIndex = 0 + OnExecute = actFormasPagoExecute + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object Ventas1: TMenuItem + Caption = 'Datos' + object FormasPago1: TMenuItem + Tag = 301 + Action = actFormasPago + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000011A4944415478DA + 63FCFFFF3F032580916203966D3945B60991DEA68C6003D4BD9919269F4CC6AA + E8F7DFBF0CDFFFFC61F8F6FB37C3C71F3FC0ECB9FE5B19523CE6309CDB310D61 + 0008C00C996B760EC3209B6D7270CD208062C02E9134B8429866E6534C1081AB + 0C0C7F13FF81999A6B4519BE035D02728DDCB204220CB80A118319A0B04200AC + 19843556A762370024B9DCFA328617903583BC62B83E13350C40FE074B421581 + 70EF05569C31907DD8036140F7E4F9180AA6DAEE60B04CAE6660905064F8717C + 2AC3F97DE719E6EE7BCE30A5C50BCE9EB3F73B23232E1B8EB528861E7CADB6EA + CEE58358E5939D24C32CABEFADC667C07F8A5D00A456811452D505208D5635F7 + 5783D480F211C92E98BBEF075C0FD8004A73230074DEE0E1BE54FBD500000000 + 49454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000002D84944415478DA + ED946D48535118C7FF57855EB4171542B01756516845C868B63E4A1F2A7B1996 + 990B845008EA637DD2A828F34BF521D220C98484C28232B24C302329456D380D + A99C75035FB6A5B3E9ACAEBA7BD773CF4D9BEE6E6E23F6217AE0F09C73EE73CE + EF79CEFF9CCB793C1E44D2B8FFC07F0378EF697BC4A833C0DCCC6D616DE0163D + 104589BCC43CEB4B5E7DE62986E6728E9F9D0D3CD69A163448A47593A28849B7 + 5BF1731B01A6BFD7E97AC0F70DA0B0A4DC175899DE310B9CECC8C485DD17FD82 + 25DA58621589D8FB3003A3715F18ACCB60C3DAEA7806ADD759D03768F50F944D + EEABC1CC5C07B4AD5AE0230D3602A6741352845406945B56ED2E0C2CB0E0C3C1 + 2116BFA22A160DBA5E0CDAED812BF48645B745013C1D638EA4F40966CA33417B + 9BC09B00D7E6712C791C07AC0386D60F23A77E1F5E189B91786731ABB029FD33 + ECC343EA40B5A38CAE268844C05C02564529B0BB5A988CE4CBB5701E19C5F2DA + 652CD6B6D30E63830166B77946CFD7DB7938461C2100E5AA2C043CFABBC26E9A + 5C484D00ABD0B16104897509ACC2FE95FDC87B958DB609D30CF08D8EC798CB19 + 18A87661648DDEC574291A76D2C45645C3D58E35EC9B7B6ACA07265B93F613BE + FF189BFF96CA0B34CEFD0C2A6F386EEB467C4F61C0E7B2CADC80AF4B454C14B8 + C1DDE4D8DCCB340B04613C70856A6FABB81DD0E71701491A128B677102FF8C79 + 276F65FE4C45076E1565CC4AE291EB0416C527FB02E7FB7BF4DED882A48C2C68 + F457C0B79C562E09AF3C23F04A02158D569416EFF149E2D0B9165FE0F32673C0 + E31AB0BC45AAAD846DAA66D66F024ACB4EA9262103CBAE5DFD03BC7CBD12C158 + 72AC0B4F4E8E048C29B8D4E83DAC791F73C0F0934B600306E4382E28986CCDC5 + 1A4FA83A5202872B1A8507610383D5D13B010272E102B3694323750D7E426AF2 + F37718E62610165086E9F529F743D08F2540ED3C013BC30106A5DF74356A1632 + 3018FDFE26705EFDBC8FCF2F30921671E02FBE648AC22CC7AE57000000004945 + 4E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 80 + Bitmap = {} + end +end diff --git a/Source/Modulos/Formas de pago/Plugin/uPluginFormasPago.pas b/Source/Modulos/Formas de pago/Plugin/uPluginFormasPago.pas new file mode 100644 index 0000000..ba2a2c5 --- /dev/null +++ b/Source/Modulos/Formas de pago/Plugin/uPluginFormasPago.pas @@ -0,0 +1,73 @@ +unit uPluginFormasPago; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCFormasPago = interface(IInterface) + ['{255E8D6B-282A-48CC-9807-E49C7D31FD2D}'] + end; + + TPluginFormasPago = class(TModuleController, IMCFormasPago) + actFormasPago: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + Ventas1: TMenuItem; + FormasPago1: TMenuItem; + procedure actFormasPagoExecute(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, + uFormasPagoController, uBizFormasPago, uFormasPagoViewRegister; + +function GetModule : TModuleController; +begin + Result := TPluginFormasPago.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +procedure TPluginFormasPago.actFormasPagoExecute(Sender: TObject); +var + AFormasPagoController : IFormasPagoController; + AFormasPago : IBizFormaPago; +begin + AFormasPagoController := TFormasPagoController.Create; + AFormasPago := (AFormasPagoController.BuscarTodos as IBizFormaPago); + AFormasPagoController.VerTodos(AFormasPago); +end; + +constructor TPluginFormasPago.Create(AOwner: TComponent); +begin + inherited; + uFormasPagoViewRegister.RegisterViews; +end; + +destructor TPluginFormasPago.Destroy; +begin + uFormasPagoViewRegister.UnregisterViews; + inherited; +end; + +initialization + RegisterModuleClass(TPluginFormasPago); + +finalization + UnRegisterModuleClass(TPluginFormasPago); + +end. diff --git a/Source/Modulos/Formas de pago/Servidor/srvFormasPago_Impl.dcu b/Source/Modulos/Formas de pago/Servidor/srvFormasPago_Impl.dcu new file mode 100644 index 0000000..bebc69e Binary files /dev/null and b/Source/Modulos/Formas de pago/Servidor/srvFormasPago_Impl.dcu differ diff --git a/Source/Modulos/Formas de pago/Servidor/srvFormasPago_Impl.dfm b/Source/Modulos/Formas de pago/Servidor/srvFormasPago_Impl.dfm new file mode 100644 index 0000000..467eab3 --- /dev/null +++ b/Source/Modulos/Formas de pago/Servidor/srvFormasPago_Impl.dfm @@ -0,0 +1,586 @@ +object srvFormasPago: TsrvFormasPago + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + ServiceSchema = schFormasPago + ServiceDataStreamer = Bin2DataStreamer + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + Height = 208 + Width = 441 + object Diagrams: TDADiagrams + Left = 150 + Top = 90 + DiagramData = + ''#13#10' '#13#10' '#13#10' '#13#10' '#13#10''#13#10 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'FormasPago_REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + end + item + Name = 'FormasPago_DESCRIPCION' + DataType = datString + Size = 255 + DisplayLabel = 'Descripci'#243'n' + end + item + Name = 'FormasPago_TITULAR' + DataType = datString + Size = 255 + DisplayLabel = 'Titular' + end + item + Name = 'FormasPago_ENTIDAD' + DataType = datString + Size = 15 + DisplayLabel = 'C'#243'd. Entidad' + end + item + Name = 'FormasPago_SUCURSAL' + DataType = datString + Size = 15 + DisplayLabel = 'C'#243'd. Sucusal' + end + item + Name = 'FormasPago_DC' + DataType = datString + Size = 15 + DisplayLabel = 'DC' + end + item + Name = 'FormasPago_CUENTA' + DataType = datString + Size = 15 + DisplayLabel = 'C'#243'd. Cuenta' + end + item + Name = 'FormasPagoPlazos_NUM_DIAS' + DataType = datSmallInt + DisplayLabel = 'Num. d'#237'as' + end + item + Name = 'FormasPagoPlazos_PORCENTAJE' + DataType = datFloat + DisplayLabel = '% aplazado' + Alignment = taRightJustify + end + item + Name = 'FormasPagoPlazos_ID' + DataType = datAutoInc + GeneratorName = 'GEN_FORMAS_PAGO_PLAZOS_ID' + Required = True + ServerAutoRefresh = True + end + item + Name = 'FormasPagoPlazos_ID_FORMA_PAGO' + DataType = datInteger + Required = True + end + item + Name = 'FormasPago_ID' + DataType = datAutoInc + GeneratorName = 'GEN_FORMAS_PAGO_ID' + Required = True + DisplayLabel = 'ID' + ServerAutoRefresh = True + end> + Left = 150 + Top = 24 + end + object schFormasPago: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Diagrams = Diagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'FORMAS_PAGO' + Name = 'IBX' + SQL = 'Select ID, DESCRIPCION'#10'from FORMAS_PAGO'#10'order by DESCRIPCION'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end> + end> + Name = 'ListaFormasPago' + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'FORMAS_PAGO' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'TITULAR' + TableField = 'TITULAR' + end + item + DatasetField = 'ENTIDAD' + TableField = 'ENTIDAD' + end + item + DatasetField = 'SUCURSAL' + TableField = 'SUCURSAL' + end + item + DatasetField = 'DC' + TableField = 'DC' + end + item + DatasetField = 'CUENTA' + TableField = 'CUENTA' + end> + end> + Name = 'FormasPago' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_FORMAS_PAGO_ID' + ServerAutoRefresh = True + DictionaryEntry = 'FormasPago_ID' + InPrimaryKey = True + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'FormasPago_REFERENCIA' + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DictionaryEntry = 'FormasPago_DESCRIPCION' + end + item + Name = 'TITULAR' + DataType = datString + Size = 255 + DictionaryEntry = 'FormasPago_TITULAR' + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + DictionaryEntry = 'FormasPago_ENTIDAD' + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + DictionaryEntry = 'FormasPago_SUCURSAL' + end + item + Name = 'DC' + DataType = datString + Size = 15 + DictionaryEntry = 'FormasPago_DC' + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + DictionaryEntry = 'FormasPago_CUENTA' + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'FORMAS_PAGO_PLAZOS' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_FORMA_PAGO' + TableField = 'ID_FORMA_PAGO' + end + item + DatasetField = 'NUM_DIAS' + TableField = 'NUM_DIAS' + end + item + DatasetField = 'PORCENTAJE' + TableField = 'PORCENTAJE' + end> + end> + Name = 'FormasPagoPlazos' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_FORMAS_PAGO_PLAZOS_ID' + ServerAutoRefresh = True + DictionaryEntry = 'FormasPagoPlazos_ID' + InPrimaryKey = True + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + DictionaryEntry = 'FormasPagoPlazos_ID_FORMA_PAGO' + end + item + Name = 'NUM_DIAS' + DataType = datSmallInt + DictionaryEntry = 'FormasPagoPlazos_NUM_DIAS' + end + item + Name = 'PORCENTAJE' + DataType = datFloat + DictionaryEntry = 'FormasPagoPlazos_PORCENTAJE' + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_FORMAS_PAGO_ID' + Value = '' + end + item + Name = 'REFERENCIA' + Value = '' + end + item + Name = 'DESCRIPCION' + Value = '' + end + item + Name = 'TITULAR' + Value = '' + end + item + Name = 'ENTIDAD' + Value = '' + end + item + Name = 'SUCURSAL' + Value = '' + end + item + Name = 'DC' + Value = '' + end + item + Name = 'CUENTA' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'FORMAS_PAGO' + SQL = + 'INSERT'#10' INTO FORMAS_PAGO'#10' (ID, REFERENCIA, DESCRIPCION, TITU' + + 'LAR, ENTIDAD, SUCURSAL,'#10' DC, CUENTA)'#10' VALUES'#10' (:ID, :REF' + + 'ERENCIA, :DESCRIPCION, :TITULAR, :ENTIDAD, :SUCURSAL,'#10' :DC, ' + + ':CUENTA)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_FormasPago' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datAutoInc + Value = '0' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'FORMAS_PAGO' + SQL = 'DELETE '#10' FROM'#10' FORMAS_PAGO'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_FormasPago' + end + item + Params = < + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + Value = '' + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + Value = '' + end + item + Name = 'TITULAR' + DataType = datString + Size = 255 + Value = '' + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + Value = '' + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + Value = '' + end + item + Name = 'DC' + DataType = datString + Size = 15 + Value = '' + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + Value = '' + end + item + Name = 'OLD_ID' + DataType = datAutoInc + Value = '0' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'FORMAS_PAGO' + SQL = + 'UPDATE FORMAS_PAGO'#10' SET '#10' REFERENCIA = :REFERENCIA, '#10' DES' + + 'CRIPCION = :DESCRIPCION, '#10' TITULAR = :TITULAR, '#10' ENTIDAD =' + + ' :ENTIDAD, '#10' SUCURSAL = :SUCURSAL, '#10' DC = :DC, '#10' CUENTA' + + ' = :CUENTA'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_FormasPago' + end + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_FORMAS_PAGO_PLAZOS_ID' + Value = '' + end + item + Name = 'ID_FORMA_PAGO' + Value = '' + end + item + Name = 'NUM_DIAS' + Value = '' + end + item + Name = 'PORCENTAJE' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'FORMAS_PAGO_PLAZOS' + SQL = + 'INSERT'#10' INTO FORMAS_PAGO_PLAZOS'#10' (ID, ID_FORMA_PAGO, NUM_DIA' + + 'S, PORCENTAJE)'#10' VALUES'#10' (:ID, :ID_FORMA_PAGO, :NUM_DIAS, :PO' + + 'RCENTAJE)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_FormasPagoPlazos' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datAutoInc + Value = '0' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'FORMAS_PAGO_PLAZOS' + SQL = 'DELETE '#10' FROM'#10' FORMAS_PAGO_PLAZOS'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_FormasPagoPlazos' + end + item + Params = < + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + Value = '0' + end + item + Name = 'NUM_DIAS' + DataType = datSmallInt + Value = '0' + end + item + Name = 'PORCENTAJE' + DataType = datFloat + Value = '0' + end + item + Name = 'OLD_ID' + DataType = datAutoInc + Value = '0' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'FORMAS_PAGO_PLAZOS' + SQL = + 'UPDATE FORMAS_PAGO_PLAZOS'#10' SET '#10' ID_FORMA_PAGO = :ID_FORMA_P' + + 'AGO, '#10' NUM_DIAS = :NUM_DIAS, '#10' PORCENTAJE = :PORCENTAJE'#10' ' + + 'WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_FormasPagoPlazos' + end> + RelationShips = < + item + Name = 'FK_FormasPagoPlazos_FormasPago' + MasterDatasetName = 'FormasPago' + MasterFields = 'ID' + DetailDatasetName = 'FormasPagoPlazos' + DetailFields = 'ID_FORMA_PAGO' + RelationshipType = rtMasterDetail + end> + UpdateRules = < + item + Name = 'Insert FormasPago' + DoUpdate = False + DoDelete = False + DatasetName = 'FormasPago' + FailureBehavior = fbRaiseException + end + item + Name = 'Insert FormasPagoPlazos' + DoUpdate = False + DoDelete = False + DatasetName = 'FormasPagoPlazos' + FailureBehavior = fbRaiseException + end + item + Name = 'Update FormasPago' + DoInsert = False + DoDelete = False + DatasetName = 'FormasPago' + FailureBehavior = fbRaiseException + end + item + Name = 'Update FormasPagoPlazos' + DoInsert = False + DoDelete = False + DatasetName = 'FormasPagoPlazos' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete FormasPagoPlazos' + DoUpdate = False + DoInsert = False + DatasetName = 'FormasPagoPlazos' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete FormasPago' + DoUpdate = False + DoInsert = False + DatasetName = 'FormasPago' + FailureBehavior = fbRaiseException + end> + Version = 0 + Left = 48 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 88 + end + object bpFormasPago: TDABusinessProcessor + Schema = schFormasPago + InsertCommandName = 'Insert_FormasPago' + DeleteCommandName = 'Delete_FormasPago' + UpdateCommandName = 'Update_FormasPago' + ReferencedDataset = 'FormasPago' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 280 + Top = 24 + end + object bpFormasPagoPlazos: TDABusinessProcessor + Schema = schFormasPago + InsertCommandName = 'Insert_FormasPagoPlazos' + DeleteCommandName = 'Delete_FormasPagoPlazos' + UpdateCommandName = 'Update_FormasPagoPlazos' + ReferencedDataset = 'FormasPagoPlazos' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 280 + Top = 77 + end +end diff --git a/Source/Modulos/Formas de pago/Servidor/srvFormasPago_Impl.pas b/Source/Modulos/Formas de pago/Servidor/srvFormasPago_Impl.pas new file mode 100644 index 0000000..b56f2a3 --- /dev/null +++ b/Source/Modulos/Formas de pago/Servidor/srvFormasPago_Impl.pas @@ -0,0 +1,101 @@ +unit srvFormasPago_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} FactuGES_Intf, uDADataTable, uDABINAdapter, uDAClasses, + uDAScriptingProvider, uDABusinessProcessor, uDADataStreamer, + uDABin2DataStreamer; + +type + { TsrvFormasPago } + TsrvFormasPago = class(TDataAbstractService, IsrvFormasPago) + Diagrams: TDADiagrams; + Bin2DataStreamer: TDABin2DataStreamer; + bpFormasPago: TDABusinessProcessor; + bpFormasPagoPlazos: TDABusinessProcessor; + schFormasPago: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceCreate(Sender: TObject); + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; + var aConnectionName: string); + public + function DarListaFormasPago: Binary; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer, + uDatabaseUtils, uDAInterfaces, uROClasses; + +procedure Create_srvFormasPago(out anInstance : IUnknown); +begin + anInstance := TsrvFormasPago.Create(NIL); +end; + +{ srvFormasPago } +procedure TsrvFormasPago.DARemoteServiceCreate(Sender: TObject); +begin +// SessionManager := dmServer.SessionManager; +end; + +function TsrvFormasPago.DarListaFormasPago: Binary; +var + ASchema : TDASchema; + AConn : IDAConnection; + dsData: IDADataset; + ALista : TStringList; +begin + Result := Binary.Create; + + ASchema := schFormasPago; + AConn := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionManager.GetDefaultConnectionName); + + try + dsData := ASchema.NewDataset(AConn, 'ListaFormasPago'); + except + RaiseError('No existe la tabla FORMAS_PAGO'); + end; + + ALista := TStringList.Create; + try + dsData.Active := True; + while not dsData.EOF do + begin + ALista.Add(Format('%s=%d', [dsData.Fields[1].AsString, dsData.Fields[0].AsInteger])); + dsData.Next; + end; + + ALista.SaveToStream(Result); + finally + FreeANDNIL(ALista); + dsData := NIL; + AConn := NIL; + end; +end; + +procedure TsrvFormasPago.DataAbstractServiceBeforeAcquireConnection( + aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +initialization + TROClassFactory.Create('srvFormasPago', Create_srvFormasPago, TsrvFormasPago_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Formas de pago/Views/FormasPago_view.bdsproj b/Source/Modulos/Formas de pago/Views/FormasPago_view.bdsproj new file mode 100644 index 0000000..3210451 --- /dev/null +++ b/Source/Modulos/Formas de pago/Views/FormasPago_view.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + FormasPago_view.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Formas de pago/Views/FormasPago_view.dcu b/Source/Modulos/Formas de pago/Views/FormasPago_view.dcu new file mode 100644 index 0000000..40a529a Binary files /dev/null and b/Source/Modulos/Formas de pago/Views/FormasPago_view.dcu differ diff --git a/Source/Modulos/Formas de pago/Views/FormasPago_view.dpk b/Source/Modulos/Formas de pago/Views/FormasPago_view.dpk new file mode 100644 index 0000000..45b1792 Binary files /dev/null and b/Source/Modulos/Formas de pago/Views/FormasPago_view.dpk differ diff --git a/Source/Modulos/Formas de pago/Views/FormasPago_view.dproj b/Source/Modulos/Formas de pago/Views/FormasPago_view.dproj new file mode 100644 index 0000000..c1baf6b --- /dev/null +++ b/Source/Modulos/Formas de pago/Views/FormasPago_view.dproj @@ -0,0 +1,549 @@ + + + + {e3d36a6f-7004-4c89-9f3d-f2d77e386d1b} + FormasPago_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\FormasPago_view.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + DEBUG + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0FormasPago_view.dpk + + + + + MainSource + + + + + + + + + +
fEditorFormaPago
+
+ +
fEditorFormasPago
+
+ +
+
+ diff --git a/Source/Modulos/Formas de pago/Views/FormasPago_view.rc b/Source/Modulos/Formas de pago/Views/FormasPago_view.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Formas de pago/Views/FormasPago_view.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Formas de pago/Views/FormasPago_view.res b/Source/Modulos/Formas de pago/Views/FormasPago_view.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Formas de pago/Views/FormasPago_view.res differ diff --git a/Source/Modulos/Formas de pago/Views/uEditorFormaPago.dcu b/Source/Modulos/Formas de pago/Views/uEditorFormaPago.dcu new file mode 100644 index 0000000..9e9050b Binary files /dev/null and b/Source/Modulos/Formas de pago/Views/uEditorFormaPago.dcu differ diff --git a/Source/Modulos/Formas de pago/Views/uEditorFormaPago.dfm b/Source/Modulos/Formas de pago/Views/uEditorFormaPago.dfm new file mode 100644 index 0000000..b774ef8 --- /dev/null +++ b/Source/Modulos/Formas de pago/Views/uEditorFormaPago.dfm @@ -0,0 +1,223 @@ +object fEditorFormaPago: TfEditorFormaPago + Left = 453 + Top = 234 + ActiveControl = eReferencia + BorderIcons = [biSystemMenu] + BorderStyle = bsSingle + Caption = 'Forma de pago' + ClientHeight = 352 + ClientWidth = 404 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object Label1: TLabel + Left = 16 + Top = 17 + Width = 151 + Height = 13 + Caption = 'Datos de la forma de pago' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentFont = False + end + object Bevel1: TBevel + Left = 173 + Top = 17 + Width = 212 + Height = 10 + Shape = bsBottomLine + end + object Label2: TLabel + Left = 62 + Top = 43 + Width = 55 + Height = 13 + Alignment = taRightJustify + Caption = 'Referencia:' + end + object Label3: TLabel + Left = 58 + Top = 71 + Width = 59 + Height = 13 + Alignment = taRightJustify + Caption = 'Descripci'#243'n:' + end + object Label11: TLabel + Left = 16 + Top = 112 + Width = 91 + Height = 13 + Caption = 'Plazos del pago' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentFont = False + end + object Bevel3: TBevel + Left = 113 + Top = 112 + Width = 272 + Height = 10 + Shape = bsBottomLine + end + object Bevel4: TBevel + Left = 8 + Top = 290 + Width = 388 + Height = 10 + Shape = bsBottomLine + end + object JvEnterAsTab1: TJvEnterAsTab + Left = 137 + Top = 306 + Width = 28 + Height = 28 + end + object bAceptar: TButton + Left = 234 + Top = 314 + Width = 75 + Height = 23 + Action = actAceptar + TabOrder = 5 + end + object bCancelar: TButton + Left = 319 + Top = 314 + Width = 75 + Height = 23 + Action = actCancelar + Cancel = True + TabOrder = 6 + end + object eReferencia: TDBEdit + Left = 123 + Top = 40 + Width = 118 + Height = 21 + Color = clInfoBk + DataField = 'REFERENCIA' + DataSource = dsFormaPago + TabOrder = 0 + end + object eDescripcion: TDBEdit + Left = 123 + Top = 68 + Width = 262 + Height = 21 + Color = clInfoBk + DataField = 'DESCRIPCION' + DataSource = dsFormaPago + TabOrder = 1 + end + object bAnadir: TButton + Left = 290 + Top = 134 + Width = 95 + Height = 23 + Action = actAnadir + TabOrder = 3 + end + object bEliminar: TButton + Left = 290 + Top = 163 + Width = 95 + Height = 23 + Action = actEliminar + TabOrder = 4 + end + object ListaFormasPago: TcxGrid + Left = 32 + Top = 134 + Width = 252 + Height = 150 + TabOrder = 2 + LookAndFeel.Kind = lfStandard + LookAndFeel.NativeStyle = True + object ListaFormasPagoDBTableView1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = dsPlazos + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsCustomize.ColumnGrouping = False + OptionsCustomize.ColumnMoving = False + OptionsCustomize.ColumnSorting = False + OptionsData.Deleting = False + OptionsData.DeletingConfirmation = False + OptionsData.Inserting = False + OptionsView.CellEndEllipsis = True + OptionsView.GroupByBox = False + object ListaFormasPagoDBTableView1NUM_DIAS: TcxGridDBColumn + DataBinding.FieldName = 'NUM_DIAS' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.AssignedValues.MinValue = True + Width = 112 + end + object ListaFormasPagoDBTableView1PORCENTAJE: TcxGridDBColumn + DataBinding.FieldName = 'PORCENTAJE' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.AssignedValues.MinValue = True + Properties.MaxValue = 100.000000000000000000 + HeaderAlignmentHorz = taRightJustify + Width = 132 + end + end + object ListaFormasPagoLevel1: TcxGridLevel + GridView = ListaFormasPagoDBTableView1 + end + end + object ActionList1: TActionList + Left = 88 + Top = 300 + object actAnadir: TAction + Caption = '&A'#241'adir' + OnExecute = actAnadirExecute + OnUpdate = actAnadirUpdate + end + object actEliminar: TAction + Caption = '&Eliminar' + OnExecute = actEliminarExecute + OnUpdate = actEliminarUpdate + end + object actAceptar: TAction + Caption = '&Guardar' + OnExecute = actAceptarExecute + end + object actCancelar: TAction + Caption = '&Cancelar' + OnExecute = actCancelarExecute + end + object actCerrar: TAction + Caption = 'actCerrar' + OnExecute = actCerrarExecute + end + object actModificar: TAction + Caption = '&Modificar' + end + end + object dsFormaPago: TDADataSource + Left = 48 + Top = 300 + end + object dsPlazos: TDADataSource + Left = 8 + Top = 300 + end +end diff --git a/Source/Modulos/Formas de pago/Views/uEditorFormaPago.pas b/Source/Modulos/Formas de pago/Views/uEditorFormaPago.pas new file mode 100644 index 0000000..242236f --- /dev/null +++ b/Source/Modulos/Formas de pago/Views/uEditorFormaPago.pas @@ -0,0 +1,192 @@ +{ +=============================================================================== + Copyright () 2006. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: 22-05-2006 + Versin actual: 1.0.0 + Fecha versin actual: 22-05-2006 +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uEditorFormaPago; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Grids, DBGrids, StdCtrls, Mask, DBCtrls, DB, + uBizFormasPago, uBizFormasPagoPlazos, + uFormasPagoController, uFormasPagoPlazosController, + uDADataTable, uIEditorFormaPago, ActnList, ExtCtrls, JvExControls, + JvComponent, JvEnterTab, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, cxDBData, cxSpinEdit, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGridLevel, cxClasses, cxControls, + cxGridCustomView, cxGrid, uDAInterfaces; + +type + TfEditorFormaPago = class(TForm, IEditorFormaPago) + ActionList1: TActionList; + dsFormaPago: TDADataSource; + actAnadir: TAction; + actEliminar: TAction; + actAceptar: TAction; + actCancelar: TAction; + bAceptar: TButton; + bCancelar: TButton; + actCerrar: TAction; + actModificar: TAction; + eReferencia: TDBEdit; + eDescripcion: TDBEdit; + dsPlazos: TDADataSource; + Label1: TLabel; + Bevel1: TBevel; + Label2: TLabel; + Label3: TLabel; + Label11: TLabel; + Bevel3: TBevel; + Bevel4: TBevel; + bAnadir: TButton; + bEliminar: TButton; + JvEnterAsTab1: TJvEnterAsTab; + ListaFormasPagoDBTableView1: TcxGridDBTableView; + ListaFormasPagoLevel1: TcxGridLevel; + ListaFormasPago: TcxGrid; + ListaFormasPagoDBTableView1NUM_DIAS: TcxGridDBColumn; + ListaFormasPagoDBTableView1PORCENTAJE: TcxGridDBColumn; + procedure FormShow(Sender: TObject); + + procedure actAnadirExecute(Sender: TObject); + procedure actEliminarExecute(Sender: TObject); + procedure actAceptarExecute(Sender: TObject); + procedure actCancelarExecute(Sender: TObject); + procedure actCerrarExecute(Sender: TObject); + procedure actAnadirUpdate(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + protected + FFormaPago: IBizFormaPago; + FPlazos : IBizFormaPagoPlazos; + FController : IFormasPagoController; + FPlazosController: IFormasPagoPlazosController; + function GetFormaPago: IBizFormaPago; + procedure SetFormaPago(const Value: IBizFormaPago); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + property FormaPago: IBizFormaPago read GetFormaPago write SetFormaPago; + end; + + +implementation +{$R *.dfm} + +{ TfEditorFormasPago } + +uses + Dialogs, uDialogUtils, uDataModuleFormasPago; + +function TfEditorFormaPago.GetFormaPago: IBizFormaPago; +begin + Result := FFormaPago; +end; + +procedure TfEditorFormaPago.SetFormaPago(const Value: IBizFormaPago); +begin + FFormaPago := Value; + if Assigned(FFormaPago) then + begin + FPlazos := FFormaPago.Plazos; + dsFormaPago.DataTable := FFormaPago.DataTable; + dsPlazos.DataTable := FPlazos.DataTable; + dsFormaPago.DataTable.Open; + dsPlazos.DataTable.Open; + end + else begin + dsFormaPago.DataTable := NIL; + dsPlazos.DataTable := NIL; + end; +end; + +procedure TfEditorFormaPago.actAnadirExecute(Sender: TObject); +begin + FPlazos.Append; +end; + +procedure TfEditorFormaPago.actEliminarExecute(Sender: TObject); +begin + FPlazos.Delete; +end; + +procedure TfEditorFormaPago.actEliminarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := Assigned(FPlazos) and + FPlazos.DataTable.Active and + (FPlazos.DataTable.RecordCount > 0); +end; + +constructor TfEditorFormaPago.Create(AOwner: TComponent); +begin + inherited; + FController := TFormasPagoController.Create; + FPlazosController := TFormasPagoPlazosController.Create; +end; + +destructor TfEditorFormaPago.Destroy; +begin + FFormaPago := NIL; + FPlazosController := NIL; + FController := NIL; + inherited; +end; + +procedure TfEditorFormaPago.actAceptarExecute(Sender: TObject); +begin + if (ListaFormasPago.ActiveView.DataController.RecordCount = 0) then + if (ShowConfirmMessage('Forma de pago sin plazos', 'No ha indicado plazos de pago para esta forma de pago por lo tanto no se podrn generarar los recibos correspondientes.' + #10#13 + 'Desea continuar guardando la forma de pago?') = IDNO) then + Exit; + + if FController.Guardar(FFormaPago) then + actCerrar.Execute; +end; + +procedure TfEditorFormaPago.actCancelarExecute(Sender: TObject); +begin + FController.DescartarCambios(FFormaPago); + actCerrar.Execute; +end; + +procedure TfEditorFormaPago.actCerrarExecute(Sender: TObject); +begin + Close; +end; + +procedure TfEditorFormaPago.actAnadirUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := Assigned(FPlazos) and + FPlazos.DataTable.Active; +end; + +procedure TfEditorFormaPago.FormShow(Sender: TObject); +begin + if not FFormaPago.DataTable.Active then + FFormaPago.DataTable.Active := True; + + if FFormaPago.EsNuevo then + Self.Caption := 'Nueva forma de pago' + else + Self.Caption := 'Modificar forma de pago'; +end; + +end. diff --git a/Source/Modulos/Formas de pago/Views/uEditorFormasPago.dcu b/Source/Modulos/Formas de pago/Views/uEditorFormasPago.dcu new file mode 100644 index 0000000..fb5d7ac Binary files /dev/null and b/Source/Modulos/Formas de pago/Views/uEditorFormasPago.dcu differ diff --git a/Source/Modulos/Formas de pago/Views/uEditorFormasPago.dfm b/Source/Modulos/Formas de pago/Views/uEditorFormasPago.dfm new file mode 100644 index 0000000..cd908f9 --- /dev/null +++ b/Source/Modulos/Formas de pago/Views/uEditorFormasPago.dfm @@ -0,0 +1,145 @@ +object fEditorFormasPago: TfEditorFormasPago + Left = 453 + Top = 234 + BorderIcons = [biSystemMenu] + BorderStyle = bsSingle + Caption = 'Lista de formas de pago' + ClientHeight = 406 + ClientWidth = 404 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object bAceptar: TButton + Left = 236 + Top = 373 + Width = 75 + Height = 23 + Action = actAceptar + Default = True + TabOrder = 1 + end + object bCancelar: TButton + Left = 321 + Top = 373 + Width = 75 + Height = 23 + Action = actCancelar + Cancel = True + TabOrder = 2 + end + object PageControl1: TPageControl + Left = 6 + Top = 8 + Width = 390 + Height = 356 + ActivePage = TabSheet1 + TabOrder = 0 + object TabSheet1: TTabSheet + Caption = 'Formas de pago' + object Label1: TLabel + Left = 6 + Top = 12 + Width = 168 + Height = 13 + Caption = 'Lista de formas de pago disponibles' + end + object bEliminar: TButton + Left = 284 + Top = 90 + Width = 95 + Height = 23 + Action = actEliminar + TabOrder = 0 + end + object bAnadir: TButton + Left = 284 + Top = 31 + Width = 95 + Height = 23 + Action = actAnadir + TabOrder = 1 + end + object Button1: TButton + Left = 284 + Top = 61 + Width = 95 + Height = 23 + Action = actModificar + TabOrder = 2 + end + object ListaFormasPago: TDBGrid + Left = 6 + Top = 31 + Width = 272 + Height = 289 + DataSource = dsFormasPago + Options = [dgTitles, dgColumnResize, dgTabs, dgRowSelect, dgAlwaysShowSelection, dgCancelOnExit] + TabOrder = 3 + TitleFont.Charset = DEFAULT_CHARSET + TitleFont.Color = clWindowText + TitleFont.Height = -11 + TitleFont.Name = 'MS Sans Serif' + TitleFont.Style = [] + OnDblClick = ListaFormasPagoDblClick + Columns = < + item + Expanded = False + FieldName = 'REFERENCIA' + Title.Caption = 'Referencia' + Width = 110 + Visible = True + end + item + Expanded = False + FieldName = 'DESCRIPCION' + Title.Caption = 'Descripci'#243'n' + Width = 154 + Visible = True + end> + end + end + end + object ActionList1: TActionList + Left = 144 + Top = 16 + object actAnadir: TAction + Caption = '&A'#241'adir...' + OnExecute = actAnadirExecute + OnUpdate = actAnadirUpdate + end + object actEliminar: TAction + Caption = '&Eliminar' + OnExecute = actEliminarExecute + OnUpdate = actEliminarUpdate + end + object actAceptar: TAction + Caption = 'A&ceptar' + OnExecute = actAceptarExecute + end + object actCancelar: TAction + Caption = '&Cancelar' + OnExecute = actCancelarExecute + end + object actCerrar: TAction + Caption = 'actCerrar' + OnExecute = actCerrarExecute + end + object actModificar: TAction + Caption = '&Modificar...' + OnExecute = actModificarExecute + OnUpdate = actModificarUpdate + end + end + object dsFormasPago: TDADataSource + Left = 168 + Top = 16 + end +end diff --git a/Source/Modulos/Formas de pago/Views/uEditorFormasPago.pas b/Source/Modulos/Formas de pago/Views/uEditorFormasPago.pas new file mode 100644 index 0000000..01b9449 --- /dev/null +++ b/Source/Modulos/Formas de pago/Views/uEditorFormasPago.pas @@ -0,0 +1,184 @@ +{ +=============================================================================== + Copyright () 2006. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: 22-05-2006 + Versin actual: 1.0.0 + Fecha versin actual: 22-05-2006 +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uEditorFormasPago; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + uIEditorFormasPago, uBizFormasPago, uFormasPagoController, DB, uDADataTable, + ActnList, Grids, DBGrids, StdCtrls, ComCtrls, uDAInterfaces, Mask, DBCtrls; + +type + TfEditorFormasPago = class(TForm, IEditorFormasPago) + ActionList1: TActionList; + dsFormasPago: TDADataSource; + actAnadir: TAction; + actEliminar: TAction; + bEliminar: TButton; + actAceptar: TAction; + actCancelar: TAction; + bAceptar: TButton; + bCancelar: TButton; + actCerrar: TAction; + PageControl1: TPageControl; + TabSheet1: TTabSheet; + Label1: TLabel; + bAnadir: TButton; + actModificar: TAction; + Button1: TButton; + ListaFormasPago: TDBGrid; + procedure FormShow(Sender: TObject); + + procedure actAnadirExecute(Sender: TObject); + procedure actEliminarExecute(Sender: TObject); + procedure actAceptarExecute(Sender: TObject); + procedure actCancelarExecute(Sender: TObject); + procedure actCerrarExecute(Sender: TObject); + procedure actAnadirUpdate(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + procedure actModificarExecute(Sender: TObject); + procedure ListaFormasPagoDblClick(Sender: TObject); + procedure actModificarUpdate(Sender: TObject); + protected + FFormasPago: IBizFormaPago; + FController: IFormasPagoController; + function GetFormasPago: IBizFormaPago; + procedure SetFormasPago(const Value: IBizFormaPago); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + property FormasPago: IBizFormaPago read GetFormasPago write SetFormasPago; + end; + + +implementation +{$R *.dfm} + +{ TfEditorFormasPago } + +uses + uDialogUtils; + +function TfEditorFormasPago.GetFormasPago: IBizFormaPago; +begin + Result := FFormasPago; +end; + +procedure TfEditorFormasPago.ListaFormasPagoDblClick(Sender: TObject); +begin +// ListaFormasPago.SelectedIndex +end; + +procedure TfEditorFormasPago.SetFormasPago(const Value: IBizFormaPago); +begin + FFormasPago := Value; + dsFormasPago.DataTable := (FFormasPago as IBizFormaPago).DataTable; + dsFormasPago.DataTable.Open; +end; + +procedure TfEditorFormasPago.actAnadirExecute(Sender: TObject); +begin + FController.Anadir(FormasPago); + FController.Ver(FormasPago); +end; + +procedure TfEditorFormasPago.actEliminarExecute(Sender: TObject); +begin + if (ShowConfirmMessage('Borrar forma de pago', 'Est seguro que desea borrar esta forma de pago?') = IDYES) then + FController.Eliminar(FFormasPago) +end; + +procedure TfEditorFormasPago.actEliminarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := Assigned(FFormasPago) and + FFormasPago.DataTable.Active and + (FFormasPago.DataTable.RecordCount > 0); +end; + +procedure TfEditorFormasPago.actModificarExecute(Sender: TObject); +begin + FController.Ver(FormasPago); +end; + +procedure TfEditorFormasPago.actModificarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := Assigned(FFormasPago) and + FFormasPago.DataTable.Active and + (FFormasPago.DataTable.RecordCount > 0); +end; + +constructor TfEditorFormasPago.Create(AOwner: TComponent); +begin + inherited; + FController := TFormasPagoController.Create; +end; + +destructor TfEditorFormasPago.Destroy; +begin + FFormasPago := NIL; + FController := NIL; + inherited; +end; + +procedure TfEditorFormasPago.actAceptarExecute(Sender: TObject); +begin + try + FormasPago.DataTable.ApplyUpdates; + except + on E : Exception do begin + FormasPago.DataTable.CancelUpdates; + ShowErrorMessage('Error al guardar cambios', 'Se ha producido un error grave', E); + Exit; + end; + end; + actCerrar.Execute; +end; + +procedure TfEditorFormasPago.actCancelarExecute(Sender: TObject); +begin + FormasPago.DataTable.CancelUpdates; + actCerrar.Execute; +end; + +procedure TfEditorFormasPago.actCerrarExecute(Sender: TObject); +begin + Close; +end; + +procedure TfEditorFormasPago.actAnadirUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := Assigned(FFormasPago) and + FFormasPago.DataTable.Active; +end; + +procedure TfEditorFormasPago.FormShow(Sender: TObject); +begin + if not FFormasPago.DataTable.Active then + FFormasPago.DataTable.Active := true; + + ListaFormasPago.SetFocus; +end; + +end. diff --git a/Source/Modulos/Formas de pago/Views/uFormasPagoViewRegister.dcu b/Source/Modulos/Formas de pago/Views/uFormasPagoViewRegister.dcu new file mode 100644 index 0000000..0ff0d26 Binary files /dev/null and b/Source/Modulos/Formas de pago/Views/uFormasPagoViewRegister.dcu differ diff --git a/Source/Modulos/Formas de pago/Views/uFormasPagoViewRegister.pas b/Source/Modulos/Formas de pago/Views/uFormasPagoViewRegister.pas new file mode 100644 index 0000000..6575f23 --- /dev/null +++ b/Source/Modulos/Formas de pago/Views/uFormasPagoViewRegister.pas @@ -0,0 +1,25 @@ +unit uFormasPagoViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorFormaPago, uEditorFormasPago; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorFormasPago, 'EditorFormasPago'); + EditorRegistry.RegisterClass(TfEditorFormaPago, 'EditorFormaPago'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorFormasPago); + EditorRegistry.UnRegisterClass(TfEditorFormaPago); +end; + +end. diff --git a/Source/Modulos/Gestion de documentos/Controller/GestorDocumentos_Controller.res b/Source/Modulos/Gestion de documentos/Controller/GestorDocumentos_Controller.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Gestion de documentos/Controller/GestorDocumentos_Controller.res differ diff --git a/Source/Modulos/Gestion de documentos/Controller/GestorDocumentos_controller.dcu b/Source/Modulos/Gestion de documentos/Controller/GestorDocumentos_controller.dcu new file mode 100644 index 0000000..946f499 Binary files /dev/null and b/Source/Modulos/Gestion de documentos/Controller/GestorDocumentos_controller.dcu differ diff --git a/Source/Modulos/Gestion de documentos/Controller/GestorDocumentos_controller.dpk b/Source/Modulos/Gestion de documentos/Controller/GestorDocumentos_controller.dpk new file mode 100644 index 0000000..1b86b19 Binary files /dev/null and b/Source/Modulos/Gestion de documentos/Controller/GestorDocumentos_controller.dpk differ diff --git a/Source/Modulos/Gestion de documentos/Controller/GestorDocumentos_controller.dproj b/Source/Modulos/Gestion de documentos/Controller/GestorDocumentos_controller.dproj new file mode 100644 index 0000000..e83b962 --- /dev/null +++ b/Source/Modulos/Gestion de documentos/Controller/GestorDocumentos_controller.dproj @@ -0,0 +1,540 @@ + + + + {7ed85635-c723-4c0b-bf1d-f719e0ea33ad} + GestorDocumentos_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\GestorDocumentos_controller.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0GestorDocumentos_controller.dpk + + + + + MainSource + + + + + + + + diff --git a/Source/Modulos/Gestion de documentos/Controller/GestorDocumentos_controller.drc b/Source/Modulos/Gestion de documentos/Controller/GestorDocumentos_controller.drc new file mode 100644 index 0000000..ada6e46 --- /dev/null +++ b/Source/Modulos/Gestion de documentos/Controller/GestorDocumentos_controller.drc @@ -0,0 +1,16 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Gestion de documentos\Controller\GestorDocumentos_Controller.res */ +/* c:\temp\dtf163.tmp */ diff --git a/Source/Modulos/Gestion de documentos/Controller/GestorDocumentos_controller.rc b/Source/Modulos/Gestion de documentos/Controller/GestorDocumentos_controller.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Gestion de documentos/Controller/GestorDocumentos_controller.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Gestion de documentos/Controller/uGestorDocumentosController.dcu b/Source/Modulos/Gestion de documentos/Controller/uGestorDocumentosController.dcu new file mode 100644 index 0000000..4ba20a0 Binary files /dev/null and b/Source/Modulos/Gestion de documentos/Controller/uGestorDocumentosController.dcu differ diff --git a/Source/Modulos/Gestion de documentos/Controller/uGestorDocumentosController.pas b/Source/Modulos/Gestion de documentos/Controller/uGestorDocumentosController.pas new file mode 100644 index 0000000..5b46d02 --- /dev/null +++ b/Source/Modulos/Gestion de documentos/Controller/uGestorDocumentosController.pas @@ -0,0 +1,110 @@ +unit uGestorDocumentosController; + +interface + +uses + Classes, uROTypes, uControllerBase, uDataModuleGestorDocumentos; + +type + IGestorDocumentosController = interface(IControllerBase) + ['{75EC4D1B-A7A2-4C81-B2DA-8688240D6EC2}'] + function DarListaDocumentos(const ID: Integer): TStringList; + function DescargarFichero(const ID:Integer; const NombreFichero: String; const DestinoFichero: String): Boolean; + function SubirFichero(const ID:Integer; const NombreFichero: String; const Fichero: Binary): Boolean; + procedure SincronizarDocumentos(const ID: Integer; FListaDocumentos: TStringList; Directorio: String); + function EliminarDirectorio(const ID: Integer): Boolean; + end; + + TGestorDocumentosController = class(TControllerBase, IGestorDocumentosController) + protected + FDataModule : IDataModuleGestorDocumentos; + + //Estos son los tres mtodos a sobre escribir si se desea heredar toda la logica de + //este controller + procedure AsignarDataModule; virtual; + + public + constructor Create; override; + destructor Destroy; override; + + function DarListaDocumentos(const ID: Integer): TStringList; + function DescargarFichero(const ID:Integer; const NombreFichero: String; const DestinoFichero: String): Boolean; + function SubirFichero(const ID:Integer; const NombreFichero: String; const Fichero: Binary): Boolean; + procedure SincronizarDocumentos(const ID: Integer; FListaDocumentos: TStringList; Directorio: String); + function EliminarDirectorio(const ID: Integer): Boolean; + end; + +implementation +{ TGestorDocumentosController } + +uses SysUtils, Dialogs; + +procedure TGestorDocumentosController.AsignarDataModule; +begin + FDataModule := TDataModuleGestorDocumentos.Create(Nil); +end; + +constructor TGestorDocumentosController.Create; +begin + inherited; + AsignarDataModule; +end; + +function TGestorDocumentosController.DarListaDocumentos( + const ID: Integer): TStringList; +begin + Result := FDataModule.DarListaDocumentos(ID); +end; + +function TGestorDocumentosController.DescargarFichero(const ID: Integer; + const NombreFichero, DestinoFichero: String): Boolean; +begin + Result := FDataModule.DescargarFichero(ID, NombreFichero, DestinoFichero); +end; + +destructor TGestorDocumentosController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + +function TGestorDocumentosController.EliminarDirectorio(const ID: Integer): Boolean; +begin + Result := FDataModule.EliminarID(ID); +end; + +procedure TGestorDocumentosController.SincronizarDocumentos(const ID: Integer; + FListaDocumentos: TStringList; Directorio: String); +var + ListaDocumentosServidor: TStringList; + ANombreFichero: String; + AFichero: Binary; + i, j: Integer; +begin + //Eliminamos todos los documentos del servidor que ya no existan en el cliente. + ListaDocumentosServidor := DarListaDocumentos(ID); + for i:= 0 to ListaDocumentosServidor.Count - 1 do + if not FListaDocumentos.Find(ListaDocumentosServidor.Strings[i], j) then + if not FDataModule.EliminarFichero(ID, ListaDocumentosServidor.Strings[i]) then + showmessage('Error al borrar fichero' + ListaDocumentosServidor.Strings[i]); + + //Subimos todos los ficheros que halla al servidor (de momento no se miran fechas) + for i := 0 to FListaDocumentos.Count - 1 do + begin + ANombreFichero := Directorio + FListaDocumentos.Strings[i]; + if FileExists(ANombreFichero) then + begin + AFichero := Binary.Create; + AFichero.LoadFromFile(ANombreFichero); + SubirFichero(ID, ExtractFileName(ANombreFichero), AFichero); + end; + end; +end; + +function TGestorDocumentosController.SubirFichero(const ID: Integer; + const NombreFichero: String; const Fichero: Binary): Boolean; +begin + Result := FDataModule.SubirFichero(ID, NombreFichero, Fichero); +end; + +end. diff --git a/Source/Modulos/Gestion de documentos/Data/GestorDocumentos_data.dcu b/Source/Modulos/Gestion de documentos/Data/GestorDocumentos_data.dcu new file mode 100644 index 0000000..36091ff Binary files /dev/null and b/Source/Modulos/Gestion de documentos/Data/GestorDocumentos_data.dcu differ diff --git a/Source/Modulos/Gestion de documentos/Data/GestorDocumentos_data.dpk b/Source/Modulos/Gestion de documentos/Data/GestorDocumentos_data.dpk new file mode 100644 index 0000000..2e92495 Binary files /dev/null and b/Source/Modulos/Gestion de documentos/Data/GestorDocumentos_data.dpk differ diff --git a/Source/Modulos/Gestion de documentos/Data/GestorDocumentos_data.dproj b/Source/Modulos/Gestion de documentos/Data/GestorDocumentos_data.dproj new file mode 100644 index 0000000..db4c7b3 --- /dev/null +++ b/Source/Modulos/Gestion de documentos/Data/GestorDocumentos_data.dproj @@ -0,0 +1,540 @@ + + + + {38eef566-1895-4bdd-8007-f92f5e32cce6} + GestorDocumentos_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\GestorDocumentos_data.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0GestorDocumentos_data.dpk + + + + + MainSource + + + +
DataModuleGestorDocumentos
+
+
+
+ diff --git a/Source/Modulos/Gestion de documentos/Data/GestorDocumentos_data.drc b/Source/Modulos/Gestion de documentos/Data/GestorDocumentos_data.drc new file mode 100644 index 0000000..68dbbac --- /dev/null +++ b/Source/Modulos/Gestion de documentos/Data/GestorDocumentos_data.drc @@ -0,0 +1,17 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Gestion de documentos\Data\uDataModuleGestorDocumentos.dfm */ +/* C:\Codigo\Source\Modulos\Gestion de documentos\Data\GestorDocumentos_data.res */ +/* c:\temp\dtf161.tmp */ diff --git a/Source/Modulos/Gestion de documentos/Data/GestorDocumentos_data.rc b/Source/Modulos/Gestion de documentos/Data/GestorDocumentos_data.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Gestion de documentos/Data/GestorDocumentos_data.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Gestion de documentos/Data/GestorDocumentos_data.res b/Source/Modulos/Gestion de documentos/Data/GestorDocumentos_data.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Gestion de documentos/Data/GestorDocumentos_data.res differ diff --git a/Source/Modulos/Gestion de documentos/Data/uDataModuleGestorDocumentos.dcu b/Source/Modulos/Gestion de documentos/Data/uDataModuleGestorDocumentos.dcu new file mode 100644 index 0000000..2f395f5 Binary files /dev/null and b/Source/Modulos/Gestion de documentos/Data/uDataModuleGestorDocumentos.dcu differ diff --git a/Source/Modulos/Gestion de documentos/Data/uDataModuleGestorDocumentos.dfm b/Source/Modulos/Gestion de documentos/Data/uDataModuleGestorDocumentos.dfm new file mode 100644 index 0000000..63d42a2 --- /dev/null +++ b/Source/Modulos/Gestion de documentos/Data/uDataModuleGestorDocumentos.dfm @@ -0,0 +1,16 @@ +inherited DataModuleGestorDocumentos: TDataModuleGestorDocumentos + OnCreate = DAClientDataModuleCreate + Height = 182 + Width = 218 + object Bin2DataStreamer: TDABin2DataStreamer + Left = 56 + Top = 84 + end + object RORemoteService: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvGestorDocumentos' + Left = 56 + Top = 24 + end +end diff --git a/Source/Modulos/Gestion de documentos/Data/uDataModuleGestorDocumentos.pas b/Source/Modulos/Gestion de documentos/Data/uDataModuleGestorDocumentos.pas new file mode 100644 index 0000000..0a58a60 --- /dev/null +++ b/Source/Modulos/Gestion de documentos/Data/uDataModuleGestorDocumentos.pas @@ -0,0 +1,115 @@ +unit uDataModuleGestorDocumentos; + +interface + +uses + DB, uDataModuleBase, uROClient, uRORemoteService, Classes, uDADataStreamer, + uDABin2DataStreamer, uROTypes, uDADataTable; + +type + IDataModuleGestorDocumentos = interface + ['{03537996-181D-428C-9B1D-56B499F0048E}'] + function DarListaDocumentos(const ID : Integer): TStringList; + function DescargarFichero(const ID : Integer; const NombreFichero: String; const DestinoFichero: String): Boolean; + function SubirFichero(const ID : Integer; const NombreFichero: String; const Fichero: Binary): Boolean; + function EliminarFichero(const ID : Integer; const NombreFichero: String): Boolean; + function EliminarID(const ID : Integer): Boolean; + end; + + TDataModuleGestorDocumentos = class(TDataModuleBase, IDataModuleGestorDocumentos) + Bin2DataStreamer: TDABin2DataStreamer; + RORemoteService: TRORemoteService; + procedure DAClientDataModuleCreate(Sender: TObject); + + protected + procedure AsignarClaseNegocio(APresupuesto: TDADataTable); virtual; + + public + function DarListaDocumentos(const ID : Integer): TStringList; + function DescargarFichero(const ID : Integer; const NombreFichero: String; const DestinoFichero: String): Boolean; + function SubirFichero(const ID : Integer; const NombreFichero: String; const Fichero: Binary): Boolean; + function EliminarFichero(const ID : Integer; const NombreFichero: String): Boolean; + function EliminarID(const ID : Integer): Boolean; + end; + +implementation +{$R *.DFM} + +uses + SysUtils, FactuGES_Intf, uDataModuleConexion, DataAbstract4_Intf; + +{ TdmGestorDocumentos } + +procedure TDataModuleGestorDocumentos.AsignarClaseNegocio(APresupuesto: TDADataTable); +begin +// +end; + +procedure TDataModuleGestorDocumentos.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleGestorDocumentos.DarListaDocumentos(const ID: Integer): TStringList; +var + AResultado : StringArray; + i: Integer; +begin + try + AResultado := (RORemoteService as IsrvGestorDocumentos).DarListaFicheros(TRdxAlmacenes_Presupuestos, ID); + Result := TStringList.Create; + for i:= 0 to AResultado.Count - 1 do + Result.Add(AResultado.Items[i]); + finally + FreeANDNIL(AResultado) + end; +end; + +function TDataModuleGestorDocumentos.DescargarFichero(const ID: Integer; const NombreFichero: String; +const DestinoFichero: String): Boolean; +var + AFichero: Binary; + +begin + Result := False; + try + AFichero := (RORemoteService as IsrvGestorDocumentos).DescargarFichero(TRdxAlmacenes_Presupuestos, ID, NombreFichero); + AFichero.SaveToFile((DestinoFichero + NombreFichero)); + Result := True; + finally + FreeAndNil(AFichero); + end; +end; + +function TDataModuleGestorDocumentos.EliminarFichero(const ID: Integer; const NombreFichero: String): Boolean; +begin + Result := False; + try + Result := (RORemoteService as IsrvGestorDocumentos).EliminarFichero(TRdxAlmacenes_Presupuestos, ID, NombreFichero); + finally + // + end; +end; + +function TDataModuleGestorDocumentos.EliminarID(const ID: Integer): Boolean; +begin + Result := False; + try + Result := (RORemoteService as IsrvGestorDocumentos).EliminarID(TRdxAlmacenes_Presupuestos, ID); + finally + // + end; +end; + +function TDataModuleGestorDocumentos.SubirFichero(const ID: Integer; const NombreFichero: String; const Fichero: Binary): Boolean; +begin + Result := False; + try + Result := (RORemoteService as IsrvGestorDocumentos).SubirFichero(TRdxAlmacenes_Presupuestos, ID, NombreFichero, Fichero); + finally + // + end; +end; + +end. diff --git a/Source/Modulos/Gestion de documentos/Servidor/srvGestorDocumentos_Impl.dcu b/Source/Modulos/Gestion de documentos/Servidor/srvGestorDocumentos_Impl.dcu new file mode 100644 index 0000000..7c940d0 Binary files /dev/null and b/Source/Modulos/Gestion de documentos/Servidor/srvGestorDocumentos_Impl.dcu differ diff --git a/Source/Modulos/Gestion de documentos/Servidor/srvGestorDocumentos_Impl.dfm b/Source/Modulos/Gestion de documentos/Servidor/srvGestorDocumentos_Impl.dfm new file mode 100644 index 0000000..b491e84 --- /dev/null +++ b/Source/Modulos/Gestion de documentos/Servidor/srvGestorDocumentos_Impl.dfm @@ -0,0 +1,6 @@ +object srvGestorDocumentos: TsrvGestorDocumentos + OldCreateOrder = True + ExportedDataTables = <> + Height = 113 + Width = 254 +end diff --git a/Source/Modulos/Gestion de documentos/Servidor/srvGestorDocumentos_Impl.pas b/Source/Modulos/Gestion de documentos/Servidor/srvGestorDocumentos_Impl.pas new file mode 100644 index 0000000..823358a --- /dev/null +++ b/Source/Modulos/Gestion de documentos/Servidor/srvGestorDocumentos_Impl.pas @@ -0,0 +1,222 @@ +unit srvGestorDocumentos_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +{$I Remobjects.inc} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROXMLIntf, uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Required:} uRORemoteDataModule, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} FactuGES_Intf; + +type + { TsrvGestorDocumentos } + TsrvGestorDocumentos = class(TDataAbstractService, IsrvGestorDocumentos) + private + function DarRutaDocumentos: string; + + protected + { IsrvGestorDocumentos methods } + function DarListaFicheros(const Almacen: TRdxAlmacenes; const ID: Integer): StringArray; + function DescargarFichero(const Almacen: TRdxAlmacenes; const ID: Integer; const NombreFichero: String): Binary; + function SubirFichero(const Almacen: TRdxAlmacenes; const ID: Integer; const NombreFichero: String; const Fichero: Binary): Boolean; + function EliminarFichero(const Almacen: TRdxAlmacenes; const ID: Integer; const NombreFichero: String): Boolean; + function EliminarID(const Almacen: TRdxAlmacenes; const ID: Integer): Boolean; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, srvConfiguracion_Impl, uSistemaFunc, Dialogs, Forms; + +const + CTE_VALOR = 'RUTA_DOCUMENTOS'; + CTE_DOCUMENTOS = 'DOCUMENTOS'; + CTE_ALMACEN_PRESUPUESTOS = '\Presupuestos\'; + + +procedure Create_srvGestorDocumentos(out anInstance : IUnknown); +begin + anInstance := TsrvGestorDocumentos.Create(nil); +end; + +{ + +Sample call + +You can try this function placing a ListBox and a button on a form and adding this code to the OnClick event of the button: + +procedure TForm1.Button1Click(Sender: TObject); +var + list: TStringList; +begin + list := FindFile('C:\Delphi\*.pas'); + ListBox1.Items.Assign(list); + list.Free; +end; +} + +{ srvGestorDocumentos } +function TsrvGestorDocumentos.DarListaFicheros(const Almacen: TRdxAlmacenes; const ID: Integer): StringArray; +var + Ruta: String; + ListaFicheros: TStringList; + i: Integer; + +begin + Result := NIL; + Ruta := DarRutaDocumentos; + try + case Almacen of + TRdxAlmacenes_Presupuestos: + begin + Ruta := Ruta + CTE_ALMACEN_PRESUPUESTOS + IntToStr(ID) + '\*.*'; + ListaFicheros := FindFile(Ruta); + Result := StringArray.Create(); + for i := 0 to ListaFicheros.Count - 1 do + Result.Add(ExtractFileName(ListaFicheros.Strings[i])); + end; + end; + + finally + if Assigned(ListaFicheros) then + FreeAndNil(ListaFicheros); + end; +end; + +function TsrvGestorDocumentos.DarRutaDocumentos: string; +var + AConfiguracionService : IsrvConfiguracion; + Intf : IInterface; + AClientID : TGUID; + +begin + CreateGUID(AClientID); + try + GetClassFactory('srvConfiguracion').CreateInstance(AClientID, Intf); + AConfiguracionService := Intf as IsrvConfiguracion; + Result := AConfiguracionService.darValor(CTE_VALOR, (ExtractFilePath(Application.ExeName) + CTE_DOCUMENTOS)); + finally + AConfiguracionService := Nil; + end; +end; + +function TsrvGestorDocumentos.DescargarFichero(const Almacen: TRdxAlmacenes; const ID: Integer; const NombreFichero: String): Binary; +var + Ruta: String; + +begin + Result := Binary.Create; + + try + Ruta := DarRutaDocumentos; + case Almacen of + TRdxAlmacenes_Presupuestos: + begin + Ruta := Ruta + CTE_ALMACEN_PRESUPUESTOS + IntToStr(ID) + '\' + NombreFichero; + Result.LoadFromFile(Ruta); + end; + end; + finally + // + end; +end; + +function TsrvGestorDocumentos.EliminarFichero(const Almacen: TRdxAlmacenes; const ID: Integer; +const NombreFichero: String): Boolean; +var + Ruta: String; + +begin + Result := False; + + try + Ruta := DarRutaDocumentos; + case Almacen of + TRdxAlmacenes_Presupuestos: + begin + Ruta := Ruta + CTE_ALMACEN_PRESUPUESTOS + IntToStr(ID) + '\' + NombreFichero; + if FileExists(Ruta) then + Result := DeleteFile(Ruta) + else + Result := True; //Ya ha sido borrado + end; + end; + finally + // + end; +end; + +function TsrvGestorDocumentos.EliminarID(const Almacen: TRdxAlmacenes; const ID: Integer): Boolean; +var + Ruta: String; + +begin + Result := False; + + try + Ruta := DarRutaDocumentos; + case Almacen of + TRdxAlmacenes_Presupuestos: + begin + Ruta := Ruta + CTE_ALMACEN_PRESUPUESTOS + IntToStr(ID); + if DirectoryExists(Ruta) then + Deltree(Ruta, True); + Result := True; + end; + end; + finally + // + end; +end; + +function TsrvGestorDocumentos.SubirFichero(const Almacen: TRdxAlmacenes; const ID: Integer; const NombreFichero: String; + const Fichero: Binary): Boolean; +var + Ruta: String; + +begin + Result := False; + try + Ruta := DarRutaDocumentos; + if not DirectoryExists(Ruta) then + CreateDir(Ruta); + + case Almacen of + TRdxAlmacenes_Presupuestos: + begin + Ruta := Ruta + CTE_ALMACEN_PRESUPUESTOS; + if not DirectoryExists(Ruta) then + CreateDir(Ruta); + + Ruta := Ruta + IntToStr(ID); + if not DirectoryExists(Ruta) then + CreateDir(Ruta); + + Ruta := Ruta + '\' + NombreFichero; + Fichero.SaveToFile(Ruta); + Result := True; + end; + end; + finally + // + end; +end; + +initialization + TROClassFactory.Create('srvGestorDocumentos', Create_srvGestorDocumentos, TsrvGestorDocumentos_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.dcu b/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.dcu new file mode 100644 index 0000000..0bd0434 Binary files /dev/null and b/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.dcu differ diff --git a/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.dpk b/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.dpk new file mode 100644 index 0000000..99f6187 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.dpk @@ -0,0 +1,48 @@ +package GestorInformes_controller; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + Base, + ApplicationBase, + GestorInformes_data; + +contains + uGestorInformesController in 'uGestorInformesController.pas', + uIEditorInformeFacturasClienteReport in 'View\uIEditorInformeFacturasClienteReport.pas', + uIEditorInformeBase in 'View\uIEditorInformeBase.pas', + uIEditorInformeIVAClientesReport in 'View\uIEditorInformeIVAClientesReport.pas', + uIEditorInformeFacturasClientePendientesReport in 'View\uIEditorInformeFacturasClientePendientesReport.pas', + uIEditorInformeRecibosClienteReport in 'View\uIEditorInformeRecibosClienteReport.pas', + uIEditorInformeRecibosCliPendientesReport in 'View\uIEditorInformeRecibosCliPendientesReport.pas', + uIEditorInformeIVAProveedoresReport in 'View\uIEditorInformeIVAProveedoresReport.pas', + uIEditorInformeRecibosProvPendientesReport in 'View\uIEditorInformeRecibosProvPendientesReport.pas', + uIEditorInformeFacturasProveedorPendientesReport in 'View\uIEditorInformeFacturasProveedorPendientesReport.pas', + uIEditorInformeFacturasProveedorReport in 'View\uIEditorInformeFacturasProveedorReport.pas', + uIEditorInformePresupuestosReport in 'View\uIEditorInformePresupuestosReport.pas', + uIEditorInformeRecibosProveedorReport in 'View\uIEditorInformeRecibosProveedorReport.pas', + uIEditorInformePedidosReport in 'View\uIEditorInformePedidosReport.pas'; + +end. diff --git a/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.dproj b/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.dproj new file mode 100644 index 0000000..7435613 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.dproj @@ -0,0 +1,542 @@ + + + + {276cb891-ed7d-4234-bff6-f7ffd1682ac9} + GestorInformes_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\GestorInformes_controller.bpl + + + 7.0 + False + False + 0 + RELEASE + + + 7.0 + ..\..\..\..\Output\Debug\Cliente + .\ + .\ + .\ + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0GestorInformes_controller.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.rc b/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.res b/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.res differ diff --git a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeBase.dcu b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeBase.dcu new file mode 100644 index 0000000..f335493 Binary files /dev/null and b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeBase.dcu differ diff --git a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeBase.pas b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeBase.pas new file mode 100644 index 0000000..37ca534 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeBase.pas @@ -0,0 +1,16 @@ +unit uIEditorInformeBase; + +interface + +uses + uEditorPreview; + +type + IEditorInformeBase = interface(IEditorPreview) + ['{5D57EB76-FD78-4B7E-BBC9-DE1AB5DFECCB}'] + end; + + +implementation + +end. diff --git a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasClientePendientesReport.dcu b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasClientePendientesReport.dcu new file mode 100644 index 0000000..c509e23 Binary files /dev/null and b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasClientePendientesReport.dcu differ diff --git a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasClientePendientesReport.pas b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasClientePendientesReport.pas new file mode 100644 index 0000000..50d638c --- /dev/null +++ b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasClientePendientesReport.pas @@ -0,0 +1,30 @@ +unit uIEditorInformeFacturasClientePendientesReport; + +interface + +uses + FactuGES_Intf, uIEditorInformeBase; + +type + IEditorInformeFacturasClientePendientesReport = interface(IEditorInformeBase) + ['{6ADD8C8B-34D8-4F51-9C9C-4A9ED54DDE34}'] + function GetFechaFin: Variant; + function GetFechaInicio: Variant; + function GetFechaVenFin: Variant; + function GetFechaVenInicio: Variant; + function GetListaIDClientes: TIntegerArray; + function GetDesglosadoCliente: Boolean; + function GetImporteMinimo: Currency; + property FechaInicio: Variant read GetFechaInicio; + property FechaFin: Variant read GetFechaFin; + property FechaVenInicio: Variant read GetFechaVenInicio; + property FechaVenFin: Variant read GetFechaVenFin; + property ListaIDClientes: TIntegerArray read GetListaIDClientes; + property DesglosadoCliente: Boolean read GetDesglosadoCliente; + property ImporteMinimo: Currency read getImporteMinimo; + end; + + +implementation + +end. diff --git a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasClienteReport.dcu b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasClienteReport.dcu new file mode 100644 index 0000000..306e299 Binary files /dev/null and b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasClienteReport.dcu differ diff --git a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasClienteReport.pas b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasClienteReport.pas new file mode 100644 index 0000000..dfcb47d --- /dev/null +++ b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasClienteReport.pas @@ -0,0 +1,30 @@ +unit uIEditorInformeFacturasClienteReport; + +interface + +uses + FactuGES_Intf, uIEditorInformeBase; + +type + IEditorInformeFacturasClienteReport = interface(IEditorInformeBase) + ['{AE5DD69C-6360-4A6A-A764-C0DAF5B5A948}'] + function GetFechaFin: Variant; + function GetFechaInicio: Variant; + function GetFechaVenFin: Variant; + function GetFechaVenInicio: Variant; + function GetListaIDClientes: TIntegerArray; + function GetDesglosadoCliente: Boolean; + function GetImporteMinimo: Currency; + property FechaInicio: Variant read GetFechaInicio; + property FechaFin: Variant read GetFechaFin; + property FechaVenInicio: Variant read GetFechaVenInicio; + property FechaVenFin: Variant read GetFechaVenFin; + property ListaIDClientes: TIntegerArray read GetListaIDClientes; + property DesglosadoCliente: Boolean read GetDesglosadoCliente; + property ImporteMinimo: Currency read getImporteMinimo; + end; + + +implementation + +end. diff --git a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasProveedorPendientesReport.dcu b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasProveedorPendientesReport.dcu new file mode 100644 index 0000000..70a93ad Binary files /dev/null and b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasProveedorPendientesReport.dcu differ diff --git a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasProveedorPendientesReport.pas b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasProveedorPendientesReport.pas new file mode 100644 index 0000000..e9b2fd6 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasProveedorPendientesReport.pas @@ -0,0 +1,30 @@ +unit uIEditorInformeFacturasProveedorPendientesReport; + +interface + +uses + FactuGES_Intf, uIEditorInformeBase; + +type + IEditorInformeFacturasProveedorPendientesReport = interface(IEditorInformeBase) + ['{C0EFEC01-BF2C-4B56-9876-2818892FABFA}'] + function GetFechaFin: Variant; + function GetFechaInicio: Variant; + function GetFechaVenFin: Variant; + function GetFechaVenInicio: Variant; + function GetListaIDProveedores: TIntegerArray; + function GetDesglosadoProveedor: Boolean; + function GetImporteMinimo: Currency; + property FechaInicio: Variant read GetFechaInicio; + property FechaFin: Variant read GetFechaFin; + property FechaVenInicio: Variant read GetFechaVenInicio; + property FechaVenFin: Variant read GetFechaVenFin; + property ListaIDProveedores: TIntegerArray read GetListaIDProveedores; + property DesglosadoProveedor: Boolean read GetDesglosadoProveedor; + property ImporteMinimo: Currency read getImporteMinimo; + end; + + +implementation + +end. diff --git a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasProveedorReport.dcu b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasProveedorReport.dcu new file mode 100644 index 0000000..b2ae62a Binary files /dev/null and b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasProveedorReport.dcu differ diff --git a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasProveedorReport.pas b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasProveedorReport.pas new file mode 100644 index 0000000..5ae334f --- /dev/null +++ b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasProveedorReport.pas @@ -0,0 +1,30 @@ +unit uIEditorInformeFacturasProveedorReport; + +interface + +uses + FactuGES_Intf, uIEditorInformeBase; + +type + IEditorInformeFacturasProveedorReport = interface(IEditorInformeBase) + ['{0E60C309-336C-455D-825B-7E4892A6CBC5}'] + function GetFechaFin: Variant; + function GetFechaInicio: Variant; + function GetFechaVenFin: Variant; + function GetFechaVenInicio: Variant; + function GetListaIDProveedores: TIntegerArray; + function GetDesglosadoProveedor: Boolean; + function GetImporteMinimo: Currency; + property FechaInicio: Variant read GetFechaInicio; + property FechaFin: Variant read GetFechaFin; + property FechaVenInicio: Variant read GetFechaVenInicio; + property FechaVenFin: Variant read GetFechaVenFin; + property ListaIDProveedores: TIntegerArray read GetListaIDProveedores; + property DesglosadoProveedor: Boolean read GetDesglosadoProveedor; + property ImporteMinimo: Currency read getImporteMinimo; + end; + + +implementation + +end. diff --git a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeIVAClientesReport.dcu b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeIVAClientesReport.dcu new file mode 100644 index 0000000..12fb7e2 Binary files /dev/null and b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeIVAClientesReport.dcu differ diff --git a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeIVAClientesReport.pas b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeIVAClientesReport.pas new file mode 100644 index 0000000..78059e8 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeIVAClientesReport.pas @@ -0,0 +1,26 @@ +unit uIEditorInformeIVAClientesReport; + +interface + +uses + FactuGES_Intf, uIEditorInformeBase; + +type + IEditorInformeIVAClientesReport = interface(IEditorInformeBase) + ['{66F6F909-B1EC-4117-A115-12DFB62E6120}'] + function GetFechaFin: Variant; + function GetFechaInicio: Variant; + function GetListaIDClientes: TIntegerArray; + function GetDesglosadoCliente: Boolean; + function GetImporteMinimo: Currency; + property FechaInicio: Variant read GetFechaInicio; + property FechaFin: Variant read GetFechaFin; + property ListaIDClientes: TIntegerArray read GetListaIDClientes; + property DesglosadoCliente: Boolean read GetDesglosadoCliente; + property ImporteMinimo: Currency read getImporteMinimo; + end; + + +implementation + +end. diff --git a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeIVAProveedoresReport.dcu b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeIVAProveedoresReport.dcu new file mode 100644 index 0000000..1746643 Binary files /dev/null and b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeIVAProveedoresReport.dcu differ diff --git a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeIVAProveedoresReport.pas b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeIVAProveedoresReport.pas new file mode 100644 index 0000000..c7702af --- /dev/null +++ b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeIVAProveedoresReport.pas @@ -0,0 +1,26 @@ +unit uIEditorInformeIVAProveedoresReport; + +interface + +uses + FactuGES_Intf, uIEditorInformeBase; + +type + IEditorInformeIVAProveedoresReport = interface(IEditorInformeBase) + ['{1EC723DF-B7F7-49F9-83FA-DF628FEF4B26}'] + function GetFechaFin: Variant; + function GetFechaInicio: Variant; + function GetListaIDProveedores: TIntegerArray; + function GetDesglosadoProveedor: Boolean; + function GetImporteMinimo: Currency; + property FechaInicio: Variant read GetFechaInicio; + property FechaFin: Variant read GetFechaFin; + property ListaIDProveedores: TIntegerArray read GetListaIDProveedores; + property DesglosadoProveedor: Boolean read GetDesglosadoProveedor; + property ImporteMinimo: Currency read getImporteMinimo; + end; + + +implementation + +end. diff --git a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformePedidosReport.dcu b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformePedidosReport.dcu new file mode 100644 index 0000000..5980161 Binary files /dev/null and b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformePedidosReport.dcu differ diff --git a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformePedidosReport.pas b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformePedidosReport.pas new file mode 100644 index 0000000..9b4e158 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformePedidosReport.pas @@ -0,0 +1,26 @@ +unit uIEditorInformePedidosReport; + +interface + +uses + FactuGES_Intf, uIEditorInformeBase; + +type + IEditorInformePedidosReport = interface(IEditorInformeBase) + ['{70B07429-BCB2-416F-8C42-6D7BFFA152D5}'] + function GetFechaFin: Variant; + function GetFechaInicio: Variant; + function GetListaIDProveedores: TIntegerArray; + function GetDesglosadoProveedor: Boolean; + function GetImporteMinimo: Currency; + property FechaInicio: Variant read GetFechaInicio; + property FechaFin: Variant read GetFechaFin; + property ListaIDProveedores: TIntegerArray read GetListaIDProveedores; + property DesglosadoProveedor: Boolean read GetDesglosadoProveedor; + property ImporteMinimo: Currency read getImporteMinimo; + end; + + +implementation + +end. diff --git a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformePresupuestosReport.dcu b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformePresupuestosReport.dcu new file mode 100644 index 0000000..6bfb298 Binary files /dev/null and b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformePresupuestosReport.dcu differ diff --git a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformePresupuestosReport.pas b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformePresupuestosReport.pas new file mode 100644 index 0000000..a2e899d --- /dev/null +++ b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformePresupuestosReport.pas @@ -0,0 +1,26 @@ +unit uIEditorInformePresupuestosReport; + +interface + +uses + FactuGES_Intf, uIEditorInformeBase; + +type + IEditorInformePresupuestosReport = interface(IEditorInformeBase) + ['{99BBD05C-8AEF-4BA7-83C6-FC467F14488C}'] + function GetFechaFin: Variant; + function GetFechaInicio: Variant; + function GetListaIDClientes: TIntegerArray; + function GetDesglosadoCliente: Boolean; + function GetImporteMinimo: Currency; + property FechaInicio: Variant read GetFechaInicio; + property FechaFin: Variant read GetFechaFin; + property ListaIDClientes: TIntegerArray read GetListaIDClientes; + property DesglosadoCliente: Boolean read GetDesglosadoCliente; + property ImporteMinimo: Currency read getImporteMinimo; + end; + + +implementation + +end. diff --git a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeRecibosCliPendientesReport.dcu b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeRecibosCliPendientesReport.dcu new file mode 100644 index 0000000..67e0fab Binary files /dev/null and b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeRecibosCliPendientesReport.dcu differ diff --git a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeRecibosCliPendientesReport.pas b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeRecibosCliPendientesReport.pas new file mode 100644 index 0000000..bf3c2b1 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeRecibosCliPendientesReport.pas @@ -0,0 +1,30 @@ +unit uIEditorInformeRecibosCliPendientesReport; + +interface + +uses + FactuGES_Intf, uIEditorInformeBase; + +type + IEditorInformeRecibosCliPendientesReport = interface(IEditorInformeBase) + ['{BD1EA0DE-B610-4170-9BFC-4A7C0F7ABF0E}'] + function GetFechaFin: Variant; + function GetFechaInicio: Variant; + function GetFechaVenFin: Variant; + function GetFechaVenInicio: Variant; + function GetListaIDClientes: TIntegerArray; + function GetDesglosadoCliente: Boolean; + function GetImporteMinimo: Currency; + property FechaInicio: Variant read GetFechaInicio; + property FechaFin: Variant read GetFechaFin; + property FechaVenInicio: Variant read GetFechaVenInicio; + property FechaVenFin: Variant read GetFechaVenFin; + property ListaIDClientes: TIntegerArray read GetListaIDClientes; + property DesglosadoCliente: Boolean read GetDesglosadoCliente; + property ImporteMinimo: Currency read getImporteMinimo; + end; + + +implementation + +end. diff --git a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeRecibosClienteReport.dcu b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeRecibosClienteReport.dcu new file mode 100644 index 0000000..379e873 Binary files /dev/null and b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeRecibosClienteReport.dcu differ diff --git a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeRecibosClienteReport.pas b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeRecibosClienteReport.pas new file mode 100644 index 0000000..607781d --- /dev/null +++ b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeRecibosClienteReport.pas @@ -0,0 +1,30 @@ +unit uIEditorInformeRecibosClienteReport; + +interface + +uses + FactuGES_Intf, uIEditorInformeBase; + +type + IEditorInformeRecibosClienteReport = interface(IEditorInformeBase) + ['{F0DAD68E-198D-41BE-B04E-C76486208631}'] + function GetFechaFin: Variant; + function GetFechaInicio: Variant; + function GetFechaVenFin: Variant; + function GetFechaVenInicio: Variant; + function GetListaIDClientes: TIntegerArray; + function GetDesglosadoCliente: Boolean; + function GetImporteMinimo: Currency; + property FechaInicio: Variant read GetFechaInicio; + property FechaFin: Variant read GetFechaFin; + property FechaVenInicio: Variant read GetFechaVenInicio; + property FechaVenFin: Variant read GetFechaVenFin; + property ListaIDClientes: TIntegerArray read GetListaIDClientes; + property DesglosadoCliente: Boolean read GetDesglosadoCliente; + property ImporteMinimo: Currency read getImporteMinimo; + end; + + +implementation + +end. diff --git a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeRecibosProvPendientesReport.dcu b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeRecibosProvPendientesReport.dcu new file mode 100644 index 0000000..d4bb848 Binary files /dev/null and b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeRecibosProvPendientesReport.dcu differ diff --git a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeRecibosProvPendientesReport.pas b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeRecibosProvPendientesReport.pas new file mode 100644 index 0000000..fd3507d --- /dev/null +++ b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeRecibosProvPendientesReport.pas @@ -0,0 +1,30 @@ +unit uIEditorInformeRecibosProvPendientesReport; + +interface + +uses + FactuGES_Intf, uIEditorInformeBase; + +type + IEditorInformeRecibosProvPendientesReport = interface(IEditorInformeBase) + ['{DC6AA05C-24F5-4F2A-BCB7-625629BF4297}'] + function GetFechaFin: Variant; + function GetFechaInicio: Variant; + function GetFechaVenFin: Variant; + function GetFechaVenInicio: Variant; + function GetListaIDProveedores: TIntegerArray; + function GetDesglosadoProveedor: Boolean; + function GetImporteMinimo: Currency; + property FechaInicio: Variant read GetFechaInicio; + property FechaFin: Variant read GetFechaFin; + property FechaVenInicio: Variant read GetFechaVenInicio; + property FechaVenFin: Variant read GetFechaVenFin; + property ListaIDProveedores: TIntegerArray read GetListaIDProveedores; + property DesglosadoProveedor: Boolean read GetDesglosadoProveedor; + property ImporteMinimo: Currency read getImporteMinimo; + end; + + +implementation + +end. diff --git a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeRecibosProveedorReport.dcu b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeRecibosProveedorReport.dcu new file mode 100644 index 0000000..d22eeb1 Binary files /dev/null and b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeRecibosProveedorReport.dcu differ diff --git a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeRecibosProveedorReport.pas b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeRecibosProveedorReport.pas new file mode 100644 index 0000000..23d6d3e --- /dev/null +++ b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeRecibosProveedorReport.pas @@ -0,0 +1,30 @@ +unit uIEditorInformeRecibosProveedorReport; + +interface + +uses + FactuGES_Intf, uIEditorInformeBase; + +type + IEditorInformeRecibosProveedorReport = interface(IEditorInformeBase) + ['{63D1B0D1-9BDD-48B6-BD3B-C05AC6B49C9C}'] + function GetFechaFin: Variant; + function GetFechaInicio: Variant; + function GetFechaVenFin: Variant; + function GetFechaVenInicio: Variant; + function GetListaIDProveedores: TIntegerArray; + function GetDesglosadoProveedor: Boolean; + function GetImporteMinimo: Currency; + property FechaInicio: Variant read GetFechaInicio; + property FechaFin: Variant read GetFechaFin; + property FechaVenInicio: Variant read GetFechaVenInicio; + property FechaVenFin: Variant read GetFechaVenFin; + property ListaIDProveedores: TIntegerArray read GetListaIDProveedores; + property DesglosadoProveedor: Boolean read GetDesglosadoProveedor; + property ImporteMinimo: Currency read getImporteMinimo; + end; + + +implementation + +end. diff --git a/Source/Modulos/Gestor de informes/Controller/uGestorInformesController.dcu b/Source/Modulos/Gestor de informes/Controller/uGestorInformesController.dcu new file mode 100644 index 0000000..9301172 Binary files /dev/null and b/Source/Modulos/Gestor de informes/Controller/uGestorInformesController.dcu differ diff --git a/Source/Modulos/Gestor de informes/Controller/uGestorInformesController.pas b/Source/Modulos/Gestor de informes/Controller/uGestorInformesController.pas new file mode 100644 index 0000000..39161e6 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Controller/uGestorInformesController.pas @@ -0,0 +1,730 @@ +unit uGestorInformesController; + +interface + + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uROTypes, uIDataModuleGestorInformes, + uIEditorInformeBase; + +type + IGestorInformesController = interface(IControllerBase) + ['{5A556B66-AF8F-46F7-B12E-B8336CE07F6D}'] + function GetDataModule: IDataModuleGestorInformes; + property DataModule: IDataModuleGestorInformes read GetDataModule; +// procedure Preview(AFactura : IBizFacturaCliente; AllItems: Boolean = false); +// procedure Print(AFactura : IBizFacturaCliente; AllItems: Boolean = false); + + //MODULO PRESUPUESTOS DE CLIENTE + procedure VerInformeListadoPresupuestos; + + //MODULO FACTURAS DE CLIENTE + procedure VerInformeIVAClientes; + procedure VerInformeListadoFacturasCli; + procedure VerInformeListadoFacturasCliPendientes; + + //MODULO RECIBOS DE CLIENTE + procedure VerInformeListadoRecibosCliPendientes; + procedure VerInformeListadoRecibosCliente; + + //MODULO PEDIDOS DE PROVEEDOR + procedure VerInformeListadoPedidos; + + //MODULO FACTURAS DE PROVEEDOR + procedure VerInformeIVAProveedores; + procedure VerInformeListadoFacturasProv; + procedure VerInformeListadoFacturasProvPendientes; + + //MODULO RECIBOS DE PROVEEDOR + procedure VerInformeListadoRecibosProvPendientes; + procedure VerInformeListadoRecibosProveedor; + end; + + TGestorInformesController = class(TControllerBase, IGestorInformesController) + private + FDataModule : IDataModuleGestorInformes; + + function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; + function GetDataModule: IDataModuleGestorInformes; + +// procedure FiltrarEmpresa(AFactura: IBizFacturaCliente); + + public + constructor Create; override; + destructor Destroy; override; +{ + function Buscar(const ID: Integer): IBizFacturaCliente; + function BuscarTodos: IBizFacturaCliente; + function BuscarTodasPendientesComision(IdAgente: Integer; IdComision: Integer; IdFacturasAsociadas: String): IBizFacturaCliente; + procedure Ver(AFactura : IBizFacturaCliente); + procedure VerTodos(AFacturas: IBizFacturaCliente); + + procedure Preview(AFactura : IBizFacturaCliente; AllItems: Boolean = false); + procedure Print(AFactura : IBizFacturaCliente; AllItems: Boolean = false); +} + property DataModule: IDataModuleGestorInformes read GetDataModule; + + //MODULO PRESUPUESTOS DE CLIENTE + procedure VerInformeListadoPresupuestos; + + //MODULO FACTURAS DE CLIENTE + procedure VerInformeIVAClientes; + procedure VerInformeListadoFacturasCli; + procedure VerInformeListadoFacturasCliPendientes; + + //MODULO RECIBOS DE CLIENTE + procedure VerInformeListadoRecibosCliPendientes; + procedure VerInformeListadoRecibosCliente; + + //MODULO PEDIDOS DE PROVEEDOR + procedure VerInformeListadoPedidos; + + //MODULO FACTURAS DE PROVEEDOR + procedure VerInformeIVAProveedores; + procedure VerInformeListadoFacturasProv; + procedure VerInformeListadoFacturasProvPendientes; + + //MODULO RECIBOS DE PROVEEDOR + procedure VerInformeListadoRecibosProvPendientes; + procedure VerInformeListadoRecibosProveedor; + + end; + +implementation + +uses + Windows, Controls, cxControls, DB, uEditorRegistryUtils, uFactuGES_App, + uDAInterfaces, uDataTableUtils, uDateUtils, uNumUtils, + DateUtils, Forms, uIntegerListUtils, uDataModuleGestorInformes, + uSistemaFunc, uDialogElegirEMail, uEMailUtils, Dialogs, + uIEditorInformePresupuestosReport, + uIEditorInformeIVAClientesReport, uIEditorInformeFacturasClienteReport, + uIEditorInformeFacturasClientePendientesReport, uIEditorInformeRecibosClienteReport, + uIEditorInformeRecibosCliPendientesReport, + uIEditorInformeIVAProveedoresReport, uIEditorInformeFacturasProveedorReport, + uIEditorInformeFacturasProveedorPendientesReport, uIEditorInformeRecibosProveedorReport, + uIEditorInformeRecibosProvPendientesReport, + uIEditorInformePedidosReport; + + +{procedure CopiarArticulosPedido(AOrigen: IBizDetallesPedidoCliente; + ADestino : IBizDetallesFacturaCliente); +var + i : integer; + ADetallesController : IDetallesFacturaClienteController; +begin + if not Assigned(AOrigen) then + raise Exception.Create ('Origen no asignado (CopiarArticulosPedido)'); + + if not Assigned(ADestino) then + raise Exception.Create ('Destino no asignado (CopiarArticulosPedido)'); + + if not AOrigen.DataTable.Active then + AOrigen.DataTable.Active := True; + + if not ADestino.DataTable.Active then + ADestino.DataTable.Active := True; + + ADetallesController := TDetallesFacturaClienteController.Create; + try + //OJO IMPORTANTE + //Siempre que vayamos a trabajar con los detalles debemos hacer un beginupdate de los mismos y un endupdate para + //obligarle siempre a recalcular los detalles una sola vez + ADetallesController.BeginUpdate(ADestino); + + AOrigen.DataTable.First; + for i := 0 to AOrigen.DataTable.RecordCount - 1 do + begin + ADetallesController.Add(ADestino, TIPO_DETALLE_CONCEPTO); + ADestino.Edit; + ADestino.REFERENCIA := AOrigen.REFERENCIA; + if AOrigen.ID_ARTICULO > 0 then + ADestino.ID_ARTICULO := AOrigen.ID_ARTICULO; + ADestino.CONCEPTO := AOrigen.CONCEPTO; + ADestino.CANTIDAD := AOrigen.CANTIDAD; + ADestino.IMPORTE_UNIDAD := AOrigen.IMPORTE_UNIDAD; + ADestino.IMPORTE_TOTAL := AOrigen.IMPORTE_TOTAL; + ADestino.DESCUENTO := AOrigen.DESCUENTO; + ADestino.IMPORTE_PORTE := AOrigen.IMPORTE_PORTE; + ADestino.VISIBLE := AOrigen.VISIBLE; + ADestino.REFERENCIA_PROVEEDOR := AOrigen.REFERENCIA_PROVEEDOR; + ADestino.Post; + AOrigen.Next; + end; + finally + ADetallesController.EndUpdate(ADestino); + ADetallesController := NIL; + end; +end;} + + + +{ TGestorInformesController } + + +{ +function TGestorInformesController.Buscar(const ID: Integer): IBizFacturaCliente; +begin +// Result := (FDataModule as IDataModuleFacturasCliente).GetItem(ID); +// FiltrarEmpresa(Result); +end; + +function TGestorInformesController.BuscarTodasPendientesComision(IdAgente:Integer; IdComision: Integer; IdFacturasAsociadas: String): IBizFacturaCliente; +var + Condicion: TDAWhereExpression; +begin +{ ShowHourglassCursor; + try + Result := BuscarTodos; + with Result.DataTable.DynamicWhere do + begin + //Todas las facturas de un agente determinado + Condicion := NewBinaryExpression(NewField('', fld_FacturasClienteID_AGENTE), NewConstant(IdAgente, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + with Result.DataTable.DynamicWhere do + begin + //Todas aquellas que no esten asociadas a ninguna comisin o asociadas a la comisin, + //pero no asociadas en el editor de la comision, esto es porque se puede agregar y quitar + //facturas y todos los cambios estan el cache y por lo tanto al pedir las facturas a seleccionar + //debemos tener en cuenta dichso cambios en cache + Condicion := NewBinaryExpression(NewField('', fld_FacturasClienteID_COMISION_LIQUIDADA), NewNull(), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + +{REPASARRRRRRR + //Quitamos aquellas que ya estn asociadas + if length(IdFacturasAsociadas) > 0 then + with Result.DataTable.DynamicWhere do + begin + Condicion := NewBinaryExpression(NewField('', fld_FacturasClienteID), ' not in (' + IdFacturasAsociadas + ')');, dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + with Result.DataTable.Where do + begin + + CLOSEBraket; + AddOperator(opOR); + + OpenBraket; + //En caso de ser facturas ya asociadas lo limitamos a la comision actual + //ya que no debemos poder elegir facturas asociadas a otras comisiones + OpenBraket; + AddText(fld_FacturasClienteID_COMISION_LIQUIDADA + ' = ' + IntToStr(IdComision)); + CloseBraket; + //En el caso de que halla facturas asociadas + if length(IdFacturasAsociadas) > 0 then + begin + AddOperator(opAND); + OpenBraket; + AddText(fld_FacturasClienteID + ' not in (' + IdFacturasAsociadas + ')'); + CloseBraket; + end; + CloseBraket; + + CloseBraket; + end; + + finally + HideHourglassCursor; + end; +end; + +function TGestorInformesController.BuscarTodos: IBizFacturaCliente; +begin +// Result := FDataModule.GetItems; + // FiltrarEmpresa(Result); +end; +} + +constructor TGestorInformesController.Create; +begin + inherited; + FDataModule := TDataModuleGestorInformes.Create(Nil); +end; + + +function TGestorInformesController.CreateEditor(const AName: String; + const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + +destructor TGestorInformesController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + +function TGestorInformesController.GetDataModule: IDataModuleGestorInformes; +begin + Result := FDataModule; +end; + +procedure TGestorInformesController.VerInformeIVAClientes; +var + AStream: Binary; + AEditor : IEditorInformeIVAClientesReport; +begin + AEditor := NIL; + CreateEditor('EditorInformeIVAClientesReport', IEditorInformeIVAClientesReport, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; + AEditor.Title := 'Listado de IVA de facturas de cliente'; + AStream := FDataModule.GenerarInformeIVAClientes(AppFactuGES.EmpresaActiva.ID, + AEditor.FechaInicio, AEditor.FechaFin, AEditor.ListaIDClientes, + AEditor.DesglosadoCliente, AEditor.ImporteMinimo); + AEditor.LoadFromStream(AStream); + AEditor.Preview; + finally + AEditor.Release; + AEditor := Nil; + FreeAndNil(AStream); + end; +end; + +procedure TGestorInformesController.VerInformeIVAProveedores; +var + AStream: Binary; + AEditor : IEditorInformeIVAProveedoresReport; +begin + AEditor := NIL; + + CreateEditor('EditorInformeIVAProveedoresReport', IEditorInformeIVAProveedoresReport, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; + AEditor.Title := 'Listado de IVA de facturas de proveedor'; + AStream := FDataModule.GenerarInformeIVAProveedores(AppFactuGES.EmpresaActiva.ID, + AEditor.FechaInicio, AEditor.FechaFin, + AEditor.ListaIDProveedores, AEditor.DesglosadoProveedor, + AEditor.ImporteMinimo); + AEditor.LoadFromStream(AStream); + AEditor.Preview; + finally + AEditor.Release; + AEditor := Nil; + FreeAndNil(AStream); + end; +end; + +procedure TGestorInformesController.VerInformeListadoFacturasCli; +var + AStream: Binary; + AEditor : IEditorInformeFacturasClienteReport; +begin + AEditor := NIL; + + CreateEditor('EditorInformeFacturasClienteReport', IEditorInformeFacturasClienteReport, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; + AEditor.Title := 'Listado de facturas de cliente'; + AStream := FDataModule.GenerarInformeListadoFacturasCli(AppFactuGES.EmpresaActiva.ID, + AEditor.FechaInicio, AEditor.FechaFin, AEditor.FechaVenInicio, AEditor.FechaVenFin, AEditor.ListaIDClientes, + AEditor.DesglosadoCliente, AEditor.ImporteMinimo); + AEditor.LoadFromStream(AStream); + AEditor.Preview; + finally + AEditor.Release; + AEditor := Nil; + FreeAndNil(AStream); + end; +end; + +procedure TGestorInformesController.VerInformeListadoFacturasCliPendientes; +var + AStream: Binary; + AEditor : IEditorInformeFacturasClientePendientesReport; +begin + AEditor := NIL; + + CreateEditor('EditorInformeFacturasClientePendientesReport', IEditorInformeFacturasClientePendientesReport, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; + AEditor.Title := 'Listado de facturas de cliente pendientes'; + AStream := FDataModule.GenerarInformeListadoFacturasCliPendientes(AppFactuGES.EmpresaActiva.ID, + AEditor.FechaInicio, AEditor.FechaFin, AEditor.FechaVenInicio, AEditor.FechaVenFin, AEditor.ListaIDClientes, + AEditor.DesglosadoCliente, AEditor.ImporteMinimo); + AEditor.LoadFromStream(AStream); + AEditor.Preview; + finally + AEditor.Release; + AEditor := Nil; + FreeAndNil(AStream); + end; +end; + +procedure TGestorInformesController.VerInformeListadoFacturasProv; +var + AStream: Binary; + AEditor : IEditorInformeFacturasProveedorReport; +begin + AEditor := NIL; + CreateEditor('EditorInformeFacturasProveedorReport', IEditorInformeFacturasProveedorReport, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; + AEditor.Title := 'Listado de facturas de proveedor'; + AStream := FDataModule.GenerarInformeListadoFacturasProv(AppFactuGES.EmpresaActiva.ID, + AEditor.FechaInicio, AEditor.FechaFin, AEditor.FechaVenInicio, AEditor.FechaVenFin, AEditor.ListaIDProveedores, + AEditor.DesglosadoProveedor, AEditor.ImporteMinimo); + AEditor.LoadFromStream(AStream); + AEditor.Preview; + finally + AEditor.Release; + AEditor := Nil; + FreeAndNil(AStream); + end; +end; + +procedure TGestorInformesController.VerInformeListadoFacturasProvPendientes; +var + AStream: Binary; + AEditor : IEditorInformeFacturasProveedorPendientesReport; +begin + AEditor := NIL; + CreateEditor('EditorInformeFacturasProveedorPendientesReport', IEditorInformeFacturasProveedorPendientesReport, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; + AEditor.Title := 'Listado de facturas de proveedor pendientes'; + AStream := FDataModule.GenerarInformeListadoFacturasProvPendientes(AppFactuGES.EmpresaActiva.ID, + AEditor.FechaInicio, AEditor.FechaFin, AEditor.FechaVenInicio, AEditor.FechaVenFin, AEditor.ListaIDProveedores, + AEditor.DesglosadoProveedor, AEditor.ImporteMinimo); + AEditor.LoadFromStream(AStream); + AEditor.Preview; + finally + AEditor.Release; + AEditor := Nil; + FreeAndNil(AStream); + end; +end; + +procedure TGestorInformesController.VerInformeListadoPedidos; +var + AStream: Binary; + AEditor : IEditorInformePedidosReport; +begin + AEditor := NIL; + ShowHourglassCursor; + CreateEditor('EditorInformePedidosReport', IEditorInformePedidosReport, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; + AEditor.Title := 'Listado de pedidos de proveedor'; + AStream := FDataModule.GenerarInformeListadoPedidos(AppFactuGES.EmpresaActiva.ID, + AEditor.FechaInicio, AEditor.FechaFin, AEditor.ListaIDProveedores, + AEditor.DesglosadoProveedor, AEditor.ImporteMinimo); + AEditor.LoadFromStream(AStream); + AEditor.Preview; + finally + AEditor.Release; + AEditor := Nil; + FreeAndNil(AStream); + end; +end; + +procedure TGestorInformesController.VerInformeListadoPresupuestos; +var + AStream: Binary; + AEditor : IEditorInformePresupuestosReport; +begin + AEditor := NIL; + + CreateEditor('EditorInformePresupuestosReport', IEditorInformePresupuestosReport, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; + AEditor.Title := 'Listado de presupuestos de cliente'; + AStream := FDataModule.GenerarInformeListadoPresupuestos(AppFactuGES.EmpresaActiva.ID, + AEditor.FechaInicio, AEditor.FechaFin, AEditor.ListaIDClientes, + AEditor.DesglosadoCliente, AEditor.ImporteMinimo); + AEditor.LoadFromStream(AStream); + AEditor.Preview; + finally + AEditor.Release; + AEditor := Nil; + FreeAndNil(AStream); + end; +end; + +procedure TGestorInformesController.VerInformeListadoRecibosCliente; +var + AStream: Binary; + AEditor : IEditorInformeRecibosClienteReport; +begin + AEditor := NIL; + CreateEditor('EditorInformeRecibosClienteReport', IEditorInformeRecibosClienteReport, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; + AStream := FDataModule.GenerarInformeListadoRecibosCliente(AppFactuGES.EmpresaActiva.ID, + AEditor.FechaInicio, AEditor.FechaFin, AEditor.FechaVenInicio, AEditor.FechaVenFin, AEditor.ListaIDClientes, + AEditor.DesglosadoCliente, AEditor.ImporteMinimo); + AEditor.LoadFromStream(AStream); + AEditor.Preview; + finally + AEditor.Release; + AEditor := Nil; + FreeAndNil(AStream); + end; +end; + +procedure TGestorInformesController.VerInformeListadoRecibosCliPendientes; +var + AStream: Binary; + AEditor : IEditorInformeRecibosCliPendientesReport; +begin + AEditor := NIL; + + CreateEditor('EditorInformeRecibosCliPendientesReport', IEditorInformeRecibosCliPendientesReport, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; + AStream := FDataModule.GenerarInformeListadoRecibosCliPendientes(AppFactuGES.EmpresaActiva.ID, + AEditor.FechaInicio, AEditor.FechaFin, AEditor.FechaVenInicio, AEditor.FechaVenFin, AEditor.ListaIDClientes, + AEditor.DesglosadoCliente, AEditor.ImporteMinimo); + AEditor.LoadFromStream(AStream); + AEditor.Preview; + finally + AEditor.Release; + AEditor := Nil; + FreeAndNil(AStream); + end; +end; + + +procedure TGestorInformesController.VerInformeListadoRecibosProveedor; +var + AStream: Binary; + AEditor : IEditorInformeRecibosProveedorReport; +begin + AEditor := NIL; + + CreateEditor('EditorInformeRecibosProveedorReport', IEditorInformeRecibosProveedorReport, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; + AStream := FDataModule.GenerarInformeListadoRecibosProveedor(AppFactuGES.EmpresaActiva.ID, + AEditor.FechaInicio, AEditor.FechaFin, AEditor.FechaVenInicio, AEditor.FechaVenFin, AEditor.ListaIDProveedores, + AEditor.DesglosadoProveedor, AEditor.ImporteMinimo); + AEditor.LoadFromStream(AStream); + AEditor.Preview; + finally + AEditor.Release; + AEditor := Nil; + FreeAndNil(AStream); + end; +end; + +procedure TGestorInformesController.VerInformeListadoRecibosProvPendientes; +var + AStream: Binary; + AEditor : IEditorInformeRecibosProvPendientesReport; +begin + AEditor := NIL; + + CreateEditor('EditorInformeRecibosProvPendientesReport', IEditorInformeRecibosProvPendientesReport, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; + AStream := FDataModule.GenerarInformeListadoRecibosProvPendientes(AppFactuGES.EmpresaActiva.ID, + AEditor.FechaInicio, AEditor.FechaFin, AEditor.FechaVenInicio, AEditor.FechaVenFin, AEditor.ListaIDProveedores, + AEditor.DesglosadoProveedor, AEditor.ImporteMinimo); + AEditor.LoadFromStream(AStream); + AEditor.Preview; + finally + AEditor.Release; + AEditor := Nil; + FreeAndNil(AStream); + end; +end; + +{ +procedure TGestorInformesController.Ver(AFactura: IBizFacturaCliente); +var + AEditor : IEditorFacturaCliente; +begin + AEditor := NIL; +{ ShowHourglassCursor; + try + RecuperarCliente(AFactura); + CreateEditor('EditorFacturaCliente', IEditorFacturaCliente, AEditor); + + if Assigned(AEditor) then + with AEditor do + begin + try + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Factura := AFactura; + + //MODO CONSULTAR + if not EsModificable(AFactura) then + begin + SetDataTableReadOnly(AFactura.DataTable, True); + ReadOnly := True; + end; + + ShowModal; + + //MODO CONSULTAR (Se deja la tabla como estaba) + if ReadOnly then + SetDataTableReadOnly(AFactura.DataTable, False); + finally + AEditor.Release; + end; + end; + finally + AEditor := NIL; + HideHourglassCursor; + end; +end; + +procedure TGestorInformesController.VerTodos(AFacturas: IBizFacturaCliente); +var + AEditor : IEditorFacturasCliente; +begin + AEditor := NIL; +{ + CreateEditor('EditorFacturasCliente', IEditorFacturasCliente, AEditor); + if Assigned(AEditor) then + with AEditor do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Facturas := AFacturas; + MultiSelect := True; + ShowEmbedded; + end; +end; + + +procedure TGestorInformesController.FiltrarEmpresa(AFactura: IBizFacturaCliente); +var + Condicion: TDAWhereExpression; +begin +{ if AFactura.DataTable.Active then + AFactura.DataTable.Active := False; + + // Filtrar las facturas actuales por empresa + with AFactura.DataTable.DynamicWhere do + begin + // (ID_EMPRESA >= ID) + Condicion := NewBinaryExpression(NewField('', fld_FacturasClienteID_EMPRESA), NewConstant(AppFactuGES.EmpresaActiva.ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; +end; + +procedure TGestorInformesController.SetClienteController(const Value: IClientesController); +begin + FClienteController := Value; +end; + +procedure TGestorInformesController.SetDetallesController(const Value: IDetallesFacturaClienteController); +begin + FDetallesController := Value; +end; +} +{ +procedure TGestorInformesController.informe; +begin + + FDataModule.getInforme; +//showmessage('alla voy') +end; + +{ +procedure TGestorInformesController.Preview(AFactura: IBizFacturaCliente; AllItems: Boolean = false); +var +// AReportController : IFacturasClienteReportController; + ID_Facturas: TIntegerList; + +begin +{ + AReportController := TFacturasClienteReportController.Create; + ID_Facturas := TIntegerList.Create; + + try + //Si deseamos previsualizar todos los items del objeto albaran + if AllItems then + begin + with AFactura.DataTable do + begin + First; + while not EOF do + begin + ID_Facturas.Add(AFactura.ID); + Next; + end; + end; + end + //Solo previsualizamos el item seleccionado + else + ID_Facturas.Add(AFactura.ID); + + AReportController.Preview(ID_Facturas); + + finally + AReportController := NIL; + FreeANDNIL(ID_Facturas); + end; +end; + +procedure TGestorInformesController.Print(AFactura: IBizFacturaCliente; AllItems: Boolean = false); +var +// AReportController : IFacturasClienteReportController; + ID_Facturas: TIntegerList; + +begin +{ + AReportController := TFacturasClienteReportController.Create; + ID_Facturas := TIntegerList.Create; + + try + //Si deseamos previsualizar todos los items del objeto albaran + if AllItems then + begin + with AFactura.DataTable do + begin + First; + while not EOF do + begin + ID_Facturas.Add(AFactura.ID); + Next; + end; + end; + end + //Solo previsualizamos el item seleccionado + else + ID_Facturas.Add(AFactura.ID); + + AReportController.Print(ID_Facturas); + + finally + AReportController := NIL; + FreeANDNIL(ID_Facturas); + end; +end; +} + +end. diff --git a/Source/Modulos/Gestor de informes/Data/GestorInformes_data.dcu b/Source/Modulos/Gestor de informes/Data/GestorInformes_data.dcu new file mode 100644 index 0000000..2429f21 Binary files /dev/null and b/Source/Modulos/Gestor de informes/Data/GestorInformes_data.dcu differ diff --git a/Source/Modulos/Gestor de informes/Data/GestorInformes_data.dpk b/Source/Modulos/Gestor de informes/Data/GestorInformes_data.dpk new file mode 100644 index 0000000..000c9df --- /dev/null +++ b/Source/Modulos/Gestor de informes/Data/GestorInformes_data.dpk @@ -0,0 +1,34 @@ +package GestorInformes_data; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + Base, + GestorInformes_model; + +contains + uDataModuleGestorInformes in 'uDataModuleGestorInformes.pas'; + +end. diff --git a/Source/Modulos/Gestor de informes/Data/GestorInformes_data.dproj b/Source/Modulos/Gestor de informes/Data/GestorInformes_data.dproj new file mode 100644 index 0000000..b6b38a3 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Data/GestorInformes_data.dproj @@ -0,0 +1,528 @@ + + + + {45f3d725-bfc7-4084-afb2-6032ebaddc4a} + GestorInformes_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\GestorInformes_data.bpl + + + 7.0 + False + False + 0 + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0GestorInformes_data.dpk + + + + + MainSource + + + + + + + diff --git a/Source/Modulos/Gestor de informes/Data/GestorInformes_data.rc b/Source/Modulos/Gestor de informes/Data/GestorInformes_data.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Gestor de informes/Data/GestorInformes_data.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Gestor de informes/Data/GestorInformes_data.res b/Source/Modulos/Gestor de informes/Data/GestorInformes_data.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Gestor de informes/Data/GestorInformes_data.res differ diff --git a/Source/Modulos/Gestor de informes/Data/uDataModuleGestorInformes.dcu b/Source/Modulos/Gestor de informes/Data/uDataModuleGestorInformes.dcu new file mode 100644 index 0000000..17c0539 Binary files /dev/null and b/Source/Modulos/Gestor de informes/Data/uDataModuleGestorInformes.dcu differ diff --git a/Source/Modulos/Gestor de informes/Data/uDataModuleGestorInformes.dfm b/Source/Modulos/Gestor de informes/Data/uDataModuleGestorInformes.dfm new file mode 100644 index 0000000..03b96bd --- /dev/null +++ b/Source/Modulos/Gestor de informes/Data/uDataModuleGestorInformes.dfm @@ -0,0 +1,63 @@ +inherited DataModuleGestorInformes: TDataModuleGestorInformes + OnCreate = DAClientDataModuleCreate + Height = 207 + Width = 518 + object RORemoteService: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvGestorInformes' + Left = 40 + Top = 16 + end + object rda_GestorInformes: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetDataCall.RemoteService = RORemoteService + UpdateDataCall.RemoteService = RORemoteService + GetScriptsCall.RemoteService = RORemoteService + RemoteService = RORemoteService + DataStreamer = Bin2DataStreamer + Left = 43 + Top = 135 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 40 + Top = 72 + end + object tbl_DirectoryData: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'FileName' + DataType = datString + Size = 200 + DisplayWidth = 50 + InPrimaryKey = True + end + item + Name = 'FileSize' + DataType = datInteger + end> + Params = < + item + Name = 'Directory' + DataType = datString + Size = 200 + Value = '' + ParamType = daptInput + end> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_GestorInformes + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'DirectoryData' + IndexDefs = <> + Left = 184 + Top = 40 + end + object ds_DirectoryData: TDADataSource + DataSet = tbl_DirectoryData.Dataset + DataTable = tbl_DirectoryData + Left = 184 + Top = 104 + end +end diff --git a/Source/Modulos/Gestor de informes/Data/uDataModuleGestorInformes.pas b/Source/Modulos/Gestor de informes/Data/uDataModuleGestorInformes.pas new file mode 100644 index 0000000..1731b9a --- /dev/null +++ b/Source/Modulos/Gestor de informes/Data/uDataModuleGestorInformes.pas @@ -0,0 +1,240 @@ +unit uDataModuleGestorInformes; + +interface + +uses + SysUtils, Classes, DB, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uRORemoteService, uROClient, uROBinMessage, + + uIDataModuleGestorInformes, uDADesigntimeCall, uDataModuleBase, + uDAInterfaces, uDAMemDataTable, uDADataStreamer, uDABin2DataStreamer, + uDARemoteDataAdapter, uIntegerListUtils, FactuGES_Intf; + +type + TDataModuleGestorInformes = class(TDataModuleBase, IDataModuleGestorInformes) + RORemoteService: TRORemoteService; + rda_GestorInformes: TDARemoteDataAdapter; + Bin2DataStreamer: TDABin2DataStreamer; + tbl_DirectoryData: TDAMemDataTable; + ds_DirectoryData: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + public +// function GetItems : IBizFacturaCliente; + + //MODULO PRESUPUESTOS DE CLIENTE + function GenerarInformeListadoPresupuestos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + + //MODULO FACTURAS DE CLIENTE + function GenerarInformeIVAClientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoFacturasCli(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoFacturasCliPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + + //MODULO RECIBOS DE CLIENTE + function GenerarInformeListadoRecibosCliPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoRecibosCliente(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + + //MODULO PEDIDOS DE PROVEEDOR + function GenerarInformeListadoPedidos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + + //MODULO FACTURAS DE PROVEEDOR + function GenerarInformeIVAProveedores(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoFacturasProv(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoFacturasProvPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + + //MODULO RECIBOS DE CLIENTE + function GenerarInformeListadoRecibosProvPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoRecibosProveedor(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + + procedure getInforme; + end; + +implementation + +{$R *.DFM} + +uses + uDataModuleConexion, uDataTableUtils, cxControls, + Dialogs; + +{ TdmPresupuestos } + +procedure TDataModuleGestorInformes.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleGestorInformes.GenerarInformeIVAClientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; +begin + try + Result := (RORemoteService as IsrvGestorInformes).GenerarInformeIVAClientes(IdEmpresa, FechaInicio, FechaFin, ListaIdClientes, Desglosado, ImporteMinimo); + finally + end; +end; + +function TDataModuleGestorInformes.GenerarInformeIVAProveedores( + const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; + const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; + const ImporteMinimo: Currency): Binary; +begin + try + Result := (RORemoteService as IsrvGestorInformes).GenerarInformeIVAProveedores(IdEmpresa, FechaInicio, FechaFin, ListaIdProveedores, Desglosado, ImporteMinimo); + finally + end; +end; + +function TDataModuleGestorInformes.GenerarInformeListadoFacturasCli( + const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; + const FechaVenInicio, FechaVenFin: Variant; + const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; + const ImporteMinimo: Currency): Binary; +begin + try + Result := (RORemoteService as IsrvGestorInformes).GenerarInformeListadoFacturasCli(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIdClientes, Desglosado, ImporteMinimo); + finally + end; +end; + +function TDataModuleGestorInformes.GenerarInformeListadoFacturasCliPendientes( + const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; + const FechaVenInicio, FechaVenFin: Variant; + const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; + const ImporteMinimo: Currency): Binary; +begin + try + Result := (RORemoteService as IsrvGestorInformes).GenerarInformeListadoFacturasCliPendientes(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIdClientes, Desglosado, ImporteMinimo); + finally + end; +end; + +function TDataModuleGestorInformes.GenerarInformeListadoFacturasProv( + const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; + const FechaVenInicio: Variant; const FechaVenFin: Variant; + const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; + const ImporteMinimo: Currency): Binary; +begin + try + Result := (RORemoteService as IsrvGestorInformes).GenerarInformeListadoFacturasProv(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIdProveedores, Desglosado, ImporteMinimo); + finally + end; +end; + +function TDataModuleGestorInformes.GenerarInformeListadoFacturasProvPendientes( + const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; + const FechaVenInicio: Variant; const FechaVenFin: Variant; + const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; + const ImporteMinimo: Currency): Binary; +begin + try + Result := (RORemoteService as IsrvGestorInformes).GenerarInformeListadoFacturasProvPendientes(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIdProveedores, Desglosado, ImporteMinimo); + finally + end; +end; + +function TDataModuleGestorInformes.GenerarInformeListadoPedidos( + const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; + const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; + const ImporteMinimo: Currency): Binary; +begin + try + Result := (RORemoteService as IsrvGestorInformes).GenerarInformeListadoPedidos(IdEmpresa, FechaInicio, FechaFin, ListaIdProveedores, Desglosado, ImporteMinimo); + finally + end; +end; + +function TDataModuleGestorInformes.GenerarInformeListadoPresupuestos( + const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; + const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; + const ImporteMinimo: Currency): Binary; +begin + try + Result := (RORemoteService as IsrvGestorInformes).GenerarInformeListadoPresupuestos(IdEmpresa, FechaInicio, FechaFin, ListaIdClientes, Desglosado, ImporteMinimo); + finally + end; +end; + +function TDataModuleGestorInformes.GenerarInformeListadoRecibosCliente( + const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; + const FechaVenInicio: Variant; const FechaVenFin: Variant; + const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; + const ImporteMinimo: Currency): Binary; +begin + try + Result := (RORemoteService as IsrvGestorInformes).GenerarInformeListadoRecibosCliente(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIdClientes, Desglosado, ImporteMinimo); + finally + end; +end; + +function TDataModuleGestorInformes.GenerarInformeListadoRecibosCliPendientes( + const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; + const FechaVenInicio: Variant; const FechaVenFin: Variant; + const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; + const ImporteMinimo: Currency): Binary; +begin + try + Result := (RORemoteService as IsrvGestorInformes).GenerarInformeListadoRecibosCliPendientes(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIdClientes, Desglosado, ImporteMinimo); + finally + end; +end; + +function TDataModuleGestorInformes.GenerarInformeListadoRecibosProveedor( + const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; + const FechaVenInicio: Variant; const FechaVenFin: Variant; + const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; + const ImporteMinimo: Currency): Binary; +begin + try + Result := (RORemoteService as IsrvGestorInformes).GenerarInformeListadoRecibosProveedor(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIdProveedores, Desglosado, ImporteMinimo); + finally + end; +end; + +function TDataModuleGestorInformes.GenerarInformeListadoRecibosProvPendientes( + const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; + const FechaVenInicio: Variant; const FechaVenFin: Variant; + const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; + const ImporteMinimo: Currency): Binary; +begin + try + Result := (RORemoteService as IsrvGestorInformes).GenerarInformeListadoRecibosProvPendientes(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIdProveedores, Desglosado, ImporteMinimo); + finally + end; +end; + +procedure TDataModuleGestorInformes.getInforme; +begin + tbl_DirectoryData.close; + tbl_DirectoryData.ParamByName('Directory').AsString := 'ddddd'; + tbl_DirectoryData.Open; + showmessage(tbl_DirectoryData.FieldByName('filename').asstring) +end; +{ +function TDataModuleGestorInformes.GetItems: IBizFacturaCliente; +var + AFactura : TDAMemDataTable; +begin + ShowHourglassCursor; + try + + AFactura := CloneDataTable(tbl_FacturasCliente); + + // EL CAMPO REFERENCIA TIENE QUE SER AUTOREFRESH!!!!! + AFactura.FieldByName(fld_FacturasClienteREFERENCIA).ServerAutoRefresh := TRUE; + + AFactura.BusinessRulesID := BIZ_CLIENT_FACTURA_CLIENTE; + + with TBizFacturaCliente(AFactura.BusinessEventsObj) do + begin + Detalles := _GetDetalles; + end; + + Result := (AFactura as IBizFacturaCliente); + + finally + HideHourglassCursor; + end; +end; +} + +end. diff --git a/Source/Modulos/Gestor de informes/GestorInformes_Group.groupproj b/Source/Modulos/Gestor de informes/GestorInformes_Group.groupproj new file mode 100644 index 0000000..3c2c84b --- /dev/null +++ b/Source/Modulos/Gestor de informes/GestorInformes_Group.groupproj @@ -0,0 +1,134 @@ + + + {d51b0489-bd4f-4ed4-a8cc-05ea2af327dd} + + + + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Gestor de informes/Model/Data/uIDataModuleGestorInformes.dcu b/Source/Modulos/Gestor de informes/Model/Data/uIDataModuleGestorInformes.dcu new file mode 100644 index 0000000..2d9072e Binary files /dev/null and b/Source/Modulos/Gestor de informes/Model/Data/uIDataModuleGestorInformes.dcu differ diff --git a/Source/Modulos/Gestor de informes/Model/Data/uIDataModuleGestorInformes.pas b/Source/Modulos/Gestor de informes/Model/Data/uIDataModuleGestorInformes.pas new file mode 100644 index 0000000..1e85096 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Model/Data/uIDataModuleGestorInformes.pas @@ -0,0 +1,42 @@ +unit uIDataModuleGestorInformes; + +interface + +uses + uROTypes, FactuGES_Intf; + +type + IDataModuleGestorInformes = interface + ['{65FB8E9E-5218-43DC-80AD-BDB4383B7064}'] +// function GetItems: IBizFacturaCliente; + procedure getInforme; + + //MODULO PRESUPUESTOS DE CLIENTE + function GenerarInformeListadoPresupuestos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + + //MODULO FACTURAS DE CLIENTE + function GenerarInformeIVAClientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoFacturasCli(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoFacturasCliPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + + //MODULO RECIBOS DE CLIENTE + function GenerarInformeListadoRecibosCliPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoRecibosCliente(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + + //MODULO PEDIDOS DE PROVEEDOR + function GenerarInformeListadoPedidos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + + //MODULO FACTURAS DE PROVEEDOR + function GenerarInformeIVAProveedores(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoFacturasProv(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoFacturasProvPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + + //MODULO RECIBOS DE CLIENTE + function GenerarInformeListadoRecibosProvPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoRecibosProveedor(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + + end; + +implementation + +end. diff --git a/Source/Modulos/Gestor de informes/Model/GestorInformes_model.dcu b/Source/Modulos/Gestor de informes/Model/GestorInformes_model.dcu new file mode 100644 index 0000000..98322a9 Binary files /dev/null and b/Source/Modulos/Gestor de informes/Model/GestorInformes_model.dcu differ diff --git a/Source/Modulos/Gestor de informes/Model/GestorInformes_model.dpk b/Source/Modulos/Gestor de informes/Model/GestorInformes_model.dpk new file mode 100644 index 0000000..85aa711 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Model/GestorInformes_model.dpk @@ -0,0 +1,33 @@ +package GestorInformes_model; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + Base; + +contains + uIDataModuleGestorInformes in 'Data\uIDataModuleGestorInformes.pas'; + +end. diff --git a/Source/Modulos/Gestor de informes/Model/GestorInformes_model.dproj b/Source/Modulos/Gestor de informes/Model/GestorInformes_model.dproj new file mode 100644 index 0000000..89a7a2b --- /dev/null +++ b/Source/Modulos/Gestor de informes/Model/GestorInformes_model.dproj @@ -0,0 +1,527 @@ + + + + {e8b638a4-6653-49db-9d4d-557579466934} + GestorInformes_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\GestorInformes_model.bpl + + + 7.0 + False + False + 0 + RELEASE + + + 7.0 + ..\..\..\..\Output\Debug\Cliente + .\ + .\ + .\ + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0GestorInformes_model.dpk + + + + + MainSource + + + + + + diff --git a/Source/Modulos/Gestor de informes/Model/GestorInformes_model.rc b/Source/Modulos/Gestor de informes/Model/GestorInformes_model.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Gestor de informes/Model/GestorInformes_model.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Gestor de informes/Model/GestorInformes_model.res b/Source/Modulos/Gestor de informes/Model/GestorInformes_model.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Gestor de informes/Model/GestorInformes_model.res differ diff --git a/Source/Modulos/Gestor de informes/Plugin/GestorInformes_plugin.dcu b/Source/Modulos/Gestor de informes/Plugin/GestorInformes_plugin.dcu new file mode 100644 index 0000000..257493d Binary files /dev/null and b/Source/Modulos/Gestor de informes/Plugin/GestorInformes_plugin.dcu differ diff --git a/Source/Modulos/Gestor de informes/Plugin/GestorInformes_plugin.dpk b/Source/Modulos/Gestor de informes/Plugin/GestorInformes_plugin.dpk new file mode 100644 index 0000000..67ae964 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Plugin/GestorInformes_plugin.dpk @@ -0,0 +1,37 @@ +package GestorInformes_plugin; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + Base, + GUIBase, + ApplicationBase, + GestorInformes_controller, + GestorInformes_view; + +contains + uPluginGestorInformes in 'uPluginGestorInformes.pas'; + +end. diff --git a/Source/Modulos/Gestor de informes/Plugin/GestorInformes_plugin.dproj b/Source/Modulos/Gestor de informes/Plugin/GestorInformes_plugin.dproj new file mode 100644 index 0000000..354acee --- /dev/null +++ b/Source/Modulos/Gestor de informes/Plugin/GestorInformes_plugin.dproj @@ -0,0 +1,531 @@ + + + + {ba7a4052-3c4c-401c-bae5-3701abd24fc1} + GestorInformes_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\GestorInformes_plugin.bpl + + + 7.0 + False + False + 0 + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0GestorInformes_plugin.dpk + + + + + MainSource + + + + + + + + + + diff --git a/Source/Modulos/Gestor de informes/Plugin/GestorInformes_plugin.rc b/Source/Modulos/Gestor de informes/Plugin/GestorInformes_plugin.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Gestor de informes/Plugin/GestorInformes_plugin.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Gestor de informes/Plugin/GestorInformes_plugin.res b/Source/Modulos/Gestor de informes/Plugin/GestorInformes_plugin.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Gestor de informes/Plugin/GestorInformes_plugin.res differ diff --git a/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.dcu b/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.dcu new file mode 100644 index 0000000..f4a2fc7 Binary files /dev/null and b/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.dcu differ diff --git a/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.dfm b/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.dfm new file mode 100644 index 0000000..9b80ff8 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.dfm @@ -0,0 +1,229 @@ +object PluginGestorInformes: TPluginGestorInformes + OldCreateOrder = True + Description = 'Informes' + ModuleMenu = MainMenu + ModuleName = 'Gestor de informes' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software' + Version = '1.0.0' + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001BE4944415478DA + 63FCFFFF3F032D0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80 + F83F980601EBC07C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3 + C275FB19E62DDD84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD978 + 90B005D87C802E06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9 + E0FF3F605803F11FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F1 + 8E70860DBB4E106701CCDBA480075B431936EF3D459C05F8520E3600D2B3A850 + 8F61EB81D3C45B802BA86096C3E4616AE7E7EB32EC387486763E989DA3CDB0E7 + E839DAF96046A626C3FE131768E783A969EA0C874E5FC26F4184A729387792E3 + 838929AA0CC7CE5EC16F41A89B09387792E3839E042586D317AFE3B720C8D988 + C1ADFA08591674C62A309CBB7213BF057E8E060C5EB5C7F01A06B27CC1913F70 + 7E820D0BD882B62839868BD76FE3B7C0DB4E0F5EAEC0CA1850D9032BF393275F + C1881F18BF394296E1CACD3BF82DF0B0D6C16938884E9B760D6BF0116D818BA5 + 164EC3411667CDB88133E888B2C0DE541D6CD8BFBF88621966E1BFFFFFB1061F + 322068818D912AB844A404E0B5A077CA428A0C8701980500619929EF09CFCE42 + 0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = SmallImages + Left = 40 + Top = 72 + object actInformeFacturasCliente: TAction + Category = 'Facturas de cliente' + Caption = 'Listado de facturas de cliente' + ImageIndex = 0 + OnExecute = actInformeFacturasClienteExecute + end + object actInformeFacturasClientePendientes: TAction + Category = 'Facturas de cliente' + Caption = 'Listado de facturas de cliente pendientes' + ImageIndex = 0 + OnExecute = actInformeFacturasClientePendientesExecute + end + object actInformeFacturasClienteIVA: TAction + Category = 'Facturas de cliente' + Caption = 'Listado de IVA de facturas de cliente' + ImageIndex = 0 + OnExecute = actInformeFacturasClienteIVAExecute + end + object actInformeRecibosCliente: TAction + Category = 'Recibos de cliente' + Caption = 'Listado de recibos de cliente' + ImageIndex = 0 + OnExecute = actInformeRecibosClienteExecute + end + object actInformeRecibosCliPendientes: TAction + Category = 'Recibos de cliente' + Caption = 'Listado de recibos de cliente pendientes' + ImageIndex = 0 + OnExecute = actInformeRecibosCliPendientesExecute + end + object actInformeFacturasProveedor: TAction + Category = 'Facturas de proveedor' + Caption = 'Listado de facturas de proveedor' + ImageIndex = 0 + OnExecute = actInformeFacturasProveedorExecute + end + object actInformeFacturasProveedorPendientes: TAction + Category = 'Facturas de proveedor' + Caption = 'Listado de facturas de proveedor pendientes' + ImageIndex = 0 + OnExecute = actInformeFacturasProveedorPendientesExecute + end + object actInformeFacturasProveedorIVA: TAction + Category = 'Facturas de proveedor' + Caption = 'Listado de IVA de facturas de proveedor' + ImageIndex = 0 + OnExecute = actInformeFacturasProveedorIVAExecute + end + object actInformeRecibosProveedor: TAction + Category = 'Recibos de proveedor' + Caption = 'Listado de recibos de proveedor' + ImageIndex = 0 + OnExecute = actInformeRecibosProveedorExecute + end + object actInformeRecibosProvPendientes: TAction + Category = 'Recibos de proveedor' + Caption = 'Listado de recibos de proveedor pendientes' + ImageIndex = 0 + OnExecute = actInformeRecibosProvPendientesExecute + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object Informes1: TMenuItem + Caption = 'Informes' + object Listadodefacturasdecliente1: TMenuItem + Tag = 10 + Action = actInformeFacturasCliente + end + object Listadodefacturasdeclientependientes1: TMenuItem + Tag = 20 + Action = actInformeFacturasClientePendientes + end + object ListadodeIVAdefacturasdecliente1: TMenuItem + Tag = 30 + Action = actInformeFacturasClienteIVA + end + object N2: TMenuItem + Tag = 40 + Caption = '-' + end + object N1: TMenuItem + Tag = 50 + Action = actInformeRecibosCliente + end + object Listadoderecibosdeclientependientes1: TMenuItem + Tag = 60 + Action = actInformeRecibosCliPendientes + end + object N3: TMenuItem + Tag = 70 + Caption = '-' + end + object Listadodefacturasdeproveedor1: TMenuItem + Tag = 80 + Action = actInformeFacturasProveedor + end + object Listadodefacturasdeproveedorpendientes1: TMenuItem + Tag = 90 + Action = actInformeFacturasProveedorPendientes + end + object ListadodeIVAdefacturasdeproveedor1: TMenuItem + Tag = 100 + Action = actInformeFacturasProveedorIVA + end + object N4: TMenuItem + Tag = 110 + Caption = '-' + end + object Listadoderecibosdeproveedor1: TMenuItem + Tag = 120 + Action = actInformeRecibosProveedor + end + object Listadoderecibosdeproveedorpendientes1: TMenuItem + Tag = 130 + Action = actInformeRecibosProvPendientes + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001684944415478DA + 63FCFFFF3FC394C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F + 19ACFDF319CEED98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC + 5BBA09D3007CE0D7EFBF609B4178C98683D80D40770136B0AED69461E59623B8 + 0D80391B04FE01E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D + 760CCEE587E03607359F66585A6AC0B069CF49FC06A0DB0CC2207E58FB598685 + 85BA0CDB0E9CC16DC0C15E0706FBE203605B37375A809D0D02209BA3BB2F30CC + C9D566D87DE41C6E0340CE46B7F9E7AF3F6076D2C42B0C53D2D4180E9FBE8C69 + 4046941B8363E94194105F5E6EC810D9791ECC9E99A5C9903EED3A437F920AC3 + 89F357310D480E7386DB08A2435ACF302C2ED687B8049A067266DD62E88A5364 + 387BF906A60171410E280107B3191DB446C9315CBA7E1BD380283F3B147F23DB + FC1BC9E07FFFFE335CB97907D380502F6B86D5DB8E129D13310C0009900A4006 + 00004B6D80F047EC10D30000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000002834944415478DA + BDD6ED4F52511800F087ECDFA8B5D6CB2A8550FC525862BC28B56966F9B2D658 + 5B7373D69ABDACF5A12FADD6875EB6968DD922299C1481888680C0E555485494 + 20B2FADCFAD6565FE53EDD7B0B86099C6BD7F970D9E53CDC7B7EE73907388810 + 11363344C5A023F0916BB0B9FC73559B7970C7DFD7DCFBDC8150B5A5AA24705A + 23159505C7A90CB62A0EFCF7E869A62F9A46C8E568C8D134C8DB2EC382EB6979 + D0EE4F635B5335340C506B3A0B3F549485FEBDDE7DF730182C7E308C38F881EB + 0D1654CBF680FFD70A04F42EF819D181D14691C131DF073C79ACA66C85A5F2C1 + 078D70F44A0022D4E742EE47E81C98EC413268F3A6B05D29E65D19BB4EB91C72 + E7E2B56373E6C93019B47A97F0945252B212BEC156FADDDB031667940738CD80 + AA3F60F114AD37BE79BAC1EA9A21836F3D8BD8A13EC881953E959582BD77F4BA + 14ECD3713268712791F9A20A064D572530E19B25836FDC0B7846535B002BAD65 + 7E40C5D7E4EF310E88C14925C8E06BD73C7636D709AEF0F9A56AF084E7798053 + 0CD8221C1CEADF0FBE68920C9AA7E6B0AB4526784AF57DFB808A2D92C1516702 + BBB5F5822B1CECDD0BA1D9140FF05D023BB532EEA74A08F8F8C26E88CEA5C9E0 + C8E47B660DEB41712D28684A1F9DDF05F164861FD8A1AE03E58DB0A00AEFEB76 + 4262294B064D13716C57D582E666541078EFEC0E486696C9E02B470C5B9BA470 + FC568C57E7ECA086232B85B64EBE9503EFF46C8754F60B3FF044A3A4F49643AF + FEFBD03B985DB3CEF9F6EDAE6D905EFE4A065F8ECFA0F6888488B103EAD37F2A + 39EDEB028DF62836378889187BBE38547EFBE20D0E8F4550231713B172B9E2E0 + 05BEB0855175A886DBCB362288A0C11AC227CFCC1B82E5A322B819F11BFB7D9A + E74CD9D0710000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 80 + Bitmap = {} + end +end diff --git a/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.pas b/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.pas new file mode 100644 index 0000000..766a0a0 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.pas @@ -0,0 +1,157 @@ +unit uPluginGestorInformes; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList, uGestorInformesController; + +type + IMCGestorInformes = interface(IInterface) + ['{D44E1560-BF8F-4DA2-BF64-E0A44C08AC01}'] + end; + + TPluginGestorInformes = class(TModuleController, IMCGestorInformes) + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + Informes1: TMenuItem; + actInformeFacturasCliente: TAction; + Listadodefacturasdecliente1: TMenuItem; + actInformeFacturasClientePendientes: TAction; + actInformeFacturasClienteIVA: TAction; + Listadodefacturasdeclientependientes1: TMenuItem; + ListadodeIVAdefacturasdecliente1: TMenuItem; + actInformeRecibosCliente: TAction; + N1: TMenuItem; + N2: TMenuItem; + actInformeRecibosCliPendientes: TAction; + Listadoderecibosdeclientependientes1: TMenuItem; + actInformeFacturasProveedor: TAction; + actInformeFacturasProveedorPendientes: TAction; + actInformeFacturasProveedorIVA: TAction; + actInformeRecibosProveedor: TAction; + actInformeRecibosProvPendientes: TAction; + N3: TMenuItem; + Listadodefacturasdeproveedor1: TMenuItem; + Listadodefacturasdeproveedorpendientes1: TMenuItem; + ListadodeIVAdefacturasdeproveedor1: TMenuItem; + N4: TMenuItem; + Listadoderecibosdeproveedor1: TMenuItem; + Listadoderecibosdeproveedorpendientes1: TMenuItem; + procedure actInformeFacturasClienteExecute(Sender: TObject); + procedure actInformeFacturasClientePendientesExecute(Sender: TObject); + procedure actInformeFacturasClienteIVAExecute(Sender: TObject); + procedure actInformeRecibosClienteExecute(Sender: TObject); + procedure actInformeRecibosCliPendientesExecute(Sender: TObject); + procedure actInformeFacturasProveedorExecute(Sender: TObject); + procedure actInformeFacturasProveedorPendientesExecute(Sender: TObject); + procedure actInformeFacturasProveedorIVAExecute(Sender: TObject); + procedure actInformeRecibosProveedorExecute(Sender: TObject); + procedure actInformeRecibosProvPendientesExecute(Sender: TObject); + private + FController : IGestorInformesController; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, + uGestorInformesViewRegister; + +function GetModule : TModuleController; +begin + Result := TPluginGestorInformes.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +procedure TPluginGestorInformes.actInformeFacturasClienteExecute( + Sender: TObject); +begin + FController.VerInformeListadoFacturasCli; +end; + +procedure TPluginGestorInformes.actInformeFacturasClienteIVAExecute( + Sender: TObject); +begin + FController.VerInformeIVAClientes; +end; + +procedure TPluginGestorInformes.actInformeFacturasClientePendientesExecute( + Sender: TObject); +begin + FController.VerInformeListadoFacturasCliPendientes; +end; + +procedure TPluginGestorInformes.actInformeFacturasProveedorExecute( + Sender: TObject); +begin + FController.VerInformeListadoFacturasProv; +end; + +procedure TPluginGestorInformes.actInformeFacturasProveedorIVAExecute( + Sender: TObject); +begin + FController.VerInformeIVAProveedores; +end; + +procedure TPluginGestorInformes.actInformeFacturasProveedorPendientesExecute( + Sender: TObject); +begin + FController.VerInformeListadoFacturasProvPendientes; +end; + +procedure TPluginGestorInformes.actInformeRecibosClienteExecute( + Sender: TObject); +begin + FController.VerInformeListadoRecibosCliente; +end; + +procedure TPluginGestorInformes.actInformeRecibosCliPendientesExecute( + Sender: TObject); +begin + FController.VerInformeListadoRecibosCliPendientes; +end; + +procedure TPluginGestorInformes.actInformeRecibosProveedorExecute( + Sender: TObject); +begin + FController.VerInformeListadoRecibosProveedor; +end; + +procedure TPluginGestorInformes.actInformeRecibosProvPendientesExecute( + Sender: TObject); +begin + FController.VerInformeListadoRecibosProvPendientes; +end; + +constructor TPluginGestorInformes.Create(AOwner: TComponent); +begin + inherited; + uGestorInformesViewRegister.RegisterViews; + FController := TGestorInformesController.Create; +end; + +destructor TPluginGestorInformes.Destroy; +begin + FController := NIL; + uGestorInformesViewRegister.UnregisterViews; + inherited; +end; + +initialization + RegisterModuleClass(TPluginGestorInformes); + +finalization + UnRegisterModuleClass(TPluginGestorInformes); + +end. diff --git a/Source/Modulos/Gestor de informes/Servidor/NewService_Impl.dfm b/Source/Modulos/Gestor de informes/Servidor/NewService_Impl.dfm new file mode 100644 index 0000000..c10ac50 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Servidor/NewService_Impl.dfm @@ -0,0 +1,106 @@ +object NewService: TNewService + OldCreateOrder = True + ServiceSchema = Schema + ServiceDataStreamer = DABinDataStreamer1 + ExportedDataTables = < + item + DataTable = dtComboDataset + LogicalName = 'ComboDataset' + end + item + DataTable = dtWindowsDir + LogicalName = 'DirectoryData' + end> + BeforeGetDatasetData = DataAbstractServiceBeforeGetDatasetData + ValidateDatasetAccess = DataAbstractServiceValidateDatasetAccess + Height = 149 + Width = 326 + object Schema: TDASchema + ConnectionManager = dmServer.ConnectionManager + Datasets = <> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = < + item + Name = 'FK_Employees_Employees' + MasterDatasetName = 'Employees' + MasterFields = 'EmployeeID' + DetailDatasetName = 'Employees' + DetailFields = 'ReportsTo' + RelationshipType = rtForeignKey + end> + UpdateRules = <> + Version = 0 + Left = 32 + Top = 56 + end + object dtComboDataset: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'AutoIncField' + DataType = datAutoInc + InPrimaryKey = True + end + item + Name = 'TextField' + DataType = datString + Size = 50 + DisplayWidth = 50 + end> + Params = < + item + Name = 'CustomParameter' + DataType = datString + Size = 50 + Value = '' + ParamType = daptInput + end> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'ComboDataset' + IndexDefs = <> + Left = 128 + Top = 56 + end + object dtWindowsDir: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'FileName' + DataType = datString + Size = 200 + DisplayWidth = 50 + InPrimaryKey = True + end + item + Name = 'FileSize' + DataType = datInteger + end> + Params = < + item + Name = 'Directory' + DataType = datString + Size = 200 + Value = '' + ParamType = daptInput + end> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'DirectoryData' + IndexDefs = <> + Left = 216 + Top = 56 + end + object DABinDataStreamer1: TDABinDataStreamer + Left = 128 + Top = 8 + end +end diff --git a/Source/Modulos/Gestor de informes/Servidor/NewService_Impl.pas b/Source/Modulos/Gestor de informes/Servidor/NewService_Impl.pas new file mode 100644 index 0000000..0586b54 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Servidor/NewService_Impl.pas @@ -0,0 +1,179 @@ +unit NewService_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} uDABusinessProcessor, uDABin2DataStreamer, uDADataStreamer, + uDAScriptingProvider, uDAClasses, + FactuGES_Intf, uDAInterfaces, uDADataTable, uDAMemDataTable, uDABinAdapter; + + +const + { Dataset names for Schema } + ds_Employees = 'Employees'; + ds_Customers = 'Customers'; + ds_Regions = 'Regions'; + +type + { TNewService } + TNewService = class(TDataAbstractService, INewService) + dtComboDataset: TDAMemDataTable; + dtWindowsDir: TDAMemDataTable; + DABinDataStreamer1: TDABinDataStreamer; + Schema: TDASchema; + procedure DataAbstractServiceBeforeGetDatasetData(aSender: TObject; + const aDataset: IDADataset; const aIncludeSchema: Boolean; + const aMaxRecords: Integer); + procedure DataAbstractServiceValidateDatasetAccess(Sender: TObject; + const aConnection: IDAConnection; const aDatasetName: string; + const aParamNames: array of string; + const aParamValues: array of Variant; aSchema: TDASchema; + var Allowed: Boolean); + private + procedure FillComboDataset(const aDataset: IDAEditableDataset); + procedure FillWinDirDataset(const aDataset: IDAEditableDataset); + protected + { INewService methods } + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer, uDatabaseUtils; + +procedure Create_NewService(out anInstance: IUnknown); +begin + anInstance := TNewService.Create(nil); +end; + +procedure TNewService.FillComboDataset(const aDataset: IDAEditableDataset); +var + employees, + customers, + regions: IDADataset; + textfield: TDAField; +begin +{ + with aDataset do begin + // Opens the in memory data table + Open; + textfield := FieldByName('TextField'); + + // Adds 3 dummy records + Insert; + textfield.AsString := 'String A'; + Post; + + Insert; + textfield.AsString := 'String B'; + Post; + + Insert; + textfield.AsString := 'String C'; + Post; + + // Fetches data from other datasets, according to the value of the parameter "CustomParameter" + if (Pos('EMPLOYEES', UpperCase(ParamByName('CustomParameter').AsString)) > 0) then begin + employees := Schema.NewDataset(Connection, ds_Employees, [], [], TRUE); + while not employees.EOF do begin + Insert; + textfield.AsString := employees.FieldByName('FirstName').AsString + ' ' + employees.FieldByName('LastName').AsString; + Post; + + employees.Next; + end; + employees:=nil; + end; + if (Pos('CUSTOMERS', UpperCase(ParamByName('CustomParameter').AsString)) > 0) then begin + customers := Schema.NewDataset(Connection, ds_Customers, [], [], TRUE); + while not customers.EOF do begin + Insert; + textfield.AsString := customers.FieldByName('CompanyName').AsString; + Post; + + customers.Next; + end; + customers := nil; + end; + if (Pos('REGIONS', UpperCase(ParamByName('CustomParameter').AsString)) > 0) then begin + regions := Schema.NewDataset(Connection, ds_Regions, [], [], TRUE); + while not regions.EOF do begin + Insert; + textfield.AsString := regions.FieldByName('RegionDescription').AsString; + Post; + + regions.Next; + end; + regions := nil; + end; + end; +} +end; + +procedure TNewService.FillWinDirDataset(const aDataset: IDAEditableDataset); +var + dirinfo: TSearchRec; +begin + aDataset.Open; +{ + if (FindFirst(IncludeTrailingPathDelimiter(aDataset.ParamByName('Directory').AsString) + '*.*', faArchive, dirinfo) = 0) then repeat + aDataset.Insert; + + aDataset.FieldByName('FileName').AsString := dirinfo.Name; + aDataset.FieldByName('FileSize').AsInteger := dirinfo.Size; + + aDataset.Post; + until (FindNext(dirinfo) <> 0); +} +end; + +procedure TNewService.DataAbstractServiceBeforeGetDatasetData( + aSender: TObject; const aDataset: IDADataset; + const aIncludeSchema: Boolean; const aMaxRecords: Integer); +begin + if SameText(aDataset.LogicalName, dtComboDataset.LogicalName) then + FillComboDataset((dtComboDataset as IDAEditableDataset)) + else if SameText(aDataset.LogicalName, dtWindowsDir.LogicalName) then + FillWinDirDataset((dtWindowsDir as IDAEditableDataset)); +end; + +procedure TNewService.DataAbstractServiceValidateDatasetAccess( + Sender: TObject; const aConnection: IDAConnection; + const aDatasetName: string; const aParamNames: array of string; + const aParamValues: array of Variant; aSchema: TDASchema; + var Allowed: Boolean); + + procedure FillParameters(aDataSet: TDAMemDataTable); + var + i: integer; + begin + for i := Low(aParamNames) to High(aParamNames) do + aDataset.ParamByName(aParamNames[i]).Value := aParamValues[i]; + end; + +begin + if SameText(aDatasetName, dtComboDataset.LogicalName) then + FillParameters(dtComboDataset) + else if SameText(aDatasetName, dtWindowsDir.LogicalName) then + FillParameters(dtWindowsDir) +end; + +initialization + TROClassFactory.Create('NewService', Create_NewService, TNewService_Invoker); + +finalization + +end. + diff --git a/Source/Modulos/Gestor de informes/Servidor/srvGestorInformes_Impl.dcu b/Source/Modulos/Gestor de informes/Servidor/srvGestorInformes_Impl.dcu new file mode 100644 index 0000000..82f8e4e Binary files /dev/null and b/Source/Modulos/Gestor de informes/Servidor/srvGestorInformes_Impl.dcu differ diff --git a/Source/Modulos/Gestor de informes/Servidor/srvGestorInformes_Impl.dfm b/Source/Modulos/Gestor de informes/Servidor/srvGestorInformes_Impl.dfm new file mode 100644 index 0000000..de4c57a --- /dev/null +++ b/Source/Modulos/Gestor de informes/Servidor/srvGestorInformes_Impl.dfm @@ -0,0 +1,36 @@ +object srvGestorInformes: TsrvGestorInformes + OldCreateOrder = True + ServiceSchema = Schema + ServiceDataStreamer = Bin2DataStreamer + ExportedDataTables = < + item + end + item + end> + Height = 162 + Width = 313 + object Schema: TDASchema + ConnectionManager = dmServer.ConnectionManager + Datasets = <> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = < + item + Name = 'FK_Employees_Employees' + MasterDatasetName = 'Employees' + MasterFields = 'EmployeeID' + DetailDatasetName = 'Employees' + DetailFields = 'ReportsTo' + RelationshipType = rtForeignKey + end> + UpdateRules = <> + Version = 0 + Left = 32 + Top = 64 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 32 + Top = 8 + end +end diff --git a/Source/Modulos/Gestor de informes/Servidor/srvGestorInformes_Impl.pas b/Source/Modulos/Gestor de informes/Servidor/srvGestorInformes_Impl.pas new file mode 100644 index 0000000..6419edd --- /dev/null +++ b/Source/Modulos/Gestor de informes/Servidor/srvGestorInformes_Impl.pas @@ -0,0 +1,259 @@ +unit srvGestorInformes_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} uDABusinessProcessor, uDABin2DataStreamer, uDADataStreamer, + uDAScriptingProvider, uDAClasses, + FactuGES_Intf, uDAInterfaces, uDADataTable, uDAMemDataTable, uDABinAdapter; + + +const + { Dataset names for Schema } + ds_Employees = 'Employees'; + ds_Customers = 'Customers'; + ds_Regions = 'Regions'; + +type + { TGestorInformes } + TsrvGestorInformes = class(TDataAbstractService, IsrvGestorInformes) + Schema: TDASchema; + Bin2DataStreamer: TDABin2DataStreamer; + public + //MODULO PRESUPUESTOS CLIENTE + function GenerarInformeListadoPresupuestos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + + //MODULO FACTURAS CLIENTE + function GenerarInformeIVAClientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoFacturasCli(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoFacturasCliPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + + //MODULO RECIBOS CLIENTE + function GenerarInformeListadoRecibosCliente(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoRecibosCliPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + + //MODULO PEDIDOS PROVEEDOR + function GenerarInformeListadoPedidos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + + //MODULO FACTURAS PROVEEDOR + function GenerarInformeIVAProveedores(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoFacturasProv(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoFacturasProvPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + + //MODULO RECIBOS PROVEEDOR + function GenerarInformeListadoRecibosProveedor(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoRecibosProvPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer, uDatabaseUtils, Dialogs, + uRptPresupuestosCliente_Server, uRptFacturasCliente_Server, uRptRecibosCliente_Server, + uRptPedidosProveedor_Server, uRptFacturasProveedor_Server, uRptRecibosProveedor_Server; + +procedure Create_srvGestorInformes(out anInstance: IUnknown); +begin + anInstance := TsrvGestorInformes.Create(nil); +end; + +function TsrvGestorInformes.GenerarInformeIVAClientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; +var + AReportGenerator : TRptFacturasCliente; +begin + AReportGenerator := TRptFacturasCliente.Create(nil); + try + Result := AReportGenerator.GenerarInformeIVA(IdEmpresa, FechaInicio, FechaFin, ListaIDClientes, Desglosado, ImporteMinimo); + finally + FreeAndNIL(AReportGenerator); + end; +end; + +function TsrvGestorInformes.GenerarInformeIVAProveedores(const IdEmpresa: Integer; + const FechaInicio, FechaFin: Variant; const ListaIDProveedores: TIntegerArray; + const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; +var + AReportGenerator : TRptFacturasProveedor; +begin + AReportGenerator := TRptFacturasProveedor.Create(nil); + try + Result := AReportGenerator.GenerarInformeIVA(IdEmpresa, FechaInicio, FechaFin, ListaIDProveedores, Desglosado, ImporteMinimo); + finally + FreeAndNIL(AReportGenerator); + end; +end; + +function TsrvGestorInformes.GenerarInformeListadoFacturasCli(const IdEmpresa: Integer; + const FechaInicio, FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; + const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; +var + AReportGenerator : TRptFacturasCliente; +begin + AReportGenerator := TRptFacturasCliente.Create(nil); + try + Result := AReportGenerator.GenerarInformeListadoFacturas(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIDClientes, Desglosado, ImporteMinimo); + finally + FreeAndNIL(AReportGenerator); + end; +end; + +function TsrvGestorInformes.GenerarInformeListadoFacturasCliPendientes( + const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; + const FechaVenInicio: Variant; const FechaVenFin: Variant; + const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; + const ImporteMinimo: Currency): Binary; +var + AReportGenerator : TRptFacturasCliente; +begin + AReportGenerator := TRptFacturasCliente.Create(nil); + try + Result := AReportGenerator.GenerarInformeListadoFacturasPendientes(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIDClientes, Desglosado, ImporteMinimo); + finally + FreeAndNIL(AReportGenerator); + end; +end; + +function TsrvGestorInformes.GenerarInformeListadoFacturasProv( + const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; + const FechaVenInicio, FechaVenFin: Variant; + const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; + const ImporteMinimo: Currency): Binary; +var + AReportGenerator : TRptFacturasProveedor; +begin + AReportGenerator := TRptFacturasProveedor.Create(nil); + try + Result := AReportGenerator.GenerarInformeListadoFacturas(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIDProveedores, Desglosado, ImporteMinimo); + finally + FreeAndNIL(AReportGenerator); + end; +end; + +function TsrvGestorInformes.GenerarInformeListadoFacturasProvPendientes( + const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; + const FechaVenInicio, FechaVenFin: Variant; + const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; + const ImporteMinimo: Currency): Binary; +var + AReportGenerator : TRptFacturasProveedor; +begin + AReportGenerator := TRptFacturasProveedor.Create(nil); + try + Result := AReportGenerator.GenerarInformeListadoFacturasPendientes(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIDProveedores, Desglosado, ImporteMinimo); + finally + FreeAndNIL(AReportGenerator); + end; +end; + +function TsrvGestorInformes.GenerarInformeListadoPedidos(const IdEmpresa: Integer; + const FechaInicio, FechaFin: Variant; const ListaIDProveedores: TIntegerArray; + const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; +var + AReportGenerator : TRptPedidosProveedor; +begin + AReportGenerator := TRptPedidosProveedor.Create(nil); + try + Result := AReportGenerator.GenerarInformeListadoPedidos(IdEmpresa, FechaInicio, FechaFin, ListaIDProveedores, Desglosado, ImporteMinimo); + finally + FreeAndNIL(AReportGenerator); + end; +end; + +function TsrvGestorInformes.GenerarInformeListadoPresupuestos( + const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; + const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; + const ImporteMinimo: Currency): Binary; +var + AReportGenerator : TRptPresupuestosCliente; +begin + AReportGenerator := TRptPresupuestosCliente.Create(nil); + try + Result := AReportGenerator.GenerarInformeListadoPresupuestos(IdEmpresa, FechaInicio, FechaFin, ListaIDClientes, Desglosado, ImporteMinimo); + finally + FreeAndNIL(AReportGenerator); + end; +end; + +function TsrvGestorInformes.GenerarInformeListadoRecibosCliente( + const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; + const FechaVenInicio: Variant; const FechaVenFin: Variant; + const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; + const ImporteMinimo: Currency): Binary; +var + AReportGenerator : TRptRecibosCliente; +begin + AReportGenerator := TRptRecibosCliente.Create(nil); + try + Result := AReportGenerator.GenerarInformeListadoRecibos(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIDClientes, Desglosado, ImporteMinimo); + finally + FreeAndNIL(AReportGenerator); + end; +end; + +function TsrvGestorInformes.GenerarInformeListadoRecibosCliPendientes( + const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; + const FechaVenInicio, FechaVenFin: Variant; + const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; + const ImporteMinimo: Currency): Binary; +var + AReportGenerator : TRptRecibosCliente; +begin + AReportGenerator := TRptRecibosCliente.Create(nil); + try + Result := AReportGenerator.GenerarInformeListadoRecibosPendientes(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIDClientes, Desglosado, ImporteMinimo); + finally + FreeAndNIL(AReportGenerator); + end; +end; + +function TsrvGestorInformes.GenerarInformeListadoRecibosProveedor( + const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; + const FechaVenInicio, FechaVenFin: Variant; + const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; + const ImporteMinimo: Currency): Binary; +var + AReportGenerator : TRptRecibosProveedor; +begin + AReportGenerator := TRptRecibosProveedor.Create(nil); + try + Result := AReportGenerator.GenerarInformeListadoRecibos(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIDProveedores, Desglosado, ImporteMinimo); + finally + FreeAndNIL(AReportGenerator); + end; +end; + +function TsrvGestorInformes.GenerarInformeListadoRecibosProvPendientes( + const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; + const FechaVenInicio, FechaVenFin: Variant; + const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; + const ImporteMinimo: Currency): Binary; +var + AReportGenerator : TRptRecibosProveedor; +begin + AReportGenerator := TRptRecibosProveedor.Create(nil); + try + Result := AReportGenerator.GenerarInformeListadoRecibosPendientes(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIDProveedores, Desglosado, ImporteMinimo); + finally + FreeAndNIL(AReportGenerator); + end; +end; + +initialization + TROClassFactory.Create('srvGestorInformes', Create_srvGestorInformes, TsrvGestorInformes_Invoker); + +finalization + +end. + diff --git a/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dcu b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dcu new file mode 100644 index 0000000..0211e81 Binary files /dev/null and b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dcu differ diff --git a/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dpk b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dpk new file mode 100644 index 0000000..958b473 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dpk @@ -0,0 +1,90 @@ +package GestorInformes_view; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + rtl, + vcl, + Base, + GUIBase, + ApplicationBase, + Contactos_view, + GestorInformes_controller, + Contactos_model, + Contactos_controller, + RemObjects_Core_D11, + dbrtl, + PNG_D10, + PngComponentsD10, + vclactnband, + vclx, + tb2k_d10, + tbx_d10, + JvCoreD11R, + vcldb, + vcljpg, + Jcl, + JclVcl, + JvSystemD11R, + JvStdCtrlsD11R, + JvPageCompsD11R, + GUISDK_D11R, + xmlrtl, + cfpack_d11, + designide, + ccpackD11, + frx11, + fs11, + frxe11, + cxLibraryD11, + dxThemeD11, + dxGDIPlusD11, + dxLayoutControlD11, + dxComnD11, + cxEditorsD11, + cxDataD11; + +contains + uGestorInformesViewRegister in 'uGestorInformesViewRegister.pas', + uViewPeriodoFechas in 'uViewPeriodoFechas.pas' {frViewPeriodoFechas: TFrame}, + uViewFiltroImportes in 'uViewFiltroImportes.pas' {frViewFiltroImportes: TFrame}, + uEditorInformeIVAClientesReport in 'uEditorInformeIVAClientesReport.pas' {fEditorInformeIVAClientesReport: TForm}, + uEditorInformeBase in 'uEditorInformeBase.pas' {fEditorInformeBase: TForm}, + uViewFiltroClientes in 'uViewFiltroClientes.pas' {frViewFiltroClientes: TFrame}, + uViewParametrosInforme in 'uViewParametrosInforme.pas' {frViewParametrosInforme: TFrame}, + uEditorInformeFacturasClientePendientesReport in 'uEditorInformeFacturasClientePendientesReport.pas' {fEditorInformeFacturasClientePendientesReport: t}, + uEditorInformeFacturasClienteReport in 'uEditorInformeFacturasClienteReport.pas' {fEditorInformeFacturasClienteReport: T}, + uEditorInformeRecibosClienteReport in 'uEditorInformeRecibosClienteReport.pas' {fEditorInformeRecibosClienteReport: T}, + uEditorInformeRecibosCliPendientesReport in 'uEditorInformeRecibosCliPendientesReport.pas' {fEditorInformeRecibosCliPendientesReport: T}, + uViewFiltroProveedores in 'uViewFiltroProveedores.pas' {frViewFiltroProveedores: TFrame}, + uEditorInformeIVAProveedoresReport in 'uEditorInformeIVAProveedoresReport.pas' {fEditorInformeIVAProveedoresReport: TForm}, + uEditorInformeRecibosProvPendientesReport in 'uEditorInformeRecibosProvPendientesReport.pas' {fEditorInformeRecibosProvPendientesReport: TForm}, + uEditorInformeFacturasProveedorPendientesReport in 'uEditorInformeFacturasProveedorPendientesReport.pas' {fEditorInformeFacturasProveedorPendientesReport: TForm}, + uEditorInformeFacturasProveedorReport in 'uEditorInformeFacturasProveedorReport.pas' {fEditorInformeFacturasProveedorReport: TForm}, + uEditorInformePedidosReport in 'uEditorInformePedidosReport.pas' {fEditorInformePedidosReport: TForm}, + uEditorInformeRecibosProveedorReport in 'uEditorInformeRecibosProveedorReport.pas' {fEditorInformeRecibosProveedorReport: TForm}, + uEditorInformePresupuestosReport in 'uEditorInformePresupuestosReport.pas' {fEditorInformePresupuestosReport: TForm}; + +end. diff --git a/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dproj b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dproj new file mode 100644 index 0000000..6a768ff --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dproj @@ -0,0 +1,638 @@ + + + + {cdba3fdf-b755-404b-b9f9-ebf0ce885115} + GestorInformes_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\GestorInformes_view.bpl + + + 7.0 + False + False + 0 + RELEASE + + + 7.0 + ..\..\..\..\Output\Debug\Cliente + .\ + .\ + .\ + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0GestorInformes_view.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fEditorInformeBase
+ TForm +
+ +
fEditorInformeFacturasClientePendientesReport
+ t +
+ +
fEditorInformeFacturasClienteReport
+ T +
+ +
fEditorInformeFacturasProveedorPendientesReport
+ TForm +
+ +
fEditorInformeFacturasProveedorReport
+ TForm +
+ +
fEditorInformeIVAClientesReport
+ TForm +
+ +
fEditorInformeIVAProveedoresReport
+ TForm +
+ +
fEditorInformePedidosReport
+ TForm +
+ +
fEditorInformePresupuestoReport
+ TForm +
+ +
fEditorInformeRecibosClienteReport
+ T +
+ +
fEditorInformeRecibosCliPendientesReport
+ T +
+ +
fEditorInformeRecibosProveedorReport
+ TForm +
+ +
fEditorInformeRecibosProvPendientesReport
+ TForm +
+ + +
frViewFiltroClientes
+ TFrame +
+ +
frViewFiltroImportes
+ TFrame +
+ +
frViewFiltroProveedores
+ TFrame +
+ +
frViewParametrosInforme
+ TFrame +
+ +
frViewPeriodoFechas
+ TFrame +
+ + + + + + +
+
+ diff --git a/Source/Modulos/Gestor de informes/Views/GestorInformes_view.rc b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Gestor de informes/Views/GestorInformes_view.res b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.res differ diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeBase.dcu b/Source/Modulos/Gestor de informes/Views/uEditorInformeBase.dcu new file mode 100644 index 0000000..39d39df Binary files /dev/null and b/Source/Modulos/Gestor de informes/Views/uEditorInformeBase.dcu differ diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeBase.dfm b/Source/Modulos/Gestor de informes/Views/uEditorInformeBase.dfm new file mode 100644 index 0000000..585cd3e --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeBase.dfm @@ -0,0 +1,125 @@ +inherited fEditorInformeBase: TfEditorInformeBase + Caption = '' + ClientHeight = 483 + ClientWidth = 787 + ExplicitWidth = 795 + ExplicitHeight = 517 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 787 + ExplicitWidth = 787 + inherited Image1: TImage + Left = 760 + ExplicitLeft = 760 + end + end + inherited TBXDock: TTBXDock + Width = 787 + ExplicitWidth = 787 + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 787 + end + end + inherited StatusBar: TJvStatusBar + Top = 464 + Width = 787 + ExplicitTop = 464 + ExplicitWidth = 787 + end + object TBXMultiDockIzquierdo: TTBXMultiDock [3] + Left = 0 + Top = 102 + Width = 7 + Height = 362 + Position = dpLeft + end + object TBXMultiDockDerecho: TTBXMultiDock [4] + Left = 633 + Top = 102 + Width = 154 + Height = 362 + Position = dpRight + object pnlParametros: TTBXDockablePanel + Left = 0 + Top = 0 + Caption = 'Par'#225'metros' + CloseButton = False + CloseButtonWhenDocked = False + DefaultDock = TBXMultiDockDerecho + DockableTo = [dpLeft, dpRight] + DockedWidth = 150 + DockMode = dmCannotFloat + DockPos = 6 + FloatingWidth = 128 + FloatingHeight = 128 + SupportedDocks = [dkStandardDock, dkMultiDock] + TabOrder = 0 + object TBXDockablePanel1: TTBXDockablePanel + Left = 0 + Top = 196 + MaxClientHeight = 50 + Align = alBottom + Caption = 'TBXDockablePanel1' + FloatingWidth = 128 + FloatingHeight = 128 + SupportedDocks = [dkStandardDock, dkMultiDock] + TabOrder = 0 + ExplicitWidth = 128 + object TBXButton1: TTBXButton + Left = 16 + Top = 12 + Width = 121 + Height = 24 + Action = actRefrescar + ImageIndex = 9 + Images = SmallImages + TabOrder = 0 + end + end + end + end + inherited frxOLEObject1: TfrxOLEObject + Top = 200 + end + inherited frxRichObject1: TfrxRichObject + Top = 232 + end + inherited frxCrossObject1: TfrxCrossObject + Top = 200 + end + inherited frxCheckBoxObject1: TfrxCheckBoxObject + Top = 232 + end + inherited frxDialogControls1: TfrxDialogControls + Top = 264 + end + inherited frxTIFFExport1: TfrxTIFFExport + Left = 136 + Top = 152 + end + inherited frxPDFExport1: TfrxPDFExport + Left = 176 + Top = 152 + end + inherited frxBMPExport1: TfrxBMPExport + Left = 208 + Top = 152 + end + inherited frxXLSExport1: TfrxXLSExport + Left = 56 + Top = 152 + end + inherited frxMailExport1: TfrxMailExport + Left = 96 + Top = 152 + end + inherited frxRTFExport: TfrxRTFExport + Left = 248 + Top = 152 + end + inherited frxSimpleTextExport1: TfrxSimpleTextExport + Left = 280 + Top = 152 + end +end diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeBase.pas b/Source/Modulos/Gestor de informes/Views/uEditorInformeBase.pas new file mode 100644 index 0000000..1e5dee6 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeBase.pas @@ -0,0 +1,32 @@ +unit uEditorInformeBase; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorPreview, frxExportText, frxExportRTF, frxExportMail, + frxExportXLS, frxExportImage, frxExportPDF, frxClass, frxDCtrl, frxGradient, + frxChBox, frxCross, frxRich, frxOLE, frxBarcode, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, + StdActns, ActnList, ComCtrls, JvExComCtrls, JvStatusBar, TB2ExtItems, + TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, + JvExControls, JvNavigationPane, uIEditorInformeBase, TBXDkPanels; + +type + TfEditorInformeBase = class(TfEditorPreview, IEditorInformeBase) + TBXMultiDockIzquierdo: TTBXMultiDock; + TBXMultiDockDerecho: TTBXMultiDock; + pnlParametros: TTBXDockablePanel; + TBXDockablePanel1: TTBXDockablePanel; + TBXButton1: TTBXButton; + private + { Private declarations } + public + { Public declarations } + end; + +implementation + +{$R *.dfm} + +end. diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasClientePendientesReport.dcu b/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasClientePendientesReport.dcu new file mode 100644 index 0000000..f8bf78c Binary files /dev/null and b/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasClientePendientesReport.dcu differ diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasClientePendientesReport.dfm b/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasClientePendientesReport.dfm new file mode 100644 index 0000000..edaf55d --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasClientePendientesReport.dfm @@ -0,0 +1,234 @@ +inherited fEditorInformeFacturasClientePendientesReport: TfEditorInformeFacturasClientePendientesReport + Caption = 'fEditorInformeFacturasClientePendientesReport' + ClientHeight = 655 + ClientWidth = 895 + ExplicitWidth = 903 + ExplicitHeight = 689 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 895 + ExplicitWidth = 895 + inherited Image1: TImage + Left = 868 + ExplicitLeft = 868 + end + end + inherited TBXDock: TTBXDock + Width = 895 + ExplicitWidth = 895 + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 895 + end + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 591 + object TBXItem58: TTBXItem [0] + Action = actRefrescar + DisplayMode = nbdmImageAndText + Images = SmallImages + end + end + end + inherited StatusBar: TJvStatusBar + Top = 636 + Width = 895 + ExplicitTop = 636 + ExplicitWidth = 895 + end + inherited TBXMultiDockIzquierdo: TTBXMultiDock + Height = 534 + ExplicitHeight = 534 + end + inherited TBXMultiDockDerecho: TTBXMultiDock + Left = 703 + Width = 192 + Height = 534 + ExplicitLeft = 703 + ExplicitWidth = 192 + ExplicitHeight = 534 + inherited pnlParametros: TTBXDockablePanel + DockedWidth = 188 + ExplicitWidth = 192 + ExplicitHeight = 518 + inline frViewPeriodoFechas1: TfrViewPeriodoFechas [0] + Left = 0 + Top = 0 + Width = 188 + Height = 236 + Align = alTop + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 188 + ExplicitHeight = 236 + inherited TBXAlignmentPanel2: TTBXAlignmentPanel + Width = 182 + ExplicitWidth = 182 + inherited Label3: TLabel + Width = 172 + end + inherited edtFechaFin: TcxDateEdit + Left = 72 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 72 + ExplicitWidth = 100 + Width = 100 + end + inherited edtFechaIni: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 100 + Width = 100 + end + inherited cbPeriodo: TcxComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 170 + Width = 170 + end + end + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited TBXAlignmentPanel3: TTBXAlignmentPanel + Width = 182 + ExplicitWidth = 182 + inherited Label4: TLabel + Width = 172 + end + inherited edtFechaVenFin: TcxDateEdit + Left = 75 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 75 + ExplicitWidth = 99 + Width = 99 + end + inherited edtFechaVenIni: TcxDateEdit + Left = 75 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 75 + ExplicitWidth = 97 + Width = 97 + end + inherited cbPeriodo2: TcxComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 170 + Width = 170 + end + end + end + inherited TBXDockablePanel1: TTBXDockablePanel + Top = 368 + TabOrder = 2 + ExplicitTop = 368 + ExplicitWidth = 188 + inherited TBXButton1: TTBXButton + AlignWithMargins = True + Left = 3 + Top = 3 + Width = 182 + Height = 37 + Margins.Left = 8 + Margins.Top = 8 + Margins.Right = 8 + Margins.Bottom = 8 + Align = alTop + ExplicitLeft = 3 + ExplicitTop = 3 + ExplicitWidth = 182 + ExplicitHeight = 37 + end + end + inline frViewFiltroImportes1: TfrViewFiltroImportes + Left = 0 + Top = 236 + Width = 188 + Height = 77 + Align = alTop + AutoSize = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 1 + ReadOnly = False + ExplicitTop = 236 + ExplicitWidth = 188 + ExplicitHeight = 77 + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 182 + ExplicitWidth = 182 + inherited eImporte: TcxSpinEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + end + end + inline frViewFiltroClientes1: TfrViewFiltroClientes + Left = 0 + Top = 313 + Width = 188 + Height = 146 + Align = alTop + AutoSize = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 313 + ExplicitWidth = 188 + ExplicitHeight = 146 + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited bElegirCliente: TBitBtn + Width = 108 + ExplicitWidth = 108 + end + inherited edtCliente: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 141 + Width = 141 + end + end + end + end +end diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasClientePendientesReport.pas b/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasClientePendientesReport.pas new file mode 100644 index 0000000..5f8cc52 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasClientePendientesReport.pas @@ -0,0 +1,156 @@ +unit uEditorInformeFacturasClientePendientesReport; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorPreview, frxExportText, frxExportRTF, frxExportMail, + frxExportXLS, frxExportImage, frxExportPDF, frxClass, frxDCtrl, frxGradient, + frxChBox, frxCross, frxRich, frxOLE, frxBarcode, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, + StdActns, ActnList, ComCtrls, JvExComCtrls, JvStatusBar, TB2ExtItems, + TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, + JvExControls, JvNavigationPane, uCustomView, + uViewBase, uViewPeriodoFechas, + uViewFiltroClientes, dxLayoutControl, cxControls, uViewFiltroImportes, + FactuGES_Intf, TBXDkPanels, uEditorInformeBase, + uIEditorInformeBase, uViewParametrosInforme, + uIEditorInformeFacturasClientePendientesReport; + +type + TfEditorInformeFacturasClientePendientesReport = class(TfEditorInformeBase, IEditorInformeFacturasClientePendientesReport) + TBXItem58: TTBXItem; + frViewPeriodoFechas1: TfrViewPeriodoFechas; + frViewFiltroImportes1: TfrViewFiltroImportes; + frViewFiltroClientes1: TfrViewFiltroClientes; + procedure actRefrescarExecute(Sender: TObject); + private + FListaIDClientes: TIntegerArray; + function GetFechaFin: Variant; + function GetFechaInicio: Variant; + function GetFechaVenFin: Variant; + function GetFechaVenInicio: Variant; + function GetListaIDClientes: TIntegerArray; + function GetImporteMinimo: Currency; + function GetDesglosadoCliente: Boolean; + + procedure RefrescarInforme; + + public + property FechaInicio: Variant read GetFechaInicio; + property FechaFin: Variant read GetFechaFin; + property FechaVenInicio: Variant read GetFechaVenInicio; + property FechaVenFin: Variant read GetFechaVenFin; + property ListaIDClientes: TIntegerArray read GetListaIDClientes; + property DesglosadoCliente: Boolean read GetDesglosadoCliente; + property ImporteMinimo: Currency read GetImporteMinimo; + + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + + +implementation + +{$R *.dfm} + +uses uROTypes, DateUtils, uGestorInformesController, uFactuGES_App; + +{ TfEditorGestorInformesReport } + +procedure TfEditorInformeFacturasClientePendientesReport.actRefrescarExecute(Sender: TObject); +begin + inherited; + RefrescarInforme; +end; + +constructor TfEditorInformeFacturasClientePendientesReport.Create(AOwner: TComponent); +begin + inherited; + FListaIDClientes := TIntegerArray.Create; +end; + +destructor TfEditorInformeFacturasClientePendientesReport.Destroy; +begin + FListaIDClientes.Free; + inherited; +end; + +function TfEditorInformeFacturasClientePendientesReport.GetDesglosadoCliente: Boolean; +begin + if frViewFiltroImportes1.cbxDesglosado.Enabled then + Result := frViewFiltroClientes1.cbxDesglosado.Checked + else + Result := False; +end; + +function TfEditorInformeFacturasClientePendientesReport.GetFechaFin: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaFin.EditValue; + + //Esto es para quitar la hora del timestamp para que luego no me redondee al dia siguiente + if not VarIsNull(Result) then + Result := DateOf(frViewPeriodoFechas1.edtFechaFin.Date); +end; + +function TfEditorInformeFacturasClientePendientesReport.GetFechaInicio: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaIni.EditValue; +end; + +function TfEditorInformeFacturasClientePendientesReport.GetFechaVenFin: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaVenFin.EditValue; + + //Esto es para quitar la hora del timestamp para que luego no me redondee al dia siguiente + if not VarIsNull(Result) then + Result := DateOf(frViewPeriodoFechas1.edtFechaVenFin.Date); +end; + +function TfEditorInformeFacturasClientePendientesReport.GetFechaVenInicio: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaVenIni.EditValue; +end; + +function TfEditorInformeFacturasClientePendientesReport.GetImporteMinimo: Currency; +begin + if frViewFiltroImportes1.eImporte.Enabled then + Result := frViewFiltroImportes1.eImporte.Value + else + Result := 0; +end; + +function TfEditorInformeFacturasClientePendientesReport.GetListaIDClientes: TIntegerArray; +begin + FListaIDClientes.Clear; + if Assigned(frViewFiltroClientes1.Cliente) then + FListaIDClientes.Add(frViewFiltroClientes1.Cliente.ID); + + Result := FListaIDClientes; +end; + +procedure TfEditorInformeFacturasClientePendientesReport.RefrescarInforme; +var + AStream: Binary; +begin + ShowHourglassCursor; + try + AStream := (Controller as IGestorInformesController).DataModule.GenerarInformeListadoFacturasCliPendientes( + AppFactuGES.EmpresaActiva.ID, + FechaInicio, + FechaFin, + FechaVenInicio, + FechaVenFin, + ListaIDClientes, + DesglosadoCliente, + ImporteMinimo); + + LoadFromStream(AStream); + Report.ShowPreparedReport; + finally + FreeAndNil(AStream); + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasClienteReport.dcu b/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasClienteReport.dcu new file mode 100644 index 0000000..e2ba974 Binary files /dev/null and b/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasClienteReport.dcu differ diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasClienteReport.dfm b/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasClienteReport.dfm new file mode 100644 index 0000000..6227c8a --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasClienteReport.dfm @@ -0,0 +1,242 @@ +inherited fEditorInformeFacturasClienteReport: TfEditorInformeFacturasClienteReport + Caption = 'fEditorInformeFacturasClienteReport' + ClientHeight = 655 + ClientWidth = 895 + ExplicitWidth = 903 + ExplicitHeight = 689 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 895 + ExplicitWidth = 895 + inherited Image1: TImage + Left = 868 + ExplicitLeft = 868 + end + end + inherited TBXDock: TTBXDock + Width = 895 + ExplicitWidth = 895 + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 895 + end + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 591 + object TBXItem58: TTBXItem [0] + Action = actRefrescar + DisplayMode = nbdmImageAndText + Images = SmallImages + end + end + end + inherited StatusBar: TJvStatusBar + Top = 636 + Width = 895 + ExplicitTop = 636 + ExplicitWidth = 895 + end + inherited TBXMultiDockIzquierdo: TTBXMultiDock + Height = 534 + ExplicitHeight = 534 + end + inherited TBXMultiDockDerecho: TTBXMultiDock + Left = 703 + Width = 192 + Height = 534 + ExplicitLeft = 703 + ExplicitWidth = 192 + ExplicitHeight = 534 + inherited pnlParametros: TTBXDockablePanel + DockedWidth = 188 + ExplicitWidth = 192 + ExplicitHeight = 518 + inline frViewPeriodoFechas1: TfrViewPeriodoFechas [0] + Left = 0 + Top = 0 + Width = 188 + Height = 236 + Align = alTop + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 188 + ExplicitHeight = 236 + inherited TBXAlignmentPanel2: TTBXAlignmentPanel + Width = 182 + Height = 98 + ExplicitWidth = 182 + ExplicitHeight = 98 + inherited Label3: TLabel + Width = 172 + end + inherited edtFechaFin: TcxDateEdit + Left = 74 + Top = 77 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 74 + ExplicitTop = 77 + ExplicitWidth = 99 + Width = 99 + end + inherited edtFechaIni: TcxDateEdit + Left = 76 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 76 + ExplicitWidth = 97 + Width = 97 + end + inherited cbPeriodo: TcxComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 170 + Width = 170 + end + end + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited TBXAlignmentPanel3: TTBXAlignmentPanel + Top = 136 + Width = 182 + ExplicitTop = 136 + ExplicitWidth = 182 + inherited Label4: TLabel + Width = 172 + end + inherited edtFechaVenFin: TcxDateEdit + Left = 76 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 76 + ExplicitWidth = 99 + Width = 99 + end + inherited edtFechaVenIni: TcxDateEdit + Left = 76 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 76 + ExplicitWidth = 97 + Width = 97 + end + inherited cbPeriodo2: TcxComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 170 + Width = 170 + end + end + end + inherited TBXDockablePanel1: TTBXDockablePanel + Top = 368 + TabOrder = 2 + ExplicitTop = 368 + ExplicitWidth = 188 + inherited TBXButton1: TTBXButton + AlignWithMargins = True + Left = 3 + Top = 3 + Width = 182 + Height = 37 + Margins.Left = 8 + Margins.Top = 8 + Margins.Right = 8 + Margins.Bottom = 8 + Align = alTop + ExplicitLeft = 3 + ExplicitTop = 3 + ExplicitWidth = 182 + ExplicitHeight = 37 + end + end + inline frViewFiltroImportes1: TfrViewFiltroImportes + Left = 0 + Top = 236 + Width = 188 + Height = 77 + Align = alTop + AutoSize = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 1 + ReadOnly = False + ExplicitTop = 236 + ExplicitWidth = 188 + ExplicitHeight = 77 + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 182 + ExplicitWidth = 182 + inherited eImporte: TcxSpinEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + end + end + inline frViewFiltroClientes1: TfrViewFiltroClientes + Left = 0 + Top = 313 + Width = 188 + Height = 146 + Align = alTop + AutoSize = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 313 + ExplicitWidth = 188 + ExplicitHeight = 146 + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited bElegirCliente: TBitBtn + Width = 108 + ExplicitWidth = 108 + end + inherited edtCliente: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 141 + Width = 141 + end + end + end + end +end diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasClienteReport.pas b/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasClienteReport.pas new file mode 100644 index 0000000..7aecd1b --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasClienteReport.pas @@ -0,0 +1,155 @@ +unit uEditorInformeFacturasClienteReport; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorPreview, frxExportText, frxExportRTF, frxExportMail, + frxExportXLS, frxExportImage, frxExportPDF, frxClass, frxDCtrl, frxGradient, + frxChBox, frxCross, frxRich, frxOLE, frxBarcode, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, + StdActns, ActnList, ComCtrls, JvExComCtrls, JvStatusBar, TB2ExtItems, + TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, + JvExControls, JvNavigationPane, uCustomView, + uViewBase, uViewPeriodoFechas, + uViewFiltroClientes, dxLayoutControl, cxControls, uViewFiltroImportes, + FactuGES_Intf, TBXDkPanels, uEditorInformeBase, + uIEditorInformeBase, uViewParametrosInforme, uIEditorInformeFacturasClienteReport; + +type + TfEditorInformeFacturasClienteReport = class(TfEditorInformeBase, IEditorInformeFacturasClienteReport) + TBXItem58: TTBXItem; + frViewPeriodoFechas1: TfrViewPeriodoFechas; + frViewFiltroImportes1: TfrViewFiltroImportes; + frViewFiltroClientes1: TfrViewFiltroClientes; + procedure actRefrescarExecute(Sender: TObject); + private + FListaIDClientes: TIntegerArray; + function GetFechaFin: Variant; + function GetFechaInicio: Variant; + function GetFechaVenFin: Variant; + function GetFechaVenInicio: Variant; + function GetListaIDClientes: TIntegerArray; + function GetImporteMinimo: Currency; + function GetDesglosadoCliente: Boolean; + + procedure RefrescarInforme; + + public + property FechaInicio: Variant read GetFechaInicio; + property FechaFin: Variant read GetFechaFin; + property FechaVenInicio: Variant read GetFechaVenInicio; + property FechaVenFin: Variant read GetFechaVenFin; + property ListaIDClientes: TIntegerArray read GetListaIDClientes; + property DesglosadoCliente: Boolean read GetDesglosadoCliente; + property ImporteMinimo: Currency read GetImporteMinimo; + + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + + +implementation + +{$R *.dfm} + +uses uROTypes, DateUtils, uGestorInformesController, uFactuGES_App; + +{ TfEditorGestorInformesReport } + +procedure TfEditorInformeFacturasClienteReport.actRefrescarExecute(Sender: TObject); +begin + inherited; + RefrescarInforme; +end; + +constructor TfEditorInformeFacturasClienteReport.Create(AOwner: TComponent); +begin + inherited; + FListaIDClientes := TIntegerArray.Create; +end; + +destructor TfEditorInformeFacturasClienteReport.Destroy; +begin + FListaIDClientes.Free; + inherited; +end; + +function TfEditorInformeFacturasClienteReport.GetDesglosadoCliente: Boolean; +begin + if frViewFiltroImportes1.cbxDesglosado.Enabled then + Result := frViewFiltroClientes1.cbxDesglosado.Checked + else + Result := False; +end; + +function TfEditorInformeFacturasClienteReport.GetFechaFin: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaFin.EditValue; + + //Esto es para quitar la hora del timestamp para que luego no me redondee al dia siguiente + if not VarIsNull(Result) then + Result := DateOf(frViewPeriodoFechas1.edtFechaFin.Date); +end; + +function TfEditorInformeFacturasClienteReport.GetFechaInicio: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaIni.EditValue; +end; + +function TfEditorInformeFacturasClienteReport.GetFechaVenFin: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaVenFin.EditValue; + + //Esto es para quitar la hora del timestamp para que luego no me redondee al dia siguiente + if not VarIsNull(Result) then + Result := DateOf(frViewPeriodoFechas1.edtFechaVenFin.Date); +end; + +function TfEditorInformeFacturasClienteReport.GetFechaVenInicio: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaVenIni.EditValue; +end; + +function TfEditorInformeFacturasClienteReport.GetImporteMinimo: Currency; +begin + if frViewFiltroImportes1.eImporte.Enabled then + Result := frViewFiltroImportes1.eImporte.Value + else + Result := 0; +end; + +function TfEditorInformeFacturasClienteReport.GetListaIDClientes: TIntegerArray; +begin + FListaIDClientes.Clear; + if Assigned(frViewFiltroClientes1.Cliente) then + FListaIDClientes.Add(frViewFiltroClientes1.Cliente.ID); + + Result := FListaIDClientes; +end; + +procedure TfEditorInformeFacturasClienteReport.RefrescarInforme; +var + AStream: Binary; +begin + ShowHourglassCursor; + try + AStream := (Controller as IGestorInformesController).DataModule.GenerarInformeListadoFacturasCli( + AppFactuGES.EmpresaActiva.ID, + FechaInicio, + FechaFin, + FechaVenInicio, + FechaVenFin, + ListaIDClientes, + DesglosadoCliente, + ImporteMinimo); + + LoadFromStream(AStream); + Report.ShowPreparedReport; + finally + FreeAndNil(AStream); + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasProveedorPendientesReport.dcu b/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasProveedorPendientesReport.dcu new file mode 100644 index 0000000..bc82de2 Binary files /dev/null and b/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasProveedorPendientesReport.dcu differ diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasProveedorPendientesReport.dfm b/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasProveedorPendientesReport.dfm new file mode 100644 index 0000000..255ae45 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasProveedorPendientesReport.dfm @@ -0,0 +1,238 @@ +inherited fEditorInformeFacturasProveedorPendientesReport: TfEditorInformeFacturasProveedorPendientesReport + Caption = 'fEditorInformeFacturasProveedorPendientesReport' + ClientHeight = 655 + ClientWidth = 895 + ExplicitWidth = 903 + ExplicitHeight = 689 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 895 + ExplicitWidth = 895 + inherited Image1: TImage + Left = 868 + ExplicitLeft = 868 + end + end + inherited TBXDock: TTBXDock + Width = 895 + ExplicitWidth = 895 + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 895 + end + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 591 + object TBXItem58: TTBXItem [0] + Action = actRefrescar + DisplayMode = nbdmImageAndText + Images = SmallImages + end + end + end + inherited StatusBar: TJvStatusBar + Top = 636 + Width = 895 + ExplicitTop = 636 + ExplicitWidth = 895 + end + inherited TBXMultiDockIzquierdo: TTBXMultiDock + Height = 534 + ExplicitHeight = 534 + end + inherited TBXMultiDockDerecho: TTBXMultiDock + Left = 703 + Width = 192 + Height = 534 + ExplicitLeft = 703 + ExplicitWidth = 192 + ExplicitHeight = 534 + inherited pnlParametros: TTBXDockablePanel + DockedWidth = 188 + ExplicitWidth = 192 + ExplicitHeight = 518 + inline frViewPeriodoFechas1: TfrViewPeriodoFechas [0] + Left = 0 + Top = 0 + Width = 188 + Height = 240 + Align = alTop + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 188 + ExplicitHeight = 240 + inherited TBXAlignmentPanel2: TTBXAlignmentPanel + Width = 182 + ExplicitWidth = 182 + inherited Label3: TLabel + Width = 172 + Caption = 'Rango de fechas de factura:' + ExplicitWidth = 138 + end + inherited edtFechaFin: TcxDateEdit + Left = 76 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 76 + ExplicitWidth = 97 + Width = 97 + end + inherited edtFechaIni: TcxDateEdit + Left = 76 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 76 + ExplicitWidth = 97 + Width = 97 + end + inherited cbPeriodo: TcxComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 170 + Width = 170 + end + end + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited TBXAlignmentPanel3: TTBXAlignmentPanel + Width = 182 + ExplicitWidth = 182 + inherited Label4: TLabel + Width = 172 + end + inherited edtFechaVenFin: TcxDateEdit + Left = 76 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 76 + ExplicitWidth = 97 + Width = 97 + end + inherited edtFechaVenIni: TcxDateEdit + Left = 76 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 76 + ExplicitWidth = 97 + Width = 97 + end + inherited cbPeriodo2: TcxComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 170 + Width = 170 + end + end + end + inherited TBXDockablePanel1: TTBXDockablePanel + Top = 368 + TabOrder = 2 + ExplicitTop = 368 + ExplicitWidth = 188 + inherited TBXButton1: TTBXButton + AlignWithMargins = True + Left = 3 + Top = 3 + Width = 182 + Height = 37 + Margins.Left = 8 + Margins.Top = 8 + Margins.Right = 8 + Margins.Bottom = 8 + Align = alTop + ExplicitLeft = 3 + ExplicitTop = 3 + ExplicitWidth = 182 + ExplicitHeight = 37 + end + end + inline frViewFiltroImportes1: TfrViewFiltroImportes + Left = 0 + Top = 240 + Width = 188 + Height = 77 + Align = alTop + AutoSize = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 1 + ReadOnly = False + ExplicitTop = 240 + ExplicitWidth = 188 + ExplicitHeight = 77 + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 182 + ExplicitWidth = 182 + inherited eImporte: TcxSpinEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + end + end + inline frViewFiltroProveedores1: TfrViewFiltroProveedores + Left = 0 + Top = 317 + Width = 188 + Height = 146 + Align = alTop + AutoSize = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 317 + ExplicitWidth = 188 + ExplicitHeight = 146 + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited bElegirProveedor: TBitBtn + Width = 108 + ExplicitWidth = 108 + end + inherited edtProveedor: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 141 + Width = 141 + end + end + end + end +end diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasProveedorPendientesReport.pas b/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasProveedorPendientesReport.pas new file mode 100644 index 0000000..052ac65 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasProveedorPendientesReport.pas @@ -0,0 +1,156 @@ +unit uEditorInformeFacturasProveedorPendientesReport; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorPreview, frxExportText, frxExportRTF, frxExportMail, + frxExportXLS, frxExportImage, frxExportPDF, frxClass, frxDCtrl, frxGradient, + frxChBox, frxCross, frxRich, frxOLE, frxBarcode, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, + StdActns, ActnList, ComCtrls, JvExComCtrls, JvStatusBar, TB2ExtItems, + TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, + JvExControls, JvNavigationPane, uCustomView, + uViewBase, uViewPeriodoFechas, + uViewFiltroProveedores, dxLayoutControl, cxControls, uViewFiltroImportes, + FactuGES_Intf, TBXDkPanels, uEditorInformeBase, + uIEditorInformeBase, uViewParametrosInforme, + uIEditorInformeFacturasProveedorPendientesReport; + +type + TfEditorInformeFacturasProveedorPendientesReport = class(TfEditorInformeBase, IEditorInformeFacturasProveedorPendientesReport) + TBXItem58: TTBXItem; + frViewPeriodoFechas1: TfrViewPeriodoFechas; + frViewFiltroImportes1: TfrViewFiltroImportes; + frViewFiltroProveedores1: TfrViewFiltroProveedores; + procedure actRefrescarExecute(Sender: TObject); + private + FListaIDProveedores: TIntegerArray; + function GetFechaFin: Variant; + function GetFechaInicio: Variant; + function GetFechaVenFin: Variant; + function GetFechaVenInicio: Variant; + function GetListaIDProveedores: TIntegerArray; + function GetImporteMinimo: Currency; + function GetDesglosadoProveedor: Boolean; + + procedure RefrescarInforme; + + public + property FechaInicio: Variant read GetFechaInicio; + property FechaFin: Variant read GetFechaFin; + property FechaVenInicio: Variant read GetFechaVenInicio; + property FechaVenFin: Variant read GetFechaVenFin; + property ListaIDProveedores: TIntegerArray read GetListaIDProveedores; + property DesglosadoProveedor: Boolean read GetDesglosadoProveedor; + property ImporteMinimo: Currency read GetImporteMinimo; + + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + + +implementation + +{$R *.dfm} + +uses uROTypes, DateUtils, uGestorInformesController, uFactuGES_App; + +{ TfEditorGestorInformesReport } + +procedure TfEditorInformeFacturasProveedorPendientesReport.actRefrescarExecute(Sender: TObject); +begin + inherited; + RefrescarInforme; +end; + +constructor TfEditorInformeFacturasProveedorPendientesReport.Create(AOwner: TComponent); +begin + inherited; + FListaIDProveedores := TIntegerArray.Create; +end; + +destructor TfEditorInformeFacturasProveedorPendientesReport.Destroy; +begin + FListaIDProveedores.Free; + inherited; +end; + +function TfEditorInformeFacturasProveedorPendientesReport.GetDesglosadoProveedor: Boolean; +begin + if (frViewFiltroProveedores1.cbxDesglosado.Enabled) then + Result := frViewFiltroProveedores1.cbxDesglosado.Checked + else + Result := False; +end; + +function TfEditorInformeFacturasProveedorPendientesReport.GetFechaFin: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaFin.EditValue; + + //Esto es para quitar la hora del timestamp para que luego no me redondee al dia siguiente + if not VarIsNull(Result) then + Result := DateOf(frViewPeriodoFechas1.edtFechaFin.Date); +end; + +function TfEditorInformeFacturasProveedorPendientesReport.GetFechaInicio: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaIni.EditValue; +end; + +function TfEditorInformeFacturasProveedorPendientesReport.GetFechaVenFin: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaVenFin.EditValue; + + //Esto es para quitar la hora del timestamp para que luego no me redondee al dia siguiente + if not VarIsNull(Result) then + Result := DateOf(frViewPeriodoFechas1.edtFechaVenFin.Date); +end; + +function TfEditorInformeFacturasProveedorPendientesReport.GetFechaVenInicio: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaVenIni.EditValue; +end; + +function TfEditorInformeFacturasProveedorPendientesReport.GetImporteMinimo: Currency; +begin + if frViewFiltroImportes1.eImporte.Enabled then + Result := frViewFiltroImportes1.eImporte.Value + else + Result := 0; +end; + +function TfEditorInformeFacturasProveedorPendientesReport.GetListaIDProveedores: TIntegerArray; +begin + FListaIDProveedores.Clear; + if Assigned(frViewFiltroProveedores1.Proveedor) then + FListaIDProveedores.Add(frViewFiltroProveedores1.Proveedor.ID); + + Result := FListaIDProveedores; +end; + +procedure TfEditorInformeFacturasProveedorPendientesReport.RefrescarInforme; +var + AStream: Binary; +begin + ShowHourglassCursor; + try + AStream := (Controller as IGestorInformesController).DataModule.GenerarInformeListadoFacturasProvPendientes( + AppFactuGES.EmpresaActiva.ID, + FechaInicio, + FechaFin, + FechaVenInicio, + FechaVenFin, + ListaIDProveedores, + DesglosadoProveedor, + ImporteMinimo); + + LoadFromStream(AStream); + Report.ShowPreparedReport; + finally + FreeAndNil(AStream); + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasProveedorReport.dcu b/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasProveedorReport.dcu new file mode 100644 index 0000000..134720d Binary files /dev/null and b/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasProveedorReport.dcu differ diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasProveedorReport.dfm b/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasProveedorReport.dfm new file mode 100644 index 0000000..47bbbde --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasProveedorReport.dfm @@ -0,0 +1,236 @@ +inherited fEditorInformeFacturasProveedorReport: TfEditorInformeFacturasProveedorReport + Caption = 'fEditorInformeFacturasProveedorReport' + ClientHeight = 655 + ClientWidth = 895 + ExplicitWidth = 903 + ExplicitHeight = 689 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 895 + ExplicitWidth = 895 + inherited Image1: TImage + Left = 868 + ExplicitLeft = 868 + end + end + inherited TBXDock: TTBXDock + Width = 895 + ExplicitWidth = 895 + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 895 + end + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 591 + object TBXItem58: TTBXItem [0] + Action = actRefrescar + DisplayMode = nbdmImageAndText + Images = SmallImages + end + end + end + inherited StatusBar: TJvStatusBar + Top = 636 + Width = 895 + ExplicitTop = 636 + ExplicitWidth = 895 + end + inherited TBXMultiDockIzquierdo: TTBXMultiDock + Height = 534 + ExplicitHeight = 534 + end + inherited TBXMultiDockDerecho: TTBXMultiDock + Left = 703 + Width = 192 + Height = 534 + ExplicitLeft = 703 + ExplicitWidth = 192 + ExplicitHeight = 534 + inherited pnlParametros: TTBXDockablePanel + DockedWidth = 188 + ExplicitWidth = 192 + ExplicitHeight = 518 + inline frViewPeriodoFechas1: TfrViewPeriodoFechas [0] + Left = 0 + Top = 0 + Width = 188 + Height = 240 + Align = alTop + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 188 + ExplicitHeight = 240 + inherited TBXAlignmentPanel2: TTBXAlignmentPanel + Width = 182 + ExplicitWidth = 182 + inherited Label3: TLabel + Width = 172 + end + inherited edtFechaFin: TcxDateEdit + Left = 77 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 77 + ExplicitWidth = 96 + Width = 96 + end + inherited edtFechaIni: TcxDateEdit + Left = 76 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 76 + ExplicitWidth = 97 + Width = 97 + end + inherited cbPeriodo: TcxComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 170 + Width = 170 + end + end + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited TBXAlignmentPanel3: TTBXAlignmentPanel + Width = 182 + ExplicitWidth = 182 + inherited Label4: TLabel + Width = 172 + end + inherited edtFechaVenFin: TcxDateEdit + Left = 77 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 77 + ExplicitWidth = 96 + Width = 96 + end + inherited edtFechaVenIni: TcxDateEdit + Left = 76 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 76 + ExplicitWidth = 97 + Width = 97 + end + inherited cbPeriodo2: TcxComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 170 + Width = 170 + end + end + end + inherited TBXDockablePanel1: TTBXDockablePanel + Top = 368 + TabOrder = 2 + ExplicitTop = 368 + ExplicitWidth = 188 + inherited TBXButton1: TTBXButton + AlignWithMargins = True + Left = 3 + Top = 3 + Width = 182 + Height = 37 + Margins.Left = 8 + Margins.Top = 8 + Margins.Right = 8 + Margins.Bottom = 8 + Align = alTop + ExplicitLeft = 3 + ExplicitTop = 3 + ExplicitWidth = 182 + ExplicitHeight = 37 + end + end + inline frViewFiltroImportes1: TfrViewFiltroImportes + Left = 0 + Top = 240 + Width = 188 + Height = 77 + Align = alTop + AutoSize = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 1 + ReadOnly = False + ExplicitTop = 240 + ExplicitWidth = 188 + ExplicitHeight = 77 + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 182 + ExplicitWidth = 182 + inherited eImporte: TcxSpinEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + end + end + inline frViewFiltroProveedores1: TfrViewFiltroProveedores + Left = 0 + Top = 317 + Width = 188 + Height = 146 + Align = alTop + AutoSize = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 317 + ExplicitWidth = 188 + ExplicitHeight = 146 + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited bElegirProveedor: TBitBtn + Width = 108 + ExplicitWidth = 108 + end + inherited edtProveedor: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 141 + Width = 141 + end + end + end + end +end diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasProveedorReport.pas b/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasProveedorReport.pas new file mode 100644 index 0000000..62408cd --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasProveedorReport.pas @@ -0,0 +1,155 @@ +unit uEditorInformeFacturasProveedorReport; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorPreview, frxExportText, frxExportRTF, frxExportMail, + frxExportXLS, frxExportImage, frxExportPDF, frxClass, frxDCtrl, frxGradient, + frxChBox, frxCross, frxRich, frxOLE, frxBarcode, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, + StdActns, ActnList, ComCtrls, JvExComCtrls, JvStatusBar, TB2ExtItems, + TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, + JvExControls, JvNavigationPane, uCustomView, + uViewBase, uViewPeriodoFechas, + uViewFiltroProveedores, dxLayoutControl, cxControls, uViewFiltroImportes, + FactuGES_Intf, TBXDkPanels, uEditorInformeBase, + uIEditorInformeBase, uViewParametrosInforme, uIEditorInformeFacturasProveedorReport; + +type + TfEditorInformeFacturasProveedorReport = class(TfEditorInformeBase, IEditorInformeFacturasProveedorReport) + TBXItem58: TTBXItem; + frViewPeriodoFechas1: TfrViewPeriodoFechas; + frViewFiltroImportes1: TfrViewFiltroImportes; + frViewFiltroProveedores1: TfrViewFiltroProveedores; + procedure actRefrescarExecute(Sender: TObject); + private + FListaIDProveedores: TIntegerArray; + function GetFechaFin: Variant; + function GetFechaInicio: Variant; + function GetFechaVenFin: Variant; + function GetFechaVenInicio: Variant; + function GetListaIDProveedores: TIntegerArray; + function GetImporteMinimo: Currency; + function GetDesglosadoProveedor: Boolean; + + procedure RefrescarInforme; + + public + property FechaInicio: Variant read GetFechaInicio; + property FechaFin: Variant read GetFechaFin; + property FechaVenInicio: Variant read GetFechaVenInicio; + property FechaVenFin: Variant read GetFechaVenFin; + property ListaIDProveedores: TIntegerArray read GetListaIDProveedores; + property DesglosadoProveedor: Boolean read GetDesglosadoProveedor; + property ImporteMinimo: Currency read GetImporteMinimo; + + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + + +implementation + +{$R *.dfm} + +uses uROTypes, DateUtils, uGestorInformesController, uFactuGES_App; + +{ TfEditorGestorInformesReport } + +procedure TfEditorInformeFacturasProveedorReport.actRefrescarExecute(Sender: TObject); +begin + inherited; + RefrescarInforme; +end; + +constructor TfEditorInformeFacturasProveedorReport.Create(AOwner: TComponent); +begin + inherited; + FListaIDProveedores := TIntegerArray.Create; +end; + +destructor TfEditorInformeFacturasProveedorReport.Destroy; +begin + FListaIDProveedores.Free; + inherited; +end; + +function TfEditorInformeFacturasProveedorReport.GetDesglosadoProveedor: Boolean; +begin + if frViewFiltroImportes1.cbxDesglosado.Enabled then + Result := frViewFiltroProveedores1.cbxDesglosado.Checked + else + Result := False; +end; + +function TfEditorInformeFacturasProveedorReport.GetFechaFin: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaFin.EditValue; + + //Esto es para quitar la hora del timestamp para que luego no me redondee al dia siguiente + if not VarIsNull(Result) then + Result := DateOf(frViewPeriodoFechas1.edtFechaFin.Date); +end; + +function TfEditorInformeFacturasProveedorReport.GetFechaInicio: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaIni.EditValue; +end; + +function TfEditorInformeFacturasProveedorReport.GetFechaVenFin: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaVenFin.EditValue; + + //Esto es para quitar la hora del timestamp para que luego no me redondee al dia siguiente + if not VarIsNull(Result) then + Result := DateOf(frViewPeriodoFechas1.edtFechaVenFin.Date); +end; + +function TfEditorInformeFacturasProveedorReport.GetFechaVenInicio: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaVenIni.EditValue; +end; + +function TfEditorInformeFacturasProveedorReport.GetImporteMinimo: Currency; +begin + if frViewFiltroImportes1.eImporte.Enabled then + Result := frViewFiltroImportes1.eImporte.Value + else + Result := 0; +end; + +function TfEditorInformeFacturasProveedorReport.GetListaIDProveedores: TIntegerArray; +begin + FListaIDProveedores.Clear; + if Assigned(frViewFiltroProveedores1.Proveedor) then + FListaIDProveedores.Add(frViewFiltroProveedores1.Proveedor.ID); + + Result := FListaIDProveedores; +end; + +procedure TfEditorInformeFacturasProveedorReport.RefrescarInforme; +var + AStream: Binary; +begin + ShowHourglassCursor; + try + AStream := (Controller as IGestorInformesController).DataModule.GenerarInformeListadoFacturasProv( + AppFactuGES.EmpresaActiva.ID, + FechaInicio, + FechaFin, + FechaVenInicio, + FechaVenFin, + ListaIDProveedores, + DesglosadoProveedor, + ImporteMinimo); + + LoadFromStream(AStream); + Report.ShowPreparedReport; + finally + FreeAndNil(AStream); + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeIVAClientesReport.dcu b/Source/Modulos/Gestor de informes/Views/uEditorInformeIVAClientesReport.dcu new file mode 100644 index 0000000..b81c15c Binary files /dev/null and b/Source/Modulos/Gestor de informes/Views/uEditorInformeIVAClientesReport.dcu differ diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeIVAClientesReport.dfm b/Source/Modulos/Gestor de informes/Views/uEditorInformeIVAClientesReport.dfm new file mode 100644 index 0000000..ac518a1 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeIVAClientesReport.dfm @@ -0,0 +1,231 @@ +inherited fEditorInformeIVAClientesReport: TfEditorInformeIVAClientesReport + Caption = 'fEditorInformeIVAClientesReport' + ClientHeight = 655 + ClientWidth = 895 + ExplicitWidth = 903 + ExplicitHeight = 689 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 895 + ExplicitWidth = 895 + inherited Image1: TImage + Left = 868 + ExplicitLeft = 868 + end + end + inherited TBXDock: TTBXDock + Width = 895 + ExplicitWidth = 895 + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 895 + end + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 591 + object TBXItem58: TTBXItem [0] + Action = actRefrescar + DisplayMode = nbdmImageAndText + Images = SmallImages + end + end + end + inherited StatusBar: TJvStatusBar + Top = 636 + Width = 895 + ExplicitTop = 636 + ExplicitWidth = 895 + end + inherited TBXMultiDockIzquierdo: TTBXMultiDock + Height = 534 + ExplicitHeight = 534 + end + inherited TBXMultiDockDerecho: TTBXMultiDock + Left = 703 + Width = 192 + Height = 534 + ExplicitLeft = 703 + ExplicitWidth = 192 + ExplicitHeight = 534 + inherited pnlParametros: TTBXDockablePanel + DockedWidth = 188 + ExplicitWidth = 192 + ExplicitHeight = 518 + inline frViewPeriodoFechas1: TfrViewPeriodoFechas [0] + Left = 0 + Top = 0 + Width = 188 + Height = 136 + Align = alTop + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 188 + ExplicitHeight = 136 + inherited TBXAlignmentPanel2: TTBXAlignmentPanel + Width = 182 + ExplicitWidth = 182 + inherited Label3: TLabel + Width = 172 + end + inherited edtFechaFin: TcxDateEdit + Left = 77 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 77 + ExplicitWidth = 96 + Width = 96 + end + inherited edtFechaIni: TcxDateEdit + Left = 76 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 76 + ExplicitWidth = 97 + Width = 97 + end + inherited cbPeriodo: TcxComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 170 + Width = 170 + end + end + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited TBXAlignmentPanel3: TTBXAlignmentPanel + Width = 182 + Visible = False + ExplicitWidth = 182 + inherited Label4: TLabel + Width = 172 + end + inherited edtFechaVenFin: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 99 + Width = 99 + end + inherited edtFechaVenIni: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 97 + Width = 97 + end + inherited cbPeriodo2: TcxComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + end + end + inherited TBXDockablePanel1: TTBXDockablePanel + Top = 368 + TabOrder = 2 + ExplicitTop = 368 + ExplicitWidth = 188 + inherited TBXButton1: TTBXButton + AlignWithMargins = True + Left = 3 + Top = 3 + Width = 182 + Height = 37 + Margins.Left = 8 + Margins.Top = 8 + Margins.Right = 8 + Margins.Bottom = 8 + Align = alTop + ExplicitLeft = 3 + ExplicitTop = 3 + ExplicitWidth = 182 + ExplicitHeight = 37 + end + end + inline frViewFiltroImportes1: TfrViewFiltroImportes + Left = 0 + Top = 136 + Width = 188 + Height = 77 + Align = alTop + AutoSize = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 1 + ReadOnly = False + ExplicitTop = 136 + ExplicitWidth = 188 + ExplicitHeight = 77 + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 182 + ExplicitWidth = 182 + inherited eImporte: TcxSpinEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + end + end + inline frViewFiltroClientes1: TfrViewFiltroClientes + Left = 0 + Top = 213 + Width = 188 + Height = 146 + Align = alTop + AutoSize = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 213 + ExplicitWidth = 188 + ExplicitHeight = 146 + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited bElegirCliente: TBitBtn + Width = 108 + ExplicitWidth = 108 + end + inherited edtCliente: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 141 + Width = 141 + end + end + end + end +end diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeIVAClientesReport.pas b/Source/Modulos/Gestor de informes/Views/uEditorInformeIVAClientesReport.pas new file mode 100644 index 0000000..66212af --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeIVAClientesReport.pas @@ -0,0 +1,135 @@ +unit uEditorInformeIVAClientesReport; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorPreview, frxExportText, frxExportRTF, frxExportMail, + frxExportXLS, frxExportImage, frxExportPDF, frxClass, frxDCtrl, frxGradient, + frxChBox, frxCross, frxRich, frxOLE, frxBarcode, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, + StdActns, ActnList, ComCtrls, JvExComCtrls, JvStatusBar, TB2ExtItems, + TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, + JvExControls, JvNavigationPane, uCustomView, + uViewBase, uViewPeriodoFechas, + uViewFiltroClientes, dxLayoutControl, cxControls, uViewFiltroImportes, + FactuGES_Intf, TBXDkPanels, uEditorInformeBase, + uIEditorInformeBase, uViewParametrosInforme, uIEditorInformeIVAClientesReport; + +type + TfEditorInformeIVAClientesReport = class(TfEditorInformeBase, IEditorInformeIVAClientesReport) + TBXItem58: TTBXItem; + frViewPeriodoFechas1: TfrViewPeriodoFechas; + frViewFiltroImportes1: TfrViewFiltroImportes; + frViewFiltroClientes1: TfrViewFiltroClientes; + procedure actRefrescarExecute(Sender: TObject); + private + FListaIDClientes: TIntegerArray; + function GetFechaFin: Variant; + function GetFechaInicio: Variant; + function GetListaIDClientes: TIntegerArray; + function GetImporteMinimo: Currency; + function GetDesglosadoCliente: Boolean; + + procedure RefrescarInforme; + + public + property FechaInicio: Variant read GetFechaInicio; + property FechaFin: Variant read GetFechaFin; + property ListaIDClientes: TIntegerArray read GetListaIDClientes; + property DesglosadoCliente: Boolean read GetDesglosadoCliente; + property ImporteMinimo: Currency read GetImporteMinimo; + + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + + +implementation + +{$R *.dfm} + +uses uROTypes, DateUtils, uGestorInformesController, uFactuGES_App; + +{ TfEditorGestorInformesReport } + +procedure TfEditorInformeIVAClientesReport.actRefrescarExecute(Sender: TObject); +begin + inherited; + RefrescarInforme; +end; + +constructor TfEditorInformeIVAClientesReport.Create(AOwner: TComponent); +begin + inherited; + FListaIDClientes := TIntegerArray.Create; +end; + +destructor TfEditorInformeIVAClientesReport.Destroy; +begin + FListaIDClientes.Free; + inherited; +end; + +function TfEditorInformeIVAClientesReport.GetDesglosadoCliente: Boolean; +begin + if frViewFiltroImportes1.cbxDesglosado.Enabled then + Result := frViewFiltroClientes1.cbxDesglosado.Checked + else + Result := False; +end; + +function TfEditorInformeIVAClientesReport.GetFechaFin: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaFin.EditValue; + + //Esto es para quitar la hora del timestamp para que luego no me redondee al dia siguiente + if not VarIsNull(Result) then + Result := DateOf(frViewPeriodoFechas1.edtFechaFin.Date); +end; + +function TfEditorInformeIVAClientesReport.GetFechaInicio: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaIni.EditValue; +end; + +function TfEditorInformeIVAClientesReport.GetImporteMinimo: Currency; +begin + if frViewFiltroImportes1.eImporte.Enabled then + Result := frViewFiltroImportes1.eImporte.Value + else + Result := 0; +end; + +function TfEditorInformeIVAClientesReport.GetListaIDClientes: TIntegerArray; +begin + FListaIDClientes.Clear; + if Assigned(frViewFiltroClientes1.Cliente) then + FListaIDClientes.Add(frViewFiltroClientes1.Cliente.ID); + + Result := FListaIDClientes; +end; + +procedure TfEditorInformeIVAClientesReport.RefrescarInforme; +var + AStream: Binary; +begin + ShowHourglassCursor; + try + AStream := (Controller as IGestorInformesController).DataModule.GenerarInformeIVAClientes( + AppFactuGES.EmpresaActiva.ID, + FechaInicio, + FechaFin, + ListaIDClientes, + DesglosadoCliente, + ImporteMinimo); + + LoadFromStream(AStream); + Report.ShowPreparedReport; + finally + FreeAndNil(AStream); + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeIVAProveedoresReport.dcu b/Source/Modulos/Gestor de informes/Views/uEditorInformeIVAProveedoresReport.dcu new file mode 100644 index 0000000..27a5d28 Binary files /dev/null and b/Source/Modulos/Gestor de informes/Views/uEditorInformeIVAProveedoresReport.dcu differ diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeIVAProveedoresReport.dfm b/Source/Modulos/Gestor de informes/Views/uEditorInformeIVAProveedoresReport.dfm new file mode 100644 index 0000000..1ebea35 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeIVAProveedoresReport.dfm @@ -0,0 +1,231 @@ +inherited fEditorInformeIVAProveedoresReport: TfEditorInformeIVAProveedoresReport + Caption = 'fEditorInformeIVAProveedoresReport' + ClientHeight = 655 + ClientWidth = 895 + ExplicitWidth = 903 + ExplicitHeight = 689 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 895 + ExplicitWidth = 895 + inherited Image1: TImage + Left = 868 + ExplicitLeft = 868 + end + end + inherited TBXDock: TTBXDock + Width = 895 + ExplicitWidth = 895 + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 895 + end + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 591 + object TBXItem58: TTBXItem [0] + Action = actRefrescar + DisplayMode = nbdmImageAndText + Images = SmallImages + end + end + end + inherited StatusBar: TJvStatusBar + Top = 636 + Width = 895 + ExplicitTop = 636 + ExplicitWidth = 895 + end + inherited TBXMultiDockIzquierdo: TTBXMultiDock + Height = 534 + ExplicitHeight = 534 + end + inherited TBXMultiDockDerecho: TTBXMultiDock + Left = 703 + Width = 192 + Height = 534 + ExplicitLeft = 703 + ExplicitWidth = 192 + ExplicitHeight = 534 + inherited pnlParametros: TTBXDockablePanel + DockedWidth = 188 + ExplicitWidth = 192 + ExplicitHeight = 518 + inline frViewPeriodoFechas1: TfrViewPeriodoFechas [0] + Left = 0 + Top = 0 + Width = 188 + Height = 136 + Align = alTop + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 188 + ExplicitHeight = 136 + inherited TBXAlignmentPanel2: TTBXAlignmentPanel + Width = 182 + ExplicitWidth = 182 + inherited Label3: TLabel + Width = 172 + end + inherited edtFechaFin: TcxDateEdit + Left = 76 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 76 + ExplicitWidth = 97 + Width = 97 + end + inherited edtFechaIni: TcxDateEdit + Left = 76 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 76 + ExplicitWidth = 97 + Width = 97 + end + inherited cbPeriodo: TcxComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 170 + Width = 170 + end + end + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited TBXAlignmentPanel3: TTBXAlignmentPanel + Width = 182 + Visible = False + ExplicitWidth = 182 + inherited Label4: TLabel + Width = 172 + end + inherited edtFechaVenFin: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 99 + Width = 99 + end + inherited edtFechaVenIni: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 97 + Width = 97 + end + inherited cbPeriodo2: TcxComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + end + end + inherited TBXDockablePanel1: TTBXDockablePanel + Top = 368 + TabOrder = 2 + ExplicitTop = 368 + ExplicitWidth = 188 + inherited TBXButton1: TTBXButton + AlignWithMargins = True + Left = 3 + Top = 3 + Width = 182 + Height = 37 + Margins.Left = 8 + Margins.Top = 8 + Margins.Right = 8 + Margins.Bottom = 8 + Align = alTop + ExplicitLeft = 3 + ExplicitTop = 3 + ExplicitWidth = 182 + ExplicitHeight = 37 + end + end + inline frViewFiltroImportes1: TfrViewFiltroImportes + Left = 0 + Top = 136 + Width = 188 + Height = 77 + Align = alTop + AutoSize = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 1 + ReadOnly = False + ExplicitTop = 136 + ExplicitWidth = 188 + ExplicitHeight = 77 + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 182 + ExplicitWidth = 182 + inherited eImporte: TcxSpinEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + end + end + inline frViewFiltroProveedores1: TfrViewFiltroProveedores + Left = 0 + Top = 213 + Width = 188 + Height = 146 + Align = alTop + AutoSize = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 213 + ExplicitWidth = 188 + ExplicitHeight = 146 + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited bElegirProveedor: TBitBtn + Width = 108 + ExplicitWidth = 108 + end + inherited edtProveedor: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 141 + Width = 141 + end + end + end + end +end diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeIVAProveedoresReport.pas b/Source/Modulos/Gestor de informes/Views/uEditorInformeIVAProveedoresReport.pas new file mode 100644 index 0000000..0c868db --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeIVAProveedoresReport.pas @@ -0,0 +1,135 @@ +unit uEditorInformeIVAProveedoresReport; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorPreview, frxExportText, frxExportRTF, frxExportMail, + frxExportXLS, frxExportImage, frxExportPDF, frxClass, frxDCtrl, frxGradient, + frxChBox, frxCross, frxRich, frxOLE, frxBarcode, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, + StdActns, ActnList, ComCtrls, JvExComCtrls, JvStatusBar, TB2ExtItems, + TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, + JvExControls, JvNavigationPane, uCustomView, + uViewBase, uViewPeriodoFechas, + uViewFiltroProveedores, dxLayoutControl, cxControls, uViewFiltroImportes, + FactuGES_Intf, TBXDkPanels, uEditorInformeBase, + uIEditorInformeBase, uViewParametrosInforme, uIEditorInformeIVAProveedoresReport; + +type + TfEditorInformeIVAProveedoresReport = class(TfEditorInformeBase, IEditorInformeIVAProveedoresReport) + TBXItem58: TTBXItem; + frViewPeriodoFechas1: TfrViewPeriodoFechas; + frViewFiltroImportes1: TfrViewFiltroImportes; + frViewFiltroProveedores1: TfrViewFiltroProveedores; + procedure actRefrescarExecute(Sender: TObject); + private + FListaIDProveedores: TIntegerArray; + function GetFechaFin: Variant; + function GetFechaInicio: Variant; + function GetListaIDProveedores: TIntegerArray; + function GetImporteMinimo: Currency; + function GetDesglosadoProveedor: Boolean; + + procedure RefrescarInforme; + + public + property FechaInicio: Variant read GetFechaInicio; + property FechaFin: Variant read GetFechaFin; + property ListaIDProveedores: TIntegerArray read GetListaIDProveedores; + property DesglosadoProveedor: Boolean read GetDesglosadoProveedor; + property ImporteMinimo: Currency read GetImporteMinimo; + + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + + +implementation + +{$R *.dfm} + +uses uROTypes, DateUtils, uGestorInformesController, uFactuGES_App; + +{ TfEditorGestorInformesReport } + +procedure TfEditorInformeIVAProveedoresReport.actRefrescarExecute(Sender: TObject); +begin + inherited; + RefrescarInforme; +end; + +constructor TfEditorInformeIVAProveedoresReport.Create(AOwner: TComponent); +begin + inherited; + FListaIDProveedores := TIntegerArray.Create; +end; + +destructor TfEditorInformeIVAProveedoresReport.Destroy; +begin + FListaIDProveedores.Free; + inherited; +end; + +function TfEditorInformeIVAProveedoresReport.GetDesglosadoProveedor: Boolean; +begin + if frViewFiltroImportes1.cbxDesglosado.Enabled then + Result := frViewFiltroProveedores1.cbxDesglosado.Checked + else + Result := False; +end; + +function TfEditorInformeIVAProveedoresReport.GetFechaFin: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaFin.EditValue; + + //Esto es para quitar la hora del timestamp para que luego no me redondee al dia siguiente + if not VarIsNull(Result) then + Result := DateOf(frViewPeriodoFechas1.edtFechaFin.Date); +end; + +function TfEditorInformeIVAProveedoresReport.GetFechaInicio: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaIni.EditValue; +end; + +function TfEditorInformeIVAProveedoresReport.GetImporteMinimo: Currency; +begin + if frViewFiltroImportes1.eImporte.Enabled then + Result := frViewFiltroImportes1.eImporte.Value + else + Result := 0; +end; + +function TfEditorInformeIVAProveedoresReport.GetListaIDProveedores: TIntegerArray; +begin + FListaIDProveedores.Clear; + if Assigned(frViewFiltroProveedores1.Proveedor) then + FListaIDProveedores.Add(frViewFiltroProveedores1.Proveedor.ID); + + Result := FListaIDProveedores; +end; + +procedure TfEditorInformeIVAProveedoresReport.RefrescarInforme; +var + AStream: Binary; +begin + ShowHourglassCursor; + try + AStream := (Controller as IGestorInformesController).DataModule.GenerarInformeIVAProveedores( + AppFactuGES.EmpresaActiva.ID, + FechaInicio, + FechaFin, + ListaIDProveedores, + DesglosadoProveedor, + ImporteMinimo); + + LoadFromStream(AStream); + Report.ShowPreparedReport; + finally + FreeAndNil(AStream); + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformePedidosReport.dcu b/Source/Modulos/Gestor de informes/Views/uEditorInformePedidosReport.dcu new file mode 100644 index 0000000..c9a1929 Binary files /dev/null and b/Source/Modulos/Gestor de informes/Views/uEditorInformePedidosReport.dcu differ diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformePedidosReport.dfm b/Source/Modulos/Gestor de informes/Views/uEditorInformePedidosReport.dfm new file mode 100644 index 0000000..fe249df --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uEditorInformePedidosReport.dfm @@ -0,0 +1,235 @@ +inherited fEditorInformePedidosReport: TfEditorInformePedidosReport + Caption = 'fEditorInformePedidosReport' + ClientHeight = 655 + ClientWidth = 895 + ExplicitWidth = 903 + ExplicitHeight = 689 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 895 + ExplicitWidth = 895 + inherited Image1: TImage + Left = 868 + ExplicitLeft = 868 + end + end + inherited TBXDock: TTBXDock + Width = 895 + ExplicitWidth = 895 + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 895 + end + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 591 + object TBXItem58: TTBXItem [0] + Action = actRefrescar + DisplayMode = nbdmImageAndText + Images = SmallImages + end + end + end + inherited StatusBar: TJvStatusBar + Top = 636 + Width = 895 + ExplicitTop = 636 + ExplicitWidth = 895 + end + inherited TBXMultiDockIzquierdo: TTBXMultiDock + Height = 534 + ExplicitHeight = 534 + end + inherited TBXMultiDockDerecho: TTBXMultiDock + Left = 703 + Width = 192 + Height = 534 + ExplicitLeft = 703 + ExplicitWidth = 192 + ExplicitHeight = 534 + inherited pnlParametros: TTBXDockablePanel + DockedWidth = 188 + ExplicitWidth = 192 + ExplicitHeight = 518 + inline frViewPeriodoFechas1: TfrViewPeriodoFechas [0] + Left = 0 + Top = 0 + Width = 188 + Height = 136 + Align = alTop + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 188 + ExplicitHeight = 136 + inherited TBXAlignmentPanel2: TTBXAlignmentPanel + Width = 182 + ExplicitWidth = 182 + inherited Label3: TLabel + Width = 172 + end + inherited edtFechaFin: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 99 + Width = 99 + end + inherited edtFechaIni: TcxDateEdit + Left = 69 + Top = 48 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 69 + ExplicitTop = 48 + ExplicitWidth = 100 + Width = 100 + end + inherited cbPeriodo: TcxComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 166 + Width = 166 + end + end + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited TBXAlignmentPanel3: TTBXAlignmentPanel + Width = 182 + ExplicitWidth = 182 + inherited Label4: TLabel + Width = 172 + end + inherited edtFechaVenFin: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 99 + Width = 99 + end + inherited edtFechaVenIni: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 97 + Width = 97 + end + inherited cbPeriodo2: TcxComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 166 + Width = 166 + end + end + end + inherited TBXDockablePanel1: TTBXDockablePanel + Top = 368 + TabOrder = 2 + ExplicitTop = 368 + ExplicitWidth = 188 + inherited TBXButton1: TTBXButton + AlignWithMargins = True + Left = 3 + Top = 3 + Width = 182 + Height = 37 + Margins.Left = 8 + Margins.Top = 8 + Margins.Right = 8 + Margins.Bottom = 8 + Align = alTop + ExplicitLeft = 3 + ExplicitTop = 3 + ExplicitWidth = 182 + ExplicitHeight = 37 + end + end + inline frViewFiltroImportes1: TfrViewFiltroImportes + Left = 0 + Top = 136 + Width = 188 + Height = 77 + Align = alTop + AutoSize = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 1 + ReadOnly = False + ExplicitTop = 136 + ExplicitWidth = 188 + ExplicitHeight = 77 + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 182 + ExplicitWidth = 182 + inherited cbxDesglosado: TCheckBox + Caption = 'Solo pedidos que superen:' + end + inherited eImporte: TcxSpinEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + end + end + inline frViewFiltroProveedores1: TfrViewFiltroProveedores + Left = 0 + Top = 213 + Width = 188 + Height = 146 + Align = alTop + AutoSize = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 213 + ExplicitWidth = 188 + ExplicitHeight = 146 + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited bElegirProveedor: TBitBtn + Width = 108 + ExplicitWidth = 108 + end + inherited edtProveedor: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 141 + Width = 141 + end + end + end + end +end diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformePedidosReport.pas b/Source/Modulos/Gestor de informes/Views/uEditorInformePedidosReport.pas new file mode 100644 index 0000000..a16b1c4 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uEditorInformePedidosReport.pas @@ -0,0 +1,135 @@ +unit uEditorInformePedidosReport; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorPreview, frxExportText, frxExportRTF, frxExportMail, + frxExportXLS, frxExportImage, frxExportPDF, frxClass, frxDCtrl, frxGradient, + frxChBox, frxCross, frxRich, frxOLE, frxBarcode, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, + StdActns, ActnList, ComCtrls, JvExComCtrls, JvStatusBar, TB2ExtItems, + TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, + JvExControls, JvNavigationPane, uCustomView, + uViewBase, uViewPeriodoFechas, + uViewFiltroProveedores, dxLayoutControl, cxControls, uViewFiltroImportes, + FactuGES_Intf, TBXDkPanels, uEditorInformeBase, + uIEditorInformeBase, uViewParametrosInforme, uIEditorInformePedidosReport; + +type + TfEditorInformePedidosReport = class(TfEditorInformeBase, IEditorInformePedidosReport) + TBXItem58: TTBXItem; + frViewPeriodoFechas1: TfrViewPeriodoFechas; + frViewFiltroImportes1: TfrViewFiltroImportes; + frViewFiltroProveedores1: TfrViewFiltroProveedores; + procedure actRefrescarExecute(Sender: TObject); + private + FListaIDProveedores: TIntegerArray; + function GetFechaFin: Variant; + function GetFechaInicio: Variant; + function GetListaIDProveedores: TIntegerArray; + function GetImporteMinimo: Currency; + function GetDesglosadoProveedor: Boolean; + + procedure RefrescarInforme; + + public + property FechaInicio: Variant read GetFechaInicio; + property FechaFin: Variant read GetFechaFin; + property ListaIDProveedores: TIntegerArray read GetListaIDProveedores; + property DesglosadoProveedor: Boolean read GetDesglosadoProveedor; + property ImporteMinimo: Currency read GetImporteMinimo; + + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + + +implementation + +{$R *.dfm} + +uses uROTypes, DateUtils, uGestorInformesController, uFactuGES_App; + +{ TfEditorGestorInformesReport } + +procedure TfEditorInformePedidosReport.actRefrescarExecute(Sender: TObject); +begin + inherited; + RefrescarInforme; +end; + +constructor TfEditorInformePedidosReport.Create(AOwner: TComponent); +begin + inherited; + FListaIDProveedores := TIntegerArray.Create; +end; + +destructor TfEditorInformePedidosReport.Destroy; +begin + FListaIDProveedores.Free; + inherited; +end; + +function TfEditorInformePedidosReport.GetDesglosadoProveedor: Boolean; +begin + if frViewFiltroImportes1.cbxDesglosado.Enabled then + Result := frViewFiltroProveedores1.cbxDesglosado.Checked + else + Result := False; +end; + +function TfEditorInformePedidosReport.GetFechaFin: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaFin.EditValue; + + //Esto es para quitar la hora del timestamp para que luego no me redondee al dia siguiente + if not VarIsNull(Result) then + Result := DateOf(frViewPeriodoFechas1.edtFechaFin.Date); +end; + +function TfEditorInformePedidosReport.GetFechaInicio: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaIni.EditValue; +end; + +function TfEditorInformePedidosReport.GetImporteMinimo: Currency; +begin + if frViewFiltroImportes1.eImporte.Enabled then + Result := frViewFiltroImportes1.eImporte.Value + else + Result := 0; +end; + +function TfEditorInformePedidosReport.GetListaIDProveedores: TIntegerArray; +begin + FListaIDProveedores.Clear; + if Assigned(frViewFiltroProveedores1.Proveedor) then + FListaIDProveedores.Add(frViewFiltroProveedores1.Proveedor.ID); + + Result := FListaIDProveedores; +end; + +procedure TfEditorInformePedidosReport.RefrescarInforme; +var + AStream: Binary; +begin + ShowHourglassCursor; + try + AStream := (Controller as IGestorInformesController).DataModule.GenerarInformeListadoPedidos( + AppFactuGES.EmpresaActiva.ID, + FechaInicio, + FechaFin, + ListaIDProveedores, + DesglosadoProveedor, + ImporteMinimo); + + LoadFromStream(AStream); + Report.ShowPreparedReport; + finally + FreeAndNil(AStream); + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformePresupuestosReport.dcu b/Source/Modulos/Gestor de informes/Views/uEditorInformePresupuestosReport.dcu new file mode 100644 index 0000000..a078eae Binary files /dev/null and b/Source/Modulos/Gestor de informes/Views/uEditorInformePresupuestosReport.dcu differ diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformePresupuestosReport.dfm b/Source/Modulos/Gestor de informes/Views/uEditorInformePresupuestosReport.dfm new file mode 100644 index 0000000..86e9b79 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uEditorInformePresupuestosReport.dfm @@ -0,0 +1,235 @@ +inherited fEditorInformePresupuestosReport: TfEditorInformePresupuestosReport + Caption = 'fEditorInformePresupuestosReport' + ClientHeight = 655 + ClientWidth = 895 + ExplicitWidth = 903 + ExplicitHeight = 689 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 895 + ExplicitWidth = 895 + inherited Image1: TImage + Left = 868 + ExplicitLeft = 868 + end + end + inherited TBXDock: TTBXDock + Width = 895 + ExplicitWidth = 895 + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 895 + end + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 591 + object TBXItem58: TTBXItem [0] + Action = actRefrescar + DisplayMode = nbdmImageAndText + Images = SmallImages + end + end + end + inherited StatusBar: TJvStatusBar + Top = 636 + Width = 895 + ExplicitTop = 636 + ExplicitWidth = 895 + end + inherited TBXMultiDockIzquierdo: TTBXMultiDock + Height = 534 + ExplicitHeight = 534 + end + inherited TBXMultiDockDerecho: TTBXMultiDock + Left = 703 + Width = 192 + Height = 534 + ExplicitLeft = 703 + ExplicitWidth = 192 + ExplicitHeight = 534 + inherited pnlParametros: TTBXDockablePanel + DockedWidth = 188 + ExplicitWidth = 192 + ExplicitHeight = 518 + inline frViewPeriodoFechas1: TfrViewPeriodoFechas [0] + Left = 0 + Top = 0 + Width = 188 + Height = 136 + Align = alTop + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 188 + ExplicitHeight = 136 + inherited TBXAlignmentPanel2: TTBXAlignmentPanel + Width = 182 + ExplicitWidth = 182 + inherited Label3: TLabel + Width = 172 + end + inherited edtFechaFin: TcxDateEdit + Left = 76 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 76 + ExplicitWidth = 97 + Width = 97 + end + inherited edtFechaIni: TcxDateEdit + Left = 76 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 76 + ExplicitWidth = 97 + Width = 97 + end + inherited cbPeriodo: TcxComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 170 + Width = 170 + end + end + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited TBXAlignmentPanel3: TTBXAlignmentPanel + Width = 182 + ExplicitWidth = 182 + inherited Label4: TLabel + Width = 172 + end + inherited edtFechaVenFin: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 99 + Width = 99 + end + inherited edtFechaVenIni: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 97 + Width = 97 + end + inherited cbPeriodo2: TcxComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 166 + Width = 166 + end + end + end + inherited TBXDockablePanel1: TTBXDockablePanel + Top = 368 + TabOrder = 2 + ExplicitTop = 368 + ExplicitWidth = 188 + inherited TBXButton1: TTBXButton + AlignWithMargins = True + Left = 3 + Top = 3 + Width = 182 + Height = 37 + Margins.Left = 8 + Margins.Top = 8 + Margins.Right = 8 + Margins.Bottom = 8 + Align = alTop + ExplicitLeft = 3 + ExplicitTop = 3 + ExplicitWidth = 182 + ExplicitHeight = 37 + end + end + inline frViewFiltroImportes1: TfrViewFiltroImportes + Left = 0 + Top = 136 + Width = 188 + Height = 77 + Align = alTop + AutoSize = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 1 + ReadOnly = False + ExplicitTop = 136 + ExplicitWidth = 188 + ExplicitHeight = 77 + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 182 + ExplicitWidth = 182 + inherited cbxDesglosado: TCheckBox + Caption = 'Solo presupuestos que superen:' + end + inherited eImporte: TcxSpinEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + end + end + inline frViewFiltroClientes1: TfrViewFiltroClientes + Left = 0 + Top = 213 + Width = 188 + Height = 146 + Align = alTop + AutoSize = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 213 + ExplicitWidth = 188 + ExplicitHeight = 146 + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited bElegirCliente: TBitBtn + Width = 108 + ExplicitWidth = 108 + end + inherited edtCliente: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 141 + Width = 141 + end + end + end + end +end diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformePresupuestosReport.pas b/Source/Modulos/Gestor de informes/Views/uEditorInformePresupuestosReport.pas new file mode 100644 index 0000000..c5ec706 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uEditorInformePresupuestosReport.pas @@ -0,0 +1,135 @@ +unit uEditorInformePresupuestosReport; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorPreview, frxExportText, frxExportRTF, frxExportMail, + frxExportXLS, frxExportImage, frxExportPDF, frxClass, frxDCtrl, frxGradient, + frxChBox, frxCross, frxRich, frxOLE, frxBarcode, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, + StdActns, ActnList, ComCtrls, JvExComCtrls, JvStatusBar, TB2ExtItems, + TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, + JvExControls, JvNavigationPane, uCustomView, + uViewBase, uViewPeriodoFechas, + uViewFiltroClientes, dxLayoutControl, cxControls, uViewFiltroImportes, + FactuGES_Intf, TBXDkPanels, uEditorInformeBase, + uIEditorInformeBase, uViewParametrosInforme, uIEditorInformePresupuestosReport; + +type + TfEditorInformePresupuestosReport = class(TfEditorInformeBase, IEditorInformePresupuestosReport) + TBXItem58: TTBXItem; + frViewPeriodoFechas1: TfrViewPeriodoFechas; + frViewFiltroImportes1: TfrViewFiltroImportes; + frViewFiltroClientes1: TfrViewFiltroClientes; + procedure actRefrescarExecute(Sender: TObject); + private + FListaIDClientes: TIntegerArray; + function GetFechaFin: Variant; + function GetFechaInicio: Variant; + function GetListaIDClientes: TIntegerArray; + function GetImporteMinimo: Currency; + function GetDesglosadoCliente: Boolean; + + procedure RefrescarInforme; + + public + property FechaInicio: Variant read GetFechaInicio; + property FechaFin: Variant read GetFechaFin; + property ListaIDClientes: TIntegerArray read GetListaIDClientes; + property DesglosadoCliente: Boolean read GetDesglosadoCliente; + property ImporteMinimo: Currency read GetImporteMinimo; + + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + + +implementation + +{$R *.dfm} + +uses uROTypes, DateUtils, uGestorInformesController, uFactuGES_App; + +{ TfEditorGestorInformesReport } + +procedure TfEditorInformePresupuestosReport.actRefrescarExecute(Sender: TObject); +begin + inherited; + RefrescarInforme; +end; + +constructor TfEditorInformePresupuestosReport.Create(AOwner: TComponent); +begin + inherited; + FListaIDClientes := TIntegerArray.Create; +end; + +destructor TfEditorInformePresupuestosReport.Destroy; +begin + FListaIDClientes.Free; + inherited; +end; + +function TfEditorInformePresupuestosReport.GetDesglosadoCliente: Boolean; +begin + if frViewFiltroImportes1.cbxDesglosado.Enabled then + Result := frViewFiltroClientes1.cbxDesglosado.Checked + else + Result := False; +end; + +function TfEditorInformePresupuestosReport.GetFechaFin: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaFin.EditValue; + + //Esto es para quitar la hora del timestamp para que luego no me redondee al dia siguiente + if not VarIsNull(Result) then + Result := DateOf(frViewPeriodoFechas1.edtFechaFin.Date); +end; + +function TfEditorInformePresupuestosReport.GetFechaInicio: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaIni.EditValue; +end; + +function TfEditorInformePresupuestosReport.GetImporteMinimo: Currency; +begin + if frViewFiltroImportes1.eImporte.Enabled then + Result := frViewFiltroImportes1.eImporte.Value + else + Result := 0; +end; + +function TfEditorInformePresupuestosReport.GetListaIDClientes: TIntegerArray; +begin + FListaIDClientes.Clear; + if Assigned(frViewFiltroClientes1.Cliente) then + FListaIDClientes.Add(frViewFiltroClientes1.Cliente.ID); + + Result := FListaIDClientes; +end; + +procedure TfEditorInformePresupuestosReport.RefrescarInforme; +var + AStream: Binary; +begin + ShowHourglassCursor; + try + AStream := (Controller as IGestorInformesController).DataModule.GenerarInformeListadoPresupuestos( + AppFactuGES.EmpresaActiva.ID, + FechaInicio, + FechaFin, + ListaIDClientes, + DesglosadoCliente, + ImporteMinimo); + + LoadFromStream(AStream); + Report.ShowPreparedReport; + finally + FreeAndNil(AStream); + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosCliPendientesReport.dcu b/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosCliPendientesReport.dcu new file mode 100644 index 0000000..f814dfb Binary files /dev/null and b/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosCliPendientesReport.dcu differ diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosCliPendientesReport.dfm b/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosCliPendientesReport.dfm new file mode 100644 index 0000000..e410228 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosCliPendientesReport.dfm @@ -0,0 +1,236 @@ +inherited fEditorInformeRecibosCliPendientesReport: TfEditorInformeRecibosCliPendientesReport + Caption = 'fEditorInformeRecibosCliPendientesReport' + ClientHeight = 655 + ClientWidth = 895 + ExplicitWidth = 903 + ExplicitHeight = 689 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 895 + ExplicitWidth = 895 + inherited Image1: TImage + Left = 868 + ExplicitLeft = 868 + end + end + inherited TBXDock: TTBXDock + Width = 895 + ExplicitWidth = 895 + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 895 + end + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 591 + object TBXItem58: TTBXItem [0] + Action = actRefrescar + DisplayMode = nbdmImageAndText + Images = SmallImages + end + end + end + inherited StatusBar: TJvStatusBar + Top = 636 + Width = 895 + ExplicitTop = 636 + ExplicitWidth = 895 + end + inherited TBXMultiDockIzquierdo: TTBXMultiDock + Height = 534 + ExplicitHeight = 534 + end + inherited TBXMultiDockDerecho: TTBXMultiDock + Left = 703 + Width = 192 + Height = 534 + ExplicitLeft = 703 + ExplicitWidth = 192 + ExplicitHeight = 534 + inherited pnlParametros: TTBXDockablePanel + DockedWidth = 188 + ExplicitWidth = 192 + ExplicitHeight = 518 + inline frViewPeriodoFechas1: TfrViewPeriodoFechas [0] + Left = 0 + Top = 0 + Width = 188 + Height = 240 + Align = alTop + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 188 + ExplicitHeight = 240 + inherited TBXAlignmentPanel2: TTBXAlignmentPanel + Width = 182 + ExplicitWidth = 182 + inherited Label3: TLabel + Width = 172 + end + inherited edtFechaFin: TcxDateEdit + Left = 76 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 76 + ExplicitWidth = 97 + Width = 97 + end + inherited edtFechaIni: TcxDateEdit + Left = 76 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 76 + ExplicitWidth = 97 + Width = 97 + end + inherited cbPeriodo: TcxComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 170 + Width = 170 + end + end + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited TBXAlignmentPanel3: TTBXAlignmentPanel + Width = 182 + ExplicitWidth = 182 + inherited Label4: TLabel + Width = 172 + end + inherited edtFechaVenFin: TcxDateEdit + Left = 76 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 76 + ExplicitWidth = 97 + Width = 97 + end + inherited edtFechaVenIni: TcxDateEdit + Left = 76 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 76 + ExplicitWidth = 97 + Width = 97 + end + inherited cbPeriodo2: TcxComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 170 + Width = 170 + end + end + end + inherited TBXDockablePanel1: TTBXDockablePanel + Top = 368 + TabOrder = 2 + ExplicitTop = 368 + ExplicitWidth = 188 + inherited TBXButton1: TTBXButton + AlignWithMargins = True + Left = 3 + Top = 3 + Width = 182 + Height = 37 + Margins.Left = 8 + Margins.Top = 8 + Margins.Right = 8 + Margins.Bottom = 8 + Align = alTop + ExplicitLeft = 3 + ExplicitTop = 3 + ExplicitWidth = 182 + ExplicitHeight = 37 + end + end + inline frViewFiltroImportes1: TfrViewFiltroImportes + Left = 0 + Top = 240 + Width = 188 + Height = 77 + Align = alTop + AutoSize = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 1 + ReadOnly = False + ExplicitTop = 240 + ExplicitWidth = 188 + ExplicitHeight = 77 + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 182 + ExplicitWidth = 182 + inherited eImporte: TcxSpinEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + end + end + inline frViewFiltroClientes1: TfrViewFiltroClientes + Left = 0 + Top = 317 + Width = 188 + Height = 146 + Align = alTop + AutoSize = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 317 + ExplicitWidth = 188 + ExplicitHeight = 146 + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited bElegirCliente: TBitBtn + Width = 108 + ExplicitWidth = 108 + end + inherited edtCliente: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 141 + Width = 141 + end + end + end + end +end diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosCliPendientesReport.pas b/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosCliPendientesReport.pas new file mode 100644 index 0000000..29e5998 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosCliPendientesReport.pas @@ -0,0 +1,155 @@ +unit uEditorInformeRecibosCliPendientesReport; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorPreview, frxExportText, frxExportRTF, frxExportMail, + frxExportXLS, frxExportImage, frxExportPDF, frxClass, frxDCtrl, frxGradient, + frxChBox, frxCross, frxRich, frxOLE, frxBarcode, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, + StdActns, ActnList, ComCtrls, JvExComCtrls, JvStatusBar, TB2ExtItems, + TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, + JvExControls, JvNavigationPane, uCustomView, + uViewBase, uViewPeriodoFechas, + uViewFiltroClientes, dxLayoutControl, cxControls, uViewFiltroImportes, + FactuGES_Intf, TBXDkPanels, uEditorInformeBase, + uIEditorInformeBase, uViewParametrosInforme, uIEditorInformeRecibosCliPendientesReport; + +type + TfEditorInformeRecibosCliPendientesReport = class(TfEditorInformeBase, IEditorInformeRecibosCliPendientesReport) + TBXItem58: TTBXItem; + frViewPeriodoFechas1: TfrViewPeriodoFechas; + frViewFiltroImportes1: TfrViewFiltroImportes; + frViewFiltroClientes1: TfrViewFiltroClientes; + procedure actRefrescarExecute(Sender: TObject); + private + FListaIDClientes: TIntegerArray; + function GetFechaFin: Variant; + function GetFechaInicio: Variant; + function GetFechaVenFin: Variant; + function GetFechaVenInicio: Variant; + function GetListaIDClientes: TIntegerArray; + function GetImporteMinimo: Currency; + function GetDesglosadoCliente: Boolean; + + procedure RefrescarInforme; + + public + property FechaInicio: Variant read GetFechaInicio; + property FechaFin: Variant read GetFechaFin; + property FechaVenInicio: Variant read GetFechaVenInicio; + property FechaVenFin: Variant read GetFechaVenFin; + property ListaIDClientes: TIntegerArray read GetListaIDClientes; + property DesglosadoCliente: Boolean read GetDesglosadoCliente; + property ImporteMinimo: Currency read GetImporteMinimo; + + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + + +implementation + +{$R *.dfm} + +uses uROTypes, DateUtils, uGestorInformesController, uFactuGES_App; + +{ TfEditorGestorInformesReport } + +procedure TfEditorInformeRecibosCliPendientesReport.actRefrescarExecute(Sender: TObject); +begin + inherited; + RefrescarInforme; +end; + +constructor TfEditorInformeRecibosCliPendientesReport.Create(AOwner: TComponent); +begin + inherited; + FListaIDClientes := TIntegerArray.Create; +end; + +destructor TfEditorInformeRecibosCliPendientesReport.Destroy; +begin + FListaIDClientes.Free; + inherited; +end; + +function TfEditorInformeRecibosCliPendientesReport.GetDesglosadoCliente: Boolean; +begin + if frViewFiltroImportes1.cbxDesglosado.Enabled then + Result := frViewFiltroClientes1.cbxDesglosado.Checked + else + Result := False; +end; + +function TfEditorInformeRecibosCliPendientesReport.GetFechaFin: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaFin.EditValue; + + //Esto es para quitar la hora del timestamp para que luego no me redondee al dia siguiente + if not VarIsNull(Result) then + Result := DateOf(frViewPeriodoFechas1.edtFechaFin.Date); +end; + +function TfEditorInformeRecibosCliPendientesReport.GetFechaInicio: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaIni.EditValue; +end; + +function TfEditorInformeRecibosCliPendientesReport.GetFechaVenFin: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaVenFin.EditValue; + + //Esto es para quitar la hora del timestamp para que luego no me redondee al dia siguiente + if not VarIsNull(Result) then + Result := DateOf(frViewPeriodoFechas1.edtFechaVenFin.Date); +end; + +function TfEditorInformeRecibosCliPendientesReport.GetFechaVenInicio: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaVenIni.EditValue; +end; + +function TfEditorInformeRecibosCliPendientesReport.GetImporteMinimo: Currency; +begin + if frViewFiltroImportes1.eImporte.Enabled then + Result := frViewFiltroImportes1.eImporte.Value + else + Result := 0; +end; + +function TfEditorInformeRecibosCliPendientesReport.GetListaIDClientes: TIntegerArray; +begin + FListaIDClientes.Clear; + if Assigned(frViewFiltroClientes1.Cliente) then + FListaIDClientes.Add(frViewFiltroClientes1.Cliente.ID); + + Result := FListaIDClientes; +end; + +procedure TfEditorInformeRecibosCliPendientesReport.RefrescarInforme; +var + AStream: Binary; +begin + ShowHourglassCursor; + try + AStream := (Controller as IGestorInformesController).DataModule.GenerarInformeListadoRecibosCliPendientes( + AppFactuGES.EmpresaActiva.ID, + FechaInicio, + FechaFin, + FechaVenInicio, + FechaVenFin, + ListaIDClientes, + DesglosadoCliente, + ImporteMinimo); + + LoadFromStream(AStream); + Report.ShowPreparedReport; + finally + FreeAndNil(AStream); + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosClienteReport.dcu b/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosClienteReport.dcu new file mode 100644 index 0000000..f2d4755 Binary files /dev/null and b/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosClienteReport.dcu differ diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosClienteReport.dfm b/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosClienteReport.dfm new file mode 100644 index 0000000..3ef88cd --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosClienteReport.dfm @@ -0,0 +1,236 @@ +inherited fEditorInformeRecibosClienteReport: TfEditorInformeRecibosClienteReport + Caption = 'fEditorInformeRecibosClienteReport' + ClientHeight = 655 + ClientWidth = 895 + ExplicitWidth = 903 + ExplicitHeight = 689 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 895 + ExplicitWidth = 895 + inherited Image1: TImage + Left = 868 + ExplicitLeft = 868 + end + end + inherited TBXDock: TTBXDock + Width = 895 + ExplicitWidth = 895 + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 895 + end + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 591 + object TBXItem58: TTBXItem [0] + Action = actRefrescar + DisplayMode = nbdmImageAndText + Images = SmallImages + end + end + end + inherited StatusBar: TJvStatusBar + Top = 636 + Width = 895 + ExplicitTop = 636 + ExplicitWidth = 895 + end + inherited TBXMultiDockIzquierdo: TTBXMultiDock + Height = 534 + ExplicitHeight = 534 + end + inherited TBXMultiDockDerecho: TTBXMultiDock + Left = 703 + Width = 192 + Height = 534 + ExplicitLeft = 703 + ExplicitWidth = 192 + ExplicitHeight = 534 + inherited pnlParametros: TTBXDockablePanel + DockedWidth = 188 + ExplicitWidth = 192 + ExplicitHeight = 518 + inline frViewPeriodoFechas1: TfrViewPeriodoFechas [0] + Left = 0 + Top = 0 + Width = 188 + Height = 240 + Align = alTop + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 188 + ExplicitHeight = 240 + inherited TBXAlignmentPanel2: TTBXAlignmentPanel + Width = 182 + ExplicitWidth = 182 + inherited Label3: TLabel + Width = 172 + end + inherited edtFechaFin: TcxDateEdit + Left = 77 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 77 + ExplicitWidth = 96 + Width = 96 + end + inherited edtFechaIni: TcxDateEdit + Left = 76 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 76 + ExplicitWidth = 97 + Width = 97 + end + inherited cbPeriodo: TcxComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 170 + Width = 170 + end + end + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited TBXAlignmentPanel3: TTBXAlignmentPanel + Width = 182 + ExplicitWidth = 182 + inherited Label4: TLabel + Width = 172 + end + inherited edtFechaVenFin: TcxDateEdit + Left = 76 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 76 + ExplicitWidth = 97 + Width = 97 + end + inherited edtFechaVenIni: TcxDateEdit + Left = 76 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 76 + ExplicitWidth = 97 + Width = 97 + end + inherited cbPeriodo2: TcxComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 170 + Width = 170 + end + end + end + inherited TBXDockablePanel1: TTBXDockablePanel + Top = 368 + TabOrder = 2 + ExplicitTop = 368 + ExplicitWidth = 188 + inherited TBXButton1: TTBXButton + AlignWithMargins = True + Left = 3 + Top = 3 + Width = 182 + Height = 37 + Margins.Left = 8 + Margins.Top = 8 + Margins.Right = 8 + Margins.Bottom = 8 + Align = alTop + ExplicitLeft = 3 + ExplicitTop = 3 + ExplicitWidth = 182 + ExplicitHeight = 37 + end + end + inline frViewFiltroImportes1: TfrViewFiltroImportes + Left = 0 + Top = 240 + Width = 188 + Height = 77 + Align = alTop + AutoSize = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 1 + ReadOnly = False + ExplicitTop = 240 + ExplicitWidth = 188 + ExplicitHeight = 77 + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 182 + ExplicitWidth = 182 + inherited eImporte: TcxSpinEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + end + end + inline frViewFiltroClientes1: TfrViewFiltroClientes + Left = 0 + Top = 317 + Width = 188 + Height = 146 + Align = alTop + AutoSize = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 317 + ExplicitWidth = 188 + ExplicitHeight = 146 + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited bElegirCliente: TBitBtn + Width = 108 + ExplicitWidth = 108 + end + inherited edtCliente: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 141 + Width = 141 + end + end + end + end +end diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosClienteReport.pas b/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosClienteReport.pas new file mode 100644 index 0000000..e3a3d67 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosClienteReport.pas @@ -0,0 +1,155 @@ +unit uEditorInformeRecibosClienteReport; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorPreview, frxExportText, frxExportRTF, frxExportMail, + frxExportXLS, frxExportImage, frxExportPDF, frxClass, frxDCtrl, frxGradient, + frxChBox, frxCross, frxRich, frxOLE, frxBarcode, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, + StdActns, ActnList, ComCtrls, JvExComCtrls, JvStatusBar, TB2ExtItems, + TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, + JvExControls, JvNavigationPane, uCustomView, + uViewBase, uViewPeriodoFechas, + uViewFiltroClientes, dxLayoutControl, cxControls, uViewFiltroImportes, + FactuGES_Intf, TBXDkPanels, uEditorInformeBase, + uIEditorInformeBase, uViewParametrosInforme, uIEditorInformeRecibosClienteReport; + +type + TfEditorInformeRecibosClienteReport = class(TfEditorInformeBase, IEditorInformeRecibosClienteReport) + TBXItem58: TTBXItem; + frViewPeriodoFechas1: TfrViewPeriodoFechas; + frViewFiltroImportes1: TfrViewFiltroImportes; + frViewFiltroClientes1: TfrViewFiltroClientes; + procedure actRefrescarExecute(Sender: TObject); + private + FListaIDClientes: TIntegerArray; + function GetFechaFin: Variant; + function GetFechaInicio: Variant; + function GetFechaVenFin: Variant; + function GetFechaVenInicio: Variant; + function GetListaIDClientes: TIntegerArray; + function GetImporteMinimo: Currency; + function GetDesglosadoCliente: Boolean; + + procedure RefrescarInforme; + + public + property FechaInicio: Variant read GetFechaInicio; + property FechaFin: Variant read GetFechaFin; + property FechaVenInicio: Variant read GetFechaVenInicio; + property FechaVenFin: Variant read GetFechaVenFin; + property ListaIDClientes: TIntegerArray read GetListaIDClientes; + property DesglosadoCliente: Boolean read GetDesglosadoCliente; + property ImporteMinimo: Currency read GetImporteMinimo; + + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + + +implementation + +{$R *.dfm} + +uses uROTypes, DateUtils, uGestorInformesController, uFactuGES_App; + +{ TfEditorGestorInformesReport } + +procedure TfEditorInformeRecibosClienteReport.actRefrescarExecute(Sender: TObject); +begin + inherited; + RefrescarInforme; +end; + +constructor TfEditorInformeRecibosClienteReport.Create(AOwner: TComponent); +begin + inherited; + FListaIDClientes := TIntegerArray.Create; +end; + +destructor TfEditorInformeRecibosClienteReport.Destroy; +begin + FListaIDClientes.Free; + inherited; +end; + +function TfEditorInformeRecibosClienteReport.GetDesglosadoCliente: Boolean; +begin + if frViewFiltroImportes1.cbxDesglosado.Enabled then + Result := frViewFiltroClientes1.cbxDesglosado.Checked + else + Result := False; +end; + +function TfEditorInformeRecibosClienteReport.GetFechaFin: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaFin.EditValue; + + //Esto es para quitar la hora del timestamp para que luego no me redondee al dia siguiente + if not VarIsNull(Result) then + Result := DateOf(frViewPeriodoFechas1.edtFechaFin.Date); +end; + +function TfEditorInformeRecibosClienteReport.GetFechaInicio: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaIni.EditValue; +end; + +function TfEditorInformeRecibosClienteReport.GetFechaVenFin: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaVenFin.EditValue; + + //Esto es para quitar la hora del timestamp para que luego no me redondee al dia siguiente + if not VarIsNull(Result) then + Result := DateOf(frViewPeriodoFechas1.edtFechaVenFin.Date); +end; + +function TfEditorInformeRecibosClienteReport.GetFechaVenInicio: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaVenIni.EditValue; +end; + +function TfEditorInformeRecibosClienteReport.GetImporteMinimo: Currency; +begin + if frViewFiltroImportes1.eImporte.Enabled then + Result := frViewFiltroImportes1.eImporte.Value + else + Result := 0; +end; + +function TfEditorInformeRecibosClienteReport.GetListaIDClientes: TIntegerArray; +begin + FListaIDClientes.Clear; + if Assigned(frViewFiltroClientes1.Cliente) then + FListaIDClientes.Add(frViewFiltroClientes1.Cliente.ID); + + Result := FListaIDClientes; +end; + +procedure TfEditorInformeRecibosClienteReport.RefrescarInforme; +var + AStream: Binary; +begin + ShowHourglassCursor; + try + AStream := (Controller as IGestorInformesController).DataModule.GenerarInformeListadoRecibosCliente( + AppFactuGES.EmpresaActiva.ID, + FechaInicio, + FechaFin, + FechaVenInicio, + FechaVenFin, + ListaIDClientes, + DesglosadoCliente, + ImporteMinimo); + + LoadFromStream(AStream); + Report.ShowPreparedReport; + finally + FreeAndNil(AStream); + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosProvPendientesReport.dcu b/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosProvPendientesReport.dcu new file mode 100644 index 0000000..49448a3 Binary files /dev/null and b/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosProvPendientesReport.dcu differ diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosProvPendientesReport.dfm b/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosProvPendientesReport.dfm new file mode 100644 index 0000000..12127f8 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosProvPendientesReport.dfm @@ -0,0 +1,236 @@ +inherited fEditorInformeRecibosProvPendientesReport: TfEditorInformeRecibosProvPendientesReport + Caption = 'fEditorInformeRecibosProvPendientesReport' + ClientHeight = 655 + ClientWidth = 895 + ExplicitWidth = 903 + ExplicitHeight = 689 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 895 + ExplicitWidth = 895 + inherited Image1: TImage + Left = 868 + ExplicitLeft = 868 + end + end + inherited TBXDock: TTBXDock + Width = 895 + ExplicitWidth = 895 + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 895 + end + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 591 + object TBXItem58: TTBXItem [0] + Action = actRefrescar + DisplayMode = nbdmImageAndText + Images = SmallImages + end + end + end + inherited StatusBar: TJvStatusBar + Top = 636 + Width = 895 + ExplicitTop = 636 + ExplicitWidth = 895 + end + inherited TBXMultiDockIzquierdo: TTBXMultiDock + Height = 534 + ExplicitHeight = 534 + end + inherited TBXMultiDockDerecho: TTBXMultiDock + Left = 703 + Width = 192 + Height = 534 + ExplicitLeft = 703 + ExplicitWidth = 192 + ExplicitHeight = 534 + inherited pnlParametros: TTBXDockablePanel + DockedWidth = 188 + ExplicitWidth = 192 + ExplicitHeight = 518 + inline frViewPeriodoFechas1: TfrViewPeriodoFechas [0] + Left = 0 + Top = 0 + Width = 188 + Height = 240 + Align = alTop + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 188 + ExplicitHeight = 240 + inherited TBXAlignmentPanel2: TTBXAlignmentPanel + Width = 182 + ExplicitWidth = 182 + inherited Label3: TLabel + Width = 172 + end + inherited edtFechaFin: TcxDateEdit + Left = 76 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 76 + ExplicitWidth = 97 + Width = 97 + end + inherited edtFechaIni: TcxDateEdit + Left = 76 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 76 + ExplicitWidth = 97 + Width = 97 + end + inherited cbPeriodo: TcxComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 170 + Width = 170 + end + end + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited TBXAlignmentPanel3: TTBXAlignmentPanel + Width = 182 + ExplicitWidth = 182 + inherited Label4: TLabel + Width = 172 + end + inherited edtFechaVenFin: TcxDateEdit + Left = 76 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 76 + ExplicitWidth = 97 + Width = 97 + end + inherited edtFechaVenIni: TcxDateEdit + Left = 76 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 76 + ExplicitWidth = 97 + Width = 97 + end + inherited cbPeriodo2: TcxComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 170 + Width = 170 + end + end + end + inherited TBXDockablePanel1: TTBXDockablePanel + Top = 368 + TabOrder = 2 + ExplicitTop = 368 + ExplicitWidth = 188 + inherited TBXButton1: TTBXButton + AlignWithMargins = True + Left = 3 + Top = 3 + Width = 182 + Height = 37 + Margins.Left = 8 + Margins.Top = 8 + Margins.Right = 8 + Margins.Bottom = 8 + Align = alTop + ExplicitLeft = 3 + ExplicitTop = 3 + ExplicitWidth = 182 + ExplicitHeight = 37 + end + end + inline frViewFiltroImportes1: TfrViewFiltroImportes + Left = 0 + Top = 240 + Width = 188 + Height = 77 + Align = alTop + AutoSize = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 1 + ReadOnly = False + ExplicitTop = 240 + ExplicitWidth = 188 + ExplicitHeight = 77 + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 182 + ExplicitWidth = 182 + inherited eImporte: TcxSpinEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + end + end + inline frViewFiltroProveedores1: TfrViewFiltroProveedores + Left = 0 + Top = 317 + Width = 188 + Height = 146 + Align = alTop + AutoSize = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 317 + ExplicitWidth = 188 + ExplicitHeight = 146 + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited bElegirProveedor: TBitBtn + Width = 108 + ExplicitWidth = 108 + end + inherited edtProveedor: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 141 + Width = 141 + end + end + end + end +end diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosProvPendientesReport.pas b/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosProvPendientesReport.pas new file mode 100644 index 0000000..2b44256 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosProvPendientesReport.pas @@ -0,0 +1,155 @@ +unit uEditorInformeRecibosProvPendientesReport; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorPreview, frxExportText, frxExportRTF, frxExportMail, + frxExportXLS, frxExportImage, frxExportPDF, frxClass, frxDCtrl, frxGradient, + frxChBox, frxCross, frxRich, frxOLE, frxBarcode, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, + StdActns, ActnList, ComCtrls, JvExComCtrls, JvStatusBar, TB2ExtItems, + TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, + JvExControls, JvNavigationPane, uCustomView, + uViewBase, uViewPeriodoFechas, + uViewFiltroProveedores, dxLayoutControl, cxControls, uViewFiltroImportes, + FactuGES_Intf, TBXDkPanels, uEditorInformeBase, + uIEditorInformeBase, uViewParametrosInforme, uIEditorInformeRecibosProvPendientesReport; + +type + TfEditorInformeRecibosProvPendientesReport = class(TfEditorInformeBase, IEditorInformeRecibosProvPendientesReport) + TBXItem58: TTBXItem; + frViewPeriodoFechas1: TfrViewPeriodoFechas; + frViewFiltroImportes1: TfrViewFiltroImportes; + frViewFiltroProveedores1: TfrViewFiltroProveedores; + procedure actRefrescarExecute(Sender: TObject); + private + FListaIDProveedores: TIntegerArray; + function GetFechaFin: Variant; + function GetFechaInicio: Variant; + function GetFechaVenFin: Variant; + function GetFechaVenInicio: Variant; + function GetListaIDProveedores: TIntegerArray; + function GetImporteMinimo: Currency; + function GetDesglosadoProveedor: Boolean; + + procedure RefrescarInforme; + + public + property FechaInicio: Variant read GetFechaInicio; + property FechaFin: Variant read GetFechaFin; + property FechaVenInicio: Variant read GetFechaVenInicio; + property FechaVenFin: Variant read GetFechaVenFin; + property ListaIDProveedores: TIntegerArray read GetListaIDProveedores; + property DesglosadoProveedor: Boolean read GetDesglosadoProveedor; + property ImporteMinimo: Currency read GetImporteMinimo; + + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + + +implementation + +{$R *.dfm} + +uses uROTypes, DateUtils, uGestorInformesController, uFactuGES_App; + +{ TfEditorGestorInformesReport } + +procedure TfEditorInformeRecibosProvPendientesReport.actRefrescarExecute(Sender: TObject); +begin + inherited; + RefrescarInforme; +end; + +constructor TfEditorInformeRecibosProvPendientesReport.Create(AOwner: TComponent); +begin + inherited; + FListaIDProveedores := TIntegerArray.Create; +end; + +destructor TfEditorInformeRecibosProvPendientesReport.Destroy; +begin + FListaIDProveedores.Free; + inherited; +end; + +function TfEditorInformeRecibosProvPendientesReport.GetDesglosadoProveedor: Boolean; +begin + if frViewFiltroImportes1.cbxDesglosado.Enabled then + Result := frViewFiltroProveedores1.cbxDesglosado.Checked + else + Result := False; +end; + +function TfEditorInformeRecibosProvPendientesReport.GetFechaFin: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaFin.EditValue; + + //Esto es para quitar la hora del timestamp para que luego no me redondee al dia siguiente + if not VarIsNull(Result) then + Result := DateOf(frViewPeriodoFechas1.edtFechaFin.Date); +end; + +function TfEditorInformeRecibosProvPendientesReport.GetFechaInicio: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaIni.EditValue; +end; + +function TfEditorInformeRecibosProvPendientesReport.GetFechaVenFin: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaVenFin.EditValue; +end; + +function TfEditorInformeRecibosProvPendientesReport.GetFechaVenInicio: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaVenFin.EditValue; + + //Esto es para quitar la hora del timestamp para que luego no me redondee al dia siguiente + if not VarIsNull(Result) then + Result := DateOf(frViewPeriodoFechas1.edtFechaVenFin.Date); +end; + +function TfEditorInformeRecibosProvPendientesReport.GetImporteMinimo: Currency; +begin + if frViewFiltroImportes1.eImporte.Enabled then + Result := frViewFiltroImportes1.eImporte.Value + else + Result := 0; +end; + +function TfEditorInformeRecibosProvPendientesReport.GetListaIDProveedores: TIntegerArray; +begin + FListaIDProveedores.Clear; + if Assigned(frViewFiltroProveedores1.Proveedor) then + FListaIDProveedores.Add(frViewFiltroProveedores1.Proveedor.ID); + + Result := FListaIDProveedores; +end; + +procedure TfEditorInformeRecibosProvPendientesReport.RefrescarInforme; +var + AStream: Binary; +begin + ShowHourglassCursor; + try + AStream := (Controller as IGestorInformesController).DataModule.GenerarInformeListadoRecibosProvPendientes( + AppFactuGES.EmpresaActiva.ID, + FechaInicio, + FechaFin, + FechaVenInicio, + FechaVenFin, + ListaIDProveedores, + DesglosadoProveedor, + ImporteMinimo); + + LoadFromStream(AStream); + Report.ShowPreparedReport; + finally + FreeAndNil(AStream); + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosProveedorReport.dcu b/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosProveedorReport.dcu new file mode 100644 index 0000000..ed2a20b Binary files /dev/null and b/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosProveedorReport.dcu differ diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosProveedorReport.dfm b/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosProveedorReport.dfm new file mode 100644 index 0000000..1967711 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosProveedorReport.dfm @@ -0,0 +1,240 @@ +inherited fEditorInformeRecibosProveedorReport: TfEditorInformeRecibosProveedorReport + Caption = 'fEditorInformeRecibosProveedorReport' + ClientHeight = 655 + ClientWidth = 895 + ExplicitWidth = 903 + ExplicitHeight = 689 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 895 + ExplicitWidth = 895 + inherited Image1: TImage + Left = 868 + ExplicitLeft = 868 + end + end + inherited TBXDock: TTBXDock + Width = 895 + ExplicitWidth = 895 + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 895 + end + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 591 + object TBXItem58: TTBXItem [0] + Action = actRefrescar + DisplayMode = nbdmImageAndText + Images = SmallImages + end + end + end + inherited StatusBar: TJvStatusBar + Top = 636 + Width = 895 + ExplicitTop = 636 + ExplicitWidth = 895 + end + inherited TBXMultiDockIzquierdo: TTBXMultiDock + Height = 534 + ExplicitHeight = 534 + end + inherited TBXMultiDockDerecho: TTBXMultiDock + Left = 703 + Width = 192 + Height = 534 + ExplicitLeft = 703 + ExplicitWidth = 192 + ExplicitHeight = 534 + inherited pnlParametros: TTBXDockablePanel + DockedWidth = 188 + ExplicitWidth = 192 + ExplicitHeight = 518 + inline frViewPeriodoFechas1: TfrViewPeriodoFechas [0] + Left = 0 + Top = 0 + Width = 188 + Height = 240 + Align = alTop + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 188 + ExplicitHeight = 240 + inherited TBXAlignmentPanel2: TTBXAlignmentPanel + Width = 182 + ExplicitWidth = 182 + inherited Label3: TLabel + Width = 172 + end + inherited edtFechaFin: TcxDateEdit + Left = 76 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 76 + ExplicitWidth = 97 + Width = 97 + end + inherited edtFechaIni: TcxDateEdit + Left = 76 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 76 + ExplicitWidth = 97 + Width = 97 + end + inherited cbPeriodo: TcxComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 170 + Width = 170 + end + end + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited TBXAlignmentPanel3: TTBXAlignmentPanel + Width = 182 + Height = 99 + ExplicitWidth = 182 + ExplicitHeight = 99 + inherited Label4: TLabel + Width = 172 + end + inherited edtFechaVenFin: TcxDateEdit + Left = 76 + Top = 78 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 76 + ExplicitTop = 78 + ExplicitWidth = 97 + Width = 97 + end + inherited edtFechaVenIni: TcxDateEdit + Left = 76 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 76 + ExplicitWidth = 97 + Width = 97 + end + inherited cbPeriodo2: TcxComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 170 + Width = 170 + end + end + end + inherited TBXDockablePanel1: TTBXDockablePanel + Top = 368 + TabOrder = 2 + ExplicitTop = 368 + ExplicitWidth = 188 + inherited TBXButton1: TTBXButton + AlignWithMargins = True + Left = 3 + Top = 3 + Width = 182 + Height = 37 + Margins.Left = 8 + Margins.Top = 8 + Margins.Right = 8 + Margins.Bottom = 8 + Align = alTop + ExplicitLeft = 3 + ExplicitTop = 3 + ExplicitWidth = 182 + ExplicitHeight = 37 + end + end + inline frViewFiltroImportes1: TfrViewFiltroImportes + Left = 0 + Top = 240 + Width = 188 + Height = 77 + Align = alTop + AutoSize = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 1 + ReadOnly = False + ExplicitTop = 240 + ExplicitWidth = 188 + ExplicitHeight = 77 + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 182 + ExplicitWidth = 182 + inherited eImporte: TcxSpinEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + end + end + inline frViewFiltroProveedores1: TfrViewFiltroProveedores + Left = 0 + Top = 317 + Width = 188 + Height = 146 + Align = alTop + AutoSize = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 317 + ExplicitWidth = 188 + ExplicitHeight = 146 + inherited TBXLabel2: TTBXLabel + Width = 188 + ExplicitWidth = 188 + end + inherited bElegirProveedor: TBitBtn + Width = 108 + ExplicitWidth = 108 + end + inherited edtProveedor: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 141 + Width = 141 + end + end + end + end +end diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosProveedorReport.pas b/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosProveedorReport.pas new file mode 100644 index 0000000..3aeb0d7 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosProveedorReport.pas @@ -0,0 +1,155 @@ +unit uEditorInformeRecibosProveedorReport; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorPreview, frxExportText, frxExportRTF, frxExportMail, + frxExportXLS, frxExportImage, frxExportPDF, frxClass, frxDCtrl, frxGradient, + frxChBox, frxCross, frxRich, frxOLE, frxBarcode, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, + StdActns, ActnList, ComCtrls, JvExComCtrls, JvStatusBar, TB2ExtItems, + TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, + JvExControls, JvNavigationPane, uCustomView, + uViewBase, uViewPeriodoFechas, + uViewFiltroProveedores, dxLayoutControl, cxControls, uViewFiltroImportes, + FactuGES_Intf, TBXDkPanels, uEditorInformeBase, + uIEditorInformeBase, uViewParametrosInforme, uIEditorInformeRecibosProveedorReport; + +type + TfEditorInformeRecibosProveedorReport = class(TfEditorInformeBase, IEditorInformeRecibosProveedorReport) + TBXItem58: TTBXItem; + frViewPeriodoFechas1: TfrViewPeriodoFechas; + frViewFiltroImportes1: TfrViewFiltroImportes; + frViewFiltroProveedores1: TfrViewFiltroProveedores; + procedure actRefrescarExecute(Sender: TObject); + private + FListaIDProveedores: TIntegerArray; + function GetFechaFin: Variant; + function GetFechaInicio: Variant; + function GetFechaVenFin: Variant; + function GetFechaVenInicio: Variant; + function GetListaIDProveedores: TIntegerArray; + function GetImporteMinimo: Currency; + function GetDesglosadoProveedor: Boolean; + + procedure RefrescarInforme; + + public + property FechaInicio: Variant read GetFechaInicio; + property FechaFin: Variant read GetFechaFin; + property FechaVenInicio: Variant read GetFechaVenInicio; + property FechaVenFin: Variant read GetFechaVenFin; + property ListaIDProveedores: TIntegerArray read GetListaIDProveedores; + property DesglosadoProveedor: Boolean read GetDesglosadoProveedor; + property ImporteMinimo: Currency read GetImporteMinimo; + + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + + +implementation + +{$R *.dfm} + +uses uROTypes, DateUtils, uGestorInformesController, uFactuGES_App; + +{ TfEditorGestorInformesReport } + +procedure TfEditorInformeRecibosProveedorReport.actRefrescarExecute(Sender: TObject); +begin + inherited; + RefrescarInforme; +end; + +constructor TfEditorInformeRecibosProveedorReport.Create(AOwner: TComponent); +begin + inherited; + FListaIDProveedores := TIntegerArray.Create; +end; + +destructor TfEditorInformeRecibosProveedorReport.Destroy; +begin + FListaIDProveedores.Free; + inherited; +end; + +function TfEditorInformeRecibosProveedorReport.GetDesglosadoProveedor: Boolean; +begin + if frViewFiltroImportes1.cbxDesglosado.Enabled then + Result := frViewFiltroProveedores1.cbxDesglosado.Checked + else + Result := False; +end; + +function TfEditorInformeRecibosProveedorReport.GetFechaFin: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaFin.EditValue; + + //Esto es para quitar la hora del timestamp para que luego no me redondee al dia siguiente + if not VarIsNull(Result) then + Result := DateOf(frViewPeriodoFechas1.edtFechaFin.Date); +end; + +function TfEditorInformeRecibosProveedorReport.GetFechaInicio: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaIni.EditValue; +end; + +function TfEditorInformeRecibosProveedorReport.GetFechaVenFin: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaVenFin.EditValue; + + //Esto es para quitar la hora del timestamp para que luego no me redondee al dia siguiente + if not VarIsNull(Result) then + Result := DateOf(frViewPeriodoFechas1.edtFechaVenFin.Date); +end; + +function TfEditorInformeRecibosProveedorReport.GetFechaVenInicio: Variant; +begin + Result := frViewPeriodoFechas1.edtFechaVenIni.EditValue; +end; + +function TfEditorInformeRecibosProveedorReport.GetImporteMinimo: Currency; +begin + if frViewFiltroImportes1.eImporte.Enabled then + Result := frViewFiltroImportes1.eImporte.Value + else + Result := 0; +end; + +function TfEditorInformeRecibosProveedorReport.GetListaIDProveedores: TIntegerArray; +begin + FListaIDProveedores.Clear; + if Assigned(frViewFiltroProveedores1.Proveedor) then + FListaIDProveedores.Add(frViewFiltroProveedores1.Proveedor.ID); + + Result := FListaIDProveedores; +end; + +procedure TfEditorInformeRecibosProveedorReport.RefrescarInforme; +var + AStream: Binary; +begin + ShowHourglassCursor; + try + AStream := (Controller as IGestorInformesController).DataModule.GenerarInformeListadoRecibosProveedor( + AppFactuGES.EmpresaActiva.ID, + FechaInicio, + FechaFin, + FechaVenInicio, + FechaVenFin, + ListaIDProveedores, + DesglosadoProveedor, + ImporteMinimo); + + LoadFromStream(AStream); + Report.ShowPreparedReport; + finally + FreeAndNil(AStream); + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Gestor de informes/Views/uGestorInformesViewRegister.dcu b/Source/Modulos/Gestor de informes/Views/uGestorInformesViewRegister.dcu new file mode 100644 index 0000000..dcdbae4 Binary files /dev/null and b/Source/Modulos/Gestor de informes/Views/uGestorInformesViewRegister.dcu differ diff --git a/Source/Modulos/Gestor de informes/Views/uGestorInformesViewRegister.pas b/Source/Modulos/Gestor de informes/Views/uGestorInformesViewRegister.pas new file mode 100644 index 0000000..8c2f0a6 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uGestorInformesViewRegister.pas @@ -0,0 +1,53 @@ +unit uGestorInformesViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, + uEditorInformeIVAClientesReport, uEditorInformeFacturasClienteReport, uEditorInformeFacturasClientePendientesReport, + uEditorInformeRecibosClienteReport, uEditorInformeRecibosCliPendientesReport, + uEditorInformePresupuestosReport, uEditorInformePedidosReport, + + uEditorInformeIVAProveedoresReport, uEditorInformeFacturasProveedorReport, uEditorInformeFacturasProveedorPendientesReport, + uEditorInformeRecibosProveedorReport, uEditorInformeRecibosProvPendientesReport; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorInformePresupuestosReport, 'EditorInformePresupuestosReport'); + EditorRegistry.RegisterClass(TfEditorInformePedidosReport, 'EditorInformePedidosReport'); + EditorRegistry.RegisterClass(TfEditorInformeIVAClientesReport, 'EditorInformeIVAClientesReport'); + EditorRegistry.RegisterClass(TfEditorInformeFacturasClienteReport, 'EditorInformeFacturasClienteReport'); + EditorRegistry.RegisterClass(TfEditorInformeFacturasClientePendientesReport, 'EditorInformeFacturasClientePendientesReport'); + EditorRegistry.RegisterClass(TfEditorInformeRecibosClienteReport, 'EditorInformeRecibosClienteReport'); + EditorRegistry.RegisterClass(TfEditorInformeRecibosCliPendientesReport, 'EditorInformeRecibosCliPendientesReport'); + + EditorRegistry.RegisterClass(TfEditorInformeIVAProveedoresReport, 'EditorInformeIVAProveedoresReport'); + EditorRegistry.RegisterClass(TfEditorInformeFacturasProveedorReport, 'EditorInformeFacturasProveedorReport'); + EditorRegistry.RegisterClass(TfEditorInformeFacturasProveedorPendientesReport, 'EditorInformeFacturasProveedorPendientesReport'); + EditorRegistry.RegisterClass(TfEditorInformeRecibosProveedorReport, 'EditorInformeRecibosProveedorReport'); + EditorRegistry.RegisterClass(TfEditorInformeRecibosProvPendientesReport, 'EditorInformeRecibosProvPendientesReport'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorInformePresupuestosReport); + EditorRegistry.UnRegisterClass(TfEditorInformePedidosReport); + EditorRegistry.UnRegisterClass(TfEditorInformeIVAClientesReport); + EditorRegistry.UnRegisterClass(TfEditorInformeFacturasClienteReport); + EditorRegistry.UnRegisterClass(TfEditorInformeFacturasClientePendientesReport); + EditorRegistry.UnRegisterClass(TfEditorInformeRecibosClienteReport); + EditorRegistry.UnRegisterClass(TfEditorInformeRecibosCliPendientesReport); + + EditorRegistry.UnRegisterClass(TfEditorInformeIVAProveedoresReport); + EditorRegistry.UnRegisterClass(TfEditorInformeFacturasProveedorReport); + EditorRegistry.UnRegisterClass(TfEditorInformeFacturasProveedorPendientesReport); + EditorRegistry.UnRegisterClass(TfEditorInformeRecibosProveedorReport); + EditorRegistry.UnRegisterClass(TfEditorInformeRecibosProvPendientesReport); +end; + +end. diff --git a/Source/Modulos/Gestor de informes/Views/uViewFiltroClientes.dcu b/Source/Modulos/Gestor de informes/Views/uViewFiltroClientes.dcu new file mode 100644 index 0000000..c3b5330 Binary files /dev/null and b/Source/Modulos/Gestor de informes/Views/uViewFiltroClientes.dcu differ diff --git a/Source/Modulos/Gestor de informes/Views/uViewFiltroClientes.dfm b/Source/Modulos/Gestor de informes/Views/uViewFiltroClientes.dfm new file mode 100644 index 0000000..cebe003 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uViewFiltroClientes.dfm @@ -0,0 +1,131 @@ +inherited frViewFiltroClientes: TfrViewFiltroClientes + Width = 451 + Align = alTop + OnCreate = CustomViewCreate + OnDestroy = CustomViewDestroy + ExplicitWidth = 451 + DesignSize = ( + 451 + 195) + object TBXLabel2: TTBXLabel + Left = 0 + Top = 0 + Width = 451 + Height = 29 + Margins.Top = 5 + Margins.Bottom = 10 + Align = alTop + Caption = 'Clientes' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentColor = True + ParentFont = False + Underline = True + end + object bElegirCliente: TBitBtn + AlignWithMargins = True + Left = 61 + Top = 123 + Width = 382 + Height = 23 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 2 + Margins.Bottom = 0 + Anchors = [akLeft, akTop, akRight] + Caption = 'Elegir un cliente' + Enabled = False + TabOrder = 1 + OnClick = bElegirClienteClick + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FF00FF00FF00 + FF00FF00FF00EB00EB00C507C600AB13AD00A119A2009F19A000A215A400AA10 + AC00B608B800CE00CE00EF00EF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00B426B000526840004A823400478F310043962F0042992F0043972F004690 + 3100488533004B7237005A405100D201D200FF00FF00FF00FF00FF00FF00FF00 + FF0062654E004F81350047903100409C2E003AA62C0038AA2B0039A72B003E9E + 2D00459230004D84340056753800A0189F00FF00FF00FF00FF00FF00FF00FF00 + FF005F6B4C004B89330042992F0039A82B0032B428002EBB260031B6270037AB + 2A00409C2E00498C3200527B3600B015B100FF00FF00FF00FF00FF00FF00FF00 + FF0090488700488D32003E9E2D0035AF290035B631007ACB7B002DBF280033B2 + 28003DA12D0047903100576A4800EC01EC00FF00FF00FF00FF00FF00FF00FF00 + FF00F008F1005F7351003E9F2D0034B0290080AC8100D2D3D30081BB820032B2 + 28003DA22D004A863A00C519C500FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00EE09EF007861730036923E00598CAE00498CBB004A81A6002B70 + 3A00606D5900D613D600FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00EA0CF400608CD00054A2D80053A1D6004F9DD300488B + C2009D11AC00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF008C67DE005CA9DD005CA9DD005AA7DC0056A4D900519F + D400565FAB00EA00EA00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00EC0DF60060A7DE0063B0E30063B0E30061AEE1005CA9DD0056A4 + D9004E94CC00C105C600FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00C532ED0066B2E5006BB7E9006BB7E90067B3E60061AEE1005AA7 + DC00539FD500A817BE00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00BA3AE7004989B1004A85AC005895BD0068B2E30064B0E4005CA9 + DE0053A0D400AA1BC300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00CA23E8005098C400539AC7004E93BE00437DA2005190BA005198 + C6003C79A000BE08C300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00F804FC006995D40062ACDA005DA6D3005299C6004284AD003C7F + A900535AA100F300F300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00C140ED0071BAEA0068B2E00059A1CF004990BC004378 + AA00C315D600FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00C83EF000808BDF00668BCC007C60C700D116 + E400FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} + end + object cbxDesglosado: TCheckBox + Left = 23 + Top = 49 + Width = 146 + Height = 17 + Caption = 'Desglosar por cliente' + TabOrder = 2 + end + object edtCliente: TcxTextEdit + Left = 28 + Top = 99 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + Enabled = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 3 + Height = 21 + Width = 415 + end + object rbTodosClientes: TRadioButton + Left = 6 + Top = 29 + Width = 147 + Height = 17 + Caption = 'Incluir a todos los clientes' + Checked = True + TabOrder = 4 + TabStop = True + OnClick = rbTodosClientesClick + end + object rbUnCliente: TRadioButton + Left = 6 + Top = 76 + Width = 175 + Height = 17 + Caption = 'S'#243'lo listar el cliente siguiente:' + TabOrder = 5 + OnClick = rbUnClienteClick + end +end diff --git a/Source/Modulos/Gestor de informes/Views/uViewFiltroClientes.pas b/Source/Modulos/Gestor de informes/Views/uViewFiltroClientes.pas new file mode 100644 index 0000000..0719a02 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uViewFiltroClientes.pas @@ -0,0 +1,95 @@ +unit uViewFiltroClientes; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, cxControls, cxContainer, cxEdit, cxTextEdit, cxDBEdit, + StdCtrls, Buttons, TBXDkPanels, uViewParametrosInforme, uBizContactos, + uClientesController; + +type + IViewFiltroClientes = interface(IViewParametrosInforme) + ['{129906DA-8E64-4312-8095-A04F8007CF7F}'] + end; + + TfrViewFiltroClientes = class(TfrViewParametrosInforme, IViewFiltroClientes) + TBXLabel2: TTBXLabel; + rbTodosClientes: TRadioButton; + rbUnCliente: TRadioButton; + cbxDesglosado: TCheckBox; + bElegirCliente: TBitBtn; + edtCliente: TcxTextEdit; + procedure rbTodosClientesClick(Sender: TObject); + procedure rbUnClienteClick(Sender: TObject); + procedure CustomViewCreate(Sender: TObject); + procedure bElegirClienteClick(Sender: TObject); + procedure CustomViewDestroy(Sender: TObject); + private + FCliente : IBizCliente; + FClientesController : IClientesController; + public + property Cliente : IBizCliente read FCliente; + end; + +implementation + +{$R *.dfm} + +procedure TfrViewFiltroClientes.bElegirClienteClick(Sender: TObject); +var + AClientes : IBizCliente; +begin + inherited; + AClientes := IBizCliente(FClientesController.BuscarTodos); + try + FCliente := IBizCliente(FClientesController.ElegirContacto(AClientes, '', False)); + if Assigned(FCliente) then + begin + FCliente.Open; + edtCliente.Text := FCliente.NOMBRE; + end; + finally + AClientes := NIL; + end; +end; + +procedure TfrViewFiltroClientes.CustomViewCreate(Sender: TObject); +begin + inherited; + FCliente := NIL; + FClientesController := NIL; +end; + +procedure TfrViewFiltroClientes.CustomViewDestroy(Sender: TObject); +begin + inherited; + FCliente := NIL; + FClientesController := NIL; +end; + +procedure TfrViewFiltroClientes.rbTodosClientesClick(Sender: TObject); +begin + if rbTodosClientes.Checked then + begin + cbxDesglosado.Enabled := True; + FCliente := NIL; + bElegirCliente.Enabled := False; + edtCliente.Clear; + edtCliente.Enabled := False; + end; +end; + +procedure TfrViewFiltroClientes.rbUnClienteClick(Sender: TObject); +begin + if rbUnCliente.Checked then + begin + cbxDesglosado.Enabled := False; + bElegirCliente.Enabled := True; + edtCliente.Enabled := True; + if not Assigned(FClientesController) then + FClientesController := TClientesController.Create; + end; +end; + +end. diff --git a/Source/Modulos/Gestor de informes/Views/uViewFiltroClientes_anterior.dfm b/Source/Modulos/Gestor de informes/Views/uViewFiltroClientes_anterior.dfm new file mode 100644 index 0000000..79c0b81 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uViewFiltroClientes_anterior.dfm @@ -0,0 +1,276 @@ +inherited frViewFiltroClientes_anterior: TfrViewFiltroClientes_anterior + Width = 528 + Height = 414 + ExplicitWidth = 528 + ExplicitHeight = 414 + inherited dxLayoutControl1: TdxLayoutControl + Top = 288 + Width = 528 + Height = 126 + Align = alBottom + ExplicitTop = 288 + ExplicitWidth = 528 + ExplicitHeight = 126 + DesignSize = ( + 528 + 126) + object edtlNombre: TcxDBTextEdit [0] + Left = 56 + Top = 10 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'NOMBRE' + DataBinding.DataSource = dsCliente + Enabled = False + ParentFont = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 0 + Height = 21 + Width = 200 + end + object edtNIFCIF: TcxDBTextEdit [1] + Left = 377 + Top = 10 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'NIF_CIF' + DataBinding.DataSource = dsCliente + Enabled = False + ParentFont = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 1 + Height = 21 + Width = 100 + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + LayoutDirection = ldHorizontal + object dxLayoutControl1Item1: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Nombre:' + Control = edtlNombre + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item2: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'NIF/CIF:' + Control = edtNIFCIF + ControlOptions.ShowBorder = False + end + end + end + inherited Panel1: TPanel + Top = 162 + Width = 528 + ExplicitTop = 162 + ExplicitWidth = 528 + inherited bElegirCliente: TBitBtn + ExplicitLeft = 4 + ExplicitTop = 4 + end + inherited bNuevoCliente: TBitBtn + ExplicitLeft = 266 + ExplicitTop = 4 + end + inherited bVerFicha: TBitBtn + ExplicitLeft = 121 + ExplicitTop = 4 + end + end + object GroupBox1: TGroupBox [2] + Left = 0 + Top = 29 + Width = 528 + Height = 133 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 0 + Margins.Bottom = 0 + Align = alTop + Caption = 'Elija una de las siguientes opciones para generar el listado' + TabOrder = 2 + DesignSize = ( + 528 + 133) + object rd1: TRadioButton + Left = 16 + Top = 24 + Width = 273 + Height = 17 + Caption = 'Incluir en el informe a todos los clientes' + Checked = True + TabOrder = 0 + TabStop = True + OnClick = rd1Click + end + object rd2: TRadioButton + Left = 16 + Top = 71 + Width = 361 + Height = 17 + Caption = 'S'#243'lo listar el informe con el cliente siguiente:' + TabOrder = 1 + OnClick = rd2Click + end + object cbxDesglosado: TCheckBox + Left = 33 + Top = 44 + Width = 176 + Height = 17 + Caption = 'Desglosar por cliente' + Checked = True + State = cbChecked + TabOrder = 2 + end + object BitBtn1: TBitBtn + AlignWithMargins = True + Left = 401 + Top = 93 + Width = 115 + Height = 23 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 2 + Margins.Bottom = 0 + Action = actElegirContacto + Anchors = [akTop, akRight] + Caption = 'Elegir un cliente' + TabOrder = 3 + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FF00FF00FF00 + FF00FF00FF00EB00EB00C507C600AB13AD00A119A2009F19A000A215A400AA10 + AC00B608B800CE00CE00EF00EF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00B426B000526840004A823400478F310043962F0042992F0043972F004690 + 3100488533004B7237005A405100D201D200FF00FF00FF00FF00FF00FF00FF00 + FF0062654E004F81350047903100409C2E003AA62C0038AA2B0039A72B003E9E + 2D00459230004D84340056753800A0189F00FF00FF00FF00FF00FF00FF00FF00 + FF005F6B4C004B89330042992F0039A82B0032B428002EBB260031B6270037AB + 2A00409C2E00498C3200527B3600B015B100FF00FF00FF00FF00FF00FF00FF00 + FF0090488700488D32003E9E2D0035AF290035B631007ACB7B002DBF280033B2 + 28003DA12D0047903100576A4800EC01EC00FF00FF00FF00FF00FF00FF00FF00 + FF00F008F1005F7351003E9F2D0034B0290080AC8100D2D3D30081BB820032B2 + 28003DA22D004A863A00C519C500FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00EE09EF007861730036923E00598CAE00498CBB004A81A6002B70 + 3A00606D5900D613D600FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00EA0CF400608CD00054A2D80053A1D6004F9DD300488B + C2009D11AC00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF008C67DE005CA9DD005CA9DD005AA7DC0056A4D900519F + D400565FAB00EA00EA00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00EC0DF60060A7DE0063B0E30063B0E30061AEE1005CA9DD0056A4 + D9004E94CC00C105C600FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00C532ED0066B2E5006BB7E9006BB7E90067B3E60061AEE1005AA7 + DC00539FD500A817BE00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00BA3AE7004989B1004A85AC005895BD0068B2E30064B0E4005CA9 + DE0053A0D400AA1BC300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00CA23E8005098C400539AC7004E93BE00437DA2005190BA005198 + C6003C79A000BE08C300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00F804FC006995D40062ACDA005DA6D3005299C6004284AD003C7F + A900535AA100F300F300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00C140ED0071BAEA0068B2E00059A1CF004990BC004378 + AA00C315D600FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00C83EF000808BDF00668BCC007C60C700D116 + E400FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} + end + object cxDBTextEdit1: TcxDBTextEdit + Left = 33 + Top = 94 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'NOMBRE' + DataBinding.DataSource = dsCliente + Enabled = False + ParentFont = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 4 + Height = 21 + Width = 365 + end + end + object TBXLabel2: TTBXLabel [3] + Left = 0 + Top = 0 + Width = 528 + Height = 29 + Margins.Top = 5 + Margins.Bottom = 10 + Align = alTop + Caption = 'Clientes' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentColor = True + ParentFont = False + Underline = True + end + inherited dsCliente: TDADataSource + Left = 88 + Top = 224 + end + inherited ActionList1: TActionList + Left = 56 + Top = 224 + inherited actElegirContacto: TAction + Enabled = False + end + inherited actAnadirContacto: TAction + Enabled = False + Visible = False + end + inherited actVerContacto: TAction + Enabled = False + end + inherited actElegirDireccion: TAction + Enabled = False + end + inherited actElegirPersonaContacto: TAction + Enabled = False + end + end + inherited PngImageList: TPngImageList + Left = 120 + Top = 224 + end +end diff --git a/Source/Modulos/Gestor de informes/Views/uViewFiltroClientes_anterior.pas b/Source/Modulos/Gestor de informes/Views/uViewFiltroClientes_anterior.pas new file mode 100644 index 0000000..640e29a --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uViewFiltroClientes_anterior.pas @@ -0,0 +1,56 @@ +unit uViewFiltroClientes_anterior; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ImgList, PngImageList, ActnList, DB, + uDAInterfaces, uDADataTable, StdCtrls, Buttons, ExtCtrls, dxLayoutControl, + cxControls, cxContainer, cxEdit, cxTextEdit, cxDBEdit, TBXDkPanels, + uViewDatosYSeleccionClienteBase; + + +type + TfrViewFiltroClientes_anterior = class(TfrViewDatosYSeleccionClienteBase) + dxLayoutControl1Item1: TdxLayoutItem; + edtlNombre: TcxDBTextEdit; + dxLayoutControl1Item2: TdxLayoutItem; + edtNIFCIF: TcxDBTextEdit; + GroupBox1: TGroupBox; + rd1: TRadioButton; + rd2: TRadioButton; + cbxDesglosado: TCheckBox; + TBXLabel2: TTBXLabel; + BitBtn1: TBitBtn; + cxDBTextEdit1: TcxDBTextEdit; + procedure rd1Click(Sender: TObject); + procedure rd2Click(Sender: TObject); + end; + +implementation +{$R *.dfm} + +procedure TfrViewFiltroClientes_anterior.rd1Click(Sender: TObject); +begin + inherited; + if rd1.Checked then + begin + cbxDesglosado.Enabled := True; + actElegirContacto.Enabled := False; + actVerContacto.Enabled := False; + Cliente := Nil; + end; +end; + +procedure TfrViewFiltroClientes_anterior.rd2Click(Sender: TObject); +begin + inherited; + if rd2.Checked then + begin + cbxDesglosado.Enabled := False; + actElegirContacto.Enabled := True; + actVerContacto.Enabled := True; + end; +end; + +end. diff --git a/Source/Modulos/Gestor de informes/Views/uViewFiltroImportes.dcu b/Source/Modulos/Gestor de informes/Views/uViewFiltroImportes.dcu new file mode 100644 index 0000000..dd28331 Binary files /dev/null and b/Source/Modulos/Gestor de informes/Views/uViewFiltroImportes.dcu differ diff --git a/Source/Modulos/Gestor de informes/Views/uViewFiltroImportes.dfm b/Source/Modulos/Gestor de informes/Views/uViewFiltroImportes.dfm new file mode 100644 index 0000000..0fc8dfb --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uViewFiltroImportes.dfm @@ -0,0 +1,69 @@ +inherited frViewFiltroImportes: TfrViewFiltroImportes + Width = 451 + Height = 93 + Align = alTop + ExplicitWidth = 451 + ExplicitHeight = 93 + object TBXLabel2: TTBXLabel + Left = 0 + Top = 0 + Width = 451 + Height = 29 + Margins.Top = 5 + Margins.Bottom = 10 + Align = alTop + Caption = 'Importes' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentColor = True + ParentFont = False + Underline = True + end + object TBXAlignmentPanel1: TTBXAlignmentPanel + AlignWithMargins = True + Left = 3 + Top = 32 + Width = 445 + Height = 42 + Margins.Left = 5 + Margins.Right = 5 + Align = alTop + AutoSize = True + TabOrder = 1 + object cbxDesglosado: TCheckBox + Left = 7 + Top = 0 + Width = 159 + Height = 17 + Caption = 'Solo facturas que superen:' + Color = clBtnFace + ParentColor = False + TabOrder = 0 + OnClick = cbxDesglosadoClick + end + object eImporte: TcxSpinEdit + Left = 24 + Top = 21 + Enabled = False + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = ',0.00 '#8364';-,0.00 '#8364 + Properties.EditFormat = ',0.00 '#8364';-,0.00 '#8364 + Properties.UseDisplayFormatWhenEditing = True + Properties.ValueType = vtFloat + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 1 + Value = 3000.000000000000000000 + Width = 142 + end + end +end diff --git a/Source/Modulos/Gestor de informes/Views/uViewFiltroImportes.pas b/Source/Modulos/Gestor de informes/Views/uViewFiltroImportes.pas new file mode 100644 index 0000000..bec8f36 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uViewFiltroImportes.pas @@ -0,0 +1,32 @@ +unit uViewFiltroImportes; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxSpinEdit, + dxLayoutControl, StdCtrls, cxControls, TBXDkPanels, uViewParametrosInforme; + +type + IViewFiltroImportes = interface(IViewParametrosInforme) + ['{AE773F0B-E72A-4A71-9C5C-8E68EC61456A}'] + end; + + TfrViewFiltroImportes = class(TfrViewParametrosInforme, IViewFiltroImportes) + cbxDesglosado: TCheckBox; + eImporte: TcxSpinEdit; + TBXLabel2: TTBXLabel; + TBXAlignmentPanel1: TTBXAlignmentPanel; + procedure cbxDesglosadoClick(Sender: TObject); + end; + +implementation +{$R *.dfm} + +procedure TfrViewFiltroImportes.cbxDesglosadoClick(Sender: TObject); +begin + inherited; + eImporte.Enabled := not eImporte.Enabled; +end; + +end. diff --git a/Source/Modulos/Gestor de informes/Views/uViewFiltroProveedores.dcu b/Source/Modulos/Gestor de informes/Views/uViewFiltroProveedores.dcu new file mode 100644 index 0000000..333d977 Binary files /dev/null and b/Source/Modulos/Gestor de informes/Views/uViewFiltroProveedores.dcu differ diff --git a/Source/Modulos/Gestor de informes/Views/uViewFiltroProveedores.dfm b/Source/Modulos/Gestor de informes/Views/uViewFiltroProveedores.dfm new file mode 100644 index 0000000..4198254 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uViewFiltroProveedores.dfm @@ -0,0 +1,131 @@ +inherited frViewFiltroProveedores: TfrViewFiltroProveedores + Width = 451 + Align = alTop + OnCreate = CustomViewCreate + OnDestroy = CustomViewDestroy + ExplicitWidth = 451 + DesignSize = ( + 451 + 195) + object TBXLabel2: TTBXLabel + Left = 0 + Top = 0 + Width = 451 + Height = 29 + Margins.Top = 5 + Margins.Bottom = 10 + Align = alTop + Caption = 'Proveedores' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentColor = True + ParentFont = False + Underline = True + end + object bElegirProveedor: TBitBtn + AlignWithMargins = True + Left = 61 + Top = 123 + Width = 382 + Height = 23 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 2 + Margins.Bottom = 0 + Anchors = [akLeft, akTop, akRight] + Caption = 'Elegir un proveedor' + Enabled = False + TabOrder = 1 + OnClick = bElegirProveedorClick + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FF00FF00FF00 + FF00FF00FF00EB00EB00C507C600AB13AD00A119A2009F19A000A215A400AA10 + AC00B608B800CE00CE00EF00EF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00B426B000526840004A823400478F310043962F0042992F0043972F004690 + 3100488533004B7237005A405100D201D200FF00FF00FF00FF00FF00FF00FF00 + FF0062654E004F81350047903100409C2E003AA62C0038AA2B0039A72B003E9E + 2D00459230004D84340056753800A0189F00FF00FF00FF00FF00FF00FF00FF00 + FF005F6B4C004B89330042992F0039A82B0032B428002EBB260031B6270037AB + 2A00409C2E00498C3200527B3600B015B100FF00FF00FF00FF00FF00FF00FF00 + FF0090488700488D32003E9E2D0035AF290035B631007ACB7B002DBF280033B2 + 28003DA12D0047903100576A4800EC01EC00FF00FF00FF00FF00FF00FF00FF00 + FF00F008F1005F7351003E9F2D0034B0290080AC8100D2D3D30081BB820032B2 + 28003DA22D004A863A00C519C500FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00EE09EF007861730036923E00598CAE00498CBB004A81A6002B70 + 3A00606D5900D613D600FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00EA0CF400608CD00054A2D80053A1D6004F9DD300488B + C2009D11AC00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF008C67DE005CA9DD005CA9DD005AA7DC0056A4D900519F + D400565FAB00EA00EA00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00EC0DF60060A7DE0063B0E30063B0E30061AEE1005CA9DD0056A4 + D9004E94CC00C105C600FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00C532ED0066B2E5006BB7E9006BB7E90067B3E60061AEE1005AA7 + DC00539FD500A817BE00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00BA3AE7004989B1004A85AC005895BD0068B2E30064B0E4005CA9 + DE0053A0D400AA1BC300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00CA23E8005098C400539AC7004E93BE00437DA2005190BA005198 + C6003C79A000BE08C300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00F804FC006995D40062ACDA005DA6D3005299C6004284AD003C7F + A900535AA100F300F300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00C140ED0071BAEA0068B2E00059A1CF004990BC004378 + AA00C315D600FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00C83EF000808BDF00668BCC007C60C700D116 + E400FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} + end + object cbxDesglosado: TCheckBox + Left = 23 + Top = 49 + Width = 158 + Height = 17 + Caption = 'Desglosar por proveedor' + TabOrder = 2 + end + object edtProveedor: TcxTextEdit + Left = 28 + Top = 99 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + Enabled = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 3 + Height = 21 + Width = 415 + end + object rbTodosProveedores: TRadioButton + Left = 6 + Top = 29 + Width = 195 + Height = 17 + Caption = 'Incluir a todos los Proveedores' + Checked = True + TabOrder = 4 + TabStop = True + OnClick = rbTodosProveedoresClick + end + object rbUnProveedor: TRadioButton + Left = 6 + Top = 76 + Width = 175 + Height = 17 + Caption = 'S'#243'lo listar el proveedor siguiente:' + TabOrder = 5 + OnClick = rbUnProveedorClick + end +end diff --git a/Source/Modulos/Gestor de informes/Views/uViewFiltroProveedores.pas b/Source/Modulos/Gestor de informes/Views/uViewFiltroProveedores.pas new file mode 100644 index 0000000..b9cb10e --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uViewFiltroProveedores.pas @@ -0,0 +1,95 @@ +unit uViewFiltroProveedores; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, cxControls, cxContainer, cxEdit, cxTextEdit, cxDBEdit, + StdCtrls, Buttons, TBXDkPanels, uViewParametrosInforme, uBizContactos, + uProveedoresController; + +type + IViewFiltroProveedores = interface(IViewParametrosInforme) + ['{129906DA-8E64-4312-8095-A04F8007CF7F}'] + end; + + TfrViewFiltroProveedores = class(TfrViewParametrosInforme, IViewFiltroProveedores) + TBXLabel2: TTBXLabel; + rbTodosProveedores: TRadioButton; + rbUnProveedor: TRadioButton; + cbxDesglosado: TCheckBox; + bElegirProveedor: TBitBtn; + edtProveedor: TcxTextEdit; + procedure rbTodosProveedoresClick(Sender: TObject); + procedure rbUnProveedorClick(Sender: TObject); + procedure CustomViewCreate(Sender: TObject); + procedure bElegirProveedorClick(Sender: TObject); + procedure CustomViewDestroy(Sender: TObject); + private + FProveedor : IBizProveedor; + FProveedoresController : IProveedoresController; + public + property Proveedor : IBizProveedor read FProveedor; + end; + +implementation + +{$R *.dfm} + +procedure TfrViewFiltroProveedores.bElegirProveedorClick(Sender: TObject); +var + AProveedores : IBizProveedor; +begin + inherited; + AProveedores := IBizProveedor(FProveedoresController.BuscarTodos); + try + FProveedor := IBizProveedor(FProveedoresController.ElegirContacto(AProveedores, '', False)); + if Assigned(FProveedor) then + begin + FProveedor.Open; + edtProveedor.Text := FProveedor.NOMBRE; + end; + finally + AProveedores := NIL; + end; +end; + +procedure TfrViewFiltroProveedores.CustomViewCreate(Sender: TObject); +begin + inherited; + FProveedor := NIL; + FProveedoresController := NIL; +end; + +procedure TfrViewFiltroProveedores.CustomViewDestroy(Sender: TObject); +begin + inherited; + FProveedor := NIL; + FProveedoresController := NIL; +end; + +procedure TfrViewFiltroProveedores.rbTodosProveedoresClick(Sender: TObject); +begin + if rbTodosProveedores.Checked then + begin + cbxDesglosado.Enabled := True; + FProveedor := NIL; + bElegirProveedor.Enabled := False; + edtProveedor.Clear; + edtProveedor.Enabled := False; + end; +end; + +procedure TfrViewFiltroProveedores.rbUnProveedorClick(Sender: TObject); +begin + if rbUnProveedor.Checked then + begin + cbxDesglosado.Enabled := False; + bElegirProveedor.Enabled := True; + edtProveedor.Enabled := True; + if not Assigned(FProveedoresController) then + FProveedoresController := TProveedoresController.Create; + end; +end; + +end. diff --git a/Source/Modulos/Gestor de informes/Views/uViewParametrosInforme.dcu b/Source/Modulos/Gestor de informes/Views/uViewParametrosInforme.dcu new file mode 100644 index 0000000..2035048 Binary files /dev/null and b/Source/Modulos/Gestor de informes/Views/uViewParametrosInforme.dcu differ diff --git a/Source/Modulos/Gestor de informes/Views/uViewParametrosInforme.dfm b/Source/Modulos/Gestor de informes/Views/uViewParametrosInforme.dfm new file mode 100644 index 0000000..3fa6f1f --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uViewParametrosInforme.dfm @@ -0,0 +1,6 @@ +inherited frViewParametrosInforme: TfrViewParametrosInforme + Width = 369 + Height = 195 + ExplicitWidth = 369 + ExplicitHeight = 195 +end diff --git a/Source/Modulos/Gestor de informes/Views/uViewParametrosInforme.pas b/Source/Modulos/Gestor de informes/Views/uViewParametrosInforme.pas new file mode 100644 index 0000000..fe9e71e --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uViewParametrosInforme.pas @@ -0,0 +1,26 @@ +unit uViewParametrosInforme; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase; + +type + IViewParametrosInforme = interface(IViewBase) + ['{2578FF9E-F084-4603-81D8-32450E3865B7}'] + end; + + TfrViewParametrosInforme = class(TfrViewBase, IViewParametrosInforme) + private + { Private declarations } + public + { Public declarations } + end; + + +implementation + +{$R *.dfm} + +end. diff --git a/Source/Modulos/Gestor de informes/Views/uViewPeriodoFechas.dcu b/Source/Modulos/Gestor de informes/Views/uViewPeriodoFechas.dcu new file mode 100644 index 0000000..0193bf1 Binary files /dev/null and b/Source/Modulos/Gestor de informes/Views/uViewPeriodoFechas.dcu differ diff --git a/Source/Modulos/Gestor de informes/Views/uViewPeriodoFechas.dfm b/Source/Modulos/Gestor de informes/Views/uViewPeriodoFechas.dfm new file mode 100644 index 0000000..461c868 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uViewPeriodoFechas.dfm @@ -0,0 +1,305 @@ +inherited frViewPeriodoFechas: TfrViewPeriodoFechas + Width = 451 + Height = 248 + Align = alTop + ExplicitWidth = 451 + ExplicitHeight = 248 + object TBXAlignmentPanel2: TTBXAlignmentPanel + AlignWithMargins = True + Left = 3 + Top = 32 + Width = 445 + Height = 97 + Margins.Left = 5 + Margins.Top = 5 + Margins.Right = 5 + Align = alTop + AutoSize = True + TabOrder = 0 + DesignSize = ( + 445 + 97) + object Label3: TLabel + Left = 5 + Top = 5 + Width = 435 + Height = 13 + Align = alTop + Caption = 'Rango de fechas:' + Transparent = True + ExplicitWidth = 85 + end + object Label1: TLabel + Left = 29 + Top = 52 + Width = 34 + Height = 13 + Caption = 'Desde:' + Transparent = True + end + object Label2: TLabel + Left = 32 + Top = 79 + Width = 31 + Height = 13 + Caption = 'hasta:' + Transparent = True + end + object edtFechaFin: TcxDateEdit + Left = 69 + Top = 76 + Anchors = [akLeft, akTop, akRight] + Properties.DateButtons = [btnToday] + Properties.PostPopupValueOnTab = True + Properties.SaveTime = False + Properties.ShowTime = False + Properties.OnValidate = edtFechaFinPropertiesValidate + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 0 + Width = 362 + end + object edtFechaIni: TcxDateEdit + Left = 72 + Top = 49 + Anchors = [akLeft, akTop, akRight] + Properties.DateButtons = [btnToday] + Properties.PostPopupValueOnTab = True + Properties.SaveTime = False + Properties.ShowTime = False + Properties.OnValidate = edtFechaIni2PropertiesValidate + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 1 + Width = 360 + end + object cbPeriodo: TcxComboBox + Left = 3 + Top = 21 + RepositoryItem = cxRepositoryPeriodos + Anchors = [akLeft, akTop, akRight] + Properties.OnChange = cbPeriodoPropertiesChange + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 2 + Text = 'Este mes' + Width = 429 + end + end + object TBXLabel2: TTBXLabel + Left = 0 + Top = 0 + Width = 451 + Height = 29 + Margins.Top = 5 + Margins.Bottom = 10 + Align = alTop + Caption = 'Periodo' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentColor = True + ParentFont = False + Underline = True + end + object TBXAlignmentPanel3: TTBXAlignmentPanel + AlignWithMargins = True + Left = 3 + Top = 135 + Width = 445 + Height = 98 + Margins.Left = 5 + Margins.Top = 5 + Margins.Right = 5 + Align = alTop + AutoSize = True + TabOrder = 2 + DesignSize = ( + 445 + 98) + object Label4: TLabel + Left = 5 + Top = 5 + Width = 435 + Height = 13 + Align = alTop + Caption = 'Rango de fechas de vencimiento:' + Transparent = True + ExplicitWidth = 160 + end + object Label5: TLabel + Left = 29 + Top = 53 + Width = 34 + Height = 13 + Caption = 'Desde:' + Transparent = True + end + object Label6: TLabel + Left = 32 + Top = 80 + Width = 31 + Height = 13 + Caption = 'hasta:' + Transparent = True + end + object edtFechaVenFin: TcxDateEdit + Left = 70 + Top = 77 + Anchors = [akLeft, akTop, akRight] + Properties.DateButtons = [btnToday] + Properties.PostPopupValueOnTab = True + Properties.SaveTime = False + Properties.ShowTime = False + Properties.OnValidate = edtFechaVenFinPropertiesValidate + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 0 + Width = 362 + end + object edtFechaVenIni: TcxDateEdit + Left = 72 + Top = 50 + Anchors = [akLeft, akTop, akRight] + Properties.DateButtons = [btnToday] + Properties.PostPopupValueOnTab = True + Properties.SaveTime = False + Properties.ShowTime = False + Properties.OnValidate = edtFechaVenIniPropertiesValidate + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 1 + Width = 360 + end + object cbPeriodo2: TcxComboBox + Left = 3 + Top = 21 + RepositoryItem = cxRepositoryPeriodos + Anchors = [akLeft, akTop, akRight] + Properties.OnChange = cbPeriodo2PropertiesChange + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 2 + Text = 'Este mes' + Width = 429 + end + end + object cxRepository: TcxEditRepository + Left = 32 + Top = 24 + object cxRepositoryPeriodos: TcxEditRepositoryComboBoxItem + Properties.BeepOnError = True + Properties.DropDownListStyle = lsFixedList + Properties.DropDownRows = 10 + Properties.ImmediatePost = True + Properties.ImmediateUpdateText = True + Properties.Items.Strings = ( + 'Todas las fechas' + 'Hoy' + 'Ayer' + 'Esta semana' + 'Este mes' + 'Este a'#241'o' + #218'ltimos 7 d'#237'as' + #218'ltimos 30 d'#237'as' + #218'ltimos 3 meses' + 'Mes anterior' + 'A'#241'o anterior' + 'Personalizado') + Properties.PostPopupValueOnTab = True + Properties.ReadOnly = False + end + end +end diff --git a/Source/Modulos/Gestor de informes/Views/uViewPeriodoFechas.pas b/Source/Modulos/Gestor de informes/Views/uViewPeriodoFechas.pas new file mode 100644 index 0000000..3d91614 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uViewPeriodoFechas.pas @@ -0,0 +1,404 @@ +unit uViewPeriodoFechas; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxGraphics, cxEdit, cxDropDownEdit, cxCalendar, StdCtrls, + cxControls, cxContainer, cxTextEdit, cxMaskEdit, TBXDkPanels, + cxEditRepositoryItems, dxLayoutControl, dxLayoutLookAndFeels, uViewBase, + Mask, JvExMask, JvToolEdit, TB2Dock, uViewParametrosInforme; + +type + IViewPeriodoFechas = interface(IViewParametrosInforme) + ['{793084E2-873E-4C57-8BD6-9087816CCF3A}'] + end; + + TTipoFecha = (TFecha, TFechaVencimiento); + + TfrViewPeriodoFechas = class(TfrViewParametrosInforme, IViewPeriodoFechas) + cxRepository: TcxEditRepository; + cxRepositoryPeriodos: TcxEditRepositoryComboBoxItem; + edtFechaIni: TcxDateEdit; + edtFechaFin: TcxDateEdit; + TBXLabel2: TTBXLabel; + TBXAlignmentPanel2: TTBXAlignmentPanel; + Label1: TLabel; + Label2: TLabel; + Label3: TLabel; + TBXAlignmentPanel3: TTBXAlignmentPanel; + Label4: TLabel; + Label5: TLabel; + Label6: TLabel; + edtFechaVenFin: TcxDateEdit; + edtFechaVenIni: TcxDateEdit; + cbPeriodo: TcxComboBox; + cbPeriodo2: TcxComboBox; + procedure cbPeriodoPropertiesChange(Sender: TObject); + procedure edtFechaIni2PropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); + procedure edtFechaFinPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); + procedure cbPeriodo2PropertiesChange(Sender: TObject); + procedure edtFechaVenIniPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure edtFechaVenFinPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + private + function GetFechaFinal: Variant; + function GetFechaInicial: Variant; + procedure SetFechaFinal(const Value: Variant); + procedure SetFechaInicial(const Value: Variant); + + function GetFechaVenFinal: Variant; + function GetFechaVenInicial: Variant; + procedure SetFechaVenFinal(const Value: Variant); + procedure SetFechaVenInicial(const Value: Variant); + + public + procedure CualquierFecha(const ATipoFecha: TTipoFecha); + procedure Hoy(const ATipoFecha: TTipoFecha); + procedure Ayer(const ATipoFecha: TTipoFecha); + procedure EstaSemana(const ATipoFecha: TTipoFecha); + procedure EsteMes(const ATipoFecha: TTipoFecha); + procedure EsteAno(const ATipoFecha: TTipoFecha); + procedure Ultimos7dias(const ATipoFecha: TTipoFecha); + procedure Ultimos30dias(const ATipoFecha: TTipoFecha); + procedure Ultimos3meses(const ATipoFecha: TTipoFecha); + procedure MesAnterior(const ATipoFecha: TTipoFecha); + procedure AnoAnterior(const ATipoFecha: TTipoFecha); + procedure Personalizado(const ATipoFecha: TTipoFecha); + property FechaInicial : Variant read GetFechaInicial write SetFechaInicial; + property FechaFinal : Variant read GetFechaFinal write SetFechaFinal; + property FechaVenInicial : Variant read GetFechaVenInicial write SetFechaVenInicial; + property FechaVenFinal : Variant read GetFechaVenFinal write SetFechaVenFinal; + constructor Create(AOwner: TComponent); override; + end; + +implementation + +uses DateUtils; + +{$R *.dfm} + +procedure TfrViewPeriodoFechas.AnoAnterior(const ATipoFecha: TTipoFecha); +begin + case ATipoFecha of + TFecha: begin + edtFechaIni.Date := StartOfTheYear(IncYear(Today, -1)); + edtFechaFin.Date := EndOfTheYear(IncYear(Today, -1)); + end; + TFechaVencimiento: begin + edtFechaVenIni.Date := StartOfTheYear(IncYear(Today, -1)); + edtFechaVenFin.Date := EndOfTheYear(IncYear(Today, -1)); + end; + end; +end; + +procedure TfrViewPeriodoFechas.Ayer(const ATipoFecha: TTipoFecha); +begin + case ATipoFecha of + TFecha: begin + edtFechaIni.Date := Yesterday; + edtFechaFin.Date := Yesterday; + end; + TFechaVencimiento: begin + edtFechaVenIni.Date := Yesterday; + edtFechaVenFin.Date := Yesterday; + end; + end; +end; + +procedure TfrViewPeriodoFechas.EstaSemana(const ATipoFecha: TTipoFecha); +begin + case ATipoFecha of + TFecha: begin + edtFechaIni.Date := StartOfTheWeek(Today); + edtFechaFin.Date := EndOfTheWeek(Today); + end; + TFechaVencimiento: begin + edtFechaVenIni.Date := StartOfTheWeek(Today); + edtFechaVenFin.Date := EndOfTheWeek(Today); + end; + end; +end; + +procedure TfrViewPeriodoFechas.EsteAno(const ATipoFecha: TTipoFecha); +begin + case ATipoFecha of + TFecha: begin + edtFechaIni.Date := StartOfTheYear(Today); + edtFechaFin.Date := EndOfTheYear(Today); + end; + TFechaVencimiento: begin + edtFechaVenIni.Date := StartOfTheYear(Today); + edtFechaVenFin.Date := EndOfTheYear(Today); + end; + end; +end; + +procedure TfrViewPeriodoFechas.EsteMes(const ATipoFecha: TTipoFecha); +begin + case ATipoFecha of + TFecha: begin + edtFechaIni.Date := StartOfTheMonth(Today); + edtFechaFin.Date := EndOfTheMonth(Today); + end; + TFechaVencimiento: begin + edtFechaVenIni.Date := StartOfTheMonth(Today); + edtFechaVenFin.Date := EndOfTheMonth(Today); + end; + end; +end; + +function TfrViewPeriodoFechas.GetFechaFinal: Variant; +begin + Result := edtFechaFin.EditValue; +end; + +function TfrViewPeriodoFechas.GetFechaInicial: Variant; +begin + Result := edtFechaIni.EditValue; +end; + +function TfrViewPeriodoFechas.GetFechaVenFinal: Variant; +begin + Result := edtFechaVenFin.EditValue; +end; + +function TfrViewPeriodoFechas.GetFechaVenInicial: Variant; +begin + Result := edtFechaVenIni.EditValue; +end; + +procedure TfrViewPeriodoFechas.Hoy(const ATipoFecha: TTipoFecha); +begin + case ATipoFecha of + TFecha: begin + edtFechaIni.Date := Today; + edtFechaFin.Date := Today; + end; + TFechaVencimiento: begin + edtFechaVenIni.Date := Today; + edtFechaVenFin.Date := Today; + end; + end; +end; + +procedure TfrViewPeriodoFechas.MesAnterior(const ATipoFecha: TTipoFecha); +begin + case ATipoFecha of + TFecha: begin + edtFechaIni.Date := StartOfTheMonth(IncMonth(Today, -1)); + edtFechaFin.Date := EndOfTheMonth(IncMonth(Today, -1)); + end; + TFechaVencimiento: begin + edtFechaVenIni.Date := StartOfTheMonth(IncMonth(Today, -1)); + edtFechaVenFin.Date := EndOfTheMonth(IncMonth(Today, -1)); + end; + end; +end; + +procedure TfrViewPeriodoFechas.Personalizado(const ATipoFecha: TTipoFecha); +begin + case ATipoFecha of + TFecha: begin + edtFechaIni.SetFocus; + end; + TFechaVencimiento: begin + edtFechaVenIni.SetFocus; + end; + end; +end; + +procedure TfrViewPeriodoFechas.SetFechaFinal(const Value: Variant); +begin + edtFechaFin.EditValue := Value; +end; + +procedure TfrViewPeriodoFechas.SetFechaInicial(const Value: Variant); +begin + edtFechaIni.EditValue := Value; +end; + +procedure TfrViewPeriodoFechas.SetFechaVenFinal(const Value: Variant); +begin + edtFechaVenFin.EditValue := Value; +end; + +procedure TfrViewPeriodoFechas.SetFechaVenInicial(const Value: Variant); +begin + edtFechaVenIni.EditValue := Value; +end; + +procedure TfrViewPeriodoFechas.Ultimos30dias(const ATipoFecha: TTipoFecha); +begin + case ATipoFecha of + TFecha: begin + edtFechaIni.Date := IncDay(Today, -30); + edtFechaFin.Date := Today + end; + TFechaVencimiento: begin + edtFechaVenIni.Date := IncDay(Today, -30); + edtFechaVenFin.Date := Today + end; + end; +end; + +procedure TfrViewPeriodoFechas.Ultimos3meses(const ATipoFecha: TTipoFecha); +begin + case ATipoFecha of + TFecha: begin + edtFechaIni.Date := IncMonth(Today, -3); + edtFechaFin.Date := Today + end; + TFechaVencimiento: begin + edtFechaVenIni.Date := IncMonth(Today, -3); + edtFechaVenFin.Date := Today + end; + end; +end; + +procedure TfrViewPeriodoFechas.Ultimos7dias(const ATipoFecha: TTipoFecha); +begin + case ATipoFecha of + TFecha: begin + edtFechaIni.Date := IncDay(Today, -7); + edtFechaFin.Date := Today + end; + TFechaVencimiento: begin + edtFechaVenIni.Date := IncDay(Today, -7); + edtFechaVenFin.Date := Today + end; + end; +end; + +procedure TfrViewPeriodoFechas.cbPeriodo2PropertiesChange(Sender: TObject); +begin + case (Sender as TcxComboBox).ItemIndex of + 0 : CualquierFecha(TFechaVencimiento); + 1 : Hoy(TFechaVencimiento); + 2 : Ayer(TFechaVencimiento); + 3 : EstaSemana(TFechaVencimiento); + 4 : EsteMes(TFechaVencimiento); + 5 : EsteAno(TFechaVencimiento); + 6 : Ultimos7dias(TFechaVencimiento); + 7 : Ultimos30dias(TFechaVencimiento); + 8 : Ultimos3meses(TFechaVencimiento); + 9 : MesAnterior(TFechaVencimiento); + 10 : AnoAnterior(TFechaVencimiento); + else + Personalizado(TFechaVencimiento); + end; +end; + +procedure TfrViewPeriodoFechas.cbPeriodoPropertiesChange(Sender: TObject); +begin + case (Sender as TcxComboBox).ItemIndex of + 0 : CualquierFecha(TFecha); + 1 : Hoy(TFecha); + 2 : Ayer(TFecha); + 3 : EstaSemana(TFecha); + 4 : EsteMes(TFecha); + 5 : EsteAno(TFecha); + 6 : Ultimos7dias(TFecha); + 7 : Ultimos30dias(TFecha); + 8 : Ultimos3meses(TFecha); + 9 : MesAnterior(TFecha); + 10 : AnoAnterior(TFecha); + else + Personalizado(TFecha); + end; +end; + +constructor TfrViewPeriodoFechas.Create(AOwner: TComponent); +begin + inherited; + cbPeriodo.ItemIndex := 0; + cbPeriodo2.ItemIndex := 0; +// EsteMes(TFecha); +end; + +procedure TfrViewPeriodoFechas.CualquierFecha(const ATipoFecha: TTipoFecha); +begin + case ATipoFecha of + TFecha: begin + edtFechaIni.Clear; + edtFechaFin.Clear; + end; + TFechaVencimiento: begin + edtFechaVenIni.Clear; + edtFechaVenFin.Clear; + end; + end; +end; + +procedure TfrViewPeriodoFechas.edtFechaIni2PropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + if Length(VarToStr(DisplayValue)) > 0 then + begin + if DisplayValue <> edtFechaIni.Date then + cbPeriodo.ItemIndex := 12; + if DisplayValue > edtFechaFin.Date then + begin + edtFechaFin.EditText := DisplayValue; + edtFechaFin.ValidateEdit(True); + end; + end; +end; + +procedure TfrViewPeriodoFechas.edtFechaVenFinPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); +begin + if Length(VarToStr(DisplayValue)) > 0 then + begin + if DisplayValue <> edtFechaVenFin.Date then + cbPeriodo2.ItemIndex := 12; + if DisplayValue < edtFechaVenIni.Date then + begin + edtFechaVenIni.EditText := DisplayValue; + edtFechaVenIni.ValidateEdit(True); + end; + end; +end; + +procedure TfrViewPeriodoFechas.edtFechaVenIniPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); +begin + inherited; + if Length(VarToStr(DisplayValue)) > 0 then + begin + if DisplayValue <> edtFechaVenIni.Date then + cbPeriodo2.ItemIndex := 12; + if DisplayValue > edtFechaVenFin.Date then + begin + edtFechaVenFin.EditText := DisplayValue; + edtFechaVenFin.ValidateEdit(True); + end; + end; +end; + +procedure TfrViewPeriodoFechas.edtFechaFinPropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + if Length(VarToStr(DisplayValue)) > 0 then + begin + if DisplayValue <> edtFechaFin.Date then + cbPeriodo.ItemIndex := 12; + if DisplayValue < edtFechaIni.Date then + begin + edtFechaIni.EditText := DisplayValue; + edtFechaIni.ValidateEdit(True); + end; + end; +end; + +end. + diff --git a/Source/Modulos/Historico de movimientos/Controller/HistoricoMovimientos_controller.bdsproj b/Source/Modulos/Historico de movimientos/Controller/HistoricoMovimientos_controller.bdsproj new file mode 100644 index 0000000..b44298d --- /dev/null +++ b/Source/Modulos/Historico de movimientos/Controller/HistoricoMovimientos_controller.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + HistoricoMovimientos_controller.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Historico de movimientos/Controller/HistoricoMovimientos_controller.dcu b/Source/Modulos/Historico de movimientos/Controller/HistoricoMovimientos_controller.dcu new file mode 100644 index 0000000..8d4caab Binary files /dev/null and b/Source/Modulos/Historico de movimientos/Controller/HistoricoMovimientos_controller.dcu differ diff --git a/Source/Modulos/Historico de movimientos/Controller/HistoricoMovimientos_controller.dpk b/Source/Modulos/Historico de movimientos/Controller/HistoricoMovimientos_controller.dpk new file mode 100644 index 0000000..c8efefc Binary files /dev/null and b/Source/Modulos/Historico de movimientos/Controller/HistoricoMovimientos_controller.dpk differ diff --git a/Source/Modulos/Historico de movimientos/Controller/HistoricoMovimientos_controller.dproj b/Source/Modulos/Historico de movimientos/Controller/HistoricoMovimientos_controller.dproj new file mode 100644 index 0000000..98dbba2 --- /dev/null +++ b/Source/Modulos/Historico de movimientos/Controller/HistoricoMovimientos_controller.dproj @@ -0,0 +1,540 @@ + + + {5874467b-b5ec-4f13-a56b-36d9d93d49a5} + HistoricoMovimientos_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\HistoricoMovimientos_controller.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0HistoricoMovimientos_controller.dpk + + + + + MainSource + + + + + + + + + + + diff --git a/Source/Modulos/Historico de movimientos/Controller/HistoricoMovimientos_controller.rc b/Source/Modulos/Historico de movimientos/Controller/HistoricoMovimientos_controller.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Historico de movimientos/Controller/HistoricoMovimientos_controller.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Historico de movimientos/Controller/HistoricoMovimientos_controller.res b/Source/Modulos/Historico de movimientos/Controller/HistoricoMovimientos_controller.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Historico de movimientos/Controller/HistoricoMovimientos_controller.res differ diff --git a/Source/Modulos/Historico de movimientos/Controller/View/uIEditorHistoricoMovimientos.dcu b/Source/Modulos/Historico de movimientos/Controller/View/uIEditorHistoricoMovimientos.dcu new file mode 100644 index 0000000..baf3eb1 Binary files /dev/null and b/Source/Modulos/Historico de movimientos/Controller/View/uIEditorHistoricoMovimientos.dcu differ diff --git a/Source/Modulos/Historico de movimientos/Controller/View/uIEditorHistoricoMovimientos.pas b/Source/Modulos/Historico de movimientos/Controller/View/uIEditorHistoricoMovimientos.pas new file mode 100644 index 0000000..fba4926 --- /dev/null +++ b/Source/Modulos/Historico de movimientos/Controller/View/uIEditorHistoricoMovimientos.pas @@ -0,0 +1,27 @@ +unit uIEditorHistoricoMovimientos; + +interface + +uses + uEditorGridBase, uBizHistoricoMovimientos, uHistoricoMovimientosController; + +type + IEditorHistoricoMovimientos = interface(IEditorGridBase) + ['{19564BB7-9D78-4FA5-BAA9-A437B3205EC3}'] + function GetHistoricoMovimientos: IBizHistoricoMovimientos; + procedure SetHistoricoMovimientos(const Value: IBizHistoricoMovimientos); + property HistoricoMovimientos: IBizHistoricoMovimientos read GetHistoricoMovimientos write SetHistoricoMovimientos; + + function GetController : IHistoricoMovimientosController; + procedure SetController (const Value : IHistoricoMovimientosController); + property Controller : IHistoricoMovimientosController read GetController write SetController; + + procedure SetMultiSelect (AValue : Boolean); + function GetMultiSelect : Boolean; + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + end; + + +implementation + +end. diff --git a/Source/Modulos/Historico de movimientos/Controller/uHistoricoMovimientosController.dcu b/Source/Modulos/Historico de movimientos/Controller/uHistoricoMovimientosController.dcu new file mode 100644 index 0000000..5c7535f Binary files /dev/null and b/Source/Modulos/Historico de movimientos/Controller/uHistoricoMovimientosController.dcu differ diff --git a/Source/Modulos/Historico de movimientos/Controller/uHistoricoMovimientosController.pas b/Source/Modulos/Historico de movimientos/Controller/uHistoricoMovimientosController.pas new file mode 100644 index 0000000..334961b Binary files /dev/null and b/Source/Modulos/Historico de movimientos/Controller/uHistoricoMovimientosController.pas differ diff --git a/Source/Modulos/Historico de movimientos/Data/HistoricoMovimientos_data.bdsproj b/Source/Modulos/Historico de movimientos/Data/HistoricoMovimientos_data.bdsproj new file mode 100644 index 0000000..4afbcaf --- /dev/null +++ b/Source/Modulos/Historico de movimientos/Data/HistoricoMovimientos_data.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + HistoricoMovimientos_data.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Historico de movimientos/Data/HistoricoMovimientos_data.dcu b/Source/Modulos/Historico de movimientos/Data/HistoricoMovimientos_data.dcu new file mode 100644 index 0000000..eb10921 Binary files /dev/null and b/Source/Modulos/Historico de movimientos/Data/HistoricoMovimientos_data.dcu differ diff --git a/Source/Modulos/Historico de movimientos/Data/HistoricoMovimientos_data.dpk b/Source/Modulos/Historico de movimientos/Data/HistoricoMovimientos_data.dpk new file mode 100644 index 0000000..9e2326f Binary files /dev/null and b/Source/Modulos/Historico de movimientos/Data/HistoricoMovimientos_data.dpk differ diff --git a/Source/Modulos/Historico de movimientos/Data/HistoricoMovimientos_data.dproj b/Source/Modulos/Historico de movimientos/Data/HistoricoMovimientos_data.dproj new file mode 100644 index 0000000..3830399 --- /dev/null +++ b/Source/Modulos/Historico de movimientos/Data/HistoricoMovimientos_data.dproj @@ -0,0 +1,538 @@ + + + {761338d5-bf04-40b1-a99b-dec8ced70bf0} + HistoricoMovimientos_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\HistoricoMovimientos_data.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0HistoricoMovimientos_data.dpk + + + + + MainSource + + + +
DataModuleHistoricoMovimientos
+
+
+
+ + diff --git a/Source/Modulos/Historico de movimientos/Data/HistoricoMovimientos_data.rc b/Source/Modulos/Historico de movimientos/Data/HistoricoMovimientos_data.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Historico de movimientos/Data/HistoricoMovimientos_data.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Historico de movimientos/Data/HistoricoMovimientos_data.res b/Source/Modulos/Historico de movimientos/Data/HistoricoMovimientos_data.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Historico de movimientos/Data/HistoricoMovimientos_data.res differ diff --git a/Source/Modulos/Historico de movimientos/Data/uDataModuleHistoricoMovimientos.dcu b/Source/Modulos/Historico de movimientos/Data/uDataModuleHistoricoMovimientos.dcu new file mode 100644 index 0000000..01836f1 Binary files /dev/null and b/Source/Modulos/Historico de movimientos/Data/uDataModuleHistoricoMovimientos.dcu differ diff --git a/Source/Modulos/Historico de movimientos/Data/uDataModuleHistoricoMovimientos.dfm b/Source/Modulos/Historico de movimientos/Data/uDataModuleHistoricoMovimientos.dfm new file mode 100644 index 0000000..34db1a3 --- /dev/null +++ b/Source/Modulos/Historico de movimientos/Data/uDataModuleHistoricoMovimientos.dfm @@ -0,0 +1,138 @@ +inherited DataModuleHistoricoMovimientos: TDataModuleHistoricoMovimientos + OnCreate = DAClientDataModuleCreate + Height = 231 + Width = 518 + object RORemoteService: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvHistoricoMovimientos' + Left = 48 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 84 + end + object rda_Historico_Movimientos: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetDataCall.RemoteService = RORemoteService + UpdateDataCall.RemoteService = RORemoteService + GetScriptsCall.RemoteService = RORemoteService + RemoteService = RORemoteService + DataStreamer = Bin2DataStreamer + Left = 51 + Top = 143 + end + object tbl_HistoricoMovimientos: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'FECHA' + DataType = datDateTime + DisplayLabel = 'Fecha' + DictionaryEntry = 'HISTORICO_MOVIMIENTOS_FECHA' + InPrimaryKey = True + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + DictionaryEntry = 'HISTORICO_MOVIMIENTOS_ID_ALMACEN' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'HISTORICO_MOVIMIENTOS_ID_EMPRESA' + end + item + Name = 'NOMBRE_ALMACEN' + DataType = datString + Size = 255 + DisplayLabel = 'Almac'#233'n' + DictionaryEntry = 'HISTORICO_MOVIMIENTOS_NOMBRE_ALMACEN' + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + DictionaryEntry = 'HISTORICO_MOVIMIENTOS_ID_ARTICULO' + InPrimaryKey = True + end + item + Name = 'FAMILIA' + DataType = datString + Size = 255 + DisplayLabel = 'Familia' + DictionaryEntry = 'HISTORICO_MOVIMIENTOS_FAMILIA' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + DictionaryEntry = 'HISTORICO_MOVIMIENTOS_REFERENCIA' + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + DisplayLabel = 'Unidad de medida' + DictionaryEntry = 'HistoricoMovimientos_UNIDAD_MEDIDA' + end + item + Name = 'FABRICANTE' + DataType = datString + Size = 255 + DisplayLabel = 'Fabricante' + DictionaryEntry = 'HistoricoMovimientos_FABRICANTE' + end + item + Name = 'REFERENCIA_FABR' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. fabricante' + DictionaryEntry = 'HistoricoMovimientos_REFERENCIA_FABR' + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DisplayLabel = 'Descripci'#243'n' + DictionaryEntry = 'HISTORICO_MOVIMIENTOS_DESCRIPCION' + end + item + Name = 'TIPO_MOVIMIENTO' + DataType = datString + Size = 7 + DisplayLabel = 'Tipo mov.' + DictionaryEntry = 'HISTORICO_MOVIMIENTOS_TIPO_MOVIMIENTO' + end + item + Name = 'CANTIDAD' + DataType = datInteger + DisplayLabel = 'Cantidad' + DictionaryEntry = 'HISTORICO_MOVIMIENTOS_CANTIDAD' + end + item + Name = 'CAUSA' + DataType = datString + Size = 2021 + DisplayLabel = 'Causa' + DictionaryEntry = 'HISTORICO_MOVIMIENTOS_CAUSA' + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Historico_Movimientos + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'HistoricoMovimientos' + IndexDefs = <> + Left = 232 + Top = 80 + end + object ds_HistoricoMovimientos: TDADataSource + DataSet = tbl_HistoricoMovimientos.Dataset + DataTable = tbl_HistoricoMovimientos + Left = 232 + Top = 24 + end +end diff --git a/Source/Modulos/Historico de movimientos/Data/uDataModuleHistoricoMovimientos.pas b/Source/Modulos/Historico de movimientos/Data/uDataModuleHistoricoMovimientos.pas new file mode 100644 index 0000000..d352efa --- /dev/null +++ b/Source/Modulos/Historico de movimientos/Data/uDataModuleHistoricoMovimientos.pas @@ -0,0 +1,89 @@ +unit uDataModuleHistoricoMovimientos; + +interface + +uses + SysUtils, Classes, DB, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, uDataModuleBase, + uIDataModuleHistoricoMovimientos, uBizHistoricoMovimientos, + uDARemoteDataAdapter, uDADataStreamer, uDABin2DataStreamer, uDAInterfaces, + uDAMemDataTable; + +type + TDataModuleHistoricoMovimientos = class(TDataModuleBase, IDataModuleHistoricoMovimientos) + RORemoteService: TRORemoteService; + Bin2DataStreamer: TDABin2DataStreamer; + rda_Historico_Movimientos: TDARemoteDataAdapter; + tbl_HistoricoMovimientos: TDAMemDataTable; + ds_HistoricoMovimientos: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + protected + procedure AsignarClaseNegocio(var AHistoricoMovimientos: TDAMemDataTable); virtual; + public + function GetItems : IBizHistoricoMovimientos; overload; + function GetItems(const ID_ALMACEN : Integer) : IBizHistoricoMovimientos; overload; + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, + schHistoricoMovimientosClient_Intf; + +{ TdmArticulos } + +procedure TDataModuleHistoricoMovimientos.AsignarClaseNegocio(var AHistoricoMovimientos: TDAMemDataTable); +begin + AHistoricoMovimientos.BusinessRulesID := BIZ_CLIENT_HISTORICO_MOVIMIENTOS; +end; + +procedure TDataModuleHistoricoMovimientos.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleHistoricoMovimientos.GetItems(const ID_ALMACEN: Integer): IBizHistoricoMovimientos; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + + with Result.DataTable.DynamicWhere do + begin + // (ID_ALMACEN = :ID_ALMACEN) + Condicion := NewBinaryExpression(NewField('', fld_HistoricoMovimientosID_ALMACEN), NewConstant(ID_ALMACEN, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TDataModuleHistoricoMovimientos.GetItems: IBizHistoricoMovimientos; +var + AHistoricoMovimientos : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AHistoricoMovimientos := CloneDataTable(tbl_HistoricoMovimientos); + AsignarClaseNegocio(AHistoricoMovimientos); + Result := (AHistoricoMovimientos as IBizHistoricoMovimientos); + finally + HideHourglassCursor; + end; +end; + + +end. diff --git a/Source/Modulos/Historico de movimientos/HistoricoMovimientos_Group.bdsgroup b/Source/Modulos/Historico de movimientos/HistoricoMovimientos_Group.bdsgroup new file mode 100644 index 0000000..66d5f3a --- /dev/null +++ b/Source/Modulos/Historico de movimientos/HistoricoMovimientos_Group.bdsgroup @@ -0,0 +1,26 @@ + + + + + + + + + + + ..\..\DataAbstract_D10\DataAbstract_D10.bdsproj + ..\..\Base\Base.bdsproj + ..\..\Base\ControllerBase\ControllerBase.bdsproj + ..\..\Base\GUIBase\GUIBase.bdsproj + ..\Contactos\Views\Contactos_view.bdsproj + Model\HistoricoMovimientos_model.bdsproj + Data\HistoricoMovimientos_data.bdsproj + Controller\HistoricoMovimientos_controller.bdsproj + Views\HistoricoMovimientos_view.bdsproj + Plugin\HistoricoMovimientos_plugin.bdsproj + DataAbstract_D10.bpl Base.bpl ControllerBase.bpl GUIBase.bpl Contactos_view.bpl HistoricoMovimientos_model.bpl HistoricoMovimientos_data.bpl HistoricoMovimientos_controller.bpl HistoricoMovimientos_view.bpl HistoricoMovimientos_plugin.bpl + + + + diff --git a/Source/Modulos/Historico de movimientos/HistoricoMovimientos_Group.groupproj b/Source/Modulos/Historico de movimientos/HistoricoMovimientos_Group.groupproj new file mode 100644 index 0000000..73c411b --- /dev/null +++ b/Source/Modulos/Historico de movimientos/HistoricoMovimientos_Group.groupproj @@ -0,0 +1,134 @@ + + + {a1786710-a18b-49b9-a107-aa4c807d0c03} + + + + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Historico de movimientos/Model/Data/uIDataModuleHistoricoMovimientos.dcu b/Source/Modulos/Historico de movimientos/Model/Data/uIDataModuleHistoricoMovimientos.dcu new file mode 100644 index 0000000..dbd39a6 Binary files /dev/null and b/Source/Modulos/Historico de movimientos/Model/Data/uIDataModuleHistoricoMovimientos.dcu differ diff --git a/Source/Modulos/Historico de movimientos/Model/Data/uIDataModuleHistoricoMovimientos.pas b/Source/Modulos/Historico de movimientos/Model/Data/uIDataModuleHistoricoMovimientos.pas new file mode 100644 index 0000000..a2ff85d --- /dev/null +++ b/Source/Modulos/Historico de movimientos/Model/Data/uIDataModuleHistoricoMovimientos.pas @@ -0,0 +1,17 @@ +unit uIDataModuleHistoricoMovimientos; + +interface + +uses + uBizHistoricoMovimientos; + +type + IDataModuleHistoricoMovimientos = interface + ['{936EAEE3-031F-490B-B4FC-D1A630B6F4C9}'] + function GetItems: IBizHistoricoMovimientos; overload; + function GetItems(const ID_ALMACEN : Integer) : IBizHistoricoMovimientos; overload; + end; + +implementation + +end. diff --git a/Source/Modulos/Historico de movimientos/Model/HistoricoMovimientos_model.bdsproj b/Source/Modulos/Historico de movimientos/Model/HistoricoMovimientos_model.bdsproj new file mode 100644 index 0000000..6c7e91f --- /dev/null +++ b/Source/Modulos/Historico de movimientos/Model/HistoricoMovimientos_model.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + HistoricoMovimientos_model.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Historico de movimientos/Model/HistoricoMovimientos_model.dcu b/Source/Modulos/Historico de movimientos/Model/HistoricoMovimientos_model.dcu new file mode 100644 index 0000000..32a9d96 Binary files /dev/null and b/Source/Modulos/Historico de movimientos/Model/HistoricoMovimientos_model.dcu differ diff --git a/Source/Modulos/Historico de movimientos/Model/HistoricoMovimientos_model.dpk b/Source/Modulos/Historico de movimientos/Model/HistoricoMovimientos_model.dpk new file mode 100644 index 0000000..c1fc088 Binary files /dev/null and b/Source/Modulos/Historico de movimientos/Model/HistoricoMovimientos_model.dpk differ diff --git a/Source/Modulos/Historico de movimientos/Model/HistoricoMovimientos_model.dproj b/Source/Modulos/Historico de movimientos/Model/HistoricoMovimientos_model.dproj new file mode 100644 index 0000000..e21916a --- /dev/null +++ b/Source/Modulos/Historico de movimientos/Model/HistoricoMovimientos_model.dproj @@ -0,0 +1,538 @@ + + + {82e91760-acc0-4662-9c28-456e5ea6089c} + HistoricoMovimientos_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\HistoricoMovimientos_model.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0HistoricoMovimientos_model.dpk + + + + + MainSource + + + + + + + + + diff --git a/Source/Modulos/Historico de movimientos/Model/HistoricoMovimientos_model.rc b/Source/Modulos/Historico de movimientos/Model/HistoricoMovimientos_model.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Historico de movimientos/Model/HistoricoMovimientos_model.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Historico de movimientos/Model/HistoricoMovimientos_model.res b/Source/Modulos/Historico de movimientos/Model/HistoricoMovimientos_model.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Historico de movimientos/Model/HistoricoMovimientos_model.res differ diff --git a/Source/Modulos/Historico de movimientos/Model/schHistoricoMovimientosClient_Intf.dcu b/Source/Modulos/Historico de movimientos/Model/schHistoricoMovimientosClient_Intf.dcu new file mode 100644 index 0000000..7ab0464 Binary files /dev/null and b/Source/Modulos/Historico de movimientos/Model/schHistoricoMovimientosClient_Intf.dcu differ diff --git a/Source/Modulos/Historico de movimientos/Model/schHistoricoMovimientosClient_Intf.pas b/Source/Modulos/Historico de movimientos/Model/schHistoricoMovimientosClient_Intf.pas new file mode 100644 index 0000000..284019e --- /dev/null +++ b/Source/Modulos/Historico de movimientos/Model/schHistoricoMovimientosClient_Intf.pas @@ -0,0 +1,554 @@ +unit schHistoricoMovimientosClient_Intf; + +interface + +uses + Classes, DB, schBase_Intf, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_HistoricoMovimientos = '{612A1E7F-B9C3-498A-A41B-1494C47F5DAD}'; + + { Data table names } + nme_HistoricoMovimientos = 'HistoricoMovimientos'; + + { HistoricoMovimientos fields } + fld_HistoricoMovimientosFECHA = 'FECHA'; + fld_HistoricoMovimientosID_ALMACEN = 'ID_ALMACEN'; + fld_HistoricoMovimientosID_EMPRESA = 'ID_EMPRESA'; + fld_HistoricoMovimientosNOMBRE_ALMACEN = 'NOMBRE_ALMACEN'; + fld_HistoricoMovimientosID_ARTICULO = 'ID_ARTICULO'; + fld_HistoricoMovimientosFAMILIA = 'FAMILIA'; + fld_HistoricoMovimientosREFERENCIA = 'REFERENCIA'; + fld_HistoricoMovimientosUNIDAD_MEDIDA = 'UNIDAD_MEDIDA'; + fld_HistoricoMovimientosFABRICANTE = 'FABRICANTE'; + fld_HistoricoMovimientosREFERENCIA_FABR = 'REFERENCIA_FABR'; + fld_HistoricoMovimientosDESCRIPCION = 'DESCRIPCION'; + fld_HistoricoMovimientosTIPO_MOVIMIENTO = 'TIPO_MOVIMIENTO'; + fld_HistoricoMovimientosCANTIDAD = 'CANTIDAD'; + fld_HistoricoMovimientosCAUSA = 'CAUSA'; + + { HistoricoMovimientos field indexes } + idx_HistoricoMovimientosFECHA = 0; + idx_HistoricoMovimientosID_ALMACEN = 1; + idx_HistoricoMovimientosID_EMPRESA = 2; + idx_HistoricoMovimientosNOMBRE_ALMACEN = 3; + idx_HistoricoMovimientosID_ARTICULO = 4; + idx_HistoricoMovimientosFAMILIA = 5; + idx_HistoricoMovimientosREFERENCIA = 6; + idx_HistoricoMovimientosUNIDAD_MEDIDA = 7; + idx_HistoricoMovimientosFABRICANTE = 8; + idx_HistoricoMovimientosREFERENCIA_FABR = 9; + idx_HistoricoMovimientosDESCRIPCION = 10; + idx_HistoricoMovimientosTIPO_MOVIMIENTO = 11; + idx_HistoricoMovimientosCANTIDAD = 12; + idx_HistoricoMovimientosCAUSA = 13; + +type + { IHistoricoMovimientos } + IHistoricoMovimientos = interface(IDAStronglyTypedDataTable) + ['{AFB2228F-B55B-476F-9C1F-664A1DA2C27E}'] + { Property getters and setters } + function GetFECHAValue: DateTime; + procedure SetFECHAValue(const aValue: DateTime); + function GetFECHAIsNull: Boolean; + procedure SetFECHAIsNull(const aValue: Boolean); + function GetID_ALMACENValue: Integer; + procedure SetID_ALMACENValue(const aValue: Integer); + function GetID_ALMACENIsNull: Boolean; + procedure SetID_ALMACENIsNull(const aValue: Boolean); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_EMPRESAIsNull: Boolean; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); + function GetNOMBRE_ALMACENValue: String; + procedure SetNOMBRE_ALMACENValue(const aValue: String); + function GetNOMBRE_ALMACENIsNull: Boolean; + procedure SetNOMBRE_ALMACENIsNull(const aValue: Boolean); + function GetID_ARTICULOValue: Integer; + procedure SetID_ARTICULOValue(const aValue: Integer); + function GetID_ARTICULOIsNull: Boolean; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); + function GetFAMILIAValue: String; + procedure SetFAMILIAValue(const aValue: String); + function GetFAMILIAIsNull: Boolean; + procedure SetFAMILIAIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetUNIDAD_MEDIDAValue: String; + procedure SetUNIDAD_MEDIDAValue(const aValue: String); + function GetUNIDAD_MEDIDAIsNull: Boolean; + procedure SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); + function GetFABRICANTEValue: String; + procedure SetFABRICANTEValue(const aValue: String); + function GetFABRICANTEIsNull: Boolean; + procedure SetFABRICANTEIsNull(const aValue: Boolean); + function GetREFERENCIA_FABRValue: String; + procedure SetREFERENCIA_FABRValue(const aValue: String); + function GetREFERENCIA_FABRIsNull: Boolean; + procedure SetREFERENCIA_FABRIsNull(const aValue: Boolean); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetDESCRIPCIONIsNull: Boolean; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); + function GetTIPO_MOVIMIENTOValue: String; + procedure SetTIPO_MOVIMIENTOValue(const aValue: String); + function GetTIPO_MOVIMIENTOIsNull: Boolean; + procedure SetTIPO_MOVIMIENTOIsNull(const aValue: Boolean); + function GetCANTIDADValue: Integer; + procedure SetCANTIDADValue(const aValue: Integer); + function GetCANTIDADIsNull: Boolean; + procedure SetCANTIDADIsNull(const aValue: Boolean); + function GetCAUSAValue: String; + procedure SetCAUSAValue(const aValue: String); + function GetCAUSAIsNull: Boolean; + procedure SetCAUSAIsNull(const aValue: Boolean); + + + { Properties } + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property FECHAIsNull: Boolean read GetFECHAIsNull write SetFECHAIsNull; + property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property ID_ALMACENIsNull: Boolean read GetID_ALMACENIsNull write SetID_ALMACENIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property NOMBRE_ALMACEN: String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property NOMBRE_ALMACENIsNull: Boolean read GetNOMBRE_ALMACENIsNull write SetNOMBRE_ALMACENIsNull; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull: Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property FAMILIA: String read GetFAMILIAValue write SetFAMILIAValue; + property FAMILIAIsNull: Boolean read GetFAMILIAIsNull write SetFAMILIAIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property UNIDAD_MEDIDA: String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue; + property UNIDAD_MEDIDAIsNull: Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull; + property FABRICANTE: String read GetFABRICANTEValue write SetFABRICANTEValue; + property FABRICANTEIsNull: Boolean read GetFABRICANTEIsNull write SetFABRICANTEIsNull; + property REFERENCIA_FABR: String read GetREFERENCIA_FABRValue write SetREFERENCIA_FABRValue; + property REFERENCIA_FABRIsNull: Boolean read GetREFERENCIA_FABRIsNull write SetREFERENCIA_FABRIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property TIPO_MOVIMIENTO: String read GetTIPO_MOVIMIENTOValue write SetTIPO_MOVIMIENTOValue; + property TIPO_MOVIMIENTOIsNull: Boolean read GetTIPO_MOVIMIENTOIsNull write SetTIPO_MOVIMIENTOIsNull; + property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDADIsNull: Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; + property CAUSA: String read GetCAUSAValue write SetCAUSAValue; + property CAUSAIsNull: Boolean read GetCAUSAIsNull write SetCAUSAIsNull; + end; + + { THistoricoMovimientosDataTableRules } + THistoricoMovimientosDataTableRules = class(TIntfObjectDADataTableRules, IHistoricoMovimientos) + private + protected + { Property getters and setters } + function GetFECHAValue: DateTime; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + function GetFECHAIsNull: Boolean; virtual; + procedure SetFECHAIsNull(const aValue: Boolean); virtual; + function GetID_ALMACENValue: Integer; virtual; + procedure SetID_ALMACENValue(const aValue: Integer); virtual; + function GetID_ALMACENIsNull: Boolean; virtual; + procedure SetID_ALMACENIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetNOMBRE_ALMACENValue: String; virtual; + procedure SetNOMBRE_ALMACENValue(const aValue: String); virtual; + function GetNOMBRE_ALMACENIsNull: Boolean; virtual; + procedure SetNOMBRE_ALMACENIsNull(const aValue: Boolean); virtual; + function GetID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetID_ARTICULOIsNull: Boolean; virtual; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); virtual; + function GetFAMILIAValue: String; virtual; + procedure SetFAMILIAValue(const aValue: String); virtual; + function GetFAMILIAIsNull: Boolean; virtual; + procedure SetFAMILIAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetUNIDAD_MEDIDAValue: String; virtual; + procedure SetUNIDAD_MEDIDAValue(const aValue: String); virtual; + function GetUNIDAD_MEDIDAIsNull: Boolean; virtual; + procedure SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); virtual; + function GetFABRICANTEValue: String; virtual; + procedure SetFABRICANTEValue(const aValue: String); virtual; + function GetFABRICANTEIsNull: Boolean; virtual; + procedure SetFABRICANTEIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_FABRValue: String; virtual; + procedure SetREFERENCIA_FABRValue(const aValue: String); virtual; + function GetREFERENCIA_FABRIsNull: Boolean; virtual; + procedure SetREFERENCIA_FABRIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + function GetTIPO_MOVIMIENTOValue: String; virtual; + procedure SetTIPO_MOVIMIENTOValue(const aValue: String); virtual; + function GetTIPO_MOVIMIENTOIsNull: Boolean; virtual; + procedure SetTIPO_MOVIMIENTOIsNull(const aValue: Boolean); virtual; + function GetCANTIDADValue: Integer; virtual; + procedure SetCANTIDADValue(const aValue: Integer); virtual; + function GetCANTIDADIsNull: Boolean; virtual; + procedure SetCANTIDADIsNull(const aValue: Boolean); virtual; + function GetCAUSAValue: String; virtual; + procedure SetCAUSAValue(const aValue: String); virtual; + function GetCAUSAIsNull: Boolean; virtual; + procedure SetCAUSAIsNull(const aValue: Boolean); virtual; + + { Properties } + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property FECHAIsNull: Boolean read GetFECHAIsNull write SetFECHAIsNull; + property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property ID_ALMACENIsNull: Boolean read GetID_ALMACENIsNull write SetID_ALMACENIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property NOMBRE_ALMACEN: String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property NOMBRE_ALMACENIsNull: Boolean read GetNOMBRE_ALMACENIsNull write SetNOMBRE_ALMACENIsNull; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull: Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property FAMILIA: String read GetFAMILIAValue write SetFAMILIAValue; + property FAMILIAIsNull: Boolean read GetFAMILIAIsNull write SetFAMILIAIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property UNIDAD_MEDIDA: String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue; + property UNIDAD_MEDIDAIsNull: Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull; + property FABRICANTE: String read GetFABRICANTEValue write SetFABRICANTEValue; + property FABRICANTEIsNull: Boolean read GetFABRICANTEIsNull write SetFABRICANTEIsNull; + property REFERENCIA_FABR: String read GetREFERENCIA_FABRValue write SetREFERENCIA_FABRValue; + property REFERENCIA_FABRIsNull: Boolean read GetREFERENCIA_FABRIsNull write SetREFERENCIA_FABRIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property TIPO_MOVIMIENTO: String read GetTIPO_MOVIMIENTOValue write SetTIPO_MOVIMIENTOValue; + property TIPO_MOVIMIENTOIsNull: Boolean read GetTIPO_MOVIMIENTOIsNull write SetTIPO_MOVIMIENTOIsNull; + property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDADIsNull: Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; + property CAUSA: String read GetCAUSAValue write SetCAUSAValue; + property CAUSAIsNull: Boolean read GetCAUSAIsNull write SetCAUSAIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants, uROBinaryHelpers; + +{ THistoricoMovimientosDataTableRules } +constructor THistoricoMovimientosDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor THistoricoMovimientosDataTableRules.Destroy; +begin + inherited; +end; + +function THistoricoMovimientosDataTableRules.GetFECHAValue: DateTime; +begin + result := DataTable.Fields[idx_HistoricoMovimientosFECHA].AsDateTime; +end; + +procedure THistoricoMovimientosDataTableRules.SetFECHAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_HistoricoMovimientosFECHA].AsDateTime := aValue; +end; + +function THistoricoMovimientosDataTableRules.GetFECHAIsNull: boolean; +begin + result := DataTable.Fields[idx_HistoricoMovimientosFECHA].IsNull; +end; + +procedure THistoricoMovimientosDataTableRules.SetFECHAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_HistoricoMovimientosFECHA].AsVariant := Null; +end; + +function THistoricoMovimientosDataTableRules.GetID_ALMACENValue: Integer; +begin + result := DataTable.Fields[idx_HistoricoMovimientosID_ALMACEN].AsInteger; +end; + +procedure THistoricoMovimientosDataTableRules.SetID_ALMACENValue(const aValue: Integer); +begin + DataTable.Fields[idx_HistoricoMovimientosID_ALMACEN].AsInteger := aValue; +end; + +function THistoricoMovimientosDataTableRules.GetID_ALMACENIsNull: boolean; +begin + result := DataTable.Fields[idx_HistoricoMovimientosID_ALMACEN].IsNull; +end; + +procedure THistoricoMovimientosDataTableRules.SetID_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_HistoricoMovimientosID_ALMACEN].AsVariant := Null; +end; + +function THistoricoMovimientosDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_HistoricoMovimientosID_EMPRESA].AsInteger; +end; + +procedure THistoricoMovimientosDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_HistoricoMovimientosID_EMPRESA].AsInteger := aValue; +end; + +function THistoricoMovimientosDataTableRules.GetID_EMPRESAIsNull: boolean; +begin + result := DataTable.Fields[idx_HistoricoMovimientosID_EMPRESA].IsNull; +end; + +procedure THistoricoMovimientosDataTableRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_HistoricoMovimientosID_EMPRESA].AsVariant := Null; +end; + +function THistoricoMovimientosDataTableRules.GetNOMBRE_ALMACENValue: String; +begin + result := DataTable.Fields[idx_HistoricoMovimientosNOMBRE_ALMACEN].AsString; +end; + +procedure THistoricoMovimientosDataTableRules.SetNOMBRE_ALMACENValue(const aValue: String); +begin + DataTable.Fields[idx_HistoricoMovimientosNOMBRE_ALMACEN].AsString := aValue; +end; + +function THistoricoMovimientosDataTableRules.GetNOMBRE_ALMACENIsNull: boolean; +begin + result := DataTable.Fields[idx_HistoricoMovimientosNOMBRE_ALMACEN].IsNull; +end; + +procedure THistoricoMovimientosDataTableRules.SetNOMBRE_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_HistoricoMovimientosNOMBRE_ALMACEN].AsVariant := Null; +end; + +function THistoricoMovimientosDataTableRules.GetID_ARTICULOValue: Integer; +begin + result := DataTable.Fields[idx_HistoricoMovimientosID_ARTICULO].AsInteger; +end; + +procedure THistoricoMovimientosDataTableRules.SetID_ARTICULOValue(const aValue: Integer); +begin + DataTable.Fields[idx_HistoricoMovimientosID_ARTICULO].AsInteger := aValue; +end; + +function THistoricoMovimientosDataTableRules.GetID_ARTICULOIsNull: boolean; +begin + result := DataTable.Fields[idx_HistoricoMovimientosID_ARTICULO].IsNull; +end; + +procedure THistoricoMovimientosDataTableRules.SetID_ARTICULOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_HistoricoMovimientosID_ARTICULO].AsVariant := Null; +end; + +function THistoricoMovimientosDataTableRules.GetFAMILIAValue: String; +begin + result := DataTable.Fields[idx_HistoricoMovimientosFAMILIA].AsString; +end; + +procedure THistoricoMovimientosDataTableRules.SetFAMILIAValue(const aValue: String); +begin + DataTable.Fields[idx_HistoricoMovimientosFAMILIA].AsString := aValue; +end; + +function THistoricoMovimientosDataTableRules.GetFAMILIAIsNull: boolean; +begin + result := DataTable.Fields[idx_HistoricoMovimientosFAMILIA].IsNull; +end; + +procedure THistoricoMovimientosDataTableRules.SetFAMILIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_HistoricoMovimientosFAMILIA].AsVariant := Null; +end; + +function THistoricoMovimientosDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_HistoricoMovimientosREFERENCIA].AsString; +end; + +procedure THistoricoMovimientosDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_HistoricoMovimientosREFERENCIA].AsString := aValue; +end; + +function THistoricoMovimientosDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_HistoricoMovimientosREFERENCIA].IsNull; +end; + +procedure THistoricoMovimientosDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_HistoricoMovimientosREFERENCIA].AsVariant := Null; +end; + +function THistoricoMovimientosDataTableRules.GetUNIDAD_MEDIDAValue: String; +begin + result := DataTable.Fields[idx_HistoricoMovimientosUNIDAD_MEDIDA].AsString; +end; + +procedure THistoricoMovimientosDataTableRules.SetUNIDAD_MEDIDAValue(const aValue: String); +begin + DataTable.Fields[idx_HistoricoMovimientosUNIDAD_MEDIDA].AsString := aValue; +end; + +function THistoricoMovimientosDataTableRules.GetUNIDAD_MEDIDAIsNull: boolean; +begin + result := DataTable.Fields[idx_HistoricoMovimientosUNIDAD_MEDIDA].IsNull; +end; + +procedure THistoricoMovimientosDataTableRules.SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_HistoricoMovimientosUNIDAD_MEDIDA].AsVariant := Null; +end; + +function THistoricoMovimientosDataTableRules.GetFABRICANTEValue: String; +begin + result := DataTable.Fields[idx_HistoricoMovimientosFABRICANTE].AsString; +end; + +procedure THistoricoMovimientosDataTableRules.SetFABRICANTEValue(const aValue: String); +begin + DataTable.Fields[idx_HistoricoMovimientosFABRICANTE].AsString := aValue; +end; + +function THistoricoMovimientosDataTableRules.GetFABRICANTEIsNull: boolean; +begin + result := DataTable.Fields[idx_HistoricoMovimientosFABRICANTE].IsNull; +end; + +procedure THistoricoMovimientosDataTableRules.SetFABRICANTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_HistoricoMovimientosFABRICANTE].AsVariant := Null; +end; + +function THistoricoMovimientosDataTableRules.GetREFERENCIA_FABRValue: String; +begin + result := DataTable.Fields[idx_HistoricoMovimientosREFERENCIA_FABR].AsString; +end; + +procedure THistoricoMovimientosDataTableRules.SetREFERENCIA_FABRValue(const aValue: String); +begin + DataTable.Fields[idx_HistoricoMovimientosREFERENCIA_FABR].AsString := aValue; +end; + +function THistoricoMovimientosDataTableRules.GetREFERENCIA_FABRIsNull: boolean; +begin + result := DataTable.Fields[idx_HistoricoMovimientosREFERENCIA_FABR].IsNull; +end; + +procedure THistoricoMovimientosDataTableRules.SetREFERENCIA_FABRIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_HistoricoMovimientosREFERENCIA_FABR].AsVariant := Null; +end; + +function THistoricoMovimientosDataTableRules.GetDESCRIPCIONValue: String; +begin + result := DataTable.Fields[idx_HistoricoMovimientosDESCRIPCION].AsString; +end; + +procedure THistoricoMovimientosDataTableRules.SetDESCRIPCIONValue(const aValue: String); +begin + DataTable.Fields[idx_HistoricoMovimientosDESCRIPCION].AsString := aValue; +end; + +function THistoricoMovimientosDataTableRules.GetDESCRIPCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_HistoricoMovimientosDESCRIPCION].IsNull; +end; + +procedure THistoricoMovimientosDataTableRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_HistoricoMovimientosDESCRIPCION].AsVariant := Null; +end; + +function THistoricoMovimientosDataTableRules.GetTIPO_MOVIMIENTOValue: String; +begin + result := DataTable.Fields[idx_HistoricoMovimientosTIPO_MOVIMIENTO].AsString; +end; + +procedure THistoricoMovimientosDataTableRules.SetTIPO_MOVIMIENTOValue(const aValue: String); +begin + DataTable.Fields[idx_HistoricoMovimientosTIPO_MOVIMIENTO].AsString := aValue; +end; + +function THistoricoMovimientosDataTableRules.GetTIPO_MOVIMIENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_HistoricoMovimientosTIPO_MOVIMIENTO].IsNull; +end; + +procedure THistoricoMovimientosDataTableRules.SetTIPO_MOVIMIENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_HistoricoMovimientosTIPO_MOVIMIENTO].AsVariant := Null; +end; + +function THistoricoMovimientosDataTableRules.GetCANTIDADValue: Integer; +begin + result := DataTable.Fields[idx_HistoricoMovimientosCANTIDAD].AsInteger; +end; + +procedure THistoricoMovimientosDataTableRules.SetCANTIDADValue(const aValue: Integer); +begin + DataTable.Fields[idx_HistoricoMovimientosCANTIDAD].AsInteger := aValue; +end; + +function THistoricoMovimientosDataTableRules.GetCANTIDADIsNull: boolean; +begin + result := DataTable.Fields[idx_HistoricoMovimientosCANTIDAD].IsNull; +end; + +procedure THistoricoMovimientosDataTableRules.SetCANTIDADIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_HistoricoMovimientosCANTIDAD].AsVariant := Null; +end; + +function THistoricoMovimientosDataTableRules.GetCAUSAValue: String; +begin + result := DataTable.Fields[idx_HistoricoMovimientosCAUSA].AsString; +end; + +procedure THistoricoMovimientosDataTableRules.SetCAUSAValue(const aValue: String); +begin + DataTable.Fields[idx_HistoricoMovimientosCAUSA].AsString := aValue; +end; + +function THistoricoMovimientosDataTableRules.GetCAUSAIsNull: boolean; +begin + result := DataTable.Fields[idx_HistoricoMovimientosCAUSA].IsNull; +end; + +procedure THistoricoMovimientosDataTableRules.SetCAUSAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_HistoricoMovimientosCAUSA].AsVariant := Null; +end; + + +initialization + RegisterDataTableRules(RID_HistoricoMovimientos, THistoricoMovimientosDataTableRules); + +end. diff --git a/Source/Modulos/Historico de movimientos/Model/schHistoricoMovimientosServer_Intf.dcu b/Source/Modulos/Historico de movimientos/Model/schHistoricoMovimientosServer_Intf.dcu new file mode 100644 index 0000000..1b136c5 Binary files /dev/null and b/Source/Modulos/Historico de movimientos/Model/schHistoricoMovimientosServer_Intf.dcu differ diff --git a/Source/Modulos/Historico de movimientos/Model/schHistoricoMovimientosServer_Intf.pas b/Source/Modulos/Historico de movimientos/Model/schHistoricoMovimientosServer_Intf.pas new file mode 100644 index 0000000..afa6f73 --- /dev/null +++ b/Source/Modulos/Historico de movimientos/Model/schHistoricoMovimientosServer_Intf.pas @@ -0,0 +1,659 @@ +unit schHistoricoMovimientosServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schHistoricoMovimientosClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_HistoricoMovimientosDelta = '{FDA16BD5-0E9F-4BB8-A13E-ABEB2EB044BB}'; + +type + { IHistoricoMovimientosDelta } + IHistoricoMovimientosDelta = interface(IHistoricoMovimientos) + ['{FDA16BD5-0E9F-4BB8-A13E-ABEB2EB044BB}'] + { Property getters and setters } + function GetOldFECHAValue : DateTime; + function GetOldID_ALMACENValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldNOMBRE_ALMACENValue : String; + function GetOldID_ARTICULOValue : Integer; + function GetOldFAMILIAValue : String; + function GetOldREFERENCIAValue : String; + function GetOldUNIDAD_MEDIDAValue : String; + function GetOldFABRICANTEValue : String; + function GetOldREFERENCIA_FABRValue : String; + function GetOldDESCRIPCIONValue : String; + function GetOldTIPO_MOVIMIENTOValue : String; + function GetOldCANTIDADValue : Integer; + function GetOldCAUSAValue : String; + + { Properties } + property OldFECHA : DateTime read GetOldFECHAValue; + property OldID_ALMACEN : Integer read GetOldID_ALMACENValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldNOMBRE_ALMACEN : String read GetOldNOMBRE_ALMACENValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldFAMILIA : String read GetOldFAMILIAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldUNIDAD_MEDIDA : String read GetOldUNIDAD_MEDIDAValue; + property OldFABRICANTE : String read GetOldFABRICANTEValue; + property OldREFERENCIA_FABR : String read GetOldREFERENCIA_FABRValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldTIPO_MOVIMIENTO : String read GetOldTIPO_MOVIMIENTOValue; + property OldCANTIDAD : Integer read GetOldCANTIDADValue; + property OldCAUSA : String read GetOldCAUSAValue; + end; + + { THistoricoMovimientosBusinessProcessorRules } + THistoricoMovimientosBusinessProcessorRules = class(TDABusinessProcessorRules, IHistoricoMovimientos, IHistoricoMovimientosDelta) + private + protected + { Property getters and setters } + function GetFECHAValue: DateTime; virtual; + function GetFECHAIsNull: Boolean; virtual; + function GetOldFECHAValue: DateTime; virtual; + function GetOldFECHAIsNull: Boolean; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + procedure SetFECHAIsNull(const aValue: Boolean); virtual; + function GetID_ALMACENValue: Integer; virtual; + function GetID_ALMACENIsNull: Boolean; virtual; + function GetOldID_ALMACENValue: Integer; virtual; + function GetOldID_ALMACENIsNull: Boolean; virtual; + procedure SetID_ALMACENValue(const aValue: Integer); virtual; + procedure SetID_ALMACENIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetNOMBRE_ALMACENValue: String; virtual; + function GetNOMBRE_ALMACENIsNull: Boolean; virtual; + function GetOldNOMBRE_ALMACENValue: String; virtual; + function GetOldNOMBRE_ALMACENIsNull: Boolean; virtual; + procedure SetNOMBRE_ALMACENValue(const aValue: String); virtual; + procedure SetNOMBRE_ALMACENIsNull(const aValue: Boolean); virtual; + function GetID_ARTICULOValue: Integer; virtual; + function GetID_ARTICULOIsNull: Boolean; virtual; + function GetOldID_ARTICULOValue: Integer; virtual; + function GetOldID_ARTICULOIsNull: Boolean; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); virtual; + function GetFAMILIAValue: String; virtual; + function GetFAMILIAIsNull: Boolean; virtual; + function GetOldFAMILIAValue: String; virtual; + function GetOldFAMILIAIsNull: Boolean; virtual; + procedure SetFAMILIAValue(const aValue: String); virtual; + procedure SetFAMILIAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetUNIDAD_MEDIDAValue: String; virtual; + function GetUNIDAD_MEDIDAIsNull: Boolean; virtual; + function GetOldUNIDAD_MEDIDAValue: String; virtual; + function GetOldUNIDAD_MEDIDAIsNull: Boolean; virtual; + procedure SetUNIDAD_MEDIDAValue(const aValue: String); virtual; + procedure SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); virtual; + function GetFABRICANTEValue: String; virtual; + function GetFABRICANTEIsNull: Boolean; virtual; + function GetOldFABRICANTEValue: String; virtual; + function GetOldFABRICANTEIsNull: Boolean; virtual; + procedure SetFABRICANTEValue(const aValue: String); virtual; + procedure SetFABRICANTEIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_FABRValue: String; virtual; + function GetREFERENCIA_FABRIsNull: Boolean; virtual; + function GetOldREFERENCIA_FABRValue: String; virtual; + function GetOldREFERENCIA_FABRIsNull: Boolean; virtual; + procedure SetREFERENCIA_FABRValue(const aValue: String); virtual; + procedure SetREFERENCIA_FABRIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + function GetTIPO_MOVIMIENTOValue: String; virtual; + function GetTIPO_MOVIMIENTOIsNull: Boolean; virtual; + function GetOldTIPO_MOVIMIENTOValue: String; virtual; + function GetOldTIPO_MOVIMIENTOIsNull: Boolean; virtual; + procedure SetTIPO_MOVIMIENTOValue(const aValue: String); virtual; + procedure SetTIPO_MOVIMIENTOIsNull(const aValue: Boolean); virtual; + function GetCANTIDADValue: Integer; virtual; + function GetCANTIDADIsNull: Boolean; virtual; + function GetOldCANTIDADValue: Integer; virtual; + function GetOldCANTIDADIsNull: Boolean; virtual; + procedure SetCANTIDADValue(const aValue: Integer); virtual; + procedure SetCANTIDADIsNull(const aValue: Boolean); virtual; + function GetCAUSAValue: String; virtual; + function GetCAUSAIsNull: Boolean; virtual; + function GetOldCAUSAValue: String; virtual; + function GetOldCAUSAIsNull: Boolean; virtual; + procedure SetCAUSAValue(const aValue: String); virtual; + procedure SetCAUSAIsNull(const aValue: Boolean); virtual; + + { Properties } + property FECHA : DateTime read GetFECHAValue write SetFECHAValue; + property FECHAIsNull : Boolean read GetFECHAIsNull write SetFECHAIsNull; + property OldFECHA : DateTime read GetOldFECHAValue; + property OldFECHAIsNull : Boolean read GetOldFECHAIsNull; + property ID_ALMACEN : Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property ID_ALMACENIsNull : Boolean read GetID_ALMACENIsNull write SetID_ALMACENIsNull; + property OldID_ALMACEN : Integer read GetOldID_ALMACENValue; + property OldID_ALMACENIsNull : Boolean read GetOldID_ALMACENIsNull; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull : Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_EMPRESAIsNull : Boolean read GetOldID_EMPRESAIsNull; + property NOMBRE_ALMACEN : String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property NOMBRE_ALMACENIsNull : Boolean read GetNOMBRE_ALMACENIsNull write SetNOMBRE_ALMACENIsNull; + property OldNOMBRE_ALMACEN : String read GetOldNOMBRE_ALMACENValue; + property OldNOMBRE_ALMACENIsNull : Boolean read GetOldNOMBRE_ALMACENIsNull; + property ID_ARTICULO : Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull : Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldID_ARTICULOIsNull : Boolean read GetOldID_ARTICULOIsNull; + property FAMILIA : String read GetFAMILIAValue write SetFAMILIAValue; + property FAMILIAIsNull : Boolean read GetFAMILIAIsNull write SetFAMILIAIsNull; + property OldFAMILIA : String read GetOldFAMILIAValue; + property OldFAMILIAIsNull : Boolean read GetOldFAMILIAIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property UNIDAD_MEDIDA : String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue; + property UNIDAD_MEDIDAIsNull : Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull; + property OldUNIDAD_MEDIDA : String read GetOldUNIDAD_MEDIDAValue; + property OldUNIDAD_MEDIDAIsNull : Boolean read GetOldUNIDAD_MEDIDAIsNull; + property FABRICANTE : String read GetFABRICANTEValue write SetFABRICANTEValue; + property FABRICANTEIsNull : Boolean read GetFABRICANTEIsNull write SetFABRICANTEIsNull; + property OldFABRICANTE : String read GetOldFABRICANTEValue; + property OldFABRICANTEIsNull : Boolean read GetOldFABRICANTEIsNull; + property REFERENCIA_FABR : String read GetREFERENCIA_FABRValue write SetREFERENCIA_FABRValue; + property REFERENCIA_FABRIsNull : Boolean read GetREFERENCIA_FABRIsNull write SetREFERENCIA_FABRIsNull; + property OldREFERENCIA_FABR : String read GetOldREFERENCIA_FABRValue; + property OldREFERENCIA_FABRIsNull : Boolean read GetOldREFERENCIA_FABRIsNull; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull : Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldDESCRIPCIONIsNull : Boolean read GetOldDESCRIPCIONIsNull; + property TIPO_MOVIMIENTO : String read GetTIPO_MOVIMIENTOValue write SetTIPO_MOVIMIENTOValue; + property TIPO_MOVIMIENTOIsNull : Boolean read GetTIPO_MOVIMIENTOIsNull write SetTIPO_MOVIMIENTOIsNull; + property OldTIPO_MOVIMIENTO : String read GetOldTIPO_MOVIMIENTOValue; + property OldTIPO_MOVIMIENTOIsNull : Boolean read GetOldTIPO_MOVIMIENTOIsNull; + property CANTIDAD : Integer read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDADIsNull : Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; + property OldCANTIDAD : Integer read GetOldCANTIDADValue; + property OldCANTIDADIsNull : Boolean read GetOldCANTIDADIsNull; + property CAUSA : String read GetCAUSAValue write SetCAUSAValue; + property CAUSAIsNull : Boolean read GetCAUSAIsNull write SetCAUSAIsNull; + property OldCAUSA : String read GetOldCAUSAValue; + property OldCAUSAIsNull : Boolean read GetOldCAUSAIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers, uDAInterfaces; + +{ THistoricoMovimientosBusinessProcessorRules } +constructor THistoricoMovimientosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor THistoricoMovimientosBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosFECHA]; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetFECHAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosFECHA]); +end; + +function THistoricoMovimientosBusinessProcessorRules.GetOldFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_HistoricoMovimientosFECHA]; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetOldFECHAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_HistoricoMovimientosFECHA]); +end; + +procedure THistoricoMovimientosBusinessProcessorRules.SetFECHAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosFECHA] := aValue; +end; + +procedure THistoricoMovimientosBusinessProcessorRules.SetFECHAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosFECHA] := Null; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetID_ALMACENValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosID_ALMACEN]; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetID_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosID_ALMACEN]); +end; + +function THistoricoMovimientosBusinessProcessorRules.GetOldID_ALMACENValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_HistoricoMovimientosID_ALMACEN]; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetOldID_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_HistoricoMovimientosID_ALMACEN]); +end; + +procedure THistoricoMovimientosBusinessProcessorRules.SetID_ALMACENValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosID_ALMACEN] := aValue; +end; + +procedure THistoricoMovimientosBusinessProcessorRules.SetID_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosID_ALMACEN] := Null; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosID_EMPRESA]; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosID_EMPRESA]); +end; + +function THistoricoMovimientosBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_HistoricoMovimientosID_EMPRESA]; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetOldID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_HistoricoMovimientosID_EMPRESA]); +end; + +procedure THistoricoMovimientosBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosID_EMPRESA] := aValue; +end; + +procedure THistoricoMovimientosBusinessProcessorRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosID_EMPRESA] := Null; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetNOMBRE_ALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosNOMBRE_ALMACEN]; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetNOMBRE_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosNOMBRE_ALMACEN]); +end; + +function THistoricoMovimientosBusinessProcessorRules.GetOldNOMBRE_ALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_HistoricoMovimientosNOMBRE_ALMACEN]; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetOldNOMBRE_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_HistoricoMovimientosNOMBRE_ALMACEN]); +end; + +procedure THistoricoMovimientosBusinessProcessorRules.SetNOMBRE_ALMACENValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosNOMBRE_ALMACEN] := aValue; +end; + +procedure THistoricoMovimientosBusinessProcessorRules.SetNOMBRE_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosNOMBRE_ALMACEN] := Null; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosID_ARTICULO]; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetID_ARTICULOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosID_ARTICULO]); +end; + +function THistoricoMovimientosBusinessProcessorRules.GetOldID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_HistoricoMovimientosID_ARTICULO]; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetOldID_ARTICULOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_HistoricoMovimientosID_ARTICULO]); +end; + +procedure THistoricoMovimientosBusinessProcessorRules.SetID_ARTICULOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosID_ARTICULO] := aValue; +end; + +procedure THistoricoMovimientosBusinessProcessorRules.SetID_ARTICULOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosID_ARTICULO] := Null; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetFAMILIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosFAMILIA]; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetFAMILIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosFAMILIA]); +end; + +function THistoricoMovimientosBusinessProcessorRules.GetOldFAMILIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_HistoricoMovimientosFAMILIA]; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetOldFAMILIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_HistoricoMovimientosFAMILIA]); +end; + +procedure THistoricoMovimientosBusinessProcessorRules.SetFAMILIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosFAMILIA] := aValue; +end; + +procedure THistoricoMovimientosBusinessProcessorRules.SetFAMILIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosFAMILIA] := Null; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosREFERENCIA]; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosREFERENCIA]); +end; + +function THistoricoMovimientosBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_HistoricoMovimientosREFERENCIA]; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_HistoricoMovimientosREFERENCIA]); +end; + +procedure THistoricoMovimientosBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosREFERENCIA] := aValue; +end; + +procedure THistoricoMovimientosBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosREFERENCIA] := Null; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetUNIDAD_MEDIDAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosUNIDAD_MEDIDA]; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetUNIDAD_MEDIDAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosUNIDAD_MEDIDA]); +end; + +function THistoricoMovimientosBusinessProcessorRules.GetOldUNIDAD_MEDIDAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_HistoricoMovimientosUNIDAD_MEDIDA]; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetOldUNIDAD_MEDIDAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_HistoricoMovimientosUNIDAD_MEDIDA]); +end; + +procedure THistoricoMovimientosBusinessProcessorRules.SetUNIDAD_MEDIDAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosUNIDAD_MEDIDA] := aValue; +end; + +procedure THistoricoMovimientosBusinessProcessorRules.SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosUNIDAD_MEDIDA] := Null; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetFABRICANTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosFABRICANTE]; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetFABRICANTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosFABRICANTE]); +end; + +function THistoricoMovimientosBusinessProcessorRules.GetOldFABRICANTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_HistoricoMovimientosFABRICANTE]; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetOldFABRICANTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_HistoricoMovimientosFABRICANTE]); +end; + +procedure THistoricoMovimientosBusinessProcessorRules.SetFABRICANTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosFABRICANTE] := aValue; +end; + +procedure THistoricoMovimientosBusinessProcessorRules.SetFABRICANTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosFABRICANTE] := Null; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetREFERENCIA_FABRValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosREFERENCIA_FABR]; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetREFERENCIA_FABRIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosREFERENCIA_FABR]); +end; + +function THistoricoMovimientosBusinessProcessorRules.GetOldREFERENCIA_FABRValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_HistoricoMovimientosREFERENCIA_FABR]; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetOldREFERENCIA_FABRIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_HistoricoMovimientosREFERENCIA_FABR]); +end; + +procedure THistoricoMovimientosBusinessProcessorRules.SetREFERENCIA_FABRValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosREFERENCIA_FABR] := aValue; +end; + +procedure THistoricoMovimientosBusinessProcessorRules.SetREFERENCIA_FABRIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosREFERENCIA_FABR] := Null; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosDESCRIPCION]; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosDESCRIPCION]); +end; + +function THistoricoMovimientosBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_HistoricoMovimientosDESCRIPCION]; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetOldDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_HistoricoMovimientosDESCRIPCION]); +end; + +procedure THistoricoMovimientosBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosDESCRIPCION] := aValue; +end; + +procedure THistoricoMovimientosBusinessProcessorRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosDESCRIPCION] := Null; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetTIPO_MOVIMIENTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosTIPO_MOVIMIENTO]; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetTIPO_MOVIMIENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosTIPO_MOVIMIENTO]); +end; + +function THistoricoMovimientosBusinessProcessorRules.GetOldTIPO_MOVIMIENTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_HistoricoMovimientosTIPO_MOVIMIENTO]; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetOldTIPO_MOVIMIENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_HistoricoMovimientosTIPO_MOVIMIENTO]); +end; + +procedure THistoricoMovimientosBusinessProcessorRules.SetTIPO_MOVIMIENTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosTIPO_MOVIMIENTO] := aValue; +end; + +procedure THistoricoMovimientosBusinessProcessorRules.SetTIPO_MOVIMIENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosTIPO_MOVIMIENTO] := Null; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetCANTIDADValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosCANTIDAD]; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetCANTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosCANTIDAD]); +end; + +function THistoricoMovimientosBusinessProcessorRules.GetOldCANTIDADValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_HistoricoMovimientosCANTIDAD]; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetOldCANTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_HistoricoMovimientosCANTIDAD]); +end; + +procedure THistoricoMovimientosBusinessProcessorRules.SetCANTIDADValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosCANTIDAD] := aValue; +end; + +procedure THistoricoMovimientosBusinessProcessorRules.SetCANTIDADIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosCANTIDAD] := Null; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetCAUSAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosCAUSA]; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetCAUSAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosCAUSA]); +end; + +function THistoricoMovimientosBusinessProcessorRules.GetOldCAUSAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_HistoricoMovimientosCAUSA]; +end; + +function THistoricoMovimientosBusinessProcessorRules.GetOldCAUSAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_HistoricoMovimientosCAUSA]); +end; + +procedure THistoricoMovimientosBusinessProcessorRules.SetCAUSAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosCAUSA] := aValue; +end; + +procedure THistoricoMovimientosBusinessProcessorRules.SetCAUSAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_HistoricoMovimientosCAUSA] := Null; +end; + + +initialization + RegisterBusinessProcessorRules(RID_HistoricoMovimientosDelta, THistoricoMovimientosBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Historico de movimientos/Model/uBizHistoricoMovimientos.dcu b/Source/Modulos/Historico de movimientos/Model/uBizHistoricoMovimientos.dcu new file mode 100644 index 0000000..f99c14e Binary files /dev/null and b/Source/Modulos/Historico de movimientos/Model/uBizHistoricoMovimientos.dcu differ diff --git a/Source/Modulos/Historico de movimientos/Model/uBizHistoricoMovimientos.pas b/Source/Modulos/Historico de movimientos/Model/uBizHistoricoMovimientos.pas new file mode 100644 index 0000000..bf05188 --- /dev/null +++ b/Source/Modulos/Historico de movimientos/Model/uBizHistoricoMovimientos.pas @@ -0,0 +1,51 @@ +unit uBizHistoricoMovimientos; + +interface + +uses + uDAInterfaces, uDADataTable, schHistoricoMovimientosClient_Intf, + uDBSelectionListUtils; + +const + BIZ_CLIENT_HISTORICO_MOVIMIENTOS = 'Client.HistoricoMovimientos'; + +type + IBizHistoricoMovimientos = interface(IHistoricoMovimientos) + ['{7B2C3A2C-F96E-4BC0-85D6-D513FAD65118}'] + end; + + TBizHistoricoMovimientos = class(THistoricoMovimientosDataTableRules, IBizHistoricoMovimientos, ISeleccionable) + protected + FSeleccionableInterface : ISeleccionable; + + public + property SeleccionableInterface : ISeleccionable read FSeleccionableInterface + write FSeleccionableInterface implements ISeleccionable; + + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + end; + +implementation + +uses + Dialogs, uDACDSDataTable, SysUtils; + +{ TBizHistoricoMovimientos } + +constructor TBizHistoricoMovimientos.Create(aDataTable: TDADataTable); +begin + inherited; + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +destructor TBizHistoricoMovimientos.Destroy; +begin + FSeleccionableInterface := NIL; + inherited; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_HISTORICO_MOVIMIENTOS, TBizHistoricoMovimientos); + +end. diff --git a/Source/Modulos/Historico de movimientos/Plugin/HistoricoMovimientos_plugin.bdsproj b/Source/Modulos/Historico de movimientos/Plugin/HistoricoMovimientos_plugin.bdsproj new file mode 100644 index 0000000..b3f3772 --- /dev/null +++ b/Source/Modulos/Historico de movimientos/Plugin/HistoricoMovimientos_plugin.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + HistoricoMovimientos_plugin.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Historico de movimientos/Plugin/HistoricoMovimientos_plugin.dcu b/Source/Modulos/Historico de movimientos/Plugin/HistoricoMovimientos_plugin.dcu new file mode 100644 index 0000000..ae84c3d Binary files /dev/null and b/Source/Modulos/Historico de movimientos/Plugin/HistoricoMovimientos_plugin.dcu differ diff --git a/Source/Modulos/Historico de movimientos/Plugin/HistoricoMovimientos_plugin.dpk b/Source/Modulos/Historico de movimientos/Plugin/HistoricoMovimientos_plugin.dpk new file mode 100644 index 0000000..11b3649 Binary files /dev/null and b/Source/Modulos/Historico de movimientos/Plugin/HistoricoMovimientos_plugin.dpk differ diff --git a/Source/Modulos/Historico de movimientos/Plugin/HistoricoMovimientos_plugin.dproj b/Source/Modulos/Historico de movimientos/Plugin/HistoricoMovimientos_plugin.dproj new file mode 100644 index 0000000..3c98a38 --- /dev/null +++ b/Source/Modulos/Historico de movimientos/Plugin/HistoricoMovimientos_plugin.dproj @@ -0,0 +1,540 @@ + + + {232d2cbd-4910-4042-a617-8366cf356ec9} + HistoricoMovimientos_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\HistoricoMovimientos_plugin.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0HistoricoMovimientos_plugin.dpk + + + + + MainSource + + + + + +
PluginHistoricoMovimientos
+
+
+
+ + diff --git a/Source/Modulos/Historico de movimientos/Plugin/HistoricoMovimientos_plugin.rc b/Source/Modulos/Historico de movimientos/Plugin/HistoricoMovimientos_plugin.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Historico de movimientos/Plugin/HistoricoMovimientos_plugin.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Historico de movimientos/Plugin/HistoricoMovimientos_plugin.res b/Source/Modulos/Historico de movimientos/Plugin/HistoricoMovimientos_plugin.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Historico de movimientos/Plugin/HistoricoMovimientos_plugin.res differ diff --git a/Source/Modulos/Historico de movimientos/Plugin/uPluginHistoricoMovimientos.dcu b/Source/Modulos/Historico de movimientos/Plugin/uPluginHistoricoMovimientos.dcu new file mode 100644 index 0000000..f73f474 Binary files /dev/null and b/Source/Modulos/Historico de movimientos/Plugin/uPluginHistoricoMovimientos.dcu differ diff --git a/Source/Modulos/Historico de movimientos/Plugin/uPluginHistoricoMovimientos.dfm b/Source/Modulos/Historico de movimientos/Plugin/uPluginHistoricoMovimientos.dfm new file mode 100644 index 0000000..20196b5 --- /dev/null +++ b/Source/Modulos/Historico de movimientos/Plugin/uPluginHistoricoMovimientos.dfm @@ -0,0 +1,326 @@ +object PluginHistoricoMovimientos: TPluginHistoricoMovimientos + OldCreateOrder = True + DefaultAction = actHistoricoMovimientos + Description = 'Log'#237'stica' + ModuleMenu = MainMenu + ModuleName = 'HistoricoMovimientos' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software' + Version = '1.0.0' + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000003994944415478DADD956B4C536718 + C7FFA73D948A144924A5748245A41871C14B0C83CD006A362A23A27C5051BE28 + 5B30F116257ED02D210CA323982C3A4D0CC8166FA87138A651515462B0782B58 + A1CC4B90724B0B4DB958E9E55C77CE99769A490AEABEEC4D4E9EF39C93F7FF7B + 2EEF85E0791EFFE520FE1F0082203E58C8A801DF6607BE153445FF75E01F0520 + 8A276FDF0C59F54154B4FC0DF9688073A78FF05FA42F47A44183261B2066218E + 6F789EF860C0AD4A2DAFFFBA1976BB1D56AB15EAC21CBC2ED35B191CDDBF79C2 + 9DD687D72075C50118CF6FC160C46109525A5A8AE26D392828FAF9DF80759BE6 + 8C4B98E758DC3FB5471247EF6E0CDB3AD0DEAB465EB10C0FEA57E2C73DB79198 + 94820D3B0E12130604126FB9DF87AB57AD78F4C48DFABBEDEF0664FE9A3926A0 + 844C1D539C6368985B060203DE2772515C7C5A5B87260E10C5C5C9A6B365485D + A8F28BAF2D2151535D00AB7D0A7CEC545014851783BDE8B298F0E8E133442CC8 + 275C2EDFF84AF4796711A6CB2C98153722F9EBCBC260D87E0486845024C445A3 + C1D882D90933209791B03CB5E2FAA51A7883356AF728ED1833038EA1C0D2B464 + CBCA4DF82ADE88DFEA38FC7E4F89FD3FEDC40CBD017A5D14144124B67C7700B9 + D91998191B83510F85271D3DB872F34E55778F63E33B016F8AE7179A31DCDF89 + B8995AECDBA54357BF0A4E7605D23E4B0429974146C8B0A3F810B23317214E37 + 0D1E2F030FC5A0F1AE197537EE190296C879281BB1FA4454EC8D927AD1D01A8F + E494358852878313E62A150A14951C468E210DBA182DDC5E1A3E8A469FDD8963 + 672EFDF216E0CDC8A59541BFB2CC3FB6CE92862F172F836A5230E4A41CCFBB6D + F87E6F059212E3B128651E5C6EAF50360554612A549DAA35F9017985FA80E2E2 + FFBAF6742CC9C8C264651094CA60DC6834E1CC1F37E17A318A984F22E1F151D0 + 6AD458929E8AAA93B5CD7EC0AA0DB168BC680CB89BFF1C9A8F8CA5F9981A1E2A + F95E9FB084CD8F11A989408C5603AF501EF15B77DF002A8F9F3FE60758CC4DE3 + 3A8BD8C93A24676EC5C2B9B3C45D22F401082249A9EE6E8F0F0CCB8362183408 + 99D55EB896E53FAE2BCB37F1D567AF0704107212D33E5D8ADCD5F9D0456BA49B + 8B6538709C28CC8211DEDB9F75A2E642FD89DEEEBE8209DFC91B7F388A910147 + 54982AB45C686C5EBC2E5AEA05CB71181A7909CBE30E3436351FB7F53B76122C + 6B7F2FC0A87310AE971E05182E6B52A832372424640E4D33BC7370B8CD61739E + F3B0D4658582A458AF0F7F0103967A78C20D9F140000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + object actHistoricoMovimientos: TAction + Category = 'Log'#237'stica' + Caption = 'Hist'#243'rico de movimiento' + ImageIndex = 0 + OnExecute = actHistoricoMovimientosExecute + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object HistoricoMovimientos1: TMenuItem + Caption = 'Log'#237'stica' + object HistoricoMovimiento1: TMenuItem + Tag = 301 + Action = actHistoricoMovimientos + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016C4944415478DA + 63FCFFFF3F0325809114C53F0C18C0B6715C40E823DA009066D6A85C86DFCB26 + 332CBAC0C09006D54B9401276630FC7FA27489E1CDA5A50C4C259D6031B80173 + 7A72F006820ECF14063D9F290C2F6F6D635878C88C41AAA18181A927072C9752 + 3285116C404C8E0E56CD171664C0358370488B0CC3C563090C7F7FFD60686FDC + CFA0AD6FC90037C06381038AE60E060D0CCD2A357B1856B9CC61387BFC3EC3AE + 5D0F182EDDFCC680D505F86C06E10B679F631A00734104EB690683DFB10CE26A + 5E2836C3C062B34E862B573FE176C182A5DC0C09B1910C17E6B180359F3F1C03 + B7F9DFEF9F60FAFAED5FB85D70A7C5056E18B2E64B175EA37813AB0BC08A7F42 + 34FC816A84D90C72B663A82BC3CB4B4718264CBECE5090ABC99094731661003E + CD30676BA973C2357389483344446C82181099A6C27068E361822912E46C9866 + 566E3E8660DF251003AE5E3C4E547E40D6CCC12FCCE06D3711929E41862C5FB5 + 972843D0010013390BFAA171B8130000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000004D04944415478DAB5D67B4C53571C + 07F0EFAD158421EF47784C1E6188802E76EAC6985308CCB82D03C6080B6AE644 + 890B2EC384FDB1C581D9D823664BF6874B868A5930640C2C3E46DC446860C196 + 0DCA73C884858A3C4691475B2B8F7B7BEFDD39B7D06120F2189CA43DBDCDE9F9 + DCDFEF9CDFB965445104C330588B56EC2C13697FC024D80066AD408ABD7D2A0B + B2DE4BD0280D787108CC9A81140B7614109DE20AA80DE89C7245F380498A74D5 + C1CB2505E24B7B13D176200009631609A3EDCEE843340EF3AB1BE1ADA21C91F3 + 8C839F9F1FC60D0F60CA7E055E43D232E2FA10F015C9E8AA81353F1C1777C547 + 41D6DF889FEEEEC5A6407F180D8FC09C4E86A64594303A6E55C0B9D830678660 + 99864A970C9665919F9F8FFEFEFED5DBA50B61067D1FA60C2D782B3FE031CC06 + 167EF3BEB8122CD4D3822761A7B393A4714773CE32F3C08327A29685D597B4D8 + 30FDB411023F0DE3F0A00DD3AA52C90D7038F3A50691CF46DBD015814BC55AB4 + FFA0B2F21EDAEE4EA0FA8FCE95814BC5040B8BB6D6D1A581DFDE787D41EC0553 + FE3C6C543F8E9E1139CA1A15D8B23301DEF63AC819139E761B85601E80AAEAEF + 9547F8595E1538311159AF954B589BCE057DE23E04856C85AFB707C60C26B838 + 3B616A9A436FBF1E5DDD7F62ACAB0A7FB5752E1FBC7AA11EED7D6628C85D37B9 + 9E44F8A63AD807A4226A73081C37D8C16EBD1CEF7EF0053E3E79183E5E1E304F + 4CC1649E44736B276A6F2A71BDBC7879297DF87B36725EB6834ED58946B902EE + 7B32B03D2A145EEE1B41E7B0F002D28EE522EFC30CF8FB7A83E5784C9248C78D + 66D437B6A3A9BDEB9DCB05A78A168D5014785CBBD88006752DB214C1D0DE17A0 + 0BCBC01BAFC6C3DFDB558A8CE3797004483DFA8915F4F321D716820A0465313C + 62C4D55F6A06FA07C6229E08528CEEB8F4C36AF4747722D04B847F642C12538E + 4011190CD78D8ED20969B108E02C0B83F47B0389B2B5A35BFC55557F6449292D + CEDB8FE0B048A4C76E80D95981E7762622D0D703EBE57209140481A03CD232F3 + 909B9381003F6B4A598B35F2C9291683FA319C2B52962C08CE46C673ACB56727 + 2170D6DA2AAD8BC0EEE87DF0F771C53A994C1A2F90392A6EA971B65009C5B670 + A425C54B91D1751578111E9EEE181A1E4361F115CD3C904ECACF4C3E5BC0C29C + EBB2DB518889DE4FCAC0053219233D7328987BA6104E4F39E23775339C49AAC9 + 57A00734CD42F67B873041A22CBC545EFF18B818467BA53A183B76A5C2974428 + 9F89904E7EA7FB1E4AAF5563FBD6CD88DBBDC3B6AE1CE9695D0E0C8DE0BBF325 + A53630FD78D8A218ED1BBADDC03AA690FA0B92EA4F5A431A0D79E3C95AF2022D + 115E02694A67374D737B97F8F30DD5311B9896118CBA0AF5A2A70D2BD8413B1C + 8784D83D707371827C9D8CA44E241B876E9E1994B7BE389E46C7423F328E52E5 + 4DBDAE47176E033B5A354B3ABC699B727806913187B02D22545A2F869149C54F + 414102AD07C134CB6164DC004D431B6AEB1A339B2A0BCEDB9EF817BE3E21FE58 + 5ABD64D439E879C42424212A3C144E8EF6D612218DA69496C4A3894972B44D40 + DBDC014DF515DCAEA9F8EF685B4E9BFB77E4CDCC4F337D3CDD3FDF1216E211E0 + EB4D02652490632DE8E91D10B52D1D0F74F7073F6AAEFCFEA2EDF7FF07A42DF9 + 609EF784C0A6928FB10E0EF6811C278806A3B1979DE654C2A4A54C5B7B6E64EE + F87F01D93AAAB3863CD3F20000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 80 + Bitmap = {} + end +end diff --git a/Source/Modulos/Historico de movimientos/Plugin/uPluginHistoricoMovimientos.pas b/Source/Modulos/Historico de movimientos/Plugin/uPluginHistoricoMovimientos.pas new file mode 100644 index 0000000..85b05e2 --- /dev/null +++ b/Source/Modulos/Historico de movimientos/Plugin/uPluginHistoricoMovimientos.pas @@ -0,0 +1,74 @@ +unit uPluginHistoricoMovimientos; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCHistoricoMovimientos = interface(IInterface) + ['{9619BA3A-FA5F-4C14-B5F0-343E71C86E48}'] + end; + + TPluginHistoricoMovimientos = class(TModuleController, IMCHistoricoMovimientos) + actHistoricoMovimientos: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + HistoricoMovimientos1: TMenuItem; + HistoricoMovimiento1: TMenuItem; + procedure actHistoricoMovimientosExecute(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, + uHistoricoMovimientosController, uBizHistoricoMovimientos, uHistoricoMovimientosViewRegister; + +function GetModule : TModuleController; +begin + Result := TPluginHistoricoMovimientos.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +procedure TPluginHistoricoMovimientos.actHistoricoMovimientosExecute(Sender: TObject); +var + AHistoricoMovimientosController : IHistoricoMovimientosController; + AHistoricoMovimientos : IBizHistoricoMovimientos; + +begin + AHistoricoMovimientosController := THistoricoMovimientosController.Create; + AHistoricoMovimientos := (AHistoricoMovimientosController.BuscarTodos as IBizHistoricoMovimientos); + AHistoricoMovimientosController.VerTodos(AHistoricoMovimientos); +end; + +constructor TPluginHistoricoMovimientos.Create(AOwner: TComponent); +begin + inherited; + uHistoricoMovimientosViewRegister.RegisterViews; +end; + +destructor TPluginHistoricoMovimientos.Destroy; +begin + uHistoricoMovimientosViewRegister.UnregisterViews; + inherited; +end; + +initialization + RegisterModuleClass(TPluginHistoricoMovimientos); + +finalization + UnRegisterModuleClass(TPluginHistoricoMovimientos); + +end. diff --git a/Source/Modulos/Historico de movimientos/Servidor/srvHistoricoMovimientos_Impl.dcu b/Source/Modulos/Historico de movimientos/Servidor/srvHistoricoMovimientos_Impl.dcu new file mode 100644 index 0000000..4f46491 Binary files /dev/null and b/Source/Modulos/Historico de movimientos/Servidor/srvHistoricoMovimientos_Impl.dcu differ diff --git a/Source/Modulos/Historico de movimientos/Servidor/srvHistoricoMovimientos_Impl.dfm b/Source/Modulos/Historico de movimientos/Servidor/srvHistoricoMovimientos_Impl.dfm new file mode 100644 index 0000000..5077183 --- /dev/null +++ b/Source/Modulos/Historico de movimientos/Servidor/srvHistoricoMovimientos_Impl.dfm @@ -0,0 +1,267 @@ +object srvHistoricoMovimientos: TsrvHistoricoMovimientos + OldCreateOrder = True + ConnectionName = 'IBX' + ServiceSchema = schHistoricoMovimientos + ServiceDataStreamer = Bin2DataStreamer + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + Height = 154 + Width = 303 + object schHistoricoMovimientos: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_HISTORICO_MOVIMIENTOS' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'ID_ALMACEN' + TableField = 'ID_ALMACEN' + end + item + DatasetField = 'ID_ARTICULO' + TableField = 'ID_ARTICULO' + end + item + DatasetField = 'FAMILIA' + TableField = 'FAMILIA' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'TIPO_MOVIMIENTO' + TableField = 'TIPO_MOVIMIENTO' + end + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'CAUSA' + TableField = 'CAUSA' + end + item + DatasetField = 'NOMBRE_ALMACEN' + TableField = 'NOMBRE_ALMACEN' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'UNIDAD_MEDIDA' + TableField = 'UNIDAD_MEDIDA' + end + item + DatasetField = 'FABRICANTE' + TableField = 'FABRICANTE' + end + item + DatasetField = 'REFERENCIA_FABR' + TableField = 'REFERENCIA_FABR' + end> + end> + Name = 'HistoricoMovimientos' + Fields = < + item + Name = 'FECHA' + DataType = datDateTime + DictionaryEntry = 'HISTORICO_MOVIMIENTOS_FECHA' + InPrimaryKey = True + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + DictionaryEntry = 'HISTORICO_MOVIMIENTOS_ID_ALMACEN' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'HISTORICO_MOVIMIENTOS_ID_EMPRESA' + end + item + Name = 'NOMBRE_ALMACEN' + DataType = datString + Size = 255 + DictionaryEntry = 'HISTORICO_MOVIMIENTOS_NOMBRE_ALMACEN' + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + DictionaryEntry = 'HISTORICO_MOVIMIENTOS_ID_ARTICULO' + InPrimaryKey = True + end + item + Name = 'FAMILIA' + DataType = datString + Size = 255 + DictionaryEntry = 'HISTORICO_MOVIMIENTOS_FAMILIA' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'HISTORICO_MOVIMIENTOS_REFERENCIA' + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + DictionaryEntry = 'HistoricoMovimientos_UNIDAD_MEDIDA' + end + item + Name = 'FABRICANTE' + DataType = datString + Size = 255 + DictionaryEntry = 'HistoricoMovimientos_FABRICANTE' + end + item + Name = 'REFERENCIA_FABR' + DataType = datString + Size = 255 + DictionaryEntry = 'HistoricoMovimientos_REFERENCIA_FABR' + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DictionaryEntry = 'HISTORICO_MOVIMIENTOS_DESCRIPCION' + end + item + Name = 'TIPO_MOVIMIENTO' + DataType = datString + Size = 7 + DictionaryEntry = 'HISTORICO_MOVIMIENTOS_TIPO_MOVIMIENTO' + end + item + Name = 'CANTIDAD' + DataType = datInteger + DictionaryEntry = 'HISTORICO_MOVIMIENTOS_CANTIDAD' + end + item + Name = 'CAUSA' + DataType = datString + Size = 2021 + DictionaryEntry = 'HISTORICO_MOVIMIENTOS_CAUSA' + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 16 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'HISTORICO_MOVIMIENTOS_FECHA' + DataType = datDateTime + DisplayLabel = 'Fecha' + end + item + Name = 'HISTORICO_MOVIMIENTOS_ID_ALMACEN' + DataType = datInteger + DisplayLabel = 'ID_ALMACEN' + end + item + Name = 'HISTORICO_MOVIMIENTOS_ID_EMPRESA' + DataType = datInteger + DisplayLabel = 'ID_EMPRESA' + end + item + Name = 'HISTORICO_MOVIMIENTOS_NOMBRE_ALMACEN' + DataType = datString + Size = 255 + DisplayLabel = 'Almac'#233'n' + end + item + Name = 'HISTORICO_MOVIMIENTOS_ID_ARTICULO' + DataType = datInteger + DisplayLabel = 'ID_ARTICULO' + end + item + Name = 'HISTORICO_MOVIMIENTOS_FAMILIA' + DataType = datString + Size = 255 + DisplayLabel = 'Familia' + end + item + Name = 'HISTORICO_MOVIMIENTOS_DESCRIPCION' + DataType = datString + Size = 255 + DisplayLabel = 'Descripci'#243'n' + end + item + Name = 'HISTORICO_MOVIMIENTOS_TIPO_MOVIMIENTO' + DataType = datString + Size = 7 + DisplayLabel = 'Tipo mov.' + end + item + Name = 'HISTORICO_MOVIMIENTOS_CANTIDAD' + DataType = datInteger + DisplayLabel = 'Cantidad' + end + item + Name = 'HISTORICO_MOVIMIENTOS_CAUSA' + DataType = datString + Size = 2021 + DisplayLabel = 'Causa' + end + item + Name = 'HISTORICO_MOVIMIENTOS_REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + end + item + Name = 'HISTORICO_MOVIMIENTOS_REFERENCIA_PROV' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. proveedor' + end + item + Name = 'HistoricoMovimientos_UNIDAD_MEDIDA' + DataType = datString + Size = 255 + DisplayLabel = 'Unidad de medida' + end + item + Name = 'HistoricoMovimientos_FABRICANTE' + DataType = datString + Size = 255 + DisplayLabel = 'Fabricante' + end + item + Name = 'HistoricoMovimientos_REFERENCIA_FABR' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. fabricante' + end> + Left = 166 + Top = 22 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 88 + end +end diff --git a/Source/Modulos/Historico de movimientos/Servidor/srvHistoricoMovimientos_Impl.pas b/Source/Modulos/Historico de movimientos/Servidor/srvHistoricoMovimientos_Impl.pas new file mode 100644 index 0000000..19faaa4 --- /dev/null +++ b/Source/Modulos/Historico de movimientos/Servidor/srvHistoricoMovimientos_Impl.pas @@ -0,0 +1,72 @@ +unit srvHistoricoMovimientos_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} uDABusinessProcessor, uDABin2DataStreamer, uDADataStreamer, + uDAScriptingProvider, uDAClasses, + FactuGES_Intf, uDAInterfaces; + +type + { TsrvHistoricoMovimientos } + TsrvHistoricoMovimientos = class(TDataAbstractService, IsrvHistoricoMovimientos) + Bin2DataStreamer: TDABin2DataStreamer; + schHistoricoMovimientos: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceAfterGetDatasetData(const Dataset: IDADataset; + const IncludeSchema: Boolean; const MaxRecords: Integer); + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; + var aConnectionName: string); + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer, uDatabaseUtils, + schInventarioClient_Intf, uRestriccionesUsuarioUtils; + +procedure Create_srvHistoricoMovimientos(out anInstance : IUnknown); +begin + anInstance := TsrvHistoricoMovimientos.Create(NIL); +end; + +{ srvHistoricoMovimientos } +procedure TsrvHistoricoMovimientos.DARemoteServiceAfterGetDatasetData( + const Dataset: IDADataset; const IncludeSchema: Boolean; + const MaxRecords: Integer); +begin +{ + if DataSet.Name = nme_Inventario then + begin + { Aqu se asegura que el usuario slo accede a los Articulos + de las empresas a las que tiene permiso para acceder + filtrando DataSet por ID_EMPRESA. } +{ FiltrarAccesoUsuario(Session, Connection, schHistoricoMovimientos, DataSet, fld_InventarioID_EMPRESA); + end; +} +end; + +procedure TsrvHistoricoMovimientos.DataAbstractServiceBeforeAcquireConnection( + aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +initialization + TROClassFactory.Create('srvHistoricoMovimientos', Create_srvHistoricoMovimientos, TsrvHistoricoMovimientos_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Historico de movimientos/Views/HistoricoMovimientos_view.bdsproj b/Source/Modulos/Historico de movimientos/Views/HistoricoMovimientos_view.bdsproj new file mode 100644 index 0000000..3957257 --- /dev/null +++ b/Source/Modulos/Historico de movimientos/Views/HistoricoMovimientos_view.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + HistoricoMovimientos_view.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Historico de movimientos/Views/HistoricoMovimientos_view.dcu b/Source/Modulos/Historico de movimientos/Views/HistoricoMovimientos_view.dcu new file mode 100644 index 0000000..7af9975 Binary files /dev/null and b/Source/Modulos/Historico de movimientos/Views/HistoricoMovimientos_view.dcu differ diff --git a/Source/Modulos/Historico de movimientos/Views/HistoricoMovimientos_view.dpk b/Source/Modulos/Historico de movimientos/Views/HistoricoMovimientos_view.dpk new file mode 100644 index 0000000..4753668 Binary files /dev/null and b/Source/Modulos/Historico de movimientos/Views/HistoricoMovimientos_view.dpk differ diff --git a/Source/Modulos/Historico de movimientos/Views/HistoricoMovimientos_view.dproj b/Source/Modulos/Historico de movimientos/Views/HistoricoMovimientos_view.dproj new file mode 100644 index 0000000..0474f71 --- /dev/null +++ b/Source/Modulos/Historico de movimientos/Views/HistoricoMovimientos_view.dproj @@ -0,0 +1,545 @@ + + + {4269f0a2-b81f-47f7-a014-f7f28bc5bb79} + HistoricoMovimientos_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\HistoricoMovimientos_view.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0HistoricoMovimientos_view.dpk + + + + + MainSource + + + + +
fEditorHistoricoMovimientos
+ TfrEditorHistoricoMovimientos +
+ + +
frViewHistoricoMovimientos
+ TFrame +
+
+
+ + diff --git a/Source/Modulos/Historico de movimientos/Views/HistoricoMovimientos_view.rc b/Source/Modulos/Historico de movimientos/Views/HistoricoMovimientos_view.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Historico de movimientos/Views/HistoricoMovimientos_view.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Historico de movimientos/Views/HistoricoMovimientos_view.res b/Source/Modulos/Historico de movimientos/Views/HistoricoMovimientos_view.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Historico de movimientos/Views/HistoricoMovimientos_view.res differ diff --git a/Source/Modulos/Historico de movimientos/Views/uEditorHistoricoMovimientos.dcu b/Source/Modulos/Historico de movimientos/Views/uEditorHistoricoMovimientos.dcu new file mode 100644 index 0000000..6117447 Binary files /dev/null and b/Source/Modulos/Historico de movimientos/Views/uEditorHistoricoMovimientos.dcu differ diff --git a/Source/Modulos/Historico de movimientos/Views/uEditorHistoricoMovimientos.dfm b/Source/Modulos/Historico de movimientos/Views/uEditorHistoricoMovimientos.dfm new file mode 100644 index 0000000..3533788 --- /dev/null +++ b/Source/Modulos/Historico de movimientos/Views/uEditorHistoricoMovimientos.dfm @@ -0,0 +1,2204 @@ +inherited fEditorHistoricoMovimientos: TfEditorHistoricoMovimientos + Left = 381 + Top = 263 + Caption = 'Hist'#243'rico de movimientos de art'#237'culos en almac'#233'n' + ClientHeight = 620 + ClientWidth = 902 + ExplicitWidth = 910 + ExplicitHeight = 654 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 902 + Caption = 'Hist'#243'rico de movimientos de art'#237'culos en almac'#233'n' + ExplicitWidth = 902 + inherited Image1: TImage + Left = 875 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 5200000A4D6943435050686F746F73686F70204943432070726F66696C650000 + 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 + 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A + 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 + 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 + 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 + 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C + 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 + 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 + 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F + 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 + 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 + 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 + 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E + 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB + 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F + FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 + F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E + F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 + 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 + 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 + C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 + 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D + 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 + A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D + 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 + 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC + 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE + 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 + 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 + B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 + 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 + 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 + 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F + 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F + AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F + A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 + 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 + 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 + DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 + BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF + D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 + C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 + 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 + 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 + 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B + ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 + F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 + 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE + BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 + F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D + C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE + 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 + 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 + 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 + 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 + 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC + 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A + 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 + 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 + E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 + D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 + 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 + 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 + F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 + 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 + 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D + DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 + 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A + 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 + 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 + 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 + 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 + 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F + 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D + BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D + AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 + 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC + 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E + 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 + B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 + 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC + 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 + 4D410000B18E7CFB5193000003994944415478DADD956B4C536718C7FFA73D94 + 8A144924A5748245A41871C14B0C83CD006A362A23A27C5051BE285B30F11625 + 7ED02D210CA323982C3A4D0CC8166FA87138A651515462B0782B58A1CC4B9072 + 4B0B4DB958E9E55C77CE99769A490AEABEEC4D4E9EF39C93F7FF7B2EEF85E079 + 1EFFE520FE1F0082203E58C8A801DF6607BE153445FF75E01F05208A276FDF0C + 59F54154B4FC0DF9688073A78FF05FA42F47A44183261B2066218E6F789EF860 + C0AD4A2DAFFFBA1976BB1D56AB15EAC21CBC2ED35B191CDDBF79C29DD687D720 + 75C50118CF6FC160C46109525A5A8AE26D392828FAF9DF80759BE68C4B98E758 + DC3FB5471247EF6E0CDB3AD0DEAB465EB10C0FEA57E2C73DB7919894820D3B0E + 12130604126FB9DF87AB57AD78F4C48DFABBEDEF0664FE9A3926A0844C1D539C + 6368985B060203DE2772515C7C5A5B87260E10C5C5C9A6B365485DA8F28BAF2D + 2151535D00AB7D0A7CEC545014851783BDE8B298F0E8E133442CC8275C2EDFF8 + 4AF4796711A6CB2C98153722F9EBCBC260D87E0486845024C445A3C1D882D909 + 33209791B03CB5E2FAA51A7883356AF728ED1833038EA1C0D2B464CBCA4DF82A + DE88DFEA38FC7E4F89FD3FEDC40CBD017A5D14144124B67C7700B9D91998191B + 83510F85271D3DB872F34E55778F63E33B016F8AE7179A31DCDF89B8995AECDB + A54357BF0A4E7605D23E4B0429974146C8B0A3F810B23317214E370D1E2F030F + C5A0F1AE197537EE190296C879281BB1FA4454EC8D927AD1D01A8FE494358852 + 878313E62A150A14951C468E210DBA182DDC5E1A3E8A469FDD8963672EFDF216 + E0CDC8A59541BFB2CC3FB6CE92862F172F836A5230E4A41CCFBB6DF87E6F0592 + 12E3B128651E5C6EAF50360554612A549DAA35F9017985FA80E2E2FFBAF6742C + C9C8C264651094CA60DC6834E1CC1F37E17A318A984F22E1F151D06AD458929E + 8AAA93B5CD7EC0AA0DB168BC680CB89BFF1C9A8F8CA5F9981A1E2AF95E9FB084 + CD8F11A989408C5603AF501EF15B77DF002A8F9F3FE60758CC4DE33A8BD8C93A + 24676EC5C2B9B3C45D22F401082249A9EE6E8F0F0CCB836218340899D55EB896 + E53FAE2BCB37F1D567AF0704107212D33E5D8ADCD5F9D0456BA49B8B6538709C + 28CC8211DEDB9F75A2E642FD89DEEEBE8209DFC91B7F388A91014754982AB45C + 686C5EBC2E5AEA05CB71181A7909CBE30E3436351FB7F53B76122C6B7F2FC0A8 + 7310AE971E05182E6B52A832372424640E4D33BC7370B8CD61739EF3B0D46585 + 82A458AF0F7F0103967A78C20D9F140000000049454E44AE426082} + ExplicitLeft = 603 + end + end + inherited TBXDock: TTBXDock + Width = 902 + ExplicitWidth = 902 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 606 + end + inherited tbxFiltro: TTBXToolbar + ExplicitWidth = 269 + inherited TBXItem37: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 902 + end + inherited TBXTMain2: TTBXToolbar + Left = 275 + DockPos = 275 + ExplicitLeft = 275 + end + end + inherited StatusBar: TJvStatusBar + Top = 601 + Width = 902 + ExplicitTop = 601 + ExplicitWidth = 902 + end + inline frViewHistoricoMovimientos1: TfrViewHistoricoMovimientos [3] + Left = 0 + Top = 102 + Width = 902 + Height = 499 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 102 + ExplicitWidth = 902 + ExplicitHeight = 499 + inherited cxGrid: TcxGrid + Width = 902 + Height = 371 + ExplicitWidth = 902 + ExplicitHeight = 371 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = '0 art'#237'culos' + Kind = skCount + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = '0 Movimientos' + Kind = skCount + Column = frViewHistoricoMovimientos1.cxGridViewFECHA + end> + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 902 + ExplicitWidth = 902 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 902 + inherited dxLayoutControl1: TdxLayoutControl + Width = 902 + ExplicitWidth = 902 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 273 + Width = 273 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 225 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 225 + ExplicitWidth = 121 + Width = 121 + end + inherited eLista: TcxComboBox + Left = 383 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 383 + ExplicitWidth = 215 + Width = 215 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 902 + ExplicitWidth = 902 + inherited tbxBotones: TTBXToolbar + Width = 892 + ExplicitWidth = 892 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 473 + ExplicitTop = 473 + ExplicitWidth = 902 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 902 + ExplicitWidth = 902 + inherited TBXToolbar1: TTBXToolbar + Width = 892 + ExplicitWidth = 892 + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39244.739653854160000000 + BuiltInReportLink = True + end + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewHistoricoMovimientos1.cxGridView + HitTypes = [gvhtCell] + Index = 0 + end> + end + end + inherited EditorActionList: TActionList [4] + Left = 88 + inherited actNuevo: TAction + Caption = '&Entrada' + Enabled = False + ImageIndex = 21 + Visible = False + end + inherited actModificar: TAction + Enabled = False + Visible = False + end + inherited actEliminar: TAction + Caption = 'Salida' + Enabled = False + ImageIndex = 22 + Visible = False + end + inherited actPrevisualizar: TAction + Visible = True + end + inherited actImprimir: TAction + Visible = True + end + inherited actDuplicar: TAction + Visible = False + end + inherited actAnchoAuto: TAction + ImageIndex = 27 + end + end + inherited SmallImages: TPngImageList [5] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000F54944415478DA + 6364C002AE56C8FC67201230E23240B9A106C2F9F18381E1C11D86799D1B1892 + E6638AE13700AA70F6256F06E6EDA91003D0C4701B50510256C870E32AC3EC5F + 651003A6638AE1362022006C0B0C800D28C714C369C0C1871404222901CB88AE + 089B66ED8E278CB8029691185BB296430DA82014880633FEFF38C180610BDC80 + 080281689C7EFDFFD99307197E2CB882620BCC006C01CB08D204E3E4C5AA30BC + FBF88DA1B07A39C3E42279B82D200370C602C8009046100069BEF7E42D985EBA + EC08C334CD16B038410340CE0681DC4C3786BB8FDF306CDB728E81E142065151 + 8C1188609A48CDD80D20413308000018D5C3DDD8008BA70000000049454E44AE + 426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000F64944415478DA + 63BC5A21F39F8148A0DDF184115D8C11648072430D84F7E30703C3833B0CF33A + 373024CDC714CB5A8ECF00A8C2D997BC1998B7A7420C4013C36D4045095821C3 + 8DAB0CB37F95410C988E2986DB808800B02D300036A01C530CA701071F121788 + F8C3808800C306700622C8005C518C1C9D380311660021D7E10C441403905C97 + DB070CB00B19A806600B44B80168AE5B705481E1ECC9837043F00614CC75D6D3 + B3E16279B12A0CEF3E7E6328AC5E0E3684A00120D7CDE5DB0DD6080220CDF79E + BC05D34B971D61202AAA8CD3AFFF073B1B087233DD18EE3E7EC3B06DCB39C22E + C00A0C6640A2969830C06900522C0000AF7FD7D8678509020000000049454E44 + AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000013A4944415478DA + 63BC5C22F99F8148A0D3FD8C115D8C1164806A4B0D84F7FD3B03C3FD3B0CB3DB + 3732A42EC614CB5985CF00A8C2E9177D1858B6A5420C4013C36D4075315821C3 + F5AB0CD37F95430C98852986DB80287FB02D300036A012530CA701071E121788 + F8C360D00422474704C3648D169C81C8A837EDFFFF4B598CA8064003B1B0EF21 + 8381990343F227179C81689872EDFF855307186086800DD8A33D1BACB9BB359A + 4158809B61D2C25B708D20C3E6F2ED81F3F3E2D518DE7EF8CA505ABD94A1BF48 + 9E81F1FFFFFF0C20678547DA320801352BC908830D01019041E7E768816D0569 + 040190E67B4FDE32BC03D22B971F861800760AD010376F630665395186E9D377 + 80C540DE81190072360864667A30DC7DF49A61D7D6B3606FC00D801902A29103 + 0923D4D1D4A018005340C8009458403780540000D999FD8911DCCCCA00000000 + 49454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B3A00000B3A01647F570D000001BD4944415478DA + 63FCFFFF3F03258011D980BE9612BCA615D5F43012342037D71F43E3D7774F18 + 0C6D0B18EE3F7989DD80E9FD4DC140F69AEF5F3F31A01B00D27C6A511543FAEC + 6F0C0F9EBEC269C0FFA4747E86A97D8FE106FCFEFE89E117107F7DF384E1EAB6 + 69A41900D2FCF5ED53207ECCF0FBDB6786FB2737820D282BCE866BCC2AAA67C4 + 6A40468A235C3388FEF6EE1983D9443FB8C61F277E33CC9BF911B701B1816A0C + 171FBC63B87DEB17C4A6F9220C160EEA0C2FD6453148042D633871E026C3B4C4 + 3760F15707E2310DD033146160F8FE9EC1D6E02D0323D00E75FBCD70DB2F6C30 + 61F05854043604047AF4B37FA018F0E9E33F861D5BFF337898DE62E0E7F9C3F0 + FFDF5F867FBF7E32FCF9FD83E1DF1F20FEFD9341283D98A1AED48FA1A97B13C8 + 002714030EEFFF0EB6DDCEF02DC3FFFFFF18FEFDFC01D5FC13A8F90758330AB8 + 9CCD0837202482176E3B2FC70F86FF7F7F31FCF985B01966C89FAF9F1996ADBA + F503A8DDAB6409C37EB801AA6A6C60DB6D749F8335FCFDF38BE12FD480FF6003 + 7E01BDF38BE1F1F51B0C07CFFFBE03D4AC8A120BDA4A9F19D8DEEC6160F97815 + 6FE6016A86DB8E62C0B773F5C4643E14CD1899891C000039F251E625517D8200 + 00000049454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001A94944415478DA + 8D925D28836114C7FF4FBEE246B9734BBB61B990C89512492925F9B6BB5D0817 + 98968FF21186250AADB69285D2848DB2A5AC854D44CBB7D096C495A4D078278F + BDCF986C5EAF53E7E2391FBF739E7F871C2AE229FE6952F52D098E111E20E969 + F7BF3C1EC07D099DCA04F95468ACCEF017E0B350B35F80F015B91F10141306B4 + 35B1429C1E43C329FD00AD3F962493E22156E2AB04C2C280A8FB0B5C1FD4929F + 808A4236E5CB18A0A51059CD524CE86B7E4C54CD7A611C69C5E3F51009006C57 + A1822D726D181DAF816DDF0B854CC936A03E2F560EB0BC75BA0337CE7E2228A2 + FA7912666D0E4A4B1A71681FF95E396D8B5695A7C2BED00597BD8F088A38F834 + 098B2E0795D58D705A4301DBCBDD38B7F5124111EB5DF3A277417733C9AF2236 + 8CC5E1D894210A48CE1FFE5D447E3A0F303ADEC0BD51B87737E1DAE944427A27 + A21333F1F24AA19F3900380708A5A197CCFF930718D6BDE0BC141BBADC402EB1 + C8020FF70EC3DC9138607A8D631BF0EE9CCA0B34BFF87CC974220ED0995F59F3 + ED9E1177671A44C457213AA98C01ACAB677F034415E44D08C0202943A290C8C8 + 98EC0F53DC14659A0322CE0000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001A44944415478DA + 63BC5C22F99F8148A0D3FD8C115D8C1164806A4B0D84F7FD3B03C3FD3B0CB3DB + 3732A42EC614CB5985CF00A8C2E9177D1858B6A5420C4013C36D4075315821C3 + F5AB0CD37F95430C980511D38AD361F8C0AF0A54C9C0C0CCCCC0C0FEEE36C3E3 + 4BD98CA80644F9836D8101B00195FE0CF6A53A0CF31666A2D8D8BEE237C38609 + 550C9F1FF732C20D38F01033C0D6FFAA66983C3593E1C0C5DF0C2571E56017FC + 07E290F24EB0FCBE25F50C4FCF7730E20CC4EEAF0B18B6CF7261080F2B62B87C + 7402C2C926C7FF3BC99C63B8FFFA29C3BDA36D8C3803B1EBCB02861DB35D18A2 + 638B18CEEF9BC0C88003E00CC4DC7B6B09A68BFF672C19B10662E1142186AB1B + CD091AA0EDD98F3D1041B6830CD870EC0FC3AF3FFF19EE9F39C270EF54038392 + 590303A7B225C38F9FFF19162EBDC4C0F0EB1803E3FFFF98291914502003561D + FACDF0EBF77F86C3B35DE172CA413B18BEFFFAC7B06AF515C2062CD9FB0BEC02 + 103EBFD81DAEF907106FDA788DB001B3B7FF046B7E767603C39B1BD319582563 + 1838B522C006ECDB7503BF01044310047019003644AF97A0216C6C5C4E003148 + 0E65624E21D60000000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage27' + Background = clWindow + end> + Left = 371 + Top = 160 + Bitmap = {} + end + inherited LargeImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001914944415478DA + 63FCFFFF3F032D0123CD2DC02571B542C61948EDC1A3D78590BC56FBE3BDF82C + F8AFDC50C3C0CE9E8E21F7F3E74C8679892D0C49F3F1CB672E7BCC88D702A00B + C08AE1E0C70F20FECE307B970103F3F654900184E449B000A4F9C33B8801A79C + 302DC02E4FA40530CD60037E32CCBE15846A016E79222CF83811A1F9C307880B + 5FA5202CC02F4F84050FEB119A6141F0AB0C61017E794682A968F62A79ACF220 + 0340A9089F3C210B9C0F3EC49DCEEDE5195C08C9E3CD07840031F904AB0F88C9 + C1DA1D4FF612994FB05A40D06559CB9F3012994FD02C3098F1FFAA470B032197 + 6158406C3E304EBFFEFFECC9830CFFCFA7E375198A0584F201C8509400761264 + E86CDFC0F0E304034E97A15840281F802CC88B554109A919AB8E311C3F749DE1 + C78667585D06B380503E41B1E0DAD3B70C2F3F7F6778F3E53758C1DB7BCF2196 + 4C3882E132A80504F309381FC02CD87FE30986E1938BE4B1BA0C640131790554 + 5B32C22216062CED34C1864FD36CC1E932503E20DA02F4640AA62F64909DC309 + 5B4025C3E116D0BA550100E46DEBE08B969D720000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000019B4944415478DA + 63FCFFFF3F032D0123C8826B95B2CE40F61E3CEA5C08C96B773CD98B2E08321B + 66C17FE5861A0676F6740C9D3F7FCE649897D8C290341FBF7CD6F2278C782DD0 + 6A7F0C560C073F7E00F17786D9BB0C1898B7A732642EC32F4F9A0520CD1FDE41 + 0C38E58469011679E22D8069061BF09361F6AD20540B70C81367C1C78908CD1F + 3E405CF82A0561011E79E22C78588FD00C0B825F65080BF0C813B400948A66AF + 92C79A0641068052113E794216381F7C883B9DDBCB33B81092A7381F60732121 + 40523E005970B54286608E47F60949F9006A01493E25291FC02CC0E5530E0F41 + 86699A842C2090CE312C40F2A9757F12C3D9930719182E64E0B180403A47B100 + 68B875B93B6A0438093274B66F805B42523E40B100EA53EBF64886BC581514B5 + 33561D63387EE83AD81292F2012875C02D80FAD47A7A36D8826B4FDF32BCFCFC + 9DE1CD97DF60F56FEF3D075BF2FF7C3A23C41646E292382C15C17CBAE0A802D8 + 82FD379E60188EE203122C40F1E95CBEDD908885024B3B4DB8E1287140AC0578 + 81C10C48E58E2D1551CD0224C3512CA025A0B90500E54149EFB4C64472000000 + 0049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001A44944415478DA + 63FCFFFF3F032D0123C8822BA552254076371E75A584E475BA9FF5E0B3E0BF6A + 4B0D033B7B1686829F3FA731CC8E6D61485D8C5F3E67D53346BC16005D00560C + 07DFBF3330FCF8CE307D872103CBB654900184E449B000A4F9C33B303DFDA433 + A605D8E589B400A6F93D10FFF8C930FD6630AA05B8E589B0E0432F42F3870F10 + 17BE4A4558805F9E080B1E542334835D0834E05739C202FCF2F82D00A5A2E9CB + E5B1A6419001A054844F9E900525071EE24EE70EF20CA584E447F3C130C90786 + 29D7184ED42CC5990F18F5A6FDFF7F298B11B70578D2F95CBE3D600D27B227E3 + CC074007FCBF70EA0003B22544E58385471419F2E2D518262DBC85221E6F731F + 2C870C9C9D85187ADBD7C12D8159E00C4CE77BB0190E7239C8F0AB4FDE3068CB + 88C0C593B267314CD66881CB2383E92B8E309C3E7C0D6C0923BE1A0D14A6F3A6 + A6810D7FF9F93B58ECCDE75F0C6FEF3D871B000A169803406A40F2200053C348 + A8CA0459E211EF0CD70403E816ECBBFE18C370823E40B6C4D4560BAC0919C02C + 00452C0CC0D4A1C40131006409CC5052D4106D01CC00421660CD07B404001FE5 + 4BB30B8819120000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B1300000B1301009A9C18000002E14944415478DA + B5946B4814611486DF15C3122BB444ED8F901A921678438824C140D3CD322BD0 + 2828BB295678234249A8ED87844461A969125844264A60E18F42A2D032B520FF + C836EB6AEDEAEE9A3BB2E67AD99969BED976749A1DD92C0F0C73E6CC37EFF3CE + 39DF8C8AE338AC66A8960206CBB6A4F0A757CBACDF1B7DD3F8FA5F005C84A602 + 3E3E05B2857373F7D0705C83C216A3EA9F00BC43414C0CBB1D98B5A3B63306DE + 2FCFFC67002F1EA0DE8C358E4964A5C6624F5C30E2B60762477880C71001507B + EB5A369FB72619EB200288737A122167A33165A6C1B21C36F8AD85971710B9D5 + 1F17737622373D7C5910D17601B82C358789FBF54E005D2D88C3CA1F342DC022 + 6B8EC23ECB203323163D031446862DB85BBE1B27D4912A8F00A7CE6D84B6B2CA + 09D0972F8A933399C1FC65F46B7DD1F96E04599909E8EEA760B5D0787E3B0D09 + 51412A8F016417D53E0975EB880CF94560033E7E99C0A103F16869EF45727C08 + 52437BC53505C5952A45C00CA5C7E3EB4F157B7AACE208DA74E75156DD83C307 + 1385560D53663CD424637F74236ACAAA50FA08CA00E569B1589FE42BA4ECEF5D + 575EACE6DBA483D16485C9F003B46D5EA8339FF33D03580D34DA3BA4ADBDD41C + 842B4519E23501B8628CDF69C6510B6E641BC45A7ED1559522A0A97E0A3151DE + 880DD349EAFE398928294CC3E09011B69F738BE2DF2CD057B7F02FEB80B6FB2D + DE7C5AF85AD2CC45B805B8DCE7658EBAE99603FEB9BB507A619F00D1EA4DD053 + 2618EEB40AF7A64606F1ACC33CCB2F4DE7015D6E014AEE8900E75800C738B0E9 + 640AC2B6054BC4596601D487F7827B7ED8116E67A0E47EA938C91902C94BC744 + 5D9B286EFB3E24BAE7015D7200C3A0A9715AE6DE9D38C9C13A447172ADEBEB13 + DDCB77D1693F58C76D32F79E8A4F8F5112F77240DE3A343DB04BDCFF8DB8D960 + 95B89701C8CF4E74CF7F58E441978033778A0A07A9B3CEFAF4F8B04B5CE25E06 + 2085044E8395C69FEE65809981CA158BF321732F01AC66AC3AE0176A11A2EF01 + B8EA320000000049454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001FE4944415478DA + 63FCFFFF3F032D0123C8822BA552254076371E75A584E475BA9FF5E0B3E0BF6A + 4B0D033B7B1686829F3FA731CC8E6D61485D8C5F3E67D53346BC16005D00560C + 07DFBF3330FCF8CE307D872103CBB654900184E449B000A4F9C33B303DFDA433 + A605D8E589B400A6F93D10FFF8C930FD6630AA05B8E589B0E0432F42F3870F10 + 17BE4A4558805F9E080B1E542334835D0834E05739C202FCF2F82D00A5A2E9CB + E5B1A6419001A054844F9E900525071EE24EE70EF20CA584E469920F184D8E63 + A8FF7FC69211AB05A4E6030E6B43862B1BCC510C6F5DF18F61F9A2890CFF2F15 + 33E2B780403E8019BEFFE25F86DCCA49700B22E3F2C134B22564E5030E172BB0 + 053A5EFD0CFD451AF0480606D9FFC808533C1610990F38427CC8B480887C0032 + 9C58008A7092F20128EC27379A3038EA3313341C163F300B9C81E97C0FBE740E + CA07B9F7D6828366F73906865F7FFE83F14F10FD1B8AC162408FFF626058B2EC + 3C50D1318805C4025018832CD87A0A61F8833347181E9CAE6350306D62E050B2 + 041BFEFDD77F86B56B2E906FC1FA63FFE02E3F36C7192EAF10B81B6CF88F9FFF + 18B66EBE44BE052B0EFD4509964B4B5D510CFFF1FB1FC3DE1D57C8B760FE9E3F + 0CBF7E410C7F7E6E3DC3BB9BD3189825621938B4A28196FC65F8F38F81E1D8DE + ABE459004A45B9F56788D340AA05604BF47A89D600CA6C004568670C5BA5F9FB + 0000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002054944415478DA + 63FCFFFF3F032D0123C8822BA552254076371E75A584E475BA9FF5E0B3E0BF6A + 4B0D033B7B1686829F3FA731CC8E6D61485D8C5F3E67D53346BC16005D00560C + 07DFBF3330FCF8CE307D872103CBB654900184E449B000A4F9C33B303DFDA433 + A605D8E589B400A6F93D10FFF8C930FD6630AA05B8E589B0E0432F42F3870F10 + 17BE4A4558805F9E080B1E542334835D0834E05739C202FCF2F82D00A5A2E9CB + E5B1A6419001A054844F9E900525071EE24EE70EF20CA584E469920F184D8E63 + A8FF7FC69211AB05A4E6030E6B43862B1BCC510C6F5DF18F61F9A2890CFF2F15 + 33E2B780403E8019BEFFE25F86DCCA49700B22E3F2C134B22564E5030E172BB0 + 053A5EFD0CFD451AF0480606D97F2799730CFBEEFDC0610191F98023C407AB05 + 782399D87C00329C58008A7092F20128EC27379A3038EA3313341C163F300B9C + 81E97C0FBE740ECA07B9F7D6828366F73906865F7FFE83F14F10FD1B8AC16240 + 8FFF626058B2EC3C50D1318805C4025024822CD87A0A61F8833347181E9CAE63 + 50306D62E050B2041BFEFDD77F86B56B2E906FC1FA63FFE02E3F36C7192EAF10 + B81B6CF88F9FFF18B66EBE44BE052B0EFD4509964B4B5D510CFFF1FB1FC3DE1D + 57C8B760FE9E3F0CBF7E410C7F7E6E3DC3BB9BD3189825621938B4A28196FC65 + F8F38F81E1D8DEABE459004A45B9F56788D340AA05604BF47A89D600CACD00E4 + E9610CDEDF75F30000000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage27' + Background = clWindow + end> + Left = 459 + Top = 160 + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [7] + end + inherited dsDataTable: TDADataSource [9] + Left = 8 + Top = 168 + end + inherited StatusBarImages: TPngImageList [10] + end + inherited GridPopupMenu: TPopupMenu + inherited Nuevo1: TMenuItem [3] + end + object rasladar1: TMenuItem [4] + Caption = 'Trasladar' + ImageIndex = 23 + Visible = False + end + inherited N1: TMenuItem [5] + end + object Liberar1: TMenuItem [6] + Caption = 'Liberar' + ImageIndex = 26 + Visible = False + end + object Reservar1: TMenuItem [7] + Caption = 'Reservar' + ImageIndex = 25 + Visible = False + end + end + object JsElegirAlmacenDialog: TJSDialog + Content.Strings = ( + #191'Sobre qu'#233' almac'#233'n desea realizar la operaci'#243'n?') + DialogOptions = [doRadioButtons, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB51930000020F4944415478DAE5D4DB2B04 + 511800F06FB659D7CD2D892816B984258992242129E5924BDEE49147FF81571E + 9495072F44BB1EF69127CAA5DC436E895C4A92AC6CC48E9961EC3963C7EEEC65 + CEAC6D5F7CF575E69C33F3FD3AA773861204014219D4FF02298AF2FAD2709B5E + B8BEBF0E18195B17A4C28A20C2FA8D16E059065EACF7F0FE6203FBAB986B9619 + D0EB93A169D0E8757E7A6C089ED2BBC1643291814E4C2CF0EC13F3368FB0AE8E + 5618DF0E27038381A1200283851181C1C414C191F6CC3F611DED2DA0D150E4E0 + 402515F0A56CACAF83C8A808A069DA0DF50B8EF65242437D1F11C0B13C701C87 + DBA58555282E2B045A4B83D691AE685040578C6339585DDC8082923C0CC9D13F + 83728CE378D858D981DC826C8CC9D189DD88C0C10F86151119BAB77D08593919 + 222843270F74EAC1AFCF2FBC126F181A3FDA3F85F4CC34097245A74EE2D4814A + 18EA9F1D5F404A6A1284858779A0B3E789E42009869E2FCF6F203129016FA11C + 9DBB4A26034931D691B73777101B1F8341396AB94D53064930C6FE21818F0F56 + 88D6454907C589CE5BB3C16C36BBFF3EE5605D6DAF072616E781E7C53196FD5D + 1DEADB9E6D18D06A7F4FE73263C018AAEB17ACAAEC715FCD4F515F186ADFDFDE + 1C975C23615B9A720953042BCA3A556168FB19C68EBF47E8A1AEDA0D53044B0D + ADAA30144EF038A6C60353048BF29B55614ED017A6086E32DD1048F8C2FC82A1 + 889083DF93D867F65E51168D0000000049454E44AE426082} + Instruction.Text = 'Elija el almac'#233'n' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + RadioButtons = < + item + Caption = 'Radio Button 0' + Value = 200 + end + item + Caption = 'Radio Button 1' + Value = 201 + end + item + Caption = 'Radio Button 2' + Value = 202 + end + item + Caption = 'Radio Button 3' + Value = 203 + end> + ButtonBar.Buttons = [cbOK] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Left = 152 + Top = 152 + end +end diff --git a/Source/Modulos/Historico de movimientos/Views/uEditorHistoricoMovimientos.pas b/Source/Modulos/Historico de movimientos/Views/uEditorHistoricoMovimientos.pas new file mode 100644 index 0000000..96a87b4 Binary files /dev/null and b/Source/Modulos/Historico de movimientos/Views/uEditorHistoricoMovimientos.pas differ diff --git a/Source/Modulos/Historico de movimientos/Views/uHistoricoMovimientosViewRegister.dcu b/Source/Modulos/Historico de movimientos/Views/uHistoricoMovimientosViewRegister.dcu new file mode 100644 index 0000000..0b7a5dd Binary files /dev/null and b/Source/Modulos/Historico de movimientos/Views/uHistoricoMovimientosViewRegister.dcu differ diff --git a/Source/Modulos/Historico de movimientos/Views/uHistoricoMovimientosViewRegister.pas b/Source/Modulos/Historico de movimientos/Views/uHistoricoMovimientosViewRegister.pas new file mode 100644 index 0000000..beee08d --- /dev/null +++ b/Source/Modulos/Historico de movimientos/Views/uHistoricoMovimientosViewRegister.pas @@ -0,0 +1,23 @@ +unit uHistoricoMovimientosViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorHistoricoMovimientos; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorHistoricoMovimientos, 'EditorHistoricoMovimientos'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorHistoricoMovimientos); +end; + +end. diff --git a/Source/Modulos/Historico de movimientos/Views/uViewHistoricoMovimientos.dcu b/Source/Modulos/Historico de movimientos/Views/uViewHistoricoMovimientos.dcu new file mode 100644 index 0000000..2520dc9 Binary files /dev/null and b/Source/Modulos/Historico de movimientos/Views/uViewHistoricoMovimientos.dcu differ diff --git a/Source/Modulos/Historico de movimientos/Views/uViewHistoricoMovimientos.dfm b/Source/Modulos/Historico de movimientos/Views/uViewHistoricoMovimientos.dfm new file mode 100644 index 0000000..51799a1 --- /dev/null +++ b/Source/Modulos/Historico de movimientos/Views/uViewHistoricoMovimientos.dfm @@ -0,0 +1,507 @@ +inherited frViewHistoricoMovimientos: TfrViewHistoricoMovimientos + inherited cxGrid: TcxGrid + OnActiveTabChanged = cxGridActiveTabChanged + inherited cxGridView: TcxGridDBTableView + DataController.KeyFieldNames = 'RecID' + DataController.Options = [dcoAnsiSort, dcoCaseInsensitive, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Format = '0 art'#237'culos' + Kind = skCount + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = '0 Movimientos' + Kind = skCount + Column = cxGridViewFECHA + end> + OptionsCustomize.ColumnGrouping = False + OptionsCustomize.ColumnHidingOnGrouping = False + OptionsCustomize.GroupBySorting = True + object cxGridViewID_ALMACEN: TcxGridDBColumn + DataBinding.FieldName = 'ID_ALMACEN' + Visible = False + end + object cxGridViewFECHA: TcxGridDBColumn + DataBinding.FieldName = 'FECHA' + Options.Grouping = False + SortIndex = 0 + SortOrder = soDescending + Width = 60 + end + object cxGridViewTIPO_MOVIMIENTO: TcxGridDBColumn + DataBinding.FieldName = 'TIPO_MOVIMIENTO' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.DefaultDescription = 'Salida' + Properties.DefaultImageIndex = 2 + Properties.Images = GridPNGImageList + Properties.Items = < + item + Description = 'Entrada' + ImageIndex = 3 + Value = 'E' + end + item + Description = 'Salida' + ImageIndex = 2 + Value = 'S' + end> + end + object cxGridViewFAMILIA: TcxGridDBColumn + Caption = 'Familia' + DataBinding.FieldName = 'FAMILIA' + Width = 50 + end + object cxGridViewREFERENCIA: TcxGridDBColumn + DataBinding.FieldName = 'REFERENCIA' + Width = 50 + end + object cxGridViewDESCRIPCION: TcxGridDBColumn + DataBinding.FieldName = 'DESCRIPCION' + Width = 102 + end + object cxGridViewFABRICANTE: TcxGridDBColumn + DataBinding.FieldName = 'FABRICANTE' + Width = 41 + end + object cxGridViewREFERENCIA_FABR: TcxGridDBColumn + DataBinding.FieldName = 'REFERENCIA_FABR' + Width = 41 + end + object cxGridViewUNIDAD_MEDIDA: TcxGridDBColumn + DataBinding.FieldName = 'UNIDAD_MEDIDA' + Width = 43 + end + object cxGridViewCANTIDAD: TcxGridDBColumn + DataBinding.FieldName = 'CANTIDAD' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + Width = 41 + end + object cxGridViewNOMBRE_ALMACEN: TcxGridDBColumn + Caption = 'Almac'#233'n/Obra' + DataBinding.FieldName = 'NOMBRE_ALMACEN' + Width = 42 + end + object cxGridViewCAUSA: TcxGridDBColumn + DataBinding.FieldName = 'CAUSA' + Width = 38 + end + end + object cxGridDBTableView1: TcxGridDBTableView [1] + NavigatorButtons.ConfirmDelete = False + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + end + inherited cxGridLevel: TcxGridLevel + Tag = -1 + Caption = 'Todos los almacenes' + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + inherited TBXDockablePanel1: TTBXDockablePanel + inherited dxLayoutControl1: TdxLayoutControl + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 272 + Width = 272 + end + inherited edtFechaFinFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 221 + Width = 221 + end + inherited eLista: TcxComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 215 + Width = 215 + end + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + Left = 400 + Top = 160 + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 38673.741107951390000000 + BuiltInReportLink = True + end + end + inherited dxPSEngineController1: TdxPSEngineController + Left = 328 + Top = 160 + end + inherited cxStyleRepository1: TcxStyleRepository + Top = 160 + inherited cxStyleSelection: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + end + object cxStyleEntrada: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clNavy + end + object cxStyleSalida: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clGreen + end + end + inherited GridPNGImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000434944415478DA63FCFFFF3F + 03258011D900464646ACA601D530126D00BA6298A1B80C21CA0090183639925C + 80CB3B040DC0E69A510306BD010C04005E03C801036F00008D248BE16F9028BA + 0000000049454E44AE426082} + Name = 'Icono_header' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000000FE4944415478DA63FCFFFF3F0325 + 8091AA06303232A248F2ACE2F8FF25EC0723BA26143DF80CE05EC2FEFFFFAFFF + 0CDF927E31926500D73CB6FFED4E450CE51B7B197EE4FF66246800EF5ACEFF0C + FF800A80B682F14F06860ABB6486F7DF3F314CDFB992E167F51F46FC06ACE6FC + BFCCBB8FE1C3D78F0CEFBF7D84D040CD6F3EBF6778F3E51DC3DE6367187EB7FF + 61C46900CF528EFFD3DD1AB06A06E12F3FBE32DC3EF39CE1CF94BF8C580DE09E + CF0EF6F3F4FD8B516383831BAEF9EFD47FB85DC0350312EA0CE03000FAF53703 + 8392BC38580EA699A45860AD64F9AFAC268EA2992403588A98FFFFFFF91F4533 + 4906306733FD47D78CD70072C0C01B0000F574D6E1505448120000000049454E + 44AE426082} + Name = 'Salida' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000001B74944415478DACDD3BF4BDC6018 + 07F0EF9BE44D2EC99B5C2E69AF873F7051EEE88928D2BB8250E9E67FD03A94AE + 3A39B675D045E9D26EA55B8BB33AB9B82938D82EF66CE970AB52151585430F3C + CCE5F5798B6314C1A17D20BC2FC9FB7C42BEEF1B26A5C47D8AFD3F40616C119C + 1BF0031742D8705D5BD0D8600C655A5357CF745D835ABEF4AE783BE0BA199A9B + EF83C07D4B405ED3D8F19D01E1D9221B3853C552D7DCEECE0935B03796651C71 + CE41230853C0422A406F08B3397FA254EE991F7D5EC4E6461D860E388E013BC3 + 71DE8C7176162B80A50125CEF5F1DEC77D33C32303B0B4180F42035991C0F724 + 1E861A36BF1D63EBC72996A74BA940BBB32B6283D5217691E410F8929ADBF01C + 09E14A74140CFCAC1D62FBD7295666FB530111C7EDD71D9DD1A7A7CF86711E47 + C8247B609068B56254AA8F70B0D7C076ED00ABF343A90005265D9ABEC817725F + AA2383D8FAFE1B4C030C0AD7F332948786CB4B89B50F4FD2015549226D4AFA65 + 14795F9BCD96DA9557DCE4FBBAAEC3B64D1894EAFAC7CADA8D802A758F3E67D2 + B2F8676AE80E42FF8F3A1BA6A9B65153006E05AE4BD0D548DA49395F08EB7ED6 + F97B4E6E04FED9CF7405E802B6E1F5AC5DBC0000000049454E44AE426082} + Name = 'Entrada' + Background = clWindow + end> + Bitmap = {} + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + Top = 152 + end +end diff --git a/Source/Modulos/Historico de movimientos/Views/uViewHistoricoMovimientos.pas b/Source/Modulos/Historico de movimientos/Views/uViewHistoricoMovimientos.pas new file mode 100644 index 0000000..d2c7495 --- /dev/null +++ b/Source/Modulos/Historico de movimientos/Views/uViewHistoricoMovimientos.pas @@ -0,0 +1,183 @@ +unit uViewHistoricoMovimientos; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, frxClass, frxPreview, cxStyles, + cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, + cxDBData, ActnList, uDADataTable, cxGridLevel, cxClasses, cxControls, + cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, StdCtrls, ExtCtrls, cxLabel, dxPSGlbl, dxPSUtl, + dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, cxIntlPrintSys3, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, cxImage, + cxImageComboBox, ImgList, PngImageList, cxTextEdit, Grids, DBGrids, cxDBLookupComboBox, + cxButtonEdit, cxGridCustomPopupMenu, cxGridPopupMenu, uViewGrid, + uBizHistoricoMovimientos, uBizAlmacenes, cxSpinEdit, uViewFiltroBase, TB2Item, TBX, + TB2Toolbar, TBXDkPanels, TB2Dock, dxPgsDlg, cxCurrencyEdit, uDAInterfaces; + +type + IViewHistoricoMovimientos = interface(IViewGrid) + ['{1E8F901C-F013-42E0-88B7-0D9DA2919A01}'] + function GetHistoricoMovimientos: IBizHistoricoMovimientos; + procedure SetHistoricoMovimientos(const Value: IBizHistoricoMovimientos); + property HistoricoMovimientos: IBizHistoricoMovimientos read GetHistoricoMovimientos write SetHistoricoMovimientos; + function GetAlmacenes: IBizAlmacen; + procedure SetAlmacenes(const Value: IBizAlmacen); + property Almacenes: IBizAlmacen read GetAlmacenes write SetAlmacenes; + end; + + TfrViewHistoricoMovimientos = class(TfrViewGrid, IViewHistoricoMovimientos) + cxGridDBTableView1: TcxGridDBTableView; + cxStyleEntrada: TcxStyle; + cxGridViewDESCRIPCION: TcxGridDBColumn; + cxGridViewREFERENCIA: TcxGridDBColumn; + cxGridViewFAMILIA: TcxGridDBColumn; + cxGridViewNOMBRE_ALMACEN: TcxGridDBColumn; + cxGridViewID_ALMACEN: TcxGridDBColumn; + cxGridViewFECHA: TcxGridDBColumn; + cxGridViewCANTIDAD: TcxGridDBColumn; + cxGridViewUNIDAD_MEDIDA: TcxGridDBColumn; + cxGridViewCAUSA: TcxGridDBColumn; + cxStyleSalida: TcxStyle; + cxGridViewFABRICANTE: TcxGridDBColumn; + cxGridViewREFERENCIA_FABR: TcxGridDBColumn; + cxGridViewTIPO_MOVIMIENTO: TcxGridDBColumn; + + procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel); + procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out + AStyle: TcxStyle); + + private + //Filtros relativos a la vista + procedure AnadirFiltroAlmacenes; + + protected + FAlmacenes: IBizAlmacen; + FHistoricoMovimientos: IBizHistoricoMovimientos; + function GetAlmacenes: IBizAlmacen; + procedure SetAlmacenes(const Value: IBizAlmacen); + function GetHistoricoMovimientos: IBizHistoricoMovimientos; + procedure SetHistoricoMovimientos(const Value: IBizHistoricoMovimientos); + public + property HistoricoMovimientos: IBizHistoricoMovimientos read GetHistoricoMovimientos write SetHistoricoMovimientos; + procedure AnadirOtrosFiltros; override; + destructor Destroy; override; + end; + +implementation +{$R *.dfm} + +uses uDataModuleHistoricoMovimientos, schHistoricoMovimientosClient_Intf; + +procedure TfrViewHistoricoMovimientos.AnadirFiltroAlmacenes; +var + FFiltro : TcxFilterCriteriaItemList; + CodigoAlmacen: String; +begin +{ + FFiltro := AddFilterGrid(fboAnd); + + CodigoAlmacen := IntToStr(cxGrid.Levels.Items[cxGrid.ActiveLevel.Index].Tag); + if CodigoAlmacen <> '-1' then + begin + FFiltro.AddItem(cxGridViewID_ALMACEN, foEqual, CodigoAlmacen, CodigoAlmacen); + cxGridViewNOMBRE_ALMACEN.Visible := False; + end + else + cxGridViewNOMBRE_ALMACEN.Visible := True; +} +end; + +procedure TfrViewHistoricoMovimientos.AnadirOtrosFiltros; +begin + inherited; + + AnadirFiltroAlmacenes; + + //Finalmente activamos el filtro si tenemos algo + if cxGridView.DataController.Filter.IsEmpty + then cxGridView.DataController.Filter.Active := False + else cxGridView.DataController.Filter.Active := True; + cxGrid.ActiveLevel.GridView := cxGridView; +end; + +procedure TfrViewHistoricoMovimientos.cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel); +begin +// inherited; +// RefrescarFiltro; +end; + +procedure TfrViewHistoricoMovimientos.cxGridViewStylesGetContentStyle(Sender: + TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: + TcxCustomGridTableItem; out AStyle: TcxStyle); +var + IndiceCol: Integer; + ACantidad: Variant; +begin +{ + inherited; + + if Assigned(ARecord) then + begin + IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_HistoricoMovimientosCANTIDAD).Index; + ACantidad := ARecord.DisplayTexts[IndiceCol]; + if (ACantidad < 0) then + AStyle.TextColor := cxStyleSalida.TextColor + else + AStyle.TextColor := cxStyleEntrada.TextColor; + end; +} +end; + +destructor TfrViewHistoricoMovimientos.Destroy; +begin + FAlmacenes := Nil; + FHistoricoMovimientos := Nil; + inherited; +end; + +function TfrViewHistoricoMovimientos.GetAlmacenes: IBizAlmacen; +begin + Result := FAlmacenes; +end; + +function TfrViewHistoricoMovimientos.GetHistoricoMovimientos: IBizHistoricoMovimientos; +begin + Result := FHistoricoMovimientos; +end; + +procedure TfrViewHistoricoMovimientos.SetAlmacenes(const Value: IBizAlmacen); +var + Nivel: TcxGridLevel; +begin + FAlmacenes := Value; +{ + if Assigned(FAlmacenes) then + begin + if not FAlmacenes.DataTable.Active then + FAlmacenes.DataTable.Active := True; + + FAlmacenes.First; + while not FAlmacenes.EOF do + begin + Nivel := cxGrid.Levels.Add; + Nivel.Caption := FAlmacenes.NOMBRE; + Nivel.Tag := FAlmacenes.ID; + FAlmacenes.Next; + end; + end; +} +end; + +procedure TfrViewHistoricoMovimientos.SetHistoricoMovimientos(const Value: IBizHistoricoMovimientos); +begin + FHistoricoMovimientos := Value; + if Assigned(FHistoricoMovimientos) then + dsDataSource.DataTable := FHistoricoMovimientos.DataTable + else + dsDataSource.DataTable := Nil; +end; + +end. diff --git a/Source/Modulos/Inventario/Controller/Inventario_controller.bdsproj b/Source/Modulos/Inventario/Controller/Inventario_controller.bdsproj new file mode 100644 index 0000000..40d9574 --- /dev/null +++ b/Source/Modulos/Inventario/Controller/Inventario_controller.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + Inventario_controller.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Inventario/Controller/Inventario_controller.dcu b/Source/Modulos/Inventario/Controller/Inventario_controller.dcu new file mode 100644 index 0000000..9831896 Binary files /dev/null and b/Source/Modulos/Inventario/Controller/Inventario_controller.dcu differ diff --git a/Source/Modulos/Inventario/Controller/Inventario_controller.dpk b/Source/Modulos/Inventario/Controller/Inventario_controller.dpk new file mode 100644 index 0000000..5d85b5b --- /dev/null +++ b/Source/Modulos/Inventario/Controller/Inventario_controller.dpk @@ -0,0 +1,49 @@ +package Inventario_controller; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + Inventario_model, + Inventario_data, + Articulos_controller, + Almacenes_controller, + PresupuestosCliente_model, + PresupuestosCliente_controller, + PedidosProveedor_controller, + PedidosProveedor_model, + Obras_controller, + Obras_model; + +contains + uIEditorInventario in 'View\uIEditorInventario.pas', + uInventarioController in 'uInventarioController.pas', + uIEditorEntradaSalidaArticulos in 'View\uIEditorEntradaSalidaArticulos.pas', + uArticulosInventarioController in 'uArticulosInventarioController.pas', + uIEditorElegirArticulosCatalogo in 'View\uIEditorElegirArticulosCatalogo.pas', + uIEditorElegirArticulosAlmacen in 'View\uIEditorElegirArticulosAlmacen.pas', + uInventarioUtils in '..\Utiles\uInventarioUtils.pas' {dmInventarioUtils: TDataModule}, + uIEditorDetalleReservas in 'View\uIEditorDetalleReservas.pas'; + +end. diff --git a/Source/Modulos/Inventario/Controller/Inventario_controller.dproj b/Source/Modulos/Inventario/Controller/Inventario_controller.dproj new file mode 100644 index 0000000..11877ee --- /dev/null +++ b/Source/Modulos/Inventario/Controller/Inventario_controller.dproj @@ -0,0 +1,554 @@ + + + {5874467b-b5ec-4f13-a56b-36d9d93d49a5} + Inventario_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Inventario_controller.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Inventario_controller.dpk + + + + + MainSource + + + + + + + + + + + + +
dmInventarioUtils
+ TDataModule +
+ + + + + + + +
+
+ diff --git a/Source/Modulos/Inventario/Controller/Inventario_controller.rc b/Source/Modulos/Inventario/Controller/Inventario_controller.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Inventario/Controller/Inventario_controller.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Inventario/Controller/Inventario_controller.res b/Source/Modulos/Inventario/Controller/Inventario_controller.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Inventario/Controller/Inventario_controller.res differ diff --git a/Source/Modulos/Inventario/Controller/View/serverlog.txt b/Source/Modulos/Inventario/Controller/View/serverlog.txt new file mode 100644 index 0000000..973b121 --- /dev/null +++ b/Source/Modulos/Inventario/Controller/View/serverlog.txt @@ -0,0 +1,321 @@ +[10/03/2007 14:27:34]> +[Application: ]> +[Connect]> +[10/03/2007 14:27:34]> +[Application: ]> +[Prepare] SELECT> +[10/03/2007 14:27:34]> +[Application: ]> +[Start transaction]> +[10/03/2007 14:27:34]> +[Application: ]> +[Prepare] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) > +[10/03/2007 14:27:34]> +[Application: ]> +[Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) > +[10/03/2007 14:27:34]> +[Application: ]> +[Prepare] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION > +[10/03/2007 14:27:34]> +[Application: ]> +[Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION > +[10/03/2007 14:27:34]> +[Application: ]> +[Commit (Hard commit)]> +[10/03/2007 14:27:34]> +[Application: ]> +[Execute] SELECT> +[10/03/2007 14:27:34]> +[Application: ]> +[Prepare] SELECT > +[10/03/2007 14:27:34]> +[Application: ]> +[Start transaction]> +[10/03/2007 14:27:34]> +[Application: ]> +[Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) > +[10/03/2007 14:27:34]> +[Application: ]> +[Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION > +[10/03/2007 14:27:34]> +[Application: ]> +[Commit (Hard commit)]> +[10/03/2007 14:27:34]> +[Application: ]> +[Execute] SELECT > +[10/03/2007 14:27:34]> +[Application: ]> +[Prepare] SELECT > +[10/03/2007 14:27:34]> +[Application: ]> +[Start transaction]> +[10/03/2007 14:27:34]> +[Application: ]> +[Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) > +[10/03/2007 14:27:34]> +[Application: ]> +[Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION > +[10/03/2007 14:27:34]> +[Application: ]> +[Commit (Hard commit)]> +[10/03/2007 14:27:34]> +[Application: ]> +[Execute] SELECT > +[10/03/2007 14:27:36]> +[Application: ]> +[Prepare] SELECT> +[10/03/2007 14:27:36]> +[Application: ]> +[Start transaction]> +[10/03/2007 14:27:36]> +[Application: ]> +[Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) > +[10/03/2007 14:27:36]> +[Application: ]> +[Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION > +[10/03/2007 14:27:36]> +[Application: ]> +[Commit (Hard commit)]> +[10/03/2007 14:27:36]> +[Application: ]> +[Execute] SELECT> +[10/03/2007 14:27:36]> +[Application: ]> +[Prepare] SELECT> +[10/03/2007 14:27:36]> +[Application: ]> +[Execute] SELECT> +[10/03/2007 14:27:36]> +[Application: ]> +[Prepare] SELECT> +[10/03/2007 14:27:36]> +[Application: ]> +[Execute] SELECT> +[10/03/2007 14:27:39]> +[Application: ]> +[Prepare] SELECT > +[10/03/2007 14:27:40]> +[Application: ]> +[Start transaction]> +[10/03/2007 14:27:40]> +[Application: ]> +[Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) > +[10/03/2007 14:27:40]> +[Application: ]> +[Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION > +[10/03/2007 14:27:40]> +[Application: ]> +[Commit (Hard commit)]> +[10/03/2007 14:27:40]> +[Application: ]> +[Execute] SELECT > +[10/03/2007 14:27:40]> +[Application: ]> +[Prepare] SELECT > +[10/03/2007 14:27:40]> +[Application: ]> +[Start transaction]> +[10/03/2007 14:27:40]> +[Application: ]> +[Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) > +[10/03/2007 14:27:40]> +[Application: ]> +[Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION > +[10/03/2007 14:27:40]> +[Application: ]> +[Commit (Hard commit)]> +[10/03/2007 14:27:40]> +[Application: ]> +[Start transaction]> +[10/03/2007 14:27:40]> +[Application: ]> +[Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) > +[10/03/2007 14:27:40]> +[Application: ]> +[Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION > +[10/03/2007 14:27:40]> +[Application: ]> +[Commit (Hard commit)]> +[10/03/2007 14:27:40]> +[Application: ]> +[Execute] SELECT > +[10/03/2007 14:27:40]> +[Application: ]> +[Prepare] SELECT> +[10/03/2007 14:27:40]> +[Application: ]> +[Start transaction]> +[10/03/2007 14:27:40]> +[Application: ]> +[Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) > +[10/03/2007 14:27:40]> +[Application: ]> +[Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION > +[10/03/2007 14:27:40]> +[Application: ]> +[Commit (Hard commit)]> +[10/03/2007 14:27:40]> +[Application: ]> +[Execute] SELECT> +[10/03/2007 14:27:40]> +[Application: ]> +[Prepare] SELECT> +[10/03/2007 14:27:40]> +[Application: ]> +[Start transaction]> +[10/03/2007 14:27:40]> +[Application: ]> +[Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) > +[10/03/2007 14:27:40]> +[Application: ]> +[Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION > +[10/03/2007 14:27:40]> +[Application: ]> +[Commit (Hard commit)]> +[10/03/2007 14:27:40]> +[Application: ]> +[Execute] SELECT> +[10/03/2007 14:27:40]> +[Application: ]> +[Prepare] SELECT > +[10/03/2007 14:27:40]> +[Application: ]> +[Start transaction]> +[10/03/2007 14:27:40]> +[Application: ]> +[Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) > +[10/03/2007 14:27:40]> +[Application: ]> +[Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION > +[10/03/2007 14:27:40]> +[Application: ]> +[Commit (Hard commit)]> +[10/03/2007 14:27:40]> +[Application: ]> +[Execute] SELECT > +[10/03/2007 14:27:40]> +[Application: ]> +[Prepare] SELECT > +[10/03/2007 14:27:40]> +[Application: ]> +[Execute] SELECT > +[10/03/2007 14:27:40]> +[Application: ]> +[Prepare] SELECT> +[10/03/2007 14:27:40]> +[Application: ]> +[Execute] SELECT> +[10/03/2007 14:27:40]> +[Application: ]> +[Prepare] SELECT> +[10/03/2007 14:27:40]> +[Application: ]> +[Execute] SELECT> +[10/03/2007 14:27:40]> +[Application: ]> +[Prepare] SELECT > +[10/03/2007 14:27:40]> +[Application: ]> +[Execute] SELECT > +[10/03/2007 14:27:41]> +[Application: ]> +[Prepare] SELECT > +[10/03/2007 14:27:41]> +[Application: ]> +[Execute] SELECT > +[10/03/2007 14:27:41]> +[Application: ]> +[Prepare] SELECT> +[10/03/2007 14:27:41]> +[Application: ]> +[Execute] SELECT> +[10/03/2007 14:27:41]> +[Application: ]> +[Prepare] SELECT> +[10/03/2007 14:27:41]> +[Application: ]> +[Execute] SELECT> +[10/03/2007 14:27:41]> +[Application: ]> +[Prepare] SELECT > +[10/03/2007 14:27:41]> +[Application: ]> +[Execute] SELECT > +[10/03/2007 14:27:42]> +[Application: ]> +[Prepare] SELECT > +[10/03/2007 14:27:42]> +[Application: ]> +[Start transaction]> +[10/03/2007 14:27:42]> +[Application: ]> +[Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) > +[10/03/2007 14:27:42]> +[Application: ]> +[Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION > +[10/03/2007 14:27:42]> +[Application: ]> +[Commit (Hard commit)]> +[10/03/2007 14:27:42]> +[Application: ]> +[Execute] SELECT > +[10/03/2007 14:27:42]> +[Application: ]> +[Prepare] SELECT> +[10/03/2007 14:27:42]> +[Application: ]> +[Execute] SELECT> +[10/03/2007 14:27:42]> +[Application: ]> +[Prepare] SELECT > +[10/03/2007 14:27:42]> +[Application: ]> +[Execute] SELECT > +[10/03/2007 14:27:42]> +[Application: ]> +[Prepare] SELECT > +[10/03/2007 14:27:42]> +[Application: ]> +[Start transaction]> +[10/03/2007 14:27:42]> +[Application: ]> +[Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) > +[10/03/2007 14:27:42]> +[Application: ]> +[Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION > +[10/03/2007 14:27:42]> +[Application: ]> +[Commit (Hard commit)]> +[10/03/2007 14:27:42]> +[Application: ]> +[Execute] SELECT > +[10/03/2007 14:27:42]> +[Application: ]> +[Prepare] SELECT > +[10/03/2007 14:27:42]> +[Application: ]> +[Start transaction]> +[10/03/2007 14:27:42]> +[Application: ]> +[Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) > +[10/03/2007 14:27:42]> +[Application: ]> +[Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION > +[10/03/2007 14:27:42]> +[Application: ]> +[Commit (Hard commit)]> +[10/03/2007 14:27:42]> +[Application: ]> +[Execute] SELECT > +[10/03/2007 14:27:42]> +[Application: ]> +[Prepare] SELECT> +[10/03/2007 14:27:42]> +[Application: ]> +[Execute] SELECT> +[10/03/2007 14:27:42]> +[Application: ]> +[Prepare] SELECT > +[10/03/2007 14:27:42]> +[Application: ]> +[Execute] SELECT > diff --git a/Source/Modulos/Inventario/Controller/View/uIEditorDetalleReservas.dcu b/Source/Modulos/Inventario/Controller/View/uIEditorDetalleReservas.dcu new file mode 100644 index 0000000..e4420fe Binary files /dev/null and b/Source/Modulos/Inventario/Controller/View/uIEditorDetalleReservas.dcu differ diff --git a/Source/Modulos/Inventario/Controller/View/uIEditorDetalleReservas.pas b/Source/Modulos/Inventario/Controller/View/uIEditorDetalleReservas.pas new file mode 100644 index 0000000..4a613fb --- /dev/null +++ b/Source/Modulos/Inventario/Controller/View/uIEditorDetalleReservas.pas @@ -0,0 +1,35 @@ +unit uIEditorDetalleReservas; + +interface + +uses + uEditorGridBase, uBizInventario, uInventarioController; + +type + IEditorDetalleReservas = interface(IEditorGridBase) + ['{EE301C2F-98DC-49CD-B7EA-D29D0B9326D8}'] + function GetTipoReservas: String; + procedure SetTipoReservas(const Value: String); + property TipoReservas: String read GetTipoReservas write SetTipoReservas; + + function GetController : IInventarioController; + procedure SetController (const Value : IInventarioController); + property Controller : IInventarioController read GetController write SetController; + + function GetDetalleReservas: IBizDetalleReservas; + procedure SetDetalleReservas(const Value: IBizDetalleReservas); + property DetalleReservas: IBizDetalleReservas read GetDetalleReservas write SetDetalleReservas; + + function GetArticulo: IBizInventario; + procedure SetArticulo(const Value: IBizInventario); + property Articulo: IBizInventario read GetArticulo write SetArticulo; + + function GetIdAlmacenObra: Integer; + procedure SetIdAlmacenObra(const Value: Integer); + property IdAlmacenObra: Integer read GetIdAlmacenObra write SetIdAlmacenObra; + end; + + +implementation + +end. diff --git a/Source/Modulos/Inventario/Controller/View/uIEditorElegirArticulosAlmacen.dcu b/Source/Modulos/Inventario/Controller/View/uIEditorElegirArticulosAlmacen.dcu new file mode 100644 index 0000000..a699c0c Binary files /dev/null and b/Source/Modulos/Inventario/Controller/View/uIEditorElegirArticulosAlmacen.dcu differ diff --git a/Source/Modulos/Inventario/Controller/View/uIEditorElegirArticulosAlmacen.pas b/Source/Modulos/Inventario/Controller/View/uIEditorElegirArticulosAlmacen.pas new file mode 100644 index 0000000..0f1932d --- /dev/null +++ b/Source/Modulos/Inventario/Controller/View/uIEditorElegirArticulosAlmacen.pas @@ -0,0 +1,26 @@ +unit uIEditorElegirArticulosAlmacen; + +interface + +uses + uIEditorInventario, uBizInventario; + +type + IEditorElegirArticulosAlmacen = interface(IEditorInventario) + ['{6EE62E0B-ADAA-4794-B851-2B062B222D57}'] + function GetArticulosSeleccionados: IBizInventario; + property ArticulosSeleccionados: IBizInventario read GetArticulosSeleccionados; + + procedure SetMultiSelect (AValue : Boolean); + function GetMultiSelect : Boolean; + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + + procedure SetMensaje (const AValue: String); + function GetMensaje: String; + property Mensaje : String read GetMensaje write SetMensaje; + end; + + +implementation + +end. diff --git a/Source/Modulos/Inventario/Controller/View/uIEditorElegirArticulosCatalogo.dcu b/Source/Modulos/Inventario/Controller/View/uIEditorElegirArticulosCatalogo.dcu new file mode 100644 index 0000000..863df2f Binary files /dev/null and b/Source/Modulos/Inventario/Controller/View/uIEditorElegirArticulosCatalogo.dcu differ diff --git a/Source/Modulos/Inventario/Controller/View/uIEditorElegirArticulosCatalogo.pas b/Source/Modulos/Inventario/Controller/View/uIEditorElegirArticulosCatalogo.pas new file mode 100644 index 0000000..0c255da --- /dev/null +++ b/Source/Modulos/Inventario/Controller/View/uIEditorElegirArticulosCatalogo.pas @@ -0,0 +1,16 @@ +unit uIEditorElegirArticulosCatalogo; + +interface + +uses + uIEditorElegirArticulos; + +type + IEditorElegirArticulosCatalogo = interface(IEditorElegirArticulos) + ['{17DDDCD5-7FE3-4D79-973F-ED870D113DA6}'] + end; + + +implementation + +end. diff --git a/Source/Modulos/Inventario/Controller/View/uIEditorEntradaSalidaArticulos.dcu b/Source/Modulos/Inventario/Controller/View/uIEditorEntradaSalidaArticulos.dcu new file mode 100644 index 0000000..7a0e166 Binary files /dev/null and b/Source/Modulos/Inventario/Controller/View/uIEditorEntradaSalidaArticulos.dcu differ diff --git a/Source/Modulos/Inventario/Controller/View/uIEditorEntradaSalidaArticulos.pas b/Source/Modulos/Inventario/Controller/View/uIEditorEntradaSalidaArticulos.pas new file mode 100644 index 0000000..7432cc4 --- /dev/null +++ b/Source/Modulos/Inventario/Controller/View/uIEditorEntradaSalidaArticulos.pas @@ -0,0 +1,34 @@ +unit uIEditorEntradaSalidaArticulos; + +interface + +uses + uEditorDBItem, uBizInventario, uInventarioController, uBizPedidosProveedor; + +type + IEditorEntradaSalidaArticulos = interface(IEditorDBItem) + ['{D9C21CA9-5923-4F89-ABBC-81128D2F5272}'] + function GetArticulos: IBizInventario; + procedure SetArticulos(const Value: IBizInventario); + property Articulos: IBizInventario read GetArticulos write SetArticulos; + + function GetInventario: IBizInventario; + procedure SetInventario(const Value: IBizInventario); + property Inventario: IBizInventario read GetInventario write SetInventario; + + function GetController : IInventarioController; + procedure SetController (const Value : IInventarioController); + property Controller : IInventarioController read GetController write SetController; + + function GetPedidoProveedor: IBizPedidoProveedor; + procedure SetPedidoProveedor(const Value: IBizPedidoProveedor); + property PedidoProveedor: IBizPedidoProveedor read GetPedidoProveedor write SetPedidoProveedor; + + function getResultadoModalOK: Boolean; + property ResultadoModalOK: Boolean read getResultadoModalOK; + end; + + +implementation + +end. diff --git a/Source/Modulos/Inventario/Controller/View/uIEditorInventario.dcu b/Source/Modulos/Inventario/Controller/View/uIEditorInventario.dcu new file mode 100644 index 0000000..35bd5bd Binary files /dev/null and b/Source/Modulos/Inventario/Controller/View/uIEditorInventario.dcu differ diff --git a/Source/Modulos/Inventario/Controller/View/uIEditorInventario.pas b/Source/Modulos/Inventario/Controller/View/uIEditorInventario.pas new file mode 100644 index 0000000..b4e6b0b --- /dev/null +++ b/Source/Modulos/Inventario/Controller/View/uIEditorInventario.pas @@ -0,0 +1,34 @@ +unit uIEditorInventario; + +interface + +uses + uEditorGridBase, uBizInventario, uInventarioController; + +type + IEditorInventario = interface(IEditorGridBase) + ['{D9C21CA9-5923-4F89-ABBC-81128D2F5272}'] + function GetTipoInventario: String; + procedure SetTipoInventario(const Value: String); + property TipoInventario: String read GetTipoInventario write SetTipoInventario; + + function GetInventario: IBizInventario; + procedure SetInventario(const Value: IBizInventario); + property Inventario: IBizInventario read GetInventario write SetInventario; + + function GetController : IInventarioController; + procedure SetController (const Value : IInventarioController); + property Controller : IInventarioController read GetController write SetController; + + procedure SetMultiSelect (AValue : Boolean); + function GetMultiSelect : Boolean; + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + + function GetArticulosSeleccionados: IBizInventario; + property ArticulosSeleccionados: IBizInventario read GetArticulosSeleccionados; + end; + + +implementation + +end. diff --git a/Source/Modulos/Inventario/Controller/uArticulosInventarioController.dcu b/Source/Modulos/Inventario/Controller/uArticulosInventarioController.dcu new file mode 100644 index 0000000..2bc455e Binary files /dev/null and b/Source/Modulos/Inventario/Controller/uArticulosInventarioController.dcu differ diff --git a/Source/Modulos/Inventario/Controller/uArticulosInventarioController.pas b/Source/Modulos/Inventario/Controller/uArticulosInventarioController.pas new file mode 100644 index 0000000..c54adbf --- /dev/null +++ b/Source/Modulos/Inventario/Controller/uArticulosInventarioController.pas @@ -0,0 +1,44 @@ +unit uArticulosInventarioController; + +interface + +uses + uDADataTable, uArticulosController, uBizArticulos, uBizInventario; + +type + IArticulosInventarioController = interface(IArticulosController) + ['{33B26E09-ABE8-45A4-B9B3-E0E48F8EBB3E}'] + end; + + TArticulosInventarioController = class(TArticulosController, IArticulosInventarioController) + public + function ElegirArticulos(AArticulos : IBizArticulo; AMensaje: String; AMultiSelect: Boolean): IBizArticulo; override; + end; + +implementation + +{ TArticulosInventarioController } + +uses Controls, cxControls, uIEditorElegirArticulosCatalogo; + +function TArticulosInventarioController.ElegirArticulos(AArticulos: IBizArticulo; AMensaje: String; + AMultiSelect: Boolean): IBizArticulo; +var + AEditor : IEditorElegirArticulosCatalogo; +begin + Result := NIL; + CreateEditor('EditorElegirArticulosCatalogo', IEditorElegirArticulosCatalogo, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; + AEditor.Articulos := AArticulos; + AEditor.MultiSelect := AMultiSelect; + if IsPositiveResult(AEditor.ShowModal) then + Result := AEditor.ArticulosSeleccionados; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +end. diff --git a/Source/Modulos/Inventario/Controller/uInventarioController.dcu b/Source/Modulos/Inventario/Controller/uInventarioController.dcu new file mode 100644 index 0000000..ef4a4d4 Binary files /dev/null and b/Source/Modulos/Inventario/Controller/uInventarioController.dcu differ diff --git a/Source/Modulos/Inventario/Controller/uInventarioController.pas b/Source/Modulos/Inventario/Controller/uInventarioController.pas new file mode 100644 index 0000000..99fd589 --- /dev/null +++ b/Source/Modulos/Inventario/Controller/uInventarioController.pas @@ -0,0 +1,1267 @@ +unit uInventarioController; + +interface + + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uEditorDBItem, + uIDataModuleInventario, uBizInventario, uArticulosInventarioController, + uAlmacenesController, uObrasController, uPresupuestosClienteController, + uBizPresupuestosCliente, uPedidosProveedorController, uBizPedidosProveedor, + uBizArticulos, uBizAlmacenes, uBizObras; + + +type + IInventarioController = interface(IControllerBase) + ['{FB1DE6BA-ADCC-4A83-B4D4-37DC5892766B}'] + function Eliminar(AInventario : IBizInventario; Todos: Boolean; ApplyUpdates: Boolean): Boolean; + function Trasladar(AInventario : IBizInventario; Todos: Boolean): Boolean; +// procedure RecibirArticulos(Const APedido: IBizPedidoProveedor; Const CodigoAlmacenDes: Integer); overload; +// procedure RecibirPedidos(Const CodigoAlmacenDes: Integer); + function Liberar(AInventario : IBizInventario): Boolean; + + function Ver(AArticulos: IBizInventario; AInventario : IBizInventario; APedido: IBizPedidoProveedor = Nil): Boolean; + procedure VerTodos(AInventario: IBizInventario; const pTipoInventario: String); + procedure VerReservas(AArticulo: IBizInventario; const ATipoReservas: String; Const IdAlmacenObra: Integer); + + function BuscarTodos: IBizInventario; + function BuscarTodosAlmacenes: IBizInventario; + function BuscarTodosObras: IBizInventario; + function Buscar(const ID_ALMACEN: Integer): IBizInventario; + function BuscarDetalleReservas: IBizDetalleReservas; + function ExtraerSeleccionados(AArticulos: IBizInventario) : IBizInventario; overload; + function ExtraerSeleccionados(AArticulos: IBizDetalleReservas) : IBizDetalleReservas; overload; + + procedure Anadir(AArticulos, AInventario : IBizInventario); + function Guardar(AArticulos : IBizInventario; const FechaMovimiento: TDateTime; const CausaMovimiento: String; AValidar:Boolean = True): Boolean; + + procedure EntradaArticulosLibre(AInventario: IBizInventario; Const CodigoAlmacenDestino: Integer); + procedure SalidaArticulosLibre(AInventario: IBizInventario; Const CodigoAlmacenOrigen: Integer); + procedure TrasladarArticulosLibre(AInventario: IBizInventario; Const CodigoAlmacenOrigen: Integer; Const CodigoAlmacenDestino: Integer); + procedure ReservarArticulosLibre(AInventario: IBizInventario; Const CodigoAlmacenOrigen: Integer; Const CodigoAlmacenDestino: Integer); + procedure CancelarReservas(AReservas: IBizDetalleReservas); + procedure TrasladarReservas(AReservas: IBizDetalleReservas); + function EntradaPedido(AInventario: IBizInventario; APedido: IBizPedidoProveedor; ADetalles: IDAStronglyTypedDataTable; var ADetallesFinal: IBizInventario): Boolean; + function SalidaAlbaran(AInventario: IBizInventario; Const CodigoAlmacenOrigen: Integer; ADetalles: IDAStronglyTypedDataTable): Boolean; + + function GetAlmacenesController: IAlmacenesController; + procedure SetAlmacenesController(const Value: IAlmacenesController); + property AlmacenesController: IAlmacenesController read GetAlmacenesController write SetAlmacenesController; + + function GetObrasController: IObrasController; + procedure SetObrasController(const Value: IObrasController); + property ObrasController: IObrasController read GetObrasController write SetObrasController; + + procedure Copiar(AArticulos: IBizInventario; ADetalles: IDAStronglyTypedDataTable; AInventario: IBizInventario); overload; + end; + + TInventarioController = class(TControllerBase, IInventarioController) + private + FAlmacenesController: IAlmacenesController; + FObrasController: IObrasController; + FArticulosController : IArticulosInventarioController; + FPresupuestosClienteController : IPresupuestosClienteController; + FPedidosProveedorController : IPedidosProveedorController; + function GetAlmacenesController: IAlmacenesController; + function GetObrasController: IObrasController; + function GetArticulosController: IArticulosInventarioController; + function GetPresupuestosClienteController: IPresupuestosClienteController; + function GetPedidosProveedorController: IPedidosProveedorController; + procedure SetAlmacenesController(const Value: IAlmacenesController); + procedure SetObrasController(const Value: IObrasController); + procedure SetArticulosController(const Value: IArticulosInventarioController); + procedure SetPresupuestosClienteController(const Value: IPresupuestosClienteController); + procedure SetPedidosProveedorController(const Value: IPedidosProveedorController); + + function Liberar(AInventario : IBizInventario; Todos: Boolean): Boolean; overload; + + function EntradaSalidaArticulos(AArticulos, AInventario : IBizInventario; APedido: IBizPedidoProveedor = Nil): Boolean; overload; + function ReservarArticulos(AArticulos, AInventario : IBizInventario): Boolean; + + procedure Copiar(AArticulos: IBizInventario; ADetalles: IDAStronglyTypedDataTable; AInventario: IBizInventario); overload; + function GuardarMovimientos(AArticulos : IBizInventario; const FechaMovimiento: TDateTime; const CausaMovimiento: String): Boolean; + + protected + FDataModule : IDataModuleInventario; + + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; + function _Vacio : IBizInventario; + + procedure FiltrarEmpresa(AInventario: IBizInventario); overload; + procedure FiltrarEmpresa(ADetalleReservas: IBizDetalleReservas); overload; + procedure DeshabilitarOnCalcFields(Sender: TDADataTable); + function ValidarCantidades(AArticulos: IBizInventario): Boolean; + function Validar(AArticulos: IBizInventario): Boolean; + + //Estos son los tres mtodos a sobre escribir si se desea heredar toda la logica de + //este controller + procedure AsignarDataModule; virtual; + + public + property AlmacenesController: IAlmacenesController read GetAlmacenesController write SetAlmacenesController; + property ObrasController: IObrasController read GetObrasController write SetObrasController; + property ArticulosController: IArticulosInventarioController read GetArticulosController write SetArticulosController; + property PresupuestosClienteController: IPresupuestosClienteController read GetPresupuestosClienteController write SetPresupuestosClienteController; + property PedidosProveedorController: IPedidosProveedorController read GetPedidosProveedorController write SetPedidosProveedorController; + + constructor Create; override; + destructor Destroy; override; + + function Trasladar(AInventario : IBizInventario; Todos: Boolean): Boolean; + +// procedure RecibirArticulos(Const APedido: IBizPedidoProveedor; Const CodigoAlmacenDes: Integer); overload; + +// procedure RecibirPedidos(Const CodigoAlmacenDes: Integer); + + function Buscar(const ID_ALMACEN: Integer): IBizInventario; + function BuscarTodos: IBizInventario; + function BuscarTodosAlmacenes: IBizInventario; + function BuscarTodosObras: IBizInventario; + function BuscarDetalleReservas: IBizDetalleReservas; + function ElegirArticulos(AArticulos : IBizInventario; AMensaje: String; AMultiSelect: Boolean): IBizInventario; + function ExtraerSeleccionados(AArticulos: IBizInventario) : IBizInventario; overload; + function ExtraerSeleccionados(AArticulos: IBizDetalleReservas) : IBizDetalleReservas; overload; + + procedure Anadir(AArticulos, AInventario : IBizInventario); + function Eliminar(AInventario : IBizInventario; Todos: Boolean; ApplyUpdates: Boolean): Boolean; + + procedure EntradaArticulosLibre(AInventario: IBizInventario; Const CodigoAlmacenDestino: Integer); + procedure SalidaArticulosLibre(AInventario: IBizInventario; Const CodigoAlmacenOrigen: Integer); + procedure TrasladarArticulosLibre(AInventario: IBizInventario; Const CodigoAlmacenOrigen: Integer; Const CodigoAlmacenDestino: Integer); + procedure ReservarArticulosLibre(AInventario: IBizInventario; Const CodigoAlmacenOrigen: Integer; Const CodigoAlmacenDestino: Integer); + procedure CancelarReservas(AReservas: IBizDetalleReservas); + procedure TrasladarReservas(AReservas: IBizDetalleReservas); + function EntradaPedido(AInventario: IBizInventario; APedido: IBizPedidoProveedor; ADetalles: IDAStronglyTypedDataTable; var ADetallesFinal: IBizInventario): Boolean; + function SalidaAlbaran(AInventario: IBizInventario; Const CodigoAlmacenOrigen: Integer; ADetalles: IDAStronglyTypedDataTable): Boolean; + + procedure VerTodos(AInventario: IBizInventario; const pTipoInventario: String); + function Ver(AArticulos: IBizInventario; AInventario : IBizInventario; APedido: IBizPedidoProveedor = Nil): Boolean; + + procedure VerReservas(AArticulo: IBizInventario; const ATipoReservas: String; Const IdAlmacenObra: Integer); + + function Guardar(AArticulos : IBizInventario; const FechaMovimiento: TDateTime; const CausaMovimiento: String; AValidar:Boolean = True): Boolean; + + function Liberar(AInventario : IBizInventario): Boolean; overload; + end; + +implementation + +uses + Forms, cxControls, DB, schInventarioClient_Intf, uEditorRegistryUtils, + uIEditorInventario, uDataModuleInventario, + uDataModuleUsuarios, uDAInterfaces, uDataTableUtils, + uDateUtils, uROTypes, DateUtils, Controls, Windows, + dialogs, Variants, schPedidosProveedorClient_Intf, + uControllerDetallesBase, uDialogUtils, uFactuGES_App, + uIEditorEntradaSalidaArticulos, schArticulosClient_Intf, + uIEditorElegirArticulosAlmacen, uInventarioUtils, + uIEditorDetalleReservas, schAlmacenesClient_Intf; + +const + CTE_NULA = -1000; //No se utiliza ID_NULO porque en los albaranes de cliente se est asignando ID_NULO y esto ocasiona que se devuelvan tuplas + +{ TInventarioController } + +{ +procedure TInventarioController.Anadir(AArticulo: IBizArticulo); +begin + AArticulo.Insert; +end; +} + +procedure TInventarioController.Anadir(AArticulos, AInventario: IBizInventario); +var + AArticulosSeleccionados: IDAStronglyTypedDataTable; +begin + AArticulosSeleccionados := Nil; + + case AArticulos.TipoMovimiento of + tEntradaLibre: begin + //IBizArticulo + AArticulosSeleccionados := FArticulosController.ElegirArticulos(FArticulosController.BuscarInventariables, '', True); + end; + + tSalidaLibre, tTraslado, tReserva: begin + //IBizInventario + AArticulosSeleccionados := ElegirArticulos(Buscar(AArticulos.IDAlmacenOrigen), '', True); + end; + end; + + if Assigned(AArticulosSeleccionados) then + Copiar(AArticulos, AArticulosSeleccionados, AInventario) +end; + +procedure TInventarioController.AsignarDataModule; +begin + FDataModule := TDataModuleInventario.Create(Nil); +end; + +function TInventarioController.Buscar(const ID_ALMACEN: Integer): IBizInventario; +begin + Result := (FDataModule as IDataModuleInventario).GetItems(ID_ALMACEN); +//Los inventarios sern comunes lo que pasa es que ciertas obras no se podrn ver sus inventarios si no est su empresa activa +// FiltrarEmpresa(Result); +end; + +function TInventarioController.BuscarDetalleReservas: IBizDetalleReservas; +begin + Result := FDataModule.GetDetalleReservas; + //Se filtra para que solo salgan las reservas a obras o almacenes de la empresa activa + FiltrarEmpresa(Result); +end; + +function TInventarioController.BuscarTodos: IBizInventario; +begin + Result := FDataModule.GetItems; +//Los inventarios sern comunes lo que pasa es que ciertas obras no se podrn ver sus inventarios si no est su empresa activa +// FiltrarEmpresa(Result); +end; + +function TInventarioController.BuscarTodosAlmacenes: IBizInventario; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + + // Filtrar los pedidos pendientes de recepcion + with Result.DataTable.DynamicWhere do + begin + // (TIPO_ALMACEN <> ALMACEN) + Condicion := NewBinaryExpression(NewField('', fld_InventarioTIPO_ALMACEN), NewConstant(CTE_INV_ALMACEN, datString), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + finally + HideHourglassCursor; + end; +end; + +function TInventarioController.BuscarTodosObras: IBizInventario; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + + // Filtrar los pedidos pendientes de recepcion + with Result.DataTable.DynamicWhere do + begin + // (TIPO_ALMACEN <> ALMACEN) + Condicion := NewBinaryExpression(NewField('', fld_InventarioTIPO_ALMACEN), NewConstant(CTE_INV_OBRA, datString), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + finally + HideHourglassCursor; + end; +end; + +procedure TInventarioController.CancelarReservas(AReservas: IBizDetalleReservas); +begin + ShowHourglassCursor; + try + AReservas.DataTable.ClearRows; + AReservas.DataTable.ApplyUpdates; + finally + HideHourglassCursor; + end; +end; + +procedure TInventarioController.Copiar(AArticulos: IBizInventario; ADetalles: IDAStronglyTypedDataTable; AInventario: IBizInventario); +{ + Procedimiento que copia en AArticulos, todos los detalles pasados por parametro ADetalles + aadiendo adems el stock de cada uno de los detalles datos, siempre y cuando dichos + detalles existan en AInventario pasado por parmetro. + + ADetalles ser una interfaz genrica porque pueden venir dos tipos de elementos a aadir: + - 1 Articulos de catlogo: IBizArticulo + - 2 Artculos de un almacn: IBizInventario + - 3 Detalles de un pedido de proveedor u albaran de cliente: IDAStronglyTypedDataTable (cumple con los tipos de controller detalles base +} +var + StockArticulo: Double; + +begin + if (not Assigned(AArticulos)) + or (not Assigned(ADetalles)) then + exit; + + if not AArticulos.DataTable.Active then + AArticulos.DataTable.Active := True; + + if not ADetalles.DataTable.Active then + ADetalles.DataTable.Active := True; + + if not Assigned(AInventario) then + begin + AInventario := BuscarTodos; + AInventario.DataTable.Active := True; + end; + + //Hacemos el recorrido de los detalles para insertarlos en AArticulos + with ADetalles.DataTable do + begin + First; + while not EOF do + begin + AArticulos.DataTable.Insert; + + //Estos campos sern comunes para todos los tipos de ADetalles a recibir + AArticulos.REFERENCIA := FieldByName(fld_INVENTARIOREFERENCIA).AsString; + + //Caso 1 ADetalles = IBizArticulo + if Supports(ADetalles, IBizArticulo) then + begin + AArticulos.ID_ARTICULO := FieldByName(fld_ArticulosID).AsInteger; +// AArticulos.REFERENCIA_PROVEEDOR := FieldByName(fld_ArticulosREFERENCIA_PROV).AsString; + AArticulos.DESCRIPCION := FieldByName(fld_INVENTARIODESCRIPCION).AsString; + AArticulos.CANTIDAD := 1; + end + //Casos 2, 3 ADetalles = IBizInventario, IDAStronglyTypedDataTable + else + begin + AArticulos.ID_ARTICULO := FieldByName(fld_INVENTARIOID_ARTICULO).AsInteger; +// AArticulos.REFERENCIA_PROVEEDOR := FieldByName(fld_INVENTARIOREFERENCIA_PROVEEDOR).AsString; + if Supports(ADetalles, IBizInventario) then + begin + AArticulos.DESCRIPCION := FieldByName(fld_INVENTARIODESCRIPCION).AsString; + AArticulos.CANTIDAD := 1; + end + else + begin + AArticulos.DESCRIPCION := FieldByName(fld_PedidosProveedor_DetallesCONCEPTO).AsString; + AArticulos.CANTIDAD := FieldByName(fld_INVENTARIOCANTIDAD).Asfloat; + end; + end; + + //Localizamos el stock en AInventario por cada uno de los ADetalles a copiar + AInventario.DataTable.First; + if AInventario.DataTable.Locate(fld_INVENTARIOID_ALMACEN + ';' + fld_INVENTARIOID_ARTICULO, VarArrayOf([AArticulos.ID_ALMACEN, AArticulos.ID_ARTICULO]), []) + then StockArticulo := AInventario.STOCK + else StockArticulo := 0; + //Asignamos el Stock al articulo aadido + if not AArticulos.DataTable.Editing then + AArticulos.DataTable.Edit; + AArticulos.STOCK := StockArticulo; + + AArticulos.DataTable.Post; + Next; + end; + end; +end; + +constructor TInventarioController.Create; +begin + inherited; + AsignarDataModule; + FArticulosController := TArticulosInventarioController.Create; + FAlmacenesController := TAlmacenesController.Create; + FObrasController := TObrasController.Create; + FPresupuestosClienteController := TPresupuestosClienteController.Create; + FPedidosProveedorController := TPedidosProveedorController.Create; +end; + +function TInventarioController.CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + +{ +procedure TInventarioController.DescartarCambios(AArticulo: IBizArticulo); +begin + if not Assigned(AArticulo) then + raise Exception.Create ('Articulo no asignado'); + + ShowHourglassCursor; + try + if (AArticulo.State in dsEditModes) then + AArticulo.Cancel; + + AArticulo.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; +} + +destructor TInventarioController.Destroy; +begin + FDataModule := Nil; + FArticulosController := Nil; + FAlmacenesController := Nil; + FObrasController := Nil; + FPresupuestosClienteController := Nil; + FPedidosProveedorController := Nil; + inherited; +end; + +function TInventarioController.ElegirArticulos(AArticulos: IBizInventario; AMensaje: String; AMultiSelect: Boolean): IBizInventario; +var + AEditor : IEditorElegirArticulosAlmacen; +begin + Result := NIL; + + CreateEditor('EditorElegirArticulosAlmacen', IEditorElegirArticulosAlmacen, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; + AEditor.Inventario := AArticulos; + AEditor.MultiSelect := AMultiSelect; + AEditor.Mensaje := AMensaje; + if IsPositiveResult(AEditor.ShowModal) then + Result := AEditor.ArticulosSeleccionados; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +function TInventarioController.Eliminar(AInventario: IBizInventario; Todos: Boolean; ApplyUpdates: Boolean): Boolean; +begin + Result := False; + if Assigned(AInventario) then + begin + ShowHourglassCursor; + try + if Todos + then AInventario.DataTable.ClearRows + else AInventario.DataTable.Delete; + + if ApplyUpdates then + AInventario.DataTable.ApplyUpdates; + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TInventarioController.ExtraerSeleccionados(AArticulos: IBizInventario): IBizInventario; +var + ASeleccionados : IBizInventario; +begin + ASeleccionados := (Self.Buscar(CTE_NULA) as IBizInventario); + CopyDataTableDA5(AArticulos.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + +procedure TInventarioController.FiltrarEmpresa(ADetalleReservas: IBizDetalleReservas); +var + Condicion: TDAWhereExpression; +begin + if ADetalleReservas.DataTable.Active then + ADetalleReservas.DataTable.Active := False; + + // Filtrar los inventario actuales por empresa + with ADetalleReservas.DataTable.DynamicWhere do + begin + // (ID_EMPRESA >= ID) + Condicion := NewBinaryExpression(NewField('', fld_DetalleReservasID_EMPRESA_ALMACEN_RESERVA), NewConstant(AppFactuGES.EmpresaActiva.ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; +end; + +function TInventarioController.Validar(AArticulos: IBizInventario): Boolean; +begin + Result := True; + + if not Assigned(AArticulos) then + raise Exception.Create ('Articulos no asignados'); + + if (AArticulos.DataTable.State in dsEditModes) then + AArticulos.DataTable.Post; + + case AArticulos.TipoMovimiento of + tSalidaLibre, tSalidaAlbaranCliente, tTraslado, tReserva: + begin + Result := ValidarCantidades(AArticulos); + if not Result then + raise Exception.Create ('Revise las cantidades'); + end; + end; +end; + +function TInventarioController.ValidarCantidades(AArticulos: IBizInventario): Boolean; +var + ListaArticulos: TStringList; +begin + Result := False; + if Assigned(AArticulos) then + begin + ShowHourglassCursor; + try + ListaArticulos := TStringList.Create; + With AArticulos.DataTable do + begin + First; + while not eof do + begin + if (AArticulos.CANTIDAD > AArticulos.STOCK) then + ListaArticulos.Add(AArticulos.REFERENCIA + ' - ' + AArticulos.DESCRIPCION); + next; + end; + if ListaArticulos.Count > 0 then + Result := (ShowConfirmMessage_ArticulosSinStock(ListaArticulos) = IDYES) + else + Result := True; + end; + finally + FreeAndNil(ListaArticulos); + HideHourglassCursor; + end; + end; +end; + +function TInventarioController.Ver(AArticulos: IBizInventario; AInventario: IBizInventario; APedido: IBizPedidoProveedor = Nil): Boolean; +var + AEditor : IEditorEntradaSalidaArticulos; +begin + Result := False; + AEditor := NIL; + + CreateEditor('EditorEntradaSalidaArticulos', IEditorEntradaSalidaArticulos, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.Articulos := AArticulos; + AEditor.Inventario := AInventario; + if Assigned(APedido) then + AEditor.PedidoProveedor := APedido; + AEditor.ShowModal; + Result := AEditor.ResultadoModalOK; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +procedure TInventarioController.VerReservas(AArticulo: IBizInventario; const ATipoReservas: String; Const IdAlmacenObra: Integer); +var + AEditor : IEditorDetalleReservas; +begin + AEditor := NIL; + + CreateEditor('EditorDetalleReservas', IEditorDetalleReservas, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.TipoReservas := ATipoReservas; + AEditor.IdAlmacenObra := IdAlmacenObra; + AEditor.DetalleReservas := BuscarDetalleReservas; + AEditor.Articulo := AArticulo; + AEditor.MultiSelect := True; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +procedure TInventarioController.VerTodos(AInventario: IBizInventario; const pTipoInventario: String); +var + AEditor : IEditorInventario; +begin + AEditor := NIL; + + CreateEditor('EditorInventario', IEditorInventario, AEditor); + if Assigned(AEditor) then + with AEditor do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + TipoInventario := pTipoInventario; + Inventario := AInventario; + MultiSelect := False; + ShowEmbedded; + end; +end; + +function TInventarioController._Vacio: IBizInventario; +begin + Result := Buscar(CTE_NULA); +end; + +{ +procedure TInventarioController.Eliminar(const ID: Integer); +var + AArticulo : IBizArticulo; +begin + AArticulo := Buscar(ID); + + if not Assigned(AArticulo) then + raise Exception.Create(Format('No se ha encontrado el artculo con ID = %d', [ID])); + + Eliminar(AArticulo); + AArticulo := NIL; +end; + +function TInventarioController.Eliminar(AArticulo: IBizArticulo): Boolean; +begin + Result := False; + + if not Assigned(AArticulo) then + raise Exception.Create ('Articulo no asignada'); + + ShowHourglassCursor; + try + if (AArticulo.State in dsEditModes) then + AArticulo.Cancel; + + AArticulo.Delete; + AArticulo.DataTable.ApplyUpdates; + HideHourglassCursor; + Result := True; + except + on E: Exception do + begin + AArticulo.DataTable.CancelUpdates; + HideHourglassCursor; + if (Pos('FOREIGN KEY', E.Message) > 0) then + MessageBox(0, 'No se puede borrar este artculo porque tiene artculos', 'Atencin', MB_ICONWARNING or MB_OK); + end; + end; +end; +} + +function TInventarioController.EntradaSalidaArticulos(AArticulos, AInventario : IBizInventario; APedido: IBizPedidoProveedor = Nil): Boolean; +begin + Result := False; + if not Assigned(AArticulos) then + Exit; + + if not AArticulos.DataTable.Active then + AArticulos.DataTable.Active := True; + + Result := Ver(AArticulos, AInventario, APedido); +end; + +function TInventarioController.ExtraerSeleccionados(AArticulos: IBizDetalleReservas): IBizDetalleReservas; +var + ASeleccionados : IBizDetalleReservas; +begin + ASeleccionados := (FDataModule as IDataModuleInventario).GetDetalleReservasVacio; + CopyDataTableDA5(AArticulos.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + +{procedure TInventarioController.RecibirArticulos(const APedido: IBizPedidoProveedor; const CodigoAlmacenDes: Integer); +{var + AArticulos: IBizInventario; +// ADetalles: IBizDetallesPedidoProveedor; +begin + + try + if APedido.DataTable.FieldByName(fld_PedidosProveedorID_ALMACEN).IsNull then + begin + MessageBox(0, 'En el pedido que ha elegido no figura ningn almacn como destino.' + #10#13 + + 'Si desea recibir este pedido en algn almacn' + #10#13 + + 'modifique antes el pedido para indicarlo.', 'Atencin', MB_ICONWARNING or MB_OK); + + Exit; + end; + + AArticulos := Buscar(CTE_NULA); + if not AArticulos.DataTable.Active then + AArticulos.DataTable.Active := True; + + if Assigned(APedido.Detalles) then + begin + APedido.Detalles.First; + while not APedido.Detalles.EOF do + begin + //Solo aquellos artculos que esten dados de alta en nuestro catlogo + if (APedido.Detalles.ID_ARTICULO > 0) then + begin + AArticulos.Insert; + if not APedido.DataTable.FieldByName(fld_PedidosProveedorID_ALMACEN).IsNull then + AArticulos.ID_ALMACEN := APedido.ID_ALMACEN; + if not APedido.DataTable.FieldByName(fld_PedidosProveedorID).IsNull then + AArticulos.ID_PEDIDO_PROVEEDOR := APedido.ID; + AArticulos.ID_ARTICULO := APedido.Detalles.ID_ARTICULO; + AArticulos.REFERENCIA_CLIENTE := APedido.Detalles.REFERENCIA; + AArticulos.REFERENCIA_PROVEEDOR := APedido.Detalles.REFERENCIA_PROVEEDOR; + AArticulos.DESCRIPCION := APedido.Detalles.CONCEPTO; + AArticulos.CANTIDAD := APedido.Detalles.CANTIDAD; + AArticulos.Post; + end; + APedido.Detalles.Next; + end; + end; + + if RecibirArticulos(AArticulos, CodigoAlmacenDes) then + PedidosProveedorController.CambiarSituacion(APedido); + + finally + AArticulos := Nil; + end; +end;} + +procedure TInventarioController.EntradaArticulosLibre(AInventario: IBizInventario; const CodigoAlmacenDestino: Integer); +var + AArticulos: IBizInventario; +begin + try + AArticulos := Buscar(CTE_NULA); + + //Se queda en la clase de negocio para as todos y cada uno de los artculos que + //se agreguen se asigne automticamente el codigo de almacen destino en OnNewRecord + AArticulos.TipoMovimiento := tEntradaLibre; + AArticulos.IDAlmacenDestino := CodigoAlmacenDestino; + EntradaSalidaArticulos(AArticulos, AInventario); + finally + AArticulos := Nil; + end; +end; + +function TInventarioController.EntradaPedido(AInventario: IBizInventario; APedido: IBizPedidoProveedor; ADetalles: IDAStronglyTypedDataTable; var ADetallesFinal: IBizInventario): Boolean; +var + AArticulos: IBizInventario; +begin + AArticulos := Buscar(CTE_NULA); + + //Se queda en la clase de negocio para as todos y cada uno de los artculos que + //se agreguen se asigne automticamente el codigo de almacen destino en OnNewRecord + AArticulos.TipoMovimiento := tEntradaPedidoProveedor; + AArticulos.IDAlmacenDestino := APedido.ID_ALMACEN; + + //Inicializamos los articulos a hacer salida con los dados por parametro + Copiar(AArticulos, ADetalles, AInventario); + + ADetallesFinal:= AArticulos; + Result := EntradaSalidaArticulos(AArticulos, AInventario, APedido); +end; + +procedure TInventarioController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +begin + inherited; +// +end; + +function TInventarioController.ReservarArticulos(AArticulos, AInventario: IBizInventario): Boolean; +begin + Result := False; + if not Assigned(AArticulos) then + Exit; + + if not AArticulos.DataTable.Active then + AArticulos.DataTable.Active := True; + + Result := Ver(AArticulos, AInventario); +end; + +procedure TInventarioController.ReservarArticulosLibre(AInventario: IBizInventario; const CodigoAlmacenOrigen, + CodigoAlmacenDestino: Integer); +var + AArticulos: IBizInventario; +begin + if (CodigoAlmacenOrigen <> CodigoAlmacenDestino) then + begin + try + AArticulos := Buscar(CTE_NULA); + + //Se queda en la clase de negocio para as todos y cada uno de los artculos que + //se agreguen se asigne automticamente el codigo de almacen destino en OnNewRecord + AArticulos.TipoMovimiento := tReserva; + AArticulos.IDAlmacenOrigen := CodigoAlmacenOrigen; + AArticulos.IDAlmacenDestino := CodigoAlmacenDestino; + ReservarArticulos(AArticulos, AInventario); + finally + AArticulos := Nil; + end; + end; +end; + +{procedure TInventarioController.RecibirPedidos(const CodigoAlmacenDes: Integer); +var + APedido: IBizPedidoProveedor; +begin + try + APedido := FPedidosProveedorController.BuscarPendientesRecepcion; + APedido := FPedidosProveedorController.ElegirPedidos(APedido, '', False); + + if Assigned(APedido) then + RecibirArticulos(APedido, CodigoAlmacenDes); + + finally + APedido := Nil; + end; + +end;} + +function TInventarioController.SalidaAlbaran(AInventario: IBizInventario; const CodigoAlmacenOrigen: Integer; ADetalles: IDAStronglyTypedDataTable): Boolean; +var + AArticulos: IBizInventario; +begin + try + Result := False; + AArticulos := Buscar(CTE_NULA); + + //Se queda en la clase de negocio para as todos y cada uno de los artculos que + //se agreguen se asigne automticamente el codigo de almacen destino en OnNewRecord + AArticulos.TipoMovimiento := tSalidaAlbaranCliente; + AArticulos.IDAlmacenOrigen := CodigoAlmacenOrigen; + + //Inicializamos los articulos a hacer salida con los dados por parametro + Copiar(AArticulos, ADetalles, AInventario); + Result := EntradaSalidaArticulos(AArticulos, AInventario); + finally + AArticulos := Nil; + end; +end; + +procedure TInventarioController.SalidaArticulosLibre(AInventario: IBizInventario; Const CodigoAlmacenOrigen: Integer); +var + AArticulos: IBizInventario; +begin + try + AArticulos := Buscar(CTE_NULA); + + //Se queda en la clase de negocio para as todos y cada uno de los artculos que + //se agreguen se asigne automticamente el codigo de almacen destino en OnNewRecord + AArticulos.TipoMovimiento := tSalidaLibre; + AArticulos.IDAlmacenOrigen := CodigoAlmacenOrigen; + EntradaSalidaArticulos(AArticulos, AInventario); + finally + AArticulos := Nil; + end; +end; + +procedure TInventarioController.SetAlmacenesController(const Value: IAlmacenesController); +begin + FAlmacenesController := Value; +end; + +procedure TInventarioController.SetObrasController(const Value: IObrasController); +begin + FObrasController := Value; +end; + +procedure TInventarioController.SetArticulosController(const Value: IArticulosInventarioController); +begin + FArticulosController := Value +end; + +procedure TInventarioController.SetPresupuestosClienteController(const Value: IPresupuestosClienteController); +begin + FPresupuestosClienteController := Value +end; + +procedure TInventarioController.SetPedidosProveedorController(const Value: IPedidosProveedorController); +begin + FPedidosProveedorController := Value +end; + +function TInventarioController.Trasladar(AInventario: IBizInventario; Todos: Boolean): Boolean; +var + AAlmacenes : IBizAlmacen; +begin + Result := False; + if Assigned(AInventario) then + begin + ShowHourglassCursor; + try + //Seleccionamos almacn + AAlmacenes := FAlmacenesController.BuscarTodos; + if not AAlmacenes.DataTable.Active then + AAlmacenes.DataTable.Active := True; + + AAlmacenes := FAlmacenesController.VerLista(AAlmacenes); + + //Aginamos el nuevo almacn + if Assigned(AAlmacenes) then + begin + if not AInventario.DataTable.Editing then + AInventario.Edit; + AInventario.ID_ALMACEN := AAlmacenes.ID; + AInventario.Post; + + AInventario.DataTable.ApplyUpdates; + Result := True; +// if Todos +// then AInventario.DataTable.ClearRows +// else AInventario.DataTable.Delete; + end; + + finally + HideHourglassCursor; + end; + end; +end; + +procedure TInventarioController.TrasladarArticulosLibre(AInventario: IBizInventario; const CodigoAlmacenOrigen: Integer; Const CodigoAlmacenDestino: Integer); +var + AArticulos: IBizInventario; +begin + if (CodigoAlmacenOrigen <> CodigoAlmacenDestino) then + begin + try + AArticulos := Buscar(CTE_NULA); + + //Se queda en la clase de negocio para as todos y cada uno de los artculos que + //se agreguen se asigne automticamente el codigo de almacen destino en OnNewRecord + AArticulos.TipoMovimiento := tTraslado; + AArticulos.IDAlmacenOrigen := CodigoAlmacenOrigen; + AArticulos.IDAlmacenDestino := CodigoAlmacenDestino; + EntradaSalidaArticulos(AArticulos, AInventario); + finally + AArticulos := Nil; + end; + end; +end; + +procedure TInventarioController.TrasladarReservas(AReservas: IBizDetalleReservas); +var + AArticulo: IBizInventario; +begin + ShowHourglassCursor; + try + with AReservas.DataTable do + begin + first; + while not eof do + begin + //Preparamos el articulo a trasladar con la cantidad correspondiente + AArticulo := Buscar(CTE_NULA); + AArticulo.DataTable.Active := True; +// DesconectarTabla(AArticulo.DataTable); + AArticulo.Edit; + AArticulo.ID_ALMACEN := AReservas.ID_ALMACEN; + AArticulo.ID_ARTICULO := AReservas.ID_ARTICULO; + AArticulo.CANTIDAD := AReservas.CANTIDAD; + AArticulo.Post; +// ConectarTabla(AArticulo.DataTable); + + //Se queda en la clase de negocio para as todos y cada uno de los artculos que + //se agreguen se asigne automticamente el codigo de almacen destino en OnNewRecord + AArticulo.TipoMovimiento := tTraslado; + AArticulo.IDAlmacenOrigen := AReservas.ID_ALMACEN; + AArticulo.IDAlmacenDestino := AReservas.ID_ALMACEN_RESERVA; + + GuardarMovimientos(AArticulo, AReservas.FECHA_RESERVA, 'Traslado de material por la reserva: ' + AReservas.CAUSA_RESERVA); +// showmessage('trasladar: ' + IntToStr(AReservas.ID_ARTICULO) + ',' + IntToStr(AReservas.ID_ALMACEN) + ',' + IntToStr(AReservas.ID_ALMACEN_RESERVA)); + next; + end; + end; + //Eliminamos los registro de reserva relacionados en la tabla de movimientos + CancelarReservas(AReservas); + finally + HideHourglassCursor; + end; +end; + +{ +function TInventarioController.Trasladar: Boolean; +begin + +end; + +function TInventarioController.Existe(const ID: Integer): Boolean; +var + AArticulo : IBizArticulo; +begin + try + AArticulo := Buscar(ID); + Result := Assigned(AArticulo) and (AArticulo.ID = ID); + finally + AArticulo := NIL; + end; +end; +} + +procedure TInventarioController.FiltrarEmpresa(AInventario: IBizInventario); +var + Condicion: TDAWhereExpression; +begin + if AInventario.DataTable.Active then + AInventario.DataTable.Active := False; + + // Filtrar los inventario actuales por empresa + with AInventario.DataTable.DynamicWhere do + begin + // (ID_EMPRESA >= ID) + Condicion := NewBinaryExpression(NewField('', fld_InventarioID_EMPRESA), NewConstant(AppFactuGES.EmpresaActiva.ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; +end; + +function TInventarioController.GetAlmacenesController: IAlmacenesController; +begin + Result := FAlmacenesController; +end; + +function TInventarioController.GetObrasController: IObrasController; +begin + Result := FObrasController; +end; + +function TInventarioController.GetArticulosController: IArticulosInventarioController; +begin + Result := FArticulosController; +end; + +function TInventarioController.GetPresupuestosClienteController: IPresupuestosClienteController; +begin + Result := FPresupuestosClienteController; +end; + +function TInventarioController.GetPedidosProveedorController: IPedidosProveedorController; +begin + Result := FPedidosProveedorController; +end; + +{procedure TInventarioController.GuardarArticulos(AInventario : IBizInventario); +var + AArticulos: IBizInventario; + i: Integer; +begin + + AArticulosUnitarios := Buscar(CTE_NULA); + if not AArticulosUnitarios.DataTable.Active then + AArticulosUnitarios.DataTable.Active := True; + + with AInventario do + begin + DataTable.First; + while not DataTable.EOF do + begin + for i:=0 to (CANTIDAD - 1) do + begin + AArticulosUnitarios.Insert; + AArticulosUnitarios.ID_ALMACEN := ID_ALMACEN; + AArticulosUnitarios.ID_ARTICULO := ID_ARTICULO; + if not DataTable.FieldByName(fld_INVENTARIOID_PEDIDO_PROVEEDOR).IsNull then + AArticulosUnitarios.ID_PEDIDO_PROVEEDOR := ID_PEDIDO_PROVEEDOR; + if not DataTable.FieldByName(fld_INVENTARIOID_PEDIDO_CLIENTE).IsNull then + AArticulosUnitarios.ID_PEDIDO_CLIENTE := ID_PEDIDO_CLIENTE; + AArticulosUnitarios.DESCRIPCION := DESCRIPCION; + AArticulosUnitarios.Post; + + AssignarID(AArticulosUnitarios, (FDataModule as IDataModuleInventario)); + end; + DataTable.Next; + end; + + DataTable.CancelUpdates; + AArticulosUnitarios.DataTable.ApplyUpdates; + end; + +end;} + +function TInventarioController.Liberar(AInventario: IBizInventario; Todos: Boolean): Boolean; +begin + Result := False; + +{ if not Assigned(AInventario) then + exit; + + try + with AInventario.DataTable do + begin + if not Active then + Active := True; + + if Todos then + begin + First; + while not EOF do + begin + Edit; + FieldByName(fld_INVENTARIOID_PEDIDO_CLIENTE).AsVariant := Null; + Post; + Next; + end; + end + else + begin + Edit; + FieldByName(fld_INVENTARIOID_PEDIDO_CLIENTE).AsVariant := Null; + Post; + Next; + end; + + ApplyUpdates; + Result := True; + end; + except + on E: EDAApplyUpdateFailed do + begin + AInventario.DataTable.CancelUpdates; + showmessage('Error al liberar los artculos seleccionados'); + end; + end; +} +end; + +function TInventarioController.Liberar(AInventario : IBizInventario): Boolean; +begin + Result := False; + if Assigned(AInventario) then + Result := Liberar(AInventario, False); +end; + + +procedure TInventarioController.DeshabilitarOnCalcFields(Sender: TDADataTable); +begin +// Deshabilita el devolver RECID para la localizacin unica de tuplas de inventario +// Para as poder utiliza ID para la insercin de movimientos +end; + +function TInventarioController.Guardar(AArticulos: IBizInventario; const FechaMovimiento: TDateTime; const CausaMovimiento: String; AValidar:Boolean = True): Boolean; +begin + Result := False; + + if not Assigned(AArticulos) then + raise Exception.Create ('Artculos no asignados'); + + if not AValidar + or (AValidar and Validar(AArticulos)) then //Evaluacion perezosa + begin + ShowHourglassCursor; + try + case AArticulos.TipoMovimiento of + tEntradaLibre, tSalidaLibre, tTraslado, tReserva: Result := GuardarMovimientos(AArticulos, FechaMovimiento, CausaMovimiento); + tSalidaAlbaranCliente : begin + AArticulos.DataTable.CancelUpdates; + Result := True; + end; + tEntradaPedidoProveedor : Result := True; //Dar de alta el albarn + + end; + finally + HideHourglassCursor; + end; + end + else + AArticulos.DataTable.CancelUpdates; +end; + +function TInventarioController.GuardarMovimientos(AArticulos: IBizInventario; const FechaMovimiento: TDateTime; const CausaMovimiento: String): Boolean; +var + AArticulosTraslado : IBizInventario; +begin + Result := False; + + if Assigned(AArticulos) then + begin + //Eliminamos todos los articulos que no esten en el catalogo ya que estos no se podrn reservar + repeat + if (AArticulos.ID_ARTICULO < 1) then + AArticulos.Delete; + AArticulos.First; + until (AArticulos.DataTable.Locate('ID_ARTICULO', '0', []) = false); + + //Deshabilitamos el calculo de ID (RECID) para poderlo usar para la insercin de movimientos + AArticulos.DataTable.OnCalcFields := DeshabilitarOnCalcFields; + with AArticulos.DataTable do + begin + First; + while not EOF do + begin + if not Editing then + Edit; + + //Realmente son los campos de la tabla movimientos los que estamos asignando + //que luego por comandos se realizarn las inserciones + AArticulos.FECHA_MOVIMIENTO := FechaMovimiento; + AArticulos.CAUSA := CausaMovimiento; + case AArticulos.TipoMovimiento of + tEntradaLibre: AArticulos.TIPO := CTE_TIPO_ENTRADA; + tSalidaLibre, tTraslado: AArticulos.TIPO := CTE_TIPO_SALIDA; + tReserva: begin + AArticulos.TIPO := CTE_TIPO_RESERVA; + AArticulos.ID_ALMACEN_RESERVA := AArticulos.IDAlmacenDestino; + end; + end; + + Post; + Next; + end; + + //Solo para traslados, realizaremos los mismos movimientos, pero en este caso + //de entrada en el almacn destino + if (AArticulos.TipoMovimiento = tTraslado) then + begin + AArticulosTraslado := Buscar(CTE_NULA); + //Deshabilitamos el calculo de ID (RECID) para poderlo usar para la insercin de movimientos + AArticulosTraslado.DataTable.OnCalcFields := DeshabilitarOnCalcFields; + AArticulosTraslado.DataTable.Active := True; + First; + while not EOF do + begin + AArticulosTraslado.Insert; + AArticulosTraslado.ID_ALMACEN := AArticulos.IDAlmacenDestino; + AArticulosTraslado.ID_ARTICULO := AArticulos.ID_ARTICULO; + AArticulosTraslado.FECHA_MOVIMIENTO := AArticulos.FECHA_MOVIMIENTO; + AArticulosTraslado.CAUSA := AArticulos.CAUSA; + AArticulosTraslado.TIPO := CTE_TIPO_ENTRADA; + AArticulosTraslado.CANTIDAD := AArticulos.CANTIDAD; + AArticulosTraslado.Post; + Next; + end; + + AArticulosTraslado.DataTable.ApplyUpdates; + end; + + ApplyUpdates; + Result := True; + end; + end; +end; + +{function TInventarioController.Nuevo: IBizArticulo; +var + AArticulo : IBizArticulo; +begin + AArticulo := FDataModule.NewItem; + FiltrarEmpresa(AArticulo); + AArticulo.DataTable.Active := True; + AArticulo.Insert; + Result := AArticulo; +end; +} + +{ +procedure TInventarioController.Preview(AArticulo: IBizArticulo); +var + AReportController : IArticulosReportController; +begin + AReportController := TArticulosReportController.Create; + try + AReportController.Preview(AArticulo.ID); + finally + AReportController := NIL; + end; +end; + +procedure TInventarioController.Print(AArticulo: IBizArticulo); +var + AReportController : IArticulosReportController; +begin + AReportController := TArticulosReportController.Create; + try + AReportController.Print(AArticulo.ID); + finally + AReportController := NIL; + end; +end; +} + +end. + \ No newline at end of file diff --git a/Source/Modulos/Inventario/Data/Inventario_data.bdsproj b/Source/Modulos/Inventario/Data/Inventario_data.bdsproj new file mode 100644 index 0000000..102b44c --- /dev/null +++ b/Source/Modulos/Inventario/Data/Inventario_data.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + Inventario_data.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Inventario/Data/Inventario_data.dcu b/Source/Modulos/Inventario/Data/Inventario_data.dcu new file mode 100644 index 0000000..11fc7a7 Binary files /dev/null and b/Source/Modulos/Inventario/Data/Inventario_data.dcu differ diff --git a/Source/Modulos/Inventario/Data/Inventario_data.dpk b/Source/Modulos/Inventario/Data/Inventario_data.dpk new file mode 100644 index 0000000..513c8ed Binary files /dev/null and b/Source/Modulos/Inventario/Data/Inventario_data.dpk differ diff --git a/Source/Modulos/Inventario/Data/Inventario_data.dproj b/Source/Modulos/Inventario/Data/Inventario_data.dproj new file mode 100644 index 0000000..6cd91dc --- /dev/null +++ b/Source/Modulos/Inventario/Data/Inventario_data.dproj @@ -0,0 +1,538 @@ + + + {761338d5-bf04-40b1-a99b-dec8ced70bf0} + Inventario_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Inventario_data.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Inventario_data.dpk + + + + + MainSource + + + + +
DataModuleInventario
+
+
+
+ diff --git a/Source/Modulos/Inventario/Data/Inventario_data.rc b/Source/Modulos/Inventario/Data/Inventario_data.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Inventario/Data/Inventario_data.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Inventario/Data/Inventario_data.res b/Source/Modulos/Inventario/Data/Inventario_data.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Inventario/Data/Inventario_data.res differ diff --git a/Source/Modulos/Inventario/Data/uDataModuleInventario.dcu b/Source/Modulos/Inventario/Data/uDataModuleInventario.dcu new file mode 100644 index 0000000..0147096 Binary files /dev/null and b/Source/Modulos/Inventario/Data/uDataModuleInventario.dcu differ diff --git a/Source/Modulos/Inventario/Data/uDataModuleInventario.dfm b/Source/Modulos/Inventario/Data/uDataModuleInventario.dfm new file mode 100644 index 0000000..e756c0b --- /dev/null +++ b/Source/Modulos/Inventario/Data/uDataModuleInventario.dfm @@ -0,0 +1,248 @@ +inherited DataModuleInventario: TDataModuleInventario + OnCreate = DAClientDataModuleCreate + Height = 238 + Width = 518 + object RORemoteService: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvInventario' + Left = 48 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 84 + end + object rda_Inventario: TDARemoteDataAdapter + DataStreamer = Bin2DataStreamer + GetSchemaCall.RemoteService = RORemoteService + GetDataCall.RemoteService = RORemoteService + UpdateDataCall.RemoteService = RORemoteService + GetScriptsCall.RemoteService = RORemoteService + RemoteService = RORemoteService + Left = 51 + Top = 151 + end + object tbl_DetalleReservas: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + end + item + Name = 'NOMBRE_ALMACEN' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_RESERVA' + DataType = datDateTime + end + item + Name = 'CAUSA_RESERVA' + DataType = datString + Size = 2000 + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + end + item + Name = 'FAMILIA' + DataType = datString + Size = 255 + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'FABRICANTE' + DataType = datString + Size = 255 + end + item + Name = 'REFERENCIA_FABR' + DataType = datString + Size = 255 + end + item + Name = 'CANTIDAD' + DataType = datCurrency + end + item + Name = 'ID_ALMACEN_RESERVA' + DataType = datInteger + end + item + Name = 'NOMBRE_ALMACEN_RESERVA' + DataType = datString + Size = 255 + end + item + Name = 'ID_EMPRESA_ALMACEN_RESERVA' + DataType = datInteger + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Inventario + LogicalName = 'DetalleReservas' + IndexDefs = <> + Left = 360 + Top = 128 + end + object ds_DetalleReservas: TDADataSource + DataSet = tbl_DetalleReservas.Dataset + DataTable = tbl_DetalleReservas + Left = 360 + Top = 72 + end + object tbl_Inventario: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID_ALMACEN' + DataType = datInteger + DictionaryEntry = 'INVENTARIO_ID_ALMACEN' + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + DictionaryEntry = 'INVENTARIO_ID_ARTICULO' + end + item + Name = 'ALMACEN' + DataType = datString + Size = 255 + DictionaryEntry = 'INVENTARIO_ALMACEN' + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'INVENTARIO_ID_EMPRESA' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'INVENTARIO_REFERENCIA' + DictionaryEntry = 'INVENTARIO_REFERENCIA' + end + item + Name = 'FAMILIA' + DataType = datString + Size = 255 + DictionaryEntry = 'INVENTARIO_FAMILIA' + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DictionaryEntry = 'INVENTARIO_DESCRIPCION' + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'STOCK' + DataType = datFloat + DisplayLabel = 'Stock disponible' + DictionaryEntry = 'INVENTARIO_STOCK' + end + item + Name = 'UNIDADES_ALMACEN' + DataType = datFloat + DisplayLabel = 'U. Almac'#233'n' + DictionaryEntry = 'INVENTARIO_UNIDADES_ALMACEN' + end + item + Name = 'RESERVA' + DataType = datFloat + DisplayLabel = 'Reservado' + DictionaryEntry = 'INVENTARIO_RESERVA' + end + item + Name = 'PENDIENTE_RECEPCION' + DataType = datFloat + DisplayLabel = 'Pendiente de recibir' + DictionaryEntry = 'INVENTARIO_PENDIENTE_RECEPCION' + end + item + Name = 'TIPO_ALMACEN' + DataType = datString + Size = 10 + end + item + Name = 'ID' + DataType = datInteger + DisplayLabel = 'INVENTARIO_ID' + DictionaryEntry = 'INVENTARIO_ID' + InPrimaryKey = True + end + item + Name = 'CANTIDAD' + DataType = datFloat + DisplayLabel = 'INVENTARIO_CANTIDAD' + DictionaryEntry = 'INVENTARIO_CANTIDAD' + end + item + Name = 'FECHA_MOVIMIENTO' + DataType = datDateTime + DisplayLabel = 'INVENTARIO_FECHA_MOVIMIENTO' + DictionaryEntry = 'INVENTARIO_FECHA_MOVIMIENTO' + end + item + Name = 'CAUSA' + DataType = datString + Size = 255 + DisplayLabel = 'INVENTARIO_CAUSA' + DictionaryEntry = 'INVENTARIO_CAUSA' + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + DisplayLabel = 'INVENTARIO_TIPO' + DictionaryEntry = 'INVENTARIO_TIPO' + end + item + Name = 'ID_ALMACEN_RESERVA' + DataType = datInteger + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Inventario + LogicalName = 'Inventario' + IndexDefs = <> + Left = 184 + Top = 128 + end + object ds_Inventario: TDADataSource + DataSet = tbl_Inventario.Dataset + DataTable = tbl_Inventario + Left = 184 + Top = 72 + end +end diff --git a/Source/Modulos/Inventario/Data/uDataModuleInventario.pas b/Source/Modulos/Inventario/Data/uDataModuleInventario.pas new file mode 100644 index 0000000..ee72bc0 --- /dev/null +++ b/Source/Modulos/Inventario/Data/uDataModuleInventario.pas @@ -0,0 +1,118 @@ +unit uDataModuleInventario; + +interface + +uses + SysUtils, Classes, DB, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, uDataModuleBase, + uIDataModuleInventario, uBizInventario, uDARemoteDataAdapter, uDADataStreamer, + uDABin2DataStreamer, uDAInterfaces, uDAMemDataTable; + +type + TDataModuleInventario = class(TDataModuleBase, IDataModuleInventario) + RORemoteService: TRORemoteService; + Bin2DataStreamer: TDABin2DataStreamer; + rda_Inventario: TDARemoteDataAdapter; + tbl_DetalleReservas: TDAMemDataTable; + ds_DetalleReservas: TDADataSource; + tbl_Inventario: TDAMemDataTable; + ds_Inventario: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + public + function GetItems : IBizInventario; overload; + function GetItems(const ID_ALMACEN : Integer) : IBizInventario; overload; + function GetDetalleReservas: IBizDetalleReservas; + function GetDetalleReservasVacio: IBizDetalleReservas; + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, + schInventarioClient_Intf; + +{ TdmArticulos } + +procedure TDataModuleInventario.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleInventario.GetDetalleReservas: IBizDetalleReservas; +var + ADetalleReservas : TDAMemDataTable; +begin + ShowHourglassCursor; + try + ADetalleReservas := CloneDataTable(tbl_DetalleReservas); + ADetalleReservas.BusinessRulesID := BIZ_CLIENT_DETALLE_RESERVAS_INV; + Result := (ADetalleReservas as IBizDetalleReservas); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleInventario.GetDetalleReservasVacio: IBizDetalleReservas; +begin + ShowHourglassCursor; + try + Result := Self.GetDetalleReservas; + with Result.DataTable.Where do + begin + if NotEmpty then + AddOperator(opAND); + + OpenBraket; + AddText(fld_DetalleReservasID + ' = ' + IntToStr(ID_NULO)); + CloseBraket; + end; + finally + HideHourglassCursor; + end; +end; + +function TDataModuleInventario.GetItems(const ID_ALMACEN: Integer): IBizInventario; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + + with Result.DataTable.DynamicWhere do + begin + // (ID_ALMACEN = :ID_ALMACEN) + Condicion := NewBinaryExpression(NewField('', fld_INVENTARIOID_ALMACEN), NewConstant(ID_ALMACEN, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TDataModuleInventario.GetItems: IBizInventario; +var + AInventario : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AInventario := CloneDataTable(tbl_Inventario); + AInventario.BusinessRulesID := BIZ_CLIENT_INVENTARIO; + Result := (AInventario as IBizInventario); + finally + HideHourglassCursor; + end; +end; + + +end. diff --git a/Source/Modulos/Inventario/Inventario_Group.bdsgroup b/Source/Modulos/Inventario/Inventario_Group.bdsgroup new file mode 100644 index 0000000..b2b2e1d --- /dev/null +++ b/Source/Modulos/Inventario/Inventario_Group.bdsgroup @@ -0,0 +1,27 @@ + + + + + + + + + + + ..\..\DataAbstract_D10\DataAbstract_D10.bdsproj + ..\..\Base\Base.bdsproj + ..\..\Base\ControllerBase\ControllerBase.bdsproj + ..\..\Base\GUIBase\GUIBase.bdsproj + ..\Contactos\Views\Contactos_view.bdsproj + ..\Articulos\Views\Articulos_view.bdsproj + Model\Inventario_model.bdsproj + Data\Inventario_data.bdsproj + Controller\Inventario_controller.bdsproj + Views\Inventario_view.bdsproj + Plugin\Inventario_plugin.bdsproj + DataAbstract_D10.bpl Base.bpl ControllerBase.bpl GUIBase.bpl Contactos_view.bpl Articulos_view.bpl Inventario_model.bpl Inventario_data.bpl Inventario_controller.bpl Inventario_view.bpl Inventario_plugin.bpl + + + + diff --git a/Source/Modulos/Inventario/Inventario_Group.groupproj b/Source/Modulos/Inventario/Inventario_Group.groupproj new file mode 100644 index 0000000..58170cd --- /dev/null +++ b/Source/Modulos/Inventario/Inventario_Group.groupproj @@ -0,0 +1,264 @@ + + + {4adf8c8b-c759-4f41-a122-af83878ceedc} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Inventario/Model/Data/uIDataModuleInventario.dcu b/Source/Modulos/Inventario/Model/Data/uIDataModuleInventario.dcu new file mode 100644 index 0000000..e70bbf9 Binary files /dev/null and b/Source/Modulos/Inventario/Model/Data/uIDataModuleInventario.dcu differ diff --git a/Source/Modulos/Inventario/Model/Data/uIDataModuleInventario.pas b/Source/Modulos/Inventario/Model/Data/uIDataModuleInventario.pas new file mode 100644 index 0000000..217abd4 --- /dev/null +++ b/Source/Modulos/Inventario/Model/Data/uIDataModuleInventario.pas @@ -0,0 +1,19 @@ +unit uIDataModuleInventario; + +interface + +uses + uBizInventario; + +type + IDataModuleInventario = interface + ['{50AFDC00-4F91-4BC3-BB8A-1F53937BF9A6}'] + function GetItems: IBizInventario; overload; + function GetItems(const ID_ALMACEN : Integer) : IBizInventario; overload; + function GetDetalleReservas: IBizDetalleReservas; + function GetDetalleReservasVacio: IBizDetalleReservas; + end; + +implementation + +end. diff --git a/Source/Modulos/Inventario/Model/Inventario_model.bdsproj b/Source/Modulos/Inventario/Model/Inventario_model.bdsproj new file mode 100644 index 0000000..e588e61 --- /dev/null +++ b/Source/Modulos/Inventario/Model/Inventario_model.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + Inventario_model.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Inventario/Model/Inventario_model.dcu b/Source/Modulos/Inventario/Model/Inventario_model.dcu new file mode 100644 index 0000000..f3566cd Binary files /dev/null and b/Source/Modulos/Inventario/Model/Inventario_model.dcu differ diff --git a/Source/Modulos/Inventario/Model/Inventario_model.dpk b/Source/Modulos/Inventario/Model/Inventario_model.dpk new file mode 100644 index 0000000..75ecebf Binary files /dev/null and b/Source/Modulos/Inventario/Model/Inventario_model.dpk differ diff --git a/Source/Modulos/Inventario/Model/Inventario_model.dproj b/Source/Modulos/Inventario/Model/Inventario_model.dproj new file mode 100644 index 0000000..9257db2 --- /dev/null +++ b/Source/Modulos/Inventario/Model/Inventario_model.dproj @@ -0,0 +1,580 @@ + + + {82e91760-acc0-4662-9c28-456e5ea6089c} + Inventario_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Inventario_model.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + Inventario_model.dpk + + + + + + + MainSource + + + + + + + + + + + diff --git a/Source/Modulos/Inventario/Model/Inventario_model.rc b/Source/Modulos/Inventario/Model/Inventario_model.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Inventario/Model/Inventario_model.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Inventario/Model/Inventario_model.res b/Source/Modulos/Inventario/Model/Inventario_model.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Inventario/Model/Inventario_model.res differ diff --git a/Source/Modulos/Inventario/Model/schInventarioClient_Intf.dcu b/Source/Modulos/Inventario/Model/schInventarioClient_Intf.dcu new file mode 100644 index 0000000..373d219 Binary files /dev/null and b/Source/Modulos/Inventario/Model/schInventarioClient_Intf.dcu differ diff --git a/Source/Modulos/Inventario/Model/schInventarioClient_Intf.pas b/Source/Modulos/Inventario/Model/schInventarioClient_Intf.pas new file mode 100644 index 0000000..7f39ee6 --- /dev/null +++ b/Source/Modulos/Inventario/Model/schInventarioClient_Intf.pas @@ -0,0 +1,1366 @@ +unit schInventarioClient_Intf; + +interface + +uses + Classes, DB, schBase_Intf, SysUtils, uROClasses, uDAInterfaces, uDADataTable, FmtBCD, uROXMLIntf; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_Inventario = '{B558C6EC-462B-47CD-A0A1-277535DCDCD3}'; + RID_DetalleReservas = '{B0B5857C-72EA-4C1D-841A-91AA5270F172}'; + + { Data table names } + nme_Inventario = 'Inventario'; + nme_DetalleReservas = 'DetalleReservas'; + + { Inventario fields } + fld_InventarioID_ALMACEN = 'ID_ALMACEN'; + fld_InventarioID_ARTICULO = 'ID_ARTICULO'; + fld_InventarioALMACEN = 'ALMACEN'; + fld_InventarioID_EMPRESA = 'ID_EMPRESA'; + fld_InventarioREFERENCIA = 'REFERENCIA'; + fld_InventarioFAMILIA = 'FAMILIA'; + fld_InventarioDESCRIPCION = 'DESCRIPCION'; + fld_InventarioUNIDAD_MEDIDA = 'UNIDAD_MEDIDA'; + fld_InventarioSTOCK = 'STOCK'; + fld_InventarioUNIDADES_ALMACEN = 'UNIDADES_ALMACEN'; + fld_InventarioRESERVA = 'RESERVA'; + fld_InventarioPENDIENTE_RECEPCION = 'PENDIENTE_RECEPCION'; + fld_InventarioTIPO_ALMACEN = 'TIPO_ALMACEN'; + fld_InventarioID = 'ID'; + fld_InventarioCANTIDAD = 'CANTIDAD'; + fld_InventarioFECHA_MOVIMIENTO = 'FECHA_MOVIMIENTO'; + fld_InventarioCAUSA = 'CAUSA'; + fld_InventarioTIPO = 'TIPO'; + fld_InventarioID_ALMACEN_RESERVA = 'ID_ALMACEN_RESERVA'; + + { Inventario field indexes } + idx_InventarioID_ALMACEN = 0; + idx_InventarioID_ARTICULO = 1; + idx_InventarioALMACEN = 2; + idx_InventarioID_EMPRESA = 3; + idx_InventarioREFERENCIA = 4; + idx_InventarioFAMILIA = 5; + idx_InventarioDESCRIPCION = 6; + idx_InventarioUNIDAD_MEDIDA = 7; + idx_InventarioSTOCK = 8; + idx_InventarioUNIDADES_ALMACEN = 9; + idx_InventarioRESERVA = 10; + idx_InventarioPENDIENTE_RECEPCION = 11; + idx_InventarioTIPO_ALMACEN = 12; + idx_InventarioID = 13; + idx_InventarioCANTIDAD = 14; + idx_InventarioFECHA_MOVIMIENTO = 15; + idx_InventarioCAUSA = 16; + idx_InventarioTIPO = 17; + idx_InventarioID_ALMACEN_RESERVA = 18; + + { DetalleReservas fields } + fld_DetalleReservasID = 'ID'; + fld_DetalleReservasID_EMPRESA = 'ID_EMPRESA'; + fld_DetalleReservasID_ALMACEN = 'ID_ALMACEN'; + fld_DetalleReservasNOMBRE_ALMACEN = 'NOMBRE_ALMACEN'; + fld_DetalleReservasFECHA_RESERVA = 'FECHA_RESERVA'; + fld_DetalleReservasCAUSA_RESERVA = 'CAUSA_RESERVA'; + fld_DetalleReservasID_ARTICULO = 'ID_ARTICULO'; + fld_DetalleReservasREFERENCIA = 'REFERENCIA'; + fld_DetalleReservasDESCRIPCION = 'DESCRIPCION'; + fld_DetalleReservasFAMILIA = 'FAMILIA'; + fld_DetalleReservasUNIDAD_MEDIDA = 'UNIDAD_MEDIDA'; + fld_DetalleReservasFABRICANTE = 'FABRICANTE'; + fld_DetalleReservasREFERENCIA_FABR = 'REFERENCIA_FABR'; + fld_DetalleReservasCANTIDAD = 'CANTIDAD'; + fld_DetalleReservasID_ALMACEN_RESERVA = 'ID_ALMACEN_RESERVA'; + fld_DetalleReservasNOMBRE_ALMACEN_RESERVA = 'NOMBRE_ALMACEN_RESERVA'; + fld_DetalleReservasID_EMPRESA_ALMACEN_RESERVA = 'ID_EMPRESA_ALMACEN_RESERVA'; + + { DetalleReservas field indexes } + idx_DetalleReservasID = 0; + idx_DetalleReservasID_EMPRESA = 1; + idx_DetalleReservasID_ALMACEN = 2; + idx_DetalleReservasNOMBRE_ALMACEN = 3; + idx_DetalleReservasFECHA_RESERVA = 4; + idx_DetalleReservasCAUSA_RESERVA = 5; + idx_DetalleReservasID_ARTICULO = 6; + idx_DetalleReservasREFERENCIA = 7; + idx_DetalleReservasDESCRIPCION = 8; + idx_DetalleReservasFAMILIA = 9; + idx_DetalleReservasUNIDAD_MEDIDA = 10; + idx_DetalleReservasFABRICANTE = 11; + idx_DetalleReservasREFERENCIA_FABR = 12; + idx_DetalleReservasCANTIDAD = 13; + idx_DetalleReservasID_ALMACEN_RESERVA = 14; + idx_DetalleReservasNOMBRE_ALMACEN_RESERVA = 15; + idx_DetalleReservasID_EMPRESA_ALMACEN_RESERVA = 16; + +type + { IInventario } + IInventario = interface(IDAStronglyTypedDataTable) + ['{BE22C3F8-FA99-475E-8C10-4F08590A9331}'] + { Property getters and setters } + function GetID_ALMACENValue: Integer; + procedure SetID_ALMACENValue(const aValue: Integer); + function GetID_ALMACENIsNull: Boolean; + procedure SetID_ALMACENIsNull(const aValue: Boolean); + function GetID_ARTICULOValue: Integer; + procedure SetID_ARTICULOValue(const aValue: Integer); + function GetID_ARTICULOIsNull: Boolean; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); + function GetALMACENValue: String; + procedure SetALMACENValue(const aValue: String); + function GetALMACENIsNull: Boolean; + procedure SetALMACENIsNull(const aValue: Boolean); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_EMPRESAIsNull: Boolean; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetFAMILIAValue: String; + procedure SetFAMILIAValue(const aValue: String); + function GetFAMILIAIsNull: Boolean; + procedure SetFAMILIAIsNull(const aValue: Boolean); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetDESCRIPCIONIsNull: Boolean; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); + function GetUNIDAD_MEDIDAValue: String; + procedure SetUNIDAD_MEDIDAValue(const aValue: String); + function GetUNIDAD_MEDIDAIsNull: Boolean; + procedure SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); + function GetSTOCKValue: Float; + procedure SetSTOCKValue(const aValue: Float); + function GetSTOCKIsNull: Boolean; + procedure SetSTOCKIsNull(const aValue: Boolean); + function GetUNIDADES_ALMACENValue: Float; + procedure SetUNIDADES_ALMACENValue(const aValue: Float); + function GetUNIDADES_ALMACENIsNull: Boolean; + procedure SetUNIDADES_ALMACENIsNull(const aValue: Boolean); + function GetRESERVAValue: Float; + procedure SetRESERVAValue(const aValue: Float); + function GetRESERVAIsNull: Boolean; + procedure SetRESERVAIsNull(const aValue: Boolean); + function GetPENDIENTE_RECEPCIONValue: Float; + procedure SetPENDIENTE_RECEPCIONValue(const aValue: Float); + function GetPENDIENTE_RECEPCIONIsNull: Boolean; + procedure SetPENDIENTE_RECEPCIONIsNull(const aValue: Boolean); + function GetTIPO_ALMACENValue: String; + procedure SetTIPO_ALMACENValue(const aValue: String); + function GetTIPO_ALMACENIsNull: Boolean; + procedure SetTIPO_ALMACENIsNull(const aValue: Boolean); + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetCANTIDADValue: Float; + procedure SetCANTIDADValue(const aValue: Float); + function GetCANTIDADIsNull: Boolean; + procedure SetCANTIDADIsNull(const aValue: Boolean); + function GetFECHA_MOVIMIENTOValue: DateTime; + procedure SetFECHA_MOVIMIENTOValue(const aValue: DateTime); + function GetFECHA_MOVIMIENTOIsNull: Boolean; + procedure SetFECHA_MOVIMIENTOIsNull(const aValue: Boolean); + function GetCAUSAValue: String; + procedure SetCAUSAValue(const aValue: String); + function GetCAUSAIsNull: Boolean; + procedure SetCAUSAIsNull(const aValue: Boolean); + function GetTIPOValue: String; + procedure SetTIPOValue(const aValue: String); + function GetTIPOIsNull: Boolean; + procedure SetTIPOIsNull(const aValue: Boolean); + function GetID_ALMACEN_RESERVAValue: Integer; + procedure SetID_ALMACEN_RESERVAValue(const aValue: Integer); + function GetID_ALMACEN_RESERVAIsNull: Boolean; + procedure SetID_ALMACEN_RESERVAIsNull(const aValue: Boolean); + + + { Properties } + property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property ID_ALMACENIsNull: Boolean read GetID_ALMACENIsNull write SetID_ALMACENIsNull; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull: Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property ALMACEN: String read GetALMACENValue write SetALMACENValue; + property ALMACENIsNull: Boolean read GetALMACENIsNull write SetALMACENIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property FAMILIA: String read GetFAMILIAValue write SetFAMILIAValue; + property FAMILIAIsNull: Boolean read GetFAMILIAIsNull write SetFAMILIAIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property UNIDAD_MEDIDA: String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue; + property UNIDAD_MEDIDAIsNull: Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull; + property STOCK: Float read GetSTOCKValue write SetSTOCKValue; + property STOCKIsNull: Boolean read GetSTOCKIsNull write SetSTOCKIsNull; + property UNIDADES_ALMACEN: Float read GetUNIDADES_ALMACENValue write SetUNIDADES_ALMACENValue; + property UNIDADES_ALMACENIsNull: Boolean read GetUNIDADES_ALMACENIsNull write SetUNIDADES_ALMACENIsNull; + property RESERVA: Float read GetRESERVAValue write SetRESERVAValue; + property RESERVAIsNull: Boolean read GetRESERVAIsNull write SetRESERVAIsNull; + property PENDIENTE_RECEPCION: Float read GetPENDIENTE_RECEPCIONValue write SetPENDIENTE_RECEPCIONValue; + property PENDIENTE_RECEPCIONIsNull: Boolean read GetPENDIENTE_RECEPCIONIsNull write SetPENDIENTE_RECEPCIONIsNull; + property TIPO_ALMACEN: String read GetTIPO_ALMACENValue write SetTIPO_ALMACENValue; + property TIPO_ALMACENIsNull: Boolean read GetTIPO_ALMACENIsNull write SetTIPO_ALMACENIsNull; + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property CANTIDAD: Float read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDADIsNull: Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; + property FECHA_MOVIMIENTO: DateTime read GetFECHA_MOVIMIENTOValue write SetFECHA_MOVIMIENTOValue; + property FECHA_MOVIMIENTOIsNull: Boolean read GetFECHA_MOVIMIENTOIsNull write SetFECHA_MOVIMIENTOIsNull; + property CAUSA: String read GetCAUSAValue write SetCAUSAValue; + property CAUSAIsNull: Boolean read GetCAUSAIsNull write SetCAUSAIsNull; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull: Boolean read GetTIPOIsNull write SetTIPOIsNull; + property ID_ALMACEN_RESERVA: Integer read GetID_ALMACEN_RESERVAValue write SetID_ALMACEN_RESERVAValue; + property ID_ALMACEN_RESERVAIsNull: Boolean read GetID_ALMACEN_RESERVAIsNull write SetID_ALMACEN_RESERVAIsNull; + end; + + { TInventarioDataTableRules } + TInventarioDataTableRules = class(TIntfObjectDADataTableRules, IInventario) + private + protected + { Property getters and setters } + function GetID_ALMACENValue: Integer; virtual; + procedure SetID_ALMACENValue(const aValue: Integer); virtual; + function GetID_ALMACENIsNull: Boolean; virtual; + procedure SetID_ALMACENIsNull(const aValue: Boolean); virtual; + function GetID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetID_ARTICULOIsNull: Boolean; virtual; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); virtual; + function GetALMACENValue: String; virtual; + procedure SetALMACENValue(const aValue: String); virtual; + function GetALMACENIsNull: Boolean; virtual; + procedure SetALMACENIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetFAMILIAValue: String; virtual; + procedure SetFAMILIAValue(const aValue: String); virtual; + function GetFAMILIAIsNull: Boolean; virtual; + procedure SetFAMILIAIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + function GetUNIDAD_MEDIDAValue: String; virtual; + procedure SetUNIDAD_MEDIDAValue(const aValue: String); virtual; + function GetUNIDAD_MEDIDAIsNull: Boolean; virtual; + procedure SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); virtual; + function GetSTOCKValue: Float; virtual; + procedure SetSTOCKValue(const aValue: Float); virtual; + function GetSTOCKIsNull: Boolean; virtual; + procedure SetSTOCKIsNull(const aValue: Boolean); virtual; + function GetUNIDADES_ALMACENValue: Float; virtual; + procedure SetUNIDADES_ALMACENValue(const aValue: Float); virtual; + function GetUNIDADES_ALMACENIsNull: Boolean; virtual; + procedure SetUNIDADES_ALMACENIsNull(const aValue: Boolean); virtual; + function GetRESERVAValue: Float; virtual; + procedure SetRESERVAValue(const aValue: Float); virtual; + function GetRESERVAIsNull: Boolean; virtual; + procedure SetRESERVAIsNull(const aValue: Boolean); virtual; + function GetPENDIENTE_RECEPCIONValue: Float; virtual; + procedure SetPENDIENTE_RECEPCIONValue(const aValue: Float); virtual; + function GetPENDIENTE_RECEPCIONIsNull: Boolean; virtual; + procedure SetPENDIENTE_RECEPCIONIsNull(const aValue: Boolean); virtual; + function GetTIPO_ALMACENValue: String; virtual; + procedure SetTIPO_ALMACENValue(const aValue: String); virtual; + function GetTIPO_ALMACENIsNull: Boolean; virtual; + procedure SetTIPO_ALMACENIsNull(const aValue: Boolean); virtual; + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetCANTIDADValue: Float; virtual; + procedure SetCANTIDADValue(const aValue: Float); virtual; + function GetCANTIDADIsNull: Boolean; virtual; + procedure SetCANTIDADIsNull(const aValue: Boolean); virtual; + function GetFECHA_MOVIMIENTOValue: DateTime; virtual; + procedure SetFECHA_MOVIMIENTOValue(const aValue: DateTime); virtual; + function GetFECHA_MOVIMIENTOIsNull: Boolean; virtual; + procedure SetFECHA_MOVIMIENTOIsNull(const aValue: Boolean); virtual; + function GetCAUSAValue: String; virtual; + procedure SetCAUSAValue(const aValue: String); virtual; + function GetCAUSAIsNull: Boolean; virtual; + procedure SetCAUSAIsNull(const aValue: Boolean); virtual; + function GetTIPOValue: String; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + function GetTIPOIsNull: Boolean; virtual; + procedure SetTIPOIsNull(const aValue: Boolean); virtual; + function GetID_ALMACEN_RESERVAValue: Integer; virtual; + procedure SetID_ALMACEN_RESERVAValue(const aValue: Integer); virtual; + function GetID_ALMACEN_RESERVAIsNull: Boolean; virtual; + procedure SetID_ALMACEN_RESERVAIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property ID_ALMACENIsNull: Boolean read GetID_ALMACENIsNull write SetID_ALMACENIsNull; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull: Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property ALMACEN: String read GetALMACENValue write SetALMACENValue; + property ALMACENIsNull: Boolean read GetALMACENIsNull write SetALMACENIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property FAMILIA: String read GetFAMILIAValue write SetFAMILIAValue; + property FAMILIAIsNull: Boolean read GetFAMILIAIsNull write SetFAMILIAIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property UNIDAD_MEDIDA: String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue; + property UNIDAD_MEDIDAIsNull: Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull; + property STOCK: Float read GetSTOCKValue write SetSTOCKValue; + property STOCKIsNull: Boolean read GetSTOCKIsNull write SetSTOCKIsNull; + property UNIDADES_ALMACEN: Float read GetUNIDADES_ALMACENValue write SetUNIDADES_ALMACENValue; + property UNIDADES_ALMACENIsNull: Boolean read GetUNIDADES_ALMACENIsNull write SetUNIDADES_ALMACENIsNull; + property RESERVA: Float read GetRESERVAValue write SetRESERVAValue; + property RESERVAIsNull: Boolean read GetRESERVAIsNull write SetRESERVAIsNull; + property PENDIENTE_RECEPCION: Float read GetPENDIENTE_RECEPCIONValue write SetPENDIENTE_RECEPCIONValue; + property PENDIENTE_RECEPCIONIsNull: Boolean read GetPENDIENTE_RECEPCIONIsNull write SetPENDIENTE_RECEPCIONIsNull; + property TIPO_ALMACEN: String read GetTIPO_ALMACENValue write SetTIPO_ALMACENValue; + property TIPO_ALMACENIsNull: Boolean read GetTIPO_ALMACENIsNull write SetTIPO_ALMACENIsNull; + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property CANTIDAD: Float read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDADIsNull: Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; + property FECHA_MOVIMIENTO: DateTime read GetFECHA_MOVIMIENTOValue write SetFECHA_MOVIMIENTOValue; + property FECHA_MOVIMIENTOIsNull: Boolean read GetFECHA_MOVIMIENTOIsNull write SetFECHA_MOVIMIENTOIsNull; + property CAUSA: String read GetCAUSAValue write SetCAUSAValue; + property CAUSAIsNull: Boolean read GetCAUSAIsNull write SetCAUSAIsNull; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull: Boolean read GetTIPOIsNull write SetTIPOIsNull; + property ID_ALMACEN_RESERVA: Integer read GetID_ALMACEN_RESERVAValue write SetID_ALMACEN_RESERVAValue; + property ID_ALMACEN_RESERVAIsNull: Boolean read GetID_ALMACEN_RESERVAIsNull write SetID_ALMACEN_RESERVAIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IDetalleReservas } + IDetalleReservas = interface(IDAStronglyTypedDataTable) + ['{8A4D1E34-9AFD-4798-9D59-1649308DD4AB}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_EMPRESAIsNull: Boolean; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); + function GetID_ALMACENValue: Integer; + procedure SetID_ALMACENValue(const aValue: Integer); + function GetID_ALMACENIsNull: Boolean; + procedure SetID_ALMACENIsNull(const aValue: Boolean); + function GetNOMBRE_ALMACENValue: String; + procedure SetNOMBRE_ALMACENValue(const aValue: String); + function GetNOMBRE_ALMACENIsNull: Boolean; + procedure SetNOMBRE_ALMACENIsNull(const aValue: Boolean); + function GetFECHA_RESERVAValue: DateTime; + procedure SetFECHA_RESERVAValue(const aValue: DateTime); + function GetFECHA_RESERVAIsNull: Boolean; + procedure SetFECHA_RESERVAIsNull(const aValue: Boolean); + function GetCAUSA_RESERVAValue: String; + procedure SetCAUSA_RESERVAValue(const aValue: String); + function GetCAUSA_RESERVAIsNull: Boolean; + procedure SetCAUSA_RESERVAIsNull(const aValue: Boolean); + function GetID_ARTICULOValue: Integer; + procedure SetID_ARTICULOValue(const aValue: Integer); + function GetID_ARTICULOIsNull: Boolean; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetDESCRIPCIONIsNull: Boolean; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); + function GetFAMILIAValue: String; + procedure SetFAMILIAValue(const aValue: String); + function GetFAMILIAIsNull: Boolean; + procedure SetFAMILIAIsNull(const aValue: Boolean); + function GetUNIDAD_MEDIDAValue: String; + procedure SetUNIDAD_MEDIDAValue(const aValue: String); + function GetUNIDAD_MEDIDAIsNull: Boolean; + procedure SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); + function GetFABRICANTEValue: String; + procedure SetFABRICANTEValue(const aValue: String); + function GetFABRICANTEIsNull: Boolean; + procedure SetFABRICANTEIsNull(const aValue: Boolean); + function GetREFERENCIA_FABRValue: String; + procedure SetREFERENCIA_FABRValue(const aValue: String); + function GetREFERENCIA_FABRIsNull: Boolean; + procedure SetREFERENCIA_FABRIsNull(const aValue: Boolean); + function GetCANTIDADValue: Currency; + procedure SetCANTIDADValue(const aValue: Currency); + function GetCANTIDADIsNull: Boolean; + procedure SetCANTIDADIsNull(const aValue: Boolean); + function GetID_ALMACEN_RESERVAValue: Integer; + procedure SetID_ALMACEN_RESERVAValue(const aValue: Integer); + function GetID_ALMACEN_RESERVAIsNull: Boolean; + procedure SetID_ALMACEN_RESERVAIsNull(const aValue: Boolean); + function GetNOMBRE_ALMACEN_RESERVAValue: String; + procedure SetNOMBRE_ALMACEN_RESERVAValue(const aValue: String); + function GetNOMBRE_ALMACEN_RESERVAIsNull: Boolean; + procedure SetNOMBRE_ALMACEN_RESERVAIsNull(const aValue: Boolean); + function GetID_EMPRESA_ALMACEN_RESERVAValue: Integer; + procedure SetID_EMPRESA_ALMACEN_RESERVAValue(const aValue: Integer); + function GetID_EMPRESA_ALMACEN_RESERVAIsNull: Boolean; + procedure SetID_EMPRESA_ALMACEN_RESERVAIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property ID_ALMACENIsNull: Boolean read GetID_ALMACENIsNull write SetID_ALMACENIsNull; + property NOMBRE_ALMACEN: String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property NOMBRE_ALMACENIsNull: Boolean read GetNOMBRE_ALMACENIsNull write SetNOMBRE_ALMACENIsNull; + property FECHA_RESERVA: DateTime read GetFECHA_RESERVAValue write SetFECHA_RESERVAValue; + property FECHA_RESERVAIsNull: Boolean read GetFECHA_RESERVAIsNull write SetFECHA_RESERVAIsNull; + property CAUSA_RESERVA: String read GetCAUSA_RESERVAValue write SetCAUSA_RESERVAValue; + property CAUSA_RESERVAIsNull: Boolean read GetCAUSA_RESERVAIsNull write SetCAUSA_RESERVAIsNull; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull: Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property FAMILIA: String read GetFAMILIAValue write SetFAMILIAValue; + property FAMILIAIsNull: Boolean read GetFAMILIAIsNull write SetFAMILIAIsNull; + property UNIDAD_MEDIDA: String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue; + property UNIDAD_MEDIDAIsNull: Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull; + property FABRICANTE: String read GetFABRICANTEValue write SetFABRICANTEValue; + property FABRICANTEIsNull: Boolean read GetFABRICANTEIsNull write SetFABRICANTEIsNull; + property REFERENCIA_FABR: String read GetREFERENCIA_FABRValue write SetREFERENCIA_FABRValue; + property REFERENCIA_FABRIsNull: Boolean read GetREFERENCIA_FABRIsNull write SetREFERENCIA_FABRIsNull; + property CANTIDAD: Currency read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDADIsNull: Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; + property ID_ALMACEN_RESERVA: Integer read GetID_ALMACEN_RESERVAValue write SetID_ALMACEN_RESERVAValue; + property ID_ALMACEN_RESERVAIsNull: Boolean read GetID_ALMACEN_RESERVAIsNull write SetID_ALMACEN_RESERVAIsNull; + property NOMBRE_ALMACEN_RESERVA: String read GetNOMBRE_ALMACEN_RESERVAValue write SetNOMBRE_ALMACEN_RESERVAValue; + property NOMBRE_ALMACEN_RESERVAIsNull: Boolean read GetNOMBRE_ALMACEN_RESERVAIsNull write SetNOMBRE_ALMACEN_RESERVAIsNull; + property ID_EMPRESA_ALMACEN_RESERVA: Integer read GetID_EMPRESA_ALMACEN_RESERVAValue write SetID_EMPRESA_ALMACEN_RESERVAValue; + property ID_EMPRESA_ALMACEN_RESERVAIsNull: Boolean read GetID_EMPRESA_ALMACEN_RESERVAIsNull write SetID_EMPRESA_ALMACEN_RESERVAIsNull; + end; + + { TDetalleReservasDataTableRules } + TDetalleReservasDataTableRules = class(TIntfObjectDADataTableRules, IDetalleReservas) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetID_ALMACENValue: Integer; virtual; + procedure SetID_ALMACENValue(const aValue: Integer); virtual; + function GetID_ALMACENIsNull: Boolean; virtual; + procedure SetID_ALMACENIsNull(const aValue: Boolean); virtual; + function GetNOMBRE_ALMACENValue: String; virtual; + procedure SetNOMBRE_ALMACENValue(const aValue: String); virtual; + function GetNOMBRE_ALMACENIsNull: Boolean; virtual; + procedure SetNOMBRE_ALMACENIsNull(const aValue: Boolean); virtual; + function GetFECHA_RESERVAValue: DateTime; virtual; + procedure SetFECHA_RESERVAValue(const aValue: DateTime); virtual; + function GetFECHA_RESERVAIsNull: Boolean; virtual; + procedure SetFECHA_RESERVAIsNull(const aValue: Boolean); virtual; + function GetCAUSA_RESERVAValue: String; virtual; + procedure SetCAUSA_RESERVAValue(const aValue: String); virtual; + function GetCAUSA_RESERVAIsNull: Boolean; virtual; + procedure SetCAUSA_RESERVAIsNull(const aValue: Boolean); virtual; + function GetID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetID_ARTICULOIsNull: Boolean; virtual; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + function GetFAMILIAValue: String; virtual; + procedure SetFAMILIAValue(const aValue: String); virtual; + function GetFAMILIAIsNull: Boolean; virtual; + procedure SetFAMILIAIsNull(const aValue: Boolean); virtual; + function GetUNIDAD_MEDIDAValue: String; virtual; + procedure SetUNIDAD_MEDIDAValue(const aValue: String); virtual; + function GetUNIDAD_MEDIDAIsNull: Boolean; virtual; + procedure SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); virtual; + function GetFABRICANTEValue: String; virtual; + procedure SetFABRICANTEValue(const aValue: String); virtual; + function GetFABRICANTEIsNull: Boolean; virtual; + procedure SetFABRICANTEIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_FABRValue: String; virtual; + procedure SetREFERENCIA_FABRValue(const aValue: String); virtual; + function GetREFERENCIA_FABRIsNull: Boolean; virtual; + procedure SetREFERENCIA_FABRIsNull(const aValue: Boolean); virtual; + function GetCANTIDADValue: Currency; virtual; + procedure SetCANTIDADValue(const aValue: Currency); virtual; + function GetCANTIDADIsNull: Boolean; virtual; + procedure SetCANTIDADIsNull(const aValue: Boolean); virtual; + function GetID_ALMACEN_RESERVAValue: Integer; virtual; + procedure SetID_ALMACEN_RESERVAValue(const aValue: Integer); virtual; + function GetID_ALMACEN_RESERVAIsNull: Boolean; virtual; + procedure SetID_ALMACEN_RESERVAIsNull(const aValue: Boolean); virtual; + function GetNOMBRE_ALMACEN_RESERVAValue: String; virtual; + procedure SetNOMBRE_ALMACEN_RESERVAValue(const aValue: String); virtual; + function GetNOMBRE_ALMACEN_RESERVAIsNull: Boolean; virtual; + procedure SetNOMBRE_ALMACEN_RESERVAIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESA_ALMACEN_RESERVAValue: Integer; virtual; + procedure SetID_EMPRESA_ALMACEN_RESERVAValue(const aValue: Integer); virtual; + function GetID_EMPRESA_ALMACEN_RESERVAIsNull: Boolean; virtual; + procedure SetID_EMPRESA_ALMACEN_RESERVAIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property ID_ALMACENIsNull: Boolean read GetID_ALMACENIsNull write SetID_ALMACENIsNull; + property NOMBRE_ALMACEN: String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property NOMBRE_ALMACENIsNull: Boolean read GetNOMBRE_ALMACENIsNull write SetNOMBRE_ALMACENIsNull; + property FECHA_RESERVA: DateTime read GetFECHA_RESERVAValue write SetFECHA_RESERVAValue; + property FECHA_RESERVAIsNull: Boolean read GetFECHA_RESERVAIsNull write SetFECHA_RESERVAIsNull; + property CAUSA_RESERVA: String read GetCAUSA_RESERVAValue write SetCAUSA_RESERVAValue; + property CAUSA_RESERVAIsNull: Boolean read GetCAUSA_RESERVAIsNull write SetCAUSA_RESERVAIsNull; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull: Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property FAMILIA: String read GetFAMILIAValue write SetFAMILIAValue; + property FAMILIAIsNull: Boolean read GetFAMILIAIsNull write SetFAMILIAIsNull; + property UNIDAD_MEDIDA: String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue; + property UNIDAD_MEDIDAIsNull: Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull; + property FABRICANTE: String read GetFABRICANTEValue write SetFABRICANTEValue; + property FABRICANTEIsNull: Boolean read GetFABRICANTEIsNull write SetFABRICANTEIsNull; + property REFERENCIA_FABR: String read GetREFERENCIA_FABRValue write SetREFERENCIA_FABRValue; + property REFERENCIA_FABRIsNull: Boolean read GetREFERENCIA_FABRIsNull write SetREFERENCIA_FABRIsNull; + property CANTIDAD: Currency read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDADIsNull: Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; + property ID_ALMACEN_RESERVA: Integer read GetID_ALMACEN_RESERVAValue write SetID_ALMACEN_RESERVAValue; + property ID_ALMACEN_RESERVAIsNull: Boolean read GetID_ALMACEN_RESERVAIsNull write SetID_ALMACEN_RESERVAIsNull; + property NOMBRE_ALMACEN_RESERVA: String read GetNOMBRE_ALMACEN_RESERVAValue write SetNOMBRE_ALMACEN_RESERVAValue; + property NOMBRE_ALMACEN_RESERVAIsNull: Boolean read GetNOMBRE_ALMACEN_RESERVAIsNull write SetNOMBRE_ALMACEN_RESERVAIsNull; + property ID_EMPRESA_ALMACEN_RESERVA: Integer read GetID_EMPRESA_ALMACEN_RESERVAValue write SetID_EMPRESA_ALMACEN_RESERVAValue; + property ID_EMPRESA_ALMACEN_RESERVAIsNull: Boolean read GetID_EMPRESA_ALMACEN_RESERVAIsNull write SetID_EMPRESA_ALMACEN_RESERVAIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants, uROBinaryHelpers; + +{ TInventarioDataTableRules } +constructor TInventarioDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TInventarioDataTableRules.Destroy; +begin + inherited; +end; + +function TInventarioDataTableRules.GetID_ALMACENValue: Integer; +begin + result := DataTable.Fields[idx_InventarioID_ALMACEN].AsInteger; +end; + +procedure TInventarioDataTableRules.SetID_ALMACENValue(const aValue: Integer); +begin + DataTable.Fields[idx_InventarioID_ALMACEN].AsInteger := aValue; +end; + +function TInventarioDataTableRules.GetID_ALMACENIsNull: boolean; +begin + result := DataTable.Fields[idx_InventarioID_ALMACEN].IsNull; +end; + +procedure TInventarioDataTableRules.SetID_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_InventarioID_ALMACEN].AsVariant := Null; +end; + +function TInventarioDataTableRules.GetID_ARTICULOValue: Integer; +begin + result := DataTable.Fields[idx_InventarioID_ARTICULO].AsInteger; +end; + +procedure TInventarioDataTableRules.SetID_ARTICULOValue(const aValue: Integer); +begin + DataTable.Fields[idx_InventarioID_ARTICULO].AsInteger := aValue; +end; + +function TInventarioDataTableRules.GetID_ARTICULOIsNull: boolean; +begin + result := DataTable.Fields[idx_InventarioID_ARTICULO].IsNull; +end; + +procedure TInventarioDataTableRules.SetID_ARTICULOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_InventarioID_ARTICULO].AsVariant := Null; +end; + +function TInventarioDataTableRules.GetALMACENValue: String; +begin + result := DataTable.Fields[idx_InventarioALMACEN].AsString; +end; + +procedure TInventarioDataTableRules.SetALMACENValue(const aValue: String); +begin + DataTable.Fields[idx_InventarioALMACEN].AsString := aValue; +end; + +function TInventarioDataTableRules.GetALMACENIsNull: boolean; +begin + result := DataTable.Fields[idx_InventarioALMACEN].IsNull; +end; + +procedure TInventarioDataTableRules.SetALMACENIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_InventarioALMACEN].AsVariant := Null; +end; + +function TInventarioDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_InventarioID_EMPRESA].AsInteger; +end; + +procedure TInventarioDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_InventarioID_EMPRESA].AsInteger := aValue; +end; + +function TInventarioDataTableRules.GetID_EMPRESAIsNull: boolean; +begin + result := DataTable.Fields[idx_InventarioID_EMPRESA].IsNull; +end; + +procedure TInventarioDataTableRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_InventarioID_EMPRESA].AsVariant := Null; +end; + +function TInventarioDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_InventarioREFERENCIA].AsString; +end; + +procedure TInventarioDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_InventarioREFERENCIA].AsString := aValue; +end; + +function TInventarioDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_InventarioREFERENCIA].IsNull; +end; + +procedure TInventarioDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_InventarioREFERENCIA].AsVariant := Null; +end; + +function TInventarioDataTableRules.GetFAMILIAValue: String; +begin + result := DataTable.Fields[idx_InventarioFAMILIA].AsString; +end; + +procedure TInventarioDataTableRules.SetFAMILIAValue(const aValue: String); +begin + DataTable.Fields[idx_InventarioFAMILIA].AsString := aValue; +end; + +function TInventarioDataTableRules.GetFAMILIAIsNull: boolean; +begin + result := DataTable.Fields[idx_InventarioFAMILIA].IsNull; +end; + +procedure TInventarioDataTableRules.SetFAMILIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_InventarioFAMILIA].AsVariant := Null; +end; + +function TInventarioDataTableRules.GetDESCRIPCIONValue: String; +begin + result := DataTable.Fields[idx_InventarioDESCRIPCION].AsString; +end; + +procedure TInventarioDataTableRules.SetDESCRIPCIONValue(const aValue: String); +begin + DataTable.Fields[idx_InventarioDESCRIPCION].AsString := aValue; +end; + +function TInventarioDataTableRules.GetDESCRIPCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_InventarioDESCRIPCION].IsNull; +end; + +procedure TInventarioDataTableRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_InventarioDESCRIPCION].AsVariant := Null; +end; + +function TInventarioDataTableRules.GetUNIDAD_MEDIDAValue: String; +begin + result := DataTable.Fields[idx_InventarioUNIDAD_MEDIDA].AsString; +end; + +procedure TInventarioDataTableRules.SetUNIDAD_MEDIDAValue(const aValue: String); +begin + DataTable.Fields[idx_InventarioUNIDAD_MEDIDA].AsString := aValue; +end; + +function TInventarioDataTableRules.GetUNIDAD_MEDIDAIsNull: boolean; +begin + result := DataTable.Fields[idx_InventarioUNIDAD_MEDIDA].IsNull; +end; + +procedure TInventarioDataTableRules.SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_InventarioUNIDAD_MEDIDA].AsVariant := Null; +end; + +function TInventarioDataTableRules.GetSTOCKValue: Float; +begin + result := DataTable.Fields[idx_InventarioSTOCK].AsFloat; +end; + +procedure TInventarioDataTableRules.SetSTOCKValue(const aValue: Float); +begin + DataTable.Fields[idx_InventarioSTOCK].AsFloat := aValue; +end; + +function TInventarioDataTableRules.GetSTOCKIsNull: boolean; +begin + result := DataTable.Fields[idx_InventarioSTOCK].IsNull; +end; + +procedure TInventarioDataTableRules.SetSTOCKIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_InventarioSTOCK].AsVariant := Null; +end; + +function TInventarioDataTableRules.GetUNIDADES_ALMACENValue: Float; +begin + result := DataTable.Fields[idx_InventarioUNIDADES_ALMACEN].AsFloat; +end; + +procedure TInventarioDataTableRules.SetUNIDADES_ALMACENValue(const aValue: Float); +begin + DataTable.Fields[idx_InventarioUNIDADES_ALMACEN].AsFloat := aValue; +end; + +function TInventarioDataTableRules.GetUNIDADES_ALMACENIsNull: boolean; +begin + result := DataTable.Fields[idx_InventarioUNIDADES_ALMACEN].IsNull; +end; + +procedure TInventarioDataTableRules.SetUNIDADES_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_InventarioUNIDADES_ALMACEN].AsVariant := Null; +end; + +function TInventarioDataTableRules.GetRESERVAValue: Float; +begin + result := DataTable.Fields[idx_InventarioRESERVA].AsFloat; +end; + +procedure TInventarioDataTableRules.SetRESERVAValue(const aValue: Float); +begin + DataTable.Fields[idx_InventarioRESERVA].AsFloat := aValue; +end; + +function TInventarioDataTableRules.GetRESERVAIsNull: boolean; +begin + result := DataTable.Fields[idx_InventarioRESERVA].IsNull; +end; + +procedure TInventarioDataTableRules.SetRESERVAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_InventarioRESERVA].AsVariant := Null; +end; + +function TInventarioDataTableRules.GetPENDIENTE_RECEPCIONValue: Float; +begin + result := DataTable.Fields[idx_InventarioPENDIENTE_RECEPCION].AsFloat; +end; + +procedure TInventarioDataTableRules.SetPENDIENTE_RECEPCIONValue(const aValue: Float); +begin + DataTable.Fields[idx_InventarioPENDIENTE_RECEPCION].AsFloat := aValue; +end; + +function TInventarioDataTableRules.GetPENDIENTE_RECEPCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_InventarioPENDIENTE_RECEPCION].IsNull; +end; + +procedure TInventarioDataTableRules.SetPENDIENTE_RECEPCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_InventarioPENDIENTE_RECEPCION].AsVariant := Null; +end; + +function TInventarioDataTableRules.GetTIPO_ALMACENValue: String; +begin + result := DataTable.Fields[idx_InventarioTIPO_ALMACEN].AsString; +end; + +procedure TInventarioDataTableRules.SetTIPO_ALMACENValue(const aValue: String); +begin + DataTable.Fields[idx_InventarioTIPO_ALMACEN].AsString := aValue; +end; + +function TInventarioDataTableRules.GetTIPO_ALMACENIsNull: boolean; +begin + result := DataTable.Fields[idx_InventarioTIPO_ALMACEN].IsNull; +end; + +procedure TInventarioDataTableRules.SetTIPO_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_InventarioTIPO_ALMACEN].AsVariant := Null; +end; + +function TInventarioDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_InventarioID].AsInteger; +end; + +procedure TInventarioDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_InventarioID].AsInteger := aValue; +end; + +function TInventarioDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_InventarioID].IsNull; +end; + +procedure TInventarioDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_InventarioID].AsVariant := Null; +end; + +function TInventarioDataTableRules.GetCANTIDADValue: Float; +begin + result := DataTable.Fields[idx_InventarioCANTIDAD].AsFloat; +end; + +procedure TInventarioDataTableRules.SetCANTIDADValue(const aValue: Float); +begin + DataTable.Fields[idx_InventarioCANTIDAD].AsFloat := aValue; +end; + +function TInventarioDataTableRules.GetCANTIDADIsNull: boolean; +begin + result := DataTable.Fields[idx_InventarioCANTIDAD].IsNull; +end; + +procedure TInventarioDataTableRules.SetCANTIDADIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_InventarioCANTIDAD].AsVariant := Null; +end; + +function TInventarioDataTableRules.GetFECHA_MOVIMIENTOValue: DateTime; +begin + result := DataTable.Fields[idx_InventarioFECHA_MOVIMIENTO].AsDateTime; +end; + +procedure TInventarioDataTableRules.SetFECHA_MOVIMIENTOValue(const aValue: DateTime); +begin + DataTable.Fields[idx_InventarioFECHA_MOVIMIENTO].AsDateTime := aValue; +end; + +function TInventarioDataTableRules.GetFECHA_MOVIMIENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_InventarioFECHA_MOVIMIENTO].IsNull; +end; + +procedure TInventarioDataTableRules.SetFECHA_MOVIMIENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_InventarioFECHA_MOVIMIENTO].AsVariant := Null; +end; + +function TInventarioDataTableRules.GetCAUSAValue: String; +begin + result := DataTable.Fields[idx_InventarioCAUSA].AsString; +end; + +procedure TInventarioDataTableRules.SetCAUSAValue(const aValue: String); +begin + DataTable.Fields[idx_InventarioCAUSA].AsString := aValue; +end; + +function TInventarioDataTableRules.GetCAUSAIsNull: boolean; +begin + result := DataTable.Fields[idx_InventarioCAUSA].IsNull; +end; + +procedure TInventarioDataTableRules.SetCAUSAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_InventarioCAUSA].AsVariant := Null; +end; + +function TInventarioDataTableRules.GetTIPOValue: String; +begin + result := DataTable.Fields[idx_InventarioTIPO].AsString; +end; + +procedure TInventarioDataTableRules.SetTIPOValue(const aValue: String); +begin + DataTable.Fields[idx_InventarioTIPO].AsString := aValue; +end; + +function TInventarioDataTableRules.GetTIPOIsNull: boolean; +begin + result := DataTable.Fields[idx_InventarioTIPO].IsNull; +end; + +procedure TInventarioDataTableRules.SetTIPOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_InventarioTIPO].AsVariant := Null; +end; + +function TInventarioDataTableRules.GetID_ALMACEN_RESERVAValue: Integer; +begin + result := DataTable.Fields[idx_InventarioID_ALMACEN_RESERVA].AsInteger; +end; + +procedure TInventarioDataTableRules.SetID_ALMACEN_RESERVAValue(const aValue: Integer); +begin + DataTable.Fields[idx_InventarioID_ALMACEN_RESERVA].AsInteger := aValue; +end; + +function TInventarioDataTableRules.GetID_ALMACEN_RESERVAIsNull: boolean; +begin + result := DataTable.Fields[idx_InventarioID_ALMACEN_RESERVA].IsNull; +end; + +procedure TInventarioDataTableRules.SetID_ALMACEN_RESERVAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_InventarioID_ALMACEN_RESERVA].AsVariant := Null; +end; + + +{ TDetalleReservasDataTableRules } +constructor TDetalleReservasDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TDetalleReservasDataTableRules.Destroy; +begin + inherited; +end; + +function TDetalleReservasDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_DetalleReservasID].AsInteger; +end; + +procedure TDetalleReservasDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_DetalleReservasID].AsInteger := aValue; +end; + +function TDetalleReservasDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_DetalleReservasID].IsNull; +end; + +procedure TDetalleReservasDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DetalleReservasID].AsVariant := Null; +end; + +function TDetalleReservasDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_DetalleReservasID_EMPRESA].AsInteger; +end; + +procedure TDetalleReservasDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_DetalleReservasID_EMPRESA].AsInteger := aValue; +end; + +function TDetalleReservasDataTableRules.GetID_EMPRESAIsNull: boolean; +begin + result := DataTable.Fields[idx_DetalleReservasID_EMPRESA].IsNull; +end; + +procedure TDetalleReservasDataTableRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DetalleReservasID_EMPRESA].AsVariant := Null; +end; + +function TDetalleReservasDataTableRules.GetID_ALMACENValue: Integer; +begin + result := DataTable.Fields[idx_DetalleReservasID_ALMACEN].AsInteger; +end; + +procedure TDetalleReservasDataTableRules.SetID_ALMACENValue(const aValue: Integer); +begin + DataTable.Fields[idx_DetalleReservasID_ALMACEN].AsInteger := aValue; +end; + +function TDetalleReservasDataTableRules.GetID_ALMACENIsNull: boolean; +begin + result := DataTable.Fields[idx_DetalleReservasID_ALMACEN].IsNull; +end; + +procedure TDetalleReservasDataTableRules.SetID_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DetalleReservasID_ALMACEN].AsVariant := Null; +end; + +function TDetalleReservasDataTableRules.GetNOMBRE_ALMACENValue: String; +begin + result := DataTable.Fields[idx_DetalleReservasNOMBRE_ALMACEN].AsString; +end; + +procedure TDetalleReservasDataTableRules.SetNOMBRE_ALMACENValue(const aValue: String); +begin + DataTable.Fields[idx_DetalleReservasNOMBRE_ALMACEN].AsString := aValue; +end; + +function TDetalleReservasDataTableRules.GetNOMBRE_ALMACENIsNull: boolean; +begin + result := DataTable.Fields[idx_DetalleReservasNOMBRE_ALMACEN].IsNull; +end; + +procedure TDetalleReservasDataTableRules.SetNOMBRE_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DetalleReservasNOMBRE_ALMACEN].AsVariant := Null; +end; + +function TDetalleReservasDataTableRules.GetFECHA_RESERVAValue: DateTime; +begin + result := DataTable.Fields[idx_DetalleReservasFECHA_RESERVA].AsDateTime; +end; + +procedure TDetalleReservasDataTableRules.SetFECHA_RESERVAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_DetalleReservasFECHA_RESERVA].AsDateTime := aValue; +end; + +function TDetalleReservasDataTableRules.GetFECHA_RESERVAIsNull: boolean; +begin + result := DataTable.Fields[idx_DetalleReservasFECHA_RESERVA].IsNull; +end; + +procedure TDetalleReservasDataTableRules.SetFECHA_RESERVAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DetalleReservasFECHA_RESERVA].AsVariant := Null; +end; + +function TDetalleReservasDataTableRules.GetCAUSA_RESERVAValue: String; +begin + result := DataTable.Fields[idx_DetalleReservasCAUSA_RESERVA].AsString; +end; + +procedure TDetalleReservasDataTableRules.SetCAUSA_RESERVAValue(const aValue: String); +begin + DataTable.Fields[idx_DetalleReservasCAUSA_RESERVA].AsString := aValue; +end; + +function TDetalleReservasDataTableRules.GetCAUSA_RESERVAIsNull: boolean; +begin + result := DataTable.Fields[idx_DetalleReservasCAUSA_RESERVA].IsNull; +end; + +procedure TDetalleReservasDataTableRules.SetCAUSA_RESERVAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DetalleReservasCAUSA_RESERVA].AsVariant := Null; +end; + +function TDetalleReservasDataTableRules.GetID_ARTICULOValue: Integer; +begin + result := DataTable.Fields[idx_DetalleReservasID_ARTICULO].AsInteger; +end; + +procedure TDetalleReservasDataTableRules.SetID_ARTICULOValue(const aValue: Integer); +begin + DataTable.Fields[idx_DetalleReservasID_ARTICULO].AsInteger := aValue; +end; + +function TDetalleReservasDataTableRules.GetID_ARTICULOIsNull: boolean; +begin + result := DataTable.Fields[idx_DetalleReservasID_ARTICULO].IsNull; +end; + +procedure TDetalleReservasDataTableRules.SetID_ARTICULOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DetalleReservasID_ARTICULO].AsVariant := Null; +end; + +function TDetalleReservasDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_DetalleReservasREFERENCIA].AsString; +end; + +procedure TDetalleReservasDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_DetalleReservasREFERENCIA].AsString := aValue; +end; + +function TDetalleReservasDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_DetalleReservasREFERENCIA].IsNull; +end; + +procedure TDetalleReservasDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DetalleReservasREFERENCIA].AsVariant := Null; +end; + +function TDetalleReservasDataTableRules.GetDESCRIPCIONValue: String; +begin + result := DataTable.Fields[idx_DetalleReservasDESCRIPCION].AsString; +end; + +procedure TDetalleReservasDataTableRules.SetDESCRIPCIONValue(const aValue: String); +begin + DataTable.Fields[idx_DetalleReservasDESCRIPCION].AsString := aValue; +end; + +function TDetalleReservasDataTableRules.GetDESCRIPCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_DetalleReservasDESCRIPCION].IsNull; +end; + +procedure TDetalleReservasDataTableRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DetalleReservasDESCRIPCION].AsVariant := Null; +end; + +function TDetalleReservasDataTableRules.GetFAMILIAValue: String; +begin + result := DataTable.Fields[idx_DetalleReservasFAMILIA].AsString; +end; + +procedure TDetalleReservasDataTableRules.SetFAMILIAValue(const aValue: String); +begin + DataTable.Fields[idx_DetalleReservasFAMILIA].AsString := aValue; +end; + +function TDetalleReservasDataTableRules.GetFAMILIAIsNull: boolean; +begin + result := DataTable.Fields[idx_DetalleReservasFAMILIA].IsNull; +end; + +procedure TDetalleReservasDataTableRules.SetFAMILIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DetalleReservasFAMILIA].AsVariant := Null; +end; + +function TDetalleReservasDataTableRules.GetUNIDAD_MEDIDAValue: String; +begin + result := DataTable.Fields[idx_DetalleReservasUNIDAD_MEDIDA].AsString; +end; + +procedure TDetalleReservasDataTableRules.SetUNIDAD_MEDIDAValue(const aValue: String); +begin + DataTable.Fields[idx_DetalleReservasUNIDAD_MEDIDA].AsString := aValue; +end; + +function TDetalleReservasDataTableRules.GetUNIDAD_MEDIDAIsNull: boolean; +begin + result := DataTable.Fields[idx_DetalleReservasUNIDAD_MEDIDA].IsNull; +end; + +procedure TDetalleReservasDataTableRules.SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DetalleReservasUNIDAD_MEDIDA].AsVariant := Null; +end; + +function TDetalleReservasDataTableRules.GetFABRICANTEValue: String; +begin + result := DataTable.Fields[idx_DetalleReservasFABRICANTE].AsString; +end; + +procedure TDetalleReservasDataTableRules.SetFABRICANTEValue(const aValue: String); +begin + DataTable.Fields[idx_DetalleReservasFABRICANTE].AsString := aValue; +end; + +function TDetalleReservasDataTableRules.GetFABRICANTEIsNull: boolean; +begin + result := DataTable.Fields[idx_DetalleReservasFABRICANTE].IsNull; +end; + +procedure TDetalleReservasDataTableRules.SetFABRICANTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DetalleReservasFABRICANTE].AsVariant := Null; +end; + +function TDetalleReservasDataTableRules.GetREFERENCIA_FABRValue: String; +begin + result := DataTable.Fields[idx_DetalleReservasREFERENCIA_FABR].AsString; +end; + +procedure TDetalleReservasDataTableRules.SetREFERENCIA_FABRValue(const aValue: String); +begin + DataTable.Fields[idx_DetalleReservasREFERENCIA_FABR].AsString := aValue; +end; + +function TDetalleReservasDataTableRules.GetREFERENCIA_FABRIsNull: boolean; +begin + result := DataTable.Fields[idx_DetalleReservasREFERENCIA_FABR].IsNull; +end; + +procedure TDetalleReservasDataTableRules.SetREFERENCIA_FABRIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DetalleReservasREFERENCIA_FABR].AsVariant := Null; +end; + +function TDetalleReservasDataTableRules.GetCANTIDADValue: Currency; +begin + result := DataTable.Fields[idx_DetalleReservasCANTIDAD].AsCurrency; +end; + +procedure TDetalleReservasDataTableRules.SetCANTIDADValue(const aValue: Currency); +begin + DataTable.Fields[idx_DetalleReservasCANTIDAD].AsCurrency := aValue; +end; + +function TDetalleReservasDataTableRules.GetCANTIDADIsNull: boolean; +begin + result := DataTable.Fields[idx_DetalleReservasCANTIDAD].IsNull; +end; + +procedure TDetalleReservasDataTableRules.SetCANTIDADIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DetalleReservasCANTIDAD].AsVariant := Null; +end; + +function TDetalleReservasDataTableRules.GetID_ALMACEN_RESERVAValue: Integer; +begin + result := DataTable.Fields[idx_DetalleReservasID_ALMACEN_RESERVA].AsInteger; +end; + +procedure TDetalleReservasDataTableRules.SetID_ALMACEN_RESERVAValue(const aValue: Integer); +begin + DataTable.Fields[idx_DetalleReservasID_ALMACEN_RESERVA].AsInteger := aValue; +end; + +function TDetalleReservasDataTableRules.GetID_ALMACEN_RESERVAIsNull: boolean; +begin + result := DataTable.Fields[idx_DetalleReservasID_ALMACEN_RESERVA].IsNull; +end; + +procedure TDetalleReservasDataTableRules.SetID_ALMACEN_RESERVAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DetalleReservasID_ALMACEN_RESERVA].AsVariant := Null; +end; + +function TDetalleReservasDataTableRules.GetNOMBRE_ALMACEN_RESERVAValue: String; +begin + result := DataTable.Fields[idx_DetalleReservasNOMBRE_ALMACEN_RESERVA].AsString; +end; + +procedure TDetalleReservasDataTableRules.SetNOMBRE_ALMACEN_RESERVAValue(const aValue: String); +begin + DataTable.Fields[idx_DetalleReservasNOMBRE_ALMACEN_RESERVA].AsString := aValue; +end; + +function TDetalleReservasDataTableRules.GetNOMBRE_ALMACEN_RESERVAIsNull: boolean; +begin + result := DataTable.Fields[idx_DetalleReservasNOMBRE_ALMACEN_RESERVA].IsNull; +end; + +procedure TDetalleReservasDataTableRules.SetNOMBRE_ALMACEN_RESERVAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DetalleReservasNOMBRE_ALMACEN_RESERVA].AsVariant := Null; +end; + +function TDetalleReservasDataTableRules.GetID_EMPRESA_ALMACEN_RESERVAValue: Integer; +begin + result := DataTable.Fields[idx_DetalleReservasID_EMPRESA_ALMACEN_RESERVA].AsInteger; +end; + +procedure TDetalleReservasDataTableRules.SetID_EMPRESA_ALMACEN_RESERVAValue(const aValue: Integer); +begin + DataTable.Fields[idx_DetalleReservasID_EMPRESA_ALMACEN_RESERVA].AsInteger := aValue; +end; + +function TDetalleReservasDataTableRules.GetID_EMPRESA_ALMACEN_RESERVAIsNull: boolean; +begin + result := DataTable.Fields[idx_DetalleReservasID_EMPRESA_ALMACEN_RESERVA].IsNull; +end; + +procedure TDetalleReservasDataTableRules.SetID_EMPRESA_ALMACEN_RESERVAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DetalleReservasID_EMPRESA_ALMACEN_RESERVA].AsVariant := Null; +end; + + +initialization + RegisterDataTableRules(RID_Inventario, TInventarioDataTableRules); + RegisterDataTableRules(RID_DetalleReservas, TDetalleReservasDataTableRules); + +end. diff --git a/Source/Modulos/Inventario/Model/schInventarioServer_Intf.dcu b/Source/Modulos/Inventario/Model/schInventarioServer_Intf.dcu new file mode 100644 index 0000000..cb9a1ad Binary files /dev/null and b/Source/Modulos/Inventario/Model/schInventarioServer_Intf.dcu differ diff --git a/Source/Modulos/Inventario/Model/schInventarioServer_Intf.pas b/Source/Modulos/Inventario/Model/schInventarioServer_Intf.pas new file mode 100644 index 0000000..2a15fd5 --- /dev/null +++ b/Source/Modulos/Inventario/Model/schInventarioServer_Intf.pas @@ -0,0 +1,1641 @@ +unit schInventarioServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schInventarioClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_InventarioDelta = '{D5FDE8E5-7FF7-4ABB-AE86-0650D9D28956}'; + RID_DetalleReservasDelta = '{3087502E-1C78-45AA-9164-988726607EE9}'; + +type + { IInventarioDelta } + IInventarioDelta = interface(IInventario) + ['{D5FDE8E5-7FF7-4ABB-AE86-0650D9D28956}'] + { Property getters and setters } + function GetOldID_ALMACENValue : Integer; + function GetOldID_ARTICULOValue : Integer; + function GetOldALMACENValue : String; + function GetOldID_EMPRESAValue : Integer; + function GetOldREFERENCIAValue : String; + function GetOldFAMILIAValue : String; + function GetOldDESCRIPCIONValue : String; + function GetOldUNIDAD_MEDIDAValue : String; + function GetOldSTOCKValue : Float; + function GetOldUNIDADES_ALMACENValue : Float; + function GetOldRESERVAValue : Float; + function GetOldPENDIENTE_RECEPCIONValue : Float; + function GetOldTIPO_ALMACENValue : String; + function GetOldIDValue : Integer; + function GetOldCANTIDADValue : Float; + function GetOldFECHA_MOVIMIENTOValue : DateTime; + function GetOldCAUSAValue : String; + function GetOldTIPOValue : String; + function GetOldID_ALMACEN_RESERVAValue : Integer; + + { Properties } + property OldID_ALMACEN : Integer read GetOldID_ALMACENValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldALMACEN : String read GetOldALMACENValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldFAMILIA : String read GetOldFAMILIAValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldUNIDAD_MEDIDA : String read GetOldUNIDAD_MEDIDAValue; + property OldSTOCK : Float read GetOldSTOCKValue; + property OldUNIDADES_ALMACEN : Float read GetOldUNIDADES_ALMACENValue; + property OldRESERVA : Float read GetOldRESERVAValue; + property OldPENDIENTE_RECEPCION : Float read GetOldPENDIENTE_RECEPCIONValue; + property OldTIPO_ALMACEN : String read GetOldTIPO_ALMACENValue; + property OldID : Integer read GetOldIDValue; + property OldCANTIDAD : Float read GetOldCANTIDADValue; + property OldFECHA_MOVIMIENTO : DateTime read GetOldFECHA_MOVIMIENTOValue; + property OldCAUSA : String read GetOldCAUSAValue; + property OldTIPO : String read GetOldTIPOValue; + property OldID_ALMACEN_RESERVA : Integer read GetOldID_ALMACEN_RESERVAValue; + end; + + { TInventarioBusinessProcessorRules } + TInventarioBusinessProcessorRules = class(TDABusinessProcessorRules, IInventario, IInventarioDelta) + private + protected + { Property getters and setters } + function GetID_ALMACENValue: Integer; virtual; + function GetID_ALMACENIsNull: Boolean; virtual; + function GetOldID_ALMACENValue: Integer; virtual; + function GetOldID_ALMACENIsNull: Boolean; virtual; + procedure SetID_ALMACENValue(const aValue: Integer); virtual; + procedure SetID_ALMACENIsNull(const aValue: Boolean); virtual; + function GetID_ARTICULOValue: Integer; virtual; + function GetID_ARTICULOIsNull: Boolean; virtual; + function GetOldID_ARTICULOValue: Integer; virtual; + function GetOldID_ARTICULOIsNull: Boolean; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); virtual; + function GetALMACENValue: String; virtual; + function GetALMACENIsNull: Boolean; virtual; + function GetOldALMACENValue: String; virtual; + function GetOldALMACENIsNull: Boolean; virtual; + procedure SetALMACENValue(const aValue: String); virtual; + procedure SetALMACENIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetFAMILIAValue: String; virtual; + function GetFAMILIAIsNull: Boolean; virtual; + function GetOldFAMILIAValue: String; virtual; + function GetOldFAMILIAIsNull: Boolean; virtual; + procedure SetFAMILIAValue(const aValue: String); virtual; + procedure SetFAMILIAIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + function GetUNIDAD_MEDIDAValue: String; virtual; + function GetUNIDAD_MEDIDAIsNull: Boolean; virtual; + function GetOldUNIDAD_MEDIDAValue: String; virtual; + function GetOldUNIDAD_MEDIDAIsNull: Boolean; virtual; + procedure SetUNIDAD_MEDIDAValue(const aValue: String); virtual; + procedure SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); virtual; + function GetSTOCKValue: Float; virtual; + function GetSTOCKIsNull: Boolean; virtual; + function GetOldSTOCKValue: Float; virtual; + function GetOldSTOCKIsNull: Boolean; virtual; + procedure SetSTOCKValue(const aValue: Float); virtual; + procedure SetSTOCKIsNull(const aValue: Boolean); virtual; + function GetUNIDADES_ALMACENValue: Float; virtual; + function GetUNIDADES_ALMACENIsNull: Boolean; virtual; + function GetOldUNIDADES_ALMACENValue: Float; virtual; + function GetOldUNIDADES_ALMACENIsNull: Boolean; virtual; + procedure SetUNIDADES_ALMACENValue(const aValue: Float); virtual; + procedure SetUNIDADES_ALMACENIsNull(const aValue: Boolean); virtual; + function GetRESERVAValue: Float; virtual; + function GetRESERVAIsNull: Boolean; virtual; + function GetOldRESERVAValue: Float; virtual; + function GetOldRESERVAIsNull: Boolean; virtual; + procedure SetRESERVAValue(const aValue: Float); virtual; + procedure SetRESERVAIsNull(const aValue: Boolean); virtual; + function GetPENDIENTE_RECEPCIONValue: Float; virtual; + function GetPENDIENTE_RECEPCIONIsNull: Boolean; virtual; + function GetOldPENDIENTE_RECEPCIONValue: Float; virtual; + function GetOldPENDIENTE_RECEPCIONIsNull: Boolean; virtual; + procedure SetPENDIENTE_RECEPCIONValue(const aValue: Float); virtual; + procedure SetPENDIENTE_RECEPCIONIsNull(const aValue: Boolean); virtual; + function GetTIPO_ALMACENValue: String; virtual; + function GetTIPO_ALMACENIsNull: Boolean; virtual; + function GetOldTIPO_ALMACENValue: String; virtual; + function GetOldTIPO_ALMACENIsNull: Boolean; virtual; + procedure SetTIPO_ALMACENValue(const aValue: String); virtual; + procedure SetTIPO_ALMACENIsNull(const aValue: Boolean); virtual; + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetCANTIDADValue: Float; virtual; + function GetCANTIDADIsNull: Boolean; virtual; + function GetOldCANTIDADValue: Float; virtual; + function GetOldCANTIDADIsNull: Boolean; virtual; + procedure SetCANTIDADValue(const aValue: Float); virtual; + procedure SetCANTIDADIsNull(const aValue: Boolean); virtual; + function GetFECHA_MOVIMIENTOValue: DateTime; virtual; + function GetFECHA_MOVIMIENTOIsNull: Boolean; virtual; + function GetOldFECHA_MOVIMIENTOValue: DateTime; virtual; + function GetOldFECHA_MOVIMIENTOIsNull: Boolean; virtual; + procedure SetFECHA_MOVIMIENTOValue(const aValue: DateTime); virtual; + procedure SetFECHA_MOVIMIENTOIsNull(const aValue: Boolean); virtual; + function GetCAUSAValue: String; virtual; + function GetCAUSAIsNull: Boolean; virtual; + function GetOldCAUSAValue: String; virtual; + function GetOldCAUSAIsNull: Boolean; virtual; + procedure SetCAUSAValue(const aValue: String); virtual; + procedure SetCAUSAIsNull(const aValue: Boolean); virtual; + function GetTIPOValue: String; virtual; + function GetTIPOIsNull: Boolean; virtual; + function GetOldTIPOValue: String; virtual; + function GetOldTIPOIsNull: Boolean; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + procedure SetTIPOIsNull(const aValue: Boolean); virtual; + function GetID_ALMACEN_RESERVAValue: Integer; virtual; + function GetID_ALMACEN_RESERVAIsNull: Boolean; virtual; + function GetOldID_ALMACEN_RESERVAValue: Integer; virtual; + function GetOldID_ALMACEN_RESERVAIsNull: Boolean; virtual; + procedure SetID_ALMACEN_RESERVAValue(const aValue: Integer); virtual; + procedure SetID_ALMACEN_RESERVAIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID_ALMACEN : Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property ID_ALMACENIsNull : Boolean read GetID_ALMACENIsNull write SetID_ALMACENIsNull; + property OldID_ALMACEN : Integer read GetOldID_ALMACENValue; + property OldID_ALMACENIsNull : Boolean read GetOldID_ALMACENIsNull; + property ID_ARTICULO : Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull : Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldID_ARTICULOIsNull : Boolean read GetOldID_ARTICULOIsNull; + property ALMACEN : String read GetALMACENValue write SetALMACENValue; + property ALMACENIsNull : Boolean read GetALMACENIsNull write SetALMACENIsNull; + property OldALMACEN : String read GetOldALMACENValue; + property OldALMACENIsNull : Boolean read GetOldALMACENIsNull; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull : Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_EMPRESAIsNull : Boolean read GetOldID_EMPRESAIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property FAMILIA : String read GetFAMILIAValue write SetFAMILIAValue; + property FAMILIAIsNull : Boolean read GetFAMILIAIsNull write SetFAMILIAIsNull; + property OldFAMILIA : String read GetOldFAMILIAValue; + property OldFAMILIAIsNull : Boolean read GetOldFAMILIAIsNull; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull : Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldDESCRIPCIONIsNull : Boolean read GetOldDESCRIPCIONIsNull; + property UNIDAD_MEDIDA : String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue; + property UNIDAD_MEDIDAIsNull : Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull; + property OldUNIDAD_MEDIDA : String read GetOldUNIDAD_MEDIDAValue; + property OldUNIDAD_MEDIDAIsNull : Boolean read GetOldUNIDAD_MEDIDAIsNull; + property STOCK : Float read GetSTOCKValue write SetSTOCKValue; + property STOCKIsNull : Boolean read GetSTOCKIsNull write SetSTOCKIsNull; + property OldSTOCK : Float read GetOldSTOCKValue; + property OldSTOCKIsNull : Boolean read GetOldSTOCKIsNull; + property UNIDADES_ALMACEN : Float read GetUNIDADES_ALMACENValue write SetUNIDADES_ALMACENValue; + property UNIDADES_ALMACENIsNull : Boolean read GetUNIDADES_ALMACENIsNull write SetUNIDADES_ALMACENIsNull; + property OldUNIDADES_ALMACEN : Float read GetOldUNIDADES_ALMACENValue; + property OldUNIDADES_ALMACENIsNull : Boolean read GetOldUNIDADES_ALMACENIsNull; + property RESERVA : Float read GetRESERVAValue write SetRESERVAValue; + property RESERVAIsNull : Boolean read GetRESERVAIsNull write SetRESERVAIsNull; + property OldRESERVA : Float read GetOldRESERVAValue; + property OldRESERVAIsNull : Boolean read GetOldRESERVAIsNull; + property PENDIENTE_RECEPCION : Float read GetPENDIENTE_RECEPCIONValue write SetPENDIENTE_RECEPCIONValue; + property PENDIENTE_RECEPCIONIsNull : Boolean read GetPENDIENTE_RECEPCIONIsNull write SetPENDIENTE_RECEPCIONIsNull; + property OldPENDIENTE_RECEPCION : Float read GetOldPENDIENTE_RECEPCIONValue; + property OldPENDIENTE_RECEPCIONIsNull : Boolean read GetOldPENDIENTE_RECEPCIONIsNull; + property TIPO_ALMACEN : String read GetTIPO_ALMACENValue write SetTIPO_ALMACENValue; + property TIPO_ALMACENIsNull : Boolean read GetTIPO_ALMACENIsNull write SetTIPO_ALMACENIsNull; + property OldTIPO_ALMACEN : String read GetOldTIPO_ALMACENValue; + property OldTIPO_ALMACENIsNull : Boolean read GetOldTIPO_ALMACENIsNull; + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property CANTIDAD : Float read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDADIsNull : Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; + property OldCANTIDAD : Float read GetOldCANTIDADValue; + property OldCANTIDADIsNull : Boolean read GetOldCANTIDADIsNull; + property FECHA_MOVIMIENTO : DateTime read GetFECHA_MOVIMIENTOValue write SetFECHA_MOVIMIENTOValue; + property FECHA_MOVIMIENTOIsNull : Boolean read GetFECHA_MOVIMIENTOIsNull write SetFECHA_MOVIMIENTOIsNull; + property OldFECHA_MOVIMIENTO : DateTime read GetOldFECHA_MOVIMIENTOValue; + property OldFECHA_MOVIMIENTOIsNull : Boolean read GetOldFECHA_MOVIMIENTOIsNull; + property CAUSA : String read GetCAUSAValue write SetCAUSAValue; + property CAUSAIsNull : Boolean read GetCAUSAIsNull write SetCAUSAIsNull; + property OldCAUSA : String read GetOldCAUSAValue; + property OldCAUSAIsNull : Boolean read GetOldCAUSAIsNull; + property TIPO : String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull : Boolean read GetTIPOIsNull write SetTIPOIsNull; + property OldTIPO : String read GetOldTIPOValue; + property OldTIPOIsNull : Boolean read GetOldTIPOIsNull; + property ID_ALMACEN_RESERVA : Integer read GetID_ALMACEN_RESERVAValue write SetID_ALMACEN_RESERVAValue; + property ID_ALMACEN_RESERVAIsNull : Boolean read GetID_ALMACEN_RESERVAIsNull write SetID_ALMACEN_RESERVAIsNull; + property OldID_ALMACEN_RESERVA : Integer read GetOldID_ALMACEN_RESERVAValue; + property OldID_ALMACEN_RESERVAIsNull : Boolean read GetOldID_ALMACEN_RESERVAIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IDetalleReservasDelta } + IDetalleReservasDelta = interface(IDetalleReservas) + ['{3087502E-1C78-45AA-9164-988726607EE9}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldID_ALMACENValue : Integer; + function GetOldNOMBRE_ALMACENValue : String; + function GetOldFECHA_RESERVAValue : DateTime; + function GetOldCAUSA_RESERVAValue : String; + function GetOldID_ARTICULOValue : Integer; + function GetOldREFERENCIAValue : String; + function GetOldDESCRIPCIONValue : String; + function GetOldFAMILIAValue : String; + function GetOldUNIDAD_MEDIDAValue : String; + function GetOldFABRICANTEValue : String; + function GetOldREFERENCIA_FABRValue : String; + function GetOldCANTIDADValue : Currency; + function GetOldID_ALMACEN_RESERVAValue : Integer; + function GetOldNOMBRE_ALMACEN_RESERVAValue : String; + function GetOldID_EMPRESA_ALMACEN_RESERVAValue : Integer; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_ALMACEN : Integer read GetOldID_ALMACENValue; + property OldNOMBRE_ALMACEN : String read GetOldNOMBRE_ALMACENValue; + property OldFECHA_RESERVA : DateTime read GetOldFECHA_RESERVAValue; + property OldCAUSA_RESERVA : String read GetOldCAUSA_RESERVAValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldFAMILIA : String read GetOldFAMILIAValue; + property OldUNIDAD_MEDIDA : String read GetOldUNIDAD_MEDIDAValue; + property OldFABRICANTE : String read GetOldFABRICANTEValue; + property OldREFERENCIA_FABR : String read GetOldREFERENCIA_FABRValue; + property OldCANTIDAD : Currency read GetOldCANTIDADValue; + property OldID_ALMACEN_RESERVA : Integer read GetOldID_ALMACEN_RESERVAValue; + property OldNOMBRE_ALMACEN_RESERVA : String read GetOldNOMBRE_ALMACEN_RESERVAValue; + property OldID_EMPRESA_ALMACEN_RESERVA : Integer read GetOldID_EMPRESA_ALMACEN_RESERVAValue; + end; + + { TDetalleReservasBusinessProcessorRules } + TDetalleReservasBusinessProcessorRules = class(TDABusinessProcessorRules, IDetalleReservas, IDetalleReservasDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetID_ALMACENValue: Integer; virtual; + function GetID_ALMACENIsNull: Boolean; virtual; + function GetOldID_ALMACENValue: Integer; virtual; + function GetOldID_ALMACENIsNull: Boolean; virtual; + procedure SetID_ALMACENValue(const aValue: Integer); virtual; + procedure SetID_ALMACENIsNull(const aValue: Boolean); virtual; + function GetNOMBRE_ALMACENValue: String; virtual; + function GetNOMBRE_ALMACENIsNull: Boolean; virtual; + function GetOldNOMBRE_ALMACENValue: String; virtual; + function GetOldNOMBRE_ALMACENIsNull: Boolean; virtual; + procedure SetNOMBRE_ALMACENValue(const aValue: String); virtual; + procedure SetNOMBRE_ALMACENIsNull(const aValue: Boolean); virtual; + function GetFECHA_RESERVAValue: DateTime; virtual; + function GetFECHA_RESERVAIsNull: Boolean; virtual; + function GetOldFECHA_RESERVAValue: DateTime; virtual; + function GetOldFECHA_RESERVAIsNull: Boolean; virtual; + procedure SetFECHA_RESERVAValue(const aValue: DateTime); virtual; + procedure SetFECHA_RESERVAIsNull(const aValue: Boolean); virtual; + function GetCAUSA_RESERVAValue: String; virtual; + function GetCAUSA_RESERVAIsNull: Boolean; virtual; + function GetOldCAUSA_RESERVAValue: String; virtual; + function GetOldCAUSA_RESERVAIsNull: Boolean; virtual; + procedure SetCAUSA_RESERVAValue(const aValue: String); virtual; + procedure SetCAUSA_RESERVAIsNull(const aValue: Boolean); virtual; + function GetID_ARTICULOValue: Integer; virtual; + function GetID_ARTICULOIsNull: Boolean; virtual; + function GetOldID_ARTICULOValue: Integer; virtual; + function GetOldID_ARTICULOIsNull: Boolean; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + function GetFAMILIAValue: String; virtual; + function GetFAMILIAIsNull: Boolean; virtual; + function GetOldFAMILIAValue: String; virtual; + function GetOldFAMILIAIsNull: Boolean; virtual; + procedure SetFAMILIAValue(const aValue: String); virtual; + procedure SetFAMILIAIsNull(const aValue: Boolean); virtual; + function GetUNIDAD_MEDIDAValue: String; virtual; + function GetUNIDAD_MEDIDAIsNull: Boolean; virtual; + function GetOldUNIDAD_MEDIDAValue: String; virtual; + function GetOldUNIDAD_MEDIDAIsNull: Boolean; virtual; + procedure SetUNIDAD_MEDIDAValue(const aValue: String); virtual; + procedure SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); virtual; + function GetFABRICANTEValue: String; virtual; + function GetFABRICANTEIsNull: Boolean; virtual; + function GetOldFABRICANTEValue: String; virtual; + function GetOldFABRICANTEIsNull: Boolean; virtual; + procedure SetFABRICANTEValue(const aValue: String); virtual; + procedure SetFABRICANTEIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_FABRValue: String; virtual; + function GetREFERENCIA_FABRIsNull: Boolean; virtual; + function GetOldREFERENCIA_FABRValue: String; virtual; + function GetOldREFERENCIA_FABRIsNull: Boolean; virtual; + procedure SetREFERENCIA_FABRValue(const aValue: String); virtual; + procedure SetREFERENCIA_FABRIsNull(const aValue: Boolean); virtual; + function GetCANTIDADValue: Currency; virtual; + function GetCANTIDADIsNull: Boolean; virtual; + function GetOldCANTIDADValue: Currency; virtual; + function GetOldCANTIDADIsNull: Boolean; virtual; + procedure SetCANTIDADValue(const aValue: Currency); virtual; + procedure SetCANTIDADIsNull(const aValue: Boolean); virtual; + function GetID_ALMACEN_RESERVAValue: Integer; virtual; + function GetID_ALMACEN_RESERVAIsNull: Boolean; virtual; + function GetOldID_ALMACEN_RESERVAValue: Integer; virtual; + function GetOldID_ALMACEN_RESERVAIsNull: Boolean; virtual; + procedure SetID_ALMACEN_RESERVAValue(const aValue: Integer); virtual; + procedure SetID_ALMACEN_RESERVAIsNull(const aValue: Boolean); virtual; + function GetNOMBRE_ALMACEN_RESERVAValue: String; virtual; + function GetNOMBRE_ALMACEN_RESERVAIsNull: Boolean; virtual; + function GetOldNOMBRE_ALMACEN_RESERVAValue: String; virtual; + function GetOldNOMBRE_ALMACEN_RESERVAIsNull: Boolean; virtual; + procedure SetNOMBRE_ALMACEN_RESERVAValue(const aValue: String); virtual; + procedure SetNOMBRE_ALMACEN_RESERVAIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESA_ALMACEN_RESERVAValue: Integer; virtual; + function GetID_EMPRESA_ALMACEN_RESERVAIsNull: Boolean; virtual; + function GetOldID_EMPRESA_ALMACEN_RESERVAValue: Integer; virtual; + function GetOldID_EMPRESA_ALMACEN_RESERVAIsNull: Boolean; virtual; + procedure SetID_EMPRESA_ALMACEN_RESERVAValue(const aValue: Integer); virtual; + procedure SetID_EMPRESA_ALMACEN_RESERVAIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull : Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_EMPRESAIsNull : Boolean read GetOldID_EMPRESAIsNull; + property ID_ALMACEN : Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property ID_ALMACENIsNull : Boolean read GetID_ALMACENIsNull write SetID_ALMACENIsNull; + property OldID_ALMACEN : Integer read GetOldID_ALMACENValue; + property OldID_ALMACENIsNull : Boolean read GetOldID_ALMACENIsNull; + property NOMBRE_ALMACEN : String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property NOMBRE_ALMACENIsNull : Boolean read GetNOMBRE_ALMACENIsNull write SetNOMBRE_ALMACENIsNull; + property OldNOMBRE_ALMACEN : String read GetOldNOMBRE_ALMACENValue; + property OldNOMBRE_ALMACENIsNull : Boolean read GetOldNOMBRE_ALMACENIsNull; + property FECHA_RESERVA : DateTime read GetFECHA_RESERVAValue write SetFECHA_RESERVAValue; + property FECHA_RESERVAIsNull : Boolean read GetFECHA_RESERVAIsNull write SetFECHA_RESERVAIsNull; + property OldFECHA_RESERVA : DateTime read GetOldFECHA_RESERVAValue; + property OldFECHA_RESERVAIsNull : Boolean read GetOldFECHA_RESERVAIsNull; + property CAUSA_RESERVA : String read GetCAUSA_RESERVAValue write SetCAUSA_RESERVAValue; + property CAUSA_RESERVAIsNull : Boolean read GetCAUSA_RESERVAIsNull write SetCAUSA_RESERVAIsNull; + property OldCAUSA_RESERVA : String read GetOldCAUSA_RESERVAValue; + property OldCAUSA_RESERVAIsNull : Boolean read GetOldCAUSA_RESERVAIsNull; + property ID_ARTICULO : Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull : Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldID_ARTICULOIsNull : Boolean read GetOldID_ARTICULOIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull : Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldDESCRIPCIONIsNull : Boolean read GetOldDESCRIPCIONIsNull; + property FAMILIA : String read GetFAMILIAValue write SetFAMILIAValue; + property FAMILIAIsNull : Boolean read GetFAMILIAIsNull write SetFAMILIAIsNull; + property OldFAMILIA : String read GetOldFAMILIAValue; + property OldFAMILIAIsNull : Boolean read GetOldFAMILIAIsNull; + property UNIDAD_MEDIDA : String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue; + property UNIDAD_MEDIDAIsNull : Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull; + property OldUNIDAD_MEDIDA : String read GetOldUNIDAD_MEDIDAValue; + property OldUNIDAD_MEDIDAIsNull : Boolean read GetOldUNIDAD_MEDIDAIsNull; + property FABRICANTE : String read GetFABRICANTEValue write SetFABRICANTEValue; + property FABRICANTEIsNull : Boolean read GetFABRICANTEIsNull write SetFABRICANTEIsNull; + property OldFABRICANTE : String read GetOldFABRICANTEValue; + property OldFABRICANTEIsNull : Boolean read GetOldFABRICANTEIsNull; + property REFERENCIA_FABR : String read GetREFERENCIA_FABRValue write SetREFERENCIA_FABRValue; + property REFERENCIA_FABRIsNull : Boolean read GetREFERENCIA_FABRIsNull write SetREFERENCIA_FABRIsNull; + property OldREFERENCIA_FABR : String read GetOldREFERENCIA_FABRValue; + property OldREFERENCIA_FABRIsNull : Boolean read GetOldREFERENCIA_FABRIsNull; + property CANTIDAD : Currency read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDADIsNull : Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; + property OldCANTIDAD : Currency read GetOldCANTIDADValue; + property OldCANTIDADIsNull : Boolean read GetOldCANTIDADIsNull; + property ID_ALMACEN_RESERVA : Integer read GetID_ALMACEN_RESERVAValue write SetID_ALMACEN_RESERVAValue; + property ID_ALMACEN_RESERVAIsNull : Boolean read GetID_ALMACEN_RESERVAIsNull write SetID_ALMACEN_RESERVAIsNull; + property OldID_ALMACEN_RESERVA : Integer read GetOldID_ALMACEN_RESERVAValue; + property OldID_ALMACEN_RESERVAIsNull : Boolean read GetOldID_ALMACEN_RESERVAIsNull; + property NOMBRE_ALMACEN_RESERVA : String read GetNOMBRE_ALMACEN_RESERVAValue write SetNOMBRE_ALMACEN_RESERVAValue; + property NOMBRE_ALMACEN_RESERVAIsNull : Boolean read GetNOMBRE_ALMACEN_RESERVAIsNull write SetNOMBRE_ALMACEN_RESERVAIsNull; + property OldNOMBRE_ALMACEN_RESERVA : String read GetOldNOMBRE_ALMACEN_RESERVAValue; + property OldNOMBRE_ALMACEN_RESERVAIsNull : Boolean read GetOldNOMBRE_ALMACEN_RESERVAIsNull; + property ID_EMPRESA_ALMACEN_RESERVA : Integer read GetID_EMPRESA_ALMACEN_RESERVAValue write SetID_EMPRESA_ALMACEN_RESERVAValue; + property ID_EMPRESA_ALMACEN_RESERVAIsNull : Boolean read GetID_EMPRESA_ALMACEN_RESERVAIsNull write SetID_EMPRESA_ALMACEN_RESERVAIsNull; + property OldID_EMPRESA_ALMACEN_RESERVA : Integer read GetOldID_EMPRESA_ALMACEN_RESERVAValue; + property OldID_EMPRESA_ALMACEN_RESERVAIsNull : Boolean read GetOldID_EMPRESA_ALMACEN_RESERVAIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers, uDAInterfaces; + +{ TInventarioBusinessProcessorRules } +constructor TInventarioBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TInventarioBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TInventarioBusinessProcessorRules.GetID_ALMACENValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioID_ALMACEN]; +end; + +function TInventarioBusinessProcessorRules.GetID_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioID_ALMACEN]); +end; + +function TInventarioBusinessProcessorRules.GetOldID_ALMACENValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioID_ALMACEN]; +end; + +function TInventarioBusinessProcessorRules.GetOldID_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioID_ALMACEN]); +end; + +procedure TInventarioBusinessProcessorRules.SetID_ALMACENValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioID_ALMACEN] := aValue; +end; + +procedure TInventarioBusinessProcessorRules.SetID_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioID_ALMACEN] := Null; +end; + +function TInventarioBusinessProcessorRules.GetID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioID_ARTICULO]; +end; + +function TInventarioBusinessProcessorRules.GetID_ARTICULOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioID_ARTICULO]); +end; + +function TInventarioBusinessProcessorRules.GetOldID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioID_ARTICULO]; +end; + +function TInventarioBusinessProcessorRules.GetOldID_ARTICULOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioID_ARTICULO]); +end; + +procedure TInventarioBusinessProcessorRules.SetID_ARTICULOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioID_ARTICULO] := aValue; +end; + +procedure TInventarioBusinessProcessorRules.SetID_ARTICULOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioID_ARTICULO] := Null; +end; + +function TInventarioBusinessProcessorRules.GetALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioALMACEN]; +end; + +function TInventarioBusinessProcessorRules.GetALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioALMACEN]); +end; + +function TInventarioBusinessProcessorRules.GetOldALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioALMACEN]; +end; + +function TInventarioBusinessProcessorRules.GetOldALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioALMACEN]); +end; + +procedure TInventarioBusinessProcessorRules.SetALMACENValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioALMACEN] := aValue; +end; + +procedure TInventarioBusinessProcessorRules.SetALMACENIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioALMACEN] := Null; +end; + +function TInventarioBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioID_EMPRESA]; +end; + +function TInventarioBusinessProcessorRules.GetID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioID_EMPRESA]); +end; + +function TInventarioBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioID_EMPRESA]; +end; + +function TInventarioBusinessProcessorRules.GetOldID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioID_EMPRESA]); +end; + +procedure TInventarioBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioID_EMPRESA] := aValue; +end; + +procedure TInventarioBusinessProcessorRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioID_EMPRESA] := Null; +end; + +function TInventarioBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioREFERENCIA]; +end; + +function TInventarioBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioREFERENCIA]); +end; + +function TInventarioBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioREFERENCIA]; +end; + +function TInventarioBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioREFERENCIA]); +end; + +procedure TInventarioBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioREFERENCIA] := aValue; +end; + +procedure TInventarioBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioREFERENCIA] := Null; +end; + +function TInventarioBusinessProcessorRules.GetFAMILIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioFAMILIA]; +end; + +function TInventarioBusinessProcessorRules.GetFAMILIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioFAMILIA]); +end; + +function TInventarioBusinessProcessorRules.GetOldFAMILIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioFAMILIA]; +end; + +function TInventarioBusinessProcessorRules.GetOldFAMILIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioFAMILIA]); +end; + +procedure TInventarioBusinessProcessorRules.SetFAMILIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioFAMILIA] := aValue; +end; + +procedure TInventarioBusinessProcessorRules.SetFAMILIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioFAMILIA] := Null; +end; + +function TInventarioBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioDESCRIPCION]; +end; + +function TInventarioBusinessProcessorRules.GetDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioDESCRIPCION]); +end; + +function TInventarioBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioDESCRIPCION]; +end; + +function TInventarioBusinessProcessorRules.GetOldDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioDESCRIPCION]); +end; + +procedure TInventarioBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioDESCRIPCION] := aValue; +end; + +procedure TInventarioBusinessProcessorRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioDESCRIPCION] := Null; +end; + +function TInventarioBusinessProcessorRules.GetUNIDAD_MEDIDAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioUNIDAD_MEDIDA]; +end; + +function TInventarioBusinessProcessorRules.GetUNIDAD_MEDIDAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioUNIDAD_MEDIDA]); +end; + +function TInventarioBusinessProcessorRules.GetOldUNIDAD_MEDIDAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioUNIDAD_MEDIDA]; +end; + +function TInventarioBusinessProcessorRules.GetOldUNIDAD_MEDIDAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioUNIDAD_MEDIDA]); +end; + +procedure TInventarioBusinessProcessorRules.SetUNIDAD_MEDIDAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioUNIDAD_MEDIDA] := aValue; +end; + +procedure TInventarioBusinessProcessorRules.SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioUNIDAD_MEDIDA] := Null; +end; + +function TInventarioBusinessProcessorRules.GetSTOCKValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioSTOCK]; +end; + +function TInventarioBusinessProcessorRules.GetSTOCKIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioSTOCK]); +end; + +function TInventarioBusinessProcessorRules.GetOldSTOCKValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioSTOCK]; +end; + +function TInventarioBusinessProcessorRules.GetOldSTOCKIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioSTOCK]); +end; + +procedure TInventarioBusinessProcessorRules.SetSTOCKValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioSTOCK] := aValue; +end; + +procedure TInventarioBusinessProcessorRules.SetSTOCKIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioSTOCK] := Null; +end; + +function TInventarioBusinessProcessorRules.GetUNIDADES_ALMACENValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioUNIDADES_ALMACEN]; +end; + +function TInventarioBusinessProcessorRules.GetUNIDADES_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioUNIDADES_ALMACEN]); +end; + +function TInventarioBusinessProcessorRules.GetOldUNIDADES_ALMACENValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioUNIDADES_ALMACEN]; +end; + +function TInventarioBusinessProcessorRules.GetOldUNIDADES_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioUNIDADES_ALMACEN]); +end; + +procedure TInventarioBusinessProcessorRules.SetUNIDADES_ALMACENValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioUNIDADES_ALMACEN] := aValue; +end; + +procedure TInventarioBusinessProcessorRules.SetUNIDADES_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioUNIDADES_ALMACEN] := Null; +end; + +function TInventarioBusinessProcessorRules.GetRESERVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioRESERVA]; +end; + +function TInventarioBusinessProcessorRules.GetRESERVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioRESERVA]); +end; + +function TInventarioBusinessProcessorRules.GetOldRESERVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioRESERVA]; +end; + +function TInventarioBusinessProcessorRules.GetOldRESERVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioRESERVA]); +end; + +procedure TInventarioBusinessProcessorRules.SetRESERVAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioRESERVA] := aValue; +end; + +procedure TInventarioBusinessProcessorRules.SetRESERVAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioRESERVA] := Null; +end; + +function TInventarioBusinessProcessorRules.GetPENDIENTE_RECEPCIONValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioPENDIENTE_RECEPCION]; +end; + +function TInventarioBusinessProcessorRules.GetPENDIENTE_RECEPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioPENDIENTE_RECEPCION]); +end; + +function TInventarioBusinessProcessorRules.GetOldPENDIENTE_RECEPCIONValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioPENDIENTE_RECEPCION]; +end; + +function TInventarioBusinessProcessorRules.GetOldPENDIENTE_RECEPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioPENDIENTE_RECEPCION]); +end; + +procedure TInventarioBusinessProcessorRules.SetPENDIENTE_RECEPCIONValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioPENDIENTE_RECEPCION] := aValue; +end; + +procedure TInventarioBusinessProcessorRules.SetPENDIENTE_RECEPCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioPENDIENTE_RECEPCION] := Null; +end; + +function TInventarioBusinessProcessorRules.GetTIPO_ALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioTIPO_ALMACEN]; +end; + +function TInventarioBusinessProcessorRules.GetTIPO_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioTIPO_ALMACEN]); +end; + +function TInventarioBusinessProcessorRules.GetOldTIPO_ALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioTIPO_ALMACEN]; +end; + +function TInventarioBusinessProcessorRules.GetOldTIPO_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioTIPO_ALMACEN]); +end; + +procedure TInventarioBusinessProcessorRules.SetTIPO_ALMACENValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioTIPO_ALMACEN] := aValue; +end; + +procedure TInventarioBusinessProcessorRules.SetTIPO_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioTIPO_ALMACEN] := Null; +end; + +function TInventarioBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioID]; +end; + +function TInventarioBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioID]); +end; + +function TInventarioBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioID]; +end; + +function TInventarioBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioID]); +end; + +procedure TInventarioBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioID] := aValue; +end; + +procedure TInventarioBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioID] := Null; +end; + +function TInventarioBusinessProcessorRules.GetCANTIDADValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioCANTIDAD]; +end; + +function TInventarioBusinessProcessorRules.GetCANTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioCANTIDAD]); +end; + +function TInventarioBusinessProcessorRules.GetOldCANTIDADValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioCANTIDAD]; +end; + +function TInventarioBusinessProcessorRules.GetOldCANTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioCANTIDAD]); +end; + +procedure TInventarioBusinessProcessorRules.SetCANTIDADValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioCANTIDAD] := aValue; +end; + +procedure TInventarioBusinessProcessorRules.SetCANTIDADIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioCANTIDAD] := Null; +end; + +function TInventarioBusinessProcessorRules.GetFECHA_MOVIMIENTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioFECHA_MOVIMIENTO]; +end; + +function TInventarioBusinessProcessorRules.GetFECHA_MOVIMIENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioFECHA_MOVIMIENTO]); +end; + +function TInventarioBusinessProcessorRules.GetOldFECHA_MOVIMIENTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioFECHA_MOVIMIENTO]; +end; + +function TInventarioBusinessProcessorRules.GetOldFECHA_MOVIMIENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioFECHA_MOVIMIENTO]); +end; + +procedure TInventarioBusinessProcessorRules.SetFECHA_MOVIMIENTOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioFECHA_MOVIMIENTO] := aValue; +end; + +procedure TInventarioBusinessProcessorRules.SetFECHA_MOVIMIENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioFECHA_MOVIMIENTO] := Null; +end; + +function TInventarioBusinessProcessorRules.GetCAUSAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioCAUSA]; +end; + +function TInventarioBusinessProcessorRules.GetCAUSAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioCAUSA]); +end; + +function TInventarioBusinessProcessorRules.GetOldCAUSAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioCAUSA]; +end; + +function TInventarioBusinessProcessorRules.GetOldCAUSAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioCAUSA]); +end; + +procedure TInventarioBusinessProcessorRules.SetCAUSAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioCAUSA] := aValue; +end; + +procedure TInventarioBusinessProcessorRules.SetCAUSAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioCAUSA] := Null; +end; + +function TInventarioBusinessProcessorRules.GetTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioTIPO]; +end; + +function TInventarioBusinessProcessorRules.GetTIPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioTIPO]); +end; + +function TInventarioBusinessProcessorRules.GetOldTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioTIPO]; +end; + +function TInventarioBusinessProcessorRules.GetOldTIPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioTIPO]); +end; + +procedure TInventarioBusinessProcessorRules.SetTIPOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioTIPO] := aValue; +end; + +procedure TInventarioBusinessProcessorRules.SetTIPOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioTIPO] := Null; +end; + +function TInventarioBusinessProcessorRules.GetID_ALMACEN_RESERVAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioID_ALMACEN_RESERVA]; +end; + +function TInventarioBusinessProcessorRules.GetID_ALMACEN_RESERVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioID_ALMACEN_RESERVA]); +end; + +function TInventarioBusinessProcessorRules.GetOldID_ALMACEN_RESERVAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioID_ALMACEN_RESERVA]; +end; + +function TInventarioBusinessProcessorRules.GetOldID_ALMACEN_RESERVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_InventarioID_ALMACEN_RESERVA]); +end; + +procedure TInventarioBusinessProcessorRules.SetID_ALMACEN_RESERVAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioID_ALMACEN_RESERVA] := aValue; +end; + +procedure TInventarioBusinessProcessorRules.SetID_ALMACEN_RESERVAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_InventarioID_ALMACEN_RESERVA] := Null; +end; + + +{ TDetalleReservasBusinessProcessorRules } +constructor TDetalleReservasBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TDetalleReservasBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TDetalleReservasBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasID]; +end; + +function TDetalleReservasBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasID]); +end; + +function TDetalleReservasBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasID]; +end; + +function TDetalleReservasBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasID]); +end; + +procedure TDetalleReservasBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasID] := aValue; +end; + +procedure TDetalleReservasBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasID] := Null; +end; + +function TDetalleReservasBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasID_EMPRESA]; +end; + +function TDetalleReservasBusinessProcessorRules.GetID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasID_EMPRESA]); +end; + +function TDetalleReservasBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasID_EMPRESA]; +end; + +function TDetalleReservasBusinessProcessorRules.GetOldID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasID_EMPRESA]); +end; + +procedure TDetalleReservasBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasID_EMPRESA] := aValue; +end; + +procedure TDetalleReservasBusinessProcessorRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasID_EMPRESA] := Null; +end; + +function TDetalleReservasBusinessProcessorRules.GetID_ALMACENValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasID_ALMACEN]; +end; + +function TDetalleReservasBusinessProcessorRules.GetID_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasID_ALMACEN]); +end; + +function TDetalleReservasBusinessProcessorRules.GetOldID_ALMACENValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasID_ALMACEN]; +end; + +function TDetalleReservasBusinessProcessorRules.GetOldID_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasID_ALMACEN]); +end; + +procedure TDetalleReservasBusinessProcessorRules.SetID_ALMACENValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasID_ALMACEN] := aValue; +end; + +procedure TDetalleReservasBusinessProcessorRules.SetID_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasID_ALMACEN] := Null; +end; + +function TDetalleReservasBusinessProcessorRules.GetNOMBRE_ALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasNOMBRE_ALMACEN]; +end; + +function TDetalleReservasBusinessProcessorRules.GetNOMBRE_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasNOMBRE_ALMACEN]); +end; + +function TDetalleReservasBusinessProcessorRules.GetOldNOMBRE_ALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasNOMBRE_ALMACEN]; +end; + +function TDetalleReservasBusinessProcessorRules.GetOldNOMBRE_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasNOMBRE_ALMACEN]); +end; + +procedure TDetalleReservasBusinessProcessorRules.SetNOMBRE_ALMACENValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasNOMBRE_ALMACEN] := aValue; +end; + +procedure TDetalleReservasBusinessProcessorRules.SetNOMBRE_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasNOMBRE_ALMACEN] := Null; +end; + +function TDetalleReservasBusinessProcessorRules.GetFECHA_RESERVAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasFECHA_RESERVA]; +end; + +function TDetalleReservasBusinessProcessorRules.GetFECHA_RESERVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasFECHA_RESERVA]); +end; + +function TDetalleReservasBusinessProcessorRules.GetOldFECHA_RESERVAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasFECHA_RESERVA]; +end; + +function TDetalleReservasBusinessProcessorRules.GetOldFECHA_RESERVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasFECHA_RESERVA]); +end; + +procedure TDetalleReservasBusinessProcessorRules.SetFECHA_RESERVAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasFECHA_RESERVA] := aValue; +end; + +procedure TDetalleReservasBusinessProcessorRules.SetFECHA_RESERVAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasFECHA_RESERVA] := Null; +end; + +function TDetalleReservasBusinessProcessorRules.GetCAUSA_RESERVAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasCAUSA_RESERVA]; +end; + +function TDetalleReservasBusinessProcessorRules.GetCAUSA_RESERVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasCAUSA_RESERVA]); +end; + +function TDetalleReservasBusinessProcessorRules.GetOldCAUSA_RESERVAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasCAUSA_RESERVA]; +end; + +function TDetalleReservasBusinessProcessorRules.GetOldCAUSA_RESERVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasCAUSA_RESERVA]); +end; + +procedure TDetalleReservasBusinessProcessorRules.SetCAUSA_RESERVAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasCAUSA_RESERVA] := aValue; +end; + +procedure TDetalleReservasBusinessProcessorRules.SetCAUSA_RESERVAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasCAUSA_RESERVA] := Null; +end; + +function TDetalleReservasBusinessProcessorRules.GetID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasID_ARTICULO]; +end; + +function TDetalleReservasBusinessProcessorRules.GetID_ARTICULOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasID_ARTICULO]); +end; + +function TDetalleReservasBusinessProcessorRules.GetOldID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasID_ARTICULO]; +end; + +function TDetalleReservasBusinessProcessorRules.GetOldID_ARTICULOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasID_ARTICULO]); +end; + +procedure TDetalleReservasBusinessProcessorRules.SetID_ARTICULOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasID_ARTICULO] := aValue; +end; + +procedure TDetalleReservasBusinessProcessorRules.SetID_ARTICULOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasID_ARTICULO] := Null; +end; + +function TDetalleReservasBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasREFERENCIA]; +end; + +function TDetalleReservasBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasREFERENCIA]); +end; + +function TDetalleReservasBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasREFERENCIA]; +end; + +function TDetalleReservasBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasREFERENCIA]); +end; + +procedure TDetalleReservasBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasREFERENCIA] := aValue; +end; + +procedure TDetalleReservasBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasREFERENCIA] := Null; +end; + +function TDetalleReservasBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasDESCRIPCION]; +end; + +function TDetalleReservasBusinessProcessorRules.GetDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasDESCRIPCION]); +end; + +function TDetalleReservasBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasDESCRIPCION]; +end; + +function TDetalleReservasBusinessProcessorRules.GetOldDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasDESCRIPCION]); +end; + +procedure TDetalleReservasBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasDESCRIPCION] := aValue; +end; + +procedure TDetalleReservasBusinessProcessorRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasDESCRIPCION] := Null; +end; + +function TDetalleReservasBusinessProcessorRules.GetFAMILIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasFAMILIA]; +end; + +function TDetalleReservasBusinessProcessorRules.GetFAMILIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasFAMILIA]); +end; + +function TDetalleReservasBusinessProcessorRules.GetOldFAMILIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasFAMILIA]; +end; + +function TDetalleReservasBusinessProcessorRules.GetOldFAMILIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasFAMILIA]); +end; + +procedure TDetalleReservasBusinessProcessorRules.SetFAMILIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasFAMILIA] := aValue; +end; + +procedure TDetalleReservasBusinessProcessorRules.SetFAMILIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasFAMILIA] := Null; +end; + +function TDetalleReservasBusinessProcessorRules.GetUNIDAD_MEDIDAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasUNIDAD_MEDIDA]; +end; + +function TDetalleReservasBusinessProcessorRules.GetUNIDAD_MEDIDAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasUNIDAD_MEDIDA]); +end; + +function TDetalleReservasBusinessProcessorRules.GetOldUNIDAD_MEDIDAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasUNIDAD_MEDIDA]; +end; + +function TDetalleReservasBusinessProcessorRules.GetOldUNIDAD_MEDIDAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasUNIDAD_MEDIDA]); +end; + +procedure TDetalleReservasBusinessProcessorRules.SetUNIDAD_MEDIDAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasUNIDAD_MEDIDA] := aValue; +end; + +procedure TDetalleReservasBusinessProcessorRules.SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasUNIDAD_MEDIDA] := Null; +end; + +function TDetalleReservasBusinessProcessorRules.GetFABRICANTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasFABRICANTE]; +end; + +function TDetalleReservasBusinessProcessorRules.GetFABRICANTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasFABRICANTE]); +end; + +function TDetalleReservasBusinessProcessorRules.GetOldFABRICANTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasFABRICANTE]; +end; + +function TDetalleReservasBusinessProcessorRules.GetOldFABRICANTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasFABRICANTE]); +end; + +procedure TDetalleReservasBusinessProcessorRules.SetFABRICANTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasFABRICANTE] := aValue; +end; + +procedure TDetalleReservasBusinessProcessorRules.SetFABRICANTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasFABRICANTE] := Null; +end; + +function TDetalleReservasBusinessProcessorRules.GetREFERENCIA_FABRValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasREFERENCIA_FABR]; +end; + +function TDetalleReservasBusinessProcessorRules.GetREFERENCIA_FABRIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasREFERENCIA_FABR]); +end; + +function TDetalleReservasBusinessProcessorRules.GetOldREFERENCIA_FABRValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasREFERENCIA_FABR]; +end; + +function TDetalleReservasBusinessProcessorRules.GetOldREFERENCIA_FABRIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasREFERENCIA_FABR]); +end; + +procedure TDetalleReservasBusinessProcessorRules.SetREFERENCIA_FABRValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasREFERENCIA_FABR] := aValue; +end; + +procedure TDetalleReservasBusinessProcessorRules.SetREFERENCIA_FABRIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasREFERENCIA_FABR] := Null; +end; + +function TDetalleReservasBusinessProcessorRules.GetCANTIDADValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasCANTIDAD]; +end; + +function TDetalleReservasBusinessProcessorRules.GetCANTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasCANTIDAD]); +end; + +function TDetalleReservasBusinessProcessorRules.GetOldCANTIDADValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasCANTIDAD]; +end; + +function TDetalleReservasBusinessProcessorRules.GetOldCANTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasCANTIDAD]); +end; + +procedure TDetalleReservasBusinessProcessorRules.SetCANTIDADValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasCANTIDAD] := aValue; +end; + +procedure TDetalleReservasBusinessProcessorRules.SetCANTIDADIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasCANTIDAD] := Null; +end; + +function TDetalleReservasBusinessProcessorRules.GetID_ALMACEN_RESERVAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasID_ALMACEN_RESERVA]; +end; + +function TDetalleReservasBusinessProcessorRules.GetID_ALMACEN_RESERVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasID_ALMACEN_RESERVA]); +end; + +function TDetalleReservasBusinessProcessorRules.GetOldID_ALMACEN_RESERVAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasID_ALMACEN_RESERVA]; +end; + +function TDetalleReservasBusinessProcessorRules.GetOldID_ALMACEN_RESERVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasID_ALMACEN_RESERVA]); +end; + +procedure TDetalleReservasBusinessProcessorRules.SetID_ALMACEN_RESERVAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasID_ALMACEN_RESERVA] := aValue; +end; + +procedure TDetalleReservasBusinessProcessorRules.SetID_ALMACEN_RESERVAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasID_ALMACEN_RESERVA] := Null; +end; + +function TDetalleReservasBusinessProcessorRules.GetNOMBRE_ALMACEN_RESERVAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasNOMBRE_ALMACEN_RESERVA]; +end; + +function TDetalleReservasBusinessProcessorRules.GetNOMBRE_ALMACEN_RESERVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasNOMBRE_ALMACEN_RESERVA]); +end; + +function TDetalleReservasBusinessProcessorRules.GetOldNOMBRE_ALMACEN_RESERVAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasNOMBRE_ALMACEN_RESERVA]; +end; + +function TDetalleReservasBusinessProcessorRules.GetOldNOMBRE_ALMACEN_RESERVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasNOMBRE_ALMACEN_RESERVA]); +end; + +procedure TDetalleReservasBusinessProcessorRules.SetNOMBRE_ALMACEN_RESERVAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasNOMBRE_ALMACEN_RESERVA] := aValue; +end; + +procedure TDetalleReservasBusinessProcessorRules.SetNOMBRE_ALMACEN_RESERVAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasNOMBRE_ALMACEN_RESERVA] := Null; +end; + +function TDetalleReservasBusinessProcessorRules.GetID_EMPRESA_ALMACEN_RESERVAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasID_EMPRESA_ALMACEN_RESERVA]; +end; + +function TDetalleReservasBusinessProcessorRules.GetID_EMPRESA_ALMACEN_RESERVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasID_EMPRESA_ALMACEN_RESERVA]); +end; + +function TDetalleReservasBusinessProcessorRules.GetOldID_EMPRESA_ALMACEN_RESERVAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasID_EMPRESA_ALMACEN_RESERVA]; +end; + +function TDetalleReservasBusinessProcessorRules.GetOldID_EMPRESA_ALMACEN_RESERVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasID_EMPRESA_ALMACEN_RESERVA]); +end; + +procedure TDetalleReservasBusinessProcessorRules.SetID_EMPRESA_ALMACEN_RESERVAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasID_EMPRESA_ALMACEN_RESERVA] := aValue; +end; + +procedure TDetalleReservasBusinessProcessorRules.SetID_EMPRESA_ALMACEN_RESERVAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasID_EMPRESA_ALMACEN_RESERVA] := Null; +end; + + +initialization + RegisterBusinessProcessorRules(RID_InventarioDelta, TInventarioBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_DetalleReservasDelta, TDetalleReservasBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Inventario/Model/uBizInventario.dcu b/Source/Modulos/Inventario/Model/uBizInventario.dcu new file mode 100644 index 0000000..1e43eb5 Binary files /dev/null and b/Source/Modulos/Inventario/Model/uBizInventario.dcu differ diff --git a/Source/Modulos/Inventario/Model/uBizInventario.pas b/Source/Modulos/Inventario/Model/uBizInventario.pas new file mode 100644 index 0000000..6e503d3 --- /dev/null +++ b/Source/Modulos/Inventario/Model/uBizInventario.pas @@ -0,0 +1,208 @@ +unit uBizInventario; + +interface + +uses + uDAInterfaces, uDADataTable, schInventarioClient_Intf, + uBizArticulos, uDBSelectionListUtils; + +const + BIZ_CLIENT_INVENTARIO = 'Client.Inventario'; + BIZ_CLIENT_DETALLE_RESERVAS_INV = 'Client.DetallesReservasInv'; + + CTE_INV_ALMACEN = 'ALMACEN'; + CTE_INV_OBRA = 'OBRA'; + + CTE_TIPO_ENTRADA = 'E'; + CTE_TIPO_SALIDA = 'S'; + CTE_TIPO_RESERVA = 'R'; + +type + TEnumTipoMovimiento = (tEntradaLibre, + tSalidaLibre, + tTraslado, + tReserva, + tEntradaPedidoProveedor, + tSalidaAlbaranCliente); + + IBizDetalleReservas = interface(IDetalleReservas) + ['{7E718670-DDC1-411B-B8DF-A28B81F9B8C3}'] + end; + + IBizInventario = interface(IInventario) + ['{12051CDB-9BB1-43C5-AC89-181A27A35513}'] + function GetIDAlmacenOrigen: Integer; + procedure SetIDAlmacenOrigen(const Value: Integer); + property IDAlmacenOrigen: Integer read GetIDAlmacenOrigen write SetIDAlmacenOrigen; + + function GetIDAlmacenDestino: Integer; + procedure SetIDAlmacenDestino(const Value: Integer); + property IDAlmacenDestino: Integer read GetIDAlmacenDestino write SetIDAlmacenDestino; + + function GetTipo: TEnumTipoMovimiento; + procedure SetTipo(const Value: TEnumTipoMovimiento); + property TipoMovimiento: TEnumTipoMovimiento read GetTipo write SetTipo; + end; + + TBizDetalleReservas = class(TDetalleReservasDataTableRules, IBizDetalleReservas, ISeleccionable) + protected + FSeleccionableInterface : ISeleccionable; + public + property SeleccionableInterface : ISeleccionable read FSeleccionableInterface + write FSeleccionableInterface implements ISeleccionable; + + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + end; + + TBizInventario = class(TInventarioDataTableRules, IBizInventario, ISeleccionable) + private + FIDAlmacenOrigen : Integer; + FIDAlmacenDestino : Integer; + FTipoMovimiento : TEnumTipoMovimiento; + function GetIDAlmacenOrigen: Integer; + procedure SetIDAlmacenOrigen(const Value: Integer); + function GetIDAlmacenDestino: Integer; + procedure SetIDAlmacenDestino(const Value: Integer); + function GetTipo: TEnumTipoMovimiento; + procedure SetTipo(const Value: TEnumTipoMovimiento); + protected + FSeleccionableInterface : ISeleccionable; + procedure OnNewRecord(Sender: TDADataTable); override; + procedure OnCalcFields(Sender: TDADataTable); override; + procedure BeforeOpen(Sender: TDADataTable); override; + procedure AfterOpen(Sender: TDADataTable); override; + + + public + property IDAlmacenOrigen: Integer read GetIDAlmacenOrigen write SetIDAlmacenOrigen; + property IDAlmacenDestino: Integer read GetIDAlmacenDestino write SetIDAlmacenDestino; + property TipoMovimiento: TEnumTipoMovimiento read GetTipo write SetTipo; + property SeleccionableInterface : ISeleccionable read FSeleccionableInterface + write FSeleccionableInterface implements ISeleccionable; + + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + end; + +implementation + +uses + Dialogs, uDataTableUtils, SysUtils; + +{ TBizInventario } + +procedure TBizInventario.AfterOpen(Sender: TDADataTable); +var + Contador: Integer; +begin + inherited; +{ + DesconectarTabla(Sender); + Sender.First; + Contador := 1; + while not Sender.EOF do + begin + if not Sender.Editing then + Sender.Edit; + Sender.FieldByName('ID').AsInteger := Contador; + Inc(Contador); + Sender.Next; + end; + ConectarTabla(Sender); +} + +// +end; + +procedure TBizInventario.BeforeOpen(Sender: TDADataTable); +begin + inherited; +// +end; + +constructor TBizInventario.Create(aDataTable: TDADataTable); +begin + inherited; + IDAlmacenOrigen := -1; + IDAlmacenDestino := -1; + TipoMovimiento := tEntradaLibre; + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +destructor TBizInventario.Destroy; +begin + FSeleccionableInterface := NIL; + inherited; +end; + + +procedure TBizInventario.OnCalcFields(Sender: TDADataTable); +begin + inherited; +// ID := Self.DataTable.RecIDValue; +end; + +procedure TBizInventario.OnNewRecord(Sender: TDADataTable); +begin + inherited; + + //Este ID realmente se corresponder con el de la tabla de movimientos. + //ID := GetRecNo; // -1, -2, -3... + + //En funcin del tipo de operacin vamos a coger el IDAlmacenOrigen o IDAlamcenDetino + Case TipoMovimiento of + tEntradaLibre, tEntradaPedidoProveedor : ID_ALMACEN := IDAlmacenDestino; + tSalidaLibre, tSalidaAlbaranCliente, tTraslado, tReserva : ID_ALMACEN := IDAlmacenOrigen; + End; +end; + +function TBizInventario.GetIDAlmacenDestino: Integer; +begin + Result := FIDAlmacenDestino; +end; + +function TBizInventario.GetIDAlmacenOrigen: Integer; +begin + Result := FIDAlmacenOrigen; +end; + +function TBizInventario.GetTipo: TEnumTipoMovimiento; +begin + Result := FTipoMovimiento; +end; + +procedure TBizInventario.SetIDAlmacenDestino(const Value: Integer); +begin + FIDAlmacenDestino := Value; +end; + +procedure TBizInventario.SetIDAlmacenOrigen(const Value: Integer); +begin + FIDAlmacenOrigen := Value; +end; + +procedure TBizInventario.SetTipo(const Value: TEnumTipoMovimiento); +begin + FTipoMovimiento := Value; +end; + +{ TBizDetalleReservas } + +constructor TBizDetalleReservas.Create(aDataTable: TDADataTable); +begin + inherited; + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +destructor TBizDetalleReservas.Destroy; +begin + FSeleccionableInterface := NIL; + inherited; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_INVENTARIO, TBizInventario); + RegisterDataTableRules(BIZ_CLIENT_DETALLE_RESERVAS_INV, TBizDetalleReservas); + +end. diff --git a/Source/Modulos/Inventario/Plugin/Inventario_plugin.bdsproj b/Source/Modulos/Inventario/Plugin/Inventario_plugin.bdsproj new file mode 100644 index 0000000..e7e9eea --- /dev/null +++ b/Source/Modulos/Inventario/Plugin/Inventario_plugin.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + Inventario_plugin.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Inventario/Plugin/Inventario_plugin.dcu b/Source/Modulos/Inventario/Plugin/Inventario_plugin.dcu new file mode 100644 index 0000000..220d481 Binary files /dev/null and b/Source/Modulos/Inventario/Plugin/Inventario_plugin.dcu differ diff --git a/Source/Modulos/Inventario/Plugin/Inventario_plugin.dpk b/Source/Modulos/Inventario/Plugin/Inventario_plugin.dpk new file mode 100644 index 0000000..b10afb6 Binary files /dev/null and b/Source/Modulos/Inventario/Plugin/Inventario_plugin.dpk differ diff --git a/Source/Modulos/Inventario/Plugin/Inventario_plugin.dproj b/Source/Modulos/Inventario/Plugin/Inventario_plugin.dproj new file mode 100644 index 0000000..303b9c9 --- /dev/null +++ b/Source/Modulos/Inventario/Plugin/Inventario_plugin.dproj @@ -0,0 +1,540 @@ + + + + {232d2cbd-4910-4042-a617-8366cf356ec9} + Inventario_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Inventario_plugin.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + DEBUG + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Inventario_plugin.dpk + + + + + MainSource + + + + + + + + + diff --git a/Source/Modulos/Inventario/Plugin/Inventario_plugin.rc b/Source/Modulos/Inventario/Plugin/Inventario_plugin.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Inventario/Plugin/Inventario_plugin.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Inventario/Plugin/Inventario_plugin.res b/Source/Modulos/Inventario/Plugin/Inventario_plugin.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Inventario/Plugin/Inventario_plugin.res differ diff --git a/Source/Modulos/Inventario/Plugin/uPluginInventario.dcu b/Source/Modulos/Inventario/Plugin/uPluginInventario.dcu new file mode 100644 index 0000000..78aa30f Binary files /dev/null and b/Source/Modulos/Inventario/Plugin/uPluginInventario.dcu differ diff --git a/Source/Modulos/Inventario/Plugin/uPluginInventario.dfm b/Source/Modulos/Inventario/Plugin/uPluginInventario.dfm new file mode 100644 index 0000000..e6b5662 --- /dev/null +++ b/Source/Modulos/Inventario/Plugin/uPluginInventario.dfm @@ -0,0 +1,499 @@ +object PluginInventario: TPluginInventario + OldCreateOrder = True + DefaultAction = actInventarioAlmacenes + Description = 'Ventas' + ModuleMenu = MainMenu + ModuleName = 'Articulos' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software' + Version = '1.0.0' + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000021A4944415478DA + 63FCFFFF3F032D01E3F0B08091919162838E4930FCBFF28281210D6826880F73 + 38552C00196E5E94CBC0B47C32C3ECF3104BA866C19A1533FFDB38F833887B4A + 301C7FCEC000F20508A4FEFFCF48B10587E648FD57F339C7F0E2C50B86070F1E + 3088650430C08209C507737B73498E693581750C568193188EADCF637827320D + 6C494B4B0B43434100434AC9144C0B6272748832F8FFBFBF0CA797B5820D6778 + 52CDF0E1F95D866B4FC418A21A9818CEEC0962E86C3DCAA0AD6FC9905C3C9991 + 640B08197EFEF453865DBB1E305CBAF98D61CFC96BD82DF058E081D38226162B + 9C86FFFBF39BE1E2F957842D20C7E520C341F8F2E5F7A45B00321CA4F9ECAA2E + 062B535E9C86FFFDFD8BE1DA8DAFE40591F5FD120679A6AB0C1ACA1FC17C90E1 + 2A3547E0F20B0CABC196DCBCF797781FFCFBF30BE8AADF60BAABE72C83BBEA31 + 86B53BFF31AC3DCEC2707A57008A3CD817401FDC7ECC4C9C05C89A63332E327C + 78799F4159458AA1A34A011A2410F9ABD73E61F896E4207A3BD59741514D9B61 + 76BB248AE120FAFAAD1F0C8EA1AE0C3F3EBE65F8FDF513C3B7374F19264CBE8E + DB026CDE86198A6E382CCC2DDD8C500C2FC8D56448CA398B694154861A4986C3 + C2DCC45A05C5702E11698688884D981684272B321CD9728CA8E2021968A973A2 + 18CECACDC710ECBB04D382AB178F936C380C201BCEC12FCCE06D3711D5025071 + 3DA727E7FFF2557BC9B6041DA058404B40730B007F5332EF0A8D770200000000 + 49454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD25200000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000037E4944415478DAB5956B4814 + 5114C7FFB36EEEBABDD436B7759932821E3ECAB0A2829028E8F165890AFC9298 + 211551585F2C30CAB23765D1CB4F69D193D4D42CCD945EE6AED96E62BA695204 + 5AF6D834132D9D999DEE9DD8A1CB6EB6411DB8730E9C73FFBF33F70C77385996 + F13F8DA3006EDBF34924CE1C69D0A7FC0BD1DEFEEFF9C4652367FA2B2F202F8E + 0F4B090E31FCB5D8FA8410D8DA25CCE383149F7B7F017274566C9756E613C05A + 05109BF144760DE8FEE9D14C7CD388D725C99C0AF8D6DAEAB7D0B523598D2FBB + CEA9717689169956D1EF1E9AA3C6009A0ECDF15B3C50C74117A3C7F9C25C58AD + 56489204A7D3898E8E0E582C16444F9B0283C1408629C0E391D1D53B889A87F7 + 15C85F01F2AE9F41626222445144555515789E87DBED865EAF476CF454E88339 + 683480461B02FA613E78548BD4D4D4C0013BF6A5232D2D0D76BB1D3D3D3DE8EC + EC84FBB31B13A2A2305CAF832C0D82D370883099611A3B16A1A343E17AF90A01 + 03D66C5A8D654B96C2E170A0BBE70BFAFBFAA0D56A214822BABF74210832A441 + 01D3E2E2C19BCD88248BD30E0B1C80AE79D89A138B6164535070309658D729F9 + A6BA5B88B4F078F7B61D2DAD6D58959C8E83599BB160EE7C841B8D8101A8E9CC + 0B814FF73050B014B61527113739920CDC832B9923D5DAE3D531A8B8730FF667 + 2DA8ADBC88F819F17F06783C8050FF138262565C24EBFAAED1D890928286867C + 241D8D41D9ED6A027881FD97DAB1785CCDD000AFB8F7887E7D83C951110AA468 + 4F180328B97917B6672E1CBEFA6EE8CF948A4BE4E17104299DFF6A143089372A + F992EC310CA0A8F80E6A9DCD3856F0E1F700AF383D02A5CBC2C788881887C7B6 + 462C5A9EA08A8B928C5B078C0CE05AC16D7244CD3871C3ED1FE0151F1424459C + AE9BA5760630DE1CAE365079C4C4002E5D2B2380269C2EEDF605D08EBCC3F38A + 8B44A8BCEC0903B09842D59AEA63660670E17229EA1B5DBE8086FDB3FD8A535F + 59FE9401988CA3D4DA07272C0C20EF62319C4D2DBE00C7DE04BFE24A97954E06 + 600C1BA1D6D69CE20303D4ED9EE9575CE9B2BA8101848E32A879DBD90981016A + 77CE80D3D5AE0C9A0E50104432680102B93DFB3E7C55015131260295C8AD2A29 + 57B76C5FCE00366F3FA868F8007EF7C3518A37CE52FCC78FEF9155D8C1E4B698 + 931980263A43CDA9008EE330949557B864DA3DB5ECAC24A6F8F806C873E37FC6 + 14F0A6AD99C90704F8935108F5E9B9F011FA01A02CD0CAC3EA09BB0000000049 + 454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + object actInventarioAlmacenes: TAction + Category = 'Log'#237'stica' + Caption = 'Inventario almacenes' + ImageIndex = 0 + OnExecute = actInventarioAlmacenesExecute + end + object actInventarioObras: TAction + Category = 'Log'#237'stica' + Caption = 'Inventario obras' + ImageIndex = 1 + OnExecute = actInventarioObrasExecute + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object Logstica1: TMenuItem + Caption = 'Log'#237'stica' + object Inventario1: TMenuItem + Tag = 201 + Action = actInventarioAlmacenes + end + object Inventarioobras1: TMenuItem + Tag = 202 + Action = actInventarioObras + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016C4944415478DA + 63FCFFFF3F0325809114C53F0C18C0B6715C40E823DA009066D6A85C86DFCB26 + 332CBAC0C09006D54B9401276630FC7FA27489E1CDA5A50C4C259D6031B80173 + 7A72F006820ECF14063D9F290C2F6F6D635878C88C41AAA18181A927072C9752 + 3285116C404C8E0E56CD171664C0358370488B0CC3C563090C7F7FFD60686FDC + CFA0AD6FC90037C06381038AE60E060D0CCD2A357B1856B9CC61387BFC3EC3AE + 5D0F182EDDFCC680D505F86C06E10B679F631A00734104EB690683DFB10CE26A + 5E2836C3C062B34E862B573FE176C182A5DC0C09B1910C17E6B180359F3F1C03 + B7F9DFEF9F60FAFAED5FB85D70A7C5056E18B2E64B175EA37813AB0BC08A7F42 + 34FC816A84D90C72B663A82BC3CB4B4718264CBECE5090ABC99094731661003E + CD30676BA973C2357389483344446C82181099A6C27068E361822912E46C9866 + 566E3E8660DF251003AE5E3C4E547E40D6CCC12FCCE06D3711929E41862C5FB5 + 972843D0010013390BFAA171B8130000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000021C4944415478DAA5D35F4853 + 511C07F0EF316E2B9415697FAC07B382C8FE80084151180441113DD98B0F8938 + 154B0A6C0F850A428E15ACAD62222B7C0C8A0A378649890F1258CBB659C32D73 + 73AEF46EDC6E8A989BD7DD3F79AFECE665348A7E703887C3F97ECE39700E9124 + 09FF534406484B606FD1E26CF85FC36CFE967D0AB0B571482A293FFCC7858D15 + 1BE1F0A6D47E38781AC7CB0611F307A002D4171FA2B75BD450E90D2B8EEE1170 + A898C3149BC6EE224A837A26458CC50B7E03DF1D95E03C04BA831BC0994E4167 + EE475B9B0946E315582C5DD0EB2918EA6A55C06A7B88B7612E3760329BB130BF + 80197A1AC9541282C083883CB6EF2846537D3D9EF50EE406128904ECF61E545D + BC006189C5C0F37B601806573B9DB0DCEFC24F36921B104509CB6961A5F1087A + 7A41C2D578E42AC0F5079FE10F4561EB7EA105E4E26E9E05657AA98C33E1D452 + 1AE31F9CD0C52EA1DBA9C7B5BB9F108A7C83D13A927D82BCB1FD10274AC1B7BB + 94700699F0B9913F5DA3004D777C88C4E2D9805CED1D4FD1DC7C0EEBA9756A78 + 991711F1BBB1295EAB0086CE117CA599DCC0EA1556C3695EC0E4A81B858C4101 + 6A3ADE21CEFCD002B4FD04A8955D33C0DAB03C8E7DECC3B6D90605A86E1D063B + 37A705A66CC7E01A7C8F907706072A76653D673AF81A2737DF52803397FB9439 + 0D203F65B9EA2A77A26788CE024AA800ACE7DFC0D1CFE055B215248F5AF31B09 + F9ABDFF7B8AA4C5A8C1E4183F7891AF8058C8F6E7D811958CE0000000049454E + 44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000002DC4944415478DA + BDD56D4813711C07F0EF0D8CA9A483CD17A92403314A23B090AC101595C4C2C4 + 44D188A85E084E58B0DE050ACD8A28B0873781455492454649F4C2542A62B39C + 390D5B3EE47C983657CB6D3E6DBBEDAEDD9553DB6DCC73FA7DF3E37FFCEF3EF7 + FBDD7147D0340D8220B011698C12D04CADB0515E80D82890C1CA2E544130F610 + EA660B0E18416C18C860D2080AE9C522406581CE2E42CFA48DED34E4E0B3A63B + F4A1CC42F455C423F7B78BC5987C35CF42637287B6C3370F143429C9466C6C2C + 662C3F6193E721C6C83E46B418812B9E89860C7C7BBF924ECB4981C0A0C19381 + 4C6C4F8883D5320FA2B6086A2DCD62CCBE90802B31133907CAE54087BE084EA7 + 134AA512068321746F291766999E80DDA2C57165FC2ACC0BDEBD5E4DF3C11225 + 2E04C26AE5C7D87D6715B7091FF0842C654D586793D68B4D3BACA0DC0E584D53 + 5EACBBA3C4730324AE5E5623794FBA17E505068B69BB7FA0B575147D030B68FF + A4E307068B512E27FA7ACDC181F5AF8F7062FB6DCA8098EC66274E26D579C17E + DDFCFA3ABC58D306922E4455C1731F4CD356CC224B989B24F16DD8C91F7CD1D0 + 892F1373489D9BC467D13994ECBE141063EAE028F88F74F6A31C8A8C2DD077E8 + A0B70BD13C1E8EF73D83EC1857A674DB792F3E6C085B7B8734E5C6CB7B5DE852 + BD4355AA143DFA45A8668CB044EC459D228EB3B3A5F58831726D20833127979F + 526164488784181AE27829F2D3C4C8CC890E88519EF5A859C46FA48D35F99026 + 25A33C4B88ECC392E58BFEAB2E871D03236ECE0905052E75E626FF5ED4ED5C64 + EF7855076C5DDE33342E4056492EEC5633C8791B167E4DA2FE960EF2EA9D382D + EBF60FFA1B4F208C39F67D4A88F4BC541F2C421287B2B2166E902FC654BD692B + F61D4CF4C1C222A3507CF4912F585E99C41BA33CEBB1193176ED08F7C184D162 + 1464DCF0054BCF48F1E1952A88AFA9FF302FC8FF18134EB0BF57BD2E8C0917C6 + 09327FFC866B32FAF1D3F675A3FEB20ADCCC6C3AF807A51764BB0F88B8610000 + 000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD25200000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004B04944415478DABDD67B4C53 + 571C07F06FA13C04078C7729B025FE3343E24CF6401797CD2D4360C07C2C716E + 411424D3315444C76002C2D01133064A1C18916A79D95943794D60328A2F3694 + 97E29430E312B7964769850D37E8E3ECDE164EB94241B2E92FB93DE7DE73FAFB + DCF33BF726974708C1D30C1E0BF2783C58EDEE2606A67D6291BBCC64B13FD609 + 374880BFEB7FCA17BFCA0D925B5A0C6A4639FDEBF7C2D1A9B1C23B4E85183DF6 + 0ACF08F2B73512FDB8D672366261E53CF376A447BD85EA1E0D3ADB3B39FD1EC1 + 0914FDF512F22702A12B0A32839E776F3DB9723231B824C00CBAC65F23BD194B + 1FEB8F47BE3942FBBBF6ECE29C3F1AECF8542C49BD6D2EA9DBCEEB64F8E8CBC6 + 81F19F6796CF2ED054BAFDFB0F62EFDE38E8F57A747474A0A1A10A41411110FA + 78C3D9D9190E0E0E4C95B5301808D47F4EE078410E9252B221A9BB8CB446E65A + 49C8ECA05D803DA05E090C35635C1A0CBBAFCE53303A7A13743A1DC4E2B3080C + 5C06954A057B7B7BF83FE70F274707D8DB324FBC1560C55F04F68DFBB6301FCF + BF1886B40603D4A5A10B03939393111B1B8BE2E20A0885AE502A95500DAB98D5 + B9C0E5591738DADB81E827C0B3E2C1D34B002F0F0FB8306325156214F78730E0 + BB0B0323A33623644D30DADBDBA1197980876363E0F3F9D0EA75D03C50C31A04 + FA092D5C5CDD2110FAC24F20800F737474B7A158190C7559D8C24036121276C2 + 866F036B5B5BA4A5651AF74B5454001FA11F147FDCC79DDE3E7C917E88D96703 + B6C56CC2EB2B5E636E6E00C58A355097872F1CD41B0C4C32626C598C4D2CDAB7 + 88F3906D48D7D0F1ECAC143CB3D80622451086CB234CA07B7C1B51E5BF3A2F38 + 1BC6F6C5498ED8BE650BBABA4EE1839C00C8E5174DE3CCA1D5E99177380DD291 + 500C57BC3709C6B512D5B1956690CF743C5673404B187BAD2C653107BCD024A7 + 73D979F29FBA915EF70F86CFAC35811E3B2E93A18255B424F45D94CD8EB1773D + 1D95A43A73C086C6668AB1C7A56B37915EFB378625EB26C18F5BC8D0F1372C96 + 14193573AE507AC085037E5FDF4431B6AC57DB7B18F02103AE37819EB1723278 + E24DF3EA98954D0F7D7A95458C6D2B335D39604DDD0F14D3316D5BD72F385033 + 06D5771B26C198263278F26D0A884B9AE1E9E98D2BAD3790FCF9BA3931F65A55 + 961B07945537508C9DDF7EF30E53A4310C4D815E5B1BC98028C8881998F3D252 + 39053FDBB7764E8C6D6B0F7970C073B27AE33E4F95B5FB761F326423183AB771 + 128CAA2703A7838D189BA4BCBC858289891173625A9D010D87BD38E019691D67 + 0F7B7A7F45A6740883559126D03BB28E28C4A134B1447289820909E114D3E90C + D33073C92EE408386099A486626CB0E0971225066AB74E821F5593DFC56134B1 + F4EC150A7E1A1FCA59E1A3187BAD3957C801C5E555149B02B3CAEFA3FF7CAC09 + F4F9B092DC1585D1C4B2CA560A7E12173227C6B6178FFA714051A98CF3941BC1 + 927BE86FDC61027DD79790DEB28D10497FA4939C6087518C3FD65780FE6A0807 + 4C4CFD7AC69C83A7FAA06C8A378182D5B9A4DFC99D0E9E7EDF97AE30AB73625E + 30CF673307FC6D69D28C3982511514CD09932565C0E983D9D1CB2978B245312F + 98F4C21EAC586EEAB3E0B83066D67914E4FD0F1FC079DB61BCE9DD85B0988C7E + 083FCDF817B51A2205660D9F400000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + Left = 232 + Top = 80 + Bitmap = {} + end +end diff --git a/Source/Modulos/Inventario/Plugin/uPluginInventario.pas b/Source/Modulos/Inventario/Plugin/uPluginInventario.pas new file mode 100644 index 0000000..8ff11c4 --- /dev/null +++ b/Source/Modulos/Inventario/Plugin/uPluginInventario.pas @@ -0,0 +1,88 @@ +unit uPluginInventario; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCInventario = interface(IInterface) + ['{704855B9-1196-44FF-884E-3EF052533CD4}'] + end; + + TPluginInventario = class(TModuleController, IMCInventario) + actInventarioAlmacenes: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + Logstica1: TMenuItem; + Inventario1: TMenuItem; + actInventarioObras: TAction; + Inventarioobras1: TMenuItem; + procedure actInventarioAlmacenesExecute(Sender: TObject); + procedure actInventarioObrasExecute(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, + uInventarioController, uBizInventario, uInventarioViewRegister; + +function GetModule : TModuleController; +begin + Result := TPluginInventario.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +procedure TPluginInventario.actInventarioAlmacenesExecute(Sender: TObject); +var + AInventarioController : IInventarioController; + AInventario : IBizInventario; + +begin + AInventarioController := TInventarioController.Create; + AInventario := (AInventarioController.BuscarTodosAlmacenes as IBizInventario); + AInventarioController.VerTodos(AInventario, CTE_INV_ALMACEN); +end; + +procedure TPluginInventario.actInventarioObrasExecute(Sender: TObject); +var + AInventarioController : IInventarioController; + AInventario : IBizInventario; + +begin + AInventarioController := TInventarioController.Create; + AInventario := (AInventarioController.BuscarTodosObras as IBizInventario); + AInventarioController.VerTodos(AInventario, CTE_INV_OBRA); +end; + +constructor TPluginInventario.Create(AOwner: TComponent); +begin + inherited; + uInventarioViewRegister.RegisterViews; +end; + +destructor TPluginInventario.Destroy; +begin + uInventarioViewRegister.UnregisterViews; + inherited; +end; + +initialization + RegisterModuleClass(TPluginInventario); + +finalization + UnRegisterModuleClass(TPluginInventario); + +end. diff --git a/Source/Modulos/Inventario/Servidor/srvInventario_Impl.dcu b/Source/Modulos/Inventario/Servidor/srvInventario_Impl.dcu new file mode 100644 index 0000000..fe74cb5 Binary files /dev/null and b/Source/Modulos/Inventario/Servidor/srvInventario_Impl.dcu differ diff --git a/Source/Modulos/Inventario/Servidor/srvInventario_Impl.dfm b/Source/Modulos/Inventario/Servidor/srvInventario_Impl.dfm new file mode 100644 index 0000000..1a89e5b --- /dev/null +++ b/Source/Modulos/Inventario/Servidor/srvInventario_Impl.dfm @@ -0,0 +1,749 @@ +object srvInventario: TsrvInventario + OldCreateOrder = True + ConnectionName = 'IBX' + ServiceSchema = schInventario + ServiceDataStreamer = Bin2DataStreamer + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + Height = 168 + Width = 300 + object schInventario: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_INVENTARIO' + SQL = + 'SELECT'#10' ID_ALMACEN, ID_ARTICULO, NOMBRE as ALMACEN, ID_EMPRES' + + 'A, REFERENCIA, FAMILIA,'#10' DESCRIPCION, UNIDAD_MEDIDA,'#10'/* RE' + + 'FERENCIA_PROV as REFERENCIA_PROVEEDOR, PRECIO_NETO, COSTE_UNIDAD' + + 'ES, SE ELIMINAN LOS PRECIOS CON HASTA SABER QUE DECISIONES SE T' + + 'OMAN*/'#10' STOCK, UNIDADES_ALMACEN, RESERVA, PENDIENTE_RECEPCION' + + ', TIPO_ALMACEN,'#10' '#10' /*'#10' NO BORRAR YA QUE SIRVE PARA LAS ' + + 'ENTRADAS Y SALIDAS DE ALMACEN(TABLA MOVIMIENTOS)'#10' DEBERIA GEN' + + 'ERAR UNA TABLA DE MOVIMIENTOS INDEPENDIENTE DEL INVENTARIO PERO ' + + 'POR FALTA'#10' DE TIEMPO Y FIABILIDAD YA QUE AHORA FUNCIONA TODO,' + + ' CREAMOS ESTOS CAMPOS FICTICIOS'#10' */'#10#10' 0 as ID, 0 as CANTID' + + 'AD, current_date as FECHA_MOVIMIENTO, NULL as CAUSA, NULL as TIP' + + 'O,'#10' 0 as ID_ALMACEN_RESERVA'#10#10#10'FROM V_INVENTARIO'#10'where {where}' + + #10'ORDER BY ID_ARTICULO'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_ALMACEN' + TableField = 'ID_ALMACEN' + end + item + DatasetField = 'ID_ARTICULO' + TableField = 'ID_ARTICULO' + end + item + DatasetField = 'ALMACEN' + TableField = '' + SQLOrigin = 'ALMACEN' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'FAMILIA' + TableField = 'FAMILIA' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'UNIDAD_MEDIDA' + TableField = 'UNIDAD_MEDIDA' + end + item + DatasetField = 'STOCK' + TableField = 'STOCK' + end + item + DatasetField = 'UNIDADES_ALMACEN' + TableField = 'UNIDADES_ALMACEN' + end + item + DatasetField = 'RESERVA' + TableField = 'RESERVA' + end + item + DatasetField = 'PENDIENTE_RECEPCION' + TableField = 'PENDIENTE_RECEPCION' + end + item + DatasetField = 'TIPO_ALMACEN' + TableField = 'TIPO_ALMACEN' + end + item + DatasetField = 'ID' + TableField = '' + SQLOrigin = 'ID' + end + item + DatasetField = 'CANTIDAD' + TableField = '' + SQLOrigin = 'CANTIDAD' + end + item + DatasetField = 'FECHA_MOVIMIENTO' + TableField = '' + SQLOrigin = 'FECHA_MOVIMIENTO' + end + item + DatasetField = 'CAUSA' + TableField = '' + SQLOrigin = 'CAUSA' + end + item + DatasetField = 'TIPO' + TableField = '' + SQLOrigin = 'TIPO' + end + item + DatasetField = 'ID_ALMACEN_RESERVA' + TableField = '' + SQLOrigin = 'ID_ALMACEN_RESERVA' + end> + end> + Name = 'Inventario' + Fields = < + item + Name = 'ID_ALMACEN' + DataType = datInteger + DictionaryEntry = 'INVENTARIO_ID_ALMACEN' + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + DictionaryEntry = 'INVENTARIO_ID_ARTICULO' + end + item + Name = 'ALMACEN' + DataType = datString + Size = 255 + DictionaryEntry = 'INVENTARIO_ALMACEN' + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'INVENTARIO_ID_EMPRESA' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'INVENTARIO_REFERENCIA' + end + item + Name = 'FAMILIA' + DataType = datString + Size = 255 + DictionaryEntry = 'INVENTARIO_FAMILIA' + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DictionaryEntry = 'INVENTARIO_DESCRIPCION' + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'STOCK' + DataType = datFloat + DictionaryEntry = 'INVENTARIO_STOCK' + end + item + Name = 'UNIDADES_ALMACEN' + DataType = datFloat + DictionaryEntry = 'INVENTARIO_UNIDADES_ALMACEN' + end + item + Name = 'RESERVA' + DataType = datFloat + DictionaryEntry = 'INVENTARIO_RESERVA' + end + item + Name = 'PENDIENTE_RECEPCION' + DataType = datFloat + DictionaryEntry = 'INVENTARIO_PENDIENTE_RECEPCION' + end + item + Name = 'TIPO_ALMACEN' + DataType = datString + Size = 10 + end + item + Name = 'ID' + DataType = datInteger + DictionaryEntry = 'INVENTARIO_ID' + InPrimaryKey = True + end + item + Name = 'CANTIDAD' + DataType = datFloat + DictionaryEntry = 'INVENTARIO_CANTIDAD' + end + item + Name = 'FECHA_MOVIMIENTO' + DataType = datDateTime + DictionaryEntry = 'INVENTARIO_FECHA_MOVIMIENTO' + end + item + Name = 'CAUSA' + DataType = datString + Size = 255 + DictionaryEntry = 'INVENTARIO_CAUSA' + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + DictionaryEntry = 'INVENTARIO_TIPO' + end + item + Name = 'ID_ALMACEN_RESERVA' + DataType = datInteger + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_INV_DETALLE_RESERVAS' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'ID_ALMACEN' + TableField = 'ID_ALMACEN' + end + item + DatasetField = 'NOMBRE_ALMACEN' + TableField = 'NOMBRE_ALMACEN' + end + item + DatasetField = 'FECHA_RESERVA' + TableField = 'FECHA_RESERVA' + end + item + DatasetField = 'CAUSA_RESERVA' + TableField = 'CAUSA_RESERVA' + end + item + DatasetField = 'ID_ARTICULO' + TableField = 'ID_ARTICULO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'FAMILIA' + TableField = 'FAMILIA' + end + item + DatasetField = 'UNIDAD_MEDIDA' + TableField = 'UNIDAD_MEDIDA' + end + item + DatasetField = 'FABRICANTE' + TableField = 'FABRICANTE' + end + item + DatasetField = 'REFERENCIA_FABR' + TableField = 'REFERENCIA_FABR' + end + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'ID_ALMACEN_RESERVA' + TableField = 'ID_ALMACEN_RESERVA' + end + item + DatasetField = 'NOMBRE_ALMACEN_RESERVA' + TableField = 'NOMBRE_ALMACEN_RESERVA' + end + item + DatasetField = 'ID_EMPRESA_ALMACEN_RESERVA' + TableField = 'ID_EMPRESA_ALMACEN_RESERVA' + end> + end> + Name = 'DetalleReservas' + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + end + item + Name = 'NOMBRE_ALMACEN' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_RESERVA' + DataType = datDateTime + end + item + Name = 'CAUSA_RESERVA' + DataType = datString + Size = 2000 + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + end + item + Name = 'FAMILIA' + DataType = datString + Size = 255 + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'FABRICANTE' + DataType = datString + Size = 255 + end + item + Name = 'REFERENCIA_FABR' + DataType = datString + Size = 255 + end + item + Name = 'CANTIDAD' + DataType = datCurrency + end + item + Name = 'ID_ALMACEN_RESERVA' + DataType = datInteger + end + item + Name = 'NOMBRE_ALMACEN_RESERVA' + DataType = datString + Size = 255 + end + item + Name = 'ID_EMPRESA_ALMACEN_RESERVA' + DataType = datInteger + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'MOVIMIENTOS' + Name = 'IBX' + SQL = 'DELETE'#10' FROM'#10' MOVIMIENTOS'#10' WHERE'#10' (ID = :OLD_ID)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_Reservas' + end + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_MOVIMIENTOS_ID' + Value = '' + end + item + Name = 'ID_ALMACEN' + Value = '' + end + item + Name = 'ID_ARTICULO' + Value = '' + end + item + Name = 'FECHA_MOVIMIENTO' + Value = '' + end + item + Name = 'TIPO' + Value = '' + end + item + Name = 'CANTIDAD' + Value = '' + end + item + Name = 'CAUSA' + Value = '' + end + item + Name = 'ID_ALMACEN_RESERVA' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'MOVIMIENTOS' + SQL = + 'INSERT'#10' INTO MOVIMIENTOS'#10' (ID, ID_ALMACEN, ID_ARTICULO, FECH' + + 'A_MOVIMIENTO, TIPO, CANTIDAD, CAUSA, ID_ALMACEN_RESERVA)'#10' VALUE' + + 'S'#10' (:ID, :ID_ALMACEN, :ID_ARTICULO, :FECHA_MOVIMIENTO, :TIPO,' + + ' :CANTIDAD, :CAUSA, :ID_ALMACEN_RESERVA)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_Inventario' + end + item + Params = < + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'MOVIMIENTOS' + SQL = 'DELETE '#10' FROM'#10' MOVIMIENTOS'#10' WHERE'#10' (ID = :OLD_ID)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_Inventario' + end + item + Params = < + item + Name = 'ID' + Value = '' + end + item + Name = 'ID_ALMACEN' + Value = '' + end + item + Name = 'ID_ARTICULO' + Value = '' + end + item + Name = 'FECHA_MOVIMIENTO' + Value = '' + end + item + Name = 'TIPO' + Value = '' + end + item + Name = 'CANTIDAD' + Value = '' + end + item + Name = 'CAUSA' + Value = '' + end + item + Name = 'ID_ALMACEN_RESERVA' + Value = '' + end + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'MOVIMIENTOS' + SQL = + 'UPDATE MOVIMIENTOS'#10' SET '#10' ID = :ID,'#10' ID_ALMACEN = :ID_ALM' + + 'ACEN,'#10' ID_ARTICULO = :ID_ARTICULO,'#10' FECHA_MOVIMIENTO = :FE' + + 'CHA_MOVIMIENTO,'#10' TIPO = :TIPO,'#10' CANTIDAD = :CANTIDAD,'#10' ' + + 'CAUSA = :CAUSA,'#10' ID_ALMACEN_RESERVA = :ID_ALMACEN_RESERVA'#10' W' + + 'HERE'#10' (ID = :OLD_ID)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_Inventario' + end> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 40 + Top = 16 + end + object bpInventario: TDABusinessProcessor + Schema = schInventario + InsertCommandName = 'Insert_Inventario' + DeleteCommandName = 'Delete_Inventario' + UpdateCommandName = 'Update_Inventario' + ReferencedDataset = 'INVENTARIO' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 208 + Top = 16 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'INVENTARIO_ID_ALMACEN' + DataType = datInteger + DisplayLabel = 'ID_ALMACEN' + end + item + Name = 'INVENTARIO_ID_ARTICULO' + DataType = datInteger + DisplayLabel = 'ID_ARTICULO' + end + item + Name = 'INVENTARIO_ALMACEN' + DataType = datString + Size = 255 + DisplayLabel = 'ALMACEN' + end + item + Name = 'INVENTARIO_ID_EMPRESA' + DataType = datInteger + DisplayLabel = 'ID_EMPRESA' + end + item + Name = 'INVENTARIO_REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + DisplayLabel = 'REFERENCIA_CLIENTE' + end + item + Name = 'INVENTARIO_FAMILIA' + DataType = datString + Size = 255 + DisplayLabel = 'FAMILIA' + end + item + Name = 'INVENTARIO_DESCRIPCION' + DataType = datString + Size = 255 + DisplayLabel = 'DESCRIPCION' + end + item + Name = 'INVENTARIO_REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'REFERENCIA_PROVEEDOR' + end + item + Name = 'INVENTARIO_STOCK' + DataType = datFloat + DisplayLabel = 'Stock disponible' + end + item + Name = 'INVENTARIO_RESERVA' + DataType = datFloat + DisplayLabel = 'Reservado' + end + item + Name = 'INVENTARIO_PENDIENTE_RECEPCION' + DataType = datFloat + DisplayLabel = 'Pendiente de recibir' + end + item + Name = 'INVENTARIO_ID' + DataType = datInteger + ServerAutoRefresh = True + end + item + Name = 'INVENTARIO_CANTIDAD' + DataType = datFloat + end + item + Name = 'INVENTARIO_FECHA_MOVIMIENTO' + DataType = datDateTime + end + item + Name = 'INVENTARIO_CAUSA' + DataType = datString + Size = 255 + end + item + Name = 'INVENTARIO_TIPO' + DataType = datString + Size = 1 + end + item + Name = 'INVENTARIO_REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'INVENTARIO_REFERENCIA_PROV' + DataType = datString + Size = 255 + end + item + Name = 'INVENTARIO_UNIDADES_ALMACEN' + DataType = datFloat + DisplayLabel = 'U. Almac'#233'n' + end + item + Name = 'INVENTARIO_PRECIO_NETO' + DataType = datCurrency + DisplayLabel = 'Precio unidad' + Alignment = taRightJustify + end + item + Name = 'INVENTARIO_COSTE_UNIDADES' + DataType = datCurrency + DisplayLabel = 'Coste unidades' + Alignment = taRightJustify + end + item + Name = 'DETALLE_RESERVAS_INV_ID_ALB' + DataType = datInteger + DisplayLabel = 'IdAlbaran' + end + item + Name = 'DETALLE_RESERVAS_INV_REFERENCIA_ALB' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. albar'#225'n' + end + item + Name = 'DETALLE_RESERVAS_INV_SITUACION_ALB' + DataType = datString + Size = 9 + DisplayLabel = 'Situaci'#243'n' + end + item + Name = 'DETALLE_RESERVAS_INV_FECHA_PREVISTA_ENVIO_ALB' + DataType = datDateTime + DisplayLabel = 'Fecha prevista de envio' + end + item + Name = 'DETALLE_RESERVAS_INV_ID_ALMACEN_ALB' + DataType = datInteger + DisplayLabel = 'IdAlmac'#233'n' + end + item + Name = 'DETALLE_RESERVAS_INV_ALMACEN_ALB' + DataType = datString + Size = 255 + DisplayLabel = 'Almac'#233'n' + end + item + Name = 'DETALLE_RESERVAS_INV_ID_CLIENTE_ALB' + DataType = datInteger + DisplayLabel = 'IdCliente' + end + item + Name = 'DETALLE_RESERVAS_INV_CLIENTE_ALB' + DataType = datString + Size = 255 + DisplayLabel = 'Cliente' + end + item + Name = 'DETALLE_RESERVAS_INV_ID_ART' + DataType = datInteger + DisplayLabel = 'IdArticulo' + end + item + Name = 'DETALLE_RESERVAS_INV_FAMILIA_ART' + DataType = datString + Size = 255 + DisplayLabel = 'Familia' + end + item + Name = 'DETALLE_RESERVAS_INV_REFERENCIA_ART' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + end + item + Name = 'DETALLE_RESERVAS_INV_REFERENCIA_PROV_ART' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. proveedor' + end + item + Name = 'DETALLE_RESERVAS_INV_DESCRIPCION_ART' + DataType = datString + Size = 255 + DisplayLabel = 'Descripci'#243'n' + end + item + Name = 'DETALLE_RESERVAS_INV_CANTIDAD_ART' + DataType = datFloat + DisplayLabel = 'Reservado' + end + item + Name = 'DETALLE_RESERVAS_INV_ID_EMPRESA' + DataType = datInteger + end> + Left = 126 + Top = 14 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 40 + Top = 80 + end + object bpReservas: TDABusinessProcessor + Schema = schInventario + DeleteCommandName = 'Delete_Reservas' + ReferencedDataset = 'DetalleReservas' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 208 + Top = 72 + end +end diff --git a/Source/Modulos/Inventario/Servidor/srvInventario_Impl.pas b/Source/Modulos/Inventario/Servidor/srvInventario_Impl.pas new file mode 100644 index 0000000..b9612e5 --- /dev/null +++ b/Source/Modulos/Inventario/Servidor/srvInventario_Impl.pas @@ -0,0 +1,74 @@ +unit srvInventario_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} uDABusinessProcessor, uDABin2DataStreamer, uDADataStreamer, + uDAScriptingProvider, uDAClasses, + FactuGES_Intf, uDAInterfaces; + +type + { TsrvInventario } + TsrvInventario = class(TDataAbstractService, IsrvInventario) + bpInventario: TDABusinessProcessor; + Bin2DataStreamer: TDABin2DataStreamer; + bpReservas: TDABusinessProcessor; + schInventario: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceAfterGetDatasetData(const Dataset: IDADataset; + const IncludeSchema: Boolean; const MaxRecords: Integer); + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; + var aConnectionName: string); + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer, uDatabaseUtils, + schInventarioClient_Intf, uRestriccionesUsuarioUtils; + +procedure Create_srvInventario(out anInstance : IUnknown); +begin + anInstance := TsrvInventario.Create(NIL); +end; + +{ srvInventario } +procedure TsrvInventario.DARemoteServiceAfterGetDatasetData( + const Dataset: IDADataset; const IncludeSchema: Boolean; + const MaxRecords: Integer); +begin +{ + if DataSet.Name = nme_Inventario then + begin + { Aqu se asegura que el usuario slo accede a los Articulos + de las empresas a las que tiene permiso para acceder + filtrando DataSet por ID_EMPRESA. } +{ FiltrarAccesoUsuario(Session, Connection, schInventario, DataSet, fld_InventarioID_EMPRESA); + end; +} +end; + +procedure TsrvInventario.DataAbstractServiceBeforeAcquireConnection( + aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +initialization + TROClassFactory.Create('srvInventario', Create_srvInventario, TsrvInventario_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Inventario/Utiles/uInventarioUtils.dcu b/Source/Modulos/Inventario/Utiles/uInventarioUtils.dcu new file mode 100644 index 0000000..58dcc34 Binary files /dev/null and b/Source/Modulos/Inventario/Utiles/uInventarioUtils.dcu differ diff --git a/Source/Modulos/Inventario/Utiles/uInventarioUtils.dfm b/Source/Modulos/Inventario/Utiles/uInventarioUtils.dfm new file mode 100644 index 0000000..a436e48 --- /dev/null +++ b/Source/Modulos/Inventario/Utiles/uInventarioUtils.dfm @@ -0,0 +1,42 @@ +object dmInventarioUtils: TdmInventarioUtils + OldCreateOrder = False + Height = 203 + Width = 264 + object JsArticulosSinStock: TJSDialog + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000001F14944415478DABDD64D4B02 + 511406E03328F8270A83DA549BA09508B55082D6AD5A8414942615ADC2A0458B + C016D1A68D21951014F8075AF4014A1FB4B05A5442216119481018EA98033179 + 6F3A36E39DB9F74EE60151F1CC79668EBE83822CCBD0CA121078BFD8EEAABC3E + A2F4BA597A7A5733C77A1F22AB06CA9DCB4B60B379898DE5F2266C8FAFC0C40E + BDC7BF9F1198C09EE00B3E4855853C7E84E30EB01C4CC2F41EBDC73C581D8487 + 5D0D9141428F39F0D7203CEC61A411D4E9E1073583A05880F0AB470D1AF4F081 + EF6B0D83A0588470CE5F07293D7CE063004092548340AC9CBDB45007293DCC20 + 8A45386AD7EBC5C3502C683DACA02B96360EF5A01DDC2C3D4D0DBED1D9B31477 + F01178176863BA0D92AE943BF85590BA8D90CF07F31110D84183502390B68DAF + 93610E90126A22A8D9063BC810EA0690B08DD9F534C08D8F016408B50AD4D946 + E4AC031297B106943BF82AB0BA0D677094D83F37D6059E992D15CA1D7CF45357 + C0EA369C1B537838A942D173B8882715540105813DCFB558D4B681D687C0442A + 8BDF974A127ECEE74B60B55A20F5F4A6A06641D76136A36C63D79654402D56FA + 94401425C87D881895AFBD0237A8AD7E6F5246E0E9EDB32166FA0A8D4084A112 + 2B575A14CB18FCF3774802710434E518E856614D0389D517FAF977AD97C37F01 + 8DEE34ADAC6FE2EA02F65CB3A8E60000000049454E44AE426082} + Instruction.Text = 'Art'#237'culos sin stock' + CustomButtons = < + item + Caption = '&S'#237 + Value = 100 + ModalResult = 6 + end + item + Caption = '&No' + Value = 101 + end> + ButtonBar.Buttons = [] + MainIcon = tdiWarning + Left = 48 + Top = 24 + end +end diff --git a/Source/Modulos/Inventario/Utiles/uInventarioUtils.pas b/Source/Modulos/Inventario/Utiles/uInventarioUtils.pas new file mode 100644 index 0000000..5247941 --- /dev/null +++ b/Source/Modulos/Inventario/Utiles/uInventarioUtils.pas @@ -0,0 +1,45 @@ +unit uInventarioUtils; + +interface + +uses + SysUtils, Classes, JSDialog, pngimage; + +type + TdmInventarioUtils = class(TDataModule) + JsArticulosSinStock: TJSDialog; + private + { Private declarations } + public + { Public declarations } + end; + +function ShowConfirmMessage_ArticulosSinStock(AListaArticulos : TStringList): Integer; + +implementation + +{$R *.dfm} + +var + dmInventarioUtils: TdmInventarioUtils; + + +function ShowConfirmMessage_ArticulosSinStock(AListaArticulos : TStringList): Integer; +begin + dmInventarioUtils := TdmInventarioUtils.Create(nil); + try + with dmInventarioUtils.JsArticulosSinStock do + begin + Content.Add('Los siguientes artculos no disponen de stok suficiente en el almacn para realizar la salida. Desea continuar?'); + Content.Add(''); + Content.AddStrings(AListaArticulos); + Result := Execute; + end; + finally + FreeAndNIL(dmInventarioUtils); + end; +end; + + + +end. diff --git a/Source/Modulos/Inventario/Views/Inventario_view.bdsproj b/Source/Modulos/Inventario/Views/Inventario_view.bdsproj new file mode 100644 index 0000000..d16ab22 --- /dev/null +++ b/Source/Modulos/Inventario/Views/Inventario_view.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + Inventario_view.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Inventario/Views/Inventario_view.dcu b/Source/Modulos/Inventario/Views/Inventario_view.dcu new file mode 100644 index 0000000..e821a50 Binary files /dev/null and b/Source/Modulos/Inventario/Views/Inventario_view.dcu differ diff --git a/Source/Modulos/Inventario/Views/Inventario_view.dpk b/Source/Modulos/Inventario/Views/Inventario_view.dpk new file mode 100644 index 0000000..84b70c9 Binary files /dev/null and b/Source/Modulos/Inventario/Views/Inventario_view.dpk differ diff --git a/Source/Modulos/Inventario/Views/Inventario_view.dproj b/Source/Modulos/Inventario/Views/Inventario_view.dproj new file mode 100644 index 0000000..cb85a01 --- /dev/null +++ b/Source/Modulos/Inventario/Views/Inventario_view.dproj @@ -0,0 +1,579 @@ + + + + {4269f0a2-b81f-47f7-a014-f7f28bc5bb79} + Inventario_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Inventario_view.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Inventario_view.dpk + + + + + MainSource + + + + + + + +
fEditorDetalleReservas
+ TfEditorDetalleReservas +
+ +
fEditorElegirAlmacenObraOperacion
+
+ +
fEditorElegirArticulosAlmacen
+ TfEditorElegirArticulosAlmacen +
+ +
fEditorElegirArticulosCatalogo
+ TfEditorElegirArticulosInventario +
+ +
fEditorEntradaSalidaArticulos
+ TfEditorEntradaArticulosInventario +
+ +
fEditorInventario
+ TfEditorInventario +
+ + +
frViewDetalleReservas
+ TFrame +
+ +
frViewElegirArticulosCatalogo
+ TFrame +
+ +
frViewEntradaSalidaArticulos
+ TFrame +
+ +
frViewInventario
+ TFrame +
+
+
+ diff --git a/Source/Modulos/Inventario/Views/Inventario_view.rc b/Source/Modulos/Inventario/Views/Inventario_view.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Inventario/Views/Inventario_view.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Inventario/Views/Inventario_view.res b/Source/Modulos/Inventario/Views/Inventario_view.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Inventario/Views/Inventario_view.res differ diff --git a/Source/Modulos/Inventario/Views/uEditorDetalleReservas.dcu b/Source/Modulos/Inventario/Views/uEditorDetalleReservas.dcu new file mode 100644 index 0000000..2f0b593 Binary files /dev/null and b/Source/Modulos/Inventario/Views/uEditorDetalleReservas.dcu differ diff --git a/Source/Modulos/Inventario/Views/uEditorDetalleReservas.dfm b/Source/Modulos/Inventario/Views/uEditorDetalleReservas.dfm new file mode 100644 index 0000000..ddc0069 --- /dev/null +++ b/Source/Modulos/Inventario/Views/uEditorDetalleReservas.dfm @@ -0,0 +1,1851 @@ +inherited fEditorDetalleReservas: TfEditorDetalleReservas + Left = 381 + Top = 263 + Caption = 'Detalle de reservas en almac'#233'n' + ClientHeight = 540 + ClientWidth = 669 + ExplicitWidth = 677 + ExplicitHeight = 574 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 669 + Caption = 'Detalle de reservas en almac'#233'n' + ExplicitWidth = 669 + inherited Image1: TImage + Left = 642 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 520000000467414D410000AA11B57D14DC000001FF4944415478DA63FCFFFF3F + 032D0123C8822BA552254076371E75A584E475BA9FF5E0B3E0BF6A4B0D033B7B + 1686829F3FA731CC8E6D61485D8C5F3E67D53346BC16005D00560C07DFBF3330 + FCF8CE307D872103CBB654900184E449B000A4F9C33B303DFDA433A605D8E589 + B400A6F93D10FFF8C930FD6630AA05B8E589B0E0432F42F3870F1017BE4A4558 + 805F9E080B1E542334835D0834E05739C202FCF2F82D00A5A2E9CBE5B1A64190 + 01A054844F9E900525071EE24EE70EF20CA584E469920F184D8F63A8FF7FDA92 + 11AB05A4E6030E1B43862BEBCD510C6F5DF18F61F9A2890CFF2F1533E2B78040 + 3E8019BEFFE25F86DCCA49700B22E3F2C134B22564E5030E572BB0053A5EFD0C + FD451AF0480606D9FFC870533C1610990F38427DC8B480887C00329C58008A70 + 92F20128EC2737983038EA3313341C163F300B9C81E97C0FBE740ECA07B9F7D7 + 828366F73906865F7FFE83F14F10FD1B8AC162408FFF626058B2FC3C308D1F83 + 58402C008531C882ADA710863F387384E1C1E93A0605D326060E254BB0E1DF7F + FD6758BBF602F916AC3FF60FEEF263739CE1F20A81BBC186FFF8F98F61EB964B + E45BB0E2D05F9460B9B4D415C5F01FBFFF31ECDD79857C0BE6EFF9C3F0EB17C4 + F0E7E7D633BCBB398D8159229681432B1A68C95F863FFF18188EEDBB4A9E05A0 + 5494DB7086380DA45A00B644AF97680DA0CC06004618670C84C9DA7D00000000 + 49454E44AE426082} + ExplicitLeft = 603 + end + end + inherited TBXDock: TTBXDock + Width = 669 + ExplicitWidth = 669 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 501 + object TBXSeparatorItem84: TTBXSeparatorItem [6] + end + object TBXItem54: TTBXItem [7] + Caption = 'Trasladar' + DisplayMode = nbdmImageAndText + Enabled = False + ImageIndex = 23 + Visible = False + end + object TBXItem55: TTBXItem [9] + Caption = 'Recibir pedido' + DisplayMode = nbdmImageAndText + Enabled = False + ImageIndex = 24 + Visible = False + end + object TBXSeparatorItem17: TTBXSeparatorItem [10] + end + object TBXItem56: TTBXItem [11] + Caption = 'Liberar' + DisplayMode = nbdmImageAndText + ImageIndex = 26 + Visible = False + end + object TBXItem57: TTBXItem [12] + Caption = 'Reservar' + DisplayMode = nbdmImageAndText + ImageIndex = 25 + Visible = False + end + end + inherited tbxFiltro: TTBXToolbar + ExplicitWidth = 269 + inherited TBXItem37: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 669 + end + inherited TBXTMain2: TTBXToolbar + Left = 269 + DockPos = 264 + Visible = True + ExplicitLeft = 269 + ExplicitWidth = 209 + object TBXItem39: TTBXItem + Action = actTrasladarReservados + end + object TBXItem38: TTBXItem + Action = actCancelarReserva + end + end + end + inherited StatusBar: TJvStatusBar + Top = 521 + Width = 669 + ExplicitTop = 521 + ExplicitWidth = 669 + end + inline frViewDetalleReservas1: TfrViewDetalleReservas [3] + Left = 0 + Top = 102 + Width = 669 + Height = 419 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 102 + ExplicitWidth = 669 + ExplicitHeight = 419 + inherited cxGrid: TcxGrid + Width = 669 + Height = 250 + ExplicitWidth = 669 + ExplicitHeight = 250 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = '0 art'#237'culos' + Kind = skCount + end + item + Format = '0 art'#237'culos' + Kind = skCount + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = '0' + Kind = skSum + end + item + Format = '0' + Kind = skSum + end + item + Format = '0' + Kind = skSum + end + item + Format = '0' + Kind = skSum + end + item + Format = '0 Reservados' + Kind = skSum + end> + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 669 + ExplicitWidth = 669 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 669 + inherited dxLayoutControl1: TdxLayoutControl + Width = 669 + ExplicitWidth = 669 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 358 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 358 + end + inherited eLista: TcxComboBox + Left = 605 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 605 + ExplicitWidth = 20 + Width = 20 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 669 + ExplicitWidth = 669 + inherited tbxBotones: TTBXToolbar + Width = 659 + ExplicitWidth = 659 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 393 + ExplicitTop = 393 + ExplicitWidth = 669 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 669 + ExplicitWidth = 669 + inherited TBXToolbar1: TTBXToolbar + Width = 659 + ExplicitWidth = 659 + end + end + end + inherited pnlAlmacenes: TPanel + Width = 669 + ExplicitWidth = 669 + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39280.678861030090000000 + BuiltInReportLink = True + end + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewDetalleReservas1.cxGridView + HitTypes = [gvhtCell] + Index = 0 + end> + end + end + inherited EditorActionList: TActionList [4] + Left = 96 + Top = 112 + inherited actNuevo: TAction + Caption = '&Entrada' + Enabled = False + ImageIndex = 21 + Visible = False + end + inherited actModificar: TAction + Enabled = False + Visible = False + end + inherited actEliminar: TAction + Caption = 'Salida' + Enabled = False + ImageIndex = 22 + Visible = False + end + inherited actPrevisualizar: TAction + Visible = True + end + inherited actImprimir: TAction + Visible = True + end + inherited actDuplicar: TAction + Enabled = False + Visible = False + end + inherited actAnchoAuto: TAction + ImageIndex = 27 + end + object actCancelarReserva: TAction + Category = 'Reservas' + Caption = 'Cancelar reserva' + OnExecute = actCancelarReservaExecute + end + object actTrasladarReservados: TAction + Category = 'Reservas' + Caption = 'Trasladar al destino' + OnExecute = actTrasladarReservadosExecute + end + end + inherited SmallImages: TPngImageList [5] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000F54944415478DA + 6364C002AE56C8FC67201230E23240B9A106C2F9F18381E1C11D86799D1B1892 + E6638AE13700AA70F6256F06E6EDA91003D0C4701B50510256C870E32AC3EC5F + 651003A6638AE1362022006C0B0C800D28C714C369C0C1871404222901CB88AE + 089B66ED8E278CB8029691185BB296430DA82014880633FEFF38C180610BDC80 + 080281689C7EFDFFD99307197E2CB882620BCC006C01CB08D204E3E4C5AA30BC + FBF88DA1B07A39C3E42279B82D200370C602C8009046100069BEF7E42D985EBA + EC08C334CD16B038410340CE0681DC4C3786BB8FDF306CDB728E81E142065151 + 8C1188609A48CDD80D20413308000018D5C3DDD8008BA70000000049454E44AE + 426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000F64944415478DA + 63BC5A21F39F8148A0DDF184115D8C11648072430D84F7E30703C3833B0CF33A + 373024CDC714CB5A8ECF00A8C2D997BC1998B7A7420C4013C36D4045095821C3 + 8DAB0CB37F95410C988E2986DB808800B02D300036A01C530CA701071F121788 + F8C3808800C306700622C8005C518C1C9D380311660021D7E10C441403905C97 + DB070CB00B19A806600B44B80168AE5B705481E1ECC9837043F00614CC75D6D3 + B3E16279B12A0CEF3E7E6328AC5E0E3684A00120D7CDE5DB0DD6080220CDF79E + BC05D34B971D61202AAA8CD3AFFF073B1B087233DD18EE3E7EC3B06DCB39C22E + C00A0C6640A2969830C06900522C0000AF7FD7D8678509020000000049454E44 + AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000013A4944415478DA + 63BC5C22F99F8148A0D3FD8C115D8C1164806A4B0D84F7FD3B03C3FD3B0CB3DB + 3732A42EC614CB5985CF00A8C2E9177D1858B6A5420C4013C36D4075315821C3 + F5AB0CD37F95430C98852986DB80287FB02D300036A012530CA701071E121788 + F8C360D00422474704C3648D169C81C8A837EDFFFF4B598CA8064003B1B0EF21 + 8381990343F227179C81689872EDFF855307186086800DD8A33D1BACB9BB359A + 4158809B61D2C25B708D20C3E6F2ED81F3F3E2D518DE7EF8CA505ABD94A1BF48 + 9E81F1FFFFFF0C20678547DA320801352BC908830D01019041E7E768816D0569 + 040190E67B4FDE32BC03D22B971F861800760AD010376F630665395186E9D377 + 80C540DE81190072360864667A30DC7DF49A61D7D6B3606FC00D801902A29103 + 0923D4D1D4A018005340C8009458403780540000D999FD8911DCCCCA00000000 + 49454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B3A00000B3A01647F570D000001BD4944415478DA + 63FCFFFF3F03258011D980BE9612BCA615D5F43012342037D71F43E3D7774F18 + 0C6D0B18EE3F7989DD80E9FD4DC140F69AEF5F3F31A01B00D27C6A511543FAEC + 6F0C0F9EBEC269C0FFA4747E86A97D8FE106FCFEFE89E117107F7DF384E1EAB6 + 69A41900D2FCF5ED53207ECCF0FBDB6786FB2737820D282BCE866BCC2AAA67C4 + 6A40468A235C3388FEF6EE1983D9443FB8C61F277E33CC9BF911B701B1816A0C + 171FBC63B87DEB17C4A6F9220C160EEA0C2FD6453148042D633871E026C3B4C4 + 3760F15707E2310DD033146160F8FE9EC1D6E02D0323D00E75FBCD70DB2F6C30 + 61F05854043604047AF4B37FA018F0E9E33F861D5BFF337898DE62E0E7F9C3F0 + FFDF5F867FBF7E32FCF9FD83E1DF1F20FEFD9341283D98A1AED48FA1A97B13C8 + 002714030EEFFF0EB6DDCEF02DC3FFFFFF18FEFDFC01D5FC13A8F90758330AB8 + 9CCD0837202482176E3B2FC70F86FF7F7F31FCF985B01966C89FAF9F1996ADBA + F503A8DDAB6409C37EB801AA6A6C60DB6D749F8335FCFDF38BE12FD480FF6003 + 7E01BDF38BE1F1F51B0C07CFFFBE03D4AC8A120BDA4A9F19D8DEEC6160F97815 + 6FE6016A86DB8E62C0B773F5C4643E14CD1899891C000039F251E625517D8200 + 00000049454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001A94944415478DA + 8D925D28836114C7FF4FBEE246B9734BBB61B990C89512492925F9B6BB5D0817 + 98968FF21186250AADB69285D2848DB2A5AC854D44CBB7D096C495A4D078278F + BDCF986C5EAF53E7E2391FBF739E7F871C2AE229FE6952F52D098E111E20E969 + F7BF3C1EC07D099DCA04F95468ACCEF017E0B350B35F80F015B91F10141306B4 + 35B1429C1E43C329FD00AD3F962493E22156E2AB04C2C280A8FB0B5C1FD4929F + 808A4236E5CB18A0A51059CD524CE86B7E4C54CD7A611C69C5E3F51009006C57 + A1822D726D181DAF816DDF0B854CC936A03E2F560EB0BC75BA0337CE7E2228A2 + FA7912666D0E4A4B1A71681FF95E396D8B5695A7C2BED00597BD8F088A38F834 + 098B2E0795D58D705A4301DBCBDD38B7F5124111EB5DF3A277417733C9AF2236 + 8CC5E1D894210A48CE1FFE5D447E3A0F303ADEC0BD51B87737E1DAE944427A27 + A21333F1F24AA19F3900380708A5A197CCFF930718D6BDE0BC141BBADC402EB1 + C8020FF70EC3DC9138607A8D631BF0EE9CCA0B34BFF87CC974220ED0995F59F3 + ED9E1177671A44C457213AA98C01ACAB677F034415E44D08C0202943A290C8C8 + 98EC0F53DC14659A0322CE0000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001A44944415478DA + 63BC5C22F99F8148A0D3FD8C115D8C1164806A4B0D84F7FD3B03C3FD3B0CB3DB + 3732A42EC614CB5985CF00A8C2E9177D1858B6A5420C4013C36D4075315821C3 + F5AB0CD37F95430C980511D38AD361F8C0AF0A54C9C0C0CCCCC0C0FEEE36C3E3 + 4BD98CA80644F9836D8101B00195FE0CF6A53A0CF31666A2D8D8BEE237C38609 + 550C9F1FF732C20D38F01033C0D6FFAA66983C3593E1C0C5DF0C2571E56017FC + 07E290F24EB0FCBE25F50C4FCF7730E20CC4EEAF0B18B6CF7261080F2B62B87C + 7402C2C926C7FF3BC99C63B8FFFA29C3BDA36D8C3803B1EBCB02861DB35D18A2 + 638B18CEEF9BC0C88003E00CC4DC7B6B09A68BFF672C19B10662E1142186AB1B + CD091AA0EDD98F3D1041B6830CD870EC0FC3AF3FFF19EE9F39C270EF54038392 + 590303A7B225C38F9FFF19162EBDC4C0F0EB1803E3FFFF98291914502003561D + FACDF0EBF77F86C3B35DE172CA413B18BEFFFAC7B06AF515C2062CD9FB0BEC02 + 103EBFD81DAEF907106FDA788DB001B3B7FF046B7E767603C39B1BD319582563 + 1838B522C006ECDB7503BF01044310047019003644AF97A0216C6C5C4E003148 + 0E65624E21D60000000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage27' + Background = clWindow + end> + Left = 371 + Top = 160 + Bitmap = {} + end + inherited LargeImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001914944415478DA + 63FCFFFF3F032D0123CD2DC02571B542C61948EDC1A3D78590BC56FBE3BDF82C + F8AFDC50C3C0CE9E8E21F7F3E74C8679892D0C49F3F1CB672E7BCC88D702A00B + C08AE1E0C70F20FECE307B970103F3F654900184E449B000A4F9C33B8801A79C + 302DC02E4FA40530CD60037E32CCBE15846A016E79222CF83811A1F9C307880B + 5FA5202CC02F4F84050FEB119A6141F0AB0C61017E794682A968F62A79ACF220 + 0340A9089F3C210B9C0F3EC49DCEEDE5195C08C9E3CD07840031F904AB0F88C9 + C1DA1D4FF612994FB05A40D06559CB9F3012994FD02C3098F1FFAA470B032197 + 6158406C3E304EBFFEFFECC9830CFFCFA7E375198A0584F201C8509400761264 + E86CDFC0F0E304034E97A15840281F802CC88B554109A919AB8E311C3F749DE1 + C78667585D06B380503E41B1E0DAD3B70C2F3F7F6778F3E53758C1DB7BCF2196 + 4C3882E132A80504F309381FC02CD87FE30986E1938BE4B1BA0C640131790554 + 5B32C22216062CED34C1864FD36CC1E932503E20DA02F4640AA62F64909DC309 + 5B4025C3E116D0BA550100E46DEBE08B969D720000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000019B4944415478DA + 63FCFFFF3F032D0123C8826B95B2CE40F61E3CEA5C08C96B773CD98B2E08321B + 66C17FE5861A0676F6740C9D3F7FCE649897D8C290341FBF7CD6F2278C782DD0 + 6A7F0C560C073F7E00F17786D9BB0C1898B7A732642EC32F4F9A0520CD1FDE41 + 0C38E58469011679E22D8069061BF09361F6AD20540B70C81367C1C78908CD1F + 3E405CF82A0561011E79E22C78588FD00C0B825F65080BF0C813B400948A66AF + 92C79A0641068052113E794216381F7C883B9DDBCB33B81092A7381F60732121 + 40523E005970B54286608E47F60949F9006A01493E25291FC02CC0E5530E0F41 + 86699A842C2090CE312C40F2A9757F12C3D9930719182E64E0B180403A47B100 + 68B875B93B6A0438093274B66F805B42523E40B100EA53EBF64886BC581514B5 + 33561D63387EE83AD81292F2012875C02D80FAD47A7A36D8826B4FDF32BCFCFC + 9DE1CD97DF60F56FEF3D075BF2FF7C3A23C41646E292382C15C17CBAE0A802D8 + 82FD379E60188EE203122C40F1E95CBEDD908885024B3B4DB8E1287140AC0578 + 81C10C48E58E2D1551CD0224C3512CA025A0B90500E54149EFB4C64472000000 + 0049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001A44944415478DA + 63FCFFFF3F032D0123C8822BA552254076371E75A584E475BA9FF5E0B3E0BF6A + 4B0D033B7B1686829F3FA731CC8E6D61485D8C5F3E67D53346BC16005D00560C + 07DFBF3330FCF8CE307D872103CBB654900184E449B000A4F9C33B303DFDA433 + A605D8E589B400A6F93D10FFF8C930FD6630AA05B8E589B0E0432F42F3870F10 + 17BE4A4558805F9E080B1E542334835D0834E05739C202FCF2F82D00A5A2E9CB + E5B1A6419001A054844F9E900525071EE24EE70EF20CA584E447F3C130C90786 + 29D7184ED42CC5990F18F5A6FDFF7F298B11B70578D2F95CBE3D600D27B227E3 + CC074007FCBF70EA0003B22544E58385471419F2E2D518262DBC85221E6F731F + 2C870C9C9D85187ADBD7C12D8159E00C4CE77BB0190E7239C8F0AB4FDE3068CB + 88C0C593B267314CD66881CB2383E92B8E309C3E7C0D6C0923BE1A0D14A6F3A6 + A6810D7FF9F93B58ECCDE75F0C6FEF3D871B000A169803406A40F2200053C348 + A8CA0459E211EF0CD70403E816ECBBFE18C370823E40B6C4D4560BAC0919C02C + 00452C0CC0D4A1C40131006409CC5052D4106D01CC00421660CD07B404001FE5 + 4BB30B8819120000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B1300000B1301009A9C18000002E14944415478DA + B5946B4814611486DF15C3122BB444ED8F901A921678438824C140D3CD322BD0 + 2828BB295678234249A8ED87844461A969125844264A60E18F42A2D032B520FF + C836EB6AEDEAEE9A3BB2E67AD99969BED976749A1DD92C0F0C73E6CC37EFF3CE + 39DF8C8AE338AC66A8960206CBB6A4F0A757CBACDF1B7DD3F8FA5F005C84A602 + 3E3E05B2857373F7D0705C83C216A3EA9F00BC43414C0CBB1D98B5A3B63306DE + 2FCFFC67002F1EA0DE8C358E4964A5C6624F5C30E2B60762477880C71001507B + EB5A369FB72619EB200288737A122167A33165A6C1B21C36F8AD85971710B9D5 + 1F17737622373D7C5910D17601B82C358789FBF54E005D2D88C3CA1F342DC022 + 6B8EC23ECB203323163D031446862DB85BBE1B27D4912A8F00A7CE6D84B6B2CA + 09D0972F8A933399C1FC65F46B7DD1F96E04599909E8EEA760B5D0787E3B0D09 + 51412A8F016417D53E0975EB880CF94560033E7E99C0A103F16869EF45727C08 + 52437BC53505C5952A45C00CA5C7E3EB4F157B7AACE208DA74E75156DD83C307 + 1385560D53663CD424637F74236ACAAA50FA08CA00E569B1589FE42BA4ECEF5D + 575EACE6DBA483D16485C9F003B46D5EA8339FF33D03580D34DA3BA4ADBDD41C + 842B4519E23501B8628CDF69C6510B6E641BC45A7ED1559522A0A97E0A3151DE + 880DD349EAFE398928294CC3E09011B69F738BE2DF2CD057B7F02FEB80B6FB2D + DE7C5AF85AD2CC45B805B8DCE7658EBAE99603FEB9BB507A619F00D1EA4DD053 + 2618EEB40AF7A64606F1ACC33CCB2F4DE7015D6E014AEE8900E75800C738B0E9 + 640AC2B6054BC4596601D487F7827B7ED8116E67A0E47EA938C91902C94BC744 + 5D9B286EFB3E24BAE7015D7200C3A0A9715AE6DE9D38C9C13A447172ADEBEB13 + DDCB77D1693F58C76D32F79E8A4F8F5112F77240DE3A343DB04BDCFF8DB8D960 + 95B89701C8CF4E74CF7F58E441978033778A0A07A9B3CEFAF4F8B04B5CE25E06 + 2085044E8395C69FEE65809981CA158BF321732F01AC66AC3AE0176A11A2EF01 + B8EA320000000049454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001FE4944415478DA + 63FCFFFF3F032D0123C8822BA552254076371E75A584E475BA9FF5E0B3E0BF6A + 4B0D033B7B1686829F3FA731CC8E6D61485D8C5F3E67D53346BC16005D00560C + 07DFBF3330FCF8CE307D872103CBB654900184E449B000A4F9C33B303DFDA433 + A605D8E589B400A6F93D10FFF8C930FD6630AA05B8E589B0E0432F42F3870F10 + 17BE4A4558805F9E080B1E542334835D0834E05739C202FCF2F82D00A5A2E9CB + E5B1A6419001A054844F9E900525071EE24EE70EF20CA584E469920F184D8E63 + A8FF7FC69211AB05A4E6030E6B43862B1BCC510C6F5DF18F61F9A2890CFF2F15 + 33E2B780403E8019BEFFE25F86DCCA49700B22E3F2C134B22564E5030E172BB0 + 053A5EFD0CFD451AF0480606D9FFC808533C1610990F38427CC8B480887C0032 + 9C58008A7092F20128EC27379A3038EA3313341C163F300B9C81E97C0FBE740E + CA07B9F7D6828366F73906865F7FFE83F14F10FD1B8AC162408FFF626058B2EC + 3C50D1318805C4025018832CD87A0A61F8833347181E9CAE6350306D62E050B2 + 041BFEFDD77F86B56B2E906FC1FA63FFE02E3F36C7192EAF10B81B6CF88F9FFF + 18B66EBE44BE052B0EFD4509964B4B5D510CFFF1FB1FC3DE1D57C8B760FE9E3F + 0CBF7E410C7F7E6E3DC3BB9BD3189825621938B4A28196FC65F8F38F81E1D8DE + ABE459004A45B9F56788D340AA05604BF47A89D600CA6C004568670C5BA5F9FB + 0000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002054944415478DA + 63FCFFFF3F032D0123C8822BA552254076371E75A584E475BA9FF5E0B3E0BF6A + 4B0D033B7B1686829F3FA731CC8E6D61485D8C5F3E67D53346BC16005D00560C + 07DFBF3330FCF8CE307D872103CBB654900184E449B000A4F9C33B303DFDA433 + A605D8E589B400A6F93D10FFF8C930FD6630AA05B8E589B0E0432F42F3870F10 + 17BE4A4558805F9E080B1E542334835D0834E05739C202FCF2F82D00A5A2E9CB + E5B1A6419001A054844F9E900525071EE24EE70EF20CA584E469920F184D8E63 + A8FF7FC69211AB05A4E6030E6B43862B1BCC510C6F5DF18F61F9A2890CFF2F15 + 33E2B780403E8019BEFFE25F86DCCA49700B22E3F2C134B22564E5030E172BB0 + 053A5EFD0CFD451AF0480606D97F2799730CFBEEFDC0610191F98023C407AB05 + 782399D87C00329C58008A7092F20128EC27379A3038EA3313341C163F300B9C + 81E97C0FBE740ECA07B9F7D6828366F73906865F7FFE83F14F10FD1B8AC16240 + 8FFF626058B2EC3C50D1318805C4025024822CD87A0A61F8833347181E9CAE63 + 50306D62E050B2041BFEFDD77F86B56B2E906FC1FA63FFE02E3F36C7192EAF10 + B81B6CF88F9FFF18B66EBE44BE052B0EFD4509964B4B5D510CFFF1FB1FC3DE1D + 57C8B760FE9E3F0CBF7E410C7F7E6E3DC3BB9BD3189825621938B4A28196FC65 + F8F38F81E1D8DEABE459004A45B9F56788D340AA05604BF47A89D600CACD00E4 + E9610CDEDF75F30000000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage27' + Background = clWindow + end> + Left = 459 + Top = 160 + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [7] + end + inherited dsDataTable: TDADataSource [9] + Left = 8 + end + inherited StatusBarImages: TPngImageList [10] + end + inherited GridPopupMenu: TPopupMenu + inherited Nuevo1: TMenuItem [3] + end + inherited N1: TMenuItem [4] + end + end +end diff --git a/Source/Modulos/Inventario/Views/uEditorDetalleReservas.pas b/Source/Modulos/Inventario/Views/uEditorDetalleReservas.pas new file mode 100644 index 0000000..e816004 --- /dev/null +++ b/Source/Modulos/Inventario/Views/uEditorDetalleReservas.pas @@ -0,0 +1,407 @@ +unit uEditorDetalleReservas; + +interface + +uses + Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, + uCustomEditor, ImgList, PngImageList, StdActns, ActnList, TB2ExtItems, TBXExtItems, TBX, TB2Item, + TB2Dock, TB2Toolbar, JvExControls, JvComponent, JvNavigationPane, + uViewDetalleReservas, Menus, DB, uDADataTable, ComCtrls, uViewGrid, + uDAScriptingProvider, uDACDSDataTable, JvAppStorage, + JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls, uCustomView, + uViewBase, uViewBarraSeleccion, JvComponentBase, uEditorGridBase, + uIEditorDetalleReservas, uBizInventario, uViewGridBase, + JvExComCtrls, JvStatusBar, uViewGrid2Niveles, JSDialog, uDAInterfaces, + uInventarioController, uEditorInventario; + +type + + TfEditorDetalleReservas = class(TfEditorGridBase, IEditorDetalleReservas) + TBXSeparatorItem17: TTBXSeparatorItem; + frViewDetalleReservas1: TfrViewDetalleReservas; + actCancelarReserva: TAction; + actTrasladarReservados: TAction; + TBXItem38: TTBXItem; + TBXItem39: TTBXItem; + + procedure FormShow(Sender: TObject); + procedure actCancelarReservaExecute(Sender: TObject); + procedure actTrasladarReservadosExecute(Sender: TObject); + + private + function Seleccionar(Descripcion: String; TipoSeleccion: TEnumSeleccion): Variant; + function DarIDAlmacenSeleccionado(Descripcion: String): Integer; + function DarIDObraSeleccionada(Descripcion: String): Integer; + function GetIdAlmacenObra: Integer; + procedure SetIdAlmacenObra(const Value: Integer); + + protected + FTipoReservas: String; + FIdAlmacenObra: Integer; + FArticulo: IBizInventario; + FDetalleReservas: IBizDetalleReservas; + FController : IInventarioController; + + function GetArticulo: IBizInventario; + procedure SetArticulo(const Value: IBizInventario); + function GetDetalleReservas: IBizDetalleReservas; + procedure SetDetalleReservas(const Value: IBizDetalleReservas); + function GetTipoReservas: String; + procedure SetTipoReservas(const Value: String); + function GetController : IInventarioController; virtual; + procedure SetController (const Value : IInventarioController); virtual; + +{ procedure SetMultiSelect (AValue : Boolean); + function GetMultiSelect : Boolean; + function GetArticulosSeleccionados: IBizDetalleReservas; +} + procedure ImprimirInterno; override; + procedure PrevisualizarInterno; override; + + public + property Articulo: IBizInventario read GetArticulo write SetArticulo; + property DetalleReservas: IBizDetalleReservas read GetDetalleReservas write SetDetalleReservas; + property Controller : IInventarioController read GetController write SetController; + property TipoReservas: String read GetTipoReservas write SetTipoReservas; + property IdAlmacenObra: Integer read GetIdAlmacenObra write SetIdAlmacenObra; +// property ArticulosSeleccionados: IBizDetalleReservas read GetArticulosSeleccionados; +// property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure PonerTitulos(const ATitulo: string = ''); override; + end; + +implementation +{$R *.DFM} + +uses + cxControls, Variants, uGridStatusUtils, uDataModuleInventario, uDataModuleUsuarios, + uEditorBase, uDBSelectionListUtils, cxGridDBTableView, cxGridCustomTableView, + uAlmacenesController, uBizAlmacenes, uFactuGES_App, uDialogUtils, + uEditorElegirAlmacenObraOperacion, + schInventarioClient_Intf; + +{, uDBSelectionList, uDataModulePedidosProveedor, +uBizPedidosProveedor, uBizMontajes, uDataModuleMontajes; +} + + +{ TfEditorDetalleReservas } + +{ +***************************** TfEditorDetalleReservas ***************************** +} +procedure TfEditorDetalleReservas.actCancelarReservaExecute(Sender: TObject); +var + ReservasSeleccionadas: IBizDetalleReservas; + +begin + inherited; + try + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (DetalleReservas as ISeleccionable).SelectedRecords); + // En SelectedRecords tengo los ID de las filas seleccionadas del grid + ReservasSeleccionadas := (Controller as IInventarioController).ExtraerSeleccionados(DetalleReservas) as IBizDetalleReservas; + + if (ReservasSeleccionadas.DataTable.RecordCount > 0) then + begin + FController.CancelarReservas(ReservasSeleccionadas); + RefrescarInterno; + end + else + ShowWarningMessage('Debe seleccionar las reservas que desea cancelar'); + + finally + ReservasSeleccionadas:= Nil; + end; +end; + +procedure TfEditorDetalleReservas.actTrasladarReservadosExecute(Sender: TObject); +var + ReservasSeleccionadas: IBizDetalleReservas; + +begin + inherited; + try + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (DetalleReservas as ISeleccionable).SelectedRecords); + // En SelectedRecords tengo los ID de las filas seleccionadas del grid + ReservasSeleccionadas := (Controller as IInventarioController).ExtraerSeleccionados(DetalleReservas) as IBizDetalleReservas; + + if (ReservasSeleccionadas.DataTable.RecordCount > 0) then + begin + FController.TrasladarReservas(ReservasSeleccionadas); + RefrescarInterno; + end + else + ShowWarningMessage('Debe seleccionar las reservas que desea trasladar'); + + finally + ReservasSeleccionadas:= Nil; + end; +end; + +constructor TfEditorDetalleReservas.Create(AOwner: TComponent); +begin + inherited; + ViewGrid := frViewDetalleReservas1; +end; + +function TfEditorDetalleReservas.DarIDAlmacenSeleccionado(Descripcion: String): Integer; +var + IDAlmacen: Variant; +begin + IDAlmacen := (ViewGrid as IViewDetalleReservas).DarIDAlmacenObraSeleccionada; + if not VarIsNull(IDAlmacen) then + Result := IDAlmacen + else + Result := Seleccionar(Descripcion, tAlmacen) +end; + +function TfEditorDetalleReservas.DarIDObraSeleccionada(Descripcion: String): Integer; +var + IDObra: Variant; +begin + IDObra := (ViewGrid as IViewDetalleReservas).DarIDAlmacenObraSeleccionada; + if not VarIsNull(IDObra) then + Result := IDObra + else + Result := Seleccionar(Descripcion, TObra) +end; + +destructor TfEditorDetalleReservas.Destroy; +begin + FDetalleReservas := NIL; + inherited; +end; + +procedure TfEditorDetalleReservas.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(DetalleReservas) then + raise Exception.Create('No hay ningn DetalleReservas asignado'); + + DetalleReservas.DataTable.Active := True; + ViewGrid.GotoFirst; +end; +{ +function TfEditorDetalleReservas.GetArticulosSeleccionados: IBizDetalleReservas; +begin + SeleccionarFilasDesdeGrid((ViewGrid as IViewDetalleReservas)._FocusedView, (DetalleReservas as ISeleccionable).SelectedRecords); + // En Presupuestos.SelectedRecords tengo los ID de las filas seleccionadas del grid + Result := Controller.ExtraerSeleccionados(DetalleReservas); +end; + +function TfEditorDetalleReservas.GetController: IDetalleReservasController; +begin + Result := FController; +end; +} +function TfEditorDetalleReservas.GetArticulo: IBizInventario; +begin + Result := FArticulo; +end; + +function TfEditorDetalleReservas.GetController: IInventarioController; +begin + Result := FController; +end; + +function TfEditorDetalleReservas.GetDetalleReservas: IBizDetalleReservas; +begin + Result := FDetalleReservas; +end; +function TfEditorDetalleReservas.GetIdAlmacenObra: Integer; +begin + Result := FIdAlmacenObra; +end; + +function TfEditorDetalleReservas.GetTipoReservas: String; +begin + Result := FTipoReservas; +end; + +{ +function TfEditorDetalleReservas.GetMultiSelect: Boolean; +begin + Result := ViewGrid.MultiSelect; +end; +} +procedure TfEditorDetalleReservas.ImprimirInterno; +begin + inherited; +end; + +procedure TfEditorDetalleReservas.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := 'Detalle de reservas en almacen/obra - ' + frViewDetalleReservas1.cxListaAlmacenesObras.Text; //AppFactuGES.EmpresaActiva.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorDetalleReservas.PrevisualizarInterno; +begin + inherited; +end; + +{function TfEditorDetalleReservas.SeleccionarAlmacen(Descripcion: String): Integer; +var + AAlmacenes : IBizAlmacen; + Respuesta : integer; +begin + Result := -1; +{ + JsElegirAlmacenDialog.Instruction.Text := Descripcion; + with JsElegirAlmacenDialog.RadioButtons do + begin + Clear; + AAlmacenes := (ViewGrid as IViewDetalleReservas).Almacenes; + AAlmacenes.First; + while not AAlmacenes.EOF do + begin + with Add do + begin + Caption := AAlmacenes.NOMBRE; + Value := 1000 + AAlmacenes.ID; + end; + //Asi sabemos que solo va a intentar chequear el primero si hemos aadido al menos un item + Items[0].Checked := True; + AAlmacenes.Next; + end; + end; + + //Sacar la pantalla de seleccin y devolver el almacn seleccionado. + Respuesta := JsElegirAlmacenDialog.Execute; + if Respuesta <> IDCANCEL then + Result := JsElegirAlmacenDialog.RadioResult - 1000; +end; +{ +procedure TfEditorDetalleReservas.SetController(const Value: IDetalleReservasController); +begin + FController := Value; + + if Assigned(FController) then + begin + if Assigned(ViewGrid) then + (ViewGrid as IViewDetalleReservas).Almacenes := FController.AlmacenesController.BuscarTodos; + end; +end; +} +function TfEditorDetalleReservas.Seleccionar(Descripcion: String; TipoSeleccion: TEnumSeleccion): Variant; +var + ALista : TStringList; + AListaAux : TStringList; + Respuesta : Variant; + i: Integer; + +begin + Result := Null; + + with TfEditorElegirAlmacenObraOperacion.Create(NIL) do + try + case TipoSeleccion of + tAlmacen: begin + Caption := Descripcion; + eDescripcion.Caption := 'Elija sobre qu almacn desea realizar la operacin.'; + eEtiqueta.Caption := 'Almacn:'; + ALista := Controller.AlmacenesController.DarListaAlmacenes; + end; + tObra: begin + Caption := Descripcion; + eDescripcion.Caption := 'Elija sobre qu obra desea realizar la operacin.'; + eEtiqueta.Caption := 'Obra:'; + ALista := Controller.ObrasController.DarListaObras; + end; + tAlmacenObra: begin + Caption := Descripcion; + eDescripcion.Caption := 'Elija sobre qu almacn u obra desea realizar la operacin.'; + eEtiqueta.Caption := 'Almacn/Obra:'; + ALista := Controller.AlmacenesController.DarListaAlmacenes; + AListaAux := Controller.ObrasController.DarListaObras; + + for i := 0 to AListaAux.Count - 1 do + ALista.Add(Format('%s=%s', [AListaAux.Names[i], AListaAux.Values[AListaAux.Names[i]]])); + end; + end; + + with cxListaAlmacenesObras.Properties.Items do + begin + BeginUpdate; + try + Clear; + for i := 0 to ALista.Count - 1 do + Add(ALista.Names[i]); + finally + EndUpdate; + end; + end; + + if (ShowModal = mrOk) then + Result := ALista.Values[cxListaAlmacenesObras.EditValue]; + + finally + Free; + end; +end; + +procedure TfEditorDetalleReservas.SetArticulo(const Value: IBizInventario); +begin + FArticulo := Value; + if Assigned(FArticulo) + and (FArticulo.RESERVA > 0) then + begin + tbxEditFiltro.Text := FArticulo.REFERENCIA; + end; +end; + +procedure TfEditorDetalleReservas.SetController(const Value: IInventarioController); +begin + FController := Value; +end; + +procedure TfEditorDetalleReservas.SetDetalleReservas(const Value: IBizDetalleReservas); +begin + FDetalleReservas := Value; + dsDataTable.DataTable := FDetalleReservas.DataTable; + + if Assigned(ViewGrid) then + (ViewGrid as IViewDetalleReservas).DetalleReservas := FDetalleReservas; +end; +procedure TfEditorDetalleReservas.SetIdAlmacenObra(const Value: Integer); +begin + FIdAlmacenObra := Value; + if assigned (ViewGrid) then + (ViewGrid as IViewDetalleReservas).IdAlmacenObra := IdAlmacenObra; +end; + +procedure TfEditorDetalleReservas.SetTipoReservas(const Value: String); +begin + FTipoReservas := Value; + + if not Assigned(FController) then + raise Exception.Create('No hay ningn controlador asignado'); + + if (FTipoReservas = CTE_INV_ALMACEN) then + begin + if Assigned(ViewGrid) then + (ViewGrid as IViewDetalleReservas).Almacenes := FController.AlmacenesController.DarListaAlmacenes; + end + else if (FTipoReservas = CTE_INV_OBRA) then + begin + if Assigned(ViewGrid) then + (ViewGrid as IViewDetalleReservas).Obras := FController.ObrasController.DarListaObras; + end; +end; + +{ +procedure TfEditorDetalleReservas.SetMultiSelect(AValue: Boolean); +begin + ViewGrid.MultiSelect := AValue; +end; +} +end. + diff --git a/Source/Modulos/Inventario/Views/uEditorElegirAlmacenObraOperacion.dcu b/Source/Modulos/Inventario/Views/uEditorElegirAlmacenObraOperacion.dcu new file mode 100644 index 0000000..746122a Binary files /dev/null and b/Source/Modulos/Inventario/Views/uEditorElegirAlmacenObraOperacion.dcu differ diff --git a/Source/Modulos/Inventario/Views/uEditorElegirAlmacenObraOperacion.dfm b/Source/Modulos/Inventario/Views/uEditorElegirAlmacenObraOperacion.dfm new file mode 100644 index 0000000..b94c203 --- /dev/null +++ b/Source/Modulos/Inventario/Views/uEditorElegirAlmacenObraOperacion.dfm @@ -0,0 +1,81 @@ +object fEditorElegirAlmacenObraOperacion: TfEditorElegirAlmacenObraOperacion + Left = 0 + Top = 0 + BorderStyle = bsDialog + Caption = 'Elegir ' + ClientHeight = 141 + ClientWidth = 580 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + DesignSize = ( + 580 + 141) + PixelsPerInch = 96 + TextHeight = 13 + object eEtiqueta: TLabel + Left = 42 + Top = 48 + Width = 96 + Height = 13 + Caption = 'Almac'#233'n:' + end + object eDescripcion: TLabel + Left = 42 + Top = 16 + Width = 247 + Height = 13 + Caption = 'Elija sobre qu'#233' almac'#233'n desea realizar la operaci'#243'n.' + end + object cxListaAlmacenesObras: TcxComboBox + Left = 144 + Top = 45 + Anchors = [akLeft, akTop, akRight] + Properties.DropDownListStyle = lsEditFixedList + Properties.DropDownRows = 25 + Properties.ImmediatePost = True + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 421 + end + object Panel1: TPanel + Left = 0 + Top = 100 + Width = 580 + Height = 41 + Align = alBottom + BevelOuter = bvNone + TabOrder = 1 + ExplicitWidth = 579 + object Button2: TButton + Left = 408 + Top = 8 + Width = 75 + Height = 25 + Caption = 'Aceptar' + ModalResult = 1 + TabOrder = 0 + end + object Button1: TButton + Left = 489 + Top = 8 + Width = 75 + Height = 25 + Caption = 'Cancelar' + ModalResult = 2 + TabOrder = 1 + end + end +end diff --git a/Source/Modulos/Inventario/Views/uEditorElegirAlmacenObraOperacion.pas b/Source/Modulos/Inventario/Views/uEditorElegirAlmacenObraOperacion.pas new file mode 100644 index 0000000..faa1528 --- /dev/null +++ b/Source/Modulos/Inventario/Views/uEditorElegirAlmacenObraOperacion.pas @@ -0,0 +1,24 @@ +unit uEditorElegirAlmacenObraOperacion; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxGraphics, cxControls, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, + cxDropDownEdit, StdCtrls, ExtCtrls; + +type + TfEditorElegirAlmacenObraOperacion = class(TForm) + eEtiqueta: TLabel; + cxListaAlmacenesObras: TcxComboBox; + eDescripcion: TLabel; + Panel1: TPanel; + Button2: TButton; + Button1: TButton; + end; + +implementation +{$R *.dfm} + + +end. diff --git a/Source/Modulos/Inventario/Views/uEditorElegirArticulosAlmacen.dcu b/Source/Modulos/Inventario/Views/uEditorElegirArticulosAlmacen.dcu new file mode 100644 index 0000000..98dfd48 Binary files /dev/null and b/Source/Modulos/Inventario/Views/uEditorElegirArticulosAlmacen.dcu differ diff --git a/Source/Modulos/Inventario/Views/uEditorElegirArticulosAlmacen.dfm b/Source/Modulos/Inventario/Views/uEditorElegirArticulosAlmacen.dfm new file mode 100644 index 0000000..1886b07 --- /dev/null +++ b/Source/Modulos/Inventario/Views/uEditorElegirArticulosAlmacen.dfm @@ -0,0 +1,343 @@ +inherited fEditorElegirArticulosAlmacen: TfEditorElegirArticulosAlmacen + Caption = 'Seleccionar art'#237'culos' + ClientWidth = 832 + ExplicitWidth = 840 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Top = 113 + Width = 832 + Caption = 'Lista de art'#237'culos' + Visible = False + ExplicitLeft = 8 + ExplicitTop = 146 + ExplicitWidth = 832 + inherited Image1: TImage + Left = 805 + ExplicitLeft = 629 + end + inherited Image2: TImage + Left = 778 + ExplicitLeft = 602 + end + end + inherited TBXDock: TTBXDock + Top = 64 + Width = 832 + Height = 49 + ExplicitTop = 91 + ExplicitWidth = 832 + ExplicitHeight = 49 + inherited tbxMain: TTBXToolbar + Align = alLeft + DockPos = -6 + ExplicitWidth = 427 + inherited TBXItem2: TTBXItem + Visible = False + end + inherited TBXItem4: TTBXItem + Visible = False + end + inherited TBXItem57: TTBXItem + Visible = False + end + inherited TBXItem6: TTBXItem + Visible = False + end + inherited TBXItem36: TTBXItem + Action = actAnchoAuto2 + end + end + inherited tbxFiltro: TTBXToolbar + Left = 427 + Top = 23 + Align = alLeft + DockPos = 101 + DockRow = 1 + ExplicitLeft = 427 + ExplicitTop = 23 + inherited TBXItem34: TTBXItem + Action = actQuitarFiltro2 + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 832 + end + inherited TBXTMain2: TTBXToolbar + Left = 696 + Top = 23 + DockPos = 559 + DockRow = 1 + Visible = False + ExplicitLeft = 696 + ExplicitTop = 23 + ExplicitWidth = 36 + end + end + inherited StatusBar: TJvStatusBar + Width = 832 + Visible = False + ExplicitWidth = 832 + end + inline frViewBarraSeleccion1: TfrViewBarraSeleccion [3] + Left = 0 + Top = 472 + Width = 832 + Height = 49 + Align = alBottom + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitTop = 472 + ExplicitWidth = 832 + inherited JvFooter1: TJvFooter + Width = 832 + ExplicitWidth = 832 + DesignSize = ( + 832 + 49) + inherited bSeleccionar: TJvFooterBtn + Left = 620 + ExplicitLeft = 444 + end + inherited bCancelar: TJvFooterBtn + Left = 724 + ExplicitLeft = 724 + end + end + inherited BarraSeleccionActionList: TActionList + Left = 76 + Top = 11 + inherited actSeleccionar: TAction + OnExecute = frViewBarraSeleccion1actSeleccionarExecute + OnUpdate = frViewBarraSeleccion1actSeleccionarUpdate + end + inherited actCancelar: TAction + OnExecute = frViewBarraSeleccion1actCancelarExecute + end + end + end + object pnlHeader: TPanel [4] + Left = 0 + Top = 0 + Width = 832 + Height = 64 + Align = alTop + BevelOuter = bvNone + Color = clWhite + Padding.Left = 25 + Padding.Top = 8 + Padding.Right = 25 + Padding.Bottom = 8 + ParentBackground = False + TabOrder = 5 + ExplicitTop = 27 + object lblTitle: TLabel + AlignWithMargins = True + Left = 25 + Top = 8 + Width = 782 + Height = 13 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 0 + Margins.Bottom = 8 + Align = alTop + Caption = 'Seleccione los art'#237'culos' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + ExplicitWidth = 131 + end + object lblComments: TLabel + AlignWithMargins = True + Left = 50 + Top = 29 + Width = 757 + Height = 24 + Margins.Left = 25 + Margins.Top = 0 + Margins.Right = 0 + Align = alClient + ExplicitWidth = 3 + ExplicitHeight = 13 + end + end + inherited frViewInventario1: TfrViewInventario [5] + Top = 140 + Width = 832 + Height = 332 + ExplicitTop = 140 + ExplicitWidth = 832 + ExplicitHeight = 332 + inherited cxGrid: TcxGrid + Width = 832 + Height = 163 + ExplicitWidth = 832 + ExplicitHeight = 163 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Position = spFooter + Column = frViewInventario1.cxGridViewCOSTE_UNIDADES + end> + DataController.Summary.FooterSummaryItems = < + item + Format = '0 art'#237'culos' + Kind = skCount + end + item + Format = '0 Art'#237'culos' + Kind = skCount + Column = frViewInventario1.cxGridViewDESCRIPCION + end> + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 832 + ExplicitWidth = 832 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 832 + inherited dxLayoutControl1: TdxLayoutControl + Width = 832 + ExplicitWidth = 832 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 561 + Width = 561 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 440 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 440 + ExplicitWidth = 241 + Width = 241 + end + inherited eLista: TcxComboBox + Left = 788 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 788 + ExplicitWidth = 20 + Width = 20 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 832 + ExplicitWidth = 832 + inherited tbxBotones: TTBXToolbar + Width = 822 + ExplicitWidth = 822 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 306 + ExplicitTop = 306 + ExplicitWidth = 832 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 832 + ExplicitWidth = 832 + inherited TBXToolbar1: TTBXToolbar + Width = 822 + ExplicitWidth = 822 + end + end + end + inherited pnlAlmacenes: TPanel + Width = 832 + ExplicitWidth = 832 + inherited cxListaAlmacenesObras: TcxComboBox + Properties.OnEditValueChanged = nil + ExplicitWidth = 757 + Width = 757 + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + BuiltInReportLink = True + end + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewInventario1.cxGridView + HitTypes = [gvhtCell] + Index = 0 + end> + end + end + inherited EditorActionList: TActionList [9] + Left = 112 + Top = 192 + inherited actRecibirPedido: TAction + Visible = False + end + inherited actTrasladar: TAction + Visible = False + end + inherited actReservados: TAction + Visible = False + end + end + inherited dsDataTable: TDADataSource + Top = 192 + end + inherited StatusBarImages: TPngImageList + Top = 384 + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [12] + end + inherited GridPopupMenu: TPopupMenu + Left = 80 + Top = 192 + end + object EditorSeleccionActionList: TActionList + Images = SmallImages + Left = 152 + Top = 192 + object actBuscar2: TAction + Category = 'Buscar' + Caption = 'Buscar' + ImageIndex = 10 + ShortCut = 114 + end + object actQuitarFiltro2: TAction + Category = 'Buscar' + Caption = 'Quitar filtro y ver todo' + ImageIndex = 19 + OnExecute = actQuitarFiltro2Execute + end + object actAnchoAuto2: TAction + Category = 'Ver' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 21 + OnExecute = actAnchoAuto2Execute + end + end +end diff --git a/Source/Modulos/Inventario/Views/uEditorElegirArticulosAlmacen.pas b/Source/Modulos/Inventario/Views/uEditorElegirArticulosAlmacen.pas new file mode 100644 index 0000000..56e707b --- /dev/null +++ b/Source/Modulos/Inventario/Views/uEditorElegirArticulosAlmacen.pas @@ -0,0 +1,128 @@ +unit uEditorElegirArticulosAlmacen; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, DB, uDADataTable, Menus, JvAppStorage, JvAppRegistryStorage, + JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns, + ActnList, uCustomView, uViewBase, uViewGridBase, uViewGrid, + uViewArticulos, ComCtrls, TB2ExtItems, TBXExtItems, TBX, + TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvComponent, + JvNavigationPane, uViewBarraSeleccion, StdCtrls, + uEditorArticulos, uBizArticulos, uIEditorElegirArticulosAlmacen, + JvExComCtrls, JvStatusBar, uEditorInventario, uViewInventario, uBizInventario, + JSDialog, uDAInterfaces, dxGDIPlusClasses; + +type + TfEditorElegirArticulosAlmacen = class(TfEditorInventario, IEditorElegirArticulosAlmacen) + frViewBarraSeleccion1: TfrViewBarraSeleccion; + lblTitle: TLabel; + lblComments: TLabel; + EditorSeleccionActionList: TActionList; + actBuscar2: TAction; + actQuitarFiltro2: TAction; + actAnchoAuto2: TAction; + pnlHeader: TPanel; + procedure frViewBarraSeleccion1actSeleccionarUpdate(Sender: TObject); + procedure frViewBarraSeleccion1actCancelarExecute(Sender: TObject); + procedure frViewBarraSeleccion1actSeleccionarExecute(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure actAnchoAuto2Execute(Sender: TObject); + procedure actQuitarFiltro2Execute(Sender: TObject); + protected + procedure SetMultiSelect (AValue : Boolean); + function GetMultiSelect : Boolean; + function GetArticulosSeleccionados: IBizInventario; + procedure SetViewGrid(const Value: IViewGridBase); override; + procedure SetMensaje (const AValue: String); + function GetMensaje: String; + public + property Mensaje : String read GetMensaje write SetMensaje; + property ArticulosSeleccionados: IBizInventario read GetArticulosSeleccionados; + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + end; + +implementation +{$R *.dfm} + +uses + uEditorGridBase, cxGridCustomTableView, uIntegerListUtils, uDBSelectionListUtils, + uGridStatusUtils, uEditorBase, uInventarioController; + + +{ TfEditorElegirArticulosAlmacen } + +procedure TfEditorElegirArticulosAlmacen.actAnchoAuto2Execute(Sender: TObject); +begin + inherited; + actAnchoAuto.Execute; +end; + +procedure TfEditorElegirArticulosAlmacen.actQuitarFiltro2Execute(Sender: TObject); +begin + inherited; + actQuitarFiltro.Execute; +end; + +procedure TfEditorElegirArticulosAlmacen.FormShow(Sender: TObject); +begin + inherited; + EditorActionList.State := asSuspended; +end; + +procedure TfEditorElegirArticulosAlmacen.frViewBarraSeleccion1actCancelarExecute( + Sender: TObject); +begin + inherited; + Close; +end; + +procedure TfEditorElegirArticulosAlmacen.frViewBarraSeleccion1actSeleccionarExecute( + Sender: TObject); +begin + inherited; + ModalResult := mrOk; +end; + +procedure TfEditorElegirArticulosAlmacen.frViewBarraSeleccion1actSeleccionarUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (ViewGrid._FocusedView.Controller.SelectedRowCount > 0) +end; + +function TfEditorElegirArticulosAlmacen.GetArticulosSeleccionados: IBizInventario; +begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Inventario as ISeleccionable).SelectedRecords); + // En SelectedRecords tengo los ID de las filas seleccionadas del grid + Result := (Controller as IInventarioController).ExtraerSeleccionados(Inventario) as IBizInventario; +end; + +function TfEditorElegirArticulosAlmacen.GetMensaje: String; +begin + Result := lblComments.Caption; +end; + +function TfEditorElegirArticulosAlmacen.GetMultiSelect: Boolean; +begin + Result := ViewGrid.MultiSelect; +end; + +procedure TfEditorElegirArticulosAlmacen.SetMensaje(const AValue: String); +begin + lblComments.Caption := AValue; +end; + +procedure TfEditorElegirArticulosAlmacen.SetMultiSelect(AValue: Boolean); +begin + ViewGrid.MultiSelect := AValue; +end; + +procedure TfEditorElegirArticulosAlmacen.SetViewGrid(const Value: IViewGridBase); +begin + inherited; + ViewGrid.OnDblClick := frViewBarraSeleccion1.actSeleccionar.OnExecute; +end; + +end. diff --git a/Source/Modulos/Inventario/Views/uEditorElegirArticulosCatalogo.dcu b/Source/Modulos/Inventario/Views/uEditorElegirArticulosCatalogo.dcu new file mode 100644 index 0000000..c3055e7 Binary files /dev/null and b/Source/Modulos/Inventario/Views/uEditorElegirArticulosCatalogo.dcu differ diff --git a/Source/Modulos/Inventario/Views/uEditorElegirArticulosCatalogo.dfm b/Source/Modulos/Inventario/Views/uEditorElegirArticulosCatalogo.dfm new file mode 100644 index 0000000..0fa873f --- /dev/null +++ b/Source/Modulos/Inventario/Views/uEditorElegirArticulosCatalogo.dfm @@ -0,0 +1,177 @@ +inherited fEditorElegirArticulosCatalogo: TfEditorElegirArticulosCatalogo + Caption = 'fEditorElegirArticulosCatalogo' + ClientHeight = 577 + ClientWidth = 697 + ExplicitWidth = 705 + ExplicitHeight = 611 + PixelsPerInch = 96 + TextHeight = 13 + object pnlHeader: TPanel + Left = 0 + Top = 0 + Width = 656 + Height = 64 + Align = alTop + BevelOuter = bvNone + Color = clWhite + Padding.Left = 25 + Padding.Top = 8 + Padding.Right = 25 + Padding.Bottom = 8 + ParentBackground = False + TabOrder = 5 + object lblTitle: TLabel + AlignWithMargins = True + Left = 25 + Top = 8 + Width = 606 + Height = 13 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 0 + Margins.Bottom = 8 + Align = alTop + Caption = '' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + ExplicitWidth = 135 + end + object lblComments: TLabel + AlignWithMargins = True + Left = 50 + Top = 29 + Width = 581 + Height = 27 + Margins.Left = 25 + Margins.Top = 0 + Margins.Right = 0 + Align = alClient + ExplicitWidth = 3 + ExplicitHeight = 13 + end + end + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 697 + inherited Image1: TImage + Left = 670 + end + end + inherited TBXDock: TTBXDock + Width = 697 + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 697 + end + inherited TBXTMain2: TTBXToolbar + DockPos = 401 + end + end + inherited StatusBar: TJvStatusBar + Top = 558 + Width = 697 + end + inherited frViewBarraSeleccion1: TfrViewBarraSeleccion + Top = 509 + Width = 697 + inherited JvFooter1: TJvFooter + Width = 697 + inherited bSeleccionar: TJvFooterBtn + Left = 485 + end + inherited bCancelar: TJvFooterBtn + Left = 589 + ExplicitLeft = 589 + end + end + end + inline frViewElegirArticulosCatalogo1: TfrViewElegirArticulosCatalogo [5] + Left = 0 + Top = 136 + Width = 697 + Height = 373 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 4 + ReadOnly = False + ExplicitLeft = -59 + ExplicitTop = -18 + inherited cxGrid: TcxGrid + Width = 697 + Height = 245 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = '0 Art'#237'culos' + Kind = skCount + Column = frViewElegirArticulosCatalogo1.cxGridViewDESCRIPCION + end> + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 697 + inherited TBXDockablePanel1: TTBXDockablePanel + inherited dxLayoutControl1: TdxLayoutControl + Width = 697 + inherited eLista: TcxComboBox + ExplicitWidth = 304 + Width = 304 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 697 + inherited tbxBotones: TTBXToolbar + Width = 687 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 347 + ExplicitWidth = 715 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 697 + inherited TBXToolbar1: TTBXToolbar + Width = 687 + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39658.667338495370000000 + BuiltInReportLink = True + end + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewElegirArticulosCatalogo1.cxGridView + HitTypes = [gvhtCell] + Index = 0 + end> + end + end + inherited SmallImages: TPngImageList [6] + end + inherited LargeImages: TPngImageList [7] + end + inherited JvFormStorage: TJvFormStorage [8] + end + inherited EditorActionList: TActionList [9] + end + inherited dsDataTable: TDADataSource [10] + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [11] + end + inherited StatusBarImages: TPngImageList [12] + end + inherited GridPopupMenu: TPopupMenu [13] + end +end diff --git a/Source/Modulos/Inventario/Views/uEditorElegirArticulosCatalogo.pas b/Source/Modulos/Inventario/Views/uEditorElegirArticulosCatalogo.pas new file mode 100644 index 0000000..712af72 --- /dev/null +++ b/Source/Modulos/Inventario/Views/uEditorElegirArticulosCatalogo.pas @@ -0,0 +1,34 @@ +unit uEditorElegirArticulosCatalogo; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorElegirArticulos, Menus, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, + StdActns, ActnList, uCustomView, uViewBase, uViewBarraSeleccion, ComCtrls, + JvExComCtrls, JvStatusBar, TBX, TB2ExtItems, TBXExtItems, TB2Item, TB2Dock, + TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, + uIEditorElegirArticulosCatalogo, uDAInterfaces, + uViewGridBase, uViewGrid, uViewArticulos, uViewElegirArticulosCatalogo; + +type + TfEditorElegirArticulosCatalogo = class(TfEditorElegirArticulos, IEditorElegirArticulosCatalogo) + frViewElegirArticulosCatalogo1: TfrViewElegirArticulosCatalogo; + public + constructor Create(AOwner: TComponent); override; + end; + + +implementation +{$R *.dfm} + +{ TfEditorElegirArticulosCatalogo } + +constructor TfEditorElegirArticulosCatalogo.Create(AOwner: TComponent); +begin + inherited; + ViewGrid := CreateView(TfrViewElegirArticulosCatalogo) as IViewElegirArticulosCatalogo; +end; + +end. diff --git a/Source/Modulos/Inventario/Views/uEditorEntradaSalidaArticulos.dcu b/Source/Modulos/Inventario/Views/uEditorEntradaSalidaArticulos.dcu new file mode 100644 index 0000000..434e626 Binary files /dev/null and b/Source/Modulos/Inventario/Views/uEditorEntradaSalidaArticulos.dcu differ diff --git a/Source/Modulos/Inventario/Views/uEditorEntradaSalidaArticulos.dfm b/Source/Modulos/Inventario/Views/uEditorEntradaSalidaArticulos.dfm new file mode 100644 index 0000000..f97e286 --- /dev/null +++ b/Source/Modulos/Inventario/Views/uEditorEntradaSalidaArticulos.dfm @@ -0,0 +1,1823 @@ +inherited fEditorEntradaSalidaArticulos: TfEditorEntradaSalidaArticulos + Left = 387 + Top = 196 + Caption = 'Entrada de art'#237'culos en almac'#233'n' + ClientHeight = 556 + ClientWidth = 853 + OnClose = CustomEditorClose + ExplicitWidth = 861 + ExplicitHeight = 590 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 853 + Caption = 'Entrada de art'#237'culos en ' + ExplicitWidth = 853 + inherited Image1: TImage + Left = 720 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000001914944415478DA63FCFFFF3F + 032D0123CD2DC02571B542C61948EDC1A3D78590BC56FBE3BDF82CF8AFDC50C3 + C0CE9E8E21F7F3E74C8679892D0C49F3F1CB672E7BCC88D702A00BC08AE1E0C7 + 0F20FECE307B970103F3F654900184E449B000A4F9C33B8801A79C302DC02E4F + A40530CD60037E32CCBE15846A016E79222CF83811A1F9C307880B5FA5202CC0 + 2F4F84050FEB119A6141F0AB0C61017E794682A968F62A79ACF2200340A9089F + 3C210B9C0F3EC49DCEEDE5195C08C9E3CD07840031F904AB0F88C9C1DA1D4FF6 + 12994FB05A40D06559CB9F3012994FD02C3098F1FFAA470B0321976158406C3E + 304EBFFEFFECC9830CFFCFA7E375198A0584F201C8509400761264E86CDFC0F0 + E304034E97A15840281F802CC88B554109A919AB8E311C3F749DE1C78667585D + 06B380503E41B1E0DAD3B70C2F3F7F6778F3E53758C1DB7BCF21964C3882E132 + A80504F309381FC02CD87FE30986E1938BE4B1BA0C6401317905545B32C22216 + 062CED34C1864FD36CC1E932503E20DA02F4640AA62F64909DC3095B4025C3E1 + 16D0BA550100E46DEBE08B969D720000000049454E44AE426082} + ExplicitLeft = 625 + end + inherited lblDesbloquear: TcxLabel + Left = 755 + ExplicitLeft = 755 + end + end + inherited TBXDock: TTBXDock + Width = 853 + ExplicitWidth = 853 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 164 + object TBXItem7: TTBXItem [16] + Action = actAnchoAuto + DisplayMode = nbdmImageAndText + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 853 + inherited TBXSubmenuItem4: TTBXSubmenuItem + object TBXItem33: TTBXItem [11] + Action = actGuardarCerrar + end + end + inherited TBXSubmenuItem6: TTBXSubmenuItem + Visible = False + end + end + end + inherited pgPaginas: TPageControl + Top = 257 + Width = 847 + Height = 277 + MultiLine = True + Visible = False + ExplicitTop = 257 + ExplicitWidth = 847 + ExplicitHeight = 277 + inherited pagGeneral: TTabSheet + ExplicitLeft = 4 + ExplicitTop = 24 + ExplicitWidth = 839 + ExplicitHeight = 249 + end + end + inherited StatusBar: TJvStatusBar + Top = 537 + Width = 853 + Panels = < + item + Width = 200 + end> + ExplicitTop = 537 + ExplicitWidth = 853 + end + object ToolBar1: TToolBar [4] + AlignWithMargins = True + Left = 5 + Top = 224 + Width = 843 + Height = 30 + Margins.Left = 5 + Margins.Top = 2 + Margins.Right = 5 + Margins.Bottom = 0 + ButtonWidth = 119 + Caption = 'ToolBar1' + EdgeInner = esNone + EdgeOuter = esNone + Flat = False + Images = SmallImages + List = True + ParentShowHint = False + ShowCaptions = True + ShowHint = True + TabOrder = 4 + Transparent = True + object ToolButton1: TToolButton + Left = 0 + Top = 0 + Action = actAnadirInventario + AutoSize = True + end + object ToolButton2: TToolButton + Left = 112 + Top = 0 + Action = actEliminarInventario + AutoSize = True + end + object ToolButton6: TToolButton + Left = 235 + Top = 0 + Width = 8 + Caption = 'ToolButton6' + ImageIndex = 2 + Style = tbsSeparator + end + object ToolButton7: TToolButton + Left = 243 + Top = 0 + Action = actAnchoAuto + AutoSize = True + end + end + object TBXDockPaneles: TTBXDock [5] + Left = 0 + Top = 76 + Width = 853 + Height = 146 + object pnlMovimiento: TTBXDockablePanel + Left = 0 + Top = 89 + Align = alTop + Caption = 'Filtrar' + CaptionRotation = dpcrAlwaysVert + DockedHeight = 53 + DockMode = dmCannotFloat + DockPos = 3 + DockRow = 1 + FloatingWidth = 128 + FloatingHeight = 84 + ShowCaptionWhenDocked = False + SupportedDocks = [dkStandardDock, dkMultiDock] + TabOrder = 0 + Visible = False + DesignSize = ( + 849 + 53) + object Label1: TLabel + Left = 266 + Top = 17 + Width = 36 + Height = 13 + Margins.Bottom = 0 + Caption = 'Motivo:' + end + object Label2: TLabel + Left = 12 + Top = 17 + Width = 107 + Height = 13 + Margins.Bottom = 0 + Caption = 'Fecha del movimiento:' + Color = 16054521 + ParentColor = False + end + object eFechaMovimiento: TcxDateEdit + Left = 126 + Top = 14 + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 121 + end + object eCausa: TcxTextEdit + Left = 308 + Top = 14 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Height = 21 + Width = 1977 + end + end + object pnlEntradaPedido: TTBXDockablePanel + Left = 0 + Top = 0 + Align = alTop + Caption = 'Filtrar' + CaptionRotation = dpcrAlwaysVert + DockedHeight = 85 + DockMode = dmCannotFloat + DockPos = 0 + FloatingWidth = 128 + FloatingHeight = 84 + ShowCaptionWhenDocked = False + SupportedDocks = [dkStandardDock, dkMultiDock] + TabOrder = 1 + Visible = False + object Label3: TLabel + Left = 202 + Top = 17 + Width = 60 + Height = 13 + Margins.Bottom = 0 + Caption = 'Ref. pedido:' + end + object Label4: TLabel + Left = 8 + Top = 17 + Width = 85 + Height = 13 + Margins.Bottom = 0 + Caption = 'Fecha del pedido:' + Color = 16054521 + ParentColor = False + end + object edtFechaPedido: TLabel + Left = 99 + Top = 17 + Width = 71 + Height = 13 + Margins.Bottom = 0 + Caption = 'FechaPedido' + Color = 16054521 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentColor = False + ParentFont = False + end + object edtReferenciaPedido: TLabel + Left = 268 + Top = 17 + Width = 99 + Height = 13 + Margins.Bottom = 0 + Caption = 'ReferenciaPedido' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 5 + Top = 49 + Width = 47 + Height = 13 + Margins.Bottom = 0 + Caption = 'Situaci'#243'n:' + Color = 16054521 + ParentColor = False + end + object edtSituacion: TLabel + Left = 99 + Top = 49 + Width = 52 + Height = 13 + Margins.Bottom = 0 + Caption = 'Situacion' + Color = 16054521 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentColor = False + ParentFont = False + end + object Label7: TLabel + Left = 202 + Top = 49 + Width = 54 + Height = 13 + Margins.Bottom = 0 + Caption = 'Proveedor:' + end + object edtProveedor: TLabel + Left = 268 + Top = 49 + Width = 59 + Height = 13 + Margins.Bottom = 0 + Caption = 'Proveedor' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + end + end + end + inline frViewEntradaSalidaArticulos1: TfrViewEntradaSalidaArticulos [6] + Left = 0 + Top = 254 + Width = 853 + Height = 283 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 6 + ReadOnly = False + ExplicitTop = 254 + ExplicitWidth = 853 + ExplicitHeight = 283 + inherited cxGrid: TcxGrid + Width = 837 + Height = 139 + ExplicitWidth = 837 + ExplicitHeight = 139 + inherited cxGridView: TcxGridDBTableView + DataController.KeyFieldNames = 'RecID' + inherited cxGridViewSTOCK: TcxGridDBColumn + Properties.Alignment.Horz = taRightJustify + end + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 853 + ExplicitWidth = 853 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 853 + inherited dxLayoutControl1: TdxLayoutControl + Width = 853 + ExplicitWidth = 853 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 676 + Width = 676 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtFechaFinFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited eLista: TcxComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 380 + Width = 380 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 853 + ExplicitWidth = 853 + inherited tbxBotones: TTBXToolbar + Width = 843 + ExplicitWidth = 843 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 257 + ExplicitTop = 257 + ExplicitWidth = 853 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 853 + ExplicitWidth = 853 + inherited TBXToolbar1: TTBXToolbar + Width = 843 + ExplicitWidth = 843 + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39658.663276539350000000 + BuiltInReportLink = True + end + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewEntradaSalidaArticulos1.cxGridView + HitTypes = [gvhtCell] + Index = 0 + end> + end + end + inherited EditorActionList: TActionList [7] + Top = 56 + inherited actNuevo: TAction + Visible = False + end + inherited actModificar: TAction + Visible = False + end + inherited actGuardar: TAction + Visible = False + end + inherited actEliminar: TAction + Visible = False + end + inherited actConfPagina: TAction + Visible = False + end + inherited actPrevisualizar: TAction + Visible = False + end + inherited actImprimir: TAction + Visible = False + end + inherited actRefrescar: TAction + Visible = False + end + inherited actDuplicar: TAction + Visible = False + end + object actAnadirInventario: TAction + Category = 'Inventario' + Caption = 'Elegir art'#237'culos...' + ImageIndex = 24 + OnExecute = actAnadirInventarioExecute + end + object actEliminarInventario: TAction + Category = 'Inventario' + Caption = 'Quitar este art'#237'culo' + ImageIndex = 4 + OnExecute = actEliminarInventarioExecute + OnUpdate = actEliminarInventarioUpdate + end + object actAnchoAuto: TAction + Category = 'Ver' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 21 + OnExecute = actAnchoAutoExecute + end + end + inherited SmallImages: TPngImageList [8] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000D04944415478DA + 6364C0062630FCC72A5EC0C0882EC488CB80191909706EDDBA750CAF767D6260 + 5830240DF8F9FB3743EBE6CD780CC011602003409A7F0071EF8E1D10030C30D5 + 31A23B1706609AB1E23F7FC0F4FA2967B01B408CE6A3B76E815D856100319ABF + FFFAC570EEC103540340218D0C92EDECE01AD79E398335ACE106305CC0942CAC + 77871BB0F5E2454820620138A331D3CB09EEECBD57AF929E0E629DADC106FCF9 + F70F1E602419106A67C6F01DE40260805D7AFC9874037C2C0D194EDDBD8B1260 + 241900A6D103178B01000648ED7B1FCA93F30000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000006E4944415478DA + 63FCFFFF3F03258071D40006C6397A1214990036203925952CCD73E7CCC66100 + C85BBF7F32307CFDC4C0F0FD2B03C33710FD05487F46E0374F19E6FE964032E0 + CF6F840120CD200D5F3F43357E42F0416C90013FBFA119B0B099742FC00CA028 + 10073E1D0C7D030077CE5E397DD56C480000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001004944415478DA + 63BC5C22F99F8148A0D3FD8C115D8C1164806A4B0D84F7FD3B03C3FD3B0CB3DB + 3732A42EC614CB5985CF00A8C2E9177D1858B6A5420C4013C36D4075315821C3 + F5AB0CD37F95430C98852986DB80287FB02D300036A012530CA701071E121788 + F8C3002DC072573F67FCFF9F7004E10C449001403967A09A3D78F4BBE00C44A8 + 0160C3D9D9B33074FEFC398D61766C0BEE408419004C3C60C5700072E98FEF0C + D3771882D5E10C44AC0680347F7807A6A79F748618802FA0AE944A210C80697E + 0FC43F7E324CBF194C82011F7A119A3F7C80B8E0552A09063CA8466806BBE03B + 3CB0091A008A85E9CBE5B1CA13638033308071A6030779061700E6FAF742387F + 63F70000000049454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList [9] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000015E4944415478DA + 63FCFFFF3F032D0123CC822BA552CE406A0F1EB52E84E475BA9FEDC567C17FD5 + 961A0676F62C0C9D3F7F4E63981DDBC290BA18BF7CCEAA678C782D00BA00AC18 + 0EBE7F6760F8F19D61FA0E4306966DA9200308C993600148F38777607AFA4967 + 4C0BB0CB1369014CF37B20FEF19361FACD60540B70CB1361C1875E84E60F1F20 + 2E7C958AB000BF3C11163CA8466806BB1068C0AF728405F8E5F15B004A45D397 + CB634D83200340A9089F3C210B9C0F3CC49DCE1DE4195C08C9539C0FB0B99010 + 20351F50D1023CE99C88620504C041466A3E8059803338D18394D47CC088E118 + 64F0F91303C397CF0CD30F58C1D5939A0F705B00359CE133D082B3EED82D2094 + 0F705A806438D8073743B05A40301FC0D2398A056886337CFDC230FD4902A605 + A400B8056F3A300C67F8F29561FA876C2A5970B38481E1D72F14C319BE7D4189 + 33B22DC0175FC87146AE0578E30B39CEC8B2801440730B007C5C13EF8DA2E719 + 0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [10] + end + inherited dsDataTable: TDADataSource [11] + Left = 56 + Top = 56 + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [12] + end +end diff --git a/Source/Modulos/Inventario/Views/uEditorEntradaSalidaArticulos.pas b/Source/Modulos/Inventario/Views/uEditorEntradaSalidaArticulos.pas new file mode 100644 index 0000000..508f879 --- /dev/null +++ b/Source/Modulos/Inventario/Views/uEditorEntradaSalidaArticulos.pas @@ -0,0 +1,345 @@ +unit uEditorEntradaSalidaArticulos; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorDBItem, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, + TB2Toolbar, ExtCtrls, JvExControls, JvNavigationPane, uCustomView, + uViewBase, uEditorItem, pngimage, uViewGridBase, + uViewGrid, JvComponentBase, uBizInventario, uViewEntradaSalidaArticulos, + uIEditorEntradaSalidaArticulos, uInventarioController, JvExComCtrls, + JvStatusBar, Grids, DBGrids, cxLabel, cxControls, cxContainer, cxEdit, + cxTextEdit, cxMaskEdit, cxDropDownEdit, cxCalendar, cxMemo, ToolWin, + dxLayoutControl, cxStyles, StdCtrls, Buttons, TBXDkPanels, uBizPedidosProveedor, + uDAInterfaces; + +type + TfEditorEntradaSalidaArticulos = class(TfEditorDBItem, IEditorEntradaSalidaArticulos) + actAnadirInventario: TAction; + actEliminarInventario: TAction; + actAnchoAuto: TAction; + TBXItem7: TTBXItem; + ToolBar1: TToolBar; + ToolButton1: TToolButton; + ToolButton2: TToolButton; + ToolButton6: TToolButton; + ToolButton7: TToolButton; + TBXItem33: TTBXItem; + pnlMovimiento: TTBXDockablePanel; + Label1: TLabel; + eFechaMovimiento: TcxDateEdit; + eCausa: TcxTextEdit; + Label2: TLabel; + pnlEntradaPedido: TTBXDockablePanel; + Label3: TLabel; + Label4: TLabel; + TBXDockPaneles: TTBXDock; + edtFechaPedido: TLabel; + edtReferenciaPedido: TLabel; + Label6: TLabel; + edtSituacion: TLabel; + Label7: TLabel; + edtProveedor: TLabel; + frViewEntradaSalidaArticulos1: TfrViewEntradaSalidaArticulos; + procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); + procedure actAnadirInventarioExecute(Sender: TObject); + procedure actEliminarInventarioExecute(Sender: TObject); + procedure actAnchoAutoExecute(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure actEliminarInventarioUpdate(Sender: TObject); + private + FTitulo: String; + FHayCambios: Boolean; + FResultadoModalOK: Boolean; + FController : IInventarioController; + FArticulos: IBizInventario; //Los artculos de entrada o salida + FInventario: IBizInventario; //Para sacar el stock + FPedidoProveedor: IBizPedidoProveedor; + function GetArticulos: IBizInventario; + procedure SetArticulos(const Value: IBizInventario); + function GetInventario: IBizInventario; + procedure SetInventario(const Value: IBizInventario); + function GetPedidoProveedor: IBizPedidoProveedor; + procedure SetPedidoProveedor(const Value: IBizPedidoProveedor); + function GetController : IInventarioController; + procedure SetController (const Value : IInventarioController); + function getResultadoModalOK: Boolean; + + protected + procedure GuardarInterno; override; +// procedure CancelarCambiosInterno; override; + function GetModified: Boolean; override; + public + property Controller : IInventarioController read GetController write SetController; + property Articulos: IBizInventario read GetArticulos write SetArticulos; + property Inventario: IBizInventario read GetInventario write SetInventario; + property PedidoProveedor: IBizPedidoProveedor read GetPedidoProveedor write SetPedidoProveedor; + property ResultadoModalOK: Boolean read getResultadoModalOK; + constructor Create(AOwner: TComponent); override; + procedure PonerTitulos(const ATitulo: string = ''); override; + end; + +implementation + +uses uEditorBase, uBizAlmacenes, uBizObras, schAlmacenesClient_Intf; +{$R *.dfm} + +//uses uEditorUtils; + +{ TfEditorRecibirPedido } + +function TfEditorEntradaSalidaArticulos.GetArticulos: IBizInventario; +begin + Result := FArticulos; +end; + +function TfEditorEntradaSalidaArticulos.GetController: IInventarioController; +begin + Result := FController; +end; + +function TfEditorEntradaSalidaArticulos.GetInventario: IBizInventario; +begin + Result := FInventario; +end; + +function TfEditorEntradaSalidaArticulos.GetModified: Boolean; +begin + Result := FHayCambios; +end; + +function TfEditorEntradaSalidaArticulos.GetPedidoProveedor: IBizPedidoProveedor; +begin + Result := FPedidoProveedor; +end; + +function TfEditorEntradaSalidaArticulos.getResultadoModalOK: Boolean; +begin + Result := FResultadoModalOK; +end; + +procedure TfEditorEntradaSalidaArticulos.GuardarInterno; +begin + inherited; + + //En este punto se realizar el applyupdates + if FController.Guardar(FArticulos, eFechaMovimiento.Date, eCausa.Text) then + FResultadoModalOK := True + else + FResultadoModalOK := False; + + FHayCambios:= False; +end; + +procedure TfEditorEntradaSalidaArticulos.PonerTitulos(const ATitulo: string); +begin + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorEntradaSalidaArticulos.SetArticulos(const Value: IBizInventario); +begin + FArticulos := Value; + + if Assigned(FArticulos) then + dsDataTable.DataTable := FArticulos.DataTable + else + dsDataTable.DataTable := NIL; + + frViewEntradaSalidaArticulos1.dsDataSource.DataTable := dsDataTable.DataTable; + +// PonerEtiquetasEnEditor +end; + +procedure TfEditorEntradaSalidaArticulos.SetController(const Value: IInventarioController); +begin + FController := Value +end; + +procedure TfEditorEntradaSalidaArticulos.SetInventario(const Value: IBizInventario); +begin + FInventario := Value; +end; + +procedure TfEditorEntradaSalidaArticulos.SetPedidoProveedor(const Value: IBizPedidoProveedor); +begin + FPedidoProveedor := Value; + if Assigned(FPedidoProveedor) then + begin + edtFechaPedido.Caption := DateToStr(FPedidoProveedor.FECHA_PEDIDO); + edtReferenciaPedido.Caption := FPedidoProveedor.REFERENCIA; + edtSituacion.Caption := FPedidoProveedor.SITUACION; + edtProveedor.Caption := FPedidoProveedor.NOMBRE; + pnlEntradaPedido.Visible := True; + TBXItem7.Visible := True; + end + else + begin + pnlEntradaPedido.Visible := False; + TBXItem7.Visible := False; + end; +end; + +procedure TfEditorEntradaSalidaArticulos.actAnadirInventarioExecute(Sender: TObject); +begin + //Todos los cambios sern en cach hasta que el usuario decida guardar + FController.Anadir(Articulos, Inventario); + actAnchoAuto.Execute; + FHayCambios:= True; +end; + +procedure TfEditorEntradaSalidaArticulos.CustomEditorClose(Sender: TObject; var Action: TCloseAction); +begin + inherited; + FController := Nil; + FArticulos:= Nil; + FInventario:= Nil; + FPedidoProveedor:= Nil; +end; + +procedure TfEditorEntradaSalidaArticulos.FormShow(Sender: TObject); +var + AAlmacenOrigen: IBizAlmacen; + AAlmacenDestino: IBizAlmacen; + AObraOrigen: IBizObra; + AObraDestino: IBizObra; + +begin + inherited; + + FTitulo := ''; + if Assigned(FArticulos) then + begin + //Titulos + try + AAlmacenOrigen := Controller.AlmacenesController.Buscar(FArticulos.IDAlmacenOrigen); + AAlmacenOrigen.DataTable.Active := True; + AObraOrigen := Controller.ObrasController.Buscar(FArticulos.IDAlmacenOrigen); + AObraOrigen.DataTable.Active := True; + + AAlmacenDestino:= Controller.AlmacenesController.Buscar(FArticulos.IDAlmacenDestino); + AAlmacenDestino.DataTable.Active := True; + AObraDestino:= Controller.ObrasController.Buscar(FArticulos.IDAlmacenDestino); + AObraDestino.DataTable.Active := True; + + case FArticulos.TipoMovimiento of + tEntradaLibre : + begin + if AAlmacenDestino.RecordCount > 0 then + FTitulo := 'Entrada de artculos en "' + AAlmacenDestino.NOMBRE + '"' + else + FTitulo := 'Entrada de artculos en "' + AObraDestino.NOMBRE + '"'; + actGuardarCerrar.Caption := 'Realizar la entrada de los artculos'; + end; + tEntradaPedidoProveedor : + begin + if AAlmacenDestino.RecordCount > 0 then + FTitulo := 'Entrada por pedido de artculos, en "' + AAlmacenDestino.NOMBRE + '"' + else + FTitulo := 'Entrada por pedido de artculos, en "' + AObraDestino.NOMBRE + '"'; + actGuardarCerrar.Caption := 'Realizar la entrada de los artculos'; + end; + tSalidaLibre, tSalidaAlbaranCliente : + begin + if AAlmacenOrigen.RecordCount > 0 then + FTitulo := 'Salida de artculos en "' + AAlmacenOrigen.NOMBRE + '"' + else + FTitulo := 'Salida de artculos en "' + AObraOrigen.NOMBRE + '"'; + actGuardarCerrar.Caption := 'Realizar la salida de los artculos'; + end; + tTraslado: + begin + if AAlmacenOrigen.RecordCount > 0 then + FTitulo := 'Traslado de artculos desde "' + AAlmacenOrigen.NOMBRE + else + FTitulo := 'Traslado de artculos desde "' + AObraOrigen.NOMBRE; + + if AAlmacenDestino.RecordCount > 0 then + FTitulo := FTitulo + '" hasta "' + AAlmacenDestino.NOMBRE + '"' + else + FTitulo := FTitulo + '" hasta "' + AObraDestino.NOMBRE + '"'; + actGuardarCerrar.Caption := 'Realizar el traslado de los artculos'; + end; + tReserva: + begin + if AAlmacenOrigen.RecordCount > 0 then + FTitulo := 'Reserva de artculos de "' + AAlmacenOrigen.NOMBRE + else + FTitulo := 'Reserva de artculos de "' + AObraOrigen.NOMBRE; + + if AAlmacenDestino.RecordCount > 0 then + FTitulo := FTitulo + '" para "' + AAlmacenDestino.NOMBRE + '"' + else + FTitulo := FTitulo + '" para "' + AObraDestino.NOMBRE + '"'; + actGuardarCerrar.Caption := 'Realizar la reserva de los artculos'; + Label2.Caption := 'Fecha de la reserva:'; + end; + end; + finally + AAlmacenOrigen := Nil; + AAlmacenDestino:= Nil; + AObraOrigen := Nil; + AObraDestino:= Nil; + end; + + //Botones de aadir y eliminar + case FArticulos.TipoMovimiento of + tEntradaLibre, tSalidaLibre, tTraslado, tReserva : + begin + pnlMovimiento.Visible := True; + eFechaMovimiento.Date := Date; + actAnadirInventario.Enabled := True; + actAnadirInventario.Visible := True; + actEliminarInventario.Enabled := True; + actEliminarInventario.Visible := True; + frViewEntradaSalidaArticulos1.cxGridViewCANTIDAD.Properties.ReadOnly := False; + end; + tEntradaPedidoProveedor, tSalidaAlbaranCliente : + begin + if (FArticulos.TipoMovimiento = tEntradaPedidoProveedor) then + ToolBar1.Visible := False; + + actAnadirInventario.Enabled := False; + actAnadirInventario.Visible := False; + actEliminarInventario.Enabled := False; + actEliminarInventario.Visible := False; + if (FArticulos.TipoMovimiento = tSalidaAlbaranCliente) then + frViewEntradaSalidaArticulos1.cxGridViewCANTIDAD.Properties.ReadOnly := True + else + frViewEntradaSalidaArticulos1.cxGridViewCANTIDAD.Properties.ReadOnly := False; + end; + end; + + end; +end; + +procedure TfEditorEntradaSalidaArticulos.actAnchoAutoExecute(Sender: TObject); +begin + frViewEntradaSalidaArticulos1.cxGridView.ApplyBestFit; +end; + +procedure TfEditorEntradaSalidaArticulos.actEliminarInventarioExecute(Sender: TObject); +begin + //Todos los cambios sern en cach hasta que el usuario decida guardar + Controller.Eliminar(Articulos, false, false); + FHayCambios:= True; +end; + +procedure TfEditorEntradaSalidaArticulos.actEliminarInventarioUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos; +end; + +constructor TfEditorEntradaSalidaArticulos.Create(AOwner: TComponent); +begin + inherited; + FTitulo := ''; + FHayCambios:= False; + FResultadoModalOK := False; +end; + +end. diff --git a/Source/Modulos/Inventario/Views/uEditorInventario.dcu b/Source/Modulos/Inventario/Views/uEditorInventario.dcu new file mode 100644 index 0000000..bb456a9 Binary files /dev/null and b/Source/Modulos/Inventario/Views/uEditorInventario.dcu differ diff --git a/Source/Modulos/Inventario/Views/uEditorInventario.dfm b/Source/Modulos/Inventario/Views/uEditorInventario.dfm new file mode 100644 index 0000000..02edd72 --- /dev/null +++ b/Source/Modulos/Inventario/Views/uEditorInventario.dfm @@ -0,0 +1,1936 @@ +inherited fEditorInventario: TfEditorInventario + Left = 381 + Top = 263 + Caption = 'Inventario de art'#237'culos en almacenes' + ClientHeight = 540 + ClientWidth = 669 + ExplicitWidth = 677 + ExplicitHeight = 574 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 669 + Caption = 'Inventario de art'#237'culos en almacenes' + ExplicitWidth = 669 + inherited Image1: TImage + Left = 642 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB51930000021A4944415478DA63FCFFFF3F + 032D01E3F0B08091919162838E4930FCBFF28281210D6826880F7338552C0019 + 6E5E94CBC0B47C32C3ECF3104BA866C19A1533FFDB38F833887B4A301C7FCEC0 + 00F20508A4FEFFCF48B10587E648FD57F339C7F0E2C50B86070F1E3088650430 + C08209C507737B73498E693581750C568193188EADCF637827320D6C494B4B0B + 43434100434AC9144C0B6272748832F8FFBFBF0CA797B5820D677852CDF0E1F9 + 5D866B4FC418A21A9818CEEC0962E86C3DCAA0AD6FC9905C3C9991640B08197E + FEF453865DBB1E305CBAF98D61CFC96BD82DF058E081D38226162B9C86FFFBF3 + 9BE1E2F957842D20C7E520C341F8F2E5F7A45B00321CA4F9ECAA2E062B535E9C + 86FFFDFD8BE1DA8DAFE40591F5FD120679A6AB0C1ACA1FC17C90E12A3547E0F2 + 0B0CABC196DCBCF797781FFCFBF30BE8AADF60BAABE72C83BBEA3186B53BFF31 + AC3DCEC2707A57008A3CD817401FDC7ECC4C9C05C89A63332E327C78799F4159 + 458AA1A34A011A2410F9ABD73E61F896E4207A3BD59741514D9B6176BB248AE1 + 20FAFAAD1F0C8EA1AE0C3F3EBE65F8FDF513C3B7374F19264CBE8EDB026CDE86 + 198A6E382CCC2DDD8C500C2FC8D56448CA398B694154861A4986C3C2DCC45A05 + C5702E11698688884D981684272B321CD9728CA8E2021968A973A218CECACDC7 + 10ECBB04D382AB178F936C380C201BCEC12FCCE06D3711D50250713DA727E7FF + F2557BC9B6041DA058404B40730B007F5332EF0A8D77020000000049454E44AE + 426082} + ExplicitLeft = 603 + end + object Image2: TImage + Left = 615 + Top = 0 + Width = 27 + Height = 27 + Align = alRight + Center = True + Picture.Data = { + 0B546478504E47496D61676589504E470D0A1A0A0000000D4948445200000018 + 000000180806000000E0773DF8000000017352474200AECE1CE9000000046741 + 4D410000B18F0BFC6105000000206348524D00007A26000080840000FA000000 + 80E8000075300000EA6000003A98000017709CBA513C00000009704859730000 + 17100000171001186111DB000002E249444154484BB596EF4B535118C7E7BBDE + F43F44D12B0982FE808892B437BDCB428B2CB04C4C1B16A312417AE10FCA5F69 + 12A5D39A59B417196413CD10225743A7A9ED8777FEDAD4E9DDA64DC7FCD5B73D + C78ECD7BEE9C825D78B8EC9EBBCFE73CCF79CEBD370180E6BF1E4C706BE05024 + 1AF6DF73602F82588C49C75F41C391479338F6C4B7EB78FA2D840C6310FCBC9C + 7314C5F98560122E48BC634642AE754FE3E0D9A68DDA530624A00B6A11EED180 + 477D7D3D78D0BDD1BF9563822022523D088EE03EE8F57A040201C8B28CF6F676 + 0637994C989C18834F9E857FCE03D9EB8663C4C5C6762DA03F499204BBDD8E9A + 9A1AB4B6B6325073733306ACBD700CF761C4D607D7880D92D3C6C6B694285E06 + 3A9D8E090C06036A6B6B51505080AC1B59282E2D41755505AACA4B515D5986D7 + 2D2FF1B9D304ABC5CCE49B6B104F907EE922836BB55A645CBD82D4F3A9484B4F + C3B90BA9484A494272CA29249D3C8E9B79B9282B2986A1A97177028C9F405E5E + 0E6EE76BA1BBAB4397D9C982666F341AD9393B3B9B5D3B7D26190F8A8A58A63B + CA802D7444004BA4A374C90C220796E09583A8B8AED98C0387136173CD426FEC + 46E6B5CC9D09D6D7B1D9A64AB8C7BBC0E0E19ECBE8A9D3800483CE193C7BD3C5 + BA8824DB66C0E1D4A6CA0C083E31151004FDB629D4BDEA88DFA6045F595DDF98 + 7DA42CD1412522F8A8DB27087A87DC78FCC2B4BD80C343E155049796D1D8F409 + 6D1F8771BFB085D59FC39DE3B22030F78FA352FF21B680C317432B580886E19F + 0F090269C207C7D81C8625AF20F8D23B8A87CFDFAB0B56D77E23BCBC8668F8AC + 7F511070F80FC7B420E8FE2EA90B62C1A7E77E09029A39C1FB7E7A0401955035 + 03B59913DC3D332F0838DC3238B97381B22C1C3EE6F10B029A39C1694195FB20 + 6606B4A07CFB777CB5A3AD7B08EF3AAD786BB26C11D026A23EA756A46E510AA8 + 3CAA258AF5C2A1EBD4A214D4AECAFB9482E8F17FEFE4389F157C0FD03E50DE4A + 027A4CF0478580DA8BCF16FEC0539BE71FEB8EC0C6C326A8B30000000049454E + 44AE426082} + Transparent = True + ExplicitLeft = 603 + end + end + inherited TBXDock: TTBXDock + Width = 669 + ExplicitWidth = 669 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 669 + object TBXSeparatorItem84: TTBXSeparatorItem [6] + end + object TBXItem54: TTBXItem [7] + Action = actTrasladar + DisplayMode = nbdmImageAndText + end + object TBXItem55: TTBXItem [9] + Action = actRecibirPedido + DisplayMode = nbdmImageAndText + end + object TBXSeparatorItem17: TTBXSeparatorItem [10] + end + object TBXItem56: TTBXItem [11] + Action = actLiberar + DisplayMode = nbdmImageAndText + end + object TBXItem57: TTBXItem [12] + Action = actReservar + DisplayMode = nbdmImageAndText + end + end + inherited tbxFiltro: TTBXToolbar + ExplicitWidth = 269 + inherited TBXItem37: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 669 + end + inherited TBXTMain2: TTBXToolbar + Left = 269 + DockPos = 264 + Visible = True + ExplicitLeft = 269 + ExplicitWidth = 113 + object TBXItem38: TTBXItem + Action = actReservados + DisplayMode = nbdmImageAndText + end + end + end + inherited StatusBar: TJvStatusBar + Top = 521 + Width = 669 + ExplicitTop = 521 + ExplicitWidth = 669 + end + inline frViewInventario1: TfrViewInventario [3] + Left = 0 + Top = 102 + Width = 669 + Height = 419 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 102 + ExplicitWidth = 669 + ExplicitHeight = 419 + inherited cxGrid: TcxGrid + Width = 669 + Height = 250 + TabOrder = 2 + ExplicitWidth = 669 + ExplicitHeight = 250 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Position = spFooter + Column = frViewInventario1.cxGridViewCOSTE_UNIDADES + end> + DataController.Summary.FooterSummaryItems = < + item + Format = '0 art'#237'culos' + Kind = skCount + end + item + Format = '0 art'#237'culos' + Kind = skCount + Column = frViewInventario1.cxGridViewDESCRIPCION + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = frViewInventario1.cxGridViewCOSTE_UNIDADES + end + item + Format = '0' + Kind = skSum + Column = frViewInventario1.cxGridViewUNIDADES_ALMACEN + end + item + Format = '0' + Kind = skSum + Column = frViewInventario1.cxGridViewSTOCK + end + item + Format = '0' + Kind = skSum + Column = frViewInventario1.cxGridViewRESERVA + end + item + Format = '0' + Kind = skSum + Column = frViewInventario1.cxGridViewPENDIENTE_RECEPCION + end> + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 669 + TabOrder = 0 + ExplicitWidth = 669 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 669 + inherited dxLayoutControl1: TdxLayoutControl + Width = 669 + ExplicitWidth = 669 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 572 + Width = 572 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 246 + Width = 246 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 350 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 350 + ExplicitWidth = 205 + Width = 205 + end + inherited eLista: TcxComboBox + Left = 592 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 592 + ExplicitWidth = 67 + Width = 67 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 669 + ExplicitWidth = 669 + inherited tbxBotones: TTBXToolbar + Width = 659 + ExplicitWidth = 659 + end + end + end + inherited dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList + Left = 128 + Top = 8 + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 393 + TabOrder = 1 + ExplicitTop = 393 + ExplicitWidth = 669 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 669 + ExplicitWidth = 669 + inherited TBXToolbar1: TTBXToolbar + Width = 659 + ExplicitWidth = 659 + end + end + end + inherited pnlAlmacenes: TPanel + Width = 669 + ExplicitWidth = 669 + DesignSize = ( + 669 + 41) + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + Active = False + ReportDocument.CreationDate = 39211.788061157410000000 + BuiltInReportLink = True + end + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewInventario1.cxGridView + HitTypes = [gvhtCell] + Index = 0 + end> + end + end + inherited EditorActionList: TActionList [4] + Left = 96 + Top = 112 + inherited actNuevo: TAction + Caption = '&Entrada' + ImageIndex = 21 + end + inherited actModificar: TAction + Visible = False + end + inherited actEliminar: TAction + Caption = 'Salida' + ImageIndex = 22 + end + inherited actPrevisualizar: TAction + Visible = True + end + inherited actImprimir: TAction + Visible = True + end + inherited actDuplicar: TAction + Visible = False + end + inherited actAnchoAuto: TAction + ImageIndex = 27 + end + object actRecibirPedido: TAction + Category = 'Logistica' + Caption = 'Recibir pedido' + ImageIndex = 24 + OnExecute = actRecibirPedidoExecute + OnUpdate = actRecibirPedidoUpdate + end + object actTrasladar: TAction + Category = 'Logistica' + Caption = 'Trasladar' + ImageIndex = 23 + OnExecute = actTrasladarExecute + OnUpdate = actTrasladarUpdate + end + object actReservar: TAction + Category = 'Logistica' + Caption = 'Reservar' + ImageIndex = 25 + OnExecute = actReservarExecute + OnUpdate = actReservarUpdate + end + object actLiberar: TAction + Category = 'Logistica' + Caption = 'Liberar' + ImageIndex = 26 + Visible = False + OnExecute = actLiberarExecute + OnUpdate = actLiberarUpdate + end + object actReservados: TAction + Category = 'Logistica' + Caption = 'Ver reservados' + ImageIndex = 25 + OnExecute = actReservadosExecute + OnUpdate = actReservadosUpdate + end + end + inherited SmallImages: TPngImageList [5] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000F54944415478DA + 6364C002AE56C8FC67201230E23240B9A106C2F9F18381E1C11D86799D1B1892 + E6638AE13700AA70F6256F06E6EDA91003D0C4701B50510256C870E32AC3EC5F + 651003A6638AE1362022006C0B0C800D28C714C369C0C1871404222901CB88AE + 089B66ED8E278CB8029691185BB296430DA82014880633FEFF38C180610BDC80 + 080281689C7EFDFFD99307197E2CB882620BCC006C01CB08D204E3E4C5AA30BC + FBF88DA1B07A39C3E42279B82D200370C602C8009046100069BEF7E42D985EBA + EC08C334CD16B038410340CE0681DC4C3786BB8FDF306CDB728E81E142065151 + 8C1188609A48CDD80D20413308000018D5C3DDD8008BA70000000049454E44AE + 426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000F64944415478DA + 63BC5A21F39F8148A0DDF184115D8C11648072430D84F7E30703C3833B0CF33A + 373024CDC714CB5A8ECF00A8C2D997BC1998B7A7420C4013C36D4045095821C3 + 8DAB0CB37F95410C988E2986DB808800B02D300036A01C530CA701071F121788 + F8C3808800C306700622C8005C518C1C9D380311660021D7E10C441403905C97 + DB070CB00B19A806600B44B80168AE5B705481E1ECC9837043F00614CC75D6D3 + B3E16279B12A0CEF3E7E6328AC5E0E3684A00120D7CDE5DB0DD6080220CDF79E + BC05D34B971D61202AAA8CD3AFFF073B1B087233DD18EE3E7EC3B06DCB39C22E + C00A0C6640A2969830C06900522C0000AF7FD7D8678509020000000049454E44 + AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000013A4944415478DA + 63BC5C22F99F8148A0D3FD8C115D8C1164806A4B0D84F7FD3B03C3FD3B0CB3DB + 3732A42EC614CB5985CF00A8C2E9177D1858B6A5420C4013C36D4075315821C3 + F5AB0CD37F95430C98852986DB80287FB02D300036A012530CA701071E121788 + F8C360D00422474704C3648D169C81C8A837EDFFFF4B598CA8064003B1B0EF21 + 8381990343F227179C81689872EDFF855307186086800DD8A33D1BACB9BB359A + 4158809B61D2C25B708D20C3E6F2ED81F3F3E2D518DE7EF8CA505ABD94A1BF48 + 9E81F1FFFFFF0C20678547DA320801352BC908830D01019041E7E768816D0569 + 040190E67B4FDE32BC03D22B971F861800760AD010376F630665395186E9D377 + 80C540DE81190072360864667A30DC7DF49A61D7D6B3606FC00D801902A29103 + 0923D4D1D4A018005340C8009458403780540000D999FD8911DCCCCA00000000 + 49454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B3A00000B3A01647F570D000001BD4944415478DA + 63FCFFFF3F03258011D980BE9612BCA615D5F43012342037D71F43E3D7774F18 + 0C6D0B18EE3F7989DD80E9FD4DC140F69AEF5F3F31A01B00D27C6A511543FAEC + 6F0C0F9EBEC269C0FFA4747E86A97D8FE106FCFEFE89E117107F7DF384E1EAB6 + 69A41900D2FCF5ED53207ECCF0FBDB6786FB2737820D282BCE866BCC2AAA67C4 + 6A40468A235C3388FEF6EE1983D9443FB8C61F277E33CC9BF911B701B1816A0C + 171FBC63B87DEB17C4A6F9220C160EEA0C2FD6453148042D633871E026C3B4C4 + 3760F15707E2310DD033146160F8FE9EC1D6E02D0323D00E75FBCD70DB2F6C30 + 61F05854043604047AF4B37FA018F0E9E33F861D5BFF337898DE62E0E7F9C3F0 + FFDF5F867FBF7E32FCF9FD83E1DF1F20FEFD9341283D98A1AED48FA1A97B13C8 + 002714030EEFFF0EB6DDCEF02DC3FFFFFF18FEFDFC01D5FC13A8F90758330AB8 + 9CCD0837202482176E3B2FC70F86FF7F7F31FCF985B01966C89FAF9F1996ADBA + F503A8DDAB6409C37EB801AA6A6C60DB6D749F8335FCFDF38BE12FD480FF6003 + 7E01BDF38BE1F1F51B0C07CFFFBE03D4AC8A120BDA4A9F19D8DEEC6160F97815 + 6FE6016A86DB8E62C0B773F5C4643E14CD1899891C000039F251E625517D8200 + 00000049454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001A94944415478DA + 8D925D28836114C7FF4FBEE246B9734BBB61B990C89512492925F9B6BB5D0817 + 98968FF21186250AADB69285D2848DB2A5AC854D44CBB7D096C495A4D078278F + BDCF986C5EAF53E7E2391FBF739E7F871C2AE229FE6952F52D098E111E20E969 + F7BF3C1EC07D099DCA04F95468ACCEF017E0B350B35F80F015B91F10141306B4 + 35B1429C1E43C329FD00AD3F962493E22156E2AB04C2C280A8FB0B5C1FD4929F + 808A4236E5CB18A0A51059CD524CE86B7E4C54CD7A611C69C5E3F51009006C57 + A1822D726D181DAF816DDF0B854CC936A03E2F560EB0BC75BA0337CE7E2228A2 + FA7912666D0E4A4B1A71681FF95E396D8B5695A7C2BED00597BD8F088A38F834 + 098B2E0795D58D705A4301DBCBDD38B7F5124111EB5DF3A277417733C9AF2236 + 8CC5E1D894210A48CE1FFE5D447E3A0F303ADEC0BD51B87737E1DAE944427A27 + A21333F1F24AA19F3900380708A5A197CCFF930718D6BDE0BC141BBADC402EB1 + C8020FF70EC3DC9138607A8D631BF0EE9CCA0B34BFF87CC974220ED0995F59F3 + ED9E1177671A44C457213AA98C01ACAB677F034415E44D08C0202943A290C8C8 + 98EC0F53DC14659A0322CE0000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001A44944415478DA + 63BC5C22F99F8148A0D3FD8C115D8C1164806A4B0D84F7FD3B03C3FD3B0CB3DB + 3732A42EC614CB5985CF00A8C2E9177D1858B6A5420C4013C36D4075315821C3 + F5AB0CD37F95430C980511D38AD361F8C0AF0A54C9C0C0CCCCC0C0FEEE36C3E3 + 4BD98CA80644F9836D8101B00195FE0CF6A53A0CF31666A2D8D8BEE237C38609 + 550C9F1FF732C20D38F01033C0D6FFAA66983C3593E1C0C5DF0C2571E56017FC + 07E290F24EB0FCBE25F50C4FCF7730E20CC4EEAF0B18B6CF7261080F2B62B87C + 7402C2C926C7FF3BC99C63B8FFFA29C3BDA36D8C3803B1EBCB02861DB35D18A2 + 638B18CEEF9BC0C88003E00CC4DC7B6B09A68BFF672C19B10662E1142186AB1B + CD091AA0EDD98F3D1041B6830CD870EC0FC3AF3FFF19EE9F39C270EF54038392 + 590303A7B225C38F9FFF19162EBDC4C0F0EB1803E3FFFF98291914502003561D + FACDF0EBF77F86C3B35DE172CA413B18BEFFFAC7B06AF515C2062CD9FB0BEC02 + 103EBFD81DAEF907106FDA788DB001B3B7FF046B7E767603C39B1BD319582563 + 1838B522C006ECDB7503BF01044310047019003644AF97A0216C6C5C4E003148 + 0E65624E21D60000000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage27' + Background = clWindow + end> + Left = 371 + Top = 160 + Bitmap = {} + end + inherited LargeImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001914944415478DA + 63FCFFFF3F032D0123CD2DC02571B542C61948EDC1A3D78590BC56FBE3BDF82C + F8AFDC50C3C0CE9E8E21F7F3E74C8679892D0C49F3F1CB672E7BCC88D702A00B + C08AE1E0C70F20FECE307B970103F3F654900184E449B000A4F9C33B8801A79C + 302DC02E4FA40530CD60037E32CCBE15846A016E79222CF83811A1F9C307880B + 5FA5202CC02F4F84050FEB119A6141F0AB0C61017E794682A968F62A79ACF220 + 0340A9089F3C210B9C0F3EC49DCEEDE5195C08C9E3CD07840031F904AB0F88C9 + C1DA1D4FF612994FB05A40D06559CB9F3012994FD02C3098F1FFAA470B032197 + 6158406C3E304EBFFEFFECC9830CFFCFA7E375198A0584F201C8509400761264 + E86CDFC0F0E304034E97A15840281F802CC88B554109A919AB8E311C3F749DE1 + C78667585D06B380503E41B1E0DAD3B70C2F3F7F6778F3E53758C1DB7BCF2196 + 4C3882E132A80504F309381FC02CD87FE30986E1938BE4B1BA0C640131790554 + 5B32C22216062CED34C1864FD36CC1E932503E20DA02F4640AA62F64909DC309 + 5B4025C3E116D0BA550100E46DEBE08B969D720000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000019B4944415478DA + 63FCFFFF3F032D0123C8826B95B2CE40F61E3CEA5C08C96B773CD98B2E08321B + 66C17FE5861A0676F6740C9D3F7FCE649897D8C290341FBF7CD6F2278C782DD0 + 6A7F0C560C073F7E00F17786D9BB0C1898B7A732642EC32F4F9A0520CD1FDE41 + 0C38E58469011679E22D8069061BF09361F6AD20540B70C81367C1C78908CD1F + 3E405CF82A0561011E79E22C78588FD00C0B825F65080BF0C813B400948A66AF + 92C79A0641068052113E794216381F7C883B9DDBCB33B81092A7381F60732121 + 40523E005970B54286608E47F60949F9006A01493E25291FC02CC0E5530E0F41 + 86699A842C2090CE312C40F2A9757F12C3D9930719182E64E0B180403A47B100 + 68B875B93B6A0438093274B66F805B42523E40B100EA53EBF64886BC581514B5 + 33561D63387EE83AD81292F2012875C02D80FAD47A7A36D8826B4FDF32BCFCFC + 9DE1CD97DF60F56FEF3D075BF2FF7C3A23C41646E292382C15C17CBAE0A802D8 + 82FD379E60188EE203122C40F1E95CBEDD908885024B3B4DB8E1287140AC0578 + 81C10C48E58E2D1551CD0224C3512CA025A0B90500E54149EFB4C64472000000 + 0049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001A44944415478DA + 63FCFFFF3F032D0123C8822BA552254076371E75A584E475BA9FF5E0B3E0BF6A + 4B0D033B7B1686829F3FA731CC8E6D61485D8C5F3E67D53346BC16005D00560C + 07DFBF3330FCF8CE307D872103CBB654900184E449B000A4F9C33B303DFDA433 + A605D8E589B400A6F93D10FFF8C930FD6630AA05B8E589B0E0432F42F3870F10 + 17BE4A4558805F9E080B1E542334835D0834E05739C202FCF2F82D00A5A2E9CB + E5B1A6419001A054844F9E900525071EE24EE70EF20CA584E447F3C130C90786 + 29D7184ED42CC5990F18F5A6FDFF7F298B11B70578D2F95CBE3D600D27B227E3 + CC074007FCBF70EA0003B22544E58385471419F2E2D518262DBC85221E6F731F + 2C870C9C9D85187ADBD7C12D8159E00C4CE77BB0190E7239C8F0AB4FDE3068CB + 88C0C593B267314CD66881CB2383E92B8E309C3E7C0D6C0923BE1A0D14A6F3A6 + A6810D7FF9F93B58ECCDE75F0C6FEF3D871B000A169803406A40F2200053C348 + A8CA0459E211EF0CD70403E816ECBBFE18C370823E40B6C4D4560BAC0919C02C + 00452C0CC0D4A1C40131006409CC5052D4106D01CC00421660CD07B404001FE5 + 4BB30B8819120000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B1300000B1301009A9C18000002E14944415478DA + B5946B4814611486DF15C3122BB444ED8F901A921678438824C140D3CD322BD0 + 2828BB295678234249A8ED87844461A969125844264A60E18F42A2D032B520FF + C836EB6AEDEAEE9A3BB2E67AD99969BED976749A1DD92C0F0C73E6CC37EFF3CE + 39DF8C8AE338AC66A8960206CBB6A4F0A757CBACDF1B7DD3F8FA5F005C84A602 + 3E3E05B2857373F7D0705C83C216A3EA9F00BC43414C0CBB1D98B5A3B63306DE + 2FCFFC67002F1EA0DE8C358E4964A5C6624F5C30E2B60762477880C71001507B + EB5A369FB72619EB200288737A122167A33165A6C1B21C36F8AD85971710B9D5 + 1F17737622373D7C5910D17601B82C358789FBF54E005D2D88C3CA1F342DC022 + 6B8EC23ECB203323163D031446862DB85BBE1B27D4912A8F00A7CE6D84B6B2CA + 09D0972F8A933399C1FC65F46B7DD1F96E04599909E8EEA760B5D0787E3B0D09 + 51412A8F016417D53E0975EB880CF94560033E7E99C0A103F16869EF45727C08 + 52437BC53505C5952A45C00CA5C7E3EB4F157B7AACE208DA74E75156DD83C307 + 1385560D53663CD424637F74236ACAAA50FA08CA00E569B1589FE42BA4ECEF5D + 575EACE6DBA483D16485C9F003B46D5EA8339FF33D03580D34DA3BA4ADBDD41C + 842B4519E23501B8628CDF69C6510B6E641BC45A7ED1559522A0A97E0A3151DE + 880DD349EAFE398928294CC3E09011B69F738BE2DF2CD057B7F02FEB80B6FB2D + DE7C5AF85AD2CC45B805B8DCE7658EBAE99603FEB9BB507A619F00D1EA4DD053 + 2618EEB40AF7A64606F1ACC33CCB2F4DE7015D6E014AEE8900E75800C738B0E9 + 640AC2B6054BC4596601D487F7827B7ED8116E67A0E47EA938C91902C94BC744 + 5D9B286EFB3E24BAE7015D7200C3A0A9715AE6DE9D38C9C13A447172ADEBEB13 + DDCB77D1693F58C76D32F79E8A4F8F5112F77240DE3A343DB04BDCFF8DB8D960 + 95B89701C8CF4E74CF7F58E441978033778A0A07A9B3CEFAF4F8B04B5CE25E06 + 2085044E8395C69FEE65809981CA158BF321732F01AC66AC3AE0176A11A2EF01 + B8EA320000000049454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001FE4944415478DA + 63FCFFFF3F032D0123C8822BA552254076371E75A584E475BA9FF5E0B3E0BF6A + 4B0D033B7B1686829F3FA731CC8E6D61485D8C5F3E67D53346BC16005D00560C + 07DFBF3330FCF8CE307D872103CBB654900184E449B000A4F9C33B303DFDA433 + A605D8E589B400A6F93D10FFF8C930FD6630AA05B8E589B0E0432F42F3870F10 + 17BE4A4558805F9E080B1E542334835D0834E05739C202FCF2F82D00A5A2E9CB + E5B1A6419001A054844F9E900525071EE24EE70EF20CA584E469920F184D8E63 + A8FF7FC69211AB05A4E6030E6B43862B1BCC510C6F5DF18F61F9A2890CFF2F15 + 33E2B780403E8019BEFFE25F86DCCA49700B22E3F2C134B22564E5030E172BB0 + 053A5EFD0CFD451AF0480606D9FFC808533C1610990F38427CC8B480887C0032 + 9C58008A7092F20128EC27379A3038EA3313341C163F300B9C81E97C0FBE740E + CA07B9F7D6828366F73906865F7FFE83F14F10FD1B8AC162408FFF626058B2EC + 3C50D1318805C4025018832CD87A0A61F8833347181E9CAE6350306D62E050B2 + 041BFEFDD77F86B56B2E906FC1FA63FFE02E3F36C7192EAF10B81B6CF88F9FFF + 18B66EBE44BE052B0EFD4509964B4B5D510CFFF1FB1FC3DE1D57C8B760FE9E3F + 0CBF7E410C7F7E6E3DC3BB9BD3189825621938B4A28196FC65F8F38F81E1D8DE + ABE459004A45B9F56788D340AA05604BF47A89D600CA6C004568670C5BA5F9FB + 0000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002054944415478DA + 63FCFFFF3F032D0123C8822BA552254076371E75A584E475BA9FF5E0B3E0BF6A + 4B0D033B7B1686829F3FA731CC8E6D61485D8C5F3E67D53346BC16005D00560C + 07DFBF3330FCF8CE307D872103CBB654900184E449B000A4F9C33B303DFDA433 + A605D8E589B400A6F93D10FFF8C930FD6630AA05B8E589B0E0432F42F3870F10 + 17BE4A4558805F9E080B1E542334835D0834E05739C202FCF2F82D00A5A2E9CB + E5B1A6419001A054844F9E900525071EE24EE70EF20CA584E469920F184D8E63 + A8FF7FC69211AB05A4E6030E6B43862B1BCC510C6F5DF18F61F9A2890CFF2F15 + 33E2B780403E8019BEFFE25F86DCCA49700B22E3F2C134B22564E5030E172BB0 + 053A5EFD0CFD451AF0480606D97F2799730CFBEEFDC0610191F98023C407AB05 + 782399D87C00329C58008A7092F20128EC27379A3038EA3313341C163F300B9C + 81E97C0FBE740ECA07B9F7D6828366F73906865F7FFE83F14F10FD1B8AC16240 + 8FFF626058B2EC3C50D1318805C4025024822CD87A0A61F8833347181E9CAE63 + 50306D62E050B2041BFEFDD77F86B56B2E906FC1FA63FFE02E3F36C7192EAF10 + B81B6CF88F9FFF18B66EBE44BE052B0EFD4509964B4B5D510CFFF1FB1FC3DE1D + 57C8B760FE9E3F0CBF7E410C7F7E6E3DC3BB9BD3189825621938B4A28196FC65 + F8F38F81E1D8DEABE459004A45B9F56788D340AA05604BF47A89D600CACD00E4 + E9610CDEDF75F30000000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage27' + Background = clWindow + end> + Left = 459 + Top = 160 + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [7] + end + inherited dsDataTable: TDADataSource [9] + Left = 8 + Top = 168 + end + inherited StatusBarImages: TPngImageList [10] + end + inherited GridPopupMenu: TPopupMenu + inherited Nuevo1: TMenuItem [3] + end + object rasladar1: TMenuItem [4] + Action = actTrasladar + end + inherited N1: TMenuItem [5] + end + object Liberar1: TMenuItem [6] + Action = actLiberar + end + object Reservar1: TMenuItem [7] + Action = actReservar + end + end +end diff --git a/Source/Modulos/Inventario/Views/uEditorInventario.pas b/Source/Modulos/Inventario/Views/uEditorInventario.pas new file mode 100644 index 0000000..d304b7f --- /dev/null +++ b/Source/Modulos/Inventario/Views/uEditorInventario.pas @@ -0,0 +1,479 @@ +unit uEditorInventario; + +interface + +uses + Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, + uCustomEditor, ImgList, PngImageList, StdActns, ActnList, TB2ExtItems, TBXExtItems, TBX, TB2Item, + TB2Dock, TB2Toolbar, JvExControls, JvComponent, JvNavigationPane, + uViewInventario, Menus, DB, uDADataTable, ComCtrls, uViewGrid, + uDAScriptingProvider, uDACDSDataTable, JvAppStorage, + JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls, uCustomView, + uViewBase, uViewBarraSeleccion, JvComponentBase, uEditorGridBase, + uIEditorInventario, uBizInventario, uViewGridBase, uInventarioController, + JvExComCtrls, JvStatusBar, uViewGrid2Niveles, JSDialog, uBizAlmacenes, + uDAInterfaces, dxGDIPlusClasses, uEditorElegirAlmacenObraOperacion; + +type + TEnumSeleccion = (tAlmacen, tObra, tAlmacenObra); + + TfEditorInventario = class(TfEditorGridBase, IEditorInventario) + actRecibirPedido: TAction; + actTrasladar: TAction; + actReservar: TAction; + actLiberar: TAction; + TBXSeparatorItem17: TTBXSeparatorItem; + rasladar1: TMenuItem; + Liberar1: TMenuItem; + Reservar1: TMenuItem; + frViewInventario1: TfrViewInventario; + actReservados: TAction; + TBXItem38: TTBXItem; + Image2: TImage; + procedure actModificarExecute(Sender: TObject); + procedure actRecibirPedidoExecute(Sender: TObject); + procedure actTrasladarExecute(Sender: TObject); + procedure actReservarExecute(Sender: TObject); + procedure actLiberarExecute(Sender: TObject); + procedure actTrasladarUpdate(Sender: TObject); + procedure actLiberarUpdate(Sender: TObject); + procedure actExpandirExecute(Sender: TObject); + procedure actContraerExecute(Sender: TObject); + + procedure FormShow(Sender: TObject); + procedure actReservadosUpdate(Sender: TObject); + procedure actReservadosExecute(Sender: TObject); + procedure actNuevoUpdate(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + procedure actRecibirPedidoUpdate(Sender: TObject); + procedure actReservarUpdate(Sender: TObject); + + private + function Seleccionar(Descripcion: String; TipoSeleccion: TEnumSeleccion): Variant; + function DarIDAlmacenSeleccionado(Descripcion: String): Integer; + function DarIDObraSeleccionada(Descripcion: String): Integer; + + protected + FTipoInventario: String; + FInventario: IBizInventario; + FController : IInventarioController; + + function GetTipoInventario: String; + procedure SetTipoInventario(const Value: String); + function GetInventario: IBizInventario; + procedure SetInventario(const Value: IBizInventario); + function GetController : IInventarioController; virtual; + procedure SetController (const Value : IInventarioController); virtual; + + procedure SetMultiSelect (AValue : Boolean); + function GetMultiSelect : Boolean; + function GetArticulosSeleccionados: IBizInventario; + + procedure NuevoInterno; override; + procedure EliminarInterno; override; + procedure ImprimirInterno; override; + procedure PrevisualizarInterno; override; + + public + property TipoInventario: String read GetTipoInventario write SetTipoInventario; + property Inventario: IBizInventario read GetInventario write SetInventario; + property Controller : IInventarioController read GetController write SetController; + property ArticulosSeleccionados: IBizInventario read GetArticulosSeleccionados; + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure PonerTitulos(const ATitulo: string = ''); override; + end; + +implementation +{$R *.DFM} + +uses + Variants, cxControls, uGridStatusUtils, uDataModuleInventario, uDataModuleUsuarios, + uEditorBase, uDBSelectionListUtils, cxGridDBTableView, cxGridCustomTableView, + uAlmacenesController, uFactuGES_App, uGenerarAlbaranesProvUtils, + schInventarioClient_Intf, uBizObras; + +{, uDBSelectionList, uDataModulePedidosProveedor, +uBizPedidosProveedor, uBizMontajes, uDataModuleMontajes; +} + + +{ TfEditorInventario } + +{ +***************************** TfEditorInventario ***************************** +} +constructor TfEditorInventario.Create(AOwner: TComponent); +begin + inherited; + ViewGrid := frViewInventario1; +end; + +function TfEditorInventario.DarIDAlmacenSeleccionado(Descripcion: String): Integer; +var + IDAlmacen: Variant; +begin + IDAlmacen := (ViewGrid as IViewInventario).DarIDAlmacenObraSeleccionada; + if not VarIsNull(IDAlmacen) then + Result := IDAlmacen + else + Result := Seleccionar(Descripcion, tAlmacen) +end; + +function TfEditorInventario.DarIDObraSeleccionada(Descripcion: String): Integer; +var + IDObra: Variant; +begin + IDObra := (ViewGrid as IViewInventario).DarIDAlmacenObraSeleccionada; + if not VarIsNull(IDObra) then + Result := IDObra + else + Result := Seleccionar(Descripcion, TObra) +end; + +destructor TfEditorInventario.Destroy; +begin + FInventario := NIL; + inherited; +end; + +procedure TfEditorInventario.EliminarInterno; +var + IDAlmacenOrigen: Variant; +begin + if (TipoInventario = CTE_INV_ALMACEN) then + IDAlmacenOrigen := DarIDAlmacenSeleccionado('Elija el almacn donde se realizar la salida') + else + IDAlmacenOrigen := DarIDObraSeleccionada('Elija la obra donde se realizar la salida'); + + if not VarIsNull(IDAlmacenOrigen) then + begin + FController.SalidaArticulosLibre(FInventario, IDAlmacenOrigen); + RefrescarInterno; + end; +end; + +procedure TfEditorInventario.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Inventario) then + raise Exception.Create('No hay ningn inventario asignado'); + + Inventario.DataTable.Active := True; + actContraer.Execute; + ViewGrid.GotoFirst; +end; + +procedure TfEditorInventario.actModificarExecute(Sender: TObject); +begin +// inherited; +end; + +procedure TfEditorInventario.actNuevoUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := not (ViewGrid as IViewInventario).ListaAlmacenesObrasVacia; +end; + +procedure TfEditorInventario.actReservadosExecute(Sender: TObject); +begin + inherited; + FController.VerReservas(Inventario, TipoInventario, (ViewGrid as IViewInventario).DarIDAlmacenObraSeleccionada); + RefrescarInterno; +end; + +procedure TfEditorInventario.actReservadosUpdate(Sender: TObject); +begin + inherited; +// (Sender as TAction).Enabled := (Inventario.RESERVA > 0); +end; + +function TfEditorInventario.GetArticulosSeleccionados: IBizInventario; +begin + SeleccionarFilasDesdeGrid((ViewGrid as IViewInventario)._FocusedView, (Inventario as ISeleccionable).SelectedRecords); + // En Presupuestos.SelectedRecords tengo los ID de las filas seleccionadas del grid + Result := Controller.ExtraerSeleccionados(Inventario); +end; + +function TfEditorInventario.GetController: IInventarioController; +begin + Result := FController; +end; + +function TfEditorInventario.GetInventario: IBizInventario; +begin + Result := FInventario; +end; + +function TfEditorInventario.GetMultiSelect: Boolean; +begin + Result := ViewGrid.MultiSelect; +end; + +function TfEditorInventario.GetTipoInventario: String; +begin + Result := FTipoInventario; +end; + +procedure TfEditorInventario.ImprimirInterno; +begin + inherited; +end; + +procedure TfEditorInventario.NuevoInterno; +var + IDAlmacenDestino: Variant; +begin + if (TipoInventario = CTE_INV_ALMACEN) then + IDAlmacenDestino := DarIDAlmacenSeleccionado('Elija el almacn donde se realizar la entrada') + else + IDAlmacenDestino := DarIDObraSeleccionada('Elija la obra donde se realizar la entrada'); + + if not VarIsNull(IDAlmacenDestino) then + begin + FController.EntradaArticulosLibre(FInventario, IDAlmacenDestino); + RefrescarInterno; + end; +end; + +procedure TfEditorInventario.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + if (TipoInventario = CTE_INV_ALMACEN) then + begin + FTitulo := 'Inventario de articulos en almacenes - ' + AppFactuGES.EmpresaActiva.NOMBRE; + Image2.Visible := False; + Image1.Visible := True; + end + else + begin + FTitulo := 'Inventario de articulos en obras - ' + AppFactuGES.EmpresaActiva.NOMBRE; + Image2.Visible := True; + Image1.Visible := False; + end; + + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorInventario.PrevisualizarInterno; +begin + inherited; +end; + +function TfEditorInventario.Seleccionar(Descripcion: String; TipoSeleccion: TEnumSeleccion): Variant; +var + ALista : TStringList; + AListaAux : TStringList; + Respuesta : Variant; + i: Integer; + +begin + Result := Null; + + with TfEditorElegirAlmacenObraOperacion.Create(NIL) do + try + case TipoSeleccion of + tAlmacen: begin + Caption := Descripcion; + eDescripcion.Caption := 'Elija sobre qu almacn desea realizar la operacin.'; + eEtiqueta.Caption := 'Almacn:'; + ALista := Controller.AlmacenesController.DarListaAlmacenes; + end; + tObra: begin + Caption := Descripcion; + eDescripcion.Caption := 'Elija sobre qu obra desea realizar la operacin.'; + eEtiqueta.Caption := 'Obra:'; + ALista := Controller.ObrasController.DarListaObras; + end; + tAlmacenObra: begin + Caption := Descripcion; + eDescripcion.Caption := 'Elija sobre qu almacn u obra desea realizar la operacin.'; + eEtiqueta.Caption := 'Almacn/Obra:'; + ALista := Controller.AlmacenesController.DarListaAlmacenes; + AListaAux := Controller.ObrasController.DarListaObras; + + for i := 0 to AListaAux.Count - 1 do + ALista.Add(Format('%s=%s', [AListaAux.Names[i], AListaAux.Values[AListaAux.Names[i]]])); + end; + end; + + with cxListaAlmacenesObras.Properties.Items do + begin + BeginUpdate; + try + Clear; + for i := 0 to ALista.Count - 1 do + Add(ALista.Names[i]); + finally + EndUpdate; + end; + end; + + if (ShowModal = mrOk) then + Result := ALista.Values[cxListaAlmacenesObras.EditValue]; + + finally + Free; + end; +end; + +procedure TfEditorInventario.SetController(const Value: IInventarioController); +begin + FController := Value; +end; + +procedure TfEditorInventario.SetInventario(const Value: IBizInventario); +begin + FInventario := Value; + dsDataTable.DataTable := FInventario.DataTable; + + if Assigned(ViewGrid) then + (ViewGrid as IViewInventario).Inventario := FInventario; +end; + +procedure TfEditorInventario.SetMultiSelect(AValue: Boolean); +begin + ViewGrid.MultiSelect := AValue; +end; + +procedure TfEditorInventario.SetTipoInventario(const Value: String); +begin + FTipoInventario := Value; + + if not Assigned(FController) then + raise Exception.Create('No hay ningn controlador asignado'); + + if (FTipoInventario = CTE_INV_ALMACEN) then + begin + if Assigned(ViewGrid) then + (ViewGrid as IViewInventario).Almacenes := FController.AlmacenesController.DarListaAlmacenes; + end + else if (FTipoInventario = CTE_INV_OBRA) then + begin + if Assigned(ViewGrid) then + (ViewGrid as IViewInventario).Obras := FController.ObrasController.DarListaObras; + end; +end; + +procedure TfEditorInventario.actRecibirPedidoExecute(Sender: TObject); +begin + inherited; + RecibirPedidoProv; + RefrescarInterno; +end; + +procedure TfEditorInventario.actRecibirPedidoUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := not (ViewGrid as IViewInventario).ListaAlmacenesObrasVacia; +end; + +procedure TfEditorInventario.actTrasladarExecute(Sender: TObject); +var + IDAlmacenOrigen, IDAlmacenDestino: Variant; +begin + if (TipoInventario = CTE_INV_ALMACEN) then + IDAlmacenOrigen := DarIDAlmacenSeleccionado('Elija el almacn de origen (de donde salen los artculos)') + else + IDAlmacenOrigen := DarIDObraSeleccionada('Elija la obra de origen (de donde salen los artculos)'); + + if not VarIsnull(IDAlmacenOrigen) then + begin + IDAlmacenDestino := Seleccionar('Elija el almacn u obra de destino (donde entran los artculos)', tAlmacenObra); + if not VarIsNull(IDAlmacenDestino) then + begin + FController.TrasladarArticulosLibre(FInventario, IDAlmacenOrigen, IDAlmacenDestino); + RefrescarInterno; + end; + end; +end; + +procedure TfEditorInventario.actReservarExecute(Sender: TObject); +var + IDAlmacenOrigen, IDAlmacenDestino: Variant; + +begin + if (TipoInventario = CTE_INV_ALMACEN) then + IDAlmacenOrigen := DarIDAlmacenSeleccionado('Elija el almacn donde desea reservar el material') + else + IDAlmacenOrigen := DarIDObraSeleccionada('Elija la obra donde desea reservar el material'); + + if not VarIsNull(IDAlmacenOrigen) then + begin + IDAlmacenDestino := Seleccionar('Elija el almacn/obra para el que desea reservar el material (donde irn los materiales)', tAlmacenObra); + if not VarIsNull(IDAlmacenDestino) then + begin + FController.ReservarArticulosLibre(FInventario, IDAlmacenOrigen, IDAlmacenDestino); + RefrescarInterno; + end; + end; +end; + +procedure TfEditorInventario.actReservarUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := Assigned(dsDataTable.DataTable); + + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := not (ViewGrid as IViewInventario).ListaAlmacenesObrasVacia; +end; + +procedure TfEditorInventario.actContraerExecute(Sender: TObject); +begin + if Assigned(ViewGrid) then + ViewGrid.ContraerTodo; +end; + +procedure TfEditorInventario.actEliminarUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := not (ViewGrid as IViewInventario).ListaAlmacenesObrasVacia; +end; + +procedure TfEditorInventario.actExpandirExecute(Sender: TObject); +begin + if Assigned(ViewGrid) then + ViewGrid.ExpandirTodo; +end; + +procedure TfEditorInventario.actLiberarExecute(Sender: TObject); +begin + Controller.Liberar(Inventario); + RefrescarInterno; +end; + +procedure TfEditorInventario.actTrasladarUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := Assigned(dsDataTable.DataTable); + + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := not (ViewGrid as IViewInventario).ListaAlmacenesObrasVacia; +end; + +procedure TfEditorInventario.actLiberarUpdate(Sender: TObject); +begin + inherited; +{ + if Assigned(dsDataTable.DataTable) then + (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) + else + (Sender as TAction).Enabled := False; + } +end; + +end. + + \ No newline at end of file diff --git a/Source/Modulos/Inventario/Views/uInventarioViewRegister.dcu b/Source/Modulos/Inventario/Views/uInventarioViewRegister.dcu new file mode 100644 index 0000000..41e1868 Binary files /dev/null and b/Source/Modulos/Inventario/Views/uInventarioViewRegister.dcu differ diff --git a/Source/Modulos/Inventario/Views/uInventarioViewRegister.pas b/Source/Modulos/Inventario/Views/uInventarioViewRegister.pas new file mode 100644 index 0000000..96ad661 --- /dev/null +++ b/Source/Modulos/Inventario/Views/uInventarioViewRegister.pas @@ -0,0 +1,33 @@ +unit uInventarioViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorInventario, uEditorEntradaSalidaArticulos, + uEditorElegirArticulosCatalogo, uEditorElegirArticulosAlmacen, + uEditorDetalleReservas; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorInventario, 'EditorInventario'); + EditorRegistry.RegisterClass(TfEditorEntradaSalidaArticulos, 'EditorEntradaSalidaArticulos'); + EditorRegistry.RegisterClass(TfEditorElegirArticulosCatalogo, 'EditorElegirArticulosCatalogo'); + EditorRegistry.RegisterClass(TfEditorElegirArticulosAlmacen, 'EditorElegirArticulosAlmacen'); + EditorRegistry.RegisterClass(TfEditorDetalleReservas, 'EditorDetalleReservas'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorInventario); + EditorRegistry.UnRegisterClass(TfEditorEntradaSalidaArticulos); + EditorRegistry.UnRegisterClass(TfEditorElegirArticulosCatalogo); + EditorRegistry.UnRegisterClass(TfEditorElegirArticulosAlmacen); + EditorRegistry.UnRegisterClass(TfEditorDetalleReservas); +end; + +end. diff --git a/Source/Modulos/Inventario/Views/uViewDetalleReservas.dcu b/Source/Modulos/Inventario/Views/uViewDetalleReservas.dcu new file mode 100644 index 0000000..f9e0bea Binary files /dev/null and b/Source/Modulos/Inventario/Views/uViewDetalleReservas.dcu differ diff --git a/Source/Modulos/Inventario/Views/uViewDetalleReservas.dfm b/Source/Modulos/Inventario/Views/uViewDetalleReservas.dfm new file mode 100644 index 0000000..c5a4506 --- /dev/null +++ b/Source/Modulos/Inventario/Views/uViewDetalleReservas.dfm @@ -0,0 +1,275 @@ +inherited frViewDetalleReservas: TfrViewDetalleReservas + OnShow = CustomViewShow + inherited cxGrid: TcxGrid + Top = 143 + Height = 272 + ExplicitTop = 143 + ExplicitHeight = 272 + inherited cxGridView: TcxGridDBTableView + DataController.KeyFieldNames = 'RecID' + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Format = '0 art'#237'culos' + Kind = skCount + end + item + Format = '0 art'#237'culos' + Kind = skCount + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = '0' + Kind = skSum + end + item + Format = '0' + Kind = skSum + end + item + Format = '0' + Kind = skSum + end + item + Format = '0' + Kind = skSum + end + item + Format = '0 Reservados' + Kind = skSum + Column = cxGridViewCANTIDAD + end> + OptionsCustomize.ColumnHidingOnGrouping = False + OptionsCustomize.GroupBySorting = True + object cxGridViewRecID: TcxGridDBColumn + DataBinding.FieldName = 'RecID' + Visible = False + VisibleForCustomization = False + end + object cxGridViewFECHA_RESERVA: TcxGridDBColumn + Caption = 'Fecha de reserva' + DataBinding.FieldName = 'FECHA_RESERVA' + end + object cxGridViewCAUSA_RESERVA: TcxGridDBColumn + Caption = 'Causa' + DataBinding.FieldName = 'CAUSA_RESERVA' + end + object cxGridViewID_ALMACEN: TcxGridDBColumn + DataBinding.FieldName = 'ID_ALMACEN' + Visible = False + VisibleForCustomization = False + end + object cxGridViewALMACEN: TcxGridDBColumn + Caption = 'Almac'#233'n' + DataBinding.FieldName = 'NOMBRE_ALMACEN' + end + object cxGridViewID_ARTICULO: TcxGridDBColumn + DataBinding.FieldName = 'ID_ARTICULO' + Visible = False + VisibleForCustomization = False + end + object cxGridViewREFERENCIA: TcxGridDBColumn + Caption = 'Referencia' + DataBinding.FieldName = 'REFERENCIA' + SortIndex = 0 + SortOrder = soAscending + end + object cxGridViewDESCRIPCION: TcxGridDBColumn + Caption = 'Descripci'#243'n' + DataBinding.FieldName = 'DESCRIPCION' + end + object cxGridViewFAMILIA: TcxGridDBColumn + Caption = 'Familia' + DataBinding.FieldName = 'FAMILIA' + end + object cxGridViewUNIDAD_MEDIDA: TcxGridDBColumn + Caption = 'Unidad de medida' + DataBinding.FieldName = 'UNIDAD_MEDIDA' + Visible = False + VisibleForCustomization = False + end + object cxGridViewFABRICANTE: TcxGridDBColumn + Caption = 'Fabricante' + DataBinding.FieldName = 'FABRICANTE' + end + object cxGridViewREFERENCIA_FABR: TcxGridDBColumn + Caption = 'Ref. fabricante' + DataBinding.FieldName = 'REFERENCIA_FABR' + end + object cxGridViewCANTIDAD: TcxGridDBColumn + Caption = 'Reservado' + DataBinding.FieldName = 'CANTIDAD' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + end + object cxGridViewID_ALMACEN_RESERVA: TcxGridDBColumn + DataBinding.FieldName = 'ID_ALMACEN_RESERVA' + Visible = False + VisibleForCustomization = False + end + object cxGridViewALMACEN_RESERVA: TcxGridDBColumn + Caption = 'Resevado para' + DataBinding.FieldName = 'NOMBRE_ALMACEN_RESERVA' + end + end + object cxGridDBTableView1: TcxGridDBTableView [1] + NavigatorButtons.ConfirmDelete = False + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + end + inherited cxGridLevel: TcxGridLevel + Tag = -1 + Caption = 'Todos los almacenes' + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + inherited TBXDockablePanel1: TTBXDockablePanel + inherited dxLayoutControl1: TdxLayoutControl + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 273 + Width = 273 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 225 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 225 + ExplicitWidth = 121 + Width = 121 + end + inherited eLista: TcxComboBox + Left = 383 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 383 + end + end + end + end + object pnlAlmacenes: TPanel [3] + Left = 0 + Top = 102 + Width = 607 + Height = 41 + Align = alTop + TabOrder = 3 + DesignSize = ( + 607 + 41) + object eAlmacen: TLabel + Left = 10 + Top = 16 + Width = 44 + Height = 13 + Caption = 'Almac'#233'n:' + end + object cxListaAlmacenesObras: TcxComboBox + Left = 87 + Top = 14 + Anchors = [akLeft, akTop, akRight] + Properties.DropDownListStyle = lsEditFixedList + Properties.DropDownRows = 25 + Properties.ImmediatePost = True + Properties.OnEditValueChanged = cxListaAlmacenesObrasPropertiesEditValueChanged + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 510 + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 38673.741107951390000000 + BuiltInReportLink = True + end + end + inherited cxStyleRepository1: TcxStyleRepository + inherited cxStyleSelection: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + end + object cxStyleArticuloSinStock: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clRed + end + end + object PngImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001004944415478DA + 63BC5C22F99F8148A0D3FD8C115D8C1164806A4B0D84F7FD3B03C3FD3B0CB3DB + 3732A42EC614CB5985CF00A8C2E9177D1858B6A5420C4013C36D4075315821C3 + F5AB0CD37F95430C98852986DB80287FB02D300036A012530CA701071E121788 + F8C3002DC072573F67FCFF9F7004E10C449001403967A09A3D78F4BBE00C44A8 + 0160C3D9D9B33074FEFC398D61766C0BEE408419004C3C60C5700072E98FEF0C + D3771882D5E10C44AC0680347F7807A6A79F748618802FA0AE944A210C80697E + 0FC43F7E324CBF194C82011F7A119A3F7C80B8E0552A09063CA8466806BBE03B + 3CB0091A008A85E9CBE5B1CA13638033308071A6030779061700E6FAF742387F + 63F70000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001A94944415478DA + 8D925D28836114C7FF4FBEE246B9734BBB61B990C89512492925F9B6BB5D0817 + 98968FF21186250AADB69285D2848DB2A5AC854D44CBB7D096C495A4D078278F + BDCF986C5EAF53E7E2391FBF739E7F871C2AE229FE6952F52D098E111E20E969 + F7BF3C1EC07D099DCA04F95468ACCEF017E0B350B35F80F015B91F10141306B4 + 35B1429C1E43C329FD00AD3F962493E22156E2AB04C2C280A8FB0B5C1FD4929F + 808A4236E5CB18A0A51059CD524CE86B7E4C54CD7A611C69C5E3F51009006C57 + A1822D726D181DAF816DDF0B854CC936A03E2F560EB0BC75BA0337CE7E2228A2 + FA7912666D0E4A4B1A71681FF95E396D8B5695A7C2BED00597BD8F088A38F834 + 098B2E0795D58D705A4301DBCBDD38B7F5124111EB5DF3A277417733C9AF2236 + 8CC5E1D894210A48CE1FFE5D447E3A0F303ADEC0BD51B87737E1DAE944427A27 + A21333F1F24AA19F3900380708A5A197CCFF930718D6BDE0BC141BBADC402EB1 + C8020FF70EC3DC9138607A8D631BF0EE9CCA0B34BFF87CC974220ED0995F59F3 + ED9E1177671A44C457213AA98C01ACAB677F034415E44D08C0202943A290C8C8 + 98EC0F53DC14659A0322CE0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 56 + Top = 48 + Bitmap = {} + end +end diff --git a/Source/Modulos/Inventario/Views/uViewDetalleReservas.pas b/Source/Modulos/Inventario/Views/uViewDetalleReservas.pas new file mode 100644 index 0000000..9a32a36 --- /dev/null +++ b/Source/Modulos/Inventario/Views/uViewDetalleReservas.pas @@ -0,0 +1,321 @@ +unit uViewDetalleReservas; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, frxClass, frxPreview, cxStyles, + cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, + cxDBData, ActnList, uDADataTable, cxGridLevel, cxClasses, cxControls, + cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, StdCtrls, ExtCtrls, cxLabel, dxPSGlbl, dxPSUtl, + dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, cxIntlPrintSys3, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, cxImage, + cxImageComboBox, ImgList, PngImageList, cxTextEdit, Grids, DBGrids, cxDBLookupComboBox, + cxButtonEdit, cxGridCustomPopupMenu, cxGridPopupMenu, uViewGrid, + uBizInventario, uBizAlmacenes, cxSpinEdit, uViewFiltroBase, TB2Item, TBX, + TB2Toolbar, TBXDkPanels, TB2Dock, dxPgsDlg, cxCurrencyEdit, uAlmacenesController, + uDAInterfaces, cxContainer, cxMaskEdit, cxDropDownEdit; + +type + IViewDetalleReservas = interface(IViewGrid) + ['{4417F53A-5BB1-4B99-8760-4C0E1D449582}'] + function GetDetalleReservas: IBizDetalleReservas; + procedure SetDetalleReservas(const Value: IBizDetalleReservas); + property DetalleReservas: IBizDetalleReservas read GetDetalleReservas write SetDetalleReservas; + function GetAlmacenes: TStringList; + procedure SetAlmacenes(const Value: TStringList); + property Almacenes: TStringList read GetAlmacenes write SetAlmacenes; + function GetObras: TStringList; + procedure SetObras(const Value: TStringList); + property Obras: TStringList read GetObras write SetObras; + function DarIDAlmacenObraSeleccionada: Variant; + function ListaAlmacenesObrasVacia: Boolean; + function GetIdAlmacenObra: Integer; + procedure SetAlmacenObra(const Value: Integer); + property IdAlmacenObra: Integer read GetIdAlmacenObra write SetAlmacenObra; + end; + + TfrViewDetalleReservas = class(TfrViewGrid, IViewDetalleReservas) + cxGridDBTableView1: TcxGridDBTableView; + PngImageList: TPngImageList; + cxStyleArticuloSinStock: TcxStyle; + cxGridViewRecID: TcxGridDBColumn; + cxGridViewFECHA_RESERVA: TcxGridDBColumn; + cxGridViewCAUSA_RESERVA: TcxGridDBColumn; + cxGridViewID_ALMACEN: TcxGridDBColumn; + cxGridViewALMACEN: TcxGridDBColumn; + cxGridViewID_ARTICULO: TcxGridDBColumn; + cxGridViewFAMILIA: TcxGridDBColumn; + cxGridViewREFERENCIA: TcxGridDBColumn; + cxGridViewDESCRIPCION: TcxGridDBColumn; + cxGridViewCANTIDAD: TcxGridDBColumn; + cxGridViewUNIDAD_MEDIDA: TcxGridDBColumn; + cxGridViewFABRICANTE: TcxGridDBColumn; + cxGridViewREFERENCIA_FABR: TcxGridDBColumn; + cxGridViewID_ALMACEN_RESERVA: TcxGridDBColumn; + cxGridViewALMACEN_RESERVA: TcxGridDBColumn; + pnlAlmacenes: TPanel; + eAlmacen: TLabel; + cxListaAlmacenesObras: TcxComboBox; + procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out + AStyle: TcxStyle); + procedure cxListaAlmacenesObrasPropertiesEditValueChanged(Sender: TObject); + procedure CustomViewShow(Sender: TObject); + + private + //Filtros relativos a la vista + procedure AnadirFiltroAlmacenesObras; + + protected + FIdAlmacenObra: Integer; + FAlmacenes: TStringList; + FObras: TStringList; + FDetalleReservas: IBizDetalleReservas; + + function GetIdAlmacenObra: Integer; + procedure SetAlmacenObra(const Value: Integer); + function GetAlmacenes: TStringList; + procedure SetAlmacenes(const Value: TStringList); + function GetObras: TStringList; + procedure SetObras(const Value: TStringList); + function GetDetalleReservas: IBizDetalleReservas; + procedure SetDetalleReservas(const Value: IBizDetalleReservas); + + +// FAlmacenesController: IAlmacenesController; +// function GetAlmacenes: IBizAlmacen; +// procedure SetAlmacenes(const Value: IBizAlmacen); + + + public + property IdAlmacenObra: Integer read GetIdAlmacenObra write SetAlmacenObra; + property DetalleReservas: IBizDetalleReservas read GetDetalleReservas write SetDetalleReservas; + procedure AnadirOtrosFiltros; override; + +// property Almacenes: IBizAlmacen read GetAlmacenes write SetAlmacenes; + + destructor Destroy; override; + + function DarIDAlmacenObraSeleccionada: Variant; + function ListaAlmacenesObrasVacia: Boolean; + + end; + +implementation +{$R *.dfm} + +uses uDataModuleInventario, schInventarioClient_Intf; + +procedure TfrViewDetalleReservas.AnadirFiltroAlmacenesObras; +var + FFiltro : TcxFilterCriteriaItemList; + CodigoAlmacen: Variant; +begin + FFiltro := AddFilterGrid(fboAnd); + + CodigoAlmacen := DarIDAlmacenObraSeleccionada; + + if not VarIsNull(CodigoAlmacen) then + begin + FFiltro.AddItem(cxGridViewID_ALMACEN, foEqual, CodigoAlmacen, CodigoAlmacen); + cxGridViewALMACEN.Visible := False; + end + else + cxGridViewALMACEN.Visible := True; +end; + +procedure TfrViewDetalleReservas.AnadirOtrosFiltros; +begin + inherited; + + AnadirFiltroAlmacenesObras; + + //Finalmente activamos el filtro si tenemos algo + if cxGridView.DataController.Filter.IsEmpty + then cxGridView.DataController.Filter.Active := False + else cxGridView.DataController.Filter.Active := True; + cxGrid.ActiveLevel.GridView := cxGridView; +end; + +procedure TfrViewDetalleReservas.CustomViewShow(Sender: TObject); +var + i: Integer; + +begin + inherited; + + //INV_ALMACENES + if Assigned(FAlmacenes) then + begin + i := 0; + while (i < FAlmacenes.Count) and (FAlmacenes.ValueFromIndex[i] <> IntToStr(IdAlmacenObra)) do + Inc(i); + if (FAlmacenes.ValueFromIndex[i] = IntToStr(IdAlmacenObra)) then + cxListaAlmacenesObras.ItemIndex := i + end + //INV_OBRAS + else if Assigned(FObras) then + begin + i := 0; + while (i < FObras.Count) and (FObras.ValueFromIndex[i] <> IntToStr(IdAlmacenObra)) do + Inc(i); + if (FObras.ValueFromIndex[i] = IntToStr(IdAlmacenObra)) then + cxListaAlmacenesObras.ItemIndex := i + end + else + //En el caso de ser la vista para la seleccin de articulos de un determinado almacn + pnlAlmacenes.Visible:= False; +end; + +procedure TfrViewDetalleReservas.cxGridViewStylesGetContentStyle(Sender: + TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: + TcxCustomGridTableItem; out AStyle: TcxStyle); +{var + IndiceCol: Integer; + AStock: Variant;} +begin + inherited; +{ + if Assigned(ARecord) then + begin + IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_DetalleReservasSTOCK).Index; + AStock := ARecord.DisplayTexts[IndiceCol]; + if (AStock < 0) then + AStyle := cxStyleArticuloSinStock; + end; +} +end; + +procedure TfrViewDetalleReservas.cxListaAlmacenesObrasPropertiesEditValueChanged(Sender: TObject); +begin + inherited; + RefrescarFiltro; +end; + +function TfrViewDetalleReservas.DarIDAlmacenObraSeleccionada: Variant; +begin + Result := Null; + + if VarIsNull(cxListaAlmacenesObras.EditValue) then + Exit; + + //INV_ALMACENES + if Assigned(FAlmacenes) then + Result := FAlmacenes.Values[cxListaAlmacenesObras.EditValue] + //INV_OBRAS + else if Assigned(FObras) then + Result := FObras.Values[cxListaAlmacenesObras.EditValue] + else + Raise Exception.Create('No se ha asignado ninguna lista de ALMACENES'); +end; + +destructor TfrViewDetalleReservas.Destroy; +begin + FAlmacenes := Nil; + FObras := Nil; + FDetalleReservas := Nil; + inherited; +end; + +function TfrViewDetalleReservas.GetAlmacenes: TStringList; +begin + Result := FAlmacenes; +end; + +function TfrViewDetalleReservas.GetDetalleReservas: IBizDetalleReservas; +begin + Result := FDetalleReservas; +end; + +function TfrViewDetalleReservas.GetIdAlmacenObra: Integer; +begin + Result := FIDAlmacenObra; +end; + +function TfrViewDetalleReservas.GetObras: TStringList; +begin + Result := FObras; +end; + +function TfrViewDetalleReservas.ListaAlmacenesObrasVacia: Boolean; +begin + Result := (cxListaAlmacenesObras.Properties.Items.Count = 0); +end; + +procedure TfrViewDetalleReservas.SetAlmacenes(const Value: TStringList); +var + Nivel: TcxGridLevel; + i: integer; +begin + FAlmacenes := Value; + eAlmacen.Caption := 'Almacn'; + + if Assigned(FAlmacenes) then + begin + cxGrid.BeginUpdate; + try + with cxListaAlmacenesObras.Properties.Items do + begin + BeginUpdate; + try + Clear; + for i := 0 to FAlmacenes.Count - 1 do + Add(FAlmacenes.Names[i]); + finally + EndUpdate; + end; + end; + + finally + cxGrid.EndUpdate; + end; + end; +end; + +procedure TfrViewDetalleReservas.SetAlmacenObra(const Value: Integer); +begin + FIDAlmacenObra := Value; +end; + +procedure TfrViewDetalleReservas.SetDetalleReservas(const Value: IBizDetalleReservas); +begin + FDetalleReservas := Value; + if Assigned(FDetalleReservas) then + dsDataSource.DataTable := FDetalleReservas.DataTable + else + dsDataSource.DataTable := Nil; +end; + +procedure TfrViewDetalleReservas.SetObras(const Value: TStringList); +var + Nivel: TcxGridLevel; + i: integer; +begin + FObras := Value; + eAlmacen.Caption := 'Obra'; + + if Assigned(FObras) then + begin + cxGrid.BeginUpdate; + try + with cxListaAlmacenesObras.Properties.Items do + begin + BeginUpdate; + try + Clear; + for i := 0 to FObras.Count - 1 do + Add(FObras.Names[i]); + finally + EndUpdate; + end; + end; + + finally + cxGrid.EndUpdate; + end; + end; +end; + +end. diff --git a/Source/Modulos/Inventario/Views/uViewElegirArticulosCatalogo.dcu b/Source/Modulos/Inventario/Views/uViewElegirArticulosCatalogo.dcu new file mode 100644 index 0000000..5289f22 Binary files /dev/null and b/Source/Modulos/Inventario/Views/uViewElegirArticulosCatalogo.dcu differ diff --git a/Source/Modulos/Inventario/Views/uViewElegirArticulosCatalogo.dfm b/Source/Modulos/Inventario/Views/uViewElegirArticulosCatalogo.dfm new file mode 100644 index 0000000..7e16770 --- /dev/null +++ b/Source/Modulos/Inventario/Views/uViewElegirArticulosCatalogo.dfm @@ -0,0 +1,22 @@ +inherited frViewElegirArticulosCatalogo: TfrViewElegirArticulosCatalogo + inherited frViewFiltroBase1: TfrViewFiltroBase + inherited TBXDockablePanel1: TTBXDockablePanel + inherited dxLayoutControl1: TdxLayoutControl + inherited edtFechaIniFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaFinFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39297.755713784730000000 + BuiltInReportLink = True + end + end +end diff --git a/Source/Modulos/Inventario/Views/uViewElegirArticulosCatalogo.pas b/Source/Modulos/Inventario/Views/uViewElegirArticulosCatalogo.pas new file mode 100644 index 0000000..2a81ab4 --- /dev/null +++ b/Source/Modulos/Inventario/Views/uViewElegirArticulosCatalogo.pas @@ -0,0 +1,28 @@ +unit uViewElegirArticulosCatalogo; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewArticulos, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxImageComboBox, cxCurrencyEdit, + cxSpinEdit, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, + dxPSCompsProvider, dxPSFillPatterns, dxPSEdgePatterns, ImgList, PngImageList, + cxGridCustomPopupMenu, cxGridPopupMenu, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, + uDADataTable, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, dxPgsDlg, + ActnList, TB2Item, TBX, TB2Toolbar, TBXDkPanels, TB2Dock, uViewFiltroBase, + uDAInterfaces; + +type + IViewElegirArticulosCatalogo = interface(IViewArticulos) + ['{43661629-23AF-4D57-BCFC-BE087980C449}'] + end; + + TfrViewElegirArticulosCatalogo = class(TfrViewArticulos, IViewElegirArticulosCatalogo) + end; + +implementation +{$R *.dfm} + +end. diff --git a/Source/Modulos/Inventario/Views/uViewEntradaSalidaArticulos.dcu b/Source/Modulos/Inventario/Views/uViewEntradaSalidaArticulos.dcu new file mode 100644 index 0000000..95601d8 Binary files /dev/null and b/Source/Modulos/Inventario/Views/uViewEntradaSalidaArticulos.dcu differ diff --git a/Source/Modulos/Inventario/Views/uViewEntradaSalidaArticulos.dfm b/Source/Modulos/Inventario/Views/uViewEntradaSalidaArticulos.dfm new file mode 100644 index 0000000..2de9823 --- /dev/null +++ b/Source/Modulos/Inventario/Views/uViewEntradaSalidaArticulos.dfm @@ -0,0 +1,183 @@ +inherited frViewEntradaSalidaArticulos: TfrViewEntradaSalidaArticulos + Width = 674 + Height = 464 + ExplicitWidth = 674 + ExplicitHeight = 464 + inherited cxGrid: TcxGrid + AlignWithMargins = True + Left = 8 + Top = 110 + Width = 658 + Height = 320 + Margins.Left = 8 + Margins.Top = 8 + Margins.Right = 8 + Margins.Bottom = 8 + ExplicitLeft = 8 + ExplicitTop = 110 + ExplicitWidth = 658 + ExplicitHeight = 320 + inherited cxGridView: TcxGridDBTableView + DataController.KeyFieldNames = 'ID_ALMACEN;ID_ARTICULO' + DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText, dcoFocusTopRowAfterSorting, dcoImmediatePost] + OptionsData.Editing = True + OptionsSelection.CellSelect = True + object cxGridViewRecID: TcxGridDBColumn + DataBinding.FieldName = 'RecID' + Visible = False + end + object cxGridViewID: TcxGridDBColumn + DataBinding.FieldName = 'ID' + Visible = False + VisibleForCustomization = False + end + object cxGridViewID_ARTICULO: TcxGridDBColumn + DataBinding.FieldName = 'ID_ARTICULO' + Visible = False + VisibleForCustomization = False + end + object cxGridViewID_PEDIDO_PROVEEDOR: TcxGridDBColumn + DataBinding.FieldName = 'ID_PEDIDO_PROVEEDOR' + Visible = False + end + object cxGridViewID_PEDIDO_CLIENTE: TcxGridDBColumn + DataBinding.FieldName = 'ID_PEDIDO_CLIENTE' + Visible = False + end + object cxGridViewREFERENCIA_PED_CLI: TcxGridDBColumn + DataBinding.FieldName = 'REFERENCIA_PED_CLI' + Visible = False + Width = 55 + end + object cxGridViewREFERENCIA: TcxGridDBColumn + Caption = 'Referencia' + DataBinding.FieldName = 'REFERENCIA' + Width = 65 + end + object cxGridViewREFERENCIA_PROV: TcxGridDBColumn + Caption = 'Ref. proveedor' + DataBinding.FieldName = 'REFERENCIA_PROVEEDOR' + Width = 80 + end + object cxGridViewDESCRIPCION: TcxGridDBColumn + Caption = 'Descripci'#243'n' + DataBinding.FieldName = 'DESCRIPCION' + PropertiesClassName = 'TcxRichEditProperties' + Width = 303 + end + object cxGridViewSTOCK: TcxGridDBColumn + Caption = 'Stock actual' + DataBinding.FieldName = 'STOCK' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.DisplayFormat = ',0.##;-,0.##' + Properties.EditFormat = ',0.##;-,0.##' + Properties.ReadOnly = True + HeaderAlignmentHorz = taRightJustify + Width = 94 + end + object cxGridViewCANTIDAD: TcxGridDBColumn + Caption = 'Cantidad' + DataBinding.FieldName = 'CANTIDAD' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = ',0.##;-,0.##' + Properties.EditFormat = ',0.##;-,0.##' + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + Width = 80 + end + object cxGridViewID_EMPRESA: TcxGridDBColumn + DataBinding.FieldName = 'ID_EMPRESA' + Visible = False + end + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 674 + ExplicitWidth = 674 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 674 + inherited dxLayoutControl1: TdxLayoutControl + Width = 674 + ExplicitWidth = 674 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 577 + Width = 577 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 225 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 225 + ExplicitWidth = 121 + Width = 121 + end + inherited eLista: TcxComboBox + Left = 383 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 383 + ExplicitWidth = 281 + Width = 281 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 674 + ExplicitWidth = 674 + inherited tbxBotones: TTBXToolbar + Width = 664 + ExplicitWidth = 664 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 438 + ExplicitTop = 438 + ExplicitWidth = 674 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 674 + ExplicitWidth = 674 + inherited TBXToolbar1: TTBXToolbar + Width = 664 + ExplicitWidth = 664 + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39253.500748333330000000 + BuiltInReportLink = True + end + end + inherited cxStyleRepository1: TcxStyleRepository + object cxStyle_CANTIDAD_IMPAR: TcxStyle + AssignedValues = [svColor] + Color = 13828095 + end + object cxStyle_CANTIDAD_PAR: TcxStyle + AssignedValues = [svColor] + Color = 15532031 + end + end + object DADataSourceAlmacenes: TDADataSource + Left = 56 + Top = 16 + end +end diff --git a/Source/Modulos/Inventario/Views/uViewEntradaSalidaArticulos.pas b/Source/Modulos/Inventario/Views/uViewEntradaSalidaArticulos.pas new file mode 100644 index 0000000..7aec86c --- /dev/null +++ b/Source/Modulos/Inventario/Views/uViewEntradaSalidaArticulos.pas @@ -0,0 +1,112 @@ +unit uViewEntradaSalidaArticulos; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, + cxData, cxDataStorage, cxEdit, DB, cxDBData, ImgList, PngImageList, + uDADataTable, ActnList, ComCtrls, ToolWin, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, cxDBLookupComboBox, uViewGrid, StdCtrls, + dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, + dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, dxPSEdgePatterns, + cxGridCustomPopupMenu, cxGridPopupMenu, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, + uAlmacenesController, uBizAlmacenes, TB2Item, TBX, TB2Dock, TB2Toolbar, + uDataModuleInventario, cxRichEdit, cxTextEdit, dxPgsDlg, TBXDkPanels, + uViewFiltroBase, cxSpinEdit, uDAInterfaces; + +type + IViewViewEntradaSalidaArticulos = interface(IViewGrid) + ['{C195FC01-604A-484E-A809-0ED49890DBBE}'] +// function GetAlmacenes: IBizAlmacen; +// property Almacenes: IBizAlmacen read GetAlmacenes; + end; + + TfrViewEntradaSalidaArticulos = class(TfrViewGrid, IViewViewEntradaSalidaArticulos) + DADataSourceAlmacenes: TDADataSource; + cxGridViewRecID: TcxGridDBColumn; + cxGridViewID: TcxGridDBColumn; + cxGridViewID_ARTICULO: TcxGridDBColumn; + cxGridViewCANTIDAD: TcxGridDBColumn; + cxGridViewID_PEDIDO_PROVEEDOR: TcxGridDBColumn; + cxGridViewID_PEDIDO_CLIENTE: TcxGridDBColumn; + cxGridViewREFERENCIA_PED_CLI: TcxGridDBColumn; + cxGridViewDESCRIPCION: TcxGridDBColumn; + cxGridViewID_EMPRESA: TcxGridDBColumn; + cxGridViewREFERENCIA: TcxGridDBColumn; + cxGridViewREFERENCIA_PROV: TcxGridDBColumn; + cxGridViewSTOCK: TcxGridDBColumn; + cxStyle_CANTIDAD_IMPAR: TcxStyle; + cxStyle_CANTIDAD_PAR: TcxStyle; + procedure cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + private +//Es para cuando el almacen destino sea relativo a cada artículo, como lo vamos a +//hacer relativo al conjunto esto sobra +// FController: IAlmacenesController; +// FAlmacenes: IBizAlmacen; +// function GetAlmacenes: IBizAlmacen; + public +// property Almacenes: IBizAlmacen read GetAlmacenes; +// constructor Create(AOwner : TComponent); override; +// destructor destroy; override; + end; + +implementation +{$R *.dfm} + +uses uDataModuleAlmacenes; + +{ TfrViewEntradaArticulosInventario } + +{constructor TfrViewEntradaSalidaArticulos.Create(AOwner: TComponent); +begin + inherited; + FController := TAlmacenesController.Create; + FAlmacenes := FController.BuscarTodos; + DADataSourceAlmacenes.DataTable := FAlmacenes.DataTable; + DADataSourceAlmacenes.DataTable.Active := True; +end; + +destructor TfrViewEntradaSalidaArticulos.destroy; +begin + FController := Nil; + inherited; +end; + +function TfrViewEntradaSalidaArticulos.getAlmacenes: IBizAlmacen; +begin + Result := FAlmacenes; +end;} + +{ TfrViewEntradaSalidaArticulos } + +{ TfrViewEntradaSalidaArticulos } + +procedure TfrViewEntradaSalidaArticulos.cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(AItem) then + begin + if AItem.Index = cxGridViewCANTIDAD.Index then + begin + if Odd(ARecord.Index) then + AStyle := cxStyle_NORMAL_PAR + else + AStyle := cxStyle_NORMAL_IMPAR; + AStyle.Font.Style := [fsBold]; + end + else begin + if Odd(ARecord.Index) then + AStyle := cxStyle_ORDENADO_PAR + else + AStyle := cxStyle_ORDENADO_IMPAR; + end; + end; +end; + +end. diff --git a/Source/Modulos/Inventario/Views/uViewInventario.dcu b/Source/Modulos/Inventario/Views/uViewInventario.dcu new file mode 100644 index 0000000..844227b Binary files /dev/null and b/Source/Modulos/Inventario/Views/uViewInventario.dcu differ diff --git a/Source/Modulos/Inventario/Views/uViewInventario.dfm b/Source/Modulos/Inventario/Views/uViewInventario.dfm new file mode 100644 index 0000000..75dd435 --- /dev/null +++ b/Source/Modulos/Inventario/Views/uViewInventario.dfm @@ -0,0 +1,425 @@ +inherited frViewInventario: TfrViewInventario + Width = 678 + Height = 607 + OnShow = CustomViewShow + ExplicitWidth = 678 + ExplicitHeight = 607 + inherited cxGrid: TcxGrid + Top = 143 + Width = 678 + Height = 438 + ExplicitTop = 143 + ExplicitWidth = 678 + ExplicitHeight = 438 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Position = spFooter + Column = cxGridViewCOSTE_UNIDADES + end> + DataController.Summary.FooterSummaryItems = < + item + Format = '0 art'#237'culos' + Kind = skCount + end + item + Format = '0 art'#237'culos' + Kind = skCount + Column = cxGridViewDESCRIPCION + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = cxGridViewCOSTE_UNIDADES + end + item + Format = '0' + Kind = skSum + Column = cxGridViewUNIDADES_ALMACEN + end + item + Format = '0' + Kind = skSum + Column = cxGridViewSTOCK + end + item + Format = '0' + Kind = skSum + Column = cxGridViewRESERVA + end + item + Format = '0' + Kind = skSum + Column = cxGridViewPENDIENTE_RECEPCION + end> + DataController.OnCompare = cxGridViewDataControllerCompare + object cxGridViewID: TcxGridDBColumn + DataBinding.FieldName = 'ID' + Visible = False + VisibleForCustomization = False + end + object cxGridViewID_ARTICULO: TcxGridDBColumn + DataBinding.FieldName = 'ID_ARTICULO' + Visible = False + VisibleForCustomization = False + end + object cxGridViewID_ALMACEN: TcxGridDBColumn + DataBinding.FieldName = 'ID_ALMACEN' + Visible = False + VisibleForCustomization = False + end + object cxGridViewFAMILIA: TcxGridDBColumn + Caption = 'Familia' + DataBinding.FieldName = 'FAMILIA' + MinWidth = 40 + end + object cxGridViewREFERENCIA: TcxGridDBColumn + Caption = 'Referencia' + DataBinding.FieldName = 'REFERENCIA' + MinWidth = 30 + SortIndex = 0 + SortOrder = soAscending + end + object cxGridViewREFERENCIA_PROVEEDOR: TcxGridDBColumn + Caption = 'Ref. proveedor' + DataBinding.FieldName = 'REFERENCIA_PROVEEDOR' + MinWidth = 30 + end + object cxGridViewDESCRIPCION: TcxGridDBColumn + Caption = 'Descripci'#243'n' + DataBinding.FieldName = 'DESCRIPCION' + MinWidth = 80 + end + object cxGridViewSTOCK: TcxGridDBColumn + DataBinding.FieldName = 'STOCK' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = ',0.##;-,0.##' + BestFitMaxWidth = 50 + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + MinWidth = 30 + Width = 50 + end + object cxGridViewALMACEN: TcxGridDBColumn + Caption = 'Almac'#233'n' + DataBinding.FieldName = 'ALMACEN' + MinWidth = 80 + end + object cxGridViewUNIDADES_ALMACEN: TcxGridDBColumn + DataBinding.FieldName = 'UNIDADES_ALMACEN' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = ',0.##;-,0.##' + BestFitMaxWidth = 50 + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + MinWidth = 30 + Width = 50 + end + object cxGridViewPRECIO_NETO: TcxGridDBColumn + DataBinding.FieldName = 'PRECIO_NETO' + PropertiesClassName = 'TcxCurrencyEditProperties' + Visible = False + HeaderAlignmentHorz = taRightJustify + VisibleForCustomization = False + end + object cxGridViewCOSTE_UNIDADES: TcxGridDBColumn + DataBinding.FieldName = 'COSTE_UNIDADES' + PropertiesClassName = 'TcxCurrencyEditProperties' + Visible = False + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + VisibleForCustomization = False + end + object cxGridViewRESERVA: TcxGridDBColumn + DataBinding.FieldName = 'RESERVA' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = ',0.##;-,0.##' + BestFitMaxWidth = 50 + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + HeaderGlyphAlignmentHorz = taRightJustify + MinWidth = 30 + Width = 50 + end + object cxGridViewPENDIENTE_RECEPCION: TcxGridDBColumn + DataBinding.FieldName = 'PENDIENTE_RECEPCION' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = ',0.##;-,0.##' + BestFitMaxWidth = 50 + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + HeaderGlyphAlignmentHorz = taRightJustify + MinWidth = 30 + Width = 50 + end + end + object cxGridDBTableView1: TcxGridDBTableView [1] + NavigatorButtons.ConfirmDelete = False + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + end + inherited cxGridLevel: TcxGridLevel + Tag = -1 + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 678 + ExplicitWidth = 678 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 678 + inherited dxLayoutControl1: TdxLayoutControl + Width = 678 + ExplicitWidth = 678 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 510 + Width = 510 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtFechaFinFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited eLista: TcxComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 215 + Width = 215 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 678 + ExplicitWidth = 678 + inherited tbxBotones: TTBXToolbar + Width = 668 + ExplicitWidth = 668 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 581 + ExplicitTop = 581 + ExplicitWidth = 678 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 678 + ExplicitWidth = 678 + inherited TBXToolbar1: TTBXToolbar + Width = 668 + ExplicitWidth = 668 + end + end + end + object pnlAlmacenes: TPanel [3] + Left = 0 + Top = 102 + Width = 678 + Height = 41 + Align = alTop + TabOrder = 3 + DesignSize = ( + 678 + 41) + object eAlmacen: TLabel + Left = 10 + Top = 16 + Width = 44 + Height = 13 + Caption = 'Almac'#233'n:' + end + object cxListaAlmacenesObras: TcxComboBox + Left = 87 + Top = 14 + Anchors = [akLeft, akTop, akRight] + Properties.DropDownListStyle = lsEditFixedList + Properties.DropDownRows = 25 + Properties.ImmediatePost = True + Properties.OnEditValueChanged = cxListaObrasPropertiesEditValueChanged + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 581 + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 38673.741107951390000000 + BuiltInReportLink = True + end + end + inherited cxStyleRepository1: TcxStyleRepository + inherited cxStyleSelection: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + end + object cxStyleArticuloSinStock: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clRed + end + object cxStyleArticuloConStock: TcxStyle + end + end + inherited GridPNGImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000434944415478DA63FCFFFF3F + 03258011D900464646ACA601D530126D00BA6298A1B80C21CA0090183639925C + 80CB3B040DC0E69A510306BD010C04005E03C801036F00008D248BE16F9028BA + 0000000049454E44AE426082} + Name = 'Icono_header' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001004944415478DA + 63BC5C22F99F8148A0D3FD8C115D8C1164806A4B0D84F7FD3B03C3FD3B0CB3DB + 3732A42EC614CB5985CF00A8C2E9177D1858B6A5420C4013C36D4075315821C3 + F5AB0CD37F95430C98852986DB80287FB02D300036A012530CA701071E121788 + F8C3002DC072573F67FCFF9F7004E10C449001403967A09A3D78F4BBE00C44A8 + 0160C3D9D9B33074FEFC398D61766C0BEE408419004C3C60C5700072E98FEF0C + D3771882D5E10C44AC0680347F7807A6A79F748618802FA0AE944A210C80697E + 0FC43F7E324CBF194C82011F7A119A3F7C80B8E0552A09063CA8466806BBE03B + 3CB0091A008A85E9CBE5B1CA13638033308071A6030779061700E6FAF742387F + 63F70000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001A44944415478DA + 63BC5C22F99F8148A0D3FD8C115D8C1164806A4B0D84F7FD3B03C3FD3B0CB3DB + 3732A42EC614CB5985CF00A8C2E9177D1858B6A5420C4013C36D4075315821C3 + F5AB0CD37F95430C980511D38AD361F8C0AF0A54C9C0C0CCCCC0C0FEEE36C3E3 + 4BD98CA80644F9836D8101B00195FE0CF6A53A0CF31666A2D8D8BEE237C38609 + 550C9F1FF732C20D38F01033C0D6FFAA66983C3593E1C0C5DF0C2571E56017FC + 07E290F24EB0FCBE25F50C4FCF7730E20CC4EEAF0B18B6CF7261080F2B62B87C + 7402C2C926C7FF3BC99C63B8FFFA29C3BDA36D8C3803B1EBCB02861DB35D18A2 + 638B18CEEF9BC0C88003E00CC4DC7B6B09A68BFF672C19B10662E1142186AB1B + CD091AA0EDD98F3D1041B6830CD870EC0FC3AF3FFF19EE9F39C270EF54038392 + 590303A7B225C38F9FFF19162EBDC4C0F0EB1803E3FFFF98291914502003561D + FACDF0EBF77F86C3B35DE172CA413B18BEFFFAC7B06AF515C2062CD9FB0BEC02 + 103EBFD81DAEF907106FDA788DB001B3B7FF046B7E767603C39B1BD319582563 + 1838B522C006ECDB7503BF01044310047019003644AF97A0216C6C5C4E003148 + 0E65624E21D60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + Bitmap = {} + end +end diff --git a/Source/Modulos/Inventario/Views/uViewInventario.pas b/Source/Modulos/Inventario/Views/uViewInventario.pas new file mode 100644 index 0000000..6260999 --- /dev/null +++ b/Source/Modulos/Inventario/Views/uViewInventario.pas @@ -0,0 +1,281 @@ +unit uViewInventario; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, frxClass, frxPreview, cxStyles, + cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, + cxDBData, ActnList, uDADataTable, cxGridLevel, cxClasses, cxControls, + cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, StdCtrls, ExtCtrls, cxLabel, dxPSGlbl, dxPSUtl, + dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, cxIntlPrintSys3, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, cxImage, + cxImageComboBox, ImgList, PngImageList, cxTextEdit, Grids, DBGrids, cxDBLookupComboBox, + cxButtonEdit, cxGridCustomPopupMenu, cxGridPopupMenu, uViewGrid, + uBizInventario, cxSpinEdit, uViewFiltroBase, TB2Item, TBX, + TB2Toolbar, TBXDkPanels, TB2Dock, dxPgsDlg, cxCurrencyEdit, uDAInterfaces, + cxContainer, cxMaskEdit, cxDropDownEdit; +// uBizAlmacenes, uBizObras; + +type + IViewInventario = interface(IViewGrid) + ['{4BAE6CBE-4CBB-4103-B85E-80BE5310723A}'] + function GetInventario: IBizInventario; + procedure SetInventario(const Value: IBizInventario); + property Inventario: IBizInventario read GetInventario write SetInventario; + function GetAlmacenes: TStringList; + procedure SetAlmacenes(const Value: TStringList); + property Almacenes: TStringList read GetAlmacenes write SetAlmacenes; + function GetObras: TStringList; + procedure SetObras(const Value: TStringList); + property Obras: TStringList read GetObras write SetObras; + function DarIDAlmacenObraSeleccionada: Variant; + function ListaAlmacenesObrasVacia: Boolean; + end; + + TfrViewInventario = class(TfrViewGrid, IViewInventario) + cxGridDBTableView1: TcxGridDBTableView; + cxStyleArticuloSinStock: TcxStyle; + cxGridViewSTOCK: TcxGridDBColumn; + cxGridViewDESCRIPCION: TcxGridDBColumn; + cxGridViewREFERENCIA: TcxGridDBColumn; + cxGridViewFAMILIA: TcxGridDBColumn; + cxGridViewALMACEN: TcxGridDBColumn; + cxGridViewID_ALMACEN: TcxGridDBColumn; + cxGridViewRESERVA: TcxGridDBColumn; + cxGridViewPENDIENTE_RECEPCION: TcxGridDBColumn; + cxGridViewREFERENCIA_PROVEEDOR: TcxGridDBColumn; + cxGridViewUNIDADES_ALMACEN: TcxGridDBColumn; + cxGridViewPRECIO_NETO: TcxGridDBColumn; + cxGridViewCOSTE_UNIDADES: TcxGridDBColumn; + cxGridViewID: TcxGridDBColumn; + cxGridViewID_ARTICULO: TcxGridDBColumn; + cxStyleArticuloConStock: TcxStyle; + pnlAlmacenes: TPanel; + cxListaAlmacenesObras: TcxComboBox; + eAlmacen: TLabel; + procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out + AStyle: TcxStyle); + procedure cxListaObrasPropertiesEditValueChanged(Sender: TObject); + procedure CustomViewShow(Sender: TObject); + procedure cxGridViewDataControllerCompare( + ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2, + AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer); + + private + //Filtros relativos a la vista + procedure AnadirFiltroAlmacenesObras; + + protected + FAlmacenes: TStringList; + FObras: TStringList; + FInventario: IBizInventario; + function GetAlmacenes: TStringList; + procedure SetAlmacenes(const Value: TStringList); + function GetObras: TStringList; + procedure SetObras(const Value: TStringList); + function GetInventario: IBizInventario; + procedure SetInventario(const Value: IBizInventario); + public + property Inventario: IBizInventario read GetInventario write SetInventario; + procedure AnadirOtrosFiltros; override; + destructor Destroy; override; + function DarIDAlmacenObraSeleccionada: Variant; + function ListaAlmacenesObrasVacia: Boolean; + end; + +implementation +{$R *.dfm} + +uses uDataModuleInventario, schInventarioClient_Intf, uReferenciasUtils, cxVariants; + +procedure TfrViewInventario.AnadirFiltroAlmacenesObras; +var + FFiltro : TcxFilterCriteriaItemList; + CodigoAlmacen: Variant; +begin + FFiltro := AddFilterGrid(fboAnd); + + CodigoAlmacen := DarIDAlmacenObraSeleccionada; + + if not VarIsNull(CodigoAlmacen) then + begin + FFiltro.AddItem(cxGridViewID_ALMACEN, foEqual, CodigoAlmacen, CodigoAlmacen); + cxGridViewALMACEN.Visible := False; + end + else + cxGridViewALMACEN.Visible := True; +end; + +procedure TfrViewInventario.AnadirOtrosFiltros; +begin + inherited; + + AnadirFiltroAlmacenesObras; + + //Finalmente activamos el filtro si tenemos algo + if cxGridView.DataController.Filter.IsEmpty + then cxGridView.DataController.Filter.Active := False + else cxGridView.DataController.Filter.Active := True; + cxGrid.ActiveLevel.GridView := cxGridView; +end; + +procedure TfrViewInventario.CustomViewShow(Sender: TObject); +begin + inherited; + if Assigned(FAlmacenes) or Assigned(FObras) then + cxListaAlmacenesObras.ItemIndex := 0 + //En el caso de ser la vista para la seleccin de articulos de un determinado almacn + else + pnlAlmacenes.Visible:= False; +end; + +procedure TfrViewInventario.cxGridViewDataControllerCompare( + ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2, + AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer); +begin + inherited; + if (AItemIndex = cxGridViewREFERENCIA.Index) and + (VarType(V1) = VarType(V2)) and (VarType(V1) = varString) then + Compare := CompararReferencias(V1, V2) + else + Compare := VarCompare(V1, V2); +end; + +procedure TfrViewInventario.cxGridViewStylesGetContentStyle(Sender: + TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: + TcxCustomGridTableItem; out AStyle: TcxStyle); +var + IndiceCol: Integer; + AStock: Variant; +begin + inherited; + if Assigned(ARecord) then + begin + IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_INVENTARIOSTOCK).Index; + AStock := ARecord.DisplayTexts[IndiceCol]; + if (AStock < 0) then + AStyle.TextColor := cxStyleArticuloSinStock.TextColor + else + AStyle.TextColor := cxStyleArticuloConStock.TextColor; + end; +end; + +procedure TfrViewInventario.cxListaObrasPropertiesEditValueChanged(Sender: TObject); +begin + inherited; + RefrescarFiltro; +end; + +function TfrViewInventario.DarIDAlmacenObraSeleccionada: Variant; +begin + //INV_ALMACENES + if Assigned(FAlmacenes) then + Result := FAlmacenes.Values[cxListaAlmacenesObras.EditValue] + //INV_OBRAS + else if Assigned(FObras) then + Result := FObras.Values[cxListaAlmacenesObras.EditValue] + else + Raise Exception.Create('No se ha asignado ninguna lista de ALMACENES'); +end; + +destructor TfrViewInventario.Destroy; +begin + FAlmacenes := Nil; + FObras := Nil; + FInventario := Nil; + inherited; +end; + +function TfrViewInventario.GetAlmacenes: TStringList; +begin + Result := FAlmacenes; +end; + +function TfrViewInventario.GetInventario: IBizInventario; +begin + Result := FInventario; +end; + +function TfrViewInventario.GetObras: TStringList; +begin + Result := FObras; +end; + +function TfrViewInventario.ListaAlmacenesObrasVacia: Boolean; +begin + Result := (cxListaAlmacenesObras.Properties.Items.Count = 0); +end; + +procedure TfrViewInventario.SetAlmacenes(const Value: TStringList); +var + Nivel: TcxGridLevel; + i: integer; +begin + FAlmacenes := Value; + eAlmacen.Caption := 'Almacn'; + + if Assigned(FAlmacenes) then + begin + cxGrid.BeginUpdate; + try + with cxListaAlmacenesObras.Properties.Items do + begin + BeginUpdate; + try + Clear; + for i := 0 to FAlmacenes.Count - 1 do + Add(FAlmacenes.Names[i]); + finally + EndUpdate; + end; + end; + + finally + cxGrid.EndUpdate; + end; + end; +end; + +procedure TfrViewInventario.SetInventario(const Value: IBizInventario); +begin + FInventario := Value; + if Assigned(FInventario) then + dsDataSource.DataTable := FInventario.DataTable + else + dsDataSource.DataTable := Nil; +end; + +procedure TfrViewInventario.SetObras(const Value: TStringList); +var + Nivel: TcxGridLevel; + i: integer; +begin + FObras := Value; + eAlmacen.Caption := 'Obra'; + + if Assigned(FObras) then + begin + cxGrid.BeginUpdate; + try + with cxListaAlmacenesObras.Properties.Items do + begin + BeginUpdate; + try + Clear; + for i := 0 to FObras.Count - 1 do + Add(FObras.Names[i]); + finally + EndUpdate; + end; + end; + + finally + cxGrid.EndUpdate; + end; + end; +end; + +end. diff --git a/Source/Modulos/Lib/AlbCli_FacCli_relation.dcp b/Source/Modulos/Lib/AlbCli_FacCli_relation.dcp new file mode 100644 index 0000000..db3af00 Binary files /dev/null and b/Source/Modulos/Lib/AlbCli_FacCli_relation.dcp differ diff --git a/Source/Modulos/Lib/AlbProv_FacProv_relation.dcp b/Source/Modulos/Lib/AlbProv_FacProv_relation.dcp new file mode 100644 index 0000000..131e64c Binary files /dev/null and b/Source/Modulos/Lib/AlbProv_FacProv_relation.dcp differ diff --git a/Source/Modulos/Lib/AlbaranesCliente_controller.dcp b/Source/Modulos/Lib/AlbaranesCliente_controller.dcp new file mode 100644 index 0000000..f8c0230 Binary files /dev/null and b/Source/Modulos/Lib/AlbaranesCliente_controller.dcp differ diff --git a/Source/Modulos/Lib/AlbaranesCliente_data.dcp b/Source/Modulos/Lib/AlbaranesCliente_data.dcp new file mode 100644 index 0000000..475e169 Binary files /dev/null and b/Source/Modulos/Lib/AlbaranesCliente_data.dcp differ diff --git a/Source/Modulos/Lib/AlbaranesCliente_model.dcp b/Source/Modulos/Lib/AlbaranesCliente_model.dcp new file mode 100644 index 0000000..5528b1c Binary files /dev/null and b/Source/Modulos/Lib/AlbaranesCliente_model.dcp differ diff --git a/Source/Modulos/Lib/AlbaranesCliente_plugin.dcp b/Source/Modulos/Lib/AlbaranesCliente_plugin.dcp new file mode 100644 index 0000000..fd28b83 Binary files /dev/null and b/Source/Modulos/Lib/AlbaranesCliente_plugin.dcp differ diff --git a/Source/Modulos/Lib/AlbaranesCliente_view.dcp b/Source/Modulos/Lib/AlbaranesCliente_view.dcp new file mode 100644 index 0000000..dcf4818 Binary files /dev/null and b/Source/Modulos/Lib/AlbaranesCliente_view.dcp differ diff --git a/Source/Modulos/Lib/AlbaranesProveedor_controller.dcp b/Source/Modulos/Lib/AlbaranesProveedor_controller.dcp new file mode 100644 index 0000000..da9aa76 Binary files /dev/null and b/Source/Modulos/Lib/AlbaranesProveedor_controller.dcp differ diff --git a/Source/Modulos/Lib/AlbaranesProveedor_data.dcp b/Source/Modulos/Lib/AlbaranesProveedor_data.dcp new file mode 100644 index 0000000..61d2c96 Binary files /dev/null and b/Source/Modulos/Lib/AlbaranesProveedor_data.dcp differ diff --git a/Source/Modulos/Lib/AlbaranesProveedor_model.dcp b/Source/Modulos/Lib/AlbaranesProveedor_model.dcp new file mode 100644 index 0000000..61ef4f1 Binary files /dev/null and b/Source/Modulos/Lib/AlbaranesProveedor_model.dcp differ diff --git a/Source/Modulos/Lib/AlbaranesProveedor_plugin.dcp b/Source/Modulos/Lib/AlbaranesProveedor_plugin.dcp new file mode 100644 index 0000000..48e37e3 Binary files /dev/null and b/Source/Modulos/Lib/AlbaranesProveedor_plugin.dcp differ diff --git a/Source/Modulos/Lib/AlbaranesProveedor_view.dcp b/Source/Modulos/Lib/AlbaranesProveedor_view.dcp new file mode 100644 index 0000000..39993f4 Binary files /dev/null and b/Source/Modulos/Lib/AlbaranesProveedor_view.dcp differ diff --git a/Source/Modulos/Lib/Almacenes_controller.dcp b/Source/Modulos/Lib/Almacenes_controller.dcp new file mode 100644 index 0000000..8a5ab3b Binary files /dev/null and b/Source/Modulos/Lib/Almacenes_controller.dcp differ diff --git a/Source/Modulos/Lib/Almacenes_data.dcp b/Source/Modulos/Lib/Almacenes_data.dcp new file mode 100644 index 0000000..a4ee329 Binary files /dev/null and b/Source/Modulos/Lib/Almacenes_data.dcp differ diff --git a/Source/Modulos/Lib/Almacenes_model.dcp b/Source/Modulos/Lib/Almacenes_model.dcp new file mode 100644 index 0000000..78daa96 Binary files /dev/null and b/Source/Modulos/Lib/Almacenes_model.dcp differ diff --git a/Source/Modulos/Lib/Almacenes_plugin.dcp b/Source/Modulos/Lib/Almacenes_plugin.dcp new file mode 100644 index 0000000..6e0aca3 Binary files /dev/null and b/Source/Modulos/Lib/Almacenes_plugin.dcp differ diff --git a/Source/Modulos/Lib/Almacenes_view.dcp b/Source/Modulos/Lib/Almacenes_view.dcp new file mode 100644 index 0000000..1f2da49 Binary files /dev/null and b/Source/Modulos/Lib/Almacenes_view.dcp differ diff --git a/Source/Modulos/Lib/Articulos_controller.dcp b/Source/Modulos/Lib/Articulos_controller.dcp new file mode 100644 index 0000000..b475d43 Binary files /dev/null and b/Source/Modulos/Lib/Articulos_controller.dcp differ diff --git a/Source/Modulos/Lib/Articulos_data.dcp b/Source/Modulos/Lib/Articulos_data.dcp new file mode 100644 index 0000000..8007b80 Binary files /dev/null and b/Source/Modulos/Lib/Articulos_data.dcp differ diff --git a/Source/Modulos/Lib/Articulos_model.dcp b/Source/Modulos/Lib/Articulos_model.dcp new file mode 100644 index 0000000..9b0afbe Binary files /dev/null and b/Source/Modulos/Lib/Articulos_model.dcp differ diff --git a/Source/Modulos/Lib/Articulos_plugin.dcp b/Source/Modulos/Lib/Articulos_plugin.dcp new file mode 100644 index 0000000..6742855 Binary files /dev/null and b/Source/Modulos/Lib/Articulos_plugin.dcp differ diff --git a/Source/Modulos/Lib/Articulos_view.dcp b/Source/Modulos/Lib/Articulos_view.dcp new file mode 100644 index 0000000..a97fbd7 Binary files /dev/null and b/Source/Modulos/Lib/Articulos_view.dcp differ diff --git a/Source/Modulos/Lib/Contactos_controller.dcp b/Source/Modulos/Lib/Contactos_controller.dcp new file mode 100644 index 0000000..45152f7 Binary files /dev/null and b/Source/Modulos/Lib/Contactos_controller.dcp differ diff --git a/Source/Modulos/Lib/Contactos_data.dcp b/Source/Modulos/Lib/Contactos_data.dcp new file mode 100644 index 0000000..7b4f00a Binary files /dev/null and b/Source/Modulos/Lib/Contactos_data.dcp differ diff --git a/Source/Modulos/Lib/Contactos_model.dcp b/Source/Modulos/Lib/Contactos_model.dcp new file mode 100644 index 0000000..7059406 Binary files /dev/null and b/Source/Modulos/Lib/Contactos_model.dcp differ diff --git a/Source/Modulos/Lib/Contactos_plugin.dcp b/Source/Modulos/Lib/Contactos_plugin.dcp new file mode 100644 index 0000000..a1f9f72 Binary files /dev/null and b/Source/Modulos/Lib/Contactos_plugin.dcp differ diff --git a/Source/Modulos/Lib/Contactos_view.dcp b/Source/Modulos/Lib/Contactos_view.dcp new file mode 100644 index 0000000..b13a30b Binary files /dev/null and b/Source/Modulos/Lib/Contactos_view.dcp differ diff --git a/Source/Modulos/Lib/Fabricantes_controller.dcp b/Source/Modulos/Lib/Fabricantes_controller.dcp new file mode 100644 index 0000000..da9ed56 Binary files /dev/null and b/Source/Modulos/Lib/Fabricantes_controller.dcp differ diff --git a/Source/Modulos/Lib/Fabricantes_data.dcp b/Source/Modulos/Lib/Fabricantes_data.dcp new file mode 100644 index 0000000..2d60972 Binary files /dev/null and b/Source/Modulos/Lib/Fabricantes_data.dcp differ diff --git a/Source/Modulos/Lib/Fabricantes_model.dcp b/Source/Modulos/Lib/Fabricantes_model.dcp new file mode 100644 index 0000000..99d0777 Binary files /dev/null and b/Source/Modulos/Lib/Fabricantes_model.dcp differ diff --git a/Source/Modulos/Lib/Fabricantes_plugin.dcp b/Source/Modulos/Lib/Fabricantes_plugin.dcp new file mode 100644 index 0000000..11a5d47 Binary files /dev/null and b/Source/Modulos/Lib/Fabricantes_plugin.dcp differ diff --git a/Source/Modulos/Lib/Fabricantes_view.dcp b/Source/Modulos/Lib/Fabricantes_view.dcp new file mode 100644 index 0000000..251306d Binary files /dev/null and b/Source/Modulos/Lib/Fabricantes_view.dcp differ diff --git a/Source/Modulos/Lib/FacturasCliente_controller.dcp b/Source/Modulos/Lib/FacturasCliente_controller.dcp new file mode 100644 index 0000000..94782a5 Binary files /dev/null and b/Source/Modulos/Lib/FacturasCliente_controller.dcp differ diff --git a/Source/Modulos/Lib/FacturasCliente_data.dcp b/Source/Modulos/Lib/FacturasCliente_data.dcp new file mode 100644 index 0000000..0a27d0f Binary files /dev/null and b/Source/Modulos/Lib/FacturasCliente_data.dcp differ diff --git a/Source/Modulos/Lib/FacturasCliente_model.dcp b/Source/Modulos/Lib/FacturasCliente_model.dcp new file mode 100644 index 0000000..0488f5f Binary files /dev/null and b/Source/Modulos/Lib/FacturasCliente_model.dcp differ diff --git a/Source/Modulos/Lib/FacturasCliente_plugin.dcp b/Source/Modulos/Lib/FacturasCliente_plugin.dcp new file mode 100644 index 0000000..b087aec Binary files /dev/null and b/Source/Modulos/Lib/FacturasCliente_plugin.dcp differ diff --git a/Source/Modulos/Lib/FacturasCliente_view.dcp b/Source/Modulos/Lib/FacturasCliente_view.dcp new file mode 100644 index 0000000..c907c74 Binary files /dev/null and b/Source/Modulos/Lib/FacturasCliente_view.dcp differ diff --git a/Source/Modulos/Lib/FacturasProveedor_controller.dcp b/Source/Modulos/Lib/FacturasProveedor_controller.dcp new file mode 100644 index 0000000..9d7b0c0 Binary files /dev/null and b/Source/Modulos/Lib/FacturasProveedor_controller.dcp differ diff --git a/Source/Modulos/Lib/FacturasProveedor_data.dcp b/Source/Modulos/Lib/FacturasProveedor_data.dcp new file mode 100644 index 0000000..6f34492 Binary files /dev/null and b/Source/Modulos/Lib/FacturasProveedor_data.dcp differ diff --git a/Source/Modulos/Lib/FacturasProveedor_model.dcp b/Source/Modulos/Lib/FacturasProveedor_model.dcp new file mode 100644 index 0000000..56301e0 Binary files /dev/null and b/Source/Modulos/Lib/FacturasProveedor_model.dcp differ diff --git a/Source/Modulos/Lib/FacturasProveedor_plugin.dcp b/Source/Modulos/Lib/FacturasProveedor_plugin.dcp new file mode 100644 index 0000000..8ba7fa9 Binary files /dev/null and b/Source/Modulos/Lib/FacturasProveedor_plugin.dcp differ diff --git a/Source/Modulos/Lib/FacturasProveedor_view.dcp b/Source/Modulos/Lib/FacturasProveedor_view.dcp new file mode 100644 index 0000000..1383ff6 Binary files /dev/null and b/Source/Modulos/Lib/FacturasProveedor_view.dcp differ diff --git a/Source/Modulos/Lib/Familias_controller.dcp b/Source/Modulos/Lib/Familias_controller.dcp new file mode 100644 index 0000000..1e88076 Binary files /dev/null and b/Source/Modulos/Lib/Familias_controller.dcp differ diff --git a/Source/Modulos/Lib/Familias_data.dcp b/Source/Modulos/Lib/Familias_data.dcp new file mode 100644 index 0000000..00aa241 Binary files /dev/null and b/Source/Modulos/Lib/Familias_data.dcp differ diff --git a/Source/Modulos/Lib/Familias_model.dcp b/Source/Modulos/Lib/Familias_model.dcp new file mode 100644 index 0000000..89ae36d Binary files /dev/null and b/Source/Modulos/Lib/Familias_model.dcp differ diff --git a/Source/Modulos/Lib/Familias_plugin.dcp b/Source/Modulos/Lib/Familias_plugin.dcp new file mode 100644 index 0000000..a77d275 Binary files /dev/null and b/Source/Modulos/Lib/Familias_plugin.dcp differ diff --git a/Source/Modulos/Lib/Familias_view.dcp b/Source/Modulos/Lib/Familias_view.dcp new file mode 100644 index 0000000..6587baa Binary files /dev/null and b/Source/Modulos/Lib/Familias_view.dcp differ diff --git a/Source/Modulos/Lib/FormasPago_controller.dcp b/Source/Modulos/Lib/FormasPago_controller.dcp new file mode 100644 index 0000000..4d62147 Binary files /dev/null and b/Source/Modulos/Lib/FormasPago_controller.dcp differ diff --git a/Source/Modulos/Lib/FormasPago_data.dcp b/Source/Modulos/Lib/FormasPago_data.dcp new file mode 100644 index 0000000..751407b Binary files /dev/null and b/Source/Modulos/Lib/FormasPago_data.dcp differ diff --git a/Source/Modulos/Lib/FormasPago_model.dcp b/Source/Modulos/Lib/FormasPago_model.dcp new file mode 100644 index 0000000..712574a Binary files /dev/null and b/Source/Modulos/Lib/FormasPago_model.dcp differ diff --git a/Source/Modulos/Lib/FormasPago_plugin.dcp b/Source/Modulos/Lib/FormasPago_plugin.dcp new file mode 100644 index 0000000..9aeef92 Binary files /dev/null and b/Source/Modulos/Lib/FormasPago_plugin.dcp differ diff --git a/Source/Modulos/Lib/FormasPago_view.dcp b/Source/Modulos/Lib/FormasPago_view.dcp new file mode 100644 index 0000000..d16d167 Binary files /dev/null and b/Source/Modulos/Lib/FormasPago_view.dcp differ diff --git a/Source/Modulos/Lib/GestorDocumentos_controller.dcp b/Source/Modulos/Lib/GestorDocumentos_controller.dcp new file mode 100644 index 0000000..23c5274 Binary files /dev/null and b/Source/Modulos/Lib/GestorDocumentos_controller.dcp differ diff --git a/Source/Modulos/Lib/GestorDocumentos_data.dcp b/Source/Modulos/Lib/GestorDocumentos_data.dcp new file mode 100644 index 0000000..ed4c120 Binary files /dev/null and b/Source/Modulos/Lib/GestorDocumentos_data.dcp differ diff --git a/Source/Modulos/Lib/GestorInformes_controller.dcp b/Source/Modulos/Lib/GestorInformes_controller.dcp new file mode 100644 index 0000000..7860322 Binary files /dev/null and b/Source/Modulos/Lib/GestorInformes_controller.dcp differ diff --git a/Source/Modulos/Lib/GestorInformes_data.dcp b/Source/Modulos/Lib/GestorInformes_data.dcp new file mode 100644 index 0000000..b84b008 Binary files /dev/null and b/Source/Modulos/Lib/GestorInformes_data.dcp differ diff --git a/Source/Modulos/Lib/GestorInformes_model.dcp b/Source/Modulos/Lib/GestorInformes_model.dcp new file mode 100644 index 0000000..a3d8128 Binary files /dev/null and b/Source/Modulos/Lib/GestorInformes_model.dcp differ diff --git a/Source/Modulos/Lib/GestorInformes_plugin.dcp b/Source/Modulos/Lib/GestorInformes_plugin.dcp new file mode 100644 index 0000000..3a75518 Binary files /dev/null and b/Source/Modulos/Lib/GestorInformes_plugin.dcp differ diff --git a/Source/Modulos/Lib/GestorInformes_view.dcp b/Source/Modulos/Lib/GestorInformes_view.dcp new file mode 100644 index 0000000..c76601d Binary files /dev/null and b/Source/Modulos/Lib/GestorInformes_view.dcp differ diff --git a/Source/Modulos/Lib/HistoricoMovimientos_controller.dcp b/Source/Modulos/Lib/HistoricoMovimientos_controller.dcp new file mode 100644 index 0000000..8c1a0c0 Binary files /dev/null and b/Source/Modulos/Lib/HistoricoMovimientos_controller.dcp differ diff --git a/Source/Modulos/Lib/HistoricoMovimientos_data.dcp b/Source/Modulos/Lib/HistoricoMovimientos_data.dcp new file mode 100644 index 0000000..21ae692 Binary files /dev/null and b/Source/Modulos/Lib/HistoricoMovimientos_data.dcp differ diff --git a/Source/Modulos/Lib/HistoricoMovimientos_model.dcp b/Source/Modulos/Lib/HistoricoMovimientos_model.dcp new file mode 100644 index 0000000..8caadd3 Binary files /dev/null and b/Source/Modulos/Lib/HistoricoMovimientos_model.dcp differ diff --git a/Source/Modulos/Lib/HistoricoMovimientos_plugin.dcp b/Source/Modulos/Lib/HistoricoMovimientos_plugin.dcp new file mode 100644 index 0000000..4aa43df Binary files /dev/null and b/Source/Modulos/Lib/HistoricoMovimientos_plugin.dcp differ diff --git a/Source/Modulos/Lib/HistoricoMovimientos_view.dcp b/Source/Modulos/Lib/HistoricoMovimientos_view.dcp new file mode 100644 index 0000000..fa29cf8 Binary files /dev/null and b/Source/Modulos/Lib/HistoricoMovimientos_view.dcp differ diff --git a/Source/Modulos/Lib/Inventario_controller.dcp b/Source/Modulos/Lib/Inventario_controller.dcp new file mode 100644 index 0000000..bbda972 Binary files /dev/null and b/Source/Modulos/Lib/Inventario_controller.dcp differ diff --git a/Source/Modulos/Lib/Inventario_data.dcp b/Source/Modulos/Lib/Inventario_data.dcp new file mode 100644 index 0000000..25f5de5 Binary files /dev/null and b/Source/Modulos/Lib/Inventario_data.dcp differ diff --git a/Source/Modulos/Lib/Inventario_model.dcp b/Source/Modulos/Lib/Inventario_model.dcp new file mode 100644 index 0000000..d0834b9 Binary files /dev/null and b/Source/Modulos/Lib/Inventario_model.dcp differ diff --git a/Source/Modulos/Lib/Inventario_plugin.dcp b/Source/Modulos/Lib/Inventario_plugin.dcp new file mode 100644 index 0000000..c81d6b6 Binary files /dev/null and b/Source/Modulos/Lib/Inventario_plugin.dcp differ diff --git a/Source/Modulos/Lib/Inventario_view.dcp b/Source/Modulos/Lib/Inventario_view.dcp new file mode 100644 index 0000000..bf4c44e Binary files /dev/null and b/Source/Modulos/Lib/Inventario_view.dcp differ diff --git a/Source/Modulos/Lib/Obras_controller.dcp b/Source/Modulos/Lib/Obras_controller.dcp new file mode 100644 index 0000000..23119a5 Binary files /dev/null and b/Source/Modulos/Lib/Obras_controller.dcp differ diff --git a/Source/Modulos/Lib/Obras_data.dcp b/Source/Modulos/Lib/Obras_data.dcp new file mode 100644 index 0000000..29d171f Binary files /dev/null and b/Source/Modulos/Lib/Obras_data.dcp differ diff --git a/Source/Modulos/Lib/Obras_model.dcp b/Source/Modulos/Lib/Obras_model.dcp new file mode 100644 index 0000000..a0ca2d2 Binary files /dev/null and b/Source/Modulos/Lib/Obras_model.dcp differ diff --git a/Source/Modulos/Lib/Obras_plugin.dcp b/Source/Modulos/Lib/Obras_plugin.dcp new file mode 100644 index 0000000..ccfe981 Binary files /dev/null and b/Source/Modulos/Lib/Obras_plugin.dcp differ diff --git a/Source/Modulos/Lib/Obras_view.dcp b/Source/Modulos/Lib/Obras_view.dcp new file mode 100644 index 0000000..dba04bc Binary files /dev/null and b/Source/Modulos/Lib/Obras_view.dcp differ diff --git a/Source/Modulos/Lib/PedProv_AlbProv_relation.dcp b/Source/Modulos/Lib/PedProv_AlbProv_relation.dcp new file mode 100644 index 0000000..1cdc2c8 Binary files /dev/null and b/Source/Modulos/Lib/PedProv_AlbProv_relation.dcp differ diff --git a/Source/Modulos/Lib/PedProv_FacProv_relation.dcp b/Source/Modulos/Lib/PedProv_FacProv_relation.dcp new file mode 100644 index 0000000..600d898 Binary files /dev/null and b/Source/Modulos/Lib/PedProv_FacProv_relation.dcp differ diff --git a/Source/Modulos/Lib/PedidosProveedor_controller.dcp b/Source/Modulos/Lib/PedidosProveedor_controller.dcp new file mode 100644 index 0000000..e44a1a6 Binary files /dev/null and b/Source/Modulos/Lib/PedidosProveedor_controller.dcp differ diff --git a/Source/Modulos/Lib/PedidosProveedor_data.dcp b/Source/Modulos/Lib/PedidosProveedor_data.dcp new file mode 100644 index 0000000..2981aea Binary files /dev/null and b/Source/Modulos/Lib/PedidosProveedor_data.dcp differ diff --git a/Source/Modulos/Lib/PedidosProveedor_model.dcp b/Source/Modulos/Lib/PedidosProveedor_model.dcp new file mode 100644 index 0000000..553a232 Binary files /dev/null and b/Source/Modulos/Lib/PedidosProveedor_model.dcp differ diff --git a/Source/Modulos/Lib/PedidosProveedor_plugin.dcp b/Source/Modulos/Lib/PedidosProveedor_plugin.dcp new file mode 100644 index 0000000..acc89c2 Binary files /dev/null and b/Source/Modulos/Lib/PedidosProveedor_plugin.dcp differ diff --git a/Source/Modulos/Lib/PedidosProveedor_view.dcp b/Source/Modulos/Lib/PedidosProveedor_view.dcp new file mode 100644 index 0000000..1b980f8 Binary files /dev/null and b/Source/Modulos/Lib/PedidosProveedor_view.dcp differ diff --git a/Source/Modulos/Lib/PreCli_AlbCli_relation.dcp b/Source/Modulos/Lib/PreCli_AlbCli_relation.dcp new file mode 100644 index 0000000..9013bf7 Binary files /dev/null and b/Source/Modulos/Lib/PreCli_AlbCli_relation.dcp differ diff --git a/Source/Modulos/Lib/PreCli_FacCli_relation.dcp b/Source/Modulos/Lib/PreCli_FacCli_relation.dcp new file mode 100644 index 0000000..ebf4dea Binary files /dev/null and b/Source/Modulos/Lib/PreCli_FacCli_relation.dcp differ diff --git a/Source/Modulos/Lib/PresupuestosCliente_controller.dcp b/Source/Modulos/Lib/PresupuestosCliente_controller.dcp new file mode 100644 index 0000000..391f2e7 Binary files /dev/null and b/Source/Modulos/Lib/PresupuestosCliente_controller.dcp differ diff --git a/Source/Modulos/Lib/PresupuestosCliente_data.dcp b/Source/Modulos/Lib/PresupuestosCliente_data.dcp new file mode 100644 index 0000000..4add5f9 Binary files /dev/null and b/Source/Modulos/Lib/PresupuestosCliente_data.dcp differ diff --git a/Source/Modulos/Lib/PresupuestosCliente_model.dcp b/Source/Modulos/Lib/PresupuestosCliente_model.dcp new file mode 100644 index 0000000..9dfa102 Binary files /dev/null and b/Source/Modulos/Lib/PresupuestosCliente_model.dcp differ diff --git a/Source/Modulos/Lib/PresupuestosCliente_plugin.dcp b/Source/Modulos/Lib/PresupuestosCliente_plugin.dcp new file mode 100644 index 0000000..ae23526 Binary files /dev/null and b/Source/Modulos/Lib/PresupuestosCliente_plugin.dcp differ diff --git a/Source/Modulos/Lib/PresupuestosCliente_view.dcp b/Source/Modulos/Lib/PresupuestosCliente_view.dcp new file mode 100644 index 0000000..e7af369 Binary files /dev/null and b/Source/Modulos/Lib/PresupuestosCliente_view.dcp differ diff --git a/Source/Modulos/Lib/RecibosCliente_controller.dcp b/Source/Modulos/Lib/RecibosCliente_controller.dcp new file mode 100644 index 0000000..ce47646 Binary files /dev/null and b/Source/Modulos/Lib/RecibosCliente_controller.dcp differ diff --git a/Source/Modulos/Lib/RecibosCliente_data.dcp b/Source/Modulos/Lib/RecibosCliente_data.dcp new file mode 100644 index 0000000..3db4d91 Binary files /dev/null and b/Source/Modulos/Lib/RecibosCliente_data.dcp differ diff --git a/Source/Modulos/Lib/RecibosCliente_model.dcp b/Source/Modulos/Lib/RecibosCliente_model.dcp new file mode 100644 index 0000000..63463bb Binary files /dev/null and b/Source/Modulos/Lib/RecibosCliente_model.dcp differ diff --git a/Source/Modulos/Lib/RecibosCliente_plugin.dcp b/Source/Modulos/Lib/RecibosCliente_plugin.dcp new file mode 100644 index 0000000..996d7ec Binary files /dev/null and b/Source/Modulos/Lib/RecibosCliente_plugin.dcp differ diff --git a/Source/Modulos/Lib/RecibosCliente_view.dcp b/Source/Modulos/Lib/RecibosCliente_view.dcp new file mode 100644 index 0000000..5edffaf Binary files /dev/null and b/Source/Modulos/Lib/RecibosCliente_view.dcp differ diff --git a/Source/Modulos/Lib/RecibosProveedor_controller.dcp b/Source/Modulos/Lib/RecibosProveedor_controller.dcp new file mode 100644 index 0000000..618b94a Binary files /dev/null and b/Source/Modulos/Lib/RecibosProveedor_controller.dcp differ diff --git a/Source/Modulos/Lib/RecibosProveedor_data.dcp b/Source/Modulos/Lib/RecibosProveedor_data.dcp new file mode 100644 index 0000000..f35a065 Binary files /dev/null and b/Source/Modulos/Lib/RecibosProveedor_data.dcp differ diff --git a/Source/Modulos/Lib/RecibosProveedor_model.dcp b/Source/Modulos/Lib/RecibosProveedor_model.dcp new file mode 100644 index 0000000..49d3407 Binary files /dev/null and b/Source/Modulos/Lib/RecibosProveedor_model.dcp differ diff --git a/Source/Modulos/Lib/RecibosProveedor_plugin.dcp b/Source/Modulos/Lib/RecibosProveedor_plugin.dcp new file mode 100644 index 0000000..86392cf Binary files /dev/null and b/Source/Modulos/Lib/RecibosProveedor_plugin.dcp differ diff --git a/Source/Modulos/Lib/RecibosProveedor_view.dcp b/Source/Modulos/Lib/RecibosProveedor_view.dcp new file mode 100644 index 0000000..628f0cb Binary files /dev/null and b/Source/Modulos/Lib/RecibosProveedor_view.dcp differ diff --git a/Source/Modulos/Lib/Referencias_controller.dcp b/Source/Modulos/Lib/Referencias_controller.dcp new file mode 100644 index 0000000..107bd0f Binary files /dev/null and b/Source/Modulos/Lib/Referencias_controller.dcp differ diff --git a/Source/Modulos/Lib/Referencias_data.dcp b/Source/Modulos/Lib/Referencias_data.dcp new file mode 100644 index 0000000..865d57c Binary files /dev/null and b/Source/Modulos/Lib/Referencias_data.dcp differ diff --git a/Source/Modulos/Lib/Referencias_model.dcp b/Source/Modulos/Lib/Referencias_model.dcp new file mode 100644 index 0000000..f046885 Binary files /dev/null and b/Source/Modulos/Lib/Referencias_model.dcp differ diff --git a/Source/Modulos/Lib/Referencias_plugin.dcp b/Source/Modulos/Lib/Referencias_plugin.dcp new file mode 100644 index 0000000..7a81324 Binary files /dev/null and b/Source/Modulos/Lib/Referencias_plugin.dcp differ diff --git a/Source/Modulos/Lib/Referencias_view.dcp b/Source/Modulos/Lib/Referencias_view.dcp new file mode 100644 index 0000000..72bcf6d Binary files /dev/null and b/Source/Modulos/Lib/Referencias_view.dcp differ diff --git a/Source/Modulos/Lib/RemesasCliente_controller.dcp b/Source/Modulos/Lib/RemesasCliente_controller.dcp new file mode 100644 index 0000000..cccda13 Binary files /dev/null and b/Source/Modulos/Lib/RemesasCliente_controller.dcp differ diff --git a/Source/Modulos/Lib/RemesasCliente_data.dcp b/Source/Modulos/Lib/RemesasCliente_data.dcp new file mode 100644 index 0000000..b4764b0 Binary files /dev/null and b/Source/Modulos/Lib/RemesasCliente_data.dcp differ diff --git a/Source/Modulos/Lib/RemesasCliente_model.dcp b/Source/Modulos/Lib/RemesasCliente_model.dcp new file mode 100644 index 0000000..dc8636f Binary files /dev/null and b/Source/Modulos/Lib/RemesasCliente_model.dcp differ diff --git a/Source/Modulos/Lib/RemesasCliente_plugin.dcp b/Source/Modulos/Lib/RemesasCliente_plugin.dcp new file mode 100644 index 0000000..006a4de Binary files /dev/null and b/Source/Modulos/Lib/RemesasCliente_plugin.dcp differ diff --git a/Source/Modulos/Lib/RemesasCliente_view.dcp b/Source/Modulos/Lib/RemesasCliente_view.dcp new file mode 100644 index 0000000..3b04b80 Binary files /dev/null and b/Source/Modulos/Lib/RemesasCliente_view.dcp differ diff --git a/Source/Modulos/Lib/RemesasProveedor_controller.dcp b/Source/Modulos/Lib/RemesasProveedor_controller.dcp new file mode 100644 index 0000000..7db000f Binary files /dev/null and b/Source/Modulos/Lib/RemesasProveedor_controller.dcp differ diff --git a/Source/Modulos/Lib/RemesasProveedor_data.dcp b/Source/Modulos/Lib/RemesasProveedor_data.dcp new file mode 100644 index 0000000..e162c21 Binary files /dev/null and b/Source/Modulos/Lib/RemesasProveedor_data.dcp differ diff --git a/Source/Modulos/Lib/RemesasProveedor_model.dcp b/Source/Modulos/Lib/RemesasProveedor_model.dcp new file mode 100644 index 0000000..6dd6ad7 Binary files /dev/null and b/Source/Modulos/Lib/RemesasProveedor_model.dcp differ diff --git a/Source/Modulos/Lib/RemesasProveedor_plugin.dcp b/Source/Modulos/Lib/RemesasProveedor_plugin.dcp new file mode 100644 index 0000000..0c6e302 Binary files /dev/null and b/Source/Modulos/Lib/RemesasProveedor_plugin.dcp differ diff --git a/Source/Modulos/Lib/RemesasProveedor_view.dcp b/Source/Modulos/Lib/RemesasProveedor_view.dcp new file mode 100644 index 0000000..fdb64fc Binary files /dev/null and b/Source/Modulos/Lib/RemesasProveedor_view.dcp differ diff --git a/Source/Modulos/Lib/TiposIVA_controller.dcp b/Source/Modulos/Lib/TiposIVA_controller.dcp new file mode 100644 index 0000000..3287123 Binary files /dev/null and b/Source/Modulos/Lib/TiposIVA_controller.dcp differ diff --git a/Source/Modulos/Lib/TiposIVA_data.dcp b/Source/Modulos/Lib/TiposIVA_data.dcp new file mode 100644 index 0000000..c533921 Binary files /dev/null and b/Source/Modulos/Lib/TiposIVA_data.dcp differ diff --git a/Source/Modulos/Lib/TiposIVA_model.dcp b/Source/Modulos/Lib/TiposIVA_model.dcp new file mode 100644 index 0000000..c63d436 Binary files /dev/null and b/Source/Modulos/Lib/TiposIVA_model.dcp differ diff --git a/Source/Modulos/Lib/TiposIVA_plugin.dcp b/Source/Modulos/Lib/TiposIVA_plugin.dcp new file mode 100644 index 0000000..f396676 Binary files /dev/null and b/Source/Modulos/Lib/TiposIVA_plugin.dcp differ diff --git a/Source/Modulos/Lib/TiposIVA_view.dcp b/Source/Modulos/Lib/TiposIVA_view.dcp new file mode 100644 index 0000000..e1f0cca Binary files /dev/null and b/Source/Modulos/Lib/TiposIVA_view.dcp differ diff --git a/Source/Modulos/Lib/UnidadesMedida_controller.dcp b/Source/Modulos/Lib/UnidadesMedida_controller.dcp new file mode 100644 index 0000000..1fd494d Binary files /dev/null and b/Source/Modulos/Lib/UnidadesMedida_controller.dcp differ diff --git a/Source/Modulos/Lib/UnidadesMedida_data.dcp b/Source/Modulos/Lib/UnidadesMedida_data.dcp new file mode 100644 index 0000000..a7c1aec Binary files /dev/null and b/Source/Modulos/Lib/UnidadesMedida_data.dcp differ diff --git a/Source/Modulos/Lib/UnidadesMedida_model.dcp b/Source/Modulos/Lib/UnidadesMedida_model.dcp new file mode 100644 index 0000000..ed7f3af Binary files /dev/null and b/Source/Modulos/Lib/UnidadesMedida_model.dcp differ diff --git a/Source/Modulos/Lib/UnidadesMedida_plugin.dcp b/Source/Modulos/Lib/UnidadesMedida_plugin.dcp new file mode 100644 index 0000000..524dfd7 Binary files /dev/null and b/Source/Modulos/Lib/UnidadesMedida_plugin.dcp differ diff --git a/Source/Modulos/Lib/UnidadesMedida_view.dcp b/Source/Modulos/Lib/UnidadesMedida_view.dcp new file mode 100644 index 0000000..47b5be2 Binary files /dev/null and b/Source/Modulos/Lib/UnidadesMedida_view.dcp differ diff --git a/Source/Modulos/Obras/Controller/Obras_controller.bdsproj b/Source/Modulos/Obras/Controller/Obras_controller.bdsproj new file mode 100644 index 0000000..d04814d --- /dev/null +++ b/Source/Modulos/Obras/Controller/Obras_controller.bdsproj @@ -0,0 +1,175 @@ + + + + + + + + + + + + Obras_controller.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + diff --git a/Source/Modulos/Obras/Controller/Obras_controller.dcu b/Source/Modulos/Obras/Controller/Obras_controller.dcu new file mode 100644 index 0000000..5ea7c2d Binary files /dev/null and b/Source/Modulos/Obras/Controller/Obras_controller.dcu differ diff --git a/Source/Modulos/Obras/Controller/Obras_controller.dpk b/Source/Modulos/Obras/Controller/Obras_controller.dpk new file mode 100644 index 0000000..d459614 Binary files /dev/null and b/Source/Modulos/Obras/Controller/Obras_controller.dpk differ diff --git a/Source/Modulos/Obras/Controller/Obras_controller.dproj b/Source/Modulos/Obras/Controller/Obras_controller.dproj new file mode 100644 index 0000000..62263c2 --- /dev/null +++ b/Source/Modulos/Obras/Controller/Obras_controller.dproj @@ -0,0 +1,545 @@ + + + + {12085ab3-37D9-4E64-8D4C-74D7748385D4} + Obras_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Obras_controller.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Obras_controller.dpk + + + + + MainSource + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Obras/Controller/Obras_controller.rc b/Source/Modulos/Obras/Controller/Obras_controller.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Obras/Controller/Obras_controller.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Obras/Controller/Obras_controller.res b/Source/Modulos/Obras/Controller/Obras_controller.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Obras/Controller/Obras_controller.res differ diff --git a/Source/Modulos/Obras/Controller/View/uIEditorEjecucionObra.dcu b/Source/Modulos/Obras/Controller/View/uIEditorEjecucionObra.dcu new file mode 100644 index 0000000..0467f65 Binary files /dev/null and b/Source/Modulos/Obras/Controller/View/uIEditorEjecucionObra.dcu differ diff --git a/Source/Modulos/Obras/Controller/View/uIEditorEjecucionObra.pas b/Source/Modulos/Obras/Controller/View/uIEditorEjecucionObra.pas new file mode 100644 index 0000000..3072414 --- /dev/null +++ b/Source/Modulos/Obras/Controller/View/uIEditorEjecucionObra.pas @@ -0,0 +1,22 @@ +unit uIEditorEjecucionObra; + +interface + +uses + uEditorDBItem, uBizObras, uObrasController; + +type + IEditorEjecucionObra = interface(IEditorDBItem) + ['{66E87046-6625-4195-BDF0-6559E2BFB163}'] + function GetController : IObrasController; + procedure SetController (const Value : IObrasController); + property Controller : IObrasController read GetController write SetController; + + function GetObra: IBizObra; + procedure SetObra(const Value: IBizObra); + property Obra: IBizObra read GetObra write SetObra; + end; + +implementation + +end. diff --git a/Source/Modulos/Obras/Controller/View/uIEditorFechaCierreObra.dcu b/Source/Modulos/Obras/Controller/View/uIEditorFechaCierreObra.dcu new file mode 100644 index 0000000..6c596ff Binary files /dev/null and b/Source/Modulos/Obras/Controller/View/uIEditorFechaCierreObra.dcu differ diff --git a/Source/Modulos/Obras/Controller/View/uIEditorFechaCierreObra.pas b/Source/Modulos/Obras/Controller/View/uIEditorFechaCierreObra.pas new file mode 100644 index 0000000..98054ba --- /dev/null +++ b/Source/Modulos/Obras/Controller/View/uIEditorFechaCierreObra.pas @@ -0,0 +1,19 @@ +unit uIEditorFechaCierreObra; + +interface + +type + IEditorFechaCierreObra = interface + ['{2124B621-143A-4955-90EF-EC2053840A47}'] + function ShowModal : Integer; + procedure Show; + procedure Release; + + procedure SetFechaCierre (const Value : TDateTime); + function GetFechaCierre : TDateTime; + property FechaCierre : TDateTime read GetFechaCierre write SetFechaCierre; + end; + +implementation + +end. diff --git a/Source/Modulos/Obras/Controller/View/uIEditorListaObras.dcu b/Source/Modulos/Obras/Controller/View/uIEditorListaObras.dcu new file mode 100644 index 0000000..094e56a Binary files /dev/null and b/Source/Modulos/Obras/Controller/View/uIEditorListaObras.dcu differ diff --git a/Source/Modulos/Obras/Controller/View/uIEditorListaObras.pas b/Source/Modulos/Obras/Controller/View/uIEditorListaObras.pas new file mode 100644 index 0000000..57bb354 --- /dev/null +++ b/Source/Modulos/Obras/Controller/View/uIEditorListaObras.pas @@ -0,0 +1,25 @@ +unit uIEditorListaObras; + +interface + +uses + uBizObras; + +type + IEditorListaObras = interface + ['{F4C721AE-3F5A-4474-A75F-1E4902DB2EAE}'] + function GetObras: IBizObra; + procedure SetObras(const Value: IBizObra); + property Obras: IBizObra read GetObras write SetObras; + + function GetObraSeleccionado: IBizObra; + property ObraSeleccionado: IBizObra read GetObraSeleccionado; + + function ShowModal : Integer; + procedure Release; + end; + + +implementation + +end. diff --git a/Source/Modulos/Obras/Controller/View/uIEditorObra.dcu b/Source/Modulos/Obras/Controller/View/uIEditorObra.dcu new file mode 100644 index 0000000..6e428ee Binary files /dev/null and b/Source/Modulos/Obras/Controller/View/uIEditorObra.dcu differ diff --git a/Source/Modulos/Obras/Controller/View/uIEditorObra.pas b/Source/Modulos/Obras/Controller/View/uIEditorObra.pas new file mode 100644 index 0000000..81be3e4 --- /dev/null +++ b/Source/Modulos/Obras/Controller/View/uIEditorObra.pas @@ -0,0 +1,22 @@ +unit uIEditorObra; + +interface + +uses + uEditorDBItem, uBizObras, uObrasController; + +type + IEditorObra = interface(IEditorDBItem) + ['{3A62952C-9426-4BA1-AF55-0E3676523DE3}'] + function GetController : IObrasController; + procedure SetController (const Value : IObrasController); + property Controller : IObrasController read GetController write SetController; + + function GetObra: IBizObra; + procedure SetObra(const Value: IBizObra); + property Obra: IBizObra read GetObra write SetObra; + end; + +implementation + +end. diff --git a/Source/Modulos/Obras/Controller/View/uIEditorObras.dcu b/Source/Modulos/Obras/Controller/View/uIEditorObras.dcu new file mode 100644 index 0000000..03134d2 Binary files /dev/null and b/Source/Modulos/Obras/Controller/View/uIEditorObras.dcu differ diff --git a/Source/Modulos/Obras/Controller/View/uIEditorObras.pas b/Source/Modulos/Obras/Controller/View/uIEditorObras.pas new file mode 100644 index 0000000..575ccac --- /dev/null +++ b/Source/Modulos/Obras/Controller/View/uIEditorObras.pas @@ -0,0 +1,23 @@ +unit uIEditorObras; + +interface + +uses + uEditorGridBase, uBizObras, uObrasController; + +type + IEditorObras = interface(IEditorGridBase) + ['{72EE0959-B3A2-4B30-8F1C-5EA65FBFF5D9}'] + function GetObras: IBizObra; + procedure SetObras(const Value: IBizObra); + property Obras: IBizObra read GetObras write SetObras; + + function GetController : IObrasController; + procedure SetController (const Value : IObrasController); + property Controller : IObrasController read GetController write SetController; + end; + + +implementation + +end. diff --git a/Source/Modulos/Obras/Controller/uObrasController.dcu b/Source/Modulos/Obras/Controller/uObrasController.dcu new file mode 100644 index 0000000..bace9b3 Binary files /dev/null and b/Source/Modulos/Obras/Controller/uObrasController.dcu differ diff --git a/Source/Modulos/Obras/Controller/uObrasController.pas b/Source/Modulos/Obras/Controller/uObrasController.pas new file mode 100644 index 0000000..3f0d2a4 --- /dev/null +++ b/Source/Modulos/Obras/Controller/uObrasController.pas @@ -0,0 +1,646 @@ +unit uObrasController; + +interface + + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uEditorDBItem, + uIDataModuleObras, uBizObras, uBizDireccionesContacto, uBizContactos; + +type + IObrasController = interface(IControllerBase) + ['{FC563E47-7634-4227-9E4F-ED15C5C3A783}'] + function Buscar(const ID: Integer): IBizObra; + function BuscarTodos: IBizObra; + procedure Ver(AObra : IBizObra); + procedure VerEjecucion(AObra : IBizObra); + procedure VerTodos(AObras: IBizObra); + function VerLista(AObras: IBizObra): IBizObra; + function Nuevo : IBizObra; overload; + procedure Anadir(AObra : IBizObra); + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(AObra : IBizObra): Boolean; overload; + function Guardar(AObra : IBizObra): Boolean; + procedure DescartarCambios(AObra : IBizObra); + function Existe(const ID: Integer) : Boolean; + function Duplicar(AObra: IBizObra): IBizObra; + procedure Preview(AObra : IBizObra); + procedure Print(AObra : IBizObra); + + procedure QuitarDireccion(AObra: IBizObra); + procedure CopiarDireccion (const ADireccionEnvio: IBizDireccionesContacto; AObra: IBizObra); overload; + procedure CopiarDireccion (const ACliente: IBizCliente; AObra: IBizObra); overload; + +// procedure NuevaEjecucion(AObra: IBizObra; const AFecha : TDateTime); + procedure CerrarEjecucionActiva(AObra: IBizObra; const AFecha : TDateTime); + function LocalizarEjecucionActiva(AEjecuciones: IBizEjecucionesObra): boolean; + function DarListaObras : TStringList; + end; + + TObrasController = class(TControllerBase, IObrasController) + protected + FDataModule : IDataModuleObras; + + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; +// procedure AssignarID(AObra: IBizObra; ADataModule : IDataModuleObras); virtual; + function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; + function _Vacio : IBizObra; + + procedure FiltrarEmpresa(AObra: IBizObra); + function ValidarObra(AObra: IBizObra): Boolean; + + //Estos son los tres mtodos a sobre escribir si se desea heredar toda la logica de + //este controller + procedure AsignarDataModule; virtual; + procedure RecuperarObjetos(AObra: IBizObra); virtual; + + procedure ValidarObjetos; virtual; +// procedure AsignarCodigo(AObra: IBizObra); virtual; + + public + constructor Create; override; + destructor Destroy; override; + + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(AObra : IBizObra): Boolean; overload; + function Guardar(AObra : IBizObra): Boolean; + procedure DescartarCambios(AObra : IBizObra); + function Existe(const ID: Integer) : Boolean; virtual; + procedure Anadir(AObra : IBizObra); + function Buscar(const ID: Integer): IBizObra; + function BuscarTodos: IBizObra; + function Nuevo : IBizObra; overload; + procedure Ver(AObra : IBizObra); + procedure VerEjecucion(AObra : IBizObra); + procedure VerTodos(AObras: IBizObra); + function VerLista(AObras: IBizObra): IBizObra; + function Duplicar(AObra: IBizObra): IBizObra; + procedure Preview(AObra : IBizObra); + procedure Print(AObra : IBizObra); +// procedure NuevaEjecucion(AObra: IBizObra; const AFecha : TDateTime); + procedure CerrarEjecucionActiva(AObra: IBizObra; const AFecha : TDateTime); + procedure QuitarDireccion(AObra: IBizObra); + procedure CopiarDireccion (const ADireccionEnvio: IBizDireccionesContacto; AObra: IBizObra); overload; + procedure CopiarDireccion (const ACliente: IBizCliente; AObra: IBizObra); overload; + function LocalizarEjecucionActiva(AEjecuciones: IBizEjecucionesObra): boolean; + function DarListaObras : TStringList; + end; + +implementation + +uses + cxControls, DB, uEditorRegistryUtils, schObrasClient_Intf, + uIEditorObras, uIEditorObra, uDataModuleObras, Variants, + uDataModuleUsuarios, uDAInterfaces, uDataTableUtils, uFactuGES_App, + uDateUtils, uROTypes, DateUtils, Controls, Windows, uIEditorListaObras, + uIEditorFechaCierreObra, uIEditorEjecucionObra; + +{ TObrasController } + +procedure TObrasController.Anadir(AObra: IBizObra); +begin + AObra.Insert; +end; + +{procedure TObrasController.AsignarCodigo(AObra: IBizObra); +begin + if (AObra.EsNuevo) then + AssignarID(AObra, (FDataModule as IDataModuleObras)); +end;} + +procedure TObrasController.AsignarDataModule; +begin + FDataModule := TDataModuleObras.Create(Nil); +end; + +{procedure TObrasController.AssignarID(AObra: IBizObra; ADataModule : IDataModuleObras); +var + NuevoIDCabecera : Integer; +begin + if not Assigned(AObra) then + raise Exception.Create ('Obra no asignada'); + + NuevoIDCabecera := ADataModule.GetNextID(AObra.DataTable.LogicalName); + + AObra.Edit; + AObra.ID := NuevoIDCabecera; + AObra.Post; +end;} + +function TObrasController.Buscar(const ID: Integer): IBizObra; +begin + Result := (FDataModule as IDataModuleObras).GetItem(ID); + FiltrarEmpresa(Result); +end; + +function TObrasController.BuscarTodos: IBizObra; +begin + Result := FDataModule.GetItems; + FiltrarEmpresa(Result); +end; + +procedure TObrasController.CopiarDireccion(const ADireccionEnvio: IBizDireccionesContacto; AObra: IBizObra); +var + bEnEdicion : Boolean; +begin + if not Assigned(AObra) then + raise Exception.Create ('Obra no asignada (CopiarDireccion)'); + + if not Assigned(ADireccionEnvio) then + raise Exception.Create ('No se ha indicado la direccin (CopiarDireccionEnvio)'); + + if AObra.DataTable.Active then + AObra.DataTable.Active := True; + + if ADireccionEnvio.DataTable.Active then + ADireccionEnvio.DataTable.Active := True; + + + bEnEdicion := (AObra.DataTable.State in dsEditModes); + if not bEnEdicion then + AObra.Edit; + + ShowHourglassCursor; + AObra.Edit; + try + AObra.CALLE := ADireccionEnvio.CALLE; + AObra.POBLACION := ADireccionEnvio.POBLACION; + AObra.CODIGO_POSTAL := ADireccionEnvio.CODIGO_POSTAL; + AObra.PROVINCIA := ADireccionEnvio.PROVINCIA; + AObra.TELEFONO := ADireccionEnvio.TELEFONO; + AObra.PERSONA_CONTACTO := ADireccionEnvio.PERSONA_CONTACTO; + + if not bEnEdicion then + AObra.Post; + finally + HideHourglassCursor; + end; +end; + +procedure TObrasController.CerrarEjecucionActiva(AObra: IBizObra; + const AFecha: TDateTime); +var + AEditor : IEditorFechaCierreObra; +begin + AEditor := NIL; + + if not Assigned(AObra) then + raise Exception.Create ('Obra no asignada (CerrarEjecucion)'); + + if AObra.DataTable.Active then + AObra.DataTable.Active := True; + + CreateEditor('EditorFechaCierreObra', IEditorFechaCierreObra, AEditor); + if Assigned(AEditor) then + try + AEditor.FechaCierre := DateOf(AFecha); + if (AEditor.ShowModal = mrOk) then + begin + AObra.Ejecuciones.Edit; + AObra.Ejecuciones.FECHA_FIN := DateOf(AEditor.FechaCierre); + AObra.Ejecuciones.Post; + end; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +procedure TObrasController.CopiarDireccion(const ACliente: IBizCliente; + AObra: IBizObra); +var + bEnEdicion : Boolean; +begin + if not Assigned(AObra) then + raise Exception.Create ('Obra no asignada (CopiarDireccion)'); + + if not Assigned(ACliente) then + raise Exception.Create ('No se ha indicado el cliente (CopiarDireccionEnvio)'); + + if AObra.DataTable.Active then + AObra.DataTable.Active := True; + + if ACliente.DataTable.Active then + ACliente.DataTable.Active := True; + + + bEnEdicion := (AObra.DataTable.State in dsEditModes); + if not bEnEdicion then + AObra.Edit; + + ShowHourglassCursor; + AObra.Edit; + try + AObra.CALLE := ACliente.CALLE; + AObra.POBLACION := ACliente.POBLACION; + AObra.CODIGO_POSTAL := ACliente.CODIGO_POSTAL; + AObra.PROVINCIA := ACliente.PROVINCIA; + AObra.TELEFONO := ACliente.TELEFONO_1; + AObra.PERSONA_CONTACTO := ACliente.PERSONA_CONTACTO; + + if not bEnEdicion then + AObra.Post; + finally + HideHourglassCursor; + end; +end; + +constructor TObrasController.Create; +begin + inherited; + AsignarDataModule; +end; + +function TObrasController.CreateEditor(const AName: String; + const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + +function TObrasController.DarListaObras: TStringList; +begin + ShowHourglassCursor; + try + Result := FDataModule.DarListaObras(AppFactuGES.EmpresaActiva.ID); + finally + HideHourglassCursor; + end; +end; + +procedure TObrasController.DescartarCambios(AObra : IBizObra); +begin + if not Assigned(AObra) then + raise Exception.Create ('Obra no asignado'); + + ShowHourglassCursor; + try + if (AObra.State in dsEditModes) then + AObra.Cancel; + + AObra.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TObrasController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + +function TObrasController.Duplicar(AObra: IBizObra): IBizObra; +begin + Result := Self._Vacio; + ShowHourglassCursor; + try + DuplicarRegistros(AObra.DataTable, Result.DataTable, mdrActual); + + // Hay que dejar algunos campos como si fuera una obra nuevo + Result.Edit; + with Result do + begin + ID_EMPRESA := AppFactuGES.EmpresaActiva.ID; + USUARIO := AppFactuGES.UsuarioActivo.UserName; + end; + + Result.Post; + finally + HideHourglassCursor; + end; +end; + +function TObrasController.ValidarObra(AObra: IBizObra): Boolean; +begin + if not Assigned(AObra) then + raise Exception.Create ('Obra no asignada'); + + if (AObra.DataTable.State in dsEditModes) then + AObra.DataTable.Post; + + if Length(AObra.NOMBRE) = 0 then + raise Exception.Create('Debe indicar al menos el nombre de esta obra.'); + + // Asegurarse de valores en campos "automticos" + AObra.Edit; + try + AObra.USUARIO := AppFactuGES.UsuarioActivo.UserName; + + Result := True; + finally + AObra.Post; + end; +end; + +procedure TObrasController.ValidarObjetos; +begin +// +end; + +procedure TObrasController.Ver(AObra: IBizObra); +var + AEditor : IEditorObra; +begin + AEditor := NIL; + + RecuperarObjetos(AObra); + CreateEditor('EditorObra', IEditorObra, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.Obra := AObra; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +procedure TObrasController.VerEjecucion(AObra: IBizObra); +var + AEditor : IEditorEjecucionObra; +begin + AEditor := NIL; + + RecuperarObjetos(AObra); + CreateEditor('EditorEjecucionObra', IEditorEjecucionObra, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.Obra := AObra; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +function TObrasController.VerLista(AObras: IBizObra): IBizObra; +var + AEditor : IEditorListaObras; +begin + AEditor := NIL; + Result := NIL; + + CreateEditor('EditorListaObras', IEditorListaObras, AEditor); + if Assigned(AEditor) then + try + AEditor.Obras := AObras; + if IsPositiveResult(AEditor.ShowModal) then + Result := AEditor.ObraSeleccionado; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +procedure TObrasController.VerTodos(AObras: IBizObra); +var + AEditor : IEditorObras; +begin + AEditor := NIL; + + CreateEditor('EditorObras', IEditorObras, AEditor); + if Assigned(AEditor) then + with AEditor do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Obras := AObras; + ShowEmbedded; + end; +end; + +function TObrasController._Vacio: IBizObra; +begin + Result := Buscar(ID_NULO); +end; + +function TObrasController.Eliminar(const ID: Integer): Boolean; +var + AObra : IBizObra; +begin + AObra := Buscar(ID); + + if not Assigned(AObra) then + raise Exception.Create(Format('No se ha encontrado el Obra con ID = %d', [ID])); + + Result := Eliminar(AObra); + AObra := NIL; +end; + +function TObrasController.Eliminar(AObra: IBizObra): Boolean; +begin + Result := False; + + if not Assigned(AObra) then + raise Exception.Create ('Obra no asignada'); + + ShowHourglassCursor; + try + if (AObra.State in dsEditModes) then + AObra.Cancel; + + AObra.Delete; + AObra.DataTable.ApplyUpdates; + HideHourglassCursor; + Result := True; + except + on E: Exception do + begin + AObra.DataTable.CancelUpdates; + HideHourglassCursor; + if (Pos('FOREIGN KEY', E.Message) > 0) then + MessageBox(0, 'No se puede borrar esta obra porque tiene artculos', 'Atencin', MB_ICONWARNING or MB_OK); + end; + end; +end; + +procedure TObrasController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +begin + inherited; +// +end; + +procedure TObrasController.RecuperarObjetos(AObra: IBizObra); +begin +// +end; + +function TObrasController.Existe(const ID: Integer): Boolean; +var + AObra : IBizObra; +begin + try + AObra := Buscar(ID); + Result := Assigned(AObra) and (AObra.ID = ID); + finally + AObra := NIL; + end; +end; + +procedure TObrasController.FiltrarEmpresa(AObra: IBizObra); +var + Condicion: TDAWhereExpression; +begin + if AObra.DataTable.Active then + AObra.DataTable.Active := False; + + // Filtrar los Obras actuales por empresa + with AObra.DataTable.DynamicWhere do + begin + // (ID_EMPRESA >= ID) + Condicion := NewBinaryExpression(NewField('', fld_ObrasID_EMPRESA), NewConstant(AppFactuGES.EmpresaActiva.ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; +end; + +function TObrasController.Guardar(AObra: IBizObra): Boolean; +begin + Result := False; + + if not Assigned(AObra) then + raise Exception.Create ('Obra no asignada'); + + ValidarObjetos; + + if ValidarObra(AObra) then + begin + ShowHourglassCursor; + try + if (AObra.DataTable.State in dsEditModes) then + AObra.DataTable.Post; + AObra.DataTable.ApplyUpdates; + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TObrasController.LocalizarEjecucionActiva( + AEjecuciones: IBizEjecucionesObra): boolean; +begin + Result := False; + + if not Assigned(AEjecuciones) then + raise Exception.Create ('Ejecuciones no asignada (LocalizarEjecucionActiva)'); + + if AEjecuciones.IsEmpty then + Exit; + + ShowHourglassCursor; + try + with AEjecuciones.DataTable do + begin + DisableControls; + try + First; + while not EOF do + begin + if AEjecuciones.FECHA_FINIsNull then + begin + Result := True; + Break; + end + else + Next; + end; + finally + EnableControls; + end; + end; + finally + HideHourglassCursor; + end; +end; + +{procedure TObrasController.NuevaEjecucion(AObra: IBizObra; + const AFecha: TDateTime); +begin + if not Assigned(AObra) then + raise Exception.Create ('Obra no asignada (NuevaEjecucion)'); + + if AObra.DataTable.Active then + AObra.DataTable.Active := True; + + with AObra.EjecucionEnCurso do + begin + Insert; + FECHA_INICIO := AFecha; + Post; + end; +end;} + +function TObrasController.Nuevo: IBizObra; +var + AObra : IBizObra; +begin + AObra := FDataModule.NewItem; + FiltrarEmpresa(AObra); + AObra.DataTable.Active := True; + AObra.Insert; + Result := AObra; +end; + +procedure TObrasController.Preview(AObra: IBizObra); +//var +// AReportController : IObrasReportController; +begin +{ AReportController := TObrasReportController.Create; + try + AReportController.Preview(AObra.ID); + finally + AReportController := NIL; + end; +} +end; + +procedure TObrasController.Print(AObra: IBizObra); +//var +// AReportController : IObrasReportController; +begin +{ AReportController := TObrasReportController.Create; + try + AReportController.Print(AObra.ID); + finally + AReportController := NIL; + end; +} +end; + +procedure TObrasController.QuitarDireccion(AObra: IBizObra); +var + bEnEdicion : Boolean; +begin + if not Assigned(AObra) then + raise Exception.Create ('Obra no asignada (QuitarDireccion)'); + + if AObra.DataTable.Active then + AObra.DataTable.Active := True; + + bEnEdicion := (AObra.DataTable.State in dsEditModes); + if not bEnEdicion then + AObra.Edit; + + ShowHourglassCursor; + AObra.Edit; + try + AObra.DataTable.FieldByName(fld_ObrasCALLE).Clear; + AObra.DataTable.FieldByName(fld_ObrasPOBLACION).Clear; + AObra.DataTable.FieldByName(fld_ObrasCODIGO_POSTAL).Clear; + AObra.DataTable.FieldByName(fld_ObrasPROVINCIA).Clear; + AObra.DataTable.FieldByName(fld_ObrasTELEFONO).Clear; + AObra.DataTable.FieldByName(fld_ObrasPERSONA_CONTACTO).Clear; + + if not bEnEdicion then + AObra.Post; + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Obras/Data/Obras_data.bdsproj b/Source/Modulos/Obras/Data/Obras_data.bdsproj new file mode 100644 index 0000000..cb345f5 --- /dev/null +++ b/Source/Modulos/Obras/Data/Obras_data.bdsproj @@ -0,0 +1,175 @@ + + + + + + + + + + + + Obras_data.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + diff --git a/Source/Modulos/Obras/Data/Obras_data.dcu b/Source/Modulos/Obras/Data/Obras_data.dcu new file mode 100644 index 0000000..425426b Binary files /dev/null and b/Source/Modulos/Obras/Data/Obras_data.dcu differ diff --git a/Source/Modulos/Obras/Data/Obras_data.dpk b/Source/Modulos/Obras/Data/Obras_data.dpk new file mode 100644 index 0000000..c816aac Binary files /dev/null and b/Source/Modulos/Obras/Data/Obras_data.dpk differ diff --git a/Source/Modulos/Obras/Data/Obras_data.dproj b/Source/Modulos/Obras/Data/Obras_data.dproj new file mode 100644 index 0000000..53e3883 --- /dev/null +++ b/Source/Modulos/Obras/Data/Obras_data.dproj @@ -0,0 +1,538 @@ + + + + {c8646332-a3b6-432f-ba26-058fa36c39d9} + Obras_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Obras_data.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Obras_data.dpk + + + + + MainSource + + + +
DataModuleObras
+
+
+
+ diff --git a/Source/Modulos/Obras/Data/Obras_data.rc b/Source/Modulos/Obras/Data/Obras_data.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Obras/Data/Obras_data.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Obras/Data/Obras_data.res b/Source/Modulos/Obras/Data/Obras_data.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Obras/Data/Obras_data.res differ diff --git a/Source/Modulos/Obras/Data/uDataModuleObras.dcu b/Source/Modulos/Obras/Data/uDataModuleObras.dcu new file mode 100644 index 0000000..d5b0fff Binary files /dev/null and b/Source/Modulos/Obras/Data/uDataModuleObras.dcu differ diff --git a/Source/Modulos/Obras/Data/uDataModuleObras.dfm b/Source/Modulos/Obras/Data/uDataModuleObras.dfm new file mode 100644 index 0000000..b1cbe02 --- /dev/null +++ b/Source/Modulos/Obras/Data/uDataModuleObras.dfm @@ -0,0 +1,488 @@ +inherited DataModuleObras: TDataModuleObras + OnCreate = DAClientDataModuleCreate + Height = 330 + Width = 640 + object RORemoteService: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvObras' + Left = 48 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 84 + end + object rda_Obras: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetDataCall.RemoteService = RORemoteService + UpdateDataCall.RemoteService = RORemoteService + GetScriptsCall.RemoteService = RORemoteService + RemoteService = RORemoteService + DataStreamer = Bin2DataStreamer + Left = 51 + Top = 143 + end + object tbl_Obras: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALMACENES_ID' + Required = True + ServerAutoRefresh = True + DictionaryEntry = 'Obras_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'Obras_ID_EMPRESA' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Nombre' + DictionaryEntry = 'Obras_NOMBRE' + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DisplayLabel = 'Calle' + DictionaryEntry = 'Obras_CALLE' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Provincia' + DictionaryEntry = 'Obras_PROVINCIA' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DisplayLabel = 'Poblaci'#243'n' + DictionaryEntry = 'Obras_POBLACION' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#243'digo postal' + DictionaryEntry = 'Obras_CODIGO_POSTAL' + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + DisplayLabel = 'Tel'#233'fono' + DictionaryEntry = 'Obras_TELEFONO' + end + item + Name = 'MOVIL' + DataType = datString + Size = 25 + DisplayLabel = 'M'#243'vil' + DictionaryEntry = 'Obras_MOVIL' + end + item + Name = 'FAX' + DataType = datString + Size = 25 + DisplayLabel = 'Fax' + DictionaryEntry = 'Obras_FAX' + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + DisplayLabel = 'Persona de contacto' + DictionaryEntry = 'Obras_PERSONA_CONTACTO' + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + DisplayLabel = 'Observaciones' + DictionaryEntry = 'Obras_OBSERVACIONES' + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + DisplayLabel = 'Obras_ID_CLIENTE' + DictionaryEntry = 'Obras_ID_CLIENTE' + end + item + Name = 'NOMBRE_CLIENTE' + DataType = datString + Size = 255 + DisplayLabel = 'Cliente' + ServerAutoRefresh = True + DictionaryEntry = 'Obras_NOMBRE_CLIENTE' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'Obras_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'Obras_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'Obras_USUARIO' + end + item + Name = 'ID_EJECUCION' + DataType = datInteger + ServerAutoRefresh = True + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Obras + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Obras' + IndexDefs = <> + Left = 192 + Top = 104 + end + object ds_Obras: TDADataSource + DataSet = tbl_Obras.Dataset + DataTable = tbl_Obras + Left = 192 + Top = 32 + end + object tbl_ObrasEjecucionesPedidosProveedor: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_OBRAS_EJEC_PEDIDOS_PROV_ID' + Required = True + ServerAutoRefresh = True + DictionaryEntry = 'ObrasEjecucionesPedidosProveedor_ID' + InPrimaryKey = True + end + item + Name = 'ID_EJECUCION' + DataType = datInteger + DictionaryEntry = 'ObrasEjecucionesPedidosProveedor_ID_EJECUCION' + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + DictionaryEntry = 'ObrasEjecucionesPedidosProveedor_ID_PEDIDO' + end + item + Name = 'ID_PRESUPUESTO' + DataType = datInteger + DictionaryEntry = 'ObrasEjecucionesPedidosProveedor_ID_PRESUPUESTO' + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + LogChanges = False + DisplayLabel = 'Situaci'#243'n' + ServerAutoRefresh = True + DictionaryEntry = 'ObrasEjecucionesPedidosProveedor_SITUACION' + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + LogChanges = False + ServerAutoRefresh = True + DictionaryEntry = 'ObrasEjecucionesPedidosProveedor_ID_PROVEEDOR' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + LogChanges = False + DisplayLabel = 'Proveedor' + ServerAutoRefresh = True + DictionaryEntry = 'ObrasEjecucionesPedidosProveedor_NOMBRE' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + LogChanges = False + DisplayLabel = 'Referencia' + ServerAutoRefresh = True + DictionaryEntry = 'ObrasEjecucionesPedidosProveedor_REFERENCIA' + end + item + Name = 'FECHA_PEDIDO' + DataType = datDateTime + LogChanges = False + DisplayLabel = 'Fecha pedido' + ServerAutoRefresh = True + DictionaryEntry = 'ObrasEjecucionesPedidosProveedor_FECHA_PEDIDO' + end + item + Name = 'FECHA_ENTREGA' + DataType = datDateTime + LogChanges = False + DisplayLabel = 'Fecha de entrega' + DictionaryEntry = 'ObrasEjecucionesPedidosProveedor_FECHA_ENTREGA' + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + LogChanges = False + DictionaryEntry = 'ObrasEjecucionesPedidosProveedor_ID_ALMACEN' + end + item + Name = 'NOMBRE_ALMACEN' + DataType = datString + Size = 255 + LogChanges = False + DisplayLabel = 'Almac'#233'n' + DictionaryEntry = 'ObrasEjecucionesPedidosProveedor_NOMBRE_ALMACEN' + end + item + Name = 'ID_OBRA' + DataType = datInteger + LogChanges = False + ServerAutoRefresh = True + DictionaryEntry = 'ObrasEjecucionesPedidosProveedor_ID_OBRA' + end + item + Name = 'NOMBRE_OBRA' + DataType = datString + Size = 255 + LogChanges = False + DisplayLabel = 'Obra para reserva' + ServerAutoRefresh = True + DictionaryEntry = 'ObrasEjecucionesPedidosProveedor_NOMBRE_OBRA' + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + LogChanges = False + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + ServerAutoRefresh = True + DictionaryEntry = 'ObrasEjecucionesPedidosProveedor_BASE_IMPONIBLE' + end> + Params = <> + MasterMappingMode = mmWhere + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Obras + MasterSource = ds_ObrasEjecuciones + MasterFields = 'ID' + DetailFields = 'ID_EJECUCION' + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'ObrasEjecucionesPedidosProveedor' + IndexDefs = <> + Left = 456 + Top = 256 + end + object ds_ObrasEjecucionesPedidosProveedor: TDADataSource + DataSet = tbl_ObrasEjecucionesPedidosProveedor.Dataset + DataTable = tbl_ObrasEjecucionesPedidosProveedor + Left = 456 + Top = 192 + end + object tbl_ObrasEjecucionesPresupuestos: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_OBRAS_EJEC_PRESUPUESTOS_ID' + Required = True + DictionaryEntry = 'ObrasEjecucionesPresupuestos_ID' + InPrimaryKey = True + end + item + Name = 'ID_EJECUCION' + DataType = datInteger + DictionaryEntry = 'ObrasEjecucionesPresupuestos_ID_EJECUCION' + end + item + Name = 'ID_PRESUPUESTO' + DataType = datInteger + DictionaryEntry = 'ObrasEjecucionesPresupuestos_ID_PRESUPUESTO' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + LogChanges = False + DisplayLabel = 'Referencia' + ServerAutoRefresh = True + DictionaryEntry = 'ObrasEjecucionesPresupuestos_REFERENCIA' + end + item + Name = 'FECHA_PRESUPUESTO' + DataType = datDateTime + LogChanges = False + DisplayLabel = 'Fecha presupuesto' + ServerAutoRefresh = True + DictionaryEntry = 'ObrasEjecucionesPresupuestos_FECHA_PRESUPUESTO' + end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + LogChanges = False + DisplayLabel = 'Situaci'#243'n' + ServerAutoRefresh = True + DictionaryEntry = 'ObrasEjecucionesPresupuestos_SITUACION' + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + LogChanges = False + DisplayLabel = 'Base imponible' + ServerAutoRefresh = True + DictionaryEntry = 'ObrasEjecucionesPresupuestos_BASE_IMPONIBLE' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + LogChanges = False + DisplayLabel = 'Nombre' + ServerAutoRefresh = True + DictionaryEntry = 'ObrasEjecucionesPresupuestos_NOMBRE' + end> + Params = <> + MasterMappingMode = mmWhere + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Obras + MasterSource = ds_ObrasEjecuciones + MasterFields = 'ID' + DetailFields = 'ID_EJECUCION' + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'ObrasEjecucionesPresupuestos' + IndexDefs = <> + Left = 192 + Top = 256 + end + object ds_ObrasEjecucionesPresupuestos: TDADataSource + DataSet = tbl_ObrasEjecucionesPresupuestos.Dataset + DataTable = tbl_ObrasEjecucionesPresupuestos + Left = 192 + Top = 192 + end + object tbl_ObrasEjecuciones: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_OBRAS_EJECUCIONES_ID' + Required = True + DisplayLabel = 'ObrasEjecuciones_ID' + DictionaryEntry = 'ObrasEjecuciones_ID' + InPrimaryKey = True + end + item + Name = 'ID_OBRA' + DataType = datInteger + DictionaryEntry = 'ObrasEjecuciones_ID_OBRA' + end + item + Name = 'FECHA_INICIO' + DataType = datDateTime + DisplayLabel = 'Inicio' + DictionaryEntry = 'ObrasEjecuciones_FECHA_INICIO' + end + item + Name = 'FECHA_FIN' + DataType = datDateTime + DisplayLabel = 'Finalizaci'#243'n' + DictionaryEntry = 'ObrasEjecuciones_FECHA_FIN' + end + item + Name = 'ID_SUBCONTRATA' + DataType = datInteger + DictionaryEntry = 'ObrasEjecuciones_ID_SUBCONTRATA' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Subcontrata' + DictionaryEntry = 'ObrasEjecuciones_NOMBRE' + end + item + Name = 'IMPORTE_GASTOS' + DataType = datCurrency + LogChanges = False + DisplayLabel = 'Gastos' + Alignment = taRightJustify + ServerAutoRefresh = True + DictionaryEntry = 'ObrasEjecuciones_IMPORTE_GASTOS' + end + item + Name = 'IMPORTE_INGRESOS' + DataType = datCurrency + LogChanges = False + DisplayLabel = 'Ingresos' + Alignment = taRightJustify + ServerAutoRefresh = True + DictionaryEntry = 'ObrasEjecuciones_IMPORTE_INGRESOS' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + LogChanges = False + DisplayLabel = 'Total' + Alignment = taRightJustify + ServerAutoRefresh = True + DictionaryEntry = 'ObrasEjecuciones_IMPORTE_TOTAL' + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + DisplayLabel = 'Observaciones' + DictionaryEntry = 'ObrasEjecuciones_OBSERVACIONES' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DisplayLabel = 'ObrasEjecuciones_FECHA_ALTA' + DictionaryEntry = 'ObrasEjecuciones_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DisplayLabel = 'ObrasEjecuciones_FECHA_MODIFICACION' + DictionaryEntry = 'ObrasEjecuciones_FECHA_MODIFICACION' + end> + Params = <> + MasterMappingMode = mmWhere + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Obras + MasterSource = ds_Obras + MasterFields = 'ID' + DetailFields = 'ID_OBRA' + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'ObrasEjecuciones' + IndexDefs = <> + Left = 320 + Top = 104 + end + object ds_ObrasEjecuciones: TDADataSource + DataSet = tbl_ObrasEjecuciones.Dataset + DataTable = tbl_ObrasEjecuciones + Left = 320 + Top = 32 + end +end diff --git a/Source/Modulos/Obras/Data/uDataModuleObras.pas b/Source/Modulos/Obras/Data/uDataModuleObras.pas new file mode 100644 index 0000000..3a83bd6 --- /dev/null +++ b/Source/Modulos/Obras/Data/uDataModuleObras.pas @@ -0,0 +1,200 @@ +unit uDataModuleObras; + +interface + +uses + SysUtils, Classes, DB, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, + uIDataModuleObras, uBizObras, uDataModuleBase, uDARemoteDataAdapter, + uDADataStreamer, uDABin2DataStreamer, uDAInterfaces, uDAMemDataTable, + uRODynamicRequest; + + +type + TDataModuleObras = class(TDataModuleBase, IDataModuleObras) + RORemoteService: TRORemoteService; + Bin2DataStreamer: TDABin2DataStreamer; + rda_Obras: TDARemoteDataAdapter; + tbl_Obras: TDAMemDataTable; + ds_Obras: TDADataSource; + tbl_ObrasEjecucionesPedidosProveedor: TDAMemDataTable; + ds_ObrasEjecucionesPedidosProveedor: TDADataSource; + tbl_ObrasEjecucionesPresupuestos: TDAMemDataTable; + ds_ObrasEjecucionesPresupuestos: TDADataSource; + tbl_ObrasEjecuciones: TDAMemDataTable; + ds_ObrasEjecuciones: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + protected + function _GetPresupuestos : IBizEjecucionPresupuestos; + function _GetPedidos : IBizEjecucionPedidosProveedor; + function _GetEjecuciones : IBizEjecucionesObra; + public + function GetEjecucionPresupuestos(const IDEjecucion: Integer) : IBizEjecucionPresupuestos; + function GetItems : IBizObra; + function GetItem(const ID : Integer) : IBizObra; + function NewItem : IBizObra; + function DarListaObras(const IDEmpresa: Integer): TStringList; + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, + schObrasClient_Intf; + +{ TDataModuleObras } + +procedure TDataModuleObras.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleObras.NewItem: IBizObra; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleObras._GetEjecuciones: IBizEjecucionesObra; +var + AEjecuciones : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AEjecuciones := CloneDataTable(tbl_ObrasEjecuciones); + with AEjecuciones do + begin + BusinessRulesID := BIZ_CLIENT_OBRA_EJECUCION; + DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; + end; + + with TBizEjecucionesObra(AEjecuciones.BusinessEventsObj) do + begin + Presupuestos := _GetPresupuestos; + Pedidos := _GetPedidos; + end; + + + Result := (AEjecuciones as IBizEjecucionesObra); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleObras._GetPedidos: IBizEjecucionPedidosProveedor; +var + ATable : TDAMemDataTable; +begin + ShowHourglassCursor; + try + ATable := CloneDataTable(tbl_ObrasEjecucionesPedidosProveedor); + ATable.BusinessRulesID := BIZ_CLIENT_OBRA_EJECUCION_PEDIDO_PROVEEDOR; + Result := ATable as IBizEjecucionPedidosProveedor; + finally + HideHourglassCursor; + end; +end; + +function TDataModuleObras._GetPresupuestos: IBizEjecucionPresupuestos; +var + ATable : TDAMemDataTable; +begin + ShowHourglassCursor; + try + ATable := CloneDataTable(tbl_ObrasEjecucionesPresupuestos); + ATable.BusinessRulesID := BIZ_CLIENT_OBRA_EJECUCION_PRESUPUESTO; + Result := ATable as IBizEjecucionPresupuestos; + finally + HideHourglassCursor; + end; +end; + +function TDataModuleObras.DarListaObras(const IDEmpresa: Integer): TStringList; +var + ABinary : Binary; +begin + ABinary := (RORemoteService as IsrvObras).DarListaObras(IdEmpresa); + Result := TStringList.Create; + Result.LoadFromStream(ABinary); +end; + +function TDataModuleObras.GetEjecucionPresupuestos( + const IDEjecucion: Integer): IBizEjecucionPresupuestos; +var + APresupuestos : TDAMemDataTable; + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + APresupuestos := CloneDataTable(tbl_ObrasEjecucionesPresupuestos); + with APresupuestos do + begin + BusinessRulesID := BIZ_CLIENT_OBRA_EJECUCION_PRESUPUESTO; + + with DynamicWhere do + begin + // (ID_EJECUCION = :ID) + Condicion := NewBinaryExpression(NewField('', fld_ObrasEjecucionesPresupuestosID_EJECUCION), + NewConstant(IDEjecucion, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + end; + Result := (APresupuestos as IBizEjecucionPresupuestos); + finally + HideHourglassCursor; + end; +end; + + +function TDataModuleObras.GetItem(const ID: Integer): IBizObra; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + + with Result.DataTable.DynamicWhere do + begin + // (ID = :ID) + Condicion := NewBinaryExpression(NewField('', fld_ObrasID), NewConstant(ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TDataModuleObras.GetItems: IBizObra; +var + AObra : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AObra := CloneDataTable(tbl_Obras); + AObra.BusinessRulesID := BIZ_CLIENT_OBRA; + + with TBizObra(AObra.BusinessEventsObj) do + Ejecuciones := _GetEjecuciones; + + Result := (AObra as IBizObra); + finally + HideHourglassCursor; + end; +end; + + +end. diff --git a/Source/Modulos/Obras/Model/Data/uIDataModuleObras.dcu b/Source/Modulos/Obras/Model/Data/uIDataModuleObras.dcu new file mode 100644 index 0000000..0a747ba Binary files /dev/null and b/Source/Modulos/Obras/Model/Data/uIDataModuleObras.dcu differ diff --git a/Source/Modulos/Obras/Model/Data/uIDataModuleObras.pas b/Source/Modulos/Obras/Model/Data/uIDataModuleObras.pas new file mode 100644 index 0000000..8aef97d --- /dev/null +++ b/Source/Modulos/Obras/Model/Data/uIDataModuleObras.pas @@ -0,0 +1,20 @@ +unit uIDataModuleObras; + +interface + +uses + Classes, uBizObras; + +type + IDataModuleObras = interface + ['{0FE2B5E6-DE76-4834-B27F-3C754C96B76A}'] +// function GetEjecucionPresupuestos(const IDEjecucion: Integer) : IBizEjecucionPresupuestos; + function GetItems: IBizObra; + function GetItem(const ID : Integer) : IBizObra; + function NewItem : IBizObra; + function DarListaObras(const IDEmpresa: Integer) : TStringList; + end; + +implementation + +end. diff --git a/Source/Modulos/Obras/Model/Obras_model.bdsproj b/Source/Modulos/Obras/Model/Obras_model.bdsproj new file mode 100644 index 0000000..8434b25 --- /dev/null +++ b/Source/Modulos/Obras/Model/Obras_model.bdsproj @@ -0,0 +1,175 @@ + + + + + + + + + + + + Obras_model.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + diff --git a/Source/Modulos/Obras/Model/Obras_model.dcu b/Source/Modulos/Obras/Model/Obras_model.dcu new file mode 100644 index 0000000..0a61949 Binary files /dev/null and b/Source/Modulos/Obras/Model/Obras_model.dcu differ diff --git a/Source/Modulos/Obras/Model/Obras_model.dpk b/Source/Modulos/Obras/Model/Obras_model.dpk new file mode 100644 index 0000000..a0a1bdd --- /dev/null +++ b/Source/Modulos/Obras/Model/Obras_model.dpk @@ -0,0 +1,38 @@ +package Obras_model; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + Base, + ApplicationBase, + Contactos_model; + +contains + uBizObras in 'uBizObras.pas', + uIDataModuleObras in 'Data\uIDataModuleObras.pas', + schObrasClient_Intf in 'schObrasClient_Intf.pas', + schObrasServer_Intf in 'schObrasServer_Intf.pas'; + +end. diff --git a/Source/Modulos/Obras/Model/Obras_model.dproj b/Source/Modulos/Obras/Model/Obras_model.dproj new file mode 100644 index 0000000..d41576d --- /dev/null +++ b/Source/Modulos/Obras/Model/Obras_model.dproj @@ -0,0 +1,546 @@ + + + + {6F3570F5-74AD-4AAA-A639-70DC8F29451F} + Obras_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Obras_model.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + 3 + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Obras_model.dpk + + + CodeGear Control Panel Applet Package + + + + + + MainSource + + + + + + + + + + + diff --git a/Source/Modulos/Obras/Model/Obras_model.rc b/Source/Modulos/Obras/Model/Obras_model.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Obras/Model/Obras_model.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Obras/Model/Obras_model.res b/Source/Modulos/Obras/Model/Obras_model.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Obras/Model/Obras_model.res differ diff --git a/Source/Modulos/Obras/Model/schObrasClient_Intf.dcu b/Source/Modulos/Obras/Model/schObrasClient_Intf.dcu new file mode 100644 index 0000000..396c6b8 Binary files /dev/null and b/Source/Modulos/Obras/Model/schObrasClient_Intf.dcu differ diff --git a/Source/Modulos/Obras/Model/schObrasClient_Intf.pas b/Source/Modulos/Obras/Model/schObrasClient_Intf.pas new file mode 100644 index 0000000..29bc590 --- /dev/null +++ b/Source/Modulos/Obras/Model/schObrasClient_Intf.pas @@ -0,0 +1,2059 @@ +unit schObrasClient_Intf; + +interface + +uses + Classes, DB, schBase_Intf, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_Obras = '{7118A0A9-F2B1-4187-B7F7-CA2E8F81221D}'; + RID_ObrasEjecucionesPresupuestos = '{6FE092E2-89E9-4D38-A6DB-8CECEC3B5563}'; + RID_ObrasEjecucionesPedidosProveedor = '{4E7A0323-7B92-45E5-9CD8-35C8D09F09DD}'; + RID_ObrasEjecuciones = '{2FAE1229-5737-4C12-B79A-15BBB0B6A5CB}'; + + { Data table names } + nme_Obras = 'Obras'; + nme_ObrasEjecucionesPresupuestos = 'ObrasEjecucionesPresupuestos'; + nme_ObrasEjecucionesPedidosProveedor = 'ObrasEjecucionesPedidosProveedor'; + nme_ObrasEjecuciones = 'ObrasEjecuciones'; + + { Obras fields } + fld_ObrasID = 'ID'; + fld_ObrasID_EMPRESA = 'ID_EMPRESA'; + fld_ObrasNOMBRE = 'NOMBRE'; + fld_ObrasCALLE = 'CALLE'; + fld_ObrasPROVINCIA = 'PROVINCIA'; + fld_ObrasPOBLACION = 'POBLACION'; + fld_ObrasCODIGO_POSTAL = 'CODIGO_POSTAL'; + fld_ObrasTELEFONO = 'TELEFONO'; + fld_ObrasMOVIL = 'MOVIL'; + fld_ObrasFAX = 'FAX'; + fld_ObrasPERSONA_CONTACTO = 'PERSONA_CONTACTO'; + fld_ObrasOBSERVACIONES = 'OBSERVACIONES'; + fld_ObrasID_CLIENTE = 'ID_CLIENTE'; + fld_ObrasNOMBRE_CLIENTE = 'NOMBRE_CLIENTE'; + fld_ObrasFECHA_ALTA = 'FECHA_ALTA'; + fld_ObrasFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_ObrasUSUARIO = 'USUARIO'; + fld_ObrasID_EJECUCION = 'ID_EJECUCION'; + + { Obras field indexes } + idx_ObrasID = 0; + idx_ObrasID_EMPRESA = 1; + idx_ObrasNOMBRE = 2; + idx_ObrasCALLE = 3; + idx_ObrasPROVINCIA = 4; + idx_ObrasPOBLACION = 5; + idx_ObrasCODIGO_POSTAL = 6; + idx_ObrasTELEFONO = 7; + idx_ObrasMOVIL = 8; + idx_ObrasFAX = 9; + idx_ObrasPERSONA_CONTACTO = 10; + idx_ObrasOBSERVACIONES = 11; + idx_ObrasID_CLIENTE = 12; + idx_ObrasNOMBRE_CLIENTE = 13; + idx_ObrasFECHA_ALTA = 14; + idx_ObrasFECHA_MODIFICACION = 15; + idx_ObrasUSUARIO = 16; + idx_ObrasID_EJECUCION = 17; + + { ObrasEjecucionesPresupuestos fields } + fld_ObrasEjecucionesPresupuestosID = 'ID'; + fld_ObrasEjecucionesPresupuestosID_EJECUCION = 'ID_EJECUCION'; + fld_ObrasEjecucionesPresupuestosID_PRESUPUESTO = 'ID_PRESUPUESTO'; + fld_ObrasEjecucionesPresupuestosREFERENCIA = 'REFERENCIA'; + fld_ObrasEjecucionesPresupuestosFECHA_PRESUPUESTO = 'FECHA_PRESUPUESTO'; + fld_ObrasEjecucionesPresupuestosSITUACION = 'SITUACION'; + fld_ObrasEjecucionesPresupuestosBASE_IMPONIBLE = 'BASE_IMPONIBLE'; + fld_ObrasEjecucionesPresupuestosNOMBRE = 'NOMBRE'; + + { ObrasEjecucionesPresupuestos field indexes } + idx_ObrasEjecucionesPresupuestosID = 0; + idx_ObrasEjecucionesPresupuestosID_EJECUCION = 1; + idx_ObrasEjecucionesPresupuestosID_PRESUPUESTO = 2; + idx_ObrasEjecucionesPresupuestosREFERENCIA = 3; + idx_ObrasEjecucionesPresupuestosFECHA_PRESUPUESTO = 4; + idx_ObrasEjecucionesPresupuestosSITUACION = 5; + idx_ObrasEjecucionesPresupuestosBASE_IMPONIBLE = 6; + idx_ObrasEjecucionesPresupuestosNOMBRE = 7; + + { ObrasEjecucionesPedidosProveedor fields } + fld_ObrasEjecucionesPedidosProveedorID = 'ID'; + fld_ObrasEjecucionesPedidosProveedorID_EJECUCION = 'ID_EJECUCION'; + fld_ObrasEjecucionesPedidosProveedorID_PEDIDO = 'ID_PEDIDO'; + fld_ObrasEjecucionesPedidosProveedorID_PRESUPUESTO = 'ID_PRESUPUESTO'; + fld_ObrasEjecucionesPedidosProveedorSITUACION = 'SITUACION'; + fld_ObrasEjecucionesPedidosProveedorID_PROVEEDOR = 'ID_PROVEEDOR'; + fld_ObrasEjecucionesPedidosProveedorNOMBRE = 'NOMBRE'; + fld_ObrasEjecucionesPedidosProveedorREFERENCIA = 'REFERENCIA'; + fld_ObrasEjecucionesPedidosProveedorFECHA_PEDIDO = 'FECHA_PEDIDO'; + fld_ObrasEjecucionesPedidosProveedorFECHA_ENTREGA = 'FECHA_ENTREGA'; + fld_ObrasEjecucionesPedidosProveedorID_ALMACEN = 'ID_ALMACEN'; + fld_ObrasEjecucionesPedidosProveedorNOMBRE_ALMACEN = 'NOMBRE_ALMACEN'; + fld_ObrasEjecucionesPedidosProveedorID_OBRA = 'ID_OBRA'; + fld_ObrasEjecucionesPedidosProveedorNOMBRE_OBRA = 'NOMBRE_OBRA'; + fld_ObrasEjecucionesPedidosProveedorBASE_IMPONIBLE = 'BASE_IMPONIBLE'; + + { ObrasEjecucionesPedidosProveedor field indexes } + idx_ObrasEjecucionesPedidosProveedorID = 0; + idx_ObrasEjecucionesPedidosProveedorID_EJECUCION = 1; + idx_ObrasEjecucionesPedidosProveedorID_PEDIDO = 2; + idx_ObrasEjecucionesPedidosProveedorID_PRESUPUESTO = 3; + idx_ObrasEjecucionesPedidosProveedorSITUACION = 4; + idx_ObrasEjecucionesPedidosProveedorID_PROVEEDOR = 5; + idx_ObrasEjecucionesPedidosProveedorNOMBRE = 6; + idx_ObrasEjecucionesPedidosProveedorREFERENCIA = 7; + idx_ObrasEjecucionesPedidosProveedorFECHA_PEDIDO = 8; + idx_ObrasEjecucionesPedidosProveedorFECHA_ENTREGA = 9; + idx_ObrasEjecucionesPedidosProveedorID_ALMACEN = 10; + idx_ObrasEjecucionesPedidosProveedorNOMBRE_ALMACEN = 11; + idx_ObrasEjecucionesPedidosProveedorID_OBRA = 12; + idx_ObrasEjecucionesPedidosProveedorNOMBRE_OBRA = 13; + idx_ObrasEjecucionesPedidosProveedorBASE_IMPONIBLE = 14; + + { ObrasEjecuciones fields } + fld_ObrasEjecucionesID = 'ID'; + fld_ObrasEjecucionesID_OBRA = 'ID_OBRA'; + fld_ObrasEjecucionesFECHA_INICIO = 'FECHA_INICIO'; + fld_ObrasEjecucionesFECHA_FIN = 'FECHA_FIN'; + fld_ObrasEjecucionesID_SUBCONTRATA = 'ID_SUBCONTRATA'; + fld_ObrasEjecucionesNOMBRE = 'NOMBRE'; + fld_ObrasEjecucionesIMPORTE_GASTOS = 'IMPORTE_GASTOS'; + fld_ObrasEjecucionesIMPORTE_INGRESOS = 'IMPORTE_INGRESOS'; + fld_ObrasEjecucionesIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_ObrasEjecucionesOBSERVACIONES = 'OBSERVACIONES'; + fld_ObrasEjecucionesFECHA_ALTA = 'FECHA_ALTA'; + fld_ObrasEjecucionesFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + + { ObrasEjecuciones field indexes } + idx_ObrasEjecucionesID = 0; + idx_ObrasEjecucionesID_OBRA = 1; + idx_ObrasEjecucionesFECHA_INICIO = 2; + idx_ObrasEjecucionesFECHA_FIN = 3; + idx_ObrasEjecucionesID_SUBCONTRATA = 4; + idx_ObrasEjecucionesNOMBRE = 5; + idx_ObrasEjecucionesIMPORTE_GASTOS = 6; + idx_ObrasEjecucionesIMPORTE_INGRESOS = 7; + idx_ObrasEjecucionesIMPORTE_TOTAL = 8; + idx_ObrasEjecucionesOBSERVACIONES = 9; + idx_ObrasEjecucionesFECHA_ALTA = 10; + idx_ObrasEjecucionesFECHA_MODIFICACION = 11; + +type + { IObras } + IObras = interface(IDAStronglyTypedDataTable) + ['{B1CC897D-B52E-4FBA-9CB9-E8C221F8EB19}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_EMPRESAIsNull: Boolean; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetNOMBREIsNull: Boolean; + procedure SetNOMBREIsNull(const aValue: Boolean); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetCALLEIsNull: Boolean; + procedure SetCALLEIsNull(const aValue: Boolean); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetPROVINCIAIsNull: Boolean; + procedure SetPROVINCIAIsNull(const aValue: Boolean); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPOBLACIONIsNull: Boolean; + procedure SetPOBLACIONIsNull(const aValue: Boolean); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetCODIGO_POSTALIsNull: Boolean; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); + function GetTELEFONOValue: String; + procedure SetTELEFONOValue(const aValue: String); + function GetTELEFONOIsNull: Boolean; + procedure SetTELEFONOIsNull(const aValue: Boolean); + function GetMOVILValue: String; + procedure SetMOVILValue(const aValue: String); + function GetMOVILIsNull: Boolean; + procedure SetMOVILIsNull(const aValue: Boolean); + function GetFAXValue: String; + procedure SetFAXValue(const aValue: String); + function GetFAXIsNull: Boolean; + procedure SetFAXIsNull(const aValue: Boolean); + function GetPERSONA_CONTACTOValue: String; + procedure SetPERSONA_CONTACTOValue(const aValue: String); + function GetPERSONA_CONTACTOIsNull: Boolean; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); + function GetOBSERVACIONESValue: IROStrings; + function GetOBSERVACIONESIsNull: Boolean; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); + function GetID_CLIENTEValue: Integer; + procedure SetID_CLIENTEValue(const aValue: Integer); + function GetID_CLIENTEIsNull: Boolean; + procedure SetID_CLIENTEIsNull(const aValue: Boolean); + function GetNOMBRE_CLIENTEValue: String; + procedure SetNOMBRE_CLIENTEValue(const aValue: String); + function GetNOMBRE_CLIENTEIsNull: Boolean; + procedure SetNOMBRE_CLIENTEIsNull(const aValue: Boolean); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_ALTAIsNull: Boolean; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONIsNull: Boolean; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetUSUARIOIsNull: Boolean; + procedure SetUSUARIOIsNull(const aValue: Boolean); + function GetID_EJECUCIONValue: Integer; + procedure SetID_EJECUCIONValue(const aValue: Integer); + function GetID_EJECUCIONIsNull: Boolean; + procedure SetID_EJECUCIONIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property TELEFONOIsNull: Boolean read GetTELEFONOIsNull write SetTELEFONOIsNull; + property MOVIL: String read GetMOVILValue write SetMOVILValue; + property MOVILIsNull: Boolean read GetMOVILIsNull write SetMOVILIsNull; + property FAX: String read GetFAXValue write SetFAXValue; + property FAXIsNull: Boolean read GetFAXIsNull write SetFAXIsNull; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull: Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue; + property OBSERVACIONESIsNull: Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property ID_CLIENTEIsNull: Boolean read GetID_CLIENTEIsNull write SetID_CLIENTEIsNull; + property NOMBRE_CLIENTE: String read GetNOMBRE_CLIENTEValue write SetNOMBRE_CLIENTEValue; + property NOMBRE_CLIENTEIsNull: Boolean read GetNOMBRE_CLIENTEIsNull write SetNOMBRE_CLIENTEIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property ID_EJECUCION: Integer read GetID_EJECUCIONValue write SetID_EJECUCIONValue; + property ID_EJECUCIONIsNull: Boolean read GetID_EJECUCIONIsNull write SetID_EJECUCIONIsNull; + end; + + { TObrasDataTableRules } + TObrasDataTableRules = class(TIntfObjectDADataTableRules, IObras) + private + f_OBSERVACIONES: IROStrings; + procedure OBSERVACIONES_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetCALLEIsNull: Boolean; virtual; + procedure SetCALLEIsNull(const aValue: Boolean); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetPROVINCIAIsNull: Boolean; virtual; + procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPOBLACIONIsNull: Boolean; virtual; + procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetCODIGO_POSTALIsNull: Boolean; virtual; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual; + function GetTELEFONOValue: String; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + function GetTELEFONOIsNull: Boolean; virtual; + procedure SetTELEFONOIsNull(const aValue: Boolean); virtual; + function GetMOVILValue: String; virtual; + procedure SetMOVILValue(const aValue: String); virtual; + function GetMOVILIsNull: Boolean; virtual; + procedure SetMOVILIsNull(const aValue: Boolean); virtual; + function GetFAXValue: String; virtual; + procedure SetFAXValue(const aValue: String); virtual; + function GetFAXIsNull: Boolean; virtual; + procedure SetFAXIsNull(const aValue: Boolean); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + function GetPERSONA_CONTACTOIsNull: Boolean; virtual; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + function GetOBSERVACIONESIsNull: Boolean; virtual; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); virtual; + function GetID_CLIENTEValue: Integer; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + function GetID_CLIENTEIsNull: Boolean; virtual; + procedure SetID_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetNOMBRE_CLIENTEValue: String; virtual; + procedure SetNOMBRE_CLIENTEValue(const aValue: String); virtual; + function GetNOMBRE_CLIENTEIsNull: Boolean; virtual; + procedure SetNOMBRE_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetID_EJECUCIONValue: Integer; virtual; + procedure SetID_EJECUCIONValue(const aValue: Integer); virtual; + function GetID_EJECUCIONIsNull: Boolean; virtual; + procedure SetID_EJECUCIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property TELEFONOIsNull: Boolean read GetTELEFONOIsNull write SetTELEFONOIsNull; + property MOVIL: String read GetMOVILValue write SetMOVILValue; + property MOVILIsNull: Boolean read GetMOVILIsNull write SetMOVILIsNull; + property FAX: String read GetFAXValue write SetFAXValue; + property FAXIsNull: Boolean read GetFAXIsNull write SetFAXIsNull; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull: Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue; + property OBSERVACIONESIsNull: Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property ID_CLIENTEIsNull: Boolean read GetID_CLIENTEIsNull write SetID_CLIENTEIsNull; + property NOMBRE_CLIENTE: String read GetNOMBRE_CLIENTEValue write SetNOMBRE_CLIENTEValue; + property NOMBRE_CLIENTEIsNull: Boolean read GetNOMBRE_CLIENTEIsNull write SetNOMBRE_CLIENTEIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property ID_EJECUCION: Integer read GetID_EJECUCIONValue write SetID_EJECUCIONValue; + property ID_EJECUCIONIsNull: Boolean read GetID_EJECUCIONIsNull write SetID_EJECUCIONIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IObrasEjecucionesPresupuestos } + IObrasEjecucionesPresupuestos = interface(IDAStronglyTypedDataTable) + ['{83FE8907-FB93-4956-A325-5FCB67B22F87}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_EJECUCIONValue: Integer; + procedure SetID_EJECUCIONValue(const aValue: Integer); + function GetID_EJECUCIONIsNull: Boolean; + procedure SetID_EJECUCIONIsNull(const aValue: Boolean); + function GetID_PRESUPUESTOValue: Integer; + procedure SetID_PRESUPUESTOValue(const aValue: Integer); + function GetID_PRESUPUESTOIsNull: Boolean; + procedure SetID_PRESUPUESTOIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetFECHA_PRESUPUESTOValue: DateTime; + procedure SetFECHA_PRESUPUESTOValue(const aValue: DateTime); + function GetFECHA_PRESUPUESTOIsNull: Boolean; + procedure SetFECHA_PRESUPUESTOIsNull(const aValue: Boolean); + function GetSITUACIONValue: String; + procedure SetSITUACIONValue(const aValue: String); + function GetSITUACIONIsNull: Boolean; + procedure SetSITUACIONIsNull(const aValue: Boolean); + function GetBASE_IMPONIBLEValue: Currency; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); + function GetBASE_IMPONIBLEIsNull: Boolean; + procedure SetBASE_IMPONIBLEIsNull(const aValue: Boolean); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetNOMBREIsNull: Boolean; + procedure SetNOMBREIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EJECUCION: Integer read GetID_EJECUCIONValue write SetID_EJECUCIONValue; + property ID_EJECUCIONIsNull: Boolean read GetID_EJECUCIONIsNull write SetID_EJECUCIONIsNull; + property ID_PRESUPUESTO: Integer read GetID_PRESUPUESTOValue write SetID_PRESUPUESTOValue; + property ID_PRESUPUESTOIsNull: Boolean read GetID_PRESUPUESTOIsNull write SetID_PRESUPUESTOIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property FECHA_PRESUPUESTO: DateTime read GetFECHA_PRESUPUESTOValue write SetFECHA_PRESUPUESTOValue; + property FECHA_PRESUPUESTOIsNull: Boolean read GetFECHA_PRESUPUESTOIsNull write SetFECHA_PRESUPUESTOIsNull; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property SITUACIONIsNull: Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property BASE_IMPONIBLEIsNull: Boolean read GetBASE_IMPONIBLEIsNull write SetBASE_IMPONIBLEIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + end; + + { TObrasEjecucionesPresupuestosDataTableRules } + TObrasEjecucionesPresupuestosDataTableRules = class(TIntfObjectDADataTableRules, IObrasEjecucionesPresupuestos) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EJECUCIONValue: Integer; virtual; + procedure SetID_EJECUCIONValue(const aValue: Integer); virtual; + function GetID_EJECUCIONIsNull: Boolean; virtual; + procedure SetID_EJECUCIONIsNull(const aValue: Boolean); virtual; + function GetID_PRESUPUESTOValue: Integer; virtual; + procedure SetID_PRESUPUESTOValue(const aValue: Integer); virtual; + function GetID_PRESUPUESTOIsNull: Boolean; virtual; + procedure SetID_PRESUPUESTOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetFECHA_PRESUPUESTOValue: DateTime; virtual; + procedure SetFECHA_PRESUPUESTOValue(const aValue: DateTime); virtual; + function GetFECHA_PRESUPUESTOIsNull: Boolean; virtual; + procedure SetFECHA_PRESUPUESTOIsNull(const aValue: Boolean); virtual; + function GetSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetSITUACIONIsNull: Boolean; virtual; + procedure SetSITUACIONIsNull(const aValue: Boolean); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + function GetBASE_IMPONIBLEIsNull: Boolean; virtual; + procedure SetBASE_IMPONIBLEIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EJECUCION: Integer read GetID_EJECUCIONValue write SetID_EJECUCIONValue; + property ID_EJECUCIONIsNull: Boolean read GetID_EJECUCIONIsNull write SetID_EJECUCIONIsNull; + property ID_PRESUPUESTO: Integer read GetID_PRESUPUESTOValue write SetID_PRESUPUESTOValue; + property ID_PRESUPUESTOIsNull: Boolean read GetID_PRESUPUESTOIsNull write SetID_PRESUPUESTOIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property FECHA_PRESUPUESTO: DateTime read GetFECHA_PRESUPUESTOValue write SetFECHA_PRESUPUESTOValue; + property FECHA_PRESUPUESTOIsNull: Boolean read GetFECHA_PRESUPUESTOIsNull write SetFECHA_PRESUPUESTOIsNull; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property SITUACIONIsNull: Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property BASE_IMPONIBLEIsNull: Boolean read GetBASE_IMPONIBLEIsNull write SetBASE_IMPONIBLEIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IObrasEjecucionesPedidosProveedor } + IObrasEjecucionesPedidosProveedor = interface(IDAStronglyTypedDataTable) + ['{8DA89E39-2A6C-4F96-9D65-894A6F2BA2A4}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_EJECUCIONValue: Integer; + procedure SetID_EJECUCIONValue(const aValue: Integer); + function GetID_EJECUCIONIsNull: Boolean; + procedure SetID_EJECUCIONIsNull(const aValue: Boolean); + function GetID_PEDIDOValue: Integer; + procedure SetID_PEDIDOValue(const aValue: Integer); + function GetID_PEDIDOIsNull: Boolean; + procedure SetID_PEDIDOIsNull(const aValue: Boolean); + function GetID_PRESUPUESTOValue: Integer; + procedure SetID_PRESUPUESTOValue(const aValue: Integer); + function GetID_PRESUPUESTOIsNull: Boolean; + procedure SetID_PRESUPUESTOIsNull(const aValue: Boolean); + function GetSITUACIONValue: String; + procedure SetSITUACIONValue(const aValue: String); + function GetSITUACIONIsNull: Boolean; + procedure SetSITUACIONIsNull(const aValue: Boolean); + function GetID_PROVEEDORValue: Integer; + procedure SetID_PROVEEDORValue(const aValue: Integer); + function GetID_PROVEEDORIsNull: Boolean; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetNOMBREIsNull: Boolean; + procedure SetNOMBREIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetFECHA_PEDIDOValue: DateTime; + procedure SetFECHA_PEDIDOValue(const aValue: DateTime); + function GetFECHA_PEDIDOIsNull: Boolean; + procedure SetFECHA_PEDIDOIsNull(const aValue: Boolean); + function GetFECHA_ENTREGAValue: DateTime; + procedure SetFECHA_ENTREGAValue(const aValue: DateTime); + function GetFECHA_ENTREGAIsNull: Boolean; + procedure SetFECHA_ENTREGAIsNull(const aValue: Boolean); + function GetID_ALMACENValue: Integer; + procedure SetID_ALMACENValue(const aValue: Integer); + function GetID_ALMACENIsNull: Boolean; + procedure SetID_ALMACENIsNull(const aValue: Boolean); + function GetNOMBRE_ALMACENValue: String; + procedure SetNOMBRE_ALMACENValue(const aValue: String); + function GetNOMBRE_ALMACENIsNull: Boolean; + procedure SetNOMBRE_ALMACENIsNull(const aValue: Boolean); + function GetID_OBRAValue: Integer; + procedure SetID_OBRAValue(const aValue: Integer); + function GetID_OBRAIsNull: Boolean; + procedure SetID_OBRAIsNull(const aValue: Boolean); + function GetNOMBRE_OBRAValue: String; + procedure SetNOMBRE_OBRAValue(const aValue: String); + function GetNOMBRE_OBRAIsNull: Boolean; + procedure SetNOMBRE_OBRAIsNull(const aValue: Boolean); + function GetBASE_IMPONIBLEValue: Currency; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); + function GetBASE_IMPONIBLEIsNull: Boolean; + procedure SetBASE_IMPONIBLEIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EJECUCION: Integer read GetID_EJECUCIONValue write SetID_EJECUCIONValue; + property ID_EJECUCIONIsNull: Boolean read GetID_EJECUCIONIsNull write SetID_EJECUCIONIsNull; + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property ID_PEDIDOIsNull: Boolean read GetID_PEDIDOIsNull write SetID_PEDIDOIsNull; + property ID_PRESUPUESTO: Integer read GetID_PRESUPUESTOValue write SetID_PRESUPUESTOValue; + property ID_PRESUPUESTOIsNull: Boolean read GetID_PRESUPUESTOIsNull write SetID_PRESUPUESTOIsNull; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property SITUACIONIsNull: Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property FECHA_PEDIDO: DateTime read GetFECHA_PEDIDOValue write SetFECHA_PEDIDOValue; + property FECHA_PEDIDOIsNull: Boolean read GetFECHA_PEDIDOIsNull write SetFECHA_PEDIDOIsNull; + property FECHA_ENTREGA: DateTime read GetFECHA_ENTREGAValue write SetFECHA_ENTREGAValue; + property FECHA_ENTREGAIsNull: Boolean read GetFECHA_ENTREGAIsNull write SetFECHA_ENTREGAIsNull; + property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property ID_ALMACENIsNull: Boolean read GetID_ALMACENIsNull write SetID_ALMACENIsNull; + property NOMBRE_ALMACEN: String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property NOMBRE_ALMACENIsNull: Boolean read GetNOMBRE_ALMACENIsNull write SetNOMBRE_ALMACENIsNull; + property ID_OBRA: Integer read GetID_OBRAValue write SetID_OBRAValue; + property ID_OBRAIsNull: Boolean read GetID_OBRAIsNull write SetID_OBRAIsNull; + property NOMBRE_OBRA: String read GetNOMBRE_OBRAValue write SetNOMBRE_OBRAValue; + property NOMBRE_OBRAIsNull: Boolean read GetNOMBRE_OBRAIsNull write SetNOMBRE_OBRAIsNull; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property BASE_IMPONIBLEIsNull: Boolean read GetBASE_IMPONIBLEIsNull write SetBASE_IMPONIBLEIsNull; + end; + + { TObrasEjecucionesPedidosProveedorDataTableRules } + TObrasEjecucionesPedidosProveedorDataTableRules = class(TIntfObjectDADataTableRules, IObrasEjecucionesPedidosProveedor) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EJECUCIONValue: Integer; virtual; + procedure SetID_EJECUCIONValue(const aValue: Integer); virtual; + function GetID_EJECUCIONIsNull: Boolean; virtual; + procedure SetID_EJECUCIONIsNull(const aValue: Boolean); virtual; + function GetID_PEDIDOValue: Integer; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + function GetID_PEDIDOIsNull: Boolean; virtual; + procedure SetID_PEDIDOIsNull(const aValue: Boolean); virtual; + function GetID_PRESUPUESTOValue: Integer; virtual; + procedure SetID_PRESUPUESTOValue(const aValue: Integer); virtual; + function GetID_PRESUPUESTOIsNull: Boolean; virtual; + procedure SetID_PRESUPUESTOIsNull(const aValue: Boolean); virtual; + function GetSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetSITUACIONIsNull: Boolean; virtual; + procedure SetSITUACIONIsNull(const aValue: Boolean); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetID_PROVEEDORIsNull: Boolean; virtual; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetFECHA_PEDIDOValue: DateTime; virtual; + procedure SetFECHA_PEDIDOValue(const aValue: DateTime); virtual; + function GetFECHA_PEDIDOIsNull: Boolean; virtual; + procedure SetFECHA_PEDIDOIsNull(const aValue: Boolean); virtual; + function GetFECHA_ENTREGAValue: DateTime; virtual; + procedure SetFECHA_ENTREGAValue(const aValue: DateTime); virtual; + function GetFECHA_ENTREGAIsNull: Boolean; virtual; + procedure SetFECHA_ENTREGAIsNull(const aValue: Boolean); virtual; + function GetID_ALMACENValue: Integer; virtual; + procedure SetID_ALMACENValue(const aValue: Integer); virtual; + function GetID_ALMACENIsNull: Boolean; virtual; + procedure SetID_ALMACENIsNull(const aValue: Boolean); virtual; + function GetNOMBRE_ALMACENValue: String; virtual; + procedure SetNOMBRE_ALMACENValue(const aValue: String); virtual; + function GetNOMBRE_ALMACENIsNull: Boolean; virtual; + procedure SetNOMBRE_ALMACENIsNull(const aValue: Boolean); virtual; + function GetID_OBRAValue: Integer; virtual; + procedure SetID_OBRAValue(const aValue: Integer); virtual; + function GetID_OBRAIsNull: Boolean; virtual; + procedure SetID_OBRAIsNull(const aValue: Boolean); virtual; + function GetNOMBRE_OBRAValue: String; virtual; + procedure SetNOMBRE_OBRAValue(const aValue: String); virtual; + function GetNOMBRE_OBRAIsNull: Boolean; virtual; + procedure SetNOMBRE_OBRAIsNull(const aValue: Boolean); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + function GetBASE_IMPONIBLEIsNull: Boolean; virtual; + procedure SetBASE_IMPONIBLEIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EJECUCION: Integer read GetID_EJECUCIONValue write SetID_EJECUCIONValue; + property ID_EJECUCIONIsNull: Boolean read GetID_EJECUCIONIsNull write SetID_EJECUCIONIsNull; + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property ID_PEDIDOIsNull: Boolean read GetID_PEDIDOIsNull write SetID_PEDIDOIsNull; + property ID_PRESUPUESTO: Integer read GetID_PRESUPUESTOValue write SetID_PRESUPUESTOValue; + property ID_PRESUPUESTOIsNull: Boolean read GetID_PRESUPUESTOIsNull write SetID_PRESUPUESTOIsNull; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property SITUACIONIsNull: Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property FECHA_PEDIDO: DateTime read GetFECHA_PEDIDOValue write SetFECHA_PEDIDOValue; + property FECHA_PEDIDOIsNull: Boolean read GetFECHA_PEDIDOIsNull write SetFECHA_PEDIDOIsNull; + property FECHA_ENTREGA: DateTime read GetFECHA_ENTREGAValue write SetFECHA_ENTREGAValue; + property FECHA_ENTREGAIsNull: Boolean read GetFECHA_ENTREGAIsNull write SetFECHA_ENTREGAIsNull; + property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property ID_ALMACENIsNull: Boolean read GetID_ALMACENIsNull write SetID_ALMACENIsNull; + property NOMBRE_ALMACEN: String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property NOMBRE_ALMACENIsNull: Boolean read GetNOMBRE_ALMACENIsNull write SetNOMBRE_ALMACENIsNull; + property ID_OBRA: Integer read GetID_OBRAValue write SetID_OBRAValue; + property ID_OBRAIsNull: Boolean read GetID_OBRAIsNull write SetID_OBRAIsNull; + property NOMBRE_OBRA: String read GetNOMBRE_OBRAValue write SetNOMBRE_OBRAValue; + property NOMBRE_OBRAIsNull: Boolean read GetNOMBRE_OBRAIsNull write SetNOMBRE_OBRAIsNull; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property BASE_IMPONIBLEIsNull: Boolean read GetBASE_IMPONIBLEIsNull write SetBASE_IMPONIBLEIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IObrasEjecuciones } + IObrasEjecuciones = interface(IDAStronglyTypedDataTable) + ['{B9C7F494-93F0-46C9-B23E-9E65F615F4A4}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_OBRAValue: Integer; + procedure SetID_OBRAValue(const aValue: Integer); + function GetID_OBRAIsNull: Boolean; + procedure SetID_OBRAIsNull(const aValue: Boolean); + function GetFECHA_INICIOValue: DateTime; + procedure SetFECHA_INICIOValue(const aValue: DateTime); + function GetFECHA_INICIOIsNull: Boolean; + procedure SetFECHA_INICIOIsNull(const aValue: Boolean); + function GetFECHA_FINValue: DateTime; + procedure SetFECHA_FINValue(const aValue: DateTime); + function GetFECHA_FINIsNull: Boolean; + procedure SetFECHA_FINIsNull(const aValue: Boolean); + function GetID_SUBCONTRATAValue: Integer; + procedure SetID_SUBCONTRATAValue(const aValue: Integer); + function GetID_SUBCONTRATAIsNull: Boolean; + procedure SetID_SUBCONTRATAIsNull(const aValue: Boolean); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetNOMBREIsNull: Boolean; + procedure SetNOMBREIsNull(const aValue: Boolean); + function GetIMPORTE_GASTOSValue: Currency; + procedure SetIMPORTE_GASTOSValue(const aValue: Currency); + function GetIMPORTE_GASTOSIsNull: Boolean; + procedure SetIMPORTE_GASTOSIsNull(const aValue: Boolean); + function GetIMPORTE_INGRESOSValue: Currency; + procedure SetIMPORTE_INGRESOSValue(const aValue: Currency); + function GetIMPORTE_INGRESOSIsNull: Boolean; + procedure SetIMPORTE_INGRESOSIsNull(const aValue: Boolean); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetIMPORTE_TOTALIsNull: Boolean; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); + function GetOBSERVACIONESValue: IROStrings; + function GetOBSERVACIONESIsNull: Boolean; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_ALTAIsNull: Boolean; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONIsNull: Boolean; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_OBRA: Integer read GetID_OBRAValue write SetID_OBRAValue; + property ID_OBRAIsNull: Boolean read GetID_OBRAIsNull write SetID_OBRAIsNull; + property FECHA_INICIO: DateTime read GetFECHA_INICIOValue write SetFECHA_INICIOValue; + property FECHA_INICIOIsNull: Boolean read GetFECHA_INICIOIsNull write SetFECHA_INICIOIsNull; + property FECHA_FIN: DateTime read GetFECHA_FINValue write SetFECHA_FINValue; + property FECHA_FINIsNull: Boolean read GetFECHA_FINIsNull write SetFECHA_FINIsNull; + property ID_SUBCONTRATA: Integer read GetID_SUBCONTRATAValue write SetID_SUBCONTRATAValue; + property ID_SUBCONTRATAIsNull: Boolean read GetID_SUBCONTRATAIsNull write SetID_SUBCONTRATAIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property IMPORTE_GASTOS: Currency read GetIMPORTE_GASTOSValue write SetIMPORTE_GASTOSValue; + property IMPORTE_GASTOSIsNull: Boolean read GetIMPORTE_GASTOSIsNull write SetIMPORTE_GASTOSIsNull; + property IMPORTE_INGRESOS: Currency read GetIMPORTE_INGRESOSValue write SetIMPORTE_INGRESOSValue; + property IMPORTE_INGRESOSIsNull: Boolean read GetIMPORTE_INGRESOSIsNull write SetIMPORTE_INGRESOSIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue; + property OBSERVACIONESIsNull: Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + end; + + { TObrasEjecucionesDataTableRules } + TObrasEjecucionesDataTableRules = class(TIntfObjectDADataTableRules, IObrasEjecuciones) + private + f_OBSERVACIONES: IROStrings; + procedure OBSERVACIONES_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_OBRAValue: Integer; virtual; + procedure SetID_OBRAValue(const aValue: Integer); virtual; + function GetID_OBRAIsNull: Boolean; virtual; + procedure SetID_OBRAIsNull(const aValue: Boolean); virtual; + function GetFECHA_INICIOValue: DateTime; virtual; + procedure SetFECHA_INICIOValue(const aValue: DateTime); virtual; + function GetFECHA_INICIOIsNull: Boolean; virtual; + procedure SetFECHA_INICIOIsNull(const aValue: Boolean); virtual; + function GetFECHA_FINValue: DateTime; virtual; + procedure SetFECHA_FINValue(const aValue: DateTime); virtual; + function GetFECHA_FINIsNull: Boolean; virtual; + procedure SetFECHA_FINIsNull(const aValue: Boolean); virtual; + function GetID_SUBCONTRATAValue: Integer; virtual; + procedure SetID_SUBCONTRATAValue(const aValue: Integer); virtual; + function GetID_SUBCONTRATAIsNull: Boolean; virtual; + procedure SetID_SUBCONTRATAIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_GASTOSValue: Currency; virtual; + procedure SetIMPORTE_GASTOSValue(const aValue: Currency); virtual; + function GetIMPORTE_GASTOSIsNull: Boolean; virtual; + procedure SetIMPORTE_GASTOSIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_INGRESOSValue: Currency; virtual; + procedure SetIMPORTE_INGRESOSValue(const aValue: Currency); virtual; + function GetIMPORTE_INGRESOSIsNull: Boolean; virtual; + procedure SetIMPORTE_INGRESOSIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + function GetOBSERVACIONESIsNull: Boolean; virtual; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_OBRA: Integer read GetID_OBRAValue write SetID_OBRAValue; + property ID_OBRAIsNull: Boolean read GetID_OBRAIsNull write SetID_OBRAIsNull; + property FECHA_INICIO: DateTime read GetFECHA_INICIOValue write SetFECHA_INICIOValue; + property FECHA_INICIOIsNull: Boolean read GetFECHA_INICIOIsNull write SetFECHA_INICIOIsNull; + property FECHA_FIN: DateTime read GetFECHA_FINValue write SetFECHA_FINValue; + property FECHA_FINIsNull: Boolean read GetFECHA_FINIsNull write SetFECHA_FINIsNull; + property ID_SUBCONTRATA: Integer read GetID_SUBCONTRATAValue write SetID_SUBCONTRATAValue; + property ID_SUBCONTRATAIsNull: Boolean read GetID_SUBCONTRATAIsNull write SetID_SUBCONTRATAIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property IMPORTE_GASTOS: Currency read GetIMPORTE_GASTOSValue write SetIMPORTE_GASTOSValue; + property IMPORTE_GASTOSIsNull: Boolean read GetIMPORTE_GASTOSIsNull write SetIMPORTE_GASTOSIsNull; + property IMPORTE_INGRESOS: Currency read GetIMPORTE_INGRESOSValue write SetIMPORTE_INGRESOSValue; + property IMPORTE_INGRESOSIsNull: Boolean read GetIMPORTE_INGRESOSIsNull write SetIMPORTE_INGRESOSIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue; + property OBSERVACIONESIsNull: Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants, uROBinaryHelpers; + +{ TObrasDataTableRules } +constructor TObrasDataTableRules.Create(aDataTable: TDADataTable); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := OBSERVACIONES_OnChange; + f_OBSERVACIONES := NewROStrings(StrList,True); +end; + +destructor TObrasDataTableRules.Destroy; +begin + inherited; +end; + +procedure TObrasDataTableRules.OBSERVACIONES_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_ObrasOBSERVACIONES].AsVariant := TStringList(Sender).Text; +end; + +function TObrasDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_ObrasID].AsInteger; +end; + +procedure TObrasDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_ObrasID].AsInteger := aValue; +end; + +function TObrasDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasID].IsNull; +end; + +procedure TObrasDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasID].AsVariant := Null; +end; + +function TObrasDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_ObrasID_EMPRESA].AsInteger; +end; + +procedure TObrasDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_ObrasID_EMPRESA].AsInteger := aValue; +end; + +function TObrasDataTableRules.GetID_EMPRESAIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasID_EMPRESA].IsNull; +end; + +procedure TObrasDataTableRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasID_EMPRESA].AsVariant := Null; +end; + +function TObrasDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_ObrasNOMBRE].AsString; +end; + +procedure TObrasDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_ObrasNOMBRE].AsString := aValue; +end; + +function TObrasDataTableRules.GetNOMBREIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasNOMBRE].IsNull; +end; + +procedure TObrasDataTableRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasNOMBRE].AsVariant := Null; +end; + +function TObrasDataTableRules.GetCALLEValue: String; +begin + result := DataTable.Fields[idx_ObrasCALLE].AsString; +end; + +procedure TObrasDataTableRules.SetCALLEValue(const aValue: String); +begin + DataTable.Fields[idx_ObrasCALLE].AsString := aValue; +end; + +function TObrasDataTableRules.GetCALLEIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasCALLE].IsNull; +end; + +procedure TObrasDataTableRules.SetCALLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasCALLE].AsVariant := Null; +end; + +function TObrasDataTableRules.GetPROVINCIAValue: String; +begin + result := DataTable.Fields[idx_ObrasPROVINCIA].AsString; +end; + +procedure TObrasDataTableRules.SetPROVINCIAValue(const aValue: String); +begin + DataTable.Fields[idx_ObrasPROVINCIA].AsString := aValue; +end; + +function TObrasDataTableRules.GetPROVINCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasPROVINCIA].IsNull; +end; + +procedure TObrasDataTableRules.SetPROVINCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasPROVINCIA].AsVariant := Null; +end; + +function TObrasDataTableRules.GetPOBLACIONValue: String; +begin + result := DataTable.Fields[idx_ObrasPOBLACION].AsString; +end; + +procedure TObrasDataTableRules.SetPOBLACIONValue(const aValue: String); +begin + DataTable.Fields[idx_ObrasPOBLACION].AsString := aValue; +end; + +function TObrasDataTableRules.GetPOBLACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasPOBLACION].IsNull; +end; + +procedure TObrasDataTableRules.SetPOBLACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasPOBLACION].AsVariant := Null; +end; + +function TObrasDataTableRules.GetCODIGO_POSTALValue: String; +begin + result := DataTable.Fields[idx_ObrasCODIGO_POSTAL].AsString; +end; + +procedure TObrasDataTableRules.SetCODIGO_POSTALValue(const aValue: String); +begin + DataTable.Fields[idx_ObrasCODIGO_POSTAL].AsString := aValue; +end; + +function TObrasDataTableRules.GetCODIGO_POSTALIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasCODIGO_POSTAL].IsNull; +end; + +procedure TObrasDataTableRules.SetCODIGO_POSTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasCODIGO_POSTAL].AsVariant := Null; +end; + +function TObrasDataTableRules.GetTELEFONOValue: String; +begin + result := DataTable.Fields[idx_ObrasTELEFONO].AsString; +end; + +procedure TObrasDataTableRules.SetTELEFONOValue(const aValue: String); +begin + DataTable.Fields[idx_ObrasTELEFONO].AsString := aValue; +end; + +function TObrasDataTableRules.GetTELEFONOIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasTELEFONO].IsNull; +end; + +procedure TObrasDataTableRules.SetTELEFONOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasTELEFONO].AsVariant := Null; +end; + +function TObrasDataTableRules.GetMOVILValue: String; +begin + result := DataTable.Fields[idx_ObrasMOVIL].AsString; +end; + +procedure TObrasDataTableRules.SetMOVILValue(const aValue: String); +begin + DataTable.Fields[idx_ObrasMOVIL].AsString := aValue; +end; + +function TObrasDataTableRules.GetMOVILIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasMOVIL].IsNull; +end; + +procedure TObrasDataTableRules.SetMOVILIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasMOVIL].AsVariant := Null; +end; + +function TObrasDataTableRules.GetFAXValue: String; +begin + result := DataTable.Fields[idx_ObrasFAX].AsString; +end; + +procedure TObrasDataTableRules.SetFAXValue(const aValue: String); +begin + DataTable.Fields[idx_ObrasFAX].AsString := aValue; +end; + +function TObrasDataTableRules.GetFAXIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasFAX].IsNull; +end; + +procedure TObrasDataTableRules.SetFAXIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasFAX].AsVariant := Null; +end; + +function TObrasDataTableRules.GetPERSONA_CONTACTOValue: String; +begin + result := DataTable.Fields[idx_ObrasPERSONA_CONTACTO].AsString; +end; + +procedure TObrasDataTableRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + DataTable.Fields[idx_ObrasPERSONA_CONTACTO].AsString := aValue; +end; + +function TObrasDataTableRules.GetPERSONA_CONTACTOIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasPERSONA_CONTACTO].IsNull; +end; + +procedure TObrasDataTableRules.SetPERSONA_CONTACTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasPERSONA_CONTACTO].AsVariant := Null; +end; + +function TObrasDataTableRules.GetOBSERVACIONESValue: IROStrings; +begin + result := f_OBSERVACIONES; + result.Text := DataTable.Fields[idx_ObrasOBSERVACIONES].AsString; +end; + +function TObrasDataTableRules.GetOBSERVACIONESIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasOBSERVACIONES].IsNull; +end; + +procedure TObrasDataTableRules.SetOBSERVACIONESIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasOBSERVACIONES].AsVariant := Null; +end; + +function TObrasDataTableRules.GetID_CLIENTEValue: Integer; +begin + result := DataTable.Fields[idx_ObrasID_CLIENTE].AsInteger; +end; + +procedure TObrasDataTableRules.SetID_CLIENTEValue(const aValue: Integer); +begin + DataTable.Fields[idx_ObrasID_CLIENTE].AsInteger := aValue; +end; + +function TObrasDataTableRules.GetID_CLIENTEIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasID_CLIENTE].IsNull; +end; + +procedure TObrasDataTableRules.SetID_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasID_CLIENTE].AsVariant := Null; +end; + +function TObrasDataTableRules.GetNOMBRE_CLIENTEValue: String; +begin + result := DataTable.Fields[idx_ObrasNOMBRE_CLIENTE].AsString; +end; + +procedure TObrasDataTableRules.SetNOMBRE_CLIENTEValue(const aValue: String); +begin + DataTable.Fields[idx_ObrasNOMBRE_CLIENTE].AsString := aValue; +end; + +function TObrasDataTableRules.GetNOMBRE_CLIENTEIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasNOMBRE_CLIENTE].IsNull; +end; + +procedure TObrasDataTableRules.SetNOMBRE_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasNOMBRE_CLIENTE].AsVariant := Null; +end; + +function TObrasDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_ObrasFECHA_ALTA].AsDateTime; +end; + +procedure TObrasDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_ObrasFECHA_ALTA].AsDateTime := aValue; +end; + +function TObrasDataTableRules.GetFECHA_ALTAIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasFECHA_ALTA].IsNull; +end; + +procedure TObrasDataTableRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasFECHA_ALTA].AsVariant := Null; +end; + +function TObrasDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_ObrasFECHA_MODIFICACION].AsDateTime; +end; + +procedure TObrasDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_ObrasFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TObrasDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasFECHA_MODIFICACION].IsNull; +end; + +procedure TObrasDataTableRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasFECHA_MODIFICACION].AsVariant := Null; +end; + +function TObrasDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_ObrasUSUARIO].AsString; +end; + +procedure TObrasDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_ObrasUSUARIO].AsString := aValue; +end; + +function TObrasDataTableRules.GetUSUARIOIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasUSUARIO].IsNull; +end; + +procedure TObrasDataTableRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasUSUARIO].AsVariant := Null; +end; + +function TObrasDataTableRules.GetID_EJECUCIONValue: Integer; +begin + result := DataTable.Fields[idx_ObrasID_EJECUCION].AsInteger; +end; + +procedure TObrasDataTableRules.SetID_EJECUCIONValue(const aValue: Integer); +begin + DataTable.Fields[idx_ObrasID_EJECUCION].AsInteger := aValue; +end; + +function TObrasDataTableRules.GetID_EJECUCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasID_EJECUCION].IsNull; +end; + +procedure TObrasDataTableRules.SetID_EJECUCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasID_EJECUCION].AsVariant := Null; +end; + + +{ TObrasEjecucionesPresupuestosDataTableRules } +constructor TObrasEjecucionesPresupuestosDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TObrasEjecucionesPresupuestosDataTableRules.Destroy; +begin + inherited; +end; + +function TObrasEjecucionesPresupuestosDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPresupuestosID].AsInteger; +end; + +procedure TObrasEjecucionesPresupuestosDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_ObrasEjecucionesPresupuestosID].AsInteger := aValue; +end; + +function TObrasEjecucionesPresupuestosDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPresupuestosID].IsNull; +end; + +procedure TObrasEjecucionesPresupuestosDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasEjecucionesPresupuestosID].AsVariant := Null; +end; + +function TObrasEjecucionesPresupuestosDataTableRules.GetID_EJECUCIONValue: Integer; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPresupuestosID_EJECUCION].AsInteger; +end; + +procedure TObrasEjecucionesPresupuestosDataTableRules.SetID_EJECUCIONValue(const aValue: Integer); +begin + DataTable.Fields[idx_ObrasEjecucionesPresupuestosID_EJECUCION].AsInteger := aValue; +end; + +function TObrasEjecucionesPresupuestosDataTableRules.GetID_EJECUCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPresupuestosID_EJECUCION].IsNull; +end; + +procedure TObrasEjecucionesPresupuestosDataTableRules.SetID_EJECUCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasEjecucionesPresupuestosID_EJECUCION].AsVariant := Null; +end; + +function TObrasEjecucionesPresupuestosDataTableRules.GetID_PRESUPUESTOValue: Integer; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPresupuestosID_PRESUPUESTO].AsInteger; +end; + +procedure TObrasEjecucionesPresupuestosDataTableRules.SetID_PRESUPUESTOValue(const aValue: Integer); +begin + DataTable.Fields[idx_ObrasEjecucionesPresupuestosID_PRESUPUESTO].AsInteger := aValue; +end; + +function TObrasEjecucionesPresupuestosDataTableRules.GetID_PRESUPUESTOIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPresupuestosID_PRESUPUESTO].IsNull; +end; + +procedure TObrasEjecucionesPresupuestosDataTableRules.SetID_PRESUPUESTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasEjecucionesPresupuestosID_PRESUPUESTO].AsVariant := Null; +end; + +function TObrasEjecucionesPresupuestosDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPresupuestosREFERENCIA].AsString; +end; + +procedure TObrasEjecucionesPresupuestosDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_ObrasEjecucionesPresupuestosREFERENCIA].AsString := aValue; +end; + +function TObrasEjecucionesPresupuestosDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPresupuestosREFERENCIA].IsNull; +end; + +procedure TObrasEjecucionesPresupuestosDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasEjecucionesPresupuestosREFERENCIA].AsVariant := Null; +end; + +function TObrasEjecucionesPresupuestosDataTableRules.GetFECHA_PRESUPUESTOValue: DateTime; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPresupuestosFECHA_PRESUPUESTO].AsDateTime; +end; + +procedure TObrasEjecucionesPresupuestosDataTableRules.SetFECHA_PRESUPUESTOValue(const aValue: DateTime); +begin + DataTable.Fields[idx_ObrasEjecucionesPresupuestosFECHA_PRESUPUESTO].AsDateTime := aValue; +end; + +function TObrasEjecucionesPresupuestosDataTableRules.GetFECHA_PRESUPUESTOIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPresupuestosFECHA_PRESUPUESTO].IsNull; +end; + +procedure TObrasEjecucionesPresupuestosDataTableRules.SetFECHA_PRESUPUESTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasEjecucionesPresupuestosFECHA_PRESUPUESTO].AsVariant := Null; +end; + +function TObrasEjecucionesPresupuestosDataTableRules.GetSITUACIONValue: String; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPresupuestosSITUACION].AsString; +end; + +procedure TObrasEjecucionesPresupuestosDataTableRules.SetSITUACIONValue(const aValue: String); +begin + DataTable.Fields[idx_ObrasEjecucionesPresupuestosSITUACION].AsString := aValue; +end; + +function TObrasEjecucionesPresupuestosDataTableRules.GetSITUACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPresupuestosSITUACION].IsNull; +end; + +procedure TObrasEjecucionesPresupuestosDataTableRules.SetSITUACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasEjecucionesPresupuestosSITUACION].AsVariant := Null; +end; + +function TObrasEjecucionesPresupuestosDataTableRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPresupuestosBASE_IMPONIBLE].AsCurrency; +end; + +procedure TObrasEjecucionesPresupuestosDataTableRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + DataTable.Fields[idx_ObrasEjecucionesPresupuestosBASE_IMPONIBLE].AsCurrency := aValue; +end; + +function TObrasEjecucionesPresupuestosDataTableRules.GetBASE_IMPONIBLEIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPresupuestosBASE_IMPONIBLE].IsNull; +end; + +procedure TObrasEjecucionesPresupuestosDataTableRules.SetBASE_IMPONIBLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasEjecucionesPresupuestosBASE_IMPONIBLE].AsVariant := Null; +end; + +function TObrasEjecucionesPresupuestosDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPresupuestosNOMBRE].AsString; +end; + +procedure TObrasEjecucionesPresupuestosDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_ObrasEjecucionesPresupuestosNOMBRE].AsString := aValue; +end; + +function TObrasEjecucionesPresupuestosDataTableRules.GetNOMBREIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPresupuestosNOMBRE].IsNull; +end; + +procedure TObrasEjecucionesPresupuestosDataTableRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasEjecucionesPresupuestosNOMBRE].AsVariant := Null; +end; + + +{ TObrasEjecucionesPedidosProveedorDataTableRules } +constructor TObrasEjecucionesPedidosProveedorDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TObrasEjecucionesPedidosProveedorDataTableRules.Destroy; +begin + inherited; +end; + +function TObrasEjecucionesPedidosProveedorDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID].AsInteger; +end; + +procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID].AsInteger := aValue; +end; + +function TObrasEjecucionesPedidosProveedorDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID].IsNull; +end; + +procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID].AsVariant := Null; +end; + +function TObrasEjecucionesPedidosProveedorDataTableRules.GetID_EJECUCIONValue: Integer; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_EJECUCION].AsInteger; +end; + +procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetID_EJECUCIONValue(const aValue: Integer); +begin + DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_EJECUCION].AsInteger := aValue; +end; + +function TObrasEjecucionesPedidosProveedorDataTableRules.GetID_EJECUCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_EJECUCION].IsNull; +end; + +procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetID_EJECUCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_EJECUCION].AsVariant := Null; +end; + +function TObrasEjecucionesPedidosProveedorDataTableRules.GetID_PEDIDOValue: Integer; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_PEDIDO].AsInteger; +end; + +procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetID_PEDIDOValue(const aValue: Integer); +begin + DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_PEDIDO].AsInteger := aValue; +end; + +function TObrasEjecucionesPedidosProveedorDataTableRules.GetID_PEDIDOIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_PEDIDO].IsNull; +end; + +procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetID_PEDIDOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_PEDIDO].AsVariant := Null; +end; + +function TObrasEjecucionesPedidosProveedorDataTableRules.GetID_PRESUPUESTOValue: Integer; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_PRESUPUESTO].AsInteger; +end; + +procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetID_PRESUPUESTOValue(const aValue: Integer); +begin + DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_PRESUPUESTO].AsInteger := aValue; +end; + +function TObrasEjecucionesPedidosProveedorDataTableRules.GetID_PRESUPUESTOIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_PRESUPUESTO].IsNull; +end; + +procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetID_PRESUPUESTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_PRESUPUESTO].AsVariant := Null; +end; + +function TObrasEjecucionesPedidosProveedorDataTableRules.GetSITUACIONValue: String; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorSITUACION].AsString; +end; + +procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetSITUACIONValue(const aValue: String); +begin + DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorSITUACION].AsString := aValue; +end; + +function TObrasEjecucionesPedidosProveedorDataTableRules.GetSITUACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorSITUACION].IsNull; +end; + +procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetSITUACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorSITUACION].AsVariant := Null; +end; + +function TObrasEjecucionesPedidosProveedorDataTableRules.GetID_PROVEEDORValue: Integer; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_PROVEEDOR].AsInteger; +end; + +procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_PROVEEDOR].AsInteger := aValue; +end; + +function TObrasEjecucionesPedidosProveedorDataTableRules.GetID_PROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_PROVEEDOR].IsNull; +end; + +procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetID_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_PROVEEDOR].AsVariant := Null; +end; + +function TObrasEjecucionesPedidosProveedorDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorNOMBRE].AsString; +end; + +procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorNOMBRE].AsString := aValue; +end; + +function TObrasEjecucionesPedidosProveedorDataTableRules.GetNOMBREIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorNOMBRE].IsNull; +end; + +procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorNOMBRE].AsVariant := Null; +end; + +function TObrasEjecucionesPedidosProveedorDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorREFERENCIA].AsString; +end; + +procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorREFERENCIA].AsString := aValue; +end; + +function TObrasEjecucionesPedidosProveedorDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorREFERENCIA].IsNull; +end; + +procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorREFERENCIA].AsVariant := Null; +end; + +function TObrasEjecucionesPedidosProveedorDataTableRules.GetFECHA_PEDIDOValue: DateTime; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorFECHA_PEDIDO].AsDateTime; +end; + +procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetFECHA_PEDIDOValue(const aValue: DateTime); +begin + DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorFECHA_PEDIDO].AsDateTime := aValue; +end; + +function TObrasEjecucionesPedidosProveedorDataTableRules.GetFECHA_PEDIDOIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorFECHA_PEDIDO].IsNull; +end; + +procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetFECHA_PEDIDOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorFECHA_PEDIDO].AsVariant := Null; +end; + +function TObrasEjecucionesPedidosProveedorDataTableRules.GetFECHA_ENTREGAValue: DateTime; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorFECHA_ENTREGA].AsDateTime; +end; + +procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetFECHA_ENTREGAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorFECHA_ENTREGA].AsDateTime := aValue; +end; + +function TObrasEjecucionesPedidosProveedorDataTableRules.GetFECHA_ENTREGAIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorFECHA_ENTREGA].IsNull; +end; + +procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetFECHA_ENTREGAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorFECHA_ENTREGA].AsVariant := Null; +end; + +function TObrasEjecucionesPedidosProveedorDataTableRules.GetID_ALMACENValue: Integer; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_ALMACEN].AsInteger; +end; + +procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetID_ALMACENValue(const aValue: Integer); +begin + DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_ALMACEN].AsInteger := aValue; +end; + +function TObrasEjecucionesPedidosProveedorDataTableRules.GetID_ALMACENIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_ALMACEN].IsNull; +end; + +procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetID_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_ALMACEN].AsVariant := Null; +end; + +function TObrasEjecucionesPedidosProveedorDataTableRules.GetNOMBRE_ALMACENValue: String; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorNOMBRE_ALMACEN].AsString; +end; + +procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetNOMBRE_ALMACENValue(const aValue: String); +begin + DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorNOMBRE_ALMACEN].AsString := aValue; +end; + +function TObrasEjecucionesPedidosProveedorDataTableRules.GetNOMBRE_ALMACENIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorNOMBRE_ALMACEN].IsNull; +end; + +procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetNOMBRE_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorNOMBRE_ALMACEN].AsVariant := Null; +end; + +function TObrasEjecucionesPedidosProveedorDataTableRules.GetID_OBRAValue: Integer; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_OBRA].AsInteger; +end; + +procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetID_OBRAValue(const aValue: Integer); +begin + DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_OBRA].AsInteger := aValue; +end; + +function TObrasEjecucionesPedidosProveedorDataTableRules.GetID_OBRAIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_OBRA].IsNull; +end; + +procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetID_OBRAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_OBRA].AsVariant := Null; +end; + +function TObrasEjecucionesPedidosProveedorDataTableRules.GetNOMBRE_OBRAValue: String; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorNOMBRE_OBRA].AsString; +end; + +procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetNOMBRE_OBRAValue(const aValue: String); +begin + DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorNOMBRE_OBRA].AsString := aValue; +end; + +function TObrasEjecucionesPedidosProveedorDataTableRules.GetNOMBRE_OBRAIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorNOMBRE_OBRA].IsNull; +end; + +procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetNOMBRE_OBRAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorNOMBRE_OBRA].AsVariant := Null; +end; + +function TObrasEjecucionesPedidosProveedorDataTableRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorBASE_IMPONIBLE].AsCurrency; +end; + +procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorBASE_IMPONIBLE].AsCurrency := aValue; +end; + +function TObrasEjecucionesPedidosProveedorDataTableRules.GetBASE_IMPONIBLEIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorBASE_IMPONIBLE].IsNull; +end; + +procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetBASE_IMPONIBLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorBASE_IMPONIBLE].AsVariant := Null; +end; + + +{ TObrasEjecucionesDataTableRules } +constructor TObrasEjecucionesDataTableRules.Create(aDataTable: TDADataTable); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := OBSERVACIONES_OnChange; + f_OBSERVACIONES := NewROStrings(StrList,True); +end; + +destructor TObrasEjecucionesDataTableRules.Destroy; +begin + inherited; +end; + +procedure TObrasEjecucionesDataTableRules.OBSERVACIONES_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_ObrasEjecucionesOBSERVACIONES].AsVariant := TStringList(Sender).Text; +end; + +function TObrasEjecucionesDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_ObrasEjecucionesID].AsInteger; +end; + +procedure TObrasEjecucionesDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_ObrasEjecucionesID].AsInteger := aValue; +end; + +function TObrasEjecucionesDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasEjecucionesID].IsNull; +end; + +procedure TObrasEjecucionesDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasEjecucionesID].AsVariant := Null; +end; + +function TObrasEjecucionesDataTableRules.GetID_OBRAValue: Integer; +begin + result := DataTable.Fields[idx_ObrasEjecucionesID_OBRA].AsInteger; +end; + +procedure TObrasEjecucionesDataTableRules.SetID_OBRAValue(const aValue: Integer); +begin + DataTable.Fields[idx_ObrasEjecucionesID_OBRA].AsInteger := aValue; +end; + +function TObrasEjecucionesDataTableRules.GetID_OBRAIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasEjecucionesID_OBRA].IsNull; +end; + +procedure TObrasEjecucionesDataTableRules.SetID_OBRAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasEjecucionesID_OBRA].AsVariant := Null; +end; + +function TObrasEjecucionesDataTableRules.GetFECHA_INICIOValue: DateTime; +begin + result := DataTable.Fields[idx_ObrasEjecucionesFECHA_INICIO].AsDateTime; +end; + +procedure TObrasEjecucionesDataTableRules.SetFECHA_INICIOValue(const aValue: DateTime); +begin + DataTable.Fields[idx_ObrasEjecucionesFECHA_INICIO].AsDateTime := aValue; +end; + +function TObrasEjecucionesDataTableRules.GetFECHA_INICIOIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasEjecucionesFECHA_INICIO].IsNull; +end; + +procedure TObrasEjecucionesDataTableRules.SetFECHA_INICIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasEjecucionesFECHA_INICIO].AsVariant := Null; +end; + +function TObrasEjecucionesDataTableRules.GetFECHA_FINValue: DateTime; +begin + result := DataTable.Fields[idx_ObrasEjecucionesFECHA_FIN].AsDateTime; +end; + +procedure TObrasEjecucionesDataTableRules.SetFECHA_FINValue(const aValue: DateTime); +begin + DataTable.Fields[idx_ObrasEjecucionesFECHA_FIN].AsDateTime := aValue; +end; + +function TObrasEjecucionesDataTableRules.GetFECHA_FINIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasEjecucionesFECHA_FIN].IsNull; +end; + +procedure TObrasEjecucionesDataTableRules.SetFECHA_FINIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasEjecucionesFECHA_FIN].AsVariant := Null; +end; + +function TObrasEjecucionesDataTableRules.GetID_SUBCONTRATAValue: Integer; +begin + result := DataTable.Fields[idx_ObrasEjecucionesID_SUBCONTRATA].AsInteger; +end; + +procedure TObrasEjecucionesDataTableRules.SetID_SUBCONTRATAValue(const aValue: Integer); +begin + DataTable.Fields[idx_ObrasEjecucionesID_SUBCONTRATA].AsInteger := aValue; +end; + +function TObrasEjecucionesDataTableRules.GetID_SUBCONTRATAIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasEjecucionesID_SUBCONTRATA].IsNull; +end; + +procedure TObrasEjecucionesDataTableRules.SetID_SUBCONTRATAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasEjecucionesID_SUBCONTRATA].AsVariant := Null; +end; + +function TObrasEjecucionesDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_ObrasEjecucionesNOMBRE].AsString; +end; + +procedure TObrasEjecucionesDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_ObrasEjecucionesNOMBRE].AsString := aValue; +end; + +function TObrasEjecucionesDataTableRules.GetNOMBREIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasEjecucionesNOMBRE].IsNull; +end; + +procedure TObrasEjecucionesDataTableRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasEjecucionesNOMBRE].AsVariant := Null; +end; + +function TObrasEjecucionesDataTableRules.GetIMPORTE_GASTOSValue: Currency; +begin + result := DataTable.Fields[idx_ObrasEjecucionesIMPORTE_GASTOS].AsCurrency; +end; + +procedure TObrasEjecucionesDataTableRules.SetIMPORTE_GASTOSValue(const aValue: Currency); +begin + DataTable.Fields[idx_ObrasEjecucionesIMPORTE_GASTOS].AsCurrency := aValue; +end; + +function TObrasEjecucionesDataTableRules.GetIMPORTE_GASTOSIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasEjecucionesIMPORTE_GASTOS].IsNull; +end; + +procedure TObrasEjecucionesDataTableRules.SetIMPORTE_GASTOSIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasEjecucionesIMPORTE_GASTOS].AsVariant := Null; +end; + +function TObrasEjecucionesDataTableRules.GetIMPORTE_INGRESOSValue: Currency; +begin + result := DataTable.Fields[idx_ObrasEjecucionesIMPORTE_INGRESOS].AsCurrency; +end; + +procedure TObrasEjecucionesDataTableRules.SetIMPORTE_INGRESOSValue(const aValue: Currency); +begin + DataTable.Fields[idx_ObrasEjecucionesIMPORTE_INGRESOS].AsCurrency := aValue; +end; + +function TObrasEjecucionesDataTableRules.GetIMPORTE_INGRESOSIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasEjecucionesIMPORTE_INGRESOS].IsNull; +end; + +procedure TObrasEjecucionesDataTableRules.SetIMPORTE_INGRESOSIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasEjecucionesIMPORTE_INGRESOS].AsVariant := Null; +end; + +function TObrasEjecucionesDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_ObrasEjecucionesIMPORTE_TOTAL].AsCurrency; +end; + +procedure TObrasEjecucionesDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_ObrasEjecucionesIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TObrasEjecucionesDataTableRules.GetIMPORTE_TOTALIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasEjecucionesIMPORTE_TOTAL].IsNull; +end; + +procedure TObrasEjecucionesDataTableRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasEjecucionesIMPORTE_TOTAL].AsVariant := Null; +end; + +function TObrasEjecucionesDataTableRules.GetOBSERVACIONESValue: IROStrings; +begin + result := f_OBSERVACIONES; + result.Text := DataTable.Fields[idx_ObrasEjecucionesOBSERVACIONES].AsString; +end; + +function TObrasEjecucionesDataTableRules.GetOBSERVACIONESIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasEjecucionesOBSERVACIONES].IsNull; +end; + +procedure TObrasEjecucionesDataTableRules.SetOBSERVACIONESIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasEjecucionesOBSERVACIONES].AsVariant := Null; +end; + +function TObrasEjecucionesDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_ObrasEjecucionesFECHA_ALTA].AsDateTime; +end; + +procedure TObrasEjecucionesDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_ObrasEjecucionesFECHA_ALTA].AsDateTime := aValue; +end; + +function TObrasEjecucionesDataTableRules.GetFECHA_ALTAIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasEjecucionesFECHA_ALTA].IsNull; +end; + +procedure TObrasEjecucionesDataTableRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasEjecucionesFECHA_ALTA].AsVariant := Null; +end; + +function TObrasEjecucionesDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_ObrasEjecucionesFECHA_MODIFICACION].AsDateTime; +end; + +procedure TObrasEjecucionesDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_ObrasEjecucionesFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TObrasEjecucionesDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_ObrasEjecucionesFECHA_MODIFICACION].IsNull; +end; + +procedure TObrasEjecucionesDataTableRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ObrasEjecucionesFECHA_MODIFICACION].AsVariant := Null; +end; + + +initialization + RegisterDataTableRules(RID_Obras, TObrasDataTableRules); + RegisterDataTableRules(RID_ObrasEjecucionesPresupuestos, TObrasEjecucionesPresupuestosDataTableRules); + RegisterDataTableRules(RID_ObrasEjecucionesPedidosProveedor, TObrasEjecucionesPedidosProveedorDataTableRules); + RegisterDataTableRules(RID_ObrasEjecuciones, TObrasEjecucionesDataTableRules); + +end. diff --git a/Source/Modulos/Obras/Model/schObrasServer_Intf.dcu b/Source/Modulos/Obras/Model/schObrasServer_Intf.dcu new file mode 100644 index 0000000..5bdf358 Binary files /dev/null and b/Source/Modulos/Obras/Model/schObrasServer_Intf.dcu differ diff --git a/Source/Modulos/Obras/Model/schObrasServer_Intf.pas b/Source/Modulos/Obras/Model/schObrasServer_Intf.pas new file mode 100644 index 0000000..b46599f --- /dev/null +++ b/Source/Modulos/Obras/Model/schObrasServer_Intf.pas @@ -0,0 +1,2462 @@ +unit schObrasServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schObrasClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_ObrasDelta = '{A3B063D1-7BB8-4708-8E29-580EBB10FDDC}'; + RID_ObrasEjecucionesPresupuestosDelta = '{38860BE0-DDDB-4728-AB9F-5F03FBB00E4D}'; + RID_ObrasEjecucionesPedidosProveedorDelta = '{0111495A-B594-4EB0-BF9E-F779359F9DCA}'; + RID_ObrasEjecucionesDelta = '{90ABBA08-A245-47D0-8AE1-94570D4046AB}'; + +type + { IObrasDelta } + IObrasDelta = interface(IObras) + ['{A3B063D1-7BB8-4708-8E29-580EBB10FDDC}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldNOMBREValue : String; + function GetOldCALLEValue : String; + function GetOldPROVINCIAValue : String; + function GetOldPOBLACIONValue : String; + function GetOldCODIGO_POSTALValue : String; + function GetOldTELEFONOValue : String; + function GetOldMOVILValue : String; + function GetOldFAXValue : String; + function GetOldPERSONA_CONTACTOValue : String; + function GetOldOBSERVACIONESValue : IROStrings; + function GetOldID_CLIENTEValue : Integer; + function GetOldNOMBRE_CLIENTEValue : String; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + function GetOldUSUARIOValue : String; + function GetOldID_EJECUCIONValue : Integer; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldCALLE : String read GetOldCALLEValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property OldTELEFONO : String read GetOldTELEFONOValue; + property OldMOVIL : String read GetOldMOVILValue; + property OldFAX : String read GetOldFAXValue; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property OldID_CLIENTE : Integer read GetOldID_CLIENTEValue; + property OldNOMBRE_CLIENTE : String read GetOldNOMBRE_CLIENTEValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldID_EJECUCION : Integer read GetOldID_EJECUCIONValue; + end; + + { TObrasBusinessProcessorRules } + TObrasBusinessProcessorRules = class(TDABusinessProcessorRules, IObras, IObrasDelta) + private + f_OBSERVACIONES: IROStrings; + procedure OBSERVACIONES_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + function GetNOMBREIsNull: Boolean; virtual; + function GetOldNOMBREValue: String; virtual; + function GetOldNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetCALLEValue: String; virtual; + function GetCALLEIsNull: Boolean; virtual; + function GetOldCALLEValue: String; virtual; + function GetOldCALLEIsNull: Boolean; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + procedure SetCALLEIsNull(const aValue: Boolean); virtual; + function GetPROVINCIAValue: String; virtual; + function GetPROVINCIAIsNull: Boolean; virtual; + function GetOldPROVINCIAValue: String; virtual; + function GetOldPROVINCIAIsNull: Boolean; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual; + function GetPOBLACIONValue: String; virtual; + function GetPOBLACIONIsNull: Boolean; virtual; + function GetOldPOBLACIONValue: String; virtual; + function GetOldPOBLACIONIsNull: Boolean; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetCODIGO_POSTALIsNull: Boolean; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALIsNull: Boolean; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual; + function GetTELEFONOValue: String; virtual; + function GetTELEFONOIsNull: Boolean; virtual; + function GetOldTELEFONOValue: String; virtual; + function GetOldTELEFONOIsNull: Boolean; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + procedure SetTELEFONOIsNull(const aValue: Boolean); virtual; + function GetMOVILValue: String; virtual; + function GetMOVILIsNull: Boolean; virtual; + function GetOldMOVILValue: String; virtual; + function GetOldMOVILIsNull: Boolean; virtual; + procedure SetMOVILValue(const aValue: String); virtual; + procedure SetMOVILIsNull(const aValue: Boolean); virtual; + function GetFAXValue: String; virtual; + function GetFAXIsNull: Boolean; virtual; + function GetOldFAXValue: String; virtual; + function GetOldFAXIsNull: Boolean; virtual; + procedure SetFAXValue(const aValue: String); virtual; + procedure SetFAXIsNull(const aValue: Boolean); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + function GetPERSONA_CONTACTOIsNull: Boolean; virtual; + function GetOldPERSONA_CONTACTOValue: String; virtual; + function GetOldPERSONA_CONTACTOIsNull: Boolean; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + function GetOBSERVACIONESIsNull: Boolean; virtual; + function GetOldOBSERVACIONESValue: IROStrings; virtual; + function GetOldOBSERVACIONESIsNull: Boolean; virtual; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); virtual; + function GetID_CLIENTEValue: Integer; virtual; + function GetID_CLIENTEIsNull: Boolean; virtual; + function GetOldID_CLIENTEValue: Integer; virtual; + function GetOldID_CLIENTEIsNull: Boolean; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + procedure SetID_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetNOMBRE_CLIENTEValue: String; virtual; + function GetNOMBRE_CLIENTEIsNull: Boolean; virtual; + function GetOldNOMBRE_CLIENTEValue: String; virtual; + function GetOldNOMBRE_CLIENTEIsNull: Boolean; virtual; + procedure SetNOMBRE_CLIENTEValue(const aValue: String); virtual; + procedure SetNOMBRE_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + function GetUSUARIOIsNull: Boolean; virtual; + function GetOldUSUARIOValue: String; virtual; + function GetOldUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetID_EJECUCIONValue: Integer; virtual; + function GetID_EJECUCIONIsNull: Boolean; virtual; + function GetOldID_EJECUCIONValue: Integer; virtual; + function GetOldID_EJECUCIONIsNull: Boolean; virtual; + procedure SetID_EJECUCIONValue(const aValue: Integer); virtual; + procedure SetID_EJECUCIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull : Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_EMPRESAIsNull : Boolean read GetOldID_EMPRESAIsNull; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull : Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldNOMBREIsNull : Boolean read GetOldNOMBREIsNull; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull : Boolean read GetCALLEIsNull write SetCALLEIsNull; + property OldCALLE : String read GetOldCALLEValue; + property OldCALLEIsNull : Boolean read GetOldCALLEIsNull; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull : Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property OldPROVINCIAIsNull : Boolean read GetOldPROVINCIAIsNull; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull : Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property OldPOBLACIONIsNull : Boolean read GetOldPOBLACIONIsNull; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull : Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property OldCODIGO_POSTALIsNull : Boolean read GetOldCODIGO_POSTALIsNull; + property TELEFONO : String read GetTELEFONOValue write SetTELEFONOValue; + property TELEFONOIsNull : Boolean read GetTELEFONOIsNull write SetTELEFONOIsNull; + property OldTELEFONO : String read GetOldTELEFONOValue; + property OldTELEFONOIsNull : Boolean read GetOldTELEFONOIsNull; + property MOVIL : String read GetMOVILValue write SetMOVILValue; + property MOVILIsNull : Boolean read GetMOVILIsNull write SetMOVILIsNull; + property OldMOVIL : String read GetOldMOVILValue; + property OldMOVILIsNull : Boolean read GetOldMOVILIsNull; + property FAX : String read GetFAXValue write SetFAXValue; + property FAXIsNull : Boolean read GetFAXIsNull write SetFAXIsNull; + property OldFAX : String read GetOldFAXValue; + property OldFAXIsNull : Boolean read GetOldFAXIsNull; + property PERSONA_CONTACTO : String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull : Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property OldPERSONA_CONTACTOIsNull : Boolean read GetOldPERSONA_CONTACTOIsNull; + property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue; + property OBSERVACIONESIsNull : Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property OldOBSERVACIONESIsNull : Boolean read GetOldOBSERVACIONESIsNull; + property ID_CLIENTE : Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property ID_CLIENTEIsNull : Boolean read GetID_CLIENTEIsNull write SetID_CLIENTEIsNull; + property OldID_CLIENTE : Integer read GetOldID_CLIENTEValue; + property OldID_CLIENTEIsNull : Boolean read GetOldID_CLIENTEIsNull; + property NOMBRE_CLIENTE : String read GetNOMBRE_CLIENTEValue write SetNOMBRE_CLIENTEValue; + property NOMBRE_CLIENTEIsNull : Boolean read GetNOMBRE_CLIENTEIsNull write SetNOMBRE_CLIENTEIsNull; + property OldNOMBRE_CLIENTE : String read GetOldNOMBRE_CLIENTEValue; + property OldNOMBRE_CLIENTEIsNull : Boolean read GetOldNOMBRE_CLIENTEIsNull; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull : Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_ALTAIsNull : Boolean read GetOldFECHA_ALTAIsNull; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull : Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldUSUARIOIsNull : Boolean read GetOldUSUARIOIsNull; + property ID_EJECUCION : Integer read GetID_EJECUCIONValue write SetID_EJECUCIONValue; + property ID_EJECUCIONIsNull : Boolean read GetID_EJECUCIONIsNull write SetID_EJECUCIONIsNull; + property OldID_EJECUCION : Integer read GetOldID_EJECUCIONValue; + property OldID_EJECUCIONIsNull : Boolean read GetOldID_EJECUCIONIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IObrasEjecucionesPresupuestosDelta } + IObrasEjecucionesPresupuestosDelta = interface(IObrasEjecucionesPresupuestos) + ['{38860BE0-DDDB-4728-AB9F-5F03FBB00E4D}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EJECUCIONValue : Integer; + function GetOldID_PRESUPUESTOValue : Integer; + function GetOldREFERENCIAValue : String; + function GetOldFECHA_PRESUPUESTOValue : DateTime; + function GetOldSITUACIONValue : String; + function GetOldBASE_IMPONIBLEValue : Currency; + function GetOldNOMBREValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_EJECUCION : Integer read GetOldID_EJECUCIONValue; + property OldID_PRESUPUESTO : Integer read GetOldID_PRESUPUESTOValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldFECHA_PRESUPUESTO : DateTime read GetOldFECHA_PRESUPUESTOValue; + property OldSITUACION : String read GetOldSITUACIONValue; + property OldBASE_IMPONIBLE : Currency read GetOldBASE_IMPONIBLEValue; + property OldNOMBRE : String read GetOldNOMBREValue; + end; + + { TObrasEjecucionesPresupuestosBusinessProcessorRules } + TObrasEjecucionesPresupuestosBusinessProcessorRules = class(TDABusinessProcessorRules, IObrasEjecucionesPresupuestos, IObrasEjecucionesPresupuestosDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EJECUCIONValue: Integer; virtual; + function GetID_EJECUCIONIsNull: Boolean; virtual; + function GetOldID_EJECUCIONValue: Integer; virtual; + function GetOldID_EJECUCIONIsNull: Boolean; virtual; + procedure SetID_EJECUCIONValue(const aValue: Integer); virtual; + procedure SetID_EJECUCIONIsNull(const aValue: Boolean); virtual; + function GetID_PRESUPUESTOValue: Integer; virtual; + function GetID_PRESUPUESTOIsNull: Boolean; virtual; + function GetOldID_PRESUPUESTOValue: Integer; virtual; + function GetOldID_PRESUPUESTOIsNull: Boolean; virtual; + procedure SetID_PRESUPUESTOValue(const aValue: Integer); virtual; + procedure SetID_PRESUPUESTOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetFECHA_PRESUPUESTOValue: DateTime; virtual; + function GetFECHA_PRESUPUESTOIsNull: Boolean; virtual; + function GetOldFECHA_PRESUPUESTOValue: DateTime; virtual; + function GetOldFECHA_PRESUPUESTOIsNull: Boolean; virtual; + procedure SetFECHA_PRESUPUESTOValue(const aValue: DateTime); virtual; + procedure SetFECHA_PRESUPUESTOIsNull(const aValue: Boolean); virtual; + function GetSITUACIONValue: String; virtual; + function GetSITUACIONIsNull: Boolean; virtual; + function GetOldSITUACIONValue: String; virtual; + function GetOldSITUACIONIsNull: Boolean; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + procedure SetSITUACIONIsNull(const aValue: Boolean); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + function GetBASE_IMPONIBLEIsNull: Boolean; virtual; + function GetOldBASE_IMPONIBLEValue: Currency; virtual; + function GetOldBASE_IMPONIBLEIsNull: Boolean; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + procedure SetBASE_IMPONIBLEIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + function GetNOMBREIsNull: Boolean; virtual; + function GetOldNOMBREValue: String; virtual; + function GetOldNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_EJECUCION : Integer read GetID_EJECUCIONValue write SetID_EJECUCIONValue; + property ID_EJECUCIONIsNull : Boolean read GetID_EJECUCIONIsNull write SetID_EJECUCIONIsNull; + property OldID_EJECUCION : Integer read GetOldID_EJECUCIONValue; + property OldID_EJECUCIONIsNull : Boolean read GetOldID_EJECUCIONIsNull; + property ID_PRESUPUESTO : Integer read GetID_PRESUPUESTOValue write SetID_PRESUPUESTOValue; + property ID_PRESUPUESTOIsNull : Boolean read GetID_PRESUPUESTOIsNull write SetID_PRESUPUESTOIsNull; + property OldID_PRESUPUESTO : Integer read GetOldID_PRESUPUESTOValue; + property OldID_PRESUPUESTOIsNull : Boolean read GetOldID_PRESUPUESTOIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property FECHA_PRESUPUESTO : DateTime read GetFECHA_PRESUPUESTOValue write SetFECHA_PRESUPUESTOValue; + property FECHA_PRESUPUESTOIsNull : Boolean read GetFECHA_PRESUPUESTOIsNull write SetFECHA_PRESUPUESTOIsNull; + property OldFECHA_PRESUPUESTO : DateTime read GetOldFECHA_PRESUPUESTOValue; + property OldFECHA_PRESUPUESTOIsNull : Boolean read GetOldFECHA_PRESUPUESTOIsNull; + property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue; + property SITUACIONIsNull : Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull; + property OldSITUACION : String read GetOldSITUACIONValue; + property OldSITUACIONIsNull : Boolean read GetOldSITUACIONIsNull; + property BASE_IMPONIBLE : Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property BASE_IMPONIBLEIsNull : Boolean read GetBASE_IMPONIBLEIsNull write SetBASE_IMPONIBLEIsNull; + property OldBASE_IMPONIBLE : Currency read GetOldBASE_IMPONIBLEValue; + property OldBASE_IMPONIBLEIsNull : Boolean read GetOldBASE_IMPONIBLEIsNull; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull : Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldNOMBREIsNull : Boolean read GetOldNOMBREIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IObrasEjecucionesPedidosProveedorDelta } + IObrasEjecucionesPedidosProveedorDelta = interface(IObrasEjecucionesPedidosProveedor) + ['{0111495A-B594-4EB0-BF9E-F779359F9DCA}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EJECUCIONValue : Integer; + function GetOldID_PEDIDOValue : Integer; + function GetOldID_PRESUPUESTOValue : Integer; + function GetOldSITUACIONValue : String; + function GetOldID_PROVEEDORValue : Integer; + function GetOldNOMBREValue : String; + function GetOldREFERENCIAValue : String; + function GetOldFECHA_PEDIDOValue : DateTime; + function GetOldFECHA_ENTREGAValue : DateTime; + function GetOldID_ALMACENValue : Integer; + function GetOldNOMBRE_ALMACENValue : String; + function GetOldID_OBRAValue : Integer; + function GetOldNOMBRE_OBRAValue : String; + function GetOldBASE_IMPONIBLEValue : Currency; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_EJECUCION : Integer read GetOldID_EJECUCIONValue; + property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue; + property OldID_PRESUPUESTO : Integer read GetOldID_PRESUPUESTOValue; + property OldSITUACION : String read GetOldSITUACIONValue; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldFECHA_PEDIDO : DateTime read GetOldFECHA_PEDIDOValue; + property OldFECHA_ENTREGA : DateTime read GetOldFECHA_ENTREGAValue; + property OldID_ALMACEN : Integer read GetOldID_ALMACENValue; + property OldNOMBRE_ALMACEN : String read GetOldNOMBRE_ALMACENValue; + property OldID_OBRA : Integer read GetOldID_OBRAValue; + property OldNOMBRE_OBRA : String read GetOldNOMBRE_OBRAValue; + property OldBASE_IMPONIBLE : Currency read GetOldBASE_IMPONIBLEValue; + end; + + { TObrasEjecucionesPedidosProveedorBusinessProcessorRules } + TObrasEjecucionesPedidosProveedorBusinessProcessorRules = class(TDABusinessProcessorRules, IObrasEjecucionesPedidosProveedor, IObrasEjecucionesPedidosProveedorDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EJECUCIONValue: Integer; virtual; + function GetID_EJECUCIONIsNull: Boolean; virtual; + function GetOldID_EJECUCIONValue: Integer; virtual; + function GetOldID_EJECUCIONIsNull: Boolean; virtual; + procedure SetID_EJECUCIONValue(const aValue: Integer); virtual; + procedure SetID_EJECUCIONIsNull(const aValue: Boolean); virtual; + function GetID_PEDIDOValue: Integer; virtual; + function GetID_PEDIDOIsNull: Boolean; virtual; + function GetOldID_PEDIDOValue: Integer; virtual; + function GetOldID_PEDIDOIsNull: Boolean; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + procedure SetID_PEDIDOIsNull(const aValue: Boolean); virtual; + function GetID_PRESUPUESTOValue: Integer; virtual; + function GetID_PRESUPUESTOIsNull: Boolean; virtual; + function GetOldID_PRESUPUESTOValue: Integer; virtual; + function GetOldID_PRESUPUESTOIsNull: Boolean; virtual; + procedure SetID_PRESUPUESTOValue(const aValue: Integer); virtual; + procedure SetID_PRESUPUESTOIsNull(const aValue: Boolean); virtual; + function GetSITUACIONValue: String; virtual; + function GetSITUACIONIsNull: Boolean; virtual; + function GetOldSITUACIONValue: String; virtual; + function GetOldSITUACIONIsNull: Boolean; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + procedure SetSITUACIONIsNull(const aValue: Boolean); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + function GetID_PROVEEDORIsNull: Boolean; virtual; + function GetOldID_PROVEEDORValue: Integer; virtual; + function GetOldID_PROVEEDORIsNull: Boolean; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + function GetNOMBREIsNull: Boolean; virtual; + function GetOldNOMBREValue: String; virtual; + function GetOldNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetFECHA_PEDIDOValue: DateTime; virtual; + function GetFECHA_PEDIDOIsNull: Boolean; virtual; + function GetOldFECHA_PEDIDOValue: DateTime; virtual; + function GetOldFECHA_PEDIDOIsNull: Boolean; virtual; + procedure SetFECHA_PEDIDOValue(const aValue: DateTime); virtual; + procedure SetFECHA_PEDIDOIsNull(const aValue: Boolean); virtual; + function GetFECHA_ENTREGAValue: DateTime; virtual; + function GetFECHA_ENTREGAIsNull: Boolean; virtual; + function GetOldFECHA_ENTREGAValue: DateTime; virtual; + function GetOldFECHA_ENTREGAIsNull: Boolean; virtual; + procedure SetFECHA_ENTREGAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ENTREGAIsNull(const aValue: Boolean); virtual; + function GetID_ALMACENValue: Integer; virtual; + function GetID_ALMACENIsNull: Boolean; virtual; + function GetOldID_ALMACENValue: Integer; virtual; + function GetOldID_ALMACENIsNull: Boolean; virtual; + procedure SetID_ALMACENValue(const aValue: Integer); virtual; + procedure SetID_ALMACENIsNull(const aValue: Boolean); virtual; + function GetNOMBRE_ALMACENValue: String; virtual; + function GetNOMBRE_ALMACENIsNull: Boolean; virtual; + function GetOldNOMBRE_ALMACENValue: String; virtual; + function GetOldNOMBRE_ALMACENIsNull: Boolean; virtual; + procedure SetNOMBRE_ALMACENValue(const aValue: String); virtual; + procedure SetNOMBRE_ALMACENIsNull(const aValue: Boolean); virtual; + function GetID_OBRAValue: Integer; virtual; + function GetID_OBRAIsNull: Boolean; virtual; + function GetOldID_OBRAValue: Integer; virtual; + function GetOldID_OBRAIsNull: Boolean; virtual; + procedure SetID_OBRAValue(const aValue: Integer); virtual; + procedure SetID_OBRAIsNull(const aValue: Boolean); virtual; + function GetNOMBRE_OBRAValue: String; virtual; + function GetNOMBRE_OBRAIsNull: Boolean; virtual; + function GetOldNOMBRE_OBRAValue: String; virtual; + function GetOldNOMBRE_OBRAIsNull: Boolean; virtual; + procedure SetNOMBRE_OBRAValue(const aValue: String); virtual; + procedure SetNOMBRE_OBRAIsNull(const aValue: Boolean); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + function GetBASE_IMPONIBLEIsNull: Boolean; virtual; + function GetOldBASE_IMPONIBLEValue: Currency; virtual; + function GetOldBASE_IMPONIBLEIsNull: Boolean; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + procedure SetBASE_IMPONIBLEIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_EJECUCION : Integer read GetID_EJECUCIONValue write SetID_EJECUCIONValue; + property ID_EJECUCIONIsNull : Boolean read GetID_EJECUCIONIsNull write SetID_EJECUCIONIsNull; + property OldID_EJECUCION : Integer read GetOldID_EJECUCIONValue; + property OldID_EJECUCIONIsNull : Boolean read GetOldID_EJECUCIONIsNull; + property ID_PEDIDO : Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property ID_PEDIDOIsNull : Boolean read GetID_PEDIDOIsNull write SetID_PEDIDOIsNull; + property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue; + property OldID_PEDIDOIsNull : Boolean read GetOldID_PEDIDOIsNull; + property ID_PRESUPUESTO : Integer read GetID_PRESUPUESTOValue write SetID_PRESUPUESTOValue; + property ID_PRESUPUESTOIsNull : Boolean read GetID_PRESUPUESTOIsNull write SetID_PRESUPUESTOIsNull; + property OldID_PRESUPUESTO : Integer read GetOldID_PRESUPUESTOValue; + property OldID_PRESUPUESTOIsNull : Boolean read GetOldID_PRESUPUESTOIsNull; + property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue; + property SITUACIONIsNull : Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull; + property OldSITUACION : String read GetOldSITUACIONValue; + property OldSITUACIONIsNull : Boolean read GetOldSITUACIONIsNull; + property ID_PROVEEDOR : Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull : Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property OldID_PROVEEDORIsNull : Boolean read GetOldID_PROVEEDORIsNull; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull : Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldNOMBREIsNull : Boolean read GetOldNOMBREIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property FECHA_PEDIDO : DateTime read GetFECHA_PEDIDOValue write SetFECHA_PEDIDOValue; + property FECHA_PEDIDOIsNull : Boolean read GetFECHA_PEDIDOIsNull write SetFECHA_PEDIDOIsNull; + property OldFECHA_PEDIDO : DateTime read GetOldFECHA_PEDIDOValue; + property OldFECHA_PEDIDOIsNull : Boolean read GetOldFECHA_PEDIDOIsNull; + property FECHA_ENTREGA : DateTime read GetFECHA_ENTREGAValue write SetFECHA_ENTREGAValue; + property FECHA_ENTREGAIsNull : Boolean read GetFECHA_ENTREGAIsNull write SetFECHA_ENTREGAIsNull; + property OldFECHA_ENTREGA : DateTime read GetOldFECHA_ENTREGAValue; + property OldFECHA_ENTREGAIsNull : Boolean read GetOldFECHA_ENTREGAIsNull; + property ID_ALMACEN : Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property ID_ALMACENIsNull : Boolean read GetID_ALMACENIsNull write SetID_ALMACENIsNull; + property OldID_ALMACEN : Integer read GetOldID_ALMACENValue; + property OldID_ALMACENIsNull : Boolean read GetOldID_ALMACENIsNull; + property NOMBRE_ALMACEN : String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property NOMBRE_ALMACENIsNull : Boolean read GetNOMBRE_ALMACENIsNull write SetNOMBRE_ALMACENIsNull; + property OldNOMBRE_ALMACEN : String read GetOldNOMBRE_ALMACENValue; + property OldNOMBRE_ALMACENIsNull : Boolean read GetOldNOMBRE_ALMACENIsNull; + property ID_OBRA : Integer read GetID_OBRAValue write SetID_OBRAValue; + property ID_OBRAIsNull : Boolean read GetID_OBRAIsNull write SetID_OBRAIsNull; + property OldID_OBRA : Integer read GetOldID_OBRAValue; + property OldID_OBRAIsNull : Boolean read GetOldID_OBRAIsNull; + property NOMBRE_OBRA : String read GetNOMBRE_OBRAValue write SetNOMBRE_OBRAValue; + property NOMBRE_OBRAIsNull : Boolean read GetNOMBRE_OBRAIsNull write SetNOMBRE_OBRAIsNull; + property OldNOMBRE_OBRA : String read GetOldNOMBRE_OBRAValue; + property OldNOMBRE_OBRAIsNull : Boolean read GetOldNOMBRE_OBRAIsNull; + property BASE_IMPONIBLE : Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property BASE_IMPONIBLEIsNull : Boolean read GetBASE_IMPONIBLEIsNull write SetBASE_IMPONIBLEIsNull; + property OldBASE_IMPONIBLE : Currency read GetOldBASE_IMPONIBLEValue; + property OldBASE_IMPONIBLEIsNull : Boolean read GetOldBASE_IMPONIBLEIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IObrasEjecucionesDelta } + IObrasEjecucionesDelta = interface(IObrasEjecuciones) + ['{90ABBA08-A245-47D0-8AE1-94570D4046AB}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_OBRAValue : Integer; + function GetOldFECHA_INICIOValue : DateTime; + function GetOldFECHA_FINValue : DateTime; + function GetOldID_SUBCONTRATAValue : Integer; + function GetOldNOMBREValue : String; + function GetOldIMPORTE_GASTOSValue : Currency; + function GetOldIMPORTE_INGRESOSValue : Currency; + function GetOldIMPORTE_TOTALValue : Currency; + function GetOldOBSERVACIONESValue : IROStrings; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_OBRA : Integer read GetOldID_OBRAValue; + property OldFECHA_INICIO : DateTime read GetOldFECHA_INICIOValue; + property OldFECHA_FIN : DateTime read GetOldFECHA_FINValue; + property OldID_SUBCONTRATA : Integer read GetOldID_SUBCONTRATAValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldIMPORTE_GASTOS : Currency read GetOldIMPORTE_GASTOSValue; + property OldIMPORTE_INGRESOS : Currency read GetOldIMPORTE_INGRESOSValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + end; + + { TObrasEjecucionesBusinessProcessorRules } + TObrasEjecucionesBusinessProcessorRules = class(TDABusinessProcessorRules, IObrasEjecuciones, IObrasEjecucionesDelta) + private + f_OBSERVACIONES: IROStrings; + procedure OBSERVACIONES_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_OBRAValue: Integer; virtual; + function GetID_OBRAIsNull: Boolean; virtual; + function GetOldID_OBRAValue: Integer; virtual; + function GetOldID_OBRAIsNull: Boolean; virtual; + procedure SetID_OBRAValue(const aValue: Integer); virtual; + procedure SetID_OBRAIsNull(const aValue: Boolean); virtual; + function GetFECHA_INICIOValue: DateTime; virtual; + function GetFECHA_INICIOIsNull: Boolean; virtual; + function GetOldFECHA_INICIOValue: DateTime; virtual; + function GetOldFECHA_INICIOIsNull: Boolean; virtual; + procedure SetFECHA_INICIOValue(const aValue: DateTime); virtual; + procedure SetFECHA_INICIOIsNull(const aValue: Boolean); virtual; + function GetFECHA_FINValue: DateTime; virtual; + function GetFECHA_FINIsNull: Boolean; virtual; + function GetOldFECHA_FINValue: DateTime; virtual; + function GetOldFECHA_FINIsNull: Boolean; virtual; + procedure SetFECHA_FINValue(const aValue: DateTime); virtual; + procedure SetFECHA_FINIsNull(const aValue: Boolean); virtual; + function GetID_SUBCONTRATAValue: Integer; virtual; + function GetID_SUBCONTRATAIsNull: Boolean; virtual; + function GetOldID_SUBCONTRATAValue: Integer; virtual; + function GetOldID_SUBCONTRATAIsNull: Boolean; virtual; + procedure SetID_SUBCONTRATAValue(const aValue: Integer); virtual; + procedure SetID_SUBCONTRATAIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + function GetNOMBREIsNull: Boolean; virtual; + function GetOldNOMBREValue: String; virtual; + function GetOldNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_GASTOSValue: Currency; virtual; + function GetIMPORTE_GASTOSIsNull: Boolean; virtual; + function GetOldIMPORTE_GASTOSValue: Currency; virtual; + function GetOldIMPORTE_GASTOSIsNull: Boolean; virtual; + procedure SetIMPORTE_GASTOSValue(const aValue: Currency); virtual; + procedure SetIMPORTE_GASTOSIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_INGRESOSValue: Currency; virtual; + function GetIMPORTE_INGRESOSIsNull: Boolean; virtual; + function GetOldIMPORTE_INGRESOSValue: Currency; virtual; + function GetOldIMPORTE_INGRESOSIsNull: Boolean; virtual; + procedure SetIMPORTE_INGRESOSValue(const aValue: Currency); virtual; + procedure SetIMPORTE_INGRESOSIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + function GetOBSERVACIONESIsNull: Boolean; virtual; + function GetOldOBSERVACIONESValue: IROStrings; virtual; + function GetOldOBSERVACIONESIsNull: Boolean; virtual; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_OBRA : Integer read GetID_OBRAValue write SetID_OBRAValue; + property ID_OBRAIsNull : Boolean read GetID_OBRAIsNull write SetID_OBRAIsNull; + property OldID_OBRA : Integer read GetOldID_OBRAValue; + property OldID_OBRAIsNull : Boolean read GetOldID_OBRAIsNull; + property FECHA_INICIO : DateTime read GetFECHA_INICIOValue write SetFECHA_INICIOValue; + property FECHA_INICIOIsNull : Boolean read GetFECHA_INICIOIsNull write SetFECHA_INICIOIsNull; + property OldFECHA_INICIO : DateTime read GetOldFECHA_INICIOValue; + property OldFECHA_INICIOIsNull : Boolean read GetOldFECHA_INICIOIsNull; + property FECHA_FIN : DateTime read GetFECHA_FINValue write SetFECHA_FINValue; + property FECHA_FINIsNull : Boolean read GetFECHA_FINIsNull write SetFECHA_FINIsNull; + property OldFECHA_FIN : DateTime read GetOldFECHA_FINValue; + property OldFECHA_FINIsNull : Boolean read GetOldFECHA_FINIsNull; + property ID_SUBCONTRATA : Integer read GetID_SUBCONTRATAValue write SetID_SUBCONTRATAValue; + property ID_SUBCONTRATAIsNull : Boolean read GetID_SUBCONTRATAIsNull write SetID_SUBCONTRATAIsNull; + property OldID_SUBCONTRATA : Integer read GetOldID_SUBCONTRATAValue; + property OldID_SUBCONTRATAIsNull : Boolean read GetOldID_SUBCONTRATAIsNull; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull : Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldNOMBREIsNull : Boolean read GetOldNOMBREIsNull; + property IMPORTE_GASTOS : Currency read GetIMPORTE_GASTOSValue write SetIMPORTE_GASTOSValue; + property IMPORTE_GASTOSIsNull : Boolean read GetIMPORTE_GASTOSIsNull write SetIMPORTE_GASTOSIsNull; + property OldIMPORTE_GASTOS : Currency read GetOldIMPORTE_GASTOSValue; + property OldIMPORTE_GASTOSIsNull : Boolean read GetOldIMPORTE_GASTOSIsNull; + property IMPORTE_INGRESOS : Currency read GetIMPORTE_INGRESOSValue write SetIMPORTE_INGRESOSValue; + property IMPORTE_INGRESOSIsNull : Boolean read GetIMPORTE_INGRESOSIsNull write SetIMPORTE_INGRESOSIsNull; + property OldIMPORTE_INGRESOS : Currency read GetOldIMPORTE_INGRESOSValue; + property OldIMPORTE_INGRESOSIsNull : Boolean read GetOldIMPORTE_INGRESOSIsNull; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull : Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldIMPORTE_TOTALIsNull : Boolean read GetOldIMPORTE_TOTALIsNull; + property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue; + property OBSERVACIONESIsNull : Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property OldOBSERVACIONESIsNull : Boolean read GetOldOBSERVACIONESIsNull; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull : Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_ALTAIsNull : Boolean read GetOldFECHA_ALTAIsNull; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers, uDAInterfaces; + +{ TObrasBusinessProcessorRules } +constructor TObrasBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := OBSERVACIONES_OnChange; + f_OBSERVACIONES := NewROStrings(StrList,True); +end; + +destructor TObrasBusinessProcessorRules.Destroy; +begin + inherited; +end; + +procedure TObrasBusinessProcessorRules.OBSERVACIONES_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasOBSERVACIONES] := TStringList(Sender).Text; +end; + +function TObrasBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID]; +end; + +function TObrasBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID]); +end; + +function TObrasBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasID]; +end; + +function TObrasBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasID]); +end; + +procedure TObrasBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID] := aValue; +end; + +procedure TObrasBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID] := Null; +end; + +function TObrasBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_EMPRESA]; +end; + +function TObrasBusinessProcessorRules.GetID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_EMPRESA]); +end; + +function TObrasBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasID_EMPRESA]; +end; + +function TObrasBusinessProcessorRules.GetOldID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasID_EMPRESA]); +end; + +procedure TObrasBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_EMPRESA] := aValue; +end; + +procedure TObrasBusinessProcessorRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_EMPRESA] := Null; +end; + +function TObrasBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasNOMBRE]; +end; + +function TObrasBusinessProcessorRules.GetNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasNOMBRE]); +end; + +function TObrasBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasNOMBRE]; +end; + +function TObrasBusinessProcessorRules.GetOldNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasNOMBRE]); +end; + +procedure TObrasBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasNOMBRE] := aValue; +end; + +procedure TObrasBusinessProcessorRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasNOMBRE] := Null; +end; + +function TObrasBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasCALLE]; +end; + +function TObrasBusinessProcessorRules.GetCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasCALLE]); +end; + +function TObrasBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasCALLE]; +end; + +function TObrasBusinessProcessorRules.GetOldCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasCALLE]); +end; + +procedure TObrasBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasCALLE] := aValue; +end; + +procedure TObrasBusinessProcessorRules.SetCALLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasCALLE] := Null; +end; + +function TObrasBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPROVINCIA]; +end; + +function TObrasBusinessProcessorRules.GetPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPROVINCIA]); +end; + +function TObrasBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasPROVINCIA]; +end; + +function TObrasBusinessProcessorRules.GetOldPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasPROVINCIA]); +end; + +procedure TObrasBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPROVINCIA] := aValue; +end; + +procedure TObrasBusinessProcessorRules.SetPROVINCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPROVINCIA] := Null; +end; + +function TObrasBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPOBLACION]; +end; + +function TObrasBusinessProcessorRules.GetPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPOBLACION]); +end; + +function TObrasBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasPOBLACION]; +end; + +function TObrasBusinessProcessorRules.GetOldPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasPOBLACION]); +end; + +procedure TObrasBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPOBLACION] := aValue; +end; + +procedure TObrasBusinessProcessorRules.SetPOBLACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPOBLACION] := Null; +end; + +function TObrasBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasCODIGO_POSTAL]; +end; + +function TObrasBusinessProcessorRules.GetCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasCODIGO_POSTAL]); +end; + +function TObrasBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasCODIGO_POSTAL]; +end; + +function TObrasBusinessProcessorRules.GetOldCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasCODIGO_POSTAL]); +end; + +procedure TObrasBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasCODIGO_POSTAL] := aValue; +end; + +procedure TObrasBusinessProcessorRules.SetCODIGO_POSTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasCODIGO_POSTAL] := Null; +end; + +function TObrasBusinessProcessorRules.GetTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasTELEFONO]; +end; + +function TObrasBusinessProcessorRules.GetTELEFONOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasTELEFONO]); +end; + +function TObrasBusinessProcessorRules.GetOldTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasTELEFONO]; +end; + +function TObrasBusinessProcessorRules.GetOldTELEFONOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasTELEFONO]); +end; + +procedure TObrasBusinessProcessorRules.SetTELEFONOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasTELEFONO] := aValue; +end; + +procedure TObrasBusinessProcessorRules.SetTELEFONOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasTELEFONO] := Null; +end; + +function TObrasBusinessProcessorRules.GetMOVILValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasMOVIL]; +end; + +function TObrasBusinessProcessorRules.GetMOVILIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasMOVIL]); +end; + +function TObrasBusinessProcessorRules.GetOldMOVILValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasMOVIL]; +end; + +function TObrasBusinessProcessorRules.GetOldMOVILIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasMOVIL]); +end; + +procedure TObrasBusinessProcessorRules.SetMOVILValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasMOVIL] := aValue; +end; + +procedure TObrasBusinessProcessorRules.SetMOVILIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasMOVIL] := Null; +end; + +function TObrasBusinessProcessorRules.GetFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFAX]; +end; + +function TObrasBusinessProcessorRules.GetFAXIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFAX]); +end; + +function TObrasBusinessProcessorRules.GetOldFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasFAX]; +end; + +function TObrasBusinessProcessorRules.GetOldFAXIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasFAX]); +end; + +procedure TObrasBusinessProcessorRules.SetFAXValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFAX] := aValue; +end; + +procedure TObrasBusinessProcessorRules.SetFAXIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFAX] := Null; +end; + +function TObrasBusinessProcessorRules.GetPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPERSONA_CONTACTO]; +end; + +function TObrasBusinessProcessorRules.GetPERSONA_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPERSONA_CONTACTO]); +end; + +function TObrasBusinessProcessorRules.GetOldPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasPERSONA_CONTACTO]; +end; + +function TObrasBusinessProcessorRules.GetOldPERSONA_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasPERSONA_CONTACTO]); +end; + +procedure TObrasBusinessProcessorRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPERSONA_CONTACTO] := aValue; +end; + +procedure TObrasBusinessProcessorRules.SetPERSONA_CONTACTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPERSONA_CONTACTO] := Null; +end; + +function TObrasBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings; +begin + result := f_OBSERVACIONES; + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasOBSERVACIONES]; +end; + +function TObrasBusinessProcessorRules.GetOBSERVACIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasOBSERVACIONES]); +end; + +function TObrasBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasOBSERVACIONES]; +end; + +function TObrasBusinessProcessorRules.GetOldOBSERVACIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasOBSERVACIONES]); +end; + +procedure TObrasBusinessProcessorRules.SetOBSERVACIONESIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasOBSERVACIONES] := Null; +end; + +function TObrasBusinessProcessorRules.GetID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_CLIENTE]; +end; + +function TObrasBusinessProcessorRules.GetID_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_CLIENTE]); +end; + +function TObrasBusinessProcessorRules.GetOldID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasID_CLIENTE]; +end; + +function TObrasBusinessProcessorRules.GetOldID_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasID_CLIENTE]); +end; + +procedure TObrasBusinessProcessorRules.SetID_CLIENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_CLIENTE] := aValue; +end; + +procedure TObrasBusinessProcessorRules.SetID_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_CLIENTE] := Null; +end; + +function TObrasBusinessProcessorRules.GetNOMBRE_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasNOMBRE_CLIENTE]; +end; + +function TObrasBusinessProcessorRules.GetNOMBRE_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasNOMBRE_CLIENTE]); +end; + +function TObrasBusinessProcessorRules.GetOldNOMBRE_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasNOMBRE_CLIENTE]; +end; + +function TObrasBusinessProcessorRules.GetOldNOMBRE_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasNOMBRE_CLIENTE]); +end; + +procedure TObrasBusinessProcessorRules.SetNOMBRE_CLIENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasNOMBRE_CLIENTE] := aValue; +end; + +procedure TObrasBusinessProcessorRules.SetNOMBRE_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasNOMBRE_CLIENTE] := Null; +end; + +function TObrasBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFECHA_ALTA]; +end; + +function TObrasBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFECHA_ALTA]); +end; + +function TObrasBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasFECHA_ALTA]; +end; + +function TObrasBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasFECHA_ALTA]); +end; + +procedure TObrasBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFECHA_ALTA] := aValue; +end; + +procedure TObrasBusinessProcessorRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFECHA_ALTA] := Null; +end; + +function TObrasBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFECHA_MODIFICACION]; +end; + +function TObrasBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFECHA_MODIFICACION]); +end; + +function TObrasBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasFECHA_MODIFICACION]; +end; + +function TObrasBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasFECHA_MODIFICACION]); +end; + +procedure TObrasBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFECHA_MODIFICACION] := aValue; +end; + +procedure TObrasBusinessProcessorRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFECHA_MODIFICACION] := Null; +end; + +function TObrasBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasUSUARIO]; +end; + +function TObrasBusinessProcessorRules.GetUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasUSUARIO]); +end; + +function TObrasBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasUSUARIO]; +end; + +function TObrasBusinessProcessorRules.GetOldUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasUSUARIO]); +end; + +procedure TObrasBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasUSUARIO] := aValue; +end; + +procedure TObrasBusinessProcessorRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasUSUARIO] := Null; +end; + +function TObrasBusinessProcessorRules.GetID_EJECUCIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_EJECUCION]; +end; + +function TObrasBusinessProcessorRules.GetID_EJECUCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_EJECUCION]); +end; + +function TObrasBusinessProcessorRules.GetOldID_EJECUCIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasID_EJECUCION]; +end; + +function TObrasBusinessProcessorRules.GetOldID_EJECUCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasID_EJECUCION]); +end; + +procedure TObrasBusinessProcessorRules.SetID_EJECUCIONValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_EJECUCION] := aValue; +end; + +procedure TObrasBusinessProcessorRules.SetID_EJECUCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_EJECUCION] := Null; +end; + + +{ TObrasEjecucionesPresupuestosBusinessProcessorRules } +constructor TObrasEjecucionesPresupuestosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TObrasEjecucionesPresupuestosBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TObrasEjecucionesPresupuestosBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPresupuestosID]; +end; + +function TObrasEjecucionesPresupuestosBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPresupuestosID]); +end; + +function TObrasEjecucionesPresupuestosBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPresupuestosID]; +end; + +function TObrasEjecucionesPresupuestosBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPresupuestosID]); +end; + +procedure TObrasEjecucionesPresupuestosBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPresupuestosID] := aValue; +end; + +procedure TObrasEjecucionesPresupuestosBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPresupuestosID] := Null; +end; + +function TObrasEjecucionesPresupuestosBusinessProcessorRules.GetID_EJECUCIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPresupuestosID_EJECUCION]; +end; + +function TObrasEjecucionesPresupuestosBusinessProcessorRules.GetID_EJECUCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPresupuestosID_EJECUCION]); +end; + +function TObrasEjecucionesPresupuestosBusinessProcessorRules.GetOldID_EJECUCIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPresupuestosID_EJECUCION]; +end; + +function TObrasEjecucionesPresupuestosBusinessProcessorRules.GetOldID_EJECUCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPresupuestosID_EJECUCION]); +end; + +procedure TObrasEjecucionesPresupuestosBusinessProcessorRules.SetID_EJECUCIONValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPresupuestosID_EJECUCION] := aValue; +end; + +procedure TObrasEjecucionesPresupuestosBusinessProcessorRules.SetID_EJECUCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPresupuestosID_EJECUCION] := Null; +end; + +function TObrasEjecucionesPresupuestosBusinessProcessorRules.GetID_PRESUPUESTOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPresupuestosID_PRESUPUESTO]; +end; + +function TObrasEjecucionesPresupuestosBusinessProcessorRules.GetID_PRESUPUESTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPresupuestosID_PRESUPUESTO]); +end; + +function TObrasEjecucionesPresupuestosBusinessProcessorRules.GetOldID_PRESUPUESTOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPresupuestosID_PRESUPUESTO]; +end; + +function TObrasEjecucionesPresupuestosBusinessProcessorRules.GetOldID_PRESUPUESTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPresupuestosID_PRESUPUESTO]); +end; + +procedure TObrasEjecucionesPresupuestosBusinessProcessorRules.SetID_PRESUPUESTOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPresupuestosID_PRESUPUESTO] := aValue; +end; + +procedure TObrasEjecucionesPresupuestosBusinessProcessorRules.SetID_PRESUPUESTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPresupuestosID_PRESUPUESTO] := Null; +end; + +function TObrasEjecucionesPresupuestosBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPresupuestosREFERENCIA]; +end; + +function TObrasEjecucionesPresupuestosBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPresupuestosREFERENCIA]); +end; + +function TObrasEjecucionesPresupuestosBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPresupuestosREFERENCIA]; +end; + +function TObrasEjecucionesPresupuestosBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPresupuestosREFERENCIA]); +end; + +procedure TObrasEjecucionesPresupuestosBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPresupuestosREFERENCIA] := aValue; +end; + +procedure TObrasEjecucionesPresupuestosBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPresupuestosREFERENCIA] := Null; +end; + +function TObrasEjecucionesPresupuestosBusinessProcessorRules.GetFECHA_PRESUPUESTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPresupuestosFECHA_PRESUPUESTO]; +end; + +function TObrasEjecucionesPresupuestosBusinessProcessorRules.GetFECHA_PRESUPUESTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPresupuestosFECHA_PRESUPUESTO]); +end; + +function TObrasEjecucionesPresupuestosBusinessProcessorRules.GetOldFECHA_PRESUPUESTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPresupuestosFECHA_PRESUPUESTO]; +end; + +function TObrasEjecucionesPresupuestosBusinessProcessorRules.GetOldFECHA_PRESUPUESTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPresupuestosFECHA_PRESUPUESTO]); +end; + +procedure TObrasEjecucionesPresupuestosBusinessProcessorRules.SetFECHA_PRESUPUESTOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPresupuestosFECHA_PRESUPUESTO] := aValue; +end; + +procedure TObrasEjecucionesPresupuestosBusinessProcessorRules.SetFECHA_PRESUPUESTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPresupuestosFECHA_PRESUPUESTO] := Null; +end; + +function TObrasEjecucionesPresupuestosBusinessProcessorRules.GetSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPresupuestosSITUACION]; +end; + +function TObrasEjecucionesPresupuestosBusinessProcessorRules.GetSITUACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPresupuestosSITUACION]); +end; + +function TObrasEjecucionesPresupuestosBusinessProcessorRules.GetOldSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPresupuestosSITUACION]; +end; + +function TObrasEjecucionesPresupuestosBusinessProcessorRules.GetOldSITUACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPresupuestosSITUACION]); +end; + +procedure TObrasEjecucionesPresupuestosBusinessProcessorRules.SetSITUACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPresupuestosSITUACION] := aValue; +end; + +procedure TObrasEjecucionesPresupuestosBusinessProcessorRules.SetSITUACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPresupuestosSITUACION] := Null; +end; + +function TObrasEjecucionesPresupuestosBusinessProcessorRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPresupuestosBASE_IMPONIBLE]; +end; + +function TObrasEjecucionesPresupuestosBusinessProcessorRules.GetBASE_IMPONIBLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPresupuestosBASE_IMPONIBLE]); +end; + +function TObrasEjecucionesPresupuestosBusinessProcessorRules.GetOldBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPresupuestosBASE_IMPONIBLE]; +end; + +function TObrasEjecucionesPresupuestosBusinessProcessorRules.GetOldBASE_IMPONIBLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPresupuestosBASE_IMPONIBLE]); +end; + +procedure TObrasEjecucionesPresupuestosBusinessProcessorRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPresupuestosBASE_IMPONIBLE] := aValue; +end; + +procedure TObrasEjecucionesPresupuestosBusinessProcessorRules.SetBASE_IMPONIBLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPresupuestosBASE_IMPONIBLE] := Null; +end; + +function TObrasEjecucionesPresupuestosBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPresupuestosNOMBRE]; +end; + +function TObrasEjecucionesPresupuestosBusinessProcessorRules.GetNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPresupuestosNOMBRE]); +end; + +function TObrasEjecucionesPresupuestosBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPresupuestosNOMBRE]; +end; + +function TObrasEjecucionesPresupuestosBusinessProcessorRules.GetOldNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPresupuestosNOMBRE]); +end; + +procedure TObrasEjecucionesPresupuestosBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPresupuestosNOMBRE] := aValue; +end; + +procedure TObrasEjecucionesPresupuestosBusinessProcessorRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPresupuestosNOMBRE] := Null; +end; + + +{ TObrasEjecucionesPedidosProveedorBusinessProcessorRules } +constructor TObrasEjecucionesPedidosProveedorBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TObrasEjecucionesPedidosProveedorBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorID]; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorID]); +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPedidosProveedorID]; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPedidosProveedorID]); +end; + +procedure TObrasEjecucionesPedidosProveedorBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorID] := aValue; +end; + +procedure TObrasEjecucionesPedidosProveedorBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorID] := Null; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetID_EJECUCIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorID_EJECUCION]; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetID_EJECUCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorID_EJECUCION]); +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetOldID_EJECUCIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPedidosProveedorID_EJECUCION]; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetOldID_EJECUCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPedidosProveedorID_EJECUCION]); +end; + +procedure TObrasEjecucionesPedidosProveedorBusinessProcessorRules.SetID_EJECUCIONValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorID_EJECUCION] := aValue; +end; + +procedure TObrasEjecucionesPedidosProveedorBusinessProcessorRules.SetID_EJECUCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorID_EJECUCION] := Null; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetID_PEDIDOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorID_PEDIDO]; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetID_PEDIDOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorID_PEDIDO]); +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetOldID_PEDIDOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPedidosProveedorID_PEDIDO]; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetOldID_PEDIDOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPedidosProveedorID_PEDIDO]); +end; + +procedure TObrasEjecucionesPedidosProveedorBusinessProcessorRules.SetID_PEDIDOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorID_PEDIDO] := aValue; +end; + +procedure TObrasEjecucionesPedidosProveedorBusinessProcessorRules.SetID_PEDIDOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorID_PEDIDO] := Null; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetID_PRESUPUESTOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorID_PRESUPUESTO]; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetID_PRESUPUESTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorID_PRESUPUESTO]); +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetOldID_PRESUPUESTOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPedidosProveedorID_PRESUPUESTO]; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetOldID_PRESUPUESTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPedidosProveedorID_PRESUPUESTO]); +end; + +procedure TObrasEjecucionesPedidosProveedorBusinessProcessorRules.SetID_PRESUPUESTOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorID_PRESUPUESTO] := aValue; +end; + +procedure TObrasEjecucionesPedidosProveedorBusinessProcessorRules.SetID_PRESUPUESTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorID_PRESUPUESTO] := Null; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorSITUACION]; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetSITUACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorSITUACION]); +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetOldSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPedidosProveedorSITUACION]; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetOldSITUACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPedidosProveedorSITUACION]); +end; + +procedure TObrasEjecucionesPedidosProveedorBusinessProcessorRules.SetSITUACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorSITUACION] := aValue; +end; + +procedure TObrasEjecucionesPedidosProveedorBusinessProcessorRules.SetSITUACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorSITUACION] := Null; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorID_PROVEEDOR]; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetID_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorID_PROVEEDOR]); +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetOldID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPedidosProveedorID_PROVEEDOR]; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetOldID_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPedidosProveedorID_PROVEEDOR]); +end; + +procedure TObrasEjecucionesPedidosProveedorBusinessProcessorRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorID_PROVEEDOR] := aValue; +end; + +procedure TObrasEjecucionesPedidosProveedorBusinessProcessorRules.SetID_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorID_PROVEEDOR] := Null; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorNOMBRE]; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorNOMBRE]); +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPedidosProveedorNOMBRE]; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetOldNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPedidosProveedorNOMBRE]); +end; + +procedure TObrasEjecucionesPedidosProveedorBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorNOMBRE] := aValue; +end; + +procedure TObrasEjecucionesPedidosProveedorBusinessProcessorRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorNOMBRE] := Null; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorREFERENCIA]; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorREFERENCIA]); +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPedidosProveedorREFERENCIA]; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPedidosProveedorREFERENCIA]); +end; + +procedure TObrasEjecucionesPedidosProveedorBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorREFERENCIA] := aValue; +end; + +procedure TObrasEjecucionesPedidosProveedorBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorREFERENCIA] := Null; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetFECHA_PEDIDOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorFECHA_PEDIDO]; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetFECHA_PEDIDOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorFECHA_PEDIDO]); +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetOldFECHA_PEDIDOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPedidosProveedorFECHA_PEDIDO]; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetOldFECHA_PEDIDOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPedidosProveedorFECHA_PEDIDO]); +end; + +procedure TObrasEjecucionesPedidosProveedorBusinessProcessorRules.SetFECHA_PEDIDOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorFECHA_PEDIDO] := aValue; +end; + +procedure TObrasEjecucionesPedidosProveedorBusinessProcessorRules.SetFECHA_PEDIDOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorFECHA_PEDIDO] := Null; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetFECHA_ENTREGAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorFECHA_ENTREGA]; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetFECHA_ENTREGAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorFECHA_ENTREGA]); +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetOldFECHA_ENTREGAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPedidosProveedorFECHA_ENTREGA]; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetOldFECHA_ENTREGAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPedidosProveedorFECHA_ENTREGA]); +end; + +procedure TObrasEjecucionesPedidosProveedorBusinessProcessorRules.SetFECHA_ENTREGAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorFECHA_ENTREGA] := aValue; +end; + +procedure TObrasEjecucionesPedidosProveedorBusinessProcessorRules.SetFECHA_ENTREGAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorFECHA_ENTREGA] := Null; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetID_ALMACENValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorID_ALMACEN]; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetID_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorID_ALMACEN]); +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetOldID_ALMACENValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPedidosProveedorID_ALMACEN]; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetOldID_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPedidosProveedorID_ALMACEN]); +end; + +procedure TObrasEjecucionesPedidosProveedorBusinessProcessorRules.SetID_ALMACENValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorID_ALMACEN] := aValue; +end; + +procedure TObrasEjecucionesPedidosProveedorBusinessProcessorRules.SetID_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorID_ALMACEN] := Null; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetNOMBRE_ALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorNOMBRE_ALMACEN]; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetNOMBRE_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorNOMBRE_ALMACEN]); +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetOldNOMBRE_ALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPedidosProveedorNOMBRE_ALMACEN]; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetOldNOMBRE_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPedidosProveedorNOMBRE_ALMACEN]); +end; + +procedure TObrasEjecucionesPedidosProveedorBusinessProcessorRules.SetNOMBRE_ALMACENValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorNOMBRE_ALMACEN] := aValue; +end; + +procedure TObrasEjecucionesPedidosProveedorBusinessProcessorRules.SetNOMBRE_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorNOMBRE_ALMACEN] := Null; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetID_OBRAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorID_OBRA]; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetID_OBRAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorID_OBRA]); +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetOldID_OBRAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPedidosProveedorID_OBRA]; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetOldID_OBRAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPedidosProveedorID_OBRA]); +end; + +procedure TObrasEjecucionesPedidosProveedorBusinessProcessorRules.SetID_OBRAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorID_OBRA] := aValue; +end; + +procedure TObrasEjecucionesPedidosProveedorBusinessProcessorRules.SetID_OBRAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorID_OBRA] := Null; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetNOMBRE_OBRAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorNOMBRE_OBRA]; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetNOMBRE_OBRAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorNOMBRE_OBRA]); +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetOldNOMBRE_OBRAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPedidosProveedorNOMBRE_OBRA]; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetOldNOMBRE_OBRAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPedidosProveedorNOMBRE_OBRA]); +end; + +procedure TObrasEjecucionesPedidosProveedorBusinessProcessorRules.SetNOMBRE_OBRAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorNOMBRE_OBRA] := aValue; +end; + +procedure TObrasEjecucionesPedidosProveedorBusinessProcessorRules.SetNOMBRE_OBRAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorNOMBRE_OBRA] := Null; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorBASE_IMPONIBLE]; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetBASE_IMPONIBLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorBASE_IMPONIBLE]); +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetOldBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPedidosProveedorBASE_IMPONIBLE]; +end; + +function TObrasEjecucionesPedidosProveedorBusinessProcessorRules.GetOldBASE_IMPONIBLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesPedidosProveedorBASE_IMPONIBLE]); +end; + +procedure TObrasEjecucionesPedidosProveedorBusinessProcessorRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorBASE_IMPONIBLE] := aValue; +end; + +procedure TObrasEjecucionesPedidosProveedorBusinessProcessorRules.SetBASE_IMPONIBLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesPedidosProveedorBASE_IMPONIBLE] := Null; +end; + + +{ TObrasEjecucionesBusinessProcessorRules } +constructor TObrasEjecucionesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := OBSERVACIONES_OnChange; + f_OBSERVACIONES := NewROStrings(StrList,True); +end; + +destructor TObrasEjecucionesBusinessProcessorRules.Destroy; +begin + inherited; +end; + +procedure TObrasEjecucionesBusinessProcessorRules.OBSERVACIONES_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesOBSERVACIONES] := TStringList(Sender).Text; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID]); +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesID]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesID]); +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID] := aValue; +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID] := Null; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetID_OBRAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID_OBRA]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetID_OBRAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID_OBRA]); +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldID_OBRAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesID_OBRA]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldID_OBRAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesID_OBRA]); +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetID_OBRAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID_OBRA] := aValue; +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetID_OBRAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID_OBRA] := Null; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetFECHA_INICIOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_INICIO]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetFECHA_INICIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_INICIO]); +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldFECHA_INICIOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesFECHA_INICIO]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldFECHA_INICIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesFECHA_INICIO]); +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetFECHA_INICIOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_INICIO] := aValue; +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetFECHA_INICIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_INICIO] := Null; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetFECHA_FINValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_FIN]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetFECHA_FINIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_FIN]); +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldFECHA_FINValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesFECHA_FIN]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldFECHA_FINIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesFECHA_FIN]); +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetFECHA_FINValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_FIN] := aValue; +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetFECHA_FINIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_FIN] := Null; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetID_SUBCONTRATAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID_SUBCONTRATA]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetID_SUBCONTRATAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID_SUBCONTRATA]); +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldID_SUBCONTRATAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesID_SUBCONTRATA]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldID_SUBCONTRATAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesID_SUBCONTRATA]); +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetID_SUBCONTRATAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID_SUBCONTRATA] := aValue; +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetID_SUBCONTRATAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID_SUBCONTRATA] := Null; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesNOMBRE]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesNOMBRE]); +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesNOMBRE]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesNOMBRE]); +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesNOMBRE] := aValue; +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesNOMBRE] := Null; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetIMPORTE_GASTOSValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_GASTOS]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetIMPORTE_GASTOSIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_GASTOS]); +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldIMPORTE_GASTOSValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesIMPORTE_GASTOS]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldIMPORTE_GASTOSIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesIMPORTE_GASTOS]); +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetIMPORTE_GASTOSValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_GASTOS] := aValue; +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetIMPORTE_GASTOSIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_GASTOS] := Null; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetIMPORTE_INGRESOSValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_INGRESOS]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetIMPORTE_INGRESOSIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_INGRESOS]); +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldIMPORTE_INGRESOSValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesIMPORTE_INGRESOS]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldIMPORTE_INGRESOSIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesIMPORTE_INGRESOS]); +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetIMPORTE_INGRESOSValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_INGRESOS] := aValue; +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetIMPORTE_INGRESOSIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_INGRESOS] := Null; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_TOTAL]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_TOTAL]); +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesIMPORTE_TOTAL]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesIMPORTE_TOTAL]); +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_TOTAL] := aValue; +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_TOTAL] := Null; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings; +begin + result := f_OBSERVACIONES; + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesOBSERVACIONES]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOBSERVACIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesOBSERVACIONES]); +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesOBSERVACIONES]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldOBSERVACIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesOBSERVACIONES]); +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetOBSERVACIONESIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesOBSERVACIONES] := Null; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_ALTA]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_ALTA]); +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesFECHA_ALTA]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesFECHA_ALTA]); +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_ALTA] := aValue; +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_ALTA] := Null; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_MODIFICACION]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_MODIFICACION]); +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesFECHA_MODIFICACION]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesFECHA_MODIFICACION]); +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_MODIFICACION] := aValue; +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_MODIFICACION] := Null; +end; + + +initialization + RegisterBusinessProcessorRules(RID_ObrasDelta, TObrasBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_ObrasEjecucionesPresupuestosDelta, TObrasEjecucionesPresupuestosBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_ObrasEjecucionesPedidosProveedorDelta, TObrasEjecucionesPedidosProveedorBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_ObrasEjecucionesDelta, TObrasEjecucionesBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Obras/Model/uBizObras.dcu b/Source/Modulos/Obras/Model/uBizObras.dcu new file mode 100644 index 0000000..af2fbf1 Binary files /dev/null and b/Source/Modulos/Obras/Model/uBizObras.dcu differ diff --git a/Source/Modulos/Obras/Model/uBizObras.pas b/Source/Modulos/Obras/Model/uBizObras.pas new file mode 100644 index 0000000..101ec2c --- /dev/null +++ b/Source/Modulos/Obras/Model/uBizObras.pas @@ -0,0 +1,570 @@ +unit uBizObras; + +interface + +uses + uDAInterfaces, uDADataTable, schObrasClient_Intf, uBizContactos, + uDBSelectionListUtils; + +const + BIZ_CLIENT_OBRA = 'Client.Obra'; + BIZ_CLIENT_OBRA_EJECUCION = 'Client.Obra.Ejecucion'; +// BIZ_CLIENT_OBRA_EJECUCIONES_CERRADAS = 'Client.Obra.EjecucionesCerradas'; +// BIZ_CLIENT_OBRA_EJECUCION_ENCURSO = 'Client.Obra.EjecucionEnCurso'; + BIZ_CLIENT_OBRA_EJECUCION_PRESUPUESTO = 'Client.Obra.Ejecucion.Presupuesto'; + BIZ_CLIENT_OBRA_EJECUCION_PEDIDO_PROVEEDOR = 'Client.Obra.Ejecucion.PedidoProveedor'; + +type + IBizEjecucionPresupuestos = interface(IObrasEjecucionesPresupuestos) + ['{F335B047-7559-4C40-8DA7-E06719D1F683}'] + function EsNuevo : Boolean; + end; + + IBizEjecucionPedidosProveedor = interface(IObrasEjecucionesPedidosProveedor) + ['{404DB8A7-7D36-459B-8C6A-33139B40F2C5}'] + function EsNuevo : Boolean; + end; + + IBizEjecucionesObra = interface(IObrasEjecuciones) + ['{6BAFA32B-39A5-4BC3-9F16-97A36745C3D9}'] + function EsNuevo : Boolean; + function EnCurso : Boolean; + procedure RecalcularBeneficio; + + function GetPresupuestos: IBizEjecucionPresupuestos; + procedure SetPresupuestos(Value: IBizEjecucionPresupuestos); + property Presupuestos: IBizEjecucionPresupuestos read GetPresupuestos write SetPresupuestos; + + function GetPedidos: IBizEjecucionPedidosProveedor; + procedure SetPedidos(Value: IBizEjecucionPedidosProveedor); + property Pedidos: IBizEjecucionPedidosProveedor read GetPedidos write SetPedidos; + end; + +// IBizEjecucionesCerradasObra = interface(IObrasEjecucionesTerminadas) +// ['{08CB6A7C-058C-4A07-AFED-64D861296BFE}'] +// {procedure SetSubcontrata(AValue : IBizProveedor); +// function GetSubcontrata : IBizProveedor; +// property Subcontrata : IBizProveedor read GetSubcontrata write SetSubcontrata;} +// +// // Esta propidad es para que el controlador pueda acceder directamente +// // a la propiedad Cliente +// {procedure _SetSubcontrata(AValue : IBizProveedor); +// function _GetSubcontrata : IBizProveedor; +// property _Subcontrata : IBizProveedor read _GetSubcontrata write _SetSubcontrata;} +// end; +// +// +// IBizEjecucionEnCursoObra = interface(IObrasEjecucionesEnCurso) +// ['{DDEE3280-32B0-4C5C-AC14-9AADD641407D}'] +// function EsNuevo : Boolean; +// {procedure SetSubcontrata(AValue : IBizProveedor); +// function GetSubcontrata : IBizProveedor; +// property Subcontrata : IBizProveedor read GetSubcontrata write SetSubcontrata;} +// +// // Esta propidad es para que el controlador pueda acceder directamente +// // a la propiedad Cliente +// {procedure _SetSubcontrata(AValue : IBizProveedor); +// function _GetSubcontrata : IBizProveedor; +// property _Subcontrata : IBizProveedor read _GetSubcontrata write _SetSubcontrata;} +// end; + + + IBizObra = interface(IObras) + ['{96A7EC59-23CB-44FF-B3CF-8679C6F001C8}'] + + procedure SetCliente(AValue : IBizCliente); + function GetCliente : IBizCliente; + property Cliente : IBizCliente read GetCliente write SetCliente; + + // Esta propidad es para que el controlador pueda acceder directamente + // a la propiedad Cliente + procedure _SetCliente(AValue : IBizCliente); + function _GetCliente : IBizCliente; + property _Cliente : IBizCliente read _GetCliente write _SetCliente; + + function GetEjecuciones: IBizEjecucionesObra; + procedure SetEjecuciones(Value: IBizEjecucionesObra); + property Ejecuciones: IBizEjecucionesObra read GetEjecuciones write SetEjecuciones; + + function EsNuevo : Boolean; + end; + + + TBizEjecucionPresupuestos = class(TObrasEjecucionesPresupuestosDataTableRules, IBizEjecucionPresupuestos) + protected + procedure BeforeInsert(Sender: TDADataTable); override; + public + function EsNuevo : Boolean; + end; + + + TBizEjecucionPedidosProveedor = class(TObrasEjecucionesPedidosProveedorDataTableRules, IBizEjecucionPedidosProveedor) + protected + procedure BeforeInsert(Sender: TDADataTable); override; + public + function EsNuevo : Boolean; + end; + + + TBizEjecucionesObra = class(TObrasEjecucionesDataTableRules, IBizEjecucionesObra) + protected + FPresupuestos : IBizEjecucionPresupuestos; + FPresupuestosLink : TDADataSource; + + FPedidos : IBizEjecucionPedidosProveedor; + FPedidosLink : TDADataSource; + + procedure BeforeInsert(Sender: TDADataTable); override; + procedure OnNewRecord(Sender: TDADataTable); override; + + function GetPresupuestos: IBizEjecucionPresupuestos; + procedure SetPresupuestos(Value: IBizEjecucionPresupuestos); + + function GetPedidos: IBizEjecucionPedidosProveedor; + procedure SetPedidos(Value: IBizEjecucionPedidosProveedor); + public + function EsNuevo : Boolean; + function EnCurso : Boolean; + procedure RecalcularBeneficio; + + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + property Presupuestos: IBizEjecucionPresupuestos read GetPresupuestos write SetPresupuestos; + property Pedidos: IBizEjecucionPedidosProveedor read GetPedidos write SetPedidos; + end; + + +// TBizEjecucionesCerradasObra = class(TObrasEjecucionesTerminadasDataTableRules, IBizEjecucionesCerradasObra) +// protected +//// FSubcontrata : IBizProveedor; +// +// procedure BeforeInsert(Sender: TDADataTable); override; +// procedure OnNewRecord(Sender: TDADataTable); override; +// +// +//{ procedure _SetSubcontrata(AValue : IBizProveedor); +// function _GetSubcontrata : IBizProveedor; +// +// procedure SetSubcontrata(AValue : IBizProveedor); +// function GetSubcontrata : IBizProveedor;} +// public +// constructor Create(aDataTable: TDADataTable); override; +// destructor Destroy; override; +// +//{ property Subcontrata : IBizProveedor read GetSubcontrata write SetSubcontrata; +// property _Subcontrata : IBizProveedor read _GetSubcontrata write _SetSubcontrata;} +// end; +// +// TBizEjecucionEnCursoObra = class(TObrasEjecucionesEnCursoDataTableRules, IBizEjecucionEnCursoObra) +// protected +//// FSubcontrata : IBizProveedor; +// +// procedure BeforeInsert(Sender: TDADataTable); override; +// procedure OnNewRecord(Sender: TDADataTable); override; +// +//{ procedure _SetSubcontrata(AValue : IBizProveedor); +// function _GetSubcontrata : IBizProveedor; +// +// procedure SetSubcontrata(AValue : IBizProveedor); +// function GetSubcontrata : IBizProveedor;} +// public +// function EsNuevo : Boolean; +// constructor Create(aDataTable: TDADataTable); override; +// destructor Destroy; override; +// +//{ property Subcontrata : IBizProveedor read GetSubcontrata write SetSubcontrata; +// property _Subcontrata : IBizProveedor read _GetSubcontrata write _SetSubcontrata;} +// end; + + + TBizObra = class(TObrasDataTableRules, IBizObra, ISeleccionable) + protected + FSeleccionableInterface : ISeleccionable; + FCliente : IBizCliente; + +// FEjecucionEnCurso : IBizEjecucionEnCursoObra; +// FEjecucionEnCursoLink : TDADataSource; + + FEjecuciones : IBizEjecucionesObra; + FEjecucionesLink : TDADataSource; + + procedure SetCliente(AValue : IBizCliente); + function GetCliente : IBizCliente; + + procedure _SetCliente(AValue : IBizCliente); + function _GetCliente : IBizCliente; + + function GetEjecuciones: IBizEjecucionesObra; + procedure SetEjecuciones(Value: IBizEjecucionesObra); + +// function GetEjecucionEnCurso: IBizEjecucionEnCursoObra; +// procedure SetEjecucionEnCurso(Value: IBizEjecucionEnCursoObra); + + procedure OnNewRecord(Sender: TDADataTable); override; + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + function EsNuevo : Boolean; + property Cliente : IBizCliente read GetCliente write SetCliente; + property _Cliente : IBizCliente read _GetCliente write _SetCliente; + property Ejecuciones: IBizEjecucionesObra read GetEjecuciones write SetEjecuciones; +// property EjecucionEnCurso: IBizEjecucionEnCursoObra read GetEjecucionEnCurso write SetEjecucionEnCurso; + + property SeleccionableInterface : ISeleccionable read FSeleccionableInterface + write FSeleccionableInterface implements ISeleccionable; + end; + +implementation + +uses + uFactuGES_App, DB, DateUtils, SysUtils, uDataTableUtils; + +{ TBizEjecucionesCerradasObra } + +procedure TBizEjecucionesObra.BeforeInsert(Sender: TDADataTable); +var + AMasterTable : TDADataTable; +begin + inherited; + AMasterTable := DataTable.GetMasterDataTable; + if Assigned(AMasterTable) and (AMasterTable.State = dsInsert) then + AMasterTable.Post; +end; + +constructor TBizEjecucionesObra.Create(aDataTable: TDADataTable); +begin + inherited; + FPresupuestos := NIL; + FPresupuestosLink := TDADataSource.Create(NIL); + FPresupuestosLink.DataTable := aDataTable; + + FPedidos := NIL; + FPedidosLink := TDADataSource.Create(NIL); + FPedidosLink.DataTable := aDataTable; +end; + +destructor TBizEjecucionesObra.Destroy; +begin + FPresupuestos := NIL; + FreeANDNIL(FPresupuestosLink); + + FPedidos := NIL; + FreeANDNIL(FPedidosLink); + + inherited; +end; + +function TBizEjecucionesObra.EnCurso: Boolean; +begin + Result := FECHA_FINIsNull; +end; + +function TBizEjecucionesObra.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +function TBizEjecucionesObra.GetPedidos: IBizEjecucionPedidosProveedor; +begin + Result := FPedidos; +end; + +function TBizEjecucionesObra.GetPresupuestos: IBizEjecucionPresupuestos; +begin + Result := FPresupuestos; +end; + +procedure TBizEjecucionesObra.OnNewRecord(Sender: TDADataTable); +begin + inherited; + FECHA_INICIO := DateOf(Now); +end; + +procedure TBizEjecucionesObra.RecalcularBeneficio; +begin + Edit; + IMPORTE_TOTAL := IMPORTE_INGRESOS - IMPORTE_GASTOS; +end; + +procedure TBizEjecucionesObra.SetPedidos( + Value: IBizEjecucionPedidosProveedor); +begin + FPedidos := Value; + EnlazarMaestroDetalle(FPedidosLink, FPedidos); +end; + +procedure TBizEjecucionesObra.SetPresupuestos(Value: IBizEjecucionPresupuestos); +begin + FPresupuestos := Value; + EnlazarMaestroDetalle(FPresupuestosLink, FPresupuestos); +end; + +{procedure TBizEjecucionesCerradasObra.SetSubcontrata(AValue: IBizProveedor); +var + bEnEdicion : Boolean; +begin + FSubcontrata := AValue; + + if Assigned(FSubcontrata) then + begin + if not FSubcontrata.DataTable.Active then + FSubcontrata.DataTable.Active := True; + + if ID_SUBCONTRATA <> FSubcontrata.ID then + begin + bEnEdicion := (DataTable.State in dsEditModes); + if not bEnEdicion then + DataTable.Edit; + + ID_SUBCONTRATA := FSubcontrata.ID; + + DataTable.Post; //Muy importante ya que es necesario hacer un post de la cabecera antes de aadir detalles + //si se quita el id de la cabecera y los detalles se desincroniza + if bEnEdicion then + DataTable.Edit; + end; + end; +end;} + +{function TBizEjecucionesCerradasObra._GetSubcontrata: IBizProveedor; +begin + Result := FSubcontrata; +end; + +procedure TBizEjecucionesCerradasObra._SetSubcontrata(AValue: IBizProveedor); +begin + FSubcontrata := AValue; +end;} + +{ TBizEjecucionEnCursoObra } + +//procedure TBizEjecucionEnCursoObra.BeforeInsert(Sender: TDADataTable); +//var +// AMasterTable : TDADataTable; +//begin +// inherited; +// AMasterTable := DataTable.GetMasterDataTable; +// if Assigned(AMasterTable) and (AMasterTable.State = dsInsert) then +// AMasterTable.Post; +//end; +// +//constructor TBizEjecucionEnCursoObra.Create(aDataTable: TDADataTable); +//begin +// inherited; +//// FSubcontrata := NIL; +//end; +// +//destructor TBizEjecucionEnCursoObra.Destroy; +//begin +//// FSubcontrata := NIL; +// inherited; +//end; +// +//function TBizEjecucionEnCursoObra.EsNuevo: Boolean; +//begin +// Result := (ID < 0); +//end; +//{ +//function TBizEjecucionEnCursoObra.GetSubcontrata: IBizProveedor; +//begin +// Result := FSubcontrata; +//end;} +// +//procedure TBizEjecucionEnCursoObra.OnNewRecord(Sender: TDADataTable); +//begin +// inherited; +// FECHA_INICIO := DateOf(Now); +//end; + +{procedure TBizEjecucionEnCursoObra.SetSubcontrata(AValue: IBizProveedor); +var + bEnEdicion : Boolean; +begin + FSubcontrata := AValue; + + if Assigned(FSubcontrata) then + begin + if not FSubcontrata.DataTable.Active then + FSubcontrata.DataTable.Active := True; + + if ID_SUBCONTRATA <> FSubcontrata.ID then + begin + bEnEdicion := (DataTable.State in dsEditModes); + if not bEnEdicion then + DataTable.Edit; + + ID_SUBCONTRATA := FSubcontrata.ID; + + DataTable.Post; //Muy importante ya que es necesario hacer un post de la cabecera antes de aadir detalles + //si se quita el id de la cabecera y los detalles se desincroniza + if bEnEdicion then + DataTable.Edit; + end; + end; +end;} + +{function TBizEjecucionEnCursoObra._GetSubcontrata: IBizProveedor; +begin + Result := FSubcontrata; +end;} + +{procedure TBizEjecucionEnCursoObra._SetSubcontrata(AValue: IBizProveedor); +begin + FSubcontrata := AValue; +end;} + +{ TBizObra } + +constructor TBizObra.Create(aDataTable: TDADataTable); +begin + inherited; + FCliente := NIL; + +// FEjecucionEnCurso := NIL; +// FEjecucionEnCursoLink := TDADataSource.Create(NIL); +// FEjecucionEnCursoLink.DataTable := aDataTable; + + FEjecuciones := NIL; + FEjecucionesLink := TDADataSource.Create(NIL); + FEjecucionesLink.DataTable := aDataTable; + + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +destructor TBizObra.Destroy; +begin + FCliente := NIL; + +// FEjecucionEnCurso := NIL; +// FreeANDNIL(FEjecucionEnCursoLink); + + FEjecuciones := NIL; + FreeANDNIL(FEjecucionesLink); + + FSeleccionableInterface := NIL; + inherited; +end; + +function TBizObra.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +function TBizObra.GetCliente: IBizCliente; +begin + Result := FCliente; +end; + +//function TBizObra.GetEjecucionEnCurso: IBizEjecucionEnCursoObra; +//begin +// Result := FEjecucionEnCurso; +//end; + +function TBizObra.GetEjecuciones: IBizEjecucionesObra; +begin + Result := FEjecuciones; +end; + +procedure TBizObra.OnNewRecord(Sender: TDADataTable); +begin + inherited; + ID_EMPRESA := AppFactuGES.EmpresaActiva.ID; + USUARIO := AppFactuGES.UsuarioActivo.UserName; +end; + +procedure TBizObra.SetCliente(AValue: IBizCliente); +var + bEnEdicion : Boolean; +begin + FCliente := AValue; + + if Assigned(FCliente) then + begin + if not FCliente.DataTable.Active then + FCliente.DataTable.Active := True; + + if ID_Cliente <> FCliente.ID then + begin + bEnEdicion := (DataTable.State in dsEditModes); + if not bEnEdicion then + DataTable.Edit; + + ID_CLIENTE := FCliente.ID; + + DataTable.Post; //Muy importante ya que es necesario hacer un post de la cabecera antes de aadir detalles + //si se quita el id de la cabecera y los detalles se desincroniza + if bEnEdicion then + DataTable.Edit; + end; + end; +end; + +//procedure TBizObra.SetEjecucionEnCurso(Value: IBizEjecucionEnCursoObra); +//begin +// FEjecucionEnCurso := Value; +// EnlazarMaestroDetalle(FEjecucionEnCursoLink, FEjecucionEnCurso); +//end; + +procedure TBizObra.SetEjecuciones(Value: IBizEjecucionesObra); +begin + FEjecuciones := Value; + EnlazarMaestroDetalle(FEjecucionesLink, FEjecuciones); +end; + +function TBizObra._GetCliente: IBizCliente; +begin + Result := FCliente; +end; + +procedure TBizObra._SetCliente(AValue: IBizCliente); +begin + FCliente := AValue; +end; + +{ TBizEjecucionPresupuestos } + +procedure TBizEjecucionPresupuestos.BeforeInsert(Sender: TDADataTable); +var + AMasterTable : TDADataTable; +begin + inherited; + AMasterTable := DataTable.GetMasterDataTable; + if Assigned(AMasterTable) and (AMasterTable.State = dsInsert) then + AMasterTable.Post; +end; + +function TBizEjecucionPresupuestos.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +{ TBizEjecucionPedidosProveedor } + +procedure TBizEjecucionPedidosProveedor.BeforeInsert(Sender: TDADataTable); +var + AMasterTable : TDADataTable; +begin + inherited; + AMasterTable := DataTable.GetMasterDataTable; + if Assigned(AMasterTable) and (AMasterTable.State = dsInsert) then + AMasterTable.Post; +end; + +function TBizEjecucionPedidosProveedor.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_OBRA, TBizObra); + RegisterDataTableRules(BIz_CLIENT_OBRA_EJECUCION, TBizEjecucionesObra); +// RegisterDataTableRules(BIz_CLIENT_OBRA_EJECUCIONES_CERRADAS, TBizEjecucionesCerradasObra); +// RegisterDataTableRules(BIz_CLIENT_OBRA_EJECUCION_ENCURSO, TBizEjecucionEnCursoObra); + RegisterDataTableRules(BIZ_CLIENT_OBRA_EJECUCION_PRESUPUESTO, TBizEjecucionPresupuestos); + RegisterDataTableRules(BIZ_CLIENT_OBRA_EJECUCION_PEDIDO_PROVEEDOR, TBizEjecucionPedidosProveedor); + +finalization + +end. diff --git a/Source/Modulos/Obras/Model/uBizObrasServer.dcu b/Source/Modulos/Obras/Model/uBizObrasServer.dcu new file mode 100644 index 0000000..99c41b3 Binary files /dev/null and b/Source/Modulos/Obras/Model/uBizObrasServer.dcu differ diff --git a/Source/Modulos/Obras/Model/uBizObrasServer.pas b/Source/Modulos/Obras/Model/uBizObrasServer.pas new file mode 100644 index 0000000..b35db3b --- /dev/null +++ b/Source/Modulos/Obras/Model/uBizObrasServer.pas @@ -0,0 +1,140 @@ +unit uBizObrasServer; + +interface + +uses + SysUtils, schObrasServer_Intf, uDAInterfaces, + uDADataTable, uDABusinessProcessor, uDADelta; + +const + BIZ_SERVER_OBRA = 'Server.Obra'; + +type + TBizObrasServer = class(TObrasBusinessProcessorRules) + protected + procedure Insert_Datos_Obra(aChange: TDADeltaChange); + procedure Update_Datos_Obra(aChange: TDADeltaChange); + procedure Delete_Datos_Obra(aChange: TDADeltaChange); + + procedure AfterProcessChange(Sender: TDABusinessProcessor; + aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); override; + + procedure ProcessError(Sender: TDABusinessProcessor; + aChangeType: TDAChangeType; aChange: TDADeltaChange; + const aCommand: IDASQLCommand; var CanRemoveFromDelta: Boolean; + Error: Exception); override; + end; + + +implementation + +{ TBizObrasServer } + +uses + uDataModuleServer, uDAClasses, Variants, + schObrasClient_Intf, uBusinessUtils; + + +procedure TBizObrasServer.AfterProcessChange(Sender: TDABusinessProcessor; + aChange: TDADeltaChange; Processed: Boolean; var CanRemoveFromDelta: Boolean); +begin + inherited; + { Por defecto, mantenemos los deltas por si alguna tabla hija los necesita } + CanRemoveFromDelta := False; + + case aChange.ChangeType of + ctInsert: begin + Insert_Datos_Obra(aChange); + end; + ctUpdate: begin + Update_Datos_Obra(aChange); + end; + ctDelete: begin + Delete_Datos_Obra(aChange); + end; + end; +end; + +procedure TBizObrasServer.Delete_Datos_Obra(aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + ACommand := ASchema.NewCommand(ACurrentConn, 'Delete_OBRAS_DATOS'); + try + with ACommand do + begin + ParamByName('OLD_ID_ALMACEN').Value := aChange.OldValueByName[fld_ObrasID]; + Execute; + end; + finally + ACommand := NIL; + end; +end; + +procedure TBizObrasServer.Insert_Datos_Obra(aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + ACommand := ASchema.NewCommand(ACurrentConn, 'Insert_OBRAS_DATOS'); + try + with ACommand do + begin + ParamByName('ID_ALMACEN').Value := aChange.NewValueByName[fld_ObrasID]; + ParamByName('ID_CLIENTE').Value := aChange.NewValueByName[fld_ObrasID_CLIENTE]; + Execute; + end; + finally + ACommand := NIL; + end; +end; + +procedure TBizObrasServer.ProcessError(Sender: TDABusinessProcessor; + aChangeType: TDAChangeType; aChange: TDADeltaChange; + const aCommand: IDASQLCommand; var CanRemoveFromDelta: Boolean; + Error: Exception); +begin + inherited; + //IMPORTANTE ESTO HACE QUE EL CLIENTE SE ENTERE DEL ERROR Y LOS BP ASOCIADOS EN EL + //SCHEMA HAGAN ROLLBACK TAMBIEN +// CanRemoveFromDelta := True; +// raise Exception.Create(Error.Message); +end; + +procedure TBizObrasServer.Update_Datos_Obra(aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + ACommand := ASchema.NewCommand(ACurrentConn, 'Update_OBRAS_DATOS'); + try + with ACommand do + begin + ParamByName('OLD_ID_ALMACEN').Value := aChange.NewValueByName[fld_ObrasID]; + ParamByName('ID_CLIENTE').Value := aChange.NewValueByName[fld_ObrasID_CLIENTE]; + Execute; + end; + finally + ACommand := NIL; + end; +end; + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_OBRA, TBizObrasServer); + +end. + diff --git a/Source/Modulos/Obras/Obras_Group.bdsgroup b/Source/Modulos/Obras/Obras_Group.bdsgroup new file mode 100644 index 0000000..263af3e --- /dev/null +++ b/Source/Modulos/Obras/Obras_Group.bdsgroup @@ -0,0 +1,24 @@ + + + + + + + + + + + ..\..\Base\Base.bdsproj + ..\..\Base\GUIBase\GUIBase.bdsproj + ..\..\Base\Usuarios\Usuarios.bdsproj + Model\Obras_model.bdsproj + Data\Obras_data.bdsproj + Controller\Obras_controller.bdsproj + Views\Obras_view.bdsproj + Plugin\Obras_plugin.bdsproj + Base.bpl GUIBase.bpl Usuarios.bpl Obras_model.bpl Obras_data.bpl Obras_controller.bpl Obras_view.bpl Obras_plugin.bpl + + + + diff --git a/Source/Modulos/Obras/Obras_Group.groupproj b/Source/Modulos/Obras/Obras_Group.groupproj new file mode 100644 index 0000000..1747a41 --- /dev/null +++ b/Source/Modulos/Obras/Obras_Group.groupproj @@ -0,0 +1,174 @@ + + + {ddb31aa7-eff8-4cb6-8678-16376cc6ee3f} + + + + + + + + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Obras/Plugin/Obras_plugin.bdsproj b/Source/Modulos/Obras/Plugin/Obras_plugin.bdsproj new file mode 100644 index 0000000..f658783 --- /dev/null +++ b/Source/Modulos/Obras/Plugin/Obras_plugin.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + Obras_plugin.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Obras/Plugin/Obras_plugin.dcu b/Source/Modulos/Obras/Plugin/Obras_plugin.dcu new file mode 100644 index 0000000..63cde1d Binary files /dev/null and b/Source/Modulos/Obras/Plugin/Obras_plugin.dcu differ diff --git a/Source/Modulos/Obras/Plugin/Obras_plugin.dpk b/Source/Modulos/Obras/Plugin/Obras_plugin.dpk new file mode 100644 index 0000000..f641d13 Binary files /dev/null and b/Source/Modulos/Obras/Plugin/Obras_plugin.dpk differ diff --git a/Source/Modulos/Obras/Plugin/Obras_plugin.dproj b/Source/Modulos/Obras/Plugin/Obras_plugin.dproj new file mode 100644 index 0000000..828fc3d --- /dev/null +++ b/Source/Modulos/Obras/Plugin/Obras_plugin.dproj @@ -0,0 +1,537 @@ + + + {9314e2bb-2c1d-4afb-b75d-3ce39b2b3e1c} + Obras_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Obras_plugin.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Obras_plugin.dpk + + + + + MainSource + + + + + + + + diff --git a/Source/Modulos/Obras/Plugin/Obras_plugin.rc b/Source/Modulos/Obras/Plugin/Obras_plugin.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Obras/Plugin/Obras_plugin.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Obras/Plugin/Obras_plugin.res b/Source/Modulos/Obras/Plugin/Obras_plugin.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Obras/Plugin/Obras_plugin.res differ diff --git a/Source/Modulos/Obras/Plugin/uPluginObras.dcu b/Source/Modulos/Obras/Plugin/uPluginObras.dcu new file mode 100644 index 0000000..9dcf0c2 Binary files /dev/null and b/Source/Modulos/Obras/Plugin/uPluginObras.dcu differ diff --git a/Source/Modulos/Obras/Plugin/uPluginObras.dfm b/Source/Modulos/Obras/Plugin/uPluginObras.dfm new file mode 100644 index 0000000..6ce0f71 --- /dev/null +++ b/Source/Modulos/Obras/Plugin/uPluginObras.dfm @@ -0,0 +1,371 @@ +object PluginObras: TPluginObras + OldCreateOrder = True + Description = 'Log'#237'stica' + ModuleMenu = MainMenu + ModuleName = 'Obras' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software' + Version = '1.0.0' + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD25200000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001EF4944415478DAED954D6813 + 4114C77F936E93351E2CD2A6A661B137ED8798631524F4648A879C442F952610 + 1AF1528FDE042939892D06E9C9F8015E54F0A642A47E1B0F0945A46A453C188D + D4356D900A4DB21DB32B49A3B4B055EB297F1818E6CD7BBF796FDE30424AC966 + 4A34017F0D587E2EEA1BAECD5EACAF87C361914C26D774366D567021EC015C7D + 2A976F4E110A85300C836C364B2E97C3E7F3D1DBB30BB7DB5D0D5466654552F8 + 56E2F1C3FB16644380E4F50B0402012A950AA9540A4DD3D0751D5555E9EFDD8D + EA14381CE050B660867CF0E829914844D8069C1A1F231A8D924EA729168BE4F3 + 79F4AF3A3BBBBBD9AABA904609E110783ABD747674D0B6AD8DD9B977F633183E + 7198A1834132990C0BC545BE2F2DA1280A65A3C2C26281162446A94CCF1E3F9A + D74B577508A5D53E80C23E4E9EEBA7B5EAD4E274121F8F5B1799383F29BB7C1A + 9F3E7EE0F59BB7241209113C34240F0CEC677B7BBBFD2E727907E1CB34CB3782 + B8E2B745CD3E797CB5CB26EEF5F17EEEA5651B8D8D4AFF5EBFBD77506FD55BBF + 06AF01622323CCCC5CE2E8D955400DB2A112AD97C17A0053F64A543D79A3FE29 + C0D495ABD3D2E3D9C193672F3873FA88ED1235014DC07F04DCB9FBCADA343FFF + 9963C3839B03304F6F6AAD0C06FC3FE77F0C307FA64635FA98B68918D6C2D814 + E277DF1F53A696913F975F460000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + object actObras: TAction + Tag = 100 + Category = 'Log'#237'stica' + Caption = 'Obras' + ImageIndex = 0 + OnExecute = actObrasExecute + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object Ventas1: TMenuItem + Caption = 'Log'#237'stica' + object Obras1: TMenuItem + Tag = 120 + Action = actObras + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001014944415478DA63FCFFFF3F + 032580717019F0F324239CC36EFE9F3120B9E7BF8EE44F8696966AC69A9A5614 + 9B4062580D60D7E660F8D9EAC0C0DEBE1DACA9A4249BA1A7672A031F1F2B434A + 72225C6D5FFF2CB021780D686D6FFFFFF9E36786A7CF9E307CFBFE8DE1EFDF3F + 0C8CFFFE30884B483264A6A632AC5EBF1BBF0B5EBC78F17FCA94B970E77694FA + FF7FF5EA1543DFC2E38C392575FFBFBCB98BDF00F4003B3993F1FFEC8D3C0C73 + B67D86CB61C4C2CF4ACFFFD834C30C98BE818F61C1F68FD80D00B980E9AA3AC3 + BFDB8A385D80D70010A86D58F9BFB9219C3C178C00038E4F52FD3F73FB2BFC06 + 30323232E0CA60CB42B5FF7FBDAFC7907A6639DC0000A2ACDE77DC4275670000 + 000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD25200000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002054944415478DAEDD6BF4B1B + 611807F0EF1B2FB9335A7395269A5CB57F8050BAC50A0E5D3422B8AA83558460 + C4622BB8041D0A55B228543C6AB24849068776D0499D9C442C24A838F8637028 + 6D283DA3B658C88FF3F52E92346925C1D338681E3878EF7D9F7B3EF7BCDCC14B + 28A5B8CD2045F0FE81A3A3E3E907C6C64648E6FDBFA1AEE705A3EBE4BF02AC9D + 9214363C3C005996110A85B0BCBC80A6A63608B66A984C26188D46A5601C6767 + 1491DF31F8662631312192BC205BC70191E7C0CF15443F3BC07A16D3606F6F27 + 128904FCFE4FB0DB9F429224701C87DA27B5A82833823310E874808E29855AFA + 83773A0BBD12E876BBA9D3E9C4ECEC1C04A112E17018D2A1A474C7837FC8A38C + 6341E518888EC052654595D90C5E590BCCF9D3E895C0AEEE97B4A5D981603088 + A39363FC393D05C33088CB091C1D4750020A3916075FF90856E1316AAC56D894 + 2BB4F9451BA8C6D0D020D5337A94180CF08C7B92F3E2F414B50935F8FEED2B76 + 76F7218A17C51DAD2DB4B1BE4179B91FDAC1CB62AA3FFB437B3D43D3F97DAE3E + FAA05C7FF3A0ABA7071B1B1FD131598783BDEDAC7C15F5797D39404619985FDC + 1898F3B748A1C9C17C7EECDA6021B6342FA876961905DF527F60855A2CD5585D + DBC2BBB7ED85DDD222580435816260895680C52F44F1AACB71073BD402D63FBB + 186B0209F99B9F5ACF9CBB2CDEBB904C7CE3CD7D30BBF563E239AD31EAD8FE92 + 1DB50000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 80 + Bitmap = {} + end +end diff --git a/Source/Modulos/Obras/Plugin/uPluginObras.pas b/Source/Modulos/Obras/Plugin/uPluginObras.pas new file mode 100644 index 0000000..e01bd49 --- /dev/null +++ b/Source/Modulos/Obras/Plugin/uPluginObras.pas @@ -0,0 +1,74 @@ +unit uPluginObras; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCObras = interface(IInterface) + ['{BC4A49B9-3CE9-48B5-A404-3468CB87B768}'] + end; + + TPluginObras = class(TModuleController, IMCObras) + actObras: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + Ventas1: TMenuItem; + Obras1: TMenuItem; + procedure actObrasExecute(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, + uObrasController, uBizObras, uObrasViewRegister; + +function GetModule : TModuleController; +begin + Result := TPluginObras.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +procedure TPluginObras.actObrasExecute(Sender: TObject); +var + AObrasController : IObrasController; + AObras : IBizObra; + +begin + AObrasController := TObrasController.Create; + AObras := (AObrasController.BuscarTodos as IBizObra); + AObrasController.VerTodos(AObras); +end; + +constructor TPluginObras.Create(AOwner: TComponent); +begin + inherited; + uObrasViewRegister.RegisterViews; +end; + +destructor TPluginObras.Destroy; +begin + uObrasViewRegister.UnregisterViews; + inherited; +end; + +initialization + RegisterModuleClass(TPluginObras); + +finalization + UnRegisterModuleClass(TPluginObras); + +end. diff --git a/Source/Modulos/Obras/Servidor/srvObras_Impl.dcu b/Source/Modulos/Obras/Servidor/srvObras_Impl.dcu new file mode 100644 index 0000000..226d6fe Binary files /dev/null and b/Source/Modulos/Obras/Servidor/srvObras_Impl.dcu differ diff --git a/Source/Modulos/Obras/Servidor/srvObras_Impl.dfm b/Source/Modulos/Obras/Servidor/srvObras_Impl.dfm new file mode 100644 index 0000000..d41cde7 --- /dev/null +++ b/Source/Modulos/Obras/Servidor/srvObras_Impl.dfm @@ -0,0 +1,1722 @@ +object srvObras: TsrvObras + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + ConnectionName = 'IBX' + ServiceSchema = schObras + ServiceDataStreamer = Bin2DataStreamer + AllowWhereSQL = True + ExportedDataTables = <> + Height = 220 + Width = 370 + object Diagrams: TDADiagrams + Left = 150 + Top = 82 + DiagramData = + ''#13#10' '#13#10' '#13#10' '#13#10' '#13#10' ' + + ''#13#10' '#13#10 + + ''#13#10 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'Obras_CALLE' + DataType = datString + Size = 255 + DisplayLabel = 'Calle' + end + item + Name = 'Obras_PROVINCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Provincia' + end + item + Name = 'Obras_POBLACION' + DataType = datString + Size = 255 + DisplayLabel = 'Poblaci'#243'n' + end + item + Name = 'Obras_CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#243'digo postal' + end + item + Name = 'Obras_TELEFONO' + DataType = datString + Size = 25 + DisplayLabel = 'Tel'#233'fono' + end + item + Name = 'Obras_MOVIL' + DataType = datString + Size = 25 + DisplayLabel = 'M'#243'vil' + end + item + Name = 'Obras_FAX' + DataType = datString + Size = 25 + DisplayLabel = 'Fax' + end + item + Name = 'Obras_OBSERVACIONES' + DataType = datMemo + DisplayLabel = 'Observaciones' + end + item + Name = 'Obras_ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALMACENES_ID' + Required = True + DisplayLabel = 'ID' + ServerAutoRefresh = True + end + item + Name = 'Obras_ID_EMPRESA' + DataType = datInteger + DisplayLabel = 'ID_EMPRESA' + end + item + Name = 'Obras_FECHA_ALTA' + DataType = datDateTime + DisplayLabel = 'FECHA_ALTA' + end + item + Name = 'Obras_PERSONA_CONTACTO' + DataType = datString + Size = 255 + DisplayLabel = 'Persona de contacto' + end + item + Name = 'Obras_FECHA_MODIFICACION' + DataType = datDateTime + DisplayLabel = 'FECHA_MODIFICACION' + end + item + Name = 'Obras_USUARIO' + DataType = datString + Size = 20 + DisplayLabel = 'USUARIO' + end + item + Name = 'Obras_NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Nombre' + end + item + Name = 'Obras_ID_CLIENTE' + DataType = datInteger + end + item + Name = 'Obras_NOMBRE_CLIENTE' + DataType = datString + Size = 255 + DisplayLabel = 'Cliente' + end + item + Name = 'Obras_ID_SUBCONTRATA' + DataType = datInteger + end + item + Name = 'Obras_NOMBRE_SUBCONTRATA' + DataType = datString + Size = 255 + DisplayLabel = 'Subcontrata' + end + item + Name = 'Obras_ID_EJECUCION' + DataType = datInteger + DisplayLabel = 'ID_EJECUCION' + end + item + Name = 'ObrasEjecuciones_ID' + DataType = datAutoInc + GeneratorName = 'GEN_OBRAS_EJECUCIONES_ID' + Required = True + end + item + Name = 'ObrasEjecuciones_ID_OBRA' + DataType = datInteger + DisplayLabel = 'ID_OBRA' + end + item + Name = 'ObrasEjecuciones_FECHA_INICIO' + DataType = datDateTime + DisplayLabel = 'Inicio' + end + item + Name = 'ObrasEjecuciones_FECHA_FIN' + DataType = datDateTime + DisplayLabel = 'Finalizaci'#243'n' + end + item + Name = 'ObrasEjecuciones_ID_SUBCONTRATA' + DataType = datInteger + DisplayLabel = 'ID_SUBCONTRATA' + end + item + Name = 'ObrasEjecuciones_NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Subcontrata' + end + item + Name = 'ObrasEjecuciones_OBSERVACIONES' + DataType = datMemo + DisplayLabel = 'Observaciones' + end + item + Name = 'ObrasEjecuciones_IMPORTE_GASTOS' + DataType = datCurrency + LogChanges = False + DisplayLabel = 'Gastos' + Alignment = taRightJustify + end + item + Name = 'ObrasEjecuciones_IMPORTE_INGRESOS' + DataType = datCurrency + LogChanges = False + DisplayLabel = 'Ingresos' + Alignment = taRightJustify + end + item + Name = 'ObrasEjecuciones_IMPORTE_TOTAL' + DataType = datCurrency + LogChanges = False + DisplayLabel = 'Total' + Alignment = taRightJustify + end + item + Name = 'ObrasEjecuciones_FECHA_ALTA' + DataType = datDateTime + end + item + Name = 'ObrasEjecuciones_FECHA_MODIFICACION' + DataType = datDateTime + end + item + Name = 'ObrasEjecucionesPresupuestos_ID' + DataType = datAutoInc + GeneratorName = 'GEN_OBRAS_EJEC_PRESUPUESTOS_ID' + Required = True + DisplayLabel = 'ID' + ServerAutoRefresh = True + end + item + Name = 'ObrasEjecucionesPresupuestos_ID_EJECUCION' + DataType = datInteger + DisplayLabel = 'ID_EJECUCION' + end + item + Name = 'ObrasEjecucionesPresupuestos_ID_PRESUPUESTO' + DataType = datInteger + DisplayLabel = 'ID_PRESUPUESTO' + end + item + Name = 'ObrasEjecucionesPedidosProveedor_ID' + DataType = datAutoInc + GeneratorName = 'GEN_OBRAS_EJEC_PEDIDOS_PROV_ID' + Required = True + DisplayLabel = 'ID' + ServerAutoRefresh = True + end + item + Name = 'ObrasEjecucionesPedidosProveedor_ID_EJECUCION' + DataType = datInteger + DisplayLabel = 'ID_EJECUCION' + end + item + Name = 'ObrasEjecucionesPedidosProveedor_ID_PEDIDO' + DataType = datInteger + DisplayLabel = 'ID_PEDIDO' + end + item + Name = 'ObrasEjecucionesPedidosProveedor_ID_PRESUPUESTO' + DataType = datInteger + DisplayLabel = 'ID_PRESUPUESTO' + end + item + Name = 'ObrasEjecucionesPresupuestos_REFERENCIA' + DataType = datString + Size = 255 + LogChanges = False + DisplayLabel = 'Referencia' + ServerAutoRefresh = True + end + item + Name = 'ObrasEjecucionesPresupuestos_FECHA_PRESUPUESTO' + DataType = datDateTime + LogChanges = False + DisplayLabel = 'Fecha presupuesto' + ServerAutoRefresh = True + end + item + Name = 'ObrasEjecucionesPresupuestos_SITUACION' + DataType = datString + Size = 255 + LogChanges = False + DisplayLabel = 'Situaci'#243'n' + ServerAutoRefresh = True + end + item + Name = 'ObrasEjecucionesPresupuestos_BASE_IMPONIBLE' + DataType = datCurrency + LogChanges = False + DisplayLabel = 'Base imponible' + ServerAutoRefresh = True + end + item + Name = 'ObrasEjecucionesPresupuestos_NOMBRE' + DataType = datString + Size = 255 + LogChanges = False + DisplayLabel = 'Nombre' + ServerAutoRefresh = True + end + item + Name = 'ObrasEjecucionesPedidosProveedor_SITUACION' + DataType = datString + Size = 9 + LogChanges = False + DisplayLabel = 'Situaci'#243'n' + ServerAutoRefresh = True + end + item + Name = 'ObrasEjecucionesPedidosProveedor_ID_PROVEEDOR' + DataType = datInteger + LogChanges = False + DisplayLabel = 'ID_PROVEEDOR' + ServerAutoRefresh = True + end + item + Name = 'ObrasEjecucionesPedidosProveedor_NOMBRE' + DataType = datString + Size = 255 + LogChanges = False + DisplayLabel = 'Proveedor' + ServerAutoRefresh = True + end + item + Name = 'ObrasEjecucionesPedidosProveedor_REFERENCIA' + DataType = datString + Size = 255 + LogChanges = False + DisplayLabel = 'Referencia' + ServerAutoRefresh = True + end + item + Name = 'ObrasEjecucionesPedidosProveedor_FECHA_PEDIDO' + DataType = datDateTime + LogChanges = False + DisplayLabel = 'Fecha pedido' + ServerAutoRefresh = True + end + item + Name = 'ObrasEjecucionesPedidosProveedor_FECHA_ENTREGA' + DataType = datDateTime + LogChanges = False + DisplayLabel = 'Fecha de entrega' + end + item + Name = 'ObrasEjecucionesPedidosProveedor_ID_ALMACEN' + DataType = datInteger + LogChanges = False + DisplayLabel = 'ID_ALMACEN' + end + item + Name = 'ObrasEjecucionesPedidosProveedor_NOMBRE_ALMACEN' + DataType = datString + Size = 255 + LogChanges = False + DisplayLabel = 'Almac'#233'n' + end + item + Name = 'ObrasEjecucionesPedidosProveedor_ID_OBRA' + DataType = datInteger + LogChanges = False + DisplayLabel = 'ID_OBRA' + ServerAutoRefresh = True + end + item + Name = 'ObrasEjecucionesPedidosProveedor_NOMBRE_OBRA' + DataType = datString + Size = 255 + LogChanges = False + DisplayLabel = 'Obra para reserva' + ServerAutoRefresh = True + end + item + Name = 'ObrasEjecucionesPedidosProveedor_BASE_IMPONIBLE' + DataType = datCurrency + LogChanges = False + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + ServerAutoRefresh = True + end> + Left = 150 + Top = 22 + end + object schObras: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Diagrams = Diagrams + Datasets = < + item + Params = < + item + Name = 'ID_EMPRESA' + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'OBRAS' + Name = 'IBX' + SQL = + 'Select ID, NOMBRE'#10'from ALMACENES'#10'where TIPO_ALMACEN = '#39'OBRA'#39#10'and' + + ' ID_EMPRESA = :ID_EMPRESA'#10'order by NOMBRE'#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end> + end> + Name = 'ListaObras' + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_OBRAS' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end + item + DatasetField = 'TELEFONO' + TableField = 'TELEFONO' + end + item + DatasetField = 'MOVIL' + TableField = 'MOVIL' + end + item + DatasetField = 'FAX' + TableField = 'FAX' + end + item + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'NOMBRE_CLIENTE' + TableField = 'NOMBRE_CLIENTE' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end + item + DatasetField = 'ID_EJECUCION' + TableField = 'ID_EJECUCION' + end> + end> + Name = 'Obras' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALMACENES_ID' + ServerAutoRefresh = True + DictionaryEntry = 'Obras_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'Obras_ID_EMPRESA' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DictionaryEntry = 'Obras_NOMBRE' + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DictionaryEntry = 'Obras_CALLE' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'Obras_PROVINCIA' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DictionaryEntry = 'Obras_POBLACION' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DictionaryEntry = 'Obras_CODIGO_POSTAL' + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + DictionaryEntry = 'Obras_TELEFONO' + end + item + Name = 'MOVIL' + DataType = datString + Size = 25 + DictionaryEntry = 'Obras_MOVIL' + end + item + Name = 'FAX' + DataType = datString + Size = 25 + DictionaryEntry = 'Obras_FAX' + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + DictionaryEntry = 'Obras_PERSONA_CONTACTO' + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + DictionaryEntry = 'Obras_OBSERVACIONES' + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + DictionaryEntry = 'Obras_ID_CLIENTE' + end + item + Name = 'NOMBRE_CLIENTE' + DataType = datString + Size = 255 + ServerAutoRefresh = True + DictionaryEntry = 'Obras_NOMBRE_CLIENTE' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'Obras_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'Obras_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'Obras_USUARIO' + end + item + Name = 'ID_EJECUCION' + DataType = datInteger + ServerAutoRefresh = True + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'OBRAS_EJECUCIONES_PRESUPUESTOS' + SQL = + 'select obras_ejecuciones_presupuestos.id,'#10' obras_ejecucion' + + 'es_presupuestos.id_ejecucion, obras_ejecuciones_presupuestos.id_' + + 'presupuesto,'#10' presupuestos_cliente.referencia, presupuesto' + + 's_cliente.fecha_presupuesto,'#10' presupuestos_cliente.situaci' + + 'on, presupuestos_cliente.base_imponible,'#10' contactos.nombre' + + #10'from obras_ejecuciones_presupuestos'#10'inner join presupuestos_cli' + + 'ente on (presupuestos_cliente.id = obras_ejecuciones_presupuesto' + + 's.id_presupuesto)'#10'inner join contactos on (contactos.id = presup' + + 'uestos_cliente.id_cliente)'#10'where {where}'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EJECUCION' + TableField = 'ID_EJECUCION' + end + item + DatasetField = 'ID_PRESUPUESTO' + TableField = 'ID_PRESUPUESTO' + end + item + DatasetField = 'REFERENCIA' + TableField = '' + SQLOrigin = 'REFERENCIA' + end + item + DatasetField = 'FECHA_PRESUPUESTO' + TableField = '' + SQLOrigin = 'FECHA_PRESUPUESTO' + end + item + DatasetField = 'SITUACION' + TableField = '' + SQLOrigin = 'SITUACION' + end + item + DatasetField = 'BASE_IMPONIBLE' + TableField = '' + SQLOrigin = 'BASE_IMPONIBLE' + end + item + DatasetField = 'NOMBRE' + TableField = '' + SQLOrigin = 'NOMBRE' + end> + end> + Name = 'ObrasEjecucionesPresupuestos' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_OBRAS_EJEC_PRESUPUESTOS_ID' + DictionaryEntry = 'ObrasEjecucionesPresupuestos_ID' + InPrimaryKey = True + end + item + Name = 'ID_EJECUCION' + DataType = datInteger + DictionaryEntry = 'ObrasEjecucionesPresupuestos_ID_EJECUCION' + end + item + Name = 'ID_PRESUPUESTO' + DataType = datInteger + DictionaryEntry = 'ObrasEjecucionesPresupuestos_ID_PRESUPUESTO' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + ServerAutoRefresh = True + DictionaryEntry = 'ObrasEjecucionesPresupuestos_REFERENCIA' + end + item + Name = 'FECHA_PRESUPUESTO' + DataType = datDateTime + ServerAutoRefresh = True + DictionaryEntry = 'ObrasEjecucionesPresupuestos_FECHA_PRESUPUESTO' + end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + ServerAutoRefresh = True + DictionaryEntry = 'ObrasEjecucionesPresupuestos_SITUACION' + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + ServerAutoRefresh = True + DictionaryEntry = 'ObrasEjecucionesPresupuestos_BASE_IMPONIBLE' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + ServerAutoRefresh = True + DictionaryEntry = 'ObrasEjecucionesPresupuestos_NOMBRE' + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'OBRAS_EJECUCIONES_PEDIDOS_PROV' + SQL = + 'select obras_ejecuciones_pedidos_prov.id,'#10' obras_ejecucion' + + 'es_pedidos_prov.id_ejecucion,'#10' obras_ejecuciones_pedidos_p' + + 'rov.id_pedido,'#10' obras_ejecuciones_pedidos_prov.id_presupue' + + 'sto,'#10' v_ped_prov_situacion.situacion,'#10' pedidos_prove' + + 'edor.id_proveedor,'#10' contactos.nombre,'#10' pedidos_prove' + + 'edor.referencia,'#10' pedidos_proveedor.fecha_pedido,'#10' p' + + 'edidos_proveedor.fecha_entrega,'#10' pedidos_proveedor.id_alma' + + 'cen,'#10' almacenes.nombre as nombre_almacen,'#10' pedidos_p' + + 'roveedor.id_obra,'#10' obras.nombre as nombre_obra,'#10' ped' + + 'idos_proveedor.base_imponible'#10'from obras_ejecuciones_pedidos_pro' + + 'v'#10' inner join v_ped_prov_situacion on (v_ped_prov_situacion.id' + + '_pedido = obras_ejecuciones_pedidos_prov.id_pedido)'#10' inner joi' + + 'n pedidos_proveedor on (pedidos_proveedor.id = obras_ejecuciones' + + '_pedidos_prov.id_pedido)'#10' inner join contactos on (contactos.i' + + 'd = pedidos_proveedor.id_proveedor)'#10' left outer join almacenes' + + ' on (almacenes.id = pedidos_proveedor.id_almacen)'#10' left outer ' + + 'join almacenes as obras on (obras.id = pedidos_proveedor.id_obra' + + ')'#10'where {where}'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EJECUCION' + TableField = 'ID_EJECUCION' + end + item + DatasetField = 'ID_PEDIDO' + TableField = 'ID_PEDIDO' + end + item + DatasetField = 'ID_PRESUPUESTO' + TableField = 'ID_PRESUPUESTO' + end + item + DatasetField = 'ID_PROVEEDOR' + TableField = '' + SQLOrigin = 'ID_PROVEEDOR' + end + item + DatasetField = 'NOMBRE' + TableField = '' + SQLOrigin = 'NOMBRE' + end + item + DatasetField = 'REFERENCIA' + TableField = '' + SQLOrigin = 'REFERENCIA' + end + item + DatasetField = 'FECHA_PEDIDO' + TableField = '' + SQLOrigin = 'FECHA_PEDIDO' + end + item + DatasetField = 'FECHA_ENTREGA' + TableField = '' + SQLOrigin = 'FECHA_ENTREGA' + end + item + DatasetField = 'ID_ALMACEN' + TableField = '' + SQLOrigin = 'ID_ALMACEN' + end + item + DatasetField = 'ID_OBRA' + TableField = '' + SQLOrigin = 'ID_OBRA' + end + item + DatasetField = 'BASE_IMPONIBLE' + TableField = '' + SQLOrigin = 'BASE_IMPONIBLE' + end + item + DatasetField = 'NOMBRE_ALMACEN' + TableField = '' + SQLOrigin = 'NOMBRE_ALMACEN' + end + item + DatasetField = 'NOMBRE_OBRA' + TableField = '' + SQLOrigin = 'NOMBRE_OBRA' + end + item + DatasetField = 'SITUACION' + TableField = '' + SQLOrigin = 'SITUACION' + end> + end> + Name = 'ObrasEjecucionesPedidosProveedor' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_OBRAS_EJEC_PEDIDOS_PROV_ID' + ServerAutoRefresh = True + DictionaryEntry = 'ObrasEjecucionesPedidosProveedor_ID' + InPrimaryKey = True + end + item + Name = 'ID_EJECUCION' + DataType = datInteger + DictionaryEntry = 'ObrasEjecucionesPedidosProveedor_ID_EJECUCION' + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + DictionaryEntry = 'ObrasEjecucionesPedidosProveedor_ID_PEDIDO' + end + item + Name = 'ID_PRESUPUESTO' + DataType = datInteger + DictionaryEntry = 'ObrasEjecucionesPedidosProveedor_ID_PRESUPUESTO' + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + ServerAutoRefresh = True + DictionaryEntry = 'ObrasEjecucionesPedidosProveedor_SITUACION' + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + ServerAutoRefresh = True + DictionaryEntry = 'ObrasEjecucionesPedidosProveedor_ID_PROVEEDOR' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + ServerAutoRefresh = True + DictionaryEntry = 'ObrasEjecucionesPedidosProveedor_NOMBRE' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + ServerAutoRefresh = True + DictionaryEntry = 'ObrasEjecucionesPedidosProveedor_REFERENCIA' + end + item + Name = 'FECHA_PEDIDO' + DataType = datDateTime + ServerAutoRefresh = True + DictionaryEntry = 'ObrasEjecucionesPedidosProveedor_FECHA_PEDIDO' + end + item + Name = 'FECHA_ENTREGA' + DataType = datDateTime + DictionaryEntry = 'ObrasEjecucionesPedidosProveedor_FECHA_ENTREGA' + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + DictionaryEntry = 'ObrasEjecucionesPedidosProveedor_ID_ALMACEN' + end + item + Name = 'NOMBRE_ALMACEN' + DataType = datString + Size = 255 + DictionaryEntry = 'ObrasEjecucionesPedidosProveedor_NOMBRE_ALMACEN' + end + item + Name = 'ID_OBRA' + DataType = datInteger + ServerAutoRefresh = True + DictionaryEntry = 'ObrasEjecucionesPedidosProveedor_ID_OBRA' + end + item + Name = 'NOMBRE_OBRA' + DataType = datString + Size = 255 + ServerAutoRefresh = True + DictionaryEntry = 'ObrasEjecucionesPedidosProveedor_NOMBRE_OBRA' + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + ServerAutoRefresh = True + DictionaryEntry = 'ObrasEjecucionesPedidosProveedor_BASE_IMPONIBLE' + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'V_OBRAS_EJECUCIONES' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_OBRA' + TableField = 'ID_OBRA' + end + item + DatasetField = 'FECHA_INICIO' + TableField = 'FECHA_INICIO' + end + item + DatasetField = 'FECHA_FIN' + TableField = 'FECHA_FIN' + end + item + DatasetField = 'ID_SUBCONTRATA' + TableField = 'ID_SUBCONTRATA' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'IMPORTE_GASTOS' + TableField = 'IMPORTE_GASTOS' + end + item + DatasetField = 'IMPORTE_INGRESOS' + TableField = 'IMPORTE_INGRESOS' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end> + end> + Name = 'ObrasEjecuciones' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_OBRAS_EJECUCIONES_ID' + DictionaryEntry = 'ObrasEjecuciones_ID' + InPrimaryKey = True + end + item + Name = 'ID_OBRA' + DataType = datInteger + DictionaryEntry = 'ObrasEjecuciones_ID_OBRA' + end + item + Name = 'FECHA_INICIO' + DataType = datDateTime + DictionaryEntry = 'ObrasEjecuciones_FECHA_INICIO' + end + item + Name = 'FECHA_FIN' + DataType = datDateTime + DictionaryEntry = 'ObrasEjecuciones_FECHA_FIN' + end + item + Name = 'ID_SUBCONTRATA' + DataType = datInteger + DictionaryEntry = 'ObrasEjecuciones_ID_SUBCONTRATA' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DictionaryEntry = 'ObrasEjecuciones_NOMBRE' + end + item + Name = 'IMPORTE_GASTOS' + DataType = datCurrency + ServerAutoRefresh = True + DictionaryEntry = 'ObrasEjecuciones_IMPORTE_GASTOS' + end + item + Name = 'IMPORTE_INGRESOS' + DataType = datCurrency + ServerAutoRefresh = True + DictionaryEntry = 'ObrasEjecuciones_IMPORTE_INGRESOS' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + ServerAutoRefresh = True + DictionaryEntry = 'ObrasEjecuciones_IMPORTE_TOTAL' + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + DictionaryEntry = 'ObrasEjecuciones_OBSERVACIONES' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'ObrasEjecuciones_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'ObrasEjecuciones_FECHA_MODIFICACION' + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALMACENES_ID' + Value = '' + end + item + Name = 'ID_EMPRESA' + Value = '' + end + item + Name = 'NOMBRE' + Value = '' + end + item + Name = 'CALLE' + Value = '' + end + item + Name = 'PROVINCIA' + Value = '' + end + item + Name = 'POBLACION' + Value = '' + end + item + Name = 'CODIGO_POSTAL' + Value = '' + end + item + Name = 'TELEFONO' + Value = '' + end + item + Name = 'MOVIL' + Value = '' + end + item + Name = 'FAX' + Value = '' + end + item + Name = 'PERSONA_CONTACTO' + Value = '' + end + item + Name = 'OBSERVACIONES' + Value = '' + end + item + Name = 'USUARIO' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'ALMACENES' + SQL = + 'INSERT'#10' INTO ALMACENES'#10' (ID, ID_EMPRESA, TIPO_ALMACEN, NOMBR' + + 'E, CALLE, PROVINCIA, POBLACION, CODIGO_POSTAL,'#10' TELEFONO, MO' + + 'VIL, FAX, PERSONA_CONTACTO, OBSERVACIONES, '#10' FECHA_ALTA, USU' + + 'ARIO)'#10' VALUES'#10' (:ID, :ID_EMPRESA, '#39'OBRA'#39', :NOMBRE, :CALLE, :' + + 'PROVINCIA, :POBLACION,'#10' :CODIGO_POSTAL, :TELEFONO, :MOVIL, :' + + 'FAX, :PERSONA_CONTACTO, '#10' :OBSERVACIONES, CURRENT_TIMESTAMP,' + + ' :USUARIO)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_Obras' + end + item + Params = < + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'ALMACENES' + SQL = 'DELETE '#10' FROM'#10' ALMACENES'#10' WHERE'#10' (ID = :OLD_ID)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_Obras' + end + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALMACENES_ID' + Value = '' + end + item + Name = 'ID_EMPRESA' + Value = '' + end + item + Name = 'NOMBRE' + Value = '' + end + item + Name = 'CALLE' + Value = '' + end + item + Name = 'PROVINCIA' + Value = '' + end + item + Name = 'POBLACION' + Value = '' + end + item + Name = 'CODIGO_POSTAL' + Value = '' + end + item + Name = 'TELEFONO' + Value = '' + end + item + Name = 'MOVIL' + Value = '' + end + item + Name = 'FAX' + Value = '' + end + item + Name = 'PERSONA_CONTACTO' + Value = '' + end + item + Name = 'OBSERVACIONES' + Value = '' + end + item + Name = 'USUARIO' + Value = '' + end + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'ALMACENES' + SQL = + 'UPDATE ALMACENES'#10' SET'#10' ID = :ID,'#10' ID_EMPRESA = :ID_EMPRES' + + 'A, '#10' NOMBRE = :NOMBRE, '#10' CALLE = :CALLE, '#10' PROVINCIA = ' + + ':PROVINCIA, '#10' POBLACION = :POBLACION, '#10' CODIGO_POSTAL = :C' + + 'ODIGO_POSTAL, '#10' TELEFONO = :TELEFONO, '#10' MOVIL = :MOVIL, '#10' ' + + ' FAX = :FAX, '#10' PERSONA_CONTACTO = :PERSONA_CONTACTO, '#10' O' + + 'BSERVACIONES = :OBSERVACIONES, '#10' FECHA_MODIFICACION = CURRENT' + + '_TIMESTAMP,'#10' USUARIO = :USUARIO'#10' WHERE'#10' (ID = :OLD_ID)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_Obras' + end + item + Params = < + item + Name = 'ID_ALMACEN' + DataType = datInteger + Value = '0' + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + Value = '0' + end> + Statements = < + item + ConnectionType = 'Interbase' + Default = True + TargetTable = 'OBRAS_DATOS' + SQL = + 'INSERT'#10' INTO OBRAS_DATOS'#10' (ID_ALMACEN, ID_CLIENTE)'#10' VALUES'#10 + + ' (:ID_ALMACEN, :ID_CLIENTE)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_OBRAS_DATOS' + end + item + Params = < + item + Name = 'OLD_ID_ALMACEN' + DataType = datInteger + Value = '0' + end> + Statements = < + item + ConnectionType = 'Interbase' + TargetTable = 'OBRAS_DATOS' + SQL = + 'DELETE '#10' FROM'#10' OBRAS_DATOS'#10' WHERE'#10' (ID_ALMACEN = :OLD_ID' + + '_ALMACEN)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_OBRAS_DATOS' + end + item + Params = < + item + Name = 'ID_CLIENTE' + Value = '' + end + item + Name = 'OLD_ID_ALMACEN' + Value = '' + end> + Statements = < + item + ConnectionType = 'Interbase' + Default = True + TargetTable = 'OBRAS_DATOS' + SQL = + 'UPDATE OBRAS_DATOS'#10' SET '#10' ID_CLIENTE = :ID_CLIENTE'#10' WHERE'#10' ' + + ' (ID_ALMACEN = :OLD_ID_ALMACEN)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_OBRAS_DATOS' + end + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_OBRAS_EJECUCIONES_ID' + Value = '' + end + item + Name = 'ID_OBRA' + DataType = datInteger + Value = '0' + end + item + Name = 'FECHA_INICIO' + DataType = datDateTime + Value = '0:00:00' + end + item + Name = 'FECHA_FIN' + DataType = datDateTime + Value = '0:00:00' + end + item + Name = 'ID_SUBCONTRATA' + DataType = datInteger + Value = '0' + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + Value = '' + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'OBRAS_EJECUCIONES' + SQL = + 'INSERT'#10' INTO OBRAS_EJECUCIONES'#10' (ID, ID_OBRA, FECHA_INICIO, ' + + 'FECHA_FIN, ID_SUBCONTRATA, '#10' OBSERVACIONES, FECHA_ALTA)'#10' VA' + + 'LUES'#10' (:ID, :ID_OBRA, :FECHA_INICIO, :FECHA_FIN, :ID_SUBCONTR' + + 'ATA, '#10' :OBSERVACIONES, CURRENT_TIMESTAMP)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_OBRAS_EJECUCIONES' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + Value = '0' + end> + Statements = < + item + ConnectionType = 'Interbase' + Default = True + TargetTable = 'OBRAS_EJECUCIONES' + SQL = 'DELETE '#10' FROM'#10' OBRAS_EJECUCIONES'#10' WHERE'#10' (ID = :OLD_ID)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_OBRAS_EJECUCIONES' + end + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_OBRAS_EJECUCIONES_ID' + Value = '' + end + item + Name = 'ID_OBRA' + Value = '' + end + item + Name = 'FECHA_INICIO' + Value = '' + end + item + Name = 'FECHA_FIN' + Value = '' + end + item + Name = 'ID_SUBCONTRATA' + Value = '' + end + item + Name = 'OBSERVACIONES' + Value = '' + end + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + ConnectionType = 'Interbase' + Default = True + TargetTable = 'OBRAS_EJECUCIONES' + SQL = + 'UPDATE OBRAS_EJECUCIONES'#10' SET'#10' ID = :ID,'#10' ID_OBRA = :ID_O' + + 'BRA,'#10' FECHA_INICIO = :FECHA_INICIO, '#10' FECHA_FIN = :FECHA_F' + + 'IN, '#10' ID_SUBCONTRATA = :ID_SUBCONTRATA, '#10' OBSERVACIONES = ' + + ':OBSERVACIONES,'#10' FECHA_MODIFICACION = CURRENT_TIMESTAMP'#10' WHE' + + 'RE'#10' (ID = :OLD_ID)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_OBRAS_EJECUCIONES' + end + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_OBRAS_EJEC_PRESUPUESTOS_ID' + Value = '0' + end + item + Name = 'ID_EJECUCION' + DataType = datInteger + Value = '0' + end + item + Name = 'ID_PRESUPUESTO' + DataType = datInteger + Value = '0' + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'OBRAS_EJECUCIONES_PRESUPUESTOS' + SQL = + 'INSERT'#10' INTO OBRAS_EJECUCIONES_PRESUPUESTOS'#10' (ID, ID_EJECUCI' + + 'ON, ID_PRESUPUESTO)'#10' VALUES'#10' (:ID, :ID_EJECUCION, :ID_PRESUP' + + 'UESTO)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_OBRAS_EJECUCIONES_PRESUPUESTOS' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + Value = '0' + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'OBRAS_EJECUCIONES_PRESUPUESTOS' + SQL = + 'DELETE '#10' FROM'#10' OBRAS_EJECUCIONES_PRESUPUESTOS'#10' WHERE'#10' (I' + + 'D = :OLD_ID)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_OBRAS_EJECUCIONES_PRESUPUESTOS' + end + item + Params = < + item + Name = 'ID_EJECUCION' + Value = '' + end + item + Name = 'ID_PRESUPUESTO' + Value = '' + end + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'OBRAS_EJECUCIONES_PRESUPUESTOS' + SQL = + 'UPDATE OBRAS_EJECUCIONES_PRESUPUESTOS'#10' SET '#10' ID_EJECUCION = ' + + ':ID_EJECUCION,'#10' ID_PRESUPUESTO = :ID_PRESUPUESTO'#10' WHERE'#10' ' + + '(ID = :OLD_ID)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_OBRAS_EJECUCIONES_PRESUPUESTOS' + end + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_OBRAS_EJEC_PEDIDOS_PROV_ID' + Value = '' + end + item + Name = 'ID_EJECUCION' + Value = '' + end + item + Name = 'ID_PEDIDO' + Value = '' + end + item + Name = 'ID_PRESUPUESTO' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'OBRAS_EJECUCIONES_PEDIDOS_PROV' + SQL = + 'INSERT'#10' INTO OBRAS_EJECUCIONES_PEDIDOS_PROV'#10' (ID, ID_EJECUCI' + + 'ON, ID_PEDIDO, ID_PRESUPUESTO)'#10' VALUES'#10' (:ID, :ID_EJECUCION,' + + ' :ID_PEDIDO, :ID_PRESUPUESTO)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_OBRAS_EJECUCIONES_PEDIDOS_PROV' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datAutoInc + Value = '0' + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'OBRAS_EJECUCIONES_PEDIDOS_PROV' + SQL = + 'DELETE '#10' FROM'#10' OBRAS_EJECUCIONES_PEDIDOS_PROV'#10' WHERE'#10' (I' + + 'D = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_OBRAS_EJECUCIONES_PEDIDOS_PROV' + end + item + Params = < + item + Name = 'ID_EJECUCION' + Value = '' + end + item + Name = 'ID_PEDIDO' + Value = '' + end + item + Name = 'ID_PRESUPUESTO' + Value = '' + end + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'OBRAS_EJECUCIONES_PEDIDOS_PROV' + SQL = + 'UPDATE OBRAS_EJECUCIONES_PEDIDOS_PROV'#10' SET '#10' ID_EJECUCION = ' + + ':ID_EJECUCION, '#10' ID_PEDIDO = :ID_PEDIDO, '#10' ID_PRESUPUESTO ' + + '= :ID_PRESUPUESTO'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_OBRAS_EJECUCIONES_PEDIDOS_PROV' + end> + RelationShips = < + item + Name = 'FK_ObrasEjecuciones_Obras' + MasterDatasetName = 'Obras' + MasterFields = 'ID' + DetailDatasetName = 'ObrasEjecuciones' + DetailFields = 'ID_OBRA' + RelationshipType = rtForeignKey + end + item + Name = 'FK_ObrasEjecucionesPresupuestos_ObrasEjecuciones' + MasterDatasetName = 'ObrasEjecuciones' + MasterFields = 'ID' + DetailDatasetName = 'ObrasEjecucionesPresupuestos' + DetailFields = 'ID_EJECUCION' + RelationshipType = rtForeignKey + end + item + Name = 'FK_ObrasEjecucionesPedidosProveedor_ObrasEjecuciones' + MasterDatasetName = 'ObrasEjecuciones' + MasterFields = 'ID' + DetailDatasetName = 'ObrasEjecucionesPedidosProveedor' + DetailFields = 'ID_EJECUCION' + RelationshipType = rtForeignKey + end> + UpdateRules = < + item + Name = 'Insert Obras' + DoUpdate = False + DoDelete = False + DatasetName = 'Obras' + FailureBehavior = fbRaiseException + end + item + Name = 'Insert ObrasEjecuciones' + DoUpdate = False + DoDelete = False + DatasetName = 'ObrasEjecuciones' + FailureBehavior = fbRaiseException + end + item + Name = 'Insert ObrasEjecucionesPresupuestos' + DoUpdate = False + DoDelete = False + DatasetName = 'ObrasEjecucionesPresupuestos' + FailureBehavior = fbRaiseException + end + item + Name = 'Insert ObrasEjecucionesPedidosProveedor' + DoUpdate = False + DoDelete = False + DatasetName = 'ObrasEjecucionesPedidosProveedor' + FailureBehavior = fbRaiseException + end + item + Name = 'Update Obras' + DoInsert = False + DoDelete = False + DatasetName = 'Obras' + FailureBehavior = fbRaiseException + end + item + Name = 'Update ObrasEjecuciones' + DoInsert = False + DoDelete = False + DatasetName = 'ObrasEjecuciones' + FailureBehavior = fbRaiseException + end + item + Name = 'Update ObrasEjecucionesPresupuestos' + DoInsert = False + DoDelete = False + DatasetName = 'ObrasEjecucionesPresupuestos' + FailureBehavior = fbRaiseException + end + item + Name = 'Update ObrasEjecucionesPedidosProveedor' + DoInsert = False + DoDelete = False + DatasetName = 'ObrasEjecucionesPedidosProveedor' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete ObrasEjecucionesPedidosProveedor' + DoUpdate = False + DoInsert = False + DatasetName = 'ObrasEjecucionesPedidosProveedor' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete ObrasEjecucionesPresupuestos' + DoUpdate = False + DoInsert = False + DatasetName = 'ObrasEjecucionesPresupuestos' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete ObrasEjecuciones' + DoUpdate = False + DoInsert = False + DatasetName = 'ObrasEjecuciones' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete Obras' + DoUpdate = False + DoInsert = False + DatasetName = 'Obras' + FailureBehavior = fbRaiseException + end> + Version = 0 + Left = 48 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 80 + end + object bpObras: TDABusinessProcessor + Schema = schObras + InsertCommandName = 'Insert_Obras' + DeleteCommandName = 'Delete_Obras' + UpdateCommandName = 'Update_Obras' + ReferencedDataset = 'Obras' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 256 + Top = 24 + end + object bpObrasEjecuciones: TDABusinessProcessor + Schema = schObras + InsertCommandName = 'Insert_OBRAS_EJECUCIONES' + DeleteCommandName = 'Delete_OBRAS_EJECUCIONES' + UpdateCommandName = 'Update_OBRAS_EJECUCIONES' + ReferencedDataset = 'ObrasEjecuciones' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 256 + Top = 80 + end + object bpObrasEjecucionesPresupuestos: TDABusinessProcessor + Schema = schObras + InsertCommandName = 'Insert_OBRAS_EJECUCIONES_PRESUPUESTOS' + DeleteCommandName = 'Delete_OBRAS_EJECUCIONES_PRESUPUESTOS' + UpdateCommandName = 'Update_OBRAS_EJECUCIONES_PRESUPUESTOS' + ReferencedDataset = 'ObrasEjecucionesPresupuestos' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 256 + Top = 144 + end + object bpObrasEjecucionesPedidosProv: TDABusinessProcessor + Schema = schObras + InsertCommandName = 'Insert_OBRAS_EJECUCIONES_PEDIDOS_PROV' + DeleteCommandName = 'Delete_OBRAS_EJECUCIONES_PEDIDOS_PROV' + UpdateCommandName = 'Update_OBRAS_EJECUCIONES_PEDIDOS_PROV' + ReferencedDataset = 'ObrasEjecucionesPedidosProveedor' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 88 + Top = 144 + end +end diff --git a/Source/Modulos/Obras/Servidor/srvObras_Impl.pas b/Source/Modulos/Obras/Servidor/srvObras_Impl.pas new file mode 100644 index 0000000..d77f9d9 --- /dev/null +++ b/Source/Modulos/Obras/Servidor/srvObras_Impl.pas @@ -0,0 +1,123 @@ +unit srvObras_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} uDABusinessProcessor, uDABin2DataStreamer, uDADataStreamer, + uDAScriptingProvider, uDAClasses, + FactuGES_Intf, uDAInterfaces, uRORemoteDataModule; + +type + { TsrvObras } + TsrvObras = class(TDataAbstractService, IsrvObras) + Diagrams: TDADiagrams; + Bin2DataStreamer: TDABin2DataStreamer; + bpObras: TDABusinessProcessor; + bpObrasEjecuciones: TDABusinessProcessor; + bpObrasEjecucionesPresupuestos: TDABusinessProcessor; + bpObrasEjecucionesPedidosProv: TDABusinessProcessor; + schObras: TDASchema; + DataDictionary: TDADataDictionary; + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; + var aConnectionName: string); + procedure DARemoteServiceAfterGetDatasetData(const Dataset: IDADataset; + const IncludeSchema: Boolean; const MaxRecords: Integer); + procedure DARemoteServiceCreate(Sender: TObject); + protected + function DarListaObras(const IDEmpresa: Integer): Binary; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer, uROClasses, + uDatabaseUtils, schObrasClient_Intf, uRestriccionesUsuarioUtils, + uBizObrasServer, Variants; + +procedure Create_srvObras(out anInstance : IUnknown); +begin + anInstance := TsrvObras.Create(NIL); +end; + +{ srvObras } +procedure TsrvObras.DARemoteServiceAfterGetDatasetData( + const Dataset: IDADataset; const IncludeSchema: Boolean; + const MaxRecords: Integer); +begin + if Assigned(Dataset.FindField(fld_ObrasID_EMPRESA)) then + begin + { Aqu se asegura que el usuario slo accede a los Obras + de las empresas a las que tiene permiso para acceder + filtrando DataSet por ID_EMPRESA. } + FiltrarAccesoUsuario(Session, Connection, schObras, DataSet, fld_ObrasID_EMPRESA); + end; +end; + +procedure TsrvObras.DARemoteServiceCreate(Sender: TObject); +begin +// SessionManager := dmServer.SessionManager; + bpObras.BusinessRulesID := BIZ_SERVER_OBRA; +end; + +procedure TsrvObras.DataAbstractServiceBeforeAcquireConnection( + aSender: TObject; var aConnectionName: string); +begin + inherited; + ConnectionName := dmServer.ConnectionName; +end; + + +function TsrvObras.DarListaObras(const IDEmpresa: Integer): Binary; +var + ASchema : TDASchema; + AConn : IDAConnection; + dsData: IDADataset; + ALista : TStringList; +begin + Result := Binary.Create; + + ASchema := schObras; + AConn := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionManager.GetDefaultConnectionName); + + try + dsData := ASchema.NewDataset(AConn, 'ListaObras', ['ID_EMPRESA'], [IntToStr(IDEmpresa)]); + except + RaiseError('No existe la tabla ALMACENES'); + end; + + ALista := TStringList.Create; + try + dsData.Active := True; +// ALista.Sorted := True; + while not dsData.EOF do + begin + ALista.Add(Format('%s=%d', [dsData.Fields[1].AsString, dsData.Fields[0].AsInteger])); + dsData.Next; + end; + + ALista.SaveToStream(Result); + finally + FreeANDNIL(ALista); + dsData := NIL; + AConn := NIL; + end; +end; + +initialization + TROClassFactory.Create('srvObras', Create_srvObras, TsrvObras_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Obras/Views/Obras_view.bdsproj b/Source/Modulos/Obras/Views/Obras_view.bdsproj new file mode 100644 index 0000000..d013d17 --- /dev/null +++ b/Source/Modulos/Obras/Views/Obras_view.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + Obras_view.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Obras/Views/Obras_view.dcu b/Source/Modulos/Obras/Views/Obras_view.dcu new file mode 100644 index 0000000..da77da7 Binary files /dev/null and b/Source/Modulos/Obras/Views/Obras_view.dcu differ diff --git a/Source/Modulos/Obras/Views/Obras_view.dpk b/Source/Modulos/Obras/Views/Obras_view.dpk new file mode 100644 index 0000000..bdd5a9e --- /dev/null +++ b/Source/Modulos/Obras/Views/Obras_view.dpk @@ -0,0 +1,57 @@ +package Obras_view; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + Base, + GUIBase, + ApplicationBase, + Obras_controller, + Obras_model, + Contactos_view, + Contactos_controller, + Contactos_model, + PresupuestosCliente_model, + PresupuestosCliente_controller, + PedidosProveedor_model, + PedidosProveedor_controller; + +contains + uViewObra in 'uViewObra.pas' {frViewObra: TFrame}, + uViewObras in 'uViewObras.pas' {frViewObras: TFrame}, + uEditorObras in 'uEditorObras.pas' {fEditorObras: TfEditorObras}, + uObrasViewRegister in 'uObrasViewRegister.pas', + uEditorEjecucionObra in 'uEditorEjecucionObra.pas' {fEditorEjecucionObra: TfEditorEjecucionObra}, + uEditorListaObras in 'uEditorListaObras.pas' {fEditorListaObras: TfListaObras}, + uViewSubcontrataObra in 'uViewSubcontrataObra.pas' {frViewSubcontrataObra: TFrame}, + uViewClienteAsociadoObra in 'uViewClienteAsociadoObra.pas' {frViewClienteAsociadoObra: TFrame}, + uViewListaEjecucionesObra in 'uViewListaEjecucionesObra.pas' {frViewListaEjecucionesObra: TFrame}, + uViewEjecucionObra in 'uViewEjecucionObra.pas' {frViewEjecucionObra: TFrame}, + uViewListaPedidosProvObra in 'uViewListaPedidosProvObra.pas' {frViewListaPedidosProvObra: TFrame}, + uViewListaPresupuestosObra in 'uViewListaPresupuestosObra.pas' {frViewListaPresupuestosObra: TFrame}, + uEditorFechaCierreObra in 'uEditorFechaCierreObra.pas' {fEditorFechaCierreObra: TForm}, + uEditorObra in 'uEditorObra.pas' {fEditorObra: TfEditorObra}; + +end. diff --git a/Source/Modulos/Obras/Views/Obras_view.dproj b/Source/Modulos/Obras/Views/Obras_view.dproj new file mode 100644 index 0000000..9a154b4 --- /dev/null +++ b/Source/Modulos/Obras/Views/Obras_view.dproj @@ -0,0 +1,589 @@ + + + {104020b2-9525-4c3c-a798-91682eaa6666} + Obras_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Obras_view.bpl + + + 7.0 + False + False + 0 + RELEASE + + + 7.0 + ..\..\..\..\Output\Debug\Cliente + .\ + .\ + .\ + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Obras_view.dpk + + + + + MainSource + + + + + + + + + + + + + + +
fEditorEjecucionObra
+ TfEditorEjecucionObra +
+ +
fEditorFechaCierreObra
+ TForm +
+ +
fEditorListaObras
+ TfListaObras +
+ +
fEditorObra
+ TfEditorObra +
+ +
fEditorObras
+ TfEditorObras +
+ + +
frViewClienteAsociadoObra
+ TFrame +
+ +
frViewEjecucionObra
+ TFrame +
+ +
frViewListaEjecucionesObra
+ TFrame +
+ +
frViewListaPedidosProvObra
+ TFrame +
+ +
frViewListaPresupuestosObra
+ TFrame +
+ +
frViewObra
+ TFrame +
+ +
frViewObras
+ TFrame +
+ +
frViewSubcontrataObra
+ TFrame +
+
+
+ diff --git a/Source/Modulos/Obras/Views/Obras_view.identcache b/Source/Modulos/Obras/Views/Obras_view.identcache new file mode 100644 index 0000000..9d59f82 Binary files /dev/null and b/Source/Modulos/Obras/Views/Obras_view.identcache differ diff --git a/Source/Modulos/Obras/Views/Obras_view.rc b/Source/Modulos/Obras/Views/Obras_view.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Obras/Views/Obras_view.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Obras/Views/Obras_view.res b/Source/Modulos/Obras/Views/Obras_view.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Obras/Views/Obras_view.res differ diff --git a/Source/Modulos/Obras/Views/uEditorEjecucionObra.dcu b/Source/Modulos/Obras/Views/uEditorEjecucionObra.dcu new file mode 100644 index 0000000..4d1b03c Binary files /dev/null and b/Source/Modulos/Obras/Views/uEditorEjecucionObra.dcu differ diff --git a/Source/Modulos/Obras/Views/uEditorEjecucionObra.dfm b/Source/Modulos/Obras/Views/uEditorEjecucionObra.dfm new file mode 100644 index 0000000..3fc7c3d --- /dev/null +++ b/Source/Modulos/Obras/Views/uEditorEjecucionObra.dfm @@ -0,0 +1,164 @@ +inherited fEditorEjecucionObra: TfEditorEjecucionObra + Left = 374 + Top = 273 + HorzScrollBar.Visible = False + VertScrollBar.Visible = False + Caption = 'Ficha de obra' + ClientWidth = 632 + Scaled = False + OnClose = CustomEditorClose + ExplicitWidth = 640 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 632 + Caption = 'Obra' + ExplicitWidth = 632 + inherited Image1: TImage + Left = 605 + Picture.Data = { + 0B546478504E47496D61676589504E470D0A1A0A0000000D4948445200000018 + 000000180806000000E0773DF8000000017352474200AECE1CE9000000046741 + 4D410000B18F0BFC6105000000206348524D00007A26000080840000FA000000 + 80E8000075300000EA6000003A98000017709CBA513C00000009704859730000 + 17100000171001186111DB000001C149444154484BED564D4B025114B55D3FA3 + 4DAB7E444449DA0FC8428B3EC032A96428182209A4851F8B4C515A894A8A2DDC + B82985A2A581A4B4103547FA5C54532EDAB83B791F8C98683E29770DDCC5CC65 + CE79E7BC731F6F0080AAAF0F11F4B3FA0ACEDCE9E7EAB9086A6915940A040250 + 8A7E6E7E6FED35F6B69B0202C7E72082C120AAD52A6459462A956244C964128F + 0F7778975FF1F1F60CF9E509A57285F57A26A09F244942B15884CFE743229160 + 40D1681437B96B94F259940B5954CA0548B705D663E9E455208A2223884422F0 + FBFDB05AAD30AD9960773AE0F5B8E13970C27BE8C249EC1897E749E432578C9C + 9BC0303FC7C00541C0E2F21274333AE80D7A4CCFEAA0D6AAA1D14E403D3E8A0D + CB265C0E3B22E1506F04B81F83C5B28EED2D01E28EC83CA6A2D5C7E371A6C26C + 36B3EF93531AECDB6C4C299702B6D1750264EA8912350D700273AFAAA0D4D0F0 + 48A3675C31F211104823AA2DE00A412DBD80F4910ACD04D423122E0514D39F14 + 7422E01FB4FACAC91AA59A9347F6FC8A80C042E10B9C9EE5B1BB17FBE67F378B + B814FC13744DD1BF455C165144A928AEADA7EF9FCC8132039DE6808E89764705 + F71CB45E6B9A55504F39ECDA5D7FBE002E8A0FD064A100E60000000049454E44 + AE426082} + ExplicitLeft = 619 + ExplicitTop = -3 + ExplicitHeight = 27 + end + inherited lblDesbloquear: TcxLabel + Left = 507 + ExplicitLeft = 507 + end + end + inherited TBXDock: TTBXDock + Width = 632 + ExplicitWidth = 632 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 267 + inherited TBXItem2: TTBXItem + Visible = False + end + inherited TBXItem5: TTBXItem + Visible = False + end + inherited TBXItem23: TTBXItem + Visible = False + end + inherited TBXItem3: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + DockPos = 0 + ExplicitWidth = 632 + inherited TBXSubmenuItem4: TTBXSubmenuItem + inherited TBXItem8: TTBXItem + Visible = False + end + inherited TBXSeparatorItem5: TTBXSeparatorItem + Visible = False + end + inherited TBXItem10: TTBXItem + Visible = False + end + inherited TBXItem21: TTBXItem + Visible = False + end + inherited TBXItem22: TTBXItem + Visible = False + end + inherited TBXItem9: TTBXItem + Visible = False + end + end + inherited TBXSubmenuItem1: TTBXSubmenuItem + inherited TBXItem32: TTBXItem + Visible = False + end + inherited TBXItem31: TTBXItem + Visible = False + end + inherited TBXSeparatorItem13: TTBXSeparatorItem + Visible = False + end + end + end + end + inherited pgPaginas: TPageControl + Width = 626 + ExplicitWidth = 626 + inherited pagGeneral: TTabSheet + Caption = 'Datos de la ejecuci'#243'n' + ExplicitLeft = 4 + ExplicitTop = 24 + ExplicitWidth = 618 + ExplicitHeight = 332 + end + end + inherited StatusBar: TJvStatusBar + Width = 632 + Panels = < + item + Width = 200 + end> + ExplicitWidth = 632 + end + inherited EditorActionList: TActionList + Top = 128 + inherited actEliminar: TAction + Visible = False + end + end + inherited SmallImages: TPngImageList + Top = 112 + end + inherited dsDataTable: TDADataSource [6] + AutoEdit = False + Left = 16 + Top = 160 + end + inherited LargeImages: TPngImageList [7] + Top = 112 + end + inherited JvFormStorage: TJvFormStorage [8] + Left = 400 + Top = 144 + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage + Left = 432 + Top = 144 + end + inherited StatusBarImages: TPngImageList + Left = 16 + Top = 192 + end + object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList + Left = 16 + Top = 224 + object dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel + GroupOptions.CaptionOptions.Font.Charset = DEFAULT_CHARSET + GroupOptions.CaptionOptions.Font.Color = clWindowText + GroupOptions.CaptionOptions.Font.Height = -11 + GroupOptions.CaptionOptions.Font.Name = 'Tahoma' + GroupOptions.CaptionOptions.Font.Style = [fsBold] + GroupOptions.CaptionOptions.TextColor = clHighlight + GroupOptions.CaptionOptions.UseDefaultFont = False + end + end +end diff --git a/Source/Modulos/Obras/Views/uEditorEjecucionObra.pas b/Source/Modulos/Obras/Views/uEditorEjecucionObra.pas new file mode 100644 index 0000000..6a7ff64 --- /dev/null +++ b/Source/Modulos/Obras/Views/uEditorEjecucionObra.pas @@ -0,0 +1,189 @@ +unit uEditorEjecucionObra; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorDBItem, ToolWin, ComCtrls, JvExControls, JvComponent, + uViewObra, uBizObras, JvNavigationPane, ActnList, + uEditorBase, StdActns, TB2Dock, TB2Toolbar, TBX, ImgList, PngImageList, + TB2Item, uEditorItem, DB, uDADataTable, uEditorDBBase, JvFormAutoSize, + uDAScriptingProvider, uDACDSDataTable, StdCtrls, pngimage, ExtCtrls, + TBXDkPanels, JvButton, AppEvnts, uCustomView, uViewBase, + JvAppStorage, JvAppRegistryStorage, JvFormPlacement, JvComponentBase, + + uViewObras, uIEditorEjecucionObra, uObrasController, JvExComCtrls, + JvStatusBar, dxLayoutLookAndFeels, uDAInterfaces, dxGDIPlusClasses, + cxControls, cxContainer, cxEdit, cxLabel, uViewDetallesGenerico, + uViewListaEjecucionesObra, uViewEjecucionObra, Grids, DBGrids; + +type + TfEditorEjecucionObra = class(TfEditorDBItem, IEditorEjecucionObra) + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + procedure FormShow(Sender: TObject); + procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); + protected + FController : IObrasController; + FObra: IBizObra; + FViewEjecucionActual: IViewEjecucionObra; + + function GetController : IObrasController; + procedure SetController (const Value : IObrasController); virtual; + function GetObra: IBizObra; virtual; + procedure SetObra(const Value: IBizObra); virtual; + + procedure GuardarInterno; override; + procedure EliminarInterno; override; + + procedure PonerTitulos(const ATitulo: string = ''); override; + + //Si queremos crear otra vista para el editor heredado solo tendriamos que + //sobreescribir este metodo + procedure AsignarVista; virtual; + + public + property Obra: IBizObra read GetObra write SetObra; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + uCustomEditor, uDataModuleObras, uDataModuleBase, uDialogUtils; + +{function ShowEditorObra (ABizObject : TDADataTableRules): TModalResult; +var + AEditor: TfEditorObra; +begin + AEditor := TfEditorObra.Create(Application); + try + AEditor.Obra := (ABizObject as IBizObra); + Result := AEditor.ShowModal; + finally + AEditor.Release; + end; +end;} + +{ +******************************* TfEditorObra ******************************* +} +function TfEditorEjecucionObra.GetObra: IBizObra; +begin + Result := FObra; +end; + +function TfEditorEjecucionObra.GetController: IObrasController; +begin + Result := FController; +end; + +procedure TfEditorEjecucionObra.GuardarInterno; +begin + inherited; + + FController.Guardar(FObra); + Modified := False; +end; + +procedure TfEditorEjecucionObra.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + if Assigned(Obra) then + begin + if Obra.EsNuevo then + FTitulo := 'Nueva ejecucin de obra' + else + FTitulo := 'Ejecucin de la obra' + ' - ' + Obra.NOMBRE; + end; + + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorEjecucionObra.SetObra(const Value: IBizObra); +begin + FObra := Value; + dsDataTable.DataTable := FObra.DataTable; + + if Assigned(FViewEjecucionActual) and Assigned(FObra) then + begin + FViewEjecucionActual.Obra := FObra; + end + else + FViewEjecucionActual.Obra := NIL; +end; + +procedure TfEditorEjecucionObra.SetController(const Value: IObrasController); +begin + FController := Value; + if Assigned(FViewEjecucionActual) and Assigned(FController) then + FViewEjecucionActual.Controller := FController; +end; + +procedure TfEditorEjecucionObra.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(FViewEjecucionActual) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Obra) then + raise Exception.Create('No hay ninguna obra asignada'); + + Obra.DataTable.Active := True; + ReadOnly := True; + FViewEjecucionActual.ReadOnly := True; +end; + +destructor TfEditorEjecucionObra.Destroy; +begin + // Utilizar mejor OnClose; + inherited; +end; + +procedure TfEditorEjecucionObra.AsignarVista; +var + AViewEjecucion: TfrViewEjecucionObra; +begin + AViewEjecucion := TfrViewEjecucionObra.Create(NIL); + + with AViewEjecucion do + begin + Parent := pagGeneral; + Align := alClient; + dxLayoutControlEjecucionObra.LookAndFeel := dxLayoutOfficeLookAndFeel1; + Controller := FController; + Obra := FObra; + + end; + FViewEjecucionActual := AViewEjecucion; +end; + +constructor TfEditorEjecucionObra.Create(AOwner: TComponent); +begin + inherited; + pgPaginas.ActivePage := pagGeneral; + FViewEjecucionActual := NIL; + AsignarVista; +end; + +procedure TfEditorEjecucionObra.CustomEditorClose(Sender: TObject; + var Action: TCloseAction); +begin + inherited; + dsDataTable.DataTable := NIL; + FViewEjecucionActual := NIL; + FObra := NIL; +end; + +procedure TfEditorEjecucionObra.EliminarInterno; +begin +// +end; + +end. + diff --git a/Source/Modulos/Obras/Views/uEditorFechaCierreObra.dcu b/Source/Modulos/Obras/Views/uEditorFechaCierreObra.dcu new file mode 100644 index 0000000..233f1d9 Binary files /dev/null and b/Source/Modulos/Obras/Views/uEditorFechaCierreObra.dcu differ diff --git a/Source/Modulos/Obras/Views/uEditorFechaCierreObra.dfm b/Source/Modulos/Obras/Views/uEditorFechaCierreObra.dfm new file mode 100644 index 0000000..ccc7a96 --- /dev/null +++ b/Source/Modulos/Obras/Views/uEditorFechaCierreObra.dfm @@ -0,0 +1,61 @@ +object fEditorFechaCierreObra: TfEditorFechaCierreObra + Left = 0 + Top = 0 + BorderIcons = [biSystemMenu] + Caption = 'Fecha de cierre' + ClientHeight = 141 + ClientWidth = 253 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + FormStyle = fsStayOnTop + OldCreateOrder = False + Position = poMainFormCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object Label1: TLabel + Left = 8 + Top = 10 + Width = 237 + Height = 31 + Caption = 'Establezca la fecha de cierre para esta ejecuci'#243'n de obra:' + WordWrap = True + end + object edtFechaDecision: TcxDateEdit + Left = 48 + Top = 47 + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 169 + end + object bAceptar: TButton + Left = 85 + Top = 105 + Width = 75 + Height = 25 + Caption = 'Aceptar' + ModalResult = 1 + TabOrder = 1 + end + object bCancelar: TButton + Left = 166 + Top = 105 + Width = 75 + Height = 25 + Cancel = True + Caption = 'Cancelar' + ModalResult = 2 + TabOrder = 2 + end +end diff --git a/Source/Modulos/Obras/Views/uEditorFechaCierreObra.pas b/Source/Modulos/Obras/Views/uEditorFechaCierreObra.pas new file mode 100644 index 0000000..635ddd8 --- /dev/null +++ b/Source/Modulos/Obras/Views/uEditorFechaCierreObra.pas @@ -0,0 +1,43 @@ +unit uEditorFechaCierreObra; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, cxControls, cxContainer, + cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxCalendar, uIEditorFechaCierreObra; + +type + TfEditorFechaCierreObra = class(TForm, IEditorFechaCierreObra) + Label1: TLabel; + edtFechaDecision: TcxDateEdit; + bAceptar: TButton; + bCancelar: TButton; + procedure FormShow(Sender: TObject); + private + procedure SetFechaCierre (const Value : TDateTime); + function GetFechaCierre : TDateTime; + public + property FechaCierre : TDateTime read GetFechaCierre write SetFechaCierre; + end; + +implementation + +{$R *.dfm} + +procedure TfEditorFechaCierreObra.FormShow(Sender: TObject); +begin + edtFechaDecision.Date := now; +end; + +function TfEditorFechaCierreObra.GetFechaCierre: TDateTime; +begin + Result := edtFechaDecision.Date; +end; + +procedure TfEditorFechaCierreObra.SetFechaCierre(const Value: TDateTime); +begin + edtFechaDecision.Date := Value; +end; + +end. diff --git a/Source/Modulos/Obras/Views/uEditorListaObras.dcu b/Source/Modulos/Obras/Views/uEditorListaObras.dcu new file mode 100644 index 0000000..4cc215a Binary files /dev/null and b/Source/Modulos/Obras/Views/uEditorListaObras.dcu differ diff --git a/Source/Modulos/Obras/Views/uEditorListaObras.dfm b/Source/Modulos/Obras/Views/uEditorListaObras.dfm new file mode 100644 index 0000000..8eaad71 --- /dev/null +++ b/Source/Modulos/Obras/Views/uEditorListaObras.dfm @@ -0,0 +1,107 @@ +object fEditorListaObras: TfEditorListaObras + Left = 356 + Top = 461 + ActiveControl = cxObras + Caption = 'fEditorListaObras' + ClientHeight = 116 + ClientWidth = 355 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + PixelsPerInch = 96 + TextHeight = 13 + object Label1: TLabel + Left = 21 + Top = 42 + Width = 90 + Height = 13 + Caption = 'Nombre de la obra:' + end + object Label5: TLabel + Left = 9 + Top = 9 + Width = 62 + Height = 13 + Caption = 'Elegir obra' + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentFont = False + end + object Bevel1: TBevel + Left = 108 + Top = 9 + Width = 237 + Height = 9 + Shape = bsBottomLine + end + object cxObras: TcxLookupComboBox + Left = 128 + Top = 38 + Properties.KeyFieldNames = 'ID' + Properties.ListColumns = < + item + SortOrder = soAscending + FieldName = 'NOMBRE' + end> + Properties.ListOptions.AnsiSort = True + Properties.ListOptions.GridLines = glNone + Properties.ListOptions.ShowHeader = False + Properties.ListSource = DADataSource + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 217 + end + object pnlSeleccion: TPanel + Left = 0 + Top = 79 + Width = 355 + Height = 37 + Align = alBottom + BevelOuter = bvNone + TabOrder = 1 + DesignSize = ( + 355 + 37) + object bSeleccionar: TButton + Left = 192 + Top = 7 + Width = 74 + Height = 23 + Anchors = [akRight] + Caption = '&Seleccionar' + Default = True + ModalResult = 1 + TabOrder = 0 + end + object bCancelar: TButton + Left = 273 + Top = 7 + Width = 74 + Height = 23 + Anchors = [akRight] + Cancel = True + Caption = '&Cancelar' + ModalResult = 2 + TabOrder = 1 + end + end + object DADataSource: TDADataSource + Left = 84 + Top = 68 + end +end diff --git a/Source/Modulos/Obras/Views/uEditorListaObras.pas b/Source/Modulos/Obras/Views/uEditorListaObras.pas new file mode 100644 index 0000000..8fe7432 --- /dev/null +++ b/Source/Modulos/Obras/Views/uEditorListaObras.pas @@ -0,0 +1,84 @@ +unit uEditorListaObras; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxGraphics, cxControls, cxContainer, cxEdit, cxTextEdit, + cxMaskEdit, cxDropDownEdit, cxLookupEdit, cxDBLookupEdit, + cxDBLookupComboBox, DB, uDADataTable, uCustomView, uViewBase, + uViewBarraSeleccion, uBizObras, ExtCtrls, StdCtrls, + Grids, DBGrids, uIEditorListaObras, uDAInterfaces; + +type + TfEditorListaObras = class(TForm, IEditorListaObras) + DADataSource: TDADataSource; + Label1: TLabel; + Label5: TLabel; + Bevel1: TBevel; + cxObras: TcxLookupComboBox; + pnlSeleccion: TPanel; + bSeleccionar: TButton; + bCancelar: TButton; + private + FObras: IBizObra; + function GetObras: IBizObra; + procedure SetObras(const Value: IBizObra); + procedure localizarObra; + function GetObraSeleccionado: IBizObra; + public + property Obras: IBizObra read GetObras write SetObras; + property ObraSeleccionado: IBizObra read GetObraSeleccionado; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation +{$R *.dfm} + +uses uDataModuleObras, schObrasClient_Intf; + +{ TfListaObras } + +constructor TfEditorListaObras.Create(AOwner: TComponent); +begin + inherited; +end; + +destructor TfEditorListaObras.Destroy; +begin + FObras := Nil; + inherited; +end; + +function TfEditorListaObras.GetObras: IBizObra; +begin + Result := FObras; +end; + +function TfEditorListaObras.GetObraSeleccionado: IBizObra; +begin + localizarObra; + Result := FObras; +end; + +procedure TfEditorListaObras.localizarObra; +begin + FObras.First; + FObras.Locate(fld_OBRASNOMBRE, cxObras.Text); +end; + +procedure TfEditorListaObras.SetObras(const Value: IBizObra); +begin + FObras := Value; + if Assigned(FObras) then + begin + DADataSource.DataTable := FObras.DataTable; + FObras.DataTable.Active := True; + cxObras.ItemIndex := 0; + end + else + DADataSource.DataTable := Nil; +end; + +end. diff --git a/Source/Modulos/Obras/Views/uEditorObra.dcu b/Source/Modulos/Obras/Views/uEditorObra.dcu new file mode 100644 index 0000000..936310d Binary files /dev/null and b/Source/Modulos/Obras/Views/uEditorObra.dcu differ diff --git a/Source/Modulos/Obras/Views/uEditorObra.dfm b/Source/Modulos/Obras/Views/uEditorObra.dfm new file mode 100644 index 0000000..3a8c26b --- /dev/null +++ b/Source/Modulos/Obras/Views/uEditorObra.dfm @@ -0,0 +1,247 @@ +inherited fEditorObra: TfEditorObra + Left = 374 + Top = 273 + HorzScrollBar.Visible = False + VertScrollBar.Visible = False + Caption = 'Ficha de obra' + ClientWidth = 632 + Scaled = False + OnClose = CustomEditorClose + ExplicitWidth = 640 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 632 + Caption = 'Obra' + ExplicitWidth = 632 + inherited Image1: TImage + Left = 605 + Picture.Data = { + 0B546478504E47496D61676589504E470D0A1A0A0000000D4948445200000018 + 000000180806000000E0773DF8000000017352474200AECE1CE9000000046741 + 4D410000B18F0BFC6105000000206348524D00007A26000080840000FA000000 + 80E8000075300000EA6000003A98000017709CBA513C00000009704859730000 + 17100000171001186111DB000001C149444154484BED564D4B025114B55D3FA3 + 4DAB7E444449DA0FC8428B3EC032A96428182209A4851F8B4C515A894A8A2DDC + B82985A2A581A4B4103547FA5C54532EDAB83B791F8C98683E29770DDCC5CC65 + CE79E7BC731F6F0080AAAF0F11F4B3FA0ACEDCE9E7EAB9086A6915940A040250 + 8A7E6E7E6FED35F6B69B0202C7E72082C120AAD52A6459462A956244C964128F + 0F7778975FF1F1F60CF9E509A57285F57A26A09F244942B15884CFE743229160 + 40D1681437B96B94F259940B5954CA0548B705D663E9E455208A2223884422F0 + FBFDB05AAD30AD9960773AE0F5B8E13970C27BE8C249EC1897E749E432578C9C + 9BC0303FC7C00541C0E2F21274333AE80D7A4CCFEAA0D6AAA1D14E403D3E8A0D + CB265C0E3B22E1506F04B81F83C5B28EED2D01E28EC83CA6A2D5C7E371A6C26C + 36B3EF93531AECDB6C4C299702B6D1750264EA8912350D700273AFAAA0D4D0F0 + 48A3675C31F211104823AA2DE00A412DBD80F4910ACD04D423122E0514D39F14 + 7422E01FB4FACAC91AA59A9347F6FC8A80C042E10B9C9EE5B1BB17FBE67F378B + B814FC13744DD1BF455C165144A928AEADA7EF9FCC8132039DE6808E89764705 + F71CB45E6B9A55504F39ECDA5D7FBE002E8A0FD064A100E60000000049454E44 + AE426082} + ExplicitLeft = 619 + ExplicitTop = -3 + ExplicitHeight = 27 + end + inherited lblDesbloquear: TcxLabel + Left = 507 + ExplicitLeft = 507 + end + end + inherited TBXDock: TTBXDock + Width = 632 + ExplicitWidth = 632 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 632 + inherited TBXItem2: TTBXItem + Visible = False + end + inherited TBXItem5: TTBXItem + Visible = False + end + object TBXItem34: TTBXItem [7] + Action = actNuevaEjecucion + end + object TBXItem35: TTBXItem [8] + Action = actFinalizarEjecucion + end + inherited TBXItem23: TTBXItem + Visible = False + end + inherited TBXItem3: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + DockPos = 0 + ExplicitWidth = 632 + inherited TBXSubmenuItem4: TTBXSubmenuItem + inherited TBXItem8: TTBXItem + Visible = False + end + inherited TBXSeparatorItem5: TTBXSeparatorItem + Visible = False + end + inherited TBXItem10: TTBXItem + Visible = False + end + inherited TBXItem21: TTBXItem + Visible = False + end + inherited TBXItem22: TTBXItem + Visible = False + end + inherited TBXItem9: TTBXItem + Visible = False + end + end + inherited TBXSubmenuItem1: TTBXSubmenuItem + inherited TBXItem32: TTBXItem + Visible = False + end + inherited TBXItem31: TTBXItem + Visible = False + end + inherited TBXSeparatorItem13: TTBXSeparatorItem + Visible = False + end + end + object TBXSubmenuItem2: TTBXSubmenuItem [4] + Caption = 'A&cciones' + object TBXItem7: TTBXItem + Action = actNuevaEjecucion + end + object TBXItem33: TTBXItem + Action = actFinalizarEjecucion + end + end + end + end + inherited pgPaginas: TPageControl + Width = 626 + ActivePage = pagListaEjecuciones + OnChange = pgPaginasChange + ExplicitWidth = 626 + inherited pagGeneral: TTabSheet + ExplicitLeft = 4 + ExplicitTop = 24 + ExplicitWidth = 618 + ExplicitHeight = 290 + end + object pagEjecucionActual: TTabSheet + Caption = 'Ejecuci'#243'n en curso' + ImageIndex = 4 + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 0 + ExplicitHeight = 290 + end + object pagListaEjecuciones: TTabSheet + Caption = 'Lista de ejecuciones' + ImageIndex = 5 + inline frViewListaEjecucionesObra1: TfrViewListaEjecucionesObra + Left = 0 + Top = 0 + Width = 618 + Height = 332 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 618 + ExplicitHeight = 332 + inherited cxGrid: TcxGrid + Width = 618 + Height = 307 + ExplicitWidth = 618 + ExplicitHeight = 307 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = frViewListaEjecucionesObra1.cxGridViewIMPORTE_GASTOS + end + item + Kind = skSum + Column = frViewListaEjecucionesObra1.cxGridViewIMPORTE_INGRESOS + end + item + Kind = skSum + Column = frViewListaEjecucionesObra1.cxGridViewIMPORTE_TOTAL + end> + end + end + inherited ToolBar1: TToolBar + Width = 618 + ExplicitWidth = 618 + end + end + end + end + inherited StatusBar: TJvStatusBar + Width = 632 + Panels = < + item + Width = 200 + end> + ExplicitWidth = 632 + end + inherited EditorActionList: TActionList + Top = 128 + object actNuevaEjecucion: TAction + Category = 'Acciones' + Caption = 'Abrir una nueva ejecuci'#243'n' + OnExecute = actNuevaEjecucionExecute + OnUpdate = actNuevaEjecucionUpdate + end + object actFinalizarEjecucion: TAction + Category = 'Acciones' + Caption = 'Finalizar la ejecuci'#243'n en curso...' + OnExecute = actFinalizarEjecucionExecute + OnUpdate = actFinalizarEjecucionUpdate + end + end + inherited SmallImages: TPngImageList + Top = 112 + end + inherited dsDataTable: TDADataSource [6] + Left = 16 + Top = 160 + end + inherited LargeImages: TPngImageList [7] + Top = 112 + end + inherited JvFormStorage: TJvFormStorage [8] + Left = 400 + Top = 144 + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage + Left = 432 + Top = 144 + end + inherited StatusBarImages: TPngImageList + Left = 16 + Top = 192 + end + object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList + Left = 16 + Top = 224 + object dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel + GroupOptions.CaptionOptions.Font.Charset = DEFAULT_CHARSET + GroupOptions.CaptionOptions.Font.Color = clWindowText + GroupOptions.CaptionOptions.Font.Height = -11 + GroupOptions.CaptionOptions.Font.Name = 'Tahoma' + GroupOptions.CaptionOptions.Font.Style = [fsBold] + GroupOptions.CaptionOptions.TextColor = clHighlight + GroupOptions.CaptionOptions.UseDefaultFont = False + end + end + object dsEjecucionActiva: TDADataSource + OnDataChange = dsDataTableDataChange + Left = 40 + Top = 352 + end +end diff --git a/Source/Modulos/Obras/Views/uEditorObra.pas b/Source/Modulos/Obras/Views/uEditorObra.pas new file mode 100644 index 0000000..fbe3526 --- /dev/null +++ b/Source/Modulos/Obras/Views/uEditorObra.pas @@ -0,0 +1,329 @@ +unit uEditorObra; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorDBItem, ToolWin, ComCtrls, JvExControls, JvComponent, + uViewObra, uBizObras, JvNavigationPane, ActnList, + uEditorBase, StdActns, TB2Dock, TB2Toolbar, TBX, ImgList, PngImageList, + TB2Item, uEditorItem, DB, uDADataTable, uEditorDBBase, JvFormAutoSize, + uDAScriptingProvider, uDACDSDataTable, StdCtrls, pngimage, ExtCtrls, + TBXDkPanels, JvButton, AppEvnts, uCustomView, uViewBase, + JvAppStorage, JvAppRegistryStorage, JvFormPlacement, JvComponentBase, + + uViewObras, uIEditorObra, uObrasController, JvExComCtrls, + JvStatusBar, dxLayoutLookAndFeels, uDAInterfaces, dxGDIPlusClasses, + cxControls, cxContainer, cxEdit, cxLabel, uViewDetallesGenerico, + uViewListaEjecucionesObra, uViewEjecucionObra, Grids, DBGrids; + +type + TfEditorObra = class(TfEditorDBItem, IEditorObra) + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + pagEjecucionActual: TTabSheet; + pagListaEjecuciones: TTabSheet; + frViewListaEjecucionesObra1: TfrViewListaEjecucionesObra; + actNuevaEjecucion: TAction; + actFinalizarEjecucion: TAction; + TBXSubmenuItem2: TTBXSubmenuItem; + TBXItem7: TTBXItem; + TBXItem33: TTBXItem; + dsEjecucionActiva: TDADataSource; + TBXItem34: TTBXItem; + TBXItem35: TTBXItem; + procedure FormShow(Sender: TObject); + procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); + procedure actNuevaEjecucionExecute(Sender: TObject); + procedure actNuevaEjecucionUpdate(Sender: TObject); + procedure actFinalizarEjecucionExecute(Sender: TObject); + procedure actFinalizarEjecucionUpdate(Sender: TObject); + procedure pgPaginasChange(Sender: TObject); + protected + FController : IObrasController; + FObra: IBizObra; + FViewObra : IViewObra; + FViewEjecucionActual: IViewEjecucionObra; + + function GetController : IObrasController; + procedure SetController (const Value : IObrasController); virtual; + function GetObra: IBizObra; virtual; + procedure SetObra(const Value: IBizObra); virtual; + function GetViewObra: IViewObra; + procedure SetViewObra(const Value: IViewObra); + property ViewObra: IViewObra read GetViewObra write SetViewObra; + + procedure GuardarInterno; override; + procedure EliminarInterno; override; + + procedure PonerTitulos(const ATitulo: string = ''); override; + procedure ActualizarPestanas; + + //Si queremos crear otra vista para el editor heredado solo tendriamos que + //sobreescribir este metodo + procedure AsignarVista; virtual; + procedure AsignarVistaEjecucion; + procedure DestruirVistaEjecucion; + + public + property Obra: IBizObra read GetObra write SetObra; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + uCustomEditor, uDataModuleObras, uDataModuleBase, uDialogUtils; + +function ShowEditorObra (ABizObject : TDADataTableRules): TModalResult; +var + AEditor: TfEditorObra; +begin + AEditor := TfEditorObra.Create(Application); + try + AEditor.Obra := (ABizObject as IBizObra); + Result := AEditor.ShowModal; + finally + AEditor.Release; + end; +end; + +{ +******************************* TfEditorObra ******************************* +} +function TfEditorObra.GetObra: IBizObra; +begin + Result := FObra; +end; + +function TfEditorObra.GetController: IObrasController; +begin + Result := FController; +end; + +function TfEditorObra.GetViewObra: IViewObra; +begin + Result := FViewObra; +end; + +procedure TfEditorObra.GuardarInterno; +{var + FPresupuestos : IBizEjecucionPresupuestos;} +begin + inherited; + +{ FPresupuestos := NIL; + if Assigned(FViewEjecucionActual) then + FPresupuestos := FViewEjecucionActual.Presupuestos;} + + FController.Guardar(FObra); + Modified := False; +end; + +procedure TfEditorObra.pgPaginasChange(Sender: TObject); +begin + inherited; + if pgPaginas.ActivePage = pagEjecucionActual then + begin + if FObra.Ejecuciones.State in dsEditModes then + FObra.Ejecuciones.Post; + + FController.LocalizarEjecucionActiva(FObra.Ejecuciones) + end + else + if pgPaginas.ActivePage = pagListaEjecuciones then + FObra.Ejecuciones.First; +end; + +procedure TfEditorObra.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + if Assigned(Obra) then + begin + if Obra.EsNuevo then + FTitulo := 'Nueva obra' + else + FTitulo := 'Obra' + ' - ' + Obra.NOMBRE; + end; + + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorObra.SetObra(const Value: IBizObra); +begin + FObra := Value; + dsDataTable.DataTable := FObra.DataTable; + + if Assigned(FViewObra) and Assigned(FObra) then + begin + FViewObra.Obra := FObra; + dsEjecucionActiva.DataTable := FObra.Ejecuciones.DataTable; + frViewListaEjecucionesObra1.Obra := FObra; + frViewListaEjecucionesObra1.Controller := FController; + + if FController.LocalizarEjecucionActiva(FObra.Ejecuciones) then + AsignarVistaEjecucion + end + else begin + FViewObra.Obra := NIL; + dsEjecucionActiva.DataTable := NIL; + frViewListaEjecucionesObra1.Obra := NIL; + end; + ActualizarPestanas; +end; + +procedure TfEditorObra.SetController(const Value: IObrasController); +begin + FController := Value; + if Assigned(FViewObra) and Assigned(FController) then + FViewObra.Controller := FController; +end; + +procedure TfEditorObra.SetViewObra(const Value: IViewObra); +begin + FViewObra := Value; + + if Assigned(FViewObra) and Assigned(Obra) then + FViewObra.Obra := Obra; +end; + +procedure TfEditorObra.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(FViewObra) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Obra) then + raise Exception.Create('No hay ninguna obra asignada'); + + Obra.DataTable.Active := True; +end; + +destructor TfEditorObra.Destroy; +begin + // Utilizar mejor OnClose; + inherited; +end; + +procedure TfEditorObra.DestruirVistaEjecucion; +begin + FViewEjecucionActual := NIL; +end; + +procedure TfEditorObra.actFinalizarEjecucionExecute(Sender: TObject); +begin + if (ShowConfirmMessage('Finalizar la ejecucin en curso', 'La ejecucin actual pasar a ser histrica. Desea cerrar la ejecucin actual de la obra?') = IDYES) then + begin + ShowHourglassCursor; + try + FController.CerrarEjecucionActiva(FObra, Now); + DestruirVistaEjecucion; + ActualizarPestanas; + pgPaginas.ActivePageIndex := pagListaEjecuciones.PageIndex; + finally + HideHourglassCursor; + end; + end; +end; + +procedure TfEditorObra.actFinalizarEjecucionUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := not actNuevaEjecucion.Enabled; +end; + +procedure TfEditorObra.actNuevaEjecucionExecute(Sender: TObject); +begin + inherited; + + ShowHourglassCursor; + try + FObra.Ejecuciones.Insert; + AsignarVistaEjecucion; + ActualizarPestanas; + pgPaginas.ActivePageIndex := pagEjecucionActual.PageIndex; + finally + HideHourglassCursor; + end; +end; + + +procedure TfEditorObra.actNuevaEjecucionUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := not pagEjecucionActual.TabVisible; +end; + +procedure TfEditorObra.ActualizarPestanas; +begin + if Assigned(FViewEjecucionActual) then + pagEjecucionActual.TabVisible := True + else + pagEjecucionActual.TabVisible := False; +end; + +procedure TfEditorObra.AsignarVista; +var + AViewObra: TfrViewObra; +begin + AViewObra := TfrViewObra.Create(Self); + with AViewObra do + begin + Parent := pagGeneral; + Align := alClient; + dxLayoutControlObra.LookAndFeel := dxLayoutOfficeLookAndFeel1; + end; + ViewObra := AViewObra; +end; + +procedure TfEditorObra.AsignarVistaEjecucion; +var + AViewEjecucion: TfrViewEjecucionObra; +begin + AViewEjecucion := TfrViewEjecucionObra.Create(NIL); + + with AViewEjecucion do + begin + Parent := pagEjecucionActual; + Align := alClient; + dxLayoutControlEjecucionObra.LookAndFeel := dxLayoutOfficeLookAndFeel1; + Controller := FController; + Obra := FObra; + end; + FViewEjecucionActual := AViewEjecucion; +end; + +constructor TfEditorObra.Create(AOwner: TComponent); +begin + inherited; + pgPaginas.ActivePage := pagGeneral; + FViewEjecucionActual := NIL; + AsignarVista; +end; + +procedure TfEditorObra.CustomEditorClose(Sender: TObject; + var Action: TCloseAction); +begin + inherited; + dsDataTable.DataTable := NIL; + FViewObra := NIL; + FObra := NIL; +end; + +procedure TfEditorObra.EliminarInterno; +begin + if (ShowConfirmMessage('Eliminar la obra', 'Desea eliminar esta obra?') = IDYES) then + begin + inherited; + if not FController.Eliminar(FObra) then + actRefrescar.Execute; + end; +end; + +end. + diff --git a/Source/Modulos/Obras/Views/uEditorObras.dcu b/Source/Modulos/Obras/Views/uEditorObras.dcu new file mode 100644 index 0000000..44221f9 Binary files /dev/null and b/Source/Modulos/Obras/Views/uEditorObras.dcu differ diff --git a/Source/Modulos/Obras/Views/uEditorObras.dfm b/Source/Modulos/Obras/Views/uEditorObras.dfm new file mode 100644 index 0000000..d27d26e --- /dev/null +++ b/Source/Modulos/Obras/Views/uEditorObras.dfm @@ -0,0 +1,1542 @@ +inherited fEditorObras: TfEditorObras + Left = 489 + Top = 325 + Caption = 'Lista de obras' + ClientHeight = 503 + ClientWidth = 853 + ExplicitWidth = 861 + ExplicitHeight = 537 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 853 + Caption = 'Lista de obras' + ExplicitWidth = 853 + inherited Image1: TImage + Left = 826 + Picture.Data = { + 0B546478504E47496D61676589504E470D0A1A0A0000000D4948445200000018 + 000000180806000000E0773DF8000000017352474200AECE1CE9000000046741 + 4D410000B18F0BFC6105000000206348524D00007A26000080840000FA000000 + 80E8000075300000EA6000003A98000017709CBA513C00000009704859730000 + 17100000171001186111DB000001C149444154484BED564D4B025114B55D3FA3 + 4DAB7E444449DA0FC8428B3EC032A96428182209A4851F8B4C515A894A8A2DDC + B82985A2A581A4B4103547FA5C54532EDAB83B791F8C98683E29770DDCC5CC65 + CE79E7BC731F6F0080AAAF0F11F4B3FA0ACEDCE9E7EAB9086A6915940A040250 + 8A7E6E7E6FED35F6B69B0202C7E72082C120AAD52A6459462A956244C964128F + 0F7778975FF1F1F60CF9E509A57285F57A26A09F244942B15884CFE743229160 + 40D1681437B96B94F259940B5954CA0548B705D663E9E455208A2223884422F0 + FBFDB05AAD30AD9960773AE0F5B8E13970C27BE8C249EC1897E749E432578C9C + 9BC0303FC7C00541C0E2F21274333AE80D7A4CCFEAA0D6AAA1D14E403D3E8A0D + CB265C0E3B22E1506F04B81F83C5B28EED2D01E28EC83CA6A2D5C7E371A6C26C + 36B3EF93531AECDB6C4C299702B6D1750264EA8912350D700273AFAAA0D4D0F0 + 48A3675C31F211104823AA2DE00A412DBD80F4910ACD04D423122E0514D39F14 + 7422E01FB4FACAC91AA59A9347F6FC8A80C042E10B9C9EE5B1BB17FBE67F378B + B814FC13744DD1BF455C165144A928AEADA7EF9FCC8132039DE6808E89764705 + F71CB45E6B9A55504F39ECDA5D7FBE002E8A0FD064A100E60000000049454E44 + AE426082} + ExplicitLeft = 826 + end + end + inherited TBXDock: TTBXDock + Width = 853 + ExplicitWidth = 853 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 617 + end + inherited tbxFiltro: TTBXToolbar + ExplicitWidth = 269 + inherited tbxEditFiltro: TTBXEditItem + EditOptions = [tboUseEditWhenVertical] + end + inherited TBXItem37: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 853 + end + inherited TBXTMain2: TTBXToolbar + Left = 275 + DockPos = 275 + ExplicitLeft = 275 + end + end + inherited StatusBar: TJvStatusBar + Top = 484 + Width = 853 + ExplicitTop = 484 + ExplicitWidth = 853 + end + inline frViewObras1: TfrViewObras [3] + Left = 0 + Top = 102 + Width = 853 + Height = 382 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 102 + ExplicitWidth = 853 + ExplicitHeight = 382 + inherited cxGrid: TcxGrid + Width = 853 + Height = 254 + ExplicitWidth = 853 + ExplicitHeight = 254 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = '0 obras' + Kind = skCount + Column = frViewObras1.cxGridViewNOMBRE + end> + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 853 + ExplicitWidth = 853 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 853 + inherited dxLayoutControl1: TdxLayoutControl + Width = 853 + ExplicitWidth = 853 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 756 + Width = 756 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 225 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 225 + ExplicitWidth = 121 + Width = 121 + end + inherited eLista: TcxComboBox + Left = 383 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 383 + ExplicitWidth = 460 + Width = 460 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 853 + ExplicitWidth = 853 + inherited tbxBotones: TTBXToolbar + Width = 843 + ExplicitWidth = 843 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 356 + ExplicitTop = 356 + ExplicitWidth = 853 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 853 + ExplicitWidth = 853 + inherited TBXToolbar1: TTBXToolbar + Width = 843 + ExplicitWidth = 843 + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39213.829884791670000000 + BuiltInReportLink = True + end + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewObras1.cxGridView + HitTypes = [gvhtCell] + Index = 0 + end> + end + end + inherited EditorActionList: TActionList [4] + inherited actNuevo: TAction + ImageIndex = 22 + end + end + inherited SmallImages: TPngImageList [5] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000002704944415478DA + 8593DB4B545114C6BF333AFB8CCD3853A11686162811410F1118241524984951 + 0F864F520F3DE8D3FC0DD183145949E12814D1850A9CA2871294A8208BC1862E + 2814836578BF4D9A8D9EBD679A4E6B9D33C7697AB0058BBD38ECEFB7D7FA1647 + 936F607AF6410305D7FA17E07C773946A646D1DE0E0483583334F30E4C554145 + 6508E6700B18903C9CAD7BA64E63B0FF39829D8FF0333E83C5D971CA49DCB874 + 16F1AD0DD0D46CC814BD2D6008078BB8764097CFB45AE2C5D9090B30333A8CBB + 1D17D070A20E5DEF7DD481692239D769B2D8F4B7D86D2D85ACD311FF989BC4D2 + FC34BE4F8FE1E69573387AE4100A7D5E5C1BD0A13973AB93B65014374329B2E4 + 5D76CEA1A9562416E2B8DF7511C7EA6BE05D57004DD36C007BC09718A0EB5669 + 01F4EE2CA0F92A01A9D3EABD7B50B2A908C29D0F97CB9501AC3142AC27826432 + 052525FA9EF4A3627B19021B0210C24D10373AA21EDB44769CB7C0663AE16C26 + 7AAF0FD248E2D58BB728DF560AFF7A1FDC04D0751DD73FFAB21EFCBD3AAE9DCD + BC7E590F432A44238328DD528242BF176E9D3AD0056E7FDA687BD0D60BD4D59E + 4265E52D0B104D3442190AD5C58FF13456439E280C7E88A1A828001F01841010 + 1E81075F37DB1EB435692603D2E9DF48A914E48AB2440641944C522AC43E7F43 + 61C00B9FB7003A89798487136559406D4D1389E832CD2B0D099911328481E363 + D3F014084A0F3CD4FEB3E59D0887C3DA2AE06075235D94D68B2B7C2A06290BC4 + 677C7E0179F92E7A596020AFCA12DBFF420650B5FB784ECB9CD2B0C5067D5B4E + 2CF3750CF9F7AF8A7300BB76D459C6392F33C8C87490FE95A65392F8408E3807 + 10910DF85FFC2BE6F80376357B8923C9356C0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002694944415478DA + B594CB6B134118C0BFB9743D6841A48A1E5A1FF1502A5AA555A3584544BDE829 + 1E04C58B87E4A247FF84EAA168AD90A017C17A908882082A8A50A15AAD448B0F + D0F8A8252D4A1A2D096477670DE37C3B997D249B6636E007C37C330BBFDF3CBE + 59C21803F305615A9411E061E75F7972C233AE7E6B25080A60943073031F4492 + C0BE240005F4909B4B59CB029A4FB1B64709400906423197A28BA7072137F72B + 347C64D22062073C50823D6B4F08733169F7083F9BBA0385D96F502E2EF0F607 + F4D2028CDDBE09EBD7AD8223E792F6BC5EFAEDFB3E742F0BE9749A10E3393067 + D5C704B8AD230EA6C94F25E3AE6646BFAA0CBF3E320885AE9810B01B42605F28 + 17689A18A2404BBB82A9A51794E1AB97AF84F7ED0355419323CAFF5801F3B9EF + A1E0183E01C2B162B08AF0B29D1D552B2BF3704609BEB1732D509302A57FFD02 + 59FBDED2C45C56D6A5F39D4DE1DB36F5D870D3B4EC3EB36497E788F83BC05A8F + 6F276C78585C78FCB2D845EA8C9B378A81683F58D472E0D84F903EFF1D600C9D + 24ECF0C1534DEBBB52A9701007EA149E3C18879ECD117E2C964F3246B7B426F0 + C211F4ECE924F4F675DB70AFE471A93BBCA0168EA097E36F21BA672BE8BAE193 + DC9F8F841304C1B17FF3FA23EC3BB0838FA94F7277AE4B5DD0088E731FDE656D + 81789CAEE4D6F41A35C162705C69F6D3B423F04A463F773417D4C2CB6543801D + 9105B3B99F3E81945C9B5AB6B8C0811862B5A65CB5078E2D9F2FD409AEBCD26C + 38E681025538CE178B259FC00B0F14ECDF7B5C198E7760188623A885070A76EF + 8C29C331A420081E28E8EF3DAA0C9702F9E70C7A3F758209230661A311BC4EF0 + 3FE21F497E40FE838101750000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [7] + end + inherited dsDataTable: TDADataSource [9] + end + inherited StatusBarImages: TPngImageList [10] + Top = 232 + end +end diff --git a/Source/Modulos/Obras/Views/uEditorObras.pas b/Source/Modulos/Obras/Views/uEditorObras.pas new file mode 100644 index 0000000..9496275 --- /dev/null +++ b/Source/Modulos/Obras/Views/uEditorObras.pas @@ -0,0 +1,151 @@ +unit uEditorObras; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorBase, ToolWin, ComCtrls, JvExControls, JvComponent, + JvNavigationPane, uViewObras, uBizObras, ActnList, DBActns, uViewGrid, + Menus, uDataModuleBase, ImgList, PngImageList, TB2Dock, TB2Toolbar, TBX, + TB2Item, StdActns, TB2ExtItems, TBXExtItems, TB2MRU, DB, uDADataTable, + JvFormAutoSize, uDAScriptingProvider, uDACDSDataTable, JvAppStorage, + JvAppRegistryStorage, JvFormPlacement, ExtCtrls, uCustomView, uViewBase, + uViewBarraSeleccion, pngimage, uIEditorObras, uEditorGridBase, + JvComponentBase, uViewGridBase, uObrasController, JvExComCtrls, + JvStatusBar, uDAInterfaces, dxGDIPlusClasses; + +type + TfEditorObras = class(TfEditorGridBase, IEditorObras) + frViewObras1: TfrViewObras; + procedure FormShow(Sender: TObject); + private + FObras: IBizObra; + FController : IObrasController; + protected + function GetObras: IBizObra; + procedure SetObras(const Value: IBizObra); + function GetController : IObrasController; virtual; + procedure SetController (const Value : IObrasController); virtual; + + procedure NuevoInterno; override; + procedure EliminarInterno; override; + procedure ModificarInterno; override; + procedure DuplicarInterno; override; + + public + procedure PonerTitulos(const ATitulo: string = ''); override; + property Obras: IBizObra read GetObras write SetObras; + property Controller : IObrasController read GetController write SetController; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +uses + uCustomEditor, uDataModuleObras, uDataModuleUsuarios, + uEditorObra, uEditorDBBase, uFactuGES_App, + cxGrid, cxGridCustomTableView; //, uListaObras; + +{$R *.dfm} + +{ +****************************** TfEditorObras ******************************* +} +procedure TfEditorObras.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Obras) then + raise Exception.Create('No hay ningún Obra asignado'); + + Obras.DataTable.Active := True; + ViewGrid.GotoFirst; +end; + +function TfEditorObras.GetObras: IBizObra; +begin + Result := FObras; +end; + +function TfEditorObras.GetController: IObrasController; +begin + Result := FController; +end; + +procedure TfEditorObras.ModificarInterno; +begin + inherited; + FController.Ver(Obras); +end; + +procedure TfEditorObras.NuevoInterno; +begin + inherited; + FController.Anadir(Obras); + FController.Ver(Obras); +end; + +procedure TfEditorObras.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := 'Lista de obras - ' + AppFactuGES.EmpresaActiva.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorObras.SetObras(const Value: IBizObra); +begin + FObras := Value; + dsDataTable.DataTable := FObras.DataTable; + if Assigned(ViewGrid) then + (ViewGrid as IViewObras).Obras := Obras; +end; + +procedure TfEditorObras.SetController(const Value: IObrasController); +begin + FController := Value; +end; + +destructor TfEditorObras.Destroy; +begin + FObras := NIL; + inherited; +end; + +procedure TfEditorObras.DuplicarInterno; +var + AObra : IBizObra; +begin + inherited; + AObra := FController.Duplicar(Obras); + try + FController.Ver(AObra); + finally + actRefrescar.Execute; + end; +end; + +procedure TfEditorObras.EliminarInterno; +begin + + if (Application.MessageBox('¿Desea borrar esta obra?', 'Atención', MB_YESNO) = IDYES) then + begin + inherited; + //Para que en el caso de no poderse realizar la operación se refresquen + //los datos y no nos permita eliminar un registro a la segunda + if not FController.Eliminar(Obras) then + actRefrescar.Execute; + end; +end; + +constructor TfEditorObras.Create(AOwner: TComponent); +begin + inherited; + ViewGrid := frViewObras1; //CreateView(TfrViewObras) as IViewObras; +end; + +end. diff --git a/Source/Modulos/Obras/Views/uListaObras.dfm b/Source/Modulos/Obras/Views/uListaObras.dfm new file mode 100644 index 0000000..a877c4a --- /dev/null +++ b/Source/Modulos/Obras/Views/uListaObras.dfm @@ -0,0 +1,103 @@ +object fListaObras: TfListaObras + Left = 356 + Top = 461 + ActiveControl = cxObras + Caption = 'fListaObras' + ClientHeight = 116 + ClientWidth = 355 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + PixelsPerInch = 96 + TextHeight = 13 + object Label1: TLabel + Left = 21 + Top = 42 + Width = 100 + Height = 13 + Caption = 'Nombre de la obra:' + end + object Label5: TLabel + Left = 9 + Top = 9 + Width = 84 + Height = 13 + Caption = 'Elegir obra' + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentFont = False + end + object Bevel1: TBevel + Left = 108 + Top = 9 + Width = 237 + Height = 9 + Shape = bsBottomLine + end + object cxObras: TcxLookupComboBox + Left = 128 + Top = 38 + Properties.KeyFieldNames = 'CODIGO' + Properties.ListColumns = < + item + SortOrder = soAscending + FieldName = 'NOMBRE' + end> + Properties.ListOptions.AnsiSort = True + Properties.ListOptions.GridLines = glNone + Properties.ListOptions.ShowHeader = False + Properties.ListSource = DADataSource + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 217 + end + object pnlSeleccion: TPanel + Left = 0 + Top = 79 + Width = 355 + Height = 37 + Align = alBottom + BevelOuter = bvNone + TabOrder = 1 + DesignSize = ( + 355 + 37) + object bSeleccionar: TButton + Left = 192 + Top = 7 + Width = 74 + Height = 23 + Anchors = [akRight] + Caption = '&Seleccionar' + Default = True + ModalResult = 1 + TabOrder = 0 + OnClick = bSeleccionarClick + end + object bCancelar: TButton + Left = 273 + Top = 7 + Width = 74 + Height = 23 + Anchors = [akRight] + Cancel = True + Caption = '&Cancelar' + ModalResult = 2 + TabOrder = 1 + end + end + object DADataSource: TDADataSource + Left = 84 + Top = 68 + end +end diff --git a/Source/Modulos/Obras/Views/uListaObras.pas b/Source/Modulos/Obras/Views/uListaObras.pas new file mode 100644 index 0000000..297c341 --- /dev/null +++ b/Source/Modulos/Obras/Views/uListaObras.pas @@ -0,0 +1,76 @@ +unit uListaObras; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxGraphics, cxControls, cxContainer, cxEdit, cxTextEdit, + cxMaskEdit, cxDropDownEdit, cxLookupEdit, cxDBLookupEdit, + cxDBLookupComboBox, DB, uDADataTable, uCustomView, uViewBase, + uViewBarraSeleccion, uBizObras, ExtCtrls, StdCtrls, + Grids, DBGrids; + +type + TfListaObras = class(TForm) + DADataSource: TDADataSource; + Label1: TLabel; + Label5: TLabel; + Bevel1: TBevel; + cxObras: TcxLookupComboBox; + pnlSeleccion: TPanel; + bSeleccionar: TButton; + bCancelar: TButton; + procedure bSeleccionarClick(Sender: TObject); + private + FObras: IBizObra; + function GetObras: IBizObra; + procedure SetObra(const Value: IBizObra); + public + property Obras: IBizObra read GetObras write SetObra; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation +{$R *.dfm} + +uses uDataModuleObras, schObrasClient_Intf; + +{ TfListaObras } + +constructor TfListaObras.Create(AOwner: TComponent); +begin + inherited; +end; + +destructor TfListaObras.Destroy; +begin + FObras := Nil; + inherited; +end; + +function TfListaObras.GetObras: IBizObra; +begin + Result := FObras; +end; + +procedure TfListaObras.SetObra(const Value: IBizObra); +begin + FObras := Value; + if Assigned(FObras) then + begin + DADataSource.DataTable := FObras.DataTable; + FObras.DataTable.Active := True; + cxObras.ItemIndex := 0; + end + else + DADataSource.DataTable := Nil; +end; + +procedure TfListaObras.bSeleccionarClick(Sender: TObject); +begin + FObras.First; + FObras.Locate(fld_OBRASNOMBRE, cxObras.Text); +end; + +end. diff --git a/Source/Modulos/Obras/Views/uObrasViewRegister.dcu b/Source/Modulos/Obras/Views/uObrasViewRegister.dcu new file mode 100644 index 0000000..b576bff Binary files /dev/null and b/Source/Modulos/Obras/Views/uObrasViewRegister.dcu differ diff --git a/Source/Modulos/Obras/Views/uObrasViewRegister.pas b/Source/Modulos/Obras/Views/uObrasViewRegister.pas new file mode 100644 index 0000000..7075f17 --- /dev/null +++ b/Source/Modulos/Obras/Views/uObrasViewRegister.pas @@ -0,0 +1,32 @@ +unit uObrasViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorObras, uEditorObra, uEditorListaObras, + uEditorFechaCierreObra, uEditorEjecucionObra; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorObra, 'EditorObra'); + EditorRegistry.RegisterClass(TfEditorObras, 'EditorObras'); + EditorRegistry.RegisterClass(TfEditorListaObras, 'EditorListaObras'); + EditorRegistry.RegisterClass(TfEditorFechaCierreObra, 'EditorFechaCierreObra'); + EditorRegistry.RegisterClass(TfEditorEjecucionObra, 'EditorEjecucionObra'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorObra); + EditorRegistry.UnRegisterClass(TfEditorObras); + EditorRegistry.UnRegisterClass(TfEditorListaObras); + EditorRegistry.UnRegisterClass(TfEditorFechaCierreObra); + EditorRegistry.UnRegisterClass(TfEditorEjecucionObra); +end; + +end. diff --git a/Source/Modulos/Obras/Views/uViewClienteAsociadoObra.dcu b/Source/Modulos/Obras/Views/uViewClienteAsociadoObra.dcu new file mode 100644 index 0000000..c805ef1 Binary files /dev/null and b/Source/Modulos/Obras/Views/uViewClienteAsociadoObra.dcu differ diff --git a/Source/Modulos/Obras/Views/uViewClienteAsociadoObra.dfm b/Source/Modulos/Obras/Views/uViewClienteAsociadoObra.dfm new file mode 100644 index 0000000..3fbc202 --- /dev/null +++ b/Source/Modulos/Obras/Views/uViewClienteAsociadoObra.dfm @@ -0,0 +1,77 @@ +inherited frViewClienteAsociadoObra: TfrViewClienteAsociadoObra + Width = 420 + Height = 247 + ExplicitWidth = 420 + ExplicitHeight = 247 + inherited dxLayoutControl1: TdxLayoutControl + Width = 420 + Height = 247 + ExplicitWidth = 518 + ExplicitHeight = 219 + DesignSize = ( + 420 + 247) + inherited edtNIFCIF: TcxDBTextEdit + Top = 99 + TabOrder = 4 + ExplicitTop = 99 + end + inherited edtCalle: TcxDBTextEdit + Top = 126 + TabOrder = 5 + ExplicitTop = 126 + end + inherited edtPoblacion: TcxDBTextEdit + Top = 153 + TabOrder = 6 + ExplicitTop = 153 + end + inherited edtProvincia: TcxDBTextEdit + Top = 180 + TabOrder = 8 + ExplicitTop = 180 + end + inherited edtCodigoPostal: TcxDBTextEdit + Left = 328 + Top = 153 + TabOrder = 7 + ExplicitLeft = 328 + ExplicitTop = 153 + end + inherited Button3: TBitBtn + Left = 218 + Top = 68 + TabOrder = 3 + ExplicitLeft = 218 + ExplicitTop = 68 + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Item9: TdxLayoutItem [2] + end + inherited dxLayoutControl1Item2: TdxLayoutItem [3] + Visible = False + end + inherited dxLayoutControl1Item3: TdxLayoutItem [4] + Visible = False + end + inherited dxLayoutControl1Group2: TdxLayoutGroup [5] + Visible = False + end + inherited dxLayoutControl1Item5: TdxLayoutItem [6] + Visible = False + end + end + end + inherited DADataSource: TDADataSource + Left = 280 + Top = 8 + end + inherited ActionList1: TActionList + Left = 312 + Top = 8 + end + inherited PngImageList: TPngImageList + Left = 344 + Top = 8 + end +end diff --git a/Source/Modulos/Obras/Views/uViewClienteAsociadoObra.pas b/Source/Modulos/Obras/Views/uViewClienteAsociadoObra.pas new file mode 100644 index 0000000..9f94612 --- /dev/null +++ b/Source/Modulos/Obras/Views/uViewClienteAsociadoObra.pas @@ -0,0 +1,24 @@ +unit uViewClienteAsociadoObra; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewDatosYSeleccionCliente, ImgList, PngImageList, ActnList, DB, + uDAInterfaces, uDADataTable, dxLayoutControl, StdCtrls, Buttons, cxContainer, + cxEdit, cxTextEdit, cxDBEdit, cxControls; + +type + TfrViewClienteAsociadoObra = class(TfrViewDatosYSeleccionCliente) + private + { Private declarations } + public + { Public declarations } + end; + + +implementation + +{$R *.dfm} + +end. diff --git a/Source/Modulos/Obras/Views/uViewEjecucionObra.dcu b/Source/Modulos/Obras/Views/uViewEjecucionObra.dcu new file mode 100644 index 0000000..3cca259 Binary files /dev/null and b/Source/Modulos/Obras/Views/uViewEjecucionObra.dcu differ diff --git a/Source/Modulos/Obras/Views/uViewEjecucionObra.dfm b/Source/Modulos/Obras/Views/uViewEjecucionObra.dfm new file mode 100644 index 0000000..25a13ad --- /dev/null +++ b/Source/Modulos/Obras/Views/uViewEjecucionObra.dfm @@ -0,0 +1,450 @@ +inherited frViewEjecucionObra: TfrViewEjecucionObra + Width = 836 + Height = 601 + OnCreate = CustomViewCreate + OnDestroy = CustomViewDestroy + OnShow = CustomViewShow + ExplicitWidth = 836 + ExplicitHeight = 601 + object dxLayoutControlEjecucionObra: TdxLayoutControl + Left = 0 + Top = 0 + Width = 836 + Height = 601 + Align = alClient + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + DesignSize = ( + 836 + 601) + object Bevel4: TBevel + Left = 22 + Top = 543 + Width = 347 + Height = 9 + Shape = bsBottomLine + end + object edtFecha: TcxDBDateEdit + Left = 115 + Top = 30 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_INICIO' + DataBinding.DataSource = dsEjecucion + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 0 + Width = 158 + end + object bCancelarEjecucion: TButton + Left = 685 + Top = 28 + Width = 129 + Height = 25 + Action = actCancelarEjecucion + TabOrder = 1 + end + object ImporteBase: TcxDBCurrencyEdit + Left = 115 + Top = 489 + AutoSize = False + DataBinding.DataField = 'IMPORTE_GASTOS' + DataBinding.DataSource = dsEjecucion + ParentFont = False + Properties.Alignment.Horz = taRightJustify + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Properties.UseThousandSeparator = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clBtnFace + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clWindowText + Style.Font.Height = -11 + Style.Font.Name = 'Tahoma' + Style.Font.Style = [] + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.TextColor = clWindowText + Style.TextStyle = [] + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 6 + Height = 21 + Width = 254 + end + object ImporteIVA: TcxDBCurrencyEdit + Left = 115 + Top = 516 + AutoSize = False + DataBinding.DataField = 'IMPORTE_INGRESOS' + DataBinding.DataSource = dsEjecucion + ParentFont = False + Properties.Alignment.Horz = taRightJustify + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Properties.UseThousandSeparator = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clBtnFace + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clWindowText + Style.Font.Height = -11 + Style.Font.Name = 'Tahoma' + Style.Font.Style = [] + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.TextColor = clWindowText + Style.TextStyle = [] + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 7 + Height = 21 + Width = 254 + end + object ImporteTotal: TcxDBCurrencyEdit + Left = 115 + Top = 558 + AutoSize = False + DataBinding.DataField = 'IMPORTE_TOTAL' + DataBinding.DataSource = dsEjecucion + ParentFont = False + Properties.Alignment.Horz = taRightJustify + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Properties.UseThousandSeparator = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clBtnFace + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clWindowText + Style.Font.Height = -11 + Style.Font.Name = 'Tahoma' + Style.Font.Style = [] + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.TextColor = clWindowText + Style.TextStyle = [fsBold] + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 8 + Height = 21 + Width = 254 + end + inline frViewListaPresupuestosObra1: TfrViewListaPresupuestosObra + Left = 22 + Top = 120 + Width = 645 + Height = 103 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 4 + ReadOnly = False + ExplicitLeft = 22 + ExplicitTop = 120 + ExplicitWidth = 645 + ExplicitHeight = 103 + inherited cxGrid: TcxGrid + Width = 645 + Height = 78 + ExplicitWidth = 645 + ExplicitHeight = 78 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = frViewListaPresupuestosObra1.cxGridViewBASE_IMPONIBLE + end> + end + end + inherited ToolBar1: TToolBar + Width = 645 + ExplicitWidth = 645 + end + inherited dsDetalles: TDADataSource + Left = 56 + Top = 32 + end + inherited ContenidoImageList: TPngImageList + Left = 88 + Top = 32 + end + inherited ActionListContenido: TActionList + Left = 24 + Top = 32 + end + end + inline frViewListaPedidosProvObra1: TfrViewListaPedidosProvObra + Left = 22 + Top = 294 + Width = 645 + Height = 119 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 5 + ReadOnly = False + ExplicitLeft = 22 + ExplicitTop = 294 + ExplicitWidth = 645 + ExplicitHeight = 119 + inherited cxGrid: TcxGrid + Width = 645 + Height = 94 + ExplicitWidth = 645 + ExplicitHeight = 94 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = frViewListaPedidosProvObra1.cxGridViewBASE_IMPONIBLE + end> + end + end + inherited ToolBar1: TToolBar + Width = 645 + ExplicitWidth = 645 + end + inherited dsDetalles: TDADataSource + Left = 24 + Top = 32 + end + inherited ContenidoImageList: TPngImageList + Left = 88 + Top = 32 + end + inherited ActionListContenido: TActionList + Left = 56 + Top = 32 + end + end + object bElegirSubcontrata: TBitBtn + Left = 422 + Top = 59 + Width = 120 + Height = 25 + Caption = 'Elegir subcontrata' + TabOrder = 3 + OnClick = bElegirSubcontrataClick + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FF00FF00FF00 + FF00FF00FF00EB00EB00C507C600AB13AD00A119A2009F19A000A215A400AA10 + AC00B608B800CE00CE00EF00EF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00B118C10040407B00344A830031498F002F4596002F4499002F4597003148 + 900033498500374678005A3E5300D201D200FF00FF00FF00FF00FF00FF00FF00 + FF004E42860035508100314990002E429C002C3CA6002B3AAA002B3BA7002D40 + 9E0030479200344F840038577500A0189F00FF00FF00FF00FF00FF00FF00FF00 + FF004C428900334D89002F4499002B3CA8002835B4002631BB002734B6002A3A + AB002E429C00324B8C0036537B00B015B100FF00FF00FF00FF00FF00FF00FF00 + FF008726B300324A8D002D409E002938AF003138B6007A7BCB002830BF002835 + B2002D3FA10031499000483B8700EC01EC00FF00FF00FF00FF00FF00FF00FF00 + FF00F002F60051379D002D409F002937B000808AA300D2D3D3008181BB002834 + B2002D3FA2003A3F9300C511CE00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00EE02F4007324B7003C359300598CAE00498CBB004A81A600392A + 71005929A600D608E100FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00EA0CF400608CD00054A2D80053A1D6004F9DD300488B + C2009D11AC00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF008C67DE005CA9DD005CA9DD005AA7DC0056A4D900519F + D400565FAB00EA00EA00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00EC0DF60060A7DE0063B0E30063B0E30061AEE1005CA9DD0056A4 + D9004E94CC00C105C600FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00C532ED0066B2E5006BB7E9006BB7E90067B3E60061AEE1005AA7 + DC00539FD500A817BE00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00BA3AE7004989B1004A85AC005895BD0068B2E30064B0E4005CA9 + DE0053A0D400AA1BC300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00CA23E8005098C400539AC7004E93BE00437DA2005190BA005198 + C6003C79A000BE08C300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00F804FC006995D40062ACDA005DA6D3005299C6004284AD003C7F + A900535AA100F300F300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00C140ED0071BAEA0068B2E00059A1CF004990BC004378 + AA00C315D600FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00C83EF000808BDF00668BCC007C60C700D116 + E400FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} + end + object edtlNombre: TcxDBTextEdit + Left = 115 + Top = 61 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'NOMBRE' + DataBinding.DataSource = dsEjecucion + Enabled = False + ParentFont = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 2 + Height = 21 + Width = 301 + end + object dxLayoutControlEjecucionObraGroup_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControlEjecucionObraGroup1: TdxLayoutGroup + Caption = 'Datos de la ejecuci'#243'n en curso' + object dxLayoutControlEjecucionObraGroup5: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControlEjecucionObraItem1: TdxLayoutItem + AutoAligns = [] + AlignVert = avCenter + Caption = 'Inicio:' + Control = edtFecha + ControlOptions.ShowBorder = False + end + object dxLayoutControlEjecucionObraItem2: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + ShowCaption = False + Control = bCancelarEjecucion + ControlOptions.ShowBorder = False + end + end + object dxLayoutControlEjecucionObraGroup6: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControlEjecucionObraItem10: TdxLayoutItem + AutoAligns = [aaHorizontal] + AlignVert = avCenter + Caption = 'Subcontrata:' + Control = edtlNombre + ControlOptions.ShowBorder = False + end + object dxLayoutControlEjecucionObraItem11: TdxLayoutItem + ShowCaption = False + Control = bElegirSubcontrata + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControlEjecucionObraGroup4: TdxLayoutGroup + AutoAligns = [aaHorizontal] + AlignVert = avClient + Caption = 'Lista de presupuestos de la obra' + object dxLayoutControlEjecucionObraItem8: TdxLayoutItem + AutoAligns = [aaHorizontal] + AlignVert = avClient + Control = frViewListaPresupuestosObra1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + end + object dxLayoutControlEjecucionObraGroup3: TdxLayoutGroup + AutoAligns = [aaHorizontal] + AlignVert = avClient + Caption = 'Lista de pedidos a proveedor de la obra' + object dxLayoutControlEjecucionObraItem9: TdxLayoutItem + AutoAligns = [aaHorizontal] + AlignVert = avClient + Control = frViewListaPedidosProvObra1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + end + object dxLayoutControlEjecucionObraGroup2: TdxLayoutGroup + AutoAligns = [aaHorizontal] + AlignVert = avBottom + Caption = 'C'#225'lculo de costes de la ejecuci'#243'n' + object dxLayoutControlEjecucionObraItem4: TdxLayoutItem + AutoAligns = [aaVertical] + Caption = 'Suma de gastos:' + Control = ImporteBase + ControlOptions.ShowBorder = False + end + object dxLayoutControlEjecucionObraItem5: TdxLayoutItem + AutoAligns = [aaVertical] + Caption = 'Suma de ingresos:' + Control = ImporteIVA + ControlOptions.ShowBorder = False + end + object dxLayoutControlEjecucionObraItem7: TdxLayoutItem + AutoAligns = [aaVertical] + Control = Bevel4 + ControlOptions.ShowBorder = False + end + object dxLayoutControlEjecucionObraItem6: TdxLayoutItem + AutoAligns = [aaVertical] + Caption = 'Beneficio total:' + Control = ImporteTotal + ControlOptions.ShowBorder = False + end + end + end + end + object dsEjecucion: TDADataSource + Left = 24 + Top = 16 + end + object ActionList1: TActionList + Left = 16 + Top = 88 + object actFinEjecucion: TAction + Caption = 'Finalizar ejecuci'#243'n...' + OnExecute = actFinEjecucionExecute + end + object actCancelarEjecucion: TAction + Caption = 'Cancelar ejecuci'#243'n' + end + end +end diff --git a/Source/Modulos/Obras/Views/uViewEjecucionObra.pas b/Source/Modulos/Obras/Views/uViewEjecucionObra.pas new file mode 100644 index 0000000..a34edd9 --- /dev/null +++ b/Source/Modulos/Obras/Views/uViewEjecucionObra.pas @@ -0,0 +1,181 @@ +unit uViewEjecucionObra; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, dxLayoutControl, cxControls, uBizObras, DB, uDAInterfaces, + uDADataTable, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, + cxCalendar, cxDBEdit, uCustomView, uViewDatosYSeleccionProveedor, + uViewSubcontrataObra, StdCtrls, ActnList, ComCtrls, ExtCtrls, cxCurrencyEdit, + uViewListaPedidosProvObra, uViewDetallesGenerico, uViewListaPresupuestosObra, + Buttons, uProveedoresController, uObrasController; + +type + IViewEjecucionObra = interface(IViewBase) + ['{09B874DF-8A3B-4775-8617-4B4F834EEB25}'] + function GetObra: IBizObra; + procedure SetObra(const Value: IBizObra); + property Obra: IBizObra read GetObra write SetObra; + + function GetController : IObrasController; + procedure SetController (const Value : IObrasController); + property Controller : IObrasController read GetController write SetController; + end; + + + TfrViewEjecucionObra = class(TfrViewBase, IViewEjecucionObra) + dxLayoutControlEjecucionObraGroup_Root: TdxLayoutGroup; + dxLayoutControlEjecucionObra: TdxLayoutControl; + dxLayoutControlEjecucionObraGroup1: TdxLayoutGroup; + dxLayoutControlEjecucionObraGroup2: TdxLayoutGroup; + dsEjecucion: TDADataSource; + dxLayoutControlEjecucionObraItem1: TdxLayoutItem; + edtFecha: TcxDBDateEdit; + ActionList1: TActionList; + actFinEjecucion: TAction; + actCancelarEjecucion: TAction; + dxLayoutControlEjecucionObraItem2: TdxLayoutItem; + bCancelarEjecucion: TButton; + dxLayoutControlEjecucionObraGroup3: TdxLayoutGroup; + dxLayoutControlEjecucionObraItem4: TdxLayoutItem; + ImporteBase: TcxDBCurrencyEdit; + dxLayoutControlEjecucionObraItem5: TdxLayoutItem; + ImporteIVA: TcxDBCurrencyEdit; + dxLayoutControlEjecucionObraItem6: TdxLayoutItem; + ImporteTotal: TcxDBCurrencyEdit; + dxLayoutControlEjecucionObraItem7: TdxLayoutItem; + Bevel4: TBevel; + dxLayoutControlEjecucionObraItem8: TdxLayoutItem; + frViewListaPresupuestosObra1: TfrViewListaPresupuestosObra; + dxLayoutControlEjecucionObraItem9: TdxLayoutItem; + frViewListaPedidosProvObra1: TfrViewListaPedidosProvObra; + dxLayoutControlEjecucionObraGroup4: TdxLayoutGroup; + dxLayoutControlEjecucionObraGroup5: TdxLayoutGroup; + dxLayoutControlEjecucionObraItem11: TdxLayoutItem; + bElegirSubcontrata: TBitBtn; + dxLayoutControlEjecucionObraItem10: TdxLayoutItem; + edtlNombre: TcxDBTextEdit; + dxLayoutControlEjecucionObraGroup6: TdxLayoutGroup; + procedure CustomViewShow(Sender: TObject); + procedure actFinEjecucionExecute(Sender: TObject); + procedure bElegirSubcontrataClick(Sender: TObject); + procedure CustomViewCreate(Sender: TObject); + procedure CustomViewDestroy(Sender: TObject); + protected + FObra : IBizObra; + FEjecucion : IBizEjecucionesObra; + FObrasController : IObrasController; + FProveedoresController : IProveedoresController; + FPresupuestos : IBizEjecucionPresupuestos; + function GetObra: IBizObra; + procedure SetObra(const Value: IBizObra); + + function GetController : IObrasController; + procedure SetController (const Value : IObrasController); + + public + property Controller : IObrasController read GetController write SetController; + property Obra: IBizObra read GetObra write SetObra; + end; + +implementation + +{$R *.dfm} + +{ TfrViewEjecucionObra } + +uses + uDialogUtils, uEditorObra, uBizContactos; + +procedure TfrViewEjecucionObra.actFinEjecucionExecute(Sender: TObject); +begin + inherited; + if (Parent is TfEditorObra) then + (Parent as TfEditorObra).actFinalizarEjecucion.Execute; +end; + +procedure TfrViewEjecucionObra.bElegirSubcontrataClick(Sender: TObject); +var + ASubcontratas : IBizProveedor; + ASubcontrata : IBizProveedor; +begin + inherited; + ASubcontratas := IBizProveedor(FProveedoresController.BuscarSubcontratas); + try + ASubcontrata := IBizProveedor(FProveedoresController.ElegirContacto(ASubcontratas, 'Elija la subcontrata de esta ejecucin de obra', False)); + finally + ASubcontratas := NIL; + end; + + if Assigned(ASubcontrata) then + begin + try + ASubcontrata.Open; + FObra.Ejecuciones.Edit; + FObra.Ejecuciones.ID_SUBCONTRATA := ASubcontrata.ID; + FObra.Ejecuciones.NOMBRE := ASubcontrata.NOMBRE; + finally + ASubcontrata := NIL; + end; + end; +end; + +procedure TfrViewEjecucionObra.CustomViewCreate(Sender: TObject); +begin + inherited; + FProveedoresController := TProveedoresController.Create; +end; + +procedure TfrViewEjecucionObra.CustomViewDestroy(Sender: TObject); +begin + inherited; + FProveedoresController := NIL; +end; + +procedure TfrViewEjecucionObra.CustomViewShow(Sender: TObject); +begin + inherited; + bCancelarEjecucion.Visible := False; +end; + +function TfrViewEjecucionObra.GetController: IObrasController; +begin + Result := FObrasController; +end; + +function TfrViewEjecucionObra.GetObra: IBizObra; +begin + Result := FObra; +end; + +procedure TfrViewEjecucionObra.SetController(const Value: IObrasController); +begin + FObrasController := Value; + frViewListaPresupuestosObra1.Controller := FObrasController; +end; + +procedure TfrViewEjecucionObra.SetObra(const Value: IBizObra); +begin + FObra := Value; + + if Assigned(FObra) then + begin + FEjecucion := FObra.Ejecuciones; + dsEjecucion.DataTable := FEjecucion.DataTable; + + FPresupuestos := FEjecucion.Presupuestos; + frViewListaPresupuestosObra1.Obra := FObra; + frViewListaPedidosProvObra1.Obra := FObra; + end + else begin + FEjecucion := NIL; + FObra := NIL; + dsEjecucion.DataTable := NIL; + FPresupuestos := NIL; + frViewListaPresupuestosObra1.Obra := NIL; + frViewListaPedidosProvObra1.Obra := NIL; + end; +end; + +end. diff --git a/Source/Modulos/Obras/Views/uViewListaEjecucionesObra.dcu b/Source/Modulos/Obras/Views/uViewListaEjecucionesObra.dcu new file mode 100644 index 0000000..ebed9b1 Binary files /dev/null and b/Source/Modulos/Obras/Views/uViewListaEjecucionesObra.dcu differ diff --git a/Source/Modulos/Obras/Views/uViewListaEjecucionesObra.dfm b/Source/Modulos/Obras/Views/uViewListaEjecucionesObra.dfm new file mode 100644 index 0000000..e74e8b8 --- /dev/null +++ b/Source/Modulos/Obras/Views/uViewListaEjecucionesObra.dfm @@ -0,0 +1,126 @@ +inherited frViewListaEjecucionesObra: TfrViewListaEjecucionesObra + Width = 697 + Height = 435 + OnCreate = CustomViewCreate + ExplicitWidth = 697 + ExplicitHeight = 435 + inherited cxGrid: TcxGrid + Width = 697 + Height = 410 + ExplicitWidth = 697 + ExplicitHeight = 410 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = cxGridViewIMPORTE_GASTOS + end + item + Kind = skSum + Column = cxGridViewIMPORTE_INGRESOS + end + item + Kind = skSum + Column = cxGridViewIMPORTE_TOTAL + end> + OptionsData.Appending = False + OptionsData.Deleting = False + OptionsData.DeletingConfirmation = False + OptionsData.Editing = False + OptionsData.Inserting = False + OptionsView.Footer = True + OptionsView.FooterAutoHeight = True + object cxGridViewFECHA_INICIO: TcxGridDBColumn + Caption = 'Inicio' + DataBinding.FieldName = 'FECHA_INICIO' + PropertiesClassName = 'TcxDateEditProperties' + BestFitMaxWidth = 65 + MinWidth = 65 + Width = 65 + end + object cxGridViewFECHA_FIN: TcxGridDBColumn + Caption = 'Finalizaci'#243'n' + DataBinding.FieldName = 'FECHA_FIN' + PropertiesClassName = 'TcxDateEditProperties' + BestFitMaxWidth = 65 + MinWidth = 65 + Width = 65 + end + object cxGridViewSUBCONTRATA: TcxGridDBColumn + Caption = 'Subcontrata' + DataBinding.FieldName = 'NOMBRE' + PropertiesClassName = 'TcxTextEditProperties' + Width = 425 + end + object cxGridViewIMPORTE_GASTOS: TcxGridDBColumn + Caption = 'Gastos' + DataBinding.FieldName = 'IMPORTE_GASTOS' + PropertiesClassName = 'TcxCurrencyEditProperties' + BestFitMaxWidth = 75 + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + MinWidth = 75 + Width = 75 + end + object cxGridViewIMPORTE_INGRESOS: TcxGridDBColumn + Caption = 'Ingresos' + DataBinding.FieldName = 'IMPORTE_INGRESOS' + PropertiesClassName = 'TcxCurrencyEditProperties' + BestFitMaxWidth = 75 + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + MinWidth = 75 + Width = 75 + end + object cxGridViewIMPORTE_TOTAL: TcxGridDBColumn + Caption = 'Total' + DataBinding.FieldName = 'IMPORTE_TOTAL' + PropertiesClassName = 'TcxCurrencyEditProperties' + BestFitMaxWidth = 75 + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + MinWidth = 75 + Width = 75 + end + end + end + inherited ToolBar1: TToolBar + Width = 697 + ButtonWidth = 133 + ExplicitWidth = 697 + inherited ToolButton1: TToolButton + ExplicitWidth = 62 + end + inherited ToolButton4: TToolButton + ExplicitWidth = 137 + end + inherited ToolButton5: TToolButton + Left = 199 + ExplicitLeft = 199 + end + inherited ToolButton2: TToolButton + Left = 207 + Visible = False + ExplicitLeft = 207 + ExplicitWidth = 67 + end + inherited ToolButton6: TToolButton + Left = 274 + ExplicitLeft = 274 + end + inherited ToolButton7: TToolButton + Left = 282 + ExplicitLeft = 282 + ExplicitWidth = 117 + end + end + inherited ActionListContenido: TActionList + inherited actAnadir: TAction + Enabled = False + Visible = False + end + inherited actModificar: TAction + Caption = 'Consultar ejecuci'#243'n...' + end + end +end diff --git a/Source/Modulos/Obras/Views/uViewListaEjecucionesObra.pas b/Source/Modulos/Obras/Views/uViewListaEjecucionesObra.pas new file mode 100644 index 0000000..5b57014 --- /dev/null +++ b/Source/Modulos/Obras/Views/uViewListaEjecucionesObra.pas @@ -0,0 +1,116 @@ +unit uViewListaEjecucionesObra; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewDetallesGenerico, cxStyles, cxCustomData, cxGraphics, cxFilter, + cxData, cxDataStorage, cxEdit, DB, cxDBData, ActnList, ImgList, PngImageList, + uDAInterfaces, uDADataTable, ComCtrls, ToolWin, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, uBizObras, cxCalendar, cxTextEdit, + cxCurrencyEdit, uObrasController; + +type + IViewListaEjecucionesObra = interface(IViewDetallesGenerico) + ['{EBDB67B7-145D-45D4-9C9D-384FD06686D0}'] + function GetObra: IBizObra; + procedure SetObra(const Value: IBizObra); + property Obra: IBizObra read GetObra write SetObra; + + function GetController : IObrasController; + procedure SetController (const Value : IObrasController); + property Controller : IObrasController read GetController write SetController; + end; + + TfrViewListaEjecucionesObra = class(TfrViewDetallesGenerico, IViewListaEjecucionesObra) + cxGridViewFECHA_INICIO: TcxGridDBColumn; + cxGridViewFECHA_FIN: TcxGridDBColumn; + cxGridViewSUBCONTRATA: TcxGridDBColumn; + cxGridViewIMPORTE_GASTOS: TcxGridDBColumn; + cxGridViewIMPORTE_INGRESOS: TcxGridDBColumn; + cxGridViewIMPORTE_TOTAL: TcxGridDBColumn; + procedure CustomViewCreate(Sender: TObject); + procedure actModificarExecute(Sender: TObject); + private + FObrasController : IObrasController; + FObra : IBizObra; + FEjecuciones : IBizEjecucionesObra; + + function AddFilterGrid( + const Operacion: tcxFilterBoolOperatorKind): TcxFilterCriteriaItemList; + + function GetObra: IBizObra; + procedure SetObra(const Value: IBizObra); + + function GetController : IObrasController; + procedure SetController (const Value : IObrasController); + public + property Obra: IBizObra read GetObra write SetObra; + property Controller : IObrasController read GetController write SetController; + end; + +implementation + +{$R *.dfm} + +procedure TfrViewListaEjecucionesObra.actModificarExecute(Sender: TObject); +begin + inherited; + FObrasController.VerEjecucion(FObra); +end; + +function TfrViewListaEjecucionesObra.AddFilterGrid(const Operacion: tcxFilterBoolOperatorKind): TcxFilterCriteriaItemList; +var + AItemList: TcxFilterCriteriaItemList; +begin + AItemList := cxGridView.DataController.Filter.Root; + Result := AItemList.AddItemList(Operacion); +end; + + +procedure TfrViewListaEjecucionesObra.CustomViewCreate(Sender: TObject); +var + FFiltro : TcxFilterCriteriaItemList; +begin + inherited; + + FFiltro := AddFilterGrid(fboAnd); + FFiltro.AddItem(cxGridViewFECHA_FIN, foNotEqual, NULL, 'Ejecuciones terminadas'); + cxGridView.DataController.Filter.Active := True; +end; + +function TfrViewListaEjecucionesObra.GetController: IObrasController; +begin + Result := FObrasController; +end; + +function TfrViewListaEjecucionesObra.GetObra: IBizObra; +begin + Result := FObra; +end; + +procedure TfrViewListaEjecucionesObra.SetController( + const Value: IObrasController); +begin + FObrasController := Value; +end; + +procedure TfrViewListaEjecucionesObra.SetObra(const Value: IBizObra); +begin + FObra := Value; + + if Assigned(FObra) then + begin + FObra.Active := True; + FEjecuciones := FObra.Ejecuciones; + dsDetalles.DataTable := FEjecuciones.DataTable; + end + else begin + FObra := NIL; + FEjecuciones := NIL; + dsDetalles.DataTable := NIL; + end; +end; + +end. diff --git a/Source/Modulos/Obras/Views/uViewListaPedidosProvObra.dcu b/Source/Modulos/Obras/Views/uViewListaPedidosProvObra.dcu new file mode 100644 index 0000000..8166b4b Binary files /dev/null and b/Source/Modulos/Obras/Views/uViewListaPedidosProvObra.dcu differ diff --git a/Source/Modulos/Obras/Views/uViewListaPedidosProvObra.dfm b/Source/Modulos/Obras/Views/uViewListaPedidosProvObra.dfm new file mode 100644 index 0000000..702c892 --- /dev/null +++ b/Source/Modulos/Obras/Views/uViewListaPedidosProvObra.dfm @@ -0,0 +1,111 @@ +inherited frViewListaPedidosProvObra: TfrViewListaPedidosProvObra + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = cxGridViewBASE_IMPONIBLE + end> + OptionsView.Footer = True + object cxGridViewREFERENCIA: TcxGridDBColumn + DataBinding.FieldName = 'REFERENCIA' + PropertiesClassName = 'TcxTextEditProperties' + Properties.ReadOnly = True + BestFitMaxWidth = 30 + Width = 30 + end + object cxGridViewFECHA_PEDIDO: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_PEDIDO' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ReadOnly = True + BestFitMaxWidth = 30 + Width = 30 + end + object cxGridViewSITUACION: TcxGridDBColumn + DataBinding.FieldName = 'SITUACION' + PropertiesClassName = 'TcxTextEditProperties' + Properties.ReadOnly = True + BestFitMaxWidth = 30 + Width = 30 + end + object cxGridViewNOMBRE: TcxGridDBColumn + DataBinding.FieldName = 'NOMBRE' + PropertiesClassName = 'TcxTextEditProperties' + Properties.ReadOnly = True + Width = 80 + end + object cxGridViewID_PRESUPUESTO: TcxGridDBColumn + Caption = 'Presupuesto de origen' + DataBinding.FieldName = 'ID_PRESUPUESTO' + PropertiesClassName = 'TcxLookupComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.DropDownSizeable = True + Properties.DropDownWidth = 320 + Properties.ImmediatePost = True + Properties.ListColumns = < + item + Caption = 'Referencia' + Width = 30 + FieldName = 'REFERENCIA' + end + item + Caption = 'Cliente' + Width = 64 + FieldName = 'NOMBRE' + end + item + Caption = 'Fecha' + Width = 30 + FieldName = 'FECHA_PRESUPUESTO' + end> + BestFitMaxWidth = 30 + Width = 30 + end + object cxGridViewBASE_IMPONIBLE: TcxGridDBColumn + DataBinding.FieldName = 'BASE_IMPONIBLE' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.ReadOnly = True + BestFitMaxWidth = 55 + Width = 55 + end + end + end + inherited ToolBar1: TToolBar + inherited ToolButton1: TToolButton + ExplicitWidth = 104 + end + inherited ToolButton4: TToolButton + Left = 104 + ExplicitLeft = 104 + ExplicitWidth = 74 + end + inherited ToolButton5: TToolButton + Left = 178 + ExplicitLeft = 178 + end + inherited ToolButton2: TToolButton + Left = 186 + ExplicitLeft = 186 + ExplicitWidth = 67 + end + inherited ToolButton6: TToolButton + Left = 253 + ExplicitLeft = 253 + end + inherited ToolButton7: TToolButton + Left = 261 + ExplicitLeft = 261 + ExplicitWidth = 117 + end + end + inherited ActionListContenido: TActionList + inherited actAnadir: TAction + Caption = 'Elegir pedido...' + end + end + object dsPresupuestos: TDADataSource + Left = 40 + Top = 184 + end +end diff --git a/Source/Modulos/Obras/Views/uViewListaPedidosProvObra.pas b/Source/Modulos/Obras/Views/uViewListaPedidosProvObra.pas new file mode 100644 index 0000000..f2e4bb5 --- /dev/null +++ b/Source/Modulos/Obras/Views/uViewListaPedidosProvObra.pas @@ -0,0 +1,244 @@ +unit uViewListaPedidosProvObra; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewDetallesGenerico, cxStyles, cxCustomData, cxGraphics, cxFilter, + cxData, cxDataStorage, cxEdit, DB, cxDBData, ActnList, ImgList, PngImageList, + uDAInterfaces, uDADataTable, ComCtrls, ToolWin, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, uBizObras, uBizPedidosProveedor, + uPedidosProveedorController, cxCalendar, cxTextEdit, cxCurrencyEdit, + cxDBLookupComboBox; + +type + IViewListaPedidosProvObra = interface(IViewDetallesGenerico) + ['{3DF64147-679B-4BE5-A984-98099D57C84D}'] + function GetObra: IBizObra; + procedure SetObra(const Value: IBizObra); + property Obra: IBizObra read GetObra write SetObra; + end; + + TfrViewListaPedidosProvObra = class(TfrViewDetallesGenerico, IViewListaPedidosProvObra) + cxGridViewFECHA_PEDIDO: TcxGridDBColumn; + cxGridViewSITUACION: TcxGridDBColumn; + cxGridViewNOMBRE: TcxGridDBColumn; + cxGridViewREFERENCIA: TcxGridDBColumn; + cxGridViewBASE_IMPONIBLE: TcxGridDBColumn; + cxGridViewID_PRESUPUESTO: TcxGridDBColumn; + dsPresupuestos: TDADataSource; + private + procedure CopiarDatosPedido(APedido: IBizPedidoProveedor); + function BuscarPedidosParaElegir: IBizPedidoProveedor; + { Private declarations } + protected + FObra : IBizObra; + FPedidosProvEjecucion: IBizEjecucionPedidosProveedor; + FPedidosProvController : IPedidosProveedorController; + function GetObra: IBizObra; + procedure SetObra(const Value: IBizObra); + + procedure AnadirInterno; override; + procedure ModificarInterno; override; + procedure EliminarInterno; override; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + property Obra: IBizObra read GetObra write SetObra; + end; + +implementation + +uses uDataModuleObras; + +{$R *.dfm} + +{ TfrViewListaPedidosProvObra } + +procedure TfrViewListaPedidosProvObra.AnadirInterno; +var + APedidosProv : IBizPedidoProveedor; + APedido : IBizPedidoProveedor; +begin + // inherited; <- No llamar al padre porque queremos tratamiento especial. + APedidosProv := BuscarPedidosParaElegir; + try + APedido := FPedidosProvController.ElegirPedidos(APedidosProv, 'Elija el pedido que desea asociar a la ejecucin de esta obra', False); + if Assigned(APedido) then + begin + APedido.Open; + FPedidosProvEjecucion.Insert; + CopiarDatosPedido(APedido); + + FObra.Ejecuciones.Edit; + FObra.Ejecuciones.IMPORTE_GASTOS := FObra.Ejecuciones.IMPORTE_GASTOS + FPedidosProvEjecucion.BASE_IMPONIBLE; + FObra.Ejecuciones.RecalcularBeneficio; + end; + finally + APedido := NIL; + APedidosProv := NIL; + end; +end; + +constructor TfrViewListaPedidosProvObra.Create(AOwner: TComponent); +begin + inherited; + FPedidosProvController := TPedidosProveedorController.Create; + + with TcxLookupComboBoxProperties(cxGridViewID_PRESUPUESTO.Properties) do + begin + ListSource := dsPresupuestos; + ListFieldNames := 'REFERENCIA;NOMBRE;FECHA_PRESUPUESTO'; + KeyFieldNames := 'ID_PRESUPUESTO'; + end; +end; + +destructor TfrViewListaPedidosProvObra.Destroy; +begin + FPedidosProvEjecucion := NIL; + FObra := NIL; + FPedidosProvController := NIL; + inherited; +end; + +procedure TfrViewListaPedidosProvObra.EliminarInterno; +var + AImporte : Currency; +begin + AImporte := FPedidosProvEjecucion.BASE_IMPONIBLE; + // Llamamos al padre que hace un delete. + inherited; + FObra.Ejecuciones.Edit; + FObra.Ejecuciones.IMPORTE_GASTOS := FObra.Ejecuciones.IMPORTE_GASTOS - AImporte; + FObra.Ejecuciones.RecalcularBeneficio; +end; + +function TfrViewListaPedidosProvObra.GetObra: IBizObra; +begin + Result := FObra; +end; + +procedure TfrViewListaPedidosProvObra.ModificarInterno; +var + AImporte : Currency; + AID : Integer; + APedido : IBizPedidoProveedor; +begin + // inherited; <- No llamar al padre porque queremos tratamiento especial. + if not FPedidosProvEjecucion.ID_PEDIDOIsNull then + begin + AID := FPedidosProvEjecucion.ID_PEDIDO; + + APedido := FPedidosProvController.Buscar(AID); + try + APedido.Open; + if not APedido.IsEmpty then + begin + AImporte := APedido.BASE_IMPONIBLE; + FPedidosProvController.Ver(APedido); + + FPedidosProvEjecucion.Edit; + CopiarDatosPedido(APedido); + + if AImporte <> APedido.BASE_IMPONIBLE then + begin + FObra.Ejecuciones.Edit; + FObra.Ejecuciones.IMPORTE_GASTOS := FObra.Ejecuciones.IMPORTE_GASTOS - AImporte; + FObra.Ejecuciones.IMPORTE_GASTOS := FObra.Ejecuciones.IMPORTE_GASTOS + FPedidosProvEjecucion.BASE_IMPONIBLE; + FObra.Ejecuciones.RecalcularBeneficio; + end; + end; + finally + APedido := NIL; + end; + end; +end; + + +procedure TfrViewListaPedidosProvObra.SetObra(const Value: IBizObra); +begin + FObra := Value; + + if Assigned(FObra) then + begin + FObra.Active := True; + FPedidosProvEjecucion := FObra.Ejecuciones.Pedidos; + dsDetalles.DataTable := FPedidosProvEjecucion.DataTable; + dsPresupuestos.DataTable := FObra.Ejecuciones.Presupuestos.DataTable; + end + else begin + FObra := NIL; + FPedidosProvEjecucion := NIL; + dsDetalles.DataTable := NIL; + dsPresupuestos.DataTable := NIL; + end; +end; + +function TfrViewListaPedidosProvObra.BuscarPedidosParaElegir: IBizPedidoProveedor; +var + Expression1, Expression2, Expression3, CompoundExpression: TDAWhereExpression; + AArray : Array of TDAWhereExpression; +begin + Expression1 := NIL; + Expression2 := NIL; + Expression3 := NIL; + CompoundExpression := NIL; + + ShowHourglassCursor; + try + Result := FPedidosProvController.BuscarTodos; + + with Result.DataTable.DynamicWhere do + begin + // (ID_OBRA is null) + Expression1 := NewBinaryExpression(NewField('', 'ID_OBRA'), NewNull, dboEqual); + + // (ID_OBRA = :ID) + if not FObra.Ejecuciones.EsNuevo then + Expression2 := NewBinaryExpression(NewField('', 'ID_OBRA'), NewConstant(FObra.ID, datInteger), dboEqual); + + if Assigned(Expression2) then + CompoundExpression := NewBinaryExpression(Expression1, Expression2, dboOr) + else + CompoundExpression := Expression1; + + // (ID not in (1, 2, 3...) + //Expression3 := NewUnaryExpression(NewBinaryExpression(NewField('', 'conditionc'), NewConstant('wk', datString), dboIn), duoNot); + + // Unir todo + if IsEmpty then + Expression := CompoundExpression //NewBinaryExpression(CompoundExpression, Expression3, dboAnd) + else + Expression := NewBinaryExpression(Expression, CompoundExpression, dboAnd); //NewBinaryExpression(Expression, NewBinaryExpression(CompoundExpression, Expression3, dboAnd), dboAnd); + end; + finally + HideHourglassCursor; + end; +end; + +procedure TfrViewListaPedidosProvObra.CopiarDatosPedido(APedido: IBizPedidoProveedor); +begin + with FPedidosProvEjecucion do + begin + if not (State in dsEditModes) then + Edit; + + ID_EJECUCION := FObra.Ejecuciones.ID; + ID_PEDIDO := APedido.ID; + REFERENCIA := APedido.REFERENCIA; + FECHA_PEDIDO := APedido.FECHA_PEDIDO; + FECHA_ENTREGA := APedido.FECHA_ENTREGA; + ID_PROVEEDOR := APedido.ID_PROVEEDOR; + NOMBRE := APedido.NOMBRE; + ID_ALMACEN := APedido.ID_ALMACEN; + NOMBRE_ALMACEN := APedido.NOMBRE_ALMACEN; + ID_OBRA := APedido.ID_OBRA; + NOMBRE_OBRA := APedido.NOMBRE_OBRA; + BASE_IMPONIBLE := APedido.BASE_IMPONIBLE; + Post; + end; +end; + + +end. diff --git a/Source/Modulos/Obras/Views/uViewListaPresupuestosObra.dcu b/Source/Modulos/Obras/Views/uViewListaPresupuestosObra.dcu new file mode 100644 index 0000000..5eed021 Binary files /dev/null and b/Source/Modulos/Obras/Views/uViewListaPresupuestosObra.dcu differ diff --git a/Source/Modulos/Obras/Views/uViewListaPresupuestosObra.dfm b/Source/Modulos/Obras/Views/uViewListaPresupuestosObra.dfm new file mode 100644 index 0000000..48476cb --- /dev/null +++ b/Source/Modulos/Obras/Views/uViewListaPresupuestosObra.dfm @@ -0,0 +1,90 @@ +inherited frViewListaPresupuestosObra: TfrViewListaPresupuestosObra + Width = 821 + ExplicitWidth = 821 + inherited cxGrid: TcxGrid + Width = 821 + ExplicitWidth = 821 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = cxGridViewBASE_IMPONIBLE + end> + OptionsData.Appending = False + OptionsData.Deleting = False + OptionsData.DeletingConfirmation = False + OptionsData.Editing = False + OptionsData.Inserting = False + OptionsView.Footer = True + object cxGridViewREFERENCIA: TcxGridDBColumn + DataBinding.FieldName = 'REFERENCIA' + BestFitMaxWidth = 30 + Width = 30 + end + object cxGridViewFECHA_PRESUPUESTO: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_PRESUPUESTO' + BestFitMaxWidth = 30 + SortIndex = 0 + SortOrder = soAscending + Width = 30 + end + object cxGridViewSITUACION: TcxGridDBColumn + Caption = 'Situaci'#243'n' + DataBinding.FieldName = 'SITUACION' + BestFitMaxWidth = 30 + Width = 30 + end + object cxGridViewNOMBRE: TcxGridDBColumn + Caption = 'Cliente' + DataBinding.FieldName = 'NOMBRE' + Width = 60 + end + object cxGridViewBASE_IMPONIBLE: TcxGridDBColumn + DataBinding.FieldName = 'BASE_IMPONIBLE' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + BestFitMaxWidth = 50 + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + Width = 50 + end + end + end + inherited ToolBar1: TToolBar + Width = 821 + ButtonWidth = 128 + ExplicitWidth = 821 + inherited ToolButton1: TToolButton + ExplicitWidth = 132 + end + inherited ToolButton4: TToolButton + Left = 132 + ExplicitLeft = 132 + ExplicitWidth = 74 + end + inherited ToolButton5: TToolButton + Left = 206 + ExplicitLeft = 206 + end + inherited ToolButton2: TToolButton + Left = 214 + ExplicitLeft = 214 + ExplicitWidth = 67 + end + inherited ToolButton6: TToolButton + Left = 281 + ExplicitLeft = 281 + end + inherited ToolButton7: TToolButton + Left = 289 + ExplicitLeft = 289 + ExplicitWidth = 117 + end + end + inherited ActionListContenido: TActionList + inherited actAnadir: TAction + Caption = 'Elegir presupuesto...' + end + end +end diff --git a/Source/Modulos/Obras/Views/uViewListaPresupuestosObra.pas b/Source/Modulos/Obras/Views/uViewListaPresupuestosObra.pas new file mode 100644 index 0000000..92919f9 --- /dev/null +++ b/Source/Modulos/Obras/Views/uViewListaPresupuestosObra.pas @@ -0,0 +1,205 @@ +unit uViewListaPresupuestosObra; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewDetallesGenerico, cxStyles, cxCustomData, cxGraphics, cxFilter, + cxData, cxDataStorage, cxEdit, DB, cxDBData, ActnList, ImgList, PngImageList, + uDAInterfaces, uDADataTable, ComCtrls, ToolWin, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, uBizObras, uBizPresupuestosCliente, + uObrasController, uPresupuestosClienteController, cxCurrencyEdit; + +type + IViewListaPresupuestosObra = interface(IViewDetallesGenerico) + ['{E52E2718-EEE5-4ABD-8E9C-33CD9D54D6F2}'] + function GetObra: IBizObra; + procedure SetObra(const Value: IBizObra); + property Obra: IBizObra read GetObra write SetObra; + + function GetController : IObrasController; + procedure SetController (const Value : IObrasController); + property Controller : IObrasController read GetController write SetController; + end; + + + TfrViewListaPresupuestosObra = class(TfrViewDetallesGenerico, IViewListaPresupuestosObra) + cxGridViewREFERENCIA: TcxGridDBColumn; + cxGridViewFECHA_PRESUPUESTO: TcxGridDBColumn; + cxGridViewSITUACION: TcxGridDBColumn; + cxGridViewBASE_IMPONIBLE: TcxGridDBColumn; + cxGridViewNOMBRE: TcxGridDBColumn; + private + procedure CopiarDatosPresupuesto(APresupuesto: IBizPresupuestoCliente); + protected + FObra : IBizObra; + FPresupuestosEjecucion : IBizEjecucionPresupuestos; + FObrasController : IObrasController; + + //FPresupuestos: IBizPresupuestoCliente; + FPresupuestosController : IPresupuestosClienteController; + function GetObra: IBizObra; + procedure SetObra(const Value: IBizObra); + + procedure AnadirInterno; override; + procedure ModificarInterno; override; + procedure EliminarInterno; override; + + function GetController : IObrasController; + procedure SetController (const Value : IObrasController); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + property Obra: IBizObra read GetObra write SetObra; + property Controller : IObrasController read GetController write SetController; + + end; + +implementation + +{$R *.dfm} + +{ TfrViewListaPresupuestosObra } + +procedure TfrViewListaPresupuestosObra.AnadirInterno; +var + APresupuestos : IBizPresupuestoCliente; + APresupuesto : IBizPresupuestoCliente; +begin + // inherited; <- No llamar al padre porque queremos tratamiento especial. + APresupuestos := FPresupuestosController.BuscarAceptados; + try + APresupuesto := FPresupuestosController.ElegirPresupuestos(APresupuestos, 'Elija el presupuesto de cliente que quiere asociar a la ejecucin de esta obra', False); + if Assigned(APresupuesto) then + begin + APresupuesto.Open; + FPresupuestosEjecucion.Insert; + CopiarDatosPresupuesto(APresupuesto); + + FObra.Ejecuciones.Edit; + FObra.Ejecuciones.IMPORTE_INGRESOS := FObra.Ejecuciones.IMPORTE_INGRESOS + FPresupuestosEjecucion.BASE_IMPONIBLE; + FObra.Ejecuciones.RecalcularBeneficio; + end; + finally + APresupuesto := NIL; + APresupuestos := NIL; + end; +end; + +constructor TfrViewListaPresupuestosObra.Create(AOwner: TComponent); +begin + inherited; + FPresupuestosController := TPresupuestosClienteController.Create; +end; + +destructor TfrViewListaPresupuestosObra.Destroy; +begin + //FPresupuestos := NIL; + FObra := NIL; + FObrasController := NIL; + FPresupuestosEjecucion := NIL; + FPresupuestosController := NIL; + inherited; +end; + +procedure TfrViewListaPresupuestosObra.EliminarInterno; +var + AImporte : Currency; +begin + AImporte := FPresupuestosEjecucion.BASE_IMPONIBLE; + // Llamamos al padre que hace un delete. + inherited; + FObra.Ejecuciones.Edit; + FObra.Ejecuciones.IMPORTE_INGRESOS := FObra.Ejecuciones.IMPORTE_INGRESOS - AImporte; + FObra.Ejecuciones.RecalcularBeneficio; +end; + +function TfrViewListaPresupuestosObra.GetController: IObrasController; +begin + Result := FObrasController; +end; + +function TfrViewListaPresupuestosObra.GetObra: IBizObra; +begin + Result := FObra; +end; + +procedure TfrViewListaPresupuestosObra.ModificarInterno; +var + AImporte : Currency; + AID : Integer; + APresupuesto : IBizPresupuestoCliente; +begin + // inherited; <- No llamar al padre porque queremos tratamiento especial. + if not FPresupuestosEjecucion.ID_PRESUPUESTOIsNull then + begin + AID := FPresupuestosEjecucion.ID_PRESUPUESTO; + + APresupuesto := FPresupuestosController.Buscar(AID); + try + APresupuesto.Open; + if not APresupuesto.IsEmpty then + begin + AImporte := APresupuesto.BASE_IMPONIBLE; + FPresupuestosController.Ver(APresupuesto); + + FPresupuestosEjecucion.Edit; + CopiarDatosPresupuesto(APresupuesto); + + if AImporte <> APresupuesto.BASE_IMPONIBLE then + begin + FObra.Ejecuciones.Edit; + FObra.Ejecuciones.IMPORTE_INGRESOS := FObra.Ejecuciones.IMPORTE_INGRESOS - AImporte; + FObra.Ejecuciones.IMPORTE_INGRESOS := FObra.Ejecuciones.IMPORTE_INGRESOS + FPresupuestosEjecucion.BASE_IMPONIBLE; + FObra.Ejecuciones.RecalcularBeneficio; + end; + end; + finally + APresupuesto := NIL; + end; + end; +end; + +procedure TfrViewListaPresupuestosObra.SetController( + const Value: IObrasController); +begin + FObrasController := Value; +end; + +procedure TfrViewListaPresupuestosObra.SetObra(const Value: IBizObra); +begin + FObra := Value; + + if Assigned(FObra) then + begin + FObra.Active := True; + FPresupuestosEjecucion := FObra.Ejecuciones.Presupuestos; + dsDetalles.DataTable := FPresupuestosEjecucion.DataTable; + end + else begin + FObra := NIL; + FPresupuestosEjecucion := NIL; + dsDetalles.DataTable := NIL; + end; +end; + +procedure TfrViewListaPresupuestosObra.CopiarDatosPresupuesto(APresupuesto: IBizPresupuestoCliente); +begin + with FPresupuestosEjecucion do + begin + if not (State in dsEditModes) then + Edit; + + ID_EJECUCION := FObra.Ejecuciones.ID; + ID_PRESUPUESTO := APresupuesto.ID; + REFERENCIA := APresupuesto.REFERENCIA; + FECHA_PRESUPUESTO := APresupuesto.FECHA_PRESUPUESTO; + SITUACION := APresupuesto.SITUACION; + BASE_IMPONIBLE := APresupuesto.BASE_IMPONIBLE; + NOMBRE := APresupuesto.NOMBRE; + Post; + end; +end; + +end. diff --git a/Source/Modulos/Obras/Views/uViewObra.dcu b/Source/Modulos/Obras/Views/uViewObra.dcu new file mode 100644 index 0000000..d2032d8 Binary files /dev/null and b/Source/Modulos/Obras/Views/uViewObra.dcu differ diff --git a/Source/Modulos/Obras/Views/uViewObra.dfm b/Source/Modulos/Obras/Views/uViewObra.dfm new file mode 100644 index 0000000..2a7524e --- /dev/null +++ b/Source/Modulos/Obras/Views/uViewObra.dfm @@ -0,0 +1,448 @@ +inherited frViewObra: TfrViewObra + Width = 451 + Height = 304 + Align = alClient + ExplicitWidth = 451 + ExplicitHeight = 304 + object dxLayoutControlObra: TdxLayoutControl + Left = 0 + Top = 0 + Width = 451 + Height = 304 + Align = alClient + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + DesignSize = ( + 451 + 304) + object eNombre: TcxDBTextEdit + Left = 130 + Top = 34 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'NOMBRE' + DataBinding.DataSource = DADataSource + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = 14745599 + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 0 + Width = 116 + end + object ePersonaContacto: TcxDBTextEdit + Left = 130 + Top = 61 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'PERSONA_CONTACTO' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 1 + Width = 116 + end + object eTlfTelefono: TcxDBTextEdit + Left = 130 + Top = 199 + DataBinding.DataField = 'TELEFONO' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 6 + Width = 116 + end + object eTlfMovil: TcxDBTextEdit + Left = 130 + Top = 226 + DataBinding.DataField = 'MOVIL' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 7 + Width = 116 + end + object eFax: TcxDBTextEdit + Left = 130 + Top = 253 + DataBinding.DataField = 'FAX' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 8 + Width = 116 + end + object eCalle: TcxDBTextEdit + Left = 130 + Top = 118 + DataBinding.DataField = 'CALLE' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 2 + Width = 116 + end + object cbPoblacion: TcxDBComboBox + Left = 130 + Top = 172 + DataBinding.DataField = 'POBLACION' + DataBinding.DataSource = DADataSource + Properties.ImmediatePost = True + Properties.ImmediateUpdateText = True + Properties.PostPopupValueOnTab = True + Properties.OnInitPopup = cbPoblacionPropertiesInitPopup + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 5 + Width = 203 + end + object eCodigoPostal: TcxDBTextEdit + Left = 189 + Top = 145 + DataBinding.DataField = 'CODIGO_POSTAL' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 4 + Width = 91 + end + object cbProvincia: TcxDBComboBox + Left = 130 + Top = 145 + DataBinding.DataField = 'PROVINCIA' + DataBinding.DataSource = DADataSource + Properties.ImmediatePost = True + Properties.ImmediateUpdateText = True + Properties.PostPopupValueOnTab = True + Properties.OnInitPopup = cbProvinciaPropertiesInitPopup + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 3 + Width = 253 + end + object eObservaciones: TcxDBMemo + Left = 22 + Top = 310 + DataBinding.DataField = 'OBSERVACIONES' + DataBinding.DataSource = DADataSource + Properties.ScrollBars = ssVertical + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 9 + Height = 246 + Width = 224 + end + inline frViewClienteAsociadoObra1: TfrViewClienteAsociadoObra + Left = 310 + Top = 34 + Width = 503 + Height = 213 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 10 + ReadOnly = False + ExplicitLeft = 310 + ExplicitTop = 34 + ExplicitWidth = 503 + ExplicitHeight = 213 + inherited dxLayoutControl1: TdxLayoutControl + Width = 503 + Height = 213 + ExplicitWidth = 503 + ExplicitHeight = 213 + inherited edtlNombre: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 429 + Width = 429 + end + inherited edtNIFCIF: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 429 + Width = 429 + end + inherited edtCalle: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 429 + Width = 429 + end + inherited edtPoblacion: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 311 + Width = 311 + end + inherited edtProvincia: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 429 + Width = 429 + end + inherited edtCodigoPostal: TcxDBTextEdit + Left = 192 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 192 + end + inherited Button3: TBitBtn + Left = 82 + ExplicitLeft = 82 + end + end + end + object dxLayoutControlObraGroup_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControlObraItem12: TdxLayoutItem + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControlObraGroup2: TdxLayoutGroup + AutoAligns = [aaHorizontal] + AlignVert = avClient + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControlObraGroup4: TdxLayoutGroup + AutoAligns = [] + AlignHorz = ahClient + AlignVert = avClient + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControlObraGroup1: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Datos generales de la obra' + object dxLayoutControlObraItem3: TdxLayoutItem + Caption = 'Nombre:' + Control = eNombre + ControlOptions.ShowBorder = False + end + object dxLayoutControlObraItem4: TdxLayoutItem + Caption = 'Persona de contacto:' + Control = ePersonaContacto + ControlOptions.ShowBorder = False + end + end + object dxLayoutControlObraGroup3: TdxLayoutGroup + Caption = 'Direcci'#243'n y tel'#233'fonos' + object dxLayoutControlObraItem10: TdxLayoutItem + Caption = 'Calle:' + Control = eCalle + ControlOptions.ShowBorder = False + end + object dxLayoutControlObraGroup11: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControlObraItem9: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Provincia:' + Control = cbProvincia + ControlOptions.ShowBorder = False + end + object dxLayoutControlObraItem7: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'C. P.:' + Control = eCodigoPostal + ControlOptions.ShowBorder = False + end + end + object dxLayoutControlObraGroup5: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControlObraItem2: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Poblaci'#243'n:' + Control = cbPoblacion + ControlOptions.ShowBorder = False + end + object dxLayoutControlObraItem1: TdxLayoutItem + Caption = 'Tel'#233'fono:' + Control = eTlfTelefono + ControlOptions.ShowBorder = False + end + object dxLayoutControlObraItem5: TdxLayoutItem + Caption = 'M'#243'vil:' + Control = eTlfMovil + ControlOptions.ShowBorder = False + end + object dxLayoutControlObraItem6: TdxLayoutItem + Caption = 'N'#250'mero de fax:' + Control = eFax + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControlObraGroup8: TdxLayoutGroup + AutoAligns = [aaHorizontal] + AlignVert = avClient + Caption = 'Observaciones' + object dxLayoutControlObraItem11: TdxLayoutItem + AutoAligns = [aaHorizontal] + AlignVert = avClient + Caption = 'Observaciones' + ShowCaption = False + Control = eObservaciones + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControlObraGroup7: TdxLayoutGroup + AutoAligns = [] + AlignHorz = ahClient + Caption = 'Cliente asociado' + object dxLayoutControlObraItem13: TdxLayoutItem + Caption = 'New Item' + ShowCaption = False + Control = frViewClienteAsociadoObra1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + end + end + end + end + object DADataSource: TDADataSource + Left = 336 + Top = 64 + end +end diff --git a/Source/Modulos/Obras/Views/uViewObra.pas b/Source/Modulos/Obras/Views/uViewObra.pas new file mode 100644 index 0000000..24d0cdc --- /dev/null +++ b/Source/Modulos/Obras/Views/uViewObra.pas @@ -0,0 +1,269 @@ +unit uViewObra; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, ExtCtrls, StdCtrls, Buttons, DB, uDADataTable, + DBCtrls, Grids, DBGrids, uBizObras, Mask, ComCtrls, uCustomView, + JvComponent, JvFormAutoSize, cxControls, cxContainer, cxEdit, cxTextEdit, + cxDBEdit, dxLayoutControl, uDAInterfaces, uViewDatosYSeleccionCliente, cxMemo, + uViewDatosYSeleccionProveedor, uViewSubcontrataObra, uViewClienteAsociadoObra, + cxGraphics, cxMaskEdit, cxDropDownEdit, + uObrasController; + +type + IViewObra = interface(IViewBase) + ['{D8669267-CAC9-468E-9923-2D3B2DD30CED}'] + function GetObra: IBizObra; + procedure SetObra(const Value: IBizObra); + property Obra: IBizObra read GetObra write SetObra; + function GetController : IObrasController; + procedure SetController (const Value : IObrasController); + property Controller: IObrasController read GetController write SetController; + end; + + TfrViewObra = class(TfrViewBase, IViewObra) + DADataSource: TDADataSource; + ePersonaContacto: TcxDBTextEdit; + eTlfTelefono: TcxDBTextEdit; + eTlfMovil: TcxDBTextEdit; + eFax: TcxDBTextEdit; + dxLayoutControlObraGroup_Root: TdxLayoutGroup; + dxLayoutControlObra: TdxLayoutControl; + dxLayoutControlObraGroup1: TdxLayoutGroup; + dxLayoutControlObraItem3: TdxLayoutItem; + eNombre: TcxDBTextEdit; + dxLayoutControlObraItem4: TdxLayoutItem; + dxLayoutControlObraItem1: TdxLayoutItem; + dxLayoutControlObraItem5: TdxLayoutItem; + dxLayoutControlObraItem6: TdxLayoutItem; + dxLayoutControlObraGroup3: TdxLayoutGroup; + dxLayoutControlObraItem10: TdxLayoutItem; + eCalle: TcxDBTextEdit; + dxLayoutControlObraItem2: TdxLayoutItem; + cbPoblacion: TcxDBComboBox; + dxLayoutControlObraItem7: TdxLayoutItem; + dxLayoutControlObraGroup5: TdxLayoutGroup; + eCodigoPostal: TcxDBTextEdit; + dxLayoutControlObraItem9: TdxLayoutItem; + cbProvincia: TcxDBComboBox; + dxLayoutControlObraGroup7: TdxLayoutGroup; + dxLayoutControlObraGroup4: TdxLayoutGroup; + dxLayoutControlObraItem11: TdxLayoutItem; + eObservaciones: TcxDBMemo; + dxLayoutControlObraGroup2: TdxLayoutGroup; + dxLayoutControlObraGroup8: TdxLayoutGroup; + frViewClienteAsociadoObra1: TfrViewClienteAsociadoObra; + dxLayoutControlObraItem12: TdxLayoutItem; + dxLayoutControlObraItem13: TdxLayoutItem; + dxLayoutControlObraGroup11: TdxLayoutGroup; + procedure cbPoblacionPropertiesInitPopup(Sender: TObject); + procedure cbProvinciaPropertiesInitPopup(Sender: TObject); + protected + FObra: IBizObra; + FController : IObrasController; + FProvincias : TStringList; + FIDProvincia : Integer; //Almacenar la provincia que hay seleccionada para no cargar las poblaciones si no es necesario + FPoblaciones : TStringList; + procedure CargarProvincias; + procedure CargarPoblaciones; + function GetObra: IBizObra; + procedure SetObra(const Value: IBizObra); + procedure OnClienteChanged(Sender : TObject); + function GetController : IObrasController; + procedure SetController (const Value : IObrasController); virtual; + public + constructor Create(AOwner : TComponent); override; + destructor Destroy; override; + property Obra: IBizObra read GetObra write SetObra; + property Controller: IObrasController read GetController write SetController; + end; + +implementation + +uses + uDataModuleObras, uProvinciasPoblacionesController, uStringsUtils, + uClientesController, uBizDireccionesContacto, uDialogUtils; + +{$R *.dfm} + +{ TfrViewObras } + +{ +******************************* TfrViewObras ******************************** +} + +procedure TfrViewObra.CargarPoblaciones; +var + i : integer; + +begin + if (FIDProvincia <> StrToInt(FProvincias.Values[cbProvincia.Text])) then + Begin + FIDProvincia := StrToInt(FProvincias.Values[cbProvincia.Text]); + + with TProvinciasPoblacionesController.Create do + try + FPoblaciones := DarListaPoblaciones(FIDProvincia); + + with cbPoblacion.Properties.Items do + begin + BeginUpdate; + try + Clear; + for i := 0 to FPoblaciones.Count - 1 do + Add(FPoblaciones.Names[i]); + finally + EndUpdate; + end; + end; + finally + Free; + end; + End; +end; + +procedure TfrViewObra.CargarProvincias; +var + i : integer; +begin + with TProvinciasPoblacionesController.Create do + try + FProvincias := DarListaProvincias; + + with cbProvincia.Properties.Items do + begin + BeginUpdate; + try + Clear; + for i := 0 to FProvincias.Count - 1 do + Add(FProvincias.Names[i]); + finally + EndUpdate; + end; + end; + finally + Free; + end; +end; + +procedure TfrViewObra.cbPoblacionPropertiesInitPopup(Sender: TObject); +begin + ShowHourglassCursor; + try + FreeANDNIL(FPoblaciones); + if not Assigned(FProvincias) then + CargarProvincias; + if not EsCadenaVacia(cbProvincia.Text) and (FProvincias.IndexOfName(cbProvincia.Text) <> -1) then + CargarPoblaciones + finally + HideHourglassCursor; + end; +end; + +procedure TfrViewObra.cbProvinciaPropertiesInitPopup(Sender: TObject); +begin + ShowHourglassCursor; + try + if not Assigned(FProvincias) then + CargarProvincias; + finally + HideHourglassCursor; + end; +end; + +constructor TfrViewObra.Create(AOwner: TComponent); +begin + inherited; + FIDProvincia := 0; + FProvincias := NIL; + FPoblaciones := NIL; +end; + +destructor TfrViewObra.Destroy; +begin + if Assigned(FProvincias) then + FreeANDNIL(FProvincias); + + if Assigned(FPoblaciones) then + FreeANDNIL(FPoblaciones); + + FObra := Nil; + FController := Nil; + inherited; +end; + +function TfrViewObra.GetController: IObrasController; +begin + Result := FController; +end; + +function TfrViewObra.GetObra: IBizObra; +begin + Result := FObra; +end; + +procedure TfrViewObra.OnClienteChanged(Sender: TObject); +var + AClientesController : IClientesController; + ADireccion : IBizDireccionesContacto; +begin + if Assigned(FObra) then + begin + FObra.Edit; + FObra.ID_CLIENTE := frViewClienteAsociadoObra1.ID_Cliente; + + AClientesController := TClientesController.Create; + try + { // Esto podra ser configurable en el programa + if not AClientesController.TieneDatosBancarios(FPresupuesto.Cliente) then + MessageBox(0, 'Este cliente no tiene datos bancarios en su ficha', 'Atencin', MB_ICONWARNING or MB_OK);} + + case frViewClienteAsociadoObra1.Cliente.Direcciones.RecordCount of + 0 : begin + FController.CopiarDireccion(frViewClienteAsociadoObra1.Cliente, FObra); + ShowInfoMessage('Direccin de la obra actualizada.', 'Se ha actualizado los datos de la direccin de la obra con los datos del cliente.'); + end; + else begin + ADireccion := AClientesController.ElegirDireccionEntrega(frViewClienteAsociadoObra1.Cliente, ''); + ShowHourglassCursor; + try + if Assigned(ADireccion) then + FController.CopiarDireccion(ADireccion, FObra); + finally + HideHourglassCursor; + ADireccion := NIL; + end; + end; + end; + finally + AClientesController := NIL; + end; + end; +end; + +procedure TfrViewObra.SetController(const Value: IObrasController); +begin + FController := Value; +end; + +procedure TfrViewObra.SetObra(const Value: IBizObra); +begin + FObra := Value; + frViewClienteAsociadoObra1.OnClienteChanged := NIL; + + if Assigned(FObra) then + begin + DADataSource.DataTable := FObra.DataTable; + if not FObra.ID_CLIENTEIsNull then + frViewClienteAsociadoObra1.ID_Cliente := FObra.ID_CLIENTE; + + frViewClienteAsociadoObra1.OnClienteChanged := OnClienteChanged; + end + else + DADataSource.DataTable := NIL; +end; + +end. + diff --git a/Source/Modulos/Obras/Views/uViewObras.dcu b/Source/Modulos/Obras/Views/uViewObras.dcu new file mode 100644 index 0000000..8b8e322 Binary files /dev/null and b/Source/Modulos/Obras/Views/uViewObras.dcu differ diff --git a/Source/Modulos/Obras/Views/uViewObras.dfm b/Source/Modulos/Obras/Views/uViewObras.dfm new file mode 100644 index 0000000..1dc5a95 --- /dev/null +++ b/Source/Modulos/Obras/Views/uViewObras.dfm @@ -0,0 +1,231 @@ +inherited frViewObras: TfrViewObras + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + DataController.KeyFieldNames = 'ID' + DataController.Summary.FooterSummaryItems = < + item + Format = '0 obras' + Kind = skCount + Column = cxGridViewNOMBRE + end> + OptionsBehavior.PullFocusing = True + object cxGridViewNOMBRE: TcxGridDBColumn + DataBinding.FieldName = 'NOMBRE' + PropertiesClassName = 'TcxTextEditProperties' + SortIndex = 0 + SortOrder = soAscending + Width = 304 + end + object cxGridViewCALLE: TcxGridDBColumn + DataBinding.FieldName = 'CALLE' + Visible = False + BestFitMaxWidth = 80 + end + object cxGridViewPOBLACION: TcxGridDBColumn + DataBinding.FieldName = 'POBLACION' + Visible = False + BestFitMaxWidth = 80 + end + object cxGridViewCODIGO_POSTAL: TcxGridDBColumn + DataBinding.FieldName = 'CODIGO_POSTAL' + Visible = False + BestFitMaxWidth = 80 + end + object cxGridViewPROVINCIA: TcxGridDBColumn + DataBinding.FieldName = 'PROVINCIA' + Visible = False + BestFitMaxWidth = 80 + end + object cxGridViewTELEFONO: TcxGridDBColumn + DataBinding.FieldName = 'TELEFONO' + BestFitMaxWidth = 80 + Width = 118 + end + object cxGridViewMOVIL: TcxGridDBColumn + DataBinding.FieldName = 'MOVIL' + Visible = False + BestFitMaxWidth = 80 + end + object cxGridViewFAX: TcxGridDBColumn + DataBinding.FieldName = 'FAX' + BestFitMaxWidth = 80 + end + object cxGridViewPERSONACONTACTO: TcxGridDBColumn + DataBinding.FieldName = 'PERSONA_CONTACTO' + BestFitMaxWidth = 80 + Width = 118 + end + object cxGridViewNOMBRE_CLIENTE: TcxGridDBColumn + DataBinding.FieldName = 'NOMBRE_CLIENTE' + PropertiesClassName = 'TcxTextEditProperties' + BestFitMaxWidth = 80 + Width = 100 + end + object cxGridViewNOMBRE_SUBCONTRATA: TcxGridDBColumn + DataBinding.FieldName = 'NOMBRE_SUBCONTRATA' + PropertiesClassName = 'TcxTextEditProperties' + Visible = False + BestFitMaxWidth = 80 + VisibleForCustomization = False + Width = 100 + end + object cxGridViewID_EJECUCION: TcxGridDBColumn + DataBinding.FieldName = 'ID_EJECUCION' + Visible = False + VisibleForCustomization = False + end + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + inherited TBXDockablePanel1: TTBXDockablePanel + inherited dxLayoutControl1: TdxLayoutControl + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 510 + Width = 510 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtFechaFinFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited eLista: TcxComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 215 + Width = 215 + end + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 38673.842406053240000000 + BuiltInReportLink = True + end + end + inherited GridPNGImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000434944415478DA63FCFFFF3F + 03258011D900464646ACA601D530126D00BA6298A1B80C21CA0090183639925C + 80CB3B040DC0E69A510306BD010C04005E03C801036F00008D248BE16F9028BA + 0000000049454E44AE426082} + Name = 'Icono_header' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000AF4944415478DACDD22116C2300C06E0BF37889CAC4456222791CC21 + E1063D428F503939898C444E222B2723919573A50758D7B119F25EE4FF35C9AB + C2C152FF090C2F7FBD5F2CEF063CBB84190F7B73C36E204A043554458A407B6E + C1CC205A478A803E69C418216F599D641978BA441A908FE48EC0940FEB596D06 + DC908FD8E4D727C1E803485317C6C0DB81DE2699EBE132E06DCA2357C3EB40CF + 5D5EA1FA99160163B40941422D5C047EA9C3C017C80A5B11B742150D00000000 + 49454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + Left = 88 + Top = 160 + Bitmap = {} + end +end diff --git a/Source/Modulos/Obras/Views/uViewObras.pas b/Source/Modulos/Obras/Views/uViewObras.pas new file mode 100644 index 0000000..712914e --- /dev/null +++ b/Source/Modulos/Obras/Views/uViewObras.pas @@ -0,0 +1,85 @@ +unit uViewObras; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel, + cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGrid, uBizObras, ActnList, Menus, + cxGridBandedTableView, cxGridDBBandedTableView, JvComponent, + JvFormAutoSize, PngImageList, ImgList, dxPSGlbl, dxPSUtl, dxPSEngn, + dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, cxIntlPrintSys3, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, + cxGridCustomPopupMenu, cxGridPopupMenu, uViewFiltroBase, TB2Item, TBX, + TB2Toolbar, TBXDkPanels, TB2Dock, dxPgsDlg, uDAInterfaces, cxTextEdit; + +type + IViewObras = interface(IViewGrid) + ['{C04FA358-5EAC-444D-8E48-490302D9DE15}'] + function GetObras: IBizObra; + procedure SetObras(const Value: IBizObra); + property Obras: IBizObra read GetObras write SetObras; + end; + + TfrViewObras = class(TfrViewGrid, IViewObras) + cxGridViewPERSONACONTACTO: TcxGridDBColumn; + cxGridViewNOMBRE: TcxGridDBColumn; + cxGridViewTELEFONO: TcxGridDBColumn; + cxGridViewCALLE: TcxGridDBColumn; + cxGridViewPROVINCIA: TcxGridDBColumn; + cxGridViewPOBLACION: TcxGridDBColumn; + cxGridViewCODIGO_POSTAL: TcxGridDBColumn; + cxGridViewMOVIL: TcxGridDBColumn; + cxGridViewFAX: TcxGridDBColumn; + cxGridViewNOMBRE_CLIENTE: TcxGridDBColumn; + cxGridViewNOMBRE_SUBCONTRATA: TcxGridDBColumn; + cxGridViewID_EJECUCION: TcxGridDBColumn; + procedure cxGridViewICONOCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + protected + FObras: IBizObra; + function GetObras: IBizObra; virtual; + procedure SetObras(const Value: IBizObra); virtual; + public + property Obras: IBizObra read GetObras write SetObras; + end; + +implementation + +uses uDataModuleObras; + + +{$R *.dfm} + +{ TfrViewObras } + +{ +******************************* TfrViewObras ******************************* +} +procedure TfrViewObras.cxGridViewICONOCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + // Poner el icono slo a las obras activas. + if (cxGridView.DataController.DisplayTexts[AViewInfo.GridRecord.RecordIndex, + cxGridViewID_EJECUCION.Index] <> '') then + inherited; +end; + +function TfrViewObras.GetObras: IBizObra; +begin + Result := FObras; +end; + +procedure TfrViewObras.SetObras(const Value: IBizObra); +begin + FObras := Value; + if Assigned(FObras) then + dsDataSource.DataTable := FObras.DataTable; +end; + + +end. diff --git a/Source/Modulos/Obras/Views/uViewSubcontrataObra.dcu b/Source/Modulos/Obras/Views/uViewSubcontrataObra.dcu new file mode 100644 index 0000000..c78df98 Binary files /dev/null and b/Source/Modulos/Obras/Views/uViewSubcontrataObra.dcu differ diff --git a/Source/Modulos/Obras/Views/uViewSubcontrataObra.dfm b/Source/Modulos/Obras/Views/uViewSubcontrataObra.dfm new file mode 100644 index 0000000..ea1d3f2 --- /dev/null +++ b/Source/Modulos/Obras/Views/uViewSubcontrataObra.dfm @@ -0,0 +1,241 @@ +inherited frViewSubcontrataObra: TfrViewSubcontrataObra + Width = 514 + Height = 273 + ExplicitWidth = 514 + ExplicitHeight = 273 + inherited dxLayoutControl1: TdxLayoutControl + Width = 514 + Height = 273 + ExplicitWidth = 514 + ExplicitHeight = 273 + DesignSize = ( + 514 + 273) + inherited edtlNombre: TcxDBTextEdit + Left = 118 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 118 + ExplicitWidth = 345 + Width = 345 + end + inherited edtNIFCIF: TcxDBTextEdit + Left = 118 + Top = 153 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 7 + ExplicitLeft = 118 + ExplicitTop = 153 + ExplicitWidth = 345 + Width = 345 + end + inherited edtCalle: TcxDBTextEdit + Left = 118 + Top = 180 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 8 + ExplicitLeft = 118 + ExplicitTop = 180 + ExplicitWidth = 345 + Width = 345 + end + inherited edtPoblacion: TcxDBTextEdit + Left = 118 + Top = 207 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 9 + ExplicitLeft = 118 + ExplicitTop = 207 + ExplicitWidth = 227 + Width = 227 + end + inherited edtProvincia: TcxDBTextEdit + Left = 118 + Top = 234 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 11 + ExplicitLeft = 118 + ExplicitTop = 234 + ExplicitWidth = 345 + Width = 345 + end + inherited edtCodigoPostal: TcxDBTextEdit + Left = 422 + Top = 207 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 10 + ExplicitLeft = 422 + ExplicitTop = 207 + end + inherited Button1: TBitBtn + Caption = 'Elegir subcontrata' + end + inherited Button3: TBitBtn + Left = 281 + Top = 122 + Width = 223 + Caption = 'Ver ficha completa de la subcontrata...' + TabOrder = 6 + ExplicitLeft = 281 + ExplicitTop = 122 + ExplicitWidth = 223 + end + object edtPersonaContacto: TcxDBTextEdit [9] + Left = 118 + Top = 95 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'PERSONA_CONTACTO' + DataBinding.DataSource = DADataSource + Enabled = False + ParentFont = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 5 + Height = 21 + Width = 345 + end + object edtReferenciaAsignada: TcxDBTextEdit [10] + Left = 383 + Top = 68 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'CODIGO_ASIGNADO' + DataBinding.DataSource = DADataSource + Enabled = False + ParentFont = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 4 + Height = 21 + Width = 121 + end + object edtTlf: TcxDBTextEdit [11] + Left = 118 + Top = 68 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'TELEFONO_1' + DataBinding.DataSource = DADataSource + Enabled = False + ParentFont = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 3 + Height = 21 + Width = 152 + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + object dxLayoutControl1Group4: TdxLayoutGroup [2] + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item13: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Tel'#233'fono:' + Control = edtTlf + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item11: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'C'#243'd. cliente:' + Control = edtReferenciaAsignada + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item10: TdxLayoutItem [3] + Caption = 'Persona de contacto:' + Control = edtPersonaContacto + ControlOptions.ShowBorder = False + end + inherited dxLayoutControl1Item9: TdxLayoutItem [4] + end + inherited dxLayoutControl1Item2: TdxLayoutItem [5] + Visible = False + end + inherited dxLayoutControl1Item3: TdxLayoutItem [6] + Visible = False + end + inherited dxLayoutControl1Group2: TdxLayoutGroup [7] + Visible = False + end + inherited dxLayoutControl1Item5: TdxLayoutItem [8] + Visible = False + end + end + end + inherited DADataSource: TDADataSource + Left = 288 + Top = 8 + end + inherited ActionList1: TActionList + Left = 320 + Top = 8 + inherited actElegirContacto: TAction + Caption = 'Elegir subcontrata' + end + inherited actVerContacto: TAction + Caption = 'Ver ficha completa de la subcontrata...' + end + end + inherited PngImageList: TPngImageList + Left = 352 + Top = 8 + end +end diff --git a/Source/Modulos/Obras/Views/uViewSubcontrataObra.pas b/Source/Modulos/Obras/Views/uViewSubcontrataObra.pas new file mode 100644 index 0000000..cf0dce3 --- /dev/null +++ b/Source/Modulos/Obras/Views/uViewSubcontrataObra.pas @@ -0,0 +1,57 @@ +unit uViewSubcontrataObra; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewDatosYSeleccionProveedor, ImgList, PngImageList, ActnList, DB, + uDAInterfaces, uDADataTable, dxLayoutControl, StdCtrls, Buttons, cxContainer, + cxEdit, cxTextEdit, cxDBEdit, cxControls; + +type + TfrViewSubcontrataObra = class(TfrViewDatosYSeleccionProveedor) + dxLayoutControl1Item10: TdxLayoutItem; + edtPersonaContacto: TcxDBTextEdit; + dxLayoutControl1Item11: TdxLayoutItem; + edtReferenciaAsignada: TcxDBTextEdit; + dxLayoutControl1Item13: TdxLayoutItem; + edtTlf: TcxDBTextEdit; + dxLayoutControl1Group4: TdxLayoutGroup; + protected + procedure ElegirProveedorInternal; override; + public + { Public declarations } + end; + + +implementation + +{$R *.dfm} + +uses + uBizContactos; + +{ TfrViewSubcontrataObra } + +procedure TfrViewSubcontrataObra.ElegirProveedorInternal; +var + AProveedor : IBizProveedor; +begin + // inherited; <- No llamar al padre + MsgElegirProveedor := ' '; + AProveedor := (Controller.ElegirContacto(Controller.BuscarSubcontratas, + MsgElegirProveedor, False) as IBizProveedor); + + if Assigned(AProveedor) then + begin + Self.Update; + ShowHourglassCursor; + try + Proveedor := AProveedor; + finally + HideHourglassCursor; + end; + end; +end; + +end. diff --git a/Source/Modulos/Obras/schObrasServer_Intf.pas b/Source/Modulos/Obras/schObrasServer_Intf.pas new file mode 100644 index 0000000..738cd92 --- /dev/null +++ b/Source/Modulos/Obras/schObrasServer_Intf.pas @@ -0,0 +1,1401 @@ +unit schObrasServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schObrasClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_ObrasDelta = '{62D8C337-5D07-492B-AD3A-C6DC6A6D18F4}'; + RID_ObrasEjecucionesDelta = '{5B90BE2C-85C5-49E0-893E-103FA6FD4816}'; + +type + { IObrasDelta } + IObrasDelta = interface(IObras) + ['{62D8C337-5D07-492B-AD3A-C6DC6A6D18F4}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldNOMBREValue : String; + function GetOldCALLEValue : String; + function GetOldPROVINCIAValue : String; + function GetOldPOBLACIONValue : String; + function GetOldCODIGO_POSTALValue : String; + function GetOldTELEFONOValue : String; + function GetOldMOVILValue : String; + function GetOldFAXValue : String; + function GetOldPERSONA_CONTACTOValue : String; + function GetOldOBSERVACIONESValue : IROStrings; + function GetOldID_CLIENTEValue : Integer; + function GetOldNOMBRE_CLIENTEValue : String; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + function GetOldUSUARIOValue : String; + function GetOldID_EJECUCIONValue : Integer; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldCALLE : String read GetOldCALLEValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property OldTELEFONO : String read GetOldTELEFONOValue; + property OldMOVIL : String read GetOldMOVILValue; + property OldFAX : String read GetOldFAXValue; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property OldID_CLIENTE : Integer read GetOldID_CLIENTEValue; + property OldNOMBRE_CLIENTE : String read GetOldNOMBRE_CLIENTEValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldID_EJECUCION : Integer read GetOldID_EJECUCIONValue; + end; + + { TObrasBusinessProcessorRules } + TObrasBusinessProcessorRules = class(TDABusinessProcessorRules, IObras, IObrasDelta) + private + f_OBSERVACIONES: IROStrings; + procedure OBSERVACIONES_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + function GetNOMBREIsNull: Boolean; virtual; + function GetOldNOMBREValue: String; virtual; + function GetOldNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetCALLEValue: String; virtual; + function GetCALLEIsNull: Boolean; virtual; + function GetOldCALLEValue: String; virtual; + function GetOldCALLEIsNull: Boolean; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + procedure SetCALLEIsNull(const aValue: Boolean); virtual; + function GetPROVINCIAValue: String; virtual; + function GetPROVINCIAIsNull: Boolean; virtual; + function GetOldPROVINCIAValue: String; virtual; + function GetOldPROVINCIAIsNull: Boolean; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual; + function GetPOBLACIONValue: String; virtual; + function GetPOBLACIONIsNull: Boolean; virtual; + function GetOldPOBLACIONValue: String; virtual; + function GetOldPOBLACIONIsNull: Boolean; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetCODIGO_POSTALIsNull: Boolean; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALIsNull: Boolean; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual; + function GetTELEFONOValue: String; virtual; + function GetTELEFONOIsNull: Boolean; virtual; + function GetOldTELEFONOValue: String; virtual; + function GetOldTELEFONOIsNull: Boolean; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + procedure SetTELEFONOIsNull(const aValue: Boolean); virtual; + function GetMOVILValue: String; virtual; + function GetMOVILIsNull: Boolean; virtual; + function GetOldMOVILValue: String; virtual; + function GetOldMOVILIsNull: Boolean; virtual; + procedure SetMOVILValue(const aValue: String); virtual; + procedure SetMOVILIsNull(const aValue: Boolean); virtual; + function GetFAXValue: String; virtual; + function GetFAXIsNull: Boolean; virtual; + function GetOldFAXValue: String; virtual; + function GetOldFAXIsNull: Boolean; virtual; + procedure SetFAXValue(const aValue: String); virtual; + procedure SetFAXIsNull(const aValue: Boolean); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + function GetPERSONA_CONTACTOIsNull: Boolean; virtual; + function GetOldPERSONA_CONTACTOValue: String; virtual; + function GetOldPERSONA_CONTACTOIsNull: Boolean; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + function GetOBSERVACIONESIsNull: Boolean; virtual; + function GetOldOBSERVACIONESValue: IROStrings; virtual; + function GetOldOBSERVACIONESIsNull: Boolean; virtual; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); virtual; + function GetID_CLIENTEValue: Integer; virtual; + function GetID_CLIENTEIsNull: Boolean; virtual; + function GetOldID_CLIENTEValue: Integer; virtual; + function GetOldID_CLIENTEIsNull: Boolean; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + procedure SetID_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetNOMBRE_CLIENTEValue: String; virtual; + function GetNOMBRE_CLIENTEIsNull: Boolean; virtual; + function GetOldNOMBRE_CLIENTEValue: String; virtual; + function GetOldNOMBRE_CLIENTEIsNull: Boolean; virtual; + procedure SetNOMBRE_CLIENTEValue(const aValue: String); virtual; + procedure SetNOMBRE_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + function GetUSUARIOIsNull: Boolean; virtual; + function GetOldUSUARIOValue: String; virtual; + function GetOldUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetID_EJECUCIONValue: Integer; virtual; + function GetID_EJECUCIONIsNull: Boolean; virtual; + function GetOldID_EJECUCIONValue: Integer; virtual; + function GetOldID_EJECUCIONIsNull: Boolean; virtual; + procedure SetID_EJECUCIONValue(const aValue: Integer); virtual; + procedure SetID_EJECUCIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull : Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_EMPRESAIsNull : Boolean read GetOldID_EMPRESAIsNull; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull : Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldNOMBREIsNull : Boolean read GetOldNOMBREIsNull; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull : Boolean read GetCALLEIsNull write SetCALLEIsNull; + property OldCALLE : String read GetOldCALLEValue; + property OldCALLEIsNull : Boolean read GetOldCALLEIsNull; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull : Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property OldPROVINCIAIsNull : Boolean read GetOldPROVINCIAIsNull; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull : Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property OldPOBLACIONIsNull : Boolean read GetOldPOBLACIONIsNull; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull : Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property OldCODIGO_POSTALIsNull : Boolean read GetOldCODIGO_POSTALIsNull; + property TELEFONO : String read GetTELEFONOValue write SetTELEFONOValue; + property TELEFONOIsNull : Boolean read GetTELEFONOIsNull write SetTELEFONOIsNull; + property OldTELEFONO : String read GetOldTELEFONOValue; + property OldTELEFONOIsNull : Boolean read GetOldTELEFONOIsNull; + property MOVIL : String read GetMOVILValue write SetMOVILValue; + property MOVILIsNull : Boolean read GetMOVILIsNull write SetMOVILIsNull; + property OldMOVIL : String read GetOldMOVILValue; + property OldMOVILIsNull : Boolean read GetOldMOVILIsNull; + property FAX : String read GetFAXValue write SetFAXValue; + property FAXIsNull : Boolean read GetFAXIsNull write SetFAXIsNull; + property OldFAX : String read GetOldFAXValue; + property OldFAXIsNull : Boolean read GetOldFAXIsNull; + property PERSONA_CONTACTO : String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull : Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property OldPERSONA_CONTACTOIsNull : Boolean read GetOldPERSONA_CONTACTOIsNull; + property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue; + property OBSERVACIONESIsNull : Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property OldOBSERVACIONESIsNull : Boolean read GetOldOBSERVACIONESIsNull; + property ID_CLIENTE : Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property ID_CLIENTEIsNull : Boolean read GetID_CLIENTEIsNull write SetID_CLIENTEIsNull; + property OldID_CLIENTE : Integer read GetOldID_CLIENTEValue; + property OldID_CLIENTEIsNull : Boolean read GetOldID_CLIENTEIsNull; + property NOMBRE_CLIENTE : String read GetNOMBRE_CLIENTEValue write SetNOMBRE_CLIENTEValue; + property NOMBRE_CLIENTEIsNull : Boolean read GetNOMBRE_CLIENTEIsNull write SetNOMBRE_CLIENTEIsNull; + property OldNOMBRE_CLIENTE : String read GetOldNOMBRE_CLIENTEValue; + property OldNOMBRE_CLIENTEIsNull : Boolean read GetOldNOMBRE_CLIENTEIsNull; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull : Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_ALTAIsNull : Boolean read GetOldFECHA_ALTAIsNull; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull : Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldUSUARIOIsNull : Boolean read GetOldUSUARIOIsNull; + property ID_EJECUCION : Integer read GetID_EJECUCIONValue write SetID_EJECUCIONValue; + property ID_EJECUCIONIsNull : Boolean read GetID_EJECUCIONIsNull write SetID_EJECUCIONIsNull; + property OldID_EJECUCION : Integer read GetOldID_EJECUCIONValue; + property OldID_EJECUCIONIsNull : Boolean read GetOldID_EJECUCIONIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IObrasEjecucionesDelta } + IObrasEjecucionesDelta = interface(IObrasEjecuciones) + ['{5B90BE2C-85C5-49E0-893E-103FA6FD4816}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_OBRAValue : Integer; + function GetOldFECHA_INICIOValue : DateTime; + function GetOldFECHA_FINValue : DateTime; + function GetOldID_SUBCONTRATAValue : Integer; + function GetOldNOMBREValue : String; + function GetOldIMPORTE_GASTOSValue : Currency; + function GetOldIMPORTE_INGRESOSValue : Currency; + function GetOldIMPORTE_TOTALValue : Currency; + function GetOldOBSERVACIONESValue : IROStrings; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_OBRA : Integer read GetOldID_OBRAValue; + property OldFECHA_INICIO : DateTime read GetOldFECHA_INICIOValue; + property OldFECHA_FIN : DateTime read GetOldFECHA_FINValue; + property OldID_SUBCONTRATA : Integer read GetOldID_SUBCONTRATAValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldIMPORTE_GASTOS : Currency read GetOldIMPORTE_GASTOSValue; + property OldIMPORTE_INGRESOS : Currency read GetOldIMPORTE_INGRESOSValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + end; + + { TObrasEjecucionesBusinessProcessorRules } + TObrasEjecucionesBusinessProcessorRules = class(TDABusinessProcessorRules, IObrasEjecuciones, IObrasEjecucionesDelta) + private + f_OBSERVACIONES: IROStrings; + procedure OBSERVACIONES_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_OBRAValue: Integer; virtual; + function GetID_OBRAIsNull: Boolean; virtual; + function GetOldID_OBRAValue: Integer; virtual; + function GetOldID_OBRAIsNull: Boolean; virtual; + procedure SetID_OBRAValue(const aValue: Integer); virtual; + procedure SetID_OBRAIsNull(const aValue: Boolean); virtual; + function GetFECHA_INICIOValue: DateTime; virtual; + function GetFECHA_INICIOIsNull: Boolean; virtual; + function GetOldFECHA_INICIOValue: DateTime; virtual; + function GetOldFECHA_INICIOIsNull: Boolean; virtual; + procedure SetFECHA_INICIOValue(const aValue: DateTime); virtual; + procedure SetFECHA_INICIOIsNull(const aValue: Boolean); virtual; + function GetFECHA_FINValue: DateTime; virtual; + function GetFECHA_FINIsNull: Boolean; virtual; + function GetOldFECHA_FINValue: DateTime; virtual; + function GetOldFECHA_FINIsNull: Boolean; virtual; + procedure SetFECHA_FINValue(const aValue: DateTime); virtual; + procedure SetFECHA_FINIsNull(const aValue: Boolean); virtual; + function GetID_SUBCONTRATAValue: Integer; virtual; + function GetID_SUBCONTRATAIsNull: Boolean; virtual; + function GetOldID_SUBCONTRATAValue: Integer; virtual; + function GetOldID_SUBCONTRATAIsNull: Boolean; virtual; + procedure SetID_SUBCONTRATAValue(const aValue: Integer); virtual; + procedure SetID_SUBCONTRATAIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + function GetNOMBREIsNull: Boolean; virtual; + function GetOldNOMBREValue: String; virtual; + function GetOldNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_GASTOSValue: Currency; virtual; + function GetIMPORTE_GASTOSIsNull: Boolean; virtual; + function GetOldIMPORTE_GASTOSValue: Currency; virtual; + function GetOldIMPORTE_GASTOSIsNull: Boolean; virtual; + procedure SetIMPORTE_GASTOSValue(const aValue: Currency); virtual; + procedure SetIMPORTE_GASTOSIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_INGRESOSValue: Currency; virtual; + function GetIMPORTE_INGRESOSIsNull: Boolean; virtual; + function GetOldIMPORTE_INGRESOSValue: Currency; virtual; + function GetOldIMPORTE_INGRESOSIsNull: Boolean; virtual; + procedure SetIMPORTE_INGRESOSValue(const aValue: Currency); virtual; + procedure SetIMPORTE_INGRESOSIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + function GetOBSERVACIONESIsNull: Boolean; virtual; + function GetOldOBSERVACIONESValue: IROStrings; virtual; + function GetOldOBSERVACIONESIsNull: Boolean; virtual; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_OBRA : Integer read GetID_OBRAValue write SetID_OBRAValue; + property ID_OBRAIsNull : Boolean read GetID_OBRAIsNull write SetID_OBRAIsNull; + property OldID_OBRA : Integer read GetOldID_OBRAValue; + property OldID_OBRAIsNull : Boolean read GetOldID_OBRAIsNull; + property FECHA_INICIO : DateTime read GetFECHA_INICIOValue write SetFECHA_INICIOValue; + property FECHA_INICIOIsNull : Boolean read GetFECHA_INICIOIsNull write SetFECHA_INICIOIsNull; + property OldFECHA_INICIO : DateTime read GetOldFECHA_INICIOValue; + property OldFECHA_INICIOIsNull : Boolean read GetOldFECHA_INICIOIsNull; + property FECHA_FIN : DateTime read GetFECHA_FINValue write SetFECHA_FINValue; + property FECHA_FINIsNull : Boolean read GetFECHA_FINIsNull write SetFECHA_FINIsNull; + property OldFECHA_FIN : DateTime read GetOldFECHA_FINValue; + property OldFECHA_FINIsNull : Boolean read GetOldFECHA_FINIsNull; + property ID_SUBCONTRATA : Integer read GetID_SUBCONTRATAValue write SetID_SUBCONTRATAValue; + property ID_SUBCONTRATAIsNull : Boolean read GetID_SUBCONTRATAIsNull write SetID_SUBCONTRATAIsNull; + property OldID_SUBCONTRATA : Integer read GetOldID_SUBCONTRATAValue; + property OldID_SUBCONTRATAIsNull : Boolean read GetOldID_SUBCONTRATAIsNull; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull : Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldNOMBREIsNull : Boolean read GetOldNOMBREIsNull; + property IMPORTE_GASTOS : Currency read GetIMPORTE_GASTOSValue write SetIMPORTE_GASTOSValue; + property IMPORTE_GASTOSIsNull : Boolean read GetIMPORTE_GASTOSIsNull write SetIMPORTE_GASTOSIsNull; + property OldIMPORTE_GASTOS : Currency read GetOldIMPORTE_GASTOSValue; + property OldIMPORTE_GASTOSIsNull : Boolean read GetOldIMPORTE_GASTOSIsNull; + property IMPORTE_INGRESOS : Currency read GetIMPORTE_INGRESOSValue write SetIMPORTE_INGRESOSValue; + property IMPORTE_INGRESOSIsNull : Boolean read GetIMPORTE_INGRESOSIsNull write SetIMPORTE_INGRESOSIsNull; + property OldIMPORTE_INGRESOS : Currency read GetOldIMPORTE_INGRESOSValue; + property OldIMPORTE_INGRESOSIsNull : Boolean read GetOldIMPORTE_INGRESOSIsNull; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull : Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldIMPORTE_TOTALIsNull : Boolean read GetOldIMPORTE_TOTALIsNull; + property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue; + property OBSERVACIONESIsNull : Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property OldOBSERVACIONESIsNull : Boolean read GetOldOBSERVACIONESIsNull; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull : Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_ALTAIsNull : Boolean read GetOldFECHA_ALTAIsNull; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers, uDAInterfaces; + +{ TObrasBusinessProcessorRules } +constructor TObrasBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := OBSERVACIONES_OnChange; + f_OBSERVACIONES := NewROStrings(StrList,True); +end; + +destructor TObrasBusinessProcessorRules.Destroy; +begin + inherited; +end; + +procedure TObrasBusinessProcessorRules.OBSERVACIONES_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasOBSERVACIONES] := TStringList(Sender).Text; +end; + +function TObrasBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID]; +end; + +function TObrasBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID]); +end; + +function TObrasBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasID]; +end; + +function TObrasBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasID]); +end; + +procedure TObrasBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID] := aValue; +end; + +procedure TObrasBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID] := Null; +end; + +function TObrasBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_EMPRESA]; +end; + +function TObrasBusinessProcessorRules.GetID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_EMPRESA]); +end; + +function TObrasBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasID_EMPRESA]; +end; + +function TObrasBusinessProcessorRules.GetOldID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasID_EMPRESA]); +end; + +procedure TObrasBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_EMPRESA] := aValue; +end; + +procedure TObrasBusinessProcessorRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_EMPRESA] := Null; +end; + +function TObrasBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasNOMBRE]; +end; + +function TObrasBusinessProcessorRules.GetNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasNOMBRE]); +end; + +function TObrasBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasNOMBRE]; +end; + +function TObrasBusinessProcessorRules.GetOldNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasNOMBRE]); +end; + +procedure TObrasBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasNOMBRE] := aValue; +end; + +procedure TObrasBusinessProcessorRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasNOMBRE] := Null; +end; + +function TObrasBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasCALLE]; +end; + +function TObrasBusinessProcessorRules.GetCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasCALLE]); +end; + +function TObrasBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasCALLE]; +end; + +function TObrasBusinessProcessorRules.GetOldCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasCALLE]); +end; + +procedure TObrasBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasCALLE] := aValue; +end; + +procedure TObrasBusinessProcessorRules.SetCALLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasCALLE] := Null; +end; + +function TObrasBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPROVINCIA]; +end; + +function TObrasBusinessProcessorRules.GetPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPROVINCIA]); +end; + +function TObrasBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasPROVINCIA]; +end; + +function TObrasBusinessProcessorRules.GetOldPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasPROVINCIA]); +end; + +procedure TObrasBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPROVINCIA] := aValue; +end; + +procedure TObrasBusinessProcessorRules.SetPROVINCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPROVINCIA] := Null; +end; + +function TObrasBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPOBLACION]; +end; + +function TObrasBusinessProcessorRules.GetPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPOBLACION]); +end; + +function TObrasBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasPOBLACION]; +end; + +function TObrasBusinessProcessorRules.GetOldPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasPOBLACION]); +end; + +procedure TObrasBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPOBLACION] := aValue; +end; + +procedure TObrasBusinessProcessorRules.SetPOBLACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPOBLACION] := Null; +end; + +function TObrasBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasCODIGO_POSTAL]; +end; + +function TObrasBusinessProcessorRules.GetCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasCODIGO_POSTAL]); +end; + +function TObrasBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasCODIGO_POSTAL]; +end; + +function TObrasBusinessProcessorRules.GetOldCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasCODIGO_POSTAL]); +end; + +procedure TObrasBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasCODIGO_POSTAL] := aValue; +end; + +procedure TObrasBusinessProcessorRules.SetCODIGO_POSTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasCODIGO_POSTAL] := Null; +end; + +function TObrasBusinessProcessorRules.GetTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasTELEFONO]; +end; + +function TObrasBusinessProcessorRules.GetTELEFONOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasTELEFONO]); +end; + +function TObrasBusinessProcessorRules.GetOldTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasTELEFONO]; +end; + +function TObrasBusinessProcessorRules.GetOldTELEFONOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasTELEFONO]); +end; + +procedure TObrasBusinessProcessorRules.SetTELEFONOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasTELEFONO] := aValue; +end; + +procedure TObrasBusinessProcessorRules.SetTELEFONOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasTELEFONO] := Null; +end; + +function TObrasBusinessProcessorRules.GetMOVILValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasMOVIL]; +end; + +function TObrasBusinessProcessorRules.GetMOVILIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasMOVIL]); +end; + +function TObrasBusinessProcessorRules.GetOldMOVILValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasMOVIL]; +end; + +function TObrasBusinessProcessorRules.GetOldMOVILIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasMOVIL]); +end; + +procedure TObrasBusinessProcessorRules.SetMOVILValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasMOVIL] := aValue; +end; + +procedure TObrasBusinessProcessorRules.SetMOVILIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasMOVIL] := Null; +end; + +function TObrasBusinessProcessorRules.GetFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFAX]; +end; + +function TObrasBusinessProcessorRules.GetFAXIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFAX]); +end; + +function TObrasBusinessProcessorRules.GetOldFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasFAX]; +end; + +function TObrasBusinessProcessorRules.GetOldFAXIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasFAX]); +end; + +procedure TObrasBusinessProcessorRules.SetFAXValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFAX] := aValue; +end; + +procedure TObrasBusinessProcessorRules.SetFAXIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFAX] := Null; +end; + +function TObrasBusinessProcessorRules.GetPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPERSONA_CONTACTO]; +end; + +function TObrasBusinessProcessorRules.GetPERSONA_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPERSONA_CONTACTO]); +end; + +function TObrasBusinessProcessorRules.GetOldPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasPERSONA_CONTACTO]; +end; + +function TObrasBusinessProcessorRules.GetOldPERSONA_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasPERSONA_CONTACTO]); +end; + +procedure TObrasBusinessProcessorRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPERSONA_CONTACTO] := aValue; +end; + +procedure TObrasBusinessProcessorRules.SetPERSONA_CONTACTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPERSONA_CONTACTO] := Null; +end; + +function TObrasBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings; +begin + result := f_OBSERVACIONES; + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasOBSERVACIONES]; +end; + +function TObrasBusinessProcessorRules.GetOBSERVACIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasOBSERVACIONES]); +end; + +function TObrasBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasOBSERVACIONES]; +end; + +function TObrasBusinessProcessorRules.GetOldOBSERVACIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasOBSERVACIONES]); +end; + +procedure TObrasBusinessProcessorRules.SetOBSERVACIONESIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasOBSERVACIONES] := Null; +end; + +function TObrasBusinessProcessorRules.GetID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_CLIENTE]; +end; + +function TObrasBusinessProcessorRules.GetID_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_CLIENTE]); +end; + +function TObrasBusinessProcessorRules.GetOldID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasID_CLIENTE]; +end; + +function TObrasBusinessProcessorRules.GetOldID_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasID_CLIENTE]); +end; + +procedure TObrasBusinessProcessorRules.SetID_CLIENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_CLIENTE] := aValue; +end; + +procedure TObrasBusinessProcessorRules.SetID_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_CLIENTE] := Null; +end; + +function TObrasBusinessProcessorRules.GetNOMBRE_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasNOMBRE_CLIENTE]; +end; + +function TObrasBusinessProcessorRules.GetNOMBRE_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasNOMBRE_CLIENTE]); +end; + +function TObrasBusinessProcessorRules.GetOldNOMBRE_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasNOMBRE_CLIENTE]; +end; + +function TObrasBusinessProcessorRules.GetOldNOMBRE_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasNOMBRE_CLIENTE]); +end; + +procedure TObrasBusinessProcessorRules.SetNOMBRE_CLIENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasNOMBRE_CLIENTE] := aValue; +end; + +procedure TObrasBusinessProcessorRules.SetNOMBRE_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasNOMBRE_CLIENTE] := Null; +end; + +function TObrasBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFECHA_ALTA]; +end; + +function TObrasBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFECHA_ALTA]); +end; + +function TObrasBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasFECHA_ALTA]; +end; + +function TObrasBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasFECHA_ALTA]); +end; + +procedure TObrasBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFECHA_ALTA] := aValue; +end; + +procedure TObrasBusinessProcessorRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFECHA_ALTA] := Null; +end; + +function TObrasBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFECHA_MODIFICACION]; +end; + +function TObrasBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFECHA_MODIFICACION]); +end; + +function TObrasBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasFECHA_MODIFICACION]; +end; + +function TObrasBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasFECHA_MODIFICACION]); +end; + +procedure TObrasBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFECHA_MODIFICACION] := aValue; +end; + +procedure TObrasBusinessProcessorRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFECHA_MODIFICACION] := Null; +end; + +function TObrasBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasUSUARIO]; +end; + +function TObrasBusinessProcessorRules.GetUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasUSUARIO]); +end; + +function TObrasBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasUSUARIO]; +end; + +function TObrasBusinessProcessorRules.GetOldUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasUSUARIO]); +end; + +procedure TObrasBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasUSUARIO] := aValue; +end; + +procedure TObrasBusinessProcessorRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasUSUARIO] := Null; +end; + +function TObrasBusinessProcessorRules.GetID_EJECUCIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_EJECUCION]; +end; + +function TObrasBusinessProcessorRules.GetID_EJECUCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_EJECUCION]); +end; + +function TObrasBusinessProcessorRules.GetOldID_EJECUCIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasID_EJECUCION]; +end; + +function TObrasBusinessProcessorRules.GetOldID_EJECUCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasID_EJECUCION]); +end; + +procedure TObrasBusinessProcessorRules.SetID_EJECUCIONValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_EJECUCION] := aValue; +end; + +procedure TObrasBusinessProcessorRules.SetID_EJECUCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_EJECUCION] := Null; +end; + + +{ TObrasEjecucionesBusinessProcessorRules } +constructor TObrasEjecucionesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := OBSERVACIONES_OnChange; + f_OBSERVACIONES := NewROStrings(StrList,True); +end; + +destructor TObrasEjecucionesBusinessProcessorRules.Destroy; +begin + inherited; +end; + +procedure TObrasEjecucionesBusinessProcessorRules.OBSERVACIONES_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesOBSERVACIONES] := TStringList(Sender).Text; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID]); +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesID]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesID]); +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID] := aValue; +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID] := Null; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetID_OBRAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID_OBRA]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetID_OBRAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID_OBRA]); +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldID_OBRAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesID_OBRA]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldID_OBRAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesID_OBRA]); +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetID_OBRAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID_OBRA] := aValue; +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetID_OBRAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID_OBRA] := Null; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetFECHA_INICIOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_INICIO]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetFECHA_INICIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_INICIO]); +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldFECHA_INICIOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesFECHA_INICIO]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldFECHA_INICIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesFECHA_INICIO]); +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetFECHA_INICIOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_INICIO] := aValue; +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetFECHA_INICIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_INICIO] := Null; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetFECHA_FINValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_FIN]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetFECHA_FINIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_FIN]); +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldFECHA_FINValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesFECHA_FIN]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldFECHA_FINIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesFECHA_FIN]); +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetFECHA_FINValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_FIN] := aValue; +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetFECHA_FINIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_FIN] := Null; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetID_SUBCONTRATAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID_SUBCONTRATA]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetID_SUBCONTRATAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID_SUBCONTRATA]); +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldID_SUBCONTRATAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesID_SUBCONTRATA]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldID_SUBCONTRATAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesID_SUBCONTRATA]); +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetID_SUBCONTRATAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID_SUBCONTRATA] := aValue; +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetID_SUBCONTRATAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID_SUBCONTRATA] := Null; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesNOMBRE]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesNOMBRE]); +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesNOMBRE]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesNOMBRE]); +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesNOMBRE] := aValue; +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesNOMBRE] := Null; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetIMPORTE_GASTOSValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_GASTOS]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetIMPORTE_GASTOSIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_GASTOS]); +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldIMPORTE_GASTOSValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesIMPORTE_GASTOS]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldIMPORTE_GASTOSIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesIMPORTE_GASTOS]); +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetIMPORTE_GASTOSValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_GASTOS] := aValue; +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetIMPORTE_GASTOSIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_GASTOS] := Null; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetIMPORTE_INGRESOSValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_INGRESOS]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetIMPORTE_INGRESOSIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_INGRESOS]); +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldIMPORTE_INGRESOSValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesIMPORTE_INGRESOS]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldIMPORTE_INGRESOSIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesIMPORTE_INGRESOS]); +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetIMPORTE_INGRESOSValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_INGRESOS] := aValue; +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetIMPORTE_INGRESOSIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_INGRESOS] := Null; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_TOTAL]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_TOTAL]); +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesIMPORTE_TOTAL]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesIMPORTE_TOTAL]); +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_TOTAL] := aValue; +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_TOTAL] := Null; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings; +begin + result := f_OBSERVACIONES; + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesOBSERVACIONES]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOBSERVACIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesOBSERVACIONES]); +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesOBSERVACIONES]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldOBSERVACIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesOBSERVACIONES]); +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetOBSERVACIONESIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesOBSERVACIONES] := Null; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_ALTA]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_ALTA]); +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesFECHA_ALTA]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesFECHA_ALTA]); +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_ALTA] := aValue; +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_ALTA] := Null; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_MODIFICACION]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_MODIFICACION]); +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesFECHA_MODIFICACION]; +end; + +function TObrasEjecucionesBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesFECHA_MODIFICACION]); +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_MODIFICACION] := aValue; +end; + +procedure TObrasEjecucionesBusinessProcessorRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_MODIFICACION] := Null; +end; + + +initialization + RegisterBusinessProcessorRules(RID_ObrasDelta, TObrasBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_ObrasEjecucionesDelta, TObrasEjecucionesBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Controller/PedidosProveedor_controller.bdsproj b/Source/Modulos/Pedidos a proveedor/Controller/PedidosProveedor_controller.bdsproj new file mode 100644 index 0000000..6ba1ac5 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Controller/PedidosProveedor_controller.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + PedidosProveedor_controller.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Pedidos a proveedor/Controller/PedidosProveedor_controller.cfb b/Source/Modulos/Pedidos a proveedor/Controller/PedidosProveedor_controller.cfb new file mode 100644 index 0000000..92d5150 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Controller/PedidosProveedor_controller.cfb differ diff --git a/Source/Modulos/Pedidos a proveedor/Controller/PedidosProveedor_controller.dcu b/Source/Modulos/Pedidos a proveedor/Controller/PedidosProveedor_controller.dcu new file mode 100644 index 0000000..353378a Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Controller/PedidosProveedor_controller.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Controller/PedidosProveedor_controller.dpk b/Source/Modulos/Pedidos a proveedor/Controller/PedidosProveedor_controller.dpk new file mode 100644 index 0000000..2e37c05 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Controller/PedidosProveedor_controller.dpk differ diff --git a/Source/Modulos/Pedidos a proveedor/Controller/PedidosProveedor_controller.dproj b/Source/Modulos/Pedidos a proveedor/Controller/PedidosProveedor_controller.dproj new file mode 100644 index 0000000..97b6d05 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Controller/PedidosProveedor_controller.dproj @@ -0,0 +1,551 @@ + + + + {7ed85635-c723-4c0b-bf1d-f719e0ea33ad} + PedidosProveedor_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\PedidosProveedor_controller.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0PedidosProveedor_controller.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Pedidos a proveedor/Controller/PedidosProveedor_controller.drc b/Source/Modulos/Pedidos a proveedor/Controller/PedidosProveedor_controller.drc new file mode 100644 index 0000000..cd1fc2c --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Controller/PedidosProveedor_controller.drc @@ -0,0 +1,16 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Pedidos a proveedor\Controller\PedidosProveedor_controller.res */ +/* c:\temp\dtf1AD.tmp */ diff --git a/Source/Modulos/Pedidos a proveedor/Controller/PedidosProveedor_controller.rc b/Source/Modulos/Pedidos a proveedor/Controller/PedidosProveedor_controller.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Controller/PedidosProveedor_controller.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Pedidos a proveedor/Controller/PedidosProveedor_controller.res b/Source/Modulos/Pedidos a proveedor/Controller/PedidosProveedor_controller.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Controller/PedidosProveedor_controller.res differ diff --git a/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorDireccionEntregaPedidoProveedor.dcu b/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorDireccionEntregaPedidoProveedor.dcu new file mode 100644 index 0000000..2e1a5d6 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorDireccionEntregaPedidoProveedor.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorDireccionEntregaPedidoProveedor.pas b/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorDireccionEntregaPedidoProveedor.pas new file mode 100644 index 0000000..38d5bdb --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorDireccionEntregaPedidoProveedor.pas @@ -0,0 +1,22 @@ +unit uIEditorDireccionEntregaPedidoProveedor; + +interface + +uses + uBizPedidosProveedor; + +type + IEditorDireccionEntregaPedidoProveedor = interface + ['{3CFC2593-A4D2-4CEA-B84F-DA726CB843F3}'] + function GetPedido: IBizPedidoProveedor; + procedure SetPedido(const Value: IBizPedidoProveedor); + property Pedido: IBizPedidoProveedor read GetPedido write SetPedido; + + function ShowModal : Integer; + procedure Release; + end; + + +implementation + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorElegirArticulosPedidosProveedor.dcu b/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorElegirArticulosPedidosProveedor.dcu new file mode 100644 index 0000000..416b4cb Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorElegirArticulosPedidosProveedor.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorElegirArticulosPedidosProveedor.pas b/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorElegirArticulosPedidosProveedor.pas new file mode 100644 index 0000000..9e93d1d --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorElegirArticulosPedidosProveedor.pas @@ -0,0 +1,19 @@ +unit uIEditorElegirArticulosPedidosProveedor; + +interface + +uses + uIEditorElegirArticulos, uBizContactos; + +type + IEditorElegirArticulosPedidosProveedor = interface(IEditorElegirArticulos) + ['{4016D4CD-8C0C-494A-9CC4-256E3A00EAD3}'] + function GetProveedor: IBizProveedor; + procedure SetProveedor(const Value: IBizProveedor); + property Proveedor: IBizProveedor read GetProveedor write SetProveedor; + end; + + +implementation + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorElegirPedidosProveedor.dcu b/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorElegirPedidosProveedor.dcu new file mode 100644 index 0000000..94a5a10 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorElegirPedidosProveedor.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorElegirPedidosProveedor.pas b/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorElegirPedidosProveedor.pas new file mode 100644 index 0000000..338f14f --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorElegirPedidosProveedor.pas @@ -0,0 +1,26 @@ +unit uIEditorElegirPedidosProveedor; + +interface + +uses + uIEditorPedidosProveedor, uBizPedidosProveedor, uGUIBase; + +type + IEditorElegirPedidosProveedor = interface(IEditorPedidosProveedor) + ['{12716994-A11A-4C05-973B-652468B859D9}'] + function GetPedidosProveedorSeleccionados: IBizPedidoProveedor; + property PedidosProveedorSeleccionados: IBizPedidoProveedor read GetPedidosProveedorSeleccionados; + + procedure SetMultiSelect (AValue : Boolean); + function GetMultiSelect : Boolean; + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + + procedure SetMensaje (const AValue: String); + function GetMensaje: String; + property Mensaje : String read GetMensaje write SetMensaje; + end; + + +implementation + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorPedidoProveedor.dcu b/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorPedidoProveedor.dcu new file mode 100644 index 0000000..670f6d5 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorPedidoProveedor.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorPedidoProveedor.pas b/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorPedidoProveedor.pas new file mode 100644 index 0000000..cf3f76b --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorPedidoProveedor.pas @@ -0,0 +1,23 @@ +unit uIEditorPedidoProveedor; + +interface + +uses + uEditorDBItem, uBizPedidosProveedor, uPedidosProveedorController; + +type + IEditorPedidoProveedor = interface(IEditorDBItem) + ['{244C8E63-7BA2-4C8E-A2B8-4ECCEFDB5196}'] + function GetController : IPedidosProveedorController; + procedure SetController (const Value : IPedidosProveedorController); + property Controller : IPedidosProveedorController read GetController + write SetController; + + function GetPedido: IBizPedidoProveedor; + procedure SetPedido(const Value: IBizPedidoProveedor); + property Pedido: IBizPedidoProveedor read GetPedido write SetPedido; + end; + +implementation + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorPedidosProveedor.dcu b/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorPedidosProveedor.dcu new file mode 100644 index 0000000..cb905db Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorPedidosProveedor.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorPedidosProveedor.pas b/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorPedidosProveedor.pas new file mode 100644 index 0000000..a820240 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorPedidosProveedor.pas @@ -0,0 +1,23 @@ +unit uIEditorPedidosProveedor; + +interface + +uses + uEditorGridBase, uBizPedidosProveedor, uPedidosProveedorController; + +type + IEditorPedidosProveedor = interface(IEditorGridBase) + ['{F2C320D6-A7A2-4402-95DF-BCFA87384281}'] + function GetPedidos: IBizPedidoProveedor; + procedure SetPedidos(const Value: IBizPedidoProveedor); + property Pedidos: IBizPedidoProveedor read GetPedidos write SetPedidos; + + function GetController : IPedidosProveedorController; + procedure SetController (const Value : IPedidosProveedorController); + property Controller : IPedidosProveedorController read GetController write SetController; + end; + + +implementation + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorPedidosProveedorPreview.dcu b/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorPedidosProveedorPreview.dcu new file mode 100644 index 0000000..a64cff4 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorPedidosProveedorPreview.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorPedidosProveedorPreview.pas b/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorPedidosProveedorPreview.pas new file mode 100644 index 0000000..5f820fe --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorPedidosProveedorPreview.pas @@ -0,0 +1,23 @@ +unit uIEditorPedidosProveedorPreview; + +interface + +uses + uEditorPreview; + +type + IEditorPedidosProveedorPreview = interface(IEditorPreview) + ['{9B638488-5156-4FDA-BD85-524DC1D6F6A6}'] + procedure SetVerPrecios(const Value: Boolean); + function GetVerPrecios: Boolean; + property VerPrecios : Boolean read GetVerPrecios write SetVerPrecios; + + function GetVerRefProveedor: Boolean; + procedure SetVerRefProveedor(const Value: Boolean); + property VerRefProveedor : Boolean read GetVerRefProveedor write SetVerRefProveedor; + end; + + +implementation + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorSituacionPedidoProveedor.dcu b/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorSituacionPedidoProveedor.dcu new file mode 100644 index 0000000..00e7131 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorSituacionPedidoProveedor.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorSituacionPedidoProveedor.pas b/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorSituacionPedidoProveedor.pas new file mode 100644 index 0000000..7c79ce7 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorSituacionPedidoProveedor.pas @@ -0,0 +1,27 @@ +unit uIEditorSituacionPedidoProveedor; + +interface + +uses + uBizPedidosProveedor, uPedidosProveedorController; + +type + IEditorSituacionPedidoProveedor = interface + ['{29CBF2CD-AFD5-49F6-964C-38188F15702E}'] + function GetController : IPedidosProveedorController; + procedure SetController (const Value : IPedidosProveedorController); + property Controller : IPedidosProveedorController read GetController + write SetController; + + function GetPedidoProveedor: IBizPedidoProveedor; + procedure SetPedidoProveedor(const Value: IBizPedidoProveedor); + property PedidoProveedor: IBizPedidoProveedor read GetPedidoProveedor + write SetPedidoProveedor; + + function ShowModal : Integer; + procedure Release; + end; + +implementation + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Controller/uArticulosPedidoProveedorController.dcu b/Source/Modulos/Pedidos a proveedor/Controller/uArticulosPedidoProveedorController.dcu new file mode 100644 index 0000000..a6d8e30 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Controller/uArticulosPedidoProveedorController.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Controller/uArticulosPedidoProveedorController.pas b/Source/Modulos/Pedidos a proveedor/Controller/uArticulosPedidoProveedorController.pas new file mode 100644 index 0000000..e857db7 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Controller/uArticulosPedidoProveedorController.pas @@ -0,0 +1,48 @@ +unit uArticulosPedidoProveedorController; + +interface + +uses + uDADataTable, uArticulosController, uBizArticulos, uBizContactos; + +type + IArticulosPedidoProveedorController = interface(IArticulosController) + ['{8C8A8D8D-82D2-4434-81C3-36E4F43F3B3E}'] + function ElegirArticulos(AArticulos : IBizArticulo; AMensaje: String; AMultiSelect: Boolean; const AProveedor: IBizProveedor): IBizArticulo; + end; + + TArticulosPedidoProveedorController = class(TArticulosController, IArticulosPedidoProveedorController) + public + function ElegirArticulos(AArticulos : IBizArticulo; AMensaje: String; AMultiSelect: Boolean; const AProveedor: IBizProveedor): IBizArticulo; overload; + end; + +implementation + +{ TArticulosPedidoProveedorController } + +uses Controls, cxControls, uIEditorElegirArticulosPedidosProveedor, uIEditorElegirArticulos, uDBSelectionListUtils, +SysUtils, Classes; + +function TArticulosPedidoProveedorController.ElegirArticulos(AArticulos: IBizArticulo; AMensaje: String; + AMultiSelect: Boolean; const AProveedor: IBizProveedor): IBizArticulo; +var + AEditor : IEditorElegirArticulosPedidosProveedor; +begin + Result := NIL; + CreateEditor('EditorElegirArticulosPedidoProveedor', IEditorElegirArticulosPedidosProveedor, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; + AEditor.Articulos := AArticulos; + AEditor.Proveedor := AProveedor; + AEditor.MultiSelect := AMultiSelect; + AEditor.Mensaje := AMensaje; + if IsPositiveResult(AEditor.ShowModal) then + Result := AEditor.ArticulosSeleccionados; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Controller/uDetallesPedidoProveedorController.dcu b/Source/Modulos/Pedidos a proveedor/Controller/uDetallesPedidoProveedorController.dcu new file mode 100644 index 0000000..8515a71 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Controller/uDetallesPedidoProveedorController.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Controller/uDetallesPedidoProveedorController.pas b/Source/Modulos/Pedidos a proveedor/Controller/uDetallesPedidoProveedorController.pas new file mode 100644 index 0000000..ec5fc60 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Controller/uDetallesPedidoProveedorController.pas @@ -0,0 +1,175 @@ +unit uDetallesPedidoProveedorController; + +interface + +uses + uDADataTable, uControllerDetallesArticulos, uBizDetallesPedidoProveedor, uIDataModulePedidosProveedor, + uBizArticulos, uBizContactos; + +const + CAMPO_REFERENCIA_FABRICANTE = 'REFERENCIA_FABRICANTE'; + +type + IDetallesPedidoProveedorController = interface(IControllerDetallesArticulos) + ['{942428EC-BCB8-4C56-BFA6-EB9F05D5E0DB}'] + procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor; const ANuevaFila :Boolean = True; const ACantidad: Integer = 1); overload; + procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor); overload; + function ArticulosPendientes(const ID : Integer): IBizDetallesPedidoProveedorPend; + procedure DesglosarPorteDetalles(ImportePorte: Currency; ADetalles: IDAStronglyTypedDataTable); + function DarTotalPorteTotal(ADetalles: IDAStronglyTypedDataTable): Double; + end; + + TDetallesPedidoProveedorController = class(TControllerDetallesArticulos, IDetallesPedidoProveedorController) + private + FDataModule : IDataModulePedidosProveedor; + protected + procedure RellenarOtros(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); override; + procedure RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); override; + + procedure AsignarController; override; + //Si sobreescribimos este mtodo podremos tener en cuenta otras columnas para el calculo del importe total de un concepto + function CalcularImporteTotalConcepto(DataTable: TDADataTable): Double; override; + procedure ValidarCampos(DataTable: TDADataTable); override; + + procedure DesglosarPorteDetalles(ImportePorte: Currency; ADetalles: IDAStronglyTypedDataTable); + function DarTotalPorteTotal(ADetalles: IDAStronglyTypedDataTable): Double; + + public + procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor; const ANuevaFila :Boolean = True; const ACantidad: Integer = 1); overload; + procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor); overload; + function ArticulosPendientes(const ID : Integer): IBizDetallesPedidoProveedorPend; + constructor Create; override; + destructor Destroy; override; + end; + +implementation + +uses uDAInterfaces, Variants, uControllerDetallesBase, uDataModulePedidosProveedor, + uCalculosUtils, schArticulosClient_Intf, schPedidosProveedorClient_Intf, uArticulosPedidoProveedorController; + +{ TDetallesPedidoProveedorController } + +procedure TDetallesPedidoProveedorController.ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor); +var + AArticulos : IBizArticulo; +begin + if Assigned(ADetalles) then + begin + try + AArticulos := (FArticulosController.BuscarTodos(AProveedor) as IBizArticulo); + ActualizarDetalles(ADetalles, AArticulos); + EliminarArticulosProveedor(ADetalles); + finally + AArticulos := Nil; + end; + end; +end; + +procedure TDetallesPedidoProveedorController.AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor; const ANuevaFila :Boolean; const ACantidad: Integer); +var + AArticulos: IBizArticulo; +begin + if Assigned(ADetalles) then + begin + try + AArticulos := (FArticulosController.BuscarTodosPorProveedor as IBizArticulo); + + //Si nueva fila es false, quiere decir que se sustituye un determinado artculo, por ello la lista a seleccionar no debe ser multiselect + if ANuevaFila then + begin + AArticulos := (FArticulosController as IArticulosPedidoProveedorController).ElegirArticulos(AArticulos, 'Elija los artculos que desea aadir a este pedido a proveedor', True, AProveedor); + Add(ADetalles, AArticulos, ACantidad) + end + else + begin + AArticulos := (FArticulosController as IArticulosPedidoProveedorController).ElegirArticulos(AArticulos, 'Elija el artculo que desea aadir a este pedido a proveedor', False, AProveedor); + RellenarDetalle(ADetalles, AArticulos, ACantidad); + end; + + finally + AArticulos := Nil; + end; + end; +end; + +function TDetallesPedidoProveedorController.ArticulosPendientes(const ID: Integer): IBizDetallesPedidoProveedorPend; +begin + Result := FDataModule.GetArticulosPendientes(ID); +end; + +procedure TDetallesPedidoProveedorController.AsignarController; +begin + FArticulosController := TArticulosPedidoProveedorController.Create; +end; + +function TDetallesPedidoProveedorController.CalcularImporteTotalConcepto(DataTable: TDADataTable): Double; +begin + Result := CalcularLineaConcepto(DataTable); +end; + +constructor TDetallesPedidoProveedorController.Create; +begin + inherited; + FDataModule := TDataModulePedidosProveedor.Create(Nil); +end; + +function TDetallesPedidoProveedorController.DarTotalPorteTotal(ADetalles: IDAStronglyTypedDataTable): Double; +begin + Result := DarTotalPorte(ADetalles); +end; + +procedure TDetallesPedidoProveedorController.DesglosarPorteDetalles(ImportePorte: Currency; ADetalles: IDAStronglyTypedDataTable); +begin + DesglosarPorte(ImportePorte, ADetalles); + ActualizarTotales(ADetalles); +end; + +destructor TDetallesPedidoProveedorController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + +procedure TDetallesPedidoProveedorController.RellenarOtros(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +var + AField: TDAField; + +begin + if Assigned(AArticulos) then + ADetalles.DataTable.FieldByName(CAMPO_DESCUENTO).AsFloat := AArticulos.DESCUENTO + else + ADetalles.DataTable.FieldByName(CAMPO_DESCUENTO).AsFloat := 0; + + //Sobreescribimos el id del articulo por el campo ID_ARTICULO que nos hemos tenido que crear para + //almacenar el codigo de artculo ya que ID esta destinado a ID_ARTICULO||ID_PROVEEDOR, para identificar de forma + //unica los articulos desglosados por proveedor. + AField := AArticulos.DataTable.FindField(CAMPO_ID_ARTICULOS); + if Assigned(AField) then + ADetalles.DataTable.FieldByName(CAMPO_ID_ARTICULOS).AsVariant := AField.AsVariant; + + AField := AArticulos.DataTable.FindField(fld_ArticulosREFERENCIA_FABR); + if Assigned(AField) then + ADetalles.DataTable.FieldByName(fld_PedidosProveedor_DetallesREFERENCIA_FABRICANTE).AsVariant := AField.AsVariant; +end; + +procedure TDetallesPedidoProveedorController.ValidarCampos(DataTable: TDADataTable); +begin + inherited; + ValidarCamposLineaConcepto(DataTable); +end; + +procedure TDetallesPedidoProveedorController.RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +begin + if Assigned(AArticulos) then + begin + ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := AArticulos.PRECIO_COSTE; + ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_PORTE).AsVariant := AArticulos.PRECIO_PORTE; + end + else + begin + ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := Null; + ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_PORTE).AsVariant := Null; + end; +end; + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Controller/uPedidosProveedorController.dcu b/Source/Modulos/Pedidos a proveedor/Controller/uPedidosProveedorController.dcu new file mode 100644 index 0000000..12aa6de Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Controller/uPedidosProveedorController.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Controller/uPedidosProveedorController.pas b/Source/Modulos/Pedidos a proveedor/Controller/uPedidosProveedorController.pas new file mode 100644 index 0000000..25dce0e --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Controller/uPedidosProveedorController.pas @@ -0,0 +1,979 @@ +unit uPedidosProveedorController; + +interface + + +uses + Classes, SysUtils, uDADataTable, + uControllerBase, uIDataModulePedidosProveedor, uProveedoresController, + uDetallesPedidoProveedorController, uBizPedidosProveedor; + +type + IPedidosProveedorController = interface(IControllerBase) + ['{404FFA2F-D683-447D-91E6-C9A7322934D8}'] + function GetProveedorController: IProveedoresController; + procedure SetProveedorController(const Value: IProveedoresController); + property ProveedorController: IProveedoresController read GetProveedorController write SetProveedorController; + + function GetDetallesController: IDetallesPedidoProveedorController; + procedure SetDetallesController(const Value: IDetallesPedidoProveedorController); + property DetallesController: IDetallesPedidoProveedorController read GetDetallesController write SetDetallesController; + + function Buscar(const ID: Integer): IBizPedidoProveedor; + function BuscarTodos: IBizPedidoProveedor; overload; + function BuscarTodos(const AID_Proveedor: Integer): IBizPedidoProveedor; overload; + function BuscarPendientesRecepcion: IBizPedidoProveedor; + function BuscarSinFacturar : IBizPedidoProveedor; + procedure Ver(APedido : IBizPedidoProveedor); + procedure VerTodos(APedidos: IBizPedidoProveedor; + const AVerModal : Boolean = False; const AWindowCaption: String = ''; + const AHeaderText: String = ''); + procedure VerDireccionEntrega(APedido : IBizPedidoProveedor); + function Nuevo : IBizPedidoProveedor; + procedure Anadir(APedido : IBizPedidoProveedor); + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(APedido : IBizPedidoProveedor; AllItems: Boolean = false): Boolean; overload; + function Guardar(APedido : IBizPedidoProveedor): Boolean; + procedure DescartarCambios(APedido : IBizPedidoProveedor); + function Existe(const ID: Integer) : Boolean; + function Duplicar(APedido: IBizPedidoProveedor): IBizPedidoProveedor; + + procedure Preview(APedido : IBizPedidoProveedor; AllItems: Boolean = False; + const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True); + procedure Print(APedido : IBizPedidoProveedor; AllItems: Boolean = False; + const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True); + + procedure RecalcularImportes(APedido: IBizPedidoProveedor); + function EsModificable(APedido : IBizPedidoProveedor): Boolean; + function EsEliminable(APedido : IBizPedidoProveedor): Boolean; + + function CambiarSituacion(APedido: IBizPedidoProveedor; ASituacion : String; AFechaPagado: TDateTime = 0; DoPost : Boolean = True): Boolean; overload; + function CambiarSituacion(APedido: IBizPedidoProveedor): Boolean; overload; + + function ExtraerSeleccionados(APedido: IBizPedidoProveedor) : IBizPedidoProveedor; + function ElegirPedidos(APedido: IBizPedidoProveedor; AMensaje: String; AMultiSelect: Boolean): IBizPedidoProveedor; + procedure RecuperarProveedor(APedido: IBizPedidoProveedor); + procedure EnviarPedidoPorEMail(APedido: IBizPedidoProveedor); + + Procedure AsignarIDObra(APedido: IBizPedidoProveedor; const IDObra: Variant); + Procedure AsignarIDAlmacen(APedido: IBizPedidoProveedor; const IDAlmacen: Variant); + + function DarListaAnosPedidos: TStringList; + procedure FiltrarAno(APedido: IBizPedidoProveedor; ADynWhereDataTable: WideString; const Ano: String); + end; + + TPedidosProveedorController = class(TControllerBase, IPedidosProveedorController) + protected + FDataModule : IDataModulePedidosProveedor; + FProveedorController : IProveedoresController; + FDetallesController : IDetallesPedidoProveedorController; + + function GetProveedorController: IProveedoresController; + procedure SetProveedorController(const Value: IProveedoresController); + procedure RecuperarProveedor(APedido : IBizPedidoProveedor); + function GetDetallesController: IDetallesPedidoProveedorController; + procedure SetDetallesController(const Value: IDetallesPedidoProveedorController); + + //Estos son los tres mtodos a sobre escribir si se desea heredar toda la logica de + //este controller + procedure AsignarDataModule; virtual; + procedure RecuperarObjetos(APedido: IBizPedidoProveedor); virtual; + + function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; + procedure FiltrarEmpresa(APedido: IBizPedidoProveedor); + function _Vacio : IBizPedidoProveedor; + function ValidarPedido(APedido: IBizPedidoProveedor): Boolean; + function ValidarSituacion(ASituacion: String; AFechaPedido: TDateTime; + var AFechaRecepcion: TDateTime): Boolean; + + public + property ProveedorController: IProveedoresController read GetProveedorController write SetProveedorController; + property DetallesController: IDetallesPedidoProveedorController read GetDetallesController write SetDetallesController; + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + + constructor Create; override; + destructor Destroy; override; + + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(APedido : IBizPedidoProveedor; AllItems: Boolean = false): Boolean; overload; + function Guardar(APedido : IBizPedidoProveedor): Boolean; + procedure DescartarCambios(APedido : IBizPedidoProveedor); virtual; + function Existe(const ID: Integer) : Boolean; virtual; + procedure Anadir(APedido : IBizPedidoProveedor); + function Buscar(const ID: Integer): IBizPedidoProveedor; + function BuscarTodos: IBizPedidoProveedor; overload; + function BuscarTodos(const AID_Proveedor: Integer): IBizPedidoProveedor; overload; + function BuscarPendientesRecepcion: IBizPedidoProveedor; + function BuscarSinFacturar : IBizPedidoProveedor; + function Nuevo : IBizPedidoProveedor; + procedure Ver(APedido : IBizPedidoProveedor); + procedure VerTodos(APedidos: IBizPedidoProveedor; + const AVerModal : Boolean = False; const AWindowCaption: String = ''; + const AHeaderText: String = ''); + + procedure VerDireccionEntrega(APedido : IBizPedidoProveedor); + function Duplicar(APedido: IBizPedidoProveedor): IBizPedidoProveedor; + + procedure Preview(APedido : IBizPedidoProveedor; AllItems: Boolean = False; + const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True); + procedure Print(APedido : IBizPedidoProveedor; AllItems: Boolean = False; + const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True); + + procedure RecalcularImportes(APedido: IBizPedidoProveedor); + function EsModificable(APedido : IBizPedidoProveedor): Boolean; + function EsEliminable(APedido : IBizPedidoProveedor): Boolean; + + function CambiarSituacion(APedido: IBizPedidoProveedor; ASituacion : String; AFechaRecepcion: TDateTime = 0; DoPost : Boolean = True): Boolean; overload; + function CambiarSituacion(APedido: IBizPedidoProveedor): Boolean; overload; + + function ExtraerSeleccionados(APedido: IBizPedidoProveedor) : IBizPedidoProveedor; + function ElegirPedidos(APedido: IBizPedidoProveedor; AMensaje: String; AMultiSelect: Boolean): IBizPedidoProveedor; + procedure EnviarPedidoPorEMail(APedido: IBizPedidoProveedor); + + Procedure AsignarIDObra(APedido: IBizPedidoProveedor; const IDObra: Variant); + Procedure AsignarIDAlmacen(APedido: IBizPedidoProveedor; const IDAlmacen: Variant); + + function DarListaAnosPedidos: TStringList; + procedure FiltrarAno(APedido: IBizPedidoProveedor; ADynWhereDataTable: WideString; const Ano: String); + end; + +implementation + +uses + uROTypes, Controls, cxControls, DB, uEditorRegistryUtils, uEditorPreview, DateUtils, + uIEditorPedidosProveedor, uDataModulePedidosProveedor, uFactuGES_App, + uBizDetallesPedidoProveedor, uBizContactos, uDataTableUtils, uDataModuleUsuarios, + schPedidosProveedorClient_Intf, uDAInterfaces, uPedidosProveedorReportController, + uDateUtils, uIEditorPedidoProveedor, uIEditorElegirPedidosProveedor, + Dialogs, uIEditorDireccionEntregaPedidoProveedor, uIEditorSituacionPedidoProveedor, + Variants, uSistemaFunc, uEMailUtils, uDialogElegirEMail, uIntegerListUtils, uStringsUtils; + +{ TPedidosProveedorController } + +procedure TPedidosProveedorController.Anadir(APedido: IBizPedidoProveedor); +begin + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado (Anadir)'); + + APedido.Insert; +end; + +procedure TPedidosProveedorController.AsignarDataModule; +begin + FDataModule := TDataModulePedidosProveedor.Create(Nil); +end; + +procedure TPedidosProveedorController.AsignarIDAlmacen(APedido: IBizPedidoProveedor; const IDAlmacen: Variant); +begin + if Assigned(APedido) then + begin + if not APedido.DataTable.Editing then + APedido.DataTable.Edit; + + if EsCadenaVacia(IDAlmacen) then + APedido.ID_ALMACENIsNull := true + else + APedido.ID_ALMACEN := IDAlmacen; + + APedido.DataTable.Post; + end; +end; + +procedure TPedidosProveedorController.AsignarIDObra(APedido: IBizPedidoProveedor; const IDObra: Variant); +begin + if Assigned(APedido) then + begin + if not APedido.DataTable.Editing then + APedido.DataTable.Edit; + + if EsCadenaVacia(IDObra) then + APedido.ID_OBRAIsNull := true + else + APedido.ID_OBRA := IDObra; + + APedido.DataTable.Post; + end; +end; + +function TPedidosProveedorController.Buscar(const ID: Integer): IBizPedidoProveedor; +begin + Result := FDataModule.GetItem(ID); + FiltrarEmpresa(Result); +end; + +function TPedidosProveedorController.BuscarPendientesRecepcion: IBizPedidoProveedor; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + + // Filtrar los pedidos pendientes de recepcion + with Result.DataTable.DynamicWhere do + begin + // (SITUACION <> RECIBIDO) + Condicion := NewBinaryExpression(NewField('', fld_PedidosProveedorSITUACION), NewConstant(SITUACION_PEDIDO_RECIBIDO, datString), dboNotEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + finally + HideHourglassCursor; + end; +end; + +function TPedidosProveedorController.BuscarSinFacturar: IBizPedidoProveedor; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + + with Result.DataTable.DynamicWhere do + begin + // (ID_FACTURA = NULL) + Condicion := NewBinaryExpression(NewField('', fld_PedidosProveedorID_FACTURA), NewNull(), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TPedidosProveedorController.BuscarTodos( + const AID_Proveedor: Integer): IBizPedidoProveedor; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + + with Result.DataTable.DynamicWhere do + begin + // ID_PROVEEDOR + Condicion := NewBinaryExpression(NewField('', fld_PedidosProveedorID_PROVEEDOR), + NewConstant(AID_Proveedor, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + finally + HideHourglassCursor; + end; +end; + +function TPedidosProveedorController.BuscarTodos: IBizPedidoProveedor; +begin + Result := FDataModule.GetItems; + FiltrarEmpresa(Result); +end; + +constructor TPedidosProveedorController.Create; +begin + inherited; + AsignarDataModule; + FProveedorController := TProveedoresController.Create; + + FDetallesController := TDetallesPedidoProveedorController.Create; + FDetallesController.addObservador(Self); +// Self.addSujeto(FDetallesController); +end; + +function TPedidosProveedorController.CreateEditor(const AName: String; + const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + +function TPedidosProveedorController.DarListaAnosPedidos: TStringList; +begin + Result := FDataModule.GetAnosItems; +end; + +procedure TPedidosProveedorController.DescartarCambios(APedido: IBizPedidoProveedor); +begin + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado'); + + ShowHourglassCursor; + try + if (APedido.State in dsEditModes) then + APedido.Cancel; + + APedido.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +function TPedidosProveedorController.CambiarSituacion(APedido: IBizPedidoProveedor; ASituacion: String; AFechaRecepcion: TDateTime; + DoPost: Boolean): Boolean; +begin + Result := False; + + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado (CambiarSituacion)'); + + if not APedido.DataTable.Active then + APedido.DataTable.Active := True; + + // Validar la situacin del pedido + if ValidarSituacion(ASituacion, APedido.FECHA_PEDIDO, AFechaRecepcion) then + begin + ShowHourglassCursor; + APedido.DataTable.DisableControls; + try + APedido.Edit; + APedido.SITUACION := ASituacion; + if AFechaRecepcion <> APedido.FECHA_ENTREGA then + APedido.FECHA_ENTREGA := AFechaRecepcion; + APedido.Post; + if DoPost then + Guardar(APedido); + Result := True; + finally + APedido.DataTable.EnableControls; + HideHourglassCursor; + end; + end; +end; + +function TPedidosProveedorController.CambiarSituacion(APedido: IBizPedidoProveedor): Boolean; +var + AEditor : IEditorSituacionPedidoProveedor; +begin + Result := False; + AEditor := NIL; + + RecuperarProveedor(APedido); + CreateEditor('EditorSituacionPedidoProveedor', IEditorSituacionPedidoProveedor, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.PedidoProveedor := APedido; + AEditor.ShowModal; + Result := True; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +destructor TPedidosProveedorController.Destroy; +begin + FDataModule := Nil; + FProveedorController := Nil; + FDetallesController := Nil; + inherited; +end; + +function TPedidosProveedorController.Duplicar( + APedido: IBizPedidoProveedor): IBizPedidoProveedor; +begin + Result := Self._Vacio; + ShowHourglassCursor; + try + DuplicarRegistros(APedido.DataTable, Result.DataTable, mdrActual); + DuplicarRegistros(APedido.Detalles.DataTable, Result.Detalles.DataTable, mdrTodos); + + // Hay que dejar algunos campos como si fuera un presupuesto nuevo + Result.Edit; + with Result do + begin + REFERENCIA := ''; + ID_EMPRESA := AppFactuGES.EmpresaActiva.ID; + USUARIO := AppFactuGES.UsuarioActivo.UserName; + FECHA_PEDIDO := DateOf(Now); + SITUACION := SITUACION_PEDIDO_PENDIENTE; + FECHA_ENVIO := 0; + FECHA_CONFIRMACION := 0; + FECHA_ENTREGA := 0; + INCIDENCIAS_ACTIVAS := 0; +// INCIDENCIAS := Nil; + REF_PED_CLIENTE := ''; + ID_PEDIDO_CLIENTE := 0; + ID_FACTURA := 0; + end; + Result.Post; + finally + HideHourglassCursor; + end; +end; + +function TPedidosProveedorController.ValidarPedido( + APedido: IBizPedidoProveedor): Boolean; +begin + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado'); + + if (APedido.DataTable.State in dsEditModes) then + APedido.DataTable.Post; + + //Tambien hacemos post de sus tablas hija + if (APedido.Detalles.DataTable.State in dsEditModes) then + APedido.Detalles.DataTable.Post; + + if (APedido.ID_PROVEEDOR < 0) or (APedido.ID_PROVEEDOR = 0) then + raise Exception.Create('Debe indicar el proveedor de este pedido'); + + if (EsFechaVacia(APedido.FECHA_PEDIDO)) then + raise Exception.Create('Debe indicar la fecha de este pedido'); + + if (Length(APedido.CALLE) = 0) and (APedido.ID_ALMACEN = 0) and (APedido.ID_OBRA = 0) then + raise Exception.Create('Debe indicar una direccin de entrega o almacn para este pedido'); + + if (APedido.Detalles.DataTable.RecordCount = 0) then + raise Exception.Create('Debe indicar al menos un concepto en el contenido del pedido'); + + + { Asegurarse de valores en campos "automticos" tanto + en MODIFICACIN como en INSERCIN. } + APedido.Edit; + try + APedido.USUARIO := AppFactuGES.UsuarioActivo.UserName; + + if Assigned(APedido.Proveedor) + and (APedido.ID_PROVEEDOR <> APedido.Proveedor.ID) then + APedido.ID_PROVEEDOR := APedido.Proveedor.ID; + + if (APedido.ID_ALMACEN = 0) then + APedido.DataTable.FieldByName(fld_PedidosProveedorID_ALMACEN).AsVariant := NULL; + + if (APedido.ID_OBRA = 0) then + begin + APedido.DataTable.DisableEventHandlers; //Arreglo temporal + APedido.DataTable.FieldByName(fld_PedidosProveedorID_OBRA).AsVariant := NULL; + APedido.DataTable.EnableEventHandlers; + end; + + Result := True; + finally + APedido.Post; + end; +end; + +function TPedidosProveedorController.ValidarSituacion(ASituacion: String; + AFechaPedido: TDateTime; var AFechaRecepcion: TDateTime): Boolean; +begin + if ASituacion = SITUACION_PEDIDO_PENDIENTE then + AFechaRecepcion := 0 + else + if (ASituacion = SITUACION_PEDIDO_PARCIAL) + or (ASituacion = SITUACION_PEDIDO_RECIBIDO) then + begin + if (EsFechaVacia(AFechaRecepcion)) then + raise Exception.Create('Hay que indicar una fecha de recepcin') + else if (AFechaRecepcion < AFechaPedido) then + raise Exception.Create('La fecha de recepcin debe ser posterior a la fecha del pedido'); + end; + Result := True; +end; +procedure TPedidosProveedorController.Ver(APedido: IBizPedidoProveedor); +var + AEditor : IEditorPedidoProveedor; +begin + AEditor := NIL; + + RecuperarObjetos(APedido); + CreateEditor('EditorPedidoProveedor', IEditorPedidoProveedor, AEditor); + + if Assigned(AEditor) then + try + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.Pedido := APedido; + + //MODO CONSULTAR + if not EsModificable(APedido) then + begin + SetDataTableReadOnly(APedido.DataTable, True); + AEditor.ReadOnly := True; + end; + + AEditor.ShowModal; + + //MODO CONSULTAR (Se deja la tabla como estaba) + if AEditor.ReadOnly then + SetDataTableReadOnly(APedido.DataTable, False); + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +procedure TPedidosProveedorController.VerTodos(APedidos: IBizPedidoProveedor; + const AVerModal : Boolean = False; const AWindowCaption: String = ''; + const AHeaderText: String = ''); +var + AEditor : IEditorPedidosProveedor; +begin + AEditor := NIL; + + CreateEditor('EditorPedidosProveedor', IEditorPedidosProveedor, AEditor); + if Assigned(AEditor) then + try + if not EsCadenaVacia(AWindowCaption) then + AEditor.WindowCaption := AWindowCaption; + + if not EsCadenaVacia(AHeaderText) then + AEditor.HeaderText := AHeaderText; + + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.Pedidos := APedidos; + AEditor.MultiSelect := True; + if AVerModal then + AEditor.ShowModal + else + AEditor.ShowEmbedded; + finally + if AVerModal then + AEditor.Release; + AEditor := NIL; + end; +end; + +procedure TPedidosProveedorController.VerDireccionEntrega( + APedido: IBizPedidoProveedor); +var + AEditor : IEditorDireccionEntregaPedidoProveedor; +begin + AEditor := NIL; + + //RecuperarObjetos(APedido); <- No descomentar. No hace falta + CreateEditor('EditorDireccionEntregaPedidoProveedor', IEditorDireccionEntregaPedidoProveedor, AEditor); + if Assigned(AEditor) then + try + AEditor.Pedido := APedido; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +function TPedidosProveedorController._Vacio: IBizPedidoProveedor; +begin + Result := Buscar(ID_NULO); +end; + +function TPedidosProveedorController.Eliminar(const ID: Integer): Boolean; +var + APedido : IBizPedidoProveedor; +begin + APedido := Buscar(ID); + + if not Assigned(APedido) then + raise Exception.Create(Format('No se ha encontrado el pedido con ID = %d', [ID])); + + Result := Eliminar(APedido); + APedido := NIL; +end; + +function TPedidosProveedorController.ElegirPedidos(APedido: IBizPedidoProveedor; AMensaje: String; AMultiSelect: Boolean): IBizPedidoProveedor; +var + AEditor : IEditorElegirPedidosProveedor; +begin + Result := NIL; + + CreateEditor('EditorElegirPedidosProveedor', IEditorElegirPedidosProveedor, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; + AEditor.Pedidos := APedido; + AEditor.MultiSelect := AMultiSelect; + AEditor.Mensaje := AMensaje; + if IsPositiveResult(AEditor.ShowModal) then + Result := AEditor.PedidosProveedorSeleccionados; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +function TPedidosProveedorController.Eliminar(APedido: IBizPedidoProveedor; AllItems: Boolean = false): Boolean; +//En el caso de eliminar almenos un elemento del conjunto se devuelve true +var + bEliminado: Boolean; + +begin + bEliminado := False; + + if not Assigned(APedido) then + raise Exception.Create ('APedido no asignado'); + + ShowHourglassCursor; + try + if not APedido.DataTable.Active then + APedido.DataTable.Active := True; + + if (APedido.State in dsEditModes) then + APedido.Cancel; + + //Siempre eliminaremos el seleccionado + if EsEliminable(APedido) then + begin + APedido.Delete; + bEliminado := True; + end; + + //En el caso de querer eliminar todos los items del objeto AAlbaran + if AllItems then + begin + with APedido.DataTable do + begin + First; + while not EOF do + begin + if EsEliminable(APedido) then + begin + APedido.Delete; + bEliminado := True + end + else Next; + end; + end; + end; + + if bEliminado then + begin + APedido.DataTable.ApplyUpdates; + Result := True; + end + else + Result := False; + + finally + HideHourglassCursor; + end; +end; + +procedure TPedidosProveedorController.EnviarPedidoPorEMail( + APedido: IBizPedidoProveedor); +var + AReportController : IPedidosProveedorReportController; + AFicheroTMP : TFileName; + AEMail : String; + AListaEmail : TStringList; +begin + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado (EnviarPedidoPorEMail)'); + + if APedido.DataTable.Active then + APedido.DataTable.Active := True; + + AFicheroTMP := DarFicheroPDFTemporal(EscapeIllegalChars(APedido.REFERENCIA)); + + AListaEmail := TStringList.Create; + try + RecuperarProveedor(APedido); + APedido.Proveedor.DataTable.Active := True; + + if not APedido.Proveedor.EMAIL_1IsNull then + AListaEmail.Add(APedido.Proveedor.EMAIL_1); + if not APedido.Proveedor.EMAIL_2IsNull then + AListaEmail.Add(APedido.Proveedor.EMAIL_2); + + if not ElegirEMail(AListaEmail, AEMail) then + Exit; + finally + FreeANDNIL(AListaEmail); + end; + + ShowHourglassCursor; + AReportController := TPedidosProveedorReportController.Create; + try + AReportController.ExportToPDF(APedido.ID, AFicheroTMP); + EnviarEMailMAPI('Pedido ' + APedido.REFERENCIA, '', AFicheroTMP, '', '', APedido.Proveedor.NOMBRE, AEMail); + finally + DeleteFile(AFicheroTMP); + AReportController := NIL; + HideHourglassCursor; + end; +end; + +function TPedidosProveedorController.EsEliminable(APedido: IBizPedidoProveedor): Boolean; +begin + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado: EsEliminable'); + + Result := (APedido.SITUACION = SITUACION_PEDIDO_PENDIENTE); +end; + +function TPedidosProveedorController.EsModificable(APedido: IBizPedidoProveedor): Boolean; +begin + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado: EsModificable'); + + Result := (APedido.SITUACION <> SITUACION_PEDIDO_RECIBIDO); +end; + +procedure TPedidosProveedorController.RecalcularImportes( + APedido: IBizPedidoProveedor); +var + bEnEdicion : Boolean; + ADetallePosAct : Integer; +begin + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado (RecalcularImportes)'); + + if APedido.DataTable.Active then + APedido.DataTable.Active := True; + + { Hay que guardar la posicin en la que estamos en los detalles por que + la asignacin de valores a los campos IMPORTE_NETO e IMPORTE_PORTE + (ver ms adelante) colocan el puntero en la tabla detalle al principio. + No he encontrado la razn por la que mueve el puntero. } + + ADetallePosAct := APedido.Detalles.POSICION; + + bEnEdicion := (APedido.DataTable.State in dsEditModes); + if not bEnEdicion then + APedido.Edit; + + ShowHourglassCursor; + try + APedido.IMPORTE_NETO := FDetallesController.DarTotalImporteTotal(APedido.Detalles); + APedido.IMPORTE_PORTE := FDetallesController.DarTotalPorteTotal(APedido.Detalles); + if not bEnEdicion then + APedido.Post; + finally + HideHourglassCursor; + // Restaurar la posicin que tenamos en los detalles. + FDetallesController.LocalizarPosicion(APedido.Detalles, ADetallePosAct); + end; +end; + +procedure TPedidosProveedorController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +var + APedido : IBizPedidoProveedor; + ADetalles : IBizDetallesPedidoProveedor; +begin + inherited; + + if Supports(ADataTable, IBizDetallesPedidoProveedor, ADetalles) and + Supports(ADetalles.DataTable.MasterSource.DataTable, IBizPedidoProveedor, APedido) then + begin + RecalcularImportes(APedido); + end; +end; + +procedure TPedidosProveedorController.RecuperarObjetos(APedido: IBizPedidoProveedor); +begin + RecuperarProveedor(APedido); +end; + +procedure TPedidosProveedorController.RecuperarProveedor(APedido: IBizPedidoProveedor); +begin + APedido._Proveedor := (FProveedorController.Buscar(APedido.ID_PROVEEDOR) as IBizProveedor); +end; + +function TPedidosProveedorController.Existe(const ID: Integer): Boolean; +var + APedido : IBizPedidoProveedor; +begin + try + APedido := Buscar(ID); + Result := Assigned(APedido) and (APedido.ID = ID); + finally + APedido := NIL; + end; +end; + +function TPedidosProveedorController.ExtraerSeleccionados(APedido: IBizPedidoProveedor): IBizPedidoProveedor; +var + ASeleccionados : IBizPedidoProveedor; +begin + ASeleccionados := (Self.Buscar(ID_NULO) as IBizPedidoProveedor); + CopyDataTableDA5(APedido.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + +procedure TPedidosProveedorController.FiltrarAno(APedido: IBizPedidoProveedor; ADynWhereDataTable: WideString; const Ano: String); +var + Condicion: TDAWhereExpression; + FechaIni: String; + FechaFin: String; + +begin + APedido.DataTable.DynamicWhere.Clear; + APedido.DataTable.DynamicWhere.Xml := ADynWhereDataTable; + + if (Ano <> 'Todos') then + begin + // Filtrar las facturas actuales por empresa + FechaIni := '01/01/' + Ano; + FechaFin := '31/12/' + Ano; + with APedido.DataTable.DynamicWhere do + begin + // (FECHA_INICIO between FECHA_FIN) + Condicion := NewBinaryExpression(NewField('', fld_PedidosProveedorFECHA_PEDIDO), NewConstant(FechaIni, datString), dboGreaterOrEqual); + Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_PedidosProveedorFECHA_PEDIDO), NewConstant(FechaFin, datString), dboLessOrEqual), Condicion, dboAnd); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Condicion, Expression, dboAnd); + end; + end; +end; + +procedure TPedidosProveedorController.FiltrarEmpresa(APedido: IBizPedidoProveedor); +var + Condicion: TDAWhereExpression; +begin + if APedido.DataTable.Active then + APedido.DataTable.Active := False; + + // Filtrar los pedidos actuales por empresa + with APedido.DataTable.DynamicWhere do + begin + // (ID_EMPRESA >= ID) + Condicion := NewBinaryExpression(NewField('', fld_PedidosProveedorID_EMPRESA), NewConstant(AppFactuGES.EmpresaActiva.ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; +end; + +procedure TPedidosProveedorController.SetProveedorController(const Value: IProveedoresController); +begin + FProveedorController := Value; +end; + +procedure TPedidosProveedorController.SetDetallesController(const Value: IDetallesPedidoProveedorController); +begin + FDetallesController := Value; +end; + +function TPedidosProveedorController.Guardar(APedido: IBizPedidoProveedor): Boolean; +begin + Result := False; + + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignada'); + + if not Assigned(FDetallesController) then + raise Exception.Create ('Controller detalles no asignado'); + + if ValidarPedido(APedido) then + begin + ShowHourglassCursor; + + // Asegurarnos de que todos los importes estn bien. + RecalcularImportes(APedido); + + try + APedido.DataTable.ApplyUpdates; + + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TPedidosProveedorController.Nuevo: IBizPedidoProveedor; +var + APedido : IBizPedidoProveedor; +begin + APedido := FDataModule.NewItem; + FiltrarEmpresa(APedido); + APedido.DataTable.Active := True; + APedido.Insert; + Result := APedido; +end; + +procedure TPedidosProveedorController.Preview(APedido: IBizPedidoProveedor; AllItems: Boolean = false; + const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True); +var + AReportController : IPedidosProveedorReportController; + ID_Pedidos: TIntegerList; + +begin + AReportController := TPedidosProveedorReportController.Create; + ID_Pedidos := TIntegerList.Create; + + try + //Si deseamos previsualizar todos los items del objeto albaran + if AllItems then + begin + with APedido.DataTable do + begin + First; + while not EOF do + begin + ID_Pedidos.Add(APedido.ID); + Next; + end; + end; + end + //Solo previsualizamos el item seleccionado + else + ID_Pedidos.Add(APedido.ID); + + AReportController.Preview(ID_Pedidos, VerPrecios, VerRefProveedor); + finally + AReportController := NIL; + FreeANDNIL(ID_Pedidos) + end; +end; + +procedure TPedidosProveedorController.Print(APedido: IBizPedidoProveedor; AllItems: Boolean = false; + const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True); +var + AReportController : IPedidosProveedorReportController; + ID_Pedidos: TIntegerList; +begin + AReportController := TPedidosProveedorReportController.Create; + ID_Pedidos := TIntegerList.Create; + + try + //Si deseamos previsualizar todos los items del objeto albaran + if AllItems then + begin + with APedido.DataTable do + begin + First; + while not EOF do + begin + ID_Pedidos.Add(APedido.ID); + Next; + end; + end; + end + //Solo previsualizamos el item seleccionado + else + ID_Pedidos.Add(APedido.ID); + + AReportController.Print(ID_Pedidos, VerPrecios, VerRefProveedor); + finally + AReportController := NIL; + FreeANDNIL(ID_Pedidos) + end; +end; + +function TPedidosProveedorController.GetProveedorController: IProveedoresController; +begin + Result := FProveedorController; +end; + +function TPedidosProveedorController.GetDetallesController: IDetallesPedidoProveedorController; +begin + Result := FDetallesController; +end; + +end. + \ No newline at end of file diff --git a/Source/Modulos/Pedidos a proveedor/Controller/uPedidosProveedorReportController.dcu b/Source/Modulos/Pedidos a proveedor/Controller/uPedidosProveedorReportController.dcu new file mode 100644 index 0000000..be870c2 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Controller/uPedidosProveedorReportController.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Controller/uPedidosProveedorReportController.pas b/Source/Modulos/Pedidos a proveedor/Controller/uPedidosProveedorReportController.pas new file mode 100644 index 0000000..9719b5a --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Controller/uPedidosProveedorReportController.pas @@ -0,0 +1,191 @@ +unit uPedidosProveedorReportController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uIDataModulePedidosProveedorReport, + uClientesController, uPedidosProveedorController, uDetallesPedidoProveedorController, + uBizPedidosProveedor, uIntegerListUtils; + +type + IPedidosProveedorReportController = interface(IControllerBase) + ['{D0686358-251C-43C4-9927-6112F2F4D3B8}'] + procedure Preview(const AListaID : TIntegerList; + const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True); + procedure Print(const AListaID : TIntegerList; + const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True); + function ExportToWord(const AID: Integer; const AFileName : String = ''; + const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True): Boolean; + function ExportToPDF(const AID: Integer; const AFileName : String = ''; + const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True): Boolean; + end; + + TPedidosProveedorReportController = class(TControllerBase, IPedidosProveedorReportController) + private + FDataModule : IDataModulePedidosProveedorReport; + function CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; + public + constructor Create; override; + destructor Destroy; override; + + procedure Preview(const AListaID : TIntegerList; + const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True); + procedure Print(const AListaID : TIntegerList; + const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True); + function ExportToWord(const AID: Integer; const AFileName : String = ''; + const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True): Boolean; + function ExportToPDF(const AID: Integer; const AFileName : String = ''; + const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True): Boolean; + end; + + +implementation + +uses + uROTypes, uEditorRegistryUtils, uIEditorPedidosProveedorPreview, + uEditorPreview, uDataModulePedidosProveedor, uEditorBase, cxControls, + uFactuGES_App, uStringsUtils, uSistemaFunc; + +{ TPedidosProveedorReportController } + +constructor TPedidosProveedorReportController.Create; +begin + inherited; + FDataModule := TDataModulePedidosProveedor.Create(Nil); +end; + +function TPedidosProveedorReportController.CreateEditor(const AName: String; + const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + + +destructor TPedidosProveedorReportController.Destroy; +begin + FDataModule := NIL; + inherited; +end; + +function TPedidosProveedorReportController.ExportToPDF(const AID: Integer; + const AFileName: String; const VerPrecios: Boolean; + const VerRefProveedor: Boolean): Boolean; +var + AStream: Binary; +begin + Result := False; + if EsCadenaVacia(AFileName) then + Exit; + + ShowHourglassCursor; + try + AStream := FDataModule.GetRptPDFPedido(AID, VerPrecios, VerRefProveedor); + try + AStream.SaveToFile(AFileName); + Result := True; + finally + FreeAndNil(AStream); + end; + finally + HideHourglassCursor; + end; +end; + +function TPedidosProveedorReportController.ExportToWord(const AID: Integer; + const AFileName: String; const VerPrecios: Boolean; + const VerRefProveedor: Boolean): Boolean; +var + AStream: Binary; + AFile : String; +begin + Result := False; + AFile := AFileName; + + if EsCadenaVacia(AFile) and (not PreguntarFicheroWordExportar(AFile)) then + Exit; + + ShowHourglassCursor; + try + AStream := FDataModule.GetRptWordPedido(AID, VerPrecios, VerRefProveedor); + try + AStream.SaveToFile(AFile); + Result := True; + finally + FreeAndNil(AStream); + end; + finally + HideHourglassCursor; + end; +end; + +procedure TPedidosProveedorReportController.Preview(const AListaID : TIntegerList; + const VerPrecios: Boolean; const VerRefProveedor: Boolean); +var + AStream: Binary; + AEditor : IEditorPedidosProveedorPreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(AListaID, VerPrecios, VerRefProveedor); + try + CreateEditor('EditorPedidosProveedorPreview', IEditorPedidosProveedorPreview, AEditor); + if Assigned(AEditor) then + begin + try + AEditor.Controller := Self; + AEditor.ListaID := AListaID; + AEditor.VerPrecios := VerPrecios; + AEditor.VerRefProveedor := VerRefProveedor; + AEditor.Title := 'Pedido a proveedor - ' + AppFactuGES.EmpresaActiva.NOMBRE; + AEditor.LoadFromStream(AStream); + AEditor.Preview; + finally + AEditor.Release; + AEditor := Nil; + end; + end; + finally + FreeANDNil(AStream) + end; + finally + HideHourglassCursor; + end; +end; + +procedure TPedidosProveedorReportController.Print(const AListaID : TIntegerList; + const VerPrecios: Boolean; const VerRefProveedor: Boolean); +var + AStream: Binary; + AEditor : IEditorPedidosProveedorPreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(AListaID, VerPrecios, VerRefProveedor); + try + CreateEditor('EditorPedidosProveedorPreview', IEditorPedidosProveedorPreview, AEditor); + if Assigned(AEditor) then + begin + try + AEditor.Controller := Self; + AEditor.ListaID := AListaID; + AEditor.Title := 'Pedido a proveedor - ' + AppFactuGES.EmpresaActiva.NOMBRE; + AEditor.LoadFromStream(AStream); + AEditor.Print; + finally + AEditor.Release; + end; + end; + finally + FreeAndNil(AStream); + AEditor := Nil; + end; + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Data/PedidosProveedor_data.bdsproj b/Source/Modulos/Pedidos a proveedor/Data/PedidosProveedor_data.bdsproj new file mode 100644 index 0000000..4c610fd --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Data/PedidosProveedor_data.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + PedidosProveedor_data.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Pedidos a proveedor/Data/PedidosProveedor_data.dcu b/Source/Modulos/Pedidos a proveedor/Data/PedidosProveedor_data.dcu new file mode 100644 index 0000000..13d5e47 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Data/PedidosProveedor_data.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Data/PedidosProveedor_data.dpk b/Source/Modulos/Pedidos a proveedor/Data/PedidosProveedor_data.dpk new file mode 100644 index 0000000..9a3a4c2 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Data/PedidosProveedor_data.dpk differ diff --git a/Source/Modulos/Pedidos a proveedor/Data/PedidosProveedor_data.dproj b/Source/Modulos/Pedidos a proveedor/Data/PedidosProveedor_data.dproj new file mode 100644 index 0000000..fe9f654 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Data/PedidosProveedor_data.dproj @@ -0,0 +1,541 @@ + + + + {38eef566-1895-4bdd-8007-f92f5e32cce6} + PedidosProveedor_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\PedidosProveedor_data.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0PedidosProveedor_data.dpk + + + + + MainSource + + + + +
DataModulePedidosProveedor
+
+
+
+ diff --git a/Source/Modulos/Pedidos a proveedor/Data/PedidosProveedor_data.drc b/Source/Modulos/Pedidos a proveedor/Data/PedidosProveedor_data.drc new file mode 100644 index 0000000..688f074 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Data/PedidosProveedor_data.drc @@ -0,0 +1,17 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Pedidos a proveedor\Data\uDataModulePedidosProveedor.dfm */ +/* C:\Codigo\Source\Modulos\Pedidos a proveedor\Data\PedidosProveedor_data.res */ +/* c:\temp\dtf1AB.tmp */ diff --git a/Source/Modulos/Pedidos a proveedor/Data/PedidosProveedor_data.rc b/Source/Modulos/Pedidos a proveedor/Data/PedidosProveedor_data.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Data/PedidosProveedor_data.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Pedidos a proveedor/Data/PedidosProveedor_data.res b/Source/Modulos/Pedidos a proveedor/Data/PedidosProveedor_data.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Data/PedidosProveedor_data.res differ diff --git a/Source/Modulos/Pedidos a proveedor/Data/uDataModulePedidosProveedor.dcu b/Source/Modulos/Pedidos a proveedor/Data/uDataModulePedidosProveedor.dcu new file mode 100644 index 0000000..d624e34 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Data/uDataModulePedidosProveedor.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Data/uDataModulePedidosProveedor.dfm b/Source/Modulos/Pedidos a proveedor/Data/uDataModulePedidosProveedor.dfm new file mode 100644 index 0000000..19ed028 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Data/uDataModulePedidosProveedor.dfm @@ -0,0 +1,535 @@ +inherited DataModulePedidosProveedor: TDataModulePedidosProveedor + OnCreate = DAClientDataModuleCreate + Height = 301 + Width = 621 + object RORemoteService: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvPedidosProveedor' + Left = 40 + Top = 32 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 40 + Top = 84 + end + object rda_PedidosProveedor: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetDataCall.RemoteService = RORemoteService + UpdateDataCall.RemoteService = RORemoteService + GetScriptsCall.RemoteService = RORemoteService + RemoteService = RORemoteService + DataStreamer = Bin2DataStreamer + Left = 43 + Top = 151 + end + object tbl_PedidosProveedor: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_PEDIDOS_PROV_ID' + Required = True + ServerAutoRefresh = True + DictionaryEntry = 'PedidosProveedor_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'PedidosProveedor_ID_EMPRESA' + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + DisplayLabel = 'PedidosProveedor_ID_PROVEEDOR' + DictionaryEntry = 'PedidosProveedor_ID_PROVEEDOR' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Nombre del proveedor' + ServerAutoRefresh = True + DictionaryEntry = 'PedidosProveedor_NOMBRE' + end + item + Name = 'ID_DIRECCION' + DataType = datInteger + DictionaryEntry = 'PedidosProveedor_ID_DIRECCION' + end + item + Name = 'PERSONA_CONTACTO_PROV' + DataType = datString + Size = 255 + DisplayLabel = 'Contacto del proveedor' + DictionaryEntry = 'PedidosProveedor_PERSONA_CONTACTO_PROV' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'PedidosProveedor_REFERENCIA' + end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + DisplayLabel = 'Situaci'#243'n' + DictionaryEntry = 'PedidosProveedor_SITUACION' + end + item + Name = 'FECHA_ENVIO' + DataType = datDateTime + DisplayLabel = #191'Enviado?' + DictionaryEntry = 'PedidosProveedor_FECHA_ENVIO' + end + item + Name = 'FECHA_PEDIDO' + DataType = datDateTime + DisplayLabel = 'Fecha pedido' + DictionaryEntry = 'PedidosProveedor_FECHA_PEDIDO' + end + item + Name = 'FECHA_CONFIRMACION' + DataType = datDateTime + DisplayLabel = #191'Confirmado?' + DictionaryEntry = 'PedidosProveedor_FECHA_CONFIRMACION' + end + item + Name = 'FECHA_ENTREGA' + DataType = datDateTime + DisplayLabel = 'Entrega prevista' + DictionaryEntry = 'PedidosProveedor_FECHA_ENTREGA' + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + DisplayLabel = 'PedidosProveedor_ID_ALMACEN' + DictionaryEntry = 'PedidosProveedor_ID_ALMACEN' + end + item + Name = 'TIPO_ALMACEN' + DataType = datString + Size = 10 + DisplayLabel = 'PedidosProveedor_TIPO_ALMACEN' + ServerAutoRefresh = True + DictionaryEntry = 'PedidosProveedor_TIPO_ALMACEN' + end + item + Name = 'NOMBRE_ALMACEN' + DataType = datString + Size = 255 + DisplayLabel = 'Almac'#233'n' + ServerAutoRefresh = True + DictionaryEntry = 'PedidosProveedor_NOMBRE_ALMACEN' + end + item + Name = 'ID_OBRA' + DataType = datInteger + DisplayLabel = 'PedidosProveedor_ID_OBRA' + DictionaryEntry = 'PedidosProveedor_ID_OBRA' + end + item + Name = 'NOMBRE_OBRA' + DataType = datString + Size = 255 + DisplayLabel = 'Obra' + ServerAutoRefresh = True + DictionaryEntry = 'PedidosProveedor_NOMBRE_OBRA' + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + DisplayLabel = 'Observaciones' + DictionaryEntry = 'PedidosProveedor_OBSERVACIONES' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + DictionaryEntry = 'PedidosProveedor_IMPORTE_TOTAL' + end + item + Name = 'INCIDENCIAS' + DataType = datMemo + DictionaryEntry = 'PedidosProveedor_INCIDENCIAS' + end + item + Name = 'INCIDENCIAS_ACTIVAS' + DataType = datInteger + DictionaryEntry = 'PedidosProveedor_INCIDENCIAS_ACTIVAS' + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DisplayLabel = 'Calle' + DictionaryEntry = 'PedidosProveedor_CALLE' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DisplayLabel = 'Poblaci'#243'n' + DictionaryEntry = 'PedidosProveedor_POBLACION' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Provincia' + DictionaryEntry = 'PedidosProveedor_PROVINCIA' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#243'd. postal' + DictionaryEntry = 'PedidosProveedor_CODIGO_POSTAL' + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + DisplayLabel = 'Persona de contacto' + DictionaryEntry = 'PedidosProveedor_PERSONA_CONTACTO' + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + DisplayLabel = 'Tel'#233'fono' + DictionaryEntry = 'PedidosProveedor_TELEFONO' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'PedidosProveedor_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'PedidosProveedor_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'PedidosProveedor_USUARIO' + end + item + Name = 'ID_PEDIDO_CLIENTE' + DataType = datInteger + DisplayLabel = 'PedidosProveedor_ID_PEDIDO_CLIENTE' + DictionaryEntry = 'PedidosProveedor_ID_PEDIDO_CLIENTE' + end + item + Name = 'REF_PED_CLIENTE' + DataType = datString + Size = 255 + DisplayLabel = 'PedidosProveedor_REF_PED_CLIENTE' + ServerAutoRefresh = True + DictionaryEntry = 'PedidosProveedor_REF_PED_CLIENTE' + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + DisplayLabel = 'Importe neto' + Alignment = taRightJustify + DictionaryEntry = 'PedidosProveedor_IMPORTE_NETO' + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + DisplayLabel = 'Importe del porte' + Alignment = taRightJustify + DictionaryEntry = 'PedidosProveedor_IMPORTE_PORTE' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + DictionaryEntry = 'PedidosProveedor_DESCUENTO' + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + DictionaryEntry = 'PedidosProveedor_IMPORTE_DESCUENTO' + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + DictionaryEntry = 'PedidosProveedor_BASE_IMPONIBLE' + end + item + Name = 'IVA' + DataType = datFloat + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + ServerAutoRefresh = True + DictionaryEntry = 'PedidosProveedor_IVA' + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + DictionaryEntry = 'PedidosProveedor_IMPORTE_IVA' + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + DictionaryEntry = 'PedidosProveedor_ID_FORMA_PAGO' + end + item + Name = 'ID_FACTURA' + DataType = datInteger + DisplayLabel = 'PedidosProveedor_ID_FACTURA' + DictionaryEntry = 'PedidosProveedor_ID_FACTURA' + end + item + Name = 'REF_FACTURA_PROV' + DataType = datString + Size = 255 + DisplayLabel = 'PedidosProveedor_REF_FACTURA_PROV' + DictionaryEntry = 'PedidosProveedor_REF_FACTURA_PROV' + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_PedidosProveedor + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'PedidosProveedor' + IndexDefs = <> + Left = 160 + Top = 88 + end + object ds_PedidosProveedor: TDADataSource + DataSet = tbl_PedidosProveedor.Dataset + DataTable = tbl_PedidosProveedor + Left = 160 + Top = 32 + end + object tbl_PedidosProveedor_Articulos_Pendientes: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID_PEDIDO' + DataType = datInteger + Required = True + DictionaryEntry = 'PedidosProveedor_Detalles_ID_PEDIDO' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + DictionaryEntry = 'PedidosProveedor_Detalles_REFERENCIA' + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + DictionaryEntry = 'PedidosProveedor_Detalles_ID_ARTICULO' + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + DictionaryEntry = 'PedidosProveedor_Detalles_CONCEPTO' + end + item + Name = 'CANTIDAD' + DataType = datFloat + Alignment = taRightJustify + DictionaryEntry = 'CANTIDAD' + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. proveedor' + DictionaryEntry = 'PedidosProveedor_Detalles_REFERENCIA_PROVEEDOR' + end> + Params = < + item + Name = 'ID' + Value = '41' + ParamType = daptInput + end> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_PedidosProveedor + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'PedidosProveedor_Articulos_Pendientes' + IndexDefs = <> + Left = 480 + Top = 88 + end + object ds_PedidosProveedor_Articulos_Pendientes: TDADataSource + DataSet = tbl_PedidosProveedor_Articulos_Pendientes.Dataset + DataTable = tbl_PedidosProveedor_Articulos_Pendientes + Left = 472 + Top = 32 + end + object tbl_PedidosProveedor_Detalles: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_PEDIDOS_PROV_DETALLES_ID' + Required = True + ServerAutoRefresh = True + DictionaryEntry = 'PedidosProveedor_Detalles_ID' + InPrimaryKey = True + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + Required = True + DictionaryEntry = 'PedidosProveedor_Detalles_ID_PEDIDO' + end + item + Name = 'POSICION' + DataType = datInteger + DictionaryEntry = 'POSICIONCONCEPTO' + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + DictionaryEntry = 'PedidosProveedor_Detalles_TIPO_DETALLE' + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + DictionaryEntry = 'PedidosProveedor_Detalles_CONCEPTO' + end + item + Name = 'CANTIDAD' + DataType = datFloat + Alignment = taRightJustify + DictionaryEntry = 'CANTIDAD' + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + DisplayLabel = 'Unidad de medida' + DictionaryEntry = 'PedidosProveedor_Detalles_UNIDAD_MEDIDA' + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + DictionaryEntry = 'PedidosProveedor_Detalles_IMPORTE_UNIDAD' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + DictionaryEntry = 'PedidosProveedor_Detalles_IMPORTE_TOTAL' + end + item + Name = 'VISIBLE' + DataType = datInteger + DictionaryEntry = 'PedidosProveedor_Detalles_VISIBLE' + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + DictionaryEntry = 'PedidosProveedor_Detalles_ID_ARTICULO' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + DictionaryEntry = 'PedidosProveedor_Detalles_DESCUENTO' + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + DisplayLabel = 'Importe porte' + Alignment = taRightJustify + DictionaryEntry = 'PedidosProveedor_Detalles_IMPORTE_PORTE' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + DictionaryEntry = 'PedidosProveedor_Detalles_REFERENCIA' + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. proveedor' + DictionaryEntry = 'PedidosProveedor_Detalles_REFERENCIA_PROVEEDOR' + end + item + Name = 'REFERENCIA_FABRICANTE' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. fabricante' + DictionaryEntry = 'PedidosProveedor_Detalles_REFERENCIA_FABRICANTE' + end> + Params = <> + MasterMappingMode = mmWhere + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_PedidosProveedor + MasterSource = ds_PedidosProveedor + MasterFields = 'ID' + DetailFields = 'ID_PEDIDO' + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'PedidosProveedor_Detalles' + IndexDefs = <> + Left = 296 + Top = 88 + end + object ds_PedidosProveedor_Detalles: TDADataSource + DataSet = tbl_PedidosProveedor_Detalles.Dataset + DataTable = tbl_PedidosProveedor_Detalles + Left = 296 + Top = 32 + end + object tbl_ListaAnosPedidos: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ANO' + DataType = datString + Size = 254 + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_PedidosProveedor + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'ListaAnosPedidos' + IndexDefs = <> + Left = 168 + Top = 192 + end + object ds_ListaAnosPedidos: TDADataSource + DataSet = tbl_ListaAnosPedidos.Dataset + DataTable = tbl_ListaAnosPedidos + Left = 168 + Top = 144 + end +end diff --git a/Source/Modulos/Pedidos a proveedor/Data/uDataModulePedidosProveedor.pas b/Source/Modulos/Pedidos a proveedor/Data/uDataModulePedidosProveedor.pas new file mode 100644 index 0000000..4aae065 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Data/uDataModulePedidosProveedor.pas @@ -0,0 +1,225 @@ +unit uDataModulePedidosProveedor; + +interface + +uses + DB, Classes, SysUtils, uDADesigntimeCall, + uRORemoteService, uROClient, uROBinMessage, uDAScriptingProvider, + uDACDSDataTable, uROWinInetHttpChannel, uDADataTable, uDABINAdapter, + + uROTypes, uDataModuleBase, + uIDataModulePedidosProveedor, uIDataModulePedidosProveedorReport, + uBizPedidosProveedor, uBizDetallesPedidoProveedor, uDARemoteDataAdapter, + uDADataStreamer, uDABin2DataStreamer, uDAInterfaces, uDAMemDataTable, + uIntegerListUtils; + +type + TDataModulePedidosProveedor = class(TDataModuleBase, IDataModulePedidosProveedor, + IDataModulePedidosProveedorReport) + RORemoteService: TRORemoteService; + Bin2DataStreamer: TDABin2DataStreamer; + rda_PedidosProveedor: TDARemoteDataAdapter; + tbl_PedidosProveedor: TDAMemDataTable; + ds_PedidosProveedor: TDADataSource; + tbl_PedidosProveedor_Articulos_Pendientes: TDAMemDataTable; + ds_PedidosProveedor_Articulos_Pendientes: TDADataSource; + tbl_PedidosProveedor_Detalles: TDAMemDataTable; + ds_PedidosProveedor_Detalles: TDADataSource; + tbl_ListaAnosPedidos: TDAMemDataTable; + ds_ListaAnosPedidos: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + + private + function _GetDetalles : IBizDetallesPedidoProveedor; + + protected + procedure AsignarClaseNegocio(var APedido: TDAMemDataTable); virtual; + + public + function GetItems : IBizPedidoProveedor; virtual; + function GetItem(const ID : Integer) : IBizPedidoProveedor; + function NewItem : IBizPedidoProveedor; + function GetArticulosPendientes(const IDPedido: Integer): IBizDetallesPedidoProveedorPend; + + // Report + function GetReport(const ListaID: TIntegerList; + const ImprimirPrecio: Boolean = True; + const ImprimirRefProveedor: Boolean = True): Binary; + function GetRptWordPedido(const AID: Integer; + const ImprimirPrecio: Boolean = True; + const ImprimirRefProveedor: Boolean = True): Binary; + function GetRptPDFPedido(const AID: Integer; + const ImprimirPrecio: Boolean = True; + const ImprimirRefProveedor: Boolean = True): Binary; + + function GetAnosItems : TStringList; + end; + +implementation + +{$R *.DFM} + +uses + cxControls, FactuGES_Intf, uDataModuleConexion, + uDataTableUtils, schPedidosProveedorClient_Intf, uBizContactos; + +{ TdmPedidosProveedor } + +procedure TDataModulePedidosProveedor.AsignarClaseNegocio(var APedido: TDAMemDataTable); +begin + APedido.BusinessRulesID := BIZ_CLIENT_PEDIDO_PROVEEDOR; +end; + +procedure TDataModulePedidosProveedor.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModulePedidosProveedor.GetReport(const ListaID: TIntegerList; + const ImprimirPrecio: Boolean = True; + const ImprimirRefProveedor: Boolean = True): Binary; +var + AParam : TIntegerArray; +begin + AParam := ListaID.ToIntegerArray; + try + Result := (RORemoteService as IsrvPedidosProveedor).GenerarInforme(AParam, + ImprimirPrecio, ImprimirRefProveedor); + finally + FreeANDNil(AParam); + end; +end; + +function TDataModulePedidosProveedor.GetRptPDFPedido( + const AID: Integer; const ImprimirPrecio: Boolean = True; + const ImprimirRefProveedor: Boolean = True): Binary; +var + AParam : TIntegerArray; +begin + AParam := TIntegerArray.Create; + try + AParam.Add(AID); + Result := (RORemoteService as IsrvPedidosProveedor).GenerarInformeEnPDF(AParam, + ImprimirPrecio, ImprimirRefProveedor); + finally + FreeANDNil(AParam); + end; +end; + +function TDataModulePedidosProveedor.GetRptWordPedido( + const AID: Integer; const ImprimirPrecio: Boolean = True; + const ImprimirRefProveedor: Boolean = True): Binary; +begin + Result := (RORemoteService as IsrvPedidosProveedor).GenerarInformeEnWord(AID, + ImprimirPrecio, ImprimirRefProveedor); +end; + +function TDataModulePedidosProveedor.NewItem: IBizPedidoProveedor; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModulePedidosProveedor._GetDetalles: IBizDetallesPedidoProveedor; +var + ADetalles : TDAMemDataTable; +begin + ShowHourglassCursor; + try + ADetalles := CloneDataTable(tbl_PedidosProveedor_Detalles); + with ADetalles do + begin + BusinessRulesID := BIZ_CLIENT_DETALLES_PEDIDO_PROVEEDOR; + DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; + end; + Result := (ADetalles as IBizDetallesPedidoProveedor); + finally + HideHourglassCursor; + end; +end; + +function TDataModulePedidosProveedor.GetAnosItems: TStringList; +var + AListaAnos: TStringList; +begin + AListaAnos := TStringList.Create; + ShowHourglassCursor; + try + with tbl_ListaAnosPedidos do + begin + Open; + First; + while not eof do + begin + AListaAnos.Add(Format('%s=%s', [Fields[0].AsString, Fields[0].AsString])); + Next; + end; + Close; + end; + Result := AListaAnos; + finally + HideHourglassCursor; + end; +end; + +function TDataModulePedidosProveedor.GetArticulosPendientes(const IDPedido: Integer): IBizDetallesPedidoProveedorPend; +var + AArticulos : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AArticulos := CloneDataTable(tbl_PedidosProveedor_Articulos_Pendientes); + AArticulos.BusinessRulesID := BIZ_CLIENT_DETALLES_PEDIDO_PROVEEDOR_PEND; + AArticulos.ParamByName('ID').AsInteger := IDPedido; + Result := (AArticulos as IBizDetallesPedidoProveedorPend); + finally + HideHourglassCursor; + end; +end; + +function TDataModulePedidosProveedor.GetItem(const ID: Integer): IBizPedidoProveedor; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + + with Result.DataTable.DynamicWhere do + begin + // (ID = :ID) + Condicion := NewBinaryExpression(NewField('', fld_PedidosProveedorID), NewConstant(ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TDataModulePedidosProveedor.GetItems: IBizPedidoProveedor; +var + APedido : TDAMemDataTable; +begin + ShowHourglassCursor; + try + APedido := CloneDataTable(tbl_PedidosProveedor); + AsignarClaseNegocio(APedido); + + // EL CAMPO REFERENCIA TIENE QUE SER AUTOREFRESH!!!!! + APedido.FieldByName(fld_PedidosProveedorREFERENCIA).ServerAutoRefresh := TRUE; + + with TBizPedidoProveedor(APedido.BusinessEventsObj) do + Detalles := _GetDetalles; + + Result := (APedido as IBizPedidoProveedor); + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Model/Data/uIDataModulePedidosProveedor.dcu b/Source/Modulos/Pedidos a proveedor/Model/Data/uIDataModulePedidosProveedor.dcu new file mode 100644 index 0000000..af60a54 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Model/Data/uIDataModulePedidosProveedor.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Model/Data/uIDataModulePedidosProveedor.pas b/Source/Modulos/Pedidos a proveedor/Model/Data/uIDataModulePedidosProveedor.pas new file mode 100644 index 0000000..7939fa4 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Model/Data/uIDataModulePedidosProveedor.pas @@ -0,0 +1,20 @@ +unit uIDataModulePedidosProveedor; + +interface + +uses + Classes, uBizPedidosProveedor, uBizDetallesPedidoProveedor; + +type + IDataModulePedidosProveedor = interface + ['{280AA760-26CC-4962-AB08-6C473199DF86}'] + function GetAnosItems : TStringList; + function GetItems: IBizPedidoProveedor; + function GetItem(const ID : Integer) : IBizPedidoProveedor; + function NewItem : IBizPedidoProveedor; + function GetArticulosPendientes(const IDPedido: Integer): IBizDetallesPedidoProveedorPend; + end; + +implementation + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Model/Data/uIDataModulePedidosProveedorReport.dcu b/Source/Modulos/Pedidos a proveedor/Model/Data/uIDataModulePedidosProveedorReport.dcu new file mode 100644 index 0000000..e5e03da Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Model/Data/uIDataModulePedidosProveedorReport.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Model/Data/uIDataModulePedidosProveedorReport.pas b/Source/Modulos/Pedidos a proveedor/Model/Data/uIDataModulePedidosProveedorReport.pas new file mode 100644 index 0000000..58a223d --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Model/Data/uIDataModulePedidosProveedorReport.pas @@ -0,0 +1,24 @@ +unit uIDataModulePedidosProveedorReport; + +interface + +uses + uROTypes, uIntegerListUtils; + +type + IDataModulePedidosProveedorReport = interface + ['{F2FFF4EA-B43D-4AAB-8A76-35A322B61A80}'] + function GetReport(const ListaID: TIntegerList; + const ImprimirPrecio: Boolean = True; + const ImprimirRefProveedor: Boolean = True): Binary; + function GetRptWordPedido(const AID: Integer; + const ImprimirPrecio: Boolean = True; + const ImprimirRefProveedor: Boolean = True): Binary; + function GetRptPDFPedido(const AID: Integer; + const ImprimirPrecio: Boolean = True; + const ImprimirRefProveedor: Boolean = True): Binary; + end; + +implementation + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Model/PedidosProveedor_model.bdsproj b/Source/Modulos/Pedidos a proveedor/Model/PedidosProveedor_model.bdsproj new file mode 100644 index 0000000..9029ec0 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Model/PedidosProveedor_model.bdsproj @@ -0,0 +1,497 @@ + + + + + + + + + + + + PedidosProveedor_model.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + EurekaLog 5.1.9 + + + + True + diff --git a/Source/Modulos/Pedidos a proveedor/Model/PedidosProveedor_model.dcu b/Source/Modulos/Pedidos a proveedor/Model/PedidosProveedor_model.dcu new file mode 100644 index 0000000..d8c6ef4 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Model/PedidosProveedor_model.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Model/PedidosProveedor_model.dpk b/Source/Modulos/Pedidos a proveedor/Model/PedidosProveedor_model.dpk new file mode 100644 index 0000000..069e236 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Model/PedidosProveedor_model.dpk @@ -0,0 +1,39 @@ +package PedidosProveedor_model; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + Base, + Contactos_model; + +contains + uBizPedidosProveedor in 'uBizPedidosProveedor.pas', + uBizDetallesPedidoProveedor in 'uBizDetallesPedidoProveedor.pas', + uIDataModulePedidosProveedor in 'Data\uIDataModulePedidosProveedor.pas', + uIDataModulePedidosProveedorReport in 'Data\uIDataModulePedidosProveedorReport.pas', + schPedidosProveedorClient_Intf in 'schPedidosProveedorClient_Intf.pas', + schPedidosProveedorServer_Intf in 'schPedidosProveedorServer_Intf.pas'; + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Model/PedidosProveedor_model.dproj b/Source/Modulos/Pedidos a proveedor/Model/PedidosProveedor_model.dproj new file mode 100644 index 0000000..7086446 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Model/PedidosProveedor_model.dproj @@ -0,0 +1,548 @@ + + + + {a7225a8d-f40d-4878-9a27-c5de0e7cb638} + PedidosProveedor_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\PedidosProveedor_model.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + EurekaLog 5.1.9 + PedidosProveedor_model.dpk + + + + + MainSource + + + + + + + + + + + + + diff --git a/Source/Modulos/Pedidos a proveedor/Model/PedidosProveedor_model.drc b/Source/Modulos/Pedidos a proveedor/Model/PedidosProveedor_model.drc new file mode 100644 index 0000000..cf07365 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Model/PedidosProveedor_model.drc @@ -0,0 +1,16 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Pedidos a proveedor\Model\PedidosProveedor_model.res */ +/* c:\temp\dtf1A9.tmp */ diff --git a/Source/Modulos/Pedidos a proveedor/Model/PedidosProveedor_model.rc b/Source/Modulos/Pedidos a proveedor/Model/PedidosProveedor_model.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Model/PedidosProveedor_model.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Pedidos a proveedor/Model/PedidosProveedor_model.res b/Source/Modulos/Pedidos a proveedor/Model/PedidosProveedor_model.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Model/PedidosProveedor_model.res differ diff --git a/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorClient_Intf.dcu b/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorClient_Intf.dcu new file mode 100644 index 0000000..6fa3f62 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorClient_Intf.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorClient_Intf.pas b/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorClient_Intf.pas new file mode 100644 index 0000000..7670cc1 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorClient_Intf.pas @@ -0,0 +1,2477 @@ +unit schPedidosProveedorClient_Intf; + +interface + +uses + Classes, DB, schBase_Intf, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_ListaAnosPedidos = '{BB4ACD7F-346E-4B72-9B4C-4765E709D911}'; + RID_PedidosProveedor = '{FB6CB8F5-5944-469C-848F-C2B228E6115F}'; + RID_PedidosProveedor_Detalles = '{BB197BA1-5EB9-416C-A7DD-1B8C3097AE72}'; + RID_PedidosProveedor_Articulos_Pendientes = '{D8031329-D44D-436D-90CC-28FFBF9B3485}'; + + { Data table names } + nme_ListaAnosPedidos = 'ListaAnosPedidos'; + nme_PedidosProveedor = 'PedidosProveedor'; + nme_PedidosProveedor_Detalles = 'PedidosProveedor_Detalles'; + nme_PedidosProveedor_Articulos_Pendientes = 'PedidosProveedor_Articulos_Pendientes'; + + { ListaAnosPedidos fields } + fld_ListaAnosPedidosANO = 'ANO'; + + { ListaAnosPedidos field indexes } + idx_ListaAnosPedidosANO = 0; + + { PedidosProveedor fields } + fld_PedidosProveedorID = 'ID'; + fld_PedidosProveedorID_EMPRESA = 'ID_EMPRESA'; + fld_PedidosProveedorID_PROVEEDOR = 'ID_PROVEEDOR'; + fld_PedidosProveedorNOMBRE = 'NOMBRE'; + fld_PedidosProveedorID_DIRECCION = 'ID_DIRECCION'; + fld_PedidosProveedorPERSONA_CONTACTO_PROV = 'PERSONA_CONTACTO_PROV'; + fld_PedidosProveedorREFERENCIA = 'REFERENCIA'; + fld_PedidosProveedorSITUACION = 'SITUACION'; + fld_PedidosProveedorFECHA_ENVIO = 'FECHA_ENVIO'; + fld_PedidosProveedorFECHA_PEDIDO = 'FECHA_PEDIDO'; + fld_PedidosProveedorFECHA_CONFIRMACION = 'FECHA_CONFIRMACION'; + fld_PedidosProveedorFECHA_ENTREGA = 'FECHA_ENTREGA'; + fld_PedidosProveedorID_ALMACEN = 'ID_ALMACEN'; + fld_PedidosProveedorTIPO_ALMACEN = 'TIPO_ALMACEN'; + fld_PedidosProveedorNOMBRE_ALMACEN = 'NOMBRE_ALMACEN'; + fld_PedidosProveedorID_OBRA = 'ID_OBRA'; + fld_PedidosProveedorNOMBRE_OBRA = 'NOMBRE_OBRA'; + fld_PedidosProveedorOBSERVACIONES = 'OBSERVACIONES'; + fld_PedidosProveedorIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_PedidosProveedorINCIDENCIAS = 'INCIDENCIAS'; + fld_PedidosProveedorINCIDENCIAS_ACTIVAS = 'INCIDENCIAS_ACTIVAS'; + fld_PedidosProveedorCALLE = 'CALLE'; + fld_PedidosProveedorPOBLACION = 'POBLACION'; + fld_PedidosProveedorPROVINCIA = 'PROVINCIA'; + fld_PedidosProveedorCODIGO_POSTAL = 'CODIGO_POSTAL'; + fld_PedidosProveedorPERSONA_CONTACTO = 'PERSONA_CONTACTO'; + fld_PedidosProveedorTELEFONO = 'TELEFONO'; + fld_PedidosProveedorFECHA_ALTA = 'FECHA_ALTA'; + fld_PedidosProveedorFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_PedidosProveedorUSUARIO = 'USUARIO'; + fld_PedidosProveedorID_PEDIDO_CLIENTE = 'ID_PEDIDO_CLIENTE'; + fld_PedidosProveedorREF_PED_CLIENTE = 'REF_PED_CLIENTE'; + fld_PedidosProveedorIMPORTE_NETO = 'IMPORTE_NETO'; + fld_PedidosProveedorIMPORTE_PORTE = 'IMPORTE_PORTE'; + fld_PedidosProveedorDESCUENTO = 'DESCUENTO'; + fld_PedidosProveedorIMPORTE_DESCUENTO = 'IMPORTE_DESCUENTO'; + fld_PedidosProveedorBASE_IMPONIBLE = 'BASE_IMPONIBLE'; + fld_PedidosProveedorIVA = 'IVA'; + fld_PedidosProveedorIMPORTE_IVA = 'IMPORTE_IVA'; + fld_PedidosProveedorID_FORMA_PAGO = 'ID_FORMA_PAGO'; + fld_PedidosProveedorID_FACTURA = 'ID_FACTURA'; + fld_PedidosProveedorREF_FACTURA_PROV = 'REF_FACTURA_PROV'; + + { PedidosProveedor field indexes } + idx_PedidosProveedorID = 0; + idx_PedidosProveedorID_EMPRESA = 1; + idx_PedidosProveedorID_PROVEEDOR = 2; + idx_PedidosProveedorNOMBRE = 3; + idx_PedidosProveedorID_DIRECCION = 4; + idx_PedidosProveedorPERSONA_CONTACTO_PROV = 5; + idx_PedidosProveedorREFERENCIA = 6; + idx_PedidosProveedorSITUACION = 7; + idx_PedidosProveedorFECHA_ENVIO = 8; + idx_PedidosProveedorFECHA_PEDIDO = 9; + idx_PedidosProveedorFECHA_CONFIRMACION = 10; + idx_PedidosProveedorFECHA_ENTREGA = 11; + idx_PedidosProveedorID_ALMACEN = 12; + idx_PedidosProveedorTIPO_ALMACEN = 13; + idx_PedidosProveedorNOMBRE_ALMACEN = 14; + idx_PedidosProveedorID_OBRA = 15; + idx_PedidosProveedorNOMBRE_OBRA = 16; + idx_PedidosProveedorOBSERVACIONES = 17; + idx_PedidosProveedorIMPORTE_TOTAL = 18; + idx_PedidosProveedorINCIDENCIAS = 19; + idx_PedidosProveedorINCIDENCIAS_ACTIVAS = 20; + idx_PedidosProveedorCALLE = 21; + idx_PedidosProveedorPOBLACION = 22; + idx_PedidosProveedorPROVINCIA = 23; + idx_PedidosProveedorCODIGO_POSTAL = 24; + idx_PedidosProveedorPERSONA_CONTACTO = 25; + idx_PedidosProveedorTELEFONO = 26; + idx_PedidosProveedorFECHA_ALTA = 27; + idx_PedidosProveedorFECHA_MODIFICACION = 28; + idx_PedidosProveedorUSUARIO = 29; + idx_PedidosProveedorID_PEDIDO_CLIENTE = 30; + idx_PedidosProveedorREF_PED_CLIENTE = 31; + idx_PedidosProveedorIMPORTE_NETO = 32; + idx_PedidosProveedorIMPORTE_PORTE = 33; + idx_PedidosProveedorDESCUENTO = 34; + idx_PedidosProveedorIMPORTE_DESCUENTO = 35; + idx_PedidosProveedorBASE_IMPONIBLE = 36; + idx_PedidosProveedorIVA = 37; + idx_PedidosProveedorIMPORTE_IVA = 38; + idx_PedidosProveedorID_FORMA_PAGO = 39; + idx_PedidosProveedorID_FACTURA = 40; + idx_PedidosProveedorREF_FACTURA_PROV = 41; + + { PedidosProveedor_Detalles fields } + fld_PedidosProveedor_DetallesID = 'ID'; + fld_PedidosProveedor_DetallesID_PEDIDO = 'ID_PEDIDO'; + fld_PedidosProveedor_DetallesPOSICION = 'POSICION'; + fld_PedidosProveedor_DetallesTIPO_DETALLE = 'TIPO_DETALLE'; + fld_PedidosProveedor_DetallesCONCEPTO = 'CONCEPTO'; + fld_PedidosProveedor_DetallesCANTIDAD = 'CANTIDAD'; + fld_PedidosProveedor_DetallesUNIDAD_MEDIDA = 'UNIDAD_MEDIDA'; + fld_PedidosProveedor_DetallesIMPORTE_UNIDAD = 'IMPORTE_UNIDAD'; + fld_PedidosProveedor_DetallesIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_PedidosProveedor_DetallesVISIBLE = 'VISIBLE'; + fld_PedidosProveedor_DetallesID_ARTICULO = 'ID_ARTICULO'; + fld_PedidosProveedor_DetallesDESCUENTO = 'DESCUENTO'; + fld_PedidosProveedor_DetallesIMPORTE_PORTE = 'IMPORTE_PORTE'; + fld_PedidosProveedor_DetallesREFERENCIA = 'REFERENCIA'; + fld_PedidosProveedor_DetallesREFERENCIA_PROVEEDOR = 'REFERENCIA_PROVEEDOR'; + fld_PedidosProveedor_DetallesREFERENCIA_FABRICANTE = 'REFERENCIA_FABRICANTE'; + + { PedidosProveedor_Detalles field indexes } + idx_PedidosProveedor_DetallesID = 0; + idx_PedidosProveedor_DetallesID_PEDIDO = 1; + idx_PedidosProveedor_DetallesPOSICION = 2; + idx_PedidosProveedor_DetallesTIPO_DETALLE = 3; + idx_PedidosProveedor_DetallesCONCEPTO = 4; + idx_PedidosProveedor_DetallesCANTIDAD = 5; + idx_PedidosProveedor_DetallesUNIDAD_MEDIDA = 6; + idx_PedidosProveedor_DetallesIMPORTE_UNIDAD = 7; + idx_PedidosProveedor_DetallesIMPORTE_TOTAL = 8; + idx_PedidosProveedor_DetallesVISIBLE = 9; + idx_PedidosProveedor_DetallesID_ARTICULO = 10; + idx_PedidosProveedor_DetallesDESCUENTO = 11; + idx_PedidosProveedor_DetallesIMPORTE_PORTE = 12; + idx_PedidosProveedor_DetallesREFERENCIA = 13; + idx_PedidosProveedor_DetallesREFERENCIA_PROVEEDOR = 14; + idx_PedidosProveedor_DetallesREFERENCIA_FABRICANTE = 15; + + { PedidosProveedor_Articulos_Pendientes fields } + fld_PedidosProveedor_Articulos_PendientesID_PEDIDO = 'ID_PEDIDO'; + fld_PedidosProveedor_Articulos_PendientesREFERENCIA = 'REFERENCIA'; + fld_PedidosProveedor_Articulos_PendientesID_ARTICULO = 'ID_ARTICULO'; + fld_PedidosProveedor_Articulos_PendientesCONCEPTO = 'CONCEPTO'; + fld_PedidosProveedor_Articulos_PendientesCANTIDAD = 'CANTIDAD'; + fld_PedidosProveedor_Articulos_PendientesREFERENCIA_PROVEEDOR = 'REFERENCIA_PROVEEDOR'; + + { PedidosProveedor_Articulos_Pendientes field indexes } + idx_PedidosProveedor_Articulos_PendientesID_PEDIDO = 0; + idx_PedidosProveedor_Articulos_PendientesREFERENCIA = 1; + idx_PedidosProveedor_Articulos_PendientesID_ARTICULO = 2; + idx_PedidosProveedor_Articulos_PendientesCONCEPTO = 3; + idx_PedidosProveedor_Articulos_PendientesCANTIDAD = 4; + idx_PedidosProveedor_Articulos_PendientesREFERENCIA_PROVEEDOR = 5; + +type + { IListaAnosPedidos } + IListaAnosPedidos = interface(IDAStronglyTypedDataTable) + ['{F50ECDED-B2E2-4A7E-A160-91F65194D336}'] + { Property getters and setters } + function GetANOValue: String; + procedure SetANOValue(const aValue: String); + function GetANOIsNull: Boolean; + procedure SetANOIsNull(const aValue: Boolean); + + + { Properties } + property ANO: String read GetANOValue write SetANOValue; + property ANOIsNull: Boolean read GetANOIsNull write SetANOIsNull; + end; + + { TListaAnosPedidosDataTableRules } + TListaAnosPedidosDataTableRules = class(TIntfObjectDADataTableRules, IListaAnosPedidos) + private + protected + { Property getters and setters } + function GetANOValue: String; virtual; + procedure SetANOValue(const aValue: String); virtual; + function GetANOIsNull: Boolean; virtual; + procedure SetANOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ANO: String read GetANOValue write SetANOValue; + property ANOIsNull: Boolean read GetANOIsNull write SetANOIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IPedidosProveedor } + IPedidosProveedor = interface(IDAStronglyTypedDataTable) + ['{52592A3B-FB1A-438A-8B4D-56335E373D8C}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_EMPRESAIsNull: Boolean; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); + function GetID_PROVEEDORValue: Integer; + procedure SetID_PROVEEDORValue(const aValue: Integer); + function GetID_PROVEEDORIsNull: Boolean; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetNOMBREIsNull: Boolean; + procedure SetNOMBREIsNull(const aValue: Boolean); + function GetID_DIRECCIONValue: Integer; + procedure SetID_DIRECCIONValue(const aValue: Integer); + function GetID_DIRECCIONIsNull: Boolean; + procedure SetID_DIRECCIONIsNull(const aValue: Boolean); + function GetPERSONA_CONTACTO_PROVValue: String; + procedure SetPERSONA_CONTACTO_PROVValue(const aValue: String); + function GetPERSONA_CONTACTO_PROVIsNull: Boolean; + procedure SetPERSONA_CONTACTO_PROVIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetSITUACIONValue: String; + procedure SetSITUACIONValue(const aValue: String); + function GetSITUACIONIsNull: Boolean; + procedure SetSITUACIONIsNull(const aValue: Boolean); + function GetFECHA_ENVIOValue: DateTime; + procedure SetFECHA_ENVIOValue(const aValue: DateTime); + function GetFECHA_ENVIOIsNull: Boolean; + procedure SetFECHA_ENVIOIsNull(const aValue: Boolean); + function GetFECHA_PEDIDOValue: DateTime; + procedure SetFECHA_PEDIDOValue(const aValue: DateTime); + function GetFECHA_PEDIDOIsNull: Boolean; + procedure SetFECHA_PEDIDOIsNull(const aValue: Boolean); + function GetFECHA_CONFIRMACIONValue: DateTime; + procedure SetFECHA_CONFIRMACIONValue(const aValue: DateTime); + function GetFECHA_CONFIRMACIONIsNull: Boolean; + procedure SetFECHA_CONFIRMACIONIsNull(const aValue: Boolean); + function GetFECHA_ENTREGAValue: DateTime; + procedure SetFECHA_ENTREGAValue(const aValue: DateTime); + function GetFECHA_ENTREGAIsNull: Boolean; + procedure SetFECHA_ENTREGAIsNull(const aValue: Boolean); + function GetID_ALMACENValue: Integer; + procedure SetID_ALMACENValue(const aValue: Integer); + function GetID_ALMACENIsNull: Boolean; + procedure SetID_ALMACENIsNull(const aValue: Boolean); + function GetTIPO_ALMACENValue: String; + procedure SetTIPO_ALMACENValue(const aValue: String); + function GetTIPO_ALMACENIsNull: Boolean; + procedure SetTIPO_ALMACENIsNull(const aValue: Boolean); + function GetNOMBRE_ALMACENValue: String; + procedure SetNOMBRE_ALMACENValue(const aValue: String); + function GetNOMBRE_ALMACENIsNull: Boolean; + procedure SetNOMBRE_ALMACENIsNull(const aValue: Boolean); + function GetID_OBRAValue: Integer; + procedure SetID_OBRAValue(const aValue: Integer); + function GetID_OBRAIsNull: Boolean; + procedure SetID_OBRAIsNull(const aValue: Boolean); + function GetNOMBRE_OBRAValue: String; + procedure SetNOMBRE_OBRAValue(const aValue: String); + function GetNOMBRE_OBRAIsNull: Boolean; + procedure SetNOMBRE_OBRAIsNull(const aValue: Boolean); + function GetOBSERVACIONESValue: IROStrings; + function GetOBSERVACIONESIsNull: Boolean; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetIMPORTE_TOTALIsNull: Boolean; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); + function GetINCIDENCIASValue: IROStrings; + function GetINCIDENCIASIsNull: Boolean; + procedure SetINCIDENCIASIsNull(const aValue: Boolean); + function GetINCIDENCIAS_ACTIVASValue: Integer; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); + function GetINCIDENCIAS_ACTIVASIsNull: Boolean; + procedure SetINCIDENCIAS_ACTIVASIsNull(const aValue: Boolean); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetCALLEIsNull: Boolean; + procedure SetCALLEIsNull(const aValue: Boolean); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPOBLACIONIsNull: Boolean; + procedure SetPOBLACIONIsNull(const aValue: Boolean); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetPROVINCIAIsNull: Boolean; + procedure SetPROVINCIAIsNull(const aValue: Boolean); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetCODIGO_POSTALIsNull: Boolean; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); + function GetPERSONA_CONTACTOValue: String; + procedure SetPERSONA_CONTACTOValue(const aValue: String); + function GetPERSONA_CONTACTOIsNull: Boolean; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); + function GetTELEFONOValue: String; + procedure SetTELEFONOValue(const aValue: String); + function GetTELEFONOIsNull: Boolean; + procedure SetTELEFONOIsNull(const aValue: Boolean); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_ALTAIsNull: Boolean; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONIsNull: Boolean; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetUSUARIOIsNull: Boolean; + procedure SetUSUARIOIsNull(const aValue: Boolean); + function GetID_PEDIDO_CLIENTEValue: Integer; + procedure SetID_PEDIDO_CLIENTEValue(const aValue: Integer); + function GetID_PEDIDO_CLIENTEIsNull: Boolean; + procedure SetID_PEDIDO_CLIENTEIsNull(const aValue: Boolean); + function GetREF_PED_CLIENTEValue: String; + procedure SetREF_PED_CLIENTEValue(const aValue: String); + function GetREF_PED_CLIENTEIsNull: Boolean; + procedure SetREF_PED_CLIENTEIsNull(const aValue: Boolean); + function GetIMPORTE_NETOValue: Currency; + procedure SetIMPORTE_NETOValue(const aValue: Currency); + function GetIMPORTE_NETOIsNull: Boolean; + procedure SetIMPORTE_NETOIsNull(const aValue: Boolean); + function GetIMPORTE_PORTEValue: Currency; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); + function GetIMPORTE_PORTEIsNull: Boolean; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetDESCUENTOIsNull: Boolean; + procedure SetDESCUENTOIsNull(const aValue: Boolean); + function GetIMPORTE_DESCUENTOValue: Currency; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); + function GetIMPORTE_DESCUENTOIsNull: Boolean; + procedure SetIMPORTE_DESCUENTOIsNull(const aValue: Boolean); + function GetBASE_IMPONIBLEValue: Currency; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); + function GetBASE_IMPONIBLEIsNull: Boolean; + procedure SetBASE_IMPONIBLEIsNull(const aValue: Boolean); + function GetIVAValue: Float; + procedure SetIVAValue(const aValue: Float); + function GetIVAIsNull: Boolean; + procedure SetIVAIsNull(const aValue: Boolean); + function GetIMPORTE_IVAValue: Currency; + procedure SetIMPORTE_IVAValue(const aValue: Currency); + function GetIMPORTE_IVAIsNull: Boolean; + procedure SetIMPORTE_IVAIsNull(const aValue: Boolean); + function GetID_FORMA_PAGOValue: Integer; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); + function GetID_FORMA_PAGOIsNull: Boolean; + procedure SetID_FORMA_PAGOIsNull(const aValue: Boolean); + function GetID_FACTURAValue: Integer; + procedure SetID_FACTURAValue(const aValue: Integer); + function GetID_FACTURAIsNull: Boolean; + procedure SetID_FACTURAIsNull(const aValue: Boolean); + function GetREF_FACTURA_PROVValue: String; + procedure SetREF_FACTURA_PROVValue(const aValue: String); + function GetREF_FACTURA_PROVIsNull: Boolean; + procedure SetREF_FACTURA_PROVIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property ID_DIRECCION: Integer read GetID_DIRECCIONValue write SetID_DIRECCIONValue; + property ID_DIRECCIONIsNull: Boolean read GetID_DIRECCIONIsNull write SetID_DIRECCIONIsNull; + property PERSONA_CONTACTO_PROV: String read GetPERSONA_CONTACTO_PROVValue write SetPERSONA_CONTACTO_PROVValue; + property PERSONA_CONTACTO_PROVIsNull: Boolean read GetPERSONA_CONTACTO_PROVIsNull write SetPERSONA_CONTACTO_PROVIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property SITUACIONIsNull: Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull; + property FECHA_ENVIO: DateTime read GetFECHA_ENVIOValue write SetFECHA_ENVIOValue; + property FECHA_ENVIOIsNull: Boolean read GetFECHA_ENVIOIsNull write SetFECHA_ENVIOIsNull; + property FECHA_PEDIDO: DateTime read GetFECHA_PEDIDOValue write SetFECHA_PEDIDOValue; + property FECHA_PEDIDOIsNull: Boolean read GetFECHA_PEDIDOIsNull write SetFECHA_PEDIDOIsNull; + property FECHA_CONFIRMACION: DateTime read GetFECHA_CONFIRMACIONValue write SetFECHA_CONFIRMACIONValue; + property FECHA_CONFIRMACIONIsNull: Boolean read GetFECHA_CONFIRMACIONIsNull write SetFECHA_CONFIRMACIONIsNull; + property FECHA_ENTREGA: DateTime read GetFECHA_ENTREGAValue write SetFECHA_ENTREGAValue; + property FECHA_ENTREGAIsNull: Boolean read GetFECHA_ENTREGAIsNull write SetFECHA_ENTREGAIsNull; + property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property ID_ALMACENIsNull: Boolean read GetID_ALMACENIsNull write SetID_ALMACENIsNull; + property TIPO_ALMACEN: String read GetTIPO_ALMACENValue write SetTIPO_ALMACENValue; + property TIPO_ALMACENIsNull: Boolean read GetTIPO_ALMACENIsNull write SetTIPO_ALMACENIsNull; + property NOMBRE_ALMACEN: String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property NOMBRE_ALMACENIsNull: Boolean read GetNOMBRE_ALMACENIsNull write SetNOMBRE_ALMACENIsNull; + property ID_OBRA: Integer read GetID_OBRAValue write SetID_OBRAValue; + property ID_OBRAIsNull: Boolean read GetID_OBRAIsNull write SetID_OBRAIsNull; + property NOMBRE_OBRA: String read GetNOMBRE_OBRAValue write SetNOMBRE_OBRAValue; + property NOMBRE_OBRAIsNull: Boolean read GetNOMBRE_OBRAIsNull write SetNOMBRE_OBRAIsNull; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue; + property OBSERVACIONESIsNull: Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property INCIDENCIAS: IROStrings read GetINCIDENCIASValue; + property INCIDENCIASIsNull: Boolean read GetINCIDENCIASIsNull write SetINCIDENCIASIsNull; + property INCIDENCIAS_ACTIVAS: Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property INCIDENCIAS_ACTIVASIsNull: Boolean read GetINCIDENCIAS_ACTIVASIsNull write SetINCIDENCIAS_ACTIVASIsNull; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull: Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property TELEFONOIsNull: Boolean read GetTELEFONOIsNull write SetTELEFONOIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property ID_PEDIDO_CLIENTE: Integer read GetID_PEDIDO_CLIENTEValue write SetID_PEDIDO_CLIENTEValue; + property ID_PEDIDO_CLIENTEIsNull: Boolean read GetID_PEDIDO_CLIENTEIsNull write SetID_PEDIDO_CLIENTEIsNull; + property REF_PED_CLIENTE: String read GetREF_PED_CLIENTEValue write SetREF_PED_CLIENTEValue; + property REF_PED_CLIENTEIsNull: Boolean read GetREF_PED_CLIENTEIsNull write SetREF_PED_CLIENTEIsNull; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_NETOIsNull: Boolean read GetIMPORTE_NETOIsNull write SetIMPORTE_NETOIsNull; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull: Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property IMPORTE_DESCUENTOIsNull: Boolean read GetIMPORTE_DESCUENTOIsNull write SetIMPORTE_DESCUENTOIsNull; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property BASE_IMPONIBLEIsNull: Boolean read GetBASE_IMPONIBLEIsNull write SetBASE_IMPONIBLEIsNull; + property IVA: Float read GetIVAValue write SetIVAValue; + property IVAIsNull: Boolean read GetIVAIsNull write SetIVAIsNull; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property IMPORTE_IVAIsNull: Boolean read GetIMPORTE_IVAIsNull write SetIMPORTE_IVAIsNull; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property ID_FORMA_PAGOIsNull: Boolean read GetID_FORMA_PAGOIsNull write SetID_FORMA_PAGOIsNull; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull: Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property REF_FACTURA_PROV: String read GetREF_FACTURA_PROVValue write SetREF_FACTURA_PROVValue; + property REF_FACTURA_PROVIsNull: Boolean read GetREF_FACTURA_PROVIsNull write SetREF_FACTURA_PROVIsNull; + end; + + { TPedidosProveedorDataTableRules } + TPedidosProveedorDataTableRules = class(TIntfObjectDADataTableRules, IPedidosProveedor) + private + f_OBSERVACIONES: IROStrings; + f_INCIDENCIAS: IROStrings; + procedure OBSERVACIONES_OnChange(Sender: TObject); + procedure INCIDENCIAS_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetID_PROVEEDORIsNull: Boolean; virtual; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetID_DIRECCIONValue: Integer; virtual; + procedure SetID_DIRECCIONValue(const aValue: Integer); virtual; + function GetID_DIRECCIONIsNull: Boolean; virtual; + procedure SetID_DIRECCIONIsNull(const aValue: Boolean); virtual; + function GetPERSONA_CONTACTO_PROVValue: String; virtual; + procedure SetPERSONA_CONTACTO_PROVValue(const aValue: String); virtual; + function GetPERSONA_CONTACTO_PROVIsNull: Boolean; virtual; + procedure SetPERSONA_CONTACTO_PROVIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetSITUACIONIsNull: Boolean; virtual; + procedure SetSITUACIONIsNull(const aValue: Boolean); virtual; + function GetFECHA_ENVIOValue: DateTime; virtual; + procedure SetFECHA_ENVIOValue(const aValue: DateTime); virtual; + function GetFECHA_ENVIOIsNull: Boolean; virtual; + procedure SetFECHA_ENVIOIsNull(const aValue: Boolean); virtual; + function GetFECHA_PEDIDOValue: DateTime; virtual; + procedure SetFECHA_PEDIDOValue(const aValue: DateTime); virtual; + function GetFECHA_PEDIDOIsNull: Boolean; virtual; + procedure SetFECHA_PEDIDOIsNull(const aValue: Boolean); virtual; + function GetFECHA_CONFIRMACIONValue: DateTime; virtual; + procedure SetFECHA_CONFIRMACIONValue(const aValue: DateTime); virtual; + function GetFECHA_CONFIRMACIONIsNull: Boolean; virtual; + procedure SetFECHA_CONFIRMACIONIsNull(const aValue: Boolean); virtual; + function GetFECHA_ENTREGAValue: DateTime; virtual; + procedure SetFECHA_ENTREGAValue(const aValue: DateTime); virtual; + function GetFECHA_ENTREGAIsNull: Boolean; virtual; + procedure SetFECHA_ENTREGAIsNull(const aValue: Boolean); virtual; + function GetID_ALMACENValue: Integer; virtual; + procedure SetID_ALMACENValue(const aValue: Integer); virtual; + function GetID_ALMACENIsNull: Boolean; virtual; + procedure SetID_ALMACENIsNull(const aValue: Boolean); virtual; + function GetTIPO_ALMACENValue: String; virtual; + procedure SetTIPO_ALMACENValue(const aValue: String); virtual; + function GetTIPO_ALMACENIsNull: Boolean; virtual; + procedure SetTIPO_ALMACENIsNull(const aValue: Boolean); virtual; + function GetNOMBRE_ALMACENValue: String; virtual; + procedure SetNOMBRE_ALMACENValue(const aValue: String); virtual; + function GetNOMBRE_ALMACENIsNull: Boolean; virtual; + procedure SetNOMBRE_ALMACENIsNull(const aValue: Boolean); virtual; + function GetID_OBRAValue: Integer; virtual; + procedure SetID_OBRAValue(const aValue: Integer); virtual; + function GetID_OBRAIsNull: Boolean; virtual; + procedure SetID_OBRAIsNull(const aValue: Boolean); virtual; + function GetNOMBRE_OBRAValue: String; virtual; + procedure SetNOMBRE_OBRAValue(const aValue: String); virtual; + function GetNOMBRE_OBRAIsNull: Boolean; virtual; + procedure SetNOMBRE_OBRAIsNull(const aValue: Boolean); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + function GetOBSERVACIONESIsNull: Boolean; virtual; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetINCIDENCIASValue: IROStrings; virtual; + function GetINCIDENCIASIsNull: Boolean; virtual; + procedure SetINCIDENCIASIsNull(const aValue: Boolean); virtual; + function GetINCIDENCIAS_ACTIVASValue: Integer; virtual; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); virtual; + function GetINCIDENCIAS_ACTIVASIsNull: Boolean; virtual; + procedure SetINCIDENCIAS_ACTIVASIsNull(const aValue: Boolean); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetCALLEIsNull: Boolean; virtual; + procedure SetCALLEIsNull(const aValue: Boolean); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPOBLACIONIsNull: Boolean; virtual; + procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetPROVINCIAIsNull: Boolean; virtual; + procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetCODIGO_POSTALIsNull: Boolean; virtual; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + function GetPERSONA_CONTACTOIsNull: Boolean; virtual; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); virtual; + function GetTELEFONOValue: String; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + function GetTELEFONOIsNull: Boolean; virtual; + procedure SetTELEFONOIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetID_PEDIDO_CLIENTEValue: Integer; virtual; + procedure SetID_PEDIDO_CLIENTEValue(const aValue: Integer); virtual; + function GetID_PEDIDO_CLIENTEIsNull: Boolean; virtual; + procedure SetID_PEDIDO_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetREF_PED_CLIENTEValue: String; virtual; + procedure SetREF_PED_CLIENTEValue(const aValue: String); virtual; + function GetREF_PED_CLIENTEIsNull: Boolean; virtual; + procedure SetREF_PED_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + function GetIMPORTE_NETOIsNull: Boolean; virtual; + procedure SetIMPORTE_NETOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEIsNull: Boolean; virtual; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + function GetIMPORTE_DESCUENTOIsNull: Boolean; virtual; + procedure SetIMPORTE_DESCUENTOIsNull(const aValue: Boolean); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + function GetBASE_IMPONIBLEIsNull: Boolean; virtual; + procedure SetBASE_IMPONIBLEIsNull(const aValue: Boolean); virtual; + function GetIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + function GetIVAIsNull: Boolean; virtual; + procedure SetIVAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + function GetIMPORTE_IVAIsNull: Boolean; virtual; + procedure SetIMPORTE_IVAIsNull(const aValue: Boolean); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + function GetID_FORMA_PAGOIsNull: Boolean; virtual; + procedure SetID_FORMA_PAGOIsNull(const aValue: Boolean); virtual; + function GetID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetID_FACTURAIsNull: Boolean; virtual; + procedure SetID_FACTURAIsNull(const aValue: Boolean); virtual; + function GetREF_FACTURA_PROVValue: String; virtual; + procedure SetREF_FACTURA_PROVValue(const aValue: String); virtual; + function GetREF_FACTURA_PROVIsNull: Boolean; virtual; + procedure SetREF_FACTURA_PROVIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property ID_DIRECCION: Integer read GetID_DIRECCIONValue write SetID_DIRECCIONValue; + property ID_DIRECCIONIsNull: Boolean read GetID_DIRECCIONIsNull write SetID_DIRECCIONIsNull; + property PERSONA_CONTACTO_PROV: String read GetPERSONA_CONTACTO_PROVValue write SetPERSONA_CONTACTO_PROVValue; + property PERSONA_CONTACTO_PROVIsNull: Boolean read GetPERSONA_CONTACTO_PROVIsNull write SetPERSONA_CONTACTO_PROVIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property SITUACIONIsNull: Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull; + property FECHA_ENVIO: DateTime read GetFECHA_ENVIOValue write SetFECHA_ENVIOValue; + property FECHA_ENVIOIsNull: Boolean read GetFECHA_ENVIOIsNull write SetFECHA_ENVIOIsNull; + property FECHA_PEDIDO: DateTime read GetFECHA_PEDIDOValue write SetFECHA_PEDIDOValue; + property FECHA_PEDIDOIsNull: Boolean read GetFECHA_PEDIDOIsNull write SetFECHA_PEDIDOIsNull; + property FECHA_CONFIRMACION: DateTime read GetFECHA_CONFIRMACIONValue write SetFECHA_CONFIRMACIONValue; + property FECHA_CONFIRMACIONIsNull: Boolean read GetFECHA_CONFIRMACIONIsNull write SetFECHA_CONFIRMACIONIsNull; + property FECHA_ENTREGA: DateTime read GetFECHA_ENTREGAValue write SetFECHA_ENTREGAValue; + property FECHA_ENTREGAIsNull: Boolean read GetFECHA_ENTREGAIsNull write SetFECHA_ENTREGAIsNull; + property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property ID_ALMACENIsNull: Boolean read GetID_ALMACENIsNull write SetID_ALMACENIsNull; + property TIPO_ALMACEN: String read GetTIPO_ALMACENValue write SetTIPO_ALMACENValue; + property TIPO_ALMACENIsNull: Boolean read GetTIPO_ALMACENIsNull write SetTIPO_ALMACENIsNull; + property NOMBRE_ALMACEN: String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property NOMBRE_ALMACENIsNull: Boolean read GetNOMBRE_ALMACENIsNull write SetNOMBRE_ALMACENIsNull; + property ID_OBRA: Integer read GetID_OBRAValue write SetID_OBRAValue; + property ID_OBRAIsNull: Boolean read GetID_OBRAIsNull write SetID_OBRAIsNull; + property NOMBRE_OBRA: String read GetNOMBRE_OBRAValue write SetNOMBRE_OBRAValue; + property NOMBRE_OBRAIsNull: Boolean read GetNOMBRE_OBRAIsNull write SetNOMBRE_OBRAIsNull; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue; + property OBSERVACIONESIsNull: Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property INCIDENCIAS: IROStrings read GetINCIDENCIASValue; + property INCIDENCIASIsNull: Boolean read GetINCIDENCIASIsNull write SetINCIDENCIASIsNull; + property INCIDENCIAS_ACTIVAS: Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property INCIDENCIAS_ACTIVASIsNull: Boolean read GetINCIDENCIAS_ACTIVASIsNull write SetINCIDENCIAS_ACTIVASIsNull; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull: Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property TELEFONOIsNull: Boolean read GetTELEFONOIsNull write SetTELEFONOIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property ID_PEDIDO_CLIENTE: Integer read GetID_PEDIDO_CLIENTEValue write SetID_PEDIDO_CLIENTEValue; + property ID_PEDIDO_CLIENTEIsNull: Boolean read GetID_PEDIDO_CLIENTEIsNull write SetID_PEDIDO_CLIENTEIsNull; + property REF_PED_CLIENTE: String read GetREF_PED_CLIENTEValue write SetREF_PED_CLIENTEValue; + property REF_PED_CLIENTEIsNull: Boolean read GetREF_PED_CLIENTEIsNull write SetREF_PED_CLIENTEIsNull; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_NETOIsNull: Boolean read GetIMPORTE_NETOIsNull write SetIMPORTE_NETOIsNull; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull: Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property IMPORTE_DESCUENTOIsNull: Boolean read GetIMPORTE_DESCUENTOIsNull write SetIMPORTE_DESCUENTOIsNull; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property BASE_IMPONIBLEIsNull: Boolean read GetBASE_IMPONIBLEIsNull write SetBASE_IMPONIBLEIsNull; + property IVA: Float read GetIVAValue write SetIVAValue; + property IVAIsNull: Boolean read GetIVAIsNull write SetIVAIsNull; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property IMPORTE_IVAIsNull: Boolean read GetIMPORTE_IVAIsNull write SetIMPORTE_IVAIsNull; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property ID_FORMA_PAGOIsNull: Boolean read GetID_FORMA_PAGOIsNull write SetID_FORMA_PAGOIsNull; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull: Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property REF_FACTURA_PROV: String read GetREF_FACTURA_PROVValue write SetREF_FACTURA_PROVValue; + property REF_FACTURA_PROVIsNull: Boolean read GetREF_FACTURA_PROVIsNull write SetREF_FACTURA_PROVIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IPedidosProveedor_Detalles } + IPedidosProveedor_Detalles = interface(IDAStronglyTypedDataTable) + ['{5D182AFF-F1C8-4C0C-A82B-E8F74B11F199}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_PEDIDOValue: Integer; + procedure SetID_PEDIDOValue(const aValue: Integer); + function GetID_PEDIDOIsNull: Boolean; + procedure SetID_PEDIDOIsNull(const aValue: Boolean); + function GetPOSICIONValue: Integer; + procedure SetPOSICIONValue(const aValue: Integer); + function GetPOSICIONIsNull: Boolean; + procedure SetPOSICIONIsNull(const aValue: Boolean); + function GetTIPO_DETALLEValue: String; + procedure SetTIPO_DETALLEValue(const aValue: String); + function GetTIPO_DETALLEIsNull: Boolean; + procedure SetTIPO_DETALLEIsNull(const aValue: Boolean); + function GetCONCEPTOValue: String; + procedure SetCONCEPTOValue(const aValue: String); + function GetCONCEPTOIsNull: Boolean; + procedure SetCONCEPTOIsNull(const aValue: Boolean); + function GetCANTIDADValue: Float; + procedure SetCANTIDADValue(const aValue: Float); + function GetCANTIDADIsNull: Boolean; + procedure SetCANTIDADIsNull(const aValue: Boolean); + function GetUNIDAD_MEDIDAValue: String; + procedure SetUNIDAD_MEDIDAValue(const aValue: String); + function GetUNIDAD_MEDIDAIsNull: Boolean; + procedure SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); + function GetIMPORTE_UNIDADValue: Currency; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); + function GetIMPORTE_UNIDADIsNull: Boolean; + procedure SetIMPORTE_UNIDADIsNull(const aValue: Boolean); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetIMPORTE_TOTALIsNull: Boolean; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); + function GetVISIBLEValue: Integer; + procedure SetVISIBLEValue(const aValue: Integer); + function GetVISIBLEIsNull: Boolean; + procedure SetVISIBLEIsNull(const aValue: Boolean); + function GetID_ARTICULOValue: Integer; + procedure SetID_ARTICULOValue(const aValue: Integer); + function GetID_ARTICULOIsNull: Boolean; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetDESCUENTOIsNull: Boolean; + procedure SetDESCUENTOIsNull(const aValue: Boolean); + function GetIMPORTE_PORTEValue: Currency; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); + function GetIMPORTE_PORTEIsNull: Boolean; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetREFERENCIA_PROVEEDORValue: String; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); + function GetREFERENCIA_PROVEEDORIsNull: Boolean; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); + function GetREFERENCIA_FABRICANTEValue: String; + procedure SetREFERENCIA_FABRICANTEValue(const aValue: String); + function GetREFERENCIA_FABRICANTEIsNull: Boolean; + procedure SetREFERENCIA_FABRICANTEIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property ID_PEDIDOIsNull: Boolean read GetID_PEDIDOIsNull write SetID_PEDIDOIsNull; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property POSICIONIsNull: Boolean read GetPOSICIONIsNull write SetPOSICIONIsNull; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property TIPO_DETALLEIsNull: Boolean read GetTIPO_DETALLEIsNull write SetTIPO_DETALLEIsNull; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CONCEPTOIsNull: Boolean read GetCONCEPTOIsNull write SetCONCEPTOIsNull; + property CANTIDAD: Float read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDADIsNull: Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; + property UNIDAD_MEDIDA: String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue; + property UNIDAD_MEDIDAIsNull: Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull; + property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_UNIDADIsNull: Boolean read GetIMPORTE_UNIDADIsNull write SetIMPORTE_UNIDADIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property VISIBLEIsNull: Boolean read GetVISIBLEIsNull write SetVISIBLEIsNull; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull: Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull: Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull: Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + property REFERENCIA_FABRICANTE: String read GetREFERENCIA_FABRICANTEValue write SetREFERENCIA_FABRICANTEValue; + property REFERENCIA_FABRICANTEIsNull: Boolean read GetREFERENCIA_FABRICANTEIsNull write SetREFERENCIA_FABRICANTEIsNull; + end; + + { TPedidosProveedor_DetallesDataTableRules } + TPedidosProveedor_DetallesDataTableRules = class(TIntfObjectDADataTableRules, IPedidosProveedor_Detalles) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_PEDIDOValue: Integer; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + function GetID_PEDIDOIsNull: Boolean; virtual; + procedure SetID_PEDIDOIsNull(const aValue: Boolean); virtual; + function GetPOSICIONValue: Integer; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + function GetPOSICIONIsNull: Boolean; virtual; + procedure SetPOSICIONIsNull(const aValue: Boolean); virtual; + function GetTIPO_DETALLEValue: String; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + function GetTIPO_DETALLEIsNull: Boolean; virtual; + procedure SetTIPO_DETALLEIsNull(const aValue: Boolean); virtual; + function GetCONCEPTOValue: String; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + function GetCONCEPTOIsNull: Boolean; virtual; + procedure SetCONCEPTOIsNull(const aValue: Boolean); virtual; + function GetCANTIDADValue: Float; virtual; + procedure SetCANTIDADValue(const aValue: Float); virtual; + function GetCANTIDADIsNull: Boolean; virtual; + procedure SetCANTIDADIsNull(const aValue: Boolean); virtual; + function GetUNIDAD_MEDIDAValue: String; virtual; + procedure SetUNIDAD_MEDIDAValue(const aValue: String); virtual; + function GetUNIDAD_MEDIDAIsNull: Boolean; virtual; + procedure SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_UNIDADValue: Currency; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual; + function GetIMPORTE_UNIDADIsNull: Boolean; virtual; + procedure SetIMPORTE_UNIDADIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetVISIBLEValue: Integer; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + function GetVISIBLEIsNull: Boolean; virtual; + procedure SetVISIBLEIsNull(const aValue: Boolean); virtual; + function GetID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetID_ARTICULOIsNull: Boolean; virtual; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEIsNull: Boolean; virtual; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + function GetREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_FABRICANTEValue: String; virtual; + procedure SetREFERENCIA_FABRICANTEValue(const aValue: String); virtual; + function GetREFERENCIA_FABRICANTEIsNull: Boolean; virtual; + procedure SetREFERENCIA_FABRICANTEIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property ID_PEDIDOIsNull: Boolean read GetID_PEDIDOIsNull write SetID_PEDIDOIsNull; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property POSICIONIsNull: Boolean read GetPOSICIONIsNull write SetPOSICIONIsNull; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property TIPO_DETALLEIsNull: Boolean read GetTIPO_DETALLEIsNull write SetTIPO_DETALLEIsNull; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CONCEPTOIsNull: Boolean read GetCONCEPTOIsNull write SetCONCEPTOIsNull; + property CANTIDAD: Float read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDADIsNull: Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; + property UNIDAD_MEDIDA: String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue; + property UNIDAD_MEDIDAIsNull: Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull; + property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_UNIDADIsNull: Boolean read GetIMPORTE_UNIDADIsNull write SetIMPORTE_UNIDADIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property VISIBLEIsNull: Boolean read GetVISIBLEIsNull write SetVISIBLEIsNull; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull: Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull: Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull: Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + property REFERENCIA_FABRICANTE: String read GetREFERENCIA_FABRICANTEValue write SetREFERENCIA_FABRICANTEValue; + property REFERENCIA_FABRICANTEIsNull: Boolean read GetREFERENCIA_FABRICANTEIsNull write SetREFERENCIA_FABRICANTEIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IPedidosProveedor_Articulos_Pendientes } + IPedidosProveedor_Articulos_Pendientes = interface(IDAStronglyTypedDataTable) + ['{4EDB8973-E2C1-4B31-BAB1-1724233A993F}'] + { Property getters and setters } + function GetID_PEDIDOValue: Integer; + procedure SetID_PEDIDOValue(const aValue: Integer); + function GetID_PEDIDOIsNull: Boolean; + procedure SetID_PEDIDOIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetID_ARTICULOValue: Integer; + procedure SetID_ARTICULOValue(const aValue: Integer); + function GetID_ARTICULOIsNull: Boolean; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); + function GetCONCEPTOValue: String; + procedure SetCONCEPTOValue(const aValue: String); + function GetCONCEPTOIsNull: Boolean; + procedure SetCONCEPTOIsNull(const aValue: Boolean); + function GetCANTIDADValue: Float; + procedure SetCANTIDADValue(const aValue: Float); + function GetCANTIDADIsNull: Boolean; + procedure SetCANTIDADIsNull(const aValue: Boolean); + function GetREFERENCIA_PROVEEDORValue: String; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); + function GetREFERENCIA_PROVEEDORIsNull: Boolean; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); + + + { Properties } + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property ID_PEDIDOIsNull: Boolean read GetID_PEDIDOIsNull write SetID_PEDIDOIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull: Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CONCEPTOIsNull: Boolean read GetCONCEPTOIsNull write SetCONCEPTOIsNull; + property CANTIDAD: Float read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDADIsNull: Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull: Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + end; + + { TPedidosProveedor_Articulos_PendientesDataTableRules } + TPedidosProveedor_Articulos_PendientesDataTableRules = class(TIntfObjectDADataTableRules, IPedidosProveedor_Articulos_Pendientes) + private + protected + { Property getters and setters } + function GetID_PEDIDOValue: Integer; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + function GetID_PEDIDOIsNull: Boolean; virtual; + procedure SetID_PEDIDOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetID_ARTICULOIsNull: Boolean; virtual; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); virtual; + function GetCONCEPTOValue: String; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + function GetCONCEPTOIsNull: Boolean; virtual; + procedure SetCONCEPTOIsNull(const aValue: Boolean); virtual; + function GetCANTIDADValue: Float; virtual; + procedure SetCANTIDADValue(const aValue: Float); virtual; + function GetCANTIDADIsNull: Boolean; virtual; + procedure SetCANTIDADIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + function GetREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property ID_PEDIDOIsNull: Boolean read GetID_PEDIDOIsNull write SetID_PEDIDOIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull: Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CONCEPTOIsNull: Boolean read GetCONCEPTOIsNull write SetCONCEPTOIsNull; + property CANTIDAD: Float read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDADIsNull: Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull: Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants, uROBinaryHelpers; + +{ TListaAnosPedidosDataTableRules } +constructor TListaAnosPedidosDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TListaAnosPedidosDataTableRules.Destroy; +begin + inherited; +end; + +function TListaAnosPedidosDataTableRules.GetANOValue: String; +begin + result := DataTable.Fields[idx_ListaAnosPedidosANO].AsString; +end; + +procedure TListaAnosPedidosDataTableRules.SetANOValue(const aValue: String); +begin + DataTable.Fields[idx_ListaAnosPedidosANO].AsString := aValue; +end; + +function TListaAnosPedidosDataTableRules.GetANOIsNull: boolean; +begin + result := DataTable.Fields[idx_ListaAnosPedidosANO].IsNull; +end; + +procedure TListaAnosPedidosDataTableRules.SetANOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ListaAnosPedidosANO].AsVariant := Null; +end; + + +{ TPedidosProveedorDataTableRules } +constructor TPedidosProveedorDataTableRules.Create(aDataTable: TDADataTable); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := OBSERVACIONES_OnChange; + f_OBSERVACIONES := NewROStrings(StrList,True); + + StrList := TStringList.Create; + StrList.OnChange := INCIDENCIAS_OnChange; + f_INCIDENCIAS := NewROStrings(StrList,True); +end; + +destructor TPedidosProveedorDataTableRules.Destroy; +begin + inherited; +end; + +procedure TPedidosProveedorDataTableRules.OBSERVACIONES_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_PedidosProveedorOBSERVACIONES].AsVariant := TStringList(Sender).Text; +end; + +procedure TPedidosProveedorDataTableRules.INCIDENCIAS_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_PedidosProveedorINCIDENCIAS].AsVariant := TStringList(Sender).Text; +end; + +function TPedidosProveedorDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_PedidosProveedorID].AsInteger; +end; + +procedure TPedidosProveedorDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosProveedorID].AsInteger := aValue; +end; + +function TPedidosProveedorDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorID].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorID].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_PedidosProveedorID_EMPRESA].AsInteger; +end; + +procedure TPedidosProveedorDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosProveedorID_EMPRESA].AsInteger := aValue; +end; + +function TPedidosProveedorDataTableRules.GetID_EMPRESAIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorID_EMPRESA].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorID_EMPRESA].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetID_PROVEEDORValue: Integer; +begin + result := DataTable.Fields[idx_PedidosProveedorID_PROVEEDOR].AsInteger; +end; + +procedure TPedidosProveedorDataTableRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosProveedorID_PROVEEDOR].AsInteger := aValue; +end; + +function TPedidosProveedorDataTableRules.GetID_PROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorID_PROVEEDOR].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetID_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorID_PROVEEDOR].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedorNOMBRE].AsString; +end; + +procedure TPedidosProveedorDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedorNOMBRE].AsString := aValue; +end; + +function TPedidosProveedorDataTableRules.GetNOMBREIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorNOMBRE].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorNOMBRE].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetID_DIRECCIONValue: Integer; +begin + result := DataTable.Fields[idx_PedidosProveedorID_DIRECCION].AsInteger; +end; + +procedure TPedidosProveedorDataTableRules.SetID_DIRECCIONValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosProveedorID_DIRECCION].AsInteger := aValue; +end; + +function TPedidosProveedorDataTableRules.GetID_DIRECCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorID_DIRECCION].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetID_DIRECCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorID_DIRECCION].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetPERSONA_CONTACTO_PROVValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedorPERSONA_CONTACTO_PROV].AsString; +end; + +procedure TPedidosProveedorDataTableRules.SetPERSONA_CONTACTO_PROVValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedorPERSONA_CONTACTO_PROV].AsString := aValue; +end; + +function TPedidosProveedorDataTableRules.GetPERSONA_CONTACTO_PROVIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorPERSONA_CONTACTO_PROV].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetPERSONA_CONTACTO_PROVIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorPERSONA_CONTACTO_PROV].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedorREFERENCIA].AsString; +end; + +procedure TPedidosProveedorDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedorREFERENCIA].AsString := aValue; +end; + +function TPedidosProveedorDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorREFERENCIA].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorREFERENCIA].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetSITUACIONValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedorSITUACION].AsString; +end; + +procedure TPedidosProveedorDataTableRules.SetSITUACIONValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedorSITUACION].AsString := aValue; +end; + +function TPedidosProveedorDataTableRules.GetSITUACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorSITUACION].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetSITUACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorSITUACION].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetFECHA_ENVIOValue: DateTime; +begin + result := DataTable.Fields[idx_PedidosProveedorFECHA_ENVIO].AsDateTime; +end; + +procedure TPedidosProveedorDataTableRules.SetFECHA_ENVIOValue(const aValue: DateTime); +begin + DataTable.Fields[idx_PedidosProveedorFECHA_ENVIO].AsDateTime := aValue; +end; + +function TPedidosProveedorDataTableRules.GetFECHA_ENVIOIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorFECHA_ENVIO].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetFECHA_ENVIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorFECHA_ENVIO].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetFECHA_PEDIDOValue: DateTime; +begin + result := DataTable.Fields[idx_PedidosProveedorFECHA_PEDIDO].AsDateTime; +end; + +procedure TPedidosProveedorDataTableRules.SetFECHA_PEDIDOValue(const aValue: DateTime); +begin + DataTable.Fields[idx_PedidosProveedorFECHA_PEDIDO].AsDateTime := aValue; +end; + +function TPedidosProveedorDataTableRules.GetFECHA_PEDIDOIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorFECHA_PEDIDO].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetFECHA_PEDIDOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorFECHA_PEDIDO].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetFECHA_CONFIRMACIONValue: DateTime; +begin + result := DataTable.Fields[idx_PedidosProveedorFECHA_CONFIRMACION].AsDateTime; +end; + +procedure TPedidosProveedorDataTableRules.SetFECHA_CONFIRMACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_PedidosProveedorFECHA_CONFIRMACION].AsDateTime := aValue; +end; + +function TPedidosProveedorDataTableRules.GetFECHA_CONFIRMACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorFECHA_CONFIRMACION].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetFECHA_CONFIRMACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorFECHA_CONFIRMACION].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetFECHA_ENTREGAValue: DateTime; +begin + result := DataTable.Fields[idx_PedidosProveedorFECHA_ENTREGA].AsDateTime; +end; + +procedure TPedidosProveedorDataTableRules.SetFECHA_ENTREGAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_PedidosProveedorFECHA_ENTREGA].AsDateTime := aValue; +end; + +function TPedidosProveedorDataTableRules.GetFECHA_ENTREGAIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorFECHA_ENTREGA].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetFECHA_ENTREGAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorFECHA_ENTREGA].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetID_ALMACENValue: Integer; +begin + result := DataTable.Fields[idx_PedidosProveedorID_ALMACEN].AsInteger; +end; + +procedure TPedidosProveedorDataTableRules.SetID_ALMACENValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosProveedorID_ALMACEN].AsInteger := aValue; +end; + +function TPedidosProveedorDataTableRules.GetID_ALMACENIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorID_ALMACEN].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetID_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorID_ALMACEN].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetTIPO_ALMACENValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedorTIPO_ALMACEN].AsString; +end; + +procedure TPedidosProveedorDataTableRules.SetTIPO_ALMACENValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedorTIPO_ALMACEN].AsString := aValue; +end; + +function TPedidosProveedorDataTableRules.GetTIPO_ALMACENIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorTIPO_ALMACEN].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetTIPO_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorTIPO_ALMACEN].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetNOMBRE_ALMACENValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedorNOMBRE_ALMACEN].AsString; +end; + +procedure TPedidosProveedorDataTableRules.SetNOMBRE_ALMACENValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedorNOMBRE_ALMACEN].AsString := aValue; +end; + +function TPedidosProveedorDataTableRules.GetNOMBRE_ALMACENIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorNOMBRE_ALMACEN].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetNOMBRE_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorNOMBRE_ALMACEN].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetID_OBRAValue: Integer; +begin + result := DataTable.Fields[idx_PedidosProveedorID_OBRA].AsInteger; +end; + +procedure TPedidosProveedorDataTableRules.SetID_OBRAValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosProveedorID_OBRA].AsInteger := aValue; +end; + +function TPedidosProveedorDataTableRules.GetID_OBRAIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorID_OBRA].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetID_OBRAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorID_OBRA].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetNOMBRE_OBRAValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedorNOMBRE_OBRA].AsString; +end; + +procedure TPedidosProveedorDataTableRules.SetNOMBRE_OBRAValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedorNOMBRE_OBRA].AsString := aValue; +end; + +function TPedidosProveedorDataTableRules.GetNOMBRE_OBRAIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorNOMBRE_OBRA].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetNOMBRE_OBRAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorNOMBRE_OBRA].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetOBSERVACIONESValue: IROStrings; +begin + result := f_OBSERVACIONES; + result.Text := DataTable.Fields[idx_PedidosProveedorOBSERVACIONES].AsString; +end; + +function TPedidosProveedorDataTableRules.GetOBSERVACIONESIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorOBSERVACIONES].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetOBSERVACIONESIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorOBSERVACIONES].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_PedidosProveedorIMPORTE_TOTAL].AsCurrency; +end; + +procedure TPedidosProveedorDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_PedidosProveedorIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TPedidosProveedorDataTableRules.GetIMPORTE_TOTALIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorIMPORTE_TOTAL].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorIMPORTE_TOTAL].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetINCIDENCIASValue: IROStrings; +begin + result := f_INCIDENCIAS; + result.Text := DataTable.Fields[idx_PedidosProveedorINCIDENCIAS].AsString; +end; + +function TPedidosProveedorDataTableRules.GetINCIDENCIASIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorINCIDENCIAS].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetINCIDENCIASIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorINCIDENCIAS].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetINCIDENCIAS_ACTIVASValue: Integer; +begin + result := DataTable.Fields[idx_PedidosProveedorINCIDENCIAS_ACTIVAS].AsInteger; +end; + +procedure TPedidosProveedorDataTableRules.SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosProveedorINCIDENCIAS_ACTIVAS].AsInteger := aValue; +end; + +function TPedidosProveedorDataTableRules.GetINCIDENCIAS_ACTIVASIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorINCIDENCIAS_ACTIVAS].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetINCIDENCIAS_ACTIVASIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorINCIDENCIAS_ACTIVAS].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetCALLEValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedorCALLE].AsString; +end; + +procedure TPedidosProveedorDataTableRules.SetCALLEValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedorCALLE].AsString := aValue; +end; + +function TPedidosProveedorDataTableRules.GetCALLEIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorCALLE].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetCALLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorCALLE].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetPOBLACIONValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedorPOBLACION].AsString; +end; + +procedure TPedidosProveedorDataTableRules.SetPOBLACIONValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedorPOBLACION].AsString := aValue; +end; + +function TPedidosProveedorDataTableRules.GetPOBLACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorPOBLACION].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetPOBLACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorPOBLACION].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetPROVINCIAValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedorPROVINCIA].AsString; +end; + +procedure TPedidosProveedorDataTableRules.SetPROVINCIAValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedorPROVINCIA].AsString := aValue; +end; + +function TPedidosProveedorDataTableRules.GetPROVINCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorPROVINCIA].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetPROVINCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorPROVINCIA].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetCODIGO_POSTALValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedorCODIGO_POSTAL].AsString; +end; + +procedure TPedidosProveedorDataTableRules.SetCODIGO_POSTALValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedorCODIGO_POSTAL].AsString := aValue; +end; + +function TPedidosProveedorDataTableRules.GetCODIGO_POSTALIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorCODIGO_POSTAL].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetCODIGO_POSTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorCODIGO_POSTAL].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetPERSONA_CONTACTOValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedorPERSONA_CONTACTO].AsString; +end; + +procedure TPedidosProveedorDataTableRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedorPERSONA_CONTACTO].AsString := aValue; +end; + +function TPedidosProveedorDataTableRules.GetPERSONA_CONTACTOIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorPERSONA_CONTACTO].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetPERSONA_CONTACTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorPERSONA_CONTACTO].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetTELEFONOValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedorTELEFONO].AsString; +end; + +procedure TPedidosProveedorDataTableRules.SetTELEFONOValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedorTELEFONO].AsString := aValue; +end; + +function TPedidosProveedorDataTableRules.GetTELEFONOIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorTELEFONO].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetTELEFONOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorTELEFONO].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_PedidosProveedorFECHA_ALTA].AsDateTime; +end; + +procedure TPedidosProveedorDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_PedidosProveedorFECHA_ALTA].AsDateTime := aValue; +end; + +function TPedidosProveedorDataTableRules.GetFECHA_ALTAIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorFECHA_ALTA].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorFECHA_ALTA].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_PedidosProveedorFECHA_MODIFICACION].AsDateTime; +end; + +procedure TPedidosProveedorDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_PedidosProveedorFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TPedidosProveedorDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorFECHA_MODIFICACION].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorFECHA_MODIFICACION].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedorUSUARIO].AsString; +end; + +procedure TPedidosProveedorDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedorUSUARIO].AsString := aValue; +end; + +function TPedidosProveedorDataTableRules.GetUSUARIOIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorUSUARIO].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorUSUARIO].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetID_PEDIDO_CLIENTEValue: Integer; +begin + result := DataTable.Fields[idx_PedidosProveedorID_PEDIDO_CLIENTE].AsInteger; +end; + +procedure TPedidosProveedorDataTableRules.SetID_PEDIDO_CLIENTEValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosProveedorID_PEDIDO_CLIENTE].AsInteger := aValue; +end; + +function TPedidosProveedorDataTableRules.GetID_PEDIDO_CLIENTEIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorID_PEDIDO_CLIENTE].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetID_PEDIDO_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorID_PEDIDO_CLIENTE].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetREF_PED_CLIENTEValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedorREF_PED_CLIENTE].AsString; +end; + +procedure TPedidosProveedorDataTableRules.SetREF_PED_CLIENTEValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedorREF_PED_CLIENTE].AsString := aValue; +end; + +function TPedidosProveedorDataTableRules.GetREF_PED_CLIENTEIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorREF_PED_CLIENTE].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetREF_PED_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorREF_PED_CLIENTE].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetIMPORTE_NETOValue: Currency; +begin + result := DataTable.Fields[idx_PedidosProveedorIMPORTE_NETO].AsCurrency; +end; + +procedure TPedidosProveedorDataTableRules.SetIMPORTE_NETOValue(const aValue: Currency); +begin + DataTable.Fields[idx_PedidosProveedorIMPORTE_NETO].AsCurrency := aValue; +end; + +function TPedidosProveedorDataTableRules.GetIMPORTE_NETOIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorIMPORTE_NETO].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetIMPORTE_NETOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorIMPORTE_NETO].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetIMPORTE_PORTEValue: Currency; +begin + result := DataTable.Fields[idx_PedidosProveedorIMPORTE_PORTE].AsCurrency; +end; + +procedure TPedidosProveedorDataTableRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + DataTable.Fields[idx_PedidosProveedorIMPORTE_PORTE].AsCurrency := aValue; +end; + +function TPedidosProveedorDataTableRules.GetIMPORTE_PORTEIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorIMPORTE_PORTE].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetIMPORTE_PORTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorIMPORTE_PORTE].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_PedidosProveedorDESCUENTO].AsFloat; +end; + +procedure TPedidosProveedorDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_PedidosProveedorDESCUENTO].AsFloat := aValue; +end; + +function TPedidosProveedorDataTableRules.GetDESCUENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorDESCUENTO].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorDESCUENTO].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetIMPORTE_DESCUENTOValue: Currency; +begin + result := DataTable.Fields[idx_PedidosProveedorIMPORTE_DESCUENTO].AsCurrency; +end; + +procedure TPedidosProveedorDataTableRules.SetIMPORTE_DESCUENTOValue(const aValue: Currency); +begin + DataTable.Fields[idx_PedidosProveedorIMPORTE_DESCUENTO].AsCurrency := aValue; +end; + +function TPedidosProveedorDataTableRules.GetIMPORTE_DESCUENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorIMPORTE_DESCUENTO].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetIMPORTE_DESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorIMPORTE_DESCUENTO].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := DataTable.Fields[idx_PedidosProveedorBASE_IMPONIBLE].AsCurrency; +end; + +procedure TPedidosProveedorDataTableRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + DataTable.Fields[idx_PedidosProveedorBASE_IMPONIBLE].AsCurrency := aValue; +end; + +function TPedidosProveedorDataTableRules.GetBASE_IMPONIBLEIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorBASE_IMPONIBLE].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetBASE_IMPONIBLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorBASE_IMPONIBLE].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetIVAValue: Float; +begin + result := DataTable.Fields[idx_PedidosProveedorIVA].AsFloat; +end; + +procedure TPedidosProveedorDataTableRules.SetIVAValue(const aValue: Float); +begin + DataTable.Fields[idx_PedidosProveedorIVA].AsFloat := aValue; +end; + +function TPedidosProveedorDataTableRules.GetIVAIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorIVA].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetIVAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorIVA].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetIMPORTE_IVAValue: Currency; +begin + result := DataTable.Fields[idx_PedidosProveedorIMPORTE_IVA].AsCurrency; +end; + +procedure TPedidosProveedorDataTableRules.SetIMPORTE_IVAValue(const aValue: Currency); +begin + DataTable.Fields[idx_PedidosProveedorIMPORTE_IVA].AsCurrency := aValue; +end; + +function TPedidosProveedorDataTableRules.GetIMPORTE_IVAIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorIMPORTE_IVA].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetIMPORTE_IVAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorIMPORTE_IVA].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetID_FORMA_PAGOValue: Integer; +begin + result := DataTable.Fields[idx_PedidosProveedorID_FORMA_PAGO].AsInteger; +end; + +procedure TPedidosProveedorDataTableRules.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosProveedorID_FORMA_PAGO].AsInteger := aValue; +end; + +function TPedidosProveedorDataTableRules.GetID_FORMA_PAGOIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorID_FORMA_PAGO].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetID_FORMA_PAGOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorID_FORMA_PAGO].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetID_FACTURAValue: Integer; +begin + result := DataTable.Fields[idx_PedidosProveedorID_FACTURA].AsInteger; +end; + +procedure TPedidosProveedorDataTableRules.SetID_FACTURAValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosProveedorID_FACTURA].AsInteger := aValue; +end; + +function TPedidosProveedorDataTableRules.GetID_FACTURAIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorID_FACTURA].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetID_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorID_FACTURA].AsVariant := Null; +end; + +function TPedidosProveedorDataTableRules.GetREF_FACTURA_PROVValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedorREF_FACTURA_PROV].AsString; +end; + +procedure TPedidosProveedorDataTableRules.SetREF_FACTURA_PROVValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedorREF_FACTURA_PROV].AsString := aValue; +end; + +function TPedidosProveedorDataTableRules.GetREF_FACTURA_PROVIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedorREF_FACTURA_PROV].IsNull; +end; + +procedure TPedidosProveedorDataTableRules.SetREF_FACTURA_PROVIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedorREF_FACTURA_PROV].AsVariant := Null; +end; + + +{ TPedidosProveedor_DetallesDataTableRules } +constructor TPedidosProveedor_DetallesDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TPedidosProveedor_DetallesDataTableRules.Destroy; +begin + inherited; +end; + +function TPedidosProveedor_DetallesDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesID].AsInteger; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosProveedor_DetallesID].AsInteger := aValue; +end; + +function TPedidosProveedor_DetallesDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesID].IsNull; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedor_DetallesID].AsVariant := Null; +end; + +function TPedidosProveedor_DetallesDataTableRules.GetID_PEDIDOValue: Integer; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesID_PEDIDO].AsInteger; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetID_PEDIDOValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosProveedor_DetallesID_PEDIDO].AsInteger := aValue; +end; + +function TPedidosProveedor_DetallesDataTableRules.GetID_PEDIDOIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesID_PEDIDO].IsNull; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetID_PEDIDOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedor_DetallesID_PEDIDO].AsVariant := Null; +end; + +function TPedidosProveedor_DetallesDataTableRules.GetPOSICIONValue: Integer; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesPOSICION].AsInteger; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetPOSICIONValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosProveedor_DetallesPOSICION].AsInteger := aValue; +end; + +function TPedidosProveedor_DetallesDataTableRules.GetPOSICIONIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesPOSICION].IsNull; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetPOSICIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedor_DetallesPOSICION].AsVariant := Null; +end; + +function TPedidosProveedor_DetallesDataTableRules.GetTIPO_DETALLEValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesTIPO_DETALLE].AsString; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetTIPO_DETALLEValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedor_DetallesTIPO_DETALLE].AsString := aValue; +end; + +function TPedidosProveedor_DetallesDataTableRules.GetTIPO_DETALLEIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesTIPO_DETALLE].IsNull; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetTIPO_DETALLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedor_DetallesTIPO_DETALLE].AsVariant := Null; +end; + +function TPedidosProveedor_DetallesDataTableRules.GetCONCEPTOValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesCONCEPTO].AsString; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetCONCEPTOValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedor_DetallesCONCEPTO].AsString := aValue; +end; + +function TPedidosProveedor_DetallesDataTableRules.GetCONCEPTOIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesCONCEPTO].IsNull; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetCONCEPTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedor_DetallesCONCEPTO].AsVariant := Null; +end; + +function TPedidosProveedor_DetallesDataTableRules.GetCANTIDADValue: Float; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesCANTIDAD].AsFloat; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetCANTIDADValue(const aValue: Float); +begin + DataTable.Fields[idx_PedidosProveedor_DetallesCANTIDAD].AsFloat := aValue; +end; + +function TPedidosProveedor_DetallesDataTableRules.GetCANTIDADIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesCANTIDAD].IsNull; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetCANTIDADIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedor_DetallesCANTIDAD].AsVariant := Null; +end; + +function TPedidosProveedor_DetallesDataTableRules.GetUNIDAD_MEDIDAValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesUNIDAD_MEDIDA].AsString; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetUNIDAD_MEDIDAValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedor_DetallesUNIDAD_MEDIDA].AsString := aValue; +end; + +function TPedidosProveedor_DetallesDataTableRules.GetUNIDAD_MEDIDAIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesUNIDAD_MEDIDA].IsNull; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedor_DetallesUNIDAD_MEDIDA].AsVariant := Null; +end; + +function TPedidosProveedor_DetallesDataTableRules.GetIMPORTE_UNIDADValue: Currency; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesIMPORTE_UNIDAD].AsCurrency; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetIMPORTE_UNIDADValue(const aValue: Currency); +begin + DataTable.Fields[idx_PedidosProveedor_DetallesIMPORTE_UNIDAD].AsCurrency := aValue; +end; + +function TPedidosProveedor_DetallesDataTableRules.GetIMPORTE_UNIDADIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesIMPORTE_UNIDAD].IsNull; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetIMPORTE_UNIDADIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedor_DetallesIMPORTE_UNIDAD].AsVariant := Null; +end; + +function TPedidosProveedor_DetallesDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesIMPORTE_TOTAL].AsCurrency; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_PedidosProveedor_DetallesIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TPedidosProveedor_DetallesDataTableRules.GetIMPORTE_TOTALIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesIMPORTE_TOTAL].IsNull; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedor_DetallesIMPORTE_TOTAL].AsVariant := Null; +end; + +function TPedidosProveedor_DetallesDataTableRules.GetVISIBLEValue: Integer; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesVISIBLE].AsInteger; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetVISIBLEValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosProveedor_DetallesVISIBLE].AsInteger := aValue; +end; + +function TPedidosProveedor_DetallesDataTableRules.GetVISIBLEIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesVISIBLE].IsNull; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetVISIBLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedor_DetallesVISIBLE].AsVariant := Null; +end; + +function TPedidosProveedor_DetallesDataTableRules.GetID_ARTICULOValue: Integer; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesID_ARTICULO].AsInteger; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetID_ARTICULOValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosProveedor_DetallesID_ARTICULO].AsInteger := aValue; +end; + +function TPedidosProveedor_DetallesDataTableRules.GetID_ARTICULOIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesID_ARTICULO].IsNull; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetID_ARTICULOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedor_DetallesID_ARTICULO].AsVariant := Null; +end; + +function TPedidosProveedor_DetallesDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesDESCUENTO].AsFloat; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_PedidosProveedor_DetallesDESCUENTO].AsFloat := aValue; +end; + +function TPedidosProveedor_DetallesDataTableRules.GetDESCUENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesDESCUENTO].IsNull; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedor_DetallesDESCUENTO].AsVariant := Null; +end; + +function TPedidosProveedor_DetallesDataTableRules.GetIMPORTE_PORTEValue: Currency; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesIMPORTE_PORTE].AsCurrency; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + DataTable.Fields[idx_PedidosProveedor_DetallesIMPORTE_PORTE].AsCurrency := aValue; +end; + +function TPedidosProveedor_DetallesDataTableRules.GetIMPORTE_PORTEIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesIMPORTE_PORTE].IsNull; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetIMPORTE_PORTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedor_DetallesIMPORTE_PORTE].AsVariant := Null; +end; + +function TPedidosProveedor_DetallesDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesREFERENCIA].AsString; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedor_DetallesREFERENCIA].AsString := aValue; +end; + +function TPedidosProveedor_DetallesDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesREFERENCIA].IsNull; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedor_DetallesREFERENCIA].AsVariant := Null; +end; + +function TPedidosProveedor_DetallesDataTableRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesREFERENCIA_PROVEEDOR].AsString; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedor_DetallesREFERENCIA_PROVEEDOR].AsString := aValue; +end; + +function TPedidosProveedor_DetallesDataTableRules.GetREFERENCIA_PROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesREFERENCIA_PROVEEDOR].IsNull; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedor_DetallesREFERENCIA_PROVEEDOR].AsVariant := Null; +end; + +function TPedidosProveedor_DetallesDataTableRules.GetREFERENCIA_FABRICANTEValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesREFERENCIA_FABRICANTE].AsString; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetREFERENCIA_FABRICANTEValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedor_DetallesREFERENCIA_FABRICANTE].AsString := aValue; +end; + +function TPedidosProveedor_DetallesDataTableRules.GetREFERENCIA_FABRICANTEIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedor_DetallesREFERENCIA_FABRICANTE].IsNull; +end; + +procedure TPedidosProveedor_DetallesDataTableRules.SetREFERENCIA_FABRICANTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedor_DetallesREFERENCIA_FABRICANTE].AsVariant := Null; +end; + + +{ TPedidosProveedor_Articulos_PendientesDataTableRules } +constructor TPedidosProveedor_Articulos_PendientesDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TPedidosProveedor_Articulos_PendientesDataTableRules.Destroy; +begin + inherited; +end; + +function TPedidosProveedor_Articulos_PendientesDataTableRules.GetID_PEDIDOValue: Integer; +begin + result := DataTable.Fields[idx_PedidosProveedor_Articulos_PendientesID_PEDIDO].AsInteger; +end; + +procedure TPedidosProveedor_Articulos_PendientesDataTableRules.SetID_PEDIDOValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosProveedor_Articulos_PendientesID_PEDIDO].AsInteger := aValue; +end; + +function TPedidosProveedor_Articulos_PendientesDataTableRules.GetID_PEDIDOIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedor_Articulos_PendientesID_PEDIDO].IsNull; +end; + +procedure TPedidosProveedor_Articulos_PendientesDataTableRules.SetID_PEDIDOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedor_Articulos_PendientesID_PEDIDO].AsVariant := Null; +end; + +function TPedidosProveedor_Articulos_PendientesDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedor_Articulos_PendientesREFERENCIA].AsString; +end; + +procedure TPedidosProveedor_Articulos_PendientesDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedor_Articulos_PendientesREFERENCIA].AsString := aValue; +end; + +function TPedidosProveedor_Articulos_PendientesDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedor_Articulos_PendientesREFERENCIA].IsNull; +end; + +procedure TPedidosProveedor_Articulos_PendientesDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedor_Articulos_PendientesREFERENCIA].AsVariant := Null; +end; + +function TPedidosProveedor_Articulos_PendientesDataTableRules.GetID_ARTICULOValue: Integer; +begin + result := DataTable.Fields[idx_PedidosProveedor_Articulos_PendientesID_ARTICULO].AsInteger; +end; + +procedure TPedidosProveedor_Articulos_PendientesDataTableRules.SetID_ARTICULOValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosProveedor_Articulos_PendientesID_ARTICULO].AsInteger := aValue; +end; + +function TPedidosProveedor_Articulos_PendientesDataTableRules.GetID_ARTICULOIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedor_Articulos_PendientesID_ARTICULO].IsNull; +end; + +procedure TPedidosProveedor_Articulos_PendientesDataTableRules.SetID_ARTICULOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedor_Articulos_PendientesID_ARTICULO].AsVariant := Null; +end; + +function TPedidosProveedor_Articulos_PendientesDataTableRules.GetCONCEPTOValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedor_Articulos_PendientesCONCEPTO].AsString; +end; + +procedure TPedidosProveedor_Articulos_PendientesDataTableRules.SetCONCEPTOValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedor_Articulos_PendientesCONCEPTO].AsString := aValue; +end; + +function TPedidosProveedor_Articulos_PendientesDataTableRules.GetCONCEPTOIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedor_Articulos_PendientesCONCEPTO].IsNull; +end; + +procedure TPedidosProveedor_Articulos_PendientesDataTableRules.SetCONCEPTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedor_Articulos_PendientesCONCEPTO].AsVariant := Null; +end; + +function TPedidosProveedor_Articulos_PendientesDataTableRules.GetCANTIDADValue: Float; +begin + result := DataTable.Fields[idx_PedidosProveedor_Articulos_PendientesCANTIDAD].AsFloat; +end; + +procedure TPedidosProveedor_Articulos_PendientesDataTableRules.SetCANTIDADValue(const aValue: Float); +begin + DataTable.Fields[idx_PedidosProveedor_Articulos_PendientesCANTIDAD].AsFloat := aValue; +end; + +function TPedidosProveedor_Articulos_PendientesDataTableRules.GetCANTIDADIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedor_Articulos_PendientesCANTIDAD].IsNull; +end; + +procedure TPedidosProveedor_Articulos_PendientesDataTableRules.SetCANTIDADIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedor_Articulos_PendientesCANTIDAD].AsVariant := Null; +end; + +function TPedidosProveedor_Articulos_PendientesDataTableRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_PedidosProveedor_Articulos_PendientesREFERENCIA_PROVEEDOR].AsString; +end; + +procedure TPedidosProveedor_Articulos_PendientesDataTableRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosProveedor_Articulos_PendientesREFERENCIA_PROVEEDOR].AsString := aValue; +end; + +function TPedidosProveedor_Articulos_PendientesDataTableRules.GetREFERENCIA_PROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosProveedor_Articulos_PendientesREFERENCIA_PROVEEDOR].IsNull; +end; + +procedure TPedidosProveedor_Articulos_PendientesDataTableRules.SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosProveedor_Articulos_PendientesREFERENCIA_PROVEEDOR].AsVariant := Null; +end; + + +initialization + RegisterDataTableRules(RID_ListaAnosPedidos, TListaAnosPedidosDataTableRules); + RegisterDataTableRules(RID_PedidosProveedor, TPedidosProveedorDataTableRules); + RegisterDataTableRules(RID_PedidosProveedor_Detalles, TPedidosProveedor_DetallesDataTableRules); + RegisterDataTableRules(RID_PedidosProveedor_Articulos_Pendientes, TPedidosProveedor_Articulos_PendientesDataTableRules); + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorServer_Intf.dcu b/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorServer_Intf.dcu new file mode 100644 index 0000000..2cd9df6 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorServer_Intf.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorServer_Intf.pas b/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorServer_Intf.pas new file mode 100644 index 0000000..a1a250d --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorServer_Intf.pas @@ -0,0 +1,2976 @@ +unit schPedidosProveedorServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schPedidosProveedorClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_ListaAnosPedidosDelta = '{7413239D-F923-4D2D-885F-4083C7008226}'; + RID_PedidosProveedorDelta = '{D1505641-F1C6-4565-823C-F14DC964DDC6}'; + RID_PedidosProveedor_DetallesDelta = '{E1572661-F1D9-4902-A018-60E27BF71613}'; + RID_PedidosProveedor_Articulos_PendientesDelta = '{C1F7A9E2-4E27-4594-90D6-A830EBA65AF2}'; + +type + { IListaAnosPedidosDelta } + IListaAnosPedidosDelta = interface(IListaAnosPedidos) + ['{7413239D-F923-4D2D-885F-4083C7008226}'] + { Property getters and setters } + function GetOldANOValue : String; + + { Properties } + property OldANO : String read GetOldANOValue; + end; + + { TListaAnosPedidosBusinessProcessorRules } + TListaAnosPedidosBusinessProcessorRules = class(TDABusinessProcessorRules, IListaAnosPedidos, IListaAnosPedidosDelta) + private + protected + { Property getters and setters } + function GetANOValue: String; virtual; + function GetANOIsNull: Boolean; virtual; + function GetOldANOValue: String; virtual; + function GetOldANOIsNull: Boolean; virtual; + procedure SetANOValue(const aValue: String); virtual; + procedure SetANOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ANO : String read GetANOValue write SetANOValue; + property ANOIsNull : Boolean read GetANOIsNull write SetANOIsNull; + property OldANO : String read GetOldANOValue; + property OldANOIsNull : Boolean read GetOldANOIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IPedidosProveedorDelta } + IPedidosProveedorDelta = interface(IPedidosProveedor) + ['{D1505641-F1C6-4565-823C-F14DC964DDC6}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldID_PROVEEDORValue : Integer; + function GetOldNOMBREValue : String; + function GetOldID_DIRECCIONValue : Integer; + function GetOldPERSONA_CONTACTO_PROVValue : String; + function GetOldREFERENCIAValue : String; + function GetOldSITUACIONValue : String; + function GetOldFECHA_ENVIOValue : DateTime; + function GetOldFECHA_PEDIDOValue : DateTime; + function GetOldFECHA_CONFIRMACIONValue : DateTime; + function GetOldFECHA_ENTREGAValue : DateTime; + function GetOldID_ALMACENValue : Integer; + function GetOldTIPO_ALMACENValue : String; + function GetOldNOMBRE_ALMACENValue : String; + function GetOldID_OBRAValue : Integer; + function GetOldNOMBRE_OBRAValue : String; + function GetOldOBSERVACIONESValue : IROStrings; + function GetOldIMPORTE_TOTALValue : Currency; + function GetOldINCIDENCIASValue : IROStrings; + function GetOldINCIDENCIAS_ACTIVASValue : Integer; + function GetOldCALLEValue : String; + function GetOldPOBLACIONValue : String; + function GetOldPROVINCIAValue : String; + function GetOldCODIGO_POSTALValue : String; + function GetOldPERSONA_CONTACTOValue : String; + function GetOldTELEFONOValue : String; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + function GetOldUSUARIOValue : String; + function GetOldID_PEDIDO_CLIENTEValue : Integer; + function GetOldREF_PED_CLIENTEValue : String; + function GetOldIMPORTE_NETOValue : Currency; + function GetOldIMPORTE_PORTEValue : Currency; + function GetOldDESCUENTOValue : Float; + function GetOldIMPORTE_DESCUENTOValue : Currency; + function GetOldBASE_IMPONIBLEValue : Currency; + function GetOldIVAValue : Float; + function GetOldIMPORTE_IVAValue : Currency; + function GetOldID_FORMA_PAGOValue : Integer; + function GetOldID_FACTURAValue : Integer; + function GetOldREF_FACTURA_PROVValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldID_DIRECCION : Integer read GetOldID_DIRECCIONValue; + property OldPERSONA_CONTACTO_PROV : String read GetOldPERSONA_CONTACTO_PROVValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldSITUACION : String read GetOldSITUACIONValue; + property OldFECHA_ENVIO : DateTime read GetOldFECHA_ENVIOValue; + property OldFECHA_PEDIDO : DateTime read GetOldFECHA_PEDIDOValue; + property OldFECHA_CONFIRMACION : DateTime read GetOldFECHA_CONFIRMACIONValue; + property OldFECHA_ENTREGA : DateTime read GetOldFECHA_ENTREGAValue; + property OldID_ALMACEN : Integer read GetOldID_ALMACENValue; + property OldTIPO_ALMACEN : String read GetOldTIPO_ALMACENValue; + property OldNOMBRE_ALMACEN : String read GetOldNOMBRE_ALMACENValue; + property OldID_OBRA : Integer read GetOldID_OBRAValue; + property OldNOMBRE_OBRA : String read GetOldNOMBRE_OBRAValue; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldINCIDENCIAS : IROStrings read GetOldINCIDENCIASValue; + property OldINCIDENCIAS_ACTIVAS : Integer read GetOldINCIDENCIAS_ACTIVASValue; + property OldCALLE : String read GetOldCALLEValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property OldTELEFONO : String read GetOldTELEFONOValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldID_PEDIDO_CLIENTE : Integer read GetOldID_PEDIDO_CLIENTEValue; + property OldREF_PED_CLIENTE : String read GetOldREF_PED_CLIENTEValue; + property OldIMPORTE_NETO : Currency read GetOldIMPORTE_NETOValue; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldIMPORTE_DESCUENTO : Currency read GetOldIMPORTE_DESCUENTOValue; + property OldBASE_IMPONIBLE : Currency read GetOldBASE_IMPONIBLEValue; + property OldIVA : Float read GetOldIVAValue; + property OldIMPORTE_IVA : Currency read GetOldIMPORTE_IVAValue; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property OldREF_FACTURA_PROV : String read GetOldREF_FACTURA_PROVValue; + end; + + { TPedidosProveedorBusinessProcessorRules } + TPedidosProveedorBusinessProcessorRules = class(TDABusinessProcessorRules, IPedidosProveedor, IPedidosProveedorDelta) + private + f_OBSERVACIONES: IROStrings; + f_INCIDENCIAS: IROStrings; + procedure OBSERVACIONES_OnChange(Sender: TObject); + procedure INCIDENCIAS_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + function GetID_PROVEEDORIsNull: Boolean; virtual; + function GetOldID_PROVEEDORValue: Integer; virtual; + function GetOldID_PROVEEDORIsNull: Boolean; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + function GetNOMBREIsNull: Boolean; virtual; + function GetOldNOMBREValue: String; virtual; + function GetOldNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetID_DIRECCIONValue: Integer; virtual; + function GetID_DIRECCIONIsNull: Boolean; virtual; + function GetOldID_DIRECCIONValue: Integer; virtual; + function GetOldID_DIRECCIONIsNull: Boolean; virtual; + procedure SetID_DIRECCIONValue(const aValue: Integer); virtual; + procedure SetID_DIRECCIONIsNull(const aValue: Boolean); virtual; + function GetPERSONA_CONTACTO_PROVValue: String; virtual; + function GetPERSONA_CONTACTO_PROVIsNull: Boolean; virtual; + function GetOldPERSONA_CONTACTO_PROVValue: String; virtual; + function GetOldPERSONA_CONTACTO_PROVIsNull: Boolean; virtual; + procedure SetPERSONA_CONTACTO_PROVValue(const aValue: String); virtual; + procedure SetPERSONA_CONTACTO_PROVIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetSITUACIONValue: String; virtual; + function GetSITUACIONIsNull: Boolean; virtual; + function GetOldSITUACIONValue: String; virtual; + function GetOldSITUACIONIsNull: Boolean; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + procedure SetSITUACIONIsNull(const aValue: Boolean); virtual; + function GetFECHA_ENVIOValue: DateTime; virtual; + function GetFECHA_ENVIOIsNull: Boolean; virtual; + function GetOldFECHA_ENVIOValue: DateTime; virtual; + function GetOldFECHA_ENVIOIsNull: Boolean; virtual; + procedure SetFECHA_ENVIOValue(const aValue: DateTime); virtual; + procedure SetFECHA_ENVIOIsNull(const aValue: Boolean); virtual; + function GetFECHA_PEDIDOValue: DateTime; virtual; + function GetFECHA_PEDIDOIsNull: Boolean; virtual; + function GetOldFECHA_PEDIDOValue: DateTime; virtual; + function GetOldFECHA_PEDIDOIsNull: Boolean; virtual; + procedure SetFECHA_PEDIDOValue(const aValue: DateTime); virtual; + procedure SetFECHA_PEDIDOIsNull(const aValue: Boolean); virtual; + function GetFECHA_CONFIRMACIONValue: DateTime; virtual; + function GetFECHA_CONFIRMACIONIsNull: Boolean; virtual; + function GetOldFECHA_CONFIRMACIONValue: DateTime; virtual; + function GetOldFECHA_CONFIRMACIONIsNull: Boolean; virtual; + procedure SetFECHA_CONFIRMACIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_CONFIRMACIONIsNull(const aValue: Boolean); virtual; + function GetFECHA_ENTREGAValue: DateTime; virtual; + function GetFECHA_ENTREGAIsNull: Boolean; virtual; + function GetOldFECHA_ENTREGAValue: DateTime; virtual; + function GetOldFECHA_ENTREGAIsNull: Boolean; virtual; + procedure SetFECHA_ENTREGAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ENTREGAIsNull(const aValue: Boolean); virtual; + function GetID_ALMACENValue: Integer; virtual; + function GetID_ALMACENIsNull: Boolean; virtual; + function GetOldID_ALMACENValue: Integer; virtual; + function GetOldID_ALMACENIsNull: Boolean; virtual; + procedure SetID_ALMACENValue(const aValue: Integer); virtual; + procedure SetID_ALMACENIsNull(const aValue: Boolean); virtual; + function GetTIPO_ALMACENValue: String; virtual; + function GetTIPO_ALMACENIsNull: Boolean; virtual; + function GetOldTIPO_ALMACENValue: String; virtual; + function GetOldTIPO_ALMACENIsNull: Boolean; virtual; + procedure SetTIPO_ALMACENValue(const aValue: String); virtual; + procedure SetTIPO_ALMACENIsNull(const aValue: Boolean); virtual; + function GetNOMBRE_ALMACENValue: String; virtual; + function GetNOMBRE_ALMACENIsNull: Boolean; virtual; + function GetOldNOMBRE_ALMACENValue: String; virtual; + function GetOldNOMBRE_ALMACENIsNull: Boolean; virtual; + procedure SetNOMBRE_ALMACENValue(const aValue: String); virtual; + procedure SetNOMBRE_ALMACENIsNull(const aValue: Boolean); virtual; + function GetID_OBRAValue: Integer; virtual; + function GetID_OBRAIsNull: Boolean; virtual; + function GetOldID_OBRAValue: Integer; virtual; + function GetOldID_OBRAIsNull: Boolean; virtual; + procedure SetID_OBRAValue(const aValue: Integer); virtual; + procedure SetID_OBRAIsNull(const aValue: Boolean); virtual; + function GetNOMBRE_OBRAValue: String; virtual; + function GetNOMBRE_OBRAIsNull: Boolean; virtual; + function GetOldNOMBRE_OBRAValue: String; virtual; + function GetOldNOMBRE_OBRAIsNull: Boolean; virtual; + procedure SetNOMBRE_OBRAValue(const aValue: String); virtual; + procedure SetNOMBRE_OBRAIsNull(const aValue: Boolean); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + function GetOBSERVACIONESIsNull: Boolean; virtual; + function GetOldOBSERVACIONESValue: IROStrings; virtual; + function GetOldOBSERVACIONESIsNull: Boolean; virtual; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetINCIDENCIASValue: IROStrings; virtual; + function GetINCIDENCIASIsNull: Boolean; virtual; + function GetOldINCIDENCIASValue: IROStrings; virtual; + function GetOldINCIDENCIASIsNull: Boolean; virtual; + procedure SetINCIDENCIASIsNull(const aValue: Boolean); virtual; + function GetINCIDENCIAS_ACTIVASValue: Integer; virtual; + function GetINCIDENCIAS_ACTIVASIsNull: Boolean; virtual; + function GetOldINCIDENCIAS_ACTIVASValue: Integer; virtual; + function GetOldINCIDENCIAS_ACTIVASIsNull: Boolean; virtual; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); virtual; + procedure SetINCIDENCIAS_ACTIVASIsNull(const aValue: Boolean); virtual; + function GetCALLEValue: String; virtual; + function GetCALLEIsNull: Boolean; virtual; + function GetOldCALLEValue: String; virtual; + function GetOldCALLEIsNull: Boolean; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + procedure SetCALLEIsNull(const aValue: Boolean); virtual; + function GetPOBLACIONValue: String; virtual; + function GetPOBLACIONIsNull: Boolean; virtual; + function GetOldPOBLACIONValue: String; virtual; + function GetOldPOBLACIONIsNull: Boolean; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual; + function GetPROVINCIAValue: String; virtual; + function GetPROVINCIAIsNull: Boolean; virtual; + function GetOldPROVINCIAValue: String; virtual; + function GetOldPROVINCIAIsNull: Boolean; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetCODIGO_POSTALIsNull: Boolean; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALIsNull: Boolean; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + function GetPERSONA_CONTACTOIsNull: Boolean; virtual; + function GetOldPERSONA_CONTACTOValue: String; virtual; + function GetOldPERSONA_CONTACTOIsNull: Boolean; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); virtual; + function GetTELEFONOValue: String; virtual; + function GetTELEFONOIsNull: Boolean; virtual; + function GetOldTELEFONOValue: String; virtual; + function GetOldTELEFONOIsNull: Boolean; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + procedure SetTELEFONOIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + function GetUSUARIOIsNull: Boolean; virtual; + function GetOldUSUARIOValue: String; virtual; + function GetOldUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetID_PEDIDO_CLIENTEValue: Integer; virtual; + function GetID_PEDIDO_CLIENTEIsNull: Boolean; virtual; + function GetOldID_PEDIDO_CLIENTEValue: Integer; virtual; + function GetOldID_PEDIDO_CLIENTEIsNull: Boolean; virtual; + procedure SetID_PEDIDO_CLIENTEValue(const aValue: Integer); virtual; + procedure SetID_PEDIDO_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetREF_PED_CLIENTEValue: String; virtual; + function GetREF_PED_CLIENTEIsNull: Boolean; virtual; + function GetOldREF_PED_CLIENTEValue: String; virtual; + function GetOldREF_PED_CLIENTEIsNull: Boolean; virtual; + procedure SetREF_PED_CLIENTEValue(const aValue: String); virtual; + procedure SetREF_PED_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + function GetIMPORTE_NETOIsNull: Boolean; virtual; + function GetOldIMPORTE_NETOValue: Currency; virtual; + function GetOldIMPORTE_NETOIsNull: Boolean; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + procedure SetIMPORTE_NETOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + function GetIMPORTE_PORTEIsNull: Boolean; virtual; + function GetOldIMPORTE_PORTEValue: Currency; virtual; + function GetOldIMPORTE_PORTEIsNull: Boolean; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + function GetOldDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + function GetIMPORTE_DESCUENTOIsNull: Boolean; virtual; + function GetOldIMPORTE_DESCUENTOValue: Currency; virtual; + function GetOldIMPORTE_DESCUENTOIsNull: Boolean; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + procedure SetIMPORTE_DESCUENTOIsNull(const aValue: Boolean); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + function GetBASE_IMPONIBLEIsNull: Boolean; virtual; + function GetOldBASE_IMPONIBLEValue: Currency; virtual; + function GetOldBASE_IMPONIBLEIsNull: Boolean; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + procedure SetBASE_IMPONIBLEIsNull(const aValue: Boolean); virtual; + function GetIVAValue: Float; virtual; + function GetIVAIsNull: Boolean; virtual; + function GetOldIVAValue: Float; virtual; + function GetOldIVAIsNull: Boolean; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + procedure SetIVAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + function GetIMPORTE_IVAIsNull: Boolean; virtual; + function GetOldIMPORTE_IVAValue: Currency; virtual; + function GetOldIMPORTE_IVAIsNull: Boolean; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + procedure SetIMPORTE_IVAIsNull(const aValue: Boolean); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + function GetID_FORMA_PAGOIsNull: Boolean; virtual; + function GetOldID_FORMA_PAGOValue: Integer; virtual; + function GetOldID_FORMA_PAGOIsNull: Boolean; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + procedure SetID_FORMA_PAGOIsNull(const aValue: Boolean); virtual; + function GetID_FACTURAValue: Integer; virtual; + function GetID_FACTURAIsNull: Boolean; virtual; + function GetOldID_FACTURAValue: Integer; virtual; + function GetOldID_FACTURAIsNull: Boolean; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + procedure SetID_FACTURAIsNull(const aValue: Boolean); virtual; + function GetREF_FACTURA_PROVValue: String; virtual; + function GetREF_FACTURA_PROVIsNull: Boolean; virtual; + function GetOldREF_FACTURA_PROVValue: String; virtual; + function GetOldREF_FACTURA_PROVIsNull: Boolean; virtual; + procedure SetREF_FACTURA_PROVValue(const aValue: String); virtual; + procedure SetREF_FACTURA_PROVIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull : Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_EMPRESAIsNull : Boolean read GetOldID_EMPRESAIsNull; + property ID_PROVEEDOR : Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull : Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property OldID_PROVEEDORIsNull : Boolean read GetOldID_PROVEEDORIsNull; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull : Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldNOMBREIsNull : Boolean read GetOldNOMBREIsNull; + property ID_DIRECCION : Integer read GetID_DIRECCIONValue write SetID_DIRECCIONValue; + property ID_DIRECCIONIsNull : Boolean read GetID_DIRECCIONIsNull write SetID_DIRECCIONIsNull; + property OldID_DIRECCION : Integer read GetOldID_DIRECCIONValue; + property OldID_DIRECCIONIsNull : Boolean read GetOldID_DIRECCIONIsNull; + property PERSONA_CONTACTO_PROV : String read GetPERSONA_CONTACTO_PROVValue write SetPERSONA_CONTACTO_PROVValue; + property PERSONA_CONTACTO_PROVIsNull : Boolean read GetPERSONA_CONTACTO_PROVIsNull write SetPERSONA_CONTACTO_PROVIsNull; + property OldPERSONA_CONTACTO_PROV : String read GetOldPERSONA_CONTACTO_PROVValue; + property OldPERSONA_CONTACTO_PROVIsNull : Boolean read GetOldPERSONA_CONTACTO_PROVIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue; + property SITUACIONIsNull : Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull; + property OldSITUACION : String read GetOldSITUACIONValue; + property OldSITUACIONIsNull : Boolean read GetOldSITUACIONIsNull; + property FECHA_ENVIO : DateTime read GetFECHA_ENVIOValue write SetFECHA_ENVIOValue; + property FECHA_ENVIOIsNull : Boolean read GetFECHA_ENVIOIsNull write SetFECHA_ENVIOIsNull; + property OldFECHA_ENVIO : DateTime read GetOldFECHA_ENVIOValue; + property OldFECHA_ENVIOIsNull : Boolean read GetOldFECHA_ENVIOIsNull; + property FECHA_PEDIDO : DateTime read GetFECHA_PEDIDOValue write SetFECHA_PEDIDOValue; + property FECHA_PEDIDOIsNull : Boolean read GetFECHA_PEDIDOIsNull write SetFECHA_PEDIDOIsNull; + property OldFECHA_PEDIDO : DateTime read GetOldFECHA_PEDIDOValue; + property OldFECHA_PEDIDOIsNull : Boolean read GetOldFECHA_PEDIDOIsNull; + property FECHA_CONFIRMACION : DateTime read GetFECHA_CONFIRMACIONValue write SetFECHA_CONFIRMACIONValue; + property FECHA_CONFIRMACIONIsNull : Boolean read GetFECHA_CONFIRMACIONIsNull write SetFECHA_CONFIRMACIONIsNull; + property OldFECHA_CONFIRMACION : DateTime read GetOldFECHA_CONFIRMACIONValue; + property OldFECHA_CONFIRMACIONIsNull : Boolean read GetOldFECHA_CONFIRMACIONIsNull; + property FECHA_ENTREGA : DateTime read GetFECHA_ENTREGAValue write SetFECHA_ENTREGAValue; + property FECHA_ENTREGAIsNull : Boolean read GetFECHA_ENTREGAIsNull write SetFECHA_ENTREGAIsNull; + property OldFECHA_ENTREGA : DateTime read GetOldFECHA_ENTREGAValue; + property OldFECHA_ENTREGAIsNull : Boolean read GetOldFECHA_ENTREGAIsNull; + property ID_ALMACEN : Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property ID_ALMACENIsNull : Boolean read GetID_ALMACENIsNull write SetID_ALMACENIsNull; + property OldID_ALMACEN : Integer read GetOldID_ALMACENValue; + property OldID_ALMACENIsNull : Boolean read GetOldID_ALMACENIsNull; + property TIPO_ALMACEN : String read GetTIPO_ALMACENValue write SetTIPO_ALMACENValue; + property TIPO_ALMACENIsNull : Boolean read GetTIPO_ALMACENIsNull write SetTIPO_ALMACENIsNull; + property OldTIPO_ALMACEN : String read GetOldTIPO_ALMACENValue; + property OldTIPO_ALMACENIsNull : Boolean read GetOldTIPO_ALMACENIsNull; + property NOMBRE_ALMACEN : String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property NOMBRE_ALMACENIsNull : Boolean read GetNOMBRE_ALMACENIsNull write SetNOMBRE_ALMACENIsNull; + property OldNOMBRE_ALMACEN : String read GetOldNOMBRE_ALMACENValue; + property OldNOMBRE_ALMACENIsNull : Boolean read GetOldNOMBRE_ALMACENIsNull; + property ID_OBRA : Integer read GetID_OBRAValue write SetID_OBRAValue; + property ID_OBRAIsNull : Boolean read GetID_OBRAIsNull write SetID_OBRAIsNull; + property OldID_OBRA : Integer read GetOldID_OBRAValue; + property OldID_OBRAIsNull : Boolean read GetOldID_OBRAIsNull; + property NOMBRE_OBRA : String read GetNOMBRE_OBRAValue write SetNOMBRE_OBRAValue; + property NOMBRE_OBRAIsNull : Boolean read GetNOMBRE_OBRAIsNull write SetNOMBRE_OBRAIsNull; + property OldNOMBRE_OBRA : String read GetOldNOMBRE_OBRAValue; + property OldNOMBRE_OBRAIsNull : Boolean read GetOldNOMBRE_OBRAIsNull; + property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue; + property OBSERVACIONESIsNull : Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property OldOBSERVACIONESIsNull : Boolean read GetOldOBSERVACIONESIsNull; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull : Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldIMPORTE_TOTALIsNull : Boolean read GetOldIMPORTE_TOTALIsNull; + property INCIDENCIAS : IROStrings read GetINCIDENCIASValue; + property INCIDENCIASIsNull : Boolean read GetINCIDENCIASIsNull write SetINCIDENCIASIsNull; + property OldINCIDENCIAS : IROStrings read GetOldINCIDENCIASValue; + property OldINCIDENCIASIsNull : Boolean read GetOldINCIDENCIASIsNull; + property INCIDENCIAS_ACTIVAS : Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property INCIDENCIAS_ACTIVASIsNull : Boolean read GetINCIDENCIAS_ACTIVASIsNull write SetINCIDENCIAS_ACTIVASIsNull; + property OldINCIDENCIAS_ACTIVAS : Integer read GetOldINCIDENCIAS_ACTIVASValue; + property OldINCIDENCIAS_ACTIVASIsNull : Boolean read GetOldINCIDENCIAS_ACTIVASIsNull; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull : Boolean read GetCALLEIsNull write SetCALLEIsNull; + property OldCALLE : String read GetOldCALLEValue; + property OldCALLEIsNull : Boolean read GetOldCALLEIsNull; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull : Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property OldPOBLACIONIsNull : Boolean read GetOldPOBLACIONIsNull; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull : Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property OldPROVINCIAIsNull : Boolean read GetOldPROVINCIAIsNull; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull : Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property OldCODIGO_POSTALIsNull : Boolean read GetOldCODIGO_POSTALIsNull; + property PERSONA_CONTACTO : String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull : Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property OldPERSONA_CONTACTOIsNull : Boolean read GetOldPERSONA_CONTACTOIsNull; + property TELEFONO : String read GetTELEFONOValue write SetTELEFONOValue; + property TELEFONOIsNull : Boolean read GetTELEFONOIsNull write SetTELEFONOIsNull; + property OldTELEFONO : String read GetOldTELEFONOValue; + property OldTELEFONOIsNull : Boolean read GetOldTELEFONOIsNull; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull : Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_ALTAIsNull : Boolean read GetOldFECHA_ALTAIsNull; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull : Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldUSUARIOIsNull : Boolean read GetOldUSUARIOIsNull; + property ID_PEDIDO_CLIENTE : Integer read GetID_PEDIDO_CLIENTEValue write SetID_PEDIDO_CLIENTEValue; + property ID_PEDIDO_CLIENTEIsNull : Boolean read GetID_PEDIDO_CLIENTEIsNull write SetID_PEDIDO_CLIENTEIsNull; + property OldID_PEDIDO_CLIENTE : Integer read GetOldID_PEDIDO_CLIENTEValue; + property OldID_PEDIDO_CLIENTEIsNull : Boolean read GetOldID_PEDIDO_CLIENTEIsNull; + property REF_PED_CLIENTE : String read GetREF_PED_CLIENTEValue write SetREF_PED_CLIENTEValue; + property REF_PED_CLIENTEIsNull : Boolean read GetREF_PED_CLIENTEIsNull write SetREF_PED_CLIENTEIsNull; + property OldREF_PED_CLIENTE : String read GetOldREF_PED_CLIENTEValue; + property OldREF_PED_CLIENTEIsNull : Boolean read GetOldREF_PED_CLIENTEIsNull; + property IMPORTE_NETO : Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_NETOIsNull : Boolean read GetIMPORTE_NETOIsNull write SetIMPORTE_NETOIsNull; + property OldIMPORTE_NETO : Currency read GetOldIMPORTE_NETOValue; + property OldIMPORTE_NETOIsNull : Boolean read GetOldIMPORTE_NETOIsNull; + property IMPORTE_PORTE : Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull : Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property OldIMPORTE_PORTEIsNull : Boolean read GetOldIMPORTE_PORTEIsNull; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull : Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldDESCUENTOIsNull : Boolean read GetOldDESCUENTOIsNull; + property IMPORTE_DESCUENTO : Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property IMPORTE_DESCUENTOIsNull : Boolean read GetIMPORTE_DESCUENTOIsNull write SetIMPORTE_DESCUENTOIsNull; + property OldIMPORTE_DESCUENTO : Currency read GetOldIMPORTE_DESCUENTOValue; + property OldIMPORTE_DESCUENTOIsNull : Boolean read GetOldIMPORTE_DESCUENTOIsNull; + property BASE_IMPONIBLE : Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property BASE_IMPONIBLEIsNull : Boolean read GetBASE_IMPONIBLEIsNull write SetBASE_IMPONIBLEIsNull; + property OldBASE_IMPONIBLE : Currency read GetOldBASE_IMPONIBLEValue; + property OldBASE_IMPONIBLEIsNull : Boolean read GetOldBASE_IMPONIBLEIsNull; + property IVA : Float read GetIVAValue write SetIVAValue; + property IVAIsNull : Boolean read GetIVAIsNull write SetIVAIsNull; + property OldIVA : Float read GetOldIVAValue; + property OldIVAIsNull : Boolean read GetOldIVAIsNull; + property IMPORTE_IVA : Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property IMPORTE_IVAIsNull : Boolean read GetIMPORTE_IVAIsNull write SetIMPORTE_IVAIsNull; + property OldIMPORTE_IVA : Currency read GetOldIMPORTE_IVAValue; + property OldIMPORTE_IVAIsNull : Boolean read GetOldIMPORTE_IVAIsNull; + property ID_FORMA_PAGO : Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property ID_FORMA_PAGOIsNull : Boolean read GetID_FORMA_PAGOIsNull write SetID_FORMA_PAGOIsNull; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + property OldID_FORMA_PAGOIsNull : Boolean read GetOldID_FORMA_PAGOIsNull; + property ID_FACTURA : Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull : Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property OldID_FACTURAIsNull : Boolean read GetOldID_FACTURAIsNull; + property REF_FACTURA_PROV : String read GetREF_FACTURA_PROVValue write SetREF_FACTURA_PROVValue; + property REF_FACTURA_PROVIsNull : Boolean read GetREF_FACTURA_PROVIsNull write SetREF_FACTURA_PROVIsNull; + property OldREF_FACTURA_PROV : String read GetOldREF_FACTURA_PROVValue; + property OldREF_FACTURA_PROVIsNull : Boolean read GetOldREF_FACTURA_PROVIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IPedidosProveedor_DetallesDelta } + IPedidosProveedor_DetallesDelta = interface(IPedidosProveedor_Detalles) + ['{E1572661-F1D9-4902-A018-60E27BF71613}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_PEDIDOValue : Integer; + function GetOldPOSICIONValue : Integer; + function GetOldTIPO_DETALLEValue : String; + function GetOldCONCEPTOValue : String; + function GetOldCANTIDADValue : Float; + function GetOldUNIDAD_MEDIDAValue : String; + function GetOldIMPORTE_UNIDADValue : Currency; + function GetOldIMPORTE_TOTALValue : Currency; + function GetOldVISIBLEValue : Integer; + function GetOldID_ARTICULOValue : Integer; + function GetOldDESCUENTOValue : Float; + function GetOldIMPORTE_PORTEValue : Currency; + function GetOldREFERENCIAValue : String; + function GetOldREFERENCIA_PROVEEDORValue : String; + function GetOldREFERENCIA_FABRICANTEValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue; + property OldPOSICION : Integer read GetOldPOSICIONValue; + property OldTIPO_DETALLE : String read GetOldTIPO_DETALLEValue; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property OldCANTIDAD : Float read GetOldCANTIDADValue; + property OldUNIDAD_MEDIDA : String read GetOldUNIDAD_MEDIDAValue; + property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + property OldREFERENCIA_FABRICANTE : String read GetOldREFERENCIA_FABRICANTEValue; + end; + + { TPedidosProveedor_DetallesBusinessProcessorRules } + TPedidosProveedor_DetallesBusinessProcessorRules = class(TDABusinessProcessorRules, IPedidosProveedor_Detalles, IPedidosProveedor_DetallesDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_PEDIDOValue: Integer; virtual; + function GetID_PEDIDOIsNull: Boolean; virtual; + function GetOldID_PEDIDOValue: Integer; virtual; + function GetOldID_PEDIDOIsNull: Boolean; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + procedure SetID_PEDIDOIsNull(const aValue: Boolean); virtual; + function GetPOSICIONValue: Integer; virtual; + function GetPOSICIONIsNull: Boolean; virtual; + function GetOldPOSICIONValue: Integer; virtual; + function GetOldPOSICIONIsNull: Boolean; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + procedure SetPOSICIONIsNull(const aValue: Boolean); virtual; + function GetTIPO_DETALLEValue: String; virtual; + function GetTIPO_DETALLEIsNull: Boolean; virtual; + function GetOldTIPO_DETALLEValue: String; virtual; + function GetOldTIPO_DETALLEIsNull: Boolean; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + procedure SetTIPO_DETALLEIsNull(const aValue: Boolean); virtual; + function GetCONCEPTOValue: String; virtual; + function GetCONCEPTOIsNull: Boolean; virtual; + function GetOldCONCEPTOValue: String; virtual; + function GetOldCONCEPTOIsNull: Boolean; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + procedure SetCONCEPTOIsNull(const aValue: Boolean); virtual; + function GetCANTIDADValue: Float; virtual; + function GetCANTIDADIsNull: Boolean; virtual; + function GetOldCANTIDADValue: Float; virtual; + function GetOldCANTIDADIsNull: Boolean; virtual; + procedure SetCANTIDADValue(const aValue: Float); virtual; + procedure SetCANTIDADIsNull(const aValue: Boolean); virtual; + function GetUNIDAD_MEDIDAValue: String; virtual; + function GetUNIDAD_MEDIDAIsNull: Boolean; virtual; + function GetOldUNIDAD_MEDIDAValue: String; virtual; + function GetOldUNIDAD_MEDIDAIsNull: Boolean; virtual; + procedure SetUNIDAD_MEDIDAValue(const aValue: String); virtual; + procedure SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_UNIDADValue: Currency; virtual; + function GetIMPORTE_UNIDADIsNull: Boolean; virtual; + function GetOldIMPORTE_UNIDADValue: Currency; virtual; + function GetOldIMPORTE_UNIDADIsNull: Boolean; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual; + procedure SetIMPORTE_UNIDADIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetVISIBLEValue: Integer; virtual; + function GetVISIBLEIsNull: Boolean; virtual; + function GetOldVISIBLEValue: Integer; virtual; + function GetOldVISIBLEIsNull: Boolean; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + procedure SetVISIBLEIsNull(const aValue: Boolean); virtual; + function GetID_ARTICULOValue: Integer; virtual; + function GetID_ARTICULOIsNull: Boolean; virtual; + function GetOldID_ARTICULOValue: Integer; virtual; + function GetOldID_ARTICULOIsNull: Boolean; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + function GetOldDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + function GetIMPORTE_PORTEIsNull: Boolean; virtual; + function GetOldIMPORTE_PORTEValue: Currency; virtual; + function GetOldIMPORTE_PORTEIsNull: Boolean; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + function GetREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + function GetOldREFERENCIA_PROVEEDORValue: String; virtual; + function GetOldREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_FABRICANTEValue: String; virtual; + function GetREFERENCIA_FABRICANTEIsNull: Boolean; virtual; + function GetOldREFERENCIA_FABRICANTEValue: String; virtual; + function GetOldREFERENCIA_FABRICANTEIsNull: Boolean; virtual; + procedure SetREFERENCIA_FABRICANTEValue(const aValue: String); virtual; + procedure SetREFERENCIA_FABRICANTEIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_PEDIDO : Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property ID_PEDIDOIsNull : Boolean read GetID_PEDIDOIsNull write SetID_PEDIDOIsNull; + property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue; + property OldID_PEDIDOIsNull : Boolean read GetOldID_PEDIDOIsNull; + property POSICION : Integer read GetPOSICIONValue write SetPOSICIONValue; + property POSICIONIsNull : Boolean read GetPOSICIONIsNull write SetPOSICIONIsNull; + property OldPOSICION : Integer read GetOldPOSICIONValue; + property OldPOSICIONIsNull : Boolean read GetOldPOSICIONIsNull; + property TIPO_DETALLE : String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property TIPO_DETALLEIsNull : Boolean read GetTIPO_DETALLEIsNull write SetTIPO_DETALLEIsNull; + property OldTIPO_DETALLE : String read GetOldTIPO_DETALLEValue; + property OldTIPO_DETALLEIsNull : Boolean read GetOldTIPO_DETALLEIsNull; + property CONCEPTO : String read GetCONCEPTOValue write SetCONCEPTOValue; + property CONCEPTOIsNull : Boolean read GetCONCEPTOIsNull write SetCONCEPTOIsNull; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property OldCONCEPTOIsNull : Boolean read GetOldCONCEPTOIsNull; + property CANTIDAD : Float read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDADIsNull : Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; + property OldCANTIDAD : Float read GetOldCANTIDADValue; + property OldCANTIDADIsNull : Boolean read GetOldCANTIDADIsNull; + property UNIDAD_MEDIDA : String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue; + property UNIDAD_MEDIDAIsNull : Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull; + property OldUNIDAD_MEDIDA : String read GetOldUNIDAD_MEDIDAValue; + property OldUNIDAD_MEDIDAIsNull : Boolean read GetOldUNIDAD_MEDIDAIsNull; + property IMPORTE_UNIDAD : Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_UNIDADIsNull : Boolean read GetIMPORTE_UNIDADIsNull write SetIMPORTE_UNIDADIsNull; + property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue; + property OldIMPORTE_UNIDADIsNull : Boolean read GetOldIMPORTE_UNIDADIsNull; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull : Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldIMPORTE_TOTALIsNull : Boolean read GetOldIMPORTE_TOTALIsNull; + property VISIBLE : Integer read GetVISIBLEValue write SetVISIBLEValue; + property VISIBLEIsNull : Boolean read GetVISIBLEIsNull write SetVISIBLEIsNull; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property OldVISIBLEIsNull : Boolean read GetOldVISIBLEIsNull; + property ID_ARTICULO : Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull : Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldID_ARTICULOIsNull : Boolean read GetOldID_ARTICULOIsNull; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull : Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldDESCUENTOIsNull : Boolean read GetOldDESCUENTOIsNull; + property IMPORTE_PORTE : Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull : Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property OldIMPORTE_PORTEIsNull : Boolean read GetOldIMPORTE_PORTEIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property REFERENCIA_PROVEEDOR : String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull : Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + property OldREFERENCIA_PROVEEDORIsNull : Boolean read GetOldREFERENCIA_PROVEEDORIsNull; + property REFERENCIA_FABRICANTE : String read GetREFERENCIA_FABRICANTEValue write SetREFERENCIA_FABRICANTEValue; + property REFERENCIA_FABRICANTEIsNull : Boolean read GetREFERENCIA_FABRICANTEIsNull write SetREFERENCIA_FABRICANTEIsNull; + property OldREFERENCIA_FABRICANTE : String read GetOldREFERENCIA_FABRICANTEValue; + property OldREFERENCIA_FABRICANTEIsNull : Boolean read GetOldREFERENCIA_FABRICANTEIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IPedidosProveedor_Articulos_PendientesDelta } + IPedidosProveedor_Articulos_PendientesDelta = interface(IPedidosProveedor_Articulos_Pendientes) + ['{C1F7A9E2-4E27-4594-90D6-A830EBA65AF2}'] + { Property getters and setters } + function GetOldID_PEDIDOValue : Integer; + function GetOldREFERENCIAValue : String; + function GetOldID_ARTICULOValue : Integer; + function GetOldCONCEPTOValue : String; + function GetOldCANTIDADValue : Float; + function GetOldREFERENCIA_PROVEEDORValue : String; + + { Properties } + property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property OldCANTIDAD : Float read GetOldCANTIDADValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + end; + + { TPedidosProveedor_Articulos_PendientesBusinessProcessorRules } + TPedidosProveedor_Articulos_PendientesBusinessProcessorRules = class(TDABusinessProcessorRules, IPedidosProveedor_Articulos_Pendientes, IPedidosProveedor_Articulos_PendientesDelta) + private + protected + { Property getters and setters } + function GetID_PEDIDOValue: Integer; virtual; + function GetID_PEDIDOIsNull: Boolean; virtual; + function GetOldID_PEDIDOValue: Integer; virtual; + function GetOldID_PEDIDOIsNull: Boolean; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + procedure SetID_PEDIDOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetID_ARTICULOValue: Integer; virtual; + function GetID_ARTICULOIsNull: Boolean; virtual; + function GetOldID_ARTICULOValue: Integer; virtual; + function GetOldID_ARTICULOIsNull: Boolean; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); virtual; + function GetCONCEPTOValue: String; virtual; + function GetCONCEPTOIsNull: Boolean; virtual; + function GetOldCONCEPTOValue: String; virtual; + function GetOldCONCEPTOIsNull: Boolean; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + procedure SetCONCEPTOIsNull(const aValue: Boolean); virtual; + function GetCANTIDADValue: Float; virtual; + function GetCANTIDADIsNull: Boolean; virtual; + function GetOldCANTIDADValue: Float; virtual; + function GetOldCANTIDADIsNull: Boolean; virtual; + procedure SetCANTIDADValue(const aValue: Float); virtual; + procedure SetCANTIDADIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + function GetREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + function GetOldREFERENCIA_PROVEEDORValue: String; virtual; + function GetOldREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID_PEDIDO : Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property ID_PEDIDOIsNull : Boolean read GetID_PEDIDOIsNull write SetID_PEDIDOIsNull; + property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue; + property OldID_PEDIDOIsNull : Boolean read GetOldID_PEDIDOIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property ID_ARTICULO : Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull : Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldID_ARTICULOIsNull : Boolean read GetOldID_ARTICULOIsNull; + property CONCEPTO : String read GetCONCEPTOValue write SetCONCEPTOValue; + property CONCEPTOIsNull : Boolean read GetCONCEPTOIsNull write SetCONCEPTOIsNull; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property OldCONCEPTOIsNull : Boolean read GetOldCONCEPTOIsNull; + property CANTIDAD : Float read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDADIsNull : Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; + property OldCANTIDAD : Float read GetOldCANTIDADValue; + property OldCANTIDADIsNull : Boolean read GetOldCANTIDADIsNull; + property REFERENCIA_PROVEEDOR : String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull : Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + property OldREFERENCIA_PROVEEDORIsNull : Boolean read GetOldREFERENCIA_PROVEEDORIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers, uDAInterfaces; + +{ TListaAnosPedidosBusinessProcessorRules } +constructor TListaAnosPedidosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TListaAnosPedidosBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TListaAnosPedidosBusinessProcessorRules.GetANOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosPedidosANO]; +end; + +function TListaAnosPedidosBusinessProcessorRules.GetANOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosPedidosANO]); +end; + +function TListaAnosPedidosBusinessProcessorRules.GetOldANOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaAnosPedidosANO]; +end; + +function TListaAnosPedidosBusinessProcessorRules.GetOldANOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ListaAnosPedidosANO]); +end; + +procedure TListaAnosPedidosBusinessProcessorRules.SetANOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosPedidosANO] := aValue; +end; + +procedure TListaAnosPedidosBusinessProcessorRules.SetANOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosPedidosANO] := Null; +end; + + +{ TPedidosProveedorBusinessProcessorRules } +constructor TPedidosProveedorBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := OBSERVACIONES_OnChange; + f_OBSERVACIONES := NewROStrings(StrList,True); + + StrList := TStringList.Create; + StrList.OnChange := INCIDENCIAS_OnChange; + f_INCIDENCIAS := NewROStrings(StrList,True); +end; + +destructor TPedidosProveedorBusinessProcessorRules.Destroy; +begin + inherited; +end; + +procedure TPedidosProveedorBusinessProcessorRules.OBSERVACIONES_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorOBSERVACIONES] := TStringList(Sender).Text; +end; + +procedure TPedidosProveedorBusinessProcessorRules.INCIDENCIAS_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorINCIDENCIAS] := TStringList(Sender).Text; +end; + +function TPedidosProveedorBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorID]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorID]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_EMPRESA]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_EMPRESA]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorID_EMPRESA]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorID_EMPRESA]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_EMPRESA] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_EMPRESA] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_PROVEEDOR]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetID_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_PROVEEDOR]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorID_PROVEEDOR]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldID_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorID_PROVEEDOR]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_PROVEEDOR] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetID_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_PROVEEDOR] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorNOMBRE]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorNOMBRE]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorNOMBRE]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorNOMBRE]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorNOMBRE] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorNOMBRE] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetID_DIRECCIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_DIRECCION]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetID_DIRECCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_DIRECCION]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldID_DIRECCIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorID_DIRECCION]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldID_DIRECCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorID_DIRECCION]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetID_DIRECCIONValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_DIRECCION] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetID_DIRECCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_DIRECCION] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetPERSONA_CONTACTO_PROVValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorPERSONA_CONTACTO_PROV]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetPERSONA_CONTACTO_PROVIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorPERSONA_CONTACTO_PROV]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldPERSONA_CONTACTO_PROVValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorPERSONA_CONTACTO_PROV]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldPERSONA_CONTACTO_PROVIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorPERSONA_CONTACTO_PROV]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetPERSONA_CONTACTO_PROVValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorPERSONA_CONTACTO_PROV] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetPERSONA_CONTACTO_PROVIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorPERSONA_CONTACTO_PROV] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorREFERENCIA]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorREFERENCIA]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorREFERENCIA]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorREFERENCIA]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorREFERENCIA] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorREFERENCIA] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorSITUACION]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetSITUACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorSITUACION]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorSITUACION]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldSITUACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorSITUACION]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetSITUACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorSITUACION] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetSITUACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorSITUACION] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetFECHA_ENVIOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_ENVIO]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetFECHA_ENVIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_ENVIO]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldFECHA_ENVIOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorFECHA_ENVIO]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldFECHA_ENVIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorFECHA_ENVIO]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetFECHA_ENVIOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_ENVIO] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetFECHA_ENVIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_ENVIO] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetFECHA_PEDIDOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_PEDIDO]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetFECHA_PEDIDOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_PEDIDO]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldFECHA_PEDIDOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorFECHA_PEDIDO]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldFECHA_PEDIDOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorFECHA_PEDIDO]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetFECHA_PEDIDOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_PEDIDO] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetFECHA_PEDIDOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_PEDIDO] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetFECHA_CONFIRMACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_CONFIRMACION]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetFECHA_CONFIRMACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_CONFIRMACION]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldFECHA_CONFIRMACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorFECHA_CONFIRMACION]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldFECHA_CONFIRMACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorFECHA_CONFIRMACION]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetFECHA_CONFIRMACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_CONFIRMACION] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetFECHA_CONFIRMACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_CONFIRMACION] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetFECHA_ENTREGAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_ENTREGA]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetFECHA_ENTREGAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_ENTREGA]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldFECHA_ENTREGAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorFECHA_ENTREGA]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldFECHA_ENTREGAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorFECHA_ENTREGA]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetFECHA_ENTREGAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_ENTREGA] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetFECHA_ENTREGAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_ENTREGA] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetID_ALMACENValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_ALMACEN]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetID_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_ALMACEN]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldID_ALMACENValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorID_ALMACEN]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldID_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorID_ALMACEN]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetID_ALMACENValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_ALMACEN] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetID_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_ALMACEN] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetTIPO_ALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorTIPO_ALMACEN]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetTIPO_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorTIPO_ALMACEN]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldTIPO_ALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorTIPO_ALMACEN]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldTIPO_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorTIPO_ALMACEN]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetTIPO_ALMACENValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorTIPO_ALMACEN] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetTIPO_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorTIPO_ALMACEN] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetNOMBRE_ALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorNOMBRE_ALMACEN]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetNOMBRE_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorNOMBRE_ALMACEN]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldNOMBRE_ALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorNOMBRE_ALMACEN]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldNOMBRE_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorNOMBRE_ALMACEN]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetNOMBRE_ALMACENValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorNOMBRE_ALMACEN] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetNOMBRE_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorNOMBRE_ALMACEN] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetID_OBRAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_OBRA]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetID_OBRAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_OBRA]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldID_OBRAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorID_OBRA]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldID_OBRAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorID_OBRA]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetID_OBRAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_OBRA] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetID_OBRAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_OBRA] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetNOMBRE_OBRAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorNOMBRE_OBRA]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetNOMBRE_OBRAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorNOMBRE_OBRA]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldNOMBRE_OBRAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorNOMBRE_OBRA]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldNOMBRE_OBRAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorNOMBRE_OBRA]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetNOMBRE_OBRAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorNOMBRE_OBRA] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetNOMBRE_OBRAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorNOMBRE_OBRA] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings; +begin + result := f_OBSERVACIONES; + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorOBSERVACIONES]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOBSERVACIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorOBSERVACIONES]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorOBSERVACIONES]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldOBSERVACIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorOBSERVACIONES]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetOBSERVACIONESIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorOBSERVACIONES] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIMPORTE_TOTAL]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIMPORTE_TOTAL]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorIMPORTE_TOTAL]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorIMPORTE_TOTAL]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIMPORTE_TOTAL] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIMPORTE_TOTAL] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetINCIDENCIASValue: IROStrings; +begin + result := f_INCIDENCIAS; + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorINCIDENCIAS]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetINCIDENCIASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorINCIDENCIAS]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldINCIDENCIASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorINCIDENCIAS]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldINCIDENCIASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorINCIDENCIAS]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetINCIDENCIASIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorINCIDENCIAS] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetINCIDENCIAS_ACTIVASValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorINCIDENCIAS_ACTIVAS]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetINCIDENCIAS_ACTIVASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorINCIDENCIAS_ACTIVAS]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldINCIDENCIAS_ACTIVASValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorINCIDENCIAS_ACTIVAS]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldINCIDENCIAS_ACTIVASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorINCIDENCIAS_ACTIVAS]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorINCIDENCIAS_ACTIVAS] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetINCIDENCIAS_ACTIVASIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorINCIDENCIAS_ACTIVAS] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorCALLE]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorCALLE]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorCALLE]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorCALLE]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorCALLE] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetCALLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorCALLE] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorPOBLACION]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorPOBLACION]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorPOBLACION]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorPOBLACION]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorPOBLACION] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetPOBLACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorPOBLACION] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorPROVINCIA]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorPROVINCIA]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorPROVINCIA]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorPROVINCIA]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorPROVINCIA] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetPROVINCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorPROVINCIA] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorCODIGO_POSTAL]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorCODIGO_POSTAL]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorCODIGO_POSTAL]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorCODIGO_POSTAL]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorCODIGO_POSTAL] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetCODIGO_POSTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorCODIGO_POSTAL] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorPERSONA_CONTACTO]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetPERSONA_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorPERSONA_CONTACTO]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorPERSONA_CONTACTO]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldPERSONA_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorPERSONA_CONTACTO]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorPERSONA_CONTACTO] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetPERSONA_CONTACTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorPERSONA_CONTACTO] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorTELEFONO]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetTELEFONOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorTELEFONO]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorTELEFONO]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldTELEFONOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorTELEFONO]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetTELEFONOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorTELEFONO] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetTELEFONOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorTELEFONO] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_ALTA]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_ALTA]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorFECHA_ALTA]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorFECHA_ALTA]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_ALTA] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_ALTA] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_MODIFICACION]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_MODIFICACION]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorFECHA_MODIFICACION]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorFECHA_MODIFICACION]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_MODIFICACION] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHA_MODIFICACION] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorUSUARIO]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorUSUARIO]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorUSUARIO]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorUSUARIO]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorUSUARIO] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorUSUARIO] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetID_PEDIDO_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_PEDIDO_CLIENTE]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetID_PEDIDO_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_PEDIDO_CLIENTE]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldID_PEDIDO_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorID_PEDIDO_CLIENTE]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldID_PEDIDO_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorID_PEDIDO_CLIENTE]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetID_PEDIDO_CLIENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_PEDIDO_CLIENTE] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetID_PEDIDO_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_PEDIDO_CLIENTE] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetREF_PED_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorREF_PED_CLIENTE]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetREF_PED_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorREF_PED_CLIENTE]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldREF_PED_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorREF_PED_CLIENTE]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldREF_PED_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorREF_PED_CLIENTE]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetREF_PED_CLIENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorREF_PED_CLIENTE] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetREF_PED_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorREF_PED_CLIENTE] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIMPORTE_NETO]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetIMPORTE_NETOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIMPORTE_NETO]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorIMPORTE_NETO]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldIMPORTE_NETOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorIMPORTE_NETO]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetIMPORTE_NETOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIMPORTE_NETO] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetIMPORTE_NETOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIMPORTE_NETO] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIMPORTE_PORTE]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetIMPORTE_PORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIMPORTE_PORTE]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorIMPORTE_PORTE]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldIMPORTE_PORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorIMPORTE_PORTE]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIMPORTE_PORTE] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetIMPORTE_PORTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIMPORTE_PORTE] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorDESCUENTO]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorDESCUENTO]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorDESCUENTO]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorDESCUENTO]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorDESCUENTO] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorDESCUENTO] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIMPORTE_DESCUENTO]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetIMPORTE_DESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIMPORTE_DESCUENTO]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorIMPORTE_DESCUENTO]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldIMPORTE_DESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorIMPORTE_DESCUENTO]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetIMPORTE_DESCUENTOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIMPORTE_DESCUENTO] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetIMPORTE_DESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIMPORTE_DESCUENTO] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorBASE_IMPONIBLE]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetBASE_IMPONIBLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorBASE_IMPONIBLE]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorBASE_IMPONIBLE]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldBASE_IMPONIBLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorBASE_IMPONIBLE]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorBASE_IMPONIBLE] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetBASE_IMPONIBLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorBASE_IMPONIBLE] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIVA]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetIVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIVA]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorIVA]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldIVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorIVA]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetIVAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIVA] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetIVAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIVA] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIMPORTE_IVA]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetIMPORTE_IVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIMPORTE_IVA]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorIMPORTE_IVA]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldIMPORTE_IVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorIMPORTE_IVA]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetIMPORTE_IVAValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIMPORTE_IVA] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetIMPORTE_IVAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIMPORTE_IVA] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_FORMA_PAGO]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetID_FORMA_PAGOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_FORMA_PAGO]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorID_FORMA_PAGO]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldID_FORMA_PAGOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorID_FORMA_PAGO]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_FORMA_PAGO] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetID_FORMA_PAGOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_FORMA_PAGO] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_FACTURA]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetID_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_FACTURA]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorID_FACTURA]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldID_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorID_FACTURA]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetID_FACTURAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_FACTURA] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetID_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorID_FACTURA] := Null; +end; + +function TPedidosProveedorBusinessProcessorRules.GetREF_FACTURA_PROVValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorREF_FACTURA_PROV]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetREF_FACTURA_PROVIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorREF_FACTURA_PROV]); +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldREF_FACTURA_PROVValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorREF_FACTURA_PROV]; +end; + +function TPedidosProveedorBusinessProcessorRules.GetOldREF_FACTURA_PROVIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorREF_FACTURA_PROV]); +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetREF_FACTURA_PROVValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorREF_FACTURA_PROV] := aValue; +end; + +procedure TPedidosProveedorBusinessProcessorRules.SetREF_FACTURA_PROVIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorREF_FACTURA_PROV] := Null; +end; + + +{ TPedidosProveedor_DetallesBusinessProcessorRules } +constructor TPedidosProveedor_DetallesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TPedidosProveedor_DetallesBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesID]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesID]); +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesID]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesID]); +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesID] := aValue; +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesID] := Null; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetID_PEDIDOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesID_PEDIDO]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetID_PEDIDOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesID_PEDIDO]); +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldID_PEDIDOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesID_PEDIDO]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldID_PEDIDOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesID_PEDIDO]); +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetID_PEDIDOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesID_PEDIDO] := aValue; +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetID_PEDIDOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesID_PEDIDO] := Null; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesPOSICION]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetPOSICIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesPOSICION]); +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesPOSICION]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldPOSICIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesPOSICION]); +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetPOSICIONValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesPOSICION] := aValue; +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetPOSICIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesPOSICION] := Null; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetTIPO_DETALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesTIPO_DETALLE]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetTIPO_DETALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesTIPO_DETALLE]); +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldTIPO_DETALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesTIPO_DETALLE]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldTIPO_DETALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesTIPO_DETALLE]); +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetTIPO_DETALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesTIPO_DETALLE] := aValue; +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetTIPO_DETALLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesTIPO_DETALLE] := Null; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesCONCEPTO]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetCONCEPTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesCONCEPTO]); +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesCONCEPTO]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldCONCEPTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesCONCEPTO]); +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetCONCEPTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesCONCEPTO] := aValue; +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetCONCEPTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesCONCEPTO] := Null; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetCANTIDADValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesCANTIDAD]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetCANTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesCANTIDAD]); +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldCANTIDADValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesCANTIDAD]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldCANTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesCANTIDAD]); +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetCANTIDADValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesCANTIDAD] := aValue; +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetCANTIDADIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesCANTIDAD] := Null; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetUNIDAD_MEDIDAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesUNIDAD_MEDIDA]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetUNIDAD_MEDIDAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesUNIDAD_MEDIDA]); +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldUNIDAD_MEDIDAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesUNIDAD_MEDIDA]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldUNIDAD_MEDIDAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesUNIDAD_MEDIDA]); +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetUNIDAD_MEDIDAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesUNIDAD_MEDIDA] := aValue; +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesUNIDAD_MEDIDA] := Null; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetIMPORTE_UNIDADValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesIMPORTE_UNIDAD]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetIMPORTE_UNIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesIMPORTE_UNIDAD]); +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldIMPORTE_UNIDADValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesIMPORTE_UNIDAD]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldIMPORTE_UNIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesIMPORTE_UNIDAD]); +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetIMPORTE_UNIDADValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesIMPORTE_UNIDAD] := aValue; +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetIMPORTE_UNIDADIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesIMPORTE_UNIDAD] := Null; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesIMPORTE_TOTAL]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesIMPORTE_TOTAL]); +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesIMPORTE_TOTAL]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesIMPORTE_TOTAL]); +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesIMPORTE_TOTAL] := aValue; +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesIMPORTE_TOTAL] := Null; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesVISIBLE]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetVISIBLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesVISIBLE]); +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesVISIBLE]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldVISIBLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesVISIBLE]); +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetVISIBLEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesVISIBLE] := aValue; +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetVISIBLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesVISIBLE] := Null; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesID_ARTICULO]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetID_ARTICULOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesID_ARTICULO]); +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesID_ARTICULO]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldID_ARTICULOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesID_ARTICULO]); +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetID_ARTICULOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesID_ARTICULO] := aValue; +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetID_ARTICULOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesID_ARTICULO] := Null; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesDESCUENTO]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesDESCUENTO]); +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesDESCUENTO]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesDESCUENTO]); +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesDESCUENTO] := aValue; +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesDESCUENTO] := Null; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesIMPORTE_PORTE]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetIMPORTE_PORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesIMPORTE_PORTE]); +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesIMPORTE_PORTE]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldIMPORTE_PORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesIMPORTE_PORTE]); +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesIMPORTE_PORTE] := aValue; +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetIMPORTE_PORTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesIMPORTE_PORTE] := Null; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesREFERENCIA]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesREFERENCIA]); +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesREFERENCIA]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesREFERENCIA]); +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesREFERENCIA] := aValue; +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesREFERENCIA] := Null; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesREFERENCIA_PROVEEDOR]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetREFERENCIA_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesREFERENCIA_PROVEEDOR]); +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesREFERENCIA_PROVEEDOR]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesREFERENCIA_PROVEEDOR]); +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesREFERENCIA_PROVEEDOR] := aValue; +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesREFERENCIA_PROVEEDOR] := Null; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetREFERENCIA_FABRICANTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesREFERENCIA_FABRICANTE]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetREFERENCIA_FABRICANTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesREFERENCIA_FABRICANTE]); +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldREFERENCIA_FABRICANTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesREFERENCIA_FABRICANTE]; +end; + +function TPedidosProveedor_DetallesBusinessProcessorRules.GetOldREFERENCIA_FABRICANTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_DetallesREFERENCIA_FABRICANTE]); +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetREFERENCIA_FABRICANTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesREFERENCIA_FABRICANTE] := aValue; +end; + +procedure TPedidosProveedor_DetallesBusinessProcessorRules.SetREFERENCIA_FABRICANTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_DetallesREFERENCIA_FABRICANTE] := Null; +end; + + +{ TPedidosProveedor_Articulos_PendientesBusinessProcessorRules } +constructor TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.GetID_PEDIDOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Articulos_PendientesID_PEDIDO]; +end; + +function TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.GetID_PEDIDOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Articulos_PendientesID_PEDIDO]); +end; + +function TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.GetOldID_PEDIDOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_Articulos_PendientesID_PEDIDO]; +end; + +function TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.GetOldID_PEDIDOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_Articulos_PendientesID_PEDIDO]); +end; + +procedure TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.SetID_PEDIDOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Articulos_PendientesID_PEDIDO] := aValue; +end; + +procedure TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.SetID_PEDIDOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Articulos_PendientesID_PEDIDO] := Null; +end; + +function TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Articulos_PendientesREFERENCIA]; +end; + +function TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Articulos_PendientesREFERENCIA]); +end; + +function TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_Articulos_PendientesREFERENCIA]; +end; + +function TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_Articulos_PendientesREFERENCIA]); +end; + +procedure TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Articulos_PendientesREFERENCIA] := aValue; +end; + +procedure TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Articulos_PendientesREFERENCIA] := Null; +end; + +function TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.GetID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Articulos_PendientesID_ARTICULO]; +end; + +function TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.GetID_ARTICULOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Articulos_PendientesID_ARTICULO]); +end; + +function TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.GetOldID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_Articulos_PendientesID_ARTICULO]; +end; + +function TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.GetOldID_ARTICULOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_Articulos_PendientesID_ARTICULO]); +end; + +procedure TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.SetID_ARTICULOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Articulos_PendientesID_ARTICULO] := aValue; +end; + +procedure TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.SetID_ARTICULOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Articulos_PendientesID_ARTICULO] := Null; +end; + +function TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.GetCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Articulos_PendientesCONCEPTO]; +end; + +function TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.GetCONCEPTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Articulos_PendientesCONCEPTO]); +end; + +function TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.GetOldCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_Articulos_PendientesCONCEPTO]; +end; + +function TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.GetOldCONCEPTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_Articulos_PendientesCONCEPTO]); +end; + +procedure TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.SetCONCEPTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Articulos_PendientesCONCEPTO] := aValue; +end; + +procedure TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.SetCONCEPTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Articulos_PendientesCONCEPTO] := Null; +end; + +function TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.GetCANTIDADValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Articulos_PendientesCANTIDAD]; +end; + +function TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.GetCANTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Articulos_PendientesCANTIDAD]); +end; + +function TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.GetOldCANTIDADValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_Articulos_PendientesCANTIDAD]; +end; + +function TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.GetOldCANTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_Articulos_PendientesCANTIDAD]); +end; + +procedure TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.SetCANTIDADValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Articulos_PendientesCANTIDAD] := aValue; +end; + +procedure TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.SetCANTIDADIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Articulos_PendientesCANTIDAD] := Null; +end; + +function TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Articulos_PendientesREFERENCIA_PROVEEDOR]; +end; + +function TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.GetREFERENCIA_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Articulos_PendientesREFERENCIA_PROVEEDOR]); +end; + +function TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_Articulos_PendientesREFERENCIA_PROVEEDOR]; +end; + +function TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedor_Articulos_PendientesREFERENCIA_PROVEEDOR]); +end; + +procedure TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Articulos_PendientesREFERENCIA_PROVEEDOR] := aValue; +end; + +procedure TPedidosProveedor_Articulos_PendientesBusinessProcessorRules.SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedor_Articulos_PendientesREFERENCIA_PROVEEDOR] := Null; +end; + + +initialization + RegisterBusinessProcessorRules(RID_ListaAnosPedidosDelta, TListaAnosPedidosBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_PedidosProveedorDelta, TPedidosProveedorBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_PedidosProveedor_DetallesDelta, TPedidosProveedor_DetallesBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_PedidosProveedor_Articulos_PendientesDelta, TPedidosProveedor_Articulos_PendientesBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Model/uBizDetallesPedidoProveedor.dcu b/Source/Modulos/Pedidos a proveedor/Model/uBizDetallesPedidoProveedor.dcu new file mode 100644 index 0000000..0b2d367 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Model/uBizDetallesPedidoProveedor.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Model/uBizDetallesPedidoProveedor.pas b/Source/Modulos/Pedidos a proveedor/Model/uBizDetallesPedidoProveedor.pas new file mode 100644 index 0000000..16b9a35 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Model/uBizDetallesPedidoProveedor.pas @@ -0,0 +1,56 @@ +unit uBizDetallesPedidoProveedor; + +interface + +uses + uDADataTable, schPedidosProveedorClient_Intf; + +const + BIZ_CLIENT_DETALLES_PEDIDO_PROVEEDOR = 'Client.DetallesPedido.Proveedor'; + BIZ_CLIENT_DETALLES_PEDIDO_PROVEEDOR_PEND = 'Client.DetallesPedido.Pendientes'; + +type + IBizDetallesPedidoProveedor = interface(IPedidosProveedor_Detalles) + ['{F868D8B0-18F9-469A-8461-3B1DADCC3B33}'] + end; + + IBizDetallesPedidoProveedorPend = interface(IPedidosProveedor_Articulos_Pendientes) + ['{0BE0236B-D58B-41CA-B939-8338875D4CF4}'] + end; + + TBizDetallesPedidoProveedor = class(TPedidosProveedor_DetallesDataTableRules, IBizDetallesPedidoProveedor) + protected + procedure OnNewRecord(Sender: TDADataTable); override; + procedure BeforeInsert(Sender: TDADataTable); override; + end; + + TBizDetallesPedidoProveedorPend = class(TPedidosProveedor_Articulos_PendientesDataTableRules, IBizDetallesPedidoProveedorPend) + end; + +implementation + +{ TBizDetallesPedidoProveedor } + +uses + uDataTableUtils, DB; + +procedure TBizDetallesPedidoProveedor.BeforeInsert(Sender: TDADataTable); +var + AMasterTable : TDADataTable; +begin + inherited; + AMasterTable := DataTable.GetMasterDataTable; + if Assigned(AMasterTable) and (AMasterTable.State = dsInsert) then + AMasterTable.Post; +end; + +procedure TBizDetallesPedidoProveedor.OnNewRecord(Sender: TDADataTable); +begin + inherited; + VISIBLE := 1; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_DETALLES_PEDIDO_PROVEEDOR, TBizDetallesPedidoProveedor); + RegisterDataTableRules(BIZ_CLIENT_DETALLES_PEDIDO_PROVEEDOR_PEND, TBizDetallesPedidoProveedorPend); +end. diff --git a/Source/Modulos/Pedidos a proveedor/Model/uBizPedidosProveedor.dcu b/Source/Modulos/Pedidos a proveedor/Model/uBizPedidosProveedor.dcu new file mode 100644 index 0000000..d00b2ed Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Model/uBizPedidosProveedor.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Model/uBizPedidosProveedor.pas b/Source/Modulos/Pedidos a proveedor/Model/uBizPedidosProveedor.pas new file mode 100644 index 0000000..295a87a --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Model/uBizPedidosProveedor.pas @@ -0,0 +1,337 @@ +unit uBizPedidosProveedor; + +interface + +uses + Classes, uDADataTable, uDAInterfaces, uROClasses, + schPedidosProveedorClient_Intf, uDBSelectionListUtils, + uBizContactos, uBizDetallesPedidoProveedor; + +const + BIZ_CLIENT_PEDIDO_PROVEEDOR = 'Client.PedidoProveedor'; + + SITUACION_PEDIDO_PENDIENTE = 'PENDIENTE'; + SITUACION_PEDIDO_PARCIAL = 'PARCIAL'; + SITUACION_PEDIDO_RECIBIDO = 'RECIBIDO'; + +type + IBizPedidoProveedor = interface(IPedidosProveedor) + ['{513FE06A-48B8-4FA6-8D1D-0DD48EAD9352}'] + + procedure SetProveedor(AValue : IBizProveedor); + function GetProveedor : IBizProveedor; + property Proveedor : IBizProveedor read GetProveedor write SetProveedor; + + // Esta propidad es para que el controlador pueda acceder directamente + // a la propiedad Proveedor + procedure _SetProveedor(AValue : IBizProveedor); + function _GetProveedor : IBizProveedor; + property _Proveedor : IBizProveedor read _GetProveedor write _SetProveedor; + + function GetDetalles: IBizDetallesPedidoProveedor; + procedure SetDetalles(Value: IBizDetallesPedidoProveedor); + property Detalles: IBizDetallesPedidoProveedor read GetDetalles write SetDetalles; + + function EsNuevo : Boolean; + function DarListaSituaciones: TStringList; + end; + + TBizPedidoProveedor = class(TPedidosProveedorDataTableRules, IBizPedidoProveedor, ISeleccionable) + private + procedure CalcularBaseImponible; + procedure CalcularIVA; + protected + FSeleccionableInterface : ISeleccionable; + FProveedor : IBizProveedor; + FDetalles : IBizDetallesPedidoProveedor; + FDetallesLink : TDADataSource; + + procedure SetProveedor(AValue : IBizProveedor); + function GetProveedor : IBizProveedor; + + procedure _SetProveedor(AValue : IBizProveedor); + function _GetProveedor : IBizProveedor; + + function GetDetalles: IBizDetallesPedidoProveedor; + procedure SetDetalles(Value: IBizDetallesPedidoProveedor); + + procedure SetFECHA_ENVIOValue(const aValue: TDateTime); override; + procedure SetFECHA_CONFIRMACIONValue(const aValue: TDateTime); override; + procedure SetFECHA_ENTREGAValue(const aValue: TDateTime); override; + procedure SetFECHA_PEDIDOValue(const aValue: TDateTime); override; + procedure SetID_PEDIDO_CLIENTEValue(const aValue: Integer); override; +// procedure SetINCIDENCIASValue(const aValue: IROStrings); override; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); override; + procedure SetID_FACTURAValue(const aValue: Integer); override; + + procedure IMPORTE_NETOOnChange(Sender: TDACustomField); + procedure IMPORTE_PORTEOnChange(Sender: TDACustomField); + procedure DESCUENTOOnChange(Sender: TDACustomField); + procedure IVAOnChange(Sender: TDACustomField); + + procedure OnNewRecord(Sender: TDADataTable); override; + procedure IniciarValoresPedidoNuevo; + + public + procedure CalcularImporteTotal; + function DarListaSituaciones: TStringList; + function EsNuevo : Boolean; + property Proveedor : IBizProveedor read GetProveedor write SetProveedor; + property _Proveedor : IBizProveedor read _GetProveedor write _SetProveedor; + + property Detalles: IBizDetallesPedidoProveedor read GetDetalles write SetDetalles; + + property SeleccionableInterface : ISeleccionable read FSeleccionableInterface + write FSeleccionableInterface implements ISeleccionable; + + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + end; + +implementation + +uses + SysUtils, Variants, uDataModuleConfiguracion, uDataModuleUsuarios, + uDataTableUtils, DateUtils, uDateUtils, DB, uFactuGES_App; + +{ TBizPedidoProveedor } + +procedure TBizPedidoProveedor.CalcularBaseImponible; +begin + if not Self.DataTable.Editing then + Edit; + IMPORTE_DESCUENTO := IMPORTE_NETO * (DESCUENTO/100); + BASE_IMPONIBLE := IMPORTE_NETO - IMPORTE_DESCUENTO; // + IMPORTE_PORTE; no se suma porque ya se desglosa en los articulos +end; + +procedure TBizPedidoProveedor.CalcularImporteTotal; +begin + DataTable.DisableControls; + DataTable.Fields.FieldEventsDisabled := True; + try + CalcularBaseImponible; + CalcularIVA; + + if not Self.DataTable.Editing then + Edit; + IMPORTE_TOTAL := BASE_IMPONIBLE + IMPORTE_IVA; + finally + DataTable.Fields.FieldEventsDisabled := False; + DataTable.EnableControls; + end; +end; + +procedure TBizPedidoProveedor.CalcularIVA; +begin + if not Self.DataTable.Editing then + Edit; + IMPORTE_IVA := (IVA / 100) * (BASE_IMPONIBLE); +end; + +constructor TBizPedidoProveedor.Create(aDataTable: TDADataTable); +begin + inherited; + FProveedor := Nil; + + with DataTable do + begin + FieldByName(fld_PedidosProveedorIMPORTE_NETO).OnChange := IMPORTE_NETOOnChange; + FieldByName(fld_PedidosProveedorIMPORTE_PORTE).OnChange := IMPORTE_PORTEOnChange; + FieldByName(fld_PedidosProveedorDESCUENTO).OnChange := DESCUENTOOnChange; + FieldByName(fld_PedidosProveedorIVA).OnChange := IVAOnChange; + end; + + FDetallesLink := TDADataSource.Create(NIL); + FDetallesLink.DataTable := aDataTable; + + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +function TBizPedidoProveedor.DarListaSituaciones: TStringList; +begin + Result := TStringList.Create; + with Result do + begin + Add(SITUACION_PEDIDO_PENDIENTE); + Add(SITUACION_PEDIDO_PARCIAL); + Add(SITUACION_PEDIDO_RECIBIDO); + end; +end; + +procedure TBizPedidoProveedor.DESCUENTOOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +destructor TBizPedidoProveedor.Destroy; +begin + FProveedor := NIL; + FDetalles := NIL; + FDetallesLink.Free; + + FSeleccionableInterface := NIL; + inherited; +end; + +function TBizPedidoProveedor.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +function TBizPedidoProveedor.GetProveedor: IBizProveedor; +begin + Result := FProveedor; +end; + +procedure TBizPedidoProveedor.IMPORTE_NETOOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +procedure TBizPedidoProveedor.IMPORTE_PORTEOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +procedure TBizPedidoProveedor.IniciarValoresPedidoNuevo; +begin + ID_EMPRESA := AppFactuGES.EmpresaActiva.ID; + USUARIO := AppFactuGES.UsuarioActivo.UserName; + ID_ALMACEN := AppFactuGES.EmpresaActiva.ID_ALMACEN; + FECHA_PEDIDO := DateOf(Date); + SITUACION := SITUACION_PEDIDO_PENDIENTE; + INCIDENCIAS_ACTIVAS := 0; +// ID_PEDIDO_CLIENTE := 0; + REF_PED_CLIENTE := ''; +end; + +procedure TBizPedidoProveedor.IVAOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +function TBizPedidoProveedor.GetDetalles: IBizDetallesPedidoProveedor; +begin + Result := FDetalles; +end; + +procedure TBizPedidoProveedor.OnNewRecord(Sender: TDADataTable); +begin + inherited; + IniciarValoresPedidoNuevo; +end; + +procedure TBizPedidoProveedor.SetProveedor(AValue: IBizProveedor); +var + bEnEdicion : Boolean; + +begin + FProveedor := AValue; + + if Assigned(FProveedor) then + begin + if not FProveedor.DataTable.Active then + FProveedor.DataTable.Active := True; + + if ID_PROVEEDOR <> FProveedor.ID then + begin + bEnEdicion := (DataTable.State in dsEditModes); + if not bEnEdicion then + DataTable.Edit; + + ID_PROVEEDOR := FProveedor.ID; + + DataTable.Post; //Muy importante ya que es necesario hacer un post de la cabecera antes de aadir detalles + //si se quita el id de la cabecera y los detalles se desincroniza + if bEnEdicion then + DataTable.Edit; + end; + end; +end; + +function TBizPedidoProveedor._GetProveedor: IBizProveedor; +begin + Result := FProveedor; +end; + +procedure TBizPedidoProveedor._SetProveedor(AValue: IBizProveedor); +begin + FProveedor := AValue; +end; + +procedure TBizPedidoProveedor.SetDetalles(Value: IBizDetallesPedidoProveedor); +begin + FDetalles := Value; + EnlazarMaestroDetalle(FDetallesLink, FDetalles); +end; + +procedure TBizPedidoProveedor.SetFECHA_CONFIRMACIONValue(const aValue: TDateTime); +begin + if EsFechaVacia(aValue) then + SetFieldNull(DataTable, fld_PedidosProveedorFECHA_CONFIRMACION) + else + inherited; +end; + +procedure TBizPedidoProveedor.SetFECHA_ENTREGAValue(const aValue: TDateTime); +begin + if EsFechaVacia(aValue) then + SetFieldNull(DataTable, fld_PedidosProveedorFECHA_ENTREGA) + else + inherited; +end; + +procedure TBizPedidoProveedor.SetFECHA_ENVIOValue(const aValue: TDateTime); +begin + if EsFechaVacia(aValue) then + SetFieldNull(DataTable, fld_PedidosProveedorFECHA_ENVIO) + else + inherited; +end; + +procedure TBizPedidoProveedor.SetFECHA_PEDIDOValue(const aValue: TDateTime); +begin + if EsFechaVacia(aValue) then + SetFieldNull(DataTable, fld_PedidosProveedorFECHA_PEDIDO) + else + inherited; +end; + +procedure TBizPedidoProveedor.SetID_FACTURAValue(const aValue: Integer); +begin + if (aValue = 0) then + SetFieldNull(DataTable, fld_PedidosProveedorID_FACTURA) + else + inherited; +end; + +procedure TBizPedidoProveedor.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + if (aValue = 0) then + SetFieldNull(DataTable, fld_PedidosProveedorID_FORMA_PAGO) + else + inherited; +end; + +procedure TBizPedidoProveedor.SetID_PEDIDO_CLIENTEValue(const aValue: Integer); +begin + if (aValue = 0) then + SetFieldNull(DataTable, fld_PedidosProveedorID_PEDIDO_CLIENTE) + else + inherited; +end; + +{procedure TBizPedidoProveedor.SetINCIDENCIASValue(const aValue: IROStrings); +begin + if not Assigned(aValue) then + SetFieldNull(DataTable, fld_PedidosProveedorINCIDENCIAS) + else + inherited; +end;} + +initialization + RegisterDataTableRules(BIZ_CLIENT_PEDIDO_PROVEEDOR, TBizPedidoProveedor); + +finalization + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Model/uBizPedidosProveedorServer.dcu b/Source/Modulos/Pedidos a proveedor/Model/uBizPedidosProveedorServer.dcu new file mode 100644 index 0000000..a0e8b5d Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Model/uBizPedidosProveedorServer.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Model/uBizPedidosProveedorServer.pas b/Source/Modulos/Pedidos a proveedor/Model/uBizPedidosProveedorServer.pas new file mode 100644 index 0000000..c640f8f --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Model/uBizPedidosProveedorServer.pas @@ -0,0 +1,104 @@ +unit uBizPedidosProveedorServer; + +interface + +uses + uDAInterfaces, uDADelta, uDABusinessProcessor, + schPedidosProveedorServer_Intf; + +const + BIZ_SERVER_PEDIDOS_PROVEEDOR = 'Server.PedidosProveedor'; + +type + TBizPedidosProveedorServer = class(TPedidosProveedorBusinessProcessorRules) + private + FReferenciaAutomatica : Boolean; + function DarReferencia : String; + function IncrementarReferencia : Boolean; + protected + procedure BeforeProcessDelta(Sender: TDABusinessProcessor; + const aDelta: IDADelta); override; + procedure AfterProcessChange(Sender: TDABusinessProcessor; + aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); override; + end; + +implementation + +uses + Variants, uDAClasses, uReferenciasUtils, uBusinessUtils, uROClasses, uDataModuleServer, + schPedidosProveedorClient_Intf, FactuGES_Intf, uROServer, SysUtils; + +const + REF_PEDIDOS_PROVEEDOR = 'REF_PEDIDOS_PROVEEDOR'; + + +{ TBizPedidosProveedorServer } + +procedure TBizPedidosProveedorServer.AfterProcessChange( + Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); +begin + inherited; + { Por defecto, mantenemos los deltas por si alguna tabla hija los necesita } + CanRemoveFromDelta := False; + + case aChange.ChangeType of + ctInsert, ctUpdate: begin + if FReferenciaAutomatica then + begin + IncrementarReferencia; + FReferenciaAutomatica := False; + end; + end; + end; +end; + +procedure TBizPedidosProveedorServer.BeforeProcessDelta( + Sender: TDABusinessProcessor; const aDelta: IDADelta); +begin + FReferenciaAutomatica := False; + + case Sender.CurrentChange.ChangeType of + ctInsert, ctUpdate: begin + //Si la referencia no ha sido asignada le asignamos una nosotros + if REFERENCIAIsNull or (Length(REFERENCIA) = 0) then + begin + FReferenciaAutomatica := True; + REFERENCIA := DarReferencia; + end; + end; + end; +end; + +function TBizPedidosProveedorServer.DarReferencia: String; +var + AReferenciasService : IsrvReferencias; + Intf : IInterface; + AClientID : TGUID; +begin + CreateGUID(AClientID); + + GetClassFactory('srvReferencias').CreateInstance(AClientID, Intf); + AReferenciasService := Intf as IsrvReferencias; + Result := AReferenciasService.DarNuevaReferencia(REF_PEDIDOS_PROVEEDOR, ID_EMPRESA) +end; + +function TBizPedidosProveedorServer.IncrementarReferencia: Boolean; +var + AReferenciasService : IsrvReferencias; + Intf : IInterface; + AClientID : TGUID; +begin + CreateGUID(AClientID); + + GetClassFactory('srvReferencias').CreateInstance(AClientID, Intf); + AReferenciasService := Intf as IsrvReferencias; + Result := AReferenciasService.IncrementarValorReferencia(REF_PEDIDOS_PROVEEDOR, Self.REFERENCIA, ID_EMPRESA) +end; + + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_PEDIDOS_PROVEEDOR, TBizPedidosProveedorServer); + +end. diff --git a/Source/Modulos/Pedidos a proveedor/PedidosProveedor_Group.bdsgroup b/Source/Modulos/Pedidos a proveedor/PedidosProveedor_Group.bdsgroup new file mode 100644 index 0000000..0e84674 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/PedidosProveedor_Group.bdsgroup @@ -0,0 +1,27 @@ + + + + + + + + + + + ..\..\DataAbstract_D10\DataAbstract_D10.bdsproj + ..\..\Base\Base.bdsproj + ..\..\Base\ControllerBase\ControllerBase.bdsproj + ..\..\Base\GUIBase\GUIBase.bdsproj + ..\Contactos\Views\Contactos_view.bdsproj + ..\Articulos\Views\Articulos_view.bdsproj + Model\PedidosProveedor_model.bdsproj + Data\PedidosProveedor_data.bdsproj + Controller\PedidosProveedor_controller.bdsproj + Views\PedidosProveedor_view.bdsproj + Plugin\PedidosProveedor_plugin.bdsproj + DataAbstract_D10.bpl Base.bpl ControllerBase.bpl GUIBase.bpl Contactos_view.bpl Articulos_view.bpl PedidosProveedor_model.bpl PedidosProveedor_data.bpl PedidosProveedor_controller.bpl PedidosProveedor_view.bpl PedidosProveedor_plugin.bpl + + + + diff --git a/Source/Modulos/Pedidos a proveedor/PedidosProveedor_Group.config b/Source/Modulos/Pedidos a proveedor/PedidosProveedor_Group.config new file mode 100644 index 0000000..c8f2834 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/PedidosProveedor_Group.config @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Source/Modulos/Pedidos a proveedor/PedidosProveedor_Group.groupproj b/Source/Modulos/Pedidos a proveedor/PedidosProveedor_Group.groupproj new file mode 100644 index 0000000..0ecd09d --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/PedidosProveedor_Group.groupproj @@ -0,0 +1,274 @@ + + + {63bda8d7-1426-4a34-849f-51032a5e877d} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.bdsproj b/Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.bdsproj new file mode 100644 index 0000000..452c9cc --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.bdsproj @@ -0,0 +1,495 @@ + + + + + + + + + + + + PedidosProveedor_plugin.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + EurekaLog 5.1.9 + + + + diff --git a/Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.cfg b/Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.cfg new file mode 100644 index 0000000..45968c7 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.cfg @@ -0,0 +1,40 @@ +-$A8 +-$B- +-$C+ +-$D- +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L- +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$Y- +-$Z1 +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-$M16384,1048576 +-K$00400000 +-E"C:\Codigo\Output\Debug" +-LE"C:\Codigo\Output\Debug\Cliente" +-LN"C:\Codigo\Source\Modulos\Lib" +-U..\..\..\Lib;..\..\Lib;"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Imports";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\Indy10";"C:\Codigo Tecsitel\Lib";"C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK";"C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract";"C:\Codigo Tecsitel\Lib\CCPack";"C:\Codigo Tecsitel\Lib\CFPack";"C:\Codigo Tecsitel\Lib\GUISDK";"C:\Codigo Tecsitel\Lib\PluginSDK";"C:\Codigo Tecsitel\Lib\DevExpressVCL";"C:\Codigo Tecsitel\Lib\FastReport4";"C:\Codigo Tecsitel\Lib\JCL";"C:\Codigo Tecsitel\Lib\JVCL";"C:\Codigo Tecsitel\Lib\PngComponents";"C:\Codigo Tecsitel\Lib\cxIntl6";"C:\Codigo Tecsitel\Lib\cxIntlPrintSys3";"C:\Codigo Tecsitel\Lib\TB2k+TBX";"C:\Codigo Tecsitel\Lib\Mustangpeak\MPCommonLib";"C:\Codigo Tecsitel\Lib\Mustangpeak\EasyListview";"C:\Codigo Tecsitel\Lib\JSDialog";"C:\Codigo Tecsitel\Lib\UserControl";;"C:\Codigo Tecsitel\Source\Lib"; +-O..\..\..\Lib;..\..\Lib;"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Imports";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\Indy10";"C:\Codigo Tecsitel\Lib";"C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK";"C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract";"C:\Codigo Tecsitel\Lib\CCPack";"C:\Codigo Tecsitel\Lib\CFPack";"C:\Codigo Tecsitel\Lib\GUISDK";"C:\Codigo Tecsitel\Lib\PluginSDK";"C:\Codigo Tecsitel\Lib\DevExpressVCL";"C:\Codigo Tecsitel\Lib\FastReport4";"C:\Codigo Tecsitel\Lib\JCL";"C:\Codigo Tecsitel\Lib\JVCL";"C:\Codigo Tecsitel\Lib\PngComponents";"C:\Codigo Tecsitel\Lib\cxIntl6";"C:\Codigo Tecsitel\Lib\cxIntlPrintSys3";"C:\Codigo Tecsitel\Lib\TB2k+TBX";"C:\Codigo Tecsitel\Lib\Mustangpeak\MPCommonLib";"C:\Codigo Tecsitel\Lib\Mustangpeak\EasyListview";"C:\Codigo Tecsitel\Lib\JSDialog";"C:\Codigo Tecsitel\Lib\UserControl";;"C:\Codigo Tecsitel\Source\Lib"; +-I..\..\..\Lib;..\..\Lib;"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Imports";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\Indy10";"C:\Codigo Tecsitel\Lib";"C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK";"C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract";"C:\Codigo Tecsitel\Lib\CCPack";"C:\Codigo Tecsitel\Lib\CFPack";"C:\Codigo Tecsitel\Lib\GUISDK";"C:\Codigo Tecsitel\Lib\PluginSDK";"C:\Codigo Tecsitel\Lib\DevExpressVCL";"C:\Codigo Tecsitel\Lib\FastReport4";"C:\Codigo Tecsitel\Lib\JCL";"C:\Codigo Tecsitel\Lib\JVCL";"C:\Codigo Tecsitel\Lib\PngComponents";"C:\Codigo Tecsitel\Lib\cxIntl6";"C:\Codigo Tecsitel\Lib\cxIntlPrintSys3";"C:\Codigo Tecsitel\Lib\TB2k+TBX";"C:\Codigo Tecsitel\Lib\Mustangpeak\MPCommonLib";"C:\Codigo Tecsitel\Lib\Mustangpeak\EasyListview";"C:\Codigo Tecsitel\Lib\JSDialog";"C:\Codigo Tecsitel\Lib\UserControl";;"C:\Codigo Tecsitel\Source\Lib"; +-R..\..\..\Lib;..\..\Lib;"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Imports";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\Indy10";"C:\Codigo Tecsitel\Lib";"C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK";"C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract";"C:\Codigo Tecsitel\Lib\CCPack";"C:\Codigo Tecsitel\Lib\CFPack";"C:\Codigo Tecsitel\Lib\GUISDK";"C:\Codigo Tecsitel\Lib\PluginSDK";"C:\Codigo Tecsitel\Lib\DevExpressVCL";"C:\Codigo Tecsitel\Lib\FastReport4";"C:\Codigo Tecsitel\Lib\JCL";"C:\Codigo Tecsitel\Lib\JVCL";"C:\Codigo Tecsitel\Lib\PngComponents";"C:\Codigo Tecsitel\Lib\cxIntl6";"C:\Codigo Tecsitel\Lib\cxIntlPrintSys3";"C:\Codigo Tecsitel\Lib\TB2k+TBX";"C:\Codigo Tecsitel\Lib\Mustangpeak\MPCommonLib";"C:\Codigo Tecsitel\Lib\Mustangpeak\EasyListview";"C:\Codigo Tecsitel\Lib\JSDialog";"C:\Codigo Tecsitel\Lib\UserControl";;"C:\Codigo Tecsitel\Source\Lib"; +-GD diff --git a/Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.cfg.bak b/Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.cfg.bak new file mode 100644 index 0000000..5aa842f --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.cfg.bak @@ -0,0 +1,40 @@ +-$A8 +-$B- +-$C+ +-$D- +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L- +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$Y- +-$Z1 +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-$M16384,1048576 +-K$00400000 +-E"C:\Codigo Tecsitel\Output\Debug" +-LE"C:\Codigo Tecsitel\Output\Debug\Cliente" +-LN"C:\Codigo Tecsitel\Source\Modulos\Lib" +-U..\..\..\Lib;..\..\Lib;"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Imports";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\Indy10";"C:\Codigo Tecsitel\Lib";"C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK";"C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract";"C:\Codigo Tecsitel\Lib\CCPack";"C:\Codigo Tecsitel\Lib\CFPack";"C:\Codigo Tecsitel\Lib\GUISDK";"C:\Codigo Tecsitel\Lib\PluginSDK";"C:\Codigo Tecsitel\Lib\DevExpressVCL";"C:\Codigo Tecsitel\Lib\FastReport4";"C:\Codigo Tecsitel\Lib\JCL";"C:\Codigo Tecsitel\Lib\JVCL";"C:\Codigo Tecsitel\Lib\PngComponents";"C:\Codigo Tecsitel\Lib\cxIntl6";"C:\Codigo Tecsitel\Lib\cxIntlPrintSys3";"C:\Codigo Tecsitel\Lib\TB2k+TBX";"C:\Codigo Tecsitel\Lib\Mustangpeak\MPCommonLib";"C:\Codigo Tecsitel\Lib\Mustangpeak\EasyListview";"C:\Codigo Tecsitel\Lib\JSDialog";"C:\Codigo Tecsitel\Lib\UserControl";;"C:\Codigo Tecsitel\Source\Lib"; +-O..\..\..\Lib;..\..\Lib;"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Imports";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\Indy10";"C:\Codigo Tecsitel\Lib";"C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK";"C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract";"C:\Codigo Tecsitel\Lib\CCPack";"C:\Codigo Tecsitel\Lib\CFPack";"C:\Codigo Tecsitel\Lib\GUISDK";"C:\Codigo Tecsitel\Lib\PluginSDK";"C:\Codigo Tecsitel\Lib\DevExpressVCL";"C:\Codigo Tecsitel\Lib\FastReport4";"C:\Codigo Tecsitel\Lib\JCL";"C:\Codigo Tecsitel\Lib\JVCL";"C:\Codigo Tecsitel\Lib\PngComponents";"C:\Codigo Tecsitel\Lib\cxIntl6";"C:\Codigo Tecsitel\Lib\cxIntlPrintSys3";"C:\Codigo Tecsitel\Lib\TB2k+TBX";"C:\Codigo Tecsitel\Lib\Mustangpeak\MPCommonLib";"C:\Codigo Tecsitel\Lib\Mustangpeak\EasyListview";"C:\Codigo Tecsitel\Lib\JSDialog";"C:\Codigo Tecsitel\Lib\UserControl";;"C:\Codigo Tecsitel\Source\Lib"; +-I..\..\..\Lib;..\..\Lib;"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Imports";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\Indy10";"C:\Codigo Tecsitel\Lib";"C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK";"C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract";"C:\Codigo Tecsitel\Lib\CCPack";"C:\Codigo Tecsitel\Lib\CFPack";"C:\Codigo Tecsitel\Lib\GUISDK";"C:\Codigo Tecsitel\Lib\PluginSDK";"C:\Codigo Tecsitel\Lib\DevExpressVCL";"C:\Codigo Tecsitel\Lib\FastReport4";"C:\Codigo Tecsitel\Lib\JCL";"C:\Codigo Tecsitel\Lib\JVCL";"C:\Codigo Tecsitel\Lib\PngComponents";"C:\Codigo Tecsitel\Lib\cxIntl6";"C:\Codigo Tecsitel\Lib\cxIntlPrintSys3";"C:\Codigo Tecsitel\Lib\TB2k+TBX";"C:\Codigo Tecsitel\Lib\Mustangpeak\MPCommonLib";"C:\Codigo Tecsitel\Lib\Mustangpeak\EasyListview";"C:\Codigo Tecsitel\Lib\JSDialog";"C:\Codigo Tecsitel\Lib\UserControl";;"C:\Codigo Tecsitel\Source\Lib"; +-R..\..\..\Lib;..\..\Lib;"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Imports";"C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\Indy10";"C:\Codigo Tecsitel\Lib";"C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK";"C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract";"C:\Codigo Tecsitel\Lib\CCPack";"C:\Codigo Tecsitel\Lib\CFPack";"C:\Codigo Tecsitel\Lib\GUISDK";"C:\Codigo Tecsitel\Lib\PluginSDK";"C:\Codigo Tecsitel\Lib\DevExpressVCL";"C:\Codigo Tecsitel\Lib\FastReport4";"C:\Codigo Tecsitel\Lib\JCL";"C:\Codigo Tecsitel\Lib\JVCL";"C:\Codigo Tecsitel\Lib\PngComponents";"C:\Codigo Tecsitel\Lib\cxIntl6";"C:\Codigo Tecsitel\Lib\cxIntlPrintSys3";"C:\Codigo Tecsitel\Lib\TB2k+TBX";"C:\Codigo Tecsitel\Lib\Mustangpeak\MPCommonLib";"C:\Codigo Tecsitel\Lib\Mustangpeak\EasyListview";"C:\Codigo Tecsitel\Lib\JSDialog";"C:\Codigo Tecsitel\Lib\UserControl";;"C:\Codigo Tecsitel\Source\Lib"; +-GD diff --git a/Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.dcu b/Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.dcu new file mode 100644 index 0000000..e166114 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.dpk b/Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.dpk new file mode 100644 index 0000000..f06020f Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.dpk differ diff --git a/Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.dproj b/Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.dproj new file mode 100644 index 0000000..64831de --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.dproj @@ -0,0 +1,554 @@ + + + + {e7d762a1-3a15-46b2-bd5b-3821d13b8347} + PedidosProveedor_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\PedidosProveedor_plugin.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + EurekaLog 5.1.9 + PedidosProveedor_plugin.dpk + + + + + MainSource + + + + + + + + + + + + + + +
PluginPedidosProveedor
+
+
+
+ diff --git a/Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.drc b/Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.drc new file mode 100644 index 0000000..8b1db11 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.drc @@ -0,0 +1,17 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Pedidos a proveedor\Plugin\uPluginPedidosProveedor.dfm */ +/* C:\Codigo\Source\Modulos\Pedidos a proveedor\Plugin\PedidosProveedor_plugin.res */ +/* c:\temp\dtf207.tmp */ diff --git a/Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.rc b/Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.res b/Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.res differ diff --git a/Source/Modulos/Pedidos a proveedor/Plugin/uPluginPedidosProveedor.dcu b/Source/Modulos/Pedidos a proveedor/Plugin/uPluginPedidosProveedor.dcu new file mode 100644 index 0000000..fb3c452 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Plugin/uPluginPedidosProveedor.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Plugin/uPluginPedidosProveedor.dfm b/Source/Modulos/Pedidos a proveedor/Plugin/uPluginPedidosProveedor.dfm new file mode 100644 index 0000000..91753e5 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Plugin/uPluginPedidosProveedor.dfm @@ -0,0 +1,139 @@ +object PluginPedidosProveedor: TPluginPedidosProveedor + OldCreateOrder = True + DefaultAction = actPedidosProveedor + Description = 'Ventas' + ModuleMenu = MainMenu + ModuleName = 'Presupuestos' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software' + Version = '1.0.0' + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026C4944415478DA + 63FCFFFF3FC3A28DC7FF335009C4F95B3222F319611600254836ECEFDF7F40FC + 1F4C8380856F36C3C53DB3705BB0D7D21EC500E7E307711A8EACD674CF2E8679 + ABF730CC5FB211BF05A4B8FC808D2383328B34C3B6D3CB19225F7E6358B87E1F + 610BB0F9005D0C046C0FEE63386CEFC470F3FC21303FECD91786259B0E50E683 + FFFF80610DC47F80AE07B17FFF0386FF9F7F60DFFCF9F79761C596C3A4FB8018 + 00F285EF83770C6B771C23CE0298B749015E77DF306CD87D82380BF0A51C6C00 + A44771E55A864DFB4E126F01AEA082590E9387A9955BBE8661EB8153B4F381E4 + 92550CBB0E9FA1AE0F6EAA108EABC75FEDC8F3C1B4584686847408FBE74F0686 + 5F3F2018C4FEF903824F1C47B320DAC71C9C3B09F98058C3F9251818AEDC45B2 + 20C2D30C9C3BF1F90064388B207EDFFD798F301C250E42DD4C188E39B910B400 + E67A10F8F80EE2E21F5097FFFACEC070FA0C2468EC0D0F311C3C8FE483001723 + 86D32E6E785D078A5890664200643808A058E0EB60002F5720E5FC3F70D90316 + 0396F94FA343C11620FB001C247F81F83703C36F501C007D70ED3A420EC5022F + 5B3D9C8683E81771E11816FCFA05341888FF40E995ABD919D4357E32B0B160B1 + C0CD5A1BA7E1A012F44D62248605A038005B00F201106FDACACE202D0FB1808D + 9581E1F865240B1CCD35C086FDFB0B29967FFF4514C7FFFE432C3ADD2D8F62C1 + 9B1708C341166DDFCDCE202A0DB1E0F21D3B86F6750719E116D899A8814B447C + 806DAF0FDC0250F0BC7B89301C44EF39C0CEC02FFE93E1FE1388E128C9B477F2 + 7C82A9235D7236D882A993D971AA79F7DB1C6E38DC0262417738C73AA00181F8 + D4201B0E0200C20B50400F1E42A70000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + object actPedidosProveedor: TAction + Category = 'Compras' + Caption = 'Pedidos a proveedor' + ImageIndex = 0 + OnExecute = actPedidosProveedorExecute + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object Compras1: TMenuItem + Caption = 'Compras' + object Pedidosaproveedor1: TMenuItem + Tag = 201 + Action = actPedidosProveedor + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001864944415478DA + 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F + 192CBCB3192EEE99856AC05E4B2B14C5CEC78F81696471AB030719662EDFC530 + 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB001DDAD3B19966D3A84 + DB0098B341E01F50EECF9F7F709BCFB93B33686EDCCEB06ADB11FC06C05C627B + E830C3613B5BB8CD97BDDD1954D66E6158BFEB387E0360367FBA7990E1C5C218 + 7C3E72C130C0F1D85186FD56D66059719B070CAA2D350CECEC59183A7FFE9CC6 + 303BB68501C30090B3617E7EDAACCCA0D3FD0CAC180EBE7F6760F8F19D61FA0E + 4306966DA9080372623D190EDAD8A0D80272018A0120CD1FDE81E9E9279D510D + 488F7463F805B4F9CF6F50A8FF61B8EAEB816A004CF37B20FEF19361FACD6054 + 0312439DE19A415EB815E88D30E0432F42F3870F1017BC4A45352036C011AE19 + 140320D7FC9E6A0031E041354233D80540037E95A31A10E163CBB062CB61D438 + BA9A0A8E85E9CBE5B1C6218A01A084810EB478DF3058B39EC099081CE4195C00 + 45135E518E0B4E380000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000003184944415478DA + BDD6DB4FD3501800F06F82F6C107E28391B8183418F14570720B48C655AEC328 + 8A08A2F1CD3FC3F860F8030CC6784110C1B1B13137184C186C5CD62108084443 + A2214613131FBC3C88BBB43DF6B4A3ACA36B3B48F8B6939EB6A7E777BE73D6B5 + 1A8410EC6568303830BECAA9B8CE15861F84B0CF7EB86FA4CE0D92FB2248DA97 + 24D9F1F5DA6C4D5CD0EA5E410DE567763C6A86ED83610749D30CD00C03858DB7 + 60C9618C0F5AC696D1958A4C7017146E6B504EFAE242B1ED0B263CF0D8380A9D + 966E7560A281C18CBA0B40B956C1B96085D61F01E8308F2983FD6FDEA3AB9559 + 7133943A5EEA9B8189C2F3B0B64C0AC79ABF6F4097755C1934BB965063D559D5 + 99E175A269C46DF1DA5114231CEBB17B9441936B115DABD24966A23670A60D5F + FE8071704A0538C282D53C183D4589C6A5F5DF60724E2B837DC30BA8A9E61C07 + CAFD2AE5025F7BCA3A0416974F19343ADF21F646DD3598DEEF00DBA85F197CE5 + 9C47CDB5390228B7969B038A6EB379CD71931D1CEE5965B077680EB5D4E5EE3A + 436DAF0D46BC732AC041163424063EBCA951D56E33BEFED5439BD5ABE1C09EC1 + B7E886214FF59462ECF69DEDE782418050802FB81E0CF0C54FC6802F1DB3A8B5 + 3E5F55863BC1525201563F4783F659D4529FC7FD55C981184B3EA47E1AA95F5B + 180E017CF19A64D7301FBC4545B253BA769294CC2E80B3D9E0330A44320BFD03 + 989BE7A7B2583709DE45BD186CAAC985E962BD6286B88344026338446097CD87 + 1AAB73802C2D5104A53214A690664B18208CD790CDF0C3C7AD7322B07360065D + AEC886F9CA32D9D1C69B521CA1100BB1858A6CFBCC04649C0EC281E438E0C532 + 5DE491438B5E1768867F7DA0D8FD89BBA992602C86B3B4D8083891CE82FB8143 + 45E073EB343294E86431BC3F79EFE836500A0BB3C53E4480368DCF10A3E44A14 + D8619942B5C559B2184D2198B9AF1581F1305C1F1E25E0B09607573EF118BE86 + 039FF54FA21A7D962C86B7FEB663022887E1ED98878094234158FFB68509E053 + B31755156572CF32B938E0367060FB0342D52DF1339C2FC204F089C983DABB1F + 2976A027FC7090495385E188C504702FE33F1F65CAE7611BEC0A000000004945 + 4E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 80 + Bitmap = {} + end +end diff --git a/Source/Modulos/Pedidos a proveedor/Plugin/uPluginPedidosProveedor.pas b/Source/Modulos/Pedidos a proveedor/Plugin/uPluginPedidosProveedor.pas new file mode 100644 index 0000000..3487ce2 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Plugin/uPluginPedidosProveedor.pas @@ -0,0 +1,97 @@ +unit uPluginPedidosProveedor; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList, uPlugins_Intf; + +type + TPluginPedidosProveedor = class(TModuleController, IMCPedidosProveedor) + actPedidosProveedor: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + Compras1: TMenuItem; + Pedidosaproveedor1: TMenuItem; + procedure actPedidosProveedorExecute(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure VerPedidos(const ID_Proveedor: Integer; + const ANombreProveedor : String = ''); + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, cxControls, + uPedidosProveedorController, uBizPedidosProveedor, uPedidosProveedorViewRegister; + +function GetModule : TModuleController; +begin + Result := TPluginPedidosProveedor.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +procedure TPluginPedidosProveedor.actPedidosProveedorExecute(Sender: TObject); +var + APedidosProveedorController : IPedidosProveedorController; + APedidosProveedor : IBizPedidoProveedor; + +begin + APedidosProveedorController := TPedidosProveedorController.Create; + APedidosProveedor := (APedidosProveedorController.BuscarTodos as IBizPedidoProveedor); + APedidosProveedorController.VerTodos(APedidosProveedor); +end; + +constructor TPluginPedidosProveedor.Create(AOwner: TComponent); +begin + inherited; + ModuleName := MODULENAME_PEDIDOS_PROVEEDOR; + uPedidosProveedorViewRegister.RegisterViews; +end; + +destructor TPluginPedidosProveedor.Destroy; +begin + uPedidosProveedorViewRegister.UnregisterViews; + inherited; +end; + +procedure TPluginPedidosProveedor.VerPedidos(const ID_Proveedor: Integer; + const ANombreProveedor: String); +var + APedidosController : IPedidosProveedorController; + APedidos : IBizPedidoProveedor; + AText : String; +begin + AText := Format('Lista de pedidos del proveedor %s', [ANombreProveedor]); + APedidosController := TPedidosProveedorController.Create; + try + ShowHourglassCursor; + try + APedidos := APedidosController.BuscarTodos(ID_Proveedor); + finally + HideHourglassCursor; + end; + APedidosController.VerTodos(APedidos, True, AText); + finally + APedidos := NIL; + APedidosController := NIL; + end; +end; + + +initialization + RegisterModuleClass(TPluginPedidosProveedor); + +finalization + UnRegisterModuleClass(TPluginPedidosProveedor); + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Reports/uRptPedidosProveedor_Server.dcu b/Source/Modulos/Pedidos a proveedor/Reports/uRptPedidosProveedor_Server.dcu new file mode 100644 index 0000000..be96d95 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Reports/uRptPedidosProveedor_Server.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Reports/uRptPedidosProveedor_Server.dfm b/Source/Modulos/Pedidos a proveedor/Reports/uRptPedidosProveedor_Server.dfm new file mode 100644 index 0000000..d2f3e04 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Reports/uRptPedidosProveedor_Server.dfm @@ -0,0 +1,1149 @@ +object RptPedidosProveedor: TRptPedidosProveedor + OldCreateOrder = True + OnCreate = DataModuleCreate + OnDestroy = DataModuleDestroy + Height = 522 + Width = 766 + object schReport: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'V_PEDIDOS_PROVEEDOR' + Name = 'IBX' + SQL = + #10' '#10'select ID_EMPRESA,'#10'extract (year from fecha_pedido) as ANO,'#10 + + 'extract (month from fecha_pedido) as MES,'#10'case'#10'when extract (mon' + + 'th from fecha_pedido) = 1 then '#39'ENERO - '#39' || extract (year from ' + + 'fecha_pedido)'#10'when extract (month from fecha_pedido) = 2 then '#39'F' + + 'EBRERO - '#39' || extract (year from fecha_pedido)'#10'when extract (mon' + + 'th from fecha_pedido) = 3 then '#39'MARZO - '#39' || extract (year from ' + + 'fecha_pedido)'#10'when extract (month from fecha_pedido) = 4 then '#39'A' + + 'BRIL - '#39' || extract (year from fecha_pedido)'#10'when extract (month' + + ' from fecha_pedido) = 5 then '#39'MAYO - '#39' || extract (year from fec' + + 'ha_pedido)'#10'when extract (month from fecha_pedido) = 6 then '#39'JUNI' + + 'O - '#39' || extract (year from fecha_pedido)'#10'when extract (month fr' + + 'om fecha_pedido) = 7 then '#39'JULIO - '#39' || extract (year from fecha' + + '_pedido)'#10'when extract (month from fecha_pedido) = 8 then '#39'AGOSTO' + + ' - '#39' || extract (year from fecha_pedido)'#10'when extract (month fro' + + 'm fecha_pedido) = 9 then '#39'SEPTIEMBRE - '#39' || extract (year from f' + + 'echa_pedido)'#10'when extract (month from fecha_pedido) = 10 then '#39'O' + + 'CTUBRE - '#39' || extract (year from fecha_pedido)'#10'when extract (mon' + + 'th from fecha_pedido) = 11 then '#39'NOVIEMBRE - '#39' || extract (year ' + + 'from fecha_pedido)'#10'when extract (month from fecha_pedido) = 12 t' + + 'hen '#39'DICIEMBRE - '#39' || extract (year from fecha_pedido)'#10'end as TI' + + 'TULO,'#10'REFERENCIA, ID_PROVEEDOR, NOMBRE, SITUACION, fecha_pedido' + + ', FECHA_CONFIRMACION, FECHA_ENTREGA, IMPORTE_TOTAL'#10#10'from V_PEDID' + + 'OS_PROVEEDOR'#10'where {where}'#10'order by ANO, MES, NOMBRE'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'MES' + TableField = '' + SQLOrigin = 'MES' + end + item + DatasetField = 'TITULO' + TableField = '' + SQLOrigin = 'TITULO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID_PROVEEDOR' + TableField = 'ID_PROVEEDOR' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'FECHA_PEDIDO' + TableField = 'FECHA_PEDIDO' + end + item + DatasetField = 'FECHA_CONFIRMACION' + TableField = 'FECHA_CONFIRMACION' + end + item + DatasetField = 'FECHA_ENTREGA' + TableField = 'FECHA_ENTREGA' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'ANO' + TableField = '' + SQLOrigin = 'ANO' + end> + end> + Name = 'InformeListadoPedidos' + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + end + item + Name = 'FECHA_PEDIDO' + DataType = datDateTime + end + item + Name = 'FECHA_CONFIRMACION' + DataType = datDateTime + end + item + Name = 'FECHA_ENTREGA' + DataType = datDateTime + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + end + item + IsPublic = False + Params = < + item + Name = 'ID' + Value = '2' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'SELECT'#10' PEDIDOS_PROVEEDOR.ID,'#10' PEDIDOS_PROVEEDOR.ID_EMPRESA,'#10' ' + + ' PEDIDOS_PROVEEDOR.REFERENCIA,'#10' PEDIDOS_PROVEEDOR.FECHA_PEDIDO,' + + #10' PEDIDOS_PROVEEDOR.FECHA_ENTREGA,'#10' PEDIDOS_PROVEEDOR.OBSERVAC' + + 'IONES,'#10' CONTACTOS.NOMBRE,'#10' COALESCE(CONTACTOS_DIRECCIONES.FAX,' + + ' CONTACTOS.FAX) AS FAX,'#10' PEDIDOS_PROVEEDOR.PERSONA_CONTACTO_PRO' + + 'V AS PERSONA_CONTACTO,'#10' PROVEEDORES_DATOS.CODIGO_ASIGNADO AS CO' + + 'DIGO_CLIENTE,'#10' PEDIDOS_PROVEEDOR.ID_ALMACEN,'#10' COALESCE(ALMACEN' + + 'ES.CALLE, PEDIDOS_PROVEEDOR.CALLE) AS CALLE,'#10' COALESCE(ALMACENE' + + 'S.POBLACION, PEDIDOS_PROVEEDOR.POBLACION) AS POBLACION,'#10' COALES' + + 'CE(ALMACENES.PROVINCIA, PEDIDOS_PROVEEDOR.PROVINCIA) AS PROVINCI' + + 'A,'#10' COALESCE(ALMACENES.CODIGO_POSTAL, PEDIDOS_PROVEEDOR.CODIGO_' + + 'POSTAL) AS CODIGO_POSTAL,'#10' PEDIDOS_PROVEEDOR.PERSONA_CONTACTO A' + + 'S ENTREGAR_A,'#10' PEDIDOS_PROVEEDOR.IMPORTE_TOTAL'#10'FROM'#10' PEDIDOS_P' + + 'ROVEEDOR'#10' INNER JOIN CONTACTOS ON (CONTACTOS.ID = PEDIDOS_PROVE' + + 'EDOR.ID_PROVEEDOR)'#10' LEFT OUTER JOIN PROVEEDORES_DATOS ON (PROVE' + + 'EDORES_DATOS.ID_PROVEEDOR = PEDIDOS_PROVEEDOR.ID_PROVEEDOR)'#10' LE' + + 'FT OUTER JOIN CONTACTOS_DIRECCIONES ON (CONTACTOS_DIRECCIONES.ID' + + ' = PEDIDOS_PROVEEDOR.ID_DIRECCION)'#10' LEFT OUTER JOIN ALMACENES O' + + 'N (ALMACENES.ID = PEDIDOS_PROVEEDOR.ID_ALMACEN)'#10'WHERE PEDIDOS_PR' + + 'OVEEDOR.ID = :ID'#10#10#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'FECHA_PEDIDO' + TableField = 'FECHA_PEDIDO' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'FAX' + TableField = 'FAX' + end + item + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end + item + DatasetField = 'FECHA_ENTREGA' + TableField = 'FECHA_ENTREGA' + end + item + DatasetField = 'ID_ALMACEN' + TableField = 'ID_ALMACEN' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end + item + DatasetField = 'CODIGO_CLIENTE' + TableField = 'CODIGO_CLIENTE' + end + item + DatasetField = 'ENTREGAR_A' + TableField = 'ENTREGAR_A' + end> + end> + Name = 'Informe_Cabecera' + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_PEDIDO' + DataType = datDateTime + end + item + Name = 'FECHA_ENTREGA' + DataType = datDateTime + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'FAX' + DataType = datString + Size = 25 + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + end + item + Name = 'ENTREGAR_A' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + ReadOnly = True + end + item + IsPublic = False + Params = < + item + Name = 'ID_PEDIDO' + Value = '3' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'SELECT DET.ID, DET.ID_PEDIDO,'#10' DET.POSICION, DET.TIPO_DETA' + + 'LLE,'#10' ARTICULOS.REFERENCIA, F_RTFTOTEXT(DET.CONCEPTO) as C' + + 'ONCEPTO, DET.CANTIDAD,'#10' DET.UNIDAD_MEDIDA, DET.IMPORTE_UNI' + + 'DAD - (DET.IMPORTE_UNIDAD * (COALESCE(DET.DESCUENTO,0) / 100)) a' + + 's IMPORTE_UNIDAD, DET.IMPORTE_TOTAL,'#10' ARTICULOS_PROVEEDORE' + + 'S.REFERENCIA_PROV as REFERENCIA_PROVEEDOR,'#10' ARTICULOS.REFE' + + 'RENCIA_FABR as REFERENCIA_FABRICANTE'#10'FROM PEDIDOS_PROVEEDOR_DETA' + + 'LLES DET'#10'LEFT OUTER JOIN ARTICULOS ON (DET.ID_ARTICULO = ARTICUL' + + 'OS.ID)'#10'LEFT JOIN PEDIDOS_PROVEEDOR ON (PEDIDOS_PROVEEDOR.ID = DE' + + 'T.ID_PEDIDO)'#10'LEFT JOIN ARTICULOS_PROVEEDORES ON ((ARTICULOS_PROV' + + 'EEDORES.ID_ARTICULO = ARTICULOS.ID) AND (ARTICULOS_PROVEEDORES.I' + + 'D_PROVEEDOR = PEDIDOS_PROVEEDOR.ID_PROVEEDOR))'#10#10'WHERE DET.ID_PED' + + 'IDO = :ID_PEDIDO AND DET.VISIBLE = 1 AND {Where}'#10'ORDER BY DET.ID' + + '_PEDIDO, DET.POSICION;'#10#10#10#10#10#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_PEDIDO' + TableField = 'ID_PEDIDO' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'UNIDAD_MEDIDA' + TableField = 'UNIDAD_MEDIDA' + end + item + DatasetField = 'IMPORTE_UNIDAD' + TableField = 'IMPORTE_UNIDAD' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = 'REFERENCIA_PROVEEDOR' + end + item + DatasetField = 'REFERENCIA_FABRICANTE' + TableField = 'REFERENCIA_FABRICANTE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + end> + end> + Name = 'Informe_Detalles' + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 32765 + end + item + Name = 'CANTIDAD' + DataType = datFloat + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datFloat + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + end + item + Name = 'REFERENCIA_FABRICANTE' + DataType = datString + Size = 255 + end> + ReadOnly = True + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_PEDIDOS_PROVEEDOR' + SQL = + #10' '#10'select ID_EMPRESA,'#10'extract (year from fecha_pedido) as ANO,'#10 + + 'extract (month from fecha_pedido) as MES,'#10'case'#10'when extract (mon' + + 'th from fecha_pedido) = 1 then '#39'ENERO - '#39' || extract (year from ' + + 'fecha_pedido)'#10'when extract (month from fecha_pedido) = 2 then '#39'F' + + 'EBRERO - '#39' || extract (year from fecha_pedido)'#10'when extract (mon' + + 'th from fecha_pedido) = 3 then '#39'MARZO - '#39' || extract (year from ' + + 'fecha_pedido)'#10'when extract (month from fecha_pedido) = 4 then '#39'A' + + 'BRIL - '#39' || extract (year from fecha_pedido)'#10'when extract (month' + + ' from fecha_pedido) = 5 then '#39'MAYO - '#39' || extract (year from fec' + + 'ha_pedido)'#10'when extract (month from fecha_pedido) = 6 then '#39'JUNI' + + 'O - '#39' || extract (year from fecha_pedido)'#10'when extract (month fr' + + 'om fecha_pedido) = 7 then '#39'JULIO - '#39' || extract (year from fecha' + + '_pedido)'#10'when extract (month from fecha_pedido) = 8 then '#39'AGOSTO' + + ' - '#39' || extract (year from fecha_pedido)'#10'when extract (month fro' + + 'm fecha_pedido) = 9 then '#39'SEPTIEMBRE - '#39' || extract (year from f' + + 'echa_pedido)'#10'when extract (month from fecha_pedido) = 10 then '#39'O' + + 'CTUBRE - '#39' || extract (year from fecha_pedido)'#10'when extract (mon' + + 'th from fecha_pedido) = 11 then '#39'NOVIEMBRE - '#39' || extract (year ' + + 'from fecha_pedido)'#10'when extract (month from fecha_pedido) = 12 t' + + 'hen '#39'DICIEMBRE - '#39' || extract (year from fecha_pedido)'#10'end as TI' + + 'TULO,'#10'sum(IMPORTE_TOTAL) as importe_total'#10#10'from V_PEDIDOS_PROVEE' + + 'DOR'#10'group by 1,2,3,4'#10'order by ANO, MES'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'ANO' + TableField = '' + SQLOrigin = 'ANO' + end + item + DatasetField = 'MES' + TableField = '' + SQLOrigin = 'MES' + end + item + DatasetField = 'TITULO' + TableField = '' + SQLOrigin = 'TITULO' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end> + end> + Name = 'InformeListadoPedidosResumen' + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 16 + end + object DataDictionary: TDADataDictionary + Fields = <> + Left = 46 + Top = 158 + end + object frxReport: TfrxReport + Version = '4.3' + DotMatrixReport = False + EngineOptions.DoublePass = True + IniFile = '\Software\Fast Reports' + PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator, pbExportQuick] + PreviewOptions.Zoom = 1.000000000000000000 + PrintOptions.Printer = 'Por defecto' + PrintOptions.PrintOnSheet = 0 + ReportOptions.CreateDate = 37800.807714351900000000 + ReportOptions.LastChange = 39840.822843958330000000 + ScriptLanguage = 'PascalScript' + ScriptText.Strings = ( + 'procedure mContinuaOnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if Engine.FinalPass then' + ' begin' + ' if ( = ) then' + ' begin ' + ' mContinua.Visible := False;' + ' end ' + ' else' + ' begin ' + ' mContinua.Visible := True;' + ' end ' + ' end; ' + 'end;' + '' + 'begin' + '' + 'end.') + ShowProgress = False + StoreInDFM = False + OnGetValue = frxReportGetValue + OnStartReport = 'frxReportOnStartReport' + Left = 137 + Top = 16 + end + object frxDBCabecera: TfrxDBDataset + UserName = 'frxDBCabecera' + CloseDataSource = False + DataSource = DADSCabecera + Left = 360 + Top = 24 + end + object frxDBDetalles: TfrxDBDataset + UserName = 'frxDBDetalles' + CloseDataSource = False + DataSource = DADSDetalles + Left = 440 + Top = 24 + end + object IBDatabase1: TIBDatabase + DatabaseName = 'C:\Codigo\Output\Debug\Database\FACTUGES.FDB' + Params.Strings = ( + 'user_name=sysdba' + 'password=masterkey' + 'lc_ctype=ISO8859_1') + LoginPrompt = False + DefaultTransaction = IBTransaction1 + Left = 48 + Top = 296 + end + object IBTransaction1: TIBTransaction + Left = 48 + Top = 352 + end + object DataSource1: TDataSource + DataSet = cabecera + Left = 216 + Top = 296 + end + object DataSource2: TDataSource + DataSet = detalles + Left = 216 + Top = 352 + end + object cabecera: TIBQuery + Database = IBDatabase1 + Transaction = IBTransaction1 + SQL.Strings = ( + 'SELECT' + ' V_PEDIDOS_PROVEEDOR.ID,' + ' V_PEDIDOS_PROVEEDOR.ID_EMPRESA,' + ' V_PEDIDOS_PROVEEDOR.REFERENCIA,' + ' V_PEDIDOS_PROVEEDOR.FECHA_PEDIDO,' + ' V_PEDIDOS_PROVEEDOR.OBSERVACIONES,' + ' V_PROVEEDORES.NOMBRE,' + ' V_PROVEEDORES.FAX,' + ' V_PROVEEDORES.PERSONA_CONTACTO,' + ' V_PROVEEDORES.CODIGO_ASIGNADO AS CODIGO_CLIENTE,' + ' V_PEDIDOS_PROVEEDOR.CALLE,' + ' V_PEDIDOS_PROVEEDOR.POBLACION,' + ' V_PEDIDOS_PROVEEDOR.PROVINCIA,' + ' V_PEDIDOS_PROVEEDOR.CODIGO_POSTAL,' + ' V_PEDIDOS_PROVEEDOR.PERSONA_CONTACTO AS ENTREGAR_A' + 'FROM' + ' V_PEDIDOS_PROVEEDOR' + + ' LEFT OUTER JOIN V_PROVEEDORES ON (V_PROVEEDORES.ID = V_PEDIDOS' + + '_PROVEEDOR.ID_PROVEEDOR)' + 'WHERE V_PEDIDOS_PROVEEDOR.ID = 2') + Left = 136 + Top = 296 + object cabeceraID: TIntegerField + FieldName = 'ID' + Origin = '"V_PEDIDOS_PROVEEDOR"."ID"' + end + object cabeceraID_EMPRESA: TIntegerField + FieldName = 'ID_EMPRESA' + Origin = '"V_PEDIDOS_PROVEEDOR"."ID_EMPRESA"' + end + object cabeceraREFERENCIA: TIBStringField + FieldName = 'REFERENCIA' + Origin = '"V_PEDIDOS_PROVEEDOR"."REFERENCIA"' + Size = 255 + end + object cabeceraFECHA_PEDIDO: TDateField + FieldName = 'FECHA_PEDIDO' + Origin = '"V_PEDIDOS_PROVEEDOR"."FECHA_PEDIDO"' + end + object cabeceraOBSERVACIONES: TMemoField + FieldName = 'OBSERVACIONES' + Origin = '"V_PEDIDOS_PROVEEDOR"."OBSERVACIONES"' + ProviderFlags = [pfInUpdate] + BlobType = ftMemo + Size = 8 + end + object cabeceraNOMBRE: TIBStringField + FieldName = 'NOMBRE' + Origin = '"V_PROVEEDORES"."NOMBRE"' + Size = 255 + end + object cabeceraFAX: TIBStringField + FieldName = 'FAX' + Origin = '"V_PROVEEDORES"."FAX"' + Size = 25 + end + object cabeceraPERSONA_CONTACTO: TIBStringField + FieldName = 'PERSONA_CONTACTO' + Origin = '"V_PROVEEDORES"."PERSONA_CONTACTO"' + Size = 255 + end + object cabeceraCODIGO_CLIENTE: TIBStringField + FieldName = 'CODIGO_CLIENTE' + Origin = '"V_PROVEEDORES"."CODIGO_ASIGNADO"' + Size = 255 + end + object cabeceraCALLE: TIBStringField + FieldName = 'CALLE' + Origin = '"V_PEDIDOS_PROVEEDOR"."CALLE"' + Size = 255 + end + object cabeceraPOBLACION: TIBStringField + FieldName = 'POBLACION' + Origin = '"V_PEDIDOS_PROVEEDOR"."POBLACION"' + Size = 255 + end + object cabeceraPROVINCIA: TIBStringField + FieldName = 'PROVINCIA' + Origin = '"V_PEDIDOS_PROVEEDOR"."PROVINCIA"' + Size = 255 + end + object cabeceraCODIGO_POSTAL: TIBStringField + FieldName = 'CODIGO_POSTAL' + Origin = '"V_PEDIDOS_PROVEEDOR"."CODIGO_POSTAL"' + Size = 10 + end + object cabeceraENTREGAR_A: TIBStringField + FieldName = 'ENTREGAR_A' + Origin = '"V_PEDIDOS_PROVEEDOR"."PERSONA_CONTACTO"' + Size = 255 + end + end + object detalles: TIBQuery + Database = IBDatabase1 + Transaction = IBTransaction1 + SQL.Strings = ( + 'SELECT DET.ID, DET.ID_PEDIDO,' + ' DET.POSICION, DET.TIPO_DETALLE,' + ' ARTICULOS.REFERENCIA, DET.CONCEPTO, DET.CANTIDAD,' + ' DET.UNIDAD_MEDIDA, DET.IMPORTE_UNIDAD, DET.IMPORTE_TOTAL,' + ' ARTICULOS.REFERENCIA_PROV as REFERENCIA_PROVEEDOR,' + ' ARTICULOS.REFERENCIA_FABR as REFERENCIA_FABRICANTE' + 'FROM PEDIDOS_PROVEEDOR_DETALLES DET' + 'LEFT OUTER JOIN ARTICULOS ON (DET.ID_ARTICULO = ARTICULOS.ID)' + 'WHERE DET.ID_PEDIDO = 2 AND DET.VISIBLE = 1 ' + 'ORDER BY DET.ID_PEDIDO, DET.POSICION;') + Left = 136 + Top = 352 + object detallesID: TIntegerField + FieldName = 'ID' + Origin = '"PEDIDOS_PROVEEDOR_DETALLES"."ID"' + ProviderFlags = [pfInUpdate, pfInWhere, pfInKey] + Required = True + end + object detallesID_PEDIDO: TIntegerField + FieldName = 'ID_PEDIDO' + Origin = '"PEDIDOS_PROVEEDOR_DETALLES"."ID_PEDIDO"' + Required = True + end + object detallesPOSICION: TIntegerField + FieldName = 'POSICION' + Origin = '"PEDIDOS_PROVEEDOR_DETALLES"."POSICION"' + end + object detallesTIPO_DETALLE: TIBStringField + FieldName = 'TIPO_DETALLE' + Origin = '"PEDIDOS_PROVEEDOR_DETALLES"."TIPO_DETALLE"' + Size = 10 + end + object detallesREFERENCIA: TIBStringField + FieldName = 'REFERENCIA' + Origin = '"ARTICULOS"."REFERENCIA"' + Size = 255 + end + object detallesCONCEPTO: TIBStringField + FieldName = 'CONCEPTO' + Origin = '"PEDIDOS_PROVEEDOR_DETALLES"."CONCEPTO"' + Size = 2000 + end + object detallesCANTIDAD: TIntegerField + FieldName = 'CANTIDAD' + Origin = '"PEDIDOS_PROVEEDOR_DETALLES"."CANTIDAD"' + end + object detallesUNIDAD_MEDIDA: TIBStringField + FieldName = 'UNIDAD_MEDIDA' + Origin = '"PEDIDOS_PROVEEDOR_DETALLES"."UNIDAD_MEDIDA"' + Size = 255 + end + object detallesIMPORTE_UNIDAD: TIBBCDField + FieldName = 'IMPORTE_UNIDAD' + Origin = '"PEDIDOS_PROVEEDOR_DETALLES"."IMPORTE_UNIDAD"' + Precision = 18 + Size = 2 + end + object detallesIMPORTE_TOTAL: TIBBCDField + FieldName = 'IMPORTE_TOTAL' + Origin = '"PEDIDOS_PROVEEDOR_DETALLES"."IMPORTE_TOTAL"' + Precision = 18 + Size = 2 + end + object detallesREFERENCIA_PROVEEDOR: TIBStringField + FieldName = 'REFERENCIA_PROVEEDOR' + Origin = '"ARTICULOS"."REFERENCIA_PROV"' + Size = 255 + end + object detallesREFERENCIA_FABRICANTE: TIBStringField + FieldName = 'REFERENCIA_FABRICANTE' + Origin = '"ARTICULOS"."REFERENCIA_FABR"' + Size = 255 + end + end + object frxCheckBoxObject1: TfrxCheckBoxObject + Left = 360 + Top = 248 + end + object frxChartObject1: TfrxChartObject + Left = 360 + Top = 296 + end + object frxGradientObject1: TfrxGradientObject + Left = 440 + Top = 248 + end + object frxCrossObject1: TfrxCrossObject + Left = 440 + Top = 400 + end + object frxOLEObject1: TfrxOLEObject + Left = 360 + Top = 400 + end + object frxBarCodeObject1: TfrxBarCodeObject + Left = 440 + Top = 352 + end + object frxRichObject1: TfrxRichObject + Left = 360 + Top = 352 + end + object DADSCabecera: TDADataSource + DataSet = tbl_Cabecera.Dataset + DataTable = tbl_Cabecera + Left = 360 + Top = 80 + end + object DADSDetalles: TDADataSource + DataSet = tbl_Detalles.Dataset + DataTable = tbl_Detalles + Left = 440 + Top = 80 + end + object tbl_Detalles: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + end + item + Name = 'CANTIDAD' + DataType = datFloat + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datFloat + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + end + item + Name = 'REFERENCIA_FABRICANTE' + DataType = datString + Size = 255 + end> + Params = < + item + Name = 'ID_PEDIDO' + Value = '3' + ParamType = daptInput + end> + MasterParamsMappings.Strings = ( + 'ID_PEDIDO=ID') + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer1 + DetailFields = 'ID_PEDIDO' + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Informe_Detalles' + IndexDefs = <> + Left = 440 + Top = 136 + end + object tbl_Cabecera: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_PEDIDO' + DataType = datDateTime + end + item + Name = 'FECHA_ENTREGA' + DataType = datDateTime + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'FAX' + DataType = datString + Size = 25 + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + end + item + Name = 'ENTREGAR_A' + DataType = datString + Size = 255 + end> + Params = < + item + Name = 'ID' + Value = '2' + ParamType = daptInput + end> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer1 + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Informe_Cabecera' + IndexDefs = <> + Left = 360 + Top = 136 + end + object frxPDFExport1: TfrxPDFExport + ShowDialog = False + UseFileCache = True + ShowProgress = False + PrintOptimized = True + Outline = False + Author = 'FactuGES' + Subject = 'FactuGES' + Background = False + Creator = 'FactuGES' + HTMLTags = True + Left = 440 + Top = 296 + end + object frxDBInformeListadoPedidos: TfrxDBDataset + UserName = 'frxDBInformeListadoPedidos' + CloseDataSource = False + DataSource = DADSInformeListadoPedidos + Left = 600 + Top = 24 + end + object DADSInformeListadoPedidos: TDADataSource + DataSet = tbl_InformeListadoPedidos.Dataset + DataTable = tbl_InformeListadoPedidos + Left = 600 + Top = 80 + end + object tbl_InformeListadoPedidos: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + end + item + Name = 'FECHA_PEDIDO' + DataType = datDateTime + end + item + Name = 'FECHA_CONFIRMACION' + DataType = datDateTime + end + item + Name = 'FECHA_ENTREGA' + DataType = datDateTime + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + Params = <> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer1 + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'InformeListadoPedidos' + IndexDefs = <> + Left = 600 + Top = 136 + end + object frxDBInformeListadoPedidosResumen: TfrxDBDataset + UserName = 'frxDBInformeListadoPedidosResumen' + CloseDataSource = False + DataSource = DADSInformeListadoPedidosResumen + Left = 600 + Top = 208 + end + object DADSInformeListadoPedidosResumen: TDADataSource + DataSet = tbl_InformeListadoPedidosResumen.Dataset + DataTable = tbl_InformeListadoPedidosResumen + Left = 600 + Top = 264 + end + object tbl_InformeListadoPedidosResumen: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + MasterMappingMode = mmDataRequest + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + IndexDefs = <> + Left = 600 + Top = 320 + end + object DABin2DataStreamer1: TDABin2DataStreamer + Left = 48 + Top = 80 + end +end diff --git a/Source/Modulos/Pedidos a proveedor/Reports/uRptPedidosProveedor_Server.dfm.bak b/Source/Modulos/Pedidos a proveedor/Reports/uRptPedidosProveedor_Server.dfm.bak new file mode 100644 index 0000000..446b557 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Reports/uRptPedidosProveedor_Server.dfm.bak @@ -0,0 +1,1149 @@ +object RptPedidosProveedor: TRptPedidosProveedor + OldCreateOrder = True + OnCreate = DataModuleCreate + OnDestroy = DataModuleDestroy + Height = 522 + Width = 766 + object schReport: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'V_PEDIDOS_PROVEEDOR' + Name = 'IBX' + SQL = + #10' '#10'select ID_EMPRESA,'#10'extract (year from fecha_pedido) as ANO,'#10 + + 'extract (month from fecha_pedido) as MES,'#10'case'#10'when extract (mon' + + 'th from fecha_pedido) = 1 then '#39'ENERO - '#39' || extract (year from ' + + 'fecha_pedido)'#10'when extract (month from fecha_pedido) = 2 then '#39'F' + + 'EBRERO - '#39' || extract (year from fecha_pedido)'#10'when extract (mon' + + 'th from fecha_pedido) = 3 then '#39'MARZO - '#39' || extract (year from ' + + 'fecha_pedido)'#10'when extract (month from fecha_pedido) = 4 then '#39'A' + + 'BRIL - '#39' || extract (year from fecha_pedido)'#10'when extract (month' + + ' from fecha_pedido) = 5 then '#39'MAYO - '#39' || extract (year from fec' + + 'ha_pedido)'#10'when extract (month from fecha_pedido) = 6 then '#39'JUNI' + + 'O - '#39' || extract (year from fecha_pedido)'#10'when extract (month fr' + + 'om fecha_pedido) = 7 then '#39'JULIO - '#39' || extract (year from fecha' + + '_pedido)'#10'when extract (month from fecha_pedido) = 8 then '#39'AGOSTO' + + ' - '#39' || extract (year from fecha_pedido)'#10'when extract (month fro' + + 'm fecha_pedido) = 9 then '#39'SEPTIEMBRE - '#39' || extract (year from f' + + 'echa_pedido)'#10'when extract (month from fecha_pedido) = 10 then '#39'O' + + 'CTUBRE - '#39' || extract (year from fecha_pedido)'#10'when extract (mon' + + 'th from fecha_pedido) = 11 then '#39'NOVIEMBRE - '#39' || extract (year ' + + 'from fecha_pedido)'#10'when extract (month from fecha_pedido) = 12 t' + + 'hen '#39'DICIEMBRE - '#39' || extract (year from fecha_pedido)'#10'end as TI' + + 'TULO,'#10'REFERENCIA, ID_PROVEEDOR, NOMBRE, SITUACION, fecha_pedido' + + ', FECHA_CONFIRMACION, FECHA_ENTREGA, IMPORTE_TOTAL'#10#10'from V_PEDID' + + 'OS_PROVEEDOR'#10'where {where}'#10'order by ANO, MES, NOMBRE'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'MES' + TableField = '' + SQLOrigin = 'MES' + end + item + DatasetField = 'TITULO' + TableField = '' + SQLOrigin = 'TITULO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID_PROVEEDOR' + TableField = 'ID_PROVEEDOR' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'FECHA_PEDIDO' + TableField = 'FECHA_PEDIDO' + end + item + DatasetField = 'FECHA_CONFIRMACION' + TableField = 'FECHA_CONFIRMACION' + end + item + DatasetField = 'FECHA_ENTREGA' + TableField = 'FECHA_ENTREGA' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'ANO' + TableField = '' + SQLOrigin = 'ANO' + end> + end> + Name = 'InformeListadoPedidos' + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + end + item + Name = 'FECHA_PEDIDO' + DataType = datDateTime + end + item + Name = 'FECHA_CONFIRMACION' + DataType = datDateTime + end + item + Name = 'FECHA_ENTREGA' + DataType = datDateTime + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + end + item + IsPublic = False + Params = < + item + Name = 'ID' + Value = '2' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'SELECT'#10' PEDIDOS_PROVEEDOR.ID,'#10' PEDIDOS_PROVEEDOR.ID_EMPRESA,'#10' ' + + ' PEDIDOS_PROVEEDOR.REFERENCIA,'#10' PEDIDOS_PROVEEDOR.FECHA_PEDIDO,' + + #10' PEDIDOS_PROVEEDOR.FECHA_ENTREGA,'#10' PEDIDOS_PROVEEDOR.OBSERVAC' + + 'IONES,'#10' CONTACTOS.NOMBRE,'#10' COALESCE(CONTACTOS_DIRECCIONES.FAX,' + + ' CONTACTOS.FAX) AS FAX,'#10' PEDIDOS_PROVEEDOR.PERSONA_CONTACTO_PRO' + + 'V AS PERSONA_CONTACTO,'#10' PROVEEDORES_DATOS.CODIGO_ASIGNADO AS CO' + + 'DIGO_CLIENTE,'#10' PEDIDOS_PROVEEDOR.ID_ALMACEN,'#10' COALESCE(ALMACEN' + + 'ES.CALLE, PEDIDOS_PROVEEDOR.CALLE) AS CALLE,'#10' COALESCE(ALMACENE' + + 'S.POBLACION, PEDIDOS_PROVEEDOR.POBLACION) AS POBLACION,'#10' COALES' + + 'CE(ALMACENES.PROVINCIA, PEDIDOS_PROVEEDOR.PROVINCIA) AS PROVINCI' + + 'A,'#10' COALESCE(ALMACENES.CODIGO_POSTAL, PEDIDOS_PROVEEDOR.CODIGO_' + + 'POSTAL) AS CODIGO_POSTAL,'#10' PEDIDOS_PROVEEDOR.PERSONA_CONTACTO A' + + 'S ENTREGAR_A,'#10' PEDIDOS_PROVEEDOR.IMPORTE_TOTAL'#10'FROM'#10' PEDIDOS_P' + + 'ROVEEDOR'#10' INNER JOIN CONTACTOS ON (CONTACTOS.ID = PEDIDOS_PROVE' + + 'EDOR.ID_PROVEEDOR)'#10' LEFT OUTER JOIN PROVEEDORES_DATOS ON (PROVE' + + 'EDORES_DATOS.ID_PROVEEDOR = PEDIDOS_PROVEEDOR.ID_PROVEEDOR)'#10' LE' + + 'FT OUTER JOIN CONTACTOS_DIRECCIONES ON (CONTACTOS_DIRECCIONES.ID' + + ' = PEDIDOS_PROVEEDOR.ID_DIRECCION)'#10' LEFT OUTER JOIN ALMACENES O' + + 'N (ALMACENES.ID = PEDIDOS_PROVEEDOR.ID_ALMACEN)'#10'WHERE PEDIDOS_PR' + + 'OVEEDOR.ID = :ID'#10#10#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'FECHA_PEDIDO' + TableField = 'FECHA_PEDIDO' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'FAX' + TableField = 'FAX' + end + item + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end + item + DatasetField = 'FECHA_ENTREGA' + TableField = 'FECHA_ENTREGA' + end + item + DatasetField = 'ID_ALMACEN' + TableField = 'ID_ALMACEN' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end + item + DatasetField = 'CODIGO_CLIENTE' + TableField = 'CODIGO_CLIENTE' + end + item + DatasetField = 'ENTREGAR_A' + TableField = 'ENTREGAR_A' + end> + end> + Name = 'Informe_Cabecera' + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_PEDIDO' + DataType = datDateTime + end + item + Name = 'FECHA_ENTREGA' + DataType = datDateTime + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'FAX' + DataType = datString + Size = 25 + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + end + item + Name = 'ENTREGAR_A' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + ReadOnly = True + end + item + IsPublic = False + Params = < + item + Name = 'ID_PEDIDO' + Value = '3' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'SELECT DET.ID, DET.ID_PEDIDO,'#10' DET.POSICION, DET.TIPO_DETA' + + 'LLE,'#10' ARTICULOS.REFERENCIA, F_RTFTOTEXT(DET.CONCEPTO) as C' + + 'ONCEPTO, DET.CANTIDAD,'#10' DET.UNIDAD_MEDIDA, DET.IMPORTE_UNI' + + 'DAD - (DET.IMPORTE_UNIDAD * (COALESCE(DET.DESCUENTO,0) / 100)) a' + + 's IMPORTE_UNIDAD, DET.IMPORTE_TOTAL,'#10' ARTICULOS_PROVEEDORE' + + 'S.REFERENCIA_PROV as REFERENCIA_PROVEEDOR,'#10' ARTICULOS.REFE' + + 'RENCIA_FABR as REFERENCIA_FABRICANTE'#10'FROM PEDIDOS_PROVEEDOR_DETA' + + 'LLES DET'#10'LEFT OUTER JOIN ARTICULOS ON (DET.ID_ARTICULO = ARTICUL' + + 'OS.ID)'#10'LEFT JOIN PEDIDOS_PROVEEDOR ON (PEDIDOS_PROVEEDOR.ID = DE' + + 'T.ID_PEDIDO)'#10'LEFT JOIN ARTICULOS_PROVEEDORES ON ((ARTICULOS_PROV' + + 'EEDORES.ID_ARTICULO = ARTICULOS.ID) AND (ARTICULOS_PROVEEDORES.I' + + 'D_PROVEEDOR = PEDIDOS_PROVEEDOR.ID_PROVEEDOR))'#10#10'WHERE DET.ID_PED' + + 'IDO = :ID_PEDIDO AND DET.VISIBLE = 1 AND {Where}'#10'ORDER BY DET.ID' + + '_PEDIDO, DET.POSICION;'#10#10#10#10#10#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_PEDIDO' + TableField = 'ID_PEDIDO' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'UNIDAD_MEDIDA' + TableField = 'UNIDAD_MEDIDA' + end + item + DatasetField = 'IMPORTE_UNIDAD' + TableField = 'IMPORTE_UNIDAD' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = 'REFERENCIA_PROVEEDOR' + end + item + DatasetField = 'REFERENCIA_FABRICANTE' + TableField = 'REFERENCIA_FABRICANTE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + end> + end> + Name = 'Informe_Detalles' + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 32765 + end + item + Name = 'CANTIDAD' + DataType = datFloat + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datFloat + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + end + item + Name = 'REFERENCIA_FABRICANTE' + DataType = datString + Size = 255 + end> + ReadOnly = True + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_PEDIDOS_PROVEEDOR' + SQL = + #10' '#10'select ID_EMPRESA,'#10'extract (year from fecha_pedido) as ANO,'#10 + + 'extract (month from fecha_pedido) as MES,'#10'case'#10'when extract (mon' + + 'th from fecha_pedido) = 1 then '#39'ENERO - '#39' || extract (year from ' + + 'fecha_pedido)'#10'when extract (month from fecha_pedido) = 2 then '#39'F' + + 'EBRERO - '#39' || extract (year from fecha_pedido)'#10'when extract (mon' + + 'th from fecha_pedido) = 3 then '#39'MARZO - '#39' || extract (year from ' + + 'fecha_pedido)'#10'when extract (month from fecha_pedido) = 4 then '#39'A' + + 'BRIL - '#39' || extract (year from fecha_pedido)'#10'when extract (month' + + ' from fecha_pedido) = 5 then '#39'MAYO - '#39' || extract (year from fec' + + 'ha_pedido)'#10'when extract (month from fecha_pedido) = 6 then '#39'JUNI' + + 'O - '#39' || extract (year from fecha_pedido)'#10'when extract (month fr' + + 'om fecha_pedido) = 7 then '#39'JULIO - '#39' || extract (year from fecha' + + '_pedido)'#10'when extract (month from fecha_pedido) = 8 then '#39'AGOSTO' + + ' - '#39' || extract (year from fecha_pedido)'#10'when extract (month fro' + + 'm fecha_pedido) = 9 then '#39'SEPTIEMBRE - '#39' || extract (year from f' + + 'echa_pedido)'#10'when extract (month from fecha_pedido) = 10 then '#39'O' + + 'CTUBRE - '#39' || extract (year from fecha_pedido)'#10'when extract (mon' + + 'th from fecha_pedido) = 11 then '#39'NOVIEMBRE - '#39' || extract (year ' + + 'from fecha_pedido)'#10'when extract (month from fecha_pedido) = 12 t' + + 'hen '#39'DICIEMBRE - '#39' || extract (year from fecha_pedido)'#10'end as TI' + + 'TULO,'#10'sum(IMPORTE_TOTAL) as importe_total'#10#10'from V_PEDIDOS_PROVEE' + + 'DOR'#10'group by 1,2,3,4'#10'order by ANO, MES'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'ANO' + TableField = '' + SQLOrigin = 'ANO' + end + item + DatasetField = 'MES' + TableField = '' + SQLOrigin = 'MES' + end + item + DatasetField = 'TITULO' + TableField = '' + SQLOrigin = 'TITULO' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end> + end> + Name = 'InformeListadoPedidosResumen' + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 16 + end + object DataDictionary: TDADataDictionary + Fields = <> + Left = 46 + Top = 158 + end + object frxReport: TfrxReport + Version = '4.3' + DotMatrixReport = False + EngineOptions.DoublePass = True + IniFile = '\Software\Fast Reports' + PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator, pbExportQuick] + PreviewOptions.Zoom = 1.000000000000000000 + PrintOptions.Printer = 'Por defecto' + PrintOptions.PrintOnSheet = 0 + ReportOptions.CreateDate = 37800.807714351900000000 + ReportOptions.LastChange = 39840.822843958330000000 + ScriptLanguage = 'PascalScript' + ScriptText.Strings = ( + 'procedure mContinuaOnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if Engine.FinalPass then' + ' begin' + ' if ( = ) then' + ' begin ' + ' mContinua.Visible := False;' + ' end ' + ' else' + ' begin ' + ' mContinua.Visible := True;' + ' end ' + ' end; ' + 'end;' + '' + 'begin' + '' + 'end.') + ShowProgress = False + StoreInDFM = False + OnGetValue = frxReportGetValue + OnStartReport = 'frxReportOnStartReport' + Left = 137 + Top = 16 + end + object frxDBCabecera: TfrxDBDataset + UserName = 'frxDBCabecera' + CloseDataSource = False + DataSource = DADSCabecera + Left = 360 + Top = 24 + end + object frxDBDetalles: TfrxDBDataset + UserName = 'frxDBDetalles' + CloseDataSource = False + DataSource = DADSDetalles + Left = 440 + Top = 24 + end + object IBDatabase1: TIBDatabase + DatabaseName = 'C:\Codigo Tecsitel\Output\Debug\Database\FACTUGES.FDB' + Params.Strings = ( + 'user_name=sysdba' + 'password=masterkey' + 'lc_ctype=ISO8859_1') + LoginPrompt = False + DefaultTransaction = IBTransaction1 + Left = 48 + Top = 296 + end + object IBTransaction1: TIBTransaction + Left = 48 + Top = 352 + end + object DataSource1: TDataSource + DataSet = cabecera + Left = 216 + Top = 296 + end + object DataSource2: TDataSource + DataSet = detalles + Left = 216 + Top = 352 + end + object cabecera: TIBQuery + Database = IBDatabase1 + Transaction = IBTransaction1 + SQL.Strings = ( + 'SELECT' + ' V_PEDIDOS_PROVEEDOR.ID,' + ' V_PEDIDOS_PROVEEDOR.ID_EMPRESA,' + ' V_PEDIDOS_PROVEEDOR.REFERENCIA,' + ' V_PEDIDOS_PROVEEDOR.FECHA_PEDIDO,' + ' V_PEDIDOS_PROVEEDOR.OBSERVACIONES,' + ' V_PROVEEDORES.NOMBRE,' + ' V_PROVEEDORES.FAX,' + ' V_PROVEEDORES.PERSONA_CONTACTO,' + ' V_PROVEEDORES.CODIGO_ASIGNADO AS CODIGO_CLIENTE,' + ' V_PEDIDOS_PROVEEDOR.CALLE,' + ' V_PEDIDOS_PROVEEDOR.POBLACION,' + ' V_PEDIDOS_PROVEEDOR.PROVINCIA,' + ' V_PEDIDOS_PROVEEDOR.CODIGO_POSTAL,' + ' V_PEDIDOS_PROVEEDOR.PERSONA_CONTACTO AS ENTREGAR_A' + 'FROM' + ' V_PEDIDOS_PROVEEDOR' + + ' LEFT OUTER JOIN V_PROVEEDORES ON (V_PROVEEDORES.ID = V_PEDIDOS' + + '_PROVEEDOR.ID_PROVEEDOR)' + 'WHERE V_PEDIDOS_PROVEEDOR.ID = 2') + Left = 136 + Top = 296 + object cabeceraID: TIntegerField + FieldName = 'ID' + Origin = '"V_PEDIDOS_PROVEEDOR"."ID"' + end + object cabeceraID_EMPRESA: TIntegerField + FieldName = 'ID_EMPRESA' + Origin = '"V_PEDIDOS_PROVEEDOR"."ID_EMPRESA"' + end + object cabeceraREFERENCIA: TIBStringField + FieldName = 'REFERENCIA' + Origin = '"V_PEDIDOS_PROVEEDOR"."REFERENCIA"' + Size = 255 + end + object cabeceraFECHA_PEDIDO: TDateField + FieldName = 'FECHA_PEDIDO' + Origin = '"V_PEDIDOS_PROVEEDOR"."FECHA_PEDIDO"' + end + object cabeceraOBSERVACIONES: TMemoField + FieldName = 'OBSERVACIONES' + Origin = '"V_PEDIDOS_PROVEEDOR"."OBSERVACIONES"' + ProviderFlags = [pfInUpdate] + BlobType = ftMemo + Size = 8 + end + object cabeceraNOMBRE: TIBStringField + FieldName = 'NOMBRE' + Origin = '"V_PROVEEDORES"."NOMBRE"' + Size = 255 + end + object cabeceraFAX: TIBStringField + FieldName = 'FAX' + Origin = '"V_PROVEEDORES"."FAX"' + Size = 25 + end + object cabeceraPERSONA_CONTACTO: TIBStringField + FieldName = 'PERSONA_CONTACTO' + Origin = '"V_PROVEEDORES"."PERSONA_CONTACTO"' + Size = 255 + end + object cabeceraCODIGO_CLIENTE: TIBStringField + FieldName = 'CODIGO_CLIENTE' + Origin = '"V_PROVEEDORES"."CODIGO_ASIGNADO"' + Size = 255 + end + object cabeceraCALLE: TIBStringField + FieldName = 'CALLE' + Origin = '"V_PEDIDOS_PROVEEDOR"."CALLE"' + Size = 255 + end + object cabeceraPOBLACION: TIBStringField + FieldName = 'POBLACION' + Origin = '"V_PEDIDOS_PROVEEDOR"."POBLACION"' + Size = 255 + end + object cabeceraPROVINCIA: TIBStringField + FieldName = 'PROVINCIA' + Origin = '"V_PEDIDOS_PROVEEDOR"."PROVINCIA"' + Size = 255 + end + object cabeceraCODIGO_POSTAL: TIBStringField + FieldName = 'CODIGO_POSTAL' + Origin = '"V_PEDIDOS_PROVEEDOR"."CODIGO_POSTAL"' + Size = 10 + end + object cabeceraENTREGAR_A: TIBStringField + FieldName = 'ENTREGAR_A' + Origin = '"V_PEDIDOS_PROVEEDOR"."PERSONA_CONTACTO"' + Size = 255 + end + end + object detalles: TIBQuery + Database = IBDatabase1 + Transaction = IBTransaction1 + SQL.Strings = ( + 'SELECT DET.ID, DET.ID_PEDIDO,' + ' DET.POSICION, DET.TIPO_DETALLE,' + ' ARTICULOS.REFERENCIA, DET.CONCEPTO, DET.CANTIDAD,' + ' DET.UNIDAD_MEDIDA, DET.IMPORTE_UNIDAD, DET.IMPORTE_TOTAL,' + ' ARTICULOS.REFERENCIA_PROV as REFERENCIA_PROVEEDOR,' + ' ARTICULOS.REFERENCIA_FABR as REFERENCIA_FABRICANTE' + 'FROM PEDIDOS_PROVEEDOR_DETALLES DET' + 'LEFT OUTER JOIN ARTICULOS ON (DET.ID_ARTICULO = ARTICULOS.ID)' + 'WHERE DET.ID_PEDIDO = 2 AND DET.VISIBLE = 1 ' + 'ORDER BY DET.ID_PEDIDO, DET.POSICION;') + Left = 136 + Top = 352 + object detallesID: TIntegerField + FieldName = 'ID' + Origin = '"PEDIDOS_PROVEEDOR_DETALLES"."ID"' + ProviderFlags = [pfInUpdate, pfInWhere, pfInKey] + Required = True + end + object detallesID_PEDIDO: TIntegerField + FieldName = 'ID_PEDIDO' + Origin = '"PEDIDOS_PROVEEDOR_DETALLES"."ID_PEDIDO"' + Required = True + end + object detallesPOSICION: TIntegerField + FieldName = 'POSICION' + Origin = '"PEDIDOS_PROVEEDOR_DETALLES"."POSICION"' + end + object detallesTIPO_DETALLE: TIBStringField + FieldName = 'TIPO_DETALLE' + Origin = '"PEDIDOS_PROVEEDOR_DETALLES"."TIPO_DETALLE"' + Size = 10 + end + object detallesREFERENCIA: TIBStringField + FieldName = 'REFERENCIA' + Origin = '"ARTICULOS"."REFERENCIA"' + Size = 255 + end + object detallesCONCEPTO: TIBStringField + FieldName = 'CONCEPTO' + Origin = '"PEDIDOS_PROVEEDOR_DETALLES"."CONCEPTO"' + Size = 2000 + end + object detallesCANTIDAD: TIntegerField + FieldName = 'CANTIDAD' + Origin = '"PEDIDOS_PROVEEDOR_DETALLES"."CANTIDAD"' + end + object detallesUNIDAD_MEDIDA: TIBStringField + FieldName = 'UNIDAD_MEDIDA' + Origin = '"PEDIDOS_PROVEEDOR_DETALLES"."UNIDAD_MEDIDA"' + Size = 255 + end + object detallesIMPORTE_UNIDAD: TIBBCDField + FieldName = 'IMPORTE_UNIDAD' + Origin = '"PEDIDOS_PROVEEDOR_DETALLES"."IMPORTE_UNIDAD"' + Precision = 18 + Size = 2 + end + object detallesIMPORTE_TOTAL: TIBBCDField + FieldName = 'IMPORTE_TOTAL' + Origin = '"PEDIDOS_PROVEEDOR_DETALLES"."IMPORTE_TOTAL"' + Precision = 18 + Size = 2 + end + object detallesREFERENCIA_PROVEEDOR: TIBStringField + FieldName = 'REFERENCIA_PROVEEDOR' + Origin = '"ARTICULOS"."REFERENCIA_PROV"' + Size = 255 + end + object detallesREFERENCIA_FABRICANTE: TIBStringField + FieldName = 'REFERENCIA_FABRICANTE' + Origin = '"ARTICULOS"."REFERENCIA_FABR"' + Size = 255 + end + end + object frxCheckBoxObject1: TfrxCheckBoxObject + Left = 360 + Top = 248 + end + object frxChartObject1: TfrxChartObject + Left = 360 + Top = 296 + end + object frxGradientObject1: TfrxGradientObject + Left = 440 + Top = 248 + end + object frxCrossObject1: TfrxCrossObject + Left = 440 + Top = 400 + end + object frxOLEObject1: TfrxOLEObject + Left = 360 + Top = 400 + end + object frxBarCodeObject1: TfrxBarCodeObject + Left = 440 + Top = 352 + end + object frxRichObject1: TfrxRichObject + Left = 360 + Top = 352 + end + object DADSCabecera: TDADataSource + DataSet = tbl_Cabecera.Dataset + DataTable = tbl_Cabecera + Left = 360 + Top = 80 + end + object DADSDetalles: TDADataSource + DataSet = tbl_Detalles.Dataset + DataTable = tbl_Detalles + Left = 440 + Top = 80 + end + object tbl_Detalles: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + end + item + Name = 'CANTIDAD' + DataType = datFloat + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datFloat + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + end + item + Name = 'REFERENCIA_FABRICANTE' + DataType = datString + Size = 255 + end> + Params = < + item + Name = 'ID_PEDIDO' + Value = '3' + ParamType = daptInput + end> + MasterParamsMappings.Strings = ( + 'ID_PEDIDO=ID') + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer1 + DetailFields = 'ID_PEDIDO' + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Informe_Detalles' + IndexDefs = <> + Left = 440 + Top = 136 + end + object tbl_Cabecera: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_PEDIDO' + DataType = datDateTime + end + item + Name = 'FECHA_ENTREGA' + DataType = datDateTime + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'FAX' + DataType = datString + Size = 25 + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + end + item + Name = 'ENTREGAR_A' + DataType = datString + Size = 255 + end> + Params = < + item + Name = 'ID' + Value = '2' + ParamType = daptInput + end> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer1 + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Informe_Cabecera' + IndexDefs = <> + Left = 360 + Top = 136 + end + object frxPDFExport1: TfrxPDFExport + ShowDialog = False + UseFileCache = True + ShowProgress = False + PrintOptimized = True + Outline = False + Author = 'FactuGES' + Subject = 'FactuGES' + Background = False + Creator = 'FactuGES' + HTMLTags = True + Left = 440 + Top = 296 + end + object frxDBInformeListadoPedidos: TfrxDBDataset + UserName = 'frxDBInformeListadoPedidos' + CloseDataSource = False + DataSource = DADSInformeListadoPedidos + Left = 600 + Top = 24 + end + object DADSInformeListadoPedidos: TDADataSource + DataSet = tbl_InformeListadoPedidos.Dataset + DataTable = tbl_InformeListadoPedidos + Left = 600 + Top = 80 + end + object tbl_InformeListadoPedidos: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + end + item + Name = 'FECHA_PEDIDO' + DataType = datDateTime + end + item + Name = 'FECHA_CONFIRMACION' + DataType = datDateTime + end + item + Name = 'FECHA_ENTREGA' + DataType = datDateTime + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + Params = <> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer1 + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'InformeListadoPedidos' + IndexDefs = <> + Left = 600 + Top = 136 + end + object frxDBInformeListadoPedidosResumen: TfrxDBDataset + UserName = 'frxDBInformeListadoPedidosResumen' + CloseDataSource = False + DataSource = DADSInformeListadoPedidosResumen + Left = 600 + Top = 208 + end + object DADSInformeListadoPedidosResumen: TDADataSource + DataSet = tbl_InformeListadoPedidosResumen.Dataset + DataTable = tbl_InformeListadoPedidosResumen + Left = 600 + Top = 264 + end + object tbl_InformeListadoPedidosResumen: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + MasterMappingMode = mmDataRequest + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + IndexDefs = <> + Left = 600 + Top = 320 + end + object DABin2DataStreamer1: TDABin2DataStreamer + Left = 48 + Top = 80 + end +end diff --git a/Source/Modulos/Pedidos a proveedor/Reports/uRptPedidosProveedor_Server.pas b/Source/Modulos/Pedidos a proveedor/Reports/uRptPedidosProveedor_Server.pas new file mode 100644 index 0000000..304548a --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Reports/uRptPedidosProveedor_Server.pas @@ -0,0 +1,537 @@ +unit uRptPedidosProveedor_Server; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, frxClass, frxDBSet, uDAScriptingProvider, + uDADataTable, uDACDSDataTable, DB, uDAClasses, frxChart, frxGradient, + frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes, + uDAInterfaces, uDADataStreamer, IBCustomDataSet, IBQuery, IBDatabase, + uDAMemDataTable, frxExportPDF, FactuGES_Intf, uDABin2DataStreamer; + +type + TRptPedidosProveedor = class(TDataModule) + frxDBCabecera: TfrxDBDataset; + frxDBDetalles: TfrxDBDataset; + frxReport: TfrxReport; + IBDatabase1: TIBDatabase; + IBTransaction1: TIBTransaction; + DataSource1: TDataSource; + DataSource2: TDataSource; + cabecera: TIBQuery; + detalles: TIBQuery; + frxCheckBoxObject1: TfrxCheckBoxObject; + frxChartObject1: TfrxChartObject; + frxGradientObject1: TfrxGradientObject; + frxCrossObject1: TfrxCrossObject; + frxOLEObject1: TfrxOLEObject; + frxBarCodeObject1: TfrxBarCodeObject; + frxRichObject1: TfrxRichObject; + DADSCabecera: TDADataSource; + DADSDetalles: TDADataSource; + tbl_Detalles: TDAMemDataTable; + tbl_Cabecera: TDAMemDataTable; + detallesID: TIntegerField; + detallesID_PEDIDO: TIntegerField; + detallesPOSICION: TIntegerField; + detallesTIPO_DETALLE: TIBStringField; + detallesREFERENCIA: TIBStringField; + detallesCONCEPTO: TIBStringField; + detallesCANTIDAD: TIntegerField; + detallesUNIDAD_MEDIDA: TIBStringField; + detallesIMPORTE_UNIDAD: TIBBCDField; + detallesIMPORTE_TOTAL: TIBBCDField; + detallesREFERENCIA_PROVEEDOR: TIBStringField; + detallesREFERENCIA_FABRICANTE: TIBStringField; + cabeceraID: TIntegerField; + cabeceraID_EMPRESA: TIntegerField; + cabeceraREFERENCIA: TIBStringField; + cabeceraFECHA_PEDIDO: TDateField; + cabeceraOBSERVACIONES: TMemoField; + cabeceraNOMBRE: TIBStringField; + cabeceraFAX: TIBStringField; + cabeceraPERSONA_CONTACTO: TIBStringField; + cabeceraCODIGO_CLIENTE: TIBStringField; + cabeceraCALLE: TIBStringField; + cabeceraPOBLACION: TIBStringField; + cabeceraPROVINCIA: TIBStringField; + cabeceraCODIGO_POSTAL: TIBStringField; + cabeceraENTREGAR_A: TIBStringField; + frxPDFExport1: TfrxPDFExport; + frxDBInformeListadoPedidos: TfrxDBDataset; + DADSInformeListadoPedidos: TDADataSource; + tbl_InformeListadoPedidos: TDAMemDataTable; + frxDBInformeListadoPedidosResumen: TfrxDBDataset; + DADSInformeListadoPedidosResumen: TDADataSource; + tbl_InformeListadoPedidosResumen: TDAMemDataTable; + DABin2DataStreamer1: TDABin2DataStreamer; + schReport: TDASchema; + DataDictionary: TDADataDictionary; + procedure DataModuleCreate(Sender: TObject); + procedure frxReportGetValue(const VarName: string; var Value: Variant); + procedure DataModuleDestroy(Sender: TObject); + private + FConnection: IDAConnection; + FIdEmpresa: Integer; + FFechaInicio: Variant; + FFechaFin: Variant; + FListaIDProveedores: TIntegerArray; + FListaNombresProveedores: TStringList; + FImporteMinimo: Currency; + FImprimirPrecio : Boolean; + FImprimirRefProveedor : Boolean; + FDesglosado : Boolean; + procedure _GenerarPedido(const ID : Integer); + + procedure RecuperarNombresProveedores; + procedure IniciarParametrosInforme; + procedure PrepararTablaInforme(ATabla: TDAMemDataTable); + procedure PrepararTablaResumenInforme(ATabla: IDADataset); + function _GenerarInforme(const TipoInforme: String): Binary; + + public + function GenerarPedido(const ListaID : TIntegerArray; + const ImprimirPrecio: Boolean = True; + const ImprimirRefProveedor: Boolean = True): Binary; + + function GenerarPedidoEnPDF(const ListaID: TIntegerArray; + const ImprimirPrecio: Boolean = True; + const ImprimirRefProveedor: Boolean = True): Binary; + + function GenerarInformeListadoPedidos(const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + end; + +implementation + +{$R *.dfm} + +uses + uSistemaFunc, StrUtils, uDataModuleServer, schPedidosProveedorClient_Intf, + uROServer, DataAbstract4_Intf; + +const + rptInforme = 'InfPedidoProveedor.fr3'; + rptInformeListadoPedidosDesglosado = 'InformeListadoPedidosDesglosado.fr3'; + rptInformeListadoPedidos = 'InformeListadoPedidos.fr3'; + + { Dataset names for schReport } + ds_InformeListadoPedidosResumen = 'InformeListadoPedidosResumen'; + ds_InformeCabecera = 'Informe_Cabecera'; + ds_InformeDetalles = 'Informe_Detalles'; + + +{ TRptPedidosProveedor } + + +procedure TRptPedidosProveedor.DataModuleCreate(Sender: TObject); +begin + schReport.ConnectionManager := dmServer.ConnectionManager; + FConnection := dmServer.DarNuevaConexion; + frxReport.EngineOptions.NewSilentMode := simReThrow; + + FListaNombresProveedores := TStringList.Create; + + frxDBCabecera.DataSource := DADSCabecera; + frxDBCabecera.CloseDataSource := False; + + frxDBDetalles.DataSource := DADSDetalles; + frxDBDetalles.CloseDataSource := False; +end; + +procedure TRptPedidosProveedor.DataModuleDestroy(Sender: TObject); +begin + tbl_Cabecera.Active := False; + tbl_Detalles.Active := False; + + FreeANDNIL(FListaNombresProveedores); +end; + +procedure TRptPedidosProveedor.frxReportGetValue(const VarName: string; + var Value: Variant); +begin + if VarName = 'ImprimirPrecio' then + Value := FImprimirPrecio; + if VarName = 'ImprimirRefProveedor' then + Value := FImprimirRefProveedor; +end; + +function TRptPedidosProveedor.GenerarInformeListadoPedidos( + const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; + const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; + const ImporteMinimo: Currency): Binary; +var + ATipoInforme: String; + AStream: TMemoryStream; + dsMaster: IDADataset; + +begin + FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + + AStream := TMemoryStream.Create; + try + //Inicializamos parametros + FIdEmpresa := IdEmpresa; + FFechaInicio := FechaInicio; + FFechaFin := FechaFin; + FImporteMinimo := ImporteMinimo; + + FListaIDProveedores := ListaIDProveedores; + + if tbl_InformeListadoPedidos.Active then + tbl_InformeListadoPedidos.Active := False; + PrepararTablaInforme(tbl_InformeListadoPedidos); + + //Se prepara la tabla del listado resumen del informe + if tbl_InformeListadoPedidosResumen.Active then + tbl_InformeListadoPedidosResumen.Active := False; + dsMaster := schReport.NewDataset(FConnection, ds_InformeListadoPedidosResumen, [], [], False); + PrepararTablaResumenInforme(dsMaster); + //Esto se hace para rellenar la tabla del datamodule que usa el informe. + dsMaster.Open; + AStream.Clear; + DABin2DataStreamer1.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1); + DABin2DataStreamer1.ReadDataset(AStream, tbl_InformeListadoPedidosResumen, TRUE, '', TRUE, TRUE); + + //DESGLOSADO POR PROVEEDOR EN ESTE INFORME NO SE DESGLOSAR POR PROVEEDOR + FDesglosado := Desglosado; + if Desglosado then + ATipoInforme := rptInformeListadoPedidosDesglosado + else + ATipoInforme := rptInformeListadoPedidos; + + //Finalmente se abren las tablas del informe + tbl_InformeListadoPedidos.Active := True; + tbl_InformeListadoPedidosResumen.Active := True; + + Result := _GenerarInforme(ATipoInforme); + + finally + AStream.Free; + dsMaster := Nil; + FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + end; +end; + +function TRptPedidosProveedor.GenerarPedido(const ListaID : TIntegerArray; + const ImprimirPrecio: Boolean = True; + const ImprimirRefProveedor: Boolean = True): Binary; +var + i: Integer; +begin + Result := Binary.Create; + FImprimirPrecio := ImprimirPrecio; + FImprimirRefProveedor := ImprimirRefProveedor; + try + //Vamos generando todos y cada uno de los pedidos recibidos + for i := 0 to ListaID.Count - 1 do + _GenerarPedido(ListaID.Items[i]); + + frxReport.PreviewPages.SaveToStream(Result); + finally + end; +end; + +function TRptPedidosProveedor._GenerarInforme(const TipoInforme: String): Binary; +var + AInforme: Variant; + +begin + Result := Binary.Create; + AInforme := DarRutaFichero(DarRutaInformes, TipoInforme, IntToStr(FIdEmpresa)); + if VarIsNull(AInforme) then + raise Exception.Create (('Error Servidor: _GenerarInforme, no encuentra informe ' + TipoInforme)); + + frxReport.LoadFromFile(AInforme, True); + IniciarParametrosInforme; + + frxReport.PrepareReport(False); + frxReport.PreviewPages.SaveToStream(Result); +end; + +procedure TRptPedidosProveedor._GenerarPedido(const ID: Integer); +var + AInforme: Variant; +begin + FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + try + tbl_Cabecera.Active := False; + tbl_Detalles.Active := False; + + tbl_Cabecera.ParamByName('ID').AsInteger := ID; + tbl_Detalles.ParamByName('ID_PEDIDO').AsInteger := ID; + + tbl_Cabecera.Active := True; + tbl_Detalles.Active := True; + + AInforme := DarRutaFichero(DarRutaInformes, rptInforme, tbl_Cabecera.FieldByName('ID_EMPRESA').AsString); + if VarIsNull(AInforme) then + raise Exception.Create (('Error Servidor: _GenerarPedido, no encuentra informe ' + rptInforme)); + + frxReport.LoadFromFile(AInforme, True); + frxReport.PrepareReport(False); + finally + FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + end; +end; + +function TRptPedidosProveedor.GenerarPedidoEnPDF( + const ListaID: TIntegerArray; const ImprimirPrecio: Boolean; + const ImprimirRefProveedor: Boolean): Binary; +var + i: Integer; +begin + Result := Binary.Create; + FImprimirPrecio := ImprimirPrecio; + FImprimirRefProveedor := ImprimirRefProveedor; + try + //Vamos generando todos y cada uno de los albaranes recibidos + for i := 0 to ListaID.Count - 1 do + _GenerarPedido(ListaID.Items[i]); + + frxPDFExport1.Stream := Result; + frxReport.Export(frxPDFExport1) + finally + end; +end; + + +procedure TRptPedidosProveedor.IniciarParametrosInforme; +var + ATextos : TStringList; + ACadena : String; +begin + ATextos := TStringList.Create; + + try + if (not VarIsNull(FFechaInicio)) and (not VarIsNull(FFechaFin)) then + ACadena := Format('Fechas de pedido desde el %s hasta el %s', [VarToStr(FFechaInicio), VarToStr(FFechaFin)]) + else + ACadena := 'Sin rango de fechas'; + ATextos.Add(ACadena); + ACadena := ''; + + if (FImporteMinimo > 0) then + begin + ACadena := Format('Pedidos con importe superior a %m', [FImporteMinimo]); + ATextos.Add(ACadena); + ACadena := ''; + end; + + if Assigned(FListaIDProveedores) and (FListaIDProveedores.Count > 0) then + begin + RecuperarNombresProveedores; + ACadena := FListaNombresProveedores.Text; + end + else begin + ACadena := 'Todos los proveedores'; + if FDesglosado then + ACadena := ACadena + ' (desglosados)' + end; + + ATextos.Add(ACadena); + ACadena := ''; + + frxReport.Variables.Variables['TextoParametros'] := ATextos.Text; + finally + FreeAndNil(ATextos); + end; +end; + +procedure TRptPedidosProveedor.PrepararTablaInforme(ATabla: TDAMemDataTable); +var + Condicion: TDAWhereExpression; + i: Integer; + +begin + // Filtrar el informe por empresa + with ATabla.DynamicWhere do + begin + // (ID_EMPRESA >= ID) + Condicion := NewBinaryExpression(NewField('', fld_PedidosProveedorID_EMPRESA), NewConstant(FIdEmpresa, datInteger), dboEqual); + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + // Filtrar el informe por fechas + if not VarIsNull(FFechaInicio) + and not VarIsNull(FFechaFin) then + begin + with ATabla.DynamicWhere do + begin + // (FECHA_INICIO between FECHA_FIN) + Condicion := NewBinaryExpression(NewField('', fld_PedidosProveedorFECHA_PEDIDO), NewConstant(FFechaInicio, datDateTime), dboGreaterOrEqual); + Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_PedidosProveedorFECHA_PEDIDO), NewConstant(FFechaFin, datDateTime), dboLessOrEqual), Condicion, dboAnd); + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + end; + + // Filtrar el informe por proveedor + if Assigned(FListaIDProveedores) then + begin + with ATabla.DynamicWhere do + begin + for i := 0 to FListaIDProveedores.Count - 1 do + begin + + // (ID_PROVEEDOR = ID) + Condicion := NewBinaryExpression(NewField('', fld_PedidosProveedorID_PROVEEDOR), NewConstant(FListaIDProveedores.Items[i], datInteger), dboEqual); + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + end; + end; + + // Filtrar el informe por importe minimo + if (FImporteMinimo > 0) then + begin + with ATabla.DynamicWhere do + begin + // (IMPORTE_TOTAL > ImporteMinimo) + Condicion := NewBinaryExpression(NewField('', fld_PedidosProveedorIMPORTE_TOTAL), NewConstant(FImporteMinimo, datCurrency), dboGreaterOrEqual); + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + end; +end; + +procedure TRptPedidosProveedor.PrepararTablaResumenInforme(ATabla: IDADataset); +var + i: Integer; + AWhereStr : String; + +begin + // Filtrar el informe por empresa + AWhereStr := ' (' + fld_PedidosProveedorID_EMPRESA + ' = ' + IntToStr(FIdEmpresa) + ') '; + + // Filtrar el informe por fechas + if not VarIsNull(FFechaInicio) + and not VarIsNull(FFechaFin) then + begin + if Length(AWhereStr) > 0 then + AWhereStr := AWhereStr + 'AND'; + AWhereStr := AWhereStr + ' (' + fld_PedidosProveedorFECHA_PEDIDO + ' between ''' + ReplaceStr(VarToStr(FFechaInicio),'/','.') + ''' and ''' + ReplaceStr(VarToStr(FFechaFin),'/','.') + ''') '; + end; + + // Filtrar el informe por proveedor + if Assigned(FListaIDProveedores) then + begin + for i := 0 to FListaIDProveedores.Count - 1 do + begin + if Length(AWhereStr) > 0 then + AWhereStr := AWhereStr + 'AND'; + AWhereStr := AWhereStr + ' (' + fld_PedidosProveedorID_PROVEEDOR + ' = ' + IntToStr(FListaIDProveedores.Items[i]) + ') '; + end; + end; + + // Filtrar el informe por importe minimo + if (FImporteMinimo > 0) then + begin + if Length(AWhereStr) > 0 then + AWhereStr := AWhereStr + 'AND'; + AWhereStr := AWhereStr + ' (' + fld_PedidosProveedorIMPORTE_TOTAL + ' >= ' + CurrToStr(FImporteMinimo) + ') '; + end; + + ATabla.Where.AddText(AWhereStr); +end; + +procedure TRptPedidosProveedor.RecuperarNombresProveedores; +var + AContactosService : IsrvContactos; + Intf : IInterface; + AClientID : TGUID; + + ATableNameArray: StringArray; + ATableRequestInfoArray: TableRequestInfoArray; + ATableRequestInfo: TableRequestInfoV5; + AStream: TMemoryStream; + ADataTable: TDAMemDataTable; + i: Integer; + AWhereBuilder : TDAWhereBuilder; + ACondicion : TDAWhereExpression; +begin + CreateGUID(AClientID); + + GetClassFactory('srvContactos').CreateInstance(AClientID, Intf); + + if Assigned(Intf) then + begin + AContactosService := Intf as IsrvContactos; + + ATableNameArray := StringArray.Create; + ATableRequestInfoArray := TableRequestInfoArray.Create; + AWhereBuilder := TDAWhereBuilder.Create; + try + ATableNameArray.Add('Proveedores'); + ATableRequestInfo := TableRequestInfoV5.Create; + + with ATableRequestInfo do + begin + IncludeSchema := True; + MaxRecords := -1; + UserFilter := ''; + + AWhereBuilder.Clear; + with AWhereBuilder do + for i := 0 to FListaIDProveedores.Count - 1 do + begin + ACondicion := NewBinaryExpression( + NewBinaryExpression(NewField('', 'ID'), NewConstant(FListaIDProveedores[i], datInteger), dboEqual), + NewBinaryExpression(NewField('', 'ID_EMPRESA'), NewConstant(FIdEmpresa, datInteger), dboEqual), + dboAnd); + + if not AWhereBuilder.IsEmpty then + Expression := NewBinaryExpression(Expression, ACondicion, dboOr) + else + Expression := ACondicion; + end; + + WhereClause := AWhereBuilder.ExpressionToXmlNode(AWhereBuilder.Expression); + end; + + try + ATableRequestInfoArray.Add(ATableRequestInfo); + AStream := AContactosService.GetData(ATableNameArray, ATableRequestInfoArray); + if Assigned(AStream) then + begin + ADataTable := TDAMemDataTable.Create(nil); + try + ADataTable.Name := 'Proveedores'; + ADataTable.LocalDataStreamer := DABin2DataStreamer1; + ADataTable.RemoteFetchEnabled := False; + DABin2DataStreamer1.ReadDataset(AStream, ADataTable, True); + + ADataTable.Open; + FListaNombresProveedores.Clear; + for i := 0 to ADataTable.RecordCount - 1 do + begin + FListaNombresProveedores.Add(ADataTable.FieldByName('NOMBRE').AsString); + ADataTable.Next; + end; + + finally + FreeANDNil(ADataTable); + end; + end; + except + on e: Exception do + dmServer.EscribirLog(e.Message); + end; + finally + FreeANDNIL(ATableRequestInfoArray); + FreeANDNIL(ATableNameArray); + FreeANDNIL(AWhereBuilder); + end; + end; +end; + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Reports/uRptWordPedidoProveedor.dcu b/Source/Modulos/Pedidos a proveedor/Reports/uRptWordPedidoProveedor.dcu new file mode 100644 index 0000000..d366275 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Reports/uRptWordPedidoProveedor.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Reports/uRptWordPedidoProveedor.dfm b/Source/Modulos/Pedidos a proveedor/Reports/uRptWordPedidoProveedor.dfm new file mode 100644 index 0000000..9df9787 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Reports/uRptWordPedidoProveedor.dfm @@ -0,0 +1,550 @@ +object RptWordPedidoProveedor: TRptWordPedidoProveedor + OldCreateOrder = False + OnCreate = DataModuleCreate + Height = 223 + Width = 337 + object schReport: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Datasets = < + item + IsPublic = False + Params = < + item + Name = 'ID' + Value = '3' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'SELECT'#10' PEDIDOS_PROVEEDOR.ID,'#10' PEDIDOS_PROVEEDOR.ID_EMPRESA,'#10' ' + + ' PEDIDOS_PROVEEDOR.REFERENCIA,'#10' PEDIDOS_PROVEEDOR.FECHA_PEDIDO,' + + #10' PEDIDOS_PROVEEDOR.FECHA_ENTREGA,'#10' PEDIDOS_PROVEEDOR.OBSERVAC' + + 'IONES,'#10' CONTACTOS.NOMBRE,'#10' COALESCE(CONTACTOS_DIRECCIONES.FAX,' + + ' CONTACTOS.FAX) AS FAX,'#10' PEDIDOS_PROVEEDOR.PERSONA_CONTACTO_PRO' + + 'V AS PERSONA_CONTACTO,'#10' PROVEEDORES_DATOS.CODIGO_ASIGNADO AS CO' + + 'DIGO_CLIENTE,'#10' PEDIDOS_PROVEEDOR.ID_ALMACEN,'#10' COALESCE(ALMACEN' + + 'ES.CALLE, PEDIDOS_PROVEEDOR.CALLE) AS CALLE_ALMACEN,'#10' COALESCE(' + + 'ALMACENES.POBLACION, PEDIDOS_PROVEEDOR.POBLACION) AS POBLACION_A' + + 'LMACEN,'#10' COALESCE(ALMACENES.PROVINCIA, PEDIDOS_PROVEEDOR.PROVIN' + + 'CIA) AS PROVINCIA_ALMACEN,'#10' COALESCE(ALMACENES.CODIGO_POSTAL, P' + + 'EDIDOS_PROVEEDOR.CODIGO_POSTAL) AS CODIGO_POSTAL_ALMACEN,'#10' PEDI' + + 'DOS_PROVEEDOR.PERSONA_CONTACTO AS PERSONA_CONTACTO_ALMACEN,'#10' PE' + + 'DIDOS_PROVEEDOR.IMPORTE_TOTAL'#10'FROM'#10' PEDIDOS_PROVEEDOR'#10' INNER J' + + 'OIN CONTACTOS ON (CONTACTOS.ID = PEDIDOS_PROVEEDOR.ID_PROVEEDOR)' + + #10' LEFT OUTER JOIN PROVEEDORES_DATOS ON (PROVEEDORES_DATOS.ID_PR' + + 'OVEEDOR = PEDIDOS_PROVEEDOR.ID_PROVEEDOR)'#10' LEFT OUTER JOIN ALMA' + + 'CENES ON (ALMACENES.ID = PEDIDOS_PROVEEDOR.ID_ALMACEN)'#10' LEFT OU' + + 'TER JOIN CONTACTOS_DIRECCIONES ON (CONTACTOS_DIRECCIONES.ID = PE' + + 'DIDOS_PROVEEDOR.ID_DIRECCION)'#10'WHERE PEDIDOS_PROVEEDOR.ID = :ID'#10#10 + + #10#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'FECHA_PEDIDO' + TableField = 'FECHA_PEDIDO' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'FAX' + TableField = 'FAX' + end + item + DatasetField = 'CALLE_ALMACEN' + TableField = 'CALLE_ALMACEN' + end + item + DatasetField = 'POBLACION_ALMACEN' + TableField = 'POBLACION_ALMACEN' + end + item + DatasetField = 'PROVINCIA_ALMACEN' + TableField = 'PROVINCIA_ALMACEN' + end + item + DatasetField = 'CODIGO_POSTAL_ALMACEN' + TableField = 'CODIGO_POSTAL_ALMACEN' + end + item + DatasetField = 'PERSONA_CONTACTO_ALMACEN' + TableField = 'PERSONA_CONTACTO_ALMACEN' + end + item + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end + item + DatasetField = 'FECHA_ENTREGA' + TableField = 'FECHA_ENTREGA' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'ID_ALMACEN' + TableField = 'ID_ALMACEN' + end + item + DatasetField = 'CODIGO_CLIENTE' + TableField = 'CODIGO_CLIENTE' + end> + end> + Name = 'Informe_Cabecera' + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_PEDIDO' + DataType = datDateTime + end + item + Name = 'FECHA_ENTREGA' + DataType = datDateTime + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'FAX' + DataType = datString + Size = 25 + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + end + item + Name = 'CALLE_ALMACEN' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION_ALMACEN' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA_ALMACEN' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL_ALMACEN' + DataType = datString + Size = 10 + end + item + Name = 'PERSONA_CONTACTO_ALMACEN' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + ReadOnly = True + end + item + IsPublic = False + Params = < + item + Name = 'ID_PEDIDO' + Value = '2' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + SQL = + 'SELECT DET.ID, DET.ID_PEDIDO,'#10' DET.POSICION, DET.TIPO_DETA' + + 'LLE,'#10' ARTICULOS.REFERENCIA, F_RTFTOTEXT(DET.CONCEPTO) as C' + + 'ONCEPTO, DET.CONCEPTO as CONCEPTO_RTF,'#10' DET.CANTIDAD,'#10' ' + + ' DET.UNIDAD_MEDIDA, DET.IMPORTE_UNIDAD - (DET.IMPORTE_UNIDAD *' + + ' (DET.DESCUENTO / 100)) as IMPORTE_UNIDAD, DET.IMPORTE_TOTAL,'#10' ' + + ' ARTICULOS_PROVEEDORES.REFERENCIA_PROV as REFERENCIA_PROVEED' + + 'OR,'#10' ARTICULOS.REFERENCIA_FABR as REFERENCIA_FABRICANTE'#10'FR' + + 'OM PEDIDOS_PROVEEDOR_DETALLES DET'#10'LEFT OUTER JOIN ARTICULOS ON (' + + 'DET.ID_ARTICULO = ARTICULOS.ID)'#10'LEFT JOIN PEDIDOS_PROVEEDOR ON (' + + 'PEDIDOS_PROVEEDOR.ID = DET.ID_PEDIDO)'#10'LEFT JOIN ARTICULOS_PROVEE' + + 'DORES ON ((ARTICULOS_PROVEEDORES.ID_ARTICULO = ARTICULOS.ID) AND' + + ' (ARTICULOS_PROVEEDORES.ID_PROVEEDOR = PEDIDOS_PROVEEDOR.ID_PROV' + + 'EEDOR))'#10#10'WHERE DET.ID_PEDIDO = :ID_PEDIDO AND DET.VISIBLE = 1 AN' + + 'D {Where}'#10'ORDER BY DET.ID_PEDIDO, DET.POSICION;'#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_PEDIDO' + TableField = 'ID_PEDIDO' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + end + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'UNIDAD_MEDIDA' + TableField = 'UNIDAD_MEDIDA' + end + item + DatasetField = 'IMPORTE_UNIDAD' + TableField = 'IMPORTE_UNIDAD' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = 'REFERENCIA_PROVEEDOR' + end + item + DatasetField = 'REFERENCIA_FABRICANTE' + TableField = 'REFERENCIA_FABRICANTE' + end + item + DatasetField = 'CONCEPTO_RTF' + TableField = 'CONCEPTO_RTF' + end> + end> + Name = 'Informe_Detalles' + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 32765 + end + item + Name = 'CONCEPTO_RTF' + DataType = datString + Size = 2000 + end + item + Name = 'CANTIDAD' + DataType = datFloat + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datFloat + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + end + item + Name = 'REFERENCIA_FABRICANTE' + DataType = datString + Size = 255 + end> + ReadOnly = True + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 16 + end + object DataDictionary: TDADataDictionary + Fields = <> + Left = 46 + Top = 142 + end + object DABin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 80 + end + object tbl_Cabecera: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_PEDIDO' + DataType = datDateTime + end + item + Name = 'FECHA_ENTREGA' + DataType = datDateTime + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'FAX' + DataType = datString + Size = 25 + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'CALLE_ALMACEN' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION_ALMACEN' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA_ALMACEN' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL_ALMACEN' + DataType = datString + Size = 10 + end + item + Name = 'PERSONA_CONTACTO_ALMACEN' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + Params = < + item + Name = 'ID' + Value = '3' + ParamType = daptInput + end> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer + LogicalName = 'Informe_Cabecera' + IndexDefs = <> + Left = 168 + Top = 16 + end + object tbl_Detalles: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 32765 + end + item + Name = 'CONCEPTO_RTF' + DataType = datString + Size = 2000 + end + item + Name = 'CANTIDAD' + DataType = datFloat + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datFloat + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + end + item + Name = 'REFERENCIA_FABRICANTE' + DataType = datString + Size = 255 + end> + Params = < + item + Name = 'ID_PEDIDO' + Value = '2' + ParamType = daptInput + end> + MasterParamsMappings.Strings = ( + 'ID_PRESUPUESTO=ID_PRESUPUESTO') + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer + LogicalName = 'Informe_Detalles' + IndexDefs = <> + Left = 264 + Top = 16 + end + object tbl_Empresa: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = < + item + Name = 'ID' + Value = '31' + ParamType = daptInput + end> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LogicalName = 'Empresa' + IndexDefs = <> + Left = 168 + Top = 80 + end +end diff --git a/Source/Modulos/Pedidos a proveedor/Reports/uRptWordPedidoProveedor.pas b/Source/Modulos/Pedidos a proveedor/Reports/uRptWordPedidoProveedor.pas new file mode 100644 index 0000000..c71ea82 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Reports/uRptWordPedidoProveedor.pas @@ -0,0 +1,289 @@ +unit uRptWordPedidoProveedor; + +interface + +uses + SysUtils, Classes, AHWord97, IB, IBCustomDataSet, IBDatabase, + Word2000, uDAInterfaces, uDADataStreamer, uDABin2DataStreamer, uDAClasses, + uDAScriptingProvider, uDADataTable, uDAMemDataTable; + +type + TRptWordPedidoProveedor = class(TDataModule) + DABin2DataStreamer: TDABin2DataStreamer; + tbl_Cabecera: TDAMemDataTable; + tbl_Detalles: TDAMemDataTable; + tbl_Empresa: TDAMemDataTable; + schReport: TDASchema; + DataDictionary: TDADataDictionary; + procedure DataModuleCreate(Sender: TObject); + private + FConnection: IDAConnection; + FPlantilla : string; + FWordApp : TWordApp; + FDocumento : TWordDoc; + FCodigoPedido : string; + FNombreFichero : String; + + function Generar : Boolean; + function RellenarDatosPedido : Boolean; + function RellenarDatosDetalle : Boolean; + procedure _GenerarPedido(const AID: String); + public + ImprimirPrecio : Boolean; + ImprimirRefProveedor : Boolean; + function Exportar(Codigo, Fichero : String): Boolean; + constructor Create (AOwner : TComponent); override; + destructor Destroy; override; + end; + +implementation + +{ TRptWordPedidoProveedor } + +{$R *.dfm} + +uses + Windows, Variants, Dialogs, uDataModuleServer, uStringsUtils, uSistemaFunc, + srvEmpresas_Impl, uROTypes, uROClasses; + +const + rptInforme = 'PedidoProveedor.rdx'; + +constructor TRptWordPedidoProveedor.Create(AOwner: TComponent); +begin + inherited; + ImprimirPrecio := False; + ImprimirRefProveedor := False; + FDocumento := NIL; +end; + +destructor TRptWordPedidoProveedor.Destroy; +begin + if FDocumento <> NIL then + FDocumento.Free; + FDocumento := NIL; + inherited; +end; + +function TRptWordPedidoProveedor.Exportar(Codigo, Fichero: String): Boolean; +begin + if EsCadenaVacia(Fichero) then + begin + Result := False; + raise Exception.Create('Falta indicar el fichero donde se exportar el listado.'); + end; + + FNombreFichero := Fichero; + FCodigoPedido := Codigo; + _GenerarPedido(Codigo); + Result := True; +end; + +procedure TRptWordPedidoProveedor.DataModuleCreate(Sender: TObject); +begin + schReport.ConnectionManager := dmServer.ConnectionManager; + FConnection := dmServer.DarNuevaConexion; +end; + +function TRptWordPedidoProveedor.Generar : Boolean; +begin + FWordApp := TWordApp.Create (False, False); + with FWordApp do + begin + Visible := False; + ScreenUpdating := False; + end; + + FDocumento := TWordDoc.CreateNewDoc(FWordApp, FPlantilla); + FWordApp.SaveActiveDocAs(FNombreFichero); + try + if not RellenarDatosPedido then + RaiseError('Se producido un error al generar la cabecera en MS Word.'); + + if not RellenarDatosDetalle then + RaiseError('Se producido un error al generar el informe en MS Word.'); + + FWordApp.CloseApp(wdSaveChanges); + Result := True; + finally + FDocumento := NIL; + FWordApp := NIL; + end; +end; + + +function TRptWordPedidoProveedor.RellenarDatosDetalle : Boolean; +var + numRows, numCols, mergesplit : OleVariant; + MaxCols, iRowCount : Integer; + ACantidad: String; + AIndice: Integer; + AText : String; +begin + iRowCount := 2; + numrows := 2; + numcols := 1; + mergeSplit := False; + MaxCols := 12; + + with FDocumento.Document.Tables.Item(1), tbl_Detalles do + begin + tbl_Detalles.First; + while not tbl_Detalles.EOF do + begin + Rows.Item (iRowCount).Cells.Split (numRows, numCols, mergesplit); + if ImprimirRefProveedor then + Cell(iRowCount, 1).Range.Text := FieldByName('REFERENCIA_PROVEEDOR').AsString; + + Cell(iRowCount, 2).Range.Text := FieldByName('REFERENCIA_FABRICANTE').AsString; + Cell(iRowCount, 3).Range.Text := FieldByName('CONCEPTO').AsString; + + ACantidad := FloatToStr(FieldByName('CANTIDAD').AsFloat); + AIndice := Pos(',', ACantidad); + if AIndice > 0 then + AText := FormatFloat('#,0.00', FieldByName('CANTIDAD').AsFloat) + else + AText := FormatFloat('#,0.##', FieldByName('CANTIDAD').AsFloat); + + Cell(iRowCount, 4).Range.Text := AText + ' ' + FieldByName('UNIDAD_MEDIDA').AsString; + + if ImprimirPrecio + and (FieldByName('IMPORTE_UNIDAD').AsFloat <> 0) then + Cell(iRowCount, 5).Range.Text := FormatFloat(DISPLAY_EUROS2, FieldByName('IMPORTE_UNIDAD').AsFloat) + else + Cell(iRowCount, 5).Range.Text := ''; + + if ImprimirPrecio + and (FieldByName('IMPORTE_TOTAL').AsFloat <> 0) then + Cell(iRowCount, 6).Range.Text := FormatFloat(DISPLAY_EUROS2, FieldByName('IMPORTE_TOTAL').AsFloat) + else + Cell(iRowCount, 6).Range.Text := ''; + + Next; + Inc (iRowCount); + end; + + Rows.Item(iRowCount).Delete; + + {while iRowCount <= MaxCols do + begin + Rows.Item (iRowCount).Cells.Split (numRows, numCols, mergesplit); + inc (iRowCount); + end;} + end; + Result := True; +end; + +function TRptWordPedidoProveedor.RellenarDatosPedido : Boolean; +var + DireccionEntrega : String; +// LinkToFile, SaveWithDocument, _Range : OleVariant; +// Imagen : InlineShape; + +begin + + //PARA DIBUJAR EL LOGOTIPO MULTIEMPRESA + {if (EmpresaActiva.Logotipo <> Nil) then + begin + //Activamos cabecera + FWordApp.Application.ActiveWindow.ActivePane.View.SeekView := wdSeekCurrentPageHeader; + LinkToFile := False; + SaveWithDocument := True; + _Range := EmptyParam; + FicheroTemporal := DarFicheroTemporal; + EmpresaActiva.Logotipo.SaveToFile (FicheroTemporal); + Imagen := FWordApp.Application.ActiveWindow.ActivePane.Selection.InlineShapes.AddPicture(ficherotemporal, LinkToFile, SaveWithDocument, _Range); + + //Formateamos imagen + if ((Imagen.Get_Width > ANCHO_LOGO_INF)) then + begin + Imagen.Set_Height(((ANCHO_LOGO_INF * Imagen.Get_Height) /Imagen.Get_Width)); + Imagen.Set_Width(ANCHO_LOGO_INF); + end; + end;} + + with FDocumento, tbl_Cabecera do + begin + ReplaceBookmark('CodigoPedido', FieldByName('REFERENCIA').AsString); + ReplaceBookmark('FechaPedido', FieldByName('FECHA_PEDIDO').AsString); + + // En la direccin mostrar aquellos campos que estn rellenos. + DireccionEntrega := ''; + if not EsCadenaVacia(FieldByName('CALLE_ALMACEN').AsString) then + DireccionEntrega := DireccionEntrega + FieldByName('CALLE_ALMACEN').AsString; + if not EsCadenaVacia(FieldByName('CODIGO_POSTAL_ALMACEN').AsString) then + DireccionEntrega := DireccionEntrega + ', ' + FieldByName('CODIGO_POSTAL_ALMACEN').AsString; + if not EsCadenaVacia(FieldByName('POBLACION_ALMACEN').AsString) then + DireccionEntrega := DireccionEntrega + ', ' + FieldByName('POBLACION_ALMACEN').AsString; + if not EsCadenaVacia(FieldByName('PROVINCIA_ALMACEN').AsString) then + DireccionEntrega := DireccionEntrega + ', ' + FieldByName('PROVINCIA_ALMACEN').AsString; + ReplaceBookmark('LugarEntrega', DireccionEntrega); + + { ReplaceBookmark('LugarEntrega', FieldByName('CALLEALMACEN').AsString + ' ' + + FieldByName('NUMEROALMACEN').AsString + ', ' + FieldByName('PISOALMACEN').AsString + ', ' + + FieldByName('CODIGOPOSTALALMACEN').AsString + ' ' + FieldByName('POBLACIONALMACEN').AsString + ', ' + FieldByName('PROVINCIAALMACEN').AsString);} + + ReplaceBookmark('PersonaEntrega', FieldByName('PERSONA_CONTACTO_ALMACEN').AsString); + if FieldByName('FECHA_ENTREGA').IsNull then + ReplaceBookmark('FechaEntrega', '') + else + ReplaceBookmark('FechaEntrega', 'FECHA DE ENTREGA PREVISTA: ' + FieldByName('FECHA_ENTREGA').AsString); + + ReplaceBookmark('NombreProveedor', FieldByName('NOMBRE').AsString); + ReplaceBookmark('FaxProveedor', FieldByName('FAX').AsString); + ReplaceBookmark('PersonaContactoProveedor', FieldByName('PERSONA_CONTACTO').AsString); + ReplaceBookmark('CodigoClienteProveedor', FieldByName('CODIGO_CLIENTE').AsString); + + if ImprimirPrecio then + ReplaceBookmark('ImporteTotal', FormatFloat(DISPLAY_EUROS2, FieldByName('IMPORTE_TOTAL').AsFloat)) + else + ReplaceBookmark('ImporteTotal', ''); + + ReplaceBookmark('NotasPedido', FieldByName('OBSERVACIONES').AsString); + + ReplaceBookmark('NombreEmpresa', tbl_Empresa.FieldByName('NOMBRE').AsString); + ReplaceBookmark('NombreEmpresa2', tbl_Empresa.FieldByName('NOMBRE').AsString); + ReplaceBookmark('CifEmpresa', tbl_Empresa.FieldByName('NIF_CIF').AsString); + ReplaceBookmark('DireccionEmpresa', + Format('%s. %s %s', [tbl_Empresa.FieldByName('CALLE').AsString, + tbl_Empresa.FieldByName('CODIGO_POSTAL').AsString, tbl_Empresa.FieldByName('POBLACION').AsString])); + ReplaceBookmark('TelefonoEmpresa', tbl_Empresa.FieldByName('TELEFONO_1').AsString); + ReplaceBookmark('FaxEmpresa', tbl_Empresa.FieldByName('FAX').AsString); + ReplaceBookmark('CorreoEmpresa', tbl_Empresa.FieldByName('EMAIL_1').AsString); + end; + Result := True; +end; + +procedure TRptWordPedidoProveedor._GenerarPedido(const AID: String); +var + ACopiaPlantilla : String; +begin + FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + try + tbl_Cabecera.ParamByName('ID').AsString := AID; + tbl_Detalles.ParamByName('ID_PEDIDO').AsString := AID; + + tbl_Cabecera.Active := True; + tbl_Detalles.Active := True; + + FPlantilla := DarRutaInformes + tbl_Cabecera.FieldByName('ID_EMPRESA').AsString + '\' + rptInforme; + FCodigoPedido := AID; + + if RecuperarEmpresa(tbl_Cabecera.FieldByName('ID_EMPRESA').AsInteger, tbl_Empresa) then + begin + ACopiaPlantilla := DarFicheroTemporal; + CopiarFichero(FPlantilla, ACopiaPlantilla); + FPlantilla := ACopiaPlantilla; + try + Generar; + finally + SysUtils.DeleteFile(ACopiaPlantilla); + end; + end; + finally + FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + end; +end; + + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Servidor/srvPedidosProveedor_Impl.dcu b/Source/Modulos/Pedidos a proveedor/Servidor/srvPedidosProveedor_Impl.dcu new file mode 100644 index 0000000..9854543 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Servidor/srvPedidosProveedor_Impl.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Servidor/srvPedidosProveedor_Impl.dfm b/Source/Modulos/Pedidos a proveedor/Servidor/srvPedidosProveedor_Impl.dfm new file mode 100644 index 0000000..f278a93 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Servidor/srvPedidosProveedor_Impl.dfm @@ -0,0 +1,1669 @@ +object srvPedidosProveedor: TsrvPedidosProveedor + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + ConnectionName = 'IBX' + ServiceSchema = schPedidosProveedor + ServiceDataStreamer = Bin2DataStreamer + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + Height = 231 + Width = 353 + object schPedidosProveedor: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DADataDictionary + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + Name = 'IBX' + SQL = + 'select ANO from'#10'(select distinct(substr(FECHA_PEDIDO, 1,4)) as A' + + 'NO'#10'from pedidos_proveedor'#10'order by 1 desc)'#10#10'UNION ALL'#10#10'select di' + + 'stinct '#39'Todos'#39' as ANO'#10'from empresas'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ANO' + TableField = 'ANO' + end> + end> + Name = 'ListaAnosPedidos' + Fields = < + item + Name = 'ANO' + DataType = datString + Size = 254 + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_PEDIDOS_PROVEEDOR' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'ID_PROVEEDOR' + TableField = 'ID_PROVEEDOR' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'FECHA_ENVIO' + TableField = 'FECHA_ENVIO' + end + item + DatasetField = 'FECHA_PEDIDO' + TableField = 'FECHA_PEDIDO' + end + item + DatasetField = 'FECHA_CONFIRMACION' + TableField = 'FECHA_CONFIRMACION' + end + item + DatasetField = 'FECHA_ENTREGA' + TableField = 'FECHA_ENTREGA' + end + item + DatasetField = 'ID_ALMACEN' + TableField = 'ID_ALMACEN' + end + item + DatasetField = 'TIPO_ALMACEN' + TableField = 'TIPO_ALMACEN' + end + item + DatasetField = 'NOMBRE_ALMACEN' + TableField = 'NOMBRE_ALMACEN' + end + item + DatasetField = 'ID_OBRA' + TableField = 'ID_OBRA' + end + item + DatasetField = 'NOMBRE_OBRA' + TableField = 'NOMBRE_OBRA' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'INCIDENCIAS' + TableField = 'INCIDENCIAS' + end + item + DatasetField = 'INCIDENCIAS_ACTIVAS' + TableField = 'INCIDENCIAS_ACTIVAS' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end + item + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end + item + DatasetField = 'TELEFONO' + TableField = 'TELEFONO' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end + item + DatasetField = 'ID_PEDIDO_CLIENTE' + TableField = 'ID_PEDIDO_CLIENTE' + end + item + DatasetField = 'REF_PED_CLIENTE' + TableField = 'REF_PED_CLIENTE' + end + item + DatasetField = 'IMPORTE_NETO' + TableField = 'IMPORTE_NETO' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IMPORTE_DESCUENTO' + TableField = 'IMPORTE_DESCUENTO' + end + item + DatasetField = 'BASE_IMPONIBLE' + TableField = 'BASE_IMPONIBLE' + end + item + DatasetField = 'IVA' + TableField = 'IVA' + end + item + DatasetField = 'IMPORTE_IVA' + TableField = 'IMPORTE_IVA' + end + item + DatasetField = 'ID_FORMA_PAGO' + TableField = 'ID_FORMA_PAGO' + end + item + DatasetField = 'ID_FACTURA' + TableField = 'ID_FACTURA' + end + item + DatasetField = 'REF_FACTURA_PROV' + TableField = 'REF_FACTURA_PROV' + end + item + DatasetField = 'ID_DIRECCION' + TableField = 'ID_DIRECCION' + end + item + DatasetField = 'PERSONA_CONTACTO_PROV' + TableField = 'PERSONA_CONTACTO_PROV' + end> + end> + Name = 'PedidosProveedor' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_PEDIDOS_PROV_ID' + ServerAutoRefresh = True + DictionaryEntry = 'PedidosProveedor_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'PedidosProveedor_ID_EMPRESA' + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + DictionaryEntry = 'PedidosProveedor_ID_PROVEEDOR' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + ServerAutoRefresh = True + DictionaryEntry = 'PedidosProveedor_NOMBRE' + end + item + Name = 'ID_DIRECCION' + DataType = datInteger + DictionaryEntry = 'PedidosProveedor_ID_DIRECCION' + end + item + Name = 'PERSONA_CONTACTO_PROV' + DataType = datString + Size = 255 + DictionaryEntry = 'PedidosProveedor_PERSONA_CONTACTO_PROV' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'PedidosProveedor_REFERENCIA' + end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + DictionaryEntry = 'PedidosProveedor_SITUACION' + end + item + Name = 'FECHA_ENVIO' + DataType = datDateTime + DictionaryEntry = 'PedidosProveedor_FECHA_ENVIO' + end + item + Name = 'FECHA_PEDIDO' + DataType = datDateTime + DictionaryEntry = 'PedidosProveedor_FECHA_PEDIDO' + end + item + Name = 'FECHA_CONFIRMACION' + DataType = datDateTime + DictionaryEntry = 'PedidosProveedor_FECHA_CONFIRMACION' + end + item + Name = 'FECHA_ENTREGA' + DataType = datDateTime + DictionaryEntry = 'PedidosProveedor_FECHA_ENTREGA' + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + DictionaryEntry = 'PedidosProveedor_ID_ALMACEN' + end + item + Name = 'TIPO_ALMACEN' + DataType = datString + Size = 10 + ServerAutoRefresh = True + DictionaryEntry = 'PedidosProveedor_TIPO_ALMACEN' + end + item + Name = 'NOMBRE_ALMACEN' + DataType = datString + Size = 255 + ServerAutoRefresh = True + DictionaryEntry = 'PedidosProveedor_NOMBRE_ALMACEN' + end + item + Name = 'ID_OBRA' + DataType = datInteger + DictionaryEntry = 'PedidosProveedor_ID_OBRA' + end + item + Name = 'NOMBRE_OBRA' + DataType = datString + Size = 255 + ServerAutoRefresh = True + DictionaryEntry = 'PedidosProveedor_NOMBRE_OBRA' + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + DictionaryEntry = 'PedidosProveedor_OBSERVACIONES' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DictionaryEntry = 'PedidosProveedor_IMPORTE_TOTAL' + end + item + Name = 'INCIDENCIAS' + DataType = datMemo + DictionaryEntry = 'PedidosProveedor_INCIDENCIAS' + end + item + Name = 'INCIDENCIAS_ACTIVAS' + DataType = datInteger + DictionaryEntry = 'PedidosProveedor_INCIDENCIAS_ACTIVAS' + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DictionaryEntry = 'PedidosProveedor_CALLE' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DictionaryEntry = 'PedidosProveedor_POBLACION' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'PedidosProveedor_PROVINCIA' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DictionaryEntry = 'PedidosProveedor_CODIGO_POSTAL' + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + DictionaryEntry = 'PedidosProveedor_PERSONA_CONTACTO' + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + DictionaryEntry = 'PedidosProveedor_TELEFONO' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'PedidosProveedor_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'PedidosProveedor_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'PedidosProveedor_USUARIO' + end + item + Name = 'ID_PEDIDO_CLIENTE' + DataType = datInteger + DictionaryEntry = 'PedidosProveedor_ID_PEDIDO_CLIENTE' + end + item + Name = 'REF_PED_CLIENTE' + DataType = datString + Size = 255 + ServerAutoRefresh = True + DictionaryEntry = 'PedidosProveedor_REF_PED_CLIENTE' + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + DictionaryEntry = 'PedidosProveedor_IMPORTE_NETO' + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + DictionaryEntry = 'PedidosProveedor_IMPORTE_PORTE' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DictionaryEntry = 'PedidosProveedor_DESCUENTO' + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + DictionaryEntry = 'PedidosProveedor_IMPORTE_DESCUENTO' + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + DictionaryEntry = 'PedidosProveedor_BASE_IMPONIBLE' + end + item + Name = 'IVA' + DataType = datFloat + ServerAutoRefresh = True + DictionaryEntry = 'PedidosProveedor_IVA' + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + DictionaryEntry = 'PedidosProveedor_IMPORTE_IVA' + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + DictionaryEntry = 'PedidosProveedor_ID_FORMA_PAGO' + end + item + Name = 'ID_FACTURA' + DataType = datInteger + DictionaryEntry = 'PedidosProveedor_ID_FACTURA' + end + item + Name = 'REF_FACTURA_PROV' + DataType = datString + Size = 255 + DictionaryEntry = 'PedidosProveedor_REF_FACTURA_PROV' + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PEDIDOS_PROVEEDOR_DETALLES' + SQL = + 'SELECT'#10' PEDIDOS_PROVEEDOR_DETALLES.ID, PEDIDOS_PROVEEDOR_DETA' + + 'LLES.ID_PEDIDO,'#10' PEDIDOS_PROVEEDOR_DETALLES.POSICION, PEDIDOS' + + '_PROVEEDOR_DETALLES.TIPO_DETALLE,'#10' PEDIDOS_PROVEEDOR_DETALLES' + + '.CONCEPTO, PEDIDOS_PROVEEDOR_DETALLES.CANTIDAD,'#10' PEDIDOS_PROV' + + 'EEDOR_DETALLES.UNIDAD_MEDIDA,'#10' PEDIDOS_PROVEEDOR_DETALLES.IMP' + + 'ORTE_UNIDAD, PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_TOTAL,'#10' PEDID' + + 'OS_PROVEEDOR_DETALLES.VISIBLE,'#10#10' PEDIDOS_PROVEEDOR_DETALLES.I' + + 'D_ARTICULO, PEDIDOS_PROVEEDOR_DETALLES.DESCUENTO,'#10' PEDIDOS_PR' + + 'OVEEDOR_DETALLES.IMPORTE_PORTE,'#10' ARTICULOS.REFERENCIA, ARTICU' + + 'LOS_PROVEEDORES.REFERENCIA_PROV as REFERENCIA_PROVEEDOR,'#10' ART' + + 'ICULOS.REFERENCIA_FABR as REFERENCIA_FABRICANTE'#10'FROM PEDIDOS_PRO' + + 'VEEDOR_DETALLES'#10'LEFT JOIN ARTICULOS ON (ARTICULOS.ID = PEDIDOS_P' + + 'ROVEEDOR_DETALLES.ID_ARTICULO)'#10'LEFT JOIN PEDIDOS_PROVEEDOR ON (P' + + 'EDIDOS_PROVEEDOR.ID = PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO)'#10'LEFT' + + ' JOIN ARTICULOS_PROVEEDORES ON ((ARTICULOS_PROVEEDORES.ID_ARTICU' + + 'LO = ARTICULOS.ID) AND (ARTICULOS_PROVEEDORES.ID_PROVEEDOR = PED' + + 'IDOS_PROVEEDOR.ID_PROVEEDOR))'#10'WHERE {where}'#10'ORDER BY POSICION;'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_PEDIDO' + TableField = 'ID_PEDIDO' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + end + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'UNIDAD_MEDIDA' + TableField = 'UNIDAD_MEDIDA' + end + item + DatasetField = 'IMPORTE_UNIDAD' + TableField = 'IMPORTE_UNIDAD' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'VISIBLE' + TableField = 'VISIBLE' + end + item + DatasetField = 'ID_ARTICULO' + TableField = 'ID_ARTICULO' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end + item + DatasetField = 'REFERENCIA' + TableField = '' + SQLOrigin = 'REFERENCIA' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = '' + SQLOrigin = 'REFERENCIA_PROVEEDOR' + end + item + DatasetField = 'REFERENCIA_FABRICANTE' + TableField = '' + SQLOrigin = 'REFERENCIA_FABRICANTE' + end> + end> + Name = 'PedidosProveedor_Detalles' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_PEDIDOS_PROV_DETALLES_ID' + ServerAutoRefresh = True + DictionaryEntry = 'PedidosProveedor_Detalles_ID' + InPrimaryKey = True + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + DictionaryEntry = 'PedidosProveedor_Detalles_ID_PEDIDO' + end + item + Name = 'POSICION' + DataType = datInteger + DictionaryEntry = 'POSICIONCONCEPTO' + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + DictionaryEntry = 'PedidosProveedor_Detalles_TIPO_DETALLE' + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + DictionaryEntry = 'PedidosProveedor_Detalles_CONCEPTO' + end + item + Name = 'CANTIDAD' + DataType = datFloat + DictionaryEntry = 'CANTIDAD' + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + DictionaryEntry = 'PedidosProveedor_Detalles_UNIDAD_MEDIDA' + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + DictionaryEntry = 'PedidosProveedor_Detalles_IMPORTE_UNIDAD' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DictionaryEntry = 'PedidosProveedor_Detalles_IMPORTE_TOTAL' + end + item + Name = 'VISIBLE' + DataType = datInteger + DictionaryEntry = 'PedidosProveedor_Detalles_VISIBLE' + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + DictionaryEntry = 'PedidosProveedor_Detalles_ID_ARTICULO' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DictionaryEntry = 'PedidosProveedor_Detalles_DESCUENTO' + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + DictionaryEntry = 'PedidosProveedor_Detalles_IMPORTE_PORTE' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'PedidosProveedor_Detalles_REFERENCIA' + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DictionaryEntry = 'PedidosProveedor_Detalles_REFERENCIA_PROVEEDOR' + end + item + Name = 'REFERENCIA_FABRICANTE' + DataType = datString + Size = 255 + DictionaryEntry = 'PedidosProveedor_Detalles_REFERENCIA_FABRICANTE' + end> + end + item + Params = < + item + Name = 'ID' + Value = '41' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'SELECT V_PED_PROV_ARTICULOS.ID_PEDIDO,'#10' ARTICULOS.REFERENC' + + 'IA,'#10' V_PED_PROV_ARTICULOS.ID_ARTICULO,'#10' COALESCE(ART' + + 'ICULOS.DESCRIPCION, V_PED_PROV_ARTICULOS.DESCRIPCION) as CONCEPT' + + 'O,'#10' V_PED_PROV_ARTICULOS.CANTIDAD_PENDIENTE as CANTIDAD,'#10' ' + + ' ARTICULOS_PROVEEDORES.REFERENCIA_PROV as REFERENCIA_PROVEE' + + 'DOR'#10'FROM V_PED_PROV_ARTICULOS'#10' LEFT JOIN ARTICULOS ON (ARTIC' + + 'ULOS.ID = V_PED_PROV_ARTICULOS.ID_ARTICULO)'#10' LEFT JOIN PEDID' + + 'OS_PROVEEDOR ON (PEDIDOS_PROVEEDOR.ID = V_PED_PROV_ARTICULOS.ID_' + + 'PEDIDO)'#10' LEFT JOIN ARTICULOS_PROVEEDORES ON'#10' ((ARTICU' + + 'LOS_PROVEEDORES.ID_ARTICULO = ARTICULOS.ID) AND'#10' (ARTICU' + + 'LOS_PROVEEDORES.ID_PROVEEDOR = PEDIDOS_PROVEEDOR.ID_PROVEEDOR))'#10 + + 'WHERE (V_PED_PROV_ARTICULOS.CANTIDAD_PENDIENTE <> 0)'#10' AND (V_PE' + + 'D_PROV_ARTICULOS.ID_PEDIDO = :ID)'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_PEDIDO' + TableField = 'ID_PEDIDO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID_ARTICULO' + TableField = 'ID_ARTICULO' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + end + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = 'REFERENCIA_PROVEEDOR' + end> + end> + Name = 'PedidosProveedor_Articulos_Pendientes' + Fields = < + item + Name = 'ID_PEDIDO' + DataType = datInteger + DictionaryEntry = 'PedidosProveedor_Detalles_ID_PEDIDO' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'PedidosProveedor_Detalles_REFERENCIA' + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + DictionaryEntry = 'PedidosProveedor_Detalles_ID_ARTICULO' + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + DictionaryEntry = 'PedidosProveedor_Detalles_CONCEPTO' + end + item + Name = 'CANTIDAD' + DataType = datFloat + DictionaryEntry = 'CANTIDAD' + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DictionaryEntry = 'PedidosProveedor_Detalles_REFERENCIA_PROVEEDOR' + end> + ReadOnly = True + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PEDIDOS_PROVEEDOR' + SQL = 'DELETE '#10' FROM'#10' PEDIDOS_PROVEEDOR'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_PedidosProveedor' + end + item + Params = < + item + Name = 'PERSONA_CONTACTO_PROV' + Value = '' + end + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_PEDIDOS_PROV_ID' + Value = '' + end + item + Name = 'ID_EMPRESA' + Value = '' + end + item + Name = 'ID_PROVEEDOR' + Value = '' + end + item + Name = 'ID_DIRECCION' + Value = '' + end + item + Name = 'REFERENCIA' + Value = '' + end + item + Name = 'FECHA_PEDIDO' + Value = '' + end + item + Name = 'FECHA_CONFIRMACION' + Value = '' + end + item + Name = 'FECHA_ENTREGA' + Value = '' + end + item + Name = 'ID_ALMACEN' + Value = '' + end + item + Name = 'ID_OBRA' + Value = '' + end + item + Name = 'OBSERVACIONES' + Value = '' + end + item + Name = 'INCIDENCIAS' + Value = '' + end + item + Name = 'INCIDENCIAS_ACTIVAS' + Value = '' + end + item + Name = 'CALLE' + Value = '' + end + item + Name = 'CODIGO_POSTAL' + Value = '' + end + item + Name = 'POBLACION' + Value = '' + end + item + Name = 'PROVINCIA' + Value = '' + end + item + Name = 'PERSONA_CONTACTO' + Value = '' + end + item + Name = 'TELEFONO' + Value = '' + end + item + Name = 'ID_PEDIDO_CLIENTE' + Value = '' + end + item + Name = 'IMPORTE_NETO' + Value = '' + end + item + Name = 'IMPORTE_PORTE' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'IMPORTE_DESCUENTO' + Value = '' + end + item + Name = 'BASE_IMPONIBLE' + Value = '' + end + item + Name = 'IVA' + Value = '' + end + item + Name = 'IMPORTE_IVA' + Value = '' + end + item + Name = 'IMPORTE_TOTAL' + Value = '' + end + item + Name = 'ID_FORMA_PAGO' + Value = '' + end + item + Name = 'FECHA_ENVIO' + Value = '' + end + item + Name = 'USUARIO' + Value = '' + end + item + Name = 'ID_FACTURA' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PEDIDOS_PROVEEDOR' + SQL = + 'INSERT'#10' INTO PEDIDOS_PROVEEDOR'#10' (ID, ID_EMPRESA, ID_PROVEEDO' + + 'R, ID_DIRECCION,'#10' PERSONA_CONTACTO_PROV, REFERENCIA, FECHA_P' + + 'EDIDO,'#10' FECHA_CONFIRMACION, FECHA_ENTREGA, ID_ALMACEN, ID_OB' + + 'RA,'#10' OBSERVACIONES, INCIDENCIAS, INCIDENCIAS_ACTIVAS, CALLE,' + + ' CODIGO_POSTAL,'#10' POBLACION, PROVINCIA, PERSONA_CONTACTO, TEL' + + 'EFONO, ID_PEDIDO_CLIENTE,'#10' IMPORTE_NETO, IMPORTE_PORTE, DESC' + + 'UENTO, IMPORTE_DESCUENTO,'#10' BASE_IMPONIBLE, IVA, IMPORTE_IVA,' + + ' IMPORTE_TOTAL, ID_FORMA_PAGO,'#10' FECHA_ENVIO, USUARIO, FECHA_' + + 'ALTA, ID_FACTURA)'#10' VALUES'#10' (:ID, :ID_EMPRESA, :ID_PROVEEDOR,' + + ' :ID_DIRECCION,'#10' :PERSONA_CONTACTO_PROV, :REFERENCIA, :FECHA' + + '_PEDIDO,'#10' :FECHA_CONFIRMACION, :FECHA_ENTREGA, :ID_ALMACEN, ' + + ':ID_OBRA,'#10' :OBSERVACIONES, :INCIDENCIAS, :INCIDENCIAS_ACTIVA' + + 'S,'#10' :CALLE, :CODIGO_POSTAL, :POBLACION, :PROVINCIA, :PERSONA' + + '_CONTACTO,'#10' :TELEFONO, :ID_PEDIDO_CLIENTE, :IMPORTE_NETO, :I' + + 'MPORTE_PORTE,'#10' :DESCUENTO, :IMPORTE_DESCUENTO, :BASE_IMPONIB' + + 'LE, :IVA,'#10' :IMPORTE_IVA, :IMPORTE_TOTAL, :ID_FORMA_PAGO, :FE' + + 'CHA_ENVIO,'#10' :USUARIO, CURRENT_TIMESTAMP, :ID_FACTURA)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_PedidosProveedor' + end + item + Params = < + item + Name = 'PERSONA_CONTACTO_PROV' + Value = '' + end + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_PEDIDOS_PROV_ID' + Value = '' + end + item + Name = 'OBSERVACIONES' + Value = '' + end + item + Name = 'REFERENCIA' + Value = '' + end + item + Name = 'ID_EMPRESA' + Value = '' + end + item + Name = 'ID_PROVEEDOR' + Value = '' + end + item + Name = 'ID_DIRECCION' + Value = '' + end + item + Name = 'FECHA_ENVIO' + Value = '' + end + item + Name = 'FECHA_PEDIDO' + Value = '' + end + item + Name = 'FECHA_CONFIRMACION' + Value = '' + end + item + Name = 'FECHA_ENTREGA' + Value = '' + end + item + Name = 'INCIDENCIAS' + Value = '' + end + item + Name = 'IMPORTE_TOTAL' + Value = '' + end + item + Name = 'INCIDENCIAS_ACTIVAS' + Value = '' + end + item + Name = 'ID_ALMACEN' + Value = '' + end + item + Name = 'ID_OBRA' + Value = '' + end + item + Name = 'CALLE' + Value = '' + end + item + Name = 'POBLACION' + Value = '' + end + item + Name = 'PROVINCIA' + Value = '' + end + item + Name = 'CODIGO_POSTAL' + Value = '' + end + item + Name = 'PERSONA_CONTACTO' + Value = '' + end + item + Name = 'TELEFONO' + Value = '' + end + item + Name = 'ID_PEDIDO_CLIENTE' + Value = '' + end + item + Name = 'IMPORTE_NETO' + Value = '' + end + item + Name = 'IMPORTE_PORTE' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'IMPORTE_DESCUENTO' + Value = '' + end + item + Name = 'BASE_IMPONIBLE' + Value = '' + end + item + Name = 'IVA' + Value = '' + end + item + Name = 'IMPORTE_IVA' + Value = '' + end + item + Name = 'ID_FORMA_PAGO' + Value = '' + end + item + Name = 'USUARIO' + Value = '' + end + item + Name = 'ID_FACTURA' + Value = '' + end + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PEDIDOS_PROVEEDOR' + SQL = + 'UPDATE PEDIDOS_PROVEEDOR'#10' SET'#10' ID = :ID,'#10' OBSERVACIONES =' + + ' :OBSERVACIONES,'#10' REFERENCIA = :REFERENCIA,'#10' ID_EMPRESA = ' + + ':ID_EMPRESA,'#10' ID_PROVEEDOR = :ID_PROVEEDOR,'#10' ID_DIRECCION ' + + '= :ID_DIRECCION,'#10' PERSONA_CONTACTO_PROV = :PERSONA_CONTACTO_P' + + 'ROV,'#10' FECHA_ENVIO = :FECHA_ENVIO,'#10' FECHA_PEDIDO = :FECHA_P' + + 'EDIDO, '#10' FECHA_CONFIRMACION = :FECHA_CONFIRMACION, '#10' FECHA' + + '_ENTREGA = :FECHA_ENTREGA, '#10' INCIDENCIAS = :INCIDENCIAS, '#10' ' + + ' IMPORTE_TOTAL = :IMPORTE_TOTAL, '#10' INCIDENCIAS_ACTIVAS = :INC' + + 'IDENCIAS_ACTIVAS, '#10' ID_ALMACEN = :ID_ALMACEN, '#10' ID_OBRA = ' + + ':ID_OBRA,'#10' CALLE = :CALLE, '#10' POBLACION = :POBLACION, '#10' ' + + 'PROVINCIA = :PROVINCIA, '#10' CODIGO_POSTAL = :CODIGO_POSTAL, '#10' ' + + ' PERSONA_CONTACTO = :PERSONA_CONTACTO, '#10' TELEFONO = :TELEFON' + + 'O, '#10' ID_PEDIDO_CLIENTE = :ID_PEDIDO_CLIENTE, '#10' IMPORTE_NET' + + 'O = :IMPORTE_NETO, '#10' IMPORTE_PORTE = :IMPORTE_PORTE, '#10' DES' + + 'CUENTO = :DESCUENTO, '#10' IMPORTE_DESCUENTO = :IMPORTE_DESCUENTO' + + ', '#10' BASE_IMPONIBLE = :BASE_IMPONIBLE, '#10' IVA = :IVA, '#10' I' + + 'MPORTE_IVA = :IMPORTE_IVA, '#10' ID_FORMA_PAGO = :ID_FORMA_PAGO,'#10 + + ' USUARIO = :USUARIO,'#10' FECHA_MODIFICACION = CURRENT_TIMESTA' + + 'MP,'#10' ID_FACTURA = :ID_FACTURA'#10' WHERE'#10' (ID = :OLD_ID)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_PedidosProveedor' + end + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_PEDIDOS_PROV_DETALLES_ID' + Value = '' + end + item + Name = 'ID_PEDIDO' + Value = '' + end + item + Name = 'POSICION' + Value = '' + end + item + Name = 'TIPO_DETALLE' + Value = '' + end + item + Name = 'ID_ARTICULO' + Value = '' + end + item + Name = 'CONCEPTO' + Value = '' + end + item + Name = 'CANTIDAD' + Value = '' + end + item + Name = 'UNIDAD_MEDIDA' + Value = '' + end + item + Name = 'IMPORTE_UNIDAD' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'IMPORTE_PORTE' + Value = '' + end + item + Name = 'IMPORTE_TOTAL' + Value = '' + end + item + Name = 'VISIBLE' + Value = '' + end> + Statements = < + item + ConnectionType = 'Interbase' + Default = True + TargetTable = 'PEDIDOS_PROVEEDOR_DETALLES' + SQL = + 'INSERT'#10' INTO PEDIDOS_PROVEEDOR_DETALLES'#10' (ID, ID_PEDIDO, POS' + + 'ICION, TIPO_DETALLE, ID_ARTICULO, '#10' CONCEPTO, CANTIDAD, UNID' + + 'AD_MEDIDA, IMPORTE_UNIDAD, '#10' DESCUENTO, IMPORTE_PORTE, IMPOR' + + 'TE_TOTAL, VISIBLE, FECHA_ALTA)'#10' VALUES'#10' (:ID, :ID_PEDIDO, :P' + + 'OSICION, :TIPO_DETALLE, :ID_ARTICULO, '#10' :CONCEPTO, :CANTIDAD' + + ', :UNIDAD_MEDIDA, :IMPORTE_UNIDAD, '#10' :DESCUENTO, :IMPORTE_PO' + + 'RTE, :IMPORTE_TOTAL, :VISIBLE, '#10' current_timestamp)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_PedidosProveedor_Detalles' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + Value = '0' + end> + Statements = < + item + ConnectionType = 'Interbase' + Default = True + TargetTable = 'PEDIDOS_PROVEEDOR_DETALLES' + SQL = + 'DELETE '#10' FROM'#10' PEDIDOS_PROVEEDOR_DETALLES'#10' WHERE'#10' (ID = ' + + ':OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_PedidosProveedor_Detalles' + end + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_PEDIDOS_PROV_DETALLES_ID' + Value = '' + end + item + Name = 'ID_PEDIDO' + Value = '' + end + item + Name = 'POSICION' + Value = '' + end + item + Name = 'TIPO_DETALLE' + Value = '' + end + item + Name = 'ID_ARTICULO' + Value = '' + end + item + Name = 'CONCEPTO' + Value = '' + end + item + Name = 'CANTIDAD' + Value = '' + end + item + Name = 'UNIDAD_MEDIDA' + Value = '' + end + item + Name = 'IMPORTE_UNIDAD' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'IMPORTE_PORTE' + Value = '' + end + item + Name = 'IMPORTE_TOTAL' + Value = '' + end + item + Name = 'VISIBLE' + Value = '' + end + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + ConnectionType = 'Interbase' + Default = True + TargetTable = 'PEDIDOS_PROVEEDOR_DETALLES' + SQL = + 'UPDATE PEDIDOS_PROVEEDOR_DETALLES'#10' SET'#10' ID = :ID,'#10' ID_PED' + + 'IDO = :ID_PEDIDO,'#10' POSICION = :POSICION,'#10' TIPO_DETALLE = :' + + 'TIPO_DETALLE, '#10' ID_ARTICULO = :ID_ARTICULO, '#10' CONCEPTO = :' + + 'CONCEPTO, '#10' CANTIDAD = :CANTIDAD, '#10' UNIDAD_MEDIDA = :UNIDA' + + 'D_MEDIDA, '#10' IMPORTE_UNIDAD = :IMPORTE_UNIDAD, '#10' DESCUENTO ' + + '= :DESCUENTO, '#10' IMPORTE_PORTE = :IMPORTE_PORTE, '#10' IMPORTE_' + + 'TOTAL = :IMPORTE_TOTAL, '#10' VISIBLE = :VISIBLE, '#10' FECHA_MODI' + + 'FICACION = current_timestamp'#10' WHERE'#10' (ID = :OLD_ID)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_PedidosProveedor_Detalles' + end> + RelationShips = < + item + Name = 'FK_PEDIDOSPROVEEDOR_DETALLES' + MasterDatasetName = 'PedidosProveedor' + MasterFields = 'ID' + DetailDatasetName = 'PedidosProveedor_Detalles' + DetailFields = 'ID_PEDIDO' + RelationshipType = rtForeignKey + end> + UpdateRules = < + item + Name = 'Insert PedidosProveedor' + DoUpdate = False + DoDelete = False + DatasetName = 'PedidosProveedor' + FailureBehavior = fbRaiseException + end + item + Name = 'Insert PedidosProveedor_Detalles' + DoUpdate = False + DoDelete = False + DatasetName = 'PedidosProveedor_Detalles' + FailureBehavior = fbRaiseException + end + item + Name = 'Update PedidosProveedor' + DoInsert = False + DoDelete = False + DatasetName = 'PedidosProveedor' + FailureBehavior = fbRaiseException + end + item + Name = 'Update PedidosProveedor_Detalles' + DoInsert = False + DoDelete = False + DatasetName = 'PedidosProveedor_Detalles' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete PedidosProveedor_Detalles' + DoUpdate = False + DoInsert = False + DatasetName = 'PedidosProveedor_Detalles' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete PedidosProveedor' + DoUpdate = False + DoInsert = False + DatasetName = 'PedidosProveedor' + FailureBehavior = fbRaiseException + end> + Version = 0 + Left = 56 + Top = 24 + end + object bpPedidosProveedor: TDABusinessProcessor + Schema = schPedidosProveedor + InsertCommandName = 'Insert_PedidosProveedor' + DeleteCommandName = 'Delete_PedidosProveedor' + UpdateCommandName = 'Update_PedidosProveedor' + ReferencedDataset = 'PedidosProveedor' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 240 + Top = 24 + end + object bpPedidosProveedor_Detalles: TDABusinessProcessor + Schema = schPedidosProveedor + InsertCommandName = 'Insert_PedidosProveedor_Detalles' + DeleteCommandName = 'Delete_PedidosProveedor_Detalles' + UpdateCommandName = 'Update_PedidosProveedor_Detalles' + ReferencedDataset = 'PedidosProveedor_Detalles' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 240 + Top = 88 + end + object DADataDictionary: TDADataDictionary + Fields = < + item + Name = 'PedidosProveedor_ID' + DataType = datAutoInc + GeneratorName = 'GEN_PEDIDOS_PROV_ID' + Required = True + DisplayLabel = 'ID' + ServerAutoRefresh = True + end + item + Name = 'PedidosProveedor_ID_EMPRESA' + DataType = datInteger + DisplayLabel = 'ID_EMPRESA' + end + item + Name = 'PedidosProveedor_NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Nombre del proveedor' + end + item + Name = 'PedidosProveedor_FECHA_PEDIDO' + DataType = datDateTime + DisplayLabel = 'Fecha pedido' + end + item + Name = 'PedidosProveedor_CALLE' + DataType = datString + Size = 255 + DisplayLabel = 'Calle' + end + item + Name = 'PedidosProveedor_CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#243'd. postal' + end + item + Name = 'PedidosProveedor_POBLACION' + DataType = datString + Size = 255 + DisplayLabel = 'Poblaci'#243'n' + end + item + Name = 'PedidosProveedor_PROVINCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Provincia' + end + item + Name = 'PedidosProveedor_PERSONA_CONTACTO' + DataType = datString + Size = 255 + DisplayLabel = 'Persona de contacto' + end + item + Name = 'PedidosProveedor_TELEFONO' + DataType = datString + Size = 25 + DisplayLabel = 'Tel'#233'fono' + end + item + Name = 'PedidosProveedor_OBSERVACIONES' + DataType = datMemo + DisplayLabel = 'Observaciones' + end + item + Name = 'PedidosProveedor_INCIDENCIAS' + DataType = datMemo + DisplayLabel = 'INCIDENCIAS' + end + item + Name = 'PedidosProveedor_INCIDENCIAS_ACTIVAS' + DataType = datInteger + DisplayLabel = 'INCIDENCIAS_ACTIVAS' + end + item + Name = 'PedidosProveedor_FECHA_ALTA' + DataType = datDateTime + DisplayLabel = 'FECHA_ALTA' + end + item + Name = 'PedidosProveedor_FECHA_MODIFICACION' + DataType = datDateTime + DisplayLabel = 'FECHA_MODIFICACION' + end + item + Name = 'PedidosProveedor_USUARIO' + DataType = datString + Size = 20 + DisplayLabel = 'USUARIO' + end + item + Name = 'PedidosProveedor_IMPORTE_NETO' + DataType = datCurrency + DisplayLabel = 'Importe neto' + Alignment = taRightJustify + end + item + Name = 'PedidosProveedor_IMPORTE_PORTE' + DataType = datCurrency + DisplayLabel = 'Importe del porte' + Alignment = taRightJustify + end + item + Name = 'PedidosProveedor_DESCUENTO' + DataType = datFloat + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + end + item + Name = 'PedidosProveedor_IMPORTE_DESCUENTO' + DataType = datCurrency + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + end + item + Name = 'PedidosProveedor_BASE_IMPONIBLE' + DataType = datCurrency + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + end + item + Name = 'PedidosProveedor_IVA' + DataType = datFloat + DisplayLabel = 'IVA' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + end + item + Name = 'PedidosProveedor_IMPORTE_IVA' + DataType = datCurrency + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + end + item + Name = 'PedidosProveedor_IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'PedidosProveedor_ID_FORMA_PAGO' + DataType = datInteger + DisplayLabel = 'ID_FORMA_PAGO' + end + item + Name = 'PedidosProveedor_Detalles_ID' + DataType = datAutoInc + GeneratorName = 'GEN_PEDIDOS_PROV_DETALLES_ID' + Required = True + DisplayLabel = 'ID' + ServerAutoRefresh = True + end + item + Name = 'PedidosProveedor_Detalles_ID_PEDIDO' + DataType = datInteger + Required = True + DisplayLabel = 'ID_PEDIDO' + end + item + Name = 'POSICIONCONCEPTO' + DataType = datInteger + DisplayLabel = 'POSICION' + end + item + Name = 'PedidosProveedor_Detalles_TIPO_DETALLE' + DataType = datString + Size = 25 + DisplayLabel = 'TIPO_DETALLE' + end + item + Name = 'PedidosProveedor_Detalles_REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + end + item + Name = 'PedidosProveedor_Detalles_ID_ARTICULO' + DataType = datInteger + DisplayLabel = 'ID_ARTICULO' + end + item + Name = 'PedidosProveedor_Detalles_CONCEPTO' + DataType = datString + Size = 2000 + DisplayLabel = 'CONCEPTO' + end + item + Name = 'CANTIDAD' + DataType = datFloat + Alignment = taRightJustify + end + item + Name = 'PedidosProveedor_Detalles_IMPORTE_UNIDAD' + DataType = datCurrency + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + end + item + Name = 'PedidosProveedor_Detalles_IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'PedidosProveedor_Detalles_DESCUENTO' + DataType = datFloat + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + end + item + Name = 'PedidosProveedor_Detalles_IMPORTE_PORTE' + DataType = datCurrency + DisplayLabel = 'Importe porte' + Alignment = taRightJustify + end + item + Name = 'PedidosProveedor_Detalles_VISIBLE' + DataType = datInteger + DisplayLabel = 'VISIBLE' + end + item + Name = 'PedidosProveedor_Detalles_REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. proveedor' + end + item + Name = 'PedidosProveedor_ID_PROVEEDOR' + DataType = datInteger + end + item + Name = 'PedidosProveedor_FECHA_CONFIRMACION' + DataType = datDateTime + DisplayLabel = #191'Confirmado?' + end + item + Name = 'PedidosProveedor_FECHA_ENTREGA' + DataType = datDateTime + DisplayLabel = 'Entrega prevista' + end + item + Name = 'PedidosProveedor_SITUACION' + DataType = datString + Size = 255 + DisplayLabel = 'Situaci'#243'n' + end + item + Name = 'PedidosProveedor_ID_ALMACEN' + DataType = datInteger + end + item + Name = 'PedidosProveedor_ID_PEDIDO_CLIENTE' + DataType = datInteger + end + item + Name = 'PedidosProveedor_REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'REFERENCIA' + end + item + Name = 'PedidosProveedor_FECHA_ENVIO' + DataType = datDateTime + DisplayLabel = #191'Enviado?' + end + item + Name = 'PedidosProveedor_NOMBRE_ALMACEN' + DataType = datString + Size = 255 + DisplayLabel = 'Almac'#233'n' + end + item + Name = 'PedidosProveedor_REF_PED_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'PedidosProveedor_Detalles_UNIDAD_MEDIDA' + DataType = datString + Size = 255 + DisplayLabel = 'Unidad de medida' + end + item + Name = 'PedidosProveedor_Detalles_REFERENCIA_FABRICANTE' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. fabricante' + end + item + Name = 'PedidosProveedor_ID_OBRA' + DataType = datInteger + end + item + Name = 'PedidosProveedor_NOMBRE_OBRA' + DataType = datString + Size = 255 + DisplayLabel = 'Obra' + end + item + Name = 'PedidosProveedor_ID_DIRECCION' + DataType = datInteger + DisplayLabel = 'ID_DIRECCION' + end + item + Name = 'PedidosProveedor_TIPO_ALMACEN' + DataType = datString + Size = 10 + ServerAutoRefresh = True + end + item + Name = 'PedidosProveedor_ID_FACTURA' + DataType = datInteger + end + item + Name = 'PedidosProveedor_REF_FACTURA_PROV' + DataType = datString + Size = 255 + end + item + Name = 'PedidosProveedor_PERSONA_CONTACTO_PROV' + DataType = datString + Size = 255 + DisplayLabel = 'Contacto del proveedor' + end> + Left = 56 + Top = 144 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 56 + Top = 80 + end +end diff --git a/Source/Modulos/Pedidos a proveedor/Servidor/srvPedidosProveedor_Impl.pas b/Source/Modulos/Pedidos a proveedor/Servidor/srvPedidosProveedor_Impl.pas new file mode 100644 index 0000000..45a4fef --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Servidor/srvPedidosProveedor_Impl.pas @@ -0,0 +1,145 @@ +unit srvPedidosProveedor_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} uDABusinessProcessor, uDABin2DataStreamer, uDADataStreamer, + uDAScriptingProvider, uDAClasses, + FactuGES_Intf, uDAInterfaces; + +type + { TsrvPedidosProveedor } + TsrvPedidosProveedor = class(TDataAbstractService, IsrvPedidosProveedor) + bpPedidosProveedor: TDABusinessProcessor; + bpPedidosProveedor_Detalles: TDABusinessProcessor; + Bin2DataStreamer: TDABin2DataStreamer; + schPedidosProveedor: TDASchema; + DADataDictionary: TDADataDictionary; + procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; + const IncludeSchema: Boolean; const MaxRecords: Integer); + procedure DARemoteServiceCreate(Sender: TObject); + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; + var aConnectionName: string); + protected + { IsrvPedidosProveedor methods } + function GenerarInforme(const ListaID: TIntegerArray; + const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; + function GenerarInformeEnWord(const ID: Integer; + const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; + function GenerarInformeEnPDF(const ListaID: TIntegerArray; + const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; + end; + +implementation + +{$R *.dfm} +uses + Dialogs, uSistemaFunc, + {Generated:} FactuGES_Invk, uDataModuleServer, uDatabaseUtils, + schPedidosProveedorClient_Intf, uRestriccionesUsuarioUtils, + uBizPedidosProveedorServer, uRptPedidosProveedor_Server, + uRptWordPedidoProveedor; + +{ uRORemoteDataModule, + fServerForm, Variants, IB, schPedidosProveedorClient_Intf; +} +procedure Create_srvPedidosProveedor(out anInstance : IUnknown); +begin + anInstance := TsrvPedidosProveedor.Create(NIL); +end; + +{ srvPedidosProveedor } + +procedure TsrvPedidosProveedor.DARemoteServiceBeforeGetDatasetData( + const Dataset: IDADataset; const IncludeSchema: Boolean; + const MaxRecords: Integer); +begin + if DataSet.Name = nme_PedidosProveedor then + begin + { Aqu se asegura que el usuario slo accede a pedidos + de las empresas a las que tiene permiso para acceder + filtrando DataSet por ID_EMPRESA. } + FiltrarAccesoUsuario(Session, Connection, schPedidosProveedor, DataSet, fld_PedidosProveedorID_EMPRESA); + end; +end; + +procedure TsrvPedidosProveedor.DARemoteServiceCreate(Sender: TObject); +begin + //SessionManager := dmServer.SessionManager; + bpPedidosProveedor.BusinessRulesID := BIZ_SERVER_PEDIDOS_PROVEEDOR; +end; + +procedure TsrvPedidosProveedor.DataAbstractServiceBeforeAcquireConnection( + aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +function TsrvPedidosProveedor.GenerarInforme(const ListaID: TIntegerArray; + const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; +var + AReportGenerator : TRptPedidosProveedor; +begin + AReportGenerator := TRptPedidosProveedor.Create(nil); + try + Result := AReportGenerator.GenerarPedido(ListaID, + ImprimirPrecio, ImprimirRefProveedor); + finally + FreeAndNIL(AReportGenerator); + end; +end; + +function TsrvPedidosProveedor.GenerarInformeEnPDF( + const ListaID: TIntegerArray; + const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; +var + AReportGenerator : TRptPedidosProveedor; +begin + AReportGenerator := TRptPedidosProveedor.Create(nil); + try + Result := AReportGenerator.GenerarPedidoEnPDF(ListaID, + ImprimirPrecio, ImprimirRefProveedor); + finally + FreeAndNIL(AReportGenerator); + end; +end; + +function TsrvPedidosProveedor.GenerarInformeEnWord(const ID: Integer; + const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; +var + AReportGenerator : TRptWordPedidoProveedor; + AFicheroTMP : TFileName; +begin + Result := NIL; + AFicheroTMP := DarFicheroTemporal; + AReportGenerator := TRptWordPedidoProveedor.Create(nil); + try + AReportGenerator.ImprimirPrecio := ImprimirPrecio; + AReportGenerator.ImprimirRefProveedor := ImprimirRefProveedor; + if AReportGenerator.Exportar(IntToStr(ID), AFicheroTMP) then + begin + Result := Binary.Create; + Result.LoadFromFile(AFicheroTMP); + end; + finally + FreeAndNIL(AReportGenerator); + end; +end; + +initialization + TROClassFactory.Create('srvPedidosProveedor', Create_srvPedidosProveedor, TsrvPedidosProveedor_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Views/PedidosProveedor_view.bdsproj b/Source/Modulos/Pedidos a proveedor/Views/PedidosProveedor_view.bdsproj new file mode 100644 index 0000000..29a33ec --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/PedidosProveedor_view.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + PedidosProveedor_view.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Pedidos a proveedor/Views/PedidosProveedor_view.dcu b/Source/Modulos/Pedidos a proveedor/Views/PedidosProveedor_view.dcu new file mode 100644 index 0000000..ed434d5 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Views/PedidosProveedor_view.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Views/PedidosProveedor_view.dpk b/Source/Modulos/Pedidos a proveedor/Views/PedidosProveedor_view.dpk new file mode 100644 index 0000000..0c14a28 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/PedidosProveedor_view.dpk @@ -0,0 +1,94 @@ +package PedidosProveedor_view; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + GUIBase, + PedidosProveedor_model, + PedidosProveedor_controller, + Almacenes_model, + Almacenes_controller, + Contactos_model, + Contactos_controller, + Contactos_view, + Articulos_view, + Obras_model, + Obras_controller, + PedProv_AlbProv_relation, + PedProv_FacProv_relation, + GestorInformes_controller, + rtl, + vcl, + dbrtl, + vcldb, + PNG_D10, + PngComponentsD10, + vclactnband, + vclx, + cxLibraryD11, + dxThemeD11, + dxGDIPlusD11, + dxCoreD11, + cxExtEditorsD11, + cxDataD11, + cxEditorsD11, + vcljpg, + DataAbstract_Core_D11, + dsnap, + adortl, + RemObjects_Core_D11, + GUISDK_D11R, + designide, + xmlrtl, + dxLayoutControlD11, + dxComnD11, + JvStdCtrlsD11R, + JclVcl, + Jcl, + JvCoreD11R, + JvSystemD11R, + JvCtrlsD11R; + +contains + uPedidosProveedorViewRegister in 'uPedidosProveedorViewRegister.pas', + uEditorPedidosProveedor in 'uEditorPedidosProveedor.pas' {fEditorPedidosProveedor: TfEditorPedidosProveedor}, + uViewPedidosProveedor in 'uViewPedidosProveedor.pas' {frViewPedidosProveedor: TFrame}, + uViewPedidoProveedor in 'uViewPedidoProveedor.pas' {frViewPedidoProveedor: TFrame}, + uEditorPedidoProveedor in 'uEditorPedidoProveedor.pas' {fEditorPedidoProveedor: TfEditorPedidoProveedor}, + uViewDetallesPedidoProveedor in 'uViewDetallesPedidoProveedor.pas' {frViewDetallesPedidoProveedor: TFrame}, + uEditorPedidosProveedorReport in 'uEditorPedidosProveedorReport.pas' {fEditorPedidosProveedorReport: TForm}, + uEditorElegirPedidosProveedor in 'uEditorElegirPedidosProveedor.pas' {fEditorElegirPedidosProveedor: TForm}, + uViewDireccionEntregaPedidoProv in 'uViewDireccionEntregaPedidoProv.pas' {frViewDireccionEntregaPedidoProv: TFrame}, + uEditorDireccionEntregaPedidoProveedor in 'uEditorDireccionEntregaPedidoProveedor.pas' {fEditorDireccionEntregaPedidoProveedor : TfEditorDireccionEntregaPedidoProveedor}, + uViewElegirArticulosPedidosProveedor in 'uViewElegirArticulosPedidosProveedor.pas' {frViewElegirArticulosPedidosProveedor: TFrame}, + uEditorElegirArticulosPedidoProveedor in 'uEditorElegirArticulosPedidoProveedor.pas' {fEditorElegirArticulosPedidoProveedor: TForm}, + uEditorSituacionPedidoProveedor in 'uEditorSituacionPedidoProveedor.pas' {fEditorSituacionPedidoProveedor: TfEditorSituacionPedidoProveedor}, + uViewProveedorPedido in 'uViewProveedorPedido.pas' {frViewProveedorPedido: TFrame}, + uEditorElegirPersonaContactoPedido in 'uEditorElegirPersonaContactoPedido.pas' {fEditorElegirPersonaContactoPedido: TfEditorSituacionPedidoProveedor}, + uViewObraReserva in 'uViewObraReserva.pas' {frViewObraReserva: TFrame}, + uDialogOpcionesImpresionPedidosProveedor in 'uDialogOpcionesImpresionPedidosProveedor.pas' {fDialogOpcionesImpresionPedidosProveedor: TForm}, + uViewDatosYSeleccionProveedorPedido in 'uViewDatosYSeleccionProveedorPedido.pas'{frViewDatosYSeleccionProveedorPedido: TFrame}; + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Views/PedidosProveedor_view.dproj b/Source/Modulos/Pedidos a proveedor/Views/PedidosProveedor_view.dproj new file mode 100644 index 0000000..09d4bfe --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/PedidosProveedor_view.dproj @@ -0,0 +1,647 @@ + + + + {9e558626-cf49-4cff-a178-e12c186758ac} + PedidosProveedor_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\PedidosProveedor_view.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0PedidosProveedor_view.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fDialogOpcionesImpresionPedidosProveedor
+ TForm +
+ +
fEditorDireccionEntregaPedidoProveedor
+ TfEditorDireccionEntregaPedidoProveedor +
+ +
fEditorElegirArticulosPedidoProveedor
+ TForm +
+ +
fEditorElegirPedidosProveedor
+ TForm +
+ +
fEditorElegirPersonaContactoPedido
+ TfEditorSituacionPedidoProveedor +
+ +
fEditorPedidoProveedor
+ TfEditorPedidoProveedor +
+ +
fEditorPedidosProveedor
+ TfEditorPedidosProveedor +
+ +
fEditorPedidosProveedorReport
+ TForm +
+ +
fEditorSituacionPedidoProveedor
+ TfEditorSituacionPedidoProveedor +
+ + + +
frViewDetallesPedidoProveedor
+ TFrame +
+ +
frViewDireccionEntregaPedidoProv
+ TFrame +
+ +
frViewElegirArticulosPedidosProveedor
+ TFrame +
+ +
frViewObraReserva
+ TFrame +
+ +
frViewPedidoProveedor
+ TFrame +
+ +
frViewPedidosProveedor
+ TFrame +
+ +
frViewProveedorPedido
+ TFrame +
+ + + + + + +
+
+ diff --git a/Source/Modulos/Pedidos a proveedor/Views/PedidosProveedor_view.drc b/Source/Modulos/Pedidos a proveedor/Views/PedidosProveedor_view.drc new file mode 100644 index 0000000..3279860 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/PedidosProveedor_view.drc @@ -0,0 +1,33 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Pedidos a proveedor\Views\uViewPedidosProveedor.dfm */ +/* C:\Codigo\Source\Modulos\Pedidos a proveedor\Views\uDialogOpcionesImpresionPedidosProveedor.dfm */ +/* C:\Codigo\Source\Modulos\Pedidos a proveedor\Views\uEditorPedidosProveedor.dfm */ +/* C:\Codigo\Source\Modulos\Pedidos a proveedor\Views\uEditorElegirPersonaContactoPedido.dfm */ +/* C:\Codigo\Source\Modulos\Pedidos a proveedor\Views\uViewDireccionEntregaPedidoProv.dfm */ +/* C:\Codigo\Source\Modulos\Pedidos a proveedor\Views\uViewProveedorPedido.dfm */ +/* C:\Codigo\Source\Modulos\Pedidos a proveedor\Views\uViewObraReserva.dfm */ +/* C:\Codigo\Source\Modulos\Pedidos a proveedor\Views\uViewDatosYSeleccionProveedorPedido.dfm */ +/* C:\Codigo\Source\Modulos\Pedidos a proveedor\Views\uViewPedidoProveedor.dfm */ +/* C:\Codigo\Source\Modulos\Pedidos a proveedor\Views\uViewDetallesPedidoProveedor.dfm */ +/* C:\Codigo\Source\Modulos\Pedidos a proveedor\Views\uEditorPedidoProveedor.dfm */ +/* C:\Codigo\Source\Modulos\Pedidos a proveedor\Views\uEditorPedidosProveedorReport.dfm */ +/* C:\Codigo\Source\Modulos\Pedidos a proveedor\Views\uEditorElegirPedidosProveedor.dfm */ +/* C:\Codigo\Source\Modulos\Pedidos a proveedor\Views\uViewElegirArticulosPedidosProveedor.dfm */ +/* C:\Codigo\Source\Modulos\Pedidos a proveedor\Views\uEditorElegirArticulosPedidoProveedor.dfm */ +/* C:\Codigo\Source\Modulos\Pedidos a proveedor\Views\uEditorDireccionEntregaPedidoProveedor.dfm */ +/* C:\Codigo\Source\Modulos\Pedidos a proveedor\Views\uEditorSituacionPedidoProveedor.dfm */ +/* C:\Codigo\Source\Modulos\Pedidos a proveedor\Views\PedidosProveedor_view.res */ +/* c:\temp\dtf205.tmp */ diff --git a/Source/Modulos/Pedidos a proveedor/Views/PedidosProveedor_view.rc b/Source/Modulos/Pedidos a proveedor/Views/PedidosProveedor_view.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/PedidosProveedor_view.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Pedidos a proveedor/Views/PedidosProveedor_view.res b/Source/Modulos/Pedidos a proveedor/Views/PedidosProveedor_view.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Views/PedidosProveedor_view.res differ diff --git a/Source/Modulos/Pedidos a proveedor/Views/uDialogOpcionesImpresionPedidosProveedor.dcu b/Source/Modulos/Pedidos a proveedor/Views/uDialogOpcionesImpresionPedidosProveedor.dcu new file mode 100644 index 0000000..64a9d1b Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Views/uDialogOpcionesImpresionPedidosProveedor.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Views/uDialogOpcionesImpresionPedidosProveedor.dfm b/Source/Modulos/Pedidos a proveedor/Views/uDialogOpcionesImpresionPedidosProveedor.dfm new file mode 100644 index 0000000..0a122bc --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uDialogOpcionesImpresionPedidosProveedor.dfm @@ -0,0 +1,87 @@ +inherited fDialogOpcionesImpresionPedidosProveedor: TfDialogOpcionesImpresionPedidosProveedor + Caption = 'Opciones para pedido a proveedor' + ClientHeight = 239 + ClientWidth = 393 + ExplicitWidth = 399 + ExplicitHeight = 271 + PixelsPerInch = 96 + TextHeight = 13 + inherited Bevel2: TBevel + Width = 393 + end + inherited Bevel3: TBevel + Top = 195 + Width = 393 + end + inherited pnlBotones: TPanel + Top = 197 + Width = 393 + ExplicitLeft = -8 + ExplicitTop = 320 + ExplicitWidth = 637 + inherited btnAceptar: TButton + Left = 229 + ExplicitLeft = 229 + end + inherited btnCancelar: TButton + Left = 308 + ExplicitLeft = 308 + end + end + inherited pnlHeader: TPanel + Width = 393 + ExplicitWidth = 488 + inherited lblInstruccion: TLabel + Width = 343 + Margins.Bottom = 10 + Caption = 'Indique las siguiente opciones para el pedido a proveedor:' + ExplicitWidth = 328 + end + inherited Label2: TLabel + Top = 31 + Width = 318 + Height = 25 + Visible = False + ExplicitTop = 60 + end + end + inherited pnlCuerpo: TPanel + Width = 393 + Height = 129 + ExplicitLeft = -8 + ExplicitTop = 70 + ExplicitWidth = 637 + ExplicitHeight = 222 + object cbVerPrecios: TCheckBox + AlignWithMargins = True + Left = 50 + Top = 29 + Width = 415 + Height = 17 + Caption = 'Mostrar los precios en los conceptos' + Checked = True + State = cbChecked + TabOrder = 0 + end + object cbVerRefProveedor: TCheckBox + AlignWithMargins = True + Left = 50 + Top = 52 + Width = 441 + Height = 17 + Caption = 'Mostrar las referencias de proveedor de los conceptos' + Checked = True + State = cbChecked + TabOrder = 1 + end + end + inherited ActionList1: TActionList + Top = 16 + inherited actAceptar: TAction + OnExecute = actAceptarExecute + end + inherited actCancelar: TAction + OnExecute = actCancelarExecute + end + end +end diff --git a/Source/Modulos/Pedidos a proveedor/Views/uDialogOpcionesImpresionPedidosProveedor.pas b/Source/Modulos/Pedidos a proveedor/Views/uDialogOpcionesImpresionPedidosProveedor.pas new file mode 100644 index 0000000..c316de1 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uDialogOpcionesImpresionPedidosProveedor.pas @@ -0,0 +1,59 @@ +unit uDialogOpcionesImpresionPedidosProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uDialogBase, ActnList, StdCtrls, ExtCtrls; + +type + TfDialogOpcionesImpresionPedidosProveedor = class(TfDialogBase) + cbVerPrecios: TCheckBox; + cbVerRefProveedor: TCheckBox; + procedure actAceptarExecute(Sender: TObject); + procedure actCancelarExecute(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + + function ElegirOpcionesImpresionPedidoProveedor(var AVerPrecios : Boolean; var AVerRefProveedor : Boolean): Boolean; + +implementation + +{$R *.dfm} + +function ElegirOpcionesImpresionPedidoProveedor(var AVerPrecios : Boolean; var AVerRefProveedor : Boolean): Boolean; +var + AEditor : TfDialogOpcionesImpresionPedidosProveedor; +begin + AEditor := TfDialogOpcionesImpresionPedidosProveedor.Create(NIL); + try + AEditor.cbVerPrecios.Checked := AVerPrecios; + AEditor.cbVerRefProveedor.Checked := AVerRefProveedor; + + Result := (AEditor.ShowModal = mrOk); + if Result then + begin + AVerPrecios := AEditor.cbVerPrecios.Checked; + AVerRefProveedor := AEditor.cbVerRefProveedor.Checked; + end; + finally + AEditor.Release; + end; +end; + +procedure TfDialogOpcionesImpresionPedidosProveedor.actAceptarExecute(Sender: TObject); +begin + inherited; + ModalResult := mrOk +end; + +procedure TfDialogOpcionesImpresionPedidosProveedor.actCancelarExecute(Sender: TObject); +begin + inherited; + ModalResult := mrCancel; +end; + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Views/uEditorDireccionEntregaPedidoProveedor.dcu b/Source/Modulos/Pedidos a proveedor/Views/uEditorDireccionEntregaPedidoProveedor.dcu new file mode 100644 index 0000000..328417e Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Views/uEditorDireccionEntregaPedidoProveedor.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Views/uEditorDireccionEntregaPedidoProveedor.dfm b/Source/Modulos/Pedidos a proveedor/Views/uEditorDireccionEntregaPedidoProveedor.dfm new file mode 100644 index 0000000..47b1c3b --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uEditorDireccionEntregaPedidoProveedor.dfm @@ -0,0 +1,157 @@ +object fEditorDireccionEntregaPedidoProveedor: TfEditorDireccionEntregaPedidoProveedor + Left = 227 + Top = 108 + BorderStyle = bsDialog + Caption = 'Datos de la direcci'#243'n de entrega:' + ClientHeight = 189 + ClientWidth = 453 + Color = clBtnFace + ParentFont = True + OldCreateOrder = True + Position = poOwnerFormCenter + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + DesignSize = ( + 453 + 189) + PixelsPerInch = 96 + TextHeight = 13 + object Bevel1: TBevel + Left = 8 + Top = 14 + Width = 349 + Height = 163 + Anchors = [akLeft, akTop, akRight] + Shape = bsFrame + end + object Label1: TLabel + Left = 20 + Top = 25 + Width = 110 + Height = 13 + AutoSize = False + Caption = 'Direcci'#243'n:' + end + object Label3: TLabel + Left = 20 + Top = 90 + Width = 110 + Height = 13 + AutoSize = False + Caption = 'Provincia:' + end + object Label4: TLabel + Left = 20 + Top = 143 + Width = 110 + Height = 13 + AutoSize = False + Caption = 'C'#243'digo postal:' + end + object Label2: TLabel + Left = 21 + Top = 117 + Width = 110 + Height = 13 + AutoSize = False + Caption = 'Poblaci'#243'n:' + end + object OKBtn: TButton + Left = 370 + Top = 13 + Width = 75 + Height = 25 + Anchors = [akTop, akRight] + Caption = '&Aceptar' + Default = True + ModalResult = 1 + TabOrder = 0 + end + object CancelBtn: TButton + Left = 370 + Top = 44 + Width = 75 + Height = 25 + Anchors = [akTop, akRight] + Cancel = True + Caption = '&Cancelar' + ModalResult = 2 + TabOrder = 1 + end + object eDireccion: TDBEdit + Left = 136 + Top = 23 + Width = 210 + Height = 57 + AutoSelect = False + AutoSize = False + DataField = 'CALLE' + DataSource = dsDireccion + TabOrder = 2 + end + object eCodigoPostal: TDBEdit + Left = 136 + Top = 140 + Width = 210 + Height = 21 + DataField = 'CODIGO_POSTAL' + DataSource = dsDireccion + TabOrder = 3 + end + object cbProvincia: TcxDBComboBox + Left = 136 + Top = 86 + DataBinding.DataField = 'PROVINCIA' + DataBinding.DataSource = dsDireccion + Properties.ImmediatePost = True + Properties.ImmediateUpdateText = True + Properties.PostPopupValueOnTab = True + Properties.OnInitPopup = cbProvinciaPropertiesInitPopup + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 4 + Width = 210 + end + object cbPoblacion: TcxDBComboBox + Left = 136 + Top = 113 + DataBinding.DataField = 'POBLACION' + DataBinding.DataSource = dsDireccion + Properties.ImmediatePost = True + Properties.ImmediateUpdateText = True + Properties.PostPopupValueOnTab = True + Properties.OnInitPopup = cbPoblacionPropertiesInitPopup + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 5 + Width = 210 + end + object dsDireccion: TDADataSource + Left = 16 + Top = 46 + end +end diff --git a/Source/Modulos/Pedidos a proveedor/Views/uEditorDireccionEntregaPedidoProveedor.pas b/Source/Modulos/Pedidos a proveedor/Views/uEditorDireccionEntregaPedidoProveedor.pas new file mode 100644 index 0000000..f7714b5 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uEditorDireccionEntregaPedidoProveedor.pas @@ -0,0 +1,192 @@ +unit uEditorDireccionEntregaPedidoProveedor; + +interface + +uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, + Buttons, ExtCtrls, Mask, DBCtrls, DB, uDADataTable, + cxControls, cxContainer, cxEdit, cxTextEdit, cxDBEdit, + uIEditorDireccionEntregaPedidoProveedor, uBizPedidosProveedor, uDAInterfaces, + cxGraphics, cxMaskEdit, cxDropDownEdit; + +type + TfEditorDireccionEntregaPedidoProveedor = class(TForm, IEditorDireccionEntregaPedidoProveedor) + OKBtn: TButton; + CancelBtn: TButton; + Bevel1: TBevel; + eDireccion: TDBEdit; + eCodigoPostal: TDBEdit; + Label1: TLabel; + Label3: TLabel; + Label4: TLabel; + dsDireccion: TDADataSource; + cbProvincia: TcxDBComboBox; + Label2: TLabel; + cbPoblacion: TcxDBComboBox; + + procedure FormShow(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure cbProvinciaPropertiesInitPopup(Sender: TObject); + procedure cbPoblacionPropertiesInitPopup(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure FormDestroy(Sender: TObject); + + private + pDireccion: String; + pPoblacion: String; + pProvincia: String; + FIDProvincia : Integer; //Almacenar la provincia que hay seleccionada para no cargar las poblaciones si no es necesario + pCodigoPostal: String; + FProvincias : TStringList; + FPoblaciones : TStringList; + FPedido : IBizPedidoProveedor; + procedure CargarProvincias; + procedure CargarPoblaciones; + function GetPedido: IBizPedidoProveedor; + procedure SetPedido(const Value: IBizPedidoProveedor); + public + property Pedido: IBizPedidoProveedor read GetPedido write SetPedido; + end; + +implementation +{$R *.dfm} + +uses + uProvinciasPoblacionesController, uStringsUtils; + +{ TfEditorDireccionEntrega } + +procedure TfEditorDireccionEntregaPedidoProveedor.CargarPoblaciones; +var + i : integer; + +begin + if (FIDProvincia <> StrToInt(FProvincias.Values[cbProvincia.Text])) then + Begin + FIDProvincia := StrToInt(FProvincias.Values[cbProvincia.Text]); + + with TProvinciasPoblacionesController.Create do + try + FPoblaciones := DarListaPoblaciones(FIDProvincia); + + with cbPoblacion.Properties.Items do + begin + BeginUpdate; + try + Clear; + for i := 0 to FPoblaciones.Count - 1 do + Add(FPoblaciones.Names[i]); + finally + EndUpdate; + end; + end; + finally + Free; + end; + End; +end; + +procedure TfEditorDireccionEntregaPedidoProveedor.CargarProvincias; +var + i : integer; +begin + with TProvinciasPoblacionesController.Create do + try + FProvincias := DarListaProvincias; + + with cbProvincia.Properties.Items do + begin + BeginUpdate; + try + Clear; + for i := 0 to FProvincias.Count - 1 do + Add(FProvincias.Names[i]); + finally + EndUpdate; + end; + end; + finally + Free; + end; +end; + +procedure TfEditorDireccionEntregaPedidoProveedor.cbPoblacionPropertiesInitPopup( + Sender: TObject); +begin + ShowHourglassCursor; + try + FreeANDNIL(FPoblaciones); + if not Assigned(FProvincias) then + CargarProvincias; + if not EsCadenaVacia(cbProvincia.Text) and + (FProvincias.IndexOfName(cbProvincia.Text) <> -1) then + CargarPoblaciones + finally + HideHourglassCursor; + end; +end; + +procedure TfEditorDireccionEntregaPedidoProveedor.cbProvinciaPropertiesInitPopup( + Sender: TObject); +begin + ShowHourglassCursor; + try + if not Assigned(FProvincias) then + CargarProvincias; + finally + HideHourglassCursor; + end; +end; + +procedure TfEditorDireccionEntregaPedidoProveedor.FormClose(Sender: TObject; var Action: TCloseAction); +begin + //En el caso de cancelar se recuperan los valores iniciales + if (Self.ModalResult <> mrOk) and (dsDireccion.DataTable.State in dsEditModes) then + begin + eDireccion.Field.Value := pDireccion; + cbPoblacion.DataBinding.Field.Value := pPoblacion; + cbProvincia.DataBinding.Field.Value := pProvincia; + eCodigoPostal.Field.Value := pCodigoPostal; + end; +end; + +procedure TfEditorDireccionEntregaPedidoProveedor.FormCreate(Sender: TObject); +begin + FIDProvincia := 0; + FProvincias := NIL; + FPoblaciones := NIL; +end; + +procedure TfEditorDireccionEntregaPedidoProveedor.FormDestroy(Sender: TObject); +begin + if Assigned(FProvincias) then + FreeANDNIL(FProvincias); + + if Assigned(FPoblaciones) then + FreeANDNIL(FPoblaciones); +end; + +procedure TfEditorDireccionEntregaPedidoProveedor.FormShow(Sender: TObject); +begin + //Guardamos los valores iniciales por si al final el usuario cancela + pDireccion := eDireccion.Text; + pPoblacion := cbPoblacion.Text; + pProvincia := cbProvincia.Text; + pCodigoPostal := eCodigoPostal.Text; +end; + +function TfEditorDireccionEntregaPedidoProveedor.GetPedido: IBizPedidoProveedor; +begin + Result := FPedido; +end; + +procedure TfEditorDireccionEntregaPedidoProveedor.SetPedido( + const Value: IBizPedidoProveedor); +begin + FPedido := Value; + if Assigned(FPedido) then + dsDireccion.DataTable := FPedido.DataTable + else + dsDireccion.DataTable := NIL; +end; + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirArticulosPedidoProveedor.dcu b/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirArticulosPedidoProveedor.dcu new file mode 100644 index 0000000..04dc82b Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirArticulosPedidoProveedor.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirArticulosPedidoProveedor.dfm b/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirArticulosPedidoProveedor.dfm new file mode 100644 index 0000000..45fe937 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirArticulosPedidoProveedor.dfm @@ -0,0 +1,5 @@ +inherited fEditorElegirArticulosPedidoProveedor: TfEditorElegirArticulosPedidoProveedor + Caption = 'fEditorElegirArticulosPedidoProveedor' + PixelsPerInch = 96 + TextHeight = 13 +end diff --git a/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirArticulosPedidoProveedor.pas b/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirArticulosPedidoProveedor.pas new file mode 100644 index 0000000..41ffbc9 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirArticulosPedidoProveedor.pas @@ -0,0 +1,64 @@ +unit uEditorElegirArticulosPedidoProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, Menus, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, + StdActns, ActnList, uCustomView, uViewBase, uViewBarraSeleccion, ComCtrls, + JvExComCtrls, JvStatusBar, TBX, TB2ExtItems, TBXExtItems, TB2Item, TB2Dock, + TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, + uIEditorElegirArticulosPedidosProveedor, uBizContactos, + uDAInterfaces, uViewGridBase, uViewGrid, uViewArticulos, uBizArticulos, + uViewArticulosPorProveedor, uEditorElegirArticulos; + +type + TfEditorElegirArticulosPedidoProveedor = class(TfEditorElegirArticulos, IEditorElegirArticulosPedidosProveedor) + procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); + private + FProveedor: IBizProveedor; + function GetProveedor: IBizProveedor; + procedure SetProveedor(const Value: IBizProveedor); + public + property Proveedor: IBizProveedor read GetProveedor write SetProveedor; + constructor Create(AOwner: TComponent); override; + end; + + +implementation +{$R *.dfm} + +uses uGridStatusUtils, uDBSelectionListUtils, uViewElegirArticulosPedidosProveedor; + +{ TfEditorElegirArticulosPedidoProveedor } + +constructor TfEditorElegirArticulosPedidoProveedor.Create(AOwner: TComponent); +begin + inherited; + ViewGrid := CreateView(TfrViewElegirArticulosPedidosProveedor) as IViewElegirArticulosPedidosProveedor; +end; + +procedure TfEditorElegirArticulosPedidoProveedor.FormCloseQuery(Sender: TObject; var CanClose: Boolean); +begin + FProveedor := Nil; + inherited; +end; + +function TfEditorElegirArticulosPedidoProveedor.GetProveedor: IBizProveedor; +begin + Result := FProveedor; +end; + +procedure TfEditorElegirArticulosPedidoProveedor.SetProveedor(const Value: IBizProveedor); +begin + FProveedor := Value; + if Assigned(FProveedor) then + begin + + if Assigned(Self.ViewGrid) then + (Self.ViewGrid as IViewElegirArticulosPedidosProveedor).Proveedor := FProveedor; + end; +end; + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirPedidosProveedor.dcu b/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirPedidosProveedor.dcu new file mode 100644 index 0000000..4ec3e28 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirPedidosProveedor.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirPedidosProveedor.dfm b/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirPedidosProveedor.dfm new file mode 100644 index 0000000..d5f5d47 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirPedidosProveedor.dfm @@ -0,0 +1,344 @@ +inherited fEditorElegirPedidosProveedor: TfEditorElegirPedidosProveedor + Caption = 'Seleccionar pedido de cliente' + ClientWidth = 656 + ExplicitWidth = 664 + ExplicitHeight = 538 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Top = 113 + Width = 656 + Caption = 'Lista de pedidos de proveedor' + Visible = False + ExplicitLeft = 8 + ExplicitTop = 169 + ExplicitWidth = 656 + inherited Image1: TImage + Left = 629 + ExplicitLeft = 629 + end + end + inherited TBXDock: TTBXDock + Top = 64 + Width = 656 + Height = 49 + ExplicitTop = 64 + ExplicitWidth = 656 + ExplicitHeight = 49 + inherited tbxMain: TTBXToolbar + Left = 427 + Align = alRight + ExplicitLeft = 427 + ExplicitWidth = 126 + inherited TBXItem2: TTBXItem + Visible = False + end + inherited TBXItem5: TTBXItem + Visible = False + end + inherited TBXItem4: TTBXItem + Visible = False + end + inherited TBXItem6: TTBXItem + Visible = False + end + inherited TBXItem36: TTBXItem + Action = actAnchoAuto2 + end + end + inherited tbxFiltro: TTBXToolbar + Top = 23 + DockRow = 1 + ExplicitTop = 23 + inherited TBXItem34: TTBXItem + Action = actQuitarFiltro2 + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 656 + end + inherited TBXTMain2: TTBXToolbar + Left = 559 + Top = 23 + DockPos = 559 + DockRow = 1 + Visible = False + ExplicitLeft = 559 + ExplicitTop = 23 + ExplicitWidth = 66 + end + end + inherited StatusBar: TJvStatusBar + Width = 656 + Visible = False + ExplicitWidth = 656 + end + inline frViewBarraSeleccion1: TfrViewBarraSeleccion [3] + Left = 0 + Top = 436 + Width = 656 + Height = 49 + Align = alBottom + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 4 + ReadOnly = False + ExplicitTop = 436 + ExplicitWidth = 656 + inherited JvFooter1: TJvFooter + Width = 656 + ExplicitWidth = 656 + inherited bSeleccionar: TJvFooterBtn + Left = 444 + ExplicitLeft = 444 + end + inherited bCancelar: TJvFooterBtn + Left = 548 + ExplicitLeft = 548 + end + end + inherited BarraSeleccionActionList: TActionList + inherited actSeleccionar: TAction + OnExecute = frViewBarraSeleccion1actSeleccionarExecute + OnUpdate = frViewBarraSeleccion1actSeleccionarUpdate + end + inherited actCancelar: TAction + OnExecute = frViewBarraSeleccion1actCancelarExecute + end + end + end + object pnlHeader: TPanel [4] + Left = 0 + Top = 0 + Width = 656 + Height = 64 + Align = alTop + BevelOuter = bvNone + Color = clWhite + Padding.Left = 25 + Padding.Top = 8 + Padding.Right = 25 + Padding.Bottom = 8 + ParentBackground = False + TabOrder = 5 + ExplicitTop = 27 + object lblTitle: TLabel + AlignWithMargins = True + Left = 25 + Top = 8 + Width = 606 + Height = 13 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 0 + Margins.Bottom = 8 + Align = alTop + Caption = 'Seleccione el pedido de proveedor' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + ExplicitWidth = 193 + end + object lblComments: TLabel + AlignWithMargins = True + Left = 50 + Top = 29 + Width = 581 + Height = 24 + Margins.Left = 25 + Margins.Top = 0 + Margins.Right = 0 + Align = alClient + ExplicitWidth = 3 + ExplicitHeight = 13 + end + end + inherited frViewPedidosProveedor1: TfrViewPedidosProveedor [5] + Top = 140 + Width = 656 + Height = 296 + ExplicitTop = 163 + ExplicitWidth = 656 + ExplicitHeight = 273 + inherited cxGrid: TcxGrid + Width = 656 + Height = 168 + RootLevelOptions.DetailTabsPosition = dtpNone + ExplicitWidth = 656 + ExplicitHeight = 145 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Position = spFooter + Column = frViewPedidosProveedor1.cxGridViewIMPORTE_TOTAL + end> + DataController.Summary.FooterSummaryItems = < + item + Format = '0 pedidos' + Kind = skCount + Column = frViewPedidosProveedor1.cxGridViewNOMBRE + end> + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 656 + ExplicitWidth = 656 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 656 + inherited dxLayoutControl1: TdxLayoutControl + Width = 656 + ExplicitWidth = 656 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 618 + Width = 618 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 267 + Width = 267 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 271 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 271 + ExplicitWidth = 277 + Width = 277 + end + inherited eLista: TcxComboBox + Left = 502 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 502 + ExplicitWidth = 215 + Width = 215 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 656 + ExplicitWidth = 656 + inherited tbxBotones: TTBXToolbar + Width = 646 + ExplicitWidth = 646 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 270 + ExplicitTop = 247 + ExplicitWidth = 656 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 656 + ExplicitWidth = 656 + inherited TBXToolbar1: TTBXToolbar + Width = 646 + ExplicitWidth = 646 + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + BuiltInReportLink = True + end + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewPedidosProveedor1.cxGridView + HitTypes = [gvhtCell] + Index = 0 + end> + end + end + inherited EditorActionList: TActionList [8] + Left = 112 + Top = 192 + inherited actPrevisualizar: TAction + Visible = False + end + inherited actImprimir: TAction + Visible = False + end + inherited actDuplicar: TAction + Visible = False + end + inherited actExportarExcel: TAction + Enabled = False + Visible = False + end + inherited actRecibirPedido: TAction + Enabled = False + Visible = False + end + inherited actFacturarPedido: TAction + Enabled = False + Visible = False + end + inherited actEnviarEMail: TAction + Enabled = False + Visible = False + end + end + inherited dsDataTable: TDADataSource + Left = 8 + Top = 192 + end + inherited JvFormStorage: TJvFormStorage [12] + end + inherited GridPopupMenu: TPopupMenu [13] + Left = 80 + Top = 192 + end + inherited JsNuevoPedidoProveedorDialog: TJSDialog [14] + end + inherited JsPrevisualizarDialog: TJSDialog [15] + end + inherited JsImprimirDialog: TJSDialog [16] + end + inherited JsListaPedidosNoEliminados: TJSDialog [17] + end + object EditorSeleccionActionList: TActionList + Images = SmallImages + Left = 152 + Top = 192 + object actBuscar2: TAction + Category = 'Buscar' + Caption = 'Buscar' + ImageIndex = 10 + ShortCut = 114 + end + object actQuitarFiltro2: TAction + Category = 'Buscar' + Caption = 'Quitar filtro y ver todo' + ImageIndex = 19 + OnExecute = actQuitarFiltro2Execute + end + object actAnchoAuto2: TAction + Category = 'Ver' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 21 + OnExecute = actAnchoAuto2Execute + end + end +end diff --git a/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirPedidosProveedor.pas b/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirPedidosProveedor.pas new file mode 100644 index 0000000..f0d1c28 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirPedidosProveedor.pas @@ -0,0 +1,128 @@ +unit uEditorElegirPedidosProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, DB, uDADataTable, Menus, JvAppStorage, JvAppRegistryStorage, + JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns, + ActnList, uCustomView, uViewBase, uViewGridBase, uViewGrid, + ComCtrls, TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, + pngimage, ExtCtrls, JvExControls, JvComponent, + JvNavigationPane, uViewBarraSeleccion, StdCtrls, + uBizPedidosProveedor, uIEditorElegirPedidosProveedor, + JvExComCtrls, JvStatusBar, uEditorPedidosProveedor, uViewPedidosProveedor, + JSDialog, uDAInterfaces; + +type + TfEditorElegirPedidosProveedor = class(TfEditorPedidosProveedor, IEditorElegirPedidosProveedor) + frViewBarraSeleccion1: TfrViewBarraSeleccion; + lblTitle: TLabel; + lblComments: TLabel; + EditorSeleccionActionList: TActionList; + actBuscar2: TAction; + actQuitarFiltro2: TAction; + actAnchoAuto2: TAction; + pnlHeader: TPanel; + procedure frViewBarraSeleccion1actSeleccionarUpdate(Sender: TObject); + procedure frViewBarraSeleccion1actCancelarExecute(Sender: TObject); + procedure frViewBarraSeleccion1actSeleccionarExecute(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure actAnchoAuto2Execute(Sender: TObject); + procedure actQuitarFiltro2Execute(Sender: TObject); + protected + procedure SetMultiSelect (AValue : Boolean); + function GetMultiSelect : Boolean; + function GetPedidosProveedorSeleccionados: IBizPedidoProveedor; + procedure SetViewGrid(const Value: IViewGridBase); override; + procedure SetMensaje (const AValue: String); + function GetMensaje: String; + public + property Mensaje : String read GetMensaje write SetMensaje; + property PedidosProveedorSeleccionados: IBizPedidoProveedor read GetPedidosProveedorSeleccionados; + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + end; + +implementation + +uses + uEditorGridBase, cxGridCustomTableView, uIntegerListUtils, uDBSelectionListUtils, + uGridStatusUtils, uEditorBase, uPedidosProveedorController; + +{$R *.dfm} + +{ TfEditorElegirPedidosProveedor } + +procedure TfEditorElegirPedidosProveedor.actAnchoAuto2Execute(Sender: TObject); +begin + inherited; + actAnchoAuto.Execute; +end; + +procedure TfEditorElegirPedidosProveedor.actQuitarFiltro2Execute(Sender: TObject); +begin + inherited; + actQuitarFiltro.Execute; +end; + +procedure TfEditorElegirPedidosProveedor.FormShow(Sender: TObject); +begin + inherited; + EditorActionList.State := asSuspended; +end; + +procedure TfEditorElegirPedidosProveedor.frViewBarraSeleccion1actCancelarExecute( + Sender: TObject); +begin + inherited; + Close; +end; + +procedure TfEditorElegirPedidosProveedor.frViewBarraSeleccion1actSeleccionarExecute( + Sender: TObject); +begin + inherited; + ModalResult := mrOk; +end; + +procedure TfEditorElegirPedidosProveedor.frViewBarraSeleccion1actSeleccionarUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (ViewGrid._FocusedView.Controller.SelectedRowCount > 0) +end; + +function TfEditorElegirPedidosProveedor.GetPedidosProveedorSeleccionados: IBizPedidoProveedor; +begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Pedidos as ISeleccionable).SelectedRecords); + // En SelectedRecords tengo los ID de las filas seleccionadas del grid + Result := (Controller as IPedidosProveedorController).ExtraerSeleccionados(Pedidos) as IBizPedidoProveedor; +end; + +function TfEditorElegirPedidosProveedor.GetMensaje: String; +begin + Result := lblComments.Caption; +end; + +function TfEditorElegirPedidosProveedor.GetMultiSelect: Boolean; +begin + Result := ViewGrid.MultiSelect; +end; + +procedure TfEditorElegirPedidosProveedor.SetMensaje(const AValue: String); +begin + lblComments.Caption := AValue; +end; + +procedure TfEditorElegirPedidosProveedor.SetMultiSelect(AValue: Boolean); +begin + ViewGrid.MultiSelect := AValue; +end; + +procedure TfEditorElegirPedidosProveedor.SetViewGrid(const Value: IViewGridBase); +begin + inherited; + ViewGrid.OnDblClick := frViewBarraSeleccion1.actSeleccionar.OnExecute; +end; + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirPersonaContactoPedido.dcu b/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirPersonaContactoPedido.dcu new file mode 100644 index 0000000..ebd21fb Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirPersonaContactoPedido.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirPersonaContactoPedido.dfm b/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirPersonaContactoPedido.dfm new file mode 100644 index 0000000..870c5d0 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirPersonaContactoPedido.dfm @@ -0,0 +1,141 @@ +inherited fEditorElegirPersonaContactoPedido: TfEditorElegirPersonaContactoPedido + BorderStyle = bsDialog + Caption = 'Entrega del material del pedido' + ClientHeight = 269 + ClientWidth = 435 + Position = poScreenCenter + OnCreate = CustomEditorCreate + OnShow = CustomEditorShow + ExplicitWidth = 441 + ExplicitHeight = 301 + PixelsPerInch = 96 + TextHeight = 13 + object Label1: TLabel + Left = 21 + Top = 16 + Width = 278 + Height = 13 + Anchors = [akLeft, akTop, akRight] + Caption = 'Indique a qui'#233'n se deber'#225' entregar el material del pedido:' + end + object Panel1: TPanel + Left = 0 + Top = 228 + Width = 435 + Height = 41 + Align = alBottom + TabOrder = 0 + DesignSize = ( + 435 + 41) + object bAceptar: TButton + Left = 271 + Top = 8 + Width = 75 + Height = 25 + Anchors = [akTop, akRight] + Caption = 'Aceptar' + ModalResult = 1 + TabOrder = 0 + end + object bCancelar: TButton + Left = 352 + Top = 8 + Width = 75 + Height = 25 + Anchors = [akTop, akRight] + Cancel = True + Caption = 'Cancelar' + ModalResult = 2 + TabOrder = 1 + end + end + object rdxDestino1: TRadioButton + Left = 48 + Top = 45 + Width = 335 + Height = 17 + Action = actEmpleadoEmpresa + TabOrder = 1 + TabStop = True + end + object cbListaEmpleados: TcxComboBox + Left = 63 + Top = 68 + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 2 + Width = 320 + end + object cbListaPersonalSubcontrata: TcxComboBox + Left = 63 + Top = 121 + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 3 + Width = 320 + end + object RadioButton1: TRadioButton + Left = 48 + Top = 98 + Width = 335 + Height = 17 + Action = actSubcontrata + Caption = 'Personal de contacto de la subcontrata:' + TabOrder = 4 + end + object rdxDestino2: TRadioButton + Left = 48 + Top = 151 + Width = 335 + Height = 17 + Action = actOtro + TabOrder = 5 + end + object edtTextoPersona: TcxTextEdit + Left = 63 + Top = 174 + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 6 + Width = 320 + end + object ActionList1: TActionList + Left = 8 + Top = 80 + object actEmpleadoEmpresa: TAction + Caption = 'Empleado de ' + Checked = True + GroupIndex = 1 + OnExecute = actEmpleadoEmpresaExecute + end + object actSubcontrata: TAction + Caption = 'Personal de contacto de la obra:' + GroupIndex = 1 + OnExecute = actSubcontrataExecute + end + object actOtro: TAction + Caption = 'A la siguiente persona:' + GroupIndex = 1 + OnExecute = actOtroExecute + end + end +end diff --git a/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirPersonaContactoPedido.pas b/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirPersonaContactoPedido.pas new file mode 100644 index 0000000..e926573 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirPersonaContactoPedido.pas @@ -0,0 +1,259 @@ +unit uEditorElegirPersonaContactoPedido; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + uEditorBasico, ActnList, StdCtrls, ExtCtrls, cxGraphics, cxControls, + cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit; + +type + TfEditorElegirPersonaContactoPedido = class(TfEditorBasico) + Panel1: TPanel; + bAceptar: TButton; + bCancelar: TButton; + Label1: TLabel; + rdxDestino1: TRadioButton; + cbListaEmpleados: TcxComboBox; + cbListaPersonalSubcontrata: TcxComboBox; + RadioButton1: TRadioButton; + rdxDestino2: TRadioButton; + ActionList1: TActionList; + actEmpleadoEmpresa: TAction; + actSubcontrata: TAction; + edtTextoPersona: TcxTextEdit; + actOtro: TAction; + procedure CustomEditorCreate(Sender: TObject); + procedure CustomEditorShow(Sender: TObject); + procedure actSubcontrataExecute(Sender: TObject); + procedure actOtroExecute(Sender: TObject); + procedure actEmpleadoEmpresaExecute(Sender: TObject); + private + FIDSubcontrata: Integer; + FPersonaContacto : String; + procedure RefrescarEstado; + procedure RellenarEmpleados; + procedure RellenarPersonalSubcontrata; + procedure BuscarPersonaContacto; + function GetPersonaContacto: String; + procedure SetPersonaContacto(const Value: String); + public + property ID_Subcontrata : Integer read FIDSubcontrata write FIDSubcontrata; + property PersonaContacto : String read GetPersonaContacto write SetPersonaContacto; + end; + +function ElegirPersonaContactoPedido(const AID_Subcontrata: Integer; var ANombrePersona: String): Boolean; + +implementation + +{$R *.dfm} + +uses + uFactuGES_App, uEmpleadosController, uBizContactos, uProveedoresController, + uStringsUtils; + + +function ElegirPersonaContactoPedido(const AID_Subcontrata: Integer; var ANombrePersona: String): Boolean; +begin + with TfEditorElegirPersonaContactoPedido.Create(NIL) do + try + ID_Subcontrata := AID_Subcontrata; + PersonaContacto := ANombrePersona; + if IsPositiveResult(ShowModal) then + begin + ANombrePersona := PersonaContacto; + Result := True; + end + else + Result := False; + finally + Free; + end; +end; + + +procedure TfEditorElegirPersonaContactoPedido.actEmpleadoEmpresaExecute( + Sender: TObject); +begin + actEmpleadoEmpresa.Checked := True; + RefrescarEstado; +end; + +procedure TfEditorElegirPersonaContactoPedido.actOtroExecute(Sender: TObject); +begin + actOtro.Checked := True; + RefrescarEstado; +end; + +procedure TfEditorElegirPersonaContactoPedido.actSubcontrataExecute( + Sender: TObject); +begin + inherited; + actSubcontrata.Checked := True; + RefrescarEstado; +end; + +procedure TfEditorElegirPersonaContactoPedido.BuscarPersonaContacto; +var + i : integer; +begin + // Es un empleado? + for i := 0 to (cbListaEmpleados.Properties.Items.Count - 1) do + begin + if (Pos(FPersonaContacto, cbListaEmpleados.Properties.Items[i]) > 0) then + begin + cbListaEmpleados.Text := FPersonaContacto; + actEmpleadoEmpresa.Checked := True; + RefrescarEstado; + Exit; + end; + end; + + // Es personal de una subcontrata? + if (ID_Subcontrata > 0) then + for i := 0 to (cbListaPersonalSubcontrata.Properties.Items.Count - 1) do + begin + if (Pos(FPersonaContacto, cbListaPersonalSubcontrata.Properties.Items[i]) > 0) then + begin + cbListaPersonalSubcontrata.Text := FPersonaContacto; + actSubcontrata.Checked := True; + RefrescarEstado; + Exit; + end; + end; + + // Es otra persona + edtTextoPersona.Text := FPersonaContacto; + actOtro.Checked := True; + RefrescarEstado; +end; + +procedure TfEditorElegirPersonaContactoPedido.CustomEditorCreate( + Sender: TObject); +begin + inherited; + FPersonaContacto := ''; + FIDSubcontrata := -1; + actEmpleadoEmpresa.Caption := actEmpleadoEmpresa.Caption + AppFactuGES.EmpresaActiva.NOMBRE + ':'; +end; + +procedure TfEditorElegirPersonaContactoPedido.CustomEditorShow(Sender: TObject); +begin + inherited; + + RellenarEmpleados; + + if (ID_Subcontrata > 0) then + RellenarPersonalSubcontrata + else + actSubcontrata.Enabled := False; + + if not EsCadenaVacia(FPersonaContacto) then + BuscarPersonaContacto; +end; + +function TfEditorElegirPersonaContactoPedido.GetPersonaContacto: String; +begin + if (actOtro.Checked) then + FPersonaContacto := edtTextoPersona.Text; + + if (actEmpleadoEmpresa.Checked) then + FPersonaContacto := cbListaEmpleados.Text; + + if (actSubcontrata.Checked) then + FPersonaContacto := cbListaPersonalSubcontrata.Text; + + Result := FPersonaContacto; +end; + +procedure TfEditorElegirPersonaContactoPedido.RefrescarEstado; +begin + if (actOtro.Checked) then + begin + edtTextoPersona.Enabled := True; + cbListaEmpleados.Enabled := False; + cbListaPersonalSubcontrata.Enabled := False; + end; + + if (actEmpleadoEmpresa.Checked) then + begin + edtTextoPersona.Enabled := False; + cbListaEmpleados.Enabled := True; + cbListaPersonalSubcontrata.Enabled := False; + end; + + if (actSubcontrata.Checked) then + begin + edtTextoPersona.Enabled := False; + cbListaEmpleados.Enabled := False; + cbListaPersonalSubcontrata.Enabled := True; + end; +end; + +procedure TfEditorElegirPersonaContactoPedido.RellenarEmpleados; +var + FEmpleadosController : IEmpleadosController; + FEmpleados : TStringList; + i : integer; +begin + FEmpleadosController := TEmpleadosController.Create; + FEmpleados := FEmpleadosController.DarListaEmpleadosConMovil; + + ShowHourglassCursor; + try + with cbListaEmpleados.Properties.Items do + begin + BeginUpdate; + try + Clear; + for i := 0 to FEmpleados.Count - 1 do + begin + Add(FEmpleados[i]); + end; + finally + EndUpdate; + end; + end; + finally + FreeAndNIL(FEmpleados); + FEmpleadosController := NIL; + HideHourglassCursor; + end; +end; + +procedure TfEditorElegirPersonaContactoPedido.RellenarPersonalSubcontrata; +var + FProveedoresController : IProveedoresController; + FPersonal : TStringList; + i : integer; +begin + FProveedoresController := TProveedoresController.Create; + + ShowHourglassCursor; + try + FPersonal := FProveedoresController.DarListaPersonalConMovil(ID_Subcontrata); + with cbListaPersonalSubcontrata.Properties.Items do + begin + BeginUpdate; + try + Clear; + for i := 0 to FPersonal.Count - 1 do + Add(FPersonal[i]); + finally + EndUpdate; + end; + end; + finally + FreeAndNIL(FPersonal); + FProveedoresController := NIL; + HideHourglassCursor; + end; +end; + +procedure TfEditorElegirPersonaContactoPedido.SetPersonaContacto( + const Value: String); +begin + FPersonaContacto := Value; +end; + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidoProveedor.dcu b/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidoProveedor.dcu new file mode 100644 index 0000000..b4b1e3b Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidoProveedor.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidoProveedor.dfm b/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidoProveedor.dfm new file mode 100644 index 0000000..cb1c77f --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidoProveedor.dfm @@ -0,0 +1,1915 @@ +inherited fEditorPedidoProveedor: TfEditorPedidoProveedor + Left = 332 + Top = 147 + Caption = 'Nuevo pedido a proveedor' + ClientHeight = 678 + ClientWidth = 879 + OnClose = CustomEditorClose + ExplicitWidth = 887 + ExplicitHeight = 712 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 879 + Caption = 'Nuevo pedido a proveedor' + ExplicitWidth = 879 + inherited Image1: TImage + Left = 852 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 520000000467414D410000AA11B57D14DC0000026C4944415478DA63FCFFFF3F + C3A28DC7FF335009C4F95B3222F319611600254836ECEFDF7F40FC1F4C838085 + 6F36C3C53DB3705BB0D7D21EC500E7E307711A8EACD674CF2E8679ABF730CC5F + B211BF05A4B8FC808D2383328B34C3B6D3CB19225F7E6358B87E1F610BB0F900 + 5D0C046C0FEE63386CEFC470F3FC21303FECD91786259B0E50E683FFFF80610D + C47F80AE07B17FFF0386FF9F7F60DFFCF9F79761C596C3A4FB801800F285EF83 + 770C6B771C23CE0298B749015E77DF306CD87D82380BF0A51C6C00A44771E55A + 864DFB4E126F01AEA082590E9387A9955BBE8661EB8153B4F381E492550CBB0E + 9FA1AE0F6EAA108EABC75FEDC8F3C1B4584686847408FBE74F06865F3F2018C4 + FEF903824F1C47B320DAC71C9C3B09F98058C3F9251818AEDC45B220C2D30C9C + 3BF1F90064388B207EDFFD798F301C250E42DD4C188E39B910B400E67A10F8F8 + 0EE2E21F5097FFFACEC070FA0C2468EC0D0F311C3C8FE48300172386D32E6E78 + 5D078A5890664200643808A058E0EB60002F5720E5FC3F70D903160396F94FA3 + 43C11620FB001C247F81F83703C36F501C007D70ED3A420EC5022F5B3D9C8683 + E81771E11816FCFA05341888FF40E995ABD919D4357E32B0B160B1C0CD5A1BA7 + E1A012F44D62248605A038005B00F201106FDACACE202D0FB1808D9581E1F865 + 240B1CCD35C086FDFB0B29967FFF4514C7FFFE432C3ADD2D8F62C19B1708C341 + 166DDFCDCE202A0DB1E0F21D3B86F6750719E116D899A8814B447C806DAF0FDC + 0250F0BC7B89301C44EF39C0CEC02FFE93E1FE1388E128C9B477F27C82A9235D + 7236D882A993D971AA79F7DB1C6E38DC0262417738C73AA00181F8D4201B0E02 + 00C20B50400F1E42A70000000049454E44AE426082} + ExplicitLeft = 735 + end + inherited lblDesbloquear: TcxLabel + Left = 754 + ExplicitLeft = 754 + AnchorX = 799 + AnchorY = 14 + end + end + inherited TBXDock: TTBXDock + Width = 879 + ExplicitWidth = 879 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 596 + inherited TBXItem2: TTBXItem + Visible = False + end + inherited TBXSeparatorItem1: TTBXSeparatorItem + Visible = False + end + inherited TBXItem5: TTBXItem + Visible = False + end + object TBXItem33: TTBXItem [12] + Action = actEnviarEMail + end + object TBXSeparatorItem6: TTBXSeparatorItem [13] + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 879 + object TBXSubmenuItem2: TTBXSubmenuItem [4] + Caption = 'A&cciones' + object TBXItem7: TTBXItem + Action = actEnviarEMail + end + end + end + end + inherited pgPaginas: TPageControl + Width = 873 + Height = 531 + TabOrder = 1 + OnChanging = pgPaginasChanging + ExplicitWidth = 873 + ExplicitHeight = 531 + inherited pagGeneral: TTabSheet + ExplicitLeft = 4 + ExplicitTop = 24 + ExplicitWidth = 865 + ExplicitHeight = 503 + end + object pagContenido: TTabSheet + Caption = 'Contenido' + ImageIndex = 1 + inline frViewDetallesPedidoProveedor1: TfrViewDetallesPedidoProveedor + Left = 0 + Top = 0 + Width = 865 + Height = 503 + Align = alClient + BiDiMode = bdLeftToRight + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentBiDiMode = False + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 865 + ExplicitHeight = 503 + inherited ToolBar1: TToolBar + Width = 865 + Height = 46 + ExplicitWidth = 865 + ExplicitHeight = 46 + inherited ToolButton3: TToolButton + Wrap = False + end + inherited ToolButton4: TToolButton + Left = 278 + Top = 0 + Wrap = True + ExplicitLeft = 278 + ExplicitTop = 0 + end + inherited ToolButton14: TToolButton + Left = 0 + Wrap = False + ExplicitLeft = 0 + end + inherited FontName: TJvFontComboBox + Left = 65 + Top = 22 + ExplicitLeft = 399 + ExplicitTop = 0 + end + inherited FontSize: TEdit + Left = 544 + Top = 0 + Width = 294 + ExplicitLeft = 544 + ExplicitTop = 0 + ExplicitWidth = 294 + end + inherited UpDown1: TUpDown + Left = 838 + Top = 0 + ExplicitLeft = 838 + ExplicitTop = 0 + end + inherited ToolButton13: TToolButton + Left = 0 + Top = 0 + Wrap = True + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitHeight = 27 + end + inherited ToolButton6: TToolButton + Left = 0 + Top = 27 + ExplicitLeft = 0 + ExplicitTop = 27 + end + inherited ToolButton7: TToolButton + Left = 66 + Top = 27 + ExplicitLeft = 66 + ExplicitTop = 27 + end + inherited ToolButton8: TToolButton + Left = 133 + Top = 27 + ExplicitLeft = 133 + ExplicitTop = 27 + end + inherited ToolButton12: TToolButton + Left = 216 + Top = 27 + ExplicitLeft = 216 + ExplicitTop = 27 + end + inherited ToolButton9: TToolButton + Left = 224 + Top = 27 + ExplicitLeft = 224 + ExplicitTop = 27 + end + inherited ToolButton10: TToolButton + Left = 369 + Top = 27 + ExplicitLeft = 369 + ExplicitTop = 27 + end + inherited ToolButton11: TToolButton + Left = 494 + Top = 27 + ExplicitLeft = 494 + ExplicitTop = 27 + end + end + inherited cxGrid: TcxGrid + Top = 77 + Width = 865 + Height = 426 + ExplicitTop = 77 + ExplicitWidth = 865 + ExplicitHeight = 429 + end + inherited TBXDock1: TTBXDock + Top = 51 + Width = 865 + ExplicitTop = 51 + ExplicitWidth = 865 + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 865 + end + end + inherited cxGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewDetallesPedidoProveedor1.cxGridView + HitTypes = [gvhtNone, gvhtCell, gvhtRecord, gvhtRowIndicator] + Index = 0 + PopupMenu = frViewDetallesPedidoProveedor1.GridGeneralPopupMenu + end> + end + end + end + object pagInicidencias: TTabSheet + Caption = 'Incidencias' + ImageIndex = 2 + inline frViewIncidenciasProv: TfrViewIncidencias + Left = 0 + Top = 0 + Width = 865 + Height = 503 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 865 + ExplicitHeight = 503 + inherited pnlSup: TPanel + Width = 865 + ExplicitWidth = 865 + inherited eIncidenciaActiva: TcxDBCheckBox + ExplicitHeight = 21 + end + end + inherited GroupBox1: TGroupBox + Width = 865 + Height = 475 + ExplicitWidth = 865 + ExplicitHeight = 478 + inherited eIncidencias: TcxDBMemo + ExplicitWidth = 848 + ExplicitHeight = 448 + Height = 448 + Width = 848 + end + end + end + end + end + inherited StatusBar: TJvStatusBar + Top = 659 + Width = 879 + Panels = < + item + Width = 200 + end> + ExplicitTop = 659 + ExplicitWidth = 879 + end + inline frViewTotales1: TfrViewTotales [4] + Left = 0 + Top = 613 + Width = 879 + Height = 46 + Align = alBottom + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 4 + ReadOnly = False + ExplicitTop = 613 + ExplicitWidth = 879 + ExplicitHeight = 46 + inherited dxLayoutControl1: TdxLayoutControl + Width = 879 + Height = 46 + LookAndFeel = dxLayoutOfficeLookAndFeel1 + ExplicitWidth = 879 + ExplicitHeight = 46 + inherited Bevel3: TBevel + Left = 458 + Top = 11 + Height = 30 + ExplicitLeft = 458 + ExplicitTop = 11 + ExplicitHeight = 30 + end + inherited Bevel4: TBevel + Left = 570 + Top = 53 + Width = 21 + ExplicitLeft = 570 + ExplicitTop = 53 + ExplicitWidth = 21 + end + inherited Bevel1: TBevel + Left = 570 + Top = 169 + Width = 73 + ExplicitLeft = 570 + ExplicitTop = 169 + ExplicitWidth = 73 + end + inherited Bevel2: TBevel + Left = 120 + Top = 171 + Width = 368 + ExplicitLeft = 120 + ExplicitTop = 171 + ExplicitWidth = 368 + end + inherited ImporteDto: TcxDBCurrencyEdit + Left = 191 + Top = 38 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 191 + ExplicitTop = 38 + ExplicitWidth = 253 + Width = 253 + end + inherited ImporteIVA: TcxDBCurrencyEdit + Left = 641 + Top = 88 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 641 + ExplicitTop = 88 + ExplicitWidth = 252 + Width = 252 + end + inherited ImporteTotal: TcxDBCurrencyEdit + Left = 571 + Top = 142 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 571 + ExplicitTop = 142 + ExplicitWidth = 322 + Width = 322 + end + inherited edtDescuento: TcxDBSpinEdit + Left = 120 + Top = 38 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 120 + ExplicitTop = 38 + end + inherited edtIVA: TcxDBSpinEdit + Left = 570 + Top = 88 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 570 + ExplicitTop = 88 + end + inherited ImporteBase: TcxDBCurrencyEdit + Left = 570 + Top = 11 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 570 + ExplicitTop = 11 + ExplicitWidth = 323 + Width = 323 + end + inherited edtRE: TcxDBSpinEdit + Left = 570 + Top = 115 + DataBinding.DataField = '' + DataBinding.DataSource = nil + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 570 + ExplicitTop = 115 + end + inherited ImporteRE: TcxDBCurrencyEdit + Left = 641 + Top = 115 + DataBinding.DataField = '' + DataBinding.DataSource = nil + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 641 + ExplicitTop = 115 + ExplicitWidth = 252 + Width = 252 + end + inherited eImporteNeto: TcxDBCurrencyEdit + Left = 120 + Top = 11 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 120 + ExplicitTop = 11 + ExplicitWidth = 324 + Width = 324 + end + inherited ePorte: TcxDBCurrencyEdit + Left = 120 + Top = 65 + Properties.OnValidate = frViewTotales1ePortePropertiesValidate + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 120 + ExplicitTop = 65 + ExplicitWidth = 324 + Width = 324 + end + inherited eIVA: TcxDBLookupComboBox + Left = 120 + Top = 92 + DataBinding.DataField = '' + DataBinding.DataSource = nil + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 120 + ExplicitTop = 92 + ExplicitWidth = 186 + Width = 186 + end + inherited bTiposIVA: TButton + Left = 310 + Top = 92 + ExplicitLeft = 310 + ExplicitTop = 92 + end + inherited cbRecargoEquivalencia: TcxDBCheckBox + Left = 120 + Top = 119 + DataBinding.DataField = '' + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 120 + ExplicitTop = 119 + ExplicitWidth = 324 + Width = 324 + end + inherited edtRetencion: TcxDBSpinEdit + Left = 570 + Top = 189 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 570 + ExplicitTop = 189 + end + inherited edtImporteRetencion: TcxDBCurrencyEdit + Left = 641 + Top = 189 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 641 + ExplicitTop = 189 + ExplicitWidth = 180 + Width = 180 + end + inherited edtFechaRetencion: TcxDBDateEdit + Left = 120 + Top = 191 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 120 + ExplicitTop = 191 + ExplicitWidth = 280 + Width = 280 + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Group1: TdxLayoutGroup + ShowCaption = False + ShowBorder = False + inherited dxLayoutControl1Group2: TdxLayoutGroup + inherited dxLayoutControl1Item8: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Group7: TdxLayoutGroup + Visible = False + inherited dxLayoutControl1Item9: TdxLayoutItem + Visible = False + end + end + inherited dxLayoutControl1Group6: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Item16: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Item19: TdxLayoutItem + Visible = False + end + end + inherited dxLayoutControl1Group5: TdxLayoutGroup + inherited dxLayoutControl1Item13: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Group3: TdxLayoutGroup + inherited dxLayoutControl1Item12: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Item14: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Group9: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Group8: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Item10: TdxLayoutItem + Visible = False + end + end + end + end + end + end + end + inherited EditorActionList: TActionList [5] + object actEnviarEMail: TAction + Category = 'Acciones' + Caption = 'Enviar por e-mail...' + OnExecute = actEnviarEMailExecute + OnUpdate = actEnviarEMailUpdate + end + end + inherited SmallImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001964944415478DA + 63FCFFFF3F03232323033A58BCE9F87F647EAC9F258622B05E6C068034873B8A + 80D92019C62F8F194C1356339CDF399D91A0014B361FFB1FE6208AA299E1F323 + 306D52F90CC5100C03566E3DFC3FD04E02A2F9F727064690462066006A66FC02 + 64FFFAC8603451096E088A01CB361FFDFF8F819981183077D11A86FDAB7B18E1 + 062CDD7CE27F14573FC3B2EF450CD13E86181ABE7DFFCDF0F5DB6F866FDFFE30 + 1CB97897218AB38FC1B85B98E1DC8E698C600396000D8861696058FAB7116CC0 + 94C5FBB0DAEC6CAECF70EED6238668E67AB057500CF8F0E10383A0A0208A0B90 + 6D06B1BF01D9379E3C67387AFE09C389A37BD15CE06B01B47907434EAC13C3EF + 3F7F19662E3F8862BB898606C3EFDFFF1896EF3DCFA0A5C0CD306FE9265403FC + 9D20362F5CB71F4CE7C47AA01890D5BC164C7716F980D56018606BAC0656B079 + EF2986F82047AC6150DEB785A13CD911AC06C300234D05867DC72F30B8D818E1 + 8DC2494B0E63F702281075D455884A07576EDEC134404A5480E1DAED07441900 + 021806F44D5D44B46618801B400900007F4518F05E90AAF20000000049454E44 + AE426082} + Name = 'PngImage21' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList [7] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002434944415478DA + B593DB6B13411C85CFA8AF0A11C5BED882977AA11A8A86A64AB5DA68ABB4DA17 + 9B071B94824F5510FF9022D8B4A2226AEA5DA434822951BC556D55225544E905 + A448895048369562B6D9ACFB1BC9CA38BBEB46D203CB4C7667BEEF4CD865BAAE + 6321C348C018B35D101978EDD82074A8D67633673B09081EDCB3426CA42A40D6 + B88C91E6BE536FF07EB097152D7003879A416FA21297AF0F584A6C056EE1BF47 + 053D63014B89A540826B3F0D5086C30B406859735E18C3D31D924412B8827368 + 4680334348E99E392D480401C19DDE26B75114059722FD5C620AFAA2C3FAFED9 + E3882FBB8AA3CD358E80F9790D2ABF727F8D1A129FBF625FE618EE6867F94912 + B11E662BE88EC45CB76ED8518DAC9AC3A7C96FF682743A0D8FC7637B02A7E604 + CF1ABF27A692285FBE1213E33F70EEE67951D0DEE247B86F109DED8D459FC0E7 + DD04D5904C2567904AA5103C5C8FC6B633A2A0ADC9C7175FB81547CBAE1A5454 + 7890CFEBBCE1F7E4AC25383537C79B131C2AC3E8E4184E869A7839E92F6ADD5B + 6D6EBC72FF0997AC2A5BCAE1D1E7239602EFDA4A684BF2589C5BC4E12782017E + FFE2ED47B2E060DD1661F38DE80B2E2138B5B20A352509C143ADBBCDFB91FE67 + B220E0DF2C01EEC55E99ADEC426D8F1CD829DCBBFBF0A52CA8DBB64158147D3C + 22B4720A356E6EF8F3F63D30F64A025FD51A73417C2821B5FA57A875BDDFCBE7 + 4F87476541D5FAD5FCE1D0DB8F429B6242CDB76FDD88771FBEC88275E565FC41 + A1C5FF86DA532CBF64B297228E272855244157F85AC9E085988285CC2F0A951A + EF05170AF90000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [8] + end + inherited dsDataTable: TDADataSource [10] + end + object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList + Left = 336 + Top = 176 + object dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel + GroupOptions.CaptionOptions.Font.Charset = DEFAULT_CHARSET + GroupOptions.CaptionOptions.Font.Color = clWindowText + GroupOptions.CaptionOptions.Font.Height = -11 + GroupOptions.CaptionOptions.Font.Name = 'Tahoma' + GroupOptions.CaptionOptions.Font.Style = [fsBold] + GroupOptions.CaptionOptions.TextColor = clHighlight + GroupOptions.CaptionOptions.UseDefaultFont = False + end + end +end diff --git a/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidoProveedor.pas b/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidoProveedor.pas new file mode 100644 index 0000000..e0405ff --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidoProveedor.pas @@ -0,0 +1,370 @@ +unit uEditorPedidoProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorDBItem, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, + TB2Toolbar, ExtCtrls, JvExControls, JvNavigationPane, + uViewPedidoProveedor, uCustomView, uViewBase, JvComponentBase, + StdCtrls, pngimage, AppEvnts, cxControls, cxContainer, cxEdit, cxTextEdit, cxMemo, cxDBEdit, + uViewIncidencias, + uBizPedidosProveedor, uIEditorPedidoProveedor, uPedidosProveedorController, + uViewDetallesBase, uViewDetallesPedidoProveedor, + dxLayoutLookAndFeels, JvExComCtrls, JvStatusBar, uViewTotales, + uViewDetallesDTO, uViewDetallesArticulos, uDAInterfaces, cxLabel; + +type + TfEditorPedidoProveedor = class(TfEditorDBItem, IEditorPedidoProveedor) + pagContenido: TTabSheet; + pagInicidencias: TTabSheet; + frViewIncidenciasProv: TfrViewIncidencias; + frViewDetallesPedidoProveedor1: TfrViewDetallesPedidoProveedor; + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + frViewTotales1: TfrViewTotales; + TBXSubmenuItem2: TTBXSubmenuItem; + TBXItem7: TTBXItem; + actEnviarEMail: TAction; + TBXSeparatorItem6: TTBXSeparatorItem; + TBXItem33: TTBXItem; + + procedure FormShow(Sender: TObject); + procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); + procedure pgPaginasChanging(Sender: TObject; var AllowChange: Boolean); + procedure frViewTotales1ePortePropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure actEnviarEMailUpdate(Sender: TObject); + procedure actEnviarEMailExecute(Sender: TObject); + private + procedure RecalcularPortePorUnidad; + + protected + FPedido: IBizPedidoProveedor; + FViewPedido: IViewPedidoProveedor; + FController : IPedidosProveedorController; + + function GetController : IPedidosProveedorController; + procedure SetController (const Value : IPedidosProveedorController); virtual; + + function GetPedido: IBizPedidoProveedor; + procedure SetPedido(const Value: IBizPedidoProveedor); virtual; + + function GetViewPedido: IViewPedidoProveedor; + procedure SetViewPedido(const Value: IViewPedidoProveedor); + + procedure GuardarInterno; override; + procedure EliminarInterno; override; + procedure PrevisualizarInterno; override; + procedure ImprimirInterno; override; + + procedure OnProveedorChanged(Sender : TObject); + function PuedoImprimir: Boolean; override; + function PuedoEnviar: Boolean; virtual; + + //Si queremos crear otra vista para el editor heredado solo tendriamos que + //sobreescribir este metodo + procedure AsignarVista; virtual; + + property ViewPedido: IViewPedidoProveedor read GetViewPedido write SetViewPedido; + + public + procedure PonerTitulos(const ATitulo: string = ''); override; + property Controller : IPedidosProveedorController read GetController write SetController; + property Pedido: IBizPedidoProveedor read GetPedido write SetPedido; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +uses + uViewDatosYSeleccionProveedor, uDataModuleUsuarios, uGridStatusUtils, uDialogUtils, + uFactuGES_App, uDialogOpcionesImpresionPedidosProveedor; + +{$R *.dfm} + +{ TfEditorPedidoProveedor } + +{ +**************************** TfEditorPedidoProveedor **************************** +} + +procedure TfEditorPedidoProveedor.actEnviarEMailExecute(Sender: TObject); +begin + if actEnviarEMail.Enabled then + begin + if Modified then + begin + if (ShowConfirmMessage('Se han producido cambios', 'Se han producido cambios y no se puede enviar por email hasta que no se guarden.' + #10#13 + + 'Desea guardarlos ahora?') = IDYES) then + begin + GuardarInterno; + FController.EnviarPedidoPorEMail(Pedido); + end + else + ShowInfoMessage('Recuerde guardar los cambios si quiere enviar por email.'); + end + else + FController.EnviarPedidoPorEMail(Pedido); + end; +end; + +procedure TfEditorPedidoProveedor.actEnviarEMailUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos and PuedoEnviar; +end; + +procedure TfEditorPedidoProveedor.AsignarVista; +var + AViewPedidoProveedor: TfrViewPedidoProveedor; + +begin + AViewPedidoProveedor := TfrViewPedidoProveedor.Create(Self); + with AViewPedidoProveedor do + begin + Parent := pagGeneral; + Align := alClient; + dxLayoutControl1.LookAndFeel := dxLayoutOfficeLookAndFeel1; + end; + ViewPedido := AViewPedidoProveedor; +end; + +constructor TfEditorPedidoProveedor.Create(AOwner: TComponent); +begin + inherited; + pgPaginas.ActivePageIndex := 0; + + AsignarVista; +end; + +procedure TfEditorPedidoProveedor.CustomEditorClose(Sender: TObject; + var Action: TCloseAction); +begin + inherited; + FViewPedido := NIL; + FPedido := NIL; +end; + +destructor TfEditorPedidoProveedor.Destroy; +begin + // Utilizar mejor OnClose; + inherited; +end; + +procedure TfEditorPedidoProveedor.EliminarInterno; +begin + if (Application.MessageBox('Desea borrar este pedido a proveedor?', 'Atencin', MB_YESNO) = IDYES) then + begin + FController.Eliminar(FPedido); + inherited + end +end; + +procedure TfEditorPedidoProveedor.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(FViewPedido) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Pedido) then + raise Exception.Create('No hay ningn pedido asignado'); + + Pedido.DataTable.Active := True; + pgPaginas.ActivePage := pagGeneral; +end; + +procedure TfEditorPedidoProveedor.frViewTotales1ePortePropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + if (not VarIsNull(DisplayValue)) and (length(DisplayValue) > 0) then + FPedido.IMPORTE_PORTE := DisplayValue + else + FPedido.IMPORTE_PORTE := 0; + + RecalcularPortePorUnidad; +end; + +function TfEditorPedidoProveedor.GetController: IPedidosProveedorController; +begin + Result := FController; +end; + +function TfEditorPedidoProveedor.GetPedido: IBizPedidoProveedor; +begin + Result := FPedido; +end; + +function TfEditorPedidoProveedor.GetViewPedido: IViewPedidoProveedor; +begin + Result := FViewPedido; +end; + +procedure TfEditorPedidoProveedor.GuardarInterno; +var + bEsNuevo : Boolean; +begin + inherited; + + ShowHourglassCursor; +// frViewDetallesPedidoProveedor1.SaveGridStatus; // Para guardar estado del grid + frViewDetallesPedidoProveedor1.BeginUpdate; // Para que no se mueva el foco + try + bEsNuevo := FPedido.EsNuevo; + FController.Guardar(FPedido); + finally + frViewDetallesPedidoProveedor1.EndUpdate; +// frViewDetallesPedidoProveedor1.RestoreGridStatus; + HideHourglassCursor; + end; + + if bEsNuevo then + ShowInfoMessage('El pedido se ha dado de alta con el cdigo ' + FPedido.REFERENCIA); + + Modified := False; +end; + +procedure TfEditorPedidoProveedor.ImprimirInterno; +var + AllItems: Boolean; + FImprimirPrecios : Boolean; + FImprimirRefProveedor : Boolean; +begin + inherited; + AllItems := False; + FImprimirPrecios := True; + FImprimirRefProveedor := True; + + if ElegirOpcionesImpresionPedidoProveedor(FImprimirPrecios, FImprimirRefProveedor) then + FController.Print(FPedido, AllItems, FImprimirPrecios, FImprimirRefProveedor); +end; + +function TfEditorPedidoProveedor.PuedoEnviar: Boolean; +begin + Result := not Pedido.Proveedor.IDIsNull; +end; + +function TfEditorPedidoProveedor.PuedoImprimir: Boolean; +begin + Result := inherited PuedoImprimir and (not Pedido.Proveedor.IDIsNull); +end; + +procedure TfEditorPedidoProveedor.OnProveedorChanged(Sender: TObject); +begin + if Assigned(FPedido) then + begin + FPedido.Proveedor := ViewPedido.ViewProveedorPedido.Proveedor; + + // Si el pedido tiene detalles hay que mirar si los descuentos y otros campos + // para los artculos hay que cambiarlos. + if (FPedido.Detalles.RecordCount > 0) then + FController.DetallesController.ActualizarDetalles(FPedido.Detalles, FPedido.Proveedor); + end; +end; + +procedure TfEditorPedidoProveedor.pgPaginasChanging(Sender: TObject; var AllowChange: Boolean); +begin + inherited; + if (not Assigned(FPedido)) + or (FPedido.ID_PROVEEDOR = 0) then + begin + ShowWarningMessage('Antes de introducir conceptos debe elegir un proveedor para este pedido'); + AllowChange := False; + end; +end; + +procedure TfEditorPedidoProveedor.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := ATitulo; + if (FTitulo = '') and Assigned(FPedido) then + begin + if FPedido.EsNuevo then + FTitulo := 'Nuevo pedido a proveedor' + else + FTitulo := 'Pedido a proveedor' + ' - ' + FPedido.Proveedor.Nombre + ' - (' + FPedido.SITUACION + ')'; + end; + + inherited PonerTitulos(FTitulo); + + Self.Caption := FTitulo + ' (' + AppFactuGES.EmpresaActiva.NOMBRE + ')'; +end; + +procedure TfEditorPedidoProveedor.PrevisualizarInterno; +var + AllItems: Boolean; + FImprimirPrecios : Boolean; + FImprimirRefProveedor : Boolean; +begin + inherited; + AllItems := False; + FImprimirPrecios := True; + FImprimirRefProveedor := True; + + if ElegirOpcionesImpresionPedidoProveedor(FImprimirPrecios, FImprimirRefProveedor) then + FController.Preview(FPedido, AllItems, FImprimirPrecios, FImprimirRefProveedor); +end; + +procedure TfEditorPedidoProveedor.RecalcularPortePorUnidad; +begin + //Esta lgica se llamar en el editor porque es para facilitar el rellenado de informacin del documento + //no puede ir en la clase de negocio porque no es una lgica que tenga sentido fuera del editor. + if Assigned(Controller) + and Assigned(Controller.DetallesController) then + Controller.DetallesController.DesglosarPorteDetalles(FPedido.IMPORTE_PORTE, FPedido.Detalles) +end; + +procedure TfEditorPedidoProveedor.SetController(const Value: IPedidosProveedorController); +begin + FController := Value; + + if Assigned(FController) then + begin + if Assigned(FViewPedido) then + FViewPedido.Controller := Controller; + + frViewDetallesPedidoProveedor1.Controller := Controller.DetallesController; + end; +end; + +procedure TfEditorPedidoProveedor.SetPedido(const Value: IBizPedidoProveedor); +begin + FPedido := Value; + + if Assigned(FPedido) then + begin + dsDataTable.DataTable := FPedido.DataTable; + frViewTotales1.DADataSource.DataTable := dsDataTable.DataTable; + frViewIncidenciasProv.DADataSource.DataTable := dsDataTable.DataTable; + + if Assigned(FViewPedido) then + begin + ViewPedido.ViewProveedorPedido.OnProveedorChanged := NIL; + try + FViewPedido.Pedido := FPedido; + frViewDetallesPedidoProveedor1.Detalles := FPedido.Detalles; + frViewDetallesPedidoProveedor1.Pedido := FPedido; //Para poder sacar los articulos del proveedor seleccionado + finally + ViewPedido.ViewProveedorPedido.OnProveedorChanged := OnProveedorChanged; + end; + end; + end; +end; + +procedure TfEditorPedidoProveedor.SetViewPedido(const Value: IViewPedidoProveedor); +begin + FViewPedido := Value; + + if Assigned(FViewPedido) and Assigned(Pedido) then + FViewPedido.Pedido := Pedido; +end; + +end. + \ No newline at end of file diff --git a/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidosProveedor.dcu b/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidosProveedor.dcu new file mode 100644 index 0000000..a35c4be Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidosProveedor.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidosProveedor.dfm b/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidosProveedor.dfm new file mode 100644 index 0000000..27e11a2 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidosProveedor.dfm @@ -0,0 +1,3182 @@ +inherited fEditorPedidosProveedor: TfEditorPedidosProveedor + Left = 411 + Top = 346 + Caption = 'Lista de pedidos a proveedor' + ClientWidth = 700 + Position = poDesigned + ExplicitWidth = 708 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 700 + Caption = 'Lista de pedidos a proveedor' + ExplicitWidth = 700 + inherited Image1: TImage + Left = 673 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 520000000467414D410000AA11B57D14DC0000026C4944415478DA63FCFFFF3F + C3A28DC7FF335009C4F95B3222F319611600254836ECEFDF7F40FC1F4C838085 + 6F36C3C53DB3705BB0D7D21EC500E7E307711A8EACD674CF2E8679ABF730CC5F + B211BF05A4B8FC808D2383328B34C3B6D3CB19225F7E6358B87E1F610BB0F900 + 5D0C046C0FEE63386CEFC470F3FC21303FECD91786259B0E50E683FFFF80610D + C47F80AE07B17FFF0386FF9F7F60DFFCF9F79761C596C3A4FB801800F285EF83 + 770C6B771C23CE0298B749015E77DF306CD87D82380BF0A51C6C00A44771E55A + 864DFB4E126F01AEA082590E9387A9955BBE8661EB8153B4F381E492550CBB0E + 9FA1AE0F6EAA108EABC75FEDC8F3C1B4584686847408FBE74F06865F3F2018C4 + FEF903824F1C47B320DAC71C9C3B09F98058C3F9251818AEDC45B220C2D30C9C + 3BF1F90064388B207EDFFD798F301C250E42DD4C188E39B910B400E67A10F8F8 + 0EE2E21F5097FFFACEC070FA0C2468EC0D0F311C3C8FE48300172386D32E6E78 + 5D078A5890664200643808A058E0EB60002F5720E5FC3F70D903160396F94FA3 + 43C11620FB001C247F81F83703C36F501C007D70ED3A420EC5022F5B3D9C8683 + E81771E11816FCFA05341888FF40E995ABD919D4357E32B0B160B1C0CD5A1BA7 + E1A012F44D62248605A038005B00F201106FDACACE202D0FB1808D9581E1F865 + 240B1CCD35C086FDFB0B29967FFF4514C7FFFE432C3ADD2D8F62C19B1708C341 + 166DDFCDCE202A0DB1E0F21D3B86F6750719E116D899A8814B447C806DAF0FDC + 0250F0BC7B89301C44EF39C0CEC02FFE93E1FE1388E128C9B477F27C82A9235D + 7236D882A993D971AA79F7DB1C6E38DC0262417738C73AA00181F8D4201B0E02 + 00C20B50400F1E42A70000000049454E44AE426082} + ExplicitLeft = 673 + end + end + inherited TBXDock: TTBXDock + Width = 700 + ExplicitWidth = 700 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 700 + object TBXItem40: TTBXItem [13] + Action = actEnviarEMail + end + end + inherited tbxFiltro: TTBXToolbar + ExplicitWidth = 427 + inherited lblAno: TTBXLabelItem + Visible = True + end + inherited cbxListaAnos: TTBXComboBoxItem + Visible = True + end + inherited sepAno: TTBXSeparatorItem + Visible = True + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 700 + end + inherited TBXTMain2: TTBXToolbar + Left = 427 + Visible = True + ExplicitLeft = 427 + ExplicitWidth = 273 + object TBXItem39: TTBXItem + Action = actRecibirPedido + DisplayMode = nbdmImageAndText + end + object TBXItem38: TTBXItem + Action = actFacturarPedido + DisplayMode = nbdmImageAndText + end + object TBXItem41: TTBXItem + Action = actInformes + end + end + end + inherited StatusBar: TJvStatusBar + Width = 700 + ExplicitWidth = 700 + end + inline frViewPedidosProveedor1: TfrViewPedidosProveedor [3] + Left = 0 + Top = 102 + Width = 700 + Height = 383 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 102 + ExplicitWidth = 700 + ExplicitHeight = 383 + inherited cxGrid: TcxGrid + Width = 700 + Height = 255 + ExplicitWidth = 700 + ExplicitHeight = 255 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Position = spFooter + Column = frViewPedidosProveedor1.cxGridViewIMPORTE_TOTAL + end> + DataController.Summary.FooterSummaryItems = < + item + Format = '0 pedidos' + Kind = skCount + Column = frViewPedidosProveedor1.cxGridViewREFERENCIA + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = frViewPedidosProveedor1.cxGridViewIMPORTE_TOTAL + end> + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 700 + ExplicitWidth = 700 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 700 + inherited dxLayoutControl1: TdxLayoutControl + Width = 700 + ExplicitWidth = 700 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 660 + Width = 660 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 267 + Width = 267 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 277 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 277 + ExplicitWidth = 319 + Width = 319 + end + inherited eLista: TcxComboBox + Left = 543 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 543 + ExplicitWidth = 215 + Width = 215 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 700 + ExplicitWidth = 700 + inherited tbxBotones: TTBXToolbar + Width = 690 + ExplicitWidth = 690 + end + end + end + inherited ActionList1: TActionList + Left = 376 + end + inherited PngImageList: TPngImageList + Left = 344 + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 357 + ExplicitTop = 357 + ExplicitWidth = 700 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 700 + ExplicitWidth = 700 + inherited TBXToolbar1: TTBXToolbar + Width = 690 + ExplicitWidth = 690 + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39211.779543356480000000 + BuiltInReportLink = True + end + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewPedidosProveedor1.cxGridView + HitTypes = [gvhtCell] + Index = 0 + end> + end + end + inherited EditorActionList: TActionList [4] + Left = 16 + inherited actNuevo: TAction + ImageIndex = 21 + end + inherited actPrevisualizar: TAction + Visible = True + end + inherited actImprimir: TAction + Visible = True + end + inherited actAnchoAuto: TAction + ImageIndex = 22 + end + object actRecibirPedido: TAction + Category = 'Acciones' + Caption = 'Recibir pedido...' + ImageIndex = 23 + OnExecute = actRecibirPedidoExecute + OnUpdate = actRecibirPedidoUpdate + end + object actFacturarPedido: TAction + Category = 'Acciones' + Caption = 'Generar factura' + ImageIndex = 23 + OnExecute = actFacturarPedidoExecute + OnUpdate = actFacturarPedidoUpdate + end + object actEnviarEMail: TAction + Category = 'Acciones' + Caption = 'Enviar por e-mail...' + OnExecute = actEnviarEMailExecute + OnUpdate = actEnviarEMailUpdate + end + object actInformes: TAction + Category = 'Acciones' + Caption = 'Informes' + OnExecute = actInformesExecute + end + end + inherited SmallImages: TPngImageList [5] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001864944415478DA + 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F + 192CBCB3192EEE99856AC05E4B2B14C5CEC78F81696471AB030719662EDFC530 + 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB001DDAD3B19966D3A84 + DB0098B341E01F50EECF9F7F709BCFB93B33686EDCCEB06ADB11FC06C05C627B + E830C3613B5BB8CD97BDDD1954D66E6158BFEB387E0360367FBA7990E1C5C218 + 7C3E72C130C0F1D85186FD56D66059719B070CAA2D350CECEC59183A7FFE9CC6 + 303BB68501C30090B3617E7EDAACCCA0D3FD0CAC180EBE7F6760F8F19D61FA0E + 4306966DA9080372623D190EDAD8A0D80272018A0120CD1FDE81E9E9279D510D + 488F7463F805B4F9CF6F50A8FF61B8EAEB816A004CF37B20FEF19361FACD6054 + 0312439DE19A415EB815E88D30E0432F42F3870F1017BC4A45352036C011AE19 + 140320D7FC9E6A0031E041354233D80540037E95A31A10E163CBB062CB61D438 + BA9A0A8E85E9CBE5B1C6218A01A084810EB478DF3058B39EC099081CE4195C00 + 45135E518E0B4E380000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B3A00000B3A01647F570D0000015D4944415478DA + 63FCFFFF3F030830323232C0C0CEB58DCA2F6E6CBDF3FEF129B818C30F061490 + 3FFF3F58032336032E9C58FD9F8B47904155DB192EF6FFD72B867F9F2F31FCB9 + E3CA3063061E0380B6DBB373F01CB076CD66606165C7AAB96001923E6403809A + 9979F925FEC8299B32482B18E2D40C16C7614032D08039164EA97017810CF875 + 5E1CAC196F18EC5AD7C40F74FA073DB36006411179B8E6FF3F5F32FCBEA687A2 + 196B18000D681797D6AAD06008852B64D5BA0434E4251833000DFBFBA2087718 + 2CEF76FFFFE1E119865F5FDF81F9B993706BC61906D0589056D7D07F2223CE8D + 53332103DAC5C4A52B749438706AC6170BECACAC6C3FF4547918F8397FE3D48C + 3F1A79F9E7982A7F66F8FBBA16A7669C061CDB35E1BF9CAA1D83C84B23BC9AB1 + 1A008C466BA0F38F5888D632CC9AF907AF66AC065C383AF73FC7B7150C3B97ED + 21A819AB0137CE2CFBBF776E2643CE8C4F0435231B00004A4C11F0D3652A8300 + 00000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026C4944415478DA + 63FCFFFF3FC3A28DC7FF335009C4F95B3222F319611600254836ECEFDF7F40FC + 1F4C8380856F36C3C53DB3705BB0D7D21EC500E7E307711A8EACD674CF2E8679 + ABF730CC5FB211BF05A4B8FC808D2383328B34C3B6D3CB19225F7E6358B87E1F + 610BB0F9005D0C046C0FEE63386CEFC470F3FC21303FECD91786259B0E50E683 + FFFF80610DC47F80AE07B17FFF0386FF9F7F60DFFCF9F79761C596C3A4FB8018 + 00F285EF83770C6B771C23CE0298B749015E77DF306CD87D82380BF0A51C6C00 + A44771E55A864DFB4E126F01AEA082590E9387A9955BBE8661EB8153B4F381E4 + 92550CBB0E9FA1AE0F6EAA108EABC75FEDC8F3C1B4584686847408FBE74F0686 + 5F3F2018C4FEF903824F1C47B320DAC71C9C3B09F98058C3F9251818AEDC45B2 + 20C2D30C9C3BF1F90064388B207EDFFD798F301C250E42DD4C188E39B910B400 + E67A10F8F80EE2E21F5097FFFACEC070FA0C2468EC0D0F311C3C8FE483001723 + 86D32E6E785D078A5890664200643808A058E0EB60002F5720E5FC3F70D90316 + 0396F94FA343C11620FB001C247F81F83703C36F501C007D70ED3A420EC5022F + 5B3D9C8683E81771E11816FCFA05341888FF40E995ABD919D4357E32B0B160B1 + C0CD5A1BA7E1A012F44D62248605A038005B00F201106FDACACE202D0FB1808D + 9581E1F865240B1CCD35C086FDFB0B29967FFF4514C7FFFE432C3ADD2D8F62C1 + 9B1708C341166DDFCDCE202A0DB1E0F21D3B86F6750719E116D899A8814B447C + 806DAF0FDC0250F0BC7B89301C44EF39C0CEC02FFE93E1FE1388E128C9B477F2 + 7C82A9235D7236D882A993D971AA79F7DB1C6E38DC0262417738C73AA00181F8 + D4201B0E0200C20B50400F1E42A70000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000001B94944415478DA + 63FCFFFF3F032D01E38058C0C8C888C2DFB9B651F9C58DAD77DE3F3E85AAF007 + 7643F3E7FF6724C9828B27D7FCE7E0E46350D3754511FFFFEB15C3BFCF9718FE + 7FB90CC40F18FE7D99C43063068916005D6FCEC2CA71C2CE239F8185959DA0E1 + 050B50CD2468C1C903F3FF4B486B32C8A9986375FDBF179B510C07CB116B01D0 + F5C15C3C426BAC5DB3512CC56738D116000D67061AFE4755DB99411CE803620D + 27C5827C0161B90966F6091841F3E7762BDC7064407410ED5AD7C40F8CD80FC6 + D6D10CFC42D22886FFFFF992E1EFA339600B9001497100B4A05B4246BB44CF2C + 18C3F0FFBF209801C4474B3D4407D1F26EF7FF1F1E9E61F8F5F51D5C2C77D225 + A20C272915415392B4BA9ACC13194939A20C27C7826E7131C1126D6521A20C27 + C902A0E1DC2C2CCC5F0CD5051878397E116538A916E40BF0734F3052FCCEF0FF + FB6BA20C27DA027046E364FFA322C5C420CCF28468C349B1C01F68C10633B967 + C0A021DE70A22D38B9A7E7BF28DF1F06A97F1524194E9405C08C660C8CDC3316 + 624D0CB367FE22C970A22CB87864F27FB66F5B18762DDF45B2E1445970E3F4F4 + FF7BE75530E4CCF844B2E14459404D40730B006B5E9AE0A24640FE0000000049 + 454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [7] + end + inherited dsDataTable: TDADataSource [9] + end + inherited StatusBarImages: TPngImageList [10] + Left = 152 + end + inherited GridPopupMenu: TPopupMenu + object Cambiarsituacin1: TMenuItem [4] + Action = actRecibirPedido + end + object N4: TMenuItem [5] + Caption = '-' + end + object Acercade1: TMenuItem [11] + Action = actEnviarEMail + end + end + object JsNuevoPedidoProveedorDialog: TJSDialog + Content.Strings = ( + #191'C'#243'mo desea dar de alta el pedido?') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Nuevo pedido de proveedor' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Pedido proveedor nuevo vac'#237'o.' + Value = 100 + end + item + Caption = 'Utilizar un pedido de cliente.' + Value = 200 + Info.Strings = ( + + 'Puede utilizar un pedido de cliente existente para dar de alta e' + + 'l/los pedido/os a proveedor nuevo/os.') + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Left = 144 + Top = 112 + end + object JsPrevisualizarDialog: TJSDialog + Content.Strings = ( + 'Elija una opci'#243'n:') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Previsualizar...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Previsualizar el pedido/s seleccionado/s' + Value = 100 + Default = True + end + item + Caption = 'Previsualizar la lista de pedidos actual' + Value = 200 + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 232 + Top = 112 + end + object JsImprimirDialog: TJSDialog + Content.Strings = ( + 'Elija una opci'#243'n:') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Imprimir...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Imprimir el pedido/s seleccionado/s' + Value = 100 + Default = True + end + item + Caption = 'Imprimir la lista de pedidos actual' + Value = 200 + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 264 + Top = 112 + end + object JsListaPedidosNoEliminados: TJSDialog + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = + 'Los siguientes pedidos no han podido ser eliminados, porque tien' + + 'en albaranes asociados' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + ButtonBar.Buttons = [cbOK] + ButtonBar.Cancel = cbOK + ButtonBar.UseCancel = False + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 184 + Top = 112 + end + object JSInformesDialog: TJSDialog + Content.Strings = ( + 'Seleccione el informe que desea realizar') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Nuevo informe' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Listado de pedidos.' + Value = 100 + Default = True + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 624 + Top = 80 + end +end diff --git a/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidosProveedor.pas b/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidosProveedor.pas new file mode 100644 index 0000000..30e8d6b --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidosProveedor.pas @@ -0,0 +1,467 @@ +unit uEditorPedidosProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, Menus, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems, + TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, + JvNavigationPane, uViewGrid, pngimage, JvComponentBase, + uEditorGridBase, + uBizPedidosProveedor, uIEditorPedidosProveedor, uPedidosProveedorController, + uCustomView, uViewBase, uViewBarraSeleccion, uViewGridBase, + uViewPedidosProveedor, JvExComCtrls, JvStatusBar, JSDialog, uDAInterfaces; + +type + TfEditorPedidosProveedor = class(TfEditorGridBase, IEditorPedidosProveedor) + frViewPedidosProveedor1: TfrViewPedidosProveedor; + N4: TMenuItem; + Cambiarsituacin1: TMenuItem; + actRecibirPedido: TAction; + JsNuevoPedidoProveedorDialog: TJSDialog; + JsPrevisualizarDialog: TJSDialog; + JsImprimirDialog: TJSDialog; + TBXItem39: TTBXItem; + JsListaPedidosNoEliminados: TJSDialog; + actFacturarPedido: TAction; + TBXItem38: TTBXItem; + actEnviarEMail: TAction; + TBXItem40: TTBXItem; + Acercade1: TMenuItem; + actInformes: TAction; + TBXItem41: TTBXItem; + JSInformesDialog: TJSDialog; + procedure FormShow(Sender: TObject); + procedure actCambiarSituacionExecute(Sender: TObject); + procedure actRecibirPedidoUpdate(Sender: TObject); + procedure actRecibirPedidoExecute(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + procedure actFacturarPedidoExecute(Sender: TObject); + procedure actFacturarPedidoUpdate(Sender: TObject); + procedure actEnviarEMailExecute(Sender: TObject); + procedure actEnviarEMailUpdate(Sender: TObject); + procedure actInformesExecute(Sender: TObject); + procedure OnListaAnosChange(Sender: TObject; const Text: string); + + protected + FPedidos: IBizPedidoProveedor; + FController : IPedidosProveedorController; + + function GetPedidos: IBizPedidoProveedor; + procedure SetPedidos(const Value: IBizPedidoProveedor); + + function GetController : IPedidosProveedorController; virtual; + procedure SetController (const Value : IPedidosProveedorController); virtual; + + procedure NuevoInterno; override; + procedure ModificarInterno; override; + procedure EliminarInterno; override; + procedure DuplicarInterno; override; + procedure ImprimirInterno; override; + procedure PrevisualizarInterno; override; + procedure RefrescarInterno; override; + + public + procedure PonerTitulos(const ATitulo: string = ''); override; + + property Pedidos: IBizPedidoProveedor read GetPedidos write SetPedidos; + property Controller : IPedidosProveedorController read GetController write SetController; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +uses + uDataModulePedidosProveedor, uDataModuleUsuarios, uFactuGES_App, uEditorDBBase, + uGenerarAlbaranesProvUtils, uGenerarFacturasProvPedUtils, +// uInventarioController, uBizInventario, + uDialogUtils, uGridStatusUtils, uDBSelectionListUtils, + uDialogOpcionesImpresionPedidosProveedor, uGestorInformesController; +// uAlbaranesProveedorController, uBizAlbaranesProveedor, +// uGenerarPedidosProvUtils, ; + +{$R *.dfm} + +{ +*************************** TfEditorPedidosProveedor *************************** +} +procedure TfEditorPedidosProveedor.actCambiarSituacionExecute(Sender: TObject); +begin +{ + inherited; + FController.CambiarSituacion(FPedidos) +} +end; + +procedure TfEditorPedidosProveedor.actEliminarUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := (FPedidos.SITUACION = SITUACION_PEDIDO_PENDIENTE); +end; + +procedure TfEditorPedidosProveedor.actEnviarEMailExecute(Sender: TObject); +begin + inherited; + FController.EnviarPedidoPorEMail(FPedidos); +end; + +procedure TfEditorPedidosProveedor.actEnviarEMailUpdate(Sender: TObject); +begin + inherited; + if HayDatos and Assigned(ViewGrid) then + (Sender as TAction).Enabled := ViewGrid.EsSeleccionCeldaDatos + and (ViewGrid.NumSeleccionados > 0) + else + (Sender as TAction).Enabled := False; +end; + +procedure TfEditorPedidosProveedor.actFacturarPedidoExecute(Sender: TObject); +begin + inherited; + + if (ShowConfirmMessage('Generar factura', Format('¿Desea copiar todos los conceptos del pedido %s a la factura?', [Pedidos.REFERENCIA])) = IDYES) then + GenerarFacturaProvPed(Pedidos.ID) + else + GenerarFacturaProvPed(Pedidos.ID, False); + + actRefrescar.Execute; +end; + +procedure TfEditorPedidosProveedor.actFacturarPedidoUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos + and not (ViewGrid.NumSeleccionados > 1) + and (FPedidos.REF_FACTURA_PROV = '') + and ViewGrid.esSeleccionCeldaDatos; +end; + +procedure TfEditorPedidosProveedor.actInformesExecute(Sender: TObject); +var + Respuesta : Integer; + AGestorInformesController : IGestorInformesController; + +begin + AGestorInformesController := TGestorInformesController.Create; + try + + Respuesta := JsInformesDialog.Execute; + + if Respuesta <> IDCANCEL then + begin + case JsInformesDialog.CustomButtonResult of + 100 : begin // Listado de facturas pendientes + AGestorInformesController.VerInformeListadoPedidos; + end; + end; + end; + + finally + AGestorInformesController := NIL; + end; +end; + +procedure TfEditorPedidosProveedor.actRecibirPedidoExecute(Sender: TObject); +begin + inherited; + RecibirPedidoProv(FPedidos); + actRefrescar.Execute; +end; + +procedure TfEditorPedidosProveedor.actRecibirPedidoUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos and + not (ViewGrid.NumSeleccionados > 1) and + ViewGrid.esSeleccionCeldaDatos and + (FPedidos.SITUACION <> SITUACION_PEDIDO_RECIBIDO); +end; + +constructor TfEditorPedidosProveedor.Create(AOwner: TComponent); +begin + inherited; + + FHeaderText := 'Lista de pedidos a proveedor'; + FWindowCaption := FHeaderText; + + ViewGrid := frViewPedidosProveedor1; //CreateView(TfrViewPedidosProveedor) as IViewPedidosProveedor; +end; + +destructor TfEditorPedidosProveedor.Destroy; +begin + FPedidos := NIL; + FController := NIL; + inherited; +end; + +procedure TfEditorPedidosProveedor.DuplicarInterno; +var + APedido : IBizPedidoProveedor; +begin + inherited; + APedido := FController.Duplicar(Pedidos); + try + FController.Ver(APedido); + finally + actRefrescar.Execute; + end; +end; + +procedure TfEditorPedidosProveedor.EliminarInterno; +var + APedidos: IBizPedidoProveedor; + AllItems: Boolean; +begin + APedidos := Nil; + AllItems := False; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + if AllItems then + begin + if (Application.MessageBox('¿Desea borrar los pedidos de proveedor seleccionados?', 'Atención', MB_YESNO) = IDYES) then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Pedidos as ISeleccionable).SelectedRecords); + APedidos := (Controller as IPedidosProveedorController).ExtraerSeleccionados(Pedidos) as IBizPedidoProveedor; + end + end + else begin + if (Application.MessageBox('¿Desea borrar el pedido de proveedor seleccionado?', 'Atención', MB_YESNO) = IDYES) then + APedidos := Pedidos; + end; + + if Assigned(APedidos) then + begin + FController.Eliminar(APedidos, AllItems); + if AllItems then + begin + if (APedidos.DataTable.RecordCount > 0) then + begin + with APedidos.DataTable do + begin + First; + while not EOF do + begin + JsListaPedidosNoEliminados.Content.Add('Ref. pedido: ' + APedidos.REFERENCIA + ' ' + APedidos.NOMBRE); + Next; + end; + end; + JsListaPedidosNoEliminados.Execute; + end; + actRefrescar.Execute; + end; + end; + + ViewGrid.GotoFirst; +end; + +procedure TfEditorPedidosProveedor.FormShow(Sender: TObject); +begin + cbxListaAnos.OnChange := OnListaAnosChange; //OJO SIEMPRE ANTES DEL INHERITED + + inherited; + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Pedidos) then + raise Exception.Create('No hay ningún pedido asignado'); + + Pedidos.DataTable.Active := True; + ViewGrid.GotoFirst; +end; + +function TfEditorPedidosProveedor.GetController: IPedidosProveedorController; +begin + Result := FController; +end; + +function TfEditorPedidosProveedor.GetPedidos: IBizPedidoProveedor; +begin + Result := FPedidos; +end; + +procedure TfEditorPedidosProveedor.ImprimirInterno; +var + Respuesta : Integer; + APedidos: IBizPedidoProveedor; + AllItems: Boolean; + FImprimirPrecios : Boolean; + FImprimirRefProveedor : Boolean; +begin + APedidos := Nil; + AllItems := False; + FImprimirPrecios := True; + FImprimirRefProveedor := True; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + //Si esta agrupado solo podré imprimir la lista de elementos visibles + if not ViewGrid.esSeleccionCeldaDatos then + inherited + else + begin + Respuesta := JsImprimirDialog.Execute; + if Respuesta <> IDCANCEL then + begin + case JsImprimirDialog.CustomButtonResult of + 200 : begin // Lista de elementos visibles + inherited; + end; + 100 : begin // Elemento Seleccionado + if AllItems then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Pedidos as ISeleccionable).SelectedRecords); + APedidos := (Controller as IPedidosProveedorController).ExtraerSeleccionados(Pedidos) as IBizPedidoProveedor; + end + else + APedidos := Pedidos; + + if Assigned(APedidos) then + if ElegirOpcionesImpresionPedidoProveedor(FImprimirPrecios, FImprimirRefProveedor) then + FController.Print(APedidos, AllItems, FImprimirPrecios, FImprimirRefProveedor); + end; + end; + end; + end; +end; + +procedure TfEditorPedidosProveedor.ModificarInterno; +begin + inherited; + FController.Ver(Pedidos); +end; + +procedure TfEditorPedidosProveedor.NuevoInterno; +{var + Respuesta : Integer;} + +begin + inherited; + +// Para Tecsitel: No preguntar si hacer el pedido de proveedor +// basado en pedido de cliente. + +{ Respuesta := JsNuevoPedidoProveedorDialog.Execute; + if Respuesta <> IDCANCEL then + begin + case JsNuevoPedidoProveedorDialog.CustomButtonResult of + 200 : begin // Utilizar un pedido +// GenerarPedidosProv; + actRefrescar.Execute; + end; + 100 : begin // Pedido nuevo vacio + FController.Anadir(Pedidos); + FController.Ver(Pedidos); + end; + end; + end;} + + // Pedido nuevo vacio + FController.Anadir(Pedidos); + FController.Ver(Pedidos); +end; + +procedure TfEditorPedidosProveedor.OnListaAnosChange(Sender: TObject; const Text: string); +begin + Controller.FiltrarAno(Pedidos, DynWhereDataTable, Text); + if Pedidos.DataTable.Active then + RefrescarInterno; +end; + +procedure TfEditorPedidosProveedor.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := FWindowCaption + ' - ' + AppFactuGES.EmpresaActiva.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorPedidosProveedor.PrevisualizarInterno; +var + Respuesta : Integer; + APedidos: IBizPedidoProveedor; + AllItems: Boolean; + FImprimirPrecios : Boolean; + FImprimirRefProveedor : Boolean; +begin + APedidos := Nil; + AllItems := False; + FImprimirPrecios := True; + FImprimirRefProveedor := True; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + //Si esta agrupado solo podré imprimir la lista de elementos visibles + if not ViewGrid.EsSeleccionCeldaDatos then + inherited + else + begin + Respuesta := JsPrevisualizarDialog.Execute; + if Respuesta <> IDCANCEL then + begin + case JsPrevisualizarDialog.CustomButtonResult of + 200 : begin // Lista de elementos visibles + inherited; + end; + 100 : begin // Elemento Seleccionado + if AllItems then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Pedidos as ISeleccionable).SelectedRecords); + APedidos := (Controller as IPedidosProveedorController).ExtraerSeleccionados(Pedidos) as IBizPedidoProveedor; + end + else + APedidos := Pedidos; + + if Assigned(APedidos) then + begin + if ElegirOpcionesImpresionPedidoProveedor(FImprimirPrecios, FImprimirRefProveedor) then + FController.Preview(APedidos, AllItems, FImprimirPrecios, FImprimirRefProveedor); + end; + end; + end; + end; + end; +end; + +procedure TfEditorPedidosProveedor.RefrescarInterno; +begin + //Volvemos a cargar los años de los albaranes + if Assigned(FController) then + ListaAnos := FController.DarListaAnosPedidos; + + inherited; +end; + +procedure TfEditorPedidosProveedor.SetController(const Value: IPedidosProveedorController); +begin + FController := Value; + + if Assigned(FController) then + ListaAnos := FController.DarListaAnosPedidos; +end; + +procedure TfEditorPedidosProveedor.SetPedidos(const Value: IBizPedidoProveedor); +begin + FPedidos := Value; + + if Assigned(FPedidos) then + begin + //Se guarda el where de la sentencia origen, por si el editor tiene filtros que + //afecten a este where y en un futuro se desea volver al where origen (filtro de año)) + DynWhereDataTable := FPedidos.DataTable.DynamicWhere.Xml; + + dsDataTable.DataTable := FPedidos.DataTable; + if Assigned(ViewGrid) then + (ViewGrid as IViewPedidosProveedor).Pedidos := Pedidos; + end; +end; + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidosProveedorReport.dcu b/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidosProveedorReport.dcu new file mode 100644 index 0000000..4cfaaf7 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidosProveedorReport.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidosProveedorReport.dfm b/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidosProveedorReport.dfm new file mode 100644 index 0000000..19fa6d1 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidosProveedorReport.dfm @@ -0,0 +1,15 @@ +inherited fEditorPedidosProveedorPreview: TfEditorPedidosProveedorPreview + Caption = 'Previsualizar el pedidos proveedor' + ExplicitWidth = 320 + PixelsPerInch = 96 + TextHeight = 13 + inherited TBXDock: TTBXDock + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 540 + object TBXItem58: TTBXItem [1] + Action = actExportarRTF + Images = SmallImages + end + end + end +end diff --git a/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidosProveedorReport.pas b/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidosProveedorReport.pas new file mode 100644 index 0000000..4cf5893 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidosProveedorReport.pas @@ -0,0 +1,76 @@ +unit uEditorPedidosProveedorReport; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorPreview, JvAppStorage, JvAppRegistryStorage, JvComponentBase, + JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, + TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, + ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uIEditorPedidosProveedorPreview, + JvExComCtrls, JvStatusBar, frxExportImage, frxExportPDF, frxDCtrl, frxClass, + frxDMPExport, frxGradient, frxChBox, frxCross, frxRich, frxOLE, frxBarcode, + frxExportText, frxExportRTF, frxExportMail, frxExportXLS; + +type + TfEditorPedidosProveedorPreview = class(TfEditorPreview, IEditorPedidosProveedorPreview) + TBXItem58: TTBXItem; + procedure actExportarRTFExecute(Sender: TObject); + private + FVerPrecios : Boolean; + FVerRefProveedor : Boolean; + function GetVerPrecios: Boolean; + function GetVerRefProveedor: Boolean; + procedure SetVerPrecios(const Value: Boolean); + procedure SetVerRefProveedor(const Value: Boolean); + { Private declarations } + public + property VerPrecios : Boolean read GetVerPrecios write SetVerPrecios; + property VerRefProveedor : Boolean read GetVerRefProveedor write SetVerRefProveedor; + end; + + +implementation + +{$R *.dfm} + +uses + uPedidosProveedorReportController, uDialogUtils; + +procedure TfEditorPedidosProveedorPreview.actExportarRTFExecute( + Sender: TObject); +var + I: Integer; +begin + // inherited; <- No llamar al padre + if not Assigned(Controller) then + raise Exception.Create('No se ha asignado el controlador necesario'); + + for I := 0 to ListaID.Count - 1 do + if (Controller as IPedidosProveedorReportController).ExportToWord(ListaID[I], '', + FVerPrecios, FVerRefProveedor) then + ShowInfoMessage('El pedido se ha exportado correctamente.'); +end; + +function TfEditorPedidosProveedorPreview.GetVerPrecios: Boolean; +begin + Result := FVerPrecios; +end; + +function TfEditorPedidosProveedorPreview.GetVerRefProveedor: Boolean; +begin + Result := FVerRefProveedor; +end; + +procedure TfEditorPedidosProveedorPreview.SetVerPrecios(const Value: Boolean); +begin + FVerPrecios := Value; +end; + +procedure TfEditorPedidosProveedorPreview.SetVerRefProveedor( + const Value: Boolean); +begin + FVerRefProveedor := Value; +end; + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Views/uEditorSituacionPedidoProveedor.dcu b/Source/Modulos/Pedidos a proveedor/Views/uEditorSituacionPedidoProveedor.dcu new file mode 100644 index 0000000..cea91fe Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Views/uEditorSituacionPedidoProveedor.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Views/uEditorSituacionPedidoProveedor.dfm b/Source/Modulos/Pedidos a proveedor/Views/uEditorSituacionPedidoProveedor.dfm new file mode 100644 index 0000000..9eb522a --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uEditorSituacionPedidoProveedor.dfm @@ -0,0 +1,232 @@ +object fEditorSituacionPedidoProveedor: TfEditorSituacionPedidoProveedor + Left = 497 + Top = 344 + BorderStyle = bsDialog + Caption = 'Cambiar situaci'#243'n del pedido' + ClientHeight = 348 + ClientWidth = 434 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poMainFormCenter + PixelsPerInch = 96 + TextHeight = 13 + object pnlHeader: TPanel + Left = 0 + Top = 0 + Width = 656 + Height = 64 + Align = alTop + BevelOuter = bvNone + Color = clWhite + Padding.Left = 25 + Padding.Top = 8 + Padding.Right = 25 + Padding.Bottom = 8 + ParentBackground = False + TabOrder = 5 + object lblTitle: TLabel + AlignWithMargins = True + Left = 25 + Top = 8 + Width = 606 + Height = 13 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 0 + Margins.Bottom = 8 + Align = alTop + Caption = 'Cambiar la situaci'#243'n del pedido' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + ExplicitWidth = 135 + end + object lblComments: TLabel + AlignWithMargins = True + Left = 50 + Top = 29 + Width = 581 + Height = 27 + Margins.Left = 25 + Margins.Top = 0 + Margins.Right = 0 + Align = alClient + ExplicitWidth = 3 + ExplicitHeight = 13 + Caption = 'Indique la nueva situaci'#243'n del pedido o pulse en '#39'Cancelar'#39' para' + + ' no hacer ning'#250'n cambio.' + end + end + object Label4: TLabel + Left = 56 + Top = 96 + Width = 107 + Height = 13 + Caption = 'Fecha del pedido: ' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 56 + Top = 196 + Width = 198 + Height = 13 + Caption = 'El pedido fue recibido parcialmente el d'#237'a:' + end + object Label1: TLabel + Left = 55 + Top = 252 + Width = 187 + Height = 13 + Caption = 'El pedido fue recibido totalmente el d'#237'a:' + end + object pnlSeleccion: TPanel + Left = 0 + Top = 308 + Width = 434 + Height = 40 + Align = alBottom + BevelEdges = [beTop] + BevelKind = bkTile + BevelOuter = bvNone + TabOrder = 0 + DesignSize = ( + 434 + 38) + object bAceptar: TButton + Left = 272 + Top = 2 + Width = 74 + Height = 23 + Action = actAceptar + Anchors = [akRight] + Default = True + TabOrder = 0 + end + object bCancelar: TButton + Left = 352 + Top = 1 + Width = 74 + Height = 23 + Anchors = [akRight] + Cancel = True + Caption = '&Cancelar' + ModalResult = 2 + TabOrder = 1 + end + end + object rbPendiente: TRadioButton + Left = 38 + Top = 139 + Width = 259 + Height = 17 + Action = actPendiente + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + end + object rbParcial: TRadioButton + Left = 38 + Top = 173 + Width = 323 + Height = 17 + Action = actParcial + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + end + object edtFechaPedidoProveedor: TEdit + Left = 272 + Top = 93 + Width = 121 + Height = 21 + ReadOnly = True + TabOrder = 3 + end + object edtFechaParcial: TcxDateEdit + Left = 272 + Top = 193 + Properties.SaveTime = False + Properties.ShowTime = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 4 + Width = 121 + end + object rbRecibido: TRadioButton + Left = 37 + Top = 229 + Width = 323 + Height = 17 + Action = actRecibido + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 5 + end + object eFechaRecibido: TcxDateEdit + Left = 272 + Top = 249 + Properties.SaveTime = False + Properties.ShowTime = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 6 + Width = 121 + end + object ActionList1: TActionList + Left = 8 + Top = 88 + object actPendiente: TAction + Caption = 'El pedido est'#225' pendiente de recepci'#243'n' + OnExecute = actPendienteExecute + end + object actParcial: TAction + Caption = 'El pedido est'#225' recibido parcialmente' + OnExecute = actParcialExecute + end + object actRecibido: TAction + Caption = 'El pedido est'#225' totalmente recibido' + OnExecute = actRecibidoExecute + end + object actAceptar: TAction + Caption = '&Aceptar' + OnExecute = actAceptarExecute + end + end +end diff --git a/Source/Modulos/Pedidos a proveedor/Views/uEditorSituacionPedidoProveedor.pas b/Source/Modulos/Pedidos a proveedor/Views/uEditorSituacionPedidoProveedor.pas new file mode 100644 index 0000000..d1ae08f --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uEditorSituacionPedidoProveedor.pas @@ -0,0 +1,148 @@ +unit uEditorSituacionPedidoProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, + uIEditorSituacionPedidoProveedor, uPedidosProveedorController, uBizPedidosProveedor, + JvExControls, JvComponent, cxControls, cxContainer, cxEdit, + cxTextEdit, cxMaskEdit, cxDropDownEdit, cxCalendar, cxDBEdit, ActnList; + +type + TfEditorSituacionPedidoProveedor = class(TForm, IEditorSituacionPedidoProveedor) + pnlSeleccion: TPanel; + bAceptar: TButton; + bCancelar: TButton; + lblTitle: TLabel; + lblComments: TLabel; + rbPendiente: TRadioButton; + rbParcial: TRadioButton; + ActionList1: TActionList; + actPendiente: TAction; + actParcial: TAction; + actAceptar: TAction; + Label4: TLabel; + edtFechaPedidoProveedor: TEdit; + Label3: TLabel; + edtFechaParcial: TcxDateEdit; + rbRecibido: TRadioButton; + Label1: TLabel; + eFechaRecibido: TcxDateEdit; + actRecibido: TAction; + procedure actPendienteExecute(Sender: TObject); + procedure actParcialExecute(Sender: TObject); + procedure actRecibidoExecute(Sender: TObject); + procedure actRechazadoExecute(Sender: TObject); + procedure actAceptarExecute(Sender: TObject); + + private + FController: IPedidosProveedorController; + FPedidoProveedor: IBizPedidoProveedor; + function GetController : IPedidosProveedorController; + procedure SetController (const Value : IPedidosProveedorController); + + function GetPedidoProveedor: IBizPedidoProveedor; + procedure SetPedidoProveedor(const Value: IBizPedidoProveedor); + procedure RefrescarEstado; + public + property PedidoProveedor: IBizPedidoProveedor read GetPedidoProveedor write SetPedidoProveedor; + property Controller : IPedidosProveedorController read GetController + write SetController; + end; + +implementation + +{$R *.dfm} + +uses + uDateUtils, DateUtils; + +{ TfEditorSituacionPedido } + +procedure TfEditorSituacionPedidoProveedor.actParcialExecute(Sender: TObject); +begin + RefrescarEstado; +end; + +procedure TfEditorSituacionPedidoProveedor.actAceptarExecute(Sender: TObject); +begin + if rbPendiente.Checked then + FController.CambiarSituacion(FPedidoProveedor, SITUACION_PEDIDO_PENDIENTE); + + if rbParcial.Checked then + FController.CambiarSituacion(FPedidoProveedor, SITUACION_PEDIDO_PARCIAL, edtFechaParcial.Date); + + if rbRecibido.Checked then + FController.CambiarSituacion(FPedidoProveedor, SITUACION_PEDIDO_RECIBIDO, eFechaRecibido.Date); + + ModalResult := mrOk; + Close; +end; + +procedure TfEditorSituacionPedidoProveedor.actPendienteExecute(Sender: TObject); +begin + RefrescarEstado; +end; + +procedure TfEditorSituacionPedidoProveedor.actRechazadoExecute(Sender: TObject); +begin + RefrescarEstado; +end; + +procedure TfEditorSituacionPedidoProveedor.actRecibidoExecute(Sender: TObject); +begin + RefrescarEstado; +end; + +function TfEditorSituacionPedidoProveedor.GetController: IPedidosProveedorController; +begin + Result := FController; +end; + +function TfEditorSituacionPedidoProveedor.GetPedidoProveedor: IBizPedidoProveedor; +begin + Result := FPedidoProveedor; +end; + +procedure TfEditorSituacionPedidoProveedor.SetController( + const Value: IPedidosProveedorController); +begin + FController := Value; +end; + +procedure TfEditorSituacionPedidoProveedor.SetPedidoProveedor(const Value: IBizPedidoProveedor); +begin + FPedidoProveedor := Value; + if not FPedidoProveedor.DataTable.Active then + FPedidoProveedor.DataTable.Open; + + edtFechaPedidoProveedor.Text := DateToStr(FPedidoProveedor.FECHA_PEDIDO); + + rbPendiente.Checked := (FPedidoProveedor.Situacion = SITUACION_PEDIDO_PENDIENTE); + rbParcial.Checked := (FPedidoProveedor.Situacion = SITUACION_PEDIDO_PARCIAL); + rbRecibido.Checked := (FPedidoProveedor.Situacion = SITUACION_PEDIDO_RECIBIDO); + + if rbParcial.Checked then + begin + edtFechaParcial.Date := FPedidoProveedor.FECHA_ENTREGA; + eFechaRecibido.Clear; + end + else if rbRecibido.Checked then + begin + eFechaRecibido.Date := FPedidoProveedor.FECHA_ENTREGA; + edtFechaParcial.Clear; + end + else + begin + edtFechaParcial.Clear; + eFechaRecibido.Clear; + end; +end; + +procedure TfEditorSituacionPedidoProveedor.RefrescarEstado; +begin + // +end; + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Views/uPedidosProveedorViewRegister.dcu b/Source/Modulos/Pedidos a proveedor/Views/uPedidosProveedorViewRegister.dcu new file mode 100644 index 0000000..5fadfb1 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Views/uPedidosProveedorViewRegister.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Views/uPedidosProveedorViewRegister.pas b/Source/Modulos/Pedidos a proveedor/Views/uPedidosProveedorViewRegister.pas new file mode 100644 index 0000000..6307afb --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uPedidosProveedorViewRegister.pas @@ -0,0 +1,39 @@ +unit uPedidosProveedorViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorPedidosProveedor, uEditorPedidoProveedor, + uEditorPedidosProveedorReport, uEditorElegirPedidosProveedor, + uEditorElegirArticulosPedidoProveedor, uEditorDireccionEntregaPedidoProveedor, + uEditorSituacionPedidoProveedor; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorDireccionEntregaPedidoProveedor, 'EditorDireccionEntregaPedidoProveedor'); + EditorRegistry.RegisterClass(TfEditorPedidosProveedor, 'EditorPedidosProveedor'); + EditorRegistry.RegisterClass(TfEditorPedidoProveedor, 'EditorPedidoProveedor'); + EditorRegistry.RegisterClass(TfEditorElegirPedidosProveedor, 'EditorElegirPedidosProveedor'); + EditorRegistry.RegisterClass(TfEditorElegirArticulosPedidoProveedor, 'EditorElegirArticulosPedidoProveedor'); + EditorRegistry.RegisterClass(TfEditorPedidosProveedorPreview, 'EditorPedidosProveedorPreview'); + EditorRegistry.RegisterClass(TfEditorSituacionPedidoProveedor, 'EditorSituacionPedidoProveedor'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorDireccionEntregaPedidoProveedor); + EditorRegistry.UnRegisterClass(TfEditorPedidosProveedor); + EditorRegistry.UnRegisterClass(TfEditorPedidoProveedor); + EditorRegistry.UnRegisterClass(TfEditorElegirPedidosProveedor); + EditorRegistry.UnRegisterClass(TfEditorElegirArticulosPedidoProveedor); + EditorRegistry.UnRegisterClass(TfEditorPedidosProveedorPreview); + EditorRegistry.UnRegisterClass(TfEditorSituacionPedidoProveedor); +end; + +end. + diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewDatosYSeleccionProveedorPedido.dcu b/Source/Modulos/Pedidos a proveedor/Views/uViewDatosYSeleccionProveedorPedido.dcu new file mode 100644 index 0000000..3b49aa0 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Views/uViewDatosYSeleccionProveedorPedido.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewDatosYSeleccionProveedorPedido.dfm b/Source/Modulos/Pedidos a proveedor/Views/uViewDatosYSeleccionProveedorPedido.dfm new file mode 100644 index 0000000..1cf8694 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewDatosYSeleccionProveedorPedido.dfm @@ -0,0 +1,660 @@ +inherited frViewDatosYSeleccionProveedorPedido: TfrViewDatosYSeleccionProveedorPedido + Width = 505 + Height = 214 + ExplicitWidth = 505 + ExplicitHeight = 214 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 505 + Height = 214 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 0 + Margins.Bottom = 0 + Align = alClient + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + DesignSize = ( + 505 + 214) + object edtlNombre: TcxDBTextEdit + Left = 63 + Top = 41 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'NOMBRE' + DataBinding.DataSource = dsProveedor + Enabled = False + ParentFont = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 2 + Height = 21 + Width = 224 + end + object edtCODIGO_ASIGNADO: TcxDBTextEdit + Left = 392 + Top = 41 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'CODIGO_ASIGNADO' + DataBinding.DataSource = dsProveedor + Enabled = False + ParentFont = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 3 + Height = 21 + Width = 103 + end + object edtPersonaContacto: TcxDBTextEdit + Left = 63 + Top = 137 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'PERSONA_CONTACTO_PROV' + DataBinding.DataSource = dsPedido + ParentFont = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 6 + Height = 21 + Width = 283 + end + object edtDireccion: TcxMemo + Left = 63 + Top = 68 + Enabled = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 4 + Height = 61 + Width = 386 + end + object Button4: TButton + Left = 472 + Top = 68 + Width = 23 + Height = 25 + Action = actElegirDireccion + TabOrder = 5 + end + object Button5: TButton + Left = 472 + Top = 135 + Width = 23 + Height = 25 + Action = actElegirPersonaContacto + TabOrder = 7 + end + object Button3: TBitBtn + Left = 297 + Top = 166 + Width = 198 + Height = 25 + Action = actVerContacto + Caption = 'Ver ficha completa del proveedor...' + TabOrder = 8 + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00D3BDAE006543 + 2E0065432E0065432E0065432E0065432E0065432E0065432E0065432E006543 + 2E0065432E0065432E0065432E0065432E0065432E0065432E00D3BDAE00F6F1 + EE00B49F8F00B49F8F00B49F8F00B49F8F00B49F8F00B49F8F00B49F8F00B49F + 8F00B49F8F00B49F8F00B49F8F00B49F8F00B49F8F0065432E00D3BDAE00241B + 7C00190B6B00190B6B00190B6B00190B6B00190B6B00190B6B00241B7C00E2D3 + CC00DFCFC700DECDC400DBC9BF00DAC7BD00B49F8F0065432E00D3BDAE00584D + A5002C2D870031299D003123A1003123A20030299B002B2C8900190B6B00E6DA + D3009E7058009E7058009E7058009E705800B49F8F0065432E00D3BDAE007C75 + B9002D2B92003223A300402F9800412F9B003324A4002D299200190B6B00E9DF + D800E6DAD300E3D5CE00E1D1C900DECDC400B49F8F0065432E00D3BDAE00CFCB + E700473DA400412A90006D8BA8006B8DA300422D8E00190B6B00EEE7E200ECE3 + DE009E7058009E7058009E7058009E705800B49F8F0065432E00D3BDAE00FFFF + FF00C7B6DC004B9A9D005198C6004A93C0004A8A8B00ADA5C000F1EBE700EEE7 + E200ECE3DE00E9DFD800E6DAD300E3D5CE00B49F8F0065432E00D3BDAE00FFFF + FF00A2CBE70059A6DC0058A6DC0053A1D7004D97CA009DB7C800F5EFEC00F1EB + E700EEE7E200ECE3DE00E9DFD800E6DAD300B49F8F0065432E00D3BDAE00EBF6 + FA0068B6DE0061AEE40061ADE4005BA8DE00529FD500649BBC00F7F4F000F5EF + EC00F1EBE700EEE7E200ECE3DE00E9DFD800B49F8F0065432E00D3BDAE00E8F6 + FA0057ADD30058A3D30061ACDE005EABE10054A0D6002F81A400FAF8F600F7F4 + F000F79D6F00F79D6F00F79D6F00F79D6F00B49F8F0065432E00D3BDAE00F4FA + FC0074BEDC00529DCB00529AC8004F99C8004089B8002F81A400FDFCFB00FAF8 + F600F7F4F000F5EFEC00F1EBE700EEE7E200B49F8F0065432E00D3BDAE00FFFF + FF00CCE9F4005EB2DD0059A4D300478EBC002F81A400C4DBE500FFFFFF00FDFC + FB00F79D6F00F79D6F00F79D6F00F79D6F00B49F8F0065432E00D3BDAE00FFFF + FF00FFFFFF00CCE9F400A2CBE700A2CBE700CCE9F400FFFFFF00FFFFFF00FFFF + FF00FEFEFD00FCFAF900F9F6F400F6F1EE00F2EDE90065432E00D3BDAE00D3BD + AE00D3BDAE00D3BDAE00D3BDAE00D3BDAE00D3BDAE00D3BDAE00D3BDAE00D3BD + AE00D3BDAE00D3BDAE00D3BDAE00D3BDAE00D3BDAE00D3BDAE00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} + end + object Button1: TBitBtn + Left = 10 + Top = 10 + Width = 120 + Height = 25 + Action = actElegirContacto + Caption = 'Elegir un proveedor' + TabOrder = 0 + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FF00FF00FF00 + FF00FF00FF00EB00EB00C507C600AB13AD00A119A2009F19A000A215A400AA10 + AC00B608B800CE00CE00EF00EF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00B118C10040407B00344A830031498F002F4596002F4499002F4597003148 + 900033498500374678005A3E5300D201D200FF00FF00FF00FF00FF00FF00FF00 + FF004E42860035508100314990002E429C002C3CA6002B3AAA002B3BA7002D40 + 9E0030479200344F840038577500A0189F00FF00FF00FF00FF00FF00FF00FF00 + FF004C428900334D89002F4499002B3CA8002835B4002631BB002734B6002A3A + AB002E429C00324B8C0036537B00B015B100FF00FF00FF00FF00FF00FF00FF00 + FF008726B300324A8D002D409E002938AF003138B6007A7BCB002830BF002835 + B2002D3FA10031499000483B8700EC01EC00FF00FF00FF00FF00FF00FF00FF00 + FF00F002F60051379D002D409F002937B000808AA300D2D3D3008181BB002834 + B2002D3FA2003A3F9300C511CE00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00EE02F4007324B7003C359300598CAE00498CBB004A81A600392A + 71005929A600D608E100FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00EA0CF400608CD00054A2D80053A1D6004F9DD300488B + C2009D11AC00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF008C67DE005CA9DD005CA9DD005AA7DC0056A4D900519F + D400565FAB00EA00EA00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00EC0DF60060A7DE0063B0E30063B0E30061AEE1005CA9DD0056A4 + D9004E94CC00C105C600FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00C532ED0066B2E5006BB7E9006BB7E90067B3E60061AEE1005AA7 + DC00539FD500A817BE00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00BA3AE7004989B1004A85AC005895BD0068B2E30064B0E4005CA9 + DE0053A0D400AA1BC300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00CA23E8005098C400539AC7004E93BE00437DA2005190BA005198 + C6003C79A000BE08C300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00F804FC006995D40062ACDA005DA6D3005299C6004284AD003C7F + A900535AA100F300F300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00C140ED0071BAEA0068B2E00059A1CF004990BC004378 + AA00C315D600FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00C83EF000808BDF00668BCC007C60C700D116 + E400FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} + end + object BitBtn1: TBitBtn + Left = 136 + Top = 10 + Width = 149 + Height = 25 + Action = actAnadirContacto + Caption = 'Dar de alta un proveedor' + TabOrder = 1 + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00D5BFB1006947 + 3100694731006947310069473100694731006947310069473100694731006947 + 3100694731006947310069473100694731006947310069473100D5BFB100F6F2 + EF00B7A29300B7A29300B7A29300B7A29300B7A29300B7A29300B7A29300B7A2 + 9300B7A29300B7A29300B7A29300B7A29300B7A2930069473100D5BFB100271E + 80001C0D6F001C0D6F001C0D6F001C0D6F001C0D6F001C0D6F00271E8000E3D5 + CE00E0D1C900DFCFC600DCCBC100DBC9BF00B7A2930069473100D5BFB1005C51 + A8002F308B00352CA0003526A4003526A500332C9E002E2F8D001C0D6F00E7DB + D500A1745C00A1745C00A1745C00A1745C00B7A2930069473100D5BFB1008079 + BC00302E95003626A60044329B0045329E003727A700302C95001C0D6F00EAE0 + DA00E7DBD500E4D7D000E2D3CB00DFCFC600B7A2930069473100D5BFB100D1CD + E8004B41A700452D9400718FAB006F91A600463092001C0D6F00EFE8E300EDE4 + DF00A1745C00A1745C00A1745C00A1745C00B7A2930069473100D5BFB100FFFF + FF00C9B9DD004F9DA000559BC8004E96C2004E8E8F00B0A8C200F2ECE800EFE8 + E300EDE4DF00EAE0DA00E7DBD500E4D7D000B7A2930069473100D5BFB100FFFF + FF00A5CDE8005DA9DD005CA9DD0057A4D900519ACC00A0BACA00F5F0ED00F2EC + E800EFE8E300EDE4DF00EAE0DA00E7DBD500B7A2930069473100D5BFB100ECF6 + FA006CB9DF0065B1E50065B0E5005FABDF0056A2D700689EBE00F7F4F100F5F0 + ED00F2ECE800006000000060000000600000B7A2930069473100D5BFB100E9F6 + FA005BB0D5005CA6D50065AFDF0062AEE20058A3D8003285A700FAF8F600F7F4 + F100F7A073000060000033CB510000600000B7A2930069473100D5BFB100F4FA + FC0078C0DD0056A0CD00569DCA00539CCA00448DBB003285A700FDFCFB000060 + 0000006000000060000040D86500006000000060000000600000D5BFB100FFFF + FF00CEEAF40062B5DE005DA7D5004B92BE003285A700C6DCE600FFFFFF000060 + 000060F898005AF28F004DE57A0040D865003AD25C0000600000D5BFB100FFFF + FF00FFFFFF00CEEAF400A5CDE800A5CDE800CEEAF400FFFFFF00FFFFFF000060 + 000000600000006000005AF28F00006000000060000000600000D5BFB100D5BF + B100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BF + B100D5BFB1000060000060F8980000600000D5BFB100D5BFB100FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00006000000060000000600000FF00FF00FF00FF00} + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item7: TdxLayoutItem + ShowCaption = False + Control = Button1 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item10: TdxLayoutItem + ShowCaption = False + Control = BitBtn1 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group4: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item1: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Nombre:' + Control = edtlNombre + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item2: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'Cod. cli:' + Control = edtCODIGO_ASIGNADO + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group3: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item4: TdxLayoutItem + AutoAligns = [] + AlignHorz = ahClient + AlignVert = avCenter + Caption = 'Direcci'#243'n:' + CaptionOptions.AlignVert = tavTop + Control = edtDireccion + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item5: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'Button4' + ShowCaption = False + Control = Button4 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group5: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group2: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item3: TdxLayoutItem + AutoAligns = [] + AlignHorz = ahClient + AlignVert = avCenter + Caption = 'Contacto:' + Control = edtPersonaContacto + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item6: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + ShowCaption = False + Control = Button5 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item9: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + ShowCaption = False + Control = Button3 + ControlOptions.ShowBorder = False + end + end + end + end + object dsProveedor: TDADataSource + Left = 400 + Top = 8 + end + object ActionList1: TActionList + Images = PngImageList + Left = 368 + Top = 8 + object actElegirContacto: TAction + Caption = 'Elegir un proveedor' + ImageIndex = 1 + OnExecute = actElegirContactoExecute + end + object actAnadirContacto: TAction + Caption = 'Dar de alta un proveedor' + ImageIndex = 0 + OnExecute = actAnadirContactoExecute + end + object actVerContacto: TAction + Caption = 'Ver ficha completa del proveedor...' + ImageIndex = 2 + OnExecute = actVerContactoExecute + OnUpdate = actVerContactoUpdate + end + object actElegirDireccion: TAction + Caption = '...' + OnExecute = actElegirDireccionExecute + OnUpdate = actElegirDireccionUpdate + end + object actElegirPersonaContacto: TAction + Caption = '...' + OnExecute = actElegirPersonaContactoExecute + OnUpdate = actElegirPersonaContactoUpdate + end + end + object dsPedido: TDADataSource + Left = 336 + Top = 8 + end + object PngImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000002254944415478DA95936D48535118 + C7FFB7E58535192C322B880A217A238841238212E94B048EA217E88B26158210 + 548322082422FD52862D30823230BF14A4511823D2185834B60537F37DA516B2 + B6B6E6BABB77F7DC97EE3DE6192303F7C0E1790E9CFFEFFFF0F01C0EA5443D0C + 567782B312D7DB3F642C55EF7DB41D1D1DF5686CEC446FDD1018A0B67A1BBD88 + 89287ECF0CD3BA7CFD56382A76CD3F3AC531485BFB499C3FD7CDEE0C60897F84 + FC90E608E28914E2D959EC3FE1C7DAAA3D1460394B8A8244364B8F5577DD1A9C + 071CDABB015383D7F1EB6B0C9A66620D0D994C06493985A39742283B6D638E67 + 2E57E37EEB407107073DAB301EB800E438ACB0DB613301393187E8F418BC17DF + 83A81AAE3D056E0ED871B8C98D6777C3B853D387078F9F2F002AF13DD80C5ECE + C39AB34214C89284597525DCC7DBA0AA3A85ACF139997311C09A413CD20D71E2 + 95D53F544290CD29D0377A51B5FB18155B670144888637EF3E160362810F087E + BB812D3A6F7690475806DCEB1AB0F940CD3F622B07434201E071AAE8F75DC1CF + A482CA861D20CB74241F0E6372F2337CE302155FBDFDA268273C3B5717008EC0 + 138CBEEC814BE621963B613397CC2ECE215596C7D854124D42843993BF9D8485 + 9102406A6FC1CC1701152A8FE50AE88EE6791D691BC1742C85B391105AEE05FE + DF41B4EE08D26971D1F575B91CA8ED7B4D5D35DDA05937F3A7D18902609F7B13 + BA7ADE96F4AFAC6080E6567FC962B68986B1E4CFB868FC01A6204E3EB3788BD6 + 0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AC400000AC401666D82D400000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000002B44944415478DA7D925F4853511C + C77F67F75EF7A799BB9A6E3A5B85A0203EA820F892502121119A523E14141A41 + F5A244819144E4430F452F99580385A4D0CC2009410B940CCC4CA60BB2F04F43 + 65B639B7DD6DF7EEFED93D9D2D144DE60F0E07CEF97D3FE7F7FBFE0EC218433C + 1042B01973AFAF5C0088DDF007B82CCF7AD0E15C70DFBF63774EC0B6D8D2FD0F + 70F65C6C345BD8673C1FD5F8FD41F0F903E0F571FCA8E34F4DE7E0FCC89E80BE + E6727D7E699ECBA0D7668A920CA15004DCDE0028B204EE7561AEA9FD5B19490D + 2707DCABA8CC31A70F531A0A045186154F042C19FBC1A803F8E5F2E0B61EE7C9 + F9656E2429E0537B75E34658B2CB0A02D6B41FF20F9A00A90A48621478418047 + 2FA71ABA865D5D4901939DD575D66C733FCD3089B398A2804CCA97451144318A + EFDA271BFBC7579203DEB41DCD2EC93FEC6252521204555549FF72C2038E8B28 + 35AD1F2A577DE2E89E5398B6D7F6A6A51ACE25920820168B5721C3C4ECEADCE5 + C79315E4D8BB27A0BBB9DC5A54689E326A198B4AEEE26D6C04C3D2ADE7D34D5F + 7EF83B928E311E2DD6828C9C5CE629C2A6B3D67A1B4A05F20722C49BDE0D9C6B + 084E3804E1EA8BEF4B33DB3FD416A0E550119B9E478F6762B590151408D5D543 + 71552DAC0DBC0561F01504F631E0A534A121257466646CE1E32E40EBF1D227AC + 1E5D677919D8A8025AD041E6892A08BF1F8010B1D46F60C8A2614DC4CB0FBE3A + 4A30877D3B00B74F95B94C14B699C8EB6904601463A0555490290491140A823A + 1A027A1AFC64B77B17EBD7C6BC7D3B00374F972DA6D2E8489AF84F6C9054A055 + 6222F156603410D652C011711CD4BDFCFB9AE7B3BB6307E0FCB1E24B590C7A98 + C150E946ACA2F8EB14B9520940A43410411A08A8587AA78DCDFE1C9A69C01276 + EE9A0219E5019D8D2E305A0C36D05384031A2C2AB2129579C52773FC6ACC4DD2 + 968826B0A9F90BC88690F0ED1F7E3F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001FA4944415478DA + A5934B6813511486BF342610A2C50A86A220150BA2145C58D120828ABA2AD2BA + F0B510C48D1B1154A828A55D5877825474AB45375D58A80B9385292DA8A8B151 + 6B6D8DB50F43C1B4C624364C1E73E7E19DA96408B50BCDC0E5CC65E6FFFE7FCE + DCE3324D936A2E577FE46355041BD076B0C9DE280B23E412E3F6FD9A4DDBF107 + 76965F3464524D33109A8E2A7459350E1FBFEC002CF1FCEB1EF28B82F98534C9 + 5C9203A7EFB2A1712F9A6E70A557AD706EA88970FFD1C012E0E8BECDCC3EEF22 + 33338DAECBA7A64E36FB8B5431C389EBB12557B93461D8CED6FE71F8A5036809 + AE271EBA0879177E9F0FB704284A9ED8B7498EB5476D71671F2B276809D63337 + D481B75892EEC86F5429140A7CD7D6D17CEA4E85B3D5070B181A8A3A00AB07C9 + B70F512643567E8410E4F22A46432B8D7B4E2E130BD9C4672F629580A9D02B86 + E76EB0CDF0CA0425A205D8B5F11C5B8F1C5A26B6D6F09B0F0E2058AB11B97495 + D44F95FAB34D881A831F0F26989A9EA0FDEB275B7CEDD6938A1EECDE117000FE + 701FF1A703D4153D28AB6B71E3C2A72C92F6A8C413292E8CBD2F3B8B3F67213A + 3AEE000AB7BB49CC8E11D03CAC92BFDB251D4A5E93B45B90984973FEDD08DDF7 + C22B27889D69239355FE7A54EBD6FA690D0FDAAEBA61DAD59075F4F31707B0BF + 790BBDFD83FF3C076540D7CD9EFF1FA66AC7F93783B161288AF0DFC000000000 + 49454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end> + Left = 432 + Top = 8 + Bitmap = {} + end +end diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewDatosYSeleccionProveedorPedido.pas b/Source/Modulos/Pedidos a proveedor/Views/uViewDatosYSeleccionProveedorPedido.pas new file mode 100644 index 0000000..fda671a --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewDatosYSeleccionProveedorPedido.pas @@ -0,0 +1,433 @@ +unit uViewDatosYSeleccionProveedorPedido; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, StdCtrls, cxControls, cxContainer, cxEdit, cxLabel, + cxDBLabel, ExtCtrls, DB, uDADataTable, uBizContactos, + ComCtrls, ToolWin, ActnList, ImgList, PngImageList, cxTextEdit, cxDBEdit, + pngimage, JvExControls, JvComponent, JvButton, JvTransparentButton, Mask, + DBCtrls, uProveedoresController, dxLayoutControl, Buttons, uDAInterfaces, + cxMaskEdit, cxButtonEdit, uBizPedidosProveedor, uBizDireccionesContacto, + uDireccionesContactoController, Menus, cxLookAndFeelPainters, cxButtons, + cxMemo; + +type + IViewDatosYSeleccionProveedorPedido = interface(IViewBase) + ['{F1E1FFC0-02C9-47F5-92BC-BE10FA2C5134}'] + function GetPedido: IBizPedidoProveedor; + procedure SetPedido(const Value: IBizPedidoProveedor); + property Pedido: IBizPedidoProveedor read GetPedido write SetPedido; + + function GetProveedor: IBizProveedor; + procedure SetProveedor(Value: IBizProveedor); + property Proveedor: IBizProveedor read GetProveedor write SetProveedor; + + function GetID_Proveedor: integer; + procedure SetID_Proveedor(const Value: integer); + property ID_Proveedor: integer read GetID_Proveedor write SetID_Proveedor; + + function GetOnProveedorChanged : TNotifyEvent; + procedure SetOnProveedorChanged (const Value : TNotifyEvent); + property OnProveedorChanged : TNotifyEvent read GetOnProveedorChanged + write SetOnProveedorChanged; + + procedure ElegirPersonaContacto; + procedure ElegirDireccionProveedor; + procedure ElegirProveedor; + procedure VerFichaProveedor; + procedure AnadirNuevoProveedor; + procedure RefrescarDireccion; + end; + + TfrViewDatosYSeleccionProveedorPedido = class(TfrViewBase, IViewDatosYSeleccionProveedorPedido) + dsProveedor: TDADataSource; + ActionList1: TActionList; + actElegirContacto: TAction; + actAnadirContacto: TAction; + actVerContacto: TAction; + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Item1: TdxLayoutItem; + edtlNombre: TcxDBTextEdit; + dxLayoutControl1Item2: TdxLayoutItem; + edtCODIGO_ASIGNADO: TcxDBTextEdit; + dsPedido: TDADataSource; + actElegirDireccion: TAction; + actElegirPersonaContacto: TAction; + dxLayoutControl1Item3: TdxLayoutItem; + edtPersonaContacto: TcxDBTextEdit; + dxLayoutControl1Group4: TdxLayoutGroup; + dxLayoutControl1Item4: TdxLayoutItem; + edtDireccion: TcxMemo; + Button4: TButton; + dxLayoutControl1Item5: TdxLayoutItem; + dxLayoutControl1Group3: TdxLayoutGroup; + dxLayoutControl1Item6: TdxLayoutItem; + Button5: TButton; + dxLayoutControl1Group5: TdxLayoutGroup; + dxLayoutControl1Item9: TdxLayoutItem; + Button3: TBitBtn; + dxLayoutControl1Group2: TdxLayoutGroup; + dxLayoutControl1Item7: TdxLayoutItem; + Button1: TBitBtn; + dxLayoutControl1Item10: TdxLayoutItem; + BitBtn1: TBitBtn; + dxLayoutControl1Group1: TdxLayoutGroup; + PngImageList: TPngImageList; + procedure actElegirContactoExecute(Sender: TObject); + procedure actAnadirContactoExecute(Sender: TObject); + procedure actVerContactoUpdate(Sender: TObject); + procedure edtPersonaContactoPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure edtDireccionPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure actVerContactoExecute(Sender: TObject); + procedure actElegirDireccionUpdate(Sender: TObject); + procedure actElegirDireccionExecute(Sender: TObject); + procedure actElegirPersonaContactoExecute(Sender: TObject); + procedure actElegirPersonaContactoUpdate(Sender: TObject); + + private + FOnProveedorChanged : TNotifyEvent; + FMsgElegirProveedor: String; + protected + FProveedoresController : IProveedoresController; + FDireccionesController : IDireccionesContactoController; + FPedido : IBizPedidoProveedor; + FProveedor : IBizProveedor; + FDireccion : IBizDireccionesContacto; + function GetProveedor: IBizProveedor; virtual; + procedure SetProveedor(Value: IBizProveedor); virtual; + function GetOnProveedorChanged : TNotifyEvent; + procedure SetOnProveedorChanged (const Value : TNotifyEvent); + procedure SetReadOnly(Value: Boolean); override; + function GetID_Proveedor: integer; virtual; + procedure SetID_Proveedor(const Value: integer); virtual; + function GetPedido: IBizPedidoProveedor; + procedure SetPedido(const Value: IBizPedidoProveedor); + procedure EscribirTextoDireccion; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure ElegirPersonaContacto; + procedure ElegirDireccionProveedor; + procedure ElegirProveedor; + procedure VerFichaProveedor; + procedure AnadirNuevoProveedor; + procedure RefrescarDireccion; + property Pedido: IBizPedidoProveedor read GetPedido write SetPedido; + property Proveedor: IBizProveedor read GetProveedor write SetProveedor; + property OnProveedorChanged : TNotifyEvent read GetOnProveedorChanged write SetOnProveedorChanged; + property ID_Proveedor: integer read GetID_Proveedor write SetID_Proveedor; + end; + +implementation + +{$R *.dfm} + +uses + uDataModuleProveedores, Math, uCustomView, uBizContactosPersonal, uDialogUtils; + + +procedure TfrViewDatosYSeleccionProveedorPedido.actElegirContactoExecute(Sender: TObject); +begin + ElegirProveedor; +end; + +procedure TfrViewDatosYSeleccionProveedorPedido.actElegirDireccionExecute( + Sender: TObject); +begin + inherited; + ElegirDireccionProveedor; +end; + +procedure TfrViewDatosYSeleccionProveedorPedido.actElegirDireccionUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := not ReadOnly and Assigned(FProveedor.Direcciones) and + (FProveedor.Direcciones.Active) and (FProveedor.Direcciones.RecordCount > 0); +end; + +procedure TfrViewDatosYSeleccionProveedorPedido.actElegirPersonaContactoExecute( + Sender: TObject); +begin + inherited; + ElegirPersonaContacto; +end; + +procedure TfrViewDatosYSeleccionProveedorPedido.actElegirPersonaContactoUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := not ReadOnly and Assigned(FProveedor.Personal) and + (FProveedor.Personal.Active) and (FProveedor.Personal.RecordCount > 0); +end; + +procedure TfrViewDatosYSeleccionProveedorPedido.actAnadirContactoExecute( + Sender: TObject); +begin + AnadirNuevoProveedor; +end; + +procedure TfrViewDatosYSeleccionProveedorPedido.actVerContactoExecute( + Sender: TObject); +begin + inherited; + VerFichaProveedor; +end; + +procedure TfrViewDatosYSeleccionProveedorPedido.actVerContactoUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (Length(edtlNombre.Text) > 0); +end; + +procedure TfrViewDatosYSeleccionProveedorPedido.AnadirNuevoProveedor; +var + AProveedor : IBizProveedor; +begin + inherited; + AProveedor := (FProveedoresController.Nuevo as IBizProveedor); + FProveedoresController.Ver(AProveedor); + Self.Proveedor := AProveedor; +end; + +constructor TfrViewDatosYSeleccionProveedorPedido.Create(AOwner: TComponent); +begin + inherited; + FMsgElegirProveedor := 'Elija el proveedor al que se le realizar el pedido.'; + FProveedoresController := TProveedoresController.Create; + FDireccionesController := TDireccionesContactoController.Create; + + edtlNombre.Enabled := False; + edtCODIGO_ASIGNADO.Enabled := False; + edtDireccion.Enabled := False; + edtPersonaContacto.Enabled := False; +end; + +destructor TfrViewDatosYSeleccionProveedorPedido.Destroy; +begin + FProveedoresController := NIL; + FDireccionesController := NIL; + inherited; +end; + +procedure TfrViewDatosYSeleccionProveedorPedido.edtDireccionPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + inherited; + ElegirDireccionProveedor; +end; + +procedure TfrViewDatosYSeleccionProveedorPedido.edtPersonaContactoPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + inherited; + ElegirPersonaContacto; +end; + +procedure TfrViewDatosYSeleccionProveedorPedido.ElegirProveedor; +var + AProveedor : IBizProveedor; +begin + inherited; + + AProveedor := (FProveedoresController.ElegirContacto(FProveedoresController.BuscarTodos, FMsgElegirProveedor, False) as IBizProveedor); + + if Assigned(AProveedor) then + Self.Proveedor := AProveedor; + AProveedor := Nil; +end; + +procedure TfrViewDatosYSeleccionProveedorPedido.ElegirDireccionProveedor; +var + ADireccion : IBizDireccionesContacto; +begin + inherited; + ADireccion := FProveedoresController.ElegirDireccionEntrega(FProveedor, ' '); + + if Assigned(ADireccion) then + begin + FDireccion := ADireccion; + FPedido.Edit; + + if FDireccion.IDIsNull then + begin + FPedido.ClearField('ID_DIRECCION'); + FPedido.ClearField('IMPORTE_PORTE'); + end + else begin + FPedido.ID_DIRECCION := FDireccion.ID; + FPedido.IMPORTE_PORTE := FDireccion.PORTE; + end; + FPedido.PERSONA_CONTACTO_PROV := FDireccion.PERSONA_CONTACTO; + + EscribirTextoDireccion; + end; +end; + +procedure TfrViewDatosYSeleccionProveedorPedido.ElegirPersonaContacto; +var + APersona : IBizContactoPersonal; +begin + inherited; + APersona := FProveedoresController.ElegirPersonaContacto(FProveedor.Personal, + 'El proveedor dispone de personas de contacto dadas de alta en su ficha. Seleccione la que quiere utilizar.'); + if Assigned(APersona) then + begin + FPedido.Edit; + FPedido.PERSONA_CONTACTO_PROV := APersona.NOMBRE; + end; +end; + +procedure TfrViewDatosYSeleccionProveedorPedido.EscribirTextoDireccion; +var + ACadena : String; +begin + ACadena := ''; + + if Assigned(FDireccion) then + begin + ACadena := Format('%s %s %s %s', + [FDireccion.CALLE, FDireccion.POBLACION, + FDireccion.CODIGO_POSTAL, FDireccion.PROVINCIA]); + + if not FDireccion.FAXIsNull then + ACadena := ACadena + #13#10 + 'Fax: ' + FDireccion.FAX; + + end; + + edtDireccion.Text := ACadena; +end; + +function TfrViewDatosYSeleccionProveedorPedido.GetProveedor: IBizProveedor; +begin + Result := FProveedor; +end; + +function TfrViewDatosYSeleccionProveedorPedido.GetID_Proveedor: integer; +begin + Result := -1; + if Assigned(FProveedor) then + Result := FProveedor.ID; +end; + +procedure TfrViewDatosYSeleccionProveedorPedido.SetProveedor(Value: IBizProveedor); +begin + FProveedor := Value; + if Assigned(FProveedor) then + begin + dsProveedor.DataTable := FProveedor.DataTable; + + if not FProveedor.DataTable.Active then + FProveedor.DataTable.Active := True; + + //Solo podremos establecer persona de contacto si se ha asignado un proveedor + if FProveedor.ID > 0 then + edtPersonaContacto.Enabled := True; + + if FProveedor.Direcciones.RecordCount > 0 then + ElegirDireccionProveedor + else begin + FPedido.Edit; + FPedido.PERSONA_CONTACTO_PROV := FProveedor.PERSONA_CONTACTO; + RefrescarDireccion; + end; + end + else begin + dsProveedor.DataTable := NIL; + FProveedor := NIL; + FDireccion := NIL; + edtPersonaContacto.Enabled := False; + end; + + if Assigned(FOnProveedorChanged) then + FOnProveedorChanged(Self); +end; + +procedure TfrViewDatosYSeleccionProveedorPedido.SetID_Proveedor(const Value: integer); +begin + Self.Proveedor := IBizProveedor(FProveedoresController.Buscar(Value)); +end; + +function TfrViewDatosYSeleccionProveedorPedido.GetOnProveedorChanged: TNotifyEvent; +begin + Result := FOnProveedorChanged; +end; + +function TfrViewDatosYSeleccionProveedorPedido.GetPedido: IBizPedidoProveedor; +begin + Result := FPedido; +end; + +procedure TfrViewDatosYSeleccionProveedorPedido.RefrescarDireccion; +begin + FDireccion := FDireccionesController.Nuevo; + + if (not FPedido.ID_DIRECCIONIsNull) and + (FDireccionesController.Localizar(FProveedor.Direcciones, FPedido.ID_DIRECCION)) then + FDireccionesController.CopiarDireccion(FProveedor.Direcciones, FDireccion) + else + FDireccionesController.CopiarDireccionFiscal(FProveedor, FDireccion); + + EscribirTextoDireccion; +end; + +procedure TfrViewDatosYSeleccionProveedorPedido.SetOnProveedorChanged( + const Value: TNotifyEvent); +begin + FOnProveedorChanged := Value; +end; + +procedure TfrViewDatosYSeleccionProveedorPedido.SetPedido( + const Value: IBizPedidoProveedor); +begin + FPedido := Value; + if Assigned(FPedido) then + begin + dsPedido.DataTable := FPedido.DataTable; + + FProveedor := FPedido.Proveedor; + dsProveedor.DataTable := FProveedor.DataTable; + + if not FProveedor.DataTable.Active then + FProveedor.DataTable.Active := True; + + //Solo podremos establecer persona de contacto si se ha asignado un proveedor + if FProveedor.ID > 0 then + edtPersonaContacto.Enabled := True; + + RefrescarDireccion; + end + else begin + dsPedido.DataTable := NIL; + FProveedor := NIL; + FDireccion := NIL; + end; +end; + +procedure TfrViewDatosYSeleccionProveedorPedido.SetReadOnly(Value: Boolean); +begin + inherited; + + if (csLoading in Self.ComponentState) then + Exit; + + actAnadirContacto.Enabled := not ReadOnly; + actElegirContacto.Enabled := not ReadOnly; + edtPersonaContacto.Enabled := not ReadOnly; +end; + +procedure TfrViewDatosYSeleccionProveedorPedido.VerFichaProveedor; +begin + if not Assigned(Proveedor) then + ShowErrorMessage('No se ha indicado un proveedor', 'El pedido no tiene ningn proveedor asociado a mostrar.') + else begin + FProveedoresController.Ver(Proveedor); + end; +end; + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewDetallesPedidoProveedor.dcu b/Source/Modulos/Pedidos a proveedor/Views/uViewDetallesPedidoProveedor.dcu new file mode 100644 index 0000000..9617fe8 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Views/uViewDetallesPedidoProveedor.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewDetallesPedidoProveedor.dfm b/Source/Modulos/Pedidos a proveedor/Views/uViewDetallesPedidoProveedor.dfm new file mode 100644 index 0000000..b774e9a --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewDetallesPedidoProveedor.dfm @@ -0,0 +1,136 @@ +inherited frViewDetallesPedidoProveedor: TfrViewDetallesPedidoProveedor + inherited ToolBar1: TToolBar + Height = 73 + ExplicitHeight = 73 + inherited ToolButton3: TToolButton + Wrap = False + end + inherited ToolButton4: TToolButton + Left = 278 + Top = 0 + ExplicitLeft = 278 + ExplicitTop = 0 + end + inherited ToolButton14: TToolButton + Left = 334 + Top = 0 + ExplicitLeft = 334 + ExplicitTop = 0 + end + inherited FontName: TJvFontComboBox + Top = 22 + ExplicitTop = 22 + end + inherited FontSize: TEdit + Top = 22 + ExplicitTop = 22 + end + inherited UpDown1: TUpDown + Top = 22 + ExplicitTop = 22 + end + inherited ToolButton13: TToolButton + Top = 22 + ExplicitTop = 22 + end + inherited ToolButton6: TToolButton + Top = 22 + ExplicitTop = 22 + end + inherited ToolButton7: TToolButton + Top = 22 + ExplicitTop = 22 + end + inherited ToolButton8: TToolButton + Top = 22 + ExplicitTop = 22 + end + inherited ToolButton12: TToolButton + Left = 0 + Top = 22 + Wrap = True + ExplicitLeft = 0 + ExplicitTop = 22 + ExplicitHeight = 27 + end + inherited ToolButton9: TToolButton + Left = 0 + Top = 49 + ExplicitLeft = 0 + ExplicitTop = 49 + end + inherited ToolButton10: TToolButton + Left = 145 + Top = 49 + ExplicitLeft = 145 + ExplicitTop = 49 + end + inherited ToolButton11: TToolButton + Left = 270 + Top = 49 + ExplicitLeft = 270 + ExplicitTop = 49 + end + end + inherited cxGrid: TcxGrid + Top = 99 + Height = 205 + inherited cxGridView: TcxGridDBTableView + inherited cxGridViewTIPO: TcxGridDBColumn + Visible = False + VisibleForCustomization = False + end + inherited cxGridViewREFERENCIA_PROVEEDOR: TcxGridDBColumn + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + Visible = False + end> + Properties.ReadOnly = True + Properties.OnButtonClick = nil + Options.Editing = False + end + inherited cxGridViewREFERENCIA_FABRICANTE: TcxGridDBColumn + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + Visible = False + end> + Properties.ReadOnly = True + Properties.OnButtonClick = nil + Options.Editing = False + end + inherited cxGridViewDESCUENTO: TcxGridDBColumn + Visible = True + end + inherited cxGridViewIMPORTENETO: TcxGridDBColumn + Caption = 'Importe coste' + end + end + end + inherited TBXDock1: TTBXDock + Top = 73 + ExplicitTop = 73 + inherited TBXToolbar1: TTBXToolbar + inherited TBXSubmenuItem1: TTBXSubmenuItem + Visible = False + end + object TBXItem18: TTBXItem [1] + Action = actAnadirArticulos + Caption = 'A'#241'adir art'#237'culos...' + DisplayMode = nbdmImageAndText + end + end + end + inherited GridGeneralPopupMenu: TPopupMenu + object Artculosdelcatlogo1: TMenuItem [4] + Action = actAnadirArticulos + Caption = 'A'#241'adir art'#237'culos...' + end + object N2: TMenuItem [5] + Caption = '-' + end + end +end diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewDetallesPedidoProveedor.pas b/Source/Modulos/Pedidos a proveedor/Views/uViewDetallesPedidoProveedor.pas new file mode 100644 index 0000000..2a2049c --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewDetallesPedidoProveedor.pas @@ -0,0 +1,88 @@ +unit uViewDetallesPedidoProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewDetallesArticulos, cxStyles, cxCustomData, cxGraphics, cxFilter, + cxData, cxDataStorage, cxEdit, DB, cxDBData, ImgList, PngImageList, + uDADataTable, ActnList, ComCtrls, ToolWin, cxGridLevel, cxClasses, cxControls, + cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + cxGrid, cxImageComboBox, cxTextEdit, cxMaskEdit, cxCheckBox, cxCurrencyEdit, + Grids, DBGrids, StdCtrls, ExtCtrls, cxRichEdit, ExtActns, StdActns, + JvExStdCtrls, JvCombobox, JvColorCombo, TB2Item, TBX, TB2Dock, TB2Toolbar, + uControllerDetallesArticulos, uBizPedidosProveedor, uDAInterfaces, + cxButtonEdit, cxDropDownEdit, Menus, cxGridCustomPopupMenu, cxGridPopupMenu, + cxEditRepositoryItems; + +type + IViewDetallesPedidoProveedor = interface(IViewDetallesArticulos) + ['{4C82AADF-7FE2-47BC-88F1-2F2DA6DF0B57}'] + function GetPedido: IBizPedidoProveedor; + procedure SetPedido(const Value: IBizPedidoProveedor); + property Pedido: IBizPedidoProveedor read GetPedido write SetPedido; + end; + + TfrViewDetallesPedidoProveedor = class(TfrViewDetallesArticulos, IViewDetallesPedidoProveedor) + TBXItem18: TTBXItem; + Artculosdelcatlogo1: TMenuItem; + N2: TMenuItem; + procedure CustomViewDestroy(Sender: TObject); + protected + FPedido: IBizPedidoProveedor; + function GetPedido: IBizPedidoProveedor; + procedure SetPedido(const Value: IBizPedidoProveedor); + + procedure AnadirArticulosInterno; override; + procedure RellenarArticulosInterno; override; + function AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean; override; + + public + property Pedido: IBizPedidoProveedor read GetPedido write SetPedido; + end; + +implementation +{$R *.dfm} + +uses uDetallesPedidoProveedorController; + +{ TfrViewDetallesPedidoProveedor } + +procedure TfrViewDetallesPedidoProveedor.AnadirArticulosInterno; +begin +//No s porque est en este mdulo hecho as, supongo que por seguridad. + if Assigned(Pedido) and Assigned(Pedido.Proveedor) + then (Controller as IDetallesPedidoProveedorController).AnadirArticulos(Detalles, Pedido.Proveedor) + else (Controller as IDetallesPedidoProveedorController).AnadirArticulos(Detalles); +end; + +procedure TfrViewDetallesPedidoProveedor.CustomViewDestroy(Sender: TObject); +begin + FPedido := Nil; + inherited; +end; + +function TfrViewDetallesPedidoProveedor.AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean; +begin + Result := (Controller as IDetallesPedidoProveedorController).AnadirArticulo(Detalles, pReferencia, TipoReferencia); +end; + +function TfrViewDetallesPedidoProveedor.GetPedido: IBizPedidoProveedor; +begin + Result := FPedido; +end; + +procedure TfrViewDetallesPedidoProveedor.RellenarArticulosInterno; +begin +//No s porque est en este mdulo hecho as, supongo que por seguridad. + if Assigned(Pedido) and Assigned(Pedido.Proveedor) + then (Controller as IDetallesPedidoProveedorController).AnadirArticulos(Detalles, Pedido.Proveedor, False) + else (Controller as IDetallesPedidoProveedorController).AnadirArticulos(Detalles, False); +end; + +procedure TfrViewDetallesPedidoProveedor.SetPedido(const Value: IBizPedidoProveedor); +begin + FPedido := Value; +end; + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewDireccionEntregaPedidoProv.dcu b/Source/Modulos/Pedidos a proveedor/Views/uViewDireccionEntregaPedidoProv.dcu new file mode 100644 index 0000000..c6d8b3a Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Views/uViewDireccionEntregaPedidoProv.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewDireccionEntregaPedidoProv.dfm b/Source/Modulos/Pedidos a proveedor/Views/uViewDireccionEntregaPedidoProv.dfm new file mode 100644 index 0000000..0a31803 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewDireccionEntregaPedidoProv.dfm @@ -0,0 +1,274 @@ +inherited frViewDireccionEntregaPedidoProv: TfrViewDireccionEntregaPedidoProv + Width = 484 + Height = 240 + ExplicitWidth = 484 + ExplicitHeight = 240 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 484 + Height = 240 + Align = alClient + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + DesignSize = ( + 484 + 240) + object Bevel1: TBevel + Left = 10 + Top = 178 + Width = 566 + Height = 2 + Shape = bsTopLine + end + object lblObra: TLabel + Left = 247 + Top = 37 + Width = 15 + Height = 13 + Align = alClient + Caption = ' ' + end + object rdxDestino1: TRadioButton + Left = 10 + Top = 12 + Width = 175 + Height = 17 + Action = actListaAlmacenes + TabOrder = 0 + TabStop = True + end + object rdxDestino3: TRadioButton + Left = 10 + Top = 63 + Width = 566 + Height = 17 + Action = actOtro + TabOrder = 3 + end + object cbListaAlmacenes: TcxDBLookupComboBox + Left = 206 + Top = 10 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'ID_ALMACEN' + DataBinding.DataSource = dsPedido + Properties.DropDownListStyle = lsFixedList + Properties.ImmediatePost = True + Properties.KeyFieldNames = 'ID' + Properties.ListColumns = < + item + FieldName = 'NOMBRE' + end> + Properties.ListOptions.AnsiSort = True + Properties.ListOptions.GridLines = glNone + Properties.ListOptions.ShowHeader = False + Properties.ListOptions.SyncMode = True + Properties.ListSource = dsAlmacenes + Properties.PostPopupValueOnTab = True + Properties.OnValidate = cbListaAlmacenesPropertiesValidate + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 1 + Width = 551 + end + object bModificar: TBitBtn + Left = 346 + Top = 142 + Width = 128 + Height = 25 + Caption = 'Modificar la direcci'#243'n...' + TabOrder = 5 + OnClick = bModificarClick + end + object txtDireccion: TStaticText + Left = 25 + Top = 86 + Width = 882 + Height = 47 + AutoSize = False + BevelKind = bkFlat + TabOrder = 4 + OnDblClick = txtDireccionDblClick + end + object rdxDestino2: TRadioButton + Left = 10 + Top = 37 + Width = 231 + Height = 17 + Action = actListaObras + TabOrder = 2 + end + object edtEntregarA: TcxDBButtonEdit + Left = 10 + Top = 209 + DataBinding.DataField = 'PERSONA_CONTACTO' + DataBinding.DataSource = dsPedido + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = edtEntregarAPropertiesButtonClick + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 6 + Width = 334 + end + object dxLayoutGroup1: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group2: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutItem1: TdxLayoutItem + AutoAligns = [aaHorizontal] + AlignVert = avCenter + Caption = 'New Item' + ShowCaption = False + Control = rdxDestino1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item3: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'New Item' + Offsets.Left = 15 + ShowCaption = False + Control = cbListaAlmacenes + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group3: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item4: TdxLayoutItem + AutoAligns = [aaHorizontal] + AlignVert = avCenter + ShowCaption = False + Control = rdxDestino2 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item6: TdxLayoutItem + Caption = 'Label1' + ShowCaption = False + Control = lblObra + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Item2: TdxLayoutItem + AutoAligns = [aaHorizontal] + Caption = 'New Item' + Offsets.Top = 3 + ShowCaption = False + Control = rdxDestino3 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item5: TdxLayoutItem + AutoAligns = [aaHorizontal] + AlignVert = avClient + Caption = 'StaticText1' + Offsets.Left = 15 + ShowCaption = False + Control = txtDireccion + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item1: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Offsets.Left = 15 + ShowCaption = False + Control = bModificar + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item8: TdxLayoutItem + Caption = 'Bevel1' + Offsets.Bottom = 5 + Offsets.Top = 5 + ShowCaption = False + Control = Bevel1 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item7: TdxLayoutItem + Caption = 'Entregar este pedido a la persona de contacto:' + CaptionOptions.Layout = clTop + Control = edtEntregarA + ControlOptions.ShowBorder = False + end + end + end + object ActionList1: TActionList + Left = 384 + Top = 8 + object actListaAlmacenes: TAction + Caption = 'Recibir el pedido en el almac'#233'n:' + Checked = True + GroupIndex = 1 + OnExecute = actListaAlmacenesExecute + end + object actOtro: TAction + Caption = 'Recibir el pedido en esta otra direcci'#243'n:' + GroupIndex = 1 + OnExecute = actOtroExecute + end + object actListaObras: TAction + Caption = 'Recibir el pedido en la direcci'#243'n de la obra.' + GroupIndex = 1 + OnExecute = actListaObrasExecute + end + end + object dsPedido: TDADataSource + Left = 352 + Top = 8 + end + object dsAlmacenes: TDADataSource + Left = 320 + Top = 8 + end + object dsObras: TDADataSource + Left = 288 + Top = 8 + end +end diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewDireccionEntregaPedidoProv.pas b/Source/Modulos/Pedidos a proveedor/Views/uViewDireccionEntregaPedidoProv.pas new file mode 100644 index 0000000..873f73e --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewDireccionEntregaPedidoProv.pas @@ -0,0 +1,305 @@ +unit uViewDireccionEntregaPedidoProv; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, uBizPedidosProveedor, cxGraphics, dxLayoutControl, cxMemo, + cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxLookupEdit, + cxDBLookupEdit, cxDBLookupComboBox, StdCtrls, cxControls, DB, uDADataTable, + ActnList, uBizAlmacenes, uAlmacenesController, uPedidosProveedorController, + Buttons, uDAInterfaces, uBizObras, uObrasController, cxButtonEdit, cxDBEdit, + ExtCtrls, cxLabel, cxDBLabel; + +type + IViewDireccionEntregaPedidoProv = interface(IViewBase) + ['{7467855C-066F-4A60-B88F-2837C8050B1E}'] + function GetPedidoProveedor: IBizPedidoProveedor; + procedure SetPedidoProveedor(const Value: IBizPedidoProveedor); + property PedidoProveedor: IBizPedidoProveedor read GetPedidoProveedor write SetPedidoProveedor; + end; + + TfrViewDireccionEntregaPedidoProv = class(TfrViewBase, IViewDireccionEntregaPedidoProv) + dxLayoutControl1: TdxLayoutControl; + rdxDestino1: TRadioButton; + rdxDestino3: TRadioButton; + cbListaAlmacenes: TcxDBLookupComboBox; + dxLayoutGroup1: TdxLayoutGroup; + dxLayoutItem1: TdxLayoutItem; + dxLayoutControl1Item3: TdxLayoutItem; + dxLayoutControl1Item2: TdxLayoutItem; + ActionList1: TActionList; + actListaAlmacenes: TAction; + actOtro: TAction; + dsPedido: TDADataSource; + dsAlmacenes: TDADataSource; + dxLayoutControl1Item1: TdxLayoutItem; + bModificar: TBitBtn; + txtDireccion: TStaticText; + dxLayoutControl1Item5: TdxLayoutItem; + dxLayoutControl1Item4: TdxLayoutItem; + rdxDestino2: TRadioButton; + dsObras: TDADataSource; + actListaObras: TAction; + Bevel1: TBevel; + dxLayoutControl1Item8: TdxLayoutItem; + edtEntregarA: TcxDBButtonEdit; + dxLayoutControl1Item7: TdxLayoutItem; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Group2: TdxLayoutGroup; + dxLayoutControl1Group3: TdxLayoutGroup; + lblObra: TLabel; + dxLayoutControl1Item6: TdxLayoutItem; + + procedure cbListaAlmacenesPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure bModificarClick(Sender: TObject); + procedure txtDireccionDblClick(Sender: TObject); + + procedure edtEntregarAPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); + procedure actListaAlmacenesExecute(Sender: TObject); + procedure actOtroExecute(Sender: TObject); + procedure actListaObrasExecute(Sender: TObject); + + protected + FAlmacenesController : IAlmacenesController; + FAlmacenes: IBizAlmacen; + FObrasController : IObrasController; + FObra: IBizObra; + FPedido : IBizPedidoProveedor; + FController : IPedidosProveedorController; + function GetPedidoProveedor: IBizPedidoProveedor; + procedure SetPedidoProveedor(const Value: IBizPedidoProveedor); + procedure CambioDireccionAlmacen; + procedure RefrescarControles; + procedure SetReadOnly(Value: Boolean); override; + + public + property PedidoProveedor: IBizPedidoProveedor read GetPedidoProveedor write SetPedidoProveedor; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure RecuperarObra; + procedure CambioDireccionObra; + end; + +implementation + +{$R *.dfm} + +uses + uEditorRegistryUtils, uCustomView, uEditorElegirPersonaContactoPedido, uBizInventario; + +procedure TfrViewDireccionEntregaPedidoProv.actListaAlmacenesExecute( + Sender: TObject); +begin + actListaAlmacenes.Checked := True; + RefrescarControles; +end; + +procedure TfrViewDireccionEntregaPedidoProv.actListaObrasExecute(Sender: TObject); +begin + actListaObras.Checked := True; + RecuperarObra; + CambioDireccionObra; + FController.AsignarIDAlmacen(FPedido, FPedido.ID_OBRA); +end; + +procedure TfrViewDireccionEntregaPedidoProv.actOtroExecute(Sender: TObject); +begin + actOtro.Checked := True; + + if Assigned(FPedido) then + begin + FController.VerDireccionEntrega(FPedido); + FController.AsignarIDAlmacen(FPedido, Null); + end; + RefrescarControles; +end; + +procedure TfrViewDireccionEntregaPedidoProv.bModificarClick(Sender: TObject); +begin + inherited; + actOtro.Execute; +end; + +procedure TfrViewDireccionEntregaPedidoProv.CambioDireccionAlmacen; +begin + if Assigned(FPedido) and Assigned(FAlmacenes) then + begin + FPedido.Edit; + FPedido.CALLE := FAlmacenes.CALLE; + FPedido.POBLACION := FAlmacenes.POBLACION; + FPedido.POBLACION := FAlmacenes.POBLACION; + FPedido.PROVINCIA := FAlmacenes.PROVINCIA; + FPedido.CODIGO_POSTAL := FAlmacenes.CODIGO_POSTAL; + RefrescarControles; + end; +end; + +procedure TfrViewDireccionEntregaPedidoProv.CambioDireccionObra; +begin + if Assigned(FPedido) and Assigned(FObra) then + begin + FPedido.Edit; + FPedido.CALLE := FObra.CALLE; + FPedido.POBLACION := FObra.POBLACION; + FPedido.POBLACION := FObra.POBLACION; + FPedido.PROVINCIA := FObra.PROVINCIA; + FPedido.CODIGO_POSTAL := FObra.CODIGO_POSTAL; + RefrescarControles; + end; +end; + +procedure TfrViewDireccionEntregaPedidoProv.cbListaAlmacenesPropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + if Assigned(FPedido) and Assigned(FAlmacenes) and (FPedido.ID_ALMACEN <> FAlmacenes.ID) then + CambioDireccionAlmacen; +end; + +constructor TfrViewDireccionEntregaPedidoProv.Create(AOwner: TComponent); +begin + inherited; + FController := TPedidosProveedorController.Create; + FAlmacenesController := TAlmacenesController.Create; + FAlmacenes := FAlmacenesController.BuscarTodos; + FAlmacenes.DataTable.Active := True; + dsAlmacenes.DataTable := FAlmacenes.DataTable; + + FObrasController := TObrasController.Create; + FObra := NIL; +end; + +destructor TfrViewDireccionEntregaPedidoProv.Destroy; +begin + cbListaAlmacenes.Properties.OnValidate := Nil; + + FAlmacenesController := Nil; + FAlmacenes := Nil; + + FObrasController := Nil; + FObra := NIL; + + FController := NIL; + inherited; +end; + +procedure TfrViewDireccionEntregaPedidoProv.edtEntregarAPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +var + AID_Subcontrata : Integer; + APersonaContacto : String; +begin + inherited; + AID_Subcontrata := -1; + + if not FPedido.ID_OBRAIsNull then + begin + RecuperarObra; + if FObrasController.LocalizarEjecucionActiva(FObra.Ejecuciones) then + begin + if not FObra.Ejecuciones.ID_SUBCONTRATAIsNull then + AID_Subcontrata := FObra.Ejecuciones.ID_SUBCONTRATA; + end; + end; + + APersonaContacto := FPedido.PERSONA_CONTACTO; + + if ElegirPersonaContactoPedido(AID_Subcontrata, APersonaContacto) then + begin + FPedido.Edit; + FPedido.PERSONA_CONTACTO := APersonaContacto; + end; +end; + +function TfrViewDireccionEntregaPedidoProv.GetPedidoProveedor: IBizPedidoProveedor; +begin + Result := FPedido; +end; + +procedure TfrViewDireccionEntregaPedidoProv.RecuperarObra; +begin + if Assigned(FObra) and (FObra.ID = FPedido.ID_OBRA) then + Exit; // No hace falta volver a recuperarla + + FObra := FObrasController.Buscar(FPedido.ID_OBRA); + FObra.Open; +end; + +procedure TfrViewDireccionEntregaPedidoProv.RefrescarControles; +begin + txtDireccion.Caption := ''; + if Assigned(FPedido) then + begin + if (actOtro.Checked) then + begin + cbListaAlmacenes.Enabled := False; + cbListaAlmacenes.Text := ''; + txtDireccion.Enabled := True; + txtDireccion.Caption := FPedido.CALLE; + txtDireccion.Caption := txtDireccion.Caption + #13#10 + FPedido.CODIGO_POSTAL + ' ' + FPedido.POBLACION; + txtDireccion.Caption := txtDireccion.Caption + #13#10 + FPedido.PROVINCIA; + bModificar.Enabled := True; + end + else if (actListaAlmacenes.Checked) then + begin + cbListaAlmacenes.Enabled := True; + cbListaAlmacenes.DroppedDown := True; + txtDireccion.Enabled := False; + bModificar.Enabled := False; + end + else begin + cbListaAlmacenes.Enabled := False; + cbListaAlmacenes.Text := ''; + bModificar.Enabled := False; + txtDireccion.Enabled := False; + end; + end; +end; + +procedure TfrViewDireccionEntregaPedidoProv.SetPedidoProveedor( + const Value: IBizPedidoProveedor); +begin + cbListaAlmacenes.Properties.OnValidate := NIL; + dsPedido.DataTable := nil; + + FPedido := Value; + + dsPedido.DataTable := FPedido.DataTable; + cbListaAlmacenes.Properties.OnValidate := cbListaAlmacenesPropertiesValidate; + + if (FPedido.EsNuevo) then + CambioDireccionAlmacen + else begin + if (FPedido.ID_ALMACEN > 0) then + if FPedido.TIPO_ALMACEN = CTE_INV_ALMACEN then + actListaAlmacenes.Checked := True + else begin + actListaObras.Checked := True + end + else + actOtro.Checked := True; + end; + RefrescarControles; +end; + +procedure TfrViewDireccionEntregaPedidoProv.SetReadOnly(Value: Boolean); +begin + inherited; + + if (csLoading in Self.ComponentState) then + Exit; + + rdxDestino1.Enabled := not ReadOnly; + rdxDestino2.Enabled := not ReadOnly; + rdxDestino3.Enabled := not ReadOnly; +end; + +procedure TfrViewDireccionEntregaPedidoProv.txtDireccionDblClick( + Sender: TObject); +begin + inherited; + actOtro.Execute; +end; + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewElegirArticulosPedidosProveedor.dcu b/Source/Modulos/Pedidos a proveedor/Views/uViewElegirArticulosPedidosProveedor.dcu new file mode 100644 index 0000000..81a285e Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Views/uViewElegirArticulosPedidosProveedor.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewElegirArticulosPedidosProveedor.dfm b/Source/Modulos/Pedidos a proveedor/Views/uViewElegirArticulosPedidosProveedor.dfm new file mode 100644 index 0000000..38cd05b --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewElegirArticulosPedidosProveedor.dfm @@ -0,0 +1,103 @@ +inherited frViewElegirArticulosPedidosProveedor: TfrViewElegirArticulosPedidosProveedor + Width = 565 + Height = 407 + ExplicitWidth = 565 + ExplicitHeight = 407 + inherited cxGrid: TcxGrid + Width = 565 + Height = 279 + RootLevelOptions.DetailTabsPosition = dtpTop + OnActiveTabChanged = cxGridActiveTabChanged + ExplicitWidth = 565 + ExplicitHeight = 279 + inherited cxGridView: TcxGridDBTableView + inherited cxGridViewPRECIO_PVP_VENTA: TcxGridDBColumn + Visible = False + end + inherited cxGridViewPRECIO_PVP_TOTAL: TcxGridDBColumn + Visible = False + end + end + inherited cxGridLevel: TcxGridLevel + Caption = '' + end + object cxGridLevel1: TcxGridLevel + Tag = 1 + Caption = 'Otros' + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 565 + ExplicitWidth = 565 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 565 + inherited dxLayoutControl1: TdxLayoutControl + Width = 565 + ExplicitWidth = 565 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 468 + Width = 468 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 225 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 225 + ExplicitWidth = 205 + Width = 205 + end + inherited eLista: TcxComboBox + Left = 467 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 467 + ExplicitWidth = 88 + Width = 88 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 565 + ExplicitWidth = 565 + inherited tbxBotones: TTBXToolbar + Width = 555 + ExplicitWidth = 555 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 381 + ExplicitTop = 381 + ExplicitWidth = 565 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 565 + ExplicitWidth = 565 + inherited TBXToolbar1: TTBXToolbar + Width = 555 + ExplicitWidth = 555 + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39252.446797407400000000 + BuiltInReportLink = True + end + end +end diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewElegirArticulosPedidosProveedor.pas b/Source/Modulos/Pedidos a proveedor/Views/uViewElegirArticulosPedidosProveedor.pas new file mode 100644 index 0000000..254da6f --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewElegirArticulosPedidosProveedor.pas @@ -0,0 +1,106 @@ +unit uViewElegirArticulosPedidosProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewArticulos, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxImageComboBox, cxCurrencyEdit, + cxSpinEdit, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, + dxPSCompsProvider, dxPSFillPatterns, dxPSEdgePatterns, ImgList, PngImageList, + cxGridCustomPopupMenu, cxGridPopupMenu, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, + uDADataTable, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, dxPgsDlg, + ActnList, TB2Item, TBX, TB2Toolbar, TBXDkPanels, TB2Dock, uViewFiltroBase, + uBizContactos, uDAInterfaces, uViewArticulosPorProveedor; + +type + IViewElegirArticulosPedidosProveedor = interface(IViewArticulos) + ['{5292A518-0797-4FFC-AC9B-90F0113AF3AF}'] + function GetProveedor: IBizProveedor; + procedure SetProveedor(const Value: IBizProveedor); + property Proveedor: IBizProveedor read GetProveedor write SetProveedor; + end; + + TfrViewElegirArticulosPedidosProveedor = class(TfrViewArticulosPorProveedor, IViewElegirArticulosPedidosProveedor) + cxGridLevel1: TcxGridLevel; + + procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel); + procedure CustomViewDestroy(Sender: TObject); + + private + FProveedor: IBizProveedor; + function GetProveedor: IBizProveedor; + procedure SetProveedor(const Value: IBizProveedor); + + //Filtros relativos a la vista + procedure AnadirFiltroProveedor; + + public + property Proveedor: IBizProveedor read GetProveedor write SetProveedor; + procedure AnadirOtrosFiltros; override; + + end; + +implementation + +uses uViewGrid; + +{$R *.dfm} + +procedure TfrViewElegirArticulosPedidosProveedor.AnadirFiltroProveedor; +var + FFiltro : TcxFilterCriteriaItemList; +begin + FFiltro := AddFilterGrid(fboAnd); + + case cxGrid.ActiveLevel.Index of + 0 : if Assigned(FProveedor) then + FFiltro.AddItem(cxGridViewID_PROVEEDOR, foEqual, FProveedor.ID, FProveedor.NOMBRE); + 1 : if Assigned(FProveedor) then + FFiltro.AddItem(cxGridViewID_PROVEEDOR, foNotEqual, FProveedor.ID, 'ARTICULOS DE OTROS PROVEEDORES'); + end; +end; + +procedure TfrViewElegirArticulosPedidosProveedor.AnadirOtrosFiltros; +begin + inherited; + + AnadirFiltroProveedor; + + //Finalmente activamos el filtro si tenemos algo + if cxGridView.DataController.Filter.IsEmpty + then cxGridView.DataController.Filter.Active := False + else cxGridView.DataController.Filter.Active := True; + cxGrid.ActiveLevel.GridView := cxGridView; +end; + +procedure TfrViewElegirArticulosPedidosProveedor.CustomViewDestroy(Sender: TObject); +begin + FProveedor := Nil; + inherited; +end; + +procedure TfrViewElegirArticulosPedidosProveedor.cxGridActiveTabChanged( + Sender: TcxCustomGrid; ALevel: TcxGridLevel); +begin + inherited; + RefrescarFiltro; +end; + +function TfrViewElegirArticulosPedidosProveedor.GetProveedor: IBizProveedor; +begin + Result := FProveedor; +end; + +procedure TfrViewElegirArticulosPedidosProveedor.SetProveedor(const Value: IBizProveedor); +begin + FProveedor := Value; + if Assigned(FProveedor) then + begin + cxGrid.ActiveLevel.Caption := FProveedor.NOMBRE; + RefrescarFiltro; + end; +end; + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewObraReserva.dcu b/Source/Modulos/Pedidos a proveedor/Views/uViewObraReserva.dcu new file mode 100644 index 0000000..4dccde5 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Views/uViewObraReserva.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewObraReserva.dfm b/Source/Modulos/Pedidos a proveedor/Views/uViewObraReserva.dfm new file mode 100644 index 0000000..9ec81ed --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewObraReserva.dfm @@ -0,0 +1,305 @@ +inherited frViewObraReserva: TfrViewObraReserva + Width = 316 + Height = 102 + OnShow = CustomViewShow + ExplicitWidth = 316 + ExplicitHeight = 102 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 316 + Height = 102 + Align = alClient + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + ExplicitWidth = 529 + ExplicitHeight = 74 + DesignSize = ( + 316 + 102) + object Label1: TLabel + Left = 10 + Top = 10 + Width = 202 + Height = 13 + Caption = 'El material de este pedido es para la obra:' + end + object Button3: TBitBtn + Left = 160 + Top = 56 + Width = 144 + Height = 25 + Action = actVerObra + Caption = 'Ver datos de la obra...' + TabOrder = 2 + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF002A54A50058339A00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00A87F7C00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF002491C6000E485F00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00A87F7C00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF000098C8000E485F00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00A87F7C00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF000098C8000E485F00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00A87F7C00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF000098C8000E485F00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00A87F7C00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF000098C8000E485F00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF0000C8F800279DFA004878F800FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF000098C8000E485F00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF004878F800FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF000098C8000E485F00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF0000C8F80008F3FF004878F800FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF000098C8000C496300FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF0000C8F80008F3FF004878F800FF00FF00E7E7E700847B7B00FF00 + FF00FF00FF004E748700385E7100FF00FF007D736B005A5F5F00FF00FF00FF00 + FF00FF00FF0000C8F80008F3FF004878F800FF00FF0086868400797777005D5D + 5C00535452004F514F004B4F500064676700C9CCD000847B7B00FF00FF00FF00 + FF00FF00FF0000C8F80008F3FF004878F800FF00FF00847B7B00EFEFEF00847B + 7B0089898900EAECED00EAECED00EAECED00847B7B00FF00FF00FF00FF00FF00 + FF00FF00FF0000C8F80000C8F80000C8F800FF00FF008B624F00847B7B00FF00 + FF00847B7B00847B7B00847B7B00847B7B00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} + end + object cbObraReserva: TcxComboBox + Left = 10 + Top = 29 + Anchors = [akLeft, akTop, akRight] + Properties.DropDownListStyle = lsEditFixedList + Properties.DropDownRows = 25 + Properties.ImmediatePost = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 0 + Width = 581 + end + object BitBtn1: TBitBtn + Left = 10 + Top = 56 + Width = 144 + Height = 25 + Action = actAnadirObra + Caption = 'A'#241'adir obra' + TabOrder = 1 + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF002A54A50058339A00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00A87F7C00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF002491C6000E485F00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00A87F7C00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF000098C8000E485F00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00A87F7C00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF000098C8000E485F00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00A87F7C00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF000098C8000E485F00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00A87F7C00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF000098C8000E485F00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF0000C8F800279DFA004878F800FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF000098C8000E485F00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF004878F800FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF000098C8000E485F00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF0000C8F80008F3FF004878F800FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF000098C8000C496300FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF0000C8F80008F3FF004878F800FF00FF00E7E7E700847B7B00FF00 + FF00FF00FF004E748700385E7100FF00FF007D736B005A5F5F00FF00FF00FF00 + FF00FF00FF0000C8F80008F3FF004878F800FF00FF0086868400797777005D5D + 5C00535452004F514F004B4F500064676700C9CCD000847B7B00FF00FF00FF00 + FF00FF00FF0000C8F80008F3FF004878F800FF00FF00847B7B00EFEFEF00847B + 7B0089898900EAECED00EAECED00EAECED00847B7B00FF00FF00FF00FF00FF00 + FF00FF00FF0000C8F80000C8F80000C8F800FF00FF008B624F00847B7B00FF00 + FF00847B7B00847B7B00847B7B00847B7B00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} + end + object dxLayoutGroup1: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item1: TdxLayoutItem + Caption = 'Label1' + ShowCaption = False + Control = Label1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group1: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item3: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Control = cbObraReserva + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group2: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item4: TdxLayoutItem + ShowCaption = False + Control = BitBtn1 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item2: TdxLayoutItem + AutoAligns = [aaVertical] + ShowCaption = False + Control = Button3 + ControlOptions.ShowBorder = False + end + end + end + end + end + object PngImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001014944415478DA63FCFFFF3F + 032580717019F0F324239CC36EFE9F3120B9E7BF8EE44F8696966AC69A9A5614 + 9B4062580D60D7E660F8D9EAC0C0DEBE1DACA9A4249BA1A7672A031F1F2B434A + 72225C6D5FFF2CB021780D686D6FFFFFF9E36786A7CF9E307CFBFE8DE1EFDF3F + 0C8CFFFE30884B483264A6A632AC5EBF1BBF0B5EBC78F17FCA94B970E77694FA + FF7FF5EA1543DFC2E38C392575FFBFBCB98BDF00F4003B3993F1FFEC8D3C0C73 + B67D86CB61C4C2CF4ACFFFD834C30C98BE818F61C1F68FD80D00B980E9AA3AC3 + BFDB8A385D80D70010A86D58F9BFB9219C3C178C00038E4F52FD3F73FB2BFC06 + 30323232E0CA60CB42B5FF7FBDAFC7907A6639DC0000A2ACDE77DC4275670000 + 000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 248 + Top = 8 + Bitmap = {} + end + object ActionList1: TActionList + Images = PngImageList + Left = 280 + Top = 8 + object actVerObra: TAction + Caption = 'Ver datos de la obra...' + ImageIndex = 0 + OnExecute = actVerObraExecute + OnUpdate = actVerObraUpdate + end + object actAnadirObra: TAction + Caption = 'A'#241'adir obra' + OnExecute = actAnadirObraExecute + end + end +end diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewObraReserva.pas b/Source/Modulos/Pedidos a proveedor/Views/uViewObraReserva.pas new file mode 100644 index 0000000..e0515ff --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewObraReserva.pas @@ -0,0 +1,202 @@ +unit uViewObraReserva; + +interface + +uses + Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, uBizPedidosProveedor, cxGraphics, dxLayoutControl, cxMemo, + cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxLookupEdit, + cxDBLookupEdit, cxDBLookupComboBox, StdCtrls, cxControls, DB, uDADataTable, + ActnList, uBizAlmacenes, uAlmacenesController, uPedidosProveedorController, + Buttons, uDAInterfaces, uBizObras, cxButtonEdit, cxDBEdit, uObrasController, + ExtCtrls, ImgList, PngImageList; + +type + IViewObraReserva = interface(IViewBase) + ['{571462BF-ECF3-47F1-A6F4-2C31175D0B33}'] + end; + + TfrViewObraReserva = class(TfrViewBase, IViewObraReserva) + dxLayoutControl1: TdxLayoutControl; + dxLayoutGroup1: TdxLayoutGroup; + Label1: TLabel; + dxLayoutControl1Item1: TdxLayoutItem; + dxLayoutControl1Item2: TdxLayoutItem; + Button3: TBitBtn; + PngImageList: TPngImageList; + ActionList1: TActionList; + actVerObra: TAction; + dxLayoutControl1Item3: TdxLayoutItem; + cbObraReserva: TcxComboBox; + dxLayoutControl1Group1: TdxLayoutGroup; + actAnadirObra: TAction; + dxLayoutControl1Item4: TdxLayoutItem; + BitBtn1: TBitBtn; + dxLayoutControl1Group2: TdxLayoutGroup; + procedure actVerObraExecute(Sender: TObject); + procedure actVerObraUpdate(Sender: TObject); + procedure CustomViewShow(Sender: TObject); + procedure actAnadirObraExecute(Sender: TObject); + private + FObras : TStringList; + FObrasController: IObrasController; + function GetObrasController: IObrasController; + procedure SetObrasController(const Value: IObrasController); + function GetObras: TStringList; + procedure SetObras(const Value: TStringList); + + protected + procedure SalvarObra; + procedure SetReadOnly(Value: Boolean); override; + + public + property Obras: TStringList read GetObras write SetObras; + property ObrasController: IObrasController read GetObrasController write SetObrasController; + destructor Destroy; override; + procedure ActivarObra(const IDObra:Integer); + function DarIDObraSeleccionada: String; + end; + +implementation +{$R *.dfm} + +uses + Variants, uEditorRegistryUtils, uCustomView, uEditorElegirPersonaContactoPedido, + uStringsUtils; + +procedure TfrViewObraReserva.actVerObraExecute(Sender: TObject); +var + AObra : IBizObra; + AID : Variant; +begin + inherited; + AID := DarIDObraSeleccionada; + AObra := FObrasController.Buscar(AID); + if Assigned(AObra) then + try + FObrasController.Ver(AObra); + finally + AObra := NIL; + end; +end; + +procedure TfrViewObraReserva.actVerObraUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (cbObraReserva.Properties.Items.Count > 0) +end; + +procedure TfrViewObraReserva.actAnadirObraExecute(Sender: TObject); +var + AObra : IBizObra; + +begin + inherited; + AObra := (ObrasController.Nuevo as IBizObra); + ObrasController.Ver(AObra); + Obras := ObrasController.DarListaObras; +end; + +procedure TfrViewObraReserva.ActivarObra(const IDObra: Integer); +var + i : integer; +begin + cbObraReserva.ItemIndex := 0; + for i := 0 to FObras.Count - 1 do + begin + if IntToStr(IDObra) = FObras.Values[FObras.Names[i]] then + begin + cbObraReserva.ItemIndex := i; + Exit; + end; + end; +end; + +procedure TfrViewObraReserva.CustomViewShow(Sender: TObject); +begin + inherited; + cbObraReserva.Enabled := not Self.ReadOnly; +end; + +function TfrViewObraReserva.DarIDObraSeleccionada: String; +begin + if Assigned(FObras) then + Result := FObras.Values[cbObraReserva.EditValue] + else + Raise Exception.Create('No se ha asignado ninguna lista de ALMACENES'); +end; + +destructor TfrViewObraReserva.Destroy; +begin + FObrasController := Nil; + FObras := Nil; + inherited; +end; + +function TfrViewObraReserva.GetObras: TStringList; +begin + Result := FObras; +end; + +function TfrViewObraReserva.GetObrasController: IObrasController; +begin + Result := FObrasController; +end; + +procedure TfrViewObraReserva.SalvarObra; +var + AID : String; +begin +{ + // En el item 0 no hay nada + if (cbObraReserva.ItemIndex > 0) then + begin + AID := FListaObras.Values[cbObraReserva.EditValue]; + FPedido.Edit; + FPedido.ID_OBRA := StrToInt(AID); + FPedido.NOMBRE_OBRA := cbObraReserva.EditValue; + end + else begin + FPedido.Edit; + FPedido.ClearField('ID_OBRA'); + FPedido.ClearField('NOMBRE_OBRA'); + end; +} +end; + +procedure TfrViewObraReserva.SetObras(const Value: TStringList); +var + i: Integer; + +begin + FObras := Value; + + if Assigned(FObras) then + with cbObraReserva.Properties.Items do + begin + BeginUpdate; + try + Clear; +// Add(''); + for i := 0 to FObras.Count - 1 do + Add(FObras.Names[i]); + finally + EndUpdate; + end; + end; +end; + +procedure TfrViewObraReserva.SetObrasController(const Value: IObrasController); +begin + FObrasController := Value; +end; + +procedure TfrViewObraReserva.SetReadOnly(Value: Boolean); +begin + inherited; + if (csLoading in Self.ComponentState) then + Exit; + cbObraReserva.Enabled := not Self.ReadOnly; +end; + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.dcu b/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.dcu new file mode 100644 index 0000000..c78aadb Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.dfm b/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.dfm new file mode 100644 index 0000000..4f87f64 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.dfm @@ -0,0 +1,607 @@ +inherited frViewPedidoProveedor: TfrViewPedidoProveedor + Width = 965 + Height = 560 + OnCreate = CustomViewCreate + OnDestroy = CustomViewDestroy + OnShow = CustomViewShow + ExplicitWidth = 965 + ExplicitHeight = 560 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 965 + Height = 560 + Align = alClient + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + DesignSize = ( + 965 + 560) + object edtFechaPedido: TcxDBDateEdit + Left = 121 + Top = 55 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_PEDIDO' + DataBinding.DataSource = DADataSource + Properties.ImmediatePost = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 1 + Width = 333 + end + object edtFechaConfirmacion: TcxDBDateEdit + Left = 589 + Top = 292 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_CONFIRMACION' + DataBinding.DataSource = DADataSource + Properties.ImmediatePost = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 10 + Width = 344 + end + object edtFechaEntrega: TcxDBDateEdit + Left = 589 + Top = 319 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_ENTREGA' + DataBinding.DataSource = DADataSource + Properties.ImmediatePost = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 11 + Width = 344 + end + object memObservaciones: TcxDBMemo + Left = 474 + Top = 376 + Anchors = [akLeft, akTop, akRight, akBottom] + DataBinding.DataField = 'OBSERVACIONES' + DataBinding.DataSource = DADataSource + Properties.ScrollBars = ssVertical + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 12 + Height = 200 + Width = 459 + end + object eReferencia: TcxDBTextEdit + Left = 121 + Top = 28 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REFERENCIA' + DataBinding.DataSource = DADataSource + Enabled = False + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 0 + Width = 333 + end + inline frViewDireccionEntregaPedidoProv1: TfrViewDireccionEntregaPedidoProv + Left = 22 + Top = 301 + Width = 432 + Height = 248 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 7 + ReadOnly = False + ExplicitLeft = 22 + ExplicitTop = 301 + ExplicitWidth = 432 + ExplicitHeight = 248 + inherited dxLayoutControl1: TdxLayoutControl + Width = 432 + Height = 248 + ExplicitWidth = 432 + ExplicitHeight = 248 + DesignSize = ( + 432 + 248) + inherited Bevel1: TBevel + Top = 175 + Width = 566 + ExplicitTop = 175 + ExplicitWidth = 566 + end + inherited lblObra: TLabel + Left = 239 + ExplicitLeft = 239 + end + inherited rdxDestino3: TRadioButton + Width = 566 + ExplicitWidth = 566 + end + inherited cbListaAlmacenes: TcxDBLookupComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 551 + Width = 551 + end + inherited bModificar: TBitBtn + Left = 284 + Top = 139 + ExplicitLeft = 284 + ExplicitTop = 139 + end + inherited txtDireccion: TStaticText + Width = 882 + Height = 68 + ExplicitWidth = 882 + ExplicitHeight = 68 + end + inherited rdxDestino2: TRadioButton + Width = 223 + ExplicitWidth = 223 + end + inherited edtEntregarA: TcxDBButtonEdit + Top = 206 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 206 + ExplicitWidth = 334 + Width = 334 + end + end + inherited ActionList1: TActionList + Left = 72 + end + inherited dsPedido: TDADataSource + Left = 0 + Top = 0 + end + inherited dsObras: TDADataSource + Left = 272 + end + end + object cbFormaPago: TcxDBLookupComboBox + Left = 121 + Top = 82 + DataBinding.DataField = 'ID_FORMA_PAGO' + DataBinding.DataSource = DADataSource + Properties.KeyFieldNames = 'ID' + Properties.ListColumns = < + item + FieldName = 'REFERENCIA' + end> + Properties.ListOptions.GridLines = glNone + Properties.ListOptions.ShowHeader = False + Properties.ListOptions.SyncMode = True + Properties.ListSource = dsFormaPago + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 2 + Width = 195 + end + object bFormasPago: TButton + Left = 312 + Top = 82 + Width = 132 + Height = 21 + Caption = 'Ver las formas de pago...' + TabOrder = 3 + OnClick = bFormasPagoClick + end + object edtFechaEnvio: TcxDBDateEdit + Left = 589 + Top = 265 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_ENVIO' + DataBinding.DataSource = DADataSource + Properties.ImmediatePost = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 9 + Width = 344 + end + object eReferenciaPedidoCli: TcxTextEdit + Left = 121 + Top = 109 + Anchors = [akLeft, akTop, akRight] + Enabled = False + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 4 + Width = 195 + end + object bVerPedidoCliente: TButton + Left = 312 + Top = 109 + Width = 132 + Height = 23 + Action = actVerPedidoCli + TabOrder = 5 + end + inline frViewObraReserva1: TfrViewObraReserva + Left = 22 + Top = 168 + Width = 422 + Height = 97 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 6 + ReadOnly = False + ExplicitLeft = 22 + ExplicitTop = 168 + ExplicitWidth = 422 + ExplicitHeight = 97 + inherited dxLayoutControl1: TdxLayoutControl + Width = 422 + Height = 97 + ExplicitWidth = 432 + ExplicitHeight = 72 + DesignSize = ( + 422 + 97) + inherited cbObraReserva: TcxComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + end + inherited PngImageList: TPngImageList + Left = 224 + Top = 24 + end + inherited ActionList1: TActionList + Left = 256 + Top = 24 + end + end + inline frViewDatosYSeleccionProveedorPedido1: TfrViewDatosYSeleccionProveedorPedido + Left = 474 + Top = 28 + Width = 480 + Height = 201 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 8 + ReadOnly = False + ExplicitLeft = 474 + ExplicitTop = 28 + ExplicitWidth = 480 + ExplicitHeight = 201 + inherited dxLayoutControl1: TdxLayoutControl + Width = 480 + Height = 201 + ExplicitWidth = 480 + ExplicitHeight = 201 + inherited edtlNombre: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 224 + Width = 224 + end + inherited edtCODIGO_ASIGNADO: TcxDBTextEdit + Left = 356 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 356 + end + inherited edtPersonaContacto: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 283 + Width = 283 + end + inherited edtDireccion: TcxMemo + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 121 + Width = 121 + end + inherited Button4: TButton + Left = 436 + ExplicitLeft = 436 + end + inherited Button5: TButton + Left = 436 + ExplicitLeft = 436 + end + inherited Button3: TBitBtn + Left = 261 + ExplicitLeft = 261 + end + end + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Group6: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + AutoAligns = [] + AlignHorz = ahClient + Caption = 'Datos del pedido' + object dxLayoutControl1Item3: TdxLayoutItem + Caption = 'Referencia:' + Control = eReferencia + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item2: TdxLayoutItem + Caption = 'Fecha del pedido:' + Control = edtFechaPedido + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group4: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group9: TdxLayoutGroup + ShowCaption = False + Visible = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item9: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Forma de pago' + Control = cbFormaPago + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item10: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + ShowCaption = False + Control = bFormasPago + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group10: TdxLayoutGroup + ShowCaption = False + Visible = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item11: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Ref. pedido cliente:' + Control = eReferenciaPedidoCli + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item12: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + ShowCaption = False + Control = bVerPedidoCliente + ControlOptions.ShowBorder = False + end + end + end + end + object dxLayoutControl1Group11: TdxLayoutGroup + AutoAligns = [aaHorizontal] + Caption = 'Obra relacionada' + object dxLayoutControl1Item13: TdxLayoutItem + Caption = 'Reservar para obra:' + ShowCaption = False + Control = frViewObraReserva1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group8: TdxLayoutGroup + AutoAligns = [] + AlignHorz = ahClient + AlignVert = avClient + Caption = 'Datos de la entrega' + object dxLayoutControl1Item8: TdxLayoutItem + AutoAligns = [aaHorizontal] + AlignVert = avClient + Control = frViewDireccionEntregaPedidoProv1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Group3: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group2: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Datos del proveedor' + object dxLayoutControl1Item1: TdxLayoutItem + Caption = 'New Item' + ShowCaption = False + Control = frViewDatosYSeleccionProveedorPedido1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group5: TdxLayoutGroup + AutoAligns = [aaHorizontal] + Caption = 'Situaci'#243'n del pedido' + object dxLayoutControl1Item7: TdxLayoutItem + Caption = 'Enviado al prov. el d'#237'a:' + Control = edtFechaEnvio + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item4: TdxLayoutItem + Caption = 'Confirmado el d'#237'a:' + Control = edtFechaConfirmacion + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item5: TdxLayoutItem + Caption = 'Entrega prevista:' + Control = edtFechaEntrega + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group7: TdxLayoutGroup + AutoAligns = [aaHorizontal] + AlignVert = avClient + Caption = 'Observaciones' + object dxLayoutControl1Item6: TdxLayoutItem + AutoAligns = [aaHorizontal] + AlignVert = avClient + Control = memObservaciones + ControlOptions.ShowBorder = False + end + end + end + end + end + object DADataSource: TDADataSource + Left = 24 + Top = 8 + end + object dsFormaPago: TDADataSource + Left = 56 + Top = 8 + end + object ActionList1: TActionList + Left = 88 + Top = 8 + object actVerPedidoCli: TAction + Caption = 'Ver pedido de cliente...' + OnExecute = actVerPedidoCliExecute + OnUpdate = actVerPedidoCliUpdate + end + end +end diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.pas b/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.pas new file mode 100644 index 0000000..1276cde --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.pas @@ -0,0 +1,278 @@ +unit uViewPedidoProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, uBizPedidosProveedor, DB, uDADataTable, uCustomView, + AppEvnts, StdCtrls, Mask, DBCtrls, + + uViewObservaciones, + cxGraphics, cxDropDownEdit, cxImageComboBox, cxDBEdit, cxContainer, cxEdit, + cxTextEdit, cxMaskEdit, cxCalendar, dxLayoutControl, cxControls, cxMemo, + uViewDireccionEntregaPedidoProv, cxLookupEdit, cxDBLookupEdit, +// uBizPedidosCliente, uPedidosClienteController, + cxDBLookupComboBox, uFormasPagoController, ActnList, uDAInterfaces, uBizFormasPago, + uViewProveedorPedido, uViewObraReserva, uObrasController, + uPedidosProveedorController, uViewDatosYSeleccionProveedorPedido; + +type + IViewPedidoProveedor = interface(IViewBase) + ['{6FF2FC16-307F-4B8B-A46A-3FEA270ED568}'] + function GetPedido: IBizPedidoProveedor; + procedure SetPedido(const Value: IBizPedidoProveedor); + property Pedido: IBizPedidoProveedor read GetPedido write SetPedido; + + function GetController : IPedidosProveedorController; + procedure SetController (const Value : IPedidosProveedorController); + property Controller : IPedidosProveedorController read GetController write SetController; + + function GetViewProveedorPedido: IViewDatosYSeleccionProveedorPedido; + property ViewProveedorPedido: IViewDatosYSeleccionProveedorPedido read GetViewProveedorPedido; + end; + + TfrViewPedidoProveedor = class(TfrViewBase, IViewPedidoProveedor) + DADataSource: TDADataSource; + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Item2: TdxLayoutItem; + edtFechaPedido: TcxDBDateEdit; + dxLayoutControl1Item4: TdxLayoutItem; + edtFechaConfirmacion: TcxDBDateEdit; + dxLayoutControl1Item5: TdxLayoutItem; + edtFechaEntrega: TcxDBDateEdit; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Group2: TdxLayoutGroup; + dxLayoutControl1Item6: TdxLayoutItem; + memObservaciones: TcxDBMemo; + dxLayoutControl1Item3: TdxLayoutItem; + eReferencia: TcxDBTextEdit; + dxLayoutControl1Group5: TdxLayoutGroup; + dxLayoutControl1Group6: TdxLayoutGroup; + dxLayoutControl1Group7: TdxLayoutGroup; + dxLayoutControl1Group8: TdxLayoutGroup; + dxLayoutControl1Group3: TdxLayoutGroup; + dxLayoutControl1Item8: TdxLayoutItem; + frViewDireccionEntregaPedidoProv1: TfrViewDireccionEntregaPedidoProv; + dxLayoutControl1Item9: TdxLayoutItem; + cbFormaPago: TcxDBLookupComboBox; + dxLayoutControl1Item10: TdxLayoutItem; + bFormasPago: TButton; + dxLayoutControl1Group4: TdxLayoutGroup; + dsFormaPago: TDADataSource; + dxLayoutControl1Item7: TdxLayoutItem; + edtFechaEnvio: TcxDBDateEdit; + dxLayoutControl1Item11: TdxLayoutItem; + eReferenciaPedidoCli: TcxTextEdit; + dxLayoutControl1Item12: TdxLayoutItem; + bVerPedidoCliente: TButton; + dxLayoutControl1Group9: TdxLayoutGroup; + dxLayoutControl1Group10: TdxLayoutGroup; + ActionList1: TActionList; + actVerPedidoCli: TAction; + dxLayoutControl1Item13: TdxLayoutItem; + frViewObraReserva1: TfrViewObraReserva; + dxLayoutControl1Group11: TdxLayoutGroup; + frViewDatosYSeleccionProveedorPedido1: TfrViewDatosYSeleccionProveedorPedido; + dxLayoutControl1Item1: TdxLayoutItem; + procedure CustomViewCreate(Sender: TObject); + procedure CustomViewDestroy(Sender: TObject); + procedure bFormasPagoClick(Sender: TObject); + procedure actVerPedidoCliExecute(Sender: TObject); + procedure actVerPedidoCliUpdate(Sender: TObject); + procedure frViewProveedorPedidoButton1Click(Sender: TObject); + procedure frViewProveedorPedidoButton2Click(Sender: TObject); + procedure ObraReservaEditValueChanged(Sender: TObject); + procedure CustomViewShow(Sender: TObject); + protected + FPedido : IBizPedidoProveedor; + FController : IPedidosProveedorController; + FViewProveedorPedido : IViewDatosYSeleccionProveedorPedido; + FFormasPago : IBizFormaPago; + FFormasPagoController : IFormasPagoController; + FObras: TStringList; + FObrasController : IObrasController; +// FPedidoCliAsociado : IBizPedidoCliente; +// FPedidoCliController : IPedidosClienteController; + + function GetPedido: IBizPedidoProveedor; + procedure SetPedido(const Value: IBizPedidoProveedor); virtual; + function GetController : IPedidosProveedorController; + procedure SetController (const Value : IPedidosProveedorController); + function GetViewProveedorPedido: IViewDatosYSeleccionProveedorPedido; + public + property Pedido: IBizPedidoProveedor read GetPedido write SetPedido; + property Controller : IPedidosProveedorController read GetController write SetController; + property ViewProveedorPedido: IViewDatosYSeleccionProveedorPedido read GetViewProveedorPedido; + end; + +implementation +{$R *.dfm} + +uses uStringsUtils; + + +{ TfrViewPedidoProveedor } + +procedure TfrViewPedidoProveedor.actVerPedidoCliExecute(Sender: TObject); +begin + inherited; +// FPedidoCliController.Ver(FPedidoCliAsociado); +end; + +procedure TfrViewPedidoProveedor.actVerPedidoCliUpdate(Sender: TObject); +begin + inherited; +// if (Sender as TAction).Enabled then +// (Sender as TAction).Enabled := Assigned(FPedidoCliAsociado) +end; + +procedure TfrViewPedidoProveedor.bFormasPagoClick(Sender: TObject); +begin + inherited; + if Assigned(FFormasPago) then + FFormasPagoController.VerTodos(FFormasPago); +end; + +procedure TfrViewPedidoProveedor.CustomViewCreate(Sender: TObject); +begin + inherited; + FFormasPago := Nil; + FFormasPagoController := TFormasPagoController.Create; + FObrasController := TObrasController.Create; + FObras := FObrasController.DarListaObras; + FViewProveedorPedido := frViewDatosYSeleccionProveedorPedido1; + eReferencia.Enabled := False; +end; + +procedure TfrViewPedidoProveedor.CustomViewDestroy(Sender: TObject); +begin + FViewProveedorPedido := Nil; + FController := Nil; + FFormasPago := Nil; + FFormasPagoController := NIL; + FObrasController := Nil; + FreeAndNil(FObras) +end; + +procedure TfrViewPedidoProveedor.CustomViewShow(Sender: TObject); +begin + inherited; + if not FPedido.ID_OBRAISNull then + begin + frViewObraReserva1.ActivarObra(FPedido.ID_OBRA); + frViewDireccionEntregaPedidoProv1.lblObra.Caption := FPedido.NOMBRE_OBRA; + end; + + frViewObraReserva1.cbObraReserva.Properties.OnEditValueChanged := ObraReservaEditValueChanged; +end; + +procedure TfrViewPedidoProveedor.ObraReservaEditValueChanged(Sender: TObject); +var + IDObra: String; + +begin + inherited; + + IDObra := frViewObraReserva1.DarIDObraSeleccionada; + Controller.AsignarIDObra(FPedido, IDObra); + + if EsCadenaVacia(IDObra) then + begin + frViewDireccionEntregaPedidoProv1.actListaObras.Enabled := False; + frViewDireccionEntregaPedidoProv1.lblObra.Caption := frViewObraReserva1.cbObraReserva.Text; + frViewDireccionEntregaPedidoProv1.actListaAlmacenes.Execute + end + else + begin + frViewDireccionEntregaPedidoProv1.actListaObras.Enabled := true; + frViewDireccionEntregaPedidoProv1.actListaObras.Execute; + frViewDireccionEntregaPedidoProv1.lblObra.Caption := frViewObraReserva1.cbObraReserva.Text; + end; +end; + +procedure TfrViewPedidoProveedor.frViewProveedorPedidoButton1Click(Sender: TObject); +begin + if Assigned(Pedido) and Assigned(Pedido.Proveedor) and + Assigned (Pedido.Detalles) and (Pedido.Detalles.RecordCount > 0) then + begin + if (Application.MessageBox('Si cambia de proveedor, se eliminarn todos sus artculos del pedido actual, Desea continuar?', 'Atencin', MB_YESNO) = IDNO) then + Exit; + end; + FViewProveedorPedido.ElegirProveedor; +end; + +procedure TfrViewPedidoProveedor.frViewProveedorPedidoButton2Click(Sender: TObject); +begin + if Assigned(Pedido) and Assigned(Pedido.Proveedor) and + Assigned (Pedido.Detalles) and (Pedido.Detalles.RecordCount > 0) then + begin + if (Application.MessageBox('Si cambia de proveedor, se eliminarn todos sus artculos del pedido actual, Desea continuar?', 'Atencin', MB_YESNO) = IDNO) then + Exit; + end; + FViewProveedorPedido.AnadirNuevoProveedor; +end; + +function TfrViewPedidoProveedor.GetController: IPedidosProveedorController; +begin + Result := FController; +end; + +function TfrViewPedidoProveedor.GetPedido: IBizPedidoProveedor; +begin + Result := FPedido; +end; + +function TfrViewPedidoProveedor.GetViewProveedorPedido: IViewDatosYSeleccionProveedorPedido; +begin + Result := FViewProveedorPedido; +end; + +procedure TfrViewPedidoProveedor.SetController(const Value: IPedidosProveedorController); +begin + FController := Value; +end; + +procedure TfrViewPedidoProveedor.SetPedido(const Value: IBizPedidoProveedor); +begin + FPedido := Value; + + if Assigned(FPedido) then + begin + DADataSource.DataTable := FPedido.DataTable; + + FFormasPago := FFormasPagoController.BuscarTodos; + dsFormaPago.DataTable := FFormasPago.DataTable; + dsFormaPago.DataTable.Active := True; + +// FPedidoCliAsociado := NIL; +// if (FPedido.ID_PEDIDO_CLIENTE > 0) then +// begin +// FPedidoCliAsociado := FPedidoCliController.Buscar(FPedido.ID_PEDIDO_CLIENTE); +// if Assigned(FPedidoCliAsociado) then +// begin +// FPedidoCliAsociado.DataTable.Active := True; +// eReferenciaPedidoCli.Text := FPedidoCliAsociado.REFERENCIA +// end +// else +// eReferenciaPedidoCli.Text := ''; +// end +// else +// eReferenciaPedidoCli.Text := 'No hay pedido asociado'; + + FViewProveedorPedido.Pedido := FPedido; + frViewDireccionEntregaPedidoProv1.PedidoProveedor := FPedido; + + frViewObraReserva1.Obras := FObras; + frViewObraReserva1.ObrasController := FObrasController; + end + else begin + DADataSource.DataTable := NIL; + dsFormaPago.DataTable := NIL; +// FPedidoCliAsociado := NIL; + FViewProveedorPedido.Pedido := NIL; + end; +end; + + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewPedidosProveedor.dcu b/Source/Modulos/Pedidos a proveedor/Views/uViewPedidosProveedor.dcu new file mode 100644 index 0000000..bfb30c7 Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Views/uViewPedidosProveedor.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewPedidosProveedor.dfm b/Source/Modulos/Pedidos a proveedor/Views/uViewPedidosProveedor.dfm new file mode 100644 index 0000000..7fe251a --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewPedidosProveedor.dfm @@ -0,0 +1,440 @@ +inherited frViewPedidosProveedor: TfrViewPedidosProveedor + Width = 839 + Height = 590 + ExplicitWidth = 839 + ExplicitHeight = 590 + inherited cxGrid: TcxGrid + Width = 839 + Height = 462 + RootLevelOptions.DetailTabsPosition = dtpTop + OnActiveTabChanged = cxGridActiveTabChanged + ExplicitWidth = 839 + ExplicitHeight = 462 + inherited cxGridView: TcxGridDBTableView + DataController.KeyFieldNames = 'ID' + DataController.Options = [dcoAnsiSort, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText, dcoGroupsAlwaysExpanded] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Position = spFooter + Column = cxGridViewIMPORTE_TOTAL + end> + DataController.Summary.FooterSummaryItems = < + item + Format = '0 pedidos' + Kind = skCount + Column = cxGridViewREFERENCIA + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = cxGridViewIMPORTE_TOTAL + end> + DataController.OnCompare = cxGridViewDataControllerCompare + OptionsView.GroupFooters = gfAlwaysVisible + inherited cxGridViewICONO: TcxGridDBColumn + MinWidth = 30 + Width = 30 + end + object cxGridViewINCIDENCIASACTIVAS: TcxGridDBColumn + Caption = 'Incidencias' + DataBinding.FieldName = 'INCIDENCIAS_ACTIVAS' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Images = GridPNGImageList + Properties.Items = < + item + Description = 'Sin incidencias' + Value = 0 + end + item + Description = 'Con incidencias' + ImageIndex = 2 + Tag = 1 + Value = 1 + end> + Properties.ShowDescriptions = False + OnGetCellHint = cxGridViewINCIDENCIASACTIVASGetCellHint + BestFitMaxWidth = 22 + MinWidth = 30 + Options.HorzSizing = False + Width = 30 + end + object cxGridViewREFERENCIA: TcxGridDBColumn + Caption = 'Referencia' + DataBinding.FieldName = 'REFERENCIA' + SortIndex = 0 + SortOrder = soDescending + Width = 89 + end + object cxGridViewSITUACION: TcxGridDBColumn + Caption = 'Situaci'#243'n' + DataBinding.FieldName = 'SITUACION' + Width = 95 + end + object cxGridViewFECHA_PEDIDO: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_PEDIDO' + Width = 45 + end + object cxGridViewFECHA_ENVIO: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_ENVIO' + Width = 44 + end + object cxGridViewNOMBRE: TcxGridDBColumn + Caption = 'Proveedor' + DataBinding.FieldName = 'NOMBRE' + Width = 128 + end + object cxGridViewFECHA_CONFIRMACION: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_CONFIRMACION' + Width = 46 + end + object cxGridViewFECHA_ENTREGA: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_ENTREGA' + Width = 44 + end + object cxGridViewNOMBRE_ALMACEN: TcxGridDBColumn + DataBinding.FieldName = 'NOMBRE_ALMACEN' + Width = 58 + end + object cxGridViewCALLE: TcxGridDBColumn + DataBinding.FieldName = 'CALLE' + Visible = False + end + object cxGridViewPOBLACION: TcxGridDBColumn + DataBinding.FieldName = 'POBLACION' + Visible = False + end + object cxGridViewPROVINCIA: TcxGridDBColumn + DataBinding.FieldName = 'PROVINCIA' + Visible = False + end + object cxGridViewCODIGO_POSTAL: TcxGridDBColumn + DataBinding.FieldName = 'CODIGO_POSTAL' + Visible = False + end + object cxGridViewPERSONA_CONTACTO: TcxGridDBColumn + DataBinding.FieldName = 'PERSONA_CONTACTO' + Visible = False + end + object cxGridViewTELEFONO: TcxGridDBColumn + DataBinding.FieldName = 'TELEFONO' + Visible = False + Width = 65 + end + object cxGridViewNOMBRE_OBRA: TcxGridDBColumn + DataBinding.FieldName = 'NOMBRE_OBRA' + Width = 54 + end + object cxGridViewREF_PED_CLIENTE: TcxGridDBColumn + Caption = 'Ref. pedido cli.' + DataBinding.FieldName = 'REF_PED_CLIENTE' + Visible = False + VisibleForCustomization = False + Width = 65 + end + object cxGridViewIMPORTE_TOTAL: TcxGridDBColumn + Caption = 'Importe total' + DataBinding.FieldName = 'IMPORTE_TOTAL' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + Width = 67 + end + object cxGridViewINCIDENCIAS: TcxGridDBColumn + DataBinding.FieldName = 'INCIDENCIAS' + Visible = False + VisibleForCustomization = False + end + object cxGridViewREF_FACTURA_PROV: TcxGridDBColumn + Caption = 'Ref. factura' + DataBinding.FieldName = 'REF_FACTURA_PROV' + Width = 95 + end + end + object cxGridDBTableView1: TcxGridDBTableView [1] + NavigatorButtons.ConfirmDelete = False + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + end + inherited cxGridLevel: TcxGridLevel + Caption = 'Todos' + end + object cxGridLevel1: TcxGridLevel + Caption = 'Pendientes' + end + object cxGridLevel2: TcxGridLevel + Caption = 'Parcialmente recibidos' + end + object cxGridLevel3: TcxGridLevel + Caption = 'Recibidos' + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 839 + ExplicitWidth = 839 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 839 + inherited dxLayoutControl1: TdxLayoutControl + Width = 839 + ExplicitWidth = 839 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 799 + Width = 799 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 243 + Width = 243 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 271 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 271 + ExplicitWidth = 482 + Width = 482 + end + inherited eLista: TcxComboBox + Left = 673 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 673 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 839 + ExplicitWidth = 839 + inherited tbxBotones: TTBXToolbar + Width = 829 + ExplicitWidth = 829 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 564 + Visible = True + ExplicitTop = 564 + ExplicitWidth = 839 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 839 + ExplicitWidth = 839 + inherited TBXToolbar1: TTBXToolbar + Width = 829 + ExplicitWidth = 829 + object TBXSeparatorItem2: TTBXSeparatorItem + end + object TBXItem3: TTBXItem + Action = actProveedor + end + object TBXSeparatorItem1: TTBXSeparatorItem + end + object TBXItem2: TTBXItem + Action = actAlmacen + end + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + Left = 408 + Top = 168 + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 38673.741107951390000000 + BuiltInReportLink = True + end + end + inherited dxPSEngineController1: TdxPSEngineController + Top = 184 + end + inherited cxStyleRepository1: TcxStyleRepository + Left = 248 + Top = 184 + object cxStylePendientes: TcxStyle + AssignedValues = [svTextColor] + TextColor = clGreen + end + object cxStyleParciales: TcxStyle + AssignedValues = [svTextColor] + TextColor = clBlue + end + object cxStyleRecibidos: TcxStyle + end + end + inherited ActionList1: TActionList + Left = 392 + Top = 440 + object actProveedor: TAction + Caption = 'Proveedor' + OnExecute = actProveedorExecute + OnUpdate = actProveedorUpdate + end + object actAlmacen: TAction + Caption = 'Almac'#233'n' + OnExecute = actAlmacenExecute + OnUpdate = actAlmacenUpdate + end + end + inherited GridPNGImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000434944415478DA63FCFFFF3F + 03258011D900464646ACA601D530126D00BA6298A1B80C21CA0090183639925C + 80CB3B040DC0E69A510306BD010C04005E03C801036F00008D248BE16F9028BA + 0000000049454E44AE426082} + Name = 'Icono_header' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001864944415478DA + 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F + 192CBCB3192EEE99856AC05E4B2B14C5CEC78F81696471AB030719662EDFC530 + 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB001DDAD3B19966D3A84 + DB0098B341E01F50EECF9F7F709BCFB93B33686EDCCEB06ADB11FC06C05C627B + E830C3613B5BB8CD97BDDD1954D66E6158BFEB387E0360367FBA7990E1C5C218 + 7C3E72C130C0F1D85186FD56D66059719B070CAA2D350CECEC59183A7FFE9CC6 + 303BB68501C30090B3617E7EDAACCCA0D3FD0CAC180EBE7F6760F8F19D61FA0E + 4306966DA9080372623D190EDAD8A0D80272018A0120CD1FDE81E9E9279D510D + 488F7463F805B4F9CF6F50A8FF61B8EAEB816A004CF37B20FEF19361FACD6054 + 0312439DE19A415EB815E88D30E0432F42F3870F1017BC4A45352036C011AE19 + 140320D7FC9E6A0031E041354233D80540037E95A31A10E163CBB062CB61D438 + BA9A0A8E85E9CBE5B1C6218A01A084810EB478DF3058B39EC099081CE4195C00 + 45135E518E0B4E380000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000027F4944415478DA + 95926D48535118C79FDB268AA54485D62C4C50962CDC87F5416D9AB966CEA440 + A4E84D828C304C89B217DB87D00F65252B69422F9A4161D6A0507C6D595A6450 + 83CC55787129CE19949B6DD3DDEDDE9D73BABB561835D3030FCF39E739FFDFF3 + C2A1608EF5A1467A415632783A589C100254B0A0EB5A623A9392DCD365B89DBE + FF3CBC5830C0DD9DD726922B34EFDAEB5B53F75972170470D4C8E461DB724D78 + 091139AC66F4FC5E9BA24007FDF3064C75E6DE7DE94BD8DBDC4A834615014B5D + BD8D6985E37BE6056074D2B544934357DCFA1CD2FBEA1B6C908742E96EAFBFFB + 7E5FE2A15A18FA2FC0F978B35E9CBAE94895EE2DB474D82053B918CA4BA2A1BF + D37823B3D879784E80BB36298ADA98368C97937043F3185CACA1E164F12AD89E + 1509132316E659BB39A14807B6A000E74365A5282D43EB67BFC020FD1D76159A + C0502785D8984580B8691830BEA9561F634EFC1340AAA4111E55C60817859611 + E4038EF34256FE6BE86C5A0F807D4010035F2DA3EE1EA32DEEA81EEC7F0126EF + 288E87A8D597389F8DC28280858ACB9FE06C690CBFF702E60DB153E463EF70C5 + D632EEDC1F00FA6A7CA824397D888B46AB671EF300CC826DDC092B5710411CB0 + 406C62D86EEFEA72C69DAA07F76FC0645DD241B15A7D93E3C6A85FE2471D5E68 + 6872C1CE1C2FE46BF0AC2A1842F7B9CBB2CFF8AB05007900A26949819995E075 + 184D43A0FF400B95575CD0FED4010A9907AAB5E1BC9801EC9FA9C261656D0346 + 7FFC8106E2A55C7A591EA551197CC84A1121BB4FC8346AF540CB1307A8950462 + 25E8670B8CD01E6611B198C445D9E5DC75EABD7E4DA32B322C05630F3F15BE54 + 82788F788FF9E9FB679D9110C781FBC077B753433BB478CB0F7C3B8CF0987D51 + CF0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + Bitmap = {} + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + Left = 288 + Top = 168 + end +end diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewPedidosProveedor.pas b/Source/Modulos/Pedidos a proveedor/Views/uViewPedidosProveedor.pas new file mode 100644 index 0000000..335d49d --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewPedidosProveedor.pas @@ -0,0 +1,254 @@ +unit uViewPedidosProveedor; + +interface + +uses + Types, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, + cxData, cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl, dxPSEngn, + dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, cxImageComboBox, ImgList, Controls, PngImageList, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + cxGridCustomPopupMenu, cxGridPopupMenu, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, + uDADataTable, cxGridLevel, cxClasses, cxControls, cxGridCustomView, Classes, + cxGrid, uBizPedidosProveedor, cxCurrencyEdit, Forms, uViewFiltroBase, ActnList, + TB2Item, TBX, TB2Toolbar, TBXDkPanels, TB2Dock, dxPgsDlg, uDAInterfaces, + uCustomView, uViewBase; + +type + IViewPedidosProveedor = interface(IViewGrid) + ['{DF3B0989-5449-4F3A-8EF3-69CE35A62AAA}'] + function GetPedidos: IBizPedidoProveedor; + procedure SetPedidos(const Value: IBizPedidoProveedor); + property Pedidos: IBizPedidoProveedor read GetPedidos write SetPedidos; + end; + + TfrViewPedidosProveedor = class(TfrViewGrid, IViewPedidosProveedor) + cxGridDBTableView1: TcxGridDBTableView; + cxGridLevel1: TcxGridLevel; + cxGridLevel2: TcxGridLevel; + cxGridLevel3: TcxGridLevel; + cxGridViewREFERENCIA: TcxGridDBColumn; + cxGridViewINCIDENCIASACTIVAS: TcxGridDBColumn; + cxGridViewNOMBRE: TcxGridDBColumn; + cxGridViewFECHA_PEDIDO: TcxGridDBColumn; + cxGridViewFECHA_CONFIRMACION: TcxGridDBColumn; + cxGridViewFECHA_ENTREGA: TcxGridDBColumn; + cxGridViewCALLE: TcxGridDBColumn; + cxGridViewPOBLACION: TcxGridDBColumn; + cxGridViewPROVINCIA: TcxGridDBColumn; + cxGridViewCODIGO_POSTAL: TcxGridDBColumn; + cxGridViewPERSONA_CONTACTO: TcxGridDBColumn; + cxGridViewTELEFONO: TcxGridDBColumn; + cxGridViewFECHA_ENVIO: TcxGridDBColumn; + cxGridViewNOMBRE_ALMACEN: TcxGridDBColumn; + cxGridViewREF_PED_CLIENTE: TcxGridDBColumn; + cxGridViewSITUACION: TcxGridDBColumn; + cxStylePendientes: TcxStyle; + cxStyleParciales: TcxStyle; + cxStyleRecibidos: TcxStyle; + cxGridViewIMPORTE_TOTAL: TcxGridDBColumn; + actProveedor: TAction; + actAlmacen: TAction; + TBXItem2: TTBXItem; + TBXSeparatorItem1: TTBXSeparatorItem; + TBXItem3: TTBXItem; + TBXSeparatorItem2: TTBXSeparatorItem; + cxGridViewINCIDENCIAS: TcxGridDBColumn; + cxGridViewREF_FACTURA_PROV: TcxGridDBColumn; + cxGridViewNOMBRE_OBRA: TcxGridDBColumn; + procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: + TcxGridLevel); + procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out + AStyle: TcxStyle); + procedure actProveedorExecute(Sender: TObject); + procedure actProveedorUpdate(Sender: TObject); + procedure actAlmacenExecute(Sender: TObject); + procedure actAlmacenUpdate(Sender: TObject); + procedure cxGridViewINCIDENCIASACTIVASGetCellHint( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + ACellViewInfo: TcxGridTableDataCellViewInfo; const AMousePos: TPoint; + var AHintText: TCaption; var AIsHintMultiLine: Boolean; + var AHintTextRect: TRect); + procedure cxGridViewDataControllerCompare( + ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2, + AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer); + + private + //Filtros relativos a la vista + procedure AnadirFiltroSituaciones; + procedure AnadirFiltroFechas; + + protected + FPedidos: IBizPedidoProveedor; + function GetPedidos: IBizPedidoProveedor; + procedure SetPedidos(const Value: IBizPedidoProveedor); + public + procedure AnadirOtrosFiltros; override; + property Pedidos: IBizPedidoProveedor read GetPedidos write SetPedidos; + end; + +implementation + +uses + SysUtils, Variants, Windows, + uDataModulePedidosProveedor, schPedidosProveedorClient_Intf, + uReferenciasUtils, cxVariants; + +{$R *.dfm} + +procedure TfrViewPedidosProveedor.actAlmacenExecute(Sender: TObject); +begin + if (cxGridViewNOMBRE_ALMACEN.GroupIndex < 0) then + begin + cxGridViewNOMBRE_ALMACEN.GroupIndex := cxGridView.GroupedColumnCount; + cxGridViewNOMBRE_ALMACEN.Visible := False; + end + else + begin + cxGridViewNOMBRE_ALMACEN.GroupIndex := -1; + cxGridViewNOMBRE_ALMACEN.Visible := True; + end; +end; + +procedure TfrViewPedidosProveedor.actAlmacenUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Checked := not (cxGridViewNOMBRE_ALMACEN.GroupIndex < 0); +end; + +procedure TfrViewPedidosProveedor.actProveedorExecute(Sender: TObject); +begin + if (cxGridViewNOMBRE.GroupIndex < 0) then + begin + cxGridViewNOMBRE.GroupIndex := cxGridView.GroupedColumnCount; + cxGridViewNOMBRE.Visible := False; + end + else + begin + cxGridViewNOMBRE.GroupIndex := -1; + cxGridViewNOMBRE.Visible := True; + end; +end; + +procedure TfrViewPedidosProveedor.actProveedorUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Checked := not (cxGridViewNOMBRE.GroupIndex < 0); +end; + +procedure TfrViewPedidosProveedor.AnadirFiltroFechas; +var + Columna: TcxGridDBColumn; + Fecha1, Fecha2: Variant; + FFiltro : TcxFilterCriteriaItemList; +begin + Fecha1 := frViewFiltroBase1.edtFechaIniFiltro.EditValue; + Fecha2 := frViewFiltroBase1.edtFechaFinFiltro.EditValue; + + if not VarIsNull(Fecha1) + and not VarIsNull(Fecha2) then + begin + cxGridView.DataController.Filter.Options := [fcoCaseInsensitive, fcoSoftCompare]; + FFiltro := AddFilterGrid(fboAnd); + + Columna := (cxGridView as TcxGridDBTableView).GetColumnByFieldName('FECHA_PEDIDO'); + FFiltro.AddItem(Columna, foBetween, varArrayOf([Fecha1, Fecha2]), VarToStr(Fecha1) + ' and ' + VarToStr(Fecha2)); + end; +end; + +procedure TfrViewPedidosProveedor.AnadirFiltroSituaciones; +var + FFiltro : TcxFilterCriteriaItemList; +begin + FFiltro := AddFilterGrid(fboAnd); + + case cxGrid.ActiveLevel.Index of + 1 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PEDIDO_PENDIENTE, SITUACION_PEDIDO_PENDIENTE); + 2 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PEDIDO_PARCIAL, SITUACION_PEDIDO_PARCIAL); + 3 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PEDIDO_RECIBIDO, SITUACION_PEDIDO_RECIBIDO); + end; +end; + +procedure TfrViewPedidosProveedor.AnadirOtrosFiltros; +begin + inherited; + + AnadirFiltroSituaciones; + AnadirFiltroFechas; + + //Finalmente activamos el filtro si tenemos algo + if cxGridView.DataController.Filter.IsEmpty + then cxGridView.DataController.Filter.Active := False + else cxGridView.DataController.Filter.Active := True; + cxGrid.ActiveLevel.GridView := cxGridView; +end; + +procedure TfrViewPedidosProveedor.cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel); +begin + inherited; + RefrescarFiltro; +end; + +procedure TfrViewPedidosProveedor.cxGridViewDataControllerCompare( + ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2, + AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer); +begin + inherited; + if ((AItemIndex = cxGridViewREFERENCIA.Index) or + (AItemIndex = cxGridViewREF_PED_CLIENTE.Index)) and + (VarType(V1) = VarType(V2)) and (VarType(V1) = varString) then + Compare := CompararReferencias(V1, V2) + else + Compare := VarCompare(V1, V2); +end; + +procedure TfrViewPedidosProveedor.cxGridViewINCIDENCIASACTIVASGetCellHint( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + ACellViewInfo: TcxGridTableDataCellViewInfo; const AMousePos: TPoint; + var AHintText: TCaption; var AIsHintMultiLine: Boolean; + var AHintTextRect: TRect); +begin + inherited; + if (ARecord.DisplayTexts[Sender.Index] <> 'Sin incidencias') then + begin + AIsHintMultiLine := True; + AHintText := ARecord.Values[cxGridViewINCIDENCIAS.Index] + end; +end; + +procedure TfrViewPedidosProveedor.cxGridViewStylesGetContentStyle(Sender: + TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: + TcxCustomGridTableItem; out AStyle: TcxStyle); +var + IndiceCol: Integer; + ASituacion: string; +begin + inherited; + if Assigned(ARecord) then + begin + IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_PedidosProveedorSITUACION).Index; + ASituacion := UPPERCASE(VarToStr(ARecord.DisplayTexts[IndiceCol])); + + if (ASituacion = SITUACION_PEDIDO_PENDIENTE) then + AStyle.TextColor := cxStylePendientes.TextColor + else if (ASituacion = SITUACION_PEDIDO_PARCIAL) then + AStyle.TextColor := cxStyleParciales.TextColor + else if (ASituacion = SITUACION_PEDIDO_RECIBIDO) then + AStyle.TextColor := cxStyleRecibidos.TextColor; + end; +end; + +function TfrViewPedidosProveedor.GetPedidos: IBizPedidoProveedor; +begin + Result := FPedidos; +end; + +procedure TfrViewPedidosProveedor.SetPedidos(const Value: IBizPedidoProveedor); +begin + FPedidos := Value; + if Assigned(FPedidos) then + dsDataSource.DataTable := FPedidos.DataTable; +end; + +end. diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewProveedorPedido.dcu b/Source/Modulos/Pedidos a proveedor/Views/uViewProveedorPedido.dcu new file mode 100644 index 0000000..868d8ec Binary files /dev/null and b/Source/Modulos/Pedidos a proveedor/Views/uViewProveedorPedido.dcu differ diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewProveedorPedido.dfm b/Source/Modulos/Pedidos a proveedor/Views/uViewProveedorPedido.dfm new file mode 100644 index 0000000..370e08b --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewProveedorPedido.dfm @@ -0,0 +1,219 @@ +inherited frViewProveedorPedido: TfrViewProveedorPedido + Width = 473 + Height = 287 + ExplicitWidth = 473 + ExplicitHeight = 287 + inherited dxLayoutControl1: TdxLayoutControl + Width = 473 + Height = 273 + ExplicitWidth = 473 + ExplicitHeight = 273 + DesignSize = ( + 473 + 273) + inherited edtlNombre: TcxDBTextEdit + Left = 118 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 118 + end + inherited edtNIFCIF: TcxDBTextEdit + Left = 118 + Top = 153 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 7 + ExplicitLeft = 118 + ExplicitTop = 153 + end + inherited edtCalle: TcxDBTextEdit + Left = 118 + Top = 180 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 8 + ExplicitLeft = 118 + ExplicitTop = 180 + end + inherited edtPoblacion: TcxDBTextEdit + Left = 118 + Top = 207 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 9 + ExplicitLeft = 118 + ExplicitTop = 207 + end + inherited edtProvincia: TcxDBTextEdit + Left = 118 + Top = 234 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 11 + ExplicitLeft = 118 + ExplicitTop = 234 + end + inherited edtCodigoPostal: TcxDBTextEdit + Left = 381 + Top = 207 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 10 + ExplicitLeft = 381 + ExplicitTop = 207 + end + inherited Button3: TBitBtn + Left = 265 + Top = 122 + TabOrder = 6 + ExplicitLeft = 265 + ExplicitTop = 122 + end + object edtPersonaContacto: TcxDBTextEdit [9] + Left = 118 + Top = 95 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'PERSONA_CONTACTO' + DataBinding.DataSource = DADataSource + Enabled = False + ParentFont = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 5 + Height = 21 + Width = 585 + end + object edtReferenciaAsignada: TcxDBTextEdit [10] + Left = 342 + Top = 68 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'CODIGO_ASIGNADO' + DataBinding.DataSource = DADataSource + Enabled = False + ParentFont = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 4 + Height = 21 + Width = 121 + end + object edtFax: TcxDBTextEdit [11] + Left = 118 + Top = 68 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'FAX' + DataBinding.DataSource = DADataSource + Enabled = False + ParentFont = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 3 + Height = 21 + Width = 169 + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + object dxLayoutControl1Group4: TdxLayoutGroup [2] + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item13: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'N'#250'mero de fax:' + Control = edtFax + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item11: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'C'#243'd. cliente:' + Control = edtReferenciaAsignada + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item10: TdxLayoutItem [3] + Caption = 'Persona de contacto:' + Control = edtPersonaContacto + ControlOptions.ShowBorder = False + end + inherited dxLayoutControl1Item9: TdxLayoutItem [4] + end + inherited dxLayoutControl1Item2: TdxLayoutItem [5] + Visible = False + end + inherited dxLayoutControl1Item3: TdxLayoutItem [6] + Visible = False + end + inherited dxLayoutControl1Group2: TdxLayoutGroup [7] + Visible = False + end + inherited dxLayoutControl1Item5: TdxLayoutItem [8] + Visible = False + end + end + end + inherited DADataSource: TDADataSource + Left = 288 + Top = 8 + end + inherited ActionList1: TActionList + Left = 320 + Top = 8 + end + inherited PngImageList: TPngImageList + Left = 352 + Top = 8 + end +end diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewProveedorPedido.pas b/Source/Modulos/Pedidos a proveedor/Views/uViewProveedorPedido.pas new file mode 100644 index 0000000..8a27fd9 --- /dev/null +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewProveedorPedido.pas @@ -0,0 +1,31 @@ +unit uViewProveedorPedido; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewDatosYSeleccionProveedor, ImgList, PngImageList, ActnList, DB, + uDAInterfaces, uDADataTable, dxLayoutControl, StdCtrls, Buttons, cxContainer, + cxEdit, cxTextEdit, cxDBEdit, cxControls; + +type + TfrViewProveedorPedido = class(TfrViewDatosYSeleccionProveedor) + dxLayoutControl1Item10: TdxLayoutItem; + edtPersonaContacto: TcxDBTextEdit; + dxLayoutControl1Item11: TdxLayoutItem; + edtReferenciaAsignada: TcxDBTextEdit; + dxLayoutControl1Item13: TdxLayoutItem; + edtFax: TcxDBTextEdit; + dxLayoutControl1Group4: TdxLayoutGroup; + private + { Private declarations } + public + { Public declarations } + end; + + +implementation + +{$R *.dfm} + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Controller/PresupuestosCliente_controller.dcu b/Source/Modulos/Presupuestos de cliente/Controller/PresupuestosCliente_controller.dcu new file mode 100644 index 0000000..9acc308 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Controller/PresupuestosCliente_controller.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Controller/PresupuestosCliente_controller.dpk b/Source/Modulos/Presupuestos de cliente/Controller/PresupuestosCliente_controller.dpk new file mode 100644 index 0000000..25e2249 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Controller/PresupuestosCliente_controller.dpk differ diff --git a/Source/Modulos/Presupuestos de cliente/Controller/PresupuestosCliente_controller.dproj b/Source/Modulos/Presupuestos de cliente/Controller/PresupuestosCliente_controller.dproj new file mode 100644 index 0000000..0143b92 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Controller/PresupuestosCliente_controller.dproj @@ -0,0 +1,554 @@ + + + + {7ed85635-c723-4c0b-bf1d-f719e0ea33ad} + PresupuestosCliente_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\PresupuestosCliente_controller.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0PresupuestosCliente_controller.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Presupuestos de cliente/Controller/PresupuestosCliente_controller.drc b/Source/Modulos/Presupuestos de cliente/Controller/PresupuestosCliente_controller.drc new file mode 100644 index 0000000..9f8d5aa --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Controller/PresupuestosCliente_controller.drc @@ -0,0 +1,16 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Presupuestos de cliente\Controller\PresupuestosCliente_controller.res */ +/* c:\temp\dtf19B.tmp */ diff --git a/Source/Modulos/Presupuestos de cliente/Controller/PresupuestosCliente_controller.rc b/Source/Modulos/Presupuestos de cliente/Controller/PresupuestosCliente_controller.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Controller/PresupuestosCliente_controller.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Presupuestos de cliente/Controller/PresupuestosCliente_controller.res b/Source/Modulos/Presupuestos de cliente/Controller/PresupuestosCliente_controller.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Controller/PresupuestosCliente_controller.res differ diff --git a/Source/Modulos/Presupuestos de cliente/Controller/View/uIDialogListaPresupuestosEnvioEMail.dcu b/Source/Modulos/Presupuestos de cliente/Controller/View/uIDialogListaPresupuestosEnvioEMail.dcu new file mode 100644 index 0000000..d6e0082 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Controller/View/uIDialogListaPresupuestosEnvioEMail.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Controller/View/uIDialogListaPresupuestosEnvioEMail.pas b/Source/Modulos/Presupuestos de cliente/Controller/View/uIDialogListaPresupuestosEnvioEMail.pas new file mode 100644 index 0000000..ff7071b --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Controller/View/uIDialogListaPresupuestosEnvioEMail.pas @@ -0,0 +1,21 @@ +unit uIDialogListaPresupuestosEnvioEMail; + +interface + +uses + uBizPresupuestosCliente, uPresupuestosClienteController; + +type + IDialogListaPresupuestosEnvioEMail = interface + ['{5B086ADA-7877-4469-ACBE-4C8E4F4BF184}'] + function GetPresupuestos: IBizPresupuestoCliente; + procedure SetPresupuestos(const Value: IBizPresupuestoCliente); + property Presupuestos: IBizPresupuestoCliente read GetPresupuestos write SetPresupuestos; + function ShowModal : Integer; + procedure Release; + end; + + +implementation + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorDireccionEntregaPresupuestoCliente.dcu b/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorDireccionEntregaPresupuestoCliente.dcu new file mode 100644 index 0000000..6a66824 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorDireccionEntregaPresupuestoCliente.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorDireccionEntregaPresupuestoCliente.pas b/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorDireccionEntregaPresupuestoCliente.pas new file mode 100644 index 0000000..b954f4d --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorDireccionEntregaPresupuestoCliente.pas @@ -0,0 +1,22 @@ +unit uIEditorDireccionEntregaPresupuestoCliente; + +interface + +uses + uBizPresupuestosCliente; + +type + IEditorDireccionEntregaPresupuestoCliente = interface + ['{9CF49F99-92A6-4E08-B518-EDBB3FBF0FB2}'] + function GetPedido: IBizPresupuestoCliente; + procedure SetPedido(const Value: IBizPresupuestoCliente); + property Pedido: IBizPresupuestoCliente read GetPedido write SetPedido; + + function ShowModal : Integer; + procedure Release; + end; + + +implementation + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorElegirArticulosPresupuestosCliente.dcu b/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorElegirArticulosPresupuestosCliente.dcu new file mode 100644 index 0000000..cebbebb Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorElegirArticulosPresupuestosCliente.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorElegirArticulosPresupuestosCliente.pas b/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorElegirArticulosPresupuestosCliente.pas new file mode 100644 index 0000000..80c78e0 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorElegirArticulosPresupuestosCliente.pas @@ -0,0 +1,16 @@ +unit uIEditorElegirArticulosPresupuestosCliente; + +interface + +uses + uIEditorElegirArticulos; + +type + IEditorElegirArticulosPresupuestosCliente = interface(IEditorElegirArticulos) + ['{549F3B97-46E2-4D40-8080-566065735FA0}'] + end; + + +implementation + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorElegirPresupuestosCliente.dcu b/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorElegirPresupuestosCliente.dcu new file mode 100644 index 0000000..b89464f Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorElegirPresupuestosCliente.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorElegirPresupuestosCliente.pas b/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorElegirPresupuestosCliente.pas new file mode 100644 index 0000000..90e4b78 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorElegirPresupuestosCliente.pas @@ -0,0 +1,26 @@ +unit uIEditorElegirPresupuestosCliente; + +interface + +uses + uIEditorPresupuestosCliente, uBizPresupuestosCliente, uGUIBase; + +type + IEditorElegirPresupuestosCliente = interface(IEditorPresupuestosCliente) + ['{FA60C50C-D927-4951-82C8-1C6628CF7BA5}'] + function GetPresupuestosClienteSeleccionados: IBizPresupuestoCliente; + property PresupuestosClienteSeleccionados: IBizPresupuestoCliente read GetPresupuestosClienteSeleccionados; + + procedure SetMultiSelect (AValue : Boolean); + function GetMultiSelect : Boolean; + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + + procedure SetMensaje (const AValue: String); + function GetMensaje: String; + property Mensaje : String read GetMensaje write SetMensaje; + end; + + +implementation + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorPresupuestoCliente.dcu b/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorPresupuestoCliente.dcu new file mode 100644 index 0000000..f10b8b4 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorPresupuestoCliente.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorPresupuestoCliente.pas b/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorPresupuestoCliente.pas new file mode 100644 index 0000000..d75e57f --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorPresupuestoCliente.pas @@ -0,0 +1,23 @@ +unit uIEditorPresupuestoCliente; + +interface + +uses + uEditorDBItem, uBizPresupuestosCliente, uPresupuestosClienteController; + +type + IEditorPresupuestoCliente = interface(IEditorDBItem) + ['{244C8E63-7BA2-4C8E-A2B8-4ECCEFDB5196}'] + function GetController : IPresupuestosClienteController; + procedure SetController (const Value : IPresupuestosClienteController); + property Controller : IPresupuestosClienteController read GetController + write SetController; + + function GetPresupuesto: IBizPresupuestoCliente; + procedure SetPresupuesto(const Value: IBizPresupuestoCliente); + property Presupuesto: IBizPresupuestoCliente read GetPresupuesto write SetPresupuesto; + end; + +implementation + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorPresupuestosCliente.dcu b/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorPresupuestosCliente.dcu new file mode 100644 index 0000000..2b1c55b Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorPresupuestosCliente.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorPresupuestosCliente.pas b/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorPresupuestosCliente.pas new file mode 100644 index 0000000..ff95794 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorPresupuestosCliente.pas @@ -0,0 +1,23 @@ +unit uIEditorPresupuestosCliente; + +interface + +uses + uEditorGridBase, uBizPresupuestosCliente, uPresupuestosClienteController; + +type + IEditorPresupuestosCliente = interface(IEditorGridBase) + ['{9FBF3D67-D0B1-4C2F-A37F-58BCD2DB0561}'] + function GetPresupuestos: IBizPresupuestoCliente; + procedure SetPresupuestos(const Value: IBizPresupuestoCliente); + property Presupuestos: IBizPresupuestoCliente read GetPresupuestos write SetPresupuestos; + + function GetController : IPresupuestosClienteController; + procedure SetController (const Value : IPresupuestosClienteController); + property Controller : IPresupuestosClienteController read GetController write SetController; + end; + + +implementation + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorPresupuestosClientePreview.dcu b/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorPresupuestosClientePreview.dcu new file mode 100644 index 0000000..c35f80a Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorPresupuestosClientePreview.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorPresupuestosClientePreview.pas b/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorPresupuestosClientePreview.pas new file mode 100644 index 0000000..ac830bd --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorPresupuestosClientePreview.pas @@ -0,0 +1,16 @@ +unit uIEditorPresupuestosClientePreview; + +interface + +uses + uEditorPreview; + +type + IEditorPresupuestosClientePreview = interface(IEditorPreview) + ['{B60B6013-32C0-4694-9676-F582A759CB48}'] + end; + + +implementation + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorVariarPrecios.dcu b/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorVariarPrecios.dcu new file mode 100644 index 0000000..53dd827 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorVariarPrecios.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorVariarPrecios.pas b/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorVariarPrecios.pas new file mode 100644 index 0000000..ac9d673 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorVariarPrecios.pas @@ -0,0 +1,20 @@ +unit uIEditorVariarPrecios; + +interface + +uses + uEditorBasico; + +type + IEditorVariarPrecios = interface(IEditorBasico) + ['{E814B4FE-F9EB-4002-83D9-7383A65F3F0D}'] + function GetPorcentaje: Variant; + procedure SetPorcentaje(const Value: Variant); + property Porcentaje: Variant Read GetPorcentaje write SetPorcentaje; + function GetTipoOperacion: Integer; + property TipoOperacion: Integer Read GetTipoOperacion; + end; + +implementation + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Controller/uArticulosPresupuestoClienteController.dcu b/Source/Modulos/Presupuestos de cliente/Controller/uArticulosPresupuestoClienteController.dcu new file mode 100644 index 0000000..18f51b6 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Controller/uArticulosPresupuestoClienteController.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Controller/uArticulosPresupuestoClienteController.pas b/Source/Modulos/Presupuestos de cliente/Controller/uArticulosPresupuestoClienteController.pas new file mode 100644 index 0000000..60e670f --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Controller/uArticulosPresupuestoClienteController.pas @@ -0,0 +1,46 @@ +unit uArticulosPresupuestoClienteController; + +interface + +uses + uDADataTable, uArticulosController, uBizArticulos; + +type + IArticulosPresupuestoClienteController = interface(IArticulosController) + ['{B334F1FC-65B7-4E77-8D1B-A7CF12F6CF3C}'] + end; + + TArticulosPresupuestoClienteController = class(TArticulosController, IArticulosPresupuestoClienteController) + public + function ElegirArticulos(AArticulos : IBizArticulo; AMensaje: String; AMultiSelect: Boolean): IBizArticulo; override; + end; + +implementation + +{ TArticulosPresupuestoClienteController } + +uses Controls, cxControls, uIEditorElegirArticulosPresupuestosCliente, uIEditorElegirArticulos; + +function TArticulosPresupuestoClienteController.ElegirArticulos(AArticulos: IBizArticulo; AMensaje: String; + AMultiSelect: Boolean): IBizArticulo; +var + AEditor : IEditorElegirArticulosPresupuestosCliente; +begin + Result := NIL; + + CreateEditor('EditorElegirArticulosPresupuestosCliente', IEditorElegirArticulosPresupuestosCliente, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; + AEditor.Articulos := AArticulos; + AEditor.MultiSelect := AMultiSelect; + AEditor.Mensaje := AMensaje; + if IsPositiveResult(AEditor.ShowModal) then + Result := AEditor.ArticulosSeleccionados; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Controller/uDetallesPresupuestoClienteController.dcu b/Source/Modulos/Presupuestos de cliente/Controller/uDetallesPresupuestoClienteController.dcu new file mode 100644 index 0000000..1555dc9 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Controller/uDetallesPresupuestoClienteController.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Controller/uDetallesPresupuestoClienteController.pas b/Source/Modulos/Presupuestos de cliente/Controller/uDetallesPresupuestoClienteController.pas new file mode 100644 index 0000000..fd1041b --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Controller/uDetallesPresupuestoClienteController.pas @@ -0,0 +1,238 @@ +unit uDetallesPresupuestoClienteController; + +interface + +uses + uDADataTable, uControllerDetallesBase, uControllerDetallesArticulos, uBizDetallesPresupuestoCliente, uIDataModulePresupuestosCliente, + uBizArticulos, uBizContactos; + +type + IDetallesPresupuestoClienteController = interface(IControllerDetallesArticulos) + ['{8D1D3559-E695-4962-9999-404B26B50D6C}'] + procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente; const ANuevaFila :Boolean = True); overload; + procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente); overload; + procedure DesglosarPorteDetalles(ImportePorte: Currency; ADetalles: IDAStronglyTypedDataTable); + function DarTotalPorteTotal(ADetalles: IDAStronglyTypedDataTable): Double; + function VariarPrecios(var APorcentaje: Variant; var ATipoOperacion: Integer): Boolean; + procedure AplicarAumento(ADataTable: IDAStronglyTypedDataTable; Posicion: TIntegerArray; APorcentaje: Variant); + end; + + TDetallesPresupuestoClienteController = class(TControllerDetallesArticulos, IDetallesPresupuestoClienteController) + private + FDataModule : IDataModulePresupuestosCliente; + function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; + + protected +// procedure AsignarDatos(ADetalles: IDAStronglyTypedDataTable; IDCabecera: Integer); override; + procedure RellenarOtros(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); overload; override; + procedure RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); override; + + procedure AsignarController; override; + //Si sobreescribimos este mtodo podremos tener en cuenta otras columnas para el calculo del importe total de un concepto + function CalcularImporteTotalConcepto(DataTable: TDADataTable): Double; override; + procedure ValidarCampos(DataTable: TDADataTable); override; + procedure DesglosarPorteDetalles(ImportePorte: Currency; ADetalles: IDAStronglyTypedDataTable); + function DarTotalPorteTotal(ADetalles: IDAStronglyTypedDataTable): Double; + + public + function VariarPrecios(var APorcentaje: Variant; var ATipoOperacion: Integer): Boolean; + procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente; const ANuevaFila :Boolean = True); reintroduce; overload; + procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente); overload; + procedure AplicarAumento(ADataTable: IDAStronglyTypedDataTable; Posicion: TIntegerArray; APorcentaje: Variant); + constructor Create; override; + destructor Destroy; override; + end; + +implementation + +uses Controls, SysUtils, Dialogs, uDAInterfaces, uDialogUtils, Variants, uDataModulePresupuestosCliente, uArticulosPresupuestoClienteController, + uDataTableUtils, uCalculosUtils, uIEditorVariarPrecios, uEditorRegistryUtils; + +{ TDetallesPresupuestoClienteController } + +procedure TDetallesPresupuestoClienteController.ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente); +var + AArticulos : IBizArticulo; +begin + if Assigned(ADetalles) then + begin + try + AArticulos := (FArticulosController.BuscarTodos(ACliente) as IBizArticulo); + ActualizarDetalles(ADetalles, AArticulos); + ShowInfoMessage('Se ha actualizado el descuento para el cliente seleccionado'); + finally + AArticulos := Nil; + end; + end; +end; + +procedure TDetallesPresupuestoClienteController.AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente; const ANuevaFila :Boolean); +var + AArticulos: IBizArticulo; +begin + if Assigned(ADetalles) then + begin + try + AArticulos := (FArticulosController.BuscarTodos(ACliente) as IBizArticulo); + + //Si nueva fila es false, quiere decir que se sustituye un determinado artculo, por ello la lista a seleccionar no debe ser multiselect + if ANuevaFila then + begin + AArticulos := (FArticulosController as IArticulosPresupuestoClienteController).ElegirArticulos(AArticulos, 'Elija los artculos que desea aadir a este presupuesto de cliente', True); + Add(ADetalles, AArticulos) + end + else + begin + AArticulos := (FArticulosController as IArticulosPresupuestoClienteController).ElegirArticulos(AArticulos, 'Elija el artculo que desea aadir a este presupuesto de cliente', False); + RellenarDetalle(ADetalles, AArticulos); + end; + + finally + AArticulos := Nil; + end; + end; +end; + +procedure TDetallesPresupuestoClienteController.AplicarAumento(ADataTable: IDAStronglyTypedDataTable; Posicion: TIntegerArray; + APorcentaje: Variant); +var + i: integer; + AField: TDAField; + AsignarDtoPosicion: Integer; + +begin + if APorcentaje > 0 then + begin + AsignarDtoPosicion := 0; + AField := ADataTable.DataTable.FindField(CAMPO_POSICION); + if not Assigned(AField) then + raise Exception.Create('Campo ' + CAMPO_POSICION + ' no encontrado (AsignarDescuento)'); + + BeginUpdate(ADataTable); + try + with ADataTable do + begin + for i := 0 to High(POSICION) do + begin + DataTable.First; + AsignarDtoPosicion := POSICION[i]; + if DataTable.Locate(CAMPO_POSICION, AsignarDtoPosicion, []) then + begin + if (DataTable.FieldByName(CAMPO_TIPO).AsString = TIPO_DETALLE_CONCEPTO) then + begin + DataTable.Edit; + DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := (DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant * (APorcentaje/100)) + DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant; + DataTable.Post; + end; + end; + end; + Renumerar(DataTable, AsignarDtoPosicion); + end; + finally + EndUpdate(ADataTable); + end; + end; +end; + +procedure TDetallesPresupuestoClienteController.AsignarController; +begin + FArticulosController := TArticulosPresupuestoClienteController.Create; +end; + +{ +procedure TDetallesPresupuestoClienteController.AsignarDatos(ADetalles: IDAStronglyTypedDataTable; IDCabecera: Integer); +begin + inherited; + + with (ADetalles as IBizDetallesPresupuestoCliente) do + begin + Edit; + ID := FDataModule.GetNextID(DataTable.LogicalName); + ID_PEDIDO := IDCabecera; + Post + end; +end; +} + +function TDetallesPresupuestoClienteController.CalcularImporteTotalConcepto(DataTable: TDADataTable): Double; +begin + Result := CalcularLineaConcepto(DataTable); +end; + +constructor TDetallesPresupuestoClienteController.Create; +begin + inherited; + FDataModule := TDataModulePresupuestosCliente.Create(Nil); +end; + +function TDetallesPresupuestoClienteController.CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + +function TDetallesPresupuestoClienteController.DarTotalPorteTotal(ADetalles: IDAStronglyTypedDataTable): Double; +begin + Result := DarTotalPorte(ADetalles); +end; + +procedure TDetallesPresupuestoClienteController.DesglosarPorteDetalles(ImportePorte: Currency; ADetalles: IDAStronglyTypedDataTable); +begin + DesglosarPorte(ImportePorte, ADetalles); + ActualizarTotales(ADetalles); +end; + +destructor TDetallesPresupuestoClienteController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + +procedure TDetallesPresupuestoClienteController.RellenarOtros(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +begin +//En Tecsitel no se tiene en cuenta el descuento de cliente para el precio PVP +// if Assigned(AArticulos) then +// ADetalles.DataTable.FieldByName(CAMPO_DESCUENTO).AsFloat := AArticulos.DESCUENTO +// else +// ADetalles.DataTable.FieldByName(CAMPO_DESCUENTO).AsFloat := 0; +end; + +procedure TDetallesPresupuestoClienteController.ValidarCampos(DataTable: TDADataTable); +begin + inherited; + ValidarCamposLineaConcepto(DataTable); +end; + +function TDetallesPresupuestoClienteController.VariarPrecios(var APorcentaje: Variant; var ATipoOperacion: Integer): Boolean; +var + AEditor: IEditorVariarPrecios; + +begin + Result := False; + + CreateEditor('EditorVariarPrecios', IEditorVariarPrecios, AEditor); + if Assigned(AEditor) then + try + if (AEditor.ShowModal = mrOk) then + begin + APorcentaje := AEditor.Porcentaje; + ATipoOperacion := AEditor.TipoOperacion; + Result := True; + end; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +procedure TDetallesPresupuestoClienteController.RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +begin +//Como en tecsitel no hay descuento por linea de detalle, solo recuperamos nuevamente el valor del articulo cuando el detalle no tenga niguno +//de esta forma evitamos que al cambiar de cliente se quiten los importes que se hubiesen establecido para los articulos. + if ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).IsNull then + if Assigned(AArticulos) then + ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := AArticulos.PRECIO_PVP_TOTAL + else + ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := Null; +end; + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteController.dcu b/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteController.dcu new file mode 100644 index 0000000..3208d44 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteController.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteController.pas b/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteController.pas new file mode 100644 index 0000000..2db03d2 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteController.pas @@ -0,0 +1,1209 @@ +unit uPresupuestosClienteController; + +interface + + +uses + Classes, uROTypes, SysUtils, uDADataTable, uEditorDBItem, + uControllerBase, uIDataModulePresupuestosCliente, uClientesController, + uDetallesPresupuestoClienteController, uGestorDocumentosController, + uBizPresupuestosCliente, uBizDireccionesContacto, uBizDetallesPresupuestoCliente, + uIntegerListUtils; + +type + IPresupuestosClienteController = interface(IControllerBase) + ['{21ED0332-F0E0-468D-8D53-8CA362757191}'] + function GetClienteController: IClientesController; + procedure SetClienteController(const Value: IClientesController); + property ClienteController: IClientesController read GetClienteController write SetClienteController; + + function GetDetallesController: IDetallesPresupuestoClienteController; + procedure SetDetallesController(const Value: IDetallesPresupuestoClienteController); + property DetallesController: IDetallesPresupuestoClienteController read GetDetallesController write SetDetallesController; + + //GESTION_DOCUMENTOS + function GetGestorDocumentosController: IGestorDocumentosController; + procedure SetGestorDocumentosController(const Value: IGestorDocumentosController); + property GestorDocumentosController: IGestorDocumentosController read GetGestorDocumentosController write SetGestorDocumentosController; + + procedure RecuperarCliente(APresupuesto : IBizPresupuestoCliente); + function Buscar(const ID: Integer): IBizPresupuestoCliente; overload; + function Buscar(const ListaID: TIntegerList): IBizPresupuestoCliente; overload; + function BuscarTodos: IBizPresupuestoCliente; overload; + function BuscarTodos(const ID_Cliente: Integer): IBizPresupuestoCliente; overload; + function BuscarAceptados : IBizPresupuestoCliente; + function BuscarSinFacturar : IBizPresupuestoCliente; + procedure Ver(APresupuesto : IBizPresupuestoCliente); + procedure VerTodos(APresupuestos: IBizPresupuestoCliente; + const AVerModal : Boolean = False; const AWindowCaption: String = ''; + const AHeaderText: String = ''); + procedure VerDireccionEntrega(APresupuesto : IBizPresupuestoCliente); + function Nuevo : IBizPresupuestoCliente; + function Anadir(APresupuesto : IBizPresupuestoCliente) : Boolean; + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false): Boolean; overload; + function Guardar(APresupuesto : IBizPresupuestoCliente): Boolean; + procedure DescartarCambios(APresupuesto : IBizPresupuestoCliente); + function Existe(const ID: Integer) : Boolean; + function Duplicar(APresupuesto: IBizPresupuestoCliente): IBizPresupuestoCliente; + + function Localizar(APresupuestos: IBizPresupuestoCliente; const ID : Integer): Boolean; + function ExtraerSeleccionados(APresupuesto: IBizPresupuestoCliente) : IBizPresupuestoCliente; + function ElegirPresupuestos(APresupuesto: IBizPresupuestoCliente; AMensaje: String; AMultiSelect: Boolean): IBizPresupuestoCliente; + + procedure QuitarDireccionEnvio(APresupuesto: IBizPresupuestoCliente); + + procedure RecalcularImportes(APresupuesto : IBizPresupuestoCliente); + function EsModificable(APresupuesto : IBizPresupuestoCliente): Boolean; + function EsEliminable(APresupuesto : IBizPresupuestoCliente): Boolean; + + procedure Preview(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false; Const AVerSello: Integer = 1); + procedure Print(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false; Const AVerSello: Integer = 1); + function GenerarCertificados(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false): Boolean; + function CambiarSituacion(APresupuesto : IBizPresupuestoCliente; Situacion: String; FechaDecision: TDateTime; AllItems: Boolean = false): Boolean; + + function EnviarPresupuestoPorEMail(APresupuesto : IBizPresupuestoCliente; + const AEnviarDirectamente: Boolean = True; + const ADireccionEMail: String = ''; const AAsuntoEMail: String = ''; + const ATextoEMail: String = ''): Boolean; + function EnviarEmailPresupuestos(APresupuestos : IBizPresupuestoCliente): Boolean; + function GenerarEmailPresupuesto(APresupuesto : IBizPresupuestoCliente): Boolean; + + procedure BorrarBonificacion(APresupuesto : IBizPresupuestoCliente); + + function DarListaAnosPresupuestos: TStringList; + procedure FiltrarAno(APresupuesto: IBizPresupuestoCliente; ADynWhereDataTable: WideString; const Ano: String); + end; + + TPresupuestosClienteController = class(TControllerBase, IPresupuestosClienteController) + protected + FDataModule : IDataModulePresupuestosCliente; + FClienteController : IClientesController; + FDetallesController : IDetallesPresupuestoClienteController; + FGestorDocumentosController : IGestorDocumentosController; + + function GetClienteController: IClientesController; + procedure SetClienteController(const Value: IClientesController); + function GetDetallesController: IDetallesPresupuestoClienteController; + procedure SetDetallesController(const Value: IDetallesPresupuestoClienteController); + + //GESTION_DOCUMENTOS + function GetGestorDocumentosController: IGestorDocumentosController; + procedure SetGestorDocumentosController(const Value: IGestorDocumentosController); + + //Estos son los tres mtodos a sobre escribir si se desea heredar toda la logica de + //este controller + procedure AsignarDataModule; virtual; + procedure RecuperarObjetos(APresupuesto: IBizPresupuestoCliente); virtual; + + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; + procedure FiltrarEmpresa(APresupuesto: IBizPresupuestoCliente); + function _Vacio : IBizPresupuestoCliente; + function ValidarPresupuesto(APresupuesto: IBizPresupuestoCliente): Boolean; + public + property ClienteController: IClientesController read GetClienteController write SetClienteController; + property DetallesController: IDetallesPresupuestoClienteController read GetDetallesController write SetDetallesController; + property GestorDocumentosController: IGestorDocumentosController read GetGestorDocumentosController write SetGestorDocumentosController; + + constructor Create; override; + destructor Destroy; override; + + function Localizar(APresupuestos: IBizPresupuestoCliente; const ID : Integer): Boolean; + + procedure RecuperarCliente(APresupuesto : IBizPresupuestoCliente); + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false): Boolean; overload; + function Guardar(APresupuesto : IBizPresupuestoCliente): Boolean; + procedure DescartarCambios(APresupuesto : IBizPresupuestoCliente); virtual; + function Existe(const ID: Integer) : Boolean; virtual; + function Anadir(APresupuesto : IBizPresupuestoCliente) : Boolean; + function Buscar(const ListaID: TIntegerList): IBizPresupuestoCliente; overload; + function Buscar(const ID: Integer): IBizPresupuestoCliente; overload; + function BuscarTodos: IBizPresupuestoCliente; overload; + function BuscarTodos(const ID_Cliente: Integer): IBizPresupuestoCliente; overload; + function BuscarAceptados : IBizPresupuestoCliente; + function BuscarSinFacturar : IBizPresupuestoCliente; + function Nuevo : IBizPresupuestoCliente; + procedure Ver(APresupuesto : IBizPresupuestoCliente); + procedure VerTodos(APresupuestos: IBizPresupuestoCliente; + const AVerModal : Boolean = False; const AWindowCaption: String = ''; + const AHeaderText: String = ''); + procedure VerDireccionEntrega(APresupuesto : IBizPresupuestoCliente); + function Duplicar(APresupuesto: IBizPresupuestoCliente): IBizPresupuestoCliente; + + procedure QuitarDireccionEnvio(APresupuesto: IBizPresupuestoCliente); + function ExtraerSeleccionados(APresupuesto: IBizPresupuestoCliente) : IBizPresupuestoCliente; + function ElegirPresupuestos(APresupuesto: IBizPresupuestoCliente; AMensaje: String; AMultiSelect: Boolean): IBizPresupuestoCliente; + + procedure RecalcularImportes(APresupuesto : IBizPresupuestoCliente); + function EsModificable(APresupuesto : IBizPresupuestoCliente): Boolean; + function EsEliminable(APresupuesto : IBizPresupuestoCliente): Boolean; + + procedure Preview(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false; Const AVerSello: Integer = 1); + procedure Print(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false; Const AVerSello: Integer = 1); + function GenerarCertificados(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false): Boolean; + function CambiarSituacion(APresupuesto : IBizPresupuestoCliente; Situacion: String; FechaDecision: TDateTime; AllItems: Boolean = false): Boolean; + + function EnviarPresupuestoPorEMail(APresupuesto : IBizPresupuestoCliente; + const AEnviarDirectamente: Boolean = True; + const ADireccionEMail: String = ''; const AAsuntoEMail: String = ''; + const ATextoEMail: String = ''): Boolean; + function EnviarEmailPresupuestos(APresupuestos : IBizPresupuestoCliente): Boolean; + function GenerarEmailPresupuesto(APresupuesto : IBizPresupuestoCliente): Boolean; + + procedure BorrarBonificacion(APresupuesto : IBizPresupuestoCliente); + + function DarListaAnosPresupuestos: TStringList; + procedure FiltrarAno(APresupuesto: IBizPresupuestoCliente; ADynWhereDataTable: WideString; const Ano: String); + end; + +implementation + +uses + Controls, cxControls, DB, uEditorRegistryUtils, uEditorPreview, DateUtils, + uIEditorPresupuestosCliente, uDataModulePresupuestosCliente, Variants, + uBizContactos, uDataTableUtils, uDataModuleUsuarios, uFactuGES_App, + schPresupuestosClienteClient_Intf, uDAInterfaces, uDateUtils, uIEditorPresupuestoCliente, + uIEditorElegirPresupuestosCliente, uIEditorDireccionEntregaPresupuestoCliente, + schContactosClient_Intf, uPresupuestosClienteReportController, + uSistemaFunc, uEMailUtils, uDialogElegirEMail, Dialogs, uStringsUtils, + uIDialogListaPresupuestosEnvioEMail; + +{ TPresupuestosClienteController } + +function TPresupuestosClienteController.Anadir(APresupuesto: IBizPresupuestoCliente): Boolean; +begin + if not Assigned(APresupuesto) then + raise Exception.Create ('Presupuesto no asignado (Anadir)'); + APresupuesto.Insert; + Result := True; +end; + +{ +procedure TPresupuestosClienteController.SincronizarDocumentos(const ID: Integer; FListaDocumentos: TStringList; Directorio: String); +var + ListaDocumentosServidor: TStringList; + ANombreFichero: String; + AFichero: Binary; + i, j: Integer; +begin + //Eliminamos todos los documentos del servidor que ya no existan en el cliente. + ListaDocumentosServidor := DarListaDocumentos(ID); + for i:= 0 to ListaDocumentosServidor.Count - 1 do + if not FListaDocumentos.Find(ListaDocumentosServidor.Strings[i], j) then + if not FDataModule.EliminarFichero(ID, ListaDocumentosServidor.Strings[i]) then + showmessage('Error al borrar fichero' + ListaDocumentosServidor.Strings[i]); + + //Subimos todos los ficheros que halla al servidor (de momento no se miran fechas) + for i := 0 to FListaDocumentos.Count - 1 do + begin + ANombreFichero := Directorio + FListaDocumentos.Strings[i]; + if FileExists(ANombreFichero) then + begin + AFichero := Binary.Create; + AFichero.LoadFromFile(ANombreFichero); + SubirFichero(ID, ExtractFileName(ANombreFichero), AFichero); + end; + end; +end; +} + +procedure TPresupuestosClienteController.AsignarDataModule; +begin + FDataModule := TDataModulePresupuestosCliente.Create(Nil); +end; + +procedure TPresupuestosClienteController.BorrarBonificacion(APresupuesto: IBizPresupuestoCliente); +var + EnEdicion: Boolean; +begin + if Assigned(APresupuesto) then + begin + EnEdicion := APresupuesto.DataTable.Editing; + if not EnEdicion then + APresupuesto.DataTable.Edit; + + APresupuesto.DESCRIPCION_BONIFICACIONIsNull := True; + APresupuesto.IMPORTE_BONIFICACIONIsNull := True; + APresupuesto.DataTable.Post; + + if EnEdicion then + APresupuesto.DataTable.Edit; + end; +end; + +function TPresupuestosClienteController.Buscar(const ID: Integer): IBizPresupuestoCliente; +begin + Result := FDataModule.GetItem(ID); + FiltrarEmpresa(Result); +end; + +function TPresupuestosClienteController.BuscarTodos: IBizPresupuestoCliente; +begin + Result := FDataModule.GetItems; + FiltrarEmpresa(Result); +end; + +function TPresupuestosClienteController.Buscar( + const ListaID: TIntegerList): IBizPresupuestoCliente; +begin + Result := FDataModule.GetItems(ListaID); + FiltrarEmpresa(Result); +end; + +function TPresupuestosClienteController.BuscarAceptados: IBizPresupuestoCliente; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + // Filtrar los presupuesto pendientes de recepcion + with Result.DataTable.DynamicWhere do + begin + // (SITUACION <> RECIBIDO) + Condicion := NewBinaryExpression(NewField('', fld_PresupuestosClienteSITUACION), NewConstant(SITUACION_PRESUPUESTO_ACEPTADO, datString), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + finally + HideHourglassCursor; + end; +end; + +function TPresupuestosClienteController.BuscarSinFacturar: IBizPresupuestoCliente; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarAceptados; + + with Result.DataTable.DynamicWhere do + begin + // (ID_FACTURA = NULL) + Condicion := NewBinaryExpression(NewField('', fld_PresupuestosClienteID_FACTURA), NewNull(), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TPresupuestosClienteController.BuscarTodos( + const ID_Cliente: Integer): IBizPresupuestoCliente; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + + with Result.DataTable.DynamicWhere do + begin + // ID_CLIENTE + Condicion := NewBinaryExpression(NewField('', fld_PresupuestosClienteID_CLIENTE), NewConstant(ID_Cliente, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + finally + HideHourglassCursor; + end; +end; + +function TPresupuestosClienteController.CambiarSituacion(APresupuesto: IBizPresupuestoCliente; + Situacion: String; FechaDecision: TDateTime; AllItems: Boolean): Boolean; + // En el caso de cambiar almenos un elemento del conjunto se devuelve true +begin + if not Assigned(APresupuesto) then + raise Exception.Create ('APresupuesto no asignado'); + + ShowHourglassCursor; + try + if not APresupuesto.DataTable.Active then + APresupuesto.DataTable.Active := True; + + if (APresupuesto.State in dsEditModes) then + APresupuesto.Cancel; + + //Siempre cambiaremos de situacion el seleccionado + if APresupuesto.SITUACION <> Situacion then + begin + APresupuesto.DataTable.Edit; + APresupuesto.SITUACION := Situacion; + APresupuesto.FECHA_DECISION := FechaDecision; + APresupuesto.DataTable.Post; + end; + + //En el caso de querer eliminar todos los items del objeto APresupuesto + if AllItems then + begin + with APresupuesto.DataTable do + begin + First; + while not EOF do + begin + if APresupuesto.SITUACION <> Situacion then + begin + APresupuesto.DataTable.Edit; + APresupuesto.SITUACION := Situacion; + APresupuesto.FECHA_DECISION := FechaDecision; + APresupuesto.DataTable.Post; + end; + Next; + end; + end; + end; + + APresupuesto.DataTable.ApplyUpdates; + Result := True; + + finally + HideHourglassCursor; + end; +end; + +constructor TPresupuestosClienteController.Create; +begin + inherited; + AsignarDataModule; + + FClienteController := TClientesController.Create; + FDetallesController := TDetallesPresupuestoClienteController.Create; + + //GESTION_DOCUMENTOS + FGestorDocumentosController := TGestorDocumentosController.Create; + + FDetallesController.addObservador(Self); +end; + +function TPresupuestosClienteController.CreateEditor(const AName: String; + const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + +{ +function TPresupuestosClienteController.DarListaDocumentos(const ID: Integer): TStringList; +begin + Result := FDataModule.DarListaDocumentos(ID); +end; + +function TPresupuestosClienteController.DescargarFichero(const ID: Integer; const NombreFichero: String; const DestinoFichero: String): Boolean; +begin + Result := FDataModule.DescargarFichero(ID, NombreFichero, DestinoFichero); +end; +} + +function TPresupuestosClienteController.DarListaAnosPresupuestos: TStringList; +begin + Result := FDataModule.GetAnosItems; +end; + +procedure TPresupuestosClienteController.DescartarCambios(APresupuesto: IBizPresupuestoCliente); +begin + if not Assigned(APresupuesto) then + raise Exception.Create ('Presupuesto no asignada'); + + ShowHourglassCursor; + try + if (APresupuesto.State in dsEditModes) then + APresupuesto.Cancel; + + APresupuesto.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TPresupuestosClienteController.Destroy; +begin + FDataModule := Nil; + FClienteController := Nil; + FDetallesController := Nil; + + //GESTION_DOCUMENTOS + FGestorDocumentosController := Nil; + inherited; +end; + +function TPresupuestosClienteController.Duplicar( + APresupuesto: IBizPresupuestoCliente): IBizPresupuestoCliente; +begin + Result := Self._Vacio; + ShowHourglassCursor; + try + DuplicarRegistros(APresupuesto.DataTable, Result.DataTable, mdrActual); + DuplicarRegistros(APresupuesto.Detalles.DataTable, Result.Detalles.DataTable, mdrTodos); + + // Hay que dejar algunos campos como si fuera un presupuesto nuevo + Result.Edit; + with Result do + begin + ID_EMPRESA := AppFactuGES.EmpresaActiva.ID; + USUARIO := AppFactuGES.UsuarioActivo.UserName; + FECHA_PRESUPUESTO := DateOf(Now); + INCIDENCIAS_ACTIVAS := 0; + INCIDENCIASIsNull := True; + ID_FACTURAIsNull := True; + FECHA_DECISIONIsNull := True; + REFERENCIA := ''; + SITUACION := SITUACION_PRESUPUESTO_PENDIENTE; + end; + Result.Post; + finally + HideHourglassCursor; + end; +end; + +function TPresupuestosClienteController.ValidarPresupuesto( + APresupuesto: IBizPresupuestoCliente): Boolean; +begin + if not Assigned(APresupuesto) then + raise Exception.Create ('Presupuesto no asignado'); + + if (APresupuesto.DataTable.State in dsEditModes) then + APresupuesto.DataTable.Post; + + //Tambien hacemos post de sus tablas hija + if (APresupuesto.Detalles.DataTable.State in dsEditModes) then + APresupuesto.Detalles.DataTable.Post; + + // Abrir el cliente para la validacin + if Assigned(APresupuesto.Cliente) then + APresupuesto.Cliente.DataTable.Active := True; + + if (APresupuesto.ID_Cliente <= 0) then + // Si hay altas automticas no hay objeto Cliente pero s hay ID_CLIENTE +{ (not Assigned(APresupuesto.Cliente)) or + (APresupuesto.Cliente.IsEmpty) then} + raise Exception.Create('Debe indicar el cliente de este presupuesto'); + + if (EsFechaVacia(APresupuesto.FECHA_PRESUPUESTO)) then + raise Exception.Create('Debe indicar la fecha de este presupuesto'); + + if (APresupuesto.Detalles.DataTable.RecordCount = 0) then + raise Exception.Create('El presupuesto debe tener en su contenido al menos un concepto'); + + + FDetallesController.ValidarDetalles(APresupuesto.Detalles); + + { Asegurarse de valores en campos "automticos" tanto + en MODIFICACIN como en INSERCIN. } + APresupuesto.Edit; + try + APresupuesto.USUARIO := AppFactuGES.UsuarioActivo.UserName; + + if Assigned(APresupuesto.Cliente) + and (APresupuesto.ID_CLIENTE <> APresupuesto.Cliente.ID) then + APresupuesto.ID_CLIENTE := APresupuesto.Cliente.ID; + + Result := True; + finally + APresupuesto.Post; + end; +end; + +procedure TPresupuestosClienteController.Ver(APresupuesto: IBizPresupuestoCliente); +var + AEditor : IEditorPresupuestoCliente; +begin + AEditor := NIL; + + RecuperarObjetos(APresupuesto); + CreateEditor('EditorPresupuestoCliente', IEditorPresupuestoCliente, AEditor); + + if Assigned(AEditor) then + try + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.Presupuesto := APresupuesto; + + //MODO CONSULTAR + if not EsModificable(APresupuesto) then + begin + SetDataTableReadOnly(APresupuesto.DataTable, True); + AEditor.ReadOnly := True; + end; + + AEditor.ShowModal; + + //MODO CONSULTAR (Se deja la tabla como estaba) + if AEditor.ReadOnly then + SetDataTableReadOnly(APresupuesto.DataTable, False); + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +procedure TPresupuestosClienteController.VerDireccionEntrega( + APresupuesto: IBizPresupuestoCliente); +{var + AEditor : IEditorDireccionEntregaPresupuestoCliente;} +begin +{ + AEditor := NIL; + //RecuperarObjetos(APresupuesto); <- No descomentar. No hace falta + CreateEditor('EditorDireccionEntregaPresupuestoCliente', IEditorDireccionEntregaPresupuestoCliente, AEditor); + if Assigned(AEditor) then + with (AEditor as IEditorDireccionEntregaPresupuestoCliente) do + begin + try + Presupuesto := APresupuesto; + ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; + end; +} +end; + +procedure TPresupuestosClienteController.VerTodos(APresupuestos: IBizPresupuestoCliente; + const AVerModal : Boolean = False; const AWindowCaption: String = ''; + const AHeaderText: String = ''); +var + AEditor : IEditorPresupuestosCliente; +begin + AEditor := NIL; + CreateEditor('EditorPresupuestosCliente', IEditorPresupuestosCliente, AEditor); + if Assigned(AEditor) then + try + if not EsCadenaVacia(AWindowCaption) then + AEditor.WindowCaption := AWindowCaption; + + if not EsCadenaVacia(AHeaderText) then + AEditor.HeaderText := AHeaderText; + + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.Presupuestos := APresupuestos; + AEditor.MultiSelect := True; + if AVerModal then + AEditor.ShowModal + else + AEditor.ShowEmbedded; + finally + if AVerModal then + AEditor.Release; + AEditor := NIL; + end; +end; + +function TPresupuestosClienteController._Vacio: IBizPresupuestoCliente; +begin + Result := Buscar(ID_NULO); +end; + +function TPresupuestosClienteController.Eliminar(const ID: Integer): Boolean; +var + APresupuesto : IBizPresupuestoCliente; +begin + APresupuesto := Buscar(ID); + + if not Assigned(APresupuesto) then + raise Exception.Create(Format('No se ha encontrado el presupuesto con ID = %d', [ID])); + + Result := Eliminar(APresupuesto); + APresupuesto := NIL; +end; + +function TPresupuestosClienteController.ElegirPresupuestos(APresupuesto: IBizPresupuestoCliente; AMensaje: String; AMultiSelect: Boolean): IBizPresupuestoCliente; +var + AEditor : IEditorElegirPresupuestosCliente; +begin + Result := NIL; + + CreateEditor('EditorElegirPresupuestosCliente', IEditorElegirPresupuestosCliente, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; + AEditor.Presupuestos := APresupuesto; + AEditor.MultiSelect := AMultiSelect; + AEditor.Mensaje := AMensaje; + if IsPositiveResult(AEditor.ShowModal) then + Result := AEditor.PresupuestosClienteSeleccionados; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +function TPresupuestosClienteController.Eliminar(APresupuesto: IBizPresupuestoCliente; AllItems: Boolean = false): Boolean; +//En el caso de eliminar almenos un elemento del conjunto se devuelve true +var + bEliminado: Boolean; + +begin + bEliminado := False; + + if not Assigned(APresupuesto) then + raise Exception.Create ('APresupuesto no asignado'); + + ShowHourglassCursor; + try + if not APresupuesto.DataTable.Active then + APresupuesto.DataTable.Active := True; + + if (APresupuesto.State in dsEditModes) then + APresupuesto.Cancel; + + //Siempre eliminaremos el seleccionado + if EsEliminable(APresupuesto) then + begin + //GESTION_DOCUMENTOS + FGestorDocumentosController.EliminarDirectorio(APresupuesto.ID); + + APresupuesto.Delete; + bEliminado := True; + end; + + //En el caso de querer eliminar todos los items del objeto APresupuesto + if AllItems then + begin + with APresupuesto.DataTable do + begin + First; + while not EOF do + begin + if EsEliminable(APresupuesto) then + begin + //GESTION_DOCUMENTOS + FGestorDocumentosController.EliminarDirectorio(APresupuesto.ID); + + APresupuesto.Delete; + bEliminado := True + end + else Next; + end; + end; + end; + + if bEliminado then + begin + APresupuesto.DataTable.ApplyUpdates; + Result := True; + end + else + Result := False; + + finally + HideHourglassCursor; + end; +end; + +function TPresupuestosClienteController.EnviarEmailPresupuestos(APresupuestos: IBizPresupuestoCliente): Boolean; +var + ADialog : IDialogListaPresupuestosEnvioEMail; + ARespuesta : Integer; +begin + ADialog := NIL; + + if not Assigned(APresupuestos) then + raise Exception.Create ('Presupuestos no asignadas (EnviarPresupuestosPorEMail)'); + + if APresupuestos.DataTable.Active then + APresupuestos.DataTable.Active := True; + + ShowHourglassCursor; + try + CreateEditor('DialogListaPresupuestosEnvioEMail', IDialogListaPresupuestosEnvioEMail, ADialog); + + if Assigned(ADialog) then + begin + try + ADialog.Presupuestos := APresupuestos; + ARespuesta := ADialog.ShowModal; + Result := (ARespuesta = mrOK) + finally + ADialog.Release; + end; + end; + finally + ADialog := NIL; + HideHourglassCursor; + end; +end; + +function TPresupuestosClienteController.EnviarPresupuestoPorEMail(APresupuesto: IBizPresupuestoCliente; + const AEnviarDirectamente: Boolean = True; + const ADireccionEMail: String = ''; const AAsuntoEMail: String = ''; + const ATextoEMail: String = ''): Boolean; +var + AReportController : IPresupuestosClienteReportController; + AFicheroTMP : TFileName; + AEMail : String; + AListaEmail : TStringList; +begin + if not Assigned(APresupuesto) then + raise Exception.Create ('Presupuesto no asignado (EnviarPresupuestoPorEMail)'); + + if APresupuesto.DataTable.Active then + APresupuesto.DataTable.Active := True; + + RecuperarCliente(APresupuesto); + APresupuesto.Cliente.DataTable.Active := True; + + AFicheroTMP := DarFicheroPDFTemporal(EscapeIllegalChars(APresupuesto.REFERENCIA)); + + if not EsCadenaVacia(ADireccionEMail) then + AEMail := ADireccionEMail + else begin + AListaEmail := TStringList.Create; + try + if not APresupuesto.Cliente.EMAIL_1IsNull then + AListaEmail.Add(APresupuesto.Cliente.EMAIL_1) + else if not APresupuesto.Cliente.EMAIL_2IsNull then + AListaEmail.Add(APresupuesto.Cliente.EMAIL_2); + + if not ElegirEMail(AListaEmail, AEMail) then + Exit; + finally + FreeANDNIL(AListaEmail); + end; + end; + + ShowHourglassCursor; + AReportController := TPresupuestosClienteReportController.Create; + try + AReportController.ExportToPDF(APresupuesto.ID, AFicheroTMP); + Result := EnviarEMailMAPI('Presupuesto ' + APresupuesto.REFERENCIA, '', AFicheroTMP, '', '', APresupuesto.Cliente.NOMBRE, AEMail, AEnviarDirectamente); + finally + DeleteFile(AFicheroTMP); + AReportController := NIL; + HideHourglassCursor; + end; +end; + +function TPresupuestosClienteController.EsEliminable(APresupuesto: IBizPresupuestoCliente): Boolean; +begin + if not Assigned(APresupuesto) then + raise Exception.Create ('Presupuesto no asignado: EsEliminable'); + + Result := (APresupuesto.SITUACION = SITUACION_PRESUPUESTO_PENDIENTE); +end; + +function TPresupuestosClienteController.EsModificable(APresupuesto: IBizPresupuestoCliente): Boolean; +begin + if not Assigned(APresupuesto) then + raise Exception.Create ('Presupuesto no asignado (EsModificable)'); + + //Result := (APresupuesto.SITUACION = SITUACION_PRESUPUESTO_PENDIENTE); + + Result := True; +end; + +procedure TPresupuestosClienteController.RecalcularImportes( + APresupuesto: IBizPresupuestoCliente); +var + bEnEdicion : Boolean; + ADetallePosAct : Integer; +begin + if not Assigned(APresupuesto) then + raise Exception.Create ('Presupuesto no asignado (RecalcularImportes)'); + + if APresupuesto.DataTable.Active then + APresupuesto.DataTable.Active := True; + + { Hay que guardar la posicin en la que estamos en los detalles por que + la asignacin de valores a los campos IMPORTE_NETO e IMPORTE_PORTE + (ver ms adelante) colocan el puntero en la tabla detalle al principio. + No he encontrado la razn por la que mueve el puntero. } + + ADetallePosAct := APresupuesto.Detalles.POSICION; + + bEnEdicion := (APresupuesto.DataTable.State in dsEditModes); + if not bEnEdicion then + APresupuesto.Edit; + + ShowHourglassCursor; + try + APresupuesto.IMPORTE_NETO := FDetallesController.DarTotalImporteTotal(APresupuesto.Detalles); + APresupuesto.IMPORTE_PORTE := FDetallesController.DarTotalPorteTotal(APresupuesto.Detalles); + + if not bEnEdicion then + APresupuesto.Post; + finally + HideHourglassCursor; + // Restaurar la posicin que tenamos en los detalles. + FDetallesController.LocalizarPosicion(APresupuesto.Detalles, ADetallePosAct); + end; +end; + +procedure TPresupuestosClienteController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +var + APresupuesto : IBizPresupuestoCliente; + ADetalles : IBizDetallesPresupuestoCliente; +begin + inherited; + + if Supports(ADataTable, IBizDetallesPresupuestoCliente, ADetalles) and + Supports(ADetalles.DataTable.MasterSource.DataTable, IBizPresupuestoCliente, APresupuesto) then + begin + RecalcularImportes(APresupuesto); + end; +end; + +procedure TPresupuestosClienteController.RecuperarObjetos(APresupuesto: IBizPresupuestoCliente); +begin + RecuperarCliente(APresupuesto); +end; + +procedure TPresupuestosClienteController.RecuperarCliente( + APresupuesto: IBizPresupuestoCliente); +begin + APresupuesto._Cliente := (FClienteController.Buscar(APresupuesto.ID_Cliente) as IBizCliente); +end; + +function TPresupuestosClienteController.Existe(const ID: Integer): Boolean; +var + APresupuesto : IBizPresupuestoCliente; +begin + try + APresupuesto := Buscar(ID); + Result := Assigned(APresupuesto) and (APresupuesto.ID = ID); + finally + APresupuesto := NIL; + end; +end; + +function TPresupuestosClienteController.ExtraerSeleccionados(APresupuesto: IBizPresupuestoCliente): IBizPresupuestoCliente; +var + ASeleccionados : IBizPresupuestoCliente; +begin + ASeleccionados := (Self.Buscar(ID_NULO) as IBizPresupuestoCliente); + CopyDataTableDA5(APresupuesto.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + +procedure TPresupuestosClienteController.FiltrarAno(APresupuesto: IBizPresupuestoCliente; ADynWhereDataTable: WideString;const Ano: String); +var + Condicion: TDAWhereExpression; + FechaIni: String; + FechaFin: String; + +begin + APresupuesto.DataTable.DynamicWhere.Clear; + APresupuesto.DataTable.DynamicWhere.Xml := ADynWhereDataTable; + + if (Ano <> 'Todos') then + begin + // Filtrar las facturas actuales por empresa + FechaIni := '01/01/' + Ano; + FechaFin := '31/12/' + Ano; + with APresupuesto.DataTable.DynamicWhere do + begin + // (FECHA_INICIO between FECHA_FIN) + Condicion := NewBinaryExpression(NewField('', fld_PresupuestosClienteFECHA_PRESUPUESTO), NewConstant(FechaIni, datString), dboGreaterOrEqual); + Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_PresupuestosClienteFECHA_PRESUPUESTO), NewConstant(FechaFin, datString), dboLessOrEqual), Condicion, dboAnd); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Condicion, Expression, dboAnd); + end; + end; +end; + +procedure TPresupuestosClienteController.FiltrarEmpresa(APresupuesto: IBizPresupuestoCliente); +var + Condicion: TDAWhereExpression; +begin + if APresupuesto.DataTable.Active then + APresupuesto.DataTable.Active := False; + + // Filtrar los presupuestos actuales por empresa + with APresupuesto.DataTable.DynamicWhere do + begin + // (ID_EMPRESA >= ID) + Condicion := NewBinaryExpression(NewField('', fld_PresupuestosClienteID_EMPRESA), NewConstant(AppFactuGES.EmpresaActiva.ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; +end; + +procedure TPresupuestosClienteController.SetClienteController(const Value: IClientesController); +begin + FClienteController := Value; +end; + +procedure TPresupuestosClienteController.SetDetallesController(const Value: IDetallesPresupuestoClienteController); +begin + FDetallesController := Value; +end; + +procedure TPresupuestosClienteController.SetGestorDocumentosController( + const Value: IGestorDocumentosController); +begin + FGestorDocumentosController := Value; +end; + +{ +function TPresupuestosClienteController.SubirFichero(const ID: Integer; const NombreFichero: String; const Fichero: Binary): Boolean; +begin + Result := FDataModule.SubirFichero(ID, NombreFichero, Fichero); +end; +} + +function TPresupuestosClienteController.Guardar(APresupuesto: IBizPresupuestoCliente): Boolean; +begin + Result := False; + + if not Assigned(APresupuesto) then + raise Exception.Create ('Presupuesto no asignada'); + + if not Assigned(FDetallesController) then + raise Exception.Create ('Controller detalles no asignado'); + + if ValidarPresupuesto(APresupuesto) then + begin + ShowHourglassCursor; + + // Asegurarnos de que todos los importes estn bien. + RecalcularImportes(APresupuesto); + + try + APresupuesto.DataTable.ApplyUpdates; + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TPresupuestosClienteController.Localizar(APresupuestos: IBizPresupuestoCliente; + const ID: Integer): Boolean; +begin + Result := True; + ShowHourglassCursor; + try + with APresupuestos.DataTable do + begin + DisableControls; + First; + if not Locate(fld_PresupuestosClienteID, ID, []) then + Result := False; + EnableControls; + end; + finally + HideHourglassCursor; + end; +end; + +function TPresupuestosClienteController.Nuevo: IBizPresupuestoCliente; +var + APresupuesto : IBizPresupuestoCliente; +begin + APresupuesto := FDataModule.NewItem; + FiltrarEmpresa(APresupuesto); + APresupuesto.DataTable.Active := True; + APresupuesto.Insert; + Result := APresupuesto; +end; + +procedure TPresupuestosClienteController.QuitarDireccionEnvio( + APresupuesto: IBizPresupuestoCliente); +{var + bEnEdicion : Boolean;} +begin +{ + if not Assigned(APresupuesto) then + raise Exception.Create ('Presupuesto no asignado (QuitarDireccionEnvio)'); + + if APresupuesto.DataTable.Active then + APresupuesto.DataTable.Active := True; + + bEnEdicion := (APresupuesto.DataTable.State in dsEditModes); + if not bEnEdicion then + APresupuesto.Edit; + + ShowHourglassCursor; + APresupuesto.Edit; + try + APresupuesto.DataTable.FieldByName(fld_PresupuestosClienteCALLE).Clear; + APresupuesto.DataTable.FieldByName(fld_PresupuestosClientePOBLACION).Clear; + APresupuesto.DataTable.FieldByName(fld_PresupuestosClienteCODIGO_POSTAL).Clear; + APresupuesto.DataTable.FieldByName(fld_PresupuestosClientePROVINCIA).Clear; + APresupuesto.DataTable.FieldByName(fld_PresupuestosClienteTELEFONO).Clear; + APresupuesto.DataTable.FieldByName(fld_PresupuestosClientePERSONA_CONTACTO).Clear; + + if not bEnEdicion then + APresupuesto.Post; + finally + HideHourglassCursor; + end; +} +end; + +procedure TPresupuestosClienteController.Preview(APresupuesto: IBizPresupuestoCliente; AllItems: Boolean = false; Const AVerSello: Integer = 1); +var + AReportController : IPresupuestosClienteReportController; + ID_Presupuestos: TIntegerList; +begin + AReportController := TPresupuestosClienteReportController.Create; + try + ID_Presupuestos := TIntegerList.Create; + + //Si deseamos previsualizar todos los items del objeto presupuesto + if AllItems then + begin + with APresupuesto.DataTable do + begin + First; + while not EOF do + begin + ID_Presupuestos.Add(APresupuesto.ID); + Next; + end; + end; + end + //Solo previsualizamos el item seleccionado + else + ID_Presupuestos.Add(APresupuesto.ID); + + AReportController.Preview(ID_Presupuestos, AVerSello); + finally + AReportController := NIL; + FreeAndNil(ID_Presupuestos); + end; +end; + +procedure TPresupuestosClienteController.Print(APresupuesto: IBizPresupuestoCliente; AllItems: Boolean = false; Const AVerSello: Integer= 1); +var + AReportController : IPresupuestosClienteReportController; + ID_Presupuestos: TIntegerList; +begin + AReportController := TPresupuestosClienteReportController.Create; + ID_Presupuestos := TIntegerList.Create; + try + //Si deseamos imprimimos todos los items del objeto presupuesto + if AllItems then + begin + with APresupuesto.DataTable do + begin + First; + while not EOF do + begin + ID_Presupuestos.Add(APresupuesto.ID); + Next; + end; + end; + end + //Solo imprimimos el item seleccionado + else + ID_Presupuestos.Add(APresupuesto.ID); + + AReportController.Print(ID_Presupuestos, AVerSello); + + finally + AReportController := NIL; + FreeANDNIL(ID_Presupuestos); + end; +end; + +function TPresupuestosClienteController.GenerarCertificados( + APresupuesto: IBizPresupuestoCliente; AllItems: Boolean): Boolean; +var + AReportController : IPresupuestosClienteReportController; + ID_Presupuestos: TStringList; + ATitulo : String; + AComentario : String; + ARuta : String; + + + function _GenerarCertificado: Boolean; + var + AFile: string; + begin + AFile := ARuta + PathDelim + EscapeIllegalChars(APresupuesto.REFERENCIA + '.doc'); + Result := AReportController.GenerarCertificados(APresupuesto.ID, AFile); + end; + +begin + Result := False; + AReportController := TPresupuestosClienteReportController.Create; + ID_Presupuestos := TStringList.Create; + try + //Si deseamos imprimimos todos los items del objeto presupuesto + if AllItems then + begin + ATitulo := 'Generar certificados de trabajos en PDF'; + AComentario := 'Indique la carpeta donde se guardarn los certificados' + #13#10 + 'Se generarn como ficheros PDF.'; + end + else begin + ATitulo := 'Generar certificado de trabajo en PDF'; + AComentario := 'Indique la carpeta donde se guardar el certificado.' + #13#10 + 'Se generar como fichero PDF.'; + end; + + if PreguntarRuta(ATitulo, AComentario, ARuta) then + begin + if AllItems then + begin + APresupuesto.DataTable.First; + while not APresupuesto.DataTable.EOF do + begin + if (APresupuesto.SITUACION = SITUACION_PRESUPUESTO_ACEPTADO) then + _GenerarCertificado; + APresupuesto.DataTable.Next; + end; + end + else begin + if (APresupuesto.SITUACION = SITUACION_PRESUPUESTO_ACEPTADO) then + _GenerarCertificado; + end; + + Result := True; + end; + finally + AReportController := NIL; + FreeANDNIL(ID_Presupuestos); + end; +end; + +function TPresupuestosClienteController.GenerarEmailPresupuesto(APresupuesto: IBizPresupuestoCliente): Boolean; +begin + if not Assigned(APresupuesto) then + raise Exception.Create ('Presupuesto no asignadas (GenerarEmailPresupuesto)'); + + if APresupuesto.DataTable.Active then + APresupuesto.DataTable.Active := True; + + ShowHourglassCursor; + try + RecuperarCliente(APresupuesto); + EnviarPresupuestoPorEMail(APresupuesto); + finally + HideHourglassCursor; + end; +end; + +function TPresupuestosClienteController.GetClienteController: IClientesController; +begin + Result := FClienteController; +end; + +function TPresupuestosClienteController.GetDetallesController: IDetallesPresupuestoClienteController; +begin + Result := FDetallesController; +end; + +function TPresupuestosClienteController.GetGestorDocumentosController: IGestorDocumentosController; +begin + Result := FGestorDocumentosController; +end; + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteReportController.dcu b/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteReportController.dcu new file mode 100644 index 0000000..1a2297f Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteReportController.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteReportController.pas b/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteReportController.pas new file mode 100644 index 0000000..babbe54 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteReportController.pas @@ -0,0 +1,202 @@ +unit uPresupuestosClienteReportController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uIDataModulePresupuestosClienteReport, + uClientesController, uPresupuestosClienteController, uDetallesPresupuestoClienteController, + uBizPresupuestosCliente, uIntegerListUtils; + +type + IPresupuestosClienteReportController = interface(IControllerBase) + ['{41AE4B36-6114-4DDE-8BCF-288AA0E12449}'] + procedure Preview(const AListaID : TIntegerList; Const AVerSello: Integer); + procedure Print(const AListaID : TIntegerList; Const AVerSello: Integer); + function ExportToWord(const AID: Integer; const AFileName : String = ''; Const AVerSello: Integer=1): Boolean; + function ExportToPDF(const AID: Integer; const AFileName : String = ''; Const AVerSello: Integer=1): Boolean; + function GenerarCertificados(const AID: Integer; const AFileName : String): Boolean; + end; + + TPresupuestosClienteReportController = class(TControllerBase, IPresupuestosClienteReportController) + private + FDataModule : IDataModulePresupuestosClienteReport; + function CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; + public + constructor Create; override; + destructor Destroy; override; + + procedure Preview(const AListaID : TIntegerList; Const AVerSello: Integer); + procedure Print(const AListaID : TIntegerList; Const AVerSello: Integer); + function ExportToWord(const AID: Integer; const AFileName : String = ''; Const AVerSello: Integer=1): Boolean; + function ExportToPDF(const AID: Integer; const AFileName : String = ''; Const AVerSello: Integer=1): Boolean; + function GenerarCertificados(const AID: Integer; const AFileName : String): Boolean; + end; + + +implementation + +uses + uROTypes, uEditorRegistryUtils, uIEditorPresupuestosClientePreview, + uEditorPreview, uDataModulePresupuestosCliente, uEditorBase, + cxControls, uFactuGES_App, uStringsUtils, uSistemaFunc; + +{ TPresupuestosClienteReportController } + +constructor TPresupuestosClienteReportController.Create; +begin + inherited; + FDataModule := TDataModulePresupuestosCliente.Create(Nil); +end; + +function TPresupuestosClienteReportController.CreateEditor(const AName: String; + const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + + +destructor TPresupuestosClienteReportController.Destroy; +begin + FDataModule := NIL; + inherited; +end; + +function TPresupuestosClienteReportController.ExportToPDF(const AID: Integer; const AFileName: String; Const AVerSello: Integer): Boolean; +var + AStream: Binary; +begin + Result := False; + if EsCadenaVacia(AFileName) then + Exit; + + ShowHourglassCursor; + try + AStream := FDataModule.GetRptPDFPresupuesto(AID, AVerSello); + try + AStream.SaveToFile(AFileName); + Result := True; + finally + FreeAndNil(AStream); + end; + finally + HideHourglassCursor; + end; +end; + +function TPresupuestosClienteReportController.ExportToWord(const AID: Integer; const AFileName : String; Const AVerSello: Integer) : Boolean; +var + AStream: Binary; + AFile : String; +begin + Result := False; + AFile := AFileName; + if EsCadenaVacia(AFile) and (not PreguntarFicheroWordExportar(AFile)) then + Exit; + + ShowHourglassCursor; + try + AStream := FDataModule.GetRptWordPresupuesto(AID, AVerSello); + try + AStream.SaveToFile(AFile); + Result := True; + finally + FreeAndNil(AStream); + end; + finally + HideHourglassCursor; + end; +end; + +function TPresupuestosClienteReportController.GenerarCertificados( + const AID: Integer; const AFileName : String): Boolean; +var + AStream: Binary; + AFile : String; +begin + Result := False; + AFile := AFileName; + + if EsCadenaVacia(AFile) and (not PreguntarFicheroWordExportar(AFile)) then + Exit; + + ShowHourglassCursor; + try + AStream := FDataModule.GetRptWordCertificadoTrabajos(AID); + try + AStream.SaveToFile(AFile); + Result := True; + finally + FreeAndNil(AStream); + end; + finally + HideHourglassCursor; + end; +end; + +procedure TPresupuestosClienteReportController.Preview(const AListaID : TIntegerList; Const AVerSello: Integer); +var + AStream: Binary; + AEditor : IEditorPresupuestosClientePreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetRptPresupuestos(AListaID, AVerSello); + try + CreateEditor('EditorPresupuestosClientePreview', IEditorPresupuestosClientePreview, AEditor); + if Assigned(AEditor) then + begin + try + AEditor.Controller := Self; + AEditor.ListaID := AListaID; + AEditor.Title := 'Presupuesto - ' + AppFactuGES.EmpresaActiva.NOMBRE; + AEditor.LoadFromStream(AStream); + AEditor.Preview; + finally + AEditor.Release; + end; + end; + finally + FreeAndNil(AStream); + AEditor := Nil; + end; + finally + HideHourglassCursor; + end; +end; + +procedure TPresupuestosClienteReportController.Print(const AListaID : TIntegerList; Const AVerSello: Integer); +var + AStream: Binary; + AEditor : IEditorPresupuestosClientePreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetRptPresupuestos(AListaID, AVerSello); + try + CreateEditor('EditorPresupuestosClientePreview', IEditorPresupuestosClientePreview, AEditor); + if Assigned(AEditor) then + begin + try + AEditor.Controller := Self; + AEditor.ListaID := AListaID; + AEditor.Title := 'Presupuesto - ' + AppFactuGES.EmpresaActiva.NOMBRE; + AEditor.LoadFromStream(AStream); + AEditor.Print; + finally + AEditor.Release; + end; + end; + finally + FreeAndNil(AStream); + AEditor := Nil; + end; + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Data/PresupuestosCliente_data.dcu b/Source/Modulos/Presupuestos de cliente/Data/PresupuestosCliente_data.dcu new file mode 100644 index 0000000..7affc40 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Data/PresupuestosCliente_data.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Data/PresupuestosCliente_data.dpk b/Source/Modulos/Presupuestos de cliente/Data/PresupuestosCliente_data.dpk new file mode 100644 index 0000000..ac55e4d Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Data/PresupuestosCliente_data.dpk differ diff --git a/Source/Modulos/Presupuestos de cliente/Data/PresupuestosCliente_data.dproj b/Source/Modulos/Presupuestos de cliente/Data/PresupuestosCliente_data.dproj new file mode 100644 index 0000000..787e5aa --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Data/PresupuestosCliente_data.dproj @@ -0,0 +1,540 @@ + + + + {38eef566-1895-4bdd-8007-f92f5e32cce6} + PresupuestosCliente_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\PresupuestosCliente_data.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0PresupuestosCliente_data.dpk + + + + + MainSource + + + +
DataModulePresupuestosCliente
+
+
+
+ \ No newline at end of file diff --git a/Source/Modulos/Presupuestos de cliente/Data/PresupuestosCliente_data.drc b/Source/Modulos/Presupuestos de cliente/Data/PresupuestosCliente_data.drc new file mode 100644 index 0000000..3d79ae5 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Data/PresupuestosCliente_data.drc @@ -0,0 +1,17 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Presupuestos de cliente\Data\uDataModulePresupuestosCliente.dfm */ +/* C:\Codigo\Source\Modulos\Presupuestos de cliente\Data\PresupuestosCliente_data.res */ +/* c:\temp\dtf199.tmp */ diff --git a/Source/Modulos/Presupuestos de cliente/Data/PresupuestosCliente_data.rc b/Source/Modulos/Presupuestos de cliente/Data/PresupuestosCliente_data.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Data/PresupuestosCliente_data.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Presupuestos de cliente/Data/PresupuestosCliente_data.res b/Source/Modulos/Presupuestos de cliente/Data/PresupuestosCliente_data.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Data/PresupuestosCliente_data.res differ diff --git a/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.dcu b/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.dcu new file mode 100644 index 0000000..215047d Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.dfm b/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.dfm new file mode 100644 index 0000000..549b421 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.dfm @@ -0,0 +1,409 @@ +inherited DataModulePresupuestosCliente: TDataModulePresupuestosCliente + OnCreate = DAClientDataModuleCreate + Height = 370 + Width = 603 + object RORemoteService: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvPresupuestosCliente' + Left = 56 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 56 + Top = 84 + end + object rda_PresupuestosCliente: TDARemoteDataAdapter + DataStreamer = Bin2DataStreamer + GetSchemaCall.RemoteService = RORemoteService + GetDataCall.RemoteService = RORemoteService + UpdateDataCall.RemoteService = RORemoteService + GetScriptsCall.RemoteService = RORemoteService + RemoteService = RORemoteService + Left = 59 + Top = 151 + end + object tbl_PresupuestosCliente: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_PRESUPUESTOS_CLI_ID' + Required = True + ServerAutoRefresh = True + DictionaryEntry = 'PresupuestosCliente_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'PresupuestosCliente_ID_EMPRESA' + end + item + Name = 'FECHA_PRESUPUESTO' + DataType = datDateTime + DisplayLabel = 'PresupuestosCliente_FECHA_PRESUPUESTO' + DictionaryEntry = 'PresupuestosCliente_FECHA_PRESUPUESTO' + end + item + Name = 'FECHA_DECISION' + DataType = datDateTime + DisplayLabel = 'PresupuestosCliente_FECHA_DECISION' + DictionaryEntry = 'PresupuestosCliente_FECHA_DECISION' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + DictionaryEntry = 'PresupuestosCliente_REFERENCIA' + end + item + Name = 'REFERENCIA_AUX' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + DisplayLabel = 'Situaci'#243'n' + DictionaryEntry = 'PresupuestosCliente_SITUACION' + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + DictionaryEntry = 'PresupuestosCliente_ID_CLIENTE' + end + item + Name = 'ID_DIRECCION' + DataType = datInteger + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + DisplayLabel = 'PresupuestosCliente_NIF_CIF' + ServerAutoRefresh = True + DictionaryEntry = 'PresupuestosCliente_NIF_CIF' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'PresupuestosCliente_NOMBRE' + ServerAutoRefresh = True + DictionaryEntry = 'PresupuestosCliente_NOMBRE' + end + item + Name = 'REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + DisplayLabel = 'PedidosCliente_REFERENCIA_CLIENTE' + ServerAutoRefresh = True + DictionaryEntry = 'PresupuestosCliente_REFERENCIA_CLIENTE' + end + item + Name = 'CLIENTE_FINAL' + DataType = datString + Size = 255 + DisplayLabel = 'PresupuestosCliente_CLIENTE_FINAL' + DictionaryEntry = 'PresupuestosCliente_CLIENTE_FINAL' + end + item + Name = 'PORTADA' + DataType = datMemo + DisplayLabel = 'PresupuestosCliente_PORTADA' + DictionaryEntry = 'PresupuestosCliente_PORTADA' + end + item + Name = 'MEMORIA' + DataType = datMemo + DisplayLabel = 'PresupuestosCliente_MEMORIA' + DictionaryEntry = 'PresupuestosCliente_MEMORIA' + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + DisplayLabel = 'Observaciones' + DictionaryEntry = 'PresupuestosCliente_OBSERVACIONES' + end + item + Name = 'INCIDENCIAS' + DataType = datMemo + DictionaryEntry = 'PresupuestosCliente_INCIDENCIAS' + end + item + Name = 'INCIDENCIAS_ACTIVAS' + DataType = datInteger + DictionaryEntry = 'PresupuestosCliente_INCIDENCIAS_ACTIVAS' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'PresupuestosCliente_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'PresupuestosCliente_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'PresupuestosCliente_USUARIO' + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + DisplayLabel = 'Importe neto' + Alignment = taRightJustify + DictionaryEntry = 'PresupuestosCliente_IMPORTE_NETO' + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + DisplayLabel = 'Importe del porte' + Alignment = taRightJustify + DictionaryEntry = 'PresupuestosCliente_IMPORTE_PORTE' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + DictionaryEntry = 'PresupuestosCliente_DESCUENTO' + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + DictionaryEntry = 'PresupuestosCliente_IMPORTE_DESCUENTO' + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + DictionaryEntry = 'PresupuestosCliente_BASE_IMPONIBLE' + end + item + Name = 'IVA' + DataType = datFloat + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + DictionaryEntry = 'PresupuestosCliente_IVA' + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + DictionaryEntry = 'PresupuestosCliente_IMPORTE_IVA' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + DictionaryEntry = 'PresupuestosCliente_IMPORTE_TOTAL' + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + DictionaryEntry = 'PresupuestosCliente_ID_FORMA_PAGO' + end + item + Name = 'ID_FACTURA' + DataType = datInteger + end + item + Name = 'FACTURA' + DataType = datString + Size = 255 + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + DisplayLabel = 'Persona de contacto' + DictionaryEntry = 'PresupuestosCliente_PERSONA_CONTACTO' + end + item + Name = 'DESCRIPCION_BONIFICACION' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_BONIFICACION' + DataType = datCurrency + ServerAutoRefresh = True + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_PresupuestosCliente + LogicalName = 'PresupuestosCliente' + IndexDefs = <> + Left = 248 + Top = 88 + end + object ds_PresupuestosCliente: TDADataSource + DataSet = tbl_PresupuestosCliente.Dataset + DataTable = tbl_PresupuestosCliente + Left = 248 + Top = 32 + end + object tbl_PresupuestosCliente_Detalles: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_PRESUPUESTOS_CLI_DETALLE_ID' + Required = True + ServerAutoRefresh = True + DictionaryEntry = 'PresupuestosCliente_Detalles_ID' + InPrimaryKey = True + end + item + Name = 'ID_PRESUPUESTO' + DataType = datInteger + Required = True + DisplayLabel = 'PresupuestosCliente_Detalles_ID_PRESUPUESTO' + DictionaryEntry = 'PresupuestosCliente_Detalles_ID_PRESUPUESTO' + end + item + Name = 'POSICION' + DataType = datInteger + DictionaryEntry = 'PresupuestosCliente_Detalles_POSICION' + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + DictionaryEntry = 'PresupuestosCliente_Detalles_TIPO_DETALLE' + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + DictionaryEntry = 'PresupuestosCliente_Detalles_CONCEPTO' + end + item + Name = 'CANTIDAD' + DataType = datFloat + Alignment = taRightJustify + DictionaryEntry = 'PresupuestosCliente_Detalles_CANTIDAD' + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + DisplayLabel = 'Unidad de medida' + DictionaryEntry = 'PresupuestosCliente_Detalles_UNIDAD_MEDIDA' + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + DictionaryEntry = 'PresupuestosCliente_Detalles_IMPORTE_UNIDAD' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + DictionaryEntry = 'PresupuestosCliente_Detalles_IMPORTE_TOTAL' + end + item + Name = 'VISIBLE' + DataType = datInteger + DictionaryEntry = 'PresupuestosCliente_Detalles_VISIBLE' + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + DictionaryEntry = 'PresupuestosCliente_Detalles_ID_ARTICULO' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + DictionaryEntry = 'PresupuestosCliente_Detalles_DESCUENTO' + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + DisplayLabel = 'Importe porte' + Alignment = taRightJustify + DictionaryEntry = 'PresupuestosCliente_Detalles_IMPORTE_PORTE' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'PresupuestosCliente_Detalles_REFERENCIA' + DictionaryEntry = 'PresupuestosCliente_Detalles_REFERENCIA' + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'PresupuestosCliente_Detalles_REFERENCIA_PROVEEDOR' + DictionaryEntry = 'PresupuestosCliente_Detalles_REFERENCIA_PROVEEDOR' + end> + Params = <> + MasterMappingMode = mmWhere + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_PresupuestosCliente + MasterSource = ds_PresupuestosCliente + MasterFields = 'ID' + DetailFields = 'ID_PRESUPUESTO' + LogicalName = 'PresupuestosCliente_Detalles' + IndexDefs = <> + Left = 464 + Top = 88 + end + object ds_PresupuestosCliente_Detalles: TDADataSource + DataSet = tbl_PresupuestosCliente_Detalles.Dataset + DataTable = tbl_PresupuestosCliente_Detalles + Left = 464 + Top = 32 + end + object RORemoteService1: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvGestorDocumentos' + Left = 56 + Top = 216 + end + object tbl_ListaAnosPresupuestos: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ANO' + DataType = datString + Size = 254 + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_PresupuestosCliente + LogicalName = 'ListaAnosPresupuestos' + IndexDefs = <> + Left = 248 + Top = 192 + end + object ds_ListaAnosPresupuestos: TDADataSource + DataSet = tbl_ListaAnosPresupuestos.Dataset + DataTable = tbl_ListaAnosPresupuestos + Left = 248 + Top = 144 + end +end diff --git a/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.pas b/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.pas new file mode 100644 index 0000000..b617682 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.pas @@ -0,0 +1,249 @@ +unit uDataModulePresupuestosCliente; + +interface + +uses + DB, Classes, SysUtils, uDADesigntimeCall, + uRORemoteService, uROClient, uROBinMessage, uDAScriptingProvider, + uDACDSDataTable, uROWinInetHttpChannel, uDADataTable, uDABINAdapter, + + uROTypes, + uIDataModulePresupuestosCliente, uBizPresupuestosCliente, uBizDetallesPresupuestoCliente, + uIDataModulePresupuestosClienteReport, uDataModuleBase, uDAInterfaces, + uRODynamicRequest, uDADataStreamer, uDARemoteDataAdapter, uDABin2DataStreamer, + uDAMemDataTable, uIntegerListUtils; + +type + TDataModulePresupuestosCliente = class(TDataModuleBase, IDataModulePresupuestosCliente, IDataModulePresupuestosClienteReport) + RORemoteService: TRORemoteService; + Bin2DataStreamer: TDABin2DataStreamer; + rda_PresupuestosCliente: TDARemoteDataAdapter; + tbl_PresupuestosCliente: TDAMemDataTable; + ds_PresupuestosCliente: TDADataSource; + tbl_PresupuestosCliente_Detalles: TDAMemDataTable; + ds_PresupuestosCliente_Detalles: TDADataSource; + RORemoteService1: TRORemoteService; + tbl_ListaAnosPresupuestos: TDAMemDataTable; + ds_ListaAnosPresupuestos: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + + private + function _GetDetalles : IBizDetallesPresupuestoCliente; + + protected + procedure AsignarClaseNegocio(APresupuesto: TDADataTable); + + public + function GetItems : IBizPresupuestoCliente; overload; + function GetItems(const AListaID: TIntegerList) : IBizPresupuestoCliente; overload; + + function GetItem(const ID : Integer) : IBizPresupuestoCliente; + function NewItem : IBizPresupuestoCliente; + + // Report + function GetRptPresupuestos(const AListaID: TIntegerList; Const AVerSello: Integer): Binary; + function GetRptWordPresupuesto(const AID: Integer; Const AVerSello: Integer): Binary; + function GetRptWordCertificadoTrabajos(const AID: Integer): Binary; + function GetRptPDFPresupuesto(const AID: Integer; Const AVerSello: Integer): Binary; + + function GetAnosItems : TStringList; + end; + +implementation + +{$R *.DFM} + +uses + cxControls, FactuGES_Intf, uDataModuleConexion, Dialogs, DataAbstract4_Intf, + uDataTableUtils, schPresupuestosClienteClient_Intf, uBizContactos; + +{ TdmPresupuestosCliente } + +procedure TDataModulePresupuestosCliente.AsignarClaseNegocio(APresupuesto: TDADataTable); +begin + APresupuesto.BusinessRulesID := BIZ_CLIENT_PRESUPUESTO_CLIENTE; +end; + +procedure TDataModulePresupuestosCliente.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModulePresupuestosCliente.GetRptPDFPresupuesto(const AID: Integer; Const AVerSello: Integer): Binary; +var + AParam : TIntegerArray; +begin + AParam := TIntegerArray.Create; + try + AParam.Add(AID); + Result := (RORemoteService as IsrvPresupuestosCliente).GenerarInformeEnPDF(AParam, AVerSello) + finally + FreeANDNIL(AParam) + end; +end; + +function TDataModulePresupuestosCliente.GetRptPresupuestos(const AListaID: TIntegerList; Const AVerSello: Integer): Binary; +var + AParam : TIntegerArray; +begin + AParam := AListaID.ToIntegerArray; + try + Result := (RORemoteService as IsrvPresupuestosCliente).GenerarInforme(AParam, AVerSello) + finally + FreeANDNIL(AParam) + end; +end; + +function TDataModulePresupuestosCliente.GetRptWordCertificadoTrabajos( + const AID: Integer): Binary; +begin + Result := (RORemoteService as IsrvPresupuestosCliente).GenerarCertificadoTrabajosEnWord(AID) +end; + +function TDataModulePresupuestosCliente.GetRptWordPresupuesto(const AID: Integer; Const AVerSello: Integer): Binary; +begin + Result := (RORemoteService as IsrvPresupuestosCliente).GenerarInformeEnWord(AID, AVerSello) +end; + +function TDataModulePresupuestosCliente.NewItem: IBizPresupuestoCliente; +begin + Result := GetItem(ID_NULO) +end; + +{ +function TDataModulePresupuestosCliente.SubirFichero(const ID: Integer; const NombreFichero: String; const Fichero: Binary): Boolean; +begin + Result := False; + try + Result := (RORemoteService1 as IsrvGestorDocumentos).SubirFichero(TRdxAlmacenes_Presupuestos, ID, NombreFichero, Fichero); + finally + // + end; +end; +} + +function TDataModulePresupuestosCliente._GetDetalles: IBizDetallesPresupuestoCliente; +var + ADetalles : TDAMemDataTable; +begin + ShowHourglassCursor; + try + ADetalles := CloneDataTable(tbl_PresupuestosCliente_Detalles); + with ADetalles do + begin + BusinessRulesID := BIZ_CLIENT_DETALLES_PRESUPUESTO_CLIENTE; + DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; + end; + Result := (ADetalles as IBizDetallesPresupuestoCliente); + finally + HideHourglassCursor; + end; +end; + +function TDataModulePresupuestosCliente.GetAnosItems: TStringList; +var + AListaAnos: TStringList; +begin + AListaAnos := TStringList.Create; + ShowHourglassCursor; + try + with tbl_ListaAnosPresupuestos do + begin + Open; + First; + while not eof do + begin + AListaAnos.Add(Format('%s=%s', [Fields[0].AsString, Fields[0].AsString])); + Next; + end; + Close; + end; + Result := AListaAnos; + finally + HideHourglassCursor; + end; +end; + +function TDataModulePresupuestosCliente.GetItem(const ID: Integer): IBizPresupuestoCliente; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + + with Result.DataTable.DynamicWhere do + begin + // (ID = :ID) + Condicion := NewBinaryExpression(NewField('', fld_PresupuestosClienteID), NewConstant(ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TDataModulePresupuestosCliente.GetItems( + const AListaID: TIntegerList): IBizPresupuestoCliente; +var + Condicion: TDAWhereExpression; + i : Integer; + AArray : Array of TDAWhereExpression; +begin + if not Assigned(AListaID) then + raise Exception.Create('ListaID no asignada (GetItems)'); + + ShowHourglassCursor; + try + Result := Self.GetItems; + + with Result.DataTable.DynamicWhere do + begin + // (ID in (1, 2, 3...) + + SetLength(AArray, AListaID.Count); + for i := 0 to AListaID.Count - 1 do + AArray[i] := NewConstant(AListaID[i], datInteger); + + Condicion := NewBinaryExpression(NewField('', fld_PresupuestosClienteID), NewList(AArray), dboIn); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TDataModulePresupuestosCliente.GetItems: IBizPresupuestoCliente; +var + APresupuesto: TDAMemDataTable; +begin + ShowHourglassCursor; + try + APresupuesto := CloneDataTable(tbl_PresupuestosCliente); + AsignarClaseNegocio(APresupuesto); + + // EL CAMPO REFERENCIA TIENEN QUE SER AUTOREFRESH!!!!! + APresupuesto.FieldByName(fld_PresupuestosClienteREFERENCIA).ServerAutoRefresh := TRUE; + + with TBizPresupuestoCliente(APresupuesto.BusinessEventsObj) do + Detalles := _GetDetalles; + + Result := (APresupuesto as IBizPresupuestoCliente); + + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Model/Data/uIDataModulePresupuestosCliente.dcu b/Source/Modulos/Presupuestos de cliente/Model/Data/uIDataModulePresupuestosCliente.dcu new file mode 100644 index 0000000..6323145 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Model/Data/uIDataModulePresupuestosCliente.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Model/Data/uIDataModulePresupuestosCliente.pas b/Source/Modulos/Presupuestos de cliente/Model/Data/uIDataModulePresupuestosCliente.pas new file mode 100644 index 0000000..74a027c --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Model/Data/uIDataModulePresupuestosCliente.pas @@ -0,0 +1,21 @@ +unit uIDataModulePresupuestosCliente; + +interface + +uses + Classes, uROTypes, uBizPresupuestosCliente, uBizDetallesPresupuestoCliente, + uIntegerListUtils; + +type + IDataModulePresupuestosCliente = interface + ['{F0DDD126-9E62-4FEC-A849-FDCA75718F5B}'] + function GetAnosItems : TStringList; + function GetItems: IBizPresupuestoCliente; overload; + function GetItems(const AListaID: TIntegerList) : IBizPresupuestoCliente; overload; + function GetItem(const ID : Integer) : IBizPresupuestoCliente; + function NewItem : IBizPresupuestoCliente; + end; + +implementation + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Model/Data/uIDataModulePresupuestosClienteReport.dcu b/Source/Modulos/Presupuestos de cliente/Model/Data/uIDataModulePresupuestosClienteReport.dcu new file mode 100644 index 0000000..1c4c10c Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Model/Data/uIDataModulePresupuestosClienteReport.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Model/Data/uIDataModulePresupuestosClienteReport.pas b/Source/Modulos/Presupuestos de cliente/Model/Data/uIDataModulePresupuestosClienteReport.pas new file mode 100644 index 0000000..0234c20 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Model/Data/uIDataModulePresupuestosClienteReport.pas @@ -0,0 +1,19 @@ +unit uIDataModulePresupuestosClienteReport; + +interface + +uses + uROTypes, uIntegerListUtils; + +type + IDataModulePresupuestosClienteReport = interface + ['{70CEBB06-376F-4363-B80F-DDA4324E0F85}'] + function GetRptPresupuestos(const AListaID: TIntegerList; Const AVerSello: Integer): Binary; + function GetRptWordPresupuesto(const AID: Integer; Const AVerSello: Integer): Binary; + function GetRptWordCertificadoTrabajos(const AID: Integer): Binary; + function GetRptPDFPresupuesto(const AID: Integer; Const AVerSello: Integer): Binary; + end; + +implementation + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Model/PresupuestosCliente_model.dcu b/Source/Modulos/Presupuestos de cliente/Model/PresupuestosCliente_model.dcu new file mode 100644 index 0000000..689b9d1 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Model/PresupuestosCliente_model.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Model/PresupuestosCliente_model.dpk b/Source/Modulos/Presupuestos de cliente/Model/PresupuestosCliente_model.dpk new file mode 100644 index 0000000..f67bdc8 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Model/PresupuestosCliente_model.dpk @@ -0,0 +1,45 @@ +package PresupuestosCliente_model; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + rtl, + dbrtl, + vcl, + vcldb, + dsnap, + adortl, + Base, + Contactos_model; + +contains + uIDataModulePresupuestosCliente in 'Data\uIDataModulePresupuestosCliente.pas', + uBizDetallesPresupuestoCliente in 'uBizDetallesPresupuestoCliente.pas', + uBizPresupuestosCliente in 'uBizPresupuestosCliente.pas', + uIDataModulePresupuestosClienteReport in 'Data\uIDataModulePresupuestosClienteReport.pas', + schPresupuestosClienteClient_Intf in 'schPresupuestosClienteClient_Intf.pas', + schPresupuestosClienteServer_Intf in 'schPresupuestosClienteServer_Intf.pas'; + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Model/PresupuestosCliente_model.dproj b/Source/Modulos/Presupuestos de cliente/Model/PresupuestosCliente_model.dproj new file mode 100644 index 0000000..a9dc511 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Model/PresupuestosCliente_model.dproj @@ -0,0 +1,553 @@ + + + + {a7225a8d-f40d-4878-9a27-c5de0e7cb638} + PresupuestosCliente_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\PresupuestosCliente_model.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + EurekaLog 5.1.9 + PresupuestosCliente_model.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Presupuestos de cliente/Model/PresupuestosCliente_model.drc b/Source/Modulos/Presupuestos de cliente/Model/PresupuestosCliente_model.drc new file mode 100644 index 0000000..d003769 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Model/PresupuestosCliente_model.drc @@ -0,0 +1,16 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Presupuestos de cliente\Model\PresupuestosCliente_model.res */ +/* c:\temp\dtf197.tmp */ diff --git a/Source/Modulos/Presupuestos de cliente/Model/PresupuestosCliente_model.rc b/Source/Modulos/Presupuestos de cliente/Model/PresupuestosCliente_model.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Model/PresupuestosCliente_model.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Presupuestos de cliente/Model/PresupuestosCliente_model.res b/Source/Modulos/Presupuestos de cliente/Model/PresupuestosCliente_model.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Model/PresupuestosCliente_model.res differ diff --git a/Source/Modulos/Presupuestos de cliente/Model/PresupuestosCliente_model_project.tvsconfig b/Source/Modulos/Presupuestos de cliente/Model/PresupuestosCliente_model_project.tvsconfig new file mode 100644 index 0000000..c8f2834 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Model/PresupuestosCliente_model_project.tvsconfig @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteClient_Intf.dcu b/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteClient_Intf.dcu new file mode 100644 index 0000000..6b53940 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteClient_Intf.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteClient_Intf.pas b/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteClient_Intf.pas new file mode 100644 index 0000000..770c1cb --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteClient_Intf.pas @@ -0,0 +1,1955 @@ +unit schPresupuestosClienteClient_Intf; + +interface + +uses + Classes, DB, schBase_Intf, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_ListaAnosPresupuestos = '{B4D25BFF-BFAC-4141-925F-82DC23A4D3A2}'; + RID_PresupuestosCliente = '{BAEC8917-A7DC-4606-AE7E-B8B8748290B1}'; + RID_PresupuestosCliente_Detalles = '{C1C9402A-CDC5-4B77-BE8A-5907A6423EEC}'; + + { Data table names } + nme_ListaAnosPresupuestos = 'ListaAnosPresupuestos'; + nme_PresupuestosCliente = 'PresupuestosCliente'; + nme_PresupuestosCliente_Detalles = 'PresupuestosCliente_Detalles'; + + { ListaAnosPresupuestos fields } + fld_ListaAnosPresupuestosANO = 'ANO'; + + { ListaAnosPresupuestos field indexes } + idx_ListaAnosPresupuestosANO = 0; + + { PresupuestosCliente fields } + fld_PresupuestosClienteID = 'ID'; + fld_PresupuestosClienteID_EMPRESA = 'ID_EMPRESA'; + fld_PresupuestosClienteFECHA_PRESUPUESTO = 'FECHA_PRESUPUESTO'; + fld_PresupuestosClienteFECHA_DECISION = 'FECHA_DECISION'; + fld_PresupuestosClienteREFERENCIA = 'REFERENCIA'; + fld_PresupuestosClienteREFERENCIA_AUX = 'REFERENCIA_AUX'; + fld_PresupuestosClienteSITUACION = 'SITUACION'; + fld_PresupuestosClienteID_CLIENTE = 'ID_CLIENTE'; + fld_PresupuestosClienteID_DIRECCION = 'ID_DIRECCION'; + fld_PresupuestosClienteNIF_CIF = 'NIF_CIF'; + fld_PresupuestosClienteNOMBRE = 'NOMBRE'; + fld_PresupuestosClienteREFERENCIA_CLIENTE = 'REFERENCIA_CLIENTE'; + fld_PresupuestosClienteCLIENTE_FINAL = 'CLIENTE_FINAL'; + fld_PresupuestosClientePORTADA = 'PORTADA'; + fld_PresupuestosClienteMEMORIA = 'MEMORIA'; + fld_PresupuestosClienteOBSERVACIONES = 'OBSERVACIONES'; + fld_PresupuestosClienteINCIDENCIAS = 'INCIDENCIAS'; + fld_PresupuestosClienteINCIDENCIAS_ACTIVAS = 'INCIDENCIAS_ACTIVAS'; + fld_PresupuestosClienteFECHA_ALTA = 'FECHA_ALTA'; + fld_PresupuestosClienteFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_PresupuestosClienteUSUARIO = 'USUARIO'; + fld_PresupuestosClienteIMPORTE_NETO = 'IMPORTE_NETO'; + fld_PresupuestosClienteIMPORTE_PORTE = 'IMPORTE_PORTE'; + fld_PresupuestosClienteDESCUENTO = 'DESCUENTO'; + fld_PresupuestosClienteIMPORTE_DESCUENTO = 'IMPORTE_DESCUENTO'; + fld_PresupuestosClienteBASE_IMPONIBLE = 'BASE_IMPONIBLE'; + fld_PresupuestosClienteIVA = 'IVA'; + fld_PresupuestosClienteIMPORTE_IVA = 'IMPORTE_IVA'; + fld_PresupuestosClienteIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_PresupuestosClienteID_FORMA_PAGO = 'ID_FORMA_PAGO'; + fld_PresupuestosClienteID_FACTURA = 'ID_FACTURA'; + fld_PresupuestosClienteFACTURA = 'FACTURA'; + fld_PresupuestosClientePERSONA_CONTACTO = 'PERSONA_CONTACTO'; + fld_PresupuestosClienteDESCRIPCION_BONIFICACION = 'DESCRIPCION_BONIFICACION'; + fld_PresupuestosClienteIMPORTE_BONIFICACION = 'IMPORTE_BONIFICACION'; + + { PresupuestosCliente field indexes } + idx_PresupuestosClienteID = 0; + idx_PresupuestosClienteID_EMPRESA = 1; + idx_PresupuestosClienteFECHA_PRESUPUESTO = 2; + idx_PresupuestosClienteFECHA_DECISION = 3; + idx_PresupuestosClienteREFERENCIA = 4; + idx_PresupuestosClienteREFERENCIA_AUX = 5; + idx_PresupuestosClienteSITUACION = 6; + idx_PresupuestosClienteID_CLIENTE = 7; + idx_PresupuestosClienteID_DIRECCION = 8; + idx_PresupuestosClienteNIF_CIF = 9; + idx_PresupuestosClienteNOMBRE = 10; + idx_PresupuestosClienteREFERENCIA_CLIENTE = 11; + idx_PresupuestosClienteCLIENTE_FINAL = 12; + idx_PresupuestosClientePORTADA = 13; + idx_PresupuestosClienteMEMORIA = 14; + idx_PresupuestosClienteOBSERVACIONES = 15; + idx_PresupuestosClienteINCIDENCIAS = 16; + idx_PresupuestosClienteINCIDENCIAS_ACTIVAS = 17; + idx_PresupuestosClienteFECHA_ALTA = 18; + idx_PresupuestosClienteFECHA_MODIFICACION = 19; + idx_PresupuestosClienteUSUARIO = 20; + idx_PresupuestosClienteIMPORTE_NETO = 21; + idx_PresupuestosClienteIMPORTE_PORTE = 22; + idx_PresupuestosClienteDESCUENTO = 23; + idx_PresupuestosClienteIMPORTE_DESCUENTO = 24; + idx_PresupuestosClienteBASE_IMPONIBLE = 25; + idx_PresupuestosClienteIVA = 26; + idx_PresupuestosClienteIMPORTE_IVA = 27; + idx_PresupuestosClienteIMPORTE_TOTAL = 28; + idx_PresupuestosClienteID_FORMA_PAGO = 29; + idx_PresupuestosClienteID_FACTURA = 30; + idx_PresupuestosClienteFACTURA = 31; + idx_PresupuestosClientePERSONA_CONTACTO = 32; + idx_PresupuestosClienteDESCRIPCION_BONIFICACION = 33; + idx_PresupuestosClienteIMPORTE_BONIFICACION = 34; + + { PresupuestosCliente_Detalles fields } + fld_PresupuestosCliente_DetallesID = 'ID'; + fld_PresupuestosCliente_DetallesID_PRESUPUESTO = 'ID_PRESUPUESTO'; + fld_PresupuestosCliente_DetallesPOSICION = 'POSICION'; + fld_PresupuestosCliente_DetallesTIPO_DETALLE = 'TIPO_DETALLE'; + fld_PresupuestosCliente_DetallesCONCEPTO = 'CONCEPTO'; + fld_PresupuestosCliente_DetallesCANTIDAD = 'CANTIDAD'; + fld_PresupuestosCliente_DetallesUNIDAD_MEDIDA = 'UNIDAD_MEDIDA'; + fld_PresupuestosCliente_DetallesIMPORTE_UNIDAD = 'IMPORTE_UNIDAD'; + fld_PresupuestosCliente_DetallesIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_PresupuestosCliente_DetallesVISIBLE = 'VISIBLE'; + fld_PresupuestosCliente_DetallesID_ARTICULO = 'ID_ARTICULO'; + fld_PresupuestosCliente_DetallesDESCUENTO = 'DESCUENTO'; + fld_PresupuestosCliente_DetallesIMPORTE_PORTE = 'IMPORTE_PORTE'; + fld_PresupuestosCliente_DetallesREFERENCIA = 'REFERENCIA'; + fld_PresupuestosCliente_DetallesREFERENCIA_PROVEEDOR = 'REFERENCIA_PROVEEDOR'; + + { PresupuestosCliente_Detalles field indexes } + idx_PresupuestosCliente_DetallesID = 0; + idx_PresupuestosCliente_DetallesID_PRESUPUESTO = 1; + idx_PresupuestosCliente_DetallesPOSICION = 2; + idx_PresupuestosCliente_DetallesTIPO_DETALLE = 3; + idx_PresupuestosCliente_DetallesCONCEPTO = 4; + idx_PresupuestosCliente_DetallesCANTIDAD = 5; + idx_PresupuestosCliente_DetallesUNIDAD_MEDIDA = 6; + idx_PresupuestosCliente_DetallesIMPORTE_UNIDAD = 7; + idx_PresupuestosCliente_DetallesIMPORTE_TOTAL = 8; + idx_PresupuestosCliente_DetallesVISIBLE = 9; + idx_PresupuestosCliente_DetallesID_ARTICULO = 10; + idx_PresupuestosCliente_DetallesDESCUENTO = 11; + idx_PresupuestosCliente_DetallesIMPORTE_PORTE = 12; + idx_PresupuestosCliente_DetallesREFERENCIA = 13; + idx_PresupuestosCliente_DetallesREFERENCIA_PROVEEDOR = 14; + +type + { IListaAnosPresupuestos } + IListaAnosPresupuestos = interface(IDAStronglyTypedDataTable) + ['{AA0035CA-BE66-4730-A30B-E09CE7BB0325}'] + { Property getters and setters } + function GetANOValue: String; + procedure SetANOValue(const aValue: String); + function GetANOIsNull: Boolean; + procedure SetANOIsNull(const aValue: Boolean); + + + { Properties } + property ANO: String read GetANOValue write SetANOValue; + property ANOIsNull: Boolean read GetANOIsNull write SetANOIsNull; + end; + + { TListaAnosPresupuestosDataTableRules } + TListaAnosPresupuestosDataTableRules = class(TIntfObjectDADataTableRules, IListaAnosPresupuestos) + private + protected + { Property getters and setters } + function GetANOValue: String; virtual; + procedure SetANOValue(const aValue: String); virtual; + function GetANOIsNull: Boolean; virtual; + procedure SetANOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ANO: String read GetANOValue write SetANOValue; + property ANOIsNull: Boolean read GetANOIsNull write SetANOIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IPresupuestosCliente } + IPresupuestosCliente = interface(IDAStronglyTypedDataTable) + ['{294F97CB-1951-4F11-A7D9-2433A2E0237F}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_EMPRESAIsNull: Boolean; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); + function GetFECHA_PRESUPUESTOValue: DateTime; + procedure SetFECHA_PRESUPUESTOValue(const aValue: DateTime); + function GetFECHA_PRESUPUESTOIsNull: Boolean; + procedure SetFECHA_PRESUPUESTOIsNull(const aValue: Boolean); + function GetFECHA_DECISIONValue: DateTime; + procedure SetFECHA_DECISIONValue(const aValue: DateTime); + function GetFECHA_DECISIONIsNull: Boolean; + procedure SetFECHA_DECISIONIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetREFERENCIA_AUXValue: String; + procedure SetREFERENCIA_AUXValue(const aValue: String); + function GetREFERENCIA_AUXIsNull: Boolean; + procedure SetREFERENCIA_AUXIsNull(const aValue: Boolean); + function GetSITUACIONValue: String; + procedure SetSITUACIONValue(const aValue: String); + function GetSITUACIONIsNull: Boolean; + procedure SetSITUACIONIsNull(const aValue: Boolean); + function GetID_CLIENTEValue: Integer; + procedure SetID_CLIENTEValue(const aValue: Integer); + function GetID_CLIENTEIsNull: Boolean; + procedure SetID_CLIENTEIsNull(const aValue: Boolean); + function GetID_DIRECCIONValue: Integer; + procedure SetID_DIRECCIONValue(const aValue: Integer); + function GetID_DIRECCIONIsNull: Boolean; + procedure SetID_DIRECCIONIsNull(const aValue: Boolean); + function GetNIF_CIFValue: String; + procedure SetNIF_CIFValue(const aValue: String); + function GetNIF_CIFIsNull: Boolean; + procedure SetNIF_CIFIsNull(const aValue: Boolean); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetNOMBREIsNull: Boolean; + procedure SetNOMBREIsNull(const aValue: Boolean); + function GetREFERENCIA_CLIENTEValue: String; + procedure SetREFERENCIA_CLIENTEValue(const aValue: String); + function GetREFERENCIA_CLIENTEIsNull: Boolean; + procedure SetREFERENCIA_CLIENTEIsNull(const aValue: Boolean); + function GetCLIENTE_FINALValue: String; + procedure SetCLIENTE_FINALValue(const aValue: String); + function GetCLIENTE_FINALIsNull: Boolean; + procedure SetCLIENTE_FINALIsNull(const aValue: Boolean); + function GetPORTADAValue: IROStrings; + function GetPORTADAIsNull: Boolean; + procedure SetPORTADAIsNull(const aValue: Boolean); + function GetMEMORIAValue: IROStrings; + function GetMEMORIAIsNull: Boolean; + procedure SetMEMORIAIsNull(const aValue: Boolean); + function GetOBSERVACIONESValue: IROStrings; + function GetOBSERVACIONESIsNull: Boolean; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); + function GetINCIDENCIASValue: IROStrings; + function GetINCIDENCIASIsNull: Boolean; + procedure SetINCIDENCIASIsNull(const aValue: Boolean); + function GetINCIDENCIAS_ACTIVASValue: Integer; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); + function GetINCIDENCIAS_ACTIVASIsNull: Boolean; + procedure SetINCIDENCIAS_ACTIVASIsNull(const aValue: Boolean); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_ALTAIsNull: Boolean; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONIsNull: Boolean; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetUSUARIOIsNull: Boolean; + procedure SetUSUARIOIsNull(const aValue: Boolean); + function GetIMPORTE_NETOValue: Currency; + procedure SetIMPORTE_NETOValue(const aValue: Currency); + function GetIMPORTE_NETOIsNull: Boolean; + procedure SetIMPORTE_NETOIsNull(const aValue: Boolean); + function GetIMPORTE_PORTEValue: Currency; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); + function GetIMPORTE_PORTEIsNull: Boolean; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetDESCUENTOIsNull: Boolean; + procedure SetDESCUENTOIsNull(const aValue: Boolean); + function GetIMPORTE_DESCUENTOValue: Currency; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); + function GetIMPORTE_DESCUENTOIsNull: Boolean; + procedure SetIMPORTE_DESCUENTOIsNull(const aValue: Boolean); + function GetBASE_IMPONIBLEValue: Currency; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); + function GetBASE_IMPONIBLEIsNull: Boolean; + procedure SetBASE_IMPONIBLEIsNull(const aValue: Boolean); + function GetIVAValue: Float; + procedure SetIVAValue(const aValue: Float); + function GetIVAIsNull: Boolean; + procedure SetIVAIsNull(const aValue: Boolean); + function GetIMPORTE_IVAValue: Currency; + procedure SetIMPORTE_IVAValue(const aValue: Currency); + function GetIMPORTE_IVAIsNull: Boolean; + procedure SetIMPORTE_IVAIsNull(const aValue: Boolean); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetIMPORTE_TOTALIsNull: Boolean; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); + function GetID_FORMA_PAGOValue: Integer; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); + function GetID_FORMA_PAGOIsNull: Boolean; + procedure SetID_FORMA_PAGOIsNull(const aValue: Boolean); + function GetID_FACTURAValue: Integer; + procedure SetID_FACTURAValue(const aValue: Integer); + function GetID_FACTURAIsNull: Boolean; + procedure SetID_FACTURAIsNull(const aValue: Boolean); + function GetFACTURAValue: String; + procedure SetFACTURAValue(const aValue: String); + function GetFACTURAIsNull: Boolean; + procedure SetFACTURAIsNull(const aValue: Boolean); + function GetPERSONA_CONTACTOValue: String; + procedure SetPERSONA_CONTACTOValue(const aValue: String); + function GetPERSONA_CONTACTOIsNull: Boolean; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); + function GetDESCRIPCION_BONIFICACIONValue: String; + procedure SetDESCRIPCION_BONIFICACIONValue(const aValue: String); + function GetDESCRIPCION_BONIFICACIONIsNull: Boolean; + procedure SetDESCRIPCION_BONIFICACIONIsNull(const aValue: Boolean); + function GetIMPORTE_BONIFICACIONValue: Currency; + procedure SetIMPORTE_BONIFICACIONValue(const aValue: Currency); + function GetIMPORTE_BONIFICACIONIsNull: Boolean; + procedure SetIMPORTE_BONIFICACIONIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property FECHA_PRESUPUESTO: DateTime read GetFECHA_PRESUPUESTOValue write SetFECHA_PRESUPUESTOValue; + property FECHA_PRESUPUESTOIsNull: Boolean read GetFECHA_PRESUPUESTOIsNull write SetFECHA_PRESUPUESTOIsNull; + property FECHA_DECISION: DateTime read GetFECHA_DECISIONValue write SetFECHA_DECISIONValue; + property FECHA_DECISIONIsNull: Boolean read GetFECHA_DECISIONIsNull write SetFECHA_DECISIONIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property REFERENCIA_AUX: String read GetREFERENCIA_AUXValue write SetREFERENCIA_AUXValue; + property REFERENCIA_AUXIsNull: Boolean read GetREFERENCIA_AUXIsNull write SetREFERENCIA_AUXIsNull; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property SITUACIONIsNull: Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property ID_CLIENTEIsNull: Boolean read GetID_CLIENTEIsNull write SetID_CLIENTEIsNull; + property ID_DIRECCION: Integer read GetID_DIRECCIONValue write SetID_DIRECCIONValue; + property ID_DIRECCIONIsNull: Boolean read GetID_DIRECCIONIsNull write SetID_DIRECCIONIsNull; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NIF_CIFIsNull: Boolean read GetNIF_CIFIsNull write SetNIF_CIFIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property REFERENCIA_CLIENTE: String read GetREFERENCIA_CLIENTEValue write SetREFERENCIA_CLIENTEValue; + property REFERENCIA_CLIENTEIsNull: Boolean read GetREFERENCIA_CLIENTEIsNull write SetREFERENCIA_CLIENTEIsNull; + property CLIENTE_FINAL: String read GetCLIENTE_FINALValue write SetCLIENTE_FINALValue; + property CLIENTE_FINALIsNull: Boolean read GetCLIENTE_FINALIsNull write SetCLIENTE_FINALIsNull; + property PORTADA: IROStrings read GetPORTADAValue; + property PORTADAIsNull: Boolean read GetPORTADAIsNull write SetPORTADAIsNull; + property MEMORIA: IROStrings read GetMEMORIAValue; + property MEMORIAIsNull: Boolean read GetMEMORIAIsNull write SetMEMORIAIsNull; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue; + property OBSERVACIONESIsNull: Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property INCIDENCIAS: IROStrings read GetINCIDENCIASValue; + property INCIDENCIASIsNull: Boolean read GetINCIDENCIASIsNull write SetINCIDENCIASIsNull; + property INCIDENCIAS_ACTIVAS: Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property INCIDENCIAS_ACTIVASIsNull: Boolean read GetINCIDENCIAS_ACTIVASIsNull write SetINCIDENCIAS_ACTIVASIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_NETOIsNull: Boolean read GetIMPORTE_NETOIsNull write SetIMPORTE_NETOIsNull; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull: Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property IMPORTE_DESCUENTOIsNull: Boolean read GetIMPORTE_DESCUENTOIsNull write SetIMPORTE_DESCUENTOIsNull; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property BASE_IMPONIBLEIsNull: Boolean read GetBASE_IMPONIBLEIsNull write SetBASE_IMPONIBLEIsNull; + property IVA: Float read GetIVAValue write SetIVAValue; + property IVAIsNull: Boolean read GetIVAIsNull write SetIVAIsNull; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property IMPORTE_IVAIsNull: Boolean read GetIMPORTE_IVAIsNull write SetIMPORTE_IVAIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property ID_FORMA_PAGOIsNull: Boolean read GetID_FORMA_PAGOIsNull write SetID_FORMA_PAGOIsNull; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull: Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property FACTURA: String read GetFACTURAValue write SetFACTURAValue; + property FACTURAIsNull: Boolean read GetFACTURAIsNull write SetFACTURAIsNull; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull: Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property DESCRIPCION_BONIFICACION: String read GetDESCRIPCION_BONIFICACIONValue write SetDESCRIPCION_BONIFICACIONValue; + property DESCRIPCION_BONIFICACIONIsNull: Boolean read GetDESCRIPCION_BONIFICACIONIsNull write SetDESCRIPCION_BONIFICACIONIsNull; + property IMPORTE_BONIFICACION: Currency read GetIMPORTE_BONIFICACIONValue write SetIMPORTE_BONIFICACIONValue; + property IMPORTE_BONIFICACIONIsNull: Boolean read GetIMPORTE_BONIFICACIONIsNull write SetIMPORTE_BONIFICACIONIsNull; + end; + + { TPresupuestosClienteDataTableRules } + TPresupuestosClienteDataTableRules = class(TIntfObjectDADataTableRules, IPresupuestosCliente) + private + f_PORTADA: IROStrings; + f_MEMORIA: IROStrings; + f_OBSERVACIONES: IROStrings; + f_INCIDENCIAS: IROStrings; + procedure PORTADA_OnChange(Sender: TObject); + procedure MEMORIA_OnChange(Sender: TObject); + procedure OBSERVACIONES_OnChange(Sender: TObject); + procedure INCIDENCIAS_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetFECHA_PRESUPUESTOValue: DateTime; virtual; + procedure SetFECHA_PRESUPUESTOValue(const aValue: DateTime); virtual; + function GetFECHA_PRESUPUESTOIsNull: Boolean; virtual; + procedure SetFECHA_PRESUPUESTOIsNull(const aValue: Boolean); virtual; + function GetFECHA_DECISIONValue: DateTime; virtual; + procedure SetFECHA_DECISIONValue(const aValue: DateTime); virtual; + function GetFECHA_DECISIONIsNull: Boolean; virtual; + procedure SetFECHA_DECISIONIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_AUXValue: String; virtual; + procedure SetREFERENCIA_AUXValue(const aValue: String); virtual; + function GetREFERENCIA_AUXIsNull: Boolean; virtual; + procedure SetREFERENCIA_AUXIsNull(const aValue: Boolean); virtual; + function GetSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetSITUACIONIsNull: Boolean; virtual; + procedure SetSITUACIONIsNull(const aValue: Boolean); virtual; + function GetID_CLIENTEValue: Integer; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + function GetID_CLIENTEIsNull: Boolean; virtual; + procedure SetID_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetID_DIRECCIONValue: Integer; virtual; + procedure SetID_DIRECCIONValue(const aValue: Integer); virtual; + function GetID_DIRECCIONIsNull: Boolean; virtual; + procedure SetID_DIRECCIONIsNull(const aValue: Boolean); virtual; + function GetNIF_CIFValue: String; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + function GetNIF_CIFIsNull: Boolean; virtual; + procedure SetNIF_CIFIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_CLIENTEValue: String; virtual; + procedure SetREFERENCIA_CLIENTEValue(const aValue: String); virtual; + function GetREFERENCIA_CLIENTEIsNull: Boolean; virtual; + procedure SetREFERENCIA_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetCLIENTE_FINALValue: String; virtual; + procedure SetCLIENTE_FINALValue(const aValue: String); virtual; + function GetCLIENTE_FINALIsNull: Boolean; virtual; + procedure SetCLIENTE_FINALIsNull(const aValue: Boolean); virtual; + function GetPORTADAValue: IROStrings; virtual; + function GetPORTADAIsNull: Boolean; virtual; + procedure SetPORTADAIsNull(const aValue: Boolean); virtual; + function GetMEMORIAValue: IROStrings; virtual; + function GetMEMORIAIsNull: Boolean; virtual; + procedure SetMEMORIAIsNull(const aValue: Boolean); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + function GetOBSERVACIONESIsNull: Boolean; virtual; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); virtual; + function GetINCIDENCIASValue: IROStrings; virtual; + function GetINCIDENCIASIsNull: Boolean; virtual; + procedure SetINCIDENCIASIsNull(const aValue: Boolean); virtual; + function GetINCIDENCIAS_ACTIVASValue: Integer; virtual; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); virtual; + function GetINCIDENCIAS_ACTIVASIsNull: Boolean; virtual; + procedure SetINCIDENCIAS_ACTIVASIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + function GetIMPORTE_NETOIsNull: Boolean; virtual; + procedure SetIMPORTE_NETOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEIsNull: Boolean; virtual; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + function GetIMPORTE_DESCUENTOIsNull: Boolean; virtual; + procedure SetIMPORTE_DESCUENTOIsNull(const aValue: Boolean); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + function GetBASE_IMPONIBLEIsNull: Boolean; virtual; + procedure SetBASE_IMPONIBLEIsNull(const aValue: Boolean); virtual; + function GetIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + function GetIVAIsNull: Boolean; virtual; + procedure SetIVAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + function GetIMPORTE_IVAIsNull: Boolean; virtual; + procedure SetIMPORTE_IVAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + function GetID_FORMA_PAGOIsNull: Boolean; virtual; + procedure SetID_FORMA_PAGOIsNull(const aValue: Boolean); virtual; + function GetID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetID_FACTURAIsNull: Boolean; virtual; + procedure SetID_FACTURAIsNull(const aValue: Boolean); virtual; + function GetFACTURAValue: String; virtual; + procedure SetFACTURAValue(const aValue: String); virtual; + function GetFACTURAIsNull: Boolean; virtual; + procedure SetFACTURAIsNull(const aValue: Boolean); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + function GetPERSONA_CONTACTOIsNull: Boolean; virtual; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCION_BONIFICACIONValue: String; virtual; + procedure SetDESCRIPCION_BONIFICACIONValue(const aValue: String); virtual; + function GetDESCRIPCION_BONIFICACIONIsNull: Boolean; virtual; + procedure SetDESCRIPCION_BONIFICACIONIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_BONIFICACIONValue: Currency; virtual; + procedure SetIMPORTE_BONIFICACIONValue(const aValue: Currency); virtual; + function GetIMPORTE_BONIFICACIONIsNull: Boolean; virtual; + procedure SetIMPORTE_BONIFICACIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property FECHA_PRESUPUESTO: DateTime read GetFECHA_PRESUPUESTOValue write SetFECHA_PRESUPUESTOValue; + property FECHA_PRESUPUESTOIsNull: Boolean read GetFECHA_PRESUPUESTOIsNull write SetFECHA_PRESUPUESTOIsNull; + property FECHA_DECISION: DateTime read GetFECHA_DECISIONValue write SetFECHA_DECISIONValue; + property FECHA_DECISIONIsNull: Boolean read GetFECHA_DECISIONIsNull write SetFECHA_DECISIONIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property REFERENCIA_AUX: String read GetREFERENCIA_AUXValue write SetREFERENCIA_AUXValue; + property REFERENCIA_AUXIsNull: Boolean read GetREFERENCIA_AUXIsNull write SetREFERENCIA_AUXIsNull; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property SITUACIONIsNull: Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property ID_CLIENTEIsNull: Boolean read GetID_CLIENTEIsNull write SetID_CLIENTEIsNull; + property ID_DIRECCION: Integer read GetID_DIRECCIONValue write SetID_DIRECCIONValue; + property ID_DIRECCIONIsNull: Boolean read GetID_DIRECCIONIsNull write SetID_DIRECCIONIsNull; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NIF_CIFIsNull: Boolean read GetNIF_CIFIsNull write SetNIF_CIFIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property REFERENCIA_CLIENTE: String read GetREFERENCIA_CLIENTEValue write SetREFERENCIA_CLIENTEValue; + property REFERENCIA_CLIENTEIsNull: Boolean read GetREFERENCIA_CLIENTEIsNull write SetREFERENCIA_CLIENTEIsNull; + property CLIENTE_FINAL: String read GetCLIENTE_FINALValue write SetCLIENTE_FINALValue; + property CLIENTE_FINALIsNull: Boolean read GetCLIENTE_FINALIsNull write SetCLIENTE_FINALIsNull; + property PORTADA: IROStrings read GetPORTADAValue; + property PORTADAIsNull: Boolean read GetPORTADAIsNull write SetPORTADAIsNull; + property MEMORIA: IROStrings read GetMEMORIAValue; + property MEMORIAIsNull: Boolean read GetMEMORIAIsNull write SetMEMORIAIsNull; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue; + property OBSERVACIONESIsNull: Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property INCIDENCIAS: IROStrings read GetINCIDENCIASValue; + property INCIDENCIASIsNull: Boolean read GetINCIDENCIASIsNull write SetINCIDENCIASIsNull; + property INCIDENCIAS_ACTIVAS: Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property INCIDENCIAS_ACTIVASIsNull: Boolean read GetINCIDENCIAS_ACTIVASIsNull write SetINCIDENCIAS_ACTIVASIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_NETOIsNull: Boolean read GetIMPORTE_NETOIsNull write SetIMPORTE_NETOIsNull; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull: Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property IMPORTE_DESCUENTOIsNull: Boolean read GetIMPORTE_DESCUENTOIsNull write SetIMPORTE_DESCUENTOIsNull; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property BASE_IMPONIBLEIsNull: Boolean read GetBASE_IMPONIBLEIsNull write SetBASE_IMPONIBLEIsNull; + property IVA: Float read GetIVAValue write SetIVAValue; + property IVAIsNull: Boolean read GetIVAIsNull write SetIVAIsNull; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property IMPORTE_IVAIsNull: Boolean read GetIMPORTE_IVAIsNull write SetIMPORTE_IVAIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property ID_FORMA_PAGOIsNull: Boolean read GetID_FORMA_PAGOIsNull write SetID_FORMA_PAGOIsNull; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull: Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property FACTURA: String read GetFACTURAValue write SetFACTURAValue; + property FACTURAIsNull: Boolean read GetFACTURAIsNull write SetFACTURAIsNull; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull: Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property DESCRIPCION_BONIFICACION: String read GetDESCRIPCION_BONIFICACIONValue write SetDESCRIPCION_BONIFICACIONValue; + property DESCRIPCION_BONIFICACIONIsNull: Boolean read GetDESCRIPCION_BONIFICACIONIsNull write SetDESCRIPCION_BONIFICACIONIsNull; + property IMPORTE_BONIFICACION: Currency read GetIMPORTE_BONIFICACIONValue write SetIMPORTE_BONIFICACIONValue; + property IMPORTE_BONIFICACIONIsNull: Boolean read GetIMPORTE_BONIFICACIONIsNull write SetIMPORTE_BONIFICACIONIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IPresupuestosCliente_Detalles } + IPresupuestosCliente_Detalles = interface(IDAStronglyTypedDataTable) + ['{6E73582D-E1A0-40EA-A96A-1993F55F76A8}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_PRESUPUESTOValue: Integer; + procedure SetID_PRESUPUESTOValue(const aValue: Integer); + function GetID_PRESUPUESTOIsNull: Boolean; + procedure SetID_PRESUPUESTOIsNull(const aValue: Boolean); + function GetPOSICIONValue: Integer; + procedure SetPOSICIONValue(const aValue: Integer); + function GetPOSICIONIsNull: Boolean; + procedure SetPOSICIONIsNull(const aValue: Boolean); + function GetTIPO_DETALLEValue: String; + procedure SetTIPO_DETALLEValue(const aValue: String); + function GetTIPO_DETALLEIsNull: Boolean; + procedure SetTIPO_DETALLEIsNull(const aValue: Boolean); + function GetCONCEPTOValue: String; + procedure SetCONCEPTOValue(const aValue: String); + function GetCONCEPTOIsNull: Boolean; + procedure SetCONCEPTOIsNull(const aValue: Boolean); + function GetCANTIDADValue: Float; + procedure SetCANTIDADValue(const aValue: Float); + function GetCANTIDADIsNull: Boolean; + procedure SetCANTIDADIsNull(const aValue: Boolean); + function GetUNIDAD_MEDIDAValue: String; + procedure SetUNIDAD_MEDIDAValue(const aValue: String); + function GetUNIDAD_MEDIDAIsNull: Boolean; + procedure SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); + function GetIMPORTE_UNIDADValue: Currency; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); + function GetIMPORTE_UNIDADIsNull: Boolean; + procedure SetIMPORTE_UNIDADIsNull(const aValue: Boolean); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetIMPORTE_TOTALIsNull: Boolean; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); + function GetVISIBLEValue: Integer; + procedure SetVISIBLEValue(const aValue: Integer); + function GetVISIBLEIsNull: Boolean; + procedure SetVISIBLEIsNull(const aValue: Boolean); + function GetID_ARTICULOValue: Integer; + procedure SetID_ARTICULOValue(const aValue: Integer); + function GetID_ARTICULOIsNull: Boolean; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetDESCUENTOIsNull: Boolean; + procedure SetDESCUENTOIsNull(const aValue: Boolean); + function GetIMPORTE_PORTEValue: Currency; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); + function GetIMPORTE_PORTEIsNull: Boolean; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetREFERENCIA_PROVEEDORValue: String; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); + function GetREFERENCIA_PROVEEDORIsNull: Boolean; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_PRESUPUESTO: Integer read GetID_PRESUPUESTOValue write SetID_PRESUPUESTOValue; + property ID_PRESUPUESTOIsNull: Boolean read GetID_PRESUPUESTOIsNull write SetID_PRESUPUESTOIsNull; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property POSICIONIsNull: Boolean read GetPOSICIONIsNull write SetPOSICIONIsNull; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property TIPO_DETALLEIsNull: Boolean read GetTIPO_DETALLEIsNull write SetTIPO_DETALLEIsNull; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CONCEPTOIsNull: Boolean read GetCONCEPTOIsNull write SetCONCEPTOIsNull; + property CANTIDAD: Float read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDADIsNull: Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; + property UNIDAD_MEDIDA: String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue; + property UNIDAD_MEDIDAIsNull: Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull; + property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_UNIDADIsNull: Boolean read GetIMPORTE_UNIDADIsNull write SetIMPORTE_UNIDADIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property VISIBLEIsNull: Boolean read GetVISIBLEIsNull write SetVISIBLEIsNull; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull: Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull: Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull: Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + end; + + { TPresupuestosCliente_DetallesDataTableRules } + TPresupuestosCliente_DetallesDataTableRules = class(TIntfObjectDADataTableRules, IPresupuestosCliente_Detalles) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_PRESUPUESTOValue: Integer; virtual; + procedure SetID_PRESUPUESTOValue(const aValue: Integer); virtual; + function GetID_PRESUPUESTOIsNull: Boolean; virtual; + procedure SetID_PRESUPUESTOIsNull(const aValue: Boolean); virtual; + function GetPOSICIONValue: Integer; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + function GetPOSICIONIsNull: Boolean; virtual; + procedure SetPOSICIONIsNull(const aValue: Boolean); virtual; + function GetTIPO_DETALLEValue: String; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + function GetTIPO_DETALLEIsNull: Boolean; virtual; + procedure SetTIPO_DETALLEIsNull(const aValue: Boolean); virtual; + function GetCONCEPTOValue: String; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + function GetCONCEPTOIsNull: Boolean; virtual; + procedure SetCONCEPTOIsNull(const aValue: Boolean); virtual; + function GetCANTIDADValue: Float; virtual; + procedure SetCANTIDADValue(const aValue: Float); virtual; + function GetCANTIDADIsNull: Boolean; virtual; + procedure SetCANTIDADIsNull(const aValue: Boolean); virtual; + function GetUNIDAD_MEDIDAValue: String; virtual; + procedure SetUNIDAD_MEDIDAValue(const aValue: String); virtual; + function GetUNIDAD_MEDIDAIsNull: Boolean; virtual; + procedure SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_UNIDADValue: Currency; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual; + function GetIMPORTE_UNIDADIsNull: Boolean; virtual; + procedure SetIMPORTE_UNIDADIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetVISIBLEValue: Integer; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + function GetVISIBLEIsNull: Boolean; virtual; + procedure SetVISIBLEIsNull(const aValue: Boolean); virtual; + function GetID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetID_ARTICULOIsNull: Boolean; virtual; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEIsNull: Boolean; virtual; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + function GetREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_PRESUPUESTO: Integer read GetID_PRESUPUESTOValue write SetID_PRESUPUESTOValue; + property ID_PRESUPUESTOIsNull: Boolean read GetID_PRESUPUESTOIsNull write SetID_PRESUPUESTOIsNull; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property POSICIONIsNull: Boolean read GetPOSICIONIsNull write SetPOSICIONIsNull; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property TIPO_DETALLEIsNull: Boolean read GetTIPO_DETALLEIsNull write SetTIPO_DETALLEIsNull; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CONCEPTOIsNull: Boolean read GetCONCEPTOIsNull write SetCONCEPTOIsNull; + property CANTIDAD: Float read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDADIsNull: Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; + property UNIDAD_MEDIDA: String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue; + property UNIDAD_MEDIDAIsNull: Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull; + property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_UNIDADIsNull: Boolean read GetIMPORTE_UNIDADIsNull write SetIMPORTE_UNIDADIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property VISIBLEIsNull: Boolean read GetVISIBLEIsNull write SetVISIBLEIsNull; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull: Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull: Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull: Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants, uROBinaryHelpers; + +{ TListaAnosPresupuestosDataTableRules } +constructor TListaAnosPresupuestosDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TListaAnosPresupuestosDataTableRules.Destroy; +begin + inherited; +end; + +function TListaAnosPresupuestosDataTableRules.GetANOValue: String; +begin + result := DataTable.Fields[idx_ListaAnosPresupuestosANO].AsString; +end; + +procedure TListaAnosPresupuestosDataTableRules.SetANOValue(const aValue: String); +begin + DataTable.Fields[idx_ListaAnosPresupuestosANO].AsString := aValue; +end; + +function TListaAnosPresupuestosDataTableRules.GetANOIsNull: boolean; +begin + result := DataTable.Fields[idx_ListaAnosPresupuestosANO].IsNull; +end; + +procedure TListaAnosPresupuestosDataTableRules.SetANOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ListaAnosPresupuestosANO].AsVariant := Null; +end; + + +{ TPresupuestosClienteDataTableRules } +constructor TPresupuestosClienteDataTableRules.Create(aDataTable: TDADataTable); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := PORTADA_OnChange; + f_PORTADA := NewROStrings(StrList,True); + + StrList := TStringList.Create; + StrList.OnChange := MEMORIA_OnChange; + f_MEMORIA := NewROStrings(StrList,True); + + StrList := TStringList.Create; + StrList.OnChange := OBSERVACIONES_OnChange; + f_OBSERVACIONES := NewROStrings(StrList,True); + + StrList := TStringList.Create; + StrList.OnChange := INCIDENCIAS_OnChange; + f_INCIDENCIAS := NewROStrings(StrList,True); +end; + +destructor TPresupuestosClienteDataTableRules.Destroy; +begin + inherited; +end; + +procedure TPresupuestosClienteDataTableRules.PORTADA_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_PresupuestosClientePORTADA].AsVariant := TStringList(Sender).Text; +end; + +procedure TPresupuestosClienteDataTableRules.MEMORIA_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_PresupuestosClienteMEMORIA].AsVariant := TStringList(Sender).Text; +end; + +procedure TPresupuestosClienteDataTableRules.OBSERVACIONES_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_PresupuestosClienteOBSERVACIONES].AsVariant := TStringList(Sender).Text; +end; + +procedure TPresupuestosClienteDataTableRules.INCIDENCIAS_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_PresupuestosClienteINCIDENCIAS].AsVariant := TStringList(Sender).Text; +end; + +function TPresupuestosClienteDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_PresupuestosClienteID].AsInteger; +end; + +procedure TPresupuestosClienteDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_PresupuestosClienteID].AsInteger := aValue; +end; + +function TPresupuestosClienteDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClienteID].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClienteID].AsVariant := Null; +end; + +function TPresupuestosClienteDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_PresupuestosClienteID_EMPRESA].AsInteger; +end; + +procedure TPresupuestosClienteDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_PresupuestosClienteID_EMPRESA].AsInteger := aValue; +end; + +function TPresupuestosClienteDataTableRules.GetID_EMPRESAIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClienteID_EMPRESA].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClienteID_EMPRESA].AsVariant := Null; +end; + +function TPresupuestosClienteDataTableRules.GetFECHA_PRESUPUESTOValue: DateTime; +begin + result := DataTable.Fields[idx_PresupuestosClienteFECHA_PRESUPUESTO].AsDateTime; +end; + +procedure TPresupuestosClienteDataTableRules.SetFECHA_PRESUPUESTOValue(const aValue: DateTime); +begin + DataTable.Fields[idx_PresupuestosClienteFECHA_PRESUPUESTO].AsDateTime := aValue; +end; + +function TPresupuestosClienteDataTableRules.GetFECHA_PRESUPUESTOIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClienteFECHA_PRESUPUESTO].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetFECHA_PRESUPUESTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClienteFECHA_PRESUPUESTO].AsVariant := Null; +end; + +function TPresupuestosClienteDataTableRules.GetFECHA_DECISIONValue: DateTime; +begin + result := DataTable.Fields[idx_PresupuestosClienteFECHA_DECISION].AsDateTime; +end; + +procedure TPresupuestosClienteDataTableRules.SetFECHA_DECISIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_PresupuestosClienteFECHA_DECISION].AsDateTime := aValue; +end; + +function TPresupuestosClienteDataTableRules.GetFECHA_DECISIONIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClienteFECHA_DECISION].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetFECHA_DECISIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClienteFECHA_DECISION].AsVariant := Null; +end; + +function TPresupuestosClienteDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_PresupuestosClienteREFERENCIA].AsString; +end; + +procedure TPresupuestosClienteDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_PresupuestosClienteREFERENCIA].AsString := aValue; +end; + +function TPresupuestosClienteDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClienteREFERENCIA].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClienteREFERENCIA].AsVariant := Null; +end; + +function TPresupuestosClienteDataTableRules.GetREFERENCIA_AUXValue: String; +begin + result := DataTable.Fields[idx_PresupuestosClienteREFERENCIA_AUX].AsString; +end; + +procedure TPresupuestosClienteDataTableRules.SetREFERENCIA_AUXValue(const aValue: String); +begin + DataTable.Fields[idx_PresupuestosClienteREFERENCIA_AUX].AsString := aValue; +end; + +function TPresupuestosClienteDataTableRules.GetREFERENCIA_AUXIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClienteREFERENCIA_AUX].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetREFERENCIA_AUXIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClienteREFERENCIA_AUX].AsVariant := Null; +end; + +function TPresupuestosClienteDataTableRules.GetSITUACIONValue: String; +begin + result := DataTable.Fields[idx_PresupuestosClienteSITUACION].AsString; +end; + +procedure TPresupuestosClienteDataTableRules.SetSITUACIONValue(const aValue: String); +begin + DataTable.Fields[idx_PresupuestosClienteSITUACION].AsString := aValue; +end; + +function TPresupuestosClienteDataTableRules.GetSITUACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClienteSITUACION].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetSITUACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClienteSITUACION].AsVariant := Null; +end; + +function TPresupuestosClienteDataTableRules.GetID_CLIENTEValue: Integer; +begin + result := DataTable.Fields[idx_PresupuestosClienteID_CLIENTE].AsInteger; +end; + +procedure TPresupuestosClienteDataTableRules.SetID_CLIENTEValue(const aValue: Integer); +begin + DataTable.Fields[idx_PresupuestosClienteID_CLIENTE].AsInteger := aValue; +end; + +function TPresupuestosClienteDataTableRules.GetID_CLIENTEIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClienteID_CLIENTE].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetID_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClienteID_CLIENTE].AsVariant := Null; +end; + +function TPresupuestosClienteDataTableRules.GetID_DIRECCIONValue: Integer; +begin + result := DataTable.Fields[idx_PresupuestosClienteID_DIRECCION].AsInteger; +end; + +procedure TPresupuestosClienteDataTableRules.SetID_DIRECCIONValue(const aValue: Integer); +begin + DataTable.Fields[idx_PresupuestosClienteID_DIRECCION].AsInteger := aValue; +end; + +function TPresupuestosClienteDataTableRules.GetID_DIRECCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClienteID_DIRECCION].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetID_DIRECCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClienteID_DIRECCION].AsVariant := Null; +end; + +function TPresupuestosClienteDataTableRules.GetNIF_CIFValue: String; +begin + result := DataTable.Fields[idx_PresupuestosClienteNIF_CIF].AsString; +end; + +procedure TPresupuestosClienteDataTableRules.SetNIF_CIFValue(const aValue: String); +begin + DataTable.Fields[idx_PresupuestosClienteNIF_CIF].AsString := aValue; +end; + +function TPresupuestosClienteDataTableRules.GetNIF_CIFIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClienteNIF_CIF].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetNIF_CIFIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClienteNIF_CIF].AsVariant := Null; +end; + +function TPresupuestosClienteDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_PresupuestosClienteNOMBRE].AsString; +end; + +procedure TPresupuestosClienteDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_PresupuestosClienteNOMBRE].AsString := aValue; +end; + +function TPresupuestosClienteDataTableRules.GetNOMBREIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClienteNOMBRE].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClienteNOMBRE].AsVariant := Null; +end; + +function TPresupuestosClienteDataTableRules.GetREFERENCIA_CLIENTEValue: String; +begin + result := DataTable.Fields[idx_PresupuestosClienteREFERENCIA_CLIENTE].AsString; +end; + +procedure TPresupuestosClienteDataTableRules.SetREFERENCIA_CLIENTEValue(const aValue: String); +begin + DataTable.Fields[idx_PresupuestosClienteREFERENCIA_CLIENTE].AsString := aValue; +end; + +function TPresupuestosClienteDataTableRules.GetREFERENCIA_CLIENTEIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClienteREFERENCIA_CLIENTE].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetREFERENCIA_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClienteREFERENCIA_CLIENTE].AsVariant := Null; +end; + +function TPresupuestosClienteDataTableRules.GetCLIENTE_FINALValue: String; +begin + result := DataTable.Fields[idx_PresupuestosClienteCLIENTE_FINAL].AsString; +end; + +procedure TPresupuestosClienteDataTableRules.SetCLIENTE_FINALValue(const aValue: String); +begin + DataTable.Fields[idx_PresupuestosClienteCLIENTE_FINAL].AsString := aValue; +end; + +function TPresupuestosClienteDataTableRules.GetCLIENTE_FINALIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClienteCLIENTE_FINAL].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetCLIENTE_FINALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClienteCLIENTE_FINAL].AsVariant := Null; +end; + +function TPresupuestosClienteDataTableRules.GetPORTADAValue: IROStrings; +begin + result := f_PORTADA; + result.Text := DataTable.Fields[idx_PresupuestosClientePORTADA].AsString; +end; + +function TPresupuestosClienteDataTableRules.GetPORTADAIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClientePORTADA].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetPORTADAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClientePORTADA].AsVariant := Null; +end; + +function TPresupuestosClienteDataTableRules.GetMEMORIAValue: IROStrings; +begin + result := f_MEMORIA; + result.Text := DataTable.Fields[idx_PresupuestosClienteMEMORIA].AsString; +end; + +function TPresupuestosClienteDataTableRules.GetMEMORIAIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClienteMEMORIA].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetMEMORIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClienteMEMORIA].AsVariant := Null; +end; + +function TPresupuestosClienteDataTableRules.GetOBSERVACIONESValue: IROStrings; +begin + result := f_OBSERVACIONES; + result.Text := DataTable.Fields[idx_PresupuestosClienteOBSERVACIONES].AsString; +end; + +function TPresupuestosClienteDataTableRules.GetOBSERVACIONESIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClienteOBSERVACIONES].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetOBSERVACIONESIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClienteOBSERVACIONES].AsVariant := Null; +end; + +function TPresupuestosClienteDataTableRules.GetINCIDENCIASValue: IROStrings; +begin + result := f_INCIDENCIAS; + result.Text := DataTable.Fields[idx_PresupuestosClienteINCIDENCIAS].AsString; +end; + +function TPresupuestosClienteDataTableRules.GetINCIDENCIASIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClienteINCIDENCIAS].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetINCIDENCIASIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClienteINCIDENCIAS].AsVariant := Null; +end; + +function TPresupuestosClienteDataTableRules.GetINCIDENCIAS_ACTIVASValue: Integer; +begin + result := DataTable.Fields[idx_PresupuestosClienteINCIDENCIAS_ACTIVAS].AsInteger; +end; + +procedure TPresupuestosClienteDataTableRules.SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); +begin + DataTable.Fields[idx_PresupuestosClienteINCIDENCIAS_ACTIVAS].AsInteger := aValue; +end; + +function TPresupuestosClienteDataTableRules.GetINCIDENCIAS_ACTIVASIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClienteINCIDENCIAS_ACTIVAS].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetINCIDENCIAS_ACTIVASIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClienteINCIDENCIAS_ACTIVAS].AsVariant := Null; +end; + +function TPresupuestosClienteDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_PresupuestosClienteFECHA_ALTA].AsDateTime; +end; + +procedure TPresupuestosClienteDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_PresupuestosClienteFECHA_ALTA].AsDateTime := aValue; +end; + +function TPresupuestosClienteDataTableRules.GetFECHA_ALTAIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClienteFECHA_ALTA].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClienteFECHA_ALTA].AsVariant := Null; +end; + +function TPresupuestosClienteDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_PresupuestosClienteFECHA_MODIFICACION].AsDateTime; +end; + +procedure TPresupuestosClienteDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_PresupuestosClienteFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TPresupuestosClienteDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClienteFECHA_MODIFICACION].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClienteFECHA_MODIFICACION].AsVariant := Null; +end; + +function TPresupuestosClienteDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_PresupuestosClienteUSUARIO].AsString; +end; + +procedure TPresupuestosClienteDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_PresupuestosClienteUSUARIO].AsString := aValue; +end; + +function TPresupuestosClienteDataTableRules.GetUSUARIOIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClienteUSUARIO].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClienteUSUARIO].AsVariant := Null; +end; + +function TPresupuestosClienteDataTableRules.GetIMPORTE_NETOValue: Currency; +begin + result := DataTable.Fields[idx_PresupuestosClienteIMPORTE_NETO].AsCurrency; +end; + +procedure TPresupuestosClienteDataTableRules.SetIMPORTE_NETOValue(const aValue: Currency); +begin + DataTable.Fields[idx_PresupuestosClienteIMPORTE_NETO].AsCurrency := aValue; +end; + +function TPresupuestosClienteDataTableRules.GetIMPORTE_NETOIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClienteIMPORTE_NETO].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetIMPORTE_NETOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClienteIMPORTE_NETO].AsVariant := Null; +end; + +function TPresupuestosClienteDataTableRules.GetIMPORTE_PORTEValue: Currency; +begin + result := DataTable.Fields[idx_PresupuestosClienteIMPORTE_PORTE].AsCurrency; +end; + +procedure TPresupuestosClienteDataTableRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + DataTable.Fields[idx_PresupuestosClienteIMPORTE_PORTE].AsCurrency := aValue; +end; + +function TPresupuestosClienteDataTableRules.GetIMPORTE_PORTEIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClienteIMPORTE_PORTE].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetIMPORTE_PORTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClienteIMPORTE_PORTE].AsVariant := Null; +end; + +function TPresupuestosClienteDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_PresupuestosClienteDESCUENTO].AsFloat; +end; + +procedure TPresupuestosClienteDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_PresupuestosClienteDESCUENTO].AsFloat := aValue; +end; + +function TPresupuestosClienteDataTableRules.GetDESCUENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClienteDESCUENTO].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClienteDESCUENTO].AsVariant := Null; +end; + +function TPresupuestosClienteDataTableRules.GetIMPORTE_DESCUENTOValue: Currency; +begin + result := DataTable.Fields[idx_PresupuestosClienteIMPORTE_DESCUENTO].AsCurrency; +end; + +procedure TPresupuestosClienteDataTableRules.SetIMPORTE_DESCUENTOValue(const aValue: Currency); +begin + DataTable.Fields[idx_PresupuestosClienteIMPORTE_DESCUENTO].AsCurrency := aValue; +end; + +function TPresupuestosClienteDataTableRules.GetIMPORTE_DESCUENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClienteIMPORTE_DESCUENTO].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetIMPORTE_DESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClienteIMPORTE_DESCUENTO].AsVariant := Null; +end; + +function TPresupuestosClienteDataTableRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := DataTable.Fields[idx_PresupuestosClienteBASE_IMPONIBLE].AsCurrency; +end; + +procedure TPresupuestosClienteDataTableRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + DataTable.Fields[idx_PresupuestosClienteBASE_IMPONIBLE].AsCurrency := aValue; +end; + +function TPresupuestosClienteDataTableRules.GetBASE_IMPONIBLEIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClienteBASE_IMPONIBLE].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetBASE_IMPONIBLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClienteBASE_IMPONIBLE].AsVariant := Null; +end; + +function TPresupuestosClienteDataTableRules.GetIVAValue: Float; +begin + result := DataTable.Fields[idx_PresupuestosClienteIVA].AsFloat; +end; + +procedure TPresupuestosClienteDataTableRules.SetIVAValue(const aValue: Float); +begin + DataTable.Fields[idx_PresupuestosClienteIVA].AsFloat := aValue; +end; + +function TPresupuestosClienteDataTableRules.GetIVAIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClienteIVA].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetIVAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClienteIVA].AsVariant := Null; +end; + +function TPresupuestosClienteDataTableRules.GetIMPORTE_IVAValue: Currency; +begin + result := DataTable.Fields[idx_PresupuestosClienteIMPORTE_IVA].AsCurrency; +end; + +procedure TPresupuestosClienteDataTableRules.SetIMPORTE_IVAValue(const aValue: Currency); +begin + DataTable.Fields[idx_PresupuestosClienteIMPORTE_IVA].AsCurrency := aValue; +end; + +function TPresupuestosClienteDataTableRules.GetIMPORTE_IVAIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClienteIMPORTE_IVA].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetIMPORTE_IVAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClienteIMPORTE_IVA].AsVariant := Null; +end; + +function TPresupuestosClienteDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_PresupuestosClienteIMPORTE_TOTAL].AsCurrency; +end; + +procedure TPresupuestosClienteDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_PresupuestosClienteIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TPresupuestosClienteDataTableRules.GetIMPORTE_TOTALIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClienteIMPORTE_TOTAL].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClienteIMPORTE_TOTAL].AsVariant := Null; +end; + +function TPresupuestosClienteDataTableRules.GetID_FORMA_PAGOValue: Integer; +begin + result := DataTable.Fields[idx_PresupuestosClienteID_FORMA_PAGO].AsInteger; +end; + +procedure TPresupuestosClienteDataTableRules.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + DataTable.Fields[idx_PresupuestosClienteID_FORMA_PAGO].AsInteger := aValue; +end; + +function TPresupuestosClienteDataTableRules.GetID_FORMA_PAGOIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClienteID_FORMA_PAGO].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetID_FORMA_PAGOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClienteID_FORMA_PAGO].AsVariant := Null; +end; + +function TPresupuestosClienteDataTableRules.GetID_FACTURAValue: Integer; +begin + result := DataTable.Fields[idx_PresupuestosClienteID_FACTURA].AsInteger; +end; + +procedure TPresupuestosClienteDataTableRules.SetID_FACTURAValue(const aValue: Integer); +begin + DataTable.Fields[idx_PresupuestosClienteID_FACTURA].AsInteger := aValue; +end; + +function TPresupuestosClienteDataTableRules.GetID_FACTURAIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClienteID_FACTURA].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetID_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClienteID_FACTURA].AsVariant := Null; +end; + +function TPresupuestosClienteDataTableRules.GetFACTURAValue: String; +begin + result := DataTable.Fields[idx_PresupuestosClienteFACTURA].AsString; +end; + +procedure TPresupuestosClienteDataTableRules.SetFACTURAValue(const aValue: String); +begin + DataTable.Fields[idx_PresupuestosClienteFACTURA].AsString := aValue; +end; + +function TPresupuestosClienteDataTableRules.GetFACTURAIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClienteFACTURA].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetFACTURAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClienteFACTURA].AsVariant := Null; +end; + +function TPresupuestosClienteDataTableRules.GetPERSONA_CONTACTOValue: String; +begin + result := DataTable.Fields[idx_PresupuestosClientePERSONA_CONTACTO].AsString; +end; + +procedure TPresupuestosClienteDataTableRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + DataTable.Fields[idx_PresupuestosClientePERSONA_CONTACTO].AsString := aValue; +end; + +function TPresupuestosClienteDataTableRules.GetPERSONA_CONTACTOIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClientePERSONA_CONTACTO].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetPERSONA_CONTACTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClientePERSONA_CONTACTO].AsVariant := Null; +end; + +function TPresupuestosClienteDataTableRules.GetDESCRIPCION_BONIFICACIONValue: String; +begin + result := DataTable.Fields[idx_PresupuestosClienteDESCRIPCION_BONIFICACION].AsString; +end; + +procedure TPresupuestosClienteDataTableRules.SetDESCRIPCION_BONIFICACIONValue(const aValue: String); +begin + DataTable.Fields[idx_PresupuestosClienteDESCRIPCION_BONIFICACION].AsString := aValue; +end; + +function TPresupuestosClienteDataTableRules.GetDESCRIPCION_BONIFICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClienteDESCRIPCION_BONIFICACION].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetDESCRIPCION_BONIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClienteDESCRIPCION_BONIFICACION].AsVariant := Null; +end; + +function TPresupuestosClienteDataTableRules.GetIMPORTE_BONIFICACIONValue: Currency; +begin + result := DataTable.Fields[idx_PresupuestosClienteIMPORTE_BONIFICACION].AsCurrency; +end; + +procedure TPresupuestosClienteDataTableRules.SetIMPORTE_BONIFICACIONValue(const aValue: Currency); +begin + DataTable.Fields[idx_PresupuestosClienteIMPORTE_BONIFICACION].AsCurrency := aValue; +end; + +function TPresupuestosClienteDataTableRules.GetIMPORTE_BONIFICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClienteIMPORTE_BONIFICACION].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetIMPORTE_BONIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClienteIMPORTE_BONIFICACION].AsVariant := Null; +end; + + +{ TPresupuestosCliente_DetallesDataTableRules } +constructor TPresupuestosCliente_DetallesDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TPresupuestosCliente_DetallesDataTableRules.Destroy; +begin + inherited; +end; + +function TPresupuestosCliente_DetallesDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_PresupuestosCliente_DetallesID].AsInteger; +end; + +procedure TPresupuestosCliente_DetallesDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_PresupuestosCliente_DetallesID].AsInteger := aValue; +end; + +function TPresupuestosCliente_DetallesDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosCliente_DetallesID].IsNull; +end; + +procedure TPresupuestosCliente_DetallesDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosCliente_DetallesID].AsVariant := Null; +end; + +function TPresupuestosCliente_DetallesDataTableRules.GetID_PRESUPUESTOValue: Integer; +begin + result := DataTable.Fields[idx_PresupuestosCliente_DetallesID_PRESUPUESTO].AsInteger; +end; + +procedure TPresupuestosCliente_DetallesDataTableRules.SetID_PRESUPUESTOValue(const aValue: Integer); +begin + DataTable.Fields[idx_PresupuestosCliente_DetallesID_PRESUPUESTO].AsInteger := aValue; +end; + +function TPresupuestosCliente_DetallesDataTableRules.GetID_PRESUPUESTOIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosCliente_DetallesID_PRESUPUESTO].IsNull; +end; + +procedure TPresupuestosCliente_DetallesDataTableRules.SetID_PRESUPUESTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosCliente_DetallesID_PRESUPUESTO].AsVariant := Null; +end; + +function TPresupuestosCliente_DetallesDataTableRules.GetPOSICIONValue: Integer; +begin + result := DataTable.Fields[idx_PresupuestosCliente_DetallesPOSICION].AsInteger; +end; + +procedure TPresupuestosCliente_DetallesDataTableRules.SetPOSICIONValue(const aValue: Integer); +begin + DataTable.Fields[idx_PresupuestosCliente_DetallesPOSICION].AsInteger := aValue; +end; + +function TPresupuestosCliente_DetallesDataTableRules.GetPOSICIONIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosCliente_DetallesPOSICION].IsNull; +end; + +procedure TPresupuestosCliente_DetallesDataTableRules.SetPOSICIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosCliente_DetallesPOSICION].AsVariant := Null; +end; + +function TPresupuestosCliente_DetallesDataTableRules.GetTIPO_DETALLEValue: String; +begin + result := DataTable.Fields[idx_PresupuestosCliente_DetallesTIPO_DETALLE].AsString; +end; + +procedure TPresupuestosCliente_DetallesDataTableRules.SetTIPO_DETALLEValue(const aValue: String); +begin + DataTable.Fields[idx_PresupuestosCliente_DetallesTIPO_DETALLE].AsString := aValue; +end; + +function TPresupuestosCliente_DetallesDataTableRules.GetTIPO_DETALLEIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosCliente_DetallesTIPO_DETALLE].IsNull; +end; + +procedure TPresupuestosCliente_DetallesDataTableRules.SetTIPO_DETALLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosCliente_DetallesTIPO_DETALLE].AsVariant := Null; +end; + +function TPresupuestosCliente_DetallesDataTableRules.GetCONCEPTOValue: String; +begin + result := DataTable.Fields[idx_PresupuestosCliente_DetallesCONCEPTO].AsString; +end; + +procedure TPresupuestosCliente_DetallesDataTableRules.SetCONCEPTOValue(const aValue: String); +begin + DataTable.Fields[idx_PresupuestosCliente_DetallesCONCEPTO].AsString := aValue; +end; + +function TPresupuestosCliente_DetallesDataTableRules.GetCONCEPTOIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosCliente_DetallesCONCEPTO].IsNull; +end; + +procedure TPresupuestosCliente_DetallesDataTableRules.SetCONCEPTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosCliente_DetallesCONCEPTO].AsVariant := Null; +end; + +function TPresupuestosCliente_DetallesDataTableRules.GetCANTIDADValue: Float; +begin + result := DataTable.Fields[idx_PresupuestosCliente_DetallesCANTIDAD].AsFloat; +end; + +procedure TPresupuestosCliente_DetallesDataTableRules.SetCANTIDADValue(const aValue: Float); +begin + DataTable.Fields[idx_PresupuestosCliente_DetallesCANTIDAD].AsFloat := aValue; +end; + +function TPresupuestosCliente_DetallesDataTableRules.GetCANTIDADIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosCliente_DetallesCANTIDAD].IsNull; +end; + +procedure TPresupuestosCliente_DetallesDataTableRules.SetCANTIDADIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosCliente_DetallesCANTIDAD].AsVariant := Null; +end; + +function TPresupuestosCliente_DetallesDataTableRules.GetUNIDAD_MEDIDAValue: String; +begin + result := DataTable.Fields[idx_PresupuestosCliente_DetallesUNIDAD_MEDIDA].AsString; +end; + +procedure TPresupuestosCliente_DetallesDataTableRules.SetUNIDAD_MEDIDAValue(const aValue: String); +begin + DataTable.Fields[idx_PresupuestosCliente_DetallesUNIDAD_MEDIDA].AsString := aValue; +end; + +function TPresupuestosCliente_DetallesDataTableRules.GetUNIDAD_MEDIDAIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosCliente_DetallesUNIDAD_MEDIDA].IsNull; +end; + +procedure TPresupuestosCliente_DetallesDataTableRules.SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosCliente_DetallesUNIDAD_MEDIDA].AsVariant := Null; +end; + +function TPresupuestosCliente_DetallesDataTableRules.GetIMPORTE_UNIDADValue: Currency; +begin + result := DataTable.Fields[idx_PresupuestosCliente_DetallesIMPORTE_UNIDAD].AsCurrency; +end; + +procedure TPresupuestosCliente_DetallesDataTableRules.SetIMPORTE_UNIDADValue(const aValue: Currency); +begin + DataTable.Fields[idx_PresupuestosCliente_DetallesIMPORTE_UNIDAD].AsCurrency := aValue; +end; + +function TPresupuestosCliente_DetallesDataTableRules.GetIMPORTE_UNIDADIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosCliente_DetallesIMPORTE_UNIDAD].IsNull; +end; + +procedure TPresupuestosCliente_DetallesDataTableRules.SetIMPORTE_UNIDADIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosCliente_DetallesIMPORTE_UNIDAD].AsVariant := Null; +end; + +function TPresupuestosCliente_DetallesDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_PresupuestosCliente_DetallesIMPORTE_TOTAL].AsCurrency; +end; + +procedure TPresupuestosCliente_DetallesDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_PresupuestosCliente_DetallesIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TPresupuestosCliente_DetallesDataTableRules.GetIMPORTE_TOTALIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosCliente_DetallesIMPORTE_TOTAL].IsNull; +end; + +procedure TPresupuestosCliente_DetallesDataTableRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosCliente_DetallesIMPORTE_TOTAL].AsVariant := Null; +end; + +function TPresupuestosCliente_DetallesDataTableRules.GetVISIBLEValue: Integer; +begin + result := DataTable.Fields[idx_PresupuestosCliente_DetallesVISIBLE].AsInteger; +end; + +procedure TPresupuestosCliente_DetallesDataTableRules.SetVISIBLEValue(const aValue: Integer); +begin + DataTable.Fields[idx_PresupuestosCliente_DetallesVISIBLE].AsInteger := aValue; +end; + +function TPresupuestosCliente_DetallesDataTableRules.GetVISIBLEIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosCliente_DetallesVISIBLE].IsNull; +end; + +procedure TPresupuestosCliente_DetallesDataTableRules.SetVISIBLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosCliente_DetallesVISIBLE].AsVariant := Null; +end; + +function TPresupuestosCliente_DetallesDataTableRules.GetID_ARTICULOValue: Integer; +begin + result := DataTable.Fields[idx_PresupuestosCliente_DetallesID_ARTICULO].AsInteger; +end; + +procedure TPresupuestosCliente_DetallesDataTableRules.SetID_ARTICULOValue(const aValue: Integer); +begin + DataTable.Fields[idx_PresupuestosCliente_DetallesID_ARTICULO].AsInteger := aValue; +end; + +function TPresupuestosCliente_DetallesDataTableRules.GetID_ARTICULOIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosCliente_DetallesID_ARTICULO].IsNull; +end; + +procedure TPresupuestosCliente_DetallesDataTableRules.SetID_ARTICULOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosCliente_DetallesID_ARTICULO].AsVariant := Null; +end; + +function TPresupuestosCliente_DetallesDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_PresupuestosCliente_DetallesDESCUENTO].AsFloat; +end; + +procedure TPresupuestosCliente_DetallesDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_PresupuestosCliente_DetallesDESCUENTO].AsFloat := aValue; +end; + +function TPresupuestosCliente_DetallesDataTableRules.GetDESCUENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosCliente_DetallesDESCUENTO].IsNull; +end; + +procedure TPresupuestosCliente_DetallesDataTableRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosCliente_DetallesDESCUENTO].AsVariant := Null; +end; + +function TPresupuestosCliente_DetallesDataTableRules.GetIMPORTE_PORTEValue: Currency; +begin + result := DataTable.Fields[idx_PresupuestosCliente_DetallesIMPORTE_PORTE].AsCurrency; +end; + +procedure TPresupuestosCliente_DetallesDataTableRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + DataTable.Fields[idx_PresupuestosCliente_DetallesIMPORTE_PORTE].AsCurrency := aValue; +end; + +function TPresupuestosCliente_DetallesDataTableRules.GetIMPORTE_PORTEIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosCliente_DetallesIMPORTE_PORTE].IsNull; +end; + +procedure TPresupuestosCliente_DetallesDataTableRules.SetIMPORTE_PORTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosCliente_DetallesIMPORTE_PORTE].AsVariant := Null; +end; + +function TPresupuestosCliente_DetallesDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_PresupuestosCliente_DetallesREFERENCIA].AsString; +end; + +procedure TPresupuestosCliente_DetallesDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_PresupuestosCliente_DetallesREFERENCIA].AsString := aValue; +end; + +function TPresupuestosCliente_DetallesDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosCliente_DetallesREFERENCIA].IsNull; +end; + +procedure TPresupuestosCliente_DetallesDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosCliente_DetallesREFERENCIA].AsVariant := Null; +end; + +function TPresupuestosCliente_DetallesDataTableRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_PresupuestosCliente_DetallesREFERENCIA_PROVEEDOR].AsString; +end; + +procedure TPresupuestosCliente_DetallesDataTableRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_PresupuestosCliente_DetallesREFERENCIA_PROVEEDOR].AsString := aValue; +end; + +function TPresupuestosCliente_DetallesDataTableRules.GetREFERENCIA_PROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosCliente_DetallesREFERENCIA_PROVEEDOR].IsNull; +end; + +procedure TPresupuestosCliente_DetallesDataTableRules.SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosCliente_DetallesREFERENCIA_PROVEEDOR].AsVariant := Null; +end; + + +initialization + RegisterDataTableRules(RID_ListaAnosPresupuestos, TListaAnosPresupuestosDataTableRules); + RegisterDataTableRules(RID_PresupuestosCliente, TPresupuestosClienteDataTableRules); + RegisterDataTableRules(RID_PresupuestosCliente_Detalles, TPresupuestosCliente_DetallesDataTableRules); + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteServer_Intf.dcu b/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteServer_Intf.dcu new file mode 100644 index 0000000..89cec6c Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteServer_Intf.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteServer_Intf.pas b/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteServer_Intf.pas new file mode 100644 index 0000000..ff55564 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteServer_Intf.pas @@ -0,0 +1,2352 @@ +unit schPresupuestosClienteServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schPresupuestosClienteClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_ListaAnosPresupuestosDelta = '{B819407B-3A58-42FE-99D1-D735F8094AD1}'; + RID_PresupuestosClienteDelta = '{A00D261A-A215-445D-9DCC-C024662EA398}'; + RID_PresupuestosCliente_DetallesDelta = '{8943CBEB-C17F-4C81-B0D7-E1FBF3B8445C}'; + +type + { IListaAnosPresupuestosDelta } + IListaAnosPresupuestosDelta = interface(IListaAnosPresupuestos) + ['{B819407B-3A58-42FE-99D1-D735F8094AD1}'] + { Property getters and setters } + function GetOldANOValue : String; + + { Properties } + property OldANO : String read GetOldANOValue; + end; + + { TListaAnosPresupuestosBusinessProcessorRules } + TListaAnosPresupuestosBusinessProcessorRules = class(TDABusinessProcessorRules, IListaAnosPresupuestos, IListaAnosPresupuestosDelta) + private + protected + { Property getters and setters } + function GetANOValue: String; virtual; + function GetANOIsNull: Boolean; virtual; + function GetOldANOValue: String; virtual; + function GetOldANOIsNull: Boolean; virtual; + procedure SetANOValue(const aValue: String); virtual; + procedure SetANOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ANO : String read GetANOValue write SetANOValue; + property ANOIsNull : Boolean read GetANOIsNull write SetANOIsNull; + property OldANO : String read GetOldANOValue; + property OldANOIsNull : Boolean read GetOldANOIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IPresupuestosClienteDelta } + IPresupuestosClienteDelta = interface(IPresupuestosCliente) + ['{A00D261A-A215-445D-9DCC-C024662EA398}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldFECHA_PRESUPUESTOValue : DateTime; + function GetOldFECHA_DECISIONValue : DateTime; + function GetOldREFERENCIAValue : String; + function GetOldREFERENCIA_AUXValue : String; + function GetOldSITUACIONValue : String; + function GetOldID_CLIENTEValue : Integer; + function GetOldID_DIRECCIONValue : Integer; + function GetOldNIF_CIFValue : String; + function GetOldNOMBREValue : String; + function GetOldREFERENCIA_CLIENTEValue : String; + function GetOldCLIENTE_FINALValue : String; + function GetOldPORTADAValue : IROStrings; + function GetOldMEMORIAValue : IROStrings; + function GetOldOBSERVACIONESValue : IROStrings; + function GetOldINCIDENCIASValue : IROStrings; + function GetOldINCIDENCIAS_ACTIVASValue : Integer; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + function GetOldUSUARIOValue : String; + function GetOldIMPORTE_NETOValue : Currency; + function GetOldIMPORTE_PORTEValue : Currency; + function GetOldDESCUENTOValue : Float; + function GetOldIMPORTE_DESCUENTOValue : Currency; + function GetOldBASE_IMPONIBLEValue : Currency; + function GetOldIVAValue : Float; + function GetOldIMPORTE_IVAValue : Currency; + function GetOldIMPORTE_TOTALValue : Currency; + function GetOldID_FORMA_PAGOValue : Integer; + function GetOldID_FACTURAValue : Integer; + function GetOldFACTURAValue : String; + function GetOldPERSONA_CONTACTOValue : String; + function GetOldDESCRIPCION_BONIFICACIONValue : String; + function GetOldIMPORTE_BONIFICACIONValue : Currency; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldFECHA_PRESUPUESTO : DateTime read GetOldFECHA_PRESUPUESTOValue; + property OldFECHA_DECISION : DateTime read GetOldFECHA_DECISIONValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIA_AUX : String read GetOldREFERENCIA_AUXValue; + property OldSITUACION : String read GetOldSITUACIONValue; + property OldID_CLIENTE : Integer read GetOldID_CLIENTEValue; + property OldID_DIRECCION : Integer read GetOldID_DIRECCIONValue; + property OldNIF_CIF : String read GetOldNIF_CIFValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldREFERENCIA_CLIENTE : String read GetOldREFERENCIA_CLIENTEValue; + property OldCLIENTE_FINAL : String read GetOldCLIENTE_FINALValue; + property OldPORTADA : IROStrings read GetOldPORTADAValue; + property OldMEMORIA : IROStrings read GetOldMEMORIAValue; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property OldINCIDENCIAS : IROStrings read GetOldINCIDENCIASValue; + property OldINCIDENCIAS_ACTIVAS : Integer read GetOldINCIDENCIAS_ACTIVASValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldIMPORTE_NETO : Currency read GetOldIMPORTE_NETOValue; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldIMPORTE_DESCUENTO : Currency read GetOldIMPORTE_DESCUENTOValue; + property OldBASE_IMPONIBLE : Currency read GetOldBASE_IMPONIBLEValue; + property OldIVA : Float read GetOldIVAValue; + property OldIMPORTE_IVA : Currency read GetOldIMPORTE_IVAValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property OldFACTURA : String read GetOldFACTURAValue; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property OldDESCRIPCION_BONIFICACION : String read GetOldDESCRIPCION_BONIFICACIONValue; + property OldIMPORTE_BONIFICACION : Currency read GetOldIMPORTE_BONIFICACIONValue; + end; + + { TPresupuestosClienteBusinessProcessorRules } + TPresupuestosClienteBusinessProcessorRules = class(TDABusinessProcessorRules, IPresupuestosCliente, IPresupuestosClienteDelta) + private + f_PORTADA: IROStrings; + f_MEMORIA: IROStrings; + f_OBSERVACIONES: IROStrings; + f_INCIDENCIAS: IROStrings; + procedure PORTADA_OnChange(Sender: TObject); + procedure MEMORIA_OnChange(Sender: TObject); + procedure OBSERVACIONES_OnChange(Sender: TObject); + procedure INCIDENCIAS_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetFECHA_PRESUPUESTOValue: DateTime; virtual; + function GetFECHA_PRESUPUESTOIsNull: Boolean; virtual; + function GetOldFECHA_PRESUPUESTOValue: DateTime; virtual; + function GetOldFECHA_PRESUPUESTOIsNull: Boolean; virtual; + procedure SetFECHA_PRESUPUESTOValue(const aValue: DateTime); virtual; + procedure SetFECHA_PRESUPUESTOIsNull(const aValue: Boolean); virtual; + function GetFECHA_DECISIONValue: DateTime; virtual; + function GetFECHA_DECISIONIsNull: Boolean; virtual; + function GetOldFECHA_DECISIONValue: DateTime; virtual; + function GetOldFECHA_DECISIONIsNull: Boolean; virtual; + procedure SetFECHA_DECISIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_DECISIONIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_AUXValue: String; virtual; + function GetREFERENCIA_AUXIsNull: Boolean; virtual; + function GetOldREFERENCIA_AUXValue: String; virtual; + function GetOldREFERENCIA_AUXIsNull: Boolean; virtual; + procedure SetREFERENCIA_AUXValue(const aValue: String); virtual; + procedure SetREFERENCIA_AUXIsNull(const aValue: Boolean); virtual; + function GetSITUACIONValue: String; virtual; + function GetSITUACIONIsNull: Boolean; virtual; + function GetOldSITUACIONValue: String; virtual; + function GetOldSITUACIONIsNull: Boolean; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + procedure SetSITUACIONIsNull(const aValue: Boolean); virtual; + function GetID_CLIENTEValue: Integer; virtual; + function GetID_CLIENTEIsNull: Boolean; virtual; + function GetOldID_CLIENTEValue: Integer; virtual; + function GetOldID_CLIENTEIsNull: Boolean; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + procedure SetID_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetID_DIRECCIONValue: Integer; virtual; + function GetID_DIRECCIONIsNull: Boolean; virtual; + function GetOldID_DIRECCIONValue: Integer; virtual; + function GetOldID_DIRECCIONIsNull: Boolean; virtual; + procedure SetID_DIRECCIONValue(const aValue: Integer); virtual; + procedure SetID_DIRECCIONIsNull(const aValue: Boolean); virtual; + function GetNIF_CIFValue: String; virtual; + function GetNIF_CIFIsNull: Boolean; virtual; + function GetOldNIF_CIFValue: String; virtual; + function GetOldNIF_CIFIsNull: Boolean; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + procedure SetNIF_CIFIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + function GetNOMBREIsNull: Boolean; virtual; + function GetOldNOMBREValue: String; virtual; + function GetOldNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_CLIENTEValue: String; virtual; + function GetREFERENCIA_CLIENTEIsNull: Boolean; virtual; + function GetOldREFERENCIA_CLIENTEValue: String; virtual; + function GetOldREFERENCIA_CLIENTEIsNull: Boolean; virtual; + procedure SetREFERENCIA_CLIENTEValue(const aValue: String); virtual; + procedure SetREFERENCIA_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetCLIENTE_FINALValue: String; virtual; + function GetCLIENTE_FINALIsNull: Boolean; virtual; + function GetOldCLIENTE_FINALValue: String; virtual; + function GetOldCLIENTE_FINALIsNull: Boolean; virtual; + procedure SetCLIENTE_FINALValue(const aValue: String); virtual; + procedure SetCLIENTE_FINALIsNull(const aValue: Boolean); virtual; + function GetPORTADAValue: IROStrings; virtual; + function GetPORTADAIsNull: Boolean; virtual; + function GetOldPORTADAValue: IROStrings; virtual; + function GetOldPORTADAIsNull: Boolean; virtual; + procedure SetPORTADAIsNull(const aValue: Boolean); virtual; + function GetMEMORIAValue: IROStrings; virtual; + function GetMEMORIAIsNull: Boolean; virtual; + function GetOldMEMORIAValue: IROStrings; virtual; + function GetOldMEMORIAIsNull: Boolean; virtual; + procedure SetMEMORIAIsNull(const aValue: Boolean); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + function GetOBSERVACIONESIsNull: Boolean; virtual; + function GetOldOBSERVACIONESValue: IROStrings; virtual; + function GetOldOBSERVACIONESIsNull: Boolean; virtual; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); virtual; + function GetINCIDENCIASValue: IROStrings; virtual; + function GetINCIDENCIASIsNull: Boolean; virtual; + function GetOldINCIDENCIASValue: IROStrings; virtual; + function GetOldINCIDENCIASIsNull: Boolean; virtual; + procedure SetINCIDENCIASIsNull(const aValue: Boolean); virtual; + function GetINCIDENCIAS_ACTIVASValue: Integer; virtual; + function GetINCIDENCIAS_ACTIVASIsNull: Boolean; virtual; + function GetOldINCIDENCIAS_ACTIVASValue: Integer; virtual; + function GetOldINCIDENCIAS_ACTIVASIsNull: Boolean; virtual; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); virtual; + procedure SetINCIDENCIAS_ACTIVASIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + function GetUSUARIOIsNull: Boolean; virtual; + function GetOldUSUARIOValue: String; virtual; + function GetOldUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + function GetIMPORTE_NETOIsNull: Boolean; virtual; + function GetOldIMPORTE_NETOValue: Currency; virtual; + function GetOldIMPORTE_NETOIsNull: Boolean; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + procedure SetIMPORTE_NETOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + function GetIMPORTE_PORTEIsNull: Boolean; virtual; + function GetOldIMPORTE_PORTEValue: Currency; virtual; + function GetOldIMPORTE_PORTEIsNull: Boolean; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + function GetOldDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + function GetIMPORTE_DESCUENTOIsNull: Boolean; virtual; + function GetOldIMPORTE_DESCUENTOValue: Currency; virtual; + function GetOldIMPORTE_DESCUENTOIsNull: Boolean; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + procedure SetIMPORTE_DESCUENTOIsNull(const aValue: Boolean); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + function GetBASE_IMPONIBLEIsNull: Boolean; virtual; + function GetOldBASE_IMPONIBLEValue: Currency; virtual; + function GetOldBASE_IMPONIBLEIsNull: Boolean; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + procedure SetBASE_IMPONIBLEIsNull(const aValue: Boolean); virtual; + function GetIVAValue: Float; virtual; + function GetIVAIsNull: Boolean; virtual; + function GetOldIVAValue: Float; virtual; + function GetOldIVAIsNull: Boolean; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + procedure SetIVAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + function GetIMPORTE_IVAIsNull: Boolean; virtual; + function GetOldIMPORTE_IVAValue: Currency; virtual; + function GetOldIMPORTE_IVAIsNull: Boolean; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + procedure SetIMPORTE_IVAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + function GetID_FORMA_PAGOIsNull: Boolean; virtual; + function GetOldID_FORMA_PAGOValue: Integer; virtual; + function GetOldID_FORMA_PAGOIsNull: Boolean; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + procedure SetID_FORMA_PAGOIsNull(const aValue: Boolean); virtual; + function GetID_FACTURAValue: Integer; virtual; + function GetID_FACTURAIsNull: Boolean; virtual; + function GetOldID_FACTURAValue: Integer; virtual; + function GetOldID_FACTURAIsNull: Boolean; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + procedure SetID_FACTURAIsNull(const aValue: Boolean); virtual; + function GetFACTURAValue: String; virtual; + function GetFACTURAIsNull: Boolean; virtual; + function GetOldFACTURAValue: String; virtual; + function GetOldFACTURAIsNull: Boolean; virtual; + procedure SetFACTURAValue(const aValue: String); virtual; + procedure SetFACTURAIsNull(const aValue: Boolean); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + function GetPERSONA_CONTACTOIsNull: Boolean; virtual; + function GetOldPERSONA_CONTACTOValue: String; virtual; + function GetOldPERSONA_CONTACTOIsNull: Boolean; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCION_BONIFICACIONValue: String; virtual; + function GetDESCRIPCION_BONIFICACIONIsNull: Boolean; virtual; + function GetOldDESCRIPCION_BONIFICACIONValue: String; virtual; + function GetOldDESCRIPCION_BONIFICACIONIsNull: Boolean; virtual; + procedure SetDESCRIPCION_BONIFICACIONValue(const aValue: String); virtual; + procedure SetDESCRIPCION_BONIFICACIONIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_BONIFICACIONValue: Currency; virtual; + function GetIMPORTE_BONIFICACIONIsNull: Boolean; virtual; + function GetOldIMPORTE_BONIFICACIONValue: Currency; virtual; + function GetOldIMPORTE_BONIFICACIONIsNull: Boolean; virtual; + procedure SetIMPORTE_BONIFICACIONValue(const aValue: Currency); virtual; + procedure SetIMPORTE_BONIFICACIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull : Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_EMPRESAIsNull : Boolean read GetOldID_EMPRESAIsNull; + property FECHA_PRESUPUESTO : DateTime read GetFECHA_PRESUPUESTOValue write SetFECHA_PRESUPUESTOValue; + property FECHA_PRESUPUESTOIsNull : Boolean read GetFECHA_PRESUPUESTOIsNull write SetFECHA_PRESUPUESTOIsNull; + property OldFECHA_PRESUPUESTO : DateTime read GetOldFECHA_PRESUPUESTOValue; + property OldFECHA_PRESUPUESTOIsNull : Boolean read GetOldFECHA_PRESUPUESTOIsNull; + property FECHA_DECISION : DateTime read GetFECHA_DECISIONValue write SetFECHA_DECISIONValue; + property FECHA_DECISIONIsNull : Boolean read GetFECHA_DECISIONIsNull write SetFECHA_DECISIONIsNull; + property OldFECHA_DECISION : DateTime read GetOldFECHA_DECISIONValue; + property OldFECHA_DECISIONIsNull : Boolean read GetOldFECHA_DECISIONIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property REFERENCIA_AUX : String read GetREFERENCIA_AUXValue write SetREFERENCIA_AUXValue; + property REFERENCIA_AUXIsNull : Boolean read GetREFERENCIA_AUXIsNull write SetREFERENCIA_AUXIsNull; + property OldREFERENCIA_AUX : String read GetOldREFERENCIA_AUXValue; + property OldREFERENCIA_AUXIsNull : Boolean read GetOldREFERENCIA_AUXIsNull; + property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue; + property SITUACIONIsNull : Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull; + property OldSITUACION : String read GetOldSITUACIONValue; + property OldSITUACIONIsNull : Boolean read GetOldSITUACIONIsNull; + property ID_CLIENTE : Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property ID_CLIENTEIsNull : Boolean read GetID_CLIENTEIsNull write SetID_CLIENTEIsNull; + property OldID_CLIENTE : Integer read GetOldID_CLIENTEValue; + property OldID_CLIENTEIsNull : Boolean read GetOldID_CLIENTEIsNull; + property ID_DIRECCION : Integer read GetID_DIRECCIONValue write SetID_DIRECCIONValue; + property ID_DIRECCIONIsNull : Boolean read GetID_DIRECCIONIsNull write SetID_DIRECCIONIsNull; + property OldID_DIRECCION : Integer read GetOldID_DIRECCIONValue; + property OldID_DIRECCIONIsNull : Boolean read GetOldID_DIRECCIONIsNull; + property NIF_CIF : String read GetNIF_CIFValue write SetNIF_CIFValue; + property NIF_CIFIsNull : Boolean read GetNIF_CIFIsNull write SetNIF_CIFIsNull; + property OldNIF_CIF : String read GetOldNIF_CIFValue; + property OldNIF_CIFIsNull : Boolean read GetOldNIF_CIFIsNull; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull : Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldNOMBREIsNull : Boolean read GetOldNOMBREIsNull; + property REFERENCIA_CLIENTE : String read GetREFERENCIA_CLIENTEValue write SetREFERENCIA_CLIENTEValue; + property REFERENCIA_CLIENTEIsNull : Boolean read GetREFERENCIA_CLIENTEIsNull write SetREFERENCIA_CLIENTEIsNull; + property OldREFERENCIA_CLIENTE : String read GetOldREFERENCIA_CLIENTEValue; + property OldREFERENCIA_CLIENTEIsNull : Boolean read GetOldREFERENCIA_CLIENTEIsNull; + property CLIENTE_FINAL : String read GetCLIENTE_FINALValue write SetCLIENTE_FINALValue; + property CLIENTE_FINALIsNull : Boolean read GetCLIENTE_FINALIsNull write SetCLIENTE_FINALIsNull; + property OldCLIENTE_FINAL : String read GetOldCLIENTE_FINALValue; + property OldCLIENTE_FINALIsNull : Boolean read GetOldCLIENTE_FINALIsNull; + property PORTADA : IROStrings read GetPORTADAValue; + property PORTADAIsNull : Boolean read GetPORTADAIsNull write SetPORTADAIsNull; + property OldPORTADA : IROStrings read GetOldPORTADAValue; + property OldPORTADAIsNull : Boolean read GetOldPORTADAIsNull; + property MEMORIA : IROStrings read GetMEMORIAValue; + property MEMORIAIsNull : Boolean read GetMEMORIAIsNull write SetMEMORIAIsNull; + property OldMEMORIA : IROStrings read GetOldMEMORIAValue; + property OldMEMORIAIsNull : Boolean read GetOldMEMORIAIsNull; + property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue; + property OBSERVACIONESIsNull : Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property OldOBSERVACIONESIsNull : Boolean read GetOldOBSERVACIONESIsNull; + property INCIDENCIAS : IROStrings read GetINCIDENCIASValue; + property INCIDENCIASIsNull : Boolean read GetINCIDENCIASIsNull write SetINCIDENCIASIsNull; + property OldINCIDENCIAS : IROStrings read GetOldINCIDENCIASValue; + property OldINCIDENCIASIsNull : Boolean read GetOldINCIDENCIASIsNull; + property INCIDENCIAS_ACTIVAS : Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property INCIDENCIAS_ACTIVASIsNull : Boolean read GetINCIDENCIAS_ACTIVASIsNull write SetINCIDENCIAS_ACTIVASIsNull; + property OldINCIDENCIAS_ACTIVAS : Integer read GetOldINCIDENCIAS_ACTIVASValue; + property OldINCIDENCIAS_ACTIVASIsNull : Boolean read GetOldINCIDENCIAS_ACTIVASIsNull; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull : Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_ALTAIsNull : Boolean read GetOldFECHA_ALTAIsNull; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull : Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldUSUARIOIsNull : Boolean read GetOldUSUARIOIsNull; + property IMPORTE_NETO : Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_NETOIsNull : Boolean read GetIMPORTE_NETOIsNull write SetIMPORTE_NETOIsNull; + property OldIMPORTE_NETO : Currency read GetOldIMPORTE_NETOValue; + property OldIMPORTE_NETOIsNull : Boolean read GetOldIMPORTE_NETOIsNull; + property IMPORTE_PORTE : Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull : Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property OldIMPORTE_PORTEIsNull : Boolean read GetOldIMPORTE_PORTEIsNull; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull : Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldDESCUENTOIsNull : Boolean read GetOldDESCUENTOIsNull; + property IMPORTE_DESCUENTO : Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property IMPORTE_DESCUENTOIsNull : Boolean read GetIMPORTE_DESCUENTOIsNull write SetIMPORTE_DESCUENTOIsNull; + property OldIMPORTE_DESCUENTO : Currency read GetOldIMPORTE_DESCUENTOValue; + property OldIMPORTE_DESCUENTOIsNull : Boolean read GetOldIMPORTE_DESCUENTOIsNull; + property BASE_IMPONIBLE : Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property BASE_IMPONIBLEIsNull : Boolean read GetBASE_IMPONIBLEIsNull write SetBASE_IMPONIBLEIsNull; + property OldBASE_IMPONIBLE : Currency read GetOldBASE_IMPONIBLEValue; + property OldBASE_IMPONIBLEIsNull : Boolean read GetOldBASE_IMPONIBLEIsNull; + property IVA : Float read GetIVAValue write SetIVAValue; + property IVAIsNull : Boolean read GetIVAIsNull write SetIVAIsNull; + property OldIVA : Float read GetOldIVAValue; + property OldIVAIsNull : Boolean read GetOldIVAIsNull; + property IMPORTE_IVA : Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property IMPORTE_IVAIsNull : Boolean read GetIMPORTE_IVAIsNull write SetIMPORTE_IVAIsNull; + property OldIMPORTE_IVA : Currency read GetOldIMPORTE_IVAValue; + property OldIMPORTE_IVAIsNull : Boolean read GetOldIMPORTE_IVAIsNull; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull : Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldIMPORTE_TOTALIsNull : Boolean read GetOldIMPORTE_TOTALIsNull; + property ID_FORMA_PAGO : Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property ID_FORMA_PAGOIsNull : Boolean read GetID_FORMA_PAGOIsNull write SetID_FORMA_PAGOIsNull; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + property OldID_FORMA_PAGOIsNull : Boolean read GetOldID_FORMA_PAGOIsNull; + property ID_FACTURA : Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull : Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property OldID_FACTURAIsNull : Boolean read GetOldID_FACTURAIsNull; + property FACTURA : String read GetFACTURAValue write SetFACTURAValue; + property FACTURAIsNull : Boolean read GetFACTURAIsNull write SetFACTURAIsNull; + property OldFACTURA : String read GetOldFACTURAValue; + property OldFACTURAIsNull : Boolean read GetOldFACTURAIsNull; + property PERSONA_CONTACTO : String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull : Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property OldPERSONA_CONTACTOIsNull : Boolean read GetOldPERSONA_CONTACTOIsNull; + property DESCRIPCION_BONIFICACION : String read GetDESCRIPCION_BONIFICACIONValue write SetDESCRIPCION_BONIFICACIONValue; + property DESCRIPCION_BONIFICACIONIsNull : Boolean read GetDESCRIPCION_BONIFICACIONIsNull write SetDESCRIPCION_BONIFICACIONIsNull; + property OldDESCRIPCION_BONIFICACION : String read GetOldDESCRIPCION_BONIFICACIONValue; + property OldDESCRIPCION_BONIFICACIONIsNull : Boolean read GetOldDESCRIPCION_BONIFICACIONIsNull; + property IMPORTE_BONIFICACION : Currency read GetIMPORTE_BONIFICACIONValue write SetIMPORTE_BONIFICACIONValue; + property IMPORTE_BONIFICACIONIsNull : Boolean read GetIMPORTE_BONIFICACIONIsNull write SetIMPORTE_BONIFICACIONIsNull; + property OldIMPORTE_BONIFICACION : Currency read GetOldIMPORTE_BONIFICACIONValue; + property OldIMPORTE_BONIFICACIONIsNull : Boolean read GetOldIMPORTE_BONIFICACIONIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IPresupuestosCliente_DetallesDelta } + IPresupuestosCliente_DetallesDelta = interface(IPresupuestosCliente_Detalles) + ['{8943CBEB-C17F-4C81-B0D7-E1FBF3B8445C}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_PRESUPUESTOValue : Integer; + function GetOldPOSICIONValue : Integer; + function GetOldTIPO_DETALLEValue : String; + function GetOldCONCEPTOValue : String; + function GetOldCANTIDADValue : Float; + function GetOldUNIDAD_MEDIDAValue : String; + function GetOldIMPORTE_UNIDADValue : Currency; + function GetOldIMPORTE_TOTALValue : Currency; + function GetOldVISIBLEValue : Integer; + function GetOldID_ARTICULOValue : Integer; + function GetOldDESCUENTOValue : Float; + function GetOldIMPORTE_PORTEValue : Currency; + function GetOldREFERENCIAValue : String; + function GetOldREFERENCIA_PROVEEDORValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_PRESUPUESTO : Integer read GetOldID_PRESUPUESTOValue; + property OldPOSICION : Integer read GetOldPOSICIONValue; + property OldTIPO_DETALLE : String read GetOldTIPO_DETALLEValue; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property OldCANTIDAD : Float read GetOldCANTIDADValue; + property OldUNIDAD_MEDIDA : String read GetOldUNIDAD_MEDIDAValue; + property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + end; + + { TPresupuestosCliente_DetallesBusinessProcessorRules } + TPresupuestosCliente_DetallesBusinessProcessorRules = class(TDABusinessProcessorRules, IPresupuestosCliente_Detalles, IPresupuestosCliente_DetallesDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_PRESUPUESTOValue: Integer; virtual; + function GetID_PRESUPUESTOIsNull: Boolean; virtual; + function GetOldID_PRESUPUESTOValue: Integer; virtual; + function GetOldID_PRESUPUESTOIsNull: Boolean; virtual; + procedure SetID_PRESUPUESTOValue(const aValue: Integer); virtual; + procedure SetID_PRESUPUESTOIsNull(const aValue: Boolean); virtual; + function GetPOSICIONValue: Integer; virtual; + function GetPOSICIONIsNull: Boolean; virtual; + function GetOldPOSICIONValue: Integer; virtual; + function GetOldPOSICIONIsNull: Boolean; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + procedure SetPOSICIONIsNull(const aValue: Boolean); virtual; + function GetTIPO_DETALLEValue: String; virtual; + function GetTIPO_DETALLEIsNull: Boolean; virtual; + function GetOldTIPO_DETALLEValue: String; virtual; + function GetOldTIPO_DETALLEIsNull: Boolean; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + procedure SetTIPO_DETALLEIsNull(const aValue: Boolean); virtual; + function GetCONCEPTOValue: String; virtual; + function GetCONCEPTOIsNull: Boolean; virtual; + function GetOldCONCEPTOValue: String; virtual; + function GetOldCONCEPTOIsNull: Boolean; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + procedure SetCONCEPTOIsNull(const aValue: Boolean); virtual; + function GetCANTIDADValue: Float; virtual; + function GetCANTIDADIsNull: Boolean; virtual; + function GetOldCANTIDADValue: Float; virtual; + function GetOldCANTIDADIsNull: Boolean; virtual; + procedure SetCANTIDADValue(const aValue: Float); virtual; + procedure SetCANTIDADIsNull(const aValue: Boolean); virtual; + function GetUNIDAD_MEDIDAValue: String; virtual; + function GetUNIDAD_MEDIDAIsNull: Boolean; virtual; + function GetOldUNIDAD_MEDIDAValue: String; virtual; + function GetOldUNIDAD_MEDIDAIsNull: Boolean; virtual; + procedure SetUNIDAD_MEDIDAValue(const aValue: String); virtual; + procedure SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_UNIDADValue: Currency; virtual; + function GetIMPORTE_UNIDADIsNull: Boolean; virtual; + function GetOldIMPORTE_UNIDADValue: Currency; virtual; + function GetOldIMPORTE_UNIDADIsNull: Boolean; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual; + procedure SetIMPORTE_UNIDADIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetVISIBLEValue: Integer; virtual; + function GetVISIBLEIsNull: Boolean; virtual; + function GetOldVISIBLEValue: Integer; virtual; + function GetOldVISIBLEIsNull: Boolean; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + procedure SetVISIBLEIsNull(const aValue: Boolean); virtual; + function GetID_ARTICULOValue: Integer; virtual; + function GetID_ARTICULOIsNull: Boolean; virtual; + function GetOldID_ARTICULOValue: Integer; virtual; + function GetOldID_ARTICULOIsNull: Boolean; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + function GetOldDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + function GetIMPORTE_PORTEIsNull: Boolean; virtual; + function GetOldIMPORTE_PORTEValue: Currency; virtual; + function GetOldIMPORTE_PORTEIsNull: Boolean; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + function GetREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + function GetOldREFERENCIA_PROVEEDORValue: String; virtual; + function GetOldREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_PRESUPUESTO : Integer read GetID_PRESUPUESTOValue write SetID_PRESUPUESTOValue; + property ID_PRESUPUESTOIsNull : Boolean read GetID_PRESUPUESTOIsNull write SetID_PRESUPUESTOIsNull; + property OldID_PRESUPUESTO : Integer read GetOldID_PRESUPUESTOValue; + property OldID_PRESUPUESTOIsNull : Boolean read GetOldID_PRESUPUESTOIsNull; + property POSICION : Integer read GetPOSICIONValue write SetPOSICIONValue; + property POSICIONIsNull : Boolean read GetPOSICIONIsNull write SetPOSICIONIsNull; + property OldPOSICION : Integer read GetOldPOSICIONValue; + property OldPOSICIONIsNull : Boolean read GetOldPOSICIONIsNull; + property TIPO_DETALLE : String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property TIPO_DETALLEIsNull : Boolean read GetTIPO_DETALLEIsNull write SetTIPO_DETALLEIsNull; + property OldTIPO_DETALLE : String read GetOldTIPO_DETALLEValue; + property OldTIPO_DETALLEIsNull : Boolean read GetOldTIPO_DETALLEIsNull; + property CONCEPTO : String read GetCONCEPTOValue write SetCONCEPTOValue; + property CONCEPTOIsNull : Boolean read GetCONCEPTOIsNull write SetCONCEPTOIsNull; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property OldCONCEPTOIsNull : Boolean read GetOldCONCEPTOIsNull; + property CANTIDAD : Float read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDADIsNull : Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; + property OldCANTIDAD : Float read GetOldCANTIDADValue; + property OldCANTIDADIsNull : Boolean read GetOldCANTIDADIsNull; + property UNIDAD_MEDIDA : String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue; + property UNIDAD_MEDIDAIsNull : Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull; + property OldUNIDAD_MEDIDA : String read GetOldUNIDAD_MEDIDAValue; + property OldUNIDAD_MEDIDAIsNull : Boolean read GetOldUNIDAD_MEDIDAIsNull; + property IMPORTE_UNIDAD : Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_UNIDADIsNull : Boolean read GetIMPORTE_UNIDADIsNull write SetIMPORTE_UNIDADIsNull; + property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue; + property OldIMPORTE_UNIDADIsNull : Boolean read GetOldIMPORTE_UNIDADIsNull; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull : Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldIMPORTE_TOTALIsNull : Boolean read GetOldIMPORTE_TOTALIsNull; + property VISIBLE : Integer read GetVISIBLEValue write SetVISIBLEValue; + property VISIBLEIsNull : Boolean read GetVISIBLEIsNull write SetVISIBLEIsNull; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property OldVISIBLEIsNull : Boolean read GetOldVISIBLEIsNull; + property ID_ARTICULO : Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull : Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldID_ARTICULOIsNull : Boolean read GetOldID_ARTICULOIsNull; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull : Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldDESCUENTOIsNull : Boolean read GetOldDESCUENTOIsNull; + property IMPORTE_PORTE : Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull : Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property OldIMPORTE_PORTEIsNull : Boolean read GetOldIMPORTE_PORTEIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property REFERENCIA_PROVEEDOR : String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull : Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + property OldREFERENCIA_PROVEEDORIsNull : Boolean read GetOldREFERENCIA_PROVEEDORIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers, uDAInterfaces; + +{ TListaAnosPresupuestosBusinessProcessorRules } +constructor TListaAnosPresupuestosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TListaAnosPresupuestosBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TListaAnosPresupuestosBusinessProcessorRules.GetANOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosPresupuestosANO]; +end; + +function TListaAnosPresupuestosBusinessProcessorRules.GetANOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosPresupuestosANO]); +end; + +function TListaAnosPresupuestosBusinessProcessorRules.GetOldANOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaAnosPresupuestosANO]; +end; + +function TListaAnosPresupuestosBusinessProcessorRules.GetOldANOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ListaAnosPresupuestosANO]); +end; + +procedure TListaAnosPresupuestosBusinessProcessorRules.SetANOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosPresupuestosANO] := aValue; +end; + +procedure TListaAnosPresupuestosBusinessProcessorRules.SetANOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosPresupuestosANO] := Null; +end; + + +{ TPresupuestosClienteBusinessProcessorRules } +constructor TPresupuestosClienteBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := PORTADA_OnChange; + f_PORTADA := NewROStrings(StrList,True); + + StrList := TStringList.Create; + StrList.OnChange := MEMORIA_OnChange; + f_MEMORIA := NewROStrings(StrList,True); + + StrList := TStringList.Create; + StrList.OnChange := OBSERVACIONES_OnChange; + f_OBSERVACIONES := NewROStrings(StrList,True); + + StrList := TStringList.Create; + StrList.OnChange := INCIDENCIAS_OnChange; + f_INCIDENCIAS := NewROStrings(StrList,True); +end; + +destructor TPresupuestosClienteBusinessProcessorRules.Destroy; +begin + inherited; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.PORTADA_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClientePORTADA] := TStringList(Sender).Text; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.MEMORIA_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteMEMORIA] := TStringList(Sender).Text; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.OBSERVACIONES_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteOBSERVACIONES] := TStringList(Sender).Text; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.INCIDENCIAS_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteINCIDENCIAS] := TStringList(Sender).Text; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteID]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteID]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteID]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteID]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteID] := aValue; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteID] := Null; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteID_EMPRESA]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteID_EMPRESA]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteID_EMPRESA]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteID_EMPRESA]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteID_EMPRESA] := aValue; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteID_EMPRESA] := Null; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetFECHA_PRESUPUESTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteFECHA_PRESUPUESTO]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetFECHA_PRESUPUESTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteFECHA_PRESUPUESTO]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldFECHA_PRESUPUESTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteFECHA_PRESUPUESTO]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldFECHA_PRESUPUESTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteFECHA_PRESUPUESTO]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetFECHA_PRESUPUESTOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteFECHA_PRESUPUESTO] := aValue; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetFECHA_PRESUPUESTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteFECHA_PRESUPUESTO] := Null; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetFECHA_DECISIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteFECHA_DECISION]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetFECHA_DECISIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteFECHA_DECISION]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldFECHA_DECISIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteFECHA_DECISION]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldFECHA_DECISIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteFECHA_DECISION]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetFECHA_DECISIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteFECHA_DECISION] := aValue; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetFECHA_DECISIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteFECHA_DECISION] := Null; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteREFERENCIA]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteREFERENCIA]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteREFERENCIA]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteREFERENCIA]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteREFERENCIA] := aValue; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteREFERENCIA] := Null; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetREFERENCIA_AUXValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteREFERENCIA_AUX]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetREFERENCIA_AUXIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteREFERENCIA_AUX]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldREFERENCIA_AUXValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteREFERENCIA_AUX]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldREFERENCIA_AUXIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteREFERENCIA_AUX]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetREFERENCIA_AUXValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteREFERENCIA_AUX] := aValue; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetREFERENCIA_AUXIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteREFERENCIA_AUX] := Null; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteSITUACION]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetSITUACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteSITUACION]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteSITUACION]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldSITUACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteSITUACION]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetSITUACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteSITUACION] := aValue; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetSITUACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteSITUACION] := Null; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteID_CLIENTE]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetID_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteID_CLIENTE]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteID_CLIENTE]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldID_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteID_CLIENTE]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetID_CLIENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteID_CLIENTE] := aValue; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetID_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteID_CLIENTE] := Null; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetID_DIRECCIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteID_DIRECCION]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetID_DIRECCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteID_DIRECCION]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldID_DIRECCIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteID_DIRECCION]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldID_DIRECCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteID_DIRECCION]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetID_DIRECCIONValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteID_DIRECCION] := aValue; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetID_DIRECCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteID_DIRECCION] := Null; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteNIF_CIF]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetNIF_CIFIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteNIF_CIF]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteNIF_CIF]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldNIF_CIFIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteNIF_CIF]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetNIF_CIFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteNIF_CIF] := aValue; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetNIF_CIFIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteNIF_CIF] := Null; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteNOMBRE]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteNOMBRE]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteNOMBRE]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteNOMBRE]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteNOMBRE] := aValue; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteNOMBRE] := Null; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetREFERENCIA_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteREFERENCIA_CLIENTE]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetREFERENCIA_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteREFERENCIA_CLIENTE]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldREFERENCIA_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteREFERENCIA_CLIENTE]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldREFERENCIA_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteREFERENCIA_CLIENTE]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetREFERENCIA_CLIENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteREFERENCIA_CLIENTE] := aValue; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetREFERENCIA_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteREFERENCIA_CLIENTE] := Null; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetCLIENTE_FINALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteCLIENTE_FINAL]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetCLIENTE_FINALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteCLIENTE_FINAL]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldCLIENTE_FINALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteCLIENTE_FINAL]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldCLIENTE_FINALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteCLIENTE_FINAL]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetCLIENTE_FINALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteCLIENTE_FINAL] := aValue; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetCLIENTE_FINALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteCLIENTE_FINAL] := Null; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetPORTADAValue: IROStrings; +begin + result := f_PORTADA; + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClientePORTADA]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetPORTADAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClientePORTADA]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldPORTADAValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClientePORTADA]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldPORTADAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClientePORTADA]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetPORTADAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClientePORTADA] := Null; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetMEMORIAValue: IROStrings; +begin + result := f_MEMORIA; + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteMEMORIA]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetMEMORIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteMEMORIA]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldMEMORIAValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteMEMORIA]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldMEMORIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteMEMORIA]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetMEMORIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteMEMORIA] := Null; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings; +begin + result := f_OBSERVACIONES; + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteOBSERVACIONES]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOBSERVACIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteOBSERVACIONES]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteOBSERVACIONES]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldOBSERVACIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteOBSERVACIONES]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetOBSERVACIONESIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteOBSERVACIONES] := Null; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetINCIDENCIASValue: IROStrings; +begin + result := f_INCIDENCIAS; + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteINCIDENCIAS]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetINCIDENCIASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteINCIDENCIAS]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldINCIDENCIASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteINCIDENCIAS]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldINCIDENCIASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteINCIDENCIAS]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetINCIDENCIASIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteINCIDENCIAS] := Null; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetINCIDENCIAS_ACTIVASValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteINCIDENCIAS_ACTIVAS]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetINCIDENCIAS_ACTIVASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteINCIDENCIAS_ACTIVAS]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldINCIDENCIAS_ACTIVASValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteINCIDENCIAS_ACTIVAS]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldINCIDENCIAS_ACTIVASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteINCIDENCIAS_ACTIVAS]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteINCIDENCIAS_ACTIVAS] := aValue; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetINCIDENCIAS_ACTIVASIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteINCIDENCIAS_ACTIVAS] := Null; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteFECHA_ALTA]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteFECHA_ALTA]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteFECHA_ALTA]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteFECHA_ALTA]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteFECHA_ALTA] := aValue; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteFECHA_ALTA] := Null; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteFECHA_MODIFICACION]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteFECHA_MODIFICACION]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteFECHA_MODIFICACION]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteFECHA_MODIFICACION]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteFECHA_MODIFICACION] := aValue; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteFECHA_MODIFICACION] := Null; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteUSUARIO]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteUSUARIO]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteUSUARIO]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteUSUARIO]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteUSUARIO] := aValue; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteUSUARIO] := Null; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteIMPORTE_NETO]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetIMPORTE_NETOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteIMPORTE_NETO]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteIMPORTE_NETO]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldIMPORTE_NETOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteIMPORTE_NETO]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetIMPORTE_NETOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteIMPORTE_NETO] := aValue; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetIMPORTE_NETOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteIMPORTE_NETO] := Null; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteIMPORTE_PORTE]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetIMPORTE_PORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteIMPORTE_PORTE]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteIMPORTE_PORTE]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldIMPORTE_PORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteIMPORTE_PORTE]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteIMPORTE_PORTE] := aValue; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetIMPORTE_PORTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteIMPORTE_PORTE] := Null; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteDESCUENTO]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteDESCUENTO]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteDESCUENTO]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteDESCUENTO]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteDESCUENTO] := aValue; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteDESCUENTO] := Null; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteIMPORTE_DESCUENTO]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetIMPORTE_DESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteIMPORTE_DESCUENTO]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteIMPORTE_DESCUENTO]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldIMPORTE_DESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteIMPORTE_DESCUENTO]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetIMPORTE_DESCUENTOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteIMPORTE_DESCUENTO] := aValue; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetIMPORTE_DESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteIMPORTE_DESCUENTO] := Null; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteBASE_IMPONIBLE]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetBASE_IMPONIBLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteBASE_IMPONIBLE]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteBASE_IMPONIBLE]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldBASE_IMPONIBLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteBASE_IMPONIBLE]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteBASE_IMPONIBLE] := aValue; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetBASE_IMPONIBLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteBASE_IMPONIBLE] := Null; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteIVA]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetIVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteIVA]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteIVA]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldIVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteIVA]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetIVAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteIVA] := aValue; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetIVAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteIVA] := Null; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteIMPORTE_IVA]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetIMPORTE_IVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteIMPORTE_IVA]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteIMPORTE_IVA]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldIMPORTE_IVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteIMPORTE_IVA]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetIMPORTE_IVAValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteIMPORTE_IVA] := aValue; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetIMPORTE_IVAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteIMPORTE_IVA] := Null; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteIMPORTE_TOTAL]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteIMPORTE_TOTAL]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteIMPORTE_TOTAL]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteIMPORTE_TOTAL]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteIMPORTE_TOTAL] := aValue; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteIMPORTE_TOTAL] := Null; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteID_FORMA_PAGO]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetID_FORMA_PAGOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteID_FORMA_PAGO]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteID_FORMA_PAGO]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldID_FORMA_PAGOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteID_FORMA_PAGO]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteID_FORMA_PAGO] := aValue; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetID_FORMA_PAGOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteID_FORMA_PAGO] := Null; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteID_FACTURA]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetID_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteID_FACTURA]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteID_FACTURA]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldID_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteID_FACTURA]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetID_FACTURAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteID_FACTURA] := aValue; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetID_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteID_FACTURA] := Null; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetFACTURAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteFACTURA]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetFACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteFACTURA]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldFACTURAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteFACTURA]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldFACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteFACTURA]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetFACTURAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteFACTURA] := aValue; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetFACTURAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteFACTURA] := Null; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClientePERSONA_CONTACTO]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetPERSONA_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClientePERSONA_CONTACTO]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClientePERSONA_CONTACTO]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldPERSONA_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClientePERSONA_CONTACTO]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClientePERSONA_CONTACTO] := aValue; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetPERSONA_CONTACTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClientePERSONA_CONTACTO] := Null; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetDESCRIPCION_BONIFICACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteDESCRIPCION_BONIFICACION]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetDESCRIPCION_BONIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteDESCRIPCION_BONIFICACION]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldDESCRIPCION_BONIFICACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteDESCRIPCION_BONIFICACION]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldDESCRIPCION_BONIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteDESCRIPCION_BONIFICACION]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetDESCRIPCION_BONIFICACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteDESCRIPCION_BONIFICACION] := aValue; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetDESCRIPCION_BONIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteDESCRIPCION_BONIFICACION] := Null; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetIMPORTE_BONIFICACIONValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteIMPORTE_BONIFICACION]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetIMPORTE_BONIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteIMPORTE_BONIFICACION]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldIMPORTE_BONIFICACIONValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteIMPORTE_BONIFICACION]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldIMPORTE_BONIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteIMPORTE_BONIFICACION]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetIMPORTE_BONIFICACIONValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteIMPORTE_BONIFICACION] := aValue; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetIMPORTE_BONIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteIMPORTE_BONIFICACION] := Null; +end; + + +{ TPresupuestosCliente_DetallesBusinessProcessorRules } +constructor TPresupuestosCliente_DetallesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TPresupuestosCliente_DetallesBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesID]; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesID]); +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCliente_DetallesID]; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCliente_DetallesID]); +end; + +procedure TPresupuestosCliente_DetallesBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesID] := aValue; +end; + +procedure TPresupuestosCliente_DetallesBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesID] := Null; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetID_PRESUPUESTOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesID_PRESUPUESTO]; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetID_PRESUPUESTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesID_PRESUPUESTO]); +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetOldID_PRESUPUESTOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCliente_DetallesID_PRESUPUESTO]; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetOldID_PRESUPUESTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCliente_DetallesID_PRESUPUESTO]); +end; + +procedure TPresupuestosCliente_DetallesBusinessProcessorRules.SetID_PRESUPUESTOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesID_PRESUPUESTO] := aValue; +end; + +procedure TPresupuestosCliente_DetallesBusinessProcessorRules.SetID_PRESUPUESTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesID_PRESUPUESTO] := Null; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesPOSICION]; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetPOSICIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesPOSICION]); +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetOldPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCliente_DetallesPOSICION]; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetOldPOSICIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCliente_DetallesPOSICION]); +end; + +procedure TPresupuestosCliente_DetallesBusinessProcessorRules.SetPOSICIONValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesPOSICION] := aValue; +end; + +procedure TPresupuestosCliente_DetallesBusinessProcessorRules.SetPOSICIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesPOSICION] := Null; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetTIPO_DETALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesTIPO_DETALLE]; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetTIPO_DETALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesTIPO_DETALLE]); +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetOldTIPO_DETALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCliente_DetallesTIPO_DETALLE]; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetOldTIPO_DETALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCliente_DetallesTIPO_DETALLE]); +end; + +procedure TPresupuestosCliente_DetallesBusinessProcessorRules.SetTIPO_DETALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesTIPO_DETALLE] := aValue; +end; + +procedure TPresupuestosCliente_DetallesBusinessProcessorRules.SetTIPO_DETALLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesTIPO_DETALLE] := Null; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesCONCEPTO]; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetCONCEPTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesCONCEPTO]); +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetOldCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCliente_DetallesCONCEPTO]; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetOldCONCEPTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCliente_DetallesCONCEPTO]); +end; + +procedure TPresupuestosCliente_DetallesBusinessProcessorRules.SetCONCEPTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesCONCEPTO] := aValue; +end; + +procedure TPresupuestosCliente_DetallesBusinessProcessorRules.SetCONCEPTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesCONCEPTO] := Null; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetCANTIDADValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesCANTIDAD]; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetCANTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesCANTIDAD]); +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetOldCANTIDADValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCliente_DetallesCANTIDAD]; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetOldCANTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCliente_DetallesCANTIDAD]); +end; + +procedure TPresupuestosCliente_DetallesBusinessProcessorRules.SetCANTIDADValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesCANTIDAD] := aValue; +end; + +procedure TPresupuestosCliente_DetallesBusinessProcessorRules.SetCANTIDADIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesCANTIDAD] := Null; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetUNIDAD_MEDIDAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesUNIDAD_MEDIDA]; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetUNIDAD_MEDIDAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesUNIDAD_MEDIDA]); +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetOldUNIDAD_MEDIDAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCliente_DetallesUNIDAD_MEDIDA]; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetOldUNIDAD_MEDIDAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCliente_DetallesUNIDAD_MEDIDA]); +end; + +procedure TPresupuestosCliente_DetallesBusinessProcessorRules.SetUNIDAD_MEDIDAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesUNIDAD_MEDIDA] := aValue; +end; + +procedure TPresupuestosCliente_DetallesBusinessProcessorRules.SetUNIDAD_MEDIDAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesUNIDAD_MEDIDA] := Null; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetIMPORTE_UNIDADValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesIMPORTE_UNIDAD]; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetIMPORTE_UNIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesIMPORTE_UNIDAD]); +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetOldIMPORTE_UNIDADValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCliente_DetallesIMPORTE_UNIDAD]; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetOldIMPORTE_UNIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCliente_DetallesIMPORTE_UNIDAD]); +end; + +procedure TPresupuestosCliente_DetallesBusinessProcessorRules.SetIMPORTE_UNIDADValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesIMPORTE_UNIDAD] := aValue; +end; + +procedure TPresupuestosCliente_DetallesBusinessProcessorRules.SetIMPORTE_UNIDADIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesIMPORTE_UNIDAD] := Null; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesIMPORTE_TOTAL]; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesIMPORTE_TOTAL]); +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCliente_DetallesIMPORTE_TOTAL]; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetOldIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCliente_DetallesIMPORTE_TOTAL]); +end; + +procedure TPresupuestosCliente_DetallesBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesIMPORTE_TOTAL] := aValue; +end; + +procedure TPresupuestosCliente_DetallesBusinessProcessorRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesIMPORTE_TOTAL] := Null; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesVISIBLE]; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetVISIBLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesVISIBLE]); +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetOldVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCliente_DetallesVISIBLE]; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetOldVISIBLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCliente_DetallesVISIBLE]); +end; + +procedure TPresupuestosCliente_DetallesBusinessProcessorRules.SetVISIBLEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesVISIBLE] := aValue; +end; + +procedure TPresupuestosCliente_DetallesBusinessProcessorRules.SetVISIBLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesVISIBLE] := Null; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesID_ARTICULO]; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetID_ARTICULOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesID_ARTICULO]); +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetOldID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCliente_DetallesID_ARTICULO]; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetOldID_ARTICULOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCliente_DetallesID_ARTICULO]); +end; + +procedure TPresupuestosCliente_DetallesBusinessProcessorRules.SetID_ARTICULOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesID_ARTICULO] := aValue; +end; + +procedure TPresupuestosCliente_DetallesBusinessProcessorRules.SetID_ARTICULOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesID_ARTICULO] := Null; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesDESCUENTO]; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesDESCUENTO]); +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCliente_DetallesDESCUENTO]; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetOldDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCliente_DetallesDESCUENTO]); +end; + +procedure TPresupuestosCliente_DetallesBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesDESCUENTO] := aValue; +end; + +procedure TPresupuestosCliente_DetallesBusinessProcessorRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesDESCUENTO] := Null; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesIMPORTE_PORTE]; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetIMPORTE_PORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesIMPORTE_PORTE]); +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCliente_DetallesIMPORTE_PORTE]; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetOldIMPORTE_PORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCliente_DetallesIMPORTE_PORTE]); +end; + +procedure TPresupuestosCliente_DetallesBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesIMPORTE_PORTE] := aValue; +end; + +procedure TPresupuestosCliente_DetallesBusinessProcessorRules.SetIMPORTE_PORTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesIMPORTE_PORTE] := Null; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesREFERENCIA]; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesREFERENCIA]); +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCliente_DetallesREFERENCIA]; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCliente_DetallesREFERENCIA]); +end; + +procedure TPresupuestosCliente_DetallesBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesREFERENCIA] := aValue; +end; + +procedure TPresupuestosCliente_DetallesBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesREFERENCIA] := Null; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesREFERENCIA_PROVEEDOR]; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetREFERENCIA_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesREFERENCIA_PROVEEDOR]); +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCliente_DetallesREFERENCIA_PROVEEDOR]; +end; + +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCliente_DetallesREFERENCIA_PROVEEDOR]); +end; + +procedure TPresupuestosCliente_DetallesBusinessProcessorRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesREFERENCIA_PROVEEDOR] := aValue; +end; + +procedure TPresupuestosCliente_DetallesBusinessProcessorRules.SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesREFERENCIA_PROVEEDOR] := Null; +end; + + +initialization + RegisterBusinessProcessorRules(RID_ListaAnosPresupuestosDelta, TListaAnosPresupuestosBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_PresupuestosClienteDelta, TPresupuestosClienteBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_PresupuestosCliente_DetallesDelta, TPresupuestosCliente_DetallesBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Model/uBizDetallesPresupuestoCliente.dcu b/Source/Modulos/Presupuestos de cliente/Model/uBizDetallesPresupuestoCliente.dcu new file mode 100644 index 0000000..14ad652 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Model/uBizDetallesPresupuestoCliente.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Model/uBizDetallesPresupuestoCliente.pas b/Source/Modulos/Presupuestos de cliente/Model/uBizDetallesPresupuestoCliente.pas new file mode 100644 index 0000000..35faa54 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Model/uBizDetallesPresupuestoCliente.pas @@ -0,0 +1,49 @@ +unit uBizDetallesPresupuestoCliente; + +interface + +uses + uDADataTable, schPresupuestosClienteClient_Intf; + +const + BIZ_CLIENT_DETALLES_PRESUPUESTO_CLIENTE = 'Client.PresupuestoCliente.Detalles'; + +type + IBizDetallesPresupuestoCliente = interface(IPresupuestosCliente_Detalles) + ['{2D7781DC-AD16-4857-9567-5C1620319781}'] + end; + + TBizDetallesPresupuestoCliente = class(TPresupuestosCliente_DetallesDataTableRules, IBizDetallesPresupuestoCliente) + protected + procedure OnNewRecord(Sender: TDADataTable); override; + procedure BeforeInsert(Sender: TDADataTable); override; + end; + + +implementation + +{ TBizDetallesPresupuestoCliente } + +uses + Dialogs, DB, SysUtils, JclStrings; + +procedure TBizDetallesPresupuestoCliente.BeforeInsert(Sender: TDADataTable); +var + AMasterTable : TDADataTable; +begin + inherited; + AMasterTable := DataTable.GetMasterDataTable; + if Assigned(AMasterTable) and (AMasterTable.State = dsInsert) then + AMasterTable.Post; +end; + +procedure TBizDetallesPresupuestoCliente.OnNewRecord(Sender: TDADataTable); +begin + inherited; + VISIBLE := 1; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_DETALLES_PRESUPUESTO_CLIENTE, TBizDetallesPresupuestoCliente); + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Model/uBizPresupuestosCliente.dcu b/Source/Modulos/Presupuestos de cliente/Model/uBizPresupuestosCliente.dcu new file mode 100644 index 0000000..ea19d85 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Model/uBizPresupuestosCliente.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Model/uBizPresupuestosCliente.pas b/Source/Modulos/Presupuestos de cliente/Model/uBizPresupuestosCliente.pas new file mode 100644 index 0000000..4a8e212 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Model/uBizPresupuestosCliente.pas @@ -0,0 +1,311 @@ +unit uBizPresupuestosCliente; + +interface + +uses + Classes, uDADataTable, uDAInterfaces, uROClasses, + schPresupuestosClienteClient_Intf, uDBSelectionListUtils, + uBizContactos, uBizDetallesPresupuestoCliente; + +const + BIZ_CLIENT_PRESUPUESTO_CLIENTE = 'Client.PresupuestoCliente'; + + SITUACION_PRESUPUESTO_PENDIENTE = 'PENDIENTE'; + SITUACION_PRESUPUESTO_ACEPTADO = 'ACEPTADO'; + SITUACION_PRESUPUESTO_ANULADO = 'ANULADO'; + +type + IBizPresupuestoCliente = interface(IPresupuestosCliente) + ['{86A2FAD7-D125-47C2-B0BA-52A42FDFA6F6}'] + + procedure SetCliente(AValue : IBizCliente); + function GetCliente : IBizCliente; + property Cliente : IBizCliente read GetCliente write SetCliente; + + // Esta propidad es para que el controlador pueda acceder directamente + // a la propiedad Cliente + procedure _SetCliente(AValue : IBizCliente); + function _GetCliente : IBizCliente; + property _Cliente : IBizCliente read _GetCliente write _SetCliente; + + function GetDetalles: IBizDetallesPresupuestoCliente; + procedure SetDetalles(Value: IBizDetallesPresupuestoCliente); + property Detalles: IBizDetallesPresupuestoCliente read GetDetalles write SetDetalles; + + procedure CalcularImporteTotal; + + function EsNuevo : Boolean; + function DarListaSituaciones: TStringList; + end; + + TBizPresupuestoCliente = class(TPresupuestosClienteDataTableRules, IBizPresupuestoCliente, ISeleccionable) + private + procedure CalcularBaseImponible; + procedure CalcularIVA; + protected + FSeleccionableInterface : ISeleccionable; + FCliente : IBizCliente; + FDetalles : IBizDetallesPresupuestoCliente; + FDetallesLink : TDADataSource; + + procedure SetCliente(AValue : IBizCliente); + function GetCliente : IBizCliente; + + procedure _SetCliente(AValue : IBizCliente); + function _GetCliente : IBizCliente; + + function GetDetalles: IBizDetallesPresupuestoCliente; + procedure SetDetalles(Value: IBizDetallesPresupuestoCliente); + + function GetSITUACIONValue: String; override; + procedure SetFECHA_PRESUPUESTOValue(const aValue: TDateTime); override; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); override; + + procedure OnNewRecord(Sender: TDADataTable); override; + procedure IniciarValoresPresupuestoNuevo; + + procedure IMPORTE_NETOOnChange(Sender: TDACustomField); + procedure IMPORTE_BONIFICACIONOnChange(Sender: TDACustomField); + procedure IMPORTE_PORTEOnChange(Sender: TDACustomField); + procedure DESCUENTOOnChange(Sender: TDACustomField); + procedure IVAOnChange(Sender: TDACustomField); + + public + function DarListaSituaciones: TStringList; + function EsNuevo : Boolean; + procedure CalcularImporteTotal; + property Cliente : IBizCliente read GetCliente write SetCliente; + property _Cliente : IBizCliente read _GetCliente write _SetCliente; + + property Detalles: IBizDetallesPresupuestoCliente read GetDetalles write SetDetalles; + + property SeleccionableInterface : ISeleccionable read FSeleccionableInterface + write FSeleccionableInterface implements ISeleccionable; + + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + end; + + +implementation + +uses + SysUtils, Variants, uDataModuleConfiguracion, uDataModuleUsuarios, Dialogs, + uDataTableUtils, DateUtils, uDateUtils, DB, uFactuGES_App; + +{ TBizPresupuestoCliente } + +procedure TBizPresupuestoCliente.CalcularBaseImponible; +begin + if not Self.DataTable.Editing then + Edit; + IMPORTE_DESCUENTO := IMPORTE_NETO * (DESCUENTO/100); + BASE_IMPONIBLE := IMPORTE_NETO - IMPORTE_DESCUENTO - IMPORTE_BONIFICACION + IMPORTE_PORTE; +end; + +procedure TBizPresupuestoCliente.CalcularImporteTotal; +begin + DataTable.DisableControls; + DataTable.Fields.FieldEventsDisabled := True; + try + CalcularBaseImponible; + CalcularIVA; + + if not Self.DataTable.Editing then + Edit; + IMPORTE_TOTAL := BASE_IMPONIBLE + IMPORTE_IVA; + finally + DataTable.Fields.FieldEventsDisabled := False; + DataTable.EnableControls; + end; +end; + +procedure TBizPresupuestoCliente.CalcularIVA; +begin + if not Self.DataTable.Editing then + Edit; + IMPORTE_IVA := (IVA / 100) * (BASE_IMPONIBLE); +end; + +constructor TBizPresupuestoCliente.Create(aDataTable: TDADataTable); +begin + inherited; + FCliente := Nil; + + with DataTable do + begin + FieldByName(fld_PresupuestosClienteIMPORTE_NETO).OnChange := IMPORTE_NETOOnChange; + FieldByName(fld_PresupuestosClienteIMPORTE_BONIFICACION).OnChange := IMPORTE_BONIFICACIONOnChange; + FieldByName(fld_PresupuestosClienteIMPORTE_PORTE).OnChange := IMPORTE_PORTEOnChange; + FieldByName(fld_PresupuestosClienteDESCUENTO).OnChange := DESCUENTOOnChange; + FieldByName(fld_PresupuestosClienteIVA).OnChange := IVAOnChange; + end; + + FDetallesLink := TDADataSource.Create(NIL); + FDetallesLink.DataTable := aDataTable; + + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +function TBizPresupuestoCliente.DarListaSituaciones: TStringList; +begin + Result := TStringList.Create; + with Result do + begin + Add(SITUACION_PRESUPUESTO_PENDIENTE); + Add(SITUACION_PRESUPUESTO_ACEPTADO); + Add(SITUACION_PRESUPUESTO_ANULADO); + end; +end; + +procedure TBizPresupuestoCliente.DESCUENTOOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +destructor TBizPresupuestoCliente.Destroy; +begin + FCliente := NIL; + FDetalles := NIL; + FDetallesLink.Free; + + FSeleccionableInterface := NIL; + inherited; +end; + +function TBizPresupuestoCliente.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +function TBizPresupuestoCliente.GetCliente: IBizCliente; +begin + Result := FCliente; +end; + +procedure TBizPresupuestoCliente.IMPORTE_BONIFICACIONOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +procedure TBizPresupuestoCliente.IMPORTE_NETOOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +procedure TBizPresupuestoCliente.IMPORTE_PORTEOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +procedure TBizPresupuestoCliente.IniciarValoresPresupuestoNuevo; +begin + ID_EMPRESA := AppFactuGES.EmpresaActiva.ID; + USUARIO := AppFactuGES.UsuarioActivo.UserName; + FECHA_PRESUPUESTO := DateOf(Date); + INCIDENCIAS_ACTIVAS := 0; +// INCIDENCIAS := NIL; + REFERENCIA := ''; + SITUACION := SITUACION_PRESUPUESTO_PENDIENTE; +end; + +procedure TBizPresupuestoCliente.IVAOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +function TBizPresupuestoCliente.GetDetalles: IBizDetallesPresupuestoCliente; +begin + Result := FDetalles; +end; + +function TBizPresupuestoCliente.GetSITUACIONValue: String; +begin + result := Trim(DataTable.Fields[idx_PresupuestosClienteSITUACION].AsString); +end; + +procedure TBizPresupuestoCliente.OnNewRecord(Sender: TDADataTable); +begin + inherited; +// ID := GetRecNo; // -1, -2, -3... + IniciarValoresPresupuestoNuevo; +end; + +procedure TBizPresupuestoCliente.SetCliente(AValue: IBizCliente); +var + bEnEdicion : Boolean; + +begin + FCliente := AValue; + + if Assigned(FCliente) then + begin + if not FCliente.DataTable.Active then + FCliente.DataTable.Active := True; + + if ID_Cliente <> FCliente.ID then + begin + bEnEdicion := (DataTable.State in dsEditModes); + if not bEnEdicion then + DataTable.Edit; + + ID_CLIENTE := FCliente.ID; + if FCliente.ID_FORMA_PAGO > 0 then + ID_FORMA_PAGO := FCliente.ID_FORMA_PAGO; + DESCUENTO := FCliente.DESCUENTO; + + DataTable.Post; //Muy importante ya que es necesario hacer un post de la cabecera antes de aadir detalles + //si se quita el id de la cabecera y los detalles se desincroniza + if bEnEdicion then + DataTable.Edit; + end; + end; +end; + +procedure TBizPresupuestoCliente.SetDetalles(Value: IBizDetallesPresupuestoCliente); +begin + FDetalles := Value; + EnlazarMaestroDetalle(FDetallesLink, FDetalles); +end; + +procedure TBizPresupuestoCliente.SetFECHA_PRESUPUESTOValue(const aValue: TDateTime); +begin + if EsFechaVacia(aValue) then + SetFieldNull(DataTable, fld_PresupuestosClienteFECHA_PRESUPUESTO) + else + inherited; +end; + +procedure TBizPresupuestoCliente.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + if (aValue = 0) then + SetFieldNull(DataTable, fld_PresupuestosClienteID_FORMA_PAGO) + else + inherited; +end; +{ +procedure TBizPresupuestoCliente.SetINCIDENCIASValue(const aValue: IROStrings); +begin + if not Assigned(aValue) then + SetFieldNull(DataTable, fld_PresupuestosClienteINCIDENCIAS) + else + inherited; +end; +} +function TBizPresupuestoCliente._GetCliente: IBizCliente; +begin + Result := FCliente; +end; + +procedure TBizPresupuestoCliente._SetCliente(AValue: IBizCliente); +begin + FCliente := AValue; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_PRESUPUESTO_CLIENTE, TBizPresupuestoCliente); + +finalization + +end. + diff --git a/Source/Modulos/Presupuestos de cliente/Model/uBizPresupuestosClienteServer.dcu b/Source/Modulos/Presupuestos de cliente/Model/uBizPresupuestosClienteServer.dcu new file mode 100644 index 0000000..cf845d6 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Model/uBizPresupuestosClienteServer.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Model/uBizPresupuestosClienteServer.pas b/Source/Modulos/Presupuestos de cliente/Model/uBizPresupuestosClienteServer.pas new file mode 100644 index 0000000..17e5ff4 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Model/uBizPresupuestosClienteServer.pas @@ -0,0 +1,104 @@ +unit uBizPresupuestosClienteServer; + +interface + +uses + uDAInterfaces, uDADelta, uDABusinessProcessor, + schPresupuestosClienteServer_Intf; + +const + BIZ_SERVER_PRESUPUESTOS_CLIENTE = 'Server.PresupuestosCliente'; + +type + TBizPresupuestosClienteServer = class(TPresupuestosClienteBusinessProcessorRules) + private + FReferenciaAutomatica : Boolean; + function DarReferencia : String; + function IncrementarReferencia : Boolean; + protected + procedure BeforeProcessDelta(Sender: TDABusinessProcessor; + const aDelta: IDADelta); override; + procedure AfterProcessChange(Sender: TDABusinessProcessor; + aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); override; + end; + +implementation + +uses + Variants, uDAClasses, uReferenciasUtils, uBusinessUtils, uROClasses, uDataModuleServer, + schPresupuestosClienteClient_Intf, FactuGES_Intf, uROServer, SysUtils; + +const + REF_PRESUPUESTOS_CLIENTE = 'REF_PRESUPUESTOS_CLIENTE'; + +{ TBizPresupuestosClienteServer } + +procedure TBizPresupuestosClienteServer.AfterProcessChange( + Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); +begin + inherited; + { Por defecto, mantenemos los deltas por si alguna tabla hija los necesita } + CanRemoveFromDelta := False; + + case aChange.ChangeType of + ctInsert, ctUpdate: begin + if FReferenciaAutomatica then + begin + IncrementarReferencia; + FReferenciaAutomatica := False; + end; + end; + end; +end; + +procedure TBizPresupuestosClienteServer.BeforeProcessDelta( + Sender: TDABusinessProcessor; const aDelta: IDADelta); +begin + inherited; + + FReferenciaAutomatica := False; + + case Sender.CurrentChange.ChangeType of + ctInsert, ctUpdate: begin + //Si la referencia no ha sido asignada le asignamos una nosotros + if REFERENCIAIsNull or (Length(REFERENCIA) = 0) then + begin + FReferenciaAutomatica := True; + REFERENCIA := DarReferencia; + end; + end; + end; +end; + +function TBizPresupuestosClienteServer.DarReferencia: String; +var + AReferenciasService : IsrvReferencias; + Intf : IInterface; + AClientID : TGUID; +begin + CreateGUID(AClientID); + + GetClassFactory('srvReferencias').CreateInstance(AClientID, Intf); + AReferenciasService := Intf as IsrvReferencias; + Result := AReferenciasService.DarNuevaReferencia(REF_PRESUPUESTOS_CLIENTE, ID_EMPRESA) +end; + +function TBizPresupuestosClienteServer.IncrementarReferencia: Boolean; +var + AReferenciasService : IsrvReferencias; + Intf : IInterface; + AClientID : TGUID; +begin + CreateGUID(AClientID); + + GetClassFactory('srvReferencias').CreateInstance(AClientID, Intf); + AReferenciasService := Intf as IsrvReferencias; + Result := AReferenciasService.IncrementarValorReferencia(REF_PRESUPUESTOS_CLIENTE, Self.REFERENCIA, ID_EMPRESA) +end; + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_PRESUPUESTOS_CLIENTE, TBizPresupuestosClienteServer); + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Plugin/PresupuestosCliente_plugin.dcu b/Source/Modulos/Presupuestos de cliente/Plugin/PresupuestosCliente_plugin.dcu new file mode 100644 index 0000000..0846808 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Plugin/PresupuestosCliente_plugin.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Plugin/PresupuestosCliente_plugin.dpk b/Source/Modulos/Presupuestos de cliente/Plugin/PresupuestosCliente_plugin.dpk new file mode 100644 index 0000000..f345a96 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Plugin/PresupuestosCliente_plugin.dpk differ diff --git a/Source/Modulos/Presupuestos de cliente/Plugin/PresupuestosCliente_plugin.dproj b/Source/Modulos/Presupuestos de cliente/Plugin/PresupuestosCliente_plugin.dproj new file mode 100644 index 0000000..4599e91 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Plugin/PresupuestosCliente_plugin.dproj @@ -0,0 +1,548 @@ + + + {e7d762a1-3a15-46b2-bd5b-3821d13b8347} + PresupuestosCliente_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\PresupuestosCliente_plugin.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 + Microsoft Office 2000 Sample Automation Server Wrapper Components + Microsoft Office XP Sample Automation Server Wrapper Components + PresupuestosCliente_plugin.dpk + + + + + MainSource + + + + + + + + + +
PluginPresupuestosCliente
+
+
+
+ diff --git a/Source/Modulos/Presupuestos de cliente/Plugin/PresupuestosCliente_plugin.drc b/Source/Modulos/Presupuestos de cliente/Plugin/PresupuestosCliente_plugin.drc new file mode 100644 index 0000000..700126f --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Plugin/PresupuestosCliente_plugin.drc @@ -0,0 +1,17 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Presupuestos de cliente\Plugin\uPluginPresupuestosCliente.dfm */ +/* C:\Codigo\Source\Modulos\Presupuestos de cliente\Plugin\PresupuestosCliente_plugin.res */ +/* c:\temp\dtf1F3.tmp */ diff --git a/Source/Modulos/Presupuestos de cliente/Plugin/PresupuestosCliente_plugin.rc b/Source/Modulos/Presupuestos de cliente/Plugin/PresupuestosCliente_plugin.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Plugin/PresupuestosCliente_plugin.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Presupuestos de cliente/Plugin/PresupuestosCliente_plugin.res b/Source/Modulos/Presupuestos de cliente/Plugin/PresupuestosCliente_plugin.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Plugin/PresupuestosCliente_plugin.res differ diff --git a/Source/Modulos/Presupuestos de cliente/Plugin/uPluginPresupuestosCliente.dcu b/Source/Modulos/Presupuestos de cliente/Plugin/uPluginPresupuestosCliente.dcu new file mode 100644 index 0000000..6185bd9 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Plugin/uPluginPresupuestosCliente.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Plugin/uPluginPresupuestosCliente.dfm b/Source/Modulos/Presupuestos de cliente/Plugin/uPluginPresupuestosCliente.dfm new file mode 100644 index 0000000..93ccdab --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Plugin/uPluginPresupuestosCliente.dfm @@ -0,0 +1,392 @@ +object PluginPresupuestosCliente: TPluginPresupuestosCliente + OldCreateOrder = True + DefaultAction = actPresupuestosCliente + Description = 'Ventas' + ModuleMenu = MainMenu + ModuleName = 'Presupuestos de cliente' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software' + Version = '1.0.0' + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F330000026B4944415478DA63FCFFFF3F032D + 0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80F83F980601EBC0 + 7C86733BA6E1B6C073BF2D8A01DB1D0FE3341C59ED2AB33D0C0BD7ED6798B774 + 137E0B4871B9CF217B0659251686D93B0E30BC8FFCC6B064E341C21660F301BA + 18086CB43EC0E07FD48161C7AD2360FE9BB02F0CCBB71CA6CC07FFFF01C31A88 + FF005D0F62FFF9F70F1A07FFC0ECD5DB8E92EE036200C8178F03DE336CD87582 + 380B60DE26053CF07DCBB079EF29E22CC09772B001909E692A1B18B61E384DBC + 05B8820A66394C1EA676B2D27A861D87CE50EE8389058E0C5FD9CF3108BFFA84 + D7574FBE3A91E60398A56DE5FC0C117EBF1824187F30FCFAC900C13F18187EC2 + 68203E7982080BB08199898C0CB1A910363EC3F9251818AEDEC5624184A72938 + 7762F341C0A2230C2C82F823FBCF7B84E158E320D4CD049C3BB1F900D9F520F0 + E93DC4C5300CF2C1993390A0B133DCC770E83C161F04391B31049D70C2690148 + 332100321C04B05AE0E768C01076CA05AB46501021FB0004FEFE0506CB6F0686 + DFBF80BEF8CEC070E306420EAB05DE767AF0720556C680CA1E10BDA75E14C502 + 90A1BF8186FFF90561AF59C3C1A0A6F183818D058F051ED63A580D075528FB9B + C430E2006430C80720BC651B0783943CC402365606861397B158E062A985D570 + 107DA85502C582B72F1186832CDAB9878341441A62C1953B4E0CCDABF6326258 + 606FAA0E36ECDF5F44B10CB3F078A734DC029081EF5E210C0705D5BE831C0C7C + E23F181E3C81188E3599DA18A9824B446C80759F27D88299533970A6A077BFAD + 18B67E52C75D16F54E598853B33DEF3E061E4669BC4914643808C02C00000530 + 36AC648583960000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + object actPresupuestosCliente: TAction + Category = 'Ventas' + Caption = 'Presupuestos de cliente' + ImageIndex = 0 + OnExecute = actPresupuestosClienteExecute + end + object actInfPresupuestos: TAction + Category = 'Informes' + Caption = 'Informe presupuestos' + OnExecute = actPresupuestosClienteExecute + end + end + object MainMenu: TMainMenu + Images = SmallImages + Left = 40 + Top = 16 + object Ventas1: TMenuItem + Caption = 'Ventas' + object PresupuestosdeCliente1: TMenuItem + Tag = 201 + Action = actPresupuestosCliente + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000001764944415478DA63FCFFFF3FC394 + C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F19ACFDF319CEED + 98866A80CB7E5B14C57B1C0F836964F1CD56FB18E6AEDACB306FE9264C03F081 + 5FBFFF826D06E1251B0E623700DD05D8C07283ED0C2BB71CC16D00CCD920F00F + 28F7E7CF3FB8CD2167DC1816EB6C6558BBE3187E03602ED9667380C1EB8803DC + E6C80B9E0CF33436316CDA7312BF01309B3FDF3ECCF072712C3E1FB96018B0CB + E11083DB013BB0ECA45D0F18941B6A18D8D9D33174FEFC3993615E620B038601 + 2067C3FCFCAC4D8D41ABFD3158311CFCF801C4DF1966EF326060DE9E8A302023 + CA8DC1E3903D8A2D2017A01800D2FCE11DC480534EA806248739836D85857AF4 + 252F5403609AC106FC64987D2B08D580B8200794284BB8E68B30E0E34484E60F + 1F202E7895826A40949F1D5C33DCA0194610031ED62334C3BCF0AB0CD580502F + 6B86D5DB8EA28481D3B554702CCC5E258F350E510C00250C74A0CDFB86C18AF5 + 38CE44602FCFE00200175B62A961F8A2FD0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F330000032C4944415478DABDD6DB4FD35018 + 00F06FE3E21213F54103E203181435CA1D1E24721B6C5C34A213048C3E68A2AF + 26FE03266AE21F603081446E8E8830C606386EBBC0C66038702A608891C40762 + 3451891A2330D6634FBB8D6DED693B49FCB693B6A73DFDF5FB4EBB4E861082FF + 19B2507060E21DB381FB022D6C9BFE305FFF3AB39FF9228891C7F0027515D932 + 2268B42DA19AD293FF7CF5147D2E8A42E0F351E0A328286CBC01F3FD5A3268B0 + 2EA20BCA53506E2BE49CCC5CEA204291C70F9CB6406BAF15DAF45A6960B481C1 + E23435AC6C59A163C4093FAFFE820EBD4D1CECB72CA08B65E9C40CF9FAC74AEC + A09E2802CBFBD960DFDA951FA0354C8A837AF35BA429CF909C199E279F0F31CB + D0B9C37DDD430E71B0CFFC065D2ACFE4CD446AE04C3FD77E835E935302384E83 + 2A160C2D51B4F149F315FA46A6C541DDD86B54ABCE6240A1BB5228F0D8F61383 + 6018778983BDA31E443FA83B069F1C33C2A0E5A538D833FA0A5DAEC809824273 + 19B8A0D06302635A8E1AC064738B83CF47E6517D65EE8E337C7C580F638E7909 + E0300D56ED1C7C94AC038BD3230E760FCFA186AA3CC192865E48F375194413AB + BF95E1E033931B3556E70B6688E8075B269733D8B59BDCFD9B1BFEB60EB01158 + D26DD6C507BE70A3FAEA3CE6A74AA8A49DB713E148EA17C8CA938EED4D04585A + 8900BB8666E939CC874A7B31B1A4759D53208BA5E7221E40BE4BBC8C5B6BDB18 + 670E3158ABCE85B3CE526286A452E24C36FEF897FE86339C9B634B59946D05BB + 272243EDA00B695439707EA64C10C4278826308683033E1D984135CA6CD0B855 + C4C1B8A47C1906C2E7A3CBE805F06EB2192F2F6FEFE305CF9564F2BF7228F6EF + 83E5EE012288112F8D6D6DB2EB3A9D02D28EAF437C2C01EC344EA3EAA24C2286 + B727EE25F0829118CED26054404A2A0DC6018372C00E83135516661031BCED78 + 709003F261B80D99149094CC668851D74204D8DE3F852ACE6410315CEAE98749 + 612009C3EBA36605EC3FC4828B1F9470BFC7220B03DBF40EA42A4867DE65A488 + B3560541210CF75B2715B027611D3EAEB2181E1306B6F6D95193B645F016BFB5 + AF8B019B9B14121E0880EFDE8220C601A5C49D8654B49B4A917C7C2886E32FA1 + 48B9B918B6DCA70000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 80 + Bitmap = {} + end +end diff --git a/Source/Modulos/Presupuestos de cliente/Plugin/uPluginPresupuestosCliente.pas b/Source/Modulos/Presupuestos de cliente/Plugin/uPluginPresupuestosCliente.pas new file mode 100644 index 0000000..186a2e2 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Plugin/uPluginPresupuestosCliente.pas @@ -0,0 +1,98 @@ +unit uPluginPresupuestosCliente; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList, uPlugins_Intf; + +type + TPluginPresupuestosCliente = class(TModuleController, IMCPresupuestosCliente) + actPresupuestosCliente: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + Ventas1: TMenuItem; + PresupuestosdeCliente1: TMenuItem; + actInfPresupuestos: TAction; + procedure actPresupuestosClienteExecute(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + + procedure VerPresupuestos(const ID_Cliente: Integer; + const ANombreCliente : String = ''); + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, cxControls, + uPresupuestosClienteController, uBizPresupuestosCliente, uPresupuestosClienteViewRegister; + +function GetModule : TModuleController; +begin + Result := TPluginPresupuestosCliente.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +procedure TPluginPresupuestosCliente.actPresupuestosClienteExecute(Sender: TObject); +var + APresupuestosClienteController : IPresupuestosClienteController; + APresupuestosCliente : IBizPresupuestoCliente; + +begin + APresupuestosClienteController := TPresupuestosClienteController.Create; + APresupuestosCliente := APresupuestosClienteController.BuscarTodos; + APresupuestosClienteController.VerTodos(APresupuestosCliente); +end; + +constructor TPluginPresupuestosCliente.Create(AOwner: TComponent); +begin + inherited; + ModuleName := MODULENAME_PRESUPUESTOS_CLIENTE; + uPresupuestosClienteViewRegister.RegisterViews; +end; + +destructor TPluginPresupuestosCliente.Destroy; +begin + uPresupuestosClienteViewRegister.UnregisterViews; + inherited; +end; + +procedure TPluginPresupuestosCliente.VerPresupuestos(const ID_Cliente: Integer; + const ANombreCliente : String = ''); +var + APresupuestosClienteController : IPresupuestosClienteController; + APresupuestosCliente : IBizPresupuestoCliente; + AText : String; +begin + AText := Format('Lista de presupuestos del cliente %s', [ANombreCliente]); + APresupuestosClienteController := TPresupuestosClienteController.Create; + try + ShowHourglassCursor; + try + APresupuestosCliente := APresupuestosClienteController.BuscarTodos(ID_Cliente); + finally + HideHourglassCursor; + end; + APresupuestosClienteController.VerTodos(APresupuestosCliente, True, AText); + finally + APresupuestosCliente := NIL; + APresupuestosClienteController := NIL; + end; +end; + +initialization + RegisterModuleClass(TPluginPresupuestosCliente); + +finalization + UnRegisterModuleClass(TPluginPresupuestosCliente); + +end. diff --git a/Source/Modulos/Presupuestos de cliente/PresupuestosCliente_Group.groupproj b/Source/Modulos/Presupuestos de cliente/PresupuestosCliente_Group.groupproj new file mode 100644 index 0000000..0d5b72d --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/PresupuestosCliente_Group.groupproj @@ -0,0 +1,274 @@ + + + {4fc2fdb5-faa5-4b92-afc6-33a803d10c02} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.dcu b/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.dcu new file mode 100644 index 0000000..4d30460 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.dfm b/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.dfm new file mode 100644 index 0000000..98dd4c3 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.dfm @@ -0,0 +1,1840 @@ +object RptPresupuestosCliente: TRptPresupuestosCliente + OldCreateOrder = True + OnCreate = DataModuleCreate + OnDestroy = DataModuleDestroy + Height = 556 + Width = 858 + object DADSCabecera: TDADataSource + DataSet = tbl_Cabecera.Dataset + DataTable = tbl_Cabecera + Left = 264 + Top = 72 + end + object DADSDetalles: TDADataSource + DataSet = tbl_Detalles.Dataset + DataTable = tbl_Detalles + Left = 440 + Top = 72 + end + object frxBarCodeObject1: TfrxBarCodeObject + Left = 528 + Top = 488 + end + object frxOLEObject1: TfrxOLEObject + Left = 400 + Top = 488 + end + object frxCrossObject1: TfrxCrossObject + Left = 400 + Top = 440 + end + object frxCheckBoxObject1: TfrxCheckBoxObject + Left = 464 + Top = 488 + end + object frxGradientObject1: TfrxGradientObject + Left = 464 + Top = 440 + end + object schReport: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'V_PRESUPUESTOS_CLIENTE' + Name = 'IBX' + SQL = + 'select ID_EMPRESA,'#10'extract (year from fecha_presupuesto) as ANO,' + + #10'extract (month from fecha_presupuesto) as MES,'#10'case'#10'when extrac' + + 't (month from fecha_presupuesto) = 1 then '#39'ENERO - '#39' || extract ' + + '(year from fecha_presupuesto)'#10'when extract (month from fecha_pre' + + 'supuesto) = 2 then '#39'FEBRERO - '#39' || extract (year from fecha_pres' + + 'upuesto)'#10'when extract (month from fecha_presupuesto) = 3 then '#39'M' + + 'ARZO - '#39' || extract (year from fecha_presupuesto)'#10'when extract (' + + 'month from fecha_presupuesto) = 4 then '#39'ABRIL - '#39' || extract (ye' + + 'ar from fecha_presupuesto)'#10'when extract (month from fecha_presup' + + 'uesto) = 5 then '#39'MAYO - '#39' || extract (year from fecha_presupuest' + + 'o)'#10'when extract (month from fecha_presupuesto) = 6 then '#39'JUNIO -' + + ' '#39' || extract (year from fecha_presupuesto)'#10'when extract (month ' + + 'from fecha_presupuesto) = 7 then '#39'JULIO - '#39' || extract (year fro' + + 'm fecha_presupuesto)'#10'when extract (month from fecha_presupuesto)' + + ' = 8 then '#39'AGOSTO - '#39' || extract (year from fecha_presupuesto)'#10'w' + + 'hen extract (month from fecha_presupuesto) = 9 then '#39'SEPTIEMBRE ' + + '- '#39' || extract (year from fecha_presupuesto)'#10'when extract (month' + + ' from fecha_presupuesto) = 10 then '#39'OCTUBRE - '#39' || extract (year' + + ' from fecha_presupuesto)'#10'when extract (month from fecha_presupue' + + 'sto) = 11 then '#39'NOVIEMBRE - '#39' || extract (year from fecha_presup' + + 'uesto)'#10'when extract (month from fecha_presupuesto) = 12 then '#39'DI' + + 'CIEMBRE - '#39' || extract (year from fecha_presupuesto)'#10'end as TITU' + + 'LO,'#10'REFERENCIA, ID_CLIENTE, NOMBRE, SITUACION, NIF_CIF, FECHA_P' + + 'RESUPUESTO, FECHA_DECISION, FACTURA, IMPORTE_TOTAL'#10#10'from V_presu' + + 'puestos_cliente'#10'where {where}'#10'order by ANO, MES, NOMBRE'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'MES' + TableField = '' + SQLOrigin = 'MES' + end + item + DatasetField = 'TITULO' + TableField = '' + SQLOrigin = 'TITULO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end + item + DatasetField = 'FECHA_PRESUPUESTO' + TableField = 'FECHA_PRESUPUESTO' + end + item + DatasetField = 'FECHA_DECISION' + TableField = 'FECHA_DECISION' + end + item + DatasetField = 'FACTURA' + TableField = 'FACTURA' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'ANO' + TableField = '' + SQLOrigin = 'ANO' + end> + end> + Name = 'InformeListadoPresupuestos' + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'FECHA_PRESUPUESTO' + DataType = datDateTime + end + item + Name = 'FECHA_DECISION' + DataType = datDateTime + end + item + Name = 'FACTURA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + end + item + Params = < + item + Name = 'ID' + Value = '31' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'SELECT'#10' V_PRESUPUESTOS_CLIENTE.ID, V_PRESUPUESTOS_CLIENTE.ID_' + + 'EMPRESA,'#10' V_PRESUPUESTOS_CLIENTE.FECHA_PRESUPUESTO,'#10' V_PRE' + + 'SUPUESTOS_CLIENTE.REFERENCIA || '#39' '#39' || COALESCE(V_PRESUPUESTOS_C' + + 'LIENTE.REFERENCIA_AUX, '#39#39') AS REFERENCIA,'#10' V_PRESUPUESTOS_CLI' + + 'ENTE.PORTADA,'#10' V_PRESUPUESTOS_CLIENTE.MEMORIA, V_PRESUPUESTOS' + + '_CLIENTE.OBSERVACIONES,'#10' V_PRESUPUESTOS_CLIENTE.IMPORTE_NETO,' + + ' V_PRESUPUESTOS_CLIENTE.IMPORTE_PORTE,'#10' V_PRESUPUESTOS_CLIENT' + + 'E.DESCUENTO, V_PRESUPUESTOS_CLIENTE.IMPORTE_DESCUENTO,'#10' V_PRE' + + 'SUPUESTOS_CLIENTE.BASE_IMPONIBLE, V_PRESUPUESTOS_CLIENTE.IVA,'#10' ' + + ' V_PRESUPUESTOS_CLIENTE.ID_CLIENTE,'#10' V_PRESUPUESTOS_CLIENTE.' + + 'REFERENCIA_CLIENTE,'#10' V_PRESUPUESTOS_CLIENTE.CLIENTE_FINAL,'#10' ' + + ' CONTACTOS.NIF_CIF, CONTACTOS.NOMBRE,'#10' V_PRESUPUESTOS_CLIENT' + + 'E.IMPORTE_IVA, V_PRESUPUESTOS_CLIENTE.IMPORTE_TOTAL,'#10' COALESC' + + 'E(CONTACTOS_DIRECCIONES.CALLE, CONTACTOS.CALLE) AS CALLE,'#10' CO' + + 'ALESCE(CONTACTOS_DIRECCIONES.POBLACION, CONTACTOS.POBLACION) AS ' + + 'POBLACION,'#10' COALESCE(CONTACTOS_DIRECCIONES.PROVINCIA, CONTACT' + + 'OS.PROVINCIA) AS PROVINCIA,'#10' COALESCE(CONTACTOS_DIRECCIONES.C' + + 'ODIGO_POSTAL, CONTACTOS.CODIGO_POSTAL) AS CODIGO_POSTAL,'#10' V_P' + + 'RESUPUESTOS_CLIENTE.PERSONA_CONTACTO,'#10' V_PRESUPUESTOS_CLIENTE' + + '.DESCRIPCION_BONIFICACION,'#10' V_PRESUPUESTOS_CLIENTE.IMPORTE_BO' + + 'NIFICACION'#10'FROM'#10' V_PRESUPUESTOS_CLIENTE'#10' INNER JOIN CONTAC' + + 'TOS ON (CONTACTOS.ID = V_PRESUPUESTOS_CLIENTE.ID_CLIENTE)'#10' LE' + + 'FT OUTER JOIN CONTACTOS_DIRECCIONES ON (CONTACTOS_DIRECCIONES.ID' + + ' = V_PRESUPUESTOS_CLIENTE.ID_DIRECCION)'#10'WHERE'#10' V_PRESUPUESTOS' + + '_CLIENTE.ID = :ID'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'FECHA_PRESUPUESTO' + TableField = 'FECHA_PRESUPUESTO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'PORTADA' + TableField = 'PORTADA' + end + item + DatasetField = 'MEMORIA' + TableField = 'MEMORIA' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'IMPORTE_NETO' + TableField = 'IMPORTE_NETO' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IMPORTE_DESCUENTO' + TableField = 'IMPORTE_DESCUENTO' + end + item + DatasetField = 'BASE_IMPONIBLE' + TableField = 'BASE_IMPONIBLE' + end + item + DatasetField = 'IVA' + TableField = 'IVA' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'REFERENCIA_CLIENTE' + TableField = 'REFERENCIA_CLIENTE' + end + item + DatasetField = 'CLIENTE_FINAL' + TableField = 'CLIENTE_FINAL' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'IMPORTE_IVA' + TableField = 'IMPORTE_IVA' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end + item + DatasetField = 'DESCRIPCION_BONIFICACION' + TableField = 'DESCRIPCION_BONIFICACION' + end + item + DatasetField = 'IMPORTE_BONIFICACION' + TableField = 'IMPORTE_BONIFICACION' + end> + end> + Name = 'Informe_Cabecera' + Fields = < + item + Name = 'ID' + DataType = datInteger + Required = True + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'FECHA_PRESUPUESTO' + DataType = datDateTime + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'PORTADA' + DataType = datMemo + end + item + Name = 'MEMORIA' + DataType = datMemo + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + end + item + Name = 'DESCUENTO' + DataType = datFloat + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + end + item + Name = 'IVA' + DataType = datFloat + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'CLIENTE_FINAL' + DataType = datString + Size = 255 + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + end + item + Name = 'DESCRIPCION_BONIFICACION' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_BONIFICACION' + DataType = datCurrency + end> + ReadOnly = True + end + item + Params = < + item + Name = 'ID_PRESUPUESTO' + Value = '32' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + SQL = + 'SELECT * FROM PRO_PRES_CAPITULOS_CONCEPTOS(:ID_PRESUPUESTO)'#10'WHER' + + 'E (VISIBLE <> 0) AND {where}'#10'ORDER BY ID_PRESUPUESTO, POSICION'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_PRESUPUESTO' + TableField = 'ID_PRESUPUESTO' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'ID_CAPITULO' + TableField = 'ID_CAPITULO' + end + item + DatasetField = 'ID_ARTICULO' + TableField = 'ID_ARTICULO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + end + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'IMPORTE_UNIDAD' + TableField = 'IMPORTE_UNIDAD' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'VISIBLE' + TableField = 'VISIBLE' + end + item + DatasetField = 'UNIDAD_MEDIDA' + TableField = 'UNIDAD_MEDIDA' + end> + end> + Name = 'Informe_Capitulos_Detalles' + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_PRESUPUESTO' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'ID_CAPITULO' + DataType = datInteger + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + end + item + Name = 'CANTIDAD' + DataType = datFloat + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + end + item + Name = 'DESCUENTO' + DataType = datFloat + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'VISIBLE' + DataType = datSmallInt + end> + ReadOnly = True + end + item + Params = < + item + Name = 'ID_PRESUPUESTO' + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + SQL = + 'SELECT * FROM PRO_PRES_CAPITULOS(:ID_PRESUPUESTO)'#10'WHERE (VISIBLE' + + ' <> 0) AND {where}'#10'ORDER BY ID_PRESUPUESTO, POSICION'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_PRESUPUESTO' + TableField = 'ID_PRESUPUESTO' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'VISIBLE' + TableField = 'VISIBLE' + end> + end> + Name = 'Informe_Capitulos' + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_PRESUPUESTO' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'VISIBLE' + DataType = datSmallInt + end> + ReadOnly = True + end + item + Params = < + item + Name = 'ID_PRESUPUESTO' + Value = '2' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + SQL = + 'SELECT * FROM PRO_PRES_RESUMEN(:ID_PRESUPUESTO)'#10'WHERE (VISIBLE <' + + '> 0) AND (TIPO_DETALLE = '#39'Titulo'#39')'#10'AND {where}'#10'ORDER BY ID_PRESU' + + 'PUESTO, POSICION'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_PRESUPUESTO' + TableField = 'ID_PRESUPUESTO' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'VISIBLE' + TableField = 'VISIBLE' + end> + end> + Name = 'Informe_Resumen' + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_PRESUPUESTO' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'VISIBLE' + DataType = datSmallInt + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_PRESUPUESTOS_CLIENTE' + SQL = + 'select ID_EMPRESA,'#10'extract (year from fecha_presupuesto) as ANO,' + + #10'extract (month from fecha_presupuesto) as MES,'#10'case'#10'when extrac' + + 't (month from fecha_presupuesto) = 1 then '#39'ENERO - '#39' || extract ' + + '(year from fecha_presupuesto)'#10'when extract (month from fecha_pre' + + 'supuesto) = 2 then '#39'FEBRERO - '#39' || extract (year from fecha_pres' + + 'upuesto)'#10'when extract (month from fecha_presupuesto) = 3 then '#39'M' + + 'ARZO - '#39' || extract (year from fecha_presupuesto)'#10'when extract (' + + 'month from fecha_presupuesto) = 4 then '#39'ABRIL - '#39' || extract (ye' + + 'ar from fecha_presupuesto)'#10'when extract (month from fecha_presup' + + 'uesto) = 5 then '#39'MAYO - '#39' || extract (year from fecha_presupuest' + + 'o)'#10'when extract (month from fecha_presupuesto) = 6 then '#39'JUNIO -' + + ' '#39' || extract (year from fecha_presupuesto)'#10'when extract (month ' + + 'from fecha_presupuesto) = 7 then '#39'JULIO - '#39' || extract (year fro' + + 'm fecha_presupuesto)'#10'when extract (month from fecha_presupuesto)' + + ' = 8 then '#39'AGOSTO - '#39' || extract (year from fecha_presupuesto)'#10'w' + + 'hen extract (month from fecha_presupuesto) = 9 then '#39'SEPTIEMBRE ' + + '- '#39' || extract (year from fecha_presupuesto)'#10'when extract (month' + + ' from fecha_presupuesto) = 10 then '#39'OCTUBRE - '#39' || extract (year' + + ' from fecha_presupuesto)'#10'when extract (month from fecha_presupue' + + 'sto) = 11 then '#39'NOVIEMBRE - '#39' || extract (year from fecha_presup' + + 'uesto)'#10'when extract (month from fecha_presupuesto) = 12 then '#39'DI' + + 'CIEMBRE - '#39' || extract (year from fecha_presupuesto)'#10'end as TITU' + + 'LO,'#10'sum(IMPORTE_TOTAL) as IMPORTE_TOTAL'#10#10'from V_presupuestos_cli' + + 'ente'#10'group by 1,2,3,4'#10'order by ANO, MES'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'ANO' + TableField = '' + SQLOrigin = 'ANO' + end + item + DatasetField = 'MES' + TableField = '' + SQLOrigin = 'MES' + end + item + DatasetField = 'TITULO' + TableField = '' + SQLOrigin = 'TITULO' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end> + end> + Name = 'InformeListadoPresupuestosResumen' + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 16 + end + object DataDictionary: TDADataDictionary + Fields = <> + Left = 46 + Top = 142 + end + object frxReport: TfrxReport + Version = '4.7.71' + DotMatrixReport = False + EngineOptions.DoublePass = True + IniFile = '\Software\Fast Reports' + PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator, pbExportQuick] + PreviewOptions.Zoom = 1.000000000000000000 + PrintOptions.Printer = 'Por defecto' + PrintOptions.PrintOnSheet = 0 + ReportOptions.CreateDate = 39065.872423495400000000 + ReportOptions.LastChange = 39878.788205462970000000 + ScriptLanguage = 'PascalScript' + ScriptText.Strings = ( + '' + 'procedure DatosEmpresaOnBeforePrint(Sender: TfrxComponent);' + 'var' + ' Cadena: String;' + 'begin' + '{ DatosEmpresa.Lines.Clear;' + ' if ( <> '#39#39') then' + ' Cadena := '#39'TLF: '#39' + ;' + ' if ( <> '#39#39') then' + + ' Cadena := Cadena + '#39' FAX: '#39' + ;' + ' DatosEmpresa.Lines.Add(Cadena);' + '}' + 'end;' + '' + 'procedure NombreEmpresaOnBeforePrint(Sender: TfrxComponent);' + 'begin' + '{ NombreEmpresa.Lines.Clear;' + ' NombreEmpresa.Lines.Add();' + '}' + 'end;' + '' + 'procedure DireccionEnvioOnBeforePrint(Sender: TfrxComponent);' + 'var' + ' ACadena : String;' + 'begin' + '{ ACadena := '#39#39';' + ' DireccionEnvio.Lines.Clear;' + ' if ( <> '#39#39') then' + ' ACadena := ;' + '' + ' if ( <> '#39#39') then' + + ' ACadena := ACadena + '#39' '#39' + ;' + '' + ' DireccionEnvio.Lines.Add(ACadena);' + ' ACadena := '#39#39';' + ' DireccionEnvio.Lines.Add();' + ' if ( <> '#39#39') then' + ' ACadena := + '#39' '#39';' + ' if ( <> '#39#39') then' + ' ACadena := ACadena + ;' + '' + ' if (ACadena <> '#39#39') then' + ' DireccionEnvio.Lines.Add(ACadena);' + '' + ' if ( <> '#39#39') then' + ' DireccionEnvio.Lines.Add();' + '' + ' if ( <> '#39#39') then' + ' DireccionEnvio.Lines.Add();' + '}' + 'end;' + '' + 'procedure PageHeader1OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if not Engine.FinalPass then' + ' Set('#39'TotalPaginas'#39', ( + 1));' + '' + ' if Engine.FinalPass then' + ' Set('#39'Pagina'#39', ( + 1)); ' + 'end;' + '' + 'procedure frxReportOnStartReport(Sender: TfrxComponent);' + 'begin' + ' Set('#39'Pagina'#39', 0);' + ' Set('#39'TotalPaginas'#39', 0);' + ' Set('#39'Capitulo'#39', '#39'0'#39');' + ' Set('#39'NumCapitulos'#39', 0);' + ' Set('#39'TextoNumCapitulo'#39', '#39#39#39' '#39#39#39'); ' + 'end;' + '' + 'procedure Rich3OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if Engine.FinalPass then' + ' begin ' + ' Set('#39'Capitulo'#39', ( + 1));' + ' if ( = 1) then' + + ' MasterData1.Visible := False; ' + + ' ' + ' end' + ' else' + ' Set('#39'NumCapitulos'#39', ( + 1)); ' + 'end;' + '' + 'procedure Page2OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if (Length() = 0) then' + + ' Page2.Visible := False; ' + + ' ' + 'end;' + '' + 'procedure Memo45OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if Engine.FinalPass then' + ' begin' + + ' Set('#39'Capitulo'#39', ( + 1)); ' + + ' ' + ' Set('#39'TextoNumCapitulo'#39', );' + '' + + ' if (( = 1) and ( =' + + ' '#39'General'#39')) then' + ' MasterData1.Visible := False' + ' else begin ' + + ' if ( = '#39'Titulo opcional'#39') ' + + 'then' + ' begin' + ' Set('#39'TextoNumCapitulo'#39', '#39#39#39'OPCIONAL'#39#39#39');' + ' end' + ' end ' + ' end' + ' else ' + ' Set('#39'NumCapitulos'#39', ( + 1));' + 'end;' + '' + 'procedure Memo47OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if (Length() = 0) then' + ' begin' + + ' Rich8.Visible := False; ' + + ' ' + ' Memo47.Visible := False;' + ' end ' + 'end;' + '' + 'procedure Footer2OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if not (() > 0) then' + ' begin' + ' mBonificacion.Visible := False;' + + ' mImporteFinal.Visible := False; ' + + ' ' + ' end; ' + 'end;' + '' + '' + 'procedure Rich2OnAfterData(Sender: TfrxComponent);' + 'begin' + '' + 'end;' + '' + 'procedure Rich2OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' ' + 'end;' + '' + 'begin' + '' + 'end.') + ShowProgress = False + StoreInDFM = False + OnStartReport = 'frxReportOnStartReport' + OnUserFunction = frxReportUserFunction + Left = 169 + Top = 16 + end + object frxDBCabecera: TfrxDBDataset + UserName = 'frxDBCabecera' + CloseDataSource = False + DataSource = DADSCabecera + BCDToCurrency = False + Left = 264 + Top = 16 + end + object frxDBDetalles: TfrxDBDataset + UserName = 'frxDBDetalles' + CloseDataSource = False + DataSource = DADSDetalles + BCDToCurrency = False + Left = 440 + Top = 16 + end + object tbl_Cabecera: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + Required = True + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'FECHA_PRESUPUESTO' + DataType = datDateTime + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'PORTADA' + DataType = datMemo + end + item + Name = 'MEMORIA' + DataType = datMemo + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + end + item + Name = 'DESCUENTO' + DataType = datFloat + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + end + item + Name = 'IVA' + DataType = datFloat + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'CLIENTE_FINAL' + DataType = datString + Size = 255 + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + end + item + Name = 'DESCRIPCION_BONIFICACION' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_BONIFICACION' + DataType = datCurrency + end> + Params = < + item + Name = 'ID' + Value = '31' + ParamType = daptInput + end> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer1 + LogicalName = 'Informe_Cabecera' + IndexDefs = <> + Left = 264 + Top = 128 + end + object IBDatabase1: TIBDatabase + DatabaseName = 'C:\Codigo\Output\Debug\Database\FACTUGES_PRODUCCION.FDB' + Params.Strings = ( + 'user_name=sysdba' + 'password=masterkey' + 'lc_ctype=ISO8859_1') + LoginPrompt = False + DefaultTransaction = IBTransaction1 + Left = 48 + Top = 296 + end + object IBTransaction1: TIBTransaction + Left = 48 + Top = 352 + end + object DataSource1: TDataSource + DataSet = cabecera + Left = 216 + Top = 296 + end + object DataSource2: TDataSource + DataSet = capitulos + Left = 216 + Top = 352 + end + object capitulos: TIBQuery + Database = IBDatabase1 + Transaction = IBTransaction1 + SQL.Strings = ( + 'SELECT * FROM PRO_PRES_CAPITULOS(18)') + Left = 136 + Top = 352 + end + object DataSource3: TDataSource + DataSet = detalles + Left = 216 + Top = 416 + end + object detalles: TIBQuery + Database = IBDatabase1 + Transaction = IBTransaction1 + SQL.Strings = ( + 'SELECT * FROM PRO_PRES_CAPITULOS_CONCEPTOS(18)') + Left = 136 + Top = 416 + end + object DataSource4: TDataSource + DataSet = resumen + Left = 216 + Top = 488 + end + object resumen: TIBQuery + Database = IBDatabase1 + Transaction = IBTransaction1 + SQL.Strings = ( + 'select id, id_presupuesto, posicion, tipo_detalle, concepto,' + ' importe_total, visible' + 'from presupuestos_cliente_detalles' + 'where tipo_detalle = '#39'Titulo'#39' and id_presupuesto = 18' + 'order by posicion' + '') + Left = 136 + Top = 488 + object resumenID: TIntegerField + FieldName = 'ID' + Origin = '"PRESUPUESTOS_CLIENTE_DETALLES"."ID"' + ProviderFlags = [pfInUpdate, pfInWhere, pfInKey] + Required = True + end + object resumenID_PRESUPUESTO: TIntegerField + FieldName = 'ID_PRESUPUESTO' + Origin = '"PRESUPUESTOS_CLIENTE_DETALLES"."ID_PRESUPUESTO"' + Required = True + end + object resumenPOSICION: TIntegerField + FieldName = 'POSICION' + Origin = '"PRESUPUESTOS_CLIENTE_DETALLES"."POSICION"' + end + object resumenTIPO_DETALLE: TIBStringField + FieldName = 'TIPO_DETALLE' + Origin = '"PRESUPUESTOS_CLIENTE_DETALLES"."TIPO_DETALLE"' + Size = 10 + end + object resumenCONCEPTO: TIBStringField + FieldName = 'CONCEPTO' + Origin = '"PRESUPUESTOS_CLIENTE_DETALLES"."CONCEPTO"' + Size = 2000 + end + object resumenIMPORTE_TOTAL: TIBBCDField + FieldName = 'IMPORTE_TOTAL' + Origin = '"PRESUPUESTOS_CLIENTE_DETALLES"."IMPORTE_TOTAL"' + Precision = 18 + Size = 2 + end + object resumenVISIBLE: TSmallintField + FieldName = 'VISIBLE' + Origin = '"PRESUPUESTOS_CLIENTE_DETALLES"."VISIBLE"' + end + end + object frxDBCapitulos: TfrxDBDataset + UserName = 'frxDBCapitulos' + CloseDataSource = False + DataSource = DADSCapitulos + BCDToCurrency = False + Left = 352 + Top = 16 + end + object frxDBResumen: TfrxDBDataset + UserName = 'frxDBResumen' + CloseDataSource = False + DataSource = DADSResumen + BCDToCurrency = False + Left = 520 + Top = 16 + end + object DABin2DataStreamer1: TDABin2DataStreamer + Left = 48 + Top = 80 + end + object cabecera: TIBQuery + Database = IBDatabase1 + Transaction = IBTransaction1 + SQL.Strings = ( + 'SELECT' + + ' V_PRESUPUESTOS_CLIENTE.ID, V_PRESUPUESTOS_CLIENTE.ID_EMPRESA' + + ',' + ' V_PRESUPUESTOS_CLIENTE.FECHA_PRESUPUESTO,' + ' V_PRESUPUESTOS_CLIENTE.REFERENCIA,' + ' V_PRESUPUESTOS_CLIENTE.PORTADA,' + + ' V_PRESUPUESTOS_CLIENTE.MEMORIA, V_PRESUPUESTOS_CLIENTE.OBSER' + + 'VACIONES,' + + ' V_PRESUPUESTOS_CLIENTE.IMPORTE_NETO, V_PRESUPUESTOS_CLIENTE.' + + 'IMPORTE_PORTE,' + + ' V_PRESUPUESTOS_CLIENTE.DESCUENTO, V_PRESUPUESTOS_CLIENTE.IMP' + + 'ORTE_DESCUENTO,' + + ' V_PRESUPUESTOS_CLIENTE.BASE_IMPONIBLE, V_PRESUPUESTOS_CLIENT' + + 'E.IVA,' + ' V_PRESUPUESTOS_CLIENTE.ID_CLIENTE,' + ' V_PRESUPUESTOS_CLIENTE.REFERENCIA_CLIENTE,' + ' V_PRESUPUESTOS_CLIENTE.CLIENTE_FINAL,' + ' V_CLIENTES.NIF_CIF, V_CLIENTES.NOMBRE,' + + ' V_PRESUPUESTOS_CLIENTE.IMPORTE_IVA, V_PRESUPUESTOS_CLIENTE.I' + + 'MPORTE_TOTAL,' + + ' V_CLIENTES.PERSONA_CONTACTO, V_CLIENTES.CALLE, V_CLIENTES.PO' + + 'BLACION,' + ' V_CLIENTES.PROVINCIA, V_CLIENTES.CODIGO_POSTAL' + 'FROM' + ' V_PRESUPUESTOS_CLIENTE INNER JOIN V_CLIENTES ON' + ' (V_PRESUPUESTOS_CLIENTE.ID_CLIENTE = V_CLIENTES.ID)' + ' WHERE V_PRESUPUESTOS_CLIENTE.ID = 18') + Left = 136 + Top = 296 + object cabeceraID: TIntegerField + FieldName = 'ID' + Origin = '"V_PRESUPUESTOS_CLIENTE"."ID"' + end + object cabeceraID_EMPRESA: TIntegerField + FieldName = 'ID_EMPRESA' + Origin = '"V_PRESUPUESTOS_CLIENTE"."ID_EMPRESA"' + end + object cabeceraFECHA_PRESUPUESTO: TDateField + FieldName = 'FECHA_PRESUPUESTO' + Origin = '"V_PRESUPUESTOS_CLIENTE"."FECHA_PRESUPUESTO"' + end + object cabeceraREFERENCIA: TIBStringField + FieldName = 'REFERENCIA' + Origin = '"V_PRESUPUESTOS_CLIENTE"."REFERENCIA"' + Size = 255 + end + object cabeceraPORTADA: TMemoField + FieldName = 'PORTADA' + Origin = '"V_PRESUPUESTOS_CLIENTE"."PORTADA"' + ProviderFlags = [pfInUpdate] + BlobType = ftMemo + Size = 8 + end + object cabeceraMEMORIA: TMemoField + FieldName = 'MEMORIA' + Origin = '"V_PRESUPUESTOS_CLIENTE"."MEMORIA"' + ProviderFlags = [pfInUpdate] + BlobType = ftMemo + Size = 8 + end + object cabeceraOBSERVACIONES: TMemoField + FieldName = 'OBSERVACIONES' + Origin = '"V_PRESUPUESTOS_CLIENTE"."OBSERVACIONES"' + ProviderFlags = [pfInUpdate] + BlobType = ftMemo + Size = 8 + end + object cabeceraIMPORTE_NETO: TIBBCDField + FieldName = 'IMPORTE_NETO' + Origin = '"V_PRESUPUESTOS_CLIENTE"."IMPORTE_NETO"' + Precision = 18 + Size = 2 + end + object cabeceraIMPORTE_PORTE: TIBBCDField + FieldName = 'IMPORTE_PORTE' + Origin = '"V_PRESUPUESTOS_CLIENTE"."IMPORTE_PORTE"' + Precision = 18 + Size = 2 + end + object cabeceraDESCUENTO: TFloatField + FieldName = 'DESCUENTO' + Origin = '"V_PRESUPUESTOS_CLIENTE"."DESCUENTO"' + end + object cabeceraIMPORTE_DESCUENTO: TIBBCDField + FieldName = 'IMPORTE_DESCUENTO' + Origin = '"V_PRESUPUESTOS_CLIENTE"."IMPORTE_DESCUENTO"' + Precision = 18 + Size = 2 + end + object cabeceraBASE_IMPONIBLE: TIBBCDField + FieldName = 'BASE_IMPONIBLE' + Origin = '"V_PRESUPUESTOS_CLIENTE"."BASE_IMPONIBLE"' + Precision = 18 + Size = 2 + end + object cabeceraIVA: TFloatField + FieldName = 'IVA' + Origin = '"V_PRESUPUESTOS_CLIENTE"."IVA"' + end + object cabeceraID_CLIENTE: TIntegerField + FieldName = 'ID_CLIENTE' + Origin = '"V_PRESUPUESTOS_CLIENTE"."ID_CLIENTE"' + end + object cabeceraREFERENCIA_CLIENTE: TIBStringField + FieldName = 'REFERENCIA_CLIENTE' + Origin = '"V_PRESUPUESTOS_CLIENTE"."REFERENCIA_CLIENTE"' + Size = 255 + end + object cabeceraCLIENTE_FINAL: TIBStringField + FieldName = 'CLIENTE_FINAL' + Origin = '"V_PRESUPUESTOS_CLIENTE"."CLIENTE_FINAL"' + Size = 255 + end + object cabeceraNIF_CIF: TIBStringField + FieldName = 'NIF_CIF' + Origin = '"V_CLIENTES"."NIF_CIF"' + Size = 15 + end + object cabeceraNOMBRE: TIBStringField + FieldName = 'NOMBRE' + Origin = '"V_CLIENTES"."NOMBRE"' + Size = 255 + end + object cabeceraIMPORTE_IVA: TIBBCDField + FieldName = 'IMPORTE_IVA' + Origin = '"V_PRESUPUESTOS_CLIENTE"."IMPORTE_IVA"' + Precision = 18 + Size = 2 + end + object cabeceraIMPORTE_TOTAL: TIBBCDField + FieldName = 'IMPORTE_TOTAL' + Origin = '"V_PRESUPUESTOS_CLIENTE"."IMPORTE_TOTAL"' + Precision = 18 + Size = 2 + end + object cabeceraPERSONA_CONTACTO: TIBStringField + FieldName = 'PERSONA_CONTACTO' + Origin = '"V_CLIENTES"."PERSONA_CONTACTO"' + Size = 255 + end + object cabeceraCALLE: TIBStringField + FieldName = 'CALLE' + Origin = '"V_CLIENTES"."CALLE"' + Size = 255 + end + object cabeceraPOBLACION: TIBStringField + FieldName = 'POBLACION' + Origin = '"V_CLIENTES"."POBLACION"' + Size = 255 + end + object cabeceraPROVINCIA: TIBStringField + FieldName = 'PROVINCIA' + Origin = '"V_CLIENTES"."PROVINCIA"' + Size = 255 + end + object cabeceraCODIGO_POSTAL: TIBStringField + FieldName = 'CODIGO_POSTAL' + Origin = '"V_CLIENTES"."CODIGO_POSTAL"' + Size = 10 + end + end + object DADSCapitulos: TDADataSource + DataSet = tbl_Capitulos.Dataset + DataTable = tbl_Capitulos + Left = 352 + Top = 72 + end + object tbl_Capitulos: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_PRESUPUESTO' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'VISIBLE' + DataType = datSmallInt + end> + Params = < + item + Name = 'ID_PRESUPUESTO' + Value = '' + ParamType = daptInput + end> + MasterParamsMappings.Strings = ( + 'ID_PRESUPUESTO=ID') + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer1 + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moAllInOneFetch] + LogicalName = 'Informe_Capitulos' + IndexDefs = <> + Left = 352 + Top = 128 + end + object DADSResumen: TDADataSource + DataSet = tbl_Resumen.Dataset + DataTable = tbl_Resumen + Left = 520 + Top = 72 + end + object tbl_Resumen: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_PRESUPUESTO' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'VISIBLE' + DataType = datSmallInt + end> + Params = < + item + Name = 'ID_PRESUPUESTO' + Value = '2' + ParamType = daptInput + end> + MasterParamsMappings.Strings = ( + 'ID_PRESUPUESTO=ID') + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer1 + LogicalName = 'Informe_Resumen' + IndexDefs = <> + Left = 520 + Top = 128 + end + object frxPDFExport1: TfrxPDFExport + ShowDialog = False + UseFileCache = True + ShowProgress = False + OverwritePrompt = False + PrintOptimized = True + Outline = False + Background = False + HTMLTags = True + Author = 'FactuGES' + Subject = 'FactuGES' + Creator = 'FactuGES' + ProtectionFlags = [ePrint, eModify, eCopy, eAnnot] + HideToolbar = False + HideMenubar = False + HideWindowUI = False + FitWindow = False + CenterWindow = False + PrintScaling = False + Left = 528 + Top = 440 + end + object DADSInformeListadoPresupuestos: TDADataSource + DataSet = tbl_InformeListadoPresupuestos.Dataset + DataTable = tbl_InformeListadoPresupuestos + Left = 680 + Top = 72 + end + object tbl_InformeListadoPresupuestos: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'FECHA_PRESUPUESTO' + DataType = datDateTime + end + item + Name = 'FECHA_DECISION' + DataType = datDateTime + end + item + Name = 'FACTURA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + Params = <> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer1 + LogicalName = 'InformeListadoPresupuestos' + IndexDefs = <> + Left = 680 + Top = 128 + end + object frxDBInformeListadoPresupuestos: TfrxDBDataset + UserName = 'frxDBInformeListadoPresupuestos' + CloseDataSource = True + DataSource = DADSInformeListadoPresupuestos + BCDToCurrency = False + Left = 680 + Top = 16 + end + object frxDBInformeListadoPresupuestosResumen: TfrxDBDataset + UserName = 'frxDBInformeListadoPresupuestosResumen' + CloseDataSource = True + DataSource = DADSInformeListadoPresupuestosResumen + BCDToCurrency = False + Left = 680 + Top = 192 + end + object DADSInformeListadoPresupuestosResumen: TDADataSource + DataSet = tbl_InformeListadoPresupuestosResumen.Dataset + DataTable = tbl_InformeListadoPresupuestosResumen + Left = 680 + Top = 248 + end + object tbl_InformeListadoPresupuestosResumen: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + MasterMappingMode = mmDataRequest + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + IndexDefs = <> + Left = 680 + Top = 304 + end + object tbl_Detalles: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_PRESUPUESTO' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'ID_CAPITULO' + DataType = datInteger + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + end + item + Name = 'CANTIDAD' + DataType = datFloat + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + end + item + Name = 'DESCUENTO' + DataType = datFloat + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'VISIBLE' + DataType = datSmallInt + end> + Params = < + item + Name = 'ID_PRESUPUESTO' + Value = '32' + ParamType = daptInput + end> + MasterMappingMode = mmWhere + MasterParamsMappings.Strings = ( + 'ID_PRESUPUESTO=ID') + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer1 + MasterSource = DADSCapitulos + MasterFields = 'ID' + DetailFields = 'ID_CAPITULO' + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moAllInOneFetch] + LogicalName = 'Informe_Capitulos_Detalles' + IndexDefs = <> + Left = 440 + Top = 128 + end +end diff --git a/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.dfm.bak b/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.dfm.bak new file mode 100644 index 0000000..33e02bc --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.dfm.bak @@ -0,0 +1,1840 @@ +object RptPresupuestosCliente: TRptPresupuestosCliente + OldCreateOrder = True + OnCreate = DataModuleCreate + OnDestroy = DataModuleDestroy + Height = 556 + Width = 858 + object DADSCabecera: TDADataSource + DataSet = tbl_Cabecera.Dataset + DataTable = tbl_Cabecera + Left = 264 + Top = 72 + end + object DADSDetalles: TDADataSource + DataSet = tbl_Detalles.Dataset + DataTable = tbl_Detalles + Left = 440 + Top = 72 + end + object frxBarCodeObject1: TfrxBarCodeObject + Left = 528 + Top = 488 + end + object frxOLEObject1: TfrxOLEObject + Left = 400 + Top = 488 + end + object frxCrossObject1: TfrxCrossObject + Left = 400 + Top = 440 + end + object frxCheckBoxObject1: TfrxCheckBoxObject + Left = 464 + Top = 488 + end + object frxGradientObject1: TfrxGradientObject + Left = 464 + Top = 440 + end + object schReport: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'V_PRESUPUESTOS_CLIENTE' + Name = 'IBX' + SQL = + 'select ID_EMPRESA,'#10'extract (year from fecha_presupuesto) as ANO,' + + #10'extract (month from fecha_presupuesto) as MES,'#10'case'#10'when extrac' + + 't (month from fecha_presupuesto) = 1 then '#39'ENERO - '#39' || extract ' + + '(year from fecha_presupuesto)'#10'when extract (month from fecha_pre' + + 'supuesto) = 2 then '#39'FEBRERO - '#39' || extract (year from fecha_pres' + + 'upuesto)'#10'when extract (month from fecha_presupuesto) = 3 then '#39'M' + + 'ARZO - '#39' || extract (year from fecha_presupuesto)'#10'when extract (' + + 'month from fecha_presupuesto) = 4 then '#39'ABRIL - '#39' || extract (ye' + + 'ar from fecha_presupuesto)'#10'when extract (month from fecha_presup' + + 'uesto) = 5 then '#39'MAYO - '#39' || extract (year from fecha_presupuest' + + 'o)'#10'when extract (month from fecha_presupuesto) = 6 then '#39'JUNIO -' + + ' '#39' || extract (year from fecha_presupuesto)'#10'when extract (month ' + + 'from fecha_presupuesto) = 7 then '#39'JULIO - '#39' || extract (year fro' + + 'm fecha_presupuesto)'#10'when extract (month from fecha_presupuesto)' + + ' = 8 then '#39'AGOSTO - '#39' || extract (year from fecha_presupuesto)'#10'w' + + 'hen extract (month from fecha_presupuesto) = 9 then '#39'SEPTIEMBRE ' + + '- '#39' || extract (year from fecha_presupuesto)'#10'when extract (month' + + ' from fecha_presupuesto) = 10 then '#39'OCTUBRE - '#39' || extract (year' + + ' from fecha_presupuesto)'#10'when extract (month from fecha_presupue' + + 'sto) = 11 then '#39'NOVIEMBRE - '#39' || extract (year from fecha_presup' + + 'uesto)'#10'when extract (month from fecha_presupuesto) = 12 then '#39'DI' + + 'CIEMBRE - '#39' || extract (year from fecha_presupuesto)'#10'end as TITU' + + 'LO,'#10'REFERENCIA, ID_CLIENTE, NOMBRE, SITUACION, NIF_CIF, FECHA_P' + + 'RESUPUESTO, FECHA_DECISION, FACTURA, IMPORTE_TOTAL'#10#10'from V_presu' + + 'puestos_cliente'#10'where {where}'#10'order by ANO, MES, NOMBRE'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'MES' + TableField = '' + SQLOrigin = 'MES' + end + item + DatasetField = 'TITULO' + TableField = '' + SQLOrigin = 'TITULO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end + item + DatasetField = 'FECHA_PRESUPUESTO' + TableField = 'FECHA_PRESUPUESTO' + end + item + DatasetField = 'FECHA_DECISION' + TableField = 'FECHA_DECISION' + end + item + DatasetField = 'FACTURA' + TableField = 'FACTURA' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'ANO' + TableField = '' + SQLOrigin = 'ANO' + end> + end> + Name = 'InformeListadoPresupuestos' + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'FECHA_PRESUPUESTO' + DataType = datDateTime + end + item + Name = 'FECHA_DECISION' + DataType = datDateTime + end + item + Name = 'FACTURA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + end + item + Params = < + item + Name = 'ID' + Value = '31' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'SELECT'#10' V_PRESUPUESTOS_CLIENTE.ID, V_PRESUPUESTOS_CLIENTE.ID_' + + 'EMPRESA,'#10' V_PRESUPUESTOS_CLIENTE.FECHA_PRESUPUESTO,'#10' V_PRE' + + 'SUPUESTOS_CLIENTE.REFERENCIA || '#39' '#39' || COALESCE(V_PRESUPUESTOS_C' + + 'LIENTE.REFERENCIA_AUX, '#39#39') AS REFERENCIA,'#10' V_PRESUPUESTOS_CLI' + + 'ENTE.PORTADA,'#10' V_PRESUPUESTOS_CLIENTE.MEMORIA, V_PRESUPUESTOS' + + '_CLIENTE.OBSERVACIONES,'#10' V_PRESUPUESTOS_CLIENTE.IMPORTE_NETO,' + + ' V_PRESUPUESTOS_CLIENTE.IMPORTE_PORTE,'#10' V_PRESUPUESTOS_CLIENT' + + 'E.DESCUENTO, V_PRESUPUESTOS_CLIENTE.IMPORTE_DESCUENTO,'#10' V_PRE' + + 'SUPUESTOS_CLIENTE.BASE_IMPONIBLE, V_PRESUPUESTOS_CLIENTE.IVA,'#10' ' + + ' V_PRESUPUESTOS_CLIENTE.ID_CLIENTE,'#10' V_PRESUPUESTOS_CLIENTE.' + + 'REFERENCIA_CLIENTE,'#10' V_PRESUPUESTOS_CLIENTE.CLIENTE_FINAL,'#10' ' + + ' CONTACTOS.NIF_CIF, CONTACTOS.NOMBRE,'#10' V_PRESUPUESTOS_CLIENT' + + 'E.IMPORTE_IVA, V_PRESUPUESTOS_CLIENTE.IMPORTE_TOTAL,'#10' COALESC' + + 'E(CONTACTOS_DIRECCIONES.CALLE, CONTACTOS.CALLE) AS CALLE,'#10' CO' + + 'ALESCE(CONTACTOS_DIRECCIONES.POBLACION, CONTACTOS.POBLACION) AS ' + + 'POBLACION,'#10' COALESCE(CONTACTOS_DIRECCIONES.PROVINCIA, CONTACT' + + 'OS.PROVINCIA) AS PROVINCIA,'#10' COALESCE(CONTACTOS_DIRECCIONES.C' + + 'ODIGO_POSTAL, CONTACTOS.CODIGO_POSTAL) AS CODIGO_POSTAL,'#10' V_P' + + 'RESUPUESTOS_CLIENTE.PERSONA_CONTACTO,'#10' V_PRESUPUESTOS_CLIENTE' + + '.DESCRIPCION_BONIFICACION,'#10' V_PRESUPUESTOS_CLIENTE.IMPORTE_BO' + + 'NIFICACION'#10'FROM'#10' V_PRESUPUESTOS_CLIENTE'#10' INNER JOIN CONTAC' + + 'TOS ON (CONTACTOS.ID = V_PRESUPUESTOS_CLIENTE.ID_CLIENTE)'#10' LE' + + 'FT OUTER JOIN CONTACTOS_DIRECCIONES ON (CONTACTOS_DIRECCIONES.ID' + + ' = V_PRESUPUESTOS_CLIENTE.ID_DIRECCION)'#10'WHERE'#10' V_PRESUPUESTOS' + + '_CLIENTE.ID = :ID'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'FECHA_PRESUPUESTO' + TableField = 'FECHA_PRESUPUESTO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'PORTADA' + TableField = 'PORTADA' + end + item + DatasetField = 'MEMORIA' + TableField = 'MEMORIA' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'IMPORTE_NETO' + TableField = 'IMPORTE_NETO' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IMPORTE_DESCUENTO' + TableField = 'IMPORTE_DESCUENTO' + end + item + DatasetField = 'BASE_IMPONIBLE' + TableField = 'BASE_IMPONIBLE' + end + item + DatasetField = 'IVA' + TableField = 'IVA' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'REFERENCIA_CLIENTE' + TableField = 'REFERENCIA_CLIENTE' + end + item + DatasetField = 'CLIENTE_FINAL' + TableField = 'CLIENTE_FINAL' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'IMPORTE_IVA' + TableField = 'IMPORTE_IVA' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end + item + DatasetField = 'DESCRIPCION_BONIFICACION' + TableField = 'DESCRIPCION_BONIFICACION' + end + item + DatasetField = 'IMPORTE_BONIFICACION' + TableField = 'IMPORTE_BONIFICACION' + end> + end> + Name = 'Informe_Cabecera' + Fields = < + item + Name = 'ID' + DataType = datInteger + Required = True + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'FECHA_PRESUPUESTO' + DataType = datDateTime + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'PORTADA' + DataType = datMemo + end + item + Name = 'MEMORIA' + DataType = datMemo + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + end + item + Name = 'DESCUENTO' + DataType = datFloat + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + end + item + Name = 'IVA' + DataType = datFloat + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'CLIENTE_FINAL' + DataType = datString + Size = 255 + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + end + item + Name = 'DESCRIPCION_BONIFICACION' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_BONIFICACION' + DataType = datCurrency + end> + ReadOnly = True + end + item + Params = < + item + Name = 'ID_PRESUPUESTO' + Value = '32' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + SQL = + 'SELECT * FROM PRO_PRES_CAPITULOS_CONCEPTOS(:ID_PRESUPUESTO)'#10'WHER' + + 'E (VISIBLE <> 0) AND {where}'#10'ORDER BY ID_PRESUPUESTO, POSICION'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_PRESUPUESTO' + TableField = 'ID_PRESUPUESTO' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'ID_CAPITULO' + TableField = 'ID_CAPITULO' + end + item + DatasetField = 'ID_ARTICULO' + TableField = 'ID_ARTICULO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + end + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'IMPORTE_UNIDAD' + TableField = 'IMPORTE_UNIDAD' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'VISIBLE' + TableField = 'VISIBLE' + end + item + DatasetField = 'UNIDAD_MEDIDA' + TableField = 'UNIDAD_MEDIDA' + end> + end> + Name = 'Informe_Capitulos_Detalles' + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_PRESUPUESTO' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'ID_CAPITULO' + DataType = datInteger + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + end + item + Name = 'CANTIDAD' + DataType = datFloat + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + end + item + Name = 'DESCUENTO' + DataType = datFloat + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'VISIBLE' + DataType = datSmallInt + end> + ReadOnly = True + end + item + Params = < + item + Name = 'ID_PRESUPUESTO' + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + SQL = + 'SELECT * FROM PRO_PRES_CAPITULOS(:ID_PRESUPUESTO)'#10'WHERE (VISIBLE' + + ' <> 0) AND {where}'#10'ORDER BY ID_PRESUPUESTO, POSICION'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_PRESUPUESTO' + TableField = 'ID_PRESUPUESTO' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'VISIBLE' + TableField = 'VISIBLE' + end> + end> + Name = 'Informe_Capitulos' + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_PRESUPUESTO' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'VISIBLE' + DataType = datSmallInt + end> + ReadOnly = True + end + item + Params = < + item + Name = 'ID_PRESUPUESTO' + Value = '2' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + SQL = + 'SELECT * FROM PRO_PRES_RESUMEN(:ID_PRESUPUESTO)'#10'WHERE (VISIBLE <' + + '> 0) AND (TIPO_DETALLE = '#39'Titulo'#39')'#10'AND {where}'#10'ORDER BY ID_PRESU' + + 'PUESTO, POSICION'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_PRESUPUESTO' + TableField = 'ID_PRESUPUESTO' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'VISIBLE' + TableField = 'VISIBLE' + end> + end> + Name = 'Informe_Resumen' + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_PRESUPUESTO' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'VISIBLE' + DataType = datSmallInt + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_PRESUPUESTOS_CLIENTE' + SQL = + 'select ID_EMPRESA,'#10'extract (year from fecha_presupuesto) as ANO,' + + #10'extract (month from fecha_presupuesto) as MES,'#10'case'#10'when extrac' + + 't (month from fecha_presupuesto) = 1 then '#39'ENERO - '#39' || extract ' + + '(year from fecha_presupuesto)'#10'when extract (month from fecha_pre' + + 'supuesto) = 2 then '#39'FEBRERO - '#39' || extract (year from fecha_pres' + + 'upuesto)'#10'when extract (month from fecha_presupuesto) = 3 then '#39'M' + + 'ARZO - '#39' || extract (year from fecha_presupuesto)'#10'when extract (' + + 'month from fecha_presupuesto) = 4 then '#39'ABRIL - '#39' || extract (ye' + + 'ar from fecha_presupuesto)'#10'when extract (month from fecha_presup' + + 'uesto) = 5 then '#39'MAYO - '#39' || extract (year from fecha_presupuest' + + 'o)'#10'when extract (month from fecha_presupuesto) = 6 then '#39'JUNIO -' + + ' '#39' || extract (year from fecha_presupuesto)'#10'when extract (month ' + + 'from fecha_presupuesto) = 7 then '#39'JULIO - '#39' || extract (year fro' + + 'm fecha_presupuesto)'#10'when extract (month from fecha_presupuesto)' + + ' = 8 then '#39'AGOSTO - '#39' || extract (year from fecha_presupuesto)'#10'w' + + 'hen extract (month from fecha_presupuesto) = 9 then '#39'SEPTIEMBRE ' + + '- '#39' || extract (year from fecha_presupuesto)'#10'when extract (month' + + ' from fecha_presupuesto) = 10 then '#39'OCTUBRE - '#39' || extract (year' + + ' from fecha_presupuesto)'#10'when extract (month from fecha_presupue' + + 'sto) = 11 then '#39'NOVIEMBRE - '#39' || extract (year from fecha_presup' + + 'uesto)'#10'when extract (month from fecha_presupuesto) = 12 then '#39'DI' + + 'CIEMBRE - '#39' || extract (year from fecha_presupuesto)'#10'end as TITU' + + 'LO,'#10'sum(IMPORTE_TOTAL) as IMPORTE_TOTAL'#10#10'from V_presupuestos_cli' + + 'ente'#10'group by 1,2,3,4'#10'order by ANO, MES'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'ANO' + TableField = '' + SQLOrigin = 'ANO' + end + item + DatasetField = 'MES' + TableField = '' + SQLOrigin = 'MES' + end + item + DatasetField = 'TITULO' + TableField = '' + SQLOrigin = 'TITULO' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end> + end> + Name = 'InformeListadoPresupuestosResumen' + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 16 + end + object DataDictionary: TDADataDictionary + Fields = <> + Left = 46 + Top = 142 + end + object frxReport: TfrxReport + Version = '4.7.71' + DotMatrixReport = False + EngineOptions.DoublePass = True + IniFile = '\Software\Fast Reports' + PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator, pbExportQuick] + PreviewOptions.Zoom = 1.000000000000000000 + PrintOptions.Printer = 'Por defecto' + PrintOptions.PrintOnSheet = 0 + ReportOptions.CreateDate = 39065.872423495400000000 + ReportOptions.LastChange = 39878.788205462970000000 + ScriptLanguage = 'PascalScript' + ScriptText.Strings = ( + '' + 'procedure DatosEmpresaOnBeforePrint(Sender: TfrxComponent);' + 'var' + ' Cadena: String;' + 'begin' + '{ DatosEmpresa.Lines.Clear;' + ' if ( <> '#39#39') then' + ' Cadena := '#39'TLF: '#39' + ;' + ' if ( <> '#39#39') then' + + ' Cadena := Cadena + '#39' FAX: '#39' + ;' + ' DatosEmpresa.Lines.Add(Cadena);' + '}' + 'end;' + '' + 'procedure NombreEmpresaOnBeforePrint(Sender: TfrxComponent);' + 'begin' + '{ NombreEmpresa.Lines.Clear;' + ' NombreEmpresa.Lines.Add();' + '}' + 'end;' + '' + 'procedure DireccionEnvioOnBeforePrint(Sender: TfrxComponent);' + 'var' + ' ACadena : String;' + 'begin' + '{ ACadena := '#39#39';' + ' DireccionEnvio.Lines.Clear;' + ' if ( <> '#39#39') then' + ' ACadena := ;' + '' + ' if ( <> '#39#39') then' + + ' ACadena := ACadena + '#39' '#39' + ;' + '' + ' DireccionEnvio.Lines.Add(ACadena);' + ' ACadena := '#39#39';' + ' DireccionEnvio.Lines.Add();' + ' if ( <> '#39#39') then' + ' ACadena := + '#39' '#39';' + ' if ( <> '#39#39') then' + ' ACadena := ACadena + ;' + '' + ' if (ACadena <> '#39#39') then' + ' DireccionEnvio.Lines.Add(ACadena);' + '' + ' if ( <> '#39#39') then' + ' DireccionEnvio.Lines.Add();' + '' + ' if ( <> '#39#39') then' + ' DireccionEnvio.Lines.Add();' + '}' + 'end;' + '' + 'procedure PageHeader1OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if not Engine.FinalPass then' + ' Set('#39'TotalPaginas'#39', ( + 1));' + '' + ' if Engine.FinalPass then' + ' Set('#39'Pagina'#39', ( + 1)); ' + 'end;' + '' + 'procedure frxReportOnStartReport(Sender: TfrxComponent);' + 'begin' + ' Set('#39'Pagina'#39', 0);' + ' Set('#39'TotalPaginas'#39', 0);' + ' Set('#39'Capitulo'#39', '#39'0'#39');' + ' Set('#39'NumCapitulos'#39', 0);' + ' Set('#39'TextoNumCapitulo'#39', '#39#39#39' '#39#39#39'); ' + 'end;' + '' + 'procedure Rich3OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if Engine.FinalPass then' + ' begin ' + ' Set('#39'Capitulo'#39', ( + 1));' + ' if ( = 1) then' + + ' MasterData1.Visible := False; ' + + ' ' + ' end' + ' else' + ' Set('#39'NumCapitulos'#39', ( + 1)); ' + 'end;' + '' + 'procedure Page2OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if (Length() = 0) then' + + ' Page2.Visible := False; ' + + ' ' + 'end;' + '' + 'procedure Memo45OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if Engine.FinalPass then' + ' begin' + + ' Set('#39'Capitulo'#39', ( + 1)); ' + + ' ' + ' Set('#39'TextoNumCapitulo'#39', );' + '' + + ' if (( = 1) and ( =' + + ' '#39'General'#39')) then' + ' MasterData1.Visible := False' + ' else begin ' + + ' if ( = '#39'Titulo opcional'#39') ' + + 'then' + ' begin' + ' Set('#39'TextoNumCapitulo'#39', '#39#39#39'OPCIONAL'#39#39#39');' + ' end' + ' end ' + ' end' + ' else ' + ' Set('#39'NumCapitulos'#39', ( + 1));' + 'end;' + '' + 'procedure Memo47OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if (Length() = 0) then' + ' begin' + + ' Rich8.Visible := False; ' + + ' ' + ' Memo47.Visible := False;' + ' end ' + 'end;' + '' + 'procedure Footer2OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if not (() > 0) then' + ' begin' + ' mBonificacion.Visible := False;' + + ' mImporteFinal.Visible := False; ' + + ' ' + ' end; ' + 'end;' + '' + '' + 'procedure Rich2OnAfterData(Sender: TfrxComponent);' + 'begin' + '' + 'end;' + '' + 'procedure Rich2OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' ' + 'end;' + '' + 'begin' + '' + 'end.') + ShowProgress = False + StoreInDFM = False + OnStartReport = 'frxReportOnStartReport' + OnUserFunction = frxReportUserFunction + Left = 169 + Top = 16 + end + object frxDBCabecera: TfrxDBDataset + UserName = 'frxDBCabecera' + CloseDataSource = False + DataSource = DADSCabecera + BCDToCurrency = False + Left = 264 + Top = 16 + end + object frxDBDetalles: TfrxDBDataset + UserName = 'frxDBDetalles' + CloseDataSource = False + DataSource = DADSDetalles + BCDToCurrency = False + Left = 440 + Top = 16 + end + object tbl_Cabecera: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + Required = True + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'FECHA_PRESUPUESTO' + DataType = datDateTime + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'PORTADA' + DataType = datMemo + end + item + Name = 'MEMORIA' + DataType = datMemo + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + end + item + Name = 'DESCUENTO' + DataType = datFloat + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + end + item + Name = 'IVA' + DataType = datFloat + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'CLIENTE_FINAL' + DataType = datString + Size = 255 + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + end + item + Name = 'DESCRIPCION_BONIFICACION' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_BONIFICACION' + DataType = datCurrency + end> + Params = < + item + Name = 'ID' + Value = '31' + ParamType = daptInput + end> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer1 + LogicalName = 'Informe_Cabecera' + IndexDefs = <> + Left = 264 + Top = 128 + end + object IBDatabase1: TIBDatabase + DatabaseName = 'C:\Codigo Tecsitel\Output\Debug\Database\FACTUGES_PRODUCCION.FDB' + Params.Strings = ( + 'user_name=sysdba' + 'password=masterkey' + 'lc_ctype=ISO8859_1') + LoginPrompt = False + DefaultTransaction = IBTransaction1 + Left = 48 + Top = 296 + end + object IBTransaction1: TIBTransaction + Left = 48 + Top = 352 + end + object DataSource1: TDataSource + DataSet = cabecera + Left = 216 + Top = 296 + end + object DataSource2: TDataSource + DataSet = capitulos + Left = 216 + Top = 352 + end + object capitulos: TIBQuery + Database = IBDatabase1 + Transaction = IBTransaction1 + SQL.Strings = ( + 'SELECT * FROM PRO_PRES_CAPITULOS(18)') + Left = 136 + Top = 352 + end + object DataSource3: TDataSource + DataSet = detalles + Left = 216 + Top = 416 + end + object detalles: TIBQuery + Database = IBDatabase1 + Transaction = IBTransaction1 + SQL.Strings = ( + 'SELECT * FROM PRO_PRES_CAPITULOS_CONCEPTOS(18)') + Left = 136 + Top = 416 + end + object DataSource4: TDataSource + DataSet = resumen + Left = 216 + Top = 488 + end + object resumen: TIBQuery + Database = IBDatabase1 + Transaction = IBTransaction1 + SQL.Strings = ( + 'select id, id_presupuesto, posicion, tipo_detalle, concepto,' + ' importe_total, visible' + 'from presupuestos_cliente_detalles' + 'where tipo_detalle = '#39'Titulo'#39' and id_presupuesto = 18' + 'order by posicion' + '') + Left = 136 + Top = 488 + object resumenID: TIntegerField + FieldName = 'ID' + Origin = '"PRESUPUESTOS_CLIENTE_DETALLES"."ID"' + ProviderFlags = [pfInUpdate, pfInWhere, pfInKey] + Required = True + end + object resumenID_PRESUPUESTO: TIntegerField + FieldName = 'ID_PRESUPUESTO' + Origin = '"PRESUPUESTOS_CLIENTE_DETALLES"."ID_PRESUPUESTO"' + Required = True + end + object resumenPOSICION: TIntegerField + FieldName = 'POSICION' + Origin = '"PRESUPUESTOS_CLIENTE_DETALLES"."POSICION"' + end + object resumenTIPO_DETALLE: TIBStringField + FieldName = 'TIPO_DETALLE' + Origin = '"PRESUPUESTOS_CLIENTE_DETALLES"."TIPO_DETALLE"' + Size = 10 + end + object resumenCONCEPTO: TIBStringField + FieldName = 'CONCEPTO' + Origin = '"PRESUPUESTOS_CLIENTE_DETALLES"."CONCEPTO"' + Size = 2000 + end + object resumenIMPORTE_TOTAL: TIBBCDField + FieldName = 'IMPORTE_TOTAL' + Origin = '"PRESUPUESTOS_CLIENTE_DETALLES"."IMPORTE_TOTAL"' + Precision = 18 + Size = 2 + end + object resumenVISIBLE: TSmallintField + FieldName = 'VISIBLE' + Origin = '"PRESUPUESTOS_CLIENTE_DETALLES"."VISIBLE"' + end + end + object frxDBCapitulos: TfrxDBDataset + UserName = 'frxDBCapitulos' + CloseDataSource = False + DataSource = DADSCapitulos + BCDToCurrency = False + Left = 352 + Top = 16 + end + object frxDBResumen: TfrxDBDataset + UserName = 'frxDBResumen' + CloseDataSource = False + DataSource = DADSResumen + BCDToCurrency = False + Left = 520 + Top = 16 + end + object DABin2DataStreamer1: TDABin2DataStreamer + Left = 48 + Top = 80 + end + object cabecera: TIBQuery + Database = IBDatabase1 + Transaction = IBTransaction1 + SQL.Strings = ( + 'SELECT' + + ' V_PRESUPUESTOS_CLIENTE.ID, V_PRESUPUESTOS_CLIENTE.ID_EMPRESA' + + ',' + ' V_PRESUPUESTOS_CLIENTE.FECHA_PRESUPUESTO,' + ' V_PRESUPUESTOS_CLIENTE.REFERENCIA,' + ' V_PRESUPUESTOS_CLIENTE.PORTADA,' + + ' V_PRESUPUESTOS_CLIENTE.MEMORIA, V_PRESUPUESTOS_CLIENTE.OBSER' + + 'VACIONES,' + + ' V_PRESUPUESTOS_CLIENTE.IMPORTE_NETO, V_PRESUPUESTOS_CLIENTE.' + + 'IMPORTE_PORTE,' + + ' V_PRESUPUESTOS_CLIENTE.DESCUENTO, V_PRESUPUESTOS_CLIENTE.IMP' + + 'ORTE_DESCUENTO,' + + ' V_PRESUPUESTOS_CLIENTE.BASE_IMPONIBLE, V_PRESUPUESTOS_CLIENT' + + 'E.IVA,' + ' V_PRESUPUESTOS_CLIENTE.ID_CLIENTE,' + ' V_PRESUPUESTOS_CLIENTE.REFERENCIA_CLIENTE,' + ' V_PRESUPUESTOS_CLIENTE.CLIENTE_FINAL,' + ' V_CLIENTES.NIF_CIF, V_CLIENTES.NOMBRE,' + + ' V_PRESUPUESTOS_CLIENTE.IMPORTE_IVA, V_PRESUPUESTOS_CLIENTE.I' + + 'MPORTE_TOTAL,' + + ' V_CLIENTES.PERSONA_CONTACTO, V_CLIENTES.CALLE, V_CLIENTES.PO' + + 'BLACION,' + ' V_CLIENTES.PROVINCIA, V_CLIENTES.CODIGO_POSTAL' + 'FROM' + ' V_PRESUPUESTOS_CLIENTE INNER JOIN V_CLIENTES ON' + ' (V_PRESUPUESTOS_CLIENTE.ID_CLIENTE = V_CLIENTES.ID)' + ' WHERE V_PRESUPUESTOS_CLIENTE.ID = 18') + Left = 136 + Top = 296 + object cabeceraID: TIntegerField + FieldName = 'ID' + Origin = '"V_PRESUPUESTOS_CLIENTE"."ID"' + end + object cabeceraID_EMPRESA: TIntegerField + FieldName = 'ID_EMPRESA' + Origin = '"V_PRESUPUESTOS_CLIENTE"."ID_EMPRESA"' + end + object cabeceraFECHA_PRESUPUESTO: TDateField + FieldName = 'FECHA_PRESUPUESTO' + Origin = '"V_PRESUPUESTOS_CLIENTE"."FECHA_PRESUPUESTO"' + end + object cabeceraREFERENCIA: TIBStringField + FieldName = 'REFERENCIA' + Origin = '"V_PRESUPUESTOS_CLIENTE"."REFERENCIA"' + Size = 255 + end + object cabeceraPORTADA: TMemoField + FieldName = 'PORTADA' + Origin = '"V_PRESUPUESTOS_CLIENTE"."PORTADA"' + ProviderFlags = [pfInUpdate] + BlobType = ftMemo + Size = 8 + end + object cabeceraMEMORIA: TMemoField + FieldName = 'MEMORIA' + Origin = '"V_PRESUPUESTOS_CLIENTE"."MEMORIA"' + ProviderFlags = [pfInUpdate] + BlobType = ftMemo + Size = 8 + end + object cabeceraOBSERVACIONES: TMemoField + FieldName = 'OBSERVACIONES' + Origin = '"V_PRESUPUESTOS_CLIENTE"."OBSERVACIONES"' + ProviderFlags = [pfInUpdate] + BlobType = ftMemo + Size = 8 + end + object cabeceraIMPORTE_NETO: TIBBCDField + FieldName = 'IMPORTE_NETO' + Origin = '"V_PRESUPUESTOS_CLIENTE"."IMPORTE_NETO"' + Precision = 18 + Size = 2 + end + object cabeceraIMPORTE_PORTE: TIBBCDField + FieldName = 'IMPORTE_PORTE' + Origin = '"V_PRESUPUESTOS_CLIENTE"."IMPORTE_PORTE"' + Precision = 18 + Size = 2 + end + object cabeceraDESCUENTO: TFloatField + FieldName = 'DESCUENTO' + Origin = '"V_PRESUPUESTOS_CLIENTE"."DESCUENTO"' + end + object cabeceraIMPORTE_DESCUENTO: TIBBCDField + FieldName = 'IMPORTE_DESCUENTO' + Origin = '"V_PRESUPUESTOS_CLIENTE"."IMPORTE_DESCUENTO"' + Precision = 18 + Size = 2 + end + object cabeceraBASE_IMPONIBLE: TIBBCDField + FieldName = 'BASE_IMPONIBLE' + Origin = '"V_PRESUPUESTOS_CLIENTE"."BASE_IMPONIBLE"' + Precision = 18 + Size = 2 + end + object cabeceraIVA: TFloatField + FieldName = 'IVA' + Origin = '"V_PRESUPUESTOS_CLIENTE"."IVA"' + end + object cabeceraID_CLIENTE: TIntegerField + FieldName = 'ID_CLIENTE' + Origin = '"V_PRESUPUESTOS_CLIENTE"."ID_CLIENTE"' + end + object cabeceraREFERENCIA_CLIENTE: TIBStringField + FieldName = 'REFERENCIA_CLIENTE' + Origin = '"V_PRESUPUESTOS_CLIENTE"."REFERENCIA_CLIENTE"' + Size = 255 + end + object cabeceraCLIENTE_FINAL: TIBStringField + FieldName = 'CLIENTE_FINAL' + Origin = '"V_PRESUPUESTOS_CLIENTE"."CLIENTE_FINAL"' + Size = 255 + end + object cabeceraNIF_CIF: TIBStringField + FieldName = 'NIF_CIF' + Origin = '"V_CLIENTES"."NIF_CIF"' + Size = 15 + end + object cabeceraNOMBRE: TIBStringField + FieldName = 'NOMBRE' + Origin = '"V_CLIENTES"."NOMBRE"' + Size = 255 + end + object cabeceraIMPORTE_IVA: TIBBCDField + FieldName = 'IMPORTE_IVA' + Origin = '"V_PRESUPUESTOS_CLIENTE"."IMPORTE_IVA"' + Precision = 18 + Size = 2 + end + object cabeceraIMPORTE_TOTAL: TIBBCDField + FieldName = 'IMPORTE_TOTAL' + Origin = '"V_PRESUPUESTOS_CLIENTE"."IMPORTE_TOTAL"' + Precision = 18 + Size = 2 + end + object cabeceraPERSONA_CONTACTO: TIBStringField + FieldName = 'PERSONA_CONTACTO' + Origin = '"V_CLIENTES"."PERSONA_CONTACTO"' + Size = 255 + end + object cabeceraCALLE: TIBStringField + FieldName = 'CALLE' + Origin = '"V_CLIENTES"."CALLE"' + Size = 255 + end + object cabeceraPOBLACION: TIBStringField + FieldName = 'POBLACION' + Origin = '"V_CLIENTES"."POBLACION"' + Size = 255 + end + object cabeceraPROVINCIA: TIBStringField + FieldName = 'PROVINCIA' + Origin = '"V_CLIENTES"."PROVINCIA"' + Size = 255 + end + object cabeceraCODIGO_POSTAL: TIBStringField + FieldName = 'CODIGO_POSTAL' + Origin = '"V_CLIENTES"."CODIGO_POSTAL"' + Size = 10 + end + end + object DADSCapitulos: TDADataSource + DataSet = tbl_Capitulos.Dataset + DataTable = tbl_Capitulos + Left = 352 + Top = 72 + end + object tbl_Capitulos: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_PRESUPUESTO' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'VISIBLE' + DataType = datSmallInt + end> + Params = < + item + Name = 'ID_PRESUPUESTO' + Value = '' + ParamType = daptInput + end> + MasterParamsMappings.Strings = ( + 'ID_PRESUPUESTO=ID') + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer1 + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moAllInOneFetch] + LogicalName = 'Informe_Capitulos' + IndexDefs = <> + Left = 352 + Top = 128 + end + object DADSResumen: TDADataSource + DataSet = tbl_Resumen.Dataset + DataTable = tbl_Resumen + Left = 520 + Top = 72 + end + object tbl_Resumen: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_PRESUPUESTO' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'VISIBLE' + DataType = datSmallInt + end> + Params = < + item + Name = 'ID_PRESUPUESTO' + Value = '2' + ParamType = daptInput + end> + MasterParamsMappings.Strings = ( + 'ID_PRESUPUESTO=ID') + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer1 + LogicalName = 'Informe_Resumen' + IndexDefs = <> + Left = 520 + Top = 128 + end + object frxPDFExport1: TfrxPDFExport + ShowDialog = False + UseFileCache = True + ShowProgress = False + OverwritePrompt = False + PrintOptimized = True + Outline = False + Background = False + HTMLTags = True + Author = 'FactuGES' + Subject = 'FactuGES' + Creator = 'FactuGES' + ProtectionFlags = [ePrint, eModify, eCopy, eAnnot] + HideToolbar = False + HideMenubar = False + HideWindowUI = False + FitWindow = False + CenterWindow = False + PrintScaling = False + Left = 528 + Top = 440 + end + object DADSInformeListadoPresupuestos: TDADataSource + DataSet = tbl_InformeListadoPresupuestos.Dataset + DataTable = tbl_InformeListadoPresupuestos + Left = 680 + Top = 72 + end + object tbl_InformeListadoPresupuestos: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'FECHA_PRESUPUESTO' + DataType = datDateTime + end + item + Name = 'FECHA_DECISION' + DataType = datDateTime + end + item + Name = 'FACTURA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + Params = <> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer1 + LogicalName = 'InformeListadoPresupuestos' + IndexDefs = <> + Left = 680 + Top = 128 + end + object frxDBInformeListadoPresupuestos: TfrxDBDataset + UserName = 'frxDBInformeListadoPresupuestos' + CloseDataSource = True + DataSource = DADSInformeListadoPresupuestos + BCDToCurrency = False + Left = 680 + Top = 16 + end + object frxDBInformeListadoPresupuestosResumen: TfrxDBDataset + UserName = 'frxDBInformeListadoPresupuestosResumen' + CloseDataSource = True + DataSource = DADSInformeListadoPresupuestosResumen + BCDToCurrency = False + Left = 680 + Top = 192 + end + object DADSInformeListadoPresupuestosResumen: TDADataSource + DataSet = tbl_InformeListadoPresupuestosResumen.Dataset + DataTable = tbl_InformeListadoPresupuestosResumen + Left = 680 + Top = 248 + end + object tbl_InformeListadoPresupuestosResumen: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + MasterMappingMode = mmDataRequest + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + IndexDefs = <> + Left = 680 + Top = 304 + end + object tbl_Detalles: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_PRESUPUESTO' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'ID_CAPITULO' + DataType = datInteger + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + end + item + Name = 'CANTIDAD' + DataType = datFloat + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + end + item + Name = 'DESCUENTO' + DataType = datFloat + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'VISIBLE' + DataType = datSmallInt + end> + Params = < + item + Name = 'ID_PRESUPUESTO' + Value = '32' + ParamType = daptInput + end> + MasterMappingMode = mmWhere + MasterParamsMappings.Strings = ( + 'ID_PRESUPUESTO=ID') + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer1 + MasterSource = DADSCapitulos + MasterFields = 'ID' + DetailFields = 'ID_CAPITULO' + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moAllInOneFetch] + LogicalName = 'Informe_Capitulos_Detalles' + IndexDefs = <> + Left = 440 + Top = 128 + end +end diff --git a/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.pas b/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.pas new file mode 100644 index 0000000..b6be085 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.pas @@ -0,0 +1,568 @@ +unit uRptPresupuestosCliente_Server; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, frxClass, frxDBSet, uDAScriptingProvider, + uDADataTable, uDACDSDataTable, DB, uDAClasses, uDABINAdapter, uROTypes, + uDAInterfaces, uDAMemDataTable, uDADataStreamer, uDABin2DataStreamer, + frxGradient, frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDAEngine, + IBSQL, IBDatabase, IBCustomDataSet, IBQuery, frxExportPDF, FactuGES_Intf; + +type + TRptPresupuestosCliente = class(TDataModule) + DADSCabecera: TDADataSource; + DADSDetalles: TDADataSource; + frxBarCodeObject1: TfrxBarCodeObject; + frxOLEObject1: TfrxOLEObject; + frxCrossObject1: TfrxCrossObject; + frxCheckBoxObject1: TfrxCheckBoxObject; + frxGradientObject1: TfrxGradientObject; + frxDBCabecera: TfrxDBDataset; + frxDBDetalles: TfrxDBDataset; + tbl_Cabecera: TDAMemDataTable; + frxReport: TfrxReport; + IBDatabase1: TIBDatabase; + IBTransaction1: TIBTransaction; + DataSource1: TDataSource; + DataSource2: TDataSource; + capitulos: TIBQuery; + DataSource3: TDataSource; + detalles: TIBQuery; + DataSource4: TDataSource; + resumen: TIBQuery; + resumenID: TIntegerField; + resumenID_PRESUPUESTO: TIntegerField; + resumenPOSICION: TIntegerField; + resumenTIPO_DETALLE: TIBStringField; + resumenCONCEPTO: TIBStringField; + resumenIMPORTE_TOTAL: TIBBCDField; + resumenVISIBLE: TSmallintField; + frxDBCapitulos: TfrxDBDataset; + frxDBResumen: TfrxDBDataset; + DABin2DataStreamer1: TDABin2DataStreamer; + cabecera: TIBQuery; + cabeceraID: TIntegerField; + cabeceraID_EMPRESA: TIntegerField; + cabeceraFECHA_PRESUPUESTO: TDateField; + cabeceraREFERENCIA: TIBStringField; + cabeceraPORTADA: TMemoField; + cabeceraMEMORIA: TMemoField; + cabeceraOBSERVACIONES: TMemoField; + cabeceraIMPORTE_NETO: TIBBCDField; + cabeceraIMPORTE_PORTE: TIBBCDField; + cabeceraDESCUENTO: TFloatField; + cabeceraIMPORTE_DESCUENTO: TIBBCDField; + cabeceraBASE_IMPONIBLE: TIBBCDField; + cabeceraIVA: TFloatField; + cabeceraID_CLIENTE: TIntegerField; + cabeceraREFERENCIA_CLIENTE: TIBStringField; + cabeceraCLIENTE_FINAL: TIBStringField; + cabeceraNIF_CIF: TIBStringField; + cabeceraNOMBRE: TIBStringField; + cabeceraIMPORTE_IVA: TIBBCDField; + cabeceraIMPORTE_TOTAL: TIBBCDField; + cabeceraPERSONA_CONTACTO: TIBStringField; + cabeceraCALLE: TIBStringField; + cabeceraPOBLACION: TIBStringField; + cabeceraPROVINCIA: TIBStringField; + cabeceraCODIGO_POSTAL: TIBStringField; + DADSCapitulos: TDADataSource; + tbl_Capitulos: TDAMemDataTable; + DADSResumen: TDADataSource; + tbl_Resumen: TDAMemDataTable; + frxPDFExport1: TfrxPDFExport; + DADSInformeListadoPresupuestos: TDADataSource; + tbl_InformeListadoPresupuestos: TDAMemDataTable; + frxDBInformeListadoPresupuestos: TfrxDBDataset; + frxDBInformeListadoPresupuestosResumen: TfrxDBDataset; + DADSInformeListadoPresupuestosResumen: TDADataSource; + tbl_InformeListadoPresupuestosResumen: TDAMemDataTable; + tbl_Detalles: TDAMemDataTable; + schReport: TDASchema; + DataDictionary: TDADataDictionary; + procedure DataModuleCreate(Sender: TObject); + procedure DataModuleDestroy(Sender: TObject); + function frxReportUserFunction(const MethodName: string; + var Params: Variant): Variant; + private + FConnection: IDAConnection; + FIdEmpresa: Integer; + FFechaInicio: Variant; + FFechaFin: Variant; + FListaIDClientes: TIntegerArray; + FListaNombresClientes: TStringList; + FImporteMinimo: Currency; + FDesglosado : Boolean; + + procedure _GenerarPresupuesto(const AID : Integer; const VerSello: Integer); + + procedure PrepararTablaInforme(ATabla: TDAMemDataTable); + procedure PrepararTablaResumenInforme(ATabla: IDADataset); + + function _GenerarInforme(const TipoInforme: String): Binary; + procedure IniciarParametrosInforme; + procedure RecuperarNombresClientes; + public + function GenerarPresupuesto(const ListaID : TIntegerArray; const VerSello: Integer): Binary; + function GenerarPresupuestoEnPDF(const ListaID : TIntegerArray; const VerSello: Integer): Binary; + function GenerarInformeListadoPresupuestos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + end; + +implementation + +{$R *.dfm} + +uses + uSistemaFunc, StrUtils, uDataModuleServer, schPresupuestosClienteClient_Intf, + uROServer, DataAbstract4_Intf; + + +const + rptInforme = 'InfPresupuestoCliente.fr3'; + rptInformeListadoPresupuestosDesglosado = 'InformeListadoPresupuestosDesglosado.fr3'; + rptInformeListadoPresupuestos = 'InformeListadoPresupuestos.fr3'; + + { Dataset names for schReport } + ds_InformeListadoPresupuestosResumen = 'InformeListadoPresupuestosResumen'; + + +procedure TRptPresupuestosCliente.DataModuleCreate(Sender: TObject); +begin + schReport.ConnectionManager := dmServer.ConnectionManager; + FConnection := dmServer.DarNuevaConexion; + frxReport.EngineOptions.NewSilentMode := simReThrow; + + frxDBCabecera.DataSource := DADSCabecera; + frxDBCabecera.CloseDataSource := False; + + frxDBCapitulos.DataSource := DADSCapitulos; + frxDBCapitulos.CloseDataSource := False; + + frxDBDetalles.DataSource := DADSDetalles; + frxDBDetalles.CloseDataSource := False; + + frxDBResumen.DataSource := DADSResumen; + frxDBResumen.CloseDataSource := False; + + FListaNombresClientes := TStringList.Create; + + with tbl_Detalles do + begin + MasterSource := DADSCapitulos; + MasterFields := 'ID'; + DetailFields := 'ID_CAPITULO'; + MasterMappingMode := mmWhere; + end; +end; + +function TRptPresupuestosCliente.GenerarPresupuestoEnPDF(const ListaID: TIntegerArray; const VerSello: Integer): Binary; +var + i: Integer; +begin + Result := Binary.Create; + try + //Vamos generando todos y cada uno de los presupuestos recibidos + for i := 0 to ListaID.Count - 1 do + _GenerarPresupuesto(ListaID.Items[i], VerSello); + + frxPDFExport1.Stream := Result; + frxReport.Export(frxPDFExport1) + finally + end; +end; + +procedure TRptPresupuestosCliente.IniciarParametrosInforme; +var + ATextos : TStringList; + ACadena : String; +begin + ATextos := TStringList.Create; + + try + if (not VarIsNull(FFechaInicio)) and (not VarIsNull(FFechaFin)) then + ACadena := Format('Fechas de presupuesto desde el %s hasta el %s', [VarToStr(FFechaInicio), VarToStr(FFechaFin)]) + else + ACadena := 'Sin rango de fechas'; + ATextos.Add(ACadena); + ACadena := ''; + + if (FImporteMinimo > 0) then + begin + ACadena := Format('Presupuestos con importe superior a %m', [FImporteMinimo]); + ATextos.Add(ACadena); + ACadena := ''; + end; + + if Assigned(FListaIDClientes) and (FListaIDClientes.Count > 0) then + begin + RecuperarNombresClientes; + ACadena := FListaNombresClientes.Text; + end + else begin + ACadena := 'Todos los clientes'; + if FDesglosado then + ACadena := ACadena + ' (desglosados)' + end; + + ATextos.Add(ACadena); + ACadena := ''; + + frxReport.Variables.Variables['TextoParametros'] := ATextos.Text; + finally + FreeAndNil(ATextos); + end; +end; + +procedure TRptPresupuestosCliente.PrepararTablaInforme(ATabla: TDAMemDataTable); +var + Condicion: TDAWhereExpression; + i: Integer; + +begin + // Filtrar el informe por empresa + with ATabla.DynamicWhere do + begin + // (ID_EMPRESA >= ID) + Condicion := NewBinaryExpression(NewField('', fld_PresupuestosClienteID_EMPRESA), NewConstant(FIdEmpresa, datInteger), dboEqual); + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + // Filtrar el informe por fechas + if not VarIsNull(FFechaInicio) + and not VarIsNull(FFechaFin) then + begin + with ATabla.DynamicWhere do + begin + // (FECHA_INICIO between FECHA_FIN) + Condicion := NewBinaryExpression(NewField('', fld_PresupuestosClienteFECHA_PRESUPUESTO), NewConstant(FFechaInicio, datDateTime), dboGreaterOrEqual); + Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_PresupuestosClienteFECHA_PRESUPUESTO), NewConstant(FFechaFin, datDateTime), dboLessOrEqual), Condicion, dboAnd); + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + end; + + // Filtrar el informe por proveedor + if Assigned(FListaIDClientes) then + begin + with ATabla.DynamicWhere do + begin + for i := 0 to FListaIDClientes.Count - 1 do + begin + + // (ID_CLIENTE = ID) + Condicion := NewBinaryExpression(NewField('', fld_PresupuestosClienteID_CLIENTE), NewConstant(FListaIDClientes.Items[i], datInteger), dboEqual); + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + end; + end; + + // Filtrar el informe por importe minimo + if (FImporteMinimo > 0) then + begin + with ATabla.DynamicWhere do + begin + // (IMPORTE_TOTAL > ImporteMinimo) + Condicion := NewBinaryExpression(NewField('', fld_PresupuestosClienteIMPORTE_TOTAL), NewConstant(FImporteMinimo, datCurrency), dboGreaterOrEqual); + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + end; +end; + +procedure TRptPresupuestosCliente.PrepararTablaResumenInforme(ATabla: IDADataset); +var + i: Integer; + AWhereStr : String; + +begin + // Filtrar el informe por empresa + AWhereStr := ' (' + fld_PresupuestosClienteID_EMPRESA + ' = ' + IntToStr(FIdEmpresa) + ') '; + + // Filtrar el informe por fechas + if not VarIsNull(FFechaInicio) + and not VarIsNull(FFechaFin) then + begin + if Length(AWhereStr) > 0 then + AWhereStr := AWhereStr + 'AND'; + AWhereStr := AWhereStr + ' (' + fld_PresupuestosClienteFECHA_PRESUPUESTO + ' between ''' + ReplaceStr(VarToStr(FFechaInicio),'/','.') + ''' and ''' + ReplaceStr(VarToStr(FFechaFin),'/','.') + ''') '; + end; + + // Filtrar el informe por cliente + if Assigned(FListaIDClientes) then + begin + for i := 0 to FListaIDClientes.Count - 1 do + begin + if Length(AWhereStr) > 0 then + AWhereStr := AWhereStr + 'AND'; + AWhereStr := AWhereStr + ' (' + fld_PresupuestosClienteID_CLIENTE + ' = ' + IntToStr(FListaIDClientes.Items[i]) + ') '; + end; + end; + + // Filtrar el informe por importe minimo + if (FImporteMinimo > 0) then + begin + if Length(AWhereStr) > 0 then + AWhereStr := AWhereStr + 'AND'; + AWhereStr := AWhereStr + ' (' + fld_PresupuestosClienteIMPORTE_TOTAL + ' >= ' + CurrToStr(FImporteMinimo) + ') '; + end; + + ATabla.Where.AddText(AWhereStr); +end; + +procedure TRptPresupuestosCliente.RecuperarNombresClientes; +var + AContactosService : IsrvContactos; + Intf : IInterface; + AClientID : TGUID; + + ATableNameArray: StringArray; + ATableRequestInfoArray: TableRequestInfoArray; + ATableRequestInfo: TableRequestInfoV5; + AStream: TMemoryStream; + ADataTable: TDAMemDataTable; + i: Integer; + AWhereBuilder : TDAWhereBuilder; + ACondicion : TDAWhereExpression; +begin + CreateGUID(AClientID); + + GetClassFactory('srvContactos').CreateInstance(AClientID, Intf); + + if Assigned(Intf) then + begin + AContactosService := Intf as IsrvContactos; + + ATableNameArray := StringArray.Create; + ATableRequestInfoArray := TableRequestInfoArray.Create; + AWhereBuilder := TDAWhereBuilder.Create; + try + ATableNameArray.Add('Clientes'); + ATableRequestInfo := TableRequestInfoV5.Create; + + with ATableRequestInfo do + begin + IncludeSchema := True; + MaxRecords := -1; + UserFilter := ''; + + AWhereBuilder.Clear; + with AWhereBuilder do + for i := 0 to FListaIDClientes.Count - 1 do + begin + ACondicion := NewBinaryExpression( + NewBinaryExpression(NewField('', 'ID'), NewConstant(FListaIDClientes[i], datInteger), dboEqual), + NewBinaryExpression(NewField('', 'ID_EMPRESA'), NewConstant(FIdEmpresa, datInteger), dboEqual), + dboAnd); + + if not AWhereBuilder.IsEmpty then + Expression := NewBinaryExpression(Expression, ACondicion, dboOr) + else + Expression := ACondicion; + end; + + WhereClause := AWhereBuilder.ExpressionToXmlNode(AWhereBuilder.Expression); + end; + + try + ATableRequestInfoArray.Add(ATableRequestInfo); + AStream := AContactosService.GetData(ATableNameArray, ATableRequestInfoArray); + if Assigned(AStream) then + begin + ADataTable := TDAMemDataTable.Create(nil); + try + ADataTable.Name := 'Clientes'; + ADataTable.LocalDataStreamer := DABin2DataStreamer1; + ADataTable.RemoteFetchEnabled := False; + DABin2DataStreamer1.ReadDataset(AStream, ADataTable, True); + + ADataTable.Open; + FListaNombresClientes.Clear; + for i := 0 to ADataTable.RecordCount - 1 do + begin + FListaNombresClientes.Add(ADataTable.FieldByName('NOMBRE').AsString); + ADataTable.Next; + end; + + finally + FreeANDNil(ADataTable); + end; + end; + except + on e: Exception do + dmServer.EscribirLog(e.Message); + end; + finally + FreeANDNIL(ATableRequestInfoArray); + FreeANDNIL(ATableNameArray); + FreeANDNIL(AWhereBuilder); + end; + end; +end; + +procedure TRptPresupuestosCliente.DataModuleDestroy(Sender: TObject); +begin + tbl_Cabecera.Active := False; + tbl_Capitulos.Active := False; + tbl_Detalles.Active := False; + tbl_Resumen.Active := False; + + FreeANDNIL(FListaNombresClientes); +end; + +function TRptPresupuestosCliente.frxReportUserFunction(const MethodName: string; + var Params: Variant): Variant; +var + AText : String; +begin + Result := ''; + if (MethodName = 'PONERJUSTIFICACIONCOMPLETA') then + begin + AText := VarToStr(Params[0]); + Result := ReplaceStr(AText, '\pard', '\qj'); + end; +end; + +function TRptPresupuestosCliente.GenerarInformeListadoPresupuestos( + const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; + const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; + const ImporteMinimo: Currency): Binary; +var + ATipoInforme: String; + AStream: TMemoryStream; + dsMaster: IDADataset; + +begin + FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + + AStream := TMemoryStream.Create; + try + //Inicializamos parametros + FIdEmpresa := IdEmpresa; + FFechaInicio := FechaInicio; + FFechaFin := FechaFin; + FImporteMinimo := ImporteMinimo; + + if Assigned(FListaIDClientes) then + FListaIDClientes.Free; + FListaIDClientes := ListaIDClientes; + + if tbl_InformeListadoPresupuestos.Active then + tbl_InformeListadoPresupuestos.Active := False; + PrepararTablaInforme(tbl_InformeListadoPresupuestos); + + //Se prepara la tabla del listado resumen del informe + if tbl_InformeListadoPresupuestosResumen.Active then + tbl_InformeListadoPresupuestosResumen.Active := False; + dsMaster := schReport.NewDataset(FConnection, ds_InformeListadoPresupuestosResumen, [], [], False); + PrepararTablaResumenInforme(dsMaster); + + //Esto se hace para rellenar la tabla del datamodule que usa el informe. + dsMaster.Open; + AStream.Clear; + DABin2DataStreamer1.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1); + DABin2DataStreamer1.ReadDataset(AStream, tbl_InformeListadoPresupuestosResumen, TRUE, '', TRUE, TRUE); + + //DESGLOSADO POR CLIENTE EN ESTE INFORME NO SE DESGLOSAR POR CLIENTE + FDesglosado := Desglosado; + if FDesglosado then + ATipoInforme := rptInformeListadoPresupuestosDesglosado + else + ATipoInforme := rptInformeListadoPresupuestos; + + //Finalmente se abren las tablas del informe + tbl_InformeListadoPresupuestos.Active := True; + tbl_InformeListadoPresupuestosResumen.Active := True; + + Result := _GenerarInforme(ATipoInforme); + + finally + AStream.Free; + dsMaster := Nil; + FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + end; +end; + +function TRptPresupuestosCliente.GenerarPresupuesto(const ListaID: TIntegerArray; const VerSello: Integer): Binary; +var + i: Integer; +begin + Result := Binary.Create; + try + //Vamos generando todos y cada uno de los presupuestos recibidos + for i := 0 to ListaID.Count - 1 do + _GenerarPresupuesto(ListaID.Items[i], VerSello); + + frxReport.PreviewPages.SaveToStream(Result); + finally + end; +end; + +function TRptPresupuestosCliente._GenerarInforme(const TipoInforme: String): Binary; +var + AInforme: Variant; + +begin + Result := Binary.Create; + AInforme := DarRutaFichero(DarRutaInformes, TipoInforme, IntToStr(FIdEmpresa)); + if VarIsNull(AInforme) then + raise Exception.Create (('Error Servidor: _GenerarInforme, no encuentra informe ' + TipoInforme)); + + frxReport.LoadFromFile(AInforme, True); + IniciarParametrosInforme; + + frxReport.PrepareReport(False); + frxReport.PreviewPages.SaveToStream(Result); +end; + +procedure TRptPresupuestosCliente._GenerarPresupuesto(const AID: Integer; const VerSello: Integer); +var + AInforme: Variant; +begin + FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + try + tbl_Cabecera.Active := False; + tbl_Capitulos.Active := False; + tbl_Detalles.Active := False; + tbl_Resumen.Active := False; + + tbl_Cabecera.ParamByName('ID').AsInteger := AID; + tbl_Capitulos.ParamByName('ID_PRESUPUESTO').AsInteger := AID; + tbl_Detalles.ParamByName('ID_PRESUPUESTO').AsInteger := AID; + tbl_Resumen.ParamByName('ID_PRESUPUESTO').AsInteger := AID; + + // Se asignan los parametros en este orden para que funcionen + // dentro de las relaciones maestro-detalle (captulos y conceptos). + + tbl_Cabecera.Active := True; + tbl_Capitulos.Active := True; + tbl_Detalles.Active := True; + tbl_Resumen.Active := True; + + AInforme := DarRutaFichero(DarRutaInformes, rptInforme, tbl_Cabecera.FieldByName('ID_EMPRESA').AsString); + if VarIsNull(AInforme) then + raise Exception.Create (('Error Servidor: _GenerarPresupuesto, no encuentra informe ' + rptInforme)); + + frxReport.LoadFromFile(AInforme, True); + + frxReport.Variables.Variables['VerSello'] := IntToStr(VerSello); + + frxReport.AddFunction('function PONERJUSTIFICACIONCOMPLETA(ARTFText : String): String', 'User Function',''); + frxReport.PrepareReport(False); + finally + FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + end; +end; + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Reports/uRptWordCertificadoTrabajo_Server.dcu b/Source/Modulos/Presupuestos de cliente/Reports/uRptWordCertificadoTrabajo_Server.dcu new file mode 100644 index 0000000..06d1ec0 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Reports/uRptWordCertificadoTrabajo_Server.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Reports/uRptWordCertificadoTrabajo_Server.dfm b/Source/Modulos/Presupuestos de cliente/Reports/uRptWordCertificadoTrabajo_Server.dfm new file mode 100644 index 0000000..39a2434 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Reports/uRptWordCertificadoTrabajo_Server.dfm @@ -0,0 +1,563 @@ +object RptWordCertificadoTrabajo: TRptWordCertificadoTrabajo + OldCreateOrder = False + OnCreate = DataModuleCreate + Height = 218 + Width = 374 + object schReport: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Datasets = < + item + Params = < + item + Name = 'ID' + Value = '31' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'SELECT'#10' V_PRESUPUESTOS_CLIENTE.ID, V_PRESUPUESTOS_CLIENTE.ID_' + + 'EMPRESA,'#10' V_PRESUPUESTOS_CLIENTE.FECHA_PRESUPUESTO,'#10' V_PRE' + + 'SUPUESTOS_CLIENTE.REFERENCIA,'#10' V_PRESUPUESTOS_CLIENTE.PORTADA' + + ','#10' V_PRESUPUESTOS_CLIENTE.MEMORIA, V_PRESUPUESTOS_CLIENTE.OBS' + + 'ERVACIONES,'#10' V_PRESUPUESTOS_CLIENTE.IMPORTE_NETO, V_PRESUPUES' + + 'TOS_CLIENTE.IMPORTE_PORTE,'#10' V_PRESUPUESTOS_CLIENTE.DESCUENTO,' + + ' V_PRESUPUESTOS_CLIENTE.IMPORTE_DESCUENTO,'#10' V_PRESUPUESTOS_CL' + + 'IENTE.BASE_IMPONIBLE, V_PRESUPUESTOS_CLIENTE.IVA,'#10' V_PRESUPUE' + + 'STOS_CLIENTE.ID_CLIENTE,'#10' V_PRESUPUESTOS_CLIENTE.REFERENCIA_C' + + 'LIENTE,'#10' V_PRESUPUESTOS_CLIENTE.CLIENTE_FINAL,'#10' CONTACTOS.' + + 'NIF_CIF, CONTACTOS.NOMBRE,'#10' V_PRESUPUESTOS_CLIENTE.IMPORTE_IV' + + 'A, V_PRESUPUESTOS_CLIENTE.IMPORTE_TOTAL,'#10' COALESCE(CONTACTOS_' + + 'DIRECCIONES.CALLE, CONTACTOS.CALLE) AS CALLE,'#10' COALESCE(CONTA' + + 'CTOS_DIRECCIONES.POBLACION, CONTACTOS.POBLACION) AS POBLACION,'#10' ' + + ' COALESCE(CONTACTOS_DIRECCIONES.PROVINCIA, CONTACTOS.PROVINCIA' + + ') AS PROVINCIA,'#10' COALESCE(CONTACTOS_DIRECCIONES.CODIGO_POSTAL' + + ', CONTACTOS.CODIGO_POSTAL) AS CODIGO_POSTAL,'#10' V_PRESUPUESTOS_' + + 'CLIENTE.PERSONA_CONTACTO'#10'FROM'#10' V_PRESUPUESTOS_CLIENTE'#10' INN' + + 'ER JOIN CONTACTOS ON (CONTACTOS.ID = V_PRESUPUESTOS_CLIENTE.ID_C' + + 'LIENTE)'#10' LEFT OUTER JOIN CONTACTOS_DIRECCIONES ON (CONTACTOS_' + + 'DIRECCIONES.ID = V_PRESUPUESTOS_CLIENTE.ID_DIRECCION)'#10'WHERE'#10' ' + + 'V_PRESUPUESTOS_CLIENTE.ID = :ID'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'FECHA_PRESUPUESTO' + TableField = 'FECHA_PRESUPUESTO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'PORTADA' + TableField = 'PORTADA' + end + item + DatasetField = 'MEMORIA' + TableField = 'MEMORIA' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'IMPORTE_NETO' + TableField = 'IMPORTE_NETO' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IMPORTE_DESCUENTO' + TableField = 'IMPORTE_DESCUENTO' + end + item + DatasetField = 'BASE_IMPONIBLE' + TableField = 'BASE_IMPONIBLE' + end + item + DatasetField = 'IVA' + TableField = 'IVA' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'REFERENCIA_CLIENTE' + TableField = 'REFERENCIA_CLIENTE' + end + item + DatasetField = 'CLIENTE_FINAL' + TableField = 'CLIENTE_FINAL' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'IMPORTE_IVA' + TableField = 'IMPORTE_IVA' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end> + end> + Name = 'Informe_Cabecera' + Fields = < + item + Name = 'ID' + DataType = datInteger + Required = True + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'FECHA_PRESUPUESTO' + DataType = datDateTime + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'PORTADA' + DataType = datMemo + end + item + Name = 'MEMORIA' + DataType = datMemo + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + end + item + Name = 'DESCUENTO' + DataType = datFloat + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + end + item + Name = 'IVA' + DataType = datFloat + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'CLIENTE_FINAL' + DataType = datString + Size = 255 + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + end> + ReadOnly = True + end + item + Params = < + item + Name = 'ID_PRESUPUESTO' + DataType = datInteger + Value = '12' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + SQL = + 'SELECT * FROM PRO_PRES_CAPITULOS(:ID_PRESUPUESTO)'#10'WHERE (VISIBLE' + + ' <> 0) AND {where}'#10'ORDER BY ID_PRESUPUESTO, POSICION'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_PRESUPUESTO' + TableField = 'ID_PRESUPUESTO' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'VISIBLE' + TableField = 'VISIBLE' + end> + end> + Name = 'Informe_Capitulos' + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_PRESUPUESTO' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'VISIBLE' + DataType = datSmallInt + end> + ReadOnly = True + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 16 + end + object DataDictionary: TDADataDictionary + Fields = <> + Left = 46 + Top = 142 + end + object DABin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 80 + end + object tbl_Cabecera: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + Required = True + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'FECHA_PRESUPUESTO' + DataType = datDateTime + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'PORTADA' + DataType = datMemo + end + item + Name = 'MEMORIA' + DataType = datMemo + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + end + item + Name = 'DESCUENTO' + DataType = datFloat + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + end + item + Name = 'IVA' + DataType = datFloat + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'CLIENTE_FINAL' + DataType = datString + Size = 255 + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + end> + Params = < + item + Name = 'ID' + Value = '31' + ParamType = daptInput + end> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer + LogicalName = 'Informe_Cabecera' + IndexDefs = <> + Left = 168 + Top = 16 + end + object tbl_Capitulos: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_PRESUPUESTO' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'VISIBLE' + DataType = datSmallInt + end> + Params = < + item + Name = 'ID_PRESUPUESTO' + DataType = datInteger + Value = '12' + ParamType = daptInput + end> + MasterParamsMappings.Strings = ( + 'ID_PRESUPUESTO=ID_PRESUPUESTO') + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer + LogicalName = 'Informe_Capitulos' + IndexDefs = <> + Left = 264 + Top = 16 + end + object tbl_Empresa: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = < + item + Name = 'ID' + Value = '31' + ParamType = daptInput + end> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LogicalName = 'Empresa' + IndexDefs = <> + Left = 168 + Top = 80 + end +end diff --git a/Source/Modulos/Presupuestos de cliente/Reports/uRptWordCertificadoTrabajo_Server.pas b/Source/Modulos/Presupuestos de cliente/Reports/uRptWordCertificadoTrabajo_Server.pas new file mode 100644 index 0000000..0141b52 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Reports/uRptWordCertificadoTrabajo_Server.pas @@ -0,0 +1,217 @@ +unit uRptWordCertificadoTrabajo_Server; + +interface + +uses + SysUtils, Classes, AHWord97, IB, IBCustomDataSet, IBDatabase, + Word2000, + uDAInterfaces, uDADataStreamer, uDABin2DataStreamer, uDAClasses, + uDAScriptingProvider, uDADataTable, uDAMemDataTable; + +type + TCapitulo = record + Tipo : string; + Nombre : string; + Total : double; + end; + + TRptWordCertificadoTrabajo = class(TDataModule) + DABin2DataStreamer: TDABin2DataStreamer; + tbl_Cabecera: TDAMemDataTable; + tbl_Capitulos: TDAMemDataTable; + tbl_Empresa: TDAMemDataTable; + schReport: TDASchema; + DataDictionary: TDADataDictionary; + procedure DataModuleCreate(Sender: TObject); + private + FConnection: IDAConnection; + FImportes : Boolean; +// FDesBonificacion : Variant; +// FImpBonificacion : Double; + FPlantilla : string; + FWordApp : TWordApp; + FDocumento : TWordDoc; + FNumCapitulos : Integer; + FNumCapOpc : Integer; + FContadorCap : Integer; + FCodigoPresupuesto : Integer; + FNombreFichero : String; + ListaCapitulos : array[1..1000] of TCapitulo; + function Generar : Boolean; + function RellenarInforme : boolean; virtual; + procedure _GenerarCertificado(const AID : Integer); + public + constructor Create (AOwner : TComponent); override; + destructor Destroy; override; + function Exportar(const AIDPresupuesto: Integer; const AFichero : String): Boolean; + end; + + +implementation + +{$R *.dfm} + +uses + Windows, Variants, Dialogs, uDataModuleServer, uStringsUtils, uSistemaFunc, + srvEmpresas_Impl, uROTypes, uROClasses; + +const + rptInforme = 'CertificadoTrabajos.rdx'; + + +constructor TRptWordCertificadoTrabajo.Create(AOwner: TComponent); +begin + inherited; + FDocumento := NIL; + FImportes := True; + FNumCapitulos := 0; + + FPlantilla := DarRutaInformes + rptInforme; +end; + +procedure TRptWordCertificadoTrabajo.DataModuleCreate(Sender: TObject); +begin + schReport.ConnectionManager := dmServer.ConnectionManager; + FConnection := dmServer.DarNuevaConexion; +end; + +destructor TRptWordCertificadoTrabajo.Destroy; +begin + if FDocumento <> NIL then + FDocumento.Free; + FDocumento := NIL; + + inherited; +end; + +function TRptWordCertificadoTrabajo.Exportar(const AIDPresupuesto: Integer; + const AFichero : String): Boolean; +begin + if EsCadenaVacia(AFichero) then + RaiseError('Falta indicar el fichero donde se exportar el listado.'); + + FNombreFichero := AFichero; + FCodigoPresupuesto := AIDPresupuesto; + _GenerarCertificado(AIDPresupuesto); + Result := True; +end; + +function TRptWordCertificadoTrabajo.Generar : Boolean; +begin + FWordApp := TWordApp.Create (False, False); + with FWordApp do + begin + Visible := False; + ScreenUpdating := False; + end; + + FDocumento := TWordDoc.CreateNewDoc(FWordApp, FPlantilla); + FWordApp.SaveActiveDocAs(FNombreFichero); + try + if not RellenarInforme then + RaiseError('Se producido un error al generar el informe en MS Word.'); + + FWordApp.CloseApp(wdSaveChanges); + Result := True; + finally + FDocumento := NIL; + FWordApp := NIL; + end; +end; + + +function TRptWordCertificadoTrabajo.RellenarInforme: boolean; +var + NombreCapitulo : string; + ADescripcion : string; + ANombreFichero : string; +begin + with FDocumento, tbl_Cabecera do + begin + ReplaceBookmark('Cliente', FieldByName('NOMBRE').AsString); + ReplaceBookmark('Direccion', FieldByName('CALLE').AsString + ' ' + + FieldByName('CODIGO_POSTAL').AsString + ' ' + + FieldByName('POBLACION').AsString + ' ' + FieldByName('PROVINCIA').AsString); + + ReplaceBookmark('Referencia', FieldByName('REFERENCIA').AsString); + end; + + FContadorCap := 0; + FNumCapOpc := 0; + with FDocumento, tbl_Capitulos do + begin + First; + ADescripcion := ''; + while not Eof do + begin + if (FieldByName('TIPO_DETALLE').AsString = 'Titulo') or + (FieldByName('TIPO_DETALLE').AsString = 'Opcional') then + begin + NombreCapitulo := ''; + if (FieldByName('TIPO_DETALLE').AsString = 'Titulo') then + NombreCapitulo := 'Captulo ' + IntToStr(FContadorCap + 1) + '. ' + FieldByName('CONCEPTO').AsString + else begin + NombreCapitulo := 'Captulo opcional. ' + FieldByName('CONCEPTO').AsString; + Inc(FNumCapOpc); + end; + ADescripcion := ADescripcion + #13#10 + NombreCapitulo; + + Inc(FContadorCap); + ListaCapitulos[FContadorCap].Tipo := FieldByName('TIPO_DETALLE').AsString; + ListaCapitulos[FContadorCap].Nombre := NombreCapitulo; + Next; + end + else begin + if FContadorCap = 0 then + begin + Inc(FContadorCap); // Se considera el conjunto de conceptos sueltos como un captulo. + { Pegar una tabla para rellenarla } + end; + Next; + end; + end; + FNumCapitulos := FContadorCap; + ReplaceBookmark('Capitulos', ADescripcion); + end; + + ANombreFichero := DarFicheroTemporal; + EscribirEnFichero(ANombreFichero, tbl_Cabecera.FieldByName('PORTADA').AsString); + FWordApp.InsertFile(ANombreFichero, 'Portada'); + SysUtils.DeleteFile(ANombreFichero); + + Result := True; +end; + + +procedure TRptWordCertificadoTrabajo._GenerarCertificado(const AID: Integer); +var + ACopiaPlantilla: string; +begin + FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + try + tbl_Cabecera.ParamByName('ID').AsInteger := AID; + tbl_Capitulos.ParamByName('ID_PRESUPUESTO').AsInteger := AID; + + tbl_Cabecera.Active := True; + tbl_Capitulos.Active := True; + + FCodigoPresupuesto := AID; + + if RecuperarEmpresa(tbl_Cabecera.FieldByName('ID_EMPRESA').AsInteger, tbl_Empresa) then + begin + ACopiaPlantilla := DarFicheroTemporal; + CopiarFichero(FPlantilla, ACopiaPlantilla); + FPlantilla := ACopiaPlantilla; + try + Generar; + finally + SysUtils.DeleteFile(ACopiaPlantilla); + end; + end; + finally + FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + end; +end; + +end. + diff --git a/Source/Modulos/Presupuestos de cliente/Reports/uRptWordPresupuestoCliente.dcu b/Source/Modulos/Presupuestos de cliente/Reports/uRptWordPresupuestoCliente.dcu new file mode 100644 index 0000000..023cf6d Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Reports/uRptWordPresupuestoCliente.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Reports/uRptWordPresupuestoCliente.dfm b/Source/Modulos/Presupuestos de cliente/Reports/uRptWordPresupuestoCliente.dfm new file mode 100644 index 0000000..06633a3 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Reports/uRptWordPresupuestoCliente.dfm @@ -0,0 +1,700 @@ +object RptWordPresupuestoCliente: TRptWordPresupuestoCliente + OldCreateOrder = False + OnCreate = DataModuleCreate + Height = 262 + Width = 344 + object schReport: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Datasets = < + item + Params = < + item + Name = 'ID' + Value = '71' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'SELECT'#10' V_PRESUPUESTOS_CLIENTE.ID, V_PRESUPUESTOS_CLIENTE.ID_' + + 'EMPRESA,'#10' V_PRESUPUESTOS_CLIENTE.FECHA_PRESUPUESTO,'#10' V_PRE' + + 'SUPUESTOS_CLIENTE.REFERENCIA || '#39' '#39' || COALESCE(V_PRESUPUESTOS_C' + + 'LIENTE.REFERENCIA_AUX, '#39#39') AS REFERENCIA,'#10' V_PRESUPUESTOS_CLI' + + 'ENTE.PORTADA,'#10' V_PRESUPUESTOS_CLIENTE.MEMORIA, V_PRESUPUESTOS' + + '_CLIENTE.OBSERVACIONES,'#10' V_PRESUPUESTOS_CLIENTE.IMPORTE_NETO,' + + ' V_PRESUPUESTOS_CLIENTE.IMPORTE_PORTE,'#10' V_PRESUPUESTOS_CLIENT' + + 'E.DESCUENTO, V_PRESUPUESTOS_CLIENTE.IMPORTE_DESCUENTO,'#10' V_PRE' + + 'SUPUESTOS_CLIENTE.BASE_IMPONIBLE, V_PRESUPUESTOS_CLIENTE.IVA,'#10' ' + + ' V_PRESUPUESTOS_CLIENTE.ID_CLIENTE,'#10' V_PRESUPUESTOS_CLIENTE.' + + 'REFERENCIA_CLIENTE,'#10' V_PRESUPUESTOS_CLIENTE.CLIENTE_FINAL,'#10' ' + + ' CONTACTOS.NIF_CIF, CONTACTOS.NOMBRE,'#10' V_PRESUPUESTOS_CLIENT' + + 'E.IMPORTE_IVA, V_PRESUPUESTOS_CLIENTE.IMPORTE_TOTAL,'#10' COALESC' + + 'E(CONTACTOS_DIRECCIONES.CALLE, CONTACTOS.CALLE) AS CALLE,'#10' CO' + + 'ALESCE(CONTACTOS_DIRECCIONES.POBLACION, CONTACTOS.POBLACION) AS ' + + 'POBLACION,'#10' COALESCE(CONTACTOS_DIRECCIONES.PROVINCIA, CONTACT' + + 'OS.PROVINCIA) AS PROVINCIA,'#10' COALESCE(CONTACTOS_DIRECCIONES.C' + + 'ODIGO_POSTAL, CONTACTOS.CODIGO_POSTAL) AS CODIGO_POSTAL,'#10' V_P' + + 'RESUPUESTOS_CLIENTE.PERSONA_CONTACTO,'#10' V_PRESUPUESTOS_CLIENTE' + + '.DESCRIPCION_BONIFICACION,'#10' V_PRESUPUESTOS_CLIENTE.IMPORTE_BO' + + 'NIFICACION'#10'FROM'#10' V_PRESUPUESTOS_CLIENTE'#10' INNER JOIN CONTAC' + + 'TOS ON (CONTACTOS.ID = V_PRESUPUESTOS_CLIENTE.ID_CLIENTE)'#10' LE' + + 'FT OUTER JOIN CONTACTOS_DIRECCIONES ON (CONTACTOS_DIRECCIONES.ID' + + ' = V_PRESUPUESTOS_CLIENTE.ID_DIRECCION)'#10'WHERE'#10' V_PRESUPUESTOS' + + '_CLIENTE.ID = :ID'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'FECHA_PRESUPUESTO' + TableField = 'FECHA_PRESUPUESTO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'PORTADA' + TableField = 'PORTADA' + end + item + DatasetField = 'MEMORIA' + TableField = 'MEMORIA' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'IMPORTE_NETO' + TableField = 'IMPORTE_NETO' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IMPORTE_DESCUENTO' + TableField = 'IMPORTE_DESCUENTO' + end + item + DatasetField = 'BASE_IMPONIBLE' + TableField = 'BASE_IMPONIBLE' + end + item + DatasetField = 'IVA' + TableField = 'IVA' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'REFERENCIA_CLIENTE' + TableField = 'REFERENCIA_CLIENTE' + end + item + DatasetField = 'CLIENTE_FINAL' + TableField = 'CLIENTE_FINAL' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'IMPORTE_IVA' + TableField = 'IMPORTE_IVA' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end + item + DatasetField = 'DESCRIPCION_BONIFICACION' + TableField = 'DESCRIPCION_BONIFICACION' + end + item + DatasetField = 'IMPORTE_BONIFICACION' + TableField = 'IMPORTE_BONIFICACION' + end> + end> + Name = 'Informe_Cabecera' + Fields = < + item + Name = 'ID' + DataType = datInteger + Required = True + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'FECHA_PRESUPUESTO' + DataType = datDateTime + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'PORTADA' + DataType = datMemo + end + item + Name = 'MEMORIA' + DataType = datMemo + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + end + item + Name = 'DESCUENTO' + DataType = datFloat + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + end + item + Name = 'IVA' + DataType = datFloat + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'CLIENTE_FINAL' + DataType = datString + Size = 255 + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + end + item + Name = 'DESCRIPCION_BONIFICACION' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_BONIFICACION' + DataType = datCurrency + end> + ReadOnly = True + end + item + Params = < + item + Name = 'ID_PRESUPUESTO' + Value = '2' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + SQL = + 'SELECT '#10' ID, ID_PRESUPUESTO, POSICION, TIPO_DETALLE, ID_ARTIC' + + 'ULO, '#10' F_RTFTOTEXT(F_RTFTOTEXT(CONCEPTO)) as CONCEPTO, CONCEP' + + 'TO as CONCEPTO_RTF, CANTIDAD,'#10' UNIDAD_MEDIDA,'#10' CASE WHEN C' + + 'ANTIDAD = 0 THEN 0'#10' ELSE (IMPORTE_TOTAL / CANTIDAD) END AS IM' + + 'PORTE_UNIDAD,'#10' DESCUENTO, IMPORTE_PORTE,'#10' IMPORTE_TOTAL, V' + + 'ISIBLE, FECHA_ALTA, FECHA_MODIFICACION'#10' FROM'#10' PRESUPUESTOS_C' + + 'LIENTE_DETALLES'#10' WHERE {Where}'#10' AND (VISIBLE <> 0)'#10' AND (' + + 'ID_PRESUPUESTO = :ID_PRESUPUESTO)'#10' ORDER BY ID_PRESUPUESTO, POS' + + 'ICION'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_PRESUPUESTO' + TableField = 'ID_PRESUPUESTO' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'ID_ARTICULO' + TableField = 'ID_ARTICULO' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + end + item + DatasetField = 'CONCEPTO_RTF' + TableField = 'CONCEPTO_RTF' + end + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'UNIDAD_MEDIDA' + TableField = 'UNIDAD_MEDIDA' + end + item + DatasetField = 'IMPORTE_UNIDAD' + TableField = 'IMPORTE_UNIDAD' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'VISIBLE' + TableField = 'VISIBLE' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end> + end> + Name = 'Informe_Detalles' + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_PRESUPUESTO' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 32765 + end + item + Name = 'CONCEPTO_RTF' + DataType = datString + Size = 2000 + end + item + Name = 'CANTIDAD' + DataType = datCurrency + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + end + item + Name = 'DESCUENTO' + DataType = datFloat + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'VISIBLE' + DataType = datSmallInt + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + end> + ReadOnly = True + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 16 + end + object DataDictionary: TDADataDictionary + Fields = <> + Left = 46 + Top = 142 + end + object DABin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 80 + end + object tbl_Cabecera: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + Required = True + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'FECHA_PRESUPUESTO' + DataType = datDateTime + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'PORTADA' + DataType = datMemo + end + item + Name = 'MEMORIA' + DataType = datMemo + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + end + item + Name = 'DESCUENTO' + DataType = datFloat + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + end + item + Name = 'IVA' + DataType = datFloat + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'CLIENTE_FINAL' + DataType = datString + Size = 255 + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + end> + Params = < + item + Name = 'ID' + Value = '71' + ParamType = daptInput + end> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer + LogicalName = 'Informe_Cabecera' + IndexDefs = <> + Left = 168 + Top = 16 + end + object tbl_Detalles: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_PRESUPUESTO' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 32765 + end + item + Name = 'CONCEPTO_RTF' + DataType = datString + Size = 2000 + end + item + Name = 'CANTIDAD' + DataType = datInteger + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + end + item + Name = 'DESCUENTO' + DataType = datFloat + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'VISIBLE' + DataType = datSmallInt + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + end> + Params = < + item + Name = 'ID_PRESUPUESTO' + Value = '2' + ParamType = daptInput + end> + MasterParamsMappings.Strings = ( + 'ID_PRESUPUESTO=ID_PRESUPUESTO') + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer + LogicalName = 'Informe_Detalles' + IndexDefs = <> + Left = 264 + Top = 16 + end + object tbl_Empresa: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = < + item + Name = 'ID' + Value = '31' + ParamType = daptInput + end> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LogicalName = 'Empresa' + IndexDefs = <> + Left = 168 + Top = 80 + end +end diff --git a/Source/Modulos/Presupuestos de cliente/Reports/uRptWordPresupuestoCliente.pas b/Source/Modulos/Presupuestos de cliente/Reports/uRptWordPresupuestoCliente.pas new file mode 100644 index 0000000..914caf7 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Reports/uRptWordPresupuestoCliente.pas @@ -0,0 +1,568 @@ +unit uRptWordPresupuestoCliente; + +interface + +uses + SysUtils, Classes, AHWord97, IB, IBCustomDataSet, IBDatabase, + Word2000, + uDAInterfaces, uDADataStreamer, uDABin2DataStreamer, uDAClasses, + uDAScriptingProvider, uDADataTable, uDAMemDataTable; + +type + TCapitulo = record + Tipo : string; + Nombre : string; + Total : double; + end; + + TRptWordPresupuestoCliente = class(TDataModule) + DABin2DataStreamer: TDABin2DataStreamer; + tbl_Cabecera: TDAMemDataTable; + tbl_Detalles: TDAMemDataTable; + tbl_Empresa: TDAMemDataTable; + schReport: TDASchema; + DataDictionary: TDADataDictionary; + procedure DataModuleCreate(Sender: TObject); + private + FConnection: IDAConnection; + FImportes : Boolean; + FDesBonificacion : Variant; + FImpBonificacion : Double; + FPlantilla : string; + FWordApp : TWordApp; + FDocumento : TWordDoc; + FNumCapitulos : Integer; + FNumCapOpc : Integer; + FContadorCap : Integer; + FCodigoPresupuesto : string; + FNombreFichero : String; + ListaCapitulos : array[1..1000] of TCapitulo; + FVerSello: Integer; + procedure InsertarConceptos(Tabla : Table); + function Generar : Boolean; + function RellenarPortada : boolean; virtual; + function RellenarCabecera : boolean; virtual; + function RellenarInforme : boolean; virtual; + function RellenarResumen : boolean; virtual; + procedure _GenerarPresupuesto(const AID : String); + public + constructor Create (AOwner : TComponent); override; + destructor Destroy; override; + function Exportar(Codigo, Fichero : String; const VerSello: Integer): Boolean; + end; + + +implementation + +{$R *.dfm} + +uses + Windows, Variants, Dialogs, uDataModuleServer, uStringsUtils, uSistemaFunc, + srvEmpresas_Impl, uROTypes, uROClasses; + +const + rptInforme = 'Presupuesto.rdx'; + + +constructor TRptWordPresupuestoCliente.Create(AOwner: TComponent); +begin + inherited; + FDocumento := NIL; + FImportes := True; + FNumCapitulos := 0; + FVerSello:= 1; +end; + +procedure TRptWordPresupuestoCliente.DataModuleCreate(Sender: TObject); +begin + schReport.ConnectionManager := dmServer.ConnectionManager; + FConnection := dmServer.DarNuevaConexion; +end; + +destructor TRptWordPresupuestoCliente.Destroy; +begin + if FDocumento <> NIL then + FDocumento.Free; + FDocumento := NIL; + + inherited; +end; + +function TRptWordPresupuestoCliente.Exportar(Codigo, Fichero: String; const VerSello: Integer): Boolean; +begin + if EsCadenaVacia(Fichero) then + RaiseError('Falta indicar el fichero donde se exportar el listado.'); + + FNombreFichero := Fichero; + FCodigoPresupuesto := Codigo; + FVerSello := VerSello; + _GenerarPresupuesto(Codigo); + Result := True; +end; + +function TRptWordPresupuestoCliente.Generar : Boolean; +begin + FWordApp := TWordApp.Create (False, False); + with FWordApp do + begin + Visible := False; + ScreenUpdating := False; + end; + + FDocumento := TWordDoc.CreateNewDoc(FWordApp, FPlantilla); + FWordApp.SaveActiveDocAs(FNombreFichero); + + try + if not RellenarPortada then + RaiseError('Se producido un error al generar la portada del informe en MS Word.'); + + if not RellenarCabecera then + RaiseError('Se producido un error al generar la cabecera del informe en MS Word.'); + + if not RellenarInforme then + RaiseError('Se producido un error al generar el informe en MS Word.'); + + if (FNumCapitulos <> 0) and (FNumCapOpc < FNumCapitulos) then + begin + if not RellenarResumen then + RaiseError('Se producido un error al generar el resumen en MS Word.'); + end + else begin + FDocumento.Document.Tables.Item(FDocumento.Document.Tables.Count-1).Delete; + end; + + FWordApp.CloseApp(wdSaveChanges); + Result := True; + finally + FDocumento := NIL; + FWordApp := NIL; + end; +end; + + +procedure TRptWordPresupuestoCliente.InsertarConceptos(Tabla : Table); +var + numRows, numCols, mergeSplit, shiftCells : OleVariant; + iContador : Integer; + TotalConceptos : Double; + ACantidad: String; + AIndice: Integer; + AText : String; +begin + TotalConceptos := 0; + numRows := 2; + numCols := 1; + mergeSplit := False; + shiftCells := False; + iContador := 2; // Empezar en la 2 fila de celdas. La primera es la + // cabecera de la tabla. + + with Tabla, tbl_Detalles do + begin + while not EOF do + begin + if FieldByName('TIPO_DETALLE').AsString <> 'Concepto' then + Break; + // Partir la celda actual en 2 filas de 1 columna. + Rows.Item(iContador).Cells.Split (numRows, numCols, mergesplit); + Cell(iContador, 1).Range.Text := FieldByName('CONCEPTO').AsString; + + ACantidad := FloatToStr(FieldByName('CANTIDAD').AsFloat); + if ACantidad = '0' then + AText := '' + else begin + AIndice := Pos(',', ACantidad); + if AIndice > 0 then + AText := FormatFloat('#,0.00', FieldByName('CANTIDAD').AsFloat) + else + AText := FormatFloat('#,0.##', FieldByName('CANTIDAD').AsFloat); + end; + + Cell(iContador, 2).Range.Text := AText + ' ' + FieldByName('UNIDAD_MEDIDA').AsString; + + if FImportes and + (FieldByName('IMPORTE_UNIDAD').AsFloat <> 0) then + Cell(iContador, 3).Range.Text := FormatFloat(DISPLAY_EUROS2, FieldByName('IMPORTE_UNIDAD').AsFloat) + else + Cell(iContador, 3).Range.Text := ''; + + if FImportes and + (FieldByName('IMPORTE_TOTAL').AsFloat <> 0) then + Cell(iContador, 4).Range.Text := FormatFloat(DISPLAY_EUROS2, FieldByName('IMPORTE_TOTAL').AsFloat) + else + Cell(iContador, 4).Range.Text := ''; + + TotalConceptos := TotalConceptos + FieldByName('IMPORTE_TOTAL').AsFloat; + Next; + Inc (iContador); + end; + ListaCapitulos[FContadorCap].Total := TotalConceptos; + + // Borrar la fila vaca que sobra + Rows.Item(iContador).Cells.Delete(shiftCells); + if FImportes then + Cell(iContador, 1).Range.Text := 'Total: ' + FormatFloat(DISPLAY_EUROS2, TotalConceptos) + else + Cell(iContador, 1).Range.Text := ''; + AutoFitBehavior(wdAutoFitWindow); + end; + +end; + +function TRptWordPresupuestoCliente.RellenarCabecera: boolean; +var + NombreFichero, + Texto : String; +{ FicheroTemporal : String; + LinkToFile, SaveWithDocument, _Range : OleVariant; + Imagen : InlineShape; + ovRange : OleVariant; + Which, Name : OleVariant;} + What, Count : OleVariant; + ovBookMarkName : OleVariant; + TempRange : Word2000.Range; +begin + + //PARA DIBUJAR EL LOGOTIPO MULTIEMPRESA + { --------------------- PENDIENTE + if (EmpresaActiva.Logotipo <> Nil) then + begin + //Activamos cabecera segunda + What:=wdGoToSection; + Which:=wdGoToFirst; + Count:=2; + Name:=''; + FWordApp.Application.ActiveWindow.ActivePane.Selection.GoTo_ (What, Which, Count, Name); + FWordApp.Application.ActiveWindow.ActivePane.View.SeekView := wdSeekCurrentPageHeader; + LinkToFile := False; + SaveWithDocument := True; + _Range := EmptyParam; + FicheroTemporal := DarFicheroTemporal; + EmpresaActiva.Logotipo.SaveToFile (FicheroTemporal); + Imagen := FWordApp.Application.ActiveWindow.ActivePane.Selection.InlineShapes.AddPicture(FicheroTemporal, LinkToFile, SaveWithDocument, _Range); + + //Formateamos imagen + if ((Imagen.Get_Width > ANCHO_LOGO_INF)) then + begin + Imagen.Set_Height(((ANCHO_LOGO_INF * Imagen.Get_Height) /Imagen.Get_Width)); + Imagen.Set_Width(ANCHO_LOGO_INF); + end; + end; + -------------------------------------- } + + with FDocumento, tbl_Cabecera do + begin + if FieldByName('IMPORTE_BONIFICACION').AsFloat > 0 then + FDesBonificacion := FieldByName('DESCRIPCION_BONIFICACION').AsString + else + FDesBonificacion := Null; + FImpBonificacion := FieldByName('IMPORTE_BONIFICACION').AsFloat; + + ReplaceBookmark('CodigoPresupuestoCab', FieldByName('REFERENCIA').AsString); + ReplaceBookmark('FechaPresupuestoCab', FieldByName('FECHA_PRESUPUESTO').AsString); + ReplaceBookmark('NombreClienteCab', FieldByName('NOMBRE').AsString); + ReplaceBookmark('DireccionClienteCab', FieldByName('CALLE').AsString); + ReplaceBookmark('PoblacionClienteCab', + FieldByName('CODIGO_POSTAL').AsString + ' ' + + FieldByName('POBLACION').AsString + ' ' + FieldByName('PROVINCIA').AsString); + ReplaceBookmark('ContactoClienteCab', FieldByName('PERSONA_CONTACTO').AsString); + ReplaceBookmark('NombreClienteFirma', FieldByName('NOMBRE').AsString); + + //Solo para la empresa de tecsitel se debe elegir uno u otra firma + //esto es un poco parche pero bueno + if (tbl_Cabecera.FieldByName('ID_EMPRESA').AsInteger = 1) then + begin + if (FVerSello = 1) then + ReplaceBookmark('Firma2', '') + else + ReplaceBookmark('Firma1', ''); + end; + + if not EsCadenaVacia(FieldByName('MEMORIA').AsString) then + begin + Texto := FieldByName('MEMORIA').AsString; + NombreFichero := DarFicheroTemporal; + EscribirEnFichero(NombreFichero, Texto); + FWordApp.InsertFile(NombreFichero, 'TextoPresupuesto'); + SysUtils.DeleteFile(NombreFichero); + end + else begin + ovBookMarkName := 'TextoPresupuesto'; + TempRange := FWordApp.Application.ActiveDocument.Bookmarks.Item (ovBookMarkName).Range; + What := wdCharacter; + Count := 3; + TempRange.Delete(What, Count); + end; + + Texto := FieldByName('OBSERVACIONES').AsString; + NombreFichero := DarFicheroTemporal; + EscribirEnFichero(NombreFichero, Texto); + FWordApp.InsertFile(NombreFichero, 'Notas'); + SysUtils.DeleteFile(NombreFichero); + + ReplaceBookmark('NombreEmpresaPortada', tbl_Empresa.FieldByName('NOMBRE').AsString); + ReplaceBookmark('DireccionEmpresaPortada', + Format('%s. %s %s', [tbl_Empresa.FieldByName('CALLE').AsString, + tbl_Empresa.FieldByName('CODIGO_POSTAL').AsString, tbl_Empresa.FieldByName('POBLACION').AsString])); + ReplaceBookmark('TelefonoEmpresaPortada', tbl_Empresa.FieldByName('TELEFONO_1').AsString); + ReplaceBookmark('FaxEmpresaPortada', tbl_Empresa.FieldByName('FAX').AsString); + ReplaceBookmark('CorreoEmpresaPortada', tbl_Empresa.FieldByName('EMAIL_1').AsString); + + ReplaceBookmark('NombreEmpresa', tbl_Empresa.FieldByName('NOMBRE').AsString); + ReplaceBookmark('CifEmpresa', tbl_Empresa.FieldByName('NIF_CIF').AsString); + ReplaceBookmark('DireccionEmpresa', + Format('%s. %s %s', [tbl_Empresa.FieldByName('CALLE').AsString, + tbl_Empresa.FieldByName('CODIGO_POSTAL').AsString, tbl_Empresa.FieldByName('POBLACION').AsString])); + ReplaceBookmark('TelefonoEmpresa', tbl_Empresa.FieldByName('TELEFONO_1').AsString); + ReplaceBookmark('FaxEmpresa', tbl_Empresa.FieldByName('FAX').AsString); + ReplaceBookmark('CorreoEmpresa', tbl_Empresa.FieldByName('EMAIL_1').AsString); + + ReplaceBookmark('NombreEmpresaFirma', tbl_Empresa.FieldByName('NOMBRE').AsString); + + end; + Result := True; +end; + +function TRptWordPresupuestoCliente.RellenarInforme: boolean; +var + NombreCapitulo : String; + Estilo : OleVariant; +begin + FNumCapitulos := 0; + FContadorCap := 0; + FNumCapOpc := 0; + with FDocumento, tbl_Detalles do + begin + First; + + FieldByName('IMPORTE_UNIDAD').DisplayFormat := DISPLAY_EUROS2; + FieldByName('IMPORTE_TOTAL').DisplayFormat := DISPLAY_EUROS2; + + GoToSection(3); + + { Copiar la tabla de conceptos al portapapeles } + Document.Tables.Item(2).Select; + FWordApp.Application.Selection.Cut; + + while not Eof do + begin + if (FieldByName('TIPO_DETALLE').AsString = 'Subtotal') then + begin + Next; + Continue; + end; + + if (FieldByName('TIPO_DETALLE').AsString = 'Titulo') or + (FieldByName('TIPO_DETALLE').AsString = 'Titulo opcional') then + begin + NombreCapitulo := ''; + Estilo := 'TituloCapitulo'; + FWordApp.Application.Selection.Set_Style(Estilo); + + if (FieldByName('TIPO_DETALLE').AsString = 'Titulo') then + begin + NombreCapitulo := 'Captulo ' + IntToStr(FContadorCap + 1) + '. ' + FieldByName('CONCEPTO').AsString; + Inc(FContadorCap); + Inc(FNumCapitulos); + end + else begin + NombreCapitulo := 'Captulo opcional. ' + FieldByName('CONCEPTO').AsString; + Inc(FContadorCap); + Inc(FNumCapOpc); + Inc(FNumCapitulos); + end; + FWordApp.InsertText(NombreCapitulo); + FWordApp.InsertText(#13); + + ListaCapitulos[FNumCapitulos].Tipo := FieldByName('TIPO_DETALLE').AsString; + ListaCapitulos[FNumCapitulos].Nombre := NombreCapitulo; + { Pegar una tabla para rellenarla } + FWordApp.Application.Selection.Paste; + Next; + end + else begin + if FContadorCap = 0 then + begin + Inc(FContadorCap); // Se considera el conjunto de conceptos sueltos como un captulo. + Inc(FNumCapitulos); + { Pegar una tabla para rellenarla } + FWordApp.Application.Selection.Paste; + InsertarConceptos(Document.Tables.Item(Document.Tables.Count - 2)); + end + else + InsertarConceptos(Document.Tables.Item(Document.Tables.Count - 2)); + end; + end; + end; + Result := True; +end; + +function TRptWordPresupuestoCliente.RellenarPortada: boolean; +var + NombreFichero, + Texto : String; + {FicheroTemporal : string; + LinkToFile, SaveWithDocument, _Range : OleVariant; + Imagen : InlineShape;} +begin + + //PARA DIBUJAR EL LOGOTIPO MULTIEMPRESA + {--------------------------- PENDIENTE + if (EmpresaActiva.Logotipo <> Nil) then + begin + FWordApp.GotoBookmark ('LogotipoEmpresa'); + LinkToFile := False; + SaveWithDocument := True; + _Range := EmptyParam; + FicheroTemporal := DarFicheroTemporal; + EmpresaActiva.Logotipo.SaveToFile (FicheroTemporal); + Imagen := FWordApp.Application.ActiveWindow.ActivePane.Selection.InlineShapes.AddPicture(FicheroTemporal, LinkToFile, SaveWithDocument, _Range); + + //Formateamos imagen + if ((Imagen.Get_Width > ANCHO_LOGO_INF_PRE)) then + begin + Imagen.Set_Height(((ANCHO_LOGO_INF_PRE * Imagen.Get_Height) /Imagen.Get_Width)); + Imagen.Set_Width(ANCHO_LOGO_INF_PRE); + end; + end; + ---------------------------- } + + with FDocumento, tbl_Cabecera do + begin + ReplaceBookmark('CodigoPresupuestoPortada', FieldByName('REFERENCIA').AsString); + ReplaceBookmark('FechaPresupuestoPortada', FieldByName('FECHA_PRESUPUESTO').AsString); + ReplaceBookmark('NombreClientePortada', FieldByName('NOMBRE').AsString); + if not EsCadenaVacia(FieldByName('PERSONA_CONTACTO').AsString) then + ReplaceBookmark('PersonaContactoClientePortada', 'A la atencin de: ' + FieldByName('PERSONA_CONTACTO').AsString); + + Texto := FieldByName('PORTADA').AsString; + NombreFichero := DarFicheroTemporal; + EscribirEnFichero(NombreFichero, Texto); + FWordApp.InsertFile(NombreFichero, 'TextoPortada'); + SysUtils.DeleteFile(NombreFichero); + end; + Result := True; +end; + +function TRptWordPresupuestoCliente.RellenarResumen : boolean; +var + numRows, numCols, mergeSplit, shiftCells : OleVariant; + iAux : Integer; + iContador : Integer; + TotalConceptos : Double; + Tabla : Table; + Estilo : OleVariant; +begin + TotalConceptos := 0; + numRows := 2; + numCols := 1; + mergeSplit := False; + shiftCells := False; + iContador := 2; // Empezar en la 2 fila de celdas. La primera es la + // cabecera de la tabla. + + Estilo := 'TituloCapitulo'; + FWordApp.Application.Selection.Set_Style(Estilo); + FWordApp.InsertText('RESUMEN'); + + Tabla := FDocumento.Document.Tables.Item(FDocumento.Document.Tables.Count-1); + with Tabla do + begin + for iAux := 1 to FNumCapitulos do + begin + if (ListaCapitulos[iAux].Tipo = 'Titulo opcional') then + continue; // No sumamos los captulos opcionales. + + // Partir la celda actual en en 2 filas de 1 columna. + Rows.Item(iContador).Cells.Split (numRows, numCols, mergesplit); + + if EsCadenaVacia(ListaCapitulos[iAux].Nombre) then + Cell(iContador, 1).Range.Text := 'General' + else + Cell(iContador, 1).Range.Text := ListaCapitulos[iAux].Nombre; + if FImportes then + Cell(iContador, 2).Range.Text := FormatFloat(DISPLAY_EUROS2, ListaCapitulos[iAux].Total) + else + Cell(iContador, 2).Range.Text := ''; + TotalConceptos := TotalConceptos + ListaCapitulos[iAux].Total; + Inc (iContador); + end; + + // Borrar la fila vaca que sobra + Rows.Item(iContador).Cells.Delete(shiftCells); + if FImportes then + begin + //Comprobamos si el presupuesto tiene bonificacin + if VarIsNull(FDesBonificacion) then + begin + Cell(iContador, 1).Range.Text := 'Total: ' + FormatFloat(DISPLAY_EUROS2, TotalConceptos); + // Borrar filas de bonificacin + inc(iContador); + Rows.Item(iContador).Cells.Delete(shiftCells); + Rows.Item(iContador).Cells.Delete(shiftCells); + Rows.Item(iContador).Cells.Delete(shiftCells); + end + else + begin + //Elimino la ultima fila para enlazar la tabla las tres filas de bonificacin + Rows.Item(iContador).Cells.Delete(shiftCells); + with FDocumento do + begin + ReplaceBookmark('DescripcionImpTotal', 'Total'); + ReplaceBookmark('ImporteTotal', FormatFloat(DISPLAY_EUROS2, TotalConceptos)); + ReplaceBookmark('DescripcionBonificacion', FDesBonificacion); + ReplaceBookmark('ImporteBonificacion', FormatFloat(DISPLAY_EUROS2, ((-1)*FImpBonificacion))); + ReplaceBookmark('DescripcionImpFinal', 'Importe final'); + ReplaceBookmark('ImpFinal', FormatFloat(DISPLAY_EUROS2, TotalConceptos - FImpBonificacion)); + end; + end; + end + else + begin + Cell(iContador, 1).Range.Text := ''; + // Borrar filas de bonificacin + inc(iContador); + Rows.Item(iContador).Cells.Delete(shiftCells); + Rows.Item(iContador).Cells.Delete(shiftCells); + Rows.Item(iContador).Cells.Delete(shiftCells); + end; + + AutoFitBehavior(wdAutoFitWindow); + end; + Result := True; +end; + +procedure TRptWordPresupuestoCliente._GenerarPresupuesto(const AID: String); +var + ACopiaPlantilla: string; +begin + FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + try + tbl_Cabecera.ParamByName('ID').AsString := AID; + tbl_Detalles.ParamByName('ID_PRESUPUESTO').AsString := AID; + + tbl_Cabecera.Active := True; + tbl_Detalles.Active := True; + + FPlantilla := DarRutaInformes + tbl_Cabecera.FieldByName('ID_EMPRESA').AsString + '\' + rptInforme; + + FCodigoPresupuesto := AID; + + if RecuperarEmpresa(tbl_Cabecera.FieldByName('ID_EMPRESA').AsInteger, tbl_Empresa) then + begin + ACopiaPlantilla := DarFicheroTemporal; + CopiarFichero(FPlantilla, ACopiaPlantilla); + FPlantilla := ACopiaPlantilla; + try + Generar; + finally + SysUtils.DeleteFile(ACopiaPlantilla); + end; + end; + finally + FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + end; +end; + +end. + diff --git a/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.dcu b/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.dcu new file mode 100644 index 0000000..50bce36 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.dfm b/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.dfm new file mode 100644 index 0000000..f176f8e --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.dfm @@ -0,0 +1,1394 @@ +object srvPresupuestosCliente: TsrvPresupuestosCliente + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + ConnectionName = 'IBX' + ServiceSchema = schPresupuestosCliente + ServiceDataStreamer = Bin2DataStreamer + ExportedDataTables = <> + Height = 230 + Width = 346 + object schPresupuestosCliente: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DADataDictionary + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + Name = 'IBX' + SQL = + 'select ANO from'#10'(select distinct(substr(FECHA_PRESUPUESTO, 1,4))' + + ' as ANO'#10'from presupuestos_cliente'#10'order by 1 desc)'#10#10'UNION ALL'#10#10's' + + 'elect distinct '#39'Todos'#39' as ANO'#10'from empresas'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ANO' + TableField = 'ANO' + end> + end> + Name = 'ListaAnosPresupuestos' + Fields = < + item + Name = 'ANO' + DataType = datString + Size = 254 + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'V_PRESUPUESTOS_CLIENTE' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'FECHA_PRESUPUESTO' + TableField = 'FECHA_PRESUPUESTO' + end + item + DatasetField = 'FECHA_DECISION' + TableField = 'FECHA_DECISION' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'REFERENCIA_AUX' + TableField = 'REFERENCIA_AUX' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'REFERENCIA_CLIENTE' + TableField = 'REFERENCIA_CLIENTE' + end + item + DatasetField = 'CLIENTE_FINAL' + TableField = 'CLIENTE_FINAL' + end + item + DatasetField = 'PORTADA' + TableField = 'PORTADA' + end + item + DatasetField = 'MEMORIA' + TableField = 'MEMORIA' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'INCIDENCIAS' + TableField = 'INCIDENCIAS' + end + item + DatasetField = 'INCIDENCIAS_ACTIVAS' + TableField = 'INCIDENCIAS_ACTIVAS' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end + item + DatasetField = 'IMPORTE_NETO' + TableField = 'IMPORTE_NETO' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IMPORTE_DESCUENTO' + TableField = 'IMPORTE_DESCUENTO' + end + item + DatasetField = 'BASE_IMPONIBLE' + TableField = 'BASE_IMPONIBLE' + end + item + DatasetField = 'IVA' + TableField = 'IVA' + end + item + DatasetField = 'IMPORTE_IVA' + TableField = 'IMPORTE_IVA' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'ID_FORMA_PAGO' + TableField = 'ID_FORMA_PAGO' + end + item + DatasetField = 'ID_FACTURA' + TableField = 'ID_FACTURA' + end + item + DatasetField = 'FACTURA' + TableField = 'FACTURA' + end + item + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end + item + DatasetField = 'ID_DIRECCION' + TableField = 'ID_DIRECCION' + end + item + DatasetField = 'DESCRIPCION_BONIFICACION' + TableField = 'DESCRIPCION_BONIFICACION' + end + item + DatasetField = 'IMPORTE_BONIFICACION' + TableField = 'IMPORTE_BONIFICACION' + end> + end> + Name = 'PresupuestosCliente' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_PRESUPUESTOS_CLI_ID' + ServerAutoRefresh = True + DictionaryEntry = 'PresupuestosCliente_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'PresupuestosCliente_ID_EMPRESA' + end + item + Name = 'FECHA_PRESUPUESTO' + DataType = datDateTime + DictionaryEntry = 'PresupuestosCliente_FECHA_PRESUPUESTO' + end + item + Name = 'FECHA_DECISION' + DataType = datDateTime + DictionaryEntry = 'PresupuestosCliente_FECHA_DECISION' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'PresupuestosCliente_REFERENCIA' + end + item + Name = 'REFERENCIA_AUX' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + DictionaryEntry = 'PresupuestosCliente_SITUACION' + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + DictionaryEntry = 'PresupuestosCliente_ID_CLIENTE' + end + item + Name = 'ID_DIRECCION' + DataType = datInteger + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + ServerAutoRefresh = True + DictionaryEntry = 'PresupuestosCliente_NIF_CIF' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + ServerAutoRefresh = True + DictionaryEntry = 'PresupuestosCliente_NOMBRE' + end + item + Name = 'REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + ServerAutoRefresh = True + DictionaryEntry = 'PresupuestosCliente_REFERENCIA_CLIENTE' + end + item + Name = 'CLIENTE_FINAL' + DataType = datString + Size = 255 + DictionaryEntry = 'PresupuestosCliente_CLIENTE_FINAL' + end + item + Name = 'PORTADA' + DataType = datMemo + DictionaryEntry = 'PresupuestosCliente_PORTADA' + end + item + Name = 'MEMORIA' + DataType = datMemo + DictionaryEntry = 'PresupuestosCliente_MEMORIA' + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + DictionaryEntry = 'PresupuestosCliente_OBSERVACIONES' + end + item + Name = 'INCIDENCIAS' + DataType = datMemo + DictionaryEntry = 'PresupuestosCliente_INCIDENCIAS' + end + item + Name = 'INCIDENCIAS_ACTIVAS' + DataType = datInteger + DictionaryEntry = 'PresupuestosCliente_INCIDENCIAS_ACTIVAS' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'PresupuestosCliente_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'PresupuestosCliente_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'PresupuestosCliente_USUARIO' + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + DictionaryEntry = 'PresupuestosCliente_IMPORTE_NETO' + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + DictionaryEntry = 'PresupuestosCliente_IMPORTE_PORTE' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DictionaryEntry = 'PresupuestosCliente_DESCUENTO' + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + DictionaryEntry = 'PresupuestosCliente_IMPORTE_DESCUENTO' + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + DictionaryEntry = 'PresupuestosCliente_BASE_IMPONIBLE' + end + item + Name = 'IVA' + DataType = datFloat + DictionaryEntry = 'PresupuestosCliente_IVA' + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + DictionaryEntry = 'PresupuestosCliente_IMPORTE_IVA' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DictionaryEntry = 'PresupuestosCliente_IMPORTE_TOTAL' + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + DictionaryEntry = 'PresupuestosCliente_ID_FORMA_PAGO' + end + item + Name = 'ID_FACTURA' + DataType = datInteger + end + item + Name = 'FACTURA' + DataType = datString + Size = 255 + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + DictionaryEntry = 'PresupuestosCliente_PERSONA_CONTACTO' + end + item + Name = 'DESCRIPCION_BONIFICACION' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_BONIFICACION' + DataType = datCurrency + ServerAutoRefresh = True + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'PRESUPUESTOS_CLIENTE_DETALLES' + SQL = + 'SELECT'#10' PRESUPUESTOS_CLIENTE_DETALLES.ID, PRESUPUESTOS_CLIENT' + + 'E_DETALLES.ID_PRESUPUESTO,'#10' PRESUPUESTOS_CLIENTE_DETALLES.POS' + + 'ICION, PRESUPUESTOS_CLIENTE_DETALLES.TIPO_DETALLE,'#10' PRESUPUES' + + 'TOS_CLIENTE_DETALLES.CONCEPTO, PRESUPUESTOS_CLIENTE_DETALLES.CAN' + + 'TIDAD,'#10' PRESUPUESTOS_CLIENTE_DETALLES.UNIDAD_MEDIDA,'#10' PRES' + + 'UPUESTOS_CLIENTE_DETALLES.IMPORTE_UNIDAD, PRESUPUESTOS_CLIENTE_D' + + 'ETALLES.IMPORTE_TOTAL,'#10' PRESUPUESTOS_CLIENTE_DETALLES.VISIBLE' + + ','#10#10' PRESUPUESTOS_CLIENTE_DETALLES.ID_ARTICULO, PRESUPUESTOS_C' + + 'LIENTE_DETALLES.DESCUENTO,'#10' PRESUPUESTOS_CLIENTE_DETALLES.IMP' + + 'ORTE_PORTE, ARTICULOS.REFERENCIA,'#10' '#39#39' as REFERENCIA_PROVEEDOR' + + ' /*Es necesario para que no fallen los detalles porque los detal' + + 'les son comunes para la rama de cliente y de proveedor*/'#10#10'FROM P' + + 'RESUPUESTOS_CLIENTE_DETALLES'#10'LEFT JOIN ARTICULOS ON PRESUPUESTOS' + + '_CLIENTE_DETALLES.ID_ARTICULO = ARTICULOS.ID'#10'where {where}'#10'ORDER' + + ' BY POSICION;'#10#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_PRESUPUESTO' + TableField = 'ID_PRESUPUESTO' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + end + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'UNIDAD_MEDIDA' + TableField = 'UNIDAD_MEDIDA' + end + item + DatasetField = 'IMPORTE_UNIDAD' + TableField = 'IMPORTE_UNIDAD' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'VISIBLE' + TableField = 'VISIBLE' + end + item + DatasetField = 'ID_ARTICULO' + TableField = 'ID_ARTICULO' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end + item + DatasetField = 'REFERENCIA' + TableField = '' + SQLOrigin = 'REFERENCIA' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = '' + SQLOrigin = 'REFERENCIA_PROVEEDOR' + end> + end> + Name = 'PresupuestosCliente_Detalles' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_PRESUPUESTOS_CLI_DETALLE_ID' + ServerAutoRefresh = True + DictionaryEntry = 'PresupuestosCliente_Detalles_ID' + InPrimaryKey = True + end + item + Name = 'ID_PRESUPUESTO' + DataType = datInteger + DictionaryEntry = 'PresupuestosCliente_Detalles_ID_PRESUPUESTO' + end + item + Name = 'POSICION' + DataType = datInteger + DictionaryEntry = 'PresupuestosCliente_Detalles_POSICION' + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 25 + DictionaryEntry = 'PresupuestosCliente_Detalles_TIPO_DETALLE' + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + DictionaryEntry = 'PresupuestosCliente_Detalles_CONCEPTO' + end + item + Name = 'CANTIDAD' + DataType = datFloat + DictionaryEntry = 'PresupuestosCliente_Detalles_CANTIDAD' + end + item + Name = 'UNIDAD_MEDIDA' + DataType = datString + Size = 255 + DictionaryEntry = 'PresupuestosCliente_Detalles_UNIDAD_MEDIDA' + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + DictionaryEntry = 'PresupuestosCliente_Detalles_IMPORTE_UNIDAD' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DictionaryEntry = 'PresupuestosCliente_Detalles_IMPORTE_TOTAL' + end + item + Name = 'VISIBLE' + DataType = datInteger + DictionaryEntry = 'PresupuestosCliente_Detalles_VISIBLE' + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + DictionaryEntry = 'PresupuestosCliente_Detalles_ID_ARTICULO' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DictionaryEntry = 'PresupuestosCliente_Detalles_DESCUENTO' + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + DictionaryEntry = 'PresupuestosCliente_Detalles_IMPORTE_PORTE' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'PresupuestosCliente_Detalles_REFERENCIA' + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DictionaryEntry = 'PresupuestosCliente_Detalles_REFERENCIA_PROVEEDOR' + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_PRESUPUESTOS_CLI_ID' + Value = '' + end + item + Name = 'ID_EMPRESA' + Value = '' + end + item + Name = 'FECHA_PRESUPUESTO' + Value = '' + end + item + Name = 'FECHA_DECISION' + Value = '' + end + item + Name = 'REFERENCIA' + Value = '' + end + item + Name = 'REFERENCIA_AUX' + Value = '' + end + item + Name = 'SITUACION' + Value = '' + end + item + Name = 'ID_CLIENTE' + Value = '' + end + item + Name = 'ID_DIRECCION' + Value = '' + end + item + Name = 'REFERENCIA_CLIENTE' + Value = '' + end + item + Name = 'CLIENTE_FINAL' + Value = '' + end + item + Name = 'PORTADA' + Value = '' + end + item + Name = 'MEMORIA' + Value = '' + end + item + Name = 'OBSERVACIONES' + Value = '' + end + item + Name = 'INCIDENCIAS' + Value = '' + end + item + Name = 'INCIDENCIAS_ACTIVAS' + Value = '' + end + item + Name = 'USUARIO' + Value = '' + end + item + Name = 'IMPORTE_NETO' + Value = '' + end + item + Name = 'IMPORTE_PORTE' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'IMPORTE_DESCUENTO' + Value = '' + end + item + Name = 'BASE_IMPONIBLE' + Value = '' + end + item + Name = 'IVA' + Value = '' + end + item + Name = 'IMPORTE_IVA' + Value = '' + end + item + Name = 'IMPORTE_TOTAL' + Value = '' + end + item + Name = 'ID_FORMA_PAGO' + Value = '' + end + item + Name = 'ID_FACTURA' + Value = '' + end + item + Name = 'PERSONA_CONTACTO' + Value = '' + end + item + Name = 'DESCRIPCION_BONIFICACION' + Value = '' + end + item + Name = 'IMPORTE_BONIFICACION' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'PRESUPUESTOS_CLIENTE' + SQL = + 'INSERT'#10' INTO PRESUPUESTOS_CLIENTE'#10' (ID, ID_EMPRESA, FECHA_PR' + + 'ESUPUESTO, FECHA_DECISION, REFERENCIA,'#10' REFERENCIA_AUX, SITU' + + 'ACION, ID_CLIENTE, ID_DIRECCION, REFERENCIA_CLIENTE,'#10' CLIENT' + + 'E_FINAL, PORTADA, MEMORIA, OBSERVACIONES, INCIDENCIAS, '#10' INC' + + 'IDENCIAS_ACTIVAS, FECHA_ALTA,'#10' USUARIO, IMPORTE_NETO, IMPORT' + + 'E_PORTE, DESCUENTO, IMPORTE_DESCUENTO, '#10' BASE_IMPONIBLE, IVA' + + ', IMPORTE_IVA, IMPORTE_TOTAL, ID_FORMA_PAGO, ID_FACTURA,'#10' PE' + + 'RSONA_CONTACTO, DESCRIPCION_BONIFICACION, IMPORTE_BONIFICACION)'#10 + + ' VALUES'#10' (:ID, :ID_EMPRESA, :FECHA_PRESUPUESTO, :FECHA_DECIS' + + 'ION, :REFERENCIA,'#10' :REFERENCIA_AUX, :SITUACION, :ID_CLIENTE,' + + ' :ID_DIRECCION, :REFERENCIA_CLIENTE,'#10' :CLIENTE_FINAL, :PORTA' + + 'DA, :MEMORIA, :OBSERVACIONES, '#10' :INCIDENCIAS, :INCIDENCIAS_A' + + 'CTIVAS, CURRENT_TIMESTAMP,'#10' :USUARIO, :IMPORTE_NETO, :IMPORT' + + 'E_PORTE, :DESCUENTO, '#10' :IMPORTE_DESCUENTO, :BASE_IMPONIBLE, ' + + ':IVA, :IMPORTE_IVA, '#10' :IMPORTE_TOTAL, :ID_FORMA_PAGO, :ID_FA' + + 'CTURA, :PERSONA_CONTACTO,'#10' :DESCRIPCION_BONIFICACION, :IMPOR' + + 'TE_BONIFICACION)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_PresupuestosCliente' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datAutoInc + Value = '0' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'PRESUPUESTOS_CLIENTE' + SQL = + 'DELETE '#10' FROM'#10' PRESUPUESTOS_CLIENTE'#10' WHERE'#10' (ID = :OLD_I' + + 'D)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_PresupuestosCliente' + end + item + Params = < + item + Name = 'ID' + Value = '' + end + item + Name = 'ID_EMPRESA' + Value = '' + end + item + Name = 'FECHA_PRESUPUESTO' + Value = '' + end + item + Name = 'FECHA_DECISION' + Value = '' + end + item + Name = 'REFERENCIA' + Value = '' + end + item + Name = 'REFERENCIA_AUX' + Value = '' + end + item + Name = 'SITUACION' + Value = '' + end + item + Name = 'ID_CLIENTE' + Value = '' + end + item + Name = 'ID_DIRECCION' + Value = '' + end + item + Name = 'REFERENCIA_CLIENTE' + Value = '' + end + item + Name = 'CLIENTE_FINAL' + Value = '' + end + item + Name = 'PORTADA' + Value = '' + end + item + Name = 'MEMORIA' + Value = '' + end + item + Name = 'OBSERVACIONES' + Value = '' + end + item + Name = 'INCIDENCIAS' + Value = '' + end + item + Name = 'INCIDENCIAS_ACTIVAS' + Value = '' + end + item + Name = 'USUARIO' + Value = '' + end + item + Name = 'IMPORTE_NETO' + Value = '' + end + item + Name = 'IMPORTE_PORTE' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'IMPORTE_DESCUENTO' + Value = '' + end + item + Name = 'BASE_IMPONIBLE' + Value = '' + end + item + Name = 'IVA' + Value = '' + end + item + Name = 'IMPORTE_IVA' + Value = '' + end + item + Name = 'IMPORTE_TOTAL' + Value = '' + end + item + Name = 'ID_FORMA_PAGO' + Value = '' + end + item + Name = 'ID_FACTURA' + Value = '' + end + item + Name = 'PERSONA_CONTACTO' + Value = '' + end + item + Name = 'DESCRIPCION_BONIFICACION' + Value = '' + end + item + Name = 'IMPORTE_BONIFICACION' + Value = '' + end + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'PRESUPUESTOS_CLIENTE' + SQL = + 'UPDATE PRESUPUESTOS_CLIENTE'#10' SET '#10' ID = :ID,'#10' ID_EMPRESA ' + + '= :ID_EMPRESA, '#10' FECHA_PRESUPUESTO = :FECHA_PRESUPUESTO, '#10' ' + + ' FECHA_DECISION = :FECHA_DECISION, '#10' REFERENCIA = :REFERENCIA' + + ', '#10' REFERENCIA_AUX = :REFERENCIA_AUX,'#10' SITUACION = :SITUAC' + + 'ION, '#10' ID_CLIENTE = :ID_CLIENTE, '#10' ID_DIRECCION = :ID_DIRE' + + 'CCION,'#10' REFERENCIA_CLIENTE = :REFERENCIA_CLIENTE,'#10' CLIENTE' + + '_FINAL = :CLIENTE_FINAL, '#10' PORTADA = :PORTADA, '#10' MEMORIA =' + + ' :MEMORIA, '#10' OBSERVACIONES = :OBSERVACIONES, '#10' INCIDENCIAS' + + ' = :INCIDENCIAS, '#10' INCIDENCIAS_ACTIVAS = :INCIDENCIAS_ACTIVAS' + + ', '#10' FECHA_MODIFICACION = CURRENT_TIMESTAMP,'#10' USUARIO = :US' + + 'UARIO, '#10' IMPORTE_NETO = :IMPORTE_NETO, '#10' IMPORTE_PORTE = :' + + 'IMPORTE_PORTE, '#10' DESCUENTO = :DESCUENTO, '#10' IMPORTE_DESCUEN' + + 'TO = :IMPORTE_DESCUENTO, '#10' BASE_IMPONIBLE = :BASE_IMPONIBLE, ' + + #10' IVA = :IVA, '#10' IMPORTE_IVA = :IMPORTE_IVA, '#10' IMPORTE_T' + + 'OTAL = :IMPORTE_TOTAL, '#10' ID_FORMA_PAGO = :ID_FORMA_PAGO,'#10' ' + + 'ID_FACTURA = :ID_FACTURA,'#10' PERSONA_CONTACTO = :PERSONA_CONTAC' + + 'TO,'#10' DESCRIPCION_BONIFICACION = :DESCRIPCION_BONIFICACION,'#10' ' + + ' IMPORTE_BONIFICACION = :IMPORTE_BONIFICACION'#10' WHERE'#10' (ID =' + + ' :OLD_ID)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_PresupuestosCliente' + end + item + Params = < + item + Name = 'UNIDAD_MEDIDA' + Value = '' + end + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_PRESUPUESTOS_CLI_DETALLE_ID' + Value = '' + end + item + Name = 'ID_PRESUPUESTO' + Value = '' + end + item + Name = 'POSICION' + Value = '' + end + item + Name = 'TIPO_DETALLE' + Value = '' + end + item + Name = 'CONCEPTO' + Value = '' + end + item + Name = 'CANTIDAD' + Value = '' + end + item + Name = 'IMPORTE_UNIDAD' + Value = '' + end + item + Name = 'IMPORTE_TOTAL' + Value = '' + end + item + Name = 'VISIBLE' + Value = '' + end + item + Name = 'ID_ARTICULO' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'IMPORTE_PORTE' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'PRESUPUESTOS_CLIENTE_DETALLES' + SQL = + 'INSERT'#10' INTO PRESUPUESTOS_CLIENTE_DETALLES'#10' (ID, ID_PRESUPUE' + + 'STO, POSICION, TIPO_DETALLE, CONCEPTO, CANTIDAD,'#10' UNIDAD_MED' + + 'IDA,'#10' IMPORTE_UNIDAD, IMPORTE_TOTAL, VISIBLE, ID_ARTICULO, '#10 + + ' DESCUENTO, IMPORTE_PORTE, FECHA_ALTA)'#10' VALUES'#10' (:ID, :I' + + 'D_PRESUPUESTO, :POSICION, :TIPO_DETALLE, :CONCEPTO,'#10' :CANTID' + + 'AD, :UNIDAD_MEDIDA, :IMPORTE_UNIDAD, :IMPORTE_TOTAL, :VISIBLE,'#10' ' + + ' :ID_ARTICULO, :DESCUENTO, :IMPORTE_PORTE, CURRENT_TIMESTAMP)' + + #10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_PresupuestosCliente_Detalles' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datAutoInc + Value = '0' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'PRESUPUESTOS_CLIENTE_DETALLES' + SQL = + 'DELETE '#10' FROM'#10' PRESUPUESTOS_CLIENTE_DETALLES'#10' WHERE'#10' (ID' + + ' = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_PresupuestosCliente_Detalles' + end + item + Params = < + item + Name = 'UNIDAD_MEDIDA' + Value = '' + end + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_PRESUPUESTOS_CLI_DETALLE_ID' + Value = '' + end + item + Name = 'ID_PRESUPUESTO' + Value = '' + end + item + Name = 'POSICION' + Value = '' + end + item + Name = 'TIPO_DETALLE' + Value = '' + end + item + Name = 'CONCEPTO' + Value = '' + end + item + Name = 'CANTIDAD' + Value = '' + end + item + Name = 'IMPORTE_UNIDAD' + Value = '' + end + item + Name = 'IMPORTE_TOTAL' + Value = '' + end + item + Name = 'VISIBLE' + Value = '' + end + item + Name = 'ID_ARTICULO' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'IMPORTE_PORTE' + Value = '' + end + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'PRESUPUESTOS_CLIENTE_DETALLES' + SQL = + 'UPDATE PRESUPUESTOS_CLIENTE_DETALLES'#10' SET '#10' ID = :ID,'#10' ID' + + '_PRESUPUESTO = :ID_PRESUPUESTO, '#10' POSICION = :POSICION, '#10' ' + + 'TIPO_DETALLE = :TIPO_DETALLE, '#10' CONCEPTO = :CONCEPTO, '#10' CA' + + 'NTIDAD = :CANTIDAD, '#10' UNIDAD_MEDIDA = :UNIDAD_MEDIDA,'#10' IMP' + + 'ORTE_UNIDAD = :IMPORTE_UNIDAD, '#10' IMPORTE_TOTAL = :IMPORTE_TOT' + + 'AL, '#10' VISIBLE = :VISIBLE, '#10' ID_ARTICULO = :ID_ARTICULO, '#10' ' + + ' DESCUENTO = :DESCUENTO, '#10' IMPORTE_PORTE = :IMPORTE_PORTE,'#10 + + ' FECHA_MODIFICACION = CURRENT_TIMESTAMP'#10' WHERE'#10' (ID = :OL' + + 'D_ID)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_PresupuestosCliente_Detalles' + end> + RelationShips = < + item + Name = 'FK_PresupuestosCliente_Detalles' + MasterDatasetName = 'PresupuestosCliente' + MasterFields = 'ID' + DetailDatasetName = 'PresupuestosCliente_Detalles' + DetailFields = 'ID_PRESUPUESTO' + RelationshipType = rtForeignKey + end> + UpdateRules = < + item + Name = 'Insert PresupuestosCliente' + DoUpdate = False + DoDelete = False + DatasetName = 'PresupuestosCliente' + FailureBehavior = fbRaiseException + end + item + Name = 'Insert PresupuestosCliente_Detalles' + DoUpdate = False + DoDelete = False + DatasetName = 'PresupuestosCliente_Detalles' + FailureBehavior = fbRaiseException + end + item + Name = 'Update PresupuestosCliente' + DoInsert = False + DoDelete = False + DatasetName = 'PresupuestosCliente' + FailureBehavior = fbRaiseException + end + item + Name = 'Update PresupuestosCliente_Detalles' + DoInsert = False + DoDelete = False + DatasetName = 'PresupuestosCliente_Detalles' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete PresupuestosCliente_Detalles' + DoUpdate = False + DoInsert = False + DatasetName = 'PresupuestosCliente_Detalles' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete PresupuestosCliente' + DoUpdate = False + DoInsert = False + DatasetName = 'PresupuestosCliente' + FailureBehavior = fbRaiseException + end> + Version = 0 + Left = 48 + Top = 24 + end + object DADataDictionary: TDADataDictionary + Fields = < + item + Name = 'PresupuestosCliente_ID' + DataType = datAutoInc + GeneratorName = 'GEN_PRESUPUESTOS_CLI_ID' + Required = True + DisplayLabel = 'ID' + ServerAutoRefresh = True + end + item + Name = 'PresupuestosCliente_ID_EMPRESA' + DataType = datInteger + DisplayLabel = 'ID_EMPRESA' + end + item + Name = 'PresupuestosCliente_FECHA_PRESUPUESTO' + DataType = datDateTime + end + item + Name = 'PresupuestosCliente_FECHA_DECISION' + DataType = datDateTime + end + item + Name = 'PresupuestosCliente_REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + end + item + Name = 'PresupuestosCliente_SITUACION' + DataType = datString + Size = 255 + DisplayLabel = 'Situaci'#243'n' + end + item + Name = 'PresupuestosCliente_ID_CLIENTE' + DataType = datInteger + DisplayLabel = 'ID_CLIENTE' + end + item + Name = 'PresupuestosCliente_NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'PresupuestosCliente_NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'PresupuestosCliente_REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + DisplayLabel = 'PedidosCliente_REFERENCIA_CLIENTE' + end + item + Name = 'PresupuestosCliente_CLIENTE_FINAL' + DataType = datString + Size = 255 + end + item + Name = 'PresupuestosCliente_PORTADA' + DataType = datMemo + end + item + Name = 'PresupuestosCliente_MEMORIA' + DataType = datMemo + end + item + Name = 'PresupuestosCliente_OBSERVACIONES' + DataType = datMemo + DisplayLabel = 'Observaciones' + end + item + Name = 'PresupuestosCliente_INCIDENCIAS' + DataType = datMemo + DisplayLabel = 'INCIDENCIAS' + end + item + Name = 'PresupuestosCliente_INCIDENCIAS_ACTIVAS' + DataType = datInteger + DisplayLabel = 'INCIDENCIAS_ACTIVAS' + end + item + Name = 'PresupuestosCliente_FECHA_ALTA' + DataType = datDateTime + DisplayLabel = 'FECHA_ALTA' + end + item + Name = 'PresupuestosCliente_FECHA_MODIFICACION' + DataType = datDateTime + DisplayLabel = 'FECHA_MODIFICACION' + end + item + Name = 'PresupuestosCliente_USUARIO' + DataType = datString + Size = 20 + DisplayLabel = 'USUARIO' + end + item + Name = 'PresupuestosCliente_IMPORTE_NETO' + DataType = datCurrency + DisplayLabel = 'Importe neto' + Alignment = taRightJustify + end + item + Name = 'PresupuestosCliente_PERSONA_CONTACTO' + DataType = datString + Size = 255 + DisplayLabel = 'Persona de contacto' + end + item + Name = 'PresupuestosCliente_IMPORTE_PORTE' + DataType = datCurrency + DisplayLabel = 'Importe del porte' + Alignment = taRightJustify + end + item + Name = 'PresupuestosCliente_DESCUENTO' + DataType = datFloat + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + end + item + Name = 'PresupuestosCliente_IMPORTE_DESCUENTO' + DataType = datCurrency + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + end + item + Name = 'PresupuestosCliente_BASE_IMPONIBLE' + DataType = datCurrency + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + end + item + Name = 'PresupuestosCliente_IVA' + DataType = datFloat + DisplayLabel = 'IVA' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + end + item + Name = 'PresupuestosCliente_IMPORTE_IVA' + DataType = datCurrency + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + end + item + Name = 'PresupuestosCliente_IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'PresupuestosCliente_ID_FORMA_PAGO' + DataType = datInteger + DisplayLabel = 'ID_FORMA_PAGO' + end + item + Name = 'PresupuestosCliente_Detalles_ID' + DataType = datAutoInc + GeneratorName = 'GEN_PRESUPUESTOS_CLI_DETALLE_ID' + Required = True + DisplayLabel = 'ID' + ServerAutoRefresh = True + end + item + Name = 'PresupuestosCliente_Detalles_ID_PRESUPUESTO' + DataType = datInteger + Required = True + end + item + Name = 'PresupuestosCliente_Detalles_POSICION' + DataType = datInteger + DisplayLabel = 'POSICION' + end + item + Name = 'PresupuestosCliente_Detalles_TIPO_DETALLE' + DataType = datString + Size = 25 + DisplayLabel = 'TIPO_DETALLE' + end + item + Name = 'PresupuestosCliente_Detalles_CONCEPTO' + DataType = datString + Size = 2000 + DisplayLabel = 'CONCEPTO' + end + item + Name = 'PresupuestosCliente_Detalles_CANTIDAD' + DataType = datFloat + DisplayLabel = 'CANTIDAD' + Alignment = taRightJustify + end + item + Name = 'PresupuestosCliente_Detalles_IMPORTE_UNIDAD' + DataType = datCurrency + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + end + item + Name = 'PresupuestosCliente_Detalles_IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'PresupuestosCliente_Detalles_VISIBLE' + DataType = datInteger + DisplayLabel = 'VISIBLE' + end + item + Name = 'PresupuestosCliente_Detalles_ID_ARTICULO' + DataType = datInteger + DisplayLabel = 'ID_ARTICULO' + end + item + Name = 'PresupuestosCliente_Detalles_DESCUENTO' + DataType = datFloat + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + end + item + Name = 'PresupuestosCliente_Detalles_IMPORTE_PORTE' + DataType = datCurrency + DisplayLabel = 'Importe porte' + Alignment = taRightJustify + end + item + Name = 'PresupuestosCliente_Detalles_REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'PresupuestosCliente_Detalles_REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + end + item + Name = 'PresupuestosCliente_Detalles_UNIDAD_MEDIDA' + DataType = datString + Size = 255 + DisplayLabel = 'Unidad de medida' + end> + Left = 48 + Top = 152 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 88 + end + object bpPresupuestosCliente: TDABusinessProcessor + Schema = schPresupuestosCliente + InsertCommandName = 'Insert_PresupuestosCliente' + DeleteCommandName = 'Delete_PresupuestosCliente' + UpdateCommandName = 'Update_PresupuestosCliente' + ReferencedDataset = 'PresupuestosCliente' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 232 + Top = 24 + end + object bpPresupuestosClienteDetalles: TDABusinessProcessor + Schema = schPresupuestosCliente + InsertCommandName = 'Insert_PresupuestosCliente_Detalles' + DeleteCommandName = 'Delete_PresupuestosCliente_Detalles' + UpdateCommandName = 'Update_PresupuestosCliente_Detalles' + ReferencedDataset = 'PresupuestosCliente_Detalles' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 232 + Top = 96 + end +end diff --git a/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.pas b/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.pas new file mode 100644 index 0000000..052162e --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.pas @@ -0,0 +1,157 @@ +unit srvPresupuestosCliente_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} uDABusinessProcessor, uDABin2DataStreamer, uDADataStreamer, + uDAScriptingProvider, uDAClasses, + FactuGES_Intf, uDAInterfaces; + +type + { TsrvPresupuestosCliente } + TsrvPresupuestosCliente = class(TDataAbstractService, IsrvPresupuestosCliente) + Bin2DataStreamer: TDABin2DataStreamer; + bpPresupuestosCliente: TDABusinessProcessor; + bpPresupuestosClienteDetalles: TDABusinessProcessor; + schPresupuestosCliente: TDASchema; + DADataDictionary: TDADataDictionary; + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; + var aConnectionName: string); + procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; + const IncludeSchema: Boolean; const MaxRecords: Integer); + procedure DARemoteServiceCreate(Sender: TObject); + protected + { IsrvPresupuestosCliente methods } + function GenerarInforme(const ListaID: TIntegerArray; const VerSello: Integer): Binary; + function GenerarInformeEnWord(const ID: Integer; const VerSello: Integer): Binary; + function GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerSello: Integer): Binary; + function GenerarCertificadoTrabajosEnWord(const ID: Integer): Binary; + end; + +implementation + +{$R *.dfm} +uses + Dialogs, uSistemaFunc, uROClasses, + {Generated:} FactuGES_Invk, uDataModuleServer, uDatabaseUtils, + schPresupuestosClienteClient_Intf, uRestriccionesUsuarioUtils, + uRptPresupuestosCliente_Server, + uBizPresupuestosClienteServer, uRptWordPresupuestoCliente, + uRptWordCertificadoTrabajo_Server; + +procedure Create_srvPresupuestosCliente(out anInstance : IUnknown); +begin + anInstance := TsrvPresupuestosCliente.Create(NIL); +end; + +{ srvPresupuestosCliente } + +procedure TsrvPresupuestosCliente.DARemoteServiceBeforeGetDatasetData( + const Dataset: IDADataset; const IncludeSchema: Boolean; + const MaxRecords: Integer); +begin + if DataSet.Name = nme_PresupuestosCliente then + begin + { Aqu se asegura que el usuario slo accede a presupuestos + de las empresas a las que tiene permiso para acceder + filtrando DataSet por ID_EMPRESA. } + FiltrarAccesoUsuario(Session, Connection, schPresupuestosCliente, DataSet, fld_PresupuestosClienteID_EMPRESA); + end; +end; + +procedure TsrvPresupuestosCliente.DARemoteServiceCreate(Sender: TObject); +begin + //SessionManager := dmServer.SessionManager; + bpPresupuestosCliente.BusinessRulesID := BIZ_SERVER_PRESUPUESTOS_CLIENTE; +end; + +procedure TsrvPresupuestosCliente.DataAbstractServiceBeforeAcquireConnection(aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +function TsrvPresupuestosCliente.GenerarCertificadoTrabajosEnWord( + const ID: Integer): Binary; +var + AReportGenerator : TRptWordCertificadoTrabajo; + AFicheroTMP : TFileName; +begin + Result := NIL; + AFicheroTMP := DarFicheroTemporal; + AReportGenerator := TRptWordCertificadoTrabajo.Create(nil); + try + if AReportGenerator.Exportar(ID, AFicheroTMP) then + begin + Result := Binary.Create; + Result.LoadFromFile(AFicheroTMP); + end; + finally + FreeAndNIL(AReportGenerator); + end; +end; + +function TsrvPresupuestosCliente.GenerarInforme(const ListaID: TIntegerArray; const VerSello: Integer): Binary; +var + AReportGenerator : TRptPresupuestosCliente; +begin + AReportGenerator := TRptPresupuestosCliente.Create(nil); + try + Result := AReportGenerator.GenerarPresupuesto(ListaID, VerSello); + finally + FreeAndNIL(AReportGenerator); + end; +end; + +function TsrvPresupuestosCliente.GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerSello: Integer): Binary; +var + AReportGenerator : TRptPresupuestosCliente; +begin + AReportGenerator := TRptPresupuestosCliente.Create(nil); + try + Result := AReportGenerator.GenerarPresupuestoEnPDF(ListaID, VerSello); + finally + FreeAndNIL(AReportGenerator); + end; +end; + +function TsrvPresupuestosCliente.GenerarInformeEnWord(const ID: Integer; const VerSello: Integer): Binary; +var + AReportGenerator : TRptWordPresupuestoCliente; + AFicheroTMP : TFileName; +begin + Result := NIL; + AFicheroTMP := DarFicheroTemporal; + AReportGenerator := TRptWordPresupuestoCliente.Create(nil); + try + try + if AReportGenerator.Exportar(IntToStr(ID), AFicheroTMP, VerSello) then + begin + Result := Binary.Create; + Result.LoadFromFile(AFicheroTMP); + end; + except + on E: Exception do + RaiseError(E.Message); + end; + finally + FreeAndNIL(AReportGenerator); + end; +end; + +initialization + TROClassFactory.Create('srvPresupuestosCliente', Create_srvPresupuestosCliente, TsrvPresupuestosCliente_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Test/Presupuestos_Test.bdsproj b/Source/Modulos/Presupuestos de cliente/Test/Presupuestos_Test.bdsproj new file mode 100644 index 0000000..c5dacc4 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Test/Presupuestos_Test.bdsproj @@ -0,0 +1,496 @@ + + + + + + + + + + + + Presupuestos_Test.dpr + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + ..\..\..\Output\Cliente + .\ + + ..\..\Lib + ..\..\..\Lib;..\..\Lib + DataAbstract_D10;base;GUIBase;ClassRegistry;Empresas_controller;Presupuestos_model;presupuestos_data;presupuestos_controller;presupuestos_view;presupuestos_plugin + _CONSOLE_TESTRUNNER;EUREKALOG;EUREKALOG_VER5 + + True + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + Presupuestos_Test + + + + Presupuestos_Test + 1.0.0.0 + + + + + DUnit / Delphi Win32 + GUI + + + diff --git a/Source/Modulos/Presupuestos de cliente/Test/Presupuestos_Test.dpr b/Source/Modulos/Presupuestos de cliente/Test/Presupuestos_Test.dpr new file mode 100644 index 0000000..5b59687 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Test/Presupuestos_Test.dpr @@ -0,0 +1,40 @@ +program Presupuestos_Test; +{ + + Delphi DUnit Test Project + ------------------------- + This project contains the DUnit test framework and the GUI/Console test runners. + Add "CONSOLE_TESTRUNNER" to the conditional defines entry in the project options + to use the console test runner. Otherwise the GUI test runner will be used by + default. + +} + +{$IFDEF CONSOLE_TESTRUNNER} +{$APPTYPE CONSOLE} +{$ENDIF} + +uses + ExceptionLog, + Forms, + TestFramework, + GUITestRunner, + TextTestRunner, + uPresupuestosViewRegister, + uContactosViewRegister, + uPluginPresupuestos_Test in 'uPluginPresupuestos_Test.pas', + uHostMainForm in 'uHostMainForm.pas' {HostMainForm}, + uPresupuestosController_Test in 'uPresupuestosController_Test.pas', + uDataModulePresupuestos_Test in 'uDataModulePresupuestos_Test.pas'; + +{$R *.RES} + +begin + Application.Initialize; + Application.CreateForm(THostMainForm, HostMainForm); + uPresupuestosViewRegister.RegisterViews; + uContactosViewRegister.RegisterViews; + Application.Run; + Application.Terminate; +end. + diff --git a/Source/Modulos/Presupuestos de cliente/Test/Presupuestos_Test.res b/Source/Modulos/Presupuestos de cliente/Test/Presupuestos_Test.res new file mode 100644 index 0000000..37a3dbd Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Test/Presupuestos_Test.res differ diff --git a/Source/Modulos/Presupuestos de cliente/Test/uDataModulePresupuestos_Test.pas b/Source/Modulos/Presupuestos de cliente/Test/uDataModulePresupuestos_Test.pas new file mode 100644 index 0000000..b054a7c --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Test/uDataModulePresupuestos_Test.pas @@ -0,0 +1,98 @@ +unit uDataModulePresupuestos_Test; +{ + + Delphi DUnit Test Case + ---------------------- + This unit contains a skeleton test case class generated by the Test Case Wizard. + Modify the generated code to correctly setup and call the methods from the unit + being tested. + +} + +interface + +uses + TestFramework, uROBinMessage, uROServiceComponent, uDAClientDataModule, + uDACDSDataTable, uDADataTable, uBizDetallesPresupuesto, uBizPresupuestos, Classes, DB, + uDAScriptingProvider, SysUtils, uIDataModulePresupuestos, uROWinInetHttpChannel, + uROClient, uDABINAdapter, uRORemoteService, DBClient, uDataModulePresupuestos; +type + // Test methods for class TDataModulePresupuestos + + TestTDataModulePresupuestos = class(TTestCase) + strict private + FDataModulePresupuestos: TDataModulePresupuestos; + public + procedure SetUp; override; + procedure TearDown; override; + published + procedure TestDAClientDataModuleCreate; + procedure Test_CloneDataTable; + procedure TestGetDetalles; + procedure TestGetItems; + procedure TestGetNextID; + end; + +implementation + +procedure TestTDataModulePresupuestos.SetUp; +begin + FDataModulePresupuestos := TDataModulePresupuestos.Create(Nil); +end; + +procedure TestTDataModulePresupuestos.TearDown; +begin + FDataModulePresupuestos.Free; + FDataModulePresupuestos := nil; +end; + +procedure TestTDataModulePresupuestos.TestDAClientDataModuleCreate; +var + Sender: TObject; +begin + // TODO: Setup method call parameters + FDataModulePresupuestos.DAClientDataModuleCreate(Sender); + // TODO: Validate method results +end; + +procedure TestTDataModulePresupuestos.Test_CloneDataTable; +var + ReturnValue: TDACDSDataTable; + ADataTable: TDACDSDataTable; +begin + // TODO: Setup method call parameters + ReturnValue := FDataModulePresupuestos._CloneDataTable(ADataTable); + // TODO: Validate method results +end; + +procedure TestTDataModulePresupuestos.TestGetDetalles; +var + ReturnValue: IBizDetallesPresupuesto; +begin +// ReturnValue := FDataModulePresupuestos.GetDetalles; + // TODO: Validate method results +end; + +procedure TestTDataModulePresupuestos.TestGetItems; +var + ReturnValue: IBizPresupuesto; +begin + ReturnValue := FDataModulePresupuestos.GetItems; + // TODO: Validate method results +end; + +procedure TestTDataModulePresupuestos.TestGetNextID; +var + ReturnValue: Integer; + DataSetName: string; +begin + // TODO: Setup method call parameters + ReturnValue := FDataModulePresupuestos.GetNextID(DataSetName); + // TODO: Validate method results +end; + +initialization + // Register any test cases with the test runner + RegisterTest(TestTDataModulePresupuestos.Suite); +end. + diff --git a/Source/Modulos/Presupuestos de cliente/Test/uHostMainForm.dfm b/Source/Modulos/Presupuestos de cliente/Test/uHostMainForm.dfm new file mode 100644 index 0000000..1de986c --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Test/uHostMainForm.dfm @@ -0,0 +1,28 @@ +object HostMainForm: THostMainForm + Left = 0 + Top = 0 + Caption = 'HostMainForm' + ClientHeight = 598 + ClientWidth = 690 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnCloseQuery = FormCloseQuery + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 690 + Height = 598 + Align = alClient + BevelOuter = bvNone + TabOrder = 0 + end +end diff --git a/Source/Modulos/Presupuestos de cliente/Test/uHostMainForm.pas b/Source/Modulos/Presupuestos de cliente/Test/uHostMainForm.pas new file mode 100644 index 0000000..50f4b46 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Test/uHostMainForm.pas @@ -0,0 +1,116 @@ +unit uHostMainForm; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uGUIBase, ExtCtrls, uCustomEditor, cxControls; + +type + THostMainForm = class(TForm, IHostForm) + Panel1: TPanel; + procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); + procedure FormShow(Sender: TObject); + protected + FContenido : TCustomEditor; + function GetWorkPanel: TWinControl; + procedure OnWorkPanelChanged(AEditor : ICustomEditor); + procedure ShowEmbedded(AEditor : ICustomEditor); + procedure ReleaseEmbedded; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + property WorkPanel: TWinControl read GetWorkPanel; + end; + +var + HostMainForm: THostMainForm; + +implementation + +{$R *.dfm} + +uses + TestFramework, GUITestRunner, TextTestRunner; + + +{ TForm1 } + +constructor THostMainForm.Create(AOwner: TComponent); +begin + inherited; + FContenido := NIL; +end; + +destructor THostMainForm.Destroy; +begin + ReleaseEmbedded; + inherited; +end; + +procedure THostMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean); +begin + CanClose := True; + if Assigned(FContenido) then + CanClose := FContenido.CloseQuery; +end; + +procedure THostMainForm.FormShow(Sender: TObject); +begin + if IsConsole then + TextTestRunner.RunRegisteredTests + else + GUITestRunner.RunRegisteredTestsModeless; + Self.SendToBack; +end; + +function THostMainForm.GetWorkPanel: TWinControl; +begin + Result := Panel1; +end; + +procedure THostMainForm.OnWorkPanelChanged(AEditor: ICustomEditor); +begin + // +end; + +procedure THostMainForm.ReleaseEmbedded; +begin + if Assigned(FContenido) then + FContenido.Release; + Application.ProcessMessages; +end; + +procedure THostMainForm.ShowEmbedded(AEditor: ICustomEditor); +begin + if Assigned(FContenido) then + if not FContenido.CloseQuery then + begin + AEditor.Release; + AEditor := NIL; + Exit; + end; + + ShowHourglassCursor; + LockWindowUpdate(Handle); + try + FContenido := AEditor.GetInstance as TCustomEditor; + with (FContenido) do + begin + Visible := False; + BorderIcons := []; + BorderStyle := bsNone; + Parent := WorkPanel; + FContenido.Show; + Align := alClient; + FContenido.SetFocus; + end; + finally + Application.ProcessMessages; + LockWindowUpdate(0); + HideHourglassCursor; + end; + OnWorkPanelChanged(FContenido); +end; + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Test/uPluginPresupuestos_Test.pas b/Source/Modulos/Presupuestos de cliente/Test/uPluginPresupuestos_Test.pas new file mode 100644 index 0000000..e8df46e --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Test/uPluginPresupuestos_Test.pas @@ -0,0 +1,56 @@ +unit uPluginPresupuestos_Test; +{ + + Delphi DUnit Test Case + ---------------------- + This unit contains a skeleton test case class generated by the Test Case Wizard. + Modify the generated code to correctly setup and call the methods from the unit + being tested. + +} + +interface + +uses + TestFramework, ActnList, uPluginPresupuestos, Classes, ImgList, uInterfaces, + uModuleController, uHostManager, PngImageList, Controls, Menus; +type + // Test methods for class TPluginPresupuestos + + TestTPluginPresupuestos = class(TTestCase) + strict private + FPluginPresupuestos: TPluginPresupuestos; + public + procedure SetUp; override; + procedure TearDown; override; + published + procedure TestactPresupuestosExecute; + end; + +implementation + +procedure TestTPluginPresupuestos.SetUp; +begin + FPluginPresupuestos := TPluginPresupuestos.Create(Nil); +end; + +procedure TestTPluginPresupuestos.TearDown; +begin + FPluginPresupuestos.Free; + FPluginPresupuestos := nil; +end; + +procedure TestTPluginPresupuestos.TestactPresupuestosExecute; +var + Sender: TObject; +begin + // TODO: Setup method call parameters +// FPluginPresupuestos.actPresupuestosExecute(Sender); + // TODO: Validate method results +end; + +initialization + // Register any test cases with the test runner + RegisterTest(TestTPluginPresupuestos.Suite); +end. + diff --git a/Source/Modulos/Presupuestos de cliente/Test/uPresupuestosController_Test.pas b/Source/Modulos/Presupuestos de cliente/Test/uPresupuestosController_Test.pas new file mode 100644 index 0000000..e5e483c --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Test/uPresupuestosController_Test.pas @@ -0,0 +1,85 @@ +unit uPresupuestosController_Test; +{ + + Delphi DUnit Test Case + ---------------------- + This unit contains a skeleton test case class generated by the Test Case Wizard. + Modify the generated code to correctly setup and call the methods from the unit + being tested. + +} + +interface + +uses + TestFramework, uBizPresupuestos, Classes, Contnrs, Windows, + Forms, SysUtils, Controls, uBizDetallesPresupuesto, uIDataModulePresupuestos, + uPresupuestosController; +type + // Test methods for class TPresupuestosController + + TestTPresupuestosController = class(TTestCase) + strict private + FPresupuestosController : IPresupuestosController; + public + procedure SetUp; override; + procedure TearDown; override; + published + procedure TestBuscarTodos; + procedure TestVerTodos; + procedure hola; + end; + +var + FPresupuestosController: IPresupuestosController; + +implementation + +uses dialogs; + + +procedure TestTPresupuestosController.hola; +begin + // +end; + +procedure TestTPresupuestosController.SetUp; +begin + FPresupuestosController := TPresupuestosController.Create; +end; + +procedure TestTPresupuestosController.TearDown; +begin + FPresupuestosController := Nil; +end; + +procedure TestTPresupuestosController.TestBuscarTodos; +var + ReturnValue: IBizPresupuesto; +begin + ReturnValue := FPresupuestosController.BuscarTodos; + + ReturnValue.DataTable.Open; + showmessage(IntToStr(ReturnValue.DataTable.RecordCount)); +end; + +procedure TestTPresupuestosController.TestVerTodos; +var + APresupuestos: IBizPresupuesto; +begin + APresupuestos := FPresupuestosController.BuscarTodos; + APresupuestos.DataTable.Open; + // TODO: Setup method call parameters + FPresupuestosController.VerTodos(APresupuestos); + // TODO: Validate method results +end; + +initialization + // Register any test cases with the test runner + RegisterTest(TestTPresupuestosController.Suite); + +finalization + + +end. + diff --git a/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.dcu b/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.dcu new file mode 100644 index 0000000..f1d89a6 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.dpk b/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.dpk new file mode 100644 index 0000000..e1cecf8 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.dpk @@ -0,0 +1,75 @@ +package PresupuestosCliente_view; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + Base, + GUIBase, + PresupuestosCliente_model, + PresupuestosCliente_controller, + Articulos_view, + PreCli_AlbCli_relation, + PreCli_FacCli_relation, + GestorInformes_controller, + vcl, + rtl, + dbrtl, + DataAbstract_Core_D11, + vcldb, + dsnap, + adortl, + RemObjects_Core_D11, + cxLibraryD11, + dxThemeD11, + dxGDIPlusD11, + cxEditorsD11, + cxDataD11, + vcljpg, + dxLayoutControlD11, + dxComnD11, + dxCoreD11, + vclx; + +contains + uPresupuestosClienteViewRegister in 'uPresupuestosClienteViewRegister.pas', + uViewPresupuestosCliente in 'uViewPresupuestosCliente.pas' {frViewPresupuestosCliente: TFrame}, + uViewPresupuestoCliente in 'uViewPresupuestoCliente.pas' {frViewPresupuestoCliente: TFrame}, + uEditorPresupuestosCliente in 'uEditorPresupuestosCliente.pas' {fEditorPresupuestosCliente: TfEditorPedidoCliente}, + uEditorPresupuestoCliente in 'uEditorPresupuestoCliente.pas' {fEditorPresupuestoCliente: TfEditorPedidoCliente}, + uViewDetallesPresupuestoCliente in 'uViewDetallesPresupuestoCliente.pas' {frViewDetallesPresupuestoCliente: TFrame}, + uEditorElegirPresupuestosCliente in 'uEditorElegirPresupuestosCliente.pas' {fEditorElegirPresupuestosCliente: TfEditorElegirPedidosCliente}, + uViewElegirArticulosPresupuestosCliente in 'uViewElegirArticulosPresupuestosCliente.pas' {frViewElegirArticulosPresupuestosCliente: TFrame}, + uEditorElegirArticulosPresupuestoCliente in 'uEditorElegirArticulosPresupuestoCliente.pas' {fEditorElegirArticulosPresupuestoCliente: TfEditorElegirArticulosPedidoCliente}, + uEditorPresupuestosClienteReport in 'uEditorPresupuestosClienteReport.pas' {fEditorPresupuestosClientePreview: TfEditorPedidosClientePreview}, + uViewDireccionEntregaPresupuestoCliente in 'uViewDireccionEntregaPresupuestoCliente.pas' {frViewDireccionEntregaPresupuestoCliente: TFrame}, + uEditorFechaDecision in 'uEditorFechaDecision.pas' {fEditorFechaDecision: T}, + uViewDocumentosPresupuestoCliente in 'uViewDocumentosPresupuestoCliente.pas' {frViewDocumentosPresupuestoCliente: TFrame}, + uViewDatosYSeleccionClientePresupuesto in 'uViewDatosYSeleccionClientePresupuesto.pas' {frViewDatosYSeleccionClientePresupuesto: TFrame}, + uViewTotalesPresupuesto in 'uViewTotalesPresupuesto.pas' {frViewTotalesPresupuesto: TFrame}, + uEditorVariarPrecios in 'uEditorVariarPrecios.pas' {fEditorVariarPrecios}, + uDialogListaPresupuestosEnvioEMail in 'uDialogListaPresupuestosEnvioEMail.pas' {fDialogListaPresupuestosEnvioEMail}, + uDialogOpcionesImpresionPresupuestosCliente in 'uDialogOpcionesImpresionPresupuestosCliente.pas' {fDialogOpcionesImpresionPresupuestosCliente}; + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.dproj b/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.dproj new file mode 100644 index 0000000..cc1623c --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.dproj @@ -0,0 +1,626 @@ + + + + {9e558626-cf49-4cff-a178-e12c186758ac} + PresupuestosCliente_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\PresupuestosCliente_view.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0PresupuestosCliente_view.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + + + +
fDialogListaPresupuestosEnvioEMail
+
+ + +
fEditorElegirArticulosPresupuestoCliente
+ TfEditorElegirArticulosPedidoCliente +
+ +
fEditorElegirPresupuestosCliente
+ TfEditorElegirPedidosCliente +
+ +
fEditorFechaDecision
+ T +
+ +
fEditorPresupuestoCliente
+ TfEditorPedidoCliente +
+ +
fEditorPresupuestosCliente
+ TfEditorPedidoCliente +
+ +
fEditorPresupuestosClientePreview
+ TfEditorPedidosClientePreview +
+ +
fEditorVariarPrecios
+
+ + +
frViewDatosYSeleccionClientePresupuesto
+ TFrame +
+ +
frViewDetallesPresupuestoCliente
+ TFrame +
+ +
frViewDireccionEntregaPresupuestoCliente
+ TFrame +
+ +
frViewDocumentosPresupuestoCliente
+ TFrame +
+ +
frViewElegirArticulosPresupuestosCliente
+ TFrame +
+ +
frViewPresupuestoCliente
+ TFrame +
+ +
frViewPresupuestosCliente
+ TFrame +
+ +
frViewTotalesPresupuesto
+ TFrame +
+ + + + +
+
+ diff --git a/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.drc b/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.drc new file mode 100644 index 0000000..853016d --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.drc @@ -0,0 +1,33 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Presupuestos de cliente\Views\uViewPresupuestosCliente.dfm */ +/* C:\Codigo\Source\Modulos\Presupuestos de cliente\Views\uDialogOpcionesImpresionPresupuestosCliente.dfm */ +/* C:\Codigo\Source\Modulos\Presupuestos de cliente\Views\uEditorFechaDecision.dfm */ +/* C:\Codigo\Source\Modulos\Presupuestos de cliente\Views\uEditorPresupuestosCliente.dfm */ +/* C:\Codigo\Source\Modulos\Presupuestos de cliente\Views\uViewDireccionEntregaPresupuestoCliente.dfm */ +/* C:\Codigo\Source\Modulos\Presupuestos de cliente\Views\uViewDatosYSeleccionClientePresupuesto.dfm */ +/* C:\Codigo\Source\Modulos\Presupuestos de cliente\Views\uViewPresupuestoCliente.dfm */ +/* C:\Codigo\Source\Modulos\Presupuestos de cliente\Views\uViewDetallesPresupuestoCliente.dfm */ +/* C:\Codigo\Source\Modulos\Presupuestos de cliente\Views\uViewDocumentosPresupuestoCliente.dfm */ +/* C:\Codigo\Source\Modulos\Presupuestos de cliente\Views\uViewTotalesPresupuesto.dfm */ +/* C:\Codigo\Source\Modulos\Presupuestos de cliente\Views\uEditorPresupuestoCliente.dfm */ +/* C:\Codigo\Source\Modulos\Presupuestos de cliente\Views\uEditorElegirPresupuestosCliente.dfm */ +/* C:\Codigo\Source\Modulos\Presupuestos de cliente\Views\uViewElegirArticulosPresupuestosCliente.dfm */ +/* C:\Codigo\Source\Modulos\Presupuestos de cliente\Views\uEditorElegirArticulosPresupuestoCliente.dfm */ +/* C:\Codigo\Source\Modulos\Presupuestos de cliente\Views\uEditorPresupuestosClienteReport.dfm */ +/* C:\Codigo\Source\Modulos\Presupuestos de cliente\Views\uEditorVariarPrecios.dfm */ +/* C:\Codigo\Source\Modulos\Presupuestos de cliente\Views\uDialogListaPresupuestosEnvioEMail.dfm */ +/* C:\Codigo\Source\Modulos\Presupuestos de cliente\Views\PresupuestosCliente_view.res */ +/* c:\temp\dtf1F1.tmp */ diff --git a/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.rc b/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.res b/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.res differ diff --git a/Source/Modulos/Presupuestos de cliente/Views/uDialogListaPresupuestosEnvioEMail.dcu b/Source/Modulos/Presupuestos de cliente/Views/uDialogListaPresupuestosEnvioEMail.dcu new file mode 100644 index 0000000..0801d64 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Views/uDialogListaPresupuestosEnvioEMail.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Views/uDialogListaPresupuestosEnvioEMail.dfm b/Source/Modulos/Presupuestos de cliente/Views/uDialogListaPresupuestosEnvioEMail.dfm new file mode 100644 index 0000000..ab30417 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/uDialogListaPresupuestosEnvioEMail.dfm @@ -0,0 +1,75 @@ +inherited fDialogListaPresupuestosEnvioEMail: TfDialogListaPresupuestosEnvioEMail + Caption = 'Enviar facturas por correo electr'#243'nico' + ClientHeight = 432 + ClientWidth = 735 + ExplicitWidth = 741 + ExplicitHeight = 464 + PixelsPerInch = 96 + TextHeight = 13 + inherited Bevel2: TBevel + Width = 735 + ExplicitWidth = 735 + end + inherited Bevel3: TBevel + Top = 388 + Width = 735 + ExplicitTop = 388 + ExplicitWidth = 735 + end + inherited pnlBotones: TPanel + Top = 390 + Width = 735 + ExplicitTop = 390 + ExplicitWidth = 735 + inherited btnAceptar: TButton + Left = 562 + Top = 5 + Width = 87 + ExplicitLeft = 562 + ExplicitTop = 5 + ExplicitWidth = 87 + end + inherited btnCancelar: TButton + Left = 655 + Top = 6 + ExplicitLeft = 655 + ExplicitTop = 6 + end + end + inherited pnlHeader: TPanel + Width = 735 + ExplicitWidth = 735 + inherited lblInstruccion: TLabel + Width = 685 + end + inherited Label2: TLabel + Width = 660 + Height = 27 + end + end + inherited pnlCuerpo: TPanel + Width = 735 + Height = 322 + ExplicitWidth = 735 + ExplicitHeight = 322 + end + inherited ListView1: TListView + Width = 735 + Height = 322 + ExplicitLeft = 0 + ExplicitTop = 66 + ExplicitWidth = 735 + ExplicitHeight = 322 + end + inherited ActionList1: TActionList + Top = 352 + inherited actAceptar: TAction + Caption = '&Generar correos' + OnExecute = actAceptarExecute + OnUpdate = actAceptarUpdate + end + inherited actCancelar: TAction + OnExecute = actCancelarExecute + end + end +end diff --git a/Source/Modulos/Presupuestos de cliente/Views/uDialogListaPresupuestosEnvioEMail.pas b/Source/Modulos/Presupuestos de cliente/Views/uDialogListaPresupuestosEnvioEMail.pas new file mode 100644 index 0000000..5e5457d --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/uDialogListaPresupuestosEnvioEMail.pas @@ -0,0 +1,166 @@ +unit uDialogListaPresupuestosEnvioEMail; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uDialogBase, ActnList, StdCtrls, ExtCtrls, ComCtrls, + uDialogListaEnvioEMail, uIDialogListaPresupuestosEnvioEMail, uPresupuestosClienteController, + uBizPresupuestosCliente; + +type + TfDialogListaPresupuestosEnvioEMail = class(TfDialogListaEnvioEMail, IDialogListaPresupuestosEnvioEMail) + procedure actCancelarExecute(Sender: TObject); + procedure actAceptarUpdate(Sender: TObject); + procedure actAceptarExecute(Sender: TObject); + private + FPresupuestos : IBizPresupuestoCliente; + FController : IPresupuestosClienteController; + protected + function GetPresupuestos: IBizPresupuestoCliente; + procedure SetPresupuestos(const Value: IBizPresupuestoCliente); + + procedure RellenarLista; + procedure BorrarLista; + public + constructor Create(AOwner: TComponent); override; + property Presupuestos: IBizPresupuestoCliente read GetPresupuestos write SetPresupuestos; + end; + +implementation + +uses + schPresupuestosClienteClient_Intf, uStringsUtils, cxControls; + +{$R *.dfm} + + +{ TfDialogListaFacturasEnvioEMail } + +procedure TfDialogListaPresupuestosEnvioEMail.actAceptarExecute(Sender: TObject); +var + i : Integer; + AEmail: String; +begin + + ShowHourglassCursor; + Application.ProcessMessages; + try + FPresupuestos.First; + FController.RecuperarCliente(FPresupuestos); + FPresupuestos.Cliente.DataTable.Active := True; + try + for i := 0 to FPresupuestos.DataTable.RecordCount - 1 do + begin + AEmail := ''; + if not FPresupuestos.Cliente.EMAIL_1IsNull then + AEmail := FPresupuestos.Cliente.EMAIL_1 + else if not FPresupuestos.Cliente.EMAIL_2IsNull then + AEmail := FPresupuestos.Cliente.EMAIL_2; + + if not EsCadenaVacia(AEmail) then + begin + if FController.EnviarPresupuestoPorEMail(FPresupuestos, True, AEmail) then + begin + ListView1.Items[i].SubItems[2] := 'Correo generado'; + ModalResult := mrOk; + end + else + ListView1.Items[i].SubItems[2] := 'Error al generar correo'; + + Self.Update; + Application.ProcessMessages; + end; + + FPresupuestos.Next; + FController.RecuperarCliente(FPresupuestos); + FPresupuestos.Cliente.DataTable.Active := True; + end; + btnCancelar.Enabled := False; + finally + ListView1.Items.EndUpdate; + end; + finally + HideHourglassCursor; + end; + btnAceptar.SetFocus; +end; + +procedure TfDialogListaPresupuestosEnvioEMail.actAceptarUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (ListView1.Items.Count > 0) +end; + +procedure TfDialogListaPresupuestosEnvioEMail.actCancelarExecute(Sender: TObject); +begin + inherited; + ModalResult := mrOk; +end; + +procedure TfDialogListaPresupuestosEnvioEMail.BorrarLista; +begin + ListView1.Items.Clear; +end; + +constructor TfDialogListaPresupuestosEnvioEMail.Create(AOwner: TComponent); +begin + inherited; + ModalResult := mrCancel; + FController := TPresupuestosClienteController.Create; +end; + +function TfDialogListaPresupuestosEnvioEMail.GetPresupuestos: IBizPresupuestoCliente; +begin + Result := FPresupuestos; +end; + +procedure TfDialogListaPresupuestosEnvioEMail.RellenarLista; +var + i : Integer; +begin + ListView1.Items.BeginUpdate; + ListView1.Items.Clear; + + FPresupuestos.First; + FPresupuestos.DataTable.DisableControls; + try + for i := 0 to FPresupuestos.DataTable.RecordCount - 1 do + begin + FController.RecuperarCliente(FPresupuestos); + FPresupuestos.Cliente.DataTable.Active := True; + + with ListView1.Items.Add do + begin + Caption := FPresupuestos.REFERENCIA; + SubItems.Add(FPresupuestos.NOMBRE); + if not FPresupuestos.Cliente.EMAIL_1IsNull then + SubItems.Add(FPresupuestos.Cliente.EMAIL_1) + else + if not FPresupuestos.Cliente.EMAIL_2IsNull then + SubItems.Add(FPresupuestos.Cliente.EMAIL_2) + else + SubItems.Add('Sin direccin e-mail') + end; + FPresupuestos.Next; + end; + finally + FPresupuestos.DataTable.EnableControls; + ListView1.Items.EndUpdate; + end; +end; + +procedure TfDialogListaPresupuestosEnvioEMail.SetPresupuestos(const Value: IBizPresupuestoCliente); +begin + FPresupuestos := Value; + + if Assigned(FPresupuestos) then + begin + FPresupuestos.DataTable.Open; + RellenarLista; + end + else + BorrarLista; +end; + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Views/uDialogOpcionesImpresionPresupuestosCliente.dcu b/Source/Modulos/Presupuestos de cliente/Views/uDialogOpcionesImpresionPresupuestosCliente.dcu new file mode 100644 index 0000000..20dfce3 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Views/uDialogOpcionesImpresionPresupuestosCliente.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Views/uDialogOpcionesImpresionPresupuestosCliente.dfm b/Source/Modulos/Presupuestos de cliente/Views/uDialogOpcionesImpresionPresupuestosCliente.dfm new file mode 100644 index 0000000..6ffab01 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/uDialogOpcionesImpresionPresupuestosCliente.dfm @@ -0,0 +1,2275 @@ +inherited fDialogOpcionesImpresionPresupuestosCliente: TfDialogOpcionesImpresionPresupuestosCliente + Caption = 'Opciones para presupuestos de cliente' + ClientHeight = 273 + ClientWidth = 437 + OnCreate = FormCreate + ExplicitWidth = 443 + ExplicitHeight = 305 + PixelsPerInch = 96 + TextHeight = 13 + inherited Bevel2: TBevel + Top = 33 + Width = 437 + ExplicitTop = 33 + ExplicitWidth = 418 + end + inherited Bevel3: TBevel + Top = 229 + Width = 437 + ExplicitTop = 196 + ExplicitWidth = 418 + end + inherited pnlBotones: TPanel + Top = 231 + Width = 437 + ExplicitTop = 231 + ExplicitWidth = 437 + inherited btnAceptar: TButton + Left = 254 + Visible = False + ExplicitLeft = 254 + end + inherited btnCancelar: TButton + Left = 333 + ExplicitLeft = 333 + end + end + inherited pnlHeader: TPanel + Width = 437 + Height = 33 + ExplicitWidth = 437 + ExplicitHeight = 33 + inherited lblInstruccion: TLabel + Width = 387 + Margins.Bottom = 10 + Caption = 'Indique que sello desea para el presupuesto de cliente:' + ExplicitWidth = 310 + end + inherited Label2: TLabel + Top = 31 + Width = 362 + Visible = False + ExplicitTop = 31 + end + end + inherited pnlCuerpo: TPanel + Top = 35 + Width = 437 + Height = 194 + ExplicitTop = 35 + ExplicitWidth = 437 + ExplicitHeight = 194 + object Image1: TImage + Left = 25 + Top = 30 + Width = 176 + Height = 139 + Picture.Data = { + 0B546478504E47496D61676589504E470D0A1A0A0000000D49484452000000C3 + 0000008408060000002D229F7E000000017352474200AECE1CE9000000046741 + 4D410000B18F0BFC6105000000206348524D00007A26000080840000FA000000 + 80E8000075300000EA6000003A98000017709CBA513C00000009704859730000 + 17100000171001186111DB000084FE49444154785EDDBDF57B1CD99A26D8B3BB + FFC0FEBEB3BBB3F3CC4CF774F7E57B8BE116A3ED42333333C824CB0CB22D3333 + 33C84CB22DB058B2989959B28CE5AA77DFEF649CD4C9502448E5EAEEDD784A25 + 2B33E2C4818FF13F01C8FF877FF887FF9D3FF8875FD4FFFFE11FFE17FEFC27FE + C8DFF26FA74BEE934BEEF95F5DFF043FFB4FFA39F9C0DBB35E86FCD51FFB9AAF + 39B8791FFF0DFEFCA7FFCD5ABBCCDFCB7A65C96A7DFA920FF4FAFDBD5BEF97BC + C6BA570DE5ED7D6A43ADB999E7A1DF6DDFDB9F8DFDD6E728E7628DFFCB4B1E87 + F1B7EBC08C35FB9A87F54EF7F9DAF7279071F4FA03784FA7ED571BEFFD5C7CEE + 61604025A3371380D1CE9FAE5FBFF011F971BAE4F39FADEF9DEEF1F56C5767E2 + 6D0E7A9C5FF32E59838FEB979F3CBFFCC5DF5CE4768EF98BFCBC74FDF679E93D + 346F323E53EF33C7B0FE96CF7FB6E6E231275FF3D3DF799B93DE475FE7E96DBE + F645FA7B87DC1FC85EFAD93E9F4374FEB25D90A15E8DE96D91F6EF02D9D0AE02 + F4BFC7FDBE90D52706047050760434F7CCD73EEBBDD6F778BB9788E426363E10 + 4A4DC30940CDF5F126F51AF92D48FA0A80D071FB1C8892FD55EAFDDEE6EBB44E + 3F731582E05E8FBF33201EB890411E920DD69B621E86DE2CBD42F305B655CB8B + 7FB3CDB4EFB0B78DE8B4C37E30CD1F75D6DB62EE83ED999F4D6AADEFF703841E + 876E3F28E36FD9CF972F3C11D0CD598C33EBC489AD33551CC80444DB19292E22 + 40689CEF2BA74D367872BFCA3E2F99ABACC95CBF3FC224FB6C3B0F271874EFB7 + 77624464F885C8208371C3F5039DD8B7035607BC6181509A57718FB9E1FE36D0 + 4E817DDC6F522B6F88FE52039C758E6EE4903999E290FC6D1DDCCF7ABFBDBDDB + DA7311C57EE68F09241A80DD08A0814803857ED6FADC1720C8773F6BA4F23197 + 4EC8E20DA8EC04D1FCDBCB39771ADB242EFE889503375344D9891819FBEFB154 + D77E599CC1644F428964F3CDC10201D680B1C3E1C657347EC05CC93B75E8989C + 0670D907835A294A6BD31514253390D18398C8BDE6FBAC7F773A2CFB41E9318D + F72B24B0C6738B00FA3E01007E278869727AFB9E78CC4D9E91DB7F0DB1F3C7B1 + BB7BB681123793A339EDB3B7713ADF6B2183C1DA854A78C85ABE80DC1FD67677 + 232CCADD65E0F686F9FE38850F2AA7A0C58BD2EA062C1B3278BCCE89856B6A66 + 8DDD691CDB3B35375122D3F30EEEE206627DBF9C9D1FB9DB51A1B6ADBF9362EE + 8393BAA5091BCEFBA58DBE60E35520A7AF33D504C04424D119486994CEA07EEC + F29A833CE65EA4AF097763310103BE3FC0F67B0A7E3893B5E65F6C72BA07F5D7 + 43E8FDF1B2F1220A4180D70252CD213C2C49D6B34AB4924B239EE608E681E9F3 + B19E51E2803917FD87292EE9319D28B87DDE0E9455E1817D2E9E40D431B23EF7 + 5F49043B9D903FA26BEE81BFF3B7C366C7BE1B3A83B705980F073A297F137AD5 + DFFF9ACD37E6E2A1BCD901C3A4E626001B80A900C7FCDBA2D842CD156268A4B0 + F408FD3EB5C50620B9AD3AD6F3221A29F1C79BA2A8398381C86A6C2762D6DDBD + B28F65ED875722E630D780089EE83022A677659EE6BB7C3CE73612A983B201E1 + CF5A6778D5C0F95B8E1728426A0ADB954D75A2787CDED7E138894AA6C22A72BC + 62BA1A50E5B0B5DE21949D3FCF882C3F8942AD114900CDB41439507005FF5A24 + 32B889209DFADC4210538CD19CC7D41BD4D026C133A9BBCC4FE6ABDFDF19805C + F3743A13630EEABD3296977B352E77D2ADBC9DB5395F13D6BA72D67662A71468 + FECF43F674C21A83E279C079575EEE0B41F46EBC82F18482BAAD2381228E6D63 + 1415B70055A62DE3FDA49566A739CA7B04986D6B548AB661A91160F8E9A9A504 + 1B22961691F439A8B3D688610291B54FCA1225482AC3CBBF85F3706C539F70E3 + B5EC07DFD909602D40F7308707BAFF26A19171F87E47A382FDCC1D80D8D44FDC + 73F182FC1A69DDFBE3849C81104127A4D4C8A00ECC18C44316F5821C1ADB7D32 + 814037F75571120B8015E03A21829D1AF841503745B410C283CDDA2892D203EC + E339880A62A9132EF0FC197F5B88E2067C015C31A55A145F00EC27029A3CA310 + 5C80CEE22ACAD0C1CF9F3DE66FEB734106B725D09A8B1ACBDC0F8D64328EF17E + D3BAE5B10E1BA17203AFB7B3D59F9BCF5948E036791A162F531CD2FE13373C7A + 391FB781C7261E794526A77134627620A8A53368361620F0BA6F0BF0FE5705EB + 5D1EC75CB089D45EE6ED554E75A2D25E26238AB75B41B64422395CA1E06EE799 + 06141B4209C5977B94182554DF02580170C501E46FEB5905BC32BE700541064B + 5957F759844D218103F5748A3650B799945B03B07C2CC06BBD5BAFCD2BD33529 + B37993CCD512E160E9044A04D3F7BB59991742667DDF89506BA382CCD33827F7 + D6FA435AB9D1354F4FD36AA0C0D6251CE8D2CDFE6710B06265A368FE47B66DA6 + FD90F40002144F80B64740C5A33AE4359521A3B610C9D5B9B85D9688A3591770 + 2AFF0ACE17DFC4D9C29B3852708EBF6FE154DE0D1CCE398FE3395791C87B0B1A + 2B51C49FB2A6063C7DFC4B6731C369C25AB13400409B7E7F22A7116EA3388685 + 7C0A312D80F3D06D2C20F5B9971AB00C22E256F8654C637E6A1C1328F5F8728F + A9FBE87BEC1C3A501831444B37429B7BA11126A0C3B6DD44ABAA3B1C437D15E8 + A402799979CF6F31AE49C5BCCDC79FCE10C0BC04A09E12C81A1FBF445A5D09EE + 54C420BCF82E4293B7636AF40C4C4B9C817171133133760EC6458DC3E8E8F198 + CE7F2F495C8E19F10B302E6632A6C6CDC0A4A85918726F38BE0EEF811FAEF4C5 + E4D8A908495E8255A9EB89249710511A8FE8F22464D655A3F5292766A3D2CA13 + 4D0EF042CBE7FC5E89445ABFB1C426A537C8E316571124F0F090EB3D71DA3F6F + FB21A2961397D548A0C530736C4D714D643011CCE9CCEC9CC97E8F9E9F13670D + 04DEEC48A841DEA56F19C860DF7CFEDD89857515097EC3FBBD0674396D8AD321 + 3B6C8CF9E82352FED2D626DCAD4821C086616A4C1026C6CC4050E23C2C495D81 + F9718BB1246E23B6A4EDC7FEEC9308CFBB8B73F977105B9E8FACEA6AE4D4D622 + BFBA0A89E5E5C8A82943565525624A0A713AEB1656C56DC5968C7D385D700597 + 0AA2B03E751B163C0822C24CC1E40773B03A75034EE784E35E492AB26A2BD0D8 + 4A28132017C037441F477A20E7A6750F0BA79C3CE0EEB5EA7D1040D6806BDB43 + 0FA3844534D5BBE53D24146A4E4EC4D444200311B4AEE2F6ADC8581AC04D40D7 + 625457E1C81B52DBCE5CFD69BD8FEFB78949B279A678605350BA3AA7577ABF3F + 2ADFDD97191BF494875AD2DA8E5BA4FE5BB3F661757A2816A7866052CC4C4CBA + 3707EB92B721B6220FC5CDADA8A39CF4B8FD399E3E7D4145F867457D95422C94 + 58145F115BA8DC8A82FB5400590311BF7FFAE2279A535FF2FE5FD4BDF52DED44 + 945C1CC9B884B0C49D581CBB02331E4CC7C07B8331ECCE2884C4ADC2A9820B88 + ADCD4013C77ACC31ABAA7E424A6E1DEEC6E6E256541AAE44A420222A0BCD5640 + BE009A2F6FB4633888A6947ABA9658E28E8FB201933217CB673A764A9F810DA0 + 3B1D8DD359FA0260FBFD268CFA2374DEE0A6F3730E9C21F087BB0B7EFF76CF39 + 90CE4E7232D7FBF8C9CF48AA2AC1868C1D9899308F08B0184B5357E170EE0552 + E7346456D5A0AEF9051E3D1259C575F8D5AD3F21BDA11C598D6588AF2E44626D + 898B40F29D35CDBFE06E61019F3F8B0DE95BB09E3F65ADCD0A381FD6D620AA3A + 13F7ABD211CD9F92A6A7686BFF194FDA5FE229C77FF194DE9FE69778505684FD + 996731F57E10BEB9FE1D06DF1A8C89372661F6BE25581976082161BB3071E152 + F41F3C154386CFC6D0D1B3F1F1277DB164F52E9496B6B9F6D8F271989CC14D0D + B5454708A01D30E43351DA2D93AD5A967D2FF533264597FB2C7DA5D3213BB231 + 0750F0769F1764F16AE1F3076526D772DD6B7006139BBD0CE4DE348789290261 + 9902FDCDE3B7FADEC34CA70FD90772373F6EC7EDE2246CCFDC87F9498B1092B8 + 828AEE356435D4A0A1ED67258F7B582838D633DAECA348C59726AEC6DAD48DD8 + 9B7D049B1FEEC2368A4B25CD2DAEA5112032EBAA109A168679890BB025FD201A + 1FBD44E393362C4E598D690FA65291BE8893D415B6A6EDE5385BB03FFD34CEE5 + DD415C5921DAC52F2017DF9F99578F90139BF0D59441F8F0BBFE78F3FD5E787F + 544F8C383106A1B7B7E0F0AD5BB81759809AA2E708BF1087AF7A0EC38AA53BD5 + E3827CCA996721A9FCC3344B7AF806B4726A3F1C930ADBBED30823E33E275BAD + A96EE5FEFCE472520A8794775B0819B0C8ED8B433820AD232CD9EFF3B106F5BC + EBFE009041B34A6B733BBDDCC2306593376CD71E0A6037A1DF831AD980DAC33A + E230FE0BB1E58B8C6DBF38CFD6E74F1043716765CA064CA308B433733FE2ABB2 + 48FDC523464EF1D363B43C6B4361730362AB73D048CAADE4755E39547057A550 + E9CD3D8D5AB99F6BCEAD6B4058D23EDC2A8A77CBCF947CB031753742929620A5 + A25C3D5BDE5A8D65096138F2F032C5AB97A823822C27724CA6927DA32801974A + 6F2A8E74BB240685052DD87BE00AA6CC588EA0F961D8BEE93C4E1D89C489CBB7 + 107C6F35A653710F4E5D88B5D96B71AAEC2A6A7EAAC7CDC80C7CF9D9209C3870 + CD3559517C85BA5BBE0D15F12A676F28B51EE1DD161079700A07CEA144308382 + 9757B561C58683183A721E32D32BAC9758962C4BC1574818A8D8ED0D21CCB3B4 + 5376F3191BB7723F667233FBFD9D4CAB81625E3781BB5B8F39712CA170DACCE8 + 0DEB65F32D7BBD0B0280474482849A4284A66FC7D8A889D894BE0BE9B56578F4 + D80525E405C86FACC3F1DCCB384813E9DE8C3398133F07499545EEA967D69763 + D5C3B5B85694E88A17E225B27F7E5D234A5B1A5DBE04CEA9B2ED3116272CC7C2 + C425286C7409F22F7EFA19B56D2F28F3BB363AB9B60023EE8CC598C80928213B + 687FFE14ABAF6C47CF59033060E8348C1DB200C3164EC194F373F8BE5854FF54 + A79E7BCCF9A6724EFB524E22386E2996652F46F0AD65E8357014C68F5C88862A + D7C494979A4B1393AB1007372C0892582B721FB9055C3AFCC203142C8490EF84 + FB2B0F3D2F794B4C7236068E9C8DF73FEC89ED61FBD1544B85C67E1988E3F195 + FD73F36F7F0861C1851B714D0477F2AF781B4F3E771D7F6705BAF34A0C36EBF4 + E5ABFCCCD706387DD719BB3DF7DAFAFE058135AE3A1BCB92C330337E1ED63FDC + 8E1B0531A4F85A1E019E509EB8527A0FA129BB70BBF401CDA83948A8CCC58AF8 + CD389F77DB4DF1AB5B5F6057E63152F025385F701B95E41E26A515B144AE9AB6 + E71C6B13E624CE454C65BE4B7ED79451E46AC24C247587050FE76359DC3A1CBB + 1289058BB6E32352F61E5F8CC4BE9D67D052FC14F78A13D09F8AF49898D1981F + BF9C4AF639EA24CDF8459818C7C86B6BC6E26BA178BBEF9778EBDB1E08B9BA0A + D72BA3515A5FEBB2406900B388868E8B721313132B847808A2D83145FEB6B8BE + B60055D73FC1D275FBF1E6073D30E0FB0988BDFD902291F5A0F1BCC9C195954B + B88A8CE5ED3C05F1CCBDD2276A208A3D1BCE85F9C6D1FB4324F37E3D6E276B92 + 9741D5D881BCA02BF739510F6F8815E8BB1D9E6F6A7F8CE3051729BB2FC4EAE4 + 2DB85B968CA6369E862142D1B883F0C2187EBF01316569A4F8AE17FECCDFB935 + 35E40C258ABABA8281800C9A4C573EDC8091D123B02879294EE7DD444A753E29 + FB4F2EE719EF794C60DD9579140BF8DEA4CAD20E60B2A896BCE248663826EC9B + 8991538230B0EF34F41D30191BD61E434166BDDBAB758256A4417707614BCA7E + DC2D4920826DC7D2B8F53851700965CF6A702F3A0B3DBF198DFEFDE660FAF960 + CCCE9A8E5914A19624852191DC43AC5A1A5804309F5B4AB1E98770238C695AED + 00124F0F1B078B8ECB44FF41D3F0FB7F7C1321B3D7A0B684F3D5AFB1597A3432 + 88D5EC851597A590C1AECB1967AC7435ADAF5962BA8719D63A0733CFC41BE804 + F4B9EBDD0E1EE85F017801BDD8E926CB24E982C06E8FD2E9C186D6C7D84413E9 + 9CC4205C2B8CA3626AEEB8753BDF9745997F4DCA169CA06DFF09015A5D767B3E + 1F55D3B4A864457313F6649FC28CB8208C8A1A856177C7626BCA61221ADDD302 + 7404C2FDD9673035612A45B12A8F75B551CCB974271183C7CFC4079F0EC2F429 + 2B11792B1D95950D14673AE6185F9A8711111330216612D22A2822F1ABE6D6A7 + 34B1A66143EE368CD83D19EFBCDF036306CC4779611D9A5FB6E15271247D20E2 + EC1B85603AF5C42255504F4E620D2B4029973BAC43BFCED877415427F93EAFA4 + 1AEBB61CC3DB6F7F831EEFFF886BA76EE2C9636D37F67D6E4AFCD2A1227AEBF9 + 1E8F88581B222904B03E73B278D943D41557EB0EFCB8914172A0DD68ED634176 + D6F9EA60D63F8BF3A6177899C3A3C73FD36C99861DD9FBB0266D335269FA54F1 + 413CB71A5A892C1541BD570EE852C903CC2035BD5D2C5C4193B80EC454F02FC8 + 60A3684F1EBF40554313CE15DDC58FD77B63D8CD5174B015B9709AEFDA9D7912 + C323475209CF559FB50B12DC4EC0FC659B31725C307E983C1283F60EC79D8294 + CE47C0771DCDBA88DE377B6345DC26B4B7742840F5CD4F30796928FEC71FDEC1 + AC9121A82EAE43F1933AA4D6E4D0890124D038B020612906DCEF8F0114B1963D + 5C8D98F26CB459BA8A2BF0A9637DAE09BB7E747100D30F51DFD48EADFBCFE393 + AF06E1B53F7C8CC5D357A3AAB0DA73F7BD1051AF1C4010CEFAE9B4786F045973 + 2B6FF06A8EE78BA83B7F47CEF0D2CA74335EA06436FB66BD4AE0771ACB07462B + 4B4480EF2FA3D36C63FA1E8C8E9980F5693B50D9E452E85AE91CBB5A1CC33089 + 50449665B80714C7D1D592285A7EF6A3B4C9B2CFDBDEA5926B2C4EF182F71750 + 666F7C62D90CF9EB297D036773EE6005CDAD51C505A09EAE38CB012AE09352C6 + D35791855BB7B23176E6420C18360D47775F43D2C34ACC8E9D8F1151A319AB54 + ACEE171146C51711416B09FCDB330EAB108F79310B69ED722154567E23868D99 + 8DBFFDFE136C5D790CEDCD2ECA9C5A5581150F4371A33456856C5430E6693D2D + 5C03EF0EC598F8315890128C9D194750A8D7A83985488CA214735D2FF96E6D7D + 9231C51A77233213C3C6CFC5FFF86F6FE38B77FAE2EAE93B784667A3CFCB3C4B + 3B97310139804355B7F8B9CFAD4374872B742CA41B817A012C2040B8F5799BBF + 803C150A605A8B385A12AD3353626972A41C2F26D1F667AEC996B4D6623D15E3 + 1379970878D94829AB5700209720C3BDB2546C4F3B4419BB022F4CCE603BB817 + F41A8B377947FA111CC9BE42914ACC342EC04F2ACBC3B2A4502ADDE4423236C7 + DD9F790A430E8CC4B06973D0E3EB61983E73054D8F2E336B76732546DF1F8709 + B7E6A0AAF1B9A2922AAC5BE08C3FB1E5399815370F33A26751DC3A8A03F927B0 + E2C80E7CF5C508BCF3562F9C3F715F0189363F3F64C8C7F29455181F37016B1F + 6E410D4544E112778A93313B61BE52C0A7274EC19A879B90594991CB12291402 + F2DFB21FEADD16EC65E5356361C856BCF6B7AFF03FFECB1B983A7E314A725CD6 + 2CF76500BA532A6BA703B6C38E1683BC41827063F399009EF798470080680CD9 + 0D6408E005FFD6B7BCA41523BA229DC03317332269EBA6F9532E098F48A22975 + 53FA5E4497A5BB2A4BF06A61DCD14F5A36E76ED4B4FC842BF9E9389C79515987 + 3444984A9B7096635937F190CA74624501E6C52DC4062AB331A505882F2DC4AE + AC83D89D719C63B5E22939C3F1BB111818321E7FA7A3ACD7A4E1387AE51A7EE2 + E7B2F9D9D4513626EDC457E15F60D8D5B1B4FCB8647AE517E19C9F108E0F675F + C4C0887ED44B4EA2BEF539C2761EC31FFEFA01DEFAFA73ECBF73C135450168DE + 2FEFBB58781BC129212A00706FC62964333E4A8B4279D595D8C63D9811370B53 + E2A6232C6D1B3DDC992AAE48E740E8336B24129DBB14831F7E1C8DFFE73FFF05 + 6FFEFE4B6C597B046DD455BA7479239A0188BC5AB957BA8B314E272FB88312AE + 43DB3BDB8EFDCEFE152083D3A25F05F7F0C65E6D6B12F1E530BDB9836E0FC7E9 + FCCB68A2834C36A4BCA50197693EDD977141C5FD9841680504D8F30577F04482 + 91783D2130DD2CCCC20A52D69B94DF855A9A9720D1059A5183635751FCA885E8 + C89BD2F6615DD20E7A9077232C7D230E269F474E561B92E2CAB07AD3610C9FCC + C8D5653B7131221E698D2568B1589170B3E8B26C84C56DC782C825987A6F36CE + 6545311C4338C3CFF4543F466E6D351D8147B0226B054EC74761EEBCADF8F2EF + 7D11326F0BB6A71E475E3B915DC41AD967FE4EAC2C26370CC184079394C2FC94 + C82E1C4BB898F81794DFA3E119E39EF630A2761ABDE68729D285E17A51B45BB1 + 7FF2EC05A263F2306D7628FEF4C74FF04FFFF94FE8FBF910DCBB95D2198AFC89 + 23DEA8B929F39BF7680471784E3BF73C10C10E5F81C2A0BECF193E6DB1498ADC + F8C520DF37FCDAE76DA3BB31DDF85CB34E5168CFE5DFC2F0BBA369A6BC48CAEA + 92712A1B5FE27C560A8E655FC7D1CCEB882E2C24B0B92646028F534597312862 + 10CE64DF75EB024575F50CCB388CB087DB48652351505781BAD6472869ACC559 + E6222C885D4E059B8021AC9BC821E11A22DB0BB0A5E434E0F4C95884AE398419 + F35663FDDAC3C848A97285575BD793165A2AEA5D50243A1923336879FA998EBA + 5614D261477F1BCDB13FE1624E3276661DC5EEE2DD58777D07FAF59E822F5EEB + 8BCB875D5EE55652F3A6464B87E1DFA5F5ED5819BF0EFD22FA63352D62F52D14 + B9F85E1D5724E1238473F5591DE3A00E49BC54EA0E8A4BEBB02873291ED43D44 + 615E03D66D3E810FBF18807FFE6FEFE06FFFF4018269E12AC9A549585F5D3957 + 03E854E2910557EEE4241B9CE9EFDD265E8D34C6388E5622F95E8EDCCBDC3A7D + 6C7DD089C3B8D66865BAD931C6D7C2CD7BBDDDD7958DF3B3D96A289B42267F0A + 225C2ABE8761F747E344FE7957C2BD75B552576826D4B730DCE16A7E2276305C + FA2E01B9A6B50DC7C84556276FE433E1148D1E4044EBEA472DA826509635B4E0 + 40CE290425CDC6A8BB9331EFC12A2C26055DC2108AB8B25CFC22367BC361D4C6 + 1C87083A9B56AD3C8CF9F33760E7AEF3484C2860A4AA258FC9ED04C236027D6B + DB2FF41CBB9055E52108F7D17316A412999D3F4DFC3999721B3FCC1B8EBFBEF5 + 05DEFAF8331CBB1ACEF5714D8F9FE121759E538C61AA6927F9E7F3A7F3AFA2EF + EDBE18173195A2114DB8322C5F23FE059DEEA9F42BEB4C5A181078A53402AB72 + 57626AE434FCB8640CBEFB9626DAB7BEC73FFDD7D7F1E5DB7D107EFC161EB518 + 981CC879DAA8BEB614E904A38ED3B180D7B8DF433F5487EB9ABB19F2A1F087CF + 689D4089504EFE0A1BA269447187887B8737220383243DBC8EF6C13C566160A1 + B978FB3DAFEA6F07B6A980893B718DE6D0A177C76143F25E3CB2C49DB4BA3C54 + 3DF2B408D5B63CC1DE9CA38CE309C6F2A475D893710CF94D1433ACCD14EA7EA1 + E01EE5FDD34A667F421929A622079B938E1271AED2739D4ACB4EB34B51B6946B + 39AFA487450859BE13A3C7323E28EC2892134A29E67478AD445F7946D1471C4D + 55E52F5528B72046BB8843E27CE2BF45277946A015314D711C7EF0203E070307 + 06E1CD7FE98515F3F66247F409AC2FDC847D7967B09122D984A8C9D8470FB814 + 1688ABCC62E2D02C8CB83F82625EAA3BFC42535815416A8953D4FD55150EB95A + 9E3C42D0A1E578F79B6FF1DA9F7AE36F7FEC8177FEF55B4CEA371FC971E91DA7 + 17E8196B0A6D181F14E0FA13A71CE044536D85C00E3A81F26273EF44D9F7884F + B3E6EAE63236A00F602E1DD5317C45A4BE2AD8EEF2380E5C48E619599E8E6046 + 985EA138F3C80AA9B85B9986A084102A873B297A34B958A750485298EB0C6918 + FD600CC6320B2DB3C6E5BC722798F09E9D0F8F615ED42A08D554B676112D249C + C8B20A999C2933A7126B371EC598710BB174F176C43FC8F7502E5542BF759082 + 082AAF816309F0CADF0C94ED2811293860019038FB366C3F8E3FFDE963F4F868 + 206E873F507379422C4CA29FE41063A582685D9A1439050F4A33515CD74AEFF6 + 32F4BFDB0FBBD2CEA0994600A1C2221269C7A07020D11BDCBE13BEEF41723E66 + 04AD46AF9E23F1C5C763F0DAEFFAE16FFFF35BF41D331AF159C59D8FC88920D9 + 3985461AA7CFCD1165AD1AC09DB88DA6F67E389172E075D01DD759DB9E51F7D8 + 240A3FF0678B5A0D841D7619A27FC503E622AD8565375433DC7A215631CEA8D1 + 6202A975055898401B7F5532EE56A622856646B9D4860935A64471283B1CE389 + 107BB34FE091F8082CA52DBBA60A5368BEDC9A728C0AB5CBD6AE2A4E88A545C4 + 226B4F2AEBDA70F0C44D4C9ACA28D239F455DC4A431BB98E79A9C038CBC2A3FE + 2DD4581CD2221689AF42C6E4F782A066546D7E611315D7D5F4EC7E8D4533D6A0 + 38C7E5D07253578ED34E4F6F7E6D136229AE6D48D98915C94C004A9AC684A39D + A811DF01815E104FC6D7A9A18AFB58125B751D15E8CD87F129F582A103A660D6 + F415F8FAF35178FB8D1FF1D5AC2198FA60062360B7A9FC8A402EB7DC6D02B8D3 + 8376640A00D01D0B19C873764B9437C49233901F0704F161653290C18E458122 + 46A0F705B2C31E90D5F981D29636CC8D0DC1A8C8B1B8591CA76E2869ABA245E7 + 00AEE7A52AB95BA6F382A4D02D235AEBAAA1793234753B2D2EE370B5F081A2D4 + 1125E90C7E5B82634CE27944EFAC2EC9A21D6C3246039D5F176E242028780356 + ACDE8F5B37D2D0D26844666A11C1DA078D0412B027628900A6CA4B16F9569083 + 9FBBE39C84522716E0C7BE13F0DE6B3D70F6F0F58E45CB618A226C1DAC12D3AC + 77A5D79460F5C330A6888EC3F99C48F50E0194A782CC364BD80B2248F8B504F4 + 1E38019F7DD40773272EC11C22DEA79FF6C5CC912B980B918BF5D9BB303A6914 + 06470CC5099A8F3502B927630742FB39991CFCD79E73206399F7F810C57C4DDB + 619A2E9DC1EBFC1DD84F57D7FAAAEE6F26B0AE4FDFC9E0B891B8981FA144981B + 25D198C3CCB415CC49DE917E40D9EF353560B4B4BBF89756AE0BEA5BE99DDEC5 + 7BF7615FFA712C4E5E8D4B79914A86779162EB87BFDADB9EE1DA8D44CC5BB809 + 13A62CC6D9B3518AC3C82562885BB9339041DEAD4BC2A8DF8200F25B645C6146 + D66F19A3B6EE05D66E388C8F3FEE8DA17D2721EADE43D7D816E71084144FB6CC + 5D3E13A0564AB745896B9A9E28E7DF242AC187D2CEA38608FA984A7A75D30BB4 + 13139538F9201BC327CCC7D73D062378CE5A1C3E701993880C9F7FD417BBB71C + C7E35697AC51F3E81996276E42DF9BFD98E33D974187861549EF8BC3417AD041 + 13F23AEC071D4F5994DD31C6C88E5C6A23BA0F399A6B69FDC2498CF218DD3577 + 3F21DCFF5190819B1B5E1481A1D1C35418B6C4D2353E696528F6366C60C8C5D9 + DCDB4CDA67E619D32B531821FA9C0E35E112CA5F60892BF29BB880CDA9FBB090 + 596DA1C95B91C7441DAD3F6805EB0965A5F8A4622C5FB31753A6AFC4DEBD5790 + 9258E87C3216900AA00AA02B055CC4222DCF0A5517EE20A2974854D601272433 + 8F61F43CBCF5C65758B3742B5A1B5C961B1D552A4AB57015552F89CFA8D841EB + 2C54E130415EBE4372A1F73C3C83BED7FA616DCA461523B5257B27D6DFDB8ED5 + 4CB6E9F1E5704C1C3D1FB7AF25E3D0912B18386C3A468D0842ECBD0E25598732 + E4D45761E683B9181F3F9EF15CEB91566F25E9F84006D7A48DADD1A28C13E298 + D4DC7CC69B44E2840C762944C3A75D1C32442AB707DB846567B8B69956BB8F8C + BFDD939CF8EDD2644C4F98C554CB35286D7884365A8F44073898735A015AEBA3 + 9F718966D245C90B31E5C16426E75CC763655CEF5050658291A5E9984E0FF5A9 + 9C2BA86FE49706057B49A8CBA6BD7DC5AAFD1832783AD6AC3980E49472257A28 + 42655168B7A94E3E23C00A902BB1CA025845C9E5D562C991EFC58A64892E82A0 + 27CE45E0BD0FBE23A00EC48DF0181526AE988BA557D8A99858A514B259629658 + 51686175151910518C0AF9EDB2786C2FDC8D99513495860EC63B1F7F871FBF1B + 871307AF2323A38EE2DD5E72833ED8B4F1301AEA5C93D1D96F0A8EE47F7C7F54 + F9434C4B9881518C780D8A5E84AA669738A808855D61B59FB81D50F5F7D619E8 + BE114E8AAE7D28B5568B90A9F7DB815EE6E38B735873F13625D7A23A812C9141 + 97A477BEE1B703F200472E6A6CC0ACD805B4A5F761650A7A92791550919CFB60 + 09CBA9D011651D92D4368A6374E8828425187E6F043DCF67512F95BE8CABB8A1 + 9E19628534CBC96EBBBE10202FAB68C2112AC763268660F6AC35387B268A6997 + 02C5AE4D5395EE0CB3A11C84886166D94615DC28FE025164E5B758920C19BEA2 + A60DF342B6E04F7FF904E3472F445EBAE513E0F8C20954FEB88C6159A234A752 + 4828F14396822C8821F70957D09E7209F33878FE2A3EE8FB3DDE7EB30FFA4C1B + 8FCD37F7E0C499080C193A0BA386CF41F4AD6402B56BD11A51EDE64651EA8FE6 + 8533FC7B22BEB9F40396C76C46FD234309B151578F241B03B83C823C03014CE3 + 8CD4FAE59506A132CB7C6AE4742A04E036CB3A6181C52D3CC4344F0E51FF0FDC + 1097CE60B01637369A93D49868B2BB00013AA0DB1C16D0441228758906470E60 + 54E961FA002C71821B165BF910DB99F6584EA5DABCD26BCA1196BA1563A24733 + 2F7917D32C1FA38289FAB5F4269B976C4A763EC31EF65EC67C02E98A55FB70F6 + 1C91A0B85D79A955F4842507BB9D3B824302B0221E59CAB1529835108B586329 + C84A49B6D694925582BE43A7E377FFFC1EB6841EA43EE2623792182600ADA384 + 058154115F0108FE08D00B831304502293208C884FC279ACB14B99E7B070E936 + BCFBDAB7983E7425CE5F8F45F09D65F8624A6FBCF3E6B7D8167A008F18F2AD2F + 65ED3280A0F9693B32EA73514673B4005D0BC5C4590F82F1F5A59E181A319C79 + 20911D54D4A0C6EE750BE5D79C4303BEA6DC0605F784BB8EBD3161CF9D0927EB + 33E14DF6D89AB71312B8A89AA5C7E985CABC2CAEA4BF77D41D3AD664ABA82773 + F486553E798E8935B685068409AE9B4C939A0EB5E84B3BFA02E61297E9CA13D6 + 3C9E51F6286DAB45BB400A2FA16ABA028304A9CD8C9D8B7E7707AA6A146B687E + CC6DA874CFA4AABA1DC74F4460C6CC358CFB09C3952B71A8A1E9511889701815 + CFA3F7C23A4535370BE8B51E22E28FBC5E147091E305573592C83D8254A72FDC + C7973D86E1875EA371FF5A1201DAB50011BF44DC91750A6750CB102410A01744 + 10659B302C4C4C7E149289AFC222D46D547A8F9EB88D1EDF8FC6175FF4C78943 + D7505AF604074E5CC3DB9FF6C2DB14958E9CB844AE66926C4FE9404AE41CCFBD + C6F23873B026733DC3BF63F8DE9FE9BF8945AFCBDF621CAD5521F1AB2104C6E7 + 255CD3E2A2F66801F773766CB0C1933212C819EACF4DC41340D7E39BCF5988D8 + 498C5387679DA12F71CA735146E16163802EC0AFF3ADFE10A7139930266E3D5B + DC5C8B79098BE91B18A72A577452D4EC9B698DA98814C331AE17246262F42446 + 7E0EC2E53297C9B2A6F6114E9CBC8D590BC210B26407EE47B0285763AB32750A + 2228E557AC3E9AA269441060D473B62C447A3E02A48A726BBF84254E35892977 + FD117CF0616F4C9BB40C1545CD6A0ECACA64E53B68C011BD40D2440599041854 + BF06410A118F2CFD40104153C5ACA2068C9FBE04BFFFDD87089AB41215C55528 + 2C6FC784698BF1B73F7D8EC1A3E6E2D203E6355893F410672CE078CA975E2ABA + 4F8BDA1284B04E5468FA56CC4E9A83C88A34E5855F1ABF017D18E63121762283 + 064FA8DA4E1E80ADE145EF8BC545CD735239129649D89D85E603363AF905AC17 + 3AC5A7B9E7A2DFAB3FD0E3F3B71265F518F6F7769E870D19EC03FE6AACE8DE00 + B28997582EA5FFFDBE0C613E8D2716A556A371116EC07458A84AC82700655636 + 92A32CC6E9B22B60D8112E85C762C8C8E9184FCFF1E9D3F75155E9AA71241447 + 85481887A6AA3F68114958B445AD9562677DA7BED672AD7CCE7736322629A3A5 + 0CD7E3A33175DC4ABCF1FA37F871D930E63E9C43145335AF304A54CA49A65554 + A39061DB65ADADA86879CCE26472722EDD44B17BB18409125002140415CEA138 + 0DCBCB1C3E73135FF41C8CCF3EFC11174E462844BC76330E9F7F39804EB401B8 + 743186BA523B8711B26929DED6C197363D62D99A12F58EFAB6562CA7656E72C2 + 189C29B881DA86A7B85814A13CFB550CD82A692967E58E09F4DA8FC3428686DF + A14FC62DA2C878A668645168FB69CB390A126BB1CE0DD4D6B31E7F6B6226DC51 + F641888A49D5CD7FEBF7CB0BB5E141B6C83A2B1D3AE3F6D17803434FA2EC605A + F547D5BB07DF013DA5E5C48647AD086138F5D4B839F41D182CDA616E0A28ADC3 + 30DDEF853CEC23199771FAF2032C64D58989548E4F1EBE851A2281BEEF299550 + A9A9EAA6481647504E27CB22A4004A8B48E62AF8B928B179E436570AA271B0E0 + 2C96A5ADC6806D23F0F6473FE0FD77FBE0FB75833031610A42181D3A2F713EA6 + 319760614A3036646EC1BACC303AFC821916BE14C7F32EE26649245333F35893 + B599A1157CA7A81516B2C9B263E30B316E7208DE6511B1C5B337A0BEA28D3E85 + 764C9FBB16AFFDE57384CC08651E74B3C73E0BC7D1EDAFB2EB6AB02A7D1D7631 + E74200AD9971DE6BD3B663D483114C9175F938183D8EC9ACE017C6EA21B2EECB + 8CFF1A1F3B8E083391656FD6A1EEB135BE0598B26FAAA4A64606832A7B6C9505 + 74423C9428A48D11729310372104F24F4B577299D71C4046BFC786881E5643FD + AC9E8B7D1CA739BA3EB39041289B1312042E6F0504EC5E6FD298CEDFCF29539F + C8BD49A579300EE65DE82804E6B4380154F9B1B1CA276425712915D8B2FD3CD6 + 3031E5D8E90854557428D04275DB0970CFE423FD2C7F0B5751A6510142D97839 + 285316569FFD82723ABC6E17A72BA7D7F2945086454CC798A811F876555F7CF0 + C1207C3F6002A69E9F8D19293330832661114582E28328F24DC46C162758FC90 + 758E88141358BB69140B09CC889BC93C8319ACEA3D93058E67B312C6419A8173 + 50FBA81D65E54FB17BFF2566CA0D473FEA07B72F3D5094F65664323EFB72283E + 79BF374EB268D8F36706E69867C97F3F60E2D38AD450CC4E99CD2AE249EA185A + 5E3C4658D64E0CBE3788BA4282FAACA8A919C322987D4747DE13AEBBAABD9639 + 1EEB303F752E8B124C6571B3140F59DC498ED78E478B31791EB9ECAD884ED699 + A9699AD297ECAF7EC2FAB71048C5598CCF3DFA625BB0A3C360DC86A0AEC0AE8B + 08BAC42465E3F682893EA1DC09817E1D5A20A5AA8AD526C66036CBB9E758196B + EE21CDF7893CA89566EB0629029C4887D98E9DE1D8B8F5242E310CC116C40A4A + 26282EFD094C21709775D17A825876949953888350297987EC8BB2E2FC4C936E + 33C29930B490F58B7ADFEC83890F266065E64A84DC5B86EF278EC6271F0FC7F8 + 457359076929B615EEA278745155C80B4D0BA5B37019B3D0A66125FFBD3FEB04 + 43487661FA83994484D9ACB2B7060BE21751479AAF3CC06329BA88AE3471C75C + 2ADE13F1FA1B3DB07AED3E3C260237111197ADD8833FFDF9634C191782B2022E + 44709773554AB8466E2D6670CFEE5724B36CFE78226528939F5C07DD42B6B894 + 51BC3DAFF7A0273F51AD7123C35546DE1B877BE5C96E112B823E9E0D591B55FD + D959F43D54B4D6B976DBA2D2DAA4AC1568D327E0511246CECEB2D029FD418C0F + B2C796F54C99952D22A4441F3118E833B0DEE5CE6311A4D2EB339149C63560C4 + 67EE7C67D8F5A2339800AD5993B501BF12D67D3EFE13677F38F72A06DDEFC7C4 + 9C4B1EB666376130D89CAEE420D43C970EB303876E91131CC6D5CBB16894C400 + 810D4DE9F96F01764106519615E058D45F865465D7AD8D55357EB442CCCF249A + F572412C16314A74F683598A8A2F495B490BCC1A2CB9BA063F8C188F0F3F1F8C + 111B27614FDE01ACCB598F35CC83B8501081DD7907994813864549210AD8B766 + EE643EC2157ACF37B2E6EA6446D96EA107FD1A33E7366347017D03ACF1B4E0DC + 727C3B6518DEFCF3B778F7E35EE8BD6D088E955D601C5316460F5C888FDFE8CD + 708A538C807559D2140008026B1DC6BD59D63FF8FDDE9C93989B188226D1D479 + D5B4D15713B71C7D227E24B78857B2FD19C6252555E6B988ABB51735145977E5 + 1CC6F28CA5E8776300D644EFA6C5CDDA5BD1A52C71527153CE41C4202D9AA9B8 + 2C0DE0D6FC34F2A8701975409651411337410E21721697D688A7CE44EB55060C + 68D1DA3417AB8185D3BB7EB92E4D24E4598B9BD84CAD01A47D0AC038718DDF00 + 2B9ADA5F900A6D4570DA125A90F23ABFC1025EB7D98C7FD79352DEB89984CD5B + CEE10893528AF26ADDCFB99D30DC0891EF2557D84D39AC356936AC37462386DA + 4C9A25B3EB4BB18FF58FA4F9C8823816274E5A86DD05FB708E7551579EDC869E + 0387A3C78011987C7C3656E52DC7DEAC234CCD3C8C2056BED8C1BCE343ACAD74 + 3AE7262B5DEC615CD436E624ECC021A6668611F8439217A918A9AB3465EE2D64 + 9F8787273167CD7ABCFDDA8FF8EBBFF6C0A88533B12E7D3D26C64EC2D733FBE3 + ADBFF6C5DB5FF4C2AE7367DD460577C8B8008A00A73E7DF3C0B923A9E4B2C322 + 47306AF714A97B038BA6455117988269B1D371BF34D5052C5A3C1440B5C691FD + 3998770E13E26899BB3E04DF1CEF87AC0AD71E77EA822ACFF1BDAAD8B1CCC746 + B515F7B0E629166653B491B1B4A3D2EE5D9633534826EBF322C528BD51732B2D + DA2A4AE102070F9F8386108D18AEBFFD1411F32206296CF41CE895A04612A331 + 17242D24F09D747B57F522CD17BC208F4C2F2DC6D56BF1D8B5EF064E9D8A464E + 76ADBB129EB22A08A5B736F831918085F53A258BA8403A6B7375C943B5643950 + 52A89B25C9CABA22C5837766ECA5037017C20A361098CF63E692D5F88C01707D + A78EC2B2C8D5D896BF9DC0BE113B981B2D09446B52D66275E25A8492038868B4 + F5E10E551A7205434A963340F02081F270F679ECCED98F6B6529D87EF91CFA0D + 9B8AD7FFF9077CF5ED70045F5C863515AB11746D01BEFE6614FEFEA7FEE83979 + 18065C1B85F939F37126EF16C35064912ECAAA64715198B525CC0600ED943942 + D95FE2C7DB3FAAC267D271687CDC186CCD38C0C85CD91CD70E2BA5DBA2C01A98 + 632BD33185059AA733CCFBEB33DF634FE2190F595F9ED59621F5DBE4501A1805 + 512C8AAFC521E5A9174E60AD41FDDBBA5F90AA84C684870F0B182AEF3227BADF + A18141CECF40386D3D531FE9F75AFBE0C10D1426F3471379D7BD0170062730D7 + 88E00559BA83192D8C37DAC544F50549C18863A6996BF59E32A07C2407151E1F + 8B1F568FC09CB51B90CE5CE31756153C378E5AF313DB3F0BDF29D3A9FD523A81 + 450965E3C5B4AAABCD4989999BACA8BD3269350B0FCF26F0322A9695F94EB3DA + F5A1C4700C9B331BEFBDDB0F3343D6E178F235EC2F38466E70100733CFB18206 + 95F6D4751449184D9BB482947D23AD38A12C4BBF93E2D25A55CE6513AB539CCF + 8D402CF32E4E145CC38CB52BF0F17BFD193F34182B37EEC38DF2449CAC3D87C9 + EB83F1C1EBFDF0F907C33070EB282CCC5888A0CC79989934138B52188E927F1D + 2D8CAEF530439A444AF68F00A6AD37B5B431AFA50372E4BD3198163F1D3BD38F + D19949FBAD70416B3F949C6D516F8D0C62DEDD433D4714F0DED7FA62D2CD99CC + 09711DBE729219C451390B6DA6699D8C230446C55A09F25880ACC2DC0DD3B938 + 3DA3E3F2B074E52EFCD87F123EF9A037E6CF5E8B7296F7F1B884E059BA85FB73 + 4138C318E4AEFCED83631863321CC35651CFC341D31DA8764010474B956DEC07 + 8C3B9A1637054B4935ADA2D59DDE9EC7128A274F4663FAC6C5987A8ED5B159B2 + 455FCA4965BC5BD6F198FAC163290BC30DD6FA85C231390C837AC9062A8ACAAB + E1D10BEC65BDA399ACBEBD9A49F37BA44840EA262AC43B7126FD1E464E5A88F7 + 3EFF0EA17B0E11692B689BBFAF42A8EF151420BDFC09AE67A733A0703986440D + 649AE97252DE5D2A0A740729F07246D66E6262CEEEB4C3B8C2E2C0D712333176 + 5630DE79A717C68D0AC6FADB5BB1A7662F0E265DC4B08933F1CEBFFC801E4386 + 60C5FD355857B0054B3396633E4DB40B931763713A2B6BA44CC349E6433FB3EA + 43A9B5710F3452BBD72A8063ED8D78AE336B2A904B2F7D9B541770D11C9783CA + FAD135A5CC0388646DA9C9B476CD8E9945DD61B0AB101B2FC58DB478A639B246 + 0E3DA6CC49904080D7129FB48351BFE3094B7F46251461CEA24DAAE94A0F96DD + 5CB170338EEE0DC7ACC92BB07D0BD372F59969E05613B78189F59D5B87323984 + B5D84E20EA95330442ED03B9C7099164A24EFA073F3BCA44FD117123D8E7ECAA + EB49832B34904D5EBA96885DB412DD89C8C7D664E6233071DF7DE89688A0914E + 3CB7CCFD57F587DCBA801C8C8CA94FDF3A3045A1AC391537D56307813F889ED8 + 95A4EE6BD9CB6D47D67E6CC9DB86E99767E2872923D0B3F7486C397696A5ED2B + 685ECDC0DDA22CD6202A4149ED4B54917855D5FFC2E2C539D8F2703FF6A69D24 + 121CA4D566395631136F314B3EAE495B851569CB31F35430BEFF7E3C7A7D3816 + 4B0FB0CE6BE925ACCB5B8F011B46E2A3F707E08BF759096FCB548A33CC66CB0D + C3B9C29B5847916B46E22C52F559CA443B91F6FFE989B369FD79E8F69ABB6575 + 0B284CB3B3A2D802BC5C7B726515CE5197296CAEF7A8772A402B6124AAA018C7 + 286FA927F2D420A7FA31B3EAB6525CDC8D5177C66163DC6E77788AC8FA22E248 + 488AE60AAA25AFECAD8846045845AC442CB2424F3471AAAAFB09672F476332FB + 507C4447E28F5F0DC1C19D17505E52A31AA0C8D5DCF888153C9A1561934BB210 + 4DF1C86D59D23067228B261072FE8608D961ABB56024D092F44E70EDF3339355 + DB6FD488642094945D09CBDA868569CB90D3E48AE6D457465605761FBD8E5367 + 23D152D38E429A826626CEA127F7965B2E74DF6CB17B567F545623D7CEB916EB + 36F369B66E218532EDF127B9AA90BD1496310C3C041B58914EC419116F96662C + C6B0ED63F171EFDE0C8158846BD16968259F17CAD64A2ED2CEBAAE55F52F115D + 544AEF6E952B89873F0DCD3FA1BAE12764563422BDAA9179DB9974CC9DC086F8 + 2D18BA6412DE78BB273EEFFD03D65DDB81DB0D0908617F859E6307E3EF7F188C + 3E032662E5E58DD82CDC801C6006BB87AE64BDD4D0B47558C81E738B5216637A + FC4C55306C5CEC782C495941E71F172C6BB57E14300A2C193A91F60B54D2431D + C6F08B89F42E87E7C774C8FFC6F3BA9CBD245205C52C4355DD6344B2CBD1161A + 386653E7187173023258D252D5671224D00AB300A2E86A0458315C896353FC3A + DAAA24C8D6DCF2339219B5BBF36038068D60F16526380DA2487470EB19D49435 + 7A052DB77F41731EEB0CCD500FAD2FBA750F119D2C62A9CA67DA3949C7DBBCE8 + 0CDDA1FCDD79C69A48725D29DBC4CEA147742B58CB575D4D2DCF283B96E1CCF9 + 1824D181A6E5CA7D0CCF98C32AD31556273F33BC57E451319B2A37BCB9A5820C + 9609507D2C7F0BE2581B93CE1C6AA97B2A9D3C37666C533E00114916C52FC5C8 + 75945BBFED87E54B0FA09185B8F4F58C46F2948A4A5C650C547279136E15A623 + B2A404A915AD2867CE856CBC58AF54DD555EC2E22FDE48458F7EC3F1E587C311 + CAF23207B24E63716E30266E9B872F3E1A8677FEC60A15A1F3B1891EEAA5D92B + 688E5D82601A148259E86001BDD5EBD936EB44F655ECCE3E84F929F32856CE60 + 8590511819399A1CEC084D9EC6C22DA4176AA800D59AB8004E035DCDEBA8B72C + 495CC7BA4B043E4B8C794EB2DECA020BB9754DB8531EAF2A7A07C52EC280EB43 + 9155938F828606B54FA323C7A1EFD541ACC811AB904D55FB10CACFFD57C18A5C + BBD2C184E35AFAC173FA69F20A1B71FC5C24662F5C8F9EDF8DC0A71FF7C18C09 + 4B70E5CC7DFA50AC0844E3DCDC3162FA3313096CF799962B0FCB98759FDBC4AB + 9FB3D6ACFC1B5EC5240B58BCA2E76FF045526D3ED33717626FDE49C56EB3B3AB + 71F67C0252932B5C6CD7BA6A988F1C92C0C6838CF531C52DD988167148892EE8 + 3E753E645A1B4CD669886035CD8F985CBF0943EF0DA5B2BC8061203477961CC6 + D1146686CD9A866FBF1F835327981A2A1C44F04882E75890EC76510A7632F7FA + 68E605DC6791B2B40A76092DC9A0527A08BB58F5AE40BC7AD65C4A6B9AD994F0 + 30DE7CE30B8C1F331FB959AE84FFCCE27A0C9E3E13BFFBC7F7F16DDF91187F76 + 1A1664CDC7C6AC4D589AB2923FABA9BF1CC56612897544848BB9F711C5529687 + 73CF606D662826C74DC5F8E8A9F45F0453045B82B41A8E6B898332BE4E0C129D + 491C5C6E2B20F7546A2CEDE7DC33ABCA51C214C09B650F39F7C35893B499DEF2 + 859840AE31286220BEBAF40D3EBBF025FB426C4151ED4F0889598301B70762D0 + CD21D8C5220A12742867A1320B3507B0CEEB094BE7949436E1CAAD5404856C62 + 4CD550BCFB4E4F0CEC3D019BD8E82429265F1532E874599285137D750B1D0E5F + 2AFC1742679DAFDB12C9BF75B4AFFB5D168114855D2A9688EEAC3CD0DD86EFEE + 7203DB73372BA2E9C05ACB9EC994C36F1533F4F81ECA4A6CEC921B7EA5E80166 + 325E29ABA1CE3D65E1028D4D12914A1DC128ECA033C394EEA111DCA2063A51A7 + 81892B5B1F1EC7C03B0CA1B84A31887D104E955FC1F5A40C4C99B6064306B24C + 3D7515B9B495E53111EE5A6182AAB01D9E1F4D8AF9820D0F4B190A7D9555BFC3 + 58AD6E0BB6A6EFC689C2CBA863D2F4DD7B39E8D37F0ADE7BB317D6ADD88D562B + 7BECDA9D64F4F961123E7BB32F76AE3B85CCF2321CABBC80712C672396A8558C + 73DAC9E26752EC6CE5C3559CE776EA55E12AAEE9243F13EBD654FA08263F9846 + 316925759C5588A00EE32E1CC0B5AA2A1C16C596FD501973D6DE5790CA4B1DA9 + 2529CB38EFCDCC7023E25FFB0E3FDCE88D21F707615CE4248CBF330B33EE2CC2 + 84BB33302F7A098A2ADB7038ED2CFA5CEE877ED706627ED41226FF58ECD51AF7 + A97080E21A5CB89E8C05CBE8876108C97BEF7C4B8B587F2C9CB51A97CFDC425D + 990484F9803A2740F776BFF57915FBCA1D3D7E17FB0E5D47F8E55434B33BABEB + E08CF7E8312CAEA9E7A07C17128E41ACF64486EE0278A018A52762DD2F87B58F + B2F4B86B13702CFC3612A34A982CEF12F8B51345FE2D14681F0B7D85A5D0036A + 5113A1D6E544829A06C3D9648DAB53073535D40A97A21C22B752DE3F987509A3 + 586060D0AD61CC9C0BC15DB695BA75A700BD09A443064D475A8ACB5AA5CD872D + 54E4CFE4DF65E9F795CA99768F355C13CA1B58992F0EDBE9605B2251B2393770 + BA221C73EFCFC394A5ABF0CE1BDFA0FFB763101B49C716AF364E7EE5A603F8F3 + 1F3EC2C8FE53F180314612EF24D7635A776E1646533C5BC91A4973B12D6B1701 + 955539A813AC4B5D8F5934F34A3FB9AB4551448683CC4398CD7E70E354C1E5F5 + E99BD88C9D472932B2C1115511314B97727B75F9BA26DA9BC3386729AEB6983F + FD6E0FA0536D14AD4521F4951C676C542A322ACBA80F3D42515D3392E8D76965 + 01813B0569F8FEDC00F4B9DA9F213373512D4E1C8E57469FC0E55B49B4066DC3 + 675482FFCA8CBE5E1FF747D0E42538B5FF0A8AB32A7DC9EB1DD0A349BF45DD4D + 387083A6718F06E89B373255F2D47FFD3F7F87F9B3D6A14D23830997BE61DBC8 + 74D30FD91F30261528BC77BACFC7246A29704EBD321F43B64D427C72A1FBD14E + D3E081563D6A4483E5341044A82683A82757707B4BF526092289B820B2B2F686 + 5A8AA4F6825E2F8E67F9FA49984791E0726504EAC9D24F9C8CA732D70753272D + 45499E4B945154439444BEEF422EFBAE252E6474EA5225AA48F1E24B4531AAF4 + CCEE8747A9D8CFC4DE7C862E9C598FF77A7D8BBFFEB12716CFDF8C0A5A46E47A + 985586911382F1C967FDB16DFD513437B8140AC10515426E39A58A6B59BB35E7 + 3A139358A38900BF92CAFC0E22C69AD4B5AC074BAF76EE29A544CFE75CC6DC9D + 88910CF65B4BA4A9656F6A5D8143D55012A26D514645042C4EA1109CFFBE5998 + 4213F24C72A1B53893730BE99505A86CA9653C97B05099986B4E6635C1628677 + 4F66C3F6098C661D173E193B8E8563D58A83740C8EC4EBAF7F89CF3EF8115386 + 2FC0C9DDE1C867D5C1974C20EAF2659DA34788851D0E3551B5866FAC7F8CBD9B + 8FA27FCF318822D755FB6AFD38BEDFA6848B84F40FBCB16B62527738879767C4 + E2712B35193FEC1D8475B70ED0D66D6C9CF18CE9A7907FD734BE405E413B2855 + B913F6ED6C573DA32D090264625D11FD97875CC6849EE5496BE8899D81E4263A + F808187B98FEF9D63B3D303F28148D752E201500D5E6C844028A00E7DA8CB558 + 9F11C612EFBB11CE32331266B1E9E16E9CA5E9732643B407AC1A8D4FA90C7FCA + 58A5A0ADCB691078AEEAA41EBF10C1F8A53EE8FBE31824C65A4E45BE43C617C4 + 56D5EFC42A636D817C1E4D0BD432CE7341F25CB6E3DAC2C2C26B99923997001C + 4423421026DC6388C44D3AE42206B038F26DA5AC4BA0A10E85163959F9502CCE + A0B2E5B4138EEF4B2CCFC2003EBB9B25ECC53CAA00489040F6CBE23026208941 + 209655F7866D9B8AAF270CC5871F0FC1EBBFFF1A6FFFF90B8CE83B1D47765E42 + 7E66299E5AFE0BAF48E0040FE6677645D9FCCE8158EBF73C678E6C55693D7500 + 97E8A0CBF9B8752573429D31C556853B40400FF0366B77BDD385E2BC47587271 + 23E6F080D358D9CEAB1C694CBCA6F6051E2455A3B8F0893A7CB709CDA402D666 + 6A7141C7EFC8F8528D72139BA04FA5AC1DC592944DD5CFB168F166BC4D44D8BC + FE046B0F6968B4942E028724C26C61AD25E108EBB2C22826AD22B55E4D7166B9 + 0ADA9B9032114B6242D17BFC18FCE51F7B61FC78A69A46B3744BDD5594553F63 + 94E92E7CF915DB492DDE851256CF53072532BC701CFE96B8295517C9A2C6BAC2 + 862897050D2C89C3AAD94358E06BC8DD91187A7324C6DE9B80493153D83AAB0F + 06DF1ECAD293E1F4ABBC50C8AEEBB86A60D040ADE38004E114E07399654D7598 + 123507336216D00CCC79F1FDBA61A73EB53A5AD0EE45A763D7DE0B98C4CADC1F + B2F8D86B7FFE1E7F7F6D28FEFE655F4C5C1A8CD8E84CB43346CC2334C2FBB13B + 7FA381CA1F7099F7E97F0B07B4218C920C34DCF81BD335A3005ADF8AFC69B3CD + AAB1BD98B902D98376DA4F7333DB515AF233F6E41C21D5DBCDC412CB06692ED6 + E4B042D1CBDA11F5A00455B46AE88D571E50EB3EF140EBF816656FE6E7BAA691 + D63FAAA95FECCF398BF8864264E7B662C8E859F8841ECF4B17A3DC63AA672DF1 + A0FDD1532AAE0CB1A0177977F67EF6475B458BD3122C2397989D14C44A12E3D0 + FFE070BCFFED00BCFDC71F31755108759193D85EBA0DFBAE5DC5F011F3D1A3D7 + 305CB918C9F9B816277314A0556648EEAD4AF2B79C5C8224AA9B8E58AF2C2759 + 6E653B3624EEC2F8C8A9E84FC575F0AD21187E673495DAC5B857980DE6F4BB38 + 8C15692BE32953A750784B7F50A110F23E1957CE53442622E1B6B463E81DC19C + 88A22B0C93F859CD2733B716074F5EC7CC796BF1FD0F13F11AEB3BFDED8F5FE0 + 9B4F8763E58C4D58B56327FA1F1D813ED7FB91481CEEDC7C3E30E00B04543CEF + 7142180BE0ED314AF6603F9F2F738DE15B4CF21AADEA6DB1016C825838D2339B + 909755AF2A3F1C2D3ECB86DF496E9BBFC7A42D2097034ACFAEC79D3BB9C8CD26 + 341B975D84D28920624AD4952A1420C8E10B45E41C9F110AAFDD48C7E0313331 + 7CD42CB7D8A2635DD4C65A36F28CAA6AD6629DCD98A9C5E4086BB09851AB12B8 + 27FF5E92B4147D578EC7DBAF0FC4C7EF0F42C8FE309C6C38CFBC8110F40E1A81 + 1E3D8753FF086111B28E0A753A7C41712B4B4710C410139F1261048145E9B5EC + F52A938C9F3F614A697C69292E30FCE20A4BF14796E6B21FF433D50F5A4AD2E8 + 5E702A17DB422EE13C2236C9774FF89978709F587FEBA2C8E7A98CF7BED61FBD + 0F0DC6E21DBB316FEE7652FFFEF8EB1F3EC0FB7FFD0A837E1883656C6775F34A + 2AEA9820F50B2379E3DAD2D13F76208B1E0F44C883D5289700306F9793CAE00B + 4EFC7D17008C394D45551B31CCF41EF15C324795DCE3ABBC64D771D7E71372D0 + B26FCD8DAEDBAA593265039B111E2C384571C165C817875006BBE3C4D796B131 + 79156A9B9E2123A71991F1A568A0475733259FDA91A616DC00EDB554E283001A + BD5F1B771CC73B9F7C8B857337A2BEAAA3509600A34218798D00121B171ECEB9 + 847E2CBB38EAFE18C6286DC37E8948CD202244ADC0806913F0FA1F7BA3FFC869 + 587A6F15F6D51DC6AA8B5BF1419F1FF0438F09B870F4363DB02E68D00E295D7D + 437945452EE75CC52127016B0AA0E5D0F8B96A1727553704B05D87E55264ADDF + 4A0792312C4AAF452C9DE4A3AA75C87A0439C48860019170CF272CBC9C93DB88 + 6374684E5CB812EF7DCD4ADC7FED873FFECBD778EBAD9E98309C91C31B8F2393 + BD26CC203A3504FF974207DC08B603187097391C11A318A7E4323FBB0FC70BC0 + 2A8E24C86D5E8102B7719F3B7AD52E1AE971ADCF3D14706BEEEED83B6D20E878 + A61B0AB42F70F7B330C937361B6A66D61533CE8639B70CC57842F3477663152D + 26DB18E7BF84C933CB31266222A69C9F87BDB72FA3A1B1C389E077FF2C6410CA + EB8E97E1BC6BA8182F5ABC8D8160BDB17DDB7157BB27817D028C6EEEA7B88848 + 6CDCAC82DA16965C0C62953E36064C5E8FFBAC807DA59C6DA5C217E18BBE541E + FFF53BF49B331A1B0BE824CB5E86C12153F0F65FBEC3E4D121C8CC705990F41C + 4424128414EAA4945AD1192CC0D7CE2155364638861641AD7BDCE29F00BFE537 + 102451DC44E62E9F8992CCCF64BD4A5EB60E5F9047386B239D8B092965D8B13F + 1C73E6ACC777BD46E0F5BF7D8977FEFA3D3E7D7720BE1936020BC336E14E5CA2 + 2BF1C9B85C4484EFB03E2F6868C478FA1EFAD329F7E3B53ED89D72D66DB5EA04 + 1EA668E3F7E07C0197C3779A48D8DEA18BBBB9F7808F76420C53A7700DDD0D64 + E8E682040044B635C327D21AF3D9347C168E90FA36D21D1F4A4FEBE182F36C41 + DB8A07F9A5587F653F26874F63079D60E43778C62CB911DAD8083710F133E108 + 127AAC295B59E5238C9E188C8F3FFC01D72FB253A675B9C39505482D454CB9E8 + 79F837D9D7611E7B226C27F73A55128EA8865C6C0F3F830FBF1EC8049C7E18BE + 613256962FC5828885F8B4EF40FCE37F7E0F33A784D064EAC23255E1826B1667 + A0D20FA4528425B2690E21002C73147148218BFC2D806789693A74445B9C54E5 + 3DCBCAE50E7DB0C221941860EDC70B6AC245AC1072F56E3A9BA99C609DD519AC + EDFA35FEF51FDF6158F897A4FE4138BEF322E2EF6763DDFD5D1895C800C4D23D + 68786EF9780CD8539E6C41528BAA37318F624552187B5C0F439F6B83B03E61B7 + 4AD15417DF6FCAEF5D8A8236813A50BC30398DBCDB9F98A58984DCABF56117F3 + 764606AF036A6C7243520033B6A8B46AAB64931F232A633192F9CE71CC6ACB61 + 8CCCFEA2E3EA9EE2FC564445D5A2B2F825E5D116A5B01E65DB5A51F0F45AD4A6 + F347C521199C40A706EAFAA632DEFD982C7C3F64327A7E3B824E2E5725080534 + F2ACE81216702939DA922BDB78E01B33B633586F357615EFC3860CA6696E5E84 + AF3E1987AFFB5217B83613AB4B5662D6B1F9789F31F77FF9E79E18BE642AD751 + AC865785C104F0E5C7A2E0AACF9AA5E82A6557DE2BD45CA8BC85007240AA6E92 + A5F8AAC184838818654587AA9827FE6DBF64EDE5747E5DB99580058BB7A2076D + FFFF4247D4EFFFFB7BF8EAEFFD317FF2729C3D720999C954BAE974B486C6E692 + 7D18953412236286D3B37E9640C2FAAF165029E26B0330E97BBD3DFB00E6B0DD + D7F03B23B0FC019BB65BF3B1FB06DC73B4037A3788AAC7234EE399E291E6AEB6 + 4D72738BCE1CCB0F327463C29D4EC80254A768C1D34C6C191E391C058F4A5147 + C17947FE415C8F4AC085ABE9C82968564335F0E49725AF65DEF06DCAD2C6842C + 0A644E5101B65694F9AC58AD763332F2D39E83306DE67214E8262022AB5B5441 + 5B6F94CC4E6093AE9B229B279795B3C6EB5C8495ACA792B804DFB37DEDEB7FFB + 0663672F5416B0D505AB307C3EC5A2DFB32CCC877D3178D7585CAA8A74B58D12 + EA2DFA8A25B3AB8A7B821C060208408B99537E0BE77003912618F2DB12A3E41E + 2960ACF407CBC2A4F7599ECDCEAF41F80D86B484EE470F7ABBFFF8BB8FF1C69F + 3EC5C06FC722647618C24FDF41716E255E3267A0D3C5B946B312C752160B989F + 14CC2262999DEFD1C4431043D6470DFF54FE152C4B5D8651F7466355E2162283 + C3D8D6D9AB013572C9B939BFC1236CC6E926F77316213387D1D643F94AE948DA + DCEA0120C6BB3B4FE257C626795994E3C7F69773532F97466261FA3C5C4E8DC6 + FDE8624C5FBF145B769E461D6DF37295B6D55087086394E424FA216C250E2DCE + A0EDE7B278B35D531315EFE065BBF0D91703993C7F86FE031725140A2B61C56E + 85D3B2EA28C5D3B2E03CA5A4B09FB14763D9E9675E7830BE1B32121FBC3610B3 + 4257E14CED25EC8C3D8E6FFB8CC5DBFFFC3DBE1D3114E32E4DC456E630AB5758 + 63A85C5FB1E0488291E45F4B1D634110A1FC5A7CD387CA67441E97D4D49AE6E7 + 6864353E11AF5E8A6EAFE562635305E1735955EFF0A9DB983863251D7C831407 + F8D3BFBE8FEF3F1B86B0903D488ECC4213C3285E6A2F9E07E4587F58882773AA + 7A5487B24744188FF0CFCE27A972914994CEE45F53AD8217242E503D2FDAA5B3 + BAD33B0C44D0FFF4FA0A3BB537C7B30DEF643A7573338105117503854FD78D3E + 42B8CD91ECEB3427ED32F078DF08E31B794CDF2EE2C2E98ADB8CC15980F9ABD7 + A377EFF1F871F4683C6431607D55B636333F3816578B63D1ACBA007628879A92 + 2A59DB524EF56624A7146302CB2F7EF3ED285CBD10E57A8E3F4AC616D1C41061 + 5464AB00296F50A64DBEA6A6F9259667ADC5D08323F1C94743F0F67BBD31E9F8 + 4C1CAD3A8DE57BB7E383777AE3DD77BFC3A46D73B088359096A7AC61EC0E2BD5 + 710C492812FBBD983B150218E28C588DE8B6C073AA14CF8824F9F5B56CBB154B + DD240A9799A0BFE3E109360D598B7589DBA9949EC681F47388AE4941F1A326D5 + CE3723B31A27CEDEC2BC05EBF17796ADFCC3EF3E61D8772F0CF97122D6AFDC8F + FBEC3C5A57D5C0F5D921A7E310DC47A76F090462AC7B647F5D62E82F6C181385 + F9090BE8BC9C4CE7E36A5A069D726B3BC38562165E4418F7DD0E94DF6D3D3495 + 66F33E63C93ACDD4633C130EF59A3DE7E1A720801390DBF7D9BE9916C5F68694 + A64C79A29861D2DB4761C1DC4D98C9A67B0BCEB18772F676157F13CD5081CA76 + B6F713B95E0633144A0DDCFA1D5AF115B9FB2C0BFD7EC3908761E23F88CF774F + 43A891F83554A130410A1161045845A9156ACDCF441C91AB8C31431337CCC327 + 1F0EA69E310E4111F369559A833E93C6E1CDDFF5425F16090BBDB50D2B7356B1 + C0D64284E746E099B45513F95FA8BE884396E94E902F27A7919D7FEE62EEDC75 + 38B4EF160AAB9FB293E8650607063351668ECA59589EBA94E99CC14C305AC078 + A43998F570266625CF40D0D50598B8691E064D98859E9F4DC01B2C1FF3D1DB6C + 753B22187B769C47667C055A9B1E77E6000E40AE4D92DECEC6EBE71A192CA222 + C4E32E8314673270B0CFADDE5814B706F556099A4E20A3E721FB61ED89CFF75B + E26127B26EC295C228EBC70D047E56E50FE995D32D103F4357A8883139258A98 + C8634C48520BD79CD987CF26FEC82CB6FB2C8EF5136B95BEA06FA19489F5E719 + 7BB390757D82E9E05AC38038029BCEC4913DB0364257B690574AC5F9AD7B2EA0 + 2763E657B0C47C5595CB14ABCC967A1E9C8BF2F6F26F114B949953A8B9851C72 + 7F753DC333966CC7DB6C09FBE9209680B93F0373CECCC7874CD8FFFB1FFA63C2 + 9A39D8494FF4B192F304E0158C175A8F62969814EB938456C8F59C94B9B0B41D + 274EDFC3CCD92BF0159B0ABEF1BBCFF0977FFA0C83674CC33252FF3929731882 + 3D196B580AE672F17D6CCE65424FE6122C8F5B8129E13330386C12FA8E9D800F + D972EAAD3FFF800FA9A47F398CA1D3CB4690688422A3A6B8F3E9EB7D1102221C + CF4698BC6679999C3E004C11A4BA9C1FCB5094990C769C8295C99B51DDEAC919 + 14D19679583F5E6516ADBFE93988E8604A1BFE80D869BE7644518060BBB1F3DF + 0667F0C69AF418A609CBC786B9DFC17F98950A5C90E97AB085D195E7AEC663C6 + D6259870621A6B1359E5E23505E2EF0676E3C9607DD01D39075876652711C5CA + E3B4589B0A97B0AE87E925183F7531BE617EF299E3779497542E658214314564 + 48B114110174E978896BD20AADB6CC94D63CC294392BD9F0E35B8C5C3915236F + 8EC38F21C3F0E77FFC1C6FBDC7BECC27B6607FF141ACCC90906AE648A76FC071 + E61688995420AFAAB61D37EFB02D6FC86616021E843FFDE163FCEB3FBD852FDF + E947C7DC24F40F9B88F90C9196D8A6D52C4B19CAA0BF6B2C4773312306D34F04 + A1CFD29104F88178EFA3FE78F38F03D8F490E561FA0FC388A53311746501E6A5 + 306236773956E6AF64E8F5128672272A8EE674D6EA3301345126BD4B4D9E2719 + C87D8260BCEF42D13DD6C29DA662B3D625EFA018ABCD498205AE61555C944570 + 3C5E6402ABC175BC3A52FD4923C6E06EE2E70FC13B8B6A3664B003B9BF016DF7 + 2B7C3231CE01ABEBE93CDBB1EF3AD66D3E8D2DF187109ABF16054C3A57876720 + 9CFBD59CB48A2FB2A885296F3E26293E7631029F7D3318DF7D3D0277D890502B + 67BA71B6F6D00A3268A7978ADDE18F52BAAD334CC928C1F7EC88F94D0F966439 + 108A90FBCBF0CDF0D1F8CB7FFD115FF61B8239B7176277E94E9A5837B3A46428 + 36E56FC0BEDCA3882F2F45617E15EB375DC1800153F117C6F1FFF9AF1FE3838F + BE479FEFC62374318B8A859FC0FCB445585CC6FA4B65BBB0336F17FB1E2CC6BC + F34B3169D132D65F1A80D75EEFC90A7AFD18023D147D268EC3B07513E8709CC3 + E0C065D85CB4990AFA4E8A651425997B1092BA1C535928A01F7B5784E7492B2C + 8783B03ED2D4D96BAC8E37CAEBED1C2D64B8C57CE8B10FC6A3F7F5FE589D20D6 + A40E88753BFD2C841051577D2BCF5ABF753EB6EAD2E344B54D60F503535EA981 + 0D49EC8ABB8E57B3E2EC0274BA39B11D3BE2587FFB528E2AAA5BB164DF1EC6C0 + 6C4443C52FB8527B0F41A9F390CAF81F5FAA7F2BC9B9D8FDCD432F2E6E4010C3 + 29DE65FCFCEA35BB5057EE727429DF8328C4823CA69E611DA2CE7130CBA9C427 + E6B33FF220669E8D457E5E1BF6479EC1DB1F7E8BD7FEF107F49D3B9109351BB0 + A364872AF875A8F838B6946CC74AD6475D7E7413E6CF6332CB6783F0BB7FFD88 + 699D3D3068F8546C3F7611776353515BF218A594A577D7ED4670FA226C4ED88B + C5E16B3062C514F41C3418EFBEFE0363807A321CA21782D834E502C3BC23121E + E27C7104C22A366376EE6C8C8B9FC0FCF0B92A5F615DE606CC63DF3AC9D59ECC + F0F3BE77FBABA4A4B2E606D7DA0D71D697F3C9ABC4607D51D1D6C6B6C0C92AFC + 5C039A073CF23DE70BEEB28DF064B6211E834DA9FB55EC93F2DBC81CF8A34BEF + E8FA488EE72BF71BB0A580535E688AD70EC8EA0662073CEA841886B4D1C90BED + 09C30144AD7A01FA4E1F5B8BF290538D85143317761365FAFEEBC693BDDF538F + 47563F50D952A9D5349BF25E953FC04DAD674459797B15F29B8B59D52E0EAB93 + 76E25651BADBC176332211DFFD40E7D7D7C3107E3EDA1D4A216368D14825C18B + F862296DEE9230822CD6193F673CC4C93377F039116122BB6F96143EC2E5AB09 + F8F4ADA1F8E0EDFE98716021D6E4AE67CDA4AD2C29B99BB550F7AB1A4663D74F + C1E7DF0DC29B7FEA85D7FEF02511F25B0CA5C2BE9DEB8B4B2A73F553E055D450 + 81B5B7B761CC8619E8356A083EFAB437DE7FF307BCF52FDFE3C30F07A0FF0C56 + C138B19DB9C7471159633903F9DC5392B0F256E60E33EB6D6EC20A56C198498E + B449E9173359C66656721026C54FC5681627966684FB5958E0996E82ADB0C2D2 + 172CE2E0F5080D40D1F74888C8B1DC2BE877AB3F1B415EEF78D490127EA677FB + 70C13976F619AF2A889FCBBAA57A62B82F4106316D9A44D4785E2386465ECD2D + CC7AB77A2C27005604CD89A3980BD5EF0E50F4E39C02E40CF69738EDAE0FEE51 + 54D284D5614771363C0E69258568FB490CFDAC8C57729FBD87FB53194BC0737E + 14CE6A0BDBD8256649322B5BA7484F83A5CCE49AACFAB31DAD3E877A9A3C77EC + BA80F7FFFE1D268E59849C4C234483E3B9F39EADF9E9AA792A9459C422512AAD + CD114EB37AC321FCF1CF1F61198B55D5D401619B8FE17FFCE7D7F0E65BDF624E + 3883D56A77615BF966ACC96625ED88AD4CE35C8C77DEFE0E7FF82F5FE26FFFF3 + 5BC6380D42EFD113306621EBAA1EBA84C8982295F37CF0E855AC5C77083D06D1 + 03FCB7B7F097FFF915DEF9C337E8F52ED34B4787624AE83CCCBDB7004B8B97E0 + 70DD4955506C1BB94E566347AB2D05303CF46A7AE06F96B28C66C67E55D96F6E + 4A3045A4D918797F2C43BA27B37EEA7015ECF8D4CC78B75343FB799980E9863A + D73F6AE84A0E6191E491F746222C6E578701C44230B9E72545A2FDB9C7398FC9 + 6C23BC04495574D4099517FDC426B2B98D1DDEC41E8DB04E73F286C57A2C79C6 + 01D83572E9DF167DF01CCD83D5A9AF6C3A83034B0ADC73E17A973BA9C27A7551 + 6903F6B2F7D8759649796A4B01BC5A761783D81FE070CE55E6ACFEA2C41169F8 + 21F903CB99D5B526653B0A9AEB105E731DB3CFB06CCBF885F8EA9B6134299E65 + 62BDCB7AA129BEDD72A2442A0BF855069815E6AC0E9C092B5366AEC687EF7F83 + 630C5C8B4FAAC498092178EB8F5F6141F046CC8D5C8A29999378D0C1987C7A06 + BE9B3C041FBE3B08EFFE6100BEFA7E18BE9F3E11BD868FC5673F0C60B8736F9A + 724762F0C899E83F621A7AB004CA67DFF4C53B3D7AB2FDEC44CC9912863DDB2E + 2126228BE99FCD8860158A5545ABB0B96C23B61410D132D791E2B307024BBF9C + 29BCE178FCE24B49A82C21D0EF62D61B4BB5DC1FCFBCEDE118C142C27398B69A + 52CB10712762649CA75B6C723A6379AB0554772B933126660CC3D09723A3BAAC + 1300C9383F91846F62A65F3045B695696B1861ECF25A6BE2E37E487405BB65C8 + 07D1743FE76D8E4E506D110D8F89FA7ADEBEC372AF0B81BB212639B03B73F126 + A63E640AE0DA6D27111999E351F250DF9F5A9BCBFECEB3E9DA67B30D22CA819C + 33AC3F9AA502DCF6D0BCBA2467291ED4A62364C30EFCF9DDAF3196A24C5C5C7E + 47B33BD10D2CB9539BF0DC65422C4450519E1230E78AD44665D5134C9AB98296 + 9AAF7168CF25DC8DC941AFEF47E093777E40E4AD3875CFC6DCEDF87EC7407C3D + 7E38DE78E30752F5EFF155DF0118BD7B3A5664ADC696A2AD98BC711E86F59F89 + 7E3DC6635CBF1958B180358D8EDFC49DEB29B84545FECC9D1894B25A81A4206A + CF78E3F3768A5C87109CB9109BB237B32AE0015A94D621249DF9CC6C15156595 + 6C7441960D0EB9CEB2C646A6991E6238F970F4BF3390E51EA7D3DE9FE6E179EF + 844D5D000CD9C393F99754A58C3D2CB1E90EFCB3F658EF7533732B9624AEC77C + A6A386B1A743615D6DC76BEDC06E8A62E6BF1DD1DE58B7C3BC7DC5CCB9957363 + 5C8F21BC7011838878F740AB857B9BB0F9B9979B52924B10CCE2B137D844D054 + 56CD478525CF2705DAC0EA6EC2E653AB2A5942710B76E61CC4AADC3598752308 + 1F0CF90EEF527EDFB5E9125AAC322B3286BDE0AD56DADC95A88582111158ADC5 + 1D7C97C57A4C63D8D3ED6B86689C391281751B8FE2DDF77A2288E98CD52C0426 + 57444C1AFA4F1CCFAA167DF0F7D70761E0981998722A48B5A25A59BC12CBF298 + FA991F8A7D59C751CAFED12DB56D68AB6F63ECD0338FC2049DB6851F24561530 + 7C8156A5874BB02E7B1DCBEF876115CDAB8BD219EF9477C4955DA72F2F8757C9 + 0251C7D8D948E4FAECBA0AAF7BEB318EF5873FCFAF00FF511224E13ED7CAADC8 + 5ECE43859C8B9C6E8940054C4859C0026B53D87CE562EE5D976EA60E25008031 + B9958E1F0AE031B795D2176731C7D6CAB95EBB936BC0F390BAA033F041D3C9E5 + B4D9F29984C244C515226CC3715CBFFE90CAA4F71D92923BC14486A0D82568A6 + 3B5F32B1AE54C4D172B205E336CCC6E73D0662D4B085488AADB442848DD91BC3 + BAE5526BA3443FD09D323580C5C7E6A277BF8918D077224BD847306E693B3E67 + 48C3A97D9715274ACA28C69459CBF1B7BF7C86B7FFDA0B83C7B10872F87A5A8F + 4E6073E926ACCD598B65E9AC99CAFA448B1F86908B9DA3C7D92116C58E05D6DF + 2D744D6F66DDD651B1A3D9EB602A2B5ACF517E86B519D4471EAE475EA3CBBCAC + 2ED96B731C730B053845FCB06EE88AD5C803E61C808A254DB13A6D1339CF689C + 67856FF774ACF968D364667D0566B1C39054F4BB59CCF29426121B4861CE4DF9 + 3C44A936BCD05E89AD9E9BBEC1DB8DB67D71536F736DDE9EEDFC791790C1A458 + D681A95FC6A0CF18B9187E2B0D9BF75F446E2ECD7D4E13313E13597847D601F6 + 3D9B83445601930A83090FCB318305BCBEFB7A0C36AC3BC32E948F50F9D323AC + CEDC8807D5391D8062592B34B553092856A885128DE480F82E89223DCF8CAE2F + BF1A88E1C3A663F7EEF3CC4B9E8D61448C6B9712703F320FB317AC6344EA17F8 + 848A73F06CB2FF53A15895BD065BCAB6E248E169966639CEDA42ECBC93B2005B + A5644BE66A8A2B47186D6A8702071267AD37ABA946AD7348D448F4BF39880AEA + 682C7DB89461E29B1153C275D98652E7E983D26AE07253E340A8B2D3F48CF3A8 + 647DD82D2C963091C94C174AAEBA11539DB33657F3DFD155E9084A9EC312336B + 105561353AD1786C114D5D11DD6D31124A2D73D4BFED7331005879CAC5E8E1C3 + 136DEA409D3CEB7642E2070E2D38ED0632B860CC0D949A753EA7D7F7D8B92802 + D606360E31AC22E6A285AA99F1295CEC9DF2042CCC0DC68D8204EC3D7A13BDBE + 198B4183A62947D571B6ADDD90B75D35111C1435848D0F233A99D4F4A6E8F228 + 2AEEC8022CF10CEF3972137FFFE8478C193A135BA8BF0C1E3885BD9397E2225B + C4CE5CB816FFFCCF6FE1ADDF7FC20E9AAB9197EA9AF7918A6398913C0B2B58E5 + EF60CE31261F9D625EC32A6CCCDCCCD28FECB8931ECCBA49171952EDC0199C00 + 8E0010CBF650D313666000CB580EB83994E51987B273CE241CC83DC9A85667F7 + BE37AA2F40A542C44D27650078D9696A36C07CC87E1161195B5543C688B2244F + CE20E35B0877BE2892198A9355E5C00A761CEDA4DFF09C55B0AC20860FA0F7F8 + 4A6E0C14A185C8692E63216AA7B16C70E7FED312FF350C1BB7750F193CD891AC + 816460DF916B1838720E6262B23BC6B7EF84C67EC3C499F9A41433AF2C42FF31 + 93D1EB8B91EC88B3066189BBB1B46805A633886D232BE8DD65CFB148FEE4D736 + B9636ECC8D7613152E542BAB6D94C1C2E8E57EEFFD6F319A8AF7F295BBF11DEB + A68E183C038B8237E38B2F07E3AFBFFF108BA6AF446A6C9687BC7E9BBE8DB90C + 980BA638B432633536646FC4362AD5DB72B6B1B7D90A7EBE10D74A635D9D82FC + 511DEEC61366E1EFCB3DC108D745AC9E3D1B53D92864D8BDE118728F6D676B7C + E70F780C6F2DD46DB133C409478792292E3820A99ABB05B4F27574552AAB7A4F + A25EB39CCA7A479AADF9A8E8155BD20E61F0FD213483EF7357C6F0002E0BA8D5 + EB8DB35634D45890A30FC1984F273CF2B51EEF40EE098F7264D68F6D7C3FC8E0 + E5A09597D750504ED1F13564F86CDCBC9DE289A0E6C2640222371A9F3DA202BD + F9E871BCF9015B37F51C8DEB379371BE3C02CB197610CB9EC8F56CFDEA569CB8 + A9B975D5A863C1009DC32087A9CB451AD5945153F304CBD7ECC3DF3FF91EE327 + 1200693DFA928EB577DEA0B7F7DD5E78979EE2A0498B91109DEA58F2309FC55B + E7262FC0E424CAF6B498ACCB0EC3C69C2D08CD5A8F4DFCBD8E16A02BCCC5D045 + CF7CC9ED32C71666E0ECCC3D88E5CCEBDE96B947D54B9D1C37996D6E67A1B2AD + D9094C034232F77E3A8FE0FAD4E90C8DFBD518D63D6DEC8770B9341AB7CB923B + 572BB1EE69202398C65A4BC3EE8FC47EF6BA33431CB4C8AA744BFD6A41063D07 + 6FC451CF5360C4BCDFD7BAF4771AB005168418FA80D94E41A3E6BDDD72BA5993 + D0B2E0850B31E8D96B24CE9F8DEE84811E6BB1617C666E35A6055137605DD3EF + 668DC4842B5351CE20A46B5509DCE4BDEE479F30B0A5B0AD12E78B6EB389F842 + DC287BA0BED3655674C12DED732AAF6CC5CC596BF045AF8118316E2E468E9943 + 24F812FFF3BFBC4E8FF127183F721E22AEC733D4DABB8853D6FC84A1D4B496D0 + C428FD9AD730F573357B35ACA4B2BB2567277664EF63B9F62826F43B8B37F633 + 6CA3BCB627FB18E6A5CE67FDD4BD6CD7B55F21D4D5E2385AD17C290626D47A81 + 0C6FC06E02A07E85FD554E8CCD89FA6A0EC229E43635B142F7548C8D1AC79235 + 919E93B27402BFB2BEBF399BA2B401F48EC8ED09D02E2C74E02E2A15407F6E7F + BF6B5F6C21DCD662FC52136B8297AFC5E23BE6D96E0E3BDE91936B8E61E30CF2 + 582D2BAF6DDC7D02FD064CC182799B919D5A86F0CA9B18143784A1CCF148A722 + BD36398C25D223594F299A057E2F2876BC2DE3A8CA01B8579AA11C68AA098745 + 0D346216B272F7F4396BF06DAFE198329D358D068EC73FFED73FE39FFEAF3F63 + 649F19B87B2396AD9B1CD8BF6D73241D737BFA41D6335D80E50F57D07212C4C2 + BE612C3E7654D5395DC1DECFFB73CF763422F743C11A591F7635235C454CDA96 + B507DB73765036DF829C5A5A909C59B6C7881E9C47E6EA042CE6132640DB81C5 + 3E573F9CC30E80D7186E3E82D6A679718B680173C544B92FFBBB1CF05CDDE2EF + 9D3E4425AF08618E29CF5B744AC731E952933E10AA1B6292B5F2B4CC3276AD1F + 8C75CBF6326FD893CABA176C4C50AAC95D6677CE0183A752761F8D63876FD221 + E5BA2187816663A2A7A8A49EE7B448DDA597F61443A36F1139622B8A50D5D2C8 + 40B027ACA0F10BB6271F66271C57609FAE1421639457B5308C7B891A3B684E28 + BE6225E8FFFE7FFF099FBDD10B670EDCA0C75AE231ACC91B94CED173CBDB6EB1 + C9A0529AA9304F63EB2829F4BB239B7555B37622E8E11C02F5612265C7BA15FC + D90FD9FABBA8B18DCD41B6B2EDEC416C66F2D28AF4650CE3DE80D2160B9804A9 + 9D104A7F6867404ED4DB17507AFBCE0F12DB8156F2B0D7339C5ECAD6AF4FDADE + B9929EC378F66202FE5E19C8F76A9FCDBDB1EF87F9B726CEFEF7C096036D1D9E + 3B7AD00B15A9286BC6B081D330A2CF2434D436BBEE3258B13D3E252D93E6D2D9 + CCD5FDB41F9605EF4099AA37DA0139D56DCF29366CA6EDFEA4EABC2325DA9FD3 + 2CA40A0070DC4656858EAFC8C791DC730C15184BEBCE391767B0DE994E4FF7B0 + 5173990BDC1FA319B2F1F7F77BE2CFFFFD4DCC1AB7020559351DAB700256C34A + 622EB78E76DE25C96B1092B690E6D46DAA825E086BADAEA0A8B42A7D252EE4DF + A743CF8788630C5644417B13BB016DA6A52698D5F6A6244CC50222570E2B5E77 + EBF2870C7A50070AEC0D610399470533A8E6B32FDDE8E8B1EC3A74CC93B80430 + 803FA75F004374DCE220F22987AB2FAE633ED3F93E8B33F83953FB061E3C148E + 0FFFF615656F57CF01850B36762F00DDCC4E3BFB0F5E61A2CB40FCC0AA0D97C3 + 5DF9C89D2E2E229A551916272F45142D1A7255335938A9AA948D41120944FB08 + 444B9850729DF13B5731377E098A496DE54A6655E841F41BBCF5664F7CC9CAD7 + 7FFBEB676C00D20B978EDDF46BAAFB597AB3D54BD68F352303C8245762391378 + 42E85FD84A2BD2969CEDF4186FC1FACC30E633ACE69C76A9F28EEAF2A53A706F + 9B98BEBA31730716D00A259D3A47478F61771C1133181DF86B2FA7C30F04596C + F78831A09556AF56760375AB42428BF8A323086E94476362DC04AC7FB889051A + 58029D97475D24632E8E5308645E6A5001A82E6C8C396EA0CFDA453177E71E5F + 2F960D31BEAF624E42FF7E53B122780B33C79CD1B0ACA2053B599EFCFBEFC7E2 + ABAF876233A3415B98D0EEEB8A632BABA10F86B295D551150E7C24FF2A0B8C8D + 67A8C646D50BE100B942C3E3263C6219EDE0C45538CD0E3BC9F1C5D40BA63091 + E6477CF477D62EFAA7BF63C2A019C84C6172BEBEEC1B654E42D6E52DB984CFDD + A57369266B032DA702BD262394FAC25102F5360235136C28FF970A1BD3782440 + 639DA37D9D92B27A2CF79A52C6973C5C4E4BD214D553AD5997F4F346CDFCC9CE + 4E1B2AD618F3730338DCE285DE13EBC6428AA9FBB2CEB1FCFD7A2C649BB00B85 + 7769013363B2D96485C18EABD8956852DC78728553EE3075174618DBED0FE065 + 937CB86714F708CC2EE1B97A73D1F6FDB4EBAED61CDD9CCAAD403BF5673017A7 + B570EBD59919856CE0DD0707F79D559F88DF498A4A3D6A676D7CE6021F387D17 + BDFB4EC07B2C5D386DDC02A4B252857B386F87CE71AAD8A53E2871B18A14A5F5 + 94DD319318CB4F806B665F371EC466466CEE629DD394AA3A6C20A59E7168317A + 7F37151FBCFF03DE7DAB07FE4A4458BF94652A297239228206DA40B8A005408D + 8480D5A4820B52A948D3F1B79EC9358B09CC2BD2D730ED527C0D31DE2BB8196B + 156272A53015C3698E9C93305F75E85CC136B60D5293466029102A68DF3B7F40 + 67C1A869D654E667EB5D7AB802562A0CA2323C3C6A04CBECAF617E4910FADFEB + CBFED5FBF0D8D8CAC49A1C46A8862AA3C2EDE214CF3D3610C2EDA9D62FB0CF53 + FE768849F2011A9DF7C8C7CD5E1D959A52C91E989240C7DCBBEE746B20C00F67 + C5883758A367F69CB558B5F610D6AD3B8655A18711BAE514C64F5E8A5002654A + 4C06D32C0344716B71575812660AA9E6A5A25B6C1DFB18EB93F7923ADF473D6D + DB27B36FE13E3B5016533459B37F2FF5837E78F3AFDFE08FFFFA213E7AED4B9C + D87B4E1515F6B8FCEDB09DB2F27E65779769F3F70B8A5147736F637AF27484D2 + 1AB4346D2526274EC77CE10C69215486A5A5969F9758C090C53CEF196C37353D + 613AC6268C65FFE66054B6BA14687FD198AE9B6C933581CDBE0E8DF8B21E1FD3 + 93B235CBE3366316FB33482E85441194D158B1256D3F46C78CC0951297B95C80 + E754E175560299CB4A1E8B51D0D451CE47DDE0C4C1BABAF7F6E5994824EB0810 + 943A1DA97D9FAC33EE6466EDAE9F2135360F53472D64C1AAA10C6366B587A53B + B17FFF6526B6A4A2BAA2D9BFE9CC3E638B5AD550B69E9BB48095DA5680E55671 + A330863DCB26B1C5522C74FB86B3E7A2F1193BC6FCF99F3FA3D9F4757CF0B7AF + 71FDBC61EF3614792F30E2FAD881B27A04FC590F175384D898BE13AB189A3197 + F1FB33591B76299D677399AEBA9E7A40B3651133DFE5A4A48A3FE124F3156630 + 777962FC244C4D9A85F4C662DFC8E080036EE4F14579F564B438A0C7B101684C + E9437C7AE573EA608B58CBB6DC0D708F9EBC6478F9691A0AD6AB06E995AD2D4C + B46261E5E88138927781860D330E44639EF36E77C2096F48EC8BDA7B6C6ED789 + 827B3BAC7728A7A015BB6678C1BBCE19F4C012A72FBDCA2A4B6AD16E8A263E21 + D01B09737DFE92333B537807E3E346AA2E97750C1C8B609F65293A2C447FF781 + CBF8E4F3BEF8331B67FCB7FFE34DF4FC70101E46E53BC376572993D3FDD667C9 + CCB118C14682D3E2A7294BD22A56B7086559FA10361E4CABEB88C3725BE14C8A + 6C884059F5651493D83D93210FBD6FF46559C69D14450C592490BD93F1BCC9DC + 364053B8E0651F1EB352F0D1AC1B98151DC2329A0BC8B166E240F64994B6BA7C + 1F912C39B93A7DAD2A7D79B33C869530A693180421552A1BDAC7143DC546B9D5 + BB0DB3A63BEDD6DB1ACD319DB8A037CE18C89E39DDD3795FBA8F0CDD9D83D7E7 + ACC995353733D17C12CBC00751246A54B7D73C6D43D8BEE3F888354DDFFC6B0F + 3AD1DE468FAF862131B91C452F5A51FBDCE6FC097472FE64756B4EED14F70E64 + 5EA4323D9DE2D122E6236FC5C1DC232C15B38E1EF158F7DB3CF657FF61BC43CA + CD1F60FBDAC1EC6BF0F919B699BD3804E9B55DB0286933B0E8718270F6755A48 + D8C949E7705F74550A39DE1E94B2056E0DFB049C61B3C6A549A18A4B1CCD3F8D + ADD9BB702CEFB432756FE75A831ECE609EC931344BAD4C79B1B9779D2D332EC6 + 6B705F154F1588B3508F651FDFCE1D64AD96381BE8713BDDA786706DE42B4606 + 63F1DD99A06C9E585E8EE45DC4347694BC5F1D0F964CC5AC8DAB54D2FD3BAF7D + 4F5DE54B7CD9733092B3CB50FDBC069368B3DFC942C00268015FE6619A9BEE63 + FE224B07B38CA2449EAECD5EAFFA566FC8D8406A7A069532490799D60DACC63B + F21B6A10C48A167D6EF5A308487333BDEC3A37C1EBFC358018945FC725E95E04 + FE888CF97D7E4333A6C7CCC1F0E8C1E4C0D75D952D78B531A1E442E16D556C60 + 3A3B971635B620B7A1940480860D869224571579626020145C06F6C29DFCAED7 + DFB35D1DD78E507A6AAEFD7DC5C81030343ADCA8AD565C601ABBD72F6098F4DA + DC0D58B9791F7A7C391A5F7E3D883DD3BEC5A7EC32B325FA00629AF3A8DC9EC7 + D6CCDDACD2BD0E29CC11EEF2A67765BE9C5F32BDE1ABD2D621388DC9FC19F422 + 339E7F72CC343644BFEC3C9297C3BA5316C77E70F368A29DCFD22FF31157ED12 + F5B41EE315270D6410B1DD23C4C03E0313E16DF3A87FF688B152C7692ADDC452 + 960B54E58D94DA1257F0257F12AA8B68298B422BF5A1FD0C319F9C389EA1ECE7 + D1AE2B96D9DEA57349DC1CC91FC7EDCABEFF1A80EFCA7B7C71061D0DDAB5F1BA + 76B729638B1CACFA9771F142E40F529CF8FBD42FD1F39B110CB308C197AC4DF4 + FEFBDF63D6F9452C13BF818DF5F6538CA288C18D3FC714C84574C4E5786968D2 + B559F9B89B73BB5A168D1996B8B48079CB22FF8B5350A4074742E670986D4F7E + 6113C433EC1B3D83803689E2CAEE8E6E39010292CF485963221EA10BFCBC9596 + 88C2FA165ACA9EAB60C7E2FA56851813E226B13AE0659433994A3CFF8214C915 + 15AC821E8A1929B318429FD53547987D1D06223BEEF0BF1DD0777EBD5731C99A + 94AFCDFEADE7DDC85E6F73976EC11B1FF7C2A0455436E9B7F8F44F7D31366C96 + 2A19934ECB87D63B331B996B9DC416B4F153E8A0DB416FAF0595B26427939FDE + 0A7F2C5E645263DBB4E3517C5107B2CF52A19CA28A19CC64C6D7467AA3D3D883 + 4E5DDEDE697B5F39A33FF7641EA3B9721EFB22CC675F34025B7737D61B2BD19F + 5BE31632347D016BB98EBC3B1EFB88008D56871159D3B5E2073410CCA4352F04 + 05148FEA59486C71F22A5A90FA612D5BEF4AAF3DF7E5B4770EDCC2EBFDAF8C3A + 757320E7FDEABA98A4A879770FCD69EEB6B16AE85498CDE49B51431762E7AD23 + 187C7224BEF866082E1DB9CB329475ECFDE67AE005D9C8B5922802E45C26D31F + 646871958A6EBD539616F8FC3894D75E01644FF610133DFDCAD6563AA0C2308E + A1090B9216D1AAB4187B738E336DD52287FEF6C7FABE998AF9B2C40D18173D8E + 96A53002A1554FB62B67EC70B01EDCC07A572B2B9BAD4ADD80F15113E8FDDEC0 + 2A7DB358B7CA2812C6779EA7E97793F45A687DC14E4997D137EA078C8E626F0C + 3684F78B08E69A4D42E20D517DADD1DFFE75657FFCDDDBF1AEAE2383B32CE0EF + 8DDEBF372D0EC5150D98307539860F9985F2A23A34B3B4F582D815987077128A + 9EB802EE1E4BAF328A47DB1E1EC1772C877EB8E02C11C495F3185E708F407984 + 265A9736ABC3773DDE6E6CB47CEF117BDF856594D161B63A7523FD06D39552BD + 8C45CFEE94D0B2A4F1C10BD1B05B81F2D8D4717BC641F6485BCF7575B68A7509 + 2EAC9B3BE912FCFC043B1F0D891E42EFF972E432F969632AE3BD1852925C9B85 + FC9662FE94A1BCF131A40965645926ABF58DC698B831389D7FBB231CDAC96A24 + EF145D4364DB00443C93989A67EFB1F5BE38BA796397364700C2E70177131902 + 019A2E4EB4A49291B063E7121166A08CBE0B758932579B83F9F973180BB48A99 + 6F8FD140D6BE2069250B694DC025C6D0E88EF6F54F1EB1EC4A288E158633E2F5 + 2714373578C6CFE839EB79057070DE02C61437E14F5A55394218273589A6E005 + 29F30960BB2873377B9EAB69E5F282202D4CA0286C61E09B353737E7753045FA + 0CDDD06B93F7D8AA6F67D51531B6EA2C11378815C0376263DA0E060DB2274422 + 0B1D2407B38DD526D490E3553F6A66F99EC518133F9AA2148B1E585E7D8DC4DE + 8ED55F4C916ECEAE8854A0C0EE0FCEBC4EC6CB83FF6EC8E06B2136D6595C5A8F + A123E762C880E9A82AF3B4BB8BD9EF341D71527272376B15B5B157D471F61313 + 4B886E1653F7B489A9949BD9708FF55269026D659CC1328A1DE1A511DEC5201B + 5B774FD7BE6106806A20751F2C81B588E2D9CA943004A5CCC47A9A5ACFE5DC41 + 9B5535C36D5B57106050267F84C24058BBCFC0AF88AADF6351EC5212857B2CBF + 53D6C41E129C6F5225894B1C4DA5C9F3703AEF3AE2CA4A11519E8ECCC65CB6C7 + FD19EBD2199E913C53C582954AED18FB6572563B8131FFB6EDAFB7E8564730F1 + B73FFE60CB1F12397FFF1B72062F1BE59667AD05A7A417A0FFA0A9983A61298A + 0A8CDC0363C22D0CD43B4F116854EC08F612BBC540BE270C23DE45B97D3576B2 + 207010F39417C7AF433E1B9D88BDFF10F31D463C18C27A44DBC94DAC817C6DB0 + 4D74F27A405EB849797B2DDBF66E62606110E5F130E61027A91ECF1E9737E4EB + DEC1753C654732EB3D62268DAECCC492A4D594FB59F52F7222813F5CF5AEA865 + AF0BB11C4945EF55D41FE22A8A15B29E67FCD1B0E8612A9129B3B6D159ACB0DE + E7B3F59B0F0EE56FB9F60202FEEEEFD6F7CEB0F01B2183A6A6224BFA08B0CACC + 2945DF21D3B17AC55E77EF646F8BCBA5B36A023BDDCC61A27E21AD1D2DCFDA11 + 2E1D6FD2F6E14649129AC424C2F79D2FBCC68E38D328235F73170FF046C0BAB4 + 91366EA69E35C49ED2966AAC49DA48FFC16C22E93AC45467B9134D0291C87CCE + C5E9DDF27A79BF0E85300EB89DF9DDFB32CF323070366E30CF3AA78EF56ED9B0 + 71C89DA134599F51F37EC4E26EDB328FA07F746FDE938A84F21266F4B16A47F4 + 7072E0432E64B6B88B7E8F39476FB4C5ACC4D829184E36C257C09DF53E47D9DE + 69139DB878F7B9CA6F840C01405942720EF3A0A761E7B6530147B75E2F8BA727 + 743136656E7757AC7E4199453CB8B2F1278B2F51DE5D80A8F20C0FC5B8E6512B + 13695802B28BB585FC8A24362C6B66CCF361E6694FA2EF612A3DE8EE8E44FEF6 + C3A0A45E95502D67DB11432BEC3A3481BFE3AA8A59B08CFDE0D8C7219BBA82BA + 845014DDC12866A9DD2F732550153456D3AB5C8CF2A6E72C92C6DA540F06F1F7 + 4A96D2F7B46AB9F7C11BA0F902625F6BEF3EE0FADBD1EE7C6F4BFB0C70882EF9 + 201C167CFB4E0273A1A7B3CCE37D771DD4805ECD83BE599CCC50812998C752E8 + 25CD4D8A7A25D714313593B5965296E341A5E5CDE58022BBC7B078D76EE6415C + C84BF488CFB7539F40E279DCCF385024ADD832F708C7B2AF635AF45C64367524 + 19058C5881905F873D75E313FFD1D4CE1660B515D89CB953893CD94DAEB6C192 + 7DB833E33836A46D7667AFD54BB91E96AFE91FD99B4184C1441EEEA975E9399B + 257E1CD7F11F0BA80302258F9B5CF3EF0667F8150B9747AF11117AF79F8A73EC + BDE6F772100F9E31BBEE54DE2D26A00C62C6DB3276E67C8CE4CA328A463371A2 + F8A6B22EC9A1E7313CFA74C16D7A7ACFD25BBD9BD1A546F69BF9626F328CF96E + 6BCD9D00C1CB5E48DA24FD86EEE2C80125EF78D90C0FD9DC9893FBD5D63FB25A + 4A58A2B3D04357A96794DD1AFA169626AD43753BD36479EFB182EBD89D7BC895 + 5BFEE809F5AA6D4A540A2222249416BA439B5DD863FDB8B1C3EF89B96E7038B7 + 009FFCF7BCAD1BC8D0CDE90A205DBA1A87516383F1E07E523747713D564FF2BB + 82E6C13EF7BEC5EEECA3CCB203B2EA8A51D6FA18158FAB71B1E42E66F370B730 + 4CE226F5897DD9A7D884C3C132629B8557BBB74929BB4A0C025118FC8D697E6F + 8E677C7E5E02ECD8562ABCF82EF5818E7238D56D2DCCD25BCDF23B7B19969DAE + 92944A588840F29A8FE4B1434F4C6F96C35FC20CC28A8E187FFB3B5E9529D47E + EAFED6FDABA0A4CB0F07860C5E59A31F0AA0D72AE986A7CF4462EA94D5484D62 + 91DDAE5C5E36AC84A5D90F12C883185DB92BE31401C065D0DF9CBE0FCBA9C846 + 55266207C5A3B94CB3BC5072C315F7E4E7F2EB5DD7EB7DD5944F0C0D4ED4D75C + BBF54EFD511B013E9D4D4A5AA50B3BAF8AC62714135731C77A1976B28C4D1E43 + 56B4FE91C150911177D9B8316929B21A0AD0CED23E2773AF32C66A1AFD372B90 + 446B9299AFE381BFF2427EA07B33386EA1758F5731D2DFC6FF16DF8B841028F2 + B9F6D601196C23B8EB7A7A1BD80F768B91E7D8C908AC5C7E00D99945AF74D90D + F427ACA4BF612CBDA5E70B6E12305E322CA358513EB91E9467637CCC4424D677 + F44B535FD8E65C4347536A5D1EDA5F38D717753F635FABC3DAFD123B2F37387E + ECE5DE476C7EB7256B1F66C62E4659BDCB2F23755F4F155CC6A5BC072406AB69 + 499A45FF422A43DB4905F85F787E1432C93D9F3064E45CE14DE5545BFE7035F2 + EBBD98508D93D244424DC78910D82D5A7E37E1958281F360FE90C1E47632DF97 + 81E80CBF62615289F92895E4D0D063A864A8C56F71A5D555611545A66086426F + 67D9C72ACAC17235B1E8D8AEAC838CB5D98B5AEB33A7F797B7D531D36B11EDF0 + 5370ADE23E9E77EA23EB2516CB8BE8E048E11D00CBEB5E78D96F95F66A59C3A4 + 01E47C96BF1CF16038156506085ACFC45517D0847A92E575E2595DE41C93FBE7 + 6143EA1E343D76B5FCAA6A11E2B11EB3997ABA9D252EB358BBD64D182C76A03D + FAA6D9D869AE9D5A1CFF0A3879E57011C85C4C2EEF42F2C0C4A4AE4C56CFA3B5 + F5390E1DBB85AD3B2FA0BAAAA92B4374F9DEBCA63A3602615E43EA52363AD94A + 0B521A15D8E7D897779C05C7C2DDDD403B117602406A753D296524CE955CC262 + 56C0286A72A57132CA994581C9D69C28A1A6905D9EA9F5401765F0B4BA72361E + DF889359D7548889889DB78A5228E64CC12E06083EB66AF09736B25899D47362 + A512D1098E665FC2A68707D1CEBD286F6DA4437013FADDEF8359710BE87BB039 + 38ADCDD17B6486F0EB2209EEEF0476020138737FBCED6337F6D09F6ED7A5213B + D6E11F19BA5395A0858870F858045BC15E456D9DABD857B72E7303FD6C7E23E3 + 366E17A6D1E3BA9CCAF35C3636C96639CA9778C4A2BF121D71383B9CB55CA3F1 + C2206932A4F614DFADB98B69B1F350DE5685CA965625772FA787FB0E750F9F01 + 68FE74113D6F73FEDED6C2CF1FB1B75D633B7D274639955416EC9AC370F191EC + 7A7AA5888597B91EC90BDF917D4855E62B6D7555AB78CAC2CD47722F21B5D115 + 65FA8CE214631D5976275695D89FCC9ED29BD2F6A2844E4B771726FBBC1CE6E6 + AEAEDD5504E8EAA1BF428471BF3A100386EB66FFC8D0D5F5945534E2C8C96895 + 9FAC9B86F81DE3D7505FE359A198E799CBBB98251C6751B1DE9975821D4681BC + FA52551CEB0AFB2E489882790932DCA860C27BEC2C867F27A0AAE9055BBF2E67 + B9CB4D44A0F3D849718245E6BA7FC9FCBC8954FCEE39236EDBA5D231E751CBF2 + 8D7BB24E6211730EA2A49B8F8568A2BCC631E572362B6A88773BBBA18E3DB2AB + D800A5023BE9453E4B7DE939EDB92F09B5C78A2EB3793B0BB11161444C95AAE5 + FD2386A89A4D1778DF233627D4975388BA82F74E2CD4CBF2F5DABABF3BAFF649 + 27C2E3B41EE7B7BE5A6428679998D3E7135150D8852477F7C9BC9A7D11C08D2A + 7FC8B0E80398C25C5E69A12BA99A574B1EAA0A1BFA12562B8AF6E68C3DB4C284 + 22B636437D55D1D2C41E738B99833D9B0EBC12F86849E7AEAFD4C6ACB14C163B + AB62C53F7DB5BF60842D7B2FA87AB1025F7C61CD936694B43728A0954B7C1F2B + 1FB2044D420813F37FC1FD8A0C66BDB1625FC242EC650541A5FB72CE42549ED2 + 5A76AAE00A819F15C959B27F69DA129A8D93692428E2BF97E13A6B1C897FA381 + 8CB889225E5643112B786CC65886610F62018233D9F4C1B0D89B9A8B17F3ACEB + 4B4304F2C709641C2744B713377FE30472F4AF620CDFEFB12183BF17DA59AAB1 + A9256C7C7EF3761E6A6A8D8CA8401669DDE3B7724217C69203AD6C7ECAD0880B + 181E3B0C0362FA637BD61156BDEE40D2F4DA1AD6025A8C250C3F286EF0B4A854 + 3E6A518EAA9DB907347C78345931A7D248C7D6D6B4A3A4BC4319BDBA9641702D + AC20F192F9162754E24E444512CB705237A92BA3F5661DCD9BAB915C97AB8638 + 947B9A9EF4F96CCF750D5229BF9900CFE0521C27D01FA4B84329475DC2F1E4AA + 6369FB3379F770B5308E4EB220F6C3DBCBC8D2A76C92B895C9386C1C4256F084 + 98135D91CE18AEF99890388ED97FDB90545DEC6A2BA590D29ABD1342FC1A0EDD + 95F3E9CABD818B395D19D5E9DEEE2383DA548B8D17163722E24E2E1AD86CFC37 + B9FC21A9D34BB989CDD45DF6653382954DBE0746F6C5CC077371BB229194F617 + 06FBD550E9DEA32237D73DDCADBA020995D3559C8FB1D6EB1A8633FB0A2C933D + 8829CF6505BA5DB858749515AA17B15872069B78DC50B554AF94C433A5733192 + CA6A68D53AA0AA8CDF60DF0929675FC082C76119EC0894B515E9E4105A7C6B7D + F692DC620BC632FB2DA582B2BF010C220A5D65D5C16B4589F4BA5793DBC5A3F5 + D973B430264AEADE963457624FFE5186B2CF6688F6229CCF8B70A7C17AF8508C + FD74D207BAA51CFF2607DF31A89A7FA088E1A4F7F8D7477EBD985453F31851D1 + 456862B0D77FA44BED1B91F529532B936B294AA4ACC3C0A87E18FF601CCED25B + 2B4AE723567FC86AC86366573C1B873451F9BC8A88AA286435E7B2B1C8525C67 + F2BFBE9A59BB298B15399A9ED04CC971554E0337B8E1C9132AE93FA1A2AD96D9 + 6A5B90D190CB46EE0F58B5E30003E322B18485C6621926B181C18551E5C92C9E + DC4EC7D85A2AF331B8507C0B4B53D7107099035DEEEAEDF682B6CD08D6999D12 + 3B15CB123630D9C66516D5577455B62ABC5CA4B91CE7D14453EB3522D9A2B460 + CC62F2FE89BC4B5C4F254B5F5ADE3C03383C7426F95A47A7FA3A3C0B905E5952 + 4E370045B5A87230560482B8CA57E61F917E1D3288F93A23BD05ADCC99FD8F7E + D53CAA6513942406A5ED23B59EC7F4C7B5EC0E148B86162E42944D1EF8D5B228 + A66F6E500DFE54169DB1F9092CE732913DD8C252F6B25F0445412D2F2BD903B8 + 579280C5096B68D66C83381A97B0886FDF88DEB8C744FFD69FDAB199DD7AA444 + 4C2B2B63ACCDDC4AAA1EA7CCA472FF99A22B6C02B21D7422BBAFE4BA742C4D5C + C3BAA6551E5BDBFABC9D55400A88802F51461FC9F9E2EB2C621C8A207A9397D2 + 9B2C89FD52F4CC7D6987984C9373D6229799C5E717A04C64F8F73E68FF14DE3D + 43B7314010C95B5DAD0E24F975C8208ADD131EAEDFCDFCF7DE40FD7E119D9807 + 2172FCEECC53A4CA2B68A199436FEE5E52F43C3CA68852DBDE88A2D6626E9E27 + 196AA159EA1EBBF95C60D1AFA6A71DD45AF4E3D8CA5C84266D668102E64073D3 + F3EBAB29ABB3C30FCD997BD936B785A6D2A30557712CFFAC6AFC7E34EF2C1131 + C59D85D7444FFAA6D44374183E57327F02F3928FD247723CF33ADA0463F4C529 + 3DA23E92DB548188D214AC60FF88A1B10358197C15C5B47BD41F1A3ABAE93850 + 73B77DDEB0BA980013480E73978FB22B226E20F706728F35499D0B2EEBB6275B + 29B1CB226496F5ECD721439737E63FC80302E7752C377F9ACD4FA6C6CFC02CCA + D86B583B557484888A047AAC7F66E101E7C99A5D4EE58E22A6554E7B30077BD2 + 4F41D20044593E40F3E80126D154B63453040A6651B46AC45715D0E4798069AB + EC4DCDDCE2E8DA642ADAD45D9A9A114F9FC8EEF4D3CA1FF2883AC04196A29102 + BFCD8F5FA8DA468C3F4406AB789FA55E129ABC05A36246B132F83484B1844B78 + 51144DB2AC83649FAF01F0EACC4908DC11B05DA0AE9E64D6D8133D4677C67AD5 + 702080ED0749EC5F7712F9BAE581EE0266BEEA35BFEAF15E506668A035E81E4D + B1EB3337B1D5ED448CA3632A2475396B21EDA01C1ECD48D8568F2036730E2F89 + 19DB330ED1193682F586E6B14EE942A64B965354B98B55B446DD25F55F9BB69D + 65DEDBD98BA191BDA04F33D3EC025356773227B9120F6B8BB12E652BB6B1047C + 7A83CBF32D26D8C734CB3EA11E52D5FC0809558534029CA0DF641686C4B0A1FA + DD7EAA4ED4C5924826E5347957F0054084B9F9D20934106951C192AD3D1AD7CB + 79FB97B75FF5D1F81EEF5521A0272CFFFF983358C0E08D62981E5ED9F986F667 + 7850918BC33451AEA74CBF95D1AF52416277E65156C168465C6529FB436432AC + E1195AD870FD272A199261975A5FCE1231B4201544B26E6A144B30BE543AC339 + 3AB8B665ECA483ACA39741132B78DC6619F8C2469729579A3E364A93171A1FEA + C8058A1832718656AC83EC5EB43F8F1E7046A186A42C24720633CE682E63B036 + 50EF48A1F548F3781F3023E393AB88ACEC8B7ED94405D7805A42B41E34F7D027 + 057E5584F2558DD33514FDFF3132E88DE8EAC6920AD6B5FD84949A7C5CCC8BC4 + 7E8A3C970B1358F9620786460EC53A46C9EEA7182339D637CB1F2081D1AE998C + 1D6A66139547CF9EA0ED453BF3B3DBF0E8F963D62A95CF1E53E47A82A72F9FF3 + B327E444EDA826A7C86529FBBB35B1B8579DCA9AB1E1EC10B412ABD356D1E117 + A48A8ACDA15568253B04ED6178FA35F65BCE6C2883AA31D689DFFB4608FBB78E + DD379D28ADC91102DDC340EFF377365D1DA76B40EFED6EFF21DCAFE63DDD1CE5 + 55B0C35FB1B122AB8BB1A98465F2CF165FC1EEBC63EC457D85CEAEDD749ECDC1 + 8CD8D98C0ADD8EB0875BE9C9DECDDE6FABD8383D5451F10589D24C7D3D4343A4 + ED55287D0BBB996BB193CAEE6ACC4D09C644D65A1A153D14E312866164FC1052 + FF252AB4E2187585330597C88592D824E40988535E49BB0755EF8E3863ED8D70 + 49B3AE911B56BDC9E2BF624F3D20C1699C573576D741EE3F38677855C8D09D0D + F622278B832B9FD69C8CA63C7A92B371BF249766D57C46C81E66738F555891BC + 96CEBD39CA92B4808EAFB1711319293A00536266B29FC326363B594B3FC362D5 + 14FD5C6104C32E8EB3CCE36D6434E6A19A265B7F71507E97E28F7398DF6B31C8 + D0194CCE230812485254C070E76FF2E6797B43147F6328C5ABF38C0278AC7B05 + 01025EBC978975E9F97FAF9B03D83D999AD8ED19218D3676C26924A2D43267A0 + BCB995FE83C728A5829BC57C8338760DCDA3BFA082D1B0552D6DB456B531FC82 + 7A0781F0317BC2F9720889F54A053C5A543AC06975EC9A1F0053C17AFAEEFF48 + 8AB2D342C562D6953E1CDE60C7998BFE07E70CFF5E88607FAF3F6AFB1BCE5310 + 8678D6E952306E1363FC7A59F53A8CF5F84D75FD0DD7D6E5A15F95A4E04CA4FF + 0D90A1CBA4AC8B5BF45B8F1F0877F33107770C970D00BBB84AEF7CDF1CD70765 + 57CD4D4CCB92BED701411C31CFD78465AC7F8B73F8B59BE69BF32964F00C7EF9 + B52FD4CFFF7F6173BAB05605D45D3D74EB9997968953BDCE9B2C1CE8BE75675F + B5AF4138890F80503D9C038D57EAC2DEFD66B7769553F8DEBB764106A9BAD5C0 + 9FFA57F6436F9EE494BEB2F15EE5DC7ECD5881AEE96763FDF26FBE93C8E4DA0F + A7BDE167FA7B9E57C7BDBF66AEDD79D65C5FA06BEDCE7BFC3D13C8BBAD7DED04 + 63B297DEBEF3FE5E81FFFCFF17C9C9CE23ABECAE350000000049454E44AE4260 + 82} + OnClick = Image1DblClick + OnDblClick = Image1DblClick + end + object Image2: TImage + Left = 232 + Top = 30 + Width = 129 + Height = 139 + Picture.Data = { + 0B546478504E47496D61676589504E470D0A1A0A0000000D4948445200000091 + 000000A708020000009E9929C4000000017352474200AECE1CE9000000046741 + 4D410000B18F0BFC6105000000206348524D00007A26000080840000FA000000 + 80E8000075300000EA6000003A98000017709CBA513C00000009704859730000 + 2E2200002E2201AAE2DD9200008A8B49444154785ECDFDF57F5CC7B2288A5FF8 + 4FBE9FEFF7DE77CF3BFBEC9DEC8031C6D88EED248E9D18E398D9922D66666666 + B69859039A1133B32C661E0D6804BEAFAA7BD45A5E23D93EFBBE1FBEB31DED81 + B57A7517577555F57FFDF0E1C37FFDAFFFF57FFFEFFFFD5F3E7EC197BC6FD847 + B805AEFFEFFFFDBFC35F78B12B3F71CB4143F1BE8791E11B18E71343B1A97EE1 + E3FE85EBB56F8167B1B9D119D299F3E006D7FCB7FFF6DFE897F40D850F77AAF4 + D783BEDF1750F4F6BD67ED90173C8CF7A2CFD37EC16570FDF6F636FC44DFB311 + E8C55F3ED4BE83D3DB0F7A3A7B284C804EFB1357F2E6F3E557F296000FE2ADEB + D333E7DEAE3D49FAEB41DF6B438FAD9181FABFD0AFBE1CD014586C195C7C3318 + B1D1D9959F85D7175EC028E6A035FF6B7440EFD2A60346943C28B1A77C023D74 + 86DAF33CE8FB7DB1C5A560863CC4D967A9958BA4CDCD4D86927D91CDFDF50B31 + F1E5977D62F0831672102C780FE55EC6450943246F1CB886279FE89507AD85DD + 4EA514FBC8AEA74B633FED4B9414E0FF699C510473B1A8BD982FC7C17FF64AED + A5F248FED342755FC430D9BEEFE09F207FDE688C29F7C51CBD9862824B07DC09 + 73073C8802E07B0DCE3E0D7746508C101815682FE93F8B86FFB7AEFF97F9ECB3 + 4BA017709983429F2B663EAB3BD9203CEEE40A3986D47D09853D11AD11C6375C + 8AD39E041D914EFD4B84C02778E2CBF1F4E598384877B269F0B42C03161740BC + 75B1A77371C6053A4F827D82292982B511C6FD862BC0B804C1BB4B83336D0E3D + 08670C6D9F15DCFFFF86B32F99F0BE3863424F1BEE0CB23C70F190F70955F225 + 38E3F2223C888FB37D05051D9771A1B67ADC171C07E1ECB3B2E84BB8507B70EE + B05C22E55EC9BB86F720C607077DBFEF8A7800E5E1958B4BFA1E8CB8ADAD2DF6 + 083AA636FFF1B89FFB14BE6C64728F2B94286FD1D79773CF2770C613535F8224 + 6D387267B82F9278C4C1240F03D3BEE2944287D1E8BED0FC04CBF29EA27DE541 + 1EC5417295B10A1B4A83336DACF270C655753C607D56E6FC0B28F9EC2D07F1D9 + 27089607CD4F73AAF67A3FCDA38C9F7813D05E08A3092EAB7D9ACF78831C88B3 + 7D27CD13BE9F85ECA7D1F92FDFCEB80AD87F47BDB9B3B5FD617B070C3BF8B7B3 + B5055F7ED8F9B043E224C4FFDFC6CBE8975BF046133DD1861DE37E3A3E17A63C + 3EFEC4BABE0467BCC13F2D3098266244C3C7D9412288CA0A1AB2FA3F7F7D21A7 + 6A3F888195A306105DF41F600C71B58D68DB86BFF00EFEB7B3C52ED8DAD9849F + 99E8E3E1467BED3C2C7E56DAB30BB837EE0BD24FC0902724B559701F3EDB57B0 + 32DEFF3F4718A3D97F6128EDF5107CC0FF90A010559B5BDB1BEA6D35FEDB0216 + DC53C0C05E80BD4DB8940A491632E5F2D34124FF593E3B481BED2B1BB97C76D0 + 053C51CC157B7B76235D06E5274680ECE397C0575BE773D1F325FAE0B34FE10A + 0A6A13810004E6D9526C6C6F6C7ED8FEB005913590822026015F2035D58053F0 + 87E19A9D1DF5F6B64A0D17737814DF7E02678C5279D68A3686D8959F1021FBAA + 1BF6F4835893CBBB74B67B38A3E8D1FE4B51F8252F9E6460228827D018980E12 + 355F2E37E850F42F6A2B147DEA1DC40FA26B7B7303FEA9B6559B3B9B78196073 + 434DD912FF1DFCD29E300F13EC028686FF2CCEB43174101D6893D43EFE194512 + C3DF7F1667DC677097A4CD6794B3998C0298EED1357C2070E5E24F83216098CD + 8DF58DF585F5E5D1C529717F9D74B0A1B4ADA266BC21A52927AC3E2DBAAD30B2 + 293B77B8327BB8F25D4F4552534E527D4EE5705DF344E7B4627E70FAFD926C09 + B0AB9101C4508147118E25D88459611C1C3EE33F2A7BF62E26CB3888AA3E4D85 + 5C3EFB045DF2E8800701F8759F38088F64F695784CE87D42E2EDBB0026DC0859 + 10CC5092871FB6B6501B6D6E11DB0FFF812803CE802B955BCA59D96CE77877C5 + 9034BE39DB5D1CEE521B622F0E0A69493717FA598882A3EA93537AF3ED2A43DF + 96B89A883CCDCB3CBDEBA3227BB22D2B02DF1638BD2A717B23F47C5BE4645CE1 + 6D5515E25E1FED531D1E5B9BD8B7D83F323B32B930A5DC50EC80A7AB548180DD + 0611BA017E2FE00DA7B203FF4FB79FD46A2016A23A3F8FB37DD9E80BA9FFB3E2 + E7F371907F19670CF75C4AF948AA50858376DDAEA842DD035F00D4D45B72A552 + BED637D39FD954E02B8D362C75795C64A15FE416DC9E6553EEEF5F1B91DB57D8 + 31DD39B3B6B8A09429D665F0DF9C627D746DE6FDEAC4C4EAF4CAFA9252B9363D + 3BD132D651DA5355315455D05716D9941CD69EE9DD90F42ACBF66D89A399C4DB + 54E2AD5FEAEC5B1B59355E3B393FA696C9B7551BB064201B8D6A24C484E863E2 + F4931B2E3CA5C5933AFF9A8AE1DDC5C7D941A25C1BF95F227FA9F4D3C619BD17 + 7FDCDADC5681C6D9D0B859A888D453EB3335D31D099D02AFA678F35A5F9D4227 + 1B6168746B715A6755DF78AF7A4B2553AD6F6C2901B5607A003BC2481B4BCB00 + 5910705B0A184D4DFC300D37200703D7AC2BE02764A6ED6DB95A3D3C3FDE353F + 289D6E8F6F28D4CBB137107A99D7C478B5E624F794E7B4160C4C766F6E22F210 + 7F30D2065A2E284189F404CEE3A9B72F57C05F82336D53657F9C5119CDDB6EA0 + 128BCD8FFB912BD30FE2656DB9CF46A09300280005A3DD40E4E1826C513CD218 + 257DE75911EE5A15A153ECEC551F5BF6BEAA7EB26D687114A95DA90264107303 + 41A7DA52C9958AF1E59981D9D1DE91DEF74B338BEBAB5B0AF99652A95429EA07 + 3BB33B45D943A277DDF9B5238D72A58C3C883AD7C43720DCAC5E974F2FCF368E + 75A6B5977AD724D8D7851B567A5B56054574E635CC742DA99637B737888780AE + 38C1197A7D84F7F662869F554E5F22152970A825F1693F786FFF8C8733A678FE + 659C69AF04A7C5D1E144F92318DE2F8E66F754B857C5BEA908342FF5CBE929E9 + 99EDEE1BEFD902C38F503A20755B0DD6BC6A7464C4F8ADE9A3E786E22E69FD68 + 43416B695C67B16F654CF17B61606D6AC5A014BC336A41CC2AE6BD4B639CABA2 + 6C847E5523D5CA8D75E266A3C9BFA5526E6FA941738237B7BD0DC219580774E7 + C6BA6279626D423CDE1CDA9C6D5B196E24F0F1A88B896BCB950E37AC2A5770F2 + A0CF3090029C8D2FAE52FF1206D2B626B8B86438D3A6753E9F718D02EE24D870 + 8C390EDA39FDB4114594012C55E3F96D2914DB9B6ABAE6AD2DF5C0C2704A57A1 + 45A9A77D990FC03DBBB9A07FB11F743DC83640E7BA72BD71A231A7BF2CABAB7C + 7D731D1E94E41770E8FFF3BF8EFCAF0B374D2CCAC6EB96944BAA0DF51A48D70F + 1F4666C707DEF782CD870A510DC8D82AE9928434A5445627A137AD04698AFF34 + 2E1D8D9A6C6EC26476D50111D7C0F16A304036FA67064B062A2D0A7C748ADC74 + 721D7CC411AD339D20C711441AE18516270659C036D9442B9487129EFC64D288 + BDA1C3B0BBE87B460A0C17DAC3FE978370C67D06BDE63F8D332A4D08ABD31150 + A480D9A15081949B5C9E4E68C9B32E0F302870896A4B1958EAA71128140EDBDB + 632BE319CD393EA2C8E0CAC4B8D65CF332AFDAF13A60855827C7135FFDFDB713 + 172FDC7993D69CBB8563C9810537817576D41BCA7535F8633B1AA955DC51E924 + 0DC9EECD07EE467DA4566FCA152085E9D2A8086290625A40E3BE91098F2C8DA7 + 7516D949C2DE14BBBD29708C684A127689158A55E4CB8DCD2D50C3187CC150D9 + 4138FB72FB802BD8B82A4D9B3BBF0867F4B6CFF22C6FDEC85EF8708D414F0D01 + 18646D535936501BD799EB5A1B15D6925A37DEB4BD85D601A8FC59D99CB8B34A + D82FC9EE29B02B71AF9CAEDB54AB80EB8A062AE31ADEC1BD11F68EC7FEFE7F5F + FDE1ECE1330F1224EF80ABB680291657363665659DB56029C21CE4EB0A91B8B2 + B2A64632DD6A5B1B94DF5B4C041AD20B609D8B33AE38DAC3195E8B3210032844 + 712D2B64D5A31D7E0D713A4576FA05CE99036533B25958DDA64C0E46100D3B1F + 84336DF6E27DA38D120A6A369F7D70B62F26185F33FE654FFA842464D4B18B63 + A2BC60ED20A954C85B5B2A55599FD8A936DCA6362CB62D6B686610343C5C0C22 + 4BA19417778B835AD222A549FD737DE38BEF1B675ADBA67AD178DBDC5A57AD4F + 4FBD87C1C29D1D7FF8C7FFBC71F2D277675E9966FB4C2916E472C5E2CA5CC1A0 + C8BA38707675AAB5BEF9D58357678E9F3B71F2B7573EEE46A51EC221319A1B18 + 3BDE44D948D0C7D5023C8942F601C02723FCA3424EA6D113E0E586C90ECFFA38 + 1D91AB59B957F17BD19C1C3007B211C32F8C77B9E0FE2CC2B8C0FFECC56CCEFB + FBD4ECC10CDB3C29CC15C40C8B0CD3F41B6430D02AE0A8AA5480B4C185A1BCE1 + 9AB715018F33CD521AD365CA25F58A0CB02857833FBBBDB6B1EA270ECF6D2E22 + B1F99D91C5F1E0BA8490CA58856A158C05B86063790DC60CB0B53EF98FFFEBF7 + 1F7EBE6EE2605D13E32B4DF6AA8E362BF3D611B8FBB4A61455955DFBF1E28F87 + 7FFAE5A72B577FBE79F2CAF3B7498E032BFD5B0A35987968A102F5801370F00B + C90EAE80E032AE7C7B4EB1583BD212579D3EB4344AEDCCE9B5E9C4A6541BB1BF + 4181737853F2906C1896069863CC810BDF2FC7972724D9C7CF0A4F6DC81F8833 + 4A02F4EFBE93F804C369EE222A1DED31F57A495FB54991F7EB229BF4DE82A1C5 + 111C797B67523E1F288A15F48A9196B7B6139BCA4B7B2A40166DCA54CBEBAB61 + 8DC9E0F3D64F37A19ADFD9516ECAE1165F13ABD35FFDF3DA89CB7F989A1A0ADC + F37A8AFBE7477AE6C6DFCB2653CA72AEFFFAEADCB7577E3E7FE3E6AFD7AFFFF4 + CB1F7FBCBAF84AB779A4093C36F0E5D05D07B620A62BD3AFDAE843BB7013F553 + FFFC909720CAA62AC4A332FC5D6376EB4417C855BAEA65E54A66479195D0CF56 + E49FD551B0A45AA212E5131CFC5936FAF20B0E8C83505469638BC7558CBB7763 + 504412A2D90656347A42532B53C1D5897AA52ED6425FD1A004C105FA7B6BAB7D + A627BC2BD55B1A03161ADAF15B9B6B4AD59A7C192006200683A770B0FA459997 + 973458BDA9DC009B1F984526337A7AF3FCF7479E3CD0BB6D636F278D900E5781 + 9987119355B9A189E9994327CEFDF65CDC50DDD5D1F7ECCE9D4BBF5C3AF2D3E3 + B28E4AA01B3053E011E0BAE1FE0C980F72390613C1FB26CE16892A121308F0B5 + 052A6A53A556473765E997BBD64D3501832A65AB192DD531F569FDF37D206201 + 3D00878E89DE90CA0483320F9FE6A4FEA54114E318F482FD03A031622713558E + 44A2C5DBDA60E4E16C5F7D46EF3A70FF8C87B383B88AFB3D3537402703A982DC + DB585A6A1F6D0B6E4ED22B734E68CD9C599D023AC778877A7B7C7EA676A43DB4 + 39D5B4D85330520D8052AFC97191186DC0BD1550129D33FDFA05EED6659ECBEB + 73109A07A5B13ABFFCF8B75B977FF8DD3D28C830CEC3B0C43DB12D9DF28D9FAB + F70FDF5F7E7C473FA22C677A7D0666959A9479EED48F3F9EFF335198B6BDB1B1 + A5063A516C6D80DDB8B9A9926D2AE4B0CB061C8C38229624DA904867107F56C1 + 9BF995656F499CB1C8A36BA60BA32AEACD96E94EC362F794F62CB25D00FE225A + 58F24D59465BA179999F436D54415FC59A6A1930B72953A286237138CA7CDADB + 080C6E4C361E84456DC8EF93C3C3D4D24116E7BEF8A3262286E5485C43AE5ACF + 1A14DA08C31DEB6352FA0A556A1928244DEC07140398FCE03F754B6D6B827D5A + 63561544B7012C48701D03B52AF5AA6A2DA6312BB42B6560A10F8427CC6A6E72 + F1EED9DF8F7F7D252E372DB231FD8DD035A2230126532F945E3D7FFAEA5F3A05 + DD9561EDB90D630D70715D77D72F571E9F3F7B39383E11AE013F9B4EBB63AA37 + BD3A1BA60853C51834B868882F646F3A738C7B6CEDC8D5CAE0DA64D30A8FAAD1 + 3A12FDDA5E552EFA35270BDEA3A8205204742CFA9D2055AA475B6DC01F107804 + 35C64CAF8EC320B863A71990C497B590F6093EE309D8037176A0C4DBE5D8CFF2 + 19AA0AD872043296C9175667E37B4510412F1CAD1A5E1805531E8031363731B7 + 348BD17A121486752CACAF7948631C1A8353EBB237954A22A688AA41D821F734 + 8D77B8D54625B5656E6D2A6002EF7BC67E3F7AE8DB7F5CC8AF2ACEE82BD215F9 + F8372736B6B7FCF1EBEDD3179E58E5FADB3646980A7DDB67DA1ABAEB922AF37F + BCF6E2EC8F575E5939F62E0D8FAF8EBF5F1B2FEE95381487A4B615C03437B614 + 9BAA756433F24C7C283E9FFCC3EF3E540CD65816F924B466ADAE2FA187B7B35D + D85AB1BA36BD090C4A033A44E8A1ADA2DA189E1D0EEECAD129777511058A47AA + 409223DBA27420D92807E38C0B589ECD7910CCBF34AEFF799C6168078308D3EB + 0BEEC2589D22FBFC9622997AA571A0B9BCBD3CBBB7D4A238C8511CD13ED703FB + 2B6080817B0BCB2DEF6E086C4A7012F84DAF4F622A0E2C8E180B1836D9D9999E + 9FB211061B97BB0D4EF5C204DA444D3F1FF9C78953F7DE55E50655C699147A5B + 67043E7E6D73EEFC5363BFA088E6BC808654C944F3BA6AB5A5BFADA8516C686D + 7DE1ECF5DFDE1A7A56274437A6D81786EA54F8DB8A83A664134DE33DB10D59ED + 536DD4DBA7DA17C3C79BF299B55964BBCDAD6595CCA324162470424736445040 + 34A836545B1BF086B2CEAEDF09EA00222C0A15182609AD8586451E7AC5CE9543 + D5145D9AFC222D03637F59C571CBF60C052DB63910673C0344FB198421501BD3 + E96F816DA654CDCECD4434E51B0BFC525A33C176C8EE6C7B51E0FDBCD026A62D + 2DBDBF2CB425295C10BFB03607DA855871DBCB32594C439669A547DE701946B9 + 348954B05AA462D861896DCD716A0EF39746752E0DA624249FFCFAABDFFE3492 + 0C36550DD677CDF4B904FBFEF3E865434BDB45F932805B050E3844EEC1B22036 + 424941E1B96F4EDEBAF56C6C7D7659BED03ADC5531D25E3550BBB5218F13E53A + D446FB56C7ACC856403CA2B823FCD638DE1A5F9301F7126F7A5B32D8602D0D74 + AA0FEB1DEFC2CD07E47F9085B852123120594364BB54B5A10401A350ACE5F7D7 + 1A0A7D836B13AB86AA813AE938A8E171C184E7F02372E93E20FD3FC419E5D34F + B017FA5E0AB22182EE27987DF235952CB5A324B62DAD71B2117E1D1A1F332888 + 79526C6D55E1A75C992791F10F332BB38A0D19447B518A924D93DAB1363D9187 + 95C4B76BBA0BB50CD888A054107F3BB20D59667BA945858F99C427B3B73C2030 + F4ECA1EF1EEBD8CBB7E4C0D03323B357CFFD72FBD19BB9C5399CED166E9190DD + 37549830F3F6E68E5F4E1E3BF5E35FF53DBD1A178A4010580AAC59D8F974AC0A + 536FE03E00A6DB6D7FD8D85427346583292B914A45B5351B80A42D755E4F45EE + 4059CB781B813E0A3B443026E869543710AD7A6B335D52D03ADD065FAA94AAB4 + F6125B49A8458577564FB14C2547B90ABC490C301A8BE19A259F506C94C19891 + C2D0FC29D9F8099CED8D0626B4126319F3AAE588A67786392E034B83C87F1F3E + 340CB75A88429EE75AA7F6146F2CAD6EAE2B01D07B5344E31AB4FDF6FAA622A8 + 31C5B8D2C34314BC49F6D240CE6C2A94609E358CB44637A417F7568C2C0C033A + 93BCDC2F1C39A363EA82019535B9A1AEC5D16F2FD73437C0980453E808D38951 + 337B6A6CFACECF978E9FFA53D0540FB7431E1678D660A2AA36D5F98D5287C290 + CAB11AB8050C48E20AA8E794729F8CD4DF5F185C3E79F8D477578343936144F1 + 60B549816BC1600572891AF7EAB85B33A8CCC012D9D9C9EFA9B12B0DA89F6EC1 + 4DA20D65618F20AA2FDB42E42718A8441CA383A1A6661A039D364AB424E8475F + 30D07D547FC674E0279C037A275E89521F670C326145B1EA5393A8536053DC57 + 81AE14D9C3EC9B1D36CAF77E53EE6A2D082AEFAD1C981F1A18EF15744904FDD5 + 35EF1B418181A24651A650754C0C7A35C4995579160C544CCA27D736D690CFB6 + B7610345A99691F0176E7B7958389E39FA8B99B3274C202D29E9EFFFE39C8B6F + 00C008ED3C4CB6D218D654D7C0C7B525D9E31BBF9F3E77BF676A626713EC3CE2 + 356EA8D6146B156DB5DDB33DAA4D08C46C825B059EDFB65A35BAB8F8E71DA34B + 97AF5EB978EFFC999B678EFF9E5490933F22D129B60F94C622FB6EE02E0FD9D0 + C1A1C85E36E4726D8CCE8FFA5645EB14DA1A17BAD60C3723BBAB376A076B2DF2 + 9CED0510DDAE05F39F4461C8361135FF3969264C0D31D8525CB1ED4C4294F8A2 + 90E7D70C5206E4E2F7206DA9F1187776606F29B521DFBCCC3BA93D1BB657D024 + 037F4AA6800DC50849B67E99D71B91DFB33C5BDD424708B35A0B02F44ABDF4CB + BCDDEBA2E39B334716C7E04A5879768F40A7DCF14D99A34B4940CF4C1F9925CD + 7143E30B58016C721D9DFB478F9DF7898C9C9F9FFFE3E2B5E7AF2CE757172857 + 01FC344909C04864FF0C9DA755C5D35B378E9EBCD33C3480417DF885B8D5201C + E946DAA64CA69629C00E04770DF8203420ECD2C94B3F9EFBFDA5B9FBCD074F7F + FAF9E79F6EEA3A08232DCB7DAB47D07F80F96872924138822450218741342B00 + 0C22899F6355707A4F41EB58DBE63A886E9C52459FC4BA26D4B621CC5310D23B + DB838846FA42C98FABE2843D2956B860276845579CEE7FB28FF07E1F9CF16E3E + 48A5E1F4819F3E7CA81C6931C975AF9CA8438310C8558E9B4C3865A5AA7F66D8 + 5510F5B6D8E761B6E3D3021B879A601769906B5D946565889B3452A7D0CEAF26 + 52B109BB915B0975D9CFF3AD7DAB229AA75A8117E05E22F489A183F105B552A1 + D27BAA7BE5DA9FE945856121E167BEF9A963A00F8917900908437623A12934B0 + 51E5A009B3A67CFEE7EDEF8EDEA8E9EEA2380384C22636FCDD585FC3EBD04B24 + DA6F677B7171F5E1959F2E9CF8E999BEDDF4CA825022FEEBCF173F5F7D631D1F + D0BD30807E378129620D1906F08C6F4797267CAA92754A5DBCEBA2C7D7264934 + 1960B0B1B1A9A4082EE817190B7D9FC26E40773E4D8620E442B7F9F8A16AAEDD + 47B1C0CDFA62AC86FA8CA2774FE8714C8F8F042AC20FC1C14232B0D6AAC90E53 + A1577A479E7A6D158464EF6C5F487552C568CD8A620124245CBBB4B12AEAACAB + 1A6E6A9FED6D19ED185E189E5999995C9C9E5F9F8FEA4A372BF09C5D9E5E5E5B + 4CAACAAE1E07ACABD0DAC72803EC8B6A441CB5D364CB329D7B6FDEBC7E1B9F9A + F1F3AF8F9CDCBDC992C0424782A5B29AB80A9A8C7C543CEA2D5B9DD7A78E5D83 + 58167E4069B60586064A48C034718B118D9B4A00607375F3D573974FFFF820B3 + A49082222624E6ECB7179D03FDE1BD5C2DEF99EA1B5F9E007C6DACADC138B0B4 + 05F94A4A7BF5CB726707A1CFDCF2347C4394161A5B18BE038A803F2A856F49B4 + 4E45804B4DD0B46C1AB366718B43C9630C066786183A078657EEF51A9CD1DD3F + A615F73766681D0315B5C45898912FB954441AE6384D415C6A6313720E33DA4B + 5F1579BCCC76140E5473C9649732484C0FA345DB10FB800D49DBA280E5F525A4 + 3B8C42920573FB2230C2DBDE99199B7C7CF3BEBECE9B878FDE5EFCF5E9C8F418 + 1D9F4BAD7839B87784A6006ACA75A5E9837BC7FF7941DCD60238DB00A710B80D + 951F9A8934BF0B20BBB901FEEF070F53931FBE3F6FECE409C12BF809265C909E + 7DE5D4B9EB7FE9ADACAE742F8C580A43A26ADF416202EC6C23B10ED6F935C4FA + B42459E5FAF52DF4C16436210B96861909B16D80C427DAAE73AADFB52AC6BA3A + 38B92307840F4447713B48CBCBE662858B2D8DF5C0919C1A9CD11BD8CFDA3803 + D942D336F11F89D68381105C1BE7240AE85B1A806F57144BC5CDA5E29EDAE6D9 + EEBAA9D6E6D156983295C244FA209123CA496416C6EF18EFD6CBB4AF1895A2EF + B9FD015C05B05D181A34986038DBD9E9EBE8F9FDDCAF8FEE3D3E79F2AA93B71F + 5915F16D391206C81F1EA3C1D916E2CCE4C1BDA35F9D4F2929046B01F42B2288 + 588F0AA0748432884B948F03BD4337CEFF7CEAE43571733DF22A01FDD8E0F85F + BFDDBC78EDD5D8D4E4BC72D9531096D7570AAA1AA86E6C7EDA5618F05460E15B + 133E3C3382D3267610A10442D318CD249F80AB77B6865746C3DBF3ACA4BE824E + 21400FDC192AF4B878626290628171D13E38D3F00D2158AAEEB82F3A2EFEA442 + 05435D5D0C8F7EF8503E5CAB93EF90DC9903DF033C06A67A67203B8AE4536076 + 22789D745A64AF1148BAE7FD607E67D5A86C7C74F17DFD68AB637978646D3A20 + 9F2865C8D700D3604F09D33930B907E3B4D435DDBB76FBE54BBDABBF3F1E991A + C7918108382F0D7DD052980F1F805D4010B919EA1FF9C7B9E422D025A4BC126C + 24F02136C0F58290F1166011D0080FCA799776E46F3FDC7B6C28532B30344FE0 + B0B6287B7CFDAFC3A7FEEC7A3F00CF017F79717521435A50305416D399652EF2 + F594864FAC8D53005140212A8895825E8146627F50037D6C6D82DF6294EFEAD9 + 1237259FA5C0A1D77FA47DC807A6A4E84F4C48B22B31B780512BA5591ECEE8A5 + D4638569A075B0BDDD3D3B14D6F82E7F48B4AC5A063C754DF78BFBAA014C44AB + 6B4C73C6CD34703EBF3A1F5B93A25FEE6E5C1F6954ECE951E637B1340660C5C8 + 305A031AC1C266869CC491D8951542E0B31FCF5C8B494E819FB620EF83900E05 + 1623464C98046EC3100D4A5A7F1B9B6FFEED44783A6621801102D8029C01C288 + 0D895C09EFE1DE102F976FFF762EA93017980CB149EA9DE626E7EFFE7AFDD4C5 + C70393C84968DF6C6C4A7A6ACD25819E1DB1FE92A8B9F539E02F74FBD0D1D6E8 + F9DD2921B51217FF035211A42DED6C17B50A21F812DD95BE289FA718E5BE7890 + DFD526FBE18CB76CED3B77D14EA434D8A832F9BC7CDEBD2436A32B074C0688C7 + 0334B207845513CDA8AAB01A05BC7D4D18958807F8A01E9E1D59585B00FB2F5C + 946C9F1B38B886F98A40F18862CC1391A1DDA70445B1AB2F29B6682C99D05A41 + 56F6B923A72E5DFCAB7F74182702493B902A4A2242C4FA20AA8C981408236436 + 64A0680FCFAFFEE78988B434240B802EA26B03D21FD1B7263883ABD757E50F6F + 5C3A77FAFEF0FC245CB6A10241816194AEA6AE9F8F9FBFF9C06059B602948A69 + 421B6027EF74CE0DBA49A312A5EF8824209627DA41BB9A9848168C0AA35D0F65 + 3984D001A93B1F60BB3EAFABC4BCDA2BA92D8F261A5182A3A4F99FC619BB814B + E6DC5170430F684DAE0424950CD518967BD68CD683490E0F5D589BF79244E4F4 + 97606807D0A692C30615503299336412A2B5523DDC593B500703AA14CAD9A929 + CA1D8C5C286250A671A88F481CB26492879A979973E2FBC38F5ED8AFCBD7D195 + 055B402E473B7F43B509A2864478E149685940D2073A21084A0F73C37FFFF723 + FEF191189E90ADAB54984E8C7C8809C5E84FC3E01DD29633874FDD7E6239BBB8 + 80E129951CD8119E58F82EE5D43F2EE918DB83FC2078D0282144E7744F7069C6 + E0E2D8867C55BD2643AB0526004E1E98A598A707BBA6BBD6AC466CC26C76C0FA + 985D9F0B69CC32ABF0CCEB2DC68472FC0FF60E5731EEBC0B7A261BB9AA9ACB91 + 7CFF8C894A1EF2207C802A5FBD39B53219D3909ADD538225080A056823A54A95 + DC9CEF55112657AF123397582A24A84DACEB6D40B3B05352D90F3B4FF842A147 + A86BDF3951EAD3D0200767110141A78EFCF0D4DC4CA1862D66A05C8C68605906 + 0900929D14F4B39654AB536BD38D636D058395090D150F5F391CFDE10F8310DF + D289EAA4F602FFEA77A1CD99C92D59821E49EF6CBF4CB50AB71626A57DFBB76F + 75CC9C37D5881BA812402345263779F3E8D8D79772CB2B6032B463149D3F11BD + 1F1AFA1A7DCA42B24784F3AAC52DB962656D7159095B80208720EA4672B148AE + F19EC622D161B85D3A54FF2ADDDAB2CC7B707E4063BFB2328E5DD5C8137E3C29 + CA8F5D7191CCE4120A811DB01B3F803B1AD7949EDE9DBD02191000AD75058009 + E96E69D0A73EA17DB113F3AB14A03888E45328D1F850AA3764B2A8EA9CDAA15A + 1C87BAB044D0721D46862764B85DFD4C568E720FC2813A8F9F9DF8FE947D9427 + FE0EEC4442042B72997C4D0E267CFFC27BF1787D5C73866359687053BA776382 + 81C8DBB8DCFFBEA3D5A9EFAF3E0BB4F2E98C372876312AF47C53EE65581DAC5F + EC65230C896ECD160DD6BBDBB9FFE36F87FDE3A38022D11524297EBD9D7D174E + 9C3F7FF1CF91E9097812182B8CC250FE821457A92483557E8D29BE92D8D88E0C + 1B691044B141F863BC1437CF50851399497D47A20830AA0C242EF311C79848FD + 129A53490C8CEC666F9338007931B661F866E442DF68FACA31D97A90908491E1 + A7FAE97EFD3CE78CF65C320FE2CD9327358EB5B8D4C4F9D5C60E4C74424008C1 + 09D6E5FA3AFC069AA069BAC75552380F1607C29B98E3BB73639CC76865970B29 + 2782FF848E414B53DBF9633F3EBAF732B2E01DD28A0CA4E246E368975B79BC6B + 7574707B868D182A94E2A2FB8BAC2A835C1B236DAB03F4CA1D7D6BA2EE1AE89D + FEEABA6D56885B634C705B6242778E41A1C7CB3C4753A1BFBED0DDB8C22DB13B + EBC56BD37FFFEAA7A22611AC091247144430E624A61DFAFB65731727F45838F1 + 08F809B987E82778F5CF0E7B88C34DC5018EA5613DEF5B498619E04193D04F09 + 1157B48B33F06780D0079646ED2A433CEA23875786E01AB46E40FCEE329906CD + 9C8FCCEED7E08C3113C5F04138835FC10373A90CF1698A1D9B7F8FE20F23310A + 6A98804DE8238C37147898977BD6CEB411EF12038020DBEB677AFC6A628A8724 + 603568BC4DE430340918CB33CAA208A3144A88149D3BF8D2D7CDF3C2D1F39616 + 4EC1C9D1F071523617284DD2CF757E55E1F95460F9A2DC5AAFD4D1B736AA6C4C + 1ADC91F9A6C2434FE861D31411D1927FEB9EC10FC77F73C9088B684F4FE9CA75 + 1346E864DA999578E8E7BB180A3DECA541EE45C1BFFCFEE2C8A5C711C2741011 + 102501D37C7A74C2E0FACDC3DFDC15B488099DE14C99FF8EB3C28C7128FF4575 + 34299BE95B1C995B9B5B589EC14834B180F8B48804481C25F815C3721FDEB5E4 + 59D507436E1984223E1E9CE8F1DD3023E5259EAFC6AFCD6538A370249999241D + 58BD9D5A97F93CCBA26EB40E5368D59B738B33481DE8EA63FAC3F0E2A8BB24D2 + B0DACBB1312CAA21ADAA5FDA38DB1AD7906590EB1524895957AF900D270DFB63 + DC08A3539A172331740189874377E5D069506F8E0F8CDDF8F58F5B376FDB5A39 + B927840AC66B5DAA238C247E06959ECF4A6C752B9C5E55381948BC0C2ADC9D6B + C26C4581B68220DBCA20D807C9ED13BD7965F0DDD13B3EA258EFEA5817717862 + 6F8E6F43926F57B2754D985747B27B739C5E88E7B963BFFCACA3675D16D834D3 + 8E69CB9B5BA971B127FEFDF8E317360BB279A42F621F7CA468355BD564379DA8 + D292BE2ABF9664F17803CA1E5203C02407937834BE4CE35E134B131E7520C03D + EAC6009E60BCA1ABC3640C8FB118DCE81C0EC49926DA071B7AB0D9BABD33BD30 + E7591319D79505761ADC593BD26152E117DF9EAD542D813B8C66D2E6261423A5 + B614C6F41703C8F42ADC8DCBDDCD8BBCA2AB5297375671E5A4166F4F5C70F42D + 93CC48A2C45027C21D03C0A01E5223637FBBF2E491EE1B0B3B0F83347F9D7287 + 97022BEBFA40ABEAA0974536AF4B6D0D255EC612DFC7691680B384A17C9FAA44 + 076190776B4C4855E2BDDB0F4E9FF8CB51146659E86D5AE615DE125FF4BED2BF + 35C5AA2A18C24EE6226F97F4D04B477EBC65E7605913E45313BDAE5C5D9E5B79 + 76E7D6E1C3B772CA4B889F4CCCBB8FDD299E2407CF3CB5A1482FCF31A3A38094 + 5CEC79CA4C845031C6AC1218A1B2BF554FE0E1DF10031E08FAFABBC9B2DCCBE8 + 5D940218891F8C330D7950577127ABB5D8A33EBA7F16F332061787BC8451F1DD + D9C0E0106924826347BDAE802B219CB7BABA5ADF555B3824AC1E6E9959831D64 + B29B8E56C95E99367B3CF70DCE95D42B50CA255B543B6AF9C6D3BBAF1EE93A3E + 36B0BBAB67AB5FE0A923B47F5462AC2B72D029B13314B8584A7D4D2ADC6CA5FE + E6651E81AD098E22FFA08678C33C67E34A2FBD74971F2F3C3EF3E33DDF9AB884 + BE3CA7C628DD4287C4EE02AFFA284BB1BF9D38C4A73DC138D8E7C8895B26F141 + DEEDA9BA45CEEFD7C68AD272BEFF8F636F8C1DC16927F9DF08E87D71C6380F16 + 3EB934D53AD2B20EBB7D18058610B09678244BA5B60C15602AF546A0E49D4EA9 + 63DD04DDB6D57033EF599FC2199B81466D5264410C06127E17672C8ABCDCAB42 + C62132BBBD135E9B021B45D4A5ED191FCDAA158D2F4E2867668093A616A666A6 + 41AF6A2A5C5072C815E82D9189701FC1D89FCAEB5D0A21DE31D01C46335093B5 + 34B69CBF785FCFD1FFF673F3EB7A9696A5FEF675A16F04AE2F4BEDCDC55E2E75 + 11C19DE9D6957E56123F606BFB9A300BD8EB698C0513E345B1E3B378AB93E71F + 9FBDF6C6AF3139B22DDDB93ECA4AE8E3268E72AF0D8B1FC8F66D4EB696865C7B + 6EF6D5895B16290171FD2550565AD351FDF8EAA543DF5DA96E6986A723ADED6E + 4E72299D490B0DACA81B09C15FB2DB07829F1A814C425294A07226D63FC1195E + DF35F5DEBCDADFB701DC244C4160BCC81D9FA741E0DE4FE5EBE34E0FC9056E9C + EE0A6E4B6A5F6C871BE656E78DB3DCDB17BA31E6B1B53DB138E6200E726F8E2D + 1FAA5EDB90354F77DA960709A0768F5A94383BCC722105C99AC469C6EFF40DFB + 0B6F30359FE46B60B87D47BDB4BEFAD6D8E2F4CDD7E1C539371FEADCD6B74CEF + 2A48EA2908E9CE3196785B56FABA4823C23AB21C6B239E17DA3FCCB67C94696D + 5219ECD79EE9D79CF632C7F159B0F5F1E37F5C7A64612E0C8A6848F5AB4B88ED + CA086ECC70AC0B0D688E0B68CF3013055D7B68F8FDB1DB0E25A1A9EF0BF27A04 + 768E3647BF3F6E62EB045380F00D72D9EE6B5FD9B067B291B410344C48208049 + 7B763B938A1479480C1B6AB022C1C57E5964553FD904B060A8E5B11AEFD107E0 + 0C590C4007260684C055C1F5A9318D29F2CD35B00884830D81D5B1687880A655 + 6FCB36D67C6AE3537A8BAADF37813E53CA64610D3906A53EF5930D242B8BA004 + F7DA513331354045367766F43D58F0E878128A6B1E697F272A3A71F9D9CB505B + 8F8C7757FE787247C73AB12ABD72A236B025CD40EC6254E916D5999AD957025B + E4AF4A9C74CA5C8C4ADC031A13DF7514E50F4BE27AF2ED12FD617BE5AA8E716C + 7F6E61BF30AE3D2F7F0492560B744B9D6F47EA1815FA1896069DBDF8F0D285D7 + 86A53E3ECDE146F66E170F1FBBF4BB4E736F3BDAC510F227DA8468594DC7251E + D56BF88C1890442EC18E12C656346283A305B9617B20848DD57580085C56D1D9 + A023720FAA8DD4C08A21598B56187D1CCC6708544C851F9C99785EE61854190E + 5392AB36426BE2CA27AA484C04938C6AC6DBDF3597C821830392FF60076D79B9 + BEB3ED418E45D75C0F8D166A388984BBB946294876A4368CFB51510805682475 + 0763906AD1489D7F7D827980F7D767EE5B57045AC7045FF8F9D5C5877A2EC2C0 + D4A1C280E6549FF664EBBA40EB5A3FA352172381AB5363A851B17B4447B69330 + 34B2393DA6AB24B02DFD9E83F50FFFBCF0D0CE3BA43D3DB43525B947EADF9669 + 280C7C9665FF30D9FC7EBAD3EB14A7E367AF9EF9F5854D45C27D07874BE72F9C + F8EE6A514D25CC9376596454C5E31B86390D1512741181A1C93D20B56B28FF00 + 08CC5E276213C3D7903284A98518CEDA9E5A9CF76FCC74AB0B1E58E847D10A51 + 18B2E98BD2866E13EC229EE9BC8371467715541B0DC33D0F33CD0B7BCAE09E86 + E136C3425753B1476A475EFFDCD0C8EA7BD7BCA8CE993E74FE9510438000CF56 + ED489B87381472D0A8E10E8BD796C8BBF2019C05F4E4306910774F302400A568 + 05035546F91EF682A03F8DAD4EDD7EE9541FF5D8D1E9D7EB7A378C4C4DA41ECE + CDE181EDC9BE8D89FA852EBA252E2F0ABD9FE73BD854071A15B9D856F8824A7F + 9463A95FE16D290EFCC554E79BEF7FBFEB6DFDF09DB1637D98A330CCB8D8F341 + B6E5931CAFD7C59E8F0BDC5F24391F3AFBD7E92B2FEFDB5A1FB970F3C83F2F7A + 86C4A8D41009C13953B451D5C2888F27A6B4B84223EAD14F41370EEBD87A2607 + 9A26DAA07C8D389C7007E20CA10B57A0A6DFCEED6BD0CDB5ABE817A1FA079C21 + FD92F4F88F5F4C891C281B69793F500B7052604DDCFAFAD28A62CDBF2221A125 + D3A6D84B5FE86652EEE3DE106D97E92E53E2CE02C493C0CE5A94AF84B6A5B74E + 756079D2AE8DA4AD092814305B9086E449880A330CB7D4998D25AF4B7CCD6A02 + 9C0A43CE5ED7BDE36CECD99174C7D4FAC69FA6CFBD1C4C6ABCCDAA3D9D1BC2A1 + 5DC8EB12A717254EAF0B1D1FA4993A378659D404EA8BBCEF17D83DCCB37C9663 + FF36DDF9F26BBDEF4EFC79CDC7FA71B1F3A322D7FB09BE66E5217A459E7A399E + 2F121DEF47DADF71363971F2CF7317EEFF78F9AFEF0F5F72F50D4558AA61259A + CD2DAEBA654282678CECABE748EC8A44A6B6B6A324A91E55E14BEB90E189DD62 + C82EA406B5D80143A9AA9FEA332EF6091047C9D5EB90BA4065136F77902B6CF7 + A98B417B0933945028F7CCF6FB4AE35AE63A60F4F1A509F1402D9806A3736345 + FD228B324FFBA6089F96C4D26171D74C0F2D9D130DD499177B82314203C40791 + 278C4C080DE70E3B8F605B42AE12105DD754BF6951C0F3121BA34AF7B7813E47 + CF3ED2CB743393F85FD331FDED0FFDC7DED6E008DBD486E855B8E88A9C5F493D + 9E4BFC1E9498FF956EF422CD2AB425CD4314675310E0258C091424083BEACF9C + BA7BFAD4DD50515A704396B724CBAB38F9A6B1D985876F7F7D6078EECACB133F + 3D3E73E1F695D3178E1C3BF5C3D15FD2734BD1085260F4924E8FCA46269A3E6D + 173096A0F82639909A7213880139D7878DACBD07AB0DAB3A8800456E80589002 + 3A0C6D2CAB56FD6B530DF39D3BE73A49C60D46BAE07F8C38A85862C4B14FFF46 + CD70248732B7ABF4798E75E764177206F170A981006FC6E6DE43A0C1B73AC1A3 + 313EA42921B535B365B6CDAE2828A9310DA984D00AA30E6D19422781BBFD984E + 83EEDBC4CA946361E8A35C9717A53636159EAF6CDD4F5DD63114F858D405FDA1 + 637EE9D7D74F02ACECEB22EC1BC2F52B3D5E94D8435ABC5E9EB39D2422AA29BB + 76B445A65E9D5F999D5B5958DD58834D99F6FAF6D3FFF8E1E6DD37EB8AD5A68E + 767B27CF2B577E3BFACDB7677E387DFED485CBC77E3E75E4CCE953672E9E3C77 + F3915E6D53134976D9DC806D116241505D42E7CF94D9BE2CC5FB52639580B626 + 8E29C89BDEF901F312DF922111AA6DC812A15A0D560D121243B6186ECEEA92BE + 297749AC4F2188067B12B6B677C5ECAE3E6344B30F9FD1E011ECE602070449A3 + A17A6C7C7E14EBF8C89ED716F64504579F184AEACDC5F9B1BC01816753A26185 + 8751998B45A9CFC8FC10C402E826F29E29CC59D91EFEA04B076EEE632F83BAC9 + 01C7E2A8DBF1A67AE51E7A521FFB62DF3BCF8C75BC83EDEA23A149CE4FF7F4CE + FEF8CC20DECDB129DCB8CAD3BCC6D7B6C4BF66B47168767859BE0AE96F641B0A + 1344610740B98E15A11951513FFCC7A14B579F1B1A995D3B7FFDCC37678E7D73 + E4C457274F7C73F6F4B173D72EDC79AB63646C6A72F8FBCB4139E9304FB50C32 + D141EDC386ADC6B76564FE853863DE27A21CF5345A58D08C49A1927B9525F9D5 + 44E32E1298DB34C70137CCF11AF80378ED5F1C3512797988FC01618068D85DA0 + 7D84289E50F27168682FAECF35C4113D9BDBF20D85699E6B747D32708C6C5DD6 + 3ADA018A4A06C605B8FA60D1022D825B0D918F0F3B83B3232ED2485024A98D39 + E87A70EC0E2EAB71DFE3BCD5B0FB8B96D5D0D4B0498EDF9D78F757F98EB6A501 + CEED312619DE472EDE0DAACA741347C3BF9FFFD23FFBE3D36721D645A3D2A0BA + A48CBEE2DE194C75A28629429C180CF047096169F04F96646F1E3C3DFDFDB99F + 7EFCF5FBAF8F1FFDFEF4AF976F3C7DF2D6DED9EB5D467E654D6D6B7F17983C19 + 31515FFDCF43E199892815A1632012BD669F8C2B1828D4E8831894F6E539EE05 + 0864B041C875829E06739167E30804FE618B8E1A843877669A4225BF4F659273 + 73E8F8DA2800046426208B8B33261EE14B4DAF09C6131AAC12813BB23AF3B6C0 + 25B1257749B65A3122D5CDB133CFF66A1F684122424B5693E10497C240C2F13A + A36C9751D918FE429C15EE4B5B6F13B90F9BF51880AEE8A9FA2BCEE945AE836D + 43885D6590A9C4FF96A3C97767EF4536E6A60F14E50E955FBD6B78F287BB8FFD + CD17554B8A4DE58A12320C31BD03437B741F00931521708D1BD730606C50D0C9 + AF8EFD74EA8FE3472FBD7E63949E9DDB3734B8AE845D080DDC6947C7D8409FAF + FEC7894C51117206CD7F24429D1235D54C8CD2B9383B08790CD31AEAC44037AA + A5C1F971C312CFF8B60C486346BA00E902990A9C0461781F5797672EF2920C4A + 1055BB4D62E8808CD1E9FB8F7A2731C4A2C9B7B95539DE0471D5F2BE9AAEF7BD + 51ED993ED53123B2D18D4DD8E7243BB52488418A62D0666D196A7B5793035B7E + A4F10E85A4E6A511F11FA3116EA63BA2A06F62BB8A0DA501464277932AEF3745 + CEAF731CCFFDF5E6FC5F6F627BF2C23BDF9965795DFC4DE7E8D1BF74131DA7D7 + A7F03692ACA702CB65774718D3FEB1561A31212EADF8E19FFF387DE4E289E37F + 84C725604223C428B0487003FA6061CBBF3519B44B802B83DD1DBEFDB78BB9D2 + 32CA679AFE7FBBA607B31EB5F9ECB338A3A110D4231B186187249480BA54DBDA + 80999551C80C552AB04A18098590056E71C0C6F758974D65506C63326506002F + 4507176714A0FBF495C3CB3175531DDA986255E4A1DC54CCC9E7ED0A83DB26BB + B1351B0846CCB9D0E466E34309CE60DF0934276EA060445813CBD8578030CAC5 + FCA60D75FB5CAF5D6DB8699DAF6E990354AA198B7D0DB25DCEFFF6FA868D9DA9 + D8079ACABD4973BA74EDCDF9CB3AF7626C3306F2DBA6BBEB07DBA1A900B63340 + AF94D86924830A9EBEBCB0FCF8F6D55387A01EF4924F583856A59376904A3538 + B16AB9127ACAA9D5D0BF691BB752835C1D0FFDEDAAA8554A964CD43809303276 + A130DD7715F4CB4FA83A544298974FFA46EDEC88865B5FE5DB95F49463F49BA4 + 3A319CD1DD19A87AF2A84DB4117AAEC15609CC8218FD8CD7B9D3D8C73FA3B399 + 5C9B372AF1B42DF30460F42F4EE815398827AA21B9655349F6BD28C362340458 + 9D768EC5CD69CD0E0E4638F61228786B6638838BC172C8EC931A57793FCB3137 + 9478BF2D75B5AE0F7F9D687DF4D89D47C1E177720C5E14DB3F8C363F79EAD185 + 9F5E3C4DB676A80B8E68CFF4A88DD12B76C8E8CC5D55ACE25C3E7C60998AF919 + 3927FFFEB7F3272F9C3E7DB3676C10F81E33E3216945092E05694C86F3050462 + C71E376B9343FF71A3AABB4EB30D46499B469E4868E3B30A8C094CDE1AA9DCA3 + 73C37F5BDB8BCB0B8E15E1108B40FF0F9BF768F675C9A3F059F21559486BDE8B + 42CBF18521C0995A8E4DD5F6A598FD7BB5C3104D93FDAFCB1D935A3380156A27 + 3AF5444E9E4D91099D0541E238E1A0746479AC77B27F6D7D050DCC4D0594FB89 + 7A6B215B8758B134835613C066AB42E2D524B5913D5B52865C33DC6252E16352 + E5FBA6C4C9A0DCD5B93ADCBF2D21B230F9F0D13B0F636063CCCF44E4FB20C8F8 + F48FF7CF5F79FDEA9DBD5B7D6442475EC240A1618DD7837C93F80EDC5CDE54A8 + 951BA81E36E4AA378FDE5C3E7EF4E8E1F3771E99ACC89621FA002200EAF880B7 + E02D600BAD61A01452BBEDACAF7BE4D08DBE91218CEC6EEF2C2964A34B93FDF3 + 83B5632DC56DC2BEF981B1C5B13539ECD6D21ED598CB85B8215BA05C80326DCD + 940B45E11EBF924CAF49D9C29C7211DB1E403479F757B88CF21988AEC2E11A3D + 9163E76C3BC6F2C89E30579331B2D8FF2C2D9856DD44D7D37CF3CA01290C57D8 + 2B36157878B7C4DBD4063D28B1782B71B296F85B578778D5C445B4E647B5173A + 4B42C39BB2D0ADC674288CCD939E6B1A21B3676B61C28AC695C69DC48DCD948E + 52DD727B9D62C7D765BEAF0A6D9C5A62FCEB239DBDFCAEFDA10F657731DD6526 + 027FBD04E71F7F7EF0F33D7DCBD2C088FEB4CCFE9294EE22B3EA008306EF27D9 + 26D2911AA82952AAB148BEBBA5FBE2A18BBF9C39F3ED771742DE8135B82DC79E + 126A8CEFA1F302E271134C18CCDB974396DF071743DD53171E374FF68907AA93 + EAB3E25A0A6D8A02A0ACD4B1351E6A905C1B629C45E169DD25D3F239B2FB8C71 + 26A2C735D0DB573032F5C320BEC782BB9B1804971AA14442D044206F6D8B871B + 0C2A9CF3FB4B484CEB40C1ABC92366E352D2808F8D337DE602CF812908F5EEC4 + 3565E57697CE2916CA7BAA436A92039AE39D24211635FE2F0B6C9E17D9BE15BB + EA96D9A5412B301A862261434A924CB668964755053182B1106879DA51106E2C + 74856C8E17252E2FCB1C2C9A439C0ABCAEDDD4B5B10F07EC0ADF579B56065865 + 045CB87CFFD25D7D8BF240687210D896602BF07F2B70D311B9DCCF3448EBCA81 + 0729A04BCFCE87EC8494137F3F7AF9D4E55F7F7B38B9340B8625BA00E0B881B6 + 232108F467494128649E4EAD4C5BE8EB1F3DF7C85E1A0EB921862277D79668B3 + 2AFFB7956EFA124FF38640935A5F932A1FB32A3FCFBAE896850E4C61C48471D4 + A17469D4E9E6F296B6BDC000CB0C0AC67C4C70A2834A8CED86D1AE87A946E135 + B198B54D7046B9798FE8C9701A3E63A62D9D078C52365AEB280E9A5CC0B4E7B0 + 8654417F25761585AC6158FA3624A9AD0F2D8D550C540548633C9B621FA61BD6 + 4C60CA29C107723A8D86D2196B1EA9F9124B34B098E7C3765EBFC4A921C6B13E + F475BEB58ED0FD45BE8D6B5D84B05578FEA7477EE15970597A6B0166DA64869E + 3AF9C7CF7F1938D6453A35873AD4873A3785E98B3C5F973B3D2FB30C6D8A8320 + 39E00CAAB32D5EBC38F5F5A1635FFFE41114823EA55C86C544F0BFED1D05F2D8 + 36A4A542CEB2726BA37CA021A421EBC96B9B4367EED994045855053835873B48 + 42A0EDB45D55D08B2C0BC7BA3097A64820A6B7A58EBA2247C8005853AD606B19 + CCC3D2446FF70D7FEF7115473C5292A540E6884D8D3BB18BB3CDB1A559DBCAC0 + B08638DCA621C063BA9F8E4021A9C11907F978E9DCFA827755AC27E4476CAC80 + 28F192C4DB09BDDECB8676C357C41425650410F0281B6D36CC77EF9B820A76E2 + DC10E9CC2D8FD8C3194987C1C8E9C6C6FCFAA28B28C2AC1A1237E2F5CB5CF4C4 + DECF93CC213779BC67E4D8A1AB590201F4CA31C9F53097FA98C6059D3BF1FB85 + 5B6FEDEAC3C3FAD2CC255E96F57E7AE56EBAE5CEAF257621CDF17225EC45A967 + C6A6AF9F3C73E6BB4387BFBE2668A887A9CAE4EBC062A03DD075838269F42D36 + 3B263BFC442986255E0ECD31375F5B9CF9F9794657896F53A299C0DBAB32227F + 546C5911A027723797FA9B8AFD0D85DE663541FAD59E4E62FFF195318C219056 + E0DAB44F814BC1C8D41B430F4FCF69F0BA6BE66890AB56CFAEADB9D7C50637C6 + 40493993C05C4EFD08675CD908EF8797C6CD05BE01CDEF401CC814CAD8B6E287 + EF4CFCCAA24081D3F42962F66CA8A185A542D5353991D852BE2A9FA7D607CE7E + 773FE9233E03AA22C9E178997AB36776D4ACD4E779A103243F99D704EA557864 + 4125E4879DEAECF293DFFFDA3AD40E0D5DF4059E9E5D312FFD1DCE1EFBF5FCED + B7B6F5A1C1ED4990BB68D714F432CFFE699E3524CAF94A23544AC8C2FB901E1D + 77FE1FDF9DF8FED09DDB264B8045A51CC522DA8A90BB0D65636A602F416FA343 + 4598B124E84196C1A374D39FEEEB9CBBA61BD39AE9DD19F7B2CCDEB92ECCA739 + C140ECF5B4C4D2B2C60F7A04413DB14E89A36E8573407DEC2CB88660A063A47E + 1F9C5126A068E3E28C89445C3D4D2B26420FB87E49B60C76AF4C81B50AF0CD26 + 786D8ACDD89E420791EFCC2A56207291C2A884C36780096210C102E1EAFAA12E + D32A3F47A92F7475002CACAB643503CD654D95D0218ED61290D47A8D1D88DCC6 + D97661A3F378171D7074C6D16483ADD4EAF156F39A60A35237936A3FD35ADFBC + EE62EA87477B055D3C7B7D7A75A6B043FA46E4E4D11AFBDAD5E1C4F19F6FDB58 + DB3784F8B4C67934C578B6C53ECFB17A5164E7D414DA3A0EF580D85C2AD0C6FC + D4FFFCE6DFFEE3AC577808BA1A5023089E09886A545E9009AACE6B6B7C9C6DA7 + 5B646B54E1F328CF5827D7E6EA83B7A7FF786D2A0930AEF37D5464A92B70B490 + FA5856F93D2930371579DAD70643B9F073489EACF2486ACF01BB85B47F442B8A + E9692E58B92609F702CCFB0314615130EC0DAF83B49E942D66F5899DA5414E55 + 212EB551B0B10ECDC0B0FE53A12A1F6B846CB09699164006D71AE0BEDF3D9F9A + 98734804640BA065ACCFBC3AC0A72E0CB60A30F99A1432211161689FB433D92D + 0960EA91B70CA6CC38AB22550F90AF0035901B1BD9BD82978576C6420F834A6F + D342B789A5F7A48BD1070F6BFBEBD79FACAA56339A25AFCAEDBD3B12EF995B9E + 3E7DFDA9AFAB7995AF59A5B75185E78B5C9B9705769008ECDA1C25EC1782E883 + 1B5342C2BEFBFFFDE3C6BD17DD23FDB889BA0DBDE3A0CB0B96C300214EAD2F1A + A779DD4B3335A9F27A2BF0B6690DB510FAFFFCC79BA3579FBBD6C43B88C32D4A + FDDCABA223DAB2429A3220F330AAAB085A675956040346ADCA7D7B16FB68C776 + 341B49FB034A913CED45F98C6DE2D06BA80E430346A584D2C896D91ED85B772C + F0CF6E2F291E96640E0B2C4A7CBDA5116BCA157844524BC9E32CF3E26E0CCD7C + 0E67E4F9689E1307B971A2DB40E899D0924E2C414898C596249A238F48D3502E + 0F71853B13EBD4A9E41A3C780B8974C16CC656669CC5516F4BEC2D6BFD8DCB7D + 048362A80A2335351B462F5FEA5B3A80CE88AB2F7B5A68E3DA147343CFE2CCE9 + 5B4F7CBC74CA9DD14C15B83FCDB33591F8E80BDC5E16D92536A583FC536E2A97 + E796B3B3F2DAFB3B319E873A0CF7CDB1299F6A1B1AA92674953D4EB5BCFFCE44 + 5FEA6954E3E7D61E6794E3F5D385FBC77F7FDE34D93134373CBD3AB5AA5C5E53 + 82BC5A8654D439D93C34DAED9AE915F44B5B27DB6013051D615A370225425AB5 + 7E4C06F210C97086AEFC3AB81ECAA0C674A362FBAED96E944FABEB80C8FE95F7 + 3E75C90DE3C85B898D25F7B38C63A4D87BED409C31034163A660987533BDBED8 + ACCAB7A44F4012E268128B4649D16D3182607C31D9CD93845C02D490DB6E6DAE + 6A4391D15A6E5D13EED0146226F581C456ECE5A6C416084B33F3B72F5F748B08 + 8615FA54273DC9B73617F89DBFAF77F2C4F56741EEC6D5DE4F8BAC5F9539E909 + DD6C1A82ADEB82F445EEA5135250937268C54EF227C15523FDE2B0860CCF61C2 + ED836DE9FB06B3CA80A785563A458E46955E06E56EF67521716D394F1EBD38F2 + D31DE8664DB803AD6D6C69478A541131B40B0BFE87FD9250DE90023CDC46D98D + 5030B032DC30C5F6110B92447118696001B4B86FDD543372246E4060CB5F18A4 + A8A52ABA1A0BDA0ABBAA1E179AC735247D1E6794CF291F009166B597194ADC0B + DA8BD1BEC716953063E4796E2C8E6B261D242898E1446504A5C155D9A26B79D4 + CB0A6F43319CE1E2DC32DB8A5963D075736773BC67F8CAD1EFB3AB4B2697674C + CBA1458395419ECBB5D746E7CFDFD48BF1B6690E7A2B723410BB19557AE895BB + BC2975B6AC0FAA9C6952ADAD2A2004422AA521EC89363DC910428441FF8EF5B9 + C0FA34EBDAA0674556BA02379BEA20C7DA7013917B74CBBBD72FDE1E39747378 + 6E12914DDADFD26D7F6644E1D6036D15A8A95E01658C0D0BB52995B117654126 + 6F76758A46C0CCACCE5914792677E7A57594A60D94950C498A3BCBD33B8A1CA5 + F1E983C5609A89FB5AEFE71AC5357E39CEC8FE29CCB8A45FFA28DF023ACD02B9 + 215363DA1C7691C77A53F4FE30EE4AD7825605276B932D469BCF88BF8F21FF85 + 9539287C7A5A64FB46EC615EE0B5B836054F018283017BEA3BCF1F3DDDD0D732 + B334675AE8A52F768BEDCEF9ED91EE854B0F4CD27C5F95D8BD2A0335E6FA28D3 + F445BEF5935C8BD702A7C4E66C88D303D2A1E11228AF0DD019706E087413C148 + 15D42BAADFB5E65B55855B8BFD1EE61899487DC2BB331D1BA25E15DBBDCAB6BE + FDC0F087A3F7FAA687915C8132C9C610B16E313049DE9220348DDD202F02ED6A + B6C4A830E41225BC67FCC7954088423C7F0D25D6DACA8A55819B7E9587B338CC + A72EC1AB31DEBD360A6AD14C2BBC933AB381D1EBDE773ECE35CDEAC8650977DA + 0CC76257D4BFC00D56B8A8ACA7FA55A9635E7709D6A462189F64155002047E20 + 5622C905A3D34115C5D431D77CFA087300004C88D8689B1CB4AB0E05930C5A93 + 950E082121101B301126EC6AEE3A75E9DEF0C408BC87BE7A2FCA1C9D4BC32FFC + F2E0870BCF9E273BBF2E717859EAFCAAD0F959BA95952400F4996EA56B42433A + 604709BB0AA8BF70E31B6C7A19F440966363A68EA951E3120F4BA18F6575B093 + C8B774A4D2B622E875A92B68EB37152E7FBCB1F8F6FB5BA28E2AE42E8CDC10C1 + 8F5D28355972DC94101E39322DCED5D9D49A876FB866C82E5E315805E63C9434 + E40F564C2C4FC19CE5201E40A1A9952BEBCB13AB1380273805C544E4513224D4 + 245FEF57B3BB3FCE4ABAA4AFCB9C52498098EC4D92DE02C465C06F48230F7AB4 + 1F11AAD465D720E8209C1112C6AB73BAA46655012F4B1D62DB32C1FC858C71AC + 0525E5CFE5F9A517AE3C5D5C5F81CB92BB4B1F173B3C89343B75EEDE71D8A44E + 727F5962FFB2D8D1A0DCCBAD3136B23FDFB529CE50EC5DF1BE12F20136363055 + 0FC681A0A26A0B6AC8206C8C418BE4DA2253B1AF45B917044DDA26BAA19D8CA9 + C00B5A73EA9438E9963B5D7A6808C1E81C6909CE99768421FFE32A27666E68E3 + 8CAB1DB42D499A67A7119264AF083EC27E55CB78F7D8DC10E50DA22B35DD17A0 + 9121D488764E0C98083D2034CF89306B4C05C6706C9F9A801CEB0370E8BAB1F6 + 9745F6714D9852425E641D9406C158A0B321078691360544D5EDF62BE7AE844D + 1ADFC0B2D0B1DD8203E52C6A206DCD737475945000DAF810E4856142DCBDAFFD + F906F84EAE52B996453F2D7579116B7DE4F8EDB3BFE83C89F37E5E647F2FC7F8 + 6591AD4EA1834F672268A667F936E5C395589A0995ED1009860E56EB6BA4D41D + FA97A8563656032569FA02AFFB79C6C5FD0230FA4797A70220D2DD18F1B2D0FE + 75A9C30D5D2BC0596E55298003FBAF60EA1196C533B9C7D35B146A140DDAB291 + 5E4CBFA758A76F2841D3A0F0BA520E6D8EAD450159FDE5C2A9FAB4CEC2D0CA84 + A21149747D5A615B395C543BDA665EE503FDCC695089FBD2C219ADE300EE2138 + 1B5819D52D734AEECA22BC83193D1A264249A88686A09281C6E6890E206B3CED + 14CD291498DC65D0D97369137743152AB0F22DCBFC5E1559BB57046E408D1330 + 07E66DE2FD70B18DAEDE537D0B186F656DCD3CDDF771A1FDD3088BA3C76E9CFC + F1D99BB40048688408C58B129BFB99266F2B9C41BDDDCF318653CD8092D4B8DF + 829D2414CA75D814C6D0F086BA7B7EC04E1AF92CD72EA43E86E8E10F3155EF8C + CBBCF585DE4F72AC0C2B3D0067DF7C73A3BC598C1C4670867E0D151EBB88D156 + 271A34708281F00D932E6CC9944177BFC7027020ED35D9928DC0EF85C453A7D0 + C5A9360CCA73DE14BA40F30A9D42E72049344C23B5B1F051B659664B1EB76F22 + 9B03A503DC3F232CB48733F8A67AB0E94DA95350431C5560E0EA68D4EDF60EEC + 4475CFF5C536675B40AB2A19980FD88E08C7220599FB2E5523D051456F059566 + E98B7DDE089DD2BA0B20A004C3925BC11883562BDB3A776ED97B79C1F560AE7A + 09E29E16D93D0D373FFEC38D4B57DFE8A5054066929EC8F379A1E3935C079D32 + 5703B1C7A342CB8CCE4274D26117134254C06BB09506CDD689619DDE50F420D7 + CEA92154B1B600F31C5F9D31CFF37E5A6A6720F086947DD36A1F8AB3FC9A5222 + 2A100A0059A2D67045BCFC46C643DA5CC8652FFA2B758418E1221F53D74EAE94 + 0CD655F457F68DF4CE2E4D4D2C8E4323636800DA3CD456338CADEB32EA4A5E17 + DB677717B2A885865B389CCDE977053116F4C6D0D6CF6F13EA8B3DBCAB234976 + 251ED8880B0296226662C7644F58478E9EC0B96F6988947CD3ED95BD86178CBE + D8F3A878007808FBEA8DCA3DF445CEF5D3E8A368D049CC51E891FFF2EADDA0E4 + 28C0232C325E5A7837CBE2AE8FE1B1EF7E3E7DE1D9B344FBB7625069CE8FB26D + 1FE558BF2E710657E14991B55399AF42B58EBA0BA255D07D82187D807E30FB03 + 85B1CF8B1D6BC71A301B644D5E39D2F832CFE96581C3CB1CD76759966F4A5CCF + 3D7EFBDDD7BF655514C0E3601D1849846A63429E14E8F43D632CFA0D938174F2 + 4C0632EEA49608CB1BC7EBE137E22991A6E290D00607DCC8915E89F784185541 + FBE325F8185355A153E6583620E4828EF75EA3CF88AE224D8E886A12F4D54075 + 9083C00FAC652258514163D48AD0CEF4EA745C4FA19EC8AD7D1E7BC692CC6D0C + 4132F9C0C3994628E38C51EC48C61A13A1DDFE1266E3EC5DB9BDBD36B77CE7CC + EFC1A9B1541408BB9B9F14D8DDF7373EFBC38DD3175F3C7F67FFA6D2EDCF34D3 + 7B19E6F733CC9FE459BF2E76785A6C6390EBB4245F20878B803B0C202141DC4D + E8BFB5E22488749004C9D46B98A1A254D58D773E4DB77D906AF128CDE15E8AA1 + 89D8FF9AA1C5A16FAF658B0A61F9B8C504D104A8DBDFD5465C48D1A569A387B1 + 1433555048C08EF6C7D215A51576CA45E8C1617AEE65B10135D1BDD3DDD0BF7E + 636DB976BC3EA436A56EA0117E4D6817BD2CB12BEC40B388F762F3D98D37EECA + 2FAA2AFB1746AC2A039C24FED89C0FCBAAC86C3116407A056DCAF3472B61CF53 + 30544DA30444C7EEC9F4FDF90C2E042F4C813627F66400EB63B75A973E7C6A78 + E2D2B15FB2C52548D95B5B93EB8BD6D2D0C781E6278EDCBC7847FF4DAEFBE33C + EB7BE9660FB3AC2076752FDD544FE0AE07CE758163F75C2FC915C0440F2C65C0 + 8222F5E4CAAC45417A7A5B16C9E6C5B6470B8A55BBB2F0C7994E8FB29C6E26BE + 35AF09BDEF60FFF53F7F8B2EC0044E7A542E1ECFB62BD628DC19BB307380F11F + C433297A2870199EE8BE1A17E2C8AC64EB6A4A36ED5C16FE52E8A957E7E720F0 + A91EAF4FED11E9177BDA0ABDA03922CC20A6B5F46D9953693736253910679AE7 + 113B9E066AE03F68A3ED5913A357E23C0FDBEAA448038502C11928864DB522A3 + A7CC48E0152A8C4188C09E2271B199A0DF95781AFB4A234348E520E9E78EB5A3 + 5469D0E70187C3BDADB52DC7BEBB5CD3D9441B66CCAFAF395744DE713039F6FD + 1F676FEBD85745BE2D777F9061FE30CBF259BEDDFD4CF387D916CF8AEC6E2719 + 049447D39E36404E98984BC28DF3B2A5D82641CF441730DD861230F101BC76EF + E294FB29AEF7D2ECFE4C357E5DEA7BDDD4EC9FDFFE1A981B83A93E545E90B62E + 14E20C495C19C896464884F65FD2043E9808E5214CC3A3C47E4CABCD79906CF0 + B8D4FAADC0435FE26350E36759E65BDC235E55AFC2ED603CC77617423BED96A9 + 767A1777A83D3EA338A3EE15C117FE2453C803AAE39F1758F5CF41511429C101 + 28E27A307500B27553DA2AACA4C161D23872900B76EAA63BEE9F78E12249A5F4 + AEE54BB434A51142AAD582AA6FBEBBD23E84D90CD81D55BD192E49FB5DDFFCD0 + B7172F3DD68F1A28B06F8CD42D76D1297106B401D0EFA69BDCCD30BD9E646D5D + E40727D741DE20B64C84DC544C99FDA0585DC5AD6B0C6561F223896A7C48AB2F + FE33DEF176BCF5DD144BDDD2903FF4CD8F1EBB6C1E0DE530600013471AB7F93F + 4218C504E3212ECE28DA285751E6630A8FC722083D14BD3BC1E2C45B696F1FE6 + 98E9653BEA4BBC5E4B1CD3BA0AC666FB7BE7DF43F6FE827CC1BF31C5B1D21FD2 + 38B9FE2E6F349677452C446274C30C807A327A4B1EE519354F420E10A0832451 + 61F71992E7012D5B876A6D6B43FD2A43E1C0144C7AA479121F6FF7D1D5327AA1 + 7CA529882749AD7B7C466207E212D13787AFF64F0C93A472D0A33B2D53DDCF2D + 2D0F7D77FE0F7D93D0DE2C830A2F7389FFAB42C7BF524D51A5E5DBDCCB32BB95 + 666B5F1502279B400A9A0A7BD40145E1A6B472691543BD048E6A10799B90C0BB + DD3ED9AB97E7F95792F3A324BBDBFE5E3F3F303C76E8279D009715E5229E6B80 + 0CBFE7157151B54BD98832AE90A43D95B856A23673509600F44226AC7D49D823 + A1B34773AC85D017F6F05EE65A3B55471A57F839487D40178F2D8E5B0AFDA33A + 52C0BBA69B62BCD1E834F8B9721A06DFDE291DAABE9F6556362842D988FF345E + 0B1EDDB2BD5D34283594B819663A8CAF62553C0D8173C9812E833E951129BB40 + 43ADBBB404AB869FF292D20E1DFE79687C0450AD566198172EB3D0373BF4D52F + 771C4C5D9B635E97DAC371D2E6D019A4DCF345BEE3B3425B9D32273381E78B12 + 87D211E8190339C2A40291082C0C63615A1C26AA0264E14C3C2012788A6B4AF4 + EF768E3F5DD7FBF1FCBD8BBFDC3971E897DF754D1A679B37D7E0FC643C0A081B + 051171C7B51BE937703B3508D98AD835DAEA877EA3315BF036D48D65BDD5F1ED + A56BEB0B532B70CA514BDB685BDB78475A57A987340228666076D058E45E382A + 406ADB3DAB993B32C5CE01F98DDB3BD5E36DAF0A1DB27A31979DA606E344C961 + A690419DD72972AC8BB6CD0B9C57E06107E414624EEF7C8213BA302E85F21646 + AD6812B3449C258746FE74E9CF85D56562A8A31655CBD5868F5E9EFDE1CF477E + 96E6D581CF4A6CF4842EB0EDE9DD11FF22D7EE4DB193777BBC77533C74467129 + 0B90A956B0B30839811A4345100AC23252881CC3399F98810A85E1B979C5BF5F + 7B74EE873FCF9F7878EED2B393BFFE75EEE71B671FE9E60F607A1A3A35E8BAEC + 051B99C4A30290493FA6BA3E8B33C603203650F1C3D1BF0BA3A30B53932BAB9B + 6B1811C59E603B5BE38B93305479B7E4ADC8B5745C8269DAFBED79EE8F333A33 + F86F5A31EF5015EA2108A187C551CB90F038365C1C599D2C1DA8699DECC41C5D + 2C00A68A4AF3624292BDA10CC7C319BA994491920CF59D003BFB1FCFDD5C9543 + 7EC4073C1C617B5BB6B0F6F0E22F278EFDF93ACEC1B8C6EF69890D2487BF2D77 + 3612B8BFCCB5B1107B0774BCB3AB0C3512B819E4D8F7AFF463D775346B316907 + 87A5DD7E8803D4DCD4F2E2E1CBB387CF1FFFF6D4C9D3377F7B656C92ECF5C2C3 + F5F4F91B27EFEA06D6C7608F40EC0A079D02F74A6398F6629CC7B538B84AEE20 + 3E63DA01EC7190DAC5FD622B4990558DDFAB426B87AAA090CE0CFB8AD0D26E38 + A10DF54B6677D9F3727BA85621E533079EEBBA77961695668C39E6E58BEED228 + F342CF393974ABA6C6142294FE871620968D81BD8E8A8744103ED204DA1CADCD + 735C3E039C39E8BDBD72F5E19A02FB3FA9C0E686C6DAE3F377CF9D3F7BE1C9DB + 341763085156FB5A56053CCEB6785564AB57EE645AE9F9B6C4C944E4E3D2086D + DF6DE0241E948474F304E51016ABC234A6C7A79C6CECCE9FFCE9F057274E7C77 + F6B18EA169948F4979807757B24D51D0B9B38FCEFEF6067243042335183E9041 + 0E2B9AEF4C91C01B6EB497D1E5BE9A665FCC217762574745C158BD6B7562566F + 45FD4C5B567F916F63B25EBEDB2B81136C56B44EB7424E5F507DEAEB529BAE39 + F47A216CAEFD884FCA4680DAA62AB6231712B33BE73AD05FA2C92B24C24382A9 + D828164BA9B07A88BA091F2513300CC132E893B838A35F92D0B34636C2CFD057 + FDE69DA76047C033409AC12D637D23B7CE9DBD74F32D1CC104E9A1BEED49BE6D + C910BF3084CA5DB1B381D4ED79B1D52BA1BD85D8EB55A9B3556508D42CE3860F + 2D2127ECD5D5D9AB73FFE1F17F1C39FACDB9EB379E86C5C62DAC2EB6CDF6BECA + 75B85762F63AD3FED7EB06974EBDD417B838540577CE77A9D7D69818A4D366F6 + 054324176D07B1178F64816996654BEE9298D8F66C6C46413A35406651555FF3 + EB5C7BC312B7EEF9FE39F9B26365984189E5D40A9CBA0191270DCE28173118EE + E9332ABB98F80248426950497F159CEE9BD59A47043969AEBFDB1288B4AE46DE + C2044D9AFCF37145027785F491C4B227C8A5712CE20E69D41EF9C9DEC0F4FE13 + 0374B789AF0453AAA990DC3A7FFEA1A1B9B710BA1D053854077B74249857FA99 + 4B7C5DDA228D241E2FCAECEC9A42A1379A71B9E7B37C6BE190045B60206D7D50 + C954EFE2127E39FFC7B16FCE9E387C29342A6E7E7989AE51A952663615E916D9 + E915BBDC78637EE1D8ED17998EBA6257A7026F689E49C813CF3BC762086CC68F + C13B262419949840DA176D9AEB315E85BE0D52CF58BF45A157485B22EC934163 + 547A9030F05F687D966F753880B16B66C05414E0571D0AB28BC4B4F838636279 + AF2E862B9DC9FEDF87A1A50923A1EBBBB62C640BB237AD7184A972233BD5A4EF + 1C398883B317A32D4028C1D20D344D00966C0413D422AF6DA9B65EFCF9E895A1 + 0D1E8641E29EF0D0E2ACFCABC7CFDD7EFAB67BA1DFB7260992B40CAB3DE16435 + BBDA10FBEA108786505D0864B72525F7943A37C63C2AB2F028F7536CACC28D6B + 6BEB4E565687FFF1CD91EF2E3F7D695426AE84C7C0F7D88604278C3E47C568B5 + 61AEDB4D5D8BE3C76EDF0BB23190BADB4A033A96FA49A50FF62A24A632FA30B4 + 2A9EC18722E9D33823C449D43CE9C60FB7E77756BC2AB6B16E0CF2AE49086EC9 + C8EA2E9A5A9B80BDD9A0C64CE74AEF0DD57A7C5DD61B7140567B1E86D2776B99 + 987CA26F2860F7C719757B8797A76CA5212EC2B045D90233F1C82A08F2A80F8E + 55D58836CEB1483C9469D817AE85AE4E98A90056389818249112D04875A452A6 + FAEBCA8DB7960E184602A941ACFFA4E8B8E37F3FA96B680D6777FB96274235FE + A312AB97A5762612EFD785F66F4B9C9FE75939D68524F717D95785D934435B17 + 9709F9ECE2CCBC81CEF3235F9FFFE6AB5F0C8C2D17979760286251620F43D814 + 462F400167CF296B46DB20C7EBC8D17BB77D8C5E16599A36F87B352540174358 + 0E4C8914AB63374C888869E36C5FAB6AEF32BAE3486214982DBFB139343521E9 + ABED59E8170CD405401FA1426797AA600769D813D86DCFB5858A75EFFA046389 + 7FD73CF49A25676412BD8CE9189CBD534AFA1FF595DB033686F701C0AA77BD02 + C3420F38D90B290B9D69F4BA09C9A14D86B609390F929402695ED42D63C29611 + 08CCBF6FA41F76D3B1861E1C48885610579DB64D5D5F96C38E8B6B7820DC087D + A64142C2889E0ECEC70E5F72F0C42F1B46DA3DAB63A155E3AB7207CBFA40DD12 + 27DB9A2053B137F05C68735244C73BE78608BBBAD0B8F2BC07376F1E3EF2D599 + B377FDA263D71432642F52C4409A0CA269024E18D8D960AFC04FD95939F0882B + 7616E6B5FE0ECDC1F6CD61FA854E514D691D5398CB86CD853132A7B1CE9860FC + 841ADB95F6BBD9D6680360AE3B8858C420396A605DBED833D793DC5E6454ECF5 + B0C0C5491406473ADBD487398843A656C7116704C25CDE62FA05E84E5317C326 + A1411B0E8F4657F3D4C0CB5C87779D3934C28421C7DDD6346AB56C626E04CE72 + 476906D2996490B15571798D32358C36BD303DBF323F35370580838AE25D4B15 + 61072D22AEFC78393C331E710671282819556D1A3F7F7EFAA73FC233320805EC + 4846DA20CFDEA63EC4AA2EC844ECE5DC141ED79F953358622B0D746E8DB59744 + 9AC57AFE72F3E5F123BF9DBD7033A754131A075CD1BE374434930813BA7E5872 + 01C33656D59F3EFCED534F7B38E0DDB53AD8ACDA5F57EA0EA531CEE501EDD39D + 4A3596F05241C77DF1C1F5718706C2609AFD480CADEF40EF0805B87E7017216E + D2035CA1825C47384822A9327D7C752AB7ABC0B626B0704080A607563CD3B8FC + 9E254F61087F11673CDAD955B660CDA383393A3FA557EC06750C58088B1938A4 + 5C7AE743F7D8B07FED3BD2FC372AB63573687E982E8BA28D8A7B8636F61E4006 + 991AEBD0537B637D66691A7996702D5C3F363C7EFAFB1FC273301753A504E1A8 + 50AD29756EDFFCE5E65FA9D212A01868EAB5AEDC88692FC48DE6323743819BB9 + C43BBA2F3BBC26DD5A0239A6D196197E50D17BF6C73FCF5C7E995B2546798847 + 30D12C794DC8146539E93D8B54465A84F5B7F59EFBF6D0BD576635930D1645D0 + 7AC9DF58E8EED018625EE50F9D05933A7225BD52A86DE58A0DBA40FAA288E47E + A3E13394FB240764676772753ABDB938BB5FDC31DBDDFABEA57FB267413E0F64 + 0489626BEB8B20BB56575551CDE9E602AF96F1D65D990C6061924B03550A5EF0 + 381167F0419BD9516B2914B0651FDB5DAE5BE030B1348C3C0E7D2237D52543B5 + AF32ED5F143AD9568679D7C619967A7B88235655A836346539647886333A385D + 58CF485FDB70FBBA7A6D64E63DB4B6022C827D06DF0FF60C9E3E74388D6C3F42 + 280266BC3036FBC78F7FDCBAA72369A946D224F6E0E8D2947351A481C0D340EC + 6C21F5766A887468087769894AE92CBDFD973EA4AEFE7CEDAD69BA77784B32B0 + 0848366C8E82FB6960A1C19E38317169091A6A60EC73373D32FDCB8FA7CFFEFA + 6C606EB0BC576A551A6854EA6E5D1900C9B2FA62578B5A3FE30AF798D674E970 + DD9A7A8DC28A460FB421C69689D7E04E1E39F0134E4292CD86D6E79857FA1B96 + BB1815B95A16FBD9D6057AD78542C260587522407570610A8E92B114788CAF4C + E0BE3FD8635865A0E133AAD5F6540CE416EC2BA30995604C059E9AD521799663 + 554076E100F5B99D6586159E2EE2A086D94ED81A9F5F994E069720CDB667A283 + 8811E2D37C9CBDCA16033F2EAE2DE6080BA147273438595A5E84DC8D75253AD1 + 6383A3A7BF3F54502344C4A368D91985FCD4D37FDC7D62D039D4099F712958E6 + B233BBBE98D29CF7B6C0CD147AA356FA188BBC1C04C17FBEB1BD70EACEA98B4F + 8D533C027BD32C8ABD2A7A2424A8865511746B0C150BC957449B90F8DCB0C8F9 + 89F99B17AE1C3B76BF7DB0071E3DB0380239D88D23CDE91DA5DE0DC9D6B5C12F + 8B2DDF563A9896BBC3298FC4BB414782478E8C0BE94A891846CD05E5A5E4ECA2 + 8DC1B9E1A8FA74CF96E4908E44CB0A6FEB12A829290B94A6E575627BF78486D2 + D742C7A42ED8EA83FC70086661D40D689931B1865676439DFC9E2E1AF892C02A + DA165BDB7DD303A615018EA210A89B9E5D5A342DF682072F2AE6319C8F8779AA + 1A66DA2192241CC5C3B328CE48462E9FCF480E0B5A524042905E0FA9EB0B0BF3 + A4DC887463AF6B39F6D5B785B542BC9DD85B8D9575574EFD71E39EEEE8DC28AA + 22A8FB83B47C2C28DB5C53AE8557651B8A7C4CA1176081FB2D53EBD367AE9FBF + F8CC30C6CBA72B39A22F27AEA7C0B72EA666AA011C579811A6CD1155866E25C9 + 3B4022C004D36DD9E2EAABBB8F8E1CBAD3D0817D4FD094224E0B18F8732B73E2 + D17AA84B831452E89D5BD12F26D11F5A59A77971798B2B276105D4EC546E4061 + 114A4830EBCB3BAB227B33DD6B03FBE6FAE09B25C53A9C5A3BB63CE122893190 + 7840F8038D08059E288CED3E774F30A244F0119FED3101219E8F2641EC1C8889 + 8737E6BD10BAD70C54436BB990E61C518F98249A031581685317F68AC0392DE8 + ADA0B63B556B2468F2914AC3C80456AB68FC53CA94A089614B129E5B5FDB78E4 + 6F472A1A2530087013DCFE2E2AEAE8DF4E3FD23186ED7762F1EE603E25D64763 + 307A045AD417075B5485DEB2353E75FE21341DFEC3C4D8B93AD64212E02D8D4F + 1B2C77680E81DAE49CCE223CA1008FB0C1C9698E20A4F60849D6D958971BBC7A + F0EF7FBF5456274009416C2D9C28186FA44968F7FC50F9507DFB741F960480DF + 08B7EEB1D99E84DCB503343F8228071135B13EED571917254D95A9D66168D5D2 + 727A67B15989F7BC6C16FBEEE171F71B92E15AA7BAC8D8F67740CA48F2D89B95 + A692729F83C3D3C822BCD9A7DF1561172C44C33C38AC6EDAAA1B6FD31578D9E4 + 7BCEAD4DB7CF0D55F4D7C11E2375CEC0A4C86FADE85AEC07EF9D8A086AF0D0D2 + 4226783564421D166A866179CFD68A7C8DF6BCAD28179FFAE627380B1C9601D9 + 5370457480DFA17F3BE9E0EB435A20A0FE019B0ACC01E2666175E2E0E284674A + E2F1D377CF1EBD7DEE9EAE437584A1D8C3AE3ED4943429746E0937AAF4D42B74 + 4D6ECA5CD95822A9D0A45E048D36929349A3325BDB2E46CFBFF9C7E5F8BC7432 + 316CEA86BE26B98068266C6F836F09CD51C393C7674C3652A227BF428F194594 + 345D47E46D98EF069B99E45E885ECB8B3A6BA2EB32EA07B1C1C5D2EA5260ED3B + E8A15C370095FCD8E98A628E4A2CAE6CA438A368DB67FF8C2C0C8F6006B987D2 + 1B6265EB4B9EB550A6675FDD2355A8D73DCA13C2AA1230260678C1E20EE8E4A7 + 1C9D1AAD1E6D9A80E30FE17E08259017575992CF1F7D0959F5633313EBAA7520 + 795B5BB793DFFF0E87B0A860A30B16A7529BBD7E79F2E8AFE1A9D88C0AF3E040 + F5919608587CB7825ED7F8D8CCEB7B8F7F3CF2CBB56B86C6EF42CDEA23A0A616 + 5ACEBD12D83DCA32B2A9F4B7A90AB66A8E3114FB42BF7F285222BB2D24EB14BB + 1E936EB424E696131A75E4FF3E6FE9E58652082B42819311BAD8A8006B6B08FD + 69F642092C77538FB866085D2F932DF05EB1A172CD8BD5117B3856070BBB44E4 + 885D347ED42BEB19DD65B4DF4ED5409B89D81752F65756E7E04874DCFCA3A77D + 1249C0E16782C5DDD75EAF097A2997C7774906412D9D68D12DF58E6C4A057D32 + BC30593A08C853CCAF2F74CCF4168F48FDEB130D4BDD5FE7D864B5E5E3E0A40B + 17C3197B3643245D2D1E44AE581B991A81891A99D81C3E74B3A4B50CA1BAB5B9 + 32B3FCE0CAF533BFFC256C04A3111D7CCC33451E019461ADF1F8D8D4BDEBF74E + 7F7FE2F299F3B7EE9BDDB5B5B8616771CBC1E48EBFF193641B53D8F96D8C7082 + 26742277C8D6D2CBB5CF6ECBC3A39581B5E100712CBC84326BEC1D812C9E53F2 + DDD7475EDABBA247B1B40435C70C3A5C9AE36A0D2EB6089448B481D4EC928017 + 1E2600DF09079B4C4B7DA107AF85C81B7C2FC506D89EEB201557E42B332B5390 + 3C016D1BDF4A1CABDEE331D9B03E06701EF4E87CE84391CF78ACB02BDF343E07 + 43E48A4A662B0E83F0F9986C0A4473F360834389A743A9B75DB9AFBD38D0AF35 + 39F3BD00328B57D617C181408285DE8194C7395A8DB7542A016081F07D4468D4 + D16FAF083BE0D016DC3418EA1EFEF9D8F9DFFE7C3130F91EAFC11D68E07C941E + B0830D8D3EDE3C7EFEC33F8EFC7AEED79FCE9D3D7EFCD4A1E3178EFE70F5F0E1 + 6B270FDFBC70E1F51D438787DEAEBAC96E9E35F1A1DD69413DE90E0D11512D69 + C3B3FD708612E136481159C7831E77769AA54D678E9FBAFFD6164F6997C9E8FE + 99B69CF80CCE08A9A2640245458EE7267F777AE6C63C6AE35D5B632C85DEF615 + 1E92BE9A89F549E8DE04BF96F7D6EA96B9C22E9A4CB58686C0AE59481143C52C + 632FAEE3BBCF595ADA2C8977AA37E3AAD3EEA71BA635E503F89A46FA2A875B87 + 96C767E50B734BB34A504B78FE203E6B7E796E6965565B85B261E954E8DF5D7B + 6E3B3634F2DC89EB132BE338DBEDED9686B6A37F3B1198102D871A40881262AF + 628C9D427637783E73D30B978E9F3CFA8FEF7FF8E6DC8513B76EDD7C666461EF + 1818F49789CD4327BB7B56D6E76EBD3A7EF9EE894B4F7EBAF5F6B5ABBB4D4198 + 5575B4695588635D44E1B0704DBD8200C6BEB268FE0CF50C5DB970E1C69FFA33 + 2B73E86AEF6E227227CCA88D4BF2EC4B7A25AA3B12CF83733B2463355D539DEA + 15684FB1211DAA75ADF0CFEE2FB6AC8BB26F8C2FEE97C082169657CCF2BC5E49 + 1D210F1A53D94814896B1F3256E3CEE7233EE38A2F06502EF240880F2D8E79B4 + 24EB9778B68DB6A0DD48098A04D0D04AC083633621CC11284AB02F0A1A5E1A66 + 84C9F4277D3C231F62BCD128F3669077C0955F9ECCCA66A9659012977CFCEB9F + 7A2686E093121AC092F363B0D91F89C2806AF076F578FAE8795878746B6BC7EA + CA2A980E8B1B4BB5A3CD093D79816D692E95B16E6571A6A181B75E5A5DF8E9C9 + A193B77FF8E3E5431F33E79A58BD52675F69C8C8D208D4E1A355F261676E6AEE + EEB55F2F9CBADB34D0CEA20F6C92F40D0F3E7CB2A6694EC4D796AB5551A25243 + 81AFA9D427A12BA765A25B3AD1EC511DD930DE3A30D19754FF6E627912160891 + E2E70576B0BBB4BC810404278C72CB9F004ACCD6E73D0B3EF27B2771B9927B35 + EEE12A54D91D35CF04766EE53E0AB91CFACD9173FDC86E13BA5EE05A28447D4D + BA42B727226BA8C5060C51BA6094C2C3196D188606D5E6968B93D76FBFE9AE6E + AC62A06E7BC7DDDEEDF6D527B8DF8F45D624130F4D01CC1C404A2711293424A9 + 718E1BB0B8FB0A9CB82E5F81730FBB968632DE8B1DE1E08AFA508B62BF279E36 + 576E189C3AF5E8A79B6F1F06585A55067B37C4978F574FAC4EC2001B32E5AB7B + D74F7D7559D251471EB29740C6288C2724F87024920D2C291036F38BB3F13539 + 910D79FA22B717123B0B810F04D9ED9AC242DB52C4FD52259C6DBDBD09C76442 + A5EB0BA1DDBB66D802852C5AC83EC2A6C10C504C25F128863E77AFE7A6B648E4 + EA3D2C76556F4C2E4E794922611FA86F6918CD30F4D891AF61A5ABCAF5F8EAEC + D705B696A5EEEF3A8596E2E0E6E936D4CDA41A19AD2066BDEE6A54644FA2B201 + EC768616D79F9841011DFEA8DED17FFEE09515EECB90702E161462B09534D5A4 + 3488AB224DA8306440A288F8199C1B12EE800117D7E72443D54195B166754196 + CD61F67551AFA2EDAF3F363B75E6E1EF06A6C6B99ECECD11F6E280B896CCD185 + 31BBE72FBEFEFF9ECA1463AC0708840B0A6617A082D83D6A82BE27682255D8E0 + 8980E5824B25B3836C3DB54AD42BF5AE8E0EEDCE2E1E95943496E63616E7B495 + A24656A9DBA77B2101C0BAD4771682AE18C0C6765C4C89722D00DE4CA8E8D2C4 + 1BB519906B2F90F9EDA0DDF561074A408DC51E7E75D1CBF2A58D95653C436907 + 1B88C4B715BC2A76D1AFF2AE1EA991C9970DF29C43ABA270B70CEA6641ED83BB + B7DB7288A904C42846A3500738EB1BDDD63507BA80992CCDACFC7AF67BF3600F + 780F784261B9DB0915ED7472843BCB8E624BD5B82F1A3F06AD16DCBADA54768D + 0FA634E4BB55459841DCA4D4FB7598C385BB6F8EDC79F92ACEDEA93EDA50E263 + 5DE2F7F499FE77DF5F0C4AC32A667204FDDE8BE18C0244A372E8EFF06CD25A90 + 1E84061E19FED5F8C448A2CBCAA586A90E3866AB7B6E7072750A0A2461DE8BB2 + 95B4EE52B7BAC8F679EC5C8499AAA4425E1B555CE5024F6318D9AD65FA18694C + 42B281909F40124239875A15D3997D3FCB24BE2B63730D0ECDDDE99F1F0EAB4E + 7851600B27327A4813BDA591010DEF2C053EC5DDE534331C951FFAE77B36B486 + 60F1F85B3CB11470E6A867F4C7735330C06166E37DE33FFCFDBBA0B428788F1E + 0D4103CD808369D26D40767C1A4FF46B5C424A65F485DDAC77461627CAFB6B8A + C76B026A53DDF2A26F3DB1F8E1F4A3677EB666E220D8EAFCDDC0E0C4F96B26A1 + 0170B2CA9A7289A7BD98BCE1E192A28D6CD67F5852AEB6CFB6AD2B5768776DB2 + 99827E3538AFEDB3FDCEE2A418492A89126D25B7E48476E494BFAF825E0D2410 + 4C0410A7E5B636FFD06F3EC219C327939E0C55EC0D26A191F60B80B6B1E5591B + 51C0F3428BF6D95E90E0157DB5501F5DFC1E1A536C540CD4E8099C1C9BE2B3BA + C5A066465626131BB3476423C4F5A661883D17105705CE3F09E2193F7CFCC4DC + 8EC6449A847547FED78F7955451467240488798B144F543C52386A8B8EBD6FD0 + F92599E0502642E21D08979D9DBAA1A6BAB1A6D9F9796F3BA7E33FDCBC66A5E7 + D29C70D7CCFAE7CB7FFEE9E46A5111201EC0B347D83CB98FA05F6A7BB1338A45 + 4FD8BD1378C635E7C03ED2C6D22AD444A1B486C8CD9A1C8832A7B3BC71B215E6 + D03F376051E8026E2E7670C14A196226C30FA4A7070F373C3E6333F928B78041 + 812B1034620063B3EA31D938701A48E4D281EA1779B6E6029F99E5F15595C25B + 9824E812CC2DCF07D566BA0B8396E5B31B6B6BF275796A77C9C36CD3404934E8 + 583051882CD11CE841BC6EF0B608CE36B7F56EDF7D8E0A0CCD96CA9CE253DFFC + D9D0D78021794C4F25C7A7902ED10C645C49F51161D2D818F50BA93E0414C33F + B0A5B1D5268611714312E0A4D8F0F3F23DF2FDC5670E2E56BE5ED7CFDFF8E599 + A193386C7061988B18EEE04C0EC3E81456F01078231AAE37ABF02E1E93785446 + 17F65580D38C02938693A8BF8D111CF5D4DA5C58FD3BBB72EF8EA94EA47ED4D3 + 3811A2D1358E2C5725319CD1E7F27176D02CD975707F755FB3CE3BFBCEF94E90 + 75D0C8DA5A10FABCDC2ABB271F9E36B3B298D89D0306924EA643DB5C07ED9658 + D22F3129F3864E9D05DD1573F239389A19D5150010E2437443080C2D780FE054 + 6DBEB97547DF0D2311F0A0783F9793DF3EEC7A4F3677A8C5B12B1EA912D997CF + 34DFD2ED682C0DD7EC0913F385408F247BA1FE20E12182D20FBE9636C74F5CB8 + F75AFFAFCBBF7FFBFDD9DC7AACADE68ECF05168312D21BA9B78300D5C2DA7261 + 6F65627D2ECC2CBBABE44581151CDA35B2368D4DC0C04A04F31626A382B7B290 + CA0CCFB6C4E251683A04C16EE88688B405B3A11D2028FBEE8B330DDBECA26DFF + DC6FDE9DB886ADED81B9B15061C6C81AEC8C204B570CD643DB352B911F6413C3 + A0E3CB13D95DE54DEF1B913164F2A1F931D34A9F8896D4F50D3988B69CB6F237 + 05CE1E95118DDD75784232501DA65D223182B4552CAE3EF9E537E7083F147D5B + 3BCEE68FAEFCF666717D9906DEA84864A8A2B6064FE833A9CB664EED660A057A + 3BEF16EA8AACADAEE93F7DFDDBE96BB77EF9F5F4F14B71248F818D4F4D1EF26C + 6429D22905FBD4A3C4566D4EADCE45B6645A97F9D54C34C29E38F09260A8C9A3 + 213EB235D55512D23DDE85674D2DAD20B72B941DF303D07130B4211EDA2B125F + 858F219E08610B6108A3840EDF7F06676C9DE414DF0DC87F22111A0566EFA837 + 335A8B9FE458C059B91324F304299B84A3FAE7479C4AC31224C9D0C21A300468 + 09AFCF7D5C60F738C5CC3ADF7F70F93D09A893262F84C256A717EF5DB8E214EE + 0313C2AAEA4757F5CC5C30224CF39FC88BE1802728D8927874CA107610CE1833 + F575F65D39F3CBD50B3F5E38F39BAEA903588114C71A1391A08BB22A08185C0E + 91BCB36B730E65C1AFC52E66859E532BF344026F83833CAF5C80CB2A5B6B221B + 92E71453A0C5E163F18024A03E3EB43AB6170ECCC2E1D0A8E27115551CDC2FD9 + D2E86418043E8F33AAED490014ED21C868C74204C018F44D50A932FA2A6C9A03 + 21DF7D666D46B5B08CA1BC0D75B8381BCE3385DECEB85EB850B5EE581004EDC5 + 9E1738DECFB4322FF3AD9B6C879330306683A36EAE4C2D3CBC78D33DCA1F1EB4 + BEB8FEC7C5F39E2161489E9AC4ACBDBD0FC670DA7CC64512C5138F540FBA05C4 + 406971F9F5CBE72FFDF8FBA5DF5E8FCF8D33F148695F3313349CC113D564954D + 2FCD5A17043C177BEB16398886ABD637A0832CE86C0C6002D9B64CF4C4B4A4AF + AAE6E07D4D7FA351B58F59A567E58064D76547E5CAB51ED81329B4199D31F140 + D14601C23F83952D958B641C912A758C332153934C2B6C1328DFD88C68C87E53 + E6E45B1BB90C1B31F0934C1628C882138949F710CC3A127637F8D5BD8384CBA7 + 059EF7DE193E2A74B010860D2E0EC28FA0D9C055870DFEABDF5FF44B088307F5 + 37779FF8EE74C4BB64788FF6FD6E2125A3322622D8DAB8C8F8349E18CA2950E8 + E0D86877E783F1EBE7A78FFC74E197E7338BD36C64FA50922980263CFC37B030 + 56D6256D19EF02F7A5BCABC3A8C2EF6981B95EBE437043C2F0EA28C4C3E05FFB + 64A76DA97FDD401320B87D6AD0B0C2FBB9D03EB93F1B500AA58DB4169EA6AF71 + 098BA7A779829DCE84BE3EB21B793A80BB42221048A71092A7879907E80F6364 + 73667531B225EB59A175445D121E51BF257796A6A4F716C226189C1C99DF5456 + D42A108E36FC15012729793DC9B07A5DEAFC20CDC2BE3CA873BE9BEEED0D0D8C + 5EFADBF9F8BC5400962827E7876F7F6A1DEA27224413F7D2D03BA767C041B8D1 + FE9E2D95FB864BC8A4A1F7879CE4D41BBFDC0A8E8F431FFFE3FD7A8C7590D26F + 515FC38B44E707A9364F521D5D4BA3AD0AFC1E6598FB5445762FF6150C8A3D2B + E3006DC06D909400492590773BBDB2E05E13F9AAD2D94B1CB200470843A414DB + 80D24A46BE65CFF434E5393A07BA702EC2F670C64895690BB6427A337E444CE3 + 5E21001AA50456A1A08108C05D585FF61045E8163A970DD502FFD9E7863ECD34 + 8F6BC909AC882C6E2B85BD8615E58A4F49181C5D0627CB998A7CFF4A327E9863 + 6196EF95DF5B3EA39C7BDFFBFEC277E77244987495111D73E2E8F5C985696A2E + 237D10AF95BE180730DC30B5C4BEF91291C8842702057723D1CC5C862E02A42D + 38F192491E22D691E09231C2B4AE88AC2BFCEB9DFDA302AB07C5F68FD3ED6EA5 + 1BE915B956F5D490EDD32D9FF2886041143AB0906FAF504D2C4D3954049BD47A + FBD447F74CF6E0EE0CAD70D0C4163420E7CD967E643863E8A05753E461BC9109 + 56AE90613863F867BC4CF9EF23990B9D096787ACCAFCDF16BB4357F78EE1D6FC + 3E41C5447DED4403080458F2FAA62AB03EC90CAA34853E3675D01BDDFB59AECD + E32C9B5BC9BA5ED531B5D535C70F9FAAEAAE8131038D1DCFFD786F7C768CC822 + D29C100388444671288E4D9506B1B4F1F45921B9B75862106AE81A58019398B1 + 3002B6C6610E0BEB8B82C1AAD6D9E1D5D595CAF72D8FD37CA1C4F46DB9C78344 + DF1BA96F93DAB3401728D5180A10F45456F488B0C05CA99C5B9E0DAC4BD3C13D + 33EFC18541B695C8F4D3BE1366FA88A7A1504DECA6CB21CEA875A4FDE2CA74EE + 35DCA752E43114764F4FDA0AC21FE59B2577A4635F635C37340256AA54EB09CD + 7936A2F0CAB1FAA2BE1A3341987F7D44C9708D5161F4F3026B8372978094F063 + 477ECDA9C393FEACEE3DBF7DF705146D925E32E4BC3ED2870A5FC43BE5D1109D + 1B572AB0953382E5AD8E47A334C3006902952BA6DEB2EC01488B8CA9CF09AD4B + 7713C7A6B6E44DAF4EDA15153C4AB2789502D41675A7D82CA42E0ADB8BAF2B92 + EBF33C4431CBAA35687DBAB83697D29B6F2C0C769246420AE1269E22C2A7AA7D + 498AC196279CE123332911673CA6D188C15D79CA30C7652C06022667118E18D0 + D81A5C9A8533BF9F1659F808A34626074044404BE077BDD5AFB26C32BA73413E + 4017F170516EFF44075C9C39D8A4936F6F56EF6D99E87CF6C45DBB8C88F4FAA2 + DF2F3F307173C24602207E69E90C7AC1A4E8965396C89DD8BE344727CCA88D27 + 64B81F35BA053BE541758F5AB6B95E35DA52D82196F6374A269AA01F5AF3627B + D3441324DF817D685B10F230CDF8AF44BDBFE22DFCEA92537B4A57D7E6948AD5 + 889A94A89AC4B5F5D591C1E1C4D642DBBA10374170FFD200894BA1C4D016DD6C + 093CF1B6AFB4E36EA71D18D7E722893D8FC7948CC9E07B880642AB4BC04AFFD2 + A87375C423687D5E13553FDE2057AFF42C8F784A63F3FA4A8192210568510979 + 502B90E49BD45E1E529BE8D81CF62CC0FEF4A19B4E15619609BE27CFDC7F15EC + 98D9553AB3067113C828A52D1330C11F0BE976DD264A5B4CFA732994AD99C767 + 5C4DCE95425864866942DB70AC28A88CA2CEAA27A9AE8F336C75B31CE1D8C457 + 453621CDA9590315F6E2A0C8F6548FFA787D49D41B61A0639E8F5A256F18EFEE + 5DEE432900DEF6DA6A4E7B917555B879BD5F7C57D6081CD5A3840D0D7A32FC3E + 59D5FBCA36A69EF7FD95AA340DCE98D2E36A292E21ECABF6989021A0C4962A70 + 2A0BA8EBB18599C0DA94A7F9B67A6297DC6E2C2F87EACAA27E49726BBE7765C8 + 0004F4B677002581D2D8F6B91E8F8638DD10CFB3DFDD701006F92544FCF0CD55 + B3A2001DE8385CEE9DD996039DE6E9BE28F6F325D610A3B84FECE432D5CBC525 + C5374FF9E180E0B6D0DEAFD09A6E5319589AFD2CDBF97189E38B72273351803E + 94AE241958D687425997618573EA5051CB506741A708CEF618981F2EEE114282 + 29D0D5EAEA62C550173476D3AF7011434E0ED9542239BBD03C0545109B125742 + B0E9D1B93121A76D8670AFE4EF53736FE3B233433BE32D46AA943430A441823A + 54932DAFAE780B22758AEDA15234BBAF6455BE0272B27EB035B3B348A658C6F3 + E4076A041DA2B9F539FFEAE437019EDF5D7E945E93E76EEC78EA879BAFF36C6D + EBC3735B8A5C4AFD7DAA22E4505E219309FA2A07E707144A19E924A684D025C9 + 08C6C5D209105F0EB6AA513791A32690F569C92804FB48FF20F4165157814983 + CD40B0FC04BC43CCF5231B59A09940C4475415DD7E67F4A6C2FDA5C0C3A326A4 + AC4F22EEADF6694B726F8C496CCB71964464C3D6E5D6D6D0F298B4B7AA6DAC15 + F63B661627BCC511FAD25873B14F415B31260EEF669D112BEAA398005768D199 + 1FF462FCC36C66CAAFFB9FCBF409A38BD229A50BAEB4E1BEA7D72CA996626BD3 + 6D6A434D6BFC9C44FEE2F752BC113631D7D74B86AA2D2B7CA79727218BDBA732 + FE85AFFD77D79EF44F0E1B5E7F70E98EDE933C8BC8C614B8B87EBE07FAF6354C + B72DAEAF7A55A5D89405A5D465AF6D82110AF133C899832306642474BEF78F7A + 9168BF008193701A2D044795B2BD39239B6E99699B581D23EA17ED52426924B8 + 8E98C42E8B2955E5C6B91EA6C57E6FCABCC2E1E8961DB54CA130C9774BECC900 + 85175E99FC67C69B9115CDC1C530C9F1B5697F491C6452DB56F8578DD761C89B + 14211FF4E229B64F5CC64C3C86332A690ECC07D997851983B3E1185F725148F1 + 078C055644D9488BB52444B7D2514FEC98D353A15887F336D6929B45D6C55ECB + B239B82CAE23F74F07D30BB7DF347775FF71ECDC1F7696C642EF86BE5A308386 + 1727740B9CDFB56741BF9677BDB51E0D31392D85902308DB289333932135F9AD + A3A498918475E894D09702F682D24A6085A5D1FAD196A9C549F4DB37B75B26BA + 2C04BEC642DF8886D4F54D199E280CBB5C0AEC858C2A0D4FDA427307CEFB1B59 + 9EA818AA0D6949CFEEC05D0B4078727BA195304834D211D1960F9263498E0983 + A05E9BDEF7C774643B3646BE1B289C5E1EC3B42DECBCB1B7F3CA55AE5C6C71C5 + D527CC1326CF99A908DFEC9DF14371C853E04C8C72EFA15772353CBB91711BCD + B0470342B5D13EDEE3218C3591043C17383857FB4DAF4D815A9E981D51AC62DF + E19496825F1F1B3E7C6591999A7BFCDF4FDDF035491F2CDF8270F4E64EF7DC28 + 242FE7F794806DE6240CF71007283696E1D84ED09CA59D95CFCBBCF387C841E0 + A48C133D7D52F7823CF3E18374AC593FDFF959A635A45DF4CC7783C19AD65965 + 5AEDEF2D8E96BC6FC224D7151906E3F1980BD8C6830D653C6505853B164029D6 + 54AB3135E9A2013190D818F4BC50AE87D4645F4FB2BC9FEA5639D4007777CCF4 + 178C4B4D8B3C5EA6DA16BE17AC2A5741B462911ED915A495CA3CE869C38DCB64 + 4C12F2388F0EC285F0DE595ADC07ECCBB04C2AF29ECD1DF4A3F748DDA824804E + 615F34AB496426F27F5969EF2E0D6C9FEDC38211D247B96F61F8AD9EC5B31746 + 1E4E3EC7FEF987E13B8FB1E5710C46EFA8D37A2BACAA438656C68583F56FC51E + D0F511A60FE0854398FDAB530D05AE45EF85B80185C755606C0DD30FF00F88A7 + 4D2F6138B48F48EC2B7E2BF1C9182854CB377CA4B116557E653D1593CBD80719 + 126D48A36F7CC1B30051C83A247F4BBEB6B4245B49AC2FAA18AF0A10C73995F8 + 821495CB56A345F1707C5FFFE24876A7E04D9AA3B52420AA3DB563BA130F54C1 + 581E490641BCE3D97D3C7DCFE4D6678521536F6C040670CA27FC7373D9881443 + 5CCED3C6197750C6614C7E924A728DC78D5FEEECB44DBEF7A94D7E5E6001670B + A60E94BD5F9D5C52AD8240F2B1B3BBFCE3AFB76EBF3C75E5B5BF280273853737 + 8BFBC4BAF90E514D49908217D95478BFD0A27A1CA3AE6A85BC6DB43DA23DDFB3 + 363A449AB4BE8EA57CB88F49F6BA683D2AD80519AD85CD339D9060625BE211DB + 920AEDF61D4B039E896C8C0A5DBDABC21654F3284F954AD85B995D9A4BA92DCA + 68AF80021C224477E41BB2C9B5B9D8E6F217D9363A222F9D62DBDEB97E780AD4 + 50D6F5F519E639EB0BDDBCEAE34A87242BE0FB63B934866101AFA4F50FDF44E4 + 69190A466DCC313ED3063B1767F09EBF17832BF9381AC493B6DAB86448A2F293 + 3D8071343358E09BE99599CA81DA40694260DB3BEB4AE8A71692DB277AFAFCED + C553E77FBDFAE2C2633DDD4C07E7FA70DFEAA4B7798E6E2D51838BEF1797E70D + F2BC1F6758B44CB4821C9B5899712C09CBE92D88EEC9808379E656A06D1ED6A4 + 42BA2526D3E161CB24178A48A6D9D505676168DDFB4658D6C8C22C5402467765 + 1994BA677662D3133554C52A5550A9F524DB5E2FC7BE7918EAD520B3069B0B89 + 866B9FA459BFCC7784386A41B7A07B61A0676924AF4F02452ECF0A6D121BB366 + 1433B82D01E9496881EE258950D3EE2041C750452FE0A2F31338A33F318B619F + BA18F6D47D75237D1213A4DC6B7838A397B1D81239104173A013D87E3DB3EF7D + A1D6A6C4DEA222E8F27DFDDF7EBAFDCBA9EBBAFA6E6583E2D8E6A4ACEE52C960 + D532B46DDAD9E99B1DD14DB7799A69020D86802D9A67461CCB23DCAAA3AC2AE1 + 9826CFD1B9F7F0255AED1031C7C4550CC5627E139CD8B9BD5DD85EEB5E13B52A + 5F06A344BD2653CE2D428025BDBD34AA3513B6C2903DD52AE170434677E9F0EA + 30F43386DC1B6C98ADDE9E952F26D5658BFB2AE717279A075B631B32CDC5BED0 + E322A62BB371B20572FD21D40B1164ACA520052F0C4F6CBD0C5007291D9E19C2 + E53CA60B0186CC0DA5924CC367FB4AD84F183314195C1DCB633E463E5C231565 + 171C36811DE8D0BC06644CC8667206857ED529579E195F387BF5C753371C72A2 + DA263A5765CB20E360104860EA9E98B0CB297951EAFCB8C235B03E19FA68044A + 332185B267B6A772A8CABCD8AB6EBC094EAC04934FAE862D5674C34803132819 + 92CDAFCCFA96A7368C35609A3A2848E51A7A60AAEDE49EF2C4A15C70DFC89601 + 9CB985E10F7822187D101D051B150C4A384AEEFDCC8464A2C5A52E024E153210 + B879560557BEAF82EA386044DAC386EC6E8293878DB779BCC59537FBF21CA566 + 2E6ED82D5CC052F662D8A5EFF9F1469EDED34627D7CAE02ABF7DAF648F27820A + 0D71001DB223EED36E42AD312C1A36E61F3E7A79EAE4F913171FBE48B1D6C9B3 + 3116BAC5F7E4F5CC0EAAE432717FA34176E88B02FBFB9966EE35D11E7589CFF2 + 3D1B261BC01C9D585AB42C8D2B19C3A66C13F3F37E45D1BD0BD8871C8F5D4593 + 754BD0278D6ECF2A19920A8607E7D61707E686EBC7DAEBC75AACA521A9DD3970 + B215284074D3B08A8E64466D6E01AA1AC6DAB23ACAFCEBDE4110048AC36CAB03 + 231A531AA73AA0150C490981131714E8DD414E18A911635B4507913E153F3C6E + A3DFECABD8B8F8E622958DBF574FCDE31B4638BCA968E3EC20D9CD3895C94C8E + 3420361E1829E42CEDA7D7CF9FFEFEECAF4F0C239BF36DEAA35E563A3C2A31D6 + AB70F7AC4F82BC7FBF9A18C8FFD5CF74D0CB717B92E37235E14570532A187835 + FDCDAF4AE0B09CC065D5F2FCFCBC49856F607D225695A1F1F8616275DE3E3FC4 + AE3AC8B62AF8619E55497BD9E4DAA29720C6BED03DB7BF7C696591F446C6320B + B03397D7160666061A66FA22DB0B0D2B7C5E97BB42A348A7DAE094F66CF0D568 + 2909EDF58465F5B0DD4CC31BA42D154935DF6763814BD05C347055DABE38E35E + C0C51983E73E35F08C2EB8060C17018C1719ED30FEE5AA34EEA4A994A7318ABD + AE06986ABFBD30357FEFB7D347BFFDD935324AA692F5CDCEC4D616D916439307 + D7B7120F38D3F86D993334DC8CE8CD766B88372AF37A9E69E955173F303750D8 + 5EEE581612DF9CB5B4B608DBAA70CC51766B099E18048CB0B15ED6DB00E1CDEA + A9BAFEF9BECCAADCD979ECF00B7DBA5754CBA82436B767650B6D73ED456DA509 + 9DB96ED511369200830A0F6866FEA6D8CE5EE49B3550DEBB384C9A5EA30EC617 + 21321A63C122015A2C4ABB91521D405E8C2EB99CC413959F4615832157E671CD + 887D7A4D6833D6BE8FE4CA3D0D4AC89DDA8C48AFE48A024A01606AC3DF89C189 + 2BE78E1F3E7C5DDC544B221958E9DE373BD035DF5B3424B61306DBD784424B5B + 638997B1D8D3ACD61FEA16ADAB023DEB2312BAB3E27A73F2872BC4DD55907E62 + 90E65C355A0FAD04817D406D0E2F4D774E8FACCA97D6154BB38B93536B93838B + 43038B03D583F569F5B9B18D694EA21087BA50EBC6607DA9B7454D904B55849F + 28AA74500C67280C2DBEC78C74A2AF185DB255D0E4735829CB55A15A879ADC14 + 14DCBF74E1BCD7BE82549B19F6C5DFFE3583F4015C69799049C2E5452E5DF048 + 89E95BEEF5F48899A1CEC1B387BF3D7BF6C1FBB9311238A1871263351B64AF0E + CF8F354EB6A77717FA37C5990BBD0C4B5D5E1739984ABD9FE798BF2AB17953E9 + 6C207433AD0C3191FAE994DB3B3645FAD427C7B564C7D4A747B764FB54253917 + 452476177855C75A0B039D1BA320E5F24599C3BD02734802B3AB0B76A9090BEF + 7CF7AE3DAF7DA17B6A7D063AD82092B07405925A4004D218342E8B42834920FA + 9E2E8ABB228A397A1903207B4FE1A30D311EFEB4451A57F2C17B4D2D9336B7B2 + A1B9D8628FDC97BBD9950CD93C998902667755E427DC7D101596FDF0F5B7577F + 7FBBAC5A25D293E806D4EDA40F32114D20909654CB9D937DF5A36DA221D8EC16 + 2737678737BE33CA73D12F757A23F00523E555AEA54D5DB07E9DCF33A1D5E33C + E30739C6D0DBD7A0D243B7C249AFC2150E3CB19306BBD746FBB7A4FA35A5A4F7 + 94F62E0ECEACCEA894D0B71CB3FF34FB74B4690BED6D403B1BD3E6F21FA7E933 + 9EE3F101FB482FE02D9FA2930B582EB62848195B6BFFC4BED93D7B84034D1E39 + B0F9F1DE7C96BBB527CD655C22FB49C3BFF09043FFF6ADB18D1F383B608B93F2 + 4B48B2A329DAE03E41785E0DD12AB0B0C9360A2E0AE5EA0E9CFCAE80E260C944 + 73DE8038B75F543C28291DAD4EE92C08922424B6E4667694548D35D74CB567F5 + 14940D578A07A47D337D63F3A3705E2B441735E5A910C8A7B904E498223C1613 + F36FA0EC0A43FEA4C08514349263A998FCE78215DE7377FD69EE2C93375C95C1 + 46F8429C719FC2E3100DCE18F9334CF058980EB12F7BB15B284A681885111A5B + 0093B78CD371F3030E37B631FAEEFF3A9C988787B6907A254426F5B1485E0181 + 17D6C5C04E179C338D475EC11598EF4E4EF3C5A82EC904C5B9C1FDD0C9582987 + AFF12E2836A191249C1629EEC32356B12C8B18F88815DA96956316E1D600312B + C80AF0560DED7391C1253E966FC9D6C500C5639A2FE7331E9CF938E3AA2E2E27 + 3158C397EC1E2EFF6A8B5D36452E82E97BF613F7F118B4906D98FC75E7AB7F3B + 992728673F694F0375033D0A82346460DA5E93684C104D274CE0AF211AFA2B01 + 3AFE8377649C8F4A6049CEA6E67ABC9D0A34D6319B23DFA8A0DB1D93BF7DC8D6 + C8D418BD9EBB70AE96D95769ED2BBA183418A7EEF5FDE63E80520A63BE2FC719 + BD924E978B602EE6B8CB78DF3574EDFB6F8E1DFE59DA564F57CB452A8F9E78A2 + 860575B833E7AD824D86A71E0E7A0A2D6EE3490EFA0D7D3AFD4B91C7BB8CF791 + 0281CD795F84310473C99D47E55CC947E1F351EE376F5CDEEC792CAF4D298CF7 + E963B471C6BE641708724B7EFDE6DB0B17FEEC19EBA7D7D365687339E52DCA43 + EC572E98B85F72610137B2A9720580862F39215D3602F7768630862DC6526C15 + 746EDC257399E3206CD1EFB5798BF73DF776FA88BD18315BCFBEF7F0A0B3EFC3 + B451C5BD8C111DC325BC89F1F2FEE9EFDF9CBB7477687644DB1FD2D6B23CA073 + A52805348F17197CB904C470C31D9FDDCB64206359FA137B3497947902735F04 + 68E3988706DE5D0C6807219B8FB3CFA29D3B752EC8B82B6114C720C5D6CF1577 + 1050307E70EFE77F1EFEEDE6B3B1A571DA258BDECB9C53C676F446AEB8A683D3 + 6F1837F0A6C18597363A99B8E3E1491B5B3CE2A3328A2B0CE84CB8D0D39E09A3 + E94FE36CDFCBB8B7F071C6A6CB1ECF633B2EA5EFCB9ADCB9D285F146A050862F + DFF7BCBF7AE8FB1FBF3D7BEFA511740641D39ABCE0968332BAB98A9D5EC91EC7 + 1547FBC28E029A0B6B3AB74F501E1737EC5EC6765CD4EEFB742EA5F2E0C970C0 + 63121E4F7301C86ED98B83D0AB0F1A9ACE9E370906052E2C98DCE792866649A4 + 5882FE835FCBDE659FFFF7FF38F4DD2F66CE2E48A71F37E6E092DBBEDCCF70C6 + 83264F1669DFCB95F33C05C925592E351C34088FC4B9E8679CB72FC33179C3A8 + 705FD2614861A4066FF670F659B14B6FE3F199369B73753EFB755F9CF958DB5C + F8FAE8375F9D4BCCCA842BE931CB4CE0B0551DB4662ECEE85DBC70DF27B0C59E + 4207A1ACCF65626DC4F3D0432F6054CE13DA5CFADE77FEDCB97161C883279749 + D87B4DAF762E516B0FF189C56BD3381538BC39D115520EA30E2C5C63A56FF2CD + FFF8FAEEBD97326C498C094F5CA2A32353A0F0C885FB91417F5F7AFA047F3070 + 33978B3B6D0A20269A285E79EBE262918B33FA50A665791FB93289819AAE91FB + 91AD9AF100A3923D9C3106D2C6D9BE94C2BEE4D1943640F7887A17678036B82C + 3234F2E2D9CBD5F5B5E416725EC0AE1D4FC7E411BE360D6AA3843D9D419C5DC3 + 9D1803377B0A636B2E0B32568637CC21A394C490C463593A733655B6A24F8077 + 5F9EE6512A9D3021F8AD036D7D2E803ECDDD7496EC195C147261CAF88CB1DACA + CACAC4E4245E4FCD7CF2A290A59363A4CD5D3917DCBCF1B9EBD4C61957003064 + 6804C02E57B1C1E934A8B6A3A443F992696B1EB9706FE4828B2721D8E3B88CB5 + 2FCE7814C65DDAFEB9DFFBB22A83A9360B3310F0A6C863591E5618697369900B + 4446C23CDC30B1C6407910A1B0D11805D019D2053240D3CBD8376C395C9CD18B + F745B6F6F2B917334C6B53189FA677C767DFB391E9801A3EE3D1CBBEE4C3231C + 066BC6074C883188F0B0CE1559DA1362929092B6F61CB471C6051F8B41709FCE + 6EE10ECE45124FFC323AE0120D83147DC313BCF00D2F82C52EE09235D734E5B2 + CBA721BFEFAF74A803F98C47295C10D00971399A5DFC099CB19FB8EBE7CD8C2B + 66B90C71109F31F83245CD252FEE9CE9955C1B877D43EF6591651EB7F150C81B + 93AB71B948FDC48479A0E30DA84D765C594541B74F8D05978D980CA143D36931 + 9CB1F530F2E1B29736C8D8200CC4DCA1D8AFECA15CBA6110D7E642ED410E2261 + 3A7F5E20985D4C1FC1A32D1E7B71570AEF190F7139988B667A3DD385DC157191 + C1451533387954CB90FD91AD0F0FE0DEC0E641AF3EE8193C2CB28F07712A8511 + 8F23E93AB994C1833B57F96B1323977AB411C633D3B962900B5F260018D5F244 + 2217BB5CB1C99B3C97D7193DF190CA032677458C31E8B03C146AF88C07021E33 + 72A99EFB131734DC09F150C8D6C37B0AC3E8BEA8828BE9F76CCD5473688B3E7A + A5F6F7DAECC8485EFB7A46C2DA2C7E109F7D9AB97984CB28431B55DAE0E2B207 + 97BEF7F88CCB80DAB4AF4DBFDACF6050DB97FC0F422DD7F6D3E60C46E93C8ED4 + BE924BFB5C483196E572125CC07D2E979F78AA8EDDCE70C67B34C3194F9CF226 + 4C8989C7D9DA58E14E923D88112EEFD19A3EA95C62670281D1E367A9F813A064 + 6B60833048F1E486B6ACFF72847127C05D2A85381B19DEB3F816E363062FEA26 + 33D1A42D54B833E4899683704CE998E68CF026C9A5987D21FC299C719989F10A + 95A45C6AE54E8B8B632EA57F02CA3CB1C01DED203EE34EE6D364A10D323A432E + 2C18C953707357071FB5652F3394F69D1E1B814BD9DA5297DEABEDC030566383 + 538AE172E48138E3218C2BD97974A10D02AE9CE4B2115707EC2BC1D950BC45B2 + 8F6CBADCA178C3B241B89C44614101CAD882711BF74BEE7B664972998FE28CC1 + 91FB14EE3C1900B9A4C0E5EF7D298FFB206DC6D0664A2EA0FE1F3119FDE4F0F3 + 6CBA0000000049454E44AE426082} + Stretch = True + OnClick = Image2DblClick + OnDblClick = Image2DblClick + end + end + inherited ActionList1: TActionList + Top = 16 + inherited actAceptar: TAction + OnExecute = actAceptarExecute + end + inherited actCancelar: TAction + OnExecute = actCancelarExecute + end + end +end diff --git a/Source/Modulos/Presupuestos de cliente/Views/uDialogOpcionesImpresionPresupuestosCliente.pas b/Source/Modulos/Presupuestos de cliente/Views/uDialogOpcionesImpresionPresupuestosCliente.pas new file mode 100644 index 0000000..c08f5e5 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/uDialogOpcionesImpresionPresupuestosCliente.pas @@ -0,0 +1,81 @@ +unit uDialogOpcionesImpresionPresupuestosCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uDialogBase, ActnList, StdCtrls, ExtCtrls, jpeg, dxGDIPlusClasses; + +type + TfDialogOpcionesImpresionPresupuestosCliente = class(TfDialogBase) + Image1: TImage; + Image2: TImage; + procedure actAceptarExecute(Sender: TObject); + procedure actCancelarExecute(Sender: TObject); + procedure Image1DblClick(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure Image2DblClick(Sender: TObject); + private + FVerSello: Integer; + public + { Public declarations } + end; + + function ElegirOpcionesImpresionPresupuestoCliente(var AVerSello : Integer): Boolean; + +implementation + +{$R *.dfm} + +function ElegirOpcionesImpresionPresupuestoCliente(var AVerSello : Integer): Boolean; +var + AEditor : TfDialogOpcionesImpresionPresupuestosCliente; +begin + AEditor := TfDialogOpcionesImpresionPresupuestosCliente.Create(NIL); + try + Result := (AEditor.ShowModal = mrOk); + if Result then + begin + AVerSello := AEditor.FVerSello; + end; + finally + AEditor.Release; + end; +end; + +procedure TfDialogOpcionesImpresionPresupuestosCliente.actAceptarExecute(Sender: TObject); +begin + inherited; + ModalResult := mrOk +end; + +procedure TfDialogOpcionesImpresionPresupuestosCliente.actCancelarExecute(Sender: TObject); +begin + inherited; + ModalResult := mrCancel; +end; + +procedure TfDialogOpcionesImpresionPresupuestosCliente.FormCreate( + Sender: TObject); +begin + inherited; + FVerSello := 1; +end; + +procedure TfDialogOpcionesImpresionPresupuestosCliente.Image1DblClick( + Sender: TObject); +begin + inherited; + FVerSello := 1; + actAceptar.Execute; +end; + +procedure TfDialogOpcionesImpresionPresupuestosCliente.Image2DblClick( + Sender: TObject); +begin + inherited; + FVerSello := 2; + actAceptar.Execute; +end; + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorElegirArticulosPresupuestoCliente.dcu b/Source/Modulos/Presupuestos de cliente/Views/uEditorElegirArticulosPresupuestoCliente.dcu new file mode 100644 index 0000000..1d092ff Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Views/uEditorElegirArticulosPresupuestoCliente.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorElegirArticulosPresupuestoCliente.dfm b/Source/Modulos/Presupuestos de cliente/Views/uEditorElegirArticulosPresupuestoCliente.dfm new file mode 100644 index 0000000..cac9264 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/uEditorElegirArticulosPresupuestoCliente.dfm @@ -0,0 +1,6 @@ +inherited fEditorElegirArticulosPresupuestoCliente: TfEditorElegirArticulosPresupuestoCliente + Caption = 'fEditorElegirArticulosPresupuestoCliente' + ExplicitHeight = 478 + PixelsPerInch = 96 + TextHeight = 13 +end diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorElegirArticulosPresupuestoCliente.pas b/Source/Modulos/Presupuestos de cliente/Views/uEditorElegirArticulosPresupuestoCliente.pas new file mode 100644 index 0000000..4baa73f --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/uEditorElegirArticulosPresupuestoCliente.pas @@ -0,0 +1,35 @@ +unit uEditorElegirArticulosPresupuestoCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorElegirArticulos, Menus, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, + StdActns, ActnList, uCustomView, uViewBase, uViewBarraSeleccion, ComCtrls, + JvExComCtrls, JvStatusBar, TBX, TB2ExtItems, TBXExtItems, TB2Item, TB2Dock, + TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, + uIEditorElegirArticulosPresupuestosCliente, uDAInterfaces, + uViewGridBase, uViewGrid, uViewArticulos; + +type + TfEditorElegirArticulosPresupuestoCliente = class(TfEditorElegirArticulos, IEditorElegirArticulosPresupuestosCliente) + public + constructor Create(AOwner: TComponent); override; + end; + + +implementation +{$R *.dfm} + +uses uViewElegirArticulosPresupuestosCliente; + +{ TfEditorElegirArticulosPedidoCliente } + +constructor TfEditorElegirArticulosPresupuestoCliente.Create(AOwner: TComponent); +begin + inherited; + ViewGrid := CreateView(TfrViewElegirArticulosPresupuestosCliente) as IViewElegirArticulosPresupuestosCliente; +end; + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorElegirPresupuestosCliente.dcu b/Source/Modulos/Presupuestos de cliente/Views/uEditorElegirPresupuestosCliente.dcu new file mode 100644 index 0000000..4fc2b6c Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Views/uEditorElegirPresupuestosCliente.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorElegirPresupuestosCliente.dfm b/Source/Modulos/Presupuestos de cliente/Views/uEditorElegirPresupuestosCliente.dfm new file mode 100644 index 0000000..18a67f8 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/uEditorElegirPresupuestosCliente.dfm @@ -0,0 +1,227 @@ +inherited fEditorElegirPresupuestosCliente: TfEditorElegirPresupuestosCliente + Caption = 'Seleccionar pedido de cliente' + ClientWidth = 656 + ExplicitWidth = 664 + ExplicitHeight = 538 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Top = 139 + Width = 656 + Visible = False + ExplicitLeft = 8 + ExplicitTop = 232 + ExplicitWidth = 656 + inherited Image1: TImage + Left = 629 + ExplicitLeft = 629 + end + end + inherited TBXDock: TTBXDock + Top = 64 + Width = 656 + ExplicitTop = 91 + ExplicitWidth = 656 + inherited tbxMain: TTBXToolbar + Left = 427 + ExplicitLeft = 427 + ExplicitWidth = 229 + inherited TBXItem2: TTBXItem + Visible = False + end + inherited TBXItem5: TTBXItem + Visible = False + end + inherited TBXItem4: TTBXItem + Visible = False + end + inherited TBXSeparatorItem3: TTBXSeparatorItem + Visible = False + end + inherited TBXItem6: TTBXItem + Visible = False + end + inherited TBXItem36: TTBXItem + Action = actAnchoAuto2 + end + end + inherited tbxFiltro: TTBXToolbar + Top = 23 + DockPos = -107 + DockRow = 1 + ExplicitTop = 23 + inherited TBXItem34: TTBXItem + Action = actQuitarFiltro2 + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 656 + end + inherited TBXTMain2: TTBXToolbar + Left = 238 + Visible = False + ExplicitLeft = 238 + ExplicitWidth = 418 + end + end + inherited StatusBar: TJvStatusBar + Width = 656 + ExplicitWidth = 656 + end + object pnlHeader: TPanel [3] + Left = 0 + Top = 0 + Width = 656 + Height = 64 + Align = alTop + BevelOuter = bvNone + Color = clWhite + Padding.Left = 25 + Padding.Top = 8 + Padding.Right = 25 + Padding.Bottom = 8 + ParentBackground = False + TabOrder = 4 + ExplicitTop = 27 + object lblTitle: TLabel + AlignWithMargins = True + Left = 25 + Top = 8 + Width = 606 + Height = 13 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 0 + Margins.Bottom = 8 + Align = alTop + Caption = 'Seleccione el pedido de cliente' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + ExplicitWidth = 172 + end + object lblComments: TLabel + AlignWithMargins = True + Left = 50 + Top = 29 + Width = 581 + Height = 24 + Margins.Left = 25 + Margins.Top = 0 + Margins.Right = 0 + Align = alClient + ExplicitWidth = 3 + ExplicitHeight = 13 + end + end + inline frViewBarraSeleccion1: TfrViewBarraSeleccion [4] + Left = 0 + Top = 449 + Width = 656 + Height = 36 + Align = alBottom + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 449 + ExplicitWidth = 656 + ExplicitHeight = 36 + inherited JvFooter1: TJvFooter + Width = 656 + Height = 36 + ExplicitWidth = 656 + ExplicitHeight = 36 + inherited bSeleccionar: TJvFooterBtn + Left = 444 + Top = 3 + ExplicitLeft = 444 + ExplicitTop = 3 + end + inherited bCancelar: TJvFooterBtn + Left = 548 + Top = 4 + ExplicitLeft = 548 + ExplicitTop = 4 + end + end + inherited BarraSeleccionActionList: TActionList + inherited actSeleccionar: TAction + OnExecute = frViewBarraSeleccion1actSeleccionarExecute + OnUpdate = frViewBarraSeleccion1actSeleccionarUpdate + end + inherited actCancelar: TAction + OnExecute = frViewBarraSeleccion1actCancelarExecute + end + end + end + inherited EditorActionList: TActionList [8] + Left = 112 + Top = 192 + inherited actPrevisualizar: TAction + Visible = False + end + inherited actImprimir: TAction + Visible = False + end + inherited actDuplicar: TAction + Visible = False + end + inherited actGenerarAlbaranCli: TAction + Visible = False + end + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [9] + end + inherited dsDataTable: TDADataSource [10] + Left = 8 + Top = 192 + end + inherited StatusBarImages: TPngImageList [11] + end + inherited GridPopupMenu: TPopupMenu [12] + Left = 80 + Top = 192 + inherited N4: TMenuItem + Visible = False + end + end + inherited JsGenerarDialog: TJSDialog [13] + end + inherited JsPrevisualizarDialog: TJSDialog [14] + end + inherited JsImprimirDialog: TJSDialog [15] + end + inherited JsListaPresupuestosNoEliminados: TJSDialog [16] + end + object EditorSeleccionActionList: TActionList + Images = SmallImages + Left = 152 + Top = 192 + object actBuscar2: TAction + Category = 'Buscar' + Caption = 'Buscar' + ImageIndex = 10 + ShortCut = 114 + end + object actQuitarFiltro2: TAction + Category = 'Buscar' + Caption = 'Quitar filtro y ver todo' + ImageIndex = 19 + OnExecute = actQuitarFiltro2Execute + end + object actAnchoAuto2: TAction + Category = 'Ver' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 21 + OnExecute = actAnchoAuto2Execute + end + end +end diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorElegirPresupuestosCliente.pas b/Source/Modulos/Presupuestos de cliente/Views/uEditorElegirPresupuestosCliente.pas new file mode 100644 index 0000000..819354d --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/uEditorElegirPresupuestosCliente.pas @@ -0,0 +1,130 @@ +unit uEditorElegirPresupuestosCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, DB, uDADataTable, Menus, JvAppStorage, JvAppRegistryStorage, + JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns, + ActnList, uCustomView, uViewBase, uViewGridBase, uViewGrid, + uViewPresupuestosCliente, ComCtrls, TB2ExtItems, TBXExtItems, TBX, + TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvComponent, + JvNavigationPane, uViewBarraSeleccion, StdCtrls, + uEditorPresupuestosCliente, uBizPresupuestosCliente, uIEditorElegirPresupuestosCliente, + JvExComCtrls, JvStatusBar, JSDialog, uDAInterfaces; + +type + TfEditorElegirPresupuestosCliente = class(TfEditorPresupuestosCliente, IEditorElegirPresupuestosCliente) + frViewBarraSeleccion1: TfrViewBarraSeleccion; + lblTitle: TLabel; + lblComments: TLabel; + EditorSeleccionActionList: TActionList; + actBuscar2: TAction; + actQuitarFiltro2: TAction; + actAnchoAuto2: TAction; + pnlHeader: TPanel; + procedure frViewBarraSeleccion1actSeleccionarUpdate(Sender: TObject); + procedure frViewBarraSeleccion1actCancelarExecute(Sender: TObject); + procedure frViewBarraSeleccion1actSeleccionarExecute(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure actAnchoAuto2Execute(Sender: TObject); + procedure actQuitarFiltro2Execute(Sender: TObject); + protected + procedure SetMultiSelect (AValue : Boolean); + function GetMultiSelect : Boolean; + function GetPresupuestosClienteSeleccionados: IBizPresupuestoCliente; + procedure SetViewGrid(const Value: IViewGridBase); override; + procedure SetMensaje (const AValue: String); + function GetMensaje: String; + public + property Mensaje : String read GetMensaje write SetMensaje; + property PresupuestosClienteSeleccionados: IBizPresupuestoCliente read GetPresupuestosClienteSeleccionados; + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + end; + +implementation + +uses + uEditorGridBase, cxGridCustomTableView, uIntegerListUtils, uDBSelectionListUtils, + uGridStatusUtils, uEditorBase, uPresupuestosClienteController, + cxGridLevel; + +{$R *.dfm} + +{ TfEditorElegirPresupuestosCliente } + +procedure TfEditorElegirPresupuestosCliente.actAnchoAuto2Execute(Sender: TObject); +begin + inherited; + actAnchoAuto.Execute; +end; + +procedure TfEditorElegirPresupuestosCliente.actQuitarFiltro2Execute(Sender: TObject); +begin + inherited; + actQuitarFiltro.Execute; +end; + +procedure TfEditorElegirPresupuestosCliente.FormShow(Sender: TObject); +begin + inherited; + EditorActionList.State := asSuspended; +end; + +procedure TfEditorElegirPresupuestosCliente.frViewBarraSeleccion1actCancelarExecute( + Sender: TObject); +begin + inherited; + Close; +end; + +procedure TfEditorElegirPresupuestosCliente.frViewBarraSeleccion1actSeleccionarExecute( + Sender: TObject); +begin + inherited; + ModalResult := mrOk; +end; + +procedure TfEditorElegirPresupuestosCliente.frViewBarraSeleccion1actSeleccionarUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (ViewGrid._FocusedView.Controller.SelectedRowCount > 0) +end; + +function TfEditorElegirPresupuestosCliente.GetPresupuestosClienteSeleccionados: IBizPresupuestoCliente; +begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Presupuestos as ISeleccionable).SelectedRecords); + // En SelectedRecords tengo los ID de las filas seleccionadas del grid + Result := (Controller as IPresupuestosClienteController).ExtraerSeleccionados(Presupuestos) as IBizPresupuestoCliente; +end; + +function TfEditorElegirPresupuestosCliente.GetMensaje: String; +begin + Result := lblComments.Caption; +end; + +function TfEditorElegirPresupuestosCliente.GetMultiSelect: Boolean; +begin + Result := ViewGrid.MultiSelect; +end; + +procedure TfEditorElegirPresupuestosCliente.SetMensaje(const AValue: String); +begin + lblComments.Caption := AValue; +end; + +procedure TfEditorElegirPresupuestosCliente.SetMultiSelect(AValue: Boolean); +begin + ViewGrid.MultiSelect := AValue; +end; + +procedure TfEditorElegirPresupuestosCliente.SetViewGrid(const Value: IViewGridBase); +begin + inherited; + //Para que no salgan las pestaas de filtrado + ViewGrid._Grid.RootLevelOptions.DetailTabsPosition := dtpNone; + ViewGrid.OnDblClick := frViewBarraSeleccion1.actSeleccionar.OnExecute; +end; + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorFechaDecision.dcu b/Source/Modulos/Presupuestos de cliente/Views/uEditorFechaDecision.dcu new file mode 100644 index 0000000..c1d3c1d Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Views/uEditorFechaDecision.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorFechaDecision.dfm b/Source/Modulos/Presupuestos de cliente/Views/uEditorFechaDecision.dfm new file mode 100644 index 0000000..71aee81 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/uEditorFechaDecision.dfm @@ -0,0 +1,60 @@ +object fEditorFechaDecision: TfEditorFechaDecision + Left = 0 + Top = 0 + BorderIcons = [biSystemMenu] + Caption = 'Fecha de decisi'#243'n' + ClientHeight = 146 + ClientWidth = 279 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + FormStyle = fsStayOnTop + OldCreateOrder = False + Position = poMainFormCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object Label1: TLabel + Left = 8 + Top = 16 + Width = 257 + Height = 13 + Caption = 'Establezca la fecha de decisi'#243'n para los presupuestos' + end + object edtFechaDecision: TcxDateEdit + Left = 56 + Top = 48 + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 169 + end + object bAceptar: TButton + Left = 109 + Top = 113 + Width = 75 + Height = 25 + Caption = 'Aceptar' + ModalResult = 1 + TabOrder = 1 + end + object bCancelar: TButton + Left = 190 + Top = 113 + Width = 75 + Height = 25 + Cancel = True + Caption = 'Cancelar' + ModalResult = 2 + TabOrder = 2 + end +end diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorFechaDecision.pas b/Source/Modulos/Presupuestos de cliente/Views/uEditorFechaDecision.pas new file mode 100644 index 0000000..267598d --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/uEditorFechaDecision.pas @@ -0,0 +1,35 @@ +unit uEditorFechaDecision; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, cxControls, cxContainer, + cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxCalendar; + +type + TfEditorFechaDecision = class(TForm) + Label1: TLabel; + edtFechaDecision: TcxDateEdit; + bAceptar: TButton; + bCancelar: TButton; + procedure FormShow(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + +var + fEditorFechaDecision: TfEditorFechaDecision; + +implementation + +{$R *.dfm} + +procedure TfEditorFechaDecision.FormShow(Sender: TObject); +begin + edtFechaDecision.Date := now; +end; + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.dcu b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.dcu new file mode 100644 index 0000000..94be571 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.dfm b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.dfm new file mode 100644 index 0000000..0b93a19 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.dfm @@ -0,0 +1,2541 @@ +inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente + Left = 332 + Top = 147 + Caption = 'Nuevo presupuesto de cliente' + ClientHeight = 592 + ClientWidth = 764 + OnClose = CustomEditorClose + ExplicitWidth = 772 + ExplicitHeight = 626 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 764 + Caption = 'Nuevo presupuesto de cliente' + ExplicitWidth = 764 + inherited Image1: TImage + Left = 631 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 5200000A4D6943435050686F746F73686F70204943432070726F66696C650000 + 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 + 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A + 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 + 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 + 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 + 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C + 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 + 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 + 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F + 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 + 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 + 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 + 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E + 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB + 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F + FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 + F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E + F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 + 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 + 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 + C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 + 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D + 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 + A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D + 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 + 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC + 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE + 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 + 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 + B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 + 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 + 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 + 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F + 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F + AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F + A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 + 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 + 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 + DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 + BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF + D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 + C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 + 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 + 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 + 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B + ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 + F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 + 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE + BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 + F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D + C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE + 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 + 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 + 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 + 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 + 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC + 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A + 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 + 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 + E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 + D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 + 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 + 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 + F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 + 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 + 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D + DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 + 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A + 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 + 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 + 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 + 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 + 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F + 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D + BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D + AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 + 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC + 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E + 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 + B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 + 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC + 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 + 4D410000B18E7CFB51930000026B4944415478DA63FCFFFF3F032D0123B2054B + B79CA49A6DD13EE68C582D004A906CD8DFBFFF80F83F980601EBC07C86733BA6 + E1B6C073BF2D8A01DB1D0FE3341C59ED2AB33D0C0BD7ED6798B774137E0B4871 + B9CF217B0659251686D93B0E30BC8FFCC6B064E341C21660F301BA18086CB43E + C0E07FD48161C7AD2360FE9BB02F0CCBB71CA6CC07FFFF01C31A88FF005D0F62 + FFF9F70F1A07FFC0ECD5DB8E92EE036200C8178F03DE336CD87582380B60DE26 + 053CF07DCBB079EF29E22CC09772B001909E692A1B18B61E384DBC05B8820A66 + 394C1EA676B2D27A861D87CE50EE8389058E0C5FD9CF3108BFFA84D7574FBE3A + 91E60398A56DE5FC0C117EBF1824187F30FCFAC900C13F18187EC268203E7982 + 080BB08199898C0CB1A910363EC3F9251818AEDEC5624184A729387762F341C0 + A2230C2C82F823FBCF7B84E158E320D4CD049C3BB1F900D9F520F0E93DC4C530 + 0CF2C1993390A0B133DCC770E83C161F04391B31049D70C2690148332100321C + 04B05AE0E768C01076CA05AB46501021FB0004FEFE0506CB6F0686DFBF80BEF8 + CEC070E306420EAB05DE767AF0720556C680CA1E10BDA75E14C50290A1BF8186 + FFF90561AF59C3C1A0A6F183818D058F051ED63A580D075528FB9BC430E20064 + 30C80720BC651B0783943CC402365606861397B158E062A985D570107DA85502 + C582B72F1186832CDAB9878341441A62C1953B4E0CCDABF6326258606FAA0E36 + ECDF5F44B10CB3F078A734DC029081EF5E210C0705D5BE831C0C7CE23F181E3C + 81188E3599DA18A9824B446C80759F27D88299533970A6A077BFAD18B67E52C7 + 5D16F54E598853B33DEF3E061E4669BC4914643808C02C0000053036AC648583 + 960000000049454E44AE426082} + ExplicitLeft = 735 + end + inherited lblDesbloquear: TcxLabel + Left = 666 + ExplicitLeft = 666 + AnchorX = 711 + AnchorY = 14 + end + end + inherited TBXDock: TTBXDock + Width = 764 + ExplicitWidth = 764 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 732 + inherited TBXItem2: TTBXItem + Visible = False + end + inherited TBXSeparatorItem1: TTBXSeparatorItem + Visible = False + end + inherited TBXItem5: TTBXItem + Visible = False + end + object TBXSeparatorItem6: TTBXSeparatorItem [11] + end + object TBXItem35: TTBXItem [12] + Action = actEnviarPorEMail + DisplayMode = nbdmImageAndText + end + object TBXItem33: TTBXItem [13] + Action = actGenerarCertificado + DisplayMode = nbdmImageAndText + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 764 + object TBXSubmenuItem2: TTBXSubmenuItem [4] + Caption = 'A&cciones' + object TBXItem34: TTBXItem + Action = actEnviarPorEMail + end + object TBXItem7: TTBXItem + Action = actGenerarCertificado + end + end + end + end + inherited pgPaginas: TPageControl + Width = 758 + Height = 366 + TabOrder = 1 + OnChanging = pgPaginasChanging + ExplicitWidth = 758 + ExplicitHeight = 366 + inherited pagGeneral: TTabSheet + ExplicitWidth = 750 + ExplicitHeight = 338 + end + object pagContenido: TTabSheet + Caption = 'Contenido' + ImageIndex = 1 + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 0 + ExplicitHeight = 0 + inline frViewDetallesPresupuestoCliente1: TfrViewDetallesPresupuestoCliente + Left = 0 + Top = 0 + Width = 750 + Height = 338 + Align = alClient + BiDiMode = bdLeftToRight + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentBiDiMode = False + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 750 + ExplicitHeight = 338 + inherited ToolBar1: TToolBar + Width = 750 + Height = 46 + ExplicitWidth = 750 + ExplicitHeight = 46 + inherited ToolButton3: TToolButton + Wrap = False + end + inherited ToolButton4: TToolButton + Left = 278 + Top = 0 + Wrap = True + ExplicitLeft = 278 + ExplicitTop = 0 + end + inherited ToolButton14: TToolButton + Left = 0 + Wrap = False + ExplicitLeft = 0 + end + inherited FontName: TJvFontComboBox + Left = 65 + Top = 22 + ExplicitLeft = 65 + ExplicitTop = 22 + end + inherited FontSize: TEdit + Left = 210 + Top = 22 + Width = 200 + ExplicitLeft = 210 + ExplicitTop = 22 + ExplicitWidth = 200 + end + inherited UpDown1: TUpDown + Left = 410 + Top = 22 + ExplicitLeft = 410 + ExplicitTop = 22 + end + inherited ToolButton13: TToolButton + Left = 427 + Top = 22 + ExplicitLeft = 427 + ExplicitTop = 22 + end + inherited ToolButton6: TToolButton + Left = 435 + Top = 22 + ExplicitLeft = 435 + ExplicitTop = 22 + end + inherited ToolButton7: TToolButton + Left = 501 + Top = 22 + ExplicitLeft = 501 + ExplicitTop = 22 + end + inherited ToolButton8: TToolButton + Left = 568 + Top = 22 + ExplicitLeft = 568 + ExplicitTop = 22 + end + inherited ToolButton12: TToolButton + Left = 651 + Top = 22 + ExplicitLeft = 651 + ExplicitTop = 22 + end + inherited ToolButton9: TToolButton + Left = 659 + Top = 22 + ExplicitLeft = 659 + ExplicitTop = 22 + end + inherited ToolButton10: TToolButton + Left = 804 + Top = 22 + ExplicitLeft = 804 + ExplicitTop = 22 + end + inherited ToolButton11: TToolButton + Left = 929 + Top = 22 + ExplicitLeft = 929 + ExplicitTop = 22 + end + end + inherited cxGrid: TcxGrid + Top = 72 + Width = 750 + Height = 266 + ExplicitTop = 104 + ExplicitWidth = 750 + ExplicitHeight = 234 + end + inherited TBXDock1: TTBXDock + Top = 46 + Width = 750 + ExplicitTop = 78 + ExplicitWidth = 750 + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 750 + end + end + inherited cxGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewDetallesPresupuestoCliente1.cxGridView + HitTypes = [gvhtNone, gvhtCell, gvhtRecord, gvhtRowIndicator] + Index = 0 + PopupMenu = frViewDetallesPresupuestoCliente1.GridGeneralPopupMenu + end> + end + end + end + object pagPortada: TTabSheet + Caption = 'Portada' + ImageIndex = 3 + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 0 + ExplicitHeight = 0 + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 145 + Height = 338 + Align = alLeft + TabOrder = 0 + ExplicitHeight = 398 + object Image2: TImage + Left = 16 + Top = 16 + Width = 115 + Height = 170 + AutoSize = True + Picture.Data = { + 0B544A76474946496D6167651C0900004749463839617300AA00C400008E8E8E + CFD3CF8C8C8CFF0000BDD6C697A997ABB9AB8997897888786874688689865763 + 574950493944393539355F5F5F8A8C8A898B89878B87868A86888B88B7CCB7DA + EADADEEFE7FBFEFB0000000000000000000000000000000000000000002C0000 + 00007300AA000005FFE0238C64699E68AAAE6CEBBEE90360746DDF78AEEF7CEF + FF401D60162C1A8FC8646EA86C3A9F4E26744AADE2A4D6AC5689DD1A2FB48BC5 + 1B25928104CB187309D002E973B12BBFA9DDB4CADA8227D8EB3C74806F703501 + 6B62346A35177E834B668F6169783C6018049717979282646A9C95407B996B8F + 9E5E171518A649019B8EA7917516993B7C04B9048739B59C83A856AD3A1615C6 + C7C8C6C38CB675C154B515B13701C9D6C9C36A71CEB35B63CBAAD7E2C7BF62AB + 80CF55CBC5E3EDC39BC0DD80ECC9BB8770E2CBB2928AC8DBC4048E4DE38721DD + 168160E088C221465F27796702EAA121D11841230685496394ECD7C51E19AB6C + AC51D198C78F3B42FF4E6974C31A4A202AA1BCB241CFD8C230B572CDFC18F3C9 + B06AC84E9644C61322A0A137C2E5BBD8D34A3D1BE178D5C85914653251BB3055 + B859F523364663C20D44D9B44A49536B803A245896CA591C125FDE683BA5E6CD + B8726BD085A274A40DBC790B1A05E40F07BBC034F6FE68C3B5DF3186167BC03A + 9945B1E47F3A902D0BB8F6CDAECE532CFB149823F20E31F0CE887E12D4F0D6C0 + AB2F77260D1934BAC1753148D5A1D4A18593BFF7D5C19C4329E5E2718E57C6BD + 328844E57626DE96947A0750E850853F6AC6A39A6D7EB1D154974C99FBC34789 + 182551357EFAC55ADF15D1C4BE25BC9134F4498E05CFDCCB34969CA481565664 + F597CA54BF99220DFF5A79D9D74400BB65720E620E22569F8116BE546186566C + C821151E7E084588229651A288249E98448AC5BDE2E26F2EB621231EBC3416CF + 45066060C00539F2A8A38E3CAA42C88F055EE446056DC028648C48B202E13D5D + A968618A09B66198298CEDC1871850BAF8061BC1A98661125A426881014F9A89 + 871A88F0718F9569C6999F896754E9E22B5CDEB1C96FF0BCC2279B6C38790897 + DC1034E7872C32F224186C26740F8CC1F1B1C8185E9EF7889E6CE099259F8BCA + C8A86E7CF047DD266090CA28A98AA4875AA0AB5A2AC94EEA95CA6918F06C02AB + AB83C0896AA56EBAC198AC36CA9128549B18C0272B3252DA68A7A03035A69485 + 5E945E526069A29EFFB38040F8AB998E429A66318CA509AAB637D631289BDCEA + 36E821BD6AABEDA6E9BA57E2A1F242DBE0B3F692316CBE20E1CBAF16FBFE2B84 + BF02571170C173118CF0880A2F4CA7C3B8425CAFC4D1523CB1C5FA368CF11C1A + 6F0C53C71EFB7030C4233B5CF2C20635C4E6CA2CB7ECF2CB30C72CF3CC31D397 + 4EB021B3D2AF2539FB00DD335A4A0A69927B32A69B1871F0122ABB1F76164C7A + AB2893861FECAAA1C7677A540306928446DDB4724F5FB2553102FAB1891EC5A4 + 8D41D64D0A7DE4DA1FB66743D8F2E93CF4224A2BE286D2BE7EB3088772EB6554 + E03D139BD2E009B5A3F8E28C37EEF8E2B41E7E1ABD18132ED8E4855B0236E299 + 633EB0E79D33B439FFE83A534E6BA9C85A8E92E5741B220D3EBA4843602F4BDB + 1A2AE0A3F3F6CB6F2519E0FB613ABCB9EEB416B2CE7916A68F2AB9EEA11797BB + F3D44EF5051B9C6019A85CC693FE5982C6866989A48BC2F8E4ECAB3F2FFA5FF4 + AC6D80693C24780FBB6D50823320D9337F6D58A6FA8CAAACFB5FFF52FDD06B5E + 52CC37C0E26C21795A00E0F9A6720863F10F3B59A144A8D6E72624ED4D52A0BA + 839BD8648F1AED4D5BDBABDA1B2865B8CFD98F229B2840019261ACF6A96147C6 + 3AC4D8140207D4ECC849C56A081CD0B4153F7DC600014952350695883BCC4E81 + 05ACD6F6D0059D49C187524CE3459226D510D4A16A68994A88BA6C072818212B + 72260CA0001941C0FF128E118C90205D1206C0C636BAF18D708CA31CE748473A + A2F10AC76BC200F2B547EA2D4F8C4A1880A90649C8421AF290884C24A9FA8844 + 3306F2022A24640114A9C84952F2928C2C23199F20480454E00007300002CE84 + 8050FA6E01A034400110A0C20310E000AC2C80010E508054AE7047974C6426FF + B8403D5E2096A15C00016A09CC06B49296A13C40058889CC55264095B0CCA52E + EF983035224190D2A46410B349C95D86B1978F648FA9F8D40870719390E43CA7 + 37D378C247568095BE83E62DE37900DEC952952AFCA431F019CA02B0E302B454 + A5EF4CE9CF6E52736E797C642D17504B5082B2A10F5DDF2C59998002240096A0 + 4CC0026659CB65EEFFA8000DA8A80A1180CA02644291EBC4A3358F20C89509C8 + 02FE64591A9451CE5A1CA09C2FFD8D25B5C1A67AFAC2A07EFC66127DD988429E + D454472DAA528D3A4E7226B5A8494D6A4AABD9CE353602013B2A060C55F8BBF5 + AD301304C02A24D1764F597A9447AA34C92CB35A01510ED3586D95E5220F2AB8 + 951A4190B57CE6442D5A4B675A80A1B48424031000D05AFE7585B2BC68011670 + 818A5614920B18A549159B00563294A1279D2A42ED5A04410604882F8429017C + 578000A0094D6055651B4C220D202ED3B4A38DAD848669B5AF8E16A640C4E505 + 345BD7AA5EB368874C6721854B2A7212979BBC4D4C42AD6A0157A266A6A44200 + 67B6A7329F9E366DFFA3AC8525CF39D7A0B21390565DE84091A9530420A0A2A0 + 0C08614BE90056821298C90C2C77BBDBC84D3A4190CB34E999D617CA46047499 + 6D6DAE2AD62AD17D7E92B45C9BEF6EE9AA5CCE06019B97D41428141CDCE326F7 + 72BE65298FD296861D6DA59E60F524402B3BD2551E200122150368D5CA80775A + F4C4154880031AEA580B50D49F176E9D2F69B95863A890C4A504E86055B14A7F + 0E53BAAB9C2591CDEB5E022480000DA84003D24B52596E94C9FE64C02473BCDC + DF2200B6AAA8A749E130C9D14E52BB6D15686BEFA9CFDCFAB8111C9D24478D15 + C9D17AD5025C7630105A4AE13E6392C11806EF6F555862589256A48FC5EA682B + 7AE459D212C07E36A1559E337CD7304FD201B965684819806220A2D8A2327631 + 8A09CB0048469ABE9A04F48379244BB946A3AD000DEB0A893CC99BD6D2581515 + 6D82FD7C61087459C3A70E76212F2C81C1C48707754CB6B297CDECBAE9C0D7ED + 3BA3F478D90B6983C620DECB1CF184CA1B9A79FBDBE00E77CD7E70328495BB60 + E71658BAFFB56E7EB53B5FEFB617004400837ADBFBDE2788C00414C0EF7EFBFB + DF0AA000BE47F0801000003B} + end + end + inline frViewRichEditor1: TfrViewRichEditor + Left = 145 + Top = 0 + Width = 605 + Height = 338 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 1 + ReadOnly = False + ExplicitLeft = 145 + ExplicitWidth = 605 + ExplicitHeight = 338 + inherited TBXDock1: TTBXDock + Width = 605 + ExplicitWidth = 605 + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 518 + inherited TBXColorItem1: TTBXColorItem + Visible = False + end + end + end + inherited RichEdit: TcxDBRichEdit + DataBinding.DataField = 'PORTADA' + DataBinding.DataSource = dsDataTable + Style.IsFontAssigned = True + ExplicitWidth = 605 + ExplicitHeight = 312 + Height = 312 + Width = 605 + end + end + end + object pagMemoria: TTabSheet + Caption = 'Memoria' + ImageIndex = 4 + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 0 + ExplicitHeight = 0 + object Panel2: TPanel + Left = 0 + Top = 0 + Width = 145 + Height = 338 + Align = alLeft + TabOrder = 0 + ExplicitHeight = 398 + object Image3: TImage + Left = 16 + Top = 16 + Width = 115 + Height = 170 + AutoSize = True + Picture.Data = { + 0B544A76474946496D616765821E00004749463839617300AA00F70000DEE6DE + E0E8E09C9C9CCDD5CDDAE2DAB1B1B1E4ECE4CDCDCDECF1ECE2EAE2D2DDC79FBB + 9FD2D3D2EAF2EAC4CBC4F2F5F2DCE4DCF7FCF7E5EEE5606160ADADADD4D9D4C4 + D5C4D0D8D0939593D8E0D8A4AAA4CCD2CCD1D5D1E6EFE6D6DED6E2EDE2C2D0B3 + E9EEE9C1C1C1BDBDBDE4EAE4D0D0D0CAD1CAD8E1CEB2C5A1DCE2DC979B97D3DA + D3E8F0E8B5B5B5ABC4ABD6E2D6F8FAF8CACACAFBFEFBC6C6C6D4DCD4F0FAF0EC + F4ECA5BB90BCC3BC868986C8C8C8EAF0EAA6A6A6D4D6D4B0C39EC4C4C4ACB2AC + E1E6E18A8E8AB8B8B8DBE0DBDFE4DFE9F4E9D1D3D1F5F8F5D0DED0888A88D8DE + D8E0EAE0DBE4D3DFE0DFA0A5A0EBF6EBE3E7E3DEE7DAF4F7F4DCE0DCCCDBCCC5 + D3B8F6F9F6B5CBB5A3A3A3E0E5E0E6ECE6E1E9E1797D79D7E3D7A8AEA8EEF3EE + E5E7E5D7DCD7B9CAA9E1E2E1D2D7D2CBD8BFC9D6BCB7C9A78E8E8EF2FFF2F1FF + F18C8C8CEEF7EEFCFCFCFDFDFDFBFBFBFAFAFAFEFFFEF9F9F9F5F5F5F8F8F8EF + F7EFF6F6F6F3F3F3F7F7F7EFEFEFEEF8EEF1F1F1E5E5E5FDFEFDE3E3E3EEEEEE + F2F2F2EBEBEBF4F4F4E9E9E9F0F0F0E2E2E2DBDBDBE7E7E7E4E4E4EDEDEDEAEA + EAE6E6E6DDDDDDECECECE1E1E1E8E8E8F0F8F0DEDEDEE0E0E0D4D4D4F0FCF0F1 + FDF1DADADAF0FDF0DFDFDFF2FBF2F4FAF4ECEBECDCDCDCEFFBEFF2F9F2D7D7D7 + F1F9F1D8D8D8FCFEFCFAFDFAF6FBF6F5FBF5D9D9D9F1FEF1D6D7D6F8FCF8EDF8 + EDF9FDF9F2FEF2F3FAF3F7FBF7EEFAEEFBFDFBEAF3EAEBF4EBF3F9F3F1F8F1EC + F7ECEBF5EBE9F2E9F9FCF9E8F2E8E6F0E6E7F1E7EDF9EDD5D5D5EFFAEFFCFDFC + D6D6D6F5FAF5EEF9EEEAF5EAE7F0E7F0F9F0E8F3E8EDF6EDECF8ECFAFCFAECF6 + ECEFFCEFF8FDF8EAF4EADBE3DBF4FBF4FBFCFBDFE7DFEDF7EDF1FCF1F2FAF2EF + F9EFDDDEDDE4E5E4CEDAC2E9EAE9F6FAF6E7F2E7F2FDF2FDFFFDD8D9D8E3E4E3 + 8D928DB1B3B1F4F5F4F5F4F5C8CFC8F2F3F2F0F4F0BFD2BFB1B8B1F0F1F0E2E3 + E2F7FAF8EAECEAE8E9E8E6E7E6EDEEED838683D1D9D1E8EEE8D5DDD5BBCFBBEE + FBEEBFCFB2AAAAAADFE3DFF3FBF3F3F6F3FEFEFEEFF8EFFF0000FFFFFF2C0000 + 00007300AA000008FF0027B01948B0A0C18308132A5CC8B0A1C3870927A4F947 + B1A2C58B18336ADCC8B1A3C78F2035A69918B2A4C9932853661CA9915F2E2453 + A6F0B378274F9D3973EAD0B1C90F8E9B372A4BBA7192AAA8D1A348932A5DFA6D + D045961891EC98F7601F821DE72A3A8244E80E224384202DE2A7884FA099413D + D229630413264B6EE1BE8D2BB76E5CB773F3D6B5E42903368B502DEE9B87C400 + 3A2C1642EC4040710E9E42780229AA2399CFA0418EF2A4F5D803D51A356B3E83 + E65B0953255895520FAB64A95725359E2A7942C52CF6306B9652F3C5E4698D3C + 381503578C0623890B0B168EBF414231CF1D3A6F0205CA4387CE1D3C7CDC6CF6 + 282F3468D16B8C10FF10F3C10000004B123C83E00C420654093248B8C5C54006 + 6901022C799680C0870E6B30734870245D8480175854C18F1B6EA0F5CF1C79FC + 54C78470C411471E11F2A3E186FF70B89D3C6A8016A277B648B00B14BA24B0CA + 07C57041CC325C1C838901BAEC328C2C461C634932B2F062C48F46F0A2062603 + 52245C45485CB140005BA0530F0C15E581131E71D491071F70BC31481C6E4486 + C71D730C42591D786CF74F779F7927E29ADEA9B9C631B874B08B2C0068210131 + 1DE82201149518E04907A01149A046FB2C8000005500E32085D439F7251C135E + 78474D6E8449251D66A2F9DD889C6EEA2617120010807A19A46000171D182001 + 33104800412F6B08FF6A64811581F10F302E6CB1C30B149D03CC3F79C4810783 + 77D471C720C50E02C74E6E5C3887991681C8669A9FCDC61A2AA8CCE6C96C9674 + 63092AB2A566CD2FA8FC62095FDDA0326491FF1CF9CF14FBFCE385056F78110D + 3008FC0A07753F15AB93855B4E1A071C60425B91A66E8688CA2EBCEC22C12F25 + CA72CB07BAF0520C2FC9AC620431B7C8224B321D48204B071D58122BBBEEE672 + 0E0C7EBC10801FC0EC632BB003BF01661C81D0E1061D37DDA1A1C117210C9EC2 + 9530630F6ABCC5068B27C9C0C2CC30B9A5E6492BDB9ABBADC9B2B64B6B455320 + 8084324982C11845C242B7D31CC77699AC834053242D78D4760AF7A66AF4E20C + 2EDC3823712F124CFF03C52DB7F4B2EEA019C1C0CEA9F05AB4614F6FBCA16196 + 3E35CE8FE39303FDF68871B38939DD9E2CF32214BC2CE3092EB0AC720B31B00C + 3E2B471E5614C8757AE0314720783C163B1D7AF0C1C7B1AF5BDEE6D0D3D20DF7 + 34B6FCBDCA30B610F3B72DC72CF3CBC9849744B9E48D579F65F58E3B6EB9DC99 + 03FF7B88B354BC8B2D9EE0C98B2C293A638BEA5A5BE40B25F0C72FFFFCF4D76F + 3F25DAA575396BAD284C748896E89F35FA1722354CA312ADB0C4305AC1C06178 + 822F0C649F701647C10A5AF08218DC4C19BC83895DAC82179ED8450270A18B8A + C9A21706E8C02F02601E26F0E73CD2480100B8C0055E188005A24A4002D6E009 + 946D2D0E9C08A210FF8748C4221AB188803013254664895F5462159858852D96 + B68A5E30E389ABF004C66E0105092C8317B6E8D82DF406B86570D116AB504319 + F2D73ED71D21050420400AE0384739C2D18E78AC631DF348C71464007F9BB9C3 + 063AA089421AF290884CA42217698C0AAC0330B4E280E63CE5BDEE716F5335F8 + C676DC2089233080019E04652847F9C95082B294A814652A7B408EA7D0AA023C + EC00FA48808B5540A103683400C348D0014F042F61D3AA40DB86B911E154400D + C9D0A134A44100092400541D1055312490424BFE5234C224A63621699163628B + 2FD370E20353B307A835D133C2BBA49AB2B9CD6D1AF333B961A03C19882D0656 + A25CDB8A4D25C805FF4CB8B1B39DC43426686C71A20F10037D1238460778D18B + 1EA11002D200C031B8F08C345E3344FF0468DB04BA86D454A217C980022C6C31 + 8C55AC42367C59853358B08555C08217D350273635AACD77AA0116A8C1296B24 + 80CB63F054630630002F704149E1512BA33485D63BD710D25D1443A8B0508F34 + B8A10500E8491A44606668B6CAD5AE8606A949DD0E47CFE5096A50E35BD4A841 + 6C3C610DD93C30ADDEDBDC3AC3BAD1577EC616BCE0852E8861005804A917BB38 + 463A8B3AC9AFD21568C6B4841A52A3314FC84236BC99C52C06FBBD49AA41164E + 38ACC18433070E6CE0B3A00DAD68474B5AD25E836D9A4D8BBB52CBDA93ACB6B5 + B0FDC86B634B5B91FF6CADB6B85DC96D73CBDBD561C41FC00DAE70874BDCE21A + F7B8C84DAE72977B5C8CACD61F14E1D0E23A5411D462E467D48DAE83AC7B11EE + 5E37BB8A0B0A745D9991F1766212238084284A3082479C62048E98011C18C087 + 12F0036D7198541D06F1BA42CC010E5F82D0630AC1B3C9C0212737A9501DB234 + 999C70E90D7A98D44E60978742C0C111C822D322ACE386053F2B24E3E5E66F29 + C208465060129DF0050F1621890224A2058A388021860088AFF061128798C425 + 1E010A5F64621093C84420503C0944640214C1304421FAD08844FC41107D48C4 + 230A7189433C22118458C49019D1883FFC21C79710C5250AC188415CB9CB97E8 + 83200CD108449424FFC4D1B3C8783148E73E14E0CE78CEB39EF7CCE73EFBF9CE + 83A03376410267DF5EA4D02019F445805211467BC4BB1B51F47610FD5C8AF041 + 0F83E00324F080E9400C623252CA0320F4C0083D4CA7108AC0031D1441084014 + 820F74280464F800884CF357117A18F520E8100742142277778803AEF150162C + 717A1080B0892376470738B8BA1081885D1D4E42E9DD8E97108FE803930FC188 + 3F8005118270041C08D107423819128280042020C108AE983B1382D0C3220C71 + 09733F82109930C424B44D883F00421284D0C324BAF2874CF4E11108E7C39517 + D1874538C2DF8A484420FA60883F2022DB8C80B446AA5DDEF066841F71E08866 + CCB45DED7A1CBC51FF020EB59D6BEDDEA696E32376F961617E6899CF9CE51DB7 + 7958692E678AA83A0E93D350F53434B00635EE1F0D0A3A3F7CB6F40A4AEEBE4A + AF125022B46090E7E16714A49CCFDE7075A04CCF7152D77845783E768A0C4214 + 92B844230E710A4628E2108D78049B3BE1884C48C2BDA7F0F1214051023D1CDC + 11A09004BDF3DD0847D43D116ADFFB244E510724EBE1125F3944261AF1864474 + 821292100524324188BE23A204A2F8B22FE82D8A465C22C8A020C447C84E91F1 + BEA1427328BA4F642F7B38544810033BF01CDC607B45708952161A56202A64A1 + E2DF77F7737843EEAD64FBFF6A7A60C93F30EC0766A1FFFE7760ABC779CC754E + 53D6FFC3F50C2258FFB3DF50870569C80D816010EFF9016B30F1830EFF65D082 + DEE00629D19FF7AF577FE3F870FF37C43EF971001D3EC17BE1871375807F0DA2 + 7F70C00F81B06007887F1BA77D35F70F7AC00092D009A2000A8D60777FD0085A + 76088740098F200987E0159D500892A0083D667A99700755760A97D00980D009 + 24780A69C76486B0088D500887700986D00797700A8BF0070C508189100CA000 + 0A7D100C9770090C700AA030828EE0838840837AE00B9DD008A7B081A0500811 + 485E31777FBC677BF4477F3A337C0C528669D82003786079907EFAA77E0AD838 + 3F9186FDB77EE1B7867958870BA27E0B388072E86813286283D868D9F30F82C8 + 7D69E17DE3450790FF806B89D0707DE008E556268AB88812D873FF8007D8D607 + 935071FAF6088BB0086C748928C188A60850A8988ADBB48AAC484CAEF88A6D13 + 8BDAA57183365D64738BADC33A92A68A995876FFD00999100382700AA2100399 + 700931E00825F00F8DC00025A08307000925D008345865815002A0C0004E3603 + 80700062168383700878500207C000811003A2F0083B66088790088C4057ABF8 + 078990059D000A0720008870083CF00714900833400114D008253003A0500023 + A0033FF0033340073A500222C00088100307C003A030030C9907220007053004 + F0350323100318A903EB1503F2F88BAD47118DC325BC1707F4C725F157218068 + 7B75C886CDF27AF4FF4793F2F7870F46800B887F89E88B603881BD9868DFA512 + 6C2376D0B28AC83607BC06213A91134B8707792008D6012115126139A10711F2 + 188E21257560217AE094569207CA1296B16725846019D3E60871107B0213086F + 591DF0F7967300080473070DF87E6199251CB18A7A7008E7657A7DC000A5D709 + 70000A7A708159980999C007832909806008A7B098BEC08E87F007A080088B40 + 8377678C93F007A2B0085C368293608D8F900788B0856AD7099080085E060A3D + 28097CD00799D0839DA0768F197782D0087AF09728F97DD545398B1669A8855D + 82189416A1252AD96821D721DCA57CCDB911CA598886A689E7373949B7219473 + 7EAFD713D029740BFFD8138FF31382365D4F677E146474DD295D20B738DB898B + 9A48889AF870DE168989509B178708885008AED608B699088640077F50647FC0 + 08864089997925DC069B35466E78C008E4F607ECD60777200825C608892016B9 + D30707AA6D88C06E4A666EEDC60F84400892108970F0087EB7A11AFA077C805A + 4C59088ED06A7AF06A8C100880B0A374403B8B906E84E00875E0083BCA078A20 + 088010167C40259726083973695C190890000998366A61826A80106F99460780 + A0088510A43B9A6B833089F29669A6060867010877F06BD211088BA0082A078C + F429A7D7A594695194268116787A94F31967C07807E3494157C70FE5B7387D79 + 9E42C7741EB22185FF4AA8BB878B19549E174468C1395E9E6808FF9607535A70 + 93C0071D4807882009A27A0888609B1407081AFA088C300993706586908CD8D6 + 0893000975206F9DE06D93E0088B300917A86D8FA0088AF0070E07A058260951 + 866A8F9009BC2A7817C7A5A479071EC194D371077C1007C84260BC0619CB026D + D0066BAA762974300879801D5639087AA007E14A3B3D83083D5A3BC66216C782 + 3B68036B9B560780E018BBF6967CD0ADB4731D36E1181F069C43D9A7D465A7B2 + D811AB08217980AE80007407AB12AB6808A2D00930780A99508A0FFB66959AB1 + 40438BAF2807201BB2220BB21A3BB0746A8A72E007A3200311500A9BF0B2B460 + 0A2F6B0A11C00A06FF2B9C269B928A28071A2203AA1001D5600776D006445BB4 + 46DB0676B009369B7D398BB33697B2AC1001AE100942DB067BB007FD90B55ABB + B5FDB0076DD00FAAA094AB480850E6888290088B00097D800790F00F82106E7D + A0339080136B59668810A18970B683F083A00A084BBA8974A0A18AF0087C3021 + 88A0086576A46180004B601F4175B55C1BB95CDB0691A00A7280B01BFB0F3F98 + 052418032AD099592008148007943003EC25026F30903140018640010C300407 + 80073170081860BA2320020570008230046F70BB7870007FD0023360083A5000 + C12000DA30025FF00419A0010E80012B8003923BBD5BDB06A1300A98DBB4E335 + 087860083A0A0889FF300885F0077AF008D8816B5CEA0693F0B690F0704E8607 + 493A087F106D5C8A086E2A087050086FDA158010AE8280088E602ACC741F2B60 + 002B90001D40BD0ADC0F7610011AE7B1A9C50F7EF00AA130B45FBBC018BCB576 + F0090F9CB973C007D079604107601A8207DA632142179E33D19E41A77542777E + D1F000AE40B41EF3B5BC800CC5D00612800CFD50B45A4BB4597BC13ADCC335DC + 0F0D300E92039D04DB461368088B5965A040098E60798A8063A0700A7B370763 + 26091BB87689000A89E0068690827FF00894700A88200A856008ABAA08929009 + A2700D62E00003E00117200F17300010600226F00C34300019300003B001B270 + 0126B0022B000007FF3C001770C7805C0E2B90C70460006A7B0882F007C68A29 + 3A3BA73AEB7F398160CDC2256FF9AFE5F75F6E8933D4875FB95725C817CA0038 + 075360030D800BB220591E230B36800B0D6003B3800BB3E0310D800C00E0CBB5 + 2C31C5200DBF2C590D70CBB260073000290C62218E06C18A76B32121C1A5D0C3 + 19BCCD0ACCC102CBC9387B0737FA6A347A078EE094397A168E701D8570198A00 + 08E7EB5FB33329B486AE7C90071746950F4002D2204B09404D12C005FF6C0023 + 032AB3F00C06300B0630C9CF104D3AFC543A6400C5201F290401BC200DE7D0C1 + DA4B11A4160CDE067753BC6688109A7C406E8B8070BDE98EDC36096C9BA598CC + AA3FAA08812009EFFF10058A0CC8CC440F1B9001047001CF201F1910D4D26002 + 06F0D317B00282BC0201200FEE71D419400319B002F23000E50000414006D90B + CE88C611A5C85D58A711721001D5ABB53BFCC341ACC0C870C13D8C0B921B09A4 + 10AD994B9E2D8C88953313DB65D76CC368DCE507628DB592FBB56A2DB97630B9 + DAACB583ADCD76F00A779D735A4D1185C09991486E889B0789A00782A03B8200 + AC7D20D3642B0879E0A54E3C088BE09F6E90D982E00E3B202AB8800B09302AE7 + 0101140500100000D250435C304300A02A1ED001CFE02A10150019D00114250D + 1EF00C0130C90FA00E5FEA6BC7B67D7EAAB36E6A085056C6AD7A6334AA6E88C0 + 081727DD7F40088CFF10B889E081962D167320A089900FF6F10CCF0000F4400F + EC4D001900011E4000F4B002F07D0BF2ED1E0170DB450DDFCF104344A02B5A50 + 015AA00554E004D8400769EB64F6EB088AE0DCD779B21FA1947A4A116E900B91 + F0C3B7C0C3DCECC3A1E00A11400A32E0071B02B27020B225DBD816BE38B18788 + 4E0114EF973DE8F920D49A256FF90F72A00CB510D8197CB5401C0AA5C00AC040 + E2B398B953080A97100C6E4C0943D807A1C7078210780C000A5F160C793BC668 + 979B93200AA2A00832B0E3DC1CC4941B09A6400A247EB9B098B990C23307682C + FEA77BB283211862802E8936A48C213CB3093CBEC05E6B07A630E4D60CB1994B + 4CFC100187BDCD48FFFB09618BE61A05C1662207B110097B2EB97D4E0B361BE8 + 9BE1E8DBE107339CC15F1B0A11E0072F37E840C30FA570E8D40BC4A540E4A3BE + D188983FDCA911DD69E1D7F50A5D9BD6918BEB485B0BB9B08B18C1465D8D7D16 + AE9C95831129EB0FAC1EE13ABB845BC1078E00AA8370A20ED76A7880A17CB008 + E60A6EFD9BB661110501200DF1DD0FEA510CB24D03060001101002F0F0078AC0 + 15E7EAD9D37D0A89F079161708D3C86AB67900B9FA648FD00886503BCF4EA4FC + F9A38EC00FA4F00AA5600AAEE00F9F200C367BB995F60FC9E608A8C60864266F + AFB9667D90A493A09A492AA57ECB0886F707EBED011E60EE0100001210511E90 + 0044E004593A098BFFC099E966BFAFFA07C100098F200AEEB808944008EDAEA1 + B22A9A87F0AA7217088850957C600888800DEB1005A1C0C045EB0F406C0A3311 + F11FE192137EEA635DBDA1400A982E3DD5E507ACB009190EC45BEB0F411C09D8 + 1BF1ED19A81504F7EED921A490D693DEC36ECDB3189474404767B6B721D00174 + 7DDFB36060035F3B0B92ABF6599BD84CAC89AC9608851003675C8D9770073170 + 0AE7B58D93000AB9D9097480078320088F9D02ED6D001E304310B0025C400FCF + 400451B0086B1A052140054510045A000EF1E6768CF0038D00BEBE20021B187A + A28008BEC0E5A439038E89C505070E1C400338E00004500E783C00BC90F63FFC + 0A8D0F8C5C3A6AC1FFE0A14516B794B0D9E0DBDD795B62171A6B7A4008B70D01 + 2C900029D4DACE4402DA406BED800001D000CF1454195004EA00108AF82C9AC4 + 480FA147A7FE2842B4E811A43E841205D2F3E78F4347DA9C2420106045066919 + 00702190A0DFC97EFE50F653F52F4D9A7F3165FEF337F31FBF373671DAD4C92F + 263F552B85B6F9344A0E3F52B5DAEC19DAA6962A9F3CA54A95E3479552A15951 + FADBB3A74D283F2E61F2AC39D5EC593FB4DA68FD1A4BCEBF58A1D66AEDB79655 + D4B353FD98B233376BD73681DBD8F167C74E24A862A596CDDB38A61C6576B432 + 55F596DF36C9744F120DEB5867AEBA6C07F7AB456B53A966FE22348B15F5E562 + CF8EF9BD9A6CA754FFD45891986A3E6927D7DBD8379545F27BD26B9B489B7291 + F2C3CF393F7FCE812B261B3C2F3F5A9957B6D9D4F95F50DE28F798C2EBD9CFA7 + E2750F9B6A0DDBE6EBEAD6CD8EAAB51BA59D4F32666ED2CEBB0DADF2F23A6A9B + E2BC8AA41419F899CE26C664828F41F9CCA26DA848DC9AC995F0C4033036A084 + F2EA935C028C6FA607676A304299E428A5BFBA220890BF0CFBB16343CF46210E + A5C13631AAB113A98310459D4CB1AFAE4FBC9389AF186714D12CF036B34398E6 + 9E3BABC71265EA11453F3014CF8E08168CC994184FDA6449AA84F1EB493F72D9 + 64135364F0D2449EAA8CE9CA086DDCAE3BA93609B39F311D9363945098F20ACA + 08EA0AACA837E78CFF73AC1F81948914EDF640542A2D335452B615FBF1AA3B52 + 42DB6C9344695AD43D47632AF4BE6DC8443243498D348B9F5A24FB6F147EC014 + AAC2A9A86414CE52FF91E354944831AB993D43D1AF313F02DDA316A3F8D15328 + 3B5A22D5C15DADECD5D74D769394CC7F3A0D3312611B6305A5CA6E7A76A56813 + D5755A20E5F864256542ED76CF7E72698C9F526474A5337E5C61718F2ED9F591 + D752DDDD8CC6A9720BB38D72D1AA662D69CDD5AA1475471DD151834F8A20AF2C + 87E4ADCFB3F88186B451647296C57EA05972DD8B81F42694932229F92C1551A6 + 0B2C8EF569E315BCF0D50AE79607B6B6D7973555B9B1096394594068704DB149 + A18011584E9AFCB1FFFA6AACB3D67A6BAEBBF6FA6BB0C3E6DAE26B7992434B65 + 6483394961E4F5D51461021C05BDAC4CF18CEAB2E5D0339499AF73C563BA5AA5 + B91456BCF419DA221DC3FB5A39A0B9B4313972B199AE70A792E315A979EA74C8 + 3D7C733BA6C57B9503CCBB3C8B45D330793E8B15577FA27B3B57B8A5B66CAA4A + 59DABC8763FCAAF5999CA36A5C0FFB21E5F3D00B56E5763F0B059CAE80E53B2F + 3D3E6517DA51DF7FE267947D834B167AADF0E3B7FA9B681E97F37A652F3EB626 + 4E00E10614501803847BD0F0211B1F3C9BCD8EE53DB4A374054E18E3867BDC00 + 0456F0011AC660053304A92F2BD983B1E4753ECF48E1046700810F4E70023364 + C30A2750C0186243FF9FC90D2576FFE81F08E8D7040564C3841354004FFC00A3 + EDD0A26F64A3DD4CE4F039AAAC2A3C7B00178AFEF43A1CD18277D3AB219064A0 + 1BDDE12942FC88051051678AE6D0B088D4D3216F3AD7BC0891E24638E28E8820 + 3845C8B10289AC4A1C8A90E28AC088A71FC2481089AA054633662A75D2A3991F + 68B314E37C25027E00CE17E1C831276A06399533E32B42B140279982143EF1E3 + 1FCD220731722F2B6DC81EF546510AA5CC25309188C0281AE9C8A9E00B7FAC8A + 161D1D23834D44C2505EB14328D8F046505AA72A68D45D2D4224BAEB91E215D5 + E84B609400CB5806470EC008E46490533AC6F1C30FA460052954F1CA60968A1F + A0B18F3162668C48FF182314C668032F3E110B9399524037E4C727A73284028C + E00092D0410C78400149FCC317824004F584B14013A84005E9D08000C2F1040C + 7CE10B40C001070A2000431460080260280F664081188C40051132A7540E5100 + 0A9420064A98810E04808F42B4600605B884A3FC90AF3638400542D0800A9E90 + 03210801084F8887061C00D0446060083C10C42918AA84110C211C1405A675E2 + C0074838020F8A28441D0CD1073AE8210F845884345F21196C66139BA108C500 + 8A0080010CC004E2B80603245102DA55349A52F119F4243081814EE0095D8847 + 17C491862CC0A16C6A5D2B4FF851A8F434A0010648802C0C908172B0A00CE6A8 + E75E8BDA57EBF0A367195BB4225194C1C76BF115B23691C364F1181EE4EC519C + 67D1EC667BD70CB948723B078AA2A34A6B5A93C5C214C4C91F8EECB089458E56 + 8AB0A55E2EB09221E4B047B7249A001B8C7B5CE42657B9CB656E739DFBDCE52A + 2107D3A56E75AD3B5D2540B7B9130808003B} + end + end + inline frViewRichEditor2: TfrViewRichEditor + Left = 145 + Top = 0 + Width = 605 + Height = 338 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 1 + ReadOnly = False + ExplicitLeft = 145 + ExplicitWidth = 605 + ExplicitHeight = 338 + inherited TBXDock1: TTBXDock + Width = 605 + ExplicitWidth = 605 + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 518 + inherited TBXColorItem1: TTBXColorItem + Visible = False + end + end + end + inherited RichEdit: TcxDBRichEdit + DataBinding.DataField = 'MEMORIA' + DataBinding.DataSource = dsDataTable + Style.IsFontAssigned = True + ExplicitWidth = 605 + ExplicitHeight = 312 + Height = 312 + Width = 605 + end + end + end + object pagInicidencias: TTabSheet + Caption = 'Incidencias' + ImageIndex = 2 + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 0 + ExplicitHeight = 0 + inline frViewIncidenciasCli: TfrViewIncidencias + Left = 0 + Top = 0 + Width = 750 + Height = 338 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 750 + ExplicitHeight = 338 + inherited pnlSup: TPanel + Width = 750 + ExplicitWidth = 750 + inherited eIncidenciaActiva: TcxDBCheckBox + ExplicitHeight = 21 + end + end + inherited GroupBox1: TGroupBox + Width = 750 + Height = 310 + ExplicitWidth = 750 + ExplicitHeight = 310 + inherited eIncidencias: TcxDBMemo + ExplicitWidth = 727 + ExplicitHeight = 277 + Height = 277 + Width = 727 + end + end + end + end + object pagDocumentos: TTabSheet + Caption = 'Documentos' + ImageIndex = 5 + inline frViewDocumentosPresupuestoCliente1: TfrViewDocumentosPresupuestoCliente + Left = 0 + Top = 0 + Width = 750 + Height = 338 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 750 + ExplicitHeight = 338 + inherited TBXDock: TTBXDock + Width = 750 + ExplicitWidth = 750 + end + inherited ListView1: TListView + Width = 750 + Height = 315 + ExplicitWidth = 750 + ExplicitHeight = 375 + end + end + end + end + inherited StatusBar: TJvStatusBar + Top = 573 + Width = 764 + Panels = < + item + Width = 200 + end> + ExplicitTop = 573 + ExplicitWidth = 764 + end + inline frViewTotalesPresupuesto1: TfrViewTotalesPresupuesto [4] + Left = 0 + Top = 448 + Width = 764 + Height = 125 + Align = alBottom + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 4 + ReadOnly = False + ExplicitTop = 448 + ExplicitWidth = 764 + ExplicitHeight = 125 + inherited dxLayoutControl1: TdxLayoutControl + Width = 764 + Height = 125 + AutoContentSizes = [acsWidth] + ExplicitWidth = 764 + ExplicitHeight = 125 + inherited Bevel3: TBevel + Left = 358 + Top = 80 + Height = 75 + ExplicitLeft = 358 + ExplicitTop = 80 + ExplicitHeight = 75 + end + inherited Bevel4: TBevel + Left = 470 + Top = 122 + Width = 192 + ExplicitLeft = 470 + ExplicitTop = 122 + ExplicitWidth = 192 + end + inherited Bevel1: TBevel + Left = 470 + Top = 238 + Width = 73 + ExplicitLeft = 470 + ExplicitTop = 238 + ExplicitWidth = 73 + end + inherited Bevel2: TBevel + Left = 130 + Top = 240 + Width = 158 + ExplicitLeft = 130 + ExplicitTop = 240 + ExplicitWidth = 158 + end + inherited ImporteDto: TcxDBCurrencyEdit + Left = 201 + Top = 107 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 201 + ExplicitTop = 107 + ExplicitWidth = 87 + Width = 87 + end + inherited ImporteIVA: TcxDBCurrencyEdit + Left = 541 + Top = 157 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 541 + ExplicitTop = 157 + ExplicitWidth = 20 + Width = 20 + end + inherited ImporteTotal: TcxDBCurrencyEdit + Left = 471 + Top = 211 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 471 + ExplicitTop = 211 + ExplicitWidth = 90 + Width = 90 + end + inherited edtDescuento: TcxDBSpinEdit + Left = 130 + Top = 107 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 130 + ExplicitTop = 107 + end + inherited edtIVA: TcxDBSpinEdit + Left = 470 + Top = 157 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 470 + ExplicitTop = 157 + end + inherited ImporteBase: TcxDBCurrencyEdit + Left = 470 + Top = 80 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 470 + ExplicitTop = 80 + ExplicitWidth = 91 + Width = 91 + end + inherited edtRE: TcxDBSpinEdit + Left = 470 + Top = 184 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 470 + ExplicitTop = 184 + end + inherited ImporteRE: TcxDBCurrencyEdit + Left = 541 + Top = 184 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 541 + ExplicitTop = 184 + ExplicitWidth = 20 + Width = 20 + end + inherited eImporteNeto: TcxDBCurrencyEdit + Left = 130 + Top = 80 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 130 + ExplicitTop = 80 + ExplicitWidth = 158 + Width = 158 + end + inherited ePorte: TcxDBCurrencyEdit + Left = 130 + Top = 134 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 130 + ExplicitTop = 134 + ExplicitWidth = 158 + Width = 158 + end + inherited eIVA: TcxDBLookupComboBox + Left = 130 + Top = 161 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 130 + ExplicitTop = 161 + ExplicitWidth = 20 + Width = 20 + end + inherited bTiposIVA: TButton + Left = 210 + Top = 161 + ExplicitLeft = 210 + ExplicitTop = 161 + end + inherited cbRecargoEquivalencia: TcxDBCheckBox + Left = 130 + Top = 188 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 130 + ExplicitTop = 188 + ExplicitWidth = 158 + Width = 158 + end + inherited edtRetencion: TcxDBSpinEdit + Left = 470 + Top = 258 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 470 + ExplicitTop = 258 + end + inherited edtImporteRetencion: TcxDBCurrencyEdit + Left = 541 + Top = 258 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 541 + ExplicitTop = 258 + ExplicitWidth = 20 + Width = 20 + end + inherited edtFechaRetencion: TcxDBDateEdit + Left = 130 + Top = 260 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 130 + ExplicitTop = 260 + ExplicitWidth = 158 + Width = 158 + end + inherited cbBonificacion: TcxCheckBox + Left = 21 + Top = 29 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 21 + ExplicitTop = 29 + ExplicitWidth = 277 + ExplicitHeight = 0 + Width = 277 + end + inherited eDescripcionBonificacion: TcxDBTextEdit + Left = 367 + Top = 29 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 367 + ExplicitTop = 29 + ExplicitWidth = 325 + Width = 325 + end + inherited eImporteBonificacion: TcxDBCurrencyEdit + Left = 449 + Top = 29 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 449 + ExplicitTop = 29 + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Group1: TdxLayoutGroup + AlignVert = avBottom + LookAndFeel = dxLayoutOfficeLookAndFeel1 + inherited dxLayoutControl1Group2: TdxLayoutGroup + inherited dxLayoutControl1Item19: TdxLayoutItem + Visible = False + end + end + inherited dxLayoutControl1Group5: TdxLayoutGroup + inherited dxLayoutControl1Item13: TdxLayoutItem + Visible = False + end + end + end + inherited dxLayoutControl1Group13: TdxLayoutGroup + LookAndFeel = dxLayoutOfficeLookAndFeel1 + end + end + end + end + inherited EditorActionList: TActionList [5] + object actGenerarCertificado: TAction + Category = 'Acciones' + Caption = 'Generar certificado' + Hint = 'Generar certificado de trabajos' + ImageIndex = 21 + OnExecute = actGenerarCertificadoExecute + OnUpdate = actGenerarCertificadoUpdate + end + object actEnviarPorEMail: TAction + Category = 'Acciones' + Caption = 'Enviar por e-mail...' + Hint = 'Enviar presupuesto por e-mail' + ImageIndex = 22 + OnExecute = actEnviarPorEMailExecute + OnUpdate = actEnviarPorEMailUpdate + end + end + inherited SmallImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B3A00000B3A01647F570D0000015D4944415478DA + 63FCFFFF3F030830323232C0C0CEB58DCA2F6E6CBDF3FEF129B818C30F061490 + 3FFF3F58032336032E9C58FD9F8B47904155DB192EF6FFD72B867F9F2F31FCB9 + E3CA3063061E0380B6DBB373F01CB076CD66606165C7AAB96001923E6403809A + 9979F925FEC8299B32482B18E2D40C16C7614032D08039164EA97017810CF875 + 5E1CAC196F18EC5AD7C40F74FA073DB36006411179B8E6FF3F5F32FCBEA687A2 + 196B18000D681797D6AAD06008852B64D5BA0434E4251833000DFBFBA2087718 + 2CEF76FFFFE1E119865F5FDF81F9B993706BC61906D0589056D7D07F2223CE8D + 53332103DAC5C4A52B749438706AC6170BECACAC6C3FF4547918F8397FE3D48C + 3F1A79F9E7982A7F66F8FBBA16A7669C061CDB35E1BF9CAA1D83C84B23BC9AB1 + 1A008C466BA0F38F5888D632CC9AF907AF66AC065C383AF73FC7B7150C3B97ED + 21A819AB0137CE2CFBBF776E2643CE8C4F0435231B00004A4C11F0D3652A8300 + 00000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001964944415478DA + 63FCFFFF3F03232323033A58BCE9F87F647EAC9F258622B05E6C068034873B8A + 80D92019C62F8F194C1356339CDF399D91A0014B361FFB1FE6208AA299E1F323 + 306D52F90CC5100C03566E3DFC3FD04E02A2F9F727064690462066006A66FC02 + 64FFFAC8603451096E088A01CB361FFDFF8F819981183077D11A86FDAB7B18E1 + 062CDD7CE27F14573FC3B2EF450CD13E86181ABE7DFFCDF0F5DB6F866FDFFE30 + 1CB97897218AB38FC1B85B98E1DC8E698C600396000D8861696058FAB7116CC0 + 94C5FBB0DAEC6CAECF70EED6238668E67AB057500CF8F0E10383A0A0208A0B90 + 6D06B1BF01D9379E3C67387AFE09C389A37BD15CE06B01B47907434EAC13C3EF + 3F7F19662E3F8862BB898606C3EFDFFF1896EF3DCFA0A5C0CD306FE9265403FC + 9D20362F5CB71F4CE7C47AA01890D5BC164C7716F980D56018606BAC0656B079 + EF2986F82047AC6150DEB785A13CD911AC06C300234D05867DC72F30B8D818E1 + 8DC2494B0E63F702281075D455884A07576EDEC134404A5480E1DAED07441900 + 021806F44D5D44B46618801B400900007F4518F05E90AAF20000000049454E44 + AE426082} + Name = 'PngImage22' + Background = clWindow + end> + Top = 72 + Bitmap = {} + end + inherited LargeImages: TPngImageList [7] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000001B94944415478DA + 63FCFFFF3F032D01E38058C0C8C888C2DFB9B651F9C58DAD77DE3F3E85AAF007 + 7643F3E7FF6724C9828B27D7FCE7E0E46350D3754511FFFFEB15C3BFCF9718FE + 7FB90CC40F18FE7D99C43063068916005D6FCEC2CA71C2CE239F8185959DA0E1 + 050B50CD2468C1C903F3FF4B486B32C8A9986375FDBF179B510C07CB116B01D0 + F5C15C3C426BAC5DB3512CC56738D116000D67061AFE4755DB99411CE803620D + 27C5827C0161B90966F6091841F3E7762BDC7064407410ED5AD7C40F8CD80FC6 + D6D10CFC42D22886FFFFF992E1EFA339600B9001497100B4A05B4246BB44CF2C + 18C3F0FFBF209801C4474B3D4407D1F26EF7FF1F1E9E61F8F5F51D5C2C77D225 + A20C272915415392B4BA9ACC13194939A20C27C7826E7131C1126D6521A20C27 + C902A0E1DC2C2CCC5F0CD5051878397E116538A916E40BF0734F3052FCCEF0FF + FB6BA20C27DA027046E364FFA322C5C420CCF28468C349B1C01F68C10633B967 + C0A021DE70A22D38B9A7E7BF28DF1F06A97F1524194E9405C08C660C8CDC3316 + 624D0CB367FE22C970A22CB87864F27FB66F5B18762DDF45B2E1445970E3F4F4 + FF7BE75530E4CCF844B2E14459404D40730B006B5E9AE0A24640FE0000000049 + 454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002434944415478DA + B593DB6B13411C85CFA8AF0A11C5BED882977AA11A8A86A64AB5DA68ABB4DA17 + 9B071B94824F5510FF9022D8B4A2226AEA5DA434822951BC556D55225544E905 + A448895048369562B6D9ACFB1BC9CA38BBEB46D203CB4C7667BEEF4CD865BAAE + 6321C348C018B35D101978EDD82074A8D67633673B09081EDCB3426CA42A40D6 + B88C91E6BE536FF07EB097152D7003879A416FA21297AF0F584A6C056EE1BF47 + 053D63014B89A540826B3F0D5086C30B406859735E18C3D31D924412B8827368 + 4680334348E99E392D480401C19DDE26B75114059722FD5C620AFAA2C3FAFED9 + E3882FBB8AA3CD358E80F9790D2ABF727F8D1A129FBF625FE618EE6867F94912 + B11E662BE88EC45CB76ED8518DAC9AC3A7C96FF682743A0D8FC7637B02A7E604 + CF1ABF27A692285FBE1213E33F70EEE67951D0DEE247B86F109DED8D459FC0E7 + DD04D5904C2567904AA5103C5C8FC6B633A2A0ADC9C7175FB81547CBAE1A5454 + 7890CFEBBCE1F7E4AC25383537C79B131C2AC3E8E4184E869A7839E92F6ADD5B + 6D6EBC72FF0997AC2A5BCAE1D1E7239602EFDA4A684BF2589C5BC4E12782017E + FFE2ED47B2E060DD1661F38DE80B2E2138B5B20A352509C143ADBBCDFB91FE67 + B220E0DF2C01EEC55E99ADEC426D8F1CD829DCBBFBF0A52CA8DBB64158147D3C + 22B4720A356E6EF8F3F63D30F64A025FD51A73417C2821B5FA57A875BDDFCBE7 + 4F87476541D5FAD5FCE1D0DB8F429B6242CDB76FDD88771FBEC88275E565FC41 + A1C5FF86DA532CBF64B297228E272855244157F85AC9E085988285CC2F0A951A + EF05170AF90000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end> + Left = 435 + Top = 72 + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [8] + end + inherited dsDataTable: TDADataSource [10] + end + inherited StatusBarImages: TPngImageList + Left = 16 + Top = 408 + end + object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList + Left = 336 + Top = 160 + object dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel + GroupOptions.CaptionOptions.Font.Charset = DEFAULT_CHARSET + GroupOptions.CaptionOptions.Font.Color = clWindowText + GroupOptions.CaptionOptions.Font.Height = -11 + GroupOptions.CaptionOptions.Font.Name = 'Tahoma' + GroupOptions.CaptionOptions.Font.Style = [fsBold] + GroupOptions.CaptionOptions.TextColor = clHighlight + GroupOptions.CaptionOptions.UseDefaultFont = False + end + end +end diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.pas b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.pas new file mode 100644 index 0000000..9cd5093 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.pas @@ -0,0 +1,462 @@ +unit uEditorPresupuestoCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + uEditorDBItem, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, + TB2Toolbar, ExtCtrls, JvExControls, JvNavigationPane, + uCustomView, uViewBase, JvComponentBase, + StdCtrls, pngimage, AppEvnts, cxControls, cxContainer, cxEdit, cxTextEdit, cxMemo, cxDBEdit, + uViewIncidencias, + uPresupuestosClienteController, + uViewDetallesBase, + dxLayoutLookAndFeels, JvExComCtrls, JvStatusBar, uViewTotales, + uIEditorPresupuestoCliente, uBizPresupuestosCliente, uViewPresupuestoCliente, + uViewDetallesDTO, uViewDetallesArticulos, uViewDetallesPresupuestoCliente, + uDAInterfaces, cxRichEdit, cxDBRichEdit, JvGIF, uViewRichEditor, cxPC, + uViewDetallesArticulosParaVenta, uViewDocumentos, + uViewDocumentosPresupuestoCliente, uViewDatosYSeleccionClientePresupuesto, + cxLabel, uViewTotalesPresupuesto; + +type + TfEditorPresupuestoCliente = class(TfEditorDBItem, IEditorPresupuestoCliente) + pagContenido: TTabSheet; + pagInicidencias: TTabSheet; + frViewIncidenciasCli: TfrViewIncidencias; + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + pagPortada: TTabSheet; + pagMemoria: TTabSheet; + Panel1: TPanel; + Image2: TImage; + Panel2: TPanel; + Image3: TImage; + frViewRichEditor1: TfrViewRichEditor; + frViewRichEditor2: TfrViewRichEditor; + frViewDetallesPresupuestoCliente1: TfrViewDetallesPresupuestoCliente; + actGenerarCertificado: TAction; + TBXSubmenuItem2: TTBXSubmenuItem; + TBXItem7: TTBXItem; + TBXSeparatorItem6: TTBXSeparatorItem; + TBXItem33: TTBXItem; + actEnviarPorEMail: TAction; + TBXItem34: TTBXItem; + TBXItem35: TTBXItem; + pagDocumentos: TTabSheet; + frViewDocumentosPresupuestoCliente1: TfrViewDocumentosPresupuestoCliente; + frViewTotalesPresupuesto1: TfrViewTotalesPresupuesto; + + procedure FormShow(Sender: TObject); + procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); + procedure frViewTotales1ePortePropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure actGenerarCertificadoExecute(Sender: TObject); + procedure actGenerarCertificadoUpdate(Sender: TObject); + procedure pgPaginasChanging(Sender: TObject; var AllowChange: Boolean); + procedure actEnviarPorEMailExecute(Sender: TObject); + procedure actEnviarPorEMailUpdate(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + private + procedure RecalcularPortePorUnidad; + + protected + FPresupuesto: IBizPresupuestoCliente; + FViewPresupuesto: IViewPresupuestoCliente; + FViewClientePresupuesto :IViewDatosYSeleccionClientePresupuesto; + FController : IPresupuestosClienteController; + + function GetController : IPresupuestosClienteController; + procedure SetController (const Value : IPresupuestosClienteController); virtual; + + function GetPresupuesto: IBizPresupuestoCliente; + procedure SetPresupuesto(const Value: IBizPresupuestoCliente); virtual; + + function GetViewPresupuesto: IViewPresupuestoCliente; + procedure SetViewPresupuesto(const Value: IViewPresupuestoCliente); + + procedure PrevisualizarInterno; override; + procedure ImprimirInterno; override; + procedure GuardarInterno; override; + procedure EliminarInterno; override; + + property ViewPresupuesto: IViewPresupuestoCliente read GetViewPresupuesto write SetViewPresupuesto; + + procedure OnClienteChanged(Sender : TObject); + + //Si queremos crear otra vista para el editor heredado solo tendriamos que + //sobreescribir este metodo + procedure AsignarVista; virtual; + + procedure PonerTitulos(const ATitulo: string = ''); override; + function GetModified: Boolean; override; + procedure SetModified(const Value : Boolean); override; + function PuedoImprimir: Boolean; override; + function PuedoEnviar: Boolean; virtual; + + public + property Controller : IPresupuestosClienteController read GetController write SetController; + property Presupuesto: IBizPresupuestoCliente read GetPresupuesto write SetPresupuesto; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +uses + uViewDatosYSeleccionCliente, uDataModuleUsuarios, uClientesController, + uBizDireccionesContacto, uDialogUtils, uFactuGES_App, uDataTableUtils, + uDialogOpcionesImpresionPresupuestosCliente; + +{$R *.dfm} + +{ TfEditorPresupuestoCliente } + +{ +**************************** TfEditorPresupuestoCliente **************************** +} +procedure TfEditorPresupuestoCliente.actEliminarUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := (FPresupuesto.SITUACION = SITUACION_PRESUPUESTO_PENDIENTE); +end; + +procedure TfEditorPresupuestoCliente.actEnviarPorEMailExecute(Sender: TObject); +begin + if actEnviarPorEMail.Enabled then + begin + if Modified then + begin + if (ShowConfirmMessage('Se han producido cambios', 'Se han producido cambios y no se puede enviar por email hasta que no se guarden.' + #10#13 + + 'Desea guardarlos ahora?') = IDYES) then + begin + GuardarInterno; + FController.EnviarPresupuestoPorEMail(Presupuesto); + end + else + ShowInfoMessage('Recuerde guardar los cambios si quiere enviar por email.'); + end + else + FController.EnviarPresupuestoPorEMail(Presupuesto); + end; +end; + +procedure TfEditorPresupuestoCliente.actEnviarPorEMailUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos and PuedoEnviar; +end; + +procedure TfEditorPresupuestoCliente.actGenerarCertificadoExecute( + Sender: TObject); +begin + if FController.GenerarCertificados(Presupuesto, False) then + ShowInfoMessage('Generar certificado de trabajo', 'Se ha generado el certificado de trabajos.') +end; + + +procedure TfEditorPresupuestoCliente.actGenerarCertificadoUpdate( + Sender: TObject); +begin + (Sender as TAction).Enabled := HayDatos and + (FPresupuesto.SITUACION = SITUACION_PRESUPUESTO_ACEPTADO); +end; + +procedure TfEditorPresupuestoCliente.AsignarVista; +var + AViewPresupuestoCliente: TfrViewPresupuestoCliente; + +begin + AViewPresupuestoCliente := TfrViewPresupuestoCliente.create(Self); + with AViewPresupuestoCliente do + begin + Parent := pagGeneral; + Align := alClient; + dxLayoutControl1.LookAndFeel := dxLayoutOfficeLookAndFeel1; + end; + ViewPresupuesto := AViewPresupuestoCliente; +end; + +constructor TfEditorPresupuestoCliente.Create(AOwner: TComponent); +begin + inherited; + pgPaginas.ActivePageIndex := 0; + AsignarVista; +end; + +procedure TfEditorPresupuestoCliente.CustomEditorClose(Sender: TObject; + var Action: TCloseAction); +begin + inherited; + //GESTION_DOCUMENTOS + //Este mtodo eliminar el directorio temporal si se ha creado + frViewDocumentosPresupuestoCliente1.actEliminarTodo.Execute; + + FViewPresupuesto := NIL; + FViewClientePresupuesto := NIL; + FPresupuesto := NIL; +end; + +destructor TfEditorPresupuestoCliente.Destroy; +begin + // Utilizar mejor OnClose; + inherited; +end; + +procedure TfEditorPresupuestoCliente.EliminarInterno; +begin + if (ShowConfirmMessage('Desea borrar este presupuesto de cliente?', '') = IDYES) then + begin + FController.Eliminar(FPresupuesto); + inherited + end +end; + +procedure TfEditorPresupuestoCliente.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(FViewPresupuesto) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Presupuesto) then + raise Exception.Create('No hay ningn presupuesto asignado'); + + pgPaginas.ActivePage := pagGeneral; + Presupuesto.DataTable.Active := True; +end; + +procedure TfEditorPresupuestoCliente.frViewTotales1ePortePropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; +{ if (not VarIsNull(DisplayValue)) and (Length(DisplayValue) > 0) then + FPresupuesto.IMPORTE_PORTE := DisplayValue + else + FPresupuesto.IMPORTE_PORTE := 0; +} +// RecalcularPortePorUnidad; En los documentos de cliente no se desglosa el porte por articulo +end; + +function TfEditorPresupuestoCliente.GetController: IPresupuestosClienteController; +begin + Result := FController; +end; + +function TfEditorPresupuestoCliente.GetModified: Boolean; +begin + // inherited; <- No llamar al padre porque queremos tratamiento especial. + if ReadOnly then + Result := False + else begin + Result := DataTableModified(dsDataTable.DataTable); + + if not Result then + Result := frViewDocumentosPresupuestoCliente1.Modified; + end; +end; + +function TfEditorPresupuestoCliente.GetPresupuesto: IBizPresupuestoCliente; +begin + Result := FPresupuesto; +end; + +function TfEditorPresupuestoCliente.GetViewPresupuesto: IViewPresupuestoCliente; +begin + Result := FViewPresupuesto; +end; + +procedure TfEditorPresupuestoCliente.GuardarInterno; +var + bEsNuevo : Boolean; +begin + inherited; + + ShowHourglassCursor; +// frViewDetallesPresupuestoCliente1.SaveGridStatus; + frViewDetallesPresupuestoCliente1.BeginUpdate; + try + bEsNuevo := FPresupuesto.EsNuevo; + //GESTION_DOCUMENTOS + if FController.Guardar(FPresupuesto) then + frViewDocumentosPresupuestoCliente1.actActualizarServidor.Execute; + + finally + frViewDetallesPresupuestoCliente1.EndUpdate; +// frViewDetallesPresupuestoCliente1.RestoreGridStatus; + HideHourglassCursor; + end; + if bEsNuevo then + ShowInfoMessage('El presupuesto se ha dado de alta con el cdigo ' + FPresupuesto.REFERENCIA); + + Modified := False; +end; + +procedure TfEditorPresupuestoCliente.ImprimirInterno; +var + AVerSello: Integer; + bPrevisualizar: Boolean; +begin + inherited; + bPrevisualizar := True; + + if (AppFactuGES.EmpresaActiva.ID = 1) then + //Preguntamos si desea que en los presupuestos se vea el Sello de Paco u Oscar, + //solo para empresa Tecsitel + bPrevisualizar := ElegirOpcionesImpresionPresupuestoCliente(AVerSello); + + if bPrevisualizar and Assigned(FPresupuesto) then + if not Modified then + FController.Print(FPresupuesto, False, AVerSello); +end; + +procedure TfEditorPresupuestoCliente.OnClienteChanged(Sender: TObject); +begin + if Assigned(FPresupuesto) then + begin + FPresupuesto.Cliente := ViewPresupuesto.ViewClientePresupuesto.Cliente; + +//Desactivado porque en presupuestos no utilizan el catlogo de clientes +// if (FPresupuesto.Detalles.RecordCount > 0) then +// FController.DetallesController.ActualizarDetalles(FPresupuesto.Detalles, FPresupuesto.Cliente); + end; +end; + +procedure TfEditorPresupuestoCliente.pgPaginasChanging(Sender: TObject; + var AllowChange: Boolean); +var + ACadena : String; +begin + inherited; + if (not Assigned(FPresupuesto)) or (FPresupuesto.ID_CLIENTE = 0) then + begin + ACadena := 'Antes de introducir conceptos debe elegir un cliente para este presupuesto'; + ShowWarningMessage(ACadena); + AllowChange := False; + end +end; + +procedure TfEditorPresupuestoCliente.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := ATitulo; + if (FTitulo = '') and Assigned(FPresupuesto) then + begin + if FPresupuesto.EsNuevo then + FTitulo := 'Nuevo presupuesto de cliente' + else + FTitulo := 'Presupuesto de cliente' + ' - ' + FPresupuesto.Cliente.Nombre + ' - ' + FPresupuesto.SITUACION; + end; + + inherited PonerTitulos(FTitulo); + Self.Caption := FTitulo + ' (' + AppFactuGES.EmpresaActiva.NOMBRE + ')'; +end; + +procedure TfEditorPresupuestoCliente.PrevisualizarInterno; +var + AVerSello: Integer; + bPrevisualizar: Boolean; +begin + inherited; + bPrevisualizar := True; + + if (AppFactuGES.EmpresaActiva.ID = 1) then + //Preguntamos si desea que en los presupuestos se vea el Sello de Paco u Oscar, + //solo para empresa Tecsitel + bPrevisualizar := ElegirOpcionesImpresionPresupuestoCliente(AVerSello); + + if bPrevisualizar and Assigned(FPresupuesto) then + if not Modified then + FController.Preview(FPresupuesto, False, AVerSello); +end; + +function TfEditorPresupuestoCliente.PuedoEnviar: Boolean; +begin + Result := not Presupuesto.Cliente.IDIsNull; +end; + +function TfEditorPresupuestoCliente.PuedoImprimir: Boolean; +begin + Result := inherited PuedoImprimir and (not Presupuesto.Cliente.IDIsNull); +end; + +procedure TfEditorPresupuestoCliente.RecalcularPortePorUnidad; +begin + //Esta lgica se llamar en el editor porque es para facilitar el rellenado de informacin del documento + //no puede ir en la clase de negocio porque no es una lgica que tenga sentido fuera del editor. + if Assigned(Controller) + and Assigned(Controller.DetallesController) then + Controller.DetallesController.DesglosarPorteDetalles(FPresupuesto.IMPORTE_PORTE, FPresupuesto.Detalles) +end; + +procedure TfEditorPresupuestoCliente.SetController(const Value: IPresupuestosClienteController); +begin + FController := Value; + + if Assigned(FController) then + begin +// ViewPresupuesto.ViewClientePresupuesto.Controller := Controller.ClienteController; + frViewDetallesPresupuestoCliente1.Controller := Controller.DetallesController; + + //GESTION_DOCUMENTOS + frViewDocumentosPresupuestoCliente1.Controller := Controller; + + frViewTotalesPresupuesto1.Controller := FController; + end; +end; + +procedure TfEditorPresupuestoCliente.SetModified(const Value: Boolean); +begin + inherited; + frViewDocumentosPresupuestoCliente1.Modified := Value; +end; + +procedure TfEditorPresupuestoCliente.SetPresupuesto(const Value: IBizPresupuestoCliente); +begin + FPresupuesto := Value; + + if Assigned(FPresupuesto) then + begin + dsDataTable.DataTable := FPresupuesto.DataTable; + frViewIncidenciasCli.DADataSource.DataTable := dsDataTable.DataTable; + frViewTotalesPresupuesto1.DADataSource.DataTable := dsDataTable.DataTable; + + if Assigned(FViewPresupuesto) then + begin + ViewPresupuesto.ViewClientePresupuesto.OnClienteChanged := NIL; + try + FViewPresupuesto.Presupuesto := FPresupuesto; + frViewDetallesPresupuestoCliente1.Detalles := FPresupuesto.Detalles; + frViewDetallesPresupuestoCliente1.Presupuesto := FPresupuesto; //Para poder sacar los descuento del articulos segun el cliente seleccionado + + //GESTION_DOCUMENTOS + frViewDocumentosPresupuestoCliente1.Presupuesto := FPresupuesto; + + frViewTotalesPresupuesto1.Presupuesto := FPresupuesto; + + finally + ViewPresupuesto.ViewClientePresupuesto.OnClienteChanged := OnClienteChanged; + end; + end; + end; +end; + +procedure TfEditorPresupuestoCliente.SetViewPresupuesto(const Value: IViewPresupuestoCliente); +begin + FViewPresupuesto := Value; + + if Assigned(FViewPresupuesto) then + begin + FViewClientePresupuesto := FViewPresupuesto.ViewClientePresupuesto; + + if Assigned(Presupuesto) then + FViewPresupuesto.Presupuesto := Presupuesto; + end; +end; + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosCliente.dcu b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosCliente.dcu new file mode 100644 index 0000000..84d7634 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosCliente.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosCliente.dfm b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosCliente.dfm new file mode 100644 index 0000000..33c4bb6 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosCliente.dfm @@ -0,0 +1,3551 @@ +inherited fEditorPresupuestosCliente: TfEditorPresupuestosCliente + Caption = 'Lista de presupuestos de cliente' + ClientWidth = 805 + ExplicitWidth = 813 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 805 + Caption = 'Lista de presupuestos de cliente' + ExplicitWidth = 805 + inherited Image1: TImage + Left = 778 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 5200000A4D6943435050686F746F73686F70204943432070726F66696C650000 + 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 + 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A + 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 + 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 + 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 + 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C + 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 + 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 + 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F + 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 + 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 + 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 + 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E + 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB + 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F + FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 + F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E + F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 + 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 + 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 + C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 + 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D + 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 + A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D + 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 + 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC + 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE + 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 + 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 + B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 + 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 + 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 + 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F + 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F + AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F + A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 + 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 + 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 + DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 + BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF + D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 + C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 + 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 + 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 + 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B + ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 + F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 + 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE + BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 + F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D + C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE + 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 + 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 + 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 + 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 + 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC + 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A + 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 + 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 + E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 + D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 + 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 + 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 + F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 + 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 + 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D + DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 + 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A + 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 + 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 + 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 + 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 + 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F + 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D + BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D + AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 + 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC + 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E + 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 + B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 + 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC + 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 + 4D410000B18E7CFB51930000026B4944415478DA63FCFFFF3F032D0123B2054B + B79CA49A6DD13EE68C582D004A906CD8DFBFFF80F83F980601EBC07C86733BA6 + E1B6C073BF2D8A01DB1D0FE3341C59ED2AB33D0C0BD7ED6798B774137E0B4871 + B9CF217B0659251686D93B0E30BC8FFCC6B064E341C21660F301BA18086CB43E + C0E07FD48161C7AD2360FE9BB02F0CCBB71CA6CC07FFFF01C31A88FF005D0F62 + FFF9F70F1A07FFC0ECD5DB8E92EE036200C8178F03DE336CD87582380B60DE26 + 053CF07DCBB079EF29E22CC09772B001909E692A1B18B61E384DBC05B8820A66 + 394C1EA676B2D27A861D87CE50EE8389058E0C5FD9CF3108BFFA84D7574FBE3A + 91E60398A56DE5FC0C117EBF1824187F30FCFAC900C13F18187EC268203E7982 + 080BB08199898C0CB1A910363EC3F9251818AEDEC5624184A729387762F341C0 + A2230C2C82F823FBCF7B84E158E320D4CD049C3BB1F900D9F520F0E93DC4C530 + 0CF2C1993390A0B133DCC770E83C161F04391B31049D70C2690148332100321C + 04B05AE0E768C01076CA05AB46501021FB0004FEFE0506CB6F0686DFBF80BEF8 + CEC070E306420EAB05DE767AF0720556C680CA1E10BDA75E14C50290A1BF8186 + FFF90561AF59C3C1A0A6F183818D058F051ED63A580D075528FB9BC430E20064 + 30C80720BC651B0783943CC402365606861397B158E062A985D570107DA85502 + C582B72F1186832CDAB9878341441A62C1953B4E0CCDABF6326258606FAA0E36 + ECDF5F44B10CB3F078A734DC029081EF5E210C0705D5BE831C0C7CE23F181E3C + 81188E3599DA18A9824B446C80759F27D88299533970A6A077BFAD18B67E52C7 + 5D16F54E598853B33DEF3E061E4669BC4914643808C02C0000053036AC648583 + 960000000049454E44AE426082} + ExplicitLeft = 647 + end + end + inherited TBXDock: TTBXDock + Width = 805 + ExplicitWidth = 805 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 805 + object TBXItem47: TTBXItem [13] + Action = actEnviarEMail + DisplayMode = nbdmImageAndText + end + end + inherited tbxFiltro: TTBXToolbar + ExplicitWidth = 427 + inherited lblAno: TTBXLabelItem + Visible = True + end + inherited cbxListaAnos: TTBXComboBoxItem + Visible = True + end + inherited sepAno: TTBXSeparatorItem + Visible = True + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 805 + object TBXSubmenuItem2: TTBXSubmenuItem [4] + Caption = 'A&cciones' + object TBXItem39: TTBXItem + Action = actGenerarAlbaranCli + end + object TBXItem38: TTBXItem + Action = actGenerarFactura + end + object TBXSeparatorItem17: TTBXSeparatorItem + end + object TBXItem45: TTBXItem + Action = actEnviarEMail + end + object TBXItem41: TTBXItem + Action = actGenerarCertificado + end + end + end + inherited TBXTMain2: TTBXToolbar + Left = 427 + DockPos = 343 + Visible = True + ExplicitLeft = 427 + ExplicitWidth = 378 + object TBXItem43: TTBXItem + Action = actAceptar + DisplayMode = nbdmImageAndText + end + object TBXItem44: TTBXItem + Action = actAnular + DisplayMode = nbdmImageAndText + end + object TBXSeparatorItem18: TTBXSeparatorItem + end + object TBXItem42: TTBXItem + Action = actGenerarCertificado + DisplayMode = nbdmImageAndText + end + object TBXItem40: TTBXItem + Action = actGenerarFactura + DisplayMode = nbdmImageAndText + end + object TBXItem46: TTBXItem + Action = actInformes + end + end + end + inherited StatusBar: TJvStatusBar + Width = 805 + ExplicitWidth = 805 + end + inherited EditorActionList: TActionList + inherited actNuevo: TAction + ImageIndex = 22 + end + inherited actPrevisualizar: TAction + Visible = True + end + inherited actImprimir: TAction + Visible = True + end + object actGenerarAlbaranCli: TAction + Category = 'Acciones' + Caption = 'Generar albar'#225'n de cliente' + ImageIndex = 23 + OnExecute = actGenerarAlbaranCliExecute + end + object actGenerarFactura: TAction + Category = 'Acciones' + Caption = 'Generar factura' + ImageIndex = 24 + OnExecute = actGenerarFacturaExecute + OnUpdate = actGenerarFacturaUpdate + end + object actGenerarCertificado: TAction + Category = 'Acciones' + Caption = 'Generar certificado' + ImageIndex = 26 + OnExecute = actGenerarCertificadoExecute + OnUpdate = actGenerarCertificadoUpdate + end + object actAceptar: TAction + Category = 'Acciones' + Caption = 'Aceptar' + ImageIndex = 27 + OnExecute = actAceptarExecute + OnUpdate = actAceptarUpdate + end + object actAnular: TAction + Category = 'Acciones' + Caption = 'Anular' + ImageIndex = 28 + OnExecute = actAnularExecute + OnUpdate = actAnularUpdate + end + object actEnviarEMail: TAction + Category = 'Acciones' + Caption = 'Enviar por e-mail...' + Hint = 'Enviar el presupuesto por correo electr'#243'nico' + OnExecute = actEnviarEMailExecute + OnUpdate = actEnviarEMailUpdate + end + object actInformes: TAction + Category = 'Acciones' + Caption = 'Informes' + OnExecute = actInformesExecute + end + end + inherited SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000001764944415478DA63FCFFFF3FC394 + C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F19ACFDF319CEED + 98866A80CB7E5B14C57B1C0F836964F1CD56FB18E6AEDACB306FE9264C03F081 + 5FBFFF826D06E1251B0E623700DD05D8C07283ED0C2BB71CC16D00CCD920F00F + 28F7E7CF3FB8CD2167DC1816EB6C6558BBE3187E03602ED9667380C1EB8803DC + E6C80B9E0CF33436316CDA7312BF01309B3FDF3ECCF072712C3E1FB96018B0CB + E11083DB013BB0ECA45D0F18941B6A18D8D9D33174FEFC3993615E620B038601 + 2067C3FCFCAC4D8D41ABFD3158311CFCF801C4DF1966EF326060DE9E8A302023 + CA8DC1E3903D8A2D2017A01800D2FCE11DC480534EA806248739836D85857AF4 + 252F5403609AC106FC64987D2B08D580B8200794284BB8E68B30E0E34484E60F + 1F202E7895826A40949F1D5C33DCA0194610031ED62334C3BCF0AB0CD580502F + 6B86D5DB8EA28481D3B554702CCC5E258F350E510C00250C74A0CDFB86C18AF5 + 38CE44602FCFE00200175B62A961F8A2FD0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001784944415478DA + 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F + 192CBCB3192EEE99856AC05E4B2B14C5CEC78F81696471AB030719662EDFC530 + 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB001DDAD3B19966D3A84 + DB0098B341E01F50EECF9F7F709BCFB93B33686EDCCEB06ADB11FC06C05C627B + E830C3613B5BB8CD97BDDD1954D66E6158BFEB387E03D06DFEFDE70F987FDDDF + 934161E54686CDFB4EE136C0F1D85186FD56D6605B8D76EE053B1B044036DF09 + F661905ABA9E61E7A133B80D00391BDDE69FBFFE30FC028A3D890C60109ABB8A + E1E0A98B9806E4C47A321CB4B1410971B5F55B196E0542A2577CD15A869771C1 + 0CBC3357301C3B7719D380F44837B02D7F7EFF03DB7CD5D7834169F566B0D8EF + DF10FC2E398C8163EA5286D397AE611A9018EA0CD70CF202CC6674C03C7111C3 + 856B37310D880D70846B06F91BD9E6DFD01801E17FFFFE335CBA710BD380081F + 5B86155B0E139D13310C0009900A400600000CC180F01CA0F4A8000000004945 + 4E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001684944415478DA + 63FCFFFF3FC394C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F + 19ACFDF319CEED98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC + 5BBA09D3007CE0D7EFBF609B4178C98683D80D40770136B0AED69461E59623B8 + 0D80391B04FE01E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D + 760CCEE587E03607359F66585A6AC0B069CF49FC06A0DB0CC2207E58FB598685 + 85BA0CDB0E9CC16DC0C15E0706FBE203605B37375A809D0D02209BA3BB2F30CC + C9D566D87DE41C6E0340CE46B7F9E7AF3F6076D2C42B0C53D2D4180E9FBE8C69 + 4046941B8363E94194105F5E6EC810D9791ECC9E99A5C9903EED3A437F920AC3 + 89F357310D480E7386DB08A2435ACF302C2ED687B8049A067266DD62E88A5364 + 387BF906A60171410E280107B3191DB446C9315CBA7E1BD380283F3B147F23DB + FC1BC9E07FFFFE335CB97907D380502F6B86D5DB8E129D13310C0009900A4006 + 00004B6D80F047EC10D30000000049454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001864944415478DA + 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F + 192CBCB3192EEE99856AC05E4B2B14C5CEC78F81696471AB030719662EDFC530 + 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB001DDAD3B19966D3A84 + DB0098B341E01F50EECF9F7F709BCFB93B33686EDCCEB06ADB11FC06C05C627B + E830C3613B5BB8CD97BDDD1954D66E6158BFEB387E0360367FBA7990E1C5C218 + 7C3E72C130C0F1D85186FD56D66059719B070CAA2D350CECEC59183A7FFE9CC6 + 303BB68501C30090B3617E7EDAACCCA0D3FD0CAC180EBE7F6760F8F19D61FA0E + 4306966DA9080372623D190EDAD8A0D80272018A0120CD1FDE81E9E9279D510D + 488F7463F805B4F9CF6F50A8FF61B8EAEB816A004CF37B20FEF19361FACD6054 + 0312439DE19A415EB815E88D30E0432F42F3870F1017BC4A45352036C011AE19 + 140320D7FC9E6A0031E041354233D80540037E95A31A10E163CBB062CB61D438 + BA9A0A8E85E9CBE5B1C6218A01A084810EB478DF3058B39EC099081CE4195C00 + 45135E518E0B4E380000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B3A00000B3A01647F570D0000015D4944415478DA + 63FCFFFF3F030830323232C0C0CEB58DCA2F6E6CBDF3FEF129B818C30F061490 + 3FFF3F58032336032E9C58FD9F8B47904155DB192EF6FFD72B867F9F2F31FCB9 + E3CA3063061E0380B6DBB373F01CB076CD66606165C7AAB96001923E6403809A + 9979F925FEC8299B32482B18E2D40C16C7614032D08039164EA97017810CF875 + 5E1CAC196F18EC5AD7C40F74FA073DB36006411179B8E6FF3F5F32FCBEA687A2 + 196B18000D681797D6AAD06008852B64D5BA0434E4251833000DFBFBA2087718 + 2CEF76FFFFE1E119865F5FDF81F9B993706BC61906D0589056D7D07F2223CE8D + 53332103DAC5C4A52B749438706AC6170BECACAC6C3FF4547918F8397FE3D48C + 3F1A79F9E7982A7F66F8FBBA16A7669C061CDB35E1BF9CAA1D83C84B23BC9AB1 + 1A008C466BA0F38F5888D632CC9AF907AF66AC065C383AF73FC7B7150C3B97ED + 21A819AB0137CE2CFBBF776E2643CE8C4F0435231B00004A4C11F0D3652A8300 + 00000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000001DA4944415478DA + 63FCFFFF3F032580912C5DF2F33964B539E3DF7DF8F1956403380CE7C85B5929 + CFFAF99ED7FCFCED9BE124192060B7D8D6CE5279E99B876C42674FFC0CFEF9C0 + 7A27D10628FBAF0FB030915F74E7EA6FE6F387FF87FD7A6AB195E83090F55915 + EEE7A23BE7FCD9CFAC170EFF4EFDF6C07A31D18128E1BE3CC8DB597BE1A3BBBF + B98EECFA91FBFDBEF574A0F07FA20C10B09B67EBE366B8E3CDF37F9C47F77CED + FC7CD3AE125D0DC400B3897C9CCCBCEADFD9182F331C4CFC010E6DCB39F29E0E + 3A07599939E477AE7FBFFBE3CF4BBE0C77F27F621820EAB848DFDC447931372B + 9FE68E5DF7577F3C73368E414588D9C6496BB3AA92B8CBDECD9FDEBC7CF9D3F2 + E71DE7BBD85CC928EAB438C4C7556F3A0B1B8BC8B1BD9FFFDE7B753F4C41994B + C3CA48B1E5F09ECFFFEF3F7D19F3FB5AD0725CDE047B41276243A09D85FAAAA7 + CFBFB11CDEFBEA8EA79F98E4C3FBBFB8CF9F7BBDE5EB453F3FE440C31E060CF5 + 4C4ED9F63B6565845D5EBEFEF29F11287AE9C4AF2FAFBF3D32FF753EFE3ABE80 + 86C7028FF5429B101F83FDCF5F7F66797697E1FFCDDB6FA7FFBAE69F4D289A91 + A2B19EC539C7E1C49BC7EC46F71EBDD9FFF9DFD338868B994F4930808181D76E + 413EF33F56D90F0F5ED4323C29FE4E4833080000904EC47A3EA3126900000000 + 49454E44AE426082} + Name = 'PngImage27' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000029B4944415478DA + A5936B48536118C7FFE79CB5CD332F639B9A379C683051B232CDEA835D14BB40 + A444501FACCC254811F529858811519411917D705A5041D04D30A34F82214118 + D8B0455E2A755E6665BA9DCDED6C3BDBDE76365C9A981F7AE0BDF0C2FFF7FE9F + E7E1A10821F89FA0C27B7E8B8ED526D731085A9DAFAA6EFC4B1053FAA844AA8A + 377053B64ED27BAC99C2E6FB4574667A4F5676B23C5ECE9091FE2F97B98ECA4B + CB9405B794AAEC9CAB5E307A97C3ED8383AB26BD35CF29EC7ED68AA4A45A0483 + 4852B1484D64C9A8E9EB15AEB3F2E282962D7BBC5FA651B73A5C424AC0E59E05 + 673B88BEBAB762FA14726EC7639DB60BB1B145083DC4C824D0A62790E901CB75 + FB4B53A362EF060351B08D6E978706CF4F807356C0A41F10C1118018BA3B6A68 + 33DE8065F345080D82B4940432373933E863A43AC1E3A5E0E68730E72883F9D4 + E482B33F003136B6A52251DD831879B60811530A2FF1CEF31670F3DB60AAB52E + 2ECB528018EB8D5948D6F442264D8C8A03018299D94321DBED7FD775194051FE + E49C54A36CB2715E3AEA423CBD9E09CCD977C05C3FB222407DA0FD4A467E6643 + FF472B450221A15F2010FCF39048E222109F052E5B294CA72DCB008A8AA7E775 + 25B94DC343D394D3EE167F2670380CA1DCDBC02A8CA194F685213EE11B387E17 + 3ED78D4701CCF687E559C579AF79DE2B991AFB19B1EC703EC0BBEAE351AF85F7 + 4E42B6E626683A0182300CDFFC4E98CE58C300CDD1EEC9B8B5AAB4B1C13184AD + BBDD668CFB8A6139E15952B1BCBB19A10E192161F6840A3B04DE594ACC677F50 + CAC35D2F78BFBFCAEBE211A20BB0FFDA8A0FF57D2B0E4381510F09DD0412EC20 + 7DFA6A0A9B8C25502ABBC1307270DC35BCAF69587504739B3341532CF9543F10 + E94261CB16486417F07DF4082C06CFAA80455DF80DE5433FF01720E9DB000000 + 0049454E44AE426082} + Name = 'PngImage28' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F330000026B4944415478DA63FCFFFF3F032D + 0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80F83F980601EBC0 + 7C86733BA6E1B6C073BF2D8A01DB1D0FE3341C59ED2AB33D0C0BD7ED6798B774 + 137E0B4871B9CF217B0659251686D93B0E30BC8FFCC6B064E341C21660F301BA + 18086CB43EC0E07FD48161C7AD2360FE9BB02F0CCBB71CA6CC07FFFF01C31A88 + FF005D0F62FFF9F70F1A07FFC0ECD5DB8E92EE036200C8178F03DE336CD87582 + 380B60DE26053CF07DCBB079EF29E22CC09772B001909E692A1B18B61E384DBC + 05B8820A66394C1EA676B2D27A861D87CE50EE8389058E0C5FD9CF3108BFFA84 + D7574FBE3A91E60398A56DE5FC0C117EBF1824187F30FCFAC900C13F18187EC2 + 68203E7982080BB08199898C0CB1A910363EC3F9251818AEDEC5624184A72938 + 7762F341C0A2230C2C82F823FBCF7B84E158E320D4CD049C3BB1F900D9F520F0 + E93DC4C5300CF2C1993390A0B133DCC770E83C161F04391B31049D70C2690148 + 332100321C04B05AE0E768C01076CA05AB46501021FB0004FEFE0506CB6F0686 + DFBF80BEF8CEC070E306420EAB05DE767AF0720556C680CA1E10BDA75E14C502 + 90A1BF8186FFF90561AF59C3C1A0A6F183818D058F051ED63A580D075528FB9B + C430E2006430C80720BC651B0783943CC402365606861397B158E062A985D570 + 107DA85502C582B72F1186832CDAB9878341441A62C1953B4E0CCDABF6326258 + 606FAA0E36ECDF5F44B10CB3F078A734DC029081EF5E210C0705D5BE831C0C7C + E23F181E3C81188E3599DA18A9824B446C80759F27D88299533970A6A077BFAD + 18B67E52C75D16F54E598853B33DEF3E061E4669BC4914643808C02C00000530 + 36AC648583960000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001CE4944415478DA + 63FCFFFF3F032D0123B2058B361EA79A6D71FE968C582D004A906CD8DFBFFF80 + F83F9806010BDF6C868B7B66E1B660AFA53D8A01CEC70FE2341C59ADE99E5D0C + F356EF6198BF64237E0B4871F9011B4706651669866DA7973344BEFCC6B070FD + 3EC21660F301BA1808D81EDCC770D8DE89E1E6F943607ED8B32F0C4B361DA0CC + 07FFFF01C31A88FF005D0F62FFFE070CFF3FFFC0BEF9F3EF2FC38A2D8749F701 + 3100E40BDF07EF18D6EE38469C05306F9302BCEEBE61D8B0FB047116E04B39D8 + 00488FE2CAB50C9BF69D24DE025C4105B31C260F532BB77C0DC3D603A768E703 + C925AB18761D3E433B1F882D58C1B0F7F839DAF94078EE328603A72EE0B720DA + C71C9C3BC9F101FFEC250C47CE5CC26F4184A719387792E303AEE90B194E5EB8 + 8ADF8250371386634E2E6459C03E653EC399CBD7F15B10E062C470DAC50DAF61 + 20CBFFCC9D0FE7B32427822D60993897E1FCB59BF82DF0753080972B9072FE1F + B8EC018B01CBFCA7D1A118F103E333F6CF61B874E3167E0BBC6CF5701A0EA25F + C485630D3EA22D70B3D6C66938A8047D93188933E888B2C0D15C036CD8BFBF90 + 62F9F75F4471FCEF3FD4A27FFF501C810C085A6067A2062E112901782DE89D3C + 9F6C839101CC0200E97E29EF897181770000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001BE4944415478DA + 63FCFFFF3F032D0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80 + F83F980601EBC07C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3 + C275FB19E62DDD84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD978 + 90B005D87C802E06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9 + E0FF3F605803F11FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F1 + 8E70860DBB4E106701CCDBA480075B431936EF3D459C05F8520E3600D2B3A850 + 8F61EB81D3C45B802BA86096C3E4616AE7E7EB32EC387486763E989DA3CDB0E7 + E839DAF96046A626C3FE131768E783A969EA0C874E5FC26F4184A729387792E3 + 838929AA0CC7CE5EC16F41A89B09387792E3839E042586D317AFE3B720C8D988 + C1ADFA08591674C62A309CBB7213BF057E8E060C5EB5C7F01A06B27CC1913F70 + 7E820D0BD882B62839868BD76FE3B7C0DB4E0F5EAEC0CA1850D9032BF393275F + C1881F18BF394296E1CACD3BF82DF0B0D6C16938884E9B760D6BF0116D818BA5 + 164EC3411667CDB88133E888B2C0DE541D6CD8BFBF88621966E1BFFFFFB1061F + 322068818D912AB844A404E0B5A077CA428A0C8701980500619929EF09CFCE42 + 0000000049454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026C4944415478DA + 63FCFFFF3FC3A28DC7FF335009C4F95B3222F319611600254836ECEFDF7F40FC + 1F4C8380856F36C3C53DB3705BB0D7D21EC500E7E307711A8EACD674CF2E8679 + ABF730CC5FB211BF05A4B8FC808D2383328B34C3B6D3CB19225F7E6358B87E1F + 610BB0F9005D0C046C0FEE63386CEFC470F3FC21303FECD91786259B0E50E683 + FFFF80610DC47F80AE07B17FFF0386FF9F7F60DFFCF9F79761C596C3A4FB8018 + 00F285EF83770C6B771C23CE0298B749015E77DF306CD87D82380BF0A51C6C00 + A44771E55A864DFB4E126F01AEA082590E9387A9955BBE8661EB8153B4F381E4 + 92550CBB0E9FA1AE0F6EAA108EABC75FEDC8F3C1B4584686847408FBE74F0686 + 5F3F2018C4FEF903824F1C47B320DAC71C9C3B09F98058C3F9251818AEDC45B2 + 20C2D30C9C3BF1F90064388B207EDFFD798F301C250E42DD4C188E39B910B400 + E67A10F8F80EE2E21F5097FFFACEC070FA0C2468EC0D0F311C3C8FE483001723 + 86D32E6E785D078A5890664200643808A058E0EB60002F5720E5FC3F70D90316 + 0396F94FA343C11620FB001C247F81F83703C36F501C007D70ED3A420EC5022F + 5B3D9C8683E81771E11816FCFA05341888FF40E995ABD919D4357E32B0B160B1 + C0CD5A1BA7E1A012F44D62248605A038005B00F201106FDACACE202D0FB1808D + 9581E1F865240B1CCD35C086FDFB0B29967FFF4514C7FFFE432C3ADD2D8F62C1 + 9B1708C341166DDFCDCE202A0DB1E0F21D3B86F6750719E116D899A8814B447C + 806DAF0FDC0250F0BC7B89301C44EF39C0CEC02FFE93E1FE1388E128C9B477F2 + 7C82A9235D7236D882A993D971AA79F7DB1C6E38DC0262417738C73AA00181F8 + D4201B0E0200C20B50400F1E42A70000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000001B94944415478DA + 63FCFFFF3F032D01E38058C0C8C888C2DFB9B651F9C58DAD77DE3F3E85AAF007 + 7643F3E7FF6724C9828B27D7FCE7E0E46350D3754511FFFFEB15C3BFCF9718FE + 7FB90CC40F18FE7D99C43063068916005D6FCEC2CA71C2CE239F8185959DA0E1 + 050B50CD2468C1C903F3FF4B486B32C8A9986375FDBF179B510C07CB116B01D0 + F5C15C3C426BAC5DB3512CC56738D116000D67061AFE4755DB99411CE803620D + 27C5827C0161B90966F6091841F3E7762BDC7064407410ED5AD7C40F8CD80FC6 + D6D10CFC42D22886FFFFF992E1EFA339600B9001497100B4A05B4246BB44CF2C + 18C3F0FFBF209801C4474B3D4407D1F26EF7FF1F1E9E61F8F5F51D5C2C77D225 + A20C272915415392B4BA9ACC13194939A20C27C7826E7131C1126D6521A20C27 + C902A0E1DC2C2CCC5F0CD5051878397E116538A916E40BF0734F3052FCCEF0FF + FB6BA20C27DA027046E364FFA322C5C420CCF28468C349B1C01F68C10633B967 + C0A021DE70A22D38B9A7E7BF28DF1F06A97F1524194E9405C08C660C8CDC3316 + 624D0CB367FE22C970A22CB87864F27FB66F5B18762DDF45B2E1445970E3F4F4 + FF7BE75530E4CCF844B2E14459404D40730B006B5E9AE0A24640FE0000000049 + 454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end> + Bitmap = {} + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [7] + end + inherited dsDataTable: TDADataSource [8] + end + inherited GridPopupMenu: TPopupMenu + object Generarcertificado1: TMenuItem [6] + Action = actGenerarCertificado + end + object Generar2: TMenuItem [7] + Caption = 'Generar factura' + ImageIndex = 26 + OnClick = actGenerarExecute + end + object N4: TMenuItem [8] + Caption = '-' + end + object Enviarporemail1: TMenuItem [9] + Action = actEnviarEMail + end + end + object JsGenerarDialog: TJSDialog + Content.Strings = ( + 'Elija una opci'#243'n:') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Generar a partir del presupuesto...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Generar un albar'#225'n de cliente' + Value = 100 + Default = True + Info.Strings = ( + + 'Se generar'#225' un albar'#225'n de cliente basado en este presupuesto. So' + + 'lo se tendr'#225'n en cuenta aquellos art'#237'culos que existan en el cat' + + #225'logo y sean inventariables.' + '') + end + item + Caption = 'Generar factura de cliente' + Value = 200 + Info.Strings = ( + 'Genera una factura de cliente igual que el presupuesto.') + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 152 + Top = 112 + end + object JsPrevisualizarDialog: TJSDialog + Content.Strings = ( + 'Elija una opci'#243'n:') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Previsualizar...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Previsualizar el presupuesto/s seleccionado/s' + Value = 100 + Default = True + end + item + Caption = 'Previsualizar la lista de presupuestos actual' + Value = 200 + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 232 + Top = 112 + end + object JsImprimirDialog: TJSDialog + Content.Strings = ( + 'Elija una opci'#243'n:') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Imprimir...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Imprimir el presupuesto/s seleccionado/s' + Value = 100 + Default = True + end + item + Caption = 'Imprimir la lista de presupuesto actual' + Value = 200 + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 264 + Top = 112 + end + object JsListaPresupuestosNoEliminados: TJSDialog + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = + 'Los siguientes presupuestos no han podido ser eliminados, porque' + + ' tienen factura asociada' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + ButtonBar.Buttons = [cbOK] + ButtonBar.Cancel = cbOK + ButtonBar.UseCancel = False + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 184 + Top = 112 + end + object JSInformesDialog: TJSDialog + Content.Strings = ( + 'Seleccione el informe que desea realizar') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Nuevo informe' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Listado de presupuestos.' + Value = 100 + Default = True + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 768 + Top = 72 + end +end diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosCliente.pas b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosCliente.pas new file mode 100644 index 0000000..02d24a1 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosCliente.pas @@ -0,0 +1,648 @@ +unit uEditorPresupuestosCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Menus, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems, + TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, + JvNavigationPane, uViewGrid, pngimage, JvComponentBase, + uEditorGridBase, + uBizPresupuestosCliente, uIEditorPresupuestosCliente, uPresupuestosClienteController, + uCustomView, uViewBase, uViewBarraSeleccion, uViewGridBase, + uViewPresupuestosCliente, JvExComCtrls, JvStatusBar, JSDialog, StdCtrls, + uDAInterfaces; + +type + TfEditorPresupuestosCliente = class(TfEditorGridBase, IEditorPresupuestosCliente) + actGenerarAlbaranCli: TAction; + actGenerarFactura: TAction; + TBXSubmenuItem2: TTBXSubmenuItem; + TBXSeparatorItem17: TTBXSeparatorItem; + TBXItem38: TTBXItem; + TBXItem39: TTBXItem; + N4: TMenuItem; + Generar2: TMenuItem; + JsGenerarDialog: TJSDialog; + JsPrevisualizarDialog: TJSDialog; + JsImprimirDialog: TJSDialog; + TBXItem40: TTBXItem; + JsListaPresupuestosNoEliminados: TJSDialog; + actGenerarCertificado: TAction; + TBXItem41: TTBXItem; + TBXItem42: TTBXItem; + Generarcertificado1: TMenuItem; + actAceptar: TAction; + actAnular: TAction; + TBXItem43: TTBXItem; + TBXItem44: TTBXItem; + TBXSeparatorItem18: TTBXSeparatorItem; + actEnviarEMail: TAction; + TBXItem45: TTBXItem; + Enviarporemail1: TMenuItem; + actInformes: TAction; + TBXItem46: TTBXItem; + JSInformesDialog: TJSDialog; + TBXItem47: TTBXItem; + procedure FormShow(Sender: TObject); + procedure actGenerarAlbaranCliExecute(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + procedure actGenerarFacturaUpdate(Sender: TObject); + procedure actGenerarFacturaExecute(Sender: TObject); + procedure actGenerarPresupuestoProvExecute(Sender: TObject); + procedure actGenerarExecute(Sender: TObject); + procedure actGenerarCertificadoUpdate(Sender: TObject); + procedure actGenerarCertificadoExecute(Sender: TObject); + procedure actAceptarExecute(Sender: TObject); + procedure actAceptarUpdate(Sender: TObject); + procedure actAnularExecute(Sender: TObject); + procedure actAnularUpdate(Sender: TObject); + procedure actEnviarEMailExecute(Sender: TObject); + procedure actEnviarEMailUpdate(Sender: TObject); + procedure actInformesExecute(Sender: TObject); + procedure OnListaAnosChange(Sender: TObject; const Text: string); + + protected + FPresupuestos: IBizPresupuestoCliente; + FController : IPresupuestosClienteController; + + function GetPresupuestos: IBizPresupuestoCliente; + procedure SetPresupuestos(const Value: IBizPresupuestoCliente); + + function GetController : IPresupuestosClienteController; virtual; + procedure SetController (const Value : IPresupuestosClienteController); virtual; + + procedure NuevoInterno; override; + procedure ModificarInterno; override; + procedure EliminarInterno; override; + procedure DuplicarInterno; override; + procedure ImprimirInterno; override; + procedure PrevisualizarInterno; override; + procedure RefrescarInterno; override; + + //Si queremos crear otra vista para el editor heredado solo tendriamos que + //sobreescribir este metodo + procedure AsignarVista; virtual; + + public + procedure PonerTitulos(const ATitulo: string = ''); override; + property Presupuestos: IBizPresupuestoCliente read GetPresupuestos write SetPresupuestos; + property Controller : IPresupuestosClienteController read GetController write SetController; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +uses + uDataModulePresupuestosCliente, uDataModuleUsuarios, uFactuGES_App, + uEditorBase, uEditorDBBase, uDialogUtils, Dialogs, + uDBSelectionListUtils, uGridStatusUtils, uDialogOpcionesImpresionPresupuestosCliente, + uGenerarFacturasCliPreCliUtils, uEditorFechaDecision, +// uBizAlbaranesCliente, uAlbaranesClienteController, +// uFacturasClienteController, uBizFacturasCliente, + uGenerarAlbaranesCliUtils, uGestorInformesController; + + +{$R *.dfm} + +{ +*************************** TfEditorPresupuestosCliente *************************** +} +procedure TfEditorPresupuestosCliente.actAceptarExecute(Sender: TObject); +var + APresupuestos: IBizPresupuestoCliente; + AllItems: Boolean; + AFecha: Variant; +begin + APresupuestos := Nil; + AllItems := False; + + //Pedimos fecha de decision y realizamos todo el proceso de asignacion, en el caso de no darla no se hace nada + AFecha := Null; + with TfEditorFechaDecision.Create(nil) do + try + if ShowModal = mrOk then + AFecha := edtFechaDecision.Date; + finally + Free; + end; + + if not VarIsNull(AFecha) then + begin + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + if AllItems then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Presupuestos as ISeleccionable).SelectedRecords); + APresupuestos := (Controller as IPresupuestosClienteController).ExtraerSeleccionados(Presupuestos) as IBizPresupuestoCliente; + end + else begin + APresupuestos := Presupuestos; + end; + + ViewGrid._Grid.BeginUpdate; + if Assigned(APresupuestos) then + begin + FController.CambiarSituacion(APresupuestos, SITUACION_PRESUPUESTO_ACEPTADO, AFecha, AllItems); + actRefrescar.Execute; + end; + ViewGrid._Grid.EndUpdate; + end; +end; + +procedure TfEditorPresupuestosCliente.actAceptarUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos + and ViewGrid.esSeleccionCeldaDatos + and (FPresupuestos.SITUACION <> SITUACION_PRESUPUESTO_ACEPTADO); +end; + +procedure TfEditorPresupuestosCliente.actAnularExecute(Sender: TObject); +var + APresupuestos: IBizPresupuestoCliente; + AllItems: Boolean; + AFecha: Variant; +begin + APresupuestos := Nil; + AllItems := False; + + //Pedimos fecha de decision y realizamos todo el proceso de asignacion, en el caso de no darla no se hace nada + AFecha := Null; + with TfEditorFechaDecision.Create(nil) do + try + if ShowModal = mrOk then + AFecha := edtFechaDecision.Date; + finally + Free; + end; + + if not VarIsNull(AFecha) then + begin + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + if AllItems then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Presupuestos as ISeleccionable).SelectedRecords); + APresupuestos := (Controller as IPresupuestosClienteController).ExtraerSeleccionados(Presupuestos) as IBizPresupuestoCliente; + end + else begin + APresupuestos := Presupuestos; + end; + + ViewGrid._Grid.BeginUpdate; + if Assigned(APresupuestos) then + begin + FController.CambiarSituacion(APresupuestos, SITUACION_PRESUPUESTO_ANULADO, AFecha, AllItems); + actRefrescar.Execute; + end; + ViewGrid._Grid.EndUpdate; + end; +end; + +procedure TfEditorPresupuestosCliente.actAnularUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos + and ViewGrid.esSeleccionCeldaDatos + and (FPresupuestos.SITUACION <> SITUACION_PRESUPUESTO_ANULADO); +end; + +procedure TfEditorPresupuestosCliente.actEliminarUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := (FPresupuestos.SITUACION = SITUACION_PRESUPUESTO_PENDIENTE); +end; + +procedure TfEditorPresupuestosCliente.actEnviarEMailExecute(Sender: TObject); +var + APresupuestos : IBizPresupuestoCliente; + +begin + inherited; + + if ViewGrid.NumSeleccionados = 1 then + FController.EnviarPresupuestoPorEMail(FPresupuestos) + else begin +// ShowHourglassCursor; + try + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Presupuestos as ISeleccionable).SelectedRecords); + APresupuestos := (Controller as IPresupuestosClienteController).ExtraerSeleccionados(Presupuestos) as IBizPresupuestoCliente; + + if Assigned(APresupuestos) then + FController.EnviarEmailPresupuestos(APresupuestos); +// RefrescarInterno; + finally + APresupuestos := NIL; +// HideHourglassCursor; + end; + end; +end; + +procedure TfEditorPresupuestosCliente.actEnviarEMailUpdate(Sender: TObject); +begin + inherited; + if HayDatos and Assigned(ViewGrid) then + (Sender as TAction).Enabled := ViewGrid.EsSeleccionCeldaDatos + and (ViewGrid.NumSeleccionados > 0) + else + (Sender as TAction).Enabled := False; +end; + +procedure TfEditorPresupuestosCliente.actGenerarAlbaranCliExecute(Sender: TObject); +begin + inherited; + GenerarAlbaranCli(FPresupuestos.ID); +end; + +procedure TfEditorPresupuestosCliente.actGenerarCertificadoExecute( + Sender: TObject); +var + APresupuestos: IBizPresupuestoCliente; + AllItems: Boolean; + ATexto : String; +begin + APresupuestos := Nil; + AllItems := False; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + if AllItems then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Presupuestos as ISeleccionable).SelectedRecords); + APresupuestos := (Controller as IPresupuestosClienteController).ExtraerSeleccionados(Presupuestos) as IBizPresupuestoCliente; + ATexto := 'Se han generado los certificados de trabajos.'; + end + else begin + APresupuestos := Presupuestos; + ATexto := 'Se ha generado el certificado de trabajos.'; + end; + + + if Assigned(APresupuestos) then + if FController.GenerarCertificados(APresupuestos, AllItems) then + ShowInfoMessage('Generar certificado de trabajo', ATexto) +end; + +procedure TfEditorPresupuestosCliente.actGenerarCertificadoUpdate( + Sender: TObject); +begin + (Sender as TAction).Enabled := HayDatos + and ViewGrid.EsSeleccionCeldaDatos + and (FPresupuestos.SITUACION = SITUACION_PRESUPUESTO_ACEPTADO); +end; + +procedure TfEditorPresupuestosCliente.actGenerarExecute(Sender: TObject); +//var +// Respuesta : Integer; +begin + inherited; +{ + Respuesta := JsGenerarDialog.Execute; + + if Respuesta <> IDCANCEL then + begin + case JsGenerarDialog.CustomButtonResult of + 200 : begin // Generar factura de cliente + actGenerarFactura.Execute; + end; + 100 : begin // Generar albaran de cliente +// actGenerarAlbaranCli.Execute; + end; + end; + actRefrescar.Execute; + end; +} +end; + +procedure TfEditorPresupuestosCliente.actGenerarFacturaExecute(Sender: TObject); +begin + inherited; + + if (ShowConfirmMessage('Generar factura', Format('Desea copiar todos los conceptos del presupuesto %s a la factura?', [Presupuestos.REFERENCIA])) = IDYES) then + GenerarFacturaCliPre(Presupuestos.ID) + else + GenerarFacturaCliPre(Presupuestos.ID, False); + + actRefrescar.Execute; +end; + +procedure TfEditorPresupuestosCliente.actGenerarFacturaUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos + and not (ViewGrid.NumSeleccionados > 1) + and (FPresupuestos.FACTURA = '') + and ViewGrid.esSeleccionCeldaDatos + and (FPresupuestos.SITUACION = SITUACION_PRESUPUESTO_ACEPTADO); +end; + +procedure TfEditorPresupuestosCliente.actGenerarPresupuestoProvExecute(Sender: TObject); +begin + inherited; +// GenerarPresupuestosProv(FPresupuestos); +end; + +procedure TfEditorPresupuestosCliente.actInformesExecute(Sender: TObject); +var + Respuesta : Integer; + AGestorInformesController : IGestorInformesController; + +begin + AGestorInformesController := TGestorInformesController.Create; + try + + Respuesta := JsInformesDialog.Execute; + + if Respuesta <> IDCANCEL then + begin + case JsInformesDialog.CustomButtonResult of + 100 : begin // Listado de facturas pendientes + AGestorInformesController.VerInformeListadoPresupuestos; + end; + end; + end; + + finally + AGestorInformesController := NIL; + end; +end; + +procedure TfEditorPresupuestosCliente.AsignarVista; +begin + ViewGrid := CreateView(TfrViewPresupuestosCliente) as IViewPresupuestosCliente; +end; + +constructor TfEditorPresupuestosCliente.Create(AOwner: TComponent); +begin + inherited; + + FHeaderText := 'Lista de presupuestos de cliente'; + FWindowCaption := FHeaderText; + + AsignarVista; +end; + +destructor TfEditorPresupuestosCliente.Destroy; +begin + FPresupuestos := NIL; + FController := NIL; + inherited; +end; + +procedure TfEditorPresupuestosCliente.DuplicarInterno; +var + APresupuesto : IBizPresupuestoCliente; +begin + inherited; + APresupuesto := FController.Duplicar(Presupuestos); + try + FController.Ver(APresupuesto); + finally + actRefrescar.Execute; + end; +end; + +procedure TfEditorPresupuestosCliente.EliminarInterno; +var + APresupuestos: IBizPresupuestoCliente; + AllItems: Boolean; +begin + APresupuestos := Nil; + AllItems := False; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + if AllItems then + begin + if (Application.MessageBox('Desea borrar los presupuestos seleccionados?', 'Atencin', MB_YESNO) = IDYES) then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Presupuestos as ISeleccionable).SelectedRecords); + APresupuestos := (Controller as IPresupuestosClienteController).ExtraerSeleccionados(Presupuestos) as IBizPresupuestoCliente; + end + end + else begin + if (Application.MessageBox('Desea borrar el presupuesto seleccionado?', 'Atencin', MB_YESNO) = IDYES) then + APresupuestos := Presupuestos; + end; + + if Assigned(APresupuestos) then + begin + FController.Eliminar(APresupuestos, AllItems); + if AllItems then + begin + if (APresupuestos.DataTable.RecordCount > 0) then + begin + with APresupuestos.DataTable do + begin + First; + while not EOF do + begin + JsListaPresupuestosNoEliminados.Content.Add('Ref. Presupuesto: ' + APresupuestos.REFERENCIA + ' ' + APresupuestos.NOMBRE); + Next; + end; + end; + JsListaPresupuestosNoEliminados.Execute; + end; + actRefrescar.Execute; + end; + end; + + ViewGrid.GotoFirst; +end; + +procedure TfEditorPresupuestosCliente.FormShow(Sender: TObject); +begin + cbxListaAnos.OnChange := OnListaAnosChange; //OJO SIEMPRE ANTES DEL INHERITED + + inherited; + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Presupuestos) then + raise Exception.Create('No hay ningn Presupuesto asignado'); + + Presupuestos.DataTable.Active := True; + ViewGrid.GotoFirst; +end; + +function TfEditorPresupuestosCliente.GetController: IPresupuestosClienteController; +begin + Result := FController; +end; + +function TfEditorPresupuestosCliente.GetPresupuestos: IBizPresupuestoCliente; +begin + Result := FPresupuestos; +end; + +procedure TfEditorPresupuestosCliente.ImprimirInterno; +var + Respuesta : Integer; + APresupuestos: IBizPresupuestoCliente; + AllItems: Boolean; + AVerSello: Integer; + bPrevisualizar: Boolean; +begin + APresupuestos := Nil; + AllItems := False; + bPrevisualizar := True; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + //Si esta agrupado solo podr imprimir la lista de elementos visibles + if not ViewGrid.esSeleccionCeldaDatos then + inherited + else + begin + Respuesta := JsImprimirDialog.Execute; + if Respuesta <> IDCANCEL then + begin + case JsImprimirDialog.CustomButtonResult of + 200 : begin // Lista de elementos visibles + inherited; + end; + 100 : begin // Elemento Seleccionado + if AllItems then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Presupuestos as ISeleccionable).SelectedRecords); + APresupuestos := (Controller as IPresupuestosClienteController).ExtraerSeleccionados(Presupuestos) as IBizPresupuestoCliente; + end + else + APresupuestos := Presupuestos; + + if (AppFactuGES.EmpresaActiva.ID = 1) then + //Preguntamos si desea que en los presupuestos se vea el Sello de Paco u Oscar, + //solo para empresa Tecsitel + bPrevisualizar := ElegirOpcionesImpresionPresupuestoCliente(AVerSello); + + if bPrevisualizar and Assigned(APresupuestos) then + FController.Print(APresupuestos, AllItems, AVerSello); + end; + end; + end; + end; +end; + +procedure TfEditorPresupuestosCliente.ModificarInterno; +begin + inherited; + FController.Ver(Presupuestos); +end; + +procedure TfEditorPresupuestosCliente.NuevoInterno; +begin + inherited; + if FController.Anadir(Presupuestos) then + FController.Ver(Presupuestos); +end; + +procedure TfEditorPresupuestosCliente.OnListaAnosChange(Sender: TObject; const Text: string); +begin + Controller.FiltrarAno(Presupuestos, DynWhereDataTable, Text); + if Presupuestos.DataTable.Active then + RefrescarInterno; +end; + +procedure TfEditorPresupuestosCliente.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := FWindowCaption + ' - ' + AppFactuGES.EmpresaActiva.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorPresupuestosCliente.PrevisualizarInterno; +var + Respuesta : Integer; + APresupuestos: IBizPresupuestoCliente; + AllItems: Boolean; + AVerSello: Integer; + bPrevisualizar: Boolean; +begin + APresupuestos := Nil; + AllItems := False; + bPrevisualizar := True; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + //Si esta agrupado solo podr imprimir la lista de elementos visibles + if not ViewGrid.esSeleccionCeldaDatos then + inherited + else + begin + Respuesta := JsPrevisualizarDialog.Execute; + if Respuesta <> IDCANCEL then + begin + case JsPrevisualizarDialog.CustomButtonResult of + 200 : begin // Lista de elementos visibles + inherited; + end; + 100 : begin // Elemento Seleccionado + if AllItems then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Presupuestos as ISeleccionable).SelectedRecords); + APresupuestos := (Controller as IPresupuestosClienteController).ExtraerSeleccionados(Presupuestos) as IBizPresupuestoCliente; + end + else + APresupuestos := Presupuestos; + + if (AppFactuGES.EmpresaActiva.ID = 1) then + //Preguntamos si desea que en los presupuestos se vea el Sello de Paco u Oscar, + //solo para empresa Tecsitel + bPrevisualizar := ElegirOpcionesImpresionPresupuestoCliente(AVerSello); + + if bPrevisualizar and Assigned(APresupuestos) then + FController.Preview(APresupuestos, AllItems, AVerSello); + end; + end; + end; + end; + APresupuestos := Nil; +end; + +procedure TfEditorPresupuestosCliente.RefrescarInterno; +begin + //Volvemos a cargar los aos de los presupuestos + if Assigned(FController) then + ListaAnos := FController.DarListaAnosPresupuestos; + + inherited; +end; + +procedure TfEditorPresupuestosCliente.SetController(const Value: IPresupuestosClienteController); +begin + FController := Value; + + if Assigned(FController) then + ListaAnos := FController.DarListaAnosPresupuestos; +end; + +procedure TfEditorPresupuestosCliente.SetPresupuestos(const Value: IBizPresupuestoCliente); +begin + FPresupuestos := Value; + + if Assigned(FPresupuestos) then + begin + //Se guarda el where de la sentencia origen, por si el editor tiene filtros que + //afecten a este where y en un futuro se desea volver al where origen (filtro de ao)) + DynWhereDataTable := FPresupuestos.DataTable.DynamicWhere.Xml; + + dsDataTable.DataTable := FPresupuestos.DataTable; + if Assigned(ViewGrid) then + (ViewGrid as IViewPresupuestosCliente).Presupuestos := Presupuestos; + end; +end; + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosClienteReport.dcu b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosClienteReport.dcu new file mode 100644 index 0000000..932214b Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosClienteReport.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosClienteReport.dfm b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosClienteReport.dfm new file mode 100644 index 0000000..bc2b72a --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosClienteReport.dfm @@ -0,0 +1,20 @@ +inherited fEditorPresupuestosClientePreview: TfEditorPresupuestosClientePreview + Caption = 'Previsualizar el pedidos proveedor' + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + inherited Image1: TImage + ExplicitLeft = 768 + end + end + inherited TBXDock: TTBXDock + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 540 + object TBXItem58: TTBXItem [1] + Action = actExportarRTF + DisplayMode = nbdmTextOnlyInMenus + Images = SmallImages + end + end + end +end diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosClienteReport.pas b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosClienteReport.pas new file mode 100644 index 0000000..f475589 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosClienteReport.pas @@ -0,0 +1,54 @@ +unit uEditorPresupuestosClienteReport; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uIEditorPresupuestosClientePreview, + JvExComCtrls, JvStatusBar, frxDMPExport, frxGradient, frxChBox, frxCross, + frxRich, frxOLE, frxBarcode, JvAppStorage, JvAppRegistryStorage, + JvComponentBase, uEditorPreview, frxExportImage, frxExportPDF, frxDCtrl, + frxClass, JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, + ComCtrls, TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, + pngimage, frxExportText, frxExportRTF, frxExportMail, frxExportXLS; + +type + TfEditorPresupuestosClientePreview = class(TfEditorPreview, IEditorPresupuestosClientePreview) + TBXItem58: TTBXItem; + procedure actExportarRTFExecute(Sender: TObject); + end; + + +implementation + +{$R *.dfm} + +uses + uPresupuestosClienteReportController, uIntegerListUtils, uDialogUtils, + uFactuGES_App, uDialogOpcionesImpresionPresupuestosCliente; + +procedure TfEditorPresupuestosClientePreview.actExportarRTFExecute(Sender: TObject); +var + I: Integer; + AVerSello: Integer; + bPrevisualizar: Boolean; + +begin + bPrevisualizar := True; + + // inherited; <- No llamar al padre + if not Assigned(Controller) then + raise Exception.Create('No se ha asignado el controlador necesario'); + + if (AppFactuGES.EmpresaActiva.ID = 1) then + //Preguntamos si desea que en los presupuestos se vea el Sello de Paco u Oscar, + //solo para empresa Tecsitel + bPrevisualizar := ElegirOpcionesImpresionPresupuestoCliente(AVerSello); + + if bPrevisualizar then + for I := 0 to ListaID.Count - 1 do + if (Controller as IPresupuestosClienteReportController).ExportToWord(ListaID[I], '', AVerSello) then + ShowInfoMessage('El presupuesto se ha exportado correctamente.'); +end; + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorVariarPrecios.dcu b/Source/Modulos/Presupuestos de cliente/Views/uEditorVariarPrecios.dcu new file mode 100644 index 0000000..10382e5 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Views/uEditorVariarPrecios.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorVariarPrecios.dfm b/Source/Modulos/Presupuestos de cliente/Views/uEditorVariarPrecios.dfm new file mode 100644 index 0000000..2343ab4 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/uEditorVariarPrecios.dfm @@ -0,0 +1,128 @@ +object fEditorVariarPrecios: TfEditorVariarPrecios + Left = 0 + Top = 0 + BorderStyle = bsDialog + Caption = 'Variar precios' + ClientHeight = 184 + ClientWidth = 387 + Color = clWindow + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + PixelsPerInch = 96 + TextHeight = 13 + object Label1: TLabel + Left = 21 + Top = 16 + Width = 354 + Height = 13 + Caption = + 'Seleccione el tipo de variaci'#243'n que desea realizar a las filas s' + + 'eleccionadas.' + end + object Label3: TLabel + Left = 263 + Top = 53 + Width = 11 + Height = 13 + Alignment = taRightJustify + Caption = '%' + end + object Label2: TLabel + Left = 263 + Top = 93 + Width = 11 + Height = 13 + Alignment = taRightJustify + Caption = '%' + FocusControl = bAceptar + end + object Panel1: TPanel + Left = 0 + Top = 143 + Width = 387 + Height = 41 + Align = alBottom + TabOrder = 0 + DesignSize = ( + 387 + 41) + object bAceptar: TButton + Left = 223 + Top = 8 + Width = 75 + Height = 25 + Anchors = [akTop, akRight] + Caption = 'Aceptar' + ModalResult = 1 + TabOrder = 0 + end + object bCancelar: TButton + Left = 304 + Top = 8 + Width = 75 + Height = 25 + Anchors = [akTop, akRight] + Caption = 'Cancelar' + ModalResult = 2 + TabOrder = 1 + end + end + object sDescuento: TcxSpinEdit + Left = 192 + Top = 50 + Properties.AssignedValues.MinValue = True + Properties.ValueType = vtFloat + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Width = 65 + end + object rdDescuento: TcxRadioButton + Left = 80 + Top = 52 + Width = 113 + Height = 17 + Action = actDescuento + TabOrder = 2 + TabStop = True + end + object rdAumento: TcxRadioButton + Left = 80 + Top = 92 + Width = 113 + Height = 17 + Action = actAumento + TabOrder = 3 + end + object sAumento: TcxSpinEdit + Left = 192 + Top = 90 + Properties.ValueType = vtFloat + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 4 + Width = 65 + end + object ActionListContenido: TActionList + Left = 24 + Top = 56 + object actDescuento: TAction + Caption = 'Descuento' + Checked = True + OnExecute = actDescuentoExecute + end + object actAumento: TAction + Caption = 'Aumento' + OnExecute = actAumentoExecute + end + end +end diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorVariarPrecios.pas b/Source/Modulos/Presupuestos de cliente/Views/uEditorVariarPrecios.pas new file mode 100644 index 0000000..7168c3b --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/uEditorVariarPrecios.pas @@ -0,0 +1,92 @@ +unit uEditorVariarPrecios; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, cxControls, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, + cxDropDownEdit, cxCalendar, ExtCtrls, uEditorBasico, uIEditorVariarPrecios, + cxGraphics, DB, uDAInterfaces, uDADataTable, cxDBEdit, uEmpresasController, + cxSpinEdit, cxRadioGroup, ActnList; + +type + TfEditorVariarPrecios = class(TfEditorBasico, IEditorVariarPrecios) + Label1: TLabel; + bAceptar: TButton; + bCancelar: TButton; + Panel1: TPanel; + sDescuento: TcxSpinEdit; + Label3: TLabel; + rdDescuento: TcxRadioButton; + rdAumento: TcxRadioButton; + sAumento: TcxSpinEdit; + Label2: TLabel; + ActionListContenido: TActionList; + actDescuento: TAction; + actAumento: TAction; + procedure actDescuentoExecute(Sender: TObject); + procedure actAumentoExecute(Sender: TObject); + + private + FPorcentaje: Variant; + function GetPorcentaje: Variant; + procedure SetPorcentaje(const Value: Variant); + function GetTipoOperacion: Integer; + + public + property TipoOperacion: Integer Read GetTipoOperacion; + property Porcentaje: Variant Read GetPorcentaje write SetPorcentaje; + end; + +implementation +{$R *.dfm} + +uses uFactuGES_App; + +procedure TfEditorVariarPrecios.actAumentoExecute(Sender: TObject); +begin + if rdAumento.Checked then + begin + sDescuento.Clear; + sDescuento.Enabled := False; + sAumento.Enabled := True; + end; +end; + +procedure TfEditorVariarPrecios.actDescuentoExecute(Sender: TObject); +begin + if rdDescuento.Checked then + begin + sAumento.Clear; + sAumento.Enabled := False; + sDescuento.Enabled := True; + end; +end; + +function TfEditorVariarPrecios.GetPorcentaje: Variant; +begin + if rdDescuento.Checked then + Result := sDescuento.EditValue + else + Result := sAumento.EditValue +end; + +function TfEditorVariarPrecios.GetTipoOperacion: Integer; +begin + if rdDescuento.Checked then + Result := -1 + else if rdAumento.Checked then + Result := 1 + else + Result := 0; +end; + +procedure TfEditorVariarPrecios.SetPorcentaje(const Value: Variant); +begin + if rdDescuento.Checked then + sDescuento.EditValue := Value + else + sAumento.EditValue := Value; +end; + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Views/uPresupuestosClienteViewRegister.dcu b/Source/Modulos/Presupuestos de cliente/Views/uPresupuestosClienteViewRegister.dcu new file mode 100644 index 0000000..735d513 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Views/uPresupuestosClienteViewRegister.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Views/uPresupuestosClienteViewRegister.pas b/Source/Modulos/Presupuestos de cliente/Views/uPresupuestosClienteViewRegister.pas new file mode 100644 index 0000000..7ff1ead --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/uPresupuestosClienteViewRegister.pas @@ -0,0 +1,38 @@ +unit uPresupuestosClienteViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorPresupuestosCliente, uEditorPresupuestoCliente, uEditorElegirPresupuestosCliente, + uEditorElegirArticulosPresupuestoCliente, uEditorPresupuestosClienteReport, uEditorVariarPrecios, + uDialogListaPresupuestosEnvioEMail; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorPresupuestosCliente, 'EditorPresupuestosCliente'); + EditorRegistry.RegisterClass(TfEditorPresupuestoCliente, 'EditorPresupuestoCliente'); + EditorRegistry.RegisterClass(TfEditorElegirPresupuestosCliente, 'EditorElegirPresupuestosCliente'); + EditorRegistry.RegisterClass(TfEditorElegirArticulosPresupuestoCliente, 'EditorElegirArticulosPresupuestosCliente'); + EditorRegistry.RegisterClass(TfEditorPresupuestosClientePreview, 'EditorPresupuestosClientePreview'); + EditorRegistry.RegisterClass(TfEditorVariarPrecios, 'EditorVariarPrecios'); + EditorRegistry.RegisterClass(TfDialogListaPresupuestosEnvioEMail, 'DialogListaPresupuestosEnvioEMail'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorPresupuestosCliente); + EditorRegistry.UnRegisterClass(TfEditorPresupuestoCliente); + EditorRegistry.UnRegisterClass(TfEditorElegirPresupuestosCliente); + EditorRegistry.UnRegisterClass(TfEditorElegirArticulosPresupuestoCliente); + EditorRegistry.UnRegisterClass(TfEditorPresupuestosClientePreview); + EditorRegistry.UnRegisterClass(TfEditorVariarPrecios); + EditorRegistry.UnRegisterClass(TfDialogListaPresupuestosEnvioEMail); +end; + +end. + diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewDatosYSeleccionClientePresupuesto.dcu b/Source/Modulos/Presupuestos de cliente/Views/uViewDatosYSeleccionClientePresupuesto.dcu new file mode 100644 index 0000000..4378d7a Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Views/uViewDatosYSeleccionClientePresupuesto.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewDatosYSeleccionClientePresupuesto.dfm b/Source/Modulos/Presupuestos de cliente/Views/uViewDatosYSeleccionClientePresupuesto.dfm new file mode 100644 index 0000000..c767cd9 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/uViewDatosYSeleccionClientePresupuesto.dfm @@ -0,0 +1,493 @@ +inherited frViewDatosYSeleccionClientePresupuesto: TfrViewDatosYSeleccionClientePresupuesto + Width = 505 + Height = 165 + ExplicitWidth = 505 + ExplicitHeight = 165 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 505 + Height = 165 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 0 + Margins.Bottom = 0 + Align = alClient + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + DesignSize = ( + 505 + 165) + object edtlNombre: TcxDBTextEdit + Left = 63 + Top = 41 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'NOMBRE' + DataBinding.DataSource = dsCliente + Enabled = False + ParentFont = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 2 + Height = 21 + Width = 224 + end + object edtNIFCIF: TcxDBTextEdit + Left = 392 + Top = 41 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'NIF_CIF' + DataBinding.DataSource = dsCliente + Enabled = False + ParentFont = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 3 + Height = 21 + Width = 103 + end + object Button1: TBitBtn + Left = 10 + Top = 10 + Width = 115 + Height = 25 + Action = actElegirContacto + Caption = 'Elegir un cliente' + TabOrder = 0 + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FF00FF00FF00 + FF00FF00FF00EB00EB00C507C600AB13AD00A119A2009F19A000A215A400AA10 + AC00B608B800CE00CE00EF00EF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00B426B000526840004A823400478F310043962F0042992F0043972F004690 + 3100488533004B7237005A405100D201D200FF00FF00FF00FF00FF00FF00FF00 + FF0062654E004F81350047903100409C2E003AA62C0038AA2B0039A72B003E9E + 2D00459230004D84340056753800A0189F00FF00FF00FF00FF00FF00FF00FF00 + FF005F6B4C004B89330042992F0039A82B0032B428002EBB260031B6270037AB + 2A00409C2E00498C3200527B3600B015B100FF00FF00FF00FF00FF00FF00FF00 + FF0090488700488D32003E9E2D0035AF290035B631007ACB7B002DBF280033B2 + 28003DA12D0047903100576A4800EC01EC00FF00FF00FF00FF00FF00FF00FF00 + FF00F008F1005F7351003E9F2D0034B0290080AC8100D2D3D30081BB820032B2 + 28003DA22D004A863A00C519C500FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00EE09EF007861730036923E00598CAE00498CBB004A81A6002B70 + 3A00606D5900D613D600FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00EA0CF400608CD00054A2D80053A1D6004F9DD300488B + C2009D11AC00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF008C67DE005CA9DD005CA9DD005AA7DC0056A4D900519F + D400565FAB00EA00EA00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00EC0DF60060A7DE0063B0E30063B0E30061AEE1005CA9DD0056A4 + D9004E94CC00C105C600FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00C532ED0066B2E5006BB7E9006BB7E90067B3E60061AEE1005AA7 + DC00539FD500A817BE00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00BA3AE7004989B1004A85AC005895BD0068B2E30064B0E4005CA9 + DE0053A0D400AA1BC300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00CA23E8005098C400539AC7004E93BE00437DA2005190BA005198 + C6003C79A000BE08C300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00F804FC006995D40062ACDA005DA6D3005299C6004284AD003C7F + A900535AA100F300F300FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00C140ED0071BAEA0068B2E00059A1CF004990BC004378 + AA00C315D600FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00C83EF000808BDF00668BCC007C60C700D116 + E400FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} + end + object Button2: TBitBtn + Left = 131 + Top = 10 + Width = 143 + Height = 25 + Action = actAnadirContacto + Caption = 'Dar de alta un cliente' + TabOrder = 1 + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00D5BFB1006947 + 3100694731006947310069473100694731006947310069473100694731006947 + 3100694731006947310069473100694731006947310069473100D5BFB100F6F2 + EF00B7A29300B7A29300B7A29300B7A29300B7A29300B7A29300B7A29300B7A2 + 9300B7A29300B7A29300B7A29300B7A29300B7A2930069473100D5BFB1002A80 + 1E00136F0D00136F0D00136F0D00136F0D00136F0D00136F0D002A801E00E3D5 + CE00E0D1C900DFCFC600DCCBC100DBC9BF00B7A2930069473100D5BFB10059A8 + 5100448B2F003CA02C0032A4260032A526003D9E2C00438D2E00136F0D00E7DB + D500A1745C00A1745C00A1745C00A1745C00B7A2930069473100D5BFB10080BC + 790042952E0031A62600369B3200369E320032A727003E952C00136F0D00EAE0 + DA00E7DBD500E4D7D000E2D3CB00DFCFC600B7A2930069473100D5BFB100CFE8 + CD004CA741002D942F0071AB90006FA68E0030923100136F0D00EFE8E300EDE4 + DF00A1745C00A1745C00A1745C00A1745C00B7A2930069473100D5BFB100FFFF + FF00B9DDC2004F9DA000559BC8004E96C2004E8E8F00A8C2AA00F2ECE800EFE8 + E300EDE4DF00EAE0DA00E7DBD500E4D7D000B7A2930069473100D5BFB100FFFF + FF00A5CDE8005DAADD005CA9DD0057A4D900519ACC00A0BACA00F5F0ED00F2EC + E800EFE8E300EDE4DF00EAE0DA00E7DBD500B7A2930069473100D5BFB100ECF6 + FA006CB9DF0065B2E50065B1E5005FACDF0056A2D700689EBE00F7F4F100F5F0 + ED00F2ECE800006000000060000000600000B7A2930069473100D5BFB100E9F6 + FA005BB0D5005CA6D50065AFDF0062AFE20058A4D8003285A700FAF8F600F7F4 + F100F7A073000060000033CB510000600000B7A2930069473100D5BFB100F4FA + FC0078C0DD0056A0CD00569DCA00539CCA00448DBB003285A700FDFCFB000060 + 0000006000000060000040D86500006000000060000000600000D5BFB100FFFF + FF00CEEAF40062B5DE005DA7D5004B92BE003285A700C6DCE600FFFFFF000060 + 000060F898005AF28F004DE57A0040D865003AD25C0000600000D5BFB100FFFF + FF00FFFFFF00CEEAF400A5CDE800A5CDE800CEEAF400FFFFFF00FFFFFF000060 + 000000600000006000005AF28F00006000000060000000600000D5BFB100D5BF + B100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BF + B100D5BFB1000060000060F8980000600000D5BFB100D5BFB100FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00006000000060000000600000FF00FF00FF00FF00} + end + object Button3: TBitBtn + Left = 303 + Top = 130 + Width = 192 + Height = 25 + Action = actVerContacto + Caption = 'Ver ficha completa del cliente...' + TabOrder = 8 + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00D5BFB1006947 + 3100694731006947310069473100694731006947310069473100694731006947 + 3100694731006947310069473100694731006947310069473100D5BFB100F6F2 + EF00B7A29300B7A29300B7A29300B7A29300B7A29300B7A29300B7A29300B7A2 + 9300B7A29300B7A29300B7A29300B7A29300B7A2930069473100D5BFB1002A80 + 1E00136F0D00136F0D00136F0D00136F0D00136F0D00136F0D002A801E00E3D5 + CE00E0D1C900DFCFC600DCCBC100DBC9BF00B7A2930069473100D5BFB10059A8 + 5100448B2F003CA02C0032A4260032A526003D9E2C00438D2E00136F0D00E7DB + D500A1745C00A1745C00A1745C00A1745C00B7A2930069473100D5BFB10080BC + 790042952E0031A62600369B3200369E320032A727003E952C00136F0D00EAE0 + DA00E7DBD500E4D7D000E2D3CB00DFCFC600B7A2930069473100D5BFB100CFE8 + CD004CA741002D942F0071AB90006FA68E0030923100136F0D00EFE8E300EDE4 + DF00A1745C00A1745C00A1745C00A1745C00B7A2930069473100D5BFB100FFFF + FF00B9DDC2004F9DA000559BC8004E96C2004E8E8F00A8C2AA00F2ECE800EFE8 + E300EDE4DF00EAE0DA00E7DBD500E4D7D000B7A2930069473100D5BFB100FFFF + FF00A5CDE8005DAADD005CA9DD0057A4D900519ACC00A0BACA00F5F0ED00F2EC + E800EFE8E300EDE4DF00EAE0DA00E7DBD500B7A2930069473100D5BFB100ECF6 + FA006CB9DF0065B2E50065B1E5005FACDF0056A2D700689EBE00F7F4F100F5F0 + ED00F2ECE800EFE8E300EDE4DF00EAE0DA00B7A2930069473100D5BFB100E9F6 + FA005BB0D5005CA6D50065AFDF0062AFE20058A4D8003285A700FAF8F600F7F4 + F100F7A07300F7A07300F7A07300F7A07300B7A2930069473100D5BFB100F4FA + FC0078C0DD0056A0CD00569DCA00539CCA00448DBB003285A700FDFCFB00FAF8 + F600F7F4F100F5F0ED00F2ECE800EFE8E300B7A2930069473100D5BFB100FFFF + FF00CEEAF40062B5DE005DA7D5004B92BE003285A700C6DCE600FFFFFF00FDFC + FB00F7A07300F7A07300F7A07300F7A07300B7A2930069473100D5BFB100FFFF + FF00FFFFFF00CEEAF400A5CDE800A5CDE800CEEAF400FFFFFF00FFFFFF00FFFF + FF00FEFEFD00FCFAF900F9F6F400F6F2EF00F3EEEA0069473100D5BFB100D5BF + B100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BF + B100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100D5BFB100FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} + end + object edtPersonaContacto: TcxDBTextEdit + Left = 63 + Top = 101 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'PERSONA_CONTACTO' + DataBinding.DataSource = dsPresupuesto + ParentFont = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 6 + Height = 21 + Width = 283 + end + object edtDireccion: TcxTextEdit + Left = 63 + Top = 70 + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 4 + Width = 121 + end + object Button4: TButton + Left = 472 + Top = 68 + Width = 23 + Height = 25 + Action = actElegirDireccion + TabOrder = 5 + end + object Button5: TButton + Left = 472 + Top = 99 + Width = 23 + Height = 25 + Action = actElegirPersonaContacto + TabOrder = 7 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item7: TdxLayoutItem + Caption = 'Button1' + ShowCaption = False + Control = Button1 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item8: TdxLayoutItem + Caption = 'Button2' + ShowCaption = False + Control = Button2 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group2: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group4: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item1: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Nombre:' + Control = edtlNombre + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item2: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'NIF/CIF:' + Control = edtNIFCIF + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group3: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item4: TdxLayoutItem + AutoAligns = [] + AlignHorz = ahClient + AlignVert = avCenter + Caption = 'Direcci'#243'n' + Control = edtDireccion + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item5: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'Button4' + ShowCaption = False + Control = Button4 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group5: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item3: TdxLayoutItem + AutoAligns = [] + AlignHorz = ahClient + AlignVert = avCenter + Caption = 'Contacto:' + Control = edtPersonaContacto + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item6: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + ShowCaption = False + Control = Button5 + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Item9: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'Button3' + ShowCaption = False + Control = Button3 + ControlOptions.ShowBorder = False + end + end + end + object dsCliente: TDADataSource + Left = 400 + Top = 8 + end + object ActionList1: TActionList + Images = PngImageList + Left = 368 + Top = 8 + object actElegirContacto: TAction + Caption = 'Elegir un cliente' + ImageIndex = 1 + OnExecute = actElegirContactoExecute + end + object actAnadirContacto: TAction + Caption = 'Dar de alta un cliente' + ImageIndex = 0 + OnExecute = actAnadirContactoExecute + end + object actVerContacto: TAction + Caption = 'Ver ficha completa del cliente...' + ImageIndex = 2 + OnExecute = actVerContactoExecute + OnUpdate = actVerContactoUpdate + end + object actElegirDireccion: TAction + Caption = '...' + OnExecute = actElegirDireccionExecute + OnUpdate = actElegirDireccionUpdate + end + object actElegirPersonaContacto: TAction + Caption = '...' + OnExecute = actElegirPersonaContactoExecute + OnUpdate = actElegirPersonaContactoUpdate + end + end + object PngImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000002224944415478DA + 95935D48936114C77FCB36584A6064161515DEA441108B240293E8A682246805 + DEA45020F40196505D081242DE94512B8C20169937056914D52E726B6083B114 + D44CD3D51A216BB6656B5FEF677B5FF31D23033DF070CE03CFFFF73F1CCE6362 + 29D1806AD44E4C5A32F5F58FAA8BD5D73DD8465757034D4D4EFA4E8C62000ED7 + 56E997647490DFE131BD2ED9584971D98EB9478D2603D279B39EE6733DC6DD00 + 68E2EF7E07E95F2291688C48629ABDC71DACABD8AD0334E7B420104D24F4A3D5 + DDD707E60087F66C2234D0CECF2F41643987556566676799C9C4387AD18FF964 + 91E178EA522DF73ADC851D1CA85ECD27D77948995861B552844C2A9962303441 + DD051FA22473E5095C735B3972DAC6D3DB016EED7BC9FD47CFE601E57CF3B661 + C966D1E62C880299549A696915B6639D4892A243D6B6AC349C0B00DA0C22EF7B + 484EBDCA015424512491125036D751B1CBAE8BB5330F12459937EF860A01DEA0 + 8BA0FB0E5B154BAE832C810CACDF594F4DD5C17FC45AF6FA87F3800D95022DFD + ADC47E84682CDF8F222A3C9CF1303915E6C3E5495DDC7AE379C14E546F5F9307 + F8E4C7BC187F4BA6344E49D24C6E8A24AD12E65809A1895102CD6386B3F8B793 + C0F0C73CC0196927188E2297651096A7D096D4922D6659DCC2E7AF43F8CE8C70 + F5AEEBFF1D9CF5D889C7230BAE6F696939BDF6D7BAABACA87A567279647C320F + A8B16DA1BBD7B3A47FA5850168EB702C596C6CA2AA2EFA332E187F0080F1503E + 182A98A90000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AC400000AC401666D82D4000002A94944415478DA + 7D925D48536118C79FF3B5AF36DD66B639CB924243225010BC49BA914004CDE8 + E32228B482EA4689A22289C8CBA28B32B1061688902912D28D16991F6062B2DC + 45921FB954669BF39C9D6DE7EC9CF3EEBC9D2D8C2CB7079E9BF779FEBFF7F922 + 30C69034822060D3665F5F3A0B90B8C672FCAEC07AD8E35DF0DFBFE3F64EC05F + F647F72FC0DB75AED1E1B43D138438C9B26108B11C0443BC30ECF959D731303F + 9411D0D35C612C2ADBEF3319F5B992AC402412037F9003A4C8E05F17679BDA3E + 976BA9D1F4807B95552E877D90222910250556023170E66481D900F0CD17C0AD + 5DDE63F3CBFC505AC0685B6DE34654762B88009B350B8AF658815011C8521C04 + 518487DD530D9D83BECEB480C98EDA13F9798E5E9A61526F098440D1CA572409 + 24298EEFBA271B7BC756D203FA5A8FE49516EDF3313A5D8AA0AAAAD6BF929A01 + CFC7505DCBBBAAD590349C710BD3EEFA57D916D3A954920648249255283031B3 + 3A7BE1D164A5F61CCC0878D15C917FA8C43165D6334E558B25DBD80847E51BCF + A79B3E7D65DB33AEF1E04D570EE5723DB513C4C966E9006101ED0662043C6697 + 30B7DB3021CE6D5C5EEA58FAB22DE0F0ADBD36D25E38A6E6E2126413E00CAA81 + FAE27AE85FEB876EF10D30DC0E2083542432F3E3F8E2CBC5F7FF01CA5A8E3E21 + 6CC6AB8A264636110C7A80EADC2AE88B0E004474C0B026A035C76BF2B2A7ED43 + 29E671680BA0FC76B50F5BC902641501658B90304BA0EA11100A05544C0774D8 + 0834A7396B04DFE8C8E9B58FC19EAD80EB358B84852E44D9F1DF62930C9856B5 + 6320801419A0A27AA079430AB4303E722530EE6FDF3A838B15E729B3E50195C3 + D855B34A247F074A8BA91A40A2808C91803955E6E70233F36F3D0D58C6DEEDD6 + B8D35040179B9DA602305266AC028925A4A0B822A090C20BAB09BF96F35D736E + 53F70B90E997F07974AFDF0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001EC4944415478DA + A5934B6813511486BF541B88CD26620DA262A51BDB8520158308D5852055B01B + A3E8CEBD2E7CE063512852D09D2E82E04604AB1B5D4451B059D8A6010D84D842 + 5B6B6B1A8D414A4C9B18EB4C27F3F466D41943ED4233309C3BDC39DFFFDF9F7B + 3C9665D1C8E379323CD510C1061C3DD0697F48C531BEE7A7EDB57F6B072DADBB + 9C1F4DE154D74D34DD70DE43272FB9805AF3975484E56F1A856289C2D23CFB4F + 44D8D4BE17DD30B932A8D629B7358D70F7C1D39F8023FBB6917B35C0D78F590C + 43EC5A06954A8505A5C4B1CB2947F14F07D158D205F48436F03E761E640FEB7C + 3ED660204B3263B9597A2F24ED866B8F59DD414F28C8E7443FDE6A55A883AAA9 + 28F232F3FA7ABA8EDFAC53FEBD1E1A4DBB805A0685370F91E65E0880084BD358 + 9255CCB65EDAF784571E413378F97ABC1E90C8C6C88EDC6687E9150EAAA415D8 + BCFB14DD9D875734D76A2235E102B674A85C1CEEA3B498E374F020A666727F21 + 4E662ECFDBAB19BBB9EFD6B3BA0C423B37BA80A4F188E733A32881327EA91991 + 22924FA7B9E427373B45FADCB4A3ACFD72929E78E702EE1506C8E68B18AD0AEA + 5A595C2F44A02D3495BD7CF8344EF2CC24D7EFC4567770361EA65C2EFCF5AA06 + 0241A2E1215BD5302DBB9AA24ECE645C4077D77606A3F17F9E0307D07F23F2FF + C3D4E838FF008E7263BE13CA147C0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end> + Left = 304 + Top = 8 + Bitmap = {} + end + object dsPresupuesto: TDADataSource + Left = 336 + Top = 8 + end +end diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewDatosYSeleccionClientePresupuesto.pas b/Source/Modulos/Presupuestos de cliente/Views/uViewDatosYSeleccionClientePresupuesto.pas new file mode 100644 index 0000000..9215a6c --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/uViewDatosYSeleccionClientePresupuesto.pas @@ -0,0 +1,424 @@ +unit uViewDatosYSeleccionClientePresupuesto; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, StdCtrls, cxControls, cxContainer, cxEdit, cxLabel, + cxDBLabel, ExtCtrls, DB, uDADataTable, uBizContactos, + ComCtrls, ToolWin, ActnList, ImgList, PngImageList, cxTextEdit, cxDBEdit, + pngimage, JvExControls, JvComponent, JvButton, JvTransparentButton, Mask, + DBCtrls, uClientesController, dxLayoutControl, Buttons, uDAInterfaces, + cxMaskEdit, cxButtonEdit, uBizPresupuestosCliente, uBizDireccionesContacto, + uDireccionesContactoController, Menus, cxLookAndFeelPainters, cxButtons; + +type + IViewDatosYSeleccionClientePresupuesto = interface(IViewBase) + ['{0BD8B1D7-A992-448A-A9EE-ECE8CBA30A24}'] + function GetPresupuesto: IBizPresupuestoCliente; + procedure SetPresupuesto(const Value: IBizPresupuestoCliente); + property Presupuesto: IBizPresupuestoCliente read GetPresupuesto write SetPresupuesto; + + function GetCliente: IBizCliente; + procedure SetCliente(Value: IBizCliente); + property Cliente: IBizCliente read GetCliente write SetCliente; + + function GetID_Cliente: integer; + procedure SetID_Cliente(const Value: integer); + property ID_Cliente: integer read GetID_Cliente write SetID_Cliente; + + function GetOnClienteChanged : TNotifyEvent; + procedure SetOnClienteChanged (const Value : TNotifyEvent); + property OnClienteChanged : TNotifyEvent read GetOnClienteChanged + write SetOnClienteChanged; + + procedure ElegirPersonaContacto; + procedure ElegirDireccionCliente; + procedure ElegirCliente; + procedure VerFichaCliente; + procedure AnadirNuevoCliente; + procedure RefrescarDireccion; + end; + + TfrViewDatosYSeleccionClientePresupuesto = class(TfrViewBase, IViewDatosYSeleccionClientePresupuesto) + dsCliente: TDADataSource; + ActionList1: TActionList; + actElegirContacto: TAction; + actAnadirContacto: TAction; + actVerContacto: TAction; + PngImageList: TPngImageList; + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Item1: TdxLayoutItem; + edtlNombre: TcxDBTextEdit; + dxLayoutControl1Item2: TdxLayoutItem; + edtNIFCIF: TcxDBTextEdit; + Button1: TBitBtn; + dxLayoutControl1Item7: TdxLayoutItem; + Button2: TBitBtn; + dxLayoutControl1Item8: TdxLayoutItem; + Button3: TBitBtn; + dxLayoutControl1Item9: TdxLayoutItem; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Group2: TdxLayoutGroup; + dsPresupuesto: TDADataSource; + actElegirDireccion: TAction; + actElegirPersonaContacto: TAction; + dxLayoutControl1Item3: TdxLayoutItem; + edtPersonaContacto: TcxDBTextEdit; + dxLayoutControl1Group4: TdxLayoutGroup; + dxLayoutControl1Item4: TdxLayoutItem; + edtDireccion: TcxTextEdit; + Button4: TButton; + dxLayoutControl1Item5: TdxLayoutItem; + dxLayoutControl1Group3: TdxLayoutGroup; + dxLayoutControl1Item6: TdxLayoutItem; + Button5: TButton; + dxLayoutControl1Group5: TdxLayoutGroup; + procedure actElegirContactoExecute(Sender: TObject); + procedure actAnadirContactoExecute(Sender: TObject); + procedure actVerContactoUpdate(Sender: TObject); + procedure edtPersonaContactoPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure edtDireccionPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure actVerContactoExecute(Sender: TObject); + procedure actElegirDireccionUpdate(Sender: TObject); + procedure actElegirDireccionExecute(Sender: TObject); + procedure actElegirPersonaContactoExecute(Sender: TObject); + procedure actElegirPersonaContactoUpdate(Sender: TObject); + + private + FOnClienteChanged : TNotifyEvent; + FMsgElegirCliente: String; + protected + FClientesController : IClientesController; + FDireccionesController : IDireccionesContactoController; + FPresupuesto : IBizPresupuestoCliente; + FCliente : IBizCliente; + FDireccion : IBizDireccionesContacto; + function GetCliente: IBizCliente; virtual; + procedure SetCliente(Value: IBizCliente); virtual; + function GetOnClienteChanged : TNotifyEvent; + procedure SetOnClienteChanged (const Value : TNotifyEvent); + procedure SetReadOnly(Value: Boolean); override; + function GetID_Cliente: integer; virtual; + procedure SetID_Cliente(const Value: integer); virtual; + function GetPresupuesto: IBizPresupuestoCliente; + procedure SetPresupuesto(const Value: IBizPresupuestoCliente); + procedure EscribirTextoDireccion; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure ElegirPersonaContacto; + procedure ElegirDireccionCliente; + procedure ElegirCliente; + procedure VerFichaCliente; + procedure AnadirNuevoCliente; + procedure RefrescarDireccion; + property Presupuesto: IBizPresupuestoCliente read GetPresupuesto write SetPresupuesto; + property Cliente: IBizCliente read GetCliente write SetCliente; + property OnClienteChanged : TNotifyEvent read GetOnClienteChanged write SetOnClienteChanged; + property ID_Cliente: integer read GetID_Cliente write SetID_Cliente; + end; + +implementation + +{$R *.dfm} + +uses + uDataModuleClientes, Math, uCustomView, uBizContactosPersonal, uDialogUtils; + + +procedure TfrViewDatosYSeleccionClientePresupuesto.actElegirContactoExecute(Sender: TObject); +begin + ElegirCliente; +end; + +procedure TfrViewDatosYSeleccionClientePresupuesto.actElegirDireccionExecute( + Sender: TObject); +begin + inherited; + ElegirDireccionCliente; +end; + +procedure TfrViewDatosYSeleccionClientePresupuesto.actElegirDireccionUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := Assigned(FCliente.Direcciones) and + (FCliente.Direcciones.Active) and (FCliente.Direcciones.RecordCount > 0); +end; + +procedure TfrViewDatosYSeleccionClientePresupuesto.actElegirPersonaContactoExecute( + Sender: TObject); +begin + inherited; + ElegirPersonaContacto; +end; + +procedure TfrViewDatosYSeleccionClientePresupuesto.actElegirPersonaContactoUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := Assigned(FCliente.Personal) and + (FCliente.Personal.Active) and (FCliente.Personal.RecordCount > 0); +end; + +procedure TfrViewDatosYSeleccionClientePresupuesto.actAnadirContactoExecute( + Sender: TObject); +begin + AnadirNuevoCliente; +end; + +procedure TfrViewDatosYSeleccionClientePresupuesto.actVerContactoExecute( + Sender: TObject); +begin + inherited; + VerFichaCliente; +end; + +procedure TfrViewDatosYSeleccionClientePresupuesto.actVerContactoUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (Length(edtlNombre.Text) > 0); +end; + +procedure TfrViewDatosYSeleccionClientePresupuesto.AnadirNuevoCliente; +var + ACliente : IBizCliente; +begin + inherited; + ACliente := (FClientesController.Nuevo as IBizCliente); + FClientesController.Ver(ACliente); + Self.Cliente := ACliente; +end; + +constructor TfrViewDatosYSeleccionClientePresupuesto.Create(AOwner: TComponent); +begin + inherited; + FMsgElegirCliente := 'Elija el cliente al que se le realizar el presupuesto.'; + FClientesController := TClientesController.Create; + FDireccionesController := TDireccionesContactoController.Create; + + edtlNombre.Enabled := False; + edtNIFCIF.Enabled := False; + edtDireccion.Enabled := False; + edtPersonaContacto.Enabled := False; +end; + +destructor TfrViewDatosYSeleccionClientePresupuesto.Destroy; +begin + FClientesController := NIL; + FDireccionesController := NIL; + inherited; +end; + +procedure TfrViewDatosYSeleccionClientePresupuesto.edtDireccionPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + inherited; + ElegirDireccionCliente; +end; + +procedure TfrViewDatosYSeleccionClientePresupuesto.edtPersonaContactoPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + inherited; + ElegirPersonaContacto; +end; + +procedure TfrViewDatosYSeleccionClientePresupuesto.ElegirCliente; +var + ACliente : IBizCliente; +begin + inherited; + + ACliente := (FClientesController.ElegirContacto(FClientesController.BuscarTodos, FMsgElegirCliente, False) as IBizCliente); + + if Assigned(ACliente) then + Self.Cliente := ACliente; + ACliente := Nil; +end; + +procedure TfrViewDatosYSeleccionClientePresupuesto.ElegirDireccionCliente; +var + ADireccion : IBizDireccionesContacto; +begin + inherited; + ADireccion := FClientesController.ElegirDireccionEntrega(FCliente, ' '); + + if Assigned(ADireccion) then + begin + FDireccion := ADireccion; + FPresupuesto.Edit; + + if FDireccion.IDIsNull then + begin + FPresupuesto.ClearField('ID_DIRECCION'); + FPresupuesto.ClearField('IMPORTE_PORTE'); + end + else begin + FPresupuesto.ID_DIRECCION := FDireccion.ID; + FPresupuesto.IMPORTE_PORTE := FDireccion.PORTE; + end; + //Siempre asignaremos la persona de contacto ya sea de las direcciones del contacto o la ID_Direccion=0 que es la principal de la ficha + FPresupuesto.PERSONA_CONTACTO := FDireccion.PERSONA_CONTACTO; + EscribirTextoDireccion; + end; +end; + +procedure TfrViewDatosYSeleccionClientePresupuesto.ElegirPersonaContacto; +var + APersona : IBizContactoPersonal; +begin + inherited; + APersona := FClientesController.ElegirPersonaContacto(FCliente.Personal, 'El cliente dispone de personas de contacto dadas de alta en su ficha. Seleccione la que quiere utilizar.'); + if Assigned(APersona) then + begin + FPresupuesto.Edit; + FPresupuesto.PERSONA_CONTACTO := APersona.NOMBRE; + end; +end; + +procedure TfrViewDatosYSeleccionClientePresupuesto.EscribirTextoDireccion; +var + ACadena : String; +begin + ACadena := ''; + + if Assigned(FDireccion) then + ACadena := Format('%s %s %s %s', + [FDireccion.CALLE, FDireccion.POBLACION, + FDireccion.CODIGO_POSTAL, FDireccion.PROVINCIA]); + + edtDireccion.Text := ACadena; +end; + +function TfrViewDatosYSeleccionClientePresupuesto.GetCliente: IBizCliente; +begin + Result := FCliente; +end; + +function TfrViewDatosYSeleccionClientePresupuesto.GetID_Cliente: integer; +begin + Result := -1; + if Assigned(FCliente) then + Result := FCliente.ID; +end; + +procedure TfrViewDatosYSeleccionClientePresupuesto.SetCliente(Value: IBizCliente); +begin + FCliente := Value; + if Assigned(FCliente) then + begin + dsCliente.DataTable := FCliente.DataTable; + + if not FCliente.DataTable.Active then + FCliente.DataTable.Active := True; + + //Solo podremos establecer persona de contacto si se ha asignado un cliente + if FCliente.ID > 0 then + edtPersonaContacto.Enabled := True; + + if FCliente.Direcciones.RecordCount > 0 then + ElegirDireccionCliente + else begin + FPresupuesto.Edit; + FPresupuesto.PERSONA_CONTACTO := FCliente.PERSONA_CONTACTO; + RefrescarDireccion; + end; + end + else begin + dsCliente.DataTable := NIL; + FCliente := NIL; + FDireccion := NIL; + edtPersonaContacto.Enabled := False; + end; + + if Assigned(FOnClienteChanged) then + FOnClienteChanged(Self); +end; + +procedure TfrViewDatosYSeleccionClientePresupuesto.SetID_Cliente(const Value: integer); +begin + Self.Cliente := IBizCliente(FClientesController.Buscar(Value)); +end; + +function TfrViewDatosYSeleccionClientePresupuesto.GetOnClienteChanged: TNotifyEvent; +begin + Result := FOnClienteChanged; +end; + +function TfrViewDatosYSeleccionClientePresupuesto.GetPresupuesto: IBizPresupuestoCliente; +begin + Result := FPresupuesto; +end; + +procedure TfrViewDatosYSeleccionClientePresupuesto.RefrescarDireccion; +begin + FDireccion := FDireccionesController.Nuevo; + + if (not FPresupuesto.ID_DIRECCIONIsNull) and + (FDireccionesController.Localizar(FCliente.Direcciones, FPresupuesto.ID_DIRECCION)) then + FDireccionesController.CopiarDireccion(FCliente.Direcciones, FDireccion) + else + FDireccionesController.CopiarDireccionFiscal(FCliente, FDireccion); + + EscribirTextoDireccion; +end; + +procedure TfrViewDatosYSeleccionClientePresupuesto.SetOnClienteChanged( + const Value: TNotifyEvent); +begin + FOnClienteChanged := Value; +end; + +procedure TfrViewDatosYSeleccionClientePresupuesto.SetPresupuesto( + const Value: IBizPresupuestoCliente); +begin + FPresupuesto := Value; + if Assigned(FPresupuesto) then + begin + dsPresupuesto.DataTable := FPresupuesto.DataTable; + + FCliente := FPresupuesto.Cliente; + dsCliente.DataTable := FCliente.DataTable; + + if not FCliente.DataTable.Active then + FCliente.DataTable.Active := True; + + //Solo podremos establecer persona de contacto si se ha asignado un cliente + if FCliente.ID > 0 then + edtPersonaContacto.Enabled := True; + + RefrescarDireccion; + end + else begin + dsPresupuesto.DataTable := NIL; + FCliente := NIL; + FDireccion := NIL; + end; +end; + +procedure TfrViewDatosYSeleccionClientePresupuesto.SetReadOnly(Value: Boolean); +begin + inherited; + + if (csLoading in Self.ComponentState) then + Exit; + + actAnadirContacto.Enabled := not ReadOnly; + actElegirContacto.Enabled := not ReadOnly; +end; + +procedure TfrViewDatosYSeleccionClientePresupuesto.VerFichaCliente; +begin + if not Assigned(Cliente) then + ShowErrorMessage('No se ha indicado un cliente', 'El presupuesto no tiene ningn cliente asociado a mostrar.') + else begin + FClientesController.Ver(Cliente); + end; +end; + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewDetallesPresupuestoCliente.dcu b/Source/Modulos/Presupuestos de cliente/Views/uViewDetallesPresupuestoCliente.dcu new file mode 100644 index 0000000..ff0c889 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Views/uViewDetallesPresupuestoCliente.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewDetallesPresupuestoCliente.dfm b/Source/Modulos/Presupuestos de cliente/Views/uViewDetallesPresupuestoCliente.dfm new file mode 100644 index 0000000..4422554 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/uViewDetallesPresupuestoCliente.dfm @@ -0,0 +1,41 @@ +inherited frViewDetallesPresupuestoCliente: TfrViewDetallesPresupuestoCliente + inherited ToolBar1: TToolBar + inherited FontSize: TEdit + Width = 58 + ExplicitWidth = 58 + end + end + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + inherited cxGridViewREFERENCIA_PROVEEDOR: TcxGridDBColumn + DataBinding.FieldName = '' + end + inherited cxGridViewDESCUENTO: TcxGridDBColumn + Visible = True + end + inherited cxGridViewIMPORTENETO: TcxGridDBColumn + Visible = True + end + end + end + inherited TBXDock1: TTBXDock + inherited TBXToolbar1: TTBXToolbar + object TBXSeparatorItem9: TTBXSeparatorItem + end + object TBXItem18: TTBXItem + Action = actVariarPrecios + end + end + end + inherited ActionListContenido: TActionList + inherited actAnadirDescuento: TAction + Caption = 'Linea de descuento' + end + object actVariarPrecios: TAction + Category = 'Operaciones' + Caption = 'Variar precios' + OnExecute = actVariarPreciosExecute + OnUpdate = actVariarPreciosUpdate + end + end +end diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewDetallesPresupuestoCliente.pas b/Source/Modulos/Presupuestos de cliente/Views/uViewDetallesPresupuestoCliente.pas new file mode 100644 index 0000000..11d698a --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/uViewDetallesPresupuestoCliente.pas @@ -0,0 +1,123 @@ +unit uViewDetallesPresupuestoCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewDetallesArticulos, cxStyles, cxCustomData, cxGraphics, cxFilter, + cxData, cxDataStorage, cxEdit, DB, cxDBData, ImgList, PngImageList, + uDADataTable, ActnList, ComCtrls, ToolWin, cxGridLevel, cxClasses, cxControls, + cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + cxGrid, cxImageComboBox, cxTextEdit, cxMaskEdit, cxCheckBox, cxCurrencyEdit, + Grids, DBGrids, StdCtrls, ExtCtrls, cxRichEdit, ExtActns, StdActns, + JvExStdCtrls, JvCombobox, JvColorCombo, TB2Item, TBX, TB2Dock, TB2Toolbar, + uControllerDetallesArticulos, uBizPresupuestosCliente, uDAInterfaces, Buttons, + Mask, DBCtrls, cxButtonEdit, cxDropDownEdit, Menus, cxGridCustomPopupMenu, + cxGridPopupMenu, cxDBLookupComboBox, cxCalc, cxEditRepositoryItems, + uViewDetallesArticulosParaVenta; + +type + IViewDetallesPresupuestoCliente = interface(IViewDetallesArticulos) + ['{3AF39FF4-291E-4E87-AF9A-93C240A744CD}'] + function GetPresupuesto: IBizPresupuestoCliente; + procedure SetPresupuesto(const Value: IBizPresupuestoCliente); + property Presupuesto: IBizPresupuestoCliente read GetPresupuesto write SetPresupuesto; + end; + + TfrViewDetallesPresupuestoCliente = class(TfrViewDetallesArticulosParaVenta, IViewDetallesPresupuestoCliente) + actVariarPrecios: TAction; + TBXItem18: TTBXItem; + TBXSeparatorItem9: TTBXSeparatorItem; + procedure actVariarPreciosExecute(Sender: TObject); + procedure actVariarPreciosUpdate(Sender: TObject); + protected + FPresupuesto: IBizPresupuestoCliente; + function GetPresupuesto: IBizPresupuestoCliente; + procedure SetPresupuesto(const Value: IBizPresupuestoCliente); + + procedure AnadirArticulosInterno; override; + procedure RellenarArticulosInterno; override; + function AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean; override; + + public + property Presupuesto: IBizPresupuestoCliente read GetPresupuesto write SetPresupuesto; + end; + +implementation +{$R *.dfm} + +uses uControllerDetallesBase, uDetallesPresupuestoClienteController; + +{ TfrViewDetallesPresupuestoProveedor } + +procedure TfrViewDetallesPresupuestoCliente.actVariarPreciosExecute(Sender: TObject); +var + AuxTop, AuxRow:Integer; + APorcentaje: Variant; + ATipoOperacion: Integer; + +begin + + if (Controller as IDetallesPresupuestoClienteController).VariarPrecios(APorcentaje, ATipoOperacion) then + begin + ShowHourglassCursor; + _FocusedView.BeginUpdate; + try + + if Assigned(Controller) and Assigned(FPresupuesto.Detalles) then + begin + AuxTop := cxGridView.Controller.TopRowIndex; + AuxRow := cxGridView.DataController.FocusedRowIndex; + if ATipoOperacion = -1 then + (Controller as IDetallesPresupuestoClienteController).AsignarDescuento(FPresupuesto.Detalles, darListaSeleccionados, APorcentaje) + else if ATipoOperacion = 1 then + (Controller as IDetallesPresupuestoClienteController).AplicarAumento(FPresupuesto.Detalles, darListaSeleccionados, APorcentaje); + + _FocusedView.DataController.SelectRows(AuxRow,AuxRow); + _FocusedView.Controller.TopRowIndex := AuxTop; + end + finally + _FocusedView.EndUpdate; + HideHourglassCursor; + end; + end; +end; + +procedure TfrViewDetallesPresupuestoCliente.actVariarPreciosUpdate(Sender: TObject); +begin + inherited; + + if not DADataSource.DataTable.IsEmpty then + (Sender as TAction).Enabled := not (DADataSource.DataTable.State in dsEditModes) + and (_FocusedView.DataController.GetSelectedCount > 0) + and (FPresupuesto.Detalles.TIPO_DETALLE = TIPO_DETALLE_CONCEPTO) + else + (Sender as TAction).Enabled := False; +end; + +function TfrViewDetallesPresupuestoCliente.AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean; +begin + Result := (Controller as IDetallesPresupuestoClienteController).AnadirArticulo(Detalles, pReferencia, TipoReferencia, Presupuesto.Cliente.ID); +end; + +procedure TfrViewDetallesPresupuestoCliente.AnadirArticulosInterno; +begin + (Controller as IDetallesPresupuestoClienteController).AnadirArticulos(Detalles, Presupuesto.Cliente); +end; + +function TfrViewDetallesPresupuestoCliente.GetPresupuesto: IBizPresupuestoCliente; +begin + Result := FPresupuesto; +end; + +procedure TfrViewDetallesPresupuestoCliente.RellenarArticulosInterno; +begin + (Controller as IDetallesPresupuestoClienteController).AnadirArticulos(Detalles, Presupuesto.Cliente, False); +end; + +procedure TfrViewDetallesPresupuestoCliente.SetPresupuesto(const Value: IBizPresupuestoCliente); +begin + FPresupuesto := Value; +end; + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewDireccionEntregaPresupuestoCliente.dcu b/Source/Modulos/Presupuestos de cliente/Views/uViewDireccionEntregaPresupuestoCliente.dcu new file mode 100644 index 0000000..08a5a2e Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Views/uViewDireccionEntregaPresupuestoCliente.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewDireccionEntregaPresupuestoCliente.dfm b/Source/Modulos/Presupuestos de cliente/Views/uViewDireccionEntregaPresupuestoCliente.dfm new file mode 100644 index 0000000..43167a5 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/uViewDireccionEntregaPresupuestoCliente.dfm @@ -0,0 +1,229 @@ +inherited frViewDireccionEntregaPresupuestoCliente: TfrViewDireccionEntregaPresupuestoCliente + Width = 337 + Height = 129 + ExplicitWidth = 337 + ExplicitHeight = 129 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 337 + Height = 129 + Align = alClient + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + object eCalle: TcxDBTextEdit + Left = 64 + Top = 10 + DataBinding.DataField = 'CALLE' + DataBinding.DataSource = dsPedido + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 0 + Width = 263 + end + object ePoblacion: TcxDBTextEdit + Left = 64 + Top = 37 + DataBinding.DataField = 'POBLACION' + DataBinding.DataSource = dsPedido + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 1 + Width = 162 + end + object eProvincia: TcxDBTextEdit + Left = 64 + Top = 64 + DataBinding.DataField = 'PROVINCIA' + DataBinding.DataSource = dsPedido + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 3 + Width = 263 + end + object eCodigoPostal: TcxDBTextEdit + Left = 262 + Top = 37 + DataBinding.DataField = 'CODIGO_POSTAL' + DataBinding.DataSource = dsPedido + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 2 + Width = 65 + end + object eTlfTrabajo: TcxDBTextEdit + Left = 205 + Top = 91 + DataBinding.DataField = 'TELEFONO' + DataBinding.DataSource = dsPedido + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 5 + Width = 122 + end + object ePersonaContacto: TcxDBTextEdit + Left = 64 + Top = 91 + DataBinding.DataField = 'PERSONA_CONTACTO' + DataBinding.DataSource = dsPedido + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 4 + Width = 84 + end + object dxLayoutGroup1: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item1: TdxLayoutItem + Caption = 'Calle:' + Control = eCalle + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group3: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group5: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item2: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Poblaci'#243'n:' + Control = ePoblacion + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item4: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'C.P.:' + Control = eCodigoPostal + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item3: TdxLayoutItem + Caption = 'Provincia:' + Control = eProvincia + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group4: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item6: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Contacto:' + Control = ePersonaContacto + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item5: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'Tel'#233'fono:' + Control = eTlfTrabajo + ControlOptions.ShowBorder = False + end + end + end + end + end + object dsPedido: TDADataSource + Left = 8 + Top = 8 + end + object dsAlmacenes: TDADataSource + Left = 8 + Top = 40 + end +end diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewDireccionEntregaPresupuestoCliente.pas b/Source/Modulos/Presupuestos de cliente/Views/uViewDireccionEntregaPresupuestoCliente.pas new file mode 100644 index 0000000..005b9fb --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/uViewDireccionEntregaPresupuestoCliente.pas @@ -0,0 +1,143 @@ +unit uViewDireccionEntregaPresupuestoCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, uBizPresupuestosCliente, cxGraphics, dxLayoutControl, cxMemo, + cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxLookupEdit, + cxDBLookupEdit, cxDBLookupComboBox, StdCtrls, cxControls, DB, uDADataTable, + ActnList, uPresupuestosClienteController, Buttons, cxDBEdit, uDAInterfaces; + +type + IViewDireccionEntregaPresupuestoCliente = interface(IViewBase) + ['{7467855C-066F-4A60-B88F-2837C8050B1E}'] + function GetPresupuestoCliente: IBizPresupuestoCliente; + procedure SetPresupuestoCliente(const Value: IBizPresupuestoCliente); + property PresupuestoCliente: IBizPresupuestoCliente read GetPresupuestoCliente write SetPresupuestoCliente; + end; + + TfrViewDireccionEntregaPresupuestoCliente = class(TfrViewBase, IViewDireccionEntregaPresupuestoCliente) + dxLayoutControl1: TdxLayoutControl; + dxLayoutGroup1: TdxLayoutGroup; + dsPedido: TDADataSource; + dsAlmacenes: TDADataSource; + dxLayoutControl1Item1: TdxLayoutItem; + eCalle: TcxDBTextEdit; + dxLayoutControl1Item2: TdxLayoutItem; + ePoblacion: TcxDBTextEdit; + dxLayoutControl1Item3: TdxLayoutItem; + eProvincia: TcxDBTextEdit; + dxLayoutControl1Item4: TdxLayoutItem; + eCodigoPostal: TcxDBTextEdit; + dxLayoutControl1Item5: TdxLayoutItem; + eTlfTrabajo: TcxDBTextEdit; + dxLayoutControl1Item6: TdxLayoutItem; + ePersonaContacto: TcxDBTextEdit; + dxLayoutControl1Group3: TdxLayoutGroup; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Group5: TdxLayoutGroup; + dxLayoutControl1Group4: TdxLayoutGroup; + procedure cbListaPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + protected +// FAlmacenesController : IAlmacenesController; +// FAlmacenes: IBizAlmacen; + FPedido : IBizPresupuestoCliente; + FController : IPresupuestosClienteController; + function GetPresupuestoCliente: IBizPresupuestoCliente; + procedure SetPresupuestoCliente(const Value: IBizPresupuestoCliente); + procedure RefrescarDireccion; + public + property PresupuestoCliente: IBizPresupuestoCliente read GetPresupuestoCliente write SetPresupuestoCliente; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + uEditorRegistryUtils; + +procedure TfrViewDireccionEntregaPresupuestoCliente.cbListaPropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin +{ if Assigned(FPedido) and (FPedido.ID_ALMACEN <> FAlmacenes.ID) then + begin + FPedido.Edit; + FPedido.CALLE := FAlmacenes.CALLE; + FPedido.POBLACION := FAlmacenes.POBLACION; + FPedido.POBLACION := FAlmacenes.POBLACION; + FPedido.PROVINCIA := FAlmacenes.PROVINCIA; + FPedido.CODIGO_POSTAL := FAlmacenes.CODIGO_POSTAL; + FPedido.PERSONA_CONTACTO := FAlmacenes.PERSONA_CONTACTO; + FPedido.TELEFONO := FAlmacenes.TELEFONO; + RefrescarDireccion; + end;} +end; + +constructor TfrViewDireccionEntregaPresupuestoCliente.Create(AOwner: TComponent); +begin + inherited; + FPedido := NIL; + + { FController := TPresupuestosClienteController.Create; + FAlmacenesController := TAlmacenesController.Create; + FAlmacenes := FAlmacenesController.BuscarTodos; + FAlmacenes.DataTable.Active := True; + dsAlmacenes.DataTable := FAlmacenes.DataTable;} +end; + +destructor TfrViewDireccionEntregaPresupuestoCliente.Destroy; +begin +{ cbLista.Properties.OnValidate := Nil; + FAlmacenesController := Nil; + FAlmacenes := Nil; + FController := NIL; +} + FPedido := NIL; + inherited; +end; + +function TfrViewDireccionEntregaPresupuestoCliente.GetPresupuestoCliente: IBizPresupuestoCliente; +begin + Result := FPedido; +end; + +procedure TfrViewDireccionEntregaPresupuestoCliente.RefrescarDireccion; +begin +{ memDireccion.Lines.Clear; + if Assigned(FPedido) then + begin + memDireccion.Lines.Add(FPedido.CALLE); + memDireccion.Lines.Add(FPedido.CODIGO_POSTAL + ' ' + FPedido.POBLACION); + memDireccion.Lines.Add(FPedido.PROVINCIA); + end;} +end; + +procedure TfrViewDireccionEntregaPresupuestoCliente.SetPresupuestoCliente( + const Value: IBizPresupuestoCliente); +begin + + FPedido := Value; + if Assigned(FPedido) then + dsPedido.DataTable := FPedido.DataTable + else + dsPedido.DataTable := NIL; + +{ cbLista.Properties.OnValidate := NIL; + dsPedido.DataTable := nil; + + FPedido := Value; + + if not FPedido.EsNuevo then + RefrescarDireccion; + + // Esto al final para que no salten los eventos del cxComboBox + dsPedido.DataTable := FPedido.DataTable; + cbLista.Properties.OnValidate := cbListaPropertiesValidate;} +end; + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewDocumentosPresupuestoCliente.dcu b/Source/Modulos/Presupuestos de cliente/Views/uViewDocumentosPresupuestoCliente.dcu new file mode 100644 index 0000000..9246eba Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Views/uViewDocumentosPresupuestoCliente.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewDocumentosPresupuestoCliente.dfm b/Source/Modulos/Presupuestos de cliente/Views/uViewDocumentosPresupuestoCliente.dfm new file mode 100644 index 0000000..2da44d0 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/uViewDocumentosPresupuestoCliente.dfm @@ -0,0 +1,2 @@ +inherited frViewDocumentosPresupuestoCliente: TfrViewDocumentosPresupuestoCliente +end diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewDocumentosPresupuestoCliente.pas b/Source/Modulos/Presupuestos de cliente/Views/uViewDocumentosPresupuestoCliente.pas new file mode 100644 index 0000000..381f6e1 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/uViewDocumentosPresupuestoCliente.pas @@ -0,0 +1,100 @@ +unit uViewDocumentosPresupuestoCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewDocumentos, ActnList, + TB2Item, TBX, TB2Dock, TB2Toolbar, cxControls, cxContainer, + uBizPresupuestosCliente, uPresupuestosClienteController, ImgList, + PngImageList, ComCtrls, Menus; + +type + IViewDocumentosPresupuestoCliente = interface + ['{564599A5-ECEB-4A1F-8791-22B37282A11C}'] + function GetController : IPresupuestosClienteController; + procedure SetController (const Value : IPresupuestosClienteController); + property Controller : IPresupuestosClienteController read GetController write SetController; + + function GetPresupuesto: IBizPresupuestoCliente; + procedure SetPresupuesto(const Value: IBizPresupuestoCliente); + property Presupuesto: IBizPresupuestoCliente read GetPresupuesto write SetPresupuesto; + end; + + TfrViewDocumentosPresupuestoCliente = class(TfrViewDocumentos, IViewDocumentosPresupuestoCliente) + private + FController : IPresupuestosClienteController; + FPresupuesto: IBizPresupuestoCliente; + function GetController : IPresupuestosClienteController; + procedure SetController (const Value : IPresupuestosClienteController); + function GetPresupuesto: IBizPresupuestoCliente; + procedure SetPresupuesto(const Value: IBizPresupuestoCliente); + + protected + procedure Sincronizar; override; + function RecuperarFicheroServidor(const NombreFichero: String; const DirectorioDestino: String): Boolean; override; + + public + property Controller : IPresupuestosClienteController read GetController write SetController; + property Presupuesto: IBizPresupuestoCliente read GetPresupuesto write SetPresupuesto; + + end; + +var + frViewDocumentosPresupuestoCliente: TfrViewDocumentosPresupuestoCliente; + +implementation +{$R *.dfm} + +{ TfrViewDocumentosPresupuesto } + +function TfrViewDocumentosPresupuestoCliente.GetController: IPresupuestosClienteController; +begin + Result := FController; +end; + +function TfrViewDocumentosPresupuestoCliente.GetPresupuesto: IBizPresupuestoCliente; +begin + Result := FPresupuesto; +end; + +function TfrViewDocumentosPresupuestoCliente.RecuperarFicheroServidor(const NombreFichero: String; const DirectorioDestino: String): Boolean; +begin + inherited; + Result := Controller.GestorDocumentosController.DescargarFichero(Presupuesto.ID, NombreFichero, DirectorioDestino); +end; + +procedure TfrViewDocumentosPresupuestoCliente.SetController(const Value: IPresupuestosClienteController); +begin + FController := Value; +end; + +procedure TfrViewDocumentosPresupuestoCliente.SetPresupuesto(const Value: IBizPresupuestoCliente); +begin + FPresupuesto := Value; + //Inicializamos la lista de documentos local con los ficheros del servidor + if Assigned(FPresupuesto) and Assigned(FController) then + ListaFicheros := Controller.GestorDocumentosController.DarListaDocumentos(Presupuesto.ID); + + RefrescarVisualizador; +end; + +procedure TfrViewDocumentosPresupuestoCliente.Sincronizar; +begin + inherited; + +//De momento el action actSincronizar con el servidor estar oculto y se activa, hay que tener en cuenta lo comentado +{ + if Presupuesto.EsNuevo then + begin + if (ShowConfirmMessage('Se han producido cambios', 'Se han producido cambios y no se puede sincronizar hasta que no se guarden.' + #10#13 + + 'Desea guardarlos ahora?') = IDYES) then + actGuardar.Execute + else + ShowInfoMessage('Recuerde guardar los cambios si quiere previsualizar o imprimir.'); + end; +} + Controller.GestorDocumentosController.SincronizarDocumentos(Presupuesto.ID, ListaFicheros, Directorio); +end; + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewElegirArticulosPresupuestosCliente.dcu b/Source/Modulos/Presupuestos de cliente/Views/uViewElegirArticulosPresupuestosCliente.dcu new file mode 100644 index 0000000..47bd51e Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Views/uViewElegirArticulosPresupuestosCliente.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewElegirArticulosPresupuestosCliente.dfm b/Source/Modulos/Presupuestos de cliente/Views/uViewElegirArticulosPresupuestosCliente.dfm new file mode 100644 index 0000000..860320a --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/uViewElegirArticulosPresupuestosCliente.dfm @@ -0,0 +1,8 @@ +inherited frViewElegirArticulosPresupuestosCliente: TfrViewElegirArticulosPresupuestosCliente + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39297.755936412040000000 + BuiltInReportLink = True + end + end +end diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewElegirArticulosPresupuestosCliente.pas b/Source/Modulos/Presupuestos de cliente/Views/uViewElegirArticulosPresupuestosCliente.pas new file mode 100644 index 0000000..8c9f9de --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/uViewElegirArticulosPresupuestosCliente.pas @@ -0,0 +1,28 @@ +unit uViewElegirArticulosPresupuestosCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewArticulos, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxImageComboBox, cxCurrencyEdit, + cxSpinEdit, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, + dxPSCompsProvider, dxPSFillPatterns, dxPSEdgePatterns, ImgList, PngImageList, + cxGridCustomPopupMenu, cxGridPopupMenu, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, + uDADataTable, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, dxPgsDlg, + ActnList, TB2Item, TBX, TB2Toolbar, TBXDkPanels, TB2Dock, uViewFiltroBase, + uDAInterfaces; + +type + IViewElegirArticulosPresupuestosCliente = interface(IViewArticulos) + ['{5292A518-0797-4FFC-AC9B-90F0113AF3AF}'] + end; + + TfrViewElegirArticulosPresupuestosCliente = class(TfrViewArticulos, IViewElegirArticulosPresupuestosCliente) + end; + +implementation +{$R *.dfm} + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestoCliente.dcu b/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestoCliente.dcu new file mode 100644 index 0000000..94addd1 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestoCliente.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestoCliente.dfm b/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestoCliente.dfm new file mode 100644 index 0000000..ce07193 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestoCliente.dfm @@ -0,0 +1,528 @@ +inherited frViewPresupuestoCliente: TfrViewPresupuestoCliente + Width = 929 + Height = 459 + OnCreate = CustomViewCreate + OnDestroy = CustomViewDestroy + ExplicitWidth = 929 + ExplicitHeight = 459 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 929 + Height = 459 + Align = alClient + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + DesignSize = ( + 929 + 459) + object Label1: TLabel + Left = 480 + Top = 229 + Width = 383 + Height = 26 + Caption = + 'Opcionalmente, puede escribir el nombre del cliente final de est' + + 'e presupuesto o elegirlo de la lista de clientes.' + WordWrap = True + end + object edtFechaPresupuesto: TcxDBDateEdit + Left = 123 + Top = 82 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_PRESUPUESTO' + DataBinding.DataSource = DADataSource + Properties.DateButtons = [btnToday] + Properties.ImmediatePost = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 3 + Width = 260 + end + object memObservaciones: TcxDBMemo + Left = 22 + Top = 220 + Anchors = [akLeft, akTop, akRight, akBottom] + DataBinding.DataField = 'OBSERVACIONES' + DataBinding.DataSource = DADataSource + Properties.ScrollBars = ssVertical + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 8 + Height = 217 + Width = 507 + end + object eReferencia: TcxDBTextEdit + Left = 123 + Top = 28 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REFERENCIA' + DataBinding.DataSource = DADataSource + Enabled = False + Properties.ReadOnly = True + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 0 + Width = 122 + end + object cbFormaPago: TcxDBLookupComboBox + Left = 123 + Top = 163 + DataBinding.DataField = 'ID_FORMA_PAGO' + DataBinding.DataSource = DADataSource + Properties.KeyFieldNames = 'ID' + Properties.ListColumns = < + item + FieldName = 'REFERENCIA' + end> + Properties.ListOptions.GridLines = glNone + Properties.ListOptions.ShowHeader = False + Properties.ListOptions.SyncMode = True + Properties.ListSource = dsFormaPago + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 6 + Width = 122 + end + object bFormasPago: TButton + Left = 318 + Top = 163 + Width = 132 + Height = 21 + Caption = 'Ver las formas de pago...' + TabOrder = 7 + OnClick = bFormasPagoClick + end + object edtFechaDecision: TcxDBDateEdit + Left = 123 + Top = 109 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_DECISION' + DataBinding.DataSource = DADataSource + Properties.ImmediatePost = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 4 + Width = 260 + end + object eRefCliente: TcxDBTextEdit + Left = 123 + Top = 55 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REFERENCIA_CLIENTE' + DataBinding.DataSource = DADataSource + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 2 + Width = 260 + end + object cbClienteFinal: TcxDBTextEdit + Left = 480 + Top = 263 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'CLIENTE_FINAL' + DataBinding.DataSource = DADataSource + Properties.ReadOnly = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 10 + Width = 350 + end + object cbSituacion: TcxDBImageComboBox + Left = 123 + Top = 136 + DataBinding.DataField = 'SITUACION' + DataBinding.DataSource = DADataSource + Properties.Items = < + item + Description = 'PENDIENTE' + ImageIndex = 0 + Value = 'PENDIENTE' + end + item + Description = 'ACEPTADO' + Value = 'ACEPTADO' + end + item + Description = 'ANULADO' + Value = 'ANULADO' + end> + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 5 + Width = 260 + end + object eReferenciaAux: TcxDBTextEdit + Left = 293 + Top = 28 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REFERENCIA_AUX' + DataBinding.DataSource = DADataSource + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 1 + Width = 132 + end + inline frViewDatosYSeleccionClientePresupuesto1: TfrViewDatosYSeleccionClientePresupuesto + Left = 480 + Top = 28 + Width = 505 + Height = 165 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 9 + ReadOnly = False + ExplicitLeft = 480 + ExplicitTop = 28 + inherited dxLayoutControl1: TdxLayoutControl + inherited edtlNombre: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 224 + Width = 224 + end + inherited edtNIFCIF: TcxDBTextEdit + Left = 314 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 314 + end + inherited Button3: TBitBtn + Left = 225 + ExplicitLeft = 225 + end + inherited edtPersonaContacto: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 283 + Width = 283 + end + inherited edtDireccion: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 121 + Width = 121 + end + inherited Button4: TButton + Left = 394 + ExplicitLeft = 394 + end + inherited Button5: TButton + Left = 394 + ExplicitLeft = 394 + end + end + end + object bElegirClienteFinal: TButton + Left = 884 + Top = 261 + Width = 23 + Height = 25 + Action = actElegirClienteFinal + TabOrder = 11 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Group8: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + AutoAligns = [] + AlignHorz = ahClient + Caption = 'Datos del presupuesto' + object dxLayoutControl1Group3: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item3: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Referencia:' + Control = eReferencia + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item9: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Control = eReferenciaAux + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item15: TdxLayoutItem + Caption = 'Ref. cliente:' + Control = eRefCliente + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item2: TdxLayoutItem + Caption = 'Fecha presupuesto:' + Control = edtFechaPresupuesto + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item7: TdxLayoutItem + Caption = 'Fecha decisi'#243'n:' + Control = edtFechaDecision + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item10: TdxLayoutItem + Caption = 'Situaci'#243'n:' + Control = cbSituacion + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group5: TdxLayoutGroup + ShowCaption = False + Visible = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item4: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Forma de pago' + Control = cbFormaPago + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item5: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + ShowCaption = False + Control = bFormasPago + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Group7: TdxLayoutGroup + AutoAligns = [aaHorizontal] + AlignVert = avClient + Caption = 'Observaciones' + object dxLayoutControl1Item6: TdxLayoutItem + AutoAligns = [aaHorizontal] + AlignVert = avClient + Control = memObservaciones + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Group6: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group2: TdxLayoutGroup + Caption = 'Datos del cliente' + object dxLayoutControl1Item1: TdxLayoutItem + Caption = 'New Item' + ShowCaption = False + Control = frViewDatosYSeleccionClientePresupuesto1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group4: TdxLayoutGroup + Caption = 'Cliente final' + object dxLayoutControl1Item12: TdxLayoutItem + ShowCaption = False + Control = Label1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group9: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item8: TdxLayoutItem + AutoAligns = [] + AlignHorz = ahClient + AlignVert = avCenter + Caption = 'Cliente final:' + ShowCaption = False + Control = cbClienteFinal + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item11: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + ShowCaption = False + Control = bElegirClienteFinal + ControlOptions.ShowBorder = False + end + end + end + end + end + end + object DADataSource: TDADataSource + Left = 8 + Top = 48 + end + object ActionList1: TActionList + Left = 8 + Top = 24 + object actElegirClienteFinal: TAction + Caption = '...' + OnExecute = actElegirClienteFinalExecute + OnUpdate = actElegirClienteFinalUpdate + end + end + object dsFormaPago: TDADataSource + Left = 40 + Top = 8 + end +end diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestoCliente.pas b/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestoCliente.pas new file mode 100644 index 0000000..18ada3a --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestoCliente.pas @@ -0,0 +1,239 @@ +unit uViewPresupuestoCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, uBizPresupuestosCliente, DB, uDADataTable, uCustomView, + AppEvnts, StdCtrls, Mask, DBCtrls, + uViewObservaciones, uViewDatosYSeleccionCliente, + cxGraphics, cxDropDownEdit, cxImageComboBox, cxDBEdit, cxContainer, cxEdit, + cxTextEdit, cxMaskEdit, cxCalendar, dxLayoutControl, cxControls, cxMemo, + uViewDireccionEntregaPresupuestoCliente, Buttons, ActnList, cxLookupEdit, + cxDBLookupEdit, cxDBLookupComboBox, uFormasPagoController, uDAInterfaces, + uBizFormasPago, cxButtonEdit, uViewDatosYSeleccionClientePresupuesto; + +type + IViewPresupuestoCliente = interface(IViewBase) + ['{A970B43E-E542-40F5-B265-41B7EFA613F9}'] + function GetPresupuesto: IBizPresupuestoCliente; + procedure SetPresupuesto(const Value: IBizPresupuestoCliente); + property Presupuesto: IBizPresupuestoCliente read GetPresupuesto write SetPresupuesto; + + function GetViewClientePresupuesto: IViewDatosYSeleccionClientePresupuesto; + property ViewClientePresupuesto: IViewDatosYSeleccionClientePresupuesto read GetViewClientePresupuesto; + end; + + TfrViewPresupuestoCliente = class(TfrViewBase, IViewPresupuestoCliente) + DADataSource: TDADataSource; + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Item2: TdxLayoutItem; + edtFechaPresupuesto: TcxDBDateEdit; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Group2: TdxLayoutGroup; + dxLayoutControl1Item6: TdxLayoutItem; + memObservaciones: TcxDBMemo; + dxLayoutControl1Item3: TdxLayoutItem; + eReferencia: TcxDBTextEdit; + dxLayoutControl1Group7: TdxLayoutGroup; + ActionList1: TActionList; + dxLayoutControl1Item4: TdxLayoutItem; + cbFormaPago: TcxDBLookupComboBox; + dxLayoutControl1Item5: TdxLayoutItem; + bFormasPago: TButton; + dxLayoutControl1Group5: TdxLayoutGroup; + dsFormaPago: TDADataSource; + dxLayoutControl1Item7: TdxLayoutItem; + edtFechaDecision: TcxDBDateEdit; + dxLayoutControl1Item15: TdxLayoutItem; + eRefCliente: TcxDBTextEdit; + dxLayoutControl1Item8: TdxLayoutItem; + cbClienteFinal: TcxDBTextEdit; + cbSituacion: TcxDBImageComboBox; + dxLayoutControl1Item10: TdxLayoutItem; + dxLayoutControl1Item9: TdxLayoutItem; + eReferenciaAux: TcxDBTextEdit; + dxLayoutControl1Group3: TdxLayoutGroup; + dxLayoutControl1Group4: TdxLayoutGroup; + dxLayoutControl1Group6: TdxLayoutGroup; + dxLayoutControl1Group8: TdxLayoutGroup; + frViewDatosYSeleccionClientePresupuesto1: TfrViewDatosYSeleccionClientePresupuesto; + dxLayoutControl1Item1: TdxLayoutItem; + dxLayoutControl1Item11: TdxLayoutItem; + bElegirClienteFinal: TButton; + actElegirClienteFinal: TAction; + dxLayoutControl1Item12: TdxLayoutItem; + Label1: TLabel; + dxLayoutControl1Group9: TdxLayoutGroup; + procedure CustomViewCreate(Sender: TObject); + procedure CustomViewDestroy(Sender: TObject); + procedure bFormasPagoClick(Sender: TObject); + procedure frViewClientePresupuestoButton1Click(Sender: TObject); + procedure frViewClientePresupuestoButton2Click(Sender: TObject); + procedure cbClienteFinalPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure actElegirClienteFinalExecute(Sender: TObject); + procedure actElegirClienteFinalUpdate(Sender: TObject); + protected + FPresupuesto : IBizPresupuestoCliente; + FFormasPago : IBizFormaPago; + FFormasPagoController : IFormasPagoController; + FViewClientePresupuesto : IViewDatosYSeleccionClientePresupuesto; + + function GetPresupuesto: IBizPresupuestoCliente; + procedure SetPresupuesto(const Value: IBizPresupuestoCliente); virtual; + function GetViewClientePresupuesto: IViewDatosYSeleccionClientePresupuesto; + public + property Presupuesto: IBizPresupuestoCliente read GetPresupuesto write SetPresupuesto; + property ViewClientePresupuesto: IViewDatosYSeleccionClientePresupuesto read GetViewClientePresupuesto; + end; + +implementation + +{$R *.dfm} + +{ TfrViewPresupuestoCliente } + +uses + uClientesController, uBizContactos, uBizDireccionesContacto, + uPresupuestosClienteController; + + +procedure TfrViewPresupuestoCliente.actElegirClienteFinalExecute( + Sender: TObject); +var + ACliente : IBizCliente; + AClienteController : IClientesController; +begin + inherited; + AClienteController := TClientesController.Create; + try + ACliente := (AClienteController.ElegirContacto(AClienteController.BuscarTodos, + 'Elija el cliente final de este presupuesto', False) as IBizCliente); + if Assigned(ACliente) then + begin + ShowHourglassCursor; + try + Presupuesto.Edit; + Presupuesto.CLIENTE_FINAL := ACliente.NOMBRE; + finally + HideHourglassCursor; + end; + end; + finally + ACliente := NIL; + AClienteController := NIL; + end; +end; + +procedure TfrViewPresupuestoCliente.actElegirClienteFinalUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (not ReadOnly); +end; + +procedure TfrViewPresupuestoCliente.bFormasPagoClick(Sender: TObject); +begin + inherited; + if Assigned(FFormasPago) then + FFormasPagoController.VerTodos(FFormasPago); +end; + +procedure TfrViewPresupuestoCliente.cbClienteFinalPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +var + ACliente : IBizCliente; + AClienteController : IClientesController; +begin + inherited; + AClienteController := TClientesController.Create; + try + ACliente := (AClienteController.ElegirContacto(AClienteController.BuscarTodos, + 'Elija el cliente final de este presupuesto', False) as IBizCliente); + if Assigned(ACliente) then + begin + ShowHourglassCursor; + try + Presupuesto.Edit; + Presupuesto.CLIENTE_FINAL := ACliente.NOMBRE; + finally + HideHourglassCursor; + end; + end; + finally + ACliente := NIL; + AClienteController := NIL; + end; +end; + +procedure TfrViewPresupuestoCliente.CustomViewCreate(Sender: TObject); +begin + inherited; + FFormasPago := Nil; + FFormasPagoController := TFormasPagoController.Create; + FViewClientePresupuesto := frViewDatosYSeleccionClientePresupuesto1; +end; + +procedure TfrViewPresupuestoCliente.CustomViewDestroy(Sender: TObject); +begin + inherited; + FFormasPago := Nil; + FFormasPagoController := NIL; + FViewClientePresupuesto := NIL; +end; + +procedure TfrViewPresupuestoCliente.frViewClientePresupuestoButton1Click(Sender: TObject); +begin + if Assigned(Presupuesto) and Assigned(Presupuesto.Cliente) and + Assigned (Presupuesto.Detalles) and (Presupuesto.Detalles.RecordCount > 0) then + begin + if (Application.MessageBox('Los descuentos de los artculos del presupuesto sern actualizados con los del nuevo cliente seleccionado, Desea continuar?', 'Atencin', MB_YESNO) = IDNO) then + Exit; + end; + frViewDatosYSeleccionClientePresupuesto1.actElegirContacto.Execute; +end; + +procedure TfrViewPresupuestoCliente.frViewClientePresupuestoButton2Click(Sender: TObject); +begin + if Assigned(Presupuesto) and Assigned(Presupuesto.Cliente) and + Assigned (Presupuesto.Detalles) and (Presupuesto.Detalles.RecordCount > 0) then + begin + if (Application.MessageBox('Los descuentos de los artculos del presupuesto sern actualizados con los del nuevo cliente seleccionado, Desea continuar?', 'Atencin', MB_YESNO) = IDNO) then + Exit; + end; + frViewDatosYSeleccionClientePresupuesto1.actAnadirContacto.Execute; +end; + +function TfrViewPresupuestoCliente.GetPresupuesto: IBizPresupuestoCliente; +begin + Result := FPresupuesto; +end; + +function TfrViewPresupuestoCliente.GetViewClientePresupuesto: IViewDatosYSeleccionClientePresupuesto; +begin + Result := FViewClientePresupuesto; +end; + +procedure TfrViewPresupuestoCliente.SetPresupuesto(const Value: IBizPresupuestoCliente); +begin + FPresupuesto := Value; + if Assigned(FPresupuesto) then + begin + DADataSource.DataTable := FPresupuesto.DataTable; + + FFormasPago := FFormasPagoController.BuscarTodos; + dsFormaPago.DataTable := FFormasPago.DataTable; + dsFormaPago.DataTable.Active := True; + + FViewClientePresupuesto.Presupuesto := FPresupuesto; + end + else begin + DADataSource.DataTable := NIL; + dsFormaPago.DataTable := NIL; + FViewClientePresupuesto.Presupuesto := Nil; + end; +end; + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestosCliente.dcu b/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestosCliente.dcu new file mode 100644 index 0000000..5d39730 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestosCliente.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestosCliente.dfm b/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestosCliente.dfm new file mode 100644 index 0000000..f41ef53 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestosCliente.dfm @@ -0,0 +1,541 @@ +inherited frViewPresupuestosCliente: TfrViewPresupuestosCliente + Width = 903 + Height = 525 + OnDestroy = CustomViewDestroy + OnShow = CustomViewShow + ExplicitWidth = 903 + ExplicitHeight = 525 + inherited cxGrid: TcxGrid + Width = 903 + Height = 397 + RootLevelOptions.DetailTabsPosition = dtpTop + OnActiveTabChanged = cxGridActiveTabChanged + ExplicitWidth = 903 + ExplicitHeight = 397 + inherited cxGridView: TcxGridDBTableView + DataController.KeyFieldNames = 'ID' + DataController.Options = [dcoAnsiSort, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText, dcoGroupsAlwaysExpanded] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Position = spFooter + Column = cxGridViewIMPORTE_TOTAL + end> + DataController.Summary.FooterSummaryItems = < + item + Format = '0 presupuestos' + Kind = skCount + Column = cxGridViewREFERENCIA + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = cxGridViewIMPORTE_TOTAL + end> + DataController.OnCompare = cxGridViewDataControllerCompare + OptionsCustomize.ColumnHidingOnGrouping = False + OptionsView.GroupFooters = gfAlwaysVisible + object cxGridViewINCIDENCIASACTIVAS: TcxGridDBColumn + Caption = 'Incidencias' + DataBinding.FieldName = 'INCIDENCIAS_ACTIVAS' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Images = GridPNGImageList + Properties.Items = < + item + Description = 'Sin incidencias' + Value = 0 + end + item + Description = 'Con incidencias' + ImageIndex = 3 + Tag = 1 + Value = 1 + end> + Properties.ShowDescriptions = False + OnGetCellHint = cxGridViewINCIDENCIASACTIVASGetCellHint + BestFitMaxWidth = 22 + MinWidth = 22 + Options.HorzSizing = False + Width = 22 + end + object cxGridViewINCIDENCIAS: TcxGridDBColumn + DataBinding.FieldName = 'INCIDENCIAS' + Visible = False + BestFitMaxWidth = 10 + VisibleForCustomization = False + Width = 20 + end + object cxGridViewREFERENCIA: TcxGridDBColumn + DataBinding.FieldName = 'REFERENCIA' + BestFitMaxWidth = 25 + SortIndex = 0 + SortOrder = soDescending + Width = 58 + end + object cxGridViewSITUACION: TcxGridDBColumn + Caption = 'Situaci'#243'n' + DataBinding.FieldName = 'SITUACION' + BestFitMaxWidth = 25 + Width = 80 + end + object cxGridViewFECHA_PRESUPUESTO: TcxGridDBColumn + Caption = 'Fecha presupuesto' + DataBinding.FieldName = 'FECHA_PRESUPUESTO' + BestFitMaxWidth = 25 + Width = 105 + end + object cxGridViewFECHA_DECISION: TcxGridDBColumn + Caption = 'Fecha decisi'#243'n' + DataBinding.FieldName = 'FECHA_DECISION' + BestFitMaxWidth = 25 + Width = 185 + end + object cxGridViewNIF_CIF: TcxGridDBColumn + Caption = 'NIF/CIF' + DataBinding.FieldName = 'NIF_CIF' + BestFitMaxWidth = 25 + Width = 75 + end + object cxGridViewNOMBRE: TcxGridDBColumn + Caption = 'Nombre' + DataBinding.FieldName = 'NOMBRE' + Width = 161 + end + object cxGridViewCLIENTE_FINAL: TcxGridDBColumn + Caption = 'Cliente final' + DataBinding.FieldName = 'CLIENTE_FINAL' + BestFitMaxWidth = 80 + Width = 140 + end + object cxGridViewIMPORTE_TOTAL: TcxGridDBColumn + Caption = 'Importe total' + DataBinding.FieldName = 'IMPORTE_TOTAL' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + BestFitMaxWidth = 60 + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + Width = 63 + end + object cxGridViewFACTURA: TcxGridDBColumn + Caption = 'Ref. factura' + DataBinding.FieldName = 'FACTURA' + Visible = False + BestFitMaxWidth = 25 + Width = 25 + end + end + object cxGridDBTableView1: TcxGridDBTableView [1] + NavigatorButtons.ConfirmDelete = False + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + end + inherited cxGridLevel: TcxGridLevel + Caption = 'Todos' + end + object cxGridLevelPendientes: TcxGridLevel + Caption = 'Pendientes' + end + object cxGridLevelEnProceso: TcxGridLevel + Caption = 'Aceptados' + end + object cxGridLevelServidor: TcxGridLevel + Caption = 'Anulados' + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 903 + ExplicitWidth = 903 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 903 + inherited dxLayoutControl1: TdxLayoutControl + Width = 903 + ExplicitWidth = 903 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 806 + Width = 806 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 285 + Width = 285 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 295 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 295 + ExplicitWidth = 504 + Width = 504 + end + inherited eLista: TcxComboBox + Left = 757 + Properties.OnChange = nil + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 757 + ExplicitWidth = 215 + Width = 215 + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Group1: TdxLayoutGroup + inherited dxLayoutControl1Item4: TdxLayoutItem + Caption = 'Con/Sin Factura:' + Visible = True + end + end + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 903 + ExplicitWidth = 903 + inherited tbxBotones: TTBXToolbar + Width = 893 + ExplicitWidth = 893 + end + end + end + inherited dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList + Left = 56 + end + inherited ActionList1: TActionList + inherited actQuitarFiltro: TAction + OnExecute = frViewFiltroBase1actQuitarFiltroExecute + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 499 + Visible = True + ExplicitTop = 499 + ExplicitWidth = 903 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 903 + ExplicitWidth = 903 + inherited TBXToolbar1: TTBXToolbar + Width = 893 + ExplicitWidth = 893 + object TBXSeparatorItem2: TTBXSeparatorItem + end + object TBXItem3: TTBXItem + Action = actCliente + end + object TBXSeparatorItem1: TTBXSeparatorItem + Visible = False + end + object TBXItem2: TTBXItem + Action = actProvincia + Visible = False + end + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + Top = 192 + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 38673.741107951390000000 + BuiltInReportLink = True + end + end + inherited dxPSEngineController1: TdxPSEngineController + Left = 296 + Top = 160 + end + inherited cxStyleRepository1: TcxStyleRepository + Left = 216 + Top = 160 + object cxStylePENDIENTES: TcxStyle + AssignedValues = [svTextColor] + TextColor = clWindowText + end + object cxStyleACEPTADO: TcxStyle + AssignedValues = [svTextColor] + TextColor = clGreen + end + object cxStyleRECHAZADO: TcxStyle + AssignedValues = [svTextColor] + TextColor = clGrayText + end + end + inherited ActionList1: TActionList + Left = 200 + Top = 448 + object actCliente: TAction + Caption = 'Cliente' + OnExecute = actClienteExecute + OnUpdate = actClienteUpdate + end + object actProvincia: TAction + Caption = 'Provincia' + OnExecute = actProvinciaExecute + OnUpdate = actProvinciaUpdate + end + end + inherited GridPNGImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000434944415478DA63FCFFFF3F + 03258011D900464646ACA601D530126D00BA6298A1B80C21CA0090183639925C + 80CB3B040DC0E69A510306BD010C04005E03C801036F00008D248BE16F9028BA + 0000000049454E44AE426082} + Name = 'Icono_header' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001774944415478DA + 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F + 192CBCB3192EEE99856A80C35E4B14C5079C8F836964F1ED368718662EDFC530 + 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB0815586BB18966D3A84 + DB0098B341E01F50EECF9F7F709B034F3B312CD3DDC1B06ADB11FC06C05CB2CB + EE0883DB211BB8CD61E7DD18166A6E6558BFEB387E03D06DFEFDE70F981F75D9 + 8361AEEA2686CDFB4EE136609FD33106A77D56605BD79BEE033B1B044036C75F + F76698AEB88161E7A133B80D00391BDDE69FBFFE30FC028AA5DFF567E8975CCD + 70F0D4454C0372623D195C0E58A384F862ED6D0CB157BDC0EC2972EB18721E05 + 317489AE643876EE32A601E9916E605BFEFCFE07B639E2A23BC37CF52D60B1DF + BF21B8F0792843ABE03286D397AE611A9018EA0CD70CF202CC6674D0C0BB98E1 + C2B59B9806C40638C23583FC8D6CF36F688C80F0BF7FFF192EDDB8856940848F + 2DC38A2D8789CE89180680044805200300115980F04CC063740000000049454E + 44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001E64944415478DA63FCFFFF3F + C394C53BFE33900172623D18196106003958157D79F594E1EDFC1E860F1F3E30 + 000906B5C6A90C0CFCA20CD6FEF90CE7764C4335C065BF2D8AE63D8E87191E76 + 163208282830F0FFF8C0F0F1C103865DD76E33BCF4A96198B77413A601D8C0C5 + CA44067DA0010C2736005DF080E1C8673E860BF133B11B80EE0210E85D25C2A0 + AF0134E0C002868F405F6CF9F28FE17DDE4ADC06809C0D03FF807217FB6A1884 + DE5C6390BF7080E123D01B9B1D2B183E28DAE33700E6926D3607181AE77932A4 + DDE0061AB081E122D005DFFA0F329C7DFC0DBF01209BFFFCF9C7F0FBCF5F30BE + E8A7C560F0E301C3EC9F2C0C411B9F336C3B7006B701BB1C0E31B81DB003BB60 + 8DC92E8690336E0C4A47BF30746FBDC09060ABC4D091799C61F79173B80D0039 + 1B663308835CF2F3D71F868B39C10C93F3FE30F44AAE60387CFA32A60119516E + 0C1E87EC51626081D66686846BBE6076F5CD108656F5350C1DA2CB184E9CBF8A + 6940729833DC46101D7DC98B618EDA4630FBC7C5830C7CD78F32B4F21D6648B4 + 5CC370F6F20D4C03E2821C50020E663308CC3D65C2200F4C07131F3030182E3E + C370E9FA6D4C03A2FCEC50FC0D66FF86F0DF6E9BCB7079763F83727C11038F53 + 24C3959B77300D08F5B26658BDED28D13911C3009000A900640000B9248BF0E9 + 9199330000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000027F4944415478DA + 95926D48535118C79FDB268AA54485D62C4C50962CDC87F5416D9AB966CEA440 + A4E84D828C304C89B217DB87D00F65252B69422F9A4161D6A0507C6D595A6450 + 83CC55787129CE19949B6DD3DDEDDE9D73BABB561835D3030FCF39E739FFDFF3 + C2A1608EF5A1467A415632783A589C100254B0A0EB5A623A9392DCD365B89DBE + FF3CBC5830C0DD9DD726922B34EFDAEB5B53F75972170470D4C8E461DB724D78 + 091139AC66F4FC5E9BA24007FDF3064C75E6DE7DE94BD8DBDC4A834615014B5D + BD8D6985E37BE6056074D2B544934357DCFA1CD2FBEA1B6C908742E96EAFBFFB + 7E5FE2A15A18FA2FC0F978B35E9CBAE94895EE2DB474D82053B918CA4BA2A1BF + D37823B3D879784E80BB36298ADA98368C97937043F3185CACA1E164F12AD89E + 1509132316E659BB39A14807B6A000E74365A5282D43EB67BFC020FD1D76159A + C0502785D8984580B8691830BEA9561F634EFC1340AAA4111E55C60817859611 + E4038EF34256FE6BE86C5A0F807D4010035F2DA3EE1EA32DEEA81EEC7F0126EF + 288E87A8D597389F8DC28280858ACB9FE06C690CBFF702E60DB153E463EF70C5 + D632EEDC1F00FA6A7CA824397D888B46AB671EF300CC826DDC092B5710411CB0 + 406C62D86EEFEA72C69DAA07F76FC0645DD241B15A7D93E3C6A85FE2471D5E68 + 6872C1CE1C2FE46BF0AC2A1842F7B9CBB2CFF8AB05007900A26949819995E075 + 184D43A0FF400B95575CD0FED4010A9907AAB5E1BC9801EC9FA9C261656D0346 + 7FFC8106E2A55C7A591EA551197CC84A1121BB4FC8346AF540CB1307A8950462 + 25E8670B8CD01E6611B198C445D9E5DC75EABD7E4DA32B322C05630F3F15BE54 + 82788F788FF9E9FB679D9110C781FBC077B753433BB478CB0F7C3B8CF0987D51 + CF0000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end> + Bitmap = {} + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + Top = 160 + end +end diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestosCliente.pas b/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestosCliente.pas new file mode 100644 index 0000000..6c3a9db --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestosCliente.pas @@ -0,0 +1,343 @@ +unit uViewPresupuestosCliente; + +interface + +uses + uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, + cxData, cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl, dxPSEngn, + dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, cxImageComboBox, ImgList, Controls, PngImageList, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + cxGridCustomPopupMenu, cxGridPopupMenu, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, + uDADataTable, cxGridLevel, cxClasses, cxControls, cxGridCustomView, Classes, + cxGrid, uBizPresupuestosCliente, cxCurrencyEdit, Forms, uViewFiltroBase, ActnList, TB2Item, + TBX, TB2Toolbar, TBXDkPanels, TB2Dock, dxPgsDlg, uDAInterfaces, Windows; + +type + IViewPresupuestosCliente = interface(IViewGrid) + ['{96821714-55CF-4BC1-A0C1-16E027B2EF16}'] + function GetPresupuestos: IBizPresupuestoCliente; + procedure SetPresupuestos(const Value: IBizPresupuestoCliente); + property Presupuestos: IBizPresupuestoCliente read GetPresupuestos write SetPresupuestos; + end; + + TfrViewPresupuestosCliente = class(TfrViewGrid, IViewPresupuestosCliente) + cxGridDBTableView1: TcxGridDBTableView; + cxGridViewREFERENCIA: TcxGridDBColumn; + cxGridViewINCIDENCIASACTIVAS: TcxGridDBColumn; + cxGridViewNOMBRE: TcxGridDBColumn; + cxGridViewSITUACION: TcxGridDBColumn; + cxGridViewFECHA_PRESUPUESTO: TcxGridDBColumn; + cxGridViewCLIENTE_FINAL: TcxGridDBColumn; + cxGridViewFACTURA: TcxGridDBColumn; + cxGridViewIMPORTE_TOTAL: TcxGridDBColumn; + cxGridLevelPendientes: TcxGridLevel; + cxGridLevelEnProceso: TcxGridLevel; + cxGridLevelServidor: TcxGridLevel; + cxStylePENDIENTES: TcxStyle; + cxStyleACEPTADO: TcxStyle; + actCliente: TAction; + actProvincia: TAction; + TBXItem2: TTBXItem; + TBXSeparatorItem1: TTBXSeparatorItem; + TBXSeparatorItem2: TTBXSeparatorItem; + TBXItem3: TTBXItem; + cxGridViewFECHA_DECISION: TcxGridDBColumn; + cxGridViewNIF_CIF: TcxGridDBColumn; + cxGridViewINCIDENCIAS: TcxGridDBColumn; + cxStyleRECHAZADO: TcxStyle; + procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: + TcxGridLevel); + procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out + AStyle: TcxStyle); + procedure actClienteExecute(Sender: TObject); + procedure actClienteUpdate(Sender: TObject); + procedure actProvinciaExecute(Sender: TObject); + procedure actProvinciaUpdate(Sender: TObject); + procedure cxGridViewICONOCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure cxGridViewINCIDENCIASACTIVASGetCellHint( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + ACellViewInfo: TcxGridTableDataCellViewInfo; const AMousePos: TPoint; + var AHintText: TCaption; var AIsHintMultiLine: Boolean; + var AHintTextRect: TRect); + procedure cxGridViewDataControllerCompare( + ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2, + AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer); + procedure OnFiltroListaPropertiesChange(Sender: TObject); + procedure OnFiltroListaPropertiesInitPopup(Sender: TObject); + procedure CustomViewDestroy(Sender: TObject); + procedure CustomViewShow(Sender: TObject); + procedure frViewFiltroBase1actQuitarFiltroExecute(Sender: TObject); + + private + //Filtros relativos a la vista + procedure AnadirFiltroSituaciones; + procedure AnadirFiltroFechas; + procedure AnadirFiltroFacturado; + + protected + FPresupuestos: IBizPresupuestoCliente; + function GetPresupuestos: IBizPresupuestoCliente; + procedure SetPresupuestos(const Value: IBizPresupuestoCliente); + public + procedure AnadirOtrosFiltros; override; + property Presupuestos: IBizPresupuestoCliente read GetPresupuestos write SetPresupuestos; + end; + +implementation + +uses + SysUtils, variants, uDataModulePresupuestosCliente, schPresupuestosClienteClient_Intf, + uViewGridBase, uReferenciasUtils, cxVariants; + +{$R *.dfm} + +procedure TfrViewPresupuestosCliente.actClienteExecute(Sender: TObject); +begin + if (cxGridViewNOMBRE.GroupIndex < 0) then + begin + cxGridViewNOMBRE.GroupIndex := cxGridView.GroupedColumnCount; + cxGridViewNOMBRE.Visible := False; + end + else + begin + cxGridViewNOMBRE.GroupIndex := -1; + cxGridViewNOMBRE.Visible := True; + end; +end; + +procedure TfrViewPresupuestosCliente.actClienteUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Checked := not (cxGridViewNOMBRE.GroupIndex < 0); +end; + +procedure TfrViewPresupuestosCliente.actProvinciaExecute(Sender: TObject); +begin +{ + if (cxGridViewPROVINCIA.GroupIndex < 0) then + begin + cxGridViewPROVINCIA.GroupIndex := cxGridView.GroupedColumnCount; + cxGridViewPROVINCIA.Visible := False; + end + else + begin + cxGridViewPROVINCIA.GroupIndex := -1; + cxGridViewPROVINCIA.Visible := True; + end; +} +end; + +procedure TfrViewPresupuestosCliente.actProvinciaUpdate(Sender: TObject); +begin +{ + inherited; + (Sender as TAction).Checked := not (cxGridViewPROVINCIA.GroupIndex < 0); +} +end; + +procedure TfrViewPresupuestosCliente.AnadirFiltroFechas; +var + Columna: TcxGridDBColumn; + Fecha1, Fecha2: Variant; + FFiltro : TcxFilterCriteriaItemList; +begin + Fecha1 := frViewFiltroBase1.edtFechaIniFiltro.EditValue; + Fecha2 := frViewFiltroBase1.edtFechaFinFiltro.EditValue; + + if not VarIsNull(Fecha1) + and not VarIsNull(Fecha2) then + begin + cxGridView.DataController.Filter.Options := [fcoCaseInsensitive, fcoSoftCompare]; + FFiltro := AddFilterGrid(fboAnd); + + Columna := (cxGridView as TcxGridDBTableView).GetColumnByFieldName('FECHA_Presupuesto'); + FFiltro.AddItem(Columna, foBetween, varArrayOf([Fecha1, Fecha2]), VarToStr(Fecha1) + ' and ' + VarToStr(Fecha2)); + end; +end; + +procedure TfrViewPresupuestosCliente.AnadirFiltroFacturado; +var + FFiltro : TcxFilterCriteriaItemList; +begin + //Solo se aplica este filtro en el caso de tener activo el panel de detalle de filtro + //y sobre la lista de articulos detallada por proveedor + if frViewFiltroBase1.Visible then + begin + case frViewFiltroBase1.eLista.ItemIndex of +//Sin facturar + 1 : begin + FFiltro := AddFilterGrid(fboAnd); + FFiltro.AddItem(cxGridViewFACTURA, foEqual, NULL, 'NoFacturado'); + end; + +//Facturados + 2: begin + FFiltro := AddFilterGrid(fboAnd); + FFiltro.AddItem(cxGridViewFACTURA, foNotEqual, NULL, 'Facturado'); + end; + end; + end; +end; + +procedure TfrViewPresupuestosCliente.AnadirFiltroSituaciones; +var + FFiltro : TcxFilterCriteriaItemList; +begin + FFiltro := AddFilterGrid(fboAnd); + + case cxGrid.ActiveLevel.Index of + 1 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PRESUPUESTO_PENDIENTE, SITUACION_PRESUPUESTO_PENDIENTE); + 2 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PRESUPUESTO_ACEPTADO, SITUACION_PRESUPUESTO_ACEPTADO); + 3 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PRESUPUESTO_ANULADO, SITUACION_PRESUPUESTO_ANULADO); + end; +end; + +procedure TfrViewPresupuestosCliente.AnadirOtrosFiltros; +begin + inherited; + + AnadirFiltroSituaciones; + AnadirFiltroFechas; + AnadirFiltroFacturado; + + //Finalmente activamos el filtro si tenemos algo + if cxGridView.DataController.Filter.IsEmpty then + cxGridView.DataController.Filter.Active := False + else + cxGridView.DataController.Filter.Active := True; + cxGrid.ActiveLevel.GridView := cxGridView; +end; + +procedure TfrViewPresupuestosCliente.CustomViewDestroy(Sender: TObject); +begin + frViewFiltroBase1.eLista.Properties.OnChange := Nil; + frViewFiltroBase1.eLista.Properties.OnInitPopup := Nil; + inherited; +end; + +procedure TfrViewPresupuestosCliente.CustomViewShow(Sender: TObject); +begin + inherited; + frViewFiltroBase1.eLista.Properties.OnChange := OnFiltroListaPropertiesChange; + frViewFiltroBase1.eLista.Properties.OnInitPopup := OnFiltroListaPropertiesInitPopup; +end; + +procedure TfrViewPresupuestosCliente.cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel); +begin + inherited; + RefrescarFiltro; +end; + +procedure TfrViewPresupuestosCliente.cxGridViewDataControllerCompare( + ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2, + AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer); +begin + inherited; + if (AItemIndex = cxGridViewREFERENCIA.Index) and + (VarType(V1) = VarType(V2)) and (VarType(V1) = varString) then + Compare := CompararReferencias(V1, V2) + else + Compare := VarCompare(V1, V2); +end; + +procedure TfrViewPresupuestosCliente.cxGridViewICONOCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +{var + R : TRect;} +begin + inherited; +{ R := AViewInfo.ContentBounds; + ACanvas.FillRect(R); + + if (cxGridView.DataController.DisplayTexts[AViewInfo.GridRecord.RecordIndex, + cxGridViewINCIDENCIASACTIVAS.Index] = 'Sin incidencias') then + ACanvas.DrawImage(GridPNGImageList, R.Left + 2, R.Top + 2, 1) + else + ACanvas.DrawImage(GridPNGImageList, R.Left + 2, R.Top + 2, 2); + ADone := True;} +end; + +procedure TfrViewPresupuestosCliente.cxGridViewINCIDENCIASACTIVASGetCellHint( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + ACellViewInfo: TcxGridTableDataCellViewInfo; const AMousePos: TPoint; + var AHintText: TCaption; var AIsHintMultiLine: Boolean; + var AHintTextRect: TRect); +begin + inherited; + if (ARecord.DisplayTexts[Sender.Index] <> 'Sin incidencias') then + begin + AIsHintMultiLine := True; + AHintText := ARecord.Values[cxGridViewINCIDENCIAS.Index] + end; +end; + +procedure TfrViewPresupuestosCliente.cxGridViewStylesGetContentStyle(Sender: + TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: + TcxCustomGridTableItem; out AStyle: TcxStyle); +var + IndiceCol: Integer; + ASituacion: string; +begin + inherited; + if Assigned(ARecord) then + begin + IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_PresupuestosClienteSITUACION).Index; + ASituacion := VarToStr(ARecord.DisplayTexts[IndiceCol]); + if ASituacion = SITUACION_PRESUPUESTO_PENDIENTE then + AStyle.TextColor := cxStylePENDIENTES.TextColor + else if ASituacion = SITUACION_PRESUPUESTO_ACEPTADO then + AStyle.TextColor := cxStyleACEPTADO.TextColor + else if ASituacion = SITUACION_PRESUPUESTO_ANULADO then + AStyle.TextColor := cxStyleRECHAZADO.TextColor + end; +end; + +procedure TfrViewPresupuestosCliente.frViewFiltroBase1actQuitarFiltroExecute(Sender: TObject); +begin + frViewFiltroBase1.txtFiltroTodo.Clear; + frViewFiltroBase1.eLista.Clear; +end; + +procedure TfrViewPresupuestosCliente.OnFiltroListaPropertiesChange(Sender: TObject); +begin + inherited; + RefrescarFiltro; +end; + +procedure TfrViewPresupuestosCliente.OnFiltroListaPropertiesInitPopup(Sender: TObject); +begin + inherited; + + with frViewFiltroBase1.eLista.Properties.Items do + begin + BeginUpdate; + try + Clear; + Add('Todos'); //Case 0 + Add('Sin facturar'); //Case 1 + Add('Facturados'); //Case 2 + frViewFiltroBase1.eLista.ItemIndex := 0; + finally + EndUpdate; + end; + end; +end; + +function TfrViewPresupuestosCliente.GetPresupuestos: IBizPresupuestoCliente; +begin + Result := FPresupuestos; +end; + +procedure TfrViewPresupuestosCliente.SetPresupuestos(const Value: IBizPresupuestoCliente); +begin + FPresupuestos := Value; + if Assigned(FPresupuestos) then + dsDataSource.DataTable := FPresupuestos.DataTable; +end; + +end. diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewTotalesPresupuesto.dcu b/Source/Modulos/Presupuestos de cliente/Views/uViewTotalesPresupuesto.dcu new file mode 100644 index 0000000..f6a3dc6 Binary files /dev/null and b/Source/Modulos/Presupuestos de cliente/Views/uViewTotalesPresupuesto.dcu differ diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewTotalesPresupuesto.dfm b/Source/Modulos/Presupuestos de cliente/Views/uViewTotalesPresupuesto.dfm new file mode 100644 index 0000000..c81df22 --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/uViewTotalesPresupuesto.dfm @@ -0,0 +1,325 @@ +inherited frViewTotalesPresupuesto: TfrViewTotalesPresupuesto + Width = 925 + Height = 366 + OnDestroy = CustomViewDestroy + OnShow = CustomViewShow + ExplicitHeight = 366 + inherited dxLayoutControl1: TdxLayoutControl + Width = 925 + Height = 366 + ExplicitHeight = 366 + DesignSize = ( + 925 + 366) + inherited Bevel3: TBevel + Left = 529 + Height = 122 + ExplicitLeft = 529 + ExplicitHeight = 122 + end + inherited Bevel4: TBevel + Left = 641 + Width = 192 + ExplicitLeft = 641 + ExplicitWidth = 192 + end + inherited Bevel1: TBevel + Left = 641 + Width = 73 + ExplicitLeft = 641 + ExplicitWidth = 73 + end + inherited Bevel2: TBevel + Width = 368 + ExplicitWidth = 368 + end + inherited ImporteDto: TcxDBCurrencyEdit + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited ImporteIVA: TcxDBCurrencyEdit + Left = 712 + DataBinding.DataField = '' + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 712 + end + inherited ImporteTotal: TcxDBCurrencyEdit + Left = 642 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 642 + end + inherited edtDescuento: TcxDBSpinEdit + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtIVA: TcxDBSpinEdit + Left = 641 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 641 + end + inherited ImporteBase: TcxDBCurrencyEdit + Left = 641 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 641 + end + inherited edtRE: TcxDBSpinEdit + Left = 641 + DataBinding.DataField = '' + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 641 + end + inherited ImporteRE: TcxDBCurrencyEdit + Left = 712 + DataBinding.DataField = '' + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 712 + end + inherited eImporteNeto: TcxDBCurrencyEdit + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited ePorte: TcxDBCurrencyEdit + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited eIVA: TcxDBLookupComboBox + DataBinding.DataField = '' + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited bTiposIVA: TButton + Left = 381 + ExplicitLeft = 381 + end + inherited cbRecargoEquivalencia: TcxDBCheckBox + DataBinding.DataField = '' + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 221 + Width = 221 + end + inherited edtRetencion: TcxDBSpinEdit + Left = 641 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 641 + end + inherited edtImporteRetencion: TcxDBCurrencyEdit + Left = 712 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 712 + ExplicitWidth = 180 + Width = 180 + end + inherited edtFechaRetencion: TcxDBDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 280 + Width = 280 + end + object cbBonificacion: TcxCheckBox [20] + Left = 22 + Top = 265 + Caption = 'Incluir descuento por bonificaci'#243'n:' + Properties.DisplayChecked = '1' + Properties.DisplayUnchecked = '0' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + Properties.ValueChecked = 1 + Properties.ValueUnchecked = 0 + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 16 + Width = 200 + end + object eDescripcionBonificacion: TcxDBTextEdit [21] + Left = 291 + Top = 265 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'DESCRIPCION_BONIFICACION' + DataBinding.DataSource = DADataSource + Enabled = False + ParentFont = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 17 + Height = 21 + Width = 325 + end + object eImporteBonificacion: TcxDBCurrencyEdit [22] + Left = 626 + Top = 265 + AutoSize = False + DataBinding.DataField = 'IMPORTE_BONIFICACION' + DataBinding.DataSource = DADataSource + Enabled = False + ParentFont = False + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = '- ,0.00 '#8364';,0.00 '#8364 + Properties.ReadOnly = False + Properties.UseLeftAlignmentOnEditing = False + Properties.UseThousandSeparator = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clWindowText + Style.Font.Height = -11 + Style.Font.Name = 'Tahoma' + Style.Font.Style = [] + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.TextColor = clWindowText + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 18 + Height = 21 + Width = 277 + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Group1: TdxLayoutGroup + inherited dxLayoutControl1Group2: TdxLayoutGroup + inherited dxLayoutControl1Item8: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Group7: TdxLayoutGroup + Visible = False + inherited dxLayoutControl1Item9: TdxLayoutItem + Visible = False + end + end + inherited dxLayoutControl1Group6: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Item16: TdxLayoutItem + Visible = False + end + end + inherited dxLayoutControl1Group5: TdxLayoutGroup + inherited dxLayoutControl1Group3: TdxLayoutGroup + inherited dxLayoutControl1Item12: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Item14: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Group9: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Group8: TdxLayoutGroup + Visible = False + inherited dxLayoutControl1Item6: TdxLayoutItem + Visible = False + end + end + inherited dxLayoutControl1Item10: TdxLayoutItem + Visible = False + end + end + end + end + object dxLayoutControl1Group13: TdxLayoutGroup + Caption = 'Bonificaci'#243'n' + LayoutDirection = ldHorizontal + object dxLayoutControl1Item20: TdxLayoutItem + ShowCaption = False + Control = cbBonificacion + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item22: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Descripci'#243'n:' + Control = eDescripcionBonificacion + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item23: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'Importe:' + Control = eImporteBonificacion + ControlOptions.ShowBorder = False + end + end + end + end +end diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewTotalesPresupuesto.pas b/Source/Modulos/Presupuestos de cliente/Views/uViewTotalesPresupuesto.pas new file mode 100644 index 0000000..46426ed --- /dev/null +++ b/Source/Modulos/Presupuestos de cliente/Views/uViewTotalesPresupuesto.pas @@ -0,0 +1,104 @@ +unit uViewTotalesPresupuesto; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewTotales, cxGraphics, dxLayoutLookAndFeels, DB, uDAInterfaces, + uDADataTable, dxLayoutControl, cxCheckBox, cxDBEdit, StdCtrls, cxDropDownEdit, + cxLookupEdit, cxDBLookupEdit, cxDBLookupComboBox, cxMaskEdit, cxSpinEdit, + cxContainer, cxEdit, cxTextEdit, cxCurrencyEdit, ExtCtrls, cxControls, + uBizPresupuestosCliente, uPresupuestosClienteController, cxCalendar; + +type + TfrViewTotalesPresupuesto = class(TfrViewTotales) + dxLayoutControl1Item20: TdxLayoutItem; + cbBonificacion: TcxCheckBox; + dxLayoutControl1Item22: TdxLayoutItem; + eDescripcionBonificacion: TcxDBTextEdit; + dxLayoutControl1Item23: TdxLayoutItem; + eImporteBonificacion: TcxDBCurrencyEdit; + dxLayoutControl1Group13: TdxLayoutGroup; + procedure CustomViewDestroy(Sender: TObject); + procedure CustomViewShow(Sender: TObject); + procedure OnBonificacionPropertiesEditValueChanged(Sender: TObject); + + protected + FPresupuesto: IBizPresupuestoCliente; + FController : IPresupuestosClienteController; + function GetPresupuesto: IBizPresupuestoCliente; + procedure SetPresupuesto(const Value: IBizPresupuestoCliente); + function GetController : IPresupuestosClienteController; + procedure SetController (const Value : IPresupuestosClienteController); virtual; + + public + property Presupuesto: IBizPresupuestoCliente read GetPresupuesto write SetPresupuesto; + property Controller : IPresupuestosClienteController read GetController write SetController; + + end; + +implementation +{$R *.dfm} + +{ TfrViewTotalesPresupuesto } + +procedure TfrViewTotalesPresupuesto.CustomViewDestroy(Sender: TObject); +begin + cbBonificacion.Properties.OnEditValueChanged := Nil; + FPresupuesto := NIL; + FController := NIL; + inherited; +end; + +procedure TfrViewTotalesPresupuesto.CustomViewShow(Sender: TObject); +begin + inherited; + + if not Presupuesto.DESCRIPCION_BONIFICACIONIsNull + or not Presupuesto.IMPORTE_BONIFICACIONIsNull then + begin + cbBonificacion.Checked := True; + eDescripcionBonificacion.Enabled := True; + eImporteBonificacion.Enabled := True; + end; + + cbBonificacion.Properties.OnEditValueChanged := OnBonificacionPropertiesEditValueChanged; +end; + +function TfrViewTotalesPresupuesto.GetController: IPresupuestosClienteController; +begin + Result := FController; +end; + +function TfrViewTotalesPresupuesto.GetPresupuesto: IBizPresupuestoCliente; +begin + Result := FPresupuesto; +end; + +procedure TfrViewTotalesPresupuesto.OnBonificacionPropertiesEditValueChanged( + Sender: TObject); +begin + if cbBonificacion.Checked then + begin + eDescripcionBonificacion.Enabled := True; + eImporteBonificacion.Enabled := True; + end + else + begin + eDescripcionBonificacion.Enabled := False; + eImporteBonificacion.Enabled := False; + Controller.BorrarBonificacion(Presupuesto); + end; +end; + +procedure TfrViewTotalesPresupuesto.SetController(const Value: IPresupuestosClienteController); +begin + FController := Value; +end; + +procedure TfrViewTotalesPresupuesto.SetPresupuesto(const Value: IBizPresupuestoCliente); +begin + FPresupuesto := Value; +end; + +end. diff --git a/Source/Modulos/Recibos de cliente/Controller/RecibosCliente_controller.bdsproj b/Source/Modulos/Recibos de cliente/Controller/RecibosCliente_controller.bdsproj new file mode 100644 index 0000000..fd46ae6 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Controller/RecibosCliente_controller.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + RecibosCliente_controller.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Recibos de cliente/Controller/RecibosCliente_controller.dcu b/Source/Modulos/Recibos de cliente/Controller/RecibosCliente_controller.dcu new file mode 100644 index 0000000..c534538 Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Controller/RecibosCliente_controller.dcu differ diff --git a/Source/Modulos/Recibos de cliente/Controller/RecibosCliente_controller.dpk b/Source/Modulos/Recibos de cliente/Controller/RecibosCliente_controller.dpk new file mode 100644 index 0000000..c599d31 Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Controller/RecibosCliente_controller.dpk differ diff --git a/Source/Modulos/Recibos de cliente/Controller/RecibosCliente_controller.dproj b/Source/Modulos/Recibos de cliente/Controller/RecibosCliente_controller.dproj new file mode 100644 index 0000000..3b3b1a7 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Controller/RecibosCliente_controller.dproj @@ -0,0 +1,586 @@ + + + {c8b2fb9a-0367-4fd0-b836-4b594c06bcab} + RecibosCliente_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\RecibosCliente_controller.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + RecibosCliente_controller.dpk + + + + + + + MainSource + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Recibos de cliente/Controller/RecibosCliente_controller.rc b/Source/Modulos/Recibos de cliente/Controller/RecibosCliente_controller.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Controller/RecibosCliente_controller.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Recibos de cliente/Controller/RecibosCliente_controller.res b/Source/Modulos/Recibos de cliente/Controller/RecibosCliente_controller.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Controller/RecibosCliente_controller.res differ diff --git a/Source/Modulos/Recibos de cliente/Controller/View/uIEditorElegirRecibosCliente.dcu b/Source/Modulos/Recibos de cliente/Controller/View/uIEditorElegirRecibosCliente.dcu new file mode 100644 index 0000000..164776e Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Controller/View/uIEditorElegirRecibosCliente.dcu differ diff --git a/Source/Modulos/Recibos de cliente/Controller/View/uIEditorElegirRecibosCliente.pas b/Source/Modulos/Recibos de cliente/Controller/View/uIEditorElegirRecibosCliente.pas new file mode 100644 index 0000000..8b28d60 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Controller/View/uIEditorElegirRecibosCliente.pas @@ -0,0 +1,27 @@ +unit uIEditorElegirRecibosCliente; + +interface + +uses + uIEditorRecibosCliente, uBizRecibosCliente, uGUIBase; + +type + IEditorElegirRecibosCliente = interface(IEditorRecibosCliente) + ['{ACCA545C-3D0C-4FD1-9472-A41AD3C2AF9E}'] + function GetRecibosClienteSeleccionados: IBizRecibosCliente; + property RecibosClienteSeleccionados: IBizRecibosCliente read GetRecibosClienteSeleccionados; + + procedure SetMultiSelect (AValue : Boolean); + function GetMultiSelect : Boolean; + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + + procedure SetMensaje (const AValue: String); + function GetMensaje: String; + property Mensaje : String read GetMensaje write SetMensaje; + + end; + + +implementation + +end. diff --git a/Source/Modulos/Recibos de cliente/Controller/View/uIEditorFechaPago.dcu b/Source/Modulos/Recibos de cliente/Controller/View/uIEditorFechaPago.dcu new file mode 100644 index 0000000..ee3f5f9 Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Controller/View/uIEditorFechaPago.dcu differ diff --git a/Source/Modulos/Recibos de cliente/Controller/View/uIEditorFechaPago.pas b/Source/Modulos/Recibos de cliente/Controller/View/uIEditorFechaPago.pas new file mode 100644 index 0000000..b349b81 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Controller/View/uIEditorFechaPago.pas @@ -0,0 +1,18 @@ +unit uIEditorFechaPago; + +interface + +uses + uEditorBasico; + +type + IEditorFechaPago = interface(IEditorBasico) + ['{977246EB-0801-4CEC-B37F-ABE2D2C9AFF4}'] + function GetFechaPago: TDateTime; + procedure SetFechaPago(const Value: TDateTime); + property FechaPago: TDateTime Read GetFechaPago write SetFechaPago; + end; + +implementation + +end. diff --git a/Source/Modulos/Recibos de cliente/Controller/View/uIEditorReciboCliente.dcu b/Source/Modulos/Recibos de cliente/Controller/View/uIEditorReciboCliente.dcu new file mode 100644 index 0000000..34c10a7 Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Controller/View/uIEditorReciboCliente.dcu differ diff --git a/Source/Modulos/Recibos de cliente/Controller/View/uIEditorReciboCliente.pas b/Source/Modulos/Recibos de cliente/Controller/View/uIEditorReciboCliente.pas new file mode 100644 index 0000000..ea4098c --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Controller/View/uIEditorReciboCliente.pas @@ -0,0 +1,22 @@ +unit uIEditorReciboCliente; + +interface + +uses + uEditorDBItem, uBizRecibosCliente, uRecibosClienteController; + +type + IEditorReciboCliente = interface(IEditorDBItem) + ['{3260C102-192B-4797-A390-30C818ECBEA5}'] + function GetController : IRecibosClienteController; + procedure SetController (const Value : IRecibosClienteController); + property Controller : IRecibosClienteController read GetController write SetController; + + function GetRecibo: IBizRecibosCliente; + procedure SetRecibo(const Value: IBizRecibosCliente); + property Recibo: IBizRecibosCliente read GetRecibo write SetRecibo; + end; + +implementation + +end. diff --git a/Source/Modulos/Recibos de cliente/Controller/View/uIEditorRecibosCliente.dcu b/Source/Modulos/Recibos de cliente/Controller/View/uIEditorRecibosCliente.dcu new file mode 100644 index 0000000..a59591a Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Controller/View/uIEditorRecibosCliente.dcu differ diff --git a/Source/Modulos/Recibos de cliente/Controller/View/uIEditorRecibosCliente.pas b/Source/Modulos/Recibos de cliente/Controller/View/uIEditorRecibosCliente.pas new file mode 100644 index 0000000..fadcd62 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Controller/View/uIEditorRecibosCliente.pas @@ -0,0 +1,46 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uIEditorRecibosCliente; + +interface + +uses + uEditorGridBase, uBizRecibosCliente, uRecibosClienteController; + +type + IEditorRecibosCliente = interface(IEditorGridBase) + ['{77CB33C2-8547-4666-8F4F-F65C3DB1EBBF}'] + function GetRecibosCliente: IBizRecibosCliente; + procedure SetRecibosCliente(const Value: IBizRecibosCliente); + property RecibosCliente: IBizRecibosCliente read GetRecibosCliente write SetRecibosCliente; + + function GetController : IRecibosClienteController; + procedure SetController (const Value : IRecibosClienteController); + property Controller : IRecibosClienteController read GetController write SetController; + end; + + +implementation + +end. diff --git a/Source/Modulos/Recibos de cliente/Controller/View/uIEditorRecibosClientePreview.dcu b/Source/Modulos/Recibos de cliente/Controller/View/uIEditorRecibosClientePreview.dcu new file mode 100644 index 0000000..15ce763 Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Controller/View/uIEditorRecibosClientePreview.dcu differ diff --git a/Source/Modulos/Recibos de cliente/Controller/View/uIEditorRecibosClientePreview.pas b/Source/Modulos/Recibos de cliente/Controller/View/uIEditorRecibosClientePreview.pas new file mode 100644 index 0000000..21a7165 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Controller/View/uIEditorRecibosClientePreview.pas @@ -0,0 +1,16 @@ +unit uIEditorRecibosClientePreview; + +interface + +uses + uEditorPreview; + +type + IEditorRecibosClientePreview = interface(IEditorPreview) + ['{F7A242CF-6631-4F50-BFE1-AC490C8348EB}'] + end; + + +implementation + +end. diff --git a/Source/Modulos/Recibos de cliente/Controller/uPagosClienteController.dcu b/Source/Modulos/Recibos de cliente/Controller/uPagosClienteController.dcu new file mode 100644 index 0000000..d3fb2ca Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Controller/uPagosClienteController.dcu differ diff --git a/Source/Modulos/Recibos de cliente/Controller/uPagosClienteController.pas b/Source/Modulos/Recibos de cliente/Controller/uPagosClienteController.pas new file mode 100644 index 0000000..0f8ffcb --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Controller/uPagosClienteController.pas @@ -0,0 +1,145 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uPagosClienteController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleRecibosCliente, + uBizPagosCliente; + +type + IPagosClienteController = interface(ISujeto) + ['{1864471E-74FA-4E96-BA8D-21357DA38B0F}'] + function Anadir(APagosCliente: IBizPagosCliente; Const Fecha: String = ''): Boolean; + procedure Modificar(APagosCliente: IBizPagosCliente; Const Fecha: String); + function Eliminar(APagoCliente : IBizPagosCliente): Boolean; + function EliminarTodo(APagossCliente : IBizPagosCliente): Boolean; + end; + + TPagosClienteController = class(TSujeto, IPagosClienteController) + protected + FDataModule : IDataModuleRecibosCliente; + + procedure AsignarDataModule; + + public + constructor Create; override; + destructor Destroy; override; + function Anadir(APagosCliente: IBizPagosCliente; Const Fecha: String = ''): Boolean; + procedure Modificar(APagosCliente: IBizPagosCliente; Const Fecha: String); + function Eliminar(APagoCliente : IBizPagosCliente): Boolean; + function EliminarTodo(APagosCliente : IBizPagosCliente): Boolean; + end; + +implementation + +uses + cxControls, DB, uEditorRegistryUtils,Dialogs, + uDAInterfaces, uDataTableUtils, uDataModuleUsuarios, + uDateUtils, uROTypes, DateUtils, Controls, Windows, Variants, + schRecibosClienteClient_Intf, uDataModuleRecibosCliente; + +{ TPagosClienteController } + +function TPagosClienteController.Anadir(APagosCliente: IBizPagosCliente; Const Fecha: String = ''): Boolean; +{ Si el pago introducido es un pago y no una devolucin devolvemos true en caso de ser +una devolucin devolvemos false} +begin + APagosCliente.Append; + if Length(Fecha) = 0 then + APagosCliente.FECHA_PAGO := Date + else + APagosCliente.FECHA_PAGO := StrToDate(Fecha); + + if (APagosCliente.DataTable.RecordCount = 0) + or ((APagosCliente.DataTable.RecordCount mod 2) = 0) then + APagosCliente.TIPO := CTE_PAGO + else + APagosCliente.TIPO := CTE_DEVOLUCION; + + Result := (APagosCliente.TIPO = CTE_PAGO); + APagosCliente.Post; +end; + +procedure TPagosClienteController.AsignarDataModule; +begin + FDataModule := TDataModuleRecibosCliente.Create(Nil); +end; + +constructor TPagosClienteController.Create; +begin + AsignarDataModule; +end; + +destructor TPagosClienteController.Destroy; +begin + FDataModule := NIL; + inherited; +end; + +function TPagosClienteController.Eliminar(APagoCliente: IBizPagosCliente): Boolean; +{ En el caso de eliminar un cobro del recibo devuelve true, mientras que si lo que +se borra es una devolucin devuelve false} +begin + if not Assigned(APagoCliente) then + raise Exception.Create ('IBizPagosCliente no asignado'); + + ShowHourglassCursor; + try + if (APagoCliente.State in dsEditModes) then + APagoCliente.Cancel; + + APagoCliente.Last; + Result := (APagoCliente.TIPO = CTE_PAGO); + APagoCliente.Delete; + //Todo lo haremos en memoria ya que los pagos no tienen entidad propia + //APagosCliente.DataTable.ApplyUpdates; + finally + HideHourglassCursor; + end; +end; + +function TPagosClienteController.EliminarTodo(APagosCliente: IBizPagosCliente): Boolean; +begin + Result := False; + if Assigned(APagosCliente) then + begin + if not APagosCliente.DataTable.Active then + APagosCliente.DataTable.Active := True; + APagosCliente.DataTable.ClearRows; + //Todo lo haremos en memoria ya que los pagos no tienen entidad propia + //APagosCliente.DataTable.ApplyUpdates; + Result := True; + end; +end; + +procedure TPagosClienteController.Modificar(APagosCliente: IBizPagosCliente; const Fecha: String); +begin + APagosCliente.DataTable.Edit; + APagosCliente.FECHA_PAGO := StrToDate(Fecha); + APagosCliente.DataTable.Post; +end; + +end. diff --git a/Source/Modulos/Recibos de cliente/Controller/uRecibosClienteController.dcu b/Source/Modulos/Recibos de cliente/Controller/uRecibosClienteController.dcu new file mode 100644 index 0000000..5adbded Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Controller/uRecibosClienteController.dcu differ diff --git a/Source/Modulos/Recibos de cliente/Controller/uRecibosClienteController.pas b/Source/Modulos/Recibos de cliente/Controller/uRecibosClienteController.pas new file mode 100644 index 0000000..28105be --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Controller/uRecibosClienteController.pas @@ -0,0 +1,1003 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uRecibosClienteController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, + uPagosClienteController, uClientesController, + uBizRecibosCliente, uIDataModuleRecibosCliente; + +type + IRecibosClienteController = interface(IControllerBase) + ['{CBC8BDB8-FBE0-4D54-B2F1-A9330E8339EB}'] + + function GetPagosController: IPagosClienteController; + procedure SetPagosController(const Value: IPagosClienteController); + property PagosController: IPagosClienteController read GetPagosController write SetPagosController; + + procedure Anadir(ARecibosCliente : IBizRecibosCliente); + function Eliminar(ARecibosCliente : IBizRecibosCliente): Boolean; + + function AnadirPago(ARecibosCliente : IBizRecibosCliente; FechaPago: String =''): Boolean; + procedure ModificarPago(ARecibosCliente : IBizRecibosCliente); + function EliminarPago(ARecibosCliente : IBizRecibosCliente): Boolean; + function EliminarTodo(ARecibosCliente : IBizRecibosCliente): Boolean; + + function Guardar(ARecibosCliente : IBizRecibosCliente): Boolean; + procedure DescartarCambios(ARecibosCliente : IBizRecibosCliente); + function Duplicar(ARecibosCliente: IBizRecibosCliente): IBizRecibosCliente; + function Nuevo : IBizRecibosCliente; + + procedure RecuperarCliente(AReciboCliente : IBizRecibosCliente); + + function Buscar(const ID: Integer): IBizRecibosCliente; + function BuscarTodos: IBizRecibosCliente; overload; + function BuscarTodos(const ID_CLIENTE: integer): IBizRecibosCliente; overload; + + function BuscarRecibosRemesa(const ID_REMESA: Integer): IBizRecibosCliente; + function BuscarRecibosFactura(const ID_FACTURA: Integer): IBizRecibosCliente; + function BuscarRecibosACompensar(const Recibo: IBizRecibosCliente): IBizRecibosCliente; + function BuscarRecibosARemesar(const AListaVisibles, AListaNoVisibles: TStringList): IBizRecibosCliente; + + procedure VerTodos(ARecibosCliente: IBizRecibosCliente; + const AVerModal : Boolean = False; const AWindowCaption: String = ''; + const AHeaderText: String = ''); + + procedure Ver(ARecibosCliente: IBizRecibosCliente); + + function ExtraerSeleccionados(ARecibosCliente: IBizRecibosCliente) : IBizRecibosCliente; + function ElegirRecibos(ARecibos : IBizRecibosCliente; AMensaje: String; AMultiSelect: Boolean): IBizRecibosCliente; + + procedure AsignarRemesa(ARecibos : IBizRecibosCliente; ID_REMESA: Integer); + procedure QuitarRemesa(ARecibos : IBizRecibosCliente); + procedure SetSituacionCobrados(ARecibos : IBizRecibosCliente; WithDeltas: Boolean=False); + + function ElegirRecibosCompensados(ARecibo : IBizRecibosCliente): Boolean; + procedure QuitarReciboCompensado(ARecibo : IBizRecibosCliente); + + procedure Preview(ARecibosCliente : IBizRecibosCliente; AllItems: Boolean = false); + procedure Print(ARecibosCliente : IBizRecibosCliente; AllItems: Boolean = false); + + function DarListaAnosRecibos: TStringList; + procedure FiltrarAno(ARecibo: IBizRecibosCliente; ADynWhereDataTable: WideString; const Ano: String); + end; + + TRecibosClienteController = class(TControllerBase, IRecibosClienteController) + private + function ImporteTotalModificado(ARecibosCliente: IBizRecibosCliente; + var ImporteRestante: Currency): Boolean; + + procedure FiltrarEmpresa(ARecibo: IBizRecibosCliente); + + protected + FDataModule : IDataModuleRecibosCliente; + FPagosController : IPagosClienteController; + FClienteController : IClientesController; + + function GetPagosController: IPagosClienteController; + procedure SetPagosController(const Value: IPagosClienteController); + + function _Vacio : IBizRecibosCliente; + + function ValidarReciboCliente(ARecibosCliente: IBizRecibosCliente): Boolean; + procedure AsignarDataModule; + function DarNuevaReferencia(ID_FACTURA : Integer; REFERENCIA: String): String; + + public + property PagosController: IPagosClienteController read GetPagosController write SetPagosController; + constructor Create; override; + destructor Destroy; override; + + procedure RecuperarCliente(AReciboCliente : IBizRecibosCliente); + procedure Anadir(ARecibosCliente : IBizRecibosCliente); + function AnadirPago(ARecibosCliente : IBizRecibosCliente; FechaPago: String =''): Boolean; + procedure ModificarPago(ARecibosCliente : IBizRecibosCliente); + function Eliminar(ARecibosCliente : IBizRecibosCliente): Boolean; + function EliminarPago(ARecibosCliente : IBizRecibosCliente): Boolean; + function EliminarTodo(ARecibosCliente : IBizRecibosCliente): Boolean; + function Guardar(ARecibosCliente : IBizRecibosCliente): Boolean; + procedure DescartarCambios(ARecibosCliente : IBizRecibosCliente); + function Duplicar(ARecibosCliente: IBizRecibosCliente): IBizRecibosCliente; + function Nuevo : IBizRecibosCliente; + + function Buscar(const ID: Integer): IBizRecibosCliente; + function BuscarTodos: IBizRecibosCliente; overload; + function BuscarTodos(const ID_CLIENTE: integer): IBizRecibosCliente; overload; + + function BuscarRecibosRemesa(const ID_REMESA: Integer): IBizRecibosCliente; + function BuscarRecibosFactura(const ID_FACTURA: Integer): IBizRecibosCliente; + function BuscarRecibosACompensar(const Recibo: IBizRecibosCliente): IBizRecibosCliente; + function BuscarRecibosARemesar(const AListaVisibles, AListaNoVisibles: TStringList): IBizRecibosCliente; + + procedure VerTodos(ARecibosCliente: IBizRecibosCliente; + const AVerModal : Boolean = False; const AWindowCaption: String = ''; + const AHeaderText: String = ''); + + procedure Ver(ARecibosCliente: IBizRecibosCliente); + + function ExtraerSeleccionados(ARecibosCliente: IBizRecibosCliente) : IBizRecibosCliente; + function ElegirRecibos(ARecibos : IBizRecibosCliente; AMensaje: String; AMultiSelect: Boolean): IBizRecibosCliente; + function ElegirRecibosCompensados(ARecibo : IBizRecibosCliente): Boolean; + + procedure AsignarRemesa(ARecibos : IBizRecibosCliente; ID_REMESA: Integer); + procedure QuitarRemesa(ARecibos : IBizRecibosCliente); + procedure QuitarReciboCompensado(ARecibo : IBizRecibosCliente); + + procedure SetSituacionCobrados(ARecibos : IBizRecibosCliente; WithDeltas: Boolean=False); + + procedure Preview(ARecibosCliente : IBizRecibosCliente; AllItems: Boolean = false); + procedure Print(ARecibosCliente : IBizRecibosCliente; AllItems: Boolean = false); + + function DarListaAnosRecibos: TStringList; + procedure FiltrarAno(ARecibo: IBizRecibosCliente; ADynWhereDataTable: WideString; const Ano: String); + end; + +implementation + +uses + Forms, uNumUtils, cxControls, DB, uEditorRegistryUtils, Dialogs, + uDAInterfaces, uDataTableUtils, uDataModuleUsuarios, uFactuGES_App, + uDateUtils, uROTypes, DateUtils, Controls, Windows, Variants, + uRecibosClienteReportController, uBizContactos, uDADelta, uIntegerListUtils, + schRecibosClienteClient_Intf, uIEditorRecibosCliente, uIEditorReciboCliente, + uIEditorElegirRecibosCliente, uDataModuleRecibosCliente, uIEditorFechaPago, + uStringsUtils; + +{ TRecibosClienteController } + +procedure TRecibosClienteController.Anadir(ARecibosCliente: IBizRecibosCliente); +begin + ARecibosCliente.Insert; +end; + +function TRecibosClienteController.AnadirPago(ARecibosCliente: IBizRecibosCliente; FechaPago: String =''): Boolean; +var + AEditor : IEditorFechaPago; +begin + Result := False; + + if (Length(ARecibosCliente.REFERENCIA_REMESA) = 0) or + (Application.MessageBox(PChar('Este recibo est remesado en la remesa de referencia ' + ARecibosCliente.REFERENCIA_REMESA + '.' + #10#13 + 'Si aade una devolucin, el recibo quedar libre y podr ser incluido en otra remesa diferente.' + #10#13 + 'Desea continuar?'), 'Atencin', MB_YESNO) = IDYES) then + begin + //Pedimos la fecha del pago + if (Length(FechaPago) = 0) then + begin + CreateEditor('EditorFechaPago', IEditorFechaPago, AEditor); + if Assigned(AEditor) then + try + if (AEditor.ShowModal = mrOk) then + FechaPago := DateToStr(AEditor.FechaPago); + finally + AEditor.Release; + AEditor := NIL; + end; + end; + + // Se cancela la operacin + if Length(FechaPago) = 0 then + Exit; + + //Liberamos el recibo aunque ya este libre + if not ARecibosCliente.DataTable.Editing then + ARecibosCliente.DataTable.Edit; + + ARecibosCliente.ID_REMESA := 0; + ARecibosCliente.REFERENCIA_REMESA := ''; + ARecibosCliente.DataTable.Post; + end + // Se cancela la operacin + else + Exit; + + //Finalmente aadimos el pago (cobro o devolucion) + if PagosController.Anadir(ARecibosCliente.Pagos, FechaPago) then + begin + ARecibosCliente.Edit; + ARecibosCliente.SITUACION := CTE_COBRADO; + Result := True; + end + //Podremos modificar si anulamos el cobro mediante una devolucin + else + begin + ARecibosCliente.Edit; + ARecibosCliente.SITUACION := CTE_DEVUELTO; + Result := False; + end; +end; + +procedure TRecibosClienteController.AsignarDataModule; +begin + FDataModule := TDataModuleRecibosCliente.Create(Nil); +end; + +procedure TRecibosClienteController.AsignarRemesa(ARecibos: IBizRecibosCliente; ID_REMESA: Integer); +begin + if Assigned(ARecibos) then + begin + With ARecibos.DataTable do + begin + First; + While not EOF do + begin + if (ARecibos.ID_REMESA <> ID_REMESA) then + begin + ARecibos.Edit; + //Aadimos el cobro automatico por la remesa y volvemos a asignar ID + //para que asigne un ID nuevo para el pago, porque aqui si hay maestro-detalle + AnadirPago(ARecibos, DateToStr(Date)); //->Ojo el orden es importante + ARecibos.ID_REMESA := ID_REMESA; + end; + Next; + end; + end; + end; +end; + +function TRecibosClienteController.BuscarTodos: IBizRecibosCliente; +begin + Result := FDataModule.GetItems; + FiltrarEmpresa(Result); +end; + +function TRecibosClienteController.BuscarRecibosACompensar(const Recibo: IBizRecibosCliente): IBizRecibosCliente; +var + Condicion: TDAWhereExpression; +begin + if not Assigned(Recibo) then + raise Exception.Create ('IBizReciboCliente no asignado (BuscarRecibosACompensar)'); + + ShowHourglassCursor; + try + Result := BuscarTodos; + + with Result.DataTable.DynamicWhere do + begin + //No podr compensarse un recibo a si mismo + Condicion := NewBinaryExpression(NewField('', fld_RecibosClienteID), NewConstant(Recibo.ID, datInteger), dboNotEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + with Result.DataTable.DynamicWhere do + begin + //Solo podr compensar recibos del mismo cliente + Condicion := NewBinaryExpression(NewField('', fld_RecibosClienteID_CLIENTE), NewConstant(Recibo.ID_CLIENTE, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + with Result.DataTable.DynamicWhere do + begin + //Omitimos los recibos compensados + Condicion := NewBinaryExpression(NewField('', fld_RecibosClienteID_RECIBO_COMPENSADO), NewNull, dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + with Result.DataTable.DynamicWhere do + begin + //No podr compensarse recibos que estan cobrados + Condicion := NewBinaryExpression(NewField('', fld_RecibosClienteSITUACION), NewConstant(CTE_COBRADO, datString), dboNotEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +constructor TRecibosClienteController.Create; +begin + inherited; + AsignarDataModule; + FPagosController := TPagosClienteController.Create; + FClienteController := TClientesController.Create; +// FPagosController.addObservador(Self); //PETA NO SE PORQUE +end; + +function TRecibosClienteController.Buscar(const ID: Integer): IBizRecibosCliente; +begin + Result := (FDataModule as IDataModuleRecibosCliente).GetItem(ID); + FiltrarEmpresa(Result); +end; + +function TRecibosClienteController.BuscarRecibosFactura(const ID_FACTURA: Integer): IBizRecibosCliente; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + + with Result.DataTable.DynamicWhere do + begin + // (ID = :ID) + Condicion := NewBinaryExpression(NewField('', fld_RecibosClienteID_FACTURA), NewConstant(ID_FACTURA, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TRecibosClienteController.BuscarRecibosARemesar(const AListaVisibles, AListaNoVisibles: TStringList): IBizRecibosCliente; +var + Condicion: TDAWhereExpression; + i: Integer; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + + with Result.DataTable.DynamicWhere do + begin + //No podr compensarse un recibo ya compensado + Condicion := NewBinaryExpression(NewField('', fld_RecibosClienteID_RECIBO_COMPENSADO), NewNull(), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + with Result.DataTable.DynamicWhere do + begin + //Solo dejaremos remesar aquellos recibos que no esten cobrados (Pendientes/Devueltos) + Condicion := NewBinaryExpression(NewField('', fld_RecibosClienteSITUACION), NewConstant(CTE_COBRADO, datString), dboNotEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + //En este caso vamos a quitar de la lista de recibos pendientes aquellos que ya hemos + //aadido a la remesa pero que estan en memoria ya que todavia no se ha guarado en BD + for i := 0 to AListaNoVisibles.Count - 1 do + with Result.DataTable.DynamicWhere do + begin + //Solo dejaremos remesar aquellos recibos que no esten cobrados (Pendientes/Devueltos) + Condicion := NewBinaryExpression(NewField('', fld_RecibosClienteID), NewConstant(AListaNoVisibles.Strings[i], datString), dboNotEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + //En el caso contrario no hacemos nada, porque si se elimina un recibo de la remesa + //y sin guardar los cambios damos a aadir el recibo todavia est cobrado y no se que efectos + //secundarios puede provocar + //AListaVisibles + + finally + HideHourglassCursor; + end; +end; + +function TRecibosClienteController.BuscarRecibosRemesa(const ID_REMESA: Integer): IBizRecibosCliente; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + + // Filtrar los recibos de una remesa determinada + with Result.DataTable.DynamicWhere do + begin + // (ID_REMESA >= ID) + Condicion := NewBinaryExpression(NewField('', fld_RecibosClienteID_REMESA), NewConstant(ID_REMESA, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TRecibosClienteController.BuscarTodos( + const ID_CLIENTE: integer): IBizRecibosCliente; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + + with Result.DataTable.DynamicWhere do + begin + // ID_CLIENTE + Condicion := NewBinaryExpression(NewField('', fld_RecibosClienteID_CLIENTE), + NewConstant(ID_Cliente, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + finally + HideHourglassCursor; + end; +end; + +function TRecibosClienteController._Vacio: IBizRecibosCliente; +begin + Result := Buscar(ID_NULO); +end; + +function TRecibosClienteController.DarListaAnosRecibos: TStringList; +begin + Result := FDataModule.GetAnosItems; +end; + +function TRecibosClienteController.DarNuevaReferencia(ID_FACTURA: Integer; REFERENCIA: String): String; +var + ARecibosCliente: IBizRecibosCliente; + NumReferencia : Integer; + Cadena : String; +begin + try + ARecibosCliente := BuscarRecibosFactura(ID_FACTURA); + ARecibosCliente.DataTable.Active := True; + NumReferencia := ARecibosCliente.DataTable.RecordCount; + Cadena := Copy(REFERENCIA, 0, Pos('-', REFERENCIA)); + Result := Cadena + ' ' + IntToStr((NumReferencia + 1)); + finally + ARecibosCliente := Nil; + end; +end; + +procedure TRecibosClienteController.DescartarCambios(ARecibosCliente: IBizRecibosCliente); +begin + if not Assigned(ARecibosCliente) then + raise Exception.Create ('IBizRecibosCliente no asignado'); + + ShowHourglassCursor; + try + if (ARecibosCliente.State in dsEditModes) then + ARecibosCliente.Cancel; + + ARecibosCliente.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TRecibosClienteController.Destroy; +begin + FDataModule := NIL; + FPagosController := NIL; + FClienteController := NIL; + inherited; +end; + + +function TRecibosClienteController.Duplicar(ARecibosCliente: IBizRecibosCliente): IBizRecibosCliente; +begin + Result := Self._Vacio; + ShowHourglassCursor; + try + DuplicarRegistros(ARecibosCliente.DataTable, Result.DataTable, mdrActual); + + // Descomentar esto si hay detalles + // (EN ESTE CASO NO NOS INTERESA COPIAR LOS PAGOS DEL RECIBO DUPLICADO) + // DuplicarRegistros(ARecibosCliente.Detalles.DataTable, Result.Detalles.DataTable, mdrTodos); + + // CUIDADO! Hay que dejar algunos campos como si fuera todo nuevo + Result.Edit; + with Result do + begin + // Ejemplos + // ID_EMPRESA := dmUsuarios.IDEmpresaActual; + // USUARIO := dmUsuarios.LoginInfo.Usuario; + // REFERENCIA := ''; //Para que se asigne una nueva + // FECHA_FACTURA := DateOf(Now); + // SITUACION := SITUACION_PENDIENTE; + end; + + Result.Post; + finally + HideHourglassCursor; + end; +end; + + +function TRecibosClienteController.ValidarReciboCliente(ARecibosCliente: IBizRecibosCliente): Boolean; +begin + if not Assigned(ARecibosCliente) then + raise Exception.Create ('IBizRecibosCliente no asignado'); + + if (ARecibosCliente.DataTable.State in dsEditModes) then + ARecibosCliente.DataTable.Post; + + // Tambien hacemos post de sus tablas hija + if (ARecibosCliente.Pagos.DataTable.State in dsEditModes) then + ARecibosCliente.Pagos.DataTable.Post; + + if ARecibosCliente.DataTable.FieldByName(fld_RecibosClienteFECHA_EMISION).IsNull then + raise Exception.Create('Debe indicar la fecha de emisin del recibo.'); + + if ARecibosCliente.DataTable.FieldByName(fld_RecibosClienteFECHA_VENCIMIENTO).IsNull then + raise Exception.Create('Debe indicar la fecha de vencimiento del recibo.'); + + + { Asegurarse de valores en campos "automticos" tanto + en MODIFICACIN como en INSERCIN. } + ARecibosCliente.Edit; + try + ARecibosCliente.USUARIO := AppFactuGES.UsuarioActivo.UserName; + finally + ARecibosCliente.Post; + end; + + Result := True; +end; + +procedure TRecibosClienteController.Ver(ARecibosCliente: IBizRecibosCliente); +var + AEditor : IEditorReciboCliente; +begin + AEditor := NIL; + + RecuperarCliente(ARecibosCliente); + CreateEditor('EditorReciboCliente', IEditorReciboCliente, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.Recibo := ARecibosCliente; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +procedure TRecibosClienteController.VerTodos(ARecibosCliente: IBizRecibosCliente; + const AVerModal : Boolean = False; const AWindowCaption: String = ''; + const AHeaderText: String = ''); +var + AEditor : IEditorRecibosCliente; +begin + AEditor := NIL; + + CreateEditor('EditorRecibosCliente', IEditorRecibosCliente, AEditor); + if Assigned(AEditor) then + try + if not EsCadenaVacia(AWindowCaption) then + AEditor.WindowCaption := AWindowCaption; + + if not EsCadenaVacia(AHeaderText) then + AEditor.HeaderText := AHeaderText; + + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.RecibosCliente := ARecibosCliente; + AEditor.MultiSelect := True; + + if AVerModal then + AEditor.ShowModal + else + AEditor.ShowEmbedded; + finally + if AVerModal then + AEditor.Release; + AEditor := NIL; + end; +end; + +function TRecibosClienteController.ElegirRecibos(ARecibos: IBizRecibosCliente; AMensaje: String; AMultiSelect: Boolean): IBizRecibosCliente; +var + AEditor : IEditorElegirRecibosCliente; +begin + Result := NIL; + + CreateEditor('EditorElegirRecibosCliente', IEditorElegirRecibosCliente, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; + AEditor.RecibosCliente := ARecibos; + AEditor.MultiSelect := AMultiSelect; + AEditor.Mensaje := AMensaje; + if IsPositiveResult(AEditor.ShowModal) then + Result := AEditor.RecibosClienteSeleccionados; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +function TRecibosClienteController.ElegirRecibosCompensados(ARecibo: IBizRecibosCliente): Boolean; +var + ARecibosACompensar: IBizRecibosCliente; +begin + Result := False; + ARecibosACompensar := Self.ElegirRecibos(BuscarRecibosACompensar(ARecibo), 'Elija los recibos que desea compensar', True); + + if Assigned(ARecibosACompensar) then + begin + ShowHourglassCursor; + try + DuplicarRegistros(ARecibosACompensar.DataTable, ARecibo.RecibosCompensados.DataTable, mdrTodos, True, True, False); + Result := True; + finally + HideHourglassCursor; + ARecibosACompensar := Nil; + end; + end; +end; + +function TRecibosClienteController.Eliminar(ARecibosCliente: IBizRecibosCliente): Boolean; +begin + if not Assigned(ARecibosCliente) then + raise Exception.Create ('IBizRecibosCliente no asignado'); + + ShowHourglassCursor; + try + if (ARecibosCliente.State in dsEditModes) then + ARecibosCliente.Cancel; + + ARecibosCliente.Delete; + ARecibosCliente.DataTable.ApplyUpdates; + HideHourglassCursor; + Result := True; + finally + HideHourglassCursor; + end; +end; + +function TRecibosClienteController.EliminarPago(ARecibosCliente: IBizRecibosCliente): Boolean; +begin + Result := PagosController.Eliminar(ARecibosCliente.Pagos); +end; + +function TRecibosClienteController.EliminarTodo(ARecibosCliente: IBizRecibosCliente): Boolean; +begin + Result := False; + if Assigned(ARecibosCliente) then + begin + if not ARecibosCliente.DataTable.Active then + ARecibosCliente.DataTable.Active := True; + ARecibosCliente.DataTable.ClearRows; + ARecibosCliente.DataTable.ApplyUpdates; + Result := True; + end; +end; + +procedure TRecibosClienteController.RecuperarCliente(AReciboCliente: IBizRecibosCliente); +begin + AReciboCliente._Cliente := (FClienteController.Buscar(AReciboCliente.ID_Cliente) as IBizCliente); +end; + +function TRecibosClienteController.GetPagosController: IPagosClienteController; +begin + Result := FPagosController; +end; + +procedure TRecibosClienteController.SetPagosController(const Value: IPagosClienteController); +begin + FPagosController := Value; +end; + +procedure TRecibosClienteController.SetSituacionCobrados(ARecibos: IBizRecibosCliente; WithDeltas: Boolean); +begin + if Assigned(ARecibos) then + begin + ARecibos.DataTable.DisableControls; + try + DesconectarTabla(ARecibos.DataTable); + with ARecibos.DataTable do + begin + First; + while not Eof do + begin + if not Editing then Edit; + ARecibos.SITUACION := CTE_COBRADO; + Post; + Next; + end; + First; + end; + finally + ConectarTabla(ARecibos.DataTable); + ARecibos.DataTable.EnableControls; + end; + end; +end; + +function TRecibosClienteController.ImporteTotalModificado(ARecibosCliente : IBizRecibosCliente; var ImporteRestante: Currency) : Boolean; +var + HayCambio: TDADeltaChange; +begin + Result := False; + ImporteRestante := 0; + HayCambio := ARecibosCliente.DataTable.Delta.FindChange(ARecibosCliente.RecNo); + if (Assigned(HayCambio)) and + (HayCambio.OldValueByName[fld_RecibosClienteIMPORTE] <> 0) then + begin + ImporteRestante := HayCambio.OldValueByName[fld_RecibosClienteIMPORTE] - ARecibosCliente.IMPORTE; + if ImporteRestante <> 0 then + Result := True; + end; +end; + +function TRecibosClienteController.Guardar(ARecibosCliente: IBizRecibosCliente): Boolean; +var + ANuevoReciboCliente : IBizRecibosCliente; + ImporteRestante : Currency; +begin + Result := False; + + ANuevoReciboCliente := NIL; + ImporteRestante := 0; + + if ValidarReciboCliente(ARecibosCliente) then + begin + ShowHourglassCursor; + try + //Si el importe ha cambiado se debe hacer un recibo nuevo con el importe restante + if ImporteTotalModificado(ARecibosCliente, ImporteRestante) then + begin + ANuevoReciboCliente := Duplicar(ARecibosCliente); + ANuevoReciboCliente.Edit; + ANuevoReciboCliente.REFERENCIA := DarNuevaReferencia(ARecibosCliente.ID_FACTURA, ARecibosCliente.REFERENCIA); + ANuevoReciboCliente.IMPORTE := ImporteRestante; + ANuevoReciboCliente.DESCRIPCION := 'RECIBO ' + ANuevoReciboCliente.REFERENCIA + ' - ' + CifraToLetras(ImporteRestante); + ANuevoReciboCliente.Post; + + ARecibosCliente.Edit; + ARecibosCliente.DESCRIPCION := 'RECIBO ' + ARecibosCliente.REFERENCIA + ' - ' + CifraToLetras(ARecibosCliente.IMPORTE); + ARecibosCliente.Post; + end; + + //Primero debemos hacer el ApplyUpdates del recibo inicial por si fallase + //As no se hara el nuevo + ARecibosCliente.DataTable.ApplyUpdates; + + if Assigned(ANuevoReciboCliente) then + ANuevoReciboCliente.DataTable.ApplyUpdates; + + Result := True; + finally + ANuevoReciboCliente := NIL; + HideHourglassCursor; + end; + end; +end; + +procedure TRecibosClienteController.ModificarPago(ARecibosCliente: IBizRecibosCliente); +var + AEditor : IEditorFechaPago; + AFechaPago: String; +begin + if not Assigned(ARecibosCliente) then + raise Exception.Create ('Recibos de cliente no asignado (ModificarPago)'); + + //Pedimos la fecha del pago + CreateEditor('EditorFechaPago', IEditorFechaPago, AEditor); + if Assigned(AEditor) then + try + AEditor.FechaPago := ARecibosCliente.Pagos.FECHA_PAGO; + if (AEditor.ShowModal = mrOk) then + AFechaPago := DateToStr(AEditor.FechaPago); + finally + AEditor.Release; + AEditor := NIL; + end; + + if Length(AFechaPago) > 0 then + PagosController.Modificar(ARecibosCliente.Pagos, AFechaPago); +end; + +function TRecibosClienteController.Nuevo: IBizRecibosCliente; +var + ARecibo : IBizRecibosCliente; +begin + ARecibo := Buscar(ID_NULO); + ARecibo.DataTable.Active := True; + Anadir(ARecibo); + Result := ARecibo; +end; + +procedure TRecibosClienteController.QuitarReciboCompensado(ARecibo: IBizRecibosCliente); +var + IdRecibo: Variant; +begin + IdRecibo := ARecibo.RecibosCompensados.ID; + + ARecibo.RecibosCompensados.DataTable.First; + while ARecibo.RecibosCompensados.DataTable.Locate('ID', IdRecibo,[]) do + begin + ARecibo.RecibosCompensados.DataTable.Delete; + ARecibo.RecibosCompensados.DataTable.First; + end; +end; + +procedure TRecibosClienteController.QuitarRemesa(ARecibos: IBizRecibosCliente); +begin + if Assigned(ARecibos) then + begin + if ARecibos.Pagos.DataTable.RecordCount = 0 then + Exit; + + //Eliminamos el cobro generado por la remesa y quitamos el ID_REMESA del recibo + ARecibos.Pagos.DataTable.Last; + ARecibos.Pagos.Delete; + + ARecibos.DataTable.Edit; + ARecibos.ID_REMESA := 0; + ARecibos.DataTable.Post; + end; +end; + +function TRecibosClienteController.ExtraerSeleccionados(ARecibosCliente: IBizRecibosCliente): IBizRecibosCliente; +var + ASeleccionados : IBizRecibosCliente; +begin + ASeleccionados := (Self.Buscar(ID_NULO) as IBizRecibosCliente); + CopyDataTableDA5(ARecibosCliente.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + +procedure TRecibosClienteController.FiltrarAno(ARecibo: IBizRecibosCliente; ADynWhereDataTable: WideString; const Ano: String); +var + Condicion: TDAWhereExpression; + FechaIni: String; + FechaFin: String; + +begin + ARecibo.DataTable.DynamicWhere.Clear; + ARecibo.DataTable.DynamicWhere.Xml := ADynWhereDataTable; + + if (Ano <> 'Todos') then + begin + // Filtrar las facturas actuales por empresa + FechaIni := '01/01/' + Ano; + FechaFin := '31/12/' + Ano; + with ARecibo.DataTable.DynamicWhere do + begin + // (FECHA_INICIO between FECHA_FIN) + Condicion := NewBinaryExpression(NewField('', fld_RecibosClienteFECHA_EMISION), NewConstant(FechaIni, datString), dboGreaterOrEqual); + Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_RecibosClienteFECHA_EMISION), NewConstant(FechaFin, datString), dboLessOrEqual), Condicion, dboAnd); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Condicion, Expression, dboAnd); + end; + end; +end; + +procedure TRecibosClienteController.FiltrarEmpresa(ARecibo: IBizRecibosCliente); +var + Condicion: TDAWhereExpression; +begin + if ARecibo.DataTable.Active then + ARecibo.DataTable.Active := False; + + // Filtrar los recibos actuales por empresa + with ARecibo.DataTable.DynamicWhere do + begin + // (ID_EMPRESA >= ID) + Condicion := NewBinaryExpression(NewField('', fld_RecibosClienteID_EMPRESA), NewConstant(AppFactuGES.EmpresaActiva.ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; +end; + +procedure TRecibosClienteController.Preview(ARecibosCliente: IBizRecibosCliente; AllItems: Boolean = false); +var + AReportController : IRecibosClienteReportController; + ID_Recibos: TIntegerList; + +begin + AReportController := TRecibosClienteReportController.Create; + ID_Recibos := TIntegerList.Create; + + try + //Si deseamos previsualizar todos los items del objeto albaran + if AllItems then + begin + with ARecibosCliente.DataTable do + begin + First; + while not EOF do + begin + ID_Recibos.Add(ARecibosCliente.ID); + Next; + end; + end; + end + //Solo previsualizamos el item seleccionado + else + ID_Recibos.Add(ARecibosCliente.ID); + + AReportController.Preview(ID_Recibos); + finally + AReportController := NIL; + FreeANDNil(ID_Recibos); + end; +end; + +procedure TRecibosClienteController.Print(ARecibosCliente: IBizRecibosCliente; AllItems: Boolean = false); +var + AReportController : IRecibosClienteReportController; + ID_Recibos: TIntegerList; + +begin + AReportController := TRecibosClienteReportController.Create; + ID_Recibos := TIntegerList.Create; + + try + //Si deseamos previsualizar todos los items del objeto albaran + if AllItems then + begin + with ARecibosCliente.DataTable do + begin + First; + while not EOF do + begin + ID_Recibos.Add(ARecibosCliente.ID); + Next; + end; + end; + end + //Solo previsualizamos el item seleccionado + else + ID_Recibos.Add(ARecibosCliente.ID); + + AReportController.Print(ID_Recibos); + finally + AReportController := NIL; + FreeANDNil(ID_Recibos); + end; +end; + +end. diff --git a/Source/Modulos/Recibos de cliente/Controller/uRecibosClienteReportController.dcu b/Source/Modulos/Recibos de cliente/Controller/uRecibosClienteReportController.dcu new file mode 100644 index 0000000..9a848c0 Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Controller/uRecibosClienteReportController.dcu differ diff --git a/Source/Modulos/Recibos de cliente/Controller/uRecibosClienteReportController.pas b/Source/Modulos/Recibos de cliente/Controller/uRecibosClienteReportController.pas new file mode 100644 index 0000000..224e74d --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Controller/uRecibosClienteReportController.pas @@ -0,0 +1,120 @@ +unit uRecibosClienteReportController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleRecibosClienteReport, + uBizRecibosCliente, uIntegerListUtils; + +type + IRecibosClienteReportController = interface(IControllerBase) + ['{3837DFA3-0A38-4BB2-B0DB-D0615249EA49}'] + procedure Preview(const ListaID : TIntegerList); + procedure Print(const ListaID : TIntegerList); + end; + + TRecibosClienteReportController = class(TControllerBase, IRecibosClienteReportController) + private + FDataModule : IDataModuleRecibosClienteReport; + function CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; + public + constructor Create; override; + destructor Destroy; override; + + procedure Preview(const ListaID : TIntegerList); + procedure Print(const ListaID : TIntegerList); + end; + + +implementation + +uses + uROTypes, uEditorRegistryUtils, uIEditorRecibosClientePreview, + uEditorPreview, uDataModuleRecibosCliente, uEditorBase, cxControls; + +{ TRecibosClienteReportController } + +constructor TRecibosClienteReportController.Create; +begin + inherited; + FDataModule := TDataModuleRecibosCliente.Create(Nil); +end; + +function TRecibosClienteReportController.CreateEditor(const AName: String; + const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + + +destructor TRecibosClienteReportController.Destroy; +begin + FDataModule := NIL; + inherited; +end; + +procedure TRecibosClienteReportController.Preview(const ListaID : TIntegerList); +var + AStream: Binary; + AEditor : IEditorRecibosClientePreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(ListaID); + try + CreateEditor('EditorRecibosClientePreview', IEditorRecibosClientePreview, AEditor); + if Assigned(AEditor) then + begin + try + AEditor.Controller := Self; + AEditor.ListaID := ListaID; + AEditor.LoadFromStream(AStream); + AEditor.Preview; + finally + AEditor.Release; + end; + end; + finally + FreeAndNil(AStream); + AEditor := Nil; + end; + finally + HideHourglassCursor; + end; +end; + +procedure TRecibosClienteReportController.Print(const ListaID : TIntegerList); +var + AStream: Binary; + AEditor : IEditorRecibosClientePreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(ListaID); + try + CreateEditor('EditorRecibosClientePreview', IEditorRecibosClientePreview, AEditor); + if Assigned(AEditor) then + begin + try + AEditor.Controller := Self; + AEditor.ListaID := ListaID; + AEditor.LoadFromStream(AStream); + AEditor.Print; + finally + AEditor.Release; + end; + end; + finally + FreeAndNil(AStream); + AEditor := Nil; + end; + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Recibos de cliente/Data/RecibosCliente_data.bdsproj b/Source/Modulos/Recibos de cliente/Data/RecibosCliente_data.bdsproj new file mode 100644 index 0000000..e1d71b1 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Data/RecibosCliente_data.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + RecibosCliente_data.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Recibos de cliente/Data/RecibosCliente_data.dcu b/Source/Modulos/Recibos de cliente/Data/RecibosCliente_data.dcu new file mode 100644 index 0000000..26e700a Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Data/RecibosCliente_data.dcu differ diff --git a/Source/Modulos/Recibos de cliente/Data/RecibosCliente_data.dpk b/Source/Modulos/Recibos de cliente/Data/RecibosCliente_data.dpk new file mode 100644 index 0000000..703452f Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Data/RecibosCliente_data.dpk differ diff --git a/Source/Modulos/Recibos de cliente/Data/RecibosCliente_data.dproj b/Source/Modulos/Recibos de cliente/Data/RecibosCliente_data.dproj new file mode 100644 index 0000000..527ef0b --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Data/RecibosCliente_data.dproj @@ -0,0 +1,540 @@ + + + {f10782d8-a2a3-45bb-9ae0-98f0b23968fc} + RecibosCliente_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\RecibosCliente_data.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0RecibosCliente_data.dpk + + + + + MainSource + + + + +
DataModuleRecibosCliente
+
+
+
+ diff --git a/Source/Modulos/Recibos de cliente/Data/RecibosCliente_data.drc b/Source/Modulos/Recibos de cliente/Data/RecibosCliente_data.drc new file mode 100644 index 0000000..97641d8 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Data/RecibosCliente_data.drc @@ -0,0 +1,17 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Recibos de cliente\Data\uDataModuleRecibosCliente.dfm */ +/* C:\Codigo\Source\Modulos\Recibos de cliente\Data\RecibosCliente_data.res */ +/* c:\temp\dtf185.tmp */ diff --git a/Source/Modulos/Recibos de cliente/Data/RecibosCliente_data.rc b/Source/Modulos/Recibos de cliente/Data/RecibosCliente_data.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Data/RecibosCliente_data.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Recibos de cliente/Data/RecibosCliente_data.res b/Source/Modulos/Recibos de cliente/Data/RecibosCliente_data.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Data/RecibosCliente_data.res differ diff --git a/Source/Modulos/Recibos de cliente/Data/uDataModuleRecibosCliente.dcu b/Source/Modulos/Recibos de cliente/Data/uDataModuleRecibosCliente.dcu new file mode 100644 index 0000000..11c4c73 Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Data/uDataModuleRecibosCliente.dcu differ diff --git a/Source/Modulos/Recibos de cliente/Data/uDataModuleRecibosCliente.dfm b/Source/Modulos/Recibos de cliente/Data/uDataModuleRecibosCliente.dfm new file mode 100644 index 0000000..a7e3a80 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Data/uDataModuleRecibosCliente.dfm @@ -0,0 +1,503 @@ +inherited DataModuleRecibosCliente: TDataModuleRecibosCliente + OnCreate = DAClientDataModuleCreate + Height = 286 + Width = 525 + object RORemoteService: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvRecibosCliente' + Left = 56 + Top = 24 + end + object rda_RecibosCliente: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetDataCall.RemoteService = RORemoteService + UpdateDataCall.RemoteService = RORemoteService + GetScriptsCall.RemoteService = RORemoteService + RemoteService = RORemoteService + DataStreamer = Bin2DataStreamer + Left = 59 + Top = 151 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 56 + Top = 84 + end + object tbl_PagosCliente: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_PAGOS_CLIENTE_ID' + Required = True + ServerAutoRefresh = True + DictionaryEntry = 'PagosCliente_ID' + InPrimaryKey = True + end + item + Name = 'ID_RECIBO' + DataType = datInteger + DisplayLabel = 'PagosCliente_ID_RECIBO' + DictionaryEntry = 'PagosCliente_ID_RECIBO' + end + item + Name = 'TIPO' + DataType = datString + Size = 255 + DisplayLabel = 'PagosCliente_TIPO' + DictionaryEntry = 'PagosCliente_TIPO' + end + item + Name = 'FECHA_PAGO' + DataType = datDateTime + DisplayLabel = 'PagosCliente_FECHA_PAGO' + DictionaryEntry = 'PagosCliente_FECHA_PAGO' + end + item + Name = 'TITULAR' + DataType = datString + Size = 255 + DisplayLabel = 'PagosCliente_TITULAR' + DictionaryEntry = 'PagosCliente_TITULAR' + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + DisplayLabel = 'PagosCliente_ENTIDAD' + DictionaryEntry = 'PagosCliente_ENTIDAD' + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + DisplayLabel = 'PagosCliente_SUCURSAL' + DictionaryEntry = 'PagosCliente_SUCURSAL' + end + item + Name = 'DC' + DataType = datString + Size = 15 + DisplayLabel = 'PagosCliente_DC' + DictionaryEntry = 'PagosCliente_DC' + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + DisplayLabel = 'PagosCliente_CUENTA' + DictionaryEntry = 'PagosCliente_CUENTA' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DisplayLabel = 'PagosCliente_FECHA_ALTA' + DictionaryEntry = 'PagosCliente_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DisplayLabel = 'PagosCliente_FECHA_MODIFICACION' + DictionaryEntry = 'PagosCliente_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DisplayLabel = 'PagosCliente_USUARIO' + DictionaryEntry = 'PagosCliente_USUARIO' + end> + Params = <> + MasterMappingMode = mmWhere + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_RecibosCliente + MasterSource = ds_RecibosCliente + MasterFields = 'ID' + DetailFields = 'ID_RECIBO' + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'PagosCliente' + IndexDefs = <> + Left = 288 + Top = 88 + end + object ds_PagosCliente: TDADataSource + DataSet = tbl_PagosCliente.Dataset + DataTable = tbl_PagosCliente + Left = 288 + Top = 32 + end + object tbl_RecibosCliente: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_RECIBOS_CLIENTE_ID' + Required = True + ServerAutoRefresh = True + DictionaryEntry = 'RecibosCliente_ID' + InPrimaryKey = True + end + item + Name = 'ID_RECIBO_COMPENSADO' + DataType = datInteger + end + item + Name = 'REFERENCIA_REC_COMPENSADO' + DataType = datString + Size = 255 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'RecibosCliente_REFERENCIA' + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + DictionaryEntry = 'RecibosCliente_SITUACION' + end + item + Name = 'ID_FACTURA' + DataType = datInteger + DictionaryEntry = 'RecibosCliente_ID_FACTURA' + end + item + Name = 'ID_REMESA' + DataType = datInteger + DisplayLabel = 'RecibosCliente_ID_REMESA' + DictionaryEntry = 'RecibosCliente_ID_REMESA' + end + item + Name = 'REFERENCIA_REMESA' + DataType = datString + Size = 255 + DisplayLabel = 'RecibosCliente_REFERENCIA_REMESA' + DictionaryEntry = 'RecibosCliente_REFERENCIA_REMESA' + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + DisplayLabel = 'RecibosCliente_FECHA_EMISION' + DictionaryEntry = 'RecibosCliente_FECHA_EMISION' + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + DictionaryEntry = 'RecibosCliente_FECHA_VENCIMIENTO' + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DictionaryEntry = 'RecibosCliente_DESCRIPCION' + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + DictionaryEntry = 'RecibosCliente_OBSERVACIONES' + end + item + Name = 'IMPORTE' + DataType = datCurrency + Alignment = taRightJustify + DictionaryEntry = 'RecibosCliente_IMPORTE' + end + item + Name = 'OTROS_GASTOS' + DataType = datCurrency + DisplayLabel = 'RecibosCliente_OTROS_GASTOS' + Alignment = taRightJustify + DictionaryEntry = 'RecibosCliente_OTROS_GASTOS' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + Alignment = taRightJustify + DictionaryEntry = 'RecibosCliente_IMPORTE_TOTAL' + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + DictionaryEntry = 'RecibosCliente_FECHA_FACTURA' + end + item + Name = 'FORMA_PAGO_FACTURA' + DataType = datString + Size = 255 + DictionaryEntry = 'RecibosCliente_FORMA_PAGO_FACTURA' + end + item + Name = 'IMPORTE_FACTURA' + DataType = datCurrency + Alignment = taRightJustify + DictionaryEntry = 'RecibosCliente_IMPORTE_FACTURA' + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'RecibosCliente_ID_EMPRESA' + end + item + Name = 'DATOS_BANCARIOS' + DataType = datString + Size = 255 + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + DictionaryEntry = 'RecibosCliente_ID_CLIENTE' + end + item + Name = 'NOMBRE_CLIENTE' + DataType = datString + Size = 255 + DictionaryEntry = 'RecibosCliente_NOMBRE_CLIENTE' + end + item + Name = 'NIF_CIF_CLIENTE' + DataType = datString + Size = 15 + DictionaryEntry = 'RecibosCliente_NIF_CIF_CLIENTE' + end + item + Name = 'CALLE_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL_CLIENTE' + DataType = datString + Size = 10 + end + item + Name = 'PROVINCIA_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'RecibosCliente_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'RecibosCliente_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'RecibosCliente_USUARIO' + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_RecibosCliente + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'RecibosCliente' + IndexDefs = <> + Left = 168 + Top = 88 + end + object ds_RecibosCliente: TDADataSource + DataSet = tbl_RecibosCliente.Dataset + DataTable = tbl_RecibosCliente + Left = 168 + Top = 32 + end + object tbl_RecibosCompensadosCli: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_RECIBO_COMPENSADO' + DataType = datInteger + end + item + Name = 'REFERENCIA_REC_COMPENSADO' + DataType = datString + Size = 255 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + end + item + Name = 'ID_FACTURA' + DataType = datInteger + end + item + Name = 'ID_REMESA' + DataType = datInteger + end + item + Name = 'REFERENCIA_REMESA' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE' + DataType = datCurrency + end + item + Name = 'OTROS_GASTOS' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + end + item + Name = 'FORMA_PAGO_FACTURA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_FACTURA' + DataType = datCurrency + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'DATOS_BANCARIOS' + DataType = datString + Size = 255 + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'NOMBRE_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'NIF_CIF_CLIENTE' + DataType = datString + Size = 15 + end + item + Name = 'CALLE_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL_CLIENTE' + DataType = datString + Size = 10 + end + item + Name = 'PROVINCIA_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + end + item + Name = 'USUARIO' + DataType = datString + Size = 30 + end> + Params = <> + MasterMappingMode = mmWhere + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_RecibosCliente + MasterSource = ds_RecibosCliente + MasterFields = 'ID' + DetailFields = 'ID_RECIBO_COMPENSADO' + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'RecibosCompensadosCli' + IndexDefs = <> + Left = 416 + Top = 88 + end + object ds_RecibosCompensadosCli: TDADataSource + DataSet = tbl_RecibosCompensadosCli.Dataset + DataTable = tbl_RecibosCompensadosCli + Left = 416 + Top = 32 + end + object tbl_ListaAnosRecibos: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ANO' + DataType = datString + Size = 254 + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_RecibosCliente + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'ListaAnosRecibos' + IndexDefs = <> + Left = 168 + Top = 208 + end + object ds_ListaAnosRecibos: TDADataSource + DataSet = tbl_ListaAnosRecibos.Dataset + DataTable = tbl_ListaAnosRecibos + Left = 168 + Top = 152 + end +end diff --git a/Source/Modulos/Recibos de cliente/Data/uDataModuleRecibosCliente.pas b/Source/Modulos/Recibos de cliente/Data/uDataModuleRecibosCliente.pas new file mode 100644 index 0000000..9d626e8 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Data/uDataModuleRecibosCliente.pas @@ -0,0 +1,204 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uDataModuleRecibosCliente; + +interface + +uses + SysUtils, Classes, DB, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, uDataModuleBase, + + uIDataModuleRecibosCliente, uIDataModuleRecibosClienteReport, + uBizRecibosCliente, uBizPagosCliente, uBizRecibosCliCompensados, uDAInterfaces, + uDAMemDataTable, uDADataStreamer, uDABin2DataStreamer, uDARemoteDataAdapter, + uIntegerListUtils; + +type + TDataModuleRecibosCliente = class(TDataModuleBase, IDataModuleRecibosCliente, IDataModuleRecibosClienteReport) + RORemoteService: TRORemoteService; + rda_RecibosCliente: TDARemoteDataAdapter; + Bin2DataStreamer: TDABin2DataStreamer; + tbl_PagosCliente: TDAMemDataTable; + ds_PagosCliente: TDADataSource; + tbl_RecibosCliente: TDAMemDataTable; + ds_RecibosCliente: TDADataSource; + tbl_RecibosCompensadosCli: TDAMemDataTable; + ds_RecibosCompensadosCli: TDADataSource; + tbl_ListaAnosRecibos: TDAMemDataTable; + ds_ListaAnosRecibos: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + protected + function _GetPagos: IBizPagosCliente; + function _GetRecibosCompensados : IBizRecibosCompensadosCli; + public + function GetItems: IBizRecibosCliente; + function GetItem(const ID : Integer) : IBizRecibosCliente; + function NewItem : IBizRecibosCliente; + function GetReport(const ListaID: TIntegerList): Binary; + + function GetAnosItems : TStringList; + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, + schRecibosClienteClient_Intf; + +{ TDataModuleRecibosCliente } + + +function TDataModuleRecibosCliente.GetReport(const ListaID: TIntegerList): Binary; +var + AParam : TIntegerArray; +begin + AParam := ListaID.ToIntegerArray; + try + Result := (RORemoteService as IsrvRecibosCliente).GenerarInforme(AParam); + finally + FreeANDNIL(AParam); + end; +end; + +procedure TDataModuleRecibosCliente.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleRecibosCliente._GetPagos: IBizPagosCliente; +var + APagos : TDAMemDataTable; +begin + ShowHourglassCursor; + try + APagos := CloneDataTable(tbl_PagosCliente); + with APagos do + begin + BusinessRulesID := BIZ_CLIENT_IBIZPAGOSCLIENTE; + DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; + end; + Result := (APagos as IBizPagosCliente); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleRecibosCliente._GetRecibosCompensados: IBizRecibosCompensadosCli; +var + ARecibosCompensados : TDAMemDataTable; +begin + ShowHourglassCursor; + try + ARecibosCompensados := CloneDataTable(tbl_RecibosCompensadosCli); + with ARecibosCompensados do + begin + BusinessRulesID := BIZ_CLIENT_RECIBOS_COMPENSADOSCLI; + DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; + end; + Result := (ARecibosCompensados as IBizRecibosCompensadosCli); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleRecibosCliente.GetItems: IBizRecibosCliente; +var + AIBizRecibosCliente : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AIBizRecibosCliente := CloneDataTable(tbl_RecibosCliente); + AIBizRecibosCliente.BusinessRulesID := BIZ_CLIENT_IBizRecibosCliente; + + with TBizRecibosCliente(AIBizRecibosCliente.BusinessEventsObj) do + Pagos := _GetPagos; + + with TBizRecibosCliente(AIBizRecibosCliente.BusinessEventsObj) do + RecibosCompensados := _GetRecibosCompensados; + + Result := (AIBizRecibosCliente as IBizRecibosCliente); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleRecibosCliente.NewItem: IBizRecibosCliente; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleRecibosCliente.GetAnosItems: TStringList; +var + AListaAnos: TStringList; +begin + AListaAnos := TStringList.Create; + ShowHourglassCursor; + try + with tbl_ListaAnosRecibos do + begin + Open; + First; + while not eof do + begin + AListaAnos.Add(Format('%s=%s', [Fields[0].AsString, Fields[0].AsString])); + Next; + end; + Close; + end; + Result := AListaAnos; + finally + HideHourglassCursor; + end; +end; + +function TDataModuleRecibosCliente.GetItem(const ID: Integer): IBizRecibosCliente; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + + with Result.DataTable.DynamicWhere do + begin + // (ID = :ID) + Condicion := NewBinaryExpression(NewField('', fld_RecibosClienteID), NewConstant(ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Recibos de cliente/Model/Data/uIDataModuleRecibosCliente.dcu b/Source/Modulos/Recibos de cliente/Model/Data/uIDataModuleRecibosCliente.dcu new file mode 100644 index 0000000..dfdcf23 Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Model/Data/uIDataModuleRecibosCliente.dcu differ diff --git a/Source/Modulos/Recibos de cliente/Model/Data/uIDataModuleRecibosCliente.pas b/Source/Modulos/Recibos de cliente/Model/Data/uIDataModuleRecibosCliente.pas new file mode 100644 index 0000000..a791d0d --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Model/Data/uIDataModuleRecibosCliente.pas @@ -0,0 +1,42 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uIDataModuleRecibosCliente; + +interface + +uses + Classes, uBizRecibosCliente; + +type + IDataModuleRecibosCliente = interface + ['{F4F02C9E-E861-4938-8A2D-FE971A41EE92}'] + function GetAnosItems : TStringList; + function GetItems: IBizRecibosCliente; + function GetItem(const ID : Integer) : IBizRecibosCliente; + function NewItem : IBizRecibosCliente; + end; + +implementation + +end. diff --git a/Source/Modulos/Recibos de cliente/Model/Data/uIDataModuleRecibosClienteReport.dcu b/Source/Modulos/Recibos de cliente/Model/Data/uIDataModuleRecibosClienteReport.dcu new file mode 100644 index 0000000..30aa6c4 Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Model/Data/uIDataModuleRecibosClienteReport.dcu differ diff --git a/Source/Modulos/Recibos de cliente/Model/Data/uIDataModuleRecibosClienteReport.pas b/Source/Modulos/Recibos de cliente/Model/Data/uIDataModuleRecibosClienteReport.pas new file mode 100644 index 0000000..a8df345 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Model/Data/uIDataModuleRecibosClienteReport.pas @@ -0,0 +1,16 @@ +unit uIDataModuleRecibosClienteReport; + +interface + +uses + SysUtils, Classes, uROTypes, uIntegerListUtils; + +type + IDataModuleRecibosClienteReport = interface + ['{FBADD967-0008-4ED5-9CCD-5BFE4F527D52}'] + function GetReport(const ListaID: TIntegerList): Binary; + end; + +implementation + +end. diff --git a/Source/Modulos/Recibos de cliente/Model/RecibosCliente_model.bdsproj b/Source/Modulos/Recibos de cliente/Model/RecibosCliente_model.bdsproj new file mode 100644 index 0000000..bd24eb4 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Model/RecibosCliente_model.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + RecibosCliente_model.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Recibos de cliente/Model/RecibosCliente_model.dcu b/Source/Modulos/Recibos de cliente/Model/RecibosCliente_model.dcu new file mode 100644 index 0000000..c8e22e5 Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Model/RecibosCliente_model.dcu differ diff --git a/Source/Modulos/Recibos de cliente/Model/RecibosCliente_model.dpk b/Source/Modulos/Recibos de cliente/Model/RecibosCliente_model.dpk new file mode 100644 index 0000000..e9d078e Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Model/RecibosCliente_model.dpk differ diff --git a/Source/Modulos/Recibos de cliente/Model/RecibosCliente_model.dproj b/Source/Modulos/Recibos de cliente/Model/RecibosCliente_model.dproj new file mode 100644 index 0000000..8a35c0f --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Model/RecibosCliente_model.dproj @@ -0,0 +1,551 @@ + + + + {e2f6ada6-f893-403e-8ebc-dd36413017f6} + RecibosCliente_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\RecibosCliente_model.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0RecibosCliente_model.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Recibos de cliente/Model/RecibosCliente_model.rc b/Source/Modulos/Recibos de cliente/Model/RecibosCliente_model.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Model/RecibosCliente_model.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Recibos de cliente/Model/RecibosCliente_model.res b/Source/Modulos/Recibos de cliente/Model/RecibosCliente_model.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Model/RecibosCliente_model.res differ diff --git a/Source/Modulos/Recibos de cliente/Model/schRecibosClienteClient_Intf.dcu b/Source/Modulos/Recibos de cliente/Model/schRecibosClienteClient_Intf.dcu new file mode 100644 index 0000000..dcde246 Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Model/schRecibosClienteClient_Intf.dcu differ diff --git a/Source/Modulos/Recibos de cliente/Model/schRecibosClienteClient_Intf.pas b/Source/Modulos/Recibos de cliente/Model/schRecibosClienteClient_Intf.pas new file mode 100644 index 0000000..8b5a5a3 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Model/schRecibosClienteClient_Intf.pas @@ -0,0 +1,2745 @@ +unit schRecibosClienteClient_Intf; + +interface + +uses + Classes, DB, schBase_Intf, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_ListaAnosRecibos = '{85D6A88E-F93C-4EBD-856B-E3DD70661B8C}'; + RID_RecibosCliente = '{7AEE1847-3690-481E-AA36-7DD34941DAE0}'; + RID_PagosCliente = '{24604449-C6ED-4543-A84E-A9084B86E5EA}'; + RID_RecibosCompensadosCli = '{3198778B-C101-4E4C-94B1-A5B6EE3FB400}'; + + { Data table names } + nme_ListaAnosRecibos = 'ListaAnosRecibos'; + nme_RecibosCliente = 'RecibosCliente'; + nme_PagosCliente = 'PagosCliente'; + nme_RecibosCompensadosCli = 'RecibosCompensadosCli'; + + { ListaAnosRecibos fields } + fld_ListaAnosRecibosANO = 'ANO'; + + { ListaAnosRecibos field indexes } + idx_ListaAnosRecibosANO = 0; + + { RecibosCliente fields } + fld_RecibosClienteID = 'ID'; + fld_RecibosClienteID_RECIBO_COMPENSADO = 'ID_RECIBO_COMPENSADO'; + fld_RecibosClienteREFERENCIA_REC_COMPENSADO = 'REFERENCIA_REC_COMPENSADO'; + fld_RecibosClienteREFERENCIA = 'REFERENCIA'; + fld_RecibosClienteSITUACION = 'SITUACION'; + fld_RecibosClienteID_FACTURA = 'ID_FACTURA'; + fld_RecibosClienteID_REMESA = 'ID_REMESA'; + fld_RecibosClienteREFERENCIA_REMESA = 'REFERENCIA_REMESA'; + fld_RecibosClienteFECHA_EMISION = 'FECHA_EMISION'; + fld_RecibosClienteFECHA_VENCIMIENTO = 'FECHA_VENCIMIENTO'; + fld_RecibosClienteDESCRIPCION = 'DESCRIPCION'; + fld_RecibosClienteOBSERVACIONES = 'OBSERVACIONES'; + fld_RecibosClienteIMPORTE = 'IMPORTE'; + fld_RecibosClienteOTROS_GASTOS = 'OTROS_GASTOS'; + fld_RecibosClienteIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_RecibosClienteFECHA_FACTURA = 'FECHA_FACTURA'; + fld_RecibosClienteFORMA_PAGO_FACTURA = 'FORMA_PAGO_FACTURA'; + fld_RecibosClienteIMPORTE_FACTURA = 'IMPORTE_FACTURA'; + fld_RecibosClienteID_EMPRESA = 'ID_EMPRESA'; + fld_RecibosClienteDATOS_BANCARIOS = 'DATOS_BANCARIOS'; + fld_RecibosClienteID_CLIENTE = 'ID_CLIENTE'; + fld_RecibosClienteNOMBRE_CLIENTE = 'NOMBRE_CLIENTE'; + fld_RecibosClienteNIF_CIF_CLIENTE = 'NIF_CIF_CLIENTE'; + fld_RecibosClienteCALLE_CLIENTE = 'CALLE_CLIENTE'; + fld_RecibosClientePOBLACION_CLIENTE = 'POBLACION_CLIENTE'; + fld_RecibosClienteCODIGO_POSTAL_CLIENTE = 'CODIGO_POSTAL_CLIENTE'; + fld_RecibosClientePROVINCIA_CLIENTE = 'PROVINCIA_CLIENTE'; + fld_RecibosClienteFECHA_ALTA = 'FECHA_ALTA'; + fld_RecibosClienteFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_RecibosClienteUSUARIO = 'USUARIO'; + + { RecibosCliente field indexes } + idx_RecibosClienteID = 0; + idx_RecibosClienteID_RECIBO_COMPENSADO = 1; + idx_RecibosClienteREFERENCIA_REC_COMPENSADO = 2; + idx_RecibosClienteREFERENCIA = 3; + idx_RecibosClienteSITUACION = 4; + idx_RecibosClienteID_FACTURA = 5; + idx_RecibosClienteID_REMESA = 6; + idx_RecibosClienteREFERENCIA_REMESA = 7; + idx_RecibosClienteFECHA_EMISION = 8; + idx_RecibosClienteFECHA_VENCIMIENTO = 9; + idx_RecibosClienteDESCRIPCION = 10; + idx_RecibosClienteOBSERVACIONES = 11; + idx_RecibosClienteIMPORTE = 12; + idx_RecibosClienteOTROS_GASTOS = 13; + idx_RecibosClienteIMPORTE_TOTAL = 14; + idx_RecibosClienteFECHA_FACTURA = 15; + idx_RecibosClienteFORMA_PAGO_FACTURA = 16; + idx_RecibosClienteIMPORTE_FACTURA = 17; + idx_RecibosClienteID_EMPRESA = 18; + idx_RecibosClienteDATOS_BANCARIOS = 19; + idx_RecibosClienteID_CLIENTE = 20; + idx_RecibosClienteNOMBRE_CLIENTE = 21; + idx_RecibosClienteNIF_CIF_CLIENTE = 22; + idx_RecibosClienteCALLE_CLIENTE = 23; + idx_RecibosClientePOBLACION_CLIENTE = 24; + idx_RecibosClienteCODIGO_POSTAL_CLIENTE = 25; + idx_RecibosClientePROVINCIA_CLIENTE = 26; + idx_RecibosClienteFECHA_ALTA = 27; + idx_RecibosClienteFECHA_MODIFICACION = 28; + idx_RecibosClienteUSUARIO = 29; + + { PagosCliente fields } + fld_PagosClienteID = 'ID'; + fld_PagosClienteID_RECIBO = 'ID_RECIBO'; + fld_PagosClienteTIPO = 'TIPO'; + fld_PagosClienteFECHA_PAGO = 'FECHA_PAGO'; + fld_PagosClienteTITULAR = 'TITULAR'; + fld_PagosClienteENTIDAD = 'ENTIDAD'; + fld_PagosClienteSUCURSAL = 'SUCURSAL'; + fld_PagosClienteDC = 'DC'; + fld_PagosClienteCUENTA = 'CUENTA'; + fld_PagosClienteFECHA_ALTA = 'FECHA_ALTA'; + fld_PagosClienteFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_PagosClienteUSUARIO = 'USUARIO'; + + { PagosCliente field indexes } + idx_PagosClienteID = 0; + idx_PagosClienteID_RECIBO = 1; + idx_PagosClienteTIPO = 2; + idx_PagosClienteFECHA_PAGO = 3; + idx_PagosClienteTITULAR = 4; + idx_PagosClienteENTIDAD = 5; + idx_PagosClienteSUCURSAL = 6; + idx_PagosClienteDC = 7; + idx_PagosClienteCUENTA = 8; + idx_PagosClienteFECHA_ALTA = 9; + idx_PagosClienteFECHA_MODIFICACION = 10; + idx_PagosClienteUSUARIO = 11; + + { RecibosCompensadosCli fields } + fld_RecibosCompensadosCliID = 'ID'; + fld_RecibosCompensadosCliID_RECIBO_COMPENSADO = 'ID_RECIBO_COMPENSADO'; + fld_RecibosCompensadosCliREFERENCIA_REC_COMPENSADO = 'REFERENCIA_REC_COMPENSADO'; + fld_RecibosCompensadosCliREFERENCIA = 'REFERENCIA'; + fld_RecibosCompensadosCliSITUACION = 'SITUACION'; + fld_RecibosCompensadosCliID_FACTURA = 'ID_FACTURA'; + fld_RecibosCompensadosCliID_REMESA = 'ID_REMESA'; + fld_RecibosCompensadosCliREFERENCIA_REMESA = 'REFERENCIA_REMESA'; + fld_RecibosCompensadosCliFECHA_EMISION = 'FECHA_EMISION'; + fld_RecibosCompensadosCliFECHA_VENCIMIENTO = 'FECHA_VENCIMIENTO'; + fld_RecibosCompensadosCliDESCRIPCION = 'DESCRIPCION'; + fld_RecibosCompensadosCliOBSERVACIONES = 'OBSERVACIONES'; + fld_RecibosCompensadosCliIMPORTE = 'IMPORTE'; + fld_RecibosCompensadosCliOTROS_GASTOS = 'OTROS_GASTOS'; + fld_RecibosCompensadosCliIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_RecibosCompensadosCliFECHA_FACTURA = 'FECHA_FACTURA'; + fld_RecibosCompensadosCliFORMA_PAGO_FACTURA = 'FORMA_PAGO_FACTURA'; + fld_RecibosCompensadosCliIMPORTE_FACTURA = 'IMPORTE_FACTURA'; + fld_RecibosCompensadosCliID_EMPRESA = 'ID_EMPRESA'; + fld_RecibosCompensadosCliDATOS_BANCARIOS = 'DATOS_BANCARIOS'; + fld_RecibosCompensadosCliID_CLIENTE = 'ID_CLIENTE'; + fld_RecibosCompensadosCliNOMBRE_CLIENTE = 'NOMBRE_CLIENTE'; + fld_RecibosCompensadosCliNIF_CIF_CLIENTE = 'NIF_CIF_CLIENTE'; + fld_RecibosCompensadosCliCALLE_CLIENTE = 'CALLE_CLIENTE'; + fld_RecibosCompensadosCliPOBLACION_CLIENTE = 'POBLACION_CLIENTE'; + fld_RecibosCompensadosCliCODIGO_POSTAL_CLIENTE = 'CODIGO_POSTAL_CLIENTE'; + fld_RecibosCompensadosCliPROVINCIA_CLIENTE = 'PROVINCIA_CLIENTE'; + fld_RecibosCompensadosCliFECHA_ALTA = 'FECHA_ALTA'; + fld_RecibosCompensadosCliFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_RecibosCompensadosCliUSUARIO = 'USUARIO'; + + { RecibosCompensadosCli field indexes } + idx_RecibosCompensadosCliID = 0; + idx_RecibosCompensadosCliID_RECIBO_COMPENSADO = 1; + idx_RecibosCompensadosCliREFERENCIA_REC_COMPENSADO = 2; + idx_RecibosCompensadosCliREFERENCIA = 3; + idx_RecibosCompensadosCliSITUACION = 4; + idx_RecibosCompensadosCliID_FACTURA = 5; + idx_RecibosCompensadosCliID_REMESA = 6; + idx_RecibosCompensadosCliREFERENCIA_REMESA = 7; + idx_RecibosCompensadosCliFECHA_EMISION = 8; + idx_RecibosCompensadosCliFECHA_VENCIMIENTO = 9; + idx_RecibosCompensadosCliDESCRIPCION = 10; + idx_RecibosCompensadosCliOBSERVACIONES = 11; + idx_RecibosCompensadosCliIMPORTE = 12; + idx_RecibosCompensadosCliOTROS_GASTOS = 13; + idx_RecibosCompensadosCliIMPORTE_TOTAL = 14; + idx_RecibosCompensadosCliFECHA_FACTURA = 15; + idx_RecibosCompensadosCliFORMA_PAGO_FACTURA = 16; + idx_RecibosCompensadosCliIMPORTE_FACTURA = 17; + idx_RecibosCompensadosCliID_EMPRESA = 18; + idx_RecibosCompensadosCliDATOS_BANCARIOS = 19; + idx_RecibosCompensadosCliID_CLIENTE = 20; + idx_RecibosCompensadosCliNOMBRE_CLIENTE = 21; + idx_RecibosCompensadosCliNIF_CIF_CLIENTE = 22; + idx_RecibosCompensadosCliCALLE_CLIENTE = 23; + idx_RecibosCompensadosCliPOBLACION_CLIENTE = 24; + idx_RecibosCompensadosCliCODIGO_POSTAL_CLIENTE = 25; + idx_RecibosCompensadosCliPROVINCIA_CLIENTE = 26; + idx_RecibosCompensadosCliFECHA_ALTA = 27; + idx_RecibosCompensadosCliFECHA_MODIFICACION = 28; + idx_RecibosCompensadosCliUSUARIO = 29; + +type + { IListaAnosRecibos } + IListaAnosRecibos = interface(IDAStronglyTypedDataTable) + ['{CB0E282C-8761-42F7-A898-261F109FAE48}'] + { Property getters and setters } + function GetANOValue: String; + procedure SetANOValue(const aValue: String); + function GetANOIsNull: Boolean; + procedure SetANOIsNull(const aValue: Boolean); + + + { Properties } + property ANO: String read GetANOValue write SetANOValue; + property ANOIsNull: Boolean read GetANOIsNull write SetANOIsNull; + end; + + { TListaAnosRecibosDataTableRules } + TListaAnosRecibosDataTableRules = class(TIntfObjectDADataTableRules, IListaAnosRecibos) + private + protected + { Property getters and setters } + function GetANOValue: String; virtual; + procedure SetANOValue(const aValue: String); virtual; + function GetANOIsNull: Boolean; virtual; + procedure SetANOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ANO: String read GetANOValue write SetANOValue; + property ANOIsNull: Boolean read GetANOIsNull write SetANOIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IRecibosCliente } + IRecibosCliente = interface(IDAStronglyTypedDataTable) + ['{76F7C244-A129-4A30-90CF-2CA8C4B52CAD}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_RECIBO_COMPENSADOValue: Integer; + procedure SetID_RECIBO_COMPENSADOValue(const aValue: Integer); + function GetID_RECIBO_COMPENSADOIsNull: Boolean; + procedure SetID_RECIBO_COMPENSADOIsNull(const aValue: Boolean); + function GetREFERENCIA_REC_COMPENSADOValue: String; + procedure SetREFERENCIA_REC_COMPENSADOValue(const aValue: String); + function GetREFERENCIA_REC_COMPENSADOIsNull: Boolean; + procedure SetREFERENCIA_REC_COMPENSADOIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetSITUACIONValue: String; + procedure SetSITUACIONValue(const aValue: String); + function GetSITUACIONIsNull: Boolean; + procedure SetSITUACIONIsNull(const aValue: Boolean); + function GetID_FACTURAValue: Integer; + procedure SetID_FACTURAValue(const aValue: Integer); + function GetID_FACTURAIsNull: Boolean; + procedure SetID_FACTURAIsNull(const aValue: Boolean); + function GetID_REMESAValue: Integer; + procedure SetID_REMESAValue(const aValue: Integer); + function GetID_REMESAIsNull: Boolean; + procedure SetID_REMESAIsNull(const aValue: Boolean); + function GetREFERENCIA_REMESAValue: String; + procedure SetREFERENCIA_REMESAValue(const aValue: String); + function GetREFERENCIA_REMESAIsNull: Boolean; + procedure SetREFERENCIA_REMESAIsNull(const aValue: Boolean); + function GetFECHA_EMISIONValue: DateTime; + procedure SetFECHA_EMISIONValue(const aValue: DateTime); + function GetFECHA_EMISIONIsNull: Boolean; + procedure SetFECHA_EMISIONIsNull(const aValue: Boolean); + function GetFECHA_VENCIMIENTOValue: DateTime; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); + function GetFECHA_VENCIMIENTOIsNull: Boolean; + procedure SetFECHA_VENCIMIENTOIsNull(const aValue: Boolean); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetDESCRIPCIONIsNull: Boolean; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); + function GetOBSERVACIONESValue: String; + procedure SetOBSERVACIONESValue(const aValue: String); + function GetOBSERVACIONESIsNull: Boolean; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); + function GetIMPORTEValue: Currency; + procedure SetIMPORTEValue(const aValue: Currency); + function GetIMPORTEIsNull: Boolean; + procedure SetIMPORTEIsNull(const aValue: Boolean); + function GetOTROS_GASTOSValue: Currency; + procedure SetOTROS_GASTOSValue(const aValue: Currency); + function GetOTROS_GASTOSIsNull: Boolean; + procedure SetOTROS_GASTOSIsNull(const aValue: Boolean); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetIMPORTE_TOTALIsNull: Boolean; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); + function GetFECHA_FACTURAValue: DateTime; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); + function GetFECHA_FACTURAIsNull: Boolean; + procedure SetFECHA_FACTURAIsNull(const aValue: Boolean); + function GetFORMA_PAGO_FACTURAValue: String; + procedure SetFORMA_PAGO_FACTURAValue(const aValue: String); + function GetFORMA_PAGO_FACTURAIsNull: Boolean; + procedure SetFORMA_PAGO_FACTURAIsNull(const aValue: Boolean); + function GetIMPORTE_FACTURAValue: Currency; + procedure SetIMPORTE_FACTURAValue(const aValue: Currency); + function GetIMPORTE_FACTURAIsNull: Boolean; + procedure SetIMPORTE_FACTURAIsNull(const aValue: Boolean); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_EMPRESAIsNull: Boolean; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); + function GetDATOS_BANCARIOSValue: String; + procedure SetDATOS_BANCARIOSValue(const aValue: String); + function GetDATOS_BANCARIOSIsNull: Boolean; + procedure SetDATOS_BANCARIOSIsNull(const aValue: Boolean); + function GetID_CLIENTEValue: Integer; + procedure SetID_CLIENTEValue(const aValue: Integer); + function GetID_CLIENTEIsNull: Boolean; + procedure SetID_CLIENTEIsNull(const aValue: Boolean); + function GetNOMBRE_CLIENTEValue: String; + procedure SetNOMBRE_CLIENTEValue(const aValue: String); + function GetNOMBRE_CLIENTEIsNull: Boolean; + procedure SetNOMBRE_CLIENTEIsNull(const aValue: Boolean); + function GetNIF_CIF_CLIENTEValue: String; + procedure SetNIF_CIF_CLIENTEValue(const aValue: String); + function GetNIF_CIF_CLIENTEIsNull: Boolean; + procedure SetNIF_CIF_CLIENTEIsNull(const aValue: Boolean); + function GetCALLE_CLIENTEValue: String; + procedure SetCALLE_CLIENTEValue(const aValue: String); + function GetCALLE_CLIENTEIsNull: Boolean; + procedure SetCALLE_CLIENTEIsNull(const aValue: Boolean); + function GetPOBLACION_CLIENTEValue: String; + procedure SetPOBLACION_CLIENTEValue(const aValue: String); + function GetPOBLACION_CLIENTEIsNull: Boolean; + procedure SetPOBLACION_CLIENTEIsNull(const aValue: Boolean); + function GetCODIGO_POSTAL_CLIENTEValue: String; + procedure SetCODIGO_POSTAL_CLIENTEValue(const aValue: String); + function GetCODIGO_POSTAL_CLIENTEIsNull: Boolean; + procedure SetCODIGO_POSTAL_CLIENTEIsNull(const aValue: Boolean); + function GetPROVINCIA_CLIENTEValue: String; + procedure SetPROVINCIA_CLIENTEValue(const aValue: String); + function GetPROVINCIA_CLIENTEIsNull: Boolean; + procedure SetPROVINCIA_CLIENTEIsNull(const aValue: Boolean); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_ALTAIsNull: Boolean; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONIsNull: Boolean; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetUSUARIOIsNull: Boolean; + procedure SetUSUARIOIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_RECIBO_COMPENSADO: Integer read GetID_RECIBO_COMPENSADOValue write SetID_RECIBO_COMPENSADOValue; + property ID_RECIBO_COMPENSADOIsNull: Boolean read GetID_RECIBO_COMPENSADOIsNull write SetID_RECIBO_COMPENSADOIsNull; + property REFERENCIA_REC_COMPENSADO: String read GetREFERENCIA_REC_COMPENSADOValue write SetREFERENCIA_REC_COMPENSADOValue; + property REFERENCIA_REC_COMPENSADOIsNull: Boolean read GetREFERENCIA_REC_COMPENSADOIsNull write SetREFERENCIA_REC_COMPENSADOIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property SITUACIONIsNull: Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull: Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property ID_REMESA: Integer read GetID_REMESAValue write SetID_REMESAValue; + property ID_REMESAIsNull: Boolean read GetID_REMESAIsNull write SetID_REMESAIsNull; + property REFERENCIA_REMESA: String read GetREFERENCIA_REMESAValue write SetREFERENCIA_REMESAValue; + property REFERENCIA_REMESAIsNull: Boolean read GetREFERENCIA_REMESAIsNull write SetREFERENCIA_REMESAIsNull; + property FECHA_EMISION: DateTime read GetFECHA_EMISIONValue write SetFECHA_EMISIONValue; + property FECHA_EMISIONIsNull: Boolean read GetFECHA_EMISIONIsNull write SetFECHA_EMISIONIsNull; + property FECHA_VENCIMIENTO: DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + property FECHA_VENCIMIENTOIsNull: Boolean read GetFECHA_VENCIMIENTOIsNull write SetFECHA_VENCIMIENTOIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property OBSERVACIONES: String read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property OBSERVACIONESIsNull: Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property IMPORTE: Currency read GetIMPORTEValue write SetIMPORTEValue; + property IMPORTEIsNull: Boolean read GetIMPORTEIsNull write SetIMPORTEIsNull; + property OTROS_GASTOS: Currency read GetOTROS_GASTOSValue write SetOTROS_GASTOSValue; + property OTROS_GASTOSIsNull: Boolean read GetOTROS_GASTOSIsNull write SetOTROS_GASTOSIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property FECHA_FACTURA: DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property FECHA_FACTURAIsNull: Boolean read GetFECHA_FACTURAIsNull write SetFECHA_FACTURAIsNull; + property FORMA_PAGO_FACTURA: String read GetFORMA_PAGO_FACTURAValue write SetFORMA_PAGO_FACTURAValue; + property FORMA_PAGO_FACTURAIsNull: Boolean read GetFORMA_PAGO_FACTURAIsNull write SetFORMA_PAGO_FACTURAIsNull; + property IMPORTE_FACTURA: Currency read GetIMPORTE_FACTURAValue write SetIMPORTE_FACTURAValue; + property IMPORTE_FACTURAIsNull: Boolean read GetIMPORTE_FACTURAIsNull write SetIMPORTE_FACTURAIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property DATOS_BANCARIOS: String read GetDATOS_BANCARIOSValue write SetDATOS_BANCARIOSValue; + property DATOS_BANCARIOSIsNull: Boolean read GetDATOS_BANCARIOSIsNull write SetDATOS_BANCARIOSIsNull; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property ID_CLIENTEIsNull: Boolean read GetID_CLIENTEIsNull write SetID_CLIENTEIsNull; + property NOMBRE_CLIENTE: String read GetNOMBRE_CLIENTEValue write SetNOMBRE_CLIENTEValue; + property NOMBRE_CLIENTEIsNull: Boolean read GetNOMBRE_CLIENTEIsNull write SetNOMBRE_CLIENTEIsNull; + property NIF_CIF_CLIENTE: String read GetNIF_CIF_CLIENTEValue write SetNIF_CIF_CLIENTEValue; + property NIF_CIF_CLIENTEIsNull: Boolean read GetNIF_CIF_CLIENTEIsNull write SetNIF_CIF_CLIENTEIsNull; + property CALLE_CLIENTE: String read GetCALLE_CLIENTEValue write SetCALLE_CLIENTEValue; + property CALLE_CLIENTEIsNull: Boolean read GetCALLE_CLIENTEIsNull write SetCALLE_CLIENTEIsNull; + property POBLACION_CLIENTE: String read GetPOBLACION_CLIENTEValue write SetPOBLACION_CLIENTEValue; + property POBLACION_CLIENTEIsNull: Boolean read GetPOBLACION_CLIENTEIsNull write SetPOBLACION_CLIENTEIsNull; + property CODIGO_POSTAL_CLIENTE: String read GetCODIGO_POSTAL_CLIENTEValue write SetCODIGO_POSTAL_CLIENTEValue; + property CODIGO_POSTAL_CLIENTEIsNull: Boolean read GetCODIGO_POSTAL_CLIENTEIsNull write SetCODIGO_POSTAL_CLIENTEIsNull; + property PROVINCIA_CLIENTE: String read GetPROVINCIA_CLIENTEValue write SetPROVINCIA_CLIENTEValue; + property PROVINCIA_CLIENTEIsNull: Boolean read GetPROVINCIA_CLIENTEIsNull write SetPROVINCIA_CLIENTEIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + end; + + { TRecibosClienteDataTableRules } + TRecibosClienteDataTableRules = class(TIntfObjectDADataTableRules, IRecibosCliente) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_RECIBO_COMPENSADOValue: Integer; virtual; + procedure SetID_RECIBO_COMPENSADOValue(const aValue: Integer); virtual; + function GetID_RECIBO_COMPENSADOIsNull: Boolean; virtual; + procedure SetID_RECIBO_COMPENSADOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_REC_COMPENSADOValue: String; virtual; + procedure SetREFERENCIA_REC_COMPENSADOValue(const aValue: String); virtual; + function GetREFERENCIA_REC_COMPENSADOIsNull: Boolean; virtual; + procedure SetREFERENCIA_REC_COMPENSADOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetSITUACIONIsNull: Boolean; virtual; + procedure SetSITUACIONIsNull(const aValue: Boolean); virtual; + function GetID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetID_FACTURAIsNull: Boolean; virtual; + procedure SetID_FACTURAIsNull(const aValue: Boolean); virtual; + function GetID_REMESAValue: Integer; virtual; + procedure SetID_REMESAValue(const aValue: Integer); virtual; + function GetID_REMESAIsNull: Boolean; virtual; + procedure SetID_REMESAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_REMESAValue: String; virtual; + procedure SetREFERENCIA_REMESAValue(const aValue: String); virtual; + function GetREFERENCIA_REMESAIsNull: Boolean; virtual; + procedure SetREFERENCIA_REMESAIsNull(const aValue: Boolean); virtual; + function GetFECHA_EMISIONValue: DateTime; virtual; + procedure SetFECHA_EMISIONValue(const aValue: DateTime); virtual; + function GetFECHA_EMISIONIsNull: Boolean; virtual; + procedure SetFECHA_EMISIONIsNull(const aValue: Boolean); virtual; + function GetFECHA_VENCIMIENTOValue: DateTime; virtual; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); virtual; + function GetFECHA_VENCIMIENTOIsNull: Boolean; virtual; + procedure SetFECHA_VENCIMIENTOIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + function GetOBSERVACIONESValue: String; virtual; + procedure SetOBSERVACIONESValue(const aValue: String); virtual; + function GetOBSERVACIONESIsNull: Boolean; virtual; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); virtual; + function GetIMPORTEValue: Currency; virtual; + procedure SetIMPORTEValue(const aValue: Currency); virtual; + function GetIMPORTEIsNull: Boolean; virtual; + procedure SetIMPORTEIsNull(const aValue: Boolean); virtual; + function GetOTROS_GASTOSValue: Currency; virtual; + procedure SetOTROS_GASTOSValue(const aValue: Currency); virtual; + function GetOTROS_GASTOSIsNull: Boolean; virtual; + procedure SetOTROS_GASTOSIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetFECHA_FACTURAValue: DateTime; virtual; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); virtual; + function GetFECHA_FACTURAIsNull: Boolean; virtual; + procedure SetFECHA_FACTURAIsNull(const aValue: Boolean); virtual; + function GetFORMA_PAGO_FACTURAValue: String; virtual; + procedure SetFORMA_PAGO_FACTURAValue(const aValue: String); virtual; + function GetFORMA_PAGO_FACTURAIsNull: Boolean; virtual; + procedure SetFORMA_PAGO_FACTURAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_FACTURAValue: Currency; virtual; + procedure SetIMPORTE_FACTURAValue(const aValue: Currency); virtual; + function GetIMPORTE_FACTURAIsNull: Boolean; virtual; + procedure SetIMPORTE_FACTURAIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetDATOS_BANCARIOSValue: String; virtual; + procedure SetDATOS_BANCARIOSValue(const aValue: String); virtual; + function GetDATOS_BANCARIOSIsNull: Boolean; virtual; + procedure SetDATOS_BANCARIOSIsNull(const aValue: Boolean); virtual; + function GetID_CLIENTEValue: Integer; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + function GetID_CLIENTEIsNull: Boolean; virtual; + procedure SetID_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetNOMBRE_CLIENTEValue: String; virtual; + procedure SetNOMBRE_CLIENTEValue(const aValue: String); virtual; + function GetNOMBRE_CLIENTEIsNull: Boolean; virtual; + procedure SetNOMBRE_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetNIF_CIF_CLIENTEValue: String; virtual; + procedure SetNIF_CIF_CLIENTEValue(const aValue: String); virtual; + function GetNIF_CIF_CLIENTEIsNull: Boolean; virtual; + procedure SetNIF_CIF_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetCALLE_CLIENTEValue: String; virtual; + procedure SetCALLE_CLIENTEValue(const aValue: String); virtual; + function GetCALLE_CLIENTEIsNull: Boolean; virtual; + procedure SetCALLE_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetPOBLACION_CLIENTEValue: String; virtual; + procedure SetPOBLACION_CLIENTEValue(const aValue: String); virtual; + function GetPOBLACION_CLIENTEIsNull: Boolean; virtual; + procedure SetPOBLACION_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTAL_CLIENTEValue: String; virtual; + procedure SetCODIGO_POSTAL_CLIENTEValue(const aValue: String); virtual; + function GetCODIGO_POSTAL_CLIENTEIsNull: Boolean; virtual; + procedure SetCODIGO_POSTAL_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetPROVINCIA_CLIENTEValue: String; virtual; + procedure SetPROVINCIA_CLIENTEValue(const aValue: String); virtual; + function GetPROVINCIA_CLIENTEIsNull: Boolean; virtual; + procedure SetPROVINCIA_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_RECIBO_COMPENSADO: Integer read GetID_RECIBO_COMPENSADOValue write SetID_RECIBO_COMPENSADOValue; + property ID_RECIBO_COMPENSADOIsNull: Boolean read GetID_RECIBO_COMPENSADOIsNull write SetID_RECIBO_COMPENSADOIsNull; + property REFERENCIA_REC_COMPENSADO: String read GetREFERENCIA_REC_COMPENSADOValue write SetREFERENCIA_REC_COMPENSADOValue; + property REFERENCIA_REC_COMPENSADOIsNull: Boolean read GetREFERENCIA_REC_COMPENSADOIsNull write SetREFERENCIA_REC_COMPENSADOIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property SITUACIONIsNull: Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull: Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property ID_REMESA: Integer read GetID_REMESAValue write SetID_REMESAValue; + property ID_REMESAIsNull: Boolean read GetID_REMESAIsNull write SetID_REMESAIsNull; + property REFERENCIA_REMESA: String read GetREFERENCIA_REMESAValue write SetREFERENCIA_REMESAValue; + property REFERENCIA_REMESAIsNull: Boolean read GetREFERENCIA_REMESAIsNull write SetREFERENCIA_REMESAIsNull; + property FECHA_EMISION: DateTime read GetFECHA_EMISIONValue write SetFECHA_EMISIONValue; + property FECHA_EMISIONIsNull: Boolean read GetFECHA_EMISIONIsNull write SetFECHA_EMISIONIsNull; + property FECHA_VENCIMIENTO: DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + property FECHA_VENCIMIENTOIsNull: Boolean read GetFECHA_VENCIMIENTOIsNull write SetFECHA_VENCIMIENTOIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property OBSERVACIONES: String read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property OBSERVACIONESIsNull: Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property IMPORTE: Currency read GetIMPORTEValue write SetIMPORTEValue; + property IMPORTEIsNull: Boolean read GetIMPORTEIsNull write SetIMPORTEIsNull; + property OTROS_GASTOS: Currency read GetOTROS_GASTOSValue write SetOTROS_GASTOSValue; + property OTROS_GASTOSIsNull: Boolean read GetOTROS_GASTOSIsNull write SetOTROS_GASTOSIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property FECHA_FACTURA: DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property FECHA_FACTURAIsNull: Boolean read GetFECHA_FACTURAIsNull write SetFECHA_FACTURAIsNull; + property FORMA_PAGO_FACTURA: String read GetFORMA_PAGO_FACTURAValue write SetFORMA_PAGO_FACTURAValue; + property FORMA_PAGO_FACTURAIsNull: Boolean read GetFORMA_PAGO_FACTURAIsNull write SetFORMA_PAGO_FACTURAIsNull; + property IMPORTE_FACTURA: Currency read GetIMPORTE_FACTURAValue write SetIMPORTE_FACTURAValue; + property IMPORTE_FACTURAIsNull: Boolean read GetIMPORTE_FACTURAIsNull write SetIMPORTE_FACTURAIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property DATOS_BANCARIOS: String read GetDATOS_BANCARIOSValue write SetDATOS_BANCARIOSValue; + property DATOS_BANCARIOSIsNull: Boolean read GetDATOS_BANCARIOSIsNull write SetDATOS_BANCARIOSIsNull; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property ID_CLIENTEIsNull: Boolean read GetID_CLIENTEIsNull write SetID_CLIENTEIsNull; + property NOMBRE_CLIENTE: String read GetNOMBRE_CLIENTEValue write SetNOMBRE_CLIENTEValue; + property NOMBRE_CLIENTEIsNull: Boolean read GetNOMBRE_CLIENTEIsNull write SetNOMBRE_CLIENTEIsNull; + property NIF_CIF_CLIENTE: String read GetNIF_CIF_CLIENTEValue write SetNIF_CIF_CLIENTEValue; + property NIF_CIF_CLIENTEIsNull: Boolean read GetNIF_CIF_CLIENTEIsNull write SetNIF_CIF_CLIENTEIsNull; + property CALLE_CLIENTE: String read GetCALLE_CLIENTEValue write SetCALLE_CLIENTEValue; + property CALLE_CLIENTEIsNull: Boolean read GetCALLE_CLIENTEIsNull write SetCALLE_CLIENTEIsNull; + property POBLACION_CLIENTE: String read GetPOBLACION_CLIENTEValue write SetPOBLACION_CLIENTEValue; + property POBLACION_CLIENTEIsNull: Boolean read GetPOBLACION_CLIENTEIsNull write SetPOBLACION_CLIENTEIsNull; + property CODIGO_POSTAL_CLIENTE: String read GetCODIGO_POSTAL_CLIENTEValue write SetCODIGO_POSTAL_CLIENTEValue; + property CODIGO_POSTAL_CLIENTEIsNull: Boolean read GetCODIGO_POSTAL_CLIENTEIsNull write SetCODIGO_POSTAL_CLIENTEIsNull; + property PROVINCIA_CLIENTE: String read GetPROVINCIA_CLIENTEValue write SetPROVINCIA_CLIENTEValue; + property PROVINCIA_CLIENTEIsNull: Boolean read GetPROVINCIA_CLIENTEIsNull write SetPROVINCIA_CLIENTEIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IPagosCliente } + IPagosCliente = interface(IDAStronglyTypedDataTable) + ['{B9F92CCE-2ADD-4B5F-82AF-CEEA1C8B10EC}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_RECIBOValue: Integer; + procedure SetID_RECIBOValue(const aValue: Integer); + function GetID_RECIBOIsNull: Boolean; + procedure SetID_RECIBOIsNull(const aValue: Boolean); + function GetTIPOValue: String; + procedure SetTIPOValue(const aValue: String); + function GetTIPOIsNull: Boolean; + procedure SetTIPOIsNull(const aValue: Boolean); + function GetFECHA_PAGOValue: DateTime; + procedure SetFECHA_PAGOValue(const aValue: DateTime); + function GetFECHA_PAGOIsNull: Boolean; + procedure SetFECHA_PAGOIsNull(const aValue: Boolean); + function GetTITULARValue: String; + procedure SetTITULARValue(const aValue: String); + function GetTITULARIsNull: Boolean; + procedure SetTITULARIsNull(const aValue: Boolean); + function GetENTIDADValue: String; + procedure SetENTIDADValue(const aValue: String); + function GetENTIDADIsNull: Boolean; + procedure SetENTIDADIsNull(const aValue: Boolean); + function GetSUCURSALValue: String; + procedure SetSUCURSALValue(const aValue: String); + function GetSUCURSALIsNull: Boolean; + procedure SetSUCURSALIsNull(const aValue: Boolean); + function GetDCValue: String; + procedure SetDCValue(const aValue: String); + function GetDCIsNull: Boolean; + procedure SetDCIsNull(const aValue: Boolean); + function GetCUENTAValue: String; + procedure SetCUENTAValue(const aValue: String); + function GetCUENTAIsNull: Boolean; + procedure SetCUENTAIsNull(const aValue: Boolean); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_ALTAIsNull: Boolean; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONIsNull: Boolean; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetUSUARIOIsNull: Boolean; + procedure SetUSUARIOIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_RECIBO: Integer read GetID_RECIBOValue write SetID_RECIBOValue; + property ID_RECIBOIsNull: Boolean read GetID_RECIBOIsNull write SetID_RECIBOIsNull; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull: Boolean read GetTIPOIsNull write SetTIPOIsNull; + property FECHA_PAGO: DateTime read GetFECHA_PAGOValue write SetFECHA_PAGOValue; + property FECHA_PAGOIsNull: Boolean read GetFECHA_PAGOIsNull write SetFECHA_PAGOIsNull; + property TITULAR: String read GetTITULARValue write SetTITULARValue; + property TITULARIsNull: Boolean read GetTITULARIsNull write SetTITULARIsNull; + property ENTIDAD: String read GetENTIDADValue write SetENTIDADValue; + property ENTIDADIsNull: Boolean read GetENTIDADIsNull write SetENTIDADIsNull; + property SUCURSAL: String read GetSUCURSALValue write SetSUCURSALValue; + property SUCURSALIsNull: Boolean read GetSUCURSALIsNull write SetSUCURSALIsNull; + property DC: String read GetDCValue write SetDCValue; + property DCIsNull: Boolean read GetDCIsNull write SetDCIsNull; + property CUENTA: String read GetCUENTAValue write SetCUENTAValue; + property CUENTAIsNull: Boolean read GetCUENTAIsNull write SetCUENTAIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + end; + + { TPagosClienteDataTableRules } + TPagosClienteDataTableRules = class(TIntfObjectDADataTableRules, IPagosCliente) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_RECIBOValue: Integer; virtual; + procedure SetID_RECIBOValue(const aValue: Integer); virtual; + function GetID_RECIBOIsNull: Boolean; virtual; + procedure SetID_RECIBOIsNull(const aValue: Boolean); virtual; + function GetTIPOValue: String; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + function GetTIPOIsNull: Boolean; virtual; + procedure SetTIPOIsNull(const aValue: Boolean); virtual; + function GetFECHA_PAGOValue: DateTime; virtual; + procedure SetFECHA_PAGOValue(const aValue: DateTime); virtual; + function GetFECHA_PAGOIsNull: Boolean; virtual; + procedure SetFECHA_PAGOIsNull(const aValue: Boolean); virtual; + function GetTITULARValue: String; virtual; + procedure SetTITULARValue(const aValue: String); virtual; + function GetTITULARIsNull: Boolean; virtual; + procedure SetTITULARIsNull(const aValue: Boolean); virtual; + function GetENTIDADValue: String; virtual; + procedure SetENTIDADValue(const aValue: String); virtual; + function GetENTIDADIsNull: Boolean; virtual; + procedure SetENTIDADIsNull(const aValue: Boolean); virtual; + function GetSUCURSALValue: String; virtual; + procedure SetSUCURSALValue(const aValue: String); virtual; + function GetSUCURSALIsNull: Boolean; virtual; + procedure SetSUCURSALIsNull(const aValue: Boolean); virtual; + function GetDCValue: String; virtual; + procedure SetDCValue(const aValue: String); virtual; + function GetDCIsNull: Boolean; virtual; + procedure SetDCIsNull(const aValue: Boolean); virtual; + function GetCUENTAValue: String; virtual; + procedure SetCUENTAValue(const aValue: String); virtual; + function GetCUENTAIsNull: Boolean; virtual; + procedure SetCUENTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_RECIBO: Integer read GetID_RECIBOValue write SetID_RECIBOValue; + property ID_RECIBOIsNull: Boolean read GetID_RECIBOIsNull write SetID_RECIBOIsNull; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull: Boolean read GetTIPOIsNull write SetTIPOIsNull; + property FECHA_PAGO: DateTime read GetFECHA_PAGOValue write SetFECHA_PAGOValue; + property FECHA_PAGOIsNull: Boolean read GetFECHA_PAGOIsNull write SetFECHA_PAGOIsNull; + property TITULAR: String read GetTITULARValue write SetTITULARValue; + property TITULARIsNull: Boolean read GetTITULARIsNull write SetTITULARIsNull; + property ENTIDAD: String read GetENTIDADValue write SetENTIDADValue; + property ENTIDADIsNull: Boolean read GetENTIDADIsNull write SetENTIDADIsNull; + property SUCURSAL: String read GetSUCURSALValue write SetSUCURSALValue; + property SUCURSALIsNull: Boolean read GetSUCURSALIsNull write SetSUCURSALIsNull; + property DC: String read GetDCValue write SetDCValue; + property DCIsNull: Boolean read GetDCIsNull write SetDCIsNull; + property CUENTA: String read GetCUENTAValue write SetCUENTAValue; + property CUENTAIsNull: Boolean read GetCUENTAIsNull write SetCUENTAIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IRecibosCompensadosCli } + IRecibosCompensadosCli = interface(IDAStronglyTypedDataTable) + ['{A98A69F6-4C14-4B5D-A299-3FC51C52104B}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_RECIBO_COMPENSADOValue: Integer; + procedure SetID_RECIBO_COMPENSADOValue(const aValue: Integer); + function GetID_RECIBO_COMPENSADOIsNull: Boolean; + procedure SetID_RECIBO_COMPENSADOIsNull(const aValue: Boolean); + function GetREFERENCIA_REC_COMPENSADOValue: String; + procedure SetREFERENCIA_REC_COMPENSADOValue(const aValue: String); + function GetREFERENCIA_REC_COMPENSADOIsNull: Boolean; + procedure SetREFERENCIA_REC_COMPENSADOIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetSITUACIONValue: String; + procedure SetSITUACIONValue(const aValue: String); + function GetSITUACIONIsNull: Boolean; + procedure SetSITUACIONIsNull(const aValue: Boolean); + function GetID_FACTURAValue: Integer; + procedure SetID_FACTURAValue(const aValue: Integer); + function GetID_FACTURAIsNull: Boolean; + procedure SetID_FACTURAIsNull(const aValue: Boolean); + function GetID_REMESAValue: Integer; + procedure SetID_REMESAValue(const aValue: Integer); + function GetID_REMESAIsNull: Boolean; + procedure SetID_REMESAIsNull(const aValue: Boolean); + function GetREFERENCIA_REMESAValue: String; + procedure SetREFERENCIA_REMESAValue(const aValue: String); + function GetREFERENCIA_REMESAIsNull: Boolean; + procedure SetREFERENCIA_REMESAIsNull(const aValue: Boolean); + function GetFECHA_EMISIONValue: DateTime; + procedure SetFECHA_EMISIONValue(const aValue: DateTime); + function GetFECHA_EMISIONIsNull: Boolean; + procedure SetFECHA_EMISIONIsNull(const aValue: Boolean); + function GetFECHA_VENCIMIENTOValue: DateTime; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); + function GetFECHA_VENCIMIENTOIsNull: Boolean; + procedure SetFECHA_VENCIMIENTOIsNull(const aValue: Boolean); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetDESCRIPCIONIsNull: Boolean; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); + function GetOBSERVACIONESValue: String; + procedure SetOBSERVACIONESValue(const aValue: String); + function GetOBSERVACIONESIsNull: Boolean; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); + function GetIMPORTEValue: Currency; + procedure SetIMPORTEValue(const aValue: Currency); + function GetIMPORTEIsNull: Boolean; + procedure SetIMPORTEIsNull(const aValue: Boolean); + function GetOTROS_GASTOSValue: Currency; + procedure SetOTROS_GASTOSValue(const aValue: Currency); + function GetOTROS_GASTOSIsNull: Boolean; + procedure SetOTROS_GASTOSIsNull(const aValue: Boolean); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetIMPORTE_TOTALIsNull: Boolean; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); + function GetFECHA_FACTURAValue: DateTime; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); + function GetFECHA_FACTURAIsNull: Boolean; + procedure SetFECHA_FACTURAIsNull(const aValue: Boolean); + function GetFORMA_PAGO_FACTURAValue: String; + procedure SetFORMA_PAGO_FACTURAValue(const aValue: String); + function GetFORMA_PAGO_FACTURAIsNull: Boolean; + procedure SetFORMA_PAGO_FACTURAIsNull(const aValue: Boolean); + function GetIMPORTE_FACTURAValue: Currency; + procedure SetIMPORTE_FACTURAValue(const aValue: Currency); + function GetIMPORTE_FACTURAIsNull: Boolean; + procedure SetIMPORTE_FACTURAIsNull(const aValue: Boolean); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_EMPRESAIsNull: Boolean; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); + function GetDATOS_BANCARIOSValue: String; + procedure SetDATOS_BANCARIOSValue(const aValue: String); + function GetDATOS_BANCARIOSIsNull: Boolean; + procedure SetDATOS_BANCARIOSIsNull(const aValue: Boolean); + function GetID_CLIENTEValue: Integer; + procedure SetID_CLIENTEValue(const aValue: Integer); + function GetID_CLIENTEIsNull: Boolean; + procedure SetID_CLIENTEIsNull(const aValue: Boolean); + function GetNOMBRE_CLIENTEValue: String; + procedure SetNOMBRE_CLIENTEValue(const aValue: String); + function GetNOMBRE_CLIENTEIsNull: Boolean; + procedure SetNOMBRE_CLIENTEIsNull(const aValue: Boolean); + function GetNIF_CIF_CLIENTEValue: String; + procedure SetNIF_CIF_CLIENTEValue(const aValue: String); + function GetNIF_CIF_CLIENTEIsNull: Boolean; + procedure SetNIF_CIF_CLIENTEIsNull(const aValue: Boolean); + function GetCALLE_CLIENTEValue: String; + procedure SetCALLE_CLIENTEValue(const aValue: String); + function GetCALLE_CLIENTEIsNull: Boolean; + procedure SetCALLE_CLIENTEIsNull(const aValue: Boolean); + function GetPOBLACION_CLIENTEValue: String; + procedure SetPOBLACION_CLIENTEValue(const aValue: String); + function GetPOBLACION_CLIENTEIsNull: Boolean; + procedure SetPOBLACION_CLIENTEIsNull(const aValue: Boolean); + function GetCODIGO_POSTAL_CLIENTEValue: String; + procedure SetCODIGO_POSTAL_CLIENTEValue(const aValue: String); + function GetCODIGO_POSTAL_CLIENTEIsNull: Boolean; + procedure SetCODIGO_POSTAL_CLIENTEIsNull(const aValue: Boolean); + function GetPROVINCIA_CLIENTEValue: String; + procedure SetPROVINCIA_CLIENTEValue(const aValue: String); + function GetPROVINCIA_CLIENTEIsNull: Boolean; + procedure SetPROVINCIA_CLIENTEIsNull(const aValue: Boolean); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_ALTAIsNull: Boolean; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONIsNull: Boolean; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetUSUARIOIsNull: Boolean; + procedure SetUSUARIOIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_RECIBO_COMPENSADO: Integer read GetID_RECIBO_COMPENSADOValue write SetID_RECIBO_COMPENSADOValue; + property ID_RECIBO_COMPENSADOIsNull: Boolean read GetID_RECIBO_COMPENSADOIsNull write SetID_RECIBO_COMPENSADOIsNull; + property REFERENCIA_REC_COMPENSADO: String read GetREFERENCIA_REC_COMPENSADOValue write SetREFERENCIA_REC_COMPENSADOValue; + property REFERENCIA_REC_COMPENSADOIsNull: Boolean read GetREFERENCIA_REC_COMPENSADOIsNull write SetREFERENCIA_REC_COMPENSADOIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property SITUACIONIsNull: Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull: Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property ID_REMESA: Integer read GetID_REMESAValue write SetID_REMESAValue; + property ID_REMESAIsNull: Boolean read GetID_REMESAIsNull write SetID_REMESAIsNull; + property REFERENCIA_REMESA: String read GetREFERENCIA_REMESAValue write SetREFERENCIA_REMESAValue; + property REFERENCIA_REMESAIsNull: Boolean read GetREFERENCIA_REMESAIsNull write SetREFERENCIA_REMESAIsNull; + property FECHA_EMISION: DateTime read GetFECHA_EMISIONValue write SetFECHA_EMISIONValue; + property FECHA_EMISIONIsNull: Boolean read GetFECHA_EMISIONIsNull write SetFECHA_EMISIONIsNull; + property FECHA_VENCIMIENTO: DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + property FECHA_VENCIMIENTOIsNull: Boolean read GetFECHA_VENCIMIENTOIsNull write SetFECHA_VENCIMIENTOIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property OBSERVACIONES: String read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property OBSERVACIONESIsNull: Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property IMPORTE: Currency read GetIMPORTEValue write SetIMPORTEValue; + property IMPORTEIsNull: Boolean read GetIMPORTEIsNull write SetIMPORTEIsNull; + property OTROS_GASTOS: Currency read GetOTROS_GASTOSValue write SetOTROS_GASTOSValue; + property OTROS_GASTOSIsNull: Boolean read GetOTROS_GASTOSIsNull write SetOTROS_GASTOSIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property FECHA_FACTURA: DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property FECHA_FACTURAIsNull: Boolean read GetFECHA_FACTURAIsNull write SetFECHA_FACTURAIsNull; + property FORMA_PAGO_FACTURA: String read GetFORMA_PAGO_FACTURAValue write SetFORMA_PAGO_FACTURAValue; + property FORMA_PAGO_FACTURAIsNull: Boolean read GetFORMA_PAGO_FACTURAIsNull write SetFORMA_PAGO_FACTURAIsNull; + property IMPORTE_FACTURA: Currency read GetIMPORTE_FACTURAValue write SetIMPORTE_FACTURAValue; + property IMPORTE_FACTURAIsNull: Boolean read GetIMPORTE_FACTURAIsNull write SetIMPORTE_FACTURAIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property DATOS_BANCARIOS: String read GetDATOS_BANCARIOSValue write SetDATOS_BANCARIOSValue; + property DATOS_BANCARIOSIsNull: Boolean read GetDATOS_BANCARIOSIsNull write SetDATOS_BANCARIOSIsNull; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property ID_CLIENTEIsNull: Boolean read GetID_CLIENTEIsNull write SetID_CLIENTEIsNull; + property NOMBRE_CLIENTE: String read GetNOMBRE_CLIENTEValue write SetNOMBRE_CLIENTEValue; + property NOMBRE_CLIENTEIsNull: Boolean read GetNOMBRE_CLIENTEIsNull write SetNOMBRE_CLIENTEIsNull; + property NIF_CIF_CLIENTE: String read GetNIF_CIF_CLIENTEValue write SetNIF_CIF_CLIENTEValue; + property NIF_CIF_CLIENTEIsNull: Boolean read GetNIF_CIF_CLIENTEIsNull write SetNIF_CIF_CLIENTEIsNull; + property CALLE_CLIENTE: String read GetCALLE_CLIENTEValue write SetCALLE_CLIENTEValue; + property CALLE_CLIENTEIsNull: Boolean read GetCALLE_CLIENTEIsNull write SetCALLE_CLIENTEIsNull; + property POBLACION_CLIENTE: String read GetPOBLACION_CLIENTEValue write SetPOBLACION_CLIENTEValue; + property POBLACION_CLIENTEIsNull: Boolean read GetPOBLACION_CLIENTEIsNull write SetPOBLACION_CLIENTEIsNull; + property CODIGO_POSTAL_CLIENTE: String read GetCODIGO_POSTAL_CLIENTEValue write SetCODIGO_POSTAL_CLIENTEValue; + property CODIGO_POSTAL_CLIENTEIsNull: Boolean read GetCODIGO_POSTAL_CLIENTEIsNull write SetCODIGO_POSTAL_CLIENTEIsNull; + property PROVINCIA_CLIENTE: String read GetPROVINCIA_CLIENTEValue write SetPROVINCIA_CLIENTEValue; + property PROVINCIA_CLIENTEIsNull: Boolean read GetPROVINCIA_CLIENTEIsNull write SetPROVINCIA_CLIENTEIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + end; + + { TRecibosCompensadosCliDataTableRules } + TRecibosCompensadosCliDataTableRules = class(TIntfObjectDADataTableRules, IRecibosCompensadosCli) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_RECIBO_COMPENSADOValue: Integer; virtual; + procedure SetID_RECIBO_COMPENSADOValue(const aValue: Integer); virtual; + function GetID_RECIBO_COMPENSADOIsNull: Boolean; virtual; + procedure SetID_RECIBO_COMPENSADOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_REC_COMPENSADOValue: String; virtual; + procedure SetREFERENCIA_REC_COMPENSADOValue(const aValue: String); virtual; + function GetREFERENCIA_REC_COMPENSADOIsNull: Boolean; virtual; + procedure SetREFERENCIA_REC_COMPENSADOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetSITUACIONIsNull: Boolean; virtual; + procedure SetSITUACIONIsNull(const aValue: Boolean); virtual; + function GetID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetID_FACTURAIsNull: Boolean; virtual; + procedure SetID_FACTURAIsNull(const aValue: Boolean); virtual; + function GetID_REMESAValue: Integer; virtual; + procedure SetID_REMESAValue(const aValue: Integer); virtual; + function GetID_REMESAIsNull: Boolean; virtual; + procedure SetID_REMESAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_REMESAValue: String; virtual; + procedure SetREFERENCIA_REMESAValue(const aValue: String); virtual; + function GetREFERENCIA_REMESAIsNull: Boolean; virtual; + procedure SetREFERENCIA_REMESAIsNull(const aValue: Boolean); virtual; + function GetFECHA_EMISIONValue: DateTime; virtual; + procedure SetFECHA_EMISIONValue(const aValue: DateTime); virtual; + function GetFECHA_EMISIONIsNull: Boolean; virtual; + procedure SetFECHA_EMISIONIsNull(const aValue: Boolean); virtual; + function GetFECHA_VENCIMIENTOValue: DateTime; virtual; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); virtual; + function GetFECHA_VENCIMIENTOIsNull: Boolean; virtual; + procedure SetFECHA_VENCIMIENTOIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + function GetOBSERVACIONESValue: String; virtual; + procedure SetOBSERVACIONESValue(const aValue: String); virtual; + function GetOBSERVACIONESIsNull: Boolean; virtual; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); virtual; + function GetIMPORTEValue: Currency; virtual; + procedure SetIMPORTEValue(const aValue: Currency); virtual; + function GetIMPORTEIsNull: Boolean; virtual; + procedure SetIMPORTEIsNull(const aValue: Boolean); virtual; + function GetOTROS_GASTOSValue: Currency; virtual; + procedure SetOTROS_GASTOSValue(const aValue: Currency); virtual; + function GetOTROS_GASTOSIsNull: Boolean; virtual; + procedure SetOTROS_GASTOSIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetFECHA_FACTURAValue: DateTime; virtual; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); virtual; + function GetFECHA_FACTURAIsNull: Boolean; virtual; + procedure SetFECHA_FACTURAIsNull(const aValue: Boolean); virtual; + function GetFORMA_PAGO_FACTURAValue: String; virtual; + procedure SetFORMA_PAGO_FACTURAValue(const aValue: String); virtual; + function GetFORMA_PAGO_FACTURAIsNull: Boolean; virtual; + procedure SetFORMA_PAGO_FACTURAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_FACTURAValue: Currency; virtual; + procedure SetIMPORTE_FACTURAValue(const aValue: Currency); virtual; + function GetIMPORTE_FACTURAIsNull: Boolean; virtual; + procedure SetIMPORTE_FACTURAIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetDATOS_BANCARIOSValue: String; virtual; + procedure SetDATOS_BANCARIOSValue(const aValue: String); virtual; + function GetDATOS_BANCARIOSIsNull: Boolean; virtual; + procedure SetDATOS_BANCARIOSIsNull(const aValue: Boolean); virtual; + function GetID_CLIENTEValue: Integer; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + function GetID_CLIENTEIsNull: Boolean; virtual; + procedure SetID_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetNOMBRE_CLIENTEValue: String; virtual; + procedure SetNOMBRE_CLIENTEValue(const aValue: String); virtual; + function GetNOMBRE_CLIENTEIsNull: Boolean; virtual; + procedure SetNOMBRE_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetNIF_CIF_CLIENTEValue: String; virtual; + procedure SetNIF_CIF_CLIENTEValue(const aValue: String); virtual; + function GetNIF_CIF_CLIENTEIsNull: Boolean; virtual; + procedure SetNIF_CIF_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetCALLE_CLIENTEValue: String; virtual; + procedure SetCALLE_CLIENTEValue(const aValue: String); virtual; + function GetCALLE_CLIENTEIsNull: Boolean; virtual; + procedure SetCALLE_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetPOBLACION_CLIENTEValue: String; virtual; + procedure SetPOBLACION_CLIENTEValue(const aValue: String); virtual; + function GetPOBLACION_CLIENTEIsNull: Boolean; virtual; + procedure SetPOBLACION_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTAL_CLIENTEValue: String; virtual; + procedure SetCODIGO_POSTAL_CLIENTEValue(const aValue: String); virtual; + function GetCODIGO_POSTAL_CLIENTEIsNull: Boolean; virtual; + procedure SetCODIGO_POSTAL_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetPROVINCIA_CLIENTEValue: String; virtual; + procedure SetPROVINCIA_CLIENTEValue(const aValue: String); virtual; + function GetPROVINCIA_CLIENTEIsNull: Boolean; virtual; + procedure SetPROVINCIA_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_RECIBO_COMPENSADO: Integer read GetID_RECIBO_COMPENSADOValue write SetID_RECIBO_COMPENSADOValue; + property ID_RECIBO_COMPENSADOIsNull: Boolean read GetID_RECIBO_COMPENSADOIsNull write SetID_RECIBO_COMPENSADOIsNull; + property REFERENCIA_REC_COMPENSADO: String read GetREFERENCIA_REC_COMPENSADOValue write SetREFERENCIA_REC_COMPENSADOValue; + property REFERENCIA_REC_COMPENSADOIsNull: Boolean read GetREFERENCIA_REC_COMPENSADOIsNull write SetREFERENCIA_REC_COMPENSADOIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property SITUACIONIsNull: Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull: Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property ID_REMESA: Integer read GetID_REMESAValue write SetID_REMESAValue; + property ID_REMESAIsNull: Boolean read GetID_REMESAIsNull write SetID_REMESAIsNull; + property REFERENCIA_REMESA: String read GetREFERENCIA_REMESAValue write SetREFERENCIA_REMESAValue; + property REFERENCIA_REMESAIsNull: Boolean read GetREFERENCIA_REMESAIsNull write SetREFERENCIA_REMESAIsNull; + property FECHA_EMISION: DateTime read GetFECHA_EMISIONValue write SetFECHA_EMISIONValue; + property FECHA_EMISIONIsNull: Boolean read GetFECHA_EMISIONIsNull write SetFECHA_EMISIONIsNull; + property FECHA_VENCIMIENTO: DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + property FECHA_VENCIMIENTOIsNull: Boolean read GetFECHA_VENCIMIENTOIsNull write SetFECHA_VENCIMIENTOIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property OBSERVACIONES: String read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property OBSERVACIONESIsNull: Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property IMPORTE: Currency read GetIMPORTEValue write SetIMPORTEValue; + property IMPORTEIsNull: Boolean read GetIMPORTEIsNull write SetIMPORTEIsNull; + property OTROS_GASTOS: Currency read GetOTROS_GASTOSValue write SetOTROS_GASTOSValue; + property OTROS_GASTOSIsNull: Boolean read GetOTROS_GASTOSIsNull write SetOTROS_GASTOSIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property FECHA_FACTURA: DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property FECHA_FACTURAIsNull: Boolean read GetFECHA_FACTURAIsNull write SetFECHA_FACTURAIsNull; + property FORMA_PAGO_FACTURA: String read GetFORMA_PAGO_FACTURAValue write SetFORMA_PAGO_FACTURAValue; + property FORMA_PAGO_FACTURAIsNull: Boolean read GetFORMA_PAGO_FACTURAIsNull write SetFORMA_PAGO_FACTURAIsNull; + property IMPORTE_FACTURA: Currency read GetIMPORTE_FACTURAValue write SetIMPORTE_FACTURAValue; + property IMPORTE_FACTURAIsNull: Boolean read GetIMPORTE_FACTURAIsNull write SetIMPORTE_FACTURAIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property DATOS_BANCARIOS: String read GetDATOS_BANCARIOSValue write SetDATOS_BANCARIOSValue; + property DATOS_BANCARIOSIsNull: Boolean read GetDATOS_BANCARIOSIsNull write SetDATOS_BANCARIOSIsNull; + property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property ID_CLIENTEIsNull: Boolean read GetID_CLIENTEIsNull write SetID_CLIENTEIsNull; + property NOMBRE_CLIENTE: String read GetNOMBRE_CLIENTEValue write SetNOMBRE_CLIENTEValue; + property NOMBRE_CLIENTEIsNull: Boolean read GetNOMBRE_CLIENTEIsNull write SetNOMBRE_CLIENTEIsNull; + property NIF_CIF_CLIENTE: String read GetNIF_CIF_CLIENTEValue write SetNIF_CIF_CLIENTEValue; + property NIF_CIF_CLIENTEIsNull: Boolean read GetNIF_CIF_CLIENTEIsNull write SetNIF_CIF_CLIENTEIsNull; + property CALLE_CLIENTE: String read GetCALLE_CLIENTEValue write SetCALLE_CLIENTEValue; + property CALLE_CLIENTEIsNull: Boolean read GetCALLE_CLIENTEIsNull write SetCALLE_CLIENTEIsNull; + property POBLACION_CLIENTE: String read GetPOBLACION_CLIENTEValue write SetPOBLACION_CLIENTEValue; + property POBLACION_CLIENTEIsNull: Boolean read GetPOBLACION_CLIENTEIsNull write SetPOBLACION_CLIENTEIsNull; + property CODIGO_POSTAL_CLIENTE: String read GetCODIGO_POSTAL_CLIENTEValue write SetCODIGO_POSTAL_CLIENTEValue; + property CODIGO_POSTAL_CLIENTEIsNull: Boolean read GetCODIGO_POSTAL_CLIENTEIsNull write SetCODIGO_POSTAL_CLIENTEIsNull; + property PROVINCIA_CLIENTE: String read GetPROVINCIA_CLIENTEValue write SetPROVINCIA_CLIENTEValue; + property PROVINCIA_CLIENTEIsNull: Boolean read GetPROVINCIA_CLIENTEIsNull write SetPROVINCIA_CLIENTEIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants, uROBinaryHelpers; + +{ TListaAnosRecibosDataTableRules } +constructor TListaAnosRecibosDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TListaAnosRecibosDataTableRules.Destroy; +begin + inherited; +end; + +function TListaAnosRecibosDataTableRules.GetANOValue: String; +begin + result := DataTable.Fields[idx_ListaAnosRecibosANO].AsString; +end; + +procedure TListaAnosRecibosDataTableRules.SetANOValue(const aValue: String); +begin + DataTable.Fields[idx_ListaAnosRecibosANO].AsString := aValue; +end; + +function TListaAnosRecibosDataTableRules.GetANOIsNull: boolean; +begin + result := DataTable.Fields[idx_ListaAnosRecibosANO].IsNull; +end; + +procedure TListaAnosRecibosDataTableRules.SetANOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ListaAnosRecibosANO].AsVariant := Null; +end; + + +{ TRecibosClienteDataTableRules } +constructor TRecibosClienteDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TRecibosClienteDataTableRules.Destroy; +begin + inherited; +end; + +function TRecibosClienteDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_RecibosClienteID].AsInteger; +end; + +procedure TRecibosClienteDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_RecibosClienteID].AsInteger := aValue; +end; + +function TRecibosClienteDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosClienteID].IsNull; +end; + +procedure TRecibosClienteDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosClienteID].AsVariant := Null; +end; + +function TRecibosClienteDataTableRules.GetID_RECIBO_COMPENSADOValue: Integer; +begin + result := DataTable.Fields[idx_RecibosClienteID_RECIBO_COMPENSADO].AsInteger; +end; + +procedure TRecibosClienteDataTableRules.SetID_RECIBO_COMPENSADOValue(const aValue: Integer); +begin + DataTable.Fields[idx_RecibosClienteID_RECIBO_COMPENSADO].AsInteger := aValue; +end; + +function TRecibosClienteDataTableRules.GetID_RECIBO_COMPENSADOIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosClienteID_RECIBO_COMPENSADO].IsNull; +end; + +procedure TRecibosClienteDataTableRules.SetID_RECIBO_COMPENSADOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosClienteID_RECIBO_COMPENSADO].AsVariant := Null; +end; + +function TRecibosClienteDataTableRules.GetREFERENCIA_REC_COMPENSADOValue: String; +begin + result := DataTable.Fields[idx_RecibosClienteREFERENCIA_REC_COMPENSADO].AsString; +end; + +procedure TRecibosClienteDataTableRules.SetREFERENCIA_REC_COMPENSADOValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosClienteREFERENCIA_REC_COMPENSADO].AsString := aValue; +end; + +function TRecibosClienteDataTableRules.GetREFERENCIA_REC_COMPENSADOIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosClienteREFERENCIA_REC_COMPENSADO].IsNull; +end; + +procedure TRecibosClienteDataTableRules.SetREFERENCIA_REC_COMPENSADOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosClienteREFERENCIA_REC_COMPENSADO].AsVariant := Null; +end; + +function TRecibosClienteDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_RecibosClienteREFERENCIA].AsString; +end; + +procedure TRecibosClienteDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosClienteREFERENCIA].AsString := aValue; +end; + +function TRecibosClienteDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosClienteREFERENCIA].IsNull; +end; + +procedure TRecibosClienteDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosClienteREFERENCIA].AsVariant := Null; +end; + +function TRecibosClienteDataTableRules.GetSITUACIONValue: String; +begin + result := DataTable.Fields[idx_RecibosClienteSITUACION].AsString; +end; + +procedure TRecibosClienteDataTableRules.SetSITUACIONValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosClienteSITUACION].AsString := aValue; +end; + +function TRecibosClienteDataTableRules.GetSITUACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosClienteSITUACION].IsNull; +end; + +procedure TRecibosClienteDataTableRules.SetSITUACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosClienteSITUACION].AsVariant := Null; +end; + +function TRecibosClienteDataTableRules.GetID_FACTURAValue: Integer; +begin + result := DataTable.Fields[idx_RecibosClienteID_FACTURA].AsInteger; +end; + +procedure TRecibosClienteDataTableRules.SetID_FACTURAValue(const aValue: Integer); +begin + DataTable.Fields[idx_RecibosClienteID_FACTURA].AsInteger := aValue; +end; + +function TRecibosClienteDataTableRules.GetID_FACTURAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosClienteID_FACTURA].IsNull; +end; + +procedure TRecibosClienteDataTableRules.SetID_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosClienteID_FACTURA].AsVariant := Null; +end; + +function TRecibosClienteDataTableRules.GetID_REMESAValue: Integer; +begin + result := DataTable.Fields[idx_RecibosClienteID_REMESA].AsInteger; +end; + +procedure TRecibosClienteDataTableRules.SetID_REMESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_RecibosClienteID_REMESA].AsInteger := aValue; +end; + +function TRecibosClienteDataTableRules.GetID_REMESAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosClienteID_REMESA].IsNull; +end; + +procedure TRecibosClienteDataTableRules.SetID_REMESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosClienteID_REMESA].AsVariant := Null; +end; + +function TRecibosClienteDataTableRules.GetREFERENCIA_REMESAValue: String; +begin + result := DataTable.Fields[idx_RecibosClienteREFERENCIA_REMESA].AsString; +end; + +procedure TRecibosClienteDataTableRules.SetREFERENCIA_REMESAValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosClienteREFERENCIA_REMESA].AsString := aValue; +end; + +function TRecibosClienteDataTableRules.GetREFERENCIA_REMESAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosClienteREFERENCIA_REMESA].IsNull; +end; + +procedure TRecibosClienteDataTableRules.SetREFERENCIA_REMESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosClienteREFERENCIA_REMESA].AsVariant := Null; +end; + +function TRecibosClienteDataTableRules.GetFECHA_EMISIONValue: DateTime; +begin + result := DataTable.Fields[idx_RecibosClienteFECHA_EMISION].AsDateTime; +end; + +procedure TRecibosClienteDataTableRules.SetFECHA_EMISIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RecibosClienteFECHA_EMISION].AsDateTime := aValue; +end; + +function TRecibosClienteDataTableRules.GetFECHA_EMISIONIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosClienteFECHA_EMISION].IsNull; +end; + +procedure TRecibosClienteDataTableRules.SetFECHA_EMISIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosClienteFECHA_EMISION].AsVariant := Null; +end; + +function TRecibosClienteDataTableRules.GetFECHA_VENCIMIENTOValue: DateTime; +begin + result := DataTable.Fields[idx_RecibosClienteFECHA_VENCIMIENTO].AsDateTime; +end; + +procedure TRecibosClienteDataTableRules.SetFECHA_VENCIMIENTOValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RecibosClienteFECHA_VENCIMIENTO].AsDateTime := aValue; +end; + +function TRecibosClienteDataTableRules.GetFECHA_VENCIMIENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosClienteFECHA_VENCIMIENTO].IsNull; +end; + +procedure TRecibosClienteDataTableRules.SetFECHA_VENCIMIENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosClienteFECHA_VENCIMIENTO].AsVariant := Null; +end; + +function TRecibosClienteDataTableRules.GetDESCRIPCIONValue: String; +begin + result := DataTable.Fields[idx_RecibosClienteDESCRIPCION].AsString; +end; + +procedure TRecibosClienteDataTableRules.SetDESCRIPCIONValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosClienteDESCRIPCION].AsString := aValue; +end; + +function TRecibosClienteDataTableRules.GetDESCRIPCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosClienteDESCRIPCION].IsNull; +end; + +procedure TRecibosClienteDataTableRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosClienteDESCRIPCION].AsVariant := Null; +end; + +function TRecibosClienteDataTableRules.GetOBSERVACIONESValue: String; +begin + result := DataTable.Fields[idx_RecibosClienteOBSERVACIONES].AsString; +end; + +procedure TRecibosClienteDataTableRules.SetOBSERVACIONESValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosClienteOBSERVACIONES].AsString := aValue; +end; + +function TRecibosClienteDataTableRules.GetOBSERVACIONESIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosClienteOBSERVACIONES].IsNull; +end; + +procedure TRecibosClienteDataTableRules.SetOBSERVACIONESIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosClienteOBSERVACIONES].AsVariant := Null; +end; + +function TRecibosClienteDataTableRules.GetIMPORTEValue: Currency; +begin + result := DataTable.Fields[idx_RecibosClienteIMPORTE].AsCurrency; +end; + +procedure TRecibosClienteDataTableRules.SetIMPORTEValue(const aValue: Currency); +begin + DataTable.Fields[idx_RecibosClienteIMPORTE].AsCurrency := aValue; +end; + +function TRecibosClienteDataTableRules.GetIMPORTEIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosClienteIMPORTE].IsNull; +end; + +procedure TRecibosClienteDataTableRules.SetIMPORTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosClienteIMPORTE].AsVariant := Null; +end; + +function TRecibosClienteDataTableRules.GetOTROS_GASTOSValue: Currency; +begin + result := DataTable.Fields[idx_RecibosClienteOTROS_GASTOS].AsCurrency; +end; + +procedure TRecibosClienteDataTableRules.SetOTROS_GASTOSValue(const aValue: Currency); +begin + DataTable.Fields[idx_RecibosClienteOTROS_GASTOS].AsCurrency := aValue; +end; + +function TRecibosClienteDataTableRules.GetOTROS_GASTOSIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosClienteOTROS_GASTOS].IsNull; +end; + +procedure TRecibosClienteDataTableRules.SetOTROS_GASTOSIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosClienteOTROS_GASTOS].AsVariant := Null; +end; + +function TRecibosClienteDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_RecibosClienteIMPORTE_TOTAL].AsCurrency; +end; + +procedure TRecibosClienteDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_RecibosClienteIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TRecibosClienteDataTableRules.GetIMPORTE_TOTALIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosClienteIMPORTE_TOTAL].IsNull; +end; + +procedure TRecibosClienteDataTableRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosClienteIMPORTE_TOTAL].AsVariant := Null; +end; + +function TRecibosClienteDataTableRules.GetFECHA_FACTURAValue: DateTime; +begin + result := DataTable.Fields[idx_RecibosClienteFECHA_FACTURA].AsDateTime; +end; + +procedure TRecibosClienteDataTableRules.SetFECHA_FACTURAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RecibosClienteFECHA_FACTURA].AsDateTime := aValue; +end; + +function TRecibosClienteDataTableRules.GetFECHA_FACTURAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosClienteFECHA_FACTURA].IsNull; +end; + +procedure TRecibosClienteDataTableRules.SetFECHA_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosClienteFECHA_FACTURA].AsVariant := Null; +end; + +function TRecibosClienteDataTableRules.GetFORMA_PAGO_FACTURAValue: String; +begin + result := DataTable.Fields[idx_RecibosClienteFORMA_PAGO_FACTURA].AsString; +end; + +procedure TRecibosClienteDataTableRules.SetFORMA_PAGO_FACTURAValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosClienteFORMA_PAGO_FACTURA].AsString := aValue; +end; + +function TRecibosClienteDataTableRules.GetFORMA_PAGO_FACTURAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosClienteFORMA_PAGO_FACTURA].IsNull; +end; + +procedure TRecibosClienteDataTableRules.SetFORMA_PAGO_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosClienteFORMA_PAGO_FACTURA].AsVariant := Null; +end; + +function TRecibosClienteDataTableRules.GetIMPORTE_FACTURAValue: Currency; +begin + result := DataTable.Fields[idx_RecibosClienteIMPORTE_FACTURA].AsCurrency; +end; + +procedure TRecibosClienteDataTableRules.SetIMPORTE_FACTURAValue(const aValue: Currency); +begin + DataTable.Fields[idx_RecibosClienteIMPORTE_FACTURA].AsCurrency := aValue; +end; + +function TRecibosClienteDataTableRules.GetIMPORTE_FACTURAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosClienteIMPORTE_FACTURA].IsNull; +end; + +procedure TRecibosClienteDataTableRules.SetIMPORTE_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosClienteIMPORTE_FACTURA].AsVariant := Null; +end; + +function TRecibosClienteDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_RecibosClienteID_EMPRESA].AsInteger; +end; + +procedure TRecibosClienteDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_RecibosClienteID_EMPRESA].AsInteger := aValue; +end; + +function TRecibosClienteDataTableRules.GetID_EMPRESAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosClienteID_EMPRESA].IsNull; +end; + +procedure TRecibosClienteDataTableRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosClienteID_EMPRESA].AsVariant := Null; +end; + +function TRecibosClienteDataTableRules.GetDATOS_BANCARIOSValue: String; +begin + result := DataTable.Fields[idx_RecibosClienteDATOS_BANCARIOS].AsString; +end; + +procedure TRecibosClienteDataTableRules.SetDATOS_BANCARIOSValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosClienteDATOS_BANCARIOS].AsString := aValue; +end; + +function TRecibosClienteDataTableRules.GetDATOS_BANCARIOSIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosClienteDATOS_BANCARIOS].IsNull; +end; + +procedure TRecibosClienteDataTableRules.SetDATOS_BANCARIOSIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosClienteDATOS_BANCARIOS].AsVariant := Null; +end; + +function TRecibosClienteDataTableRules.GetID_CLIENTEValue: Integer; +begin + result := DataTable.Fields[idx_RecibosClienteID_CLIENTE].AsInteger; +end; + +procedure TRecibosClienteDataTableRules.SetID_CLIENTEValue(const aValue: Integer); +begin + DataTable.Fields[idx_RecibosClienteID_CLIENTE].AsInteger := aValue; +end; + +function TRecibosClienteDataTableRules.GetID_CLIENTEIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosClienteID_CLIENTE].IsNull; +end; + +procedure TRecibosClienteDataTableRules.SetID_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosClienteID_CLIENTE].AsVariant := Null; +end; + +function TRecibosClienteDataTableRules.GetNOMBRE_CLIENTEValue: String; +begin + result := DataTable.Fields[idx_RecibosClienteNOMBRE_CLIENTE].AsString; +end; + +procedure TRecibosClienteDataTableRules.SetNOMBRE_CLIENTEValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosClienteNOMBRE_CLIENTE].AsString := aValue; +end; + +function TRecibosClienteDataTableRules.GetNOMBRE_CLIENTEIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosClienteNOMBRE_CLIENTE].IsNull; +end; + +procedure TRecibosClienteDataTableRules.SetNOMBRE_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosClienteNOMBRE_CLIENTE].AsVariant := Null; +end; + +function TRecibosClienteDataTableRules.GetNIF_CIF_CLIENTEValue: String; +begin + result := DataTable.Fields[idx_RecibosClienteNIF_CIF_CLIENTE].AsString; +end; + +procedure TRecibosClienteDataTableRules.SetNIF_CIF_CLIENTEValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosClienteNIF_CIF_CLIENTE].AsString := aValue; +end; + +function TRecibosClienteDataTableRules.GetNIF_CIF_CLIENTEIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosClienteNIF_CIF_CLIENTE].IsNull; +end; + +procedure TRecibosClienteDataTableRules.SetNIF_CIF_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosClienteNIF_CIF_CLIENTE].AsVariant := Null; +end; + +function TRecibosClienteDataTableRules.GetCALLE_CLIENTEValue: String; +begin + result := DataTable.Fields[idx_RecibosClienteCALLE_CLIENTE].AsString; +end; + +procedure TRecibosClienteDataTableRules.SetCALLE_CLIENTEValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosClienteCALLE_CLIENTE].AsString := aValue; +end; + +function TRecibosClienteDataTableRules.GetCALLE_CLIENTEIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosClienteCALLE_CLIENTE].IsNull; +end; + +procedure TRecibosClienteDataTableRules.SetCALLE_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosClienteCALLE_CLIENTE].AsVariant := Null; +end; + +function TRecibosClienteDataTableRules.GetPOBLACION_CLIENTEValue: String; +begin + result := DataTable.Fields[idx_RecibosClientePOBLACION_CLIENTE].AsString; +end; + +procedure TRecibosClienteDataTableRules.SetPOBLACION_CLIENTEValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosClientePOBLACION_CLIENTE].AsString := aValue; +end; + +function TRecibosClienteDataTableRules.GetPOBLACION_CLIENTEIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosClientePOBLACION_CLIENTE].IsNull; +end; + +procedure TRecibosClienteDataTableRules.SetPOBLACION_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosClientePOBLACION_CLIENTE].AsVariant := Null; +end; + +function TRecibosClienteDataTableRules.GetCODIGO_POSTAL_CLIENTEValue: String; +begin + result := DataTable.Fields[idx_RecibosClienteCODIGO_POSTAL_CLIENTE].AsString; +end; + +procedure TRecibosClienteDataTableRules.SetCODIGO_POSTAL_CLIENTEValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosClienteCODIGO_POSTAL_CLIENTE].AsString := aValue; +end; + +function TRecibosClienteDataTableRules.GetCODIGO_POSTAL_CLIENTEIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosClienteCODIGO_POSTAL_CLIENTE].IsNull; +end; + +procedure TRecibosClienteDataTableRules.SetCODIGO_POSTAL_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosClienteCODIGO_POSTAL_CLIENTE].AsVariant := Null; +end; + +function TRecibosClienteDataTableRules.GetPROVINCIA_CLIENTEValue: String; +begin + result := DataTable.Fields[idx_RecibosClientePROVINCIA_CLIENTE].AsString; +end; + +procedure TRecibosClienteDataTableRules.SetPROVINCIA_CLIENTEValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosClientePROVINCIA_CLIENTE].AsString := aValue; +end; + +function TRecibosClienteDataTableRules.GetPROVINCIA_CLIENTEIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosClientePROVINCIA_CLIENTE].IsNull; +end; + +procedure TRecibosClienteDataTableRules.SetPROVINCIA_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosClientePROVINCIA_CLIENTE].AsVariant := Null; +end; + +function TRecibosClienteDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_RecibosClienteFECHA_ALTA].AsDateTime; +end; + +procedure TRecibosClienteDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RecibosClienteFECHA_ALTA].AsDateTime := aValue; +end; + +function TRecibosClienteDataTableRules.GetFECHA_ALTAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosClienteFECHA_ALTA].IsNull; +end; + +procedure TRecibosClienteDataTableRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosClienteFECHA_ALTA].AsVariant := Null; +end; + +function TRecibosClienteDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_RecibosClienteFECHA_MODIFICACION].AsDateTime; +end; + +procedure TRecibosClienteDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RecibosClienteFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TRecibosClienteDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosClienteFECHA_MODIFICACION].IsNull; +end; + +procedure TRecibosClienteDataTableRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosClienteFECHA_MODIFICACION].AsVariant := Null; +end; + +function TRecibosClienteDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_RecibosClienteUSUARIO].AsString; +end; + +procedure TRecibosClienteDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosClienteUSUARIO].AsString := aValue; +end; + +function TRecibosClienteDataTableRules.GetUSUARIOIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosClienteUSUARIO].IsNull; +end; + +procedure TRecibosClienteDataTableRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosClienteUSUARIO].AsVariant := Null; +end; + + +{ TPagosClienteDataTableRules } +constructor TPagosClienteDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TPagosClienteDataTableRules.Destroy; +begin + inherited; +end; + +function TPagosClienteDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_PagosClienteID].AsInteger; +end; + +procedure TPagosClienteDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_PagosClienteID].AsInteger := aValue; +end; + +function TPagosClienteDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_PagosClienteID].IsNull; +end; + +procedure TPagosClienteDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PagosClienteID].AsVariant := Null; +end; + +function TPagosClienteDataTableRules.GetID_RECIBOValue: Integer; +begin + result := DataTable.Fields[idx_PagosClienteID_RECIBO].AsInteger; +end; + +procedure TPagosClienteDataTableRules.SetID_RECIBOValue(const aValue: Integer); +begin + DataTable.Fields[idx_PagosClienteID_RECIBO].AsInteger := aValue; +end; + +function TPagosClienteDataTableRules.GetID_RECIBOIsNull: boolean; +begin + result := DataTable.Fields[idx_PagosClienteID_RECIBO].IsNull; +end; + +procedure TPagosClienteDataTableRules.SetID_RECIBOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PagosClienteID_RECIBO].AsVariant := Null; +end; + +function TPagosClienteDataTableRules.GetTIPOValue: String; +begin + result := DataTable.Fields[idx_PagosClienteTIPO].AsString; +end; + +procedure TPagosClienteDataTableRules.SetTIPOValue(const aValue: String); +begin + DataTable.Fields[idx_PagosClienteTIPO].AsString := aValue; +end; + +function TPagosClienteDataTableRules.GetTIPOIsNull: boolean; +begin + result := DataTable.Fields[idx_PagosClienteTIPO].IsNull; +end; + +procedure TPagosClienteDataTableRules.SetTIPOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PagosClienteTIPO].AsVariant := Null; +end; + +function TPagosClienteDataTableRules.GetFECHA_PAGOValue: DateTime; +begin + result := DataTable.Fields[idx_PagosClienteFECHA_PAGO].AsDateTime; +end; + +procedure TPagosClienteDataTableRules.SetFECHA_PAGOValue(const aValue: DateTime); +begin + DataTable.Fields[idx_PagosClienteFECHA_PAGO].AsDateTime := aValue; +end; + +function TPagosClienteDataTableRules.GetFECHA_PAGOIsNull: boolean; +begin + result := DataTable.Fields[idx_PagosClienteFECHA_PAGO].IsNull; +end; + +procedure TPagosClienteDataTableRules.SetFECHA_PAGOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PagosClienteFECHA_PAGO].AsVariant := Null; +end; + +function TPagosClienteDataTableRules.GetTITULARValue: String; +begin + result := DataTable.Fields[idx_PagosClienteTITULAR].AsString; +end; + +procedure TPagosClienteDataTableRules.SetTITULARValue(const aValue: String); +begin + DataTable.Fields[idx_PagosClienteTITULAR].AsString := aValue; +end; + +function TPagosClienteDataTableRules.GetTITULARIsNull: boolean; +begin + result := DataTable.Fields[idx_PagosClienteTITULAR].IsNull; +end; + +procedure TPagosClienteDataTableRules.SetTITULARIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PagosClienteTITULAR].AsVariant := Null; +end; + +function TPagosClienteDataTableRules.GetENTIDADValue: String; +begin + result := DataTable.Fields[idx_PagosClienteENTIDAD].AsString; +end; + +procedure TPagosClienteDataTableRules.SetENTIDADValue(const aValue: String); +begin + DataTable.Fields[idx_PagosClienteENTIDAD].AsString := aValue; +end; + +function TPagosClienteDataTableRules.GetENTIDADIsNull: boolean; +begin + result := DataTable.Fields[idx_PagosClienteENTIDAD].IsNull; +end; + +procedure TPagosClienteDataTableRules.SetENTIDADIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PagosClienteENTIDAD].AsVariant := Null; +end; + +function TPagosClienteDataTableRules.GetSUCURSALValue: String; +begin + result := DataTable.Fields[idx_PagosClienteSUCURSAL].AsString; +end; + +procedure TPagosClienteDataTableRules.SetSUCURSALValue(const aValue: String); +begin + DataTable.Fields[idx_PagosClienteSUCURSAL].AsString := aValue; +end; + +function TPagosClienteDataTableRules.GetSUCURSALIsNull: boolean; +begin + result := DataTable.Fields[idx_PagosClienteSUCURSAL].IsNull; +end; + +procedure TPagosClienteDataTableRules.SetSUCURSALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PagosClienteSUCURSAL].AsVariant := Null; +end; + +function TPagosClienteDataTableRules.GetDCValue: String; +begin + result := DataTable.Fields[idx_PagosClienteDC].AsString; +end; + +procedure TPagosClienteDataTableRules.SetDCValue(const aValue: String); +begin + DataTable.Fields[idx_PagosClienteDC].AsString := aValue; +end; + +function TPagosClienteDataTableRules.GetDCIsNull: boolean; +begin + result := DataTable.Fields[idx_PagosClienteDC].IsNull; +end; + +procedure TPagosClienteDataTableRules.SetDCIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PagosClienteDC].AsVariant := Null; +end; + +function TPagosClienteDataTableRules.GetCUENTAValue: String; +begin + result := DataTable.Fields[idx_PagosClienteCUENTA].AsString; +end; + +procedure TPagosClienteDataTableRules.SetCUENTAValue(const aValue: String); +begin + DataTable.Fields[idx_PagosClienteCUENTA].AsString := aValue; +end; + +function TPagosClienteDataTableRules.GetCUENTAIsNull: boolean; +begin + result := DataTable.Fields[idx_PagosClienteCUENTA].IsNull; +end; + +procedure TPagosClienteDataTableRules.SetCUENTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PagosClienteCUENTA].AsVariant := Null; +end; + +function TPagosClienteDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_PagosClienteFECHA_ALTA].AsDateTime; +end; + +procedure TPagosClienteDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_PagosClienteFECHA_ALTA].AsDateTime := aValue; +end; + +function TPagosClienteDataTableRules.GetFECHA_ALTAIsNull: boolean; +begin + result := DataTable.Fields[idx_PagosClienteFECHA_ALTA].IsNull; +end; + +procedure TPagosClienteDataTableRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PagosClienteFECHA_ALTA].AsVariant := Null; +end; + +function TPagosClienteDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_PagosClienteFECHA_MODIFICACION].AsDateTime; +end; + +procedure TPagosClienteDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_PagosClienteFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TPagosClienteDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_PagosClienteFECHA_MODIFICACION].IsNull; +end; + +procedure TPagosClienteDataTableRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PagosClienteFECHA_MODIFICACION].AsVariant := Null; +end; + +function TPagosClienteDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_PagosClienteUSUARIO].AsString; +end; + +procedure TPagosClienteDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_PagosClienteUSUARIO].AsString := aValue; +end; + +function TPagosClienteDataTableRules.GetUSUARIOIsNull: boolean; +begin + result := DataTable.Fields[idx_PagosClienteUSUARIO].IsNull; +end; + +procedure TPagosClienteDataTableRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PagosClienteUSUARIO].AsVariant := Null; +end; + + +{ TRecibosCompensadosCliDataTableRules } +constructor TRecibosCompensadosCliDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TRecibosCompensadosCliDataTableRules.Destroy; +begin + inherited; +end; + +function TRecibosCompensadosCliDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliID].AsInteger; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_RecibosCompensadosCliID].AsInteger := aValue; +end; + +function TRecibosCompensadosCliDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliID].IsNull; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosCliID].AsVariant := Null; +end; + +function TRecibosCompensadosCliDataTableRules.GetID_RECIBO_COMPENSADOValue: Integer; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliID_RECIBO_COMPENSADO].AsInteger; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetID_RECIBO_COMPENSADOValue(const aValue: Integer); +begin + DataTable.Fields[idx_RecibosCompensadosCliID_RECIBO_COMPENSADO].AsInteger := aValue; +end; + +function TRecibosCompensadosCliDataTableRules.GetID_RECIBO_COMPENSADOIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliID_RECIBO_COMPENSADO].IsNull; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetID_RECIBO_COMPENSADOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosCliID_RECIBO_COMPENSADO].AsVariant := Null; +end; + +function TRecibosCompensadosCliDataTableRules.GetREFERENCIA_REC_COMPENSADOValue: String; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliREFERENCIA_REC_COMPENSADO].AsString; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetREFERENCIA_REC_COMPENSADOValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCompensadosCliREFERENCIA_REC_COMPENSADO].AsString := aValue; +end; + +function TRecibosCompensadosCliDataTableRules.GetREFERENCIA_REC_COMPENSADOIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliREFERENCIA_REC_COMPENSADO].IsNull; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetREFERENCIA_REC_COMPENSADOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosCliREFERENCIA_REC_COMPENSADO].AsVariant := Null; +end; + +function TRecibosCompensadosCliDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliREFERENCIA].AsString; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCompensadosCliREFERENCIA].AsString := aValue; +end; + +function TRecibosCompensadosCliDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliREFERENCIA].IsNull; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosCliREFERENCIA].AsVariant := Null; +end; + +function TRecibosCompensadosCliDataTableRules.GetSITUACIONValue: String; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliSITUACION].AsString; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetSITUACIONValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCompensadosCliSITUACION].AsString := aValue; +end; + +function TRecibosCompensadosCliDataTableRules.GetSITUACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliSITUACION].IsNull; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetSITUACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosCliSITUACION].AsVariant := Null; +end; + +function TRecibosCompensadosCliDataTableRules.GetID_FACTURAValue: Integer; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliID_FACTURA].AsInteger; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetID_FACTURAValue(const aValue: Integer); +begin + DataTable.Fields[idx_RecibosCompensadosCliID_FACTURA].AsInteger := aValue; +end; + +function TRecibosCompensadosCliDataTableRules.GetID_FACTURAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliID_FACTURA].IsNull; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetID_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosCliID_FACTURA].AsVariant := Null; +end; + +function TRecibosCompensadosCliDataTableRules.GetID_REMESAValue: Integer; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliID_REMESA].AsInteger; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetID_REMESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_RecibosCompensadosCliID_REMESA].AsInteger := aValue; +end; + +function TRecibosCompensadosCliDataTableRules.GetID_REMESAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliID_REMESA].IsNull; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetID_REMESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosCliID_REMESA].AsVariant := Null; +end; + +function TRecibosCompensadosCliDataTableRules.GetREFERENCIA_REMESAValue: String; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliREFERENCIA_REMESA].AsString; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetREFERENCIA_REMESAValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCompensadosCliREFERENCIA_REMESA].AsString := aValue; +end; + +function TRecibosCompensadosCliDataTableRules.GetREFERENCIA_REMESAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliREFERENCIA_REMESA].IsNull; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetREFERENCIA_REMESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosCliREFERENCIA_REMESA].AsVariant := Null; +end; + +function TRecibosCompensadosCliDataTableRules.GetFECHA_EMISIONValue: DateTime; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliFECHA_EMISION].AsDateTime; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetFECHA_EMISIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RecibosCompensadosCliFECHA_EMISION].AsDateTime := aValue; +end; + +function TRecibosCompensadosCliDataTableRules.GetFECHA_EMISIONIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliFECHA_EMISION].IsNull; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetFECHA_EMISIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosCliFECHA_EMISION].AsVariant := Null; +end; + +function TRecibosCompensadosCliDataTableRules.GetFECHA_VENCIMIENTOValue: DateTime; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliFECHA_VENCIMIENTO].AsDateTime; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetFECHA_VENCIMIENTOValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RecibosCompensadosCliFECHA_VENCIMIENTO].AsDateTime := aValue; +end; + +function TRecibosCompensadosCliDataTableRules.GetFECHA_VENCIMIENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliFECHA_VENCIMIENTO].IsNull; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetFECHA_VENCIMIENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosCliFECHA_VENCIMIENTO].AsVariant := Null; +end; + +function TRecibosCompensadosCliDataTableRules.GetDESCRIPCIONValue: String; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliDESCRIPCION].AsString; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetDESCRIPCIONValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCompensadosCliDESCRIPCION].AsString := aValue; +end; + +function TRecibosCompensadosCliDataTableRules.GetDESCRIPCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliDESCRIPCION].IsNull; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosCliDESCRIPCION].AsVariant := Null; +end; + +function TRecibosCompensadosCliDataTableRules.GetOBSERVACIONESValue: String; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliOBSERVACIONES].AsString; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetOBSERVACIONESValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCompensadosCliOBSERVACIONES].AsString := aValue; +end; + +function TRecibosCompensadosCliDataTableRules.GetOBSERVACIONESIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliOBSERVACIONES].IsNull; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetOBSERVACIONESIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosCliOBSERVACIONES].AsVariant := Null; +end; + +function TRecibosCompensadosCliDataTableRules.GetIMPORTEValue: Currency; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliIMPORTE].AsCurrency; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetIMPORTEValue(const aValue: Currency); +begin + DataTable.Fields[idx_RecibosCompensadosCliIMPORTE].AsCurrency := aValue; +end; + +function TRecibosCompensadosCliDataTableRules.GetIMPORTEIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliIMPORTE].IsNull; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetIMPORTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosCliIMPORTE].AsVariant := Null; +end; + +function TRecibosCompensadosCliDataTableRules.GetOTROS_GASTOSValue: Currency; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliOTROS_GASTOS].AsCurrency; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetOTROS_GASTOSValue(const aValue: Currency); +begin + DataTable.Fields[idx_RecibosCompensadosCliOTROS_GASTOS].AsCurrency := aValue; +end; + +function TRecibosCompensadosCliDataTableRules.GetOTROS_GASTOSIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliOTROS_GASTOS].IsNull; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetOTROS_GASTOSIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosCliOTROS_GASTOS].AsVariant := Null; +end; + +function TRecibosCompensadosCliDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliIMPORTE_TOTAL].AsCurrency; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_RecibosCompensadosCliIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TRecibosCompensadosCliDataTableRules.GetIMPORTE_TOTALIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliIMPORTE_TOTAL].IsNull; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosCliIMPORTE_TOTAL].AsVariant := Null; +end; + +function TRecibosCompensadosCliDataTableRules.GetFECHA_FACTURAValue: DateTime; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliFECHA_FACTURA].AsDateTime; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetFECHA_FACTURAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RecibosCompensadosCliFECHA_FACTURA].AsDateTime := aValue; +end; + +function TRecibosCompensadosCliDataTableRules.GetFECHA_FACTURAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliFECHA_FACTURA].IsNull; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetFECHA_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosCliFECHA_FACTURA].AsVariant := Null; +end; + +function TRecibosCompensadosCliDataTableRules.GetFORMA_PAGO_FACTURAValue: String; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliFORMA_PAGO_FACTURA].AsString; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetFORMA_PAGO_FACTURAValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCompensadosCliFORMA_PAGO_FACTURA].AsString := aValue; +end; + +function TRecibosCompensadosCliDataTableRules.GetFORMA_PAGO_FACTURAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliFORMA_PAGO_FACTURA].IsNull; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetFORMA_PAGO_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosCliFORMA_PAGO_FACTURA].AsVariant := Null; +end; + +function TRecibosCompensadosCliDataTableRules.GetIMPORTE_FACTURAValue: Currency; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliIMPORTE_FACTURA].AsCurrency; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetIMPORTE_FACTURAValue(const aValue: Currency); +begin + DataTable.Fields[idx_RecibosCompensadosCliIMPORTE_FACTURA].AsCurrency := aValue; +end; + +function TRecibosCompensadosCliDataTableRules.GetIMPORTE_FACTURAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliIMPORTE_FACTURA].IsNull; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetIMPORTE_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosCliIMPORTE_FACTURA].AsVariant := Null; +end; + +function TRecibosCompensadosCliDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliID_EMPRESA].AsInteger; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_RecibosCompensadosCliID_EMPRESA].AsInteger := aValue; +end; + +function TRecibosCompensadosCliDataTableRules.GetID_EMPRESAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliID_EMPRESA].IsNull; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosCliID_EMPRESA].AsVariant := Null; +end; + +function TRecibosCompensadosCliDataTableRules.GetDATOS_BANCARIOSValue: String; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliDATOS_BANCARIOS].AsString; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetDATOS_BANCARIOSValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCompensadosCliDATOS_BANCARIOS].AsString := aValue; +end; + +function TRecibosCompensadosCliDataTableRules.GetDATOS_BANCARIOSIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliDATOS_BANCARIOS].IsNull; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetDATOS_BANCARIOSIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosCliDATOS_BANCARIOS].AsVariant := Null; +end; + +function TRecibosCompensadosCliDataTableRules.GetID_CLIENTEValue: Integer; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliID_CLIENTE].AsInteger; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetID_CLIENTEValue(const aValue: Integer); +begin + DataTable.Fields[idx_RecibosCompensadosCliID_CLIENTE].AsInteger := aValue; +end; + +function TRecibosCompensadosCliDataTableRules.GetID_CLIENTEIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliID_CLIENTE].IsNull; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetID_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosCliID_CLIENTE].AsVariant := Null; +end; + +function TRecibosCompensadosCliDataTableRules.GetNOMBRE_CLIENTEValue: String; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliNOMBRE_CLIENTE].AsString; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetNOMBRE_CLIENTEValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCompensadosCliNOMBRE_CLIENTE].AsString := aValue; +end; + +function TRecibosCompensadosCliDataTableRules.GetNOMBRE_CLIENTEIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliNOMBRE_CLIENTE].IsNull; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetNOMBRE_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosCliNOMBRE_CLIENTE].AsVariant := Null; +end; + +function TRecibosCompensadosCliDataTableRules.GetNIF_CIF_CLIENTEValue: String; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliNIF_CIF_CLIENTE].AsString; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetNIF_CIF_CLIENTEValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCompensadosCliNIF_CIF_CLIENTE].AsString := aValue; +end; + +function TRecibosCompensadosCliDataTableRules.GetNIF_CIF_CLIENTEIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliNIF_CIF_CLIENTE].IsNull; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetNIF_CIF_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosCliNIF_CIF_CLIENTE].AsVariant := Null; +end; + +function TRecibosCompensadosCliDataTableRules.GetCALLE_CLIENTEValue: String; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliCALLE_CLIENTE].AsString; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetCALLE_CLIENTEValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCompensadosCliCALLE_CLIENTE].AsString := aValue; +end; + +function TRecibosCompensadosCliDataTableRules.GetCALLE_CLIENTEIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliCALLE_CLIENTE].IsNull; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetCALLE_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosCliCALLE_CLIENTE].AsVariant := Null; +end; + +function TRecibosCompensadosCliDataTableRules.GetPOBLACION_CLIENTEValue: String; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliPOBLACION_CLIENTE].AsString; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetPOBLACION_CLIENTEValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCompensadosCliPOBLACION_CLIENTE].AsString := aValue; +end; + +function TRecibosCompensadosCliDataTableRules.GetPOBLACION_CLIENTEIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliPOBLACION_CLIENTE].IsNull; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetPOBLACION_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosCliPOBLACION_CLIENTE].AsVariant := Null; +end; + +function TRecibosCompensadosCliDataTableRules.GetCODIGO_POSTAL_CLIENTEValue: String; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliCODIGO_POSTAL_CLIENTE].AsString; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetCODIGO_POSTAL_CLIENTEValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCompensadosCliCODIGO_POSTAL_CLIENTE].AsString := aValue; +end; + +function TRecibosCompensadosCliDataTableRules.GetCODIGO_POSTAL_CLIENTEIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliCODIGO_POSTAL_CLIENTE].IsNull; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetCODIGO_POSTAL_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosCliCODIGO_POSTAL_CLIENTE].AsVariant := Null; +end; + +function TRecibosCompensadosCliDataTableRules.GetPROVINCIA_CLIENTEValue: String; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliPROVINCIA_CLIENTE].AsString; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetPROVINCIA_CLIENTEValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCompensadosCliPROVINCIA_CLIENTE].AsString := aValue; +end; + +function TRecibosCompensadosCliDataTableRules.GetPROVINCIA_CLIENTEIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliPROVINCIA_CLIENTE].IsNull; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetPROVINCIA_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosCliPROVINCIA_CLIENTE].AsVariant := Null; +end; + +function TRecibosCompensadosCliDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliFECHA_ALTA].AsDateTime; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RecibosCompensadosCliFECHA_ALTA].AsDateTime := aValue; +end; + +function TRecibosCompensadosCliDataTableRules.GetFECHA_ALTAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliFECHA_ALTA].IsNull; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosCliFECHA_ALTA].AsVariant := Null; +end; + +function TRecibosCompensadosCliDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliFECHA_MODIFICACION].AsDateTime; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RecibosCompensadosCliFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TRecibosCompensadosCliDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliFECHA_MODIFICACION].IsNull; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosCliFECHA_MODIFICACION].AsVariant := Null; +end; + +function TRecibosCompensadosCliDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliUSUARIO].AsString; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCompensadosCliUSUARIO].AsString := aValue; +end; + +function TRecibosCompensadosCliDataTableRules.GetUSUARIOIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosCliUSUARIO].IsNull; +end; + +procedure TRecibosCompensadosCliDataTableRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosCliUSUARIO].AsVariant := Null; +end; + + +initialization + RegisterDataTableRules(RID_ListaAnosRecibos, TListaAnosRecibosDataTableRules); + RegisterDataTableRules(RID_RecibosCliente, TRecibosClienteDataTableRules); + RegisterDataTableRules(RID_PagosCliente, TPagosClienteDataTableRules); + RegisterDataTableRules(RID_RecibosCompensadosCli, TRecibosCompensadosCliDataTableRules); + +end. diff --git a/Source/Modulos/Recibos de cliente/Model/schRecibosClienteServer_Intf.dcu b/Source/Modulos/Recibos de cliente/Model/schRecibosClienteServer_Intf.dcu new file mode 100644 index 0000000..9c2a194 Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Model/schRecibosClienteServer_Intf.dcu differ diff --git a/Source/Modulos/Recibos de cliente/Model/schRecibosClienteServer_Intf.pas b/Source/Modulos/Recibos de cliente/Model/schRecibosClienteServer_Intf.pas new file mode 100644 index 0000000..4ece97d --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Model/schRecibosClienteServer_Intf.pas @@ -0,0 +1,3304 @@ +unit schRecibosClienteServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schRecibosClienteClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_ListaAnosRecibosDelta = '{C6F18E23-8B34-474E-BBB0-C5F929DD22BC}'; + RID_RecibosClienteDelta = '{271FBB55-92A8-42B7-96C9-15A5404D6869}'; + RID_PagosClienteDelta = '{7DA5462C-B7F5-4D2E-BD81-2BFCAD69EA92}'; + RID_RecibosCompensadosCliDelta = '{A670E8DA-B3CC-4578-A8DB-6F00B3230751}'; + +type + { IListaAnosRecibosDelta } + IListaAnosRecibosDelta = interface(IListaAnosRecibos) + ['{C6F18E23-8B34-474E-BBB0-C5F929DD22BC}'] + { Property getters and setters } + function GetOldANOValue : String; + + { Properties } + property OldANO : String read GetOldANOValue; + end; + + { TListaAnosRecibosBusinessProcessorRules } + TListaAnosRecibosBusinessProcessorRules = class(TDABusinessProcessorRules, IListaAnosRecibos, IListaAnosRecibosDelta) + private + protected + { Property getters and setters } + function GetANOValue: String; virtual; + function GetANOIsNull: Boolean; virtual; + function GetOldANOValue: String; virtual; + function GetOldANOIsNull: Boolean; virtual; + procedure SetANOValue(const aValue: String); virtual; + procedure SetANOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ANO : String read GetANOValue write SetANOValue; + property ANOIsNull : Boolean read GetANOIsNull write SetANOIsNull; + property OldANO : String read GetOldANOValue; + property OldANOIsNull : Boolean read GetOldANOIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IRecibosClienteDelta } + IRecibosClienteDelta = interface(IRecibosCliente) + ['{271FBB55-92A8-42B7-96C9-15A5404D6869}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_RECIBO_COMPENSADOValue : Integer; + function GetOldREFERENCIA_REC_COMPENSADOValue : String; + function GetOldREFERENCIAValue : String; + function GetOldSITUACIONValue : String; + function GetOldID_FACTURAValue : Integer; + function GetOldID_REMESAValue : Integer; + function GetOldREFERENCIA_REMESAValue : String; + function GetOldFECHA_EMISIONValue : DateTime; + function GetOldFECHA_VENCIMIENTOValue : DateTime; + function GetOldDESCRIPCIONValue : String; + function GetOldOBSERVACIONESValue : String; + function GetOldIMPORTEValue : Currency; + function GetOldOTROS_GASTOSValue : Currency; + function GetOldIMPORTE_TOTALValue : Currency; + function GetOldFECHA_FACTURAValue : DateTime; + function GetOldFORMA_PAGO_FACTURAValue : String; + function GetOldIMPORTE_FACTURAValue : Currency; + function GetOldID_EMPRESAValue : Integer; + function GetOldDATOS_BANCARIOSValue : String; + function GetOldID_CLIENTEValue : Integer; + function GetOldNOMBRE_CLIENTEValue : String; + function GetOldNIF_CIF_CLIENTEValue : String; + function GetOldCALLE_CLIENTEValue : String; + function GetOldPOBLACION_CLIENTEValue : String; + function GetOldCODIGO_POSTAL_CLIENTEValue : String; + function GetOldPROVINCIA_CLIENTEValue : String; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + function GetOldUSUARIOValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_RECIBO_COMPENSADO : Integer read GetOldID_RECIBO_COMPENSADOValue; + property OldREFERENCIA_REC_COMPENSADO : String read GetOldREFERENCIA_REC_COMPENSADOValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldSITUACION : String read GetOldSITUACIONValue; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property OldID_REMESA : Integer read GetOldID_REMESAValue; + property OldREFERENCIA_REMESA : String read GetOldREFERENCIA_REMESAValue; + property OldFECHA_EMISION : DateTime read GetOldFECHA_EMISIONValue; + property OldFECHA_VENCIMIENTO : DateTime read GetOldFECHA_VENCIMIENTOValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldOBSERVACIONES : String read GetOldOBSERVACIONESValue; + property OldIMPORTE : Currency read GetOldIMPORTEValue; + property OldOTROS_GASTOS : Currency read GetOldOTROS_GASTOSValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldFECHA_FACTURA : DateTime read GetOldFECHA_FACTURAValue; + property OldFORMA_PAGO_FACTURA : String read GetOldFORMA_PAGO_FACTURAValue; + property OldIMPORTE_FACTURA : Currency read GetOldIMPORTE_FACTURAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldDATOS_BANCARIOS : String read GetOldDATOS_BANCARIOSValue; + property OldID_CLIENTE : Integer read GetOldID_CLIENTEValue; + property OldNOMBRE_CLIENTE : String read GetOldNOMBRE_CLIENTEValue; + property OldNIF_CIF_CLIENTE : String read GetOldNIF_CIF_CLIENTEValue; + property OldCALLE_CLIENTE : String read GetOldCALLE_CLIENTEValue; + property OldPOBLACION_CLIENTE : String read GetOldPOBLACION_CLIENTEValue; + property OldCODIGO_POSTAL_CLIENTE : String read GetOldCODIGO_POSTAL_CLIENTEValue; + property OldPROVINCIA_CLIENTE : String read GetOldPROVINCIA_CLIENTEValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + end; + + { TRecibosClienteBusinessProcessorRules } + TRecibosClienteBusinessProcessorRules = class(TDABusinessProcessorRules, IRecibosCliente, IRecibosClienteDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_RECIBO_COMPENSADOValue: Integer; virtual; + function GetID_RECIBO_COMPENSADOIsNull: Boolean; virtual; + function GetOldID_RECIBO_COMPENSADOValue: Integer; virtual; + function GetOldID_RECIBO_COMPENSADOIsNull: Boolean; virtual; + procedure SetID_RECIBO_COMPENSADOValue(const aValue: Integer); virtual; + procedure SetID_RECIBO_COMPENSADOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_REC_COMPENSADOValue: String; virtual; + function GetREFERENCIA_REC_COMPENSADOIsNull: Boolean; virtual; + function GetOldREFERENCIA_REC_COMPENSADOValue: String; virtual; + function GetOldREFERENCIA_REC_COMPENSADOIsNull: Boolean; virtual; + procedure SetREFERENCIA_REC_COMPENSADOValue(const aValue: String); virtual; + procedure SetREFERENCIA_REC_COMPENSADOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetSITUACIONValue: String; virtual; + function GetSITUACIONIsNull: Boolean; virtual; + function GetOldSITUACIONValue: String; virtual; + function GetOldSITUACIONIsNull: Boolean; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + procedure SetSITUACIONIsNull(const aValue: Boolean); virtual; + function GetID_FACTURAValue: Integer; virtual; + function GetID_FACTURAIsNull: Boolean; virtual; + function GetOldID_FACTURAValue: Integer; virtual; + function GetOldID_FACTURAIsNull: Boolean; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + procedure SetID_FACTURAIsNull(const aValue: Boolean); virtual; + function GetID_REMESAValue: Integer; virtual; + function GetID_REMESAIsNull: Boolean; virtual; + function GetOldID_REMESAValue: Integer; virtual; + function GetOldID_REMESAIsNull: Boolean; virtual; + procedure SetID_REMESAValue(const aValue: Integer); virtual; + procedure SetID_REMESAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_REMESAValue: String; virtual; + function GetREFERENCIA_REMESAIsNull: Boolean; virtual; + function GetOldREFERENCIA_REMESAValue: String; virtual; + function GetOldREFERENCIA_REMESAIsNull: Boolean; virtual; + procedure SetREFERENCIA_REMESAValue(const aValue: String); virtual; + procedure SetREFERENCIA_REMESAIsNull(const aValue: Boolean); virtual; + function GetFECHA_EMISIONValue: DateTime; virtual; + function GetFECHA_EMISIONIsNull: Boolean; virtual; + function GetOldFECHA_EMISIONValue: DateTime; virtual; + function GetOldFECHA_EMISIONIsNull: Boolean; virtual; + procedure SetFECHA_EMISIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_EMISIONIsNull(const aValue: Boolean); virtual; + function GetFECHA_VENCIMIENTOValue: DateTime; virtual; + function GetFECHA_VENCIMIENTOIsNull: Boolean; virtual; + function GetOldFECHA_VENCIMIENTOValue: DateTime; virtual; + function GetOldFECHA_VENCIMIENTOIsNull: Boolean; virtual; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); virtual; + procedure SetFECHA_VENCIMIENTOIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + function GetOBSERVACIONESValue: String; virtual; + function GetOBSERVACIONESIsNull: Boolean; virtual; + function GetOldOBSERVACIONESValue: String; virtual; + function GetOldOBSERVACIONESIsNull: Boolean; virtual; + procedure SetOBSERVACIONESValue(const aValue: String); virtual; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); virtual; + function GetIMPORTEValue: Currency; virtual; + function GetIMPORTEIsNull: Boolean; virtual; + function GetOldIMPORTEValue: Currency; virtual; + function GetOldIMPORTEIsNull: Boolean; virtual; + procedure SetIMPORTEValue(const aValue: Currency); virtual; + procedure SetIMPORTEIsNull(const aValue: Boolean); virtual; + function GetOTROS_GASTOSValue: Currency; virtual; + function GetOTROS_GASTOSIsNull: Boolean; virtual; + function GetOldOTROS_GASTOSValue: Currency; virtual; + function GetOldOTROS_GASTOSIsNull: Boolean; virtual; + procedure SetOTROS_GASTOSValue(const aValue: Currency); virtual; + procedure SetOTROS_GASTOSIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetFECHA_FACTURAValue: DateTime; virtual; + function GetFECHA_FACTURAIsNull: Boolean; virtual; + function GetOldFECHA_FACTURAValue: DateTime; virtual; + function GetOldFECHA_FACTURAIsNull: Boolean; virtual; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); virtual; + procedure SetFECHA_FACTURAIsNull(const aValue: Boolean); virtual; + function GetFORMA_PAGO_FACTURAValue: String; virtual; + function GetFORMA_PAGO_FACTURAIsNull: Boolean; virtual; + function GetOldFORMA_PAGO_FACTURAValue: String; virtual; + function GetOldFORMA_PAGO_FACTURAIsNull: Boolean; virtual; + procedure SetFORMA_PAGO_FACTURAValue(const aValue: String); virtual; + procedure SetFORMA_PAGO_FACTURAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_FACTURAValue: Currency; virtual; + function GetIMPORTE_FACTURAIsNull: Boolean; virtual; + function GetOldIMPORTE_FACTURAValue: Currency; virtual; + function GetOldIMPORTE_FACTURAIsNull: Boolean; virtual; + procedure SetIMPORTE_FACTURAValue(const aValue: Currency); virtual; + procedure SetIMPORTE_FACTURAIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetDATOS_BANCARIOSValue: String; virtual; + function GetDATOS_BANCARIOSIsNull: Boolean; virtual; + function GetOldDATOS_BANCARIOSValue: String; virtual; + function GetOldDATOS_BANCARIOSIsNull: Boolean; virtual; + procedure SetDATOS_BANCARIOSValue(const aValue: String); virtual; + procedure SetDATOS_BANCARIOSIsNull(const aValue: Boolean); virtual; + function GetID_CLIENTEValue: Integer; virtual; + function GetID_CLIENTEIsNull: Boolean; virtual; + function GetOldID_CLIENTEValue: Integer; virtual; + function GetOldID_CLIENTEIsNull: Boolean; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + procedure SetID_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetNOMBRE_CLIENTEValue: String; virtual; + function GetNOMBRE_CLIENTEIsNull: Boolean; virtual; + function GetOldNOMBRE_CLIENTEValue: String; virtual; + function GetOldNOMBRE_CLIENTEIsNull: Boolean; virtual; + procedure SetNOMBRE_CLIENTEValue(const aValue: String); virtual; + procedure SetNOMBRE_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetNIF_CIF_CLIENTEValue: String; virtual; + function GetNIF_CIF_CLIENTEIsNull: Boolean; virtual; + function GetOldNIF_CIF_CLIENTEValue: String; virtual; + function GetOldNIF_CIF_CLIENTEIsNull: Boolean; virtual; + procedure SetNIF_CIF_CLIENTEValue(const aValue: String); virtual; + procedure SetNIF_CIF_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetCALLE_CLIENTEValue: String; virtual; + function GetCALLE_CLIENTEIsNull: Boolean; virtual; + function GetOldCALLE_CLIENTEValue: String; virtual; + function GetOldCALLE_CLIENTEIsNull: Boolean; virtual; + procedure SetCALLE_CLIENTEValue(const aValue: String); virtual; + procedure SetCALLE_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetPOBLACION_CLIENTEValue: String; virtual; + function GetPOBLACION_CLIENTEIsNull: Boolean; virtual; + function GetOldPOBLACION_CLIENTEValue: String; virtual; + function GetOldPOBLACION_CLIENTEIsNull: Boolean; virtual; + procedure SetPOBLACION_CLIENTEValue(const aValue: String); virtual; + procedure SetPOBLACION_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTAL_CLIENTEValue: String; virtual; + function GetCODIGO_POSTAL_CLIENTEIsNull: Boolean; virtual; + function GetOldCODIGO_POSTAL_CLIENTEValue: String; virtual; + function GetOldCODIGO_POSTAL_CLIENTEIsNull: Boolean; virtual; + procedure SetCODIGO_POSTAL_CLIENTEValue(const aValue: String); virtual; + procedure SetCODIGO_POSTAL_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetPROVINCIA_CLIENTEValue: String; virtual; + function GetPROVINCIA_CLIENTEIsNull: Boolean; virtual; + function GetOldPROVINCIA_CLIENTEValue: String; virtual; + function GetOldPROVINCIA_CLIENTEIsNull: Boolean; virtual; + procedure SetPROVINCIA_CLIENTEValue(const aValue: String); virtual; + procedure SetPROVINCIA_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + function GetUSUARIOIsNull: Boolean; virtual; + function GetOldUSUARIOValue: String; virtual; + function GetOldUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_RECIBO_COMPENSADO : Integer read GetID_RECIBO_COMPENSADOValue write SetID_RECIBO_COMPENSADOValue; + property ID_RECIBO_COMPENSADOIsNull : Boolean read GetID_RECIBO_COMPENSADOIsNull write SetID_RECIBO_COMPENSADOIsNull; + property OldID_RECIBO_COMPENSADO : Integer read GetOldID_RECIBO_COMPENSADOValue; + property OldID_RECIBO_COMPENSADOIsNull : Boolean read GetOldID_RECIBO_COMPENSADOIsNull; + property REFERENCIA_REC_COMPENSADO : String read GetREFERENCIA_REC_COMPENSADOValue write SetREFERENCIA_REC_COMPENSADOValue; + property REFERENCIA_REC_COMPENSADOIsNull : Boolean read GetREFERENCIA_REC_COMPENSADOIsNull write SetREFERENCIA_REC_COMPENSADOIsNull; + property OldREFERENCIA_REC_COMPENSADO : String read GetOldREFERENCIA_REC_COMPENSADOValue; + property OldREFERENCIA_REC_COMPENSADOIsNull : Boolean read GetOldREFERENCIA_REC_COMPENSADOIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue; + property SITUACIONIsNull : Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull; + property OldSITUACION : String read GetOldSITUACIONValue; + property OldSITUACIONIsNull : Boolean read GetOldSITUACIONIsNull; + property ID_FACTURA : Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull : Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property OldID_FACTURAIsNull : Boolean read GetOldID_FACTURAIsNull; + property ID_REMESA : Integer read GetID_REMESAValue write SetID_REMESAValue; + property ID_REMESAIsNull : Boolean read GetID_REMESAIsNull write SetID_REMESAIsNull; + property OldID_REMESA : Integer read GetOldID_REMESAValue; + property OldID_REMESAIsNull : Boolean read GetOldID_REMESAIsNull; + property REFERENCIA_REMESA : String read GetREFERENCIA_REMESAValue write SetREFERENCIA_REMESAValue; + property REFERENCIA_REMESAIsNull : Boolean read GetREFERENCIA_REMESAIsNull write SetREFERENCIA_REMESAIsNull; + property OldREFERENCIA_REMESA : String read GetOldREFERENCIA_REMESAValue; + property OldREFERENCIA_REMESAIsNull : Boolean read GetOldREFERENCIA_REMESAIsNull; + property FECHA_EMISION : DateTime read GetFECHA_EMISIONValue write SetFECHA_EMISIONValue; + property FECHA_EMISIONIsNull : Boolean read GetFECHA_EMISIONIsNull write SetFECHA_EMISIONIsNull; + property OldFECHA_EMISION : DateTime read GetOldFECHA_EMISIONValue; + property OldFECHA_EMISIONIsNull : Boolean read GetOldFECHA_EMISIONIsNull; + property FECHA_VENCIMIENTO : DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + property FECHA_VENCIMIENTOIsNull : Boolean read GetFECHA_VENCIMIENTOIsNull write SetFECHA_VENCIMIENTOIsNull; + property OldFECHA_VENCIMIENTO : DateTime read GetOldFECHA_VENCIMIENTOValue; + property OldFECHA_VENCIMIENTOIsNull : Boolean read GetOldFECHA_VENCIMIENTOIsNull; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull : Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldDESCRIPCIONIsNull : Boolean read GetOldDESCRIPCIONIsNull; + property OBSERVACIONES : String read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property OBSERVACIONESIsNull : Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property OldOBSERVACIONES : String read GetOldOBSERVACIONESValue; + property OldOBSERVACIONESIsNull : Boolean read GetOldOBSERVACIONESIsNull; + property IMPORTE : Currency read GetIMPORTEValue write SetIMPORTEValue; + property IMPORTEIsNull : Boolean read GetIMPORTEIsNull write SetIMPORTEIsNull; + property OldIMPORTE : Currency read GetOldIMPORTEValue; + property OldIMPORTEIsNull : Boolean read GetOldIMPORTEIsNull; + property OTROS_GASTOS : Currency read GetOTROS_GASTOSValue write SetOTROS_GASTOSValue; + property OTROS_GASTOSIsNull : Boolean read GetOTROS_GASTOSIsNull write SetOTROS_GASTOSIsNull; + property OldOTROS_GASTOS : Currency read GetOldOTROS_GASTOSValue; + property OldOTROS_GASTOSIsNull : Boolean read GetOldOTROS_GASTOSIsNull; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull : Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldIMPORTE_TOTALIsNull : Boolean read GetOldIMPORTE_TOTALIsNull; + property FECHA_FACTURA : DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property FECHA_FACTURAIsNull : Boolean read GetFECHA_FACTURAIsNull write SetFECHA_FACTURAIsNull; + property OldFECHA_FACTURA : DateTime read GetOldFECHA_FACTURAValue; + property OldFECHA_FACTURAIsNull : Boolean read GetOldFECHA_FACTURAIsNull; + property FORMA_PAGO_FACTURA : String read GetFORMA_PAGO_FACTURAValue write SetFORMA_PAGO_FACTURAValue; + property FORMA_PAGO_FACTURAIsNull : Boolean read GetFORMA_PAGO_FACTURAIsNull write SetFORMA_PAGO_FACTURAIsNull; + property OldFORMA_PAGO_FACTURA : String read GetOldFORMA_PAGO_FACTURAValue; + property OldFORMA_PAGO_FACTURAIsNull : Boolean read GetOldFORMA_PAGO_FACTURAIsNull; + property IMPORTE_FACTURA : Currency read GetIMPORTE_FACTURAValue write SetIMPORTE_FACTURAValue; + property IMPORTE_FACTURAIsNull : Boolean read GetIMPORTE_FACTURAIsNull write SetIMPORTE_FACTURAIsNull; + property OldIMPORTE_FACTURA : Currency read GetOldIMPORTE_FACTURAValue; + property OldIMPORTE_FACTURAIsNull : Boolean read GetOldIMPORTE_FACTURAIsNull; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull : Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_EMPRESAIsNull : Boolean read GetOldID_EMPRESAIsNull; + property DATOS_BANCARIOS : String read GetDATOS_BANCARIOSValue write SetDATOS_BANCARIOSValue; + property DATOS_BANCARIOSIsNull : Boolean read GetDATOS_BANCARIOSIsNull write SetDATOS_BANCARIOSIsNull; + property OldDATOS_BANCARIOS : String read GetOldDATOS_BANCARIOSValue; + property OldDATOS_BANCARIOSIsNull : Boolean read GetOldDATOS_BANCARIOSIsNull; + property ID_CLIENTE : Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property ID_CLIENTEIsNull : Boolean read GetID_CLIENTEIsNull write SetID_CLIENTEIsNull; + property OldID_CLIENTE : Integer read GetOldID_CLIENTEValue; + property OldID_CLIENTEIsNull : Boolean read GetOldID_CLIENTEIsNull; + property NOMBRE_CLIENTE : String read GetNOMBRE_CLIENTEValue write SetNOMBRE_CLIENTEValue; + property NOMBRE_CLIENTEIsNull : Boolean read GetNOMBRE_CLIENTEIsNull write SetNOMBRE_CLIENTEIsNull; + property OldNOMBRE_CLIENTE : String read GetOldNOMBRE_CLIENTEValue; + property OldNOMBRE_CLIENTEIsNull : Boolean read GetOldNOMBRE_CLIENTEIsNull; + property NIF_CIF_CLIENTE : String read GetNIF_CIF_CLIENTEValue write SetNIF_CIF_CLIENTEValue; + property NIF_CIF_CLIENTEIsNull : Boolean read GetNIF_CIF_CLIENTEIsNull write SetNIF_CIF_CLIENTEIsNull; + property OldNIF_CIF_CLIENTE : String read GetOldNIF_CIF_CLIENTEValue; + property OldNIF_CIF_CLIENTEIsNull : Boolean read GetOldNIF_CIF_CLIENTEIsNull; + property CALLE_CLIENTE : String read GetCALLE_CLIENTEValue write SetCALLE_CLIENTEValue; + property CALLE_CLIENTEIsNull : Boolean read GetCALLE_CLIENTEIsNull write SetCALLE_CLIENTEIsNull; + property OldCALLE_CLIENTE : String read GetOldCALLE_CLIENTEValue; + property OldCALLE_CLIENTEIsNull : Boolean read GetOldCALLE_CLIENTEIsNull; + property POBLACION_CLIENTE : String read GetPOBLACION_CLIENTEValue write SetPOBLACION_CLIENTEValue; + property POBLACION_CLIENTEIsNull : Boolean read GetPOBLACION_CLIENTEIsNull write SetPOBLACION_CLIENTEIsNull; + property OldPOBLACION_CLIENTE : String read GetOldPOBLACION_CLIENTEValue; + property OldPOBLACION_CLIENTEIsNull : Boolean read GetOldPOBLACION_CLIENTEIsNull; + property CODIGO_POSTAL_CLIENTE : String read GetCODIGO_POSTAL_CLIENTEValue write SetCODIGO_POSTAL_CLIENTEValue; + property CODIGO_POSTAL_CLIENTEIsNull : Boolean read GetCODIGO_POSTAL_CLIENTEIsNull write SetCODIGO_POSTAL_CLIENTEIsNull; + property OldCODIGO_POSTAL_CLIENTE : String read GetOldCODIGO_POSTAL_CLIENTEValue; + property OldCODIGO_POSTAL_CLIENTEIsNull : Boolean read GetOldCODIGO_POSTAL_CLIENTEIsNull; + property PROVINCIA_CLIENTE : String read GetPROVINCIA_CLIENTEValue write SetPROVINCIA_CLIENTEValue; + property PROVINCIA_CLIENTEIsNull : Boolean read GetPROVINCIA_CLIENTEIsNull write SetPROVINCIA_CLIENTEIsNull; + property OldPROVINCIA_CLIENTE : String read GetOldPROVINCIA_CLIENTEValue; + property OldPROVINCIA_CLIENTEIsNull : Boolean read GetOldPROVINCIA_CLIENTEIsNull; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull : Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_ALTAIsNull : Boolean read GetOldFECHA_ALTAIsNull; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull : Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldUSUARIOIsNull : Boolean read GetOldUSUARIOIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IPagosClienteDelta } + IPagosClienteDelta = interface(IPagosCliente) + ['{7DA5462C-B7F5-4D2E-BD81-2BFCAD69EA92}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_RECIBOValue : Integer; + function GetOldTIPOValue : String; + function GetOldFECHA_PAGOValue : DateTime; + function GetOldTITULARValue : String; + function GetOldENTIDADValue : String; + function GetOldSUCURSALValue : String; + function GetOldDCValue : String; + function GetOldCUENTAValue : String; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + function GetOldUSUARIOValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_RECIBO : Integer read GetOldID_RECIBOValue; + property OldTIPO : String read GetOldTIPOValue; + property OldFECHA_PAGO : DateTime read GetOldFECHA_PAGOValue; + property OldTITULAR : String read GetOldTITULARValue; + property OldENTIDAD : String read GetOldENTIDADValue; + property OldSUCURSAL : String read GetOldSUCURSALValue; + property OldDC : String read GetOldDCValue; + property OldCUENTA : String read GetOldCUENTAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + end; + + { TPagosClienteBusinessProcessorRules } + TPagosClienteBusinessProcessorRules = class(TDABusinessProcessorRules, IPagosCliente, IPagosClienteDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_RECIBOValue: Integer; virtual; + function GetID_RECIBOIsNull: Boolean; virtual; + function GetOldID_RECIBOValue: Integer; virtual; + function GetOldID_RECIBOIsNull: Boolean; virtual; + procedure SetID_RECIBOValue(const aValue: Integer); virtual; + procedure SetID_RECIBOIsNull(const aValue: Boolean); virtual; + function GetTIPOValue: String; virtual; + function GetTIPOIsNull: Boolean; virtual; + function GetOldTIPOValue: String; virtual; + function GetOldTIPOIsNull: Boolean; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + procedure SetTIPOIsNull(const aValue: Boolean); virtual; + function GetFECHA_PAGOValue: DateTime; virtual; + function GetFECHA_PAGOIsNull: Boolean; virtual; + function GetOldFECHA_PAGOValue: DateTime; virtual; + function GetOldFECHA_PAGOIsNull: Boolean; virtual; + procedure SetFECHA_PAGOValue(const aValue: DateTime); virtual; + procedure SetFECHA_PAGOIsNull(const aValue: Boolean); virtual; + function GetTITULARValue: String; virtual; + function GetTITULARIsNull: Boolean; virtual; + function GetOldTITULARValue: String; virtual; + function GetOldTITULARIsNull: Boolean; virtual; + procedure SetTITULARValue(const aValue: String); virtual; + procedure SetTITULARIsNull(const aValue: Boolean); virtual; + function GetENTIDADValue: String; virtual; + function GetENTIDADIsNull: Boolean; virtual; + function GetOldENTIDADValue: String; virtual; + function GetOldENTIDADIsNull: Boolean; virtual; + procedure SetENTIDADValue(const aValue: String); virtual; + procedure SetENTIDADIsNull(const aValue: Boolean); virtual; + function GetSUCURSALValue: String; virtual; + function GetSUCURSALIsNull: Boolean; virtual; + function GetOldSUCURSALValue: String; virtual; + function GetOldSUCURSALIsNull: Boolean; virtual; + procedure SetSUCURSALValue(const aValue: String); virtual; + procedure SetSUCURSALIsNull(const aValue: Boolean); virtual; + function GetDCValue: String; virtual; + function GetDCIsNull: Boolean; virtual; + function GetOldDCValue: String; virtual; + function GetOldDCIsNull: Boolean; virtual; + procedure SetDCValue(const aValue: String); virtual; + procedure SetDCIsNull(const aValue: Boolean); virtual; + function GetCUENTAValue: String; virtual; + function GetCUENTAIsNull: Boolean; virtual; + function GetOldCUENTAValue: String; virtual; + function GetOldCUENTAIsNull: Boolean; virtual; + procedure SetCUENTAValue(const aValue: String); virtual; + procedure SetCUENTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + function GetUSUARIOIsNull: Boolean; virtual; + function GetOldUSUARIOValue: String; virtual; + function GetOldUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_RECIBO : Integer read GetID_RECIBOValue write SetID_RECIBOValue; + property ID_RECIBOIsNull : Boolean read GetID_RECIBOIsNull write SetID_RECIBOIsNull; + property OldID_RECIBO : Integer read GetOldID_RECIBOValue; + property OldID_RECIBOIsNull : Boolean read GetOldID_RECIBOIsNull; + property TIPO : String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull : Boolean read GetTIPOIsNull write SetTIPOIsNull; + property OldTIPO : String read GetOldTIPOValue; + property OldTIPOIsNull : Boolean read GetOldTIPOIsNull; + property FECHA_PAGO : DateTime read GetFECHA_PAGOValue write SetFECHA_PAGOValue; + property FECHA_PAGOIsNull : Boolean read GetFECHA_PAGOIsNull write SetFECHA_PAGOIsNull; + property OldFECHA_PAGO : DateTime read GetOldFECHA_PAGOValue; + property OldFECHA_PAGOIsNull : Boolean read GetOldFECHA_PAGOIsNull; + property TITULAR : String read GetTITULARValue write SetTITULARValue; + property TITULARIsNull : Boolean read GetTITULARIsNull write SetTITULARIsNull; + property OldTITULAR : String read GetOldTITULARValue; + property OldTITULARIsNull : Boolean read GetOldTITULARIsNull; + property ENTIDAD : String read GetENTIDADValue write SetENTIDADValue; + property ENTIDADIsNull : Boolean read GetENTIDADIsNull write SetENTIDADIsNull; + property OldENTIDAD : String read GetOldENTIDADValue; + property OldENTIDADIsNull : Boolean read GetOldENTIDADIsNull; + property SUCURSAL : String read GetSUCURSALValue write SetSUCURSALValue; + property SUCURSALIsNull : Boolean read GetSUCURSALIsNull write SetSUCURSALIsNull; + property OldSUCURSAL : String read GetOldSUCURSALValue; + property OldSUCURSALIsNull : Boolean read GetOldSUCURSALIsNull; + property DC : String read GetDCValue write SetDCValue; + property DCIsNull : Boolean read GetDCIsNull write SetDCIsNull; + property OldDC : String read GetOldDCValue; + property OldDCIsNull : Boolean read GetOldDCIsNull; + property CUENTA : String read GetCUENTAValue write SetCUENTAValue; + property CUENTAIsNull : Boolean read GetCUENTAIsNull write SetCUENTAIsNull; + property OldCUENTA : String read GetOldCUENTAValue; + property OldCUENTAIsNull : Boolean read GetOldCUENTAIsNull; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull : Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_ALTAIsNull : Boolean read GetOldFECHA_ALTAIsNull; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull : Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldUSUARIOIsNull : Boolean read GetOldUSUARIOIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IRecibosCompensadosCliDelta } + IRecibosCompensadosCliDelta = interface(IRecibosCompensadosCli) + ['{A670E8DA-B3CC-4578-A8DB-6F00B3230751}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_RECIBO_COMPENSADOValue : Integer; + function GetOldREFERENCIA_REC_COMPENSADOValue : String; + function GetOldREFERENCIAValue : String; + function GetOldSITUACIONValue : String; + function GetOldID_FACTURAValue : Integer; + function GetOldID_REMESAValue : Integer; + function GetOldREFERENCIA_REMESAValue : String; + function GetOldFECHA_EMISIONValue : DateTime; + function GetOldFECHA_VENCIMIENTOValue : DateTime; + function GetOldDESCRIPCIONValue : String; + function GetOldOBSERVACIONESValue : String; + function GetOldIMPORTEValue : Currency; + function GetOldOTROS_GASTOSValue : Currency; + function GetOldIMPORTE_TOTALValue : Currency; + function GetOldFECHA_FACTURAValue : DateTime; + function GetOldFORMA_PAGO_FACTURAValue : String; + function GetOldIMPORTE_FACTURAValue : Currency; + function GetOldID_EMPRESAValue : Integer; + function GetOldDATOS_BANCARIOSValue : String; + function GetOldID_CLIENTEValue : Integer; + function GetOldNOMBRE_CLIENTEValue : String; + function GetOldNIF_CIF_CLIENTEValue : String; + function GetOldCALLE_CLIENTEValue : String; + function GetOldPOBLACION_CLIENTEValue : String; + function GetOldCODIGO_POSTAL_CLIENTEValue : String; + function GetOldPROVINCIA_CLIENTEValue : String; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + function GetOldUSUARIOValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_RECIBO_COMPENSADO : Integer read GetOldID_RECIBO_COMPENSADOValue; + property OldREFERENCIA_REC_COMPENSADO : String read GetOldREFERENCIA_REC_COMPENSADOValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldSITUACION : String read GetOldSITUACIONValue; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property OldID_REMESA : Integer read GetOldID_REMESAValue; + property OldREFERENCIA_REMESA : String read GetOldREFERENCIA_REMESAValue; + property OldFECHA_EMISION : DateTime read GetOldFECHA_EMISIONValue; + property OldFECHA_VENCIMIENTO : DateTime read GetOldFECHA_VENCIMIENTOValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldOBSERVACIONES : String read GetOldOBSERVACIONESValue; + property OldIMPORTE : Currency read GetOldIMPORTEValue; + property OldOTROS_GASTOS : Currency read GetOldOTROS_GASTOSValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldFECHA_FACTURA : DateTime read GetOldFECHA_FACTURAValue; + property OldFORMA_PAGO_FACTURA : String read GetOldFORMA_PAGO_FACTURAValue; + property OldIMPORTE_FACTURA : Currency read GetOldIMPORTE_FACTURAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldDATOS_BANCARIOS : String read GetOldDATOS_BANCARIOSValue; + property OldID_CLIENTE : Integer read GetOldID_CLIENTEValue; + property OldNOMBRE_CLIENTE : String read GetOldNOMBRE_CLIENTEValue; + property OldNIF_CIF_CLIENTE : String read GetOldNIF_CIF_CLIENTEValue; + property OldCALLE_CLIENTE : String read GetOldCALLE_CLIENTEValue; + property OldPOBLACION_CLIENTE : String read GetOldPOBLACION_CLIENTEValue; + property OldCODIGO_POSTAL_CLIENTE : String read GetOldCODIGO_POSTAL_CLIENTEValue; + property OldPROVINCIA_CLIENTE : String read GetOldPROVINCIA_CLIENTEValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + end; + + { TRecibosCompensadosCliBusinessProcessorRules } + TRecibosCompensadosCliBusinessProcessorRules = class(TDABusinessProcessorRules, IRecibosCompensadosCli, IRecibosCompensadosCliDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_RECIBO_COMPENSADOValue: Integer; virtual; + function GetID_RECIBO_COMPENSADOIsNull: Boolean; virtual; + function GetOldID_RECIBO_COMPENSADOValue: Integer; virtual; + function GetOldID_RECIBO_COMPENSADOIsNull: Boolean; virtual; + procedure SetID_RECIBO_COMPENSADOValue(const aValue: Integer); virtual; + procedure SetID_RECIBO_COMPENSADOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_REC_COMPENSADOValue: String; virtual; + function GetREFERENCIA_REC_COMPENSADOIsNull: Boolean; virtual; + function GetOldREFERENCIA_REC_COMPENSADOValue: String; virtual; + function GetOldREFERENCIA_REC_COMPENSADOIsNull: Boolean; virtual; + procedure SetREFERENCIA_REC_COMPENSADOValue(const aValue: String); virtual; + procedure SetREFERENCIA_REC_COMPENSADOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetSITUACIONValue: String; virtual; + function GetSITUACIONIsNull: Boolean; virtual; + function GetOldSITUACIONValue: String; virtual; + function GetOldSITUACIONIsNull: Boolean; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + procedure SetSITUACIONIsNull(const aValue: Boolean); virtual; + function GetID_FACTURAValue: Integer; virtual; + function GetID_FACTURAIsNull: Boolean; virtual; + function GetOldID_FACTURAValue: Integer; virtual; + function GetOldID_FACTURAIsNull: Boolean; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + procedure SetID_FACTURAIsNull(const aValue: Boolean); virtual; + function GetID_REMESAValue: Integer; virtual; + function GetID_REMESAIsNull: Boolean; virtual; + function GetOldID_REMESAValue: Integer; virtual; + function GetOldID_REMESAIsNull: Boolean; virtual; + procedure SetID_REMESAValue(const aValue: Integer); virtual; + procedure SetID_REMESAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_REMESAValue: String; virtual; + function GetREFERENCIA_REMESAIsNull: Boolean; virtual; + function GetOldREFERENCIA_REMESAValue: String; virtual; + function GetOldREFERENCIA_REMESAIsNull: Boolean; virtual; + procedure SetREFERENCIA_REMESAValue(const aValue: String); virtual; + procedure SetREFERENCIA_REMESAIsNull(const aValue: Boolean); virtual; + function GetFECHA_EMISIONValue: DateTime; virtual; + function GetFECHA_EMISIONIsNull: Boolean; virtual; + function GetOldFECHA_EMISIONValue: DateTime; virtual; + function GetOldFECHA_EMISIONIsNull: Boolean; virtual; + procedure SetFECHA_EMISIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_EMISIONIsNull(const aValue: Boolean); virtual; + function GetFECHA_VENCIMIENTOValue: DateTime; virtual; + function GetFECHA_VENCIMIENTOIsNull: Boolean; virtual; + function GetOldFECHA_VENCIMIENTOValue: DateTime; virtual; + function GetOldFECHA_VENCIMIENTOIsNull: Boolean; virtual; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); virtual; + procedure SetFECHA_VENCIMIENTOIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + function GetOBSERVACIONESValue: String; virtual; + function GetOBSERVACIONESIsNull: Boolean; virtual; + function GetOldOBSERVACIONESValue: String; virtual; + function GetOldOBSERVACIONESIsNull: Boolean; virtual; + procedure SetOBSERVACIONESValue(const aValue: String); virtual; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); virtual; + function GetIMPORTEValue: Currency; virtual; + function GetIMPORTEIsNull: Boolean; virtual; + function GetOldIMPORTEValue: Currency; virtual; + function GetOldIMPORTEIsNull: Boolean; virtual; + procedure SetIMPORTEValue(const aValue: Currency); virtual; + procedure SetIMPORTEIsNull(const aValue: Boolean); virtual; + function GetOTROS_GASTOSValue: Currency; virtual; + function GetOTROS_GASTOSIsNull: Boolean; virtual; + function GetOldOTROS_GASTOSValue: Currency; virtual; + function GetOldOTROS_GASTOSIsNull: Boolean; virtual; + procedure SetOTROS_GASTOSValue(const aValue: Currency); virtual; + procedure SetOTROS_GASTOSIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetFECHA_FACTURAValue: DateTime; virtual; + function GetFECHA_FACTURAIsNull: Boolean; virtual; + function GetOldFECHA_FACTURAValue: DateTime; virtual; + function GetOldFECHA_FACTURAIsNull: Boolean; virtual; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); virtual; + procedure SetFECHA_FACTURAIsNull(const aValue: Boolean); virtual; + function GetFORMA_PAGO_FACTURAValue: String; virtual; + function GetFORMA_PAGO_FACTURAIsNull: Boolean; virtual; + function GetOldFORMA_PAGO_FACTURAValue: String; virtual; + function GetOldFORMA_PAGO_FACTURAIsNull: Boolean; virtual; + procedure SetFORMA_PAGO_FACTURAValue(const aValue: String); virtual; + procedure SetFORMA_PAGO_FACTURAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_FACTURAValue: Currency; virtual; + function GetIMPORTE_FACTURAIsNull: Boolean; virtual; + function GetOldIMPORTE_FACTURAValue: Currency; virtual; + function GetOldIMPORTE_FACTURAIsNull: Boolean; virtual; + procedure SetIMPORTE_FACTURAValue(const aValue: Currency); virtual; + procedure SetIMPORTE_FACTURAIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetDATOS_BANCARIOSValue: String; virtual; + function GetDATOS_BANCARIOSIsNull: Boolean; virtual; + function GetOldDATOS_BANCARIOSValue: String; virtual; + function GetOldDATOS_BANCARIOSIsNull: Boolean; virtual; + procedure SetDATOS_BANCARIOSValue(const aValue: String); virtual; + procedure SetDATOS_BANCARIOSIsNull(const aValue: Boolean); virtual; + function GetID_CLIENTEValue: Integer; virtual; + function GetID_CLIENTEIsNull: Boolean; virtual; + function GetOldID_CLIENTEValue: Integer; virtual; + function GetOldID_CLIENTEIsNull: Boolean; virtual; + procedure SetID_CLIENTEValue(const aValue: Integer); virtual; + procedure SetID_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetNOMBRE_CLIENTEValue: String; virtual; + function GetNOMBRE_CLIENTEIsNull: Boolean; virtual; + function GetOldNOMBRE_CLIENTEValue: String; virtual; + function GetOldNOMBRE_CLIENTEIsNull: Boolean; virtual; + procedure SetNOMBRE_CLIENTEValue(const aValue: String); virtual; + procedure SetNOMBRE_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetNIF_CIF_CLIENTEValue: String; virtual; + function GetNIF_CIF_CLIENTEIsNull: Boolean; virtual; + function GetOldNIF_CIF_CLIENTEValue: String; virtual; + function GetOldNIF_CIF_CLIENTEIsNull: Boolean; virtual; + procedure SetNIF_CIF_CLIENTEValue(const aValue: String); virtual; + procedure SetNIF_CIF_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetCALLE_CLIENTEValue: String; virtual; + function GetCALLE_CLIENTEIsNull: Boolean; virtual; + function GetOldCALLE_CLIENTEValue: String; virtual; + function GetOldCALLE_CLIENTEIsNull: Boolean; virtual; + procedure SetCALLE_CLIENTEValue(const aValue: String); virtual; + procedure SetCALLE_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetPOBLACION_CLIENTEValue: String; virtual; + function GetPOBLACION_CLIENTEIsNull: Boolean; virtual; + function GetOldPOBLACION_CLIENTEValue: String; virtual; + function GetOldPOBLACION_CLIENTEIsNull: Boolean; virtual; + procedure SetPOBLACION_CLIENTEValue(const aValue: String); virtual; + procedure SetPOBLACION_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTAL_CLIENTEValue: String; virtual; + function GetCODIGO_POSTAL_CLIENTEIsNull: Boolean; virtual; + function GetOldCODIGO_POSTAL_CLIENTEValue: String; virtual; + function GetOldCODIGO_POSTAL_CLIENTEIsNull: Boolean; virtual; + procedure SetCODIGO_POSTAL_CLIENTEValue(const aValue: String); virtual; + procedure SetCODIGO_POSTAL_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetPROVINCIA_CLIENTEValue: String; virtual; + function GetPROVINCIA_CLIENTEIsNull: Boolean; virtual; + function GetOldPROVINCIA_CLIENTEValue: String; virtual; + function GetOldPROVINCIA_CLIENTEIsNull: Boolean; virtual; + procedure SetPROVINCIA_CLIENTEValue(const aValue: String); virtual; + procedure SetPROVINCIA_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + function GetUSUARIOIsNull: Boolean; virtual; + function GetOldUSUARIOValue: String; virtual; + function GetOldUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_RECIBO_COMPENSADO : Integer read GetID_RECIBO_COMPENSADOValue write SetID_RECIBO_COMPENSADOValue; + property ID_RECIBO_COMPENSADOIsNull : Boolean read GetID_RECIBO_COMPENSADOIsNull write SetID_RECIBO_COMPENSADOIsNull; + property OldID_RECIBO_COMPENSADO : Integer read GetOldID_RECIBO_COMPENSADOValue; + property OldID_RECIBO_COMPENSADOIsNull : Boolean read GetOldID_RECIBO_COMPENSADOIsNull; + property REFERENCIA_REC_COMPENSADO : String read GetREFERENCIA_REC_COMPENSADOValue write SetREFERENCIA_REC_COMPENSADOValue; + property REFERENCIA_REC_COMPENSADOIsNull : Boolean read GetREFERENCIA_REC_COMPENSADOIsNull write SetREFERENCIA_REC_COMPENSADOIsNull; + property OldREFERENCIA_REC_COMPENSADO : String read GetOldREFERENCIA_REC_COMPENSADOValue; + property OldREFERENCIA_REC_COMPENSADOIsNull : Boolean read GetOldREFERENCIA_REC_COMPENSADOIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue; + property SITUACIONIsNull : Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull; + property OldSITUACION : String read GetOldSITUACIONValue; + property OldSITUACIONIsNull : Boolean read GetOldSITUACIONIsNull; + property ID_FACTURA : Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull : Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property OldID_FACTURAIsNull : Boolean read GetOldID_FACTURAIsNull; + property ID_REMESA : Integer read GetID_REMESAValue write SetID_REMESAValue; + property ID_REMESAIsNull : Boolean read GetID_REMESAIsNull write SetID_REMESAIsNull; + property OldID_REMESA : Integer read GetOldID_REMESAValue; + property OldID_REMESAIsNull : Boolean read GetOldID_REMESAIsNull; + property REFERENCIA_REMESA : String read GetREFERENCIA_REMESAValue write SetREFERENCIA_REMESAValue; + property REFERENCIA_REMESAIsNull : Boolean read GetREFERENCIA_REMESAIsNull write SetREFERENCIA_REMESAIsNull; + property OldREFERENCIA_REMESA : String read GetOldREFERENCIA_REMESAValue; + property OldREFERENCIA_REMESAIsNull : Boolean read GetOldREFERENCIA_REMESAIsNull; + property FECHA_EMISION : DateTime read GetFECHA_EMISIONValue write SetFECHA_EMISIONValue; + property FECHA_EMISIONIsNull : Boolean read GetFECHA_EMISIONIsNull write SetFECHA_EMISIONIsNull; + property OldFECHA_EMISION : DateTime read GetOldFECHA_EMISIONValue; + property OldFECHA_EMISIONIsNull : Boolean read GetOldFECHA_EMISIONIsNull; + property FECHA_VENCIMIENTO : DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + property FECHA_VENCIMIENTOIsNull : Boolean read GetFECHA_VENCIMIENTOIsNull write SetFECHA_VENCIMIENTOIsNull; + property OldFECHA_VENCIMIENTO : DateTime read GetOldFECHA_VENCIMIENTOValue; + property OldFECHA_VENCIMIENTOIsNull : Boolean read GetOldFECHA_VENCIMIENTOIsNull; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull : Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldDESCRIPCIONIsNull : Boolean read GetOldDESCRIPCIONIsNull; + property OBSERVACIONES : String read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property OBSERVACIONESIsNull : Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property OldOBSERVACIONES : String read GetOldOBSERVACIONESValue; + property OldOBSERVACIONESIsNull : Boolean read GetOldOBSERVACIONESIsNull; + property IMPORTE : Currency read GetIMPORTEValue write SetIMPORTEValue; + property IMPORTEIsNull : Boolean read GetIMPORTEIsNull write SetIMPORTEIsNull; + property OldIMPORTE : Currency read GetOldIMPORTEValue; + property OldIMPORTEIsNull : Boolean read GetOldIMPORTEIsNull; + property OTROS_GASTOS : Currency read GetOTROS_GASTOSValue write SetOTROS_GASTOSValue; + property OTROS_GASTOSIsNull : Boolean read GetOTROS_GASTOSIsNull write SetOTROS_GASTOSIsNull; + property OldOTROS_GASTOS : Currency read GetOldOTROS_GASTOSValue; + property OldOTROS_GASTOSIsNull : Boolean read GetOldOTROS_GASTOSIsNull; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull : Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldIMPORTE_TOTALIsNull : Boolean read GetOldIMPORTE_TOTALIsNull; + property FECHA_FACTURA : DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property FECHA_FACTURAIsNull : Boolean read GetFECHA_FACTURAIsNull write SetFECHA_FACTURAIsNull; + property OldFECHA_FACTURA : DateTime read GetOldFECHA_FACTURAValue; + property OldFECHA_FACTURAIsNull : Boolean read GetOldFECHA_FACTURAIsNull; + property FORMA_PAGO_FACTURA : String read GetFORMA_PAGO_FACTURAValue write SetFORMA_PAGO_FACTURAValue; + property FORMA_PAGO_FACTURAIsNull : Boolean read GetFORMA_PAGO_FACTURAIsNull write SetFORMA_PAGO_FACTURAIsNull; + property OldFORMA_PAGO_FACTURA : String read GetOldFORMA_PAGO_FACTURAValue; + property OldFORMA_PAGO_FACTURAIsNull : Boolean read GetOldFORMA_PAGO_FACTURAIsNull; + property IMPORTE_FACTURA : Currency read GetIMPORTE_FACTURAValue write SetIMPORTE_FACTURAValue; + property IMPORTE_FACTURAIsNull : Boolean read GetIMPORTE_FACTURAIsNull write SetIMPORTE_FACTURAIsNull; + property OldIMPORTE_FACTURA : Currency read GetOldIMPORTE_FACTURAValue; + property OldIMPORTE_FACTURAIsNull : Boolean read GetOldIMPORTE_FACTURAIsNull; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull : Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_EMPRESAIsNull : Boolean read GetOldID_EMPRESAIsNull; + property DATOS_BANCARIOS : String read GetDATOS_BANCARIOSValue write SetDATOS_BANCARIOSValue; + property DATOS_BANCARIOSIsNull : Boolean read GetDATOS_BANCARIOSIsNull write SetDATOS_BANCARIOSIsNull; + property OldDATOS_BANCARIOS : String read GetOldDATOS_BANCARIOSValue; + property OldDATOS_BANCARIOSIsNull : Boolean read GetOldDATOS_BANCARIOSIsNull; + property ID_CLIENTE : Integer read GetID_CLIENTEValue write SetID_CLIENTEValue; + property ID_CLIENTEIsNull : Boolean read GetID_CLIENTEIsNull write SetID_CLIENTEIsNull; + property OldID_CLIENTE : Integer read GetOldID_CLIENTEValue; + property OldID_CLIENTEIsNull : Boolean read GetOldID_CLIENTEIsNull; + property NOMBRE_CLIENTE : String read GetNOMBRE_CLIENTEValue write SetNOMBRE_CLIENTEValue; + property NOMBRE_CLIENTEIsNull : Boolean read GetNOMBRE_CLIENTEIsNull write SetNOMBRE_CLIENTEIsNull; + property OldNOMBRE_CLIENTE : String read GetOldNOMBRE_CLIENTEValue; + property OldNOMBRE_CLIENTEIsNull : Boolean read GetOldNOMBRE_CLIENTEIsNull; + property NIF_CIF_CLIENTE : String read GetNIF_CIF_CLIENTEValue write SetNIF_CIF_CLIENTEValue; + property NIF_CIF_CLIENTEIsNull : Boolean read GetNIF_CIF_CLIENTEIsNull write SetNIF_CIF_CLIENTEIsNull; + property OldNIF_CIF_CLIENTE : String read GetOldNIF_CIF_CLIENTEValue; + property OldNIF_CIF_CLIENTEIsNull : Boolean read GetOldNIF_CIF_CLIENTEIsNull; + property CALLE_CLIENTE : String read GetCALLE_CLIENTEValue write SetCALLE_CLIENTEValue; + property CALLE_CLIENTEIsNull : Boolean read GetCALLE_CLIENTEIsNull write SetCALLE_CLIENTEIsNull; + property OldCALLE_CLIENTE : String read GetOldCALLE_CLIENTEValue; + property OldCALLE_CLIENTEIsNull : Boolean read GetOldCALLE_CLIENTEIsNull; + property POBLACION_CLIENTE : String read GetPOBLACION_CLIENTEValue write SetPOBLACION_CLIENTEValue; + property POBLACION_CLIENTEIsNull : Boolean read GetPOBLACION_CLIENTEIsNull write SetPOBLACION_CLIENTEIsNull; + property OldPOBLACION_CLIENTE : String read GetOldPOBLACION_CLIENTEValue; + property OldPOBLACION_CLIENTEIsNull : Boolean read GetOldPOBLACION_CLIENTEIsNull; + property CODIGO_POSTAL_CLIENTE : String read GetCODIGO_POSTAL_CLIENTEValue write SetCODIGO_POSTAL_CLIENTEValue; + property CODIGO_POSTAL_CLIENTEIsNull : Boolean read GetCODIGO_POSTAL_CLIENTEIsNull write SetCODIGO_POSTAL_CLIENTEIsNull; + property OldCODIGO_POSTAL_CLIENTE : String read GetOldCODIGO_POSTAL_CLIENTEValue; + property OldCODIGO_POSTAL_CLIENTEIsNull : Boolean read GetOldCODIGO_POSTAL_CLIENTEIsNull; + property PROVINCIA_CLIENTE : String read GetPROVINCIA_CLIENTEValue write SetPROVINCIA_CLIENTEValue; + property PROVINCIA_CLIENTEIsNull : Boolean read GetPROVINCIA_CLIENTEIsNull write SetPROVINCIA_CLIENTEIsNull; + property OldPROVINCIA_CLIENTE : String read GetOldPROVINCIA_CLIENTEValue; + property OldPROVINCIA_CLIENTEIsNull : Boolean read GetOldPROVINCIA_CLIENTEIsNull; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull : Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_ALTAIsNull : Boolean read GetOldFECHA_ALTAIsNull; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull : Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldUSUARIOIsNull : Boolean read GetOldUSUARIOIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers, uDAInterfaces; + +{ TListaAnosRecibosBusinessProcessorRules } +constructor TListaAnosRecibosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TListaAnosRecibosBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TListaAnosRecibosBusinessProcessorRules.GetANOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosRecibosANO]; +end; + +function TListaAnosRecibosBusinessProcessorRules.GetANOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosRecibosANO]); +end; + +function TListaAnosRecibosBusinessProcessorRules.GetOldANOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaAnosRecibosANO]; +end; + +function TListaAnosRecibosBusinessProcessorRules.GetOldANOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ListaAnosRecibosANO]); +end; + +procedure TListaAnosRecibosBusinessProcessorRules.SetANOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosRecibosANO] := aValue; +end; + +procedure TListaAnosRecibosBusinessProcessorRules.SetANOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosRecibosANO] := Null; +end; + + +{ TRecibosClienteBusinessProcessorRules } +constructor TRecibosClienteBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TRecibosClienteBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TRecibosClienteBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteID]; +end; + +function TRecibosClienteBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteID]); +end; + +function TRecibosClienteBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteID]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteID]); +end; + +procedure TRecibosClienteBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteID] := aValue; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteID] := Null; +end; + +function TRecibosClienteBusinessProcessorRules.GetID_RECIBO_COMPENSADOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteID_RECIBO_COMPENSADO]; +end; + +function TRecibosClienteBusinessProcessorRules.GetID_RECIBO_COMPENSADOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteID_RECIBO_COMPENSADO]); +end; + +function TRecibosClienteBusinessProcessorRules.GetOldID_RECIBO_COMPENSADOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteID_RECIBO_COMPENSADO]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldID_RECIBO_COMPENSADOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteID_RECIBO_COMPENSADO]); +end; + +procedure TRecibosClienteBusinessProcessorRules.SetID_RECIBO_COMPENSADOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteID_RECIBO_COMPENSADO] := aValue; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetID_RECIBO_COMPENSADOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteID_RECIBO_COMPENSADO] := Null; +end; + +function TRecibosClienteBusinessProcessorRules.GetREFERENCIA_REC_COMPENSADOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteREFERENCIA_REC_COMPENSADO]; +end; + +function TRecibosClienteBusinessProcessorRules.GetREFERENCIA_REC_COMPENSADOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteREFERENCIA_REC_COMPENSADO]); +end; + +function TRecibosClienteBusinessProcessorRules.GetOldREFERENCIA_REC_COMPENSADOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteREFERENCIA_REC_COMPENSADO]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldREFERENCIA_REC_COMPENSADOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteREFERENCIA_REC_COMPENSADO]); +end; + +procedure TRecibosClienteBusinessProcessorRules.SetREFERENCIA_REC_COMPENSADOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteREFERENCIA_REC_COMPENSADO] := aValue; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetREFERENCIA_REC_COMPENSADOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteREFERENCIA_REC_COMPENSADO] := Null; +end; + +function TRecibosClienteBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteREFERENCIA]; +end; + +function TRecibosClienteBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteREFERENCIA]); +end; + +function TRecibosClienteBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteREFERENCIA]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteREFERENCIA]); +end; + +procedure TRecibosClienteBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteREFERENCIA] := aValue; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteREFERENCIA] := Null; +end; + +function TRecibosClienteBusinessProcessorRules.GetSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteSITUACION]; +end; + +function TRecibosClienteBusinessProcessorRules.GetSITUACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteSITUACION]); +end; + +function TRecibosClienteBusinessProcessorRules.GetOldSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteSITUACION]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldSITUACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteSITUACION]); +end; + +procedure TRecibosClienteBusinessProcessorRules.SetSITUACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteSITUACION] := aValue; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetSITUACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteSITUACION] := Null; +end; + +function TRecibosClienteBusinessProcessorRules.GetID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteID_FACTURA]; +end; + +function TRecibosClienteBusinessProcessorRules.GetID_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteID_FACTURA]); +end; + +function TRecibosClienteBusinessProcessorRules.GetOldID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteID_FACTURA]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldID_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteID_FACTURA]); +end; + +procedure TRecibosClienteBusinessProcessorRules.SetID_FACTURAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteID_FACTURA] := aValue; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetID_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteID_FACTURA] := Null; +end; + +function TRecibosClienteBusinessProcessorRules.GetID_REMESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteID_REMESA]; +end; + +function TRecibosClienteBusinessProcessorRules.GetID_REMESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteID_REMESA]); +end; + +function TRecibosClienteBusinessProcessorRules.GetOldID_REMESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteID_REMESA]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldID_REMESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteID_REMESA]); +end; + +procedure TRecibosClienteBusinessProcessorRules.SetID_REMESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteID_REMESA] := aValue; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetID_REMESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteID_REMESA] := Null; +end; + +function TRecibosClienteBusinessProcessorRules.GetREFERENCIA_REMESAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteREFERENCIA_REMESA]; +end; + +function TRecibosClienteBusinessProcessorRules.GetREFERENCIA_REMESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteREFERENCIA_REMESA]); +end; + +function TRecibosClienteBusinessProcessorRules.GetOldREFERENCIA_REMESAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteREFERENCIA_REMESA]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldREFERENCIA_REMESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteREFERENCIA_REMESA]); +end; + +procedure TRecibosClienteBusinessProcessorRules.SetREFERENCIA_REMESAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteREFERENCIA_REMESA] := aValue; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetREFERENCIA_REMESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteREFERENCIA_REMESA] := Null; +end; + +function TRecibosClienteBusinessProcessorRules.GetFECHA_EMISIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteFECHA_EMISION]; +end; + +function TRecibosClienteBusinessProcessorRules.GetFECHA_EMISIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteFECHA_EMISION]); +end; + +function TRecibosClienteBusinessProcessorRules.GetOldFECHA_EMISIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteFECHA_EMISION]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldFECHA_EMISIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteFECHA_EMISION]); +end; + +procedure TRecibosClienteBusinessProcessorRules.SetFECHA_EMISIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteFECHA_EMISION] := aValue; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetFECHA_EMISIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteFECHA_EMISION] := Null; +end; + +function TRecibosClienteBusinessProcessorRules.GetFECHA_VENCIMIENTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteFECHA_VENCIMIENTO]; +end; + +function TRecibosClienteBusinessProcessorRules.GetFECHA_VENCIMIENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteFECHA_VENCIMIENTO]); +end; + +function TRecibosClienteBusinessProcessorRules.GetOldFECHA_VENCIMIENTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteFECHA_VENCIMIENTO]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldFECHA_VENCIMIENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteFECHA_VENCIMIENTO]); +end; + +procedure TRecibosClienteBusinessProcessorRules.SetFECHA_VENCIMIENTOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteFECHA_VENCIMIENTO] := aValue; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetFECHA_VENCIMIENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteFECHA_VENCIMIENTO] := Null; +end; + +function TRecibosClienteBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteDESCRIPCION]; +end; + +function TRecibosClienteBusinessProcessorRules.GetDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteDESCRIPCION]); +end; + +function TRecibosClienteBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteDESCRIPCION]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteDESCRIPCION]); +end; + +procedure TRecibosClienteBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteDESCRIPCION] := aValue; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteDESCRIPCION] := Null; +end; + +function TRecibosClienteBusinessProcessorRules.GetOBSERVACIONESValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteOBSERVACIONES]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOBSERVACIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteOBSERVACIONES]); +end; + +function TRecibosClienteBusinessProcessorRules.GetOldOBSERVACIONESValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteOBSERVACIONES]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldOBSERVACIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteOBSERVACIONES]); +end; + +procedure TRecibosClienteBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteOBSERVACIONES] := aValue; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetOBSERVACIONESIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteOBSERVACIONES] := Null; +end; + +function TRecibosClienteBusinessProcessorRules.GetIMPORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteIMPORTE]; +end; + +function TRecibosClienteBusinessProcessorRules.GetIMPORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteIMPORTE]); +end; + +function TRecibosClienteBusinessProcessorRules.GetOldIMPORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteIMPORTE]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldIMPORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteIMPORTE]); +end; + +procedure TRecibosClienteBusinessProcessorRules.SetIMPORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteIMPORTE] := aValue; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetIMPORTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteIMPORTE] := Null; +end; + +function TRecibosClienteBusinessProcessorRules.GetOTROS_GASTOSValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteOTROS_GASTOS]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOTROS_GASTOSIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteOTROS_GASTOS]); +end; + +function TRecibosClienteBusinessProcessorRules.GetOldOTROS_GASTOSValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteOTROS_GASTOS]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldOTROS_GASTOSIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteOTROS_GASTOS]); +end; + +procedure TRecibosClienteBusinessProcessorRules.SetOTROS_GASTOSValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteOTROS_GASTOS] := aValue; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetOTROS_GASTOSIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteOTROS_GASTOS] := Null; +end; + +function TRecibosClienteBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteIMPORTE_TOTAL]; +end; + +function TRecibosClienteBusinessProcessorRules.GetIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteIMPORTE_TOTAL]); +end; + +function TRecibosClienteBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteIMPORTE_TOTAL]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteIMPORTE_TOTAL]); +end; + +procedure TRecibosClienteBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteIMPORTE_TOTAL] := aValue; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteIMPORTE_TOTAL] := Null; +end; + +function TRecibosClienteBusinessProcessorRules.GetFECHA_FACTURAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteFECHA_FACTURA]; +end; + +function TRecibosClienteBusinessProcessorRules.GetFECHA_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteFECHA_FACTURA]); +end; + +function TRecibosClienteBusinessProcessorRules.GetOldFECHA_FACTURAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteFECHA_FACTURA]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldFECHA_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteFECHA_FACTURA]); +end; + +procedure TRecibosClienteBusinessProcessorRules.SetFECHA_FACTURAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteFECHA_FACTURA] := aValue; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetFECHA_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteFECHA_FACTURA] := Null; +end; + +function TRecibosClienteBusinessProcessorRules.GetFORMA_PAGO_FACTURAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteFORMA_PAGO_FACTURA]; +end; + +function TRecibosClienteBusinessProcessorRules.GetFORMA_PAGO_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteFORMA_PAGO_FACTURA]); +end; + +function TRecibosClienteBusinessProcessorRules.GetOldFORMA_PAGO_FACTURAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteFORMA_PAGO_FACTURA]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldFORMA_PAGO_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteFORMA_PAGO_FACTURA]); +end; + +procedure TRecibosClienteBusinessProcessorRules.SetFORMA_PAGO_FACTURAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteFORMA_PAGO_FACTURA] := aValue; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetFORMA_PAGO_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteFORMA_PAGO_FACTURA] := Null; +end; + +function TRecibosClienteBusinessProcessorRules.GetIMPORTE_FACTURAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteIMPORTE_FACTURA]; +end; + +function TRecibosClienteBusinessProcessorRules.GetIMPORTE_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteIMPORTE_FACTURA]); +end; + +function TRecibosClienteBusinessProcessorRules.GetOldIMPORTE_FACTURAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteIMPORTE_FACTURA]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldIMPORTE_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteIMPORTE_FACTURA]); +end; + +procedure TRecibosClienteBusinessProcessorRules.SetIMPORTE_FACTURAValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteIMPORTE_FACTURA] := aValue; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetIMPORTE_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteIMPORTE_FACTURA] := Null; +end; + +function TRecibosClienteBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteID_EMPRESA]; +end; + +function TRecibosClienteBusinessProcessorRules.GetID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteID_EMPRESA]); +end; + +function TRecibosClienteBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteID_EMPRESA]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteID_EMPRESA]); +end; + +procedure TRecibosClienteBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteID_EMPRESA] := aValue; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteID_EMPRESA] := Null; +end; + +function TRecibosClienteBusinessProcessorRules.GetDATOS_BANCARIOSValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteDATOS_BANCARIOS]; +end; + +function TRecibosClienteBusinessProcessorRules.GetDATOS_BANCARIOSIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteDATOS_BANCARIOS]); +end; + +function TRecibosClienteBusinessProcessorRules.GetOldDATOS_BANCARIOSValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteDATOS_BANCARIOS]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldDATOS_BANCARIOSIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteDATOS_BANCARIOS]); +end; + +procedure TRecibosClienteBusinessProcessorRules.SetDATOS_BANCARIOSValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteDATOS_BANCARIOS] := aValue; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetDATOS_BANCARIOSIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteDATOS_BANCARIOS] := Null; +end; + +function TRecibosClienteBusinessProcessorRules.GetID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteID_CLIENTE]; +end; + +function TRecibosClienteBusinessProcessorRules.GetID_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteID_CLIENTE]); +end; + +function TRecibosClienteBusinessProcessorRules.GetOldID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteID_CLIENTE]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldID_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteID_CLIENTE]); +end; + +procedure TRecibosClienteBusinessProcessorRules.SetID_CLIENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteID_CLIENTE] := aValue; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetID_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteID_CLIENTE] := Null; +end; + +function TRecibosClienteBusinessProcessorRules.GetNOMBRE_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteNOMBRE_CLIENTE]; +end; + +function TRecibosClienteBusinessProcessorRules.GetNOMBRE_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteNOMBRE_CLIENTE]); +end; + +function TRecibosClienteBusinessProcessorRules.GetOldNOMBRE_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteNOMBRE_CLIENTE]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldNOMBRE_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteNOMBRE_CLIENTE]); +end; + +procedure TRecibosClienteBusinessProcessorRules.SetNOMBRE_CLIENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteNOMBRE_CLIENTE] := aValue; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetNOMBRE_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteNOMBRE_CLIENTE] := Null; +end; + +function TRecibosClienteBusinessProcessorRules.GetNIF_CIF_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteNIF_CIF_CLIENTE]; +end; + +function TRecibosClienteBusinessProcessorRules.GetNIF_CIF_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteNIF_CIF_CLIENTE]); +end; + +function TRecibosClienteBusinessProcessorRules.GetOldNIF_CIF_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteNIF_CIF_CLIENTE]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldNIF_CIF_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteNIF_CIF_CLIENTE]); +end; + +procedure TRecibosClienteBusinessProcessorRules.SetNIF_CIF_CLIENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteNIF_CIF_CLIENTE] := aValue; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetNIF_CIF_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteNIF_CIF_CLIENTE] := Null; +end; + +function TRecibosClienteBusinessProcessorRules.GetCALLE_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteCALLE_CLIENTE]; +end; + +function TRecibosClienteBusinessProcessorRules.GetCALLE_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteCALLE_CLIENTE]); +end; + +function TRecibosClienteBusinessProcessorRules.GetOldCALLE_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteCALLE_CLIENTE]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldCALLE_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteCALLE_CLIENTE]); +end; + +procedure TRecibosClienteBusinessProcessorRules.SetCALLE_CLIENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteCALLE_CLIENTE] := aValue; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetCALLE_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteCALLE_CLIENTE] := Null; +end; + +function TRecibosClienteBusinessProcessorRules.GetPOBLACION_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClientePOBLACION_CLIENTE]; +end; + +function TRecibosClienteBusinessProcessorRules.GetPOBLACION_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClientePOBLACION_CLIENTE]); +end; + +function TRecibosClienteBusinessProcessorRules.GetOldPOBLACION_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClientePOBLACION_CLIENTE]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldPOBLACION_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClientePOBLACION_CLIENTE]); +end; + +procedure TRecibosClienteBusinessProcessorRules.SetPOBLACION_CLIENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClientePOBLACION_CLIENTE] := aValue; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetPOBLACION_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClientePOBLACION_CLIENTE] := Null; +end; + +function TRecibosClienteBusinessProcessorRules.GetCODIGO_POSTAL_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteCODIGO_POSTAL_CLIENTE]; +end; + +function TRecibosClienteBusinessProcessorRules.GetCODIGO_POSTAL_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteCODIGO_POSTAL_CLIENTE]); +end; + +function TRecibosClienteBusinessProcessorRules.GetOldCODIGO_POSTAL_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteCODIGO_POSTAL_CLIENTE]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldCODIGO_POSTAL_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteCODIGO_POSTAL_CLIENTE]); +end; + +procedure TRecibosClienteBusinessProcessorRules.SetCODIGO_POSTAL_CLIENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteCODIGO_POSTAL_CLIENTE] := aValue; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetCODIGO_POSTAL_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteCODIGO_POSTAL_CLIENTE] := Null; +end; + +function TRecibosClienteBusinessProcessorRules.GetPROVINCIA_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClientePROVINCIA_CLIENTE]; +end; + +function TRecibosClienteBusinessProcessorRules.GetPROVINCIA_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClientePROVINCIA_CLIENTE]); +end; + +function TRecibosClienteBusinessProcessorRules.GetOldPROVINCIA_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClientePROVINCIA_CLIENTE]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldPROVINCIA_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClientePROVINCIA_CLIENTE]); +end; + +procedure TRecibosClienteBusinessProcessorRules.SetPROVINCIA_CLIENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClientePROVINCIA_CLIENTE] := aValue; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetPROVINCIA_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClientePROVINCIA_CLIENTE] := Null; +end; + +function TRecibosClienteBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteFECHA_ALTA]; +end; + +function TRecibosClienteBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteFECHA_ALTA]); +end; + +function TRecibosClienteBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteFECHA_ALTA]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteFECHA_ALTA]); +end; + +procedure TRecibosClienteBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteFECHA_ALTA] := aValue; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteFECHA_ALTA] := Null; +end; + +function TRecibosClienteBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteFECHA_MODIFICACION]; +end; + +function TRecibosClienteBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteFECHA_MODIFICACION]); +end; + +function TRecibosClienteBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteFECHA_MODIFICACION]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteFECHA_MODIFICACION]); +end; + +procedure TRecibosClienteBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteFECHA_MODIFICACION] := aValue; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteFECHA_MODIFICACION] := Null; +end; + +function TRecibosClienteBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteUSUARIO]; +end; + +function TRecibosClienteBusinessProcessorRules.GetUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteUSUARIO]); +end; + +function TRecibosClienteBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteUSUARIO]; +end; + +function TRecibosClienteBusinessProcessorRules.GetOldUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosClienteUSUARIO]); +end; + +procedure TRecibosClienteBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteUSUARIO] := aValue; +end; + +procedure TRecibosClienteBusinessProcessorRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosClienteUSUARIO] := Null; +end; + + +{ TPagosClienteBusinessProcessorRules } +constructor TPagosClienteBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TPagosClienteBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TPagosClienteBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteID]; +end; + +function TPagosClienteBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteID]); +end; + +function TPagosClienteBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteID]; +end; + +function TPagosClienteBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteID]); +end; + +procedure TPagosClienteBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteID] := aValue; +end; + +procedure TPagosClienteBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteID] := Null; +end; + +function TPagosClienteBusinessProcessorRules.GetID_RECIBOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteID_RECIBO]; +end; + +function TPagosClienteBusinessProcessorRules.GetID_RECIBOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteID_RECIBO]); +end; + +function TPagosClienteBusinessProcessorRules.GetOldID_RECIBOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteID_RECIBO]; +end; + +function TPagosClienteBusinessProcessorRules.GetOldID_RECIBOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteID_RECIBO]); +end; + +procedure TPagosClienteBusinessProcessorRules.SetID_RECIBOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteID_RECIBO] := aValue; +end; + +procedure TPagosClienteBusinessProcessorRules.SetID_RECIBOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteID_RECIBO] := Null; +end; + +function TPagosClienteBusinessProcessorRules.GetTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteTIPO]; +end; + +function TPagosClienteBusinessProcessorRules.GetTIPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteTIPO]); +end; + +function TPagosClienteBusinessProcessorRules.GetOldTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteTIPO]; +end; + +function TPagosClienteBusinessProcessorRules.GetOldTIPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteTIPO]); +end; + +procedure TPagosClienteBusinessProcessorRules.SetTIPOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteTIPO] := aValue; +end; + +procedure TPagosClienteBusinessProcessorRules.SetTIPOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteTIPO] := Null; +end; + +function TPagosClienteBusinessProcessorRules.GetFECHA_PAGOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteFECHA_PAGO]; +end; + +function TPagosClienteBusinessProcessorRules.GetFECHA_PAGOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteFECHA_PAGO]); +end; + +function TPagosClienteBusinessProcessorRules.GetOldFECHA_PAGOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteFECHA_PAGO]; +end; + +function TPagosClienteBusinessProcessorRules.GetOldFECHA_PAGOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteFECHA_PAGO]); +end; + +procedure TPagosClienteBusinessProcessorRules.SetFECHA_PAGOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteFECHA_PAGO] := aValue; +end; + +procedure TPagosClienteBusinessProcessorRules.SetFECHA_PAGOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteFECHA_PAGO] := Null; +end; + +function TPagosClienteBusinessProcessorRules.GetTITULARValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteTITULAR]; +end; + +function TPagosClienteBusinessProcessorRules.GetTITULARIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteTITULAR]); +end; + +function TPagosClienteBusinessProcessorRules.GetOldTITULARValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteTITULAR]; +end; + +function TPagosClienteBusinessProcessorRules.GetOldTITULARIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteTITULAR]); +end; + +procedure TPagosClienteBusinessProcessorRules.SetTITULARValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteTITULAR] := aValue; +end; + +procedure TPagosClienteBusinessProcessorRules.SetTITULARIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteTITULAR] := Null; +end; + +function TPagosClienteBusinessProcessorRules.GetENTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteENTIDAD]; +end; + +function TPagosClienteBusinessProcessorRules.GetENTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteENTIDAD]); +end; + +function TPagosClienteBusinessProcessorRules.GetOldENTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteENTIDAD]; +end; + +function TPagosClienteBusinessProcessorRules.GetOldENTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteENTIDAD]); +end; + +procedure TPagosClienteBusinessProcessorRules.SetENTIDADValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteENTIDAD] := aValue; +end; + +procedure TPagosClienteBusinessProcessorRules.SetENTIDADIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteENTIDAD] := Null; +end; + +function TPagosClienteBusinessProcessorRules.GetSUCURSALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteSUCURSAL]; +end; + +function TPagosClienteBusinessProcessorRules.GetSUCURSALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteSUCURSAL]); +end; + +function TPagosClienteBusinessProcessorRules.GetOldSUCURSALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteSUCURSAL]; +end; + +function TPagosClienteBusinessProcessorRules.GetOldSUCURSALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteSUCURSAL]); +end; + +procedure TPagosClienteBusinessProcessorRules.SetSUCURSALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteSUCURSAL] := aValue; +end; + +procedure TPagosClienteBusinessProcessorRules.SetSUCURSALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteSUCURSAL] := Null; +end; + +function TPagosClienteBusinessProcessorRules.GetDCValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteDC]; +end; + +function TPagosClienteBusinessProcessorRules.GetDCIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteDC]); +end; + +function TPagosClienteBusinessProcessorRules.GetOldDCValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteDC]; +end; + +function TPagosClienteBusinessProcessorRules.GetOldDCIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteDC]); +end; + +procedure TPagosClienteBusinessProcessorRules.SetDCValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteDC] := aValue; +end; + +procedure TPagosClienteBusinessProcessorRules.SetDCIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteDC] := Null; +end; + +function TPagosClienteBusinessProcessorRules.GetCUENTAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteCUENTA]; +end; + +function TPagosClienteBusinessProcessorRules.GetCUENTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteCUENTA]); +end; + +function TPagosClienteBusinessProcessorRules.GetOldCUENTAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteCUENTA]; +end; + +function TPagosClienteBusinessProcessorRules.GetOldCUENTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteCUENTA]); +end; + +procedure TPagosClienteBusinessProcessorRules.SetCUENTAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteCUENTA] := aValue; +end; + +procedure TPagosClienteBusinessProcessorRules.SetCUENTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteCUENTA] := Null; +end; + +function TPagosClienteBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteFECHA_ALTA]; +end; + +function TPagosClienteBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteFECHA_ALTA]); +end; + +function TPagosClienteBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteFECHA_ALTA]; +end; + +function TPagosClienteBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteFECHA_ALTA]); +end; + +procedure TPagosClienteBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteFECHA_ALTA] := aValue; +end; + +procedure TPagosClienteBusinessProcessorRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteFECHA_ALTA] := Null; +end; + +function TPagosClienteBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteFECHA_MODIFICACION]; +end; + +function TPagosClienteBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteFECHA_MODIFICACION]); +end; + +function TPagosClienteBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteFECHA_MODIFICACION]; +end; + +function TPagosClienteBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteFECHA_MODIFICACION]); +end; + +procedure TPagosClienteBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteFECHA_MODIFICACION] := aValue; +end; + +procedure TPagosClienteBusinessProcessorRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteFECHA_MODIFICACION] := Null; +end; + +function TPagosClienteBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteUSUARIO]; +end; + +function TPagosClienteBusinessProcessorRules.GetUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteUSUARIO]); +end; + +function TPagosClienteBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteUSUARIO]; +end; + +function TPagosClienteBusinessProcessorRules.GetOldUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteUSUARIO]); +end; + +procedure TPagosClienteBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteUSUARIO] := aValue; +end; + +procedure TPagosClienteBusinessProcessorRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteUSUARIO] := Null; +end; + + +{ TRecibosCompensadosCliBusinessProcessorRules } +constructor TRecibosCompensadosCliBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TRecibosCompensadosCliBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliID]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliID]); +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliID]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliID]); +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliID] := aValue; +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliID] := Null; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetID_RECIBO_COMPENSADOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliID_RECIBO_COMPENSADO]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetID_RECIBO_COMPENSADOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliID_RECIBO_COMPENSADO]); +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldID_RECIBO_COMPENSADOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliID_RECIBO_COMPENSADO]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldID_RECIBO_COMPENSADOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliID_RECIBO_COMPENSADO]); +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetID_RECIBO_COMPENSADOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliID_RECIBO_COMPENSADO] := aValue; +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetID_RECIBO_COMPENSADOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliID_RECIBO_COMPENSADO] := Null; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetREFERENCIA_REC_COMPENSADOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliREFERENCIA_REC_COMPENSADO]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetREFERENCIA_REC_COMPENSADOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliREFERENCIA_REC_COMPENSADO]); +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldREFERENCIA_REC_COMPENSADOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliREFERENCIA_REC_COMPENSADO]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldREFERENCIA_REC_COMPENSADOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliREFERENCIA_REC_COMPENSADO]); +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetREFERENCIA_REC_COMPENSADOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliREFERENCIA_REC_COMPENSADO] := aValue; +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetREFERENCIA_REC_COMPENSADOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliREFERENCIA_REC_COMPENSADO] := Null; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliREFERENCIA]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliREFERENCIA]); +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliREFERENCIA]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliREFERENCIA]); +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliREFERENCIA] := aValue; +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliREFERENCIA] := Null; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliSITUACION]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetSITUACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliSITUACION]); +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliSITUACION]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldSITUACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliSITUACION]); +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetSITUACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliSITUACION] := aValue; +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetSITUACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliSITUACION] := Null; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliID_FACTURA]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetID_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliID_FACTURA]); +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliID_FACTURA]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldID_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliID_FACTURA]); +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetID_FACTURAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliID_FACTURA] := aValue; +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetID_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliID_FACTURA] := Null; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetID_REMESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliID_REMESA]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetID_REMESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliID_REMESA]); +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldID_REMESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliID_REMESA]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldID_REMESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliID_REMESA]); +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetID_REMESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliID_REMESA] := aValue; +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetID_REMESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliID_REMESA] := Null; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetREFERENCIA_REMESAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliREFERENCIA_REMESA]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetREFERENCIA_REMESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliREFERENCIA_REMESA]); +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldREFERENCIA_REMESAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliREFERENCIA_REMESA]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldREFERENCIA_REMESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliREFERENCIA_REMESA]); +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetREFERENCIA_REMESAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliREFERENCIA_REMESA] := aValue; +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetREFERENCIA_REMESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliREFERENCIA_REMESA] := Null; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetFECHA_EMISIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliFECHA_EMISION]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetFECHA_EMISIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliFECHA_EMISION]); +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldFECHA_EMISIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliFECHA_EMISION]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldFECHA_EMISIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliFECHA_EMISION]); +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetFECHA_EMISIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliFECHA_EMISION] := aValue; +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetFECHA_EMISIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliFECHA_EMISION] := Null; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetFECHA_VENCIMIENTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliFECHA_VENCIMIENTO]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetFECHA_VENCIMIENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliFECHA_VENCIMIENTO]); +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldFECHA_VENCIMIENTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliFECHA_VENCIMIENTO]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldFECHA_VENCIMIENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliFECHA_VENCIMIENTO]); +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetFECHA_VENCIMIENTOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliFECHA_VENCIMIENTO] := aValue; +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetFECHA_VENCIMIENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliFECHA_VENCIMIENTO] := Null; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliDESCRIPCION]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliDESCRIPCION]); +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliDESCRIPCION]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliDESCRIPCION]); +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliDESCRIPCION] := aValue; +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliDESCRIPCION] := Null; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOBSERVACIONESValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliOBSERVACIONES]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOBSERVACIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliOBSERVACIONES]); +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldOBSERVACIONESValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliOBSERVACIONES]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldOBSERVACIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliOBSERVACIONES]); +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliOBSERVACIONES] := aValue; +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetOBSERVACIONESIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliOBSERVACIONES] := Null; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetIMPORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliIMPORTE]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetIMPORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliIMPORTE]); +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldIMPORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliIMPORTE]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldIMPORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliIMPORTE]); +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetIMPORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliIMPORTE] := aValue; +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetIMPORTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliIMPORTE] := Null; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOTROS_GASTOSValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliOTROS_GASTOS]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOTROS_GASTOSIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliOTROS_GASTOS]); +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldOTROS_GASTOSValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliOTROS_GASTOS]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldOTROS_GASTOSIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliOTROS_GASTOS]); +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetOTROS_GASTOSValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliOTROS_GASTOS] := aValue; +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetOTROS_GASTOSIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliOTROS_GASTOS] := Null; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliIMPORTE_TOTAL]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliIMPORTE_TOTAL]); +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliIMPORTE_TOTAL]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliIMPORTE_TOTAL]); +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliIMPORTE_TOTAL] := aValue; +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliIMPORTE_TOTAL] := Null; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetFECHA_FACTURAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliFECHA_FACTURA]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetFECHA_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliFECHA_FACTURA]); +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldFECHA_FACTURAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliFECHA_FACTURA]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldFECHA_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliFECHA_FACTURA]); +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetFECHA_FACTURAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliFECHA_FACTURA] := aValue; +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetFECHA_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliFECHA_FACTURA] := Null; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetFORMA_PAGO_FACTURAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliFORMA_PAGO_FACTURA]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetFORMA_PAGO_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliFORMA_PAGO_FACTURA]); +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldFORMA_PAGO_FACTURAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliFORMA_PAGO_FACTURA]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldFORMA_PAGO_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliFORMA_PAGO_FACTURA]); +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetFORMA_PAGO_FACTURAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliFORMA_PAGO_FACTURA] := aValue; +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetFORMA_PAGO_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliFORMA_PAGO_FACTURA] := Null; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetIMPORTE_FACTURAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliIMPORTE_FACTURA]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetIMPORTE_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliIMPORTE_FACTURA]); +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldIMPORTE_FACTURAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliIMPORTE_FACTURA]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldIMPORTE_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliIMPORTE_FACTURA]); +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetIMPORTE_FACTURAValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliIMPORTE_FACTURA] := aValue; +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetIMPORTE_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliIMPORTE_FACTURA] := Null; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliID_EMPRESA]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliID_EMPRESA]); +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliID_EMPRESA]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliID_EMPRESA]); +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliID_EMPRESA] := aValue; +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliID_EMPRESA] := Null; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetDATOS_BANCARIOSValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliDATOS_BANCARIOS]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetDATOS_BANCARIOSIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliDATOS_BANCARIOS]); +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldDATOS_BANCARIOSValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliDATOS_BANCARIOS]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldDATOS_BANCARIOSIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliDATOS_BANCARIOS]); +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetDATOS_BANCARIOSValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliDATOS_BANCARIOS] := aValue; +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetDATOS_BANCARIOSIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliDATOS_BANCARIOS] := Null; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliID_CLIENTE]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetID_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliID_CLIENTE]); +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldID_CLIENTEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliID_CLIENTE]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldID_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliID_CLIENTE]); +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetID_CLIENTEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliID_CLIENTE] := aValue; +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetID_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliID_CLIENTE] := Null; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetNOMBRE_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliNOMBRE_CLIENTE]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetNOMBRE_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliNOMBRE_CLIENTE]); +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldNOMBRE_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliNOMBRE_CLIENTE]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldNOMBRE_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliNOMBRE_CLIENTE]); +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetNOMBRE_CLIENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliNOMBRE_CLIENTE] := aValue; +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetNOMBRE_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliNOMBRE_CLIENTE] := Null; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetNIF_CIF_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliNIF_CIF_CLIENTE]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetNIF_CIF_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliNIF_CIF_CLIENTE]); +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldNIF_CIF_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliNIF_CIF_CLIENTE]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldNIF_CIF_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliNIF_CIF_CLIENTE]); +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetNIF_CIF_CLIENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliNIF_CIF_CLIENTE] := aValue; +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetNIF_CIF_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliNIF_CIF_CLIENTE] := Null; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetCALLE_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliCALLE_CLIENTE]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetCALLE_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliCALLE_CLIENTE]); +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldCALLE_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliCALLE_CLIENTE]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldCALLE_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliCALLE_CLIENTE]); +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetCALLE_CLIENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliCALLE_CLIENTE] := aValue; +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetCALLE_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliCALLE_CLIENTE] := Null; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetPOBLACION_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliPOBLACION_CLIENTE]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetPOBLACION_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliPOBLACION_CLIENTE]); +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldPOBLACION_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliPOBLACION_CLIENTE]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldPOBLACION_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliPOBLACION_CLIENTE]); +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetPOBLACION_CLIENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliPOBLACION_CLIENTE] := aValue; +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetPOBLACION_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliPOBLACION_CLIENTE] := Null; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetCODIGO_POSTAL_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliCODIGO_POSTAL_CLIENTE]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetCODIGO_POSTAL_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliCODIGO_POSTAL_CLIENTE]); +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldCODIGO_POSTAL_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliCODIGO_POSTAL_CLIENTE]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldCODIGO_POSTAL_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliCODIGO_POSTAL_CLIENTE]); +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetCODIGO_POSTAL_CLIENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliCODIGO_POSTAL_CLIENTE] := aValue; +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetCODIGO_POSTAL_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliCODIGO_POSTAL_CLIENTE] := Null; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetPROVINCIA_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliPROVINCIA_CLIENTE]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetPROVINCIA_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliPROVINCIA_CLIENTE]); +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldPROVINCIA_CLIENTEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliPROVINCIA_CLIENTE]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldPROVINCIA_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliPROVINCIA_CLIENTE]); +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetPROVINCIA_CLIENTEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliPROVINCIA_CLIENTE] := aValue; +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetPROVINCIA_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliPROVINCIA_CLIENTE] := Null; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliFECHA_ALTA]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliFECHA_ALTA]); +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliFECHA_ALTA]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliFECHA_ALTA]); +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliFECHA_ALTA] := aValue; +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliFECHA_ALTA] := Null; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliFECHA_MODIFICACION]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliFECHA_MODIFICACION]); +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliFECHA_MODIFICACION]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliFECHA_MODIFICACION]); +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliFECHA_MODIFICACION] := aValue; +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliFECHA_MODIFICACION] := Null; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliUSUARIO]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliUSUARIO]); +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliUSUARIO]; +end; + +function TRecibosCompensadosCliBusinessProcessorRules.GetOldUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosCliUSUARIO]); +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliUSUARIO] := aValue; +end; + +procedure TRecibosCompensadosCliBusinessProcessorRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosCliUSUARIO] := Null; +end; + + +initialization + RegisterBusinessProcessorRules(RID_ListaAnosRecibosDelta, TListaAnosRecibosBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_RecibosClienteDelta, TRecibosClienteBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_PagosClienteDelta, TPagosClienteBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_RecibosCompensadosCliDelta, TRecibosCompensadosCliBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Recibos de cliente/Model/uBizPagosCliente.dcu b/Source/Modulos/Recibos de cliente/Model/uBizPagosCliente.dcu new file mode 100644 index 0000000..32cd4ed Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Model/uBizPagosCliente.dcu differ diff --git a/Source/Modulos/Recibos de cliente/Model/uBizPagosCliente.pas b/Source/Modulos/Recibos de cliente/Model/uBizPagosCliente.pas new file mode 100644 index 0000000..4768809 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Model/uBizPagosCliente.pas @@ -0,0 +1,70 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uBizPagosCliente; + +interface + +uses + uDAInterfaces, uDADataTable, uDBSelectionListUtils, schRecibosClienteClient_Intf; + +const + BIZ_CLIENT_IBIZPAGOSCLIENTE = 'Client.IBizPagosCliente'; + + CTE_PAGO = 'Pago'; + CTE_DEVOLUCION = 'Devolucin'; + +type + IBizPagosCliente = interface(IPagosCliente) + ['{F53F105E-83B5-4EB8-94CA-EA7E470D26F7}'] + end; + + TBizPagosCliente = class(TPagosClienteDataTableRules, IBizPagosCliente) + protected + procedure BeforeInsert(Sender: TDADataTable); override; + end; + +implementation + +uses + DB; + +{ TBizPagosCliente } + +procedure TBizPagosCliente.BeforeInsert(Sender: TDADataTable); +var + AMasterTable : TDADataTable; +begin + inherited; + AMasterTable := DataTable.GetMasterDataTable; + if Assigned(AMasterTable) and (AMasterTable.State = dsInsert) then + AMasterTable.Post; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_IBIZPAGOSCLIENTE, TBizPagosCliente); + +finalization + +end. + diff --git a/Source/Modulos/Recibos de cliente/Model/uBizRecibosCliCompensados.dcu b/Source/Modulos/Recibos de cliente/Model/uBizRecibosCliCompensados.dcu new file mode 100644 index 0000000..359bf58 Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Model/uBizRecibosCliCompensados.dcu differ diff --git a/Source/Modulos/Recibos de cliente/Model/uBizRecibosCliCompensados.pas b/Source/Modulos/Recibos de cliente/Model/uBizRecibosCliCompensados.pas new file mode 100644 index 0000000..30cb531 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Model/uBizRecibosCliCompensados.pas @@ -0,0 +1,68 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uBizRecibosCliCompensados; + +interface + +uses + uDAInterfaces, uDADataTable, uDBSelectionListUtils, schRecibosClienteClient_Intf; + +const + BIZ_CLIENT_RECIBOS_COMPENSADOSCLI = 'Client.RecibosCompensadosCli'; + +type + IBizRecibosCompensadosCli = interface(IRecibosCompensadosCli) + ['{F9C18EAC-6769-428C-ABFB-AD6639F413D9}'] + end; + + TBizRecibosCompensadosCli = class(TRecibosCompensadosCliDataTableRules, IBizRecibosCompensadosCli) + procedure BeforeInsert(Sender: TDADataTable); override; + end; + +implementation + +uses + DB; + + + +{ TBizRecibosCompensadosCli } + +procedure TBizRecibosCompensadosCli.BeforeInsert(Sender: TDADataTable); +var + AMasterTable : TDADataTable; +begin + inherited; + AMasterTable := DataTable.GetMasterDataTable; + if Assigned(AMasterTable) and (AMasterTable.State = dsInsert) then + AMasterTable.Post; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_RECIBOS_COMPENSADOSCLI, TBizRecibosCompensadosCli); + +finalization + +end. + diff --git a/Source/Modulos/Recibos de cliente/Model/uBizRecibosCliente.dcu b/Source/Modulos/Recibos de cliente/Model/uBizRecibosCliente.dcu new file mode 100644 index 0000000..4e2520a Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Model/uBizRecibosCliente.dcu differ diff --git a/Source/Modulos/Recibos de cliente/Model/uBizRecibosCliente.pas b/Source/Modulos/Recibos de cliente/Model/uBizRecibosCliente.pas new file mode 100644 index 0000000..2ebbb7e --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Model/uBizRecibosCliente.pas @@ -0,0 +1,213 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uBizRecibosCliente; + +interface + +uses + uDAInterfaces, uDADataTable, uDBSelectionListUtils, schRecibosClienteClient_Intf, + uBizPagosCliente, uBizRecibosCliCompensados, uBizContactos; + +const + BIZ_CLIENT_IBIZRECIBOSCLIENTE = 'Client.IBizRecibosCliente'; + + CTE_PENDIENTE = 'PENDIENTE'; + CTE_COBRADO = 'COBRADO'; + CTE_DEVUELTO = 'DEVUELTO'; + +type + + IBizRecibosCliente = interface(IRecibosCliente) + ['{93758493-260C-450D-9018-E5339C2E09B2}'] + function EsNuevo : Boolean; + + // No se puede cambiar el cliente por que depende de la factura + function GetCliente : IBizCliente; + property Cliente : IBizCliente read GetCliente; + + // Esta propidad es para que el controlador pueda acceder directamente + // a la propiedad Cliente + procedure _SetCliente(AValue : IBizCliente); + function _GetCliente : IBizCliente; + property _Cliente : IBizCliente read _GetCliente write _SetCliente; + + procedure SetPagos(AValue : IBizPagosCliente); + function GetPagos : IBizPagosCliente; + property Pagos : IBizPagosCliente read GetPagos write SetPagos; + + function GetRecibosCompensados: IBizRecibosCompensadosCli; + procedure SetRecibosCompensados(const Value: IBizRecibosCompensadosCli); + property RecibosCompensados: IBizRecibosCompensadosCli read GetRecibosCompensados write SetRecibosCompensados; + end; + + TBizRecibosCliente = class(TRecibosClienteDataTableRules, IBizRecibosCliente, ISeleccionable) + protected + FPagos : IBizPagosCliente; + FPagosLink : TDADataSource; + FRecibosCompensados: IBizRecibosCompensadosCli; + FRecibosCompensadosLink : TDADataSource; + FCliente : IBizCliente; + FSeleccionableInterface : ISeleccionable; + + // No se puede cambiar el cliente por que depende de la factura + function GetCliente : IBizCliente; + property Cliente : IBizCliente read GetCliente; + + // Esta propidad es para que el controlador pueda acceder directamente + // a la propiedad Cliente + procedure _SetCliente(AValue : IBizCliente); + function _GetCliente : IBizCliente; + property _Cliente : IBizCliente read _GetCliente write _SetCliente; + + procedure SetPagos(AValue : IBizPagosCliente); + function GetPagos : IBizPagosCliente; + + function GetRecibosCompensados: IBizRecibosCompensadosCli; + procedure SetRecibosCompensados(const Value: IBizRecibosCompensadosCli); + + procedure OnNewRecord(Sender: TDADataTable); override; + function GetSITUACIONValue: String; override; + procedure SetID_REMESAValue(const aValue: Integer); override; + + public + property RecibosCompensados: IBizRecibosCompensadosCli read GetRecibosCompensados write SetRecibosCompensados; + property Pagos : IBizPagosCliente read GetPagos write SetPagos; + property SeleccionableInterface : ISeleccionable read FSeleccionableInterface + write FSeleccionableInterface + implements ISeleccionable; + + procedure IniciarValoresIBizRecibosClienteNuevo; + function EsNuevo : Boolean; + + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + end; + +implementation + +{ TBizRecibosCliente } + +uses + SysUtils, uDataTableUtils, schContactosClient_Intf; + + function TBizRecibosCliente.GetCliente: IBizCliente; +begin + Result := FCliente; +end; + +function TBizRecibosCliente.GetPagos: IBizPagosCliente; +begin + Result := FPagos; +end; + +function TBizRecibosCliente.GetRecibosCompensados: IBizRecibosCompensadosCli; +begin + Result := FRecibosCompensados; +end; + +function TBizRecibosCliente.GetSITUACIONValue: String; +begin + result := Trim(DataTable.Fields[idx_RecibosClienteSITUACION].AsString); +end; + +procedure TBizRecibosCliente.SetID_REMESAValue(const aValue: Integer); +begin + if (aValue = 0) then + SetFieldNull(DataTable, fld_RecibosClienteID_REMESA) + else + inherited; +end; + +procedure TBizRecibosCliente.SetPagos(AValue: IBizPagosCliente); + begin + FPagos := AValue; + EnlazarMaestroDetalle(FPagosLink, FPagos); + end; + +procedure TBizRecibosCliente.SetRecibosCompensados(const Value: IBizRecibosCompensadosCli); +begin + FRecibosCompensados := Value; + EnlazarMaestroDetalle(FRecibosCompensadosLink, FRecibosCompensados); +end; + +function TBizRecibosCliente._GetCliente: IBizCliente; +begin + Result := FCliente; +end; + +procedure TBizRecibosCliente._SetCliente(AValue: IBizCliente); +begin + FCliente := AValue; +end; + +constructor TBizRecibosCliente.Create(aDataTable: TDADataTable); +begin + inherited; + FCliente := Nil; + FPagos := Nil; + FRecibosCompensados := Nil; + + FPagosLink := TDADataSource.Create(NIL); + FPagosLink.DataTable := aDataTable; + FRecibosCompensadosLink := TDADataSource.Create(NIL); + FRecibosCompensadosLink.DataTable := aDataTable; + + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +destructor TBizRecibosCliente.Destroy; +begin + FPagos := NIL; + FRecibosCompensados := Nil; + FreeAndNIL(FPagosLink); + FreeAndNIL(FRecibosCompensadosLink); + FSeleccionableInterface := NIL; + inherited; +end; + +function TBizRecibosCliente.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +procedure TBizRecibosCliente.IniciarValoresIBizRecibosClienteNuevo; +begin + FECHA_EMISION := Date; + IMPORTE := 0; + OTROS_GASTOS := 0; +end; + +procedure TBizRecibosCliente.OnNewRecord(Sender: TDADataTable); +begin + inherited; + IniciarValoresIBizRecibosClienteNuevo; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_IBIZRECIBOSCLIENTE, TBizRecibosCliente); + +finalization + +end. + diff --git a/Source/Modulos/Recibos de cliente/Plugin/RecibosCliente_plugin.bdsproj b/Source/Modulos/Recibos de cliente/Plugin/RecibosCliente_plugin.bdsproj new file mode 100644 index 0000000..0ec9931 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Plugin/RecibosCliente_plugin.bdsproj @@ -0,0 +1,495 @@ + + + + + + + + + + + + RecibosCliente_plugin.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + EurekaLog 5.1.9 + + + + diff --git a/Source/Modulos/Recibos de cliente/Plugin/RecibosCliente_plugin.dcu b/Source/Modulos/Recibos de cliente/Plugin/RecibosCliente_plugin.dcu new file mode 100644 index 0000000..563255f Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Plugin/RecibosCliente_plugin.dcu differ diff --git a/Source/Modulos/Recibos de cliente/Plugin/RecibosCliente_plugin.dpk b/Source/Modulos/Recibos de cliente/Plugin/RecibosCliente_plugin.dpk new file mode 100644 index 0000000..28d9479 Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Plugin/RecibosCliente_plugin.dpk differ diff --git a/Source/Modulos/Recibos de cliente/Plugin/RecibosCliente_plugin.dproj b/Source/Modulos/Recibos de cliente/Plugin/RecibosCliente_plugin.dproj new file mode 100644 index 0000000..105a482 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Plugin/RecibosCliente_plugin.dproj @@ -0,0 +1,594 @@ + + + {e7d762a1-3a15-46b2-bd5b-3821d13b8347} + RecibosCliente_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\RecibosCliente_plugin.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + + + + + + + + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + EurekaLog 5.1.9 + + + RecibosCliente_plugin.dpk + + + + + + + MainSource + + + + + +
PluginRecibosCliente
+
+
+
+ + diff --git a/Source/Modulos/Recibos de cliente/Plugin/RecibosCliente_plugin.drc b/Source/Modulos/Recibos de cliente/Plugin/RecibosCliente_plugin.drc new file mode 100644 index 0000000..92df55d --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Plugin/RecibosCliente_plugin.drc @@ -0,0 +1,17 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Recibos de cliente\Plugin\uPluginRecibosCliente.dfm */ +/* C:\Codigo\Source\Modulos\Recibos de cliente\Plugin\RecibosCliente_plugin.res */ +/* c:\temp\dtf18B.tmp */ diff --git a/Source/Modulos/Recibos de cliente/Plugin/RecibosCliente_plugin.rc b/Source/Modulos/Recibos de cliente/Plugin/RecibosCliente_plugin.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Plugin/RecibosCliente_plugin.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Recibos de cliente/Plugin/RecibosCliente_plugin.res b/Source/Modulos/Recibos de cliente/Plugin/RecibosCliente_plugin.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Plugin/RecibosCliente_plugin.res differ diff --git a/Source/Modulos/Recibos de cliente/Plugin/uPluginRecibosCliente.dcu b/Source/Modulos/Recibos de cliente/Plugin/uPluginRecibosCliente.dcu new file mode 100644 index 0000000..b866bf8 Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Plugin/uPluginRecibosCliente.dcu differ diff --git a/Source/Modulos/Recibos de cliente/Plugin/uPluginRecibosCliente.dfm b/Source/Modulos/Recibos de cliente/Plugin/uPluginRecibosCliente.dfm new file mode 100644 index 0000000..2b0fe93 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Plugin/uPluginRecibosCliente.dfm @@ -0,0 +1,124 @@ +object PluginRecibosCliente: TPluginRecibosCliente + OldCreateOrder = True + DefaultAction = actRecibosCliente + Description = 'Ventas' + ModuleMenu = MainMenu + ModuleName = 'Recibos de cliente' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software' + Version = '1.0.0' + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022E4944415478DA + 63FCFFFF3F032D01E3D0B760D9965334B321CAC78C116C41A4B729491AFFFCFD + CFF0F7EF3F869FBFFE80E93FFFFE8169301B887FFDFECB109E5EC7707EE77484 + 0589270D091AFC17189CBFFEFE65F8F5E70F98FEF2EB17840FC2404B607245BF + 9633CC5BBA09D382F9E6E7512C927EEBCDD0E4D98C61D13FA06120ECB9DA9EE1 + 23CF03B0E197025E3028AD14045B52F17715A605AAAB85196E87BE051B006283 + C0CD903760FA02E37906E393C6400120479D81E1ACF95906CD1F5A0CBF803E10 + 58CE0F56F33F1D12958C33191926736D47B58056910CB6106601AD221AC5025A + 44348605D48E68AC168000888D6C38BE880EDAE2C1F094FD36C38DE0D760B562 + 8BB919EA18D6E2F701CC70E6534C0C7FCDFE816990E167E3CE3218CF035AA4CD + C0F059E70B03EF151E86D72A6F18C277FA32EC8D3AC620BC880BEC8376968DD8 + 2D400F1AE6E5400B2281162C668218BECC98E16C14909E65CCF021E22383C016 + 7E86172E2F19A2F604305CF873011E1FBDEC5B88B400D9075781121C40FC8301 + EC83B76AEF18846F09313C9179C210773094E1D4CFB3700B6079016F2A8259F2 + 17A8E132CB25481C5C044AE843E240EEAD3CC3CF1F3F300C0701B805200EAEE2 + 02A458F1831F438D732DD8927FE0B4FE178E41FCE8BD8170C37FA6FC01E764BC + 16C0003C6D03F1BBEFDF51F8C818391F2003AC16A0E7D23FD09CF9EDC72F243E + 50EE1F420E9E93A17C901C085CB97907D382298B775056F0A001140BBA27CFA7 + AAE13030F42B7D0062D74EABC521DC370000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + object actRecibosCliente: TAction + Category = 'Ventas' + Caption = 'Recibos de cliente' + ImageIndex = 0 + OnExecute = actRecibosClienteExecute + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object Compras1: TMenuItem + Caption = 'Ventas' + object RecibosdeCliente1: TMenuItem + Tag = 310 + Action = actRecibosCliente + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000CE4944415478DA + 63FCFFFF3F03258071E00D58B6E514D92644F99831820D50F76666987C3219AB + A2DF7FFF327CFFF387E1DBEFDF0C1F7FFC00B3E7FA6F6548F198C3707EE77484 + 0120003364AED9390C836CB6C9C13583008A0154090372BD81620039DE801BB0 + 4B240DAE10A699F9141344E02A03C3DFC47F60A6E65A5186EF4097805C23B72C + 810803AE42C4600628AC10006B06618DD5A90C8C20419021C8068024975B5FC6 + F002B26690570CD767220C8005225812AA08A6109BD8D9F4B390308019D03D79 + 3E79D138E0990900FC7AC6454D6D985F0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000002364944415478DA + EDD6CF4B14611807F0EF685094522674298C540C2D08199AED1C1D0A2DA488D5 + 090429F07FF0D021C14BC70E91878404C14B102CD882122D25B830EC6604E6A6 + 1BF823977564FD518E3A33DBF3BED36C3BEE4CE8E2CE251F7879DF79DFD9F7C3 + 33EF33C30AD96C167E8670081E3838148AFA26CAAD92C0C18E96AB456DA01B59 + 188649BDC97B3E36F3C6BCA77B682ED8FD18B1F0F3BF60D744F39E21838E61DB + 30B0ADEB56BFBB1160AF8F48D348CE2DA0A7AFBF101C08C41CF059B5054F6EF5 + 7AC2266D6CF28C0CB4BEBE8ED58AEF1C9B6C5B42ED701547C35202738B3FBC41 + 166CEC86C58518C40911F84A17170125A0A0516BE2206B774337B1703481A97B + 697EFF99C1131895BE61319572827E150D8B1CE857E138403F0AA7002C75E1B8 + 82A52C1CCF0CF3B1F2681990A4C71834AD31614AA702F125C19780F5CB1BA87C + 5301D401E9FA6504C3B731268FA3FAD5719E6124308BD472DA1D747B94E5C384 + 980476103858666143221499FA7E1199F6559C0A9DE4F72EDD48411E6D435C8F + E7CEF3C3B524D415751F20CB2A41E0833F197EA1C963D434F00CD58615548F9C + E619CE9F9B47E7FBFB886E2939F0A394C4DA7AE6DFA05BC1B033FA7C64D23AC3 + 4F3471C53AC31AF53C5FD377760A30161171063F7FAD59209BF0FABCB11F5CC8 + DCE1A85D14ACD955997FAD6D6EE2E1B89CC3B61EE9105EF0EDF1AE39014DDB70 + 07ED707DB7F6D1F2C3132CE6EBA13BE6768D69DD0E57F06D245ED4E76DAFE100 + 9F3E1B282966C77FF027EA103CE8F80DA807BCA3E9817F640000000049454E44 + AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 80 + Bitmap = {} + end +end diff --git a/Source/Modulos/Recibos de cliente/Plugin/uPluginRecibosCliente.pas b/Source/Modulos/Recibos de cliente/Plugin/uPluginRecibosCliente.pas new file mode 100644 index 0000000..5ab28b2 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Plugin/uPluginRecibosCliente.pas @@ -0,0 +1,97 @@ +unit uPluginRecibosCliente; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList, uPlugins_Intf; + +type + TPluginRecibosCliente = class(TModuleController, IMCRecibosCliente) + actRecibosCliente: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + Compras1: TMenuItem; + RecibosdeCliente1: TMenuItem; + procedure actRecibosClienteExecute(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure VerRecibos(const ID_Cliente: Integer; + const ANombreCliente : String = ''); + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, cxControls, + uRecibosClienteController, uBizRecibosCliente, uRecibosClienteViewRegister; + +function GetModule : TModuleController; +begin + Result := TPluginRecibosCliente.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +procedure TPluginRecibosCliente.actRecibosClienteExecute(Sender: TObject); +var + ARecibosClienteController : IRecibosClienteController; + ARecibosCliente : IBizRecibosCliente; + +begin + ARecibosClienteController := TRecibosClienteController.Create; + ARecibosCliente := (ARecibosClienteController.BuscarTodos as IBizRecibosCliente); + ARecibosClienteController.VerTodos(ARecibosCliente); +end; + +constructor TPluginRecibosCliente.Create(AOwner: TComponent); +begin + inherited; + ModuleName := MODULENAME_RECIBOS_CLIENTE; + uRecibosClienteViewRegister.RegisterViews; +end; + +destructor TPluginRecibosCliente.Destroy; +begin + uRecibosClienteViewRegister.UnregisterViews; + inherited; +end; + +procedure TPluginRecibosCliente.VerRecibos(const ID_Cliente: Integer; + const ANombreCliente: String); +var + ARecibosController : IRecibosClienteController; + ARecibos : IBizRecibosCliente; + AText : String; +begin + AText := Format('Lista de recibos del cliente %s', [ANombreCliente]); + ARecibosController := TRecibosClienteController.Create; + try + ShowHourglassCursor; + try + ARecibos := ARecibosController.BuscarTodos(ID_Cliente); + finally + HideHourglassCursor; + end; + ARecibosController.VerTodos(ARecibos, True, AText); + finally + ARecibos := NIL; + ARecibosController := NIL; + end; +end; + + +initialization + RegisterModuleClass(TPluginRecibosCliente); + +finalization + UnRegisterModuleClass(TPluginRecibosCliente); + +end. diff --git a/Source/Modulos/Recibos de cliente/RecibosCliente_Group.groupproj b/Source/Modulos/Recibos de cliente/RecibosCliente_Group.groupproj new file mode 100644 index 0000000..03828d6 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/RecibosCliente_Group.groupproj @@ -0,0 +1,184 @@ + + + {9e374daa-b130-47db-a2de-c184f072bea0} + + + + + + + + + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Recibos de cliente/Reports/uRptRecibosCliente_Server.dcu b/Source/Modulos/Recibos de cliente/Reports/uRptRecibosCliente_Server.dcu new file mode 100644 index 0000000..10c9ba3 Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Reports/uRptRecibosCliente_Server.dcu differ diff --git a/Source/Modulos/Recibos de cliente/Reports/uRptRecibosCliente_Server.dfm b/Source/Modulos/Recibos de cliente/Reports/uRptRecibosCliente_Server.dfm new file mode 100644 index 0000000..d014425 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Reports/uRptRecibosCliente_Server.dfm @@ -0,0 +1,1519 @@ +object RptRecibosCliente: TRptRecibosCliente + OldCreateOrder = True + OnCreate = DataModuleCreate + Height = 405 + Width = 892 + object DADataCabecera: TDADataSource + DataSet = tbl_Cabecera.Dataset + DataTable = tbl_Cabecera + Left = 264 + Top = 72 + end + object tbl_Cabecera: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_RECIBO_COMPENSADO' + DataType = datInteger + end + item + Name = 'REFERENCIA_REC_COMPENSADO' + DataType = datString + Size = 255 + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + end + item + Name = 'ID_FACTURA' + DataType = datInteger + end + item + Name = 'DATOS_BANCARIOS' + DataType = datString + Size = 255 + end + item + Name = 'ID_REMESA' + DataType = datInteger + end + item + Name = 'REFERENCIA_REMESA' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE' + DataType = datCurrency + end + item + Name = 'OTROS_GASTOS' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + end + item + Name = 'FORMA_PAGO_FACTURA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_FACTURA' + DataType = datCurrency + end + item + Name = 'NOMBRE_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'NIF_CIF_CLIENTE' + DataType = datString + Size = 15 + end + item + Name = 'CALLE_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL_CLIENTE' + DataType = datString + Size = 10 + end + item + Name = 'PROVINCIA_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'NIF_CIF_EMPRESA' + DataType = datString + Size = 15 + end + item + Name = 'RAZON_SOCIAL' + DataType = datString + Size = 255 + end + item + Name = 'CALLE_EMPRESA' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION_EMPRESA' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA_EMPRESA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL_EMPRESA' + DataType = datString + Size = 10 + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + end + item + Name = 'FAX' + DataType = datString + Size = 25 + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + end + item + Name = 'REGISTRO_MERCANTIL' + DataType = datString + Size = 255 + end + item + Name = 'LOGOTIPO' + DataType = datBlob + end> + Params = < + item + Name = 'ID' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + MasterMappingMode = mmDataRequest + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = Bin2DataStreamer + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Informe_Cabecera' + IndexDefs = <> + Left = 264 + Top = 128 + end + object frxRichObject1: TfrxRichObject + Left = 48 + Top = 296 + end + object frxBarCodeObject1: TfrxBarCodeObject + Left = 144 + Top = 296 + end + object frxOLEObject1: TfrxOLEObject + Left = 48 + Top = 344 + end + object frxCrossObject1: TfrxCrossObject + Left = 144 + Top = 344 + end + object frxCheckBoxObject1: TfrxCheckBoxObject + Left = 256 + Top = 296 + end + object frxGradientObject1: TfrxGradientObject + Left = 360 + Top = 296 + end + object frxChartObject1: TfrxChartObject + Left = 256 + Top = 344 + end + object schReport: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'V_recibos_cliente' + Name = 'IBX' + SQL = + 'select ID_EMPRESA,'#10'extract (year from fecha_vencimiento) as ANO,' + + #10'extract (month from fecha_vencimiento) as MES,'#10'case'#10'when extrac' + + 't (month from fecha_vencimiento) = 1 then '#39'ENERO - '#39' || extract ' + + '(year from fecha_vencimiento)'#10'when extract (month from fecha_ven' + + 'cimiento) = 2 then '#39'FEBRERO - '#39' || extract (year from fecha_venc' + + 'imiento)'#10'when extract (month from fecha_vencimiento) = 3 then '#39'M' + + 'ARZO - '#39' || extract (year from fecha_vencimiento)'#10'when extract (' + + 'month from fecha_vencimiento) = 4 then '#39'ABRIL - '#39' || extract (ye' + + 'ar from fecha_vencimiento)'#10'when extract (month from fecha_vencim' + + 'iento) = 5 then '#39'MAYO - '#39' || extract (year from fecha_vencimient' + + 'o)'#10'when extract (month from fecha_vencimiento) = 6 then '#39'JUNIO -' + + ' '#39' || extract (year from fecha_vencimiento)'#10'when extract (month ' + + 'from fecha_vencimiento) = 7 then '#39'JULIO - '#39' || extract (year fro' + + 'm fecha_vencimiento)'#10'when extract (month from fecha_vencimiento)' + + ' = 8 then '#39'AGOSTO - '#39' || extract (year from fecha_vencimiento)'#10'w' + + 'hen extract (month from fecha_vencimiento) = 9 then '#39'SEPTIEMBRE ' + + '- '#39' || extract (year from fecha_vencimiento)'#10'when extract (month' + + ' from fecha_vencimiento) = 10 then '#39'OCTUBRE - '#39' || extract (year' + + ' from fecha_vencimiento)'#10'when extract (month from fecha_vencimie' + + 'nto) = 11 then '#39'NOVIEMBRE - '#39' || extract (year from fecha_vencim' + + 'iento)'#10'when extract (month from fecha_vencimiento) = 12 then '#39'DI' + + 'CIEMBRE - '#39' || extract (year from fecha_vencimiento)'#10'end as TITU' + + 'LO,'#10'REFERENCIA, ID_CLIENTE, NOMBRE_CLIENTE, SITUACION, NIF_CIF_' + + 'CLIENTE, fecha_vencimiento, FECHA_EMISION,'#10'IMPORTE_TOTAL,'#10'case'#10'w' + + 'hen strlen(DATOS_BANCARIOS) = 0 then '#39'Sin cuenta bancaria'#39#10'else ' + + 'DATOS_BANCARIOS'#10'end as DATOS_BANCARIOS'#10#10'from V_recibos_cliente'#10'w' + + 'here {where}'#10'order by ANO, MES, FECHA_VENCIMIENTO, DATOS_BANCARI' + + 'OS, NOMBRE_CLIENTE'#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'MES' + TableField = 'MES' + end + item + DatasetField = 'TITULO' + TableField = 'TITULO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'NOMBRE_CLIENTE' + TableField = 'NOMBRE_CLIENTE' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'NIF_CIF_CLIENTE' + TableField = 'NIF_CIF_CLIENTE' + end + item + DatasetField = 'FECHA_VENCIMIENTO' + TableField = 'FECHA_VENCIMIENTO' + end + item + DatasetField = 'FECHA_EMISION' + TableField = 'FECHA_EMISION' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'ANO' + TableField = 'ANO' + end + item + DatasetField = 'DATOS_BANCARIOS' + TableField = 'DATOS_BANCARIOS' + end> + end> + Name = 'InformeListadoRecibosPendientes' + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'NOMBRE_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + end + item + Name = 'NIF_CIF_CLIENTE' + DataType = datString + Size = 15 + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'DATOS_BANCARIOS' + DataType = datString + Size = 255 + end> + end + item + Params = < + item + Name = 'ID_RECIBO' + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'SELECT'#10' V_RECIBOS_CLIENTE.REFERENCIA, V_RECIBOS_CLIENTE.DESCR' + + 'IPCION, V_RECIBOS_CLIENTE.IMPORTE_TOTAL'#10'FROM V_RECIBOS_CLIENTE'#10'W' + + 'HERE V_RECIBOS_CLIENTE.ID_RECIBO_COMPENSADO = :ID_RECIBO' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end> + end> + Name = 'Informe_Compensados' + Fields = < + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + end> + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'REMESAS_CLIENTE' + SQL = + 'SELECT'#10' V_RECIBOS_CLIENTE.ID,'#10' V_RECIBOS_CLIENTE.ID_RECIBO' + + '_COMPENSADO,'#10' V_RECIBOS_CLIENTE.REFERENCIA_REC_COMPENSADO,'#10' ' + + ' V_RECIBOS_CLIENTE.ID_EMPRESA,'#10' V_RECIBOS_CLIENTE.REFERENCIA' + + ','#10' V_RECIBOS_CLIENTE.SITUACION,'#10' V_RECIBOS_CLIENTE.ID_FACT' + + 'URA,'#10' V_RECIBOS_CLIENTE.DATOS_BANCARIOS,'#10' V_RECIBOS_CLIENT' + + 'E.ID_REMESA,'#10' V_RECIBOS_CLIENTE.REFERENCIA_REMESA,'#10' V_RECI' + + 'BOS_CLIENTE.FECHA_EMISION,'#10' V_RECIBOS_CLIENTE.FECHA_VENCIMIEN' + + 'TO,'#10' V_RECIBOS_CLIENTE.DESCRIPCION,'#10' V_RECIBOS_CLIENTE.OBS' + + 'ERVACIONES,'#10' V_RECIBOS_CLIENTE.IMPORTE,'#10' V_RECIBOS_CLIENTE' + + '.OTROS_GASTOS,'#10' V_RECIBOS_CLIENTE.IMPORTE_TOTAL,'#10' V_RECIBO' + + 'S_CLIENTE.FECHA_FACTURA,'#10' V_RECIBOS_CLIENTE.FORMA_PAGO_FACTUR' + + 'A,'#10' V_RECIBOS_CLIENTE.IMPORTE_FACTURA,'#10' V_RECIBOS_CLIENTE.' + + 'NOMBRE_CLIENTE,'#10' V_RECIBOS_CLIENTE.NIF_CIF_CLIENTE,'#10' V_REC' + + 'IBOS_CLIENTE.CALLE_CLIENTE,'#10' V_RECIBOS_CLIENTE.CODIGO_POSTAL_' + + 'CLIENTE,'#10' V_RECIBOS_CLIENTE.PROVINCIA_CLIENTE,'#10' V_RECIBOS_' + + 'CLIENTE.POBLACION_CLIENTE,'#10#10' EMPRESAS.NIF_CIF as NIF_CIF_EMPR' + + 'ESA, EMPRESAS.RAZON_SOCIAL,'#10' EMPRESAS.CALLE as CALLE_EMPRESA,' + + ' EMPRESAS.POBLACION as POBLACION_EMPRESA,'#10' EMPRESAS.PROVINCIA' + + ' as PROVINCIA_EMPRESA, EMPRESAS.CODIGO_POSTAL as CODIGO_POSTAL_E' + + 'MPRESA,'#10' EMPRESAS.TELEFONO_1, EMPRESAS.FAX, EMPRESAS.MOVIL_1,' + + ' EMPRESAS.EMAIL_1,'#10' EMPRESAS.PAGINA_WEB, EMPRESAS.REGISTRO_ME' + + 'RCANTIL, EMPRESAS.LOGOTIPO'#10#10'FROM'#10' V_RECIBOS_CLIENTE'#10' LEFT OUTE' + + 'R JOIN EMPRESAS ON (EMPRESAS.ID = V_RECIBOS_CLIENTE.ID_EMPRESA)'#10 + + 'WHERE'#10' V_RECIBOS_CLIENTE.ID = :ID'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_RECIBO_COMPENSADO' + TableField = '' + SQLOrigin = 'ID_RECIBO_COMPENSADO' + end + item + DatasetField = 'REFERENCIA_REC_COMPENSADO' + TableField = '' + SQLOrigin = 'REFERENCIA_REC_COMPENSADO' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'SITUACION' + TableField = '' + SQLOrigin = 'SITUACION' + end + item + DatasetField = 'ID_FACTURA' + TableField = '' + SQLOrigin = 'ID_FACTURA' + end + item + DatasetField = 'DATOS_BANCARIOS' + TableField = '' + SQLOrigin = 'DATOS_BANCARIOS' + end + item + DatasetField = 'ID_REMESA' + TableField = '' + SQLOrigin = 'ID_REMESA' + end + item + DatasetField = 'REFERENCIA_REMESA' + TableField = '' + SQLOrigin = 'REFERENCIA_REMESA' + end + item + DatasetField = 'FECHA_EMISION' + TableField = '' + SQLOrigin = 'FECHA_EMISION' + end + item + DatasetField = 'FECHA_VENCIMIENTO' + TableField = '' + SQLOrigin = 'FECHA_VENCIMIENTO' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'OBSERVACIONES' + TableField = '' + SQLOrigin = 'OBSERVACIONES' + end + item + DatasetField = 'IMPORTE' + TableField = '' + SQLOrigin = 'IMPORTE' + end + item + DatasetField = 'OTROS_GASTOS' + TableField = '' + SQLOrigin = 'OTROS_GASTOS' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'FECHA_FACTURA' + TableField = '' + SQLOrigin = 'FECHA_FACTURA' + end + item + DatasetField = 'FORMA_PAGO_FACTURA' + TableField = '' + SQLOrigin = 'FORMA_PAGO_FACTURA' + end + item + DatasetField = 'IMPORTE_FACTURA' + TableField = '' + SQLOrigin = 'IMPORTE_FACTURA' + end + item + DatasetField = 'NOMBRE_CLIENTE' + TableField = '' + SQLOrigin = 'NOMBRE_CLIENTE' + end + item + DatasetField = 'NIF_CIF_CLIENTE' + TableField = '' + SQLOrigin = 'NIF_CIF_CLIENTE' + end + item + DatasetField = 'CALLE_CLIENTE' + TableField = '' + SQLOrigin = 'CALLE_CLIENTE' + end + item + DatasetField = 'CODIGO_POSTAL_CLIENTE' + TableField = '' + SQLOrigin = 'CODIGO_POSTAL_CLIENTE' + end + item + DatasetField = 'PROVINCIA_CLIENTE' + TableField = '' + SQLOrigin = 'PROVINCIA_CLIENTE' + end + item + DatasetField = 'POBLACION_CLIENTE' + TableField = '' + SQLOrigin = 'POBLACION_CLIENTE' + end + item + DatasetField = 'NIF_CIF_EMPRESA' + TableField = '' + SQLOrigin = 'NIF_CIF_EMPRESA' + end + item + DatasetField = 'RAZON_SOCIAL' + TableField = '' + SQLOrigin = 'RAZON_SOCIAL' + end + item + DatasetField = 'CALLE_EMPRESA' + TableField = '' + SQLOrigin = 'CALLE_EMPRESA' + end + item + DatasetField = 'POBLACION_EMPRESA' + TableField = '' + SQLOrigin = 'POBLACION_EMPRESA' + end + item + DatasetField = 'PROVINCIA_EMPRESA' + TableField = '' + SQLOrigin = 'PROVINCIA_EMPRESA' + end + item + DatasetField = 'CODIGO_POSTAL_EMPRESA' + TableField = '' + SQLOrigin = 'CODIGO_POSTAL_EMPRESA' + end + item + DatasetField = 'TELEFONO_1' + TableField = '' + SQLOrigin = 'TELEFONO_1' + end + item + DatasetField = 'FAX' + TableField = '' + SQLOrigin = 'FAX' + end + item + DatasetField = 'MOVIL_1' + TableField = '' + SQLOrigin = 'MOVIL_1' + end + item + DatasetField = 'EMAIL_1' + TableField = '' + SQLOrigin = 'EMAIL_1' + end + item + DatasetField = 'PAGINA_WEB' + TableField = '' + SQLOrigin = 'PAGINA_WEB' + end + item + DatasetField = 'REGISTRO_MERCANTIL' + TableField = '' + SQLOrigin = 'REGISTRO_MERCANTIL' + end + item + DatasetField = 'LOGOTIPO' + TableField = '' + SQLOrigin = 'LOGOTIPO' + end> + end> + Name = 'Informe_Cabecera' + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_RECIBO_COMPENSADO' + DataType = datInteger + end + item + Name = 'REFERENCIA_REC_COMPENSADO' + DataType = datString + Size = 255 + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + end + item + Name = 'ID_FACTURA' + DataType = datInteger + end + item + Name = 'DATOS_BANCARIOS' + DataType = datString + Size = 255 + end + item + Name = 'ID_REMESA' + DataType = datInteger + end + item + Name = 'REFERENCIA_REMESA' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE' + DataType = datCurrency + end + item + Name = 'OTROS_GASTOS' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + end + item + Name = 'FORMA_PAGO_FACTURA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_FACTURA' + DataType = datCurrency + end + item + Name = 'NOMBRE_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'NIF_CIF_CLIENTE' + DataType = datString + Size = 15 + end + item + Name = 'CALLE_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL_CLIENTE' + DataType = datString + Size = 10 + end + item + Name = 'PROVINCIA_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'NIF_CIF_EMPRESA' + DataType = datString + Size = 15 + end + item + Name = 'RAZON_SOCIAL' + DataType = datString + Size = 255 + end + item + Name = 'CALLE_EMPRESA' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION_EMPRESA' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA_EMPRESA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL_EMPRESA' + DataType = datString + Size = 10 + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + end + item + Name = 'FAX' + DataType = datString + Size = 25 + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + end + item + Name = 'REGISTRO_MERCANTIL' + DataType = datString + Size = 255 + end + item + Name = 'LOGOTIPO' + DataType = datBlob + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_recibos_cliente' + SQL = + 'select ID_EMPRESA,'#10'extract (year from fecha_vencimiento) as ANO,' + + #10'extract (month from fecha_vencimiento) as MES,'#10'case'#10'when extrac' + + 't (month from fecha_vencimiento) = 1 then '#39'ENERO - '#39' || extract ' + + '(year from fecha_vencimiento)'#10'when extract (month from fecha_ven' + + 'cimiento) = 2 then '#39'FEBRERO - '#39' || extract (year from fecha_venc' + + 'imiento)'#10'when extract (month from fecha_vencimiento) = 3 then '#39'M' + + 'ARZO - '#39' || extract (year from fecha_vencimiento)'#10'when extract (' + + 'month from fecha_vencimiento) = 4 then '#39'ABRIL - '#39' || extract (ye' + + 'ar from fecha_vencimiento)'#10'when extract (month from fecha_vencim' + + 'iento) = 5 then '#39'MAYO - '#39' || extract (year from fecha_vencimient' + + 'o)'#10'when extract (month from fecha_vencimiento) = 6 then '#39'JUNIO -' + + ' '#39' || extract (year from fecha_vencimiento)'#10'when extract (month ' + + 'from fecha_vencimiento) = 7 then '#39'JULIO - '#39' || extract (year fro' + + 'm fecha_vencimiento)'#10'when extract (month from fecha_vencimiento)' + + ' = 8 then '#39'AGOSTO - '#39' || extract (year from fecha_vencimiento)'#10'w' + + 'hen extract (month from fecha_vencimiento) = 9 then '#39'SEPTIEMBRE ' + + '- '#39' || extract (year from fecha_vencimiento)'#10'when extract (month' + + ' from fecha_vencimiento) = 10 then '#39'OCTUBRE - '#39' || extract (year' + + ' from fecha_vencimiento)'#10'when extract (month from fecha_vencimie' + + 'nto) = 11 then '#39'NOVIEMBRE - '#39' || extract (year from fecha_vencim' + + 'iento)'#10'when extract (month from fecha_vencimiento) = 12 then '#39'DI' + + 'CIEMBRE - '#39' || extract (year from fecha_vencimiento)'#10'end as TITU' + + 'LO,'#10'case'#10'when strlen(DATOS_BANCARIOS) = 0 then '#39'Sin cuenta banca' + + 'ria'#39#10'else DATOS_BANCARIOS'#10'end as DATOS_BANCARIOS,'#10'sum(IMPORTE_TO' + + 'TAL) as Importe_total'#10#10'from V_recibos_cliente'#10'group by 1,2,3,4,5' + + #10'order by 1,2,3,4,5'#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'ANO' + TableField = 'ANO' + end + item + DatasetField = 'MES' + TableField = 'MES' + end + item + DatasetField = 'TITULO' + TableField = 'TITULO' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'DATOS_BANCARIOS' + TableField = 'DATOS_BANCARIOS' + end> + end> + Name = 'InformeListadoRecibosPendientesResumen' + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'DATOS_BANCARIOS' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_recibos_cliente' + SQL = + 'select ID_EMPRESA,'#10'extract (year from fecha_emision) as ANO,'#10'ext' + + 'ract (month from fecha_emision) as MES,'#10'case'#10'when extract (month' + + ' from fecha_emision) = 1 then '#39'ENERO - '#39' || extract (year from f' + + 'echa_emision)'#10'when extract (month from fecha_emision) = 2 then '#39 + + 'FEBRERO - '#39' || extract (year from fecha_emision)'#10'when extract (m' + + 'onth from fecha_emision) = 3 then '#39'MARZO - '#39' || extract (year fr' + + 'om fecha_emision)'#10'when extract (month from fecha_emision) = 4 th' + + 'en '#39'ABRIL - '#39' || extract (year from fecha_emision)'#10'when extract ' + + '(month from fecha_emision) = 5 then '#39'MAYO - '#39' || extract (year f' + + 'rom fecha_emision)'#10'when extract (month from fecha_emision) = 6 t' + + 'hen '#39'JUNIO - '#39' || extract (year from fecha_emision)'#10'when extract' + + ' (month from fecha_emision) = 7 then '#39'JULIO - '#39' || extract (year' + + ' from fecha_emision)'#10'when extract (month from fecha_emision) = 8' + + ' then '#39'AGOSTO - '#39' || extract (year from fecha_emision)'#10'when extr' + + 'act (month from fecha_emision) = 9 then '#39'SEPTIEMBRE - '#39' || extra' + + 'ct (year from fecha_emision)'#10'when extract (month from fecha_emis' + + 'ion) = 10 then '#39'OCTUBRE - '#39' || extract (year from fecha_emision)' + + #10'when extract (month from fecha_emision) = 11 then '#39'NOVIEMBRE - ' + + #39' || extract (year from fecha_emision)'#10'when extract (month from ' + + 'fecha_emision) = 12 then '#39'DICIEMBRE - '#39' || extract (year from fe' + + 'cha_emision)'#10'end as TITULO,'#10'REFERENCIA, ID_CLIENTE, NOMBRE_CLIE' + + 'NTE, SITUACION, NIF_CIF_CLIENTE, fecha_emision, FECHA_VENCIMIENT' + + 'O,'#10'IMPORTE_TOTAL'#10#10'from V_recibos_cliente'#10'where {where}'#10'order by ' + + 'ANO, MES, fecha_emision, NOMBRE_CLIENTE'#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'ANO' + TableField = 'ANO' + end + item + DatasetField = 'MES' + TableField = 'MES' + end + item + DatasetField = 'TITULO' + TableField = 'TITULO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'NOMBRE_CLIENTE' + TableField = 'NOMBRE_CLIENTE' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'NIF_CIF_CLIENTE' + TableField = 'NIF_CIF_CLIENTE' + end + item + DatasetField = 'FECHA_EMISION' + TableField = 'FECHA_EMISION' + end + item + DatasetField = 'FECHA_VENCIMIENTO' + TableField = 'FECHA_VENCIMIENTO' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end> + end> + Name = 'InformeListadoRecibos' + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'NOMBRE_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + end + item + Name = 'NIF_CIF_CLIENTE' + DataType = datString + Size = 15 + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_recibos_cliente' + SQL = + 'select ID_EMPRESA,'#10'extract (year from fecha_emision) as ANO,'#10'ext' + + 'ract (month from fecha_emision) as MES,'#10'case'#10'when extract (month' + + ' from fecha_emision) = 1 then '#39'ENERO - '#39' || extract (year from f' + + 'echa_emision)'#10'when extract (month from fecha_emision) = 2 then '#39 + + 'FEBRERO - '#39' || extract (year from fecha_emision)'#10'when extract (m' + + 'onth from fecha_emision) = 3 then '#39'MARZO - '#39' || extract (year fr' + + 'om fecha_emision)'#10'when extract (month from fecha_emision) = 4 th' + + 'en '#39'ABRIL - '#39' || extract (year from fecha_emision)'#10'when extract ' + + '(month from fecha_emision) = 5 then '#39'MAYO - '#39' || extract (year f' + + 'rom fecha_emision)'#10'when extract (month from fecha_emision) = 6 t' + + 'hen '#39'JUNIO - '#39' || extract (year from fecha_emision)'#10'when extract' + + ' (month from fecha_emision) = 7 then '#39'JULIO - '#39' || extract (year' + + ' from fecha_emision)'#10'when extract (month from fecha_emision) = 8' + + ' then '#39'AGOSTO - '#39' || extract (year from fecha_emision)'#10'when extr' + + 'act (month from fecha_emision) = 9 then '#39'SEPTIEMBRE - '#39' || extra' + + 'ct (year from fecha_emision)'#10'when extract (month from fecha_emis' + + 'ion) = 10 then '#39'OCTUBRE - '#39' || extract (year from fecha_emision)' + + #10'when extract (month from fecha_emision) = 11 then '#39'NOVIEMBRE - ' + + #39' || extract (year from fecha_emision)'#10'when extract (month from ' + + 'fecha_emision) = 12 then '#39'DICIEMBRE - '#39' || extract (year from fe' + + 'cha_emision)'#10'end as TITULO,'#10'sum(IMPORTE_TOTAL) as importe_total'#10 + + #10'from V_recibos_cliente'#10'group by 1,2,3,4'#10'order by 1,2,3,4'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'ANO' + TableField = 'ANO' + end + item + DatasetField = 'MES' + TableField = 'MES' + end + item + DatasetField = 'TITULO' + TableField = 'TITULO' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end> + end> + Name = 'InformeListadoRecibosResumen' + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 16 + end + object DataDictionary: TDADataDictionary + Fields = <> + Left = 46 + Top = 158 + end + object frxReport: TfrxReport + Version = '4.3' + DotMatrixReport = False + EngineOptions.DoublePass = True + IniFile = '\Software\Fast Reports' + PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator, pbExportQuick] + PreviewOptions.Zoom = 1.000000000000000000 + PrintOptions.Printer = 'Por defecto' + PrintOptions.PrintOnSheet = 0 + ReportOptions.CreateDate = 37800.807714351900000000 + ReportOptions.LastChange = 39840.717636527780000000 + ScriptLanguage = 'PascalScript' + ScriptText.Strings = ( + 'procedure frxReportOnStartReport(Sender: TfrxComponent);' + 'begin' + ' Set('#39'Pagina'#39', 0);' + ' Set('#39'TotalPaginas'#39', 0); ' + 'end;' + '' + 'procedure Band1OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if not Engine.FinalPass then' + ' Set('#39'TotalPaginas'#39', ( + 1));' + '' + ' if Engine.FinalPass then' + ' Set('#39'Pagina'#39', ( + 1)); ' + 'end;' + '' + 'procedure mContinuaOnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if Engine.FinalPass then' + ' begin' + + ' //A la vez que salta este salta la asignacion de pagina por ' + + 'lo que no coincide nunca si no suponemos +1 ' + + ' ' + + ' ' + + ' ' + + ' ' + ' if (( + 1) = ) then' + ' begin ' + ' mContinua.Visible := True;' + ' end ' + ' else' + ' begin ' + ' mContinua.Visible := False;' + ' end ' + ' end; ' + 'end;' + '' + 'begin' + '' + 'end.') + ShowProgress = False + StoreInDFM = False + OnStartReport = 'frxReportOnStartReport' + Left = 169 + Top = 16 + end + object frxDBCabecera: TfrxDBDataset + UserName = 'frxDBCabecera' + CloseDataSource = False + DataSource = DADataCabecera + Left = 264 + Top = 16 + end + object DADataCompensados: TDADataSource + DataSet = tbl_Compensados.Dataset + DataTable = tbl_Compensados + Left = 360 + Top = 72 + end + object frxDBCompensados: TfrxDBDataset + UserName = 'frxDBCompensados' + CloseDataSource = False + DataSource = DADataCompensados + Left = 360 + Top = 16 + end + object tbl_Compensados: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + end> + Params = < + item + Name = 'ID_RECIBO' + Value = '' + ParamType = daptInput + end> + MasterMappingMode = mmDataRequest + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = Bin2DataStreamer + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Informe_Compensados' + IndexDefs = <> + Left = 360 + Top = 128 + end + object tbl_InformeListadoRecibos: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'NOMBRE_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + end + item + Name = 'NIF_CIF_CLIENTE' + DataType = datString + Size = 15 + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + Params = <> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = Bin2DataStreamer + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'InformeListadoRecibos' + IndexDefs = <> + Left = 496 + Top = 128 + end + object DADSInformeListadoRecibos: TDADataSource + DataSet = tbl_InformeListadoRecibos.Dataset + DataTable = tbl_InformeListadoRecibos + Left = 496 + Top = 72 + end + object frxDBInformeListadoRecibos: TfrxDBDataset + UserName = 'frxDBInformeListadoRecibos' + CloseDataSource = False + DataSource = DADSInformeListadoRecibos + Left = 496 + Top = 16 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 88 + end + object frxDBInformeListadoRecibosResumen: TfrxDBDataset + UserName = 'frxDBInformeListadoRecibosResumen' + CloseDataSource = False + DataSource = DADSInformeListadoRecibosResumen + Left = 504 + Top = 192 + end + object DADSInformeListadoRecibosResumen: TDADataSource + DataSet = tbl_InformeListadoRecibosResumen.Dataset + DataTable = tbl_InformeListadoRecibosResumen + Left = 504 + Top = 248 + end + object tbl_InformeListadoRecibosResumen: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + MasterMappingMode = mmDataRequest + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + IndexDefs = <> + Left = 504 + Top = 304 + end + object frxDBInformeListadoRecibosPendientes: TfrxDBDataset + UserName = 'frxDBInformeListadoRecibosPendientes' + CloseDataSource = False + DataSource = DADSInformeListadoRecibosPendientes + Left = 704 + Top = 16 + end + object DADSInformeListadoRecibosPendientes: TDADataSource + DataSet = tbl_InformeListadoRecibosPendientes.Dataset + DataTable = tbl_InformeListadoRecibosPendientes + Left = 704 + Top = 72 + end + object tbl_InformeListadoRecibosPendientes: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'NOMBRE_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + end + item + Name = 'NIF_CIF_CLIENTE' + DataType = datString + Size = 15 + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'DATOS_BANCARIOS' + DataType = datString + Size = 255 + end> + Params = <> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = Bin2DataStreamer + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'InformeListadoRecibosPendientes' + IndexDefs = <> + Left = 704 + Top = 128 + end + object frxDBInformeListadoRecibosPendResumen: TfrxDBDataset + UserName = 'frxDBInformeListadoRecibosPendResumen' + CloseDataSource = False + DataSource = DADSInformeListadoRecibosPendResumen + Left = 704 + Top = 192 + end + object DADSInformeListadoRecibosPendResumen: TDADataSource + DataSet = tbl_InformeListadoRecibosPendResumen.Dataset + DataTable = tbl_InformeListadoRecibosPendResumen + Left = 704 + Top = 248 + end + object tbl_InformeListadoRecibosPendResumen: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + MasterMappingMode = mmDataRequest + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + IndexDefs = <> + Left = 704 + Top = 304 + end +end diff --git a/Source/Modulos/Recibos de cliente/Reports/uRptRecibosCliente_Server.pas b/Source/Modulos/Recibos de cliente/Reports/uRptRecibosCliente_Server.pas new file mode 100644 index 0000000..e445568 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Reports/uRptRecibosCliente_Server.pas @@ -0,0 +1,585 @@ +unit uRptRecibosCliente_Server; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, frxClass, frxDBSet, uDAScriptingProvider, + uDADataTable, uDAMemDataTable, DB, uDAClasses, frxChart, frxGradient, + frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes, + uDAInterfaces, uDADataStreamer, FactuGES_Intf, uDABin2DataStreamer; + +type + TRptRecibosCliente = class(TDataModule) + DADataCabecera: TDADataSource; + tbl_Cabecera: TDAMemDataTable; + frxRichObject1: TfrxRichObject; + frxBarCodeObject1: TfrxBarCodeObject; + frxOLEObject1: TfrxOLEObject; + frxCrossObject1: TfrxCrossObject; + frxCheckBoxObject1: TfrxCheckBoxObject; + frxGradientObject1: TfrxGradientObject; + frxChartObject1: TfrxChartObject; + frxDBCabecera: TfrxDBDataset; + DADataCompensados: TDADataSource; + frxDBCompensados: TfrxDBDataset; + tbl_Compensados: TDAMemDataTable; + frxReport: TfrxReport; + tbl_InformeListadoRecibos: TDAMemDataTable; + DADSInformeListadoRecibos: TDADataSource; + frxDBInformeListadoRecibos: TfrxDBDataset; + Bin2DataStreamer: TDABin2DataStreamer; + frxDBInformeListadoRecibosResumen: TfrxDBDataset; + DADSInformeListadoRecibosResumen: TDADataSource; + tbl_InformeListadoRecibosResumen: TDAMemDataTable; + frxDBInformeListadoRecibosPendientes: TfrxDBDataset; + DADSInformeListadoRecibosPendientes: TDADataSource; + tbl_InformeListadoRecibosPendientes: TDAMemDataTable; + frxDBInformeListadoRecibosPendResumen: TfrxDBDataset; + DADSInformeListadoRecibosPendResumen: TDADataSource; + tbl_InformeListadoRecibosPendResumen: TDAMemDataTable; + schReport: TDASchema; + DataDictionary: TDADataDictionary; + procedure DataModuleCreate(Sender: TObject); + procedure DataModuleDestroy(Sender: TObject); + + private + FConnection: IDAConnection; + FIdEmpresa: Integer; + FFechaInicio: Variant; + FFechaFin: Variant; + FFechaVenInicio: Variant; + FFechaVenFin: Variant; + FListaIDClientes: TIntegerArray; + FListaNombresClientes : TStringList; + FImporteMinimo: Currency; + FDesglosado : Boolean; + + procedure _GenerarRecibo(const ID : Integer); + + procedure PrepararTablaInforme(ATabla: TDAMemDataTable); + procedure PrepararTablaResumenInforme(ATabla: IDADataset); + function _GenerarInforme(const TipoInforme: String): Binary; + procedure IniciarParametrosInforme; + procedure RecuperarNombresClientes; + + public + function GenerarRecibo(const ListaID : TIntegerArray): Binary; + function GenerarInformeListadoRecibos(const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; const FechaVenInicio: Variant; FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoRecibosPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + + end; + +implementation + +{$R *.dfm} + +uses + uSistemaFunc, StrUtils, uDataModuleServer, schRecibosClienteClient_Intf, + uROServer, DataAbstract4_Intf; + +const + rptInforme = 'InfReciboCliente.fr3'; + rptInformeListadoRecibosClienteDesglosado = 'InformeListadoRecibosClienteDesglosado.fr3'; + rptInformeListadoRecibosCliente = 'InformeListadoRecibosCliente.fr3'; + rptInformeListadoRecibosCliPendientes = 'InformeListadoRecibosCliPendientes.fr3'; + rptInformeListadoRecibosCliPendientesDesglosado = 'InformeListadoRecibosCliPendientesDesglosado.fr3'; + + { Dataset names for schReport } + ds_InformeCabecera = 'Informe_Cabecera'; + ds_InformeCompensados = 'Informe_Compensados'; + ds_InformeListadoRecibosResumen = 'InformeListadoRecibosResumen'; + ds_InformeListadoRecibosPendientesResumen = 'InformeListadoRecibosPendientesResumen'; + + +{ TRptReciboCliente } + + +procedure TRptRecibosCliente.DataModuleCreate(Sender: TObject); +begin + schReport.ConnectionManager := dmServer.ConnectionManager; + FConnection := dmServer.DarNuevaConexion; + frxReport.EngineOptions.NewSilentMode := simReThrow; + + FListaNombresClientes := TStringList.Create; + + frxDBCabecera.DataSource := DADataCabecera; + frxDBCabecera.CloseDataSource := False; + + frxDBCompensados.DataSource := DADataCompensados; + frxDBCompensados.CloseDataSource := False; +end; + +function TRptRecibosCliente.GenerarRecibo(const ListaID: TIntegerArray): Binary; +var + i: Integer; +begin + Result := Binary.Create; + try + //Vamos generando todos y cada uno de los albaranes recibidos + for i := 0 to ListaID.Count - 1 do + _GenerarRecibo(ListaID.Items[i]); + frxReport.PreviewPages.SaveToStream(Result); + finally + end; +end; + +procedure TRptRecibosCliente.IniciarParametrosInforme; +var + ATextos : TStringList; + ACadena : String; +begin + ATextos := TStringList.Create; + + try + if (not VarIsNull(FFechaInicio)) and (not VarIsNull(FFechaFin)) then + ACadena := Format('Fechas de factura desde el %s hasta el %s', [VarToStr(FFechaInicio), VarToStr(FFechaFin)]) + else + ACadena := 'Sin rango de fechas'; + ATextos.Add(ACadena); + ACadena := ''; + + // Filtrar el informe por fechas de vencimiento + if (not VarIsNull(FFechaVenInicio)) and (not VarIsNull(FFechaVenFin)) then + begin + ACadena := Format('Vencimientos desde el %s hasta el %s', [VarToStr(FFechaVenInicio), VarToStr(FFechaVenFin)]); + ATextos.Add(ACadena); + ACadena := ''; + end; + + if (FImporteMinimo > 0) then + begin + ACadena := Format('Facturas con importe superior a %m', [FImporteMinimo]); + ATextos.Add(ACadena); + ACadena := ''; + end; + + if Assigned(FListaIDClientes) and (FListaIDClientes.Count > 0) then + begin + RecuperarNombresClientes; + ACadena := FListaNombresClientes.Text; + end + else begin + ACadena := 'Todos los clientes'; + if FDesglosado then + ACadena := ACadena + ' (desglosados)' + end; + + ATextos.Add(ACadena); + ACadena := ''; + + frxReport.Variables.Variables['TextoParametros'] := ATextos.Text; + finally + FreeAndNil(ATextos); + end; +end; + +procedure TRptRecibosCliente.PrepararTablaInforme(ATabla: TDAMemDataTable); +var + Condicion: TDAWhereExpression; + i: Integer; + +begin + // Filtrar el informe por empresa + with ATabla.DynamicWhere do + begin + // (ID_EMPRESA >= ID) + Condicion := NewBinaryExpression(NewField('', fld_RecibosClienteID_EMPRESA), NewConstant(FIdEmpresa, datInteger), dboEqual); + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + // Filtrar el informe por fechas + if not VarIsNull(FFechaInicio) + and not VarIsNull(FFechaFin) then + begin + with ATabla.DynamicWhere do + begin + // (FECHA_INICIO between FECHA_FIN) + Condicion := NewBinaryExpression(NewField('', fld_RecibosClienteFECHA_EMISION), NewConstant(FFechaInicio, datDateTime), dboGreaterOrEqual); + Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_RecibosClienteFECHA_EMISION), NewConstant(FFechaFin, datDateTime), dboLessOrEqual), Condicion, dboAnd); + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + end; + + // Filtrar el informe por fechas de vencimiento + if not VarIsNull(FFechaVenInicio) + and not VarIsNull(FFechaVenFin) then + begin + with ATabla.DynamicWhere do + begin + // (FECHA_VENCIMIENTO_INICIO between FECHA_VENCIMIENTO_FIN) + Condicion := NewBinaryExpression(NewField('', fld_RecibosClienteFECHA_VENCIMIENTO), NewConstant(FFechaVenInicio, datDateTime), dboGreaterOrEqual); + Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_RecibosClienteFECHA_VENCIMIENTO), NewConstant(FFechaVenFin, datDateTime), dboLessOrEqual), Condicion, dboAnd); + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + end; + + // Filtrar el informe por proveedor + if Assigned(FListaIDClientes) then + begin + with ATabla.DynamicWhere do + begin + for i := 0 to FListaIDClientes.Count - 1 do + begin + + // (ID_PROVEEDOR = ID) + Condicion := NewBinaryExpression(NewField('', fld_RecibosClienteID_CLIENTE), NewConstant(FListaIDClientes.Items[i], datInteger), dboEqual); + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + end; + end; + + // Filtrar el informe por importe minimo + if (FImporteMinimo > 0) then + begin + with ATabla.DynamicWhere do + begin + // (IMPORTE_TOTAL > ImporteMinimo) + Condicion := NewBinaryExpression(NewField('', fld_RecibosClienteIMPORTE_TOTAL), NewConstant(FImporteMinimo, datCurrency), dboGreaterOrEqual); + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + end; +end; + +procedure TRptRecibosCliente.PrepararTablaResumenInforme(ATabla: IDADataset); +var + i: Integer; + AWhereStr : String; + +begin + // Filtrar el informe por empresa + AWhereStr := ' (' + fld_RecibosClienteID_EMPRESA + ' = ' + IntToStr(FIdEmpresa) + ') '; + + // Filtrar el informe por fechas + if not VarIsNull(FFechaInicio) + and not VarIsNull(FFechaFin) then + begin + if Length(AWhereStr) > 0 then + AWhereStr := AWhereStr + 'AND'; + AWhereStr := AWhereStr + ' (' + fld_RecibosClienteFECHA_EMISION + ' between ''' + ReplaceStr(VarToStr(FFechaInicio),'/','.') + ''' and ''' + ReplaceStr(VarToStr(FFechaFin),'/','.') + ''') '; + end; + + // Filtrar el informe por fechas de vencimiento + if not VarIsNull(FFechaVenInicio) + and not VarIsNull(FFechaVenFin) then + begin + if Length(AWhereStr) > 0 then + AWhereStr := AWhereStr + 'AND'; + AWhereStr := AWhereStr + ' (' + fld_RecibosClienteFECHA_VENCIMIENTO + ' between ''' + ReplaceStr(VarToStr(FFechaVenInicio),'/','.') + ''' and ''' + ReplaceStr(VarToStr(FFechaVenFin),'/','.') + ''') '; + end; + + // Filtrar el informe por proveedor + if Assigned(FListaIDClientes) then + begin + for i := 0 to FListaIDClientes.Count - 1 do + begin + if Length(AWhereStr) > 0 then + AWhereStr := AWhereStr + 'AND'; + AWhereStr := AWhereStr + ' (' + fld_RecibosClienteID_CLIENTE + ' = ' + IntToStr(FListaIDClientes.Items[i]) + ') '; + end; + end; + + // Filtrar el informe por importe minimo + if (FImporteMinimo > 0) then + begin + if Length(AWhereStr) > 0 then + AWhereStr := AWhereStr + 'AND'; + AWhereStr := AWhereStr + ' (' + fld_RecibosClienteIMPORTE_TOTAL + ' >= ' + CurrToStr(FImporteMinimo) + ') '; + end; + + ATabla.Where.AddText(AWhereStr); +end; + +procedure TRptRecibosCliente.RecuperarNombresClientes; +var + AContactosService : IsrvContactos; + Intf : IInterface; + AClientID : TGUID; + + ATableNameArray: StringArray; + ATableRequestInfoArray: TableRequestInfoArray; + ATableRequestInfo: TableRequestInfoV5; + AStream: TMemoryStream; + ADataTable: TDAMemDataTable; + i: Integer; + AWhereBuilder : TDAWhereBuilder; + ACondicion : TDAWhereExpression; +begin + CreateGUID(AClientID); + + GetClassFactory('srvContactos').CreateInstance(AClientID, Intf); + + if Assigned(Intf) then + begin + AContactosService := Intf as IsrvContactos; + + ATableNameArray := StringArray.Create; + ATableRequestInfoArray := TableRequestInfoArray.Create; + AWhereBuilder := TDAWhereBuilder.Create; + try + ATableNameArray.Add('Clientes'); + ATableRequestInfo := TableRequestInfoV5.Create; + + with ATableRequestInfo do + begin + IncludeSchema := True; + MaxRecords := -1; + UserFilter := ''; + + AWhereBuilder.Clear; + with AWhereBuilder do + for i := 0 to FListaIDClientes.Count - 1 do + begin + ACondicion := NewBinaryExpression( + NewBinaryExpression(NewField('', 'ID'), NewConstant(FListaIDClientes[i], datInteger), dboEqual), + NewBinaryExpression(NewField('', 'ID_EMPRESA'), NewConstant(FIdEmpresa, datInteger), dboEqual), + dboAnd); + + if not AWhereBuilder.IsEmpty then + Expression := NewBinaryExpression(Expression, ACondicion, dboOr) + else + Expression := ACondicion; + end; + + WhereClause := AWhereBuilder.ExpressionToXmlNode(AWhereBuilder.Expression); + end; + + try + ATableRequestInfoArray.Add(ATableRequestInfo); + AStream := AContactosService.GetData(ATableNameArray, ATableRequestInfoArray); + if Assigned(AStream) then + begin + ADataTable := TDAMemDataTable.Create(nil); + try + ADataTable.Name := 'Clientes'; + ADataTable.LocalDataStreamer := Bin2DataStreamer; + ADataTable.RemoteFetchEnabled := False; + Bin2DataStreamer.ReadDataset(AStream, ADataTable, True); + + ADataTable.Open; + FListaNombresClientes.Clear; + for i := 0 to ADataTable.RecordCount - 1 do + begin + FListaNombresClientes.Add(ADataTable.FieldByName('NOMBRE').AsString); + ADataTable.Next; + end; + + finally + FreeANDNil(ADataTable); + end; + end; + except + on e: Exception do + dmServer.EscribirLog(e.Message); + end; + finally + FreeANDNIL(ATableRequestInfoArray); + FreeANDNIL(ATableNameArray); + FreeANDNIL(AWhereBuilder); + end; + end; +end; + +procedure TRptRecibosCliente.DataModuleDestroy(Sender: TObject); +begin + tbl_Cabecera.Active := False; + tbl_Compensados.Active := False; + + FreeANDNIL(FListaNombresClientes); +end; + +function TRptRecibosCliente.GenerarInformeListadoRecibos( + const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; + const FechaVenInicio: Variant; FechaVenFin: Variant; + const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; + const ImporteMinimo: Currency): Binary; +var + ATipoInforme: String; + AStream: TMemoryStream; + dsMaster: IDADataset; + +begin + FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + + AStream := TMemoryStream.Create; + try + //Inicializamos parametros + FIdEmpresa := IdEmpresa; + FFechaInicio := FechaInicio; + FFechaFin := FechaFin; + FFechaVenInicio := FechaVenInicio; + FFechaVenFin := FechaVenFin; + FImporteMinimo := ImporteMinimo; + FListaIDClientes := ListaIDClientes; + + //Se prepara la tabla del listado general del informe + if tbl_InformeListadoRecibos.Active then + tbl_InformeListadoRecibos.Active := False; + PrepararTablaInforme(tbl_InformeListadoRecibos); + + //Se prepara la tabla del listado resumen del informe + if tbl_InformeListadoRecibosResumen.Active then + tbl_InformeListadoRecibosResumen.Active := False; + + dsMaster := schReport.NewDataset(FConnection, ds_InformeListadoRecibosResumen, [], [], False); + PrepararTablaResumenInforme(dsMaster); + // Filtrar el informe por situacion + //Esto se hace para rellenar la tabla del datamodule que usa el informe. + dsMaster.Open; + AStream.Clear; + Bin2DataStreamer.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1); + Bin2DataStreamer.ReadDataset(AStream, tbl_InformeListadoRecibosResumen, TRUE, '', TRUE, TRUE); + + //DESGLOSADO POR CLIENTE EN ESTE INFORME NO SE DESGLOSAR POR CLIENTE + FDesglosado := Desglosado; + if FDesglosado then + ATipoInforme := rptInformeListadoRecibosClienteDesglosado + else + ATipoInforme := rptInformeListadoRecibosCliente; + + //Finalmente se abren las tablas del informe + tbl_InformeListadoRecibos.Active := True; + tbl_InformeListadoRecibosResumen.Active := True; + + Result := _GenerarInforme(ATipoInforme); + finally + AStream.Free; + dsMaster := Nil; + FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + end; +end; + +function TRptRecibosCliente.GenerarInformeListadoRecibosPendientes( + const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; + const FechaVenInicio, FechaVenFin: Variant; + const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; + const ImporteMinimo: Currency): Binary; +var + Condicion: TDAWhereExpression; + ATipoInforme: String; + AStream: TMemoryStream; + dsMaster: IDADataset; + +begin + FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + + AStream := TMemoryStream.Create; + try + //Inicializamos parametros + FIdEmpresa := IdEmpresa; + FFechaInicio := FechaInicio; + FFechaFin := FechaFin; + FFechaVenInicio := FechaVenInicio; + FFechaVenFin := FechaVenFin; + FImporteMinimo := ImporteMinimo; + FListaIDClientes := ListaIDClientes; + + //Se prepara la tabla del listado general del informe + if tbl_InformeListadoRecibosPendientes.Active then + tbl_InformeListadoRecibosPendientes.Active := False; + PrepararTablaInforme(tbl_InformeListadoRecibosPendientes); + + // Filtrar el informe por situacion + with tbl_InformeListadoRecibosPendientes.DynamicWhere do + begin + // (ID_EMPRESA >= ID) + Condicion := NewBinaryExpression(NewField('', fld_RecibosClienteSITUACION), NewConstant('COBRADO', datString), dboNotEqual); + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + //Se prepara la tabla del listado resumen del informe + if tbl_InformeListadoRecibosPendResumen.Active then + tbl_InformeListadoRecibosPendResumen.Active := False; + + dsMaster := schReport.NewDataset(FConnection, ds_InformeListadoRecibosPendientesResumen, [], [], False); + PrepararTablaResumenInforme(dsMaster); + // Filtrar el informe por situacion + dsMaster.Where.AddText(' AND (SITUACION <> ''COBRADO'')'); + //Esto se hace para rellenar la tabla del datamodule que usa el informe. + dsMaster.Open; + AStream.Clear; + Bin2DataStreamer.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1); + Bin2DataStreamer.ReadDataset(AStream, tbl_InformeListadoRecibosPendResumen, TRUE, '', TRUE, TRUE); + + //DESGLOSADO POR CLIENTE EN ESTE INFORME NO SE DESGLOSAR POR CLIENTE + FDesglosado := Desglosado; + if FDesglosado then + ATipoInforme := rptInformeListadoRecibosCliPendientesDesglosado + else + ATipoInforme := rptInformeListadoRecibosCliPendientes; + + //Finalmente se abren las tablas del informe + tbl_InformeListadoRecibosPendientes.Active := True; + tbl_InformeListadoRecibosPendResumen.Active := True; + + Result := _GenerarInforme(ATipoInforme); + finally + AStream.Free; + dsMaster := Nil; + FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + end; +end; + +function TRptRecibosCliente._GenerarInforme(const TipoInforme: String): Binary; +var + AInforme: Variant; + +begin + Result := Binary.Create; + AInforme := DarRutaFichero(DarRutaInformes, TipoInforme, IntToStr(FIDEmpresa)); + if VarIsNull(AInforme) then + raise Exception.Create (('Error Servidor: _GenerarInforme, no encuentra informe ' + TipoInforme)); + + frxReport.LoadFromFile(AInforme, True); + IniciarParametrosInforme; + + frxReport.PrepareReport(False); + frxReport.PreviewPages.SaveToStream(Result); +end; + +procedure TRptRecibosCliente._GenerarRecibo(const ID: Integer); +var + AInforme: Variant; + +begin + FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + try + tbl_Cabecera.Active := False; + tbl_Compensados.Active := False; + + tbl_Cabecera.ParamByName('ID').AsInteger := ID; + tbl_Compensados.ParamByName('ID_RECIBO').AsInteger := ID; + + tbl_Cabecera.Active := True; + tbl_Compensados.Active := True; + + AInforme := DarRutaFichero(DarRutaInformes, rptInforme, tbl_Cabecera.FieldByName('ID_EMPRESA').AsString); + if VarIsNull(AInforme) then + raise Exception.Create (('Error Servidor: _GenerarRecibo, no encuentra informe ' + rptInforme)); + + frxReport.LoadFromFile(AInforme, True); + frxReport.PrepareReport(False); + finally + FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + end; +end; + +end. diff --git a/Source/Modulos/Recibos de cliente/Servidor/srvRecibosCliente_Impl.dcu b/Source/Modulos/Recibos de cliente/Servidor/srvRecibosCliente_Impl.dcu new file mode 100644 index 0000000..d7b1ab7 Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Servidor/srvRecibosCliente_Impl.dcu differ diff --git a/Source/Modulos/Recibos de cliente/Servidor/srvRecibosCliente_Impl.dfm b/Source/Modulos/Recibos de cliente/Servidor/srvRecibosCliente_Impl.dfm new file mode 100644 index 0000000..89b0d41 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Servidor/srvRecibosCliente_Impl.dfm @@ -0,0 +1,1474 @@ +object srvRecibosCliente: TsrvRecibosCliente + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + ConnectionName = 'IBX' + ServiceSchema = schRecibosCliente + ServiceDataStreamer = Bin2DataStreamer + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + Height = 247 + Width = 347 + object schRecibosCliente: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DADataDictionary + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + Name = 'IBX' + SQL = + 'select ANO from'#10'(select distinct(substr(FECHA_EMISION, 1,4)) as ' + + 'ANO'#10'from recibos_cliente'#10'order by 1 desc)'#10#10'UNION ALL'#10#10'select dis' + + 'tinct '#39'Todos'#39' as ANO'#10'from empresas'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ANO' + TableField = 'ANO' + end> + end> + Name = 'ListaAnosRecibos' + Fields = < + item + Name = 'ANO' + DataType = datString + Size = 254 + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_RECIBOS_CLIENTE' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_RECIBO_COMPENSADO' + TableField = 'ID_RECIBO_COMPENSADO' + end + item + DatasetField = 'REFERENCIA_REC_COMPENSADO' + TableField = 'REFERENCIA_REC_COMPENSADO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'ID_FACTURA' + TableField = 'ID_FACTURA' + end + item + DatasetField = 'ID_REMESA' + TableField = 'ID_REMESA' + end + item + DatasetField = 'REFERENCIA_REMESA' + TableField = 'REFERENCIA_REMESA' + end + item + DatasetField = 'FECHA_EMISION' + TableField = 'FECHA_EMISION' + end + item + DatasetField = 'FECHA_VENCIMIENTO' + TableField = 'FECHA_VENCIMIENTO' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'IMPORTE' + TableField = 'IMPORTE' + end + item + DatasetField = 'OTROS_GASTOS' + TableField = 'OTROS_GASTOS' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'FECHA_FACTURA' + TableField = 'FECHA_FACTURA' + end + item + DatasetField = 'FORMA_PAGO_FACTURA' + TableField = 'FORMA_PAGO_FACTURA' + end + item + DatasetField = 'IMPORTE_FACTURA' + TableField = 'IMPORTE_FACTURA' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'DATOS_BANCARIOS' + TableField = 'DATOS_BANCARIOS' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'NOMBRE_CLIENTE' + TableField = 'NOMBRE_CLIENTE' + end + item + DatasetField = 'NIF_CIF_CLIENTE' + TableField = 'NIF_CIF_CLIENTE' + end + item + DatasetField = 'CALLE_CLIENTE' + TableField = 'CALLE_CLIENTE' + end + item + DatasetField = 'POBLACION_CLIENTE' + TableField = 'POBLACION_CLIENTE' + end + item + DatasetField = 'CODIGO_POSTAL_CLIENTE' + TableField = 'CODIGO_POSTAL_CLIENTE' + end + item + DatasetField = 'PROVINCIA_CLIENTE' + TableField = 'PROVINCIA_CLIENTE' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end> + end> + Name = 'RecibosCliente' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_RECIBOS_CLIENTE_ID' + ServerAutoRefresh = True + DictionaryEntry = 'RecibosCliente_ID' + InPrimaryKey = True + end + item + Name = 'ID_RECIBO_COMPENSADO' + DataType = datInteger + end + item + Name = 'REFERENCIA_REC_COMPENSADO' + DataType = datString + Size = 255 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'RecibosCliente_REFERENCIA' + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + DictionaryEntry = 'RecibosCliente_SITUACION' + end + item + Name = 'ID_FACTURA' + DataType = datInteger + DictionaryEntry = 'RecibosCliente_ID_FACTURA' + end + item + Name = 'ID_REMESA' + DataType = datInteger + DictionaryEntry = 'RecibosCliente_ID_REMESA' + end + item + Name = 'REFERENCIA_REMESA' + DataType = datString + Size = 255 + DictionaryEntry = 'RecibosCliente_REFERENCIA_REMESA' + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + DictionaryEntry = 'RecibosCliente_FECHA_EMISION' + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + DictionaryEntry = 'RecibosCliente_FECHA_VENCIMIENTO' + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DictionaryEntry = 'RecibosCliente_DESCRIPCION' + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + DictionaryEntry = 'RecibosCliente_OBSERVACIONES' + end + item + Name = 'IMPORTE' + DataType = datCurrency + DictionaryEntry = 'RecibosCliente_IMPORTE' + end + item + Name = 'OTROS_GASTOS' + DataType = datCurrency + DictionaryEntry = 'RecibosCliente_OTROS_GASTOS' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DictionaryEntry = 'RecibosCliente_IMPORTE_TOTAL' + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + DictionaryEntry = 'RecibosCliente_FECHA_FACTURA' + end + item + Name = 'FORMA_PAGO_FACTURA' + DataType = datString + Size = 255 + DictionaryEntry = 'RecibosCliente_FORMA_PAGO_FACTURA' + end + item + Name = 'IMPORTE_FACTURA' + DataType = datCurrency + DictionaryEntry = 'RecibosCliente_IMPORTE_FACTURA' + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'RecibosCliente_ID_EMPRESA' + end + item + Name = 'DATOS_BANCARIOS' + DataType = datString + Size = 255 + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + DictionaryEntry = 'RecibosCliente_ID_CLIENTE' + end + item + Name = 'NOMBRE_CLIENTE' + DataType = datString + Size = 255 + DictionaryEntry = 'RecibosCliente_NOMBRE_CLIENTE' + end + item + Name = 'NIF_CIF_CLIENTE' + DataType = datString + Size = 15 + DictionaryEntry = 'RecibosCliente_NIF_CIF_CLIENTE' + end + item + Name = 'CALLE_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL_CLIENTE' + DataType = datString + Size = 10 + end + item + Name = 'PROVINCIA_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'RecibosCliente_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'RecibosCliente_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'RecibosCliente_USUARIO' + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'PAGOS_CLIENTE' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_RECIBO' + TableField = 'ID_RECIBO' + end + item + DatasetField = 'TIPO' + TableField = 'TIPO' + end + item + DatasetField = 'FECHA_PAGO' + TableField = 'FECHA_PAGO' + end + item + DatasetField = 'TITULAR' + TableField = 'TITULAR' + end + item + DatasetField = 'ENTIDAD' + TableField = 'ENTIDAD' + end + item + DatasetField = 'SUCURSAL' + TableField = 'SUCURSAL' + end + item + DatasetField = 'DC' + TableField = 'DC' + end + item + DatasetField = 'CUENTA' + TableField = 'CUENTA' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end> + end> + Name = 'PagosCliente' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_PAGOS_CLIENTE_ID' + ServerAutoRefresh = True + DictionaryEntry = 'PagosCliente_ID' + InPrimaryKey = True + end + item + Name = 'ID_RECIBO' + DataType = datInteger + DictionaryEntry = 'PagosCliente_ID_RECIBO' + end + item + Name = 'TIPO' + DataType = datString + Size = 255 + DictionaryEntry = 'PagosCliente_TIPO' + end + item + Name = 'FECHA_PAGO' + DataType = datDateTime + DictionaryEntry = 'PagosCliente_FECHA_PAGO' + end + item + Name = 'TITULAR' + DataType = datString + Size = 255 + DictionaryEntry = 'PagosCliente_TITULAR' + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + DictionaryEntry = 'PagosCliente_ENTIDAD' + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + DictionaryEntry = 'PagosCliente_SUCURSAL' + end + item + Name = 'DC' + DataType = datString + Size = 15 + DictionaryEntry = 'PagosCliente_DC' + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + DictionaryEntry = 'PagosCliente_CUENTA' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'PagosCliente_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'PagosCliente_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'PagosCliente_USUARIO' + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_RECIBOS_CLIENTE' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_RECIBO_COMPENSADO' + TableField = 'ID_RECIBO_COMPENSADO' + end + item + DatasetField = 'REFERENCIA_REC_COMPENSADO' + TableField = 'REFERENCIA_REC_COMPENSADO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'ID_FACTURA' + TableField = 'ID_FACTURA' + end + item + DatasetField = 'ID_REMESA' + TableField = 'ID_REMESA' + end + item + DatasetField = 'REFERENCIA_REMESA' + TableField = 'REFERENCIA_REMESA' + end + item + DatasetField = 'FECHA_EMISION' + TableField = 'FECHA_EMISION' + end + item + DatasetField = 'FECHA_VENCIMIENTO' + TableField = 'FECHA_VENCIMIENTO' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'IMPORTE' + TableField = 'IMPORTE' + end + item + DatasetField = 'OTROS_GASTOS' + TableField = 'OTROS_GASTOS' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'FECHA_FACTURA' + TableField = 'FECHA_FACTURA' + end + item + DatasetField = 'FORMA_PAGO_FACTURA' + TableField = 'FORMA_PAGO_FACTURA' + end + item + DatasetField = 'IMPORTE_FACTURA' + TableField = 'IMPORTE_FACTURA' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'DATOS_BANCARIOS' + TableField = 'DATOS_BANCARIOS' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'NOMBRE_CLIENTE' + TableField = 'NOMBRE_CLIENTE' + end + item + DatasetField = 'NIF_CIF_CLIENTE' + TableField = 'NIF_CIF_CLIENTE' + end + item + DatasetField = 'CALLE_CLIENTE' + TableField = 'CALLE_CLIENTE' + end + item + DatasetField = 'POBLACION_CLIENTE' + TableField = 'POBLACION_CLIENTE' + end + item + DatasetField = 'CODIGO_POSTAL_CLIENTE' + TableField = 'CODIGO_POSTAL_CLIENTE' + end + item + DatasetField = 'PROVINCIA_CLIENTE' + TableField = 'PROVINCIA_CLIENTE' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end> + end> + Name = 'RecibosCompensadosCli' + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_RECIBO_COMPENSADO' + DataType = datInteger + end + item + Name = 'REFERENCIA_REC_COMPENSADO' + DataType = datString + Size = 255 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + end + item + Name = 'ID_FACTURA' + DataType = datInteger + end + item + Name = 'ID_REMESA' + DataType = datInteger + end + item + Name = 'REFERENCIA_REMESA' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE' + DataType = datCurrency + end + item + Name = 'OTROS_GASTOS' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + end + item + Name = 'FORMA_PAGO_FACTURA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_FACTURA' + DataType = datCurrency + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'DATOS_BANCARIOS' + DataType = datString + Size = 255 + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'NOMBRE_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'NIF_CIF_CLIENTE' + DataType = datString + Size = 15 + end + item + Name = 'CALLE_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL_CLIENTE' + DataType = datString + Size = 10 + end + item + Name = 'PROVINCIA_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + end + item + Name = 'USUARIO' + DataType = datString + Size = 30 + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_RECIBOS_CLIENTE_ID' + Value = '' + ParamType = daptInput + end + item + Name = 'ID_FACTURA' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + Value = '' + ParamType = daptInput + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE' + DataType = datFloat + Value = '' + ParamType = daptInput + end + item + Name = 'OTROS_GASTOS' + DataType = datFloat + Value = '' + ParamType = daptInput + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'RECIBOS_CLIENTE' + SQL = + 'INSERT'#10' INTO RECIBOS_CLIENTE'#10' (ID, ID_FACTURA, REFERENCIA, F' + + 'ECHA_EMISION, FECHA_VENCIMIENTO, DESCRIPCION, OBSERVACIONES,'#10' ' + + ' IMPORTE, OTROS_GASTOS, USUARIO)'#10' VALUES'#10' (:ID, :ID_FACTURA,' + + ' :REFERENCIA, :FECHA_EMISION, :FECHA_VENCIMIENTO, :DESCRIPCION, ' + + ':OBSERVACIONES,'#10' :IMPORTE, :OTROS_GASTOS, :USUARIO)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_RecibosCliente' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'RECIBOS_CLIENTE' + SQL = 'DELETE '#10' FROM'#10' RECIBOS_CLIENTE'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_RecibosCliente' + end + item + Params = < + item + Name = 'ID_REMESA' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + Value = '' + ParamType = daptInput + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE' + DataType = datFloat + Value = '' + ParamType = daptInput + end + item + Name = 'OTROS_GASTOS' + DataType = datFloat + Value = '' + ParamType = daptInput + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'RECIBOS_CLIENTE' + SQL = + 'UPDATE Recibos_CLIENTE'#10' SET '#10' ID_REMESA = :ID_REMESA,'#10' FE' + + 'CHA_EMISION = :FECHA_EMISION,'#10' FECHA_VENCIMIENTO = :FECHA_VEN' + + 'CIMIENTO,'#10' DESCRIPCION = :DESCRIPCION,'#10' OBSERVACIONES = :O' + + 'BSERVACIONES,'#10' IMPORTE = :IMPORTE,'#10' OTROS_GASTOS = :OTROS_' + + 'GASTOS,'#10' USUARIO = :USUARIO'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_RecibosCliente' + end + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_PAGOS_CLIENTE_ID' + Value = '' + ParamType = daptInput + end + item + Name = 'ID_RECIBO' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'TIPO' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_PAGO' + DataType = datDateTime + Value = '' + ParamType = daptInput + end + item + Name = 'TITULAR' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + Value = '' + ParamType = daptInput + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + Value = '' + ParamType = daptInput + end + item + Name = 'DC' + DataType = datString + Size = 15 + Value = '' + ParamType = daptInput + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + Value = '' + ParamType = daptInput + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PAGOS_CLIENTE' + SQL = + 'INSERT'#10' INTO PAGOS_CLIENTE'#10' (ID, ID_RECIBO, TIPO, FECHA_PAGO' + + ', TITULAR, ENTIDAD, '#10' SUCURSAL, DC, CUENTA, USUARIO)'#10' VALUE' + + 'S'#10' (:ID, :ID_RECIBO, :TIPO, :FECHA_PAGO, :TITULAR, :ENTIDAD, ' + + #10' :SUCURSAL, :DC, :CUENTA, :USUARIO)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_PagosCliente' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PAGOS_CLIENTE' + SQL = 'DELETE '#10' FROM'#10' PAGOS_CLIENTE'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_PagosCliente' + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'ID_RECIBO' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'TIPO' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_PAGO' + DataType = datDateTime + Value = '' + ParamType = daptInput + end + item + Name = 'TITULAR' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + Value = '' + ParamType = daptInput + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + Value = '' + ParamType = daptInput + end + item + Name = 'DC' + DataType = datString + Size = 15 + Value = '' + ParamType = daptInput + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PAGOS_CLIENTE' + SQL = + 'UPDATE PAGOS_CLIENTE'#10' SET '#10' ID = :ID, '#10' ID_RECIBO = :ID_R' + + 'ECIBO, '#10' TIPO = :TIPO, '#10' FECHA_PAGO = :FECHA_PAGO, '#10' TI' + + 'TULAR = :TITULAR, '#10' ENTIDAD = :ENTIDAD, '#10' SUCURSAL = :SUCU' + + 'RSAL, '#10' DC = :DC, '#10' CUENTA = :CUENTA'#10' WHERE'#10' (ID = :OL' + + 'D_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_PagosCliente' + end + item + Params = < + item + Name = 'ID_RECIBO_COMPENSADO' + Value = '' + end + item + Name = 'ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'RECIBOS_CLIENTE' + SQL = + 'UPDATE RECIBOS_CLIENTE'#10'SET ID_RECIBO_COMPENSADO = :ID_RECIBO_COM' + + 'PENSADO'#10'WHERE (ID = :ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_RecibosCompensadosCli' + end + item + Params = < + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'RECIBOS_CLIENTE' + SQL = + 'UPDATE RECIBOS_CLIENTE'#10'SET ID_RECIBO_COMPENSADO = Null'#10'WHERE (ID' + + ' = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_RecibosCompensadosCli' + end + item + Params = < + item + Name = 'ID_RECIBO_COMPENSADO' + Value = '' + end + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'RECIBOS_CLIENTE' + SQL = + 'UPDATE RECIBOS_CLIENTE'#10'SET ID_RECIBO_COMPENSADO = :ID_RECIBO_COM' + + 'PENSADO'#10'WHERE (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_RecibosCompensadosCli' + end> + RelationShips = < + item + Name = 'FK_RecibosCompensados' + MasterDatasetName = 'RecibosCliente' + MasterFields = 'ID' + DetailDatasetName = 'RecibosCompensadosCli' + DetailFields = 'ID_RECIBO_COMPENSADO' + RelationshipType = rtForeignKey + end + item + Name = 'FK_PagosCliente' + MasterDatasetName = 'RecibosCliente' + MasterFields = 'ID' + DetailDatasetName = 'PagosCliente' + DetailFields = 'ID_RECIBO' + RelationshipType = rtForeignKey + end> + UpdateRules = < + item + Name = 'Insert RecibosCliente' + DoUpdate = False + DoDelete = False + DatasetName = 'RecibosCliente' + FailureBehavior = fbRaiseException + end + item + Name = 'Insert PagosCliente' + DoUpdate = False + DoDelete = False + DatasetName = 'PagosCliente' + FailureBehavior = fbRaiseException + end + item + Name = 'Update RecibosCliente' + DoInsert = False + DoDelete = False + DatasetName = 'RecibosCliente' + FailureBehavior = fbRaiseException + end + item + Name = 'Update PagosCliente' + DoInsert = False + DoDelete = False + DatasetName = 'PagosCliente' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete PagosCliente' + DoUpdate = False + DoInsert = False + DatasetName = 'PagosCliente' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete RecibosCliente' + DoUpdate = False + DoInsert = False + DatasetName = 'RecibosCliente' + FailureBehavior = fbRaiseException + end> + Version = 0 + Left = 48 + Top = 24 + end + object bpRecibosCliente: TDABusinessProcessor + Schema = schRecibosCliente + InsertCommandName = 'Insert_RecibosCliente' + DeleteCommandName = 'Delete_RecibosCliente' + UpdateCommandName = 'Update_RecibosCliente' + ReferencedDataset = 'RecibosCliente' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 192 + Top = 24 + end + object DADataDictionary: TDADataDictionary + Fields = < + item + Name = 'RecibosCliente_ID' + DataType = datAutoInc + GeneratorName = 'GEN_RECIBOS_CLIENTE_ID' + Required = True + DisplayLabel = 'ID' + ServerAutoRefresh = True + end + item + Name = 'RecibosCliente_REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'REFERENCIA' + end + item + Name = 'RecibosCliente_SITUACION' + DataType = datString + Size = 9 + DisplayLabel = 'SITUACION' + end + item + Name = 'RecibosCliente_ID_FACTURA' + DataType = datInteger + DisplayLabel = 'ID_FACTURA' + end + item + Name = 'RecibosCliente_FECHA_VENCIMIENTO' + DataType = datDateTime + DisplayLabel = 'FECHA_VENCIMIENTO' + end + item + Name = 'RecibosCliente_DESCRIPCION' + DataType = datString + Size = 255 + DisplayLabel = 'DESCRIPCION' + end + item + Name = 'RecibosCliente_OBSERVACIONES' + DataType = datString + Size = 255 + DisplayLabel = 'OBSERVACIONES' + end + item + Name = 'RecibosCliente_IMPORTE' + DataType = datCurrency + DisplayLabel = 'IMPORTE' + Alignment = taRightJustify + end + item + Name = 'RecibosCliente_FECHA_FACTURA' + DataType = datDateTime + DisplayLabel = 'FECHA_FACTURA' + end + item + Name = 'RecibosCliente_FORMA_PAGO_FACTURA' + DataType = datString + Size = 255 + DisplayLabel = 'FORMA_PAGO_FACTURA' + end + item + Name = 'RecibosCliente_IMPORTE_FACTURA' + DataType = datCurrency + DisplayLabel = 'IMPORTE_FACTURA' + Alignment = taRightJustify + end + item + Name = 'RecibosCliente_NOMBRE_CLIENTE' + DataType = datString + Size = 255 + DisplayLabel = 'NOMBRE_CLIENTE' + end + item + Name = 'RecibosCliente_NIF_CIF_CLIENTE' + DataType = datString + Size = 15 + DisplayLabel = 'NIF_CIF_CLIENTE' + end + item + Name = 'RecibosCliente_ENTIDAD_CLIENTE' + DataType = datString + Size = 15 + DisplayLabel = 'ENTIDAD_CLIENTE' + end + item + Name = 'RecibosCliente_SUCURSAL_CLIENTE' + DataType = datString + Size = 15 + DisplayLabel = 'SUCURSAL_CLIENTE' + end + item + Name = 'RecibosCliente_DC_CLIENTE' + DataType = datString + Size = 15 + DisplayLabel = 'DC_CLIENTE' + end + item + Name = 'RecibosCliente_CUENTA_CLIENTE' + DataType = datString + Size = 15 + DisplayLabel = 'CUENTA_CLIENTE' + end + item + Name = 'RecibosCliente_ID_EMPRESA' + DataType = datInteger + DisplayLabel = 'ID_EMPRESA' + end + item + Name = 'RecibosCliente_FECHA_ALTA' + DataType = datDateTime + DisplayLabel = 'FECHA_ALTA' + end + item + Name = 'RecibosCliente_FECHA_MODIFICACION' + DataType = datDateTime + DisplayLabel = 'FECHA_MODIFICACION' + end + item + Name = 'RecibosCliente_USUARIO' + DataType = datString + Size = 20 + DisplayLabel = 'USUARIO' + end + item + Name = 'PagosCliente_ID' + DataType = datAutoInc + GeneratorName = 'GEN_PAGOS_CLIENTE_ID' + Required = True + DisplayLabel = 'ID' + ServerAutoRefresh = True + end + item + Name = 'PagosCliente_ID_RECIBO' + DataType = datInteger + end + item + Name = 'PagosCliente_TIPO' + DataType = datString + Size = 255 + end + item + Name = 'PagosCliente_FECHA_PAGO' + DataType = datDateTime + end + item + Name = 'PagosCliente_TITULAR' + DataType = datString + Size = 255 + end + item + Name = 'PagosCliente_ENTIDAD' + DataType = datString + Size = 15 + end + item + Name = 'PagosCliente_SUCURSAL' + DataType = datString + Size = 15 + end + item + Name = 'PagosCliente_DC' + DataType = datString + Size = 15 + end + item + Name = 'PagosCliente_CUENTA' + DataType = datString + Size = 15 + end + item + Name = 'PagosCliente_FECHA_ALTA' + DataType = datDateTime + end + item + Name = 'PagosCliente_FECHA_MODIFICACION' + DataType = datDateTime + end + item + Name = 'PagosCliente_USUARIO' + DataType = datString + Size = 20 + end + item + Name = 'RecibosCliente_ID_REMESA' + DataType = datInteger + end + item + Name = 'RecibosCliente_REFERENCIA_REMESA' + DataType = datString + Size = 255 + end + item + Name = 'RecibosCliente_OTROS_GASTOS' + DataType = datCurrency + Alignment = taRightJustify + end + item + Name = 'RecibosCliente_IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'IMPORTE_TOTAL' + Alignment = taRightJustify + end + item + Name = 'RecibosCliente_ID_CLIENTE' + DataType = datInteger + DisplayLabel = 'ID_CLIENTE' + end + item + Name = 'RecibosCliente_FECHA_EMISION' + DataType = datDateTime + end> + Left = 48 + Top = 152 + end + object bpPagosCliente: TDABusinessProcessor + Schema = schRecibosCliente + InsertCommandName = 'Insert_PagosCliente' + DeleteCommandName = 'Delete_PagosCliente' + UpdateCommandName = 'Update_PagosCliente' + ReferencedDataset = 'PagosCliente' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 192 + Top = 88 + end + object bpRecibosCompensados: TDABusinessProcessor + Schema = schRecibosCliente + InsertCommandName = 'Insert_RecibosCompensadosCli' + DeleteCommandName = 'Delete_RecibosCompensadosCli' + UpdateCommandName = 'Update_RecibosCompensadosCli' + ReferencedDataset = 'RecibosCompensadosCli' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 192 + Top = 152 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 88 + end +end diff --git a/Source/Modulos/Recibos de cliente/Servidor/srvRecibosCliente_Impl.pas b/Source/Modulos/Recibos de cliente/Servidor/srvRecibosCliente_Impl.pas new file mode 100644 index 0000000..4e3b4e4 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Servidor/srvRecibosCliente_Impl.pas @@ -0,0 +1,96 @@ +unit srvRecibosCliente_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} uDABusinessProcessor, uDABin2DataStreamer, uDADataStreamer, + uDAScriptingProvider, uDAClasses, + FactuGES_Intf, uDAInterfaces; + +type + { TsrvRecibosProveedor } + TsrvRecibosCliente = class(TDataAbstractService, IsrvRecibosCliente) + bpRecibosCliente: TDABusinessProcessor; + bpPagosCliente: TDABusinessProcessor; + bpRecibosCompensados: TDABusinessProcessor; + Bin2DataStreamer: TDABin2DataStreamer; + schRecibosCliente: TDASchema; + DADataDictionary: TDADataDictionary; + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; var aConnectionName: string); + procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; const IncludeSchema: Boolean; const MaxRecords: Integer); + procedure DARemoteServiceCreate(Sender: TObject); + private + protected + { IsrvRecibosProveedor methods } + function GenerarInforme(const ListaID: TIntegerArray): Binary; + end; + +implementation + +{$R *.dfm} +uses + Dialogs, + {Generated:} FactuGES_Invk, uDataModuleServer, uDatabaseUtils, + schRecibosClienteClient_Intf, uRestriccionesUsuarioUtils, + uRptRecibosCliente_Server; + //, uBizRecibosClienteServer; + +procedure Create_srvRecibosCliente(out anInstance : IUnknown); +begin + anInstance := TsrvRecibosCliente.Create(NIL); +end; + +{ srvRecibosProveedor } + +procedure TsrvRecibosCliente.DARemoteServiceBeforeGetDatasetData( + const Dataset: IDADataset; const IncludeSchema: Boolean; + const MaxRecords: Integer); +begin + if DataSet.Name = nme_RecibosCliente then + begin + { Aqu se asegura que el usuario slo accede a Recibos + de las empresas a las que tiene permiso para acceder + filtrando DataSet por ID_EMPRESA. } + FiltrarAccesoUsuario(Session, Connection, schRecibosCliente, DataSet, fld_RecibosClienteID_EMPRESA); + end; +end; + +procedure TsrvRecibosCliente.DARemoteServiceCreate(Sender: TObject); +begin + //SessionManager := dmServer.SessionManager; +end; + +procedure TsrvRecibosCliente.DataAbstractServiceBeforeAcquireConnection(aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +function TsrvRecibosCliente.GenerarInforme(const ListaID: TIntegerArray): Binary; +var + AReportGenerator : TRptRecibosCliente; +begin + AReportGenerator := TRptRecibosCliente.Create(nil); + try + Result := AReportGenerator.GenerarRecibo(ListaID); + finally + FreeAndNIL(AReportGenerator); + end; +end; + +initialization + TROClassFactory.Create('srvRecibosCliente', Create_srvRecibosCliente, TsrvRecibosCliente_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Recibos de cliente/Views/RecibosCliente_view.bdsproj b/Source/Modulos/Recibos de cliente/Views/RecibosCliente_view.bdsproj new file mode 100644 index 0000000..c256e83 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/RecibosCliente_view.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + RecibosCliente_view.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Recibos de cliente/Views/RecibosCliente_view.dcu b/Source/Modulos/Recibos de cliente/Views/RecibosCliente_view.dcu new file mode 100644 index 0000000..13f39bc Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Views/RecibosCliente_view.dcu differ diff --git a/Source/Modulos/Recibos de cliente/Views/RecibosCliente_view.dpk b/Source/Modulos/Recibos de cliente/Views/RecibosCliente_view.dpk new file mode 100644 index 0000000..177d527 Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Views/RecibosCliente_view.dpk differ diff --git a/Source/Modulos/Recibos de cliente/Views/RecibosCliente_view.dproj b/Source/Modulos/Recibos de cliente/Views/RecibosCliente_view.dproj new file mode 100644 index 0000000..a06b8fa --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/RecibosCliente_view.dproj @@ -0,0 +1,579 @@ + + + + {74e7da8d-38a8-404c-b92c-c3a913b30982} + RecibosCliente_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\RecibosCliente_view.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0RecibosCliente_view.dpk + + + + + MainSource + + + + + + + +
fEditorElegirRecibosCliente
+ TfEditorElegirRecibosCliente +
+ +
fEditorFechaPago
+
+ +
fEditorReciboCliente
+ TfEditorReciboCliente +
+ +
fEditorReciboClienteReport
+ TfEditorReciboClienteReport +
+ +
fEditorRecibosCliente
+ TfEditorRecibosCliente +
+ + +
frViewPagosCliente
+ TFrame +
+ +
frViewReciboCliente
+ TFrame +
+ +
frViewReciboCliImportes
+ TFrame +
+ +
frViewRecibosCliCompensados
+ TFrame +
+ +
frViewRecibosCliente
+ TFrame +
+
+
+ diff --git a/Source/Modulos/Recibos de cliente/Views/RecibosCliente_view.rc b/Source/Modulos/Recibos de cliente/Views/RecibosCliente_view.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/RecibosCliente_view.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Recibos de cliente/Views/RecibosCliente_view.res b/Source/Modulos/Recibos de cliente/Views/RecibosCliente_view.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Views/RecibosCliente_view.res differ diff --git a/Source/Modulos/Recibos de cliente/Views/uEditorElegirRecibosCliente.dcu b/Source/Modulos/Recibos de cliente/Views/uEditorElegirRecibosCliente.dcu new file mode 100644 index 0000000..3fb7b08 Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Views/uEditorElegirRecibosCliente.dcu differ diff --git a/Source/Modulos/Recibos de cliente/Views/uEditorElegirRecibosCliente.dfm b/Source/Modulos/Recibos de cliente/Views/uEditorElegirRecibosCliente.dfm new file mode 100644 index 0000000..165f670 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uEditorElegirRecibosCliente.dfm @@ -0,0 +1,476 @@ +inherited fEditorElegirRecibosCliente: TfEditorElegirRecibosCliente + Caption = 'Seleccionar recibos de cliente' + ClientWidth = 670 + ExplicitWidth = 678 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Top = 220 + Width = 670 + Visible = False + ExplicitTop = 214 + ExplicitWidth = 670 + inherited Image1: TImage + Left = 643 + ExplicitLeft = 629 + end + end + inherited TBXDock: TTBXDock + Top = 148 + Width = 670 + Height = 72 + ExplicitTop = 175 + ExplicitWidth = 670 + ExplicitHeight = 72 + inherited tbxMain: TTBXToolbar + Left = 97 + ExplicitLeft = 97 + ExplicitWidth = 269 + inherited TBXItem5: TTBXItem + Visible = False + end + inherited TBXItem6: TTBXItem + Visible = False + end + inherited TBXItem36: TTBXItem + Action = actAnchoAuto2 + end + end + inherited tbxFiltro: TTBXToolbar + Top = 23 + DockRow = 1 + ExplicitTop = 23 + ExplicitWidth = 97 + inherited sepAno: TTBXSeparatorItem + Visible = False + end + inherited TBXLabelItem1: TTBXLabelItem + Visible = False + end + inherited tbxEditFiltro: TTBXEditItem + Visible = False + end + inherited TBXItem34: TTBXItem + Action = actQuitarFiltro2 + Visible = False + end + inherited TBXItem37: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 670 + end + inherited TBXTMain2: TTBXToolbar + Left = 330 + DockPos = 330 + Visible = False + ExplicitLeft = 330 + ExplicitHeight = 23 + end + end + inherited StatusBar: TJvStatusBar + Top = 506 + Width = 670 + ExplicitTop = 506 + ExplicitWidth = 670 + end + inline frViewBarraSeleccion1: TfrViewBarraSeleccion [3] + Left = 0 + Top = 525 + Width = 670 + Height = 36 + Align = alBottom + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 525 + ExplicitWidth = 670 + ExplicitHeight = 36 + inherited JvFooter1: TJvFooter + Width = 670 + Height = 36 + ExplicitWidth = 670 + ExplicitHeight = 36 + inherited bSeleccionar: TJvFooterBtn + Left = 458 + Top = 3 + ExplicitLeft = 444 + ExplicitTop = 3 + end + inherited bCancelar: TJvFooterBtn + Left = 562 + Top = 4 + ExplicitLeft = 562 + ExplicitTop = 4 + end + end + inherited BarraSeleccionActionList: TActionList + inherited actSeleccionar: TAction + OnExecute = frViewBarraSeleccion1actSeleccionarExecute + OnUpdate = frViewBarraSeleccion1actSeleccionarUpdate + end + inherited actCancelar: TAction + OnExecute = frViewBarraSeleccion1actCancelarExecute + end + end + end + object pnlHeader: TPanel [4] + Left = 0 + Top = 0 + Width = 670 + Height = 64 + Align = alTop + BevelOuter = bvNone + Color = clWhite + Padding.Left = 25 + Padding.Top = 8 + Padding.Right = 25 + Padding.Bottom = 8 + ParentBackground = False + TabOrder = 6 + object lblTitle: TLabel + AlignWithMargins = True + Left = 25 + Top = 8 + Width = 620 + Height = 13 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 0 + Margins.Bottom = 8 + Align = alTop + Caption = 'Seleccione recibos de cliente' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + ExplicitWidth = 162 + end + object lblComments: TLabel + AlignWithMargins = True + Left = 50 + Top = 29 + Width = 595 + Height = 24 + Margins.Left = 25 + Margins.Top = 0 + Margins.Right = 0 + Align = alClient + ExplicitWidth = 3 + ExplicitHeight = 13 + end + end + inherited frViewRecibosCliente1: TfrViewRecibosCliente [5] + Top = 247 + Width = 670 + Height = 259 + ExplicitTop = 247 + ExplicitWidth = 670 + ExplicitHeight = 259 + inherited cxGrid: TcxGrid + Width = 670 + Height = 131 + RootLevelOptions.DetailTabsPosition = dtpNone + ExplicitWidth = 670 + ExplicitHeight = 131 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Position = spFooter + Column = frViewRecibosCliente1.cxGridViewIMPORTE_TOTAL + end> + DataController.Summary.FooterSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = '0 recibos' + Kind = skCount + Column = frViewRecibosCliente1.cxGridViewFECHA_EMISION + end> + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 670 + ExplicitWidth = 670 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 670 + inherited dxLayoutControl1: TdxLayoutControl + Width = 670 + ExplicitWidth = 670 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 573 + Width = 573 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 205 + Width = 205 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 229 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 229 + ExplicitWidth = 351 + Width = 351 + end + inherited eLista: TcxComboBox + Left = 515 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 515 + ExplicitWidth = 215 + Width = 215 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 670 + ExplicitWidth = 670 + inherited tbxBotones: TTBXToolbar + Width = 660 + ExplicitWidth = 660 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 233 + ExplicitTop = 233 + ExplicitWidth = 670 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 670 + ExplicitWidth = 670 + inherited TBXToolbar1: TTBXToolbar + Width = 660 + ExplicitWidth = 660 + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + BuiltInReportLink = True + end + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewRecibosCliente1.cxGridView + HitTypes = [gvhtCell] + Index = 0 + end> + end + end + object pnlFiltrar: TTBXDockablePanel [6] + Left = 0 + Top = 64 + Align = alTop + Caption = 'Filtrar' + CaptionRotation = dpcrAlwaysVert + DockedHeight = 84 + DockMode = dmCannotFloat + DockPos = 88 + DockRow = 2 + FloatingWidth = 128 + FloatingHeight = 84 + ShowCaptionWhenDocked = False + SupportedDocks = [dkStandardDock, dkMultiDock] + TabOrder = 5 + object Label1: TLabel + Left = 330 + Top = 50 + Width = 17 + Height = 13 + Caption = 'y el' + end + object txtFiltroTodo: TcxTextEdit + Left = 202 + Top = 16 + Properties.OnChange = txtFiltroTodoPropertiesChange + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 273 + end + object edtFechaFiltro1: TcxDateEdit + Left = 202 + Top = 46 + Enabled = False + Properties.OnEditValueChanged = edtFechaFiltro1PropertiesEditValueChanged + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Width = 121 + end + object edtFechaFiltro2: TcxDateEdit + Left = 354 + Top = 46 + Enabled = False + Properties.OnEditValueChanged = edtFechaFiltro1PropertiesEditValueChanged + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 2 + Width = 121 + end + object rbTodo: TcxRadioButton + Left = 16 + Top = 18 + Width = 145 + Height = 17 + Caption = 'Recibos que contengan:' + Checked = True + TabOrder = 3 + TabStop = True + OnClick = rbTodoClick + LookAndFeel.Kind = lfStandard + LookAndFeel.NativeStyle = True + end + object rbFechas: TcxRadioButton + Left = 16 + Top = 48 + Width = 174 + Height = 17 + Caption = 'Recibos con vencimiento entre:' + TabOrder = 4 + OnClick = rbTodoClick + LookAndFeel.Kind = lfStandard + LookAndFeel.NativeStyle = True + end + object Button1: TBitBtn + Left = 504 + Top = 43 + Width = 163 + Height = 25 + Action = actQuitarFiltro2 + Caption = 'Quitar filtro y ver todo' + TabOrder = 5 + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00A505 + E1007204CA00FE00FF00FF00FF00FF00FF00E800F5003E09C100FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00AB17 + F900161DC600C400E700FF00FF00FF00FF00520DC9000F30D600D71BCF00942A + 8A004D493C004D493C00942A8A00D71BCF00FF00FF00FF00FF00D71BCF008B2C + 92002843B900141B980070208D004615BA000F30D600C20BF80069605800F8D5 + AD00F8C89000F8C89000E7AB63004D493C00FF00FF00FF00FF0069605800F8D5 + AD00C8ACA6001036E4002125A6000F30D600B20EF600FF00FF0069605800FFD8 + C000F8D5AD00F8C89000F8C890004D493C004D493C004D493C0069605800FFD8 + C000EFCDAD005F65C6000A38ED002637A300927C6C00FF00FF0069605800F0F0 + F000FFD8C000F8D5AD00F8C8900069605800696058006960580069605800FFF8 + FF008372B1000F30D6002750F7000F30D60025256F00FF00FF00942A8A006960 + 58006960580069605800942A8A00D71BCF00FF00FF00FF00FF00D71BCF004F24 + 9E000F30D600434D8A00605D6C004D69E3000F30D6006D05CC00FF00FF006648 + 54004D493C00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF000F30 + D6008F1FF300FF00FF00FF00FF00C811FD003154EB000024D300FF00FF00FF00 + FF00664854004D493C00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF004D493C004D493C00FF00FF00FF00FF00FF00 + FF00FF00FF0066485400696058004D493C00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00696058004D493C00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF0066485400D419D000FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00A8658D0069605800FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} + end + end + inherited EditorActionList: TActionList [9] + Left = 112 + Top = 192 + inherited actPrevisualizar: TAction + Visible = False + end + inherited actImprimir: TAction + Visible = False + end + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [10] + end + inherited dsDataTable: TDADataSource [11] + Left = 8 + Top = 192 + end + inherited JvFormStorage: TJvFormStorage [13] + end + inherited GridPopupMenu: TPopupMenu [14] + Left = 80 + Top = 192 + end + inherited JsPrevisualizarDialog: TJSDialog [15] + Left = 288 + Top = 160 + end + inherited JsImprimirDialog: TJSDialog [16] + Top = 160 + end + object EditorSeleccionActionList: TActionList + Images = SmallImages + Left = 152 + Top = 192 + object actBuscar2: TAction + Category = 'Buscar' + Caption = 'Buscar' + ImageIndex = 10 + ShortCut = 114 + end + object actQuitarFiltro2: TAction + Category = 'Buscar' + Caption = 'Quitar filtro y ver todo' + ImageIndex = 19 + OnExecute = actQuitarFiltro2Execute + end + object actAnchoAuto2: TAction + Category = 'Ver' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 21 + OnExecute = actAnchoAuto2Execute + end + end +end diff --git a/Source/Modulos/Recibos de cliente/Views/uEditorElegirRecibosCliente.pas b/Source/Modulos/Recibos de cliente/Views/uEditorElegirRecibosCliente.pas new file mode 100644 index 0000000..6d88e36 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uEditorElegirRecibosCliente.pas @@ -0,0 +1,214 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uEditorElegirRecibosCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, DB, uDADataTable, Menus, JvAppStorage, JvAppRegistryStorage, + JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns, + ActnList, uCustomView, uViewBase, uViewGridBase, uViewGrid, + JvExComCtrls, JvStatusBar, + ComCtrls, TB2ExtItems, TBXExtItems, TBX, + TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvComponent, + JvNavigationPane, uViewBarraSeleccion, StdCtrls, + + uViewRecibosCliente, uEditorRecibosCliente, uBizRecibosCliente, uIEditorElegirRecibosCliente, + Buttons, cxRadioGroup, cxMaskEdit, cxDropDownEdit, cxCalendar, cxControls, + cxContainer, cxEdit, cxTextEdit, TBXDkPanels, JSDialog, + uDAInterfaces; + + +type + TfEditorElegirRecibosCliente = class(TfEditorRecibosCliente, IEditorElegirRecibosCliente) + frViewBarraSeleccion1: TfrViewBarraSeleccion; + lblTitle: TLabel; + lblComments: TLabel; + EditorSeleccionActionList: TActionList; + actBuscar2: TAction; + actQuitarFiltro2: TAction; + actAnchoAuto2: TAction; + pnlFiltrar: TTBXDockablePanel; + Label1: TLabel; + txtFiltroTodo: TcxTextEdit; + edtFechaFiltro1: TcxDateEdit; + edtFechaFiltro2: TcxDateEdit; + rbTodo: TcxRadioButton; + rbFechas: TcxRadioButton; + Button1: TBitBtn; + pnlHeader: TPanel; + procedure frViewBarraSeleccion1actSeleccionarUpdate(Sender: TObject); + procedure frViewBarraSeleccion1actCancelarExecute(Sender: TObject); + procedure frViewBarraSeleccion1actSeleccionarExecute(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure actAnchoAuto2Execute(Sender: TObject); + procedure actQuitarFiltro2Execute(Sender: TObject); + procedure txtFiltroTodoPropertiesChange(Sender: TObject); + procedure edtFechaFiltro1PropertiesEditValueChanged(Sender: TObject); + procedure rbTodoClick(Sender: TObject); + protected + procedure SetMultiSelect (AValue : Boolean); + function GetMultiSelect : Boolean; + function GetRecibosClienteSeleccionados: IBizRecibosCliente; + procedure SetViewGrid(const Value: IViewGridBase); override; + procedure SetMensaje (const AValue: String); + function GetMensaje: String; + public + property Mensaje : String read GetMensaje write SetMensaje; + property RecibosClienteSeleccionados: IBizRecibosCliente read GetRecibosClienteSeleccionados; + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + end; + +implementation + +uses + uEditorGridBase, cxGridCustomTableView, uIntegerListUtils, uDBSelectionListUtils, + uGridStatusUtils, uDialogUtils, uEditorBase, uRecibosClienteController; + +{$R *.dfm} + +{ TfEditorElegirRecibosCliente } + +procedure TfEditorElegirRecibosCliente.actAnchoAuto2Execute(Sender: TObject); +begin + inherited; + actAnchoAuto.Execute; +end; + +procedure TfEditorElegirRecibosCliente.actQuitarFiltro2Execute(Sender: TObject); +begin +// inherited; + + if Assigned(ViewGrid) then + begin + txtFiltroTodo.Clear; + edtFechaFiltro1.Clear; + edtFechaFiltro2.Clear; + (ViewGrid as IViewRecibosCliente).FiltrarPorFechas(null, null); + inherited; + end; + +// actQuitarFiltro.Execute; +end; + +procedure TfEditorElegirRecibosCliente.edtFechaFiltro1PropertiesEditValueChanged(Sender: TObject); +begin + if not VarIsNull(edtFechaFiltro1.EditValue) and not VarIsNull(edtFechaFiltro2.EditValue) then + begin + if (edtFechaFiltro1.EditValue > edtFechaFiltro2.EditValue) then + begin + ShowWarningMessage('La fecha de inicio debe ser anterior a la fecha final'); + edtFechaFiltro1.SetFocus; + end + else + (ViewGrid as IViewRecibosCliente).FiltrarPorFechas(edtFechaFiltro1.EditValue, edtFechaFiltro2.EditValue); + end; +end; + +procedure TfEditorElegirRecibosCliente.FormShow(Sender: TObject); +begin + inherited; + EditorActionList.State := asSuspended; + frViewRecibosCliente1.cxViewGridPopupMenu.PopupMenus.Items[0].HitTypes := []; +end; + +procedure TfEditorElegirRecibosCliente.frViewBarraSeleccion1actCancelarExecute( + Sender: TObject); +begin + inherited; + Close; +end; + +procedure TfEditorElegirRecibosCliente.frViewBarraSeleccion1actSeleccionarExecute( + Sender: TObject); +begin + inherited; + ModalResult := mrOk; +end; + +procedure TfEditorElegirRecibosCliente.frViewBarraSeleccion1actSeleccionarUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (ViewGrid._FocusedView.Controller.SelectedRowCount > 0) +end; + +function TfEditorElegirRecibosCliente.GetRecibosClienteSeleccionados: IBizRecibosCliente; +begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (RecibosCliente as ISeleccionable).SelectedRecords); + // En SelectedRecords tengo los ID de las filas seleccionadas del grid + Result := (Controller as IRecibosClienteController).ExtraerSeleccionados(RecibosCliente) as IBizRecibosCliente; +end; + +procedure TfEditorElegirRecibosCliente.rbTodoClick(Sender: TObject); +begin + actQuitarFiltro.Execute; + + if rbTodo.Checked then + begin + edtFechaFiltro1.Enabled := False; + edtFechaFiltro2.Enabled := False; + txtFiltroTodo.Enabled := True; + end + else begin + edtFechaFiltro1.Enabled := True; + edtFechaFiltro2.Enabled := True; + txtFiltroTodo.Enabled := False; + end; +end; + +function TfEditorElegirRecibosCliente.GetMensaje: String; +begin + Result := lblComments.Caption; +end; + +function TfEditorElegirRecibosCliente.GetMultiSelect: Boolean; +begin + Result := ViewGrid.MultiSelect; +end; + +procedure TfEditorElegirRecibosCliente.SetMensaje(const AValue: String); +begin + lblComments.Caption := AValue; +end; + +procedure TfEditorElegirRecibosCliente.SetMultiSelect(AValue: Boolean); +begin + ViewGrid.MultiSelect := AValue; +end; + +procedure TfEditorElegirRecibosCliente.SetViewGrid(const Value: IViewGridBase); +begin + inherited; + ViewGrid.OnDblClick := frViewBarraSeleccion1.actSeleccionar.OnExecute; +end; + +procedure TfEditorElegirRecibosCliente.txtFiltroTodoPropertiesChange(Sender: TObject); +begin + if Assigned(ViewGrid) then + ViewGrid.Filter := txtFiltroTodo.Text; +end; + +end. diff --git a/Source/Modulos/Recibos de cliente/Views/uEditorFechaPago.dcu b/Source/Modulos/Recibos de cliente/Views/uEditorFechaPago.dcu new file mode 100644 index 0000000..fde4a09 Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Views/uEditorFechaPago.dcu differ diff --git a/Source/Modulos/Recibos de cliente/Views/uEditorFechaPago.dfm b/Source/Modulos/Recibos de cliente/Views/uEditorFechaPago.dfm new file mode 100644 index 0000000..6ac4a16 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uEditorFechaPago.dfm @@ -0,0 +1,85 @@ +object fEditorFechaPago: TfEditorFechaPago + Left = 0 + Top = 0 + BorderStyle = bsDialog + Caption = 'Fecha del cobro / devoluci'#243'n' + ClientHeight = 167 + ClientWidth = 283 + Color = clWindow + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object Label1: TLabel + Left = 21 + Top = 16 + Width = 246 + Height = 26 + Caption = + 'Introduzca la fecha en la que se ha hecho efectivo '#13#10'el cobro o ' + + 'la devoluci'#243'n:' + end + object Label2: TLabel + Left = 38 + Top = 67 + Width = 33 + Height = 13 + Alignment = taRightJustify + Caption = 'Fecha:' + FocusControl = eFechaPago + end + object eFechaPago: TcxDateEdit + Left = 77 + Top = 64 + Properties.ImmediatePost = True + Properties.PostPopupValueOnTab = True + Properties.OnEditValueChanged = eFechaPagoPropertiesEditValueChanged + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 132 + end + object Panel1: TPanel + Left = 0 + Top = 126 + Width = 283 + Height = 41 + Align = alBottom + TabOrder = 1 + DesignSize = ( + 283 + 41) + object bAceptar: TButton + Left = 119 + Top = 8 + Width = 75 + Height = 25 + Anchors = [akTop, akRight] + Caption = 'Aceptar' + ModalResult = 1 + TabOrder = 0 + end + object bCancelar: TButton + Left = 200 + Top = 8 + Width = 75 + Height = 25 + Anchors = [akTop, akRight] + Caption = 'Cancelar' + ModalResult = 2 + TabOrder = 1 + end + end +end diff --git a/Source/Modulos/Recibos de cliente/Views/uEditorFechaPago.pas b/Source/Modulos/Recibos de cliente/Views/uEditorFechaPago.pas new file mode 100644 index 0000000..f249614 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uEditorFechaPago.pas @@ -0,0 +1,58 @@ +unit uEditorFechaPago; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, cxControls, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, + cxDropDownEdit, cxCalendar, ExtCtrls, uEditorBasico, uIEditorFechaPago; + +type + TfEditorFechaPago = class(TfEditorBasico, IEditorFechaPago) + Label1: TLabel; + eFechaPago: TcxDateEdit; + bAceptar: TButton; + bCancelar: TButton; + Label2: TLabel; + Panel1: TPanel; + procedure FormShow(Sender: TObject); + procedure eFechaPagoPropertiesEditValueChanged(Sender: TObject); + private + FFechaPago : TDateTime; + function GetFechaPago: TDateTime; + procedure SetFechaPago(const Value: TDateTime); + public + property FechaPago: TDateTime Read GetFechaPago write SetFechaPago; + end; + +var + fEditorFechaPago: TfEditorFechaPago; + +implementation +{$R *.dfm} + +uses uStringsUtils; + +procedure TfEditorFechaPago.eFechaPagoPropertiesEditValueChanged(Sender: TObject); +begin + FechaPago := eFechaPago.Date; +end; + +procedure TfEditorFechaPago.FormShow(Sender: TObject); +begin + if (length(eFechaPago.Text) = 0) then + eFechaPago.Date := Date; +end; + +function TfEditorFechaPago.GetFechaPago: TDateTime; +begin + Result := FFechaPago; +end; + +procedure TfEditorFechaPago.SetFechaPago(const Value: TDateTime); +begin + FFechaPago := Value; + eFechaPago.EditValue := FFechaPago; +end; + +end. diff --git a/Source/Modulos/Recibos de cliente/Views/uEditorReciboCliente.dcu b/Source/Modulos/Recibos de cliente/Views/uEditorReciboCliente.dcu new file mode 100644 index 0000000..0d1c9f7 Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Views/uEditorReciboCliente.dcu differ diff --git a/Source/Modulos/Recibos de cliente/Views/uEditorReciboCliente.dfm b/Source/Modulos/Recibos de cliente/Views/uEditorReciboCliente.dfm new file mode 100644 index 0000000..fc0a96a --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uEditorReciboCliente.dfm @@ -0,0 +1,447 @@ +inherited fEditorReciboCliente: TfEditorReciboCliente + Caption = 'Recibo de cliente' + ClientHeight = 530 + ClientWidth = 691 + OnClose = CustomEditorClose + ExplicitWidth = 699 + ExplicitHeight = 564 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 691 + Caption = 'Recibo de cliente' + ExplicitWidth = 691 + inherited Image1: TImage + Left = 558 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB51930000022E4944415478DA63FCFFFF3F + 032D01E3D0B760D9965334B321CAC78C116C41A4B729491AFFFCFDCFF0F7EF3F + 869FBFFE80E93FFFFE8169301B887FFDFECB109E5EC7707EE774840589270D09 + 1AFC17189CBFFEFE65F8F5E70F98FEF2EB17840FC2404B607245BF9633CC5BBA + 09D382F9E6E7512C927EEBCDD0E4D98C61D13FA06120ECB9DA9EE123CF03B0E1 + 97025E3028AD14045B52F17715A605AAAB85196E87BE051B006283C0CD903760 + FA02E37906E393C6400120479D81E1ACF95906CD1F5A0CBF803E1058CE0F56F3 + 3F1D12958C33191926736D47B58056910CB6106601AD221AC5025A44348605D4 + 8E68AC168000888D6C38BE880EDAE2C1F094FD36C38DE0D760B5628BB919EA18 + D6E2F701CC70E6534C0C7FCDFE816990E167E3CE3218CF035AA4CDC0F059E70B + 03EF151E86D72A6F18C277FA32EC8D3AC620BC880BEC8376968DD82D400F1AE6 + E5400B2281162C668218BECC98E16C14909E65CCF021E22383C0167E86172E2F + 19A2F604305CF873011E1FBDEC5B88B400D9075781121C40FC8301EC83B76AEF + 18846F09313C9179C210773094E1D4CFB3700B6079016F2A8259F217A8E132CB + 25481C5C044AE843E240EEAD3CC3CF1F3F300C0701B805200EAEE202A458F183 + 1F438D732DD8927FE0B4FE178E41FCE8BD8170C37FA6FC01E764BC16C0003C6D + 03F1BBEFDF51F8C818391F2003AC16A0E7D23FD09CF9EDC72F243E50EE1F420E + 9E93A17C901C085CB97907D382298B775056F0A001140BBA27CFA7AAE13030F4 + 2B7D0062D74EABC521DC370000000049454E44AE426082} + ExplicitLeft = 574 + end + inherited lblDesbloquear: TcxLabel + Left = 593 + ExplicitLeft = 593 + AnchorX = 638 + AnchorY = 14 + end + end + inherited TBXDock: TTBXDock + Width = 691 + ExplicitWidth = 691 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 425 + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 691 + end + end + inherited pgPaginas: TPageControl + Width = 685 + Height = 329 + ExplicitWidth = 685 + ExplicitHeight = 329 + inherited pagGeneral: TTabSheet + ExplicitLeft = 4 + ExplicitTop = 24 + ExplicitWidth = 677 + ExplicitHeight = 301 + inline frViewReciboCliente1: TfrViewReciboCliente + Left = 0 + Top = 0 + Width = 677 + Height = 335 + Align = alTop + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 677 + ExplicitHeight = 335 + inherited dxLayoutControl1: TdxLayoutControl + Width = 677 + Height = 335 + ExplicitWidth = 677 + ExplicitHeight = 335 + DesignSize = ( + 677 + 335) + inherited eReferencia: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 217 + Width = 217 + end + inherited eSituacion: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 217 + Width = 217 + end + inherited edtFechaVencimiento: TcxDBDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 217 + Width = 217 + end + inherited memObservaciones: TcxDBMemo + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 315 + ExplicitHeight = 44 + Height = 44 + Width = 315 + end + inherited eFechaEmision: TcxDBTextEdit + Left = 441 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 441 + ExplicitWidth = 214 + Width = 214 + end + inherited eFormaPago: TcxDBTextEdit + Left = 441 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 441 + ExplicitWidth = 214 + Width = 214 + end + inherited eImporteTotal: TcxDBCurrencyEdit + Left = 441 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 441 + ExplicitWidth = 214 + Width = 214 + end + inherited eNombreCliente: TcxDBTextEdit + Left = 441 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 441 + ExplicitWidth = 214 + Width = 214 + end + inherited eNifCif: TcxDBTextEdit + Left = 441 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 441 + ExplicitWidth = 214 + Width = 214 + end + inherited eRemesa: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 217 + Width = 217 + end + inherited edtFechaEmision: TcxDBDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 217 + Width = 217 + end + inherited rRefReciboCompensado: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 217 + Width = 217 + end + inherited eConcepto: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 217 + Width = 217 + end + inherited eCuenta: TcxDBTextEdit + Left = 441 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 441 + ExplicitWidth = 214 + Width = 214 + end + end + end + end + object pagPagos: TTabSheet + Caption = 'Pagos' + ImageIndex = 2 + inline frViewPagosCliente1: TfrViewPagosCliente + Left = 0 + Top = 0 + Width = 677 + Height = 301 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 677 + ExplicitHeight = 301 + inherited dxLayoutControl1: TdxLayoutControl + Width = 677 + Height = 301 + ExplicitWidth = 677 + ExplicitHeight = 301 + end + inherited dxLayoutControl2: TdxLayoutControl + Width = 677 + Height = 301 + ExplicitWidth = 677 + ExplicitHeight = 301 + inherited ToolBar1: TToolBar + Width = 633 + ExplicitWidth = 633 + end + inherited ListaPagosCliente: TcxGrid + Width = 633 + Height = 224 + ExplicitWidth = 633 + ExplicitHeight = 224 + inherited ListaPagosClienteDBTableView1: TcxGridDBTableView + inherited ListaPagosClienteDBTableView1TIPO: TcxGridDBColumn + IsCaptionAssigned = True + end + end + end + end + inherited ActionListContenido: TActionList + inherited actAnadir: TAction + OnExecute = frViewPagosCliente1actAnadirExecute + OnUpdate = frViewPagosCliente1actAnadirUpdate + end + inherited actModificar: TAction + OnExecute = frViewPagosCliente1actModificarExecute + OnUpdate = frViewPagosCliente1actModificarUpdate + end + inherited actEliminar: TAction + OnExecute = frViewPagosCliente1actEliminarExecute + OnUpdate = frViewPagosCliente1actEliminarUpdate + end + end + end + end + object pagCompensados: TTabSheet + Caption = 'Recibos compensados' + ImageIndex = 1 + TabVisible = False + inline frViewRecibosCliCompensados1: TfrViewRecibosCliCompensados + Left = 0 + Top = 0 + Width = 677 + Height = 301 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 677 + ExplicitHeight = 301 + inherited cxGrid: TcxGrid + Width = 677 + Height = 276 + ExplicitWidth = 677 + ExplicitHeight = 276 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = frViewRecibosCliCompensados1.cxGridViewIMPORTE_TOTAL + end> + DataController.Summary.OnAfterSummary = frViewRecibosCompensados1cxGridViewDataControllerSummaryAfterSummary + end + end + inherited ToolBar1: TToolBar + Width = 677 + ExplicitWidth = 677 + inherited ToolButton1: TToolButton + ExplicitWidth = 113 + end + inherited ToolButton4: TToolButton + ExplicitWidth = 113 + end + inherited ToolButton2: TToolButton + ExplicitWidth = 113 + end + inherited ToolButton7: TToolButton + ExplicitWidth = 113 + end + inherited ToolButton3: TToolButton + ExplicitWidth = 98 + end + inherited ToolButton8: TToolButton + ExplicitWidth = 99 + end + end + end + end + end + inherited StatusBar: TJvStatusBar + Top = 511 + Width = 691 + Panels = < + item + Width = 200 + end> + ExplicitTop = 511 + ExplicitWidth = 691 + end + inline frViewReciboCliImportes1: TfrViewReciboCliImportes [4] + Left = 0 + Top = 411 + Width = 691 + Height = 100 + Align = alBottom + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 4 + ReadOnly = False + ExplicitTop = 411 + ExplicitWidth = 691 + inherited dxLayoutControl1: TdxLayoutControl + Width = 691 + ExplicitWidth = 691 + inherited eImporte: TcxDBCurrencyEdit + DataBinding.DataSource = dsDataTable + Properties.OnEditValueChanged = frViewReciboCliImportes1eImportePropertiesEditValueChanged + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 300 + Width = 300 + end + inherited eOtrosGastos: TcxDBCurrencyEdit + DataBinding.DataSource = dsDataTable + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited eImporteTotalRecibo: TcxCurrencyEdit + Left = 444 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 444 + ExplicitWidth = 225 + Width = 225 + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Group1: TdxLayoutGroup + inherited dxLayoutControl1Group3: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + Offsets.Right = 10 + end + inherited dxLayoutControl1Item3: TdxLayoutItem + AlignHorz = ahRight + end + end + end + end + end + inherited EditorActionList: TActionList [5] + Top = 96 + inherited actNuevo: TAction + Enabled = False + Visible = False + end + inherited actModificar: TAction + Enabled = False + Visible = False + end + inherited actEliminar: TAction + Enabled = False + Visible = False + end + end + inherited SmallImages: TPngImageList [6] + end + inherited LargeImages: TPngImageList [7] + end + inherited JvFormStorage: TJvFormStorage [8] + OnSavePlacement = JvFormStorageSavePlacement + OnRestorePlacement = JvFormStorageRestorePlacement + end + inherited dsDataTable: TDADataSource [9] + Left = 8 + Top = 168 + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [10] + end + object DADataSource1: TDADataSource + OnDataChange = dsDataTableDataChange + Left = 80 + Top = 112 + end +end diff --git a/Source/Modulos/Recibos de cliente/Views/uEditorReciboCliente.pas b/Source/Modulos/Recibos de cliente/Views/uEditorReciboCliente.pas new file mode 100644 index 0000000..e3f0d8f --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uEditorReciboCliente.pas @@ -0,0 +1,344 @@ +unit uEditorReciboCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorDBItem, JvAppStorage, JvAppRegistryStorage, DB, uDADataTable, + JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, + ComCtrls, JvExComCtrls, JvStatusBar, TBX, TB2Item, TB2Dock, TB2Toolbar, + pngimage, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uIEditorReciboCliente, + uCustomView, uViewBase, uViewReciboCliente, uRecibosClienteController, + uBizRecibosCliente, uViewPagosCliente, dxLayoutLookAndFeels, cxCustomData, + uViewDetallesGenerico, uViewReciboCliImportes, uViewRecibosCliCompensados, + uDAInterfaces, cxControls, cxContainer, cxEdit, cxLabel; + +type + TfEditorReciboCliente = class(TfEditorDBItem, IEditorReciboCliente) + DADataSource1: TDADataSource; + frViewReciboCliente1: TfrViewReciboCliente; + pagCompensados: TTabSheet; + pagPagos: TTabSheet; + frViewPagosCliente1: TfrViewPagosCliente; + frViewRecibosCliCompensados1: TfrViewRecibosCliCompensados; + frViewReciboCliImportes1: TfrViewReciboCliImportes; + procedure FormShow(Sender: TObject); + procedure dsDataTableDataChange(Sender: TObject; Field: TField); + procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); + procedure frViewReciboCliente1eImportePropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + + procedure frViewPagosCliente1actAnadirExecute(Sender: TObject); + procedure frViewPagosCliente1actEliminarExecute(Sender: TObject); + procedure frViewPagosCliente1actEliminarUpdate(Sender: TObject); + procedure frViewPagosCliente1actModificarUpdate(Sender: TObject); + procedure frViewPagosCliente1actModificarExecute(Sender: TObject); + + procedure HabilitarRecibo; + procedure DeshabilitarRecibo; + procedure JvFormStorageRestorePlacement(Sender: TObject); + procedure JvFormStorageSavePlacement(Sender: TObject); + procedure frViewReciboCliImportes1eImportePropertiesEditValueChanged(Sender: TObject); + procedure frViewRecibosCompensados1cxGridViewDataControllerSummaryAfterSummary(ASender: TcxDataSummary); + procedure frViewPagosCliente1actAnadirUpdate(Sender: TObject); + + private + FController : IRecibosClienteController; + FRecibo: IBizRecibosCliente; + FViewRecibo : IViewReciboCliente; + FImporteRestante : Double; + + function GetController : IRecibosClienteController; + procedure SetController (const Value : IRecibosClienteController); virtual; + function GetRecibo: IBizRecibosCliente; + procedure SetRecibo(const Value: IBizRecibosCliente); + function GetViewRecibo: IViewReciboCliente; + procedure SetViewRecibo(const Value: IViewReciboCliente); + property ViewRecibo: IViewReciboCliente read GetViewRecibo write SetViewRecibo; + procedure CalcularTotal; + + protected + procedure PrevisualizarInterno; override; + procedure ImprimirInterno; override; + procedure GuardarInterno; override; + + procedure PonerTitulos(const ATitulo: string = ''); override; + + public + property Recibo: IBizRecibosCliente read GetRecibo write SetRecibo; + constructor Create(AOwner: TComponent); override; + end; + +implementation + +uses schRecibosClienteClient_Intf, uEditorFechaPago, uEditorBase, uFactuGES_App; + +{$R *.dfm} + +procedure TfEditorReciboCliente.CalcularTotal; +var + ImporteAux: Double; +begin + + ImporteAux := 0; + if not VarIsNull(frViewRecibosCliCompensados1.cxGridView.DataController.Summary.FooterSummaryValues[0]) then + ImporteAux := frViewRecibosCliCompensados1.cxGridView.DataController.Summary.FooterSummaryValues[0]; + + frViewReciboCliImportes1.eImporteTotalRecibo.Value := frViewReciboCliImportes1.eImporte.Value + frViewReciboCliImportes1.eOtrosGastos.Value + ImporteAux; +end; + +constructor TfEditorReciboCliente.Create(AOwner: TComponent); +begin + inherited; + FImporteRestante := 0; + pgPaginas.ActivePageIndex := 0; + ViewRecibo := frViewReciboCliente1; +end; + +procedure TfEditorReciboCliente.CustomEditorClose(Sender: TObject; + var Action: TCloseAction); +begin + inherited; + dsDataTable.DataTable := NIL; + FViewRecibo := NIL; + FRecibo := NIL; +end; + +procedure TfEditorReciboCliente.DeshabilitarRecibo; +begin + frViewReciboCliente1.edtFechaVencimiento.Enabled := False; + frViewReciboCliImportes1.eImporte.Enabled := False; + frViewReciboCliImportes1.eOtrosGastos.Enabled := False; +end; + +procedure TfEditorReciboCliente.dsDataTableDataChange(Sender: TObject; Field: TField); +begin + inherited; + + if Assigned(FRecibo) and (not (FRecibo.DataTable.Fetching) or + not (FRecibo.DataTable.Opening) or not (FRecibo.DataTable.Closing)) then + PonerTitulos; +end; + +procedure TfEditorReciboCliente.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(FViewRecibo) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Recibo) then + raise Exception.Create('No hay ningn almacn asignado'); + + Recibo.DataTable.Active := True; + CalcularTotal; +end; + +procedure TfEditorReciboCliente.frViewPagosCliente1actAnadirExecute(Sender: TObject); +begin + inherited; + + FController.AnadirPago(Recibo); + + //Solo podremos modificar el recibo si esta pendiente o devuelto + if (Recibo.SITUACION = CTE_COBRADO) then + DeshabilitarRecibo + else + HabilitarRecibo; +end; + +procedure TfEditorReciboCliente.frViewPagosCliente1actAnadirUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := not (Recibo.ID_RECIBO_COMPENSADO > 0); +end; + +procedure TfEditorReciboCliente.frViewPagosCliente1actEliminarExecute(Sender: TObject); +begin + inherited; + //En el caso de eliminar un pago el recibo queda como devuelto o pendiente y por tanto se puede modificar + if (FController.EliminarPago(Recibo)) then + begin + FRecibo.Edit; + if FRecibo.Pagos.DataTable.RecordCount > 0 then + FRecibo.SITUACION := CTE_DEVUELTO + else + FRecibo.SITUACION := CTE_PENDIENTE; + HabilitarRecibo; + end + //No podremos modificar si anulamos una devolucin porque el recibo queda cobrado + else + begin + FRecibo.Edit; + FRecibo.SITUACION := CTE_COBRADO; + DeshabilitarRecibo; + end; +end; + +procedure TfEditorReciboCliente.frViewPagosCliente1actEliminarUpdate(Sender: TObject); +begin + if Assigned(FRecibo) and Assigned(FRecibo.Pagos) then + begin + //Si el recibo tiene una remesa asociada, el cobro generado por la remesa no se podr eliminar + if (Length(FRecibo.REFERENCIA_REMESA) = 0) then + frViewPagosCliente1.actEliminar.Enabled := (FRecibo.Pagos.DataTable.RecordCount > 0) + else + //En el caso de que el recibo este remesado no se podrn eliminar pagos, + //solo ser posible en el caso de ser un recibo libre de remesa + frViewPagosCliente1.actEliminar .Enabled := False; + end; +end; + +procedure TfEditorReciboCliente.frViewPagosCliente1actModificarExecute(Sender: TObject); +begin + inherited; + FController.ModificarPago(Recibo); +end; + +procedure TfEditorReciboCliente.frViewPagosCliente1actModificarUpdate(Sender: TObject); +begin + inherited; + if Assigned(FRecibo) and Assigned(FRecibo.Pagos) then + frViewPagosCliente1.actModificar.Enabled := (FRecibo.Pagos.DataTable.RecordCount > 0); +end; + +procedure TfEditorReciboCliente.frViewReciboCliente1eImportePropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + + if (DisplayValue > frViewReciboCliImportes1.eImporte.DataBinding.Field.Value) then + begin + DisplayValue := frViewReciboCliImportes1.eImporte.DataBinding.Field.Value; + ErrorText := 'El importe debe ser menor o igual que el actual'; + Error := True; + end; +end; + +procedure TfEditorReciboCliente.frViewReciboCliImportes1eImportePropertiesEditValueChanged( + Sender: TObject); +begin + inherited; + CalcularTotal; +end; + +procedure TfEditorReciboCliente.frViewRecibosCompensados1cxGridViewDataControllerSummaryAfterSummary(ASender: TcxDataSummary); +begin + inherited; + CalcularTotal; +end; + +function TfEditorReciboCliente.GetController: IRecibosClienteController; +begin + Result := FController; +end; + +function TfEditorReciboCliente.GetRecibo: IBizRecibosCliente; +begin + Result := FRecibo; +end; + +function TfEditorReciboCliente.GetViewRecibo: IViewReciboCliente; +begin + Result := FViewRecibo; +end; + +procedure TfEditorReciboCliente.GuardarInterno; +begin + inherited; + FController.Guardar(FRecibo); + Modified := False; +end; + +procedure TfEditorReciboCliente.HabilitarRecibo; +begin + //Si el recibo tiene sociado una remesa no se podr cambiar nada + if (Length(FRecibo.REFERENCIA_REMESA) = 0) then + begin + frViewReciboCliente1.edtFechaVencimiento.Enabled := True; + frViewReciboCliImportes1.eImporte.Enabled := True; + frViewReciboCliImportes1.eOtrosGastos.Enabled := True; + end; +end; + +procedure TfEditorReciboCliente.ImprimirInterno; +begin + inherited; + FController.Print(FRecibo); +end; + +procedure TfEditorReciboCliente.JvFormStorageRestorePlacement(Sender: TObject); +begin + inherited; + frViewPagosCliente1.ListaPagosCliente.ActiveView.RestoreFromRegistry(JvAppRegistryStorage.Root); +end; + +procedure TfEditorReciboCliente.JvFormStorageSavePlacement(Sender: TObject); +begin + inherited; + frViewPagosCliente1.ListaPagosCliente.ActiveView.StoreToRegistry(JvAppRegistryStorage.Root); +end; + +procedure TfEditorReciboCliente.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + if Assigned(Recibo) then + begin + if Recibo.EsNuevo then + FTitulo := 'Nuevo recibo de cliente' + else + FTitulo := 'Recibo de cliente'; + + if (Recibo.ID_RECIBO_COMPENSADO > 0) then + FTitulo := FTitulo + ' (compensado)'; + + if Length(Recibo.NOMBRE_CLIENTE) > 0 then + FTitulo := FTitulo + ' - ' + Recibo.NOMBRE_CLIENTE; + end; + + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorReciboCliente.PrevisualizarInterno; +begin + inherited; + FController.Preview(FRecibo); +end; + +procedure TfEditorReciboCliente.SetController(const Value: IRecibosClienteController); +begin + FController := Value; + if Assigned(FController) then + frViewRecibosCliCompensados1.Controller := FController; +// (ViewRecibo as IViewReciboCliente).Controller := (FController as IRecibosClienteController); +end; + +procedure TfEditorReciboCliente.SetRecibo(const Value: IBizRecibosCliente); +begin + FRecibo := Value; + dsDataTable.DataTable := FRecibo.DataTable; + + if Assigned(FViewRecibo) and Assigned(Recibo) then + begin + FViewRecibo.Recibo := Recibo; + frViewPagosCliente1.Pagos := Recibo.Pagos; + frViewRecibosCliCompensados1.ReciboCliente := FRecibo; + + if (FRecibo.SITUACION = CTE_COBRADO) then + DeshabilitarRecibo + else + HabilitarRecibo; + end; +end; + +procedure TfEditorReciboCliente.SetViewRecibo(const Value: IViewReciboCliente); +begin + FViewRecibo := Value; + + if Assigned(FViewRecibo) and Assigned(Recibo) then + FViewRecibo.Recibo := Recibo; +end; + +end. diff --git a/Source/Modulos/Recibos de cliente/Views/uEditorReciboClienteReport.dcu b/Source/Modulos/Recibos de cliente/Views/uEditorReciboClienteReport.dcu new file mode 100644 index 0000000..5a02980 Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Views/uEditorReciboClienteReport.dcu differ diff --git a/Source/Modulos/Recibos de cliente/Views/uEditorReciboClienteReport.dfm b/Source/Modulos/Recibos de cliente/Views/uEditorReciboClienteReport.dfm new file mode 100644 index 0000000..bc26451 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uEditorReciboClienteReport.dfm @@ -0,0 +1,10 @@ +inherited fEditorReciboClientePreview: TfEditorReciboClientePreview + Caption = 'Previsualizar el recibo' + PixelsPerInch = 96 + TextHeight = 13 + inherited frxReport1: TfrxReport + Datasets = <> + Variables = <> + Style = <> + end +end diff --git a/Source/Modulos/Recibos de cliente/Views/uEditorReciboClienteReport.pas b/Source/Modulos/Recibos de cliente/Views/uEditorReciboClienteReport.pas new file mode 100644 index 0000000..729935b --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uEditorReciboClienteReport.pas @@ -0,0 +1,27 @@ +unit uEditorReciboClienteReport; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorPreview, +{ + frxExportImage, frxExportPDF, frxDCtrl, frxClass, frxDMPExport, frxGradient, + frxChBox, frxCross, frxRich, frxChart, frxOLE, frxBarcode, +} + JvAppStorage, JvAppRegistryStorage, JvComponentBase, + JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, + TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, + ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uIEditorRecibosClientePreview, + JvExComCtrls, JvStatusBar, frxExportImage, frxExportPDF, frxDCtrl, frxClass, + frxDMPExport, frxGradient, frxChBox, frxCross, frxRich, frxOLE, frxBarcode; + +type + TfEditorReciboClientePreview = class(TfEditorPreview, IEditorRecibosClientePreview) + end; + + +implementation +{$R *.dfm} + +end. diff --git a/Source/Modulos/Recibos de cliente/Views/uEditorRecibosCliente.dcu b/Source/Modulos/Recibos de cliente/Views/uEditorRecibosCliente.dcu new file mode 100644 index 0000000..dab3814 Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Views/uEditorRecibosCliente.dcu differ diff --git a/Source/Modulos/Recibos de cliente/Views/uEditorRecibosCliente.dfm b/Source/Modulos/Recibos de cliente/Views/uEditorRecibosCliente.dfm new file mode 100644 index 0000000..6aa96bb --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uEditorRecibosCliente.dfm @@ -0,0 +1,2518 @@ +inherited fEditorRecibosCliente: TfEditorRecibosCliente + Caption = 'Lista de recibos de cliente' + ClientHeight = 561 + ClientWidth = 645 + ExplicitWidth = 653 + ExplicitHeight = 595 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 645 + Caption = 'Lista de recibos de cliente' + ExplicitWidth = 645 + inherited Image1: TImage + Left = 618 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB51930000022E4944415478DA63FCFFFF3F + 032D01E3D0B760D9965334B321CAC78C116C41A4B729491AFFFCFDCFF0F7EF3F + 869FBFFE80E93FFFFE8169301B887FFDFECB109E5EC7707EE774840589270D09 + 1AFC17189CBFFEFE65F8F5E70F98FEF2EB17840FC2404B607245BF9633CC5BBA + 09D382F9E6E7512C927EEBCDD0E4D98C61D13FA06120ECB9DA9EE123CF03B0E1 + 97025E3028AD14045B52F17715A605AAAB85196E87BE051B006283C0CD903760 + FA02E37906E393C6400120479D81E1ACF95906CD1F5A0CBF803E1058CE0F56F3 + 3F1D12958C33191926736D47B58056910CB6106601AD221AC5025A44348605D4 + 8E68AC168000888D6C38BE880EDAE2C1F094FD36C38DE0D760B5628BB919EA18 + D6E2F701CC70E6534C0C7FCDFE816990E167E3CE3218CF035AA4CDC0F059E70B + 03EF151E86D72A6F18C277FA32EC8D3AC620BC880BEC8376968DD82D400F1AE6 + E5400B2281162C668218BECC98E16C14909E65CCF021E22383C0167E86172E2F + 19A2F604305CF873011E1FBDEC5B88B400D9075781121C40FC8301EC83B76AEF + 18846F09313C9179C210773094E1D4CFB3700B6079016F2A8259F217A8E132CB + 25481C5C044AE843E240EEAD3CC3CF1F3F300C0701B805200EAEE202A458F183 + 1F438D732DD8927FE0B4FE178E41FCE8BD8170C37FA6FC01E764BC16C0003C6D + 03F1BBEFDF51F8C818391F2003AC16A0E7D23FD09CF9EDC72F243E50EE1F420E + 9E93A17C901C085CB97907D382298B775056F0A001140BBA27CFA7AAE13030F4 + 2B7D0062D74EABC521DC370000000049454E44AE426082} + ExplicitLeft = 613 + end + end + inherited TBXDock: TTBXDock + Width = 645 + ExplicitWidth = 645 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 577 + end + inherited tbxFiltro: TTBXToolbar + ExplicitWidth = 427 + inherited lblAno: TTBXLabelItem + Visible = True + end + inherited cbxListaAnos: TTBXComboBoxItem + Visible = True + end + inherited sepAno: TTBXSeparatorItem + Visible = True + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 645 + end + inherited TBXTMain2: TTBXToolbar + Left = 427 + Visible = True + ExplicitLeft = 427 + ExplicitWidth = 66 + object TBXItem38: TTBXItem + Action = actInformes + end + end + end + inherited StatusBar: TJvStatusBar + Top = 542 + Width = 645 + ExplicitTop = 542 + ExplicitWidth = 645 + end + inline frViewRecibosCliente1: TfrViewRecibosCliente [3] + Left = 0 + Top = 102 + Width = 645 + Height = 440 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitTop = 102 + ExplicitWidth = 645 + ExplicitHeight = 440 + inherited cxGrid: TcxGrid + Width = 645 + Height = 312 + ExplicitWidth = 645 + ExplicitHeight = 312 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Position = spFooter + Column = frViewRecibosCliente1.cxGridViewIMPORTE_TOTAL + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Position = spFooter + Column = frViewRecibosCliente1.cxGridViewIMPORTE + end> + DataController.Summary.FooterSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Column = frViewRecibosCliente1.cxGridViewIMPORTE_TOTAL + end + item + Format = '0 recibos' + Kind = skCount + Column = frViewRecibosCliente1.cxGridViewREFERENCIA + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = frViewRecibosCliente1.cxGridViewIMPORTE + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = frViewRecibosCliente1.cxGridViewOTROS_GASTOS + end> + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 645 + ExplicitWidth = 645 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 645 + inherited dxLayoutControl1: TdxLayoutControl + Width = 645 + ExplicitWidth = 645 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 548 + Width = 548 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 194 + Width = 194 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 237 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 237 + ExplicitWidth = 337 + Width = 337 + end + inherited eLista: TcxComboBox + Left = 533 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 533 + ExplicitWidth = 140 + Width = 140 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 645 + ExplicitWidth = 645 + inherited tbxBotones: TTBXToolbar + Width = 635 + ExplicitWidth = 635 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 414 + ExplicitTop = 414 + ExplicitWidth = 645 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 645 + ExplicitWidth = 645 + inherited TBXToolbar1: TTBXToolbar + Width = 635 + ExplicitWidth = 635 + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39211.776488344920000000 + BuiltInReportLink = True + end + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewRecibosCliente1.cxGridView + HitTypes = [gvhtCell] + Index = 0 + end> + end + end + inherited EditorActionList: TActionList [4] + Left = 136 + Top = 176 + inherited actNuevo: TAction + Enabled = False + ImageIndex = 22 + Visible = False + end + inherited actEliminar: TAction + Enabled = False + Visible = False + end + inherited actPrevisualizar: TAction + Visible = True + end + inherited actImprimir: TAction + Visible = True + end + inherited actDuplicar: TAction + Enabled = False + Visible = False + end + object actInformes: TAction + Category = 'Acciones' + Caption = 'Informes' + OnExecute = actInformesExecute + end + end + inherited SmallImages: TPngImageList [5] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001684944415478DA + 63FCFFFF3FC394C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F + 19ACFDF319CEED98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC + 5BBA09D3007CE0D7EFBF609B4178C98683D80D40770136B0AED69461E59623B8 + 0D80391B04FE01E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D + 760CCEE587E03607359F66585A6AC0B069CF49FC06A0DB0CC2207E58FB598685 + 85BA0CDB0E9CC16DC0C15E0706FBE203605B37375A809D0D02209BA3BB2F30CC + C9D566D87DE41C6E0340CE46B7F9E7AF3F6076D2C42B0C53D2D4180E9FBE8C69 + 4046941B8363E94194105F5E6EC810D9791ECC9E99A5C9903EED3A437F920AC3 + 89F357310D480E7386DB08A2435ACF302C2ED687B8049A067266DD62E88A5364 + 387BF906A60171410E280107B3191DB446C9315CBA7E1BD380283F3B147F23DB + FC1BC9E07FFFFE335CB97907D380502F6B86D5DB8E129D13310C0009900A4006 + 00004B6D80F047EC10D30000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001BE4944415478DA + 63FCFFFF3F032D0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80 + F83F980601EBC07C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3 + C275FB19E62DDD84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD978 + 90B005D87C802E06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9 + E0FF3F605803F11FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F1 + 8E70860DBB4E106701CCDBA480075B431936EF3D459C05F8520E3600D2B3A850 + 8F61EB81D3C45B802BA86096C3E4616AE7E7EB32EC387486763E989DA3CDB0E7 + E839DAF96046A626C3FE131768E783A969EA0C874E5FC26F4184A729387792E3 + 838929AA0CC7CE5EC16F41A89B09387792E3839E042586D317AFE3B720C8D988 + C1ADFA08591674C62A309CBB7213BF057E8E060C5EB5C7F01A06B27CC1913F70 + 7E820D0BD882B62839868BD76FE3B7C0DB4E0F5EAEC0CA1850D9032BF393275F + C1881F18BF394296E1CACD3BF82DF0B0D6C16938884E9B760D6BF0116D818BA5 + 164EC3411667CDB88133E888B2C0DE541D6CD8BFBF88621966E1BFFFFFB1061F + 322068818D912AB844A404E0B5A077CA428A0C8701980500619929EF09CFCE42 + 0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [7] + end + inherited dsDataTable: TDADataSource [8] + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [9] + end + inherited StatusBarImages: TPngImageList [10] + end + object JsPrevisualizarDialog: TJSDialog + Content.Strings = ( + 'Elija una opci'#243'n:') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Previsualizar...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Previsualizar el recibo/s seleccionado/s' + Value = 100 + Default = True + end + item + Caption = 'Previsualizar la lista de recibos actual' + Value = 200 + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 296 + Top = 144 + end + object JsImprimirDialog: TJSDialog + Content.Strings = ( + 'Elija una opci'#243'n:') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Imprimir...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Imprimir el recibo/s seleccionado/s' + Value = 100 + Default = True + end + item + Caption = 'Imprimir la lista de recibos actual' + Value = 200 + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 328 + Top = 144 + end + object JSInformesDialog: TJSDialog + Content.Strings = ( + 'Seleccione el informe que desea realizar') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Nuevo informe' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Listado de recibos pendientes.' + Value = 100 + Default = True + end + item + Caption = 'Listado de recibos' + Value = 200 + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 408 + Top = 80 + end +end diff --git a/Source/Modulos/Recibos de cliente/Views/uEditorRecibosCliente.pas b/Source/Modulos/Recibos de cliente/Views/uEditorRecibosCliente.pas new file mode 100644 index 0000000..4ad9221 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uEditorRecibosCliente.pas @@ -0,0 +1,322 @@ +{ +=============================================================================== + Copyright (©) 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los términos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versión: + Versión actual: 1.0.0 + Fecha versión actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uEditorRecibosCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, Menus, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems, + TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, + JvNavigationPane, uViewGrid, pngimage, JvComponentBase, + JvExComCtrls, JvStatusBar, uViewBase, uViewBarraSeleccion, uViewGridBase, + uEditorGridBase, uCustomView, + + uBizRecibosCliente, uIEditorRecibosCliente, uRecibosClienteController, + uViewRecibosCliente, JSDialog, uDAInterfaces; + +type + + TfEditorRecibosCliente = class(TfEditorGridBase, IEditorRecibosCliente) + frViewRecibosCliente1: TfrViewRecibosCliente; + JsPrevisualizarDialog: TJSDialog; + JsImprimirDialog: TJSDialog; + actInformes: TAction; + TBXItem38: TTBXItem; + JSInformesDialog: TJSDialog; + procedure FormShow(Sender: TObject); + procedure actInformesExecute(Sender: TObject); + procedure OnListaAnosChange(Sender: TObject; const Text: string); + + private + FRecibosCliente: IBizRecibosCliente; + FController : IRecibosClienteController; + protected + function GetRecibosCliente: IBizRecibosCliente; + procedure SetRecibosCliente(const Value: IBizRecibosCliente); + + function GetController : IRecibosClienteController; + procedure SetController (const Value : IRecibosClienteController); + + procedure NuevoInterno; override; + procedure EliminarInterno; override; + procedure ModificarInterno; override; + procedure DuplicarInterno; override; + procedure ImprimirInterno; override; + procedure PrevisualizarInterno; override; + procedure RefrescarInterno; override; + + public + procedure PonerTitulos(const ATitulo: string = ''); override; + property RecibosCliente: IBizRecibosCliente read GetRecibosCliente write SetRecibosCliente; + property Controller : IRecibosClienteController read GetController write SetController; + + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + + +implementation + +uses + uDataModuleRecibosCliente, uDataModuleUsuarios, uFactuGES_App, + uGridStatusUtils, uDBSelectionListUtils, uGestorInformesController; + +{$R *.dfm} + +{ +*************************** TfEditorRecibosCliente *************************** +} +procedure TfEditorRecibosCliente.actInformesExecute(Sender: TObject); +var + Respuesta : Integer; + AGestorInformesController : IGestorInformesController; + +begin + AGestorInformesController := TGestorInformesController.Create; + try + + Respuesta := JsInformesDialog.Execute; + + if Respuesta <> IDCANCEL then + begin + case JsInformesDialog.CustomButtonResult of + 100 : begin // Listado de recibos pendientes + AGestorInformesController.VerInformeListadoRecibosCliPendientes; + end; + 200 : begin // Listado de recibos de cliente + AGestorInformesController.VerInformeListadoRecibosCliente; + end; + end; + end; + + finally + AGestorInformesController := NIL; + end; +end; + +constructor TfEditorRecibosCliente.Create(AOwner: TComponent); +begin + inherited; + FController := TRecibosClienteController.Create; + + FHeaderText := 'Lista de recibos de cliente'; + FWindowCaption := FHeaderText; + + ViewGrid := frViewRecibosCliente1; // CreateView(TfrViewRecibosCliente) as IViewRecibosCliente; +end; + +destructor TfEditorRecibosCliente.Destroy; +begin + FRecibosCliente := NIL; + FController := NIL; + inherited; +end; + +procedure TfEditorRecibosCliente.DuplicarInterno; +begin +// No se pueden duplicar recibos +end; + +procedure TfEditorRecibosCliente.EliminarInterno; +begin +// +//No se pueden eliminar recibos +end; + +procedure TfEditorRecibosCliente.FormShow(Sender: TObject); +begin + cbxListaAnos.OnChange := OnListaAnosChange; //OJO SIEMPRE ANTES DEL INHERITED + + inherited; + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(FRecibosCliente) then + raise Exception.Create('No hay ningún objeto asignado'); + + FRecibosCliente.DataTable.Active := True; + ViewGrid.GotoFirst; +end; + +function TfEditorRecibosCliente.GetController: IRecibosClienteController; +begin + Result := FController; +end; + +function TfEditorRecibosCliente.GetRecibosCliente: IBizRecibosCliente; +begin + Result := FRecibosCliente; +end; + +procedure TfEditorRecibosCliente.ImprimirInterno; +var + Respuesta : Integer; + ARecibosCliente: IBizRecibosCliente; + AllItems: Boolean; + +begin + ARecibosCliente := Nil; + AllItems := False; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + //Si esta agrupado solo podré imprimir la lista de elementos visibles + if not ViewGrid.esSeleccionCeldaDatos then + inherited + else + begin + Respuesta := JsPrevisualizarDialog.Execute; + if Respuesta <> IDCANCEL then + begin + case JsPrevisualizarDialog.CustomButtonResult of + 200 : begin // Lista de elementos visibles + inherited; + end; + 100 : begin // Elemento Seleccionado + if AllItems then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (RecibosCliente as ISeleccionable).SelectedRecords); + ARecibosCliente := (Controller as IRecibosClienteController).ExtraerSeleccionados(RecibosCliente) as IBizRecibosCliente; + end + else + ARecibosCliente := RecibosCliente; + + if Assigned(ARecibosCliente) then + FController.Print(ARecibosCliente, AllItems); + end; + end; + end; + end; +end; + +procedure TfEditorRecibosCliente.ModificarInterno; +begin + inherited; + FController.Ver(FRecibosCliente); + RefrescarInterno; +end; + +procedure TfEditorRecibosCliente.NuevoInterno; +begin +// inherited; +//No se pueden añadir recibos nuevos +end; + +procedure TfEditorRecibosCliente.OnListaAnosChange(Sender: TObject; const Text: string); +begin + Controller.FiltrarAno(RecibosCliente, DynWhereDataTable, Text); + if RecibosCliente.DataTable.Active then + RefrescarInterno; +end; + +procedure TfEditorRecibosCliente.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := FWindowCaption + ' - ' + AppFactuGES.EmpresaActiva.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorRecibosCliente.PrevisualizarInterno; +var + Respuesta: Integer; + ARecibosCliente: IBizRecibosCliente; + AllItems: Boolean; + +begin + + ARecibosCliente := Nil; + AllItems := False; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + //Si esta agrupado solo podré imprimir la lista de elementos visibles + if not ViewGrid.esSeleccionCeldaDatos then + inherited + else + begin + Respuesta := JsPrevisualizarDialog.Execute; + if Respuesta <> IDCANCEL then + begin + case JsPrevisualizarDialog.CustomButtonResult of + 200 : begin // Lista de elementos visibles + inherited; + end; + 100 : begin // Elemento Seleccionado + if AllItems then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (RecibosCliente as ISeleccionable).SelectedRecords); + ARecibosCliente := (Controller as IRecibosClienteController).ExtraerSeleccionados(RecibosCliente) as IBizRecibosCliente; + end + else + ARecibosCliente := RecibosCliente; + + if Assigned(ARecibosCliente) then + FController.Preview(ARecibosCliente, AllItems); + end; + end; + end; + end; +end; + +procedure TfEditorRecibosCliente.RefrescarInterno; +begin + //Volvemos a cargar los años de los albaranes + if Assigned(FController) then + ListaAnos := FController.DarListaAnosRecibos; + + inherited; +end; + +procedure TfEditorRecibosCliente.SetController(const Value: IRecibosClienteController); +begin + FController := Value; + + if Assigned(FController) then + ListaAnos := FController.DarListaAnosRecibos; +end; + +procedure TfEditorRecibosCliente.SetRecibosCliente(const Value: IBizRecibosCliente); +begin + FRecibosCliente := Value; + + if Assigned(FRecibosCliente) then + begin + //Se guarda el where de la sentencia origen, por si el editor tiene filtros que + //afecten a este where y en un futuro se desea volver al where origen (filtro de año)) + DynWhereDataTable := FRecibosCliente.DataTable.DynamicWhere.Xml; + + dsDataTable.DataTable := FRecibosCliente.DataTable; + if Assigned(ViewGrid) then + (ViewGrid as IViewRecibosCliente).Recibos := FRecibosCliente; + end; +end; + +end. diff --git a/Source/Modulos/Recibos de cliente/Views/uRecibosClienteViewRegister.dcu b/Source/Modulos/Recibos de cliente/Views/uRecibosClienteViewRegister.dcu new file mode 100644 index 0000000..a22d319 Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Views/uRecibosClienteViewRegister.dcu differ diff --git a/Source/Modulos/Recibos de cliente/Views/uRecibosClienteViewRegister.pas b/Source/Modulos/Recibos de cliente/Views/uRecibosClienteViewRegister.pas new file mode 100644 index 0000000..2421380 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uRecibosClienteViewRegister.pas @@ -0,0 +1,55 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uRecibosClienteViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorRecibosCliente, uEditorReciboCliente, uEditorElegirRecibosCliente, + uEditorReciboClienteReport, uEditorFechaPago; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorFechaPago, 'EditorFechaPago'); + EditorRegistry.RegisterClass(TfEditorRecibosCliente, 'EditorRecibosCliente'); + EditorRegistry.RegisterClass(TfEditorReciboCliente, 'EditorReciboCliente'); + EditorRegistry.RegisterClass(TfEditorElegirRecibosCliente, 'EditorElegirRecibosCliente'); + EditorRegistry.RegisterClass(TfEditorReciboClientePreview, 'EditorRecibosClientePreview'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorFechaPago); + EditorRegistry.UnRegisterClass(TfEditorRecibosCliente); + EditorRegistry.UnRegisterClass(TfEditorReciboCliente); + EditorRegistry.UnRegisterClass(TfEditorElegirRecibosCliente); + EditorRegistry.UnRegisterClass(TfEditorReciboClientePreview); +end; + +end. diff --git a/Source/Modulos/Recibos de cliente/Views/uViewPagosCliente.dcu b/Source/Modulos/Recibos de cliente/Views/uViewPagosCliente.dcu new file mode 100644 index 0000000..3854385 Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Views/uViewPagosCliente.dcu differ diff --git a/Source/Modulos/Recibos de cliente/Views/uViewPagosCliente.dfm b/Source/Modulos/Recibos de cliente/Views/uViewPagosCliente.dfm new file mode 100644 index 0000000..72ba95f --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uViewPagosCliente.dfm @@ -0,0 +1,339 @@ +inherited frViewPagosCliente: TfrViewPagosCliente + Width = 666 + Height = 401 + ExplicitWidth = 666 + ExplicitHeight = 401 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 666 + Height = 401 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 0 + Margins.Bottom = 0 + Align = alClient + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + LookAndFeel = dxLayoutOfficeLookAndFeel1 + object dxLayoutGroup1: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + end + end + object dxLayoutControl2: TdxLayoutControl + Left = 0 + Top = 0 + Width = 666 + Height = 401 + Align = alClient + ParentBackground = True + TabOrder = 1 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + LookAndFeel = dxLayoutOfficeLookAndFeel1 + object ToolBar1: TToolBar + Left = 22 + Top = 30 + Width = 666 + Height = 25 + ButtonWidth = 70 + Caption = 'ToolBar1' + EdgeInner = esNone + EdgeOuter = esNone + Flat = False + Images = ContenidoImageList + List = True + ParentShowHint = False + ShowCaptions = True + ShowHint = True + TabOrder = 0 + Transparent = True + object ToolButton1: TToolButton + Left = 0 + Top = 0 + Action = actAnadir + AutoSize = True + end + object ToolButton4: TToolButton + Left = 62 + Top = 0 + Action = actModificar + AutoSize = True + end + object ToolButton5: TToolButton + Left = 136 + Top = 0 + Width = 8 + Caption = 'ToolButton5' + ImageIndex = 2 + Style = tbsSeparator + end + object ToolButton2: TToolButton + Left = 144 + Top = 0 + Action = actEliminar + AutoSize = True + end + end + object ListaPagosCliente: TcxGrid + Left = 22 + Top = 61 + Width = 605 + Height = 262 + Align = alClient + TabOrder = 1 + LookAndFeel.Kind = lfStandard + LookAndFeel.NativeStyle = True + object ListaPagosClienteDBTableView1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = ListaPagosClienteDBTableView1CellDblClick + DataController.DataSource = DADataSource + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsCustomize.ColumnGrouping = False + OptionsCustomize.ColumnHidingOnGrouping = False + OptionsCustomize.ColumnMoving = False + OptionsCustomize.ColumnSorting = False + OptionsData.Deleting = False + OptionsData.DeletingConfirmation = False + OptionsData.Inserting = False + OptionsSelection.CellSelect = False + OptionsSelection.HideFocusRectOnExit = False + OptionsSelection.InvertSelect = False + OptionsSelection.UnselectFocusedRecordOnExit = False + OptionsView.CellEndEllipsis = True + OptionsView.FocusRect = False + OptionsView.ColumnAutoWidth = True + OptionsView.GroupByBox = False + object ListaPagosClienteDBTableView1RecID: TcxGridDBColumn + DataBinding.FieldName = 'RecID' + Visible = False + end + object ListaPagosClienteDBTableView1ID: TcxGridDBColumn + DataBinding.FieldName = 'ID' + Visible = False + end + object ListaPagosClienteDBTableView1ID_RECIBO: TcxGridDBColumn + DataBinding.FieldName = 'ID_RECIBO' + Visible = False + end + object ListaPagosClienteDBTableView1TIPO: TcxGridDBColumn + DataBinding.FieldName = 'TIPO' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Items = < + item + Description = 'Cobro' + ImageIndex = 0 + Value = 'Pago' + end + item + Description = 'Devoluci'#243'n' + Value = 'Devoluci'#243'n' + end> + Options.Focusing = False + Width = 389 + IsCaptionAssigned = True + end + object ListaPagosClienteDBTableView1FECHA_PAGO: TcxGridDBColumn + Caption = 'Fecha' + DataBinding.FieldName = 'FECHA_PAGO' + PropertiesClassName = 'TcxDateEditProperties' + Options.Focusing = False + Width = 231 + end + object ListaPagosClienteDBTableView1TITULAR: TcxGridDBColumn + DataBinding.FieldName = 'TITULAR' + Visible = False + end + object ListaPagosClienteDBTableView1ENTIDAD: TcxGridDBColumn + DataBinding.FieldName = 'ENTIDAD' + Visible = False + end + object ListaPagosClienteDBTableView1SUCURSAL: TcxGridDBColumn + DataBinding.FieldName = 'SUCURSAL' + Visible = False + end + object ListaPagosClienteDBTableView1DC: TcxGridDBColumn + DataBinding.FieldName = 'DC' + Visible = False + end + object ListaPagosClienteDBTableView1CUENTA: TcxGridDBColumn + DataBinding.FieldName = 'CUENTA' + Visible = False + end + object ListaPagosClienteDBTableView1FECHA_ALTA: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_ALTA' + Visible = False + end + object ListaPagosClienteDBTableView1FECHA_MODIFICACION: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_MODIFICACION' + Visible = False + end + object ListaPagosClienteDBTableView1USUARIO: TcxGridDBColumn + DataBinding.FieldName = 'USUARIO' + Visible = False + end + end + object ListaPagosClienteLevel1: TcxGridLevel + GridView = ListaPagosClienteDBTableView1 + end + end + object dxLayoutControl2Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl2Group1: TdxLayoutGroup + AutoAligns = [aaHorizontal] + AlignVert = avClient + Caption = 'Pagos y devoluciones del recibo' + object dxLayoutControl2Item1: TdxLayoutItem + Caption = 'New Item' + ShowCaption = False + Control = ToolBar1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl2Item2: TdxLayoutItem + AutoAligns = [aaHorizontal] + AlignVert = avClient + Caption = 'New Item' + ShowCaption = False + Control = ListaPagosCliente + ControlOptions.ShowBorder = False + end + end + end + end + object DADataSource: TDADataSource + DataSet = tbl_PagosCliente.Dataset + DataTable = DataModuleRecibosCliente.tbl_PagosCliente + Left = 8 + Top = 8 + end + object ActionListContenido: TActionList + Images = ContenidoImageList + Left = 8 + Top = 40 + object actAnadir: TAction + Category = 'Operaciones' + Caption = 'A'#241'adir' + ImageIndex = 0 + ShortCut = 45 + end + object actModificar: TAction + Category = 'Operaciones' + Caption = 'Modificar' + ImageIndex = 2 + end + object actEliminar: TAction + Category = 'Operaciones' + Caption = 'Eliminar' + ImageIndex = 1 + ShortCut = 16430 + end + end + object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList + Left = 320 + Top = 248 + object dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel + GroupOptions.CaptionOptions.Font.Charset = DEFAULT_CHARSET + GroupOptions.CaptionOptions.Font.Color = clWindowText + GroupOptions.CaptionOptions.Font.Height = -11 + GroupOptions.CaptionOptions.Font.Name = 'Tahoma' + GroupOptions.CaptionOptions.Font.Style = [fsBold] + GroupOptions.CaptionOptions.TextColor = clHighlight + GroupOptions.CaptionOptions.UseDefaultFont = False + end + end + object ContenidoImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000F84944415478DA + 63FCFFFF3F03084C59BC03C2200072E33C19616C905E46640372623DF06A06AA + 6198B77413C3F99DD3194936E0DFBF7F0CD396EE62D051576128AAEB031B42B4 + 0120CDBFFFFC6398BD720F43B0A70DC3CD7B2FC0869CDB318D91A00130CDBF7F + FF6558B06E3FD80B3040D00064CDBFFF40F0AA6D47C1722083F01A804D3304FF + 63D8B2EF147E03F06906D13B0F9DC56D0058E16F540D20FC07C607CA1D387911 + BB01E991AE043583F847CF5EC16E4052881341CD207CEAE275EC06C406D813D4 + 0CC2E7AFDEC26E40848F2D41CD20B12B37EF603720D8C38AA06610C069809F8B + 39C3A63D2789C994D80D404EA6C400900100F58BBFF09BC1E25C000000004945 + 4E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end> + Left = 8 + Top = 72 + Bitmap = {} + end +end diff --git a/Source/Modulos/Recibos de cliente/Views/uViewPagosCliente.pas b/Source/Modulos/Recibos de cliente/Views/uViewPagosCliente.pas new file mode 100644 index 0000000..b397021 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uViewPagosCliente.pas @@ -0,0 +1,101 @@ +unit uViewPagosCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, DB, uDADataTable, dxLayoutControl, + cxControls, cxCurrencyEdit, cxDBEdit, cxMemo, cxMaskEdit, cxDropDownEdit, + cxCalendar, cxContainer, cxEdit, cxTextEdit, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxDBData, cxSpinEdit, + cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + cxClasses, cxGridCustomView, cxGrid, uBizPagosCliente, ActnList, TB2Item, + TBX, TB2Dock, TB2Toolbar, cxImageComboBox, dxLayoutLookAndFeels, ImgList, + PngImageList, ComCtrls, ToolWin, uDAInterfaces; + +type + IViewPagosCliente = interface(IViewBase) + ['{3DBF38F1-35AF-445C-967C-E429570B1AE5}'] + function GetPagos: IBizPagosCliente; + procedure SetPagos(const Value: IBizPagosCliente); + property Pagos: IBizPagosCliente read GetPagos write SetPagos; + end; + + + TfrViewPagosCliente = class(TfrViewBase, IViewPagosCliente) + DADataSource: TDADataSource; + ListaPagosCliente: TcxGrid; + ListaPagosClienteDBTableView1: TcxGridDBTableView; + ListaPagosClienteLevel1: TcxGridLevel; + ListaPagosClienteDBTableView1RecID: TcxGridDBColumn; + ListaPagosClienteDBTableView1ID: TcxGridDBColumn; + ListaPagosClienteDBTableView1ID_RECIBO: TcxGridDBColumn; + ListaPagosClienteDBTableView1TIPO: TcxGridDBColumn; + ListaPagosClienteDBTableView1FECHA_PAGO: TcxGridDBColumn; + ListaPagosClienteDBTableView1TITULAR: TcxGridDBColumn; + ListaPagosClienteDBTableView1ENTIDAD: TcxGridDBColumn; + ListaPagosClienteDBTableView1SUCURSAL: TcxGridDBColumn; + ListaPagosClienteDBTableView1DC: TcxGridDBColumn; + ListaPagosClienteDBTableView1CUENTA: TcxGridDBColumn; + ListaPagosClienteDBTableView1FECHA_ALTA: TcxGridDBColumn; + ListaPagosClienteDBTableView1FECHA_MODIFICACION: TcxGridDBColumn; + ListaPagosClienteDBTableView1USUARIO: TcxGridDBColumn; + ActionListContenido: TActionList; + actAnadir: TAction; + actEliminar: TAction; + actModificar: TAction; + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + dxLayoutControl1: TdxLayoutControl; + ToolBar1: TToolBar; + ToolButton1: TToolButton; + ToolButton4: TToolButton; + ToolButton5: TToolButton; + ToolButton2: TToolButton; + dxLayoutGroup1: TdxLayoutGroup; + ContenidoImageList: TPngImageList; + dxLayoutControl2Group_Root: TdxLayoutGroup; + dxLayoutControl2: TdxLayoutControl; + dxLayoutControl2Group1: TdxLayoutGroup; + dxLayoutControl2Item1: TdxLayoutItem; + dxLayoutControl2Item2: TdxLayoutItem; + procedure ListaPagosClienteDBTableView1CellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + private + FPagos : IBizPagosCliente; + function GetPagos: IBizPagosCliente; + procedure SetPagos(const Value: IBizPagosCliente); + public + property Pagos: IBizPagosCliente read GetPagos write SetPagos; + end; + +implementation +{$R *.dfm} + +{ TfrViewPagosCliente } + +function TfrViewPagosCliente.GetPagos: IBizPagosCliente; +begin + Result := FPagos; +end; + +procedure TfrViewPagosCliente.ListaPagosClienteDBTableView1CellDblClick( + Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; + AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); +begin + inherited; + actModificar.Execute; +end; + +procedure TfrViewPagosCliente.SetPagos(const Value: IBizPagosCliente); +begin + FPagos := Value; + if Assigned(FPagos) then + DADataSource.DataTable := FPagos.DataTable + else + DADataSource.DataTable := NIL; +end; + +end. diff --git a/Source/Modulos/Recibos de cliente/Views/uViewReciboCliImportes.dcu b/Source/Modulos/Recibos de cliente/Views/uViewReciboCliImportes.dcu new file mode 100644 index 0000000..9eac6e4 Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Views/uViewReciboCliImportes.dcu differ diff --git a/Source/Modulos/Recibos de cliente/Views/uViewReciboCliImportes.dfm b/Source/Modulos/Recibos de cliente/Views/uViewReciboCliImportes.dfm new file mode 100644 index 0000000..28a8828 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uViewReciboCliImportes.dfm @@ -0,0 +1,130 @@ +inherited frViewReciboCliImportes: TfrViewReciboCliImportes + Width = 451 + Height = 100 + Align = alBottom + ExplicitWidth = 451 + ExplicitHeight = 100 + object dxLayoutControl1: TdxLayoutControl + AlignWithMargins = True + Left = 0 + Top = 0 + Width = 451 + Height = 217 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 0 + Margins.Bottom = 0 + Align = alTop + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + object eImporte: TcxDBCurrencyEdit + Left = 93 + Top = 28 + AutoSize = False + DataBinding.DataField = 'IMPORTE' + Properties.Alignment.Horz = taRightJustify + Properties.ReadOnly = False + Properties.UseLeftAlignmentOnEditing = False + Properties.UseThousandSeparator = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.TextColor = clWindowText + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Height = 21 + Width = 150 + end + object eOtrosGastos: TcxDBCurrencyEdit + Left = 93 + Top = 55 + AutoSize = False + DataBinding.DataField = 'OTROS_GASTOS' + Properties.Alignment.Horz = taRightJustify + Properties.ReadOnly = False + Properties.UseLeftAlignmentOnEditing = False + Properties.UseThousandSeparator = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.TextColor = clWindowText + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Height = 21 + Width = 183 + end + object eImporteTotalRecibo: TcxCurrencyEdit + Left = 354 + Top = 28 + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.TextStyle = [fsBold] + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 2 + Width = 183 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + Caption = 'Importes recibo' + LayoutDirection = ldHorizontal + object dxLayoutControl1Group3: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item1: TdxLayoutItem + Caption = 'Importe:' + Control = eImporte + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item2: TdxLayoutItem + Caption = 'Otros gastos:' + Control = eOtrosGastos + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item3: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Importe total:' + Control = eImporteTotalRecibo + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Group4: TdxLayoutGroup + end + end + object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList + Left = 40 + Top = 8 + object LookAndFeelIMPORTE_TOTAL: TdxLayoutStandardLookAndFeel + ItemOptions.CaptionOptions.Font.Charset = DEFAULT_CHARSET + ItemOptions.CaptionOptions.Font.Color = clWindowText + ItemOptions.CaptionOptions.Font.Height = -12 + ItemOptions.CaptionOptions.Font.Name = 'Tahoma' + ItemOptions.CaptionOptions.Font.Style = [fsBold] + ItemOptions.CaptionOptions.UseDefaultFont = False + end + end +end diff --git a/Source/Modulos/Recibos de cliente/Views/uViewReciboCliImportes.pas b/Source/Modulos/Recibos de cliente/Views/uViewReciboCliImportes.pas new file mode 100644 index 0000000..ce1327a --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uViewReciboCliImportes.pas @@ -0,0 +1,37 @@ +unit uViewReciboCliImportes; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, ExtCtrls, StdCtrls, DB, uDADataTable, cxGraphics, + cxTextEdit, cxMaskEdit, cxDropDownEdit, cxDBEdit, cxControls, + cxContainer, cxEdit, cxLabel, cxDBLabel, cxCurrencyEdit, cxSpinEdit, + ComCtrls, dxLayoutControl, dxLayoutLookAndFeels, cxLookupEdit, cxDBLookupEdit, + cxDBLookupComboBox, cxCheckBox; + +type + TfrViewReciboCliImportes = class(TfrViewBase) + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Group4: TdxLayoutGroup; + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + LookAndFeelIMPORTE_TOTAL: TdxLayoutStandardLookAndFeel; + dxLayoutControl1Item1: TdxLayoutItem; + eImporte: TcxDBCurrencyEdit; + dxLayoutControl1Item2: TdxLayoutItem; + eOtrosGastos: TcxDBCurrencyEdit; + dxLayoutControl1Item3: TdxLayoutItem; + eImporteTotalRecibo: TcxCurrencyEdit; + dxLayoutControl1Group3: TdxLayoutGroup; + public + { Public declarations } + end; + + +implementation + +{$R *.dfm} + +end. diff --git a/Source/Modulos/Recibos de cliente/Views/uViewReciboCliente.dcu b/Source/Modulos/Recibos de cliente/Views/uViewReciboCliente.dcu new file mode 100644 index 0000000..5c3a069 Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Views/uViewReciboCliente.dcu differ diff --git a/Source/Modulos/Recibos de cliente/Views/uViewReciboCliente.dfm b/Source/Modulos/Recibos de cliente/Views/uViewReciboCliente.dfm new file mode 100644 index 0000000..aad7a36 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uViewReciboCliente.dfm @@ -0,0 +1,572 @@ +inherited frViewReciboCliente: TfrViewReciboCliente + Width = 690 + Height = 361 + ExplicitWidth = 690 + ExplicitHeight = 361 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 690 + Height = 361 + Align = alClient + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + LookAndFeel = dxLayoutOfficeLookAndFeel1 + DesignSize = ( + 690 + 361) + object eReferencia: TcxDBTextEdit + Left = 120 + Top = 30 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REFERENCIA' + DataBinding.DataSource = DADataSource + Enabled = False + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 0 + Width = 216 + end + object eSituacion: TcxDBTextEdit + Left = 120 + Top = 111 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'SITUACION' + DataBinding.DataSource = DADataSource + Enabled = False + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 3 + Width = 216 + end + object edtFechaVencimiento: TcxDBDateEdit + Left = 120 + Top = 84 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_VENCIMIENTO' + DataBinding.DataSource = DADataSource + Properties.ImmediatePost = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 2 + Width = 216 + end + object memObservaciones: TcxDBMemo + Left = 22 + Top = 267 + Anchors = [akLeft, akTop, akRight, akBottom] + DataBinding.DataField = 'OBSERVACIONES' + DataBinding.DataSource = DADataSource + Properties.ScrollBars = ssVertical + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 7 + Height = 49 + Width = 314 + end + object eFechaEmision: TcxDBTextEdit + Left = 440 + Top = 30 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_FACTURA' + DataBinding.DataSource = DADataSource + Enabled = False + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 8 + Width = 228 + end + object eFormaPago: TcxDBTextEdit + Left = 440 + Top = 57 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FORMA_PAGO_FACTURA' + DataBinding.DataSource = DADataSource + Enabled = False + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 9 + Width = 228 + end + object eImporteTotal: TcxDBCurrencyEdit + Left = 440 + Top = 111 + AutoSize = False + DataBinding.DataField = 'IMPORTE_FACTURA' + DataBinding.DataSource = DADataSource + Enabled = False + ParentFont = False + Properties.Alignment.Horz = taRightJustify + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Properties.UseThousandSeparator = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clWindowText + Style.Font.Height = -11 + Style.Font.Name = 'Tahoma' + Style.Font.Style = [fsBold] + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.TextColor = clWindowText + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 11 + Height = 21 + Width = 228 + end + object eNombreCliente: TcxDBTextEdit + Left = 440 + Top = 194 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'NOMBRE_CLIENTE' + DataBinding.DataSource = DADataSource + Enabled = False + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 13 + Width = 228 + end + object eNifCif: TcxDBTextEdit + Left = 440 + Top = 167 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'NIF_CIF_CLIENTE' + DataBinding.DataSource = DADataSource + Enabled = False + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 12 + Width = 228 + end + object eRemesa: TcxDBTextEdit + Left = 120 + Top = 138 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REFERENCIA_REMESA' + DataBinding.DataSource = DADataSource + Enabled = False + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 4 + Width = 216 + end + object edtFechaEmision: TcxDBDateEdit + Left = 120 + Top = 57 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_EMISION' + DataBinding.DataSource = DADataSource + Enabled = False + Properties.ImmediatePost = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 1 + Width = 216 + end + object rRefReciboCompensado: TcxDBTextEdit + Left = 120 + Top = 216 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REFERENCIA_REC_COMPENSADO' + DataBinding.DataSource = DADataSource + Enabled = False + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 6 + Width = 216 + end + object eConcepto: TcxDBTextEdit + Left = 120 + Top = 165 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'DESCRIPCION' + DataBinding.DataSource = DADataSource + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 5 + Width = 216 + end + object eCuenta: TcxDBTextEdit + Left = 440 + Top = 84 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'DATOS_BANCARIOS' + DataBinding.DataSource = DADataSource + Enabled = False + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 10 + Width = 228 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Group3: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Datos del recibo' + object dxLayoutControl1Item1: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Referencia:' + Control = eReferencia + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item19: TdxLayoutItem + Caption = 'Fecha emisi'#243'n:' + Control = edtFechaEmision + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item3: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Fecha vencimiento:' + Control = edtFechaVencimiento + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item2: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Situaci'#243'n:' + Control = eSituacion + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item16: TdxLayoutItem + Caption = 'Ref. remesa:' + Control = eRemesa + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item6: TdxLayoutItem + Caption = 'Concepto:' + Control = eConcepto + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group2: TdxLayoutGroup + Caption = 'Compensado en recibo' + object dxLayoutControl1Item4: TdxLayoutItem + Caption = 'Ref. recibo:' + Control = rRefReciboCompensado + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group7: TdxLayoutGroup + Caption = 'Observaciones' + object dxLayoutControl1Item5: TdxLayoutItem + AutoAligns = [aaHorizontal] + AlignVert = avClient + Caption = 'Observaciones:' + ShowCaption = False + Control = memObservaciones + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Group8: TdxLayoutGroup + AutoAligns = [aaVertical] + Caption = 'New Group' + ShowCaption = False + ShowBorder = False + object dxLayoutControl1Group5: TdxLayoutGroup + Caption = 'Datos de la factura' + object dxLayoutControl1Item7: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Fecha emisi'#243'n:' + Control = eFechaEmision + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item8: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Forma pago:' + Control = eFormaPago + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item15: TdxLayoutItem + Caption = 'Cuenta bancaria:' + Control = eCuenta + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item9: TdxLayoutItem + Caption = 'Total factura:' + Control = eImporteTotal + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group6: TdxLayoutGroup + AutoAligns = [aaHorizontal] + AlignVert = avClient + Caption = 'Datos del cliente' + Offsets.Top = 5 + object dxLayoutControl1Item11: TdxLayoutItem + Caption = 'NIF/CIF:' + Control = eNifCif + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item10: TdxLayoutItem + Caption = 'Nombre:' + Control = eNombreCliente + ControlOptions.ShowBorder = False + end + end + end + end + end + object DADataSource: TDADataSource + Left = 56 + Top = 16 + end + object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList + Left = 24 + Top = 16 + object dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel + GroupOptions.CaptionOptions.Font.Charset = DEFAULT_CHARSET + GroupOptions.CaptionOptions.Font.Color = clWindowText + GroupOptions.CaptionOptions.Font.Height = -11 + GroupOptions.CaptionOptions.Font.Name = 'Tahoma' + GroupOptions.CaptionOptions.Font.Style = [fsBold] + GroupOptions.CaptionOptions.TextColor = clHighlight + GroupOptions.CaptionOptions.UseDefaultFont = False + end + end +end diff --git a/Source/Modulos/Recibos de cliente/Views/uViewReciboCliente.pas b/Source/Modulos/Recibos de cliente/Views/uViewReciboCliente.pas new file mode 100644 index 0000000..2b1a7c7 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uViewReciboCliente.pas @@ -0,0 +1,93 @@ +unit uViewReciboCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, uBizRecibosCliente, DB, uDADataTable, dxLayoutControl, + cxControls, cxCurrencyEdit, cxDBEdit, cxMemo, cxMaskEdit, cxDropDownEdit, + cxCalendar, cxContainer, cxEdit, cxTextEdit, dxLayoutLookAndFeels, ExtCtrls, + uDAInterfaces; + +type + IViewReciboCliente = interface(IViewBase) + ['{5DDA0CF0-1A57-492E-B7AE-614E6A7236B5}'] + function GetRecibo: IBizRecibosCliente; + procedure SetRecibo(const Value: IBizRecibosCliente); + property Recibo: IBizRecibosCliente read GetRecibo write SetRecibo; + end; + + + TfrViewReciboCliente = class(TfrViewBase, IViewReciboCliente) + DADataSource: TDADataSource; + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Item1: TdxLayoutItem; + eReferencia: TcxDBTextEdit; + dxLayoutControl1Item2: TdxLayoutItem; + eSituacion: TcxDBTextEdit; + dxLayoutControl1Item3: TdxLayoutItem; + edtFechaVencimiento: TcxDBDateEdit; + dxLayoutControl1Item5: TdxLayoutItem; + memObservaciones: TcxDBMemo; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Item7: TdxLayoutItem; + eFechaEmision: TcxDBTextEdit; + dxLayoutControl1Item8: TdxLayoutItem; + eFormaPago: TcxDBTextEdit; + dxLayoutControl1Item9: TdxLayoutItem; + eImporteTotal: TcxDBCurrencyEdit; + dxLayoutControl1Group5: TdxLayoutGroup; + dxLayoutControl1Item10: TdxLayoutItem; + eNombreCliente: TcxDBTextEdit; + dxLayoutControl1Item11: TdxLayoutItem; + eNifCif: TcxDBTextEdit; + dxLayoutControl1Group6: TdxLayoutGroup; + dxLayoutControl1Group8: TdxLayoutGroup; + dxLayoutControl1Item16: TdxLayoutItem; + eRemesa: TcxDBTextEdit; + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + dxLayoutControl1Group7: TdxLayoutGroup; + dxLayoutControl1Item19: TdxLayoutItem; + edtFechaEmision: TcxDBDateEdit; + dxLayoutControl1Item4: TdxLayoutItem; + rRefReciboCompensado: TcxDBTextEdit; + dxLayoutControl1Group2: TdxLayoutGroup; + dxLayoutControl1Group3: TdxLayoutGroup; + dxLayoutControl1Item6: TdxLayoutItem; + eConcepto: TcxDBTextEdit; + dxLayoutControl1Item15: TdxLayoutItem; + eCuenta: TcxDBTextEdit; + private + FRecibo : IBizRecibosCliente; + function GetRecibo: IBizRecibosCliente; + procedure SetRecibo(const Value: IBizRecibosCliente); + public + property Recibo: IBizRecibosCliente read GetRecibo write SetRecibo; + end; + +var + frViewReciboCliente: TfrViewReciboCliente; + +implementation + +{$R *.dfm} + +{ TfrViewReciboCliente } + +function TfrViewReciboCliente.GetRecibo: IBizRecibosCliente; +begin + Result := FRecibo; +end; + +procedure TfrViewReciboCliente.SetRecibo(const Value: IBizRecibosCliente); +begin + FRecibo := Value; + if Assigned(FRecibo) then + DADataSource.DataTable := FRecibo.DataTable + else + DADataSource.DataTable := NIL; +end; + +end. diff --git a/Source/Modulos/Recibos de cliente/Views/uViewRecibosCliCompensados.dcu b/Source/Modulos/Recibos de cliente/Views/uViewRecibosCliCompensados.dcu new file mode 100644 index 0000000..2311bdb Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Views/uViewRecibosCliCompensados.dcu differ diff --git a/Source/Modulos/Recibos de cliente/Views/uViewRecibosCliCompensados.dfm b/Source/Modulos/Recibos de cliente/Views/uViewRecibosCliCompensados.dfm new file mode 100644 index 0000000..6bca187 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uViewRecibosCliCompensados.dfm @@ -0,0 +1,237 @@ +inherited frViewRecibosCliCompensados: TfrViewRecibosCliCompensados + Width = 549 + Height = 376 + OnShow = CustomViewShow + ExplicitWidth = 549 + ExplicitHeight = 376 + inherited cxGrid: TcxGrid + Width = 549 + Height = 351 + ExplicitWidth = 549 + ExplicitHeight = 351 + inherited cxGridView: TcxGridDBTableView + DataController.KeyFieldNames = 'RecID' + DataController.Summary.FooterSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = cxGridViewIMPORTE_TOTAL + end> + OptionsCustomize.ColumnMoving = True + OptionsData.Appending = False + OptionsData.CancelOnExit = True + OptionsData.Deleting = False + OptionsData.Editing = False + OptionsData.Inserting = False + OptionsView.Footer = True + OptionsView.GroupFooters = gfAlwaysVisible + object cxGridViewRecId: TcxGridDBColumn [0] + DataBinding.FieldName = 'RecId' + Visible = False + end + object cxGridViewID_RECIBO_COMPENSADO: TcxGridDBColumn + DataBinding.FieldName = 'ID_RECIBO_COMPENSADO' + Visible = False + end + object cxGridViewREFERENCIA: TcxGridDBColumn + Caption = 'Referencia' + DataBinding.FieldName = 'REFERENCIA' + end + object cxGridViewSITUACION: TcxGridDBColumn + Caption = 'Situaci'#243'n' + DataBinding.FieldName = 'SITUACION' + end + object cxGridViewFECHA_EMISION: TcxGridDBColumn + Caption = 'Fecha emisi'#243'n' + DataBinding.FieldName = 'FECHA_EMISION' + end + object cxGridViewFECHA_VENCIMIENTO: TcxGridDBColumn + Caption = 'Fecha vencimiento' + DataBinding.FieldName = 'FECHA_VENCIMIENTO' + end + object cxGridViewNIF_CIF_CLIENTE: TcxGridDBColumn + Caption = 'NIF/CIF' + DataBinding.FieldName = 'NIF_CLIF_CLIENTE' + end + object cxGridViewNOMBRE_CLIENTE: TcxGridDBColumn + Caption = 'Cliente' + DataBinding.FieldName = 'NOMBRE_CLIENTE' + end + object cxGridViewIMPORTE: TcxGridDBColumn + Caption = 'Importe' + DataBinding.FieldName = 'IMPORTE' + end + object cxGridViewOTROS_GASTOS: TcxGridDBColumn + Caption = 'Otros gastos' + DataBinding.FieldName = 'OTROS_GASTOS' + end + object cxGridViewIMPORTE_TOTAL: TcxGridDBColumn + Caption = 'Importe total' + DataBinding.FieldName = 'IMPORTE_TOTAL' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + end + end + inherited ToolBar1: TToolBar + Width = 549 + ExplicitWidth = 549 + inherited ToolButton1: TToolButton + ExplicitWidth = 62 + end + inherited ToolButton4: TToolButton + ExplicitWidth = 74 + end + inherited ToolButton2: TToolButton + ExplicitWidth = 67 + end + inherited ToolButton7: TToolButton + ExplicitWidth = 117 + end + object ToolButton3: TToolButton + Left = 336 + Top = 0 + Action = actExpandir + AutoSize = True + end + object ToolButton8: TToolButton + Left = 434 + Top = 0 + Action = actContraer + AutoSize = True + end + end + inherited ContenidoImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000F84944415478DA + 63FCFFFF3F03084C59BC03C2200072E33C19616C905E46640372623DF06A06AA + 6198B77413C3F99DD3194936E0DFBF7F0CD396EE62D051576128AAEB031B42B4 + 0120CDBFFFFC6398BD720F43B0A70DC3CD7B2FC0869CDB318D91A00130CDBF7F + FF6558B06E3FD80B3040D00064CDBFFF40F0AA6D47C1722083F01A804D3304FF + 63D8B2EF147E03F06906D13B0F9DC56D0058E16F540D20FC07C607CA1D387911 + BB01E991AE043583F847CF5EC16E4052881341CD207CEAE275EC06C406D813D4 + 0CC2E7AFDEC26E40848F2D41CD20B12B37EF603720D8C38AA06610C069809F8B + 39C3A63D2789C994D80D404EA6C400900100F58BBFF09BC1E25C000000004945 + 4E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000DF4944415478DA + 63FCFFFF3F032580916203600C9E351CFF19FE3130FCFF09A47EFD67F89EFC0B + 2E67E09180D596F3DBE733220C58C5F17F89572FC3FBAF1F1832D73630FCC8FA + CDC84000805CCF886CF314B73A86F7DF3E32546EEC63F8FF0B22F6BBF62FDCA0 + 8482061497CCEFAF676444B619A41946BFF9FC8E61CDBE7D0C7F5AFF32E27501 + F762F6FF309B9135BF06E20347CE33FCEDF987DF059C73D9FE839CFA1F1870A9 + 56C1709BC181F903283EE53F7E17C0386C5D2CFF838C1DB1DA4C542CB03633FF + FFFF8381289BB1BA801880350C48316008BB006F2C509A1B0127B3B6E11C11A1 + 6B0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000914944415478DA + 63FCFFFF3F032580916203885164E09180D596F3DBE733320265C09220E23312 + FE02C41F80D8158F2520D7430C9838112CF0F7F74F868F4F6F33BC7F7283E1CB + EBC70C770E3C6008413220A1A001C525F3FBEB1919FF010D60041A80AE1904CE + 000D4821E4828F401ADDD91FA1F41F20CE20E4024A6200EC028A63812E2E18F8 + 30187817E0CF0B14E64600B6F869E1FAECCCBE0000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end> + Bitmap = {} + end + inherited ActionListContenido: TActionList + inherited actModificar: TAction + Enabled = False + Visible = False + end + object actExpandir: TAction + Category = 'Operaciones' + Caption = 'Expandir todo' + ImageIndex = 4 + Visible = False + OnExecute = actExpandirExecute + OnUpdate = actExpandirUpdate + end + object actContraer: TAction + Category = 'Operaciones' + Caption = 'Contraer todo' + ImageIndex = 5 + Visible = False + OnExecute = actContraerExecute + OnUpdate = actContraerUpdate + end + end +end diff --git a/Source/Modulos/Recibos de cliente/Views/uViewRecibosCliCompensados.pas b/Source/Modulos/Recibos de cliente/Views/uViewRecibosCliCompensados.pas new file mode 100644 index 0000000..47cff10 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uViewRecibosCliCompensados.pas @@ -0,0 +1,193 @@ +unit uViewRecibosCliCompensados; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewDetallesGenerico, cxStyles, cxCustomData, cxGraphics, cxFilter, + cxData, cxDataStorage, cxEdit, DB, cxDBData, ActnList, ImgList, PngImageList, + uDADataTable, ComCtrls, ToolWin, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, + cxGrid, cxImageComboBox, cxCurrencyEdit, uDataModuleRecibosCliente, + uBizRecibosCliente, uRecibosClienteController, Grids, DBGrids, cxSpinEdit, + dxLayoutControl, uDAInterfaces; + +type + IViewRecibosCompensados = interface + ['{C683669A-002A-432D-BC20-3FA50BEA8721}'] + function GetReciboCliente: IBizRecibosCliente; + procedure SetReciboCliente(const Value: IBizRecibosCliente); + property ReciboCliente: IBizRecibosCliente read GetReciboCliente write SetReciboCliente; + + function GetController : IRecibosClienteController; + procedure SetController (const Value : IRecibosClienteController); + property Controller : IRecibosClienteController read GetController write SetController; + end; + + TfrViewRecibosCliCompensados = class(TfrViewDetallesGenerico, IViewRecibosCompensados) + actExpandir: TAction; + actContraer: TAction; + ToolButton3: TToolButton; + ToolButton8: TToolButton; + cxGridViewREFERENCIA: TcxGridDBColumn; + cxGridViewIMPORTE_TOTAL: TcxGridDBColumn; + cxGridViewID_RECIBO_COMPENSADO: TcxGridDBColumn; + cxGridViewSITUACION: TcxGridDBColumn; + cxGridViewFECHA_EMISION: TcxGridDBColumn; + cxGridViewFECHA_VENCIMIENTO: TcxGridDBColumn; + cxGridViewNIF_CIF_CLIENTE: TcxGridDBColumn; + cxGridViewNOMBRE_CLIENTE: TcxGridDBColumn; + cxGridViewIMPORTE: TcxGridDBColumn; + cxGridViewOTROS_GASTOS: TcxGridDBColumn; + cxGridViewRecId: TcxGridDBColumn; + procedure actExpandirExecute(Sender: TObject); + procedure actContraerExecute(Sender: TObject); + procedure CustomViewShow(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + procedure actExpandirUpdate(Sender: TObject); + procedure actContraerUpdate(Sender: TObject); + procedure actAnadirUpdate(Sender: TObject); + protected + FHayCambios : Boolean; + FReciboCliente : IBizRecibosCliente; + FController : IRecibosClienteController; + + procedure AnadirInterno; override; + procedure EliminarInterno; override; + + function GetReciboCliente: IBizRecibosCliente; + procedure SetReciboCliente(const Value: IBizRecibosCliente); + + function GetModified: Boolean; override; + procedure SetModified(const Value: Boolean); override; + + function GetController : IRecibosClienteController; + procedure SetController (const Value : IRecibosClienteController); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + property ReciboCliente: IBizRecibosCliente read GetReciboCliente write SetReciboCliente; + property Controller : IRecibosClienteController read GetController write SetController; + end; + + +implementation + +{$R *.dfm} + +uses + uCustomView; + +{ TfrViewFacturasReciboCliente } + +procedure TfrViewRecibosCliCompensados.actAnadirUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (ReciboCliente.SITUACION <> CTE_COBRADO); +end; + +procedure TfrViewRecibosCliCompensados.actContraerExecute(Sender: TObject); +begin + inherited; + cxGridView.ViewData.Collapse(True); +end; + +procedure TfrViewRecibosCliCompensados.actContraerUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos; +end; + +procedure TfrViewRecibosCliCompensados.actEliminarUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := ((cxGridView.Controller.SelectedRowCount > 0) + and (cxGridView.Controller.SelectedRows[0].HasCells) + and (ReciboCliente.SITUACION <> CTE_COBRADO)); +end; + +procedure TfrViewRecibosCliCompensados.actExpandirExecute(Sender: TObject); +begin + inherited; + cxGridView.ViewData.Expand(True); +end; + +procedure TfrViewRecibosCliCompensados.actExpandirUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos; +end; + +procedure TfrViewRecibosCliCompensados.AnadirInterno; +begin + //inherited; // No hacer el comportamiento normal + if FController.ElegirRecibosCompensados(ReciboCliente) then + Modified := True; +end; + +constructor TfrViewRecibosCliCompensados.Create(AOwner: TComponent); +begin + inherited; + FHayCambios := False; +end; + +procedure TfrViewRecibosCliCompensados.CustomViewShow(Sender: TObject); +begin + inherited; + cxGridView.OptionsSelection.MultiSelect := False; +end; + +destructor TfrViewRecibosCliCompensados.Destroy; +begin + inherited; +end; + +procedure TfrViewRecibosCliCompensados.EliminarInterno; +begin + if cxGridView.Controller.SelectedRowCount > 0 then + if cxGridView.Controller.SelectedRows[0].HasCells then +// ViewGrid._FocusedView.Controller.SelectedRecordCount + FController.QuitarReciboCompensado(ReciboCliente); + Modified := True; +end; + +function TfrViewRecibosCliCompensados.GetController: IRecibosClienteController; +begin + Result := FController; +end; + +function TfrViewRecibosCliCompensados.GetModified: Boolean; +begin + Result := FHayCambios or inherited GetModified; +end; + +function TfrViewRecibosCliCompensados.GetReciboCliente: IBizRecibosCliente; +begin + Result := FReciboCliente; +end; + +procedure TfrViewRecibosCliCompensados.SetController( + const Value: IRecibosClienteController); +begin + FController := Value; +end; + +procedure TfrViewRecibosCliCompensados.SetModified(const Value: Boolean); +begin + FHayCambios := Value; + inherited; +end; + +procedure TfrViewRecibosCliCompensados.SetReciboCliente(const Value: IBizRecibosCliente); +begin + FReciboCliente := Value; + FHayCambios := False; + if Assigned(FReciboCliente) then + dsDetalles.DataTable := FReciboCliente.RecibosCompensados.DataTable + else + dsDetalles.DataTable := NIL; + + actAnchoAutomatico.Execute; +end; + +end. diff --git a/Source/Modulos/Recibos de cliente/Views/uViewRecibosCliente.dcu b/Source/Modulos/Recibos de cliente/Views/uViewRecibosCliente.dcu new file mode 100644 index 0000000..c21ee9b Binary files /dev/null and b/Source/Modulos/Recibos de cliente/Views/uViewRecibosCliente.dcu differ diff --git a/Source/Modulos/Recibos de cliente/Views/uViewRecibosCliente.dfm b/Source/Modulos/Recibos de cliente/Views/uViewRecibosCliente.dfm new file mode 100644 index 0000000..96c920b --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uViewRecibosCliente.dfm @@ -0,0 +1,389 @@ +inherited frViewRecibosCliente: TfrViewRecibosCliente + Width = 531 + Height = 387 + ExplicitWidth = 531 + ExplicitHeight = 387 + inherited cxGrid: TcxGrid + Width = 531 + Height = 259 + RootLevelOptions.DetailTabsPosition = dtpTop + OnActiveTabChanged = cxGridActiveTabChanged + ExplicitWidth = 531 + ExplicitHeight = 259 + inherited cxGridView: TcxGridDBTableView + DataController.KeyFieldNames = 'ID' + DataController.Options = [dcoAnsiSort, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoGroupsAlwaysExpanded] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Position = spFooter + Column = cxGridViewIMPORTE_TOTAL + end> + DataController.Summary.FooterSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = cxGridViewIMPORTE_TOTAL + end + item + Format = '0 recibos' + Kind = skCount + Column = cxGridViewREFERENCIA + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = cxGridViewIMPORTE + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = cxGridViewOTROS_GASTOS + end> + DataController.OnCompare = cxGridViewDataControllerCompare + OptionsCustomize.ColumnHidingOnGrouping = False + OptionsView.GroupFooters = gfAlwaysVisible + object cxGridViewREFERENCIA: TcxGridDBColumn + Caption = 'Referencia' + DataBinding.FieldName = 'REFERENCIA' + SortIndex = 0 + SortOrder = soDescending + Width = 64 + end + object cxGridViewID_RECIBO_COMPENSADO: TcxGridDBColumn + Caption = 'Compensado' + DataBinding.FieldName = 'ID_RECIBO_COMPENSADO' + Visible = False + OnCustomDrawCell = cxGridViewID_RECIBO_COMPENSADOCustomDrawCell + VisibleForCustomization = False + end + object cxGridViewREFERENCIA_REC_COMPENSADO: TcxGridDBColumn + Caption = 'Ref. recibo compensado' + DataBinding.FieldName = 'REFERENCIA_REC_COMPENSADO' + Visible = False + VisibleForCustomization = False + end + object cxGridViewSITUACION: TcxGridDBColumn + Caption = 'Situaci'#243'n' + DataBinding.FieldName = 'SITUACION' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Items = < + item + Description = 'Pendiente' + Value = 'PENDIENTE' + end + item + Description = 'Cobrado' + ImageIndex = 0 + Value = 'COBRADO' + end + item + Description = 'Devuelto' + ImageIndex = 1 + Value = 'DEVUELTO' + end> + Width = 50 + end + object cxGridViewFECHA_EMISION: TcxGridDBColumn + Caption = 'Fecha emisi'#243'n' + DataBinding.FieldName = 'FECHA_EMISION' + Width = 36 + end + object cxGridViewFECHA_VENCIMIENTO: TcxGridDBColumn + Caption = 'Fecha vencimiento' + DataBinding.FieldName = 'FECHA_VENCIMIENTO' + Width = 40 + end + object cxGridViewDESCRIPCION: TcxGridDBColumn + Caption = 'Descripci'#243'n' + DataBinding.FieldName = 'DESCRIPCION' + Visible = False + end + object cxGridViewNIF_CIF_CLIENTE: TcxGridDBColumn + Caption = 'NIF/CIF' + DataBinding.FieldName = 'NIF_CIF_CLIENTE' + Visible = False + end + object cxGridViewNOMBRE_CLIENTE: TcxGridDBColumn + Caption = 'Cliente' + DataBinding.FieldName = 'NOMBRE_CLIENTE' + Width = 51 + end + object cxGridViewIMPORTE: TcxGridDBColumn + Caption = 'Importe' + DataBinding.FieldName = 'IMPORTE' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + Width = 56 + end + object cxGridViewOTROS_GASTOS: TcxGridDBColumn + Caption = 'Otros gastos' + DataBinding.FieldName = 'OTROS_GASTOS' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + Width = 55 + end + object cxGridViewIMPORTE_TOTAL: TcxGridDBColumn + Caption = 'Importe total' + DataBinding.FieldName = 'IMPORTE_TOTAL' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + Width = 117 + end + object cxGridViewREFERENCIA_REMESA: TcxGridDBColumn + Caption = 'Ref. remesa' + DataBinding.FieldName = 'REFERENCIA_REMESA' + Width = 48 + end + object cxGridViewDATOS_BANCARIOS: TcxGridDBColumn + Caption = 'Banco' + DataBinding.FieldName = 'DATOS_BANCARIOS' + end + end + inherited cxGridLevel: TcxGridLevel + Caption = 'Todos' + end + object cxGridPendientes: TcxGridLevel + Caption = 'Pendientes' + end + object cxGridPagados: TcxGridLevel + Caption = 'Cobrados' + end + object cxGridDevueltos: TcxGridLevel + Caption = 'Devueltos' + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 531 + ExplicitWidth = 531 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 531 + inherited dxLayoutControl1: TdxLayoutControl + Width = 531 + ExplicitWidth = 531 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 434 + Width = 434 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 195 + Width = 195 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 208 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 208 + ExplicitWidth = 222 + Width = 222 + end + inherited eLista: TcxComboBox + Left = 389 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 389 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 531 + ExplicitWidth = 531 + inherited tbxBotones: TTBXToolbar + Width = 521 + ExplicitWidth = 521 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 361 + Visible = True + ExplicitTop = 361 + ExplicitWidth = 531 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 531 + ExplicitWidth = 531 + inherited TBXToolbar1: TTBXToolbar + Width = 521 + ExplicitWidth = 521 + object TBXSeparatorItem1: TTBXSeparatorItem + end + object TBXItem2: TTBXItem + Action = actCliente + end + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + Top = 152 + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 38673.741107951390000000 + BuiltInReportLink = True + end + end + inherited dxPSEngineController1: TdxPSEngineController + Top = 152 + end + inherited cxStyleRepository1: TcxStyleRepository + Top = 144 + object cxStylePendientes: TcxStyle + AssignedValues = [svTextColor] + TextColor = clGreen + end + object cxStylePagados: TcxStyle + AssignedValues = [svTextColor] + TextColor = clBlack + end + object cxStyleDevueltos: TcxStyle + AssignedValues = [svTextColor] + TextColor = clRed + end + end + inherited ActionList1: TActionList + object actCliente: TAction + Caption = 'Cliente' + OnExecute = actClienteExecute + OnUpdate = actClienteUpdate + end + end + inherited cxStyleRepositoryInforme: TcxStyleRepository + Top = 184 + end + inherited GridPNGImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000434944415478DA63FCFFFF3F + 03258011D900464646ACA601D530126D00BA6298A1B80C21CA0090183639925C + 80CB3B040DC0E69A510306BD010C04005E03C801036F00008D248BE16F9028BA + 0000000049454E44AE426082} + Name = 'Icono_header' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + Bitmap = {} + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + Top = 144 + end +end diff --git a/Source/Modulos/Recibos de cliente/Views/uViewRecibosCliente.pas b/Source/Modulos/Recibos de cliente/Views/uViewRecibosCliente.pas new file mode 100644 index 0000000..8cbf8f5 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Views/uViewRecibosCliente.pas @@ -0,0 +1,303 @@ +unit uViewRecibosCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewGrid, uViewPreview, cxStyles, cxCustomData, cxGraphics, + cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl, + dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, + dxPSFillPatterns, dxPSEdgePatterns, cxImageComboBox, cxTextEdit, ImgList, + PngImageList, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, ActnList, uDADataTable, + cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGrid, + cxImage, Grids, DBGrids, uBizRecibosCliente, cxGridCustomPopupMenu, + cxGridPopupMenu, cxCalendar, cxCurrencyEdit, uViewFiltroBase, TB2Item, TBX, + TB2Toolbar, TBXDkPanels, TB2Dock, dxPgsDlg, uDAInterfaces, uCustomView, + uViewBase; + +type + IViewRecibosCliente = interface(IViewGrid) + ['{27D0229A-6340-4F03-B97A-7776E9166F2F}'] + function GetRecibos: IBizRecibosCliente; + procedure SetRecibos(const Value: IBizRecibosCliente); + property Recibos: IBizRecibosCliente read GetRecibos write SetRecibos; + + procedure FiltrarPorFechas(const Fecha1, Fecha2: Variant); + end; + + TfrViewRecibosCliente = class(TfrViewGrid, IViewRecibosCliente) + cxStylePendientes: TcxStyle; + cxGridPendientes: TcxGridLevel; + cxGridPagados: TcxGridLevel; + cxStylePagados: TcxStyle; + cxGridViewREFERENCIA: TcxGridDBColumn; + cxGridViewSITUACION: TcxGridDBColumn; + cxGridViewFECHA_VENCIMIENTO: TcxGridDBColumn; + cxGridViewDESCRIPCION: TcxGridDBColumn; + cxGridViewIMPORTE: TcxGridDBColumn; + cxGridViewNOMBRE_CLIENTE: TcxGridDBColumn; + cxGridViewNIF_CIF_CLIENTE: TcxGridDBColumn; + cxGridViewREFERENCIA_REMESA: TcxGridDBColumn; + cxGridDevueltos: TcxGridLevel; + cxGridViewOTROS_GASTOS: TcxGridDBColumn; + cxGridViewIMPORTE_TOTAL: TcxGridDBColumn; + cxGridViewFECHA_EMISION: TcxGridDBColumn; + cxStyleDevueltos: TcxStyle; + actCliente: TAction; + TBXItem2: TTBXItem; + TBXSeparatorItem1: TTBXSeparatorItem; + cxGridViewREFERENCIA_REC_COMPENSADO: TcxGridDBColumn; + cxGridViewID_RECIBO_COMPENSADO: TcxGridDBColumn; + cxGridViewDATOS_BANCARIOS: TcxGridDBColumn; + procedure cxGridViewICONOCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; + out AStyle: TcxStyle); + procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel); + procedure cxGridViewIMPORTE_TOTALGetDisplayText(Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: string); + procedure actClienteExecute(Sender: TObject); + procedure actClienteUpdate(Sender: TObject); + procedure cxGridViewID_RECIBO_COMPENSADOCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); + procedure cxGridViewDataControllerCompare( + ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2, + AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer); + + private + //Filtros relativos a la vista + procedure AnadirFiltroSituaciones; + procedure AnadirFiltroFechas; + + protected + FRecibos: IBizRecibosCliente; + function GetRecibos: IBizRecibosCliente; + procedure SetRecibos(const Value: IBizRecibosCliente); + + public + property Recibos: IBizRecibosCliente read GetRecibos write SetRecibos; + procedure FiltrarPorFechas(const Fecha1, Fecha2: Variant); + procedure AnadirOtrosFiltros; override; + + end; + + +implementation + +uses + schRecibosClienteClient_Intf, uDataModuleRecibosCliente, DateUtils, + uReferenciasUtils, cxVariants; + +{$R *.dfm} + +{ TfrViewRecibosCliente } + +procedure TfrViewRecibosCliente.actClienteExecute(Sender: TObject); +begin + if (cxGridViewNOMBRE_CLIENTE.GroupIndex < 0) then + begin + cxGridViewNOMBRE_CLIENTE.GroupIndex := cxGridView.GroupedColumnCount; + cxGridViewNOMBRE_CLIENTE.Visible := False; + end + else + begin + cxGridViewNOMBRE_CLIENTE.GroupIndex := -1; + cxGridViewNOMBRE_CLIENTE.Visible := True; + end; +end; + +procedure TfrViewRecibosCliente.actClienteUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Checked := not (cxGridViewNOMBRE_CLIENTE.GroupIndex < 0); +end; + +procedure TfrViewRecibosCliente.AnadirFiltroFechas; +var + Columna: TcxGridDBColumn; + Fecha1, Fecha2: Variant; + FFiltro : TcxFilterCriteriaItemList; +begin + Fecha1 := frViewFiltroBase1.edtFechaIniFiltro.EditValue; + Fecha2 := frViewFiltroBase1.edtFechaFinFiltro.EditValue; + + if not VarIsNull(Fecha1) + and not VarIsNull(Fecha2) then + begin + cxGridView.DataController.Filter.Options := [fcoCaseInsensitive, fcoSoftCompare]; + FFiltro := AddFilterGrid(fboAnd); + + Columna := (cxGridView as TcxGridDBTableView).GetColumnByFieldName(fld_RecibosClienteFECHA_VENCIMIENTO); + FFiltro.AddItem(Columna, foBetween, varArrayOf([Fecha1, Fecha2]), VarToStr(Fecha1) + ' and ' + VarToStr(Fecha2)); + end; +end; + +procedure TfrViewRecibosCliente.AnadirFiltroSituaciones; +var + FFiltro : TcxFilterCriteriaItemList; +begin + FFiltro := AddFilterGrid(fboAnd); + + case cxGrid.ActiveLevel.Index of + 1 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, CTE_PENDIENTE, CTE_PENDIENTE); + 2 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, CTE_COBRADO, CTE_COBRADO); + 3 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, CTE_DEVUELTO, CTE_DEVUELTO); + end; +end; + +procedure TfrViewRecibosCliente.AnadirOtrosFiltros; +begin + inherited; + + AnadirFiltroSituaciones; + AnadirFiltroFechas; + + //Finalmente activamos el filtro si tenemos algo + if cxGridView.DataController.Filter.IsEmpty + then cxGridView.DataController.Filter.Active := False + else cxGridView.DataController.Filter.Active := True; + cxGrid.ActiveLevel.GridView := cxGridView; +end; + +procedure TfrViewRecibosCliente.cxGridActiveTabChanged(Sender: TcxCustomGrid; + ALevel: TcxGridLevel); +begin + inherited; + RefrescarFiltro; +end; + +procedure TfrViewRecibosCliente.cxGridViewDataControllerCompare( + ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2, + AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer); +begin + inherited; + if ((AItemIndex = cxGridViewREFERENCIA.Index) or + (AItemIndex = cxGridViewREFERENCIA_REMESA.Index) or + (AItemIndex = cxGridViewREFERENCIA_REC_COMPENSADO.Index)) and + (VarType(V1) = VarType(V2)) and (VarType(V1) = varString) then + Compare := CompararReferencias(V1, V2) + else + Compare := VarCompare(V1, V2); +end; + +procedure TfrViewRecibosCliente.cxGridViewICONOCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +{var + R : TRect;} +begin + inherited; +{ R := AViewInfo.ContentBounds; + ACanvas.FillRect(R); + if (Pos('-', AViewInfo.GridRecord.DisplayTexts[cxGridViewIMPORTE_TOTAL.Index]) > 0) then + ACanvas.DrawImage(PngImageList, R.Left, R.Top, 3) + else + ACanvas.DrawImage(PngImageList, R.Left, R.Top, 2); + ADone := True;} +end; + +procedure TfrViewRecibosCliente.cxGridViewID_RECIBO_COMPENSADOCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +var + R : TRect; +begin + inherited; + if not VarIsNull(AViewInfo.Value) then + begin + R := AViewInfo.ContentBounds; + ACanvas.FillRect(R); + ACanvas.DrawImage(GridPNGImageList, R.Left, R.Top, 1); + ADone := True; + end; +end; + +procedure TfrViewRecibosCliente.cxGridViewIMPORTE_TOTALGetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: string); +var + ImporteTotal : Double; +begin + //Se encarga de mostrar el campo calculado de importe total + ImporteTotal := -1; + + if not VarIsNull(ARecord.Values[cxGridViewIMPORTE.Index]) then + if not VarIsNull(ARecord.Values[cxGridViewOTROS_GASTOS.Index]) then + ImporteTotal := ARecord.Values[cxGridViewIMPORTE.Index] + ARecord.Values[cxGridViewOTROS_GASTOS.Index] + else + ImporteTotal := ARecord.Values[cxGridViewIMPORTE.Index]; + + if (ImporteTotal <> -1) then + begin + AText := FormatCurr(',0.00 €;-,0.00 €', FloatToCurr(ImporteTotal)); + + ARecord.Values[cxGridViewIMPORTE_TOTAL.Index] := ImporteTotal; + cxGridViewIMPORTE_TOTAL.EditValue := ImporteTotal; + cxGridViewIMPORTE_TOTAL.DataBinding.Field.Value := ImporteTotal; + end; +end; + +procedure TfrViewRecibosCliente.cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +var + IndiceCol: Integer; + ASituacion: string; +begin + inherited; + + if Assigned(ARecord) then + begin + IndiceCol := cxGridViewSITUACION.Index; + ASituacion := UPPERCASE(VarToStr(ARecord.DisplayTexts[IndiceCol])); + if (ASituacion = CTE_PENDIENTE) then + AStyle.TextColor := cxStylePendientes.TextColor + else if (ASituacion = CTE_COBRADO) then + AStyle.TextColor := cxStylePagados.TextColor + else if (ASituacion = CTE_DEVUELTO) then + AStyle.TextColor := cxStyleDevueltos.TextColor; + end; +end; + +procedure TfrViewRecibosCliente.FiltrarPorFechas(const Fecha1, Fecha2: Variant); +var + Columna: TcxGridDBColumn; +begin + with cxGridView.DataController.Filter do + begin + BeginUpdate; + try + Options := [fcoCaseInsensitive, fcoSoftCompare]; + Root.Clear; + if not VarIsNull(Fecha1) + and not VarIsNull(Fecha2) then + begin + Columna := (cxGridView as TcxGridDBTableView).GetColumnByFieldName(fld_RecibosClienteFECHA_VENCIMIENTO); + Root.AddItem(Columna, foBetween, varArrayOf([Fecha1, Fecha2]), VarToStr(Fecha1) + ' and ' + VarToStr(Fecha2)); + Active := True; + end + else + Active := False; + finally + EndUpdate; + end; + end; +end; + +function TfrViewRecibosCliente.GetRecibos: IBizRecibosCliente; +begin + Result := FRecibos; +end; + +procedure TfrViewRecibosCliente.SetRecibos(const Value: IBizRecibosCliente); +begin + FRecibos := Value; + if Assigned(FRecibos) then + dsDataSource.DataTable := FRecibos.DataTable; +end; + +end. diff --git a/Source/Modulos/Recibos de proveedor/Controller/RecibosProveedor_controller.bdsproj b/Source/Modulos/Recibos de proveedor/Controller/RecibosProveedor_controller.bdsproj new file mode 100644 index 0000000..9291ef4 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Controller/RecibosProveedor_controller.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + RecibosProveedor_controller.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Recibos de proveedor/Controller/RecibosProveedor_controller.dcu b/Source/Modulos/Recibos de proveedor/Controller/RecibosProveedor_controller.dcu new file mode 100644 index 0000000..1730450 Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Controller/RecibosProveedor_controller.dcu differ diff --git a/Source/Modulos/Recibos de proveedor/Controller/RecibosProveedor_controller.dpk b/Source/Modulos/Recibos de proveedor/Controller/RecibosProveedor_controller.dpk new file mode 100644 index 0000000..f6273cf Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Controller/RecibosProveedor_controller.dpk differ diff --git a/Source/Modulos/Recibos de proveedor/Controller/RecibosProveedor_controller.dproj b/Source/Modulos/Recibos de proveedor/Controller/RecibosProveedor_controller.dproj new file mode 100644 index 0000000..e2ea634 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Controller/RecibosProveedor_controller.dproj @@ -0,0 +1,546 @@ + + + + {c8b2fb9a-0367-4fd0-b836-4b594c06bcab} + RecibosProveedor_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\RecibosProveedor_controller.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0RecibosProveedor_controller.dpk + + + + + MainSource + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Recibos de proveedor/Controller/RecibosProveedor_controller.rc b/Source/Modulos/Recibos de proveedor/Controller/RecibosProveedor_controller.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Controller/RecibosProveedor_controller.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Recibos de proveedor/Controller/RecibosProveedor_controller.res b/Source/Modulos/Recibos de proveedor/Controller/RecibosProveedor_controller.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Controller/RecibosProveedor_controller.res differ diff --git a/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorElegirRecibosProveedor.dcu b/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorElegirRecibosProveedor.dcu new file mode 100644 index 0000000..0969bc1 Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorElegirRecibosProveedor.dcu differ diff --git a/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorElegirRecibosProveedor.pas b/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorElegirRecibosProveedor.pas new file mode 100644 index 0000000..49e7cad --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorElegirRecibosProveedor.pas @@ -0,0 +1,27 @@ +unit uIEditorElegirRecibosProveedor; + +interface + +uses + uIEditorRecibosProveedor, uBizRecibosProveedor, uGUIBase; + +type + IEditorElegirRecibosProveedor = interface(IEditorRecibosProveedor) + ['{7F0AA54E-6F1D-4298-9DB4-0D797069A90C}'] + function GetRecibosProveedorSeleccionados: IBizRecibosProveedor; + property RecibosProveedorSeleccionados: IBizRecibosProveedor read GetRecibosProveedorSeleccionados; + + procedure SetMultiSelect (AValue : Boolean); + function GetMultiSelect : Boolean; + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + + procedure SetMensaje (const AValue: String); + function GetMensaje: String; + property Mensaje : String read GetMensaje write SetMensaje; + + end; + + +implementation + +end. diff --git a/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorFechaPagoProveedor.dcu b/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorFechaPagoProveedor.dcu new file mode 100644 index 0000000..5e1d0b0 Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorFechaPagoProveedor.dcu differ diff --git a/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorFechaPagoProveedor.pas b/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorFechaPagoProveedor.pas new file mode 100644 index 0000000..5d67af7 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorFechaPagoProveedor.pas @@ -0,0 +1,18 @@ +unit uIEditorFechaPagoProveedor; + +interface + +uses + uEditorBasico; + +type + IEditorFechaPagoProveedor = interface(IEditorBasico) + ['{EDD78459-4C97-4C4A-92A3-25536D74AD18}'] + function GetFechaPago: TDateTime; + procedure SetFechaPago(const Value: TDateTime); + property FechaPago: TDateTime Read GetFechaPago write SetFechaPago; + end; + +implementation + +end. diff --git a/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorReciboProveedor.dcu b/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorReciboProveedor.dcu new file mode 100644 index 0000000..41574c8 Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorReciboProveedor.dcu differ diff --git a/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorReciboProveedor.pas b/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorReciboProveedor.pas new file mode 100644 index 0000000..01838ba --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorReciboProveedor.pas @@ -0,0 +1,22 @@ +unit uIEditorReciboProveedor; + +interface + +uses + uEditorDBItem, uBizRecibosProveedor, uRecibosProveedorController; + +type + IEditorReciboProveedor = interface(IEditorDBItem) + ['{4533AC6F-98A8-4D99-A42D-EC358C61AA7B}'] + function GetController : IRecibosProveedorController; + procedure SetController (const Value : IRecibosProveedorController); + property Controller : IRecibosProveedorController read GetController write SetController; + + function GetRecibo: IBizRecibosProveedor; + procedure SetRecibo(const Value: IBizRecibosProveedor); + property Recibo: IBizRecibosProveedor read GetRecibo write SetRecibo; + end; + +implementation + +end. diff --git a/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorRecibosProveedor.dcu b/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorRecibosProveedor.dcu new file mode 100644 index 0000000..cfe6fb4 Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorRecibosProveedor.dcu differ diff --git a/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorRecibosProveedor.pas b/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorRecibosProveedor.pas new file mode 100644 index 0000000..c6520a6 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorRecibosProveedor.pas @@ -0,0 +1,46 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uIEditorRecibosProveedor; + +interface + +uses + uEditorGridBase, uBizRecibosProveedor, uRecibosProveedorController; + +type + IEditorRecibosProveedor = interface(IEditorGridBase) + ['{0952395E-321D-4FE3-AC05-225FB9349A9C}'] + function GetRecibosProveedor: IBizRecibosProveedor; + procedure SetRecibosProveedor(const Value: IBizRecibosProveedor); + property RecibosProveedor: IBizRecibosProveedor read GetRecibosProveedor write SetRecibosProveedor; + + function GetController : IRecibosProveedorController; + procedure SetController (const Value : IRecibosProveedorController); + property Controller : IRecibosProveedorController read GetController write SetController; + end; + + +implementation + +end. diff --git a/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorRecibosProveedorPreview.dcu b/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorRecibosProveedorPreview.dcu new file mode 100644 index 0000000..31ceb0f Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorRecibosProveedorPreview.dcu differ diff --git a/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorRecibosProveedorPreview.pas b/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorRecibosProveedorPreview.pas new file mode 100644 index 0000000..136adbe --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Controller/View/uIEditorRecibosProveedorPreview.pas @@ -0,0 +1,15 @@ +unit uIEditorRecibosProveedorPreview; + +interface + +uses + uEditorPreview; + +type + IEditorRecibosProveedorPreview = interface(IEditorPreview) + ['{99E961CE-5581-4E82-BF66-7C7D95A1018F}'] + end; + +implementation + +end. diff --git a/Source/Modulos/Recibos de proveedor/Controller/uPagosProveedorController.dcu b/Source/Modulos/Recibos de proveedor/Controller/uPagosProveedorController.dcu new file mode 100644 index 0000000..5afe47a Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Controller/uPagosProveedorController.dcu differ diff --git a/Source/Modulos/Recibos de proveedor/Controller/uPagosProveedorController.pas b/Source/Modulos/Recibos de proveedor/Controller/uPagosProveedorController.pas new file mode 100644 index 0000000..8dab8bc --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Controller/uPagosProveedorController.pas @@ -0,0 +1,143 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uPagosProveedorController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleRecibosProveedor, + uBizPagosProveedor; + +type + IPagosProveedorController = interface(ISujeto) + ['{4F907D80-B184-4557-BAB7-9FDA23260E64}'] + function Anadir(APagosProveedor: IBizPagosProveedor; Const Fecha: String = ''): Boolean; + procedure Modificar(APagosProveedor: IBizPagosProveedor; Const Fecha: String); + function Eliminar(APagoCliente : IBizPagosProveedor): Boolean; + function EliminarTodo(APagossCliente : IBizPagosProveedor): Boolean; + end; + + TPagosProveedorController = class(TSujeto, IPagosProveedorController) + protected + FDataModule : IDataModuleRecibosProveedor; + procedure AsignarDataModule; + + public + constructor Create; override; + destructor Destroy; override; + function Anadir(APagosProveedor: IBizPagosProveedor; Const Fecha: String = ''): Boolean; + procedure Modificar(APagosProveedor: IBizPagosProveedor; Const Fecha: String); + function Eliminar(APagoCliente : IBizPagosProveedor): Boolean; + function EliminarTodo(APagosProveedor : IBizPagosProveedor): Boolean; + end; + +implementation + +uses + cxControls, DB, uEditorRegistryUtils,Dialogs, + uDAInterfaces, uDataTableUtils, uDataModuleUsuarios, + uDateUtils, uROTypes, DateUtils, Controls, Windows, Variants, + schRecibosProveedorClient_Intf, uDataModuleRecibosProveedor; + +{ TPagosProveedorController } + +function TPagosProveedorController.Anadir(APagosProveedor: IBizPagosProveedor; Const Fecha: String = ''): Boolean; +{ Si el pago introducido es un pago y no una devolucin devolvemos true en caso de ser +una devolucin devolvemos false} +begin + APagosProveedor.Append; + if Length(Fecha) = 0 then + APagosProveedor.FECHA_PAGO := Date + else + APagosProveedor.FECHA_PAGO := StrToDate(Fecha); + + if (APagosProveedor.DataTable.RecordCount = 0) + or ((APagosProveedor.DataTable.RecordCount mod 2) = 0) then + APagosProveedor.TIPO := CTE_PAGO + else + APagosProveedor.TIPO := CTE_DEVOLUCION; + + Result := (APagosProveedor.TIPO = CTE_PAGO); + APagosProveedor.Post; +end; + +procedure TPagosProveedorController.AsignarDataModule; +begin + FDataModule := TDataModuleRecibosProveedor.Create(Nil); +end; + +constructor TPagosProveedorController.Create; +begin + AsignarDataModule; +end; + +destructor TPagosProveedorController.Destroy; +begin + FDataModule := NIL; + inherited; +end; + +function TPagosProveedorController.Eliminar(APagoCliente: IBizPagosProveedor): Boolean; +{ En el caso de eliminar un pago del recibo devuelve true, mientras que si lo que +se borra es una devolucin devuelve false} +begin + if not Assigned(APagoCliente) then + raise Exception.Create ('IBizPagosProveedor no asignado'); + + ShowHourglassCursor; + try + if (APagoCliente.State in dsEditModes) then + APagoCliente.Cancel; + + APagoCliente.Last; + Result := (APagoCliente.TIPO = CTE_PAGO); + APagoCliente.Delete; + //Todo lo haremos en memoria ya que los pagos no tienen entidad propia + //APagosProveedor.DataTable.ApplyUpdates; + finally + HideHourglassCursor; + end; +end; + +function TPagosProveedorController.EliminarTodo(APagosProveedor: IBizPagosProveedor): Boolean; +begin + Result := False; + if Assigned(APagosProveedor) then + begin + if not APagosProveedor.DataTable.Active then + APagosProveedor.DataTable.Active := True; + APagosProveedor.DataTable.ClearRows; + //Todo lo haremos en memoria ya que los pagos no tienen entidad propia + //APagosProveedor.DataTable.ApplyUpdates; + end; +end; + +procedure TPagosProveedorController.Modificar(APagosProveedor: IBizPagosProveedor; const Fecha: String); +begin + APagosProveedor.DataTable.Edit; + APagosProveedor.FECHA_PAGO := StrToDate(Fecha); + APagosProveedor.DataTable.Post; +end; + +end. diff --git a/Source/Modulos/Recibos de proveedor/Controller/uRecibosProveedorController.dcu b/Source/Modulos/Recibos de proveedor/Controller/uRecibosProveedorController.dcu new file mode 100644 index 0000000..bef7360 Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Controller/uRecibosProveedorController.dcu differ diff --git a/Source/Modulos/Recibos de proveedor/Controller/uRecibosProveedorController.pas b/Source/Modulos/Recibos de proveedor/Controller/uRecibosProveedorController.pas new file mode 100644 index 0000000..0b3c275 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Controller/uRecibosProveedorController.pas @@ -0,0 +1,931 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uRecibosProveedorController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, + uPagosProveedorController, uProveedoresController, + uBizRecibosProveedor, uIDataModuleRecibosProveedor; + +type + IRecibosProveedorController = interface(IControllerBase) + ['{763DF610-3540-42BE-A09A-35AABFAF2DA1}'] + + function GetPagosController: IPagosProveedorController; + procedure SetPagosController(const Value: IPagosProveedorController); + property PagosController: IPagosProveedorController read GetPagosController write SetPagosController; + + procedure Anadir(ARecibosProveedor : IBizRecibosProveedor); + function AnadirPago(ARecibosProveedor : IBizRecibosProveedor; FechaPago: String =''): Boolean; + procedure ModificarPago(ARecibosProveedor : IBizRecibosProveedor); + function Eliminar(ARecibosProveedor : IBizRecibosProveedor): Boolean; + function EliminarPago(ARecibosProveedor : IBizRecibosProveedor): Boolean; + function EliminarTodo(ARecibosProveedor : IBizRecibosProveedor): Boolean; + function Guardar(ARecibosProveedor : IBizRecibosProveedor): Boolean; + procedure DescartarCambios(ARecibosProveedor : IBizRecibosProveedor); + function Duplicar(ARecibosProveedor: IBizRecibosProveedor): IBizRecibosProveedor; + function Nuevo : IBizRecibosProveedor; + procedure RecuperarCliente(AReciboProveedor : IBizRecibosProveedor); + function Buscar(const ID: Integer): IBizRecibosProveedor; + function BuscarTodos: IBizRecibosProveedor; overload; + function BuscarTodos(const ID_Proveedor: Integer): IBizRecibosProveedor; overload; + + function BuscarRecibosRemesa(const ID_REMESA: Integer): IBizRecibosProveedor; + function BuscarRecibosFactura(const ID_FACTURA: Integer): IBizRecibosProveedor; + function BuscarRecibosACompensar(const Recibo: IBizRecibosProveedor): IBizRecibosProveedor; + function BuscarRecibosARemesar(const AListaVisibles, AListaNoVisibles: TStringList): IBizRecibosProveedor; + + procedure VerTodos(ARecibosProveedor: IBizRecibosProveedor; + const AVerModal : Boolean = False; const AWindowCaption: String = ''; + const AHeaderText: String = ''); + + procedure Ver(ARecibosProveedor: IBizRecibosProveedor); + function ExtraerSeleccionados(ARecibosProveedor: IBizRecibosProveedor) : IBizRecibosProveedor; + + procedure AsignarRemesa(ARecibos : IBizRecibosProveedor; ID_REMESA: Integer); + procedure QuitarRemesa(ARecibos : IBizRecibosProveedor); + procedure SetSituacionCobrados(ARecibos : IBizRecibosProveedor; WithDeltas: Boolean=False); + function ElegirRecibos(ARecibos : IBizRecibosProveedor; AMensaje: String; AMultiSelect: Boolean): IBizRecibosProveedor; + + function ElegirRecibosCompensados(ARecibo : IBizRecibosProveedor): Boolean; + procedure QuitarReciboCompensado(ARecibo : IBizRecibosProveedor); + + procedure Preview(ARecibosProveedor : IBizRecibosProveedor); + procedure Print(ARecibosProveedor : IBizRecibosProveedor); + + function DarListaAnosRecibos: TStringList; + procedure FiltrarAno(ARecibo: IBizRecibosProveedor; ADynWhereDataTable: WideString; const Ano: String); + end; + + TRecibosProveedorController = class(TControllerBase, IRecibosProveedorController) + private + function ImporteTotalModificado(ARecibosProveedor: IBizRecibosProveedor; + var ImporteRestante: Currency): Boolean; + + procedure FiltrarEmpresa(ARecibo: IBizRecibosProveedor); + + protected + FDataModule : IDataModuleRecibosProveedor; + FPagosController : IPagosProveedorController; + FClienteController : IProveedoresController; + + function GetPagosController: IPagosProveedorController; + procedure SetPagosController(const Value: IPagosProveedorController); + + function _Vacio : IBizRecibosProveedor; + + function ValidarReciboProveedor(ARecibosProveedor: IBizRecibosProveedor): Boolean; + procedure AsignarDataModule; + function DarNuevaReferencia(ID_FACTURA : Integer; REFERENCIA: String): String; + + public + property PagosController: IPagosProveedorController read GetPagosController write SetPagosController; + constructor Create; override; + destructor Destroy; override; + + procedure RecuperarCliente(AReciboProveedor : IBizRecibosProveedor); + procedure Anadir(ARecibosProveedor : IBizRecibosProveedor); + function AnadirPago(ARecibosProveedor : IBizRecibosProveedor; FechaPago: String =''): Boolean; + procedure ModificarPago(ARecibosProveedor : IBizRecibosProveedor); + function Eliminar(ARecibosProveedor : IBizRecibosProveedor): Boolean; + function EliminarPago(ARecibosProveedor : IBizRecibosProveedor): Boolean; + function EliminarTodo(ARecibosProveedor : IBizRecibosProveedor): Boolean; + function Guardar(ARecibosProveedor : IBizRecibosProveedor): Boolean; + procedure DescartarCambios(ARecibosProveedor : IBizRecibosProveedor); + function Duplicar(ARecibosProveedor: IBizRecibosProveedor): IBizRecibosProveedor; + function Nuevo : IBizRecibosProveedor; + + function Buscar(const ID: Integer): IBizRecibosProveedor; + function BuscarTodos: IBizRecibosProveedor; overload; + function BuscarTodos(const ID_Proveedor: Integer): IBizRecibosProveedor; overload; + + function BuscarRecibosRemesa(const ID_REMESA: Integer): IBizRecibosProveedor; + function BuscarRecibosFactura(const ID_FACTURA: Integer): IBizRecibosProveedor; + function BuscarRecibosACompensar(const Recibo: IBizRecibosProveedor): IBizRecibosProveedor; + function BuscarRecibosARemesar(const AListaVisibles, AListaNoVisibles: TStringList): IBizRecibosProveedor; + + procedure VerTodos(ARecibosProveedor: IBizRecibosProveedor; + const AVerModal : Boolean = False; const AWindowCaption: String = ''; + const AHeaderText: String = ''); + procedure Ver(ARecibosProveedor: IBizRecibosProveedor); + + function ExtraerSeleccionados(ARecibosProveedor: IBizRecibosProveedor) : IBizRecibosProveedor; + function ElegirRecibos(ARecibos : IBizRecibosProveedor; AMensaje: String; AMultiSelect: Boolean): IBizRecibosProveedor; + function ElegirRecibosCompensados(ARecibo : IBizRecibosProveedor): Boolean; + + procedure AsignarRemesa(ARecibos : IBizRecibosProveedor; ID_REMESA: Integer); + procedure QuitarRemesa(ARecibos : IBizRecibosProveedor); + procedure QuitarReciboCompensado(ARecibo : IBizRecibosProveedor); + + procedure SetSituacionCobrados(ARecibos : IBizRecibosProveedor; WithDeltas: Boolean=False); + + procedure Preview(ARecibosProveedor : IBizRecibosProveedor); + procedure Print(ARecibosProveedor : IBizRecibosProveedor); + + function DarListaAnosRecibos: TStringList; + procedure FiltrarAno(ARecibo: IBizRecibosProveedor; ADynWhereDataTable: WideString; const Ano: String); + end; + +implementation + +uses + Forms, uNumUtils, cxControls, DB, uEditorRegistryUtils, Dialogs, + uDAInterfaces, uDataTableUtils, uDataModuleUsuarios, uFactuGES_App, + uDateUtils, uROTypes, DateUtils, Controls, Windows, Variants, + uRecibosProveedorReportController, uBizContactos, uDADelta, uStringsUtils, + schRecibosProveedorClient_Intf, uIEditorRecibosProveedor, uIEditorReciboProveedor, + uDataModuleRecibosProveedor, uIEditorFechaPagoProveedor, uIEditorElegirRecibosProveedor; + +{ TRecibosProveedorController } + +procedure TRecibosProveedorController.Anadir(ARecibosProveedor: IBizRecibosProveedor); +begin + ARecibosProveedor.Insert; +end; + +function TRecibosProveedorController.AnadirPago(ARecibosProveedor: IBizRecibosProveedor; FechaPago: String =''): Boolean; +var + AEditor : IEditorFechaPagoProveedor; +begin + Result := False; + + //Pedimos la fecha del pago + if (Length(FechaPago) = 0) then + begin + CreateEditor('EditorFechaPagoProveedor', IEditorFechaPagoProveedor, AEditor); + if Assigned(AEditor) then + try + if (AEditor.ShowModal = mrOk) then + FechaPago := DateToStr(AEditor.FechaPago); + finally + AEditor.Release; + AEditor := NIL; + end; + end; + + // Se cancela la operacin + if Length(FechaPago) = 0 then + Exit; + + //Finalmente aadimos el pago (pago o devolucion) + if PagosController.Anadir(ARecibosProveedor.Pagos, FechaPago) then + begin + ARecibosProveedor.Edit; + ARecibosProveedor.SITUACION := CTE_PAGADO; + Result := True; + end + //Podremos modificar si anulamos el pago mediante una devolucin + else + begin + ARecibosProveedor.Edit; + ARecibosProveedor.SITUACION := CTE_DEVUELTO; + Result := False; + end; +end; + +procedure TRecibosProveedorController.AsignarDataModule; +begin + FDataModule := TDataModuleRecibosProveedor.Create(Nil); +end; + +procedure TRecibosProveedorController.AsignarRemesa(ARecibos: IBizRecibosProveedor; ID_REMESA: Integer); +begin + if Assigned(ARecibos) then + begin + With ARecibos.DataTable do + begin + First; + While not EOF do + begin + if (ARecibos.ID_REMESA <> ID_REMESA) then + begin + ARecibos.Edit; + //Aadimos el cobro automatico por la remesa y volvemos a asignar ID + //para que asigne un ID nuevo para el pago, porque aqui si hay maestro-detalle + AnadirPago(ARecibos, DateToStr(Date)); //->Ojo el orden es importante + ARecibos.ID_REMESA := ID_REMESA; + end; + Next; + end; + end; + end; +end; + +function TRecibosProveedorController.BuscarTodos: IBizRecibosProveedor; +begin + Result := FDataModule.GetItems; + FiltrarEmpresa(Result); +end; + +constructor TRecibosProveedorController.Create; +begin + inherited; + AsignarDataModule; + FPagosController := TPagosProveedorController.Create; + FClienteController := TProveedoresController.Create; +// FPagosController.addObservador(Self); //PETA NO SE PORQUE +end; + +function TRecibosProveedorController.Buscar(const ID: Integer): IBizRecibosProveedor; +begin + Result := (FDataModule as IDataModuleRecibosProveedor).GetItem(ID); + FiltrarEmpresa(Result); +end; + +function TRecibosProveedorController.BuscarRecibosFactura(const ID_FACTURA: Integer): IBizRecibosProveedor; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + // Filtrar los recibos de una determinada factura + with Result.DataTable.DynamicWhere do + begin + // (ID_FACTURA = ID_FACTURA) + Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorID_FACTURA), NewConstant(ID_FACTURA, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + finally + HideHourglassCursor; + end; +end; + +function TRecibosProveedorController.BuscarRecibosACompensar(const Recibo: IBizRecibosProveedor): IBizRecibosProveedor; +var + Condicion: TDAWhereExpression; +begin + if not Assigned(Recibo) then + raise Exception.Create ('IBizReciboProveedor no asignado (BuscarRecibosACompensar)'); + + ShowHourglassCursor; + try + Result := BuscarTodos; + + with Result.DataTable.DynamicWhere do + begin + //No podr compensarse un recibo a si mismo + Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorID), NewConstant(Recibo.ID, datInteger), dboNotEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + with Result.DataTable.DynamicWhere do + begin + //Solo podr compensar recibos del mismo proveedor + Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorID_PROVEEDOR), NewConstant(Recibo.ID_PROVEEDOR, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + with Result.DataTable.DynamicWhere do + begin + //Omitimos los recibos compensados + Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorID_RECIBO_COMPENSADO), NewNull(), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + with Result.DataTable.DynamicWhere do + begin + //Solo dejaremos remesar aquellos recibos que no esten cobrados (Pendientes/Devueltos) + Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorSITUACION), NewConstant(CTE_PAGADO, datString), dboNotEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + finally + HideHourglassCursor; + end; +end; + +function TRecibosProveedorController.BuscarRecibosARemesar(const AListaVisibles, AListaNoVisibles: TStringList): IBizRecibosProveedor; +var + Condicion: TDAWhereExpression; + i: Integer; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + + with Result.DataTable.DynamicWhere do + begin + //Omitimos los recibos compensados + Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorID_RECIBO_COMPENSADO), NewNull(), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + with Result.DataTable.DynamicWhere do + begin + //Solo dejaremos remesar aquellos recibos que no esten pagados (Pendientes/Devueltos) + Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorSITUACION), NewConstant(CTE_PAGADO, datString), dboNotEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + //En este caso vamos a quitar de la lista de recibos pendientes aquellos que ya hemos + //aadido a la remesa pero que estan en memoria ya que todavia no se ha guarado en BD + for i := 0 to AListaNoVisibles.Count - 1 do + with Result.DataTable.DynamicWhere do + begin + //Solo dejaremos remesar aquellos recibos que no esten cobrados (Pendientes/Devueltos) + Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorID), NewConstant(AListaNoVisibles.Strings[i], datString), dboNotEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + //En el caso contrario no hacemos nada, porque si se elimina un recibo de la remesa + //y sin guardar los cambios damos a aadir el recibo todavia est cobrado y no se que efectos + //secundarios puede provocar + //AListaVisibles + + finally + HideHourglassCursor; + end; +end; + +function TRecibosProveedorController.BuscarRecibosRemesa(const ID_REMESA: Integer): IBizRecibosProveedor; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + + // Filtrar los recibos de una determinada remesa + with Result.DataTable.DynamicWhere do + begin + // (ID_REMESA = ID) + Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorID_REMESA), NewConstant(ID_REMESA, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TRecibosProveedorController.BuscarTodos( + const ID_Proveedor: Integer): IBizRecibosProveedor; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + + with Result.DataTable.DynamicWhere do + begin + Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorID_PROVEEDOR), + NewConstant(ID_Proveedor, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + finally + HideHourglassCursor; + end; +end; + +function TRecibosProveedorController._Vacio: IBizRecibosProveedor; +begin + Result := Buscar(ID_NULO); +end; + +function TRecibosProveedorController.DarListaAnosRecibos: TStringList; +begin + Result := FDataModule.GetAnosItems; +end; + +function TRecibosProveedorController.DarNuevaReferencia(ID_FACTURA: Integer; REFERENCIA: String): String; +var + ARecibosProveedor: IBizRecibosProveedor; + NumReferencia : Integer; + Cadena : String; +begin + try + ARecibosProveedor := BuscarRecibosFactura(ID_FACTURA); + ARecibosProveedor.DataTable.Active := True; + NumReferencia := ARecibosProveedor.DataTable.RecordCount; + Cadena := Copy(REFERENCIA, 0, Pos('-', REFERENCIA)); + Result := Cadena + ' ' + IntToStr((NumReferencia + 1)); + finally + ARecibosProveedor := Nil; + end; +end; + +procedure TRecibosProveedorController.DescartarCambios(ARecibosProveedor: IBizRecibosProveedor); +begin + if not Assigned(ARecibosProveedor) then + raise Exception.Create ('IBizRecibosProveedor no asignado'); + + ShowHourglassCursor; + try + if (ARecibosProveedor.State in dsEditModes) then + ARecibosProveedor.Cancel; + + ARecibosProveedor.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TRecibosProveedorController.Destroy; +begin + FDataModule := NIL; + FPagosController := NIL; + FClienteController := NIL; + inherited; +end; + + +function TRecibosProveedorController.Duplicar(ARecibosProveedor: IBizRecibosProveedor): IBizRecibosProveedor; +begin + Result := Self._Vacio; + ShowHourglassCursor; + try + DuplicarRegistros(ARecibosProveedor.DataTable, Result.DataTable, mdrActual); + + // Descomentar esto si hay detalles + // (EN ESTE CASO NO NOS INTERESA COPIAR LOS PAGOS DEL RECIBO DUPLIACDO) + // DuplicarRegistros(ARecibosProveedor.Detalles.DataTable, Result.Detalles.DataTable, mdrTodos); + + // CUIDADO! Hay que dejar algunos campos como si fuera todo nuevo + Result.Edit; + with Result do + begin + // Ejemplos + // ID_EMPRESA := dmUsuarios.IDEmpresaActual; + // USUARIO := dmUsuarios.LoginInfo.Usuario; + // REFERENCIA := ''; //Para que se asigne una nueva + // FECHA_FACTURA := DateOf(Now); + // SITUACION := SITUACION_PENDIENTE; + end; + + Result.Post; + finally + HideHourglassCursor; + end; +end; + + +function TRecibosProveedorController.ValidarReciboProveedor(ARecibosProveedor: IBizRecibosProveedor): Boolean; +begin + Result := False; + + if not Assigned(ARecibosProveedor) then + raise Exception.Create ('IBizRecibosProveedor no asignado'); + + if (ARecibosProveedor.DataTable.State in dsEditModes) then + ARecibosProveedor.DataTable.Post; + + // Tambien hacemos post de sus tablas hija + if (ARecibosProveedor.Pagos.DataTable.State in dsEditModes) then + ARecibosProveedor.Pagos.DataTable.Post; + + if ARecibosProveedor.DataTable.FieldByName(fld_RecibosProveedorFECHA_EMISION).IsNull then + raise Exception.Create('Debe indicar la fecha de emisin del recibo.'); + + if ARecibosProveedor.DataTable.FieldByName(fld_RecibosProveedorFECHA_VENCIMIENTO).IsNull then + raise Exception.Create('Debe indicar la fecha de vencimiento del recibo.'); + + + { Asegurarse de valores en campos "automticos" tanto + en MODIFICACIN como en INSERCIN. } + ARecibosProveedor.Edit; + try + ARecibosProveedor.USUARIO := AppFactuGES.UsuarioActivo.UserName; + finally + ARecibosProveedor.Post; + end; + + Result := True; +end; + +procedure TRecibosProveedorController.Ver(ARecibosProveedor: IBizRecibosProveedor); +var + AEditor : IEditorReciboProveedor; +begin + AEditor := NIL; + + RecuperarCliente(ARecibosProveedor); + CreateEditor('EditorReciboProveedor', IEditorReciboProveedor, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.Recibo := ARecibosProveedor; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +procedure TRecibosProveedorController.VerTodos(ARecibosProveedor: IBizRecibosProveedor; + const AVerModal : Boolean = False; const AWindowCaption: String = ''; + const AHeaderText: String = ''); +var + AEditor : IEditorRecibosProveedor; +begin + AEditor := NIL; + + CreateEditor('EditorRecibosProveedor', IEditorRecibosProveedor, AEditor); + if Assigned(AEditor) then + try + if not EsCadenaVacia(AWindowCaption) then + AEditor.WindowCaption := AWindowCaption; + + if not EsCadenaVacia(AHeaderText) then + AEditor.HeaderText := AHeaderText; + + AEditor.Controller := Self; + AEditor.RecibosProveedor := ARecibosProveedor; + if AVerModal then + AEditor.ShowModal + else + AEditor.ShowEmbedded; + finally + if AVerModal then + AEditor.Release; + AEditor := NIL; + end; +end; + +function TRecibosProveedorController.ElegirRecibos(ARecibos: IBizRecibosProveedor; AMensaje: String; + AMultiSelect: Boolean): IBizRecibosProveedor; +var + AEditor : IEditorElegirRecibosProveedor; +begin + Result := NIL; + + CreateEditor('EditorElegirRecibosProveedor', IEditorElegirRecibosProveedor, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; + AEditor.RecibosProveedor := ARecibos; + AEditor.MultiSelect := AMultiSelect; + AEditor.Mensaje := AMensaje; + if IsPositiveResult(AEditor.ShowModal) then + Result := AEditor.RecibosProveedorSeleccionados; + finally + AEditor.Release; + end; +end; + +function TRecibosProveedorController.ElegirRecibosCompensados(ARecibo: IBizRecibosProveedor): Boolean; +var + ARecibosACompensar: IBizRecibosProveedor; +begin + Result := False; + ARecibosACompensar := Self.ElegirRecibos(BuscarRecibosACompensar(ARecibo), 'Elija los recibos que desea compensar', True); + + if Assigned(ARecibosACompensar) then + begin + ShowHourglassCursor; + try + DuplicarRegistros(ARecibosACompensar.DataTable, ARecibo.RecibosCompensados.DataTable, mdrTodos, True, True, False); + Result := True; + finally + HideHourglassCursor; + ARecibosACompensar := Nil; + end; + end; +end; + +function TRecibosProveedorController.Eliminar(ARecibosProveedor: IBizRecibosProveedor): Boolean; +begin + if not Assigned(ARecibosProveedor) then + raise Exception.Create ('IBizRecibosProveedor no asignado'); + + ShowHourglassCursor; + try + if (ARecibosProveedor.State in dsEditModes) then + ARecibosProveedor.Cancel; + + ARecibosProveedor.Delete; + ARecibosProveedor.DataTable.ApplyUpdates; + HideHourglassCursor; + Result := True; + finally + HideHourglassCursor; + end; +end; + +function TRecibosProveedorController.EliminarPago(ARecibosProveedor: IBizRecibosProveedor): Boolean; +begin + Result := PagosController.Eliminar(ARecibosProveedor.Pagos); +end; + +function TRecibosProveedorController.EliminarTodo(ARecibosProveedor: IBizRecibosProveedor): Boolean; +begin + Result := False; + + if Assigned(ARecibosProveedor) then + begin + if not ARecibosProveedor.DataTable.Active then + ARecibosProveedor.DataTable.Active := True; + ARecibosProveedor.DataTable.ClearRows; + ARecibosProveedor.DataTable.ApplyUpdates; + end; +end; + +procedure TRecibosProveedorController.RecuperarCliente( + AReciboProveedor: IBizRecibosProveedor); +begin + AReciboProveedor._Proveedor := (FClienteController.Buscar(AReciboProveedor.ID_PROVEEDOR) as IBizProveedor); +end; + +function TRecibosProveedorController.GetPagosController: IPagosProveedorController; +begin + Result := FPagosController; +end; + +procedure TRecibosProveedorController.SetPagosController(const Value: IPagosProveedorController); +begin + FPagosController := Value; +end; + +procedure TRecibosProveedorController.SetSituacionCobrados(ARecibos: IBizRecibosProveedor; WithDeltas: Boolean); +begin + if Assigned(ARecibos) then + begin + ARecibos.DataTable.DisableControls; + try + DesconectarTabla(ARecibos.DataTable); + with ARecibos.DataTable do + begin + First; + while not Eof do + begin + if not Editing then Edit; + ARecibos.SITUACION := CTE_PAGADO; + Post; + Next; + end; + First; + end; + finally + ConectarTabla(ARecibos.DataTable); + ARecibos.DataTable.EnableControls; + end; + end; +end; + +function TRecibosProveedorController.ImporteTotalModificado(ARecibosProveedor : IBizRecibosProveedor; var ImporteRestante: Currency) : Boolean; +var + HayCambio: TDADeltaChange; +begin + Result := False; + ImporteRestante := 0; + HayCambio := ARecibosProveedor.DataTable.Delta.FindChange(ARecibosProveedor.RecNo); + if (Assigned(HayCambio)) and + (HayCambio.OldValueByName[fld_RecibosProveedorIMPORTE] <> 0) then + begin + ImporteRestante := HayCambio.OldValueByName[fld_RecibosProveedorIMPORTE] - ARecibosProveedor.IMPORTE; + if ImporteRestante <> 0 then + Result := True; + end; +end; + +function TRecibosProveedorController.Guardar(ARecibosProveedor: IBizRecibosProveedor): Boolean; +var + ANuevoReciboProveedor : IBizRecibosProveedor; + ImporteRestante : Currency; +begin + Result := False; + + ANuevoReciboProveedor := NIL; + ImporteRestante := 0; + + if ValidarReciboProveedor(ARecibosProveedor) then + begin + ShowHourglassCursor; + try + //Si el importe ha cambiado se debe hacer un recibo nuevo con el importe restante + if ImporteTotalModificado(ARecibosProveedor, ImporteRestante) then + begin + ANuevoReciboProveedor := Duplicar(ARecibosProveedor); + ANuevoReciboProveedor.Edit; + ANuevoReciboProveedor.REFERENCIA := DarNuevaReferencia(ARecibosProveedor.ID_FACTURA, ARecibosProveedor.REFERENCIA); + ANuevoReciboProveedor.IMPORTE := ImporteRestante; + ANuevoReciboProveedor.DESCRIPCION := 'RECIBO ' + ANuevoReciboProveedor.REFERENCIA + ' - ' + CifraToLetras(ImporteRestante); + ANuevoReciboProveedor.Post; + + ARecibosProveedor.Edit; + ARecibosProveedor.DESCRIPCION := 'RECIBO ' + ARecibosProveedor.REFERENCIA + ' - ' + CifraToLetras(ARecibosProveedor.IMPORTE); + ARecibosProveedor.Post; + end; + + ARecibosProveedor.DataTable.ApplyUpdates; + + if Assigned(ANuevoReciboProveedor) then + ANuevoReciboProveedor.DataTable.ApplyUpdates; + + Result := True; + finally + ANuevoReciboProveedor := NIL; + HideHourglassCursor; + end; + end; +end; + +procedure TRecibosProveedorController.ModificarPago(ARecibosProveedor: IBizRecibosProveedor); +var + AEditor : IEditorFechaPagoProveedor; + AFechaPago: String; +begin + //Pedimos la fecha del pago + CreateEditor('EditorFechaPagoProveedor', IEditorFechaPagoProveedor, AEditor); + if Assigned(AEditor) then + try + AEditor.FechaPago:= ARecibosProveedor.Pagos.FECHA_PAGO; + if (AEditor.ShowModal = mrOk) then + AFechaPago := DateToStr(AEditor.FechaPago); + finally + AEditor.Release; + AEditor := NIL; + end; + + if Length(AFechaPago) > 0 then + PagosController.Modificar(ARecibosProveedor.Pagos, AFechaPago); +end; + +function TRecibosProveedorController.Nuevo: IBizRecibosProveedor; +var + ARecibo : IBizRecibosProveedor; +begin + ARecibo := Buscar(ID_NULO); + ARecibo.DataTable.Active := True; + Anadir(ARecibo); + Result := ARecibo; +end; + +function TRecibosProveedorController.ExtraerSeleccionados(ARecibosProveedor: IBizRecibosProveedor): IBizRecibosProveedor; +var + ASeleccionados : IBizRecibosProveedor; +begin + ASeleccionados := (Self.Buscar(ID_NULO) as IBizRecibosProveedor); + CopyDataTableDA5(ARecibosProveedor.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + +procedure TRecibosProveedorController.FiltrarAno(ARecibo: IBizRecibosProveedor; ADynWhereDataTable: WideString; const Ano: String); +var + Condicion: TDAWhereExpression; + FechaIni: String; + FechaFin: String; + +begin + ARecibo.DataTable.DynamicWhere.Clear; + ARecibo.DataTable.DynamicWhere.Xml := ADynWhereDataTable; + + if (Ano <> 'Todos') then + begin + // Filtrar las facturas actuales por empresa + FechaIni := '01/01/' + Ano; + FechaFin := '31/12/' + Ano; + with ARecibo.DataTable.DynamicWhere do + begin + // (FECHA_INICIO between FECHA_FIN) + Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorFECHA_EMISION), NewConstant(FechaIni, datString), dboGreaterOrEqual); + Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_RecibosProveedorFECHA_EMISION), NewConstant(FechaFin, datString), dboLessOrEqual), Condicion, dboAnd); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Condicion, Expression, dboAnd); + end; + end; +end; + +procedure TRecibosProveedorController.FiltrarEmpresa(ARecibo: IBizRecibosProveedor); +var + Condicion: TDAWhereExpression; +begin + if ARecibo.DataTable.Active then + ARecibo.DataTable.Active := False; + + // Filtrar los recibos actuales por empresa + with ARecibo.DataTable.DynamicWhere do + begin + // (ID_EMPRESA >= ID) + Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorID_EMPRESA), NewConstant(AppFactuGES.EmpresaActiva.ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; +end; + +procedure TRecibosProveedorController.Preview(ARecibosProveedor: IBizRecibosProveedor); +var + AReportController : IRecibosProveedorReportController; +begin + AReportController := TRecibosProveedorReportController.Create; + try + AReportController.Preview(ARecibosProveedor.ID); + finally + AReportController := NIL; + end; +end; + +procedure TRecibosProveedorController.Print(ARecibosProveedor: IBizRecibosProveedor); +var + AReportController : IRecibosProveedorReportController; +begin + AReportController := TRecibosProveedorReportController.Create; + try + AReportController.Print(ARecibosProveedor.ID); + finally + AReportController := NIL; + end; +end; + +procedure TRecibosProveedorController.QuitarReciboCompensado(ARecibo: IBizRecibosProveedor); +var + IdRecibo: Variant; +begin + IdRecibo := ARecibo.RecibosCompensados.ID; + + ARecibo.RecibosCompensados.DataTable.First; + while ARecibo.RecibosCompensados.DataTable.Locate('ID', IdRecibo,[]) do + begin + ARecibo.RecibosCompensados.DataTable.Delete; + ARecibo.RecibosCompensados.DataTable.First; + end; +end; + +procedure TRecibosProveedorController.QuitarRemesa(ARecibos: IBizRecibosProveedor); +begin + if Assigned(ARecibos) then + begin + if ARecibos.Pagos.DataTable.RecordCount = 0 then + Exit; + + //Eliminamos el cobro generado por la remesa y quitamos el ID_REMESA del recibo + ARecibos.Pagos.DataTable.Last; + ARecibos.Pagos.Delete; + + ARecibos.DataTable.Edit; + ARecibos.ID_REMESA := 0; + ARecibos.DataTable.Post; + end; +end; + +end. + \ No newline at end of file diff --git a/Source/Modulos/Recibos de proveedor/Controller/uRecibosProveedorReportController.dcu b/Source/Modulos/Recibos de proveedor/Controller/uRecibosProveedorReportController.dcu new file mode 100644 index 0000000..0977e12 Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Controller/uRecibosProveedorReportController.dcu differ diff --git a/Source/Modulos/Recibos de proveedor/Controller/uRecibosProveedorReportController.pas b/Source/Modulos/Recibos de proveedor/Controller/uRecibosProveedorReportController.pas new file mode 100644 index 0000000..a57cc22 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Controller/uRecibosProveedorReportController.pas @@ -0,0 +1,111 @@ +unit uRecibosProveedorReportController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleRecibosProveedorReport, + uBizRecibosProveedor; + +type + IRecibosProveedorReportController = interface + ['{33009D46-9B5C-4255-AC5E-8AA93A1DDB7B}'] + procedure Preview(const ID : integer); + procedure Print(const ID : integer); + end; + + TRecibosProveedorReportController = class(TInterfacedObject, IRecibosProveedorReportController) + private + FDataModule : IDataModuleRecibosProveedorReport; + function CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; + public + constructor Create; + destructor Destroy; override; + + procedure Preview(const ID : integer); + procedure Print(const ID : integer); + end; + + +implementation + +uses + uROTypes, uEditorRegistryUtils, uIEditorRecibosProveedorPreview, + uEditorPreview, uDataModuleRecibosProveedor, uEditorBase, cxControls; + +{ TRecibosProveedorReportController } + +constructor TRecibosProveedorReportController.Create; +begin + FDataModule := TDataModuleRecibosProveedor.Create(Nil); +end; + +function TRecibosProveedorReportController.CreateEditor(const AName: String; + const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + + +destructor TRecibosProveedorReportController.Destroy; +begin + FDataModule := NIL; + inherited; +end; + +procedure TRecibosProveedorReportController.Preview(const ID : integer); +var + AStream: Binary; + AEditor : IEditorRecibosProveedorPreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(ID); + try + CreateEditor('EditorRecibosProveedorPreview', IEditorRecibosProveedorPreview, AEditor); + if Assigned(AEditor) then + try + AEditor.LoadFromStream(AStream); + AEditor.Preview; + finally + AEditor.Release; + end; + finally + FreeAndNil(AStream); + AEditor := Nil; + end; + finally + HideHourglassCursor; + end; +end; + +procedure TRecibosProveedorReportController.Print(const ID : integer); +var + AStream: Binary; + AEditor : IEditorRecibosProveedorPreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(ID); + try + CreateEditor('EditorRecibosProveedorPreview', IEditorRecibosProveedorPreview, AEditor); + if Assigned(AEditor) then + try + AEditor.LoadFromStream(AStream); + AEditor.Print; + finally + AEditor.Release; + end; + finally + FreeAndNil(AStream); + AEditor := Nil; + end; + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Recibos de proveedor/Data/RecibosProveedor_data.bdsproj b/Source/Modulos/Recibos de proveedor/Data/RecibosProveedor_data.bdsproj new file mode 100644 index 0000000..b0d0ac6 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Data/RecibosProveedor_data.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + RecibosProveedor_data.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Recibos de proveedor/Data/RecibosProveedor_data.dcu b/Source/Modulos/Recibos de proveedor/Data/RecibosProveedor_data.dcu new file mode 100644 index 0000000..e6b4792 Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Data/RecibosProveedor_data.dcu differ diff --git a/Source/Modulos/Recibos de proveedor/Data/RecibosProveedor_data.dpk b/Source/Modulos/Recibos de proveedor/Data/RecibosProveedor_data.dpk new file mode 100644 index 0000000..4799a48 Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Data/RecibosProveedor_data.dpk differ diff --git a/Source/Modulos/Recibos de proveedor/Data/RecibosProveedor_data.dproj b/Source/Modulos/Recibos de proveedor/Data/RecibosProveedor_data.dproj new file mode 100644 index 0000000..4d398c5 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Data/RecibosProveedor_data.dproj @@ -0,0 +1,540 @@ + + + + {f10782d8-a2a3-45bb-9ae0-98f0b23968fc} + RecibosProveedor_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\RecibosProveedor_data.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0RecibosProveedor_data.dpk + + + + + MainSource + + + + + + + + diff --git a/Source/Modulos/Recibos de proveedor/Data/RecibosProveedor_data.drc b/Source/Modulos/Recibos de proveedor/Data/RecibosProveedor_data.drc new file mode 100644 index 0000000..0764100 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Data/RecibosProveedor_data.drc @@ -0,0 +1,17 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Recibos de proveedor\Data\uDataModuleRecibosProveedor.dfm */ +/* C:\Codigo\Source\Modulos\Recibos de proveedor\Data\RecibosProveedor_data.res */ +/* c:\temp\dtf1B1.tmp */ diff --git a/Source/Modulos/Recibos de proveedor/Data/RecibosProveedor_data.rc b/Source/Modulos/Recibos de proveedor/Data/RecibosProveedor_data.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Data/RecibosProveedor_data.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Recibos de proveedor/Data/RecibosProveedor_data.res b/Source/Modulos/Recibos de proveedor/Data/RecibosProveedor_data.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Data/RecibosProveedor_data.res differ diff --git a/Source/Modulos/Recibos de proveedor/Data/uDataModuleRecibosProveedor.dcu b/Source/Modulos/Recibos de proveedor/Data/uDataModuleRecibosProveedor.dcu new file mode 100644 index 0000000..458504d Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Data/uDataModuleRecibosProveedor.dcu differ diff --git a/Source/Modulos/Recibos de proveedor/Data/uDataModuleRecibosProveedor.dfm b/Source/Modulos/Recibos de proveedor/Data/uDataModuleRecibosProveedor.dfm new file mode 100644 index 0000000..2ec5a4b --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Data/uDataModuleRecibosProveedor.dfm @@ -0,0 +1,483 @@ +inherited DataModuleRecibosProveedor: TDataModuleRecibosProveedor + OnCreate = DAClientDataModuleCreate + Height = 311 + Width = 518 + object RORemoteService: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvRecibosProveedor' + Left = 56 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 84 + end + object rda_RecibosProveedor: TDARemoteDataAdapter + DataStreamer = Bin2DataStreamer + GetSchemaCall.RemoteService = RORemoteService + GetDataCall.RemoteService = RORemoteService + UpdateDataCall.RemoteService = RORemoteService + GetScriptsCall.RemoteService = RORemoteService + RemoteService = RORemoteService + Left = 51 + Top = 151 + end + object tbl_PagosProveedor: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_PAGOS_PROVEEDOR_ID' + Required = True + DictionaryEntry = 'PagosProveedor_ID' + InPrimaryKey = True + end + item + Name = 'ID_RECIBO' + DataType = datInteger + DisplayLabel = 'PagosCliente_ID_RECIBO' + DictionaryEntry = 'PagosProveedor_ID_RECIBO' + end + item + Name = 'TIPO' + DataType = datString + Size = 255 + DisplayLabel = 'PagosCliente_TIPO' + DictionaryEntry = 'PagosProveedor_TIPO' + end + item + Name = 'FECHA_PAGO' + DataType = datDateTime + DisplayLabel = 'PagosCliente_FECHA_PAGO' + DictionaryEntry = 'PagosProveedor_FECHA_PAGO' + end + item + Name = 'TITULAR' + DataType = datString + Size = 255 + DisplayLabel = 'PagosCliente_TITULAR' + DictionaryEntry = 'PagosProveedor_TITULAR' + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + DisplayLabel = 'PagosCliente_ENTIDAD' + DictionaryEntry = 'PagosProveedor_ENTIDAD' + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + DisplayLabel = 'PagosCliente_SUCURSAL' + DictionaryEntry = 'PagosProveedor_SUCURSAL' + end + item + Name = 'DC' + DataType = datString + Size = 15 + DisplayLabel = 'PagosCliente_DC' + DictionaryEntry = 'PagosProveedor_DC' + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + DisplayLabel = 'PagosCliente_CUENTA' + DictionaryEntry = 'PagosProveedor_CUENTA' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DisplayLabel = 'PagosCliente_FECHA_ALTA' + DictionaryEntry = 'PagosProveedor_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DisplayLabel = 'PagosCliente_FECHA_MODIFICACION' + DictionaryEntry = 'PagosProveedor_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DisplayLabel = 'PagosCliente_USUARIO' + DictionaryEntry = 'PagosProveedor_USUARIO' + end> + Params = <> + MasterMappingMode = mmWhere + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_RecibosProveedor + MasterSource = ds_RecibosProveedor + MasterFields = 'ID' + DetailFields = 'ID_RECIBO' + LogicalName = 'PagosProveedor' + IndexDefs = <> + Left = 280 + Top = 104 + end + object ds_PagosProveedor: TDADataSource + DataSet = tbl_PagosProveedor.Dataset + DataTable = tbl_PagosProveedor + Left = 280 + Top = 48 + end + object tbl_RecibosCompensadosProv: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + Required = True + ServerAutoRefresh = True + InPrimaryKey = True + end + item + Name = 'ID_RECIBO_COMPENSADO' + DataType = datInteger + end + item + Name = 'REFERENCIA_REC_COMPENSADO' + DataType = datString + Size = 255 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + end + item + Name = 'ID_FACTURA' + DataType = datInteger + end + item + Name = 'ID_REMESA' + DataType = datInteger + end + item + Name = 'REFERENCIA_REMESA' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE' + DataType = datCurrency + end + item + Name = 'OTROS_GASTOS' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'REFERENCIA_FACTURA_PROV' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + end + item + Name = 'FORMA_PAGO_FACTURA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_FACTURA' + DataType = datCurrency + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'DATOS_BANCARIOS' + DataType = datString + Size = 255 + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + end + item + Name = 'NOMBRE_PROVEEDOR' + DataType = datString + Size = 255 + end + item + Name = 'NIF_CIF_PROVEEDOR' + DataType = datString + Size = 15 + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + end + item + Name = 'USUARIO' + DataType = datString + Size = 30 + end> + Params = <> + MasterMappingMode = mmWhere + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_RecibosProveedor + MasterSource = ds_RecibosProveedor + MasterFields = 'ID' + DetailFields = 'ID_RECIBO_COMPENSADO' + LogicalName = 'RecibosCompensadosProv' + IndexDefs = <> + Left = 416 + Top = 104 + end + object ds_RecibosCompensadosProv: TDADataSource + DataSet = tbl_RecibosCompensadosProv.Dataset + DataTable = tbl_RecibosCompensadosProv + Left = 416 + Top = 48 + end + object tbl_RecibosProveedor: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_RECIBOS_PROVEEDOR_ID' + Required = True + DictionaryEntry = 'RecibosProveedor_ID' + InPrimaryKey = True + end + item + Name = 'ID_RECIBO_COMPENSADO' + DataType = datInteger + DisplayLabel = 'RecibosProveedor_ID_RECIBO_COMPENSADO' + DictionaryEntry = 'RecibosProveedor_ID_RECIBO_COMPENSADO' + end + item + Name = 'REFERENCIA_REC_COMPENSADO' + DataType = datString + Size = 255 + DisplayLabel = 'RecibosProveedor_REFERENCIA_REC_COMPENSADO' + DictionaryEntry = 'RecibosProveedor_REFERENCIA_REC_COMPENSADO' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'RecibosProveedor_REFERENCIA' + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DictionaryEntry = 'RecibosProveedor_REFERENCIA_PROVEEDOR' + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + DictionaryEntry = 'RecibosProveedor_SITUACION' + end + item + Name = 'ID_FACTURA' + DataType = datInteger + DictionaryEntry = 'RecibosProveedor_ID_FACTURA' + end + item + Name = 'ID_REMESA' + DataType = datInteger + DictionaryEntry = 'RecibosProveedor_ID_REMESA' + end + item + Name = 'REFERENCIA_REMESA' + DataType = datString + Size = 255 + DictionaryEntry = 'RecibosProveedor_REFERENCIA_REMESA' + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + DisplayLabel = 'RecibosCliente_FECHA_EMISION' + DictionaryEntry = 'RecibosProveedor_FECHA_EMISION' + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + DictionaryEntry = 'RecibosProveedor_FECHA_VENCIMIENTO' + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DictionaryEntry = 'RecibosProveedor_DESCRIPCION' + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + DictionaryEntry = 'RecibosProveedor_OBSERVACIONES' + end + item + Name = 'IMPORTE' + DataType = datCurrency + Alignment = taRightJustify + DictionaryEntry = 'RecibosProveedor_IMPORTE' + end + item + Name = 'OTROS_GASTOS' + DataType = datCurrency + DisplayLabel = 'RecibosCliente_OTROS_GASTOS' + Alignment = taRightJustify + DictionaryEntry = 'RecibosProveedor_OTROS_GASTOS' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + Alignment = taRightJustify + DictionaryEntry = 'RecibosProveedor_IMPORTE_TOTAL' + end + item + Name = 'REFERENCIA_FACTURA_PROV' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. factura prov.' + DictionaryEntry = 'RecibosProveedor_REFERENCIA_FACTURA_PROV' + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + DictionaryEntry = 'RecibosProveedor_FECHA_FACTURA' + end + item + Name = 'FORMA_PAGO_FACTURA' + DataType = datString + Size = 255 + DictionaryEntry = 'RecibosProveedor_FORMA_PAGO_FACTURA' + end + item + Name = 'IMPORTE_FACTURA' + DataType = datCurrency + Alignment = taRightJustify + DictionaryEntry = 'RecibosProveedor_IMPORTE_FACTURA' + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'RecibosProveedor_ID_EMPRESA' + end + item + Name = 'DATOS_BANCARIOS' + DataType = datString + Size = 255 + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + DisplayLabel = 'RecibosProveedor_ID_PROVEEDOR' + DictionaryEntry = 'RecibosProveedor_ID_PROVEEDOR' + end + item + Name = 'NOMBRE_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'RecibosProveedor_NOMBRE_PROVEEDOR' + DictionaryEntry = 'RecibosProveedor_NOMBRE_PROVEEDOR' + end + item + Name = 'NIF_CIF_PROVEEDOR' + DataType = datString + Size = 15 + DisplayLabel = 'RecibosProveedor_NIF_CIF_PROVEEDOR' + DictionaryEntry = 'RecibosProveedor_NIF_CIF_PROVEEDOR' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'RecibosProveedor_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'RecibosProveedor_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'RecibosCliente_USUARIO' + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_RecibosProveedor + LogicalName = 'RecibosProveedor' + IndexDefs = <> + Left = 160 + Top = 104 + end + object ds_RecibosProveedor: TDADataSource + DataSet = tbl_RecibosProveedor.Dataset + DataTable = tbl_RecibosProveedor + Left = 160 + Top = 48 + end + object tbl_ListaAnosRecibos: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ANO' + DataType = datString + Size = 254 + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_RecibosProveedor + LogicalName = 'ListaAnosRecibos' + IndexDefs = <> + Left = 160 + Top = 216 + end + object ds_ListaAnosRecibos: TDADataSource + DataSet = tbl_ListaAnosRecibos.Dataset + DataTable = tbl_ListaAnosRecibos + Left = 160 + Top = 160 + end +end diff --git a/Source/Modulos/Recibos de proveedor/Data/uDataModuleRecibosProveedor.pas b/Source/Modulos/Recibos de proveedor/Data/uDataModuleRecibosProveedor.pas new file mode 100644 index 0000000..3baaa9a --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Data/uDataModuleRecibosProveedor.pas @@ -0,0 +1,196 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uDataModuleRecibosProveedor; + +interface + +uses + SysUtils, Classes, DB, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uROWinInetHttpChannel, uROTypes, + uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, uDataModuleBase, + + uIDataModuleRecibosProveedor, uIDataModuleRecibosProveedorReport, + uBizRecibosProveedor, uBizPagosProveedor, uBizRecibosProvCompensados, + uDARemoteDataAdapter, uDADataStreamer, uDABin2DataStreamer, uDAInterfaces, uDAMemDataTable; + +type + TDataModuleRecibosProveedor = class(TDataModuleBase, IDataModuleRecibosProveedor, IDataModuleRecibosProveedorReport) + RORemoteService: TRORemoteService; + Bin2DataStreamer: TDABin2DataStreamer; + rda_RecibosProveedor: TDARemoteDataAdapter; + tbl_PagosProveedor: TDAMemDataTable; + ds_PagosProveedor: TDADataSource; + tbl_RecibosCompensadosProv: TDAMemDataTable; + ds_RecibosCompensadosProv: TDADataSource; + tbl_RecibosProveedor: TDAMemDataTable; + ds_RecibosProveedor: TDADataSource; + tbl_ListaAnosRecibos: TDAMemDataTable; + ds_ListaAnosRecibos: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + protected + function _GetPagos: IBizPagosProveedor; + function _GetRecibosCompensados : IBizRecibosCompensadosProv; + public + function GetItems: IBizRecibosProveedor; + function GetItem(const ID : Integer) : IBizRecibosProveedor; + function NewItem : IBizRecibosProveedor; + function GetReport(const ID: Integer): Binary; + + function GetAnosItems : TStringList; + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, + schRecibosProveedorClient_Intf; + +{ TDataModuleRecibosProveedor } + + +function TDataModuleRecibosProveedor.GetReport(const ID: Integer): Binary; +begin +// Result := (RORemoteService as IsrvRecibosProveedor).GenerateReport(ID); +end; + +procedure TDataModuleRecibosProveedor.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleRecibosProveedor._GetPagos: IBizPagosProveedor; +var + APagos : TDAMemDataTable; +begin + ShowHourglassCursor; + try + APagos := CloneDataTable(tbl_PagosProveedor); + with APagos do + begin + BusinessRulesID := BIZ_CLIENT_IBIZPAGOSPROVEEDOR; + DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; + end; + Result := (APagos as IBizPagosProveedor); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleRecibosProveedor._GetRecibosCompensados: IBizRecibosCompensadosProv; +var + ARecibosCompensados : TDAMemDataTable; +begin + ShowHourglassCursor; + try + ARecibosCompensados := CloneDataTable(tbl_RecibosCompensadosProv); + with ARecibosCompensados do + begin + BusinessRulesID := BIZ_CLIENT_RECIBOS_COMPENSADOSPROV; + DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; + end; + Result := (ARecibosCompensados as IBizRecibosCompensadosProv); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleRecibosProveedor.GetItems: IBizRecibosProveedor; +var + AIBizRecibosProveedor : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AIBizRecibosProveedor := CloneDataTable(tbl_RecibosProveedor); + AIBizRecibosProveedor.BusinessRulesID := BIZ_CLIENT_IBizRecibosProveedor; + + with TBizRecibosProveedor(AIBizRecibosProveedor.BusinessEventsObj) do + Pagos := _GetPagos; + + with TBizRecibosProveedor(AIBizRecibosProveedor.BusinessEventsObj) do + RecibosCompensados := _GetRecibosCompensados; + + Result := (AIBizRecibosProveedor as IBizRecibosProveedor); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleRecibosProveedor.NewItem: IBizRecibosProveedor; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleRecibosProveedor.GetAnosItems: TStringList; +var + AListaAnos: TStringList; +begin + AListaAnos := TStringList.Create; + ShowHourglassCursor; + try + with tbl_ListaAnosRecibos do + begin + Open; + First; + while not eof do + begin + AListaAnos.Add(Format('%s=%s', [Fields[0].AsString, Fields[0].AsString])); + Next; + end; + Close; + end; + Result := AListaAnos; + finally + HideHourglassCursor; + end; +end; + +function TDataModuleRecibosProveedor.GetItem(const ID: Integer): IBizRecibosProveedor; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + + with Result.DataTable.DynamicWhere do + begin + // (ID = :ID) + Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorID), NewConstant(ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Recibos de proveedor/Model/Data/uIDataModuleRecibosProveedor.dcu b/Source/Modulos/Recibos de proveedor/Model/Data/uIDataModuleRecibosProveedor.dcu new file mode 100644 index 0000000..24baa4f Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Model/Data/uIDataModuleRecibosProveedor.dcu differ diff --git a/Source/Modulos/Recibos de proveedor/Model/Data/uIDataModuleRecibosProveedor.pas b/Source/Modulos/Recibos de proveedor/Model/Data/uIDataModuleRecibosProveedor.pas new file mode 100644 index 0000000..b17df18 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Model/Data/uIDataModuleRecibosProveedor.pas @@ -0,0 +1,42 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uIDataModuleRecibosProveedor; + +interface + +uses + Classes, uBizRecibosProveedor; + +type + IDataModuleRecibosProveedor = interface + ['{0EEAF672-1509-4695-90B0-0D6EBB81B6C5}'] + function GetAnosItems : TStringList; + function GetItems: IBizRecibosProveedor; + function GetItem(const ID : Integer) : IBizRecibosProveedor; + function NewItem : IBizRecibosProveedor; + end; + +implementation + +end. diff --git a/Source/Modulos/Recibos de proveedor/Model/Data/uIDataModuleRecibosProveedorReport.dcu b/Source/Modulos/Recibos de proveedor/Model/Data/uIDataModuleRecibosProveedorReport.dcu new file mode 100644 index 0000000..2dca3e0 Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Model/Data/uIDataModuleRecibosProveedorReport.dcu differ diff --git a/Source/Modulos/Recibos de proveedor/Model/Data/uIDataModuleRecibosProveedorReport.pas b/Source/Modulos/Recibos de proveedor/Model/Data/uIDataModuleRecibosProveedorReport.pas new file mode 100644 index 0000000..877b3a3 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Model/Data/uIDataModuleRecibosProveedorReport.pas @@ -0,0 +1,16 @@ +unit uIDataModuleRecibosProveedorReport; + +interface + +uses + SysUtils, Classes, uROTypes; + +type + IDataModuleRecibosProveedorReport = interface + ['{61D19A89-D834-49A8-AF7E-26DB47D3C5F7}'] + function GetReport(const ID: Integer): Binary; + end; + +implementation + +end. diff --git a/Source/Modulos/Recibos de proveedor/Model/RecibosProveedor_model.bdsproj b/Source/Modulos/Recibos de proveedor/Model/RecibosProveedor_model.bdsproj new file mode 100644 index 0000000..540c843 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Model/RecibosProveedor_model.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + RecibosProveedor_model.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Recibos de proveedor/Model/RecibosProveedor_model.dcu b/Source/Modulos/Recibos de proveedor/Model/RecibosProveedor_model.dcu new file mode 100644 index 0000000..8e2696b Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Model/RecibosProveedor_model.dcu differ diff --git a/Source/Modulos/Recibos de proveedor/Model/RecibosProveedor_model.dpk b/Source/Modulos/Recibos de proveedor/Model/RecibosProveedor_model.dpk new file mode 100644 index 0000000..1b5b277 Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Model/RecibosProveedor_model.dpk differ diff --git a/Source/Modulos/Recibos de proveedor/Model/RecibosProveedor_model.dproj b/Source/Modulos/Recibos de proveedor/Model/RecibosProveedor_model.dproj new file mode 100644 index 0000000..39b6ae9 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Model/RecibosProveedor_model.dproj @@ -0,0 +1,592 @@ + + + + {e2f6ada6-f893-403e-8ebc-dd36413017f6} + RecibosProveedor_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\RecibosProveedor_model.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + RecibosProveedor_model.dpk + + + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Recibos de proveedor/Model/RecibosProveedor_model.rc b/Source/Modulos/Recibos de proveedor/Model/RecibosProveedor_model.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Model/RecibosProveedor_model.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Recibos de proveedor/Model/RecibosProveedor_model.res b/Source/Modulos/Recibos de proveedor/Model/RecibosProveedor_model.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Model/RecibosProveedor_model.res differ diff --git a/Source/Modulos/Recibos de proveedor/Model/schRecibosProveedorClient_Intf.dcu b/Source/Modulos/Recibos de proveedor/Model/schRecibosProveedorClient_Intf.dcu new file mode 100644 index 0000000..5fcb8c7 Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Model/schRecibosProveedorClient_Intf.dcu differ diff --git a/Source/Modulos/Recibos de proveedor/Model/schRecibosProveedorClient_Intf.pas b/Source/Modulos/Recibos de proveedor/Model/schRecibosProveedorClient_Intf.pas new file mode 100644 index 0000000..5c753e7 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Model/schRecibosProveedorClient_Intf.pas @@ -0,0 +1,2605 @@ +unit schRecibosProveedorClient_Intf; + +interface + +uses + Classes, DB, schBase_Intf, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_ListaAnosRecibos = '{E517AD0B-3117-47E6-BDE0-C6F56CA71A1D}'; + RID_RecibosCompensadosProv = '{9EAB41F6-5853-4683-A0E3-F66C12232C03}'; + RID_RecibosProveedor = '{2344F4F7-8139-44E1-B225-3E581F4B9FB2}'; + RID_PagosProveedor = '{873FD5ED-817D-4AF3-81CF-5D3290B15090}'; + + { Data table names } + nme_ListaAnosRecibos = 'ListaAnosRecibos'; + nme_RecibosCompensadosProv = 'RecibosCompensadosProv'; + nme_RecibosProveedor = 'RecibosProveedor'; + nme_PagosProveedor = 'PagosProveedor'; + + { ListaAnosRecibos fields } + fld_ListaAnosRecibosANO = 'ANO'; + + { ListaAnosRecibos field indexes } + idx_ListaAnosRecibosANO = 0; + + { RecibosCompensadosProv fields } + fld_RecibosCompensadosProvID = 'ID'; + fld_RecibosCompensadosProvID_RECIBO_COMPENSADO = 'ID_RECIBO_COMPENSADO'; + fld_RecibosCompensadosProvREFERENCIA_REC_COMPENSADO = 'REFERENCIA_REC_COMPENSADO'; + fld_RecibosCompensadosProvREFERENCIA = 'REFERENCIA'; + fld_RecibosCompensadosProvREFERENCIA_PROVEEDOR = 'REFERENCIA_PROVEEDOR'; + fld_RecibosCompensadosProvSITUACION = 'SITUACION'; + fld_RecibosCompensadosProvID_FACTURA = 'ID_FACTURA'; + fld_RecibosCompensadosProvID_REMESA = 'ID_REMESA'; + fld_RecibosCompensadosProvREFERENCIA_REMESA = 'REFERENCIA_REMESA'; + fld_RecibosCompensadosProvFECHA_EMISION = 'FECHA_EMISION'; + fld_RecibosCompensadosProvFECHA_VENCIMIENTO = 'FECHA_VENCIMIENTO'; + fld_RecibosCompensadosProvDESCRIPCION = 'DESCRIPCION'; + fld_RecibosCompensadosProvOBSERVACIONES = 'OBSERVACIONES'; + fld_RecibosCompensadosProvIMPORTE = 'IMPORTE'; + fld_RecibosCompensadosProvOTROS_GASTOS = 'OTROS_GASTOS'; + fld_RecibosCompensadosProvIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_RecibosCompensadosProvREFERENCIA_FACTURA_PROV = 'REFERENCIA_FACTURA_PROV'; + fld_RecibosCompensadosProvFECHA_FACTURA = 'FECHA_FACTURA'; + fld_RecibosCompensadosProvFORMA_PAGO_FACTURA = 'FORMA_PAGO_FACTURA'; + fld_RecibosCompensadosProvIMPORTE_FACTURA = 'IMPORTE_FACTURA'; + fld_RecibosCompensadosProvID_EMPRESA = 'ID_EMPRESA'; + fld_RecibosCompensadosProvDATOS_BANCARIOS = 'DATOS_BANCARIOS'; + fld_RecibosCompensadosProvID_PROVEEDOR = 'ID_PROVEEDOR'; + fld_RecibosCompensadosProvNOMBRE_PROVEEDOR = 'NOMBRE_PROVEEDOR'; + fld_RecibosCompensadosProvNIF_CIF_PROVEEDOR = 'NIF_CIF_PROVEEDOR'; + fld_RecibosCompensadosProvFECHA_ALTA = 'FECHA_ALTA'; + fld_RecibosCompensadosProvFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_RecibosCompensadosProvUSUARIO = 'USUARIO'; + + { RecibosCompensadosProv field indexes } + idx_RecibosCompensadosProvID = 0; + idx_RecibosCompensadosProvID_RECIBO_COMPENSADO = 1; + idx_RecibosCompensadosProvREFERENCIA_REC_COMPENSADO = 2; + idx_RecibosCompensadosProvREFERENCIA = 3; + idx_RecibosCompensadosProvREFERENCIA_PROVEEDOR = 4; + idx_RecibosCompensadosProvSITUACION = 5; + idx_RecibosCompensadosProvID_FACTURA = 6; + idx_RecibosCompensadosProvID_REMESA = 7; + idx_RecibosCompensadosProvREFERENCIA_REMESA = 8; + idx_RecibosCompensadosProvFECHA_EMISION = 9; + idx_RecibosCompensadosProvFECHA_VENCIMIENTO = 10; + idx_RecibosCompensadosProvDESCRIPCION = 11; + idx_RecibosCompensadosProvOBSERVACIONES = 12; + idx_RecibosCompensadosProvIMPORTE = 13; + idx_RecibosCompensadosProvOTROS_GASTOS = 14; + idx_RecibosCompensadosProvIMPORTE_TOTAL = 15; + idx_RecibosCompensadosProvREFERENCIA_FACTURA_PROV = 16; + idx_RecibosCompensadosProvFECHA_FACTURA = 17; + idx_RecibosCompensadosProvFORMA_PAGO_FACTURA = 18; + idx_RecibosCompensadosProvIMPORTE_FACTURA = 19; + idx_RecibosCompensadosProvID_EMPRESA = 20; + idx_RecibosCompensadosProvDATOS_BANCARIOS = 21; + idx_RecibosCompensadosProvID_PROVEEDOR = 22; + idx_RecibosCompensadosProvNOMBRE_PROVEEDOR = 23; + idx_RecibosCompensadosProvNIF_CIF_PROVEEDOR = 24; + idx_RecibosCompensadosProvFECHA_ALTA = 25; + idx_RecibosCompensadosProvFECHA_MODIFICACION = 26; + idx_RecibosCompensadosProvUSUARIO = 27; + + { RecibosProveedor fields } + fld_RecibosProveedorID = 'ID'; + fld_RecibosProveedorID_RECIBO_COMPENSADO = 'ID_RECIBO_COMPENSADO'; + fld_RecibosProveedorREFERENCIA_REC_COMPENSADO = 'REFERENCIA_REC_COMPENSADO'; + fld_RecibosProveedorREFERENCIA = 'REFERENCIA'; + fld_RecibosProveedorREFERENCIA_PROVEEDOR = 'REFERENCIA_PROVEEDOR'; + fld_RecibosProveedorSITUACION = 'SITUACION'; + fld_RecibosProveedorID_FACTURA = 'ID_FACTURA'; + fld_RecibosProveedorID_REMESA = 'ID_REMESA'; + fld_RecibosProveedorREFERENCIA_REMESA = 'REFERENCIA_REMESA'; + fld_RecibosProveedorFECHA_EMISION = 'FECHA_EMISION'; + fld_RecibosProveedorFECHA_VENCIMIENTO = 'FECHA_VENCIMIENTO'; + fld_RecibosProveedorDESCRIPCION = 'DESCRIPCION'; + fld_RecibosProveedorOBSERVACIONES = 'OBSERVACIONES'; + fld_RecibosProveedorIMPORTE = 'IMPORTE'; + fld_RecibosProveedorOTROS_GASTOS = 'OTROS_GASTOS'; + fld_RecibosProveedorIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_RecibosProveedorREFERENCIA_FACTURA_PROV = 'REFERENCIA_FACTURA_PROV'; + fld_RecibosProveedorFECHA_FACTURA = 'FECHA_FACTURA'; + fld_RecibosProveedorFORMA_PAGO_FACTURA = 'FORMA_PAGO_FACTURA'; + fld_RecibosProveedorIMPORTE_FACTURA = 'IMPORTE_FACTURA'; + fld_RecibosProveedorID_EMPRESA = 'ID_EMPRESA'; + fld_RecibosProveedorDATOS_BANCARIOS = 'DATOS_BANCARIOS'; + fld_RecibosProveedorID_PROVEEDOR = 'ID_PROVEEDOR'; + fld_RecibosProveedorNOMBRE_PROVEEDOR = 'NOMBRE_PROVEEDOR'; + fld_RecibosProveedorNIF_CIF_PROVEEDOR = 'NIF_CIF_PROVEEDOR'; + fld_RecibosProveedorFECHA_ALTA = 'FECHA_ALTA'; + fld_RecibosProveedorFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_RecibosProveedorUSUARIO = 'USUARIO'; + + { RecibosProveedor field indexes } + idx_RecibosProveedorID = 0; + idx_RecibosProveedorID_RECIBO_COMPENSADO = 1; + idx_RecibosProveedorREFERENCIA_REC_COMPENSADO = 2; + idx_RecibosProveedorREFERENCIA = 3; + idx_RecibosProveedorREFERENCIA_PROVEEDOR = 4; + idx_RecibosProveedorSITUACION = 5; + idx_RecibosProveedorID_FACTURA = 6; + idx_RecibosProveedorID_REMESA = 7; + idx_RecibosProveedorREFERENCIA_REMESA = 8; + idx_RecibosProveedorFECHA_EMISION = 9; + idx_RecibosProveedorFECHA_VENCIMIENTO = 10; + idx_RecibosProveedorDESCRIPCION = 11; + idx_RecibosProveedorOBSERVACIONES = 12; + idx_RecibosProveedorIMPORTE = 13; + idx_RecibosProveedorOTROS_GASTOS = 14; + idx_RecibosProveedorIMPORTE_TOTAL = 15; + idx_RecibosProveedorREFERENCIA_FACTURA_PROV = 16; + idx_RecibosProveedorFECHA_FACTURA = 17; + idx_RecibosProveedorFORMA_PAGO_FACTURA = 18; + idx_RecibosProveedorIMPORTE_FACTURA = 19; + idx_RecibosProveedorID_EMPRESA = 20; + idx_RecibosProveedorDATOS_BANCARIOS = 21; + idx_RecibosProveedorID_PROVEEDOR = 22; + idx_RecibosProveedorNOMBRE_PROVEEDOR = 23; + idx_RecibosProveedorNIF_CIF_PROVEEDOR = 24; + idx_RecibosProveedorFECHA_ALTA = 25; + idx_RecibosProveedorFECHA_MODIFICACION = 26; + idx_RecibosProveedorUSUARIO = 27; + + { PagosProveedor fields } + fld_PagosProveedorID = 'ID'; + fld_PagosProveedorID_RECIBO = 'ID_RECIBO'; + fld_PagosProveedorTIPO = 'TIPO'; + fld_PagosProveedorFECHA_PAGO = 'FECHA_PAGO'; + fld_PagosProveedorTITULAR = 'TITULAR'; + fld_PagosProveedorENTIDAD = 'ENTIDAD'; + fld_PagosProveedorSUCURSAL = 'SUCURSAL'; + fld_PagosProveedorDC = 'DC'; + fld_PagosProveedorCUENTA = 'CUENTA'; + fld_PagosProveedorFECHA_ALTA = 'FECHA_ALTA'; + fld_PagosProveedorFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_PagosProveedorUSUARIO = 'USUARIO'; + + { PagosProveedor field indexes } + idx_PagosProveedorID = 0; + idx_PagosProveedorID_RECIBO = 1; + idx_PagosProveedorTIPO = 2; + idx_PagosProveedorFECHA_PAGO = 3; + idx_PagosProveedorTITULAR = 4; + idx_PagosProveedorENTIDAD = 5; + idx_PagosProveedorSUCURSAL = 6; + idx_PagosProveedorDC = 7; + idx_PagosProveedorCUENTA = 8; + idx_PagosProveedorFECHA_ALTA = 9; + idx_PagosProveedorFECHA_MODIFICACION = 10; + idx_PagosProveedorUSUARIO = 11; + +type + { IListaAnosRecibos } + IListaAnosRecibos = interface(IDAStronglyTypedDataTable) + ['{738763D4-26C6-4F0D-BB6E-D638C380B114}'] + { Property getters and setters } + function GetANOValue: String; + procedure SetANOValue(const aValue: String); + function GetANOIsNull: Boolean; + procedure SetANOIsNull(const aValue: Boolean); + + + { Properties } + property ANO: String read GetANOValue write SetANOValue; + property ANOIsNull: Boolean read GetANOIsNull write SetANOIsNull; + end; + + { TListaAnosRecibosDataTableRules } + TListaAnosRecibosDataTableRules = class(TIntfObjectDADataTableRules, IListaAnosRecibos) + private + protected + { Property getters and setters } + function GetANOValue: String; virtual; + procedure SetANOValue(const aValue: String); virtual; + function GetANOIsNull: Boolean; virtual; + procedure SetANOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ANO: String read GetANOValue write SetANOValue; + property ANOIsNull: Boolean read GetANOIsNull write SetANOIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IRecibosCompensadosProv } + IRecibosCompensadosProv = interface(IDAStronglyTypedDataTable) + ['{43B7C892-1530-424B-B6B0-380E0A018456}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_RECIBO_COMPENSADOValue: Integer; + procedure SetID_RECIBO_COMPENSADOValue(const aValue: Integer); + function GetID_RECIBO_COMPENSADOIsNull: Boolean; + procedure SetID_RECIBO_COMPENSADOIsNull(const aValue: Boolean); + function GetREFERENCIA_REC_COMPENSADOValue: String; + procedure SetREFERENCIA_REC_COMPENSADOValue(const aValue: String); + function GetREFERENCIA_REC_COMPENSADOIsNull: Boolean; + procedure SetREFERENCIA_REC_COMPENSADOIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetREFERENCIA_PROVEEDORValue: String; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); + function GetREFERENCIA_PROVEEDORIsNull: Boolean; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); + function GetSITUACIONValue: String; + procedure SetSITUACIONValue(const aValue: String); + function GetSITUACIONIsNull: Boolean; + procedure SetSITUACIONIsNull(const aValue: Boolean); + function GetID_FACTURAValue: Integer; + procedure SetID_FACTURAValue(const aValue: Integer); + function GetID_FACTURAIsNull: Boolean; + procedure SetID_FACTURAIsNull(const aValue: Boolean); + function GetID_REMESAValue: Integer; + procedure SetID_REMESAValue(const aValue: Integer); + function GetID_REMESAIsNull: Boolean; + procedure SetID_REMESAIsNull(const aValue: Boolean); + function GetREFERENCIA_REMESAValue: String; + procedure SetREFERENCIA_REMESAValue(const aValue: String); + function GetREFERENCIA_REMESAIsNull: Boolean; + procedure SetREFERENCIA_REMESAIsNull(const aValue: Boolean); + function GetFECHA_EMISIONValue: DateTime; + procedure SetFECHA_EMISIONValue(const aValue: DateTime); + function GetFECHA_EMISIONIsNull: Boolean; + procedure SetFECHA_EMISIONIsNull(const aValue: Boolean); + function GetFECHA_VENCIMIENTOValue: DateTime; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); + function GetFECHA_VENCIMIENTOIsNull: Boolean; + procedure SetFECHA_VENCIMIENTOIsNull(const aValue: Boolean); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetDESCRIPCIONIsNull: Boolean; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); + function GetOBSERVACIONESValue: String; + procedure SetOBSERVACIONESValue(const aValue: String); + function GetOBSERVACIONESIsNull: Boolean; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); + function GetIMPORTEValue: Currency; + procedure SetIMPORTEValue(const aValue: Currency); + function GetIMPORTEIsNull: Boolean; + procedure SetIMPORTEIsNull(const aValue: Boolean); + function GetOTROS_GASTOSValue: Currency; + procedure SetOTROS_GASTOSValue(const aValue: Currency); + function GetOTROS_GASTOSIsNull: Boolean; + procedure SetOTROS_GASTOSIsNull(const aValue: Boolean); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetIMPORTE_TOTALIsNull: Boolean; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); + function GetREFERENCIA_FACTURA_PROVValue: String; + procedure SetREFERENCIA_FACTURA_PROVValue(const aValue: String); + function GetREFERENCIA_FACTURA_PROVIsNull: Boolean; + procedure SetREFERENCIA_FACTURA_PROVIsNull(const aValue: Boolean); + function GetFECHA_FACTURAValue: DateTime; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); + function GetFECHA_FACTURAIsNull: Boolean; + procedure SetFECHA_FACTURAIsNull(const aValue: Boolean); + function GetFORMA_PAGO_FACTURAValue: String; + procedure SetFORMA_PAGO_FACTURAValue(const aValue: String); + function GetFORMA_PAGO_FACTURAIsNull: Boolean; + procedure SetFORMA_PAGO_FACTURAIsNull(const aValue: Boolean); + function GetIMPORTE_FACTURAValue: Currency; + procedure SetIMPORTE_FACTURAValue(const aValue: Currency); + function GetIMPORTE_FACTURAIsNull: Boolean; + procedure SetIMPORTE_FACTURAIsNull(const aValue: Boolean); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_EMPRESAIsNull: Boolean; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); + function GetDATOS_BANCARIOSValue: String; + procedure SetDATOS_BANCARIOSValue(const aValue: String); + function GetDATOS_BANCARIOSIsNull: Boolean; + procedure SetDATOS_BANCARIOSIsNull(const aValue: Boolean); + function GetID_PROVEEDORValue: Integer; + procedure SetID_PROVEEDORValue(const aValue: Integer); + function GetID_PROVEEDORIsNull: Boolean; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); + function GetNOMBRE_PROVEEDORValue: String; + procedure SetNOMBRE_PROVEEDORValue(const aValue: String); + function GetNOMBRE_PROVEEDORIsNull: Boolean; + procedure SetNOMBRE_PROVEEDORIsNull(const aValue: Boolean); + function GetNIF_CIF_PROVEEDORValue: String; + procedure SetNIF_CIF_PROVEEDORValue(const aValue: String); + function GetNIF_CIF_PROVEEDORIsNull: Boolean; + procedure SetNIF_CIF_PROVEEDORIsNull(const aValue: Boolean); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_ALTAIsNull: Boolean; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONIsNull: Boolean; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetUSUARIOIsNull: Boolean; + procedure SetUSUARIOIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_RECIBO_COMPENSADO: Integer read GetID_RECIBO_COMPENSADOValue write SetID_RECIBO_COMPENSADOValue; + property ID_RECIBO_COMPENSADOIsNull: Boolean read GetID_RECIBO_COMPENSADOIsNull write SetID_RECIBO_COMPENSADOIsNull; + property REFERENCIA_REC_COMPENSADO: String read GetREFERENCIA_REC_COMPENSADOValue write SetREFERENCIA_REC_COMPENSADOValue; + property REFERENCIA_REC_COMPENSADOIsNull: Boolean read GetREFERENCIA_REC_COMPENSADOIsNull write SetREFERENCIA_REC_COMPENSADOIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull: Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property SITUACIONIsNull: Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull: Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property ID_REMESA: Integer read GetID_REMESAValue write SetID_REMESAValue; + property ID_REMESAIsNull: Boolean read GetID_REMESAIsNull write SetID_REMESAIsNull; + property REFERENCIA_REMESA: String read GetREFERENCIA_REMESAValue write SetREFERENCIA_REMESAValue; + property REFERENCIA_REMESAIsNull: Boolean read GetREFERENCIA_REMESAIsNull write SetREFERENCIA_REMESAIsNull; + property FECHA_EMISION: DateTime read GetFECHA_EMISIONValue write SetFECHA_EMISIONValue; + property FECHA_EMISIONIsNull: Boolean read GetFECHA_EMISIONIsNull write SetFECHA_EMISIONIsNull; + property FECHA_VENCIMIENTO: DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + property FECHA_VENCIMIENTOIsNull: Boolean read GetFECHA_VENCIMIENTOIsNull write SetFECHA_VENCIMIENTOIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property OBSERVACIONES: String read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property OBSERVACIONESIsNull: Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property IMPORTE: Currency read GetIMPORTEValue write SetIMPORTEValue; + property IMPORTEIsNull: Boolean read GetIMPORTEIsNull write SetIMPORTEIsNull; + property OTROS_GASTOS: Currency read GetOTROS_GASTOSValue write SetOTROS_GASTOSValue; + property OTROS_GASTOSIsNull: Boolean read GetOTROS_GASTOSIsNull write SetOTROS_GASTOSIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property REFERENCIA_FACTURA_PROV: String read GetREFERENCIA_FACTURA_PROVValue write SetREFERENCIA_FACTURA_PROVValue; + property REFERENCIA_FACTURA_PROVIsNull: Boolean read GetREFERENCIA_FACTURA_PROVIsNull write SetREFERENCIA_FACTURA_PROVIsNull; + property FECHA_FACTURA: DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property FECHA_FACTURAIsNull: Boolean read GetFECHA_FACTURAIsNull write SetFECHA_FACTURAIsNull; + property FORMA_PAGO_FACTURA: String read GetFORMA_PAGO_FACTURAValue write SetFORMA_PAGO_FACTURAValue; + property FORMA_PAGO_FACTURAIsNull: Boolean read GetFORMA_PAGO_FACTURAIsNull write SetFORMA_PAGO_FACTURAIsNull; + property IMPORTE_FACTURA: Currency read GetIMPORTE_FACTURAValue write SetIMPORTE_FACTURAValue; + property IMPORTE_FACTURAIsNull: Boolean read GetIMPORTE_FACTURAIsNull write SetIMPORTE_FACTURAIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property DATOS_BANCARIOS: String read GetDATOS_BANCARIOSValue write SetDATOS_BANCARIOSValue; + property DATOS_BANCARIOSIsNull: Boolean read GetDATOS_BANCARIOSIsNull write SetDATOS_BANCARIOSIsNull; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property NOMBRE_PROVEEDOR: String read GetNOMBRE_PROVEEDORValue write SetNOMBRE_PROVEEDORValue; + property NOMBRE_PROVEEDORIsNull: Boolean read GetNOMBRE_PROVEEDORIsNull write SetNOMBRE_PROVEEDORIsNull; + property NIF_CIF_PROVEEDOR: String read GetNIF_CIF_PROVEEDORValue write SetNIF_CIF_PROVEEDORValue; + property NIF_CIF_PROVEEDORIsNull: Boolean read GetNIF_CIF_PROVEEDORIsNull write SetNIF_CIF_PROVEEDORIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + end; + + { TRecibosCompensadosProvDataTableRules } + TRecibosCompensadosProvDataTableRules = class(TIntfObjectDADataTableRules, IRecibosCompensadosProv) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_RECIBO_COMPENSADOValue: Integer; virtual; + procedure SetID_RECIBO_COMPENSADOValue(const aValue: Integer); virtual; + function GetID_RECIBO_COMPENSADOIsNull: Boolean; virtual; + procedure SetID_RECIBO_COMPENSADOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_REC_COMPENSADOValue: String; virtual; + procedure SetREFERENCIA_REC_COMPENSADOValue(const aValue: String); virtual; + function GetREFERENCIA_REC_COMPENSADOIsNull: Boolean; virtual; + procedure SetREFERENCIA_REC_COMPENSADOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + function GetREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetSITUACIONIsNull: Boolean; virtual; + procedure SetSITUACIONIsNull(const aValue: Boolean); virtual; + function GetID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetID_FACTURAIsNull: Boolean; virtual; + procedure SetID_FACTURAIsNull(const aValue: Boolean); virtual; + function GetID_REMESAValue: Integer; virtual; + procedure SetID_REMESAValue(const aValue: Integer); virtual; + function GetID_REMESAIsNull: Boolean; virtual; + procedure SetID_REMESAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_REMESAValue: String; virtual; + procedure SetREFERENCIA_REMESAValue(const aValue: String); virtual; + function GetREFERENCIA_REMESAIsNull: Boolean; virtual; + procedure SetREFERENCIA_REMESAIsNull(const aValue: Boolean); virtual; + function GetFECHA_EMISIONValue: DateTime; virtual; + procedure SetFECHA_EMISIONValue(const aValue: DateTime); virtual; + function GetFECHA_EMISIONIsNull: Boolean; virtual; + procedure SetFECHA_EMISIONIsNull(const aValue: Boolean); virtual; + function GetFECHA_VENCIMIENTOValue: DateTime; virtual; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); virtual; + function GetFECHA_VENCIMIENTOIsNull: Boolean; virtual; + procedure SetFECHA_VENCIMIENTOIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + function GetOBSERVACIONESValue: String; virtual; + procedure SetOBSERVACIONESValue(const aValue: String); virtual; + function GetOBSERVACIONESIsNull: Boolean; virtual; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); virtual; + function GetIMPORTEValue: Currency; virtual; + procedure SetIMPORTEValue(const aValue: Currency); virtual; + function GetIMPORTEIsNull: Boolean; virtual; + procedure SetIMPORTEIsNull(const aValue: Boolean); virtual; + function GetOTROS_GASTOSValue: Currency; virtual; + procedure SetOTROS_GASTOSValue(const aValue: Currency); virtual; + function GetOTROS_GASTOSIsNull: Boolean; virtual; + procedure SetOTROS_GASTOSIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_FACTURA_PROVValue: String; virtual; + procedure SetREFERENCIA_FACTURA_PROVValue(const aValue: String); virtual; + function GetREFERENCIA_FACTURA_PROVIsNull: Boolean; virtual; + procedure SetREFERENCIA_FACTURA_PROVIsNull(const aValue: Boolean); virtual; + function GetFECHA_FACTURAValue: DateTime; virtual; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); virtual; + function GetFECHA_FACTURAIsNull: Boolean; virtual; + procedure SetFECHA_FACTURAIsNull(const aValue: Boolean); virtual; + function GetFORMA_PAGO_FACTURAValue: String; virtual; + procedure SetFORMA_PAGO_FACTURAValue(const aValue: String); virtual; + function GetFORMA_PAGO_FACTURAIsNull: Boolean; virtual; + procedure SetFORMA_PAGO_FACTURAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_FACTURAValue: Currency; virtual; + procedure SetIMPORTE_FACTURAValue(const aValue: Currency); virtual; + function GetIMPORTE_FACTURAIsNull: Boolean; virtual; + procedure SetIMPORTE_FACTURAIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetDATOS_BANCARIOSValue: String; virtual; + procedure SetDATOS_BANCARIOSValue(const aValue: String); virtual; + function GetDATOS_BANCARIOSIsNull: Boolean; virtual; + procedure SetDATOS_BANCARIOSIsNull(const aValue: Boolean); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetID_PROVEEDORIsNull: Boolean; virtual; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetNOMBRE_PROVEEDORValue: String; virtual; + procedure SetNOMBRE_PROVEEDORValue(const aValue: String); virtual; + function GetNOMBRE_PROVEEDORIsNull: Boolean; virtual; + procedure SetNOMBRE_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetNIF_CIF_PROVEEDORValue: String; virtual; + procedure SetNIF_CIF_PROVEEDORValue(const aValue: String); virtual; + function GetNIF_CIF_PROVEEDORIsNull: Boolean; virtual; + procedure SetNIF_CIF_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_RECIBO_COMPENSADO: Integer read GetID_RECIBO_COMPENSADOValue write SetID_RECIBO_COMPENSADOValue; + property ID_RECIBO_COMPENSADOIsNull: Boolean read GetID_RECIBO_COMPENSADOIsNull write SetID_RECIBO_COMPENSADOIsNull; + property REFERENCIA_REC_COMPENSADO: String read GetREFERENCIA_REC_COMPENSADOValue write SetREFERENCIA_REC_COMPENSADOValue; + property REFERENCIA_REC_COMPENSADOIsNull: Boolean read GetREFERENCIA_REC_COMPENSADOIsNull write SetREFERENCIA_REC_COMPENSADOIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull: Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property SITUACIONIsNull: Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull: Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property ID_REMESA: Integer read GetID_REMESAValue write SetID_REMESAValue; + property ID_REMESAIsNull: Boolean read GetID_REMESAIsNull write SetID_REMESAIsNull; + property REFERENCIA_REMESA: String read GetREFERENCIA_REMESAValue write SetREFERENCIA_REMESAValue; + property REFERENCIA_REMESAIsNull: Boolean read GetREFERENCIA_REMESAIsNull write SetREFERENCIA_REMESAIsNull; + property FECHA_EMISION: DateTime read GetFECHA_EMISIONValue write SetFECHA_EMISIONValue; + property FECHA_EMISIONIsNull: Boolean read GetFECHA_EMISIONIsNull write SetFECHA_EMISIONIsNull; + property FECHA_VENCIMIENTO: DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + property FECHA_VENCIMIENTOIsNull: Boolean read GetFECHA_VENCIMIENTOIsNull write SetFECHA_VENCIMIENTOIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property OBSERVACIONES: String read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property OBSERVACIONESIsNull: Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property IMPORTE: Currency read GetIMPORTEValue write SetIMPORTEValue; + property IMPORTEIsNull: Boolean read GetIMPORTEIsNull write SetIMPORTEIsNull; + property OTROS_GASTOS: Currency read GetOTROS_GASTOSValue write SetOTROS_GASTOSValue; + property OTROS_GASTOSIsNull: Boolean read GetOTROS_GASTOSIsNull write SetOTROS_GASTOSIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property REFERENCIA_FACTURA_PROV: String read GetREFERENCIA_FACTURA_PROVValue write SetREFERENCIA_FACTURA_PROVValue; + property REFERENCIA_FACTURA_PROVIsNull: Boolean read GetREFERENCIA_FACTURA_PROVIsNull write SetREFERENCIA_FACTURA_PROVIsNull; + property FECHA_FACTURA: DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property FECHA_FACTURAIsNull: Boolean read GetFECHA_FACTURAIsNull write SetFECHA_FACTURAIsNull; + property FORMA_PAGO_FACTURA: String read GetFORMA_PAGO_FACTURAValue write SetFORMA_PAGO_FACTURAValue; + property FORMA_PAGO_FACTURAIsNull: Boolean read GetFORMA_PAGO_FACTURAIsNull write SetFORMA_PAGO_FACTURAIsNull; + property IMPORTE_FACTURA: Currency read GetIMPORTE_FACTURAValue write SetIMPORTE_FACTURAValue; + property IMPORTE_FACTURAIsNull: Boolean read GetIMPORTE_FACTURAIsNull write SetIMPORTE_FACTURAIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property DATOS_BANCARIOS: String read GetDATOS_BANCARIOSValue write SetDATOS_BANCARIOSValue; + property DATOS_BANCARIOSIsNull: Boolean read GetDATOS_BANCARIOSIsNull write SetDATOS_BANCARIOSIsNull; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property NOMBRE_PROVEEDOR: String read GetNOMBRE_PROVEEDORValue write SetNOMBRE_PROVEEDORValue; + property NOMBRE_PROVEEDORIsNull: Boolean read GetNOMBRE_PROVEEDORIsNull write SetNOMBRE_PROVEEDORIsNull; + property NIF_CIF_PROVEEDOR: String read GetNIF_CIF_PROVEEDORValue write SetNIF_CIF_PROVEEDORValue; + property NIF_CIF_PROVEEDORIsNull: Boolean read GetNIF_CIF_PROVEEDORIsNull write SetNIF_CIF_PROVEEDORIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IRecibosProveedor } + IRecibosProveedor = interface(IDAStronglyTypedDataTable) + ['{A7B468FD-DB65-4615-A6C5-1E2807D62ABE}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_RECIBO_COMPENSADOValue: Integer; + procedure SetID_RECIBO_COMPENSADOValue(const aValue: Integer); + function GetID_RECIBO_COMPENSADOIsNull: Boolean; + procedure SetID_RECIBO_COMPENSADOIsNull(const aValue: Boolean); + function GetREFERENCIA_REC_COMPENSADOValue: String; + procedure SetREFERENCIA_REC_COMPENSADOValue(const aValue: String); + function GetREFERENCIA_REC_COMPENSADOIsNull: Boolean; + procedure SetREFERENCIA_REC_COMPENSADOIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetREFERENCIA_PROVEEDORValue: String; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); + function GetREFERENCIA_PROVEEDORIsNull: Boolean; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); + function GetSITUACIONValue: String; + procedure SetSITUACIONValue(const aValue: String); + function GetSITUACIONIsNull: Boolean; + procedure SetSITUACIONIsNull(const aValue: Boolean); + function GetID_FACTURAValue: Integer; + procedure SetID_FACTURAValue(const aValue: Integer); + function GetID_FACTURAIsNull: Boolean; + procedure SetID_FACTURAIsNull(const aValue: Boolean); + function GetID_REMESAValue: Integer; + procedure SetID_REMESAValue(const aValue: Integer); + function GetID_REMESAIsNull: Boolean; + procedure SetID_REMESAIsNull(const aValue: Boolean); + function GetREFERENCIA_REMESAValue: String; + procedure SetREFERENCIA_REMESAValue(const aValue: String); + function GetREFERENCIA_REMESAIsNull: Boolean; + procedure SetREFERENCIA_REMESAIsNull(const aValue: Boolean); + function GetFECHA_EMISIONValue: DateTime; + procedure SetFECHA_EMISIONValue(const aValue: DateTime); + function GetFECHA_EMISIONIsNull: Boolean; + procedure SetFECHA_EMISIONIsNull(const aValue: Boolean); + function GetFECHA_VENCIMIENTOValue: DateTime; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); + function GetFECHA_VENCIMIENTOIsNull: Boolean; + procedure SetFECHA_VENCIMIENTOIsNull(const aValue: Boolean); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetDESCRIPCIONIsNull: Boolean; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); + function GetOBSERVACIONESValue: String; + procedure SetOBSERVACIONESValue(const aValue: String); + function GetOBSERVACIONESIsNull: Boolean; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); + function GetIMPORTEValue: Currency; + procedure SetIMPORTEValue(const aValue: Currency); + function GetIMPORTEIsNull: Boolean; + procedure SetIMPORTEIsNull(const aValue: Boolean); + function GetOTROS_GASTOSValue: Currency; + procedure SetOTROS_GASTOSValue(const aValue: Currency); + function GetOTROS_GASTOSIsNull: Boolean; + procedure SetOTROS_GASTOSIsNull(const aValue: Boolean); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetIMPORTE_TOTALIsNull: Boolean; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); + function GetREFERENCIA_FACTURA_PROVValue: String; + procedure SetREFERENCIA_FACTURA_PROVValue(const aValue: String); + function GetREFERENCIA_FACTURA_PROVIsNull: Boolean; + procedure SetREFERENCIA_FACTURA_PROVIsNull(const aValue: Boolean); + function GetFECHA_FACTURAValue: DateTime; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); + function GetFECHA_FACTURAIsNull: Boolean; + procedure SetFECHA_FACTURAIsNull(const aValue: Boolean); + function GetFORMA_PAGO_FACTURAValue: String; + procedure SetFORMA_PAGO_FACTURAValue(const aValue: String); + function GetFORMA_PAGO_FACTURAIsNull: Boolean; + procedure SetFORMA_PAGO_FACTURAIsNull(const aValue: Boolean); + function GetIMPORTE_FACTURAValue: Currency; + procedure SetIMPORTE_FACTURAValue(const aValue: Currency); + function GetIMPORTE_FACTURAIsNull: Boolean; + procedure SetIMPORTE_FACTURAIsNull(const aValue: Boolean); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_EMPRESAIsNull: Boolean; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); + function GetDATOS_BANCARIOSValue: String; + procedure SetDATOS_BANCARIOSValue(const aValue: String); + function GetDATOS_BANCARIOSIsNull: Boolean; + procedure SetDATOS_BANCARIOSIsNull(const aValue: Boolean); + function GetID_PROVEEDORValue: Integer; + procedure SetID_PROVEEDORValue(const aValue: Integer); + function GetID_PROVEEDORIsNull: Boolean; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); + function GetNOMBRE_PROVEEDORValue: String; + procedure SetNOMBRE_PROVEEDORValue(const aValue: String); + function GetNOMBRE_PROVEEDORIsNull: Boolean; + procedure SetNOMBRE_PROVEEDORIsNull(const aValue: Boolean); + function GetNIF_CIF_PROVEEDORValue: String; + procedure SetNIF_CIF_PROVEEDORValue(const aValue: String); + function GetNIF_CIF_PROVEEDORIsNull: Boolean; + procedure SetNIF_CIF_PROVEEDORIsNull(const aValue: Boolean); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_ALTAIsNull: Boolean; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONIsNull: Boolean; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetUSUARIOIsNull: Boolean; + procedure SetUSUARIOIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_RECIBO_COMPENSADO: Integer read GetID_RECIBO_COMPENSADOValue write SetID_RECIBO_COMPENSADOValue; + property ID_RECIBO_COMPENSADOIsNull: Boolean read GetID_RECIBO_COMPENSADOIsNull write SetID_RECIBO_COMPENSADOIsNull; + property REFERENCIA_REC_COMPENSADO: String read GetREFERENCIA_REC_COMPENSADOValue write SetREFERENCIA_REC_COMPENSADOValue; + property REFERENCIA_REC_COMPENSADOIsNull: Boolean read GetREFERENCIA_REC_COMPENSADOIsNull write SetREFERENCIA_REC_COMPENSADOIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull: Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property SITUACIONIsNull: Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull: Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property ID_REMESA: Integer read GetID_REMESAValue write SetID_REMESAValue; + property ID_REMESAIsNull: Boolean read GetID_REMESAIsNull write SetID_REMESAIsNull; + property REFERENCIA_REMESA: String read GetREFERENCIA_REMESAValue write SetREFERENCIA_REMESAValue; + property REFERENCIA_REMESAIsNull: Boolean read GetREFERENCIA_REMESAIsNull write SetREFERENCIA_REMESAIsNull; + property FECHA_EMISION: DateTime read GetFECHA_EMISIONValue write SetFECHA_EMISIONValue; + property FECHA_EMISIONIsNull: Boolean read GetFECHA_EMISIONIsNull write SetFECHA_EMISIONIsNull; + property FECHA_VENCIMIENTO: DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + property FECHA_VENCIMIENTOIsNull: Boolean read GetFECHA_VENCIMIENTOIsNull write SetFECHA_VENCIMIENTOIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property OBSERVACIONES: String read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property OBSERVACIONESIsNull: Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property IMPORTE: Currency read GetIMPORTEValue write SetIMPORTEValue; + property IMPORTEIsNull: Boolean read GetIMPORTEIsNull write SetIMPORTEIsNull; + property OTROS_GASTOS: Currency read GetOTROS_GASTOSValue write SetOTROS_GASTOSValue; + property OTROS_GASTOSIsNull: Boolean read GetOTROS_GASTOSIsNull write SetOTROS_GASTOSIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property REFERENCIA_FACTURA_PROV: String read GetREFERENCIA_FACTURA_PROVValue write SetREFERENCIA_FACTURA_PROVValue; + property REFERENCIA_FACTURA_PROVIsNull: Boolean read GetREFERENCIA_FACTURA_PROVIsNull write SetREFERENCIA_FACTURA_PROVIsNull; + property FECHA_FACTURA: DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property FECHA_FACTURAIsNull: Boolean read GetFECHA_FACTURAIsNull write SetFECHA_FACTURAIsNull; + property FORMA_PAGO_FACTURA: String read GetFORMA_PAGO_FACTURAValue write SetFORMA_PAGO_FACTURAValue; + property FORMA_PAGO_FACTURAIsNull: Boolean read GetFORMA_PAGO_FACTURAIsNull write SetFORMA_PAGO_FACTURAIsNull; + property IMPORTE_FACTURA: Currency read GetIMPORTE_FACTURAValue write SetIMPORTE_FACTURAValue; + property IMPORTE_FACTURAIsNull: Boolean read GetIMPORTE_FACTURAIsNull write SetIMPORTE_FACTURAIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property DATOS_BANCARIOS: String read GetDATOS_BANCARIOSValue write SetDATOS_BANCARIOSValue; + property DATOS_BANCARIOSIsNull: Boolean read GetDATOS_BANCARIOSIsNull write SetDATOS_BANCARIOSIsNull; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property NOMBRE_PROVEEDOR: String read GetNOMBRE_PROVEEDORValue write SetNOMBRE_PROVEEDORValue; + property NOMBRE_PROVEEDORIsNull: Boolean read GetNOMBRE_PROVEEDORIsNull write SetNOMBRE_PROVEEDORIsNull; + property NIF_CIF_PROVEEDOR: String read GetNIF_CIF_PROVEEDORValue write SetNIF_CIF_PROVEEDORValue; + property NIF_CIF_PROVEEDORIsNull: Boolean read GetNIF_CIF_PROVEEDORIsNull write SetNIF_CIF_PROVEEDORIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + end; + + { TRecibosProveedorDataTableRules } + TRecibosProveedorDataTableRules = class(TIntfObjectDADataTableRules, IRecibosProveedor) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_RECIBO_COMPENSADOValue: Integer; virtual; + procedure SetID_RECIBO_COMPENSADOValue(const aValue: Integer); virtual; + function GetID_RECIBO_COMPENSADOIsNull: Boolean; virtual; + procedure SetID_RECIBO_COMPENSADOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_REC_COMPENSADOValue: String; virtual; + procedure SetREFERENCIA_REC_COMPENSADOValue(const aValue: String); virtual; + function GetREFERENCIA_REC_COMPENSADOIsNull: Boolean; virtual; + procedure SetREFERENCIA_REC_COMPENSADOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + function GetREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetSITUACIONValue: String; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + function GetSITUACIONIsNull: Boolean; virtual; + procedure SetSITUACIONIsNull(const aValue: Boolean); virtual; + function GetID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetID_FACTURAIsNull: Boolean; virtual; + procedure SetID_FACTURAIsNull(const aValue: Boolean); virtual; + function GetID_REMESAValue: Integer; virtual; + procedure SetID_REMESAValue(const aValue: Integer); virtual; + function GetID_REMESAIsNull: Boolean; virtual; + procedure SetID_REMESAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_REMESAValue: String; virtual; + procedure SetREFERENCIA_REMESAValue(const aValue: String); virtual; + function GetREFERENCIA_REMESAIsNull: Boolean; virtual; + procedure SetREFERENCIA_REMESAIsNull(const aValue: Boolean); virtual; + function GetFECHA_EMISIONValue: DateTime; virtual; + procedure SetFECHA_EMISIONValue(const aValue: DateTime); virtual; + function GetFECHA_EMISIONIsNull: Boolean; virtual; + procedure SetFECHA_EMISIONIsNull(const aValue: Boolean); virtual; + function GetFECHA_VENCIMIENTOValue: DateTime; virtual; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); virtual; + function GetFECHA_VENCIMIENTOIsNull: Boolean; virtual; + procedure SetFECHA_VENCIMIENTOIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + function GetOBSERVACIONESValue: String; virtual; + procedure SetOBSERVACIONESValue(const aValue: String); virtual; + function GetOBSERVACIONESIsNull: Boolean; virtual; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); virtual; + function GetIMPORTEValue: Currency; virtual; + procedure SetIMPORTEValue(const aValue: Currency); virtual; + function GetIMPORTEIsNull: Boolean; virtual; + procedure SetIMPORTEIsNull(const aValue: Boolean); virtual; + function GetOTROS_GASTOSValue: Currency; virtual; + procedure SetOTROS_GASTOSValue(const aValue: Currency); virtual; + function GetOTROS_GASTOSIsNull: Boolean; virtual; + procedure SetOTROS_GASTOSIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_FACTURA_PROVValue: String; virtual; + procedure SetREFERENCIA_FACTURA_PROVValue(const aValue: String); virtual; + function GetREFERENCIA_FACTURA_PROVIsNull: Boolean; virtual; + procedure SetREFERENCIA_FACTURA_PROVIsNull(const aValue: Boolean); virtual; + function GetFECHA_FACTURAValue: DateTime; virtual; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); virtual; + function GetFECHA_FACTURAIsNull: Boolean; virtual; + procedure SetFECHA_FACTURAIsNull(const aValue: Boolean); virtual; + function GetFORMA_PAGO_FACTURAValue: String; virtual; + procedure SetFORMA_PAGO_FACTURAValue(const aValue: String); virtual; + function GetFORMA_PAGO_FACTURAIsNull: Boolean; virtual; + procedure SetFORMA_PAGO_FACTURAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_FACTURAValue: Currency; virtual; + procedure SetIMPORTE_FACTURAValue(const aValue: Currency); virtual; + function GetIMPORTE_FACTURAIsNull: Boolean; virtual; + procedure SetIMPORTE_FACTURAIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetDATOS_BANCARIOSValue: String; virtual; + procedure SetDATOS_BANCARIOSValue(const aValue: String); virtual; + function GetDATOS_BANCARIOSIsNull: Boolean; virtual; + procedure SetDATOS_BANCARIOSIsNull(const aValue: Boolean); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetID_PROVEEDORIsNull: Boolean; virtual; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetNOMBRE_PROVEEDORValue: String; virtual; + procedure SetNOMBRE_PROVEEDORValue(const aValue: String); virtual; + function GetNOMBRE_PROVEEDORIsNull: Boolean; virtual; + procedure SetNOMBRE_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetNIF_CIF_PROVEEDORValue: String; virtual; + procedure SetNIF_CIF_PROVEEDORValue(const aValue: String); virtual; + function GetNIF_CIF_PROVEEDORIsNull: Boolean; virtual; + procedure SetNIF_CIF_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_RECIBO_COMPENSADO: Integer read GetID_RECIBO_COMPENSADOValue write SetID_RECIBO_COMPENSADOValue; + property ID_RECIBO_COMPENSADOIsNull: Boolean read GetID_RECIBO_COMPENSADOIsNull write SetID_RECIBO_COMPENSADOIsNull; + property REFERENCIA_REC_COMPENSADO: String read GetREFERENCIA_REC_COMPENSADOValue write SetREFERENCIA_REC_COMPENSADOValue; + property REFERENCIA_REC_COMPENSADOIsNull: Boolean read GetREFERENCIA_REC_COMPENSADOIsNull write SetREFERENCIA_REC_COMPENSADOIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull: Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue; + property SITUACIONIsNull: Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull: Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property ID_REMESA: Integer read GetID_REMESAValue write SetID_REMESAValue; + property ID_REMESAIsNull: Boolean read GetID_REMESAIsNull write SetID_REMESAIsNull; + property REFERENCIA_REMESA: String read GetREFERENCIA_REMESAValue write SetREFERENCIA_REMESAValue; + property REFERENCIA_REMESAIsNull: Boolean read GetREFERENCIA_REMESAIsNull write SetREFERENCIA_REMESAIsNull; + property FECHA_EMISION: DateTime read GetFECHA_EMISIONValue write SetFECHA_EMISIONValue; + property FECHA_EMISIONIsNull: Boolean read GetFECHA_EMISIONIsNull write SetFECHA_EMISIONIsNull; + property FECHA_VENCIMIENTO: DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + property FECHA_VENCIMIENTOIsNull: Boolean read GetFECHA_VENCIMIENTOIsNull write SetFECHA_VENCIMIENTOIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property OBSERVACIONES: String read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property OBSERVACIONESIsNull: Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property IMPORTE: Currency read GetIMPORTEValue write SetIMPORTEValue; + property IMPORTEIsNull: Boolean read GetIMPORTEIsNull write SetIMPORTEIsNull; + property OTROS_GASTOS: Currency read GetOTROS_GASTOSValue write SetOTROS_GASTOSValue; + property OTROS_GASTOSIsNull: Boolean read GetOTROS_GASTOSIsNull write SetOTROS_GASTOSIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property REFERENCIA_FACTURA_PROV: String read GetREFERENCIA_FACTURA_PROVValue write SetREFERENCIA_FACTURA_PROVValue; + property REFERENCIA_FACTURA_PROVIsNull: Boolean read GetREFERENCIA_FACTURA_PROVIsNull write SetREFERENCIA_FACTURA_PROVIsNull; + property FECHA_FACTURA: DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property FECHA_FACTURAIsNull: Boolean read GetFECHA_FACTURAIsNull write SetFECHA_FACTURAIsNull; + property FORMA_PAGO_FACTURA: String read GetFORMA_PAGO_FACTURAValue write SetFORMA_PAGO_FACTURAValue; + property FORMA_PAGO_FACTURAIsNull: Boolean read GetFORMA_PAGO_FACTURAIsNull write SetFORMA_PAGO_FACTURAIsNull; + property IMPORTE_FACTURA: Currency read GetIMPORTE_FACTURAValue write SetIMPORTE_FACTURAValue; + property IMPORTE_FACTURAIsNull: Boolean read GetIMPORTE_FACTURAIsNull write SetIMPORTE_FACTURAIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property DATOS_BANCARIOS: String read GetDATOS_BANCARIOSValue write SetDATOS_BANCARIOSValue; + property DATOS_BANCARIOSIsNull: Boolean read GetDATOS_BANCARIOSIsNull write SetDATOS_BANCARIOSIsNull; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property NOMBRE_PROVEEDOR: String read GetNOMBRE_PROVEEDORValue write SetNOMBRE_PROVEEDORValue; + property NOMBRE_PROVEEDORIsNull: Boolean read GetNOMBRE_PROVEEDORIsNull write SetNOMBRE_PROVEEDORIsNull; + property NIF_CIF_PROVEEDOR: String read GetNIF_CIF_PROVEEDORValue write SetNIF_CIF_PROVEEDORValue; + property NIF_CIF_PROVEEDORIsNull: Boolean read GetNIF_CIF_PROVEEDORIsNull write SetNIF_CIF_PROVEEDORIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IPagosProveedor } + IPagosProveedor = interface(IDAStronglyTypedDataTable) + ['{6A3FB0F1-D6B5-49C4-A298-F046CF5DA655}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_RECIBOValue: Integer; + procedure SetID_RECIBOValue(const aValue: Integer); + function GetID_RECIBOIsNull: Boolean; + procedure SetID_RECIBOIsNull(const aValue: Boolean); + function GetTIPOValue: String; + procedure SetTIPOValue(const aValue: String); + function GetTIPOIsNull: Boolean; + procedure SetTIPOIsNull(const aValue: Boolean); + function GetFECHA_PAGOValue: DateTime; + procedure SetFECHA_PAGOValue(const aValue: DateTime); + function GetFECHA_PAGOIsNull: Boolean; + procedure SetFECHA_PAGOIsNull(const aValue: Boolean); + function GetTITULARValue: String; + procedure SetTITULARValue(const aValue: String); + function GetTITULARIsNull: Boolean; + procedure SetTITULARIsNull(const aValue: Boolean); + function GetENTIDADValue: String; + procedure SetENTIDADValue(const aValue: String); + function GetENTIDADIsNull: Boolean; + procedure SetENTIDADIsNull(const aValue: Boolean); + function GetSUCURSALValue: String; + procedure SetSUCURSALValue(const aValue: String); + function GetSUCURSALIsNull: Boolean; + procedure SetSUCURSALIsNull(const aValue: Boolean); + function GetDCValue: String; + procedure SetDCValue(const aValue: String); + function GetDCIsNull: Boolean; + procedure SetDCIsNull(const aValue: Boolean); + function GetCUENTAValue: String; + procedure SetCUENTAValue(const aValue: String); + function GetCUENTAIsNull: Boolean; + procedure SetCUENTAIsNull(const aValue: Boolean); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_ALTAIsNull: Boolean; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONIsNull: Boolean; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetUSUARIOIsNull: Boolean; + procedure SetUSUARIOIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_RECIBO: Integer read GetID_RECIBOValue write SetID_RECIBOValue; + property ID_RECIBOIsNull: Boolean read GetID_RECIBOIsNull write SetID_RECIBOIsNull; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull: Boolean read GetTIPOIsNull write SetTIPOIsNull; + property FECHA_PAGO: DateTime read GetFECHA_PAGOValue write SetFECHA_PAGOValue; + property FECHA_PAGOIsNull: Boolean read GetFECHA_PAGOIsNull write SetFECHA_PAGOIsNull; + property TITULAR: String read GetTITULARValue write SetTITULARValue; + property TITULARIsNull: Boolean read GetTITULARIsNull write SetTITULARIsNull; + property ENTIDAD: String read GetENTIDADValue write SetENTIDADValue; + property ENTIDADIsNull: Boolean read GetENTIDADIsNull write SetENTIDADIsNull; + property SUCURSAL: String read GetSUCURSALValue write SetSUCURSALValue; + property SUCURSALIsNull: Boolean read GetSUCURSALIsNull write SetSUCURSALIsNull; + property DC: String read GetDCValue write SetDCValue; + property DCIsNull: Boolean read GetDCIsNull write SetDCIsNull; + property CUENTA: String read GetCUENTAValue write SetCUENTAValue; + property CUENTAIsNull: Boolean read GetCUENTAIsNull write SetCUENTAIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + end; + + { TPagosProveedorDataTableRules } + TPagosProveedorDataTableRules = class(TIntfObjectDADataTableRules, IPagosProveedor) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_RECIBOValue: Integer; virtual; + procedure SetID_RECIBOValue(const aValue: Integer); virtual; + function GetID_RECIBOIsNull: Boolean; virtual; + procedure SetID_RECIBOIsNull(const aValue: Boolean); virtual; + function GetTIPOValue: String; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + function GetTIPOIsNull: Boolean; virtual; + procedure SetTIPOIsNull(const aValue: Boolean); virtual; + function GetFECHA_PAGOValue: DateTime; virtual; + procedure SetFECHA_PAGOValue(const aValue: DateTime); virtual; + function GetFECHA_PAGOIsNull: Boolean; virtual; + procedure SetFECHA_PAGOIsNull(const aValue: Boolean); virtual; + function GetTITULARValue: String; virtual; + procedure SetTITULARValue(const aValue: String); virtual; + function GetTITULARIsNull: Boolean; virtual; + procedure SetTITULARIsNull(const aValue: Boolean); virtual; + function GetENTIDADValue: String; virtual; + procedure SetENTIDADValue(const aValue: String); virtual; + function GetENTIDADIsNull: Boolean; virtual; + procedure SetENTIDADIsNull(const aValue: Boolean); virtual; + function GetSUCURSALValue: String; virtual; + procedure SetSUCURSALValue(const aValue: String); virtual; + function GetSUCURSALIsNull: Boolean; virtual; + procedure SetSUCURSALIsNull(const aValue: Boolean); virtual; + function GetDCValue: String; virtual; + procedure SetDCValue(const aValue: String); virtual; + function GetDCIsNull: Boolean; virtual; + procedure SetDCIsNull(const aValue: Boolean); virtual; + function GetCUENTAValue: String; virtual; + procedure SetCUENTAValue(const aValue: String); virtual; + function GetCUENTAIsNull: Boolean; virtual; + procedure SetCUENTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_RECIBO: Integer read GetID_RECIBOValue write SetID_RECIBOValue; + property ID_RECIBOIsNull: Boolean read GetID_RECIBOIsNull write SetID_RECIBOIsNull; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull: Boolean read GetTIPOIsNull write SetTIPOIsNull; + property FECHA_PAGO: DateTime read GetFECHA_PAGOValue write SetFECHA_PAGOValue; + property FECHA_PAGOIsNull: Boolean read GetFECHA_PAGOIsNull write SetFECHA_PAGOIsNull; + property TITULAR: String read GetTITULARValue write SetTITULARValue; + property TITULARIsNull: Boolean read GetTITULARIsNull write SetTITULARIsNull; + property ENTIDAD: String read GetENTIDADValue write SetENTIDADValue; + property ENTIDADIsNull: Boolean read GetENTIDADIsNull write SetENTIDADIsNull; + property SUCURSAL: String read GetSUCURSALValue write SetSUCURSALValue; + property SUCURSALIsNull: Boolean read GetSUCURSALIsNull write SetSUCURSALIsNull; + property DC: String read GetDCValue write SetDCValue; + property DCIsNull: Boolean read GetDCIsNull write SetDCIsNull; + property CUENTA: String read GetCUENTAValue write SetCUENTAValue; + property CUENTAIsNull: Boolean read GetCUENTAIsNull write SetCUENTAIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants, uROBinaryHelpers; + +{ TListaAnosRecibosDataTableRules } +constructor TListaAnosRecibosDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TListaAnosRecibosDataTableRules.Destroy; +begin + inherited; +end; + +function TListaAnosRecibosDataTableRules.GetANOValue: String; +begin + result := DataTable.Fields[idx_ListaAnosRecibosANO].AsString; +end; + +procedure TListaAnosRecibosDataTableRules.SetANOValue(const aValue: String); +begin + DataTable.Fields[idx_ListaAnosRecibosANO].AsString := aValue; +end; + +function TListaAnosRecibosDataTableRules.GetANOIsNull: boolean; +begin + result := DataTable.Fields[idx_ListaAnosRecibosANO].IsNull; +end; + +procedure TListaAnosRecibosDataTableRules.SetANOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ListaAnosRecibosANO].AsVariant := Null; +end; + + +{ TRecibosCompensadosProvDataTableRules } +constructor TRecibosCompensadosProvDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TRecibosCompensadosProvDataTableRules.Destroy; +begin + inherited; +end; + +function TRecibosCompensadosProvDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvID].AsInteger; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_RecibosCompensadosProvID].AsInteger := aValue; +end; + +function TRecibosCompensadosProvDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvID].IsNull; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosProvID].AsVariant := Null; +end; + +function TRecibosCompensadosProvDataTableRules.GetID_RECIBO_COMPENSADOValue: Integer; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvID_RECIBO_COMPENSADO].AsInteger; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetID_RECIBO_COMPENSADOValue(const aValue: Integer); +begin + DataTable.Fields[idx_RecibosCompensadosProvID_RECIBO_COMPENSADO].AsInteger := aValue; +end; + +function TRecibosCompensadosProvDataTableRules.GetID_RECIBO_COMPENSADOIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvID_RECIBO_COMPENSADO].IsNull; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetID_RECIBO_COMPENSADOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosProvID_RECIBO_COMPENSADO].AsVariant := Null; +end; + +function TRecibosCompensadosProvDataTableRules.GetREFERENCIA_REC_COMPENSADOValue: String; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvREFERENCIA_REC_COMPENSADO].AsString; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetREFERENCIA_REC_COMPENSADOValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCompensadosProvREFERENCIA_REC_COMPENSADO].AsString := aValue; +end; + +function TRecibosCompensadosProvDataTableRules.GetREFERENCIA_REC_COMPENSADOIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvREFERENCIA_REC_COMPENSADO].IsNull; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetREFERENCIA_REC_COMPENSADOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosProvREFERENCIA_REC_COMPENSADO].AsVariant := Null; +end; + +function TRecibosCompensadosProvDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvREFERENCIA].AsString; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCompensadosProvREFERENCIA].AsString := aValue; +end; + +function TRecibosCompensadosProvDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvREFERENCIA].IsNull; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosProvREFERENCIA].AsVariant := Null; +end; + +function TRecibosCompensadosProvDataTableRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvREFERENCIA_PROVEEDOR].AsString; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCompensadosProvREFERENCIA_PROVEEDOR].AsString := aValue; +end; + +function TRecibosCompensadosProvDataTableRules.GetREFERENCIA_PROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvREFERENCIA_PROVEEDOR].IsNull; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosProvREFERENCIA_PROVEEDOR].AsVariant := Null; +end; + +function TRecibosCompensadosProvDataTableRules.GetSITUACIONValue: String; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvSITUACION].AsString; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetSITUACIONValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCompensadosProvSITUACION].AsString := aValue; +end; + +function TRecibosCompensadosProvDataTableRules.GetSITUACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvSITUACION].IsNull; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetSITUACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosProvSITUACION].AsVariant := Null; +end; + +function TRecibosCompensadosProvDataTableRules.GetID_FACTURAValue: Integer; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvID_FACTURA].AsInteger; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetID_FACTURAValue(const aValue: Integer); +begin + DataTable.Fields[idx_RecibosCompensadosProvID_FACTURA].AsInteger := aValue; +end; + +function TRecibosCompensadosProvDataTableRules.GetID_FACTURAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvID_FACTURA].IsNull; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetID_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosProvID_FACTURA].AsVariant := Null; +end; + +function TRecibosCompensadosProvDataTableRules.GetID_REMESAValue: Integer; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvID_REMESA].AsInteger; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetID_REMESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_RecibosCompensadosProvID_REMESA].AsInteger := aValue; +end; + +function TRecibosCompensadosProvDataTableRules.GetID_REMESAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvID_REMESA].IsNull; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetID_REMESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosProvID_REMESA].AsVariant := Null; +end; + +function TRecibosCompensadosProvDataTableRules.GetREFERENCIA_REMESAValue: String; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvREFERENCIA_REMESA].AsString; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetREFERENCIA_REMESAValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCompensadosProvREFERENCIA_REMESA].AsString := aValue; +end; + +function TRecibosCompensadosProvDataTableRules.GetREFERENCIA_REMESAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvREFERENCIA_REMESA].IsNull; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetREFERENCIA_REMESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosProvREFERENCIA_REMESA].AsVariant := Null; +end; + +function TRecibosCompensadosProvDataTableRules.GetFECHA_EMISIONValue: DateTime; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvFECHA_EMISION].AsDateTime; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetFECHA_EMISIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RecibosCompensadosProvFECHA_EMISION].AsDateTime := aValue; +end; + +function TRecibosCompensadosProvDataTableRules.GetFECHA_EMISIONIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvFECHA_EMISION].IsNull; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetFECHA_EMISIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosProvFECHA_EMISION].AsVariant := Null; +end; + +function TRecibosCompensadosProvDataTableRules.GetFECHA_VENCIMIENTOValue: DateTime; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvFECHA_VENCIMIENTO].AsDateTime; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetFECHA_VENCIMIENTOValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RecibosCompensadosProvFECHA_VENCIMIENTO].AsDateTime := aValue; +end; + +function TRecibosCompensadosProvDataTableRules.GetFECHA_VENCIMIENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvFECHA_VENCIMIENTO].IsNull; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetFECHA_VENCIMIENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosProvFECHA_VENCIMIENTO].AsVariant := Null; +end; + +function TRecibosCompensadosProvDataTableRules.GetDESCRIPCIONValue: String; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvDESCRIPCION].AsString; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetDESCRIPCIONValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCompensadosProvDESCRIPCION].AsString := aValue; +end; + +function TRecibosCompensadosProvDataTableRules.GetDESCRIPCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvDESCRIPCION].IsNull; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosProvDESCRIPCION].AsVariant := Null; +end; + +function TRecibosCompensadosProvDataTableRules.GetOBSERVACIONESValue: String; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvOBSERVACIONES].AsString; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetOBSERVACIONESValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCompensadosProvOBSERVACIONES].AsString := aValue; +end; + +function TRecibosCompensadosProvDataTableRules.GetOBSERVACIONESIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvOBSERVACIONES].IsNull; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetOBSERVACIONESIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosProvOBSERVACIONES].AsVariant := Null; +end; + +function TRecibosCompensadosProvDataTableRules.GetIMPORTEValue: Currency; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvIMPORTE].AsCurrency; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetIMPORTEValue(const aValue: Currency); +begin + DataTable.Fields[idx_RecibosCompensadosProvIMPORTE].AsCurrency := aValue; +end; + +function TRecibosCompensadosProvDataTableRules.GetIMPORTEIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvIMPORTE].IsNull; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetIMPORTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosProvIMPORTE].AsVariant := Null; +end; + +function TRecibosCompensadosProvDataTableRules.GetOTROS_GASTOSValue: Currency; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvOTROS_GASTOS].AsCurrency; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetOTROS_GASTOSValue(const aValue: Currency); +begin + DataTable.Fields[idx_RecibosCompensadosProvOTROS_GASTOS].AsCurrency := aValue; +end; + +function TRecibosCompensadosProvDataTableRules.GetOTROS_GASTOSIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvOTROS_GASTOS].IsNull; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetOTROS_GASTOSIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosProvOTROS_GASTOS].AsVariant := Null; +end; + +function TRecibosCompensadosProvDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvIMPORTE_TOTAL].AsCurrency; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_RecibosCompensadosProvIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TRecibosCompensadosProvDataTableRules.GetIMPORTE_TOTALIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvIMPORTE_TOTAL].IsNull; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosProvIMPORTE_TOTAL].AsVariant := Null; +end; + +function TRecibosCompensadosProvDataTableRules.GetREFERENCIA_FACTURA_PROVValue: String; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvREFERENCIA_FACTURA_PROV].AsString; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetREFERENCIA_FACTURA_PROVValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCompensadosProvREFERENCIA_FACTURA_PROV].AsString := aValue; +end; + +function TRecibosCompensadosProvDataTableRules.GetREFERENCIA_FACTURA_PROVIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvREFERENCIA_FACTURA_PROV].IsNull; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetREFERENCIA_FACTURA_PROVIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosProvREFERENCIA_FACTURA_PROV].AsVariant := Null; +end; + +function TRecibosCompensadosProvDataTableRules.GetFECHA_FACTURAValue: DateTime; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvFECHA_FACTURA].AsDateTime; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetFECHA_FACTURAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RecibosCompensadosProvFECHA_FACTURA].AsDateTime := aValue; +end; + +function TRecibosCompensadosProvDataTableRules.GetFECHA_FACTURAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvFECHA_FACTURA].IsNull; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetFECHA_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosProvFECHA_FACTURA].AsVariant := Null; +end; + +function TRecibosCompensadosProvDataTableRules.GetFORMA_PAGO_FACTURAValue: String; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvFORMA_PAGO_FACTURA].AsString; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetFORMA_PAGO_FACTURAValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCompensadosProvFORMA_PAGO_FACTURA].AsString := aValue; +end; + +function TRecibosCompensadosProvDataTableRules.GetFORMA_PAGO_FACTURAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvFORMA_PAGO_FACTURA].IsNull; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetFORMA_PAGO_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosProvFORMA_PAGO_FACTURA].AsVariant := Null; +end; + +function TRecibosCompensadosProvDataTableRules.GetIMPORTE_FACTURAValue: Currency; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvIMPORTE_FACTURA].AsCurrency; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetIMPORTE_FACTURAValue(const aValue: Currency); +begin + DataTable.Fields[idx_RecibosCompensadosProvIMPORTE_FACTURA].AsCurrency := aValue; +end; + +function TRecibosCompensadosProvDataTableRules.GetIMPORTE_FACTURAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvIMPORTE_FACTURA].IsNull; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetIMPORTE_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosProvIMPORTE_FACTURA].AsVariant := Null; +end; + +function TRecibosCompensadosProvDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvID_EMPRESA].AsInteger; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_RecibosCompensadosProvID_EMPRESA].AsInteger := aValue; +end; + +function TRecibosCompensadosProvDataTableRules.GetID_EMPRESAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvID_EMPRESA].IsNull; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosProvID_EMPRESA].AsVariant := Null; +end; + +function TRecibosCompensadosProvDataTableRules.GetDATOS_BANCARIOSValue: String; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvDATOS_BANCARIOS].AsString; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetDATOS_BANCARIOSValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCompensadosProvDATOS_BANCARIOS].AsString := aValue; +end; + +function TRecibosCompensadosProvDataTableRules.GetDATOS_BANCARIOSIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvDATOS_BANCARIOS].IsNull; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetDATOS_BANCARIOSIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosProvDATOS_BANCARIOS].AsVariant := Null; +end; + +function TRecibosCompensadosProvDataTableRules.GetID_PROVEEDORValue: Integer; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvID_PROVEEDOR].AsInteger; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + DataTable.Fields[idx_RecibosCompensadosProvID_PROVEEDOR].AsInteger := aValue; +end; + +function TRecibosCompensadosProvDataTableRules.GetID_PROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvID_PROVEEDOR].IsNull; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetID_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosProvID_PROVEEDOR].AsVariant := Null; +end; + +function TRecibosCompensadosProvDataTableRules.GetNOMBRE_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvNOMBRE_PROVEEDOR].AsString; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetNOMBRE_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCompensadosProvNOMBRE_PROVEEDOR].AsString := aValue; +end; + +function TRecibosCompensadosProvDataTableRules.GetNOMBRE_PROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvNOMBRE_PROVEEDOR].IsNull; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetNOMBRE_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosProvNOMBRE_PROVEEDOR].AsVariant := Null; +end; + +function TRecibosCompensadosProvDataTableRules.GetNIF_CIF_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvNIF_CIF_PROVEEDOR].AsString; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetNIF_CIF_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCompensadosProvNIF_CIF_PROVEEDOR].AsString := aValue; +end; + +function TRecibosCompensadosProvDataTableRules.GetNIF_CIF_PROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvNIF_CIF_PROVEEDOR].IsNull; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetNIF_CIF_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosProvNIF_CIF_PROVEEDOR].AsVariant := Null; +end; + +function TRecibosCompensadosProvDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvFECHA_ALTA].AsDateTime; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RecibosCompensadosProvFECHA_ALTA].AsDateTime := aValue; +end; + +function TRecibosCompensadosProvDataTableRules.GetFECHA_ALTAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvFECHA_ALTA].IsNull; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosProvFECHA_ALTA].AsVariant := Null; +end; + +function TRecibosCompensadosProvDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvFECHA_MODIFICACION].AsDateTime; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RecibosCompensadosProvFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TRecibosCompensadosProvDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvFECHA_MODIFICACION].IsNull; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosProvFECHA_MODIFICACION].AsVariant := Null; +end; + +function TRecibosCompensadosProvDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvUSUARIO].AsString; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosCompensadosProvUSUARIO].AsString := aValue; +end; + +function TRecibosCompensadosProvDataTableRules.GetUSUARIOIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosCompensadosProvUSUARIO].IsNull; +end; + +procedure TRecibosCompensadosProvDataTableRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosCompensadosProvUSUARIO].AsVariant := Null; +end; + + +{ TRecibosProveedorDataTableRules } +constructor TRecibosProveedorDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TRecibosProveedorDataTableRules.Destroy; +begin + inherited; +end; + +function TRecibosProveedorDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_RecibosProveedorID].AsInteger; +end; + +procedure TRecibosProveedorDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_RecibosProveedorID].AsInteger := aValue; +end; + +function TRecibosProveedorDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosProveedorID].IsNull; +end; + +procedure TRecibosProveedorDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosProveedorID].AsVariant := Null; +end; + +function TRecibosProveedorDataTableRules.GetID_RECIBO_COMPENSADOValue: Integer; +begin + result := DataTable.Fields[idx_RecibosProveedorID_RECIBO_COMPENSADO].AsInteger; +end; + +procedure TRecibosProveedorDataTableRules.SetID_RECIBO_COMPENSADOValue(const aValue: Integer); +begin + DataTable.Fields[idx_RecibosProveedorID_RECIBO_COMPENSADO].AsInteger := aValue; +end; + +function TRecibosProveedorDataTableRules.GetID_RECIBO_COMPENSADOIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosProveedorID_RECIBO_COMPENSADO].IsNull; +end; + +procedure TRecibosProveedorDataTableRules.SetID_RECIBO_COMPENSADOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosProveedorID_RECIBO_COMPENSADO].AsVariant := Null; +end; + +function TRecibosProveedorDataTableRules.GetREFERENCIA_REC_COMPENSADOValue: String; +begin + result := DataTable.Fields[idx_RecibosProveedorREFERENCIA_REC_COMPENSADO].AsString; +end; + +procedure TRecibosProveedorDataTableRules.SetREFERENCIA_REC_COMPENSADOValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosProveedorREFERENCIA_REC_COMPENSADO].AsString := aValue; +end; + +function TRecibosProveedorDataTableRules.GetREFERENCIA_REC_COMPENSADOIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosProveedorREFERENCIA_REC_COMPENSADO].IsNull; +end; + +procedure TRecibosProveedorDataTableRules.SetREFERENCIA_REC_COMPENSADOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosProveedorREFERENCIA_REC_COMPENSADO].AsVariant := Null; +end; + +function TRecibosProveedorDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_RecibosProveedorREFERENCIA].AsString; +end; + +procedure TRecibosProveedorDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosProveedorREFERENCIA].AsString := aValue; +end; + +function TRecibosProveedorDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosProveedorREFERENCIA].IsNull; +end; + +procedure TRecibosProveedorDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosProveedorREFERENCIA].AsVariant := Null; +end; + +function TRecibosProveedorDataTableRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_RecibosProveedorREFERENCIA_PROVEEDOR].AsString; +end; + +procedure TRecibosProveedorDataTableRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosProveedorREFERENCIA_PROVEEDOR].AsString := aValue; +end; + +function TRecibosProveedorDataTableRules.GetREFERENCIA_PROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosProveedorREFERENCIA_PROVEEDOR].IsNull; +end; + +procedure TRecibosProveedorDataTableRules.SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosProveedorREFERENCIA_PROVEEDOR].AsVariant := Null; +end; + +function TRecibosProveedorDataTableRules.GetSITUACIONValue: String; +begin + result := DataTable.Fields[idx_RecibosProveedorSITUACION].AsString; +end; + +procedure TRecibosProveedorDataTableRules.SetSITUACIONValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosProveedorSITUACION].AsString := aValue; +end; + +function TRecibosProveedorDataTableRules.GetSITUACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosProveedorSITUACION].IsNull; +end; + +procedure TRecibosProveedorDataTableRules.SetSITUACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosProveedorSITUACION].AsVariant := Null; +end; + +function TRecibosProveedorDataTableRules.GetID_FACTURAValue: Integer; +begin + result := DataTable.Fields[idx_RecibosProveedorID_FACTURA].AsInteger; +end; + +procedure TRecibosProveedorDataTableRules.SetID_FACTURAValue(const aValue: Integer); +begin + DataTable.Fields[idx_RecibosProveedorID_FACTURA].AsInteger := aValue; +end; + +function TRecibosProveedorDataTableRules.GetID_FACTURAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosProveedorID_FACTURA].IsNull; +end; + +procedure TRecibosProveedorDataTableRules.SetID_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosProveedorID_FACTURA].AsVariant := Null; +end; + +function TRecibosProveedorDataTableRules.GetID_REMESAValue: Integer; +begin + result := DataTable.Fields[idx_RecibosProveedorID_REMESA].AsInteger; +end; + +procedure TRecibosProveedorDataTableRules.SetID_REMESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_RecibosProveedorID_REMESA].AsInteger := aValue; +end; + +function TRecibosProveedorDataTableRules.GetID_REMESAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosProveedorID_REMESA].IsNull; +end; + +procedure TRecibosProveedorDataTableRules.SetID_REMESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosProveedorID_REMESA].AsVariant := Null; +end; + +function TRecibosProveedorDataTableRules.GetREFERENCIA_REMESAValue: String; +begin + result := DataTable.Fields[idx_RecibosProveedorREFERENCIA_REMESA].AsString; +end; + +procedure TRecibosProveedorDataTableRules.SetREFERENCIA_REMESAValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosProveedorREFERENCIA_REMESA].AsString := aValue; +end; + +function TRecibosProveedorDataTableRules.GetREFERENCIA_REMESAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosProveedorREFERENCIA_REMESA].IsNull; +end; + +procedure TRecibosProveedorDataTableRules.SetREFERENCIA_REMESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosProveedorREFERENCIA_REMESA].AsVariant := Null; +end; + +function TRecibosProveedorDataTableRules.GetFECHA_EMISIONValue: DateTime; +begin + result := DataTable.Fields[idx_RecibosProveedorFECHA_EMISION].AsDateTime; +end; + +procedure TRecibosProveedorDataTableRules.SetFECHA_EMISIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RecibosProveedorFECHA_EMISION].AsDateTime := aValue; +end; + +function TRecibosProveedorDataTableRules.GetFECHA_EMISIONIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosProveedorFECHA_EMISION].IsNull; +end; + +procedure TRecibosProveedorDataTableRules.SetFECHA_EMISIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosProveedorFECHA_EMISION].AsVariant := Null; +end; + +function TRecibosProveedorDataTableRules.GetFECHA_VENCIMIENTOValue: DateTime; +begin + result := DataTable.Fields[idx_RecibosProveedorFECHA_VENCIMIENTO].AsDateTime; +end; + +procedure TRecibosProveedorDataTableRules.SetFECHA_VENCIMIENTOValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RecibosProveedorFECHA_VENCIMIENTO].AsDateTime := aValue; +end; + +function TRecibosProveedorDataTableRules.GetFECHA_VENCIMIENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosProveedorFECHA_VENCIMIENTO].IsNull; +end; + +procedure TRecibosProveedorDataTableRules.SetFECHA_VENCIMIENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosProveedorFECHA_VENCIMIENTO].AsVariant := Null; +end; + +function TRecibosProveedorDataTableRules.GetDESCRIPCIONValue: String; +begin + result := DataTable.Fields[idx_RecibosProveedorDESCRIPCION].AsString; +end; + +procedure TRecibosProveedorDataTableRules.SetDESCRIPCIONValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosProveedorDESCRIPCION].AsString := aValue; +end; + +function TRecibosProveedorDataTableRules.GetDESCRIPCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosProveedorDESCRIPCION].IsNull; +end; + +procedure TRecibosProveedorDataTableRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosProveedorDESCRIPCION].AsVariant := Null; +end; + +function TRecibosProveedorDataTableRules.GetOBSERVACIONESValue: String; +begin + result := DataTable.Fields[idx_RecibosProveedorOBSERVACIONES].AsString; +end; + +procedure TRecibosProveedorDataTableRules.SetOBSERVACIONESValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosProveedorOBSERVACIONES].AsString := aValue; +end; + +function TRecibosProveedorDataTableRules.GetOBSERVACIONESIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosProveedorOBSERVACIONES].IsNull; +end; + +procedure TRecibosProveedorDataTableRules.SetOBSERVACIONESIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosProveedorOBSERVACIONES].AsVariant := Null; +end; + +function TRecibosProveedorDataTableRules.GetIMPORTEValue: Currency; +begin + result := DataTable.Fields[idx_RecibosProveedorIMPORTE].AsCurrency; +end; + +procedure TRecibosProveedorDataTableRules.SetIMPORTEValue(const aValue: Currency); +begin + DataTable.Fields[idx_RecibosProveedorIMPORTE].AsCurrency := aValue; +end; + +function TRecibosProveedorDataTableRules.GetIMPORTEIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosProveedorIMPORTE].IsNull; +end; + +procedure TRecibosProveedorDataTableRules.SetIMPORTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosProveedorIMPORTE].AsVariant := Null; +end; + +function TRecibosProveedorDataTableRules.GetOTROS_GASTOSValue: Currency; +begin + result := DataTable.Fields[idx_RecibosProveedorOTROS_GASTOS].AsCurrency; +end; + +procedure TRecibosProveedorDataTableRules.SetOTROS_GASTOSValue(const aValue: Currency); +begin + DataTable.Fields[idx_RecibosProveedorOTROS_GASTOS].AsCurrency := aValue; +end; + +function TRecibosProveedorDataTableRules.GetOTROS_GASTOSIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosProveedorOTROS_GASTOS].IsNull; +end; + +procedure TRecibosProveedorDataTableRules.SetOTROS_GASTOSIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosProveedorOTROS_GASTOS].AsVariant := Null; +end; + +function TRecibosProveedorDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_RecibosProveedorIMPORTE_TOTAL].AsCurrency; +end; + +procedure TRecibosProveedorDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_RecibosProveedorIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TRecibosProveedorDataTableRules.GetIMPORTE_TOTALIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosProveedorIMPORTE_TOTAL].IsNull; +end; + +procedure TRecibosProveedorDataTableRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosProveedorIMPORTE_TOTAL].AsVariant := Null; +end; + +function TRecibosProveedorDataTableRules.GetREFERENCIA_FACTURA_PROVValue: String; +begin + result := DataTable.Fields[idx_RecibosProveedorREFERENCIA_FACTURA_PROV].AsString; +end; + +procedure TRecibosProveedorDataTableRules.SetREFERENCIA_FACTURA_PROVValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosProveedorREFERENCIA_FACTURA_PROV].AsString := aValue; +end; + +function TRecibosProveedorDataTableRules.GetREFERENCIA_FACTURA_PROVIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosProveedorREFERENCIA_FACTURA_PROV].IsNull; +end; + +procedure TRecibosProveedorDataTableRules.SetREFERENCIA_FACTURA_PROVIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosProveedorREFERENCIA_FACTURA_PROV].AsVariant := Null; +end; + +function TRecibosProveedorDataTableRules.GetFECHA_FACTURAValue: DateTime; +begin + result := DataTable.Fields[idx_RecibosProveedorFECHA_FACTURA].AsDateTime; +end; + +procedure TRecibosProveedorDataTableRules.SetFECHA_FACTURAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RecibosProveedorFECHA_FACTURA].AsDateTime := aValue; +end; + +function TRecibosProveedorDataTableRules.GetFECHA_FACTURAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosProveedorFECHA_FACTURA].IsNull; +end; + +procedure TRecibosProveedorDataTableRules.SetFECHA_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosProveedorFECHA_FACTURA].AsVariant := Null; +end; + +function TRecibosProveedorDataTableRules.GetFORMA_PAGO_FACTURAValue: String; +begin + result := DataTable.Fields[idx_RecibosProveedorFORMA_PAGO_FACTURA].AsString; +end; + +procedure TRecibosProveedorDataTableRules.SetFORMA_PAGO_FACTURAValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosProveedorFORMA_PAGO_FACTURA].AsString := aValue; +end; + +function TRecibosProveedorDataTableRules.GetFORMA_PAGO_FACTURAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosProveedorFORMA_PAGO_FACTURA].IsNull; +end; + +procedure TRecibosProveedorDataTableRules.SetFORMA_PAGO_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosProveedorFORMA_PAGO_FACTURA].AsVariant := Null; +end; + +function TRecibosProveedorDataTableRules.GetIMPORTE_FACTURAValue: Currency; +begin + result := DataTable.Fields[idx_RecibosProveedorIMPORTE_FACTURA].AsCurrency; +end; + +procedure TRecibosProveedorDataTableRules.SetIMPORTE_FACTURAValue(const aValue: Currency); +begin + DataTable.Fields[idx_RecibosProveedorIMPORTE_FACTURA].AsCurrency := aValue; +end; + +function TRecibosProveedorDataTableRules.GetIMPORTE_FACTURAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosProveedorIMPORTE_FACTURA].IsNull; +end; + +procedure TRecibosProveedorDataTableRules.SetIMPORTE_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosProveedorIMPORTE_FACTURA].AsVariant := Null; +end; + +function TRecibosProveedorDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_RecibosProveedorID_EMPRESA].AsInteger; +end; + +procedure TRecibosProveedorDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_RecibosProveedorID_EMPRESA].AsInteger := aValue; +end; + +function TRecibosProveedorDataTableRules.GetID_EMPRESAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosProveedorID_EMPRESA].IsNull; +end; + +procedure TRecibosProveedorDataTableRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosProveedorID_EMPRESA].AsVariant := Null; +end; + +function TRecibosProveedorDataTableRules.GetDATOS_BANCARIOSValue: String; +begin + result := DataTable.Fields[idx_RecibosProveedorDATOS_BANCARIOS].AsString; +end; + +procedure TRecibosProveedorDataTableRules.SetDATOS_BANCARIOSValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosProveedorDATOS_BANCARIOS].AsString := aValue; +end; + +function TRecibosProveedorDataTableRules.GetDATOS_BANCARIOSIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosProveedorDATOS_BANCARIOS].IsNull; +end; + +procedure TRecibosProveedorDataTableRules.SetDATOS_BANCARIOSIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosProveedorDATOS_BANCARIOS].AsVariant := Null; +end; + +function TRecibosProveedorDataTableRules.GetID_PROVEEDORValue: Integer; +begin + result := DataTable.Fields[idx_RecibosProveedorID_PROVEEDOR].AsInteger; +end; + +procedure TRecibosProveedorDataTableRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + DataTable.Fields[idx_RecibosProveedorID_PROVEEDOR].AsInteger := aValue; +end; + +function TRecibosProveedorDataTableRules.GetID_PROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosProveedorID_PROVEEDOR].IsNull; +end; + +procedure TRecibosProveedorDataTableRules.SetID_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosProveedorID_PROVEEDOR].AsVariant := Null; +end; + +function TRecibosProveedorDataTableRules.GetNOMBRE_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_RecibosProveedorNOMBRE_PROVEEDOR].AsString; +end; + +procedure TRecibosProveedorDataTableRules.SetNOMBRE_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosProveedorNOMBRE_PROVEEDOR].AsString := aValue; +end; + +function TRecibosProveedorDataTableRules.GetNOMBRE_PROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosProveedorNOMBRE_PROVEEDOR].IsNull; +end; + +procedure TRecibosProveedorDataTableRules.SetNOMBRE_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosProveedorNOMBRE_PROVEEDOR].AsVariant := Null; +end; + +function TRecibosProveedorDataTableRules.GetNIF_CIF_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_RecibosProveedorNIF_CIF_PROVEEDOR].AsString; +end; + +procedure TRecibosProveedorDataTableRules.SetNIF_CIF_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosProveedorNIF_CIF_PROVEEDOR].AsString := aValue; +end; + +function TRecibosProveedorDataTableRules.GetNIF_CIF_PROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosProveedorNIF_CIF_PROVEEDOR].IsNull; +end; + +procedure TRecibosProveedorDataTableRules.SetNIF_CIF_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosProveedorNIF_CIF_PROVEEDOR].AsVariant := Null; +end; + +function TRecibosProveedorDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_RecibosProveedorFECHA_ALTA].AsDateTime; +end; + +procedure TRecibosProveedorDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RecibosProveedorFECHA_ALTA].AsDateTime := aValue; +end; + +function TRecibosProveedorDataTableRules.GetFECHA_ALTAIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosProveedorFECHA_ALTA].IsNull; +end; + +procedure TRecibosProveedorDataTableRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosProveedorFECHA_ALTA].AsVariant := Null; +end; + +function TRecibosProveedorDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_RecibosProveedorFECHA_MODIFICACION].AsDateTime; +end; + +procedure TRecibosProveedorDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RecibosProveedorFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TRecibosProveedorDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosProveedorFECHA_MODIFICACION].IsNull; +end; + +procedure TRecibosProveedorDataTableRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosProveedorFECHA_MODIFICACION].AsVariant := Null; +end; + +function TRecibosProveedorDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_RecibosProveedorUSUARIO].AsString; +end; + +procedure TRecibosProveedorDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_RecibosProveedorUSUARIO].AsString := aValue; +end; + +function TRecibosProveedorDataTableRules.GetUSUARIOIsNull: boolean; +begin + result := DataTable.Fields[idx_RecibosProveedorUSUARIO].IsNull; +end; + +procedure TRecibosProveedorDataTableRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RecibosProveedorUSUARIO].AsVariant := Null; +end; + + +{ TPagosProveedorDataTableRules } +constructor TPagosProveedorDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TPagosProveedorDataTableRules.Destroy; +begin + inherited; +end; + +function TPagosProveedorDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_PagosProveedorID].AsInteger; +end; + +procedure TPagosProveedorDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_PagosProveedorID].AsInteger := aValue; +end; + +function TPagosProveedorDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_PagosProveedorID].IsNull; +end; + +procedure TPagosProveedorDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PagosProveedorID].AsVariant := Null; +end; + +function TPagosProveedorDataTableRules.GetID_RECIBOValue: Integer; +begin + result := DataTable.Fields[idx_PagosProveedorID_RECIBO].AsInteger; +end; + +procedure TPagosProveedorDataTableRules.SetID_RECIBOValue(const aValue: Integer); +begin + DataTable.Fields[idx_PagosProveedorID_RECIBO].AsInteger := aValue; +end; + +function TPagosProveedorDataTableRules.GetID_RECIBOIsNull: boolean; +begin + result := DataTable.Fields[idx_PagosProveedorID_RECIBO].IsNull; +end; + +procedure TPagosProveedorDataTableRules.SetID_RECIBOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PagosProveedorID_RECIBO].AsVariant := Null; +end; + +function TPagosProveedorDataTableRules.GetTIPOValue: String; +begin + result := DataTable.Fields[idx_PagosProveedorTIPO].AsString; +end; + +procedure TPagosProveedorDataTableRules.SetTIPOValue(const aValue: String); +begin + DataTable.Fields[idx_PagosProveedorTIPO].AsString := aValue; +end; + +function TPagosProveedorDataTableRules.GetTIPOIsNull: boolean; +begin + result := DataTable.Fields[idx_PagosProveedorTIPO].IsNull; +end; + +procedure TPagosProveedorDataTableRules.SetTIPOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PagosProveedorTIPO].AsVariant := Null; +end; + +function TPagosProveedorDataTableRules.GetFECHA_PAGOValue: DateTime; +begin + result := DataTable.Fields[idx_PagosProveedorFECHA_PAGO].AsDateTime; +end; + +procedure TPagosProveedorDataTableRules.SetFECHA_PAGOValue(const aValue: DateTime); +begin + DataTable.Fields[idx_PagosProveedorFECHA_PAGO].AsDateTime := aValue; +end; + +function TPagosProveedorDataTableRules.GetFECHA_PAGOIsNull: boolean; +begin + result := DataTable.Fields[idx_PagosProveedorFECHA_PAGO].IsNull; +end; + +procedure TPagosProveedorDataTableRules.SetFECHA_PAGOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PagosProveedorFECHA_PAGO].AsVariant := Null; +end; + +function TPagosProveedorDataTableRules.GetTITULARValue: String; +begin + result := DataTable.Fields[idx_PagosProveedorTITULAR].AsString; +end; + +procedure TPagosProveedorDataTableRules.SetTITULARValue(const aValue: String); +begin + DataTable.Fields[idx_PagosProveedorTITULAR].AsString := aValue; +end; + +function TPagosProveedorDataTableRules.GetTITULARIsNull: boolean; +begin + result := DataTable.Fields[idx_PagosProveedorTITULAR].IsNull; +end; + +procedure TPagosProveedorDataTableRules.SetTITULARIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PagosProveedorTITULAR].AsVariant := Null; +end; + +function TPagosProveedorDataTableRules.GetENTIDADValue: String; +begin + result := DataTable.Fields[idx_PagosProveedorENTIDAD].AsString; +end; + +procedure TPagosProveedorDataTableRules.SetENTIDADValue(const aValue: String); +begin + DataTable.Fields[idx_PagosProveedorENTIDAD].AsString := aValue; +end; + +function TPagosProveedorDataTableRules.GetENTIDADIsNull: boolean; +begin + result := DataTable.Fields[idx_PagosProveedorENTIDAD].IsNull; +end; + +procedure TPagosProveedorDataTableRules.SetENTIDADIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PagosProveedorENTIDAD].AsVariant := Null; +end; + +function TPagosProveedorDataTableRules.GetSUCURSALValue: String; +begin + result := DataTable.Fields[idx_PagosProveedorSUCURSAL].AsString; +end; + +procedure TPagosProveedorDataTableRules.SetSUCURSALValue(const aValue: String); +begin + DataTable.Fields[idx_PagosProveedorSUCURSAL].AsString := aValue; +end; + +function TPagosProveedorDataTableRules.GetSUCURSALIsNull: boolean; +begin + result := DataTable.Fields[idx_PagosProveedorSUCURSAL].IsNull; +end; + +procedure TPagosProveedorDataTableRules.SetSUCURSALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PagosProveedorSUCURSAL].AsVariant := Null; +end; + +function TPagosProveedorDataTableRules.GetDCValue: String; +begin + result := DataTable.Fields[idx_PagosProveedorDC].AsString; +end; + +procedure TPagosProveedorDataTableRules.SetDCValue(const aValue: String); +begin + DataTable.Fields[idx_PagosProveedorDC].AsString := aValue; +end; + +function TPagosProveedorDataTableRules.GetDCIsNull: boolean; +begin + result := DataTable.Fields[idx_PagosProveedorDC].IsNull; +end; + +procedure TPagosProveedorDataTableRules.SetDCIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PagosProveedorDC].AsVariant := Null; +end; + +function TPagosProveedorDataTableRules.GetCUENTAValue: String; +begin + result := DataTable.Fields[idx_PagosProveedorCUENTA].AsString; +end; + +procedure TPagosProveedorDataTableRules.SetCUENTAValue(const aValue: String); +begin + DataTable.Fields[idx_PagosProveedorCUENTA].AsString := aValue; +end; + +function TPagosProveedorDataTableRules.GetCUENTAIsNull: boolean; +begin + result := DataTable.Fields[idx_PagosProveedorCUENTA].IsNull; +end; + +procedure TPagosProveedorDataTableRules.SetCUENTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PagosProveedorCUENTA].AsVariant := Null; +end; + +function TPagosProveedorDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_PagosProveedorFECHA_ALTA].AsDateTime; +end; + +procedure TPagosProveedorDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_PagosProveedorFECHA_ALTA].AsDateTime := aValue; +end; + +function TPagosProveedorDataTableRules.GetFECHA_ALTAIsNull: boolean; +begin + result := DataTable.Fields[idx_PagosProveedorFECHA_ALTA].IsNull; +end; + +procedure TPagosProveedorDataTableRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PagosProveedorFECHA_ALTA].AsVariant := Null; +end; + +function TPagosProveedorDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_PagosProveedorFECHA_MODIFICACION].AsDateTime; +end; + +procedure TPagosProveedorDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_PagosProveedorFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TPagosProveedorDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_PagosProveedorFECHA_MODIFICACION].IsNull; +end; + +procedure TPagosProveedorDataTableRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PagosProveedorFECHA_MODIFICACION].AsVariant := Null; +end; + +function TPagosProveedorDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_PagosProveedorUSUARIO].AsString; +end; + +procedure TPagosProveedorDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_PagosProveedorUSUARIO].AsString := aValue; +end; + +function TPagosProveedorDataTableRules.GetUSUARIOIsNull: boolean; +begin + result := DataTable.Fields[idx_PagosProveedorUSUARIO].IsNull; +end; + +procedure TPagosProveedorDataTableRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PagosProveedorUSUARIO].AsVariant := Null; +end; + + +initialization + RegisterDataTableRules(RID_ListaAnosRecibos, TListaAnosRecibosDataTableRules); + RegisterDataTableRules(RID_RecibosCompensadosProv, TRecibosCompensadosProvDataTableRules); + RegisterDataTableRules(RID_RecibosProveedor, TRecibosProveedorDataTableRules); + RegisterDataTableRules(RID_PagosProveedor, TPagosProveedorDataTableRules); + +end. diff --git a/Source/Modulos/Recibos de proveedor/Model/schRecibosProveedorServer_Intf.dcu b/Source/Modulos/Recibos de proveedor/Model/schRecibosProveedorServer_Intf.dcu new file mode 100644 index 0000000..3e83ba7 Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Model/schRecibosProveedorServer_Intf.dcu differ diff --git a/Source/Modulos/Recibos de proveedor/Model/schRecibosProveedorServer_Intf.pas b/Source/Modulos/Recibos de proveedor/Model/schRecibosProveedorServer_Intf.pas new file mode 100644 index 0000000..50f8a45 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Model/schRecibosProveedorServer_Intf.pas @@ -0,0 +1,3132 @@ +unit schRecibosProveedorServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schRecibosProveedorClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_ListaAnosRecibosDelta = '{7319675D-5CEC-4118-8CA5-D1D9A3E862B7}'; + RID_RecibosCompensadosProvDelta = '{96E9C110-BDAA-4E8E-B142-2F74CCFDBC74}'; + RID_RecibosProveedorDelta = '{AB79EADA-4BE6-4E51-BFEA-C4F1C20E8059}'; + RID_PagosProveedorDelta = '{E48CD2E0-5DD4-41AF-97DE-F945B013E452}'; + +type + { IListaAnosRecibosDelta } + IListaAnosRecibosDelta = interface(IListaAnosRecibos) + ['{7319675D-5CEC-4118-8CA5-D1D9A3E862B7}'] + { Property getters and setters } + function GetOldANOValue : String; + + { Properties } + property OldANO : String read GetOldANOValue; + end; + + { TListaAnosRecibosBusinessProcessorRules } + TListaAnosRecibosBusinessProcessorRules = class(TDABusinessProcessorRules, IListaAnosRecibos, IListaAnosRecibosDelta) + private + protected + { Property getters and setters } + function GetANOValue: String; virtual; + function GetANOIsNull: Boolean; virtual; + function GetOldANOValue: String; virtual; + function GetOldANOIsNull: Boolean; virtual; + procedure SetANOValue(const aValue: String); virtual; + procedure SetANOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ANO : String read GetANOValue write SetANOValue; + property ANOIsNull : Boolean read GetANOIsNull write SetANOIsNull; + property OldANO : String read GetOldANOValue; + property OldANOIsNull : Boolean read GetOldANOIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IRecibosCompensadosProvDelta } + IRecibosCompensadosProvDelta = interface(IRecibosCompensadosProv) + ['{96E9C110-BDAA-4E8E-B142-2F74CCFDBC74}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_RECIBO_COMPENSADOValue : Integer; + function GetOldREFERENCIA_REC_COMPENSADOValue : String; + function GetOldREFERENCIAValue : String; + function GetOldREFERENCIA_PROVEEDORValue : String; + function GetOldSITUACIONValue : String; + function GetOldID_FACTURAValue : Integer; + function GetOldID_REMESAValue : Integer; + function GetOldREFERENCIA_REMESAValue : String; + function GetOldFECHA_EMISIONValue : DateTime; + function GetOldFECHA_VENCIMIENTOValue : DateTime; + function GetOldDESCRIPCIONValue : String; + function GetOldOBSERVACIONESValue : String; + function GetOldIMPORTEValue : Currency; + function GetOldOTROS_GASTOSValue : Currency; + function GetOldIMPORTE_TOTALValue : Currency; + function GetOldREFERENCIA_FACTURA_PROVValue : String; + function GetOldFECHA_FACTURAValue : DateTime; + function GetOldFORMA_PAGO_FACTURAValue : String; + function GetOldIMPORTE_FACTURAValue : Currency; + function GetOldID_EMPRESAValue : Integer; + function GetOldDATOS_BANCARIOSValue : String; + function GetOldID_PROVEEDORValue : Integer; + function GetOldNOMBRE_PROVEEDORValue : String; + function GetOldNIF_CIF_PROVEEDORValue : String; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + function GetOldUSUARIOValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_RECIBO_COMPENSADO : Integer read GetOldID_RECIBO_COMPENSADOValue; + property OldREFERENCIA_REC_COMPENSADO : String read GetOldREFERENCIA_REC_COMPENSADOValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + property OldSITUACION : String read GetOldSITUACIONValue; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property OldID_REMESA : Integer read GetOldID_REMESAValue; + property OldREFERENCIA_REMESA : String read GetOldREFERENCIA_REMESAValue; + property OldFECHA_EMISION : DateTime read GetOldFECHA_EMISIONValue; + property OldFECHA_VENCIMIENTO : DateTime read GetOldFECHA_VENCIMIENTOValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldOBSERVACIONES : String read GetOldOBSERVACIONESValue; + property OldIMPORTE : Currency read GetOldIMPORTEValue; + property OldOTROS_GASTOS : Currency read GetOldOTROS_GASTOSValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldREFERENCIA_FACTURA_PROV : String read GetOldREFERENCIA_FACTURA_PROVValue; + property OldFECHA_FACTURA : DateTime read GetOldFECHA_FACTURAValue; + property OldFORMA_PAGO_FACTURA : String read GetOldFORMA_PAGO_FACTURAValue; + property OldIMPORTE_FACTURA : Currency read GetOldIMPORTE_FACTURAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldDATOS_BANCARIOS : String read GetOldDATOS_BANCARIOSValue; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property OldNOMBRE_PROVEEDOR : String read GetOldNOMBRE_PROVEEDORValue; + property OldNIF_CIF_PROVEEDOR : String read GetOldNIF_CIF_PROVEEDORValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + end; + + { TRecibosCompensadosProvBusinessProcessorRules } + TRecibosCompensadosProvBusinessProcessorRules = class(TDABusinessProcessorRules, IRecibosCompensadosProv, IRecibosCompensadosProvDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_RECIBO_COMPENSADOValue: Integer; virtual; + function GetID_RECIBO_COMPENSADOIsNull: Boolean; virtual; + function GetOldID_RECIBO_COMPENSADOValue: Integer; virtual; + function GetOldID_RECIBO_COMPENSADOIsNull: Boolean; virtual; + procedure SetID_RECIBO_COMPENSADOValue(const aValue: Integer); virtual; + procedure SetID_RECIBO_COMPENSADOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_REC_COMPENSADOValue: String; virtual; + function GetREFERENCIA_REC_COMPENSADOIsNull: Boolean; virtual; + function GetOldREFERENCIA_REC_COMPENSADOValue: String; virtual; + function GetOldREFERENCIA_REC_COMPENSADOIsNull: Boolean; virtual; + procedure SetREFERENCIA_REC_COMPENSADOValue(const aValue: String); virtual; + procedure SetREFERENCIA_REC_COMPENSADOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + function GetREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + function GetOldREFERENCIA_PROVEEDORValue: String; virtual; + function GetOldREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetSITUACIONValue: String; virtual; + function GetSITUACIONIsNull: Boolean; virtual; + function GetOldSITUACIONValue: String; virtual; + function GetOldSITUACIONIsNull: Boolean; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + procedure SetSITUACIONIsNull(const aValue: Boolean); virtual; + function GetID_FACTURAValue: Integer; virtual; + function GetID_FACTURAIsNull: Boolean; virtual; + function GetOldID_FACTURAValue: Integer; virtual; + function GetOldID_FACTURAIsNull: Boolean; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + procedure SetID_FACTURAIsNull(const aValue: Boolean); virtual; + function GetID_REMESAValue: Integer; virtual; + function GetID_REMESAIsNull: Boolean; virtual; + function GetOldID_REMESAValue: Integer; virtual; + function GetOldID_REMESAIsNull: Boolean; virtual; + procedure SetID_REMESAValue(const aValue: Integer); virtual; + procedure SetID_REMESAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_REMESAValue: String; virtual; + function GetREFERENCIA_REMESAIsNull: Boolean; virtual; + function GetOldREFERENCIA_REMESAValue: String; virtual; + function GetOldREFERENCIA_REMESAIsNull: Boolean; virtual; + procedure SetREFERENCIA_REMESAValue(const aValue: String); virtual; + procedure SetREFERENCIA_REMESAIsNull(const aValue: Boolean); virtual; + function GetFECHA_EMISIONValue: DateTime; virtual; + function GetFECHA_EMISIONIsNull: Boolean; virtual; + function GetOldFECHA_EMISIONValue: DateTime; virtual; + function GetOldFECHA_EMISIONIsNull: Boolean; virtual; + procedure SetFECHA_EMISIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_EMISIONIsNull(const aValue: Boolean); virtual; + function GetFECHA_VENCIMIENTOValue: DateTime; virtual; + function GetFECHA_VENCIMIENTOIsNull: Boolean; virtual; + function GetOldFECHA_VENCIMIENTOValue: DateTime; virtual; + function GetOldFECHA_VENCIMIENTOIsNull: Boolean; virtual; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); virtual; + procedure SetFECHA_VENCIMIENTOIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + function GetOBSERVACIONESValue: String; virtual; + function GetOBSERVACIONESIsNull: Boolean; virtual; + function GetOldOBSERVACIONESValue: String; virtual; + function GetOldOBSERVACIONESIsNull: Boolean; virtual; + procedure SetOBSERVACIONESValue(const aValue: String); virtual; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); virtual; + function GetIMPORTEValue: Currency; virtual; + function GetIMPORTEIsNull: Boolean; virtual; + function GetOldIMPORTEValue: Currency; virtual; + function GetOldIMPORTEIsNull: Boolean; virtual; + procedure SetIMPORTEValue(const aValue: Currency); virtual; + procedure SetIMPORTEIsNull(const aValue: Boolean); virtual; + function GetOTROS_GASTOSValue: Currency; virtual; + function GetOTROS_GASTOSIsNull: Boolean; virtual; + function GetOldOTROS_GASTOSValue: Currency; virtual; + function GetOldOTROS_GASTOSIsNull: Boolean; virtual; + procedure SetOTROS_GASTOSValue(const aValue: Currency); virtual; + procedure SetOTROS_GASTOSIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_FACTURA_PROVValue: String; virtual; + function GetREFERENCIA_FACTURA_PROVIsNull: Boolean; virtual; + function GetOldREFERENCIA_FACTURA_PROVValue: String; virtual; + function GetOldREFERENCIA_FACTURA_PROVIsNull: Boolean; virtual; + procedure SetREFERENCIA_FACTURA_PROVValue(const aValue: String); virtual; + procedure SetREFERENCIA_FACTURA_PROVIsNull(const aValue: Boolean); virtual; + function GetFECHA_FACTURAValue: DateTime; virtual; + function GetFECHA_FACTURAIsNull: Boolean; virtual; + function GetOldFECHA_FACTURAValue: DateTime; virtual; + function GetOldFECHA_FACTURAIsNull: Boolean; virtual; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); virtual; + procedure SetFECHA_FACTURAIsNull(const aValue: Boolean); virtual; + function GetFORMA_PAGO_FACTURAValue: String; virtual; + function GetFORMA_PAGO_FACTURAIsNull: Boolean; virtual; + function GetOldFORMA_PAGO_FACTURAValue: String; virtual; + function GetOldFORMA_PAGO_FACTURAIsNull: Boolean; virtual; + procedure SetFORMA_PAGO_FACTURAValue(const aValue: String); virtual; + procedure SetFORMA_PAGO_FACTURAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_FACTURAValue: Currency; virtual; + function GetIMPORTE_FACTURAIsNull: Boolean; virtual; + function GetOldIMPORTE_FACTURAValue: Currency; virtual; + function GetOldIMPORTE_FACTURAIsNull: Boolean; virtual; + procedure SetIMPORTE_FACTURAValue(const aValue: Currency); virtual; + procedure SetIMPORTE_FACTURAIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetDATOS_BANCARIOSValue: String; virtual; + function GetDATOS_BANCARIOSIsNull: Boolean; virtual; + function GetOldDATOS_BANCARIOSValue: String; virtual; + function GetOldDATOS_BANCARIOSIsNull: Boolean; virtual; + procedure SetDATOS_BANCARIOSValue(const aValue: String); virtual; + procedure SetDATOS_BANCARIOSIsNull(const aValue: Boolean); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + function GetID_PROVEEDORIsNull: Boolean; virtual; + function GetOldID_PROVEEDORValue: Integer; virtual; + function GetOldID_PROVEEDORIsNull: Boolean; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetNOMBRE_PROVEEDORValue: String; virtual; + function GetNOMBRE_PROVEEDORIsNull: Boolean; virtual; + function GetOldNOMBRE_PROVEEDORValue: String; virtual; + function GetOldNOMBRE_PROVEEDORIsNull: Boolean; virtual; + procedure SetNOMBRE_PROVEEDORValue(const aValue: String); virtual; + procedure SetNOMBRE_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetNIF_CIF_PROVEEDORValue: String; virtual; + function GetNIF_CIF_PROVEEDORIsNull: Boolean; virtual; + function GetOldNIF_CIF_PROVEEDORValue: String; virtual; + function GetOldNIF_CIF_PROVEEDORIsNull: Boolean; virtual; + procedure SetNIF_CIF_PROVEEDORValue(const aValue: String); virtual; + procedure SetNIF_CIF_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + function GetUSUARIOIsNull: Boolean; virtual; + function GetOldUSUARIOValue: String; virtual; + function GetOldUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_RECIBO_COMPENSADO : Integer read GetID_RECIBO_COMPENSADOValue write SetID_RECIBO_COMPENSADOValue; + property ID_RECIBO_COMPENSADOIsNull : Boolean read GetID_RECIBO_COMPENSADOIsNull write SetID_RECIBO_COMPENSADOIsNull; + property OldID_RECIBO_COMPENSADO : Integer read GetOldID_RECIBO_COMPENSADOValue; + property OldID_RECIBO_COMPENSADOIsNull : Boolean read GetOldID_RECIBO_COMPENSADOIsNull; + property REFERENCIA_REC_COMPENSADO : String read GetREFERENCIA_REC_COMPENSADOValue write SetREFERENCIA_REC_COMPENSADOValue; + property REFERENCIA_REC_COMPENSADOIsNull : Boolean read GetREFERENCIA_REC_COMPENSADOIsNull write SetREFERENCIA_REC_COMPENSADOIsNull; + property OldREFERENCIA_REC_COMPENSADO : String read GetOldREFERENCIA_REC_COMPENSADOValue; + property OldREFERENCIA_REC_COMPENSADOIsNull : Boolean read GetOldREFERENCIA_REC_COMPENSADOIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property REFERENCIA_PROVEEDOR : String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull : Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + property OldREFERENCIA_PROVEEDORIsNull : Boolean read GetOldREFERENCIA_PROVEEDORIsNull; + property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue; + property SITUACIONIsNull : Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull; + property OldSITUACION : String read GetOldSITUACIONValue; + property OldSITUACIONIsNull : Boolean read GetOldSITUACIONIsNull; + property ID_FACTURA : Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull : Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property OldID_FACTURAIsNull : Boolean read GetOldID_FACTURAIsNull; + property ID_REMESA : Integer read GetID_REMESAValue write SetID_REMESAValue; + property ID_REMESAIsNull : Boolean read GetID_REMESAIsNull write SetID_REMESAIsNull; + property OldID_REMESA : Integer read GetOldID_REMESAValue; + property OldID_REMESAIsNull : Boolean read GetOldID_REMESAIsNull; + property REFERENCIA_REMESA : String read GetREFERENCIA_REMESAValue write SetREFERENCIA_REMESAValue; + property REFERENCIA_REMESAIsNull : Boolean read GetREFERENCIA_REMESAIsNull write SetREFERENCIA_REMESAIsNull; + property OldREFERENCIA_REMESA : String read GetOldREFERENCIA_REMESAValue; + property OldREFERENCIA_REMESAIsNull : Boolean read GetOldREFERENCIA_REMESAIsNull; + property FECHA_EMISION : DateTime read GetFECHA_EMISIONValue write SetFECHA_EMISIONValue; + property FECHA_EMISIONIsNull : Boolean read GetFECHA_EMISIONIsNull write SetFECHA_EMISIONIsNull; + property OldFECHA_EMISION : DateTime read GetOldFECHA_EMISIONValue; + property OldFECHA_EMISIONIsNull : Boolean read GetOldFECHA_EMISIONIsNull; + property FECHA_VENCIMIENTO : DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + property FECHA_VENCIMIENTOIsNull : Boolean read GetFECHA_VENCIMIENTOIsNull write SetFECHA_VENCIMIENTOIsNull; + property OldFECHA_VENCIMIENTO : DateTime read GetOldFECHA_VENCIMIENTOValue; + property OldFECHA_VENCIMIENTOIsNull : Boolean read GetOldFECHA_VENCIMIENTOIsNull; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull : Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldDESCRIPCIONIsNull : Boolean read GetOldDESCRIPCIONIsNull; + property OBSERVACIONES : String read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property OBSERVACIONESIsNull : Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property OldOBSERVACIONES : String read GetOldOBSERVACIONESValue; + property OldOBSERVACIONESIsNull : Boolean read GetOldOBSERVACIONESIsNull; + property IMPORTE : Currency read GetIMPORTEValue write SetIMPORTEValue; + property IMPORTEIsNull : Boolean read GetIMPORTEIsNull write SetIMPORTEIsNull; + property OldIMPORTE : Currency read GetOldIMPORTEValue; + property OldIMPORTEIsNull : Boolean read GetOldIMPORTEIsNull; + property OTROS_GASTOS : Currency read GetOTROS_GASTOSValue write SetOTROS_GASTOSValue; + property OTROS_GASTOSIsNull : Boolean read GetOTROS_GASTOSIsNull write SetOTROS_GASTOSIsNull; + property OldOTROS_GASTOS : Currency read GetOldOTROS_GASTOSValue; + property OldOTROS_GASTOSIsNull : Boolean read GetOldOTROS_GASTOSIsNull; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull : Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldIMPORTE_TOTALIsNull : Boolean read GetOldIMPORTE_TOTALIsNull; + property REFERENCIA_FACTURA_PROV : String read GetREFERENCIA_FACTURA_PROVValue write SetREFERENCIA_FACTURA_PROVValue; + property REFERENCIA_FACTURA_PROVIsNull : Boolean read GetREFERENCIA_FACTURA_PROVIsNull write SetREFERENCIA_FACTURA_PROVIsNull; + property OldREFERENCIA_FACTURA_PROV : String read GetOldREFERENCIA_FACTURA_PROVValue; + property OldREFERENCIA_FACTURA_PROVIsNull : Boolean read GetOldREFERENCIA_FACTURA_PROVIsNull; + property FECHA_FACTURA : DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property FECHA_FACTURAIsNull : Boolean read GetFECHA_FACTURAIsNull write SetFECHA_FACTURAIsNull; + property OldFECHA_FACTURA : DateTime read GetOldFECHA_FACTURAValue; + property OldFECHA_FACTURAIsNull : Boolean read GetOldFECHA_FACTURAIsNull; + property FORMA_PAGO_FACTURA : String read GetFORMA_PAGO_FACTURAValue write SetFORMA_PAGO_FACTURAValue; + property FORMA_PAGO_FACTURAIsNull : Boolean read GetFORMA_PAGO_FACTURAIsNull write SetFORMA_PAGO_FACTURAIsNull; + property OldFORMA_PAGO_FACTURA : String read GetOldFORMA_PAGO_FACTURAValue; + property OldFORMA_PAGO_FACTURAIsNull : Boolean read GetOldFORMA_PAGO_FACTURAIsNull; + property IMPORTE_FACTURA : Currency read GetIMPORTE_FACTURAValue write SetIMPORTE_FACTURAValue; + property IMPORTE_FACTURAIsNull : Boolean read GetIMPORTE_FACTURAIsNull write SetIMPORTE_FACTURAIsNull; + property OldIMPORTE_FACTURA : Currency read GetOldIMPORTE_FACTURAValue; + property OldIMPORTE_FACTURAIsNull : Boolean read GetOldIMPORTE_FACTURAIsNull; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull : Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_EMPRESAIsNull : Boolean read GetOldID_EMPRESAIsNull; + property DATOS_BANCARIOS : String read GetDATOS_BANCARIOSValue write SetDATOS_BANCARIOSValue; + property DATOS_BANCARIOSIsNull : Boolean read GetDATOS_BANCARIOSIsNull write SetDATOS_BANCARIOSIsNull; + property OldDATOS_BANCARIOS : String read GetOldDATOS_BANCARIOSValue; + property OldDATOS_BANCARIOSIsNull : Boolean read GetOldDATOS_BANCARIOSIsNull; + property ID_PROVEEDOR : Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull : Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property OldID_PROVEEDORIsNull : Boolean read GetOldID_PROVEEDORIsNull; + property NOMBRE_PROVEEDOR : String read GetNOMBRE_PROVEEDORValue write SetNOMBRE_PROVEEDORValue; + property NOMBRE_PROVEEDORIsNull : Boolean read GetNOMBRE_PROVEEDORIsNull write SetNOMBRE_PROVEEDORIsNull; + property OldNOMBRE_PROVEEDOR : String read GetOldNOMBRE_PROVEEDORValue; + property OldNOMBRE_PROVEEDORIsNull : Boolean read GetOldNOMBRE_PROVEEDORIsNull; + property NIF_CIF_PROVEEDOR : String read GetNIF_CIF_PROVEEDORValue write SetNIF_CIF_PROVEEDORValue; + property NIF_CIF_PROVEEDORIsNull : Boolean read GetNIF_CIF_PROVEEDORIsNull write SetNIF_CIF_PROVEEDORIsNull; + property OldNIF_CIF_PROVEEDOR : String read GetOldNIF_CIF_PROVEEDORValue; + property OldNIF_CIF_PROVEEDORIsNull : Boolean read GetOldNIF_CIF_PROVEEDORIsNull; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull : Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_ALTAIsNull : Boolean read GetOldFECHA_ALTAIsNull; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull : Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldUSUARIOIsNull : Boolean read GetOldUSUARIOIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IRecibosProveedorDelta } + IRecibosProveedorDelta = interface(IRecibosProveedor) + ['{AB79EADA-4BE6-4E51-BFEA-C4F1C20E8059}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_RECIBO_COMPENSADOValue : Integer; + function GetOldREFERENCIA_REC_COMPENSADOValue : String; + function GetOldREFERENCIAValue : String; + function GetOldREFERENCIA_PROVEEDORValue : String; + function GetOldSITUACIONValue : String; + function GetOldID_FACTURAValue : Integer; + function GetOldID_REMESAValue : Integer; + function GetOldREFERENCIA_REMESAValue : String; + function GetOldFECHA_EMISIONValue : DateTime; + function GetOldFECHA_VENCIMIENTOValue : DateTime; + function GetOldDESCRIPCIONValue : String; + function GetOldOBSERVACIONESValue : String; + function GetOldIMPORTEValue : Currency; + function GetOldOTROS_GASTOSValue : Currency; + function GetOldIMPORTE_TOTALValue : Currency; + function GetOldREFERENCIA_FACTURA_PROVValue : String; + function GetOldFECHA_FACTURAValue : DateTime; + function GetOldFORMA_PAGO_FACTURAValue : String; + function GetOldIMPORTE_FACTURAValue : Currency; + function GetOldID_EMPRESAValue : Integer; + function GetOldDATOS_BANCARIOSValue : String; + function GetOldID_PROVEEDORValue : Integer; + function GetOldNOMBRE_PROVEEDORValue : String; + function GetOldNIF_CIF_PROVEEDORValue : String; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + function GetOldUSUARIOValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_RECIBO_COMPENSADO : Integer read GetOldID_RECIBO_COMPENSADOValue; + property OldREFERENCIA_REC_COMPENSADO : String read GetOldREFERENCIA_REC_COMPENSADOValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + property OldSITUACION : String read GetOldSITUACIONValue; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property OldID_REMESA : Integer read GetOldID_REMESAValue; + property OldREFERENCIA_REMESA : String read GetOldREFERENCIA_REMESAValue; + property OldFECHA_EMISION : DateTime read GetOldFECHA_EMISIONValue; + property OldFECHA_VENCIMIENTO : DateTime read GetOldFECHA_VENCIMIENTOValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldOBSERVACIONES : String read GetOldOBSERVACIONESValue; + property OldIMPORTE : Currency read GetOldIMPORTEValue; + property OldOTROS_GASTOS : Currency read GetOldOTROS_GASTOSValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldREFERENCIA_FACTURA_PROV : String read GetOldREFERENCIA_FACTURA_PROVValue; + property OldFECHA_FACTURA : DateTime read GetOldFECHA_FACTURAValue; + property OldFORMA_PAGO_FACTURA : String read GetOldFORMA_PAGO_FACTURAValue; + property OldIMPORTE_FACTURA : Currency read GetOldIMPORTE_FACTURAValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldDATOS_BANCARIOS : String read GetOldDATOS_BANCARIOSValue; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property OldNOMBRE_PROVEEDOR : String read GetOldNOMBRE_PROVEEDORValue; + property OldNIF_CIF_PROVEEDOR : String read GetOldNIF_CIF_PROVEEDORValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + end; + + { TRecibosProveedorBusinessProcessorRules } + TRecibosProveedorBusinessProcessorRules = class(TDABusinessProcessorRules, IRecibosProveedor, IRecibosProveedorDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_RECIBO_COMPENSADOValue: Integer; virtual; + function GetID_RECIBO_COMPENSADOIsNull: Boolean; virtual; + function GetOldID_RECIBO_COMPENSADOValue: Integer; virtual; + function GetOldID_RECIBO_COMPENSADOIsNull: Boolean; virtual; + procedure SetID_RECIBO_COMPENSADOValue(const aValue: Integer); virtual; + procedure SetID_RECIBO_COMPENSADOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_REC_COMPENSADOValue: String; virtual; + function GetREFERENCIA_REC_COMPENSADOIsNull: Boolean; virtual; + function GetOldREFERENCIA_REC_COMPENSADOValue: String; virtual; + function GetOldREFERENCIA_REC_COMPENSADOIsNull: Boolean; virtual; + procedure SetREFERENCIA_REC_COMPENSADOValue(const aValue: String); virtual; + procedure SetREFERENCIA_REC_COMPENSADOIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + function GetREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + function GetOldREFERENCIA_PROVEEDORValue: String; virtual; + function GetOldREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetSITUACIONValue: String; virtual; + function GetSITUACIONIsNull: Boolean; virtual; + function GetOldSITUACIONValue: String; virtual; + function GetOldSITUACIONIsNull: Boolean; virtual; + procedure SetSITUACIONValue(const aValue: String); virtual; + procedure SetSITUACIONIsNull(const aValue: Boolean); virtual; + function GetID_FACTURAValue: Integer; virtual; + function GetID_FACTURAIsNull: Boolean; virtual; + function GetOldID_FACTURAValue: Integer; virtual; + function GetOldID_FACTURAIsNull: Boolean; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + procedure SetID_FACTURAIsNull(const aValue: Boolean); virtual; + function GetID_REMESAValue: Integer; virtual; + function GetID_REMESAIsNull: Boolean; virtual; + function GetOldID_REMESAValue: Integer; virtual; + function GetOldID_REMESAIsNull: Boolean; virtual; + procedure SetID_REMESAValue(const aValue: Integer); virtual; + procedure SetID_REMESAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_REMESAValue: String; virtual; + function GetREFERENCIA_REMESAIsNull: Boolean; virtual; + function GetOldREFERENCIA_REMESAValue: String; virtual; + function GetOldREFERENCIA_REMESAIsNull: Boolean; virtual; + procedure SetREFERENCIA_REMESAValue(const aValue: String); virtual; + procedure SetREFERENCIA_REMESAIsNull(const aValue: Boolean); virtual; + function GetFECHA_EMISIONValue: DateTime; virtual; + function GetFECHA_EMISIONIsNull: Boolean; virtual; + function GetOldFECHA_EMISIONValue: DateTime; virtual; + function GetOldFECHA_EMISIONIsNull: Boolean; virtual; + procedure SetFECHA_EMISIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_EMISIONIsNull(const aValue: Boolean); virtual; + function GetFECHA_VENCIMIENTOValue: DateTime; virtual; + function GetFECHA_VENCIMIENTOIsNull: Boolean; virtual; + function GetOldFECHA_VENCIMIENTOValue: DateTime; virtual; + function GetOldFECHA_VENCIMIENTOIsNull: Boolean; virtual; + procedure SetFECHA_VENCIMIENTOValue(const aValue: DateTime); virtual; + procedure SetFECHA_VENCIMIENTOIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + function GetOBSERVACIONESValue: String; virtual; + function GetOBSERVACIONESIsNull: Boolean; virtual; + function GetOldOBSERVACIONESValue: String; virtual; + function GetOldOBSERVACIONESIsNull: Boolean; virtual; + procedure SetOBSERVACIONESValue(const aValue: String); virtual; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); virtual; + function GetIMPORTEValue: Currency; virtual; + function GetIMPORTEIsNull: Boolean; virtual; + function GetOldIMPORTEValue: Currency; virtual; + function GetOldIMPORTEIsNull: Boolean; virtual; + procedure SetIMPORTEValue(const aValue: Currency); virtual; + procedure SetIMPORTEIsNull(const aValue: Boolean); virtual; + function GetOTROS_GASTOSValue: Currency; virtual; + function GetOTROS_GASTOSIsNull: Boolean; virtual; + function GetOldOTROS_GASTOSValue: Currency; virtual; + function GetOldOTROS_GASTOSIsNull: Boolean; virtual; + procedure SetOTROS_GASTOSValue(const aValue: Currency); virtual; + procedure SetOTROS_GASTOSIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_FACTURA_PROVValue: String; virtual; + function GetREFERENCIA_FACTURA_PROVIsNull: Boolean; virtual; + function GetOldREFERENCIA_FACTURA_PROVValue: String; virtual; + function GetOldREFERENCIA_FACTURA_PROVIsNull: Boolean; virtual; + procedure SetREFERENCIA_FACTURA_PROVValue(const aValue: String); virtual; + procedure SetREFERENCIA_FACTURA_PROVIsNull(const aValue: Boolean); virtual; + function GetFECHA_FACTURAValue: DateTime; virtual; + function GetFECHA_FACTURAIsNull: Boolean; virtual; + function GetOldFECHA_FACTURAValue: DateTime; virtual; + function GetOldFECHA_FACTURAIsNull: Boolean; virtual; + procedure SetFECHA_FACTURAValue(const aValue: DateTime); virtual; + procedure SetFECHA_FACTURAIsNull(const aValue: Boolean); virtual; + function GetFORMA_PAGO_FACTURAValue: String; virtual; + function GetFORMA_PAGO_FACTURAIsNull: Boolean; virtual; + function GetOldFORMA_PAGO_FACTURAValue: String; virtual; + function GetOldFORMA_PAGO_FACTURAIsNull: Boolean; virtual; + procedure SetFORMA_PAGO_FACTURAValue(const aValue: String); virtual; + procedure SetFORMA_PAGO_FACTURAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_FACTURAValue: Currency; virtual; + function GetIMPORTE_FACTURAIsNull: Boolean; virtual; + function GetOldIMPORTE_FACTURAValue: Currency; virtual; + function GetOldIMPORTE_FACTURAIsNull: Boolean; virtual; + procedure SetIMPORTE_FACTURAValue(const aValue: Currency); virtual; + procedure SetIMPORTE_FACTURAIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetDATOS_BANCARIOSValue: String; virtual; + function GetDATOS_BANCARIOSIsNull: Boolean; virtual; + function GetOldDATOS_BANCARIOSValue: String; virtual; + function GetOldDATOS_BANCARIOSIsNull: Boolean; virtual; + procedure SetDATOS_BANCARIOSValue(const aValue: String); virtual; + procedure SetDATOS_BANCARIOSIsNull(const aValue: Boolean); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + function GetID_PROVEEDORIsNull: Boolean; virtual; + function GetOldID_PROVEEDORValue: Integer; virtual; + function GetOldID_PROVEEDORIsNull: Boolean; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetNOMBRE_PROVEEDORValue: String; virtual; + function GetNOMBRE_PROVEEDORIsNull: Boolean; virtual; + function GetOldNOMBRE_PROVEEDORValue: String; virtual; + function GetOldNOMBRE_PROVEEDORIsNull: Boolean; virtual; + procedure SetNOMBRE_PROVEEDORValue(const aValue: String); virtual; + procedure SetNOMBRE_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetNIF_CIF_PROVEEDORValue: String; virtual; + function GetNIF_CIF_PROVEEDORIsNull: Boolean; virtual; + function GetOldNIF_CIF_PROVEEDORValue: String; virtual; + function GetOldNIF_CIF_PROVEEDORIsNull: Boolean; virtual; + procedure SetNIF_CIF_PROVEEDORValue(const aValue: String); virtual; + procedure SetNIF_CIF_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + function GetUSUARIOIsNull: Boolean; virtual; + function GetOldUSUARIOValue: String; virtual; + function GetOldUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_RECIBO_COMPENSADO : Integer read GetID_RECIBO_COMPENSADOValue write SetID_RECIBO_COMPENSADOValue; + property ID_RECIBO_COMPENSADOIsNull : Boolean read GetID_RECIBO_COMPENSADOIsNull write SetID_RECIBO_COMPENSADOIsNull; + property OldID_RECIBO_COMPENSADO : Integer read GetOldID_RECIBO_COMPENSADOValue; + property OldID_RECIBO_COMPENSADOIsNull : Boolean read GetOldID_RECIBO_COMPENSADOIsNull; + property REFERENCIA_REC_COMPENSADO : String read GetREFERENCIA_REC_COMPENSADOValue write SetREFERENCIA_REC_COMPENSADOValue; + property REFERENCIA_REC_COMPENSADOIsNull : Boolean read GetREFERENCIA_REC_COMPENSADOIsNull write SetREFERENCIA_REC_COMPENSADOIsNull; + property OldREFERENCIA_REC_COMPENSADO : String read GetOldREFERENCIA_REC_COMPENSADOValue; + property OldREFERENCIA_REC_COMPENSADOIsNull : Boolean read GetOldREFERENCIA_REC_COMPENSADOIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property REFERENCIA_PROVEEDOR : String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull : Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + property OldREFERENCIA_PROVEEDORIsNull : Boolean read GetOldREFERENCIA_PROVEEDORIsNull; + property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue; + property SITUACIONIsNull : Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull; + property OldSITUACION : String read GetOldSITUACIONValue; + property OldSITUACIONIsNull : Boolean read GetOldSITUACIONIsNull; + property ID_FACTURA : Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull : Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property OldID_FACTURAIsNull : Boolean read GetOldID_FACTURAIsNull; + property ID_REMESA : Integer read GetID_REMESAValue write SetID_REMESAValue; + property ID_REMESAIsNull : Boolean read GetID_REMESAIsNull write SetID_REMESAIsNull; + property OldID_REMESA : Integer read GetOldID_REMESAValue; + property OldID_REMESAIsNull : Boolean read GetOldID_REMESAIsNull; + property REFERENCIA_REMESA : String read GetREFERENCIA_REMESAValue write SetREFERENCIA_REMESAValue; + property REFERENCIA_REMESAIsNull : Boolean read GetREFERENCIA_REMESAIsNull write SetREFERENCIA_REMESAIsNull; + property OldREFERENCIA_REMESA : String read GetOldREFERENCIA_REMESAValue; + property OldREFERENCIA_REMESAIsNull : Boolean read GetOldREFERENCIA_REMESAIsNull; + property FECHA_EMISION : DateTime read GetFECHA_EMISIONValue write SetFECHA_EMISIONValue; + property FECHA_EMISIONIsNull : Boolean read GetFECHA_EMISIONIsNull write SetFECHA_EMISIONIsNull; + property OldFECHA_EMISION : DateTime read GetOldFECHA_EMISIONValue; + property OldFECHA_EMISIONIsNull : Boolean read GetOldFECHA_EMISIONIsNull; + property FECHA_VENCIMIENTO : DateTime read GetFECHA_VENCIMIENTOValue write SetFECHA_VENCIMIENTOValue; + property FECHA_VENCIMIENTOIsNull : Boolean read GetFECHA_VENCIMIENTOIsNull write SetFECHA_VENCIMIENTOIsNull; + property OldFECHA_VENCIMIENTO : DateTime read GetOldFECHA_VENCIMIENTOValue; + property OldFECHA_VENCIMIENTOIsNull : Boolean read GetOldFECHA_VENCIMIENTOIsNull; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull : Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldDESCRIPCIONIsNull : Boolean read GetOldDESCRIPCIONIsNull; + property OBSERVACIONES : String read GetOBSERVACIONESValue write SetOBSERVACIONESValue; + property OBSERVACIONESIsNull : Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property OldOBSERVACIONES : String read GetOldOBSERVACIONESValue; + property OldOBSERVACIONESIsNull : Boolean read GetOldOBSERVACIONESIsNull; + property IMPORTE : Currency read GetIMPORTEValue write SetIMPORTEValue; + property IMPORTEIsNull : Boolean read GetIMPORTEIsNull write SetIMPORTEIsNull; + property OldIMPORTE : Currency read GetOldIMPORTEValue; + property OldIMPORTEIsNull : Boolean read GetOldIMPORTEIsNull; + property OTROS_GASTOS : Currency read GetOTROS_GASTOSValue write SetOTROS_GASTOSValue; + property OTROS_GASTOSIsNull : Boolean read GetOTROS_GASTOSIsNull write SetOTROS_GASTOSIsNull; + property OldOTROS_GASTOS : Currency read GetOldOTROS_GASTOSValue; + property OldOTROS_GASTOSIsNull : Boolean read GetOldOTROS_GASTOSIsNull; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull : Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldIMPORTE_TOTALIsNull : Boolean read GetOldIMPORTE_TOTALIsNull; + property REFERENCIA_FACTURA_PROV : String read GetREFERENCIA_FACTURA_PROVValue write SetREFERENCIA_FACTURA_PROVValue; + property REFERENCIA_FACTURA_PROVIsNull : Boolean read GetREFERENCIA_FACTURA_PROVIsNull write SetREFERENCIA_FACTURA_PROVIsNull; + property OldREFERENCIA_FACTURA_PROV : String read GetOldREFERENCIA_FACTURA_PROVValue; + property OldREFERENCIA_FACTURA_PROVIsNull : Boolean read GetOldREFERENCIA_FACTURA_PROVIsNull; + property FECHA_FACTURA : DateTime read GetFECHA_FACTURAValue write SetFECHA_FACTURAValue; + property FECHA_FACTURAIsNull : Boolean read GetFECHA_FACTURAIsNull write SetFECHA_FACTURAIsNull; + property OldFECHA_FACTURA : DateTime read GetOldFECHA_FACTURAValue; + property OldFECHA_FACTURAIsNull : Boolean read GetOldFECHA_FACTURAIsNull; + property FORMA_PAGO_FACTURA : String read GetFORMA_PAGO_FACTURAValue write SetFORMA_PAGO_FACTURAValue; + property FORMA_PAGO_FACTURAIsNull : Boolean read GetFORMA_PAGO_FACTURAIsNull write SetFORMA_PAGO_FACTURAIsNull; + property OldFORMA_PAGO_FACTURA : String read GetOldFORMA_PAGO_FACTURAValue; + property OldFORMA_PAGO_FACTURAIsNull : Boolean read GetOldFORMA_PAGO_FACTURAIsNull; + property IMPORTE_FACTURA : Currency read GetIMPORTE_FACTURAValue write SetIMPORTE_FACTURAValue; + property IMPORTE_FACTURAIsNull : Boolean read GetIMPORTE_FACTURAIsNull write SetIMPORTE_FACTURAIsNull; + property OldIMPORTE_FACTURA : Currency read GetOldIMPORTE_FACTURAValue; + property OldIMPORTE_FACTURAIsNull : Boolean read GetOldIMPORTE_FACTURAIsNull; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull : Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_EMPRESAIsNull : Boolean read GetOldID_EMPRESAIsNull; + property DATOS_BANCARIOS : String read GetDATOS_BANCARIOSValue write SetDATOS_BANCARIOSValue; + property DATOS_BANCARIOSIsNull : Boolean read GetDATOS_BANCARIOSIsNull write SetDATOS_BANCARIOSIsNull; + property OldDATOS_BANCARIOS : String read GetOldDATOS_BANCARIOSValue; + property OldDATOS_BANCARIOSIsNull : Boolean read GetOldDATOS_BANCARIOSIsNull; + property ID_PROVEEDOR : Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull : Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property OldID_PROVEEDORIsNull : Boolean read GetOldID_PROVEEDORIsNull; + property NOMBRE_PROVEEDOR : String read GetNOMBRE_PROVEEDORValue write SetNOMBRE_PROVEEDORValue; + property NOMBRE_PROVEEDORIsNull : Boolean read GetNOMBRE_PROVEEDORIsNull write SetNOMBRE_PROVEEDORIsNull; + property OldNOMBRE_PROVEEDOR : String read GetOldNOMBRE_PROVEEDORValue; + property OldNOMBRE_PROVEEDORIsNull : Boolean read GetOldNOMBRE_PROVEEDORIsNull; + property NIF_CIF_PROVEEDOR : String read GetNIF_CIF_PROVEEDORValue write SetNIF_CIF_PROVEEDORValue; + property NIF_CIF_PROVEEDORIsNull : Boolean read GetNIF_CIF_PROVEEDORIsNull write SetNIF_CIF_PROVEEDORIsNull; + property OldNIF_CIF_PROVEEDOR : String read GetOldNIF_CIF_PROVEEDORValue; + property OldNIF_CIF_PROVEEDORIsNull : Boolean read GetOldNIF_CIF_PROVEEDORIsNull; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull : Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_ALTAIsNull : Boolean read GetOldFECHA_ALTAIsNull; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull : Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldUSUARIOIsNull : Boolean read GetOldUSUARIOIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IPagosProveedorDelta } + IPagosProveedorDelta = interface(IPagosProveedor) + ['{E48CD2E0-5DD4-41AF-97DE-F945B013E452}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_RECIBOValue : Integer; + function GetOldTIPOValue : String; + function GetOldFECHA_PAGOValue : DateTime; + function GetOldTITULARValue : String; + function GetOldENTIDADValue : String; + function GetOldSUCURSALValue : String; + function GetOldDCValue : String; + function GetOldCUENTAValue : String; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + function GetOldUSUARIOValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_RECIBO : Integer read GetOldID_RECIBOValue; + property OldTIPO : String read GetOldTIPOValue; + property OldFECHA_PAGO : DateTime read GetOldFECHA_PAGOValue; + property OldTITULAR : String read GetOldTITULARValue; + property OldENTIDAD : String read GetOldENTIDADValue; + property OldSUCURSAL : String read GetOldSUCURSALValue; + property OldDC : String read GetOldDCValue; + property OldCUENTA : String read GetOldCUENTAValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + end; + + { TPagosProveedorBusinessProcessorRules } + TPagosProveedorBusinessProcessorRules = class(TDABusinessProcessorRules, IPagosProveedor, IPagosProveedorDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_RECIBOValue: Integer; virtual; + function GetID_RECIBOIsNull: Boolean; virtual; + function GetOldID_RECIBOValue: Integer; virtual; + function GetOldID_RECIBOIsNull: Boolean; virtual; + procedure SetID_RECIBOValue(const aValue: Integer); virtual; + procedure SetID_RECIBOIsNull(const aValue: Boolean); virtual; + function GetTIPOValue: String; virtual; + function GetTIPOIsNull: Boolean; virtual; + function GetOldTIPOValue: String; virtual; + function GetOldTIPOIsNull: Boolean; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + procedure SetTIPOIsNull(const aValue: Boolean); virtual; + function GetFECHA_PAGOValue: DateTime; virtual; + function GetFECHA_PAGOIsNull: Boolean; virtual; + function GetOldFECHA_PAGOValue: DateTime; virtual; + function GetOldFECHA_PAGOIsNull: Boolean; virtual; + procedure SetFECHA_PAGOValue(const aValue: DateTime); virtual; + procedure SetFECHA_PAGOIsNull(const aValue: Boolean); virtual; + function GetTITULARValue: String; virtual; + function GetTITULARIsNull: Boolean; virtual; + function GetOldTITULARValue: String; virtual; + function GetOldTITULARIsNull: Boolean; virtual; + procedure SetTITULARValue(const aValue: String); virtual; + procedure SetTITULARIsNull(const aValue: Boolean); virtual; + function GetENTIDADValue: String; virtual; + function GetENTIDADIsNull: Boolean; virtual; + function GetOldENTIDADValue: String; virtual; + function GetOldENTIDADIsNull: Boolean; virtual; + procedure SetENTIDADValue(const aValue: String); virtual; + procedure SetENTIDADIsNull(const aValue: Boolean); virtual; + function GetSUCURSALValue: String; virtual; + function GetSUCURSALIsNull: Boolean; virtual; + function GetOldSUCURSALValue: String; virtual; + function GetOldSUCURSALIsNull: Boolean; virtual; + procedure SetSUCURSALValue(const aValue: String); virtual; + procedure SetSUCURSALIsNull(const aValue: Boolean); virtual; + function GetDCValue: String; virtual; + function GetDCIsNull: Boolean; virtual; + function GetOldDCValue: String; virtual; + function GetOldDCIsNull: Boolean; virtual; + procedure SetDCValue(const aValue: String); virtual; + procedure SetDCIsNull(const aValue: Boolean); virtual; + function GetCUENTAValue: String; virtual; + function GetCUENTAIsNull: Boolean; virtual; + function GetOldCUENTAValue: String; virtual; + function GetOldCUENTAIsNull: Boolean; virtual; + procedure SetCUENTAValue(const aValue: String); virtual; + procedure SetCUENTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + function GetUSUARIOIsNull: Boolean; virtual; + function GetOldUSUARIOValue: String; virtual; + function GetOldUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_RECIBO : Integer read GetID_RECIBOValue write SetID_RECIBOValue; + property ID_RECIBOIsNull : Boolean read GetID_RECIBOIsNull write SetID_RECIBOIsNull; + property OldID_RECIBO : Integer read GetOldID_RECIBOValue; + property OldID_RECIBOIsNull : Boolean read GetOldID_RECIBOIsNull; + property TIPO : String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull : Boolean read GetTIPOIsNull write SetTIPOIsNull; + property OldTIPO : String read GetOldTIPOValue; + property OldTIPOIsNull : Boolean read GetOldTIPOIsNull; + property FECHA_PAGO : DateTime read GetFECHA_PAGOValue write SetFECHA_PAGOValue; + property FECHA_PAGOIsNull : Boolean read GetFECHA_PAGOIsNull write SetFECHA_PAGOIsNull; + property OldFECHA_PAGO : DateTime read GetOldFECHA_PAGOValue; + property OldFECHA_PAGOIsNull : Boolean read GetOldFECHA_PAGOIsNull; + property TITULAR : String read GetTITULARValue write SetTITULARValue; + property TITULARIsNull : Boolean read GetTITULARIsNull write SetTITULARIsNull; + property OldTITULAR : String read GetOldTITULARValue; + property OldTITULARIsNull : Boolean read GetOldTITULARIsNull; + property ENTIDAD : String read GetENTIDADValue write SetENTIDADValue; + property ENTIDADIsNull : Boolean read GetENTIDADIsNull write SetENTIDADIsNull; + property OldENTIDAD : String read GetOldENTIDADValue; + property OldENTIDADIsNull : Boolean read GetOldENTIDADIsNull; + property SUCURSAL : String read GetSUCURSALValue write SetSUCURSALValue; + property SUCURSALIsNull : Boolean read GetSUCURSALIsNull write SetSUCURSALIsNull; + property OldSUCURSAL : String read GetOldSUCURSALValue; + property OldSUCURSALIsNull : Boolean read GetOldSUCURSALIsNull; + property DC : String read GetDCValue write SetDCValue; + property DCIsNull : Boolean read GetDCIsNull write SetDCIsNull; + property OldDC : String read GetOldDCValue; + property OldDCIsNull : Boolean read GetOldDCIsNull; + property CUENTA : String read GetCUENTAValue write SetCUENTAValue; + property CUENTAIsNull : Boolean read GetCUENTAIsNull write SetCUENTAIsNull; + property OldCUENTA : String read GetOldCUENTAValue; + property OldCUENTAIsNull : Boolean read GetOldCUENTAIsNull; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull : Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_ALTAIsNull : Boolean read GetOldFECHA_ALTAIsNull; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull : Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldUSUARIOIsNull : Boolean read GetOldUSUARIOIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers, uDAInterfaces; + +{ TListaAnosRecibosBusinessProcessorRules } +constructor TListaAnosRecibosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TListaAnosRecibosBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TListaAnosRecibosBusinessProcessorRules.GetANOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosRecibosANO]; +end; + +function TListaAnosRecibosBusinessProcessorRules.GetANOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosRecibosANO]); +end; + +function TListaAnosRecibosBusinessProcessorRules.GetOldANOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaAnosRecibosANO]; +end; + +function TListaAnosRecibosBusinessProcessorRules.GetOldANOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ListaAnosRecibosANO]); +end; + +procedure TListaAnosRecibosBusinessProcessorRules.SetANOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosRecibosANO] := aValue; +end; + +procedure TListaAnosRecibosBusinessProcessorRules.SetANOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosRecibosANO] := Null; +end; + + +{ TRecibosCompensadosProvBusinessProcessorRules } +constructor TRecibosCompensadosProvBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TRecibosCompensadosProvBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvID]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvID]); +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvID]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvID]); +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvID] := aValue; +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvID] := Null; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetID_RECIBO_COMPENSADOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvID_RECIBO_COMPENSADO]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetID_RECIBO_COMPENSADOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvID_RECIBO_COMPENSADO]); +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldID_RECIBO_COMPENSADOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvID_RECIBO_COMPENSADO]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldID_RECIBO_COMPENSADOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvID_RECIBO_COMPENSADO]); +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetID_RECIBO_COMPENSADOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvID_RECIBO_COMPENSADO] := aValue; +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetID_RECIBO_COMPENSADOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvID_RECIBO_COMPENSADO] := Null; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetREFERENCIA_REC_COMPENSADOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvREFERENCIA_REC_COMPENSADO]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetREFERENCIA_REC_COMPENSADOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvREFERENCIA_REC_COMPENSADO]); +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldREFERENCIA_REC_COMPENSADOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvREFERENCIA_REC_COMPENSADO]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldREFERENCIA_REC_COMPENSADOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvREFERENCIA_REC_COMPENSADO]); +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetREFERENCIA_REC_COMPENSADOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvREFERENCIA_REC_COMPENSADO] := aValue; +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetREFERENCIA_REC_COMPENSADOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvREFERENCIA_REC_COMPENSADO] := Null; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvREFERENCIA]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvREFERENCIA]); +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvREFERENCIA]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvREFERENCIA]); +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvREFERENCIA] := aValue; +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvREFERENCIA] := Null; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvREFERENCIA_PROVEEDOR]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetREFERENCIA_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvREFERENCIA_PROVEEDOR]); +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvREFERENCIA_PROVEEDOR]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvREFERENCIA_PROVEEDOR]); +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvREFERENCIA_PROVEEDOR] := aValue; +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvREFERENCIA_PROVEEDOR] := Null; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvSITUACION]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetSITUACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvSITUACION]); +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvSITUACION]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldSITUACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvSITUACION]); +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetSITUACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvSITUACION] := aValue; +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetSITUACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvSITUACION] := Null; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvID_FACTURA]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetID_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvID_FACTURA]); +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvID_FACTURA]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldID_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvID_FACTURA]); +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetID_FACTURAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvID_FACTURA] := aValue; +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetID_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvID_FACTURA] := Null; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetID_REMESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvID_REMESA]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetID_REMESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvID_REMESA]); +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldID_REMESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvID_REMESA]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldID_REMESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvID_REMESA]); +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetID_REMESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvID_REMESA] := aValue; +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetID_REMESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvID_REMESA] := Null; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetREFERENCIA_REMESAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvREFERENCIA_REMESA]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetREFERENCIA_REMESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvREFERENCIA_REMESA]); +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldREFERENCIA_REMESAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvREFERENCIA_REMESA]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldREFERENCIA_REMESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvREFERENCIA_REMESA]); +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetREFERENCIA_REMESAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvREFERENCIA_REMESA] := aValue; +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetREFERENCIA_REMESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvREFERENCIA_REMESA] := Null; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetFECHA_EMISIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvFECHA_EMISION]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetFECHA_EMISIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvFECHA_EMISION]); +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldFECHA_EMISIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvFECHA_EMISION]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldFECHA_EMISIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvFECHA_EMISION]); +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetFECHA_EMISIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvFECHA_EMISION] := aValue; +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetFECHA_EMISIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvFECHA_EMISION] := Null; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetFECHA_VENCIMIENTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvFECHA_VENCIMIENTO]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetFECHA_VENCIMIENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvFECHA_VENCIMIENTO]); +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldFECHA_VENCIMIENTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvFECHA_VENCIMIENTO]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldFECHA_VENCIMIENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvFECHA_VENCIMIENTO]); +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetFECHA_VENCIMIENTOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvFECHA_VENCIMIENTO] := aValue; +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetFECHA_VENCIMIENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvFECHA_VENCIMIENTO] := Null; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvDESCRIPCION]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvDESCRIPCION]); +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvDESCRIPCION]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvDESCRIPCION]); +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvDESCRIPCION] := aValue; +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvDESCRIPCION] := Null; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOBSERVACIONESValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvOBSERVACIONES]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOBSERVACIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvOBSERVACIONES]); +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldOBSERVACIONESValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvOBSERVACIONES]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldOBSERVACIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvOBSERVACIONES]); +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvOBSERVACIONES] := aValue; +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetOBSERVACIONESIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvOBSERVACIONES] := Null; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetIMPORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvIMPORTE]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetIMPORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvIMPORTE]); +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldIMPORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvIMPORTE]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldIMPORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvIMPORTE]); +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetIMPORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvIMPORTE] := aValue; +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetIMPORTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvIMPORTE] := Null; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOTROS_GASTOSValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvOTROS_GASTOS]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOTROS_GASTOSIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvOTROS_GASTOS]); +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldOTROS_GASTOSValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvOTROS_GASTOS]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldOTROS_GASTOSIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvOTROS_GASTOS]); +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetOTROS_GASTOSValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvOTROS_GASTOS] := aValue; +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetOTROS_GASTOSIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvOTROS_GASTOS] := Null; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvIMPORTE_TOTAL]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvIMPORTE_TOTAL]); +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvIMPORTE_TOTAL]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvIMPORTE_TOTAL]); +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvIMPORTE_TOTAL] := aValue; +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvIMPORTE_TOTAL] := Null; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetREFERENCIA_FACTURA_PROVValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvREFERENCIA_FACTURA_PROV]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetREFERENCIA_FACTURA_PROVIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvREFERENCIA_FACTURA_PROV]); +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldREFERENCIA_FACTURA_PROVValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvREFERENCIA_FACTURA_PROV]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldREFERENCIA_FACTURA_PROVIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvREFERENCIA_FACTURA_PROV]); +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetREFERENCIA_FACTURA_PROVValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvREFERENCIA_FACTURA_PROV] := aValue; +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetREFERENCIA_FACTURA_PROVIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvREFERENCIA_FACTURA_PROV] := Null; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetFECHA_FACTURAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvFECHA_FACTURA]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetFECHA_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvFECHA_FACTURA]); +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldFECHA_FACTURAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvFECHA_FACTURA]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldFECHA_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvFECHA_FACTURA]); +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetFECHA_FACTURAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvFECHA_FACTURA] := aValue; +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetFECHA_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvFECHA_FACTURA] := Null; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetFORMA_PAGO_FACTURAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvFORMA_PAGO_FACTURA]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetFORMA_PAGO_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvFORMA_PAGO_FACTURA]); +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldFORMA_PAGO_FACTURAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvFORMA_PAGO_FACTURA]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldFORMA_PAGO_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvFORMA_PAGO_FACTURA]); +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetFORMA_PAGO_FACTURAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvFORMA_PAGO_FACTURA] := aValue; +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetFORMA_PAGO_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvFORMA_PAGO_FACTURA] := Null; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetIMPORTE_FACTURAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvIMPORTE_FACTURA]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetIMPORTE_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvIMPORTE_FACTURA]); +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldIMPORTE_FACTURAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvIMPORTE_FACTURA]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldIMPORTE_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvIMPORTE_FACTURA]); +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetIMPORTE_FACTURAValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvIMPORTE_FACTURA] := aValue; +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetIMPORTE_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvIMPORTE_FACTURA] := Null; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvID_EMPRESA]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvID_EMPRESA]); +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvID_EMPRESA]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvID_EMPRESA]); +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvID_EMPRESA] := aValue; +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvID_EMPRESA] := Null; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetDATOS_BANCARIOSValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvDATOS_BANCARIOS]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetDATOS_BANCARIOSIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvDATOS_BANCARIOS]); +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldDATOS_BANCARIOSValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvDATOS_BANCARIOS]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldDATOS_BANCARIOSIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvDATOS_BANCARIOS]); +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetDATOS_BANCARIOSValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvDATOS_BANCARIOS] := aValue; +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetDATOS_BANCARIOSIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvDATOS_BANCARIOS] := Null; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvID_PROVEEDOR]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetID_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvID_PROVEEDOR]); +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvID_PROVEEDOR]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldID_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvID_PROVEEDOR]); +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvID_PROVEEDOR] := aValue; +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetID_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvID_PROVEEDOR] := Null; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetNOMBRE_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvNOMBRE_PROVEEDOR]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetNOMBRE_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvNOMBRE_PROVEEDOR]); +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldNOMBRE_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvNOMBRE_PROVEEDOR]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldNOMBRE_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvNOMBRE_PROVEEDOR]); +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetNOMBRE_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvNOMBRE_PROVEEDOR] := aValue; +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetNOMBRE_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvNOMBRE_PROVEEDOR] := Null; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetNIF_CIF_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvNIF_CIF_PROVEEDOR]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetNIF_CIF_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvNIF_CIF_PROVEEDOR]); +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldNIF_CIF_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvNIF_CIF_PROVEEDOR]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldNIF_CIF_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvNIF_CIF_PROVEEDOR]); +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetNIF_CIF_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvNIF_CIF_PROVEEDOR] := aValue; +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetNIF_CIF_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvNIF_CIF_PROVEEDOR] := Null; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvFECHA_ALTA]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvFECHA_ALTA]); +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvFECHA_ALTA]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvFECHA_ALTA]); +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvFECHA_ALTA] := aValue; +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvFECHA_ALTA] := Null; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvFECHA_MODIFICACION]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvFECHA_MODIFICACION]); +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvFECHA_MODIFICACION]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvFECHA_MODIFICACION]); +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvFECHA_MODIFICACION] := aValue; +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvFECHA_MODIFICACION] := Null; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvUSUARIO]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvUSUARIO]); +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvUSUARIO]; +end; + +function TRecibosCompensadosProvBusinessProcessorRules.GetOldUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosCompensadosProvUSUARIO]); +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvUSUARIO] := aValue; +end; + +procedure TRecibosCompensadosProvBusinessProcessorRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosCompensadosProvUSUARIO] := Null; +end; + + +{ TRecibosProveedorBusinessProcessorRules } +constructor TRecibosProveedorBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TRecibosProveedorBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TRecibosProveedorBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorID]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorID]); +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorID]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorID]); +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorID] := aValue; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorID] := Null; +end; + +function TRecibosProveedorBusinessProcessorRules.GetID_RECIBO_COMPENSADOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorID_RECIBO_COMPENSADO]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetID_RECIBO_COMPENSADOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorID_RECIBO_COMPENSADO]); +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldID_RECIBO_COMPENSADOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorID_RECIBO_COMPENSADO]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldID_RECIBO_COMPENSADOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorID_RECIBO_COMPENSADO]); +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetID_RECIBO_COMPENSADOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorID_RECIBO_COMPENSADO] := aValue; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetID_RECIBO_COMPENSADOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorID_RECIBO_COMPENSADO] := Null; +end; + +function TRecibosProveedorBusinessProcessorRules.GetREFERENCIA_REC_COMPENSADOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorREFERENCIA_REC_COMPENSADO]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetREFERENCIA_REC_COMPENSADOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorREFERENCIA_REC_COMPENSADO]); +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldREFERENCIA_REC_COMPENSADOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorREFERENCIA_REC_COMPENSADO]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldREFERENCIA_REC_COMPENSADOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorREFERENCIA_REC_COMPENSADO]); +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetREFERENCIA_REC_COMPENSADOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorREFERENCIA_REC_COMPENSADO] := aValue; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetREFERENCIA_REC_COMPENSADOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorREFERENCIA_REC_COMPENSADO] := Null; +end; + +function TRecibosProveedorBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorREFERENCIA]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorREFERENCIA]); +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorREFERENCIA]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorREFERENCIA]); +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorREFERENCIA] := aValue; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorREFERENCIA] := Null; +end; + +function TRecibosProveedorBusinessProcessorRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorREFERENCIA_PROVEEDOR]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetREFERENCIA_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorREFERENCIA_PROVEEDOR]); +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorREFERENCIA_PROVEEDOR]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorREFERENCIA_PROVEEDOR]); +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorREFERENCIA_PROVEEDOR] := aValue; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorREFERENCIA_PROVEEDOR] := Null; +end; + +function TRecibosProveedorBusinessProcessorRules.GetSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorSITUACION]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetSITUACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorSITUACION]); +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldSITUACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorSITUACION]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldSITUACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorSITUACION]); +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetSITUACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorSITUACION] := aValue; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetSITUACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorSITUACION] := Null; +end; + +function TRecibosProveedorBusinessProcessorRules.GetID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorID_FACTURA]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetID_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorID_FACTURA]); +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorID_FACTURA]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldID_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorID_FACTURA]); +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetID_FACTURAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorID_FACTURA] := aValue; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetID_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorID_FACTURA] := Null; +end; + +function TRecibosProveedorBusinessProcessorRules.GetID_REMESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorID_REMESA]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetID_REMESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorID_REMESA]); +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldID_REMESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorID_REMESA]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldID_REMESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorID_REMESA]); +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetID_REMESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorID_REMESA] := aValue; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetID_REMESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorID_REMESA] := Null; +end; + +function TRecibosProveedorBusinessProcessorRules.GetREFERENCIA_REMESAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorREFERENCIA_REMESA]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetREFERENCIA_REMESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorREFERENCIA_REMESA]); +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldREFERENCIA_REMESAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorREFERENCIA_REMESA]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldREFERENCIA_REMESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorREFERENCIA_REMESA]); +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetREFERENCIA_REMESAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorREFERENCIA_REMESA] := aValue; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetREFERENCIA_REMESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorREFERENCIA_REMESA] := Null; +end; + +function TRecibosProveedorBusinessProcessorRules.GetFECHA_EMISIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorFECHA_EMISION]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetFECHA_EMISIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorFECHA_EMISION]); +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldFECHA_EMISIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorFECHA_EMISION]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldFECHA_EMISIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorFECHA_EMISION]); +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetFECHA_EMISIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorFECHA_EMISION] := aValue; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetFECHA_EMISIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorFECHA_EMISION] := Null; +end; + +function TRecibosProveedorBusinessProcessorRules.GetFECHA_VENCIMIENTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorFECHA_VENCIMIENTO]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetFECHA_VENCIMIENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorFECHA_VENCIMIENTO]); +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldFECHA_VENCIMIENTOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorFECHA_VENCIMIENTO]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldFECHA_VENCIMIENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorFECHA_VENCIMIENTO]); +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetFECHA_VENCIMIENTOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorFECHA_VENCIMIENTO] := aValue; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetFECHA_VENCIMIENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorFECHA_VENCIMIENTO] := Null; +end; + +function TRecibosProveedorBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorDESCRIPCION]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorDESCRIPCION]); +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorDESCRIPCION]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorDESCRIPCION]); +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorDESCRIPCION] := aValue; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorDESCRIPCION] := Null; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOBSERVACIONESValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorOBSERVACIONES]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOBSERVACIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorOBSERVACIONES]); +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldOBSERVACIONESValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorOBSERVACIONES]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldOBSERVACIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorOBSERVACIONES]); +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorOBSERVACIONES] := aValue; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetOBSERVACIONESIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorOBSERVACIONES] := Null; +end; + +function TRecibosProveedorBusinessProcessorRules.GetIMPORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorIMPORTE]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetIMPORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorIMPORTE]); +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldIMPORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorIMPORTE]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldIMPORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorIMPORTE]); +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetIMPORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorIMPORTE] := aValue; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetIMPORTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorIMPORTE] := Null; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOTROS_GASTOSValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorOTROS_GASTOS]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOTROS_GASTOSIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorOTROS_GASTOS]); +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldOTROS_GASTOSValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorOTROS_GASTOS]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldOTROS_GASTOSIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorOTROS_GASTOS]); +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetOTROS_GASTOSValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorOTROS_GASTOS] := aValue; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetOTROS_GASTOSIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorOTROS_GASTOS] := Null; +end; + +function TRecibosProveedorBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorIMPORTE_TOTAL]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorIMPORTE_TOTAL]); +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorIMPORTE_TOTAL]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorIMPORTE_TOTAL]); +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorIMPORTE_TOTAL] := aValue; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorIMPORTE_TOTAL] := Null; +end; + +function TRecibosProveedorBusinessProcessorRules.GetREFERENCIA_FACTURA_PROVValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorREFERENCIA_FACTURA_PROV]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetREFERENCIA_FACTURA_PROVIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorREFERENCIA_FACTURA_PROV]); +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldREFERENCIA_FACTURA_PROVValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorREFERENCIA_FACTURA_PROV]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldREFERENCIA_FACTURA_PROVIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorREFERENCIA_FACTURA_PROV]); +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetREFERENCIA_FACTURA_PROVValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorREFERENCIA_FACTURA_PROV] := aValue; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetREFERENCIA_FACTURA_PROVIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorREFERENCIA_FACTURA_PROV] := Null; +end; + +function TRecibosProveedorBusinessProcessorRules.GetFECHA_FACTURAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorFECHA_FACTURA]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetFECHA_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorFECHA_FACTURA]); +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldFECHA_FACTURAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorFECHA_FACTURA]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldFECHA_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorFECHA_FACTURA]); +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetFECHA_FACTURAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorFECHA_FACTURA] := aValue; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetFECHA_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorFECHA_FACTURA] := Null; +end; + +function TRecibosProveedorBusinessProcessorRules.GetFORMA_PAGO_FACTURAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorFORMA_PAGO_FACTURA]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetFORMA_PAGO_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorFORMA_PAGO_FACTURA]); +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldFORMA_PAGO_FACTURAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorFORMA_PAGO_FACTURA]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldFORMA_PAGO_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorFORMA_PAGO_FACTURA]); +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetFORMA_PAGO_FACTURAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorFORMA_PAGO_FACTURA] := aValue; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetFORMA_PAGO_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorFORMA_PAGO_FACTURA] := Null; +end; + +function TRecibosProveedorBusinessProcessorRules.GetIMPORTE_FACTURAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorIMPORTE_FACTURA]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetIMPORTE_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorIMPORTE_FACTURA]); +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldIMPORTE_FACTURAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorIMPORTE_FACTURA]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldIMPORTE_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorIMPORTE_FACTURA]); +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetIMPORTE_FACTURAValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorIMPORTE_FACTURA] := aValue; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetIMPORTE_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorIMPORTE_FACTURA] := Null; +end; + +function TRecibosProveedorBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorID_EMPRESA]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorID_EMPRESA]); +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorID_EMPRESA]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorID_EMPRESA]); +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorID_EMPRESA] := aValue; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorID_EMPRESA] := Null; +end; + +function TRecibosProveedorBusinessProcessorRules.GetDATOS_BANCARIOSValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorDATOS_BANCARIOS]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetDATOS_BANCARIOSIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorDATOS_BANCARIOS]); +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldDATOS_BANCARIOSValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorDATOS_BANCARIOS]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldDATOS_BANCARIOSIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorDATOS_BANCARIOS]); +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetDATOS_BANCARIOSValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorDATOS_BANCARIOS] := aValue; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetDATOS_BANCARIOSIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorDATOS_BANCARIOS] := Null; +end; + +function TRecibosProveedorBusinessProcessorRules.GetID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorID_PROVEEDOR]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetID_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorID_PROVEEDOR]); +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorID_PROVEEDOR]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldID_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorID_PROVEEDOR]); +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorID_PROVEEDOR] := aValue; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetID_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorID_PROVEEDOR] := Null; +end; + +function TRecibosProveedorBusinessProcessorRules.GetNOMBRE_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorNOMBRE_PROVEEDOR]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetNOMBRE_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorNOMBRE_PROVEEDOR]); +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldNOMBRE_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorNOMBRE_PROVEEDOR]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldNOMBRE_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorNOMBRE_PROVEEDOR]); +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetNOMBRE_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorNOMBRE_PROVEEDOR] := aValue; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetNOMBRE_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorNOMBRE_PROVEEDOR] := Null; +end; + +function TRecibosProveedorBusinessProcessorRules.GetNIF_CIF_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorNIF_CIF_PROVEEDOR]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetNIF_CIF_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorNIF_CIF_PROVEEDOR]); +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldNIF_CIF_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorNIF_CIF_PROVEEDOR]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldNIF_CIF_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorNIF_CIF_PROVEEDOR]); +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetNIF_CIF_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorNIF_CIF_PROVEEDOR] := aValue; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetNIF_CIF_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorNIF_CIF_PROVEEDOR] := Null; +end; + +function TRecibosProveedorBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorFECHA_ALTA]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorFECHA_ALTA]); +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorFECHA_ALTA]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorFECHA_ALTA]); +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorFECHA_ALTA] := aValue; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorFECHA_ALTA] := Null; +end; + +function TRecibosProveedorBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorFECHA_MODIFICACION]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorFECHA_MODIFICACION]); +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorFECHA_MODIFICACION]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorFECHA_MODIFICACION]); +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorFECHA_MODIFICACION] := aValue; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorFECHA_MODIFICACION] := Null; +end; + +function TRecibosProveedorBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorUSUARIO]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorUSUARIO]); +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorUSUARIO]; +end; + +function TRecibosProveedorBusinessProcessorRules.GetOldUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RecibosProveedorUSUARIO]); +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorUSUARIO] := aValue; +end; + +procedure TRecibosProveedorBusinessProcessorRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RecibosProveedorUSUARIO] := Null; +end; + + +{ TPagosProveedorBusinessProcessorRules } +constructor TPagosProveedorBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TPagosProveedorBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TPagosProveedorBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorID]; +end; + +function TPagosProveedorBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorID]); +end; + +function TPagosProveedorBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorID]; +end; + +function TPagosProveedorBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorID]); +end; + +procedure TPagosProveedorBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorID] := aValue; +end; + +procedure TPagosProveedorBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorID] := Null; +end; + +function TPagosProveedorBusinessProcessorRules.GetID_RECIBOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorID_RECIBO]; +end; + +function TPagosProveedorBusinessProcessorRules.GetID_RECIBOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorID_RECIBO]); +end; + +function TPagosProveedorBusinessProcessorRules.GetOldID_RECIBOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorID_RECIBO]; +end; + +function TPagosProveedorBusinessProcessorRules.GetOldID_RECIBOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorID_RECIBO]); +end; + +procedure TPagosProveedorBusinessProcessorRules.SetID_RECIBOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorID_RECIBO] := aValue; +end; + +procedure TPagosProveedorBusinessProcessorRules.SetID_RECIBOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorID_RECIBO] := Null; +end; + +function TPagosProveedorBusinessProcessorRules.GetTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorTIPO]; +end; + +function TPagosProveedorBusinessProcessorRules.GetTIPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorTIPO]); +end; + +function TPagosProveedorBusinessProcessorRules.GetOldTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorTIPO]; +end; + +function TPagosProveedorBusinessProcessorRules.GetOldTIPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorTIPO]); +end; + +procedure TPagosProveedorBusinessProcessorRules.SetTIPOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorTIPO] := aValue; +end; + +procedure TPagosProveedorBusinessProcessorRules.SetTIPOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorTIPO] := Null; +end; + +function TPagosProveedorBusinessProcessorRules.GetFECHA_PAGOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorFECHA_PAGO]; +end; + +function TPagosProveedorBusinessProcessorRules.GetFECHA_PAGOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorFECHA_PAGO]); +end; + +function TPagosProveedorBusinessProcessorRules.GetOldFECHA_PAGOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorFECHA_PAGO]; +end; + +function TPagosProveedorBusinessProcessorRules.GetOldFECHA_PAGOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorFECHA_PAGO]); +end; + +procedure TPagosProveedorBusinessProcessorRules.SetFECHA_PAGOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorFECHA_PAGO] := aValue; +end; + +procedure TPagosProveedorBusinessProcessorRules.SetFECHA_PAGOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorFECHA_PAGO] := Null; +end; + +function TPagosProveedorBusinessProcessorRules.GetTITULARValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorTITULAR]; +end; + +function TPagosProveedorBusinessProcessorRules.GetTITULARIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorTITULAR]); +end; + +function TPagosProveedorBusinessProcessorRules.GetOldTITULARValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorTITULAR]; +end; + +function TPagosProveedorBusinessProcessorRules.GetOldTITULARIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorTITULAR]); +end; + +procedure TPagosProveedorBusinessProcessorRules.SetTITULARValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorTITULAR] := aValue; +end; + +procedure TPagosProveedorBusinessProcessorRules.SetTITULARIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorTITULAR] := Null; +end; + +function TPagosProveedorBusinessProcessorRules.GetENTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorENTIDAD]; +end; + +function TPagosProveedorBusinessProcessorRules.GetENTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorENTIDAD]); +end; + +function TPagosProveedorBusinessProcessorRules.GetOldENTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorENTIDAD]; +end; + +function TPagosProveedorBusinessProcessorRules.GetOldENTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorENTIDAD]); +end; + +procedure TPagosProveedorBusinessProcessorRules.SetENTIDADValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorENTIDAD] := aValue; +end; + +procedure TPagosProveedorBusinessProcessorRules.SetENTIDADIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorENTIDAD] := Null; +end; + +function TPagosProveedorBusinessProcessorRules.GetSUCURSALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorSUCURSAL]; +end; + +function TPagosProveedorBusinessProcessorRules.GetSUCURSALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorSUCURSAL]); +end; + +function TPagosProveedorBusinessProcessorRules.GetOldSUCURSALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorSUCURSAL]; +end; + +function TPagosProveedorBusinessProcessorRules.GetOldSUCURSALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorSUCURSAL]); +end; + +procedure TPagosProveedorBusinessProcessorRules.SetSUCURSALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorSUCURSAL] := aValue; +end; + +procedure TPagosProveedorBusinessProcessorRules.SetSUCURSALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorSUCURSAL] := Null; +end; + +function TPagosProveedorBusinessProcessorRules.GetDCValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorDC]; +end; + +function TPagosProveedorBusinessProcessorRules.GetDCIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorDC]); +end; + +function TPagosProveedorBusinessProcessorRules.GetOldDCValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorDC]; +end; + +function TPagosProveedorBusinessProcessorRules.GetOldDCIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorDC]); +end; + +procedure TPagosProveedorBusinessProcessorRules.SetDCValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorDC] := aValue; +end; + +procedure TPagosProveedorBusinessProcessorRules.SetDCIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorDC] := Null; +end; + +function TPagosProveedorBusinessProcessorRules.GetCUENTAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorCUENTA]; +end; + +function TPagosProveedorBusinessProcessorRules.GetCUENTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorCUENTA]); +end; + +function TPagosProveedorBusinessProcessorRules.GetOldCUENTAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorCUENTA]; +end; + +function TPagosProveedorBusinessProcessorRules.GetOldCUENTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorCUENTA]); +end; + +procedure TPagosProveedorBusinessProcessorRules.SetCUENTAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorCUENTA] := aValue; +end; + +procedure TPagosProveedorBusinessProcessorRules.SetCUENTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorCUENTA] := Null; +end; + +function TPagosProveedorBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorFECHA_ALTA]; +end; + +function TPagosProveedorBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorFECHA_ALTA]); +end; + +function TPagosProveedorBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorFECHA_ALTA]; +end; + +function TPagosProveedorBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorFECHA_ALTA]); +end; + +procedure TPagosProveedorBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorFECHA_ALTA] := aValue; +end; + +procedure TPagosProveedorBusinessProcessorRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorFECHA_ALTA] := Null; +end; + +function TPagosProveedorBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorFECHA_MODIFICACION]; +end; + +function TPagosProveedorBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorFECHA_MODIFICACION]); +end; + +function TPagosProveedorBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorFECHA_MODIFICACION]; +end; + +function TPagosProveedorBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorFECHA_MODIFICACION]); +end; + +procedure TPagosProveedorBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorFECHA_MODIFICACION] := aValue; +end; + +procedure TPagosProveedorBusinessProcessorRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorFECHA_MODIFICACION] := Null; +end; + +function TPagosProveedorBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorUSUARIO]; +end; + +function TPagosProveedorBusinessProcessorRules.GetUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorUSUARIO]); +end; + +function TPagosProveedorBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorUSUARIO]; +end; + +function TPagosProveedorBusinessProcessorRules.GetOldUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PagosProveedorUSUARIO]); +end; + +procedure TPagosProveedorBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorUSUARIO] := aValue; +end; + +procedure TPagosProveedorBusinessProcessorRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosProveedorUSUARIO] := Null; +end; + + +initialization + RegisterBusinessProcessorRules(RID_ListaAnosRecibosDelta, TListaAnosRecibosBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_RecibosCompensadosProvDelta, TRecibosCompensadosProvBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_RecibosProveedorDelta, TRecibosProveedorBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_PagosProveedorDelta, TPagosProveedorBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Recibos de proveedor/Model/uBizPagosProveedor.dcu b/Source/Modulos/Recibos de proveedor/Model/uBizPagosProveedor.dcu new file mode 100644 index 0000000..150a7d9 Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Model/uBizPagosProveedor.dcu differ diff --git a/Source/Modulos/Recibos de proveedor/Model/uBizPagosProveedor.pas b/Source/Modulos/Recibos de proveedor/Model/uBizPagosProveedor.pas new file mode 100644 index 0000000..b11e95c --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Model/uBizPagosProveedor.pas @@ -0,0 +1,70 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uBizPagosProveedor; + +interface + +uses + uDAInterfaces, uDADataTable, uDBSelectionListUtils, schRecibosProveedorClient_Intf; + +const + BIZ_CLIENT_IBIZPAGOSPROVEEDOR = 'Client.IBizPagosProveedor'; + + CTE_PAGO = 'Pago'; + CTE_DEVOLUCION = 'Devolucin'; + +type + IBizPagosProveedor = interface(IPagosProveedor) + ['{5446E4B5-09E7-4FF0-ACFE-E157E9CADB17}'] + end; + + TBizPagosProveedor = class(TPagosProveedorDataTableRules, IBizPagosProveedor) + protected + procedure BeforeInsert(Sender: TDADataTable); override; + end; + +implementation + +uses + DB; + +{ TBizPagosProveedor } + +procedure TBizPagosProveedor.BeforeInsert(Sender: TDADataTable); +var + AMasterTable : TDADataTable; +begin + inherited; + AMasterTable := DataTable.GetMasterDataTable; + if Assigned(AMasterTable) and (AMasterTable.State = dsInsert) then + AMasterTable.Post; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_IBIZPAGOSPROVEEDOR, TBizPagosProveedor); + +finalization + +end. + diff --git a/Source/Modulos/Recibos de proveedor/Model/uBizRecibosCliCompensados.pas b/Source/Modulos/Recibos de proveedor/Model/uBizRecibosCliCompensados.pas new file mode 100644 index 0000000..1bb4d43 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Model/uBizRecibosCliCompensados.pas @@ -0,0 +1,68 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uBizRecibosCliCompensados; + +interface + +uses + uDAInterfaces, uDADataTable, uDBSelectionListUtils, schRecibosProveedorClient_Intf; + +const + BIZ_CLIENT_RECIBOS_COMPENSADOSPROV = 'Client.RecibosCompensadosProv'; + +type + IBizRecibosCompensadosProv = interface(IRecibosCompensadosProv) + ['{64F55788-08FC-473D-A5CA-5F99509C2529}'] + end; + + TBizRecibosCompensadosProv = class(TRecibosCompensadosProvDataTableRules, IBizRecibosCompensadosProv) + protected + procedure BeforeInsert(Sender: TDADataTable); override; + end; + +implementation + +uses + DB; + + +{ TBizRecibosCompensadosProv } + +procedure TBizRecibosCompensadosProv.BeforeInsert(Sender: TDADataTable); +var + AMasterTable : TDADataTable; +begin + inherited; + AMasterTable := DataTable.GetMasterDataTable; + if Assigned(AMasterTable) and (AMasterTable.State = dsInsert) then + AMasterTable.Post; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_RECIBOS_COMPENSADOSPROV, TBizRecibosCompensadosProv); + +finalization + +end. + diff --git a/Source/Modulos/Recibos de proveedor/Model/uBizRecibosProvCompensados.dcu b/Source/Modulos/Recibos de proveedor/Model/uBizRecibosProvCompensados.dcu new file mode 100644 index 0000000..b604abf Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Model/uBizRecibosProvCompensados.dcu differ diff --git a/Source/Modulos/Recibos de proveedor/Model/uBizRecibosProvCompensados.pas b/Source/Modulos/Recibos de proveedor/Model/uBizRecibosProvCompensados.pas new file mode 100644 index 0000000..78783f5 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Model/uBizRecibosProvCompensados.pas @@ -0,0 +1,68 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uBizRecibosProvCompensados; + +interface + +uses + uDAInterfaces, uDADataTable, uDBSelectionListUtils, schRecibosProveedorClient_Intf; + +const + BIZ_CLIENT_RECIBOS_COMPENSADOSPROV = 'Client.RecibosCompensadosProv'; + +type + IBizRecibosCompensadosProv = interface(IRecibosCompensadosProv) + ['{64F55788-08FC-473D-A5CA-5F99509C2529}'] + end; + + TBizRecibosCompensadosProv = class(TRecibosCompensadosProvDataTableRules, IBizRecibosCompensadosProv) + protected + procedure BeforeInsert(Sender: TDADataTable); override; + end; + +implementation + +uses + DB; + + +{ TBizRecibosCompensadosProv } + +procedure TBizRecibosCompensadosProv.BeforeInsert(Sender: TDADataTable); +var + AMasterTable : TDADataTable; +begin + inherited; + AMasterTable := DataTable.GetMasterDataTable; + if Assigned(AMasterTable) and (AMasterTable.State = dsInsert) then + AMasterTable.Post; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_RECIBOS_COMPENSADOSPROV, TBizRecibosCompensadosProv); + +finalization + +end. + diff --git a/Source/Modulos/Recibos de proveedor/Model/uBizRecibosProveedor.dcu b/Source/Modulos/Recibos de proveedor/Model/uBizRecibosProveedor.dcu new file mode 100644 index 0000000..ceba0c6 Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Model/uBizRecibosProveedor.dcu differ diff --git a/Source/Modulos/Recibos de proveedor/Model/uBizRecibosProveedor.pas b/Source/Modulos/Recibos de proveedor/Model/uBizRecibosProveedor.pas new file mode 100644 index 0000000..eadb88a --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Model/uBizRecibosProveedor.pas @@ -0,0 +1,207 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uBizRecibosProveedor; + +interface + +uses + uDAInterfaces, uDADataTable, uDBSelectionListUtils, schRecibosProveedorClient_Intf, + uBizPagosProveedor, uBizRecibosProvCompensados, uBizContactos; + +const + BIZ_CLIENT_IBIZRECIBOSPROVEEDOR = 'Client.IBizRecibosProveedor'; + + CTE_PENDIENTE = 'PENDIENTE'; + CTE_PAGADO = 'PAGADO'; + CTE_DEVUELTO = 'DEVUELTO'; + +type + + IBizRecibosProveedor = interface(IRecibosProveedor) + ['{FEE753DF-0471-4754-A86C-58BF615929CF}'] + function EsNuevo : Boolean; + + // No se puede cambiar el Proveedor por que depende de la factura + function GetProveedor : IBizProveedor; + property Proveedor : IBizProveedor read GetProveedor; + + // Esta propidad es para que el controlador pueda acceder directamente + // a la propiedad Proveedor + procedure _SetProveedor(AValue : IBizProveedor); + function _GetProveedor : IBizProveedor; + property _Proveedor : IBizProveedor read _GetProveedor write _SetProveedor; + + procedure SetPagos(AValue : IBizPagosProveedor); + function GetPagos : IBizPagosProveedor; + property Pagos : IBizPagosProveedor read GetPagos write SetPagos; + + function GetRecibosCompensados: IBizRecibosCompensadosProv; + procedure SetRecibosCompensados(const Value: IBizRecibosCompensadosProv); + property RecibosCompensados: IBizRecibosCompensadosProv read GetRecibosCompensados write SetRecibosCompensados; + end; + + + TBizRecibosProveedor = class(TRecibosProveedorDataTableRules, IBizRecibosProveedor, ISeleccionable) + protected + FPagos : IBizPagosProveedor; + FPagosLink : TDADataSource; + FRecibosCompensados: IBizRecibosCompensadosProv; + FRecibosCompensadosLink : TDADataSource; + FProveedor : IBizProveedor; + FSeleccionableInterface : ISeleccionable; + + // No se puede cambiar el Proveedor por que depende de la factura + function GetProveedor : IBizProveedor; + property Proveedor : IBizProveedor read GetProveedor; + + // Esta propidad es para que el controlador pueda acceder directamente + // a la propiedad Proveedor + procedure _SetProveedor(AValue : IBizProveedor); + function _GetProveedor : IBizProveedor; + property _Proveedor : IBizProveedor read _GetProveedor write _SetProveedor; + + procedure SetPagos(AValue : IBizPagosProveedor); + function GetPagos : IBizPagosProveedor; + procedure OnNewRecord(Sender: TDADataTable); override; + + function GetRecibosCompensados: IBizRecibosCompensadosProv; + procedure SetRecibosCompensados(const Value: IBizRecibosCompensadosProv); + + procedure SetID_REMESAValue(const aValue: Integer); override; + + public + property RecibosCompensados: IBizRecibosCompensadosProv read GetRecibosCompensados write SetRecibosCompensados; + property Pagos : IBizPagosProveedor read GetPagos write SetPagos; + property SeleccionableInterface : ISeleccionable read FSeleccionableInterface + write FSeleccionableInterface + implements ISeleccionable; + + procedure IniciarValoresIBizRecibosProveedorNuevo; + function EsNuevo : Boolean; + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + end; + +implementation + +{ TBizRecibosProveedor } + +uses + SysUtils, uDataTableUtils, schContactosClient_Intf; + + function TBizRecibosProveedor.GetProveedor: IBizProveedor; +begin + Result := FProveedor; +end; + +function TBizRecibosProveedor.GetRecibosCompensados: IBizRecibosCompensadosProv; +begin + Result := FRecibosCompensados; +end; + +function TBizRecibosProveedor.GetPagos: IBizPagosProveedor; +begin + Result := FPagos; +end; + +procedure TBizRecibosProveedor.SetID_REMESAValue(const aValue: Integer); +begin + if (aValue = 0) then + SetFieldNull(DataTable, fld_RecibosProveedorID_REMESA) + else + inherited; +end; + +procedure TBizRecibosProveedor.SetPagos(AValue: IBizPagosProveedor); + begin + FPagos := AValue; + EnlazarMaestroDetalle(FPagosLink, FPagos); + end; + +procedure TBizRecibosProveedor.SetRecibosCompensados(const Value: IBizRecibosCompensadosProv); +begin + FRecibosCompensados := Value; + EnlazarMaestroDetalle(FRecibosCompensadosLink, FRecibosCompensados); +end; + +function TBizRecibosProveedor._GetProveedor: IBizProveedor; +begin + Result := FProveedor; +end; + +procedure TBizRecibosProveedor._SetProveedor(AValue: IBizProveedor); +begin + FProveedor := AValue; +end; + +constructor TBizRecibosProveedor.Create(aDataTable: TDADataTable); +begin + inherited; + FProveedor := Nil; + FPagos := Nil; + FRecibosCompensados := Nil; + + FPagosLink := TDADataSource.Create(NIL); + FPagosLink.DataTable := aDataTable; + FRecibosCompensadosLink := TDADataSource.Create(NIL); + FRecibosCompensadosLink.DataTable := aDataTable; + + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +destructor TBizRecibosProveedor.Destroy; +begin + FPagos := NIL; + FRecibosCompensados := Nil; + FreeAndNIL(FPagosLink); + FreeAndNIL(FRecibosCompensadosLink); + FSeleccionableInterface := NIL; + inherited; +end; + +function TBizRecibosProveedor.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +procedure TBizRecibosProveedor.IniciarValoresIBizRecibosProveedorNuevo; +begin + FECHA_EMISION := Date; + IMPORTE := 0; + OTROS_GASTOS := 0; +end; + +procedure TBizRecibosProveedor.OnNewRecord(Sender: TDADataTable); +begin + inherited; + IniciarValoresIBizRecibosProveedorNuevo; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_IBIZRECIBOSPROVEEDOR, TBizRecibosProveedor); + +finalization + +end. + diff --git a/Source/Modulos/Recibos de proveedor/Plugin/RecibosProveedor_plugin.bdsproj b/Source/Modulos/Recibos de proveedor/Plugin/RecibosProveedor_plugin.bdsproj new file mode 100644 index 0000000..45b2366 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Plugin/RecibosProveedor_plugin.bdsproj @@ -0,0 +1,496 @@ + + + + + + + + + + + + RecibosProveedor_plugin.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + EurekaLog 5.1.9 + + + + diff --git a/Source/Modulos/Recibos de proveedor/Plugin/RecibosProveedor_plugin.dcu b/Source/Modulos/Recibos de proveedor/Plugin/RecibosProveedor_plugin.dcu new file mode 100644 index 0000000..7960589 Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Plugin/RecibosProveedor_plugin.dcu differ diff --git a/Source/Modulos/Recibos de proveedor/Plugin/RecibosProveedor_plugin.dpk b/Source/Modulos/Recibos de proveedor/Plugin/RecibosProveedor_plugin.dpk new file mode 100644 index 0000000..680652d Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Plugin/RecibosProveedor_plugin.dpk differ diff --git a/Source/Modulos/Recibos de proveedor/Plugin/RecibosProveedor_plugin.dproj b/Source/Modulos/Recibos de proveedor/Plugin/RecibosProveedor_plugin.dproj new file mode 100644 index 0000000..5009394 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Plugin/RecibosProveedor_plugin.dproj @@ -0,0 +1,599 @@ + + + {e7d762a1-3a15-46b2-bd5b-3821d13b8347} + RecibosProveedor_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\RecibosProveedor_plugin.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + + + + + + + + + + + + + + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + EurekaLog 5.1.9 + + + RecibosProveedor_plugin.dpk + + + + + + + MainSource + + + + +
PluginRecibosProveedor
+
+
+
+ + diff --git a/Source/Modulos/Recibos de proveedor/Plugin/RecibosProveedor_plugin.drc b/Source/Modulos/Recibos de proveedor/Plugin/RecibosProveedor_plugin.drc new file mode 100644 index 0000000..a6045ab --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Plugin/RecibosProveedor_plugin.drc @@ -0,0 +1,17 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Recibos de proveedor\Plugin\uPluginRecibosProveedor.dfm */ +/* C:\Codigo\Source\Modulos\Recibos de proveedor\Plugin\RecibosProveedor_plugin.res */ +/* c:\temp\dtf1B7.tmp */ diff --git a/Source/Modulos/Recibos de proveedor/Plugin/RecibosProveedor_plugin.rc b/Source/Modulos/Recibos de proveedor/Plugin/RecibosProveedor_plugin.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Plugin/RecibosProveedor_plugin.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Recibos de proveedor/Plugin/RecibosProveedor_plugin.res b/Source/Modulos/Recibos de proveedor/Plugin/RecibosProveedor_plugin.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Plugin/RecibosProveedor_plugin.res differ diff --git a/Source/Modulos/Recibos de proveedor/Plugin/uPluginRecibosProveedor.dcu b/Source/Modulos/Recibos de proveedor/Plugin/uPluginRecibosProveedor.dcu new file mode 100644 index 0000000..b023ca4 Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Plugin/uPluginRecibosProveedor.dcu differ diff --git a/Source/Modulos/Recibos de proveedor/Plugin/uPluginRecibosProveedor.dfm b/Source/Modulos/Recibos de proveedor/Plugin/uPluginRecibosProveedor.dfm new file mode 100644 index 0000000..2c597c9 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Plugin/uPluginRecibosProveedor.dfm @@ -0,0 +1,124 @@ +object PluginRecibosProveedor: TPluginRecibosProveedor + OldCreateOrder = True + DefaultAction = actRecibosProveedor + Description = 'Compras' + ModuleMenu = MainMenu + ModuleName = 'Recibos de proveedor' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software' + Version = '1.0.0' + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022E4944415478DA + 63FCFFFF3F032D01E3D0B760D9965334B321CAC78C116C41A4B729491AFFFCFD + CFF0F7EF3F869FBFFE80E93FFFFE8169301B887FFDFECB109E5EC7707EE77484 + 0589270D091AFC17189CBFFEFE65F8F5E70F98FEF2EB17840FC2404B607245BF + 9633CC5BBA09D382F9E6E7512C927EEBCDD0E4D98C61D13FA06120ECB9DA9EE1 + 23CF03B0E197025E3028AD14045B52F17715A605AAAB85196E87BE051B006283 + C0CD903760FA02E37906E393C6400120479D81E1ACF95906CD1F5A0CBF803E10 + 58CE0F56F33F1D12958C33191926736D47B58056910CB6106601AD221AC5025A + 44348605D48E68AC168000888D6C38BE880EDAE2C1F094FD36C38DE0D760B562 + 8BB919EA18D6E2F701CC70E6534C0C7FCDFE816990E167E3CE3218CF035AA4CD + C0F059E70B03EF151E86D72A6F18C277FA32EC8D3AC620BC880BEC8376968DD8 + 2D400F1AE6E5400B2281162C668218BECC98E16C14909E65CCF021E22383C016 + 7E86172E2F19A2F604305CF873011E1FBDEC5B88B400D9075781121C40FC8301 + EC83B76AEF18846F09313C9179C210773094E1D4CFB3700B6079016F2A8259F2 + 17A8E132CB25481C5C044AE843E240EEAD3CC3CF1F3F300C0701B805200EAEE2 + 02A458F1831F438D732DD8927FE0B4FE178E41FCE8BD8170C37FA6FC01E764BC + 16C0003C6D03F1BBEFDF51F8C818391F2003AC16A0E7D23FD09CF9EDC72F243E + 50EE1F420E9E93A17C901C085CB97907D382298B775056F0A001140BBA27CFA7 + AAE13030F42B7D0062D74EABC521DC370000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + object actRecibosProveedor: TAction + Category = 'Compras' + Caption = 'Recibos de proveedor' + ImageIndex = 0 + OnExecute = actRecibosProveedorExecute + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object Compras1: TMenuItem + Caption = 'Compras' + object RecibosdeProveedor1: TMenuItem + Tag = 310 + Action = actRecibosProveedor + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000CE4944415478DA + 63FCFFFF3F03258071E00D58B6E514D92644F99831820D50F76666987C3219AB + A2DF7FFF327CFFF387E1DBEFDF0C1F7FFC00B3E7FA6F6548F198C3707EE77484 + 0120003364AED9390C836CB6C9C13583008A0154090372BD81620039DE801BB0 + 4B240DAE10A699F9141344E02A03C3DFC47F60A6E65A5186EF4097805C23B72C + 810803AE42C4600628AC10006B06618DD5A90C8C20419021C8068024975B5FC6 + F002B26690570CD767220C8005225812AA08A6109BD8D9F4B390308019D03D79 + 3E79D138E0990900FC7AC6454D6D985F0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000002364944415478DA + EDD6CF4B14611807F0EF685094522674298C540C2D08199AED1C1D0A2DA488D5 + 090429F07FF0D021C14BC70E91878404C14B102CD882122D25B830EC6604E6A6 + 1BF823977564FD518E3A33DBF3BED36C3BEE4CE8E2CE251F7879DF79DFD9F7C3 + 33EF33C30AD96C167E8670081E3838148AFA26CAAD92C0C18E96AB456DA01B59 + 188649BDC97B3E36F3C6BCA77B682ED8FD18B1F0F3BF60D744F39E21838E61DB + 30B0ADEB56BFBB1160AF8F48D348CE2DA0A7AFBF101C08C41CF059B5054F6EF5 + 7AC2266D6CF28C0CB4BEBE8ED58AEF1C9B6C5B42ED701547C35202738B3FBC41 + 166CEC86C58518C40911F84A17170125A0A0516BE2206B774337B1703481A97B + 697EFF99C1131895BE61319572827E150D8B1CE857E138403F0AA7002C75E1B8 + 82A52C1CCF0CF3B1F2681990A4C71834AD31614AA702F125C19780F5CB1BA87C + 5301D401E9FA6504C3B731268FA3FAD5719E6124308BD472DA1D747B94E5C384 + 980476103858666143221499FA7E1199F6559C0A9DE4F72EDD48411E6D435C8F + E7CEF3C3B524D415751F20CB2A41E0833F197EA1C963D434F00CD58615548F9C + E619CE9F9B47E7FBFB886E2939F0A394C4DA7AE6DFA05BC1B033FA7C64D23AC3 + 4F3471C53AC31AF53C5FD377760A30161171063F7FAD59209BF0FABCB11F5CC8 + DCE1A85D14ACD955997FAD6D6EE2E1B89CC3B61EE9105EF0EDF1AE39014DDB70 + 07ED707DB7F6D1F2C3132CE6EBA13BE6768D69DD0E57F06D245ED4E76DAFE100 + 9F3E1B282966C77FF027EA103CE8F80DA807BCA3E9817F640000000049454E44 + AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 80 + Bitmap = {} + end +end diff --git a/Source/Modulos/Recibos de proveedor/Plugin/uPluginRecibosProveedor.pas b/Source/Modulos/Recibos de proveedor/Plugin/uPluginRecibosProveedor.pas new file mode 100644 index 0000000..f84d411 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Plugin/uPluginRecibosProveedor.pas @@ -0,0 +1,96 @@ +unit uPluginRecibosProveedor; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList, uPlugins_Intf; + +type + TPluginRecibosProveedor = class(TModuleController, IMCRecibosProveedor) + actRecibosProveedor: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + Compras1: TMenuItem; + RecibosdeProveedor1: TMenuItem; + procedure actRecibosProveedorExecute(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure VerRecibos(const ID_Proveedor: Integer; + const ANombreProveedor : String = ''); + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, cxControls, uRecibosProveedorViewRegister, + uRecibosProveedorController, uBizRecibosProveedor; + +function GetModule : TModuleController; +begin + Result := TPluginRecibosProveedor.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +procedure TPluginRecibosProveedor.actRecibosProveedorExecute(Sender: TObject); +var + ARecibosProveedorController : IRecibosProveedorController; + ARecibosProveedor : IBizRecibosProveedor; + +begin + ARecibosProveedorController := TRecibosProveedorController.Create; + ARecibosProveedor := (ARecibosProveedorController.BuscarTodos as IBizRecibosProveedor); + ARecibosProveedorController.VerTodos(ARecibosProveedor); +end; + +constructor TPluginRecibosProveedor.Create(AOwner: TComponent); +begin + inherited; + ModuleName := MODULENAME_RECIBOS_PROVEEDOR; + uRecibosProveedorViewRegister.RegisterViews; +end; + +destructor TPluginRecibosProveedor.Destroy; +begin + uRecibosProveedorViewRegister.UnregisterViews; + inherited; +end; + +procedure TPluginRecibosProveedor.VerRecibos(const ID_Proveedor: Integer; + const ANombreProveedor: String); +var + ARecibosController : IRecibosProveedorController; + ARecibos : IBizRecibosProveedor; + AText : String; +begin + AText := Format('Lista de recibos del proveedor %s', [ANombreProveedor]); + ARecibosController := TRecibosProveedorController.Create; + try + ShowHourglassCursor; + try + ARecibos := ARecibosController.BuscarTodos(ID_Proveedor); + finally + HideHourglassCursor; + end; + ARecibosController.VerTodos(ARecibos, True, AText); + finally + ARecibos := NIL; + ARecibosController := NIL; + end; +end; + +initialization + RegisterModuleClass(TPluginRecibosProveedor); + +finalization + UnRegisterModuleClass(TPluginRecibosProveedor); + +end. diff --git a/Source/Modulos/Recibos de proveedor/RecibosProveedor_Group.groupproj b/Source/Modulos/Recibos de proveedor/RecibosProveedor_Group.groupproj new file mode 100644 index 0000000..dd2f46a --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/RecibosProveedor_Group.groupproj @@ -0,0 +1,134 @@ + + + {9e374daa-b130-47db-a2de-c184f072bea0} + + + + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Recibos de proveedor/Reports/uRptRecibosProveedor_Server.dcu b/Source/Modulos/Recibos de proveedor/Reports/uRptRecibosProveedor_Server.dcu new file mode 100644 index 0000000..5873a77 Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Reports/uRptRecibosProveedor_Server.dcu differ diff --git a/Source/Modulos/Recibos de proveedor/Reports/uRptRecibosProveedor_Server.dfm b/Source/Modulos/Recibos de proveedor/Reports/uRptRecibosProveedor_Server.dfm new file mode 100644 index 0000000..052c315 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Reports/uRptRecibosProveedor_Server.dfm @@ -0,0 +1,1458 @@ +object RptRecibosProveedor: TRptRecibosProveedor + OldCreateOrder = True + OnCreate = DataModuleCreate + OnDestroy = DataModuleDestroy + Height = 405 + Width = 873 + object DADataCabecera: TDADataSource + DataSet = tbl_Cabecera.Dataset + DataTable = tbl_Cabecera + Left = 264 + Top = 72 + end + object tbl_Cabecera: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_RECIBO_COMPENSADO' + DataType = datInteger + end + item + Name = 'REFERENCIA_REC_COMPENSADO' + DataType = datString + Size = 255 + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + end + item + Name = 'ID_FACTURA' + DataType = datInteger + end + item + Name = 'DATOS_BANCARIOS' + DataType = datString + Size = 255 + end + item + Name = 'ID_REMESA' + DataType = datInteger + end + item + Name = 'REFERENCIA_REMESA' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE' + DataType = datCurrency + end + item + Name = 'OTROS_GASTOS' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + end + item + Name = 'FORMA_PAGO_FACTURA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_FACTURA' + DataType = datCurrency + end + item + Name = 'NOMBRE_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'NIF_CIF_CLIENTE' + DataType = datString + Size = 15 + end + item + Name = 'CALLE_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL_CLIENTE' + DataType = datString + Size = 10 + end + item + Name = 'PROVINCIA_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'NIF_CIF_EMPRESA' + DataType = datString + Size = 15 + end + item + Name = 'RAZON_SOCIAL' + DataType = datString + Size = 255 + end + item + Name = 'CALLE_EMPRESA' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION_EMPRESA' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA_EMPRESA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL_EMPRESA' + DataType = datString + Size = 10 + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + end + item + Name = 'FAX' + DataType = datString + Size = 25 + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + end + item + Name = 'REGISTRO_MERCANTIL' + DataType = datString + Size = 255 + end + item + Name = 'LOGOTIPO' + DataType = datBlob + end> + Params = < + item + Name = 'ID' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + MasterMappingMode = mmDataRequest + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = Bin2DataStreamer + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Informe_Cabecera' + IndexDefs = <> + Left = 264 + Top = 128 + end + object frxRichObject1: TfrxRichObject + Left = 48 + Top = 296 + end + object frxBarCodeObject1: TfrxBarCodeObject + Left = 144 + Top = 296 + end + object frxOLEObject1: TfrxOLEObject + Left = 48 + Top = 344 + end + object frxCrossObject1: TfrxCrossObject + Left = 144 + Top = 344 + end + object frxCheckBoxObject1: TfrxCheckBoxObject + Left = 256 + Top = 296 + end + object frxGradientObject1: TfrxGradientObject + Left = 360 + Top = 296 + end + object frxChartObject1: TfrxChartObject + Left = 256 + Top = 344 + end + object schReport: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'V_recibos_proveedor' + Name = 'IBX' + SQL = + 'select ID_EMPRESA,'#10'extract (year from fecha_vencimiento) as ANO,' + + #10'extract (month from fecha_vencimiento) as MES,'#10'case'#10'when extrac' + + 't (month from fecha_vencimiento) = 1 then '#39'ENERO - '#39' || extract ' + + '(year from fecha_vencimiento)'#10'when extract (month from fecha_ven' + + 'cimiento) = 2 then '#39'FEBRERO - '#39' || extract (year from fecha_venc' + + 'imiento)'#10'when extract (month from fecha_vencimiento) = 3 then '#39'M' + + 'ARZO - '#39' || extract (year from fecha_vencimiento)'#10'when extract (' + + 'month from fecha_vencimiento) = 4 then '#39'ABRIL - '#39' || extract (ye' + + 'ar from fecha_vencimiento)'#10'when extract (month from fecha_vencim' + + 'iento) = 5 then '#39'MAYO - '#39' || extract (year from fecha_vencimient' + + 'o)'#10'when extract (month from fecha_vencimiento) = 6 then '#39'JUNIO -' + + ' '#39' || extract (year from fecha_vencimiento)'#10'when extract (month ' + + 'from fecha_vencimiento) = 7 then '#39'JULIO - '#39' || extract (year fro' + + 'm fecha_vencimiento)'#10'when extract (month from fecha_vencimiento)' + + ' = 8 then '#39'AGOSTO - '#39' || extract (year from fecha_vencimiento)'#10'w' + + 'hen extract (month from fecha_vencimiento) = 9 then '#39'SEPTIEMBRE ' + + '- '#39' || extract (year from fecha_vencimiento)'#10'when extract (month' + + ' from fecha_vencimiento) = 10 then '#39'OCTUBRE - '#39' || extract (year' + + ' from fecha_vencimiento)'#10'when extract (month from fecha_vencimie' + + 'nto) = 11 then '#39'NOVIEMBRE - '#39' || extract (year from fecha_vencim' + + 'iento)'#10'when extract (month from fecha_vencimiento) = 12 then '#39'DI' + + 'CIEMBRE - '#39' || extract (year from fecha_vencimiento)'#10'end as TITU' + + 'LO,'#10'REFERENCIA, ID_PROVEEDOR, NOMBRE_PROVEEDOR, SITUACION, NIF_' + + 'CIF_PROVEEDOR, fecha_vencimiento, FECHA_EMISION,'#10'IMPORTE_TOTAL,'#10 + + 'case'#10'when strlen(DATOS_BANCARIOS) = 0 then '#39'Sin cuenta bancaria'#39 + + #10'else DATOS_BANCARIOS'#10'end as DATOS_BANCARIOS'#10#10'from V_recibos_pro' + + 'veedor'#10'where {where}'#10'order by ANO, MES, FECHA_VENCIMIENTO, DATOS' + + '_BANCARIOS, NOMBRE_PROVEEDOR'#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'MES' + TableField = 'MES' + end + item + DatasetField = 'TITULO' + TableField = 'TITULO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID_PROVEEDOR' + TableField = 'ID_PROVEEDOR' + end + item + DatasetField = 'NOMBRE_PROVEEDOR' + TableField = 'NOMBRE_PROVEEDOR' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'NIF_CIF_PROVEEDOR' + TableField = 'NIF_CIF_PROVEEDOR' + end + item + DatasetField = 'FECHA_VENCIMIENTO' + TableField = 'FECHA_VENCIMIENTO' + end + item + DatasetField = 'FECHA_EMISION' + TableField = 'FECHA_EMISION' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'ANO' + TableField = 'ANO' + end + item + DatasetField = 'DATOS_BANCARIOS' + TableField = 'DATOS_BANCARIOS' + end> + end> + Name = 'InformeListadoRecibosPendientes' + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + end + item + Name = 'NOMBRE_PROVEEDOR' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + end + item + Name = 'NIF_CIF_PROVEEDOR' + DataType = datString + Size = 15 + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'DATOS_BANCARIOS' + DataType = datString + Size = 255 + end> + end + item + Params = < + item + Name = 'ID_RECIBO' + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'SELECT'#10' V_RECIBOS_PROVEEDOR.REFERENCIA, V_RECIBOS_PROVEEDOR.D' + + 'ESCRIPCION, V_RECIBOS_PROVEEDOR.IMPORTE_TOTAL'#10'FROM V_RECIBOS_PRO' + + 'VEEDOR'#10'WHERE V_RECIBOS_PROVEEDOR.ID_RECIBO_COMPENSADO = :ID_RECI' + + 'BO'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end> + end> + Name = 'Informe_Compensados' + Fields = < + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'REMESAS_PROVEEDOR' + SQL = + 'SELECT'#10' V_RECIBOS_PROVEEDOR.ID,'#10' V_RECIBOS_PROVEEDOR.ID_RE' + + 'CIBO_COMPENSADO,'#10' V_RECIBOS_PROVEEDOR.REFERENCIA_REC_COMPENSA' + + 'DO,'#10' V_RECIBOS_PROVEEDOR.ID_EMPRESA,'#10' V_RECIBOS_PROVEEDOR.' + + 'REFERENCIA,'#10' V_RECIBOS_PROVEEDOR.SITUACION,'#10' V_RECIBOS_PRO' + + 'VEEDOR.ID_FACTURA,'#10' V_RECIBOS_PROVEEDOR.DATOS_BANCARIOS,'#10' ' + + 'V_RECIBOS_PROVEEDOR.ID_REMESA,'#10' V_RECIBOS_PROVEEDOR.REFERENCI' + + 'A_REMESA,'#10' V_RECIBOS_PROVEEDOR.FECHA_EMISION,'#10' V_RECIBOS_P' + + 'ROVEEDOR.FECHA_VENCIMIENTO,'#10' V_RECIBOS_PROVEEDOR.DESCRIPCION,' + + #10' V_RECIBOS_PROVEEDOR.OBSERVACIONES,'#10' V_RECIBOS_PROVEEDOR.' + + 'IMPORTE,'#10' V_RECIBOS_PROVEEDOR.OTROS_GASTOS,'#10' V_RECIBOS_PRO' + + 'VEEDOR.IMPORTE_TOTAL,'#10' V_RECIBOS_PROVEEDOR.FECHA_FACTURA,'#10' ' + + ' V_RECIBOS_PROVEEDOR.FORMA_PAGO_FACTURA,'#10' V_RECIBOS_PROVEEDOR' + + '.IMPORTE_FACTURA,'#10' V_RECIBOS_PROVEEDOR.NOMBRE_PROVEEDOR,'#10' ' + + 'V_RECIBOS_PROVEEDOR.NIF_CIF_PROVEEDOR,'#10#10' EMPRESAS.NIF_CIF as ' + + 'NIF_CIF_EMPRESA, EMPRESAS.RAZON_SOCIAL,'#10' EMPRESAS.CALLE as CA' + + 'LLE_EMPRESA, EMPRESAS.POBLACION as POBLACION_EMPRESA,'#10' EMPRES' + + 'AS.PROVINCIA as PROVINCIA_EMPRESA, EMPRESAS.CODIGO_POSTAL as COD' + + 'IGO_POSTAL_EMPRESA,'#10' EMPRESAS.TELEFONO_1, EMPRESAS.FAX, EMPRE' + + 'SAS.MOVIL_1, EMPRESAS.EMAIL_1,'#10' EMPRESAS.PAGINA_WEB, EMPRESAS' + + '.REGISTRO_MERCANTIL, EMPRESAS.LOGOTIPO'#10#10'FROM'#10' V_RECIBOS_PROVEED' + + 'OR'#10' LEFT OUTER JOIN EMPRESAS ON (EMPRESAS.ID = V_RECIBOS_PROVEE' + + 'DOR.ID_EMPRESA)'#10'WHERE'#10' V_RECIBOS_PROVEEDOR.ID = :ID'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_RECIBO_COMPENSADO' + TableField = '' + SQLOrigin = 'ID_RECIBO_COMPENSADO' + end + item + DatasetField = 'REFERENCIA_REC_COMPENSADO' + TableField = '' + SQLOrigin = 'REFERENCIA_REC_COMPENSADO' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'SITUACION' + TableField = '' + SQLOrigin = 'SITUACION' + end + item + DatasetField = 'ID_FACTURA' + TableField = '' + SQLOrigin = 'ID_FACTURA' + end + item + DatasetField = 'DATOS_BANCARIOS' + TableField = '' + SQLOrigin = 'DATOS_BANCARIOS' + end + item + DatasetField = 'ID_REMESA' + TableField = '' + SQLOrigin = 'ID_REMESA' + end + item + DatasetField = 'REFERENCIA_REMESA' + TableField = '' + SQLOrigin = 'REFERENCIA_REMESA' + end + item + DatasetField = 'FECHA_EMISION' + TableField = '' + SQLOrigin = 'FECHA_EMISION' + end + item + DatasetField = 'FECHA_VENCIMIENTO' + TableField = '' + SQLOrigin = 'FECHA_VENCIMIENTO' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'OBSERVACIONES' + TableField = '' + SQLOrigin = 'OBSERVACIONES' + end + item + DatasetField = 'IMPORTE' + TableField = '' + SQLOrigin = 'IMPORTE' + end + item + DatasetField = 'OTROS_GASTOS' + TableField = '' + SQLOrigin = 'OTROS_GASTOS' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'FECHA_FACTURA' + TableField = '' + SQLOrigin = 'FECHA_FACTURA' + end + item + DatasetField = 'FORMA_PAGO_FACTURA' + TableField = '' + SQLOrigin = 'FORMA_PAGO_FACTURA' + end + item + DatasetField = 'IMPORTE_FACTURA' + TableField = '' + SQLOrigin = 'IMPORTE_FACTURA' + end + item + DatasetField = 'NOMBRE_PROVEEDOR' + TableField = '' + SQLOrigin = 'NOMBRE_PROVEEDOR' + end + item + DatasetField = 'NIF_CIF_PROVEEDOR' + TableField = '' + SQLOrigin = 'NIF_CIF_PROVEEDOR' + end + item + DatasetField = 'NIF_CIF_EMPRESA' + TableField = '' + SQLOrigin = 'NIF_CIF_EMPRESA' + end + item + DatasetField = 'RAZON_SOCIAL' + TableField = '' + SQLOrigin = 'RAZON_SOCIAL' + end + item + DatasetField = 'CALLE_EMPRESA' + TableField = '' + SQLOrigin = 'CALLE_EMPRESA' + end + item + DatasetField = 'POBLACION_EMPRESA' + TableField = '' + SQLOrigin = 'POBLACION_EMPRESA' + end + item + DatasetField = 'PROVINCIA_EMPRESA' + TableField = '' + SQLOrigin = 'PROVINCIA_EMPRESA' + end + item + DatasetField = 'CODIGO_POSTAL_EMPRESA' + TableField = '' + SQLOrigin = 'CODIGO_POSTAL_EMPRESA' + end + item + DatasetField = 'TELEFONO_1' + TableField = '' + SQLOrigin = 'TELEFONO_1' + end + item + DatasetField = 'FAX' + TableField = '' + SQLOrigin = 'FAX' + end + item + DatasetField = 'MOVIL_1' + TableField = '' + SQLOrigin = 'MOVIL_1' + end + item + DatasetField = 'EMAIL_1' + TableField = '' + SQLOrigin = 'EMAIL_1' + end + item + DatasetField = 'PAGINA_WEB' + TableField = '' + SQLOrigin = 'PAGINA_WEB' + end + item + DatasetField = 'REGISTRO_MERCANTIL' + TableField = '' + SQLOrigin = 'REGISTRO_MERCANTIL' + end + item + DatasetField = 'LOGOTIPO' + TableField = '' + SQLOrigin = 'LOGOTIPO' + end> + end> + Name = 'Informe_Cabecera' + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_RECIBO_COMPENSADO' + DataType = datInteger + end + item + Name = 'REFERENCIA_REC_COMPENSADO' + DataType = datString + Size = 255 + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + end + item + Name = 'ID_FACTURA' + DataType = datInteger + end + item + Name = 'DATOS_BANCARIOS' + DataType = datString + Size = 255 + end + item + Name = 'ID_REMESA' + DataType = datInteger + end + item + Name = 'REFERENCIA_REMESA' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE' + DataType = datCurrency + end + item + Name = 'OTROS_GASTOS' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + end + item + Name = 'FORMA_PAGO_FACTURA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_FACTURA' + DataType = datCurrency + end + item + Name = 'NOMBRE_PROVEEDOR' + DataType = datString + Size = 255 + end + item + Name = 'NIF_CIF_PROVEEDOR' + DataType = datString + Size = 15 + end + item + Name = 'NIF_CIF_EMPRESA' + DataType = datString + Size = 15 + end + item + Name = 'RAZON_SOCIAL' + DataType = datString + Size = 255 + end + item + Name = 'CALLE_EMPRESA' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION_EMPRESA' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA_EMPRESA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL_EMPRESA' + DataType = datString + Size = 10 + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + end + item + Name = 'FAX' + DataType = datString + Size = 25 + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + end + item + Name = 'REGISTRO_MERCANTIL' + DataType = datString + Size = 255 + end + item + Name = 'LOGOTIPO' + DataType = datBlob + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_recibos_proveedor' + SQL = + 'select ID_EMPRESA,'#10'extract (year from fecha_vencimiento) as ANO,' + + #10'extract (month from fecha_vencimiento) as MES,'#10'case'#10'when extrac' + + 't (month from fecha_vencimiento) = 1 then '#39'ENERO - '#39' || extract ' + + '(year from fecha_vencimiento)'#10'when extract (month from fecha_ven' + + 'cimiento) = 2 then '#39'FEBRERO - '#39' || extract (year from fecha_venc' + + 'imiento)'#10'when extract (month from fecha_vencimiento) = 3 then '#39'M' + + 'ARZO - '#39' || extract (year from fecha_vencimiento)'#10'when extract (' + + 'month from fecha_vencimiento) = 4 then '#39'ABRIL - '#39' || extract (ye' + + 'ar from fecha_vencimiento)'#10'when extract (month from fecha_vencim' + + 'iento) = 5 then '#39'MAYO - '#39' || extract (year from fecha_vencimient' + + 'o)'#10'when extract (month from fecha_vencimiento) = 6 then '#39'JUNIO -' + + ' '#39' || extract (year from fecha_vencimiento)'#10'when extract (month ' + + 'from fecha_vencimiento) = 7 then '#39'JULIO - '#39' || extract (year fro' + + 'm fecha_vencimiento)'#10'when extract (month from fecha_vencimiento)' + + ' = 8 then '#39'AGOSTO - '#39' || extract (year from fecha_vencimiento)'#10'w' + + 'hen extract (month from fecha_vencimiento) = 9 then '#39'SEPTIEMBRE ' + + '- '#39' || extract (year from fecha_vencimiento)'#10'when extract (month' + + ' from fecha_vencimiento) = 10 then '#39'OCTUBRE - '#39' || extract (year' + + ' from fecha_vencimiento)'#10'when extract (month from fecha_vencimie' + + 'nto) = 11 then '#39'NOVIEMBRE - '#39' || extract (year from fecha_vencim' + + 'iento)'#10'when extract (month from fecha_vencimiento) = 12 then '#39'DI' + + 'CIEMBRE - '#39' || extract (year from fecha_vencimiento)'#10'end as TITU' + + 'LO,'#10'case'#10'when strlen(DATOS_BANCARIOS) = 0 then '#39'Sin cuenta banca' + + 'ria'#39#10'else DATOS_BANCARIOS'#10'end as DATOS_BANCARIOS,'#10'sum(IMPORTE_TO' + + 'TAL) as importe_total'#10#10'from V_recibos_proveedor'#10#10'group by 1,2,3,' + + '4,5'#10'order by 1,2,3,4,5'#10#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'ANO' + TableField = 'ANO' + end + item + DatasetField = 'MES' + TableField = 'MES' + end + item + DatasetField = 'TITULO' + TableField = 'TITULO' + end + item + DatasetField = 'DATOS_BANCARIOS' + TableField = 'DATOS_BANCARIOS' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end> + end> + Name = 'InformeListadoRecibosPendientesResumen' + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'DATOS_BANCARIOS' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_recibos_proveedor' + SQL = + 'select ID_EMPRESA,'#10'extract (year from fecha_emision) as ANO,'#10'ext' + + 'ract (month from fecha_emision) as MES,'#10'case'#10'when extract (month' + + ' from fecha_emision) = 1 then '#39'ENERO - '#39' || extract (year from f' + + 'echa_emision)'#10'when extract (month from fecha_emision) = 2 then '#39 + + 'FEBRERO - '#39' || extract (year from fecha_emision)'#10'when extract (m' + + 'onth from fecha_emision) = 3 then '#39'MARZO - '#39' || extract (year fr' + + 'om fecha_emision)'#10'when extract (month from fecha_emision) = 4 th' + + 'en '#39'ABRIL - '#39' || extract (year from fecha_emision)'#10'when extract ' + + '(month from fecha_emision) = 5 then '#39'MAYO - '#39' || extract (year f' + + 'rom fecha_emision)'#10'when extract (month from fecha_emision) = 6 t' + + 'hen '#39'JUNIO - '#39' || extract (year from fecha_emision)'#10'when extract' + + ' (month from fecha_emision) = 7 then '#39'JULIO - '#39' || extract (year' + + ' from fecha_emision)'#10'when extract (month from fecha_emision) = 8' + + ' then '#39'AGOSTO - '#39' || extract (year from fecha_emision)'#10'when extr' + + 'act (month from fecha_emision) = 9 then '#39'SEPTIEMBRE - '#39' || extra' + + 'ct (year from fecha_emision)'#10'when extract (month from fecha_emis' + + 'ion) = 10 then '#39'OCTUBRE - '#39' || extract (year from fecha_emision)' + + #10'when extract (month from fecha_emision) = 11 then '#39'NOVIEMBRE - ' + + #39' || extract (year from fecha_emision)'#10'when extract (month from ' + + 'fecha_emision) = 12 then '#39'DICIEMBRE - '#39' || extract (year from fe' + + 'cha_emision)'#10'end as TITULO,'#10'REFERENCIA, ID_PROVEEDOR, NOMBRE_PR' + + 'OVEEDOR, SITUACION, NIF_CIF_PROVEEDOR, fecha_emision, FECHA_venc' + + 'imiento,'#10'IMPORTE_TOTAL'#10#10'from V_recibos_proveedor'#10'where {where}'#10'o' + + 'rder by ANO, MES, NOMBRE_PROVEEDOR'#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'ANO' + TableField = 'ANO' + end + item + DatasetField = 'MES' + TableField = 'MES' + end + item + DatasetField = 'TITULO' + TableField = 'TITULO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID_PROVEEDOR' + TableField = 'ID_PROVEEDOR' + end + item + DatasetField = 'NOMBRE_PROVEEDOR' + TableField = 'NOMBRE_PROVEEDOR' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'NIF_CIF_PROVEEDOR' + TableField = 'NIF_CIF_PROVEEDOR' + end + item + DatasetField = 'FECHA_EMISION' + TableField = 'FECHA_EMISION' + end + item + DatasetField = 'FECHA_VENCIMIENTO' + TableField = 'FECHA_VENCIMIENTO' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end> + end> + Name = 'InformeListadoRecibos' + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + end + item + Name = 'NOMBRE_PROVEEDOR' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + end + item + Name = 'NIF_CIF_PROVEEDOR' + DataType = datString + Size = 15 + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_recibos_proveedor' + SQL = + 'select ID_EMPRESA,'#10'extract (year from fecha_emision) as ANO,'#10'ext' + + 'ract (month from fecha_emision) as MES,'#10'case'#10'when extract (month' + + ' from fecha_emision) = 1 then '#39'ENERO - '#39' || extract (year from f' + + 'echa_emision)'#10'when extract (month from fecha_emision) = 2 then '#39 + + 'FEBRERO - '#39' || extract (year from fecha_emision)'#10'when extract (m' + + 'onth from fecha_emision) = 3 then '#39'MARZO - '#39' || extract (year fr' + + 'om fecha_emision)'#10'when extract (month from fecha_emision) = 4 th' + + 'en '#39'ABRIL - '#39' || extract (year from fecha_emision)'#10'when extract ' + + '(month from fecha_emision) = 5 then '#39'MAYO - '#39' || extract (year f' + + 'rom fecha_emision)'#10'when extract (month from fecha_emision) = 6 t' + + 'hen '#39'JUNIO - '#39' || extract (year from fecha_emision)'#10'when extract' + + ' (month from fecha_emision) = 7 then '#39'JULIO - '#39' || extract (year' + + ' from fecha_emision)'#10'when extract (month from fecha_emision) = 8' + + ' then '#39'AGOSTO - '#39' || extract (year from fecha_emision)'#10'when extr' + + 'act (month from fecha_emision) = 9 then '#39'SEPTIEMBRE - '#39' || extra' + + 'ct (year from fecha_emision)'#10'when extract (month from fecha_emis' + + 'ion) = 10 then '#39'OCTUBRE - '#39' || extract (year from fecha_emision)' + + #10'when extract (month from fecha_emision) = 11 then '#39'NOVIEMBRE - ' + + #39' || extract (year from fecha_emision)'#10'when extract (month from ' + + 'fecha_emision) = 12 then '#39'DICIEMBRE - '#39' || extract (year from fe' + + 'cha_emision)'#10'end as TITULO,'#10'sum(IMPORTE_TOTAL) as importe_total'#10 + + #10'from V_recibos_proveedor'#10'where {where}'#10'group by 1,2,3,4'#10'order b' + + 'y 1,2,3,4'#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'ANO' + TableField = 'ANO' + end + item + DatasetField = 'MES' + TableField = 'MES' + end + item + DatasetField = 'TITULO' + TableField = 'TITULO' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end> + end> + Name = 'InformeListadoRecibosResumen' + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 16 + end + object DataDictionary: TDADataDictionary + Fields = <> + Left = 46 + Top = 158 + end + object frxReport: TfrxReport + Version = '4.3' + DotMatrixReport = False + EngineOptions.DoublePass = True + IniFile = '\Software\Fast Reports' + PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator, pbExportQuick] + PreviewOptions.Zoom = 1.000000000000000000 + PrintOptions.Printer = 'Por defecto' + PrintOptions.PrintOnSheet = 0 + ReportOptions.CreateDate = 37800.807714351900000000 + ReportOptions.LastChange = 39841.474564699070000000 + ScriptLanguage = 'PascalScript' + ScriptText.Strings = ( + 'procedure mContinuaOnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if Engine.FinalPass then' + ' begin' + ' if ( = ) then' + ' begin ' + ' mContinua.Visible := False;' + ' end ' + ' else' + ' begin ' + ' mContinua.Visible := True;' + ' end ' + ' end; ' + 'end;' + '' + 'begin' + '' + 'end.') + ShowProgress = False + StoreInDFM = False + OnStartReport = 'frxReportOnStartReport' + Left = 169 + Top = 16 + end + object frxDBCabecera: TfrxDBDataset + UserName = 'frxDBCabecera' + CloseDataSource = False + DataSource = DADataCabecera + Left = 264 + Top = 16 + end + object DADataCompensados: TDADataSource + DataSet = tbl_Compensados.Dataset + DataTable = tbl_Compensados + Left = 360 + Top = 72 + end + object frxDBCompensados: TfrxDBDataset + UserName = 'frxDBCompensados' + CloseDataSource = False + DataSource = DADataCompensados + Left = 360 + Top = 16 + end + object tbl_Compensados: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + end> + Params = < + item + Name = 'ID_RECIBO' + Value = '' + ParamType = daptInput + end> + MasterMappingMode = mmDataRequest + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = Bin2DataStreamer + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Informe_Compensados' + IndexDefs = <> + Left = 360 + Top = 128 + end + object tbl_InformeListadoRecibos: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'NOMBRE_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + end + item + Name = 'NIF_CIF_CLIENTE' + DataType = datString + Size = 15 + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + Params = <> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = Bin2DataStreamer + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'InformeListadoRecibos' + IndexDefs = <> + Left = 496 + Top = 128 + end + object DADSInformeListadoRecibos: TDADataSource + DataSet = tbl_InformeListadoRecibos.Dataset + DataTable = tbl_InformeListadoRecibos + Left = 496 + Top = 72 + end + object frxDBInformeListadoRecibos: TfrxDBDataset + UserName = 'frxDBInformeListadoRecibos' + CloseDataSource = False + DataSource = DADSInformeListadoRecibos + Left = 496 + Top = 16 + end + object tbl_InformeListadoRecibosResumen: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + MasterMappingMode = mmDataRequest + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + IndexDefs = <> + Left = 504 + Top = 304 + end + object DADSInformeListadoRecibosResumen: TDADataSource + DataSet = tbl_InformeListadoRecibosResumen.Dataset + DataTable = tbl_InformeListadoRecibosResumen + Left = 504 + Top = 248 + end + object frxDBInformeListadoRecibosResumen: TfrxDBDataset + UserName = 'frxDBInformeListadoRecibosResumen' + CloseDataSource = False + DataSource = DADSInformeListadoRecibosResumen + Left = 504 + Top = 192 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 88 + end + object frxDBInformeListadoRecibosPendientes: TfrxDBDataset + UserName = 'frxDBInformeListadoRecibosPendientes' + CloseDataSource = False + DataSource = DADSInformeListadoRecibosPendientes + Left = 704 + Top = 16 + end + object DADSInformeListadoRecibosPendientes: TDADataSource + DataSet = tbl_InformeListadoRecibosPendientes.Dataset + DataTable = tbl_InformeListadoRecibosPendientes + Left = 704 + Top = 72 + end + object tbl_InformeListadoRecibosPendientes: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'MES' + DataType = datSmallInt + end + item + Name = 'TITULO' + DataType = datString + Size = 19 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + end + item + Name = 'NOMBRE_PROVEEDOR' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + end + item + Name = 'NIF_CIF_PROVEEDOR' + DataType = datString + Size = 15 + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'DATOS_BANCARIOS' + DataType = datString + Size = 255 + end> + Params = <> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = Bin2DataStreamer + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'InformeListadoRecibosPendientes' + IndexDefs = <> + Left = 704 + Top = 128 + end + object frxDBInformeListadoRecibosPendResumen: TfrxDBDataset + UserName = 'frxDBInformeListadoRecibosPendResumen' + CloseDataSource = False + DataSource = DADSInformeListadoRecibosPendResumen + Left = 704 + Top = 192 + end + object DADSInformeListadoRecibosPendResumen: TDADataSource + DataSet = tbl_InformeListadoRecibosPendResumen.Dataset + DataTable = tbl_InformeListadoRecibosPendResumen + Left = 704 + Top = 248 + end + object tbl_InformeListadoRecibosPendResumen: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + MasterMappingMode = mmDataRequest + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + IndexDefs = <> + Left = 704 + Top = 304 + end +end diff --git a/Source/Modulos/Recibos de proveedor/Reports/uRptRecibosProveedor_Server.pas b/Source/Modulos/Recibos de proveedor/Reports/uRptRecibosProveedor_Server.pas new file mode 100644 index 0000000..684ee0c --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Reports/uRptRecibosProveedor_Server.pas @@ -0,0 +1,539 @@ +unit uRptRecibosProveedor_Server; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, frxClass, frxDBSet, uDAScriptingProvider, + uDADataTable, uDAMemDataTable, DB, uDAClasses, frxChart, frxGradient, + frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes, + uDAInterfaces, uDADataStreamer, FactuGES_Intf, uDABin2DataStreamer; + +type + TRptRecibosProveedor = class(TDataModule) + DADataCabecera: TDADataSource; + tbl_Cabecera: TDAMemDataTable; + frxRichObject1: TfrxRichObject; + frxBarCodeObject1: TfrxBarCodeObject; + frxOLEObject1: TfrxOLEObject; + frxCrossObject1: TfrxCrossObject; + frxCheckBoxObject1: TfrxCheckBoxObject; + frxGradientObject1: TfrxGradientObject; + frxChartObject1: TfrxChartObject; + frxDBCabecera: TfrxDBDataset; + DADataCompensados: TDADataSource; + frxDBCompensados: TfrxDBDataset; + tbl_Compensados: TDAMemDataTable; + frxReport: TfrxReport; + tbl_InformeListadoRecibos: TDAMemDataTable; + DADSInformeListadoRecibos: TDADataSource; + frxDBInformeListadoRecibos: TfrxDBDataset; + tbl_InformeListadoRecibosResumen: TDAMemDataTable; + DADSInformeListadoRecibosResumen: TDADataSource; + frxDBInformeListadoRecibosResumen: TfrxDBDataset; + Bin2DataStreamer: TDABin2DataStreamer; + frxDBInformeListadoRecibosPendientes: TfrxDBDataset; + DADSInformeListadoRecibosPendientes: TDADataSource; + tbl_InformeListadoRecibosPendientes: TDAMemDataTable; + frxDBInformeListadoRecibosPendResumen: TfrxDBDataset; + DADSInformeListadoRecibosPendResumen: TDADataSource; + tbl_InformeListadoRecibosPendResumen: TDAMemDataTable; + schReport: TDASchema; + DataDictionary: TDADataDictionary; + procedure DataModuleCreate(Sender: TObject); + procedure DataModuleDestroy(Sender: TObject); + private + FConnection: IDAConnection; + FIdEmpresa: Integer; + FFechaInicio: Variant; + FFechaFin: Variant; + FFechaVenInicio: Variant; + FFechaVenFin: Variant; + FListaIDProveedores: TIntegerArray; + FImporteMinimo: Currency; + FListaNombresProveedores: TStringList; + FDesglosado : Boolean; + + procedure RecuperarNombresProveedores; + procedure IniciarParametrosInforme; + procedure PrepararTablaInforme(ATabla: TDAMemDataTable); + procedure PrepararTablaResumenInforme(ATabla: IDADataset); + function _GenerarInforme(const TipoInforme: String): Binary; + public + function GenerarInformeListadoRecibos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoRecibosPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + end; + +implementation + +{$R *.dfm} + +uses + uSistemaFunc, StrUtils, uDataModuleServer, schRecibosProveedorClient_Intf, + uROServer, DataAbstract4_Intf; + +const + rptInforme = 'InfReciboProveedor.fr3'; + rptInformeListadoRecibosProveedorDesglosado = 'InformeListadoRecibosProveedorDesglosado.fr3'; + rptInformeListadoRecibosProveedor = 'InformeListadoRecibosProveedor.fr3'; + rptInformeListadoRecibosProvPendientes = 'InformeListadoRecibosProvPendientes.fr3'; + rptInformeListadoRecibosProvPendientesDesglosado = 'InformeListadoRecibosProvPendientesDesglosado.fr3'; + + { Dataset names for schReport } + ds_InformeCabecera = 'Informe_Cabecera'; + ds_InformeCompensados = 'Informe_Compensados'; + ds_InformeListadoRecibosResumen = 'InformeListadoRecibosResumen'; + ds_InformeListadoREcibosPendientesResumen = 'InformeListadoRecibosPendientesResumen'; + + +{ TRptReciboProveedor } + + +procedure TRptRecibosProveedor.DataModuleCreate(Sender: TObject); +begin + schReport.ConnectionManager := dmServer.ConnectionManager; + FConnection := dmServer.DarNuevaConexion; + frxReport.EngineOptions.NewSilentMode := simReThrow; + + FListaNombresProveedores := TStringList.Create; + + frxDBCabecera.DataSource := DADataCabecera; + frxDBCabecera.CloseDataSource := False; + + frxDBCompensados.DataSource := DADataCompensados; + frxDBCompensados.CloseDataSource := False; +end; + +procedure TRptRecibosProveedor.DataModuleDestroy(Sender: TObject); +begin + tbl_Cabecera.Active := False; + tbl_Compensados.Active := False; + + FreeANDNIL(FListaNombresProveedores); +end; + +function TRptRecibosProveedor.GenerarInformeListadoRecibos( + const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; + const FechaVenInicio, FechaVenFin: Variant; + const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; + const ImporteMinimo: Currency): Binary; +var + ATipoInforme: String; + AStream: TMemoryStream; + dsMaster: IDADataset; + +begin + FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + + AStream := TMemoryStream.Create; + try + //Inicializamos parametros + FIdEmpresa := IdEmpresa; + FFechaInicio := FechaInicio; + FFechaFin := FechaFin; + FFechaVenInicio := FechaVenInicio; + FFechaVenFin := FechaVenFin; + FImporteMinimo := ImporteMinimo; + + if Assigned(FListaIDProveedores) then + FListaIDProveedores.Free; + FListaIDProveedores := ListaIDProveedores; + + //Se prepara la tabla del listado general del informe + if tbl_InformeListadoRecibos.Active then + tbl_InformeListadoRecibos.Active := False; + PrepararTablaInforme(tbl_InformeListadoRecibos); + + //Se prepara la tabla del listado resumen del informe + if tbl_InformeListadoRecibosResumen.Active then + tbl_InformeListadoRecibosResumen.Active := False; + + dsMaster := schReport.NewDataset(FConnection, ds_InformeListadoRecibosResumen, [], [], False); + PrepararTablaResumenInforme(dsMaster); + // Filtrar el informe por situacion + //Esto se hace para rellenar la tabla del datamodule que usa el informe. + dsMaster.Open; + AStream.Clear; + Bin2DataStreamer.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1); + Bin2DataStreamer.ReadDataset(AStream, tbl_InformeListadoRecibosResumen, TRUE, '', TRUE, TRUE); + + + //DESGLOSADO POR PROVEEDOR EN ESTE INFORME NO SE DESGLOSAR POR PROVEEDOR + FDesglosado := Desglosado; + if Desglosado then + ATipoInforme := rptInformeListadoRecibosProveedorDesglosado + else + ATipoInforme := rptInformeListadoRecibosProveedor; + + //Finalmente se abren las tablas del informe + tbl_InformeListadoRecibos.Active := True; + tbl_InformeListadoRecibosResumen.Active := True; + + Result := _GenerarInforme(ATipoInforme); + finally + AStream.Free; + dsMaster := Nil; + FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + end; +end; + +function TRptRecibosProveedor.GenerarInformeListadoRecibosPendientes( + const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; + const FechaVenInicio, FechaVenFin: Variant; + const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; + const ImporteMinimo: Currency): Binary; +var + Condicion: TDAWhereExpression; + ATipoInforme: String; + AStream: TMemoryStream; + dsMaster: IDADataset; + +begin + FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + + AStream := TMemoryStream.Create; + try + //Inicializamos parametros + FIdEmpresa := IdEmpresa; + FFechaInicio := FechaInicio; + FFechaFin := FechaFin; + FFechaVenInicio := FechaVenInicio; + FFechaVenFin := FechaVenFin; + FImporteMinimo := ImporteMinimo; + + if Assigned(FListaIDProveedores) then + FListaIDProveedores.Free; + FListaIDProveedores := ListaIDProveedores; + + //Se prepara la tabla del listado general del informe + if tbl_InformeListadoRecibosPendientes.Active then + tbl_InformeListadoRecibosPendientes.Active := False; + PrepararTablaInforme(tbl_InformeListadoRecibosPendientes); + + // Filtrar el informe por situacion + with tbl_InformeListadoRecibosPendientes.DynamicWhere do + begin + // (SITUACION <> PAGADO) + Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorSITUACION), NewConstant('PAGADO', datString), dboNotEqual); + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + //Se prepara la tabla del listado resumen del informe + if tbl_InformeListadoRecibosPendResumen.Active then + tbl_InformeListadoRecibosPendResumen.Active := False; + + dsMaster := schReport.NewDataset(FConnection, ds_InformeListadoRecibosPendientesResumen, [], [], False); + PrepararTablaResumenInforme(dsMaster); + // Filtrar el informe por situacion + dsMaster.Where.AddText(' AND (SITUACION <> ''PAGADO'')'); + //Esto se hace para rellenar la tabla del datamodule que usa el informe. + dsMaster.Open; + AStream.Clear; + Bin2DataStreamer.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1); + Bin2DataStreamer.ReadDataset(AStream, tbl_InformeListadoRecibosPendResumen, TRUE, '', TRUE, TRUE); + + + //DESGLOSADO POR PROVEEDOR EN ESTE INFORME NO SE DESGLOSAR POR PROVEEDOR + FDesglosado := Desglosado; + if Desglosado then + ATipoInforme := rptInformeListadoRecibosProvPendientesDesglosado + else + ATipoInforme := rptInformeListadoRecibosProvPendientes; + + //Finalmente se abren las tablas del informe + tbl_InformeListadoRecibosPendientes.Active := True; + tbl_InformeListadoRecibosPendResumen.Active := True; + + Result := _GenerarInforme(ATipoInforme); + finally + AStream.Free; + dsMaster := Nil; + FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + end; +end; + +procedure TRptRecibosProveedor.IniciarParametrosInforme; +var + ATextos : TStringList; + ACadena : String; +begin + ATextos := TStringList.Create; + + try + if (not VarIsNull(FFechaInicio)) and (not VarIsNull(FFechaFin)) then + ACadena := Format('Fechas de recibo desde el %s hasta el %s', [VarToStr(FFechaInicio), VarToStr(FFechaFin)]) + else + ACadena := 'Sin rango de fechas'; + ATextos.Add(ACadena); + ACadena := ''; + + if (FImporteMinimo > 0) then + begin + ACadena := Format('Recibos con importe superior a %m', [FImporteMinimo]); + ATextos.Add(ACadena); + ACadena := ''; + end; + + if Assigned(FListaIDProveedores) and (FListaIDProveedores.Count > 0) then + begin + RecuperarNombresProveedores; + ACadena := FListaNombresProveedores.Text; + end + else begin + ACadena := 'Todos los proveedores'; + if FDesglosado then + ACadena := ACadena + ' (desglosados)' + end; + + ATextos.Add(ACadena); + ACadena := ''; + + frxReport.Variables.Variables['TextoParametros'] := ATextos.Text; + finally + FreeAndNil(ATextos); + end; +end; + +procedure TRptRecibosProveedor.PrepararTablaInforme(ATabla: TDAMemDataTable); +var + Condicion: TDAWhereExpression; + i: Integer; + +begin + // Filtrar el informe por empresa + with ATabla.DynamicWhere do + begin + // (ID_EMPRESA >= ID) + Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorID_EMPRESA), NewConstant(FIdEmpresa, datInteger), dboEqual); + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + // Filtrar el informe por fechas + if not VarIsNull(FFechaInicio) + and not VarIsNull(FFechaFin) then + begin + with ATabla.DynamicWhere do + begin + // (FECHA_INICIO between FECHA_FIN) + Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorFECHA_EMISION), NewConstant(FFechaInicio, datDateTime), dboGreaterOrEqual); + Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_RecibosProveedorFECHA_EMISION), NewConstant(FFechaFin, datDateTime), dboLessOrEqual), Condicion, dboAnd); + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + end; + + // Filtrar el informe por fechas de vencimiento + if not VarIsNull(FFechaVenInicio) + and not VarIsNull(FFechaVenFin) then + begin + with ATabla.DynamicWhere do + begin + // (FECHA_VENCIMIENTO_INICIO between FECHA_VENCIMIENTO_FIN) + Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorFECHA_VENCIMIENTO), NewConstant(FFechaVenInicio, datDateTime), dboGreaterOrEqual); + Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_RecibosProveedorFECHA_VENCIMIENTO), NewConstant(FFechaVenFin, datDateTime), dboLessOrEqual), Condicion, dboAnd); + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + end; + + // Filtrar el informe por proveedor + if Assigned(FListaIDProveedores) then + begin + with ATabla.DynamicWhere do + begin + for i := 0 to FListaIDProveedores.Count - 1 do + begin + + // (ID_PROVEEDOR = ID) + Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorID_PROVEEDOR), NewConstant(FListaIDProveedores.Items[i], datInteger), dboEqual); + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + end; + end; + + // Filtrar el informe por importe minimo + if (FImporteMinimo > 0) then + begin + with ATabla.DynamicWhere do + begin + // (IMPORTE_TOTAL > ImporteMinimo) + Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorIMPORTE_TOTAL), NewConstant(FImporteMinimo, datCurrency), dboGreaterOrEqual); + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + end; +end; + +procedure TRptRecibosProveedor.PrepararTablaResumenInforme(ATabla: IDADataset); +var + i: Integer; + AWhereStr : String; + +begin + // Filtrar el informe por empresa + AWhereStr := ' (' + fld_RecibosProveedorID_EMPRESA + ' = ' + IntToStr(FIdEmpresa) + ') '; + + // Filtrar el informe por fechas + if not VarIsNull(FFechaInicio) + and not VarIsNull(FFechaFin) then + begin + if Length(AWhereStr) > 0 then + AWhereStr := AWhereStr + 'AND'; + AWhereStr := AWhereStr + ' (' + fld_RecibosProveedorFECHA_EMISION + ' between ''' + ReplaceStr(VarToStr(FFechaInicio),'/','.') + ''' and ''' + ReplaceStr(VarToStr(FFechaFin),'/','.') + ''') '; + end; + + // Filtrar el informe por fechas de vencimiento + if not VarIsNull(FFechaVenInicio) + and not VarIsNull(FFechaVenFin) then + begin + if Length(AWhereStr) > 0 then + AWhereStr := AWhereStr + 'AND'; + AWhereStr := AWhereStr + ' (' + fld_RecibosProveedorFECHA_VENCIMIENTO + ' between ''' + ReplaceStr(VarToStr(FFechaVenInicio),'/','.') + ''' and ''' + ReplaceStr(VarToStr(FFechaVenFin),'/','.') + ''') '; + end; + + // Filtrar el informe por proveedor + if Assigned(FListaIDProveedores) then + begin + for i := 0 to FListaIDProveedores.Count - 1 do + begin + if Length(AWhereStr) > 0 then + AWhereStr := AWhereStr + 'AND'; + AWhereStr := AWhereStr + ' (' + fld_RecibosProveedorID_PROVEEDOR + ' = ' + IntToStr(FListaIDProveedores.Items[i]) + ') '; + end; + end; + + // Filtrar el informe por importe minimo + if (FImporteMinimo > 0) then + begin + if Length(AWhereStr) > 0 then + AWhereStr := AWhereStr + 'AND'; + AWhereStr := AWhereStr + ' (' + fld_RecibosProveedorIMPORTE_TOTAL + ' >= ' + CurrToStr(FImporteMinimo) + ') '; + end; + + ATabla.Where.AddText(AWhereStr); +end; + +procedure TRptRecibosProveedor.RecuperarNombresProveedores; +var + AContactosService : IsrvContactos; + Intf : IInterface; + AClientID : TGUID; + + ATableNameArray: StringArray; + ATableRequestInfoArray: TableRequestInfoArray; + ATableRequestInfo: TableRequestInfoV5; + AStream: TMemoryStream; + ADataTable: TDAMemDataTable; + i: Integer; + AWhereBuilder : TDAWhereBuilder; + ACondicion : TDAWhereExpression; +begin + CreateGUID(AClientID); + + GetClassFactory('srvContactos').CreateInstance(AClientID, Intf); + + if Assigned(Intf) then + begin + AContactosService := Intf as IsrvContactos; + + ATableNameArray := StringArray.Create; + ATableRequestInfoArray := TableRequestInfoArray.Create; + AWhereBuilder := TDAWhereBuilder.Create; + try + ATableNameArray.Add('Proveedores'); + ATableRequestInfo := TableRequestInfoV5.Create; + + with ATableRequestInfo do + begin + IncludeSchema := True; + MaxRecords := -1; + UserFilter := ''; + + AWhereBuilder.Clear; + with AWhereBuilder do + for i := 0 to FListaIDProveedores.Count - 1 do + begin + ACondicion := NewBinaryExpression( + NewBinaryExpression(NewField('', 'ID'), NewConstant(FListaIDProveedores[i], datInteger), dboEqual), + NewBinaryExpression(NewField('', 'ID_EMPRESA'), NewConstant(FIdEmpresa, datInteger), dboEqual), + dboAnd); + + if not AWhereBuilder.IsEmpty then + Expression := NewBinaryExpression(Expression, ACondicion, dboOr) + else + Expression := ACondicion; + end; + + WhereClause := AWhereBuilder.ExpressionToXmlNode(AWhereBuilder.Expression); + end; + + try + ATableRequestInfoArray.Add(ATableRequestInfo); + AStream := AContactosService.GetData(ATableNameArray, ATableRequestInfoArray); + if Assigned(AStream) then + begin + ADataTable := TDAMemDataTable.Create(nil); + try + ADataTable.Name := 'Proveedores'; + ADataTable.LocalDataStreamer := Bin2DataStreamer; + ADataTable.RemoteFetchEnabled := False; + Bin2DataStreamer.ReadDataset(AStream, ADataTable, True); + + ADataTable.Open; + FListaNombresProveedores.Clear; + for i := 0 to ADataTable.RecordCount - 1 do + begin + FListaNombresProveedores.Add(ADataTable.FieldByName('NOMBRE').AsString); + ADataTable.Next; + end; + + finally + FreeANDNil(ADataTable); + end; + end; + except + on e: Exception do + dmServer.EscribirLog(e.Message); + end; + finally + FreeANDNIL(ATableRequestInfoArray); + FreeANDNIL(ATableNameArray); + FreeANDNIL(AWhereBuilder); + end; + end; +end; + + +function TRptRecibosProveedor._GenerarInforme(const TipoInforme: String): Binary; +var + AInforme: Variant; + +begin + Result := Binary.Create; + AInforme := DarRutaFichero(DarRutaInformes, TipoInforme, IntToStr(FIdEmpresa)); + if VarIsNull(AInforme) then + raise Exception.Create (('Error Servidor: _GenerarInforme, no encuentra informe ' + TipoInforme)); + + frxReport.LoadFromFile(AInforme, True); + IniciarParametrosInforme; + + frxReport.PrepareReport(False); + frxReport.PreviewPages.SaveToStream(Result); +end; + +end. diff --git a/Source/Modulos/Recibos de proveedor/Servidor/srvRecibosProveedor_Impl.dcu b/Source/Modulos/Recibos de proveedor/Servidor/srvRecibosProveedor_Impl.dcu new file mode 100644 index 0000000..70b0d43 Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Servidor/srvRecibosProveedor_Impl.dcu differ diff --git a/Source/Modulos/Recibos de proveedor/Servidor/srvRecibosProveedor_Impl.dfm b/Source/Modulos/Recibos de proveedor/Servidor/srvRecibosProveedor_Impl.dfm new file mode 100644 index 0000000..716cfb2 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Servidor/srvRecibosProveedor_Impl.dfm @@ -0,0 +1,1508 @@ +object srvRecibosProveedor: TsrvRecibosProveedor + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + ConnectionName = 'IBX' + ServiceSchema = schRecibosProveedor + ServiceDataStreamer = Bin2DataStreamer + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + Height = 247 + Width = 347 + object schRecibosProveedor: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DADataDictionary + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + Name = 'IBX' + SQL = + 'select ANO from'#10'(select distinct(substr(FECHA_EMISION, 1,4)) as ' + + 'ANO'#10'from recibos_proveedor'#10'order by 1 desc)'#10#10'UNION ALL'#10#10'select d' + + 'istinct '#39'Todos'#39' as ANO'#10'from empresas'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ANO' + TableField = 'ANO' + end> + end> + Name = 'ListaAnosRecibos' + Fields = < + item + Name = 'ANO' + DataType = datString + Size = 254 + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_RECIBOS_PROVEEDOR' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_RECIBO_COMPENSADO' + TableField = 'ID_RECIBO_COMPENSADO' + end + item + DatasetField = 'REFERENCIA_REC_COMPENSADO' + TableField = 'REFERENCIA_REC_COMPENSADO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = 'REFERENCIA_PROVEEDOR' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'ID_FACTURA' + TableField = 'ID_FACTURA' + end + item + DatasetField = 'ID_REMESA' + TableField = 'ID_REMESA' + end + item + DatasetField = 'REFERENCIA_REMESA' + TableField = 'REFERENCIA_REMESA' + end + item + DatasetField = 'FECHA_EMISION' + TableField = 'FECHA_EMISION' + end + item + DatasetField = 'FECHA_VENCIMIENTO' + TableField = 'FECHA_VENCIMIENTO' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'IMPORTE' + TableField = 'IMPORTE' + end + item + DatasetField = 'OTROS_GASTOS' + TableField = 'OTROS_GASTOS' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'REFERENCIA_FACTURA_PROV' + TableField = 'REFERENCIA_FACTURA_PROV' + end + item + DatasetField = 'FECHA_FACTURA' + TableField = 'FECHA_FACTURA' + end + item + DatasetField = 'FORMA_PAGO_FACTURA' + TableField = 'FORMA_PAGO_FACTURA' + end + item + DatasetField = 'IMPORTE_FACTURA' + TableField = 'IMPORTE_FACTURA' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'DATOS_BANCARIOS' + TableField = 'DATOS_BANCARIOS' + end + item + DatasetField = 'ID_PROVEEDOR' + TableField = 'ID_PROVEEDOR' + end + item + DatasetField = 'NOMBRE_PROVEEDOR' + TableField = 'NOMBRE_PROVEEDOR' + end + item + DatasetField = 'NIF_CIF_PROVEEDOR' + TableField = 'NIF_CIF_PROVEEDOR' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end> + end> + Name = 'RecibosCompensadosProv' + Fields = < + item + Name = 'ID' + DataType = datInteger + Required = True + ServerAutoRefresh = True + InPrimaryKey = True + end + item + Name = 'ID_RECIBO_COMPENSADO' + DataType = datInteger + end + item + Name = 'REFERENCIA_REC_COMPENSADO' + DataType = datString + Size = 255 + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + end + item + Name = 'ID_FACTURA' + DataType = datInteger + end + item + Name = 'ID_REMESA' + DataType = datInteger + end + item + Name = 'REFERENCIA_REMESA' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE' + DataType = datCurrency + end + item + Name = 'OTROS_GASTOS' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'REFERENCIA_FACTURA_PROV' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + end + item + Name = 'FORMA_PAGO_FACTURA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_FACTURA' + DataType = datCurrency + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'DATOS_BANCARIOS' + DataType = datString + Size = 255 + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + end + item + Name = 'NOMBRE_PROVEEDOR' + DataType = datString + Size = 255 + end + item + Name = 'NIF_CIF_PROVEEDOR' + DataType = datString + Size = 15 + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + end + item + Name = 'USUARIO' + DataType = datString + Size = 30 + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_RECIBOS_PROVEEDOR' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_RECIBO_COMPENSADO' + TableField = 'ID_RECIBO_COMPENSADO' + end + item + DatasetField = 'REFERENCIA_REC_COMPENSADO' + TableField = 'REFERENCIA_REC_COMPENSADO' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = 'REFERENCIA_PROVEEDOR' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'ID_FACTURA' + TableField = 'ID_FACTURA' + end + item + DatasetField = 'ID_REMESA' + TableField = 'ID_REMESA' + end + item + DatasetField = 'REFERENCIA_REMESA' + TableField = 'REFERENCIA_REMESA' + end + item + DatasetField = 'FECHA_EMISION' + TableField = 'FECHA_EMISION' + end + item + DatasetField = 'FECHA_VENCIMIENTO' + TableField = 'FECHA_VENCIMIENTO' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'IMPORTE' + TableField = 'IMPORTE' + end + item + DatasetField = 'OTROS_GASTOS' + TableField = 'OTROS_GASTOS' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'REFERENCIA_FACTURA_PROV' + TableField = 'REFERENCIA_FACTURA_PROV' + end + item + DatasetField = 'FECHA_FACTURA' + TableField = 'FECHA_FACTURA' + end + item + DatasetField = 'FORMA_PAGO_FACTURA' + TableField = 'FORMA_PAGO_FACTURA' + end + item + DatasetField = 'IMPORTE_FACTURA' + TableField = 'IMPORTE_FACTURA' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'DATOS_BANCARIOS' + TableField = 'DATOS_BANCARIOS' + end + item + DatasetField = 'ID_PROVEEDOR' + TableField = 'ID_PROVEEDOR' + end + item + DatasetField = 'NOMBRE_PROVEEDOR' + TableField = 'NOMBRE_PROVEEDOR' + end + item + DatasetField = 'NIF_CIF_PROVEEDOR' + TableField = 'NIF_CIF_PROVEEDOR' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end> + end> + Name = 'RecibosProveedor' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_RECIBOS_PROVEEDOR_ID' + DictionaryEntry = 'RecibosProveedor_ID' + InPrimaryKey = True + end + item + Name = 'ID_RECIBO_COMPENSADO' + DataType = datInteger + DictionaryEntry = 'RecibosProveedor_ID_RECIBO_COMPENSADO' + end + item + Name = 'REFERENCIA_REC_COMPENSADO' + DataType = datString + Size = 255 + DictionaryEntry = 'RecibosProveedor_REFERENCIA_REC_COMPENSADO' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'RecibosProveedor_REFERENCIA' + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DictionaryEntry = 'RecibosProveedor_REFERENCIA_PROVEEDOR' + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + DictionaryEntry = 'RecibosProveedor_SITUACION' + end + item + Name = 'ID_FACTURA' + DataType = datInteger + DictionaryEntry = 'RecibosProveedor_ID_FACTURA' + end + item + Name = 'ID_REMESA' + DataType = datInteger + DictionaryEntry = 'RecibosProveedor_ID_REMESA' + end + item + Name = 'REFERENCIA_REMESA' + DataType = datString + Size = 255 + DictionaryEntry = 'RecibosProveedor_REFERENCIA_REMESA' + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + DictionaryEntry = 'RecibosProveedor_FECHA_EMISION' + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + DictionaryEntry = 'RecibosProveedor_FECHA_VENCIMIENTO' + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DictionaryEntry = 'RecibosProveedor_DESCRIPCION' + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + DictionaryEntry = 'RecibosProveedor_OBSERVACIONES' + end + item + Name = 'IMPORTE' + DataType = datCurrency + DictionaryEntry = 'RecibosProveedor_IMPORTE' + end + item + Name = 'OTROS_GASTOS' + DataType = datCurrency + DictionaryEntry = 'RecibosProveedor_OTROS_GASTOS' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DictionaryEntry = 'RecibosProveedor_IMPORTE_TOTAL' + end + item + Name = 'REFERENCIA_FACTURA_PROV' + DataType = datString + Size = 255 + DictionaryEntry = 'RecibosProveedor_REFERENCIA_FACTURA_PROV' + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + DictionaryEntry = 'RecibosProveedor_FECHA_FACTURA' + end + item + Name = 'FORMA_PAGO_FACTURA' + DataType = datString + Size = 255 + DictionaryEntry = 'RecibosProveedor_FORMA_PAGO_FACTURA' + end + item + Name = 'IMPORTE_FACTURA' + DataType = datCurrency + DictionaryEntry = 'RecibosProveedor_IMPORTE_FACTURA' + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'RecibosProveedor_ID_EMPRESA' + end + item + Name = 'DATOS_BANCARIOS' + DataType = datString + Size = 255 + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + DictionaryEntry = 'RecibosProveedor_ID_PROVEEDOR' + end + item + Name = 'NOMBRE_PROVEEDOR' + DataType = datString + Size = 255 + DictionaryEntry = 'RecibosProveedor_NOMBRE_PROVEEDOR' + end + item + Name = 'NIF_CIF_PROVEEDOR' + DataType = datString + Size = 15 + DictionaryEntry = 'RecibosProveedor_NIF_CIF_PROVEEDOR' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'RecibosProveedor_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'RecibosProveedor_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'RecibosCliente_USUARIO' + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PAGOS_PROVEEDOR' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_RECIBO' + TableField = 'ID_RECIBO' + end + item + DatasetField = 'TIPO' + TableField = 'TIPO' + end + item + DatasetField = 'FECHA_PAGO' + TableField = 'FECHA_PAGO' + end + item + DatasetField = 'TITULAR' + TableField = 'TITULAR' + end + item + DatasetField = 'ENTIDAD' + TableField = 'ENTIDAD' + end + item + DatasetField = 'SUCURSAL' + TableField = 'SUCURSAL' + end + item + DatasetField = 'DC' + TableField = 'DC' + end + item + DatasetField = 'CUENTA' + TableField = 'CUENTA' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end> + end> + Name = 'PagosProveedor' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_PAGOS_PROVEEDOR_ID' + DictionaryEntry = 'PagosProveedor_ID' + InPrimaryKey = True + end + item + Name = 'ID_RECIBO' + DataType = datInteger + DictionaryEntry = 'PagosProveedor_ID_RECIBO' + end + item + Name = 'TIPO' + DataType = datString + Size = 255 + DictionaryEntry = 'PagosProveedor_TIPO' + end + item + Name = 'FECHA_PAGO' + DataType = datDateTime + DictionaryEntry = 'PagosProveedor_FECHA_PAGO' + end + item + Name = 'TITULAR' + DataType = datString + Size = 255 + DictionaryEntry = 'PagosProveedor_TITULAR' + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + DictionaryEntry = 'PagosProveedor_ENTIDAD' + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + DictionaryEntry = 'PagosProveedor_SUCURSAL' + end + item + Name = 'DC' + DataType = datString + Size = 15 + DictionaryEntry = 'PagosProveedor_DC' + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + DictionaryEntry = 'PagosProveedor_CUENTA' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'PagosProveedor_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'PagosProveedor_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'PagosProveedor_USUARIO' + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_RECIBOS_PROVEEDOR_ID' + Value = '' + ParamType = daptInput + end + item + Name = 'ID_FACTURA' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + Value = '' + ParamType = daptInput + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE' + DataType = datFloat + Value = '' + ParamType = daptInput + end + item + Name = 'OTROS_GASTOS' + DataType = datFloat + Value = '' + ParamType = daptInput + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'RECIBOS_PROVEEDOR' + SQL = + 'INSERT'#10' INTO RECIBOS_PROVEEDOR'#10' (ID, ID_FACTURA, REFERENCIA,' + + ' REFERENCIA_PROVEEDOR, FECHA_EMISION, FECHA_VENCIMIENTO, DESCRIP' + + 'CION, OBSERVACIONES,'#10' IMPORTE, OTROS_GASTOS, USUARIO)'#10' VALUE' + + 'S'#10' (:ID, :ID_FACTURA, :REFERENCIA, :REFERENCIA_PROVEEDOR, :FE' + + 'CHA_EMISION, :FECHA_VENCIMIENTO, :DESCRIPCION, :OBSERVACIONES,'#10' ' + + ' :IMPORTE, :OTROS_GASTOS, :USUARIO)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_RecibosProveedor' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'RECIBOS_PROVEEDOR' + SQL = 'DELETE '#10' FROM'#10' RECIBOS_PROVEEDOR'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_RecibosProveedor' + end + item + Params = < + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + Value = '' + ParamType = daptInput + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'ID_REMESA' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'IMPORTE' + DataType = datFloat + Value = '' + ParamType = daptInput + end + item + Name = 'OTROS_GASTOS' + DataType = datFloat + Value = '' + ParamType = daptInput + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'RECIBOS_PROVEEDOR' + SQL = + 'UPDATE RECIBOS_PROVEEDOR'#10' SET '#10' REFERENCIA_PROVEEDOR = :REFE' + + 'RENCIA_PROVEEDOR,'#10' FECHA_EMISION = :FECHA_EMISION,'#10' FECHA_' + + 'VENCIMIENTO = :FECHA_VENCIMIENTO,'#10' DESCRIPCION = :DESCRIPCION' + + ','#10' OBSERVACIONES = :OBSERVACIONES,'#10' ID_REMESA = :ID_REMESA' + + ','#10' IMPORTE = :IMPORTE,'#10' OTROS_GASTOS = :OTROS_GASTOS,'#10' ' + + 'USUARIO = :USUARIO'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_RecibosProveedor' + end + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_PAGOS_PROVEEDOR_ID' + Value = '' + ParamType = daptInput + end + item + Name = 'ID_RECIBO' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'TIPO' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_PAGO' + DataType = datDateTime + Value = '' + ParamType = daptInput + end + item + Name = 'TITULAR' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + Value = '' + ParamType = daptInput + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + Value = '' + ParamType = daptInput + end + item + Name = 'DC' + DataType = datString + Size = 15 + Value = '' + ParamType = daptInput + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + Value = '' + ParamType = daptInput + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PAGOS_PROVEEDOR' + SQL = + 'INSERT'#10' INTO PAGOS_PROVEEDOR'#10' (ID, ID_RECIBO, TIPO, FECHA_PA' + + 'GO, TITULAR, ENTIDAD, '#10' SUCURSAL, DC, CUENTA, USUARIO)'#10' VAL' + + 'UES'#10' (:ID, :ID_RECIBO, :TIPO, :FECHA_PAGO, :TITULAR, :ENTIDAD' + + ', '#10' :SUCURSAL, :DC, :CUENTA, :USUARIO)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_PagosProveedor' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PAGOS_PROVEEDOR' + SQL = 'DELETE '#10' FROM'#10' PAGOS_PROVEEDOR'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_PagosProveedor' + end + item + Params = < + item + Name = 'ID' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'ID_RECIBO' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'TIPO' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_PAGO' + DataType = datDateTime + Value = '' + ParamType = daptInput + end + item + Name = 'TITULAR' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + Value = '' + ParamType = daptInput + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + Value = '' + ParamType = daptInput + end + item + Name = 'DC' + DataType = datString + Size = 15 + Value = '' + ParamType = daptInput + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'PAGOS_PROVEEDOR' + SQL = + 'UPDATE PAGOS_PROVEEDOR'#10' SET '#10' ID = :ID, '#10' ID_RECIBO = :ID' + + '_RECIBO, '#10' TIPO = :TIPO, '#10' FECHA_PAGO = :FECHA_PAGO, '#10' ' + + 'TITULAR = :TITULAR, '#10' ENTIDAD = :ENTIDAD, '#10' SUCURSAL = :SU' + + 'CURSAL, '#10' DC = :DC, '#10' CUENTA = :CUENTA'#10' WHERE'#10' (ID = :' + + 'OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_PagosProveedor' + end + item + Params = < + item + Name = 'ID_RECIBO_COMPENSADO' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'ID' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_RECIBOS_PROVEEDOR' + SQL = + 'UPDATE RECIBOS_PROVEEDOR'#10'SET ID_RECIBO_COMPENSADO = :ID_RECIBO_C' + + 'OMPENSADO'#10'WHERE (ID = :ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_RecibosCompensadosProv' + end + item + Params = < + item + Name = 'ID_RECIBO_COMPENSADO' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_RECIBOS_PROVEEDOR' + SQL = + 'UPDATE RECIBOS_PROVEEDOR'#10'SET ID_RECIBO_COMPENSADO = :ID_RECIBO_C' + + 'OMPENSADO'#10'WHERE (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_RecibosCompensadosProv' + end + item + Params = < + item + Name = 'ID_RECIBO_COMPENSADO' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_RECIBOS_PROVEEDOR' + SQL = + 'UPDATE RECIBOS_PROVEEDOR'#10'SET ID_RECIBO_COMPENSADO = :ID_RECIBO_C' + + 'OMPENSADO'#10'WHERE (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_RecibosCompensadosProv' + end> + RelationShips = < + item + Name = 'FK_RecibosCompensados' + MasterDatasetName = 'RecibosProveedor' + MasterFields = 'ID' + DetailDatasetName = 'RecibosCompensadosProv' + DetailFields = 'ID_RECIBO_COMPENSADO' + RelationshipType = rtForeignKey + end + item + Name = 'FK_PagosProveedor' + MasterDatasetName = 'RecibosProveedor' + MasterFields = 'ID' + DetailDatasetName = 'PagosProveedor' + DetailFields = 'ID_RECIBO' + RelationshipType = rtForeignKey + end> + UpdateRules = < + item + Name = 'Insert RecibosProveedor' + DoUpdate = False + DoDelete = False + DatasetName = 'RecibosProveedor' + FailureBehavior = fbRaiseException + end + item + Name = 'Insert PagosProveedor' + DoUpdate = False + DoDelete = False + DatasetName = 'PagosProveedor' + FailureBehavior = fbRaiseException + end + item + Name = 'Update RecibosProveedor' + DoInsert = False + DoDelete = False + DatasetName = 'RecibosProveedor' + FailureBehavior = fbRaiseException + end + item + Name = 'Update PagosProveedor' + DoInsert = False + DoDelete = False + DatasetName = 'PagosProveedor' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete PagosProveedor' + DoUpdate = False + DoInsert = False + DatasetName = 'PagosProveedor' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete RecibosProveedor' + DoUpdate = False + DoInsert = False + DatasetName = 'RecibosProveedor' + FailureBehavior = fbRaiseException + end> + Version = 0 + Left = 48 + Top = 24 + end + object bpRecibosProveedor: TDABusinessProcessor + Schema = schRecibosProveedor + InsertCommandName = 'Insert_RecibosProveedor' + DeleteCommandName = 'Delete_RecibosProveedor' + UpdateCommandName = 'Update_RecibosProveedor' + ReferencedDataset = 'RecibosProveedor' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 192 + Top = 24 + end + object DADataDictionary: TDADataDictionary + Fields = < + item + Name = 'RecibosProveedor_ID_PROVEEDOR' + DataType = datInteger + end + item + Name = 'RecibosProveedor_NOMBRE_PROVEEDOR' + DataType = datString + Size = 255 + end + item + Name = 'RecibosProveedor_NIF_CIF_PROVEEDOR' + DataType = datString + Size = 15 + end + item + Name = 'RecibosProveedor_ENTIDAD_PROVEEDOR' + DataType = datString + Size = 15 + end + item + Name = 'RecibosProveedor_SUCURSAL_PROVEEDOR' + DataType = datString + Size = 15 + end + item + Name = 'RecibosProveedor_DC_PROVEEDOR' + DataType = datString + Size = 15 + end + item + Name = 'RecibosProveedor_CUENTA_PROVEEDOR' + DataType = datString + Size = 15 + end + item + Name = 'PagosProveedor_ID' + DataType = datAutoInc + GeneratorName = 'GEN_PAGOS_PROVEEDOR_ID' + Required = True + DisplayLabel = 'ID' + ServerAutoRefresh = True + end + item + Name = 'PagosProveedor_ID_RECIBO' + DataType = datInteger + DisplayLabel = 'PagosCliente_ID_RECIBO' + end + item + Name = 'PagosProveedor_TIPO' + DataType = datString + Size = 255 + DisplayLabel = 'PagosCliente_TIPO' + end + item + Name = 'PagosProveedor_FECHA_PAGO' + DataType = datDateTime + DisplayLabel = 'PagosCliente_FECHA_PAGO' + end + item + Name = 'PagosProveedor_TITULAR' + DataType = datString + Size = 255 + DisplayLabel = 'PagosCliente_TITULAR' + end + item + Name = 'PagosProveedor_ENTIDAD' + DataType = datString + Size = 15 + DisplayLabel = 'PagosCliente_ENTIDAD' + end + item + Name = 'PagosProveedor_SUCURSAL' + DataType = datString + Size = 15 + DisplayLabel = 'PagosCliente_SUCURSAL' + end + item + Name = 'PagosProveedor_DC' + DataType = datString + Size = 15 + DisplayLabel = 'PagosCliente_DC' + end + item + Name = 'PagosProveedor_CUENTA' + DataType = datString + Size = 15 + DisplayLabel = 'PagosCliente_CUENTA' + end + item + Name = 'PagosProveedor_FECHA_ALTA' + DataType = datDateTime + DisplayLabel = 'PagosCliente_FECHA_ALTA' + end + item + Name = 'PagosProveedor_FECHA_MODIFICACION' + DataType = datDateTime + DisplayLabel = 'PagosCliente_FECHA_MODIFICACION' + end + item + Name = 'PagosProveedor_USUARIO' + DataType = datString + Size = 20 + DisplayLabel = 'PagosCliente_USUARIO' + end + item + Name = 'RecibosProveedor_ID' + DataType = datAutoInc + GeneratorName = 'GEN_RECIBOS_PROVEEDOR_ID' + Required = True + DisplayLabel = 'ID' + ServerAutoRefresh = True + end + item + Name = 'RecibosProveedor_REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'REFERENCIA' + end + item + Name = 'RecibosProveedor_SITUACION' + DataType = datString + Size = 9 + DisplayLabel = 'SITUACION' + end + item + Name = 'RecibosProveedor_ID_FACTURA' + DataType = datInteger + DisplayLabel = 'ID_FACTURA' + end + item + Name = 'RecibosProveedor_FECHA_EMISION' + DataType = datDateTime + DisplayLabel = 'RecibosCliente_FECHA_EMISION' + end + item + Name = 'RecibosProveedor_FECHA_VENCIMIENTO' + DataType = datDateTime + DisplayLabel = 'FECHA_VENCIMIENTO' + end + item + Name = 'RecibosProveedor_DESCRIPCION' + DataType = datString + Size = 255 + DisplayLabel = 'DESCRIPCION' + end + item + Name = 'RecibosProveedor_OBSERVACIONES' + DataType = datString + Size = 255 + DisplayLabel = 'OBSERVACIONES' + end + item + Name = 'RecibosProveedor_IMPORTE' + DataType = datCurrency + DisplayLabel = 'IMPORTE' + Alignment = taRightJustify + end + item + Name = 'RecibosProveedor_OTROS_GASTOS' + DataType = datCurrency + DisplayLabel = 'RecibosCliente_OTROS_GASTOS' + Alignment = taRightJustify + end + item + Name = 'RecibosProveedor_IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'IMPORTE_TOTAL' + Alignment = taRightJustify + end + item + Name = 'RecibosProveedor_FECHA_FACTURA' + DataType = datDateTime + DisplayLabel = 'FECHA_FACTURA' + end + item + Name = 'RecibosProveedor_FORMA_PAGO_FACTURA' + DataType = datString + Size = 255 + DisplayLabel = 'FORMA_PAGO_FACTURA' + end + item + Name = 'RecibosProveedor_IMPORTE_FACTURA' + DataType = datCurrency + DisplayLabel = 'IMPORTE_FACTURA' + Alignment = taRightJustify + end + item + Name = 'RecibosProveedor_ID_EMPRESA' + DataType = datInteger + DisplayLabel = 'ID_EMPRESA' + end + item + Name = 'RecibosProveedor_FECHA_ALTA' + DataType = datDateTime + DisplayLabel = 'FECHA_ALTA' + end + item + Name = 'RecibosProveedor_FECHA_MODIFICACION' + DataType = datDateTime + DisplayLabel = 'FECHA_MODIFICACION' + end + item + Name = 'RecibosCliente_USUARIO' + DataType = datString + Size = 20 + DisplayLabel = 'USUARIO' + end + item + Name = 'RecibosProveedor_USUARIO' + DataType = datString + Size = 20 + DisplayLabel = 'USUARIO' + end + item + Name = 'RecibosProveedor_REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'REFERENCIA_PROVEEDOR' + end + item + Name = 'RecibosProveedor_ID_REMESA' + DataType = datInteger + DisplayLabel = 'ID_REMESA' + end + item + Name = 'RecibosProveedor_REFERENCIA_REMESA' + DataType = datString + Size = 255 + DisplayLabel = 'REFERENCIA_REMESA' + end + item + Name = 'RecibosProveedor_REFERENCIA_FACTURA_PROV' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. factura prov.' + end + item + Name = 'RecibosProveedor_ID_RECIBO_COMPENSADO' + DataType = datInteger + end + item + Name = 'RecibosProveedor_REFERENCIA_REC_COMPENSADO' + DataType = datString + Size = 255 + end> + Left = 48 + Top = 152 + end + object bpPagosProveedor: TDABusinessProcessor + Schema = schRecibosProveedor + InsertCommandName = 'Insert_PagosProveedor' + DeleteCommandName = 'Delete_PagosProveedor' + UpdateCommandName = 'Update_PagosProveedor' + ReferencedDataset = 'PagosProveedor' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 192 + Top = 88 + end + object bpRecibosCompensados: TDABusinessProcessor + Schema = schRecibosProveedor + InsertCommandName = 'Insert_RecibosCompensadosProv' + DeleteCommandName = 'Delete_RecibosCompensadosProv' + UpdateCommandName = 'Update_RecibosCompensadosProv' + ReferencedDataset = 'RecibosCompensadosProv' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 192 + Top = 152 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 88 + end +end diff --git a/Source/Modulos/Recibos de proveedor/Servidor/srvRecibosProveedor_Impl.pas b/Source/Modulos/Recibos de proveedor/Servidor/srvRecibosProveedor_Impl.pas new file mode 100644 index 0000000..846e565 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Servidor/srvRecibosProveedor_Impl.pas @@ -0,0 +1,83 @@ +unit srvRecibosProveedor_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} uDABusinessProcessor, uDABin2DataStreamer, uDADataStreamer, + uDAScriptingProvider, uDAClasses, + FactuGES_Intf, uDAInterfaces; + +type + { TsrvRecibosProveedor } + TsrvRecibosProveedor = class(TDataAbstractService, IsrvRecibosProveedor) + bpRecibosProveedor: TDABusinessProcessor; + bpPagosProveedor: TDABusinessProcessor; + bpRecibosCompensados: TDABusinessProcessor; + Bin2DataStreamer: TDABin2DataStreamer; + schRecibosProveedor: TDASchema; + DADataDictionary: TDADataDictionary; + procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; + const IncludeSchema: Boolean; const MaxRecords: Integer); + procedure DARemoteServiceCreate(Sender: TObject); + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; var aConnectionName: string); + end; + +implementation + +{$R *.dfm} +uses + Dialogs, + {Generated:} FactuGES_Invk, uDataModuleServer, uDatabaseUtils, + schRecibosProveedorClient_Intf, uRestriccionesUsuarioUtils; +// uRptRecibosProveedor_Server; //, uBizRecibosProveedorServer; + +procedure Create_srvRecibosProveedor(out anInstance : IUnknown); +begin + anInstance := TsrvRecibosProveedor.Create(NIL); +end; + +{ srvRecibosProveedor } + +procedure TsrvRecibosProveedor.DARemoteServiceBeforeGetDatasetData( + const Dataset: IDADataset; const IncludeSchema: Boolean; + const MaxRecords: Integer); +begin +{ + if DataSet.Name = nme_RecibosProveedor then + begin + { Aqu se asegura que el usuario slo accede a Recibos + de las empresas a las que tiene permiso para acceder + filtrando DataSet por ID_EMPRESA. } +{ FiltrarAccesoUsuario(Session, Connection, schRecibosProveedor, DataSet, fld_RecibosProveedorID_EMPRESA); + end; +} +end; + +procedure TsrvRecibosProveedor.DARemoteServiceCreate(Sender: TObject); +begin + //SessionManager := dmServer.SessionManager; +end; + +procedure TsrvRecibosProveedor.DataAbstractServiceBeforeAcquireConnection( + aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +initialization + TROClassFactory.Create('srvRecibosProveedor', Create_srvRecibosProveedor, TsrvRecibosProveedor_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Recibos de proveedor/Views/RecibosProveedor_view.bdsproj b/Source/Modulos/Recibos de proveedor/Views/RecibosProveedor_view.bdsproj new file mode 100644 index 0000000..80688d1 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/RecibosProveedor_view.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + RecibosProveedor_view.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Recibos de proveedor/Views/RecibosProveedor_view.dcu b/Source/Modulos/Recibos de proveedor/Views/RecibosProveedor_view.dcu new file mode 100644 index 0000000..731b2c0 Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Views/RecibosProveedor_view.dcu differ diff --git a/Source/Modulos/Recibos de proveedor/Views/RecibosProveedor_view.dpk b/Source/Modulos/Recibos de proveedor/Views/RecibosProveedor_view.dpk new file mode 100644 index 0000000..2cd8109 Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Views/RecibosProveedor_view.dpk differ diff --git a/Source/Modulos/Recibos de proveedor/Views/RecibosProveedor_view.dproj b/Source/Modulos/Recibos de proveedor/Views/RecibosProveedor_view.dproj new file mode 100644 index 0000000..f69e1d9 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/RecibosProveedor_view.dproj @@ -0,0 +1,578 @@ + + + {74e7da8d-38a8-404c-b92c-c3a913b30982} + RecibosProveedor_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\RecibosProveedor_view.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0RecibosProveedor_view.dpk + + + + + MainSource + + + + + + + +
fEditorElegirRecibosProveedor
+ TfEditorElegirRecibosProveedor +
+ +
fEditorFechaPagoProveedor
+
+ +
fEditorReciboProveedor
+ TfEditorReciboProveedor +
+ +
fEditorReciboProveedorPreview
+ TfEditorReciboClienteReport +
+ +
fEditorRecibosProveedor
+ TfEditorRecibosCliente +
+ + +
frViewPagosProveedor
+ TFrame +
+ +
frViewReciboProveedor
+ TFrame +
+ +
frViewReciboProvImportes
+ TFrame +
+ +
frViewRecibosProvCompensados
+ TFrame +
+ +
frViewRecibosProveedor
+ TFrame +
+
+
+ diff --git a/Source/Modulos/Recibos de proveedor/Views/RecibosProveedor_view.rc b/Source/Modulos/Recibos de proveedor/Views/RecibosProveedor_view.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/RecibosProveedor_view.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Recibos de proveedor/Views/RecibosProveedor_view.res b/Source/Modulos/Recibos de proveedor/Views/RecibosProveedor_view.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Views/RecibosProveedor_view.res differ diff --git a/Source/Modulos/Recibos de proveedor/Views/uEditorElegirRecibosProveedor.dcu b/Source/Modulos/Recibos de proveedor/Views/uEditorElegirRecibosProveedor.dcu new file mode 100644 index 0000000..4b4d2e2 Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Views/uEditorElegirRecibosProveedor.dcu differ diff --git a/Source/Modulos/Recibos de proveedor/Views/uEditorElegirRecibosProveedor.dfm b/Source/Modulos/Recibos de proveedor/Views/uEditorElegirRecibosProveedor.dfm new file mode 100644 index 0000000..1d4d210 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/uEditorElegirRecibosProveedor.dfm @@ -0,0 +1,466 @@ +inherited fEditorElegirRecibosProveedor: TfEditorElegirRecibosProveedor + Caption = 'Seleccionar recibos de cliente' + ClientWidth = 654 + ExplicitWidth = 662 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Top = 148 + Width = 654 + Visible = False + ExplicitTop = 148 + ExplicitWidth = 654 + inherited Image1: TImage + Left = 627 + ExplicitLeft = 629 + end + end + inherited TBXDock: TTBXDock + Top = 175 + Width = 654 + Height = 72 + ExplicitTop = 175 + ExplicitWidth = 654 + ExplicitHeight = 72 + inherited tbxMain: TTBXToolbar + Left = 97 + ExplicitLeft = 97 + ExplicitWidth = 269 + inherited TBXItem5: TTBXItem + Visible = False + end + inherited TBXItem6: TTBXItem + Visible = False + end + inherited TBXItem36: TTBXItem + Action = actAnchoAuto2 + end + end + inherited tbxFiltro: TTBXToolbar + Top = 23 + DockRow = 1 + ExplicitTop = 23 + ExplicitWidth = 97 + inherited sepAno: TTBXSeparatorItem + Visible = False + end + inherited TBXLabelItem1: TTBXLabelItem + Visible = False + end + inherited tbxEditFiltro: TTBXEditItem + Visible = False + end + inherited TBXItem34: TTBXItem + Action = actQuitarFiltro2 + Visible = False + end + inherited TBXItem37: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 654 + end + inherited TBXTMain2: TTBXToolbar + Left = 318 + Visible = False + ExplicitLeft = 318 + ExplicitHeight = 23 + end + end + inherited StatusBar: TJvStatusBar + Top = 609 + Width = 654 + ExplicitTop = 609 + ExplicitWidth = 654 + end + inline frViewBarraSeleccion1: TfrViewBarraSeleccion [3] + Left = 0 + Top = 628 + Width = 654 + Height = 36 + Align = alBottom + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 4 + ReadOnly = False + ExplicitTop = 628 + ExplicitWidth = 654 + ExplicitHeight = 36 + inherited JvFooter1: TJvFooter + Width = 654 + Height = 36 + ExplicitWidth = 654 + ExplicitHeight = 36 + inherited bSeleccionar: TJvFooterBtn + Left = 442 + Top = 3 + ExplicitLeft = 444 + ExplicitTop = 3 + end + inherited bCancelar: TJvFooterBtn + Left = 546 + Top = 4 + ExplicitLeft = 546 + ExplicitTop = 4 + end + end + inherited BarraSeleccionActionList: TActionList + inherited actSeleccionar: TAction + OnExecute = frViewBarraSeleccion1actSeleccionarExecute + OnUpdate = frViewBarraSeleccion1actSeleccionarUpdate + end + inherited actCancelar: TAction + OnExecute = frViewBarraSeleccion1actCancelarExecute + end + end + end + object pnlHeader: TPanel [4] + Left = 0 + Top = 0 + Width = 654 + Height = 64 + Align = alTop + BevelOuter = bvNone + Color = clWhite + Padding.Left = 25 + Padding.Top = 8 + Padding.Right = 25 + Padding.Bottom = 8 + ParentBackground = False + TabOrder = 6 + object lblTitle: TLabel + AlignWithMargins = True + Left = 25 + Top = 8 + Width = 604 + Height = 13 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 0 + Margins.Bottom = 8 + Align = alTop + Caption = 'Seleccione recibos de cliente' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + ExplicitWidth = 162 + end + object lblComments: TLabel + AlignWithMargins = True + Left = 50 + Top = 29 + Width = 579 + Height = 24 + Margins.Left = 25 + Margins.Top = 0 + Margins.Right = 0 + Align = alClient + ExplicitWidth = 3 + ExplicitHeight = 13 + end + end + inherited frViewRecibosProveedor1: TfrViewRecibosProveedor [5] + Top = 247 + Width = 654 + Height = 362 + ExplicitTop = 247 + ExplicitWidth = 654 + ExplicitHeight = 362 + inherited cxGrid: TcxGrid + Width = 654 + Height = 234 + RootLevelOptions.DetailTabsPosition = dtpNone + ExplicitWidth = 654 + ExplicitHeight = 234 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Position = spFooter + Column = frViewRecibosProveedor1.cxGridViewIMPORTE_TOTAL + end> + DataController.Summary.FooterSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = '0 recibos' + Kind = skCount + Column = frViewRecibosProveedor1.cxGridViewFECHA_EMISION + end> + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 654 + ExplicitWidth = 654 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 654 + inherited dxLayoutControl1: TdxLayoutControl + Width = 654 + ExplicitWidth = 654 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 273 + Width = 273 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 197 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 197 + ExplicitWidth = 343 + Width = 343 + end + inherited eLista: TcxComboBox + Left = 528 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 528 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 654 + ExplicitWidth = 654 + inherited tbxBotones: TTBXToolbar + Width = 644 + ExplicitWidth = 644 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 336 + ExplicitTop = 336 + ExplicitWidth = 654 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 654 + ExplicitWidth = 654 + inherited TBXToolbar1: TTBXToolbar + Width = 644 + ExplicitWidth = 644 + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + BuiltInReportLink = True + end + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewRecibosProveedor1.cxGridView + HitTypes = [gvhtCell] + Index = 0 + end> + end + end + object pnlFiltrar: TTBXDockablePanel [6] + Left = 0 + Top = 64 + Align = alTop + Caption = 'Filtrar' + CaptionRotation = dpcrAlwaysVert + DockedHeight = 84 + DockMode = dmCannotFloat + DockPos = 88 + DockRow = 2 + FloatingWidth = 128 + FloatingHeight = 84 + ShowCaptionWhenDocked = False + SupportedDocks = [dkStandardDock, dkMultiDock] + TabOrder = 5 + object Label1: TLabel + Left = 329 + Top = 50 + Width = 17 + Height = 13 + Caption = 'y el' + end + object txtFiltroTodo: TcxTextEdit + Left = 201 + Top = 16 + Properties.OnChange = txtFiltroTodoPropertiesChange + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 273 + end + object edtFechaFiltro1: TcxDateEdit + Left = 201 + Top = 46 + Enabled = False + Properties.OnEditValueChanged = edtFechaFiltro1PropertiesEditValueChanged + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Width = 121 + end + object edtFechaFiltro2: TcxDateEdit + Left = 353 + Top = 46 + Enabled = False + Properties.OnEditValueChanged = edtFechaFiltro1PropertiesEditValueChanged + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 2 + Width = 121 + end + object rbTodo: TcxRadioButton + Left = 16 + Top = 18 + Width = 145 + Height = 17 + Caption = 'Recibos que contengan:' + Checked = True + TabOrder = 3 + TabStop = True + OnClick = rbTodoClick + LookAndFeel.Kind = lfStandard + LookAndFeel.NativeStyle = True + end + object rbFechas: TcxRadioButton + Left = 16 + Top = 48 + Width = 174 + Height = 17 + Caption = 'Recibos con vencimiento entre:' + TabOrder = 4 + OnClick = rbTodoClick + LookAndFeel.Kind = lfStandard + LookAndFeel.NativeStyle = True + end + object Button1: TBitBtn + Left = 503 + Top = 43 + Width = 163 + Height = 25 + Action = actQuitarFiltro2 + Caption = 'Quitar filtro y ver todo' + TabOrder = 5 + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00A505 + E1007204CA00FE00FF00FF00FF00FF00FF00E800F5003E09C100FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00AB17 + F900161DC600C400E700FF00FF00FF00FF00520DC9000F30D600D71BCF00942A + 8A004D493C004D493C00942A8A00D71BCF00FF00FF00FF00FF00D71BCF008B2C + 92002843B900141B980070208D004615BA000F30D600C20BF80069605800F8D5 + AD00F8C89000F8C89000E7AB63004D493C00FF00FF00FF00FF0069605800F8D5 + AD00C8ACA6001036E4002125A6000F30D600B20EF600FF00FF0069605800FFD8 + C000F8D5AD00F8C89000F8C890004D493C004D493C004D493C0069605800FFD8 + C000EFCDAD005F65C6000A38ED002637A300927C6C00FF00FF0069605800F0F0 + F000FFD8C000F8D5AD00F8C8900069605800696058006960580069605800FFF8 + FF008372B1000F30D6002750F7000F30D60025256F00FF00FF00942A8A006960 + 58006960580069605800942A8A00D71BCF00FF00FF00FF00FF00D71BCF004F24 + 9E000F30D600434D8A00605D6C004D69E3000F30D6006D05CC00FF00FF006648 + 54004D493C00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF000F30 + D6008F1FF300FF00FF00FF00FF00C811FD003154EB000024D300FF00FF00FF00 + FF00664854004D493C00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF004D493C004D493C00FF00FF00FF00FF00FF00 + FF00FF00FF0066485400696058004D493C00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00696058004D493C00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF0066485400D419D000FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00A8658D0069605800FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 + FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} + end + end + inherited EditorActionList: TActionList [9] + Left = 112 + Top = 192 + inherited actPrevisualizar: TAction + Visible = False + end + inherited actImprimir: TAction + Visible = False + end + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [10] + end + inherited dsDataTable: TDADataSource [11] + Left = 8 + Top = 192 + end + inherited JvFormStorage: TJvFormStorage [13] + end + inherited GridPopupMenu: TPopupMenu [14] + Left = 80 + Top = 192 + end + object EditorSeleccionActionList: TActionList + Images = SmallImages + Left = 152 + Top = 192 + object actBuscar2: TAction + Category = 'Buscar' + Caption = 'Buscar' + ImageIndex = 10 + ShortCut = 114 + end + object actQuitarFiltro2: TAction + Category = 'Buscar' + Caption = 'Quitar filtro y ver todo' + ImageIndex = 19 + OnExecute = actQuitarFiltro2Execute + end + object actAnchoAuto2: TAction + Category = 'Ver' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 21 + OnExecute = actAnchoAuto2Execute + end + end +end diff --git a/Source/Modulos/Recibos de proveedor/Views/uEditorElegirRecibosProveedor.pas b/Source/Modulos/Recibos de proveedor/Views/uEditorElegirRecibosProveedor.pas new file mode 100644 index 0000000..b74ac39 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/uEditorElegirRecibosProveedor.pas @@ -0,0 +1,213 @@ +{ +=============================================================================== + Copyright (©) 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los términos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versión: + Versión actual: 1.0.0 + Fecha versión actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uEditorElegirRecibosProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, DB, uDADataTable, Menus, JvAppStorage, JvAppRegistryStorage, + JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns, + ActnList, uCustomView, uViewBase, uViewGridBase, uViewGrid, + JvExComCtrls, JvStatusBar, + ComCtrls, TB2ExtItems, TBXExtItems, TBX, + TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvComponent, + JvNavigationPane, uViewBarraSeleccion, StdCtrls, + + uViewRecibosProveedor, uEditorRecibosProveedor, uBizRecibosProveedor, uIEditorElegirRecibosProveedor, + Buttons, cxRadioGroup, cxMaskEdit, cxDropDownEdit, cxCalendar, cxControls, + cxContainer, cxEdit, cxTextEdit, TBXDkPanels, JSDialog, uDAInterfaces; + + +type + TfEditorElegirRecibosProveedor = class(TfEditorRecibosProveedor, IEditorElegirRecibosProveedor) + frViewBarraSeleccion1: TfrViewBarraSeleccion; + lblTitle: TLabel; + lblComments: TLabel; + EditorSeleccionActionList: TActionList; + actBuscar2: TAction; + actQuitarFiltro2: TAction; + actAnchoAuto2: TAction; + pnlFiltrar: TTBXDockablePanel; + Label1: TLabel; + txtFiltroTodo: TcxTextEdit; + edtFechaFiltro1: TcxDateEdit; + edtFechaFiltro2: TcxDateEdit; + rbTodo: TcxRadioButton; + rbFechas: TcxRadioButton; + Button1: TBitBtn; + pnlHeader: TPanel; + procedure frViewBarraSeleccion1actSeleccionarUpdate(Sender: TObject); + procedure frViewBarraSeleccion1actCancelarExecute(Sender: TObject); + procedure frViewBarraSeleccion1actSeleccionarExecute(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure actAnchoAuto2Execute(Sender: TObject); + procedure actQuitarFiltro2Execute(Sender: TObject); + procedure txtFiltroTodoPropertiesChange(Sender: TObject); + procedure edtFechaFiltro1PropertiesEditValueChanged(Sender: TObject); + procedure rbTodoClick(Sender: TObject); + protected + procedure SetMultiSelect (AValue : Boolean); + function GetMultiSelect : Boolean; + function GetRecibosProveedorSeleccionados: IBizRecibosProveedor; + procedure SetViewGrid(const Value: IViewGridBase); override; + procedure SetMensaje (const AValue: String); + function GetMensaje: String; + public + property Mensaje : String read GetMensaje write SetMensaje; + property RecibosProveedorSeleccionados: IBizRecibosProveedor read GetRecibosProveedorSeleccionados; + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + end; + +implementation + +uses + uEditorGridBase, cxGridCustomTableView, uIntegerListUtils, uDBSelectionListUtils, + uGridStatusUtils, uDialogUtils, uEditorBase, uRecibosProveedorController; + +{$R *.dfm} + +{ TfEditorElegirRecibosProveedor } + +procedure TfEditorElegirRecibosProveedor.actAnchoAuto2Execute(Sender: TObject); +begin + inherited; + actAnchoAuto.Execute; +end; + +procedure TfEditorElegirRecibosProveedor.actQuitarFiltro2Execute(Sender: TObject); +begin +// inherited; + + if Assigned(ViewGrid) then + begin + txtFiltroTodo.Clear; + edtFechaFiltro1.Clear; + edtFechaFiltro2.Clear; + (ViewGrid as IViewRecibosProveedor).FiltrarPorFechas(null, null); + inherited; + end; + +// actQuitarFiltro.Execute; +end; + +procedure TfEditorElegirRecibosProveedor.edtFechaFiltro1PropertiesEditValueChanged(Sender: TObject); +begin + if not VarIsNull(edtFechaFiltro1.EditValue) and not VarIsNull(edtFechaFiltro2.EditValue) then + begin + if (edtFechaFiltro1.EditValue > edtFechaFiltro2.EditValue) then + begin + ShowWarningMessage('La fecha de inicio debe ser anterior a la fecha final'); + edtFechaFiltro1.SetFocus; + end + else + (ViewGrid as IViewRecibosProveedor).FiltrarPorFechas(edtFechaFiltro1.EditValue, edtFechaFiltro2.EditValue); + end; +end; + +procedure TfEditorElegirRecibosProveedor.FormShow(Sender: TObject); +begin + inherited; + EditorActionList.State := asSuspended; + frViewRecibosProveedor1.cxViewGridPopupMenu.PopupMenus.Items[0].HitTypes := []; +end; + +procedure TfEditorElegirRecibosProveedor.frViewBarraSeleccion1actCancelarExecute( + Sender: TObject); +begin + inherited; + Close; +end; + +procedure TfEditorElegirRecibosProveedor.frViewBarraSeleccion1actSeleccionarExecute( + Sender: TObject); +begin + inherited; + ModalResult := mrOk; +end; + +procedure TfEditorElegirRecibosProveedor.frViewBarraSeleccion1actSeleccionarUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (ViewGrid._FocusedView.Controller.SelectedRowCount > 0) +end; + +function TfEditorElegirRecibosProveedor.GetRecibosProveedorSeleccionados: IBizRecibosProveedor; +begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (RecibosProveedor as ISeleccionable).SelectedRecords); + // En SelectedRecords tengo los ID de las filas seleccionadas del grid + Result := (Controller as IRecibosProveedorController).ExtraerSeleccionados(RecibosProveedor) as IBizRecibosProveedor; +end; + +procedure TfEditorElegirRecibosProveedor.rbTodoClick(Sender: TObject); +begin + actQuitarFiltro.Execute; + + if rbTodo.Checked then + begin + edtFechaFiltro1.Enabled := False; + edtFechaFiltro2.Enabled := False; + txtFiltroTodo.Enabled := True; + end + else begin + edtFechaFiltro1.Enabled := True; + edtFechaFiltro2.Enabled := True; + txtFiltroTodo.Enabled := False; + end; +end; + +function TfEditorElegirRecibosProveedor.GetMensaje: String; +begin + Result := lblComments.Caption; +end; + +function TfEditorElegirRecibosProveedor.GetMultiSelect: Boolean; +begin + Result := ViewGrid.MultiSelect; +end; + +procedure TfEditorElegirRecibosProveedor.SetMensaje(const AValue: String); +begin + lblComments.Caption := AValue; +end; + +procedure TfEditorElegirRecibosProveedor.SetMultiSelect(AValue: Boolean); +begin + ViewGrid.MultiSelect := AValue; +end; + +procedure TfEditorElegirRecibosProveedor.SetViewGrid(const Value: IViewGridBase); +begin + inherited; + ViewGrid.OnDblClick := frViewBarraSeleccion1.actSeleccionar.OnExecute; +end; + +procedure TfEditorElegirRecibosProveedor.txtFiltroTodoPropertiesChange(Sender: TObject); +begin + if Assigned(ViewGrid) then + ViewGrid.Filter := txtFiltroTodo.Text; +end; + +end. diff --git a/Source/Modulos/Recibos de proveedor/Views/uEditorFechaPagoProveedor.dcu b/Source/Modulos/Recibos de proveedor/Views/uEditorFechaPagoProveedor.dcu new file mode 100644 index 0000000..55ed863 Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Views/uEditorFechaPagoProveedor.dcu differ diff --git a/Source/Modulos/Recibos de proveedor/Views/uEditorFechaPagoProveedor.dfm b/Source/Modulos/Recibos de proveedor/Views/uEditorFechaPagoProveedor.dfm new file mode 100644 index 0000000..d7c9894 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/uEditorFechaPagoProveedor.dfm @@ -0,0 +1,82 @@ +object fEditorFechaPagoProveedor: TfEditorFechaPagoProveedor + Left = 0 + Top = 0 + BorderStyle = bsDialog + Caption = 'Fecha del cobro / devoluci'#243'n' + ClientHeight = 167 + ClientWidth = 283 + Color = clWindow + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnShow = FormShow + DesignSize = ( + 283 + 167) + PixelsPerInch = 96 + TextHeight = 13 + object Label1: TLabel + Left = 21 + Top = 16 + Width = 246 + Height = 26 + Anchors = [akLeft, akTop, akRight] + Caption = + 'Introduzca la fecha en la que se ha hecho efectivo '#13#10'el cobro o ' + + 'la devoluci'#243'n:' + end + object Label2: TLabel + Left = 38 + Top = 67 + Width = 33 + Height = 13 + Alignment = taRightJustify + Caption = 'Fecha:' + FocusControl = eFechaPago + end + object eFechaPago: TcxDateEdit + Left = 77 + Top = 64 + Properties.OnEditValueChanged = eFechaPagoPropertiesEditValueChanged + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 132 + end + object Panel1: TPanel + Left = 0 + Top = 126 + Width = 283 + Height = 41 + Align = alBottom + TabOrder = 1 + object bAceptar: TButton + Left = 119 + Top = 8 + Width = 75 + Height = 25 + Caption = 'Aceptar' + ModalResult = 1 + TabOrder = 0 + end + object bCancelar: TButton + Left = 200 + Top = 8 + Width = 75 + Height = 25 + Caption = 'Cancelar' + ModalResult = 2 + TabOrder = 1 + end + end +end diff --git a/Source/Modulos/Recibos de proveedor/Views/uEditorFechaPagoProveedor.pas b/Source/Modulos/Recibos de proveedor/Views/uEditorFechaPagoProveedor.pas new file mode 100644 index 0000000..200abc3 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/uEditorFechaPagoProveedor.pas @@ -0,0 +1,54 @@ +unit uEditorFechaPagoProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, cxControls, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, + cxDropDownEdit, cxCalendar, ExtCtrls, uEditorBasico, uIEditorFechaPagoProveedor; + +type + TfEditorFechaPagoProveedor = class(TfEditorBasico, IEditorFechaPagoProveedor) + Label1: TLabel; + eFechaPago: TcxDateEdit; + bAceptar: TButton; + bCancelar: TButton; + Label2: TLabel; + Panel1: TPanel; + procedure FormShow(Sender: TObject); + procedure eFechaPagoPropertiesEditValueChanged(Sender: TObject); + private + FFechaPago : TDateTime; + function GetFechaPago: TDateTime; + procedure SetFechaPago(const Value: TDateTime); + public + property FechaPago: TDateTime Read GetFechaPago write SetFechaPago; + end; + +implementation +{$R *.dfm} + +procedure TfEditorFechaPagoProveedor.eFechaPagoPropertiesEditValueChanged( + Sender: TObject); +begin + FechaPago := eFechaPago.Date; +end; + +procedure TfEditorFechaPagoProveedor.FormShow(Sender: TObject); +begin + if (length(eFechaPago.Text) = 0) then + eFechaPago.Date := Date; +end; + +function TfEditorFechaPagoProveedor.GetFechaPago: TDateTime; +begin + Result := FFechaPago; +end; + +procedure TfEditorFechaPagoProveedor.SetFechaPago(const Value: TDateTime); +begin + FFechaPago := Value; + eFechaPago.EditValue := FFechaPago; +end; + +end. diff --git a/Source/Modulos/Recibos de proveedor/Views/uEditorReciboProveedor.dcu b/Source/Modulos/Recibos de proveedor/Views/uEditorReciboProveedor.dcu new file mode 100644 index 0000000..33b41be Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Views/uEditorReciboProveedor.dcu differ diff --git a/Source/Modulos/Recibos de proveedor/Views/uEditorReciboProveedor.dfm b/Source/Modulos/Recibos de proveedor/Views/uEditorReciboProveedor.dfm new file mode 100644 index 0000000..4a1ecbf --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/uEditorReciboProveedor.dfm @@ -0,0 +1,438 @@ +inherited fEditorReciboProveedor: TfEditorReciboProveedor + Caption = 'Recibo de cliente' + ClientHeight = 554 + ClientWidth = 691 + OnClose = CustomEditorClose + ExplicitWidth = 699 + ExplicitHeight = 588 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 691 + Caption = 'Recibo de cliente' + ExplicitWidth = 691 + inherited Image1: TImage + Left = 558 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB51930000022E4944415478DA63FCFFFF3F + 032D01E3D0B760D9965334B321CAC78C116C41A4B729491AFFFCFDCFF0F7EF3F + 869FBFFE80E93FFFFE8169301B887FFDFECB109E5EC7707EE774840589270D09 + 1AFC17189CBFFEFE65F8F5E70F98FEF2EB17840FC2404B607245BF9633CC5BBA + 09D382F9E6E7512C927EEBCDD0E4D98C61D13FA06120ECB9DA9EE123CF03B0E1 + 97025E3028AD14045B52F17715A605AAAB85196E87BE051B006283C0CD903760 + FA02E37906E393C6400120479D81E1ACF95906CD1F5A0CBF803E1058CE0F56F3 + 3F1D12958C33191926736D47B58056910CB6106601AD221AC5025A44348605D4 + 8E68AC168000888D6C38BE880EDAE2C1F094FD36C38DE0D760B5628BB919EA18 + D6E2F701CC70E6534C0C7FCDFE816990E167E3CE3218CF035AA4CDC0F059E70B + 03EF151E86D72A6F18C277FA32EC8D3AC620BC880BEC8376968DD82D400F1AE6 + E5400B2281162C668218BECC98E16C14909E65CCF021E22383C0167E86172E2F + 19A2F604305CF873011E1FBDEC5B88B400D9075781121C40FC8301EC83B76AEF + 18846F09313C9179C210773094E1D4CFB3700B6079016F2A8259F217A8E132CB + 25481C5C044AE843E240EEAD3CC3CF1F3F300C0701B805200EAEE202A458F183 + 1F438D732DD8927FE0B4FE178E41FCE8BD8170C37FA6FC01E764BC16C0003C6D + 03F1BBEFDF51F8C818391F2003AC16A0E7D23FD09CF9EDC72F243E50EE1F420E + 9E93A17C901C085CB97907D382298B775056F0A001140BBA27CFA7AAE13030F4 + 2B7D0062D74EABC521DC370000000049454E44AE426082} + ExplicitLeft = 574 + end + inherited lblDesbloquear: TcxLabel + Left = 593 + ExplicitLeft = 593 + end + end + inherited TBXDock: TTBXDock + Width = 691 + ExplicitWidth = 691 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 267 + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 691 + end + end + inherited pgPaginas: TPageControl + Width = 685 + Height = 353 + ExplicitWidth = 685 + ExplicitHeight = 353 + inherited pagGeneral: TTabSheet + ExplicitLeft = 4 + ExplicitTop = 24 + ExplicitWidth = 677 + ExplicitHeight = 325 + inline frViewReciboProveedor1: TfrViewReciboProveedor + Left = 0 + Top = 0 + Width = 677 + Height = 350 + Align = alTop + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 677 + ExplicitHeight = 350 + inherited dxLayoutControl1: TdxLayoutControl + Width = 677 + Height = 350 + ExplicitWidth = 677 + ExplicitHeight = 350 + DesignSize = ( + 677 + 350) + inherited eReferencia: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited eSituacion: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtFechaVencimiento: TcxDBDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 216 + Width = 216 + end + inherited memObservaciones: TcxDBMemo + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited eFechaEmision: TcxDBTextEdit + Left = 355 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 355 + ExplicitWidth = 200 + Width = 200 + end + inherited eFormaPago: TcxDBTextEdit + Left = 355 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 355 + ExplicitWidth = 200 + Width = 200 + end + inherited eImporteTotal: TcxDBCurrencyEdit + Left = 355 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 355 + ExplicitWidth = 200 + Width = 200 + end + inherited eNombreCliente: TcxDBTextEdit + Left = 355 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 355 + end + inherited eNifCif: TcxDBTextEdit + Left = 355 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 355 + ExplicitWidth = 255 + Width = 255 + end + inherited eRemesa: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtFechaEmision: TcxDBDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 97 + Width = 97 + end + inherited eReferenciaProveedor: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 129 + Width = 129 + end + inherited rReferenciaFacturaProv: TcxDBTextEdit + Left = 355 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 355 + ExplicitWidth = 200 + Width = 200 + end + inherited rRefReciboCompensado: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited eCuenta: TcxDBTextEdit + Left = 355 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 355 + ExplicitWidth = 83 + Width = 83 + end + end + end + end + object pagPagos: TTabSheet + Caption = 'Pagos' + ImageIndex = 1 + inline frViewPagosProveedor1: TfrViewPagosProveedor + Left = 0 + Top = 0 + Width = 677 + Height = 325 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 677 + ExplicitHeight = 325 + inherited dxLayoutControl1: TdxLayoutControl + Width = 677 + Height = 325 + ExplicitWidth = 677 + ExplicitHeight = 325 + inherited ListaPagosProveedor: TcxGrid + Width = 252 + Height = 105 + ExplicitWidth = 252 + ExplicitHeight = 105 + inherited ListaPagosProveedorDBTableView1: TcxGridDBTableView + inherited ListaPagosProveedorDBTableView1TIPO: TcxGridDBColumn + IsCaptionAssigned = True + end + end + end + inherited ToolBar1: TToolBar + Width = 622 + ExplicitWidth = 622 + end + end + inherited DADataSource: TDADataSource + Left = 32 + Top = 80 + end + inherited ActionListContenido: TActionList + inherited actAnadir: TAction + OnExecute = frViewPagosProveedor1actAnadirExecute + end + inherited actModificar: TAction + OnExecute = frViewPagosProveedor1actModificarExecute + OnUpdate = frViewPagosProveedor1actModificarUpdate + end + inherited actEliminar: TAction + OnExecute = frViewPagosProveedor1actEliminarExecute + OnUpdate = frViewPagosProveedor1actEliminarUpdate + end + end + end + end + object pagCompensados: TTabSheet + Caption = 'Compensados' + ImageIndex = 2 + inline frViewRecibosProvCompensados1: TfrViewRecibosProvCompensados + Left = 0 + Top = 0 + Width = 677 + Height = 325 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 677 + ExplicitHeight = 325 + inherited cxGrid: TcxGrid + Width = 677 + Height = 300 + ExplicitWidth = 677 + ExplicitHeight = 300 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = frViewRecibosProvCompensados1.cxGridViewIMPORTE_TOTAL + end> + DataController.Summary.OnAfterSummary = frViewRecibosProvCompensados1cxGridViewDataControllerSummaryAfterSummary + end + end + inherited ToolBar1: TToolBar + Width = 677 + ExplicitWidth = 677 + inherited ToolButton3: TToolButton + Top = 0 + ExplicitTop = 0 + ExplicitWidth = 98 + end + inherited ToolButton8: TToolButton + Top = 0 + ExplicitTop = 0 + ExplicitWidth = 99 + end + end + end + end + end + inherited StatusBar: TJvStatusBar + Top = 535 + Width = 691 + Panels = < + item + Width = 200 + end> + ExplicitTop = 535 + ExplicitWidth = 691 + end + inline frViewReciboProvImportes1: TfrViewReciboProvImportes [4] + Left = 0 + Top = 435 + Width = 691 + Height = 100 + Align = alBottom + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 4 + ReadOnly = False + ExplicitTop = 435 + ExplicitWidth = 691 + inherited dxLayoutControl1: TdxLayoutControl + Width = 691 + ExplicitWidth = 691 + inherited eImporte: TcxDBCurrencyEdit + DataBinding.DataSource = dsDataTable + Properties.OnEditValueChanged = frViewReciboProvImportes1eImportePropertiesEditValueChanged + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 150 + Width = 150 + end + inherited eOtrosGastos: TcxDBCurrencyEdit + DataBinding.DataSource = dsDataTable + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited eImporteTotalRecibo: TcxCurrencyEdit + Left = 369 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 369 + ExplicitWidth = 300 + Width = 300 + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Group1: TdxLayoutGroup + inherited dxLayoutControl1Group3: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + Offsets.Right = 10 + end + inherited dxLayoutControl1Item3: TdxLayoutItem + AlignHorz = ahRight + end + end + end + end + end + inherited EditorActionList: TActionList [5] + Left = 48 + Top = 144 + inherited actNuevo: TAction + Enabled = False + Visible = False + end + inherited actModificar: TAction + Enabled = False + Visible = False + end + inherited actEliminar: TAction + Enabled = False + Visible = False + end + inherited actPrevisualizar: TAction + Enabled = False + Visible = False + end + inherited actImprimir: TAction + Enabled = False + Visible = False + end + end + inherited SmallImages: TPngImageList [6] + end + inherited LargeImages: TPngImageList [7] + end + inherited JvFormStorage: TJvFormStorage [8] + OnSavePlacement = JvFormStorageSavePlacement + OnRestorePlacement = JvFormStorageRestorePlacement + end + inherited dsDataTable: TDADataSource [9] + Left = 8 + Top = 136 + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [10] + end + object DADataSource1: TDADataSource + OnDataChange = dsDataTableDataChange + Left = 80 + Top = 168 + end +end diff --git a/Source/Modulos/Recibos de proveedor/Views/uEditorReciboProveedor.pas b/Source/Modulos/Recibos de proveedor/Views/uEditorReciboProveedor.pas new file mode 100644 index 0000000..3d83454 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/uEditorReciboProveedor.pas @@ -0,0 +1,331 @@ +unit uEditorReciboProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorDBItem, JvAppStorage, JvAppRegistryStorage, DB, uDADataTable, + JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, + ComCtrls, JvExComCtrls, JvStatusBar, TBX, TB2Item, TB2Dock, TB2Toolbar, + pngimage, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uIEditorReciboProveedor, + uCustomView, uViewBase, uViewReciboProveedor, uRecibosProveedorController, + uBizRecibosProveedor, uViewPagosProveedor, dxLayoutLookAndFeels, cxCustomData, + uViewDetallesGenerico, uViewRecibosProvCompensados, uViewReciboProvImportes, + uDAInterfaces, cxControls, cxContainer, cxEdit, cxLabel; + +type + TfEditorReciboProveedor = class(TfEditorDBItem, IEditorReciboProveedor) + DADataSource1: TDADataSource; + frViewReciboProveedor1: TfrViewReciboProveedor; + pagPagos: TTabSheet; + pagCompensados: TTabSheet; + frViewPagosProveedor1: TfrViewPagosProveedor; + frViewRecibosProvCompensados1: TfrViewRecibosProvCompensados; + frViewReciboProvImportes1: TfrViewReciboProvImportes; + procedure FormShow(Sender: TObject); + procedure dsDataTableDataChange(Sender: TObject; Field: TField); + procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); + procedure frViewReciboProveedor1eImportePropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + + procedure frViewPagosProveedor1actAnadirExecute(Sender: TObject); + procedure frViewPagosProveedor1actEliminarExecute(Sender: TObject); + procedure frViewPagosProveedor1actEliminarUpdate(Sender: TObject); + procedure frViewPagosProveedor1actModificarUpdate(Sender: TObject); + procedure frViewPagosProveedor1actModificarExecute(Sender: TObject); + + procedure HabilitarRecibo; + procedure DeshabilitarRecibo; + procedure JvFormStorageRestorePlacement(Sender: TObject); + procedure JvFormStorageSavePlacement(Sender: TObject); + procedure frViewReciboProvImportes1eImportePropertiesEditValueChanged(Sender: TObject); + procedure frViewRecibosProvCompensados1cxGridViewDataControllerSummaryAfterSummary(ASender: TcxDataSummary); + + private + FController : IRecibosProveedorController; + FRecibo: IBizRecibosProveedor; + FViewRecibo : IViewReciboProveedor; + FImporteRestante : Double; + + function GetController : IRecibosProveedorController; + procedure SetController (const Value : IRecibosProveedorController); virtual; + function GetRecibo: IBizRecibosProveedor; + procedure SetRecibo(const Value: IBizRecibosProveedor); + function GetViewRecibo: IViewReciboProveedor; + procedure SetViewRecibo(const Value: IViewReciboProveedor); + property ViewRecibo: IViewReciboProveedor read GetViewRecibo write SetViewRecibo; + procedure CalcularTotal; + + protected + procedure PrevisualizarInterno; override; + procedure ImprimirInterno; override; + procedure GuardarInterno; override; + + procedure PonerTitulos(const ATitulo: string = ''); override; + + public + property Recibo: IBizRecibosProveedor read GetRecibo write SetRecibo; + constructor Create(AOwner: TComponent); override; + end; + +implementation + +uses schRecibosProveedorClient_Intf, uEditorFechaPagoProveedor, uEditorBase, uFactuGES_App; + +{$R *.dfm} + +procedure TfEditorReciboProveedor.CalcularTotal; +var + ImporteAux: Double; +begin + + ImporteAux := 0; + if not VarIsNull(frViewRecibosProvCompensados1.cxGridView.DataController.Summary.FooterSummaryValues[0]) then + ImporteAux := frViewRecibosProvCompensados1.cxGridView.DataController.Summary.FooterSummaryValues[0]; + + frViewReciboProvImportes1.eImporteTotalRecibo.Value := frViewReciboProvImportes1.eImporte.Value + frViewReciboProvImportes1.eOtrosGastos.Value + ImporteAux; +end; + +constructor TfEditorReciboProveedor.Create(AOwner: TComponent); +begin + inherited; + FImporteRestante := 0; + pgPaginas.ActivePageIndex := 0; + ViewRecibo := frViewReciboProveedor1; +end; + +procedure TfEditorReciboProveedor.CustomEditorClose(Sender: TObject; + var Action: TCloseAction); +begin + inherited; + dsDataTable.DataTable := NIL; + FViewRecibo := NIL; + FRecibo := NIL; +end; + +procedure TfEditorReciboProveedor.DeshabilitarRecibo; +begin + frViewReciboProveedor1.eReferenciaProveedor.Enabled := False; + frViewReciboProveedor1.edtFechaVencimiento.Enabled := False; + frViewReciboProvImportes1.eImporte.Enabled := False; + frViewReciboProvImportes1.eOtrosGastos.Enabled := False; +end; + +procedure TfEditorReciboProveedor.dsDataTableDataChange(Sender: TObject; Field: TField); +begin + inherited; + + if Assigned(FRecibo) and (not (FRecibo.DataTable.Fetching) or + not (FRecibo.DataTable.Opening) or not (FRecibo.DataTable.Closing)) then + PonerTitulos; +end; + +procedure TfEditorReciboProveedor.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(FViewRecibo) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Recibo) then + raise Exception.Create('No hay ningn almacn asignado'); + + Recibo.DataTable.Active := True; +end; + +procedure TfEditorReciboProveedor.frViewPagosProveedor1actAnadirExecute(Sender: TObject); +begin + inherited; + + //En el caso de haber aadido el pago del recibo ya no podremos modificarlo + if FController.AnadirPago(Recibo) then + DeshabilitarRecibo + //Podremos modificar si anulamos el pago mediante una devolucin + else + HabilitarRecibo; +end; + +procedure TfEditorReciboProveedor.frViewPagosProveedor1actEliminarExecute(Sender: TObject); +begin + inherited; + //En el caso de eliminar un pago el recibo queda como devuelto o pendiente y por tanto se puede modificar + if (FController.EliminarPago(Recibo)) then + begin + FRecibo.Edit; + if FRecibo.Pagos.DataTable.RecordCount > 0 then + FRecibo.SITUACION := CTE_DEVUELTO + else + FRecibo.SITUACION := CTE_PENDIENTE; + HabilitarRecibo; + end + //No podremos modificar si anulamos una devolucin porque el recibo queda cobrado + else + begin + FRecibo.Edit; + FRecibo.SITUACION := CTE_PAGADO; + DeshabilitarRecibo; + end; +end; + +procedure TfEditorReciboProveedor.frViewPagosProveedor1actEliminarUpdate(Sender: TObject); +begin + if Assigned(FRecibo) and Assigned(FRecibo.Pagos) then + frViewPagosProveedor1.actEliminar.Enabled := (FRecibo.Pagos.DataTable.RecordCount > 0) +end; + +procedure TfEditorReciboProveedor.frViewPagosProveedor1actModificarExecute(Sender: TObject); +begin + inherited; + FController.ModificarPago(Recibo); +end; + +procedure TfEditorReciboProveedor.frViewPagosProveedor1actModificarUpdate(Sender: TObject); +begin + inherited; + if Assigned(FRecibo) and Assigned(FRecibo.Pagos) then + frViewPagosProveedor1.actModificar.Enabled := (FRecibo.Pagos.DataTable.RecordCount > 0); +end; + +procedure TfEditorReciboProveedor.frViewReciboProvImportes1eImportePropertiesEditValueChanged( + Sender: TObject); +begin + inherited; + CalcularTotal; +end; + +procedure TfEditorReciboProveedor.frViewReciboProveedor1eImportePropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + + if (DisplayValue > frViewReciboProvImportes1.eImporte.DataBinding.Field.Value) then + begin + DisplayValue := frViewReciboProvImportes1.eImporte.DataBinding.Field.Value; + ErrorText := 'El importe debe ser menor o igual que el actual'; + Error := True; + end; +end; + +procedure TfEditorReciboProveedor.frViewRecibosProvCompensados1cxGridViewDataControllerSummaryAfterSummary(ASender: TcxDataSummary); +begin + inherited; + CalcularTotal; +end; + +function TfEditorReciboProveedor.GetController: IRecibosProveedorController; +begin + Result := FController; +end; + +function TfEditorReciboProveedor.GetRecibo: IBizRecibosProveedor; +begin + Result := FRecibo; +end; + +function TfEditorReciboProveedor.GetViewRecibo: IViewReciboProveedor; +begin + Result := FViewRecibo; +end; + +procedure TfEditorReciboProveedor.GuardarInterno; +begin + inherited; + FController.Guardar(FRecibo); + Modified := False; +end; + +procedure TfEditorReciboProveedor.HabilitarRecibo; +begin +//Si el recibo tiene sociado una remesa no se podr cambiar nada + frViewReciboProveedor1.eReferenciaProveedor.Enabled := True; + frViewReciboProveedor1.edtFechaVencimiento.Enabled := True; + frViewReciboProvImportes1.eImporte.Enabled := True; + frViewReciboProvImportes1.eOtrosGastos.Enabled := True; +end; + +procedure TfEditorReciboProveedor.ImprimirInterno; +begin +{ + inherited; + FController.Print(FRecibo); +} +end; + +procedure TfEditorReciboProveedor.JvFormStorageRestorePlacement(Sender: TObject); +begin + inherited; + frViewPagosProveedor1.ListaPagosProveedor.ActiveView.RestoreFromRegistry(JvAppRegistryStorage.Root); +end; + +procedure TfEditorReciboProveedor.JvFormStorageSavePlacement(Sender: TObject); +begin + inherited; + frViewPagosProveedor1.ListaPagosProveedor.ActiveView.StoreToRegistry(JvAppRegistryStorage.Root); +end; + +procedure TfEditorReciboProveedor.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + if Assigned(Recibo) then + begin + if Recibo.EsNuevo then + FTitulo := 'Nuevo recibo de proveedor' + else + FTitulo := 'Recibo de proveedor'; + end; + + if (Recibo.ID_RECIBO_COMPENSADO > 0) then + FTitulo := FTitulo + ' (compensado)'; + + if Length(Recibo.NOMBRE_PROVEEDOR) > 0 then + FTitulo := FTitulo + ' - ' + Recibo.NOMBRE_PROVEEDOR; + + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorReciboProveedor.PrevisualizarInterno; +begin +{ + inherited; + FController.Preview(FRecibo); +} +end; + +procedure TfEditorReciboProveedor.SetController(const Value: IRecibosProveedorController); +begin + FController := Value; + if Assigned(FController) then + frViewRecibosProvCompensados1.Controller := FController; + +// (ViewRecibo as IViewReciboProveedor).Controller := (FController as IRecibosProveedorController); +end; + +procedure TfEditorReciboProveedor.SetRecibo(const Value: IBizRecibosProveedor); +begin + FRecibo := Value; + dsDataTable.DataTable := FRecibo.DataTable; + + if Assigned(FViewRecibo) and Assigned(Recibo) then + begin + FViewRecibo.Recibo := Recibo; + frViewPagosProveedor1.Pagos := Recibo.Pagos; + frViewRecibosProvCompensados1.ReciboProveedor := FRecibo; + + if (FRecibo.SITUACION = CTE_PAGADO) then + DeshabilitarRecibo + else + HabilitarRecibo; + end; +end; + +procedure TfEditorReciboProveedor.SetViewRecibo(const Value: IViewReciboProveedor); +begin + FViewRecibo := Value; + + if Assigned(FViewRecibo) and Assigned(Recibo) then + FViewRecibo.Recibo := Recibo; +end; + +end. diff --git a/Source/Modulos/Recibos de proveedor/Views/uEditorReciboProveedorReport.dcu b/Source/Modulos/Recibos de proveedor/Views/uEditorReciboProveedorReport.dcu new file mode 100644 index 0000000..2f21478 Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Views/uEditorReciboProveedorReport.dcu differ diff --git a/Source/Modulos/Recibos de proveedor/Views/uEditorReciboProveedorReport.dfm b/Source/Modulos/Recibos de proveedor/Views/uEditorReciboProveedorReport.dfm new file mode 100644 index 0000000..bf7855e --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/uEditorReciboProveedorReport.dfm @@ -0,0 +1,10 @@ +inherited fEditorReciboProveedorPreview: TfEditorReciboProveedorPreview + Caption = 'Previsualizar el recibo' + PixelsPerInch = 96 + TextHeight = 13 + inherited frxReport1: TfrxReport + Datasets = <> + Variables = <> + Style = <> + end +end diff --git a/Source/Modulos/Recibos de proveedor/Views/uEditorReciboProveedorReport.pas b/Source/Modulos/Recibos de proveedor/Views/uEditorReciboProveedorReport.pas new file mode 100644 index 0000000..f9ec178 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/uEditorReciboProveedorReport.pas @@ -0,0 +1,22 @@ +unit uEditorReciboProveedorReport; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorPreview, frxExportImage, frxExportPDF, frxDCtrl, frxClass, + JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, + TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, + ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uIEditorRecibosProveedorPreview, + JvExComCtrls, JvStatusBar, frxDMPExport, frxGradient, frxChBox, frxCross, + frxRich, frxOLE, frxBarcode, JvAppStorage, JvAppRegistryStorage, + JvComponentBase; + +type + TfEditorReciboProveedorPreview = class(TfEditorPreview, IEditorRecibosProveedorPreview) + end; + +implementation +{$R *.dfm} + +end. diff --git a/Source/Modulos/Recibos de proveedor/Views/uEditorRecibosProveedor.dcu b/Source/Modulos/Recibos de proveedor/Views/uEditorRecibosProveedor.dcu new file mode 100644 index 0000000..c2bf5bc Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Views/uEditorRecibosProveedor.dcu differ diff --git a/Source/Modulos/Recibos de proveedor/Views/uEditorRecibosProveedor.dfm b/Source/Modulos/Recibos de proveedor/Views/uEditorRecibosProveedor.dfm new file mode 100644 index 0000000..5fc7830 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/uEditorRecibosProveedor.dfm @@ -0,0 +1,1896 @@ +inherited fEditorRecibosProveedor: TfEditorRecibosProveedor + Caption = 'Lista de recibos de proveedor' + ClientHeight = 664 + ClientWidth = 638 + ExplicitWidth = 646 + ExplicitHeight = 698 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 638 + Caption = 'Lista de recibos de proveedor' + ExplicitWidth = 638 + inherited Image1: TImage + Left = 611 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB51930000022E4944415478DA63FCFFFF3F + 032D01E3D0B760D9965334B321CAC78C116C41A4B729491AFFFCFDCFF0F7EF3F + 869FBFFE80E93FFFFE8169301B887FFDFECB109E5EC7707EE774840589270D09 + 1AFC17189CBFFEFE65F8F5E70F98FEF2EB17840FC2404B607245BF9633CC5BBA + 09D382F9E6E7512C927EEBCDD0E4D98C61D13FA06120ECB9DA9EE123CF03B0E1 + 97025E3028AD14045B52F17715A605AAAB85196E87BE051B006283C0CD903760 + FA02E37906E393C6400120479D81E1ACF95906CD1F5A0CBF803E1058CE0F56F3 + 3F1D12958C33191926736D47B58056910CB6106601AD221AC5025A44348605D4 + 8E68AC168000888D6C38BE880EDAE2C1F094FD36C38DE0D760B5628BB919EA18 + D6E2F701CC70E6534C0C7FCDFE816990E167E3CE3218CF035AA4CDC0F059E70B + 03EF151E86D72A6F18C277FA32EC8D3AC620BC880BEC8376968DD82D400F1AE6 + E5400B2281162C668218BECC98E16C14909E65CCF021E22383C0167E86172E2F + 19A2F604305CF873011E1FBDEC5B88B400D9075781121C40FC8301EC83B76AEF + 18846F09313C9179C210773094E1D4CFB3700B6079016F2A8259F217A8E132CB + 25481C5C044AE843E240EEAD3CC3CF1F3F300C0701B805200EAEE202A458F183 + 1F438D732DD8927FE0B4FE178E41FCE8BD8170C37FA6FC01E764BC16C0003C6D + 03F1BBEFDF51F8C818391F2003AC16A0E7D23FD09CF9EDC72F243E50EE1F420E + 9E93A17C901C085CB97907D382298B775056F0A001140BBA27CFA7AAE13030F4 + 2B7D0062D74EABC521DC370000000049454E44AE426082} + ExplicitLeft = 613 + end + end + inherited TBXDock: TTBXDock + Width = 638 + ExplicitWidth = 638 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 638 + end + inherited tbxFiltro: TTBXToolbar + ExplicitWidth = 427 + inherited lblAno: TTBXLabelItem + Visible = True + end + inherited cbxListaAnos: TTBXComboBoxItem + Visible = True + end + inherited sepAno: TTBXSeparatorItem + Visible = True + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 638 + end + inherited TBXTMain2: TTBXToolbar + Left = 427 + Visible = True + ExplicitLeft = 427 + ExplicitWidth = 66 + object TBXItem38: TTBXItem + Action = actInformes + end + end + end + inherited StatusBar: TJvStatusBar + Top = 645 + Width = 638 + ExplicitTop = 645 + ExplicitWidth = 638 + end + inline frViewRecibosProveedor1: TfrViewRecibosProveedor [3] + Left = 0 + Top = 102 + Width = 638 + Height = 543 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 102 + ExplicitWidth = 638 + ExplicitHeight = 543 + inherited cxGrid: TcxGrid + Width = 638 + Height = 415 + ExplicitWidth = 638 + ExplicitHeight = 415 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Position = spFooter + Column = frViewRecibosProveedor1.cxGridViewIMPORTE_TOTAL + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Position = spFooter + Column = frViewRecibosProveedor1.cxGridViewIMPORTE + end> + DataController.Summary.FooterSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Column = frViewRecibosProveedor1.cxGridViewIMPORTE_TOTAL + end + item + Format = '0 recibos' + Kind = skCount + Column = frViewRecibosProveedor1.cxGridViewREFERENCIA + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = frViewRecibosProveedor1.cxGridViewIMPORTE + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = frViewRecibosProveedor1.cxGridViewOTROS_GASTOS + end> + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 638 + ExplicitWidth = 638 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 638 + inherited dxLayoutControl1: TdxLayoutControl + Width = 638 + ExplicitWidth = 638 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 541 + Width = 541 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 190 + Width = 190 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 294 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 294 + ExplicitWidth = 334 + Width = 334 + end + inherited eLista: TcxComboBox + Left = 665 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 665 + ExplicitWidth = 215 + Width = 215 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 638 + ExplicitWidth = 638 + inherited tbxBotones: TTBXToolbar + Width = 628 + ExplicitWidth = 628 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 517 + ExplicitTop = 517 + ExplicitWidth = 638 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 638 + ExplicitWidth = 638 + inherited TBXToolbar1: TTBXToolbar + Width = 628 + ExplicitWidth = 628 + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39211.785458622680000000 + BuiltInReportLink = True + end + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewRecibosProveedor1.cxGridView + HitTypes = [gvhtCell] + Index = 0 + end> + end + end + inherited EditorActionList: TActionList [4] + Left = 136 + Top = 176 + inherited actNuevo: TAction + Enabled = False + ImageIndex = 22 + Visible = False + end + inherited actEliminar: TAction + Enabled = False + Visible = False + end + inherited actPrevisualizar: TAction + Visible = True + end + inherited actImprimir: TAction + Visible = True + end + inherited actDuplicar: TAction + Enabled = False + Visible = False + end + object actInformes: TAction + Category = 'Acciones' + Caption = 'Informes' + OnExecute = actInformesExecute + end + end + inherited SmallImages: TPngImageList [5] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001684944415478DA + 63FCFFFF3FC394C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F + 19ACFDF319CEED98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC + 5BBA09D3007CE0D7EFBF609B4178C98683D80D40770136B0AED69461E59623B8 + 0D80391B04FE01E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D + 760CCEE587E03607359F66585A6AC0B069CF49FC06A0DB0CC2207E58FB598685 + 85BA0CDB0E9CC16DC0C15E0706FBE203605B37375A809D0D02209BA3BB2F30CC + C9D566D87DE41C6E0340CE46B7F9E7AF3F6076D2C42B0C53D2D4180E9FBE8C69 + 4046941B8363E94194105F5E6EC810D9791ECC9E99A5C9903EED3A437F920AC3 + 89F357310D480E7386DB08A2435ACF302C2ED687B8049A067266DD62E88A5364 + 387BF906A60171410E280107B3191DB446C9315CBA7E1BD380283F3B147F23DB + FC1BC9E07FFFFE335CB97907D380502F6B86D5DB8E129D13310C0009900A4006 + 00004B6D80F047EC10D30000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001BE4944415478DA + 63FCFFFF3F032D0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80 + F83F980601EBC07C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3 + C275FB19E62DDD84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD978 + 90B005D87C802E06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9 + E0FF3F605803F11FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F1 + 8E70860DBB4E106701CCDBA480075B431936EF3D459C05F8520E3600D2B3A850 + 8F61EB81D3C45B802BA86096C3E4616AE7E7EB32EC387486763E989DA3CDB0E7 + E839DAF96046A626C3FE131768E783A969EA0C874E5FC26F4184A729387792E3 + 838929AA0CC7CE5EC16F41A89B09387792E3839E042586D317AFE3B720C8D988 + C1ADFA08591674C62A309CBB7213BF057E8E060C5EB5C7F01A06B27CC1913F70 + 7E820D0BD882B62839868BD76FE3B7C0DB4E0F5EAEC0CA1850D9032BF393275F + C1881F18BF394296E1CACD3BF82DF0B0D6C16938884E9B760D6BF0116D818BA5 + 164EC3411667CDB88133E888B2C0DE541D6CD8BFBF88621966E1BFFFFFB1061F + 322068818D912AB844A404E0B5A077CA428A0C8701980500619929EF09CFCE42 + 0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [7] + end + inherited dsDataTable: TDADataSource [8] + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [9] + end + inherited StatusBarImages: TPngImageList [10] + end + object JSInformesDialog: TJSDialog + Content.Strings = ( + 'Seleccione el informe que desea realizar') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Nuevo informe' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Listado de recibos pendientes.' + Value = 100 + Default = True + end + item + Caption = 'Listado de recibos' + Value = 200 + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 408 + Top = 80 + end +end diff --git a/Source/Modulos/Recibos de proveedor/Views/uEditorRecibosProveedor.pas b/Source/Modulos/Recibos de proveedor/Views/uEditorRecibosProveedor.pas new file mode 100644 index 0000000..59803b9 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/uEditorRecibosProveedor.pas @@ -0,0 +1,245 @@ +{ +=============================================================================== + Copyright (©) 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los términos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versión: + Versión actual: 1.0.0 + Fecha versión actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uEditorRecibosProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, Menus, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems, + TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, + JvNavigationPane, uViewGrid, pngimage, JvComponentBase, + JvExComCtrls, JvStatusBar, uViewBase, uViewBarraSeleccion, uViewGridBase, + uEditorGridBase, uCustomView, + + uBizRecibosProveedor, uIEditorRecibosProveedor, uRecibosProveedorController, + uViewRecibosProveedor, uDAInterfaces, JSDialog; + +type + + TfEditorRecibosProveedor = class(TfEditorGridBase, IEditorRecibosProveedor) + frViewRecibosProveedor1: TfrViewRecibosProveedor; + JSInformesDialog: TJSDialog; + actInformes: TAction; + TBXItem38: TTBXItem; + procedure FormShow(Sender: TObject); + procedure actInformesExecute(Sender: TObject); + procedure OnListaAnosChange(Sender: TObject; const Text: string); + + private + FRecibosProveedor: IBizRecibosProveedor; + FController : IRecibosProveedorController; + + protected + function GetRecibosProveedor: IBizRecibosProveedor; + procedure SetRecibosProveedor(const Value: IBizRecibosProveedor); + + function GetController : IRecibosProveedorController; + procedure SetController (const Value : IRecibosProveedorController); + + procedure NuevoInterno; override; + procedure EliminarInterno; override; + procedure ModificarInterno; override; + procedure DuplicarInterno; override; + procedure ImprimirInterno; override; + procedure PrevisualizarInterno; override; + procedure RefrescarInterno; override; + + public + procedure PonerTitulos(const ATitulo: string = ''); override; + property RecibosProveedor: IBizRecibosProveedor read GetRecibosProveedor write SetRecibosProveedor; + property Controller : IRecibosProveedorController read GetController write SetController; + + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + + +implementation + +uses + uDataModuleRecibosProveedor, uFactuGES_App, uDataModuleUsuarios, uGestorInformesController; + +{$R *.dfm} + +{ +*************************** TfEditorRecibosProveedor *************************** +} +procedure TfEditorRecibosProveedor.actInformesExecute(Sender: TObject); +var + Respuesta : Integer; + AGestorInformesController : IGestorInformesController; + +begin + AGestorInformesController := TGestorInformesController.Create; + try + + Respuesta := JsInformesDialog.Execute; + + if Respuesta <> IDCANCEL then + begin + case JsInformesDialog.CustomButtonResult of + 100 : begin // Listado de recibos pendientes + AGestorInformesController.VerInformeListadoRecibosProvPendientes; + end; + 200 : begin // Listado de recibos de cliente + AGestorInformesController.VerInformeListadoRecibosProveedor; + end; + end; + end; + + finally + AGestorInformesController := NIL; + end; +end; + +constructor TfEditorRecibosProveedor.Create(AOwner: TComponent); +begin + inherited; + FController := TRecibosProveedorController.Create; + + FHeaderText := 'Lista de recibos de proveedor'; + FWindowCaption := FHeaderText; + + ViewGrid := frViewRecibosProveedor1; // CreateView(TfrViewRecibosProveedor) as IViewRecibosProveedor; +end; + +destructor TfEditorRecibosProveedor.Destroy; +begin + FRecibosProveedor := NIL; + FController := NIL; + inherited; +end; + +procedure TfEditorRecibosProveedor.DuplicarInterno; +begin +// No se pueden duplicar recibos +end; + +procedure TfEditorRecibosProveedor.EliminarInterno; +begin +// +//No se pueden eliminar recibos +end; + +procedure TfEditorRecibosProveedor.FormShow(Sender: TObject); +begin + cbxListaAnos.OnChange := OnListaAnosChange; //OJO SIEMPRE ANTES DEL INHERITED + + inherited; + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(FRecibosProveedor) then + raise Exception.Create('No hay ningún objeto asignado'); + + FRecibosProveedor.DataTable.Active := True; + ViewGrid.GotoFirst; +end; + +function TfEditorRecibosProveedor.GetController: IRecibosProveedorController; +begin + Result := FController; +end; + +function TfEditorRecibosProveedor.GetRecibosProveedor: IBizRecibosProveedor; +begin + Result := FRecibosProveedor; +end; + +procedure TfEditorRecibosProveedor.ImprimirInterno; +begin + inherited; +end; + +procedure TfEditorRecibosProveedor.ModificarInterno; +begin + inherited; + FController.Ver(FRecibosProveedor); + RefrescarInterno; +end; + +procedure TfEditorRecibosProveedor.NuevoInterno; +begin +// inherited; +//No se pueden añadir recibos nuevos +end; + +procedure TfEditorRecibosProveedor.OnListaAnosChange(Sender: TObject; const Text: string); +begin + Controller.FiltrarAno(RecibosProveedor, DynWhereDataTable, Text); + if RecibosProveedor.DataTable.Active then + RefrescarInterno; +end; + +procedure TfEditorRecibosProveedor.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := FWindowCaption + ' - ' + AppFactuGES.EmpresaActiva.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorRecibosProveedor.PrevisualizarInterno; +begin + inherited; +end; + +procedure TfEditorRecibosProveedor.RefrescarInterno; +begin + //Volvemos a cargar los años de los albaranes + if Assigned(FController) then + ListaAnos := FController.DarListaAnosRecibos; + + inherited; +end; + +procedure TfEditorRecibosProveedor.SetController(const Value: IRecibosProveedorController); +begin + FController := Value; + + if Assigned(FController) then + ListaAnos := FController.DarListaAnosRecibos; +end; + +procedure TfEditorRecibosProveedor.SetRecibosProveedor(const Value: IBizRecibosProveedor); +begin + FRecibosProveedor := Value; + + if Assigned(FRecibosProveedor) then + begin + //Se guarda el where de la sentencia origen, por si el editor tiene filtros que + //afecten a este where y en un futuro se desea volver al where origen (filtro de año)) + DynWhereDataTable := FRecibosProveedor.DataTable.DynamicWhere.Xml; + + dsDataTable.DataTable := FRecibosProveedor.DataTable; + if Assigned(ViewGrid) then + (ViewGrid as IViewRecibosProveedor).Recibos := FRecibosProveedor; + end; +end; + +end. diff --git a/Source/Modulos/Recibos de proveedor/Views/uRecibosProveedorViewRegister.dcu b/Source/Modulos/Recibos de proveedor/Views/uRecibosProveedorViewRegister.dcu new file mode 100644 index 0000000..40a25e0 Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Views/uRecibosProveedorViewRegister.dcu differ diff --git a/Source/Modulos/Recibos de proveedor/Views/uRecibosProveedorViewRegister.pas b/Source/Modulos/Recibos de proveedor/Views/uRecibosProveedorViewRegister.pas new file mode 100644 index 0000000..439f82d --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/uRecibosProveedorViewRegister.pas @@ -0,0 +1,55 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uRecibosProveedorViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorRecibosProveedor, uEditorReciboProveedor, uEditorElegirRecibosProveedor, + uEditorReciboProveedorReport, uEditorFechaPagoProveedor; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorFechaPagoProveedor, 'EditorFechaPagoProveedor'); + EditorRegistry.RegisterClass(TfEditorRecibosProveedor, 'EditorRecibosProveedor'); + EditorRegistry.RegisterClass(TfEditorReciboProveedor, 'EditorReciboProveedor'); + EditorRegistry.RegisterClass(TfEditorElegirRecibosProveedor, 'EditorElegirRecibosProveedor'); + EditorRegistry.RegisterClass(TfEditorReciboProveedorPreview, 'EditorRecibosProveedorPreview'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorFechaPagoProveedor); + EditorRegistry.UnRegisterClass(TfEditorRecibosProveedor); + EditorRegistry.UnRegisterClass(TfEditorReciboProveedor); + EditorRegistry.UnRegisterClass(TfEditorReciboProveedorPreview); + EditorRegistry.UnRegisterClass(TfEditorElegirRecibosProveedor); +end; + +end. diff --git a/Source/Modulos/Recibos de proveedor/Views/uViewPagosProveedor.dcu b/Source/Modulos/Recibos de proveedor/Views/uViewPagosProveedor.dcu new file mode 100644 index 0000000..e50a8af Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Views/uViewPagosProveedor.dcu differ diff --git a/Source/Modulos/Recibos de proveedor/Views/uViewPagosProveedor.dfm b/Source/Modulos/Recibos de proveedor/Views/uViewPagosProveedor.dfm new file mode 100644 index 0000000..359cb9b --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/uViewPagosProveedor.dfm @@ -0,0 +1,314 @@ +inherited frViewPagosProveedor: TfrViewPagosProveedor + Width = 664 + Height = 355 + ExplicitWidth = 664 + ExplicitHeight = 355 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 664 + Height = 355 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 0 + Margins.Bottom = 0 + Align = alClient + ParentBackground = True + TabOrder = 0 + AutoContentSizes = [acsWidth, acsHeight] + LookAndFeel = dxLayoutOfficeLookAndFeel1 + object ListaPagosProveedor: TcxGrid + Left = 22 + Top = 61 + Width = 252 + Height = 105 + TabOrder = 1 + LookAndFeel.Kind = lfStandard + LookAndFeel.NativeStyle = True + object ListaPagosProveedorDBTableView1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = ListaPagosProveedorDBTableView1CellDblClick + DataController.DataSource = DADataSource + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsCustomize.ColumnGrouping = False + OptionsCustomize.ColumnHidingOnGrouping = False + OptionsCustomize.ColumnMoving = False + OptionsCustomize.ColumnSorting = False + OptionsData.Deleting = False + OptionsData.DeletingConfirmation = False + OptionsData.Inserting = False + OptionsSelection.CellSelect = False + OptionsSelection.HideFocusRectOnExit = False + OptionsSelection.InvertSelect = False + OptionsSelection.UnselectFocusedRecordOnExit = False + OptionsView.CellEndEllipsis = True + OptionsView.FocusRect = False + OptionsView.ColumnAutoWidth = True + OptionsView.GroupByBox = False + object ListaPagosProveedorDBTableView1RecID: TcxGridDBColumn + DataBinding.FieldName = 'RecID' + Visible = False + end + object ListaPagosProveedorDBTableView1ID: TcxGridDBColumn + DataBinding.FieldName = 'ID' + Visible = False + end + object ListaPagosProveedorDBTableView1ID_RECIBO: TcxGridDBColumn + DataBinding.FieldName = 'ID_RECIBO' + Visible = False + end + object ListaPagosProveedorDBTableView1TIPO: TcxGridDBColumn + DataBinding.FieldName = 'TIPO' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Items = < + item + Description = 'Cobro' + ImageIndex = 0 + Value = 'Pago' + end + item + Description = 'Devoluci'#243'n' + Value = 'Devoluci'#243'n' + end> + Options.Focusing = False + IsCaptionAssigned = True + end + object ListaPagosProveedorDBTableView1FECHA_PAGO: TcxGridDBColumn + Caption = 'Fecha' + DataBinding.FieldName = 'FECHA_PAGO' + PropertiesClassName = 'TcxDateEditProperties' + Options.Focusing = False + Width = 100 + end + object ListaPagosProveedorDBTableView1TITULAR: TcxGridDBColumn + DataBinding.FieldName = 'TITULAR' + Visible = False + end + object ListaPagosProveedorDBTableView1ENTIDAD: TcxGridDBColumn + DataBinding.FieldName = 'ENTIDAD' + Visible = False + end + object ListaPagosProveedorDBTableView1SUCURSAL: TcxGridDBColumn + DataBinding.FieldName = 'SUCURSAL' + Visible = False + end + object ListaPagosProveedorDBTableView1DC: TcxGridDBColumn + DataBinding.FieldName = 'DC' + Visible = False + end + object ListaPagosProveedorDBTableView1CUENTA: TcxGridDBColumn + DataBinding.FieldName = 'CUENTA' + Visible = False + end + object ListaPagosProveedorDBTableView1FECHA_ALTA: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_ALTA' + Visible = False + end + object ListaPagosProveedorDBTableView1FECHA_MODIFICACION: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_MODIFICACION' + Visible = False + end + object ListaPagosProveedorDBTableView1USUARIO: TcxGridDBColumn + DataBinding.FieldName = 'USUARIO' + Visible = False + end + end + object ListaPagosProveedorLevel1: TcxGridLevel + GridView = ListaPagosProveedorDBTableView1 + end + end + object ToolBar1: TToolBar + Left = 22 + Top = 30 + Width = 622 + Height = 25 + ButtonWidth = 70 + Caption = 'ToolBar1' + EdgeInner = esNone + EdgeOuter = esNone + Flat = False + Images = ContenidoImageList + List = True + ParentShowHint = False + ShowCaptions = True + ShowHint = True + TabOrder = 0 + Transparent = True + object ToolButton1: TToolButton + Left = 0 + Top = 0 + Action = actAnadir + AutoSize = True + end + object ToolButton4: TToolButton + Left = 62 + Top = 0 + Action = actModificar + AutoSize = True + end + object ToolButton5: TToolButton + Left = 136 + Top = 0 + Width = 8 + Caption = 'ToolButton5' + ImageIndex = 2 + Style = tbsSeparator + end + object ToolButton2: TToolButton + Left = 144 + Top = 0 + Action = actEliminar + AutoSize = True + end + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + AutoAligns = [aaHorizontal] + AlignVert = avClient + Caption = 'Cobros y devoluciones del recibo' + object dxLayoutControl1Item3: TdxLayoutItem + ShowCaption = False + Control = ToolBar1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item1: TdxLayoutItem + AutoAligns = [aaHorizontal] + AlignVert = avClient + Control = ListaPagosProveedor + ControlOptions.ShowBorder = False + end + end + end + end + object DADataSource: TDADataSource + Left = 8 + Top = 8 + end + object ActionListContenido: TActionList + Images = ContenidoImageList + Left = 8 + Top = 40 + object actAnadir: TAction + Category = 'Operaciones' + Caption = 'A'#241'adir' + ImageIndex = 0 + ShortCut = 45 + end + object actModificar: TAction + Category = 'Operaciones' + Caption = 'Modificar' + ImageIndex = 2 + end + object actEliminar: TAction + Category = 'Operaciones' + Caption = 'Eliminar' + ImageIndex = 1 + ShortCut = 16430 + end + end + object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList + Left = 320 + Top = 248 + object dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel + GroupOptions.CaptionOptions.Font.Charset = DEFAULT_CHARSET + GroupOptions.CaptionOptions.Font.Color = clWindowText + GroupOptions.CaptionOptions.Font.Height = -11 + GroupOptions.CaptionOptions.Font.Name = 'Tahoma' + GroupOptions.CaptionOptions.Font.Style = [fsBold] + GroupOptions.CaptionOptions.TextColor = clHighlight + GroupOptions.CaptionOptions.UseDefaultFont = False + end + end + object ContenidoImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000F84944415478DA + 63FCFFFF3F03084C59BC03C2200072E33C19616C905E46640372623DF06A06AA + 6198B77413C3F99DD3194936E0DFBF7F0CD396EE62D051576128AAEB031B42B4 + 0120CDBFFFFC6398BD720F43B0A70DC3CD7B2FC0869CDB318D91A00130CDBF7F + FF6558B06E3FD80B3040D00064CDBFFF40F0AA6D47C1722083F01A804D3304FF + 63D8B2EF147E03F06906D13B0F9DC56D0058E16F540D20FC07C607CA1D387911 + BB01E991AE043583F847CF5EC16E4052881341CD207CEAE275EC06C406D813D4 + 0CC2E7AFDEC26E40848F2D41CD20B12B37EF603720D8C38AA06610C069809F8B + 39C3A63D2789C994D80D404EA6C400900100F58BBFF09BC1E25C000000004945 + 4E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end> + Left = 8 + Top = 72 + Bitmap = {} + end +end diff --git a/Source/Modulos/Recibos de proveedor/Views/uViewPagosProveedor.pas b/Source/Modulos/Recibos de proveedor/Views/uViewPagosProveedor.pas new file mode 100644 index 0000000..6ed5950 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/uViewPagosProveedor.pas @@ -0,0 +1,99 @@ +unit uViewPagosProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, DB, uDADataTable, dxLayoutControl, + cxControls, cxCurrencyEdit, cxDBEdit, cxMemo, cxMaskEdit, cxDropDownEdit, + cxCalendar, cxContainer, cxEdit, cxTextEdit, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxDBData, cxSpinEdit, + cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + cxClasses, cxGridCustomView, cxGrid, uBizPagosProveedor, ActnList, TB2Item, + TBX, TB2Dock, TB2Toolbar, cxImageComboBox, dxLayoutLookAndFeels, ImgList, + PngImageList, ComCtrls, ToolWin, uDAInterfaces; + +type + IViewPagosProveedor = interface(IViewBase) + ['{B75503B3-C6D2-453B-990C-5C7AC775F4D0}'] + function GetPagos: IBizPagosProveedor; + procedure SetPagos(const Value: IBizPagosProveedor); + property Pagos: IBizPagosProveedor read GetPagos write SetPagos; + end; + + + TfrViewPagosProveedor = class(TfrViewBase, IViewPagosProveedor) + DADataSource: TDADataSource; + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Item1: TdxLayoutItem; + ListaPagosProveedor: TcxGrid; + ListaPagosProveedorDBTableView1: TcxGridDBTableView; + ListaPagosProveedorLevel1: TcxGridLevel; + ListaPagosProveedorDBTableView1RecID: TcxGridDBColumn; + ListaPagosProveedorDBTableView1ID: TcxGridDBColumn; + ListaPagosProveedorDBTableView1ID_RECIBO: TcxGridDBColumn; + ListaPagosProveedorDBTableView1TIPO: TcxGridDBColumn; + ListaPagosProveedorDBTableView1FECHA_PAGO: TcxGridDBColumn; + ListaPagosProveedorDBTableView1TITULAR: TcxGridDBColumn; + ListaPagosProveedorDBTableView1ENTIDAD: TcxGridDBColumn; + ListaPagosProveedorDBTableView1SUCURSAL: TcxGridDBColumn; + ListaPagosProveedorDBTableView1DC: TcxGridDBColumn; + ListaPagosProveedorDBTableView1CUENTA: TcxGridDBColumn; + ListaPagosProveedorDBTableView1FECHA_ALTA: TcxGridDBColumn; + ListaPagosProveedorDBTableView1FECHA_MODIFICACION: TcxGridDBColumn; + ListaPagosProveedorDBTableView1USUARIO: TcxGridDBColumn; + ActionListContenido: TActionList; + actAnadir: TAction; + actEliminar: TAction; + actModificar: TAction; + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + dxLayoutControl1Item3: TdxLayoutItem; + ToolBar1: TToolBar; + ToolButton1: TToolButton; + ToolButton4: TToolButton; + ToolButton5: TToolButton; + ToolButton2: TToolButton; + ContenidoImageList: TPngImageList; + procedure ListaPagosProveedorDBTableView1CellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + private + FPagos : IBizPagosProveedor; + function GetPagos: IBizPagosProveedor; + procedure SetPagos(const Value: IBizPagosProveedor); + public + property Pagos: IBizPagosProveedor read GetPagos write SetPagos; + end; + +implementation +{$R *.dfm} + +{ TfrViewPagosProveedor } + +function TfrViewPagosProveedor.GetPagos: IBizPagosProveedor; +begin + Result := FPagos; +end; + +procedure TfrViewPagosProveedor.ListaPagosProveedorDBTableView1CellDblClick( + Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; + AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); +begin + inherited; + actModificar.Execute; +end; + +procedure TfrViewPagosProveedor.SetPagos(const Value: IBizPagosProveedor); +begin + FPagos := Value; + if Assigned(FPagos) then + DADataSource.DataTable := FPagos.DataTable + else + DADataSource.DataTable := NIL; +end; + +end. diff --git a/Source/Modulos/Recibos de proveedor/Views/uViewReciboProvImportes.dcu b/Source/Modulos/Recibos de proveedor/Views/uViewReciboProvImportes.dcu new file mode 100644 index 0000000..ef60c9d Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Views/uViewReciboProvImportes.dcu differ diff --git a/Source/Modulos/Recibos de proveedor/Views/uViewReciboProvImportes.dfm b/Source/Modulos/Recibos de proveedor/Views/uViewReciboProvImportes.dfm new file mode 100644 index 0000000..6399603 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/uViewReciboProvImportes.dfm @@ -0,0 +1,129 @@ +inherited frViewReciboProvImportes: TfrViewReciboProvImportes + Width = 451 + Height = 100 + Align = alBottom + ExplicitWidth = 451 + ExplicitHeight = 100 + object dxLayoutControl1: TdxLayoutControl + AlignWithMargins = True + Left = 0 + Top = 0 + Width = 451 + Height = 217 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 0 + Margins.Bottom = 0 + Align = alTop + ParentBackground = True + TabOrder = 0 + AutoContentSizes = [acsWidth, acsHeight] + object eImporte: TcxDBCurrencyEdit + Left = 93 + Top = 28 + AutoSize = False + DataBinding.DataField = 'IMPORTE' + Properties.Alignment.Horz = taRightJustify + Properties.ReadOnly = False + Properties.UseLeftAlignmentOnEditing = False + Properties.UseThousandSeparator = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.TextColor = clWindowText + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Height = 21 + Width = 150 + end + object eOtrosGastos: TcxDBCurrencyEdit + Left = 93 + Top = 55 + AutoSize = False + DataBinding.DataField = 'OTROS_GASTOS' + Properties.Alignment.Horz = taRightJustify + Properties.ReadOnly = False + Properties.UseLeftAlignmentOnEditing = False + Properties.UseThousandSeparator = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.TextColor = clWindowText + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Height = 21 + Width = 183 + end + object eImporteTotalRecibo: TcxCurrencyEdit + Left = 354 + Top = 28 + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.TextStyle = [fsBold] + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 2 + Width = 183 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + Caption = 'Importes recibo' + LayoutDirection = ldHorizontal + object dxLayoutControl1Group3: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item1: TdxLayoutItem + Caption = 'Importe:' + Control = eImporte + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item2: TdxLayoutItem + Caption = 'Otros gastos:' + Control = eOtrosGastos + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item3: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Importe total:' + Control = eImporteTotalRecibo + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Group4: TdxLayoutGroup + end + end + object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList + Left = 40 + Top = 8 + object LookAndFeelIMPORTE_TOTAL: TdxLayoutStandardLookAndFeel + ItemOptions.CaptionOptions.Font.Charset = DEFAULT_CHARSET + ItemOptions.CaptionOptions.Font.Color = clWindowText + ItemOptions.CaptionOptions.Font.Height = -12 + ItemOptions.CaptionOptions.Font.Name = 'Tahoma' + ItemOptions.CaptionOptions.Font.Style = [fsBold] + ItemOptions.CaptionOptions.UseDefaultFont = False + end + end +end diff --git a/Source/Modulos/Recibos de proveedor/Views/uViewReciboProvImportes.pas b/Source/Modulos/Recibos de proveedor/Views/uViewReciboProvImportes.pas new file mode 100644 index 0000000..5404dbd --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/uViewReciboProvImportes.pas @@ -0,0 +1,37 @@ +unit uViewReciboProvImportes; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, ExtCtrls, StdCtrls, DB, uDADataTable, cxGraphics, + cxTextEdit, cxMaskEdit, cxDropDownEdit, cxDBEdit, cxControls, + cxContainer, cxEdit, cxLabel, cxDBLabel, cxCurrencyEdit, cxSpinEdit, + ComCtrls, dxLayoutControl, dxLayoutLookAndFeels, cxLookupEdit, cxDBLookupEdit, + cxDBLookupComboBox, cxCheckBox; + +type + TfrViewReciboProvImportes = class(TfrViewBase) + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Group4: TdxLayoutGroup; + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + LookAndFeelIMPORTE_TOTAL: TdxLayoutStandardLookAndFeel; + dxLayoutControl1Item1: TdxLayoutItem; + eImporte: TcxDBCurrencyEdit; + dxLayoutControl1Item2: TdxLayoutItem; + eOtrosGastos: TcxDBCurrencyEdit; + dxLayoutControl1Item3: TdxLayoutItem; + eImporteTotalRecibo: TcxCurrencyEdit; + dxLayoutControl1Group3: TdxLayoutGroup; + public + { Public declarations } + end; + + +implementation + +{$R *.dfm} + +end. diff --git a/Source/Modulos/Recibos de proveedor/Views/uViewReciboProveedor.dcu b/Source/Modulos/Recibos de proveedor/Views/uViewReciboProveedor.dcu new file mode 100644 index 0000000..b3aad47 Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Views/uViewReciboProveedor.dcu differ diff --git a/Source/Modulos/Recibos de proveedor/Views/uViewReciboProveedor.dfm b/Source/Modulos/Recibos de proveedor/Views/uViewReciboProveedor.dfm new file mode 100644 index 0000000..962ca60 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/uViewReciboProveedor.dfm @@ -0,0 +1,609 @@ +inherited frViewReciboProveedor: TfrViewReciboProveedor + Width = 748 + Height = 342 + ExplicitWidth = 748 + ExplicitHeight = 342 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 748 + Height = 342 + Align = alClient + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + LookAndFeel = dxLayoutOfficeLookAndFeel1 + ExplicitWidth = 618 + DesignSize = ( + 748 + 342) + object eReferencia: TcxDBTextEdit + Left = 136 + Top = 30 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REFERENCIA' + DataBinding.DataSource = DADataSource + Enabled = False + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 0 + Width = 50 + end + object eSituacion: TcxDBTextEdit + Left = 136 + Top = 138 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'SITUACION' + DataBinding.DataSource = DADataSource + Enabled = False + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 4 + Width = 216 + end + object edtFechaVencimiento: TcxDBDateEdit + Left = 136 + Top = 111 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_VENCIMIENTO' + DataBinding.DataSource = DADataSource + Properties.ImmediatePost = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 3 + Width = 100 + end + object memObservaciones: TcxDBMemo + Left = 22 + Top = 267 + Anchors = [akLeft, akTop, akRight, akBottom] + DataBinding.DataField = 'OBSERVACIONES' + DataBinding.DataSource = DADataSource + Properties.ScrollBars = ssVertical + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 7 + Height = 49 + Width = 274 + end + object eFechaEmision: TcxDBTextEdit + Left = 426 + Top = 57 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_FACTURA' + DataBinding.DataSource = DADataSource + Enabled = False + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 9 + Width = 20 + end + object eFormaPago: TcxDBTextEdit + Left = 426 + Top = 84 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FORMA_PAGO_FACTURA' + DataBinding.DataSource = DADataSource + Enabled = False + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 10 + Width = 42 + end + object eImporteTotal: TcxDBCurrencyEdit + Left = 426 + Top = 138 + AutoSize = False + DataBinding.DataField = 'IMPORTE_FACTURA' + DataBinding.DataSource = DADataSource + Enabled = False + ParentFont = False + Properties.Alignment.Horz = taRightJustify + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Properties.UseThousandSeparator = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clWindowText + Style.Font.Height = -11 + Style.Font.Name = 'Tahoma' + Style.Font.Style = [fsBold] + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.TextColor = clWindowText + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 12 + Height = 21 + Width = 182 + end + object eNombreCliente: TcxDBTextEdit + Left = 426 + Top = 221 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'NOMBRE_PROVEEDOR' + DataBinding.DataSource = DADataSource + Enabled = False + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 14 + Width = 300 + end + object eNifCif: TcxDBTextEdit + Left = 426 + Top = 194 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'NIF_CIF_PROVEEDOR' + DataBinding.DataSource = DADataSource + Enabled = False + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 13 + Width = 147 + end + object eRemesa: TcxDBTextEdit + Left = 136 + Top = 165 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataSource = DADataSource + Enabled = False + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 5 + Width = 113 + end + object edtFechaEmision: TcxDBDateEdit + Left = 136 + Top = 84 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_EMISION' + DataBinding.DataSource = DADataSource + Enabled = False + Properties.ImmediatePost = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 2 + Width = 100 + end + object eReferenciaProveedor: TcxDBTextEdit + Left = 136 + Top = 57 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REFERENCIA_PROVEEDOR' + DataBinding.DataSource = DADataSource + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 1 + Width = 100 + end + object rReferenciaFacturaProv: TcxDBTextEdit + Left = 426 + Top = 30 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REFERENCIA_FACTURA_PROV' + DataBinding.DataSource = DADataSource + Enabled = False + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 8 + Width = 157 + end + object rRefReciboCompensado: TcxDBTextEdit + Left = 136 + Top = 216 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REFERENCIA_REC_COMPENSADO' + DataBinding.DataSource = DADataSource + Enabled = False + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 6 + Width = 216 + end + object eCuenta: TcxDBTextEdit + Left = 426 + Top = 111 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'DATOS_BANCARIOS' + DataBinding.DataSource = DADataSource + Enabled = False + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 11 + Width = 150 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Group2: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Datos del recibo' + object dxLayoutControl1Item1: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Referencia:' + Control = eReferencia + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item20: TdxLayoutItem + Caption = 'Referencia proveedor:' + Visible = False + Control = eReferenciaProveedor + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item19: TdxLayoutItem + Caption = 'Fecha emisi'#243'n:' + Control = edtFechaEmision + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item3: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Fecha vencimiento:' + Control = edtFechaVencimiento + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item2: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Situaci'#243'n:' + Control = eSituacion + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item16: TdxLayoutItem + Caption = 'Ref. remesa:' + Control = eRemesa + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group9: TdxLayoutGroup + Caption = 'Compensado en recibo' + object dxLayoutControl1Item4: TdxLayoutItem + Caption = 'Ref. recibo:' + Control = rRefReciboCompensado + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group7: TdxLayoutGroup + Caption = 'Observaciones' + object dxLayoutControl1Item5: TdxLayoutItem + AutoAligns = [aaHorizontal] + AlignVert = avClient + Caption = 'Observaciones:' + ShowCaption = False + Control = memObservaciones + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Group8: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'New Group' + ShowCaption = False + ShowBorder = False + object dxLayoutControl1Group5: TdxLayoutGroup + Caption = 'Datos de la factura' + object dxLayoutControl1Item21: TdxLayoutItem + Caption = 'Ref. factura prov.:' + Control = rReferenciaFacturaProv + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item7: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Fecha emisi'#243'n:' + Control = eFechaEmision + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item8: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Forma pago:' + Control = eFormaPago + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item6: TdxLayoutItem + Caption = 'Cuenta bancaria:' + Control = eCuenta + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item9: TdxLayoutItem + Caption = 'Total factura:' + Control = eImporteTotal + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group6: TdxLayoutGroup + AutoAligns = [aaHorizontal] + AlignVert = avClient + Caption = 'Datos del proveedor' + Offsets.Top = 5 + object dxLayoutControl1Item11: TdxLayoutItem + Caption = 'NIF/CIF:' + Control = eNifCif + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item10: TdxLayoutItem + Caption = 'Nombre:' + Control = eNombreCliente + ControlOptions.ShowBorder = False + end + end + end + end + end + object DADataSource: TDADataSource + Left = 56 + Top = 16 + end + object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList + Left = 24 + Top = 16 + object dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel + GroupOptions.CaptionOptions.Font.Charset = DEFAULT_CHARSET + GroupOptions.CaptionOptions.Font.Color = clWindowText + GroupOptions.CaptionOptions.Font.Height = -11 + GroupOptions.CaptionOptions.Font.Name = 'Tahoma' + GroupOptions.CaptionOptions.Font.Style = [fsBold] + GroupOptions.CaptionOptions.TextColor = clHighlight + GroupOptions.CaptionOptions.UseDefaultFont = False + end + end +end diff --git a/Source/Modulos/Recibos de proveedor/Views/uViewReciboProveedor.pas b/Source/Modulos/Recibos de proveedor/Views/uViewReciboProveedor.pas new file mode 100644 index 0000000..654dec5 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/uViewReciboProveedor.pas @@ -0,0 +1,95 @@ +unit uViewReciboProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, uBizRecibosProveedor, DB, uDADataTable, dxLayoutControl, + cxControls, cxCurrencyEdit, cxDBEdit, cxMemo, cxMaskEdit, cxDropDownEdit, + cxCalendar, cxContainer, cxEdit, cxTextEdit, dxLayoutLookAndFeels, ExtCtrls, + uDAInterfaces; + +type + IViewReciboProveedor = interface(IViewBase) + ['{3EDDAF2C-2A99-43AE-8DBB-3AC300660D94}'] + function GetRecibo: IBizRecibosProveedor; + procedure SetRecibo(const Value: IBizRecibosProveedor); + property Recibo: IBizRecibosProveedor read GetRecibo write SetRecibo; + end; + + + TfrViewReciboProveedor = class(TfrViewBase, IViewReciboProveedor) + DADataSource: TDADataSource; + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Item1: TdxLayoutItem; + eReferencia: TcxDBTextEdit; + dxLayoutControl1Item2: TdxLayoutItem; + eSituacion: TcxDBTextEdit; + dxLayoutControl1Item3: TdxLayoutItem; + edtFechaVencimiento: TcxDBDateEdit; + dxLayoutControl1Item5: TdxLayoutItem; + memObservaciones: TcxDBMemo; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Item7: TdxLayoutItem; + eFechaEmision: TcxDBTextEdit; + dxLayoutControl1Item8: TdxLayoutItem; + eFormaPago: TcxDBTextEdit; + dxLayoutControl1Item9: TdxLayoutItem; + eImporteTotal: TcxDBCurrencyEdit; + dxLayoutControl1Group5: TdxLayoutGroup; + dxLayoutControl1Item10: TdxLayoutItem; + eNombreCliente: TcxDBTextEdit; + dxLayoutControl1Item11: TdxLayoutItem; + eNifCif: TcxDBTextEdit; + dxLayoutControl1Group6: TdxLayoutGroup; + dxLayoutControl1Group8: TdxLayoutGroup; + dxLayoutControl1Item16: TdxLayoutItem; + eRemesa: TcxDBTextEdit; + dxLayoutControl1Group2: TdxLayoutGroup; + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + dxLayoutControl1Group7: TdxLayoutGroup; + dxLayoutControl1Group9: TdxLayoutGroup; + dxLayoutControl1Item19: TdxLayoutItem; + edtFechaEmision: TcxDBDateEdit; + dxLayoutControl1Item20: TdxLayoutItem; + eReferenciaProveedor: TcxDBTextEdit; + dxLayoutControl1Item21: TdxLayoutItem; + rReferenciaFacturaProv: TcxDBTextEdit; + dxLayoutControl1Item4: TdxLayoutItem; + rRefReciboCompensado: TcxDBTextEdit; + dxLayoutControl1Item6: TdxLayoutItem; + eCuenta: TcxDBTextEdit; + private + FRecibo : IBizRecibosProveedor; + function GetRecibo: IBizRecibosProveedor; + procedure SetRecibo(const Value: IBizRecibosProveedor); + public + property Recibo: IBizRecibosProveedor read GetRecibo write SetRecibo; + end; + +var + frViewReciboProveedor: TfrViewReciboProveedor; + +implementation + +{$R *.dfm} + +{ TfrViewReciboProveedor } + +function TfrViewReciboProveedor.GetRecibo: IBizRecibosProveedor; +begin + Result := FRecibo; +end; + +procedure TfrViewReciboProveedor.SetRecibo(const Value: IBizRecibosProveedor); +begin + FRecibo := Value; + if Assigned(FRecibo) then + DADataSource.DataTable := FRecibo.DataTable + else + DADataSource.DataTable := NIL; +end; + +end. diff --git a/Source/Modulos/Recibos de proveedor/Views/uViewRecibosProvCompensados.dcu b/Source/Modulos/Recibos de proveedor/Views/uViewRecibosProvCompensados.dcu new file mode 100644 index 0000000..d06b6f9 Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Views/uViewRecibosProvCompensados.dcu differ diff --git a/Source/Modulos/Recibos de proveedor/Views/uViewRecibosProvCompensados.dfm b/Source/Modulos/Recibos de proveedor/Views/uViewRecibosProvCompensados.dfm new file mode 100644 index 0000000..98f73a1 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/uViewRecibosProvCompensados.dfm @@ -0,0 +1,237 @@ +inherited frViewRecibosProvCompensados: TfrViewRecibosProvCompensados + Width = 549 + Height = 376 + OnShow = CustomViewShow + ExplicitWidth = 549 + ExplicitHeight = 376 + inherited cxGrid: TcxGrid + Width = 549 + Height = 351 + ExplicitWidth = 549 + ExplicitHeight = 351 + inherited cxGridView: TcxGridDBTableView + DataController.KeyFieldNames = 'RecID' + DataController.Summary.FooterSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = cxGridViewIMPORTE_TOTAL + end> + OptionsCustomize.ColumnMoving = True + OptionsData.Appending = False + OptionsData.CancelOnExit = True + OptionsData.Deleting = False + OptionsData.Editing = False + OptionsData.Inserting = False + OptionsView.Footer = True + OptionsView.GroupFooters = gfAlwaysVisible + object cxGridViewRecId: TcxGridDBColumn [0] + DataBinding.FieldName = 'RecId' + Visible = False + end + object cxGridViewID_RECIBO_COMPENSADO: TcxGridDBColumn + DataBinding.FieldName = 'ID_RECIBO_COMPENSADO' + Visible = False + end + object cxGridViewREFERENCIA: TcxGridDBColumn + Caption = 'Referencia' + DataBinding.FieldName = 'REFERENCIA' + end + object cxGridViewSITUACION: TcxGridDBColumn + Caption = 'Situaci'#243'n' + DataBinding.FieldName = 'SITUACION' + end + object cxGridViewFECHA_EMISION: TcxGridDBColumn + Caption = 'Fecha emisi'#243'n' + DataBinding.FieldName = 'FECHA_EMISION' + end + object cxGridViewFECHA_VENCIMIENTO: TcxGridDBColumn + Caption = 'Fecha vencimiento' + DataBinding.FieldName = 'FECHA_VENCIMIENTO' + end + object cxGridViewNIF_CIF_PROVEEDOR: TcxGridDBColumn + Caption = 'NIF/CIF' + DataBinding.FieldName = 'NIF_CLIF_PROVEEDOR' + end + object cxGridViewNOMBRE_PROVEEDOR: TcxGridDBColumn + Caption = 'Proveedor' + DataBinding.FieldName = 'NOMBRE_PROVEEDOR' + end + object cxGridViewIMPORTE: TcxGridDBColumn + Caption = 'Importe' + DataBinding.FieldName = 'IMPORTE' + end + object cxGridViewOTROS_GASTOS: TcxGridDBColumn + Caption = 'Otros gastos' + DataBinding.FieldName = 'OTROS_GASTOS' + end + object cxGridViewIMPORTE_TOTAL: TcxGridDBColumn + Caption = 'Importe total' + DataBinding.FieldName = 'IMPORTE_TOTAL' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + end + end + inherited ToolBar1: TToolBar + Width = 549 + ExplicitWidth = 549 + inherited ToolButton1: TToolButton + ExplicitWidth = 62 + end + inherited ToolButton4: TToolButton + ExplicitWidth = 74 + end + inherited ToolButton2: TToolButton + ExplicitWidth = 67 + end + inherited ToolButton7: TToolButton + ExplicitWidth = 117 + end + object ToolButton3: TToolButton + Left = 336 + Top = 2 + Action = actExpandir + AutoSize = True + end + object ToolButton8: TToolButton + Left = 434 + Top = 2 + Action = actContraer + AutoSize = True + end + end + inherited ContenidoImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000F84944415478DA + 63FCFFFF3F03084C59BC03C2200072E33C19616C905E46640372623DF06A06AA + 6198B77413C3F99DD3194936E0DFBF7F0CD396EE62D051576128AAEB031B42B4 + 0120CDBFFFFC6398BD720F43B0A70DC3CD7B2FC0869CDB318D91A00130CDBF7F + FF6558B06E3FD80B3040D00064CDBFFF40F0AA6D47C1722083F01A804D3304FF + 63D8B2EF147E03F06906D13B0F9DC56D0058E16F540D20FC07C607CA1D387911 + BB01E991AE043583F847CF5EC16E4052881341CD207CEAE275EC06C406D813D4 + 0CC2E7AFDEC26E40848F2D41CD20B12B37EF603720D8C38AA06610C069809F8B + 39C3A63D2789C994D80D404EA6C400900100F58BBFF09BC1E25C000000004945 + 4E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000DF4944415478DA + 63FCFFFF3F032580916203600C9E351CFF19FE3130FCFF09A47EFD67F89EFC0B + 2E67E09180D596F3DBE733220C58C5F17F89572FC3FBAF1F1832D73630FCC8FA + CDC84000805CCF886CF314B73A86F7DF3E32546EEC63F8FF0B22F6BBF62FDCA0 + 8482061497CCEFAF676444B619A41946BFF9FC8E61CDBE7D0C7F5AFF32E27501 + F762F6FF309B9135BF06E20347CE33FCEDF987DF059C73D9FE839CFA1F1870A9 + 56C1709BC181F903283EE53F7E17C0386C5D2CFF838C1DB1DA4C542CB03633FF + FFFF8381289BB1BA801880350C48316008BB006F2C509A1B0127B3B6E11C11A1 + 6B0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000914944415478DA + 63FCFFFF3F032580916203885164E09180D596F3DBE733320265C09220E23312 + FE02C41F80D8158F2520D7430C9838112CF0F7F74F868F4F6F33BC7F7283E1CB + EBC70C770E3C6008413220A1A001C525F3FBEB1919FF010D60041A80AE1904CE + 000D4821E4828F401ADDD91FA1F41F20CE20E4024A6200EC028A63812E2E18F8 + 30187817E0CF0B14E64600B6F869E1FAECCCBE0000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end> + Bitmap = {} + end + inherited ActionListContenido: TActionList + inherited actModificar: TAction + Enabled = False + Visible = False + end + object actExpandir: TAction + Category = 'Operaciones' + Caption = 'Expandir todo' + ImageIndex = 4 + Visible = False + OnExecute = actExpandirExecute + OnUpdate = actExpandirUpdate + end + object actContraer: TAction + Category = 'Operaciones' + Caption = 'Contraer todo' + ImageIndex = 5 + Visible = False + OnExecute = actContraerExecute + OnUpdate = actContraerUpdate + end + end +end diff --git a/Source/Modulos/Recibos de proveedor/Views/uViewRecibosProvCompensados.pas b/Source/Modulos/Recibos de proveedor/Views/uViewRecibosProvCompensados.pas new file mode 100644 index 0000000..f639606 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/uViewRecibosProvCompensados.pas @@ -0,0 +1,193 @@ +unit uViewRecibosProvCompensados; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewDetallesGenerico, cxStyles, cxCustomData, cxGraphics, cxFilter, + cxData, cxDataStorage, cxEdit, DB, cxDBData, ActnList, ImgList, PngImageList, + uDADataTable, ComCtrls, ToolWin, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, + cxGrid, cxImageComboBox, cxCurrencyEdit, uDataModuleRecibosProveedor, + uBizRecibosProveedor, uRecibosProveedorController, Grids, DBGrids, cxSpinEdit, + dxLayoutControl, uDAInterfaces; + +type + IViewRecibosCompensados = interface + ['{C683669A-002A-432D-BC20-3FA50BEA8721}'] + function GetReciboProveedor: IBizRecibosProveedor; + procedure SetReciboProveedor(const Value: IBizRecibosProveedor); + property ReciboProveedor: IBizRecibosProveedor read GetReciboProveedor write SetReciboProveedor; + + function GetController : IRecibosProveedorController; + procedure SetController (const Value : IRecibosProveedorController); + property Controller : IRecibosProveedorController read GetController write SetController; + end; + + TfrViewRecibosProvCompensados = class(TfrViewDetallesGenerico, IViewRecibosCompensados) + actExpandir: TAction; + actContraer: TAction; + ToolButton3: TToolButton; + ToolButton8: TToolButton; + cxGridViewREFERENCIA: TcxGridDBColumn; + cxGridViewIMPORTE_TOTAL: TcxGridDBColumn; + cxGridViewID_RECIBO_COMPENSADO: TcxGridDBColumn; + cxGridViewSITUACION: TcxGridDBColumn; + cxGridViewFECHA_EMISION: TcxGridDBColumn; + cxGridViewFECHA_VENCIMIENTO: TcxGridDBColumn; + cxGridViewNIF_CIF_PROVEEDOR: TcxGridDBColumn; + cxGridViewNOMBRE_PROVEEDOR: TcxGridDBColumn; + cxGridViewIMPORTE: TcxGridDBColumn; + cxGridViewOTROS_GASTOS: TcxGridDBColumn; + cxGridViewRecId: TcxGridDBColumn; + procedure actExpandirExecute(Sender: TObject); + procedure actContraerExecute(Sender: TObject); + procedure CustomViewShow(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + procedure actExpandirUpdate(Sender: TObject); + procedure actContraerUpdate(Sender: TObject); + procedure actAnadirUpdate(Sender: TObject); + protected + FHayCambios : Boolean; + FReciboProveedor : IBizRecibosProveedor; + FController : IRecibosProveedorController; + + procedure AnadirInterno; override; + procedure EliminarInterno; override; + + function GetReciboProveedor: IBizRecibosProveedor; + procedure SetReciboProveedor(const Value: IBizRecibosProveedor); + + function GetModified: Boolean; override; + procedure SetModified(const Value: Boolean); override; + + function GetController : IRecibosProveedorController; + procedure SetController (const Value : IRecibosProveedorController); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + property ReciboProveedor: IBizRecibosProveedor read GetReciboProveedor write SetReciboProveedor; + property Controller : IRecibosProveedorController read GetController write SetController; + end; + + +implementation + +{$R *.dfm} + +uses + uCustomView; + +{ TfrViewFacturasReciboProveedor } + +procedure TfrViewRecibosProvCompensados.actAnadirUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (ReciboProveedor.SITUACION <> CTE_PAGADO); +end; + +procedure TfrViewRecibosProvCompensados.actContraerExecute(Sender: TObject); +begin + inherited; + cxGridView.ViewData.Collapse(True); +end; + +procedure TfrViewRecibosProvCompensados.actContraerUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos; +end; + +procedure TfrViewRecibosProvCompensados.actEliminarUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := ((cxGridView.Controller.SelectedRowCount > 0) + and (cxGridView.Controller.SelectedRows[0].HasCells) + and (ReciboProveedor.SITUACION <> CTE_PAGADO)); +end; + +procedure TfrViewRecibosProvCompensados.actExpandirExecute(Sender: TObject); +begin + inherited; + cxGridView.ViewData.Expand(True); +end; + +procedure TfrViewRecibosProvCompensados.actExpandirUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos; +end; + +procedure TfrViewRecibosProvCompensados.AnadirInterno; +begin + //inherited; // No hacer el comportamiento normal + if FController.ElegirRecibosCompensados(ReciboProveedor) then + Modified := True; +end; + +constructor TfrViewRecibosProvCompensados.Create(AOwner: TComponent); +begin + inherited; + FHayCambios := False; +end; + +procedure TfrViewRecibosProvCompensados.CustomViewShow(Sender: TObject); +begin + inherited; + cxGridView.OptionsSelection.MultiSelect := False; +end; + +destructor TfrViewRecibosProvCompensados.Destroy; +begin + inherited; +end; + +procedure TfrViewRecibosProvCompensados.EliminarInterno; +begin + if cxGridView.Controller.SelectedRowCount > 0 then + if cxGridView.Controller.SelectedRows[0].HasCells then +// ViewGrid._FocusedView.Controller.SelectedRecordCount + FController.QuitarReciboCompensado(ReciboProveedor); + Modified := True; +end; + +function TfrViewRecibosProvCompensados.GetController: IRecibosProveedorController; +begin + Result := FController; +end; + +function TfrViewRecibosProvCompensados.GetModified: Boolean; +begin + Result := FHayCambios or inherited GetModified; +end; + +function TfrViewRecibosProvCompensados.GetReciboProveedor: IBizRecibosProveedor; +begin + Result := FReciboProveedor; +end; + +procedure TfrViewRecibosProvCompensados.SetController( + const Value: IRecibosProveedorController); +begin + FController := Value; +end; + +procedure TfrViewRecibosProvCompensados.SetModified(const Value: Boolean); +begin + FHayCambios := Value; + inherited; +end; + +procedure TfrViewRecibosProvCompensados.SetReciboProveedor(const Value: IBizRecibosProveedor); +begin + FReciboProveedor := Value; + FHayCambios := False; + if Assigned(FReciboProveedor) then + dsDetalles.DataTable := FReciboProveedor.RecibosCompensados.DataTable + else + dsDetalles.DataTable := NIL; + + actAnchoAutomatico.Execute; +end; + +end. diff --git a/Source/Modulos/Recibos de proveedor/Views/uViewRecibosProveedor.dcu b/Source/Modulos/Recibos de proveedor/Views/uViewRecibosProveedor.dcu new file mode 100644 index 0000000..1d864f5 Binary files /dev/null and b/Source/Modulos/Recibos de proveedor/Views/uViewRecibosProveedor.dcu differ diff --git a/Source/Modulos/Recibos de proveedor/Views/uViewRecibosProveedor.dfm b/Source/Modulos/Recibos de proveedor/Views/uViewRecibosProveedor.dfm new file mode 100644 index 0000000..c4e2963 --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/uViewRecibosProveedor.dfm @@ -0,0 +1,382 @@ +inherited frViewRecibosProveedor: TfrViewRecibosProveedor + Width = 531 + Height = 415 + ExplicitWidth = 531 + ExplicitHeight = 415 + inherited cxGrid: TcxGrid + Width = 531 + Height = 287 + RootLevelOptions.DetailTabsPosition = dtpTop + OnActiveTabChanged = cxGridActiveTabChanged + ExplicitWidth = 531 + ExplicitHeight = 287 + inherited cxGridView: TcxGridDBTableView + DataController.KeyFieldNames = 'ID' + DataController.Options = [dcoAnsiSort, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoGroupsAlwaysExpanded] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Position = spFooter + Column = cxGridViewIMPORTE_TOTAL + end> + DataController.Summary.FooterSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = cxGridViewIMPORTE_TOTAL + end + item + Format = '0 recibos' + Kind = skCount + Column = cxGridViewREFERENCIA + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = cxGridViewIMPORTE + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = cxGridViewOTROS_GASTOS + end> + DataController.OnCompare = cxGridViewDataControllerCompare + OptionsCustomize.ColumnHidingOnGrouping = False + OptionsView.GroupFooters = gfAlwaysVisible + object cxGridViewREFERENCIA: TcxGridDBColumn + Caption = 'Referencia' + DataBinding.FieldName = 'REFERENCIA' + SortIndex = 0 + SortOrder = soDescending + Width = 71 + end + object cxGridViewID_RECIBO_COMPENSADO: TcxGridDBColumn + Caption = 'Compensado' + DataBinding.FieldName = 'ID_RECIBO_COMPENSADO' + Visible = False + OnCustomDrawCell = cxGridViewID_RECIBO_COMPENSADOCustomDrawCell + VisibleForCustomization = False + end + object cxGridViewREFERENCIA_REC_COMPENSADO: TcxGridDBColumn + Caption = 'Ref. recibo compensado' + DataBinding.FieldName = 'REFERENCIA_REC_COMPENSADO' + Visible = False + VisibleForCustomization = False + end + object cxGridViewREFERENCIA_FACTURA_PROV: TcxGridDBColumn + Caption = 'Ref. factura prov.' + DataBinding.FieldName = 'REFERENCIA_FACTURA_PROV' + end + object cxGridViewSITUACION: TcxGridDBColumn + Caption = 'Situaci'#243'n' + DataBinding.FieldName = 'SITUACION' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Items = < + item + Description = 'Pendiente' + Value = 'PENDIENTE' + end + item + Description = 'Pagado' + ImageIndex = 0 + Value = 'PAGADO' + end + item + Description = 'Devuelto' + ImageIndex = 1 + Value = 'DEVUELTO' + end> + Width = 55 + end + object cxGridViewFECHA_EMISION: TcxGridDBColumn + Caption = 'Fecha emisi'#243'n' + DataBinding.FieldName = 'FECHA_EMISION' + Width = 40 + end + object cxGridViewFECHA_VENCIMIENTO: TcxGridDBColumn + Caption = 'Fecha vencimiento' + DataBinding.FieldName = 'FECHA_VENCIMIENTO' + Width = 61 + end + object cxGridViewDESCRIPCION: TcxGridDBColumn + Caption = 'Descripci'#243'n' + DataBinding.FieldName = 'DESCRIPCION' + Visible = False + end + object cxGridViewNIF_CIF_PROVEEDOR: TcxGridDBColumn + Caption = 'NIF/CIF' + DataBinding.FieldName = 'NIF_CIF_PROVEEDOR' + Visible = False + end + object cxGridViewNOMBRE_PROVEEDOR: TcxGridDBColumn + Caption = 'Proveedor' + DataBinding.FieldName = 'NOMBRE_PROVEEDOR' + Width = 61 + end + object cxGridViewIMPORTE: TcxGridDBColumn + Caption = 'Importe' + DataBinding.FieldName = 'IMPORTE' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + Width = 60 + end + object cxGridViewOTROS_GASTOS: TcxGridDBColumn + Caption = 'Otros gastos' + DataBinding.FieldName = 'OTROS_GASTOS' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + Width = 30 + end + object cxGridViewIMPORTE_TOTAL: TcxGridDBColumn + Caption = 'Importe total' + DataBinding.FieldName = 'IMPORTE_TOTAL' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + Width = 92 + end + object cxGridViewREFERENCIA_REMESA: TcxGridDBColumn + Caption = 'Ref. remesa' + DataBinding.FieldName = 'REFERENCIA_REMESA' + Visible = False + end + object cxGridViewDATOS_BANCARIOS: TcxGridDBColumn + Caption = 'Banco' + DataBinding.FieldName = 'DATOS_BANCARIOS' + end + end + inherited cxGridLevel: TcxGridLevel + Caption = 'Todos' + end + object cxGridPendientes: TcxGridLevel + Caption = 'Pendientes' + end + object cxGridPagados: TcxGridLevel + Caption = 'Pagados' + end + object cxGridDevueltos: TcxGridLevel + Caption = 'Devueltos' + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 531 + ExplicitWidth = 531 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 531 + inherited dxLayoutControl1: TdxLayoutControl + Width = 531 + ExplicitWidth = 531 + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 491 + Width = 491 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 201 + Width = 201 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 212 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 212 + ExplicitWidth = 216 + Width = 216 + end + inherited eLista: TcxComboBox + Left = 389 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 389 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 531 + ExplicitWidth = 531 + inherited tbxBotones: TTBXToolbar + Width = 521 + ExplicitWidth = 521 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 389 + Visible = True + ExplicitTop = 389 + ExplicitWidth = 531 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 531 + ExplicitWidth = 531 + inherited TBXToolbar1: TTBXToolbar + Width = 521 + ExplicitWidth = 521 + object TBXSeparatorItem1: TTBXSeparatorItem + end + object TBXItem2: TTBXItem + Action = actProveedor + end + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 38673.741107951390000000 + BuiltInReportLink = True + end + end + inherited cxStyleRepository1: TcxStyleRepository + object cxStylePendientes: TcxStyle + AssignedValues = [svTextColor] + TextColor = clGreen + end + object cxStylePagadas: TcxStyle + AssignedValues = [svTextColor] + TextColor = clBlack + end + object cxStyleDevueltas: TcxStyle + AssignedValues = [svTextColor] + TextColor = clRed + end + end + inherited ActionList1: TActionList + Top = 264 + object actProveedor: TAction + Caption = 'Proveedor' + OnExecute = actProveedorExecute + OnUpdate = actProveedorUpdate + end + end + inherited GridPNGImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000434944415478DA63FCFFFF3F + 03258011D900464646ACA601D530126D00BA6298A1B80C21CA0090183639925C + 80CB3B040DC0E69A510306BD010C04005E03C801036F00008D248BE16F9028BA + 0000000049454E44AE426082} + Name = 'Icono_header' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + Bitmap = {} + end +end diff --git a/Source/Modulos/Recibos de proveedor/Views/uViewRecibosProveedor.pas b/Source/Modulos/Recibos de proveedor/Views/uViewRecibosProveedor.pas new file mode 100644 index 0000000..21be9cb --- /dev/null +++ b/Source/Modulos/Recibos de proveedor/Views/uViewRecibosProveedor.pas @@ -0,0 +1,307 @@ +unit uViewRecibosProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewGrid, uViewPreview, cxStyles, cxCustomData, cxGraphics, + cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl, + dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, + dxPSFillPatterns, dxPSEdgePatterns, cxImageComboBox, cxTextEdit, ImgList, + PngImageList, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, ActnList, uDADataTable, + cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGrid, + cxImage, Grids, DBGrids, uBizRecibosProveedor, cxGridCustomPopupMenu, + cxGridPopupMenu, cxCalendar, cxCurrencyEdit, uViewFiltroBase, TB2Item, TBX, + TB2Toolbar, TBXDkPanels, TB2Dock, dxPgsDlg, uDAInterfaces, uCustomView, + uViewBase; + +type + IViewRecibosProveedor = interface(IViewGrid) + ['{2E26DF6E-CFCD-41CC-AC4C-FCF3AD0AD0D7}'] + function GetRecibos: IBizRecibosProveedor; + procedure SetRecibos(const Value: IBizRecibosProveedor); + property Recibos: IBizRecibosProveedor read GetRecibos write SetRecibos; + + procedure FiltrarPorFechas(const Fecha1, Fecha2: Variant); + end; + + TfrViewRecibosProveedor = class(TfrViewGrid, IViewRecibosProveedor) + cxStylePendientes: TcxStyle; + cxGridPendientes: TcxGridLevel; + cxGridPagados: TcxGridLevel; + cxStylePagadas: TcxStyle; + cxGridViewREFERENCIA: TcxGridDBColumn; + cxGridViewSITUACION: TcxGridDBColumn; + cxGridViewFECHA_VENCIMIENTO: TcxGridDBColumn; + cxGridViewDESCRIPCION: TcxGridDBColumn; + cxGridViewIMPORTE: TcxGridDBColumn; + cxGridViewNOMBRE_PROVEEDOR: TcxGridDBColumn; + cxGridViewNIF_CIF_PROVEEDOR: TcxGridDBColumn; + cxGridViewREFERENCIA_REMESA: TcxGridDBColumn; + cxGridDevueltos: TcxGridLevel; + cxGridViewOTROS_GASTOS: TcxGridDBColumn; + cxGridViewIMPORTE_TOTAL: TcxGridDBColumn; + cxGridViewFECHA_EMISION: TcxGridDBColumn; + cxStyleDevueltas: TcxStyle; + actProveedor: TAction; + TBXItem2: TTBXItem; + TBXSeparatorItem1: TTBXSeparatorItem; + cxGridViewREFERENCIA_FACTURA_PROV: TcxGridDBColumn; + cxGridViewID_RECIBO_COMPENSADO: TcxGridDBColumn; + cxGridViewREFERENCIA_REC_COMPENSADO: TcxGridDBColumn; + cxGridViewDATOS_BANCARIOS: TcxGridDBColumn; + procedure cxGridViewICONOCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; + out AStyle: TcxStyle); + procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel); + procedure cxGridViewIMPORTE_TOTALGetDisplayText(Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: string); + procedure actProveedorExecute(Sender: TObject); + procedure actProveedorUpdate(Sender: TObject); + procedure cxGridViewID_RECIBO_COMPENSADOCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); + procedure cxGridViewDataControllerCompare( + ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2, + AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer); + + private + //Filtros relativos a la vista + procedure AnadirFiltroSituaciones; + procedure AnadirFiltroFechas; + + protected + FRecibos: IBizRecibosProveedor; + function GetRecibos: IBizRecibosProveedor; + procedure SetRecibos(const Value: IBizRecibosProveedor); + public + property Recibos: IBizRecibosProveedor read GetRecibos write SetRecibos; + procedure FiltrarPorFechas(const Fecha1, Fecha2: Variant); + procedure AnadirOtrosFiltros; override; + end; + + +implementation + +uses + schRecibosProveedorClient_Intf, uDataModuleRecibosProveedor, + DateUtils, uViewGridBase, uReferenciasUtils, cxVariants; + +{$R *.dfm} + +{ TfrViewRecibosProveedor } + +procedure TfrViewRecibosProveedor.actProveedorExecute(Sender: TObject); +begin + inherited; + if (cxGridViewNOMBRE_PROVEEDOR.GroupIndex < 0) then + begin + cxGridViewNOMBRE_PROVEEDOR.GroupIndex := cxGridView.GroupedColumnCount; + cxGridViewNOMBRE_PROVEEDOR.Visible := False; + end + else + begin + cxGridViewNOMBRE_PROVEEDOR.GroupIndex := -1; + cxGridViewNOMBRE_PROVEEDOR.Visible := True; + end; +end; + +procedure TfrViewRecibosProveedor.actProveedorUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Checked := not (cxGridViewNOMBRE_PROVEEDOR.GroupIndex < 0); +end; + +procedure TfrViewRecibosProveedor.AnadirFiltroFechas; +var + Columna: TcxGridDBColumn; + Fecha1, Fecha2: Variant; + FFiltro : TcxFilterCriteriaItemList; +begin + Fecha1 := frViewFiltroBase1.edtFechaIniFiltro.EditValue; + Fecha2 := frViewFiltroBase1.edtFechaFinFiltro.EditValue; + + if not VarIsNull(Fecha1) + and not VarIsNull(Fecha2) then + begin + cxGridView.DataController.Filter.Options := [fcoCaseInsensitive, fcoSoftCompare]; + FFiltro := AddFilterGrid(fboAnd); + + Columna := (cxGridView as TcxGridDBTableView).GetColumnByFieldName(fld_RecibosCompensadosProvFECHA_VENCIMIENTO); + FFiltro.AddItem(Columna, foBetween, varArrayOf([Fecha1, Fecha2]), VarToStr(Fecha1) + ' and ' + VarToStr(Fecha2)); + end; +end; + +procedure TfrViewRecibosProveedor.AnadirFiltroSituaciones; +var + FFiltro : TcxFilterCriteriaItemList; +begin + FFiltro := AddFilterGrid(fboAnd); + + case cxGrid.ActiveLevel.Index of + 1 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, CTE_PENDIENTE, CTE_PENDIENTE); + 2 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, CTE_PAGADO, CTE_PAGADO); + 3 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, CTE_DEVUELTO, CTE_DEVUELTO); + end; +end; + +procedure TfrViewRecibosProveedor.AnadirOtrosFiltros; +begin + inherited; + + AnadirFiltroSituaciones; + AnadirFiltroFechas; + + //Finalmente activamos el filtro si tenemos algo + if cxGridView.DataController.Filter.IsEmpty then + cxGridView.DataController.Filter.Active := False + else + cxGridView.DataController.Filter.Active := True; + cxGrid.ActiveLevel.GridView := cxGridView; +end; + +procedure TfrViewRecibosProveedor.cxGridActiveTabChanged(Sender: TcxCustomGrid; + ALevel: TcxGridLevel); +begin + inherited; + RefrescarFiltro; +end; + +procedure TfrViewRecibosProveedor.cxGridViewDataControllerCompare( + ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2, + AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer); +begin + inherited; + if ((AItemIndex = cxGridViewREFERENCIA.Index) or + (AItemIndex = cxGridViewREFERENCIA_REMESA.Index) or + (AItemIndex = cxGridViewREFERENCIA_REC_COMPENSADO.Index) or + (AItemIndex = cxGridViewREFERENCIA_FACTURA_PROV.Index)) and + (VarType(V1) = VarType(V2)) and (VarType(V1) = varString) then + Compare := CompararReferencias(V1, V2) + else + Compare := VarCompare(V1, V2); +end; + +procedure TfrViewRecibosProveedor.cxGridViewICONOCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +{var + R : TRect;} +begin +// inherited; +{ + R := AViewInfo.ContentBounds; + ACanvas.FillRect(R); + if (Pos('-', AViewInfo.GridRecord.DisplayTexts[cxGridViewIMPORTE_TOTAL.Index]) > 0) then + ACanvas.DrawImage(PngImageList, R.Left, R.Top, 3) + else + ACanvas.DrawImage(PngImageList, R.Left, R.Top, 2); + ADone := True; +} +end; + +procedure TfrViewRecibosProveedor.cxGridViewID_RECIBO_COMPENSADOCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +var + R : TRect; +begin + inherited; + if not VarIsNull(AViewInfo.Value) then + begin + R := AViewInfo.ContentBounds; + ACanvas.FillRect(R); + ACanvas.DrawImage(GridPNGImageList, R.Left, R.Top, 1); + ADone := True; + end; +end; + +procedure TfrViewRecibosProveedor.cxGridViewIMPORTE_TOTALGetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: string); +var + ImporteTotal : Double; +begin + //Se encarga de mostrar el campo calculado de importe total + ImporteTotal := -1; + + if not VarIsNull(ARecord.Values[cxGridViewIMPORTE.Index]) then + if not VarIsNull(ARecord.Values[cxGridViewOTROS_GASTOS.Index]) then + ImporteTotal := ARecord.Values[cxGridViewIMPORTE.Index] + ARecord.Values[cxGridViewOTROS_GASTOS.Index] + else + ImporteTotal := ARecord.Values[cxGridViewIMPORTE.Index]; + + if (ImporteTotal <> -1) then + begin + AText := FormatCurr(',0.00 €;-,0.00 €', FloatToCurr(ImporteTotal)); + + ARecord.Values[cxGridViewIMPORTE_TOTAL.Index] := ImporteTotal; + cxGridViewIMPORTE_TOTAL.EditValue := ImporteTotal; + cxGridViewIMPORTE_TOTAL.DataBinding.Field.Value := ImporteTotal; + end; +end; + +procedure TfrViewRecibosProveedor.cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +var + IndiceCol: Integer; + ASituacion: string; +begin + inherited; + + if Assigned(ARecord) then + begin + IndiceCol := cxGridViewSITUACION.Index; + ASituacion := UPPERCASE(VarToStr(ARecord.DisplayTexts[IndiceCol])); + if (ASituacion = CTE_PENDIENTE) then + AStyle := cxStylePendientes + else if (ASituacion = CTE_PAGADO) then + AStyle := cxStylePagadas + else if (ASituacion = CTE_DEVUELTO) then + AStyle := cxStyleDevueltas; + end; +end; + +procedure TfrViewRecibosProveedor.FiltrarPorFechas(const Fecha1, Fecha2: Variant); +var + Columna: TcxGridDBColumn; +begin + with cxGridView.DataController.Filter do + begin + BeginUpdate; + try + Options := [fcoCaseInsensitive, fcoSoftCompare]; + Root.Clear; + if not VarIsNull(Fecha1) + and not VarIsNull(Fecha2) then + begin + Columna := (cxGridView as TcxGridDBTableView).GetColumnByFieldName(fld_RecibosCompensadosProvFECHA_VENCIMIENTO); + Root.AddItem(Columna, foBetween, varArrayOf([Fecha1, Fecha2]), VarToStr(Fecha1) + ' and ' + VarToStr(Fecha2)); + Active := True; + end + else + Active := False; + finally + EndUpdate; + end; + end; +end; + +function TfrViewRecibosProveedor.GetRecibos: IBizRecibosProveedor; +begin + Result := FRecibos; +end; + +procedure TfrViewRecibosProveedor.SetRecibos(const Value: IBizRecibosProveedor); +begin + FRecibos := Value; + if Assigned(FRecibos) then + dsDataSource.DataTable := FRecibos.DataTable; +end; + +end. diff --git a/Source/Modulos/Referencias/Controller/Referencias_controller.bdsproj b/Source/Modulos/Referencias/Controller/Referencias_controller.bdsproj new file mode 100644 index 0000000..f03aebb --- /dev/null +++ b/Source/Modulos/Referencias/Controller/Referencias_controller.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + Referencias_controller.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Referencias/Controller/Referencias_controller.dcu b/Source/Modulos/Referencias/Controller/Referencias_controller.dcu new file mode 100644 index 0000000..be1782e Binary files /dev/null and b/Source/Modulos/Referencias/Controller/Referencias_controller.dcu differ diff --git a/Source/Modulos/Referencias/Controller/Referencias_controller.dpk b/Source/Modulos/Referencias/Controller/Referencias_controller.dpk new file mode 100644 index 0000000..74c3a70 --- /dev/null +++ b/Source/Modulos/Referencias/Controller/Referencias_controller.dpk @@ -0,0 +1,37 @@ +package Referencias_controller; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + Base, + ApplicationBase, + Referencias_data, + Referencias_model; + +contains + uReferenciasController in 'uReferenciasController.pas', + uIEditorReferencias in 'View\uIEditorReferencias.pas'; + +end. diff --git a/Source/Modulos/Referencias/Controller/Referencias_controller.dproj b/Source/Modulos/Referencias/Controller/Referencias_controller.dproj new file mode 100644 index 0000000..e57c057 --- /dev/null +++ b/Source/Modulos/Referencias/Controller/Referencias_controller.dproj @@ -0,0 +1,540 @@ + + + + {7f80f8aa-6912-4714-986d-aed73035472b} + Referencias_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Referencias_controller.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Referencias_controller.dpk + + + + + MainSource + + + + + + + + + + diff --git a/Source/Modulos/Referencias/Controller/Referencias_controller.rc b/Source/Modulos/Referencias/Controller/Referencias_controller.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Referencias/Controller/Referencias_controller.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Referencias/Controller/Referencias_controller.res b/Source/Modulos/Referencias/Controller/Referencias_controller.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Referencias/Controller/Referencias_controller.res differ diff --git a/Source/Modulos/Referencias/Controller/View/uIEditorReferencias.dcu b/Source/Modulos/Referencias/Controller/View/uIEditorReferencias.dcu new file mode 100644 index 0000000..5a64dfc Binary files /dev/null and b/Source/Modulos/Referencias/Controller/View/uIEditorReferencias.dcu differ diff --git a/Source/Modulos/Referencias/Controller/View/uIEditorReferencias.pas b/Source/Modulos/Referencias/Controller/View/uIEditorReferencias.pas new file mode 100644 index 0000000..9329199 --- /dev/null +++ b/Source/Modulos/Referencias/Controller/View/uIEditorReferencias.pas @@ -0,0 +1,21 @@ +unit uIEditorReferencias; + +interface + +uses + uBizReferencias; + +type + IEditorReferencias = interface + ['{751F46E7-6125-4931-9FD2-B91987083FC1}'] + function GetReferencias: IBizReferencia; + procedure SetReferencias(const Value: IBizReferencia); + property Referencias: IBizReferencia read GetReferencias write SetReferencias; + function ShowModal : Integer; + procedure Release; + end; + + +implementation + +end. diff --git a/Source/Modulos/Referencias/Controller/uReferenciasController.dcu b/Source/Modulos/Referencias/Controller/uReferenciasController.dcu new file mode 100644 index 0000000..67e6d04 Binary files /dev/null and b/Source/Modulos/Referencias/Controller/uReferenciasController.dcu differ diff --git a/Source/Modulos/Referencias/Controller/uReferenciasController.pas b/Source/Modulos/Referencias/Controller/uReferenciasController.pas new file mode 100644 index 0000000..4bfdde9 --- /dev/null +++ b/Source/Modulos/Referencias/Controller/uReferenciasController.pas @@ -0,0 +1,175 @@ +unit uReferenciasController; + +interface + + +uses + Classes, SysUtils, uDADataTable, uControllerBase, + uIDataModuleReferencias, uBizReferencias; + +type + IReferenciasController = interface(IControllerBase) + ['{832E33B0-3228-4519-A740-F551DF3004DD}'] + function BuscarTodos: IBizReferencia; + procedure VerTodos(AReferencias: IBizReferencia); + function Guardar(AReferencia : IBizReferencia): Boolean; + procedure DescartarCambios(AReferencia : IBizReferencia); + end; + + TReferenciasController = class(TControllerBase, IReferenciasController) + protected + FDataModule : IDataModuleReferencias; +// procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; + + function ValidarReferencia(AReferencia: IBizReferencia): Boolean; + procedure AsignarDataModule; + procedure FiltrarEmpresa(AReferencias: IBizReferencia); + public + constructor Create; override; + destructor Destroy; override; + + function Guardar(AReferencia : IBizReferencia): Boolean; virtual; + procedure DescartarCambios(AReferencia : IBizReferencia); virtual; + function BuscarTodos: IBizReferencia; + procedure VerTodos(AReferencias: IBizReferencia); + end; + +implementation + +uses + cxControls, DB, uEditorRegistryUtils, schReferenciasClient_Intf, + uIEditorReferencias, uDataModuleReferencias, uFactuGES_App, + uDAInterfaces, uDataTableUtils, uDialogUtils, + uDateUtils, uROTypes, DateUtils, Controls, Windows; + +{ TReferenciasController } + +procedure TReferenciasController.AsignarDataModule; +begin + FDataModule := TDataModuleReferencias.Create(Nil); +end; + +function TReferenciasController.BuscarTodos: IBizReferencia; +begin + Result := FDataModule.GetItems; + FiltrarEmpresa(Result); +end; + +procedure TReferenciasController.FiltrarEmpresa(AReferencias: IBizReferencia); +var + Condicion: TDAWhereExpression; + Condicion1: TDAWhereExpression; + Condicion2: TDAWhereExpression; +begin + if AReferencias.DataTable.Active then + AReferencias.DataTable.Active := False; + + // Filtrar las facturas actuales por empresa + with AReferencias.DataTable.DynamicWhere do + begin + // (ID_EMPRESA = ID) + Condicion1 := NewBinaryExpression(NewField('', fld_ReferenciasID_EMPRESA), + NewConstant(AppFactuGES.EmpresaActiva.ID, datInteger), dboEqual); + // (ID_EMPRESA = NULL) + Condicion2 := NewBinaryExpression(NewField('', fld_ReferenciasID_EMPRESA), NewNull(), dboEqual); + + Condicion := NewBinaryExpression(Condicion1, Condicion2, dboOr); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; +end; + +constructor TReferenciasController.Create; +begin + inherited; + AsignarDataModule; +end; + +function TReferenciasController.CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + +procedure TReferenciasController.DescartarCambios(AReferencia: IBizReferencia); +begin + if not Assigned(AReferencia) then + raise Exception.Create ('Forma de pago no asignada'); + + ShowHourglassCursor; + try + if (AReferencia.State in dsEditModes) then + AReferencia.Cancel; + + AReferencia.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TReferenciasController.Destroy; +begin + FDataModule := NIL; + inherited; +end; + +function TReferenciasController.ValidarReferencia(AReferencia: IBizReferencia): Boolean; +begin + Result := False; + + if not Assigned(AReferencia) then + raise Exception.Create ('Referencia no asignada'); + + if (AReferencia.DataTable.State in dsEditModes) then + AReferencia.DataTable.Post; + +// if Length(AReferencia.VALOR) = 0 then +// raise Exception.Create('Debe indicar un cdigo para esta referencia.'); + + Result := True; +end; + +procedure TReferenciasController.VerTodos(AReferencias: IBizReferencia); +var + AEditor : IEditorReferencias; +begin + CreateEditor('EditorReferencias', IEditorReferencias, AEditor); + if Assigned(AEditor) then + try + AEditor.Referencias := AReferencias; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; +end; +{ +procedure TReferenciasController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +begin + inherited; +// +end; +} + +function TReferenciasController.Guardar(AReferencia: IBizReferencia): Boolean; +var + NuevoID : Integer; +begin + Result := False; + + if ValidarReferencia(AReferencia) then + begin + ShowHourglassCursor; + try + AReferencia.DataTable.ApplyUpdates; + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +end. diff --git a/Source/Modulos/Referencias/Data/Referencias_data.bdsproj b/Source/Modulos/Referencias/Data/Referencias_data.bdsproj new file mode 100644 index 0000000..f70807c --- /dev/null +++ b/Source/Modulos/Referencias/Data/Referencias_data.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + Referencias_data.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Referencias/Data/Referencias_data.dcu b/Source/Modulos/Referencias/Data/Referencias_data.dcu new file mode 100644 index 0000000..f2825a8 Binary files /dev/null and b/Source/Modulos/Referencias/Data/Referencias_data.dcu differ diff --git a/Source/Modulos/Referencias/Data/Referencias_data.dpk b/Source/Modulos/Referencias/Data/Referencias_data.dpk new file mode 100644 index 0000000..018638c Binary files /dev/null and b/Source/Modulos/Referencias/Data/Referencias_data.dpk differ diff --git a/Source/Modulos/Referencias/Data/Referencias_data.dproj b/Source/Modulos/Referencias/Data/Referencias_data.dproj new file mode 100644 index 0000000..c95e0fd --- /dev/null +++ b/Source/Modulos/Referencias/Data/Referencias_data.dproj @@ -0,0 +1,540 @@ + + + + {c8118762-09b6-432f-ba26-058fa36c39d9} + Referencias_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Referencias_data.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Referencias_data.dpk + + + + + MainSource + + + + +
DataModuleReferencias
+
+
+
+ + diff --git a/Source/Modulos/Referencias/Data/Referencias_data.rc b/Source/Modulos/Referencias/Data/Referencias_data.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Referencias/Data/Referencias_data.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Referencias/Data/Referencias_data.res b/Source/Modulos/Referencias/Data/Referencias_data.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Referencias/Data/Referencias_data.res differ diff --git a/Source/Modulos/Referencias/Data/uDataModuleReferencias.dcu b/Source/Modulos/Referencias/Data/uDataModuleReferencias.dcu new file mode 100644 index 0000000..ecc7e99 Binary files /dev/null and b/Source/Modulos/Referencias/Data/uDataModuleReferencias.dcu differ diff --git a/Source/Modulos/Referencias/Data/uDataModuleReferencias.dfm b/Source/Modulos/Referencias/Data/uDataModuleReferencias.dfm new file mode 100644 index 0000000..92a1ca0 --- /dev/null +++ b/Source/Modulos/Referencias/Data/uDataModuleReferencias.dfm @@ -0,0 +1,73 @@ +inherited DataModuleReferencias: TDataModuleReferencias + OnCreate = DAClientDataModuleCreate + Height = 245 + Width = 455 + object RORemoteService: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvReferencias' + Left = 48 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 84 + end + object rda_Referencias: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetDataCall.RemoteService = RORemoteService + UpdateDataCall.RemoteService = RORemoteService + GetScriptsCall.RemoteService = RORemoteService + RemoteService = RORemoteService + DataStreamer = Bin2DataStreamer + Left = 51 + Top = 151 + end + object tbl_Referencias: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + GeneratorName = 'GEN_REFERENCIAS_ID' + Required = True + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'CODIGO' + DataType = datString + Size = 50 + Required = True + end + item + Name = 'VALOR' + DataType = datString + Size = 255 + Required = True + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Referencias + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Referencias' + IndexDefs = <> + Left = 256 + Top = 120 + end + object ds_Referencias: TDADataSource + DataSet = tbl_Referencias.Dataset + DataTable = tbl_Referencias + Left = 256 + Top = 64 + end +end diff --git a/Source/Modulos/Referencias/Data/uDataModuleReferencias.pas b/Source/Modulos/Referencias/Data/uDataModuleReferencias.pas new file mode 100644 index 0000000..65a444a --- /dev/null +++ b/Source/Modulos/Referencias/Data/uDataModuleReferencias.pas @@ -0,0 +1,57 @@ +unit uDataModuleReferencias; + +interface + +uses + SysUtils, Classes, DB, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, uIDataModuleReferencias, uBizReferencias, uDataModuleBase, + uDARemoteDataAdapter, uDADataStreamer, uDABin2DataStreamer, uDAInterfaces, + uDAMemDataTable; + +type + TDataModuleReferencias = class(TDataModuleBase, IDataModuleReferencias) + RORemoteService: TRORemoteService; + Bin2DataStreamer: TDABin2DataStreamer; + rda_Referencias: TDARemoteDataAdapter; + tbl_Referencias: TDAMemDataTable; + ds_Referencias: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + public + function GetItems: IBizReferencia; + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, cxControls, uDataModuleConexion, uDataTableUtils, + schReferenciasClient_Intf; + +{ TdmAlmacens } + +procedure TDataModuleReferencias.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleReferencias.GetItems: IBizReferencia; +var + AReferencia : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AReferencia := CloneDataTable(tbl_Referencias); + AReferencia.BusinessRulesID := BIZ_CLIENT_REFERENCIA; + + Result := (AReferencia as IBizReferencia); + finally + HideHourglassCursor; + end; +end; + + +end. diff --git a/Source/Modulos/Referencias/Model/Data/uIDataModuleReferencias.dcu b/Source/Modulos/Referencias/Model/Data/uIDataModuleReferencias.dcu new file mode 100644 index 0000000..af45bae Binary files /dev/null and b/Source/Modulos/Referencias/Model/Data/uIDataModuleReferencias.dcu differ diff --git a/Source/Modulos/Referencias/Model/Data/uIDataModuleReferencias.pas b/Source/Modulos/Referencias/Model/Data/uIDataModuleReferencias.pas new file mode 100644 index 0000000..09bfa88 --- /dev/null +++ b/Source/Modulos/Referencias/Model/Data/uIDataModuleReferencias.pas @@ -0,0 +1,16 @@ +unit uIDataModuleReferencias; + +interface + +uses + uBizReferencias; + +type + IDataModuleReferencias = interface + ['{45F916F9-9F41-499C-83FA-AC41E5BE63E3}'] + function GetItems: IBizReferencia; + end; + +implementation + +end. diff --git a/Source/Modulos/Referencias/Model/Referencias_model.bdsproj b/Source/Modulos/Referencias/Model/Referencias_model.bdsproj new file mode 100644 index 0000000..f4a9eb7 --- /dev/null +++ b/Source/Modulos/Referencias/Model/Referencias_model.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + Referencias_model.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Referencias/Model/Referencias_model.dcu b/Source/Modulos/Referencias/Model/Referencias_model.dcu new file mode 100644 index 0000000..e816ce6 Binary files /dev/null and b/Source/Modulos/Referencias/Model/Referencias_model.dcu differ diff --git a/Source/Modulos/Referencias/Model/Referencias_model.dpk b/Source/Modulos/Referencias/Model/Referencias_model.dpk new file mode 100644 index 0000000..ff496bd Binary files /dev/null and b/Source/Modulos/Referencias/Model/Referencias_model.dpk differ diff --git a/Source/Modulos/Referencias/Model/Referencias_model.dproj b/Source/Modulos/Referencias/Model/Referencias_model.dproj new file mode 100644 index 0000000..e8fd177 --- /dev/null +++ b/Source/Modulos/Referencias/Model/Referencias_model.dproj @@ -0,0 +1,539 @@ + + + + {73acd39c-b2f0-49b7-9acf-10945bbac8c1} + Referencias_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Referencias_model.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Referencias_model.dpk + + + + + MainSource + + + + + + + + + diff --git a/Source/Modulos/Referencias/Model/Referencias_model.rc b/Source/Modulos/Referencias/Model/Referencias_model.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Referencias/Model/Referencias_model.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Referencias/Model/Referencias_model.res b/Source/Modulos/Referencias/Model/Referencias_model.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Referencias/Model/Referencias_model.res differ diff --git a/Source/Modulos/Referencias/Model/schReferenciasClient_Intf.dcu b/Source/Modulos/Referencias/Model/schReferenciasClient_Intf.dcu new file mode 100644 index 0000000..1d50ce5 Binary files /dev/null and b/Source/Modulos/Referencias/Model/schReferenciasClient_Intf.dcu differ diff --git a/Source/Modulos/Referencias/Model/schReferenciasClient_Intf.pas b/Source/Modulos/Referencias/Model/schReferenciasClient_Intf.pas new file mode 100644 index 0000000..b4988da --- /dev/null +++ b/Source/Modulos/Referencias/Model/schReferenciasClient_Intf.pas @@ -0,0 +1,239 @@ +unit schReferenciasClient_Intf; + +interface + +uses + Classes, DB, schBase_Intf, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_Referencias = '{1D0B0E97-1F81-4567-A917-8842D05E643C}'; + + { Data table names } + nme_Referencias = 'Referencias'; + + { Referencias fields } + fld_ReferenciasID = 'ID'; + fld_ReferenciasID_EMPRESA = 'ID_EMPRESA'; + fld_ReferenciasCODIGO = 'CODIGO'; + fld_ReferenciasVALOR = 'VALOR'; + fld_ReferenciasDESCRIPCION = 'DESCRIPCION'; + + { Referencias field indexes } + idx_ReferenciasID = 0; + idx_ReferenciasID_EMPRESA = 1; + idx_ReferenciasCODIGO = 2; + idx_ReferenciasVALOR = 3; + idx_ReferenciasDESCRIPCION = 4; + +type + { IReferencias } + IReferencias = interface(IDAStronglyTypedDataTable) + ['{3DA139A5-F7C4-45BC-BD1F-F98C48FAE54F}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_EMPRESAIsNull: Boolean; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); + function GetCODIGOValue: String; + procedure SetCODIGOValue(const aValue: String); + function GetCODIGOIsNull: Boolean; + procedure SetCODIGOIsNull(const aValue: Boolean); + function GetVALORValue: String; + procedure SetVALORValue(const aValue: String); + function GetVALORIsNull: Boolean; + procedure SetVALORIsNull(const aValue: Boolean); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetDESCRIPCIONIsNull: Boolean; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property CODIGO: String read GetCODIGOValue write SetCODIGOValue; + property CODIGOIsNull: Boolean read GetCODIGOIsNull write SetCODIGOIsNull; + property VALOR: String read GetVALORValue write SetVALORValue; + property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + end; + + { TReferenciasDataTableRules } + TReferenciasDataTableRules = class(TIntfObjectDADataTableRules, IReferencias) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetCODIGOValue: String; virtual; + procedure SetCODIGOValue(const aValue: String); virtual; + function GetCODIGOIsNull: Boolean; virtual; + procedure SetCODIGOIsNull(const aValue: Boolean); virtual; + function GetVALORValue: String; virtual; + procedure SetVALORValue(const aValue: String); virtual; + function GetVALORIsNull: Boolean; virtual; + procedure SetVALORIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property CODIGO: String read GetCODIGOValue write SetCODIGOValue; + property CODIGOIsNull: Boolean read GetCODIGOIsNull write SetCODIGOIsNull; + property VALOR: String read GetVALORValue write SetVALORValue; + property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants, uROBinaryHelpers; + +{ TReferenciasDataTableRules } +constructor TReferenciasDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TReferenciasDataTableRules.Destroy; +begin + inherited; +end; + +function TReferenciasDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_ReferenciasID].AsInteger; +end; + +procedure TReferenciasDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_ReferenciasID].AsInteger := aValue; +end; + +function TReferenciasDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_ReferenciasID].IsNull; +end; + +procedure TReferenciasDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ReferenciasID].AsVariant := Null; +end; + +function TReferenciasDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_ReferenciasID_EMPRESA].AsInteger; +end; + +procedure TReferenciasDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_ReferenciasID_EMPRESA].AsInteger := aValue; +end; + +function TReferenciasDataTableRules.GetID_EMPRESAIsNull: boolean; +begin + result := DataTable.Fields[idx_ReferenciasID_EMPRESA].IsNull; +end; + +procedure TReferenciasDataTableRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ReferenciasID_EMPRESA].AsVariant := Null; +end; + +function TReferenciasDataTableRules.GetCODIGOValue: String; +begin + result := DataTable.Fields[idx_ReferenciasCODIGO].AsString; +end; + +procedure TReferenciasDataTableRules.SetCODIGOValue(const aValue: String); +begin + DataTable.Fields[idx_ReferenciasCODIGO].AsString := aValue; +end; + +function TReferenciasDataTableRules.GetCODIGOIsNull: boolean; +begin + result := DataTable.Fields[idx_ReferenciasCODIGO].IsNull; +end; + +procedure TReferenciasDataTableRules.SetCODIGOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ReferenciasCODIGO].AsVariant := Null; +end; + +function TReferenciasDataTableRules.GetVALORValue: String; +begin + result := DataTable.Fields[idx_ReferenciasVALOR].AsString; +end; + +procedure TReferenciasDataTableRules.SetVALORValue(const aValue: String); +begin + DataTable.Fields[idx_ReferenciasVALOR].AsString := aValue; +end; + +function TReferenciasDataTableRules.GetVALORIsNull: boolean; +begin + result := DataTable.Fields[idx_ReferenciasVALOR].IsNull; +end; + +procedure TReferenciasDataTableRules.SetVALORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ReferenciasVALOR].AsVariant := Null; +end; + +function TReferenciasDataTableRules.GetDESCRIPCIONValue: String; +begin + result := DataTable.Fields[idx_ReferenciasDESCRIPCION].AsString; +end; + +procedure TReferenciasDataTableRules.SetDESCRIPCIONValue(const aValue: String); +begin + DataTable.Fields[idx_ReferenciasDESCRIPCION].AsString := aValue; +end; + +function TReferenciasDataTableRules.GetDESCRIPCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_ReferenciasDESCRIPCION].IsNull; +end; + +procedure TReferenciasDataTableRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ReferenciasDESCRIPCION].AsVariant := Null; +end; + + +initialization + RegisterDataTableRules(RID_Referencias, TReferenciasDataTableRules); + +end. diff --git a/Source/Modulos/Referencias/Model/schReferenciasServer_Intf.dcu b/Source/Modulos/Referencias/Model/schReferenciasServer_Intf.dcu new file mode 100644 index 0000000..6f27a5e Binary files /dev/null and b/Source/Modulos/Referencias/Model/schReferenciasServer_Intf.dcu differ diff --git a/Source/Modulos/Referencias/Model/schReferenciasServer_Intf.pas b/Source/Modulos/Referencias/Model/schReferenciasServer_Intf.pas new file mode 100644 index 0000000..beb9f00 --- /dev/null +++ b/Source/Modulos/Referencias/Model/schReferenciasServer_Intf.pas @@ -0,0 +1,272 @@ +unit schReferenciasServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schReferenciasClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_ReferenciasDelta = '{C83AB0CC-2862-4F98-ADB2-1B7C04371D0E}'; + +type + { IReferenciasDelta } + IReferenciasDelta = interface(IReferencias) + ['{C83AB0CC-2862-4F98-ADB2-1B7C04371D0E}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldCODIGOValue : String; + function GetOldVALORValue : String; + function GetOldDESCRIPCIONValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldCODIGO : String read GetOldCODIGOValue; + property OldVALOR : String read GetOldVALORValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + end; + + { TReferenciasBusinessProcessorRules } + TReferenciasBusinessProcessorRules = class(TDABusinessProcessorRules, IReferencias, IReferenciasDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetCODIGOValue: String; virtual; + function GetCODIGOIsNull: Boolean; virtual; + function GetOldCODIGOValue: String; virtual; + function GetOldCODIGOIsNull: Boolean; virtual; + procedure SetCODIGOValue(const aValue: String); virtual; + procedure SetCODIGOIsNull(const aValue: Boolean); virtual; + function GetVALORValue: String; virtual; + function GetVALORIsNull: Boolean; virtual; + function GetOldVALORValue: String; virtual; + function GetOldVALORIsNull: Boolean; virtual; + procedure SetVALORValue(const aValue: String); virtual; + procedure SetVALORIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull : Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_EMPRESAIsNull : Boolean read GetOldID_EMPRESAIsNull; + property CODIGO : String read GetCODIGOValue write SetCODIGOValue; + property CODIGOIsNull : Boolean read GetCODIGOIsNull write SetCODIGOIsNull; + property OldCODIGO : String read GetOldCODIGOValue; + property OldCODIGOIsNull : Boolean read GetOldCODIGOIsNull; + property VALOR : String read GetVALORValue write SetVALORValue; + property VALORIsNull : Boolean read GetVALORIsNull write SetVALORIsNull; + property OldVALOR : String read GetOldVALORValue; + property OldVALORIsNull : Boolean read GetOldVALORIsNull; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull : Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldDESCRIPCIONIsNull : Boolean read GetOldDESCRIPCIONIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers, uDAInterfaces; + +{ TReferenciasBusinessProcessorRules } +constructor TReferenciasBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TReferenciasBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TReferenciasBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciasID]; +end; + +function TReferenciasBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciasID]); +end; + +function TReferenciasBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciasID]; +end; + +function TReferenciasBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciasID]); +end; + +procedure TReferenciasBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciasID] := aValue; +end; + +procedure TReferenciasBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciasID] := Null; +end; + +function TReferenciasBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciasID_EMPRESA]; +end; + +function TReferenciasBusinessProcessorRules.GetID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciasID_EMPRESA]); +end; + +function TReferenciasBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciasID_EMPRESA]; +end; + +function TReferenciasBusinessProcessorRules.GetOldID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciasID_EMPRESA]); +end; + +procedure TReferenciasBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciasID_EMPRESA] := aValue; +end; + +procedure TReferenciasBusinessProcessorRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciasID_EMPRESA] := Null; +end; + +function TReferenciasBusinessProcessorRules.GetCODIGOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciasCODIGO]; +end; + +function TReferenciasBusinessProcessorRules.GetCODIGOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciasCODIGO]); +end; + +function TReferenciasBusinessProcessorRules.GetOldCODIGOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciasCODIGO]; +end; + +function TReferenciasBusinessProcessorRules.GetOldCODIGOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciasCODIGO]); +end; + +procedure TReferenciasBusinessProcessorRules.SetCODIGOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciasCODIGO] := aValue; +end; + +procedure TReferenciasBusinessProcessorRules.SetCODIGOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciasCODIGO] := Null; +end; + +function TReferenciasBusinessProcessorRules.GetVALORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciasVALOR]; +end; + +function TReferenciasBusinessProcessorRules.GetVALORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciasVALOR]); +end; + +function TReferenciasBusinessProcessorRules.GetOldVALORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciasVALOR]; +end; + +function TReferenciasBusinessProcessorRules.GetOldVALORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciasVALOR]); +end; + +procedure TReferenciasBusinessProcessorRules.SetVALORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciasVALOR] := aValue; +end; + +procedure TReferenciasBusinessProcessorRules.SetVALORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciasVALOR] := Null; +end; + +function TReferenciasBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciasDESCRIPCION]; +end; + +function TReferenciasBusinessProcessorRules.GetDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciasDESCRIPCION]); +end; + +function TReferenciasBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciasDESCRIPCION]; +end; + +function TReferenciasBusinessProcessorRules.GetOldDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciasDESCRIPCION]); +end; + +procedure TReferenciasBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciasDESCRIPCION] := aValue; +end; + +procedure TReferenciasBusinessProcessorRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciasDESCRIPCION] := Null; +end; + + +initialization + RegisterBusinessProcessorRules(RID_ReferenciasDelta, TReferenciasBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Referencias/Model/uBizReferencias.dcu b/Source/Modulos/Referencias/Model/uBizReferencias.dcu new file mode 100644 index 0000000..0b50179 Binary files /dev/null and b/Source/Modulos/Referencias/Model/uBizReferencias.dcu differ diff --git a/Source/Modulos/Referencias/Model/uBizReferencias.pas b/Source/Modulos/Referencias/Model/uBizReferencias.pas new file mode 100644 index 0000000..3cc5efc --- /dev/null +++ b/Source/Modulos/Referencias/Model/uBizReferencias.pas @@ -0,0 +1,29 @@ +unit uBizReferencias; + +interface + +uses + uDAInterfaces, uDADataTable, schReferenciasClient_Intf; + +const + BIZ_CLIENT_Referencia = 'Client.Referencia'; + +type + IBizReferencia = interface(IReferencias) + ['{0DA71F0A-D64B-41A7-8453-B3FA0C41C697}'] + end; + + TBizReferencia = class(TReferenciasDataTableRules, IBizReferencia) + end; + +implementation + +{ TBizReferencia } + +initialization + RegisterDataTableRules(BIZ_CLIENT_REFERENCIA, TBizReferencia); + +finalization + +end. + diff --git a/Source/Modulos/Referencias/Plugin/Referencias_plugin.bdsproj b/Source/Modulos/Referencias/Plugin/Referencias_plugin.bdsproj new file mode 100644 index 0000000..46e11ed --- /dev/null +++ b/Source/Modulos/Referencias/Plugin/Referencias_plugin.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + Referencias_plugin.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Referencias/Plugin/Referencias_plugin.dcu b/Source/Modulos/Referencias/Plugin/Referencias_plugin.dcu new file mode 100644 index 0000000..8aab937 Binary files /dev/null and b/Source/Modulos/Referencias/Plugin/Referencias_plugin.dcu differ diff --git a/Source/Modulos/Referencias/Plugin/Referencias_plugin.dpk b/Source/Modulos/Referencias/Plugin/Referencias_plugin.dpk new file mode 100644 index 0000000..68625fe Binary files /dev/null and b/Source/Modulos/Referencias/Plugin/Referencias_plugin.dpk differ diff --git a/Source/Modulos/Referencias/Plugin/Referencias_plugin.dproj b/Source/Modulos/Referencias/Plugin/Referencias_plugin.dproj new file mode 100644 index 0000000..6e93a1c --- /dev/null +++ b/Source/Modulos/Referencias/Plugin/Referencias_plugin.dproj @@ -0,0 +1,541 @@ + + + + {82e36812-58c4-491b-b463-6b951e95da51} + Referencias_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Referencias_plugin.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Referencias_plugin.dpk + + + + + MainSource + + + + + +
PluginReferencias
+
+
+
+ + diff --git a/Source/Modulos/Referencias/Plugin/Referencias_plugin.rc b/Source/Modulos/Referencias/Plugin/Referencias_plugin.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Referencias/Plugin/Referencias_plugin.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Referencias/Plugin/Referencias_plugin.res b/Source/Modulos/Referencias/Plugin/Referencias_plugin.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Referencias/Plugin/Referencias_plugin.res differ diff --git a/Source/Modulos/Referencias/Plugin/uPluginReferencias.dcu b/Source/Modulos/Referencias/Plugin/uPluginReferencias.dcu new file mode 100644 index 0000000..49de8c8 Binary files /dev/null and b/Source/Modulos/Referencias/Plugin/uPluginReferencias.dcu differ diff --git a/Source/Modulos/Referencias/Plugin/uPluginReferencias.dfm b/Source/Modulos/Referencias/Plugin/uPluginReferencias.dfm new file mode 100644 index 0000000..f98d2d3 --- /dev/null +++ b/Source/Modulos/Referencias/Plugin/uPluginReferencias.dfm @@ -0,0 +1,84 @@ +object PluginReferencias: TPluginReferencias + OldCreateOrder = True + DefaultAction = actReferencias + Description = 'Referencias' + ModuleMenu = MainMenu + ModuleName = 'Referencias' + SmallImages = SmallImages + LargeImages = SmallImages + Author = 'Rodax Software' + Version = '1.0.0' + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = <> + Left = 232 + Top = 16 + end + object ModuleActionList: TActionList + Images = SmallImages + Left = 40 + Top = 72 + object actReferencias: TAction + Category = 'Referencias' + Caption = 'Referencias' + ImageIndex = 0 + OnExecute = actReferenciasExecute + OnUpdate = actReferenciasUpdate + end + end + object MainMenu: TMainMenu + Images = SmallImages + Left = 40 + Top = 16 + object Referencias: TMenuItem + Caption = 'Empresa' + SubMenuImages = SmallImages + object N1: TMenuItem + Tag = 18990 + Caption = '-' + end + object Referencias1: TMenuItem + Tag = 19001 + Action = actReferencias + SubMenuImages = SmallImages + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001A34944415478DA9D922177E3300CC7655636C3B20596CD702C86C7E6 + B141C342EF1BE42318167AECD81916BA6CD0638582852A0BCBA46CCDDAF46E77 + EFF4E2A7D8F2FF2759B6724FD9354BF30B09810EF5B16C43866FACAC7DA67DD5 + E364655A15020ECEDD42AD47C839EE4AE9EC5CE492EBB2CF9DFC676BCA83772D + 6C133CEFE14D395F066B0C032AA4346AD5B9905D20C49BD255350196D4BEF40D + C48A47657F44073D05CEDC9AFBF0585F63B61D1379AF7BF2B702C67D8509B0F6 + 4329E52D1DE8CE2CF557B6B93144CAF13C04767702CCED62B12433587FB99141 + 4E1C03C2B70011B72EC02E479843CEAD6E60D04BEED9C1825B47A54E6273CF15 + F73CE9095226D00B891000FB66C1733E2F71CCACCC08EA36043165755141D334 + 2CE6EEAFE429F0552F3468CD5E370CE05842F04E4FE2DFF6A05979CE04633524 + 15F08707024484E0F9EA36C880ACAE7A70DE87931D7B0190BCD0B1326F11E256 + 20FF0098C454D92324167A5320163B95FF47C0518EC02219F4E9D3AB01C780F4 + 3780910A46D167763E3FF508B95A59BA105F037E76038EC28FE6C9B58DCDEC3F + E273F115E07FEC1D6B02010E884AA1F00000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = <> + Left = 232 + Top = 80 + end +end diff --git a/Source/Modulos/Referencias/Plugin/uPluginReferencias.pas b/Source/Modulos/Referencias/Plugin/uPluginReferencias.pas new file mode 100644 index 0000000..e83ff6d --- /dev/null +++ b/Source/Modulos/Referencias/Plugin/uPluginReferencias.pas @@ -0,0 +1,80 @@ +unit uPluginReferencias; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCReferencias = interface(IInterface) + ['{FCFD32A3-68B9-4A15-B458-EB8B27324D22}'] + end; + + TPluginReferencias = class(TModuleController, IMCReferencias) + actReferencias: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + Referencias: TMenuItem; + Referencias1: TMenuItem; + N1: TMenuItem; + procedure actReferenciasExecute(Sender: TObject); + procedure actReferenciasUpdate(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, uFactuGES_App, + uReferenciasController, uBizReferencias, uReferenciasViewRegister; + +function GetModule : TModuleController; +begin + Result := TPluginReferencias.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +procedure TPluginReferencias.actReferenciasExecute(Sender: TObject); +var + AReferenciasController : IReferenciasController; + AReferencias : IBizReferencia; +begin + AReferenciasController := TReferenciasController.Create; + AReferencias := (AReferenciasController.BuscarTodos as IBizReferencia); + AReferenciasController.VerTodos(AReferencias); +end; + +procedure TPluginReferencias.actReferenciasUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := Assigned(AppFactuGES.EmpresaActiva); +end; + +constructor TPluginReferencias.Create(AOwner: TComponent); +begin + inherited; + uReferenciasViewRegister.RegisterViews; +end; + +destructor TPluginReferencias.Destroy; +begin + uReferenciasViewRegister.UnregisterViews; + inherited; +end; + +initialization + RegisterModuleClass(TPluginReferencias); + +finalization + UnRegisterModuleClass(TPluginReferencias); + +end. diff --git a/Source/Modulos/Referencias/Referencias_Group.groupproj b/Source/Modulos/Referencias/Referencias_Group.groupproj new file mode 100644 index 0000000..05bf85e --- /dev/null +++ b/Source/Modulos/Referencias/Referencias_Group.groupproj @@ -0,0 +1,124 @@ + + + {6fa7160e-0b4c-4f7c-9c55-08938cd225c4} + + + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Referencias/Servidor/srvReferencias_Impl.dcu b/Source/Modulos/Referencias/Servidor/srvReferencias_Impl.dcu new file mode 100644 index 0000000..21ca7ac Binary files /dev/null and b/Source/Modulos/Referencias/Servidor/srvReferencias_Impl.dcu differ diff --git a/Source/Modulos/Referencias/Servidor/srvReferencias_Impl.dfm b/Source/Modulos/Referencias/Servidor/srvReferencias_Impl.dfm new file mode 100644 index 0000000..aa26ca2 --- /dev/null +++ b/Source/Modulos/Referencias/Servidor/srvReferencias_Impl.dfm @@ -0,0 +1,118 @@ +object srvReferencias: TsrvReferencias + OldCreateOrder = True + OnCreate = DataAbstractServiceCreate + ServiceSchema = schReferencias + ServiceDataStreamer = Bin2DataStreamer + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + Height = 300 + Width = 300 + object schReferencias: TDASchema + ConnectionManager = dmServer.ConnectionManager + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'REFERENCIAS' + Name = 'IBX' + SQL = + 'SELECT '#10' ID, ID_EMPRESA, CODIGO, VALOR, DESCRIPCION'#10' FROM'#10' ' + + ' REFERENCIAS'#10' WHERE {Where}'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'CODIGO' + TableField = 'CODIGO' + end + item + DatasetField = 'VALOR' + TableField = 'VALOR' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end> + end> + Name = 'Referencias' + Fields = < + item + Name = 'ID' + DataType = datInteger + GeneratorName = 'GEN_REFERENCIAS_ID' + Required = True + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'CODIGO' + DataType = datString + Size = 50 + Required = True + end + item + Name = 'VALOR' + DataType = datString + Size = 255 + Required = True + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + IsPublic = False + Params = < + item + Name = 'VALOR' + Value = '' + end + item + Name = 'CODIGO' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'REFERENCIAS' + Name = 'IBX' + SQL = + 'UPDATE REFERENCIAS SET'#10' VALOR = :VALOR'#10'WHERE CODIGO = :CODIGO' + + #10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'ModificarValorReferencia' + end> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 40 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 40 + Top = 88 + end +end diff --git a/Source/Modulos/Referencias/Servidor/srvReferencias_Impl.pas b/Source/Modulos/Referencias/Servidor/srvReferencias_Impl.pas new file mode 100644 index 0000000..341c538 --- /dev/null +++ b/Source/Modulos/Referencias/Servidor/srvReferencias_Impl.pas @@ -0,0 +1,158 @@ +unit srvReferencias_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +{$I Remobjects.inc} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROXMLIntf, uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} FactuGES_Intf, uDADataStreamer, uDABin2DataStreamer, uDAClasses, uDAInterfaces; + +type + { TsrvReferencias } + TsrvReferencias = class(TDataAbstractService, IsrvReferencias) + Bin2DataStreamer: TDABin2DataStreamer; + schReferencias: TDASchema; + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; + var aConnectionName: string); + procedure DataAbstractServiceCreate(Sender: TObject); + private + public + { IsrvReferencias methods } + function DarNuevaReferencia(const NombreReferencia: String; + const EmpresaID: Integer = -1): String; + function IncrementarValorReferencia(const NombreReferencia: String; + const Valor: String; const EmpresaID: Integer = -1): Boolean; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, Variants, + uDataModuleServer, uROClasses, uReferenciasUtils; + +procedure Create_srvReferencias(out anInstance : IUnknown); +begin + anInstance := TsrvReferencias.Create(nil); +end; + +{ srvReferencias } +function TsrvReferencias.DarNuevaReferencia(const NombreReferencia: String; + const EmpresaID: Integer = -1): String; +var + ASchema : TDASchema; + AConn : IDAConnection; + dsData: IDADataset; + + AWhere : TDAWhereExpression; + AWhereExpr1: TDAWhereExpression; + AWhereExpr2: TDAWhereExpression; +begin + Result := ''; + + { Construir la expresin del Where a partir de los parmetros + que se reciban. + } + with TDAWhereBuilder.Create do + try + AWhereExpr1 := NewBinaryExpression(NewField('', 'CODIGO'), + NewConstant(NombreReferencia, datString), + dboEqual); + if (EmpresaID <> -1) then + begin + AWhereExpr2 := NewBinaryExpression(NewField('', 'ID_EMPRESA'), + NewConstant(EmpresaID, datInteger), + dboEqual); + + AWhere := NewBinaryExpression(AWhereExpr1, AWhereExpr2, dboAnd); + end + else + AWhere := AWhereExpr1; + finally + Free; + end; + + ASchema := schReferencias; + AConn := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionManager.GetDefaultConnectionName); + + try + try + dsData := ASchema.NewDataset(AConn, 'Referencias', ['VALOR'], '', '', False, True); + dsData.DynamicWhere.Expression := AWhere; + except + RaiseError('No existe la tabla REFERENCIAS'); + end; + + dsData.Active := True; + + if dsData.IsEmpty then + RaiseError('No existe la referencia ' + NombreReferencia + ' en la tabla REFERENCIAS.'); + + Result := dsData.FieldByName('VALOR').AsString; + finally + dsData := NIL; + end; +end; + +procedure TsrvReferencias.DataAbstractServiceBeforeAcquireConnection(aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +procedure TsrvReferencias.DataAbstractServiceCreate(Sender: TObject); +begin + //SessionManager := dmServer.SessionManager; +end; + +function TsrvReferencias.IncrementarValorReferencia(const NombreReferencia: String; + const Valor: String; const EmpresaID: Integer = -1): Boolean; +var + ASchema : TDASchema; + AConn : IDAConnection; + dsCommand: IDASQLCommand; +begin + + Result := False; + ASchema := schReferencias; + AConn := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionManager.GetDefaultConnectionName); + + try + try + dsCommand := ASchema.NewCommand(AConn, 'ModificarValorReferencia'); + with dsCommand do + begin + ParamByName('CODIGO').AsString := NombreReferencia; + ParamByName('VALOR').AsString := DarReferenciaSiguiente(Valor); + + if EmpresaID <> -1 then + dsCommand.SQL := dsCommand.SQL + ' AND ID_EMPRESA = ' + IntToStr(EmpresaID); + end; + dsCommand.Execute; + AConn.CommitTransaction; + Result := True; + except + RaiseError('Error al asignar la nueva referencia ' + Valor + ' en tablas'); + AConn.RollbackTransaction; + end; + finally + dsCommand := NIL; + end; +end; + +initialization + TROClassFactory.Create('srvReferencias', Create_srvReferencias, TsrvReferencias_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Referencias/Views/Referencias_view.bdsproj b/Source/Modulos/Referencias/Views/Referencias_view.bdsproj new file mode 100644 index 0000000..eb36e71 --- /dev/null +++ b/Source/Modulos/Referencias/Views/Referencias_view.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + Referencias_view.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Referencias/Views/Referencias_view.dcu b/Source/Modulos/Referencias/Views/Referencias_view.dcu new file mode 100644 index 0000000..a87ff6e Binary files /dev/null and b/Source/Modulos/Referencias/Views/Referencias_view.dcu differ diff --git a/Source/Modulos/Referencias/Views/Referencias_view.dpk b/Source/Modulos/Referencias/Views/Referencias_view.dpk new file mode 100644 index 0000000..51bdd98 Binary files /dev/null and b/Source/Modulos/Referencias/Views/Referencias_view.dpk differ diff --git a/Source/Modulos/Referencias/Views/Referencias_view.dproj b/Source/Modulos/Referencias/Views/Referencias_view.dproj new file mode 100644 index 0000000..f9af2a2 --- /dev/null +++ b/Source/Modulos/Referencias/Views/Referencias_view.dproj @@ -0,0 +1,543 @@ + + + + {e3d36a6f-7004-4c89-9f3d-f2d77e386d1b} + Referencias_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Referencias_view.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Referencias_view.dpk + + + + + MainSource + + + + + +
fEditorReferencias
+ TfEditorFormasPago +
+ +
+
+ + diff --git a/Source/Modulos/Referencias/Views/Referencias_view.rc b/Source/Modulos/Referencias/Views/Referencias_view.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Referencias/Views/Referencias_view.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Referencias/Views/Referencias_view.res b/Source/Modulos/Referencias/Views/Referencias_view.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Referencias/Views/Referencias_view.res differ diff --git a/Source/Modulos/Referencias/Views/uEditorReferencias.dcu b/Source/Modulos/Referencias/Views/uEditorReferencias.dcu new file mode 100644 index 0000000..93b9608 Binary files /dev/null and b/Source/Modulos/Referencias/Views/uEditorReferencias.dcu differ diff --git a/Source/Modulos/Referencias/Views/uEditorReferencias.dfm b/Source/Modulos/Referencias/Views/uEditorReferencias.dfm new file mode 100644 index 0000000..3cdda89 --- /dev/null +++ b/Source/Modulos/Referencias/Views/uEditorReferencias.dfm @@ -0,0 +1,145 @@ +object fEditorReferencias: TfEditorReferencias + Left = 453 + Top = 234 + BorderIcons = [biSystemMenu] + BorderStyle = bsSingle + Caption = 'Lista de referencias' + ClientHeight = 406 + ClientWidth = 466 + Color = clBtnFace + ParentFont = True + OldCreateOrder = False + Position = poScreenCenter + OnCloseQuery = FormCloseQuery + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object bAceptar: TButton + Left = 297 + Top = 373 + Width = 75 + Height = 23 + Action = actAceptar + Default = True + TabOrder = 1 + end + object bCancelar: TButton + Left = 382 + Top = 373 + Width = 75 + Height = 23 + Action = actCancelar + Cancel = True + TabOrder = 2 + end + object PageControl1: TPageControl + Left = 8 + Top = 8 + Width = 450 + Height = 356 + ActivePage = TabSheet1 + TabOrder = 0 + object TabSheet1: TTabSheet + Caption = 'Referencias' + object Label1: TLabel + Left = 6 + Top = 12 + Width = 149 + Height = 13 + Caption = 'Lista de referencias disponibles' + end + object ListaReferencias: TcxGrid + Left = 0 + Top = 0 + Width = 442 + Height = 328 + Align = alClient + TabOrder = 0 + LookAndFeel.Kind = lfOffice11 + LookAndFeel.NativeStyle = True + object ListaReferenciasView: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + FilterBox.Visible = fvNever + DataController.DataSource = dsReferencias + DataController.Filter.Options = [fcoCaseInsensitive] + DataController.KeyFieldNames = 'CODIGO' + DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoFocusTopRowAfterSorting, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.AlwaysShowEditor = True + OptionsBehavior.CellHints = True + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.BestFitMaxRecordCount = 20 + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsCustomize.ColumnGrouping = False + OptionsCustomize.ColumnMoving = False + OptionsCustomize.ColumnSorting = False + OptionsCustomize.DataRowSizing = True + OptionsData.CancelOnExit = False + OptionsData.Deleting = False + OptionsData.DeletingConfirmation = False + OptionsData.Inserting = False + OptionsSelection.UnselectFocusedRecordOnExit = False + OptionsView.CellEndEllipsis = True + OptionsView.CellAutoHeight = True + OptionsView.ColumnAutoWidth = True + OptionsView.GridLineColor = cl3DLight + OptionsView.GroupByBox = False + OptionsView.HeaderEndEllipsis = True + OptionsView.Indicator = True + object ListaReferenciasViewCODIGO: TcxGridDBColumn + DataBinding.FieldName = 'CODIGO' + Visible = False + VisibleForCustomization = False + end + object ListaReferenciasViewDESCRIPCION: TcxGridDBColumn + Caption = 'Referencia' + DataBinding.FieldName = 'DESCRIPCION' + PropertiesClassName = 'TcxTextEditProperties' + Properties.ReadOnly = True + Options.Editing = False + Options.Focusing = False + SortIndex = 0 + SortOrder = soAscending + Width = 191 + end + object ListaReferenciasViewVALOR: TcxGridDBColumn + Caption = 'Valor' + DataBinding.FieldName = 'VALOR' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.OnValidate = ListaReferenciasViewVALORPropertiesValidate + HeaderAlignmentHorz = taRightJustify + Width = 48 + end + end + object ListaReferenciasLevel: TcxGridLevel + GridView = ListaReferenciasView + end + end + end + end + object ActionList1: TActionList + Left = 144 + Top = 16 + object actAceptar: TAction + Caption = 'A&ceptar' + OnExecute = actAceptarExecute + end + object actCancelar: TAction + Caption = '&Cancelar' + OnExecute = actCancelarExecute + end + object actCerrar: TAction + Caption = 'actCerrar' + OnExecute = actCerrarExecute + end + end + object dsReferencias: TDADataSource + Left = 168 + Top = 16 + end +end diff --git a/Source/Modulos/Referencias/Views/uEditorReferencias.pas b/Source/Modulos/Referencias/Views/uEditorReferencias.pas new file mode 100644 index 0000000..b976ff6 --- /dev/null +++ b/Source/Modulos/Referencias/Views/uEditorReferencias.pas @@ -0,0 +1,169 @@ +{ +=============================================================================== + Copyright () 2006. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: 22-05-2006 + Versin actual: 1.0.0 + Fecha versin actual: 22-05-2006 +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uEditorReferencias; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + uIEditorReferencias, uBizReferencias, uReferenciasController, DB, uDADataTable, + ActnList, Grids, DBGrids, StdCtrls, ComCtrls, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, cxTextEdit, uDAInterfaces; + +type + TfEditorReferencias = class(TForm, IEditorReferencias) + ActionList1: TActionList; + dsReferencias: TDADataSource; + actAceptar: TAction; + actCancelar: TAction; + bAceptar: TButton; + bCancelar: TButton; + actCerrar: TAction; + PageControl1: TPageControl; + TabSheet1: TTabSheet; + Label1: TLabel; + ListaReferencias: TcxGrid; + ListaReferenciasView: TcxGridDBTableView; + ListaReferenciasViewCODIGO: TcxGridDBColumn; + ListaReferenciasViewDESCRIPCION: TcxGridDBColumn; + ListaReferenciasViewVALOR: TcxGridDBColumn; + ListaReferenciasLevel: TcxGridLevel; + procedure FormShow(Sender: TObject); + + procedure actAceptarExecute(Sender: TObject); + procedure actCancelarExecute(Sender: TObject); + procedure actCerrarExecute(Sender: TObject); + procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); + procedure ListaReferenciasViewVALORPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + + protected + FReferencias: IBizReferencia; + FController: IReferenciasController; + function GetReferencias: IBizReferencia; + procedure SetReferencias(const Value: IBizReferencia); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + property Referencias: IBizReferencia read GetReferencias write SetReferencias; + end; + + +implementation +{$R *.dfm} + +{ TfEditorReferencias } + +uses + uDialogUtils, Dialogs, uDataTableUtils; + +function TfEditorReferencias.GetReferencias: IBizReferencia; +begin + Result := FReferencias; +end; + +procedure TfEditorReferencias.ListaReferenciasViewVALORPropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin +// Showmessage('Validar'); No es necesario porque si no pone nmero lo pone el servidor +end; + +procedure TfEditorReferencias.SetReferencias(const Value: IBizReferencia); +begin + FReferencias := Value; + dsReferencias.DataTable := FReferencias.DataTable; + dsReferencias.DataTable.Open; +end; + +constructor TfEditorReferencias.Create(AOwner: TComponent); +begin + inherited; + FController := TReferenciasController.Create; +end; + +destructor TfEditorReferencias.Destroy; +begin + FReferencias := NIL; + FController := NIL; + inherited; +end; + +procedure TfEditorReferencias.actAceptarExecute(Sender: TObject); +begin + try + if (Referencias.DataTable.State in dsEditModes) then + Referencias.DataTable.Post; + Referencias.DataTable.ApplyUpdates; + except + on E : Exception do begin + Referencias.DataTable.CancelUpdates; + ShowErrorMessage('Error al guardar cambios', 'Se ha producido un error grave', E); + Exit; + end; + end; + actCerrar.Execute; +end; + +procedure TfEditorReferencias.actCancelarExecute(Sender: TObject); +begin + Referencias.DataTable.CancelUpdates; + actCerrar.Execute; +end; + +procedure TfEditorReferencias.actCerrarExecute(Sender: TObject); +begin + Close; +end; + +procedure TfEditorReferencias.FormCloseQuery(Sender: TObject; var CanClose: Boolean); +var + Respuesta: Integer; +begin + Respuesta := IDNO; + + if (DataTableModified(dsReferencias.DataTable)) then + Respuesta := ShowConfirmMessage('Atencin', 'Se han producido cambios', + 'Desea guardar los cambios que se han producido antes de cerrar?', + [TDlgButton_SI, TDlgButton_NO, TDlgButton_CANCELAR]); + + case Respuesta of + IDYES : actAceptar.Execute; + IDNO : actCancelar.Execute; + else CanClose := False; + end; +end; + +procedure TfEditorReferencias.FormShow(Sender: TObject); +begin + if not FReferencias.DataTable.Active then + FReferencias.DataTable.Active := true; + + ListaReferencias.SetFocus; + ListaReferenciasView.DataController.GotoFirst; +end; + +end. diff --git a/Source/Modulos/Referencias/Views/uReferenciasViewRegister.dcu b/Source/Modulos/Referencias/Views/uReferenciasViewRegister.dcu new file mode 100644 index 0000000..e65ae00 Binary files /dev/null and b/Source/Modulos/Referencias/Views/uReferenciasViewRegister.dcu differ diff --git a/Source/Modulos/Referencias/Views/uReferenciasViewRegister.pas b/Source/Modulos/Referencias/Views/uReferenciasViewRegister.pas new file mode 100644 index 0000000..841a21a --- /dev/null +++ b/Source/Modulos/Referencias/Views/uReferenciasViewRegister.pas @@ -0,0 +1,23 @@ +unit uReferenciasViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorReferencias; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorReferencias, 'EditorReferencias'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorReferencias); +end; + +end. diff --git a/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/AlbCli_FacCli_relation.bdsproj b/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/AlbCli_FacCli_relation.bdsproj new file mode 100644 index 0000000..cdde74a --- /dev/null +++ b/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/AlbCli_FacCli_relation.bdsproj @@ -0,0 +1,529 @@ + + + + + + + + + + + + AlbCli_FacCli_relation.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + $00000000 + + + Borland Sample Components + Delphi 1.0 Compatibility Components + Borland MyBase DataAccess Components + TeeChart Components + Borland SimpleDataset Component (DBX) + ExpressBars extended items by Developer Express Inc. + ExpressBars by Developer Express Inc. + ExpressScheduler 2 by Developer Express Inc. + ExpressVerticalGrid by Developer Express Inc. + ExpressBars DBNavigator by Developer Express Inc. + ExpressBars extended DB items by Developer Express Inc. + ExpressSideBar by Developer Express Inc. + JVCL Band Objects + JVCL Non-Visual Components + JVCL Encryption and Compression Components + JVCL Dialog Components + JVCL Docking Components + JVCL DotNet Controls + JVCL EDI Components Designtime Package + JVCL HMI Controls design time unit + JVCL Interpreter Components + JVCL Jans Components + JVCL Managed Threads + JVCL Multimedia and Image Components + JVCL Network Components + JVCL Page Style Components + JVCL Plugin Components + JVCL Print Preview Components + JVCL Runtime Design Components + JVCL Time Framework + JVCL Unified Interbase Components + JVCL Validators and Error Provider Components + SMImport suite: data importing into dataset. Scalabium/Mike Shkolnik, 2000-2005 + SMExport suite: data export from dataset. Written by Mike Shkolnik/Scalabium, 1998-2004. + Intraweb 8.0 Design Package for Borland Development Studio 2006 + Internet Explorer Components + + + + diff --git a/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/AlbCli_FacCli_relation.dcu b/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/AlbCli_FacCli_relation.dcu new file mode 100644 index 0000000..16a127d Binary files /dev/null and b/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/AlbCli_FacCli_relation.dcu differ diff --git a/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/AlbCli_FacCli_relation.dpk b/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/AlbCli_FacCli_relation.dpk new file mode 100644 index 0000000..ae8e2d7 --- /dev/null +++ b/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/AlbCli_FacCli_relation.dpk @@ -0,0 +1,37 @@ +package AlbCli_FacCli_relation; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + FacturasCliente_model, + AlbaranesCliente_controller, + AlbaranesCliente_model, + FacturasCliente_controller; + +contains + uGenerarFacturasCliAlbCliUtils in 'uGenerarFacturasCliAlbCliUtils.pas' {dmGenerarFacturasCliAlbCli}, + uGenerarAlbaranesCliFacCliUtils in 'uGenerarAlbaranesCliFacCliUtils.pas' {dmGenerarAlbaranesCli}; + +end. diff --git a/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/AlbCli_FacCli_relation.dproj b/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/AlbCli_FacCli_relation.dproj new file mode 100644 index 0000000..801f214 --- /dev/null +++ b/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/AlbCli_FacCli_relation.dproj @@ -0,0 +1,580 @@ + + + {69494a8c-0a35-41ea-b8ec-ea790bfc0662} + AlbCli_FacCli_relation.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\AlbCli_FacCli_relation.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 + Borland Sample Components + Delphi 1.0 Compatibility Components + Borland MyBase DataAccess Components + TeeChart Components + Borland SimpleDataset Component (DBX) + ExpressBars extended items by Developer Express Inc. + ExpressBars by Developer Express Inc. + ExpressScheduler 2 by Developer Express Inc. + ExpressVerticalGrid by Developer Express Inc. + ExpressBars DBNavigator by Developer Express Inc. + ExpressBars extended DB items by Developer Express Inc. + ExpressSideBar by Developer Express Inc. + JVCL Band Objects + JVCL Non-Visual Components + JVCL Encryption and Compression Components + JVCL Dialog Components + JVCL Docking Components + JVCL DotNet Controls + JVCL EDI Components Designtime Package + JVCL HMI Controls design time unit + JVCL Interpreter Components + JVCL Jans Components + JVCL Managed Threads + JVCL Multimedia and Image Components + JVCL Network Components + JVCL Page Style Components + JVCL Plugin Components + JVCL Print Preview Components + JVCL Runtime Design Components + JVCL Time Framework + JVCL Unified Interbase Components + JVCL Validators and Error Provider Components + SMImport suite: data importing into dataset. Scalabium/Mike Shkolnik, 2000-2005 + SMExport suite: data export from dataset. Written by Mike Shkolnik/Scalabium, 1998-2004. + Intraweb 8.0 Design Package for Borland Development Studio 2006 + Internet Explorer Components + AlbCli_FacCli_relation.dpk + + + + + MainSource + + + + + + +
dmGenerarAlbaranesCli
+
+ +
dmGenerarFacturasCliAlbCli
+
+
+
+ diff --git a/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/AlbCli_FacCli_relation.rc b/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/AlbCli_FacCli_relation.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/AlbCli_FacCli_relation.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/AlbCli_FacCli_relation.res b/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/AlbCli_FacCli_relation.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/AlbCli_FacCli_relation.res differ diff --git a/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/uGenerarAlbaranesCliFacCliUtils.dcu b/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/uGenerarAlbaranesCliFacCliUtils.dcu new file mode 100644 index 0000000..0e3ea8d Binary files /dev/null and b/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/uGenerarAlbaranesCliFacCliUtils.dcu differ diff --git a/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/uGenerarAlbaranesCliFacCliUtils.dfm b/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/uGenerarAlbaranesCliFacCliUtils.dfm new file mode 100644 index 0000000..8235128 --- /dev/null +++ b/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/uGenerarAlbaranesCliFacCliUtils.dfm @@ -0,0 +1,5 @@ +object dmGenerarAlbaranesCli: TdmGenerarAlbaranesCli + OldCreateOrder = False + Height = 176 + Width = 254 +end diff --git a/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/uGenerarAlbaranesCliFacCliUtils.pas b/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/uGenerarAlbaranesCliFacCliUtils.pas new file mode 100644 index 0000000..d896d90 --- /dev/null +++ b/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/uGenerarAlbaranesCliFacCliUtils.pas @@ -0,0 +1,95 @@ +unit uGenerarAlbaranesCliFacCliUtils; + +interface + +uses + Windows, SysUtils, Classes, uBizFacturasCliente, pngimage, JSDialog; + +type + TdmGenerarAlbaranesCli = class(TDataModule) + end; + + function GenerarAlbaranCli(AFactura : IBizFacturaCliente) : Boolean; overload; + +implementation + +{$R *.dfm} + +uses + uDialogUtils, uDataTableUtils, + uBizAlbaranesCliente, + uAlbaranesClienteController, + uFacturasClienteController; + +var + dmGenerarAlbaranesCli: TdmGenerarAlbaranesCli; + AFacturasClienteController : IFacturasClienteController; + AAlbaranesClienteController : IAlbaranesClienteController; + +procedure Inicializar; +begin + dmGenerarAlbaranesCli := TdmGenerarAlbaranesCli.Create(nil); + AFacturasClienteController := TFacturasClienteController.Create; + AAlbaranesClienteController := TAlbaranesClienteController.Create; +end; + +procedure Finalizar; +begin + FreeAndNIL(dmGenerarAlbaranesCli); + AFacturasClienteController := nil; + AAlbaranesClienteController := nil; +end; + +function GenerarAlbaranCli(AFactura : IBizFacturaCliente) : Boolean; overload; +var + AAlbaranNuevo : IBizAlbaranCliente; +begin + Result := False; + + if not Assigned(AAlbaranesClienteController) then + Inicializar; + + if not Assigned(AFactura) then + raise Exception.Create('Factura de cliente no asignada (GenerarAlbaranCli)'); + + if not AFactura.DataTable.Active then + AFactura.DataTable.Active := True; + + try + AAlbaranNuevo := AAlbaranesClienteController.Nuevo; + + with AAlbaranNuevo do + begin + TIPO := CTE_TIPO_ALBARAN_DEV; + ID_CLIENTE := AFactura.ID_CLIENTE; + CALLE := AFactura.CALLE; + CODIGO_POSTAL := AFactura.CODIGO_POSTAL; + POBLACION := AFactura.POBLACION; + PROVINCIA := AFactura.PROVINCIA; + // AAlbaran.PERSONA_CONTACTO := AFactura.PERSONA_CONTACTO; + // AAlbaran.TELEFONO := AFactura.TELEFONO; + IMPORTE_NETO := AFactura.IMPORTE_NETO; + IMPORTE_PORTE := AFactura.IMPORTE_PORTE; + DESCUENTO := AFactura.DESCUENTO; + IMPORTE_DESCUENTO := AFactura.IMPORTE_DESCUENTO; + BASE_IMPONIBLE := AFactura.BASE_IMPONIBLE; + IVA := AFactura.IVA; + IMPORTE_IVA := AFactura.IMPORTE_IVA; + IMPORTE_TOTAL := AFactura.IMPORTE_TOTAL; + // AAlbaran.DataTable.FieldByName(fld_AlbaranesProveedorOBSERVACIONES).AsVariant := AFactura.DataTable.FieldByName(fld_PedidosProveedorOBSERVACIONES).AsVariant; + ID_FORMA_PAGO := AFactura.ID_FORMA_PAGO; + ID_FACTURA := AFactura.ID; + end; + + DuplicarRegistros(AFactura.Detalles.DataTable, AAlbaranNuevo.Detalles.DataTable, mdrTodos); + + //Sustituir por if de guardar + if AAlbaranesClienteController.Guardar(AAlbaranNuevo) then + ShowInfoMessage('La orden de devolucin se ha dado de alta con el cdigo ' + AAlbaranNuevo.REFERENCIA); + + finally + AAlbaranNuevo := Nil; + end; +end; + +end. diff --git a/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/uGenerarFacturasCliAlbCliUtils.dcu b/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/uGenerarFacturasCliAlbCliUtils.dcu new file mode 100644 index 0000000..de0f195 Binary files /dev/null and b/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/uGenerarFacturasCliAlbCliUtils.dcu differ diff --git a/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/uGenerarFacturasCliAlbCliUtils.dfm b/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/uGenerarFacturasCliAlbCliUtils.dfm new file mode 100644 index 0000000..e110b86 --- /dev/null +++ b/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/uGenerarFacturasCliAlbCliUtils.dfm @@ -0,0 +1,311 @@ +object dmGenerarFacturasCliAlbCli: TdmGenerarFacturasCliAlbCli + OldCreateOrder = False + Height = 176 + Width = 254 + object JsListaFacturasGeneradas: TJSDialog + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Se han generado las facturas...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Continuar' + Value = 200 + Cancel = True + end> + ButtonBar.Buttons = [] + ButtonBar.Cancel = cbOK + ButtonBar.UseCancel = False + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 72 + Top = 16 + end +end diff --git a/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/uGenerarFacturasCliAlbCliUtils.pas b/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/uGenerarFacturasCliAlbCliUtils.pas new file mode 100644 index 0000000..4404415 --- /dev/null +++ b/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/uGenerarFacturasCliAlbCliUtils.pas @@ -0,0 +1,452 @@ +unit uGenerarFacturasCliAlbCliUtils; + +interface + +uses + Windows, SysUtils, Classes, uBizAlbaranesCliente, uBizFacturasCliente, pngimage, JSDialog; + +type + TdmGenerarFacturasCliAlbCli = class(TDataModule) + JsListaFacturasGeneradas: TJSDialog; + end; + + function GenerarFacturaCliAlb(const IDAlbaran : Integer; const CopiarDetalles: Boolean = True) : Boolean; overload; + function GenerarFacturaCliAlb(AAlbaran : IBizAlbaranCliente; const CopiarDetalles: Boolean = True) : Boolean; overload; + function GenerarFacturaCliAlb : Boolean; overload; + + function GenerarFacturas(AFacturas : IBizFacturaCliente; AListaAlbaranes : IBizAlbaranCliente; const CopiarDetalles: Boolean = True): Boolean; + +implementation + +{$R *.dfm} + +uses + DB, uDialogUtils, uDADataTable, uControllerDetallesBase, + + uBizDetallesFacturaCliente, uBizDetallesAlbaranCliente, + uAlbaranesClienteController, uDetallesFacturaClienteController, + uFacturasClienteController, schFacturasClienteClient_Intf, schAlbaranesClienteClient_Intf; + +// , +// , uProveedoresController, +// , uControllerDetallesBase, + + +// , uBizContactos, , +// ; + +var + dmGenerarFacturasCliAlbCli: TdmGenerarFacturasCliAlbCli; + AFacturasClienteController : IFacturasClienteController; + AAlbaranesClienteController : IAlbaranesClienteController; + ADetallesAlbaranesClienteController : IDetallesFacturaClienteController; +// AProveedoresController : IProveedoresController; + +{ Mtodos auxiliares } +{procedure CopiarPedidoAAlbaran(AAlbaran: IBizPedidoCliente; + AAlbaran : IBizAlbaranProveedor); +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado (CopiarPedidoAAlbaran)'); + + if not Assigned(AAlbaran) then + raise Exception.Create ('Pedido no asignado (CopiarPedidoAAlbaran)'); + + if not AAlbaran.DataTable.Active then + AAlbaran.DataTable.Active := True; + + // El albarn tiene que venir ya abierto y posicionado donde hay que copiar + AAlbaran.ID_CLIENTE := AAlbaran.ID_CLIENTE; + AAlbaran.ID_PEDIDO := AAlbaran.ID; + AAlbaran.CALLE := AAlbaran.CALLE; + AAlbaran.CODIGO_POSTAL := AAlbaran.CODIGO_POSTAL; + AAlbaran.POBLACION := AAlbaran.POBLACION; + AAlbaran.PROVINCIA := AAlbaran.PROVINCIA; + AAlbaran.PERSONA_CONTACTO := AAlbaran.PERSONA_CONTACTO; + AAlbaran.TELEFONO := AAlbaran.TELEFONO; + AAlbaran.IMPORTE_NETO := AAlbaran.IMPORTE_NETO; + AAlbaran.IMPORTE_PORTE := AAlbaran.IMPORTE_PORTE; + AAlbaran.DESCUENTO := AAlbaran.DESCUENTO; + AAlbaran.IMPORTE_DESCUENTO := AAlbaran.IMPORTE_DESCUENTO; + AAlbaran.BASE_IMPONIBLE := AAlbaran.BASE_IMPONIBLE; + AAlbaran.IVA := AAlbaran.IVA; + AAlbaran.IMPORTE_IVA := AAlbaran.IMPORTE_IVA; + AAlbaran.IMPORTE_TOTAL := AAlbaran.IMPORTE_TOTAL; + AAlbaran.DataTable.FieldByName(fld_AlbaranesClienteOBSERVACIONES).AsVariant := AAlbaran.DataTable.FieldByName(fld_PedidosClienteOBSERVACIONES).AsVariant; + AAlbaran.ID_FORMA_PAGO := AAlbaran.ID_FORMA_PAGO; +end; + +procedure CopiarArticulosPendAAlbaran( + AAlbaran: IBizPedidoCliente; + AAlbaran: IBizAlbaranProveedor; + AArticulosPendientes: IBizPedidoClienteArticulosPend); +var + i : integer; + ADetalles : IBizDetallesFacturaClieedor; + ADetallesController : IDetallesFacturaClieedorController; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado (CopiarArticulosPendAAlbaran)'); + + if not Assigned(AAlbaran) then + raise Exception.Create ('Pedido no asignado (CopiarArticulosPendAAlbaran)'); + + if not Assigned(AArticulosPendientes) then + raise Exception.Create ('Artculos pendientes no asignado (CopiarArticulosPendAAlbaran)'); + + if not AArticulosPendientes.DataTable.Active then + AArticulosPendientes.DataTable.Active := True; + + // El albarn tiene que venir ya abierto y posicionado donde hay que copiar + + ADetalles := AAlbaran.Detalles; + ADetallesController := TDetallesFacturaClieedorController.Create; + try + //OJO IMPORTANTE + //Siempre que vayamos a trabajar con los detalles debemos hacer un beginupdate de los mismos y un endupdate para + //obligarle siempre a recalcular los detalles una sola vez + ADetallesController.BeginUpdate(ADetalles); + + AArticulosPendientes.DataTable.First; + for i := 0 to AArticulosPendientes.DataTable.RecordCount - 1 do + begin + AAlbaran.Detalles.First; + if (AAlbaran.Detalles.Locate('ID_ARTICULO', AArticulosPendientes.ID_ARTICULO, [])) then + if (AArticulosPendientes.CANTIDAD_PENDIENTE > 0) then + begin + ADetallesController.Add(ADetalles, TIPO_DETALLE_CONCEPTO); + ADetalles.Edit; + ADetalles.REFERENCIA := AAlbaran.Detalles.REFERENCIA; + ADetalles.ID_ARTICULO := AAlbaran.Detalles.ID_ARTICULO; + ADetalles.CONCEPTO := AAlbaran.Detalles.CONCEPTO; + ADetalles.CANTIDAD := AArticulosPendientes.CANTIDAD_PENDIENTE; + ADetalles.IMPORTE_UNIDAD := AAlbaran.Detalles.IMPORTE_UNIDAD; + ADetalles.IMPORTE_TOTAL := AAlbaran.Detalles.IMPORTE_TOTAL; + ADetalles.DESCUENTO := AAlbaran.Detalles.DESCUENTO; + ADetalles.IMPORTE_PORTE := AAlbaran.Detalles.IMPORTE_PORTE; + ADetalles.VISIBLE := AAlbaran.Detalles.VISIBLE; + ADetalles.REFERENCIA_PROVEEDOR := AAlbaran.Detalles.REFERENCIA_PROVEEDOR; + ADetalles.Post; + AArticulosPendientes.Next; + end; + end; + finally + ADetallesController.EndUpdate(ADetalles); + ADetallesController := NIL; + end; +end; } + +procedure CopiarArticulosAlbaran(AOrigen: IBizDetallesAlbaranCliente; + ADestino : IBizDetallesFacturaCliente); +var + i : integer; + ADetallesController : IDetallesFacturaClienteController; +begin + if not Assigned(AOrigen) then + raise Exception.Create ('Origen no asignado (CopiarArticulosAlbaran)'); + + if not Assigned(ADestino) then + raise Exception.Create ('Destino no asignado (CopiarArticulosAlbaran)'); + + if not AOrigen.DataTable.Active then + AOrigen.DataTable.Active := True; + + if not ADestino.DataTable.Active then + ADestino.DataTable.Active := True; + + ADetallesController := TDetallesFacturaClienteController.Create; + try + //OJO IMPORTANTE + //Siempre que vayamos a trabajar con los detalles debemos hacer un beginupdate de los mismos y un endupdate para + //obligarle siempre a recalcular los detalles una sola vez + ADetallesController.BeginUpdate(ADestino); + + AOrigen.DataTable.First; + for i := 0 to AOrigen.DataTable.RecordCount - 1 do + begin + ADetallesController.Add(ADestino, TIPO_DETALLE_CONCEPTO); + ADestino.Edit; +// ADestino.REFERENCIA := AOrigen.REFERENCIA; + if AOrigen.ID_ARTICULO > 0 then + ADestino.ID_ARTICULO := AOrigen.ID_ARTICULO; + ADestino.CONCEPTO := AOrigen.CONCEPTO; + ADestino.CANTIDAD := AOrigen.CANTIDAD; + ADestino.IMPORTE_UNIDAD := AOrigen.IMPORTE_UNIDAD; + ADestino.IMPORTE_TOTAL := AOrigen.IMPORTE_TOTAL; + ADestino.DESCUENTO := AOrigen.DESCUENTO; + ADestino.IMPORTE_PORTE := AOrigen.IMPORTE_PORTE; + ADestino.VISIBLE := AOrigen.VISIBLE; +// ADestino.REFERENCIA_PROVEEDOR := AOrigen.REFERENCIA_PROVEEDOR; + ADestino.Post; + AOrigen.Next; + end; + finally + ADetallesController.EndUpdate(ADestino); + ADetallesController := NIL; + end; +end; + +procedure Inicializar; +begin + dmGenerarFacturasCliAlbCli := TdmGenerarFacturasCliAlbCli.Create(nil); + AFacturasClienteController := TFacturasClienteController.Create; + AAlbaranesClienteController := TAlbaranesClienteController.Create; + ADetallesAlbaranesClienteController := TDetallesFacturaClienteController.Create; +// AProveedoresController := TProveedoresController.Create; +end; + +procedure Finalizar; +begin + FreeAndNIL(dmGenerarFacturasCliAlbCli); + AFacturasClienteController := nil; + AAlbaranesClienteController := nil; + ADetallesAlbaranesClienteController := nil; +// AProveedoresController := nil; +end; + + +function GenerarFacturaCliAlb(const IDAlbaran : Integer; const CopiarDetalles: Boolean = True) : Boolean; overload; +var + AAlbaran : IBizAlbaranCliente; +begin + Result := False; + try + if not Assigned(AAlbaranesClienteController) then + Inicializar; + + AAlbaran := AAlbaranesClienteController.Buscar(IDAlbaran); + if Assigned(AAlbaran) then + begin + if (ShowConfirmMessage('Generar factura', Format('Desea copiar todos los conceptos del albaran seleccionados a su factura correspondiente?', [])) = IDYES) then + Result := GenerarFacturaCliAlb(AAlbaran) + else + Result := GenerarFacturaCliAlb(AAlbaran, False); + end; + + if Assigned(AAlbaranesClienteController) then + Finalizar; + + finally + AAlbaran := NIL; + end; +end; + +function GenerarFacturaCliAlb(AAlbaran : IBizAlbaranCliente; const CopiarDetalles: Boolean = True) : Boolean; overload; +var + AFacturasNuevas : IBizFacturaCliente; + i: Integer; +begin + Result := False; + + if not Assigned(AAlbaran) then + raise Exception.Create('Albarn de proveedor no asignado (GenerarFacturaCliAlb)'); + + if not AAlbaran.DataTable.Active then + AAlbaran.DataTable.Active := True; + + if not Assigned(AAlbaranesClienteController) then + Inicializar; + + try + AFacturasNuevas := AFacturasClienteController.Nuevo(False); + if GenerarFacturas(AFacturasNuevas, AAlbaran, CopiarDetalles) then + begin + if AFacturasNuevas.DataTable.RecordCount = 1 then + begin + if AFacturasNuevas.TIPO = CTE_TIPO_FACTURA then + ShowInfoMessage('La factura se ha dado de alta con el cdigo ' + AFacturasNuevas.REFERENCIA) + else + ShowInfoMessage('El abono se ha dado de alta con el cdigo ' + AFacturasNuevas.REFERENCIA); + end + else begin + with dmGenerarFacturasCliAlbCli.JsListaFacturasGeneradas.Content do + begin + Clear; + AFacturasNuevas.DataTable.Last; + for i := 0 to AFacturasNuevas.DataTable.RecordCount - 1 do + begin + if Length(AFacturasNuevas.REFERENCIA) > 0 then + Add(AFacturasNuevas.REFERENCIA + ': ' + AFacturasNuevas.NOMBRE); + AFacturasNuevas.DataTable.Prior; + end; + end; + dmGenerarFacturasCliAlbCli.JsListaFacturasGeneradas.Execute; + end; + + Result := True; + end; + + finally + AFacturasNuevas := NIL; + if Assigned(AAlbaranesClienteController) then + Finalizar; + end; +end; + +function GenerarFacturaCliAlb : Boolean; overload; +var + AAlbaranes : IBizAlbaranCliente; +begin + Result := False; + try + if not Assigned(AAlbaranesClienteController) then + Inicializar; + + AAlbaranes := AAlbaranesClienteController.ElegirAlbaranes(AAlbaranesClienteController.BuscarSinFacturar, + 'Elija el albarn o albaranes de cliente que desea utilizar para dar de alta la factura.' + + #10#13 + 'Si elige albaranes de clientes diferentes se dar de alta una factura por cada uno de ellos.' , True); + + if Assigned(AAlbaranes) then + begin + if (ShowConfirmMessage('Generar factura', Format('Desea copiar todos los conceptos de/los albaran/es seleccionados a sus facturas correspondientes?', [])) = IDYES) then + Result := GenerarFacturaCliAlb(AAlbaranes) + else + Result := GenerarFacturaCliAlb(AAlbaranes, False); + end; + + if Assigned(AAlbaranesClienteController) then + Finalizar; + finally + AAlbaranes := Nil; + end; +end; + +function GenerarFacturas(AFacturas : IBizFacturaCliente; AListaAlbaranes : IBizAlbaranCliente; const CopiarDetalles: Boolean = True): Boolean; +var + AFacturaActual : IBizFacturaCliente; + AAlbaranesController : IAlbaranesClienteController; + I: Integer; + bEnEdicion : Boolean; +begin + // ATENCIN!!! AFacturas tiene que estar vacio para no pisar facturas + // ya generadas. + if not Assigned(AFacturas) then + raise Exception.Create ('Factura no asignada (Anadir)'); + + if not Assigned(AListaAlbaranes) then + raise Exception.Create ('Albaranes no asignados (Anadir)'); + + if not AFacturas.DataTable.Active then + AFacturas.DataTable.Active := True; + + if not AListaAlbaranes.DataTable.Active then + AListaAlbaranes.DataTable.Active := True; + + AAlbaranesController := TAlbaranesClienteController.Create; + try + // Ordenar por fecha de albaran + AListaAlbaranes.DataTable.Sort([fld_AlbaranesClienteFECHA_ALBARAN], [uDADataTable.sdAscending]); + AListaAlbaranes.First; + for I := 0 to AListaAlbaranes.DataTable.RecordCount - 1 do + begin + AListaAlbaranes._Cliente := NIL; + AFacturaActual := NIL; + + // Busco si hay alguna factura ya hecha de ese cliente + AFacturas.DataTable.First; + if AFacturas.DataTable.Locate(fld_FacturasClienteID_CLIENTE, AListaAlbaranes.ID_CLIENTE, []) then + begin + AFacturaActual := AFacturas; + AFacturasClienteController.RecuperarCliente(AFacturaActual); + AFacturaActual.Cliente.DataTable.Active := True; + end + else begin + // No hay factura de ese cliente. Creo una nueva + AFacturasClienteController.Anadir(AFacturas); + AAlbaranesController.RecuperarCliente(AListaAlbaranes); + AListaAlbaranes.Cliente.DataTable.Active := True; + AFacturas.Cliente := AListaAlbaranes.Cliente; + + //Si el albaran es de tipo devolucin hacemos la factura de tipo abono + if (AListaAlbaranes.TIPO = CTE_TIPO_ALBARAN_DEV) then + begin + bEnEdicion := (AFacturas.DataTable.State in dsEditModes); + if not bEnEdicion then + AFacturas.Edit; + AFacturas.TIPO := CTE_TIPO_ABONO; + AFacturas.Post; + if bEnEdicion then + AFacturas.Edit; + end; + + AFacturaActual := AFacturas; + end; + + // Ya tengo la factura. Le aado los conceptos del albarn + AFacturaActual.Detalles.DataTable.Last; + //Se pone la referencia del pedido y el total y nos olvidamos de los detalles + if not CopiarDetalles then + begin + AFacturasClienteController.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_CONCEPTO); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := 'Albaran ' + AListaAlbaranes.REFERENCIA; + CANTIDAD := 1; + IMPORTE_UNIDAD := AListaAlbaranes.IMPORTE_TOTAL; //Tecsitel no utiliza el IVA en los pedidos por lo tanto el + //importe total es lo que queremos (IMPORTE_NETO+IMPORTE_PORTE) + Post; + end; + end + //Se copian los detalles del pedido a la factura + else + begin + // Aado el ttulo + AFacturasClienteController.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_TITULO); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := 'Albarn ' + AListaAlbaranes.REFERENCIA + ' del ' + DateToStr(AListaAlbaranes.FECHA_ALBARAN); + Post; + end; + // Aado el contenido del albarn + CopiarArticulosAlbaran(AListaAlbaranes.Detalles, AFacturaActual.Detalles); + + AFacturasClienteController.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_CONCEPTO); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := 'Porte del albarn'; + CANTIDAD := 1; + IMPORTE_UNIDAD := AListaAlbaranes.IMPORTE_PORTE; + Post; + end; + + // Aado el resumen + AFacturasClienteController.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_SUBTOTAL); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := 'Total del albarn ' + AListaAlbaranes.REFERENCIA; + Post; + end; + end; + + // Aado una lnea en blanco + AFacturasClienteController.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_CONCEPTO); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := ''; + Post; + end; + + // Guardo la factura que acabo de generar o editar + AFacturaActual.CalcularImporteTotal; + AFacturasClienteController.Guardar(AFacturaActual); + // Asocio la factura con el albarn + AListaAlbaranes.Edit; + AListaAlbaranes.ID_FACTURA := AFacturaActual.ID; + AListaAlbaranes.Post; + AAlbaranesController.Guardar(AListaAlbaranes); + + AListaAlbaranes.Next; + end; + Result := True; + finally + AAlbaranesController := NIL; +// HideHourglassCursor + end; +end; + +end. diff --git a/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/AlbProv_FacProv_relation.bdsproj b/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/AlbProv_FacProv_relation.bdsproj new file mode 100644 index 0000000..246cdd9 --- /dev/null +++ b/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/AlbProv_FacProv_relation.bdsproj @@ -0,0 +1,529 @@ + + + + + + + + + + + + AlbProv_FacProv_relation.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + $00000000 + + + Borland Sample Components + Delphi 1.0 Compatibility Components + Borland MyBase DataAccess Components + TeeChart Components + Borland SimpleDataset Component (DBX) + ExpressBars extended items by Developer Express Inc. + ExpressBars by Developer Express Inc. + ExpressScheduler 2 by Developer Express Inc. + ExpressVerticalGrid by Developer Express Inc. + ExpressBars DBNavigator by Developer Express Inc. + ExpressBars extended DB items by Developer Express Inc. + ExpressSideBar by Developer Express Inc. + JVCL Band Objects + JVCL Non-Visual Components + JVCL Encryption and Compression Components + JVCL Dialog Components + JVCL Docking Components + JVCL DotNet Controls + JVCL EDI Components Designtime Package + JVCL HMI Controls design time unit + JVCL Interpreter Components + JVCL Jans Components + JVCL Managed Threads + JVCL Multimedia and Image Components + JVCL Network Components + JVCL Page Style Components + JVCL Plugin Components + JVCL Print Preview Components + JVCL Runtime Design Components + JVCL Time Framework + JVCL Unified Interbase Components + JVCL Validators and Error Provider Components + SMImport suite: data importing into dataset. Scalabium/Mike Shkolnik, 2000-2005 + SMExport suite: data export from dataset. Written by Mike Shkolnik/Scalabium, 1998-2004. + Intraweb 8.0 Design Package for Borland Development Studio 2006 + Internet Explorer Components + + + + diff --git a/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/AlbProv_FacProv_relation.dcu b/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/AlbProv_FacProv_relation.dcu new file mode 100644 index 0000000..a779747 Binary files /dev/null and b/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/AlbProv_FacProv_relation.dcu differ diff --git a/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/AlbProv_FacProv_relation.dpk b/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/AlbProv_FacProv_relation.dpk new file mode 100644 index 0000000..12b2e67 --- /dev/null +++ b/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/AlbProv_FacProv_relation.dpk @@ -0,0 +1,39 @@ +package AlbProv_FacProv_relation; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + FacturasProveedor_controller, + FacturasProveedor_model, + AlbaranesProveedor_controller, + AlbaranesProveedor_model, + Contactos_controller, + Contactos_model; + +contains + uGenerarFacturasProvAlbProvUtils in 'uGenerarFacturasProvAlbProvUtils.pas' {dmGenerarFacturasProvAlbProv}, + uGenerarAlbaranesProvFacProvUtils in 'uGenerarAlbaranesProvFacProvUtils.pas' {dmGenerarAlbaranesProv}; + +end. diff --git a/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/AlbProv_FacProv_relation.dproj b/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/AlbProv_FacProv_relation.dproj new file mode 100644 index 0000000..23ad949 --- /dev/null +++ b/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/AlbProv_FacProv_relation.dproj @@ -0,0 +1,583 @@ + + + + {69494a8c-0a35-41ea-b8ec-ea790bfc0662} + AlbProv_FacProv_relation.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\AlbProv_FacProv_relation.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 + Borland Sample Components + Delphi 1.0 Compatibility Components + Borland MyBase DataAccess Components + TeeChart Components + Borland SimpleDataset Component (DBX) + ExpressBars extended items by Developer Express Inc. + ExpressBars by Developer Express Inc. + ExpressScheduler 2 by Developer Express Inc. + ExpressVerticalGrid by Developer Express Inc. + ExpressBars DBNavigator by Developer Express Inc. + ExpressBars extended DB items by Developer Express Inc. + ExpressSideBar by Developer Express Inc. + JVCL Band Objects + JVCL Non-Visual Components + JVCL Encryption and Compression Components + JVCL Dialog Components + JVCL Docking Components + JVCL DotNet Controls + JVCL EDI Components Designtime Package + JVCL HMI Controls design time unit + JVCL Interpreter Components + JVCL Jans Components + JVCL Managed Threads + JVCL Multimedia and Image Components + JVCL Network Components + JVCL Page Style Components + JVCL Plugin Components + JVCL Print Preview Components + JVCL Runtime Design Components + JVCL Time Framework + JVCL Unified Interbase Components + JVCL Validators and Error Provider Components + SMImport suite: data importing into dataset. Scalabium/Mike Shkolnik, 2000-2005 + SMExport suite: data export from dataset. Written by Mike Shkolnik/Scalabium, 1998-2004. + Intraweb 8.0 Design Package for Borland Development Studio 2006 + Internet Explorer Components + AlbProv_FacProv_relation.dpk + + + + + MainSource + + + + + + + + +
dmGenerarAlbaranesProv
+
+ +
dmGenerarFacturasProvAlbProv
+
+
+
+ diff --git a/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/AlbProv_FacProv_relation.rc b/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/AlbProv_FacProv_relation.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/AlbProv_FacProv_relation.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/AlbProv_FacProv_relation.res b/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/AlbProv_FacProv_relation.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/AlbProv_FacProv_relation.res differ diff --git a/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/uGenerarAlbaranesProvFacProvUtils.dcu b/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/uGenerarAlbaranesProvFacProvUtils.dcu new file mode 100644 index 0000000..e46dc2f Binary files /dev/null and b/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/uGenerarAlbaranesProvFacProvUtils.dcu differ diff --git a/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/uGenerarAlbaranesProvFacProvUtils.dfm b/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/uGenerarAlbaranesProvFacProvUtils.dfm new file mode 100644 index 0000000..5628735 --- /dev/null +++ b/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/uGenerarAlbaranesProvFacProvUtils.dfm @@ -0,0 +1,5 @@ +object dmGenerarAlbaranesProv: TdmGenerarAlbaranesProv + OldCreateOrder = False + Height = 176 + Width = 254 +end diff --git a/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/uGenerarAlbaranesProvFacProvUtils.pas b/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/uGenerarAlbaranesProvFacProvUtils.pas new file mode 100644 index 0000000..58eb022 --- /dev/null +++ b/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/uGenerarAlbaranesProvFacProvUtils.pas @@ -0,0 +1,96 @@ +unit uGenerarAlbaranesProvFacProvUtils; + +interface + +uses + Windows, SysUtils, Classes, uBizFacturasProveedor, pngimage, JSDialog; + +type + TdmGenerarAlbaranesProv = class(TDataModule) + end; + + function GenerarAlbaranProv(AFactura : IBizFacturaProveedor) : Boolean; overload; + +implementation + +{$R *.dfm} + +uses + uDialogUtils, uDataTableUtils, + uBizAlbaranesProveedor, + uFacturasProveedorController, + uAlbaranesProveedorController; + +var + dmGenerarAlbaranesProv: TdmGenerarAlbaranesProv; + AAlbaranesProveedorController : IAlbaranesProveedorController; + AFacturasProveedorController : IFacturasProveedorController; + +procedure Inicializar; +begin + dmGenerarAlbaranesProv := TdmGenerarAlbaranesProv.Create(nil); + AAlbaranesProveedorController := TAlbaranesProveedorController.Create; + AFacturasProveedorController := TFacturasProveedorController.Create; +end; + +procedure Finalizar; +begin + FreeAndNIL(dmGenerarAlbaranesProv); + AAlbaranesProveedorController := nil; + AFacturasProveedorController := nil; +end; + +function GenerarAlbaranProv(AFactura : IBizFacturaProveedor) : Boolean; overload; +var + AAlbaranNuevo : IBizAlbaranProveedor; +begin + Result := False; + + if not Assigned(AAlbaranesProveedorController) then + Inicializar; + + if not Assigned(AFactura) then + raise Exception.Create('Factura de proveedor no asignada (GenerarAlbaranProv)'); + + if not AFactura.DataTable.Active then + AFactura.DataTable.Active := True; + + try + AAlbaranNuevo := AAlbaranesProveedorController.Nuevo; + + with AAlbaranNuevo do + begin + TIPO := CTE_TIPO_ALBARAN_DEV; + ID_PROVEEDOR := AFactura.ID_PROVEEDOR; + CALLE := AFactura.CALLE; + CODIGO_POSTAL := AFactura.CODIGO_POSTAL; + POBLACION := AFactura.POBLACION; + PROVINCIA := AFactura.PROVINCIA; + // AAlbaran.PERSONA_CONTACTO := AFactura.PERSONA_CONTACTO; + // AAlbaran.TELEFONO := AFactura.TELEFONO; + IMPORTE_NETO := AFactura.IMPORTE_NETO; + IMPORTE_PORTE := AFactura.IMPORTE_PORTE; + DESCUENTO := AFactura.DESCUENTO; + IMPORTE_DESCUENTO := AFactura.IMPORTE_DESCUENTO; + BASE_IMPONIBLE := AFactura.BASE_IMPONIBLE; + IVA := AFactura.IVA; + IMPORTE_IVA := AFactura.IMPORTE_IVA; + IMPORTE_TOTAL := AFactura.IMPORTE_TOTAL; + // AAlbaran.DataTable.FieldByName(fld_AlbaranesProveedorOBSERVACIONES).AsVariant := AFactura.DataTable.FieldByName(fld_PedidosProveedorOBSERVACIONES).AsVariant; + ID_FORMA_PAGO := AFactura.ID_FORMA_PAGO; + ID_FACTURA := AFactura.ID; + end; + + DuplicarRegistros(AFactura.Detalles.DataTable, AAlbaranNuevo.Detalles.DataTable, mdrTodos); + + + //Sustituir por if de guardar + if AAlbaranesProveedorController.Guardar(AAlbaranNuevo) then + ShowInfoMessage('La orden de devolucin se ha dado de alta con el cdigo ' + AAlbaranNuevo.REFERENCIA); + + finally + AAlbaranNuevo := Nil; + end; +end; + +end. diff --git a/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/uGenerarFacturasProvAlbProvUtils.dcu b/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/uGenerarFacturasProvAlbProvUtils.dcu new file mode 100644 index 0000000..4dc107d Binary files /dev/null and b/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/uGenerarFacturasProvAlbProvUtils.dcu differ diff --git a/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/uGenerarFacturasProvAlbProvUtils.dfm b/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/uGenerarFacturasProvAlbProvUtils.dfm new file mode 100644 index 0000000..89136f3 --- /dev/null +++ b/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/uGenerarFacturasProvAlbProvUtils.dfm @@ -0,0 +1,311 @@ +object dmGenerarFacturasProvAlbProv: TdmGenerarFacturasProvAlbProv + OldCreateOrder = False + Height = 176 + Width = 254 + object JsListaFacturasGeneradas: TJSDialog + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Se han generado las facturas...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Continuar' + Value = 200 + Cancel = True + end> + ButtonBar.Buttons = [] + ButtonBar.Cancel = cbOK + ButtonBar.UseCancel = False + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 72 + Top = 16 + end +end diff --git a/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/uGenerarFacturasProvAlbProvUtils.pas b/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/uGenerarFacturasProvAlbProvUtils.pas new file mode 100644 index 0000000..a8bb813 --- /dev/null +++ b/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/uGenerarFacturasProvAlbProvUtils.pas @@ -0,0 +1,473 @@ +unit uGenerarFacturasProvAlbProvUtils; + +interface + +uses + Windows, SysUtils, Classes, + uBizAlbaranesProveedor, + uBizFacturasProveedor, + pngimage, JSDialog; + +type + TdmGenerarFacturasProvAlbProv = class(TDataModule) + JsListaFacturasGeneradas: TJSDialog; + end; + + function GenerarFacturaProvAlbProv(const IDAlbaran : Integer; const CopiarDetalles: Boolean = True) : Boolean; overload; + function GenerarFacturaProvAlbProv(AAlbaran : IBizAlbaranProveedor; const CopiarDetalles: Boolean = True) : Boolean; overload; + function GenerarFacturaProvAlbProv : Boolean; overload; + + function GenerarFacturas(AFacturas : IBizFacturaProveedor; AListaAlbaranes : IBizAlbaranProveedor; const CopiarDetalles: Boolean = True): Boolean; + +implementation + +{$R *.dfm} + +uses + DB, uDialogUtils, uDADataTable, + schFacturasProveedorClient_Intf, + schAlbaranesProveedorClient_Intf, + + uBizDetallesFacturaProveedor, + uAlbaranesProveedorController, uDetallesFacturaProveedorController, + + uBizDetallesAlbaranProveedor, uControllerDetallesBase, + + uFacturasProveedorController; + +// , +// , uProveedoresController, +// , uControllerDetallesBase, + + +// , uBizContactos, schPedidosClienteClient_Intf, +// schAlbaranesProveedorClient_Intf; + +var + dmGenerarFacturasProv: TdmGenerarFacturasProvAlbProv; + AFacturasProveedorController : IFacturasProveedorController; + AAlbaranesProveedorController : IAlbaranesProveedorController; + ADetallesAlbaranesProveedorController : IDetallesFacturaProveedorController; +// AProveedoresController : IProveedoresController; + +{ Mtodos auxiliares } +{procedure CopiarPedidoAAlbaran(AAlbaran: IBizPedidoCliente; + AAlbaran : IBizAlbaranProveedor); +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado (CopiarPedidoAAlbaran)'); + + if not Assigned(AAlbaran) then + raise Exception.Create ('Pedido no asignado (CopiarPedidoAAlbaran)'); + + if not AAlbaran.DataTable.Active then + AAlbaran.DataTable.Active := True; + + // El albarn tiene que venir ya abierto y posicionado donde hay que copiar + AAlbaran.ID_CLIENTE := AAlbaran.ID_CLIENTE; + AAlbaran.ID_PEDIDO := AAlbaran.ID; + AAlbaran.CALLE := AAlbaran.CALLE; + AAlbaran.CODIGO_POSTAL := AAlbaran.CODIGO_POSTAL; + AAlbaran.POBLACION := AAlbaran.POBLACION; + AAlbaran.PROVINCIA := AAlbaran.PROVINCIA; + AAlbaran.PERSONA_CONTACTO := AAlbaran.PERSONA_CONTACTO; + AAlbaran.TELEFONO := AAlbaran.TELEFONO; + AAlbaran.IMPORTE_NETO := AAlbaran.IMPORTE_NETO; + AAlbaran.IMPORTE_PORTE := AAlbaran.IMPORTE_PORTE; + AAlbaran.DESCUENTO := AAlbaran.DESCUENTO; + AAlbaran.IMPORTE_DESCUENTO := AAlbaran.IMPORTE_DESCUENTO; + AAlbaran.BASE_IMPONIBLE := AAlbaran.BASE_IMPONIBLE; + AAlbaran.IVA := AAlbaran.IVA; + AAlbaran.IMPORTE_IVA := AAlbaran.IMPORTE_IVA; + AAlbaran.IMPORTE_TOTAL := AAlbaran.IMPORTE_TOTAL; + AAlbaran.DataTable.FieldByName(fld_AlbaranesClienteOBSERVACIONES).AsVariant := AAlbaran.DataTable.FieldByName(fld_PedidosClienteOBSERVACIONES).AsVariant; + AAlbaran.ID_FORMA_PAGO := AAlbaran.ID_FORMA_PAGO; +end; + +procedure CopiarArticulosPendAAlbaran( + AAlbaran: IBizPedidoCliente; + AAlbaran: IBizAlbaranProveedor; + AArticulosPendientes: IBizPedidoClienteArticulosPend); +var + i : integer; + ADetalles : IBizDetallesFacturaProveedor; + ADetallesController : IDetallesFacturaProveedorController; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado (CopiarArticulosPendAAlbaran)'); + + if not Assigned(AAlbaran) then + raise Exception.Create ('Pedido no asignado (CopiarArticulosPendAAlbaran)'); + + if not Assigned(AArticulosPendientes) then + raise Exception.Create ('Artculos pendientes no asignado (CopiarArticulosPendAAlbaran)'); + + if not AArticulosPendientes.DataTable.Active then + AArticulosPendientes.DataTable.Active := True; + + // El albarn tiene que venir ya abierto y posicionado donde hay que copiar + + ADetalles := AAlbaran.Detalles; + ADetallesController := TDetallesFacturaProveedorController.Create; + try + //OJO IMPORTANTE + //Siempre que vayamos a trabajar con los detalles debemos hacer un beginupdate de los mismos y un endupdate para + //obligarle siempre a recalcular los detalles una sola vez + ADetallesController.BeginUpdate(ADetalles); + + AArticulosPendientes.DataTable.First; + for i := 0 to AArticulosPendientes.DataTable.RecordCount - 1 do + begin + AAlbaran.Detalles.First; + if (AAlbaran.Detalles.Locate('ID_ARTICULO', AArticulosPendientes.ID_ARTICULO, [])) then + if (AArticulosPendientes.CANTIDAD_PENDIENTE > 0) then + begin + ADetallesController.Add(ADetalles, TIPO_DETALLE_CONCEPTO); + ADetalles.Edit; + ADetalles.REFERENCIA := AAlbaran.Detalles.REFERENCIA; + ADetalles.ID_ARTICULO := AAlbaran.Detalles.ID_ARTICULO; + ADetalles.CONCEPTO := AAlbaran.Detalles.CONCEPTO; + ADetalles.CANTIDAD := AArticulosPendientes.CANTIDAD_PENDIENTE; + ADetalles.IMPORTE_UNIDAD := AAlbaran.Detalles.IMPORTE_UNIDAD; + ADetalles.IMPORTE_TOTAL := AAlbaran.Detalles.IMPORTE_TOTAL; + ADetalles.DESCUENTO := AAlbaran.Detalles.DESCUENTO; + ADetalles.IMPORTE_PORTE := AAlbaran.Detalles.IMPORTE_PORTE; + ADetalles.VISIBLE := AAlbaran.Detalles.VISIBLE; + ADetalles.REFERENCIA_PROVEEDOR := AAlbaran.Detalles.REFERENCIA_PROVEEDOR; + ADetalles.Post; + AArticulosPendientes.Next; + end; + end; + finally + ADetallesController.EndUpdate(ADetalles); + ADetallesController := NIL; + end; +end; } + +procedure CopiarArticulosAlbaran(AOrigen: IBizDetallesAlbaranProveedor; + ADestino : IBizDetallesFacturaProveedor); +var + i : integer; + ADetallesController : IDetallesFacturaProveedorController; +begin + if not Assigned(AOrigen) then + raise Exception.Create ('Origen no asignado (CopiarArticulosAlbaran)'); + + if not Assigned(ADestino) then + raise Exception.Create ('Destino no asignado (CopiarArticulosAlbaran)'); + + if not AOrigen.DataTable.Active then + AOrigen.DataTable.Active := True; + + if not ADestino.DataTable.Active then + ADestino.DataTable.Active := True; + + ADetallesController := TDetallesFacturaProveedorController.Create; + try + //OJO IMPORTANTE + //Siempre que vayamos a trabajar con los detalles debemos hacer un beginupdate de los mismos y un endupdate para + //obligarle siempre a recalcular los detalles una sola vez + ADetallesController.BeginUpdate(ADestino); + + AOrigen.DataTable.First; + for i := 0 to AOrigen.DataTable.RecordCount - 1 do + begin + ADetallesController.Add(ADestino, TIPO_DETALLE_CONCEPTO); + ADestino.Edit; + ADestino.REFERENCIA := AOrigen.REFERENCIA; + if AOrigen.ID_ARTICULO > 0 then + ADestino.ID_ARTICULO := AOrigen.ID_ARTICULO; + ADestino.CONCEPTO := AOrigen.CONCEPTO; + ADestino.CANTIDAD := AOrigen.CANTIDAD; + ADestino.IMPORTE_UNIDAD := AOrigen.IMPORTE_UNIDAD; + ADestino.IMPORTE_TOTAL := AOrigen.IMPORTE_TOTAL; + ADestino.DESCUENTO := AOrigen.DESCUENTO; + ADestino.IMPORTE_PORTE := AOrigen.IMPORTE_PORTE; + ADestino.VISIBLE := AOrigen.VISIBLE; + ADestino.REFERENCIA_PROVEEDOR := AOrigen.REFERENCIA_PROVEEDOR; + ADestino.Post; + AOrigen.Next; + end; + finally + ADetallesController.EndUpdate(ADestino); + ADetallesController := NIL; + end; +end; + + + +procedure Inicializar; +begin + dmGenerarFacturasProv := TdmGenerarFacturasProvAlbProv.Create(nil); + AFacturasProveedorController := TFacturasProveedorController.Create; + AAlbaranesProveedorController := TAlbaranesProveedorController.Create; + ADetallesAlbaranesProveedorController := TDetallesFacturaProveedorController.Create; +// AProveedoresController := TProveedoresController.Create; +end; + +procedure Finalizar; +begin + FreeAndNIL(dmGenerarFacturasProv); + AFacturasProveedorController := nil; + AAlbaranesProveedorController := nil; + ADetallesAlbaranesProveedorController := nil; +// AProveedoresController := nil; +end; + + +function GenerarFacturaProvAlbProv(const IDAlbaran : Integer; const CopiarDetalles: Boolean = True) : Boolean; overload; +var + AAlbaran : IBizAlbaranProveedor; +begin + Result := False; + try + if not Assigned(AAlbaranesProveedorController) then + Inicializar; + + AAlbaran := AAlbaranesProveedorController.Buscar(IDAlbaran); + if Assigned(AAlbaran) then + begin + if (ShowConfirmMessage('Generar factura', Format('Desea copiar todos los conceptos del albaran seleccionados a su factura correspondiente?', [])) = IDYES) then + Result := GenerarFacturaProvAlbProv(AAlbaran) + else + Result := GenerarFacturaProvAlbProv(AAlbaran, False); + end; + + if Assigned(AAlbaranesProveedorController) then + Finalizar; + + finally + AAlbaran := NIL; + end; +end; + +function GenerarFacturaProvAlbProv(AAlbaran : IBizAlbaranProveedor; const CopiarDetalles: Boolean = True) : Boolean; overload; +var + AFacturasNuevas : IBizFacturaProveedor; + i: Integer; +begin + Result := False; + + if not Assigned(AAlbaran) then + raise Exception.Create('Albarn de proveedor no asignado (GenerarFacturaProvAlbProv)'); + + if not AAlbaran.DataTable.Active then + AAlbaran.DataTable.Active := True; + + if not Assigned(AAlbaranesProveedorController) then + Inicializar; + + try + AFacturasNuevas := AFacturasProveedorController.Nuevo(False); + if GenerarFacturas(AFacturasNuevas, AAlbaran, CopiarDetalles) then + begin + if AFacturasNuevas.DataTable.RecordCount = 1 then + begin + if AFacturasNuevas.TIPO = CTE_TIPO_FACTURA then + ShowInfoMessage('La factura se ha dado de alta con el cdigo ' + AFacturasNuevas.REFERENCIA) + else + ShowInfoMessage('El abono se ha dado de alta con el cdigo ' + AFacturasNuevas.REFERENCIA); + end + else begin + with dmGenerarFacturasProv.JsListaFacturasGeneradas.Content do + begin + Clear; + AFacturasNuevas.DataTable.Last; + for i := 0 to AFacturasNuevas.DataTable.RecordCount - 1 do + begin + if Length(AFacturasNuevas.REFERENCIA) > 0 then + Add(AFacturasNuevas.REFERENCIA + ': ' + AFacturasNuevas.NOMBRE); + AFacturasNuevas.DataTable.Prior; + end; + end; + dmGenerarFacturasProv.JsListaFacturasGeneradas.Execute; + end; + end; + + finally + AFacturasNuevas := NIL; + if Assigned(AAlbaranesProveedorController) then + Finalizar; + end; +end; + +function GenerarFacturaProvAlbProv : Boolean; overload; +var + AAlbaranes : IBizAlbaranProveedor; +begin + Result := False; + try + if not Assigned(AAlbaranesProveedorController) then + Inicializar; + + AAlbaranes := AAlbaranesProveedorController.ElegirAlbaranes(AAlbaranesProveedorController.BuscarSinFacturar, + 'Elija el albarn o albaranes de proveedor que desea utilizar para dar de alta la factura.' + + #10#13 + 'Si elige albaranes de proveedores diferentes se dar de alta una factura por cada uno de ellos.' , True); + + if Assigned(AAlbaranes) then + begin + if (ShowConfirmMessage('Generar factura', Format('Desea copiar todos los conceptos del/los albaran/es seleccionados a sus facturas correspondientes?', [])) = IDYES) then + Result := GenerarFacturaProvAlbProv(AAlbaranes) + else + Result := GenerarFacturaProvAlbProv(AAlbaranes, False); + end; + + if Assigned(AAlbaranesProveedorController) then + Finalizar; + finally + AAlbaranes := Nil; + end; +end; + + +function GenerarFacturas(AFacturas: IBizFacturaProveedor; AListaAlbaranes: IBizAlbaranProveedor; const CopiarDetalles: Boolean = True): Boolean; +var + AFacturaActual : IBizFacturaProveedor; + AAlbaranesController : IAlbaranesProveedorController; + I: Integer; + bEnEdicion : Boolean; +begin + // ATENCIN!!! AFacturas tiene que estar vacio para no pisar facturas + // ya generadas. + if not Assigned(AFacturas) then + raise Exception.Create ('Factura no asignada (Anadir)'); + + if not Assigned(AListaAlbaranes) then + raise Exception.Create ('Albaranes no asignados (Anadir)'); + + if not AFacturas.DataTable.Active then + AFacturas.DataTable.Active := True; + + if not AListaAlbaranes.DataTable.Active then + AListaAlbaranes.DataTable.Active := True; + + AAlbaranesController := TAlbaranesProveedorController.Create; + try + // Ordenar por fecha de albaran + AListaAlbaranes.DataTable.Sort([fld_AlbaranesProveedorFECHA_ALBARAN], [uDADataTable.sdAscending]); + AListaAlbaranes.First; + for I := 0 to AListaAlbaranes.DataTable.RecordCount - 1 do + begin + AListaAlbaranes._Proveedor := NIL; + AFacturaActual := NIL; + + // Busco si hay alguna factura ya hecha de ese Proveedor + AFacturas.DataTable.First; + if AFacturas.DataTable.Locate(fld_FacturasProveedorID_PROVEEDOR, AListaAlbaranes.ID_PROVEEDOR, []) then + begin + AFacturaActual := AFacturas; + AFacturasProveedorController.RecuperarProveedor(AFacturaActual); + AFacturaActual.Proveedor.DataTable.Active := True; + end + else begin + // No hay factura de ese Proveedor. Creo una nueva + AFacturasProveedorController.Anadir(AFacturas); + AAlbaranesController.RecuperarProveedor(AListaAlbaranes); + AListaAlbaranes.Proveedor.DataTable.Active := True; + AFacturas.Proveedor := AListaAlbaranes.Proveedor; + + //Siempre asignaremos por defecto la referencia de factura de proveedor que tenga el primer albaran del proveedor +// bEnEdicion := (AFacturas.DataTable.State in dsEditModes); +// if not bEnEdicion then +// AFacturas.Edit; +// AFacturas.REFERENCIA_PROVEEDOR := AListaAlbaranes.REF_FACTURA_PROV; +// AFacturas.Post; +// if bEnEdicion then +// AFacturas.Edit; + + //Si el albaran es de tipo devolucin hacemos la factura de tipo abono + if (AListaAlbaranes.TIPO = CTE_TIPO_ALBARAN_DEV) then + begin + bEnEdicion := (AFacturas.DataTable.State in dsEditModes); + if not bEnEdicion then + AFacturas.Edit; + AFacturas.TIPO := CTE_TIPO_ABONO; + AFacturas.Post; + if bEnEdicion then + AFacturas.Edit; + end; + + AFacturaActual := AFacturas; + end; + + // Ya tengo la factura. Le aado los conceptos del albarn + AFacturaActual.Detalles.DataTable.Last; + + //Se pone la referencia del pedido y el total y nos olvidamos de los detalles + if not CopiarDetalles then + begin + AFacturasProveedorController.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_CONCEPTO); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := 'Albaran ' + AListaAlbaranes.REFERENCIA; + CANTIDAD := 1; + IMPORTE_UNIDAD := AListaAlbaranes.IMPORTE_TOTAL; //Tecsitel no utiliza el IVA en los pedidos por lo tanto el + //importe total es lo que queremos (IMPORTE_NETO+IMPORTE_PORTE) + Post; + end; + end + //Se copian los detalles del pedido a la factura + else + begin + // Aado el ttulo + AFacturasProveedorController.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_TITULO); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := 'Albarn ' + AListaAlbaranes.REFERENCIA + ' del ' + DateToStr(AListaAlbaranes.FECHA_ALBARAN); + Post; + end; + // Aado el contenido del albarn + CopiarArticulosAlbaran(AListaAlbaranes.Detalles, AFacturaActual.Detalles); + + {En los albaranes a proveedor el porte es a nivel del artculo + Self.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_CONCEPTO); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := 'Porte del albarn'; + CANTIDAD := 1; + IMPORTE_UNIDAD := AListaAlbaranes.IMPORTE_PORTE; + Post; + end; + } + + // Aado el resumen + AFacturasProveedorController.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_SUBTOTAL); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := 'Total del albarn ' + AListaAlbaranes.REFERENCIA; + Post; + end; + end; + + // Aado una lnea en blanco + AFacturasProveedorController.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_CONCEPTO); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := ''; + Post; + end; + + // Guardo la factura que acabo de generar o editar + AFacturaActual.CalcularImporteTotal; + AFacturasProveedorController.Guardar(AFacturaActual); + // Asocio la factura con el albarn + AListaAlbaranes.Edit; + AListaAlbaranes.ID_FACTURA := AFacturaActual.ID; + AListaAlbaranes.Post; + AAlbaranesController.Guardar(AListaAlbaranes); + + AListaAlbaranes.Next; + end; + Result := True; + finally + AAlbaranesController := NIL; + end; +end; + + +end. diff --git a/Source/Modulos/Relaciones/Pedidos de cliente - Albaranes de cliente/PedCli_AlbCli_relation.bdsproj b/Source/Modulos/Relaciones/Pedidos de cliente - Albaranes de cliente/PedCli_AlbCli_relation.bdsproj new file mode 100644 index 0000000..41cf794 --- /dev/null +++ b/Source/Modulos/Relaciones/Pedidos de cliente - Albaranes de cliente/PedCli_AlbCli_relation.bdsproj @@ -0,0 +1,524 @@ + + + + + + + + + + + + PedCli_AlbCli_relation.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + Borland Sample Components + Delphi 1.0 Compatibility Components + Borland MyBase DataAccess Components + TeeChart Components + Borland SimpleDataset Component (DBX) + ExpressBars extended items by Developer Express Inc. + ExpressBars by Developer Express Inc. + ExpressScheduler 2 by Developer Express Inc. + ExpressVerticalGrid by Developer Express Inc. + ExpressBars DBNavigator by Developer Express Inc. + ExpressBars extended DB items by Developer Express Inc. + ExpressSideBar by Developer Express Inc. + JVCL Band Objects + JVCL Non-Visual Components + JVCL Encryption and Compression Components + JVCL Dialog Components + JVCL Docking Components + JVCL DotNet Controls + JVCL EDI Components Designtime Package + JVCL HMI Controls design time unit + JVCL Interpreter Components + JVCL Jans Components + JVCL Managed Threads + JVCL Multimedia and Image Components + JVCL Network Components + JVCL Page Style Components + JVCL Plugin Components + JVCL Print Preview Components + JVCL Runtime Design Components + JVCL Time Framework + JVCL Unified Interbase Components + JVCL Validators and Error Provider Components + SMImport suite: data importing into dataset. Scalabium/Mike Shkolnik, 2000-2005 + SMExport suite: data export from dataset. Written by Mike Shkolnik/Scalabium, 1998-2004. + Intraweb 8.0 Design Package for Borland Development Studio 2006 + Internet Explorer Components + + + + diff --git a/Source/Modulos/Relaciones/Pedidos de cliente - Albaranes de cliente/PedCli_AlbCli_relation.dpk b/Source/Modulos/Relaciones/Pedidos de cliente - Albaranes de cliente/PedCli_AlbCli_relation.dpk new file mode 100644 index 0000000..e2387bf --- /dev/null +++ b/Source/Modulos/Relaciones/Pedidos de cliente - Albaranes de cliente/PedCli_AlbCli_relation.dpk @@ -0,0 +1,41 @@ +package PedCli_AlbCli_relation; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + rtl, + Base, + ControllerBase, + Contactos_model, + Contactos_controller, + PedidosCliente_model, + PedidosCliente_controller, + AlbaranesCliente_model, + AlbaranesCliente_controller; + +contains + uGenerarAlbaranesCliUtils in 'uGenerarAlbaranesCliUtils.pas'; + +end. diff --git a/Source/Modulos/Relaciones/Pedidos de cliente - Albaranes de cliente/PedCli_AlbCli_relation.rc b/Source/Modulos/Relaciones/Pedidos de cliente - Albaranes de cliente/PedCli_AlbCli_relation.rc new file mode 100644 index 0000000..e69de29 diff --git a/Source/Modulos/Relaciones/Pedidos de cliente - Albaranes de cliente/PedCli_AlbCli_relation.res b/Source/Modulos/Relaciones/Pedidos de cliente - Albaranes de cliente/PedCli_AlbCli_relation.res new file mode 100644 index 0000000..36f26e2 Binary files /dev/null and b/Source/Modulos/Relaciones/Pedidos de cliente - Albaranes de cliente/PedCli_AlbCli_relation.res differ diff --git a/Source/Modulos/Relaciones/Pedidos de cliente - Albaranes de cliente/uGenerarAlbaranesCliUtils.dfm b/Source/Modulos/Relaciones/Pedidos de cliente - Albaranes de cliente/uGenerarAlbaranesCliUtils.dfm new file mode 100644 index 0000000..95561c1 --- /dev/null +++ b/Source/Modulos/Relaciones/Pedidos de cliente - Albaranes de cliente/uGenerarAlbaranesCliUtils.dfm @@ -0,0 +1,313 @@ +object dmGenerarAlbaranesCli: TdmGenerarAlbaranesCli + OldCreateOrder = False + Height = 176 + Width = 254 + object JsListaAlbaranesGenerados: TJSDialog + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Se ha generado el albar'#225'n de cliente' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Ver el albar'#225'n' + Value = 100 + Info.Strings = ( + 'Mostrar el albar'#225'n que se ha creado') + end> + ButtonBar.Buttons = [cbOK] + ButtonBar.Cancel = cbOK + ButtonBar.UseCancel = False + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 72 + Top = 16 + end +end diff --git a/Source/Modulos/Relaciones/Pedidos de cliente - Albaranes de cliente/uGenerarAlbaranesCliUtils.pas b/Source/Modulos/Relaciones/Pedidos de cliente - Albaranes de cliente/uGenerarAlbaranesCliUtils.pas new file mode 100644 index 0000000..5edab2f --- /dev/null +++ b/Source/Modulos/Relaciones/Pedidos de cliente - Albaranes de cliente/uGenerarAlbaranesCliUtils.pas @@ -0,0 +1,272 @@ +unit uGenerarAlbaranesCliUtils; + +interface + +uses + Windows, SysUtils, Classes, pngimage, JSDialog, + uBizPedidosCliente, uBizAlbaranesCliente; + +type + TdmGenerarAlbaranesCli = class(TDataModule) + JsListaAlbaranesGenerados: TJSDialog; + end; + + function GenerarAlbaranCli(const IDPedido : Integer; var IDAlbaran: Integer) : Boolean; overload; + function GenerarAlbaranCli(APedido : IBizPedidoCliente; var AAlbaran: IBizAlbaranCliente) : Boolean; overload; + function ElegirPedidoYGenerarAlbaranCli(var IDAlbaran: Integer) : Boolean; + +implementation + +{$R *.dfm} + +uses + uDialogUtils, uBizDetallesPedidoCliente, uBizDetallesAlbaranCliente, + uPedidosClienteController, uAlbaranesClienteController, uClientesController, + uDetallesAlbaranClienteController, uControllerDetallesBase, + uBizContactos, schPedidosClienteClient_Intf, + schAlbaranesClienteClient_Intf; + +var + dmGenerarAlbaranesCli: TdmGenerarAlbaranesCli; + APedidosClienteController : IPedidosClienteController; + AAlbaranesClienteController : IAlbaranesClienteController; + ADetallesAlbaranesCliController : IDetallesAlbaranClienteController; + AClientesController : IClientesController; + +{ Mtodos auxiliares } +procedure CopiarPedidoAAlbaran(APedido: IBizPedidoCliente; + AAlbaran : IBizAlbaranCliente); +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado (CopiarPedidoAAlbaran)'); + + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado (CopiarPedidoAAlbaran)'); + + if not APedido.DataTable.Active then + APedido.DataTable.Active := True; + + // El albarn tiene que venir ya abierto y posicionado donde hay que copiar + AAlbaran.ID_CLIENTE := APedido.ID_CLIENTE; + AAlbaran.ID_PEDIDO := APedido.ID; + AAlbaran.REFERENCIA_CLIENTE := APedido.REFERENCIA_CLIENTE; + AAlbaran.CALLE := APedido.CALLE; + AAlbaran.CODIGO_POSTAL := APedido.CODIGO_POSTAL; + AAlbaran.POBLACION := APedido.POBLACION; + AAlbaran.PROVINCIA := APedido.PROVINCIA; + AAlbaran.PERSONA_CONTACTO := APedido.PERSONA_CONTACTO; + AAlbaran.TELEFONO := APedido.TELEFONO; + AAlbaran.IMPORTE_NETO := APedido.IMPORTE_NETO; + AAlbaran.IMPORTE_PORTE := APedido.IMPORTE_PORTE; + AAlbaran.DESCUENTO := APedido.DESCUENTO; + AAlbaran.IMPORTE_DESCUENTO := APedido.IMPORTE_DESCUENTO; + AAlbaran.BASE_IMPONIBLE := APedido.BASE_IMPONIBLE; + AAlbaran.IVA := APedido.IVA; + AAlbaran.IMPORTE_IVA := APedido.IMPORTE_IVA; + AAlbaran.IMPORTE_TOTAL := APedido.IMPORTE_TOTAL; + AAlbaran.DataTable.FieldByName(fld_AlbaranesClienteOBSERVACIONES).AsVariant := APedido.DataTable.FieldByName(fld_PedidosClienteOBSERVACIONES).AsVariant; + AAlbaran.ID_FORMA_PAGO := APedido.ID_FORMA_PAGO; + AAlbaran.FECHA_PREVISTA_ENVIO := APedido.FECHA_PREVISTA_ENVIO; +end; + +procedure CopiarArticulosPendAAlbaran( + APedido: IBizPedidoCliente; + AAlbaran: IBizAlbaranCliente; + AArticulosPendientes: IBizPedidoClienteArticulosPend); +var + i : integer; + ADetalles : IBizDetallesAlbaranCliente; + ADetallesController : IDetallesAlbaranClienteController; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado (CopiarArticulosPendAAlbaran)'); + + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado (CopiarArticulosPendAAlbaran)'); + + if not Assigned(AArticulosPendientes) then + raise Exception.Create ('Artculos pendientes no asignado (CopiarArticulosPendAAlbaran)'); + + if not AArticulosPendientes.DataTable.Active then + AArticulosPendientes.DataTable.Active := True; + + // El albarn tiene que venir ya abierto y posicionado donde hay que copiar + + ADetalles := AAlbaran.Detalles; + ADetallesController := TDetallesAlbaranClienteController.Create; + try + //OJO IMPORTANTE + //Siempre que vayamos a trabajar con los detalles debemos hacer un beginupdate de los mismos y un endupdate para + //obligarle siempre a recalcular los detalles una sola vez + ADetallesController.BeginUpdate(ADetalles); + + AArticulosPendientes.DataTable.First; + for i := 0 to AArticulosPendientes.DataTable.RecordCount - 1 do + begin + APedido.Detalles.First; + if (APedido.Detalles.Locate('ID_ARTICULO', AArticulosPendientes.ID_ARTICULO, [])) then + if (AArticulosPendientes.CANTIDAD_PENDIENTE > 0) then + begin + ADetallesController.Add(ADetalles, TIPO_DETALLE_CONCEPTO); + ADetalles.Edit; + ADetalles.ID_PEDIDO := APedido.Detalles.ID_PEDIDO; + ADetalles.REFERENCIA := APedido.Detalles.REFERENCIA; + ADetalles.ID_ARTICULO := APedido.Detalles.ID_ARTICULO; + ADetalles.CONCEPTO := APedido.Detalles.CONCEPTO; + ADetalles.CANTIDAD := AArticulosPendientes.CANTIDAD_PENDIENTE; + ADetalles.IMPORTE_UNIDAD := APedido.Detalles.IMPORTE_UNIDAD; + ADetalles.IMPORTE_TOTAL := APedido.Detalles.IMPORTE_TOTAL; + ADetalles.DESCUENTO := APedido.Detalles.DESCUENTO; + ADetalles.IMPORTE_PORTE := APedido.Detalles.IMPORTE_PORTE; + ADetalles.VISIBLE := APedido.Detalles.VISIBLE; + ADetalles.REFERENCIA_PROVEEDOR := APedido.Detalles.REFERENCIA_PROVEEDOR; + ADetalles.Post; + AArticulosPendientes.Next; + end; + end; + finally + ADetallesController.EndUpdate(ADetalles); + ADetallesController := NIL; + end; +end; + +procedure Inicializar; +begin + dmGenerarAlbaranesCli := TdmGenerarAlbaranesCli.Create(nil); + APedidosClienteController := TPedidosClienteController.Create; + AAlbaranesClienteController := TAlbaranesClienteController.Create; + ADetallesAlbaranesCliController := TDetallesAlbaranClienteController.Create; + AClientesController := TClientesController.Create; +end; + +procedure Finalizar; +begin + FreeAndNIL(dmGenerarAlbaranesCli); + APedidosClienteController := nil; + AAlbaranesClienteController := nil; + ADetallesAlbaranesCliController := nil; + AClientesController := nil; +end; + + +function GenerarAlbaranCli(const IDPedido : Integer; + var IDAlbaran: Integer) : Boolean; overload; +var + APedido : IBizPedidoCliente; + AAlbaran : IBizAlbaranCliente; +begin + Result := False; + IDAlbaran := -1; + + try + if not Assigned(APedidosClienteController) then + Inicializar; + + APedido := APedidosClienteController.Buscar(IDPedido); + if Assigned(APedido) then + begin + Result := GenerarAlbaranCli(APedido, AAlbaran); + if Result then + IDAlbaran := AAlbaran.ID; + end; + finally + if Assigned(APedidosClienteController) then + Finalizar; + end; +end; + +function GenerarAlbaranCli(APedido : IBizPedidoCliente; var AAlbaran: IBizAlbaranCliente) : Boolean; overload; +var + ARespuesta : Integer; + AuxAlbaran : IBizAlbaranCliente; + AArticulosPendientes: IBizPedidoClienteArticulosPend; +begin + Result := False; + AAlbaran := NIL; + + if not Assigned(APedido) then + raise Exception.Create('Pedido de cliente no asignado (GenerarAlbaranCli)'); + + if not APedido.DataTable.Active then + APedido.DataTable.Active := True; + + if not Assigned(APedidosClienteController) then + Inicializar; + + try + AArticulosPendientes := APedidosClienteController.ArticulosPendientes(APedido.ID); + if not Assigned(AArticulosPendientes) then + raise Exception.Create('Error al recuperar los artculos sin albarn del pedido (GenerarAlbaranCli)'); + + AArticulosPendientes.DataTable.Active := True; + if AArticulosPendientes.DataTable.RecordCount = 0 then + begin + ShowWarningMessage('Generar albarn a partir del pedido', 'Todos los artculos de este pedido ya figuran en uno o ms albaranes de cliente. Por lo que no se pueden generar nuevos albaranes para este pedido'); + Exit; // Aunque es un exit, se ejecuta la parte del finally antes de salir. + end; + + AuxAlbaran := AAlbaranesClienteController.Nuevo; + CopiarPedidoAAlbaran(APedido, AuxAlbaran); + CopiarArticulosPendAAlbaran(APedido, AuxAlbaran, AArticulosPendientes); + + //Sustituir por if de guardar + if AAlbaranesClienteController.Guardar(AuxAlbaran) then + begin + AAlbaran := AuxAlbaran; + with dmGenerarAlbaranesCli.JsListaAlbaranesGenerados do + begin + Instruction.Text := 'Se ha generado el albarn'; + + Content.Clear; + Content.Add(Format('Se ha generado correctamente el albarn %s a partir del pedido de cliente' + #10#13, [AuxAlbaran.REFERENCIA])); + Execute; + + ARespuesta := CustomButtonResult; + case ARespuesta of + 100 : begin + // Ver el albarn + AAlbaranesClienteController.Ver(AuxAlbaran); + end; + 200 : // Continuar; + end; + end; + end; + + Result := True; + finally + AArticulosPendientes := NIL; + if Assigned(APedidosClienteController) then + Finalizar; + end; +end; + +function ElegirPedidoYGenerarAlbaranCli(var IDAlbaran: Integer) : Boolean; overload; +var + APedido : IBizPedidoCliente; + AAlbaran : IBizAlbaranCliente; +begin + Result := False; + IDAlbaran := -1; + + AAlbaran := NIL; + try + if not Assigned(APedidosClienteController) then + Inicializar; + + APedido := APedidosClienteController.ElegirPedidos(APedidosClienteController.BuscarPendientes, + 'Elija el pedido de cliente que desea utilizar para dar de alta el albarn de cliente.' + , False); + + if Assigned(APedido) then + begin + Result := GenerarAlbaranCli(APedido, AAlbaran); + if Result then + IDAlbaran := AAlbaran.ID; + end; + finally + if Assigned(APedidosClienteController) then + Finalizar; + end; +end; + +end. diff --git a/Source/Modulos/Relaciones/Pedidos de cliente - Pedidos a proveedor/PedCli_PedProv_relation.bdsproj b/Source/Modulos/Relaciones/Pedidos de cliente - Pedidos a proveedor/PedCli_PedProv_relation.bdsproj new file mode 100644 index 0000000..b11b98a --- /dev/null +++ b/Source/Modulos/Relaciones/Pedidos de cliente - Pedidos a proveedor/PedCli_PedProv_relation.bdsproj @@ -0,0 +1,525 @@ + + + + + + + + + + + + PedCli_PedProv_relation.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + Borland Sample Components + Delphi 1.0 Compatibility Components + Borland MyBase DataAccess Components + TeeChart Components + Borland SimpleDataset Component (DBX) + ExpressBars extended items by Developer Express Inc. + ExpressBars by Developer Express Inc. + ExpressScheduler 2 by Developer Express Inc. + ExpressVerticalGrid by Developer Express Inc. + ExpressBars DBNavigator by Developer Express Inc. + ExpressBars extended DB items by Developer Express Inc. + ExpressSideBar by Developer Express Inc. + JVCL Band Objects + JVCL Non-Visual Components + JVCL Encryption and Compression Components + JVCL Dialog Components + JVCL Docking Components + JVCL DotNet Controls + JVCL EDI Components Designtime Package + JVCL HMI Controls design time unit + JVCL Interpreter Components + JVCL Jans Components + JVCL Managed Threads + JVCL Multimedia and Image Components + JVCL Network Components + JVCL Page Style Components + JVCL Plugin Components + JVCL Print Preview Components + JVCL Runtime Design Components + JVCL Time Framework + JVCL Unified Interbase Components + JVCL Validators and Error Provider Components + SMImport suite: data importing into dataset. Scalabium/Mike Shkolnik, 2000-2005 + SMExport suite: data export from dataset. Written by Mike Shkolnik/Scalabium, 1998-2004. + Intraweb 8.0 Design Package for Borland Development Studio 2006 + Internet Explorer Components + + + + diff --git a/Source/Modulos/Relaciones/Pedidos de cliente - Pedidos a proveedor/PedCli_PedProv_relation.dpk b/Source/Modulos/Relaciones/Pedidos de cliente - Pedidos a proveedor/PedCli_PedProv_relation.dpk new file mode 100644 index 0000000..17eecb7 --- /dev/null +++ b/Source/Modulos/Relaciones/Pedidos de cliente - Pedidos a proveedor/PedCli_PedProv_relation.dpk @@ -0,0 +1,41 @@ +package PedCli_PedProv_relation; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + rtl, + Base, + ControllerBase, + Contactos_model, + Contactos_controller, + PedidosCliente_model, + PedidosCliente_controller, + PedidosProveedor_model, + PedidosProveedor_controller; + +contains + uGenerarPedidosProvUtils in 'uGenerarPedidosProvUtils.pas'; + +end. diff --git a/Source/Modulos/Relaciones/Pedidos de cliente - Pedidos a proveedor/PedCli_PedProv_relation.rc b/Source/Modulos/Relaciones/Pedidos de cliente - Pedidos a proveedor/PedCli_PedProv_relation.rc new file mode 100644 index 0000000..e69de29 diff --git a/Source/Modulos/Relaciones/Pedidos de cliente - Pedidos a proveedor/PedCli_PedProv_relation.res b/Source/Modulos/Relaciones/Pedidos de cliente - Pedidos a proveedor/PedCli_PedProv_relation.res new file mode 100644 index 0000000..36f26e2 Binary files /dev/null and b/Source/Modulos/Relaciones/Pedidos de cliente - Pedidos a proveedor/PedCli_PedProv_relation.res differ diff --git a/Source/Modulos/Relaciones/Pedidos de cliente - Pedidos a proveedor/uGenerarPedidosProvUtils.dfm b/Source/Modulos/Relaciones/Pedidos de cliente - Pedidos a proveedor/uGenerarPedidosProvUtils.dfm new file mode 100644 index 0000000..bd0f9f2 --- /dev/null +++ b/Source/Modulos/Relaciones/Pedidos de cliente - Pedidos a proveedor/uGenerarPedidosProvUtils.dfm @@ -0,0 +1,305 @@ +object dmGenerarPedidosProv: TdmGenerarPedidosProv + OldCreateOrder = False + Height = 176 + Width = 254 + object JsListaPedidosGenerados: TJSDialog + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Lista de pedidos a proveedor generados' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + ButtonBar.Buttons = [cbOK] + ButtonBar.Cancel = cbOK + ButtonBar.UseCancel = False + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 40 + Top = 16 + end +end diff --git a/Source/Modulos/Relaciones/Pedidos de cliente - Pedidos a proveedor/uGenerarPedidosProvUtils.pas b/Source/Modulos/Relaciones/Pedidos de cliente - Pedidos a proveedor/uGenerarPedidosProvUtils.pas new file mode 100644 index 0000000..6231b69 --- /dev/null +++ b/Source/Modulos/Relaciones/Pedidos de cliente - Pedidos a proveedor/uGenerarPedidosProvUtils.pas @@ -0,0 +1,187 @@ +unit uGenerarPedidosProvUtils; + +interface + +uses + SysUtils, Classes, uBizPedidosCliente, pngimage, JSDialog; + +type + TdmGenerarPedidosProv = class(TDataModule) + JsListaPedidosGenerados: TJSDialog; + end; + + function GenerarPedidosProv(const IDPedido : Integer) : Boolean; overload; + function GenerarPedidosProv(APedidoCli : IBizPedidoCliente) : Boolean; overload; + function GenerarPedidosProv : Boolean; overload; + +implementation + +{$R *.dfm} + +uses + uDialogUtils, + uPedidosClienteController, uPedidosProveedorController, uProveedoresController, + uDetallesPedidoProveedorController, uControllerDetallesBase, + uBizPedidosProveedor, uBizContactos, schPedidosProveedorClient_Intf; + +var + dmGenerarPedidosProv: TdmGenerarPedidosProv; + APedidosClienteController : IPedidosClienteController; + APedidosProveedorController : IPedidosProveedorController; + ADetallesPedidosProvController : IDetallesPedidoProveedorController; + AProveedoresController : IProveedoresController; + + +procedure Inicializar; +begin + dmGenerarPedidosProv := TdmGenerarPedidosProv.Create(nil); + APedidosClienteController := TPedidosClienteController.Create; + APedidosProveedorController := TPedidosProveedorController.Create; + ADetallesPedidosProvController := TDetallesPedidoProveedorController.Create; + AProveedoresController := TProveedoresController.Create; +end; + +procedure Finalizar; +begin + FreeAndNIL(dmGenerarPedidosProv); + APedidosClienteController := nil; + APedidosProveedorController := nil; + ADetallesPedidosProvController := nil; + AProveedoresController := nil; +end; + + +function GenerarPedidosProv(const IDPedido : Integer) : Boolean; overload; +var + APedido : IBizPedidoCliente; +begin + Result := False; + + try + if not Assigned(APedidosClienteController) then + Inicializar; + + APedido := APedidosClienteController.Buscar(IDPedido); + if Assigned(APedido) then + Result := GenerarPedidosProv(APedido); + finally + if Assigned(APedidosClienteController) then + Finalizar; + end; +end; + +function GenerarPedidosProv(APedidoCli : IBizPedidoCliente) : Boolean; overload; +var + APedidoProv : IBizPedidoProveedor; + AArticulosPend : IBizPedidoClienteArticulosPendientesPedirAProv; + ALista : TStringList; +begin + Result := False; + + if not Assigned(APedidoCli) then + raise Exception.Create('Pedido de cliente no asignado (GenerarPedidosProv)'); + + if not APedidoCli.DataTable.Active then + APedidoCli.DataTable.Active := True; + + if not Assigned(APedidosClienteController) then + Inicializar; + + AArticulosPend := APedidosClienteController.BuscarPendientesPedir(APedidoCli.ID); + if not Assigned(AArticulosPend) then + raise Exception.Create('Error al recuperar la lista de artculos pendientes de pedir (GenerarPedidosProv)'); + + ALista := TStringList.Create; + try + if not AArticulosPend.DataTable.Active then + AArticulosPend.DataTable.Active := True; + + if AArticulosPend.DataTable.RecordCount = 0 then + begin + ShowInfoMessage('Este pedido a cliente no tiene artculos pendientes que se tengan que pedir a los proveedores'); + Exit; + end; + + APedidoProv := NIL; + AArticulosPend.DataTable.First; + while not AArticulosPend.DataTable.EOF do + begin + if Assigned(APedidoProv) and + (AArticulosPend.ID_PROVEEDOR <> APedidoProv.ID_PROVEEDOR) then + begin + APedidosProveedorController.Guardar(APedidoProv); + ALista.Add(APedidoProv.REFERENCIA + ': ' + APedidoProv.NOMBRE); + APedidoProv := NIL; + end; + + if not Assigned(APedidoProv) then + begin + APedidoProv := APedidosProveedorController.Nuevo; + APedidoProv.Edit; + APedidoProv.Proveedor := (AProveedoresController.Buscar(AArticulosPend.ID_PROVEEDOR) as IBizProveedor); + APedidoProv.ID_PEDIDO_CLIENTE := APedidoCli.ID; + end; + + //OJO IMPORTANTE + //Siempre que vayamos a trabajar con los detalles debemos hacer un beginupdate de los mismos y un endupdate para + //obligarle siempre a recalcular los detalles una sola vez + ADetallesController.BeginUpdate(APedidoProv.Detalles); + + ADetallesPedidosProvController.Add(APedidoProv.Detalles, TIPO_DETALLE_CONCEPTO); + ADetallesPedidosProvController.AnadirArticulo(APedidoProv.Detalles, AArticulosPend.ID_ARTICULO); + with APedidoProv.Detalles do + begin + Edit; + CANTIDAD := AArticulosPend.CANT_PENDIENTE_PEDIR; + Post; + end; + ADetallesController.EndUpdate(APedidoProv.Detalles); + AArticulosPend.DataTable.Next; + end; + + if Assigned(APedidoProv) then + begin + APedidosProveedorController.Guardar(APedidoProv); + ALista.Add(APedidoProv.REFERENCIA + ': ' + APedidoProv.NOMBRE); + APedidoProv := NIL; + end; + + if ALista.Count > 0 then + begin + dmGenerarPedidosProv.JsListaPedidosGenerados.Content.Clear; + dmGenerarPedidosProv.JsListaPedidosGenerados.Content.AddStrings(ALista); + dmGenerarPedidosProv.JsListaPedidosGenerados.Execute; + end; + + Result := True; + finally + FreeAndNIL(ALista); + AArticulosPend := NIL; + + if Assigned(APedidosClienteController) then + Finalizar; + end; +end; + +function GenerarPedidosProv : Boolean; overload; +var + APedidoCli : IBizPedidoCliente; +begin + Result := False; + try + if not Assigned(APedidosClienteController) then + Inicializar; + + APedidoCli := APedidosClienteController.ElegirPedidos(APedidosClienteController.BuscarPendientes, + 'Elija el pedido de cliente que desea utilizar para dar de alta el pedido o pedidos a proveedor.' + , False); + + if Assigned(APedidoCli) then + Result := GenerarPedidosProv(APedidoCli); + finally + if Assigned(APedidosClienteController) then + Finalizar; + end; +end; + +end. diff --git a/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/PedProv_AlbProv_relation.bdsproj b/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/PedProv_AlbProv_relation.bdsproj new file mode 100644 index 0000000..44bd1fc --- /dev/null +++ b/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/PedProv_AlbProv_relation.bdsproj @@ -0,0 +1,529 @@ + + + + + + + + + + + + PedProv_AlbProv_relation.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + $00000000 + + + Borland Sample Components + Delphi 1.0 Compatibility Components + Borland MyBase DataAccess Components + TeeChart Components + Borland SimpleDataset Component (DBX) + ExpressBars extended items by Developer Express Inc. + ExpressBars by Developer Express Inc. + ExpressScheduler 2 by Developer Express Inc. + ExpressVerticalGrid by Developer Express Inc. + ExpressBars DBNavigator by Developer Express Inc. + ExpressBars extended DB items by Developer Express Inc. + ExpressSideBar by Developer Express Inc. + JVCL Band Objects + JVCL Non-Visual Components + JVCL Encryption and Compression Components + JVCL Dialog Components + JVCL Docking Components + JVCL DotNet Controls + JVCL EDI Components Designtime Package + JVCL HMI Controls design time unit + JVCL Interpreter Components + JVCL Jans Components + JVCL Managed Threads + JVCL Multimedia and Image Components + JVCL Network Components + JVCL Page Style Components + JVCL Plugin Components + JVCL Print Preview Components + JVCL Runtime Design Components + JVCL Time Framework + JVCL Unified Interbase Components + JVCL Validators and Error Provider Components + SMImport suite: data importing into dataset. Scalabium/Mike Shkolnik, 2000-2005 + SMExport suite: data export from dataset. Written by Mike Shkolnik/Scalabium, 1998-2004. + Intraweb 8.0 Design Package for Borland Development Studio 2006 + Internet Explorer Components + + + + diff --git a/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/PedProv_AlbProv_relation.dcu b/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/PedProv_AlbProv_relation.dcu new file mode 100644 index 0000000..8b59938 Binary files /dev/null and b/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/PedProv_AlbProv_relation.dcu differ diff --git a/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/PedProv_AlbProv_relation.dpk b/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/PedProv_AlbProv_relation.dpk new file mode 100644 index 0000000..4fe4e4a --- /dev/null +++ b/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/PedProv_AlbProv_relation.dpk @@ -0,0 +1,49 @@ +package PedProv_AlbProv_relation; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + rtl, + Base, + Contactos_model, + Contactos_controller, + PNG_D10, + vcl, + JSDialog100, + vclx, + vclactnband, + xmlrtl, + designide, + PedidosProveedor_model, + AlbaranesProveedor_controller, + AlbaranesProveedor_model, + PedidosProveedor_controller, + Inventario_controller, + Inventario_model; + +contains + uGenerarAlbaranesProvUtils in 'uGenerarAlbaranesProvUtils.pas'; + +end. diff --git a/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/PedProv_AlbProv_relation.dproj b/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/PedProv_AlbProv_relation.dproj new file mode 100644 index 0000000..93fd399 --- /dev/null +++ b/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/PedProv_AlbProv_relation.dproj @@ -0,0 +1,590 @@ + + + {69494a8c-0a35-41ea-b8ec-ea790bfc0662} + PedProv_AlbProv_relation.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\PedProv_AlbProv_relation.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 + Borland Sample Components + Delphi 1.0 Compatibility Components + Borland MyBase DataAccess Components + TeeChart Components + Borland SimpleDataset Component (DBX) + ExpressBars extended items by Developer Express Inc. + ExpressBars by Developer Express Inc. + ExpressScheduler 2 by Developer Express Inc. + ExpressVerticalGrid by Developer Express Inc. + ExpressBars DBNavigator by Developer Express Inc. + ExpressBars extended DB items by Developer Express Inc. + ExpressSideBar by Developer Express Inc. + JVCL Band Objects + JVCL Non-Visual Components + JVCL Encryption and Compression Components + JVCL Dialog Components + JVCL Docking Components + JVCL DotNet Controls + JVCL EDI Components Designtime Package + JVCL HMI Controls design time unit + JVCL Interpreter Components + JVCL Jans Components + JVCL Managed Threads + JVCL Multimedia and Image Components + JVCL Network Components + JVCL Page Style Components + JVCL Plugin Components + JVCL Print Preview Components + JVCL Runtime Design Components + JVCL Time Framework + JVCL Unified Interbase Components + JVCL Validators and Error Provider Components + SMImport suite: data importing into dataset. Scalabium/Mike Shkolnik, 2000-2005 + SMExport suite: data export from dataset. Written by Mike Shkolnik/Scalabium, 1998-2004. + Intraweb 8.0 Design Package for Borland Development Studio 2006 + Internet Explorer Components + PedProv_AlbProv_relation.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/PedProv_AlbProv_relation.rc b/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/PedProv_AlbProv_relation.rc new file mode 100644 index 0000000..e69de29 diff --git a/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/PedProv_AlbProv_relation.res b/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/PedProv_AlbProv_relation.res new file mode 100644 index 0000000..36f26e2 Binary files /dev/null and b/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/PedProv_AlbProv_relation.res differ diff --git a/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/uGenerarAlbaranesProvUtils.dcu b/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/uGenerarAlbaranesProvUtils.dcu new file mode 100644 index 0000000..6ace440 Binary files /dev/null and b/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/uGenerarAlbaranesProvUtils.dcu differ diff --git a/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/uGenerarAlbaranesProvUtils.dfm b/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/uGenerarAlbaranesProvUtils.dfm new file mode 100644 index 0000000..fcd1ccc --- /dev/null +++ b/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/uGenerarAlbaranesProvUtils.dfm @@ -0,0 +1,311 @@ +object dmGenerarAlbaranesProv: TdmGenerarAlbaranesProv + OldCreateOrder = False + Height = 176 + Width = 254 + object JsListaAlbaranesGenerados: TJSDialog + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Se ha generado el albar'#195#161'n...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Continuar' + Value = 200 + Cancel = True + end> + ButtonBar.Buttons = [] + ButtonBar.Cancel = cbOK + ButtonBar.UseCancel = False + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 72 + Top = 16 + end +end diff --git a/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/uGenerarAlbaranesProvUtils.pas b/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/uGenerarAlbaranesProvUtils.pas new file mode 100644 index 0000000..4d1bce0 --- /dev/null +++ b/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/uGenerarAlbaranesProvUtils.pas @@ -0,0 +1,373 @@ +unit uGenerarAlbaranesProvUtils; + +interface + +uses + Windows, SysUtils, Classes, uBizPedidosProveedor, pngimage, JSDialog; + +type + TdmGenerarAlbaranesProv = class(TDataModule) + JsListaAlbaranesGenerados: TJSDialog; + end; + + function GenerarAlbaranProv(const IDPedido : Integer) : Boolean; overload; + function GenerarAlbaranProv(APedido : IBizPedidoProveedor) : Boolean; overload; + function GenerarAlbaranProv : Boolean; overload; + function RecibirPedidoProv(APedido: IBizPedidoProveedor): Boolean; overload; + function RecibirPedidoProv: Boolean; overload; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, uDialogUtils, uDataTableUtils, uBizDetallesPedidoProveedor, + uBizDetallesAlbaranProveedor, uPedidosProveedorController, + uDetallesPedidoProveedorController, uAlbaranesProveedorController, + uProveedoresController, uDetallesAlbaranProveedorController, + uControllerDetallesBase, uBizAlbaranesProveedor, uBizContactos, + schPedidosProveedorClient_Intf, schAlbaranesProveedorClient_Intf, + uInventarioController, uBizInventario; + +var + dmGenerarAlbaranesCli: TdmGenerarAlbaranesProv; + APedidosProveedorController : IPedidosProveedorController; + ADetallesPedidosProveedorController : IDetallesPedidoProveedorController; + AAlbaranesProveedorController : IAlbaranesProveedorController; + ADetallesAlbaranesController : IDetallesAlbaranProveedorController; + AProveedoresController : IProveedoresController; + AInventarioController : IInventarioController; + +{ Mtodos auxiliares } +procedure CopiarPedidoAAlbaran(APedido: IBizPedidoProveedor; + AAlbaran : IBizAlbaranProveedor); +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado (CopiarPedidoAAlbaran)'); + + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado (CopiarPedidoAAlbaran)'); + + if not APedido.DataTable.Active then + APedido.DataTable.Active := True; + + // El albarn tiene que venir ya abierto y posicionado donde hay que copiar + AAlbaran.ID_PROVEEDOR := APedido.ID_PROVEEDOR; + AAlbaran.ID_PEDIDO := APedido.ID; + //Ojo se asignar al albarn el almacn ddestino que tenga el primer pedido del proveedor determinado + AAlbaran.ID_ALMACEN := APedido.ID_ALMACEN; + AAlbaran.CALLE := APedido.CALLE; + AAlbaran.CODIGO_POSTAL := APedido.CODIGO_POSTAL; + AAlbaran.POBLACION := APedido.POBLACION; + AAlbaran.PROVINCIA := APedido.PROVINCIA; + AAlbaran.PERSONA_CONTACTO := APedido.PERSONA_CONTACTO; + AAlbaran.TELEFONO := APedido.TELEFONO; + AAlbaran.IMPORTE_NETO := APedido.IMPORTE_NETO; + AAlbaran.IMPORTE_PORTE := APedido.IMPORTE_PORTE; + AAlbaran.DESCUENTO := APedido.DESCUENTO; + AAlbaran.IMPORTE_DESCUENTO := APedido.IMPORTE_DESCUENTO; + AAlbaran.BASE_IMPONIBLE := APedido.BASE_IMPONIBLE; + AAlbaran.IVA := APedido.IVA; + AAlbaran.IMPORTE_IVA := APedido.IMPORTE_IVA; + AAlbaran.IMPORTE_TOTAL := APedido.IMPORTE_TOTAL; + AAlbaran.DataTable.FieldByName(fld_AlbaranesProveedorOBSERVACIONES).AsVariant := APedido.DataTable.FieldByName(fld_PedidosProveedorOBSERVACIONES).AsVariant; + AAlbaran.ID_FORMA_PAGO := APedido.ID_FORMA_PAGO; +end; + +procedure CopiarArticulosPendAAlbaran( + APedido: IBizPedidoProveedor; + AAlbaran: IBizAlbaranProveedor; + AArticulosPendientes: IBizDetallesPedidoProveedorPend); +var + i : integer; + ADetalles : IBizDetallesAlbaranProveedor; + ADetallesController : IDetallesAlbaranProveedorController; +begin + + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado (CopiarArticulosPendAAlbaran)'); + + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado (CopiarArticulosPendAAlbaran)'); + + if not Assigned(AArticulosPendientes) then + raise Exception.Create ('Artculos pendientes no asignado (CopiarArticulosPendAAlbaran)'); + + if not AArticulosPendientes.DataTable.Active then + AArticulosPendientes.DataTable.Active := True; + + // El albarn tiene que venir ya abierto y posicionado donde hay que copiar + + ADetalles := AAlbaran.Detalles; + ADetallesController := TDetallesAlbaranProveedorController.Create; + try + //OJO IMPORTANTE + //Siempre que vayamos a trabajar con los detalles debemos hacer un beginupdate de los mismos y un endupdate para + //obligarle siempre a recalcular los detalles una sola vez + ADetallesController.BeginUpdate(ADetalles); + + AArticulosPendientes.DataTable.First; + for i := 0 to AArticulosPendientes.DataTable.RecordCount - 1 do + begin + APedido.Detalles.First; + if (APedido.Detalles.Locate('ID_ARTICULO', AArticulosPendientes.ID_ARTICULO, [])) then + if (AArticulosPendientes.CANTIDAD > 0) then + begin + ADetallesController.Add(ADetalles, TIPO_DETALLE_CONCEPTO); + ADetalles.Edit; + ADetalles.ID_PEDIDO := APedido.Detalles.ID_PEDIDO; + ADetalles.REFERENCIA := APedido.Detalles.REFERENCIA; + ADetalles.ID_ARTICULO := APedido.Detalles.ID_ARTICULO; + ADetalles.CONCEPTO := APedido.Detalles.CONCEPTO; + ADetalles.CANTIDAD := AArticulosPendientes.CANTIDAD; + ADetalles.IMPORTE_UNIDAD := APedido.Detalles.IMPORTE_UNIDAD; + ADetalles.IMPORTE_TOTAL := APedido.Detalles.IMPORTE_TOTAL; + ADetalles.DESCUENTO := APedido.Detalles.DESCUENTO; + ADetalles.IMPORTE_PORTE := APedido.Detalles.IMPORTE_PORTE; + ADetalles.VISIBLE := APedido.Detalles.VISIBLE; + ADetalles.REFERENCIA_PROVEEDOR := APedido.Detalles.REFERENCIA_PROVEEDOR; + ADetalles.Post; + AArticulosPendientes.Next; + end; + end; + finally + ADetallesController.EndUpdate(ADetalles); + ADetallesController := NIL; + end; +end; + +procedure Inicializar; +begin + dmGenerarAlbaranesCli := TdmGenerarAlbaranesProv.Create(nil); + APedidosProveedorController := TPedidosProveedorController.Create; + ADetallesPedidosProveedorController := TDetallesPedidoProveedorController.Create; + AAlbaranesProveedorController := TAlbaranesProveedorController.Create; + ADetallesAlbaranesController := TDetallesAlbaranProveedorController.Create; + AProveedoresController := TProveedoresController.Create; + AInventarioController := TInventarioController.Create; +end; + +procedure Finalizar; +begin + FreeAndNIL(dmGenerarAlbaranesCli); + APedidosProveedorController := nil; + ADetallesPedidosProveedorController := nil; + AAlbaranesProveedorController := nil; + ADetallesAlbaranesController := nil; + AProveedoresController := nil; + AInventarioController := nil; +end; + + +function GenerarAlbaranProv(const IDPedido : Integer) : Boolean; overload; +var + APedido : IBizPedidoProveedor; +begin + try + if not Assigned(APedidosProveedorController) then + Inicializar; + + APedido := APedidosProveedorController.Buscar(IDPedido); + Result := GenerarAlbaranProv(APedido); + + if Assigned(APedidosProveedorController) then + Finalizar; + finally + APedido := NIL; + end; +end; + +function GenerarAlbaranProv(APedido : IBizPedidoProveedor) : Boolean; overload; +var + ARespuesta : Integer; + AAlbaran : IBizAlbaranProveedor; + AArticulosPendientes: IBizDetallesPedidoProveedorPend; + +begin + Result := False; + + if not Assigned(APedido) then + raise Exception.Create('Pedido de proveedor no asignado (GenerarAlbaranProv)'); + + if not APedido.DataTable.Active then + APedido.DataTable.Active := True; + + try + if not Assigned(APedidosProveedorController) then + Inicializar; + + AArticulosPendientes := ADetallesPedidosProveedorController.ArticulosPendientes(APedido.ID); + if not Assigned(AArticulosPendientes) then + raise Exception.Create('Error al recuperar los artculos sin albarn del pedido (GenerarAlbaranProv)'); + + AArticulosPendientes.DataTable.Active := True; + if AArticulosPendientes.DataTable.RecordCount = 0 then + begin + ARespuesta := ShowConfirmMessage('Generar albarn a partir del pedido', 'Todos los artculos de este pedido ya figuran en uno o ms albaranes de proveedor.' + + #10#13 + 'Desea generar de todas formas otro albarn para este pedido?'); + if (ARespuesta = IDNO) then + Exit; // Aunque es un exit, se ejecuta la parte del finally antes de salir. + end; + + AAlbaran := AAlbaranesProveedorController.Nuevo; + CopiarPedidoAAlbaran(APedido, AAlbaran); + CopiarArticulosPendAAlbaran(APedido, AAlbaran, AArticulosPendientes); + + //Sustituir por if de guardar + if AAlbaranesProveedorController.Guardar(AAlbaran) then + begin +// ShowWarningMessage('Todos los artculos que contiene el pedido no estn en el catlogo, y por lo tanto no se puede generar el albarn'); + + with dmGenerarAlbaranesCli.JsListaAlbaranesGenerados do + begin + Instruction.Text := 'Se ha generado el albarn'; + Content.Clear; + Content.Add(Format('Se ha generado correctamente el albarn %s a partir del pedido de cliente' + #10#13, [AAlbaran.REFERENCIA])); + Execute; + + ARespuesta := CustomButtonResult; + case ARespuesta of + 100 : begin + // Ver el albarn + AAlbaranesProveedorController.Ver(AAlbaran); + end; + 200 : // Continuar; + end; + end; + end; + + Result := True; + finally + AArticulosPendientes := NIL; + if Assigned(APedidosProveedorController) then + Finalizar; + end; +end; + +function GenerarAlbaranProv : Boolean; overload; +var + APedido : IBizPedidoProveedor; +begin + Result := False; + try + if not Assigned(APedidosProveedorController) then + Inicializar; + + APedido := APedidosProveedorController.ElegirPedidos(APedidosProveedorController.BuscarPendientesRecepcion, + 'Elija el pedido de proveedor que desea utilizar para dar de alta el albarn correspondiente.' + , False); + if Assigned(APedido) then + Result := GenerarAlbaranProv(APedido); + + finally + if Assigned(APedidosProveedorController) then + Finalizar; + end; +end; + +function RecibirPedidoProv(APedido: IBizPedidoProveedor): Boolean; +var + bGenerarAlbaran : Boolean; + ARespuesta : Integer; + + AArticulosPendientes: IBizDetallesPedidoProveedorPend; + AAlbaran : IBizAlbaranProveedor; + AInventarioRecibido: IBizInventario; + +begin + Result := False; + bGenerarAlbaran := False; + AInventarioRecibido := NIL; + + if not Assigned(AInventarioController) then + Inicializar; + + // Hay almacn asociado al pedido? + if APedido.ID_ALMACEN = 0 then + begin + if (ShowConfirmMessage('Recepcin de pedido a proveedor', 'Este pedido no tiene un almacn asociado por lo que se generar el albarn de proveedor correspondiente sin hacer ningn cambio en el stock de los almacenes.' + + #10#13 + #10#13 + 'Desea continuar?') = IDYES) then + bGenerarAlbaran := True; + end + else begin + try + // En AInventarioRecibido tenemos la lista de articulos que hemos recibido y + // que utilizaremos para hacer el albarn + AArticulosPendientes := ADetallesPedidosProveedorController.ArticulosPendientes(APedido.ID); + if not Assigned(AArticulosPendientes) then + raise Exception.Create('Error al recuperar los artculos pendientes de recibir del pedido (GenerarAlbaranProv)'); + + AArticulosPendientes.DataTable.Active := True; + if AArticulosPendientes.DataTable.RecordCount = 0 then + begin + ARespuesta := ShowConfirmMessage('Generar albarn a partir del pedido', 'Todos los artculos de este pedido ya figuran en uno o ms albaranes de proveedor.' + + #10#13 + 'Desea generar de todas formas otro albarn para este pedido?'); + if (ARespuesta = IDNO) then + Exit; // Aunque es un exit, se ejecuta la parte del finally antes de salir. + end; + + bGenerarAlbaran := AInventarioController.EntradaPedido(nil, APedido, AArticulosPendientes, AInventarioRecibido); + except + on E : Exception do + ShowMessage(E.Message); + end; + end; + + if bGenerarAlbaran then + begin + try + AAlbaran := AAlbaranesProveedorController.Nuevo; + // En AInventarioRecibido tenemos la lista de articulos que hemos recibido y + // que utilizaremos para hacer el albarn + if AAlbaranesProveedorController.Anadir(AAlbaran, APedido.ID, AInventarioRecibido) then + begin + AAlbaranesProveedorController.Guardar(AAlbaran); + AAlbaranesProveedorController.Ver(AAlbaran); + + //Si el pedido tiene obra relacionada y el destino del pedido no es esa obra, preguntamos si quiere reservar de los materiales para esa obra + if (APedido.ID_OBRA > 0) + and (APedido.ID_OBRA <> APedido.ID_ALMACEN) then + begin + if Application.MessageBox(PChar('Desea realizar la reserva del material recibido para la obra ' + APedido.NOMBRE_OBRA + ', asociada al pedido'), 'Atencin', MB_YESNO) = IDYES then + begin + AInventarioRecibido.TipoMovimiento := tReserva; + AInventarioRecibido.IDAlmacenOrigen := APedido.ID_ALMACEN; + AInventarioRecibido.IDAlmacenDestino := APedido.ID_OBRA; + AInventarioController.Guardar(AInventarioRecibido, AAlbaran.FECHA_ALBARAN, ('Reserva para obra ' + APedido.NOMBRE_OBRA + ' del pedido ' + APedido.REFERENCIA), False); + end; + end; + end; + finally + AAlbaran := NIL; + AInventarioRecibido := Nil; + end; + end; + + if Assigned(AAlbaranesProveedorController) then + Finalizar; + + // actRefrescar.Execute; +end; + +function RecibirPedidoProv: Boolean; overload; +var + APedido : IBizPedidoProveedor; +begin + Result := False; + try + if not Assigned(APedidosProveedorController) then + Inicializar; + + APedido := APedidosProveedorController.ElegirPedidos(APedidosProveedorController.BuscarPendientesRecepcion, + 'Elija el pedido de proveedor que desea recibir.' + , False); + if Assigned(APedido) then + Result := RecibirPedidoProv(APedido); + + finally + if Assigned(APedidosProveedorController) then + Finalizar; + end; +end; + +end. diff --git a/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/PedProv_FacProv_relation.bdsproj b/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/PedProv_FacProv_relation.bdsproj new file mode 100644 index 0000000..a3c68fc --- /dev/null +++ b/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/PedProv_FacProv_relation.bdsproj @@ -0,0 +1,530 @@ + + + + + + + + + + + + PedProv_FacProv_relation.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + $00000000 + + + + Borland Sample Components + Delphi 1.0 Compatibility Components + Borland MyBase DataAccess Components + TeeChart Components + Borland SimpleDataset Component (DBX) + ExpressBars extended items by Developer Express Inc. + ExpressBars by Developer Express Inc. + ExpressScheduler 2 by Developer Express Inc. + ExpressVerticalGrid by Developer Express Inc. + ExpressBars DBNavigator by Developer Express Inc. + ExpressBars extended DB items by Developer Express Inc. + ExpressSideBar by Developer Express Inc. + JVCL Band Objects + JVCL Non-Visual Components + JVCL Encryption and Compression Components + JVCL Dialog Components + JVCL Docking Components + JVCL DotNet Controls + JVCL EDI Components Designtime Package + JVCL HMI Controls design time unit + JVCL Interpreter Components + JVCL Jans Components + JVCL Managed Threads + JVCL Multimedia and Image Components + JVCL Network Components + JVCL Page Style Components + JVCL Plugin Components + JVCL Print Preview Components + JVCL Runtime Design Components + JVCL Time Framework + JVCL Unified Interbase Components + JVCL Validators and Error Provider Components + SMImport suite: data importing into dataset. Scalabium/Mike Shkolnik, 2000-2005 + SMExport suite: data export from dataset. Written by Mike Shkolnik/Scalabium, 1998-2004. + Intraweb 8.0 Design Package for Borland Development Studio 2006 + Internet Explorer Components + + + + diff --git a/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/PedProv_FacProv_relation.dcu b/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/PedProv_FacProv_relation.dcu new file mode 100644 index 0000000..eaddc8d Binary files /dev/null and b/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/PedProv_FacProv_relation.dcu differ diff --git a/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/PedProv_FacProv_relation.dpk b/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/PedProv_FacProv_relation.dpk new file mode 100644 index 0000000..307c3d1 --- /dev/null +++ b/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/PedProv_FacProv_relation.dpk @@ -0,0 +1,36 @@ +package PedProv_FacProv_relation; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + Base, + FacturasProveedor_controller, + PedidosProveedor_controller, + FacturasProveedor_model; + +contains + uGenerarFacturasProvPedUtils in 'uGenerarFacturasProvPedUtils.pas' {dmGenerarFacturasProvPed}; + +end. diff --git a/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/PedProv_FacProv_relation.dproj b/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/PedProv_FacProv_relation.dproj new file mode 100644 index 0000000..36fe563 --- /dev/null +++ b/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/PedProv_FacProv_relation.dproj @@ -0,0 +1,578 @@ + + + + {69494a8c-0a35-41ea-b8ec-ea790bfc0662} + PedProv_FacProv_relation.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\PedProv_FacProv_relation.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 + Borland Sample Components + Delphi 1.0 Compatibility Components + Borland MyBase DataAccess Components + TeeChart Components + Borland SimpleDataset Component (DBX) + ExpressBars extended items by Developer Express Inc. + ExpressBars by Developer Express Inc. + ExpressScheduler 2 by Developer Express Inc. + ExpressVerticalGrid by Developer Express Inc. + ExpressBars DBNavigator by Developer Express Inc. + ExpressBars extended DB items by Developer Express Inc. + ExpressSideBar by Developer Express Inc. + JVCL Band Objects + JVCL Non-Visual Components + JVCL Encryption and Compression Components + JVCL Dialog Components + JVCL Docking Components + JVCL DotNet Controls + JVCL EDI Components Designtime Package + JVCL HMI Controls design time unit + JVCL Interpreter Components + JVCL Jans Components + JVCL Managed Threads + JVCL Multimedia and Image Components + JVCL Network Components + JVCL Page Style Components + JVCL Plugin Components + JVCL Print Preview Components + JVCL Runtime Design Components + JVCL Time Framework + JVCL Unified Interbase Components + JVCL Validators and Error Provider Components + SMImport suite: data importing into dataset. Scalabium/Mike Shkolnik, 2000-2005 + SMExport suite: data export from dataset. Written by Mike Shkolnik/Scalabium, 1998-2004. + Intraweb 8.0 Design Package for Borland Development Studio 2006 + Internet Explorer Components + PedProv_FacProv_relation.dpk + + + + + MainSource + + + + + + +
dmGenerarFacturasProvPed
+
+
+
+ diff --git a/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/PedProv_FacProv_relation.rc b/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/PedProv_FacProv_relation.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/PedProv_FacProv_relation.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/PedProv_FacProv_relation.res b/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/PedProv_FacProv_relation.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/PedProv_FacProv_relation.res differ diff --git a/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/uGenerarFacturasProvPedUtils.dcu b/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/uGenerarFacturasProvPedUtils.dcu new file mode 100644 index 0000000..359d89b Binary files /dev/null and b/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/uGenerarFacturasProvPedUtils.dcu differ diff --git a/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/uGenerarFacturasProvPedUtils.dfm b/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/uGenerarFacturasProvPedUtils.dfm new file mode 100644 index 0000000..e4eaa87 --- /dev/null +++ b/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/uGenerarFacturasProvPedUtils.dfm @@ -0,0 +1,311 @@ +object dmGenerarFacturasProvPed: TdmGenerarFacturasProvPed + OldCreateOrder = False + Height = 176 + Width = 254 + object JsListaFacturasGeneradas: TJSDialog + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Se han generado las facturas...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Continuar' + Value = 200 + Cancel = True + end> + ButtonBar.Buttons = [] + ButtonBar.Cancel = cbOK + ButtonBar.UseCancel = False + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 72 + Top = 16 + end +end diff --git a/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/uGenerarFacturasProvPedUtils.pas b/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/uGenerarFacturasProvPedUtils.pas new file mode 100644 index 0000000..e1462b2 --- /dev/null +++ b/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/uGenerarFacturasProvPedUtils.pas @@ -0,0 +1,448 @@ +unit uGenerarFacturasProvPedUtils; + +interface + +uses + Windows, SysUtils, Classes, uBizPedidosProveedor, uBizFacturasProveedor, pngimage, JSDialog; + +type + TdmGenerarFacturasProvPed = class(TDataModule) + JsListaFacturasGeneradas: TJSDialog; + end; + + function GenerarFacturaProvPed(const IDPedido : Integer; const CopiarDetalles: Boolean = True) : Boolean; overload; + function GenerarFacturaProvPed(APedidos : IBizPedidoProveedor; const CopiarDetalles: Boolean = True) : Boolean; overload; + function GenerarFacturaProvPed : Boolean; overload; + + function GenerarFacturas(AFacturas : IBizFacturaProveedor; AListaPedidos : IBizPedidoProveedor; const CopiarDetalles: Boolean = True): Boolean; + +implementation + +{$R *.dfm} + +uses + uDialogUtils, uDADataTable, + uBizDetallesPedidoProveedor, + uPedidosProveedorController, uDetallesPedidoProveedorController, + uFacturasProveedorController, uControllerDetallesBase, + schPedidosProveedorClient_Intf, schFacturasProveedorClient_Intf, + uBizDetallesFacturaProveedor, uDetallesFacturaProveedorController; + +// , +// , uProveedoresController, +// , + + +// , uBizContactos, +// schPedidosProveedorClient_Intf; + +var + dmGenerarFacturasProvPed: TdmGenerarFacturasProvPed; + APedidosProveedorController : IPedidosProveedorController; + ADetallesPedidosProveedorController : IDetallesPedidoProveedorController; + AFacturasProveedorController : IFacturasProveedorController; +// AProveedoresController : IProveedoresController; + +{ Mtodos auxiliares } +{procedure CopiarPedidoAPedido(APedido: IBizPedidoCliente; + APedido : IBizFacturaProveedor); +begin + if not Assigned(APedido) then + raise Exception.Create ('Albarn no asignado (CopiarPedidoAPedido)'); + + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado (CopiarPedidoAPedido)'); + + if not APedido.DataTable.Active then + APedido.DataTable.Active := True; + + // El albarn tiene que venir ya abierto y posicionado donde hay que copiar + APedido.ID_CLIENTE := APedido.ID_CLIENTE; + APedido.ID_PEDIDO := APedido.ID; + APedido.CALLE := APedido.CALLE; + APedido.CODIGO_POSTAL := APedido.CODIGO_POSTAL; + APedido.POBLACION := APedido.POBLACION; + APedido.PROVINCIA := APedido.PROVINCIA; + APedido.PERSONA_CONTACTO := APedido.PERSONA_CONTACTO; + APedido.TELEFONO := APedido.TELEFONO; + APedido.IMPORTE_NETO := APedido.IMPORTE_NETO; + APedido.IMPORTE_PORTE := APedido.IMPORTE_PORTE; + APedido.DESCUENTO := APedido.DESCUENTO; + APedido.IMPORTE_DESCUENTO := APedido.IMPORTE_DESCUENTO; + APedido.BASE_IMPONIBLE := APedido.BASE_IMPONIBLE; + APedido.IVA := APedido.IVA; + APedido.IMPORTE_IVA := APedido.IMPORTE_IVA; + APedido.IMPORTE_TOTAL := APedido.IMPORTE_TOTAL; + APedido.DataTable.FieldByName(fld_PedidosClienteOBSERVACIONES).AsVariant := APedido.DataTable.FieldByName(fld_PedidosClienteOBSERVACIONES).AsVariant; + APedido.ID_FORMA_PAGO := APedido.ID_FORMA_PAGO; +end; + +procedure CopiarArticulosPendAPedido( + APedido: IBizPedidoCliente; + APedido: IBizFacturaProveedor; + AArticulosPendientes: IBizPedidoClienteArticulosPend); +var + i : integer; + ADetalles : IBizDetallesFacturaProveedor; + ADetallesController : IDetallesFacturaProveedorController; +begin + if not Assigned(APedido) then + raise Exception.Create ('Albarn no asignado (CopiarArticulosPendAPedido)'); + + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado (CopiarArticulosPendAPedido)'); + + if not Assigned(AArticulosPendientes) then + raise Exception.Create ('Artculos pendientes no asignado (CopiarArticulosPendAPedido)'); + + if not AArticulosPendientes.DataTable.Active then + AArticulosPendientes.DataTable.Active := True; + + // El albarn tiene que venir ya abierto y posicionado donde hay que copiar + + ADetalles := APedido.Detalles; + ADetallesController := TDetallesFacturaProveedorController.Create; + try + //OJO IMPORTANTE + //Siempre que vayamos a trabajar con los detalles debemos hacer un beginupdate de los mismos y un endupdate para + //obligarle siempre a recalcular los detalles una sola vez + ADetallesController.BeginUpdate(ADetalles); + + AArticulosPendientes.DataTable.First; + for i := 0 to AArticulosPendientes.DataTable.RecordCount - 1 do + begin + APedido.Detalles.First; + if (APedido.Detalles.Locate('ID_ARTICULO', AArticulosPendientes.ID_ARTICULO, [])) then + if (AArticulosPendientes.CANTIDAD_PENDIENTE > 0) then + begin + ADetallesController.Add(ADetalles, TIPO_DETALLE_CONCEPTO); + ADetalles.Edit; + ADetalles.REFERENCIA := APedido.Detalles.REFERENCIA; + ADetalles.ID_ARTICULO := APedido.Detalles.ID_ARTICULO; + ADetalles.CONCEPTO := APedido.Detalles.CONCEPTO; + ADetalles.CANTIDAD := AArticulosPendientes.CANTIDAD_PENDIENTE; + ADetalles.IMPORTE_UNIDAD := APedido.Detalles.IMPORTE_UNIDAD; + ADetalles.IMPORTE_TOTAL := APedido.Detalles.IMPORTE_TOTAL; + ADetalles.DESCUENTO := APedido.Detalles.DESCUENTO; + ADetalles.IMPORTE_PORTE := APedido.Detalles.IMPORTE_PORTE; + ADetalles.VISIBLE := APedido.Detalles.VISIBLE; + ADetalles.REFERENCIA_PROVEEDOR := APedido.Detalles.REFERENCIA_PROVEEDOR; + ADetalles.Post; + AArticulosPendientes.Next; + end; + end; + finally + ADetallesController.EndUpdate(ADetalles); + ADetallesController := NIL; + end; +end; } + +procedure CopiarArticulosPedido(AOrigen: IBizDetallesPedidoProveedor; + ADestino : IBizDetallesFacturaProveedor); +var + i : integer; + ADetallesController : IDetallesFacturaProveedorController; +begin + if not Assigned(AOrigen) then + raise Exception.Create ('Origen no asignado (CopiarArticulosPedido)'); + + if not Assigned(ADestino) then + raise Exception.Create ('Destino no asignado (CopiarArticulosPedido)'); + + if not AOrigen.DataTable.Active then + AOrigen.DataTable.Active := True; + + if not ADestino.DataTable.Active then + ADestino.DataTable.Active := True; + + ADetallesController := TDetallesFacturaProveedorController.Create; + try + //OJO IMPORTANTE + //Siempre que vayamos a trabajar con los detalles debemos hacer un beginupdate de los mismos y un endupdate para + //obligarle siempre a recalcular los detalles una sola vez + ADetallesController.BeginUpdate(ADestino); + + AOrigen.DataTable.First; + for i := 0 to AOrigen.DataTable.RecordCount - 1 do + begin + ADetallesController.Add(ADestino, TIPO_DETALLE_CONCEPTO); + ADestino.Edit; + ADestino.REFERENCIA := AOrigen.REFERENCIA; + if AOrigen.ID_ARTICULO > 0 then + ADestino.ID_ARTICULO := AOrigen.ID_ARTICULO; + ADestino.CONCEPTO := AOrigen.CONCEPTO; + ADestino.CANTIDAD := AOrigen.CANTIDAD; + ADestino.IMPORTE_UNIDAD := AOrigen.IMPORTE_UNIDAD; + ADestino.IMPORTE_TOTAL := AOrigen.IMPORTE_TOTAL; + ADestino.DESCUENTO := AOrigen.DESCUENTO; + ADestino.IMPORTE_PORTE := AOrigen.IMPORTE_PORTE; + ADestino.VISIBLE := AOrigen.VISIBLE; + ADestino.REFERENCIA_PROVEEDOR := AOrigen.REFERENCIA_PROVEEDOR; + ADestino.Post; + AOrigen.Next; + end; + finally + ADetallesController.EndUpdate(ADestino); + ADetallesController := NIL; + end; +end; + +procedure Inicializar; +begin + dmGenerarFacturasProvPed := TdmGenerarFacturasProvPed.Create(nil); + APedidosProveedorController := TPedidosProveedorController.Create; + ADetallesPedidosProveedorController := TDetallesPedidoProveedorController.Create; + AFacturasProveedorController := TFacturasProveedorController.Create; +end; + +procedure Finalizar; +begin + FreeAndNIL(dmGenerarFacturasProvPed); + APedidosProveedorController := nil; + ADetallesPedidosProveedorController := nil; + AFacturasProveedorController := nil; +end; + + +function GenerarFacturaProvPed(const IDPedido : Integer; const CopiarDetalles: Boolean = True) : Boolean; overload; +var + APedido : IBizPedidoProveedor; +begin + Result := False; + try + if not Assigned(APedidosProveedorController) then + Inicializar; + + APedido := APedidosProveedorController.Buscar(IDPedido); + if Assigned(APedido) then + Result := GenerarFacturaProvPed(APedido, CopiarDetalles); + + if Assigned(APedidosProveedorController) then + Finalizar; + + finally + APedido := Nil; + end; +end; + +function GenerarFacturaProvPed(APedidos : IBizPedidoProveedor; const CopiarDetalles: Boolean = True) : Boolean; overload; +var + AFacturasNuevas : IBizFacturaProveedor; + i: Integer; +begin + Result := False; + + if not Assigned(APedidos) then + raise Exception.Create('Pedido de proveedor no asignado (GenerarFacturaProvPed)'); + + if not APedidos.DataTable.Active then + APedidos.DataTable.Active := True; + + if not Assigned(APedidosProveedorController) then + Inicializar; + + try + AFacturasNuevas := AFacturasProveedorController.Nuevo(False); + if GenerarFacturas(AFacturasNuevas, APedidos, CopiarDetalles) then + begin + if AFacturasNuevas.DataTable.RecordCount = 1 then + begin + if AFacturasNuevas.TIPO = CTE_TIPO_FACTURA then + ShowInfoMessage('La factura se ha dado de alta con el cdigo ' + AFacturasNuevas.REFERENCIA) + else + ShowInfoMessage('El abono se ha dado de alta con el cdigo ' + AFacturasNuevas.REFERENCIA); + end + else begin + with dmGenerarFacturasProvPed.JsListaFacturasGeneradas.Content do + begin + Clear; + AFacturasNuevas.DataTable.Last; + for i := 0 to AFacturasNuevas.DataTable.RecordCount - 1 do + begin + if Length(AFacturasNuevas.REFERENCIA) > 0 then + Add(AFacturasNuevas.REFERENCIA + ': ' + AFacturasNuevas.NOMBRE); + AFacturasNuevas.DataTable.Prior; + end; + end; + dmGenerarFacturasProvPed.JsListaFacturasGeneradas.Execute; + end; + + Result := True; + end; + finally + AFacturasNuevas := NIL; + if Assigned(APedidosProveedorController) then + Finalizar; + end; +end; + +function GenerarFacturaProvPed : Boolean; overload; +var + APedidos : IBizPedidoProveedor; +begin + Result := False; + if not Assigned(APedidosProveedorController) then + Inicializar; + + APedidos := APedidosProveedorController.ElegirPedidos(APedidosProveedorController.BuscarSinFacturar, + 'Elija el pedido o pedidos de proveedor que desea utilizar para dar de alta la factura.' + + #10#13 + 'Si elige Pedidos de proveedores diferentes se dar de alta una factura por cada uno de ellos.' , True); + + if Assigned(APedidos) then + begin + if (ShowConfirmMessage('Generar factura', Format('Desea copiar todos los conceptos de/los pedido/s seleccionados a sus facturas correspondientes?', [])) = IDYES) then + Result := GenerarFacturaProvPed(APedidos) + else + Result := GenerarFacturaProvPed(APedidos, False); + end; + + if Assigned(APedidosProveedorController) then + Finalizar; +end; + +function GenerarFacturas(AFacturas : IBizFacturaProveedor; AListaPedidos : IBizPedidoProveedor; const CopiarDetalles: Boolean = True): Boolean; +var + AFacturaActual : IBizFacturaProveedor; + APedidosController : IPedidosProveedorController; + I: Integer; + bEnEdicion : Boolean; + +begin + // ATENCIN!!! AFacturas tiene que estar vacio para no pisar facturas + // ya generadas. + if not Assigned(AFacturas) then + raise Exception.Create ('Factura no asignado (Anadir)'); + + if not Assigned(AListaPedidos) then + raise Exception.Create ('Pedidos no asignados (Anadir)'); + + if not AFacturas.DataTable.Active then + AFacturas.DataTable.Active := True; + + if not AListaPedidos.DataTable.Active then + AListaPedidos.DataTable.Active := True; + + APedidosController := TPedidosProveedorController.Create; + try + // Ordenar por fecha de albaran + AListaPedidos.DataTable.Sort([fld_PedidosProveedorFECHA_PEDIDO], [uDADataTable.sdAscending]); + AListaPedidos.First; + for I := 0 to AListaPedidos.DataTable.RecordCount - 1 do + begin + AListaPedidos._Proveedor := NIL; + AFacturaActual := NIL; + + // Busco si hay alguna factura ya hecha de ese Proveedor + AFacturas.DataTable.First; + if AFacturas.DataTable.Locate(fld_FacturasProveedorID_PROVEEDOR, AListaPedidos.ID_PROVEEDOR, []) then + begin + AFacturaActual := AFacturas; + AFacturasProveedorController.RecuperarProveedor(AFacturaActual); + AFacturaActual.Proveedor.DataTable.Active := True; + end + else begin + // No hay factura de ese Proveedor. Creo una nueva + AFacturasProveedorController.Anadir(AFacturas); + APedidosController.RecuperarProveedor(AListaPedidos); + AListaPedidos.Proveedor.DataTable.Active := True; + AFacturas.Proveedor := AListaPedidos.Proveedor; + AFacturaActual := AFacturas; + end; + + // Ya tengo la factura. Le aado los conceptos del pedido + AFacturaActual.Detalles.DataTable.Last; + + //Se pone la referencia del pedido y el total y nos olvidamos de los detalles + if not CopiarDetalles then + begin + AFacturasProveedorController.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_CONCEPTO); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := 'Pedido ' + AListaPedidos.REFERENCIA; + CANTIDAD := 1; + IMPORTE_UNIDAD := AListaPedidos.IMPORTE_TOTAL; //Tecsitel no utiliza el IVA en los pedidos por lo tanto el + //importe total es lo que queremos (IMPORTE_NETO+IMPORTE_PORTE) + Post; + end; + end + //Se copian los detalles del pedido a la factura + else + begin + // Aado el ttulo + AFacturasProveedorController.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_TITULO); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := 'Pedido ' + AListaPedidos.REFERENCIA + ' del ' + DateToStr(AListaPedidos.FECHA_PEDIDO); + Post; + end; + // Aado el contenido del presupuesto + CopiarArticulosPedido(AListaPedidos.Detalles, AFacturaActual.Detalles); + + //En el caso de tener porte el presupuesto se aade una fila con el importe + if (AListaPedidos.IMPORTE_PORTE > 0) then + begin + AFacturasProveedorController.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_CONCEPTO); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := 'Porte del pedido'; + CANTIDAD := 1; + IMPORTE_UNIDAD := AListaPedidos.IMPORTE_PORTE; + Post; + end; + end; + + //En el caso de tener descuento (bonificacin) el presupuesto se aade una fila con el importe +{ if (AListaPresupuestos.IMPORTE_DESCUENTO > 0) then + begin + AFacturasClienteController.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_CONCEPTO); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := 'Bonificacin ' + FloatToStr(AListaPresupuestos.DESCUENTO) + '%'; + CANTIDAD := -1; + IMPORTE_UNIDAD := AListaPresupuestos.IMPORTE_DESCUENTO; + Post; + end; + end; +} + // Aado el resumen + AFacturasProveedorController.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_SUBTOTAL); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := 'Total del pedido ' + AListaPedidos.REFERENCIA; + Post; + end; + end; + + // Aado una lnea en blanco + AFacturasProveedorController.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_CONCEPTO); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := ''; + Post; + end; + + // Guardo la factura que acabo de generar o editar + AFacturaActual.CalcularImporteTotal; + AFacturasProveedorController.Guardar(AFacturaActual); + // Asocio la factura con el presupuesto + AListaPedidos.Edit; + AListaPedidos.ID_FACTURA := AFacturaActual.ID; + AListaPedidos.Post; + APedidosController.Guardar(AListaPedidos); + + AListaPedidos.Next; + end; + Result := True; + finally + APedidosController := NIL; + end; +end; + + +end. diff --git a/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/uGenerarFacturasProvUtils.dfm b/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/uGenerarFacturasProvUtils.dfm new file mode 100644 index 0000000..182262d --- /dev/null +++ b/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/uGenerarFacturasProvUtils.dfm @@ -0,0 +1,315 @@ +object dmGenerarFacturasProv: TdmGenerarFacturasProv + OldCreateOrder = False + Height = 176 + Width = 254 + object JsListaFacturasGeneradas: TJSDialog + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Se ha generado el albar'#195#161'n...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Ver el albar'#225'n' + Value = 100 + end + item + Caption = 'Continuar' + Value = 200 + Cancel = True + end> + ButtonBar.Buttons = [] + ButtonBar.Cancel = cbOK + ButtonBar.UseCancel = False + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 72 + Top = 16 + end +end diff --git a/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/uGenerarFacturasProvUtils.pas b/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/uGenerarFacturasProvUtils.pas new file mode 100644 index 0000000..ad87ec5 --- /dev/null +++ b/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/uGenerarFacturasProvUtils.pas @@ -0,0 +1,234 @@ +unit uGenerarFacturasProvUtils; + +interface + +uses + Windows, SysUtils, Classes, uBizAlbaranesProveedor, pngimage, JSDialog; + +type + TdmGenerarFacturasProv = class(TDataModule) + JsListaFacturasGeneradas: TJSDialog; + end; + + function GenerarFacturaProv(const IDAlbaran : Integer) : Boolean; overload; + function GenerarFacturaProv(AAlbaranes : IBizAlbaranProveedor) : Boolean; overload; + function GenerarFacturaProv : Boolean; overload; + +implementation + +{$R *.dfm} + +uses + uDialogUtils, + uBizDetallesAlbaranProveedor, + uAlbaranesProveedorController, uDetallesAlbaranProveedorController, + uFacturasProveedorController, uBizFacturasProveedor, uBizDetallesFacturaProveedor; + +// , +// , uProveedoresController, +// , uControllerDetallesBase, + + +// , uBizContactos, schPedidosClienteClient_Intf, +// schAlbaranesProveedorClient_Intf; + +var + dmGenerarFacturasProv: TdmGenerarFacturasProv; + AAlbaranesProveedorController : IAlbaranesProveedorController; + ADetallesAlbaranesProveedorController : IDetallesAlbaranProveedorController; + AFacturasProveedorController : IFacturasProveedorController; +// AProveedoresController : IProveedoresController; + +{ Mtodos auxiliares } +{procedure CopiarPedidoAAlbaran(APedido: IBizPedidoCliente; + AAlbaran : IBizFacturaProveedor); +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado (CopiarPedidoAAlbaran)'); + + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado (CopiarPedidoAAlbaran)'); + + if not APedido.DataTable.Active then + APedido.DataTable.Active := True; + + // El albarn tiene que venir ya abierto y posicionado donde hay que copiar + AAlbaran.ID_CLIENTE := APedido.ID_CLIENTE; + AAlbaran.ID_PEDIDO := APedido.ID; + AAlbaran.CALLE := APedido.CALLE; + AAlbaran.CODIGO_POSTAL := APedido.CODIGO_POSTAL; + AAlbaran.POBLACION := APedido.POBLACION; + AAlbaran.PROVINCIA := APedido.PROVINCIA; + AAlbaran.PERSONA_CONTACTO := APedido.PERSONA_CONTACTO; + AAlbaran.TELEFONO := APedido.TELEFONO; + AAlbaran.IMPORTE_NETO := APedido.IMPORTE_NETO; + AAlbaran.IMPORTE_PORTE := APedido.IMPORTE_PORTE; + AAlbaran.DESCUENTO := APedido.DESCUENTO; + AAlbaran.IMPORTE_DESCUENTO := APedido.IMPORTE_DESCUENTO; + AAlbaran.BASE_IMPONIBLE := APedido.BASE_IMPONIBLE; + AAlbaran.IVA := APedido.IVA; + AAlbaran.IMPORTE_IVA := APedido.IMPORTE_IVA; + AAlbaran.IMPORTE_TOTAL := APedido.IMPORTE_TOTAL; + AAlbaran.DataTable.FieldByName(fld_AlbaranesClienteOBSERVACIONES).AsVariant := APedido.DataTable.FieldByName(fld_PedidosClienteOBSERVACIONES).AsVariant; + AAlbaran.ID_FORMA_PAGO := APedido.ID_FORMA_PAGO; +end; + +procedure CopiarArticulosPendAAlbaran( + APedido: IBizPedidoCliente; + AAlbaran: IBizFacturaProveedor; + AArticulosPendientes: IBizPedidoClienteArticulosPend); +var + i : integer; + ADetalles : IBizDetallesFacturaProveedor; + ADetallesController : IDetallesFacturaProveedorController; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado (CopiarArticulosPendAAlbaran)'); + + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado (CopiarArticulosPendAAlbaran)'); + + if not Assigned(AArticulosPendientes) then + raise Exception.Create ('Artculos pendientes no asignado (CopiarArticulosPendAAlbaran)'); + + if not AArticulosPendientes.DataTable.Active then + AArticulosPendientes.DataTable.Active := True; + + // El albarn tiene que venir ya abierto y posicionado donde hay que copiar + + ADetalles := AAlbaran.Detalles; + ADetallesController := TDetallesFacturaProveedorController.Create; + try + //OJO IMPORTANTE + //Siempre que vayamos a trabajar con los detalles debemos hacer un beginupdate de los mismos y un endupdate para + //obligarle siempre a recalcular los detalles una sola vez + ADetallesController.BeginUpdate(ADetalles); + + AArticulosPendientes.DataTable.First; + for i := 0 to AArticulosPendientes.DataTable.RecordCount - 1 do + begin + APedido.Detalles.First; + if (APedido.Detalles.Locate('ID_ARTICULO', AArticulosPendientes.ID_ARTICULO, [])) then + if (AArticulosPendientes.CANTIDAD_PENDIENTE > 0) then + begin + ADetallesController.Add(ADetalles, TIPO_DETALLE_CONCEPTO); + ADetalles.Edit; + ADetalles.REFERENCIA := APedido.Detalles.REFERENCIA; + ADetalles.ID_ARTICULO := APedido.Detalles.ID_ARTICULO; + ADetalles.CONCEPTO := APedido.Detalles.CONCEPTO; + ADetalles.CANTIDAD := AArticulosPendientes.CANTIDAD_PENDIENTE; + ADetalles.IMPORTE_UNIDAD := APedido.Detalles.IMPORTE_UNIDAD; + ADetalles.IMPORTE_TOTAL := APedido.Detalles.IMPORTE_TOTAL; + ADetalles.DESCUENTO := APedido.Detalles.DESCUENTO; + ADetalles.IMPORTE_PORTE := APedido.Detalles.IMPORTE_PORTE; + ADetalles.VISIBLE := APedido.Detalles.VISIBLE; + ADetalles.REFERENCIA_PROVEEDOR := APedido.Detalles.REFERENCIA_PROVEEDOR; + ADetalles.Post; + AArticulosPendientes.Next; + end; + end; + finally + ADetallesController.EndUpdate(ADetalles); + ADetallesController := NIL; + end; +end; } + +procedure Inicializar; +begin + dmGenerarFacturasProv := TdmGenerarFacturasProv.Create(nil); + AAlbaranesProveedorController := TAlbaranesProveedorController.Create; + ADetallesAlbaranesProveedorController := TDetallesAlbaranProveedorController.Create; + AFacturasProveedorController := TFacturasProveedorController.Create; +// AProveedoresController := TProveedoresController.Create; +end; + +procedure Finalizar; +begin + FreeAndNIL(dmGenerarFacturasProv); + AAlbaranesProveedorController := nil; + ADetallesAlbaranesProveedorController := nil; + AFacturasProveedorController := nil; +// AProveedoresController := nil; +end; + + +function GenerarFacturaProv(const IDAlbaran : Integer) : Boolean; overload; +var + AAlbaran : IBizAlbaranProveedor; +begin + Result := False; + if not Assigned(AAlbaranesProveedorController) then + Inicializar; + + AAlbaran := AAlbaranesProveedorController.Buscar(IDAlbaran); + Result := GenerarFacturaProv(AAlbaran); + + if Assigned(AAlbaranesProveedorController) then + Finalizar; +end; + +function GenerarFacturaProv(AAlbaranes : IBizAlbaranProveedor) : Boolean; overload; +var + ARespuesta : Integer; + AFacturasNuevas : IBizFacturaProveedor; +// AArticulos: IBizPedidoClienteArticulosPend; + i: Integer; +begin +{ + Result := False; + if not Assigned(AAlbaranesProveedorController) then + Inicializar; + + if not Assigned(AAlbaranes) then + raise Exception.Create('Albarn de proveedor no asignado (GenerarFacturaProv)'); + + if not AAlbaranes.DataTable.Active then + AAlbaranes.DataTable.Active := True; + + try + AFacturasNuevas := AFacturasProveedorController.Nuevo(False); + if AFacturasProveedorController.Anadir(AFacturasNuevas, AAlbaranes) then + begin + if AFacturasNuevas.DataTable.RecordCount = 1 then + AFacturasProveedorController.Ver(AFacturasNuevas) + else begin + with dmGenerarFacturasProv.JsListaFacturasGeneradas.Content do + begin + Clear; + AFacturasNuevas.DataTable.Last; + for i := 0 to AFacturasNuevas.DataTable.RecordCount - 1 do + begin + if Length(AFacturasNuevas.REFERENCIA) > 0 then + Add(AFacturasNuevas.REFERENCIA + ': ' + AFacturasNuevas.NOMBRE); + AFacturasNuevas.DataTable.Prior; + end; + end; + dmGenerarFacturasProv.JsListaFacturasGeneradas.Execute; + end; +// actRefrescar.Execute; + end; + finally + AFacturasNuevas := NIL; + end; +} +end; + +function GenerarFacturaProv : Boolean; overload; +var + AAlbaranes : IBizAlbaranProveedor; +begin + Result := False; + if not Assigned(AAlbaranesProveedorController) then + Inicializar; + + AAlbaranes := AAlbaranesProveedorController.ElegirAlbaranes(AAlbaranesProveedorController.BuscarSinFacturar, + 'Elija el albarn o albaranes de proveedor que desea utilizar para dar de alta la factura.' + + #10#13 + 'Si elige albaranes de proveedores diferentes se dar de alta una factura por cada uno de ellos.' , True); + + Result := GenerarFacturaProv(AAlbaranes); + + if Assigned(AAlbaranesProveedorController) then + Finalizar; +end; + +end. diff --git a/Source/Modulos/Relaciones/Presupuestos de cliente - Albaranes de cliente/PreCli_AlbCli_relation.dcu b/Source/Modulos/Relaciones/Presupuestos de cliente - Albaranes de cliente/PreCli_AlbCli_relation.dcu new file mode 100644 index 0000000..b8ab924 Binary files /dev/null and b/Source/Modulos/Relaciones/Presupuestos de cliente - Albaranes de cliente/PreCli_AlbCli_relation.dcu differ diff --git a/Source/Modulos/Relaciones/Presupuestos de cliente - Albaranes de cliente/PreCli_AlbCli_relation.dpk b/Source/Modulos/Relaciones/Presupuestos de cliente - Albaranes de cliente/PreCli_AlbCli_relation.dpk new file mode 100644 index 0000000..1550d27 --- /dev/null +++ b/Source/Modulos/Relaciones/Presupuestos de cliente - Albaranes de cliente/PreCli_AlbCli_relation.dpk @@ -0,0 +1,38 @@ +package PreCli_AlbCli_relation; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + Contactos_controller, + Contactos_model, + PresupuestosCliente_controller, + PresupuestosCliente_model, + AlbaranesCliente_controller, + AlbaranesCliente_model; + +contains + uGenerarAlbaranesCliUtils in 'uGenerarAlbaranesCliUtils.pas'; + +end. diff --git a/Source/Modulos/Relaciones/Presupuestos de cliente - Albaranes de cliente/PreCli_AlbCli_relation.dproj b/Source/Modulos/Relaciones/Presupuestos de cliente - Albaranes de cliente/PreCli_AlbCli_relation.dproj new file mode 100644 index 0000000..d9590a3 --- /dev/null +++ b/Source/Modulos/Relaciones/Presupuestos de cliente - Albaranes de cliente/PreCli_AlbCli_relation.dproj @@ -0,0 +1,764 @@ + + + {69494a8c-0a35-41ea-b8ec-ea790bfc0662} + PreCli_AlbCli_relation.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\PreCli_AlbCli_relation.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + + + False + True + False + + + False + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Borland Sample Components + Delphi 1.0 Compatibility Components + Borland MyBase DataAccess Components + TeeChart Components + Borland SimpleDataset Component (DBX) + ExpressBars extended items by Developer Express Inc. + ExpressBars by Developer Express Inc. + ExpressScheduler 2 by Developer Express Inc. + ExpressVerticalGrid by Developer Express Inc. + ExpressBars DBNavigator by Developer Express Inc. + ExpressBars extended DB items by Developer Express Inc. + ExpressSideBar by Developer Express Inc. + JVCL Band Objects + JVCL Non-Visual Components + JVCL Encryption and Compression Components + JVCL Dialog Components + JVCL Docking Components + JVCL DotNet Controls + JVCL EDI Components Designtime Package + JVCL HMI Controls design time unit + JVCL Interpreter Components + JVCL Jans Components + JVCL Managed Threads + JVCL Multimedia and Image Components + JVCL Network Components + JVCL Page Style Components + JVCL Plugin Components + JVCL Print Preview Components + JVCL Runtime Design Components + JVCL Time Framework + JVCL Unified Interbase Components + JVCL Validators and Error Provider Components + SMImport suite: data importing into dataset. Scalabium/Mike Shkolnik, 2000-2005 + SMExport suite: data export from dataset. Written by Mike Shkolnik/Scalabium, 1998-2004. + Intraweb 8.0 Design Package for Borland Development Studio 2006 + Internet Explorer Components + + + PreCli_AlbCli_relation.dpk + + + + + + + MainSource + + + + + + + + + + + + + diff --git a/Source/Modulos/Relaciones/Presupuestos de cliente - Albaranes de cliente/PreCli_AlbCli_relation.rc b/Source/Modulos/Relaciones/Presupuestos de cliente - Albaranes de cliente/PreCli_AlbCli_relation.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Relaciones/Presupuestos de cliente - Albaranes de cliente/PreCli_AlbCli_relation.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Relaciones/Presupuestos de cliente - Albaranes de cliente/PreCli_AlbCli_relation.res b/Source/Modulos/Relaciones/Presupuestos de cliente - Albaranes de cliente/PreCli_AlbCli_relation.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Relaciones/Presupuestos de cliente - Albaranes de cliente/PreCli_AlbCli_relation.res differ diff --git a/Source/Modulos/Relaciones/Presupuestos de cliente - Albaranes de cliente/uGenerarAlbaranesCliUtils.dcu b/Source/Modulos/Relaciones/Presupuestos de cliente - Albaranes de cliente/uGenerarAlbaranesCliUtils.dcu new file mode 100644 index 0000000..03b78e7 Binary files /dev/null and b/Source/Modulos/Relaciones/Presupuestos de cliente - Albaranes de cliente/uGenerarAlbaranesCliUtils.dcu differ diff --git a/Source/Modulos/Relaciones/Presupuestos de cliente - Albaranes de cliente/uGenerarAlbaranesCliUtils.dfm b/Source/Modulos/Relaciones/Presupuestos de cliente - Albaranes de cliente/uGenerarAlbaranesCliUtils.dfm new file mode 100644 index 0000000..95561c1 --- /dev/null +++ b/Source/Modulos/Relaciones/Presupuestos de cliente - Albaranes de cliente/uGenerarAlbaranesCliUtils.dfm @@ -0,0 +1,313 @@ +object dmGenerarAlbaranesCli: TdmGenerarAlbaranesCli + OldCreateOrder = False + Height = 176 + Width = 254 + object JsListaAlbaranesGenerados: TJSDialog + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Se ha generado el albar'#225'n de cliente' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Ver el albar'#225'n' + Value = 100 + Info.Strings = ( + 'Mostrar el albar'#225'n que se ha creado') + end> + ButtonBar.Buttons = [cbOK] + ButtonBar.Cancel = cbOK + ButtonBar.UseCancel = False + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 72 + Top = 16 + end +end diff --git a/Source/Modulos/Relaciones/Presupuestos de cliente - Albaranes de cliente/uGenerarAlbaranesCliUtils.pas b/Source/Modulos/Relaciones/Presupuestos de cliente - Albaranes de cliente/uGenerarAlbaranesCliUtils.pas new file mode 100644 index 0000000..8df9b10 --- /dev/null +++ b/Source/Modulos/Relaciones/Presupuestos de cliente - Albaranes de cliente/uGenerarAlbaranesCliUtils.pas @@ -0,0 +1,401 @@ +unit uGenerarAlbaranesCliUtils; + +interface + +uses + Windows, SysUtils, Classes, pngimage, JSDialog, + uBizPresupuestosCliente, uBizAlbaranesCliente; + +type + TdmGenerarAlbaranesCli = class(TDataModule) + JsListaAlbaranesGenerados: TJSDialog; + end; + + function GenerarAlbaranCli(const IDPresupuesto : Integer) : Boolean; overload; + function GenerarAlbaranCli(APresupuesto : IBizPresupuestoCliente) : Boolean; overload; +// function ElegirPedidoYGenerarAlbaranCli(var IDAlbaran: Integer) : Boolean; + +// function GenerarAlbaranes(AAlbaranes : IBizAlbaraneCliente; AListaPresupuestos : IBizPresupuestoCliente): Boolean; + +implementation + +{$R *.dfm} + +uses + uDialogUtils, uBizDetallesPresupuestoCliente, uBizDetallesAlbaranCliente, + uPresupuestosClienteController, uAlbaranesClienteController, uClientesController, + uDetallesAlbaranClienteController, uControllerDetallesBase, + uBizContactos, schPresupuestosClienteClient_Intf, + schAlbaranesClienteClient_Intf; + +var + dmGenerarAlbaranesCli: TdmGenerarAlbaranesCli; + APresupuestosClienteController : IPresupuestosClienteController; + AAlbaranesClienteController : IAlbaranesClienteController; + ADetallesAlbaranesCliController : IDetallesAlbaranClienteController; + AClientesController : IClientesController; + +{ Mtodos auxiliares } +procedure CopiarPresupuestoAAlbaran(APresupuesto: IBizPresupuestoCliente; AAlbaran : IBizAlbaranCliente); +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado (CopiarPresupuestoAAlbaran)'); + + if not Assigned(APresupuesto) then + raise Exception.Create ('Pedido no asignado (CopiarPresupuestoAAlbaran)'); + + if not APresupuesto.DataTable.Active then + APresupuesto.DataTable.Active := True; + + // El albarn tiene que venir ya abierto y posicionado donde hay que copiar + AAlbaran.ID_CLIENTE := APresupuesto.ID_CLIENTE; + AAlbaran.ID_PEDIDO := APresupuesto.ID; + AAlbaran.REFERENCIA_CLIENTE := APresupuesto.REFERENCIA_CLIENTE; +// AAlbaran.CALLE := APresupuesto.CALLE; +// AAlbaran.CODIGO_POSTAL := APresupuesto.CODIGO_POSTAL; +// AAlbaran.POBLACION := APresupuesto.POBLACION; +// AAlbaran.PROVINCIA := APresupuesto.PROVINCIA; +// AAlbaran.PERSONA_CONTACTO := APresupuesto.PERSONA_CONTACTO; +// AAlbaran.TELEFONO := APresupuesto.TELEFONO; + AAlbaran.IMPORTE_NETO := APresupuesto.IMPORTE_NETO; + AAlbaran.IMPORTE_PORTE := APresupuesto.IMPORTE_PORTE; + AAlbaran.DESCUENTO := APresupuesto.DESCUENTO; + AAlbaran.IMPORTE_DESCUENTO := APresupuesto.IMPORTE_DESCUENTO; + AAlbaran.BASE_IMPONIBLE := APresupuesto.BASE_IMPONIBLE; + AAlbaran.IVA := APresupuesto.IVA; + AAlbaran.IMPORTE_IVA := APresupuesto.IMPORTE_IVA; + AAlbaran.IMPORTE_TOTAL := APresupuesto.IMPORTE_TOTAL; + AAlbaran.DataTable.FieldByName(fld_AlbaranesClienteOBSERVACIONES).AsVariant := APresupuesto.DataTable.FieldByName(fld_PresupuestosClienteOBSERVACIONES).AsVariant; + AAlbaran.ID_FORMA_PAGO := APresupuesto.ID_FORMA_PAGO; +// AAlbaran.FECHA_PREVISTA_ENVIO := APresupuesto.FECHA_PREVISTA_ENVIO; +end; + +{ +procedure CopiarArticulosPendAAlbaran( + APedido: IBizPedidoCliente; + AAlbaran: IBizAlbaranCliente; + AArticulosPendientes: IBizPedidoClienteArticulosPend); +var + i : integer; + ADetalles : IBizDetallesAlbaranCliente; + ADetallesController : IDetallesAlbaranClienteController; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado (CopiarArticulosPendAAlbaran)'); + + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado (CopiarArticulosPendAAlbaran)'); + + if not Assigned(AArticulosPendientes) then + raise Exception.Create ('Artculos pendientes no asignado (CopiarArticulosPendAAlbaran)'); + + if not AArticulosPendientes.DataTable.Active then + AArticulosPendientes.DataTable.Active := True; + + // El albarn tiene que venir ya abierto y posicionado donde hay que copiar + + ADetalles := AAlbaran.Detalles; + ADetallesController := TDetallesAlbaranClienteController.Create; + try + //OJO IMPORTANTE + //Siempre que vayamos a trabajar con los detalles debemos hacer un beginupdate de los mismos y un endupdate para + //obligarle siempre a recalcular los detalles una sola vez + ADetallesController.BeginUpdate(ADetalles); + + AArticulosPendientes.DataTable.First; + for i := 0 to AArticulosPendientes.DataTable.RecordCount - 1 do + begin + APedido.Detalles.First; + if (APedido.Detalles.Locate('ID_ARTICULO', AArticulosPendientes.ID_ARTICULO, [])) then + if (AArticulosPendientes.CANTIDAD_PENDIENTE > 0) then + begin + ADetallesController.Add(ADetalles, TIPO_DETALLE_CONCEPTO); + ADetalles.Edit; + ADetalles.ID_PEDIDO := APedido.Detalles.ID_PEDIDO; + ADetalles.REFERENCIA := APedido.Detalles.REFERENCIA; + ADetalles.ID_ARTICULO := APedido.Detalles.ID_ARTICULO; + ADetalles.CONCEPTO := APedido.Detalles.CONCEPTO; + ADetalles.CANTIDAD := AArticulosPendientes.CANTIDAD_PENDIENTE; + ADetalles.IMPORTE_UNIDAD := APedido.Detalles.IMPORTE_UNIDAD; + ADetalles.IMPORTE_TOTAL := APedido.Detalles.IMPORTE_TOTAL; + ADetalles.DESCUENTO := APedido.Detalles.DESCUENTO; + ADetalles.IMPORTE_PORTE := APedido.Detalles.IMPORTE_PORTE; + ADetalles.VISIBLE := APedido.Detalles.VISIBLE; + ADetalles.REFERENCIA_PROVEEDOR := APedido.Detalles.REFERENCIA_PROVEEDOR; + ADetalles.Post; + AArticulosPendientes.Next; + end; + end; + finally + ADetallesController.EndUpdate(ADetalles); + ADetallesController := NIL; + end; +end; +} + +procedure Inicializar; +begin + dmGenerarAlbaranesCli := TdmGenerarAlbaranesCli.Create(nil); + APresupuestosClienteController := TPresupuestosClienteController.Create; + AAlbaranesClienteController := TAlbaranesClienteController.Create; + ADetallesAlbaranesCliController := TDetallesAlbaranClienteController.Create; + AClientesController := TClientesController.Create; +end; + +procedure Finalizar; +begin + FreeAndNIL(dmGenerarAlbaranesCli); + APresupuestosClienteController := nil; + AAlbaranesClienteController := nil; + ADetallesAlbaranesCliController := nil; + AClientesController := nil; +end; + + +function GenerarAlbaranCli(const IDPresupuesto : Integer) : Boolean; overload; +var + APresupuesto : IBizPresupuestoCliente; + +begin + Result := False; + + try + if not Assigned(APresupuestosClienteController) then + Inicializar; + + APresupuesto := APresupuestosClienteController.Buscar(IDPresupuesto); + + if Assigned(APresupuesto) then + Result := GenerarAlbaranCli(APresupuesto); + + if Assigned(APresupuestosClienteController) then + Finalizar; + + finally + APresupuesto := NIL; + end; +end; + + +function GenerarAlbaranCli(APresupuesto : IBizPresupuestoCliente) : Boolean; overload; +var + i: Integer; + AlbaranesNuevos: IBizAlbaranCliente; + +begin + Result := False; +{ + if not Assigned(APresupuesto) then + raise Exception.Create('Presupuesto de cliente no asignado (GenerarAlbaranCli)'); + + if not APresupuesto.DataTable.Active then + APresupuesto.DataTable.Active := True; + + if not Assigned(APresupuestosClienteController) then + Inicializar; + + try + AlbaranesNuevos := AAlbaranesClienteController.Nuevo(False); + if GenerarAlbaranes(AlbaranesNuevos, APresupuesto) then + begin + if AlbaranesNuevos.DataTable.RecordCount = 1 then + ShowInfoMessage('El albarn se ha dado de alta con el cdigo ' + AlbaranesNuevos.REFERENCIA) + else begin + with dmGenerarAlbaranesCli.JsListaAlbaranesGenerados.Content do + begin + Clear; + AlbaranesNuevos.DataTable.Last; + for i := 0 to AlbaranesNuevos.DataTable.RecordCount - 1 do + begin + if Length(AlbaranesNuevos.REFERENCIA) > 0 then + Add(AlbaranesNuevos.REFERENCIA + ': ' + AlbaranesNuevos.NOMBRE); + AlbaranesNuevos.DataTable.Prior; + end; + end; + dmGenerarAlbaranesCli.JsListaAlbaranesGenerados.Execute; + end; + + Result := True; + end; + + finally + AlbaranesNuevos := NIL; + if Assigned(APresupuestosClienteController) then + Finalizar; + end; +} +end; + +{ +function ElegirPedidoYGenerarAlbaranCli(var IDAlbaran: Integer) : Boolean; overload; +var + APedido : IBizPedidoCliente; + AAlbaran : IBizAlbaranCliente; +begin + Result := False; + IDAlbaran := -1; + + AAlbaran := NIL; + try + if not Assigned(APedidosClienteController) then + Inicializar; + + APedido := APedidosClienteController.ElegirPedidos(APedidosClienteController.BuscarPendientes, + 'Elija el pedido de cliente que desea utilizar para dar de alta el albarn de cliente.' + , False); + + if Assigned(APedido) then + begin + Result := GenerarAlbaranCli(APedido, AAlbaran); + if Result then + IDAlbaran := AAlbaran.ID; + end; + finally + if Assigned(APedidosClienteController) then + Finalizar; + end; +end; +} + +{function GenerarAlbaranes(AAlbaranes : IBizAlbaraneCliente; AListaPresupuestos : IBizPresupuestoCliente): Boolean; +var + AAlbaranActual : IBizAlbaranCliente; + APresupuestosController : IPresupuestosClienteController; + I: Integer; + bEnEdicion : Boolean; + +begin + // ATENCIN!!! AFacturas tiene que estar vacio para no pisar facturas + // ya generadas. +{ if not Assigned(AAlbaranes) then + raise Exception.Create ('Albaran no asignado (Anadir)'); + + if not Assigned(AListaPresupuestos) then + raise Exception.Create ('Presupuestos no asignados (Anadir)'); + + + + if not AAlbaranes.DataTable.Active then + AAlbaranes.DataTable.Active := True; + + if not AListaPresupuestos.DataTable.Active then + AListaPresupuestos.DataTable.Active := True; + + // ShowHourglassCursor; + // Application.ProcessMessages; + + APresupuestosController := TPresupuestosClienteController.Create; + try + // Ordenar por fecha de albaran + AListaPresupuestos.DataTable.Sort([fld_PresupuestosClienteFECHA_PRESUPUESTO], [uDADataTable.sdAscending]); + AListaPresupuestos.First; + for I := 0 to AListaPresupuestos.DataTable.RecordCount - 1 do + begin + AListaPresupuestos._Cliente := NIL; + AAlbaranActual := NIL; + + // Busco si hay alguna factura ya hecha de ese Proveedor + AAlbaranes.DataTable.First; + if AAlbaranes.DataTable.Locate(fld_AlbaranesClienteID_Cliente, AListaPresupuestos.ID_Cliente, []) then + begin + AAlbaranActual := AAlbaranes; + AAlbaranesClienteController.RecuperarProveedor(AAlbaranActual); + AAlbaranActual.Proveedor.DataTable.Active := True; + end + else begin + // No hay factura de ese Proveedor. Creo una nueva + AAlbaranesClienteController.Anadir(AAlbaranes); + APresupuestosController.RecuperarProveedor(AListaPresupuestos); + AAlbaranes.Proveedor := AListaPresupuestos.Proveedor; + + //Siempre asignaremos por defecto la referencia de factura de proveedor que tenga el primer albaran del proveedor + bEnEdicion := (AAlbaranes.DataTable.State in dsEditModes); + if not bEnEdicion then + AAlbaranes.Edit; + AAlbaranes.REFERENCIA_PROVEEDOR := AListaPresupuestos.REF_FACTURA_PROV; + AAlbaranes.Post; + if bEnEdicion then + AAlbaranes.Edit; + + //Si el albaran es de tipo devolucin hacemos la factura de tipo abono + if (AListaPresupuestos.TIPO = CTE_TIPO_ALBARAN_DEV) then + begin + bEnEdicion := (AAlbaranes.DataTable.State in dsEditModes); + if not bEnEdicion then + AAlbaranes.Edit; + AAlbaranes.TIPO := CTE_TIPO_ABONO; + AAlbaranes.Post; + if bEnEdicion then + AAlbaranes.Edit; + end; + + AAlbaranActual := AAlbaranes; + end; + + // Ya tengo la factura. Le aado los conceptos del albarn + AAlbaranActual.Detalles.DataTable.Last; + // Aado el ttulo + AAlbaranesClienteController.DetallesController.Add(AAlbaranActual.Detalles, TIPO_DETALLE_TITULO); + // Self.DetallesController.Add(AAlbaranActual.Detalles, TIPO_DETALLE_TITULO); + with AAlbaranActual.Detalles do + begin + Edit; + CONCEPTO := 'Albarn ' + AListaPresupuestos.REFERENCIA + ' del ' + DateToStr(AListaPresupuestos.FECHA_ALBARAN); + Post; + end; + // Aado el contenido del albarn + CopiarArticulosPresupuesto(AListaPresupuestos.Detalles, AAlbaranActual.Detalles); + + {En los albaranes a proveedor el porte es a nivel del artculo + Self.DetallesController.Add(AAlbaranActual.Detalles, TIPO_DETALLE_CONCEPTO); + with AAlbaranActual.Detalles do + begin + Edit; + CONCEPTO := 'Porte del albarn'; + CANTIDAD := 1; + IMPORTE_UNIDAD := AListaPresupuestos.IMPORTE_PORTE; + Post; + end; + } + +{ // Aado el resumen + AAlbaranesClienteController.DetallesController.Add(AAlbaranActual.Detalles, TIPO_DETALLE_SUBTOTAL); + //Self.DetallesController.Add(AAlbaranActual.Detalles, TIPO_DETALLE_SUBTOTAL); + with AAlbaranActual.Detalles do + begin + Edit; + CONCEPTO := 'Total del albarn ' + AListaPresupuestos.REFERENCIA; + Post; + end; + + // Aado una lnea en blanco + AAlbaranesClienteController.DetallesController.Add(AAlbaranActual.Detalles, TIPO_DETALLE_CONCEPTO); + // Self.DetallesController.Add(AAlbaranActual.Detalles, TIPO_DETALLE_CONCEPTO); + with AAlbaranActual.Detalles do + begin + Edit; + CONCEPTO := ''; + Post; + end; + + // Guardo la factura que acabo de generar o editar + AAlbaranActual.CalcularImporteTotal; + AAlbaranesClienteController.Guardar(AAlbaranActual); + // Self.Guardar(AAlbaranActual); + // Asocio la factura con el albarn + AListaPresupuestos.Edit; + AListaPresupuestos.ID_FACTURA := AAlbaranActual.ID; + AListaPresupuestos.Post; + APresupuestosController.Guardar(AListaPresupuestos); + + AListaPresupuestos.Next; + end; + Result := True; + finally + APresupuestosController := NIL; +// HideHourglassCursor + end; + end; +} + +end. diff --git a/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/PedProv_FacProv_relation.bdsproj b/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/PedProv_FacProv_relation.bdsproj new file mode 100644 index 0000000..a3c68fc --- /dev/null +++ b/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/PedProv_FacProv_relation.bdsproj @@ -0,0 +1,530 @@ + + + + + + + + + + + + PedProv_FacProv_relation.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + $00000000 + + + + Borland Sample Components + Delphi 1.0 Compatibility Components + Borland MyBase DataAccess Components + TeeChart Components + Borland SimpleDataset Component (DBX) + ExpressBars extended items by Developer Express Inc. + ExpressBars by Developer Express Inc. + ExpressScheduler 2 by Developer Express Inc. + ExpressVerticalGrid by Developer Express Inc. + ExpressBars DBNavigator by Developer Express Inc. + ExpressBars extended DB items by Developer Express Inc. + ExpressSideBar by Developer Express Inc. + JVCL Band Objects + JVCL Non-Visual Components + JVCL Encryption and Compression Components + JVCL Dialog Components + JVCL Docking Components + JVCL DotNet Controls + JVCL EDI Components Designtime Package + JVCL HMI Controls design time unit + JVCL Interpreter Components + JVCL Jans Components + JVCL Managed Threads + JVCL Multimedia and Image Components + JVCL Network Components + JVCL Page Style Components + JVCL Plugin Components + JVCL Print Preview Components + JVCL Runtime Design Components + JVCL Time Framework + JVCL Unified Interbase Components + JVCL Validators and Error Provider Components + SMImport suite: data importing into dataset. Scalabium/Mike Shkolnik, 2000-2005 + SMExport suite: data export from dataset. Written by Mike Shkolnik/Scalabium, 1998-2004. + Intraweb 8.0 Design Package for Borland Development Studio 2006 + Internet Explorer Components + + + + diff --git a/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/PedProv_FacProv_relation.dpk b/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/PedProv_FacProv_relation.dpk new file mode 100644 index 0000000..57cd942 --- /dev/null +++ b/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/PedProv_FacProv_relation.dpk @@ -0,0 +1,48 @@ +package PedProv_FacProv_relation; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + rtl, + Base, + ControllerBase, + Contactos_model, + Contactos_controller, + PNG_D10, + vcl, + JSDialog100, + vclx, + vclactnband, + xmlrtl, + designide, + FacturasProveedor_model, + FacturasProveedor_controller, + PedidosProveedor_controller, + PedidosProveedor_model; + +contains + uGenerarFacturasProvPedProvUtils in 'uGenerarFacturasProvPedProvUtils.pas'; + +end. diff --git a/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/PedProv_FacProv_relation.dproj b/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/PedProv_FacProv_relation.dproj new file mode 100644 index 0000000..2322789 --- /dev/null +++ b/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/PedProv_FacProv_relation.dproj @@ -0,0 +1,219 @@ + + + {69494a8c-0a35-41ea-b8ec-ea790bfc0662} + PedProv_FacProv_relation.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\PedProv_FacProv_relation.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + DEBUG + + + Delphi.Personality + Package + + + False + True + False + + + False + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Borland Sample Components + Delphi 1.0 Compatibility Components + Borland MyBase DataAccess Components + TeeChart Components + Borland SimpleDataset Component (DBX) + ExpressBars extended items by Developer Express Inc. + ExpressBars by Developer Express Inc. + ExpressScheduler 2 by Developer Express Inc. + ExpressVerticalGrid by Developer Express Inc. + ExpressBars DBNavigator by Developer Express Inc. + ExpressBars extended DB items by Developer Express Inc. + ExpressSideBar by Developer Express Inc. + JVCL Band Objects + JVCL Non-Visual Components + JVCL Encryption and Compression Components + JVCL Dialog Components + JVCL Docking Components + JVCL DotNet Controls + JVCL EDI Components Designtime Package + JVCL HMI Controls design time unit + JVCL Interpreter Components + JVCL Jans Components + JVCL Managed Threads + JVCL Multimedia and Image Components + JVCL Network Components + JVCL Page Style Components + JVCL Plugin Components + JVCL Print Preview Components + JVCL Runtime Design Components + JVCL Time Framework + JVCL Unified Interbase Components + JVCL Validators and Error Provider Components + SMImport suite: data importing into dataset. Scalabium/Mike Shkolnik, 2000-2005 + SMExport suite: data export from dataset. Written by Mike Shkolnik/Scalabium, 1998-2004. + Intraweb 8.0 Design Package for Borland Development Studio 2006 + Internet Explorer Components + + + PedProv_FacProv_relation.dpk + + + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/PedProv_FacProv_relation.rc b/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/PedProv_FacProv_relation.rc new file mode 100644 index 0000000..e69de29 diff --git a/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/PedProv_FacProv_relation.res b/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/PedProv_FacProv_relation.res new file mode 100644 index 0000000..86c94e6 Binary files /dev/null and b/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/PedProv_FacProv_relation.res differ diff --git a/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/PreCli_FacCli_relation.dcu b/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/PreCli_FacCli_relation.dcu new file mode 100644 index 0000000..c31f12d Binary files /dev/null and b/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/PreCli_FacCli_relation.dcu differ diff --git a/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/PreCli_FacCli_relation.dpk b/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/PreCli_FacCli_relation.dpk new file mode 100644 index 0000000..3d61622 --- /dev/null +++ b/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/PreCli_FacCli_relation.dpk @@ -0,0 +1,36 @@ +package PreCli_FacCli_relation; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + PresupuestosCliente_model, + PresupuestosCliente_controller, + FacturasCliente_controller, + FacturasCliente_model; + +contains + uGenerarFacturasCliPreCliUtils in 'uGenerarFacturasCliPreCliUtils.pas' {dmGenerarFacturasCli}; + +end. diff --git a/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/PreCli_FacCli_relation.dproj b/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/PreCli_FacCli_relation.dproj new file mode 100644 index 0000000..5bfb514 --- /dev/null +++ b/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/PreCli_FacCli_relation.dproj @@ -0,0 +1,650 @@ + + + {69494a8c-0a35-41ea-b8ec-ea790bfc0662} + PreCli_FacCli_relation.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\PreCli_FacCli_relation.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Borland Sample Components + Delphi 1.0 Compatibility Components + Borland MyBase DataAccess Components + TeeChart Components + Borland SimpleDataset Component (DBX) + ExpressBars extended items by Developer Express Inc. + ExpressBars by Developer Express Inc. + ExpressScheduler 2 by Developer Express Inc. + ExpressVerticalGrid by Developer Express Inc. + ExpressBars DBNavigator by Developer Express Inc. + ExpressBars extended DB items by Developer Express Inc. + ExpressSideBar by Developer Express Inc. + JVCL Band Objects + JVCL Non-Visual Components + JVCL Encryption and Compression Components + JVCL Dialog Components + JVCL Docking Components + JVCL DotNet Controls + JVCL EDI Components Designtime Package + JVCL HMI Controls design time unit + JVCL Interpreter Components + JVCL Jans Components + JVCL Managed Threads + JVCL Multimedia and Image Components + JVCL Network Components + JVCL Page Style Components + JVCL Plugin Components + JVCL Print Preview Components + JVCL Runtime Design Components + JVCL Time Framework + JVCL Unified Interbase Components + JVCL Validators and Error Provider Components + SMImport suite: data importing into dataset. Scalabium/Mike Shkolnik, 2000-2005 + SMExport suite: data export from dataset. Written by Mike Shkolnik/Scalabium, 1998-2004. + Intraweb 8.0 Design Package for Borland Development Studio 2006 + Internet Explorer Components + PreCli_FacCli_relation.dpk + + + + + MainSource + + + + + + +
dmGenerarFacturasCli
+
+
+
+ + diff --git a/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/PreCli_FacCli_relation.rc b/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/PreCli_FacCli_relation.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/PreCli_FacCli_relation.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/PreCli_FacCli_relation.res b/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/PreCli_FacCli_relation.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/PreCli_FacCli_relation.res differ diff --git a/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/uGenerarFacturasCliPreCliUtils.dcu b/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/uGenerarFacturasCliPreCliUtils.dcu new file mode 100644 index 0000000..1d6e7ae Binary files /dev/null and b/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/uGenerarFacturasCliPreCliUtils.dcu differ diff --git a/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/uGenerarFacturasCliPreCliUtils.dfm b/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/uGenerarFacturasCliPreCliUtils.dfm new file mode 100644 index 0000000..31b2512 --- /dev/null +++ b/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/uGenerarFacturasCliPreCliUtils.dfm @@ -0,0 +1,311 @@ +object dmGenerarFacturasCliPre: TdmGenerarFacturasCliPre + OldCreateOrder = False + Height = 176 + Width = 254 + object JsListaFacturasGeneradas: TJSDialog + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Se han generado las facturas...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Continuar' + Value = 200 + Cancel = True + end> + ButtonBar.Buttons = [] + ButtonBar.Cancel = cbOK + ButtonBar.UseCancel = False + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 72 + Top = 16 + end +end diff --git a/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/uGenerarFacturasCliPreCliUtils.pas b/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/uGenerarFacturasCliPreCliUtils.pas new file mode 100644 index 0000000..ea200d8 --- /dev/null +++ b/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/uGenerarFacturasCliPreCliUtils.pas @@ -0,0 +1,439 @@ +unit uGenerarFacturasCliPreCliUtils; + +interface + +uses + Windows, SysUtils, Classes, uBizFacturasCliente, uBizPresupuestosCliente, pngimage, JSDialog; + +type + TdmGenerarFacturasCliPre = class(TDataModule) + JsListaFacturasGeneradas: TJSDialog; + end; + + function GenerarFacturaCliPre(const IDPresupuesto : Integer; const CopiarDetalles: Boolean = True) : Boolean; overload; + function GenerarFacturaCliPre(APresupuestos : IBizPresupuestoCliente; const CopiarDetalles: Boolean = True) : Boolean; overload; + function GenerarFacturaCliPre : Boolean; overload; + + function GenerarFacturas(AFacturas : IBizFacturaCliente; AListaPresupuestos : IBizPresupuestoCliente; const CopiarDetalles: Boolean = True): Boolean; + +implementation + +{$R *.dfm} + +uses + uDialogUtils, uDADataTable, uControllerDetallesBase, + uBizDetallesPresupuestoCliente, schPresupuestosClienteClient_Intf, + schFacturasClienteClient_Intf, uDetallesFacturaClienteController, + uPresupuestosClienteController, uDetallesPresupuestoClienteController, + uFacturasClienteController, uBizDetallesFacturaCliente; + +var + dmGenerarFacturasCliPre: TdmGenerarFacturasCliPre; + APresupuestosClienteController : IPresupuestosClienteController; + ADetallesPresupuestosClienteController : IDetallesPresupuestoClienteController; + AFacturasClienteController : IFacturasClienteController; +// AProveedoresController : IProveedoresController; + +{ Mtodos auxiliares } +{procedure CopiarPedidoAPedido(APedido: IBizPedidoCliente; + APedido : IBizFacturaProveedor); +begin + if not Assigned(APedido) then + raise Exception.Create ('Presupuesto no asignado (CopiarPedidoAPedido)'); + + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado (CopiarPedidoAPedido)'); + + if not APedido.DataTable.Active then + APedido.DataTable.Active := True; + + // El presupuesto tiene que venir ya abierto y posicionado donde hay que copiar + APedido.ID_CLIENTE := APedido.ID_CLIENTE; + APedido.ID_PEDIDO := APedido.ID; + APedido.CALLE := APedido.CALLE; + APedido.CODIGO_POSTAL := APedido.CODIGO_POSTAL; + APedido.POBLACION := APedido.POBLACION; + APedido.PROVINCIA := APedido.PROVINCIA; + APedido.PERSONA_CONTACTO := APedido.PERSONA_CONTACTO; + APedido.TELEFONO := APedido.TELEFONO; + APedido.IMPORTE_NETO := APedido.IMPORTE_NETO; + APedido.IMPORTE_PORTE := APedido.IMPORTE_PORTE; + APedido.DESCUENTO := APedido.DESCUENTO; + APedido.IMPORTE_DESCUENTO := APedido.IMPORTE_DESCUENTO; + APedido.BASE_IMPONIBLE := APedido.BASE_IMPONIBLE; + APedido.IVA := APedido.IVA; + APedido.IMPORTE_IVA := APedido.IMPORTE_IVA; + APedido.IMPORTE_TOTAL := APedido.IMPORTE_TOTAL; + APedido.DataTable.FieldByName(fld_PedidosClienteOBSERVACIONES).AsVariant := APedido.DataTable.FieldByName(fld_PedidosClienteOBSERVACIONES).AsVariant; + APedido.ID_FORMA_PAGO := APedido.ID_FORMA_PAGO; +end; + +procedure CopiarArticulosPendAPedido( + APedido: IBizPedidoCliente; + APedido: IBizFacturaProveedor; + AArticulosPendientes: IBizPedidoClienteArticulosPend); +var + i : integer; + ADetalles : IBizDetallesFacturaProveedor; + ADetallesController : IDetallesFacturaProveedorController; +begin + if not Assigned(APedido) then + raise Exception.Create ('Presupuesto no asignado (CopiarArticulosPendAPedido)'); + + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado (CopiarArticulosPendAPedido)'); + + if not Assigned(AArticulosPendientes) then + raise Exception.Create ('Artculos pendientes no asignado (CopiarArticulosPendAPedido)'); + + if not AArticulosPendientes.DataTable.Active then + AArticulosPendientes.DataTable.Active := True; + + // El presupuesto tiene que venir ya abierto y posicionado donde hay que copiar + + ADetalles := APedido.Detalles; + ADetallesController := TDetallesFacturaProveedorController.Create; + try + //OJO IMPORTANTE + //Siempre que vayamos a trabajar con los detalles debemos hacer un beginupdate de los mismos y un endupdate para + //obligarle siempre a recalcular los detalles una sola vez + ADetallesController.BeginUpdate(ADetalles); + + AArticulosPendientes.DataTable.First; + for i := 0 to AArticulosPendientes.DataTable.RecordCount - 1 do + begin + APedido.Detalles.First; + if (APedido.Detalles.Locate('ID_ARTICULO', AArticulosPendientes.ID_ARTICULO, [])) then + if (AArticulosPendientes.CANTIDAD_PENDIENTE > 0) then + begin + ADetallesController.Add(ADetalles, TIPO_DETALLE_CONCEPTO); + ADetalles.Edit; + ADetalles.REFERENCIA := APedido.Detalles.REFERENCIA; + ADetalles.ID_ARTICULO := APedido.Detalles.ID_ARTICULO; + ADetalles.CONCEPTO := APedido.Detalles.CONCEPTO; + ADetalles.CANTIDAD := AArticulosPendientes.CANTIDAD_PENDIENTE; + ADetalles.IMPORTE_UNIDAD := APedido.Detalles.IMPORTE_UNIDAD; + ADetalles.IMPORTE_TOTAL := APedido.Detalles.IMPORTE_TOTAL; + ADetalles.DESCUENTO := APedido.Detalles.DESCUENTO; + ADetalles.IMPORTE_PORTE := APedido.Detalles.IMPORTE_PORTE; + ADetalles.VISIBLE := APedido.Detalles.VISIBLE; + ADetalles.REFERENCIA_PROVEEDOR := APedido.Detalles.REFERENCIA_PROVEEDOR; + ADetalles.Post; + AArticulosPendientes.Next; + end; + end; + finally + ADetallesController.EndUpdate(ADetalles); + ADetallesController := NIL; + end; +end; } + +procedure CopiarArticulosPresupuesto(AOrigen: IBizDetallesPresupuestoCliente; + ADestino : IBizDetallesFacturaCliente); +var + i : integer; + ADetallesController : IDetallesFacturaClienteController; +begin + if not Assigned(AOrigen) then + raise Exception.Create ('Origen no asignado (CopiarArticulosPresupuesto)'); + + if not Assigned(ADestino) then + raise Exception.Create ('Destino no asignado (CopiarArticulosPresupuesto)'); + + if not AOrigen.DataTable.Active then + AOrigen.DataTable.Active := True; + + if not ADestino.DataTable.Active then + ADestino.DataTable.Active := True; + + ADetallesController := TDetallesFacturaClienteController.Create; + try + //OJO IMPORTANTE + //Siempre que vayamos a trabajar con los detalles debemos hacer un beginupdate de los mismos y un endupdate para + //obligarle siempre a recalcular los detalles una sola vez + ADetallesController.BeginUpdate(ADestino); + + AOrigen.DataTable.First; + for i := 0 to AOrigen.DataTable.RecordCount - 1 do + begin + ADetallesController.Add(ADestino, TIPO_DETALLE_CONCEPTO); + ADestino.Edit; + ADestino.REFERENCIA := AOrigen.REFERENCIA; + if AOrigen.ID_ARTICULO > 0 then + ADestino.ID_ARTICULO := AOrigen.ID_ARTICULO; + ADestino.CONCEPTO := AOrigen.CONCEPTO; + ADestino.CANTIDAD := AOrigen.CANTIDAD; + ADestino.IMPORTE_UNIDAD := AOrigen.IMPORTE_UNIDAD; + ADestino.IMPORTE_TOTAL := AOrigen.IMPORTE_TOTAL; + ADestino.DESCUENTO := AOrigen.DESCUENTO; + ADestino.IMPORTE_PORTE := AOrigen.IMPORTE_PORTE; + ADestino.VISIBLE := AOrigen.VISIBLE; + ADestino.REFERENCIA_PROVEEDOR := AOrigen.REFERENCIA_PROVEEDOR; + ADestino.Post; + AOrigen.Next; + end; + finally + ADetallesController.EndUpdate(ADestino); + ADetallesController := NIL; + end; +end; + + +procedure Inicializar; +begin + dmGenerarFacturasCliPre := TdmGenerarFacturasCliPre.Create(nil); + APresupuestosClienteController := TPresupuestosClienteController.Create; + ADetallesPresupuestosClienteController := TDetallesPresupuestoClienteController.Create; + AFacturasClienteController := TFacturasClienteController.Create; +end; + +procedure Finalizar; +begin + FreeAndNIL(dmGenerarFacturasCliPre); + APresupuestosClienteController := nil; + ADetallesPresupuestosClienteController := nil; + AFacturasClienteController := nil; +end; + + +function GenerarFacturaCliPre(const IDPresupuesto : Integer; const CopiarDetalles: Boolean = True) : Boolean; overload; +var + APresupuesto : IBizPresupuestoCliente; +begin + Result := False; + if not Assigned(APresupuestosClienteController) then + Inicializar; + + APresupuesto := APresupuestosClienteController.Buscar(IDPresupuesto); + Result := GenerarFacturaCliPre(APresupuesto, CopiarDetalles); + + if Assigned(APresupuestosClienteController) then + Finalizar; +end; + +function GenerarFacturaCliPre(APresupuestos : IBizPresupuestoCliente; const CopiarDetalles: Boolean = True) : Boolean; overload; +var + ARespuesta : Integer; + AFacturasNuevas : IBizFacturaCliente; + i: Integer; +begin + Result := False; + + if not Assigned(APresupuestos) then + raise Exception.Create('Presupuesto de cliente no asignado (GenerarFacturaCliPre)'); + + if not APresupuestos.DataTable.Active then + APresupuestos.DataTable.Active := True; + + if not Assigned(APresupuestosClienteController) then + Inicializar; + + try + AFacturasNuevas := AFacturasClienteController.Nuevo(False); + if GenerarFacturas(AFacturasNuevas, APresupuestos, CopiarDetalles) then + begin + if AFacturasNuevas.DataTable.RecordCount = 1 then + begin + if AFacturasNuevas.TIPO = CTE_TIPO_FACTURA then + ShowInfoMessage('La factura se ha dado de alta con el cdigo ' + AFacturasNuevas.REFERENCIA) + else + ShowInfoMessage('El abono se ha dado de alta con el cdigo ' + AFacturasNuevas.REFERENCIA); + end + else begin + with dmGenerarFacturasCliPre.JsListaFacturasGeneradas.Content do + begin + Clear; + AFacturasNuevas.DataTable.Last; + for i := 0 to AFacturasNuevas.DataTable.RecordCount - 1 do + begin + if Length(AFacturasNuevas.REFERENCIA) > 0 then + Add(AFacturasNuevas.REFERENCIA + ': ' + AFacturasNuevas.NOMBRE); + AFacturasNuevas.DataTable.Prior; + end; + end; + dmGenerarFacturasCliPre.JsListaFacturasGeneradas.Execute; + end; + + Result := True; + end; + + finally + AFacturasNuevas := NIL; + if Assigned(APresupuestosClienteController) then + Finalizar; + end; +end; + +function GenerarFacturaCliPre : Boolean; overload; +var + APresupuestos : IBizPresupuestoCliente; +begin + Result := False; + try + if not Assigned(APresupuestosClienteController) then + Inicializar; + + APresupuestos := APresupuestosClienteController.ElegirPresupuestos(APresupuestosClienteController.BuscarSinFacturar, + 'Elija el presupuesto o presupuestos de proveedor que desea utilizar para dar de alta la factura.' + + #10#13 + 'Si elige presupuestos de proveedores diferentes se dar de alta una factura por cada uno de ellos.' , True); + + if Assigned(APresupuestos) then + begin + if (ShowConfirmMessage('Generar factura', Format('Desea copiar todos los conceptos de/los presupuesto/s seleccionados a sus facturas correspondientes?', [])) = IDYES) then + Result := GenerarFacturaCliPre(APresupuestos) + else + Result := GenerarFacturaCliPre(APresupuestos, False); + end; + + if Assigned(APresupuestosClienteController) then + Finalizar; + finally + APresupuestos := Nil; + end; +end; + +function GenerarFacturas(AFacturas : IBizFacturaCliente; AListaPresupuestos : IBizPresupuestoCliente; const CopiarDetalles: Boolean = True): Boolean; +var + AFacturaActual : IBizFacturaCliente; + APresupuestosController : IPresupuestosClienteController; + I: Integer; + bEnEdicion : Boolean; + +begin + // ATENCIN!!! AFacturas tiene que estar vacio para no pisar facturas + // ya generadas. + if not Assigned(AFacturas) then + raise Exception.Create ('Factura no asignado (Anadir)'); + + if not Assigned(AListaPresupuestos) then + raise Exception.Create ('Presupuestos no asignados (Anadir)'); + + if not AFacturas.DataTable.Active then + AFacturas.DataTable.Active := True; + + if not AListaPresupuestos.DataTable.Active then + AListaPresupuestos.DataTable.Active := True; + + APresupuestosController := TPresupuestosClienteController.Create; + try + // Ordenar por fecha de albaran + AListaPresupuestos.DataTable.Sort([fld_PresupuestosClienteFECHA_PRESUPUESTO], [uDADataTable.sdAscending]); + AListaPresupuestos.First; + for I := 0 to AListaPresupuestos.DataTable.RecordCount - 1 do + begin + AListaPresupuestos._Cliente := NIL; + AFacturaActual := NIL; + + // Busco si hay alguna factura ya hecha de ese Cliente + AFacturas.DataTable.First; + if AFacturas.DataTable.Locate(fld_FacturasClienteID_CLIENTE, AListaPresupuestos.ID_Cliente, []) then + begin + AFacturaActual := AFacturas; + AFacturasClienteController.RecuperarCliente(AFacturaActual); + AFacturaActual.Cliente.DataTable.Active := True; + end + else begin + // No hay factura de ese Cliente. Creo una nueva + AFacturasClienteController.Anadir(AFacturas); + APresupuestosController.RecuperarCliente(AListaPresupuestos); + AFacturas.Cliente := AListaPresupuestos.Cliente; + AFacturas.OBSERVACIONES.Add('Importe de factura por trabajos realizados segn indicaciones de nuestro presupuesto ' + AListaPresupuestos.REFERENCIA + ' con fecha ' + DateToStr(AListaPresupuestos.FECHA_PRESUPUESTO)); + AFacturaActual := AFacturas; + end; + + // Ya tengo la factura. Le aado los conceptos del presupuesto + AFacturaActual.Detalles.DataTable.Last; + + //Se pone la referencia del presupuesto y el total y nos olvidamos de los detalles + if not CopiarDetalles then + begin + AFacturasClienteController.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_CONCEPTO); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := 'Presupuesto ' + AListaPresupuestos.REFERENCIA; + CANTIDAD := 1; + IMPORTE_UNIDAD := AListaPresupuestos.IMPORTE_TOTAL; //Tecsitel no utiliza el IVA en los presupuestos por lo tanto el + //importe total es lo que queremos (IMPORTE_NETO+IMPORTE_PORTE) + Post; + end; + end + //Se copian los detalles del presupuesto a la factura + else + begin + // Aado el ttulo + AFacturasClienteController.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_TITULO); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := 'Presupuesto ' + AListaPresupuestos.REFERENCIA + ' del ' + DateToStr(AListaPresupuestos.FECHA_PRESUPUESTO); + Post; + end; + // Aado el contenido del presupuesto + CopiarArticulosPresupuesto(AListaPresupuestos.Detalles, AFacturaActual.Detalles); + + //En el caso de tener porte el presupuesto se aade una fila con el importe + if (AListaPresupuestos.IMPORTE_PORTE > 0) then + begin + AFacturasClienteController.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_CONCEPTO); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := 'Porte del presupuesto'; + CANTIDAD := 1; + IMPORTE_UNIDAD := AListaPresupuestos.IMPORTE_PORTE; + Post; + end; + end; + + //En el caso de tener descuento (bonificacin) el presupuesto se aade una fila con el importe + if (AListaPresupuestos.IMPORTE_DESCUENTO > 0) then + begin + AFacturasClienteController.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_CONCEPTO); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := 'Bonificacin ' + FloatToStr(AListaPresupuestos.DESCUENTO) + '%'; + CANTIDAD := -1; + IMPORTE_UNIDAD := AListaPresupuestos.IMPORTE_DESCUENTO; + Post; + end; + end; + + // Aado el resumen + AFacturasClienteController.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_SUBTOTAL); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := 'Total del presupuesto ' + AListaPresupuestos.REFERENCIA; + Post; + end; + end; + + // Aado una lnea en blanco + AFacturasClienteController.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_CONCEPTO); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := ''; + Post; + end; + + // Guardo la factura que acabo de generar o editar + AFacturaActual.CalcularImporteTotal; + AFacturasClienteController.Guardar(AFacturaActual); + // Asocio la factura con el presupuesto + AListaPresupuestos.Edit; + AListaPresupuestos.ID_FACTURA := AFacturaActual.ID; + AListaPresupuestos.Post; + APresupuestosController.Guardar(AListaPresupuestos); + + AListaPresupuestos.Next; + end; + Result := True; + finally + APresupuestosController := NIL; + end; +end; + +end. diff --git a/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/uGenerarFacturasProvPedProvUtils.dfm b/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/uGenerarFacturasProvPedProvUtils.dfm new file mode 100644 index 0000000..182262d --- /dev/null +++ b/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/uGenerarFacturasProvPedProvUtils.dfm @@ -0,0 +1,315 @@ +object dmGenerarFacturasProv: TdmGenerarFacturasProv + OldCreateOrder = False + Height = 176 + Width = 254 + object JsListaFacturasGeneradas: TJSDialog + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Se ha generado el albar'#195#161'n...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Ver el albar'#225'n' + Value = 100 + end + item + Caption = 'Continuar' + Value = 200 + Cancel = True + end> + ButtonBar.Buttons = [] + ButtonBar.Cancel = cbOK + ButtonBar.UseCancel = False + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 72 + Top = 16 + end +end diff --git a/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/uGenerarFacturasProvPedProvUtils.pas b/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/uGenerarFacturasProvPedProvUtils.pas new file mode 100644 index 0000000..fc04178 --- /dev/null +++ b/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/uGenerarFacturasProvPedProvUtils.pas @@ -0,0 +1,234 @@ +unit uGenerarFacturasProvPedProvUtils; + +interface + +uses + Windows, SysUtils, Classes, uBizPedidosProveedor, pngimage, JSDialog; + +type + TdmGenerarFacturasProv = class(TDataModule) + JsListaFacturasGeneradas: TJSDialog; + end; + + function GenerarFacturaProv(const IDPedido : Integer) : Boolean; overload; + function GenerarFacturaProv(APedidos : IBizPedidoProveedor) : Boolean; overload; + function GenerarFacturaProv : Boolean; overload; + +implementation + +{$R *.dfm} + +uses + uDialogUtils, + uBizDetallesPedidoProveedor, + uPedidosProveedorController, uDetallesPedidoProveedorController, + uFacturasProveedorController, uBizFacturasProveedor, uBizDetallesFacturaProveedor; + +// , +// , uProveedoresController, +// , uControllerDetallesBase, + + +// , uBizContactos, schPedidosClienteClient_Intf, +// schPedidosProveedorClient_Intf; + +var + dmGenerarFacturasProv: TdmGenerarFacturasProv; + APedidosProveedorController : IPedidosProveedorController; + ADetallesPedidosProveedorController : IDetallesPedidoProveedorController; + AFacturasProveedorController : IFacturasProveedorController; +// AProveedoresController : IProveedoresController; + +{ Mtodos auxiliares } +{procedure CopiarPedidoAPedido(APedido: IBizPedidoCliente; + APedido : IBizFacturaProveedor); +begin + if not Assigned(APedido) then + raise Exception.Create ('Albarn no asignado (CopiarPedidoAPedido)'); + + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado (CopiarPedidoAPedido)'); + + if not APedido.DataTable.Active then + APedido.DataTable.Active := True; + + // El albarn tiene que venir ya abierto y posicionado donde hay que copiar + APedido.ID_CLIENTE := APedido.ID_CLIENTE; + APedido.ID_PEDIDO := APedido.ID; + APedido.CALLE := APedido.CALLE; + APedido.CODIGO_POSTAL := APedido.CODIGO_POSTAL; + APedido.POBLACION := APedido.POBLACION; + APedido.PROVINCIA := APedido.PROVINCIA; + APedido.PERSONA_CONTACTO := APedido.PERSONA_CONTACTO; + APedido.TELEFONO := APedido.TELEFONO; + APedido.IMPORTE_NETO := APedido.IMPORTE_NETO; + APedido.IMPORTE_PORTE := APedido.IMPORTE_PORTE; + APedido.DESCUENTO := APedido.DESCUENTO; + APedido.IMPORTE_DESCUENTO := APedido.IMPORTE_DESCUENTO; + APedido.BASE_IMPONIBLE := APedido.BASE_IMPONIBLE; + APedido.IVA := APedido.IVA; + APedido.IMPORTE_IVA := APedido.IMPORTE_IVA; + APedido.IMPORTE_TOTAL := APedido.IMPORTE_TOTAL; + APedido.DataTable.FieldByName(fld_PedidosClienteOBSERVACIONES).AsVariant := APedido.DataTable.FieldByName(fld_PedidosClienteOBSERVACIONES).AsVariant; + APedido.ID_FORMA_PAGO := APedido.ID_FORMA_PAGO; +end; + +procedure CopiarArticulosPendAPedido( + APedido: IBizPedidoCliente; + APedido: IBizFacturaProveedor; + AArticulosPendientes: IBizPedidoClienteArticulosPend); +var + i : integer; + ADetalles : IBizDetallesFacturaProveedor; + ADetallesController : IDetallesFacturaProveedorController; +begin + if not Assigned(APedido) then + raise Exception.Create ('Albarn no asignado (CopiarArticulosPendAPedido)'); + + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado (CopiarArticulosPendAPedido)'); + + if not Assigned(AArticulosPendientes) then + raise Exception.Create ('Artculos pendientes no asignado (CopiarArticulosPendAPedido)'); + + if not AArticulosPendientes.DataTable.Active then + AArticulosPendientes.DataTable.Active := True; + + // El albarn tiene que venir ya abierto y posicionado donde hay que copiar + + ADetalles := APedido.Detalles; + ADetallesController := TDetallesFacturaProveedorController.Create; + try + //OJO IMPORTANTE + //Siempre que vayamos a trabajar con los detalles debemos hacer un beginupdate de los mismos y un endupdate para + //obligarle siempre a recalcular los detalles una sola vez + ADetallesController.BeginUpdate(ADetalles); + + AArticulosPendientes.DataTable.First; + for i := 0 to AArticulosPendientes.DataTable.RecordCount - 1 do + begin + APedido.Detalles.First; + if (APedido.Detalles.Locate('ID_ARTICULO', AArticulosPendientes.ID_ARTICULO, [])) then + if (AArticulosPendientes.CANTIDAD_PENDIENTE > 0) then + begin + ADetallesController.Add(ADetalles, TIPO_DETALLE_CONCEPTO); + ADetalles.Edit; + ADetalles.REFERENCIA := APedido.Detalles.REFERENCIA; + ADetalles.ID_ARTICULO := APedido.Detalles.ID_ARTICULO; + ADetalles.CONCEPTO := APedido.Detalles.CONCEPTO; + ADetalles.CANTIDAD := AArticulosPendientes.CANTIDAD_PENDIENTE; + ADetalles.IMPORTE_UNIDAD := APedido.Detalles.IMPORTE_UNIDAD; + ADetalles.IMPORTE_TOTAL := APedido.Detalles.IMPORTE_TOTAL; + ADetalles.DESCUENTO := APedido.Detalles.DESCUENTO; + ADetalles.IMPORTE_PORTE := APedido.Detalles.IMPORTE_PORTE; + ADetalles.VISIBLE := APedido.Detalles.VISIBLE; + ADetalles.REFERENCIA_PROVEEDOR := APedido.Detalles.REFERENCIA_PROVEEDOR; + ADetalles.Post; + AArticulosPendientes.Next; + end; + end; + finally + ADetallesController.EndUpdate(ADetalles); + ADetallesController := NIL; + end; +end; } + +procedure Inicializar; +begin + dmGenerarFacturasProv := TdmGenerarFacturasProv.Create(nil); + APedidosProveedorController := TPedidosProveedorController.Create; + ADetallesPedidosProveedorController := TDetallesPedidoProveedorController.Create; + AFacturasProveedorController := TFacturasProveedorController.Create; +// AProveedoresController := TProveedoresController.Create; +end; + +procedure Finalizar; +begin + FreeAndNIL(dmGenerarFacturasProv); + APedidosProveedorController := nil; + ADetallesPedidosProveedorController := nil; + AFacturasProveedorController := nil; +// AProveedoresController := nil; +end; + + +function GenerarFacturaProv(const IDPedido : Integer) : Boolean; overload; +var + APedido : IBizPedidoProveedor; +begin + Result := False; + if not Assigned(APedidosProveedorController) then + Inicializar; + + APedido := APedidosProveedorController.Buscar(IDPedido); + Result := GenerarFacturaProv(APedido); + + if Assigned(APedidosProveedorController) then + Finalizar; +end; + +function GenerarFacturaProv(APedidos : IBizPedidoProveedor) : Boolean; overload; +var + ARespuesta : Integer; + AFacturasNuevas : IBizFacturaProveedor; +// AArticulos: IBizPedidoClienteArticulosPend; + i: Integer; +begin + Result := False; + if not Assigned(APedidosProveedorController) then + Inicializar; + + if not Assigned(APedidos) then + raise Exception.Create('Albarn de proveedor no asignado (GenerarFacturaProv)'); + + if not APedidos.DataTable.Active then + APedidos.DataTable.Active := True; + + try + AFacturasNuevas := AFacturasProveedorController.Nuevo(False); + if AFacturasProveedorController.Anadir(AFacturasNuevas, APedidos.ID) then + begin + if AFacturasNuevas.DataTable.RecordCount = 1 then + AFacturasProveedorController.Ver(AFacturasNuevas) + else begin + with dmGenerarFacturasProv.JsListaFacturasGeneradas.Content do + begin + Clear; + AFacturasNuevas.DataTable.Last; + for i := 0 to AFacturasNuevas.DataTable.RecordCount - 1 do + begin + if Length(AFacturasNuevas.REFERENCIA) > 0 then + Add(AFacturasNuevas.REFERENCIA + ': ' + AFacturasNuevas.NOMBRE); + AFacturasNuevas.DataTable.Prior; + end; + end; + dmGenerarFacturasProv.JsListaFacturasGeneradas.Execute; + end; +// actRefrescar.Execute; + end; + finally + AFacturasNuevas := NIL; + end; +end; + +function GenerarFacturaProv : Boolean; overload; +var + APedidos : IBizPedidoProveedor; +begin +{ + Result := False; + if not Assigned(APedidosProveedorController) then + Inicializar; + + APedidos := APedidosProveedorController.ElegirPedidos(APedidosProveedorController.BuscarSinFacturar, + 'Elija el albarn o Pedidos de proveedor que desea utilizar para dar de alta la factura.' + + #10#13 + 'Si elige Pedidos de proveedores diferentes se dar de alta una factura por cada uno de ellos.' , True); + + Result := GenerarFacturaProv(APedidos); + + if Assigned(APedidosProveedorController) then + Finalizar; +} +end; + +end. diff --git a/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/uGenerarFacturasProvUtils.dfm b/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/uGenerarFacturasProvUtils.dfm new file mode 100644 index 0000000..182262d --- /dev/null +++ b/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/uGenerarFacturasProvUtils.dfm @@ -0,0 +1,315 @@ +object dmGenerarFacturasProv: TdmGenerarFacturasProv + OldCreateOrder = False + Height = 176 + Width = 254 + object JsListaFacturasGeneradas: TJSDialog + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Se ha generado el albar'#195#161'n...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Ver el albar'#225'n' + Value = 100 + end + item + Caption = 'Continuar' + Value = 200 + Cancel = True + end> + ButtonBar.Buttons = [] + ButtonBar.Cancel = cbOK + ButtonBar.UseCancel = False + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 72 + Top = 16 + end +end diff --git a/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/uGenerarFacturasProvUtils.pas b/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/uGenerarFacturasProvUtils.pas new file mode 100644 index 0000000..ad87ec5 --- /dev/null +++ b/Source/Modulos/Relaciones/Presupuestos de cliente - Facturas de cliente/uGenerarFacturasProvUtils.pas @@ -0,0 +1,234 @@ +unit uGenerarFacturasProvUtils; + +interface + +uses + Windows, SysUtils, Classes, uBizAlbaranesProveedor, pngimage, JSDialog; + +type + TdmGenerarFacturasProv = class(TDataModule) + JsListaFacturasGeneradas: TJSDialog; + end; + + function GenerarFacturaProv(const IDAlbaran : Integer) : Boolean; overload; + function GenerarFacturaProv(AAlbaranes : IBizAlbaranProveedor) : Boolean; overload; + function GenerarFacturaProv : Boolean; overload; + +implementation + +{$R *.dfm} + +uses + uDialogUtils, + uBizDetallesAlbaranProveedor, + uAlbaranesProveedorController, uDetallesAlbaranProveedorController, + uFacturasProveedorController, uBizFacturasProveedor, uBizDetallesFacturaProveedor; + +// , +// , uProveedoresController, +// , uControllerDetallesBase, + + +// , uBizContactos, schPedidosClienteClient_Intf, +// schAlbaranesProveedorClient_Intf; + +var + dmGenerarFacturasProv: TdmGenerarFacturasProv; + AAlbaranesProveedorController : IAlbaranesProveedorController; + ADetallesAlbaranesProveedorController : IDetallesAlbaranProveedorController; + AFacturasProveedorController : IFacturasProveedorController; +// AProveedoresController : IProveedoresController; + +{ Mtodos auxiliares } +{procedure CopiarPedidoAAlbaran(APedido: IBizPedidoCliente; + AAlbaran : IBizFacturaProveedor); +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado (CopiarPedidoAAlbaran)'); + + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado (CopiarPedidoAAlbaran)'); + + if not APedido.DataTable.Active then + APedido.DataTable.Active := True; + + // El albarn tiene que venir ya abierto y posicionado donde hay que copiar + AAlbaran.ID_CLIENTE := APedido.ID_CLIENTE; + AAlbaran.ID_PEDIDO := APedido.ID; + AAlbaran.CALLE := APedido.CALLE; + AAlbaran.CODIGO_POSTAL := APedido.CODIGO_POSTAL; + AAlbaran.POBLACION := APedido.POBLACION; + AAlbaran.PROVINCIA := APedido.PROVINCIA; + AAlbaran.PERSONA_CONTACTO := APedido.PERSONA_CONTACTO; + AAlbaran.TELEFONO := APedido.TELEFONO; + AAlbaran.IMPORTE_NETO := APedido.IMPORTE_NETO; + AAlbaran.IMPORTE_PORTE := APedido.IMPORTE_PORTE; + AAlbaran.DESCUENTO := APedido.DESCUENTO; + AAlbaran.IMPORTE_DESCUENTO := APedido.IMPORTE_DESCUENTO; + AAlbaran.BASE_IMPONIBLE := APedido.BASE_IMPONIBLE; + AAlbaran.IVA := APedido.IVA; + AAlbaran.IMPORTE_IVA := APedido.IMPORTE_IVA; + AAlbaran.IMPORTE_TOTAL := APedido.IMPORTE_TOTAL; + AAlbaran.DataTable.FieldByName(fld_AlbaranesClienteOBSERVACIONES).AsVariant := APedido.DataTable.FieldByName(fld_PedidosClienteOBSERVACIONES).AsVariant; + AAlbaran.ID_FORMA_PAGO := APedido.ID_FORMA_PAGO; +end; + +procedure CopiarArticulosPendAAlbaran( + APedido: IBizPedidoCliente; + AAlbaran: IBizFacturaProveedor; + AArticulosPendientes: IBizPedidoClienteArticulosPend); +var + i : integer; + ADetalles : IBizDetallesFacturaProveedor; + ADetallesController : IDetallesFacturaProveedorController; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado (CopiarArticulosPendAAlbaran)'); + + if not Assigned(APedido) then + raise Exception.Create ('Pedido no asignado (CopiarArticulosPendAAlbaran)'); + + if not Assigned(AArticulosPendientes) then + raise Exception.Create ('Artculos pendientes no asignado (CopiarArticulosPendAAlbaran)'); + + if not AArticulosPendientes.DataTable.Active then + AArticulosPendientes.DataTable.Active := True; + + // El albarn tiene que venir ya abierto y posicionado donde hay que copiar + + ADetalles := AAlbaran.Detalles; + ADetallesController := TDetallesFacturaProveedorController.Create; + try + //OJO IMPORTANTE + //Siempre que vayamos a trabajar con los detalles debemos hacer un beginupdate de los mismos y un endupdate para + //obligarle siempre a recalcular los detalles una sola vez + ADetallesController.BeginUpdate(ADetalles); + + AArticulosPendientes.DataTable.First; + for i := 0 to AArticulosPendientes.DataTable.RecordCount - 1 do + begin + APedido.Detalles.First; + if (APedido.Detalles.Locate('ID_ARTICULO', AArticulosPendientes.ID_ARTICULO, [])) then + if (AArticulosPendientes.CANTIDAD_PENDIENTE > 0) then + begin + ADetallesController.Add(ADetalles, TIPO_DETALLE_CONCEPTO); + ADetalles.Edit; + ADetalles.REFERENCIA := APedido.Detalles.REFERENCIA; + ADetalles.ID_ARTICULO := APedido.Detalles.ID_ARTICULO; + ADetalles.CONCEPTO := APedido.Detalles.CONCEPTO; + ADetalles.CANTIDAD := AArticulosPendientes.CANTIDAD_PENDIENTE; + ADetalles.IMPORTE_UNIDAD := APedido.Detalles.IMPORTE_UNIDAD; + ADetalles.IMPORTE_TOTAL := APedido.Detalles.IMPORTE_TOTAL; + ADetalles.DESCUENTO := APedido.Detalles.DESCUENTO; + ADetalles.IMPORTE_PORTE := APedido.Detalles.IMPORTE_PORTE; + ADetalles.VISIBLE := APedido.Detalles.VISIBLE; + ADetalles.REFERENCIA_PROVEEDOR := APedido.Detalles.REFERENCIA_PROVEEDOR; + ADetalles.Post; + AArticulosPendientes.Next; + end; + end; + finally + ADetallesController.EndUpdate(ADetalles); + ADetallesController := NIL; + end; +end; } + +procedure Inicializar; +begin + dmGenerarFacturasProv := TdmGenerarFacturasProv.Create(nil); + AAlbaranesProveedorController := TAlbaranesProveedorController.Create; + ADetallesAlbaranesProveedorController := TDetallesAlbaranProveedorController.Create; + AFacturasProveedorController := TFacturasProveedorController.Create; +// AProveedoresController := TProveedoresController.Create; +end; + +procedure Finalizar; +begin + FreeAndNIL(dmGenerarFacturasProv); + AAlbaranesProveedorController := nil; + ADetallesAlbaranesProveedorController := nil; + AFacturasProveedorController := nil; +// AProveedoresController := nil; +end; + + +function GenerarFacturaProv(const IDAlbaran : Integer) : Boolean; overload; +var + AAlbaran : IBizAlbaranProveedor; +begin + Result := False; + if not Assigned(AAlbaranesProveedorController) then + Inicializar; + + AAlbaran := AAlbaranesProveedorController.Buscar(IDAlbaran); + Result := GenerarFacturaProv(AAlbaran); + + if Assigned(AAlbaranesProveedorController) then + Finalizar; +end; + +function GenerarFacturaProv(AAlbaranes : IBizAlbaranProveedor) : Boolean; overload; +var + ARespuesta : Integer; + AFacturasNuevas : IBizFacturaProveedor; +// AArticulos: IBizPedidoClienteArticulosPend; + i: Integer; +begin +{ + Result := False; + if not Assigned(AAlbaranesProveedorController) then + Inicializar; + + if not Assigned(AAlbaranes) then + raise Exception.Create('Albarn de proveedor no asignado (GenerarFacturaProv)'); + + if not AAlbaranes.DataTable.Active then + AAlbaranes.DataTable.Active := True; + + try + AFacturasNuevas := AFacturasProveedorController.Nuevo(False); + if AFacturasProveedorController.Anadir(AFacturasNuevas, AAlbaranes) then + begin + if AFacturasNuevas.DataTable.RecordCount = 1 then + AFacturasProveedorController.Ver(AFacturasNuevas) + else begin + with dmGenerarFacturasProv.JsListaFacturasGeneradas.Content do + begin + Clear; + AFacturasNuevas.DataTable.Last; + for i := 0 to AFacturasNuevas.DataTable.RecordCount - 1 do + begin + if Length(AFacturasNuevas.REFERENCIA) > 0 then + Add(AFacturasNuevas.REFERENCIA + ': ' + AFacturasNuevas.NOMBRE); + AFacturasNuevas.DataTable.Prior; + end; + end; + dmGenerarFacturasProv.JsListaFacturasGeneradas.Execute; + end; +// actRefrescar.Execute; + end; + finally + AFacturasNuevas := NIL; + end; +} +end; + +function GenerarFacturaProv : Boolean; overload; +var + AAlbaranes : IBizAlbaranProveedor; +begin + Result := False; + if not Assigned(AAlbaranesProveedorController) then + Inicializar; + + AAlbaranes := AAlbaranesProveedorController.ElegirAlbaranes(AAlbaranesProveedorController.BuscarSinFacturar, + 'Elija el albarn o albaranes de proveedor que desea utilizar para dar de alta la factura.' + + #10#13 + 'Si elige albaranes de proveedores diferentes se dar de alta una factura por cada uno de ellos.' , True); + + Result := GenerarFacturaProv(AAlbaranes); + + if Assigned(AAlbaranesProveedorController) then + Finalizar; +end; + +end. diff --git a/Source/Modulos/Remesas de cliente/Controller/RemesasCliente_controller.bdsproj b/Source/Modulos/Remesas de cliente/Controller/RemesasCliente_controller.bdsproj new file mode 100644 index 0000000..be6f74c --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Controller/RemesasCliente_controller.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + RemesasCliente_controller.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + True + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Remesas de cliente/Controller/RemesasCliente_controller.dcu b/Source/Modulos/Remesas de cliente/Controller/RemesasCliente_controller.dcu new file mode 100644 index 0000000..5b37855 Binary files /dev/null and b/Source/Modulos/Remesas de cliente/Controller/RemesasCliente_controller.dcu differ diff --git a/Source/Modulos/Remesas de cliente/Controller/RemesasCliente_controller.dpk b/Source/Modulos/Remesas de cliente/Controller/RemesasCliente_controller.dpk new file mode 100644 index 0000000..8796ab3 Binary files /dev/null and b/Source/Modulos/Remesas de cliente/Controller/RemesasCliente_controller.dpk differ diff --git a/Source/Modulos/Remesas de cliente/Controller/RemesasCliente_controller.dproj b/Source/Modulos/Remesas de cliente/Controller/RemesasCliente_controller.dproj new file mode 100644 index 0000000..de82ce3 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Controller/RemesasCliente_controller.dproj @@ -0,0 +1,592 @@ + + + {ff8e8509-28f4-4aa9-88e5-13f60fe956a6} + RemesasCliente_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\RemesasCliente_controller.bpl + + + 7.0 + False + False + False + True + 0 + True + True + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + False + True + True + True + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + RemesasCliente_controller.dpk + + + + + + + MainSource + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Remesas de cliente/Controller/RemesasCliente_controller.rc b/Source/Modulos/Remesas de cliente/Controller/RemesasCliente_controller.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Controller/RemesasCliente_controller.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Remesas de cliente/Controller/RemesasCliente_controller.res b/Source/Modulos/Remesas de cliente/Controller/RemesasCliente_controller.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Remesas de cliente/Controller/RemesasCliente_controller.res differ diff --git a/Source/Modulos/Remesas de cliente/Controller/View/uIEditorRemesaCliente.dcu b/Source/Modulos/Remesas de cliente/Controller/View/uIEditorRemesaCliente.dcu new file mode 100644 index 0000000..e991f32 Binary files /dev/null and b/Source/Modulos/Remesas de cliente/Controller/View/uIEditorRemesaCliente.dcu differ diff --git a/Source/Modulos/Remesas de cliente/Controller/View/uIEditorRemesaCliente.pas b/Source/Modulos/Remesas de cliente/Controller/View/uIEditorRemesaCliente.pas new file mode 100644 index 0000000..e93a205 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Controller/View/uIEditorRemesaCliente.pas @@ -0,0 +1,22 @@ +unit uIEditorRemesaCliente; + +interface + +uses + uEditorDBItem, uBizRemesasCliente, uRemesasClienteController; + +type + IEditorRemesaCliente = interface(IEditorDBItem) + ['{6F69FE55-F458-4AF9-91C4-4C654686820E}'] + function GetController : IRemesasClienteController; + procedure SetController (const Value : IRemesasClienteController); + property Controller : IRemesasClienteController read GetController write SetController; + + function GetRemesaCliente: IBizRemesaCliente; + procedure SetRemesaCliente(const Value: IBizRemesaCliente); + property RemesaCliente: IBizRemesaCliente read GetRemesaCliente write SetRemesaCliente; + end; + +implementation + +end. diff --git a/Source/Modulos/Remesas de cliente/Controller/View/uIEditorRemesasCliente.dcu b/Source/Modulos/Remesas de cliente/Controller/View/uIEditorRemesasCliente.dcu new file mode 100644 index 0000000..bd474db Binary files /dev/null and b/Source/Modulos/Remesas de cliente/Controller/View/uIEditorRemesasCliente.dcu differ diff --git a/Source/Modulos/Remesas de cliente/Controller/View/uIEditorRemesasCliente.pas b/Source/Modulos/Remesas de cliente/Controller/View/uIEditorRemesasCliente.pas new file mode 100644 index 0000000..b686a34 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Controller/View/uIEditorRemesasCliente.pas @@ -0,0 +1,23 @@ +unit uIEditorRemesasCliente; + +interface + +uses + uEditorGridBase, uBizRemesasCliente, uRemesasClienteController; + +type + IEditorRemesasCliente = interface(IEditorGridBase) + ['{CFEDBE12-CF2F-4E18-AD99-2E7D8C7C36B9}'] + function GetRemesasCliente: IBizRemesaCliente; + procedure SetRemesasCliente(const Value: IBizRemesaCliente); + property RemesasCliente: IBizRemesaCliente read GetRemesasCliente write SetRemesasCliente; + + function GetController : IRemesasClienteController; + procedure SetController (const Value : IRemesasClienteController); + property Controller : IRemesasClienteController read GetController write SetController; + end; + + +implementation + +end. diff --git a/Source/Modulos/Remesas de cliente/Controller/View/uIEditorRemesasClientePreview.dcu b/Source/Modulos/Remesas de cliente/Controller/View/uIEditorRemesasClientePreview.dcu new file mode 100644 index 0000000..c3f29cc Binary files /dev/null and b/Source/Modulos/Remesas de cliente/Controller/View/uIEditorRemesasClientePreview.dcu differ diff --git a/Source/Modulos/Remesas de cliente/Controller/View/uIEditorRemesasClientePreview.pas b/Source/Modulos/Remesas de cliente/Controller/View/uIEditorRemesasClientePreview.pas new file mode 100644 index 0000000..d586d01 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Controller/View/uIEditorRemesasClientePreview.pas @@ -0,0 +1,16 @@ +unit uIEditorRemesasClientePreview; + +interface + +uses + uEditorPreview; + +type + IEditorRemesasClientePreview = interface(IEditorPreview) + ['{42670E7A-1B62-4C37-813C-4BAD0ADC4CC2}'] + end; + + +implementation + +end. diff --git a/Source/Modulos/Remesas de cliente/Controller/uRemesasClienteController.dcu b/Source/Modulos/Remesas de cliente/Controller/uRemesasClienteController.dcu new file mode 100644 index 0000000..e2a124a Binary files /dev/null and b/Source/Modulos/Remesas de cliente/Controller/uRemesasClienteController.dcu differ diff --git a/Source/Modulos/Remesas de cliente/Controller/uRemesasClienteController.pas b/Source/Modulos/Remesas de cliente/Controller/uRemesasClienteController.pas new file mode 100644 index 0000000..9c84dc6 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Controller/uRemesasClienteController.pas @@ -0,0 +1,656 @@ +unit uRemesasClienteController; + +interface + + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uEditorDBItem, + uIDataModuleRemesasCliente, uBizRemesasCliente, uProveedoresController, + uBizContactos, uRecibosClienteController; + +type + IRemesasClienteController = interface(IControllerBase) + ['{F5D925C6-255C-4374-9A71-DFC0FBB7FA96}'] + function Buscar(const ID: Integer): IBizRemesaCliente; + function BuscarTodos: IBizRemesaCliente; overload; + procedure Ver(ARemesaCliente : IBizRemesaCliente); + procedure VerTodos(ARemesasCliente: IBizRemesaCliente); + function Nuevo : IBizRemesaCliente; + procedure Anadir(ARemesaCliente : IBizRemesaCliente); + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(ARemesaCliente : IBizRemesaCliente; AllItems: Boolean = false): Boolean; overload; + function Guardar(ARemesaCliente : IBizRemesaCliente): Boolean; + procedure DescartarCambios(ARemesaCliente : IBizRemesaCliente); + function Existe(const ID: Integer) : Boolean; + + procedure Preview(ARemesaCliente : IBizRemesaCliente; AllItems: Boolean = false); + procedure Print(ARemesaCliente : IBizRemesaCliente; AllItems: Boolean = false); + function EsModificable(ARemesaProveedor : IBizRemesaCliente): Boolean; + function EsEliminable(ARemesaProveedor : IBizRemesaCliente): Boolean; + + function ElegirRecibosCliente(ARemesaCliente : IBizRemesaCliente; AListaRecibosIniciales: TStringList): Boolean; + procedure EliminarReciboCliente(ARemesaCliente : IBizRemesaCliente); + function GetRecibosClienteController: IRecibosClienteController; + property RecibosClienteController: IRecibosClienteController read GetRecibosClienteController; + + procedure RecuperarRecibos(ARemesaCliente: IBizRemesaCliente); + function ExtraerSeleccionados(ARemesasCliente: IBizRemesaCliente) : IBizRemesaCliente; + + function DarListaAnosRemesas: TStringList; + procedure FiltrarAno(ARemesa: IBizRemesaCliente; ADynWhereDataTable: WideString; const Ano: String); + end; + + TRemesasClienteController = class(TControllerBase, IRemesasClienteController) + protected + FDataModule : IDataModuleRemesasCliente; + FRecibosClienteController: IRecibosClienteController; + function GetRecibosClienteController: IRecibosClienteController; + + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + procedure AsignarID(ARemesaCliente: IBizRemesaCliente; const IDNuevo: Integer); virtual; + function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; + function _Vacio : IBizRemesaCliente; + + procedure FiltrarEmpresa(ARemesaCliente: IBizRemesaCliente); + function ValidarRemesaCliente(ARemesaCliente: IBizRemesaCliente): Boolean; virtual; + + procedure RecuperarRecibos(ARemesaCliente: IBizRemesaCliente); + procedure RecuperarObjetos(ARemesaCliente: IBizRemesaCliente); virtual; + procedure AsignarDataModule; virtual; + + public + property RecibosClienteController: IRecibosClienteController read GetRecibosClienteController; + + constructor Create; override; + destructor Destroy; override; + + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(ARemesaCliente : IBizRemesaCliente; AllItems: Boolean = false): Boolean; overload; + function Guardar(ARemesaCliente : IBizRemesaCliente): Boolean; + procedure DescartarCambios(ARemesaCliente : IBizRemesaCliente); virtual; + function Existe(const ID: Integer) : Boolean; virtual; + procedure Anadir(ARemesaCliente : IBizRemesaCliente); virtual; + function Buscar(const ID: Integer): IBizRemesaCliente; virtual; + function BuscarTodos: IBizRemesaCliente; overload; + function Nuevo : IBizRemesaCliente; virtual; + procedure Ver(ARemesaCliente : IBizRemesaCliente); virtual; + procedure VerTodos(ARemesasCliente: IBizRemesaCliente); virtual; + + procedure Preview(ARemesaCliente : IBizRemesaCliente; AllItems: Boolean = false); virtual; + procedure Print(ARemesaCliente : IBizRemesaCliente; AllItems: Boolean = false); virtual; + function EsModificable(ARemesaProveedor : IBizRemesaCliente): Boolean; + function EsEliminable(ARemesaProveedor : IBizRemesaCliente): Boolean; + + function ExtraerSeleccionados(ARemesasCliente: IBizRemesaCliente) : IBizRemesaCliente; virtual; + function ElegirRecibosCliente(ARemesaCliente : IBizRemesaCliente; AListaRecibosIniciales: TStringList): Boolean; + procedure EliminarReciboCliente(ARemesaCliente : IBizRemesaCliente); + + function DarListaAnosRemesas: TStringList; + procedure FiltrarAno(ARemesa: IBizRemesaCliente; ADynWhereDataTable: WideString; const Ano: String); + end; + +implementation + +uses + cxControls, DB, uEditorRegistryUtils, schRemesasClienteClient_Intf, uFactuGES_App, + schRecibosClienteClient_Intf, uIEditorRemesasCliente, uIEditorRemesaCliente, + Dialogs, uDataModuleRemesasCliente, uDataModuleUsuarios, uDAInterfaces, + uDataTableUtils, uDateUtils, uROTypes, DateUtils, Controls, Windows, + uBizRecibosCliente, Variants, uRemesasClienteReportController; + +{ TRemesasClienteController } + +procedure TRemesasClienteController.Anadir(ARemesaCliente: IBizRemesaCliente); +begin + ARemesaCliente.Insert; +end; + +procedure TRemesasClienteController.EliminarReciboCliente(ARemesaCliente: IBizRemesaCliente); +var + ARecibosRemesa : IBizRecibosCliente; +begin + inherited; + ARecibosRemesa := ARemesaCliente.Recibos; + RecibosClienteController.QuitarRemesa(ARecibosRemesa); + //Quitamos el recibo de la remesa sin que el servidor se entere para que no elimine el recibo + DesconectarTabla(ARecibosRemesa.DataTable); + ARecibosRemesa.DataTable.Delete; + ConectarTabla(ARecibosRemesa.DataTable); + ARecibosRemesa := Nil; +end; + +function TRemesasClienteController.EsEliminable(ARemesaProveedor: IBizRemesaCliente): Boolean; +begin + Result := True; +end; + +function TRemesasClienteController.EsModificable(ARemesaProveedor: IBizRemesaCliente): Boolean; +begin + Result := True; +end; + +procedure TRemesasClienteController.AsignarDataModule; +begin + FDataModule := TDataModuleRemesasCliente.Create(Nil); + FRecibosClienteController := TRecibosClienteController.Create; +end; + +procedure TRemesasClienteController.AsignarID(ARemesaCliente: IBizRemesaCliente; const IDNuevo: Integer); +begin + if not Assigned(ARemesaCliente) then + raise Exception.Create ('RemesaCliente no asignado'); + + ARemesaCliente.Edit; + ARemesaCliente.ID := IDNuevo; + ARemesaCliente.Post; +end; + +function TRemesasClienteController.Buscar(const ID: Integer): IBizRemesaCliente; +begin + Result := (FDataModule as IDataModuleRemesasCliente).GetItem(ID); + FiltrarEmpresa(Result); +end; + +function TRemesasClienteController.BuscarTodos: IBizRemesaCliente; +begin + Result := FDataModule.GetItems; + FiltrarEmpresa(Result); +end; + +constructor TRemesasClienteController.Create; +begin + inherited; + AsignarDataModule; +end; + +function TRemesasClienteController.CreateEditor(const AName: String; + const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + +function TRemesasClienteController.DarListaAnosRemesas: TStringList; +begin + Result := FDataModule.GetAnosItems; +end; + +procedure TRemesasClienteController.DescartarCambios(ARemesaCliente: IBizRemesaCliente); +begin + if not Assigned(ARemesaCliente) then + raise Exception.Create ('RemesaCliente no asignado'); + + ShowHourglassCursor; + try + if (ARemesaCliente.State in dsEditModes) then + ARemesaCliente.Cancel; + + ARemesaCliente.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TRemesasClienteController.Destroy; +begin + FDataModule := Nil; + FRecibosClienteController := Nil; + inherited; +end; + +function TRemesasClienteController.ValidarRemesaCliente(ARemesaCliente: IBizRemesaCliente): Boolean; +begin + Result := False; + + if not Assigned(ARemesaCliente) then + raise Exception.Create ('Remesa no asignada'); + + if (ARemesaCliente.DataTable.State in dsEditModes) then + ARemesaCliente.DataTable.Post; + + if ARemesaCliente.DataTable.FieldByName(fld_RemesasClienteFECHA_REMESA).IsNull then + raise Exception.Create('Debe indicar la fecha de esta remesa.'); + + if ARemesaCliente.ID_DATOS_BANCO < 1 then + raise Exception.Create('Debe la cuenta bancaria sobre la que realizar la remesa.'); + + // Asegurarse de valores en campos "automticos" + ARemesaCliente.Edit; + try + ARemesaCliente.USUARIO := AppFactuGES.UsuarioActivo.UserName; + + Result := True; + finally + ARemesaCliente.Post; + end; +end; + +procedure TRemesasClienteController.Ver(ARemesaCliente: IBizRemesaCliente); +var + AEditor : IEditorRemesaCliente; +begin + AEditor := NIL; + RecuperarObjetos(ARemesaCliente); + + CreateEditor('EditorRemesaCliente', IEditorRemesaCliente, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.RemesaCliente := ARemesaCliente; + + //MODO CONSULTAR + if not EsModificable(ARemesaCliente) then + begin + SetDataTableReadOnly(ARemesaCliente.DataTable, True); + AEditor.ReadOnly := True; + end; + + AEditor.ShowModal; + + //MODO CONSULTAR (Se deja la tabla como estaba) + if AEditor.ReadOnly then + SetDataTableReadOnly(ARemesaCliente.DataTable, False); + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +procedure TRemesasClienteController.VerTodos(ARemesasCliente: IBizRemesaCliente); +var + AEditor : IEditorRemesasCliente; +begin + AEditor := NIL; + + CreateEditor('EditorRemesasCliente', IEditorRemesasCliente, AEditor); + if Assigned(AEditor) then + with (AEditor as IEditorRemesasCliente) do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + RemesasCliente := ARemesasCliente; + MultiSelect := True; + ShowEmbedded; + end; +end; + +function TRemesasClienteController._Vacio: IBizRemesaCliente; +begin + Result := Buscar(ID_NULO); +end; + +function TRemesasClienteController.Eliminar(const ID: Integer): Boolean; +var + ARemesaCliente : IBizRemesaCliente; +begin + ARemesaCliente := Buscar(ID); + + if not Assigned(ARemesaCliente) then + raise Exception.Create(Format('No se ha encontrado la remesa con ID = %d', [ID])); + + Result := Eliminar(ARemesaCliente); + ARemesaCliente := NIL; +end; + +function TRemesasClienteController.ElegirRecibosCliente(ARemesaCliente: IBizRemesaCliente; AListaRecibosIniciales: TStringList): Boolean; +var + ARecibosRemesa : IBizRecibosCliente; + ARecibosSeleccionados : IBizRecibosCliente; + ListaRecibosVisibles: TStringList; + ListaRecibosNoVisibles: TStringList; + i: Integer; +begin + Result := False; + + ListaRecibosVisibles := TStringList.Create; + ListaRecibosNoVisibles := TStringList.Create; + + //Todos los recibos que tenga la remesa no deben de visualizarse en la lista de seleccion + ARemesaCliente.Recibos.DataTable.First; + while not ARemesaCliente.Recibos.DataTable.eof do + begin + ListaRecibosNoVisibles.Add(IntToStr(ARemesaCliente.Recibos.ID)); + ARemesaCliente.Recibos.DataTable.Next; + end; + ARemesaCliente.Recibos.DataTable.First; + + //Si de la lista inicial hay alguno que no se encuentre en la lista de recibos de la + //remesa que tenemos en memoria dicho recibo debera verse por lo que lo aadimos a la lista de visibles + for i := 0 to AListaRecibosIniciales.Count - 1 do + begin + ARemesaCliente.Recibos.DataTable.First; + if not ARemesaCliente.Recibos.DataTable.Locate(fld_RecibosClienteID, AListaRecibosIniciales.strings[i], []) then + ListaRecibosVisibles.Add(AListaRecibosIniciales.strings[i]); + end; + ARemesaCliente.Recibos.DataTable.First; + + ARecibosSeleccionados := (FRecibosClienteController.ElegirRecibos(FRecibosClienteController.BuscarRecibosARemesar(ListaRecibosVisibles, ListaRecibosNoVisibles), 'Elija uno o ms recibos para incluirlos en esta remesa', True) as IBizRecibosCliente); + if Assigned(ARecibosSeleccionados) then + begin + ShowHourglassCursor; + try + ARecibosRemesa := ARemesaCliente.Recibos; + //Copia los recibos seleccionados a los recibos de la remesa sin que el servidor se entere de + //las inserciones + DuplicarRegistros(ARecibosSeleccionados.DataTable,ARecibosRemesa.DataTable, mdrTodos, True, False, True); + FRecibosClienteController.SetSituacionCobrados(ARecibosRemesa); + Result := True; + finally + HideHourglassCursor; + end; + end; + + ListaRecibosVisibles.Free; + ListaRecibosNoVisibles.Free; + ARecibosRemesa := Nil; + ARecibosSeleccionados := Nil; +end; + +function TRemesasClienteController.Eliminar(ARemesaCliente: IBizRemesaCliente; AllItems: Boolean = false): Boolean; +//En el caso de eliminar almenos un elemento del conjunto se devuelve true +var + bEliminado: Boolean; +begin + Result := False; + bEliminado := False; + + if not Assigned(ARemesaCliente) then + raise Exception.Create ('ARemesaCliente no asignada'); + + ShowHourglassCursor; + try + if not ARemesaCliente.DataTable.Active then + ARemesaCliente.DataTable.Active := True; + + if (ARemesaCliente.State in dsEditModes) then + ARemesaCliente.Cancel; + + //Siempre eliminaremos el seleccionado + if EsEliminable(ARemesaCliente) then + begin + //Si la llamada a eliminar es por el editor RemesasCliente, debo recuperar los recibos + //de la remesa a eliminar, en caso de venir por el editor RemesaCliente ya los tengo + if not Assigned(ARemesaCliente.Recibos) then + RecuperarRecibos(ARemesaCliente); + //Eliminaremos la remesa de los recibos asociados + With ARemesaCliente.Recibos.DataTable do + begin + First; + While not Eof do + begin + RecibosClienteController.QuitarRemesa(ARemesaCliente.Recibos); + Next; + end; + end; + + //Como no estn declarados como maestro-detalles debemos hacer el applyupdates nosotros + ARemesaCliente.Recibos.DataTable.ApplyUpdates; + + ARemesaCliente.Delete; + bEliminado := True; + end; + + //En el caso de querer eliminar todos los items del objeto AAlbaran + if AllItems then + begin + with ARemesaCliente.DataTable do + begin + First; + while not EOF do + begin + if EsEliminable(ARemesaCliente) then + begin + //Si la llamada a eliminar es por el editor RemesasProveedor, debo recuperar los recibos + //de la remesa a eliminar, en caso de venir por el editor RemesaCliente ya los tengo + if not Assigned(ARemesaCliente.Recibos) then + RecuperarRecibos(ARemesaCliente); + //Eliminaremos la remesa de los recibos asociados + With ARemesaCliente.Recibos.DataTable do + begin + First; + While not Eof do + begin + RecibosClienteController.QuitarRemesa(ARemesaCliente.Recibos); + Next; + end; + end; + + //Como no estn declarados como maestro-detalles debemos hacer el applyupdates nosotros + ARemesaCliente.Recibos.DataTable.ApplyUpdates; + + ARemesaCliente.Delete; + bEliminado := True + end + else Next; + end; + end; + end; + + if bEliminado then + begin + ARemesaCliente.DataTable.ApplyUpdates; + Result := True; + end + else + Result := False; + + HideHourglassCursor; + except + //Hay algun recibo de la remesa que tiene movimientos (Cobros/Devoluciones) posteriores al cobro inicial de la remesa + on E: Exception do + begin + ARemesaCliente.Recibos.DataTable.CancelUpdates; + ARemesaCliente.DataTable.CancelUpdates; + HideHourglassCursor; + MessageBox(0, 'Exiten movimientos (Cobros/Devoluciones) en los recibos posteriores al cobro inicial de la remesa', 'Atencin', MB_ICONWARNING or MB_OK); + end; + end; +end; + +procedure TRemesasClienteController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +begin + inherited; +// +end; + +procedure TRemesasClienteController.RecuperarObjetos(ARemesaCliente: IBizRemesaCliente); +begin + RecuperarRecibos(ARemesaCliente); +end; + +procedure TRemesasClienteController.RecuperarRecibos(ARemesaCliente: IBizRemesaCliente); +begin + ARemesaCliente.Recibos := RecibosClienteController.BuscarRecibosRemesa(ARemesaCliente.ID); +end; + +function TRemesasClienteController.Existe(const ID: Integer): Boolean; +var + ARemesaCliente : IBizRemesaCliente; +begin + try + ARemesaCliente := Buscar(ID); + Result := Assigned(ARemesaCliente) and (ARemesaCliente.ID = ID); + finally + ARemesaCliente := NIL; + end; +end; + +function TRemesasClienteController.ExtraerSeleccionados(ARemesasCliente: IBizRemesaCliente): IBizRemesaCliente; +var + ASeleccionados : IBizRemesaCliente; +begin + ASeleccionados := (Self.Buscar(ID_NULO) as IBizRemesaCliente); + CopyDataTableDA5(ARemesasCliente.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + +procedure TRemesasClienteController.FiltrarAno(ARemesa: IBizRemesaCliente; ADynWhereDataTable: WideString; const Ano: String); +var + Condicion: TDAWhereExpression; + FechaIni: String; + FechaFin: String; + +begin + ARemesa.DataTable.DynamicWhere.Clear; + ARemesa.DataTable.DynamicWhere.Xml := ADynWhereDataTable; + + if (Ano <> 'Todos') then + begin + // Filtrar las facturas actuales por empresa + FechaIni := '01/01/' + Ano; + FechaFin := '31/12/' + Ano; + with ARemesa.DataTable.DynamicWhere do + begin + // (FECHA_INICIO between FECHA_FIN) + Condicion := NewBinaryExpression(NewField('', fld_RemesasClienteFECHA_REMESA), NewConstant(FechaIni, datString), dboGreaterOrEqual); + Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_RemesasClienteFECHA_REMESA), NewConstant(FechaFin, datString), dboLessOrEqual), Condicion, dboAnd); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Condicion, Expression, dboAnd); + end; + end; +end; + +procedure TRemesasClienteController.FiltrarEmpresa(ARemesaCliente: IBizRemesaCliente); +var + Condicion: TDAWhereExpression; +begin + if ARemesaCliente.DataTable.Active then + ARemesaCliente.DataTable.Active := False; + + // Filtrar las remesas actuales por empresa + with ARemesaCliente.DataTable.DynamicWhere do + begin + // (ID_EMPRESA >= ID) + Condicion := NewBinaryExpression(NewField('', fld_RemesasClienteID_EMPRESA), NewConstant(AppFactuGES.EmpresaActiva.ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; +end; + +function TRemesasClienteController.GetRecibosClienteController: IRecibosClienteController; +begin + Result := FRecibosClienteController; +end; + +function TRemesasClienteController.Guardar(ARemesaCliente: IBizRemesaCliente): Boolean; +var + bEsNuevo: Boolean; +begin + Result := False; + + if ValidarRemesaCliente(ARemesaCliente) then + begin + ShowHourglassCursor; + try + bEsNuevo := ARemesaCliente.EsNuevo; + + //Si es nuevo debemos hacer el applyupdates por la integridad referencial de BD + if bEsNuevo then + ARemesaCliente.DataTable.ApplyUpdates; + + //Si todo ha ido bien, asignamos la remesa a los recibos asociados + //Como no estn declarados como maestro-detalles debemos hacer el applyupdates nosotros + RecibosClienteController.AsignarRemesa(ARemesaCliente.Recibos, ARemesaCliente.ID); + ARemesaCliente.Recibos.DataTable.ApplyUpdates; //En este applyupdates tambien se realizarn todos los cambios acumulados sobre los recibos asociados (EliminarReciboCliente/ ElegirRecibosCliente) + + //Es necesario ya que no se refrescan bien los deltas y despues del applyupdates siguen + //existiendo deltas, de esta forma los limpiamos + if ARemesaCliente.Recibos.DataTable.HasDelta then + ARemesaCliente.Recibos.DataTable.Refresh; + + ARemesaCliente.DataTable.ApplyUpdates; + + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TRemesasClienteController.Nuevo: IBizRemesaCliente; +var + ARemesaCliente : IBizRemesaCliente; +begin + ARemesaCliente := FDataModule.NewItem; + FiltrarEmpresa(ARemesaCliente); + ARemesaCliente.DataTable.Active := True; + ARemesaCliente.Insert; + Result := ARemesaCliente; +end; + +procedure TRemesasClienteController.Preview(ARemesaCliente: IBizRemesaCliente; AllItems: Boolean = false); +var + AReportController : IRemesasClienteReportController; + ID_Remesas: TStringList; + +begin + AReportController := TRemesasClienteReportController.Create; + ID_Remesas := TStringList.Create; + + try + //Si deseamos previsualizar todos los items del objeto albaran + if AllItems then + begin + with ARemesaCliente.DataTable do + begin + First; + while not EOF do + begin + ID_Remesas.Add(IntToStr(ARemesaCliente.ID)); + Next; + end; + end; + end + //Solo previsualizamos el item seleccionado + else + ID_Remesas.Add(IntToStr(ARemesaCliente.ID)); + + AReportController.Preview(ID_Remesas.CommaText); + + finally + AReportController := NIL; + ID_Remesas.Free; + end; +end; + +procedure TRemesasClienteController.Print(ARemesaCliente: IBizRemesaCliente; AllItems: Boolean = false); +var + AReportController : IRemesasClienteReportController; + ID_Remesas: TStringList; + +begin + AReportController := TRemesasClienteReportController.Create; + ID_Remesas := TStringList.Create; + + try + //Si deseamos previsualizar todos los items del objeto albaran + if AllItems then + begin + with ARemesaCliente.DataTable do + begin + First; + while not EOF do + begin + ID_Remesas.Add(IntToStr(ARemesaCliente.ID)); + Next; + end; + end; + end + //Solo previsualizamos el item seleccionado + else + ID_Remesas.Add(IntToStr(ARemesaCliente.ID)); + + AReportController.Print(ID_Remesas.CommaText); + + finally + AReportController := NIL; + ID_Remesas.Free; + end; +end; + +end. + \ No newline at end of file diff --git a/Source/Modulos/Remesas de cliente/Controller/uRemesasClienteReportController.dcu b/Source/Modulos/Remesas de cliente/Controller/uRemesasClienteReportController.dcu new file mode 100644 index 0000000..cb61b7a Binary files /dev/null and b/Source/Modulos/Remesas de cliente/Controller/uRemesasClienteReportController.dcu differ diff --git a/Source/Modulos/Remesas de cliente/Controller/uRemesasClienteReportController.pas b/Source/Modulos/Remesas de cliente/Controller/uRemesasClienteReportController.pas new file mode 100644 index 0000000..0d2c902 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Controller/uRemesasClienteReportController.pas @@ -0,0 +1,111 @@ +unit uRemesasClienteReportController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleRemesasClienteReport, + uBizRemesasCliente; + +type + IRemesasClienteReportController = interface + ['{EA6EAD10-E07B-45A9-9B5E-0D560E2B92DF}'] + procedure Preview(const ID : String); + procedure Print(const ID : String); + end; + + TRemesasClienteReportController = class(TInterfacedObject, IRemesasClienteReportController) + private + FDataModule : IDataModuleRemesasClienteReport; + function CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; + public + constructor Create; + destructor Destroy; override; + + procedure Preview(const ID : String); + procedure Print(const ID : String); + end; + + +implementation + +uses + uROTypes, uEditorRegistryUtils, uIEditorRemesasClientePreview, + uEditorPreview, uDataModuleRemesasCliente, uEditorBase, cxControls; + +{ TRemesasClienteReportController } + +constructor TRemesasClienteReportController.Create; +begin + FDataModule := TDataModuleRemesasCliente.Create(Nil); +end; + +function TRemesasClienteReportController.CreateEditor(const AName: String; + const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + + +destructor TRemesasClienteReportController.Destroy; +begin + FDataModule := NIL; + inherited; +end; + +procedure TRemesasClienteReportController.Preview(const ID : String); +var + AStream: Binary; + AEditor : IEditorRemesasClientePreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(ID); + try + CreateEditor('EditorRemesasClientePreview', IEditorRemesasClientePreview, AEditor); + if Assigned(AEditor) then + try + AEditor.LoadFromStream(AStream); + AEditor.Preview; + finally + AEditor.Release; + end; + finally + FreeAndNil(AStream); + AEditor := Nil; + end; + finally + HideHourglassCursor; + end; +end; + +procedure TRemesasClienteReportController.Print(const ID : String); +var + AStream: Binary; + AEditor : IEditorRemesasClientePreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(ID); + try + CreateEditor('EditorRemesasClientePreview', IEditorRemesasClientePreview, AEditor); + if Assigned(AEditor) then + try + AEditor.LoadFromStream(AStream); + AEditor.Print; + finally + AEditor.Release; + end; + finally + FreeAndNil(AStream); + AEditor := Nil; + end; + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Remesas de cliente/Data/RemesasCliente_data.bdsproj b/Source/Modulos/Remesas de cliente/Data/RemesasCliente_data.bdsproj new file mode 100644 index 0000000..9491fcc --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Data/RemesasCliente_data.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + RemesasCliente_data.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + True + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Remesas de cliente/Data/RemesasCliente_data.dcu b/Source/Modulos/Remesas de cliente/Data/RemesasCliente_data.dcu new file mode 100644 index 0000000..a633d3d Binary files /dev/null and b/Source/Modulos/Remesas de cliente/Data/RemesasCliente_data.dcu differ diff --git a/Source/Modulos/Remesas de cliente/Data/RemesasCliente_data.dpk b/Source/Modulos/Remesas de cliente/Data/RemesasCliente_data.dpk new file mode 100644 index 0000000..c049d75 Binary files /dev/null and b/Source/Modulos/Remesas de cliente/Data/RemesasCliente_data.dpk differ diff --git a/Source/Modulos/Remesas de cliente/Data/RemesasCliente_data.dproj b/Source/Modulos/Remesas de cliente/Data/RemesasCliente_data.dproj new file mode 100644 index 0000000..4bd7cdb --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Data/RemesasCliente_data.dproj @@ -0,0 +1,587 @@ + + + {568778b1-e82d-41e9-b198-b7c58140e81b} + RemesasCliente_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\RemesasCliente_data.bpl + + + 7.0 + False + False + False + True + 0 + True + True + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + False + True + True + True + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + RemesasCliente_data.dpk + + + + + + + MainSource + + + + +
DataModuleRemesasCliente
+
+
+
+ + diff --git a/Source/Modulos/Remesas de cliente/Data/RemesasCliente_data.rc b/Source/Modulos/Remesas de cliente/Data/RemesasCliente_data.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Data/RemesasCliente_data.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Remesas de cliente/Data/RemesasCliente_data.res b/Source/Modulos/Remesas de cliente/Data/RemesasCliente_data.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Remesas de cliente/Data/RemesasCliente_data.res differ diff --git a/Source/Modulos/Remesas de cliente/Data/uDataModuleRemesasCliente.dcu b/Source/Modulos/Remesas de cliente/Data/uDataModuleRemesasCliente.dcu new file mode 100644 index 0000000..d8147ba Binary files /dev/null and b/Source/Modulos/Remesas de cliente/Data/uDataModuleRemesasCliente.dcu differ diff --git a/Source/Modulos/Remesas de cliente/Data/uDataModuleRemesasCliente.dfm b/Source/Modulos/Remesas de cliente/Data/uDataModuleRemesasCliente.dfm new file mode 100644 index 0000000..6dd0646 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Data/uDataModuleRemesasCliente.dfm @@ -0,0 +1,187 @@ +inherited DataModuleRemesasCliente: TDataModuleRemesasCliente + OnCreate = DAClientDataModuleCreate + Height = 235 + Width = 444 + object RORemoteService: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvRemesasCliente' + Left = 48 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 84 + end + object rda_RemesasCliente: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetDataCall.RemoteService = RORemoteService + UpdateDataCall.RemoteService = RORemoteService + GetScriptsCall.RemoteService = RORemoteService + RemoteService = RORemoteService + DataStreamer = Bin2DataStreamer + Left = 51 + Top = 151 + end + object tbl_RemesasCliente: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_REMESAS_CLIENTE_ID' + Required = True + ServerAutoRefresh = True + DictionaryEntry = 'RemesasCliente_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DisplayLabel = 'RemesasCliente_ID_EMPRESA' + DictionaryEntry = 'RemesasCliente_ID_EMPRESA' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'RemesasCliente_REFERENCIA' + end + item + Name = 'TIPO' + DataType = datString + Size = 40 + DisplayLabel = 'Forma de cobro' + DictionaryEntry = 'RemesasCliente_TIPO' + end + item + Name = 'FECHA_REMESA' + DataType = datDateTime + DisplayLabel = 'RemesasCliente_FECHA_REMESA' + DictionaryEntry = 'RemesasCliente_FECHA_REMESA' + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DisplayLabel = 'RemesasCliente_DESCRIPCION' + DictionaryEntry = 'RemesasCliente_DESCRIPCION' + end + item + Name = 'ID_DATOS_BANCO' + DataType = datInteger + DictionaryEntry = 'RemesasCliente_ID_DATOS_BANCO' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'RemesasCliente_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'RemesasCliente_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DisplayLabel = 'RemesasCliente_USUARIO' + DictionaryEntry = 'RemesasCliente_USUARIO' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Banco' + DictionaryEntry = 'RemesasCliente_NOMBRE' + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + DisplayLabel = 'Cod. entidad' + DictionaryEntry = 'RemesasCliente_ENTIDAD' + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + DisplayLabel = 'Cod. sucursal' + DictionaryEntry = 'RemesasCliente_SUCURSAL' + end + item + Name = 'DC' + DataType = datString + Size = 15 + DictionaryEntry = 'RemesasCliente_DC' + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + DisplayLabel = 'Cuenta' + DictionaryEntry = 'RemesasCliente_CUENTA' + end + item + Name = 'SUFIJO_N19' + DataType = datString + Size = 3 + DisplayLabel = 'Sufijo N19' + DictionaryEntry = 'RemesasCliente_SUFIJO_N19' + end + item + Name = 'SUFIJO_N58' + DataType = datString + Size = 3 + DisplayLabel = 'Sufijo N58' + DictionaryEntry = 'RemesasCliente_SUFIJO_N58' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + DictionaryEntry = 'RemesasCliente_IMPORTE_TOTAL' + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_RemesasCliente + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'RemesasCliente' + IndexDefs = <> + Left = 208 + Top = 88 + end + object ds_RemesasCliente: TDADataSource + DataSet = tbl_RemesasCliente.Dataset + DataTable = tbl_RemesasCliente + Left = 208 + Top = 32 + end + object tbl_ListaAnosRemesas: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ANO' + DataType = datString + Size = 254 + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_RemesasCliente + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'ListaAnosRemesas' + IndexDefs = <> + Left = 328 + Top = 88 + end + object ds_ListaAnosRemesas: TDADataSource + DataSet = tbl_ListaAnosRemesas.Dataset + DataTable = tbl_ListaAnosRemesas + Left = 328 + Top = 32 + end +end diff --git a/Source/Modulos/Remesas de cliente/Data/uDataModuleRemesasCliente.pas b/Source/Modulos/Remesas de cliente/Data/uDataModuleRemesasCliente.pas new file mode 100644 index 0000000..9166770 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Data/uDataModuleRemesasCliente.pas @@ -0,0 +1,138 @@ +unit uDataModuleRemesasCliente; + +interface + +uses + SysUtils, Classes, DB, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, uDataModuleBase, + uIDataModuleRemesasCliente, uIDataModuleRemesasClienteReport, uBizRemesasCliente, + uDARemoteDataAdapter, uDADataStreamer, uDABin2DataStreamer, uDAInterfaces, + uDAMemDataTable; + +type + TDataModuleRemesasCliente = class(TDataModuleBase, IDataModuleRemesasCliente, IDataModuleRemesasClienteReport) + RORemoteService: TRORemoteService; + Bin2DataStreamer: TDABin2DataStreamer; + rda_RemesasCliente: TDARemoteDataAdapter; + tbl_RemesasCliente: TDAMemDataTable; + ds_RemesasCliente: TDADataSource; + tbl_ListaAnosRemesas: TDAMemDataTable; + ds_ListaAnosRemesas: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + + protected + procedure AsignarClaseNegocio(var ARemesaCliente: TDAMemDataTable); virtual; + + public + function GetItems : IBizRemesaCliente; overload; + function GetItem(const ID : Integer) : IBizRemesaCliente; + function NewItem : IBizRemesaCliente; + + // Report + function GetReport(const ID: String): Binary; + + function GetAnosItems : TStringList; + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataTableUtils, cxControls, uDataModuleConexion, + schRemesasClienteClient_Intf, Dialogs; + +{ TdmRemesasCliente } + +procedure TDataModuleRemesasCliente.AsignarClaseNegocio(var ARemesaCliente: TDAMemDataTable); +begin + ARemesaCliente.BusinessRulesID := BIZ_CLIENT_REMESACLIENTE; +end; + +procedure TDataModuleRemesasCliente.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleRemesasCliente.GetReport(const ID: String): Binary; +begin +// Result := (RORemoteService as IsrvRemesasCliente).GenerateReport(ID); +end; + +function TDataModuleRemesasCliente.NewItem: IBizRemesaCliente; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleRemesasCliente.GetAnosItems: TStringList; +var + AListaAnos: TStringList; +begin + AListaAnos := TStringList.Create; + ShowHourglassCursor; + try + with tbl_ListaAnosRemesas do + begin + Open; + First; + while not eof do + begin + AListaAnos.Add(Format('%s=%s', [Fields[0].AsString, Fields[0].AsString])); + Next; + end; + Close; + end; + Result := AListaAnos; + finally + HideHourglassCursor; + end; +end; + +function TDataModuleRemesasCliente.GetItem(const ID: Integer): IBizRemesaCliente; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + + with Result.DataTable.DynamicWhere do + begin + // (ID = :ID) + Condicion := NewBinaryExpression(NewField('', fld_RemesasClienteID), NewConstant(ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TDataModuleRemesasCliente.GetItems: IBizRemesaCliente; +var + ARemesaCliente : TDAMemDataTable; +begin + ShowHourglassCursor; + try + ARemesaCliente := CloneDataTable(tbl_RemesasCliente); + AsignarClaseNegocio(ARemesaCliente); + + // EL CAMPO REFERENCIA TIENE QUE SER AUTOREFRESH!!!!! + ARemesaCliente.FieldByName(fld_RemesasClienteREFERENCIA).ServerAutoRefresh := TRUE; + ARemesaCliente.FieldByName(fld_RemesasClienteIMPORTE_TOTAL).ServerAutoRefresh := TRUE; + + Result := (ARemesaCliente as IBizRemesaCliente); + finally + HideHourglassCursor; + end; +end; + + +end. diff --git a/Source/Modulos/Remesas de cliente/Model/Data/uIDataModuleRemesasCliente.dcu b/Source/Modulos/Remesas de cliente/Model/Data/uIDataModuleRemesasCliente.dcu new file mode 100644 index 0000000..4c3cbec Binary files /dev/null and b/Source/Modulos/Remesas de cliente/Model/Data/uIDataModuleRemesasCliente.dcu differ diff --git a/Source/Modulos/Remesas de cliente/Model/Data/uIDataModuleRemesasCliente.pas b/Source/Modulos/Remesas de cliente/Model/Data/uIDataModuleRemesasCliente.pas new file mode 100644 index 0000000..3239d02 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Model/Data/uIDataModuleRemesasCliente.pas @@ -0,0 +1,19 @@ +unit uIDataModuleRemesasCliente; + +interface + +uses + Classes, uBizRemesasCliente; + +type + IDataModuleRemesasCliente = interface + ['{9047C468-78DE-404E-9047-1125B382FE3B}'] + function GetAnosItems : TStringList; + function GetItems: IBizRemesaCliente; + function GetItem(const ID : Integer) : IBizRemesaCliente; + function NewItem : IBizRemesaCliente; + end; + +implementation + +end. diff --git a/Source/Modulos/Remesas de cliente/Model/Data/uIDataModuleRemesasClienteReport.dcu b/Source/Modulos/Remesas de cliente/Model/Data/uIDataModuleRemesasClienteReport.dcu new file mode 100644 index 0000000..e311e9f Binary files /dev/null and b/Source/Modulos/Remesas de cliente/Model/Data/uIDataModuleRemesasClienteReport.dcu differ diff --git a/Source/Modulos/Remesas de cliente/Model/Data/uIDataModuleRemesasClienteReport.pas b/Source/Modulos/Remesas de cliente/Model/Data/uIDataModuleRemesasClienteReport.pas new file mode 100644 index 0000000..53389c0 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Model/Data/uIDataModuleRemesasClienteReport.pas @@ -0,0 +1,16 @@ +unit uIDataModuleRemesasClienteReport; + +interface + +uses + SysUtils, Classes, uROTypes; + +type + IDataModuleRemesasClienteReport = interface + ['{6BFFFC92-D3E0-465C-8259-645B9FE9E446}'] + function GetReport(const ID: String): Binary; + end; + +implementation + +end. diff --git a/Source/Modulos/Remesas de cliente/Model/RemesasCliente_model.bdsproj b/Source/Modulos/Remesas de cliente/Model/RemesasCliente_model.bdsproj new file mode 100644 index 0000000..5be70e5 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Model/RemesasCliente_model.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + RemesasCliente_model.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + True + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Remesas de cliente/Model/RemesasCliente_model.dcu b/Source/Modulos/Remesas de cliente/Model/RemesasCliente_model.dcu new file mode 100644 index 0000000..50fbc1a Binary files /dev/null and b/Source/Modulos/Remesas de cliente/Model/RemesasCliente_model.dcu differ diff --git a/Source/Modulos/Remesas de cliente/Model/RemesasCliente_model.dpk b/Source/Modulos/Remesas de cliente/Model/RemesasCliente_model.dpk new file mode 100644 index 0000000..13226e2 Binary files /dev/null and b/Source/Modulos/Remesas de cliente/Model/RemesasCliente_model.dpk differ diff --git a/Source/Modulos/Remesas de cliente/Model/RemesasCliente_model.dproj b/Source/Modulos/Remesas de cliente/Model/RemesasCliente_model.dproj new file mode 100644 index 0000000..d414a11 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Model/RemesasCliente_model.dproj @@ -0,0 +1,589 @@ + + + {e4f81792-84cf-4900-a6ab-18f6dd2c7ada} + RemesasCliente_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\RemesasCliente_model.bpl + + + 7.0 + False + False + False + True + 0 + True + True + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + False + True + True + True + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + RemesasCliente_model.dpk + + + + + + + MainSource + + + + + + + + + + + + diff --git a/Source/Modulos/Remesas de cliente/Model/RemesasCliente_model.rc b/Source/Modulos/Remesas de cliente/Model/RemesasCliente_model.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Model/RemesasCliente_model.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Remesas de cliente/Model/RemesasCliente_model.res b/Source/Modulos/Remesas de cliente/Model/RemesasCliente_model.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Remesas de cliente/Model/RemesasCliente_model.res differ diff --git a/Source/Modulos/Remesas de cliente/Model/schRemesasClienteClient_Intf.dcu b/Source/Modulos/Remesas de cliente/Model/schRemesasClienteClient_Intf.dcu new file mode 100644 index 0000000..2b2ccfb Binary files /dev/null and b/Source/Modulos/Remesas de cliente/Model/schRemesasClienteClient_Intf.dcu differ diff --git a/Source/Modulos/Remesas de cliente/Model/schRemesasClienteClient_Intf.pas b/Source/Modulos/Remesas de cliente/Model/schRemesasClienteClient_Intf.pas new file mode 100644 index 0000000..15f4498 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Model/schRemesasClienteClient_Intf.pas @@ -0,0 +1,771 @@ +unit schRemesasClienteClient_Intf; + +interface + +uses + Classes, DB, schBase_Intf, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_ListaAnosRemesas = '{18B30F17-EDCE-4FFF-A761-BC8F65564F29}'; + RID_RemesasCliente = '{ECFA8C62-D24D-4A6D-97E2-4A0CECBE1704}'; + + { Data table names } + nme_ListaAnosRemesas = 'ListaAnosRemesas'; + nme_RemesasCliente = 'RemesasCliente'; + + { ListaAnosRemesas fields } + fld_ListaAnosRemesasANO = 'ANO'; + + { ListaAnosRemesas field indexes } + idx_ListaAnosRemesasANO = 0; + + { RemesasCliente fields } + fld_RemesasClienteID = 'ID'; + fld_RemesasClienteID_EMPRESA = 'ID_EMPRESA'; + fld_RemesasClienteREFERENCIA = 'REFERENCIA'; + fld_RemesasClienteTIPO = 'TIPO'; + fld_RemesasClienteFECHA_REMESA = 'FECHA_REMESA'; + fld_RemesasClienteDESCRIPCION = 'DESCRIPCION'; + fld_RemesasClienteID_DATOS_BANCO = 'ID_DATOS_BANCO'; + fld_RemesasClienteFECHA_ALTA = 'FECHA_ALTA'; + fld_RemesasClienteFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_RemesasClienteUSUARIO = 'USUARIO'; + fld_RemesasClienteNOMBRE = 'NOMBRE'; + fld_RemesasClienteENTIDAD = 'ENTIDAD'; + fld_RemesasClienteSUCURSAL = 'SUCURSAL'; + fld_RemesasClienteDC = 'DC'; + fld_RemesasClienteCUENTA = 'CUENTA'; + fld_RemesasClienteSUFIJO_N19 = 'SUFIJO_N19'; + fld_RemesasClienteSUFIJO_N58 = 'SUFIJO_N58'; + fld_RemesasClienteIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + + { RemesasCliente field indexes } + idx_RemesasClienteID = 0; + idx_RemesasClienteID_EMPRESA = 1; + idx_RemesasClienteREFERENCIA = 2; + idx_RemesasClienteTIPO = 3; + idx_RemesasClienteFECHA_REMESA = 4; + idx_RemesasClienteDESCRIPCION = 5; + idx_RemesasClienteID_DATOS_BANCO = 6; + idx_RemesasClienteFECHA_ALTA = 7; + idx_RemesasClienteFECHA_MODIFICACION = 8; + idx_RemesasClienteUSUARIO = 9; + idx_RemesasClienteNOMBRE = 10; + idx_RemesasClienteENTIDAD = 11; + idx_RemesasClienteSUCURSAL = 12; + idx_RemesasClienteDC = 13; + idx_RemesasClienteCUENTA = 14; + idx_RemesasClienteSUFIJO_N19 = 15; + idx_RemesasClienteSUFIJO_N58 = 16; + idx_RemesasClienteIMPORTE_TOTAL = 17; + +type + { IListaAnosRemesas } + IListaAnosRemesas = interface(IDAStronglyTypedDataTable) + ['{E749CD10-676C-459A-996A-8690F0712301}'] + { Property getters and setters } + function GetANOValue: String; + procedure SetANOValue(const aValue: String); + function GetANOIsNull: Boolean; + procedure SetANOIsNull(const aValue: Boolean); + + + { Properties } + property ANO: String read GetANOValue write SetANOValue; + property ANOIsNull: Boolean read GetANOIsNull write SetANOIsNull; + end; + + { TListaAnosRemesasDataTableRules } + TListaAnosRemesasDataTableRules = class(TIntfObjectDADataTableRules, IListaAnosRemesas) + private + protected + { Property getters and setters } + function GetANOValue: String; virtual; + procedure SetANOValue(const aValue: String); virtual; + function GetANOIsNull: Boolean; virtual; + procedure SetANOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ANO: String read GetANOValue write SetANOValue; + property ANOIsNull: Boolean read GetANOIsNull write SetANOIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IRemesasCliente } + IRemesasCliente = interface(IDAStronglyTypedDataTable) + ['{5AB6B670-D2E4-4409-BCD6-18F8F2E1BDAC}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_EMPRESAIsNull: Boolean; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetTIPOValue: String; + procedure SetTIPOValue(const aValue: String); + function GetTIPOIsNull: Boolean; + procedure SetTIPOIsNull(const aValue: Boolean); + function GetFECHA_REMESAValue: DateTime; + procedure SetFECHA_REMESAValue(const aValue: DateTime); + function GetFECHA_REMESAIsNull: Boolean; + procedure SetFECHA_REMESAIsNull(const aValue: Boolean); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetDESCRIPCIONIsNull: Boolean; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); + function GetID_DATOS_BANCOValue: Integer; + procedure SetID_DATOS_BANCOValue(const aValue: Integer); + function GetID_DATOS_BANCOIsNull: Boolean; + procedure SetID_DATOS_BANCOIsNull(const aValue: Boolean); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_ALTAIsNull: Boolean; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONIsNull: Boolean; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetUSUARIOIsNull: Boolean; + procedure SetUSUARIOIsNull(const aValue: Boolean); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetNOMBREIsNull: Boolean; + procedure SetNOMBREIsNull(const aValue: Boolean); + function GetENTIDADValue: String; + procedure SetENTIDADValue(const aValue: String); + function GetENTIDADIsNull: Boolean; + procedure SetENTIDADIsNull(const aValue: Boolean); + function GetSUCURSALValue: String; + procedure SetSUCURSALValue(const aValue: String); + function GetSUCURSALIsNull: Boolean; + procedure SetSUCURSALIsNull(const aValue: Boolean); + function GetDCValue: String; + procedure SetDCValue(const aValue: String); + function GetDCIsNull: Boolean; + procedure SetDCIsNull(const aValue: Boolean); + function GetCUENTAValue: String; + procedure SetCUENTAValue(const aValue: String); + function GetCUENTAIsNull: Boolean; + procedure SetCUENTAIsNull(const aValue: Boolean); + function GetSUFIJO_N19Value: String; + procedure SetSUFIJO_N19Value(const aValue: String); + function GetSUFIJO_N19IsNull: Boolean; + procedure SetSUFIJO_N19IsNull(const aValue: Boolean); + function GetSUFIJO_N58Value: String; + procedure SetSUFIJO_N58Value(const aValue: String); + function GetSUFIJO_N58IsNull: Boolean; + procedure SetSUFIJO_N58IsNull(const aValue: Boolean); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetIMPORTE_TOTALIsNull: Boolean; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull: Boolean read GetTIPOIsNull write SetTIPOIsNull; + property FECHA_REMESA: DateTime read GetFECHA_REMESAValue write SetFECHA_REMESAValue; + property FECHA_REMESAIsNull: Boolean read GetFECHA_REMESAIsNull write SetFECHA_REMESAIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property ID_DATOS_BANCO: Integer read GetID_DATOS_BANCOValue write SetID_DATOS_BANCOValue; + property ID_DATOS_BANCOIsNull: Boolean read GetID_DATOS_BANCOIsNull write SetID_DATOS_BANCOIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property ENTIDAD: String read GetENTIDADValue write SetENTIDADValue; + property ENTIDADIsNull: Boolean read GetENTIDADIsNull write SetENTIDADIsNull; + property SUCURSAL: String read GetSUCURSALValue write SetSUCURSALValue; + property SUCURSALIsNull: Boolean read GetSUCURSALIsNull write SetSUCURSALIsNull; + property DC: String read GetDCValue write SetDCValue; + property DCIsNull: Boolean read GetDCIsNull write SetDCIsNull; + property CUENTA: String read GetCUENTAValue write SetCUENTAValue; + property CUENTAIsNull: Boolean read GetCUENTAIsNull write SetCUENTAIsNull; + property SUFIJO_N19: String read GetSUFIJO_N19Value write SetSUFIJO_N19Value; + property SUFIJO_N19IsNull: Boolean read GetSUFIJO_N19IsNull write SetSUFIJO_N19IsNull; + property SUFIJO_N58: String read GetSUFIJO_N58Value write SetSUFIJO_N58Value; + property SUFIJO_N58IsNull: Boolean read GetSUFIJO_N58IsNull write SetSUFIJO_N58IsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + end; + + { TRemesasClienteDataTableRules } + TRemesasClienteDataTableRules = class(TIntfObjectDADataTableRules, IRemesasCliente) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetTIPOValue: String; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + function GetTIPOIsNull: Boolean; virtual; + procedure SetTIPOIsNull(const aValue: Boolean); virtual; + function GetFECHA_REMESAValue: DateTime; virtual; + procedure SetFECHA_REMESAValue(const aValue: DateTime); virtual; + function GetFECHA_REMESAIsNull: Boolean; virtual; + procedure SetFECHA_REMESAIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + function GetID_DATOS_BANCOValue: Integer; virtual; + procedure SetID_DATOS_BANCOValue(const aValue: Integer); virtual; + function GetID_DATOS_BANCOIsNull: Boolean; virtual; + procedure SetID_DATOS_BANCOIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetENTIDADValue: String; virtual; + procedure SetENTIDADValue(const aValue: String); virtual; + function GetENTIDADIsNull: Boolean; virtual; + procedure SetENTIDADIsNull(const aValue: Boolean); virtual; + function GetSUCURSALValue: String; virtual; + procedure SetSUCURSALValue(const aValue: String); virtual; + function GetSUCURSALIsNull: Boolean; virtual; + procedure SetSUCURSALIsNull(const aValue: Boolean); virtual; + function GetDCValue: String; virtual; + procedure SetDCValue(const aValue: String); virtual; + function GetDCIsNull: Boolean; virtual; + procedure SetDCIsNull(const aValue: Boolean); virtual; + function GetCUENTAValue: String; virtual; + procedure SetCUENTAValue(const aValue: String); virtual; + function GetCUENTAIsNull: Boolean; virtual; + procedure SetCUENTAIsNull(const aValue: Boolean); virtual; + function GetSUFIJO_N19Value: String; virtual; + procedure SetSUFIJO_N19Value(const aValue: String); virtual; + function GetSUFIJO_N19IsNull: Boolean; virtual; + procedure SetSUFIJO_N19IsNull(const aValue: Boolean); virtual; + function GetSUFIJO_N58Value: String; virtual; + procedure SetSUFIJO_N58Value(const aValue: String); virtual; + function GetSUFIJO_N58IsNull: Boolean; virtual; + procedure SetSUFIJO_N58IsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull: Boolean read GetTIPOIsNull write SetTIPOIsNull; + property FECHA_REMESA: DateTime read GetFECHA_REMESAValue write SetFECHA_REMESAValue; + property FECHA_REMESAIsNull: Boolean read GetFECHA_REMESAIsNull write SetFECHA_REMESAIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property ID_DATOS_BANCO: Integer read GetID_DATOS_BANCOValue write SetID_DATOS_BANCOValue; + property ID_DATOS_BANCOIsNull: Boolean read GetID_DATOS_BANCOIsNull write SetID_DATOS_BANCOIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property ENTIDAD: String read GetENTIDADValue write SetENTIDADValue; + property ENTIDADIsNull: Boolean read GetENTIDADIsNull write SetENTIDADIsNull; + property SUCURSAL: String read GetSUCURSALValue write SetSUCURSALValue; + property SUCURSALIsNull: Boolean read GetSUCURSALIsNull write SetSUCURSALIsNull; + property DC: String read GetDCValue write SetDCValue; + property DCIsNull: Boolean read GetDCIsNull write SetDCIsNull; + property CUENTA: String read GetCUENTAValue write SetCUENTAValue; + property CUENTAIsNull: Boolean read GetCUENTAIsNull write SetCUENTAIsNull; + property SUFIJO_N19: String read GetSUFIJO_N19Value write SetSUFIJO_N19Value; + property SUFIJO_N19IsNull: Boolean read GetSUFIJO_N19IsNull write SetSUFIJO_N19IsNull; + property SUFIJO_N58: String read GetSUFIJO_N58Value write SetSUFIJO_N58Value; + property SUFIJO_N58IsNull: Boolean read GetSUFIJO_N58IsNull write SetSUFIJO_N58IsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants, uROBinaryHelpers; + +{ TListaAnosRemesasDataTableRules } +constructor TListaAnosRemesasDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TListaAnosRemesasDataTableRules.Destroy; +begin + inherited; +end; + +function TListaAnosRemesasDataTableRules.GetANOValue: String; +begin + result := DataTable.Fields[idx_ListaAnosRemesasANO].AsString; +end; + +procedure TListaAnosRemesasDataTableRules.SetANOValue(const aValue: String); +begin + DataTable.Fields[idx_ListaAnosRemesasANO].AsString := aValue; +end; + +function TListaAnosRemesasDataTableRules.GetANOIsNull: boolean; +begin + result := DataTable.Fields[idx_ListaAnosRemesasANO].IsNull; +end; + +procedure TListaAnosRemesasDataTableRules.SetANOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ListaAnosRemesasANO].AsVariant := Null; +end; + + +{ TRemesasClienteDataTableRules } +constructor TRemesasClienteDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TRemesasClienteDataTableRules.Destroy; +begin + inherited; +end; + +function TRemesasClienteDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_RemesasClienteID].AsInteger; +end; + +procedure TRemesasClienteDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_RemesasClienteID].AsInteger := aValue; +end; + +function TRemesasClienteDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasClienteID].IsNull; +end; + +procedure TRemesasClienteDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasClienteID].AsVariant := Null; +end; + +function TRemesasClienteDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_RemesasClienteID_EMPRESA].AsInteger; +end; + +procedure TRemesasClienteDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_RemesasClienteID_EMPRESA].AsInteger := aValue; +end; + +function TRemesasClienteDataTableRules.GetID_EMPRESAIsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasClienteID_EMPRESA].IsNull; +end; + +procedure TRemesasClienteDataTableRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasClienteID_EMPRESA].AsVariant := Null; +end; + +function TRemesasClienteDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_RemesasClienteREFERENCIA].AsString; +end; + +procedure TRemesasClienteDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_RemesasClienteREFERENCIA].AsString := aValue; +end; + +function TRemesasClienteDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasClienteREFERENCIA].IsNull; +end; + +procedure TRemesasClienteDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasClienteREFERENCIA].AsVariant := Null; +end; + +function TRemesasClienteDataTableRules.GetTIPOValue: String; +begin + result := DataTable.Fields[idx_RemesasClienteTIPO].AsString; +end; + +procedure TRemesasClienteDataTableRules.SetTIPOValue(const aValue: String); +begin + DataTable.Fields[idx_RemesasClienteTIPO].AsString := aValue; +end; + +function TRemesasClienteDataTableRules.GetTIPOIsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasClienteTIPO].IsNull; +end; + +procedure TRemesasClienteDataTableRules.SetTIPOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasClienteTIPO].AsVariant := Null; +end; + +function TRemesasClienteDataTableRules.GetFECHA_REMESAValue: DateTime; +begin + result := DataTable.Fields[idx_RemesasClienteFECHA_REMESA].AsDateTime; +end; + +procedure TRemesasClienteDataTableRules.SetFECHA_REMESAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RemesasClienteFECHA_REMESA].AsDateTime := aValue; +end; + +function TRemesasClienteDataTableRules.GetFECHA_REMESAIsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasClienteFECHA_REMESA].IsNull; +end; + +procedure TRemesasClienteDataTableRules.SetFECHA_REMESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasClienteFECHA_REMESA].AsVariant := Null; +end; + +function TRemesasClienteDataTableRules.GetDESCRIPCIONValue: String; +begin + result := DataTable.Fields[idx_RemesasClienteDESCRIPCION].AsString; +end; + +procedure TRemesasClienteDataTableRules.SetDESCRIPCIONValue(const aValue: String); +begin + DataTable.Fields[idx_RemesasClienteDESCRIPCION].AsString := aValue; +end; + +function TRemesasClienteDataTableRules.GetDESCRIPCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasClienteDESCRIPCION].IsNull; +end; + +procedure TRemesasClienteDataTableRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasClienteDESCRIPCION].AsVariant := Null; +end; + +function TRemesasClienteDataTableRules.GetID_DATOS_BANCOValue: Integer; +begin + result := DataTable.Fields[idx_RemesasClienteID_DATOS_BANCO].AsInteger; +end; + +procedure TRemesasClienteDataTableRules.SetID_DATOS_BANCOValue(const aValue: Integer); +begin + DataTable.Fields[idx_RemesasClienteID_DATOS_BANCO].AsInteger := aValue; +end; + +function TRemesasClienteDataTableRules.GetID_DATOS_BANCOIsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasClienteID_DATOS_BANCO].IsNull; +end; + +procedure TRemesasClienteDataTableRules.SetID_DATOS_BANCOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasClienteID_DATOS_BANCO].AsVariant := Null; +end; + +function TRemesasClienteDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_RemesasClienteFECHA_ALTA].AsDateTime; +end; + +procedure TRemesasClienteDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RemesasClienteFECHA_ALTA].AsDateTime := aValue; +end; + +function TRemesasClienteDataTableRules.GetFECHA_ALTAIsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasClienteFECHA_ALTA].IsNull; +end; + +procedure TRemesasClienteDataTableRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasClienteFECHA_ALTA].AsVariant := Null; +end; + +function TRemesasClienteDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_RemesasClienteFECHA_MODIFICACION].AsDateTime; +end; + +procedure TRemesasClienteDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RemesasClienteFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TRemesasClienteDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasClienteFECHA_MODIFICACION].IsNull; +end; + +procedure TRemesasClienteDataTableRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasClienteFECHA_MODIFICACION].AsVariant := Null; +end; + +function TRemesasClienteDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_RemesasClienteUSUARIO].AsString; +end; + +procedure TRemesasClienteDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_RemesasClienteUSUARIO].AsString := aValue; +end; + +function TRemesasClienteDataTableRules.GetUSUARIOIsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasClienteUSUARIO].IsNull; +end; + +procedure TRemesasClienteDataTableRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasClienteUSUARIO].AsVariant := Null; +end; + +function TRemesasClienteDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_RemesasClienteNOMBRE].AsString; +end; + +procedure TRemesasClienteDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_RemesasClienteNOMBRE].AsString := aValue; +end; + +function TRemesasClienteDataTableRules.GetNOMBREIsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasClienteNOMBRE].IsNull; +end; + +procedure TRemesasClienteDataTableRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasClienteNOMBRE].AsVariant := Null; +end; + +function TRemesasClienteDataTableRules.GetENTIDADValue: String; +begin + result := DataTable.Fields[idx_RemesasClienteENTIDAD].AsString; +end; + +procedure TRemesasClienteDataTableRules.SetENTIDADValue(const aValue: String); +begin + DataTable.Fields[idx_RemesasClienteENTIDAD].AsString := aValue; +end; + +function TRemesasClienteDataTableRules.GetENTIDADIsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasClienteENTIDAD].IsNull; +end; + +procedure TRemesasClienteDataTableRules.SetENTIDADIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasClienteENTIDAD].AsVariant := Null; +end; + +function TRemesasClienteDataTableRules.GetSUCURSALValue: String; +begin + result := DataTable.Fields[idx_RemesasClienteSUCURSAL].AsString; +end; + +procedure TRemesasClienteDataTableRules.SetSUCURSALValue(const aValue: String); +begin + DataTable.Fields[idx_RemesasClienteSUCURSAL].AsString := aValue; +end; + +function TRemesasClienteDataTableRules.GetSUCURSALIsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasClienteSUCURSAL].IsNull; +end; + +procedure TRemesasClienteDataTableRules.SetSUCURSALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasClienteSUCURSAL].AsVariant := Null; +end; + +function TRemesasClienteDataTableRules.GetDCValue: String; +begin + result := DataTable.Fields[idx_RemesasClienteDC].AsString; +end; + +procedure TRemesasClienteDataTableRules.SetDCValue(const aValue: String); +begin + DataTable.Fields[idx_RemesasClienteDC].AsString := aValue; +end; + +function TRemesasClienteDataTableRules.GetDCIsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasClienteDC].IsNull; +end; + +procedure TRemesasClienteDataTableRules.SetDCIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasClienteDC].AsVariant := Null; +end; + +function TRemesasClienteDataTableRules.GetCUENTAValue: String; +begin + result := DataTable.Fields[idx_RemesasClienteCUENTA].AsString; +end; + +procedure TRemesasClienteDataTableRules.SetCUENTAValue(const aValue: String); +begin + DataTable.Fields[idx_RemesasClienteCUENTA].AsString := aValue; +end; + +function TRemesasClienteDataTableRules.GetCUENTAIsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasClienteCUENTA].IsNull; +end; + +procedure TRemesasClienteDataTableRules.SetCUENTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasClienteCUENTA].AsVariant := Null; +end; + +function TRemesasClienteDataTableRules.GetSUFIJO_N19Value: String; +begin + result := DataTable.Fields[idx_RemesasClienteSUFIJO_N19].AsString; +end; + +procedure TRemesasClienteDataTableRules.SetSUFIJO_N19Value(const aValue: String); +begin + DataTable.Fields[idx_RemesasClienteSUFIJO_N19].AsString := aValue; +end; + +function TRemesasClienteDataTableRules.GetSUFIJO_N19IsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasClienteSUFIJO_N19].IsNull; +end; + +procedure TRemesasClienteDataTableRules.SetSUFIJO_N19IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasClienteSUFIJO_N19].AsVariant := Null; +end; + +function TRemesasClienteDataTableRules.GetSUFIJO_N58Value: String; +begin + result := DataTable.Fields[idx_RemesasClienteSUFIJO_N58].AsString; +end; + +procedure TRemesasClienteDataTableRules.SetSUFIJO_N58Value(const aValue: String); +begin + DataTable.Fields[idx_RemesasClienteSUFIJO_N58].AsString := aValue; +end; + +function TRemesasClienteDataTableRules.GetSUFIJO_N58IsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasClienteSUFIJO_N58].IsNull; +end; + +procedure TRemesasClienteDataTableRules.SetSUFIJO_N58IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasClienteSUFIJO_N58].AsVariant := Null; +end; + +function TRemesasClienteDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_RemesasClienteIMPORTE_TOTAL].AsCurrency; +end; + +procedure TRemesasClienteDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_RemesasClienteIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TRemesasClienteDataTableRules.GetIMPORTE_TOTALIsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasClienteIMPORTE_TOTAL].IsNull; +end; + +procedure TRemesasClienteDataTableRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasClienteIMPORTE_TOTAL].AsVariant := Null; +end; + + +initialization + RegisterDataTableRules(RID_ListaAnosRemesas, TListaAnosRemesasDataTableRules); + RegisterDataTableRules(RID_RemesasCliente, TRemesasClienteDataTableRules); + +end. diff --git a/Source/Modulos/Remesas de cliente/Model/schRemesasClienteServer_Intf.dcu b/Source/Modulos/Remesas de cliente/Model/schRemesasClienteServer_Intf.dcu new file mode 100644 index 0000000..aacb26b Binary files /dev/null and b/Source/Modulos/Remesas de cliente/Model/schRemesasClienteServer_Intf.dcu differ diff --git a/Source/Modulos/Remesas de cliente/Model/schRemesasClienteServer_Intf.pas b/Source/Modulos/Remesas de cliente/Model/schRemesasClienteServer_Intf.pas new file mode 100644 index 0000000..ee6b225 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Model/schRemesasClienteServer_Intf.pas @@ -0,0 +1,910 @@ +unit schRemesasClienteServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schRemesasClienteClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_ListaAnosRemesasDelta = '{6C373A41-A09A-452A-932B-A3D8A57D3796}'; + RID_RemesasClienteDelta = '{52679A52-CD63-419C-AFE2-86E2E6CE2F73}'; + +type + { IListaAnosRemesasDelta } + IListaAnosRemesasDelta = interface(IListaAnosRemesas) + ['{6C373A41-A09A-452A-932B-A3D8A57D3796}'] + { Property getters and setters } + function GetOldANOValue : String; + + { Properties } + property OldANO : String read GetOldANOValue; + end; + + { TListaAnosRemesasBusinessProcessorRules } + TListaAnosRemesasBusinessProcessorRules = class(TDABusinessProcessorRules, IListaAnosRemesas, IListaAnosRemesasDelta) + private + protected + { Property getters and setters } + function GetANOValue: String; virtual; + function GetANOIsNull: Boolean; virtual; + function GetOldANOValue: String; virtual; + function GetOldANOIsNull: Boolean; virtual; + procedure SetANOValue(const aValue: String); virtual; + procedure SetANOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ANO : String read GetANOValue write SetANOValue; + property ANOIsNull : Boolean read GetANOIsNull write SetANOIsNull; + property OldANO : String read GetOldANOValue; + property OldANOIsNull : Boolean read GetOldANOIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IRemesasClienteDelta } + IRemesasClienteDelta = interface(IRemesasCliente) + ['{52679A52-CD63-419C-AFE2-86E2E6CE2F73}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldREFERENCIAValue : String; + function GetOldTIPOValue : String; + function GetOldFECHA_REMESAValue : DateTime; + function GetOldDESCRIPCIONValue : String; + function GetOldID_DATOS_BANCOValue : Integer; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + function GetOldUSUARIOValue : String; + function GetOldNOMBREValue : String; + function GetOldENTIDADValue : String; + function GetOldSUCURSALValue : String; + function GetOldDCValue : String; + function GetOldCUENTAValue : String; + function GetOldSUFIJO_N19Value : String; + function GetOldSUFIJO_N58Value : String; + function GetOldIMPORTE_TOTALValue : Currency; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldTIPO : String read GetOldTIPOValue; + property OldFECHA_REMESA : DateTime read GetOldFECHA_REMESAValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldID_DATOS_BANCO : Integer read GetOldID_DATOS_BANCOValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldENTIDAD : String read GetOldENTIDADValue; + property OldSUCURSAL : String read GetOldSUCURSALValue; + property OldDC : String read GetOldDCValue; + property OldCUENTA : String read GetOldCUENTAValue; + property OldSUFIJO_N19 : String read GetOldSUFIJO_N19Value; + property OldSUFIJO_N58 : String read GetOldSUFIJO_N58Value; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + end; + + { TRemesasClienteBusinessProcessorRules } + TRemesasClienteBusinessProcessorRules = class(TDABusinessProcessorRules, IRemesasCliente, IRemesasClienteDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetTIPOValue: String; virtual; + function GetTIPOIsNull: Boolean; virtual; + function GetOldTIPOValue: String; virtual; + function GetOldTIPOIsNull: Boolean; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + procedure SetTIPOIsNull(const aValue: Boolean); virtual; + function GetFECHA_REMESAValue: DateTime; virtual; + function GetFECHA_REMESAIsNull: Boolean; virtual; + function GetOldFECHA_REMESAValue: DateTime; virtual; + function GetOldFECHA_REMESAIsNull: Boolean; virtual; + procedure SetFECHA_REMESAValue(const aValue: DateTime); virtual; + procedure SetFECHA_REMESAIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + function GetID_DATOS_BANCOValue: Integer; virtual; + function GetID_DATOS_BANCOIsNull: Boolean; virtual; + function GetOldID_DATOS_BANCOValue: Integer; virtual; + function GetOldID_DATOS_BANCOIsNull: Boolean; virtual; + procedure SetID_DATOS_BANCOValue(const aValue: Integer); virtual; + procedure SetID_DATOS_BANCOIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + function GetUSUARIOIsNull: Boolean; virtual; + function GetOldUSUARIOValue: String; virtual; + function GetOldUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + function GetNOMBREIsNull: Boolean; virtual; + function GetOldNOMBREValue: String; virtual; + function GetOldNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetENTIDADValue: String; virtual; + function GetENTIDADIsNull: Boolean; virtual; + function GetOldENTIDADValue: String; virtual; + function GetOldENTIDADIsNull: Boolean; virtual; + procedure SetENTIDADValue(const aValue: String); virtual; + procedure SetENTIDADIsNull(const aValue: Boolean); virtual; + function GetSUCURSALValue: String; virtual; + function GetSUCURSALIsNull: Boolean; virtual; + function GetOldSUCURSALValue: String; virtual; + function GetOldSUCURSALIsNull: Boolean; virtual; + procedure SetSUCURSALValue(const aValue: String); virtual; + procedure SetSUCURSALIsNull(const aValue: Boolean); virtual; + function GetDCValue: String; virtual; + function GetDCIsNull: Boolean; virtual; + function GetOldDCValue: String; virtual; + function GetOldDCIsNull: Boolean; virtual; + procedure SetDCValue(const aValue: String); virtual; + procedure SetDCIsNull(const aValue: Boolean); virtual; + function GetCUENTAValue: String; virtual; + function GetCUENTAIsNull: Boolean; virtual; + function GetOldCUENTAValue: String; virtual; + function GetOldCUENTAIsNull: Boolean; virtual; + procedure SetCUENTAValue(const aValue: String); virtual; + procedure SetCUENTAIsNull(const aValue: Boolean); virtual; + function GetSUFIJO_N19Value: String; virtual; + function GetSUFIJO_N19IsNull: Boolean; virtual; + function GetOldSUFIJO_N19Value: String; virtual; + function GetOldSUFIJO_N19IsNull: Boolean; virtual; + procedure SetSUFIJO_N19Value(const aValue: String); virtual; + procedure SetSUFIJO_N19IsNull(const aValue: Boolean); virtual; + function GetSUFIJO_N58Value: String; virtual; + function GetSUFIJO_N58IsNull: Boolean; virtual; + function GetOldSUFIJO_N58Value: String; virtual; + function GetOldSUFIJO_N58IsNull: Boolean; virtual; + procedure SetSUFIJO_N58Value(const aValue: String); virtual; + procedure SetSUFIJO_N58IsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull : Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_EMPRESAIsNull : Boolean read GetOldID_EMPRESAIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property TIPO : String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull : Boolean read GetTIPOIsNull write SetTIPOIsNull; + property OldTIPO : String read GetOldTIPOValue; + property OldTIPOIsNull : Boolean read GetOldTIPOIsNull; + property FECHA_REMESA : DateTime read GetFECHA_REMESAValue write SetFECHA_REMESAValue; + property FECHA_REMESAIsNull : Boolean read GetFECHA_REMESAIsNull write SetFECHA_REMESAIsNull; + property OldFECHA_REMESA : DateTime read GetOldFECHA_REMESAValue; + property OldFECHA_REMESAIsNull : Boolean read GetOldFECHA_REMESAIsNull; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull : Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldDESCRIPCIONIsNull : Boolean read GetOldDESCRIPCIONIsNull; + property ID_DATOS_BANCO : Integer read GetID_DATOS_BANCOValue write SetID_DATOS_BANCOValue; + property ID_DATOS_BANCOIsNull : Boolean read GetID_DATOS_BANCOIsNull write SetID_DATOS_BANCOIsNull; + property OldID_DATOS_BANCO : Integer read GetOldID_DATOS_BANCOValue; + property OldID_DATOS_BANCOIsNull : Boolean read GetOldID_DATOS_BANCOIsNull; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull : Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_ALTAIsNull : Boolean read GetOldFECHA_ALTAIsNull; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull : Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldUSUARIOIsNull : Boolean read GetOldUSUARIOIsNull; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull : Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldNOMBREIsNull : Boolean read GetOldNOMBREIsNull; + property ENTIDAD : String read GetENTIDADValue write SetENTIDADValue; + property ENTIDADIsNull : Boolean read GetENTIDADIsNull write SetENTIDADIsNull; + property OldENTIDAD : String read GetOldENTIDADValue; + property OldENTIDADIsNull : Boolean read GetOldENTIDADIsNull; + property SUCURSAL : String read GetSUCURSALValue write SetSUCURSALValue; + property SUCURSALIsNull : Boolean read GetSUCURSALIsNull write SetSUCURSALIsNull; + property OldSUCURSAL : String read GetOldSUCURSALValue; + property OldSUCURSALIsNull : Boolean read GetOldSUCURSALIsNull; + property DC : String read GetDCValue write SetDCValue; + property DCIsNull : Boolean read GetDCIsNull write SetDCIsNull; + property OldDC : String read GetOldDCValue; + property OldDCIsNull : Boolean read GetOldDCIsNull; + property CUENTA : String read GetCUENTAValue write SetCUENTAValue; + property CUENTAIsNull : Boolean read GetCUENTAIsNull write SetCUENTAIsNull; + property OldCUENTA : String read GetOldCUENTAValue; + property OldCUENTAIsNull : Boolean read GetOldCUENTAIsNull; + property SUFIJO_N19 : String read GetSUFIJO_N19Value write SetSUFIJO_N19Value; + property SUFIJO_N19IsNull : Boolean read GetSUFIJO_N19IsNull write SetSUFIJO_N19IsNull; + property OldSUFIJO_N19 : String read GetOldSUFIJO_N19Value; + property OldSUFIJO_N19IsNull : Boolean read GetOldSUFIJO_N19IsNull; + property SUFIJO_N58 : String read GetSUFIJO_N58Value write SetSUFIJO_N58Value; + property SUFIJO_N58IsNull : Boolean read GetSUFIJO_N58IsNull write SetSUFIJO_N58IsNull; + property OldSUFIJO_N58 : String read GetOldSUFIJO_N58Value; + property OldSUFIJO_N58IsNull : Boolean read GetOldSUFIJO_N58IsNull; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull : Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldIMPORTE_TOTALIsNull : Boolean read GetOldIMPORTE_TOTALIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers, uDAInterfaces; + +{ TListaAnosRemesasBusinessProcessorRules } +constructor TListaAnosRemesasBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TListaAnosRemesasBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TListaAnosRemesasBusinessProcessorRules.GetANOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosRemesasANO]; +end; + +function TListaAnosRemesasBusinessProcessorRules.GetANOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosRemesasANO]); +end; + +function TListaAnosRemesasBusinessProcessorRules.GetOldANOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaAnosRemesasANO]; +end; + +function TListaAnosRemesasBusinessProcessorRules.GetOldANOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ListaAnosRemesasANO]); +end; + +procedure TListaAnosRemesasBusinessProcessorRules.SetANOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosRemesasANO] := aValue; +end; + +procedure TListaAnosRemesasBusinessProcessorRules.SetANOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosRemesasANO] := Null; +end; + + +{ TRemesasClienteBusinessProcessorRules } +constructor TRemesasClienteBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TRemesasClienteBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TRemesasClienteBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteID]; +end; + +function TRemesasClienteBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteID]); +end; + +function TRemesasClienteBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteID]; +end; + +function TRemesasClienteBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteID]); +end; + +procedure TRemesasClienteBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteID] := aValue; +end; + +procedure TRemesasClienteBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteID] := Null; +end; + +function TRemesasClienteBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteID_EMPRESA]; +end; + +function TRemesasClienteBusinessProcessorRules.GetID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteID_EMPRESA]); +end; + +function TRemesasClienteBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteID_EMPRESA]; +end; + +function TRemesasClienteBusinessProcessorRules.GetOldID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteID_EMPRESA]); +end; + +procedure TRemesasClienteBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteID_EMPRESA] := aValue; +end; + +procedure TRemesasClienteBusinessProcessorRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteID_EMPRESA] := Null; +end; + +function TRemesasClienteBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteREFERENCIA]; +end; + +function TRemesasClienteBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteREFERENCIA]); +end; + +function TRemesasClienteBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteREFERENCIA]; +end; + +function TRemesasClienteBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteREFERENCIA]); +end; + +procedure TRemesasClienteBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteREFERENCIA] := aValue; +end; + +procedure TRemesasClienteBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteREFERENCIA] := Null; +end; + +function TRemesasClienteBusinessProcessorRules.GetTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteTIPO]; +end; + +function TRemesasClienteBusinessProcessorRules.GetTIPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteTIPO]); +end; + +function TRemesasClienteBusinessProcessorRules.GetOldTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteTIPO]; +end; + +function TRemesasClienteBusinessProcessorRules.GetOldTIPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteTIPO]); +end; + +procedure TRemesasClienteBusinessProcessorRules.SetTIPOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteTIPO] := aValue; +end; + +procedure TRemesasClienteBusinessProcessorRules.SetTIPOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteTIPO] := Null; +end; + +function TRemesasClienteBusinessProcessorRules.GetFECHA_REMESAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteFECHA_REMESA]; +end; + +function TRemesasClienteBusinessProcessorRules.GetFECHA_REMESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteFECHA_REMESA]); +end; + +function TRemesasClienteBusinessProcessorRules.GetOldFECHA_REMESAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteFECHA_REMESA]; +end; + +function TRemesasClienteBusinessProcessorRules.GetOldFECHA_REMESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteFECHA_REMESA]); +end; + +procedure TRemesasClienteBusinessProcessorRules.SetFECHA_REMESAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteFECHA_REMESA] := aValue; +end; + +procedure TRemesasClienteBusinessProcessorRules.SetFECHA_REMESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteFECHA_REMESA] := Null; +end; + +function TRemesasClienteBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteDESCRIPCION]; +end; + +function TRemesasClienteBusinessProcessorRules.GetDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteDESCRIPCION]); +end; + +function TRemesasClienteBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteDESCRIPCION]; +end; + +function TRemesasClienteBusinessProcessorRules.GetOldDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteDESCRIPCION]); +end; + +procedure TRemesasClienteBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteDESCRIPCION] := aValue; +end; + +procedure TRemesasClienteBusinessProcessorRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteDESCRIPCION] := Null; +end; + +function TRemesasClienteBusinessProcessorRules.GetID_DATOS_BANCOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteID_DATOS_BANCO]; +end; + +function TRemesasClienteBusinessProcessorRules.GetID_DATOS_BANCOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteID_DATOS_BANCO]); +end; + +function TRemesasClienteBusinessProcessorRules.GetOldID_DATOS_BANCOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteID_DATOS_BANCO]; +end; + +function TRemesasClienteBusinessProcessorRules.GetOldID_DATOS_BANCOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteID_DATOS_BANCO]); +end; + +procedure TRemesasClienteBusinessProcessorRules.SetID_DATOS_BANCOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteID_DATOS_BANCO] := aValue; +end; + +procedure TRemesasClienteBusinessProcessorRules.SetID_DATOS_BANCOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteID_DATOS_BANCO] := Null; +end; + +function TRemesasClienteBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteFECHA_ALTA]; +end; + +function TRemesasClienteBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteFECHA_ALTA]); +end; + +function TRemesasClienteBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteFECHA_ALTA]; +end; + +function TRemesasClienteBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteFECHA_ALTA]); +end; + +procedure TRemesasClienteBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteFECHA_ALTA] := aValue; +end; + +procedure TRemesasClienteBusinessProcessorRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteFECHA_ALTA] := Null; +end; + +function TRemesasClienteBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteFECHA_MODIFICACION]; +end; + +function TRemesasClienteBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteFECHA_MODIFICACION]); +end; + +function TRemesasClienteBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteFECHA_MODIFICACION]; +end; + +function TRemesasClienteBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteFECHA_MODIFICACION]); +end; + +procedure TRemesasClienteBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteFECHA_MODIFICACION] := aValue; +end; + +procedure TRemesasClienteBusinessProcessorRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteFECHA_MODIFICACION] := Null; +end; + +function TRemesasClienteBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteUSUARIO]; +end; + +function TRemesasClienteBusinessProcessorRules.GetUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteUSUARIO]); +end; + +function TRemesasClienteBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteUSUARIO]; +end; + +function TRemesasClienteBusinessProcessorRules.GetOldUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteUSUARIO]); +end; + +procedure TRemesasClienteBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteUSUARIO] := aValue; +end; + +procedure TRemesasClienteBusinessProcessorRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteUSUARIO] := Null; +end; + +function TRemesasClienteBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteNOMBRE]; +end; + +function TRemesasClienteBusinessProcessorRules.GetNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteNOMBRE]); +end; + +function TRemesasClienteBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteNOMBRE]; +end; + +function TRemesasClienteBusinessProcessorRules.GetOldNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteNOMBRE]); +end; + +procedure TRemesasClienteBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteNOMBRE] := aValue; +end; + +procedure TRemesasClienteBusinessProcessorRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteNOMBRE] := Null; +end; + +function TRemesasClienteBusinessProcessorRules.GetENTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteENTIDAD]; +end; + +function TRemesasClienteBusinessProcessorRules.GetENTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteENTIDAD]); +end; + +function TRemesasClienteBusinessProcessorRules.GetOldENTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteENTIDAD]; +end; + +function TRemesasClienteBusinessProcessorRules.GetOldENTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteENTIDAD]); +end; + +procedure TRemesasClienteBusinessProcessorRules.SetENTIDADValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteENTIDAD] := aValue; +end; + +procedure TRemesasClienteBusinessProcessorRules.SetENTIDADIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteENTIDAD] := Null; +end; + +function TRemesasClienteBusinessProcessorRules.GetSUCURSALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteSUCURSAL]; +end; + +function TRemesasClienteBusinessProcessorRules.GetSUCURSALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteSUCURSAL]); +end; + +function TRemesasClienteBusinessProcessorRules.GetOldSUCURSALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteSUCURSAL]; +end; + +function TRemesasClienteBusinessProcessorRules.GetOldSUCURSALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteSUCURSAL]); +end; + +procedure TRemesasClienteBusinessProcessorRules.SetSUCURSALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteSUCURSAL] := aValue; +end; + +procedure TRemesasClienteBusinessProcessorRules.SetSUCURSALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteSUCURSAL] := Null; +end; + +function TRemesasClienteBusinessProcessorRules.GetDCValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteDC]; +end; + +function TRemesasClienteBusinessProcessorRules.GetDCIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteDC]); +end; + +function TRemesasClienteBusinessProcessorRules.GetOldDCValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteDC]; +end; + +function TRemesasClienteBusinessProcessorRules.GetOldDCIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteDC]); +end; + +procedure TRemesasClienteBusinessProcessorRules.SetDCValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteDC] := aValue; +end; + +procedure TRemesasClienteBusinessProcessorRules.SetDCIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteDC] := Null; +end; + +function TRemesasClienteBusinessProcessorRules.GetCUENTAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteCUENTA]; +end; + +function TRemesasClienteBusinessProcessorRules.GetCUENTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteCUENTA]); +end; + +function TRemesasClienteBusinessProcessorRules.GetOldCUENTAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteCUENTA]; +end; + +function TRemesasClienteBusinessProcessorRules.GetOldCUENTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteCUENTA]); +end; + +procedure TRemesasClienteBusinessProcessorRules.SetCUENTAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteCUENTA] := aValue; +end; + +procedure TRemesasClienteBusinessProcessorRules.SetCUENTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteCUENTA] := Null; +end; + +function TRemesasClienteBusinessProcessorRules.GetSUFIJO_N19Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteSUFIJO_N19]; +end; + +function TRemesasClienteBusinessProcessorRules.GetSUFIJO_N19IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteSUFIJO_N19]); +end; + +function TRemesasClienteBusinessProcessorRules.GetOldSUFIJO_N19Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteSUFIJO_N19]; +end; + +function TRemesasClienteBusinessProcessorRules.GetOldSUFIJO_N19IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteSUFIJO_N19]); +end; + +procedure TRemesasClienteBusinessProcessorRules.SetSUFIJO_N19Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteSUFIJO_N19] := aValue; +end; + +procedure TRemesasClienteBusinessProcessorRules.SetSUFIJO_N19IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteSUFIJO_N19] := Null; +end; + +function TRemesasClienteBusinessProcessorRules.GetSUFIJO_N58Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteSUFIJO_N58]; +end; + +function TRemesasClienteBusinessProcessorRules.GetSUFIJO_N58IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteSUFIJO_N58]); +end; + +function TRemesasClienteBusinessProcessorRules.GetOldSUFIJO_N58Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteSUFIJO_N58]; +end; + +function TRemesasClienteBusinessProcessorRules.GetOldSUFIJO_N58IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteSUFIJO_N58]); +end; + +procedure TRemesasClienteBusinessProcessorRules.SetSUFIJO_N58Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteSUFIJO_N58] := aValue; +end; + +procedure TRemesasClienteBusinessProcessorRules.SetSUFIJO_N58IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteSUFIJO_N58] := Null; +end; + +function TRemesasClienteBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteIMPORTE_TOTAL]; +end; + +function TRemesasClienteBusinessProcessorRules.GetIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteIMPORTE_TOTAL]); +end; + +function TRemesasClienteBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteIMPORTE_TOTAL]; +end; + +function TRemesasClienteBusinessProcessorRules.GetOldIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasClienteIMPORTE_TOTAL]); +end; + +procedure TRemesasClienteBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteIMPORTE_TOTAL] := aValue; +end; + +procedure TRemesasClienteBusinessProcessorRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasClienteIMPORTE_TOTAL] := Null; +end; + + +initialization + RegisterBusinessProcessorRules(RID_ListaAnosRemesasDelta, TListaAnosRemesasBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_RemesasClienteDelta, TRemesasClienteBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Remesas de cliente/Model/uBizRemesasCliente.dcu b/Source/Modulos/Remesas de cliente/Model/uBizRemesasCliente.dcu new file mode 100644 index 0000000..4bb5a3b Binary files /dev/null and b/Source/Modulos/Remesas de cliente/Model/uBizRemesasCliente.dcu differ diff --git a/Source/Modulos/Remesas de cliente/Model/uBizRemesasCliente.pas b/Source/Modulos/Remesas de cliente/Model/uBizRemesasCliente.pas new file mode 100644 index 0000000..d9ac2ea --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Model/uBizRemesasCliente.pas @@ -0,0 +1,104 @@ +unit uBizRemesasCliente; + +interface + +uses + uDAInterfaces, uDADataTable, schRemesasClienteClient_Intf, uDBSelectionListUtils, + uBizRecibosCliente; + +const + BIZ_CLIENT_REMESACLIENTE = 'Client.RemesaCliente'; + CTE_TIPO_REMESA = 'REMESA'; + CTE_TIPO_TALON = 'TALON'; + CTE_TIPO_EFECTIVO = 'EFECTIVO'; + CTE_TIPO_TRANSFERENCIA = 'TRANSFERENCIA'; + +type + IBizRemesaCliente = interface(IRemesasCliente) + ['{62E5474B-627F-41B8-A5FD-5E553DFF3C50}'] + function GetRecibos: IBizRecibosCliente; + procedure SetRecibos(const Value: IBizRecibosCliente); + property Recibos: IBizRecibosCliente read GetRecibos write SetRecibos; + function EsNuevo : Boolean; + end; + + TBizRemesaCliente = class(TRemesasClienteDataTableRules, IBizRemesaCliente, ISeleccionable) + protected + FRecibos: IBizRecibosCliente; + FSeleccionableInterface : ISeleccionable; + + function GetRecibos: IBizRecibosCliente; + procedure SetRecibos(const Value: IBizRecibosCliente); + procedure OnNewRecord(Sender: TDADataTable); override; + public + property SeleccionableInterface : ISeleccionable read FSeleccionableInterface + write FSeleccionableInterface implements ISeleccionable; + property Recibos: IBizRecibosCliente read GetRecibos write SetRecibos; + + procedure IniciarValoresRemesaClienteNuevo; virtual; + function EsNuevo : Boolean; + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + end; + +implementation + +uses + uDataTableUtils, uDataModuleUsuarios, SysUtils, uROClasses, Classes, + uFactuGES_App; + +{ TBizRemesaCliente } + +constructor TBizRemesaCliente.Create(aDataTable: TDADataTable); +begin + inherited; + FRecibos := Nil; + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +destructor TBizRemesaCliente.Destroy; +begin + FRecibos := Nil; + FSeleccionableInterface := NIL; + inherited; +end; + +function TBizRemesaCliente.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +function TBizRemesaCliente.GetRecibos: IBizRecibosCliente; +begin + Result := FRecibos; +end; + +procedure TBizRemesaCliente.IniciarValoresRemesaClienteNuevo; +begin + ID_EMPRESA := AppFactuGES.EmpresaActiva.ID; + FECHA_REMESA := Date; + USUARIO := AppFactuGES.UsuarioActivo.UserName; + TIPO := CTE_TIPO_REMESA; +end; + +procedure TBizRemesaCliente.OnNewRecord(Sender: TDADataTable); +begin + inherited; + IniciarValoresRemesaClienteNuevo; +end; + +procedure TBizRemesaCliente.SetRecibos(const Value: IBizRecibosCliente); +begin + FRecibos := Value; + if Assigned(FRecibos) then + if not FRecibos.DataTable.Active then + FRecibos.DataTable.Active := True; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_RemesaCliente, TBizRemesaCliente); + +finalization + +end. + diff --git a/Source/Modulos/Remesas de cliente/Model/uBizRemesasClienteServer.dcu b/Source/Modulos/Remesas de cliente/Model/uBizRemesasClienteServer.dcu new file mode 100644 index 0000000..6ae335f Binary files /dev/null and b/Source/Modulos/Remesas de cliente/Model/uBizRemesasClienteServer.dcu differ diff --git a/Source/Modulos/Remesas de cliente/Model/uBizRemesasClienteServer.pas b/Source/Modulos/Remesas de cliente/Model/uBizRemesasClienteServer.pas new file mode 100644 index 0000000..989c00c --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Model/uBizRemesasClienteServer.pas @@ -0,0 +1,103 @@ +unit uBizRemesasClienteServer; + +interface + +uses + uDAInterfaces, uDADelta, uDABusinessProcessor, + schRemesasClienteServer_Intf; + +const + BIZ_SERVER_REMESAS_CLIENTE = 'Server.RemesasCliente'; + +type + TBizRemesasClienteServer = class(TRemesasClienteBusinessProcessorRules) + private + FReferenciaAutomatica : Boolean; + function DarReferencia : String; + function IncrementarReferencia : Boolean; + protected + procedure BeforeProcessDelta(Sender: TDABusinessProcessor; + const aDelta: IDADelta); override; + procedure AfterProcessChange(Sender: TDABusinessProcessor; + aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); override; + end; + +implementation + +uses + Variants, uDAClasses, uReferenciasUtils, uBusinessUtils, uROClasses, uDataModuleServer, + schRemesasClienteClient_Intf, FactuGES_Intf, uROServer, SysUtils; + +const + REF_REMESAS_CLIENTE = 'REF_REMESAS_CLIENTE'; + +{ TBizRemesasClienteServer } + +procedure TBizRemesasClienteServer.AfterProcessChange( + Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); +begin + inherited; + { Por defecto, mantenemos los deltas por si alguna tabla hija los necesita } + CanRemoveFromDelta := False; + + case aChange.ChangeType of + ctInsert, ctUpdate: begin + if FReferenciaAutomatica then + begin + IncrementarReferencia; + FReferenciaAutomatica := False; + end; + end; + end; +end; + +procedure TBizRemesasClienteServer.BeforeProcessDelta( + Sender: TDABusinessProcessor; const aDelta: IDADelta); +begin + FReferenciaAutomatica := False; + + case Sender.CurrentChange.ChangeType of + ctInsert, ctUpdate: begin + //Si la referencia no ha sido asignada le asignamos una nosotros + if REFERENCIAIsNull or (Length(REFERENCIA) = 0) then + begin + FReferenciaAutomatica := True; + REFERENCIA := DarReferencia; + end; + end; + end; +end; + +function TBizRemesasClienteServer.DarReferencia: String; +var + AReferenciasService : IsrvReferencias; + Intf : IInterface; + AClientID : TGUID; +begin + CreateGUID(AClientID); + + GetClassFactory('srvReferencias').CreateInstance(AClientID, Intf); + AReferenciasService := Intf as IsrvReferencias; + Result := AReferenciasService.DarNuevaReferencia(REF_REMESAS_CLIENTE, ID_EMPRESA) +end; + +function TBizRemesasClienteServer.IncrementarReferencia: Boolean; +var + AReferenciasService : IsrvReferencias; + Intf : IInterface; + AClientID : TGUID; +begin + CreateGUID(AClientID); + + GetClassFactory('srvReferencias').CreateInstance(AClientID, Intf); + AReferenciasService := Intf as IsrvReferencias; + Result := AReferenciasService.IncrementarValorReferencia(REF_REMESAS_CLIENTE, Self.REFERENCIA, ID_EMPRESA) +end; + + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_REMESAS_CLIENTE, TBizRemesasClienteServer); + +end. diff --git a/Source/Modulos/Remesas de cliente/Plugin/RemesasCliente_plugin.bdsproj b/Source/Modulos/Remesas de cliente/Plugin/RemesasCliente_plugin.bdsproj new file mode 100644 index 0000000..ab0b626 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Plugin/RemesasCliente_plugin.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + RemesasCliente_plugin.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Remesas de cliente/Plugin/RemesasCliente_plugin.dcu b/Source/Modulos/Remesas de cliente/Plugin/RemesasCliente_plugin.dcu new file mode 100644 index 0000000..01b5e22 Binary files /dev/null and b/Source/Modulos/Remesas de cliente/Plugin/RemesasCliente_plugin.dcu differ diff --git a/Source/Modulos/Remesas de cliente/Plugin/RemesasCliente_plugin.dpk b/Source/Modulos/Remesas de cliente/Plugin/RemesasCliente_plugin.dpk new file mode 100644 index 0000000..0772885 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Plugin/RemesasCliente_plugin.dpk @@ -0,0 +1,35 @@ +package RemesasCliente_plugin; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + RemesasCliente_model, + RemesasCliente_controller, + RemesasCliente_view; + +contains + uPluginRemesasCliente in 'uPluginRemesasCliente.pas' {PluginRemesasCliente}; + +end. diff --git a/Source/Modulos/Remesas de cliente/Plugin/RemesasCliente_plugin.dproj b/Source/Modulos/Remesas de cliente/Plugin/RemesasCliente_plugin.dproj new file mode 100644 index 0000000..504948d --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Plugin/RemesasCliente_plugin.dproj @@ -0,0 +1,539 @@ + + + {e4a70e78-dcab-415c-9e35-1956bd41ae1a} + RemesasCliente_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\RemesasCliente_plugin.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0RemesasCliente_plugin.dpk + + + + + MainSource + + + + + +
PluginRemesasCliente
+
+
+
+ diff --git a/Source/Modulos/Remesas de cliente/Plugin/RemesasCliente_plugin.rc b/Source/Modulos/Remesas de cliente/Plugin/RemesasCliente_plugin.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Plugin/RemesasCliente_plugin.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Remesas de cliente/Plugin/RemesasCliente_plugin.res b/Source/Modulos/Remesas de cliente/Plugin/RemesasCliente_plugin.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Remesas de cliente/Plugin/RemesasCliente_plugin.res differ diff --git a/Source/Modulos/Remesas de cliente/Plugin/uPluginRemesasCliente.dcu b/Source/Modulos/Remesas de cliente/Plugin/uPluginRemesasCliente.dcu new file mode 100644 index 0000000..8c521cc Binary files /dev/null and b/Source/Modulos/Remesas de cliente/Plugin/uPluginRemesasCliente.dcu differ diff --git a/Source/Modulos/Remesas de cliente/Plugin/uPluginRemesasCliente.dfm b/Source/Modulos/Remesas de cliente/Plugin/uPluginRemesasCliente.dfm new file mode 100644 index 0000000..3833fa3 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Plugin/uPluginRemesasCliente.dfm @@ -0,0 +1,135 @@ +object PluginRemesasCliente: TPluginRemesasCliente + OldCreateOrder = True + DefaultAction = actRemesasCliente + Description = 'Ventas' + ModuleMenu = MainMenu + ModuleName = 'RemesasCliente' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software' + Version = '1.0.0' + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002744944415478DA + 63FCFFFF3F032D01E3F0B060F9D6D334B3056E41A4B729491AFFFCFDCFF0F7EF + 3F869FBFFE80E93FFFFE8169301B887FFDFECB109E5E876A41E249438206FF05 + AAFFF5F72FC3AF3F7FC0F4975FBF207C10065A02932BFAB59C61DED24D9816CC + 373F8F6291F45B6F8626CF660C8BFE010D0361CFD5F60C1F791E800DBF14F082 + 4169A520D8928ABFAB705B00022036B2E11718CF33189F346660B809E4A83330 + 9C353FCBA0F9438BE117D007415B3C189EB2DF66B811FC1AAC566C3137431DC3 + 5AFC3E8019CE7C8A89E1AFD93F300D32FC6CDC5906E379408BB419183EEB7C61 + E0BDC2C3F05AE50D43F84E5F86BD51C718841771817DD0CEB211BB05E841C3BC + 1C684124D082C54C10C39719339C8D02D2B38C193E447C6410D8C2CFF0C2E525 + 43D49E00860B7F2EC0E3A3977D0B911620FBE02A508203887F30807DF056ED1D + 83F02D218627324F18E20E86329CFA79166EC164AEEDF82D40B6E42F50C36596 + 4B9038B80894D087C481DC5B79869F3F7E60180E02382D404E4520C58A1FFC18 + 6A9C6BC196FC03A7F5BF700CE247EF0D841BFE33E50F03E34C46FC16C0003C6D + 03B1CCB31F0C5325B4B1E60BDE877B505C0E03582D40CFA57FA039F3EA444D06 + 09A7200645CB1E86FBC74BC06A5EDC0726E7FBF719E6EE7BCE30A7DA09C3E229 + 4F73312D98B2780756570A7E3BC7A0F4660ED8307450DD928DD3E273AC89080B + BA27CF27584C9C2B7B88553CA5751FA65AA0E12000B680919191A0E1C75A14FF + 93124C404BC3E6EEFBB19A140B4281D42A6CC13467EF77AC96022D6024CA0290 + E196969AABB0C91D3F7E1D6BDC008101D0828BC45A803778402EC5A597681FE0 + 0A1E200087355E0B6809686E0100FA3E2AAB1481BE0E0000000049454E44AE42 + 6082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + object actRemesasCliente: TAction + Category = 'Ventas' + Caption = 'Remesas de cobro' + ImageIndex = 0 + OnExecute = actRemesasClienteExecute + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object N1: TMenuItem + Caption = 'Ventas' + object RemesasCliente1: TMenuItem + Tag = 320 + Action = actRemesasCliente + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000011A4944415478DA + 63FCFFFF3F032580916203966D3945B60991DEA68C6003D4BD9919269F4CC6AA + E8F7DFBF0CDFFFFC61F8F6FB37C3C71F3FC0ECB9FE5B19523CE6309CDB310D61 + 0008C00C996B760EC3209B6D7270CD208062C02E9134B8429866E6534C1081AB + 0C0C7F13FF81999A6B4519BE035D02728DDCB204220CB80A118319A0B04200AC + 19843556A762370024B9DCFA328617903583BC62B83E13350C40FE074B421581 + 70EF05569C31907DD8036140F7E4F9180AA6DAEE60B04CAE6660905064F8717C + 2AC3F97DE719E6EE7BCE30A5C50BCE9EB3F73B23232E1B8EB528861E7CADB6EA + CEE58358E5939D24C32CABEFADC667C07F8A5D00A456811452D505208D5635F7 + 5783D480F211C92E98BBEF075C0FD8004A73230074DEE0E1BE54FBD500000000 + 49454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000002D84944415478DA + ED946D48535118C7FF57855EB4171542B01756516845C868B63E4A1F2A7B1996 + 990B845008EA637DD2A828F34BF521D220C98484C28232B24C302329456D380D + A99C75035FB6A5B3E9ACAEBA7BD773CF4D9BEE6E6E23F6217AE0F09C73EE73CE + EF79CEFF9CCB793C1E44D2B8FFC07F0378EF697BC4A833C0DCCC6D616DE0163D + 104589BCC43CEB4B5E7DE62986E6728E9F9D0D3CD69A163448A47593A28849B7 + 5BF1731B01A6BFD7E97AC0F70DA0B0A4DC175899DE310B9CECC8C485DD17FD82 + 25DA58621589D8FB3003A3715F18ACCB60C3DAEA7806ADD759D03768F50F944D + EEABC1CC5C07B4AD5AE0230D3602A6741352845406945B56ED2E0C2CB0E0C3C1 + 2116BFA22A160DBA5E0CDAED812BF48645B745013C1D638EA4F40966CA33417B + 9BC09B00D7E6712C791C07AC0386D60F23A77E1F5E189B91786731ABB029FD33 + ECC343EA40B5A38CAE268844C05C02564529B0BB5A988CE4CBB5701E19C5F2DA + 652CD6B6D30E63830166B77946CFD7DB7938461C2100E5AA2C043CFABBC26E9A + 5C484D00ABD0B16104897509ACC2FE95FDC87B958DB609D30CF08D8EC798CB19 + 18A87661648DDEC574291A76D2C45645C3D58E35EC9B7B6ACA07265B93F613BE + FF189BFF96CA0B34CEFD0C2A6F386EEB467C4F61C0E7B2CADC80AF4B454C14B8 + C1DDE4D8DCCB340B04613C70856A6FABB81DD0E71701491A128B677102FF8C79 + 276F65FE4C45076E1565CC4AE291EB0416C527FB02E7FB7BF4DED882A48C2C68 + F457C0B79C562E09AF3C23F04A02158D569416EFF149E2D0B9165FE0F32673C0 + E31AB0BC45AAAD846DAA66D66F024ACB4EA9262103CBAE5DFD03BC7CBD12C158 + 72AC0B4F4E8E048C29B8D4E83DAC791F73C0F0934B600306E4382E28986CCDC5 + 1A4FA83A5202872B1A8507610383D5D13B010272E102B3694323750D7E426AF2 + F37718E62610165086E9F529F743D08F2540ED3C013BC30106A5DF74356A1632 + 3018FDFE26705EFDBC8FCF2F30921671E02FBE648AC22CC7AE57000000004945 + 4E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + Left = 232 + Top = 80 + Bitmap = {} + end +end diff --git a/Source/Modulos/Remesas de cliente/Plugin/uPluginRemesasCliente.pas b/Source/Modulos/Remesas de cliente/Plugin/uPluginRemesasCliente.pas new file mode 100644 index 0000000..f9e257e --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Plugin/uPluginRemesasCliente.pas @@ -0,0 +1,74 @@ +unit uPluginRemesasCliente; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCRemesasCliente = interface(IInterface) + ['{ED6B467B-B6DD-4E2E-8E54-BCEB8FD0A012}'] + end; + + TPluginRemesasCliente = class(TModuleController, IMCRemesasCliente) + actRemesasCliente: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + N1: TMenuItem; + RemesasCliente1: TMenuItem; + procedure actRemesasClienteExecute(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, + uRemesasClienteController, uBizRemesasCliente, uRemesasClienteViewRegister; + +function GetModule : TModuleController; +begin + Result := TPluginRemesasCliente.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +procedure TPluginRemesasCliente.actRemesasClienteExecute(Sender: TObject); +var + ARemesasClienteController : IRemesasClienteController; + ARemesasCliente : IBizRemesaCliente; + +begin + ARemesasClienteController := TRemesasClienteController.Create; + ARemesasCliente := (ARemesasClienteController.BuscarTodos as IBizRemesaCliente); + ARemesasClienteController.VerTodos(ARemesasCliente); +end; + +constructor TPluginRemesasCliente.Create(AOwner: TComponent); +begin + inherited; + uRemesasClienteViewRegister.RegisterViews; +end; + +destructor TPluginRemesasCliente.Destroy; +begin + uRemesasClienteViewRegister.UnregisterViews; + inherited; +end; + +initialization + RegisterModuleClass(TPluginRemesasCliente); + +finalization + UnRegisterModuleClass(TPluginRemesasCliente); + +end. diff --git a/Source/Modulos/Remesas de cliente/RemesasCliente_Group.groupproj b/Source/Modulos/Remesas de cliente/RemesasCliente_Group.groupproj new file mode 100644 index 0000000..a1f22bb --- /dev/null +++ b/Source/Modulos/Remesas de cliente/RemesasCliente_Group.groupproj @@ -0,0 +1,134 @@ + + + {9e374daa-b130-47db-a2de-c184f072bea0} + + + + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Remesas de cliente/Reports/uRptRemesasCliente_Server.dfm b/Source/Modulos/Remesas de cliente/Reports/uRptRemesasCliente_Server.dfm new file mode 100644 index 0000000..8f55673 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Reports/uRptRemesasCliente_Server.dfm @@ -0,0 +1,640 @@ +object RptRemesasCliente: TRptRemesasCliente + OldCreateOrder = True + OnCreate = DataModuleCreate + OnDestroy = DataModuleDestroy + Height = 405 + Width = 447 + object DADataCabecera: TDADataSource + DataSet = tbl_Cabecera.Dataset + DataTable = tbl_Cabecera + Left = 264 + Top = 72 + end + object DADataDetalles: TDADataSource + DataSet = tbl_Detalles.Dataset + DataTable = tbl_Detalles + Left = 344 + Top = 72 + end + object tbl_Cabecera: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + MasterMappingMode = mmDataRequest + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + IndexDefs = <> + Left = 264 + Top = 128 + end + object tbl_Detalles: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + MasterMappingMode = mmDataRequest + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + IndexDefs = <> + Left = 344 + Top = 128 + end + object DABINAdapter: TDABINAdapter + Left = 48 + Top = 80 + end + object frxRichObject1: TfrxRichObject + Left = 48 + Top = 296 + end + object frxBarCodeObject1: TfrxBarCodeObject + Left = 144 + Top = 296 + end + object frxOLEObject1: TfrxOLEObject + Left = 48 + Top = 344 + end + object frxCrossObject1: TfrxCrossObject + Left = 144 + Top = 344 + end + object frxCheckBoxObject1: TfrxCheckBoxObject + Left = 256 + Top = 296 + end + object frxGradientObject1: TfrxGradientObject + Left = 360 + Top = 296 + end + object frxChartObject1: TfrxChartObject + Left = 256 + Top = 344 + end + object schReport: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Datasets = < + item + Params = < + item + Name = 'ID' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_REMESAS_CLIENTE' + SQL = + 'SELECT'#10' V_REMESAS_CLIENTE.ID,'#10' V_REMESAS_CLIENTE.ID_EMPRES' + + 'A,'#10' V_REMESAS_CLIENTE.REFERENCIA,'#10' V_REMESAS_CLIENTE.FECHA' + + '_REMESA,'#10' V_REMESAS_CLIENTE.IMPORTE_TOTAL,'#10' EMPRESAS.NOMBR' + + 'E as TITULAR,'#10' EMPRESAS_DATOS_BANCO.ENTIDAD,'#10' EMPRESAS_DAT' + + 'OS_BANCO.SUCURSAL,'#10' EMPRESAS_DATOS_BANCO.DC,'#10' EMPRESAS_DAT' + + 'OS_BANCO.CUENTA,'#10' V_REMESAS_CLIENTE.DESCRIPCION,'#10#10' EMPRESA' + + 'S.NIF_CIF as NIF_CIF_EMPRESA, EMPRESAS.RAZON_SOCIAL,'#10' EMPRESA' + + 'S.CALLE as CALLE_EMPRESA, EMPRESAS.POBLACION as POBLACION_EMPRES' + + 'A,'#10' EMPRESAS.PROVINCIA as PROVINCIA_EMPRESA, EMPRESAS.CODIGO_' + + 'POSTAL as CODIGO_POSTAL_EMPRESA,'#10' EMPRESAS.TELEFONO_1, EMPRES' + + 'AS.FAX, EMPRESAS.MOVIL_1, EMPRESAS.EMAIL_1,'#10' EMPRESAS.PAGINA_' + + 'WEB, EMPRESAS.REGISTRO_MERCANTIL, EMPRESAS.LOGOTIPO'#10#10#10'FROM'#10' V_R' + + 'EMESAS_CLIENTE'#10' LEFT OUTER JOIN EMPRESAS ON (EMPRESAS.ID = V_RE' + + 'MESAS_CLIENTE.ID_EMPRESA)'#10' LEFT OUTER JOIN EMPRESAS_DATOS_BANCO' + + ' ON (EMPRESAS_DATOS_BANCO.ID = V_REMESAS_CLIENTE.ID_DATOS_BANCO)' + + #10'WHERE'#10' V_REMESAS_CLIENTE.ID = :ID' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'FECHA_REMESA' + TableField = 'FECHA_REMESA' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'TITULAR' + TableField = 'TITULAR' + end + item + DatasetField = 'ENTIDAD' + TableField = 'ENTIDAD' + end + item + DatasetField = 'SUCURSAL' + TableField = 'SUCURSAL' + end + item + DatasetField = 'DC' + TableField = 'DC' + end + item + DatasetField = 'CUENTA' + TableField = 'CUENTA' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'NIF_CIF_EMPRESA' + TableField = 'NIF_CIF_EMPRESA' + end + item + DatasetField = 'RAZON_SOCIAL' + TableField = 'RAZON_SOCIAL' + end + item + DatasetField = 'CALLE_EMPRESA' + TableField = 'CALLE_EMPRESA' + end + item + DatasetField = 'POBLACION_EMPRESA' + TableField = 'POBLACION_EMPRESA' + end + item + DatasetField = 'PROVINCIA_EMPRESA' + TableField = 'PROVINCIA_EMPRESA' + end + item + DatasetField = 'CODIGO_POSTAL_EMPRESA' + TableField = 'CODIGO_POSTAL_EMPRESA' + end + item + DatasetField = 'TELEFONO_1' + TableField = 'TELEFONO_1' + end + item + DatasetField = 'FAX' + TableField = 'FAX' + end + item + DatasetField = 'MOVIL_1' + TableField = 'MOVIL_1' + end + item + DatasetField = 'EMAIL_1' + TableField = 'EMAIL_1' + end + item + DatasetField = 'PAGINA_WEB' + TableField = 'PAGINA_WEB' + end + item + DatasetField = 'REGISTRO_MERCANTIL' + TableField = 'REGISTRO_MERCANTIL' + end + item + DatasetField = 'LOGOTIPO' + TableField = 'LOGOTIPO' + end> + end> + Name = 'Informe_Cabecera' + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_REMESA' + DataType = datDateTime + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + end + item + Name = 'TITULAR' + DataType = datString + Size = 255 + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + end + item + Name = 'DC' + DataType = datString + Size = 15 + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + end + item + Name = 'NIF_CIF_EMPRESA' + DataType = datString + Size = 15 + end + item + Name = 'RAZON_SOCIAL' + DataType = datString + Size = 255 + end + item + Name = 'CALLE_EMPRESA' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION_EMPRESA' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA_EMPRESA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL_EMPRESA' + DataType = datString + Size = 10 + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + end + item + Name = 'FAX' + DataType = datString + Size = 25 + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + end + item + Name = 'REGISTRO_MERCANTIL' + DataType = datString + Size = 255 + end + item + Name = 'LOGOTIPO' + DataType = datBlob + end> + end + item + Params = < + item + Name = 'ID_REMESA' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'RECIBOS_CLIENTE' + SQL = + 'SELECT'#10' V_RECIBOS_CLIENTE.ID,'#10' V_RECIBOS_CLIENTE.REFERENCI' + + 'A,'#10' V_RECIBOS_CLIENTE.SITUACION,'#10' V_RECIBOS_CLIENTE.ID_FAC' + + 'TURA,'#10' V_RECIBOS_CLIENTE.ID_REMESA,'#10' V_RECIBOS_CLIENTE.REF' + + 'ERENCIA_REMESA,'#10' V_RECIBOS_CLIENTE.FECHA_VENCIMIENTO,'#10' V_R' + + 'ECIBOS_CLIENTE.DESCRIPCION,'#10' V_RECIBOS_CLIENTE.OBSERVACIONES,' + + #10' V_RECIBOS_CLIENTE.IMPORTE,'#10' V_RECIBOS_CLIENTE.OTROS_GAST' + + 'OS,'#10' V_RECIBOS_CLIENTE.IMPORTE_TOTAL,'#10' V_RECIBOS_CLIENTE.F' + + 'ECHA_FACTURA,'#10' V_RECIBOS_CLIENTE.FORMA_PAGO_FACTURA,'#10' V_RE' + + 'CIBOS_CLIENTE.IMPORTE_FACTURA,'#10' V_RECIBOS_CLIENTE.ID_EMPRESA,' + + #10' V_RECIBOS_CLIENTE.NOMBRE_CLIENTE,'#10' V_RECIBOS_CLIENTE.NIF' + + '_CIF_CLIENTE,'#10' V_RECIBOS_CLIENTE.ENTIDAD_CLIENTE,'#10' V_RECIB' + + 'OS_CLIENTE.SUCURSAL_CLIENTE,'#10' V_RECIBOS_CLIENTE.DC_CLIENTE,'#10' ' + + ' V_RECIBOS_CLIENTE.CUENTA_CLIENTE'#10#10#10'FROM V_RECIBOS_CLIENTE'#10'WHE' + + 'RE ID_REMESA = :ID_REMESA'#10'ORDER BY FECHA_VENCIMIENTO' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'ID_FACTURA' + TableField = 'ID_FACTURA' + end + item + DatasetField = 'ID_REMESA' + TableField = 'ID_REMESA' + end + item + DatasetField = 'REFERENCIA_REMESA' + TableField = 'REFERENCIA_REMESA' + end + item + DatasetField = 'FECHA_VENCIMIENTO' + TableField = 'FECHA_VENCIMIENTO' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'IMPORTE' + TableField = 'IMPORTE' + end + item + DatasetField = 'FECHA_FACTURA' + TableField = 'FECHA_FACTURA' + end + item + DatasetField = 'FORMA_PAGO_FACTURA' + TableField = 'FORMA_PAGO_FACTURA' + end + item + DatasetField = 'IMPORTE_FACTURA' + TableField = 'IMPORTE_FACTURA' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'NOMBRE_CLIENTE' + TableField = 'NOMBRE_CLIENTE' + end + item + DatasetField = 'NIF_CIF_CLIENTE' + TableField = 'NIF_CIF_CLIENTE' + end + item + DatasetField = 'ENTIDAD_CLIENTE' + TableField = 'ENTIDAD_CLIENTE' + end + item + DatasetField = 'SUCURSAL_CLIENTE' + TableField = 'SUCURSAL_CLIENTE' + end + item + DatasetField = 'DC_CLIENTE' + TableField = 'DC_CLIENTE' + end + item + DatasetField = 'CUENTA_CLIENTE' + TableField = 'CUENTA_CLIENTE' + end + item + DatasetField = 'OTROS_GASTOS' + TableField = 'OTROS_GASTOS' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end> + end> + Name = 'Informe_Detalles' + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + end + item + Name = 'ID_FACTURA' + DataType = datInteger + end + item + Name = 'ID_REMESA' + DataType = datInteger + end + item + Name = 'REFERENCIA_REMESA' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE' + DataType = datFloat + end + item + Name = 'OTROS_GASTOS' + DataType = datFloat + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + end + item + Name = 'FORMA_PAGO_FACTURA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_FACTURA' + DataType = datFloat + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'NOMBRE_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'NIF_CIF_CLIENTE' + DataType = datString + Size = 15 + end + item + Name = 'ENTIDAD_CLIENTE' + DataType = datString + Size = 15 + end + item + Name = 'SUCURSAL_CLIENTE' + DataType = datString + Size = 15 + end + item + Name = 'DC_CLIENTE' + DataType = datString + Size = 15 + end + item + Name = 'CUENTA_CLIENTE' + DataType = datString + Size = 15 + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 16 + end + object DataDictionary: TDADataDictionary + Fields = <> + Left = 46 + Top = 158 + end + object frxReport: TfrxReport + Version = '4.3' + DotMatrixReport = False + EngineOptions.DoublePass = True + IniFile = '\Software\Fast Reports' + PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator, pbExportQuick] + PreviewOptions.OutlineWidth = 180 + PreviewOptions.Zoom = 1.000000000000000000 + PrintOptions.Printer = 'Default' + PrintOptions.PrintOnSheet = 0 + ReportOptions.CreateDate = 37871.995398692100000000 + ReportOptions.LastChange = 39258.760263842600000000 + ReportOptions.VersionBuild = '1' + ReportOptions.VersionMajor = '12' + ReportOptions.VersionMinor = '13' + ReportOptions.VersionRelease = '1' + ScriptLanguage = 'PascalScript' + ScriptText.Strings = ( + 'procedure ReportSummary1OnBeforePrint(Sender: TfrxComponent);' + 'begin' + + ' Engine.CurY := Engine.CurY + Engine.FreeSpace - ReportSummary1' + + '.Height - 1;' + 'end;' + '' + 'procedure DatosEmpresaOnBeforePrint(Sender: TfrxComponent);' + 'var' + ' Cadena: String;' + 'begin' + ' DatosEmpresa.Lines.Clear;' + ' DatosEmpresa.Lines.Add();' + ' DatosEmpresa.Lines.Add();' + '' + ' Cadena := '#39#39';' + ' if ( <> '#39#39') then' + ' Cadena := '#39'TLF: '#39' + ;' + ' if ( <> '#39#39') then' + ' Cadena := Cadena + '#39' FAX: '#39' + ;' + ' DatosEmpresa.Lines.Add(Cadena);' + '' + ' Cadena := '#39#39';' + ' if ( <> '#39#39') then' + ' Cadena := ;' + ' if ( <> '#39#39') then' + + ' Cadena := Cadena + '#39' '#39' + ;' + ' if ( <> '#39#39') then' + + ' Cadena := Cadena + '#39' - '#39' + ;' + ' DatosEmpresa.Lines.Add(Cadena);' + 'end;' + '' + 'begin' + '' + 'end.') + ShowProgress = False + StoreInDFM = False + Left = 169 + Top = 16 + end + object frxDBCabecera: TfrxDBDataset + UserName = 'frxDBCabecera' + CloseDataSource = False + DataSource = DADataCabecera + Left = 264 + Top = 16 + end + object frxDBDetalles: TfrxDBDataset + UserName = 'frxDBDetalles' + CloseDataSource = False + DataSource = DADataDetalles + Left = 344 + Top = 16 + end +end diff --git a/Source/Modulos/Remesas de cliente/Reports/uRptRemesasCliente_Server.pas b/Source/Modulos/Remesas de cliente/Reports/uRptRemesasCliente_Server.pas new file mode 100644 index 0000000..80facb9 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Reports/uRptRemesasCliente_Server.pas @@ -0,0 +1,136 @@ +unit uRptRemesasCliente_Server; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, frxClass, frxDBSet, uDAScriptingProvider, + uDADataTable, uDACDSDataTable, DB, uDAClasses, frxChart, frxGradient, + frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes, + uDAInterfaces, uDADataStreamer; + +type + TRptRemesasCliente = class(TDataModule) + DADataCabecera: TDADataSource; + DADataDetalles: TDADataSource; + tbl_Cabecera: TDACDSDataTable; + tbl_Detalles: TDACDSDataTable; + DABINAdapter: TDABINAdapter; + frxRichObject1: TfrxRichObject; + frxBarCodeObject1: TfrxBarCodeObject; + frxOLEObject1: TfrxOLEObject; + frxCrossObject1: TfrxCrossObject; + frxCheckBoxObject1: TfrxCheckBoxObject; + frxGradientObject1: TfrxGradientObject; + frxChartObject1: TfrxChartObject; + frxDBCabecera: TfrxDBDataset; + frxDBDetalles: TfrxDBDataset; + frxReport: TfrxReport; + schReport: TDASchema; + DataDictionary: TDADataDictionary; + procedure DataModuleCreate(Sender: TObject); + procedure DataModuleDestroy(Sender: TObject); + private + FConnection: IDAConnection; + procedure GenerarRemesa(const ID : Integer); overload; + public + function GenerarRemesa(const ID : String): Binary; overload; + end; + +implementation + +{$R *.dfm} + +uses + uDataModuleServer; + +const + rptInforme = 'InfRemesaCliente.fr3'; + + { Dataset names for schReport } + ds_InformeCabecera = 'Informe_Cabecera'; + ds_InformeDetalles = 'Informe_Detalles'; + + +{ TRptRemesaCliente } + + +procedure TRptRemesasCliente.DataModuleCreate(Sender: TObject); +begin + schReport.ConnectionManager := dmServer.ConnectionManager; + FConnection := dmServer.DarNuevaConexion; + frxReport.EngineOptions.NewSilentMode := simReThrow; + + frxDBCabecera.DataSource := DADataCabecera; + frxDBCabecera.CloseDataSource := False; + + frxDBCompensados.DataSource := DADataCompensados; + frxDBCompensados.CloseDataSource := False; +end; + +function TRptRemesasCliente.GenerarRemesa(const ID: String): Binary; +var + ID_Remesas: TStringList; + i: Integer; + +begin + Result := Binary.Create; + FConnection.BeginTransaction; + + try + ID_Remesas := TStringList.Create; + ID_Remesas.CommaText := ID; + + //Vamos generando todos y cada uno de los albaranes recibidos + for i := 0 to ID_Remesas.Count - 1 do + GenerarRemesa(StrToInt(ID_Remesas.Strings[i])); + + frxReport.PreviewPages.SaveToStream(Result); + + finally + FConnection.RollbackTransaction; + end; +end; + +procedure TRptRemesasCliente.DataModuleDestroy(Sender: TObject); +begin + tbl_Cabecera.Active := False; + tbl_Detalles.Active := False; +end; + +procedure TRptRemesasCliente.GenerarRemesa(const ID: Integer); +var + AStream: TMemoryStream; + dsMaster: IDADataset; + dsDetail: IDADataset; + AInforme: Variant; +begin + AStream := TMemoryStream.Create; + + try + dsMaster := schReport.NewDataset(FConnection, ds_InformeCabecera, ['ID'], [ID]); + dsDetail := schReport.NewDataset(FConnection, ds_InformeDetalles, ['ID_REMESA'], [ID], False); + + AStream.Clear; + DABINAdapter.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1); + DABINAdapter.ReadDataset(AStream, tbl_Cabecera, TRUE, '', TRUE, TRUE); + + AStream.Clear; + DABINAdapter.WriteDataset(AStream, dsDetail, [woRows, woSchema], -1); + DABINAdapter.ReadDataset(AStream, tbl_Detalles, TRUE, '', TRUE, TRUE); + + AInforme := DarRutaFichero(DarRutaInformes, rptInforme); + if VarIsNull(AInforme) then + raise Exception.Create (('Error Servidor: GenerarRemesa, no encuentra informe ' + rptInforme)); + + frxReport.LoadFromFile(AInforme, True); + frxReport.PrepareReport(False); + + finally + AStream.Free; + dsMaster := Nil; + dsDetail := Nil; + end; +end; + +end. diff --git a/Source/Modulos/Remesas de cliente/Servidor/srvRemesasCliente_Impl.dcu b/Source/Modulos/Remesas de cliente/Servidor/srvRemesasCliente_Impl.dcu new file mode 100644 index 0000000..fbc4963 Binary files /dev/null and b/Source/Modulos/Remesas de cliente/Servidor/srvRemesasCliente_Impl.dcu differ diff --git a/Source/Modulos/Remesas de cliente/Servidor/srvRemesasCliente_Impl.dfm b/Source/Modulos/Remesas de cliente/Servidor/srvRemesasCliente_Impl.dfm new file mode 100644 index 0000000..ee80139 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Servidor/srvRemesasCliente_Impl.dfm @@ -0,0 +1,513 @@ +object srvRemesasCliente: TsrvRemesasCliente + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + ConnectionName = 'IBX' + ServiceSchema = schRemesasCliente + ServiceDataStreamer = Bin2DataStreamer + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + Height = 249 + Width = 343 + object Diagrams: TDADiagrams + Left = 150 + Top = 74 + DiagramData = ''#13#10''#13#10 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'RemesasCliente_ID' + DataType = datAutoInc + GeneratorName = 'GEN_REMESAS_CLIENTE_ID' + Required = True + DisplayLabel = 'ID' + ServerAutoRefresh = True + end + item + Name = 'RemesasCliente_FECHA_REMESA' + DataType = datDateTime + end + item + Name = 'RemesasCliente_DESCRIPCION' + DataType = datString + Size = 255 + ServerAutoRefresh = True + end + item + Name = 'RemesasCliente_USUARIO' + DataType = datString + Size = 20 + end + item + Name = 'RemesasCliente_ID_EMPRESA' + DataType = datInteger + end + item + Name = 'RemesasCliente_ID_DATOS_BANCO' + DataType = datInteger + DisplayLabel = 'ID_DATOS_BANCO' + end + item + Name = 'RemesasCliente_FECHA_ALTA' + DataType = datDateTime + DisplayLabel = 'FECHA_ALTA' + end + item + Name = 'RemesasCliente_FECHA_MODIFICACION' + DataType = datDateTime + DisplayLabel = 'FECHA_MODIFICACION' + end + item + Name = 'RemesasCliente_NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Banco' + end + item + Name = 'RemesasCliente_ENTIDAD' + DataType = datString + Size = 15 + DisplayLabel = 'Cod. entidad' + end + item + Name = 'RemesasCliente_SUCURSAL' + DataType = datString + Size = 15 + DisplayLabel = 'Cod. sucursal' + end + item + Name = 'RemesasCliente_DC' + DataType = datString + Size = 15 + DisplayLabel = 'DC' + end + item + Name = 'RemesasCliente_CUENTA' + DataType = datString + Size = 15 + DisplayLabel = 'Cuenta' + end + item + Name = 'RemesasCliente_SUFIJO_N19' + DataType = datString + Size = 3 + DisplayLabel = 'Sufijo N19' + end + item + Name = 'RemesasCliente_SUFIJO_N58' + DataType = datString + Size = 3 + DisplayLabel = 'Sufijo N58' + end + item + Name = 'RemesasCliente_Refresh_REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'REFERENCIA' + ServerAutoRefresh = True + end + item + Name = 'RemesasCliente_REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'REFERENCIA' + ServerAutoRefresh = True + end + item + Name = 'RemesasCliente_TIPO' + DataType = datString + Size = 40 + DisplayLabel = 'Forma de cobro' + end + item + Name = 'RemesasCliente_IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + ServerAutoRefresh = True + end> + Left = 150 + Top = 22 + end + object schRemesasCliente: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Diagrams = Diagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + Name = 'IBX' + SQL = + 'select ANO from'#10'(select distinct(substr(FECHA_REMESA, 1,4)) as A' + + 'NO'#10'from remesas_cliente'#10'order by 1 desc)'#10#10'UNION ALL'#10#10'select dist' + + 'inct '#39'Todos'#39' as ANO'#10'from empresas'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ANO' + TableField = 'ANO' + end> + end> + Name = 'ListaAnosRemesas' + Fields = < + item + Name = 'ANO' + DataType = datString + Size = 254 + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_REMESAS_CLIENTE' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'TIPO' + TableField = 'TIPO' + end + item + DatasetField = 'FECHA_REMESA' + TableField = 'FECHA_REMESA' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'ID_DATOS_BANCO' + TableField = 'ID_DATOS_BANCO' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'ENTIDAD' + TableField = 'ENTIDAD' + end + item + DatasetField = 'SUCURSAL' + TableField = 'SUCURSAL' + end + item + DatasetField = 'DC' + TableField = 'DC' + end + item + DatasetField = 'CUENTA' + TableField = 'CUENTA' + end + item + DatasetField = 'SUFIJO_N19' + TableField = 'SUFIJO_N19' + end + item + DatasetField = 'SUFIJO_N58' + TableField = 'SUFIJO_N58' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end> + end> + Name = 'RemesasCliente' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_REMESAS_CLIENTE_ID' + ServerAutoRefresh = True + DictionaryEntry = 'RemesasCliente_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'RemesasCliente_ID_EMPRESA' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'RemesasCliente_REFERENCIA' + end + item + Name = 'TIPO' + DataType = datString + Size = 40 + DictionaryEntry = 'RemesasCliente_TIPO' + end + item + Name = 'FECHA_REMESA' + DataType = datDateTime + DictionaryEntry = 'RemesasCliente_FECHA_REMESA' + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DictionaryEntry = 'RemesasCliente_DESCRIPCION' + end + item + Name = 'ID_DATOS_BANCO' + DataType = datInteger + DictionaryEntry = 'RemesasCliente_ID_DATOS_BANCO' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'RemesasCliente_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'RemesasCliente_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'RemesasCliente_USUARIO' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DictionaryEntry = 'RemesasCliente_NOMBRE' + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + DictionaryEntry = 'RemesasCliente_ENTIDAD' + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + DictionaryEntry = 'RemesasCliente_SUCURSAL' + end + item + Name = 'DC' + DataType = datString + Size = 15 + DictionaryEntry = 'RemesasCliente_DC' + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + DictionaryEntry = 'RemesasCliente_CUENTA' + end + item + Name = 'SUFIJO_N19' + DataType = datString + Size = 3 + DictionaryEntry = 'RemesasCliente_SUFIJO_N19' + end + item + Name = 'SUFIJO_N58' + DataType = datString + Size = 3 + DictionaryEntry = 'RemesasCliente_SUFIJO_N58' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DictionaryEntry = 'RemesasCliente_IMPORTE_TOTAL' + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_REMESAS_CLIENTE_ID' + Value = '' + end + item + Name = 'REFERENCIA' + Value = '' + end + item + Name = 'TIPO' + Value = '' + end + item + Name = 'FECHA_REMESA' + Value = '' + end + item + Name = 'DESCRIPCION' + Value = '' + end + item + Name = 'USUARIO' + Value = '' + end + item + Name = 'ID_EMPRESA' + Value = '' + end + item + Name = 'ID_DATOS_BANCO' + Value = '' + end + item + Name = 'FECHA_ALTA' + Value = '' + end + item + Name = 'FECHA_MODIFICACION' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'REMESAS_CLIENTE' + SQL = + 'INSERT'#10' INTO REMESAS_CLIENTE'#10' (ID, REFERENCIA, TIPO, FECHA_R' + + 'EMESA, DESCRIPCION, USUARIO, ID_EMPRESA,'#10' ID_DATOS_BANCO, FE' + + 'CHA_ALTA, FECHA_MODIFICACION)'#10' VALUES'#10' (:ID, :REFERENCIA, :T' + + 'IPO, :FECHA_REMESA, :DESCRIPCION, :USUARIO,'#10' :ID_EMPRESA, :I' + + 'D_DATOS_BANCO, :FECHA_ALTA,'#10' :FECHA_MODIFICACION)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_RemesasCliente' + end + item + Params = < + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'REMESAS_CLIENTE' + SQL = 'DELETE '#10' FROM'#10' REMESAS_CLIENTE'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_RemesasCliente' + end + item + Params = < + item + Name = 'ID' + Value = '' + end + item + Name = 'REFERENCIA' + Value = '' + end + item + Name = 'TIPO' + Value = '' + end + item + Name = 'FECHA_REMESA' + Value = '' + end + item + Name = 'DESCRIPCION' + Value = '' + end + item + Name = 'USUARIO' + Value = '' + end + item + Name = 'ID_EMPRESA' + Value = '' + end + item + Name = 'ID_DATOS_BANCO' + Value = '' + end + item + Name = 'FECHA_ALTA' + Value = '' + end + item + Name = 'FECHA_MODIFICACION' + Value = '' + end + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'REMESAS_CLIENTE' + SQL = + 'UPDATE REMESAS_CLIENTE'#10' SET '#10' ID = :ID,'#10' REFERENCIA = :RE' + + 'FERENCIA, '#10' TIPO = :TIPO,'#10' FECHA_REMESA = :FECHA_REMESA, '#10 + + ' DESCRIPCION = :DESCRIPCION, '#10' USUARIO = :USUARIO, '#10' ID' + + '_EMPRESA = :ID_EMPRESA, '#10' ID_DATOS_BANCO = :ID_DATOS_BANCO,'#10' ' + + ' FECHA_ALTA = :FECHA_ALTA, '#10' FECHA_MODIFICACION = :FECHA_MO' + + 'DIFICACION'#10' WHERE'#10' (ID = :OLD_ID)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_RemesasCliente' + end> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 24 + end + object bpRemesasCliente: TDABusinessProcessor + Schema = schRemesasCliente + InsertCommandName = 'Insert_RemesasCliente' + DeleteCommandName = 'Delete_RemesasCliente' + UpdateCommandName = 'Update_RemesasCliente' + ReferencedDataset = 'RemesasCliente' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 248 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 88 + end +end diff --git a/Source/Modulos/Remesas de cliente/Servidor/srvRemesasCliente_Impl.pas b/Source/Modulos/Remesas de cliente/Servidor/srvRemesasCliente_Impl.pas new file mode 100644 index 0000000..25f34b9 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Servidor/srvRemesasCliente_Impl.pas @@ -0,0 +1,85 @@ +unit srvRemesasCliente_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} uDABusinessProcessor, uDABin2DataStreamer, uDADataStreamer, + uDAScriptingProvider, uDAClasses, + FactuGES_Intf, uDAInterfaces, uDABinAdapter; + +type + { TsrvRemesasCliente } + TsrvRemesasCliente = class(TDataAbstractService, IsrvRemesasCliente) + Diagrams: TDADiagrams; + bpRemesasCliente: TDABusinessProcessor; + Bin2DataStreamer: TDABin2DataStreamer; + schRemesasCliente: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceCreate(Sender: TObject); + procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; + const IncludeSchema: Boolean; const MaxRecords: Integer); + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; + var aConnectionName: string); + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer, + uDatabaseUtils, schRemesasClienteClient_Intf, uRestriccionesUsuarioUtils, + uBizRemesasClienteServer, +// uRptRemesasCliente_Server, + Dialogs; + +procedure Create_srvRemesasCliente(out anInstance : IUnknown); +begin + anInstance := TsrvRemesasCliente.Create(NIL); +end; + +{ srvRemesasCliente } + +procedure TsrvRemesasCliente.DARemoteServiceBeforeGetDatasetData( + const Dataset: IDADataset; const IncludeSchema: Boolean; + const MaxRecords: Integer); +begin +{ + if DataSet.Name = nme_RemesasCliente then + begin + { Aqu se asegura que el usuario slo accede a los RemesasCliente + de las empresas a las que tiene permiso para acceder + filtrando DataSet por ID_EMPRESA. } +{ FiltrarAccesoUsuario(Session, Connection, schRemesasCliente, DataSet, fld_RemesasClienteID_EMPRESA); + end; +} +end; + +procedure TsrvRemesasCliente.DARemoteServiceCreate(Sender: TObject); +begin + //SessionManager := dmServer.SessionManager; + bpRemesasCliente.BusinessRulesID := BIZ_SERVER_REMESAS_CLIENTE; +end; + +procedure TsrvRemesasCliente.DataAbstractServiceBeforeAcquireConnection( + aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +initialization + TROClassFactory.Create('srvRemesasCliente', Create_srvRemesasCliente, TsrvRemesasCliente_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Remesas de cliente/Views/RemesasCliente_view.bdsproj b/Source/Modulos/Remesas de cliente/Views/RemesasCliente_view.bdsproj new file mode 100644 index 0000000..1c7503e --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Views/RemesasCliente_view.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + RemesasCliente_view.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + True + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Remesas de cliente/Views/RemesasCliente_view.dcu b/Source/Modulos/Remesas de cliente/Views/RemesasCliente_view.dcu new file mode 100644 index 0000000..a0531b5 Binary files /dev/null and b/Source/Modulos/Remesas de cliente/Views/RemesasCliente_view.dcu differ diff --git a/Source/Modulos/Remesas de cliente/Views/RemesasCliente_view.dpk b/Source/Modulos/Remesas de cliente/Views/RemesasCliente_view.dpk new file mode 100644 index 0000000..5284c54 Binary files /dev/null and b/Source/Modulos/Remesas de cliente/Views/RemesasCliente_view.dpk differ diff --git a/Source/Modulos/Remesas de cliente/Views/RemesasCliente_view.dproj b/Source/Modulos/Remesas de cliente/Views/RemesasCliente_view.dproj new file mode 100644 index 0000000..13e4589 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Views/RemesasCliente_view.dproj @@ -0,0 +1,617 @@ + + + {5e4bdd4d-597f-407c-8b0c-32e37fbd6267} + RemesasCliente_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\RemesasCliente_view.bpl + + + 7.0 + False + False + False + True + 0 + True + True + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + False + True + True + True + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + RemesasCliente_view.dpk + + + + + + + MainSource + + + + + + + + + + + + +
fEditorRemesaCliente
+ TfEditorRemesaCliente +
+ +
fEditorRemesaClienteReport
+ TfEditorRemesaClienteReport +
+ +
fEditorRemesasCliente
+ TfEditorArticulos +
+ + +
frViewRecibosRemesaCliente
+ TFrame +
+ +
frViewRemesaCliente
+ TFrame +
+ +
frViewRemesasCliente
+ TFrame +
+
+
+ + diff --git a/Source/Modulos/Remesas de cliente/Views/RemesasCliente_view.rc b/Source/Modulos/Remesas de cliente/Views/RemesasCliente_view.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Views/RemesasCliente_view.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Remesas de cliente/Views/RemesasCliente_view.res b/Source/Modulos/Remesas de cliente/Views/RemesasCliente_view.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Remesas de cliente/Views/RemesasCliente_view.res differ diff --git a/Source/Modulos/Remesas de cliente/Views/uEditorRemesaCliente.dcu b/Source/Modulos/Remesas de cliente/Views/uEditorRemesaCliente.dcu new file mode 100644 index 0000000..dac5eb6 Binary files /dev/null and b/Source/Modulos/Remesas de cliente/Views/uEditorRemesaCliente.dcu differ diff --git a/Source/Modulos/Remesas de cliente/Views/uEditorRemesaCliente.dfm b/Source/Modulos/Remesas de cliente/Views/uEditorRemesaCliente.dfm new file mode 100644 index 0000000..f1b0721 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Views/uEditorRemesaCliente.dfm @@ -0,0 +1,1931 @@ +inherited fEditorRemesaCliente: TfEditorRemesaCliente + Left = 374 + Top = 273 + HorzScrollBar.Visible = False + VertScrollBar.Visible = False + Caption = 'Ficha de remesa de cobro' + ClientHeight = 583 + ClientWidth = 676 + Scaled = False + OnClose = CustomEditorClose + ExplicitWidth = 684 + ExplicitHeight = 617 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 676 + Caption = 'Remesa de cobro' + ExplicitWidth = 676 + inherited Image1: TImage + Left = 543 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000002744944415478DA63FCFFFF3F + 032D01E3F0B060F9D6D334B3056E41A4B729491AFFFCFDCFF0F7EF3F869FBFFE + 80E93FFFFE8169301B887FFDFECB109E5E876A41E249438206FF05AAFFF5F72F + C3AF3F7FC0F4975FBF207C10065A02932BFAB59C61DED24D9816CC373F8F6291 + F45B6F8626CF660C8BFE010D0361CFD5F60C1F791E800DBF14F0824169A520D8 + 928ABFAB705B00022036B2E11718CF33189F346660B809E4A833309C353FCBA0 + F9438BE117D007415B3C189EB2DF66B811FC1AAC566C3137431DC35AFC3E8019 + CE7C8A89E1AFD93F300D32FC6CDC5906E379408BB419183EEB7C61E0BDC2C3F0 + 5AE50D43F84E5F86BD51C718841771817DD0CEB211BB05E841C3BC1C684124D0 + 82C54C10C39719339C8D02D2B38C193E447C6410D8C2CFF0C2E52543D49E0086 + 0B7F2EC0E3A3977D0B911620FBE02A508203887F30807DF056ED1D83F02D2186 + 27324F18E20E86329CFA79166EC164AEEDF82D40B6E42F50C365964B9038B808 + 94D087C481DC5B79869F3F7E60180E02382D404E4520C58A1FFC186A9C6BC196 + FC03A7F5BF700CE247EF0D841BFE33E50F03E34C46FC16C0003C6D03B1CCB31F + 0C5325B4B1E60BDE877B505C0E03582D40CFA57FA039F3EA444D0609A7200645 + CB1E86FBC74BC06A5EDC0726E7FBF719E6EE7BCE30A7DA09C3E2294F73312D98 + B2780756570A7E3BC7A0F4660ED8307450DD928DD3E273AC89080BBA27CF2758 + 4C9C2B7B88553CA5751FA65AA0E12000B680919191A0E1C75A14FF93124C404B + C3E6EEFBB19A140B4281D42A6CC13467EF77AC96022D6024CA0290E196969AAB + B0C91D3F7E1D6BDC008101D0828BC45A803778402EC5A597681FE00A1E200087 + 355E0B6809686E0100FA3E2AAB1481BE0E0000000049454E44AE426082} + ExplicitLeft = 607 + end + inherited lblDesbloquear: TcxLabel + Left = 578 + ExplicitLeft = 578 + AnchorX = 623 + AnchorY = 14 + end + end + inherited TBXDock: TTBXDock + Width = 676 + ExplicitWidth = 676 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 598 + inherited TBXItem2: TTBXItem + Visible = False + end + inherited TBXItem5: TTBXItem + Visible = False + end + object TBXSeparatorItem6: TTBXSeparatorItem [11] + end + object TBXItem33: TTBXItem [12] + Action = actVolcarDisco + DisplayMode = nbdmImageAndText + end + end + inherited tbxMenu: TTBXToolbar + DockPos = 0 + ExplicitWidth = 676 + inherited TBXSubmenuItem4: TTBXSubmenuItem + inherited TBXItem8: TTBXItem + Visible = False + end + inherited TBXSeparatorItem5: TTBXSeparatorItem + Visible = False + end + inherited TBXItem10: TTBXItem + Visible = False + end + inherited TBXItem21: TTBXItem + Visible = False + end + inherited TBXItem22: TTBXItem + Visible = False + end + inherited TBXItem9: TTBXItem + Visible = False + end + end + inherited TBXSubmenuItem1: TTBXSubmenuItem + inherited TBXItem32: TTBXItem + Visible = False + end + inherited TBXItem31: TTBXItem + Visible = False + end + inherited TBXSeparatorItem13: TTBXSeparatorItem + Visible = False + end + end + object TBXSubmenuItem2: TTBXSubmenuItem [4] + Caption = 'A&cciones' + object TBXItem7: TTBXItem + Action = actVolcarDisco + end + end + end + end + inherited pgPaginas: TPageControl + Width = 670 + Height = 436 + MultiLine = True + ExplicitWidth = 670 + ExplicitHeight = 436 + inherited pagGeneral: TTabSheet + ExplicitLeft = 4 + ExplicitTop = 24 + ExplicitWidth = 662 + ExplicitHeight = 408 + inline frViewRemesaCliente1: TfrViewRemesaCliente + Left = 0 + Top = 0 + Width = 662 + Height = 145 + Align = alTop + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 662 + ExplicitHeight = 145 + inherited dxLayoutControlRemesaCliente: TdxLayoutControl + Width = 662 + Height = 160 + Align = alTop + ExplicitWidth = 662 + ExplicitHeight = 160 + DesignSize = ( + 662 + 160) + inherited eReferencia: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 292 + Width = 292 + end + inherited eDescripcion: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 530 + Width = 530 + end + inherited edtFechaRemesa: TcxDBDateEdit + Left = 491 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 491 + ExplicitWidth = 149 + Width = 149 + end + inherited cbCuentaBancaria: TcxDBLookupComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 530 + Width = 530 + end + inherited cbTipo: TcxDBImageComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 530 + Width = 530 + end + end + inherited dsDataTable: TDADataSource + Left = 104 + Top = 24 + end + inherited dsDatosBanco: TDADataSource + Left = 120 + end + end + inline frViewRecibosRemesaCliente1: TfrViewRecibosRemesaCliente + Left = 0 + Top = 145 + Width = 662 + Height = 263 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + Padding.Left = 15 + Padding.Right = 15 + Padding.Bottom = 15 + ParentFont = False + TabOrder = 1 + ReadOnly = False + ExplicitTop = 145 + ExplicitWidth = 662 + ExplicitHeight = 263 + inherited cxGrid: TcxGrid + Left = 15 + Width = 632 + Height = 223 + ExplicitLeft = 15 + ExplicitWidth = 632 + ExplicitHeight = 223 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = frViewRecibosRemesaCliente1.cxGridViewIMPORTE_TOTAL + end + item + Format = '0 Recibos' + Kind = skCount + Column = frViewRecibosRemesaCliente1.cxGridViewREFERENCIA + end> + DataController.Summary.OnAfterSummary = frViewRecibosRemesaCliente1cxGridViewDataControllerSummaryAfterSummary + inherited cxGridViewIMPORTE_TOTAL: TcxGridDBColumn + FooterAlignmentHorz = taRightJustify + end + end + end + inherited ToolBar1: TToolBar + Left = 15 + Width = 632 + ExplicitLeft = 15 + ExplicitWidth = 632 + end + end + end + end + inherited StatusBar: TJvStatusBar + Top = 564 + Width = 676 + Panels = < + item + Width = 200 + end> + ExplicitTop = 564 + ExplicitWidth = 676 + end + inline frViewTotales1: TfrViewTotales [4] + Left = 0 + Top = 518 + Width = 676 + Height = 46 + Align = alBottom + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 4 + ReadOnly = False + ExplicitTop = 518 + ExplicitWidth = 676 + ExplicitHeight = 46 + inherited dxLayoutControl1: TdxLayoutControl + Width = 676 + Height = 46 + ExplicitWidth = 676 + ExplicitHeight = 46 + inherited Bevel3: TBevel + Left = 381 + Top = 10 + Height = 30 + ExplicitLeft = 381 + ExplicitTop = 10 + ExplicitHeight = 30 + end + inherited Bevel4: TBevel + Left = 493 + Top = 52 + Width = 192 + ExplicitLeft = 493 + ExplicitTop = 52 + ExplicitWidth = 192 + end + inherited Bevel1: TBevel + Left = 493 + Top = 168 + Width = 73 + ExplicitLeft = 493 + ExplicitTop = 168 + ExplicitWidth = 73 + end + inherited Bevel2: TBevel + Left = 119 + Top = 170 + Width = 368 + ExplicitLeft = 119 + ExplicitTop = 170 + ExplicitWidth = 368 + end + inherited ImporteDto: TcxDBCurrencyEdit + Left = 190 + Top = 37 + DataBinding.DataField = '' + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 190 + ExplicitTop = 37 + ExplicitWidth = 157 + Width = 157 + end + inherited ImporteIVA: TcxDBCurrencyEdit + Left = 564 + Top = 87 + DataBinding.DataField = '' + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 564 + ExplicitTop = 87 + ExplicitWidth = 147 + Width = 147 + end + inherited ImporteTotal: TcxDBCurrencyEdit + Left = 494 + Top = 141 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 494 + ExplicitTop = 141 + ExplicitWidth = 217 + Width = 217 + end + inherited edtDescuento: TcxDBSpinEdit + Left = 119 + Top = 37 + DataBinding.DataField = '' + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 119 + ExplicitTop = 37 + end + inherited edtIVA: TcxDBSpinEdit + Left = 493 + Top = 87 + DataBinding.DataField = '' + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 493 + ExplicitTop = 87 + end + inherited ImporteBase: TcxDBCurrencyEdit + Left = 493 + Top = 10 + DataBinding.DataField = '' + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 493 + ExplicitTop = 10 + ExplicitWidth = 218 + Width = 218 + end + inherited edtRE: TcxDBSpinEdit + Left = 493 + Top = 114 + DataBinding.DataField = '' + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 493 + ExplicitTop = 114 + end + inherited ImporteRE: TcxDBCurrencyEdit + Left = 564 + Top = 114 + DataBinding.DataField = '' + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 564 + ExplicitTop = 114 + ExplicitWidth = 147 + Width = 147 + end + inherited eImporteNeto: TcxDBCurrencyEdit + Left = 119 + Top = 10 + DataBinding.DataField = '' + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 119 + ExplicitTop = 10 + ExplicitWidth = 228 + Width = 228 + end + inherited ePorte: TcxDBCurrencyEdit + Left = 119 + Top = 64 + DataBinding.DataField = '' + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 119 + ExplicitTop = 64 + ExplicitWidth = 228 + Width = 228 + end + inherited eIVA: TcxDBLookupComboBox + Left = 119 + Top = 91 + DataBinding.DataField = '' + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 119 + ExplicitTop = 91 + ExplicitWidth = 90 + Width = 90 + end + inherited bTiposIVA: TButton + Left = 233 + Top = 91 + ExplicitLeft = 233 + ExplicitTop = 91 + end + inherited cbRecargoEquivalencia: TcxDBCheckBox + Left = 119 + Top = 118 + DataBinding.DataField = '' + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 119 + ExplicitTop = 118 + ExplicitWidth = 228 + Width = 228 + end + inherited edtRetencion: TcxDBSpinEdit + Left = 493 + Top = 188 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 493 + ExplicitTop = 188 + end + inherited edtImporteRetencion: TcxDBCurrencyEdit + Left = 564 + Top = 188 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 564 + ExplicitTop = 188 + ExplicitWidth = 180 + Width = 180 + end + inherited edtFechaRetencion: TcxDBDateEdit + Left = 119 + Top = 190 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 119 + ExplicitTop = 190 + ExplicitWidth = 280 + Width = 280 + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Group1: TdxLayoutGroup + ShowCaption = False + ShowBorder = False + inherited dxLayoutControl1Group2: TdxLayoutGroup + Visible = False + inherited dxLayoutControl1Item19: TdxLayoutItem + Visible = False + end + end + inherited dxLayoutControl1Group5: TdxLayoutGroup + inherited dxLayoutControl1Item13: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Group3: TdxLayoutGroup + inherited dxLayoutControl1Item12: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Item14: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Group9: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Group8: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Item10: TdxLayoutItem + Visible = False + end + end + end + end + end + end + end + inherited EditorActionList: TActionList [5] + Left = 96 + Top = 168 + object actVolcarDisco: TAction + Category = 'Acciones' + Caption = 'Volcar a disco...' + ImageIndex = 22 + OnExecute = actVolcarDiscoExecute + OnUpdate = actVolcarDiscoUpdate + end + end + inherited SmallImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001A34944415478DA9D922177E3300CC7655636C3B20596CD702C86C7E6 + B141C342EF1BE42318167AECD81916BA6CD0638582852A0BCBA46CCDDAF46E77 + EFF4E2A7D8F2FF2759B6724FD9354BF30B09810EF5B16C43866FACAC7DA67DD5 + E364655A15020ECEDD42AD47C839EE4AE9EC5CE492EBB2CF9DFC676BCA83772D + 6C133CEFE14D395F066B0C032AA4346AD5B9905D20C49BD255350196D4BEF40D + C48A47657F44073D05CEDC9AFBF0585F63B61D1379AF7BF2B702C67D8509B0F6 + 4329E52D1DE8CE2CF557B6B93144CAF13C04767702CCED62B12433587FB99141 + 4E1C03C2B70011B72EC02E479843CEAD6E60D04BEED9C1825B47A54E6273CF15 + F73CE9095226D00B891000FB66C1733E2F71CCACCC08EA36043165755141D334 + 2CE6EEAFE429F0552F3468CD5E370CE05842F04E4FE2DFF6A05979CE04633524 + 15F08707024484E0F9EA36C880ACAE7A70DE87931D7B0190BCD0B1326F11E256 + 20FF0098C454D92324167A5320163B95FF47C0518EC02219F4E9D3AB01C780F4 + 3780910A46D167763E3FF508B95A59BA105F037E76038EC28FE6C9B58DCDEC3F + E273F115E07FEC1D6B02010E884AA1F00000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001D24944415478DA + 635CBBFBE27F062C20D8559F1145C0600644DD850C1471469001412E7A286AD7 + EDB9846A08507365811743FB846DC41BD0D23303CC3EFF529F61E19464861B77 + 9E332C597190E1C7CFBF175FBFFFE10D34E8298601F7AD2419148F3D67F8FEF3 + 37C3F71FBF19841D16C335C380181F0B4365E7D62F4083344086C00D0069E6B4 + F26638B66E2E83C3F9AF0CDF7EFC62F08BAF02BBC0D74D9741474B96E1CAB5C7 + 60FACFE7370C0BD75FDEFA6A5FBC0FD800C33A77B06686FBFBC0B61C3B7F9F41 + 67FF2B8688F47A86F33BA73382C20064C8E65D97E186C1C2036C809FA30EC326 + 5566062B4345B8E66FDF7F312415B4420C408A85CF471354A21ACFDE3976F216 + C3DB838910035C2DD5C14E3E6ACAC7A0BEEB39C357A0E6DFBFFF32E4567533D4 + 94646044F1C92B1F19A6AEBAC5F0F5780AC4006BA0CDA0400369046190ED2050 + 54D70736003D96E6AC3DC35033E33AC3CB3D7110036051860DC00DF8788EE1FE + 726306C5C8B30CEB4EB3C0A39991810080C5D2EF358C0CAC16F10CF7B72C64E0 + 8F44C412710698FE81D86E0F8CA8830C6057DCFA200B8E25A20C30BCA3CFA0E8 + 130F8C82850CEFDF31307CB80CF491C313702C116580C8697D0C7166F77BE058 + 22CA007CB1449401F862090078951B407104A20F0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end> + Left = 555 + Top = 0 + Bitmap = {} + end + inherited dsDataTable: TDADataSource [7] + Left = 64 + Top = 168 + end + inherited LargeImages: TPngImageList [8] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003034944415478DA + ADD46F4813611C07F0EF392446538B289908A6537314FE4926362B933433536C + 1619F52202A1DEF8C250DF0596BD890489CC28EA456064E6D49588A583569BF8 + 27752ACE7F399550D3B09C9BD23677DD5DDD799BCBCCF983C1EE9EBBEFE7F9F1 + DCF31035EFF424D6A9EC9428021E1441038AE448B783CAE65E94DC7D88EEA68A + 4D23FF040E458720FD52E15F11694E9DD9F0224BF45F80328480628CE43A60CB + 15397051B564B5DA85C3D50A62C380512E86509E0E9DF2094E196CB0DAECD46F + 05272E1438017478464AB4B04AD58E31E5D98D016C388C6AE65AD76D4442BB09 + D58D5A3CAD5471001B1E112AC6B36AAD616CE29B3F4992361F91B0746864BADE + DA9E3BBC06700D678B46A68A1B39801FCEAF51E31C6A1A3E59C627E7066DB695 + F3B68EDCCF1C107323D56D381F2909BF06EBAE93665954B0282941CA8DD9571C + 004960D1628379C98EAA5A5D7DBF61E2384922103D57179C3B100BDD86F33B08 + CAA8215393A48E84B8302F7ABCB85485A3F15248820360595E81D962EFB9FFA8 + 76861A7A4301E50C9091B89F59C8D9E42027840E0F69F8828F9D7D4E6B4023FB + C2F62C9F498B1516DDAAC64E3FD1A240E0253A228F2604DEDBF0AA565D643299 + 6514708E0152E511DCD7B29419CE206CF84FEA7E87DEE004B088404058A6BFFE + D8BEDC7A85F0963D9644848B151249C49DE1D1C9DB0303C3E91410C30049B250 + 269C45F4C77673E1D4770EBD618403F8474BFEBD51CCCC7EC7F31219D77561B9 + 11FE01C1953A5D6B3605089917E22383A06C6AC57AC507F8FB666FA612E32A05 + 777DBD4C8BD71FE6313236050A209817F8BB75BD7207B856C5CB0E1494F5530B + 6EFD0D6C2899576E81852EC0EF201C0E1275EA3EDC2C7F0BFDB80F62FCF5F01C + A0C307F3A0516B1197BF7AB49CCE6B8275AE790B80B6C380AF96F93BD402ECC8 + 3131487D731BB36E9E017F66CF029A3A20F8F23CD341E3FBCE2D0078B3678BEE + C2913683165DB78780CBECD9A2BBF0CD5ADDFD9B02E8A3C5BB2B714D381FE90D + 6CF4A003991D9A07B1EB3EE711401F2D952ACD3F9FDD34B0D19D4FD72F7A80FE + E871245F980000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end> + Left = 523 + Top = 0 + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [9] + OnSavePlacement = JvFormStorageSavePlacement + OnRestorePlacement = JvFormStorageRestorePlacement + Left = 528 + Top = 32 + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [10] + Left = 560 + Top = 32 + end + inherited StatusBarImages: TPngImageList + Left = 120 + Top = 112 + end + object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList + Left = 48 + Top = 144 + object dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel + GroupOptions.CaptionOptions.Font.Charset = DEFAULT_CHARSET + GroupOptions.CaptionOptions.Font.Color = clWindowText + GroupOptions.CaptionOptions.Font.Height = -11 + GroupOptions.CaptionOptions.Font.Name = 'Tahoma' + GroupOptions.CaptionOptions.Font.Style = [fsBold] + GroupOptions.CaptionOptions.TextColor = clHighlight + GroupOptions.CaptionOptions.UseDefaultFont = False + end + end +end diff --git a/Source/Modulos/Remesas de cliente/Views/uEditorRemesaCliente.pas b/Source/Modulos/Remesas de cliente/Views/uEditorRemesaCliente.pas new file mode 100644 index 0000000..4f0fadb --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Views/uEditorRemesaCliente.pas @@ -0,0 +1,349 @@ +unit uEditorRemesaCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorDBItem, ToolWin, ComCtrls, JvExControls, JvComponent, + uViewRemesaCliente, uBizRemesasCliente, JvNavigationPane, ActnList, + uEditorBase, StdActns, TB2Dock, TB2Toolbar, TBX, ImgList, PngImageList, + TB2Item, uEditorItem, DB, uDADataTable, uEditorDBBase, JvFormAutoSize, + uDAScriptingProvider, uDACDSDataTable, StdCtrls, pngimage, ExtCtrls, + TBXDkPanels, JvButton, AppEvnts, uCustomView, uViewBase, + JvAppStorage, JvAppRegistryStorage, JvFormPlacement, JvComponentBase, + cxCustomData, + uViewRemesasCliente, uIEditorRemesaCliente, uRemesasClienteController, JvExComCtrls, + JvStatusBar, dxLayoutLookAndFeels, uViewGridBase, uViewGrid, + uViewRecibosRemesaCliente, uViewTotales, uViewDetallesGenerico, uDAInterfaces, + cxControls, cxContainer, cxEdit, cxLabel; + +type + TfEditorRemesaCliente = class(TfEditorDBItem, IEditorRemesaCliente) + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + frViewRemesaCliente1: TfrViewRemesaCliente; + frViewTotales1: TfrViewTotales; + frViewRecibosRemesaCliente1: TfrViewRecibosRemesaCliente; + actVolcarDisco: TAction; + TBXSubmenuItem2: TTBXSubmenuItem; + TBXItem7: TTBXItem; + TBXItem33: TTBXItem; + TBXSeparatorItem6: TTBXSeparatorItem; + procedure FormShow(Sender: TObject); + procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); + + procedure actAnadirRecibosExecute(Sender: TObject); + procedure actEliminarReciboExecute(Sender: TObject); + procedure JvFormStorageRestorePlacement(Sender: TObject); + procedure JvFormStorageSavePlacement(Sender: TObject); + procedure frViewRecibosRemesaCliente1cxGridViewDataControllerSummaryAfterSummary( + ASender: TcxDataSummary); + procedure actVolcarDiscoUpdate(Sender: TObject); + procedure actVolcarDiscoExecute(Sender: TObject); + private + procedure OnRecibosChanged(Sender: TObject); + protected + FController : IRemesasClienteController; + FRemesaCliente: IBizRemesaCliente; + FViewRemesaCliente : IViewRemesaCliente; + + function GetController : IRemesasClienteController; + procedure SetController (const Value : IRemesasClienteController); virtual; + function GetRemesaCliente: IBizRemesaCliente; virtual; + procedure SetRemesaCliente(const Value: IBizRemesaCliente); virtual; + function GetViewRemesaCliente: IViewRemesaCliente; + procedure SetViewRemesaCliente(const Value: IViewRemesaCliente); + property ViewRemesaCliente: IViewRemesaCliente read GetViewRemesaCliente write SetViewRemesaCliente; + + procedure GuardarInterno; override; + procedure EliminarInterno; override; + procedure PrevisualizarInterno; override; + procedure ImprimirInterno; override; + procedure CerrarInterno; override; + + procedure PonerTitulos(const ATitulo: string = ''); override; + function GetModified: Boolean; override; + function PuedoImprimir: Boolean; override; + + public + property RemesaCliente: IBizRemesaCliente read GetRemesaCliente write SetRemesaCliente; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + uDataTableUtils, uDataModuleUsuarios, uDialogUtils, uCustomEditor, + uDataModuleRemesasCliente, uDataModuleBase, uBizFamilias, uFamiliasController, + uFactuGES_App; +// uBancaElectronicaController; + +{ +******************************* TfEditorRemesaCliente ******************************* +} +function TfEditorRemesaCliente.GetRemesaCliente: IBizRemesaCliente; +begin + Result := FRemesaCliente; +end; + +function TfEditorRemesaCliente.GetController: IRemesasClienteController; +begin + Result := FController; +end; + +function TfEditorRemesaCliente.GetModified: Boolean; +var + bCambiado : Boolean; +begin + bCambiado := inherited GetModified; + //Si no hay cambios miramos que no los halla en la lista de recibos + if not bCambiado then + bCambiado := frViewRecibosRemesaCliente1.Modified; + Result := bCambiado; +end; + +function TfEditorRemesaCliente.GetViewRemesaCliente: IViewRemesaCliente; +begin + Result := FViewRemesaCliente; +end; + +procedure TfEditorRemesaCliente.GuardarInterno; +var + bEsNuevo : Boolean; +begin + inherited; + + ShowHourglassCursor; + frViewRecibosRemesaCliente1.OnViewModified := Nil; + //frViewDetallesFacturaCliente1.SaveGridStatus; // Para guardar estado del grid +// frViewDetallesFacturaCliente1.BeginUpdate; // Para que no se mueva el foco + try + bEsNuevo := FRemesaCliente.EsNuevo; + FController.Guardar(FRemesaCliente); + + finally +// frViewDetallesFacturaCliente1.EndUpdate; +// frViewDetallesFacturaCliente1.RestoreGridStatus; + HideHourglassCursor; + end; + + if bEsNuevo then + ShowInfoMessage('La remesa de cobro se ha dado de alta con el cdigo ' + FRemesaCliente.REFERENCIA); + Modified := False; + frViewRecibosRemesaCliente1.Modified := False; + frViewRecibosRemesaCliente1.OnViewModified := OnRecibosChanged; +end; + +procedure TfEditorRemesaCliente.ImprimirInterno; +begin + inherited; + FController.Print(FRemesaCliente); +end; + +procedure TfEditorRemesaCliente.JvFormStorageRestorePlacement(Sender: TObject); +begin + inherited; + //frViewRecibosRemesaCliente1.RestoreFromRegistry(JvAppRegistryStorage.Root); +end; + +procedure TfEditorRemesaCliente.JvFormStorageSavePlacement(Sender: TObject); +begin + inherited; + //frViewRecibosRemesaCliente1.StoreToRegistry(JvAppRegistryStorage.Root); +end; + +procedure TfEditorRemesaCliente.OnRecibosChanged(Sender: TObject); +begin + ActualizarEstadoEditor; +end; + +procedure TfEditorRemesaCliente.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := ATitulo; + if (FTitulo = '') and Assigned(RemesaCliente) then + begin + if RemesaCliente.EsNuevo then + FTitulo := 'Nueva remesa de cobro' + else + FTitulo := 'Remesa de cobro'; + end; + + inherited PonerTitulos(FTitulo); + + Self.Caption := FTitulo + ' (' + AppFactuGES.EmpresaActiva.NOMBRE + ')'; +end; + +procedure TfEditorRemesaCliente.PrevisualizarInterno; +begin + inherited; + FController.Preview(FRemesaCliente); +end; + +function TfEditorRemesaCliente.PuedoImprimir: Boolean; +begin + Result := inherited PuedoImprimir and (not RemesaCliente.Recibos.IDIsNull); +end; + +procedure TfEditorRemesaCliente.SetRemesaCliente(const Value: IBizRemesaCliente); +begin + FRemesaCliente := Value; + if Assigned(FRemesaCliente) then + begin + dsDataTable.DataTable := FRemesaCliente.DataTable; + frViewRecibosRemesaCliente1.RemesaCliente := FRemesaCliente; + frViewRecibosRemesaCliente1.OnViewModified := OnRecibosChanged; + end + else + begin + dsDataTable.DataTable := Nil; + frViewRecibosRemesaCliente1.RemesaCliente := Nil; + frViewRecibosRemesaCliente1.OnViewModified := Nil; + end; + + if Assigned(FViewRemesaCliente) then + FViewRemesaCliente.RemesaCliente := FRemesaCliente; + + frViewTotales1.DADataSource.DataTable := dsDataTable.DataTable; +end; + +procedure TfEditorRemesaCliente.SetController(const Value: IRemesasClienteController); +begin + FController := Value; + if Assigned(FController) then + begin + (ViewRemesaCliente as IViewRemesaCliente).Controller := (FController as IRemesasClienteController); + frViewRecibosRemesaCliente1.Controller := (FController as IRemesasClienteController); + end; +end; + +procedure TfEditorRemesaCliente.SetViewRemesaCliente(const Value: IViewRemesaCliente); +begin + FViewRemesaCliente := Value; + + if Assigned(FViewRemesaCliente) and Assigned(RemesaCliente) then + begin + FViewRemesaCliente.RemesaCliente := RemesaCliente; + FViewRemesaCliente.Controller := (FController as IRemesasClienteController); + end; +end; + +procedure TfEditorRemesaCliente.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(FViewRemesaCliente) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(RemesaCliente) then + raise Exception.Create('No hay ningn almacn asignado'); + + RemesaCliente.DataTable.Active := True; + + //Falla si lo hacemos por dfm + frViewRecibosRemesaCliente1.cxGridView.OptionsSelection.MultiSelect := False; +end; + +procedure TfEditorRemesaCliente.frViewRecibosRemesaCliente1cxGridViewDataControllerSummaryAfterSummary(ASender: TcxDataSummary); +Var + AImporteTotal: Currency; +begin + inherited; + + if VarIsNull(ASender.FooterSummaryValues[0]) then + AImporteTotal := 0 + else + AImporteTotal := ASender.FooterSummaryValues[0]; + + if Assigned(RemesaCliente) then + begin + if (RemesaCliente.IMPORTE_TOTAL <> AImporteTotal) then + begin + if not RemesaCliente.DataTable.Editing then + begin + RemesaCliente.Edit; + RemesaCliente.IMPORTE_TOTAL := AImporteTotal; + RemesaCliente.Post; + end; + end; + end; +end; + +destructor TfEditorRemesaCliente.Destroy; +begin + // Utilizar mejor OnClose; + inherited; +end; + +procedure TfEditorRemesaCliente.actAnadirRecibosExecute(Sender: TObject); +begin + inherited; +// HayCambios := FController.ElegirRecibosCliente(RemesaCliente) OR HayCambios; +end; + +procedure TfEditorRemesaCliente.actEliminarReciboExecute(Sender: TObject); +begin + inherited; +// FController.EliminarReciboCliente(RemesaCliente); +// HayCambios := True; +end; + +procedure TfEditorRemesaCliente.actVolcarDiscoExecute(Sender: TObject); +//var +// ABancaController : IBancaElectronicaController; +begin +{ + inherited; + ABancaController := TBancaElectronicaController.Create; + try + ABancaController.GenerarFicheroNorma19(FRemesaCliente.ID); + finally + ABancaController := NIL; + end; +} +end; + +procedure TfEditorRemesaCliente.actVolcarDiscoUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := HayDatos and (not FRemesaCliente.EsNuevo); +end; + +procedure TfEditorRemesaCliente.CerrarInterno; +begin + frViewRecibosRemesaCliente1.OnViewModified := Nil; + inherited; +end; + +constructor TfEditorRemesaCliente.Create(AOwner: TComponent); +begin + inherited; + pgPaginas.ActivePageIndex := 0; + FViewRemesaCliente := frViewRemesaCliente1; +end; + +procedure TfEditorRemesaCliente.CustomEditorClose(Sender: TObject; + var Action: TCloseAction); +begin + inherited; + dsDataTable.DataTable := NIL; + FViewRemesaCliente := NIL; + FRemesaCliente := NIL; +end; + +procedure TfEditorRemesaCliente.EliminarInterno; +begin + if (Application.MessageBox('Desea borrar esta remesa de cobro?', 'Atencin', MB_YESNO) = IDYES) then + begin + inherited; + if not FController.Eliminar(FRemesaCliente) then + actRefrescar.Execute; + end; +end; + +end. + + \ No newline at end of file diff --git a/Source/Modulos/Remesas de cliente/Views/uEditorRemesaClienteReport.dcu b/Source/Modulos/Remesas de cliente/Views/uEditorRemesaClienteReport.dcu new file mode 100644 index 0000000..07fc647 Binary files /dev/null and b/Source/Modulos/Remesas de cliente/Views/uEditorRemesaClienteReport.dcu differ diff --git a/Source/Modulos/Remesas de cliente/Views/uEditorRemesaClienteReport.dfm b/Source/Modulos/Remesas de cliente/Views/uEditorRemesaClienteReport.dfm new file mode 100644 index 0000000..2f04463 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Views/uEditorRemesaClienteReport.dfm @@ -0,0 +1,12 @@ +inherited fEditorRemesaClientePreview: TfEditorRemesaClientePreview + Caption = 'Previsualizar la remesa' + ExplicitWidth = 660 + ExplicitHeight = 494 + PixelsPerInch = 96 + TextHeight = 13 + inherited frxReport1: TfrxReport + Datasets = <> + Variables = <> + Style = <> + end +end diff --git a/Source/Modulos/Remesas de cliente/Views/uEditorRemesaClienteReport.pas b/Source/Modulos/Remesas de cliente/Views/uEditorRemesaClienteReport.pas new file mode 100644 index 0000000..90fd8b7 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Views/uEditorRemesaClienteReport.pas @@ -0,0 +1,23 @@ +unit uEditorRemesaClienteReport; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorPreview, frxExportImage, frxExportPDF, frxDCtrl, frxClass, + frxDMPExport, frxGradient, frxChBox, frxCross, frxRich, frxChart, frxOLE, + frxBarcode, JvAppStorage, JvAppRegistryStorage, JvComponentBase, + JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, + TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, + ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uIEditorRemesasClientePreview, + JvExComCtrls, JvStatusBar; + +type + TfEditorRemesaClientePreview = class(TfEditorPreview, IEditorRemesasClientePreview) + end; + + +implementation +{$R *.dfm} + +end. diff --git a/Source/Modulos/Remesas de cliente/Views/uEditorRemesasCliente.dcu b/Source/Modulos/Remesas de cliente/Views/uEditorRemesasCliente.dcu new file mode 100644 index 0000000..762dff7 Binary files /dev/null and b/Source/Modulos/Remesas de cliente/Views/uEditorRemesasCliente.dcu differ diff --git a/Source/Modulos/Remesas de cliente/Views/uEditorRemesasCliente.dfm b/Source/Modulos/Remesas de cliente/Views/uEditorRemesasCliente.dfm new file mode 100644 index 0000000..1e1350b --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Views/uEditorRemesasCliente.dfm @@ -0,0 +1,2458 @@ +inherited fEditorRemesasCliente: TfEditorRemesasCliente + Left = 489 + Top = 325 + Caption = 'Lista de remesas de cobro' + ClientHeight = 409 + ClientWidth = 785 + ExplicitWidth = 793 + ExplicitHeight = 443 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 785 + Caption = 'Lista de remesas de cobro' + ExplicitWidth = 785 + inherited Image1: TImage + Left = 758 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000002744944415478DA63FCFFFF3F + 032D01E3F0B060F9D6D334B3056E41A4B729491AFFFCFDCFF0F7EF3F869FBFFE + 80E93FFFFE8169301B887FFDFECB109E5E876A41E249438206FF05AAFFF5F72F + C3AF3F7FC0F4975FBF207C10065A02932BFAB59C61DED24D9816CC373F8F6291 + F45B6F8626CF660C8BFE010D0361CFD5F60C1F791E800DBF14F0824169A520D8 + 928ABFAB705B00022036B2E11718CF33189F346660B809E4A833309C353FCBA0 + F9438BE117D007415B3C189EB2DF66B811FC1AAC566C3137431DC35AFC3E8019 + CE7C8A89E1AFD93F300D32FC6CDC5906E379408BB419183EEB7C61E0BDC2C3F0 + 5AE50D43F84E5F86BD51C718841771817DD0CEB211BB05E841C3BC1C684124D0 + 82C54C10C39719339C8D02D2B38C193E447C6410D8C2CFF0C2E52543D49E0086 + 0B7F2EC0E3A3977D0B911620FBE02A508203887F30807DF056ED1D83F02D2186 + 27324F18E20E86329CFA79166EC164AEEDF82D40B6E42F50C365964B9038B808 + 94D087C481DC5B79869F3F7E60180E02382D404E4520C58A1FFC186A9C6BC196 + FC03A7F5BF700CE247EF0D841BFE33E50F03E34C46FC16C0003C6D03B1CCB31F + 0C5325B4B1E60BDE877B505C0E03582D40CFA57FA039F3EA444D0609A7200645 + CB1E86FBC74BC06A5EDC0726E7FBF719E6EE7BCE30A7DA09C3E2294F73312D98 + B2780756570A7E3BC7A0F4660ED8307450DD928DD3E273AC89080BBA27CF2758 + 4C9C2B7B88553CA5751FA65AA0E12000B680919191A0E1C75A14FF93124C404B + C3E6EEFBB19A140B4281D42A6CC13467EF77AC96022D6024CA0290E196969AAB + B0C91D3F7E1D6BDC008101D0828BC45A803778402EC5A597681FE00A1E200087 + 355E0B6809686E0100FA3E2AAB1481BE0E0000000049454E44AE426082} + ExplicitLeft = 516 + end + end + inherited TBXDock: TTBXDock + Width = 785 + ExplicitWidth = 785 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 785 + object TBXSeparatorItem17: TTBXSeparatorItem [12] + end + end + inherited tbxFiltro: TTBXToolbar + ExplicitWidth = 359 + inherited lblAno: TTBXLabelItem + Visible = True + end + inherited cbxListaAnos: TTBXComboBoxItem + Visible = True + end + inherited sepAno: TTBXSeparatorItem + Visible = True + end + inherited tbxEditFiltro: TTBXEditItem + EditOptions = [tboUseEditWhenVertical] + end + inherited TBXItem37: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 785 + object TBXSubmenuItem2: TTBXSubmenuItem [4] + Caption = 'A&cciones' + object TBXItem38: TTBXItem + Action = actVolcarDisco + end + end + end + inherited TBXTMain2: TTBXToolbar + Left = 359 + ExplicitLeft = 359 + end + end + inherited StatusBar: TJvStatusBar + Top = 390 + Width = 785 + ExplicitTop = 390 + ExplicitWidth = 785 + end + inherited EditorActionList: TActionList + inherited actNuevo: TAction + ImageIndex = 24 + end + inherited actPrevisualizar: TAction + Visible = True + end + inherited actImprimir: TAction + Visible = True + end + inherited actDuplicar: TAction + Visible = False + end + object actVolcarDisco: TAction + Category = 'Acciones' + Caption = 'Volcar a disco...' + ImageIndex = 25 + OnExecute = actVolcarDiscoExecute + OnUpdate = actVolcarDiscoUpdate + end + end + inherited SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000F84944415478DA + 63FCFFFF3F03084C59BC03C2200072E33C19616C905E46640372623DF06A06AA + 6198B77413C3F99DD3194936E0DFBF7F0CD396EE62D051576128AAEB031B42B4 + 0120CDBFFFFC6398BD720F43B0A70DC3CD7B2FC0869CDB318D91A00130CDBF7F + FF6558B06E3FD80B3040D00064CDBFFF40F0AA6D47C1722083F01A804D3304FF + 63D8B2EF147E03F06906D13B0F9DC56D0058E16F540D20FC07C607CA1D387911 + BB01E991AE043583F847CF5EC16E4052881341CD207CEAE275EC06C406D813D4 + 0CC2E7AFDEC26E40848F2D41CD20B12B37EF603720D8C38AA06610C069809F8B + 39C3A63D2789C994D80D404EA6C400900100F58BBFF09BC1E25C000000004945 + 4E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001A34944415478DA9D922177E3300CC7655636C3B20596CD702C86C7E6 + B141C342EF1BE42318167AECD81916BA6CD0638582852A0BCBA46CCDDAF46E77 + EFF4E2A7D8F2FF2759B6724FD9354BF30B09810EF5B16C43866FACAC7DA67DD5 + E364655A15020ECEDD42AD47C839EE4AE9EC5CE492EBB2CF9DFC676BCA83772D + 6C133CEFE14D395F066B0C032AA4346AD5B9905D20C49BD255350196D4BEF40D + C48A47657F44073D05CEDC9AFBF0585F63B61D1379AF7BF2B702C67D8509B0F6 + 4329E52D1DE8CE2CF557B6B93144CAF13C04767702CCED62B12433587FB99141 + 4E1C03C2B70011B72EC02E479843CEAD6E60D04BEED9C1825B47A54E6273CF15 + F73CE9095226D00B891000FB66C1733E2F71CCACCC08EA36043165755141D334 + 2CE6EEAFE429F0552F3468CD5E370CE05842F04E4FE2DFF6A05979CE04633524 + 15F08707024484E0F9EA36C880ACAE7A70DE87931D7B0190BCD0B1326F11E256 + 20FF0098C454D92324167A5320163B95FF47C0518EC02219F4E9D3AB01C780F4 + 3780910A46D167763E3FF508B95A59BA105F037E76038EC28FE6C9B58DCDEC3F + E273F115E07FEC1D6B02010E884AA1F00000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000011A4944415478DA + 63FCFFFF3F032580916203966D3945B60991DEA68C6003D4BD9919269F4CC6AA + E8F7DFBF0CDFFFFC61F8F6FB37C3C71F3FC0ECB9FE5B19523CE6309CDB310D61 + 0008C00C996B760EC3209B6D7270CD208062C02E9134B8429866E6534C1081AB + 0C0C7F13FF81999A6B4519BE035D02728DDCB204220CB80A118319A0B04200AC + 19843556A762370024B9DCFA328617903583BC62B83E13350C40FE074B421581 + 70EF05569C31907DD8036140F7E4F9180AA6DAEE60B04CAE6660905064F8717C + 2AC3F97DE719E6EE7BCE30A5C50BCE9EB3F73B23232E1B8EB528861E7CADB6EA + CEE58358E5939D24C32CABEFADC667C07F8A5D00A456811452D505208D5635F7 + 5783D480F211C92E98BBEF075C0FD8004A73230074DEE0E1BE54FBD500000000 + 49454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001D24944415478DA + 635CBBFBE27F062C20D8559F1145C0600644DD850C1471469001412E7A286AD7 + EDB9846A08507365811743FB846DC41BD0D23303CC3EFF529F61E19464861B77 + 9E332C597190E1C7CFBF175FBFFFE10D34E8298601F7AD2419148F3D67F8FEF3 + 37C3F71FBF19841D16C335C380181F0B4365E7D62F4083344086C00D0069E6B4 + F26638B66E2E83C3F9AF0CDF7EFC62F08BAF02BBC0D74D9741474B96E1CAB5C7 + 60FACFE7370C0BD75FDEFA6A5FBC0FD800C33A77B06686FBFBC0B61C3B7F9F41 + 67FF2B8688F47A86F33BA73382C20064C8E65D97E186C1C2036C809FA30EC326 + 5566062B4345B8E66FDF7F312415B4420C408A85CF471354A21ACFDE3976F216 + C3DB838910035C2DD5C14E3E6ACAC7A0BEEB39C357A0E6DFBFFF32E4567533D4 + 94646044F1C92B1F19A6AEBAC5F0F5780AC4006BA0CDA0400369046190ED2050 + 54D70736003D96E6AC3DC35033E33AC3CB3D7110036051860DC00DF8788EE1FE + 726306C5C8B30CEB4EB3C0A39991810080C5D2EF358C0CAC16F10CF7B72C64E0 + 8F44C412710698FE81D86E0F8CA8830C6057DCFA200B8E25A20C30BCA3CFA0E8 + 130F8C82850CEFDF31307CB80CF491C313702C116580C8697D0C7166F77BE058 + 22CA007CB1449401F862090078951B407104A20F0000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001684944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0EC8B200D9F0BF50FCE7DF3F8623E71F307CFDF695E1EDDBB76075F396 + 6E22DD025C86A3B337EF3D45BA05C41AFE0F18275B0F9C26CD02520C07A9DB71 + E80CF116906A3848DD9EA3E788B3801CC341FCFD272E10B60096C6C106FCFF4F + B4E1207CE8F425FC1644789AC20DC7662818FFFB8FD311C7CE5EC16F41A89B09 + 4986A3AB3B7DF13A7E0B829C8DC8361C449FBB7213BF057E8E06641B0EC217AF + DFC66F81B79D1ED98683D45DB97907BF051ED63A641B0E02042D70B1D422DB70 + A22CB03755C799C6B1E50964C389B2C0C648155C225202F05A80ADF22007C02C + 0000E2A9A9FE0847986E0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003034944415478DA + ADD46F4813611C07F0EF392446538B289908A6537314FE4926362B933433536C + 1619F52202A1DEF8C250DF0596BD890489CC28EA456064E6D49588A583569BF8 + 27752ACE7F399550D3B09C9BD23677DD5DDD799BCBCCF983C1EE9EBBEFE7F9F1 + DCF31035EFF424D6A9EC9428021E1441038AE448B783CAE65E94DC7D88EEA68A + 4D23FF040E458720FD52E15F11694E9DD9F0224BF45F80328480628CE43A60CB + 15397051B564B5DA85C3D50A62C380512E86509E0E9DF2094E196CB0DAECD46F + 05272E1438017478464AB4B04AD58E31E5D98D016C388C6AE65AD76D4442BB09 + D58D5A3CAD5471001B1E112AC6B36AAD616CE29B3F4992361F91B0746864BADE + DA9E3BBC06700D678B46A68A1B39801FCEAF51E31C6A1A3E59C627E7066DB695 + F3B68EDCCF1C107323D56D381F2909BF06EBAE93665954B0282941CA8DD9571C + 004960D1628379C98EAA5A5D7DBF61E2384922103D57179C3B100BDD86F33B08 + CAA8215393A48E84B8302F7ABCB85485A3F15248820360595E81D962EFB9FFA8 + 76861A7A4301E50C9091B89F59C8D9E42027840E0F69F8828F9D7D4E6B4023FB + C2F62C9F498B1516DDAAC64E3FD1A240E0253A228F2604DEDBF0AA565D643299 + 6514708E0152E511DCD7B29419CE206CF84FEA7E87DEE004B088404058A6BFFE + D8BEDC7A85F0963D9644848B151249C49DE1D1C9DB0303C3E91410C30049B250 + 269C45F4C77673E1D4770EBD618403F8474BFEBD51CCCC7EC7F31219D77561B9 + 11FE01C1953A5D6B3605089917E22383A06C6AC57AC507F8FB666FA612E32A05 + 777DBD4C8BD71FE6313236050A209817F8BB75BD7207B856C5CB0E1494F5530B + 6EFD0D6C2899576E81852EC0EF201C0E1275EA3EDC2C7F0BFDB80F62FCF5F01C + A0C307F3A0516B1197BF7AB49CCE6B8275AE790B80B6C380AF96F93BD402ECC8 + 3131487D731BB36E9E017F66CF029A3A20F8F23CD341E3FBCE2D0078B3678BEE + C2913683165DB78780CBECD9A2BBF0CD5ADDFD9B02E8A3C5BB2B714D381FE90D + 6CF4A003991D9A07B1EB3EE711401F2D952ACD3F9FDD34B0D19D4FD72F7A80FE + E871245F980000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end> + Bitmap = {} + end + inherited GridPopupMenu: TPopupMenu + object N4: TMenuItem [8] + Caption = '-' + end + object Volcaradisco1: TMenuItem [9] + Action = actVolcarDisco + end + end + object JsListaRemesasNoEliminadas: TJSDialog + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Las siguientes remesas no han podido ser eliminadas' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + ButtonBar.Buttons = [cbOK] + ButtonBar.Cancel = cbOK + ButtonBar.UseCancel = False + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 184 + Top = 112 + end + object JsPrevisualizarDialog: TJSDialog + Content.Strings = ( + 'Elija una opci'#243'n:') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Previsualizar...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Previsualizar la remesa/s seleccionada/s' + Value = 100 + Default = True + end + item + Caption = 'Previsualizar la lista de remesas actual' + Value = 200 + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 296 + Top = 144 + end + object JsImprimirDialog: TJSDialog + Content.Strings = ( + 'Elija una opci'#243'n:') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Imprimir...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Imprimir la remesa/s seleccionada/s' + Value = 100 + Default = True + end + item + Caption = 'Imprimir la lista de remesas actual' + Value = 200 + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 328 + Top = 144 + end +end diff --git a/Source/Modulos/Remesas de cliente/Views/uEditorRemesasCliente.pas b/Source/Modulos/Remesas de cliente/Views/uEditorRemesasCliente.pas new file mode 100644 index 0000000..135f476 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Views/uEditorRemesasCliente.pas @@ -0,0 +1,339 @@ +unit uEditorRemesasCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorBase, ToolWin, ComCtrls, JvExControls, JvComponent, + JvNavigationPane, uViewRemesasCliente, uBizRemesasCliente, ActnList, DBActns, uViewGrid, + Menus, uDataModuleBase, ImgList, PngImageList, TB2Dock, TB2Toolbar, TBX, + TB2Item, StdActns, TB2ExtItems, TBXExtItems, TB2MRU, DB, uDADataTable, + JvFormAutoSize, uDAScriptingProvider, uDACDSDataTable, JvAppStorage, + JvAppRegistryStorage, JvFormPlacement, ExtCtrls, uCustomView, uViewBase, + uViewBarraSeleccion, pngimage, uIEditorRemesasCliente, uEditorGridBase, + JvComponentBase, uViewGridBase, uRemesasClienteController, JvExComCtrls, + JvStatusBar, JSDialog, uDAInterfaces; + +type + TfEditorRemesasCliente = class(TfEditorGridBase, IEditorRemesasCliente) + actVolcarDisco: TAction; + TBXSeparatorItem17: TTBXSeparatorItem; + N4: TMenuItem; + Volcaradisco1: TMenuItem; + TBXSubmenuItem2: TTBXSubmenuItem; + TBXItem38: TTBXItem; + JsListaRemesasNoEliminadas: TJSDialog; + JsPrevisualizarDialog: TJSDialog; + JsImprimirDialog: TJSDialog; + procedure FormShow(Sender: TObject); + procedure actVolcarDiscoExecute(Sender: TObject); + procedure actVolcarDiscoUpdate(Sender: TObject); + procedure OnListaAnosChange(Sender: TObject; const Text: string); + + private + FRemesasCliente: IBizRemesaCliente; + FController : IRemesasClienteController; + + protected + function GetRemesasCliente: IBizRemesaCliente; + procedure SetRemesasCliente(const Value: IBizRemesaCliente); + + function GetController : IRemesasClienteController; virtual; + procedure SetController (const Value : IRemesasClienteController); virtual; + + procedure NuevoInterno; override; + procedure EliminarInterno; override; + procedure ModificarInterno; override; + procedure PrevisualizarInterno; override; + procedure ImprimirInterno; override; + procedure RefrescarInterno; override; + + //Si queremos crear otra vista para el editor heredado solo tendriamos que + //sobreescribir este metodo + procedure AsignarVista; virtual; + + public + procedure PonerTitulos(const ATitulo: string = ''); override; + property RemesasCliente: IBizRemesaCliente read GetRemesasCliente write SetRemesasCliente; + property Controller : IRemesasClienteController read GetController write SetController; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +uses + uCustomEditor, uDataModuleRemesasCliente, uDataModuleUsuarios, + uGridStatusUtils, uDBSelectionListUtils, uFactuGES_App, + uEditorDBBase, uBizFamilias, uFamiliasController, +// uBancaElectronicaController, + cxGrid, cxGridCustomTableView; //, uListaRemesasCliente; + +{$R *.dfm} + +{ +****************************** TfEditorRemesasCliente ******************************* +} +procedure TfEditorRemesasCliente.FormShow(Sender: TObject); +begin + cbxListaAnos.OnChange := OnListaAnosChange; //OJO SIEMPRE ANTES DEL INHERITED + + inherited; + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(RemesasCliente) then + raise Exception.Create('No hay ningn RemesaCliente asignado'); + + RemesasCliente.DataTable.Active := True; + ViewGrid.GotoFirst; +end; + +function TfEditorRemesasCliente.GetRemesasCliente: IBizRemesaCliente; +begin + Result := FRemesasCliente; +end; + +procedure TfEditorRemesasCliente.ImprimirInterno; +var + Respuesta : Integer; + ARemesasCliente: IBizRemesaCliente; + AllItems: Boolean; +begin + ARemesasCliente := Nil; + AllItems := False; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + //Si esta agrupado solo podr imprimir la lista de elementos visibles + if not ViewGrid.esSeleccionCeldaDatos then + inherited + else + begin + Respuesta := JsImprimirDialog.Execute; + if Respuesta <> IDCANCEL then + begin + case JsImprimirDialog.CustomButtonResult of + 200 : begin // Lista de elementos visibles + inherited; + end; + 100 : begin // Elemento Seleccionado + if AllItems then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (RemesasCliente as ISeleccionable).SelectedRecords); + ARemesasCliente := (Controller as IRemesasClienteController).ExtraerSeleccionados(RemesasCliente) as IBizRemesaCliente; + end + else + ARemesasCliente := RemesasCliente; + + if Assigned(ARemesasCliente) then + FController.Print(ARemesasCliente, AllItems); + end; + end; + end; + end; +end; + +function TfEditorRemesasCliente.GetController: IRemesasClienteController; +begin + Result := FController; +end; + +procedure TfEditorRemesasCliente.ModificarInterno; +begin + inherited; + FController.Ver(RemesasCliente); +end; + +procedure TfEditorRemesasCliente.NuevoInterno; +begin + inherited; + FController.Anadir(RemesasCliente); + FController.Ver(RemesasCliente); +end; + +procedure TfEditorRemesasCliente.OnListaAnosChange(Sender: TObject; const Text: string); +begin + Controller.FiltrarAno(RemesasCliente, DynWhereDataTable, Text); + if RemesasCliente.DataTable.Active then + RefrescarInterno; +end; + +procedure TfEditorRemesasCliente.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := 'Lista de remesas de cobro - ' + AppFactuGES.EmpresaActiva.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorRemesasCliente.PrevisualizarInterno; +var + Respuesta : Integer; + ARemesasCliente: IBizRemesaCliente; + AllItems: Boolean; +begin + ARemesasCliente := Nil; + AllItems := False; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + //Si esta agrupado solo podr imprimir la lista de elementos visibles + if not ViewGrid.esSeleccionCeldaDatos then + inherited + else + begin + Respuesta := JsPrevisualizarDialog.Execute; + if Respuesta <> IDCANCEL then + begin + case JsPrevisualizarDialog.CustomButtonResult of + 200 : begin // Lista de elementos visibles + inherited; + end; + 100 : begin // Elemento Seleccionado + if AllItems then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (RemesasCliente as ISeleccionable).SelectedRecords); + ARemesasCliente := (Controller as IRemesasClienteController).ExtraerSeleccionados(RemesasCliente) as IBizRemesaCliente; + end + else + ARemesasCliente := RemesasCliente; + + if Assigned(ARemesasCliente) then + FController.Preview(ARemesasCliente, AllItems); + end; + end; + end; + end; +end; + +procedure TfEditorRemesasCliente.RefrescarInterno; +begin + //Volvemos a cargar los aos de las remesas + if Assigned(FController) then + ListaAnos := FController.DarListaAnosRemesas; + + inherited; +end; + +procedure TfEditorRemesasCliente.SetRemesasCliente(const Value: IBizRemesaCliente); +begin + FRemesasCliente := Value; + + if Assigned(FRemesasCliente) then + begin + //Se guarda el where de la sentencia origen, por si el editor tiene filtros que + //afecten a este where y en un futuro se desea volver al where origen (filtro de ao)) + DynWhereDataTable := FRemesasCliente.DataTable.DynamicWhere.Xml; + + dsDataTable.DataTable := FRemesasCliente.DataTable; + if Assigned(ViewGrid) then + (ViewGrid as IViewRemesasCliente).RemesasCliente := RemesasCliente; + end; +end; + +procedure TfEditorRemesasCliente.SetController(const Value: IRemesasClienteController); +begin + FController := Value; + + if Assigned(FController) then + ListaAnos := FController.DarListaAnosRemesas; +end; + +destructor TfEditorRemesasCliente.Destroy; +begin + FRemesasCliente := NIL; + FController := NIl; + inherited; +end; + +procedure TfEditorRemesasCliente.EliminarInterno; +var + ARemesas: IBizRemesaCliente; + AllItems: Boolean; +begin + ARemesas := Nil; + AllItems := False; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + if AllItems then + begin + if (Application.MessageBox('Desea borrar las remesas de cobro seleccionadas?', 'Atencin', MB_YESNO) = IDYES) then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (RemesasCliente as ISeleccionable).SelectedRecords); + ARemesas := (Controller as IRemesasClienteController).ExtraerSeleccionados(RemesasCliente) as IBizRemesaCliente; + end + end + else begin + if (Application.MessageBox('Desea borrar esta remesa de cobro?', 'Atencin', MB_YESNO) = IDYES) then + ARemesas := RemesasCliente; + end; + + if Assigned(ARemesas) then + begin + FController.Eliminar(ARemesas, AllItems); + if AllItems then + begin + if (ARemesas.DataTable.RecordCount > 0) then + begin + with ARemesas.DataTable do + begin + First; + while not EOF do + begin + JsListaRemesasNoEliminadas.Content.Add('Ref. remesa: ' + ARemesas.REFERENCIA + ' ' + ARemesas.NOMBRE); + Next; + end; + end; + JsListaRemesasNoEliminadas.Execute; + end; + end; + end; + + actRefrescar.Execute; + ViewGrid.GotoFirst; +end; + +procedure TfEditorRemesasCliente.actVolcarDiscoExecute(Sender: TObject); +//var +// ABancaController : IBancaElectronicaController; +begin +{ inherited; + ABancaController := TBancaElectronicaController.Create; + try + ABancaController.GenerarFicheroNorma19(FRemesasCliente.ID); + finally + ABancaController := NIL; + end; +} +end; + +procedure TfEditorRemesasCliente.actVolcarDiscoUpdate(Sender: TObject); +begin + inherited; + if HayDatos and Assigned(ViewGrid) then + (Sender as TAction).Enabled := not (dsDataTable.DataTable.State in dsEditModes) + and not ViewGrid.IsEmpty + else + (Sender as TAction).Enabled := False; +end; + +procedure TfEditorRemesasCliente.AsignarVista; +begin + ViewGrid := CreateView(TfrViewRemesasCliente) as IViewRemesasCliente; +end; + +constructor TfEditorRemesasCliente.Create(AOwner: TComponent); +begin + inherited; + AsignarVista; +end; + +end. + + \ No newline at end of file diff --git a/Source/Modulos/Remesas de cliente/Views/uRemesasClienteViewRegister.dcu b/Source/Modulos/Remesas de cliente/Views/uRemesasClienteViewRegister.dcu new file mode 100644 index 0000000..c88e1b1 Binary files /dev/null and b/Source/Modulos/Remesas de cliente/Views/uRemesasClienteViewRegister.dcu differ diff --git a/Source/Modulos/Remesas de cliente/Views/uRemesasClienteViewRegister.pas b/Source/Modulos/Remesas de cliente/Views/uRemesasClienteViewRegister.pas new file mode 100644 index 0000000..029197c --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Views/uRemesasClienteViewRegister.pas @@ -0,0 +1,27 @@ +unit uRemesasClienteViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorRemesasCliente, uEditorRemesaCliente, uEditorRemesaClienteReport; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorRemesaCliente, 'EditorRemesaCliente'); + EditorRegistry.RegisterClass(TfEditorRemesasCliente, 'EditorRemesasCliente'); + EditorRegistry.RegisterClass(TfEditorRemesaClientePreview, 'EditorRemesasClientePreview'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorRemesaCliente); + EditorRegistry.UnRegisterClass(TfEditorRemesasCliente); + EditorRegistry.UnRegisterClass(TfEditorRemesaClientePreview); +end; + +end. diff --git a/Source/Modulos/Remesas de cliente/Views/uViewRecibosRemesaCliente.dcu b/Source/Modulos/Remesas de cliente/Views/uViewRecibosRemesaCliente.dcu new file mode 100644 index 0000000..3d3aee7 Binary files /dev/null and b/Source/Modulos/Remesas de cliente/Views/uViewRecibosRemesaCliente.dcu differ diff --git a/Source/Modulos/Remesas de cliente/Views/uViewRecibosRemesaCliente.dfm b/Source/Modulos/Remesas de cliente/Views/uViewRecibosRemesaCliente.dfm new file mode 100644 index 0000000..9c59b2d --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Views/uViewRecibosRemesaCliente.dfm @@ -0,0 +1,161 @@ +inherited frViewRecibosRemesaCliente: TfrViewRecibosRemesaCliente + Width = 549 + Height = 376 + OnShow = CustomViewShow + ExplicitWidth = 549 + ExplicitHeight = 376 + inherited cxGrid: TcxGrid + Width = 549 + Height = 351 + ExplicitWidth = 549 + ExplicitHeight = 351 + inherited cxGridView: TcxGridDBTableView + OptionsCustomize.ColumnSorting = True + OptionsData.Appending = False + OptionsData.CancelOnExit = True + OptionsData.Deleting = False + OptionsData.Editing = False + OptionsData.Inserting = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + object cxGridViewREFERENCIA: TcxGridDBColumn + Caption = 'Referencia' + DataBinding.FieldName = 'REFERENCIA' + Width = 72 + end + object cxGridViewSITUACION: TcxGridDBColumn + Caption = 'Situaci'#243'n' + DataBinding.FieldName = 'SITUACION' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Items = < + item + Description = 'Pendiente' + Value = 'PENDIENTE' + end + item + Description = 'Cobrado' + ImageIndex = 0 + Value = 'COBRADO' + end + item + Description = 'Devuelto' + ImageIndex = 1 + Value = 'DEVUELTO' + end> + Width = 65 + end + object cxGridViewID_FACTURA: TcxGridDBColumn + DataBinding.FieldName = 'ID_FACTURA' + Visible = False + end + object cxGridViewFECHA_VENCIMIENTO: TcxGridDBColumn + Caption = 'Fecha vencimiento' + DataBinding.FieldName = 'FECHA_VENCIMIENTO' + Width = 78 + end + object cxGridViewDESCRIPCION: TcxGridDBColumn + DataBinding.FieldName = 'DESCRIPCION' + Visible = False + end + object cxGridViewOBSERVACIONES: TcxGridDBColumn + DataBinding.FieldName = 'OBSERVACIONES' + Visible = False + end + object cxGridViewNOMBRE_CLIENTE: TcxGridDBColumn + Caption = 'Cliente' + DataBinding.FieldName = 'NOMBRE_CLIENTE' + Width = 205 + end + object cxGridViewIMPORTE: TcxGridDBColumn + Caption = 'Importe' + DataBinding.FieldName = 'IMPORTE' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + Width = 115 + end + object cxGridViewOTROS_GASTOS: TcxGridDBColumn + Caption = 'Otros gastos' + DataBinding.FieldName = 'OTROS_GASTOS' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + end + object cxGridViewIMPORTE_TOTAL: TcxGridDBColumn + Caption = 'Importe total' + DataBinding.FieldName = 'IMPORTE_TOTAL' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + end + object cxGridViewFECHA_FACTURA: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_FACTURA' + Visible = False + end + object cxGridViewFORMA_PAGO_FACTURA: TcxGridDBColumn + DataBinding.FieldName = 'FORMA_PAGO_FACTURA' + Visible = False + end + object cxGridViewIMPORTE_FACTURA: TcxGridDBColumn + DataBinding.FieldName = 'IMPORTE_FACTURA' + Visible = False + end + object cxGridViewNIF_CIF_CLIENTE: TcxGridDBColumn + DataBinding.FieldName = 'NIF_CIF_CLIENTE' + Visible = False + end + object cxGridViewENTIDAD_CLIENTE: TcxGridDBColumn + DataBinding.FieldName = 'ENTIDAD_CLIENTE' + Visible = False + end + object cxGridViewSUCURSAL_CLIENTE: TcxGridDBColumn + DataBinding.FieldName = 'SUCURSAL_CLIENTE' + Visible = False + end + object cxGridViewDC_CLIENTE: TcxGridDBColumn + DataBinding.FieldName = 'DC_CLIENTE' + Visible = False + end + object cxGridViewCUENTA_CLIENTE: TcxGridDBColumn + DataBinding.FieldName = 'CUENTA_CLIENTE' + Visible = False + end + object cxGridViewID_EMPRESA: TcxGridDBColumn + DataBinding.FieldName = 'ID_EMPRESA' + Visible = False + end + object cxGridViewFECHA_ALTA: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_ALTA' + Visible = False + end + object cxGridViewFECHA_MODIFICACION: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_MODIFICACION' + Visible = False + end + object cxGridViewUSUARIO: TcxGridDBColumn + DataBinding.FieldName = 'USUARIO' + Visible = False + end + end + end + inherited ToolBar1: TToolBar + Width = 549 + ExplicitWidth = 549 + inherited ToolButton1: TToolButton + ExplicitWidth = 62 + end + inherited ToolButton4: TToolButton + ExplicitWidth = 74 + end + inherited ToolButton2: TToolButton + ExplicitWidth = 67 + end + inherited ToolButton7: TToolButton + ExplicitWidth = 117 + end + end + inherited ActionListContenido: TActionList + inherited actModificar: TAction + Enabled = False + Visible = False + end + end +end diff --git a/Source/Modulos/Remesas de cliente/Views/uViewRecibosRemesaCliente.pas b/Source/Modulos/Remesas de cliente/Views/uViewRecibosRemesaCliente.pas new file mode 100644 index 0000000..ac52267 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Views/uViewRecibosRemesaCliente.pas @@ -0,0 +1,146 @@ +unit uViewRecibosRemesaCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewDetallesGenerico, cxStyles, cxCustomData, cxGraphics, cxFilter, + cxData, cxDataStorage, cxEdit, DB, cxDBData, ActnList, ImgList, PngImageList, + uDADataTable, ComCtrls, ToolWin, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, + cxGrid, cxImageComboBox, cxCurrencyEdit, + uBizRemesasCliente, uRemesasClienteController, uDAInterfaces; + +type + IViewRecibosRemesaCliente = interface + ['{5342D4B0-4BE0-4123-9515-D8ADC9058243}'] + function GetRemesaCliente: IBizRemesaCliente; + procedure SetRemesaCliente(const Value: IBizRemesaCliente); + property RemesaCliente: IBizRemesaCliente read GetRemesaCliente write SetRemesaCliente; + + function GetController : IRemesasClienteController; + procedure SetController (const Value : IRemesasClienteController); + property Controller : IRemesasClienteController read GetController write SetController; + end; + + TfrViewRecibosRemesaCliente = class(TfrViewDetallesGenerico, IViewRecibosRemesaCliente) + cxGridViewIMPORTE: TcxGridDBColumn; + cxGridViewOTROS_GASTOS: TcxGridDBColumn; + cxGridViewIMPORTE_TOTAL: TcxGridDBColumn; + procedure CustomViewShow(Sender: TObject); + protected + FHayCambios : Boolean; + FRemesa : IBizRemesaCliente; + FController : IRemesasClienteController; + FListaRecibosIniciales: TStringList; + + procedure AnadirInterno; override; + procedure EliminarInterno; override; + + function GetRemesaCliente: IBizRemesaCliente; + procedure SetRemesaCliente(const Value: IBizRemesaCliente); + + function GetModified: Boolean; override; + procedure SetModified(const Value: Boolean); override; + + function GetController : IRemesasClienteController; + procedure SetController (const Value : IRemesasClienteController); + + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + property RemesaCliente: IBizRemesaCliente read GetRemesaCliente write SetRemesaCliente; + property Controller : IRemesasClienteController read GetController write SetController; + end; + + +implementation + +{$R *.dfm} + +uses + uBizRecibosCliente, uCustomView; + +{ TfrViewRecibosRemesaCliente } + +procedure TfrViewRecibosRemesaCliente.AnadirInterno; +begin + //inherited; // No hacer el comportamiento normal + if FController.ElegirRecibosCliente(RemesaCliente, FListaRecibosIniciales) then + begin + Modified := True; + end; +end; + +constructor TfrViewRecibosRemesaCliente.Create(AOwner: TComponent); +begin + inherited; + FHayCambios := False; + FListaRecibosIniciales := TStringList.Create; +end; + +procedure TfrViewRecibosRemesaCliente.CustomViewShow(Sender: TObject); +begin + inherited; + + FRemesa.Recibos.DataTable.First; + while not FRemesa.Recibos.DataTable.eof do + begin + FListaRecibosIniciales.Add(IntToStr(FRemesa.Recibos.ID)); + FRemesa.Recibos.DataTable.next; + end; + FRemesa.Recibos.DataTable.First; +end; + +destructor TfrViewRecibosRemesaCliente.Destroy; +begin + FListaRecibosIniciales.Free; + inherited; +end; + +procedure TfrViewRecibosRemesaCliente.EliminarInterno; +begin + //inherited; // No hacer el comportamiento normal + FController.EliminarReciboCliente(RemesaCliente); + Modified := True; +end; + +function TfrViewRecibosRemesaCliente.GetController: IRemesasClienteController; +begin + Result := FController; +end; + +function TfrViewRecibosRemesaCliente.GetModified: Boolean; +begin + Result := FHayCambios or inherited GetModified; +end; + +function TfrViewRecibosRemesaCliente.GetRemesaCliente: IBizRemesaCliente; +begin + Result := FRemesa; +end; + +procedure TfrViewRecibosRemesaCliente.SetController( + const Value: IRemesasClienteController); +begin + FController := Value; +end; + +procedure TfrViewRecibosRemesaCliente.SetModified(const Value: Boolean); +begin + FHayCambios := Value; + inherited; +end; + +procedure TfrViewRecibosRemesaCliente.SetRemesaCliente( + const Value: IBizRemesaCliente); +begin + FRemesa := Value; + FHayCambios := False; + if Assigned(FRemesa) then + dsDetalles.DataTable := FRemesa.Recibos.DataTable + else + dsDetalles.DataTable := NIL; +end; + +end. diff --git a/Source/Modulos/Remesas de cliente/Views/uViewRecibosRemesaCliente_2.dfm b/Source/Modulos/Remesas de cliente/Views/uViewRecibosRemesaCliente_2.dfm new file mode 100644 index 0000000..1127285 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Views/uViewRecibosRemesaCliente_2.dfm @@ -0,0 +1,268 @@ +inherited frViewRecibosRemesaCliente2: TfrViewRecibosRemesaCliente2 + Width = 531 + Height = 339 + ExplicitWidth = 531 + ExplicitHeight = 339 + inherited cxGrid: TcxGrid + Top = 131 + Width = 531 + Height = 182 + ExplicitTop = 131 + ExplicitWidth = 531 + ExplicitHeight = 182 + inherited cxGridView: TcxGridDBTableView + DataController.KeyFieldNames = 'ID' + DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding] + OptionsView.Footer = False + object cxGridViewRecID: TcxGridDBColumn + DataBinding.FieldName = 'RecID' + Visible = False + end + object cxGridViewID: TcxGridDBColumn + DataBinding.FieldName = 'ID' + Visible = False + end + object cxGridViewREFERENCIA: TcxGridDBColumn + Caption = 'Referencia' + DataBinding.FieldName = 'REFERENCIA' + end + object cxGridViewSITUACION: TcxGridDBColumn + Caption = 'Situaci'#243'n' + DataBinding.FieldName = 'SITUACION' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Images = PngImageList + Properties.Items = < + item + Description = 'Pendiente' + Value = 'PENDIENTE' + end + item + Description = 'Cobrado' + ImageIndex = 0 + Value = 'COBRADO' + end + item + Description = 'Devuelto' + ImageIndex = 1 + Value = 'DEVUELTO' + end> + end + object cxGridViewID_FACTURA: TcxGridDBColumn + DataBinding.FieldName = 'ID_FACTURA' + Visible = False + end + object cxGridViewFECHA_VENCIMIENTO: TcxGridDBColumn + Caption = 'Fecha vencimiento' + DataBinding.FieldName = 'FECHA_VENCIMIENTO' + end + object cxGridViewDESCRIPCION: TcxGridDBColumn + DataBinding.FieldName = 'DESCRIPCION' + Visible = False + end + object cxGridViewOBSERVACIONES: TcxGridDBColumn + DataBinding.FieldName = 'OBSERVACIONES' + Visible = False + end + object cxGridViewNOMBRE_CLIENTE: TcxGridDBColumn + Caption = 'Cliente' + DataBinding.FieldName = 'NOMBRE_CLIENTE' + end + object cxGridViewIMPORTE: TcxGridDBColumn + Caption = 'Importe' + DataBinding.FieldName = 'IMPORTE' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewFECHA_FACTURA: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_FACTURA' + Visible = False + end + object cxGridViewFORMA_PAGO_FACTURA: TcxGridDBColumn + DataBinding.FieldName = 'FORMA_PAGO_FACTURA' + Visible = False + end + object cxGridViewIMPORTE_FACTURA: TcxGridDBColumn + DataBinding.FieldName = 'IMPORTE_FACTURA' + Visible = False + end + object cxGridViewNIF_CIF_CLIENTE: TcxGridDBColumn + DataBinding.FieldName = 'NIF_CIF_CLIENTE' + Visible = False + end + object cxGridViewENTIDAD_CLIENTE: TcxGridDBColumn + DataBinding.FieldName = 'ENTIDAD_CLIENTE' + Visible = False + end + object cxGridViewSUCURSAL_CLIENTE: TcxGridDBColumn + DataBinding.FieldName = 'SUCURSAL_CLIENTE' + Visible = False + end + object cxGridViewDC_CLIENTE: TcxGridDBColumn + DataBinding.FieldName = 'DC_CLIENTE' + Visible = False + end + object cxGridViewCUENTA_CLIENTE: TcxGridDBColumn + DataBinding.FieldName = 'CUENTA_CLIENTE' + Visible = False + end + object cxGridViewID_EMPRESA: TcxGridDBColumn + DataBinding.FieldName = 'ID_EMPRESA' + Visible = False + end + object cxGridViewFECHA_ALTA: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_ALTA' + Visible = False + end + object cxGridViewFECHA_MODIFICACION: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_MODIFICACION' + Visible = False + end + object cxGridViewUSUARIO: TcxGridDBColumn + DataBinding.FieldName = 'USUARIO' + Visible = False + end + end + inherited cxGridLevel: TcxGridLevel + Caption = 'Todas' + end + end + object ToolBar1: TToolBar [1] + Left = 0 + Top = 0 + Width = 531 + Height = 29 + ButtonHeight = 21 + ButtonWidth = 10 + Caption = 'ToolBar1' + ShowCaptions = True + TabOrder = 3 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + end + object ToolButton2: TToolButton + Left = 10 + Top = 0 + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Top = 29 + Width = 531 + ExplicitTop = 29 + ExplicitWidth = 531 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 531 + inherited dxLayoutControl1: TdxLayoutControl + Width = 531 + ExplicitWidth = 531 + inherited edtFechaFinFiltro: TcxDateEdit + ExplicitWidth = 244 + Width = 244 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 531 + inherited tbxBotones: TTBXToolbar + Width = 521 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 313 + ExplicitTop = 313 + ExplicitWidth = 531 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 531 + end + end + inherited dsDataSource: TDADataSource + Left = 232 + Top = 128 + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 38673.741107951390000000 + BuiltInReportLink = True + end + end + inherited cxStyleRepository1: TcxStyleRepository + object cxStylePagada: TcxStyle + AssignedValues = [svTextColor] + TextColor = clNavy + end + object cxStyleAbono: TcxStyle + AssignedValues = [svTextColor] + TextColor = clMaroon + end + end + object PngImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000001DA4944415478DA + 63FCFFFF3F032580912C5DF2F33964B539E3DF7DF8F1956403380CE7C85B5929 + CFFAF99ED7FCFCED9BE124192060B7D8D6CE5279E99B876C42674FFC0CFEF9C0 + 7A27D10628FBAF0FB030915F74E7EA6FE6F387FF87FD7A6AB195E83090F55915 + EEE7A23BE7FCD9CFAC170EFF4EFDF6C07A31D18128E1BE3CC8DB597BE1A3BBBF + B98EECFA91FBFDBEF574A0F07FA20C10B09B67EBE366B8E3CDF37F9C47F77CED + FC7CD3AE125D0DC400B3897C9CCCBCEADFD9182F331C4CFC010E6DCB39F29E0E + 3A07599939E477AE7FBFFBE3CF4BBE0C77F27F621820EAB848DFDC447931372B + 9FE68E5DF7577F3C73368E414588D9C6496BB3AA92B8CBDECD9FDEBC7CF9D3F2 + E71DE7BBD85CC928EAB438C4C7556F3A0B1B8BC8B1BD9FFFDE7B753F4C41994B + C3CA48B1E5F09ECFFFEF3F7D19F3FB5AD0725CDE047B41276243A09D85FAAAA7 + CFBFB11CDEFBEA8EA79F98E4C3FBBFB8CF9F7BBDE5EB453F3FE440C31E060CF5 + 4C4ED9F63B6565845D5EBEFEF29F11287AE9C4AF2FAFBF3D32FF753EFE3ABE80 + 86C7028FF5429B101F83FDCF5F7F66797697E1FFCDDB6FA7FFBAE69F4D289A91 + A2B19EC539C7E1C49BC7EC46F71EBDD9FFF9DFD338868B994F4930808181D76E + 413EF33F56D90F0F5ED4323C29FE4E4833080000904EC47A3EA3126900000000 + 49454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000029B4944415478DA + A5936B48536118C7FFE79CB5CD332F639B9A379C683051B232CDEA835D14BB40 + A444501FACCC254811F529858811519411917D705A5041D04D30A34F82214118 + D8B0455E2A755E6665BA9DCDED6C3BDBDE76365C9A981F7AE0BDF0C2FFF7FE9F + E7E1A10821F89FA0C27B7E8B8ED526D731085A9DAFAA6EFC4B1053FAA844AA8A + 377053B64ED27BAC99C2E6FB4574667A4F5676B23C5ECE9091FE2F97B98ECA4B + CB9405B794AAEC9CAB5E307A97C3ED8383AB26BD35CF29EC7ED68AA4A45A0483 + 4852B1484D64C9A8E9EB15AEB3F2E282962D7BBC5FA651B73A5C424AC0E59E05 + 673B88BEBAB762FA14726EC7639DB60BB1B145083DC4C824D0A62790E901CB75 + FB4B53A362EF060351B08D6E978706CF4F807356C0A41F10C1118018BA3B6A68 + 33DE8065F345080D82B4940432373933E863A43AC1E3A5E0E68730E72883F9D4 + E482B33F003136B6A52251DD831879B60811530A2FF1CEF31670F3DB60AAB52E + 2ECB528018EB8D5948D6F442264D8C8A03018299D94321DBED7FD775194051FE + E49C54A36CB2715E3AEA423CBD9E09CCD977C05C3FB222407DA0FD4A467E6643 + FF472B450221A15F2010FCF39048E222109F052E5B294CA72DCB008A8AA7E775 + 25B94DC343D394D3EE167F2670380CA1DCDBC02A8CA194F685213EE11B387E17 + 3ED78D4701CCF687E559C579AF79DE2B991AFB19B1EC703EC0BBEAE351AF85F7 + 4E42B6E626683A0182300CDFFC4E98CE58C300CDD1EEC9B8B5AAB4B1C13184AD + BBDD668CFB8A6139E15952B1BCBB19A10E192161F6840A3B04DE594ACC677F50 + CAC35D2F78BFBFCAEBE211A20BB0FFDA8A0FF57D2B0E4381510F09DD0412EC20 + 7DFA6A0A9B8C25502ABBC1307270DC35BCAF69587504739B3341532CF9543F10 + E94261CB16486417F07DF4082C06CFAA80455DF80DE5433FF01720E9DB000000 + 0049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + Left = 200 + Top = 128 + Bitmap = {} + end + object ActionListRecibos: TActionList + Left = 168 + Top = 128 + object actAnadirRecibo: TAction + Caption = 'A'#241'adir recibos...' + end + object actEliminarRecibo: TAction + Caption = 'Eliminar este recibo' + end + end +end diff --git a/Source/Modulos/Remesas de cliente/Views/uViewRecibosRemesaCliente_2.pas b/Source/Modulos/Remesas de cliente/Views/uViewRecibosRemesaCliente_2.pas new file mode 100644 index 0000000..c7cc63e --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Views/uViewRecibosRemesaCliente_2.pas @@ -0,0 +1,137 @@ +unit uViewRecibosRemesaCliente_2; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewGrid, uViewPreview, cxStyles, cxCustomData, cxGraphics, + cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl, + dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, + dxPSFillPatterns, dxPSEdgePatterns, cxImageComboBox, cxTextEdit, ImgList, + PngImageList, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, ActnList, uDADataTable, + cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGrid, + cxImage, Grids, DBGrids, uBizRecibosCliente, cxGridCustomPopupMenu, + cxGridPopupMenu, cxCalendar, cxCurrencyEdit, ComCtrls, ToolWin, dxPgsDlg, + TB2Item, TBX, TB2Toolbar, TBXDkPanels, TB2Dock, uViewFiltroBase; + +type + IViewRecibosRemesaCliente2 = interface(IViewGrid) + ['{27D0229A-6340-4F03-B97A-7776E9166F2F}'] + function GetRecibos: IBizRecibosCliente; + procedure SetRecibos(const Value: IBizRecibosCliente); + property Recibos: IBizRecibosCliente read GetRecibos write SetRecibos; + end; + + TfrViewRecibosRemesaCliente2 = class(TfrViewGrid, IViewRecibosRemesaCliente2) + PngImageList: TPngImageList; + cxStylePagada: TcxStyle; + cxStyleAbono: TcxStyle; + cxGridViewRecID: TcxGridDBColumn; + cxGridViewID: TcxGridDBColumn; + cxGridViewREFERENCIA: TcxGridDBColumn; + cxGridViewSITUACION: TcxGridDBColumn; + cxGridViewID_FACTURA: TcxGridDBColumn; + cxGridViewFECHA_VENCIMIENTO: TcxGridDBColumn; + cxGridViewDESCRIPCION: TcxGridDBColumn; + cxGridViewOBSERVACIONES: TcxGridDBColumn; + cxGridViewIMPORTE: TcxGridDBColumn; + cxGridViewFECHA_FACTURA: TcxGridDBColumn; + cxGridViewFORMA_PAGO_FACTURA: TcxGridDBColumn; + cxGridViewIMPORTE_FACTURA: TcxGridDBColumn; + cxGridViewNOMBRE_CLIENTE: TcxGridDBColumn; + cxGridViewNIF_CIF_CLIENTE: TcxGridDBColumn; + cxGridViewENTIDAD_CLIENTE: TcxGridDBColumn; + cxGridViewSUCURSAL_CLIENTE: TcxGridDBColumn; + cxGridViewDC_CLIENTE: TcxGridDBColumn; + cxGridViewCUENTA_CLIENTE: TcxGridDBColumn; + cxGridViewID_EMPRESA: TcxGridDBColumn; + cxGridViewFECHA_ALTA: TcxGridDBColumn; + cxGridViewFECHA_MODIFICACION: TcxGridDBColumn; + cxGridViewUSUARIO: TcxGridDBColumn; + ToolBar1: TToolBar; + ToolButton1: TToolButton; + ToolButton2: TToolButton; + ActionListRecibos: TActionList; + actAnadirRecibo: TAction; + actEliminarRecibo: TAction; + procedure cxGridViewICONOCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; + out AStyle: TcxStyle); + protected + FNivelFiltrado : TcxFilterCriteriaItemList; + FRecibos: IBizRecibosCliente; + function GetRecibos: IBizRecibosCliente; + procedure SetRecibos(const Value: IBizRecibosCliente); + public + property Recibos: IBizRecibosCliente read GetRecibos write SetRecibos; + end; + + +implementation + +uses + uDataModuleRecibosCliente, DateUtils; + +{$R *.dfm} + +{ TfrViewRecibosCliente } + +procedure TfrViewRecibosRemesaCliente2.cxGridViewICONOCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +{var + R : TRect;} +begin + inherited; +{ + R := AViewInfo.ContentBounds; + ACanvas.FillRect(R); + if (Pos('-', AViewInfo.GridRecord.DisplayTexts[cxGridViewIMPORTE_TOTAL.Index]) > 0) then + ACanvas.DrawImage(PngImageList, R.Left, R.Top, 3) + else + ACanvas.DrawImage(PngImageList, R.Left, R.Top, 2); + ADone := True; +} +end; + +procedure TfrViewRecibosRemesaCliente2.cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +{var + IndiceCol: Integer; + ASituacion: string;} +begin + inherited; +{ + if Assigned(ARecord) then + begin + IndiceCol := cxGridViewSITUACION.Index; + ASituacion := VarToStr(ARecord.DisplayTexts[IndiceCol]); + if ASituacion = SITUACION_PAGADO then + AStyle := cxStylePagada; + + IndiceCol := cxGridViewIMPORTE_TOTAL.Index; + if (Pos('-', ARecord.DisplayTexts[IndiceCol]) > 0) then + AStyle := cxStyleAbono; + + end; +} +end; + +function TfrViewRecibosRemesaCliente2.GetRecibos: IBizRecibosCliente; +begin + Result := FRecibos; +end; + +procedure TfrViewRecibosRemesaCliente2.SetRecibos(const Value: IBizRecibosCliente); +begin + FRecibos := Value; + if Assigned(FRecibos) then + dsDataSource.DataTable := FRecibos.DataTable; +end; + +end. diff --git a/Source/Modulos/Remesas de cliente/Views/uViewRemesaCliente.dcu b/Source/Modulos/Remesas de cliente/Views/uViewRemesaCliente.dcu new file mode 100644 index 0000000..2cceca5 Binary files /dev/null and b/Source/Modulos/Remesas de cliente/Views/uViewRemesaCliente.dcu differ diff --git a/Source/Modulos/Remesas de cliente/Views/uViewRemesaCliente.dfm b/Source/Modulos/Remesas de cliente/Views/uViewRemesaCliente.dfm new file mode 100644 index 0000000..eb4d620 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Views/uViewRemesaCliente.dfm @@ -0,0 +1,242 @@ +inherited frViewRemesaCliente: TfrViewRemesaCliente + Width = 451 + Height = 304 + Align = alClient + ExplicitWidth = 451 + ExplicitHeight = 304 + object dxLayoutControlRemesaCliente: TdxLayoutControl + Left = 0 + Top = 0 + Width = 451 + Height = 304 + Align = alClient + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + LookAndFeel = dxLayoutOfficeLookAndFeel1 + DesignSize = ( + 451 + 304) + object eReferencia: TcxDBTextEdit + Left = 110 + Top = 30 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REFERENCIA' + DataBinding.DataSource = dsDataTable + Enabled = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = 14745599 + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 0 + Width = 164 + end + object eDescripcion: TcxDBTextEdit + Left = 110 + Top = 111 + DataBinding.DataField = 'DESCRIPCION' + DataBinding.DataSource = dsDataTable + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 4 + Width = 108 + end + object edtFechaRemesa: TcxDBDateEdit + Left = 311 + Top = 30 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_REMESA' + DataBinding.DataSource = dsDataTable + Properties.ImmediatePost = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 1 + Width = 170 + end + object cbCuentaBancaria: TcxDBLookupComboBox + Left = 110 + Top = 57 + DataBinding.DataField = 'ID_DATOS_BANCO' + DataBinding.DataSource = dsDataTable + Properties.ImmediatePost = True + Properties.KeyFieldNames = 'ID' + Properties.ListColumns = < + item + FieldName = 'NOMBRE' + end> + Properties.ListOptions.GridLines = glNone + Properties.ListOptions.ShowHeader = False + Properties.ListOptions.SyncMode = True + Properties.ListSource = dsDatosBanco + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 2 + Width = 39 + end + object cbTipo: TcxDBImageComboBox + Left = 110 + Top = 84 + DataBinding.DataField = 'TIPO' + DataBinding.DataSource = dsDataTable + Properties.Items = <> + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 3 + Width = 121 + end + object dxLayoutControlRemesaClienteGroup_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControlRemesaClienteGroup1: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Datos de la remesa' + object dxLayoutControlRemesaClienteGroup5: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControlRemesaClienteItem3: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Referencia:' + Control = eReferencia + ControlOptions.ShowBorder = False + end + object dxLayoutControlRemesaClienteItem4: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Fecha de cargo:' + Control = edtFechaRemesa + ControlOptions.ShowBorder = False + end + end + object dxLayoutControlRemesaClienteGroup2: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControlRemesaClienteItem9: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Cuenta bancaria:' + Control = cbCuentaBancaria + ControlOptions.ShowBorder = False + end + object dxLayoutControlRemesaClienteItem1: TdxLayoutItem + Caption = 'Forma de cobro:' + Control = cbTipo + ControlOptions.ShowBorder = False + end + object dxLayoutControlRemesaClienteItem8: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Descripci'#243'n:' + Control = eDescripcion + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControlRemesaClienteGroup3: TdxLayoutGroup + Caption = 'New Group' + ShowCaption = False + LayoutDirection = ldHorizontal + ShowBorder = False + end + end + end + object dsDataTable: TDADataSource + Left = 8 + Top = 8 + end + object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList + Left = 40 + Top = 8 + object dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel + GroupOptions.CaptionOptions.Font.Charset = DEFAULT_CHARSET + GroupOptions.CaptionOptions.Font.Color = clWindowText + GroupOptions.CaptionOptions.Font.Height = -11 + GroupOptions.CaptionOptions.Font.Name = 'Tahoma' + GroupOptions.CaptionOptions.Font.Style = [fsBold] + GroupOptions.CaptionOptions.TextColor = clHighlight + GroupOptions.CaptionOptions.UseDefaultFont = False + end + end + object dsDatosBanco: TDADataSource + Left = 8 + Top = 40 + end +end diff --git a/Source/Modulos/Remesas de cliente/Views/uViewRemesaCliente.pas b/Source/Modulos/Remesas de cliente/Views/uViewRemesaCliente.pas new file mode 100644 index 0000000..9b2c275 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Views/uViewRemesaCliente.pas @@ -0,0 +1,140 @@ +unit uViewRemesaCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, ExtCtrls, StdCtrls, Buttons, DB, uDADataTable, + DBCtrls, Grids, DBGrids, Mask, ComCtrls, uCustomView, JvComponent, + JvFormAutoSize, cxControls, cxContainer, cxEdit, cxTextEdit, + cxDBEdit, dxLayoutControl, cxCheckBox, PngSpeedButton, cxImage, ActnList, + ImgList, PngImageList, cxGraphics, cxMaskEdit, cxDropDownEdit, + uFamiliasController, cxSpinEdit, cxCurrencyEdit, + uBizRemesasCliente, uRemesasClienteController, cxCalendar, + dxLayoutLookAndFeels, cxLookupEdit, cxDBLookupEdit, cxDBLookupComboBox, + cxImageComboBox, uDAInterfaces; + +type + IViewRemesaCliente = interface(IViewBase) + ['{7F5C4A4F-DD34-4E6E-A053-7528E62D1D64}'] + function GetRemesaCliente: IBizRemesaCliente; + procedure SetRemesaCliente(const Value: IBizRemesaCliente); + property RemesaCliente: IBizRemesaCliente read GetRemesaCliente write SetRemesaCliente; + + function GetController : IRemesasClienteController; + procedure SetController (const Value : IRemesasClienteController); + property Controller : IRemesasClienteController read GetController write SetController; + end; + + TfrViewRemesaCliente = class(TfrViewBase, IViewRemesaCliente) + dsDataTable: TDADataSource; + dxLayoutControlRemesaClienteGroup_Root: TdxLayoutGroup; + dxLayoutControlRemesaCliente: TdxLayoutControl; + dxLayoutControlRemesaClienteGroup1: TdxLayoutGroup; + dxLayoutControlRemesaClienteItem3: TdxLayoutItem; + eReferencia: TcxDBTextEdit; + dxLayoutControlRemesaClienteItem8: TdxLayoutItem; + eDescripcion: TcxDBTextEdit; + dxLayoutControlRemesaClienteGroup3: TdxLayoutGroup; + dxLayoutControlRemesaClienteItem4: TdxLayoutItem; + edtFechaRemesa: TcxDBDateEdit; + dxLayoutControlRemesaClienteGroup5: TdxLayoutGroup; + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + dxLayoutControlRemesaClienteItem9: TdxLayoutItem; + cbCuentaBancaria: TcxDBLookupComboBox; + dsDatosBanco: TDADataSource; + dxLayoutControlRemesaClienteGroup2: TdxLayoutGroup; + cbTipo: TcxDBImageComboBox; + dxLayoutControlRemesaClienteItem1: TdxLayoutItem; + + protected + FController: IRemesasClienteController; + FRemesaCliente: IBizRemesaCliente; + function GetRemesaCliente: IBizRemesaCliente; + procedure SetRemesaCliente(const Value: IBizRemesaCliente); virtual; + function GetController : IRemesasClienteController; + procedure SetController (const Value : IRemesasClienteController); + public + property RemesaCliente: IBizRemesaCliente read GetRemesaCliente write SetRemesaCliente; + property Controller : IRemesasClienteController read GetController write SetController; + constructor Create(AOwner: TComponent); override; + end; + +implementation + +{$R *.dfm} + +uses + uDataModuleUsuarios, uFactuGES_App; + + +{ TfrViewRemesaClientes } + +{ +******************************* TfrViewRemesaClientes ******************************** +} + +function TfrViewRemesaCliente.GetRemesaCliente: IBizRemesaCliente; +begin + Result := FRemesaCliente; +end; + +constructor TfrViewRemesaCliente.Create(AOwner: TComponent); +var + AItem : TcxImageComboBoxItem; +begin + inherited; + cbTipo.Properties.Items.BeginUpdate; + + AItem := cbTipo.Properties.Items.Add; + AItem.Tag := 1; + AItem.Description := CTE_TIPO_REMESA; + AItem.Value := CTE_TIPO_REMESA; + + AItem := cbTipo.Properties.Items.Add; + AItem.Tag := 2; + AItem.Description := CTE_TIPO_TALON; + AItem.Value := CTE_TIPO_TALON; + + AItem := cbTipo.Properties.Items.Add; + AItem.Tag := 3; + AItem.Description := CTE_TIPO_EFECTIVO; + AItem.Value := CTE_TIPO_EFECTIVO; + + AItem := cbTipo.Properties.Items.Add; + AItem.Tag := 4; + AItem.Description := CTE_TIPO_TRANSFERENCIA; + AItem.Value := CTE_TIPO_TRANSFERENCIA; + + cbTipo.Properties.Items.EndUpdate; +end; + +function TfrViewRemesaCliente.GetController: IRemesasClienteController; +begin + Result := FController; +end; + +procedure TfrViewRemesaCliente.SetRemesaCliente(const Value: IBizRemesaCliente); +begin + FRemesaCliente := Value; + + if Assigned(FRemesaCliente) then + begin + dsDataTable.DataTable := FRemesaCliente.DataTable; + dsDatosBanco.DataTable := AppFactuGES.EmpresaActiva.DatosBancarios.DataTable; + dsDatosBanco.DataTable.Active := True; + end + else begin + dsDataTable.DataTable := NIL; + dsDatosBanco.DataTable := NIL; + end; +end; + +procedure TfrViewRemesaCliente.SetController(const Value: IRemesasClienteController); +begin + FController := Value; +end; + +end. + diff --git a/Source/Modulos/Remesas de cliente/Views/uViewRemesasCliente.dcu b/Source/Modulos/Remesas de cliente/Views/uViewRemesasCliente.dcu new file mode 100644 index 0000000..6191cf7 Binary files /dev/null and b/Source/Modulos/Remesas de cliente/Views/uViewRemesasCliente.dcu differ diff --git a/Source/Modulos/Remesas de cliente/Views/uViewRemesasCliente.dfm b/Source/Modulos/Remesas de cliente/Views/uViewRemesasCliente.dfm new file mode 100644 index 0000000..2adc359 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Views/uViewRemesasCliente.dfm @@ -0,0 +1,95 @@ +inherited frViewRemesasCliente: TfrViewRemesasCliente + Height = 420 + ExplicitHeight = 420 + inherited cxGrid: TcxGrid + Height = 292 + ExplicitHeight = 292 + inherited cxGridView: TcxGridDBTableView + DataController.KeyFieldNames = 'RecID' + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Position = spFooter + Column = cxGridViewIMPORTE_TOTAL + end> + DataController.Summary.FooterSummaryItems = < + item + Format = '0 almacenes' + Kind = skCount + end + item + Format = '0 Art'#237'culos' + Kind = skCount + end + item + Format = '0 remesas' + Kind = skCount + Column = cxGridViewREFERENCIA + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = cxGridViewIMPORTE_TOTAL + end> + DataController.OnCompare = cxGridViewDataControllerCompare + OptionsBehavior.PullFocusing = True + object cxGridViewREFERENCIA: TcxGridDBColumn + Caption = 'Referencia' + DataBinding.FieldName = 'REFERENCIA' + Width = 118 + end + object cxGridViewTIPO: TcxGridDBColumn + DataBinding.FieldName = 'TIPO' + end + object cxGridViewFECHA_REMESA: TcxGridDBColumn + Caption = 'Fecha de cargo' + DataBinding.FieldName = 'FECHA_REMESA' + Width = 74 + end + object cxGridViewNOMBRE: TcxGridDBColumn + DataBinding.FieldName = 'NOMBRE' + Width = 147 + end + object cxGridViewDESCRIPCION: TcxGridDBColumn + Caption = 'Descripci'#243'n' + DataBinding.FieldName = 'DESCRIPCION' + Width = 73 + end + object cxGridViewENTIDAD: TcxGridDBColumn + DataBinding.FieldName = 'ENTIDAD' + Visible = False + end + object cxGridViewSUCURSAL: TcxGridDBColumn + DataBinding.FieldName = 'SUCURSAL' + Visible = False + end + object cxGridViewDC: TcxGridDBColumn + DataBinding.FieldName = 'DC' + Visible = False + end + object cxGridViewCUENTA: TcxGridDBColumn + DataBinding.FieldName = 'CUENTA' + Visible = False + end + object cxGridViewIMPORTE_TOTAL: TcxGridDBColumn + Caption = 'Importe' + DataBinding.FieldName = 'IMPORTE_TOTAL' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + Width = 128 + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 394 + ExplicitTop = 394 + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 38673.842406053240000000 + BuiltInReportLink = True + end + end +end diff --git a/Source/Modulos/Remesas de cliente/Views/uViewRemesasCliente.pas b/Source/Modulos/Remesas de cliente/Views/uViewRemesasCliente.pas new file mode 100644 index 0000000..4f77e2b --- /dev/null +++ b/Source/Modulos/Remesas de cliente/Views/uViewRemesasCliente.pas @@ -0,0 +1,86 @@ +unit uViewRemesasCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel, + cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGrid, uBizRemesasCliente, ActnList, Menus, + cxGridBandedTableView, cxGridDBBandedTableView, JvComponent, + JvFormAutoSize, PngImageList, ImgList, dxPSGlbl, dxPSUtl, dxPSEngn, + dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, cxIntlPrintSys3, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, + cxGridCustomPopupMenu, cxGridPopupMenu, cxCurrencyEdit, cxSpinEdit, cxCheckBox, + cxCheckComboBox, cxImageComboBox, TB2Item, TBX, TB2Toolbar, TBXDkPanels, + TB2Dock, uViewFiltroBase, dxPgsDlg, uDAInterfaces; + +type + IViewRemesasCliente = interface(IViewGrid) + ['{F18052A7-40A1-49F5-93A1-9544CB98DC0E}'] + function GetRemesasCliente: IBizRemesaCliente; + procedure SetRemesasCliente(const Value: IBizRemesaCliente); + property RemesasCliente: IBizRemesaCliente read GetRemesasCliente write SetRemesasCliente; + end; + + TfrViewRemesasCliente = class(TfrViewGrid, IViewRemesasCliente) + cxGridViewREFERENCIA: TcxGridDBColumn; + cxGridViewFECHA_REMESA: TcxGridDBColumn; + cxGridViewDESCRIPCION: TcxGridDBColumn; + cxGridViewIMPORTE_TOTAL: TcxGridDBColumn; + cxGridViewNOMBRE: TcxGridDBColumn; + cxGridViewENTIDAD: TcxGridDBColumn; + cxGridViewSUCURSAL: TcxGridDBColumn; + cxGridViewDC: TcxGridDBColumn; + cxGridViewCUENTA: TcxGridDBColumn; + cxGridViewTIPO: TcxGridDBColumn; + procedure cxGridViewDataControllerCompare( + ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2, + AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer); + protected + FRemesasCliente: IBizRemesaCliente; + function GetRemesasCliente: IBizRemesaCliente; virtual; + procedure SetRemesasCliente(const Value: IBizRemesaCliente); virtual; + public + property RemesasCliente: IBizRemesaCliente read GetRemesasCliente write SetRemesasCliente; + end; + +implementation + +uses + uDataModuleRemesasCliente, uReferenciasUtils, cxVariants; + + +{$R *.dfm} + +{ TfrViewRemesasCliente } + +{ +******************************* TfrViewRemesasCliente ******************************* +} +procedure TfrViewRemesasCliente.cxGridViewDataControllerCompare( + ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2, + AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer); +begin + inherited; + if ((AItemIndex = cxGridViewREFERENCIA.Index)) and + (VarType(V1) = VarType(V2)) and (VarType(V1) = varString) then + Compare := CompararReferencias(V1, V2) + else + Compare := VarCompare(V1, V2); +end; + +function TfrViewRemesasCliente.GetRemesasCliente: IBizRemesaCliente; +begin + Result := FRemesasCliente; +end; + +procedure TfrViewRemesasCliente.SetRemesasCliente(const Value: IBizRemesaCliente); +begin + FRemesasCliente := Value; + if Assigned(FRemesasCliente) then + dsDataSource.DataTable := FRemesasCliente.DataTable; +end; + +end. diff --git a/Source/Modulos/Remesas de proveedor/Controller/RemesasProveedor_controller.bdsproj b/Source/Modulos/Remesas de proveedor/Controller/RemesasProveedor_controller.bdsproj new file mode 100644 index 0000000..af9f7da --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Controller/RemesasProveedor_controller.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + RemesasProveedor_controller.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + True + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Remesas de proveedor/Controller/RemesasProveedor_controller.dcu b/Source/Modulos/Remesas de proveedor/Controller/RemesasProveedor_controller.dcu new file mode 100644 index 0000000..e9babf2 Binary files /dev/null and b/Source/Modulos/Remesas de proveedor/Controller/RemesasProveedor_controller.dcu differ diff --git a/Source/Modulos/Remesas de proveedor/Controller/RemesasProveedor_controller.dpk b/Source/Modulos/Remesas de proveedor/Controller/RemesasProveedor_controller.dpk new file mode 100644 index 0000000..2a32a38 Binary files /dev/null and b/Source/Modulos/Remesas de proveedor/Controller/RemesasProveedor_controller.dpk differ diff --git a/Source/Modulos/Remesas de proveedor/Controller/RemesasProveedor_controller.dproj b/Source/Modulos/Remesas de proveedor/Controller/RemesasProveedor_controller.dproj new file mode 100644 index 0000000..b2416dd --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Controller/RemesasProveedor_controller.dproj @@ -0,0 +1,591 @@ + + + {ff8e8509-28f4-4aa9-88e5-13f60fe956a6} + RemesasProveedor_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\RemesasProveedor_controller.bpl + + + 7.0 + False + False + False + True + 0 + True + True + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + False + True + True + True + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + RemesasProveedor_controller.dpk + + + + + + + MainSource + + + + + + + + + + + + + + diff --git a/Source/Modulos/Remesas de proveedor/Controller/RemesasProveedor_controller.rc b/Source/Modulos/Remesas de proveedor/Controller/RemesasProveedor_controller.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Controller/RemesasProveedor_controller.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Remesas de proveedor/Controller/RemesasProveedor_controller.res b/Source/Modulos/Remesas de proveedor/Controller/RemesasProveedor_controller.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Remesas de proveedor/Controller/RemesasProveedor_controller.res differ diff --git a/Source/Modulos/Remesas de proveedor/Controller/View/uIEditorRemesaProveedor.dcu b/Source/Modulos/Remesas de proveedor/Controller/View/uIEditorRemesaProveedor.dcu new file mode 100644 index 0000000..b4d0f5c Binary files /dev/null and b/Source/Modulos/Remesas de proveedor/Controller/View/uIEditorRemesaProveedor.dcu differ diff --git a/Source/Modulos/Remesas de proveedor/Controller/View/uIEditorRemesaProveedor.pas b/Source/Modulos/Remesas de proveedor/Controller/View/uIEditorRemesaProveedor.pas new file mode 100644 index 0000000..51a4639 --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Controller/View/uIEditorRemesaProveedor.pas @@ -0,0 +1,22 @@ +unit uIEditorRemesaProveedor; + +interface + +uses + uEditorDBItem, uBizRemesasProveedor, uRemesasProveedorController; + +type + IEditorRemesaProveedor = interface(IEditorDBItem) + ['{EAAC2686-ED1C-4308-86EA-78E5EBFB0D59}'] + function GetController : IRemesasProveedorController; + procedure SetController (const Value : IRemesasProveedorController); + property Controller : IRemesasProveedorController read GetController write SetController; + + function GetRemesaProveedor: IBizRemesaProveedor; + procedure SetRemesaProveedor(const Value: IBizRemesaProveedor); + property RemesaProveedor: IBizRemesaProveedor read GetRemesaProveedor write SetRemesaProveedor; + end; + +implementation + +end. diff --git a/Source/Modulos/Remesas de proveedor/Controller/View/uIEditorRemesasProveedor.dcu b/Source/Modulos/Remesas de proveedor/Controller/View/uIEditorRemesasProveedor.dcu new file mode 100644 index 0000000..1caa6bb Binary files /dev/null and b/Source/Modulos/Remesas de proveedor/Controller/View/uIEditorRemesasProveedor.dcu differ diff --git a/Source/Modulos/Remesas de proveedor/Controller/View/uIEditorRemesasProveedor.pas b/Source/Modulos/Remesas de proveedor/Controller/View/uIEditorRemesasProveedor.pas new file mode 100644 index 0000000..2037d65 --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Controller/View/uIEditorRemesasProveedor.pas @@ -0,0 +1,23 @@ +unit uIEditorRemesasProveedor; + +interface + +uses + uEditorGridBase, uBizRemesasProveedor, uRemesasProveedorController; + +type + IEditorRemesasProveedor = interface(IEditorGridBase) + ['{4D261032-199B-4B0F-93BF-AF397A76FAE3}'] + function GetRemesasProveedor: IBizRemesaProveedor; + procedure SetRemesasProveedor(const Value: IBizRemesaProveedor); + property RemesasProveedor: IBizRemesaProveedor read GetRemesasProveedor write SetRemesasProveedor; + + function GetController : IRemesasProveedorController; + procedure SetController (const Value : IRemesasProveedorController); + property Controller : IRemesasProveedorController read GetController write SetController; + end; + + +implementation + +end. diff --git a/Source/Modulos/Remesas de proveedor/Controller/View/uIEditorRemesasProveedorPreview.dcu b/Source/Modulos/Remesas de proveedor/Controller/View/uIEditorRemesasProveedorPreview.dcu new file mode 100644 index 0000000..172adb7 Binary files /dev/null and b/Source/Modulos/Remesas de proveedor/Controller/View/uIEditorRemesasProveedorPreview.dcu differ diff --git a/Source/Modulos/Remesas de proveedor/Controller/View/uIEditorRemesasProveedorPreview.pas b/Source/Modulos/Remesas de proveedor/Controller/View/uIEditorRemesasProveedorPreview.pas new file mode 100644 index 0000000..9d901e8 --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Controller/View/uIEditorRemesasProveedorPreview.pas @@ -0,0 +1,16 @@ +unit uIEditorRemesasProveedorPreview; + +interface + +uses + uEditorPreview; + +type + IEditorRemesasProveedorPreview = interface(IEditorPreview) + ['{5A8DD1FA-B7C8-480E-AA4B-1412316A0E83}'] + end; + + +implementation + +end. diff --git a/Source/Modulos/Remesas de proveedor/Controller/uRemesasProveedorController.dcu b/Source/Modulos/Remesas de proveedor/Controller/uRemesasProveedorController.dcu new file mode 100644 index 0000000..4b42603 Binary files /dev/null and b/Source/Modulos/Remesas de proveedor/Controller/uRemesasProveedorController.dcu differ diff --git a/Source/Modulos/Remesas de proveedor/Controller/uRemesasProveedorController.pas b/Source/Modulos/Remesas de proveedor/Controller/uRemesasProveedorController.pas new file mode 100644 index 0000000..a5d1463 --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Controller/uRemesasProveedorController.pas @@ -0,0 +1,661 @@ +unit uRemesasProveedorController; + +interface + + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uEditorDBItem, + uIDataModuleRemesasProveedor, uBizRemesasProveedor, uProveedoresController, + uBizContactos, uRecibosProveedorController; + +type + IRemesasProveedorController = interface(IControllerBase) + ['{C14143FE-0806-4E64-93E2-A2C0170BBD41}'] + function Buscar(const ID: Integer): IBizRemesaProveedor; + function BuscarTodos: IBizRemesaProveedor; overload; + procedure Ver(ARemesaProveedor : IBizRemesaProveedor); + procedure VerTodos(ARemesasProveedor: IBizRemesaProveedor); + function Nuevo : IBizRemesaProveedor; + procedure Anadir(ARemesaProveedor : IBizRemesaProveedor); + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(ARemesaProveedor : IBizRemesaProveedor; AllItems: Boolean = false): Boolean; overload; + function Guardar(ARemesaProveedor : IBizRemesaProveedor): Boolean; + procedure DescartarCambios(ARemesaProveedor : IBizRemesaProveedor); + function Existe(const ID: Integer) : Boolean; + + procedure Preview(ARemesaProveedor : IBizRemesaProveedor; AllItems: Boolean = false); + procedure Print(ARemesaProveedor : IBizRemesaProveedor; AllItems: Boolean = false); + function EsModificable(ARemesaProveedor : IBizRemesaProveedor): Boolean; + function EsEliminable(ARemesaProveedor : IBizRemesaProveedor): Boolean; + + function ElegirRecibosProveedor(ARemesaProveedor : IBizRemesaProveedor; AListaRecibosIniciales: TStringList): Boolean; + procedure EliminarReciboProveedor(ARemesaProveedor : IBizRemesaProveedor); + function GetRecibosProveedorController: IRecibosProveedorController; + property RecibosProveedorController: IRecibosProveedorController read GetRecibosProveedorController; + + procedure RecuperarRecibos(ARemesaProveedor: IBizRemesaProveedor); + function ExtraerSeleccionados(ARemesasProveedor: IBizRemesaProveedor) : IBizRemesaProveedor; + + function DarListaAnosRemesas: TStringList; + procedure FiltrarAno(ARemesa: IBizRemesaProveedor; ADynWhereDataTable: WideString; const Ano: String); + end; + + TRemesasProveedorController = class(TControllerBase, IRemesasProveedorController) + protected + FDataModule : IDataModuleRemesasProveedor; + FRecibosProveedorController: IRecibosProveedorController; + function GetRecibosProveedorController: IRecibosProveedorController; + + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + procedure AsignarID(ARemesaProveedor: IBizRemesaProveedor; const IDNuevo: Integer); virtual; + function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; + function _Vacio : IBizRemesaProveedor; + + procedure FiltrarEmpresa(ARemesaProveedor: IBizRemesaProveedor); + function ValidarRemesaProveedor(ARemesaProveedor: IBizRemesaProveedor): Boolean; virtual; + + procedure RecuperarRecibos(ARemesaProveedor: IBizRemesaProveedor); + procedure RecuperarObjetos(ARemesaProveedor: IBizRemesaProveedor); virtual; + procedure AsignarDataModule; virtual; + + public + property RecibosProveedorController: IRecibosProveedorController read GetRecibosProveedorController; + + constructor Create; override; + destructor Destroy; override; + + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(ARemesaProveedor : IBizRemesaProveedor; AllItems: Boolean = false): Boolean; overload; + function Guardar(ARemesaProveedor : IBizRemesaProveedor): Boolean; + procedure DescartarCambios(ARemesaProveedor : IBizRemesaProveedor); virtual; + function Existe(const ID: Integer) : Boolean; virtual; + procedure Anadir(ARemesaProveedor : IBizRemesaProveedor); virtual; + function Buscar(const ID: Integer): IBizRemesaProveedor; virtual; + function BuscarTodos: IBizRemesaProveedor; overload; + function Nuevo : IBizRemesaProveedor; virtual; + procedure Ver(ARemesaProveedor : IBizRemesaProveedor); virtual; + procedure VerTodos(ARemesasProveedor: IBizRemesaProveedor); virtual; + + procedure Preview(ARemesaProveedor : IBizRemesaProveedor; AllItems: Boolean = false); virtual; + procedure Print(ARemesaProveedor : IBizRemesaProveedor; AllItems: Boolean = false); virtual; + function EsModificable(ARemesaProveedor : IBizRemesaProveedor): Boolean; + function EsEliminable(ARemesaProveedor : IBizRemesaProveedor): Boolean; + + function ExtraerSeleccionados(ARemesasProveedor: IBizRemesaProveedor) : IBizRemesaProveedor; virtual; + function ElegirRecibosProveedor(ARemesaProveedor : IBizRemesaProveedor; AListaRecibosIniciales: TStringList): Boolean; + procedure EliminarReciboProveedor(ARemesaProveedor : IBizRemesaProveedor); + + function DarListaAnosRemesas: TStringList; + procedure FiltrarAno(ARemesa: IBizRemesaProveedor; ADynWhereDataTable: WideString; const Ano: String); + end; + +implementation + +uses + cxControls, DB, uEditorRegistryUtils, schRemesasProveedorClient_Intf, uFactuGES_App, + schRecibosProveedorClient_Intf, uIEditorRemesasProveedor, uIEditorRemesaProveedor, + Dialogs, uDataModuleRemesasProveedor, uDataModuleUsuarios, uDAInterfaces, + uDataTableUtils, uDateUtils, uROTypes, DateUtils, Controls, Windows, + uBizRecibosProveedor, Variants, uRemesasProveedorReportController; + +{ TRemesasProveedorController } + +procedure TRemesasProveedorController.Anadir(ARemesaProveedor: IBizRemesaProveedor); +begin + ARemesaProveedor.Insert; +end; + +procedure TRemesasProveedorController.EliminarReciboProveedor(ARemesaProveedor: IBizRemesaProveedor); +var + ARecibosRemesa : IBizRecibosProveedor; +begin + inherited; + ARecibosRemesa := ARemesaProveedor.Recibos; + RecibosProveedorController.QuitarRemesa(ARecibosRemesa); + //Quitamos el recibo de la remesa sin que el servidor se entere para que no elimine el recibo + DesconectarTabla(ARecibosRemesa.DataTable); + ARecibosRemesa.DataTable.Delete; + ConectarTabla(ARecibosRemesa.DataTable); + ARecibosRemesa := Nil; +end; + +function TRemesasProveedorController.EsEliminable(ARemesaProveedor: IBizRemesaProveedor): Boolean; +begin + Result := True; +end; + +function TRemesasProveedorController.EsModificable(ARemesaProveedor: IBizRemesaProveedor): Boolean; +begin + Result := True; +end; + +procedure TRemesasProveedorController.AsignarDataModule; +begin + FDataModule := TDataModuleRemesasProveedor.Create(Nil); + FRecibosProveedorController := TRecibosProveedorController.Create; +end; + +procedure TRemesasProveedorController.AsignarID(ARemesaProveedor: IBizRemesaProveedor; const IDNuevo: Integer); +begin + if not Assigned(ARemesaProveedor) then + raise Exception.Create ('RemesaProveedor no asignado'); + + ARemesaProveedor.Edit; + ARemesaProveedor.ID := IDNuevo; + ARemesaProveedor.Post; +end; + +function TRemesasProveedorController.Buscar(const ID: Integer): IBizRemesaProveedor; +begin + Result := (FDataModule as IDataModuleRemesasProveedor).GetItem(ID); + FiltrarEmpresa(Result); +end; + +function TRemesasProveedorController.BuscarTodos: IBizRemesaProveedor; +begin + Result := FDataModule.GetItems; + FiltrarEmpresa(Result); +end; + +constructor TRemesasProveedorController.Create; +begin + inherited; + AsignarDataModule; +end; + +function TRemesasProveedorController.CreateEditor(const AName: String; + const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + +function TRemesasProveedorController.DarListaAnosRemesas: TStringList; +begin + Result := FDataModule.GetAnosItems; +end; + +procedure TRemesasProveedorController.DescartarCambios(ARemesaProveedor: IBizRemesaProveedor); +begin + if not Assigned(ARemesaProveedor) then + raise Exception.Create ('RemesaProveedor no asignado'); + + ShowHourglassCursor; + try + if (ARemesaProveedor.State in dsEditModes) then + ARemesaProveedor.Cancel; + + ARemesaProveedor.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TRemesasProveedorController.Destroy; +begin + FDataModule := Nil; + FRecibosProveedorController := Nil; + inherited; +end; + +function TRemesasProveedorController.ValidarRemesaProveedor(ARemesaProveedor: IBizRemesaProveedor): Boolean; +begin + Result := False; + + if not Assigned(ARemesaProveedor) then + raise Exception.Create ('Remesa no asignada'); + + if (ARemesaProveedor.DataTable.State in dsEditModes) then + ARemesaProveedor.DataTable.Post; + + if ARemesaProveedor.DataTable.FieldByName(fld_RemesasProveedorFECHA_REMESA).IsNull then + raise Exception.Create('Debe indicar la fecha de esta remesa.'); + + if ARemesaProveedor.ID_DATOS_BANCO < 1 then + raise Exception.Create('Debe la cuenta bancaria sobre la que realizar la remesa.'); + + // Asegurarse de valores en campos "automticos" + ARemesaProveedor.Edit; + try + ARemesaProveedor.USUARIO := AppFactuGES.UsuarioActivo.UserName; + + Result := True; + finally + ARemesaProveedor.Post; + end; +end; + +procedure TRemesasProveedorController.Ver(ARemesaProveedor: IBizRemesaProveedor); +var + AEditor : IEditorRemesaProveedor; +begin + AEditor := NIL; + RecuperarObjetos(ARemesaProveedor); + + CreateEditor('EditorRemesaProveedor', IEditorRemesaProveedor, AEditor); + if Assigned(AEditor) then + with (AEditor as IEditorRemesaProveedor) do + begin + try + Controller := Self; //OJO ORDEN MUY IMPORTANTE + RemesaProveedor := ARemesaProveedor; + + //MODO CONSULTAR + if not EsModificable(ARemesaProveedor) then + begin + SetDataTableReadOnly(ARemesaProveedor.DataTable, True); + ReadOnly := True; + end; + + ShowModal; + + //MODO CONSULTAR (Se deja la tabla como estaba) + if ReadOnly then + SetDataTableReadOnly(ARemesaProveedor.DataTable, False); + finally + AEditor.Release; + AEditor := NIL; + end; + end; +end; + +procedure TRemesasProveedorController.VerTodos(ARemesasProveedor: IBizRemesaProveedor); +var + AEditor : IEditorRemesasProveedor; +begin + AEditor := NIL; + CreateEditor('EditorRemesasProveedor', IEditorRemesasProveedor, AEditor); + if Assigned(AEditor) then + with (AEditor as IEditorRemesasProveedor) do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + RemesasProveedor := ARemesasProveedor; + MultiSelect := True; + ShowEmbedded; + end; +end; + +function TRemesasProveedorController._Vacio: IBizRemesaProveedor; +begin + Result := Buscar(ID_NULO); +end; + +function TRemesasProveedorController.Eliminar(const ID: Integer): Boolean; +var + ARemesaProveedor : IBizRemesaProveedor; +begin + ARemesaProveedor := Buscar(ID); + + if not Assigned(ARemesaProveedor) then + raise Exception.Create(Format('No se ha encontrado la remesa con ID = %d', [ID])); + + Result := Eliminar(ARemesaProveedor); + ARemesaProveedor := NIL; +end; + +function TRemesasProveedorController.ElegirRecibosProveedor(ARemesaProveedor: IBizRemesaProveedor; AListaRecibosIniciales: TStringList): Boolean; +var + ARecibosRemesa : IBizRecibosProveedor; + ARecibosSeleccionados : IBizRecibosProveedor; + ListaRecibosVisibles: TStringList; + ListaRecibosNoVisibles: TStringList; + i: Integer; + +begin + Result := False; + + ListaRecibosVisibles := TStringList.Create; + ListaRecibosNoVisibles := TStringList.Create; + + //Todos los recibos que tenga la remesa no deben de visualizarse en la lista de seleccion + ARemesaProveedor.Recibos.DataTable.First; + while not ARemesaProveedor.Recibos.DataTable.eof do + begin + ListaRecibosNoVisibles.Add(IntToStr(ARemesaProveedor.Recibos.ID)); + ARemesaProveedor.Recibos.DataTable.Next; + end; + ARemesaProveedor.Recibos.DataTable.First; + + //Si de la lista inicial hay alguno que no se encuentre en la lista de recibos de la + //remesa que tenemos en memoria dicho recibo debera verse por lo que lo aadimos a la lista de visibles + for i := 0 to AListaRecibosIniciales.Count - 1 do + begin + ARemesaProveedor.Recibos.DataTable.First; + if not ARemesaProveedor.Recibos.DataTable.Locate(fld_RecibosProveedorID, AListaRecibosIniciales.strings[i], []) then + ListaRecibosVisibles.Add(AListaRecibosIniciales.strings[i]); + end; + ARemesaProveedor.Recibos.DataTable.First; + + ARecibosSeleccionados := (FRecibosProveedorController.ElegirRecibos(FRecibosProveedorController.BuscarRecibosARemesar(ListaRecibosVisibles, ListaRecibosNoVisibles), 'Elija uno o ms recibos para incluirlos en esta remesa', True) as IBizRecibosProveedor); + if Assigned(ARecibosSeleccionados) then + begin + ShowHourglassCursor; + try + ARecibosRemesa := ARemesaProveedor.Recibos; + //Copia los recibos seleccionados a los recibos de la remesa sin que el servidor se entere de + //las inserciones + DuplicarRegistros(ARecibosSeleccionados.DataTable,ARecibosRemesa.DataTable, mdrTodos, True, False, True); + FRecibosProveedorController.SetSituacionCobrados(ARecibosRemesa); + Result := True; + finally + HideHourglassCursor; + end; + end; + + ListaRecibosVisibles.Free; + ListaRecibosNoVisibles.Free; + ARecibosRemesa := Nil; + ARecibosSeleccionados := Nil; +end; + +function TRemesasProveedorController.Eliminar(ARemesaProveedor: IBizRemesaProveedor; AllItems: Boolean = false): Boolean; +//En el caso de eliminar almenos un elemento del conjunto se devuelve true +var + bEliminado: Boolean; + +begin + Result := False; + bEliminado := False; + + if not Assigned(ARemesaProveedor) then + raise Exception.Create ('ARemesaProveedor no asignada'); + + ShowHourglassCursor; + try + if not ARemesaProveedor.DataTable.Active then + ARemesaProveedor.DataTable.Active := True; + + if (ARemesaProveedor.State in dsEditModes) then + ARemesaProveedor.Cancel; + + //Siempre eliminaremos el seleccionado + if EsEliminable(ARemesaProveedor) then + begin + //Si la llamada a eliminar es por el editor RemesasProveedor, debo recuperar los recibos + //de la remesa a eliminar, en caso de venir por el editor RemesaProveedor ya los tengo + if not Assigned(ARemesaProveedor.Recibos) then + RecuperarRecibos(ARemesaProveedor); + //Eliminaremos la remesa de los recibos asociados + With ARemesaProveedor.Recibos.DataTable do + begin + First; + While not Eof do + begin + RecibosProveedorController.QuitarRemesa(ARemesaProveedor.Recibos); + Next; + end; + end; + + //Como no estn declarados como maestro-detalles debemos hacer el applyupdates nosotros + ARemesaProveedor.Recibos.DataTable.ApplyUpdates; + + ARemesaProveedor.Delete; + bEliminado := True; + end; + + //En el caso de querer eliminar todos los items del objeto AAlbaran + if AllItems then + begin + with ARemesaProveedor.DataTable do + begin + First; + while not EOF do + begin + if EsEliminable(ARemesaProveedor) then + begin + //Si la llamada a eliminar es por el editor RemesasProveedor, debo recuperar los recibos + //de la remesa a eliminar, en caso de venir por el editor RemesaProveedor ya los tengo + if not Assigned(ARemesaProveedor.Recibos) then + RecuperarRecibos(ARemesaProveedor); + //Eliminaremos la remesa de los recibos asociados + With ARemesaProveedor.Recibos.DataTable do + begin + First; + While not Eof do + begin + RecibosProveedorController.QuitarRemesa(ARemesaProveedor.Recibos); + Next; + end; + end; + + //Como no estn declarados como maestro-detalles debemos hacer el applyupdates nosotros + ARemesaProveedor.Recibos.DataTable.ApplyUpdates; + + ARemesaProveedor.Delete; + bEliminado := True + end + else Next; + end; + end; + end; + + if bEliminado then + begin + ARemesaProveedor.DataTable.ApplyUpdates; + Result := True; + end + else + Result := False; + + HideHourglassCursor; + except + //Hay algun recibo de la remesa que tiene movimientos (Cobros/Devoluciones) posteriores al cobro inicial de la remesa + on E: Exception do + begin + ARemesaProveedor.Recibos.DataTable.CancelUpdates; + ARemesaProveedor.DataTable.CancelUpdates; + HideHourglassCursor; + MessageBox(0, 'Exiten movimientos (Cobros/Devoluciones) en los recibos posteriores al cobro inicial de la remesa', 'Atencin', MB_ICONWARNING or MB_OK); + end; + end; +end; + +procedure TRemesasProveedorController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +begin + inherited; +// +end; + +procedure TRemesasProveedorController.RecuperarObjetos(ARemesaProveedor: IBizRemesaProveedor); +begin + RecuperarRecibos(ARemesaProveedor); +end; + +procedure TRemesasProveedorController.RecuperarRecibos(ARemesaProveedor: IBizRemesaProveedor); +begin + ARemesaProveedor.Recibos := RecibosProveedorController.BuscarRecibosRemesa(ARemesaProveedor.ID); +end; + +function TRemesasProveedorController.Existe(const ID: Integer): Boolean; +var + ARemesaProveedor : IBizRemesaProveedor; +begin + try + ARemesaProveedor := Buscar(ID); + Result := Assigned(ARemesaProveedor) and (ARemesaProveedor.ID = ID); + finally + ARemesaProveedor := NIL; + end; +end; + +function TRemesasProveedorController.ExtraerSeleccionados(ARemesasProveedor: IBizRemesaProveedor): IBizRemesaProveedor; +var + ASeleccionados : IBizRemesaProveedor; +begin + ASeleccionados := (Self.Buscar(ID_NULO) as IBizRemesaProveedor); + CopyDataTableDA5(ARemesasProveedor.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + +procedure TRemesasProveedorController.FiltrarAno(ARemesa: IBizRemesaProveedor; ADynWhereDataTable: WideString; const Ano: String); +var + Condicion: TDAWhereExpression; + FechaIni: String; + FechaFin: String; + +begin + ARemesa.DataTable.DynamicWhere.Clear; + ARemesa.DataTable.DynamicWhere.Xml := ADynWhereDataTable; + + if (Ano <> 'Todos') then + begin + // Filtrar las facturas actuales por empresa + FechaIni := '01/01/' + Ano; + FechaFin := '31/12/' + Ano; + with ARemesa.DataTable.DynamicWhere do + begin + // (FECHA_INICIO between FECHA_FIN) + Condicion := NewBinaryExpression(NewField('', fld_RemesasProveedorFECHA_REMESA), NewConstant(FechaIni, datString), dboGreaterOrEqual); + Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_RemesasProveedorFECHA_REMESA), NewConstant(FechaFin, datString), dboLessOrEqual), Condicion, dboAnd); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Condicion, Expression, dboAnd); + end; + end; +end; + +procedure TRemesasProveedorController.FiltrarEmpresa(ARemesaProveedor: IBizRemesaProveedor); +var + Condicion: TDAWhereExpression; +begin + if ARemesaProveedor.DataTable.Active then + ARemesaProveedor.DataTable.Active := False; + + // Filtrar las remesas actuales por empresa + with ARemesaProveedor.DataTable.DynamicWhere do + begin + // (ID_EMPRESA >= ID) + Condicion := NewBinaryExpression(NewField('', fld_RemesasProveedorID_EMPRESA), NewConstant(AppFactuGES.EmpresaActiva.ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; +end; + +function TRemesasProveedorController.GetRecibosProveedorController: IRecibosProveedorController; +begin + Result := FRecibosProveedorController; +end; + +function TRemesasProveedorController.Guardar(ARemesaProveedor: IBizRemesaProveedor): Boolean; +var + bEsNuevo: Boolean; +begin + Result := False; + + if ValidarRemesaProveedor(ARemesaProveedor) then + begin + ShowHourglassCursor; + try + bEsNuevo := ARemesaProveedor.EsNuevo; + //Si es nuevo debemos hacer el applyupdates por la integridad referencial de BD + if bEsNuevo then + ARemesaProveedor.DataTable.ApplyUpdates; + + //Si todo ha ido bien, asignamos la remesa a los recibos asociados + //Como no estn declarados como maestro-detalles debemos hacer el applyupdates nosotros + RecibosProveedorController.AsignarRemesa(ARemesaProveedor.Recibos, ARemesaProveedor.ID); + ARemesaProveedor.Recibos.DataTable.ApplyUpdates; //En este applyupdates tambien se realizarn todos los cambios acumulados sobre los recibos asociados (EliminarReciboProveedor/ ElegirRecibosProveedor) + + //Es necesario ya que no se refrescan bien los deltas y despues del applyupdates siguen + //existiendo deltas, de esta forma los limpiamos + if ARemesaProveedor.Recibos.DataTable.HasDelta then + ARemesaProveedor.Recibos.DataTable.Refresh; + + ARemesaProveedor.DataTable.ApplyUpdates; + + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TRemesasProveedorController.Nuevo: IBizRemesaProveedor; +var + ARemesaProveedor : IBizRemesaProveedor; +begin + ARemesaProveedor := FDataModule.NewItem; + FiltrarEmpresa(ARemesaProveedor); + ARemesaProveedor.DataTable.Active := True; + ARemesaProveedor.Insert; + Result := ARemesaProveedor; +end; + +procedure TRemesasProveedorController.Preview(ARemesaProveedor: IBizRemesaProveedor; AllItems: Boolean = false); +var + AReportController : IRemesasProveedorReportController; + ID_Remesas: TStringList; + +begin + AReportController := TRemesasProveedorReportController.Create; + ID_Remesas := TStringList.Create; + + try + + //Si deseamos previsualizar todos los items del objeto albaran + if AllItems then + begin + with ARemesaProveedor.DataTable do + begin + First; + while not EOF do + begin + ID_Remesas.Add(IntToStr(ARemesaProveedor.ID)); + Next; + end; + end; + end + //Solo previsualizamos el item seleccionado + else + ID_Remesas.Add(IntToStr(ARemesaProveedor.ID)); + + AReportController.Preview(ID_Remesas.CommaText); + + finally + AReportController := NIL; + ID_Remesas.Free; + end; +end; + +procedure TRemesasProveedorController.Print(ARemesaProveedor: IBizRemesaProveedor; AllItems: Boolean = false); +var + AReportController : IRemesasProveedorReportController; + ID_Remesas: TStringList; + +begin + AReportController := TRemesasProveedorReportController.Create; + ID_Remesas := TStringList.Create; + + try + + //Si deseamos previsualizar todos los items del objeto albaran + if AllItems then + begin + with ARemesaProveedor.DataTable do + begin + First; + while not EOF do + begin + ID_Remesas.Add(IntToStr(ARemesaProveedor.ID)); + Next; + end; + end; + end + //Solo previsualizamos el item seleccionado + else + ID_Remesas.Add(IntToStr(ARemesaProveedor.ID)); + + AReportController.Print(ID_Remesas.CommaText); + + finally + AReportController := NIL; + ID_Remesas.Free; + end; +end; + +end. + \ No newline at end of file diff --git a/Source/Modulos/Remesas de proveedor/Controller/uRemesasProveedorReportController.dcu b/Source/Modulos/Remesas de proveedor/Controller/uRemesasProveedorReportController.dcu new file mode 100644 index 0000000..76ded70 Binary files /dev/null and b/Source/Modulos/Remesas de proveedor/Controller/uRemesasProveedorReportController.dcu differ diff --git a/Source/Modulos/Remesas de proveedor/Controller/uRemesasProveedorReportController.pas b/Source/Modulos/Remesas de proveedor/Controller/uRemesasProveedorReportController.pas new file mode 100644 index 0000000..3aafe00 --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Controller/uRemesasProveedorReportController.pas @@ -0,0 +1,110 @@ +unit uRemesasProveedorReportController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleRemesasProveedorReport, + uBizRemesasProveedor; + +type + IRemesasProveedorReportController = interface + ['{A89AAA05-19AD-4455-BAF6-8A5373D15FE7}'] + procedure Preview(const ID : String); + procedure Print(const ID : String); + end; + + TRemesasProveedorReportController = class(TInterfacedObject, IRemesasProveedorReportController) + private + FDataModule : IDataModuleRemesasProveedorReport; + function CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; + public + constructor Create; + destructor Destroy; override; + + procedure Preview(const ID : String); + procedure Print(const ID : String); + end; + + +implementation + +uses + uROTypes, uEditorRegistryUtils, uIEditorRemesasProveedorPreview, + uEditorPreview, uDataModuleRemesasProveedor, uEditorBase, cxControls; + +{ TRemesasProveedorReportController } + +constructor TRemesasProveedorReportController.Create; +begin + FDataModule := TDataModuleRemesasProveedor.Create(Nil); +end; + +function TRemesasProveedorReportController.CreateEditor(const AName: String; + const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + + +destructor TRemesasProveedorReportController.Destroy; +begin + FDataModule := NIL; + inherited; +end; + +procedure TRemesasProveedorReportController.Preview(const ID : String); +var + AStream: Binary; + AEditor : IEditorRemesasProveedorPreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(ID); + try + CreateEditor('EditorRemesasProveedorPreview', IEditorRemesasProveedorPreview, AEditor); + if Assigned(AEditor) then + try + AEditor.LoadFromStream(AStream); + AEditor.Preview; + finally + AEditor.Release; + end; + finally + FreeAndNil(AStream); + AEditor := Nil; + end; + finally + HideHourglassCursor; + end; +end; + +procedure TRemesasProveedorReportController.Print(const ID : String); +var + AStream: Binary; + AEditor : IEditorRemesasProveedorPreview; +begin + AEditor := NIL; + + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(ID); + try + CreateEditor('EditorRemesasProveedorPreview', IEditorRemesasProveedorPreview, AEditor); + if Assigned(AEditor) then + try + AEditor.LoadFromStream(AStream); + AEditor.Print; + finally + AEditor.Release; + end; + finally + FreeAndNil(AStream); + end; + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Remesas de proveedor/Data/RemesasProveedor_data.bdsproj b/Source/Modulos/Remesas de proveedor/Data/RemesasProveedor_data.bdsproj new file mode 100644 index 0000000..f595294 --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Data/RemesasProveedor_data.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + RemesasProveedor_data.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + True + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Remesas de proveedor/Data/RemesasProveedor_data.dcu b/Source/Modulos/Remesas de proveedor/Data/RemesasProveedor_data.dcu new file mode 100644 index 0000000..fc6020e Binary files /dev/null and b/Source/Modulos/Remesas de proveedor/Data/RemesasProveedor_data.dcu differ diff --git a/Source/Modulos/Remesas de proveedor/Data/RemesasProveedor_data.dpk b/Source/Modulos/Remesas de proveedor/Data/RemesasProveedor_data.dpk new file mode 100644 index 0000000..0e1bc11 Binary files /dev/null and b/Source/Modulos/Remesas de proveedor/Data/RemesasProveedor_data.dpk differ diff --git a/Source/Modulos/Remesas de proveedor/Data/RemesasProveedor_data.dproj b/Source/Modulos/Remesas de proveedor/Data/RemesasProveedor_data.dproj new file mode 100644 index 0000000..e941957 --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Data/RemesasProveedor_data.dproj @@ -0,0 +1,586 @@ + + + {568778b1-e82d-41e9-b198-b7c58140e81b} + RemesasProveedor_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\RemesasProveedor_data.bpl + + + 7.0 + False + False + False + True + 0 + True + True + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + False + True + True + True + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + RemesasProveedor_data.dpk + + + + + + + MainSource + + + +
DataModuleRemesasProveedor
+
+
+
+ + diff --git a/Source/Modulos/Remesas de proveedor/Data/RemesasProveedor_data.rc b/Source/Modulos/Remesas de proveedor/Data/RemesasProveedor_data.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Data/RemesasProveedor_data.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Remesas de proveedor/Data/RemesasProveedor_data.res b/Source/Modulos/Remesas de proveedor/Data/RemesasProveedor_data.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Remesas de proveedor/Data/RemesasProveedor_data.res differ diff --git a/Source/Modulos/Remesas de proveedor/Data/uDataModuleRemesasProveedor.dcu b/Source/Modulos/Remesas de proveedor/Data/uDataModuleRemesasProveedor.dcu new file mode 100644 index 0000000..b03c606 Binary files /dev/null and b/Source/Modulos/Remesas de proveedor/Data/uDataModuleRemesasProveedor.dcu differ diff --git a/Source/Modulos/Remesas de proveedor/Data/uDataModuleRemesasProveedor.dfm b/Source/Modulos/Remesas de proveedor/Data/uDataModuleRemesasProveedor.dfm new file mode 100644 index 0000000..551d11a --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Data/uDataModuleRemesasProveedor.dfm @@ -0,0 +1,187 @@ +inherited DataModuleRemesasProveedor: TDataModuleRemesasProveedor + OnCreate = DAClientDataModuleCreate + Height = 232 + Width = 496 + object RORemoteService: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvRemesasProveedor' + Left = 48 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 46 + Top = 84 + end + object rda_RemesasProveedor: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetDataCall.RemoteService = RORemoteService + UpdateDataCall.RemoteService = RORemoteService + GetScriptsCall.RemoteService = RORemoteService + RemoteService = RORemoteService + DataStreamer = Bin2DataStreamer + Left = 49 + Top = 151 + end + object tbl_RemesasProveedor: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_REMESAS_PROVEEDOR_ID' + Required = True + ServerAutoRefresh = True + DictionaryEntry = 'RemesasCliente_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DisplayLabel = 'RemesasCliente_ID_EMPRESA' + DictionaryEntry = 'RemesasCliente_ID_EMPRESA' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'RemesasProveedor_REFERENCIA' + end + item + Name = 'TIPO' + DataType = datString + Size = 40 + DisplayLabel = 'Forma de pago' + DictionaryEntry = 'RemesasProveedor_TIPO' + end + item + Name = 'FECHA_REMESA' + DataType = datDateTime + DisplayLabel = 'RemesasCliente_FECHA_REMESA' + DictionaryEntry = 'RemesasCliente_FECHA_REMESA' + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DisplayLabel = 'RemesasCliente_DESCRIPCION' + DictionaryEntry = 'RemesasCliente_DESCRIPCION' + end + item + Name = 'ID_DATOS_BANCO' + DataType = datInteger + DictionaryEntry = 'RemesasCliente_ID_DATOS_BANCO' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'RemesasCliente_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'RemesasCliente_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DisplayLabel = 'RemesasCliente_USUARIO' + DictionaryEntry = 'RemesasCliente_USUARIO' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Banco' + DictionaryEntry = 'RemesasCliente_NOMBRE' + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + DisplayLabel = 'Cod. entidad' + DictionaryEntry = 'RemesasCliente_ENTIDAD' + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + DisplayLabel = 'Cod. sucursal' + DictionaryEntry = 'RemesasCliente_SUCURSAL' + end + item + Name = 'DC' + DataType = datString + Size = 15 + DictionaryEntry = 'RemesasCliente_DC' + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + DisplayLabel = 'Cuenta' + DictionaryEntry = 'RemesasCliente_CUENTA' + end + item + Name = 'SUFIJO_N19' + DataType = datString + Size = 3 + DisplayLabel = 'Sufijo N19' + DictionaryEntry = 'RemesasCliente_SUFIJO_N19' + end + item + Name = 'SUFIJO_N58' + DataType = datString + Size = 3 + DisplayLabel = 'Sufijo N58' + DictionaryEntry = 'RemesasCliente_SUFIJO_N58' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + DictionaryEntry = 'RemesasProveedor_IMPORTE_TOTAL' + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_RemesasProveedor + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'RemesasProveedor' + IndexDefs = <> + Left = 192 + Top = 88 + end + object ds_RemesasProveedor: TDADataSource + DataSet = tbl_RemesasProveedor.Dataset + DataTable = tbl_RemesasProveedor + Left = 192 + Top = 24 + end + object tbl_ListaAnosRemesas: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ANO' + DataType = datString + Size = 254 + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_RemesasProveedor + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'ListaAnosRemesas' + IndexDefs = <> + Left = 312 + Top = 96 + end + object ds_ListaAnosRemesas: TDADataSource + DataSet = tbl_ListaAnosRemesas.Dataset + DataTable = tbl_ListaAnosRemesas + Left = 312 + Top = 32 + end +end diff --git a/Source/Modulos/Remesas de proveedor/Data/uDataModuleRemesasProveedor.pas b/Source/Modulos/Remesas de proveedor/Data/uDataModuleRemesasProveedor.pas new file mode 100644 index 0000000..e6aaa8e --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Data/uDataModuleRemesasProveedor.pas @@ -0,0 +1,139 @@ +unit uDataModuleRemesasProveedor; + +interface + +uses + SysUtils, Classes, DB, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, uDataModuleBase, + uIDataModuleRemesasProveedor, uIDataModuleRemesasProveedorReport, uBizRemesasProveedor, + uDARemoteDataAdapter, uDADataStreamer, uDABin2DataStreamer, uDAInterfaces, + uDAMemDataTable; + +type + TDataModuleRemesasProveedor = class(TDataModuleBase, IDataModuleRemesasProveedor, IDataModuleRemesasProveedorReport) + RORemoteService: TRORemoteService; + Bin2DataStreamer: TDABin2DataStreamer; + rda_RemesasProveedor: TDARemoteDataAdapter; + tbl_RemesasProveedor: TDAMemDataTable; + ds_RemesasProveedor: TDADataSource; + tbl_ListaAnosRemesas: TDAMemDataTable; + ds_ListaAnosRemesas: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + + protected + procedure AsignarClaseNegocio(var ARemesaProveedor: TDAMemDataTable); virtual; + + public + function GetItems : IBizRemesaProveedor; overload; + function GetItem(const ID : Integer) : IBizRemesaProveedor; + function NewItem : IBizRemesaProveedor; + + // Report + function GetReport(const ID: String): Binary; + + function GetAnosItems : TStringList; + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, + schRemesasProveedorClient_Intf, Dialogs; + +{ TdmRemesasProveedor } + +procedure TDataModuleRemesasProveedor.AsignarClaseNegocio(var ARemesaProveedor: TDAMemDataTable); +begin + ARemesaProveedor.BusinessRulesID := BIZ_CLIENT_REMESAPROVEEDOR; +end; + +procedure TDataModuleRemesasProveedor.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + + +function TDataModuleRemesasProveedor.GetReport(const ID: String): Binary; +begin +// Result := (RORemoteService as IsrvRemesasProveedor).GenerateReport(ID); +end; + +function TDataModuleRemesasProveedor.NewItem: IBizRemesaProveedor; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleRemesasProveedor.GetAnosItems: TStringList; +var + AListaAnos: TStringList; +begin + AListaAnos := TStringList.Create; + ShowHourglassCursor; + try + with tbl_ListaAnosRemesas do + begin + Open; + First; + while not eof do + begin + AListaAnos.Add(Format('%s=%s', [Fields[0].AsString, Fields[0].AsString])); + Next; + end; + Close; + end; + Result := AListaAnos; + finally + HideHourglassCursor; + end; +end; + +function TDataModuleRemesasProveedor.GetItem(const ID: Integer): IBizRemesaProveedor; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + + with Result.DataTable.DynamicWhere do + begin + // (ID = :ID) + Condicion := NewBinaryExpression(NewField('', fld_RemesasProveedorID), NewConstant(ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TDataModuleRemesasProveedor.GetItems: IBizRemesaProveedor; +var + ARemesaProveedor : TDAMemDataTable; +begin + ShowHourglassCursor; + try + ARemesaProveedor := CloneDataTable(tbl_RemesasProveedor); + AsignarClaseNegocio(ARemesaProveedor); + + // EL CAMPO REFERENCIA TIENE QUE SER AUTOREFRESH!!!!! + ARemesaProveedor.FieldByName(fld_RemesasProveedorREFERENCIA).ServerAutoRefresh := TRUE; + ARemesaProveedor.FieldByName(fld_RemesasProveedorIMPORTE_TOTAL).ServerAutoRefresh := TRUE; + + Result := (ARemesaProveedor as IBizRemesaProveedor); + finally + HideHourglassCursor; + end; +end; + + +end. diff --git a/Source/Modulos/Remesas de proveedor/Model/Data/uIDataModuleRemesasProveedor.dcu b/Source/Modulos/Remesas de proveedor/Model/Data/uIDataModuleRemesasProveedor.dcu new file mode 100644 index 0000000..3657335 Binary files /dev/null and b/Source/Modulos/Remesas de proveedor/Model/Data/uIDataModuleRemesasProveedor.dcu differ diff --git a/Source/Modulos/Remesas de proveedor/Model/Data/uIDataModuleRemesasProveedor.pas b/Source/Modulos/Remesas de proveedor/Model/Data/uIDataModuleRemesasProveedor.pas new file mode 100644 index 0000000..3ffaafe --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Model/Data/uIDataModuleRemesasProveedor.pas @@ -0,0 +1,19 @@ +unit uIDataModuleRemesasProveedor; + +interface + +uses + Classes, uBizRemesasProveedor; + +type + IDataModuleRemesasProveedor = interface + ['{6073E44A-0B61-4D26-BCDE-33150D88C91B}'] + function GetAnosItems : TStringList; + function GetItems: IBizRemesaProveedor; + function GetItem(const ID : Integer) : IBizRemesaProveedor; + function NewItem : IBizRemesaProveedor; + end; + +implementation + +end. diff --git a/Source/Modulos/Remesas de proveedor/Model/Data/uIDataModuleRemesasProveedorReport.dcu b/Source/Modulos/Remesas de proveedor/Model/Data/uIDataModuleRemesasProveedorReport.dcu new file mode 100644 index 0000000..e61f1e0 Binary files /dev/null and b/Source/Modulos/Remesas de proveedor/Model/Data/uIDataModuleRemesasProveedorReport.dcu differ diff --git a/Source/Modulos/Remesas de proveedor/Model/Data/uIDataModuleRemesasProveedorReport.pas b/Source/Modulos/Remesas de proveedor/Model/Data/uIDataModuleRemesasProveedorReport.pas new file mode 100644 index 0000000..728a02c --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Model/Data/uIDataModuleRemesasProveedorReport.pas @@ -0,0 +1,16 @@ +unit uIDataModuleRemesasProveedorReport; + +interface + +uses + SysUtils, Classes, uROTypes; + +type + IDataModuleRemesasProveedorReport = interface + ['{7A2C1A03-51EB-4F7F-937F-660B31EE18B2}'] + function GetReport(const ID: String): Binary; + end; + +implementation + +end. diff --git a/Source/Modulos/Remesas de proveedor/Model/RemesasProveedor_model.bdsproj b/Source/Modulos/Remesas de proveedor/Model/RemesasProveedor_model.bdsproj new file mode 100644 index 0000000..2d877da --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Model/RemesasProveedor_model.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + RemesasProveedor_model.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + True + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Remesas de proveedor/Model/RemesasProveedor_model.dcu b/Source/Modulos/Remesas de proveedor/Model/RemesasProveedor_model.dcu new file mode 100644 index 0000000..741ea23 Binary files /dev/null and b/Source/Modulos/Remesas de proveedor/Model/RemesasProveedor_model.dcu differ diff --git a/Source/Modulos/Remesas de proveedor/Model/RemesasProveedor_model.dpk b/Source/Modulos/Remesas de proveedor/Model/RemesasProveedor_model.dpk new file mode 100644 index 0000000..d032748 Binary files /dev/null and b/Source/Modulos/Remesas de proveedor/Model/RemesasProveedor_model.dpk differ diff --git a/Source/Modulos/Remesas de proveedor/Model/RemesasProveedor_model.dproj b/Source/Modulos/Remesas de proveedor/Model/RemesasProveedor_model.dproj new file mode 100644 index 0000000..bd67d5c --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Model/RemesasProveedor_model.dproj @@ -0,0 +1,589 @@ + + + {e4f81792-84cf-4900-a6ab-18f6dd2c7ada} + RemesasProveedor_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\RemesasProveedor_model.bpl + + + 7.0 + False + False + False + True + 0 + True + True + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + False + True + True + True + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + RemesasProveedor_model.dpk + + + + + + + MainSource + + + + + + + + + + + + diff --git a/Source/Modulos/Remesas de proveedor/Model/RemesasProveedor_model.rc b/Source/Modulos/Remesas de proveedor/Model/RemesasProveedor_model.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Model/RemesasProveedor_model.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Remesas de proveedor/Model/RemesasProveedor_model.res b/Source/Modulos/Remesas de proveedor/Model/RemesasProveedor_model.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Remesas de proveedor/Model/RemesasProveedor_model.res differ diff --git a/Source/Modulos/Remesas de proveedor/Model/schRemesasProveedorClient_Intf.dcu b/Source/Modulos/Remesas de proveedor/Model/schRemesasProveedorClient_Intf.dcu new file mode 100644 index 0000000..17c1403 Binary files /dev/null and b/Source/Modulos/Remesas de proveedor/Model/schRemesasProveedorClient_Intf.dcu differ diff --git a/Source/Modulos/Remesas de proveedor/Model/schRemesasProveedorClient_Intf.pas b/Source/Modulos/Remesas de proveedor/Model/schRemesasProveedorClient_Intf.pas new file mode 100644 index 0000000..ee190fd --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Model/schRemesasProveedorClient_Intf.pas @@ -0,0 +1,771 @@ +unit schRemesasProveedorClient_Intf; + +interface + +uses + Classes, DB, schBase_Intf, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_ListaAnosRemesas = '{261AB8E1-0E2C-4B04-A9BE-2B72296D2515}'; + RID_RemesasProveedor = '{35FDE746-5F60-48C1-B43D-FEA13E00E42D}'; + + { Data table names } + nme_ListaAnosRemesas = 'ListaAnosRemesas'; + nme_RemesasProveedor = 'RemesasProveedor'; + + { ListaAnosRemesas fields } + fld_ListaAnosRemesasANO = 'ANO'; + + { ListaAnosRemesas field indexes } + idx_ListaAnosRemesasANO = 0; + + { RemesasProveedor fields } + fld_RemesasProveedorID = 'ID'; + fld_RemesasProveedorID_EMPRESA = 'ID_EMPRESA'; + fld_RemesasProveedorREFERENCIA = 'REFERENCIA'; + fld_RemesasProveedorTIPO = 'TIPO'; + fld_RemesasProveedorFECHA_REMESA = 'FECHA_REMESA'; + fld_RemesasProveedorDESCRIPCION = 'DESCRIPCION'; + fld_RemesasProveedorID_DATOS_BANCO = 'ID_DATOS_BANCO'; + fld_RemesasProveedorFECHA_ALTA = 'FECHA_ALTA'; + fld_RemesasProveedorFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_RemesasProveedorUSUARIO = 'USUARIO'; + fld_RemesasProveedorNOMBRE = 'NOMBRE'; + fld_RemesasProveedorENTIDAD = 'ENTIDAD'; + fld_RemesasProveedorSUCURSAL = 'SUCURSAL'; + fld_RemesasProveedorDC = 'DC'; + fld_RemesasProveedorCUENTA = 'CUENTA'; + fld_RemesasProveedorSUFIJO_N19 = 'SUFIJO_N19'; + fld_RemesasProveedorSUFIJO_N58 = 'SUFIJO_N58'; + fld_RemesasProveedorIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + + { RemesasProveedor field indexes } + idx_RemesasProveedorID = 0; + idx_RemesasProveedorID_EMPRESA = 1; + idx_RemesasProveedorREFERENCIA = 2; + idx_RemesasProveedorTIPO = 3; + idx_RemesasProveedorFECHA_REMESA = 4; + idx_RemesasProveedorDESCRIPCION = 5; + idx_RemesasProveedorID_DATOS_BANCO = 6; + idx_RemesasProveedorFECHA_ALTA = 7; + idx_RemesasProveedorFECHA_MODIFICACION = 8; + idx_RemesasProveedorUSUARIO = 9; + idx_RemesasProveedorNOMBRE = 10; + idx_RemesasProveedorENTIDAD = 11; + idx_RemesasProveedorSUCURSAL = 12; + idx_RemesasProveedorDC = 13; + idx_RemesasProveedorCUENTA = 14; + idx_RemesasProveedorSUFIJO_N19 = 15; + idx_RemesasProveedorSUFIJO_N58 = 16; + idx_RemesasProveedorIMPORTE_TOTAL = 17; + +type + { IListaAnosRemesas } + IListaAnosRemesas = interface(IDAStronglyTypedDataTable) + ['{65D1E740-08B2-4D21-AED3-892D643446B9}'] + { Property getters and setters } + function GetANOValue: String; + procedure SetANOValue(const aValue: String); + function GetANOIsNull: Boolean; + procedure SetANOIsNull(const aValue: Boolean); + + + { Properties } + property ANO: String read GetANOValue write SetANOValue; + property ANOIsNull: Boolean read GetANOIsNull write SetANOIsNull; + end; + + { TListaAnosRemesasDataTableRules } + TListaAnosRemesasDataTableRules = class(TIntfObjectDADataTableRules, IListaAnosRemesas) + private + protected + { Property getters and setters } + function GetANOValue: String; virtual; + procedure SetANOValue(const aValue: String); virtual; + function GetANOIsNull: Boolean; virtual; + procedure SetANOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ANO: String read GetANOValue write SetANOValue; + property ANOIsNull: Boolean read GetANOIsNull write SetANOIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IRemesasProveedor } + IRemesasProveedor = interface(IDAStronglyTypedDataTable) + ['{1708918B-503F-4D94-93B5-78AE00B1FD28}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_EMPRESAIsNull: Boolean; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetTIPOValue: String; + procedure SetTIPOValue(const aValue: String); + function GetTIPOIsNull: Boolean; + procedure SetTIPOIsNull(const aValue: Boolean); + function GetFECHA_REMESAValue: DateTime; + procedure SetFECHA_REMESAValue(const aValue: DateTime); + function GetFECHA_REMESAIsNull: Boolean; + procedure SetFECHA_REMESAIsNull(const aValue: Boolean); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetDESCRIPCIONIsNull: Boolean; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); + function GetID_DATOS_BANCOValue: Integer; + procedure SetID_DATOS_BANCOValue(const aValue: Integer); + function GetID_DATOS_BANCOIsNull: Boolean; + procedure SetID_DATOS_BANCOIsNull(const aValue: Boolean); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_ALTAIsNull: Boolean; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONIsNull: Boolean; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetUSUARIOIsNull: Boolean; + procedure SetUSUARIOIsNull(const aValue: Boolean); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetNOMBREIsNull: Boolean; + procedure SetNOMBREIsNull(const aValue: Boolean); + function GetENTIDADValue: String; + procedure SetENTIDADValue(const aValue: String); + function GetENTIDADIsNull: Boolean; + procedure SetENTIDADIsNull(const aValue: Boolean); + function GetSUCURSALValue: String; + procedure SetSUCURSALValue(const aValue: String); + function GetSUCURSALIsNull: Boolean; + procedure SetSUCURSALIsNull(const aValue: Boolean); + function GetDCValue: String; + procedure SetDCValue(const aValue: String); + function GetDCIsNull: Boolean; + procedure SetDCIsNull(const aValue: Boolean); + function GetCUENTAValue: String; + procedure SetCUENTAValue(const aValue: String); + function GetCUENTAIsNull: Boolean; + procedure SetCUENTAIsNull(const aValue: Boolean); + function GetSUFIJO_N19Value: String; + procedure SetSUFIJO_N19Value(const aValue: String); + function GetSUFIJO_N19IsNull: Boolean; + procedure SetSUFIJO_N19IsNull(const aValue: Boolean); + function GetSUFIJO_N58Value: String; + procedure SetSUFIJO_N58Value(const aValue: String); + function GetSUFIJO_N58IsNull: Boolean; + procedure SetSUFIJO_N58IsNull(const aValue: Boolean); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetIMPORTE_TOTALIsNull: Boolean; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull: Boolean read GetTIPOIsNull write SetTIPOIsNull; + property FECHA_REMESA: DateTime read GetFECHA_REMESAValue write SetFECHA_REMESAValue; + property FECHA_REMESAIsNull: Boolean read GetFECHA_REMESAIsNull write SetFECHA_REMESAIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property ID_DATOS_BANCO: Integer read GetID_DATOS_BANCOValue write SetID_DATOS_BANCOValue; + property ID_DATOS_BANCOIsNull: Boolean read GetID_DATOS_BANCOIsNull write SetID_DATOS_BANCOIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property ENTIDAD: String read GetENTIDADValue write SetENTIDADValue; + property ENTIDADIsNull: Boolean read GetENTIDADIsNull write SetENTIDADIsNull; + property SUCURSAL: String read GetSUCURSALValue write SetSUCURSALValue; + property SUCURSALIsNull: Boolean read GetSUCURSALIsNull write SetSUCURSALIsNull; + property DC: String read GetDCValue write SetDCValue; + property DCIsNull: Boolean read GetDCIsNull write SetDCIsNull; + property CUENTA: String read GetCUENTAValue write SetCUENTAValue; + property CUENTAIsNull: Boolean read GetCUENTAIsNull write SetCUENTAIsNull; + property SUFIJO_N19: String read GetSUFIJO_N19Value write SetSUFIJO_N19Value; + property SUFIJO_N19IsNull: Boolean read GetSUFIJO_N19IsNull write SetSUFIJO_N19IsNull; + property SUFIJO_N58: String read GetSUFIJO_N58Value write SetSUFIJO_N58Value; + property SUFIJO_N58IsNull: Boolean read GetSUFIJO_N58IsNull write SetSUFIJO_N58IsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + end; + + { TRemesasProveedorDataTableRules } + TRemesasProveedorDataTableRules = class(TIntfObjectDADataTableRules, IRemesasProveedor) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetTIPOValue: String; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + function GetTIPOIsNull: Boolean; virtual; + procedure SetTIPOIsNull(const aValue: Boolean); virtual; + function GetFECHA_REMESAValue: DateTime; virtual; + procedure SetFECHA_REMESAValue(const aValue: DateTime); virtual; + function GetFECHA_REMESAIsNull: Boolean; virtual; + procedure SetFECHA_REMESAIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + function GetID_DATOS_BANCOValue: Integer; virtual; + procedure SetID_DATOS_BANCOValue(const aValue: Integer); virtual; + function GetID_DATOS_BANCOIsNull: Boolean; virtual; + procedure SetID_DATOS_BANCOIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetENTIDADValue: String; virtual; + procedure SetENTIDADValue(const aValue: String); virtual; + function GetENTIDADIsNull: Boolean; virtual; + procedure SetENTIDADIsNull(const aValue: Boolean); virtual; + function GetSUCURSALValue: String; virtual; + procedure SetSUCURSALValue(const aValue: String); virtual; + function GetSUCURSALIsNull: Boolean; virtual; + procedure SetSUCURSALIsNull(const aValue: Boolean); virtual; + function GetDCValue: String; virtual; + procedure SetDCValue(const aValue: String); virtual; + function GetDCIsNull: Boolean; virtual; + procedure SetDCIsNull(const aValue: Boolean); virtual; + function GetCUENTAValue: String; virtual; + procedure SetCUENTAValue(const aValue: String); virtual; + function GetCUENTAIsNull: Boolean; virtual; + procedure SetCUENTAIsNull(const aValue: Boolean); virtual; + function GetSUFIJO_N19Value: String; virtual; + procedure SetSUFIJO_N19Value(const aValue: String); virtual; + function GetSUFIJO_N19IsNull: Boolean; virtual; + procedure SetSUFIJO_N19IsNull(const aValue: Boolean); virtual; + function GetSUFIJO_N58Value: String; virtual; + procedure SetSUFIJO_N58Value(const aValue: String); virtual; + function GetSUFIJO_N58IsNull: Boolean; virtual; + procedure SetSUFIJO_N58IsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull: Boolean read GetTIPOIsNull write SetTIPOIsNull; + property FECHA_REMESA: DateTime read GetFECHA_REMESAValue write SetFECHA_REMESAValue; + property FECHA_REMESAIsNull: Boolean read GetFECHA_REMESAIsNull write SetFECHA_REMESAIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property ID_DATOS_BANCO: Integer read GetID_DATOS_BANCOValue write SetID_DATOS_BANCOValue; + property ID_DATOS_BANCOIsNull: Boolean read GetID_DATOS_BANCOIsNull write SetID_DATOS_BANCOIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property ENTIDAD: String read GetENTIDADValue write SetENTIDADValue; + property ENTIDADIsNull: Boolean read GetENTIDADIsNull write SetENTIDADIsNull; + property SUCURSAL: String read GetSUCURSALValue write SetSUCURSALValue; + property SUCURSALIsNull: Boolean read GetSUCURSALIsNull write SetSUCURSALIsNull; + property DC: String read GetDCValue write SetDCValue; + property DCIsNull: Boolean read GetDCIsNull write SetDCIsNull; + property CUENTA: String read GetCUENTAValue write SetCUENTAValue; + property CUENTAIsNull: Boolean read GetCUENTAIsNull write SetCUENTAIsNull; + property SUFIJO_N19: String read GetSUFIJO_N19Value write SetSUFIJO_N19Value; + property SUFIJO_N19IsNull: Boolean read GetSUFIJO_N19IsNull write SetSUFIJO_N19IsNull; + property SUFIJO_N58: String read GetSUFIJO_N58Value write SetSUFIJO_N58Value; + property SUFIJO_N58IsNull: Boolean read GetSUFIJO_N58IsNull write SetSUFIJO_N58IsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants, uROBinaryHelpers; + +{ TListaAnosRemesasDataTableRules } +constructor TListaAnosRemesasDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TListaAnosRemesasDataTableRules.Destroy; +begin + inherited; +end; + +function TListaAnosRemesasDataTableRules.GetANOValue: String; +begin + result := DataTable.Fields[idx_ListaAnosRemesasANO].AsString; +end; + +procedure TListaAnosRemesasDataTableRules.SetANOValue(const aValue: String); +begin + DataTable.Fields[idx_ListaAnosRemesasANO].AsString := aValue; +end; + +function TListaAnosRemesasDataTableRules.GetANOIsNull: boolean; +begin + result := DataTable.Fields[idx_ListaAnosRemesasANO].IsNull; +end; + +procedure TListaAnosRemesasDataTableRules.SetANOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ListaAnosRemesasANO].AsVariant := Null; +end; + + +{ TRemesasProveedorDataTableRules } +constructor TRemesasProveedorDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TRemesasProveedorDataTableRules.Destroy; +begin + inherited; +end; + +function TRemesasProveedorDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_RemesasProveedorID].AsInteger; +end; + +procedure TRemesasProveedorDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_RemesasProveedorID].AsInteger := aValue; +end; + +function TRemesasProveedorDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasProveedorID].IsNull; +end; + +procedure TRemesasProveedorDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasProveedorID].AsVariant := Null; +end; + +function TRemesasProveedorDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_RemesasProveedorID_EMPRESA].AsInteger; +end; + +procedure TRemesasProveedorDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_RemesasProveedorID_EMPRESA].AsInteger := aValue; +end; + +function TRemesasProveedorDataTableRules.GetID_EMPRESAIsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasProveedorID_EMPRESA].IsNull; +end; + +procedure TRemesasProveedorDataTableRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasProveedorID_EMPRESA].AsVariant := Null; +end; + +function TRemesasProveedorDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_RemesasProveedorREFERENCIA].AsString; +end; + +procedure TRemesasProveedorDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_RemesasProveedorREFERENCIA].AsString := aValue; +end; + +function TRemesasProveedorDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasProveedorREFERENCIA].IsNull; +end; + +procedure TRemesasProveedorDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasProveedorREFERENCIA].AsVariant := Null; +end; + +function TRemesasProveedorDataTableRules.GetTIPOValue: String; +begin + result := DataTable.Fields[idx_RemesasProveedorTIPO].AsString; +end; + +procedure TRemesasProveedorDataTableRules.SetTIPOValue(const aValue: String); +begin + DataTable.Fields[idx_RemesasProveedorTIPO].AsString := aValue; +end; + +function TRemesasProveedorDataTableRules.GetTIPOIsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasProveedorTIPO].IsNull; +end; + +procedure TRemesasProveedorDataTableRules.SetTIPOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasProveedorTIPO].AsVariant := Null; +end; + +function TRemesasProveedorDataTableRules.GetFECHA_REMESAValue: DateTime; +begin + result := DataTable.Fields[idx_RemesasProveedorFECHA_REMESA].AsDateTime; +end; + +procedure TRemesasProveedorDataTableRules.SetFECHA_REMESAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RemesasProveedorFECHA_REMESA].AsDateTime := aValue; +end; + +function TRemesasProveedorDataTableRules.GetFECHA_REMESAIsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasProveedorFECHA_REMESA].IsNull; +end; + +procedure TRemesasProveedorDataTableRules.SetFECHA_REMESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasProveedorFECHA_REMESA].AsVariant := Null; +end; + +function TRemesasProveedorDataTableRules.GetDESCRIPCIONValue: String; +begin + result := DataTable.Fields[idx_RemesasProveedorDESCRIPCION].AsString; +end; + +procedure TRemesasProveedorDataTableRules.SetDESCRIPCIONValue(const aValue: String); +begin + DataTable.Fields[idx_RemesasProveedorDESCRIPCION].AsString := aValue; +end; + +function TRemesasProveedorDataTableRules.GetDESCRIPCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasProveedorDESCRIPCION].IsNull; +end; + +procedure TRemesasProveedorDataTableRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasProveedorDESCRIPCION].AsVariant := Null; +end; + +function TRemesasProveedorDataTableRules.GetID_DATOS_BANCOValue: Integer; +begin + result := DataTable.Fields[idx_RemesasProveedorID_DATOS_BANCO].AsInteger; +end; + +procedure TRemesasProveedorDataTableRules.SetID_DATOS_BANCOValue(const aValue: Integer); +begin + DataTable.Fields[idx_RemesasProveedorID_DATOS_BANCO].AsInteger := aValue; +end; + +function TRemesasProveedorDataTableRules.GetID_DATOS_BANCOIsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasProveedorID_DATOS_BANCO].IsNull; +end; + +procedure TRemesasProveedorDataTableRules.SetID_DATOS_BANCOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasProveedorID_DATOS_BANCO].AsVariant := Null; +end; + +function TRemesasProveedorDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_RemesasProveedorFECHA_ALTA].AsDateTime; +end; + +procedure TRemesasProveedorDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RemesasProveedorFECHA_ALTA].AsDateTime := aValue; +end; + +function TRemesasProveedorDataTableRules.GetFECHA_ALTAIsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasProveedorFECHA_ALTA].IsNull; +end; + +procedure TRemesasProveedorDataTableRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasProveedorFECHA_ALTA].AsVariant := Null; +end; + +function TRemesasProveedorDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_RemesasProveedorFECHA_MODIFICACION].AsDateTime; +end; + +procedure TRemesasProveedorDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RemesasProveedorFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TRemesasProveedorDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasProveedorFECHA_MODIFICACION].IsNull; +end; + +procedure TRemesasProveedorDataTableRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasProveedorFECHA_MODIFICACION].AsVariant := Null; +end; + +function TRemesasProveedorDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_RemesasProveedorUSUARIO].AsString; +end; + +procedure TRemesasProveedorDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_RemesasProveedorUSUARIO].AsString := aValue; +end; + +function TRemesasProveedorDataTableRules.GetUSUARIOIsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasProveedorUSUARIO].IsNull; +end; + +procedure TRemesasProveedorDataTableRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasProveedorUSUARIO].AsVariant := Null; +end; + +function TRemesasProveedorDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_RemesasProveedorNOMBRE].AsString; +end; + +procedure TRemesasProveedorDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_RemesasProveedorNOMBRE].AsString := aValue; +end; + +function TRemesasProveedorDataTableRules.GetNOMBREIsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasProveedorNOMBRE].IsNull; +end; + +procedure TRemesasProveedorDataTableRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasProveedorNOMBRE].AsVariant := Null; +end; + +function TRemesasProveedorDataTableRules.GetENTIDADValue: String; +begin + result := DataTable.Fields[idx_RemesasProveedorENTIDAD].AsString; +end; + +procedure TRemesasProveedorDataTableRules.SetENTIDADValue(const aValue: String); +begin + DataTable.Fields[idx_RemesasProveedorENTIDAD].AsString := aValue; +end; + +function TRemesasProveedorDataTableRules.GetENTIDADIsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasProveedorENTIDAD].IsNull; +end; + +procedure TRemesasProveedorDataTableRules.SetENTIDADIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasProveedorENTIDAD].AsVariant := Null; +end; + +function TRemesasProveedorDataTableRules.GetSUCURSALValue: String; +begin + result := DataTable.Fields[idx_RemesasProveedorSUCURSAL].AsString; +end; + +procedure TRemesasProveedorDataTableRules.SetSUCURSALValue(const aValue: String); +begin + DataTable.Fields[idx_RemesasProveedorSUCURSAL].AsString := aValue; +end; + +function TRemesasProveedorDataTableRules.GetSUCURSALIsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasProveedorSUCURSAL].IsNull; +end; + +procedure TRemesasProveedorDataTableRules.SetSUCURSALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasProveedorSUCURSAL].AsVariant := Null; +end; + +function TRemesasProveedorDataTableRules.GetDCValue: String; +begin + result := DataTable.Fields[idx_RemesasProveedorDC].AsString; +end; + +procedure TRemesasProveedorDataTableRules.SetDCValue(const aValue: String); +begin + DataTable.Fields[idx_RemesasProveedorDC].AsString := aValue; +end; + +function TRemesasProveedorDataTableRules.GetDCIsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasProveedorDC].IsNull; +end; + +procedure TRemesasProveedorDataTableRules.SetDCIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasProveedorDC].AsVariant := Null; +end; + +function TRemesasProveedorDataTableRules.GetCUENTAValue: String; +begin + result := DataTable.Fields[idx_RemesasProveedorCUENTA].AsString; +end; + +procedure TRemesasProveedorDataTableRules.SetCUENTAValue(const aValue: String); +begin + DataTable.Fields[idx_RemesasProveedorCUENTA].AsString := aValue; +end; + +function TRemesasProveedorDataTableRules.GetCUENTAIsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasProveedorCUENTA].IsNull; +end; + +procedure TRemesasProveedorDataTableRules.SetCUENTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasProveedorCUENTA].AsVariant := Null; +end; + +function TRemesasProveedorDataTableRules.GetSUFIJO_N19Value: String; +begin + result := DataTable.Fields[idx_RemesasProveedorSUFIJO_N19].AsString; +end; + +procedure TRemesasProveedorDataTableRules.SetSUFIJO_N19Value(const aValue: String); +begin + DataTable.Fields[idx_RemesasProveedorSUFIJO_N19].AsString := aValue; +end; + +function TRemesasProveedorDataTableRules.GetSUFIJO_N19IsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasProveedorSUFIJO_N19].IsNull; +end; + +procedure TRemesasProveedorDataTableRules.SetSUFIJO_N19IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasProveedorSUFIJO_N19].AsVariant := Null; +end; + +function TRemesasProveedorDataTableRules.GetSUFIJO_N58Value: String; +begin + result := DataTable.Fields[idx_RemesasProveedorSUFIJO_N58].AsString; +end; + +procedure TRemesasProveedorDataTableRules.SetSUFIJO_N58Value(const aValue: String); +begin + DataTable.Fields[idx_RemesasProveedorSUFIJO_N58].AsString := aValue; +end; + +function TRemesasProveedorDataTableRules.GetSUFIJO_N58IsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasProveedorSUFIJO_N58].IsNull; +end; + +procedure TRemesasProveedorDataTableRules.SetSUFIJO_N58IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasProveedorSUFIJO_N58].AsVariant := Null; +end; + +function TRemesasProveedorDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_RemesasProveedorIMPORTE_TOTAL].AsCurrency; +end; + +procedure TRemesasProveedorDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_RemesasProveedorIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TRemesasProveedorDataTableRules.GetIMPORTE_TOTALIsNull: boolean; +begin + result := DataTable.Fields[idx_RemesasProveedorIMPORTE_TOTAL].IsNull; +end; + +procedure TRemesasProveedorDataTableRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_RemesasProveedorIMPORTE_TOTAL].AsVariant := Null; +end; + + +initialization + RegisterDataTableRules(RID_ListaAnosRemesas, TListaAnosRemesasDataTableRules); + RegisterDataTableRules(RID_RemesasProveedor, TRemesasProveedorDataTableRules); + +end. diff --git a/Source/Modulos/Remesas de proveedor/Model/schRemesasProveedorServer_Intf.dcu b/Source/Modulos/Remesas de proveedor/Model/schRemesasProveedorServer_Intf.dcu new file mode 100644 index 0000000..5478642 Binary files /dev/null and b/Source/Modulos/Remesas de proveedor/Model/schRemesasProveedorServer_Intf.dcu differ diff --git a/Source/Modulos/Remesas de proveedor/Model/schRemesasProveedorServer_Intf.pas b/Source/Modulos/Remesas de proveedor/Model/schRemesasProveedorServer_Intf.pas new file mode 100644 index 0000000..a036f25 --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Model/schRemesasProveedorServer_Intf.pas @@ -0,0 +1,910 @@ +unit schRemesasProveedorServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schRemesasProveedorClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_ListaAnosRemesasDelta = '{FFBEBD9A-41DB-4885-9C59-D5B28D9224ED}'; + RID_RemesasProveedorDelta = '{EFD80AFB-4227-4D5E-8EDC-24F95B41B3D4}'; + +type + { IListaAnosRemesasDelta } + IListaAnosRemesasDelta = interface(IListaAnosRemesas) + ['{FFBEBD9A-41DB-4885-9C59-D5B28D9224ED}'] + { Property getters and setters } + function GetOldANOValue : String; + + { Properties } + property OldANO : String read GetOldANOValue; + end; + + { TListaAnosRemesasBusinessProcessorRules } + TListaAnosRemesasBusinessProcessorRules = class(TDABusinessProcessorRules, IListaAnosRemesas, IListaAnosRemesasDelta) + private + protected + { Property getters and setters } + function GetANOValue: String; virtual; + function GetANOIsNull: Boolean; virtual; + function GetOldANOValue: String; virtual; + function GetOldANOIsNull: Boolean; virtual; + procedure SetANOValue(const aValue: String); virtual; + procedure SetANOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ANO : String read GetANOValue write SetANOValue; + property ANOIsNull : Boolean read GetANOIsNull write SetANOIsNull; + property OldANO : String read GetOldANOValue; + property OldANOIsNull : Boolean read GetOldANOIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IRemesasProveedorDelta } + IRemesasProveedorDelta = interface(IRemesasProveedor) + ['{EFD80AFB-4227-4D5E-8EDC-24F95B41B3D4}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_EMPRESAValue : Integer; + function GetOldREFERENCIAValue : String; + function GetOldTIPOValue : String; + function GetOldFECHA_REMESAValue : DateTime; + function GetOldDESCRIPCIONValue : String; + function GetOldID_DATOS_BANCOValue : Integer; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + function GetOldUSUARIOValue : String; + function GetOldNOMBREValue : String; + function GetOldENTIDADValue : String; + function GetOldSUCURSALValue : String; + function GetOldDCValue : String; + function GetOldCUENTAValue : String; + function GetOldSUFIJO_N19Value : String; + function GetOldSUFIJO_N58Value : String; + function GetOldIMPORTE_TOTALValue : Currency; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldTIPO : String read GetOldTIPOValue; + property OldFECHA_REMESA : DateTime read GetOldFECHA_REMESAValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldID_DATOS_BANCO : Integer read GetOldID_DATOS_BANCOValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldENTIDAD : String read GetOldENTIDADValue; + property OldSUCURSAL : String read GetOldSUCURSALValue; + property OldDC : String read GetOldDCValue; + property OldCUENTA : String read GetOldCUENTAValue; + property OldSUFIJO_N19 : String read GetOldSUFIJO_N19Value; + property OldSUFIJO_N58 : String read GetOldSUFIJO_N58Value; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + end; + + { TRemesasProveedorBusinessProcessorRules } + TRemesasProveedorBusinessProcessorRules = class(TDABusinessProcessorRules, IRemesasProveedor, IRemesasProveedorDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetTIPOValue: String; virtual; + function GetTIPOIsNull: Boolean; virtual; + function GetOldTIPOValue: String; virtual; + function GetOldTIPOIsNull: Boolean; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + procedure SetTIPOIsNull(const aValue: Boolean); virtual; + function GetFECHA_REMESAValue: DateTime; virtual; + function GetFECHA_REMESAIsNull: Boolean; virtual; + function GetOldFECHA_REMESAValue: DateTime; virtual; + function GetOldFECHA_REMESAIsNull: Boolean; virtual; + procedure SetFECHA_REMESAValue(const aValue: DateTime); virtual; + procedure SetFECHA_REMESAIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + function GetID_DATOS_BANCOValue: Integer; virtual; + function GetID_DATOS_BANCOIsNull: Boolean; virtual; + function GetOldID_DATOS_BANCOValue: Integer; virtual; + function GetOldID_DATOS_BANCOIsNull: Boolean; virtual; + procedure SetID_DATOS_BANCOValue(const aValue: Integer); virtual; + procedure SetID_DATOS_BANCOIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + function GetUSUARIOIsNull: Boolean; virtual; + function GetOldUSUARIOValue: String; virtual; + function GetOldUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + function GetNOMBREIsNull: Boolean; virtual; + function GetOldNOMBREValue: String; virtual; + function GetOldNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetENTIDADValue: String; virtual; + function GetENTIDADIsNull: Boolean; virtual; + function GetOldENTIDADValue: String; virtual; + function GetOldENTIDADIsNull: Boolean; virtual; + procedure SetENTIDADValue(const aValue: String); virtual; + procedure SetENTIDADIsNull(const aValue: Boolean); virtual; + function GetSUCURSALValue: String; virtual; + function GetSUCURSALIsNull: Boolean; virtual; + function GetOldSUCURSALValue: String; virtual; + function GetOldSUCURSALIsNull: Boolean; virtual; + procedure SetSUCURSALValue(const aValue: String); virtual; + procedure SetSUCURSALIsNull(const aValue: Boolean); virtual; + function GetDCValue: String; virtual; + function GetDCIsNull: Boolean; virtual; + function GetOldDCValue: String; virtual; + function GetOldDCIsNull: Boolean; virtual; + procedure SetDCValue(const aValue: String); virtual; + procedure SetDCIsNull(const aValue: Boolean); virtual; + function GetCUENTAValue: String; virtual; + function GetCUENTAIsNull: Boolean; virtual; + function GetOldCUENTAValue: String; virtual; + function GetOldCUENTAIsNull: Boolean; virtual; + procedure SetCUENTAValue(const aValue: String); virtual; + procedure SetCUENTAIsNull(const aValue: Boolean); virtual; + function GetSUFIJO_N19Value: String; virtual; + function GetSUFIJO_N19IsNull: Boolean; virtual; + function GetOldSUFIJO_N19Value: String; virtual; + function GetOldSUFIJO_N19IsNull: Boolean; virtual; + procedure SetSUFIJO_N19Value(const aValue: String); virtual; + procedure SetSUFIJO_N19IsNull(const aValue: Boolean); virtual; + function GetSUFIJO_N58Value: String; virtual; + function GetSUFIJO_N58IsNull: Boolean; virtual; + function GetOldSUFIJO_N58Value: String; virtual; + function GetOldSUFIJO_N58IsNull: Boolean; virtual; + procedure SetSUFIJO_N58Value(const aValue: String); virtual; + procedure SetSUFIJO_N58IsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull : Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_EMPRESAIsNull : Boolean read GetOldID_EMPRESAIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property TIPO : String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull : Boolean read GetTIPOIsNull write SetTIPOIsNull; + property OldTIPO : String read GetOldTIPOValue; + property OldTIPOIsNull : Boolean read GetOldTIPOIsNull; + property FECHA_REMESA : DateTime read GetFECHA_REMESAValue write SetFECHA_REMESAValue; + property FECHA_REMESAIsNull : Boolean read GetFECHA_REMESAIsNull write SetFECHA_REMESAIsNull; + property OldFECHA_REMESA : DateTime read GetOldFECHA_REMESAValue; + property OldFECHA_REMESAIsNull : Boolean read GetOldFECHA_REMESAIsNull; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull : Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldDESCRIPCIONIsNull : Boolean read GetOldDESCRIPCIONIsNull; + property ID_DATOS_BANCO : Integer read GetID_DATOS_BANCOValue write SetID_DATOS_BANCOValue; + property ID_DATOS_BANCOIsNull : Boolean read GetID_DATOS_BANCOIsNull write SetID_DATOS_BANCOIsNull; + property OldID_DATOS_BANCO : Integer read GetOldID_DATOS_BANCOValue; + property OldID_DATOS_BANCOIsNull : Boolean read GetOldID_DATOS_BANCOIsNull; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull : Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_ALTAIsNull : Boolean read GetOldFECHA_ALTAIsNull; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull : Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldUSUARIOIsNull : Boolean read GetOldUSUARIOIsNull; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull : Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldNOMBREIsNull : Boolean read GetOldNOMBREIsNull; + property ENTIDAD : String read GetENTIDADValue write SetENTIDADValue; + property ENTIDADIsNull : Boolean read GetENTIDADIsNull write SetENTIDADIsNull; + property OldENTIDAD : String read GetOldENTIDADValue; + property OldENTIDADIsNull : Boolean read GetOldENTIDADIsNull; + property SUCURSAL : String read GetSUCURSALValue write SetSUCURSALValue; + property SUCURSALIsNull : Boolean read GetSUCURSALIsNull write SetSUCURSALIsNull; + property OldSUCURSAL : String read GetOldSUCURSALValue; + property OldSUCURSALIsNull : Boolean read GetOldSUCURSALIsNull; + property DC : String read GetDCValue write SetDCValue; + property DCIsNull : Boolean read GetDCIsNull write SetDCIsNull; + property OldDC : String read GetOldDCValue; + property OldDCIsNull : Boolean read GetOldDCIsNull; + property CUENTA : String read GetCUENTAValue write SetCUENTAValue; + property CUENTAIsNull : Boolean read GetCUENTAIsNull write SetCUENTAIsNull; + property OldCUENTA : String read GetOldCUENTAValue; + property OldCUENTAIsNull : Boolean read GetOldCUENTAIsNull; + property SUFIJO_N19 : String read GetSUFIJO_N19Value write SetSUFIJO_N19Value; + property SUFIJO_N19IsNull : Boolean read GetSUFIJO_N19IsNull write SetSUFIJO_N19IsNull; + property OldSUFIJO_N19 : String read GetOldSUFIJO_N19Value; + property OldSUFIJO_N19IsNull : Boolean read GetOldSUFIJO_N19IsNull; + property SUFIJO_N58 : String read GetSUFIJO_N58Value write SetSUFIJO_N58Value; + property SUFIJO_N58IsNull : Boolean read GetSUFIJO_N58IsNull write SetSUFIJO_N58IsNull; + property OldSUFIJO_N58 : String read GetOldSUFIJO_N58Value; + property OldSUFIJO_N58IsNull : Boolean read GetOldSUFIJO_N58IsNull; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull : Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldIMPORTE_TOTALIsNull : Boolean read GetOldIMPORTE_TOTALIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers, uDAInterfaces; + +{ TListaAnosRemesasBusinessProcessorRules } +constructor TListaAnosRemesasBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TListaAnosRemesasBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TListaAnosRemesasBusinessProcessorRules.GetANOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosRemesasANO]; +end; + +function TListaAnosRemesasBusinessProcessorRules.GetANOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosRemesasANO]); +end; + +function TListaAnosRemesasBusinessProcessorRules.GetOldANOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaAnosRemesasANO]; +end; + +function TListaAnosRemesasBusinessProcessorRules.GetOldANOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ListaAnosRemesasANO]); +end; + +procedure TListaAnosRemesasBusinessProcessorRules.SetANOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosRemesasANO] := aValue; +end; + +procedure TListaAnosRemesasBusinessProcessorRules.SetANOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosRemesasANO] := Null; +end; + + +{ TRemesasProveedorBusinessProcessorRules } +constructor TRemesasProveedorBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TRemesasProveedorBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TRemesasProveedorBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorID]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorID]); +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorID]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorID]); +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorID] := aValue; +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorID] := Null; +end; + +function TRemesasProveedorBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorID_EMPRESA]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorID_EMPRESA]); +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorID_EMPRESA]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorID_EMPRESA]); +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorID_EMPRESA] := aValue; +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorID_EMPRESA] := Null; +end; + +function TRemesasProveedorBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorREFERENCIA]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorREFERENCIA]); +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorREFERENCIA]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorREFERENCIA]); +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorREFERENCIA] := aValue; +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorREFERENCIA] := Null; +end; + +function TRemesasProveedorBusinessProcessorRules.GetTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorTIPO]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetTIPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorTIPO]); +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorTIPO]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldTIPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorTIPO]); +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetTIPOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorTIPO] := aValue; +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetTIPOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorTIPO] := Null; +end; + +function TRemesasProveedorBusinessProcessorRules.GetFECHA_REMESAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorFECHA_REMESA]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetFECHA_REMESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorFECHA_REMESA]); +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldFECHA_REMESAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorFECHA_REMESA]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldFECHA_REMESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorFECHA_REMESA]); +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetFECHA_REMESAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorFECHA_REMESA] := aValue; +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetFECHA_REMESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorFECHA_REMESA] := Null; +end; + +function TRemesasProveedorBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorDESCRIPCION]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorDESCRIPCION]); +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorDESCRIPCION]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorDESCRIPCION]); +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorDESCRIPCION] := aValue; +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorDESCRIPCION] := Null; +end; + +function TRemesasProveedorBusinessProcessorRules.GetID_DATOS_BANCOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorID_DATOS_BANCO]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetID_DATOS_BANCOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorID_DATOS_BANCO]); +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldID_DATOS_BANCOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorID_DATOS_BANCO]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldID_DATOS_BANCOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorID_DATOS_BANCO]); +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetID_DATOS_BANCOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorID_DATOS_BANCO] := aValue; +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetID_DATOS_BANCOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorID_DATOS_BANCO] := Null; +end; + +function TRemesasProveedorBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorFECHA_ALTA]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorFECHA_ALTA]); +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorFECHA_ALTA]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorFECHA_ALTA]); +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorFECHA_ALTA] := aValue; +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorFECHA_ALTA] := Null; +end; + +function TRemesasProveedorBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorFECHA_MODIFICACION]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorFECHA_MODIFICACION]); +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorFECHA_MODIFICACION]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorFECHA_MODIFICACION]); +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorFECHA_MODIFICACION] := aValue; +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorFECHA_MODIFICACION] := Null; +end; + +function TRemesasProveedorBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorUSUARIO]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorUSUARIO]); +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorUSUARIO]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorUSUARIO]); +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorUSUARIO] := aValue; +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorUSUARIO] := Null; +end; + +function TRemesasProveedorBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorNOMBRE]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorNOMBRE]); +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorNOMBRE]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorNOMBRE]); +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorNOMBRE] := aValue; +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorNOMBRE] := Null; +end; + +function TRemesasProveedorBusinessProcessorRules.GetENTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorENTIDAD]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetENTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorENTIDAD]); +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldENTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorENTIDAD]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldENTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorENTIDAD]); +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetENTIDADValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorENTIDAD] := aValue; +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetENTIDADIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorENTIDAD] := Null; +end; + +function TRemesasProveedorBusinessProcessorRules.GetSUCURSALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorSUCURSAL]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetSUCURSALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorSUCURSAL]); +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldSUCURSALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorSUCURSAL]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldSUCURSALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorSUCURSAL]); +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetSUCURSALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorSUCURSAL] := aValue; +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetSUCURSALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorSUCURSAL] := Null; +end; + +function TRemesasProveedorBusinessProcessorRules.GetDCValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorDC]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetDCIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorDC]); +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldDCValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorDC]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldDCIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorDC]); +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetDCValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorDC] := aValue; +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetDCIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorDC] := Null; +end; + +function TRemesasProveedorBusinessProcessorRules.GetCUENTAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorCUENTA]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetCUENTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorCUENTA]); +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldCUENTAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorCUENTA]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldCUENTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorCUENTA]); +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetCUENTAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorCUENTA] := aValue; +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetCUENTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorCUENTA] := Null; +end; + +function TRemesasProveedorBusinessProcessorRules.GetSUFIJO_N19Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorSUFIJO_N19]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetSUFIJO_N19IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorSUFIJO_N19]); +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldSUFIJO_N19Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorSUFIJO_N19]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldSUFIJO_N19IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorSUFIJO_N19]); +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetSUFIJO_N19Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorSUFIJO_N19] := aValue; +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetSUFIJO_N19IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorSUFIJO_N19] := Null; +end; + +function TRemesasProveedorBusinessProcessorRules.GetSUFIJO_N58Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorSUFIJO_N58]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetSUFIJO_N58IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorSUFIJO_N58]); +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldSUFIJO_N58Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorSUFIJO_N58]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldSUFIJO_N58IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorSUFIJO_N58]); +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetSUFIJO_N58Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorSUFIJO_N58] := aValue; +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetSUFIJO_N58IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorSUFIJO_N58] := Null; +end; + +function TRemesasProveedorBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorIMPORTE_TOTAL]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorIMPORTE_TOTAL]); +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorIMPORTE_TOTAL]; +end; + +function TRemesasProveedorBusinessProcessorRules.GetOldIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_RemesasProveedorIMPORTE_TOTAL]); +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorIMPORTE_TOTAL] := aValue; +end; + +procedure TRemesasProveedorBusinessProcessorRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_RemesasProveedorIMPORTE_TOTAL] := Null; +end; + + +initialization + RegisterBusinessProcessorRules(RID_ListaAnosRemesasDelta, TListaAnosRemesasBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_RemesasProveedorDelta, TRemesasProveedorBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Remesas de proveedor/Model/uBizRemesasProveedor.dcu b/Source/Modulos/Remesas de proveedor/Model/uBizRemesasProveedor.dcu new file mode 100644 index 0000000..b5220e6 Binary files /dev/null and b/Source/Modulos/Remesas de proveedor/Model/uBizRemesasProveedor.dcu differ diff --git a/Source/Modulos/Remesas de proveedor/Model/uBizRemesasProveedor.pas b/Source/Modulos/Remesas de proveedor/Model/uBizRemesasProveedor.pas new file mode 100644 index 0000000..5871dda --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Model/uBizRemesasProveedor.pas @@ -0,0 +1,104 @@ +unit uBizRemesasProveedor; + +interface + +uses + uDAInterfaces, uDADataTable, schRemesasProveedorClient_Intf, uDBSelectionListUtils, + uBizRecibosProveedor; + +const + BIZ_CLIENT_REMESAPROVEEDOR = 'Client.RemesaProveedor'; + CTE_TIPO_REMESA = 'REMESA'; + CTE_TIPO_TALON = 'TALON'; + CTE_TIPO_EFECTIVO = 'EFECTIVO'; + CTE_TIPO_TRANSFERENCIA = 'TRANSFERENCIA'; + +type + IBizRemesaProveedor = interface(IRemesasProveedor) + ['{A150A74E-6A08-4D11-9CA7-39B65ABF78F5}'] + function GetRecibos: IBizRecibosProveedor; + procedure SetRecibos(const Value: IBizRecibosProveedor); + property Recibos: IBizRecibosProveedor read GetRecibos write SetRecibos; + function EsNuevo : Boolean; + end; + + TBizRemesaProveedor = class(TRemesasProveedorDataTableRules, IBizRemesaProveedor, ISeleccionable) + protected + FRecibos: IBizRecibosProveedor; + FSeleccionableInterface : ISeleccionable; + + function GetRecibos: IBizRecibosProveedor; + procedure SetRecibos(const Value: IBizRecibosProveedor); + procedure OnNewRecord(Sender: TDADataTable); override; + public + property SeleccionableInterface : ISeleccionable read FSeleccionableInterface + write FSeleccionableInterface implements ISeleccionable; + property Recibos: IBizRecibosProveedor read GetRecibos write SetRecibos; + + procedure IniciarValoresRemesaProveedorNuevo; virtual; + function EsNuevo : Boolean; + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + end; + +implementation + +uses + uDataTableUtils, uDataModuleUsuarios, SysUtils, uROClasses, Classes, + uFactuGES_App; + +{ TBizRemesaProveedor } + +constructor TBizRemesaProveedor.Create(aDataTable: TDADataTable); +begin + inherited; + FRecibos := Nil; + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +destructor TBizRemesaProveedor.Destroy; +begin + FRecibos := Nil; + FSeleccionableInterface := NIL; + inherited; +end; + +function TBizRemesaProveedor.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +function TBizRemesaProveedor.GetRecibos: IBizRecibosProveedor; +begin + Result := FRecibos; +end; + +procedure TBizRemesaProveedor.IniciarValoresRemesaProveedorNuevo; +begin + ID_EMPRESA := AppFactuGES.EmpresaActiva.ID; + FECHA_REMESA := Date; + USUARIO := AppFactuGES.UsuarioActivo.UserName; + TIPO := CTE_TIPO_REMESA; +end; + +procedure TBizRemesaProveedor.OnNewRecord(Sender: TDADataTable); +begin + inherited; + IniciarValoresRemesaProveedorNuevo; +end; + +procedure TBizRemesaProveedor.SetRecibos(const Value: IBizRecibosProveedor); +begin + FRecibos := Value; + if Assigned(FRecibos) then + if not FRecibos.DataTable.Active then + FRecibos.DataTable.Active := True; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_REMESAPROVEEDOR, TBizRemesaProveedor); + +finalization + +end. + diff --git a/Source/Modulos/Remesas de proveedor/Model/uBizRemesasProveedorServer.dcu b/Source/Modulos/Remesas de proveedor/Model/uBizRemesasProveedorServer.dcu new file mode 100644 index 0000000..0d866f9 Binary files /dev/null and b/Source/Modulos/Remesas de proveedor/Model/uBizRemesasProveedorServer.dcu differ diff --git a/Source/Modulos/Remesas de proveedor/Model/uBizRemesasProveedorServer.pas b/Source/Modulos/Remesas de proveedor/Model/uBizRemesasProveedorServer.pas new file mode 100644 index 0000000..2ebfd21 --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Model/uBizRemesasProveedorServer.pas @@ -0,0 +1,106 @@ +unit uBizRemesasProveedorServer; + +interface + +uses + uDAInterfaces, uDADelta, uDABusinessProcessor, + schRemesasProveedorServer_Intf; + +const + BIZ_SERVER_REMESAS_Proveedor = 'Server.RemesasProveedor'; + + +type + TBizRemesasProveedorServer = class(TRemesasProveedorBusinessProcessorRules) + private + FReferenciaAutomatica : Boolean; + function DarReferencia : String; + function IncrementarReferencia : Boolean; + protected + procedure BeforeProcessDelta(Sender: TDABusinessProcessor; + const aDelta: IDADelta); override; + procedure AfterProcessChange(Sender: TDABusinessProcessor; + aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); override; + end; + +implementation + +uses + Variants, uDAClasses, uReferenciasUtils, uBusinessUtils, uROClasses, uDataModuleServer, + schRemesasProveedorClient_Intf, FactuGES_Intf, uROServer, SysUtils; + +const + REF_REMESAS_PROVEEDOR = 'REF_REMESAS_PROVEEDOR'; + +{ TBizRemesasProveedorServer } + +procedure TBizRemesasProveedorServer.AfterProcessChange( + Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); +begin + inherited; + + { Por defecto, mantenemos los deltas por si alguna tabla hija los necesita } + CanRemoveFromDelta := False; + + case aChange.ChangeType of + ctInsert, ctUpdate: begin + if FReferenciaAutomatica then + begin + IncrementarReferencia; + FReferenciaAutomatica := False; + end; + end; + end; +end; + +procedure TBizRemesasProveedorServer.BeforeProcessDelta( + Sender: TDABusinessProcessor; const aDelta: IDADelta); +begin + FReferenciaAutomatica := False; + + case Sender.CurrentChange.ChangeType of + ctInsert, ctUpdate: begin + //Si la referencia no ha sido asignada le asignamos una nosotros + if REFERENCIAIsNull or (Length(REFERENCIA) = 0) then + begin + FReferenciaAutomatica := True; + REFERENCIA := DarReferencia; + end; + end; + end; +end; + + +function TBizRemesasProveedorServer.DarReferencia: String; +var + AReferenciasService : IsrvReferencias; + Intf : IInterface; + AClientID : TGUID; +begin + CreateGUID(AClientID); + + GetClassFactory('srvReferencias').CreateInstance(AClientID, Intf); + AReferenciasService := Intf as IsrvReferencias; + Result := AReferenciasService.DarNuevaReferencia(REF_REMESAS_PROVEEDOR, ID_EMPRESA) +end; + +function TBizRemesasProveedorServer.IncrementarReferencia: Boolean; +var + AReferenciasService : IsrvReferencias; + Intf : IInterface; + AClientID : TGUID; +begin + CreateGUID(AClientID); + + GetClassFactory('srvReferencias').CreateInstance(AClientID, Intf); + AReferenciasService := Intf as IsrvReferencias; + Result := AReferenciasService.IncrementarValorReferencia(REF_REMESAS_PROVEEDOR, Self.REFERENCIA, ID_EMPRESA) +end; + + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_REMESAS_Proveedor, TBizRemesasProveedorServer); + +end. diff --git a/Source/Modulos/Remesas de proveedor/Plugin/RemesasProveedor_plugin.bdsproj b/Source/Modulos/Remesas de proveedor/Plugin/RemesasProveedor_plugin.bdsproj new file mode 100644 index 0000000..0554af1 --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Plugin/RemesasProveedor_plugin.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + RemesasProveedor_plugin.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Remesas de proveedor/Plugin/RemesasProveedor_plugin.dcu b/Source/Modulos/Remesas de proveedor/Plugin/RemesasProveedor_plugin.dcu new file mode 100644 index 0000000..f456eee Binary files /dev/null and b/Source/Modulos/Remesas de proveedor/Plugin/RemesasProveedor_plugin.dcu differ diff --git a/Source/Modulos/Remesas de proveedor/Plugin/RemesasProveedor_plugin.dpk b/Source/Modulos/Remesas de proveedor/Plugin/RemesasProveedor_plugin.dpk new file mode 100644 index 0000000..a5389f7 --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Plugin/RemesasProveedor_plugin.dpk @@ -0,0 +1,35 @@ +package RemesasProveedor_plugin; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + RemesasProveedor_view, + RemesasProveedor_controller, + RemesasProveedor_model; + +contains + uPluginRemesasProveedor in 'uPluginRemesasProveedor.pas' {PluginRemesasProveedor}; + +end. diff --git a/Source/Modulos/Remesas de proveedor/Plugin/RemesasProveedor_plugin.dproj b/Source/Modulos/Remesas de proveedor/Plugin/RemesasProveedor_plugin.dproj new file mode 100644 index 0000000..d30cc61 --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Plugin/RemesasProveedor_plugin.dproj @@ -0,0 +1,539 @@ + + + {e4a70e78-dcab-415c-9e35-1956bd41ae1a} + RemesasProveedor_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\RemesasProveedor_plugin.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0RemesasProveedor_plugin.dpk + + + + + MainSource + + + + + +
PluginRemesasProveedor
+
+
+
+ diff --git a/Source/Modulos/Remesas de proveedor/Plugin/RemesasProveedor_plugin.rc b/Source/Modulos/Remesas de proveedor/Plugin/RemesasProveedor_plugin.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Plugin/RemesasProveedor_plugin.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Remesas de proveedor/Plugin/RemesasProveedor_plugin.res b/Source/Modulos/Remesas de proveedor/Plugin/RemesasProveedor_plugin.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Remesas de proveedor/Plugin/RemesasProveedor_plugin.res differ diff --git a/Source/Modulos/Remesas de proveedor/Plugin/uPluginRemesasProveedor.dcu b/Source/Modulos/Remesas de proveedor/Plugin/uPluginRemesasProveedor.dcu new file mode 100644 index 0000000..970b421 Binary files /dev/null and b/Source/Modulos/Remesas de proveedor/Plugin/uPluginRemesasProveedor.dcu differ diff --git a/Source/Modulos/Remesas de proveedor/Plugin/uPluginRemesasProveedor.dfm b/Source/Modulos/Remesas de proveedor/Plugin/uPluginRemesasProveedor.dfm new file mode 100644 index 0000000..3cdc90d --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Plugin/uPluginRemesasProveedor.dfm @@ -0,0 +1,135 @@ +object PluginRemesasProveedor: TPluginRemesasProveedor + OldCreateOrder = True + DefaultAction = actRemesasProveedor + Description = 'Compras' + ModuleMenu = MainMenu + ModuleName = 'RemesasProveedor' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software' + Version = '1.0.0' + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002744944415478DA + 63FCFFFF3F032D01E3F0B060F9D6D334B3056E41A4B729491AFFFCFDCFF0F7EF + 3F869FBFFE80E93FFFFE8169301B887FFDFECB109E5E876A41E249438206FF05 + AAFFF5F72FC3AF3F7FC0F4975FBF207C10065A02932BFAB59C61DED24D9816CC + 373F8F6291F45B6F8626CF660C8BFE010D0361CFD5F60C1F791E800DBF14F082 + 4169A520D8928ABFAB705B00022036B2E11718CF33189F346660B809E4A83330 + 9C353FCBA0F9438BE117D007415B3C189EB2DF66B811FC1AAC566C3137431DC3 + 5AFC3E8019CE7C8A89E1AFD93F300D32FC6CDC5906E379408BB419183EEB7C61 + E0BDC2C3F05AE50D43F84E5F86BD51C718841771817DD0CEB211BB05E841C3BC + 1C684124D082C54C10C39719339C8D02D2B38C193E447C6410D8C2CFF0C2E525 + 43D49E00860B7F2EC0E3A3977D0B911620FBE02A508203887F30807DF056ED1D + 83F02D218627324F18E20E86329CFA79166EC164AEEDF82D40B6E42F50C36596 + 4B9038B80894D087C481DC5B79869F3F7E60180E02382D404E4520C58A1FFC18 + 6A9C6BC196FC03A7F5BF700CE247EF0D841BFE33E50F03E34C46FC16C0003C6D + 03B1CCB31F0C5325B4B1E60BDE877B505C0E03582D40CFA57FA039F3EA444D06 + 09A7200645CB1E86FBC74BC06A5EDC0726E7FBF719E6EE7BCE30A7DA09C3E229 + 4F73312D98B2780756570A7E3BC7A0F4660ED8307450DD928DD3E273AC89080B + BA27CF27584C9C2B7B88553CA5751FA65AA0E12000B680919191A0E1C75A14FF + 93124C404BC3E6EEFBB19A140B4281D42A6CC13467EF77AC96022D6024CA0290 + E196969AABB0C91D3F7E1D6BDC008101D0828BC45A803778402EC5A597681FE0 + 0A1E200087355E0B6809686E0100FA3E2AAB1481BE0E0000000049454E44AE42 + 6082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + object actRemesasProveedor: TAction + Category = 'Compras' + Caption = 'Remesas de pago' + ImageIndex = 0 + OnExecute = actRemesasProveedorExecute + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object N1: TMenuItem + Caption = 'Compras' + object RemesasProveedor1: TMenuItem + Tag = 320 + Action = actRemesasProveedor + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000011A4944415478DA + 63FCFFFF3F032580916203966D3945B60991DEA68C6003D4BD9919269F4CC6AA + E8F7DFBF0CDFFFFC61F8F6FB37C3C71F3FC0ECB9FE5B19523CE6309CDB310D61 + 0008C00C996B760EC3209B6D7270CD208062C02E9134B8429866E6534C1081AB + 0C0C7F13FF81999A6B4519BE035D02728DDCB204220CB80A118319A0B04200AC + 19843556A762370024B9DCFA328617903583BC62B83E13350C40FE074B421581 + 70EF05569C31907DD8036140F7E4F9180AA6DAEE60B04CAE6660905064F8717C + 2AC3F97DE719E6EE7BCE30A5C50BCE9EB3F73B23232E1B8EB528861E7CADB6EA + CEE58358E5939D24C32CABEFADC667C07F8A5D00A456811452D505208D5635F7 + 5783D480F211C92E98BBEF075C0FD8004A73230074DEE0E1BE54FBD500000000 + 49454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000002D84944415478DA + ED946D48535118C7FF57855EB4171542B01756516845C868B63E4A1F2A7B1996 + 990B845008EA637DD2A828F34BF521D220C98484C28232B24C302329456D380D + A99C75035FB6A5B3E9ACAEBA7BD773CF4D9BEE6E6E23F6217AE0F09C73EE73CE + EF79CEFF9CCB793C1E44D2B8FFC07F0378EF697BC4A833C0DCCC6D616DE0163D + 104589BCC43CEB4B5E7DE62986E6728E9F9D0D3CD69A163448A47593A28849B7 + 5BF1731B01A6BFD7E97AC0F70DA0B0A4DC175899DE310B9CECC8C485DD17FD82 + 25DA58621589D8FB3003A3715F18ACCB60C3DAEA7806ADD759D03768F50F944D + EEABC1CC5C07B4AD5AE0230D3602A6741352845406945B56ED2E0C2CB0E0C3C1 + 2116BFA22A160DBA5E0CDAED812BF48645B745013C1D638EA4F40966CA33417B + 9BC09B00D7E6712C791C07AC0386D60F23A77E1F5E189B91786731ABB029FD33 + ECC343EA40B5A38CAE268844C05C02564529B0BB5A988CE4CBB5701E19C5F2DA + 652CD6B6D30E63830166B77946CFD7DB7938461C2100E5AA2C043CFABBC26E9A + 5C484D00ABD0B16104897509ACC2FE95FDC87B958DB609D30CF08D8EC798CB19 + 18A87661648DDEC574291A76D2C45645C3D58E35EC9B7B6ACA07265B93F613BE + FF189BFF96CA0B34CEFD0C2A6F386EEB467C4F61C0E7B2CADC80AF4B454C14B8 + C1DDE4D8DCCB340B04613C70856A6FABB81DD0E71701491A128B677102FF8C79 + 276F65FE4C45076E1565CC4AE291EB0416C527FB02E7FB7BF4DED882A48C2C68 + F457C0B79C562E09AF3C23F04A02158D569416EFF149E2D0B9165FE0F32673C0 + E31AB0BC45AAAD846DAA66D66F024ACB4EA9262103CBAE5DFD03BC7CBD12C158 + 72AC0B4F4E8E048C29B8D4E83DAC791F73C0F0934B600306E4382E28986CCDC5 + 1A4FA83A5202872B1A8507610383D5D13B010272E102B3694323750D7E426AF2 + F37718E62610165086E9F529F743D08F2540ED3C013BC30106A5DF74356A1632 + 3018FDFE26705EFDBC8FCF2F30921671E02FBE648AC22CC7AE57000000004945 + 4E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + Left = 232 + Top = 80 + Bitmap = {} + end +end diff --git a/Source/Modulos/Remesas de proveedor/Plugin/uPluginRemesasProveedor.pas b/Source/Modulos/Remesas de proveedor/Plugin/uPluginRemesasProveedor.pas new file mode 100644 index 0000000..2aaca1c --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Plugin/uPluginRemesasProveedor.pas @@ -0,0 +1,74 @@ +unit uPluginRemesasProveedor; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCRemesasProveedor = interface(IInterface) + ['{31B25C1E-2E4B-4C6A-9E8D-D53D62319E4C}'] + end; + + TPluginRemesasProveedor = class(TModuleController, IMCRemesasProveedor) + actRemesasProveedor: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + N1: TMenuItem; + RemesasProveedor1: TMenuItem; + procedure actRemesasProveedorExecute(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, + uRemesasProveedorController, uBizRemesasProveedor, uRemesasProveedorViewRegister; + +function GetModule : TModuleController; +begin + Result := TPluginRemesasProveedor.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +procedure TPluginRemesasProveedor.actRemesasProveedorExecute(Sender: TObject); +var + ARemesasProveedorController : IRemesasProveedorController; + ARemesasProveedor : IBizRemesaProveedor; + +begin + ARemesasProveedorController := TRemesasProveedorController.Create; + ARemesasProveedor := (ARemesasProveedorController.BuscarTodos as IBizRemesaProveedor); + ARemesasProveedorController.VerTodos(ARemesasProveedor); +end; + +constructor TPluginRemesasProveedor.Create(AOwner: TComponent); +begin + inherited; + uRemesasProveedorViewRegister.RegisterViews; +end; + +destructor TPluginRemesasProveedor.Destroy; +begin + uRemesasProveedorViewRegister.UnregisterViews; + inherited; +end; + +initialization + RegisterModuleClass(TPluginRemesasProveedor); + +finalization + UnRegisterModuleClass(TPluginRemesasProveedor); + +end. diff --git a/Source/Modulos/Remesas de proveedor/RemesasProveedor_Group.groupproj b/Source/Modulos/Remesas de proveedor/RemesasProveedor_Group.groupproj new file mode 100644 index 0000000..0544c85 --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/RemesasProveedor_Group.groupproj @@ -0,0 +1,134 @@ + + + {9e374daa-b130-47db-a2de-c184f072bea0} + + + + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Remesas de proveedor/Reports/uRptRemesasProveedor_Server.dfm b/Source/Modulos/Remesas de proveedor/Reports/uRptRemesasProveedor_Server.dfm new file mode 100644 index 0000000..b308378 --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Reports/uRptRemesasProveedor_Server.dfm @@ -0,0 +1,677 @@ +object RptRemesasProveedor: TRptRemesasProveedor + OldCreateOrder = True + OnCreate = DataModuleCreate + OnDestroy = DataModuleDestroy + Height = 405 + Width = 447 + object DADataCabecera: TDADataSource + DataSet = tbl_Cabecera.Dataset + DataTable = tbl_Cabecera + Left = 264 + Top = 72 + end + object DADataDetalles: TDADataSource + DataSet = tbl_Detalles.Dataset + DataTable = tbl_Detalles + Left = 344 + Top = 72 + end + object tbl_Cabecera: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + MasterMappingMode = mmDataRequest + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + IndexDefs = <> + Left = 264 + Top = 128 + end + object tbl_Detalles: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + MasterMappingMode = mmDataRequest + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + IndexDefs = <> + Left = 344 + Top = 128 + end + object DABINAdapter: TDABINAdapter + Left = 48 + Top = 80 + end + object frxRichObject1: TfrxRichObject + Left = 48 + Top = 296 + end + object frxBarCodeObject1: TfrxBarCodeObject + Left = 144 + Top = 296 + end + object frxOLEObject1: TfrxOLEObject + Left = 48 + Top = 344 + end + object frxCrossObject1: TfrxCrossObject + Left = 144 + Top = 344 + end + object frxCheckBoxObject1: TfrxCheckBoxObject + Left = 256 + Top = 296 + end + object frxGradientObject1: TfrxGradientObject + Left = 360 + Top = 296 + end + object frxChartObject1: TfrxChartObject + Left = 256 + Top = 344 + end + object schReport: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Datasets = < + item + Params = < + item + Name = 'ID' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'REMESAS_PROVEEDOR' + SQL = + 'SELECT'#10' V_REMESAS_PROVEEDOR.ID,'#10' V_REMESAS_PROVEEDOR.ID_EM' + + 'PRESA,'#10' V_REMESAS_PROVEEDOR.REFERENCIA,'#10' V_REMESAS_PROVEED' + + 'OR.FECHA_REMESA,'#10' V_REMESAS_PROVEEDOR.IMPORTE_TOTAL,'#10' EMPR' + + 'ESAS.NOMBRE as TITULAR,'#10' EMPRESAS_DATOS_BANCO.ENTIDAD,'#10' EM' + + 'PRESAS_DATOS_BANCO.SUCURSAL,'#10' EMPRESAS_DATOS_BANCO.DC,'#10' EM' + + 'PRESAS_DATOS_BANCO.CUENTA,'#10' V_REMESAS_PROVEEDOR.DESCRIPCION,'#10 + + #10' EMPRESAS.NIF_CIF as NIF_CIF_EMPRESA, EMPRESAS.RAZON_SOCIAL,' + + #10' EMPRESAS.CALLE as CALLE_EMPRESA, EMPRESAS.POBLACION as POBL' + + 'ACION_EMPRESA,'#10' EMPRESAS.PROVINCIA as PROVINCIA_EMPRESA, EMPR' + + 'ESAS.CODIGO_POSTAL as CODIGO_POSTAL_EMPRESA,'#10' EMPRESAS.TELEFO' + + 'NO_1, EMPRESAS.FAX, EMPRESAS.MOVIL_1, EMPRESAS.EMAIL_1,'#10' EMPR' + + 'ESAS.PAGINA_WEB, EMPRESAS.REGISTRO_MERCANTIL, EMPRESAS.LOGOTIPO'#10 + + #10#10'FROM'#10' V_REMESAS_PROVEEDOR'#10' LEFT OUTER JOIN EMPRESAS ON (EMPR' + + 'ESAS.ID = V_REMESAS_PROVEEDOR.ID_EMPRESA)'#10' LEFT OUTER JOIN EMPR' + + 'ESAS_DATOS_BANCO ON (EMPRESAS_DATOS_BANCO.ID = V_REMESAS_PROVEED' + + 'OR.ID_DATOS_BANCO)'#10'WHERE'#10' V_REMESAS_PROVEEDOR.ID = :ID' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'FECHA_REMESA' + TableField = 'FECHA_REMESA' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'TITULAR' + TableField = 'TITULAR' + end + item + DatasetField = 'ENTIDAD' + TableField = 'ENTIDAD' + end + item + DatasetField = 'SUCURSAL' + TableField = 'SUCURSAL' + end + item + DatasetField = 'DC' + TableField = 'DC' + end + item + DatasetField = 'CUENTA' + TableField = 'CUENTA' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'NIF_CIF_EMPRESA' + TableField = 'NIF_CIF_EMPRESA' + end + item + DatasetField = 'RAZON_SOCIAL' + TableField = 'RAZON_SOCIAL' + end + item + DatasetField = 'CALLE_EMPRESA' + TableField = 'CALLE_EMPRESA' + end + item + DatasetField = 'POBLACION_EMPRESA' + TableField = 'POBLACION_EMPRESA' + end + item + DatasetField = 'PROVINCIA_EMPRESA' + TableField = 'PROVINCIA_EMPRESA' + end + item + DatasetField = 'CODIGO_POSTAL_EMPRESA' + TableField = 'CODIGO_POSTAL_EMPRESA' + end + item + DatasetField = 'TELEFONO_1' + TableField = 'TELEFONO_1' + end + item + DatasetField = 'FAX' + TableField = 'FAX' + end + item + DatasetField = 'MOVIL_1' + TableField = 'MOVIL_1' + end + item + DatasetField = 'EMAIL_1' + TableField = 'EMAIL_1' + end + item + DatasetField = 'PAGINA_WEB' + TableField = 'PAGINA_WEB' + end + item + DatasetField = 'REGISTRO_MERCANTIL' + TableField = 'REGISTRO_MERCANTIL' + end + item + DatasetField = 'LOGOTIPO' + TableField = 'LOGOTIPO' + end> + end> + Name = 'Informe_Cabecera' + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_REMESA' + DataType = datDateTime + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + end + item + Name = 'TITULAR' + DataType = datString + Size = 255 + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + end + item + Name = 'DC' + DataType = datString + Size = 15 + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + end + item + Name = 'NIF_CIF_EMPRESA' + DataType = datString + Size = 15 + end + item + Name = 'RAZON_SOCIAL' + DataType = datString + Size = 255 + end + item + Name = 'CALLE_EMPRESA' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION_EMPRESA' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA_EMPRESA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL_EMPRESA' + DataType = datString + Size = 10 + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + end + item + Name = 'FAX' + DataType = datString + Size = 25 + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + end + item + Name = 'REGISTRO_MERCANTIL' + DataType = datString + Size = 255 + end + item + Name = 'LOGOTIPO' + DataType = datBlob + end> + end + item + Params = < + item + Name = 'ID_REMESA' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_RECIBOS_PROVEEDOR' + SQL = + 'SELECT'#10' V_RECIBOS_PROVEEDOR.ID,'#10' V_RECIBOS_PROVEEDOR.REFER' + + 'ENCIA,'#10' V_RECIBOS_PROVEEDOR.REFERENCIA_PROVEEDOR,'#10' V_RECIB' + + 'OS_PROVEEDOR.SITUACION,'#10' V_RECIBOS_PROVEEDOR.ID_FACTURA,'#10' ' + + 'V_RECIBOS_PROVEEDOR.ID_REMESA,'#10' V_RECIBOS_PROVEEDOR.REFERENCI' + + 'A_REMESA,'#10' V_RECIBOS_PROVEEDOR.FECHA_VENCIMIENTO,'#10' V_RECIB' + + 'OS_PROVEEDOR.DESCRIPCION,'#10' V_RECIBOS_PROVEEDOR.OBSERVACIONES,' + + #10' V_RECIBOS_PROVEEDOR.IMPORTE,'#10' V_RECIBOS_PROVEEDOR.OTROS_' + + 'GASTOS,'#10' V_RECIBOS_PROVEEDOR.IMPORTE_TOTAL,'#10' V_RECIBOS_PRO' + + 'VEEDOR.FECHA_FACTURA,'#10' V_RECIBOS_PROVEEDOR.REFERENCIA_FACTURA' + + '_PROV,'#10' V_RECIBOS_PROVEEDOR.FORMA_PAGO_FACTURA,'#10' V_RECIBOS' + + '_PROVEEDOR.IMPORTE_FACTURA,'#10' V_RECIBOS_PROVEEDOR.ID_EMPRESA,'#10 + + ' V_RECIBOS_PROVEEDOR.NOMBRE_PROVEEDOR,'#10' V_RECIBOS_PROVEEDO' + + 'R.NIF_CIF_PROVEEDOR,'#10' V_RECIBOS_PROVEEDOR.ENTIDAD_PROVEEDOR,'#10 + + ' V_RECIBOS_PROVEEDOR.SUCURSAL_PROVEEDOR,'#10' V_RECIBOS_PROVEE' + + 'DOR.DC_PROVEEDOR,'#10' V_RECIBOS_PROVEEDOR.CUENTA_PROVEEDOR'#10#10#10'FRO' + + 'M V_RECIBOS_PROVEEDOR'#10'WHERE V_RECIBOS_PROVEEDOR.ID_REMESA = :ID_' + + 'REMESA'#10'ORDER BY FECHA_VENCIMIENTO' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'ID_FACTURA' + TableField = 'ID_FACTURA' + end + item + DatasetField = 'ID_REMESA' + TableField = 'ID_REMESA' + end + item + DatasetField = 'REFERENCIA_REMESA' + TableField = 'REFERENCIA_REMESA' + end + item + DatasetField = 'FECHA_VENCIMIENTO' + TableField = 'FECHA_VENCIMIENTO' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'IMPORTE' + TableField = 'IMPORTE' + end + item + DatasetField = 'FECHA_FACTURA' + TableField = 'FECHA_FACTURA' + end + item + DatasetField = 'FORMA_PAGO_FACTURA' + TableField = 'FORMA_PAGO_FACTURA' + end + item + DatasetField = 'IMPORTE_FACTURA' + TableField = 'IMPORTE_FACTURA' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = 'REFERENCIA_PROVEEDOR' + end + item + DatasetField = 'NOMBRE_PROVEEDOR' + TableField = 'NOMBRE_PROVEEDOR' + end + item + DatasetField = 'NIF_CIF_PROVEEDOR' + TableField = 'NIF_CIF_PROVEEDOR' + end + item + DatasetField = 'ENTIDAD_PROVEEDOR' + TableField = 'ENTIDAD_PROVEEDOR' + end + item + DatasetField = 'SUCURSAL_PROVEEDOR' + TableField = 'SUCURSAL_PROVEEDOR' + end + item + DatasetField = 'DC_PROVEEDOR' + TableField = 'DC_PROVEEDOR' + end + item + DatasetField = 'CUENTA_PROVEEDOR' + TableField = 'CUENTA_PROVEEDOR' + end + item + DatasetField = 'REFERENCIA_FACTURA_PROV' + TableField = 'REFERENCIA_FACTURA_PROV' + end + item + DatasetField = 'OTROS_GASTOS' + TableField = 'OTROS_GASTOS' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end> + end> + Name = 'Informe_Detalles' + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + end + item + Name = 'ID_FACTURA' + DataType = datInteger + end + item + Name = 'ID_REMESA' + DataType = datInteger + end + item + Name = 'REFERENCIA_REMESA' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE' + DataType = datFloat + end + item + Name = 'OTROS_GASTOS' + DataType = datFloat + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + end + item + Name = 'FECHA_FACTURA' + DataType = datDateTime + end + item + Name = 'REFERENCIA_FACTURA_PROV' + DataType = datString + Size = 255 + end + item + Name = 'FORMA_PAGO_FACTURA' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_FACTURA' + DataType = datFloat + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'NOMBRE_PROVEEDOR' + DataType = datString + Size = 255 + end + item + Name = 'NIF_CIF_PROVEEDOR' + DataType = datString + Size = 15 + end + item + Name = 'ENTIDAD_PROVEEDOR' + DataType = datString + Size = 15 + end + item + Name = 'SUCURSAL_PROVEEDOR' + DataType = datString + Size = 15 + end + item + Name = 'DC_PROVEEDOR' + DataType = datString + Size = 15 + end + item + Name = 'CUENTA_PROVEEDOR' + DataType = datString + Size = 15 + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 16 + end + object DataDictionary: TDADataDictionary + Fields = <> + Left = 46 + Top = 158 + end + object frxReport: TfrxReport + Version = '4.3' + DotMatrixReport = False + EngineOptions.DoublePass = True + IniFile = '\Software\Fast Reports' + PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator, pbExportQuick] + PreviewOptions.OutlineWidth = 180 + PreviewOptions.Zoom = 1.000000000000000000 + PrintOptions.Printer = 'Default' + PrintOptions.PrintOnSheet = 0 + ReportOptions.CreateDate = 37871.995398692100000000 + ReportOptions.LastChange = 39293.788285949070000000 + ReportOptions.VersionBuild = '1' + ReportOptions.VersionMajor = '12' + ReportOptions.VersionMinor = '13' + ReportOptions.VersionRelease = '1' + ScriptLanguage = 'PascalScript' + ScriptText.Strings = ( + 'procedure ReportSummary1OnBeforePrint(Sender: TfrxComponent);' + 'begin' + + ' Engine.CurY := Engine.CurY + Engine.FreeSpace - ReportSummary1' + + '.Height - 1;' + 'end;' + '' + 'procedure DatosEmpresaOnBeforePrint(Sender: TfrxComponent);' + 'var' + ' Cadena: String;' + 'begin' + ' DatosEmpresa.Lines.Clear;' + ' DatosEmpresa.Lines.Add();' + ' DatosEmpresa.Lines.Add();' + '' + ' Cadena := '#39#39';' + ' if ( <> '#39#39') then' + ' Cadena := '#39'TLF: '#39' + ;' + ' if ( <> '#39#39') then' + ' Cadena := Cadena + '#39' FAX: '#39' + ;' + ' DatosEmpresa.Lines.Add(Cadena);' + '' + ' Cadena := '#39#39';' + ' if ( <> '#39#39') then' + ' Cadena := ;' + ' if ( <> '#39#39') then' + + ' Cadena := Cadena + '#39' '#39' + ;' + ' if ( <> '#39#39') then' + + ' Cadena := Cadena + '#39' - '#39' + ;' + ' DatosEmpresa.Lines.Add(Cadena);' + 'end;' + '' + 'procedure Band2OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if not Engine.FinalPass then' + ' Set('#39'TotalPaginas'#39', ( + 1));' + '' + ' if Engine.FinalPass then' + ' Set('#39'Pagina'#39', ( + 1));' + 'end;' + '' + 'procedure frxReportOnStartReport(Sender: TfrxComponent);' + 'begin' + ' Set('#39'Pagina'#39', 0);' + ' Set('#39'TotalPaginas'#39', 0);' + 'end;' + '' + 'begin' + '' + 'end.') + ShowProgress = False + StoreInDFM = False + OnStartReport = 'frxReportOnStartReport' + Left = 169 + Top = 16 + end + object frxDBCabecera: TfrxDBDataset + UserName = 'frxDBCabecera' + CloseDataSource = False + DataSource = DADataCabecera + Left = 264 + Top = 16 + end + object frxDBDetalles: TfrxDBDataset + UserName = 'frxDBDetalles' + CloseDataSource = False + DataSource = DADataDetalles + Left = 344 + Top = 16 + end +end diff --git a/Source/Modulos/Remesas de proveedor/Reports/uRptRemesasProveedor_Server.pas b/Source/Modulos/Remesas de proveedor/Reports/uRptRemesasProveedor_Server.pas new file mode 100644 index 0000000..7f2ef55 --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Reports/uRptRemesasProveedor_Server.pas @@ -0,0 +1,136 @@ +unit uRptRemesasProveedor_Server; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, frxClass, frxDBSet, uDAScriptingProvider, + uDADataTable, uDACDSDataTable, DB, uDAClasses, frxChart, frxGradient, + frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes, + uDAInterfaces, uDADataStreamer; + +type + TRptRemesasProveedor = class(TDataModule) + DADataCabecera: TDADataSource; + DADataDetalles: TDADataSource; + tbl_Cabecera: TDACDSDataTable; + tbl_Detalles: TDACDSDataTable; + DABINAdapter: TDABINAdapter; + frxRichObject1: TfrxRichObject; + frxBarCodeObject1: TfrxBarCodeObject; + frxOLEObject1: TfrxOLEObject; + frxCrossObject1: TfrxCrossObject; + frxCheckBoxObject1: TfrxCheckBoxObject; + frxGradientObject1: TfrxGradientObject; + frxChartObject1: TfrxChartObject; + frxDBCabecera: TfrxDBDataset; + frxDBDetalles: TfrxDBDataset; + schReport: TDASchema; + DataDictionary: TDADataDictionary; + frxReport: TfrxReport; + procedure DataModuleCreate(Sender: TObject); + procedure DataModuleDestroy(Sender: TObject); + private + FConnection: IDAConnection; + procedure GenerarRemesa(const ID : Integer); overload; + public + function GenerarRemesa(const ID : String): Binary; overload; + end; + +implementation + +{$R *.dfm} + +uses + uDataModuleServer; + +const + rptInforme = 'InfRemesaProveedor.fr3'; + + { Dataset names for schReport } + ds_InformeCabecera = 'Informe_Cabecera'; + ds_InformeDetalles = 'Informe_Detalles'; + + +{ TRptRemesaProveedor } + + +procedure TRptRemesasProveedor.DataModuleCreate(Sender: TObject); +begin + schReport.ConnectionManager := dmServer.ConnectionManager; + FConnection := dmServer.DarNuevaConexion; + frxReport.EngineOptions.NewSilentMode := simReThrow; + + frxDBCabecera.DataSource := DADataCabecera; + frxDBCabecera.CloseDataSource := False; + + frxDBCompensados.DataSource := DADataCompensados; + frxDBCompensados.CloseDataSource := False; +end; + +function TRptRemesasProveedor.GenerarRemesa(const ID: String): Binary; +var + ID_Remesas: TStringList; + i: Integer; + +begin + Result := Binary.Create; + FConnection.BeginTransaction; + + try + ID_Remesas := TStringList.Create; + ID_Remesas.CommaText := ID; + + //Vamos generando todos y cada uno de los albaranes recibidos + for i := 0 to ID_Remesas.Count - 1 do + GenerarRemesa(StrToInt(ID_Remesas.Strings[i])); + + frxReport.PreviewPages.SaveToStream(Result); + + finally + FConnection.RollbackTransaction; + end; +end; + +procedure TRptRemesasProveedor.DataModuleDestroy(Sender: TObject); +begin + tbl_Cabecera.Active := False; + tbl_Detalles.Active := False; +end; + +procedure TRptRemesasProveedor.GenerarRemesa(const ID: Integer); +var + AStream: TMemoryStream; + dsMaster: IDADataset; + dsDetail: IDADataset; + AInforme: Variant; +begin + AStream := TMemoryStream.Create; + + try + dsMaster := schReport.NewDataset(FConnection, ds_InformeCabecera, ['ID'], [ID]); + dsDetail := schReport.NewDataset(FConnection, ds_InformeDetalles, ['ID_REMESA'], [ID], False); + + AStream.Clear; + DABINAdapter.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1); + DABINAdapter.ReadDataset(AStream, tbl_Cabecera, TRUE, '', TRUE, TRUE); + + AStream.Clear; + DABINAdapter.WriteDataset(AStream, dsDetail, [woRows, woSchema], -1); + DABINAdapter.ReadDataset(AStream, tbl_Detalles, TRUE, '', TRUE, TRUE); + + AInforme := DarRutaFichero(DarRutaInformes, rptInforme); + if VarIsNull(AInforme) then + raise Exception.Create (('Error Servidor: GenerarRemesa, no encuentra informe ' + rptInforme)); + + frxReport.LoadFromFile(AInforme, True); + frxReport.PrepareReport(False); + + finally + AStream.Free; + dsMaster := Nil; + dsDetail := Nil; + end; +end; + +end. diff --git a/Source/Modulos/Remesas de proveedor/Servidor/srvRemesasProveedor_Impl.dcu b/Source/Modulos/Remesas de proveedor/Servidor/srvRemesasProveedor_Impl.dcu new file mode 100644 index 0000000..31417c6 Binary files /dev/null and b/Source/Modulos/Remesas de proveedor/Servidor/srvRemesasProveedor_Impl.dcu differ diff --git a/Source/Modulos/Remesas de proveedor/Servidor/srvRemesasProveedor_Impl.dfm b/Source/Modulos/Remesas de proveedor/Servidor/srvRemesasProveedor_Impl.dfm new file mode 100644 index 0000000..dc5e4a7 --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Servidor/srvRemesasProveedor_Impl.dfm @@ -0,0 +1,513 @@ +object srvRemesasProveedor: TsrvRemesasProveedor + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + ConnectionName = 'IBX' + ServiceSchema = schRemesasProveedor + ServiceDataStreamer = Bin2DataStreamer + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + Height = 249 + Width = 343 + object Diagrams: TDADiagrams + Left = 150 + Top = 74 + DiagramData = ''#13#10''#13#10 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'RemesasCliente_ID' + DataType = datAutoInc + GeneratorName = 'GEN_REMESAS_PROVEEDOR_ID' + Required = True + DisplayLabel = 'ID' + ServerAutoRefresh = True + end + item + Name = 'RemesasCliente_FECHA_REMESA' + DataType = datDateTime + end + item + Name = 'RemesasCliente_DESCRIPCION' + DataType = datString + Size = 255 + ServerAutoRefresh = True + end + item + Name = 'RemesasCliente_USUARIO' + DataType = datString + Size = 20 + end + item + Name = 'RemesasCliente_ID_EMPRESA' + DataType = datInteger + end + item + Name = 'RemesasCliente_ID_DATOS_BANCO' + DataType = datInteger + DisplayLabel = 'ID_DATOS_BANCO' + end + item + Name = 'RemesasCliente_FECHA_ALTA' + DataType = datDateTime + DisplayLabel = 'FECHA_ALTA' + end + item + Name = 'RemesasCliente_FECHA_MODIFICACION' + DataType = datDateTime + DisplayLabel = 'FECHA_MODIFICACION' + end + item + Name = 'RemesasCliente_NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Banco' + end + item + Name = 'RemesasCliente_ENTIDAD' + DataType = datString + Size = 15 + DisplayLabel = 'Cod. entidad' + end + item + Name = 'RemesasCliente_SUCURSAL' + DataType = datString + Size = 15 + DisplayLabel = 'Cod. sucursal' + end + item + Name = 'RemesasCliente_DC' + DataType = datString + Size = 15 + DisplayLabel = 'DC' + end + item + Name = 'RemesasCliente_CUENTA' + DataType = datString + Size = 15 + DisplayLabel = 'Cuenta' + end + item + Name = 'RemesasCliente_SUFIJO_N19' + DataType = datString + Size = 3 + DisplayLabel = 'Sufijo N19' + end + item + Name = 'RemesasCliente_SUFIJO_N58' + DataType = datString + Size = 3 + DisplayLabel = 'Sufijo N58' + end + item + Name = 'RemesasCliente_Refresh_REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'REFERENCIA' + ServerAutoRefresh = True + end + item + Name = 'RemesasProveedor_REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'REFERENCIA' + ServerAutoRefresh = True + end + item + Name = 'RemesasProveedor_TIPO' + DataType = datString + Size = 40 + DisplayLabel = 'Forma de pago' + end + item + Name = 'RemesasProveedor_IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + ServerAutoRefresh = True + end> + Left = 150 + Top = 22 + end + object schRemesasProveedor: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Diagrams = Diagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + Name = 'IBX' + SQL = + 'select ANO from'#10'(select distinct(substr(FECHA_REMESA, 1,4)) as A' + + 'NO'#10'from remesas_proveedor'#10'order by 1 desc)'#10#10'UNION ALL'#10#10'select di' + + 'stinct '#39'Todos'#39' as ANO'#10'from empresas'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ANO' + TableField = 'ANO' + end> + end> + Name = 'ListaAnosRemesas' + Fields = < + item + Name = 'ANO' + DataType = datString + Size = 254 + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_REMESAS_PROVEEDOR' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'TIPO' + TableField = 'TIPO' + end + item + DatasetField = 'FECHA_REMESA' + TableField = 'FECHA_REMESA' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'ID_DATOS_BANCO' + TableField = 'ID_DATOS_BANCO' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'ENTIDAD' + TableField = 'ENTIDAD' + end + item + DatasetField = 'SUCURSAL' + TableField = 'SUCURSAL' + end + item + DatasetField = 'DC' + TableField = 'DC' + end + item + DatasetField = 'CUENTA' + TableField = 'CUENTA' + end + item + DatasetField = 'SUFIJO_N19' + TableField = 'SUFIJO_N19' + end + item + DatasetField = 'SUFIJO_N58' + TableField = 'SUFIJO_N58' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end> + end> + Name = 'RemesasProveedor' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_REMESAS_PROVEEDOR_ID' + ServerAutoRefresh = True + DictionaryEntry = 'RemesasCliente_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'RemesasCliente_ID_EMPRESA' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'RemesasProveedor_REFERENCIA' + end + item + Name = 'TIPO' + DataType = datString + Size = 40 + DictionaryEntry = 'RemesasProveedor_TIPO' + end + item + Name = 'FECHA_REMESA' + DataType = datDateTime + DictionaryEntry = 'RemesasCliente_FECHA_REMESA' + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DictionaryEntry = 'RemesasCliente_DESCRIPCION' + end + item + Name = 'ID_DATOS_BANCO' + DataType = datInteger + DictionaryEntry = 'RemesasCliente_ID_DATOS_BANCO' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'RemesasCliente_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'RemesasCliente_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'RemesasCliente_USUARIO' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DictionaryEntry = 'RemesasCliente_NOMBRE' + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + DictionaryEntry = 'RemesasCliente_ENTIDAD' + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + DictionaryEntry = 'RemesasCliente_SUCURSAL' + end + item + Name = 'DC' + DataType = datString + Size = 15 + DictionaryEntry = 'RemesasCliente_DC' + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + DictionaryEntry = 'RemesasCliente_CUENTA' + end + item + Name = 'SUFIJO_N19' + DataType = datString + Size = 3 + DictionaryEntry = 'RemesasCliente_SUFIJO_N19' + end + item + Name = 'SUFIJO_N58' + DataType = datString + Size = 3 + DictionaryEntry = 'RemesasCliente_SUFIJO_N58' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DictionaryEntry = 'RemesasProveedor_IMPORTE_TOTAL' + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_REMESAS_PROVEEDOR_ID' + Value = '' + end + item + Name = 'REFERENCIA' + Value = '' + end + item + Name = 'TIPO' + Value = '' + end + item + Name = 'FECHA_REMESA' + Value = '' + end + item + Name = 'DESCRIPCION' + Value = '' + end + item + Name = 'USUARIO' + Value = '' + end + item + Name = 'ID_EMPRESA' + Value = '' + end + item + Name = 'ID_DATOS_BANCO' + Value = '' + end + item + Name = 'FECHA_ALTA' + Value = '' + end + item + Name = 'FECHA_MODIFICACION' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'REMESAS_PROVEEDOR' + SQL = + 'INSERT'#10' INTO REMESAS_PROVEEDOR'#10' (ID, REFERENCIA, TIPO, FECHA' + + '_REMESA, DESCRIPCION, USUARIO, ID_EMPRESA,'#10' ID_DATOS_BANCO, ' + + 'FECHA_ALTA, FECHA_MODIFICACION)'#10' VALUES'#10' (:ID, :REFERENCIA, ' + + ':TIPO, :FECHA_REMESA, :DESCRIPCION, :USUARIO,'#10' :ID_EMPRESA, ' + + ':ID_DATOS_BANCO, :FECHA_ALTA,'#10' :FECHA_MODIFICACION)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_RemesasProveedor' + end + item + Params = < + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'REMESAS_PROVEEDOR' + SQL = 'DELETE '#10' FROM'#10' REMESAS_PROVEEDOR'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_RemesasProveedor' + end + item + Params = < + item + Name = 'ID' + Value = '' + end + item + Name = 'REFERENCIA' + Value = '' + end + item + Name = 'TIPO' + Value = '' + end + item + Name = 'FECHA_REMESA' + Value = '' + end + item + Name = 'DESCRIPCION' + Value = '' + end + item + Name = 'USUARIO' + Value = '' + end + item + Name = 'ID_EMPRESA' + Value = '' + end + item + Name = 'ID_DATOS_BANCO' + Value = '' + end + item + Name = 'FECHA_ALTA' + Value = '' + end + item + Name = 'FECHA_MODIFICACION' + Value = '' + end + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'REMESAS_PROVEEDOR' + SQL = + 'UPDATE REMESAS_PROVEEDOR'#10' SET '#10' ID = :ID,'#10' REFERENCIA = :' + + 'REFERENCIA, '#10' TIPO = :TIPO,'#10' FECHA_REMESA = :FECHA_REMESA,' + + ' '#10' DESCRIPCION = :DESCRIPCION, '#10' USUARIO = :USUARIO, '#10' ' + + 'ID_EMPRESA = :ID_EMPRESA, '#10' ID_DATOS_BANCO = :ID_DATOS_BANCO,' + + #10' FECHA_ALTA = :FECHA_ALTA, '#10' FECHA_MODIFICACION = :FECHA_' + + 'MODIFICACION'#10' WHERE'#10' (ID = :OLD_ID)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_RemesasProveedor' + end> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 24 + end + object bpRemesasProveedor: TDABusinessProcessor + Schema = schRemesasProveedor + InsertCommandName = 'Insert_RemesasProveedor' + DeleteCommandName = 'Delete_RemesasProveedor' + UpdateCommandName = 'Update_RemesasProveedor' + ReferencedDataset = 'RemesasProveedor' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 248 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 88 + end +end diff --git a/Source/Modulos/Remesas de proveedor/Servidor/srvRemesasProveedor_Impl.pas b/Source/Modulos/Remesas de proveedor/Servidor/srvRemesasProveedor_Impl.pas new file mode 100644 index 0000000..2937539 --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Servidor/srvRemesasProveedor_Impl.pas @@ -0,0 +1,84 @@ +unit srvRemesasProveedor_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} uDABusinessProcessor, uDABin2DataStreamer, uDADataStreamer, + uDAScriptingProvider, uDAClasses, + FactuGES_Intf, uDAInterfaces, uDABinAdapter; + +type + { TsrvRemesasProveedor } + TsrvRemesasProveedor = class(TDataAbstractService, IsrvRemesasProveedor) + Diagrams: TDADiagrams; + bpRemesasProveedor: TDABusinessProcessor; + Bin2DataStreamer: TDABin2DataStreamer; + schRemesasProveedor: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceCreate(Sender: TObject); + procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; + const IncludeSchema: Boolean; const MaxRecords: Integer); + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; + var aConnectionName: string); + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer, + uDatabaseUtils, schRemesasProveedorClient_Intf, uRestriccionesUsuarioUtils, + uBizRemesasProveedorServer, // uRptRemesasProveedor_Server, + Dialogs; + +procedure Create_srvRemesasProveedor(out anInstance : IUnknown); +begin + anInstance := TsrvRemesasProveedor.Create(NIL); +end; + +{ srvRemesasProveedor } + +procedure TsrvRemesasProveedor.DARemoteServiceBeforeGetDatasetData( + const Dataset: IDADataset; const IncludeSchema: Boolean; + const MaxRecords: Integer); +begin +{ + if DataSet.Name = nme_RemesasProveedor then + begin + { Aqu se asegura que el usuario slo accede a los RemesasProveedor + de las empresas a las que tiene permiso para acceder + filtrando DataSet por ID_EMPRESA. } +{ FiltrarAccesoUsuario(Session, Connection, schRemesasProveedor, DataSet, fld_RemesasProveedorID_EMPRESA); + end; +} +end; + +procedure TsrvRemesasProveedor.DARemoteServiceCreate(Sender: TObject); +begin + //SessionManager := dmServer.SessionManager; + bpRemesasProveedor.BusinessRulesID := BIZ_SERVER_REMESAS_PROVEEDOR; +end; + +procedure TsrvRemesasProveedor.DataAbstractServiceBeforeAcquireConnection( + aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +initialization + TROClassFactory.Create('srvRemesasProveedor', Create_srvRemesasProveedor, TsrvRemesasProveedor_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Remesas de proveedor/Views/RemesasProveedor_view.bdsproj b/Source/Modulos/Remesas de proveedor/Views/RemesasProveedor_view.bdsproj new file mode 100644 index 0000000..4207930 --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Views/RemesasProveedor_view.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + RemesasProveedor_view.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + True + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Remesas de proveedor/Views/RemesasProveedor_view.dcu b/Source/Modulos/Remesas de proveedor/Views/RemesasProveedor_view.dcu new file mode 100644 index 0000000..5d1971b Binary files /dev/null and b/Source/Modulos/Remesas de proveedor/Views/RemesasProveedor_view.dcu differ diff --git a/Source/Modulos/Remesas de proveedor/Views/RemesasProveedor_view.dpk b/Source/Modulos/Remesas de proveedor/Views/RemesasProveedor_view.dpk new file mode 100644 index 0000000..e894232 Binary files /dev/null and b/Source/Modulos/Remesas de proveedor/Views/RemesasProveedor_view.dpk differ diff --git a/Source/Modulos/Remesas de proveedor/Views/RemesasProveedor_view.dproj b/Source/Modulos/Remesas de proveedor/Views/RemesasProveedor_view.dproj new file mode 100644 index 0000000..f697d4a --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Views/RemesasProveedor_view.dproj @@ -0,0 +1,615 @@ + + + {5e4bdd4d-597f-407c-8b0c-32e37fbd6267} + RemesasProveedor_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\RemesasProveedor_view.bpl + + + 7.0 + False + False + False + True + 0 + True + True + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + False + True + True + True + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + RemesasProveedor_view.dpk + + + + + + + MainSource + + + + + + + + + + +
fEditorRemesaProveedor
+ TfEditorRemesaCliente +
+ +
fEditorRemesaProveedorPreview
+ TfEditorRemesaClienteReport +
+ +
fEditorRemesasProveedor
+ TfEditorArticulos +
+ + +
frViewRecibosRemesaProveedor
+ TFrame +
+ +
frViewRemesaProveedor
+ TFrame +
+ +
frViewRemesasProveedor
+ TFrame +
+
+
+ + diff --git a/Source/Modulos/Remesas de proveedor/Views/RemesasProveedor_view.rc b/Source/Modulos/Remesas de proveedor/Views/RemesasProveedor_view.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Views/RemesasProveedor_view.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Remesas de proveedor/Views/RemesasProveedor_view.res b/Source/Modulos/Remesas de proveedor/Views/RemesasProveedor_view.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Remesas de proveedor/Views/RemesasProveedor_view.res differ diff --git a/Source/Modulos/Remesas de proveedor/Views/uEditorRemesaProveedor.dcu b/Source/Modulos/Remesas de proveedor/Views/uEditorRemesaProveedor.dcu new file mode 100644 index 0000000..e41e2a2 Binary files /dev/null and b/Source/Modulos/Remesas de proveedor/Views/uEditorRemesaProveedor.dcu differ diff --git a/Source/Modulos/Remesas de proveedor/Views/uEditorRemesaProveedor.dfm b/Source/Modulos/Remesas de proveedor/Views/uEditorRemesaProveedor.dfm new file mode 100644 index 0000000..0247233 --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Views/uEditorRemesaProveedor.dfm @@ -0,0 +1,1911 @@ +inherited fEditorRemesaProveedor: TfEditorRemesaProveedor + Left = 374 + Top = 273 + HorzScrollBar.Visible = False + VertScrollBar.Visible = False + Caption = 'Ficha de remesa de pago' + ClientHeight = 604 + ClientWidth = 690 + Scaled = False + OnClose = CustomEditorClose + ExplicitTop = -83 + ExplicitWidth = 698 + ExplicitHeight = 638 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 690 + Caption = 'Remesa de pago' + ExplicitWidth = 690 + inherited Image1: TImage + Left = 557 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000002744944415478DA63FCFFFF3F + 032D01E3F0B060F9D6D334B3056E41A4B729491AFFFCFDCFF0F7EF3F869FBFFE + 80E93FFFFE8169301B887FFDFECB109E5E876A41E249438206FF05AAFFF5F72F + C3AF3F7FC0F4975FBF207C10065A02932BFAB59C61DED24D9816CC373F8F6291 + F45B6F8626CF660C8BFE010D0361CFD5F60C1F791E800DBF14F0824169A520D8 + 928ABFAB705B00022036B2E11718CF33189F346660B809E4A833309C353FCBA0 + F9438BE117D007415B3C189EB2DF66B811FC1AAC566C3137431DC35AFC3E8019 + CE7C8A89E1AFD93F300D32FC6CDC5906E379408BB419183EEB7C61E0BDC2C3F0 + 5AE50D43F84E5F86BD51C718841771817DD0CEB211BB05E841C3BC1C684124D0 + 82C54C10C39719339C8D02D2B38C193E447C6410D8C2CFF0C2E52543D49E0086 + 0B7F2EC0E3A3977D0B911620FBE02A508203887F30807DF056ED1D83F02D2186 + 27324F18E20E86329CFA79166EC164AEEDF82D40B6E42F50C365964B9038B808 + 94D087C481DC5B79869F3F7E60180E02382D404E4520C58A1FFC186A9C6BC196 + FC03A7F5BF700CE247EF0D841BFE33E50F03E34C46FC16C0003C6D03B1CCB31F + 0C5325B4B1E60BDE877B505C0E03582D40CFA57FA039F3EA444D0609A7200645 + CB1E86FBC74BC06A5EDC0726E7FBF719E6EE7BCE30A7DA09C3E2294F73312D98 + B2780756570A7E3BC7A0F4660ED8307450DD928DD3E273AC89080BBA27CF2758 + 4C9C2B7B88553CA5751FA65AA0E12000B680919191A0E1C75A14FF93124C404B + C3E6EEFBB19A140B4281D42A6CC13467EF77AC96022D6024CA0290E196969AAB + B0C91D3F7E1D6BDC008101D0828BC45A803778402EC5A597681FE00A1E200087 + 355E0B6809686E0100FA3E2AAB1481BE0E0000000049454E44AE426082} + ExplicitLeft = 607 + end + inherited lblDesbloquear: TcxLabel + Left = 592 + ExplicitLeft = 592 + end + end + inherited TBXDock: TTBXDock + Width = 690 + ExplicitWidth = 690 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 488 + inherited TBXItem2: TTBXItem + Visible = False + end + inherited TBXItem5: TTBXItem + Visible = False + end + object TBXSeparatorItem6: TTBXSeparatorItem [11] + end + object TBXItem33: TTBXItem [12] + Action = actVolcarDisco + DisplayMode = nbdmImageAndText + end + end + inherited tbxMenu: TTBXToolbar + DockPos = 0 + ExplicitWidth = 690 + inherited TBXSubmenuItem4: TTBXSubmenuItem + inherited TBXItem8: TTBXItem + Visible = False + end + inherited TBXSeparatorItem5: TTBXSeparatorItem + Visible = False + end + inherited TBXItem10: TTBXItem + Visible = False + end + inherited TBXItem21: TTBXItem + Visible = False + end + inherited TBXItem22: TTBXItem + Visible = False + end + inherited TBXItem9: TTBXItem + Visible = False + end + end + inherited TBXSubmenuItem1: TTBXSubmenuItem + inherited TBXItem32: TTBXItem + Visible = False + end + inherited TBXItem31: TTBXItem + Visible = False + end + inherited TBXSeparatorItem13: TTBXSeparatorItem + Visible = False + end + end + object TBXSubmenuItem2: TTBXSubmenuItem [4] + Caption = 'A&cciones' + object TBXItem7: TTBXItem + Action = actVolcarDisco + end + end + end + end + inherited pgPaginas: TPageControl + Width = 684 + Height = 457 + MultiLine = True + ExplicitWidth = 684 + ExplicitHeight = 457 + inherited pagGeneral: TTabSheet + ExplicitLeft = 4 + ExplicitTop = 24 + ExplicitWidth = 676 + ExplicitHeight = 429 + inline frViewRecibosRemesaProveedor1: TfrViewRecibosRemesaProveedor + Left = 0 + Top = 155 + Width = 676 + Height = 274 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitTop = 155 + ExplicitWidth = 676 + ExplicitHeight = 274 + inherited cxGrid: TcxGrid + Width = 676 + Height = 249 + ExplicitWidth = 676 + ExplicitHeight = 249 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = frViewRecibosRemesaProveedor1.cxGridViewIMPORTE_TOTAL + end + item + Format = '0 Recibos' + Kind = skCount + Column = frViewRecibosRemesaProveedor1.cxGridViewREFERENCIA + end> + DataController.Summary.OnAfterSummary = frViewRecibosRemesaProveedor1cxGridViewDataControllerSummaryAfterSummary + end + end + inherited ToolBar1: TToolBar + Width = 676 + ExplicitWidth = 676 + end + end + inline frViewRemesaProveedor1: TfrViewRemesaProveedor + Left = 0 + Top = 0 + Width = 676 + Height = 155 + Align = alTop + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 1 + ReadOnly = False + ExplicitWidth = 676 + ExplicitHeight = 155 + inherited dxLayoutControlRemesaProveedor: TdxLayoutControl + Width = 676 + Height = 155 + ExplicitWidth = 676 + ExplicitHeight = 155 + inherited eReferencia: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 224 + Width = 224 + end + inherited eDescripcion: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 544 + Width = 544 + end + inherited edtFechaRemesa: TcxDBDateEdit + Left = 423 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 423 + ExplicitWidth = 231 + Width = 231 + end + inherited cbCuentaBancaria: TcxDBLookupComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 544 + Width = 544 + end + inherited cbTipo: TcxDBImageComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 544 + Width = 544 + end + end + end + end + end + inherited StatusBar: TJvStatusBar + Top = 585 + Width = 690 + Panels = < + item + Width = 200 + end> + ExplicitLeft = 8 + ExplicitTop = 597 + ExplicitWidth = 690 + end + inline frViewTotales1: TfrViewTotales [4] + Left = 0 + Top = 539 + Width = 690 + Height = 46 + Align = alBottom + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 4 + ReadOnly = False + ExplicitTop = 558 + ExplicitWidth = 690 + ExplicitHeight = 46 + inherited dxLayoutControl1: TdxLayoutControl + Width = 690 + Height = 46 + ExplicitWidth = 690 + ExplicitHeight = 46 + inherited Bevel3: TBevel + Left = 389 + Top = 10 + Height = 30 + ExplicitLeft = 389 + ExplicitTop = 10 + ExplicitHeight = 30 + end + inherited Bevel4: TBevel + Left = 501 + Top = 52 + Width = 192 + ExplicitLeft = 501 + ExplicitTop = 52 + ExplicitWidth = 192 + end + inherited Bevel1: TBevel + Left = 501 + Top = 168 + Width = 73 + ExplicitLeft = 501 + ExplicitTop = 168 + ExplicitWidth = 73 + end + inherited Bevel2: TBevel + Left = 119 + Top = 170 + Width = 368 + ExplicitLeft = 119 + ExplicitTop = 170 + ExplicitWidth = 368 + end + inherited ImporteDto: TcxDBCurrencyEdit + Left = 190 + Top = 37 + DataBinding.DataField = '' + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 190 + ExplicitTop = 37 + ExplicitWidth = 164 + Width = 164 + end + inherited ImporteIVA: TcxDBCurrencyEdit + Left = 572 + Top = 87 + DataBinding.DataField = '' + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 572 + ExplicitTop = 87 + ExplicitWidth = 154 + Width = 154 + end + inherited ImporteTotal: TcxDBCurrencyEdit + Left = 502 + Top = 141 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 502 + ExplicitTop = 141 + ExplicitWidth = 224 + Width = 224 + end + inherited edtDescuento: TcxDBSpinEdit + Left = 119 + Top = 37 + DataBinding.DataField = '' + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 119 + ExplicitTop = 37 + end + inherited edtIVA: TcxDBSpinEdit + Left = 501 + Top = 87 + DataBinding.DataField = '' + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 501 + ExplicitTop = 87 + end + inherited ImporteBase: TcxDBCurrencyEdit + Left = 501 + Top = 10 + DataBinding.DataField = '' + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 501 + ExplicitTop = 10 + ExplicitWidth = 225 + Width = 225 + end + inherited edtRE: TcxDBSpinEdit + Left = 501 + Top = 114 + DataBinding.DataField = '' + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 501 + ExplicitTop = 114 + end + inherited ImporteRE: TcxDBCurrencyEdit + Left = 572 + Top = 114 + DataBinding.DataField = '' + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 572 + ExplicitTop = 114 + ExplicitWidth = 154 + Width = 154 + end + inherited eImporteNeto: TcxDBCurrencyEdit + Left = 119 + Top = 10 + DataBinding.DataField = '' + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 119 + ExplicitTop = 10 + ExplicitWidth = 235 + Width = 235 + end + inherited ePorte: TcxDBCurrencyEdit + Left = 119 + Top = 64 + DataBinding.DataField = '' + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 119 + ExplicitTop = 64 + ExplicitWidth = 235 + Width = 235 + end + inherited eIVA: TcxDBLookupComboBox + Left = 119 + Top = 91 + DataBinding.DataField = '' + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 119 + ExplicitTop = 91 + ExplicitWidth = 97 + Width = 97 + end + inherited bTiposIVA: TButton + Left = 241 + Top = 91 + ExplicitLeft = 241 + ExplicitTop = 91 + end + inherited cbRecargoEquivalencia: TcxDBCheckBox + Left = 119 + Top = 118 + DataBinding.DataField = '' + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 119 + ExplicitTop = 118 + ExplicitWidth = 235 + Width = 235 + end + inherited edtRetencion: TcxDBSpinEdit + Left = 501 + Top = 188 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 501 + ExplicitTop = 188 + end + inherited edtImporteRetencion: TcxDBCurrencyEdit + Left = 572 + Top = 188 + Style.LookAndFeel.SkinName = '' + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 572 + ExplicitTop = 188 + ExplicitWidth = 180 + Width = 180 + end + inherited edtFechaRetencion: TcxDBDateEdit + Left = 119 + Top = 190 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 119 + ExplicitTop = 190 + ExplicitWidth = 280 + Width = 280 + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Group1: TdxLayoutGroup + ShowCaption = False + ShowBorder = False + inherited dxLayoutControl1Group2: TdxLayoutGroup + Visible = False + inherited dxLayoutControl1Item19: TdxLayoutItem + Visible = False + end + end + inherited dxLayoutControl1Group5: TdxLayoutGroup + inherited dxLayoutControl1Item13: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Group3: TdxLayoutGroup + inherited dxLayoutControl1Item12: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Item14: TdxLayoutItem + Visible = False + end + inherited dxLayoutControl1Group9: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Group8: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Item10: TdxLayoutItem + Visible = False + end + end + end + end + end + end + end + inherited EditorActionList: TActionList [5] + Left = 96 + Top = 168 + object actVolcarDisco: TAction + Category = 'Acciones' + Caption = 'Volcar a disco...' + ImageIndex = 22 + Visible = False + OnExecute = actVolcarDiscoExecute + OnUpdate = actVolcarDiscoUpdate + end + end + inherited SmallImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001A34944415478DA9D922177E3300CC7655636C3B20596CD702C86C7E6 + B141C342EF1BE42318167AECD81916BA6CD0638582852A0BCBA46CCDDAF46E77 + EFF4E2A7D8F2FF2759B6724FD9354BF30B09810EF5B16C43866FACAC7DA67DD5 + E364655A15020ECEDD42AD47C839EE4AE9EC5CE492EBB2CF9DFC676BCA83772D + 6C133CEFE14D395F066B0C032AA4346AD5B9905D20C49BD255350196D4BEF40D + C48A47657F44073D05CEDC9AFBF0585F63B61D1379AF7BF2B702C67D8509B0F6 + 4329E52D1DE8CE2CF557B6B93144CAF13C04767702CCED62B12433587FB99141 + 4E1C03C2B70011B72EC02E479843CEAD6E60D04BEED9C1825B47A54E6273CF15 + F73CE9095226D00B891000FB66C1733E2F71CCACCC08EA36043165755141D334 + 2CE6EEAFE429F0552F3468CD5E370CE05842F04E4FE2DFF6A05979CE04633524 + 15F08707024484E0F9EA36C880ACAE7A70DE87931D7B0190BCD0B1326F11E256 + 20FF0098C454D92324167A5320163B95FF47C0518EC02219F4E9D3AB01C780F4 + 3780910A46D167763E3FF508B95A59BA105F037E76038EC28FE6C9B58DCDEC3F + E273F115E07FEC1D6B02010E884AA1F00000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001D24944415478DA + 635CBBFBE27F062C20D8559F1145C0600644DD850C1471469001412E7A286AD7 + EDB9846A08507365811743FB846DC41BD0D23303CC3EFF529F61E19464861B77 + 9E332C597190E1C7CFBF175FBFFFE10D34E8298601F7AD2419148F3D67F8FEF3 + 37C3F71FBF19841D16C335C380181F0B4365E7D62F4083344086C00D0069E6B4 + F26638B66E2E83C3F9AF0CDF7EFC62F08BAF02BBC0D74D9741474B96E1CAB5C7 + 60FACFE7370C0BD75FDEFA6A5FBC0FD800C33A77B06686FBFBC0B61C3B7F9F41 + 67FF2B8688F47A86F33BA73382C20064C8E65D97E186C1C2036C809FA30EC326 + 5566062B4345B8E66FDF7F312415B4420C408A85CF471354A21ACFDE3976F216 + C3DB838910035C2DD5C14E3E6ACAC7A0BEEB39C357A0E6DFBFFF32E4567533D4 + 94646044F1C92B1F19A6AEBAC5F0F5780AC4006BA0CDA0400369046190ED2050 + 54D70736003D96E6AC3DC35033E33AC3CB3D7110036051860DC00DF8788EE1FE + 726306C5C8B30CEB4EB3C0A39991810080C5D2EF358C0CAC16F10CF7B72C64E0 + 8F44C412710698FE81D86E0F8CA8830C6057DCFA200B8E25A20C30BCA3CFA0E8 + 130F8C82850CEFDF31307CB80CF491C313702C116580C8697D0C7166F77BE058 + 22CA007CB1449401F862090078951B407104A20F0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end> + Left = 555 + Top = 0 + Bitmap = {} + end + inherited dsDataTable: TDADataSource [7] + Left = 64 + Top = 168 + end + inherited LargeImages: TPngImageList [8] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003034944415478DA + ADD46F4813611C07F0EF392446538B289908A6537314FE4926362B933433536C + 1619F52202A1DEF8C250DF0596BD890489CC28EA456064E6D49588A583569BF8 + 27752ACE7F399550D3B09C9BD23677DD5DDD799BCBCCF983C1EE9EBBEFE7F9F1 + DCF31035EFF424D6A9EC9428021E1441038AE448B783CAE65E94DC7D88EEA68A + 4D23FF040E458720FD52E15F11694E9DD9F0224BF45F80328480628CE43A60CB + 15397051B564B5DA85C3D50A62C380512E86509E0E9DF2094E196CB0DAECD46F + 05272E1438017478464AB4B04AD58E31E5D98D016C388C6AE65AD76D4442BB09 + D58D5A3CAD5471001B1E112AC6B36AAD616CE29B3F4992361F91B0746864BADE + DA9E3BBC06700D678B46A68A1B39801FCEAF51E31C6A1A3E59C627E7066DB695 + F3B68EDCCF1C107323D56D381F2909BF06EBAE93665954B0282941CA8DD9571C + 004960D1628379C98EAA5A5D7DBF61E2384922103D57179C3B100BDD86F33B08 + CAA8215393A48E84B8302F7ABCB85485A3F15248820360595E81D962EFB9FFA8 + 76861A7A4301E50C9091B89F59C8D9E42027840E0F69F8828F9D7D4E6B4023FB + C2F62C9F498B1516DDAAC64E3FD1A240E0253A228F2604DEDBF0AA565D643299 + 6514708E0152E511DCD7B29419CE206CF84FEA7E87DEE004B088404058A6BFFE + D8BEDC7A85F0963D9644848B151249C49DE1D1C9DB0303C3E91410C30049B250 + 269C45F4C77673E1D4770EBD618403F8474BFEBD51CCCC7EC7F31219D77561B9 + 11FE01C1953A5D6B3605089917E22383A06C6AC57AC507F8FB666FA612E32A05 + 777DBD4C8BD71FE6313236050A209817F8BB75BD7207B856C5CB0E1494F5530B + 6EFD0D6C2899576E81852EC0EF201C0E1275EA3EDC2C7F0BFDB80F62FCF5F01C + A0C307F3A0516B1197BF7AB49CCE6B8275AE790B80B6C380AF96F93BD402ECC8 + 3131487D731BB36E9E017F66CF029A3A20F8F23CD341E3FBCE2D0078B3678BEE + C2913683165DB78780CBECD9A2BBF0CD5ADDFD9B02E8A3C5BB2B714D381FE90D + 6CF4A003991D9A07B1EB3EE711401F2D952ACD3F9FDD34B0D19D4FD72F7A80FE + E871245F980000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end> + Left = 523 + Top = 0 + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [9] + OnSavePlacement = JvFormStorageSavePlacement + OnRestorePlacement = JvFormStorageRestorePlacement + Left = 528 + Top = 32 + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [10] + Left = 560 + Top = 32 + end + inherited StatusBarImages: TPngImageList + Left = 120 + Top = 112 + end + object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList + Left = 48 + Top = 144 + object dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel + GroupOptions.CaptionOptions.Font.Charset = DEFAULT_CHARSET + GroupOptions.CaptionOptions.Font.Color = clWindowText + GroupOptions.CaptionOptions.Font.Height = -11 + GroupOptions.CaptionOptions.Font.Name = 'Tahoma' + GroupOptions.CaptionOptions.Font.Style = [fsBold] + GroupOptions.CaptionOptions.TextColor = clHighlight + GroupOptions.CaptionOptions.UseDefaultFont = False + end + end +end diff --git a/Source/Modulos/Remesas de proveedor/Views/uEditorRemesaProveedor.pas b/Source/Modulos/Remesas de proveedor/Views/uEditorRemesaProveedor.pas new file mode 100644 index 0000000..283ee3a --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Views/uEditorRemesaProveedor.pas @@ -0,0 +1,349 @@ +unit uEditorRemesaProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorDBItem, ToolWin, ComCtrls, JvExControls, JvComponent, + uBizRemesasProveedor, JvNavigationPane, ActnList, + uEditorBase, StdActns, TB2Dock, TB2Toolbar, TBX, ImgList, PngImageList, + TB2Item, uEditorItem, DB, uDADataTable, uEditorDBBase, JvFormAutoSize, + uDAScriptingProvider, uDACDSDataTable, StdCtrls, pngimage, ExtCtrls, + TBXDkPanels, JvButton, AppEvnts, uCustomView, uViewBase, + JvAppStorage, JvAppRegistryStorage, JvFormPlacement, JvComponentBase, + cxCustomData, + uViewRemesasProveedor, uIEditorRemesaProveedor, uRemesasProveedorController, JvExComCtrls, + JvStatusBar, dxLayoutLookAndFeels, uViewGridBase, uViewGrid, + uViewRecibosRemesaProveedor, uViewTotales, uViewDetallesGenerico, + uViewRemesaProveedor, uDAInterfaces, cxControls, cxContainer, cxEdit, cxLabel; + +type + TfEditorRemesaProveedor = class(TfEditorDBItem, IEditorRemesaProveedor) + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + frViewTotales1: TfrViewTotales; + actVolcarDisco: TAction; + TBXSubmenuItem2: TTBXSubmenuItem; + TBXItem7: TTBXItem; + TBXItem33: TTBXItem; + TBXSeparatorItem6: TTBXSeparatorItem; + frViewRecibosRemesaProveedor1: TfrViewRecibosRemesaProveedor; + frViewRemesaProveedor1: TfrViewRemesaProveedor; + procedure FormShow(Sender: TObject); + procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); + + procedure actAnadirRecibosExecute(Sender: TObject); + procedure actEliminarReciboExecute(Sender: TObject); + procedure JvFormStorageRestorePlacement(Sender: TObject); + procedure JvFormStorageSavePlacement(Sender: TObject); + procedure frViewRecibosRemesaProveedor1cxGridViewDataControllerSummaryAfterSummary( + ASender: TcxDataSummary); + procedure actVolcarDiscoUpdate(Sender: TObject); + procedure actVolcarDiscoExecute(Sender: TObject); + private + procedure OnRecibosChanged(Sender: TObject); + protected + FController : IRemesasProveedorController; + FRemesaProveedor: IBizRemesaProveedor; + FViewRemesaProveedor : IViewRemesaProveedor; + + function GetController : IRemesasProveedorController; + procedure SetController (const Value : IRemesasProveedorController); virtual; + function GetRemesaProveedor: IBizRemesaProveedor; virtual; + procedure SetRemesaProveedor(const Value: IBizRemesaProveedor); virtual; + function GetViewRemesaProveedor: IViewRemesaProveedor; + procedure SetViewRemesaProveedor(const Value: IViewRemesaProveedor); + property ViewRemesaProveedor: IViewRemesaProveedor read GetViewRemesaProveedor write SetViewRemesaProveedor; + + procedure GuardarInterno; override; + procedure EliminarInterno; override; + procedure PrevisualizarInterno; override; + procedure ImprimirInterno; override; + procedure CerrarInterno; override; + + procedure PonerTitulos(const ATitulo: string = ''); override; + function GetModified: Boolean; override; + function PuedoImprimir: Boolean; override; + + public + property RemesaProveedor: IBizRemesaProveedor read GetRemesaProveedor write SetRemesaProveedor; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + uDataTableUtils, uDataModuleUsuarios, uDialogUtils, uCustomEditor, + uDataModuleRemesasProveedor, uDataModuleBase, uBizFamilias, uFamiliasController, + uFactuGES_App; +// uBancaElectronicaController; + +{ +******************************* TfEditorRemesaProveedor ******************************* +} +function TfEditorRemesaProveedor.GetRemesaProveedor: IBizRemesaProveedor; +begin + Result := FRemesaProveedor; +end; + +function TfEditorRemesaProveedor.GetController: IRemesasProveedorController; +begin + Result := FController; +end; + +function TfEditorRemesaProveedor.GetModified: Boolean; +var + bCambiado : Boolean; +begin + bCambiado := inherited GetModified; + //Si no hay cambios miramos que no los halla en la lista de recibos + if not bCambiado then + bCambiado := frViewRecibosRemesaProveedor1.Modified; + Result := bCambiado; +end; + +function TfEditorRemesaProveedor.PuedoImprimir: Boolean; +begin + Result := inherited PuedoImprimir and (not RemesaProveedor.Recibos.IDIsNull); +end; + +function TfEditorRemesaProveedor.GetViewRemesaProveedor: IViewRemesaProveedor; +begin + Result := FViewRemesaProveedor; +end; + +procedure TfEditorRemesaProveedor.GuardarInterno; +var + bEsNuevo : Boolean; +begin + inherited; + + ShowHourglassCursor; + frViewRecibosRemesaProveedor1.OnViewModified := Nil; + //frViewDetallesFacturaProveedor1.SaveGridStatus; // Para guardar estado del grid +// frViewDetallesFacturaProveedor1.BeginUpdate; // Para que no se mueva el foco + try + bEsNuevo := FRemesaProveedor.EsNuevo; + FController.Guardar(FRemesaProveedor); + + finally +// frViewDetallesFacturaProveedor1.EndUpdate; +// frViewDetallesFacturaProveedor1.RestoreGridStatus; + HideHourglassCursor; + end; + + if bEsNuevo then + ShowInfoMessage('La remesa de pago se ha dado de alta con el cdigo ' + FRemesaProveedor.REFERENCIA); + Modified := False; + frViewRecibosRemesaProveedor1.Modified := False; + frViewRecibosRemesaProveedor1.OnViewModified := OnRecibosChanged; +end; + +procedure TfEditorRemesaProveedor.ImprimirInterno; +begin + inherited; + FController.Print(FRemesaProveedor); +end; + +procedure TfEditorRemesaProveedor.JvFormStorageRestorePlacement(Sender: TObject); +begin + inherited; + //frViewRecibosRemesaProveedor1.RestoreFromRegistry(JvAppRegistryStorage.Root); +end; + +procedure TfEditorRemesaProveedor.JvFormStorageSavePlacement(Sender: TObject); +begin + inherited; + //frViewRecibosRemesaProveedor1.StoreToRegistry(JvAppRegistryStorage.Root); +end; + +procedure TfEditorRemesaProveedor.OnRecibosChanged(Sender: TObject); +begin + ActualizarEstadoEditor; +end; + +procedure TfEditorRemesaProveedor.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := ATitulo; + if (FTitulo = '') and Assigned(RemesaProveedor) then + begin + if RemesaProveedor.EsNuevo then + FTitulo := 'Nueva remesa de pago' + else + FTitulo := 'Remesa de pago'; + end; + + inherited PonerTitulos(FTitulo); + + Self.Caption := FTitulo + ' (' + AppFactuGES.EmpresaActiva.NOMBRE + ')'; +end; + +procedure TfEditorRemesaProveedor.PrevisualizarInterno; +begin + inherited; + FController.Preview(FRemesaProveedor); +end; + +procedure TfEditorRemesaProveedor.SetRemesaProveedor(const Value: IBizRemesaProveedor); +begin + FRemesaProveedor := Value; + if Assigned(FRemesaProveedor) then + begin + dsDataTable.DataTable := FRemesaProveedor.DataTable; + frViewRecibosRemesaProveedor1.RemesaProveedor := FRemesaProveedor; + frViewRecibosRemesaProveedor1.OnViewModified := OnRecibosChanged; + end + else + begin + dsDataTable.DataTable := Nil; + frViewRecibosRemesaProveedor1.RemesaProveedor := Nil; + frViewRecibosRemesaProveedor1.OnViewModified := Nil; + end; + + if Assigned(FViewRemesaProveedor) then + FViewRemesaProveedor.RemesaProveedor := FRemesaProveedor; + + frViewTotales1.DADataSource.DataTable := dsDataTable.DataTable; +end; + +procedure TfEditorRemesaProveedor.SetController(const Value: IRemesasProveedorController); +begin + FController := Value; + if Assigned(FController) then + begin + (ViewRemesaProveedor as IViewRemesaProveedor).Controller := (FController as IRemesasProveedorController); + frViewRecibosRemesaProveedor1.Controller := (FController as IRemesasProveedorController); + end; +end; + +procedure TfEditorRemesaProveedor.SetViewRemesaProveedor(const Value: IViewRemesaProveedor); +begin + FViewRemesaProveedor := Value; + + if Assigned(FViewRemesaProveedor) and Assigned(RemesaProveedor) then + begin + FViewRemesaProveedor.RemesaProveedor := RemesaProveedor; + FViewRemesaProveedor.Controller := (FController as IRemesasProveedorController); + end; +end; + +procedure TfEditorRemesaProveedor.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(FViewRemesaProveedor) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(RemesaProveedor) then + raise Exception.Create('No hay ningn almacn asignado'); + + RemesaProveedor.DataTable.Active := True; + + //Falla si lo hacemos por dfm + frViewRecibosRemesaProveedor1.cxGridView.OptionsSelection.MultiSelect := False; +end; + +procedure TfEditorRemesaProveedor.frViewRecibosRemesaProveedor1cxGridViewDataControllerSummaryAfterSummary(ASender: TcxDataSummary); +Var + AImporteTotal: Currency; +begin + inherited; + + if VarIsNull(ASender.FooterSummaryValues[0]) then + AImporteTotal := 0 + else + AImporteTotal := ASender.FooterSummaryValues[0]; + + if Assigned(RemesaProveedor) then + begin + if (RemesaProveedor.IMPORTE_TOTAL <> AImporteTotal) then + begin + if not RemesaProveedor.DataTable.Editing then + begin + RemesaProveedor.Edit; + RemesaProveedor.IMPORTE_TOTAL := AImporteTotal; + RemesaProveedor.Post; + end; + end; + end; +end; + +destructor TfEditorRemesaProveedor.Destroy; +begin + // Utilizar mejor OnClose; + inherited; +end; + +procedure TfEditorRemesaProveedor.actAnadirRecibosExecute(Sender: TObject); +begin + inherited; +// HayCambios := FController.ElegirRecibosProveedor(RemesaProveedor) OR HayCambios; +end; + +procedure TfEditorRemesaProveedor.actEliminarReciboExecute(Sender: TObject); +begin + inherited; +// FController.EliminarReciboProveedor(RemesaProveedor); +// HayCambios := True; +end; + +procedure TfEditorRemesaProveedor.actVolcarDiscoExecute(Sender: TObject); +//var +// ABancaController : IBancaElectronicaController; +begin +{ + inherited; + ABancaController := TBancaElectronicaController.Create; + try + ABancaController.GenerarFicheroNorma19(FRemesaProveedor.ID); + finally + ABancaController := NIL; + end; +} +end; + +procedure TfEditorRemesaProveedor.actVolcarDiscoUpdate(Sender: TObject); +begin +// (Sender as TAction).Enabled := HayDatos and (not FRemesaProveedor.EsNuevo); +end; + +procedure TfEditorRemesaProveedor.CerrarInterno; +begin + frViewRecibosRemesaProveedor1.OnViewModified := Nil; + inherited; +end; + +constructor TfEditorRemesaProveedor.Create(AOwner: TComponent); +begin + inherited; + pgPaginas.ActivePageIndex := 0; + FViewRemesaProveedor := frViewRemesaProveedor1; +end; + +procedure TfEditorRemesaProveedor.CustomEditorClose(Sender: TObject; + var Action: TCloseAction); +begin + inherited; + dsDataTable.DataTable := NIL; + FViewRemesaProveedor := NIL; + FRemesaProveedor := NIL; +end; + +procedure TfEditorRemesaProveedor.EliminarInterno; +begin + if (Application.MessageBox('Desea borrar esta remesa de pago?', 'Atencin', MB_YESNO) = IDYES) then + begin + inherited; + if not FController.Eliminar(FRemesaProveedor) then + actRefrescar.Execute; + end; +end; + +end. + + \ No newline at end of file diff --git a/Source/Modulos/Remesas de proveedor/Views/uEditorRemesaProveedorReport.dcu b/Source/Modulos/Remesas de proveedor/Views/uEditorRemesaProveedorReport.dcu new file mode 100644 index 0000000..7c337be Binary files /dev/null and b/Source/Modulos/Remesas de proveedor/Views/uEditorRemesaProveedorReport.dcu differ diff --git a/Source/Modulos/Remesas de proveedor/Views/uEditorRemesaProveedorReport.dfm b/Source/Modulos/Remesas de proveedor/Views/uEditorRemesaProveedorReport.dfm new file mode 100644 index 0000000..49185a3 --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Views/uEditorRemesaProveedorReport.dfm @@ -0,0 +1,10 @@ +inherited fEditorRemesaProveedorPreview: TfEditorRemesaProveedorPreview + Caption = 'Previsualizar la remesa' + PixelsPerInch = 96 + TextHeight = 13 + inherited frxReport1: TfrxReport + Datasets = <> + Variables = <> + Style = <> + end +end diff --git a/Source/Modulos/Remesas de proveedor/Views/uEditorRemesaProveedorReport.pas b/Source/Modulos/Remesas de proveedor/Views/uEditorRemesaProveedorReport.pas new file mode 100644 index 0000000..3be794a --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Views/uEditorRemesaProveedorReport.pas @@ -0,0 +1,23 @@ +unit uEditorRemesaProveedorReport; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorPreview, frxExportImage, frxExportPDF, frxDCtrl, frxClass, + frxDMPExport, frxGradient, frxChBox, frxCross, frxRich, frxChart, frxOLE, + frxBarcode, JvAppStorage, JvAppRegistryStorage, JvComponentBase, + JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, + TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, + ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uIEditorRemesasProveedorPreview, + JvExComCtrls, JvStatusBar; + +type + TfEditorRemesaProveedorPreview = class(TfEditorPreview, IEditorRemesasProveedorPreview) + end; + + +implementation +{$R *.dfm} + +end. diff --git a/Source/Modulos/Remesas de proveedor/Views/uEditorRemesasProveedor.dcu b/Source/Modulos/Remesas de proveedor/Views/uEditorRemesasProveedor.dcu new file mode 100644 index 0000000..9dc456b Binary files /dev/null and b/Source/Modulos/Remesas de proveedor/Views/uEditorRemesasProveedor.dcu differ diff --git a/Source/Modulos/Remesas de proveedor/Views/uEditorRemesasProveedor.dfm b/Source/Modulos/Remesas de proveedor/Views/uEditorRemesasProveedor.dfm new file mode 100644 index 0000000..f62799d --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Views/uEditorRemesasProveedor.dfm @@ -0,0 +1,2454 @@ +inherited fEditorRemesasProveedor: TfEditorRemesasProveedor + Left = 489 + Top = 325 + Caption = 'Lista de remesas de pago' + ClientWidth = 820 + ExplicitWidth = 828 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 820 + Caption = 'Lista de remesas de pago' + ExplicitWidth = 820 + inherited Image1: TImage + Left = 793 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000002744944415478DA63FCFFFF3F + 032D01E3F0B060F9D6D334B3056E41A4B729491AFFFCFDCFF0F7EF3F869FBFFE + 80E93FFFFE8169301B887FFDFECB109E5E876A41E249438206FF05AAFFF5F72F + C3AF3F7FC0F4975FBF207C10065A02932BFAB59C61DED24D9816CC373F8F6291 + F45B6F8626CF660C8BFE010D0361CFD5F60C1F791E800DBF14F0824169A520D8 + 928ABFAB705B00022036B2E11718CF33189F346660B809E4A833309C353FCBA0 + F9438BE117D007415B3C189EB2DF66B811FC1AAC566C3137431DC35AFC3E8019 + CE7C8A89E1AFD93F300D32FC6CDC5906E379408BB419183EEB7C61E0BDC2C3F0 + 5AE50D43F84E5F86BD51C718841771817DD0CEB211BB05E841C3BC1C684124D0 + 82C54C10C39719339C8D02D2B38C193E447C6410D8C2CFF0C2E52543D49E0086 + 0B7F2EC0E3A3977D0B911620FBE02A508203887F30807DF056ED1D83F02D2186 + 27324F18E20E86329CFA79166EC164AEEDF82D40B6E42F50C365964B9038B808 + 94D087C481DC5B79869F3F7E60180E02382D404E4520C58A1FFC186A9C6BC196 + FC03A7F5BF700CE247EF0D841BFE33E50F03E34C46FC16C0003C6D03B1CCB31F + 0C5325B4B1E60BDE877B505C0E03582D40CFA57FA039F3EA444D0609A7200645 + CB1E86FBC74BC06A5EDC0726E7FBF719E6EE7BCE30A7DA09C3E2294F73312D98 + B2780756570A7E3BC7A0F4660ED8307450DD928DD3E273AC89080BBA27CF2758 + 4C9C2B7B88553CA5751FA65AA0E12000B680919191A0E1C75A14FF93124C404B + C3E6EEFBB19A140B4281D42A6CC13467EF77AC96022D6024CA0290E196969AAB + B0C91D3F7E1D6BDC008101D0828BC45A803778402EC5A597681FE00A1E200087 + 355E0B6809686E0100FA3E2AAB1481BE0E0000000049454E44AE426082} + ExplicitLeft = 516 + end + end + inherited TBXDock: TTBXDock + Width = 820 + ExplicitWidth = 820 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 809 + object TBXSeparatorItem17: TTBXSeparatorItem [12] + end + end + inherited tbxFiltro: TTBXToolbar + ExplicitWidth = 359 + inherited lblAno: TTBXLabelItem + Visible = True + end + inherited cbxListaAnos: TTBXComboBoxItem + Visible = True + end + inherited sepAno: TTBXSeparatorItem + Visible = True + end + inherited tbxEditFiltro: TTBXEditItem + EditOptions = [tboUseEditWhenVertical] + end + inherited TBXItem37: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 820 + object TBXSubmenuItem2: TTBXSubmenuItem [4] + Caption = 'A&cciones' + object TBXItem38: TTBXItem + Action = actVolcarDisco + end + end + end + inherited TBXTMain2: TTBXToolbar + Left = 359 + ExplicitLeft = 359 + end + end + inherited StatusBar: TJvStatusBar + Width = 820 + ExplicitWidth = 820 + end + inherited EditorActionList: TActionList + inherited actNuevo: TAction + ImageIndex = 24 + end + inherited actPrevisualizar: TAction + Visible = True + end + inherited actImprimir: TAction + Visible = True + end + inherited actDuplicar: TAction + Visible = False + end + object actVolcarDisco: TAction + Category = 'Acciones' + Caption = 'Volcar a disco...' + ImageIndex = 25 + OnExecute = actVolcarDiscoExecute + OnUpdate = actVolcarDiscoUpdate + end + end + inherited SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000F84944415478DA + 63FCFFFF3F03084C59BC03C2200072E33C19616C905E46640372623DF06A06AA + 6198B77413C3F99DD3194936E0DFBF7F0CD396EE62D051576128AAEB031B42B4 + 0120CDBFFFFC6398BD720F43B0A70DC3CD7B2FC0869CDB318D91A00130CDBF7F + FF6558B06E3FD80B3040D00064CDBFFF40F0AA6D47C1722083F01A804D3304FF + 63D8B2EF147E03F06906D13B0F9DC56D0058E16F540D20FC07C607CA1D387911 + BB01E991AE043583F847CF5EC16E4052881341CD207CEAE275EC06C406D813D4 + 0CC2E7AFDEC26E40848F2D41CD20B12B37EF603720D8C38AA06610C069809F8B + 39C3A63D2789C994D80D404EA6C400900100F58BBFF09BC1E25C000000004945 + 4E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001A34944415478DA9D922177E3300CC7655636C3B20596CD702C86C7E6 + B141C342EF1BE42318167AECD81916BA6CD0638582852A0BCBA46CCDDAF46E77 + EFF4E2A7D8F2FF2759B6724FD9354BF30B09810EF5B16C43866FACAC7DA67DD5 + E364655A15020ECEDD42AD47C839EE4AE9EC5CE492EBB2CF9DFC676BCA83772D + 6C133CEFE14D395F066B0C032AA4346AD5B9905D20C49BD255350196D4BEF40D + C48A47657F44073D05CEDC9AFBF0585F63B61D1379AF7BF2B702C67D8509B0F6 + 4329E52D1DE8CE2CF557B6B93144CAF13C04767702CCED62B12433587FB99141 + 4E1C03C2B70011B72EC02E479843CEAD6E60D04BEED9C1825B47A54E6273CF15 + F73CE9095226D00B891000FB66C1733E2F71CCACCC08EA36043165755141D334 + 2CE6EEAFE429F0552F3468CD5E370CE05842F04E4FE2DFF6A05979CE04633524 + 15F08707024484E0F9EA36C880ACAE7A70DE87931D7B0190BCD0B1326F11E256 + 20FF0098C454D92324167A5320163B95FF47C0518EC02219F4E9D3AB01C780F4 + 3780910A46D167763E3FF508B95A59BA105F037E76038EC28FE6C9B58DCDEC3F + E273F115E07FEC1D6B02010E884AA1F00000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000011A4944415478DA + 63FCFFFF3F032580916203966D3945B60991DEA68C6003D4BD9919269F4CC6AA + E8F7DFBF0CDFFFFC61F8F6FB37C3C71F3FC0ECB9FE5B19523CE6309CDB310D61 + 0008C00C996B760EC3209B6D7270CD208062C02E9134B8429866E6534C1081AB + 0C0C7F13FF81999A6B4519BE035D02728DDCB204220CB80A118319A0B04200AC + 19843556A762370024B9DCFA328617903583BC62B83E13350C40FE074B421581 + 70EF05569C31907DD8036140F7E4F9180AA6DAEE60B04CAE6660905064F8717C + 2AC3F97DE719E6EE7BCE30A5C50BCE9EB3F73B23232E1B8EB528861E7CADB6EA + CEE58358E5939D24C32CABEFADC667C07F8A5D00A456811452D505208D5635F7 + 5783D480F211C92E98BBEF075C0FD8004A73230074DEE0E1BE54FBD500000000 + 49454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001D24944415478DA + 635CBBFBE27F062C20D8559F1145C0600644DD850C1471469001412E7A286AD7 + EDB9846A08507365811743FB846DC41BD0D23303CC3EFF529F61E19464861B77 + 9E332C597190E1C7CFBF175FBFFFE10D34E8298601F7AD2419148F3D67F8FEF3 + 37C3F71FBF19841D16C335C380181F0B4365E7D62F4083344086C00D0069E6B4 + F26638B66E2E83C3F9AF0CDF7EFC62F08BAF02BBC0D74D9741474B96E1CAB5C7 + 60FACFE7370C0BD75FDEFA6A5FBC0FD800C33A77B06686FBFBC0B61C3B7F9F41 + 67FF2B8688F47A86F33BA73382C20064C8E65D97E186C1C2036C809FA30EC326 + 5566062B4345B8E66FDF7F312415B4420C408A85CF471354A21ACFDE3976F216 + C3DB838910035C2DD5C14E3E6ACAC7A0BEEB39C357A0E6DFBFFF32E4567533D4 + 94646044F1C92B1F19A6AEBAC5F0F5780AC4006BA0CDA0400369046190ED2050 + 54D70736003D96E6AC3DC35033E33AC3CB3D7110036051860DC00DF8788EE1FE + 726306C5C8B30CEB4EB3C0A39991810080C5D2EF358C0CAC16F10CF7B72C64E0 + 8F44C412710698FE81D86E0F8CA8830C6057DCFA200B8E25A20C30BCA3CFA0E8 + 130F8C82850CEFDF31307CB80CF491C313702C116580C8697D0C7166F77BE058 + 22CA007CB1449401F862090078951B407104A20F0000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001684944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0EC8B200D9F0BF50FCE7DF3F8623E71F307CFDF695E1EDDBB76075F396 + 6E22DD025C86A3B337EF3D45BA05C41AFE0F18275B0F9C26CD02520C07A9DB71 + E80CF116906A3848DD9EA3E788B3801CC341FCFD272E10B60096C6C106FCFF4F + B4E1207CE8F425FC1644789AC20DC7662818FFFB8FD311C7CE5EC16F41A89B09 + 4986A3AB3B7DF13A7E0B829C8DC8361C449FBB7213BF057E8E06641B0EC217AF + DFC66F81B79D1ED98683D45DB97907BF051ED63A641B0E02042D70B1D422DB70 + A22CB03755C799C6B1E50964C389B2C0C648155C225202F05A80ADF22007C02C + 0000E2A9A9FE0847986E0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003034944415478DA + ADD46F4813611C07F0EF392446538B289908A6537314FE4926362B933433536C + 1619F52202A1DEF8C250DF0596BD890489CC28EA456064E6D49588A583569BF8 + 27752ACE7F399550D3B09C9BD23677DD5DDD799BCBCCF983C1EE9EBBEFE7F9F1 + DCF31035EFF424D6A9EC9428021E1441038AE448B783CAE65E94DC7D88EEA68A + 4D23FF040E458720FD52E15F11694E9DD9F0224BF45F80328480628CE43A60CB + 15397051B564B5DA85C3D50A62C380512E86509E0E9DF2094E196CB0DAECD46F + 05272E1438017478464AB4B04AD58E31E5D98D016C388C6AE65AD76D4442BB09 + D58D5A3CAD5471001B1E112AC6B36AAD616CE29B3F4992361F91B0746864BADE + DA9E3BBC06700D678B46A68A1B39801FCEAF51E31C6A1A3E59C627E7066DB695 + F3B68EDCCF1C107323D56D381F2909BF06EBAE93665954B0282941CA8DD9571C + 004960D1628379C98EAA5A5D7DBF61E2384922103D57179C3B100BDD86F33B08 + CAA8215393A48E84B8302F7ABCB85485A3F15248820360595E81D962EFB9FFA8 + 76861A7A4301E50C9091B89F59C8D9E42027840E0F69F8828F9D7D4E6B4023FB + C2F62C9F498B1516DDAAC64E3FD1A240E0253A228F2604DEDBF0AA565D643299 + 6514708E0152E511DCD7B29419CE206CF84FEA7E87DEE004B088404058A6BFFE + D8BEDC7A85F0963D9644848B151249C49DE1D1C9DB0303C3E91410C30049B250 + 269C45F4C77673E1D4770EBD618403F8474BFEBD51CCCC7EC7F31219D77561B9 + 11FE01C1953A5D6B3605089917E22383A06C6AC57AC507F8FB666FA612E32A05 + 777DBD4C8BD71FE6313236050A209817F8BB75BD7207B856C5CB0E1494F5530B + 6EFD0D6C2899576E81852EC0EF201C0E1275EA3EDC2C7F0BFDB80F62FCF5F01C + A0C307F3A0516B1197BF7AB49CCE6B8275AE790B80B6C380AF96F93BD402ECC8 + 3131487D731BB36E9E017F66CF029A3A20F8F23CD341E3FBCE2D0078B3678BEE + C2913683165DB78780CBECD9A2BBF0CD5ADDFD9B02E8A3C5BB2B714D381FE90D + 6CF4A003991D9A07B1EB3EE711401F2D952ACD3F9FDD34B0D19D4FD72F7A80FE + E871245F980000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end> + Bitmap = {} + end + inherited GridPopupMenu: TPopupMenu + object N4: TMenuItem [8] + Caption = '-' + end + object Volcaradisco1: TMenuItem [9] + Action = actVolcarDisco + end + end + object JsListaRemesasNoEliminadas: TJSDialog + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Las siguientes remesas no han podido ser eliminadas' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + ButtonBar.Buttons = [cbOK] + ButtonBar.Cancel = cbOK + ButtonBar.UseCancel = False + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 184 + Top = 112 + end + object JsPrevisualizarDialog: TJSDialog + Content.Strings = ( + 'Elija una opci'#243'n:') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Previsualizar...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Previsualizar la remesa/s seleccionada/s' + Value = 100 + Default = True + end + item + Caption = 'Previsualizar la lista de remesas actual' + Value = 200 + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 296 + Top = 144 + end + object JsImprimirDialog: TJSDialog + Content.Strings = ( + 'Elija una opci'#243'n:') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Imprimir...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Imprimir la remesa/s seleccionada/s' + Value = 100 + Default = True + end + item + Caption = 'Imprimir la lista de remesas actual' + Value = 200 + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 328 + Top = 144 + end +end diff --git a/Source/Modulos/Remesas de proveedor/Views/uEditorRemesasProveedor.pas b/Source/Modulos/Remesas de proveedor/Views/uEditorRemesasProveedor.pas new file mode 100644 index 0000000..ea9c01b --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Views/uEditorRemesasProveedor.pas @@ -0,0 +1,340 @@ +unit uEditorRemesasProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorBase, ToolWin, ComCtrls, JvExControls, JvComponent, + JvNavigationPane, uViewRemesasProveedor, uBizRemesasProveedor, ActnList, DBActns, uViewGrid, + Menus, uDataModuleBase, ImgList, PngImageList, TB2Dock, TB2Toolbar, TBX, + TB2Item, StdActns, TB2ExtItems, TBXExtItems, TB2MRU, DB, uDADataTable, + JvFormAutoSize, uDAScriptingProvider, uDACDSDataTable, JvAppStorage, + JvAppRegistryStorage, JvFormPlacement, ExtCtrls, uCustomView, uViewBase, + uViewBarraSeleccion, pngimage, uIEditorRemesasProveedor, uEditorGridBase, + JvComponentBase, uViewGridBase, uRemesasProveedorController, JvExComCtrls, + JvStatusBar, JSDialog, uDAInterfaces; + +type + TfEditorRemesasProveedor = class(TfEditorGridBase, IEditorRemesasProveedor) + actVolcarDisco: TAction; + TBXSeparatorItem17: TTBXSeparatorItem; + N4: TMenuItem; + Volcaradisco1: TMenuItem; + TBXSubmenuItem2: TTBXSubmenuItem; + TBXItem38: TTBXItem; + JsListaRemesasNoEliminadas: TJSDialog; + JsPrevisualizarDialog: TJSDialog; + JsImprimirDialog: TJSDialog; + procedure FormShow(Sender: TObject); + procedure actVolcarDiscoExecute(Sender: TObject); + procedure actVolcarDiscoUpdate(Sender: TObject); + procedure OnListaAnosChange(Sender: TObject; const Text: string); + + private + FRemesasProveedor: IBizRemesaProveedor; + FController : IRemesasProveedorController; + + protected + function GetRemesasProveedor: IBizRemesaProveedor; + procedure SetRemesasProveedor(const Value: IBizRemesaProveedor); + + function GetController : IRemesasProveedorController; virtual; + procedure SetController (const Value : IRemesasProveedorController); virtual; + + procedure NuevoInterno; override; + procedure EliminarInterno; override; + procedure ModificarInterno; override; + procedure PrevisualizarInterno; override; + procedure ImprimirInterno; override; + procedure RefrescarInterno; override; + + //Si queremos crear otra vista para el editor heredado solo tendriamos que + //sobreescribir este metodo + procedure AsignarVista; virtual; + + public + procedure PonerTitulos(const ATitulo: string = ''); override; + property RemesasProveedor: IBizRemesaProveedor read GetRemesasProveedor write SetRemesasProveedor; + property Controller : IRemesasProveedorController read GetController write SetController; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +uses + uCustomEditor, uDataModuleRemesasProveedor, uDataModuleUsuarios, + uGridStatusUtils, uDBSelectionListUtils, uFactuGES_App, + uEditorDBBase, uBizFamilias, uFamiliasController, +// uBancaElectronicaController, + cxGrid, cxGridCustomTableView; //, uListaRemesasProveedor; + +{$R *.dfm} + +{ +****************************** TfEditorRemesasProveedor ******************************* +} +procedure TfEditorRemesasProveedor.FormShow(Sender: TObject); +begin + cbxListaAnos.OnChange := OnListaAnosChange; //OJO SIEMPRE ANTES DEL INHERITED + + inherited; + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(RemesasProveedor) then + raise Exception.Create('No hay ningn RemesaProveedor asignado'); + + RemesasProveedor.DataTable.Active := True; + ViewGrid.GotoFirst; +end; + +function TfEditorRemesasProveedor.GetRemesasProveedor: IBizRemesaProveedor; +begin + Result := FRemesasProveedor; +end; + +procedure TfEditorRemesasProveedor.ImprimirInterno; +var + Respuesta : Integer; + ARemesasProveedor: IBizRemesaProveedor; + AllItems: Boolean; +begin + ARemesasProveedor := Nil; + AllItems := False; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + //Si esta agrupado solo podr imprimir la lista de elementos visibles + if not ViewGrid.esSeleccionCeldaDatos then + inherited + else + begin + Respuesta := JsImprimirDialog.Execute; + if Respuesta <> IDCANCEL then + begin + case JsImprimirDialog.CustomButtonResult of + 200 : begin // Lista de elementos visibles + inherited; + end; + 100 : begin // Elemento Seleccionado + if AllItems then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (RemesasProveedor as ISeleccionable).SelectedRecords); + ARemesasProveedor := (Controller as IRemesasProveedorController).ExtraerSeleccionados(RemesasProveedor) as IBizRemesaProveedor; + end + else + ARemesasProveedor := RemesasProveedor; + + if Assigned(ARemesasProveedor) then + FController.Print(ARemesasProveedor, AllItems); + end; + end; + end; + end; +end; + +function TfEditorRemesasProveedor.GetController: IRemesasProveedorController; +begin + Result := FController; +end; + +procedure TfEditorRemesasProveedor.ModificarInterno; +begin + inherited; + FController.Ver(RemesasProveedor); +end; + +procedure TfEditorRemesasProveedor.NuevoInterno; +begin + inherited; + FController.Anadir(RemesasProveedor); + FController.Ver(RemesasProveedor); +end; + +procedure TfEditorRemesasProveedor.OnListaAnosChange(Sender: TObject; const Text: string); +begin + Controller.FiltrarAno(RemesasProveedor, DynWhereDataTable, Text); + if RemesasProveedor.DataTable.Active then + RefrescarInterno; +end; + +procedure TfEditorRemesasProveedor.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := 'Lista de remesas de pago - ' + AppFactuGES.EmpresaActiva.NOMBRE; + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorRemesasProveedor.PrevisualizarInterno; +var + Respuesta : Integer; + ARemesasProveedor: IBizRemesaProveedor; + AllItems: Boolean; +begin + ARemesasProveedor := Nil; + AllItems := False; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + //Si esta agrupado solo podr imprimir la lista de elementos visibles + if not ViewGrid.esSeleccionCeldaDatos then + inherited + else + begin + Respuesta := JsPrevisualizarDialog.Execute; + if Respuesta <> IDCANCEL then + begin + case JsPrevisualizarDialog.CustomButtonResult of + 200 : begin // Lista de elementos visibles + inherited; + end; + 100 : begin // Elemento Seleccionado + if AllItems then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (RemesasProveedor as ISeleccionable).SelectedRecords); + ARemesasProveedor := (Controller as IRemesasProveedorController).ExtraerSeleccionados(RemesasProveedor) as IBizRemesaProveedor; + end + else + ARemesasProveedor := RemesasProveedor; + + if Assigned(ARemesasProveedor) then + FController.Preview(ARemesasProveedor, AllItems); + end; + end; + end; + end; +end; + +procedure TfEditorRemesasProveedor.RefrescarInterno; +begin + //Volvemos a cargar los aos de los albaranes + if Assigned(FController) then + ListaAnos := FController.DarListaAnosRemesas; + + inherited; +end; + +procedure TfEditorRemesasProveedor.SetRemesasProveedor(const Value: IBizRemesaProveedor); +begin + FRemesasProveedor := Value; + + if Assigned(FRemesasProveedor) then + begin + //Se guarda el where de la sentencia origen, por si el editor tiene filtros que + //afecten a este where y en un futuro se desea volver al where origen (filtro de ao)) + DynWhereDataTable := FRemesasProveedor.DataTable.DynamicWhere.Xml; + + dsDataTable.DataTable := FRemesasProveedor.DataTable; + if Assigned(ViewGrid) then + (ViewGrid as IViewRemesasProveedor).RemesasProveedor := RemesasProveedor; + end; +end; + +procedure TfEditorRemesasProveedor.SetController(const Value: IRemesasProveedorController); +begin + FController := Value; + + if Assigned(FController) then + ListaAnos := FController.DarListaAnosRemesas; +end; + +destructor TfEditorRemesasProveedor.Destroy; +begin + FRemesasProveedor := NIL; + FController := NIl; + inherited; +end; + +procedure TfEditorRemesasProveedor.EliminarInterno; +var + ARemesas: IBizRemesaProveedor; + AllItems: Boolean; +begin + ARemesas := Nil; + AllItems := False; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + if AllItems then + begin + if (Application.MessageBox('Desea borrar las remesas de proveedor seleccionadas?', 'Atencin', MB_YESNO) = IDYES) then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (RemesasProveedor as ISeleccionable).SelectedRecords); + ARemesas := (Controller as IRemesasProveedorController).ExtraerSeleccionados(RemesasProveedor) as IBizRemesaProveedor; + end + end + else begin + if (Application.MessageBox('Desea borrar esta remesa de pago?', 'Atencin', MB_YESNO) = IDYES) then + ARemesas := RemesasProveedor; + end; + + if Assigned(ARemesas) then + begin + FController.Eliminar(ARemesas, AllItems); + if AllItems then + begin + if (ARemesas.DataTable.RecordCount > 0) then + begin + with ARemesas.DataTable do + begin + First; + while not EOF do + begin + JsListaRemesasNoEliminadas.Content.Add('Ref. remesa: ' + ARemesas.REFERENCIA + ' ' + ARemesas.NOMBRE); + Next; + end; + end; + JsListaRemesasNoEliminadas.Execute; + end; + end; + end; + + actRefrescar.Execute; + ViewGrid.GotoFirst; +end; + +procedure TfEditorRemesasProveedor.actVolcarDiscoExecute(Sender: TObject); +//var +// ABancaController : IBancaElectronicaController; +begin +// inherited; +// ABancaController := TBancaElectronicaController.Create; +// try +// ABancaController.GenerarFicheroNorma19(FRemesasProveedor.ID); +// finally +// ABancaController := NIL; +// end; +end; + +procedure TfEditorRemesasProveedor.actVolcarDiscoUpdate(Sender: TObject); +begin + inherited; +{ + if HayDatos and Assigned(ViewGrid) then + (Sender as TAction).Enabled := not (dsDataTable.DataTable.State in dsEditModes) + and not ViewGrid.IsEmpty + else + (Sender as TAction).Enabled := False; +} +end; + +procedure TfEditorRemesasProveedor.AsignarVista; +begin + ViewGrid := CreateView(TfrViewRemesasProveedor) as IViewRemesasProveedor; +end; + +constructor TfEditorRemesasProveedor.Create(AOwner: TComponent); +begin + inherited; + AsignarVista; +end; + +end. + + \ No newline at end of file diff --git a/Source/Modulos/Remesas de proveedor/Views/uRemesasProveedorViewRegister.dcu b/Source/Modulos/Remesas de proveedor/Views/uRemesasProveedorViewRegister.dcu new file mode 100644 index 0000000..97e637b Binary files /dev/null and b/Source/Modulos/Remesas de proveedor/Views/uRemesasProveedorViewRegister.dcu differ diff --git a/Source/Modulos/Remesas de proveedor/Views/uRemesasProveedorViewRegister.pas b/Source/Modulos/Remesas de proveedor/Views/uRemesasProveedorViewRegister.pas new file mode 100644 index 0000000..2d361ee --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Views/uRemesasProveedorViewRegister.pas @@ -0,0 +1,27 @@ +unit uRemesasProveedorViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorRemesasProveedor, uEditorRemesaProveedor, uEditorRemesaProveedorReport; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorRemesaProveedor, 'EditorRemesaProveedor'); + EditorRegistry.RegisterClass(TfEditorRemesasProveedor, 'EditorRemesasProveedor'); + EditorRegistry.RegisterClass(TfEditorRemesaProveedorPreview, 'EditorRemesasProveedorPreview'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorRemesaProveedor); + EditorRegistry.UnRegisterClass(TfEditorRemesasProveedor); + EditorRegistry.UnRegisterClass(TfEditorRemesaProveedorPreview); +end; + +end. diff --git a/Source/Modulos/Remesas de proveedor/Views/uViewRecibosRemesaProveedor.dcu b/Source/Modulos/Remesas de proveedor/Views/uViewRecibosRemesaProveedor.dcu new file mode 100644 index 0000000..c66137f Binary files /dev/null and b/Source/Modulos/Remesas de proveedor/Views/uViewRecibosRemesaProveedor.dcu differ diff --git a/Source/Modulos/Remesas de proveedor/Views/uViewRecibosRemesaProveedor.dfm b/Source/Modulos/Remesas de proveedor/Views/uViewRecibosRemesaProveedor.dfm new file mode 100644 index 0000000..dd18a89 --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Views/uViewRecibosRemesaProveedor.dfm @@ -0,0 +1,162 @@ +inherited frViewRecibosRemesaProveedor: TfrViewRecibosRemesaProveedor + Width = 549 + Height = 376 + OnShow = CustomViewShow + ExplicitWidth = 549 + ExplicitHeight = 376 + inherited cxGrid: TcxGrid + Width = 549 + Height = 351 + ExplicitWidth = 549 + ExplicitHeight = 351 + inherited cxGridView: TcxGridDBTableView + OptionsCustomize.ColumnSorting = True + OptionsData.Appending = False + OptionsData.CancelOnExit = True + OptionsData.Deleting = False + OptionsData.Editing = False + OptionsData.Inserting = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + object cxGridViewREFERENCIA: TcxGridDBColumn + Caption = 'Referencia' + DataBinding.FieldName = 'REFERENCIA' + Width = 72 + end + object cxGridViewSITUACION: TcxGridDBColumn + Caption = 'Situaci'#243'n' + DataBinding.FieldName = 'SITUACION' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Items = < + item + Description = 'Pendiente' + Value = 'PENDIENTE' + end + item + Description = 'Cobrado' + ImageIndex = 0 + Value = 'COBRADO' + end + item + Description = 'Devuelto' + ImageIndex = 1 + Value = 'DEVUELTO' + end> + Width = 65 + end + object cxGridViewID_FACTURA: TcxGridDBColumn + DataBinding.FieldName = 'ID_FACTURA' + Visible = False + end + object cxGridViewFECHA_VENCIMIENTO: TcxGridDBColumn + Caption = 'Fecha vencimiento' + DataBinding.FieldName = 'FECHA_VENCIMIENTO' + Width = 78 + end + object cxGridViewDESCRIPCION: TcxGridDBColumn + DataBinding.FieldName = 'DESCRIPCION' + Visible = False + end + object cxGridViewOBSERVACIONES: TcxGridDBColumn + DataBinding.FieldName = 'OBSERVACIONES' + Visible = False + end + object cxGridViewNOMBRE_CLIENTE: TcxGridDBColumn + Caption = 'Proveedor' + DataBinding.FieldName = 'NOMBRE_PROVEEDOR' + Width = 205 + end + object cxGridViewIMPORTE: TcxGridDBColumn + Caption = 'Importe' + DataBinding.FieldName = 'IMPORTE' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + Width = 115 + end + object cxGridViewOTROS_GASTOS: TcxGridDBColumn + Caption = 'Otros gastos' + DataBinding.FieldName = 'OTROS_GASTOS' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewIMPORTE_TOTAL: TcxGridDBColumn + Caption = 'Importe total' + DataBinding.FieldName = 'IMPORTE_TOTAL' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + end + object cxGridViewFECHA_FACTURA: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_FACTURA' + Visible = False + end + object cxGridViewFORMA_PAGO_FACTURA: TcxGridDBColumn + DataBinding.FieldName = 'FORMA_PAGO_FACTURA' + Visible = False + end + object cxGridViewIMPORTE_FACTURA: TcxGridDBColumn + DataBinding.FieldName = 'IMPORTE_FACTURA' + Visible = False + end + object cxGridViewNIF_CIF_PROVEEDOR: TcxGridDBColumn + DataBinding.FieldName = 'NIF_CIF_PROVEEDOR' + Visible = False + end + object cxGridViewENTIDAD_PROVEEDOR: TcxGridDBColumn + DataBinding.FieldName = 'ENTIDAD_PROVEEDOR' + Visible = False + end + object cxGridViewSUCURSAL_PROVEEDOR: TcxGridDBColumn + DataBinding.FieldName = 'SUCURSAL_PROVEEDOR' + Visible = False + end + object cxGridViewDC_PROVEEDOR: TcxGridDBColumn + DataBinding.FieldName = 'DC_PROVEEDOR' + Visible = False + end + object cxGridViewCUENTA_PROVEEDOR: TcxGridDBColumn + DataBinding.FieldName = 'CUENTA_PROVEEDOR' + Visible = False + end + object cxGridViewID_EMPRESA: TcxGridDBColumn + DataBinding.FieldName = 'ID_EMPRESA' + Visible = False + end + object cxGridViewFECHA_ALTA: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_ALTA' + Visible = False + end + object cxGridViewFECHA_MODIFICACION: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_MODIFICACION' + Visible = False + end + object cxGridViewUSUARIO: TcxGridDBColumn + DataBinding.FieldName = 'USUARIO' + Visible = False + end + end + end + inherited ToolBar1: TToolBar + Width = 549 + ExplicitWidth = 549 + inherited ToolButton1: TToolButton + ExplicitWidth = 62 + end + inherited ToolButton4: TToolButton + ExplicitWidth = 74 + end + inherited ToolButton2: TToolButton + ExplicitWidth = 67 + end + inherited ToolButton7: TToolButton + ExplicitWidth = 117 + end + end + inherited ActionListContenido: TActionList + inherited actModificar: TAction + Enabled = False + Visible = False + end + end +end diff --git a/Source/Modulos/Remesas de proveedor/Views/uViewRecibosRemesaProveedor.pas b/Source/Modulos/Remesas de proveedor/Views/uViewRecibosRemesaProveedor.pas new file mode 100644 index 0000000..a331d92 --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Views/uViewRecibosRemesaProveedor.pas @@ -0,0 +1,145 @@ +unit uViewRecibosRemesaProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewDetallesGenerico, cxStyles, cxCustomData, cxGraphics, cxFilter, + cxData, cxDataStorage, cxEdit, DB, cxDBData, ActnList, ImgList, PngImageList, + uDADataTable, ComCtrls, ToolWin, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, + cxGrid, cxImageComboBox, cxCurrencyEdit, + uBizRemesasProveedor, uRemesasProveedorController, uDAInterfaces; + +type + IViewRecibosRemesaProveedor = interface + ['{033DF6AF-C694-4C15-A48E-C7BA42DFF9FE}'] + function GetRemesaProveedor: IBizRemesaProveedor; + procedure SetRemesaProveedor(const Value: IBizRemesaProveedor); + property RemesaProveedor: IBizRemesaProveedor read GetRemesaProveedor write SetRemesaProveedor; + + function GetController : IRemesasProveedorController; + procedure SetController (const Value : IRemesasProveedorController); + property Controller : IRemesasProveedorController read GetController write SetController; + end; + + TfrViewRecibosRemesaProveedor = class(TfrViewDetallesGenerico, IViewRecibosRemesaProveedor) + cxGridViewIMPORTE: TcxGridDBColumn; + cxGridViewOTROS_GASTOS: TcxGridDBColumn; + cxGridViewIMPORTE_TOTAL: TcxGridDBColumn; + procedure CustomViewShow(Sender: TObject); + protected + FHayCambios : Boolean; + FRemesa : IBizRemesaProveedor; + FController : IRemesasProveedorController; + FListaRecibosIniciales: TStringList; + + procedure AnadirInterno; override; + procedure EliminarInterno; override; + + function GetRemesaProveedor: IBizRemesaProveedor; + procedure SetRemesaProveedor(const Value: IBizRemesaProveedor); + + function GetModified: Boolean; override; + procedure SetModified(const Value: Boolean); override; + + function GetController : IRemesasProveedorController; + procedure SetController (const Value : IRemesasProveedorController); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + property RemesaProveedor: IBizRemesaProveedor read GetRemesaProveedor write SetRemesaProveedor; + property Controller : IRemesasProveedorController read GetController write SetController; + end; + + +implementation + +{$R *.dfm} + +uses + uBizRecibosProveedor, uCustomView; + +{ TfrViewRecibosRemesaProveedor } + +procedure TfrViewRecibosRemesaProveedor.AnadirInterno; +begin + //inherited; // No hacer el comportamiento normal + if FController.ElegirRecibosProveedor(RemesaProveedor, FListaRecibosIniciales) then + begin + Modified := True; + end; +end; + +constructor TfrViewRecibosRemesaProveedor.Create(AOwner: TComponent); +begin + inherited; + FHayCambios := False; + FListaRecibosIniciales := TStringList.Create; +end; + +procedure TfrViewRecibosRemesaProveedor.CustomViewShow(Sender: TObject); +begin + inherited; + + FRemesa.Recibos.DataTable.First; + while not FRemesa.Recibos.DataTable.eof do + begin + FListaRecibosIniciales.Add(IntToStr(FRemesa.Recibos.ID)); + FRemesa.Recibos.DataTable.next; + end; + FRemesa.Recibos.DataTable.First; +end; + +destructor TfrViewRecibosRemesaProveedor.Destroy; +begin + FListaRecibosIniciales.Free; + inherited; +end; + +procedure TfrViewRecibosRemesaProveedor.EliminarInterno; +begin + //inherited; // No hacer el comportamiento normal + FController.EliminarReciboProveedor(RemesaProveedor); + Modified := True; +end; + +function TfrViewRecibosRemesaProveedor.GetController: IRemesasProveedorController; +begin + Result := FController; +end; + +function TfrViewRecibosRemesaProveedor.GetModified: Boolean; +begin + Result := FHayCambios or inherited GetModified; +end; + +function TfrViewRecibosRemesaProveedor.GetRemesaProveedor: IBizRemesaProveedor; +begin + Result := FRemesa; +end; + +procedure TfrViewRecibosRemesaProveedor.SetController( + const Value: IRemesasProveedorController); +begin + FController := Value; +end; + +procedure TfrViewRecibosRemesaProveedor.SetModified(const Value: Boolean); +begin + FHayCambios := Value; + inherited; +end; + +procedure TfrViewRecibosRemesaProveedor.SetRemesaProveedor( + const Value: IBizRemesaProveedor); +begin + FRemesa := Value; + FHayCambios := False; + if Assigned(FRemesa) then + dsDetalles.DataTable := FRemesa.Recibos.DataTable + else + dsDetalles.DataTable := NIL; +end; + +end. diff --git a/Source/Modulos/Remesas de proveedor/Views/uViewRemesaProveedor.dcu b/Source/Modulos/Remesas de proveedor/Views/uViewRemesaProveedor.dcu new file mode 100644 index 0000000..d971882 Binary files /dev/null and b/Source/Modulos/Remesas de proveedor/Views/uViewRemesaProveedor.dcu differ diff --git a/Source/Modulos/Remesas de proveedor/Views/uViewRemesaProveedor.dfm b/Source/Modulos/Remesas de proveedor/Views/uViewRemesaProveedor.dfm new file mode 100644 index 0000000..c6ada68 --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Views/uViewRemesaProveedor.dfm @@ -0,0 +1,242 @@ +inherited frViewRemesaProveedor: TfrViewRemesaProveedor + Width = 451 + Height = 304 + Align = alClient + ExplicitWidth = 451 + ExplicitHeight = 304 + object dxLayoutControlRemesaProveedor: TdxLayoutControl + Left = 0 + Top = 0 + Width = 451 + Height = 304 + Align = alClient + ParentBackground = True + TabOrder = 0 + TabStop = False + AutoContentSizes = [acsWidth, acsHeight] + LookAndFeel = dxLayoutOfficeLookAndFeel1 + DesignSize = ( + 451 + 304) + object eReferencia: TcxDBTextEdit + Left = 110 + Top = 30 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REFERENCIA' + DataBinding.DataSource = dsDataTable + Enabled = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = 14745599 + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 0 + Width = 164 + end + object eDescripcion: TcxDBTextEdit + Left = 110 + Top = 111 + DataBinding.DataField = 'DESCRIPCION' + DataBinding.DataSource = dsDataTable + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 4 + Width = 108 + end + object edtFechaRemesa: TcxDBDateEdit + Left = 311 + Top = 30 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_REMESA' + DataBinding.DataSource = dsDataTable + Properties.ImmediatePost = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 1 + Width = 170 + end + object cbCuentaBancaria: TcxDBLookupComboBox + Left = 110 + Top = 57 + DataBinding.DataField = 'ID_DATOS_BANCO' + DataBinding.DataSource = dsDataTable + Properties.ImmediatePost = True + Properties.KeyFieldNames = 'ID' + Properties.ListColumns = < + item + FieldName = 'NOMBRE' + end> + Properties.ListOptions.GridLines = glNone + Properties.ListOptions.ShowHeader = False + Properties.ListOptions.SyncMode = True + Properties.ListSource = dsDatosBanco + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 2 + Width = 39 + end + object cbTipo: TcxDBImageComboBox + Left = 110 + Top = 84 + DataBinding.DataField = 'TIPO' + DataBinding.DataSource = dsDataTable + Properties.Items = <> + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 3 + Width = 319 + end + object dxLayoutControlRemesaProveedorGroup_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControlRemesaProveedorGroup1: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Datos de la remesa' + object dxLayoutControlRemesaProveedorGroup5: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControlRemesaProveedorItem3: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Referencia:' + Control = eReferencia + ControlOptions.ShowBorder = False + end + object dxLayoutControlRemesaProveedorItem4: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Fecha de cargo:' + Control = edtFechaRemesa + ControlOptions.ShowBorder = False + end + end + object dxLayoutControlRemesaProveedorGroup2: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControlRemesaProveedorItem9: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Cuenta bancaria:' + Control = cbCuentaBancaria + ControlOptions.ShowBorder = False + end + object dxLayoutControlRemesaProveedorItem1: TdxLayoutItem + Caption = 'Forma de pago:' + Control = cbTipo + ControlOptions.ShowBorder = False + end + object dxLayoutControlRemesaProveedorItem8: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Descripci'#243'n:' + Control = eDescripcion + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControlRemesaProveedorGroup3: TdxLayoutGroup + Caption = 'New Group' + ShowCaption = False + LayoutDirection = ldHorizontal + ShowBorder = False + end + end + end + object dsDataTable: TDADataSource + Left = 8 + Top = 8 + end + object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList + Left = 40 + Top = 8 + object dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel + GroupOptions.CaptionOptions.Font.Charset = DEFAULT_CHARSET + GroupOptions.CaptionOptions.Font.Color = clWindowText + GroupOptions.CaptionOptions.Font.Height = -11 + GroupOptions.CaptionOptions.Font.Name = 'Tahoma' + GroupOptions.CaptionOptions.Font.Style = [fsBold] + GroupOptions.CaptionOptions.TextColor = clHighlight + GroupOptions.CaptionOptions.UseDefaultFont = False + end + end + object dsDatosBanco: TDADataSource + Left = 8 + Top = 40 + end +end diff --git a/Source/Modulos/Remesas de proveedor/Views/uViewRemesaProveedor.pas b/Source/Modulos/Remesas de proveedor/Views/uViewRemesaProveedor.pas new file mode 100644 index 0000000..f6d64c8 --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Views/uViewRemesaProveedor.pas @@ -0,0 +1,140 @@ +unit uViewRemesaProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, ExtCtrls, StdCtrls, Buttons, DB, uDADataTable, + DBCtrls, Grids, DBGrids, Mask, ComCtrls, uCustomView, JvComponent, + JvFormAutoSize, cxControls, cxContainer, cxEdit, cxTextEdit, + cxDBEdit, dxLayoutControl, cxCheckBox, PngSpeedButton, cxImage, ActnList, + ImgList, PngImageList, cxGraphics, cxMaskEdit, cxDropDownEdit, + uFamiliasController, cxSpinEdit, cxCurrencyEdit, + uBizRemesasProveedor, uRemesasProveedorController, cxCalendar, + dxLayoutLookAndFeels, cxLookupEdit, cxDBLookupEdit, cxDBLookupComboBox, + cxImageComboBox, uDAInterfaces; + +type + IViewRemesaProveedor = interface(IViewBase) + ['{A091444D-DA32-4577-9EA0-DE87D9C0F943}'] + function GetRemesaProveedor: IBizRemesaProveedor; + procedure SetRemesaProveedor(const Value: IBizRemesaProveedor); + property RemesaProveedor: IBizRemesaProveedor read GetRemesaProveedor write SetRemesaProveedor; + + function GetController : IRemesasProveedorController; + procedure SetController (const Value : IRemesasProveedorController); + property Controller : IRemesasProveedorController read GetController write SetController; + end; + + TfrViewRemesaProveedor = class(TfrViewBase, IViewRemesaProveedor) + dsDataTable: TDADataSource; + dxLayoutControlRemesaProveedorGroup_Root: TdxLayoutGroup; + dxLayoutControlRemesaProveedor: TdxLayoutControl; + dxLayoutControlRemesaProveedorGroup1: TdxLayoutGroup; + dxLayoutControlRemesaProveedorItem3: TdxLayoutItem; + eReferencia: TcxDBTextEdit; + dxLayoutControlRemesaProveedorItem8: TdxLayoutItem; + eDescripcion: TcxDBTextEdit; + dxLayoutControlRemesaProveedorGroup3: TdxLayoutGroup; + dxLayoutControlRemesaProveedorItem4: TdxLayoutItem; + edtFechaRemesa: TcxDBDateEdit; + dxLayoutControlRemesaProveedorGroup5: TdxLayoutGroup; + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + dxLayoutControlRemesaProveedorItem9: TdxLayoutItem; + cbCuentaBancaria: TcxDBLookupComboBox; + dsDatosBanco: TDADataSource; + dxLayoutControlRemesaProveedorGroup2: TdxLayoutGroup; + dxLayoutControlRemesaProveedorItem1: TdxLayoutItem; + cbTipo: TcxDBImageComboBox; + + protected + FController: IRemesasProveedorController; + FRemesaProveedor: IBizRemesaProveedor; + function GetRemesaProveedor: IBizRemesaProveedor; + procedure SetRemesaProveedor(const Value: IBizRemesaProveedor); virtual; + function GetController : IRemesasProveedorController; + procedure SetController (const Value : IRemesasProveedorController); + public + property RemesaProveedor: IBizRemesaProveedor read GetRemesaProveedor write SetRemesaProveedor; + property Controller : IRemesasProveedorController read GetController write SetController; + constructor Create(AOwner: TComponent); override; + end; + +implementation + +{$R *.dfm} + +uses + uDataModuleUsuarios, uFactuGES_App; + + +{ TfrViewRemesaProveedors } + +{ +******************************* TfrViewRemesaProveedors ******************************** +} + +function TfrViewRemesaProveedor.GetRemesaProveedor: IBizRemesaProveedor; +begin + Result := FRemesaProveedor; +end; + +constructor TfrViewRemesaProveedor.Create(AOwner: TComponent); +var + AItem : TcxImageComboBoxItem; +begin + inherited; + cbTipo.Properties.Items.BeginUpdate; + + AItem := cbTipo.Properties.Items.Add; + AItem.Tag := 1; + AItem.Description := CTE_TIPO_REMESA; + AItem.Value := CTE_TIPO_REMESA; + + AItem := cbTipo.Properties.Items.Add; + AItem.Tag := 2; + AItem.Description := CTE_TIPO_TALON; + AItem.Value := CTE_TIPO_TALON; + + AItem := cbTipo.Properties.Items.Add; + AItem.Tag := 3; + AItem.Description := CTE_TIPO_EFECTIVO; + AItem.Value := CTE_TIPO_EFECTIVO; + + AItem := cbTipo.Properties.Items.Add; + AItem.Tag := 4; + AItem.Description := CTE_TIPO_TRANSFERENCIA; + AItem.Value := CTE_TIPO_TRANSFERENCIA; + + cbTipo.Properties.Items.EndUpdate; +end; + +function TfrViewRemesaProveedor.GetController: IRemesasProveedorController; +begin + Result := FController; +end; + +procedure TfrViewRemesaProveedor.SetRemesaProveedor(const Value: IBizRemesaProveedor); +begin + FRemesaProveedor := Value; + + if Assigned(FRemesaProveedor) then + begin + dsDataTable.DataTable := FRemesaProveedor.DataTable; + dsDatosBanco.DataTable := AppFactuGES.EmpresaActiva.DatosBancarios.DataTable; + dsDatosBanco.DataTable.Active := True; + end + else begin + dsDataTable.DataTable := NIL; + dsDatosBanco.DataTable := NIL; + end; +end; + +procedure TfrViewRemesaProveedor.SetController(const Value: IRemesasProveedorController); +begin + FController := Value; +end; + +end. + diff --git a/Source/Modulos/Remesas de proveedor/Views/uViewRemesasProveedor.dcu b/Source/Modulos/Remesas de proveedor/Views/uViewRemesasProveedor.dcu new file mode 100644 index 0000000..a83c74d Binary files /dev/null and b/Source/Modulos/Remesas de proveedor/Views/uViewRemesasProveedor.dcu differ diff --git a/Source/Modulos/Remesas de proveedor/Views/uViewRemesasProveedor.dfm b/Source/Modulos/Remesas de proveedor/Views/uViewRemesasProveedor.dfm new file mode 100644 index 0000000..c4d7748 --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Views/uViewRemesasProveedor.dfm @@ -0,0 +1,96 @@ +inherited frViewRemesasProveedor: TfrViewRemesasProveedor + Height = 397 + ExplicitHeight = 397 + inherited cxGrid: TcxGrid + Height = 269 + ExplicitHeight = 269 + inherited cxGridView: TcxGridDBTableView + DataController.KeyFieldNames = 'RecID' + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Position = spFooter + Column = cxGridViewIMPORTE_TOTAL + end> + DataController.Summary.FooterSummaryItems = < + item + Format = '0 almacenes' + Kind = skCount + end + item + Format = '0 Art'#237'culos' + Kind = skCount + end + item + Format = '0 remesas' + Kind = skCount + Column = cxGridViewREFERENCIA + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = cxGridViewIMPORTE_TOTAL + end> + DataController.OnCompare = cxGridViewDataControllerCompare + OptionsBehavior.PullFocusing = True + object cxGridViewREFERENCIA: TcxGridDBColumn + Caption = 'Referencia' + DataBinding.FieldName = 'REFERENCIA' + Width = 118 + end + object cxGridViewTIPO: TcxGridDBColumn + DataBinding.FieldName = 'TIPO' + end + object cxGridViewFECHA_REMESA: TcxGridDBColumn + Caption = 'Fecha de cargo' + DataBinding.FieldName = 'FECHA_REMESA' + Width = 74 + end + object cxGridViewNOMBRE: TcxGridDBColumn + DataBinding.FieldName = 'NOMBRE' + Width = 147 + end + object cxGridViewDESCRIPCION: TcxGridDBColumn + Caption = 'Descripci'#243'n' + DataBinding.FieldName = 'DESCRIPCION' + Width = 73 + end + object cxGridViewENTIDAD: TcxGridDBColumn + DataBinding.FieldName = 'ENTIDAD' + Visible = False + end + object cxGridViewSUCURSAL: TcxGridDBColumn + DataBinding.FieldName = 'SUCURSAL' + Visible = False + end + object cxGridViewDC: TcxGridDBColumn + DataBinding.FieldName = 'DC' + Visible = False + end + object cxGridViewCUENTA: TcxGridDBColumn + DataBinding.FieldName = 'CUENTA' + Visible = False + end + object cxGridViewIMPORTE_TOTAL: TcxGridDBColumn + Caption = 'Importe' + DataBinding.FieldName = 'IMPORTE_TOTAL' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + Width = 128 + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 371 + ExplicitTop = 371 + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 38673.842406053240000000 + BuiltInReportLink = True + end + end +end diff --git a/Source/Modulos/Remesas de proveedor/Views/uViewRemesasProveedor.pas b/Source/Modulos/Remesas de proveedor/Views/uViewRemesasProveedor.pas new file mode 100644 index 0000000..ae902c5 --- /dev/null +++ b/Source/Modulos/Remesas de proveedor/Views/uViewRemesasProveedor.pas @@ -0,0 +1,86 @@ +unit uViewRemesasProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel, + cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGrid, uBizRemesasProveedor, ActnList, Menus, + cxGridBandedTableView, cxGridDBBandedTableView, JvComponent, + JvFormAutoSize, PngImageList, ImgList, dxPSGlbl, dxPSUtl, dxPSEngn, + dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, cxIntlPrintSys3, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, + cxGridCustomPopupMenu, cxGridPopupMenu, cxCurrencyEdit, cxSpinEdit, cxCheckBox, + cxCheckComboBox, cxImageComboBox, TB2Item, TBX, TB2Toolbar, TBXDkPanels, + TB2Dock, uViewFiltroBase, dxPgsDlg, uDAInterfaces; + +type + IViewRemesasProveedor = interface(IViewGrid) + ['{969B34FC-84E0-4D62-B577-371F71F32FB8}'] + function GetRemesasProveedor: IBizRemesaProveedor; + procedure SetRemesasProveedor(const Value: IBizRemesaProveedor); + property RemesasProveedor: IBizRemesaProveedor read GetRemesasProveedor write SetRemesasProveedor; + end; + + TfrViewRemesasProveedor = class(TfrViewGrid, IViewRemesasProveedor) + cxGridViewREFERENCIA: TcxGridDBColumn; + cxGridViewFECHA_REMESA: TcxGridDBColumn; + cxGridViewDESCRIPCION: TcxGridDBColumn; + cxGridViewIMPORTE_TOTAL: TcxGridDBColumn; + cxGridViewNOMBRE: TcxGridDBColumn; + cxGridViewENTIDAD: TcxGridDBColumn; + cxGridViewSUCURSAL: TcxGridDBColumn; + cxGridViewDC: TcxGridDBColumn; + cxGridViewCUENTA: TcxGridDBColumn; + cxGridViewTIPO: TcxGridDBColumn; + procedure cxGridViewDataControllerCompare( + ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2, + AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer); + protected + FRemesasProveedor: IBizRemesaProveedor; + function GetRemesasProveedor: IBizRemesaProveedor; virtual; + procedure SetRemesasProveedor(const Value: IBizRemesaProveedor); virtual; + public + property RemesasProveedor: IBizRemesaProveedor read GetRemesasProveedor write SetRemesasProveedor; + end; + +implementation + +uses + uDataModuleRemesasProveedor, uReferenciasUtils, cxVariants; + + +{$R *.dfm} + +{ TfrViewRemesasProveedor } + +{ +******************************* TfrViewRemesasProveedor ******************************* +} +procedure TfrViewRemesasProveedor.cxGridViewDataControllerCompare( + ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2, + AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer); +begin + inherited; + if ((AItemIndex = cxGridViewREFERENCIA.Index)) and + (VarType(V1) = VarType(V2)) and (VarType(V1) = varString) then + Compare := CompararReferencias(V1, V2) + else + Compare := VarCompare(V1, V2); +end; + +function TfrViewRemesasProveedor.GetRemesasProveedor: IBizRemesaProveedor; +begin + Result := FRemesasProveedor; +end; + +procedure TfrViewRemesasProveedor.SetRemesasProveedor(const Value: IBizRemesaProveedor); +begin + FRemesasProveedor := Value; + if Assigned(FRemesasProveedor) then + dsDataSource.DataTable := FRemesasProveedor.DataTable; +end; + +end. diff --git a/Source/Modulos/Tipos de IVA/Controller/TiposIVA_controller.bdsproj b/Source/Modulos/Tipos de IVA/Controller/TiposIVA_controller.bdsproj new file mode 100644 index 0000000..6e03c15 --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Controller/TiposIVA_controller.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + TiposIVA_controller.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Tipos de IVA/Controller/TiposIVA_controller.dcu b/Source/Modulos/Tipos de IVA/Controller/TiposIVA_controller.dcu new file mode 100644 index 0000000..4102f1a Binary files /dev/null and b/Source/Modulos/Tipos de IVA/Controller/TiposIVA_controller.dcu differ diff --git a/Source/Modulos/Tipos de IVA/Controller/TiposIVA_controller.dpk b/Source/Modulos/Tipos de IVA/Controller/TiposIVA_controller.dpk new file mode 100644 index 0000000..1970ca5 Binary files /dev/null and b/Source/Modulos/Tipos de IVA/Controller/TiposIVA_controller.dpk differ diff --git a/Source/Modulos/Tipos de IVA/Controller/TiposIVA_controller.dproj b/Source/Modulos/Tipos de IVA/Controller/TiposIVA_controller.dproj new file mode 100644 index 0000000..296825b --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Controller/TiposIVA_controller.dproj @@ -0,0 +1,545 @@ + + + + {326821d3-56af-487f-bcd2-c500b144884e} + TiposIVA_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\TiposIVA_controller.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0TiposIVA_controller.dpk + + + + + MainSource + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Tipos de IVA/Controller/TiposIVA_controller.rc b/Source/Modulos/Tipos de IVA/Controller/TiposIVA_controller.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Controller/TiposIVA_controller.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Tipos de IVA/Controller/TiposIVA_controller.res b/Source/Modulos/Tipos de IVA/Controller/TiposIVA_controller.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Tipos de IVA/Controller/TiposIVA_controller.res differ diff --git a/Source/Modulos/Tipos de IVA/Controller/View/uIEditorTipoIVA.dcu b/Source/Modulos/Tipos de IVA/Controller/View/uIEditorTipoIVA.dcu new file mode 100644 index 0000000..4fa0cd0 Binary files /dev/null and b/Source/Modulos/Tipos de IVA/Controller/View/uIEditorTipoIVA.dcu differ diff --git a/Source/Modulos/Tipos de IVA/Controller/View/uIEditorTipoIVA.pas b/Source/Modulos/Tipos de IVA/Controller/View/uIEditorTipoIVA.pas new file mode 100644 index 0000000..0d5e034 --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Controller/View/uIEditorTipoIVA.pas @@ -0,0 +1,45 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uIEditorTipoIVA; + +interface + +uses + uBizTiposIVA, uTiposIVAController; + +type + IEditorTipoIVA = interface + ['{1430F706-67AF-43C5-B94B-C83184C10987}'] + function GetTipoIVA: IBizTipoIVA; + procedure SetTipoIVA(const Value: IBizTipoIVA); + property TipoIVA: IBizTipoIVA read GetTipoIVA write SetTipoIVA; + + procedure Release; + function ShowModal : Integer; + end; + + +implementation + +end. diff --git a/Source/Modulos/Tipos de IVA/Controller/View/uIEditorTiposIVA.dcu b/Source/Modulos/Tipos de IVA/Controller/View/uIEditorTiposIVA.dcu new file mode 100644 index 0000000..f7f6df0 Binary files /dev/null and b/Source/Modulos/Tipos de IVA/Controller/View/uIEditorTiposIVA.dcu differ diff --git a/Source/Modulos/Tipos de IVA/Controller/View/uIEditorTiposIVA.pas b/Source/Modulos/Tipos de IVA/Controller/View/uIEditorTiposIVA.pas new file mode 100644 index 0000000..2db523c --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Controller/View/uIEditorTiposIVA.pas @@ -0,0 +1,45 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uIEditorTiposIVA; + +interface + +uses + uBizTiposIVA; + +type + IEditorTiposIVA = interface + ['{4B436226-F033-40D0-BADE-2F2AA576F3FD}'] + function GetTiposIVA: IBizTipoIVA; + procedure SetTiposIVA(const Value: IBizTipoIVA); + property TiposIVA: IBizTipoIVA read GetTiposIVA write SetTiposIVA; + + procedure Release; + function ShowModal : Integer; + end; + + +implementation + +end. diff --git a/Source/Modulos/Tipos de IVA/Controller/uTiposIVAController.dcu b/Source/Modulos/Tipos de IVA/Controller/uTiposIVAController.dcu new file mode 100644 index 0000000..b14fa6c Binary files /dev/null and b/Source/Modulos/Tipos de IVA/Controller/uTiposIVAController.dcu differ diff --git a/Source/Modulos/Tipos de IVA/Controller/uTiposIVAController.pas b/Source/Modulos/Tipos de IVA/Controller/uTiposIVAController.pas new file mode 100644 index 0000000..210f5f3 --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Controller/uTiposIVAController.pas @@ -0,0 +1,304 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uTiposIVAController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, + uBizTiposIVA, uIDataModuleTiposIVA; + +type + ITiposIVAController = interface(IControllerBase) + ['{DD8BBB7C-3688-4FCA-80EF-47FB61175D62}'] + procedure Anadir(ATipoIVA : IBizTipoIVA); + function Eliminar(ATipoIVA : IBizTipoIVA): Boolean; + function Guardar(ATipoIVA : IBizTipoIVA): Boolean; + procedure DescartarCambios(ATipoIVA : IBizTipoIVA); + function Duplicar(ATipoIVA: IBizTipoIVA): IBizTipoIVA; + + function Buscar(const ID: Integer): IBizTipoIVA; + function BuscarTodos: IBizTipoIVA; + procedure VerTodos(ATiposIVA: IBizTipoIVA); + procedure Ver(ATipoIVA: IBizTipoIVA); + function Localizar(ATiposIVA: IBizTipoIVA; ADescripcion:String): Boolean; + function DarListaTiposIVA: TStringList; + function ExtraerSeleccionados(ATipoIVA: IBizTipoIVA) : IBizTipoIVA; + end; + + TTiposIVAController = class(TControllerBase, ITiposIVAController) + protected + FDataModule : IDataModuleTiposIVA; + + function _Vacio : IBizTipoIVA; + function ValidarTipoIVA(ATipoIVA: IBizTipoIVA): Boolean; + procedure AsignarDataModule; + + public + constructor Create; override; + destructor Destroy; override; + + procedure Anadir(ATipoIVA : IBizTipoIVA); + function Eliminar(ATipoIVA : IBizTipoIVA): Boolean; + function Guardar(ATipoIVA : IBizTipoIVA): Boolean; + procedure DescartarCambios(ATipoIVA : IBizTipoIVA); + function Duplicar(ATipoIVA: IBizTipoIVA): IBizTipoIVA; + + function Buscar(const ID: Integer): IBizTipoIVA; + function BuscarTodos: IBizTipoIVA; + procedure VerTodos(ATiposIVA: IBizTipoIVA); + procedure Ver(ATipoIVA: IBizTipoIVA); + function Localizar(ATiposIVA: IBizTipoIVA; ADescripcion:String): Boolean; + function DarListaTiposIVA: TStringList; + function ExtraerSeleccionados(ATipoIVA: IBizTipoIVA) : IBizTipoIVA; + end; + +implementation + +uses + cxControls, DB, uEditorRegistryUtils, + uDAInterfaces, uDataTableUtils, + uDateUtils, uROTypes, DateUtils, Controls, Windows, + + schTiposIVAClient_Intf, uIEditorTiposIVA, Dialogs, + uIEditorTipoIVA, uDataModuleTiposIVA; + +{ TTiposIVAController } + +procedure TTiposIVAController.Anadir(ATipoIVA: IBizTipoIVA); +begin + ATipoIVA.Insert; +end; + +procedure TTiposIVAController.AsignarDataModule; +begin + FDataModule := TDataModuleTiposIVA.Create(Nil); +end; + +function TTiposIVAController.BuscarTodos: IBizTipoIVA; +begin + Result := FDataModule.GetItems; +end; + +constructor TTiposIVAController.Create; +begin + inherited; + AsignarDataModule; +end; + +function TTiposIVAController.Buscar(const ID: Integer): IBizTipoIVA; +begin + Result := (FDataModule as IDataModuleTiposIVA).GetItem(ID); +end; + +function TTiposIVAController._Vacio: IBizTipoIVA; +begin + Result := Buscar(ID_NULO); +end; + +function TTiposIVAController.DarListaTiposIVA: TStringList; +var + ATiposIVA: IBizTipoIVA; +begin + ATiposIVA := BuscarTodos; + ATiposIVA.DataTable.Active := True; + Result := TStringList.Create; + try + with Result do + begin + ATiposIVA.DataTable.First; + while not ATiposIVA.DataTable.EOF do + begin + Add(ATiposIVA.DESCRIPCION); + ATiposIVA.DataTable.Next; + end; + end; + finally + ATiposIVA := NIL; + end; +end; + +procedure TTiposIVAController.DescartarCambios(ATipoIVA: IBizTipoIVA); +begin + if not Assigned(ATipoIVA) then + raise Exception.Create ('TipoIVA no asignado'); + + ShowHourglassCursor; + try + if (ATipoIVA.State in dsEditModes) then + ATipoIVA.Cancel; + + ATipoIVA.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TTiposIVAController.Destroy; +begin + FDataModule := NIL; + inherited; +end; + + +function TTiposIVAController.Duplicar(ATipoIVA: IBizTipoIVA): IBizTipoIVA; +begin + Result := Self._Vacio; + ShowHourglassCursor; + try + DuplicarRegistros(ATipoIVA.DataTable, Result.DataTable, mdrActual); + + // CUIDADO! Hay que dejar algunos campos como si fuera todo nuevo + Result.Edit; + with Result do + begin + // Ejemplos + // ID_EMPRESA := dmUsuarios.IDEmpresaActual; + // USUARIO := dmUsuarios.LoginInfo.Usuario; + // REFERENCIA := ''; //Para que se asigne una nueva + // FECHA_FACTURA := DateOf(Now); + // SITUACION := SITUACION_PENDIENTE; + end; + + Result.Post; + finally + HideHourglassCursor; + end; +end; + + +function TTiposIVAController.ValidarTipoIVA(ATipoIVA: IBizTipoIVA): Boolean; +begin + Result := False; + + if not Assigned(ATipoIVA) then + raise Exception.Create ('TipoIVA no asignado'); + + if (ATipoIVA.DataTable.State in dsEditModes) then + ATipoIVA.DataTable.Post; + + if Length(ATipoIVA.REFERENCIA) = 0 then + raise Exception.Create('Debe indicar una referencia para este tipo de IVA.'); + + if Length(ATipoIVA.DESCRIPCION) = 0 then + raise Exception.Create('Debe indicar una descripcin para este tipo de IVA.'); + + Result := True; +end; + +procedure TTiposIVAController.Ver(ATipoIVA: IBizTipoIVA); +var + AEditor : IEditorTipoIVA; +begin + AEditor := NIL; + CreateEditor('EditorTipoIVA', IEditorTipoIVA, AEditor); + if Assigned(AEditor) then + try + AEditor.TipoIVA := ATipoIVA; + AEditor.ShowModal; + finally + AEditor.Release; + end; +end; + +procedure TTiposIVAController.VerTodos(ATiposIVA: IBizTipoIVA); +var + AEditor : IEditorTiposIVA; +begin + AEditor := NIL; + CreateEditor('EditorTiposIVA', IEditorTiposIVA, AEditor); + if Assigned(AEditor) then + try + AEditor.TiposIVA := ATiposIVA; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +function TTiposIVAController.Eliminar(ATipoIVA: IBizTipoIVA): Boolean; +begin + if not Assigned(ATipoIVA) then + raise Exception.Create ('TipoIVA no asignado'); + + ShowHourglassCursor; + try + if (ATipoIVA.State in dsEditModes) then + ATipoIVA.Cancel; + + ATipoIVA.Delete; + ATipoIVA.DataTable.ApplyUpdates; + HideHourglassCursor; + Result := True; + finally + HideHourglassCursor; + end; +end; + +function TTiposIVAController.Guardar(ATipoIVA: IBizTipoIVA): Boolean; +begin + Result := False; + + if ValidarTipoIVA(ATipoIVA) then + begin + ShowHourglassCursor; + try + ATipoIVA.DataTable.ApplyUpdates; + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TTiposIVAController.Localizar(ATiposIVA: IBizTipoIVA; ADescripcion: String): Boolean; +begin + Result := True; + ShowHourglassCursor; + try + with ATiposIVA.DataTable do + begin + DisableControls; + First; + if not Locate(fld_TiposIVADESCRIPCION, ADescripcion, []) then + Result := False; + EnableControls; + end; + finally + HideHourglassCursor; + end; +end; + +function TTiposIVAController.ExtraerSeleccionados(ATipoIVA: IBizTipoIVA): IBizTipoIVA; +var + ASeleccionados : IBizTipoIVA; +begin + ASeleccionados := (Self.Buscar(ID_NULO) as IBizTipoIVA); + CopyDataTableDA5(ATipoIVA.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + +end. + \ No newline at end of file diff --git a/Source/Modulos/Tipos de IVA/Data/TiposIVA_data.bdsproj b/Source/Modulos/Tipos de IVA/Data/TiposIVA_data.bdsproj new file mode 100644 index 0000000..c8ff421 --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Data/TiposIVA_data.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + TiposIVA_data.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Tipos de IVA/Data/TiposIVA_data.dcu b/Source/Modulos/Tipos de IVA/Data/TiposIVA_data.dcu new file mode 100644 index 0000000..db65d51 Binary files /dev/null and b/Source/Modulos/Tipos de IVA/Data/TiposIVA_data.dcu differ diff --git a/Source/Modulos/Tipos de IVA/Data/TiposIVA_data.dpk b/Source/Modulos/Tipos de IVA/Data/TiposIVA_data.dpk new file mode 100644 index 0000000..3df4283 Binary files /dev/null and b/Source/Modulos/Tipos de IVA/Data/TiposIVA_data.dpk differ diff --git a/Source/Modulos/Tipos de IVA/Data/TiposIVA_data.dproj b/Source/Modulos/Tipos de IVA/Data/TiposIVA_data.dproj new file mode 100644 index 0000000..11f7394 --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Data/TiposIVA_data.dproj @@ -0,0 +1,545 @@ + + + + {55d06c67-fc74-4d88-8787-801dee872bb3} + TiposIVA_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\TiposIVA_data.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0TiposIVA_data.dpk + + + + + MainSource + + + + + + + + +
DataModuleTiposIVA
+
+
+
+ diff --git a/Source/Modulos/Tipos de IVA/Data/TiposIVA_data.drc b/Source/Modulos/Tipos de IVA/Data/TiposIVA_data.drc new file mode 100644 index 0000000..077fd61 --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Data/TiposIVA_data.drc @@ -0,0 +1,17 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Tipos de IVA\Data\uDataModuleTiposIVA.dfm */ +/* C:\Codigo\Source\Modulos\Tipos de IVA\Data\TiposIVA_data.res */ +/* c:\temp\dtf127.tmp */ diff --git a/Source/Modulos/Tipos de IVA/Data/TiposIVA_data.rc b/Source/Modulos/Tipos de IVA/Data/TiposIVA_data.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Data/TiposIVA_data.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Tipos de IVA/Data/TiposIVA_data.res b/Source/Modulos/Tipos de IVA/Data/TiposIVA_data.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Tipos de IVA/Data/TiposIVA_data.res differ diff --git a/Source/Modulos/Tipos de IVA/Data/uDataModuleTiposIVA.dcu b/Source/Modulos/Tipos de IVA/Data/uDataModuleTiposIVA.dcu new file mode 100644 index 0000000..4ee05e7 Binary files /dev/null and b/Source/Modulos/Tipos de IVA/Data/uDataModuleTiposIVA.dcu differ diff --git a/Source/Modulos/Tipos de IVA/Data/uDataModuleTiposIVA.dfm b/Source/Modulos/Tipos de IVA/Data/uDataModuleTiposIVA.dfm new file mode 100644 index 0000000..cdb51ab --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Data/uDataModuleTiposIVA.dfm @@ -0,0 +1,81 @@ +inherited DataModuleTiposIVA: TDataModuleTiposIVA + OnCreate = DAClientDataModuleCreate + Height = 248 + Width = 489 + object RORemoteService: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvTiposIVA' + Left = 48 + Top = 24 + end + object rda_TiposIVA: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetDataCall.RemoteService = RORemoteService + UpdateDataCall.RemoteService = RORemoteService + GetScriptsCall.RemoteService = RORemoteService + RemoteService = RORemoteService + DataStreamer = Bin2DataStreamer + Left = 203 + Top = 23 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 96 + end + object tbl_TiposIVA: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_TIPOS_IVA_ID' + ServerAutoRefresh = True + DictionaryEntry = 'TiposIVA_ID' + InPrimaryKey = True + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + DictionaryEntry = 'TIPOS_IVA_REFERENCIA' + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DisplayLabel = 'Descripci'#195#179'n' + DictionaryEntry = 'TIPOS_IVA_DESCRIPCION' + end + item + Name = 'IVA' + DataType = datFloat + DisplayLabel = '% IVA' + Alignment = taRightJustify + DictionaryEntry = 'TIPOS_IVA_IVA' + end + item + Name = 'RE' + DataType = datFloat + DisplayLabel = '% RE' + Alignment = taRightJustify + DictionaryEntry = 'TIPOS_IVA_RE' + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_TiposIVA + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'TiposIVA' + IndexDefs = <> + Left = 296 + Top = 24 + end + object ds_TiposIVA: TDADataSource + DataSet = tbl_TiposIVA.Dataset + DataTable = tbl_TiposIVA + Left = 296 + Top = 96 + end +end diff --git a/Source/Modulos/Tipos de IVA/Data/uDataModuleTiposIVA.pas b/Source/Modulos/Tipos de IVA/Data/uDataModuleTiposIVA.pas new file mode 100644 index 0000000..5d25204 --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Data/uDataModuleTiposIVA.pas @@ -0,0 +1,112 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uDataModuleTiposIVA; + +interface + +uses + SysUtils, Classes, DB, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, + + uIDataModuleTiposIVA, uBizTiposIVA, uDADataStreamer, uDARemoteDataAdapter, + uDAInterfaces, uRODynamicRequest, uDABin2DataStreamer, uDAMemDataTable, + uDataModuleBase; + +type + TDataModuleTiposIVA = class(TDataModuleBase, IDataModuleTiposIVA) + RORemoteService: TRORemoteService; + rda_TiposIVA: TDARemoteDataAdapter; + Bin2DataStreamer: TDABin2DataStreamer; + tbl_TiposIVA: TDAMemDataTable; + ds_TiposIVA: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + public + function GetItems: IBizTipoIVA; + function GetItem(const ID : Integer) : IBizTipoIVA; + function NewItem : IBizTipoIVA; + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, + schTiposIVAClient_Intf; + +{ TDataModuleTiposIVA } + +procedure TDataModuleTiposIVA.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleTiposIVA.GetItems: IBizTipoIVA; +var + ATipoIVA : TDAMemDataTable; +begin + ShowHourglassCursor; + try + ATipoIVA := CloneDataTable(tbl_TiposIVA); + ATipoIVA.BusinessRulesID := BIZ_CLIENT_TipoIVA; + + Result := (ATipoIVA as IBizTipoIVA); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleTiposIVA.NewItem: IBizTipoIVA; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleTiposIVA.GetItem(const ID: Integer): IBizTipoIVA; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + + with Result.DataTable.DynamicWhere do + begin + // (ID = :ID) + Condicion := NewBinaryExpression(NewField('', fld_TiposIVAID), NewConstant(ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Tipos de IVA/Model/Data/uIDataModuleTiposIVA.dcu b/Source/Modulos/Tipos de IVA/Model/Data/uIDataModuleTiposIVA.dcu new file mode 100644 index 0000000..bb030b3 Binary files /dev/null and b/Source/Modulos/Tipos de IVA/Model/Data/uIDataModuleTiposIVA.dcu differ diff --git a/Source/Modulos/Tipos de IVA/Model/Data/uIDataModuleTiposIVA.pas b/Source/Modulos/Tipos de IVA/Model/Data/uIDataModuleTiposIVA.pas new file mode 100644 index 0000000..a248d9b --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Model/Data/uIDataModuleTiposIVA.pas @@ -0,0 +1,42 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uIDataModuleTiposIVA; + +interface + +uses + uBizTiposIVA; + +type + IDataModuleTiposIVA = interface + ['{FF13E488-D185-4674-8A27-539BEC012B75}'] + function GetItems: IBizTipoIVA; + function GetItem(const ID : Integer) : IBizTipoIVA; + function NewItem : IBizTipoIVA; + + end; + +implementation + +end. diff --git a/Source/Modulos/Tipos de IVA/Model/TiposIVA_model.bdsproj b/Source/Modulos/Tipos de IVA/Model/TiposIVA_model.bdsproj new file mode 100644 index 0000000..d23f19e --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Model/TiposIVA_model.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + TiposIVA_model.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Tipos de IVA/Model/TiposIVA_model.dcu b/Source/Modulos/Tipos de IVA/Model/TiposIVA_model.dcu new file mode 100644 index 0000000..5e03b6e Binary files /dev/null and b/Source/Modulos/Tipos de IVA/Model/TiposIVA_model.dcu differ diff --git a/Source/Modulos/Tipos de IVA/Model/TiposIVA_model.dpk b/Source/Modulos/Tipos de IVA/Model/TiposIVA_model.dpk new file mode 100644 index 0000000..a24a9ec Binary files /dev/null and b/Source/Modulos/Tipos de IVA/Model/TiposIVA_model.dpk differ diff --git a/Source/Modulos/Tipos de IVA/Model/TiposIVA_model.dproj b/Source/Modulos/Tipos de IVA/Model/TiposIVA_model.dproj new file mode 100644 index 0000000..ab3b91e --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Model/TiposIVA_model.dproj @@ -0,0 +1,61 @@ + + + + {82fe21d8-609d-444d-879e-4d9e1c291607} + TiposIVA_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\TiposIVA_model.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0TiposIVA_model.dpk + + + + + MainSource + + + + + + + + + + + diff --git a/Source/Modulos/Tipos de IVA/Model/TiposIVA_model.drc b/Source/Modulos/Tipos de IVA/Model/TiposIVA_model.drc new file mode 100644 index 0000000..d33f0af --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Model/TiposIVA_model.drc @@ -0,0 +1,16 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Tipos de IVA\Model\TiposIVA_model.res */ +/* c:\temp\dtf125.tmp */ diff --git a/Source/Modulos/Tipos de IVA/Model/TiposIVA_model.rc b/Source/Modulos/Tipos de IVA/Model/TiposIVA_model.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Model/TiposIVA_model.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Tipos de IVA/Model/TiposIVA_model.res b/Source/Modulos/Tipos de IVA/Model/TiposIVA_model.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Tipos de IVA/Model/TiposIVA_model.res differ diff --git a/Source/Modulos/Tipos de IVA/Model/schTiposIVAClient_Intf.dcu b/Source/Modulos/Tipos de IVA/Model/schTiposIVAClient_Intf.dcu new file mode 100644 index 0000000..7603f3b Binary files /dev/null and b/Source/Modulos/Tipos de IVA/Model/schTiposIVAClient_Intf.dcu differ diff --git a/Source/Modulos/Tipos de IVA/Model/schTiposIVAClient_Intf.pas b/Source/Modulos/Tipos de IVA/Model/schTiposIVAClient_Intf.pas new file mode 100644 index 0000000..7ce2520 --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Model/schTiposIVAClient_Intf.pas @@ -0,0 +1,239 @@ +unit schTiposIVAClient_Intf; + +interface + +uses + Classes, DB, schBase_Intf, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_TiposIVA = '{700B374C-AA68-4A5B-9ACA-A0704A82A98D}'; + + { Data table names } + nme_TiposIVA = 'TiposIVA'; + + { TiposIVA fields } + fld_TiposIVAID = 'ID'; + fld_TiposIVAREFERENCIA = 'REFERENCIA'; + fld_TiposIVADESCRIPCION = 'DESCRIPCION'; + fld_TiposIVAIVA = 'IVA'; + fld_TiposIVARE = 'RE'; + + { TiposIVA field indexes } + idx_TiposIVAID = 0; + idx_TiposIVAREFERENCIA = 1; + idx_TiposIVADESCRIPCION = 2; + idx_TiposIVAIVA = 3; + idx_TiposIVARE = 4; + +type + { ITiposIVA } + ITiposIVA = interface(IDAStronglyTypedDataTable) + ['{342A3165-77DD-40FB-8154-0D79346AC9D1}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetDESCRIPCIONIsNull: Boolean; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); + function GetIVAValue: Float; + procedure SetIVAValue(const aValue: Float); + function GetIVAIsNull: Boolean; + procedure SetIVAIsNull(const aValue: Boolean); + function GetREValue: Float; + procedure SetREValue(const aValue: Float); + function GetREIsNull: Boolean; + procedure SetREIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property IVA: Float read GetIVAValue write SetIVAValue; + property IVAIsNull: Boolean read GetIVAIsNull write SetIVAIsNull; + property RE: Float read GetREValue write SetREValue; + property REIsNull: Boolean read GetREIsNull write SetREIsNull; + end; + + { TTiposIVADataTableRules } + TTiposIVADataTableRules = class(TIntfObjectDADataTableRules, ITiposIVA) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + function GetIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + function GetIVAIsNull: Boolean; virtual; + procedure SetIVAIsNull(const aValue: Boolean); virtual; + function GetREValue: Float; virtual; + procedure SetREValue(const aValue: Float); virtual; + function GetREIsNull: Boolean; virtual; + procedure SetREIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property IVA: Float read GetIVAValue write SetIVAValue; + property IVAIsNull: Boolean read GetIVAIsNull write SetIVAIsNull; + property RE: Float read GetREValue write SetREValue; + property REIsNull: Boolean read GetREIsNull write SetREIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants, uROBinaryHelpers; + +{ TTiposIVADataTableRules } +constructor TTiposIVADataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TTiposIVADataTableRules.Destroy; +begin + inherited; +end; + +function TTiposIVADataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_TiposIVAID].AsInteger; +end; + +procedure TTiposIVADataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_TiposIVAID].AsInteger := aValue; +end; + +function TTiposIVADataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_TiposIVAID].IsNull; +end; + +procedure TTiposIVADataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_TiposIVAID].AsVariant := Null; +end; + +function TTiposIVADataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_TiposIVAREFERENCIA].AsString; +end; + +procedure TTiposIVADataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_TiposIVAREFERENCIA].AsString := aValue; +end; + +function TTiposIVADataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_TiposIVAREFERENCIA].IsNull; +end; + +procedure TTiposIVADataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_TiposIVAREFERENCIA].AsVariant := Null; +end; + +function TTiposIVADataTableRules.GetDESCRIPCIONValue: String; +begin + result := DataTable.Fields[idx_TiposIVADESCRIPCION].AsString; +end; + +procedure TTiposIVADataTableRules.SetDESCRIPCIONValue(const aValue: String); +begin + DataTable.Fields[idx_TiposIVADESCRIPCION].AsString := aValue; +end; + +function TTiposIVADataTableRules.GetDESCRIPCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_TiposIVADESCRIPCION].IsNull; +end; + +procedure TTiposIVADataTableRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_TiposIVADESCRIPCION].AsVariant := Null; +end; + +function TTiposIVADataTableRules.GetIVAValue: Float; +begin + result := DataTable.Fields[idx_TiposIVAIVA].AsFloat; +end; + +procedure TTiposIVADataTableRules.SetIVAValue(const aValue: Float); +begin + DataTable.Fields[idx_TiposIVAIVA].AsFloat := aValue; +end; + +function TTiposIVADataTableRules.GetIVAIsNull: boolean; +begin + result := DataTable.Fields[idx_TiposIVAIVA].IsNull; +end; + +procedure TTiposIVADataTableRules.SetIVAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_TiposIVAIVA].AsVariant := Null; +end; + +function TTiposIVADataTableRules.GetREValue: Float; +begin + result := DataTable.Fields[idx_TiposIVARE].AsFloat; +end; + +procedure TTiposIVADataTableRules.SetREValue(const aValue: Float); +begin + DataTable.Fields[idx_TiposIVARE].AsFloat := aValue; +end; + +function TTiposIVADataTableRules.GetREIsNull: boolean; +begin + result := DataTable.Fields[idx_TiposIVARE].IsNull; +end; + +procedure TTiposIVADataTableRules.SetREIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_TiposIVARE].AsVariant := Null; +end; + + +initialization + RegisterDataTableRules(RID_TiposIVA, TTiposIVADataTableRules); + +end. diff --git a/Source/Modulos/Tipos de IVA/Model/schTiposIVAServer_Intf.dcu b/Source/Modulos/Tipos de IVA/Model/schTiposIVAServer_Intf.dcu new file mode 100644 index 0000000..ffbdaac Binary files /dev/null and b/Source/Modulos/Tipos de IVA/Model/schTiposIVAServer_Intf.dcu differ diff --git a/Source/Modulos/Tipos de IVA/Model/schTiposIVAServer_Intf.pas b/Source/Modulos/Tipos de IVA/Model/schTiposIVAServer_Intf.pas new file mode 100644 index 0000000..2d8e020 --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Model/schTiposIVAServer_Intf.pas @@ -0,0 +1,272 @@ +unit schTiposIVAServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schTiposIVAClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_TiposIVADelta = '{22B67F19-4406-4659-A4A0-F4894916A1C1}'; + +type + { ITiposIVADelta } + ITiposIVADelta = interface(ITiposIVA) + ['{22B67F19-4406-4659-A4A0-F4894916A1C1}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldREFERENCIAValue : String; + function GetOldDESCRIPCIONValue : String; + function GetOldIVAValue : Float; + function GetOldREValue : Float; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldIVA : Float read GetOldIVAValue; + property OldRE : Float read GetOldREValue; + end; + + { TTiposIVABusinessProcessorRules } + TTiposIVABusinessProcessorRules = class(TDABusinessProcessorRules, ITiposIVA, ITiposIVADelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + function GetIVAValue: Float; virtual; + function GetIVAIsNull: Boolean; virtual; + function GetOldIVAValue: Float; virtual; + function GetOldIVAIsNull: Boolean; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + procedure SetIVAIsNull(const aValue: Boolean); virtual; + function GetREValue: Float; virtual; + function GetREIsNull: Boolean; virtual; + function GetOldREValue: Float; virtual; + function GetOldREIsNull: Boolean; virtual; + procedure SetREValue(const aValue: Float); virtual; + procedure SetREIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull : Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldDESCRIPCIONIsNull : Boolean read GetOldDESCRIPCIONIsNull; + property IVA : Float read GetIVAValue write SetIVAValue; + property IVAIsNull : Boolean read GetIVAIsNull write SetIVAIsNull; + property OldIVA : Float read GetOldIVAValue; + property OldIVAIsNull : Boolean read GetOldIVAIsNull; + property RE : Float read GetREValue write SetREValue; + property REIsNull : Boolean read GetREIsNull write SetREIsNull; + property OldRE : Float read GetOldREValue; + property OldREIsNull : Boolean read GetOldREIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers, uDAInterfaces; + +{ TTiposIVABusinessProcessorRules } +constructor TTiposIVABusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TTiposIVABusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TTiposIVABusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_TiposIVAID]; +end; + +function TTiposIVABusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_TiposIVAID]); +end; + +function TTiposIVABusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_TiposIVAID]; +end; + +function TTiposIVABusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_TiposIVAID]); +end; + +procedure TTiposIVABusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_TiposIVAID] := aValue; +end; + +procedure TTiposIVABusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_TiposIVAID] := Null; +end; + +function TTiposIVABusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_TiposIVAREFERENCIA]; +end; + +function TTiposIVABusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_TiposIVAREFERENCIA]); +end; + +function TTiposIVABusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_TiposIVAREFERENCIA]; +end; + +function TTiposIVABusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_TiposIVAREFERENCIA]); +end; + +procedure TTiposIVABusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_TiposIVAREFERENCIA] := aValue; +end; + +procedure TTiposIVABusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_TiposIVAREFERENCIA] := Null; +end; + +function TTiposIVABusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_TiposIVADESCRIPCION]; +end; + +function TTiposIVABusinessProcessorRules.GetDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_TiposIVADESCRIPCION]); +end; + +function TTiposIVABusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_TiposIVADESCRIPCION]; +end; + +function TTiposIVABusinessProcessorRules.GetOldDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_TiposIVADESCRIPCION]); +end; + +procedure TTiposIVABusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_TiposIVADESCRIPCION] := aValue; +end; + +procedure TTiposIVABusinessProcessorRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_TiposIVADESCRIPCION] := Null; +end; + +function TTiposIVABusinessProcessorRules.GetIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_TiposIVAIVA]; +end; + +function TTiposIVABusinessProcessorRules.GetIVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_TiposIVAIVA]); +end; + +function TTiposIVABusinessProcessorRules.GetOldIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_TiposIVAIVA]; +end; + +function TTiposIVABusinessProcessorRules.GetOldIVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_TiposIVAIVA]); +end; + +procedure TTiposIVABusinessProcessorRules.SetIVAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_TiposIVAIVA] := aValue; +end; + +procedure TTiposIVABusinessProcessorRules.SetIVAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_TiposIVAIVA] := Null; +end; + +function TTiposIVABusinessProcessorRules.GetREValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_TiposIVARE]; +end; + +function TTiposIVABusinessProcessorRules.GetREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_TiposIVARE]); +end; + +function TTiposIVABusinessProcessorRules.GetOldREValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_TiposIVARE]; +end; + +function TTiposIVABusinessProcessorRules.GetOldREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_TiposIVARE]); +end; + +procedure TTiposIVABusinessProcessorRules.SetREValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_TiposIVARE] := aValue; +end; + +procedure TTiposIVABusinessProcessorRules.SetREIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_TiposIVARE] := Null; +end; + + +initialization + RegisterBusinessProcessorRules(RID_TiposIVADelta, TTiposIVABusinessProcessorRules); + +end. diff --git a/Source/Modulos/Tipos de IVA/Model/uBizTiposIVA.dcu b/Source/Modulos/Tipos de IVA/Model/uBizTiposIVA.dcu new file mode 100644 index 0000000..2433d61 Binary files /dev/null and b/Source/Modulos/Tipos de IVA/Model/uBizTiposIVA.dcu differ diff --git a/Source/Modulos/Tipos de IVA/Model/uBizTiposIVA.pas b/Source/Modulos/Tipos de IVA/Model/uBizTiposIVA.pas new file mode 100644 index 0000000..02e2a70 --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Model/uBizTiposIVA.pas @@ -0,0 +1,134 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uBizTiposIVA; + +interface + +uses + uDAInterfaces, uDADataTable, uDBSelectionListUtils, schTiposIVAClient_Intf; + +const + BIZ_CLIENT_TIPOIVA = 'Client.TipoIVA'; + +type + IBizTipoIVA = interface(ITiposIVA) + ['{72B85541-E871-4804-8DB9-ED76278307D5}'] + function EsNuevo : Boolean; + + // Descomentar esto si hay clases detalles + // procedure SetDetalles(AValue : IBizDetalles); + // function GetDetalles : IBizDetalles; + // property Detalles : IBizDetalles read GetDetalles write SetDetalles; + end; + + TBizTipoIVA = class(TTiposIVADataTableRules, IBizTipoIVA, ISeleccionable) + protected + FSeleccionableInterface : ISeleccionable; + + // Descomentar esto si hay clases detalles + // FDetalles : IBizDetalles; + // FDetallesLink : TDADataSource; + // procedure SetDetalles(AValue : IBizDetalles); + // function GetDetalles : IBizDetalles; + + procedure OnNewRecord(Sender: TDADataTable); override; + public + procedure IniciarValoresTipoIVANuevo; + function EsNuevo : Boolean; + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + property SeleccionableInterface : ISeleccionable + read FSeleccionableInterface + write FSeleccionableInterface + implements ISeleccionable; + + // Descomentar esto si hay clases detalles + // property Detalles : IBizDetalles read GetDetalles write SetDetalles; + end; + +implementation + +{ TBizTipoIVA } + +uses + SysUtils, uDataTableUtils; + +// Descomentar esto si hay clases detalles +// function TBizTipoIVA.GetDetalles: IBizDetalles; +// begin +// Result := FDetalles; +// end; + +// Descomentar esto si hay clases detalles +// procedure TBizTipoIVA.SetDetalles(AValue: IBizDetalles); +// begin +// FDetalles := AValue; +// EnlazarMaestroDetalle(FDetallesLink, FDetalles); +// end; + +constructor TBizTipoIVA.Create(aDataTable: TDADataTable); +begin + inherited; + // Descomentar esto si hay clases detalles + // FDetallesLink := TDADataSource.Create(NIL); + // FDetallesLink.DataTable := aDataTable; + + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +destructor TBizTipoIVA.Destroy; +begin + // Descomentar esto si hay clases detalles + // FDetalles := NIL; + // FreeAndNIL(FDetallesLink); + + FSeleccionableInterface := NIL; + inherited; +end; + +function TBizTipoIVA.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +procedure TBizTipoIVA.IniciarValoresTipoIVANuevo; +begin + // +end; + +procedure TBizTipoIVA.OnNewRecord(Sender: TDADataTable); +begin + inherited; + ID := GetRecNo; // -1, -2, -3... + IniciarValoresTipoIVANuevo; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_TIPOIVA, TBizTipoIVA); + +finalization + +end. + diff --git a/Source/Modulos/Tipos de IVA/Plugin/TiposIVA_plugin.bdsproj b/Source/Modulos/Tipos de IVA/Plugin/TiposIVA_plugin.bdsproj new file mode 100644 index 0000000..acee71d --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Plugin/TiposIVA_plugin.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + TiposIVA_plugin.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Tipos de IVA/Plugin/TiposIVA_plugin.dcu b/Source/Modulos/Tipos de IVA/Plugin/TiposIVA_plugin.dcu new file mode 100644 index 0000000..6416f25 Binary files /dev/null and b/Source/Modulos/Tipos de IVA/Plugin/TiposIVA_plugin.dcu differ diff --git a/Source/Modulos/Tipos de IVA/Plugin/TiposIVA_plugin.dpk b/Source/Modulos/Tipos de IVA/Plugin/TiposIVA_plugin.dpk new file mode 100644 index 0000000..2965d2e Binary files /dev/null and b/Source/Modulos/Tipos de IVA/Plugin/TiposIVA_plugin.dpk differ diff --git a/Source/Modulos/Tipos de IVA/Plugin/TiposIVA_plugin.dproj b/Source/Modulos/Tipos de IVA/Plugin/TiposIVA_plugin.dproj new file mode 100644 index 0000000..ff863ac --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Plugin/TiposIVA_plugin.dproj @@ -0,0 +1,544 @@ + + + + {139324a2-0c57-446d-aebd-edd9578e22fd} + TiposIVA_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\TiposIVA_plugin.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0TiposIVA_plugin.dpk + + + + + MainSource + + + + + + + + + + + + + + diff --git a/Source/Modulos/Tipos de IVA/Plugin/TiposIVA_plugin.rc b/Source/Modulos/Tipos de IVA/Plugin/TiposIVA_plugin.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Plugin/TiposIVA_plugin.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Tipos de IVA/Plugin/TiposIVA_plugin.res b/Source/Modulos/Tipos de IVA/Plugin/TiposIVA_plugin.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Tipos de IVA/Plugin/TiposIVA_plugin.res differ diff --git a/Source/Modulos/Tipos de IVA/Plugin/uPluginTiposIVA.dcu b/Source/Modulos/Tipos de IVA/Plugin/uPluginTiposIVA.dcu new file mode 100644 index 0000000..ee2bfd2 Binary files /dev/null and b/Source/Modulos/Tipos de IVA/Plugin/uPluginTiposIVA.dcu differ diff --git a/Source/Modulos/Tipos de IVA/Plugin/uPluginTiposIVA.dfm b/Source/Modulos/Tipos de IVA/Plugin/uPluginTiposIVA.dfm new file mode 100644 index 0000000..e9294e2 --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Plugin/uPluginTiposIVA.dfm @@ -0,0 +1,114 @@ +object PluginTiposIVA: TPluginTiposIVA + OldCreateOrder = True + DefaultAction = actTiposIVA + Description = 'Tipos de IVA' + ModuleMenu = MainMenu + ModuleName = 'Tipos de IVA' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software S.L.' + Version = '1.0.0' + Height = 234 + Width = 459 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000014A4944415478DA + 63FCFFFF3F032D01E3A8052459C0C8C808A25880783210C740859700712E10FF + C161460A109B03712A36C762B3A01B884B80B8102ADC0FC43D405C8AC5700720 + AE06624F900388B5E03310F300B122D4D58F81F80B10F3A2E99501E2F540EC0B + C42F4002C458A000A4EEC3B8501AA60064E103281BE480EDD0A0BB00D34F8C05 + 32501713B26031106F05E215C886111B44EF8158004F10D500313B10D7A21B46 + 8D48F600E274200E65C092AA88B50057325581068D23D4470CE45A800D802275 + 37102702F11D1C0E203A99A203908F40C9712A10EFC01784E45AD00CC45F81B8 + 03CAC7994FC8B100140CEE401C0BE52B30E0C92740B31E90628101D4FBA062E0 + 07B52D9000E2CD401C08C44FD0F4C0824816CA27398840910A2A064019E90496 + 388145722E542DC9913C1B884F02F11C06EC00964F121820914C7C32A50518B5 + 80200000B090C7D14CE57D350000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = SmallImages + Left = 40 + Top = 72 + object actTiposIVA: TAction + Category = 'TiposIVA' + Caption = 'Tipos de IVA' + ImageIndex = 0 + OnExecute = actTiposIVAExecute + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object Ventas1: TMenuItem + Caption = 'Datos' + object TiposIVA1: TMenuItem + Tag = 310 + Action = actTiposIVA + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300004E2000004E2001167D99DE000000D34944415478DA + 63FCFFFF3F03258091AA063032329A00A9F940AC03C45780381188CF20A94F01 + 6263A09E4C5C065C06523381780A10E700713A10EB42A56D80B81E883D817AFE + E03200C46144B211C69701E2D540EC0BC46F50F410E1024B20DE0EC499506F31 + E033005B189403F15220DE0077161E03D003B9018D26C98000208E06E24E7457 + 01F59C21640048F174508803F171F47001EAD1C5678008106F06E250207E8214 + 13483EF8CF88CB001668883702F111A8302866A602F10C625C0072F659209E83 + 642346CCE00C0372C0C01B000040D57DE18A8F9E290000000049454E44AE4260 + 82} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 94000000097048597300004E2000004E2001167D99DE000001B54944415478DA + ED96BF4A034110C667218585A58585854204031611146C840B68E13B2844D0CE + 14427C0A050BD3256040DFC142C1808DA0A085A060C01416292C2D5208E737DC + 9CE496DDF536E65265E0C7C2DCDD7CFBE7DB4954188634CA5063C191092AA578 + 5800272090740B1C80D73FEA56C11168A0FE5E5AC1190CF7A0074A92BE011360 + 057C58C4D6C12578006BA8FF9D56F014C33ED8061792DE02E7A0062A86CF6665 + 922CB204BA7A7D97E01B863C98039DBE82EFA00DE6B54F26C12D58E495813B4E + FA08C60F94F6C8963F0365C067D6F87D392341DE7A3E8226D849BCEC21F84291 + 4B4D5BCA2E2D482E0057E049B6B237A820DBBA2A336E4A5A374DEC640EA3737D + 04A7313C92FD5A7C52649222D8A0E88ED27F0479C8CBD904926EC9CAD8A5B149 + 2AB26263F80ADA4237897562C310E4A2FD269922474742FDC4B9FA0A9A4C62EA + 4865D9F21AEA273A928F20CFD86412D7F5E12D4D74241F419B499C0D02F513F9 + B482BBA04E864E9285E0AA6CE5334526F9D25E757624D42FF808C6973F479149 + 3A86579D3F633EA6C9C9CA96C126B82673C4CEE595976472035D8BBA9CDD2138 + 267758FF8AA4BEF859C55870E8F10357F1FFC9D0CCA5C10000000049454E44AE + 426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 80 + Bitmap = {} + end +end diff --git a/Source/Modulos/Tipos de IVA/Plugin/uPluginTiposIVA.pas b/Source/Modulos/Tipos de IVA/Plugin/uPluginTiposIVA.pas new file mode 100644 index 0000000..d9f156c --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Plugin/uPluginTiposIVA.pas @@ -0,0 +1,73 @@ +unit uPluginTiposIVA; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCTiposIVA = interface(IInterface) + ['{8702CD01-F7E8-4388-9EA1-47620B35DEE6}'] + end; + + TPluginTiposIVA = class(TModuleController, IMCTiposIVA) + actTiposIVA: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + Ventas1: TMenuItem; + TiposIVA1: TMenuItem; + procedure actTiposIVAExecute(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, + uTiposIVAController, uBizTiposIVA, uTiposIVAViewRegister; + +function GetModule : TModuleController; +begin + Result := TPluginTiposIVA.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +procedure TPluginTiposIVA.actTiposIVAExecute(Sender: TObject); +var + ATiposIVAController : ITiposIVAController; + ATiposIVA : IBizTipoIVA; +begin + ATiposIVAController := TTiposIVAController.Create; + ATiposIVA := (ATiposIVAController.BuscarTodos as IBizTipoIVA); + ATiposIVAController.VerTodos(ATiposIVA); +end; + +constructor TPluginTiposIVA.Create(AOwner: TComponent); +begin + inherited; + uTiposIVAViewRegister.RegisterViews; +end; + +destructor TPluginTiposIVA.Destroy; +begin + uTiposIVAViewRegister.UnregisterViews; + inherited; +end; + +initialization + RegisterModuleClass(TPluginTiposIVA); + +finalization + UnRegisterModuleClass(TPluginTiposIVA); + +end. diff --git a/Source/Modulos/Tipos de IVA/Servidor/srvTiposIVA_Impl.dcu b/Source/Modulos/Tipos de IVA/Servidor/srvTiposIVA_Impl.dcu new file mode 100644 index 0000000..8849f88 Binary files /dev/null and b/Source/Modulos/Tipos de IVA/Servidor/srvTiposIVA_Impl.dcu differ diff --git a/Source/Modulos/Tipos de IVA/Servidor/srvTiposIVA_Impl.dfm b/Source/Modulos/Tipos de IVA/Servidor/srvTiposIVA_Impl.dfm new file mode 100644 index 0000000..e2e6b46 --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Servidor/srvTiposIVA_Impl.dfm @@ -0,0 +1,164 @@ +object srvTiposIVA: TsrvTiposIVA + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + ServiceSchema = schTiposIVA + ServiceDataStreamer = Bin2DataStreamer + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + Height = 300 + Width = 334 + object Diagrams: TDADiagrams + Left = 150 + Top = 88 + DiagramData = ''#13#10''#13#10 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'TIPOS_IVA_REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + end + item + Name = 'TIPOS_IVA_DESCRIPCION' + DataType = datString + Size = 255 + DisplayLabel = 'Descripci'#243'n' + end + item + Name = 'TIPOS_IVA_IVA' + DataType = datFloat + DisplayLabel = '% IVA' + Alignment = taRightJustify + end + item + Name = 'TIPOS_IVA_RE' + DataType = datFloat + DisplayLabel = '% RE' + Alignment = taRightJustify + end + item + Name = 'TiposIVA_ID' + DataType = datAutoInc + GeneratorName = 'GEN_TIPOS_IVA_ID' + DisplayLabel = 'ID' + ServerAutoRefresh = True + end> + Left = 150 + Top = 24 + end + object schTiposIVA: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Diagrams = Diagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'TIPOS_IVA' + Name = 'IBX' + SQL = 'Select ID, DESCRIPCION'#10'from TIPOS_IVA'#10'order by DESCRIPCION'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end> + end> + Name = 'ListaTiposIVA' + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'TIPOS_IVA' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'IVA' + TableField = 'IVA' + end + item + DatasetField = 'RE' + TableField = 'RE' + end> + end> + Name = 'TiposIVA' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_TIPOS_IVA_ID' + ServerAutoRefresh = True + DictionaryEntry = 'TiposIVA_ID' + InPrimaryKey = True + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'TIPOS_IVA_REFERENCIA' + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DictionaryEntry = 'TIPOS_IVA_DESCRIPCION' + end + item + Name = 'IVA' + DataType = datFloat + DictionaryEntry = 'TIPOS_IVA_IVA' + end + item + Name = 'RE' + DataType = datFloat + DictionaryEntry = 'TIPOS_IVA_RE' + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 88 + end +end diff --git a/Source/Modulos/Tipos de IVA/Servidor/srvTiposIVA_Impl.pas b/Source/Modulos/Tipos de IVA/Servidor/srvTiposIVA_Impl.pas new file mode 100644 index 0000000..720486f --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Servidor/srvTiposIVA_Impl.pas @@ -0,0 +1,99 @@ +unit srvTiposIVA_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} uDABusinessProcessor, uDABin2DataStreamer, uDADataStreamer, + uDAScriptingProvider, uDAClasses, + FactuGES_Intf, uDAInterfaces; + +type + { TsrvTiposIVA } + TsrvTiposIVA = class(TDataAbstractService, IsrvTiposIVA) + Diagrams: TDADiagrams; + Bin2DataStreamer: TDABin2DataStreamer; + schTiposIVA: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceCreate(Sender: TObject); + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; + var aConnectionName: string); + public + function DarListaTiposIVA: Binary; + + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer, uDatabaseUtils, uROClasses; + +procedure Create_srvTiposIVA(out anInstance : IUnknown); +begin + anInstance := TsrvTiposIVA.Create(NIL); +end; + +{ srvTiposIVA } +procedure TsrvTiposIVA.DARemoteServiceCreate(Sender: TObject); +begin + //SessionManager := dmServer.SessionManager; +end; + +function TsrvTiposIVA.DarListaTiposIVA: Binary; +var + ASchema : TDASchema; + AConn : IDAConnection; + dsData: IDADataset; + ALista : TStringList; +begin + Result := Binary.Create; + + ASchema := schTiposIVA; + AConn := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionManager.GetDefaultConnectionName); + + try + dsData := ASchema.NewDataset(AConn, 'ListaTiposIVA'); + except + RaiseError('No existe la tabla TIPOS_IVA'); + end; + + ALista := TStringList.Create; + try + dsData.Active := True; + while not dsData.EOF do + begin + ALista.Add(Format('%s=%d', [dsData.Fields[1].AsString, dsData.Fields[0].AsInteger])); + dsData.Next; + end; + + ALista.SaveToStream(Result); + finally + FreeANDNIL(ALista); + dsData := NIL; + AConn := NIL; + end; +end; + +procedure TsrvTiposIVA.DataAbstractServiceBeforeAcquireConnection( + aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +initialization + TROClassFactory.Create('srvTiposIVA', Create_srvTiposIVA, TsrvTiposIVA_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Tipos de IVA/TiposIVA_Group.bdsgroup b/Source/Modulos/Tipos de IVA/TiposIVA_Group.bdsgroup new file mode 100644 index 0000000..cd54d2e --- /dev/null +++ b/Source/Modulos/Tipos de IVA/TiposIVA_Group.bdsgroup @@ -0,0 +1,24 @@ + + + + + + + + + + + ..\..\Base\Base.bdsproj + ..\..\Base\GUIBase\GUIBase.bdsproj + ..\..\Base\Usuarios\Usuarios.bdsproj + Model\TiposIVA_model.bdsproj + Data\TiposIVA_data.bdsproj + Controller\TiposIVA_controller.bdsproj + Views\TiposIVA_view.bdsproj + Plugin\TiposIVA_plugin.bdsproj + Base.bpl GUIBase.bpl Usuarios.bpl TiposIVA_model.bpl TiposIVA_data.bpl TiposIVA_controller.bpl TiposIVA_view.bpl TiposIVA_plugin.bpl + + + + diff --git a/Source/Modulos/Tipos de IVA/TiposIVA_Group.groupproj b/Source/Modulos/Tipos de IVA/TiposIVA_Group.groupproj new file mode 100644 index 0000000..82224ea --- /dev/null +++ b/Source/Modulos/Tipos de IVA/TiposIVA_Group.groupproj @@ -0,0 +1,104 @@ + + + {033276d8-059f-49be-9cc2-3276e536a74d} + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Tipos de IVA/Views/TiposIVA_view.bdsproj b/Source/Modulos/Tipos de IVA/Views/TiposIVA_view.bdsproj new file mode 100644 index 0000000..d98ab00 --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Views/TiposIVA_view.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + TiposIVA_view.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Tipos de IVA/Views/TiposIVA_view.dcu b/Source/Modulos/Tipos de IVA/Views/TiposIVA_view.dcu new file mode 100644 index 0000000..2159cf3 Binary files /dev/null and b/Source/Modulos/Tipos de IVA/Views/TiposIVA_view.dcu differ diff --git a/Source/Modulos/Tipos de IVA/Views/TiposIVA_view.dpk b/Source/Modulos/Tipos de IVA/Views/TiposIVA_view.dpk new file mode 100644 index 0000000..7774c0a Binary files /dev/null and b/Source/Modulos/Tipos de IVA/Views/TiposIVA_view.dpk differ diff --git a/Source/Modulos/Tipos de IVA/Views/TiposIVA_view.dproj b/Source/Modulos/Tipos de IVA/Views/TiposIVA_view.dproj new file mode 100644 index 0000000..f206f21 --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Views/TiposIVA_view.dproj @@ -0,0 +1,550 @@ + + + + {911c25fd-90ea-4e70-aa53-99f37be38b57} + TiposIVA_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\TiposIVA_view.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0TiposIVA_view.dpk + + + + + MainSource + + + + + + + + + + +
fEditorTipoIVA
+
+ +
fEditorTiposIVA
+
+ +
+
+ + diff --git a/Source/Modulos/Tipos de IVA/Views/TiposIVA_view.rc b/Source/Modulos/Tipos de IVA/Views/TiposIVA_view.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Views/TiposIVA_view.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Tipos de IVA/Views/TiposIVA_view.res b/Source/Modulos/Tipos de IVA/Views/TiposIVA_view.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Tipos de IVA/Views/TiposIVA_view.res differ diff --git a/Source/Modulos/Tipos de IVA/Views/uEditorTipoIVA.dcu b/Source/Modulos/Tipos de IVA/Views/uEditorTipoIVA.dcu new file mode 100644 index 0000000..eb1c827 Binary files /dev/null and b/Source/Modulos/Tipos de IVA/Views/uEditorTipoIVA.dcu differ diff --git a/Source/Modulos/Tipos de IVA/Views/uEditorTipoIVA.dfm b/Source/Modulos/Tipos de IVA/Views/uEditorTipoIVA.dfm new file mode 100644 index 0000000..4b5225a --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Views/uEditorTipoIVA.dfm @@ -0,0 +1,184 @@ +object fEditorTipoIVA: TfEditorTipoIVA + Left = 453 + Top = 234 + ActiveControl = eReferencia + BorderIcons = [biSystemMenu] + BorderStyle = bsSingle + Caption = 'Tipo de IVA' + ClientHeight = 248 + ClientWidth = 404 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object Label1: TLabel + Left = 16 + Top = 17 + Width = 122 + Height = 13 + Caption = 'Datos del tipo de IVA' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentFont = False + end + object Bevel1: TBevel + Left = 173 + Top = 17 + Width = 212 + Height = 10 + Shape = bsBottomLine + end + object Label2: TLabel + Left = 62 + Top = 43 + Width = 55 + Height = 13 + Alignment = taRightJustify + Caption = 'Referencia:' + end + object Label3: TLabel + Left = 58 + Top = 71 + Width = 59 + Height = 13 + Alignment = taRightJustify + Caption = 'Descripci'#243'n:' + end + object Label8: TLabel + Left = 86 + Top = 105 + Width = 31 + Height = 13 + Alignment = taRightJustify + Caption = '% IVA:' + end + object Bevel4: TBevel + Left = 8 + Top = 189 + Width = 388 + Height = 10 + Shape = bsBottomLine + end + object Label4: TLabel + Left = 88 + Top = 134 + Width = 29 + Height = 13 + Alignment = taRightJustify + Caption = '% RE:' + end + object JvEnterAsTab1: TJvEnterAsTab + Left = 123 + Top = 205 + Width = 28 + Height = 28 + end + object bAceptar: TButton + Left = 238 + Top = 213 + Width = 75 + Height = 23 + Action = actAceptar + Default = True + TabOrder = 4 + end + object bCancelar: TButton + Left = 319 + Top = 213 + Width = 75 + Height = 23 + Action = actCancelar + Cancel = True + TabOrder = 5 + end + object eReferencia: TDBEdit + Left = 123 + Top = 40 + Width = 262 + Height = 21 + Color = clInfoBk + DataField = 'REFERENCIA' + DataSource = dsTipoIVA + TabOrder = 0 + end + object eDescripcion: TDBEdit + Left = 123 + Top = 68 + Width = 262 + Height = 21 + Color = clInfoBk + DataField = 'DESCRIPCION' + DataSource = dsTipoIVA + TabOrder = 1 + end + object eIVA: TcxDBSpinEdit + Left = 123 + Top = 104 + DataBinding.DataField = 'IVA' + DataBinding.DataSource = dsTipoIVA + Properties.AssignedValues.MinValue = True + Properties.ImmediatePost = True + Properties.MaxValue = 100.000000000000000000 + Properties.ValueType = vtFloat + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 2 + Width = 70 + end + object eRE: TcxDBSpinEdit + Left = 123 + Top = 131 + DataBinding.DataField = 'RE' + DataBinding.DataSource = dsTipoIVA + Properties.AssignedValues.MinValue = True + Properties.ImmediatePost = True + Properties.MaxValue = 100.000000000000000000 + Properties.ValueType = vtFloat + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 3 + Width = 70 + end + object ActionList1: TActionList + Left = 88 + Top = 199 + object actAceptar: TAction + Caption = '&Guardar' + OnExecute = actAceptarExecute + end + object actCancelar: TAction + Caption = '&Cancelar' + OnExecute = actCancelarExecute + end + object actCerrar: TAction + Caption = 'Cerrar' + OnExecute = actCerrarExecute + end + end + object dsTipoIVA: TDADataSource + Left = 48 + Top = 199 + end +end diff --git a/Source/Modulos/Tipos de IVA/Views/uEditorTipoIVA.pas b/Source/Modulos/Tipos de IVA/Views/uEditorTipoIVA.pas new file mode 100644 index 0000000..df57407 --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Views/uEditorTipoIVA.pas @@ -0,0 +1,142 @@ +{ +=============================================================================== + Copyright () 2006. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: 22-05-2006 + Versin actual: 1.0.0 + Fecha versin actual: 22-05-2006 +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uEditorTipoIVA; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Grids, DBGrids, StdCtrls, Mask, DBCtrls, DB, + uBizTiposIVA, uTiposIVAController, + uDADataTable, uIEditorTipoIVA, ActnList, ExtCtrls, JvExControls, JvComponent, + JvEnterTab, cxControls, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, + cxSpinEdit, cxDBEdit; + +type + TfEditorTipoIVA = class(TForm, IEditorTipoIVA) + ActionList1: TActionList; + dsTipoIVA: TDADataSource; + actAceptar: TAction; + actCancelar: TAction; + bAceptar: TButton; + bCancelar: TButton; + eReferencia: TDBEdit; + eDescripcion: TDBEdit; + Label1: TLabel; + Bevel1: TBevel; + Label2: TLabel; + Label3: TLabel; + Label8: TLabel; + Bevel4: TBevel; + Label4: TLabel; + actCerrar: TAction; + JvEnterAsTab1: TJvEnterAsTab; + eIVA: TcxDBSpinEdit; + eRE: TcxDBSpinEdit; + procedure FormShow(Sender: TObject); + + procedure actAceptarExecute(Sender: TObject); + procedure actCancelarExecute(Sender: TObject); + procedure actCerrarExecute(Sender: TObject); + protected + FTipoIVA: IBizTipoIVA; + FController : ITiposIVAController; + function GetTipoIVA: IBizTipoIVA; + procedure SetTipoIVA(const Value: IBizTipoIVA); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + property TipoIVA: IBizTipoIVA read GetTipoIVA write SetTipoIVA; + end; + + +implementation +{$R *.dfm} + +{ TfEditorTiposIVA } + +uses + uDialogUtils; + +function TfEditorTipoIVA.GetTipoIVA: IBizTipoIVA; +begin + Result := FTipoIVA; +end; + +procedure TfEditorTipoIVA.SetTipoIVA(const Value: IBizTipoIVA); +begin + FTipoIVA := Value; + if Assigned(FTipoIVA) then + begin + dsTipoIVA.DataTable := FTipoIVA.DataTable; + dsTipoIVA.DataTable.Open; + end + else begin + dsTipoIVA.DataTable := NIL; + end; +end; + + +constructor TfEditorTipoIVA.Create(AOwner: TComponent); +begin + inherited; + FController := TTiposIVAController.Create; +end; + +destructor TfEditorTipoIVA.Destroy; +begin + FTipoIVA := NIL; + FController := NIL; + inherited; +end; + +procedure TfEditorTipoIVA.actAceptarExecute(Sender: TObject); +begin + FController.Guardar(FTipoIVA); + actCerrar.Execute; +end; + +procedure TfEditorTipoIVA.actCancelarExecute(Sender: TObject); +begin + FController.DescartarCambios(FTipoIVA); + actCerrar.Execute; +end; + +procedure TfEditorTipoIVA.actCerrarExecute(Sender: TObject); +begin + Close; +end; + +procedure TfEditorTipoIVA.FormShow(Sender: TObject); +begin + if not FTipoIVA.DataTable.Active then + FTipoIVA.DataTable.Active := True; + + if FTipoIVA.EsNuevo then + Self.Caption := 'Nuevo tipo de IVA' + else + Self.Caption := 'Modificar tipo de IVA'; +end; + +end. diff --git a/Source/Modulos/Tipos de IVA/Views/uEditorTiposIVA.dcu b/Source/Modulos/Tipos de IVA/Views/uEditorTiposIVA.dcu new file mode 100644 index 0000000..089248a Binary files /dev/null and b/Source/Modulos/Tipos de IVA/Views/uEditorTiposIVA.dcu differ diff --git a/Source/Modulos/Tipos de IVA/Views/uEditorTiposIVA.dfm b/Source/Modulos/Tipos de IVA/Views/uEditorTiposIVA.dfm new file mode 100644 index 0000000..73b3801 --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Views/uEditorTiposIVA.dfm @@ -0,0 +1,164 @@ +object fEditorTiposIVA: TfEditorTiposIVA + Left = 453 + Top = 234 + BorderIcons = [biSystemMenu] + BorderStyle = bsSingle + Caption = 'Lista de tipos de IVA' + ClientHeight = 406 + ClientWidth = 404 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object bAceptar: TButton + Left = 236 + Top = 373 + Width = 75 + Height = 23 + Action = actAceptar + Default = True + TabOrder = 1 + end + object bCancelar: TButton + Left = 321 + Top = 373 + Width = 75 + Height = 23 + Action = actCancelar + Cancel = True + TabOrder = 2 + end + object PageControl1: TPageControl + Left = 6 + Top = 8 + Width = 390 + Height = 356 + ActivePage = TabSheet1 + TabOrder = 0 + object TabSheet1: TTabSheet + Caption = 'Tipos de IVA' + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 0 + ExplicitHeight = 0 + object Label1: TLabel + Left = 6 + Top = 12 + Width = 152 + Height = 13 + Caption = 'Lista de tipos de IVA disponibles' + end + object bEliminar: TButton + Left = 284 + Top = 90 + Width = 95 + Height = 23 + Action = actEliminar + TabOrder = 0 + end + object bAnadir: TButton + Left = 284 + Top = 31 + Width = 95 + Height = 23 + Action = actAnadir + TabOrder = 1 + end + object Button1: TButton + Left = 284 + Top = 61 + Width = 95 + Height = 23 + Action = actModificar + TabOrder = 2 + end + object ListaTiposIVA: TDBGrid + Left = 6 + Top = 31 + Width = 272 + Height = 289 + DataSource = dsTiposIVA + Options = [dgTitles, dgColumnResize, dgTabs, dgRowSelect, dgAlwaysShowSelection, dgCancelOnExit] + TabOrder = 3 + TitleFont.Charset = DEFAULT_CHARSET + TitleFont.Color = clWindowText + TitleFont.Height = -11 + TitleFont.Name = 'MS Sans Serif' + TitleFont.Style = [] + OnDblClick = ListaTiposIVADblClick + Columns = < + item + Expanded = False + FieldName = 'REFERENCIA' + Title.Caption = 'Referencia' + Width = 60 + Visible = True + end + item + Expanded = False + FieldName = 'DESCRIPCION' + Title.Caption = 'Descripci'#243'n' + Width = 97 + Visible = True + end + item + Expanded = False + FieldName = 'IVA' + Title.Alignment = taRightJustify + Title.Caption = '% IVA' + Width = 41 + Visible = True + end + item + Expanded = False + FieldName = 'RE' + Title.Alignment = taRightJustify + Title.Caption = '% RE' + Visible = True + end> + end + end + end + object ActionList1: TActionList + Left = 144 + Top = 16 + object actAnadir: TAction + Caption = '&A'#241'adir...' + OnExecute = actAnadirExecute + OnUpdate = actAnadirUpdate + end + object actEliminar: TAction + Caption = '&Eliminar' + OnExecute = actEliminarExecute + OnUpdate = actEliminarUpdate + end + object actAceptar: TAction + Caption = 'A&ceptar' + OnExecute = actAceptarExecute + end + object actCancelar: TAction + Caption = '&Cancelar' + OnExecute = actCancelarExecute + end + object actCerrar: TAction + Caption = 'actCerrar' + OnExecute = actCerrarExecute + end + object actModificar: TAction + Caption = '&Modificar...' + OnExecute = actModificarExecute + OnUpdate = actModificarUpdate + end + end + object dsTiposIVA: TDADataSource + Left = 168 + Top = 16 + end +end diff --git a/Source/Modulos/Tipos de IVA/Views/uEditorTiposIVA.pas b/Source/Modulos/Tipos de IVA/Views/uEditorTiposIVA.pas new file mode 100644 index 0000000..c1dbbbd --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Views/uEditorTiposIVA.pas @@ -0,0 +1,184 @@ +{ +=============================================================================== + Copyright () 2006. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: 22-05-2006 + Versin actual: 1.0.0 + Fecha versin actual: 22-05-2006 +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uEditorTiposIVA; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + uIEditorTiposIVA, uBizTiposIVA, uTiposIVAController, DB, uDADataTable, + ActnList, Grids, DBGrids, StdCtrls, ComCtrls; + +type + TfEditorTiposIVA = class(TForm, IEditorTiposIVA) + ActionList1: TActionList; + dsTiposIVA: TDADataSource; + actAnadir: TAction; + actEliminar: TAction; + bEliminar: TButton; + actAceptar: TAction; + actCancelar: TAction; + bAceptar: TButton; + bCancelar: TButton; + actCerrar: TAction; + PageControl1: TPageControl; + TabSheet1: TTabSheet; + Label1: TLabel; + bAnadir: TButton; + actModificar: TAction; + Button1: TButton; + ListaTiposIVA: TDBGrid; + procedure FormShow(Sender: TObject); + + procedure actAnadirExecute(Sender: TObject); + procedure actEliminarExecute(Sender: TObject); + procedure actAceptarExecute(Sender: TObject); + procedure actCancelarExecute(Sender: TObject); + procedure actCerrarExecute(Sender: TObject); + procedure actAnadirUpdate(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + procedure actModificarExecute(Sender: TObject); + procedure ListaTiposIVADblClick(Sender: TObject); + procedure actModificarUpdate(Sender: TObject); + protected + FTiposIVA: IBizTipoIVA; + FController: ITiposIVAController; + function GetTiposIVA: IBizTipoIVA; + procedure SetTiposIVA(const Value: IBizTipoIVA); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + property TiposIVA: IBizTipoIVA read GetTiposIVA write SetTiposIVA; + end; + + +implementation +{$R *.dfm} + +{ TfEditorTiposIVA } + +uses + uDialogUtils; + +function TfEditorTiposIVA.GetTiposIVA: IBizTipoIVA; +begin + Result := FTiposIVA; +end; + +procedure TfEditorTiposIVA.ListaTiposIVADblClick(Sender: TObject); +begin +// ListaTiposIVA.SelectedIndex +end; + +procedure TfEditorTiposIVA.SetTiposIVA(const Value: IBizTipoIVA); +begin + FTiposIVA := Value; + dsTiposIVA.DataTable := (FTiposIVA as IBizTipoIVA).DataTable; + dsTiposIVA.DataTable.Open; +end; + +procedure TfEditorTiposIVA.actAnadirExecute(Sender: TObject); +begin + FController.Anadir(TiposIVA); + FController.Ver(TiposIVA); +end; + +procedure TfEditorTiposIVA.actEliminarExecute(Sender: TObject); +begin + if (ShowConfirmMessage('Desea borrar esta forma de pago?', '') = IDYES) then + FController.Eliminar(FTiposIVA) +end; + +procedure TfEditorTiposIVA.actEliminarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := Assigned(FTiposIVA) and + FTiposIVA.DataTable.Active and + (FTiposIVA.DataTable.RecordCount > 0); +end; + +procedure TfEditorTiposIVA.actModificarExecute(Sender: TObject); +begin + FController.Ver(TiposIVA); +end; + +procedure TfEditorTiposIVA.actModificarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := Assigned(FTiposIVA) and + FTiposIVA.DataTable.Active and + (FTiposIVA.DataTable.RecordCount > 0); +end; + +constructor TfEditorTiposIVA.Create(AOwner: TComponent); +begin + inherited; + FController := TTiposIVAController.Create; +end; + +destructor TfEditorTiposIVA.Destroy; +begin + FTiposIVA := NIL; + FController := NIL; + inherited; +end; + +procedure TfEditorTiposIVA.actAceptarExecute(Sender: TObject); +begin + try + TiposIVA.DataTable.ApplyUpdates; + except + on E : Exception do begin + TiposIVA.DataTable.CancelUpdates; + ShowErrorMessage('Error al guardar cambios', 'Se ha producido un error grave', E); + exit; + end; + end; + actCerrar.Execute; +end; + +procedure TfEditorTiposIVA.actCancelarExecute(Sender: TObject); +begin + TiposIVA.DataTable.CancelUpdates; + actCerrar.Execute; +end; + +procedure TfEditorTiposIVA.actCerrarExecute(Sender: TObject); +begin + Close; +end; + +procedure TfEditorTiposIVA.actAnadirUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := Assigned(FTiposIVA) and + FTiposIVA.DataTable.Active; +end; + +procedure TfEditorTiposIVA.FormShow(Sender: TObject); +begin + if not FTiposIVA.DataTable.Active then + FTiposIVA.DataTable.Active := true; + + ListaTiposIVA.SetFocus; +end; + +end. diff --git a/Source/Modulos/Tipos de IVA/Views/uTiposIVAViewRegister.dcu b/Source/Modulos/Tipos de IVA/Views/uTiposIVAViewRegister.dcu new file mode 100644 index 0000000..180ace2 Binary files /dev/null and b/Source/Modulos/Tipos de IVA/Views/uTiposIVAViewRegister.dcu differ diff --git a/Source/Modulos/Tipos de IVA/Views/uTiposIVAViewRegister.pas b/Source/Modulos/Tipos de IVA/Views/uTiposIVAViewRegister.pas new file mode 100644 index 0000000..8286c0c --- /dev/null +++ b/Source/Modulos/Tipos de IVA/Views/uTiposIVAViewRegister.pas @@ -0,0 +1,48 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uTiposIVAViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorTipoIVA, uEditorTiposIVA; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorTiposIVA, 'EditorTiposIVA'); + EditorRegistry.RegisterClass(TfEditorTipoIVA, 'EditorTipoIVA'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorTiposIVA); + EditorRegistry.UnRegisterClass(TfEditorTipoIVA); +end; + +end. diff --git a/Source/Modulos/Unidades de medida/Controller/UnidadesMedida_controller.bdsproj b/Source/Modulos/Unidades de medida/Controller/UnidadesMedida_controller.bdsproj new file mode 100644 index 0000000..4eadc79 --- /dev/null +++ b/Source/Modulos/Unidades de medida/Controller/UnidadesMedida_controller.bdsproj @@ -0,0 +1,175 @@ + + + + + + + + + + + + UnidadesMedida_controller.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + diff --git a/Source/Modulos/Unidades de medida/Controller/UnidadesMedida_controller.dcu b/Source/Modulos/Unidades de medida/Controller/UnidadesMedida_controller.dcu new file mode 100644 index 0000000..1380923 Binary files /dev/null and b/Source/Modulos/Unidades de medida/Controller/UnidadesMedida_controller.dcu differ diff --git a/Source/Modulos/Unidades de medida/Controller/UnidadesMedida_controller.dpk b/Source/Modulos/Unidades de medida/Controller/UnidadesMedida_controller.dpk new file mode 100644 index 0000000..a2c1ecf Binary files /dev/null and b/Source/Modulos/Unidades de medida/Controller/UnidadesMedida_controller.dpk differ diff --git a/Source/Modulos/Unidades de medida/Controller/UnidadesMedida_controller.dproj b/Source/Modulos/Unidades de medida/Controller/UnidadesMedida_controller.dproj new file mode 100644 index 0000000..9d31ccd --- /dev/null +++ b/Source/Modulos/Unidades de medida/Controller/UnidadesMedida_controller.dproj @@ -0,0 +1,543 @@ + + + {7f80f8aa-6912-4714-986d-aed73035472b} + UnidadesMedida_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\UnidadesMedida_controller.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Release\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0UnidadesMedida_controller.dpk + + + + + MainSource + + + + + + + + + + + + + + diff --git a/Source/Modulos/Unidades de medida/Controller/UnidadesMedida_controller.rc b/Source/Modulos/Unidades de medida/Controller/UnidadesMedida_controller.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Unidades de medida/Controller/UnidadesMedida_controller.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Unidades de medida/Controller/UnidadesMedida_controller.res b/Source/Modulos/Unidades de medida/Controller/UnidadesMedida_controller.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Unidades de medida/Controller/UnidadesMedida_controller.res differ diff --git a/Source/Modulos/Unidades de medida/Controller/View/uIEditorUnidadesMedida.dcu b/Source/Modulos/Unidades de medida/Controller/View/uIEditorUnidadesMedida.dcu new file mode 100644 index 0000000..c6859ff Binary files /dev/null and b/Source/Modulos/Unidades de medida/Controller/View/uIEditorUnidadesMedida.dcu differ diff --git a/Source/Modulos/Unidades de medida/Controller/View/uIEditorUnidadesMedida.pas b/Source/Modulos/Unidades de medida/Controller/View/uIEditorUnidadesMedida.pas new file mode 100644 index 0000000..efcbe20 --- /dev/null +++ b/Source/Modulos/Unidades de medida/Controller/View/uIEditorUnidadesMedida.pas @@ -0,0 +1,26 @@ +unit uIEditorUnidadesMedida; + +interface + +uses + uEditorDBBase, uBizUnidadesMedida, uUnidadesMedidaController, uGUIBase; + +type + IEditorUnidadesMedida = interface(ICustomEditor) + ['{5786FFF0-8036-4018-B77E-CE98F1FF1CD9}'] + function GetUnidadesMedida: IBizUnidadMedida; + procedure SetUnidadesMedida(const Value: IBizUnidadMedida); + property UnidadesMedida: IBizUnidadMedida read GetUnidadesMedida write SetUnidadesMedida; + + function GetController : IUnidadesMedidaController; + procedure SetController (const Value : IUnidadesMedidaController); + property Controller : IUnidadesMedidaController read GetController write SetController; + + function ShowModal : Integer; + procedure Show; + end; + + +implementation + +end. diff --git a/Source/Modulos/Unidades de medida/Controller/uUnidadesMedidaController.dcu b/Source/Modulos/Unidades de medida/Controller/uUnidadesMedidaController.dcu new file mode 100644 index 0000000..497869a Binary files /dev/null and b/Source/Modulos/Unidades de medida/Controller/uUnidadesMedidaController.dcu differ diff --git a/Source/Modulos/Unidades de medida/Controller/uUnidadesMedidaController.pas b/Source/Modulos/Unidades de medida/Controller/uUnidadesMedidaController.pas new file mode 100644 index 0000000..dc2aafc --- /dev/null +++ b/Source/Modulos/Unidades de medida/Controller/uUnidadesMedidaController.pas @@ -0,0 +1,220 @@ +unit uUnidadesMedidaController; + +interface + + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uEditorDBItem, + uIDataModuleUnidadesMedida, uBizUnidadesMedida; + +type + IUnidadesMedidaController = interface(IControllerBase) + ['{8D56360B-0AAA-41FA-9C48-90C586B07E37}'] + function BuscarTodos: IBizUnidadMedida; + procedure VerTodos(AUnidadesMedida: IBizUnidadMedida); + procedure Anadir(AUnidadMedida : IBizUnidadMedida); + function Eliminar(AUnidadMedida : IBizUnidadMedida): Boolean; + function Guardar(AUnidadMedida : IBizUnidadMedida): Boolean; + procedure DescartarCambios(AUnidadMedida : IBizUnidadMedida); + function Localizar(AUnidadesMedida: IBizUnidadMedida; ADescripcion:String): Boolean; + function DarListaUnidadesMedida: TStringList; + end; + + TUnidadesMedidaController = class(TControllerBase, IUnidadesMedidaController) + protected + FDataModule : IDataModuleUnidadesMedida; + + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; + + function ValidarUnidadesMedida(AUnidadMedida: IBizUnidadMedida): Boolean; + + //Estos son los tres mtodos a sobre escribir si se desea heredar toda la logica de + //este controller + procedure AsignarDataModule; virtual; + public + constructor Create; override; + destructor Destroy; override; + + function Eliminar(AUnidadMedida : IBizUnidadMedida): Boolean; + function Guardar(AUnidadMedida : IBizUnidadMedida): Boolean; + procedure DescartarCambios(AUnidadMedida : IBizUnidadMedida); virtual; + procedure Anadir(AUnidadMedida : IBizUnidadMedida); + function BuscarTodos: IBizUnidadMedida; + procedure VerTodos(AUnidadesMedida: IBizUnidadMedida); + function Localizar(AUnidadesMedida: IBizUnidadMedida; ADescripcion:String): Boolean; + function DarListaUnidadesMedida: TStringList; + end; + +implementation + +uses + cxControls, DB, uEditorRegistryUtils, schUnidadesMedidaClient_Intf, + uIEditorUnidadesMedida, uDataModuleUnidadesMedida, + uDAInterfaces, uDataTableUtils, + uDateUtils, uROTypes, DateUtils, Controls, Windows; + +{ TUnidadesMedidaController } + +procedure TUnidadesMedidaController.Anadir(AUnidadMedida: IBizUnidadMedida); +begin + AUnidadMedida.Insert; +end; + +procedure TUnidadesMedidaController.AsignarDataModule; +begin + FDataModule := TDataModuleUnidadesMedida.Create(Nil); +end; + +function TUnidadesMedidaController.BuscarTodos: IBizUnidadMedida; +begin + Result := FDataModule.GetItems; +end; + +constructor TUnidadesMedidaController.Create; +begin + inherited; + AsignarDataModule; +end; + +function TUnidadesMedidaController.CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + +function TUnidadesMedidaController.DarListaUnidadesMedida: TStringList; +var + AUnidadesMedida: IBizUnidadMedida; +begin + AUnidadesMedida := BuscarTodos; + AUnidadesMedida.DataTable.Active := True; + Result := TStringList.Create; + try + with Result do + begin + AUnidadesMedida.DataTable.First; + while not AUnidadesMedida.DataTable.EOF do + begin + Add(AUnidadesMedida.DESCRIPCION); + AUnidadesMedida.DataTable.Next; + end; + end; + finally + AUnidadesMedida := NIL; + end; +end; + +procedure TUnidadesMedidaController.DescartarCambios(AUnidadMedida: IBizUnidadMedida); +begin + if not Assigned(AUnidadMedida) then + raise Exception.Create ('Almacen no asignado'); + + ShowHourglassCursor; + try + if (AUnidadMedida.State in dsEditModes) then + AUnidadMedida.Cancel; + + AUnidadMedida.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TUnidadesMedidaController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + +function TUnidadesMedidaController.ValidarUnidadesMedida(AUnidadMedida: IBizUnidadMedida): Boolean; +begin + Result := False; + + if not Assigned(AUnidadMedida) then + raise Exception.Create ('UnidadMedida no asignada'); + + if (AUnidadMedida.DataTable.State in dsEditModes) then + AUnidadMedida.DataTable.Post; + + Result := True; +end; + +procedure TUnidadesMedidaController.VerTodos(AUnidadesMedida: IBizUnidadMedida); +var + AEditor : IEditorUnidadesMedida; +begin + AEditor := NIL; + CreateEditor('EditorUnidadesMedida', IEditorUnidadesMedida, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.UnidadesMedida := AUnidadesMedida; + AEditor.ShowModal; + finally + AEditor.Release; + end; +end; + +function TUnidadesMedidaController.Eliminar(AUnidadMedida: IBizUnidadMedida): Boolean; +begin + if not Assigned(AUnidadMedida) then + raise Exception.Create ('Almacen no asignada'); + + ShowHourglassCursor; + try + if (AUnidadMedida.State in dsEditModes) then + AUnidadMedida.Cancel; + + AUnidadMedida.Delete; + AUnidadMedida.DataTable.ApplyUpdates; + HideHourglassCursor; + Result := True; + finally + HideHourglassCursor; + end; +end; + +procedure TUnidadesMedidaController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +begin + inherited; +// +end; + +function TUnidadesMedidaController.Guardar(AUnidadMedida: IBizUnidadMedida): Boolean; +begin + Result := False; + + if not Assigned(AUnidadMedida) then + raise Exception.Create ('Almacen no asignada'); + + if ValidarUnidadesMedida(AUnidadMedida) then + begin + ShowHourglassCursor; + try + AUnidadMedida.DataTable.ApplyUpdates; + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TUnidadesMedidaController.Localizar(AUnidadesMedida: IBizUnidadMedida; ADescripcion: String): Boolean; +begin + Result := True; + ShowHourglassCursor; + try + with AUnidadesMedida.DataTable do + begin + DisableControls; + First; + if not Locate(fld_UnidadesMedidaDESCRIPCION, ADescripcion, []) then + Result := False; + EnableControls; + end; + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.bdsproj b/Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.bdsproj new file mode 100644 index 0000000..83b4e1c --- /dev/null +++ b/Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + UnidadesMedida_data.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.dcu b/Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.dcu new file mode 100644 index 0000000..3cf41dc Binary files /dev/null and b/Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.dcu differ diff --git a/Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.dpk b/Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.dpk new file mode 100644 index 0000000..e576611 Binary files /dev/null and b/Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.dpk differ diff --git a/Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.dproj b/Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.dproj new file mode 100644 index 0000000..94ecb70 --- /dev/null +++ b/Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.dproj @@ -0,0 +1,545 @@ + + + + {55d06c67-fc74-4d88-8787-801dee872bb3} + UnidadesMedida_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\UnidadesMedida_data.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0UnidadesMedida_data.dpk + + + + + MainSource + + + + + + + + +
DataModuleUnidadesMedida
+
+
+
+ diff --git a/Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.drc b/Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.drc new file mode 100644 index 0000000..ed24ce6 --- /dev/null +++ b/Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.drc @@ -0,0 +1,17 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Unidades de medida\Data\uDataModuleUnidadesMedida.dfm */ +/* C:\Codigo\Source\Modulos\Unidades de medida\Data\UnidadesMedida_data.res */ +/* c:\temp\dtf13B.tmp */ diff --git a/Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.rc b/Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.res b/Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.res differ diff --git a/Source/Modulos/Unidades de medida/Data/uDataModuleUnidadesMedida.dcu b/Source/Modulos/Unidades de medida/Data/uDataModuleUnidadesMedida.dcu new file mode 100644 index 0000000..cf7d2ac Binary files /dev/null and b/Source/Modulos/Unidades de medida/Data/uDataModuleUnidadesMedida.dcu differ diff --git a/Source/Modulos/Unidades de medida/Data/uDataModuleUnidadesMedida.dfm b/Source/Modulos/Unidades de medida/Data/uDataModuleUnidadesMedida.dfm new file mode 100644 index 0000000..443196f --- /dev/null +++ b/Source/Modulos/Unidades de medida/Data/uDataModuleUnidadesMedida.dfm @@ -0,0 +1,61 @@ +inherited DataModuleUnidadesMedida: TDataModuleUnidadesMedida + OnCreate = DAClientDataModuleCreate + Height = 248 + Width = 489 + object RORemoteService: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvUnidadesMedida' + Left = 48 + Top = 24 + end + object rda_UnidadesMedida: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetDataCall.RemoteService = RORemoteService + UpdateDataCall.RemoteService = RORemoteService + GetScriptsCall.RemoteService = RORemoteService + RemoteService = RORemoteService + DataStreamer = Bin2DataStreamer + Left = 203 + Top = 23 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 96 + end + object tbl_UnidadesMedida: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_UNIDADES_MEDIDA_ID' + Required = True + ServerAutoRefresh = True + DictionaryEntry = 'UnidadesMedida_ID' + InPrimaryKey = True + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DisplayLabel = 'Descripci'#243'n' + DictionaryEntry = 'UnidadesMedida_DESCRIPCION' + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_UnidadesMedida + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'UnidadesMedida' + IndexDefs = <> + Left = 336 + Top = 24 + end + object ds_UnidadesMedida: TDADataSource + DataSet = tbl_UnidadesMedida.Dataset + DataTable = tbl_UnidadesMedida + Left = 336 + Top = 96 + end +end diff --git a/Source/Modulos/Unidades de medida/Data/uDataModuleUnidadesMedida.pas b/Source/Modulos/Unidades de medida/Data/uDataModuleUnidadesMedida.pas new file mode 100644 index 0000000..e295f14 --- /dev/null +++ b/Source/Modulos/Unidades de medida/Data/uDataModuleUnidadesMedida.pas @@ -0,0 +1,112 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uDataModuleUnidadesMedida; + +interface + +uses + SysUtils, Classes, DB, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, + + uIDataModuleUnidadesMedida, uBizUnidadesMedida, uDADataStreamer, uDARemoteDataAdapter, + uDAInterfaces, uRODynamicRequest, uDABin2DataStreamer, uDAMemDataTable, + uDataModuleBase; + +type + TDataModuleUnidadesMedida = class(TDataModuleBase, IDataModuleUnidadesMedida) + RORemoteService: TRORemoteService; + rda_UnidadesMedida: TDARemoteDataAdapter; + Bin2DataStreamer: TDABin2DataStreamer; + tbl_UnidadesMedida: TDAMemDataTable; + ds_UnidadesMedida: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + public + function GetItems: IBizUnidadMedida; + function GetItem(const ID : Integer) : IBizUnidadMedida; + function NewItem : IBizUnidadMedida; + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, + schUnidadesMedidaClient_Intf; + +{ TDataModuleUnidadesMedida } + +procedure TDataModuleUnidadesMedida.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleUnidadesMedida.GetItems: IBizUnidadMedida; +var + AUnidadMedida : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AUnidadMedida := CloneDataTable(tbl_UnidadesMedida); + AUnidadMedida.BusinessRulesID := BIZ_CLIENT_UnidadMedida; + + Result := (AUnidadMedida as IBizUnidadMedida); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleUnidadesMedida.NewItem: IBizUnidadMedida; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleUnidadesMedida.GetItem(const ID: Integer): IBizUnidadMedida; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + + with Result.DataTable.DynamicWhere do + begin + // (ID = :ID) + Condicion := NewBinaryExpression(NewField('', fld_UnidadesMedidaID), NewConstant(ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Unidades de medida/Model/Data/uIDataModuleUnidadesMedida.dcu b/Source/Modulos/Unidades de medida/Model/Data/uIDataModuleUnidadesMedida.dcu new file mode 100644 index 0000000..ff5e107 Binary files /dev/null and b/Source/Modulos/Unidades de medida/Model/Data/uIDataModuleUnidadesMedida.dcu differ diff --git a/Source/Modulos/Unidades de medida/Model/Data/uIDataModuleUnidadesMedida.pas b/Source/Modulos/Unidades de medida/Model/Data/uIDataModuleUnidadesMedida.pas new file mode 100644 index 0000000..7bdc152 --- /dev/null +++ b/Source/Modulos/Unidades de medida/Model/Data/uIDataModuleUnidadesMedida.pas @@ -0,0 +1,42 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uIDataModuleUnidadesMedida; + +interface + +uses + uBizUnidadesMedida; + +type + IDataModuleUnidadesMedida = interface + ['{30D6FF83-4527-46E9-823D-C1E3E4E00522}'] + function GetItems: IBizUnidadMedida; + function GetItem(const ID : Integer) : IBizUnidadMedida; + function NewItem : IBizUnidadMedida; + + end; + +implementation + +end. diff --git a/Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.bdsproj b/Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.bdsproj new file mode 100644 index 0000000..675e079 --- /dev/null +++ b/Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.bdsproj @@ -0,0 +1,175 @@ + + + + + + + + + + + + UnidadesMedida_model.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + diff --git a/Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.dcu b/Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.dcu new file mode 100644 index 0000000..f74bc18 Binary files /dev/null and b/Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.dcu differ diff --git a/Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.dpk b/Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.dpk new file mode 100644 index 0000000..6ea112f Binary files /dev/null and b/Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.dpk differ diff --git a/Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.dproj b/Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.dproj new file mode 100644 index 0000000..c638ded --- /dev/null +++ b/Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.dproj @@ -0,0 +1,546 @@ + + + + {82fe21d8-609d-444d-879e-4d9e1c291607} + UnidadesMedida_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\UnidadesMedida_model.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Release\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0UnidadesMedida_model.dpk + + + + + MainSource + + + + + + + + + + + + + + diff --git a/Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.drc b/Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.drc new file mode 100644 index 0000000..4ad1a57 --- /dev/null +++ b/Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.drc @@ -0,0 +1,16 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* C:\Codigo\Source\Modulos\Unidades de medida\Model\UnidadesMedida_model.res */ +/* c:\temp\dtf139.tmp */ diff --git a/Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.rc b/Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.res b/Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.res differ diff --git a/Source/Modulos/Unidades de medida/Model/schUnidadesMedidaClient_Intf.dcu b/Source/Modulos/Unidades de medida/Model/schUnidadesMedidaClient_Intf.dcu new file mode 100644 index 0000000..694a4a5 Binary files /dev/null and b/Source/Modulos/Unidades de medida/Model/schUnidadesMedidaClient_Intf.dcu differ diff --git a/Source/Modulos/Unidades de medida/Model/schUnidadesMedidaClient_Intf.pas b/Source/Modulos/Unidades de medida/Model/schUnidadesMedidaClient_Intf.pas new file mode 100644 index 0000000..30fce76 --- /dev/null +++ b/Source/Modulos/Unidades de medida/Model/schUnidadesMedidaClient_Intf.pas @@ -0,0 +1,134 @@ +unit schUnidadesMedidaClient_Intf; + +interface + +uses + Classes, DB, schBase_Intf, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_UnidadesMedida = '{6C423586-F446-4984-BC7A-C5B4E036C9DC}'; + + { Data table names } + nme_UnidadesMedida = 'UnidadesMedida'; + + { UnidadesMedida fields } + fld_UnidadesMedidaID = 'ID'; + fld_UnidadesMedidaDESCRIPCION = 'DESCRIPCION'; + + { UnidadesMedida field indexes } + idx_UnidadesMedidaID = 0; + idx_UnidadesMedidaDESCRIPCION = 1; + +type + { IUnidadesMedida } + IUnidadesMedida = interface(IDAStronglyTypedDataTable) + ['{3F35C0B0-C4B4-419E-930A-2A9B26E37C88}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetDESCRIPCIONIsNull: Boolean; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + end; + + { TUnidadesMedidaDataTableRules } + TUnidadesMedidaDataTableRules = class(TIntfObjectDADataTableRules, IUnidadesMedida) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants, uROBinaryHelpers; + +{ TUnidadesMedidaDataTableRules } +constructor TUnidadesMedidaDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TUnidadesMedidaDataTableRules.Destroy; +begin + inherited; +end; + +function TUnidadesMedidaDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_UnidadesMedidaID].AsInteger; +end; + +procedure TUnidadesMedidaDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_UnidadesMedidaID].AsInteger := aValue; +end; + +function TUnidadesMedidaDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_UnidadesMedidaID].IsNull; +end; + +procedure TUnidadesMedidaDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_UnidadesMedidaID].AsVariant := Null; +end; + +function TUnidadesMedidaDataTableRules.GetDESCRIPCIONValue: String; +begin + result := DataTable.Fields[idx_UnidadesMedidaDESCRIPCION].AsString; +end; + +procedure TUnidadesMedidaDataTableRules.SetDESCRIPCIONValue(const aValue: String); +begin + DataTable.Fields[idx_UnidadesMedidaDESCRIPCION].AsString := aValue; +end; + +function TUnidadesMedidaDataTableRules.GetDESCRIPCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_UnidadesMedidaDESCRIPCION].IsNull; +end; + +procedure TUnidadesMedidaDataTableRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_UnidadesMedidaDESCRIPCION].AsVariant := Null; +end; + + +initialization + RegisterDataTableRules(RID_UnidadesMedida, TUnidadesMedidaDataTableRules); + +end. diff --git a/Source/Modulos/Unidades de medida/Model/schUnidadesMedidaServer_Intf.dcu b/Source/Modulos/Unidades de medida/Model/schUnidadesMedidaServer_Intf.dcu new file mode 100644 index 0000000..d8a2e44 Binary files /dev/null and b/Source/Modulos/Unidades de medida/Model/schUnidadesMedidaServer_Intf.dcu differ diff --git a/Source/Modulos/Unidades de medida/Model/schUnidadesMedidaServer_Intf.pas b/Source/Modulos/Unidades de medida/Model/schUnidadesMedidaServer_Intf.pas new file mode 100644 index 0000000..53350ba --- /dev/null +++ b/Source/Modulos/Unidades de medida/Model/schUnidadesMedidaServer_Intf.pas @@ -0,0 +1,143 @@ +unit schUnidadesMedidaServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schUnidadesMedidaClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_UnidadesMedidaDelta = '{5CD2E828-7EE8-4427-A2EA-4580837BD172}'; + +type + { IUnidadesMedidaDelta } + IUnidadesMedidaDelta = interface(IUnidadesMedida) + ['{5CD2E828-7EE8-4427-A2EA-4580837BD172}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldDESCRIPCIONValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + end; + + { TUnidadesMedidaBusinessProcessorRules } + TUnidadesMedidaBusinessProcessorRules = class(TDABusinessProcessorRules, IUnidadesMedida, IUnidadesMedidaDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull : Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldDESCRIPCIONIsNull : Boolean read GetOldDESCRIPCIONIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers, uDAInterfaces; + +{ TUnidadesMedidaBusinessProcessorRules } +constructor TUnidadesMedidaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TUnidadesMedidaBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TUnidadesMedidaBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_UnidadesMedidaID]; +end; + +function TUnidadesMedidaBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_UnidadesMedidaID]); +end; + +function TUnidadesMedidaBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_UnidadesMedidaID]; +end; + +function TUnidadesMedidaBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_UnidadesMedidaID]); +end; + +procedure TUnidadesMedidaBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_UnidadesMedidaID] := aValue; +end; + +procedure TUnidadesMedidaBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_UnidadesMedidaID] := Null; +end; + +function TUnidadesMedidaBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_UnidadesMedidaDESCRIPCION]; +end; + +function TUnidadesMedidaBusinessProcessorRules.GetDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_UnidadesMedidaDESCRIPCION]); +end; + +function TUnidadesMedidaBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_UnidadesMedidaDESCRIPCION]; +end; + +function TUnidadesMedidaBusinessProcessorRules.GetOldDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_UnidadesMedidaDESCRIPCION]); +end; + +procedure TUnidadesMedidaBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_UnidadesMedidaDESCRIPCION] := aValue; +end; + +procedure TUnidadesMedidaBusinessProcessorRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_UnidadesMedidaDESCRIPCION] := Null; +end; + + +initialization + RegisterBusinessProcessorRules(RID_UnidadesMedidaDelta, TUnidadesMedidaBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Unidades de medida/Model/uBizUnidadesMedida.dcu b/Source/Modulos/Unidades de medida/Model/uBizUnidadesMedida.dcu new file mode 100644 index 0000000..01d4ccc Binary files /dev/null and b/Source/Modulos/Unidades de medida/Model/uBizUnidadesMedida.dcu differ diff --git a/Source/Modulos/Unidades de medida/Model/uBizUnidadesMedida.pas b/Source/Modulos/Unidades de medida/Model/uBizUnidadesMedida.pas new file mode 100644 index 0000000..a55bf99 --- /dev/null +++ b/Source/Modulos/Unidades de medida/Model/uBizUnidadesMedida.pas @@ -0,0 +1,141 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uBizUnidadesMedida; + +interface + +uses + uDAInterfaces, uDADataTable, uDBSelectionListUtils, schUnidadesMedidaClient_Intf; + +const + BIZ_CLIENT_UNIDADMEDIDA = 'Client.UnidadMedida'; + +type + IBizUnidadMedida = interface(IUnidadesMedida) + ['{1A127C8E-2D86-4504-A041-B66152CC7A99}'] + function EsNuevo : Boolean; + + // Descomentar esto si hay clases detalles + // procedure SetDetalles(AValue : IBizDetalles); + // function GetDetalles : IBizDetalles; + // property Detalles : IBizDetalles read GetDetalles write SetDetalles; + end; + + TBizUnidadMedida = class(TUnidadesMedidaDataTableRules, IBizUnidadMedida, ISeleccionable) + protected + FSeleccionableInterface : ISeleccionable; + + // Descomentar esto si hay clases detalles + // FDetalles : IBizDetalles; + // FDetallesLink : TDADataSource; + // procedure SetDetalles(AValue : IBizDetalles); + // function GetDetalles : IBizDetalles; + + procedure OnNewRecord(Sender: TDADataTable); override; + procedure AfterOpen(Sender: TDADataTable); override; + public + procedure IniciarValoresUnidadMedidaNuevo; + function EsNuevo : Boolean; + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + property SeleccionableInterface : ISeleccionable + read FSeleccionableInterface + write FSeleccionableInterface + implements ISeleccionable; + + // Descomentar esto si hay clases detalles + // property Detalles : IBizDetalles read GetDetalles write SetDetalles; + end; + +implementation + +{ TBizUnidadMedida } + +uses + SysUtils, uDataTableUtils; + +// Descomentar esto si hay clases detalles +// function TBizUnidadMedida.GetDetalles: IBizDetalles; +// begin +// Result := FDetalles; +// end; + +// Descomentar esto si hay clases detalles +// procedure TBizUnidadMedida.SetDetalles(AValue: IBizDetalles); +// begin +// FDetalles := AValue; +// EnlazarMaestroDetalle(FDetallesLink, FDetalles); +// end; + +procedure TBizUnidadMedida.AfterOpen(Sender: TDADataTable); +begin + inherited; + DataTable.Sort([fld_UnidadesMedidaDESCRIPCION], [sdAscending]); +end; + +constructor TBizUnidadMedida.Create(aDataTable: TDADataTable); +begin + inherited; + // Descomentar esto si hay clases detalles + // FDetallesLink := TDADataSource.Create(NIL); + // FDetallesLink.DataTable := aDataTable; + + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +destructor TBizUnidadMedida.Destroy; +begin + // Descomentar esto si hay clases detalles + // FDetalles := NIL; + // FreeAndNIL(FDetallesLink); + + FSeleccionableInterface := NIL; + inherited; +end; + +function TBizUnidadMedida.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +procedure TBizUnidadMedida.IniciarValoresUnidadMedidaNuevo; +begin + // +end; + +procedure TBizUnidadMedida.OnNewRecord(Sender: TDADataTable); +begin + inherited; + ID := GetRecNo; // -1, -2, -3... + IniciarValoresUnidadMedidaNuevo; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_UNIDADMEDIDA, TBizUnidadMedida); + +finalization + +end. + diff --git a/Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.bdsproj b/Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.bdsproj new file mode 100644 index 0000000..c15673d --- /dev/null +++ b/Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.bdsproj @@ -0,0 +1,175 @@ + + + + + + + + + + + + UnidadesMedida_plugin.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + diff --git a/Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.dcu b/Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.dcu new file mode 100644 index 0000000..fe090da Binary files /dev/null and b/Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.dcu differ diff --git a/Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.dpk b/Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.dpk new file mode 100644 index 0000000..4248fa3 Binary files /dev/null and b/Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.dpk differ diff --git a/Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.dproj b/Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.dproj new file mode 100644 index 0000000..c416c7e --- /dev/null +++ b/Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.dproj @@ -0,0 +1,545 @@ + + + + {139324a2-0c57-446d-aebd-edd9578e22fd} + UnidadesMedida_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\UnidadesMedida_plugin.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Release\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0UnidadesMedida_plugin.dpk + + + + + MainSource + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.rc b/Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.res b/Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.res differ diff --git a/Source/Modulos/Unidades de medida/Plugin/uPluginUnidadesMedida.dcu b/Source/Modulos/Unidades de medida/Plugin/uPluginUnidadesMedida.dcu new file mode 100644 index 0000000..a01827c Binary files /dev/null and b/Source/Modulos/Unidades de medida/Plugin/uPluginUnidadesMedida.dcu differ diff --git a/Source/Modulos/Unidades de medida/Plugin/uPluginUnidadesMedida.dfm b/Source/Modulos/Unidades de medida/Plugin/uPluginUnidadesMedida.dfm new file mode 100644 index 0000000..6b2d050 --- /dev/null +++ b/Source/Modulos/Unidades de medida/Plugin/uPluginUnidadesMedida.dfm @@ -0,0 +1,108 @@ +object PluginUnidadesMedida: TPluginUnidadesMedida + OldCreateOrder = True + DefaultAction = actUnidadesMedida + Description = 'Tipos de IVA' + ModuleMenu = MainMenu + ModuleName = 'Tipos de IVA' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software S.L.' + Version = '1.0.0' + Height = 234 + Width = 459 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000011E4944415478DA + 6364A010ACCA60F80FA2C366303062936724CD384CC3FD2AD63030B3F132AC6F + 72C76A09D916800C5FF7218261715F22C3D7EBD31998B86418762C9C82610959 + 1620BB7C612DD0E529397039744B48B600D97098CBD101B2252459802D58D0C1 + BF6F4F18AE5DDEC0F0E40624E289B600D9E597B7B933A868E7E0349C8307C2BF + 7386481F10132C30C3279D8860287359C1F0E30B03D817042D202558602EEFDA + 13C11024B0827010E14B2DB80C87B99C602453122C049329A5C182AC8E119BE1 + A4A6166C2EC76A01B58205AB05D40C160C0BA8915A705A408B60C1EA03B7D000 + AA050BCE38F088CFC16B38292EC7B000DD124A8205A705C8C14549B0E0B50066 + 898A09F9C142D0029825321A94198ED702982594180E0200B0F2324A4753EBA6 + 0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = SmallImages + Left = 40 + Top = 72 + object actUnidadesMedida: TAction + Category = 'Datos' + Caption = 'Unidades de medida' + ImageIndex = 0 + OnExecute = actUnidadesMedidaExecute + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object Ventas1: TMenuItem + Caption = 'Datos' + object UnidadesMedida1: TMenuItem + Tag = 313 + Action = actUnidadesMedida + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000C14944415478DA + 63642001ACCA60F81F36838111598C9158CD111111FF17F72532AC6F72674036 + 842803403607D6ED645858EBCE101215C0B06BF506B821040D80D9FCF7D76786 + 1F7797303071C930FCFBF6046E082331365FDEE6CEA0A41800D7EC51FD82615A + CA09862D5BF0B80097CDF7EE6F00CB8334D76DC0E102743F63B319A4196B1810 + 6B33D65820C6CFC89A510C20D566140348F133860130CDA4DA8CE102B750D26C + C608039821C4DA8C3316544C88D78C351D340530FC275633080000DE09BBE2B0 + 1D07420000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000001514944415478DA + 6364A0225895C1F03F6C0603233E358CC41A468C6581952B19D6B78733E0B394 + 2A16822C5BF7218261715F2298BFBEC91DA7A5145B08F31903AB00C3E56DEE0C + BA5E3B19BE5E9FCEB06BF506AC96526421B2653000B28C894B06CCDEB1700A86 + A5645B881E8CE896C100BAA5645988ECB385B5EE0CF1CD3BB15A0602574E4E61 + 787283016E29C916120A4674CB387820EC3B672096926421B1C1886CD98F2F0C + 701AE453A22DC4951A09F90C04B2E6583014199C20DE87E4062308C07C46741C + 92138C5D7B2218CA5C56605846D042525323AE604456C7488C65940623410BA9 + 911A892E4BA9951A71851C232ECBA8198C582DA4766AC46B212D52234E0BE911 + 8CD87D58B79328CB884D8D44C5A15B68004D8211AB85304B3DE273A81E8C382D + 44B79492D448B485304B653418A8168C042D8459AA62429D6024CA42649F52CB + 328216C22CA59665200000B1F5433DEC7F85AD0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 80 + Bitmap = {} + end +end diff --git a/Source/Modulos/Unidades de medida/Plugin/uPluginUnidadesMedida.pas b/Source/Modulos/Unidades de medida/Plugin/uPluginUnidadesMedida.pas new file mode 100644 index 0000000..dbea8e5 --- /dev/null +++ b/Source/Modulos/Unidades de medida/Plugin/uPluginUnidadesMedida.pas @@ -0,0 +1,73 @@ +unit uPluginUnidadesMedida; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCUnidadesMedida = interface(IInterface) + ['{386EDE31-46C9-4EA1-9F1D-423739372E1F}'] + end; + + TPluginUnidadesMedida = class(TModuleController, IMCUnidadesMedida) + actUnidadesMedida: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + Ventas1: TMenuItem; + UnidadesMedida1: TMenuItem; + procedure actUnidadesMedidaExecute(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, + uUnidadesMedidaController, uBizUnidadesMedida, uUnidadesMedidaViewRegister; + +function GetModule : TModuleController; +begin + Result := TPluginUnidadesMedida.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +procedure TPluginUnidadesMedida.actUnidadesMedidaExecute(Sender: TObject); +var + AUnidadesMedidaController : IUnidadesMedidaController; + AUnidadesMedida : IBizUnidadMedida; +begin + AUnidadesMedidaController := TUnidadesMedidaController.Create; + AUnidadesMedida := (AUnidadesMedidaController.BuscarTodos as IBizUnidadMedida); + AUnidadesMedidaController.VerTodos(AUnidadesMedida); +end; + +constructor TPluginUnidadesMedida.Create(AOwner: TComponent); +begin + inherited; + uUnidadesMedidaViewRegister.RegisterViews; +end; + +destructor TPluginUnidadesMedida.Destroy; +begin + uUnidadesMedidaViewRegister.UnregisterViews; + inherited; +end; + +initialization + RegisterModuleClass(TPluginUnidadesMedida); + +finalization + UnRegisterModuleClass(TPluginUnidadesMedida); + +end. diff --git a/Source/Modulos/Unidades de medida/Servidor/srvUnidadesMedida_Impl.dcu b/Source/Modulos/Unidades de medida/Servidor/srvUnidadesMedida_Impl.dcu new file mode 100644 index 0000000..edfb3d7 Binary files /dev/null and b/Source/Modulos/Unidades de medida/Servidor/srvUnidadesMedida_Impl.dcu differ diff --git a/Source/Modulos/Unidades de medida/Servidor/srvUnidadesMedida_Impl.dfm b/Source/Modulos/Unidades de medida/Servidor/srvUnidadesMedida_Impl.dfm new file mode 100644 index 0000000..2c39445 --- /dev/null +++ b/Source/Modulos/Unidades de medida/Servidor/srvUnidadesMedida_Impl.dfm @@ -0,0 +1,87 @@ +object srvUnidadesMedida: TsrvUnidadesMedida + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + ServiceSchema = schUnidadesMedida + ServiceDataStreamer = Bin2DataStreamer + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + Height = 300 + Width = 334 + object Diagrams: TDADiagrams + Left = 150 + Top = 88 + DiagramData = ''#13#10''#13#10 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'UnidadesMedida_ID' + DataType = datAutoInc + GeneratorName = 'GEN_UNIDADES_MEDIDA_ID' + Required = True + DisplayLabel = 'ID' + end + item + Name = 'UnidadesMedida_DESCRIPCION' + DataType = datString + Size = 255 + DisplayLabel = 'Descripci'#243'n' + end> + Left = 150 + Top = 24 + end + object schUnidadesMedida: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Diagrams = Diagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'UNIDADES_MEDIDA' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end> + end> + Name = 'UnidadesMedida' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_UNIDADES_MEDIDA_ID' + ServerAutoRefresh = True + DictionaryEntry = 'UnidadesMedida_ID' + InPrimaryKey = True + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DictionaryEntry = 'UnidadesMedida_DESCRIPCION' + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 88 + end +end diff --git a/Source/Modulos/Unidades de medida/Servidor/srvUnidadesMedida_Impl.pas b/Source/Modulos/Unidades de medida/Servidor/srvUnidadesMedida_Impl.pas new file mode 100644 index 0000000..de1942e --- /dev/null +++ b/Source/Modulos/Unidades de medida/Servidor/srvUnidadesMedida_Impl.pas @@ -0,0 +1,63 @@ +unit srvUnidadesMedida_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} uDABusinessProcessor, uDABin2DataStreamer, uDADataStreamer, + uDAScriptingProvider, uDAClasses, + FactuGES_Intf, uDAInterfaces; + +type + { TsrvUnidadesMedida } + TsrvUnidadesMedida = class(TDataAbstractService, IsrvUnidadesMedida) + Diagrams: TDADiagrams; + Bin2DataStreamer: TDABin2DataStreamer; + schUnidadesMedida: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceCreate(Sender: TObject); + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; + var aConnectionName: string); + private + protected + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer, uDatabaseUtils; + +procedure Create_srvUnidadesMedida(out anInstance : IUnknown); +begin + anInstance := TsrvUnidadesMedida.Create(NIL); +end; + +{ srvUnidadesMedida } +procedure TsrvUnidadesMedida.DARemoteServiceCreate(Sender: TObject); +begin + //SessionManager := dmServer.SessionManager; +end; + +procedure TsrvUnidadesMedida.DataAbstractServiceBeforeAcquireConnection( + aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +initialization + TROClassFactory.Create('srvUnidadesMedida', Create_srvUnidadesMedida, TsrvUnidadesMedida_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Unidades de medida/UnidadesMedida_Group.bdsgroup b/Source/Modulos/Unidades de medida/UnidadesMedida_Group.bdsgroup new file mode 100644 index 0000000..96cc30f --- /dev/null +++ b/Source/Modulos/Unidades de medida/UnidadesMedida_Group.bdsgroup @@ -0,0 +1,24 @@ + + + + + + + + + + + ..\..\Base\Base.bdsproj + ..\..\Base\GUIBase\GUIBase.bdsproj + ..\..\Base\Usuarios\Usuarios.bdsproj + Model\UnidadesMedida_model.bdsproj + Data\UnidadesMedida_data.bdsproj + Controller\UnidadesMedida_controller.bdsproj + Views\UnidadesMedida_view.bdsproj + Plugin\UnidadesMedida_plugin.bdsproj + Base.bpl GUIBase.bpl Usuarios.bpl UnidadesMedida_model.bpl UnidadesMedida_data.bpl UnidadesMedida_controller.bpl UnidadesMedida_view.bpl UnidadesMedida_plugin.bpl + + + + diff --git a/Source/Modulos/Unidades de medida/UnidadesMedida_Group.groupproj b/Source/Modulos/Unidades de medida/UnidadesMedida_Group.groupproj new file mode 100644 index 0000000..45d3bb5 --- /dev/null +++ b/Source/Modulos/Unidades de medida/UnidadesMedida_Group.groupproj @@ -0,0 +1,114 @@ + + + {033276d8-059f-49be-9cc2-3276e536a74d} + + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.bdsproj b/Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.bdsproj new file mode 100644 index 0000000..6bacd55 --- /dev/null +++ b/Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.bdsproj @@ -0,0 +1,175 @@ + + + + + + + + + + + + UnidadesMedida_view.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + diff --git a/Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.dcu b/Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.dcu new file mode 100644 index 0000000..3b3689a Binary files /dev/null and b/Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.dcu differ diff --git a/Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.dpk b/Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.dpk new file mode 100644 index 0000000..a889004 Binary files /dev/null and b/Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.dpk differ diff --git a/Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.dproj b/Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.dproj new file mode 100644 index 0000000..65a09a4 --- /dev/null +++ b/Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.dproj @@ -0,0 +1,546 @@ + + + {e3d36a6f-7004-4c89-9f3d-f2d77e386d1b} + UnidadesMedida_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\UnidadesMedida_view.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Release\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0UnidadesMedida_view.dpk + + + + + MainSource + + + + + + + + + +
fEditorUnidadesMedida
+ TfEditorUnidadesMedida +
+ +
+
+ + diff --git a/Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.rc b/Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.res b/Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.res new file mode 100644 index 0000000..8b251f3 Binary files /dev/null and b/Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.res differ diff --git a/Source/Modulos/Unidades de medida/Views/uEditorUnidadesMedida.dcu b/Source/Modulos/Unidades de medida/Views/uEditorUnidadesMedida.dcu new file mode 100644 index 0000000..0fdc49b Binary files /dev/null and b/Source/Modulos/Unidades de medida/Views/uEditorUnidadesMedida.dcu differ diff --git a/Source/Modulos/Unidades de medida/Views/uEditorUnidadesMedida.dfm b/Source/Modulos/Unidades de medida/Views/uEditorUnidadesMedida.dfm new file mode 100644 index 0000000..9248e48 --- /dev/null +++ b/Source/Modulos/Unidades de medida/Views/uEditorUnidadesMedida.dfm @@ -0,0 +1,144 @@ +object fEditorUnidadesMedida: TfEditorUnidadesMedida + Left = 453 + Top = 234 + ActiveControl = ListaUnidadesMedida + BorderIcons = [biSystemMenu] + BorderStyle = bsSingle + Caption = 'Administraci'#243'n de unidades de medida' + ClientHeight = 494 + ClientWidth = 404 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = CustomEditorClose + OnShow = FormShow + InstanceID = 0 + ReadOnly = False + PixelsPerInch = 96 + TextHeight = 13 + object bAceptar: TButton + Left = 235 + Top = 462 + Width = 75 + Height = 23 + Action = actAceptar + Default = True + TabOrder = 1 + end + object bCancelar: TButton + Left = 321 + Top = 462 + Width = 75 + Height = 23 + Action = actCancelar + Cancel = True + TabOrder = 2 + end + object PageControl1: TPageControl + Left = 8 + Top = 8 + Width = 390 + Height = 442 + ActivePage = TabSheet1 + TabOrder = 0 + object TabSheet1: TTabSheet + Caption = 'Unidades de medida' + object Label1: TLabel + Left = 10 + Top = 12 + Width = 190 + Height = 13 + Caption = 'Lista de unidades de medida disponibles' + end + object Label2: TLabel + Left = 10 + Top = 326 + Width = 171 + Height = 13 + Caption = 'A'#241'adir una nueva unidad de medida' + end + object Bevel1: TBevel + Left = 187 + Top = 330 + Width = 189 + Height = 5 + Shape = bsBottomLine + end + object eCategoria: TLabel + Left = 18 + Top = 353 + Width = 40 + Height = 13 + Caption = 'Nombre:' + end + object ListaUnidadesMedida: TDBLookupListBox + Left = 8 + Top = 31 + Width = 262 + Height = 277 + KeyField = 'RecID' + ListField = 'DESCRIPCION' + ListSource = DADataSource + TabOrder = 0 + end + object bEliminar: TButton + Left = 281 + Top = 31 + Width = 95 + Height = 23 + Action = actEliminar + TabOrder = 1 + end + object editUnidadMedida: TEdit + Left = 64 + Top = 349 + Width = 312 + Height = 21 + TabOrder = 2 + end + object bAnadir: TButton + Left = 281 + Top = 382 + Width = 95 + Height = 23 + Action = actAnadir + TabOrder = 3 + end + end + end + object ActionList1: TActionList + Left = 144 + Top = 16 + object actAnadir: TAction + Caption = '&A'#241'adir' + OnExecute = actAnadirExecute + OnUpdate = actAnadirUpdate + end + object actEliminar: TAction + Caption = '&Eliminar' + OnExecute = actEliminarExecute + OnUpdate = actEliminarUpdate + end + object actAceptar: TAction + Caption = 'A&ceptar' + OnExecute = actAceptarExecute + end + object actCancelar: TAction + Caption = '&Cancelar' + OnExecute = actCancelarExecute + end + object actCerrar: TAction + Caption = 'actCerrar' + OnExecute = actCerrarExecute + end + end + object DADataSource: TDADataSource + Left = 168 + Top = 16 + end +end diff --git a/Source/Modulos/Unidades de medida/Views/uEditorUnidadesMedida.pas b/Source/Modulos/Unidades de medida/Views/uEditorUnidadesMedida.pas new file mode 100644 index 0000000..54bcd22 --- /dev/null +++ b/Source/Modulos/Unidades de medida/Views/uEditorUnidadesMedida.pas @@ -0,0 +1,181 @@ +{ +=============================================================================== + Copyright () 2006. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: 22-05-2006 + Versin actual: 1.0.0 + Fecha versin actual: 22-05-2006 +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uEditorUnidadesMedida; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, DB, StdCtrls, DBCtrls, uDADataTable, ActnList, + uIEditorUnidadesMedida, uCustomEditor, uGUIBase, ExtCtrls, + ComCtrls, uBizUnidadesMedida, uUnidadesMedidaController, uDAInterfaces; + +type + TfEditorUnidadesMedida = class(TCustomEditor, IEditorUnidadesMedida) + ActionList1: TActionList; + DADataSource: TDADataSource; + ListaUnidadesMedida: TDBLookupListBox; + actAnadir: TAction; + actEliminar: TAction; + bEliminar: TButton; + actAceptar: TAction; + actCancelar: TAction; + bAceptar: TButton; + bCancelar: TButton; + actCerrar: TAction; + PageControl1: TPageControl; + TabSheet1: TTabSheet; + Label1: TLabel; + Label2: TLabel; + Bevel1: TBevel; + eCategoria: TLabel; + editUnidadMedida: TEdit; + bAnadir: TButton; + procedure FormShow(Sender: TObject); + procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); + + procedure actAnadirExecute(Sender: TObject); + procedure actEliminarExecute(Sender: TObject); + procedure actAceptarExecute(Sender: TObject); + procedure actCancelarExecute(Sender: TObject); + procedure actCerrarExecute(Sender: TObject); + procedure actAnadirUpdate(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + protected + FUnidadesMedida: IBizUnidadMedida; + FController: IUnidadesMedidaController; + function GetUnidadesMedida: IBizUnidadMedida; + procedure SetUnidadesMedida(const Value: IBizUnidadMedida); + function GetController : IUnidadesMedidaController; + procedure SetController (const Value : IUnidadesMedidaController); + public + property UnidadesMedida: IBizUnidadMedida read GetUnidadesMedida write SetUnidadesMedida; + property Controller : IUnidadesMedidaController read GetController write SetController; + end; + + +implementation +{$R *.dfm} + +{ TfEditorUnidadesMedida } + +uses + uDialogUtils; + +function TfEditorUnidadesMedida.GetController: IUnidadesMedidaController; +begin + Result := FController; +end; + +function TfEditorUnidadesMedida.GetUnidadesMedida: IBizUnidadMedida; +begin + Result := FUnidadesMedida; +end; + +procedure TfEditorUnidadesMedida.SetController(const Value: IUnidadesMedidaController); +begin + FController := Value; +end; + +procedure TfEditorUnidadesMedida.SetUnidadesMedida(const Value: IBizUnidadMedida); +begin + FUnidadesMedida := Value; + DADataSource.DataTable := (FUnidadesMedida as IBizUnidadMedida).DataTable; + DADataSource.DataTable.Open; +end; + +procedure TfEditorUnidadesMedida.actAnadirExecute(Sender: TObject); +begin + if not FController.Localizar(UnidadesMedida, editUnidadMedida.Text) then + begin + UnidadesMedida.Append; + UnidadesMedida.DESCRIPCION := editUnidadMedida.Text; + UnidadesMedida.Post; + editUnidadMedida.Clear; + ListaUnidadesMedida.SetFocus; + end + else + ShowErrorMessage('Ya existe la unidad ' + editUnidadMedida.Text, + 'Ya existe la unidad ''' + editUnidadMedida.Text + ''' en la lista.'); +end; + +procedure TfEditorUnidadesMedida.actEliminarExecute(Sender: TObject); +begin + UnidadesMedida.Delete; + ListaUnidadesMedida.SetFocus; +end; + +procedure TfEditorUnidadesMedida.actEliminarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := (FUnidadesMedida.DataTable.RecordCount > 0) and + (Length(ListaUnidadesMedida.SelectedItem) > 0); + +end; + +procedure TfEditorUnidadesMedida.CustomEditorClose(Sender: TObject; var Action: TCloseAction); +begin + FUnidadesMedida := Nil; + FController := Nil; +end; + +procedure TfEditorUnidadesMedida.actAceptarExecute(Sender: TObject); +begin + try + UnidadesMedida.DataTable.ApplyUpdates; + except + on E : Exception do begin + UnidadesMedida.DataTable.CancelUpdates; + ShowErrorMessage('Error al guardar cambios', 'Se ha producido un error grave', E); + exit; + end; + end; + actCerrar.Execute; +end; + +procedure TfEditorUnidadesMedida.actCancelarExecute(Sender: TObject); +begin + UnidadesMedida.DataTable.CancelUpdates; + actCerrar.Execute; +end; + +procedure TfEditorUnidadesMedida.actCerrarExecute(Sender: TObject); +begin + Close; +end; + +procedure TfEditorUnidadesMedida.actAnadirUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := (Length(editUnidadMedida.Text) > 0) +end; + +procedure TfEditorUnidadesMedida.FormShow(Sender: TObject); +begin + if not FUnidadesMedida.DataTable.Active then + FUnidadesMedida.DataTable.Active := true; + + FUnidadesMedida.DataTable.Sort(['DESCRIPCION'], [sdAscending]); + EditUnidadMedida.SetFocus; +end; + +end. diff --git a/Source/Modulos/Unidades de medida/Views/uUnidadesMedidaViewRegister.dcu b/Source/Modulos/Unidades de medida/Views/uUnidadesMedidaViewRegister.dcu new file mode 100644 index 0000000..c01dfb7 Binary files /dev/null and b/Source/Modulos/Unidades de medida/Views/uUnidadesMedidaViewRegister.dcu differ diff --git a/Source/Modulos/Unidades de medida/Views/uUnidadesMedidaViewRegister.pas b/Source/Modulos/Unidades de medida/Views/uUnidadesMedidaViewRegister.pas new file mode 100644 index 0000000..99b112d --- /dev/null +++ b/Source/Modulos/Unidades de medida/Views/uUnidadesMedidaViewRegister.pas @@ -0,0 +1,23 @@ +unit uUnidadesMedidaViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorUnidadesMedida; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorUnidadesMedida, 'EditorUnidadesMedida'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorUnidadesMedida); +end; + +end. diff --git a/Source/Servicios/FactuGES.RODL b/Source/Servicios/FactuGES.RODL new file mode 100644 index 0000000..dfbb966 --- /dev/null +++ b/Source/Servicios/FactuGES.RODL @@ -0,0 +1,922 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Servicios/FactuGES_Intf.dcu b/Source/Servicios/FactuGES_Intf.dcu new file mode 100644 index 0000000..3e61fdd Binary files /dev/null and b/Source/Servicios/FactuGES_Intf.dcu differ diff --git a/Source/Servicios/FactuGES_Intf.pas b/Source/Servicios/FactuGES_Intf.pas new file mode 100644 index 0000000..6059f5d --- /dev/null +++ b/Source/Servicios/FactuGES_Intf.pas @@ -0,0 +1,2687 @@ +unit FactuGES_Intf; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ Do not modify this unit manually, or your changes will be lost when this } +{ unit is regenerated the next time you compile the project. } +{----------------------------------------------------------------------------} + +{$I RemObjects.inc} + +interface + +uses + {vcl:} Classes, TypInfo, + {RemObjects:} uROXMLIntf, uROClasses, uROClient, uROTypes, uROClientIntf, + {Used RODLs:} DataAbstract4_Intf; + +const + { Library ID } + LibraryUID = '{99553DD5-13B5-40EB-B7E6-D2B9A7C1B4D6}'; + TargetNamespace = ''; + + { Service Interface ID's } + IsrvContactos_IID : TGUID = '{28CCDC07-A3A4-4917-89B4-64423DC70C9D}'; + IsrvLogin_IID : TGUID = '{399F9DB4-1B34-4140-AB6E-3BC10C0A7034}'; + IsrvInventario_IID : TGUID = '{36AF71D2-B19F-45DA-9C02-576B3A21158A}'; + IsrvHistoricoMovimientos_IID : TGUID = '{F1BE4D4C-017B-476D-A009-0D1B8D1A20CE}'; + IsrvEmpresas_IID : TGUID = '{590F06D1-26B4-435B-B636-50CB8FFE6353}'; + IsrvConfiguracion_IID : TGUID = '{0882B8A4-C8AA-424E-8FC1-C6226B670522}'; + IsrvFamilias_IID : TGUID = '{D351175C-CBFD-4328-BF2A-FDC0B05A6308}'; + IsrvFormasPago_IID : TGUID = '{38AA9F85-B454-4A87-B6E8-E9C8BB2A17D9}'; + IsrvTiposIVA_IID : TGUID = '{09B44AB5-6212-448A-8DF2-A503E3F2C9B1}'; + IsrvUsuarios_IID : TGUID = '{29388459-1A0B-46BE-AF9E-66A9E7AABB0B}'; + IsrvAlmacenes_IID : TGUID = '{F984D2A1-9922-4790-9B2D-A78ACFDAE82B}'; + IsrvArticulos_IID : TGUID = '{CFBE5841-DF0F-48AD-853E-A35FDA989E6E}'; + IsrvRecibosCliente_IID : TGUID = '{3B68252A-EE6A-4D37-B250-93F2DB940DDF}'; + IsrvRecibosProveedor_IID : TGUID = '{22580F16-8FFC-4FE0-BCDD-5533D5DB1F55}'; + IsrvRemesasCliente_IID : TGUID = '{33F414D0-0D0B-4384-96CB-D94BC97A0C39}'; + IsrvRemesasProveedor_IID : TGUID = '{6540A037-9847-4650-89BB-7B349C6004DF}'; + IsrvFacturasCliente_IID : TGUID = '{56B4FFF0-AB1B-46B2-BA16-ABD5360F6311}'; + IsrvFacturasProveedor_IID : TGUID = '{7655160C-7023-452E-BB0E-C97E29B915E7}'; + IsrvPresupuestosCliente_IID : TGUID = '{8A06D5A7-8461-4F6E-8A8B-EC49C84C45D1}'; + IsrvPedidosProveedor_IID : TGUID = '{3DCC03E4-E9CE-4798-99D4-7170C9CF815B}'; + IsrvAlbaranesCliente_IID : TGUID = '{6E910718-9AB0-47BB-9875-B0DE66A68D7A}'; + IsrvAlbaranesProveedor_IID : TGUID = '{66B71884-5CE4-4574-B825-60CDA956B628}'; + IsrvReferencias_IID : TGUID = '{B957528D-3BE1-412D-A35E-801C97CCD252}'; + IsrvUnidadesMedida_IID : TGUID = '{8B4C72F0-5ACE-46FF-9F00-D70C2B611652}'; + IsrvFabricantes_IID : TGUID = '{E26547E0-9E61-4BC8-B154-49ACC9339875}'; + IsrvObras_IID : TGUID = '{39277224-A0BD-4249-9ACA-39D238798B25}'; + IsrvProvinciasPoblaciones_IID : TGUID = '{551D8756-51AE-4929-B235-107CD7B05C38}'; + IsrvGestorDocumentos_IID : TGUID = '{2FFB4EEA-F314-442C-920A-E1D37F378929}'; + IsrvGestorInformes_IID : TGUID = '{9ACA4D42-EA9A-4D2C-B233-19CD299EAE91}'; + + { Event ID's } + +type + { Forward declarations } + IsrvContactos = interface; + IsrvLogin = interface; + IsrvInventario = interface; + IsrvHistoricoMovimientos = interface; + IsrvEmpresas = interface; + IsrvConfiguracion = interface; + IsrvFamilias = interface; + IsrvFormasPago = interface; + IsrvTiposIVA = interface; + IsrvUsuarios = interface; + IsrvAlmacenes = interface; + IsrvArticulos = interface; + IsrvRecibosCliente = interface; + IsrvRecibosProveedor = interface; + IsrvRemesasCliente = interface; + IsrvRemesasProveedor = interface; + IsrvFacturasCliente = interface; + IsrvFacturasProveedor = interface; + IsrvPresupuestosCliente = interface; + IsrvPedidosProveedor = interface; + IsrvAlbaranesCliente = interface; + IsrvAlbaranesProveedor = interface; + IsrvReferencias = interface; + IsrvUnidadesMedida = interface; + IsrvFabricantes = interface; + IsrvObras = interface; + IsrvProvinciasPoblaciones = interface; + IsrvGestorDocumentos = interface; + IsrvGestorInformes = interface; + + TRdxEmpresasArray = class; + TIntegerArray = class; + + TRdxLoginInfo = class; + + + + { Enumerateds } + TRdxAlmacenes = (TRdxAlmacenes_Presupuestos); + + { TRdxLoginInfo } + TRdxLoginInfo = class(TROComplexType) + private + fUserID: Integer; + fSessionID: AnsiString; + fUsuario: AnsiString; + fPerfiles: StringArray; + fEmpresas: TRdxEmpresasArray; + function GetPerfiles: StringArray; + function GetEmpresas: TRdxEmpresasArray; + public + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property UserID:Integer read fUserID write fUserID; + property SessionID:AnsiString read fSessionID write fSessionID; + property Usuario:AnsiString read fUsuario write fUsuario; + property Perfiles:StringArray read GetPerfiles write fPerfiles; + property Empresas:TRdxEmpresasArray read GetEmpresas write fEmpresas; + end; + + { TRdxLoginInfoCollection } + TRdxLoginInfoCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): TRdxLoginInfo; + procedure SetItems(aIndex: integer; const Value: TRdxLoginInfo); + public + constructor Create; overload; + function Add: TRdxLoginInfo; reintroduce; + property Items[Index: integer]:TRdxLoginInfo read GetItems write SetItems; default; + end; + + { TRdxEmpresasArray } + TRdxEmpresasArray_Integer = array of Integer; + TRdxEmpresasArray = class(TROArray) + private + fCount: Integer; + fItems : TRdxEmpresasArray_Integer; + protected + procedure Grow; virtual; + function GetItems(aIndex: integer): Integer; + procedure SetItems(aIndex: integer; const Value: Integer); + function GetCount: integer; override; + public + class function GetItemType: PTypeInfo; override; + class function GetItemSize: integer; override; + + function GetItemRef(aIndex: integer): pointer; override; + procedure Clear; override; + procedure Delete(aIndex: integer); override; + procedure Resize(ElementCount: integer); override; + + procedure Assign(iSource:TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + function Add(const Value:Integer): integer; + function GetIndex(const aPropertyName : string; + const aPropertyValue : Variant; + StartFrom : integer = 0; + Options : TROSearchOptions = [soIgnoreCase]) : integer; override; + + property Count : integer read GetCount; + property Items[Index: integer]:Integer read GetItems write SetItems; default; + property InnerArray: TRdxEmpresasArray_Integer read fItems; + end; + + { TIntegerArray } + TIntegerArray_Integer = array of Integer; + TIntegerArray = class(TROArray) + private + fCount: Integer; + fItems : TIntegerArray_Integer; + protected + procedure Grow; virtual; + function GetItems(aIndex: integer): Integer; + procedure SetItems(aIndex: integer; const Value: Integer); + function GetCount: integer; override; + public + class function GetItemType: PTypeInfo; override; + class function GetItemSize: integer; override; + + function GetItemRef(aIndex: integer): pointer; override; + procedure Clear; override; + procedure Delete(aIndex: integer); override; + procedure Resize(ElementCount: integer); override; + + procedure Assign(iSource:TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + function Add(const Value:Integer): integer; + function GetIndex(const aPropertyName : string; + const aPropertyValue : Variant; + StartFrom : integer = 0; + Options : TROSearchOptions = [soIgnoreCase]) : integer; override; + + property Count : integer read GetCount; + property Items[Index: integer]:Integer read GetItems write SetItems; default; + property InnerArray: TIntegerArray_Integer read fItems; + end; + + { IsrvContactos } + IsrvContactos = interface(IDataAbstractService) + ['{28CCDC07-A3A4-4917-89B4-64423DC70C9D}'] + function GenerarInformeFichaEmpleado(const ListaID: TIntegerArray): Binary; + function GenerarInformeEtiquetas(const ListaID: TIntegerArray): Binary; + function DarListaDescripcionesProveedores: AnsiString; + function DarListaContratosEmpleados: AnsiString; + end; + + { CosrvContactos } + CosrvContactos = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvContactos; + end; + + { TsrvContactos_Proxy } + TsrvContactos_Proxy = class(TDataAbstractService_Proxy, IsrvContactos) + protected + function __GetInterfaceName:string; override; + + function GenerarInformeFichaEmpleado(const ListaID: TIntegerArray): Binary; + function GenerarInformeEtiquetas(const ListaID: TIntegerArray): Binary; + function DarListaDescripcionesProveedores: AnsiString; + function DarListaContratosEmpleados: AnsiString; + end; + + { IsrvLogin } + IsrvLogin = interface(IDataAbstractService) + ['{399F9DB4-1B34-4140-AB6E-3BC10C0A7034}'] + function Login(const User: AnsiString; const Password: AnsiString; out LoginInfo: TRdxLoginInfo): Boolean; + procedure Logout; + function Ping: Boolean; + end; + + { CosrvLogin } + CosrvLogin = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvLogin; + end; + + { TsrvLogin_Proxy } + TsrvLogin_Proxy = class(TDataAbstractService_Proxy, IsrvLogin) + protected + function __GetInterfaceName:string; override; + + function Login(const User: AnsiString; const Password: AnsiString; out LoginInfo: TRdxLoginInfo): Boolean; + procedure Logout; + function Ping: Boolean; + end; + + { IsrvInventario } + IsrvInventario = interface(IDataAbstractService) + ['{36AF71D2-B19F-45DA-9C02-576B3A21158A}'] + end; + + { CosrvInventario } + CosrvInventario = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvInventario; + end; + + { TsrvInventario_Proxy } + TsrvInventario_Proxy = class(TDataAbstractService_Proxy, IsrvInventario) + protected + function __GetInterfaceName:string; override; + + end; + + { IsrvHistoricoMovimientos } + IsrvHistoricoMovimientos = interface(IDataAbstractService) + ['{F1BE4D4C-017B-476D-A009-0D1B8D1A20CE}'] + end; + + { CosrvHistoricoMovimientos } + CosrvHistoricoMovimientos = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvHistoricoMovimientos; + end; + + { TsrvHistoricoMovimientos_Proxy } + TsrvHistoricoMovimientos_Proxy = class(TDataAbstractService_Proxy, IsrvHistoricoMovimientos) + protected + function __GetInterfaceName:string; override; + + end; + + { IsrvEmpresas } + IsrvEmpresas = interface(IDataAbstractService) + ['{590F06D1-26B4-435B-B636-50CB8FFE6353}'] + function DarListaFormasPago: Binary; + function DarListaTiposIVA: Binary; + function DarListaAlmacenes(const ID_EMPRESA: Integer): Binary; + end; + + { CosrvEmpresas } + CosrvEmpresas = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvEmpresas; + end; + + { TsrvEmpresas_Proxy } + TsrvEmpresas_Proxy = class(TDataAbstractService_Proxy, IsrvEmpresas) + protected + function __GetInterfaceName:string; override; + + function DarListaFormasPago: Binary; + function DarListaTiposIVA: Binary; + function DarListaAlmacenes(const ID_EMPRESA: Integer): Binary; + end; + + { IsrvConfiguracion } + IsrvConfiguracion = interface(IDataAbstractService) + ['{0882B8A4-C8AA-424E-8FC1-C6226B670522}'] + function darValor(const CODIGO: AnsiString; const ValorPorDefecto: AnsiString): AnsiString; + end; + + { CosrvConfiguracion } + CosrvConfiguracion = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvConfiguracion; + end; + + { TsrvConfiguracion_Proxy } + TsrvConfiguracion_Proxy = class(TDataAbstractService_Proxy, IsrvConfiguracion) + protected + function __GetInterfaceName:string; override; + + function darValor(const CODIGO: AnsiString; const ValorPorDefecto: AnsiString): AnsiString; + end; + + { IsrvFamilias } + IsrvFamilias = interface(IDataAbstractService) + ['{D351175C-CBFD-4328-BF2A-FDC0B05A6308}'] + end; + + { CosrvFamilias } + CosrvFamilias = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFamilias; + end; + + { TsrvFamilias_Proxy } + TsrvFamilias_Proxy = class(TDataAbstractService_Proxy, IsrvFamilias) + protected + function __GetInterfaceName:string; override; + + end; + + { IsrvFormasPago } + IsrvFormasPago = interface(IDataAbstractService) + ['{38AA9F85-B454-4A87-B6E8-E9C8BB2A17D9}'] + end; + + { CosrvFormasPago } + CosrvFormasPago = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFormasPago; + end; + + { TsrvFormasPago_Proxy } + TsrvFormasPago_Proxy = class(TDataAbstractService_Proxy, IsrvFormasPago) + protected + function __GetInterfaceName:string; override; + + end; + + { IsrvTiposIVA } + IsrvTiposIVA = interface(IDataAbstractService) + ['{09B44AB5-6212-448A-8DF2-A503E3F2C9B1}'] + end; + + { CosrvTiposIVA } + CosrvTiposIVA = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvTiposIVA; + end; + + { TsrvTiposIVA_Proxy } + TsrvTiposIVA_Proxy = class(TDataAbstractService_Proxy, IsrvTiposIVA) + protected + function __GetInterfaceName:string; override; + + end; + + { IsrvUsuarios } + IsrvUsuarios = interface(IDataAbstractService) + ['{29388459-1A0B-46BE-AF9E-66A9E7AABB0B}'] + end; + + { CosrvUsuarios } + CosrvUsuarios = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvUsuarios; + end; + + { TsrvUsuarios_Proxy } + TsrvUsuarios_Proxy = class(TDataAbstractService_Proxy, IsrvUsuarios) + protected + function __GetInterfaceName:string; override; + + end; + + { IsrvAlmacenes } + IsrvAlmacenes = interface(IDataAbstractService) + ['{F984D2A1-9922-4790-9B2D-A78ACFDAE82B}'] + function DarListaAlmacenes(const IDEmpresa: Integer): Binary; + end; + + { CosrvAlmacenes } + CosrvAlmacenes = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvAlmacenes; + end; + + { TsrvAlmacenes_Proxy } + TsrvAlmacenes_Proxy = class(TDataAbstractService_Proxy, IsrvAlmacenes) + protected + function __GetInterfaceName:string; override; + + function DarListaAlmacenes(const IDEmpresa: Integer): Binary; + end; + + { IsrvArticulos } + IsrvArticulos = interface(IDataAbstractService) + ['{CFBE5841-DF0F-48AD-853E-A35FDA989E6E}'] + function DarListaProveedoresConArticulos(const IDEmpresa: Integer): Binary; + end; + + { CosrvArticulos } + CosrvArticulos = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvArticulos; + end; + + { TsrvArticulos_Proxy } + TsrvArticulos_Proxy = class(TDataAbstractService_Proxy, IsrvArticulos) + protected + function __GetInterfaceName:string; override; + + function DarListaProveedoresConArticulos(const IDEmpresa: Integer): Binary; + end; + + { IsrvRecibosCliente } + IsrvRecibosCliente = interface(IDataAbstractService) + ['{3B68252A-EE6A-4D37-B250-93F2DB940DDF}'] + function GenerarInforme(const ListaID: TIntegerArray): Binary; + end; + + { CosrvRecibosCliente } + CosrvRecibosCliente = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvRecibosCliente; + end; + + { TsrvRecibosCliente_Proxy } + TsrvRecibosCliente_Proxy = class(TDataAbstractService_Proxy, IsrvRecibosCliente) + protected + function __GetInterfaceName:string; override; + + function GenerarInforme(const ListaID: TIntegerArray): Binary; + end; + + { IsrvRecibosProveedor } + IsrvRecibosProveedor = interface(IDataAbstractService) + ['{22580F16-8FFC-4FE0-BCDD-5533D5DB1F55}'] + end; + + { CosrvRecibosProveedor } + CosrvRecibosProveedor = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvRecibosProveedor; + end; + + { TsrvRecibosProveedor_Proxy } + TsrvRecibosProveedor_Proxy = class(TDataAbstractService_Proxy, IsrvRecibosProveedor) + protected + function __GetInterfaceName:string; override; + + end; + + { IsrvRemesasCliente } + IsrvRemesasCliente = interface(IDataAbstractService) + ['{33F414D0-0D0B-4384-96CB-D94BC97A0C39}'] + end; + + { CosrvRemesasCliente } + CosrvRemesasCliente = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvRemesasCliente; + end; + + { TsrvRemesasCliente_Proxy } + TsrvRemesasCliente_Proxy = class(TDataAbstractService_Proxy, IsrvRemesasCliente) + protected + function __GetInterfaceName:string; override; + + end; + + { IsrvRemesasProveedor } + IsrvRemesasProveedor = interface(IDataAbstractService) + ['{6540A037-9847-4650-89BB-7B349C6004DF}'] + end; + + { CosrvRemesasProveedor } + CosrvRemesasProveedor = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvRemesasProveedor; + end; + + { TsrvRemesasProveedor_Proxy } + TsrvRemesasProveedor_Proxy = class(TDataAbstractService_Proxy, IsrvRemesasProveedor) + protected + function __GetInterfaceName:string; override; + + end; + + { IsrvFacturasCliente } + IsrvFacturasCliente = interface(IDataAbstractService) + ['{56B4FFF0-AB1B-46B2-BA16-ABD5360F6311}'] + function GenerarInforme(const ListaID: TIntegerArray; const VerSello: Boolean; const VerCopia: Boolean): Binary; + function GenerarInformeEnWord(const ID: Integer; const VerSello: Boolean): Binary; + function GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerSello: Boolean): Binary; + end; + + { CosrvFacturasCliente } + CosrvFacturasCliente = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFacturasCliente; + end; + + { TsrvFacturasCliente_Proxy } + TsrvFacturasCliente_Proxy = class(TDataAbstractService_Proxy, IsrvFacturasCliente) + protected + function __GetInterfaceName:string; override; + + function GenerarInforme(const ListaID: TIntegerArray; const VerSello: Boolean; const VerCopia: Boolean): Binary; + function GenerarInformeEnWord(const ID: Integer; const VerSello: Boolean): Binary; + function GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerSello: Boolean): Binary; + end; + + { IsrvFacturasProveedor } + IsrvFacturasProveedor = interface(IDataAbstractService) + ['{7655160C-7023-452E-BB0E-C97E29B915E7}'] + end; + + { CosrvFacturasProveedor } + CosrvFacturasProveedor = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFacturasProveedor; + end; + + { TsrvFacturasProveedor_Proxy } + TsrvFacturasProveedor_Proxy = class(TDataAbstractService_Proxy, IsrvFacturasProveedor) + protected + function __GetInterfaceName:string; override; + + end; + + { IsrvPresupuestosCliente } + IsrvPresupuestosCliente = interface(IDataAbstractService) + ['{8A06D5A7-8461-4F6E-8A8B-EC49C84C45D1}'] + function GenerarInforme(const ListaID: TIntegerArray; const VerSello: Integer): Binary; + function GenerarInformeEnWord(const ID: Integer; const VerSello: Integer): Binary; + function GenerarCertificadoTrabajosEnWord(const ID: Integer): Binary; + function GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerSello: Integer): Binary; + end; + + { CosrvPresupuestosCliente } + CosrvPresupuestosCliente = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvPresupuestosCliente; + end; + + { TsrvPresupuestosCliente_Proxy } + TsrvPresupuestosCliente_Proxy = class(TDataAbstractService_Proxy, IsrvPresupuestosCliente) + protected + function __GetInterfaceName:string; override; + + function GenerarInforme(const ListaID: TIntegerArray; const VerSello: Integer): Binary; + function GenerarInformeEnWord(const ID: Integer; const VerSello: Integer): Binary; + function GenerarCertificadoTrabajosEnWord(const ID: Integer): Binary; + function GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerSello: Integer): Binary; + end; + + { IsrvPedidosProveedor } + IsrvPedidosProveedor = interface(IDataAbstractService) + ['{3DCC03E4-E9CE-4798-99D4-7170C9CF815B}'] + function GenerarInforme(const ListaID: TIntegerArray; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; + function GenerarInformeEnWord(const ID: Integer; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; + function GenerarInformeEnPDF(const ListaID: TIntegerArray; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; + end; + + { CosrvPedidosProveedor } + CosrvPedidosProveedor = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvPedidosProveedor; + end; + + { TsrvPedidosProveedor_Proxy } + TsrvPedidosProveedor_Proxy = class(TDataAbstractService_Proxy, IsrvPedidosProveedor) + protected + function __GetInterfaceName:string; override; + + function GenerarInforme(const ListaID: TIntegerArray; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; + function GenerarInformeEnWord(const ID: Integer; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; + function GenerarInformeEnPDF(const ListaID: TIntegerArray; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; + end; + + { IsrvAlbaranesCliente } + IsrvAlbaranesCliente = interface(IDataAbstractService) + ['{6E910718-9AB0-47BB-9875-B0DE66A68D7A}'] + function GenerarInforme(const ListaID: TIntegerArray): Binary; + function GenerarInformeEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary; + function GenerarInformeEnWord(const ID: Integer): Binary; + function GenerarInformeEnPDF(const ListaID: TIntegerArray): Binary; + end; + + { CosrvAlbaranesCliente } + CosrvAlbaranesCliente = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvAlbaranesCliente; + end; + + { TsrvAlbaranesCliente_Proxy } + TsrvAlbaranesCliente_Proxy = class(TDataAbstractService_Proxy, IsrvAlbaranesCliente) + protected + function __GetInterfaceName:string; override; + + function GenerarInforme(const ListaID: TIntegerArray): Binary; + function GenerarInformeEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary; + function GenerarInformeEnWord(const ID: Integer): Binary; + function GenerarInformeEnPDF(const ListaID: TIntegerArray): Binary; + end; + + { IsrvAlbaranesProveedor } + IsrvAlbaranesProveedor = interface(IDataAbstractService) + ['{66B71884-5CE4-4574-B825-60CDA956B628}'] + function GenerarInforme(const ListaID: TIntegerArray; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; + function GenerarInformeEnWord(const ID: Integer; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; + function GenerarInformeEnPDF(const ListaID: TIntegerArray; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; + end; + + { CosrvAlbaranesProveedor } + CosrvAlbaranesProveedor = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvAlbaranesProveedor; + end; + + { TsrvAlbaranesProveedor_Proxy } + TsrvAlbaranesProveedor_Proxy = class(TDataAbstractService_Proxy, IsrvAlbaranesProveedor) + protected + function __GetInterfaceName:string; override; + + function GenerarInforme(const ListaID: TIntegerArray; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; + function GenerarInformeEnWord(const ID: Integer; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; + function GenerarInformeEnPDF(const ListaID: TIntegerArray; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; + end; + + { IsrvReferencias } + + { Description: + Para uso interno del servidor. Para modulo de gestion de referencias del cliente } + IsrvReferencias = interface(IDataAbstractService) + ['{B957528D-3BE1-412D-A35E-801C97CCD252}'] + function DarNuevaReferencia(const NombreReferencia: AnsiString; const EmpresaID: Integer): AnsiString; + function IncrementarValorReferencia(const NombreReferencia: AnsiString; const Valor: AnsiString; const EmpresaID: Integer): Boolean; + end; + + { CosrvReferencias } + CosrvReferencias = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvReferencias; + end; + + { TsrvReferencias_Proxy } + TsrvReferencias_Proxy = class(TDataAbstractService_Proxy, IsrvReferencias) + protected + function __GetInterfaceName:string; override; + + function DarNuevaReferencia(const NombreReferencia: AnsiString; const EmpresaID: Integer): AnsiString; + function IncrementarValorReferencia(const NombreReferencia: AnsiString; const Valor: AnsiString; const EmpresaID: Integer): Boolean; + end; + + { IsrvUnidadesMedida } + IsrvUnidadesMedida = interface(IDataAbstractService) + ['{8B4C72F0-5ACE-46FF-9F00-D70C2B611652}'] + end; + + { CosrvUnidadesMedida } + CosrvUnidadesMedida = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvUnidadesMedida; + end; + + { TsrvUnidadesMedida_Proxy } + TsrvUnidadesMedida_Proxy = class(TDataAbstractService_Proxy, IsrvUnidadesMedida) + protected + function __GetInterfaceName:string; override; + + end; + + { IsrvFabricantes } + IsrvFabricantes = interface(IDataAbstractService) + ['{E26547E0-9E61-4BC8-B154-49ACC9339875}'] + end; + + { CosrvFabricantes } + CosrvFabricantes = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFabricantes; + end; + + { TsrvFabricantes_Proxy } + TsrvFabricantes_Proxy = class(TDataAbstractService_Proxy, IsrvFabricantes) + protected + function __GetInterfaceName:string; override; + + end; + + { IsrvObras } + IsrvObras = interface(IDataAbstractService) + ['{39277224-A0BD-4249-9ACA-39D238798B25}'] + function DarListaObras(const IDEmpresa: Integer): Binary; + end; + + { CosrvObras } + CosrvObras = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvObras; + end; + + { TsrvObras_Proxy } + TsrvObras_Proxy = class(TDataAbstractService_Proxy, IsrvObras) + protected + function __GetInterfaceName:string; override; + + function DarListaObras(const IDEmpresa: Integer): Binary; + end; + + { IsrvProvinciasPoblaciones } + IsrvProvinciasPoblaciones = interface + ['{551D8756-51AE-4929-B235-107CD7B05C38}'] + function DarListaProvincias: Binary; + function DarListaPoblaciones(const ID_Provincia: Integer): Binary; + end; + + { CosrvProvinciasPoblaciones } + CosrvProvinciasPoblaciones = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvProvinciasPoblaciones; + end; + + { TsrvProvinciasPoblaciones_Proxy } + TsrvProvinciasPoblaciones_Proxy = class(TROProxy, IsrvProvinciasPoblaciones) + protected + function __GetInterfaceName:string; override; + + function DarListaProvincias: Binary; + function DarListaPoblaciones(const ID_Provincia: Integer): Binary; + end; + + { IsrvGestorDocumentos } + IsrvGestorDocumentos = interface(IDataAbstractService) + ['{2FFB4EEA-F314-442C-920A-E1D37F378929}'] + function DarListaFicheros(const Almacen: TRdxAlmacenes; const ID: Integer): StringArray; + function DescargarFichero(const Almacen: TRdxAlmacenes; const ID: Integer; const NombreFichero: AnsiString): Binary; + function SubirFichero(const Almacen: TRdxAlmacenes; const ID: Integer; const NombreFichero: AnsiString; const Fichero: Binary): Boolean; + function EliminarFichero(const Almacen: TRdxAlmacenes; const ID: Integer; const NombreFichero: AnsiString): Boolean; + function EliminarID(const Almacen: TRdxAlmacenes; const ID: Integer): Boolean; + end; + + { CosrvGestorDocumentos } + CosrvGestorDocumentos = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvGestorDocumentos; + end; + + { TsrvGestorDocumentos_Proxy } + TsrvGestorDocumentos_Proxy = class(TDataAbstractService_Proxy, IsrvGestorDocumentos) + protected + function __GetInterfaceName:string; override; + + function DarListaFicheros(const Almacen: TRdxAlmacenes; const ID: Integer): StringArray; + function DescargarFichero(const Almacen: TRdxAlmacenes; const ID: Integer; const NombreFichero: AnsiString): Binary; + function SubirFichero(const Almacen: TRdxAlmacenes; const ID: Integer; const NombreFichero: AnsiString; const Fichero: Binary): Boolean; + function EliminarFichero(const Almacen: TRdxAlmacenes; const ID: Integer; const NombreFichero: AnsiString): Boolean; + function EliminarID(const Almacen: TRdxAlmacenes; const ID: Integer): Boolean; + end; + + { IsrvGestorInformes } + IsrvGestorInformes = interface(IDataAbstractService) + ['{9ACA4D42-EA9A-4D2C-B233-19CD299EAE91}'] + function GenerarInformeIVAClientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; + const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeIVAProveedores(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDProveedores: TIntegerArray; + const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoFacturasCli(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; + const FechaVenFin: Variant; const ListadoIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoFacturasProv(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; + const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoFacturasCliPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; + const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoFacturasProvPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; + const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoRecibosCliente(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; + const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoRecibosProveedor(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; + const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoRecibosCliPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; + const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoRecibosProvPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; + const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoPresupuestos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; + const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoPedidos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDProveedores: TIntegerArray; + const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + end; + + { CosrvGestorInformes } + CosrvGestorInformes = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvGestorInformes; + end; + + { TsrvGestorInformes_Proxy } + TsrvGestorInformes_Proxy = class(TDataAbstractService_Proxy, IsrvGestorInformes) + protected + function __GetInterfaceName:string; override; + + function GenerarInformeIVAClientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; + const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeIVAProveedores(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDProveedores: TIntegerArray; + const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoFacturasCli(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; + const FechaVenFin: Variant; const ListadoIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoFacturasProv(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; + const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoFacturasCliPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; + const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoFacturasProvPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; + const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoRecibosCliente(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; + const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoRecibosProveedor(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; + const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoRecibosCliPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; + const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoRecibosProvPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; + const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoPresupuestos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; + const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoPedidos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDProveedores: TIntegerArray; + const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + end; + +implementation + +uses + {vcl:} SysUtils, + {RemObjects:} uROEventRepository, uROSerializer, uRORes; + +{ TRdxEmpresasArray } + +procedure TRdxEmpresasArray.Assign(iSource: TPersistent); +var lSource:TRdxEmpresasArray; + i:integer; +begin + if (iSource is TRdxEmpresasArray) then begin + lSource := TRdxEmpresasArray(iSource); + Clear(); + Resize(lSource.Count); + + for i := 0 to Count-1 do begin + Items[i] := lSource.Items[i]; + end; + end + else begin + inherited Assign(iSource); + end; +end; + +class function TRdxEmpresasArray.GetItemType: PTypeInfo; +begin + result := TypeInfo(Integer); +end; + +class function TRdxEmpresasArray.GetItemSize: integer; +begin + result := SizeOf(Integer); +end; + +function TRdxEmpresasArray.GetItems(aIndex: integer): Integer; +begin + if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]); + result := fItems[aIndex]; +end; + +function TRdxEmpresasArray.GetItemRef(aIndex: integer): pointer; +begin + if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]); + result := @fItems[aIndex]; +end; + +procedure TRdxEmpresasArray.Clear; +begin + SetLength(fItems, 0); + FCount := 0; +end; + +procedure TRdxEmpresasArray.Delete(aIndex: integer); +var i: integer; +begin + if (aIndex>=Count) then RaiseError(err_InvalidIndex, [aIndex]); + + if (aIndex= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]); + fItems[aIndex] := Value; +end; + +procedure TRdxEmpresasArray.Resize(ElementCount: integer); +begin + if fCount = ElementCount then Exit; + SetLength(fItems, ElementCount); + FCount := ElementCount; +end; + +function TRdxEmpresasArray.GetCount: integer; +begin + result := FCount; +end; + +procedure TRdxEmpresasArray.Grow; +var + Delta, Capacity: Integer; +begin + Capacity := Length(fItems); + if Capacity > 64 then + Delta := Capacity div 4 + else + if Capacity > 8 then + Delta := 16 + else + Delta := 4; + SetLength(fItems, Capacity + Delta); +end; + +function TRdxEmpresasArray.Add(const Value: Integer): integer; +begin + Result := Count; + if Length(fItems) = Result then + Grow; + fItems[result] := Value; + Inc(fCount); +end; + +function TRdxEmpresasArray.GetIndex(const aPropertyName: string; + const aPropertyValue: Variant; StartFrom: integer; + Options: TROSearchOptions): integer; +begin + result := -1; +end; + +procedure TRdxEmpresasArray.ReadComplex(ASerializer: TObject); +var + lval: Integer; + i: integer; +begin + for i := 0 to Count-1 do begin + with TROSerializer(ASerializer) do + ReadInteger(GetArrayElementName(GetItemType, GetItemRef(i)), otSLong, lval, i); + Items[i] := lval; + end; +end; + +procedure TRdxEmpresasArray.WriteComplex(ASerializer: TObject); +var + i: integer; +begin + for i := 0 to Count-1 do + with TROSerializer(ASerializer) do + WriteInteger(GetArrayElementName(GetItemType, GetItemRef(i)), otSLong, fItems[i], i); +end; + +{ TIntegerArray } + +procedure TIntegerArray.Assign(iSource: TPersistent); +var lSource:TIntegerArray; + i:integer; +begin + if (iSource is TIntegerArray) then begin + lSource := TIntegerArray(iSource); + Clear(); + Resize(lSource.Count); + + for i := 0 to Count-1 do begin + Items[i] := lSource.Items[i]; + end; + end + else begin + inherited Assign(iSource); + end; +end; + +class function TIntegerArray.GetItemType: PTypeInfo; +begin + result := TypeInfo(Integer); +end; + +class function TIntegerArray.GetItemSize: integer; +begin + result := SizeOf(Integer); +end; + +function TIntegerArray.GetItems(aIndex: integer): Integer; +begin + if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]); + result := fItems[aIndex]; +end; + +function TIntegerArray.GetItemRef(aIndex: integer): pointer; +begin + if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]); + result := @fItems[aIndex]; +end; + +procedure TIntegerArray.Clear; +begin + SetLength(fItems, 0); + FCount := 0; +end; + +procedure TIntegerArray.Delete(aIndex: integer); +var i: integer; +begin + if (aIndex>=Count) then RaiseError(err_InvalidIndex, [aIndex]); + + if (aIndex= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]); + fItems[aIndex] := Value; +end; + +procedure TIntegerArray.Resize(ElementCount: integer); +begin + if fCount = ElementCount then Exit; + SetLength(fItems, ElementCount); + FCount := ElementCount; +end; + +function TIntegerArray.GetCount: integer; +begin + result := FCount; +end; + +procedure TIntegerArray.Grow; +var + Delta, Capacity: Integer; +begin + Capacity := Length(fItems); + if Capacity > 64 then + Delta := Capacity div 4 + else + if Capacity > 8 then + Delta := 16 + else + Delta := 4; + SetLength(fItems, Capacity + Delta); +end; + +function TIntegerArray.Add(const Value: Integer): integer; +begin + Result := Count; + if Length(fItems) = Result then + Grow; + fItems[result] := Value; + Inc(fCount); +end; + +function TIntegerArray.GetIndex(const aPropertyName: string; + const aPropertyValue: Variant; StartFrom: integer; + Options: TROSearchOptions): integer; +begin + result := -1; +end; + +procedure TIntegerArray.ReadComplex(ASerializer: TObject); +var + lval: Integer; + i: integer; +begin + for i := 0 to Count-1 do begin + with TROSerializer(ASerializer) do + ReadInteger(GetArrayElementName(GetItemType, GetItemRef(i)), otSLong, lval, i); + Items[i] := lval; + end; +end; + +procedure TIntegerArray.WriteComplex(ASerializer: TObject); +var + i: integer; +begin + for i := 0 to Count-1 do + with TROSerializer(ASerializer) do + WriteInteger(GetArrayElementName(GetItemType, GetItemRef(i)), otSLong, fItems[i], i); +end; + +{ TRdxLoginInfo } + +procedure TRdxLoginInfo.Assign(iSource: TPersistent); +var lSource: FactuGES_Intf.TRdxLoginInfo; +begin + inherited Assign(iSource); + if (iSource is FactuGES_Intf.TRdxLoginInfo) then begin + lSource := FactuGES_Intf.TRdxLoginInfo(iSource); + UserID := lSource.UserID; + SessionID := lSource.SessionID; + Usuario := lSource.Usuario; + Perfiles.Assign(lSource.Perfiles); + Empresas.Assign(lSource.Empresas); + end; +end; + +function TRdxLoginInfo.GetPerfiles: StringArray; +begin + if (fPerfiles = nil) then fPerfiles := StringArray.Create(); + result := fPerfiles; +end; + +function TRdxLoginInfo.GetEmpresas: TRdxEmpresasArray; +begin + if (fEmpresas = nil) then fEmpresas := TRdxEmpresasArray.Create(); + result := fEmpresas; +end; + +procedure TRdxLoginInfo.ReadComplex(ASerializer: TObject); +var + l_Empresas: TRdxEmpresasArray; + l_Perfiles: StringArray; + l_SessionID: AnsiString; + l_UserID: Integer; + l_Usuario: AnsiString; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_UserID := UserID; + TROSerializer(ASerializer).ReadInteger('UserID', otSLong, l_UserID); + UserID := l_UserID; + l_SessionID := SessionID; + TROSerializer(ASerializer).ReadAnsiString('SessionID', l_SessionID); + SessionID := l_SessionID; + l_Usuario := Usuario; + TROSerializer(ASerializer).ReadAnsiString('Usuario', l_Usuario); + Usuario := l_Usuario; + l_Perfiles := Perfiles; + TROSerializer(ASerializer).ReadArray('Perfiles', StringArray, l_Perfiles); + if Perfiles <> l_Perfiles then Perfiles.Free; + Perfiles := l_Perfiles; + l_Empresas := Empresas; + TROSerializer(ASerializer).ReadArray('Empresas', TRdxEmpresasArray, l_Empresas); + if Empresas <> l_Empresas then Empresas.Free; + Empresas := l_Empresas; + end + else begin + l_Empresas := Empresas; + TROSerializer(ASerializer).ReadArray('Empresas', TRdxEmpresasArray, l_Empresas); + if Empresas <> l_Empresas then Empresas.Free; + Empresas := l_Empresas; + l_Perfiles := Perfiles; + TROSerializer(ASerializer).ReadArray('Perfiles', StringArray, l_Perfiles); + if Perfiles <> l_Perfiles then Perfiles.Free; + Perfiles := l_Perfiles; + l_SessionID := SessionID; + TROSerializer(ASerializer).ReadAnsiString('SessionID', l_SessionID); + SessionID := l_SessionID; + l_UserID := UserID; + TROSerializer(ASerializer).ReadInteger('UserID', otSLong, l_UserID); + UserID := l_UserID; + l_Usuario := Usuario; + TROSerializer(ASerializer).ReadAnsiString('Usuario', l_Usuario); + Usuario := l_Usuario; + end; +end; + +procedure TRdxLoginInfo.WriteComplex(ASerializer: TObject); +var + l_Empresas: TRdxEmpresasArray; + l_Perfiles: StringArray; + l_SessionID: AnsiString; + l_UserID: Integer; + l_Usuario: AnsiString; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(TRdxLoginInfo); + l_UserID := UserID; + TROSerializer(ASerializer).WriteInteger('UserID', otSLong, l_UserID); + l_SessionID := SessionID; + TROSerializer(ASerializer).WriteAnsiString('SessionID', l_SessionID); + l_Usuario := Usuario; + TROSerializer(ASerializer).WriteAnsiString('Usuario', l_Usuario); + l_Perfiles := Perfiles; + TROSerializer(ASerializer).WriteArray('Perfiles', l_Perfiles, StringArray); + l_Empresas := Empresas; + TROSerializer(ASerializer).WriteArray('Empresas', l_Empresas, TRdxEmpresasArray); + end + else begin + l_Empresas := Empresas; + TROSerializer(ASerializer).WriteArray('Empresas', l_Empresas, TRdxEmpresasArray); + l_Perfiles := Perfiles; + TROSerializer(ASerializer).WriteArray('Perfiles', l_Perfiles, StringArray); + l_SessionID := SessionID; + TROSerializer(ASerializer).WriteAnsiString('SessionID', l_SessionID); + l_UserID := UserID; + TROSerializer(ASerializer).WriteInteger('UserID', otSLong, l_UserID); + l_Usuario := Usuario; + TROSerializer(ASerializer).WriteAnsiString('Usuario', l_Usuario); + end; +end; + +{ TRdxLoginInfoCollection } +constructor TRdxLoginInfoCollection.Create; +begin + inherited Create(TRdxLoginInfo); +end; + +constructor TRdxLoginInfoCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function TRdxLoginInfoCollection.Add: TRdxLoginInfo; +begin + result := TRdxLoginInfo(inherited Add); +end; + +function TRdxLoginInfoCollection.GetItems(aIndex: integer): TRdxLoginInfo; +begin + result := TRdxLoginInfo(inherited Items[aIndex]); +end; + +procedure TRdxLoginInfoCollection.SetItems(aIndex: integer; const Value: TRdxLoginInfo); +begin + TRdxLoginInfo(inherited Items[aIndex]).Assign(Value); +end; + +{ CosrvContactos } + +class function CosrvContactos.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvContactos; +begin + result := TsrvContactos_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvContactos_Proxy } + +function TsrvContactos_Proxy.__GetInterfaceName:string; +begin + result := 'srvContactos'; +end; + +function TsrvContactos_Proxy.GenerarInformeFichaEmpleado(const ListaID: TIntegerArray): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeFichaEmpleado'); + __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvContactos_Proxy.GenerarInformeEtiquetas(const ListaID: TIntegerArray): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeEtiquetas'); + __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvContactos_Proxy.DarListaDescripcionesProveedores: AnsiString; +begin + try + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'DarListaDescripcionesProveedores'); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(AnsiString), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvContactos_Proxy.DarListaContratosEmpleados: AnsiString; +begin + try + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'DarListaContratosEmpleados'); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(AnsiString), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +{ CosrvLogin } + +class function CosrvLogin.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvLogin; +begin + result := TsrvLogin_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvLogin_Proxy } + +function TsrvLogin_Proxy.__GetInterfaceName:string; +begin + result := 'srvLogin'; +end; + +function TsrvLogin_Proxy.Login(const User: AnsiString; const Password: AnsiString; out LoginInfo: TRdxLoginInfo): Boolean; +begin + try + LoginInfo := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'Login'); + __Message.Write('User', TypeInfo(AnsiString), User, []); + __Message.Write('Password', TypeInfo(AnsiString), Password, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Boolean), result, []); + __Message.Read('LoginInfo', TypeInfo(FactuGES_Intf.TRdxLoginInfo), LoginInfo, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +procedure TsrvLogin_Proxy.Logout; +begin + try + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'Logout'); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + finally + __Message.FreeStream; + end +end; + +function TsrvLogin_Proxy.Ping: Boolean; +begin + try + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'Ping'); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Boolean), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +{ CosrvInventario } + +class function CosrvInventario.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvInventario; +begin + result := TsrvInventario_Proxy.Create(aMessage, aTransportChannel); +end; + +function TsrvInventario_Proxy.__GetInterfaceName:string; +begin + result := 'srvInventario'; +end; + +{ CosrvHistoricoMovimientos } + +class function CosrvHistoricoMovimientos.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvHistoricoMovimientos; +begin + result := TsrvHistoricoMovimientos_Proxy.Create(aMessage, aTransportChannel); +end; + +function TsrvHistoricoMovimientos_Proxy.__GetInterfaceName:string; +begin + result := 'srvHistoricoMovimientos'; +end; + +{ CosrvEmpresas } + +class function CosrvEmpresas.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvEmpresas; +begin + result := TsrvEmpresas_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvEmpresas_Proxy } + +function TsrvEmpresas_Proxy.__GetInterfaceName:string; +begin + result := 'srvEmpresas'; +end; + +function TsrvEmpresas_Proxy.DarListaFormasPago: Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'DarListaFormasPago'); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvEmpresas_Proxy.DarListaTiposIVA: Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'DarListaTiposIVA'); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvEmpresas_Proxy.DarListaAlmacenes(const ID_EMPRESA: Integer): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'DarListaAlmacenes'); + __Message.Write('ID_EMPRESA', TypeInfo(Integer), ID_EMPRESA, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +{ CosrvConfiguracion } + +class function CosrvConfiguracion.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvConfiguracion; +begin + result := TsrvConfiguracion_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvConfiguracion_Proxy } + +function TsrvConfiguracion_Proxy.__GetInterfaceName:string; +begin + result := 'srvConfiguracion'; +end; + +function TsrvConfiguracion_Proxy.darValor(const CODIGO: AnsiString; const ValorPorDefecto: AnsiString): AnsiString; +begin + try + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'darValor'); + __Message.Write('CODIGO', TypeInfo(AnsiString), CODIGO, []); + __Message.Write('ValorPorDefecto', TypeInfo(AnsiString), ValorPorDefecto, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(AnsiString), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +{ CosrvFamilias } + +class function CosrvFamilias.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFamilias; +begin + result := TsrvFamilias_Proxy.Create(aMessage, aTransportChannel); +end; + +function TsrvFamilias_Proxy.__GetInterfaceName:string; +begin + result := 'srvFamilias'; +end; + +{ CosrvFormasPago } + +class function CosrvFormasPago.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFormasPago; +begin + result := TsrvFormasPago_Proxy.Create(aMessage, aTransportChannel); +end; + +function TsrvFormasPago_Proxy.__GetInterfaceName:string; +begin + result := 'srvFormasPago'; +end; + +{ CosrvTiposIVA } + +class function CosrvTiposIVA.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvTiposIVA; +begin + result := TsrvTiposIVA_Proxy.Create(aMessage, aTransportChannel); +end; + +function TsrvTiposIVA_Proxy.__GetInterfaceName:string; +begin + result := 'srvTiposIVA'; +end; + +{ CosrvUsuarios } + +class function CosrvUsuarios.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvUsuarios; +begin + result := TsrvUsuarios_Proxy.Create(aMessage, aTransportChannel); +end; + +function TsrvUsuarios_Proxy.__GetInterfaceName:string; +begin + result := 'srvUsuarios'; +end; + +{ CosrvAlmacenes } + +class function CosrvAlmacenes.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvAlmacenes; +begin + result := TsrvAlmacenes_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvAlmacenes_Proxy } + +function TsrvAlmacenes_Proxy.__GetInterfaceName:string; +begin + result := 'srvAlmacenes'; +end; + +function TsrvAlmacenes_Proxy.DarListaAlmacenes(const IDEmpresa: Integer): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'DarListaAlmacenes'); + __Message.Write('IDEmpresa', TypeInfo(Integer), IDEmpresa, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +{ CosrvArticulos } + +class function CosrvArticulos.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvArticulos; +begin + result := TsrvArticulos_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvArticulos_Proxy } + +function TsrvArticulos_Proxy.__GetInterfaceName:string; +begin + result := 'srvArticulos'; +end; + +function TsrvArticulos_Proxy.DarListaProveedoresConArticulos(const IDEmpresa: Integer): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'DarListaProveedoresConArticulos'); + __Message.Write('IDEmpresa', TypeInfo(Integer), IDEmpresa, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +{ CosrvRecibosCliente } + +class function CosrvRecibosCliente.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvRecibosCliente; +begin + result := TsrvRecibosCliente_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvRecibosCliente_Proxy } + +function TsrvRecibosCliente_Proxy.__GetInterfaceName:string; +begin + result := 'srvRecibosCliente'; +end; + +function TsrvRecibosCliente_Proxy.GenerarInforme(const ListaID: TIntegerArray): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInforme'); + __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +{ CosrvRecibosProveedor } + +class function CosrvRecibosProveedor.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvRecibosProveedor; +begin + result := TsrvRecibosProveedor_Proxy.Create(aMessage, aTransportChannel); +end; + +function TsrvRecibosProveedor_Proxy.__GetInterfaceName:string; +begin + result := 'srvRecibosProveedor'; +end; + +{ CosrvRemesasCliente } + +class function CosrvRemesasCliente.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvRemesasCliente; +begin + result := TsrvRemesasCliente_Proxy.Create(aMessage, aTransportChannel); +end; + +function TsrvRemesasCliente_Proxy.__GetInterfaceName:string; +begin + result := 'srvRemesasCliente'; +end; + +{ CosrvRemesasProveedor } + +class function CosrvRemesasProveedor.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvRemesasProveedor; +begin + result := TsrvRemesasProveedor_Proxy.Create(aMessage, aTransportChannel); +end; + +function TsrvRemesasProveedor_Proxy.__GetInterfaceName:string; +begin + result := 'srvRemesasProveedor'; +end; + +{ CosrvFacturasCliente } + +class function CosrvFacturasCliente.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFacturasCliente; +begin + result := TsrvFacturasCliente_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvFacturasCliente_Proxy } + +function TsrvFacturasCliente_Proxy.__GetInterfaceName:string; +begin + result := 'srvFacturasCliente'; +end; + +function TsrvFacturasCliente_Proxy.GenerarInforme(const ListaID: TIntegerArray; const VerSello: Boolean; const VerCopia: Boolean): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInforme'); + __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); + __Message.Write('VerSello', TypeInfo(Boolean), VerSello, []); + __Message.Write('VerCopia', TypeInfo(Boolean), VerCopia, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvFacturasCliente_Proxy.GenerarInformeEnWord(const ID: Integer; const VerSello: Boolean): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeEnWord'); + __Message.Write('ID', TypeInfo(Integer), ID, []); + __Message.Write('VerSello', TypeInfo(Boolean), VerSello, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvFacturasCliente_Proxy.GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerSello: Boolean): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeEnPDF'); + __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); + __Message.Write('VerSello', TypeInfo(Boolean), VerSello, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +{ CosrvFacturasProveedor } + +class function CosrvFacturasProveedor.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFacturasProveedor; +begin + result := TsrvFacturasProveedor_Proxy.Create(aMessage, aTransportChannel); +end; + +function TsrvFacturasProveedor_Proxy.__GetInterfaceName:string; +begin + result := 'srvFacturasProveedor'; +end; + +{ CosrvPresupuestosCliente } + +class function CosrvPresupuestosCliente.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvPresupuestosCliente; +begin + result := TsrvPresupuestosCliente_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvPresupuestosCliente_Proxy } + +function TsrvPresupuestosCliente_Proxy.__GetInterfaceName:string; +begin + result := 'srvPresupuestosCliente'; +end; + +function TsrvPresupuestosCliente_Proxy.GenerarInforme(const ListaID: TIntegerArray; const VerSello: Integer): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInforme'); + __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); + __Message.Write('VerSello', TypeInfo(Integer), VerSello, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvPresupuestosCliente_Proxy.GenerarInformeEnWord(const ID: Integer; const VerSello: Integer): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeEnWord'); + __Message.Write('ID', TypeInfo(Integer), ID, []); + __Message.Write('VerSello', TypeInfo(Integer), VerSello, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvPresupuestosCliente_Proxy.GenerarCertificadoTrabajosEnWord(const ID: Integer): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarCertificadoTrabajosEnWord'); + __Message.Write('ID', TypeInfo(Integer), ID, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvPresupuestosCliente_Proxy.GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerSello: Integer): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeEnPDF'); + __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); + __Message.Write('VerSello', TypeInfo(Integer), VerSello, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +{ CosrvPedidosProveedor } + +class function CosrvPedidosProveedor.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvPedidosProveedor; +begin + result := TsrvPedidosProveedor_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvPedidosProveedor_Proxy } + +function TsrvPedidosProveedor_Proxy.__GetInterfaceName:string; +begin + result := 'srvPedidosProveedor'; +end; + +function TsrvPedidosProveedor_Proxy.GenerarInforme(const ListaID: TIntegerArray; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInforme'); + __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); + __Message.Write('ImprimirPrecio', TypeInfo(Boolean), ImprimirPrecio, []); + __Message.Write('ImprimirRefProveedor', TypeInfo(Boolean), ImprimirRefProveedor, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvPedidosProveedor_Proxy.GenerarInformeEnWord(const ID: Integer; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeEnWord'); + __Message.Write('ID', TypeInfo(Integer), ID, []); + __Message.Write('ImprimirPrecio', TypeInfo(Boolean), ImprimirPrecio, []); + __Message.Write('ImprimirRefProveedor', TypeInfo(Boolean), ImprimirRefProveedor, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvPedidosProveedor_Proxy.GenerarInformeEnPDF(const ListaID: TIntegerArray; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeEnPDF'); + __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); + __Message.Write('ImprimirPrecio', TypeInfo(Boolean), ImprimirPrecio, []); + __Message.Write('ImprimirRefProveedor', TypeInfo(Boolean), ImprimirRefProveedor, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +{ CosrvAlbaranesCliente } + +class function CosrvAlbaranesCliente.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvAlbaranesCliente; +begin + result := TsrvAlbaranesCliente_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvAlbaranesCliente_Proxy } + +function TsrvAlbaranesCliente_Proxy.__GetInterfaceName:string; +begin + result := 'srvAlbaranesCliente'; +end; + +function TsrvAlbaranesCliente_Proxy.GenerarInforme(const ListaID: TIntegerArray): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInforme'); + __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvAlbaranesCliente_Proxy.GenerarInformeEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeEtiquetas'); + __Message.Write('ID', TypeInfo(Integer), ID, []); + __Message.Write('withRefCliente', TypeInfo(Boolean), withRefCliente, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvAlbaranesCliente_Proxy.GenerarInformeEnWord(const ID: Integer): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeEnWord'); + __Message.Write('ID', TypeInfo(Integer), ID, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvAlbaranesCliente_Proxy.GenerarInformeEnPDF(const ListaID: TIntegerArray): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeEnPDF'); + __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +{ CosrvAlbaranesProveedor } + +class function CosrvAlbaranesProveedor.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvAlbaranesProveedor; +begin + result := TsrvAlbaranesProveedor_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvAlbaranesProveedor_Proxy } + +function TsrvAlbaranesProveedor_Proxy.__GetInterfaceName:string; +begin + result := 'srvAlbaranesProveedor'; +end; + +function TsrvAlbaranesProveedor_Proxy.GenerarInforme(const ListaID: TIntegerArray; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInforme'); + __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); + __Message.Write('ImprimirPrecio', TypeInfo(Boolean), ImprimirPrecio, []); + __Message.Write('ImprimirRefProveedor', TypeInfo(Boolean), ImprimirRefProveedor, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvAlbaranesProveedor_Proxy.GenerarInformeEnWord(const ID: Integer; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeEnWord'); + __Message.Write('ID', TypeInfo(Integer), ID, []); + __Message.Write('ImprimirPrecio', TypeInfo(Boolean), ImprimirPrecio, []); + __Message.Write('ImprimirRefProveedor', TypeInfo(Boolean), ImprimirRefProveedor, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvAlbaranesProveedor_Proxy.GenerarInformeEnPDF(const ListaID: TIntegerArray; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeEnPDF'); + __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); + __Message.Write('ImprimirPrecio', TypeInfo(Boolean), ImprimirPrecio, []); + __Message.Write('ImprimirRefProveedor', TypeInfo(Boolean), ImprimirRefProveedor, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +{ CosrvReferencias } + +class function CosrvReferencias.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvReferencias; +begin + result := TsrvReferencias_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvReferencias_Proxy } + +function TsrvReferencias_Proxy.__GetInterfaceName:string; +begin + result := 'srvReferencias'; +end; + +function TsrvReferencias_Proxy.DarNuevaReferencia(const NombreReferencia: AnsiString; const EmpresaID: Integer): AnsiString; +begin + try + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'DarNuevaReferencia'); + __Message.Write('NombreReferencia', TypeInfo(AnsiString), NombreReferencia, []); + __Message.Write('EmpresaID', TypeInfo(Integer), EmpresaID, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(AnsiString), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvReferencias_Proxy.IncrementarValorReferencia(const NombreReferencia: AnsiString; const Valor: AnsiString; const EmpresaID: Integer): Boolean; +begin + try + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'IncrementarValorReferencia'); + __Message.Write('NombreReferencia', TypeInfo(AnsiString), NombreReferencia, []); + __Message.Write('Valor', TypeInfo(AnsiString), Valor, []); + __Message.Write('EmpresaID', TypeInfo(Integer), EmpresaID, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Boolean), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +{ CosrvUnidadesMedida } + +class function CosrvUnidadesMedida.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvUnidadesMedida; +begin + result := TsrvUnidadesMedida_Proxy.Create(aMessage, aTransportChannel); +end; + +function TsrvUnidadesMedida_Proxy.__GetInterfaceName:string; +begin + result := 'srvUnidadesMedida'; +end; + +{ CosrvFabricantes } + +class function CosrvFabricantes.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFabricantes; +begin + result := TsrvFabricantes_Proxy.Create(aMessage, aTransportChannel); +end; + +function TsrvFabricantes_Proxy.__GetInterfaceName:string; +begin + result := 'srvFabricantes'; +end; + +{ CosrvObras } + +class function CosrvObras.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvObras; +begin + result := TsrvObras_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvObras_Proxy } + +function TsrvObras_Proxy.__GetInterfaceName:string; +begin + result := 'srvObras'; +end; + +function TsrvObras_Proxy.DarListaObras(const IDEmpresa: Integer): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'DarListaObras'); + __Message.Write('IDEmpresa', TypeInfo(Integer), IDEmpresa, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +{ CosrvProvinciasPoblaciones } + +class function CosrvProvinciasPoblaciones.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvProvinciasPoblaciones; +begin + result := TsrvProvinciasPoblaciones_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvProvinciasPoblaciones_Proxy } + +function TsrvProvinciasPoblaciones_Proxy.__GetInterfaceName:string; +begin + result := 'srvProvinciasPoblaciones'; +end; + +function TsrvProvinciasPoblaciones_Proxy.DarListaProvincias: Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'DarListaProvincias'); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvProvinciasPoblaciones_Proxy.DarListaPoblaciones(const ID_Provincia: Integer): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'DarListaPoblaciones'); + __Message.Write('ID_Provincia', TypeInfo(Integer), ID_Provincia, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +{ CosrvGestorDocumentos } + +class function CosrvGestorDocumentos.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvGestorDocumentos; +begin + result := TsrvGestorDocumentos_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvGestorDocumentos_Proxy } + +function TsrvGestorDocumentos_Proxy.__GetInterfaceName:string; +begin + result := 'srvGestorDocumentos'; +end; + +function TsrvGestorDocumentos_Proxy.DarListaFicheros(const Almacen: TRdxAlmacenes; const ID: Integer): StringArray; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'DarListaFicheros'); + __Message.Write('Almacen', TypeInfo(FactuGES_Intf.TRdxAlmacenes), Almacen, []); + __Message.Write('ID', TypeInfo(Integer), ID, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(DataAbstract4_Intf.StringArray), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvGestorDocumentos_Proxy.DescargarFichero(const Almacen: TRdxAlmacenes; const ID: Integer; const NombreFichero: AnsiString): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'DescargarFichero'); + __Message.Write('Almacen', TypeInfo(FactuGES_Intf.TRdxAlmacenes), Almacen, []); + __Message.Write('ID', TypeInfo(Integer), ID, []); + __Message.Write('NombreFichero', TypeInfo(AnsiString), NombreFichero, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvGestorDocumentos_Proxy.SubirFichero(const Almacen: TRdxAlmacenes; const ID: Integer; const NombreFichero: AnsiString; const Fichero: Binary): Boolean; +begin + try + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'SubirFichero'); + __Message.Write('Almacen', TypeInfo(FactuGES_Intf.TRdxAlmacenes), Almacen, []); + __Message.Write('ID', TypeInfo(Integer), ID, []); + __Message.Write('NombreFichero', TypeInfo(AnsiString), NombreFichero, []); + __Message.Write('Fichero', TypeInfo(Binary), Fichero, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Boolean), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvGestorDocumentos_Proxy.EliminarFichero(const Almacen: TRdxAlmacenes; const ID: Integer; const NombreFichero: AnsiString): Boolean; +begin + try + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'EliminarFichero'); + __Message.Write('Almacen', TypeInfo(FactuGES_Intf.TRdxAlmacenes), Almacen, []); + __Message.Write('ID', TypeInfo(Integer), ID, []); + __Message.Write('NombreFichero', TypeInfo(AnsiString), NombreFichero, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Boolean), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvGestorDocumentos_Proxy.EliminarID(const Almacen: TRdxAlmacenes; const ID: Integer): Boolean; +begin + try + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'EliminarID'); + __Message.Write('Almacen', TypeInfo(FactuGES_Intf.TRdxAlmacenes), Almacen, []); + __Message.Write('ID', TypeInfo(Integer), ID, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Boolean), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +{ CosrvGestorInformes } + +class function CosrvGestorInformes.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvGestorInformes; +begin + result := TsrvGestorInformes_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvGestorInformes_Proxy } + +function TsrvGestorInformes_Proxy.__GetInterfaceName:string; +begin + result := 'srvGestorInformes'; +end; + +function TsrvGestorInformes_Proxy.GenerarInformeIVAClientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; + const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeIVAClientes'); + __Message.Write('IdEmpresa', TypeInfo(Integer), IdEmpresa, []); + __Message.Write('FechaInicio', TypeInfo(Variant), FechaInicio, []); + __Message.Write('FechaFin', TypeInfo(Variant), FechaFin, []); + __Message.Write('ListaIDClientes', TypeInfo(FactuGES_Intf.TIntegerArray), ListaIDClientes, []); + __Message.Write('Desglosado', TypeInfo(Boolean), Desglosado, []); + __Message.Write('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvGestorInformes_Proxy.GenerarInformeIVAProveedores(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDProveedores: TIntegerArray; + const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeIVAProveedores'); + __Message.Write('IdEmpresa', TypeInfo(Integer), IdEmpresa, []); + __Message.Write('FechaInicio', TypeInfo(Variant), FechaInicio, []); + __Message.Write('FechaFin', TypeInfo(Variant), FechaFin, []); + __Message.Write('ListaIDProveedores', TypeInfo(FactuGES_Intf.TIntegerArray), ListaIDProveedores, []); + __Message.Write('Desglosado', TypeInfo(Boolean), Desglosado, []); + __Message.Write('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvGestorInformes_Proxy.GenerarInformeListadoFacturasCli(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; + const FechaVenFin: Variant; const ListadoIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeListadoFacturasCli'); + __Message.Write('IdEmpresa', TypeInfo(Integer), IdEmpresa, []); + __Message.Write('FechaInicio', TypeInfo(Variant), FechaInicio, []); + __Message.Write('FechaFin', TypeInfo(Variant), FechaFin, []); + __Message.Write('FechaVenInicio', TypeInfo(Variant), FechaVenInicio, []); + __Message.Write('FechaVenFin', TypeInfo(Variant), FechaVenFin, []); + __Message.Write('ListadoIDClientes', TypeInfo(FactuGES_Intf.TIntegerArray), ListadoIDClientes, []); + __Message.Write('Desglosado', TypeInfo(Boolean), Desglosado, []); + __Message.Write('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvGestorInformes_Proxy.GenerarInformeListadoFacturasProv(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; + const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeListadoFacturasProv'); + __Message.Write('IdEmpresa', TypeInfo(Integer), IdEmpresa, []); + __Message.Write('FechaInicio', TypeInfo(Variant), FechaInicio, []); + __Message.Write('FechaFin', TypeInfo(Variant), FechaFin, []); + __Message.Write('FechaVenInicio', TypeInfo(Variant), FechaVenInicio, []); + __Message.Write('FechaVenFin', TypeInfo(Variant), FechaVenFin, []); + __Message.Write('ListaIDProveedores', TypeInfo(FactuGES_Intf.TIntegerArray), ListaIDProveedores, []); + __Message.Write('Desglosado', TypeInfo(Boolean), Desglosado, []); + __Message.Write('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvGestorInformes_Proxy.GenerarInformeListadoFacturasCliPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; + const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeListadoFacturasCliPendientes'); + __Message.Write('IdEmpresa', TypeInfo(Integer), IdEmpresa, []); + __Message.Write('FechaInicio', TypeInfo(Variant), FechaInicio, []); + __Message.Write('FechaFin', TypeInfo(Variant), FechaFin, []); + __Message.Write('FechaVenInicio', TypeInfo(Variant), FechaVenInicio, []); + __Message.Write('FechaVenFin', TypeInfo(Variant), FechaVenFin, []); + __Message.Write('ListaIDClientes', TypeInfo(FactuGES_Intf.TIntegerArray), ListaIDClientes, []); + __Message.Write('Desglosado', TypeInfo(Boolean), Desglosado, []); + __Message.Write('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvGestorInformes_Proxy.GenerarInformeListadoFacturasProvPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; + const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeListadoFacturasProvPendientes'); + __Message.Write('IdEmpresa', TypeInfo(Integer), IdEmpresa, []); + __Message.Write('FechaInicio', TypeInfo(Variant), FechaInicio, []); + __Message.Write('FechaFin', TypeInfo(Variant), FechaFin, []); + __Message.Write('FechaVenInicio', TypeInfo(Variant), FechaVenInicio, []); + __Message.Write('FechaVenFin', TypeInfo(Variant), FechaVenFin, []); + __Message.Write('ListaIDProveedores', TypeInfo(FactuGES_Intf.TIntegerArray), ListaIDProveedores, []); + __Message.Write('Desglosado', TypeInfo(Boolean), Desglosado, []); + __Message.Write('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvGestorInformes_Proxy.GenerarInformeListadoRecibosCliente(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; + const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeListadoRecibosCliente'); + __Message.Write('IdEmpresa', TypeInfo(Integer), IdEmpresa, []); + __Message.Write('FechaInicio', TypeInfo(Variant), FechaInicio, []); + __Message.Write('FechaFin', TypeInfo(Variant), FechaFin, []); + __Message.Write('FechaVenInicio', TypeInfo(Variant), FechaVenInicio, []); + __Message.Write('FechaVenFin', TypeInfo(Variant), FechaVenFin, []); + __Message.Write('ListaIDClientes', TypeInfo(FactuGES_Intf.TIntegerArray), ListaIDClientes, []); + __Message.Write('Desglosado', TypeInfo(Boolean), Desglosado, []); + __Message.Write('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvGestorInformes_Proxy.GenerarInformeListadoRecibosProveedor(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; + const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeListadoRecibosProveedor'); + __Message.Write('IdEmpresa', TypeInfo(Integer), IdEmpresa, []); + __Message.Write('FechaInicio', TypeInfo(Variant), FechaInicio, []); + __Message.Write('FechaFin', TypeInfo(Variant), FechaFin, []); + __Message.Write('FechaVenInicio', TypeInfo(Variant), FechaVenInicio, []); + __Message.Write('FechaVenFin', TypeInfo(Variant), FechaVenFin, []); + __Message.Write('ListaIDProveedores', TypeInfo(FactuGES_Intf.TIntegerArray), ListaIDProveedores, []); + __Message.Write('Desglosado', TypeInfo(Boolean), Desglosado, []); + __Message.Write('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvGestorInformes_Proxy.GenerarInformeListadoRecibosCliPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; + const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeListadoRecibosCliPendientes'); + __Message.Write('IdEmpresa', TypeInfo(Integer), IdEmpresa, []); + __Message.Write('FechaInicio', TypeInfo(Variant), FechaInicio, []); + __Message.Write('FechaFin', TypeInfo(Variant), FechaFin, []); + __Message.Write('FechaVenInicio', TypeInfo(Variant), FechaVenInicio, []); + __Message.Write('FechaVenFin', TypeInfo(Variant), FechaVenFin, []); + __Message.Write('ListaIDClientes', TypeInfo(FactuGES_Intf.TIntegerArray), ListaIDClientes, []); + __Message.Write('Desglosado', TypeInfo(Boolean), Desglosado, []); + __Message.Write('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvGestorInformes_Proxy.GenerarInformeListadoRecibosProvPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; + const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeListadoRecibosProvPendientes'); + __Message.Write('IdEmpresa', TypeInfo(Integer), IdEmpresa, []); + __Message.Write('FechaInicio', TypeInfo(Variant), FechaInicio, []); + __Message.Write('FechaFin', TypeInfo(Variant), FechaFin, []); + __Message.Write('FechaVenInicio', TypeInfo(Variant), FechaVenInicio, []); + __Message.Write('FechaVenFin', TypeInfo(Variant), FechaVenFin, []); + __Message.Write('ListaIDProveedores', TypeInfo(FactuGES_Intf.TIntegerArray), ListaIDProveedores, []); + __Message.Write('Desglosado', TypeInfo(Boolean), Desglosado, []); + __Message.Write('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvGestorInformes_Proxy.GenerarInformeListadoPresupuestos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; + const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeListadoPresupuestos'); + __Message.Write('IdEmpresa', TypeInfo(Integer), IdEmpresa, []); + __Message.Write('FechaInicio', TypeInfo(Variant), FechaInicio, []); + __Message.Write('FechaFin', TypeInfo(Variant), FechaFin, []); + __Message.Write('ListaIDClientes', TypeInfo(FactuGES_Intf.TIntegerArray), ListaIDClientes, []); + __Message.Write('Desglosado', TypeInfo(Boolean), Desglosado, []); + __Message.Write('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvGestorInformes_Proxy.GenerarInformeListadoPedidos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDProveedores: TIntegerArray; + const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeListadoPedidos'); + __Message.Write('IdEmpresa', TypeInfo(Integer), IdEmpresa, []); + __Message.Write('FechaInicio', TypeInfo(Variant), FechaInicio, []); + __Message.Write('FechaFin', TypeInfo(Variant), FechaFin, []); + __Message.Write('ListaIDProveedores', TypeInfo(FactuGES_Intf.TIntegerArray), ListaIDProveedores, []); + __Message.Write('Desglosado', TypeInfo(Boolean), Desglosado, []); + __Message.Write('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +initialization + RegisterROClass(TRdxLoginInfo); + RegisterROClass(TRdxEmpresasArray); + RegisterROClass(TIntegerArray); + RegisterProxyClass(IsrvContactos_IID, TsrvContactos_Proxy); + RegisterProxyClass(IsrvLogin_IID, TsrvLogin_Proxy); + RegisterProxyClass(IsrvInventario_IID, TsrvInventario_Proxy); + RegisterProxyClass(IsrvHistoricoMovimientos_IID, TsrvHistoricoMovimientos_Proxy); + RegisterProxyClass(IsrvEmpresas_IID, TsrvEmpresas_Proxy); + RegisterProxyClass(IsrvConfiguracion_IID, TsrvConfiguracion_Proxy); + RegisterProxyClass(IsrvFamilias_IID, TsrvFamilias_Proxy); + RegisterProxyClass(IsrvFormasPago_IID, TsrvFormasPago_Proxy); + RegisterProxyClass(IsrvTiposIVA_IID, TsrvTiposIVA_Proxy); + RegisterProxyClass(IsrvUsuarios_IID, TsrvUsuarios_Proxy); + RegisterProxyClass(IsrvAlmacenes_IID, TsrvAlmacenes_Proxy); + RegisterProxyClass(IsrvArticulos_IID, TsrvArticulos_Proxy); + RegisterProxyClass(IsrvRecibosCliente_IID, TsrvRecibosCliente_Proxy); + RegisterProxyClass(IsrvRecibosProveedor_IID, TsrvRecibosProveedor_Proxy); + RegisterProxyClass(IsrvRemesasCliente_IID, TsrvRemesasCliente_Proxy); + RegisterProxyClass(IsrvRemesasProveedor_IID, TsrvRemesasProveedor_Proxy); + RegisterProxyClass(IsrvFacturasCliente_IID, TsrvFacturasCliente_Proxy); + RegisterProxyClass(IsrvFacturasProveedor_IID, TsrvFacturasProveedor_Proxy); + RegisterProxyClass(IsrvPresupuestosCliente_IID, TsrvPresupuestosCliente_Proxy); + RegisterProxyClass(IsrvPedidosProveedor_IID, TsrvPedidosProveedor_Proxy); + RegisterProxyClass(IsrvAlbaranesCliente_IID, TsrvAlbaranesCliente_Proxy); + RegisterProxyClass(IsrvAlbaranesProveedor_IID, TsrvAlbaranesProveedor_Proxy); + RegisterProxyClass(IsrvReferencias_IID, TsrvReferencias_Proxy); + RegisterProxyClass(IsrvUnidadesMedida_IID, TsrvUnidadesMedida_Proxy); + RegisterProxyClass(IsrvFabricantes_IID, TsrvFabricantes_Proxy); + RegisterProxyClass(IsrvObras_IID, TsrvObras_Proxy); + RegisterProxyClass(IsrvProvinciasPoblaciones_IID, TsrvProvinciasPoblaciones_Proxy); + RegisterProxyClass(IsrvGestorDocumentos_IID, TsrvGestorDocumentos_Proxy); + RegisterProxyClass(IsrvGestorInformes_IID, TsrvGestorInformes_Proxy); + + +finalization + UnregisterROClass(TRdxLoginInfo); + UnregisterROClass(TRdxEmpresasArray); + UnregisterROClass(TIntegerArray); + UnregisterProxyClass(IsrvContactos_IID); + UnregisterProxyClass(IsrvLogin_IID); + UnregisterProxyClass(IsrvInventario_IID); + UnregisterProxyClass(IsrvHistoricoMovimientos_IID); + UnregisterProxyClass(IsrvEmpresas_IID); + UnregisterProxyClass(IsrvConfiguracion_IID); + UnregisterProxyClass(IsrvFamilias_IID); + UnregisterProxyClass(IsrvFormasPago_IID); + UnregisterProxyClass(IsrvTiposIVA_IID); + UnregisterProxyClass(IsrvUsuarios_IID); + UnregisterProxyClass(IsrvAlmacenes_IID); + UnregisterProxyClass(IsrvArticulos_IID); + UnregisterProxyClass(IsrvRecibosCliente_IID); + UnregisterProxyClass(IsrvRecibosProveedor_IID); + UnregisterProxyClass(IsrvRemesasCliente_IID); + UnregisterProxyClass(IsrvRemesasProveedor_IID); + UnregisterProxyClass(IsrvFacturasCliente_IID); + UnregisterProxyClass(IsrvFacturasProveedor_IID); + UnregisterProxyClass(IsrvPresupuestosCliente_IID); + UnregisterProxyClass(IsrvPedidosProveedor_IID); + UnregisterProxyClass(IsrvAlbaranesCliente_IID); + UnregisterProxyClass(IsrvAlbaranesProveedor_IID); + UnregisterProxyClass(IsrvReferencias_IID); + UnregisterProxyClass(IsrvUnidadesMedida_IID); + UnregisterProxyClass(IsrvFabricantes_IID); + UnregisterProxyClass(IsrvObras_IID); + UnregisterProxyClass(IsrvProvinciasPoblaciones_IID); + UnregisterProxyClass(IsrvGestorDocumentos_IID); + UnregisterProxyClass(IsrvGestorInformes_IID); + +end. diff --git a/Source/Servicios/FactuGES_Invk.dcu b/Source/Servicios/FactuGES_Invk.dcu new file mode 100644 index 0000000..dd7ba24 Binary files /dev/null and b/Source/Servicios/FactuGES_Invk.dcu differ diff --git a/Source/Servicios/FactuGES_Invk.pas b/Source/Servicios/FactuGES_Invk.pas new file mode 100644 index 0000000..ef1ddeb --- /dev/null +++ b/Source/Servicios/FactuGES_Invk.pas @@ -0,0 +1,2219 @@ +unit FactuGES_Invk; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ Do not modify this unit manually, or your changes will be lost when this } +{ unit is regenerated the next time you compile the project. } +{----------------------------------------------------------------------------} + +{$I RemObjects.inc} + +interface + +uses + {vcl:} Classes, + {RemObjects:} uROXMLIntf, uROServer, uROServerIntf, uROTypes, uROClientIntf, + {Used RODL Intf's:} DataAbstract4_Intf, + {Used RODL Invk's:} DataAbstract4_Invk, + {Generated:} FactuGES_Intf; + +type + TsrvContactos_Invoker = class(TDataAbstractService_Invoker) + private + protected + public + constructor Create; override; + published + procedure Invoke_GenerarInformeFichaEmpleado(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GenerarInformeEtiquetas(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_DarListaDescripcionesProveedores(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_DarListaContratosEmpleados(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + + TsrvLogin_Invoker = class(TDataAbstractService_Invoker) + private + protected + public + constructor Create; override; + published + procedure Invoke_Login(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_Logout(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_Ping(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + + TsrvInventario_Invoker = class(TDataAbstractService_Invoker) + private + protected + public + constructor Create; override; + published + end; + + TsrvHistoricoMovimientos_Invoker = class(TDataAbstractService_Invoker) + private + protected + public + constructor Create; override; + published + end; + + TsrvEmpresas_Invoker = class(TDataAbstractService_Invoker) + private + protected + public + constructor Create; override; + published + procedure Invoke_DarListaFormasPago(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_DarListaTiposIVA(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_DarListaAlmacenes(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + + TsrvConfiguracion_Invoker = class(TDataAbstractService_Invoker) + private + protected + public + constructor Create; override; + published + procedure Invoke_darValor(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + + TsrvFamilias_Invoker = class(TDataAbstractService_Invoker) + private + protected + public + constructor Create; override; + published + end; + + TsrvFormasPago_Invoker = class(TDataAbstractService_Invoker) + private + protected + public + constructor Create; override; + published + end; + + TsrvTiposIVA_Invoker = class(TDataAbstractService_Invoker) + private + protected + public + constructor Create; override; + published + end; + + TsrvUsuarios_Invoker = class(TDataAbstractService_Invoker) + private + protected + public + constructor Create; override; + published + end; + + TsrvAlmacenes_Invoker = class(TDataAbstractService_Invoker) + private + protected + public + constructor Create; override; + published + procedure Invoke_DarListaAlmacenes(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + + TsrvArticulos_Invoker = class(TDataAbstractService_Invoker) + private + protected + public + constructor Create; override; + published + procedure Invoke_DarListaProveedoresConArticulos(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + + TsrvRecibosCliente_Invoker = class(TDataAbstractService_Invoker) + private + protected + public + constructor Create; override; + published + procedure Invoke_GenerarInforme(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + + TsrvRecibosProveedor_Invoker = class(TDataAbstractService_Invoker) + private + protected + public + constructor Create; override; + published + end; + + TsrvRemesasCliente_Invoker = class(TDataAbstractService_Invoker) + private + protected + public + constructor Create; override; + published + end; + + TsrvRemesasProveedor_Invoker = class(TDataAbstractService_Invoker) + private + protected + public + constructor Create; override; + published + end; + + TsrvFacturasCliente_Invoker = class(TDataAbstractService_Invoker) + private + protected + public + constructor Create; override; + published + procedure Invoke_GenerarInforme(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GenerarInformeEnWord(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GenerarInformeEnPDF(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + + TsrvFacturasProveedor_Invoker = class(TDataAbstractService_Invoker) + private + protected + public + constructor Create; override; + published + end; + + TsrvPresupuestosCliente_Invoker = class(TDataAbstractService_Invoker) + private + protected + public + constructor Create; override; + published + procedure Invoke_GenerarInforme(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GenerarInformeEnWord(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GenerarCertificadoTrabajosEnWord(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GenerarInformeEnPDF(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + + TsrvPedidosProveedor_Invoker = class(TDataAbstractService_Invoker) + private + protected + public + constructor Create; override; + published + procedure Invoke_GenerarInforme(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GenerarInformeEnWord(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GenerarInformeEnPDF(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + + TsrvAlbaranesCliente_Invoker = class(TDataAbstractService_Invoker) + private + protected + public + constructor Create; override; + published + procedure Invoke_GenerarInforme(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GenerarInformeEtiquetas(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GenerarInformeEnWord(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GenerarInformeEnPDF(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + + TsrvAlbaranesProveedor_Invoker = class(TDataAbstractService_Invoker) + private + protected + public + constructor Create; override; + published + procedure Invoke_GenerarInforme(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GenerarInformeEnWord(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GenerarInformeEnPDF(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + + TsrvReferencias_Invoker = class(TDataAbstractService_Invoker) + private + protected + public + constructor Create; override; + published + procedure Invoke_DarNuevaReferencia(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_IncrementarValorReferencia(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + + TsrvUnidadesMedida_Invoker = class(TDataAbstractService_Invoker) + private + protected + public + constructor Create; override; + published + end; + + TsrvFabricantes_Invoker = class(TDataAbstractService_Invoker) + private + protected + public + constructor Create; override; + published + end; + + TsrvObras_Invoker = class(TDataAbstractService_Invoker) + private + protected + public + constructor Create; override; + published + procedure Invoke_DarListaObras(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + + TsrvProvinciasPoblaciones_Invoker = class(TROInvoker) + private + protected + public + constructor Create; override; + published + procedure Invoke_DarListaProvincias(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_DarListaPoblaciones(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + + TsrvGestorDocumentos_Invoker = class(TDataAbstractService_Invoker) + private + protected + public + constructor Create; override; + published + procedure Invoke_DarListaFicheros(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_DescargarFichero(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_SubirFichero(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_EliminarFichero(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_EliminarID(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + + TsrvGestorInformes_Invoker = class(TDataAbstractService_Invoker) + private + protected + public + constructor Create; override; + published + procedure Invoke_GenerarInformeIVAClientes(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GenerarInformeIVAProveedores(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GenerarInformeListadoFacturasCli(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GenerarInformeListadoFacturasProv(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GenerarInformeListadoFacturasCliPendientes(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GenerarInformeListadoFacturasProvPendientes(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GenerarInformeListadoRecibosCliente(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GenerarInformeListadoRecibosProveedor(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GenerarInformeListadoRecibosCliPendientes(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GenerarInformeListadoRecibosProvPendientes(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GenerarInformeListadoPresupuestos(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GenerarInformeListadoPedidos(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + +implementation + +uses + {RemObjects:} uRORes, uROClient; + +{ TsrvContactos_Invoker } + +constructor TsrvContactos_Invoker.Create; +begin + inherited Create; + FAbstract := False; +end; + +procedure TsrvContactos_Invoker.Invoke_GenerarInformeFichaEmpleado(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerarInformeFichaEmpleado(const ListaID: TIntegerArray): Binary; } +var + ListaID: FactuGES_Intf.TIntegerArray; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + ListaID := nil; + lResult := nil; + try + __Message.Read('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); + + lResult := (__Instance as IsrvContactos).GenerarInformeFichaEmpleado(ListaID); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvContactos', 'GenerarInformeFichaEmpleadoResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(ListaID); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvContactos_Invoker.Invoke_GenerarInformeEtiquetas(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerarInformeEtiquetas(const ListaID: TIntegerArray): Binary; } +var + ListaID: FactuGES_Intf.TIntegerArray; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + ListaID := nil; + lResult := nil; + try + __Message.Read('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); + + lResult := (__Instance as IsrvContactos).GenerarInformeEtiquetas(ListaID); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvContactos', 'GenerarInformeEtiquetasResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(ListaID); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvContactos_Invoker.Invoke_DarListaDescripcionesProveedores(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function DarListaDescripcionesProveedores: AnsiString; } +var + lResult: AnsiString; +begin + try + lResult := (__Instance as IsrvContactos).DarListaDescripcionesProveedores; + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvContactos', 'DarListaDescripcionesProveedoresResponse'); + __Message.Write('Result', TypeInfo(AnsiString), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + end; +end; + +procedure TsrvContactos_Invoker.Invoke_DarListaContratosEmpleados(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function DarListaContratosEmpleados: AnsiString; } +var + lResult: AnsiString; +begin + try + lResult := (__Instance as IsrvContactos).DarListaContratosEmpleados; + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvContactos', 'DarListaContratosEmpleadosResponse'); + __Message.Write('Result', TypeInfo(AnsiString), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + end; +end; + +{ TsrvLogin_Invoker } + +constructor TsrvLogin_Invoker.Create; +begin + inherited Create; + FAbstract := False; +end; + +procedure TsrvLogin_Invoker.Invoke_Login(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function Login(const User: AnsiString; const Password: AnsiString; out LoginInfo: TRdxLoginInfo): Boolean; } +var + User: AnsiString; + Password: AnsiString; + LoginInfo: FactuGES_Intf.TRdxLoginInfo; + lResult: Boolean; + __lObjectDisposer: TROObjectDisposer; +begin + LoginInfo := nil; + try + __Message.Read('User', TypeInfo(AnsiString), User, []); + __Message.Read('Password', TypeInfo(AnsiString), Password, []); + + lResult := (__Instance as IsrvLogin).Login(User, Password, LoginInfo); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvLogin', 'LoginResponse'); + __Message.Write('Result', TypeInfo(Boolean), lResult, []); + __Message.Write('LoginInfo', TypeInfo(FactuGES_Intf.TRdxLoginInfo), LoginInfo, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(LoginInfo); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvLogin_Invoker.Invoke_Logout(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ procedure Logout; } +begin + try + (__Instance as IsrvLogin).Logout; + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvLogin', 'LogoutResponse'); + __Message.Finalize; + + __oResponseOptions := [roNoResponse]; + + finally + end; +end; + +procedure TsrvLogin_Invoker.Invoke_Ping(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function Ping: Boolean; } +var + lResult: Boolean; +begin + try + lResult := (__Instance as IsrvLogin).Ping; + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvLogin', 'PingResponse'); + __Message.Write('Result', TypeInfo(Boolean), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + end; +end; + +{ TsrvInventario_Invoker } + +constructor TsrvInventario_Invoker.Create; +begin + inherited Create; + FAbstract := False; +end; + +{ TsrvHistoricoMovimientos_Invoker } + +constructor TsrvHistoricoMovimientos_Invoker.Create; +begin + inherited Create; + FAbstract := False; +end; + +{ TsrvEmpresas_Invoker } + +constructor TsrvEmpresas_Invoker.Create; +begin + inherited Create; + FAbstract := False; +end; + +procedure TsrvEmpresas_Invoker.Invoke_DarListaFormasPago(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function DarListaFormasPago: Binary; } +var + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + lResult := (__Instance as IsrvEmpresas).DarListaFormasPago; + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvEmpresas', 'DarListaFormasPagoResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvEmpresas_Invoker.Invoke_DarListaTiposIVA(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function DarListaTiposIVA: Binary; } +var + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + lResult := (__Instance as IsrvEmpresas).DarListaTiposIVA; + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvEmpresas', 'DarListaTiposIVAResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvEmpresas_Invoker.Invoke_DarListaAlmacenes(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function DarListaAlmacenes(const ID_EMPRESA: Integer): Binary; } +var + ID_EMPRESA: Integer; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('ID_EMPRESA', TypeInfo(Integer), ID_EMPRESA, []); + + lResult := (__Instance as IsrvEmpresas).DarListaAlmacenes(ID_EMPRESA); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvEmpresas', 'DarListaAlmacenesResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +{ TsrvConfiguracion_Invoker } + +constructor TsrvConfiguracion_Invoker.Create; +begin + inherited Create; + FAbstract := False; +end; + +procedure TsrvConfiguracion_Invoker.Invoke_darValor(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function darValor(const CODIGO: AnsiString; const ValorPorDefecto: AnsiString): AnsiString; } +var + CODIGO: AnsiString; + ValorPorDefecto: AnsiString; + lResult: AnsiString; +begin + try + __Message.Read('CODIGO', TypeInfo(AnsiString), CODIGO, []); + __Message.Read('ValorPorDefecto', TypeInfo(AnsiString), ValorPorDefecto, []); + + lResult := (__Instance as IsrvConfiguracion).darValor(CODIGO, ValorPorDefecto); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvConfiguracion', 'darValorResponse'); + __Message.Write('Result', TypeInfo(AnsiString), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + end; +end; + +{ TsrvFamilias_Invoker } + +constructor TsrvFamilias_Invoker.Create; +begin + inherited Create; + FAbstract := False; +end; + +{ TsrvFormasPago_Invoker } + +constructor TsrvFormasPago_Invoker.Create; +begin + inherited Create; + FAbstract := False; +end; + +{ TsrvTiposIVA_Invoker } + +constructor TsrvTiposIVA_Invoker.Create; +begin + inherited Create; + FAbstract := False; +end; + +{ TsrvUsuarios_Invoker } + +constructor TsrvUsuarios_Invoker.Create; +begin + inherited Create; + FAbstract := False; +end; + +{ TsrvAlmacenes_Invoker } + +constructor TsrvAlmacenes_Invoker.Create; +begin + inherited Create; + FAbstract := False; +end; + +procedure TsrvAlmacenes_Invoker.Invoke_DarListaAlmacenes(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function DarListaAlmacenes(const IDEmpresa: Integer): Binary; } +var + IDEmpresa: Integer; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('IDEmpresa', TypeInfo(Integer), IDEmpresa, []); + + lResult := (__Instance as IsrvAlmacenes).DarListaAlmacenes(IDEmpresa); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvAlmacenes', 'DarListaAlmacenesResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +{ TsrvArticulos_Invoker } + +constructor TsrvArticulos_Invoker.Create; +begin + inherited Create; + FAbstract := False; +end; + +procedure TsrvArticulos_Invoker.Invoke_DarListaProveedoresConArticulos(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function DarListaProveedoresConArticulos(const IDEmpresa: Integer): Binary; } +var + IDEmpresa: Integer; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('IDEmpresa', TypeInfo(Integer), IDEmpresa, []); + + lResult := (__Instance as IsrvArticulos).DarListaProveedoresConArticulos(IDEmpresa); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvArticulos', 'DarListaProveedoresConArticulosResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +{ TsrvRecibosCliente_Invoker } + +constructor TsrvRecibosCliente_Invoker.Create; +begin + inherited Create; + FAbstract := False; +end; + +procedure TsrvRecibosCliente_Invoker.Invoke_GenerarInforme(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerarInforme(const ListaID: TIntegerArray): Binary; } +var + ListaID: FactuGES_Intf.TIntegerArray; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + ListaID := nil; + lResult := nil; + try + __Message.Read('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); + + lResult := (__Instance as IsrvRecibosCliente).GenerarInforme(ListaID); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvRecibosCliente', 'GenerarInformeResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(ListaID); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +{ TsrvRecibosProveedor_Invoker } + +constructor TsrvRecibosProveedor_Invoker.Create; +begin + inherited Create; + FAbstract := False; +end; + +{ TsrvRemesasCliente_Invoker } + +constructor TsrvRemesasCliente_Invoker.Create; +begin + inherited Create; + FAbstract := False; +end; + +{ TsrvRemesasProveedor_Invoker } + +constructor TsrvRemesasProveedor_Invoker.Create; +begin + inherited Create; + FAbstract := False; +end; + +{ TsrvFacturasCliente_Invoker } + +constructor TsrvFacturasCliente_Invoker.Create; +begin + inherited Create; + FAbstract := False; +end; + +procedure TsrvFacturasCliente_Invoker.Invoke_GenerarInforme(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerarInforme(const ListaID: TIntegerArray; const VerSello: Boolean; const VerCopia: Boolean): Binary; } +var + ListaID: FactuGES_Intf.TIntegerArray; + VerSello: Boolean; + VerCopia: Boolean; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + ListaID := nil; + lResult := nil; + try + __Message.Read('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); + __Message.Read('VerSello', TypeInfo(Boolean), VerSello, []); + __Message.Read('VerCopia', TypeInfo(Boolean), VerCopia, []); + + lResult := (__Instance as IsrvFacturasCliente).GenerarInforme(ListaID, VerSello, VerCopia); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvFacturasCliente', 'GenerarInformeResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(ListaID); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvFacturasCliente_Invoker.Invoke_GenerarInformeEnWord(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerarInformeEnWord(const ID: Integer; const VerSello: Boolean): Binary; } +var + ID: Integer; + VerSello: Boolean; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('ID', TypeInfo(Integer), ID, []); + __Message.Read('VerSello', TypeInfo(Boolean), VerSello, []); + + lResult := (__Instance as IsrvFacturasCliente).GenerarInformeEnWord(ID, VerSello); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvFacturasCliente', 'GenerarInformeEnWordResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvFacturasCliente_Invoker.Invoke_GenerarInformeEnPDF(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerSello: Boolean): Binary; } +var + ListaID: FactuGES_Intf.TIntegerArray; + VerSello: Boolean; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + ListaID := nil; + lResult := nil; + try + __Message.Read('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); + __Message.Read('VerSello', TypeInfo(Boolean), VerSello, []); + + lResult := (__Instance as IsrvFacturasCliente).GenerarInformeEnPDF(ListaID, VerSello); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvFacturasCliente', 'GenerarInformeEnPDFResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(ListaID); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +{ TsrvFacturasProveedor_Invoker } + +constructor TsrvFacturasProveedor_Invoker.Create; +begin + inherited Create; + FAbstract := False; +end; + +{ TsrvPresupuestosCliente_Invoker } + +constructor TsrvPresupuestosCliente_Invoker.Create; +begin + inherited Create; + FAbstract := False; +end; + +procedure TsrvPresupuestosCliente_Invoker.Invoke_GenerarInforme(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerarInforme(const ListaID: TIntegerArray; const VerSello: Integer): Binary; } +var + ListaID: FactuGES_Intf.TIntegerArray; + VerSello: Integer; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + ListaID := nil; + lResult := nil; + try + __Message.Read('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); + __Message.Read('VerSello', TypeInfo(Integer), VerSello, []); + + lResult := (__Instance as IsrvPresupuestosCliente).GenerarInforme(ListaID, VerSello); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvPresupuestosCliente', 'GenerarInformeResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(ListaID); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvPresupuestosCliente_Invoker.Invoke_GenerarInformeEnWord(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerarInformeEnWord(const ID: Integer; const VerSello: Integer): Binary; } +var + ID: Integer; + VerSello: Integer; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('ID', TypeInfo(Integer), ID, []); + __Message.Read('VerSello', TypeInfo(Integer), VerSello, []); + + lResult := (__Instance as IsrvPresupuestosCliente).GenerarInformeEnWord(ID, VerSello); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvPresupuestosCliente', 'GenerarInformeEnWordResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvPresupuestosCliente_Invoker.Invoke_GenerarCertificadoTrabajosEnWord(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerarCertificadoTrabajosEnWord(const ID: Integer): Binary; } +var + ID: Integer; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('ID', TypeInfo(Integer), ID, []); + + lResult := (__Instance as IsrvPresupuestosCliente).GenerarCertificadoTrabajosEnWord(ID); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvPresupuestosCliente', 'GenerarCertificadoTrabajosEnWordResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvPresupuestosCliente_Invoker.Invoke_GenerarInformeEnPDF(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerSello: Integer): Binary; } +var + ListaID: FactuGES_Intf.TIntegerArray; + VerSello: Integer; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + ListaID := nil; + lResult := nil; + try + __Message.Read('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); + __Message.Read('VerSello', TypeInfo(Integer), VerSello, []); + + lResult := (__Instance as IsrvPresupuestosCliente).GenerarInformeEnPDF(ListaID, VerSello); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvPresupuestosCliente', 'GenerarInformeEnPDFResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(ListaID); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +{ TsrvPedidosProveedor_Invoker } + +constructor TsrvPedidosProveedor_Invoker.Create; +begin + inherited Create; + FAbstract := False; +end; + +procedure TsrvPedidosProveedor_Invoker.Invoke_GenerarInforme(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerarInforme(const ListaID: TIntegerArray; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; } +var + ListaID: FactuGES_Intf.TIntegerArray; + ImprimirPrecio: Boolean; + ImprimirRefProveedor: Boolean; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + ListaID := nil; + lResult := nil; + try + __Message.Read('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); + __Message.Read('ImprimirPrecio', TypeInfo(Boolean), ImprimirPrecio, []); + __Message.Read('ImprimirRefProveedor', TypeInfo(Boolean), ImprimirRefProveedor, []); + + lResult := (__Instance as IsrvPedidosProveedor).GenerarInforme(ListaID, ImprimirPrecio, ImprimirRefProveedor); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvPedidosProveedor', 'GenerarInformeResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(ListaID); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvPedidosProveedor_Invoker.Invoke_GenerarInformeEnWord(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerarInformeEnWord(const ID: Integer; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; } +var + ID: Integer; + ImprimirPrecio: Boolean; + ImprimirRefProveedor: Boolean; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('ID', TypeInfo(Integer), ID, []); + __Message.Read('ImprimirPrecio', TypeInfo(Boolean), ImprimirPrecio, []); + __Message.Read('ImprimirRefProveedor', TypeInfo(Boolean), ImprimirRefProveedor, []); + + lResult := (__Instance as IsrvPedidosProveedor).GenerarInformeEnWord(ID, ImprimirPrecio, ImprimirRefProveedor); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvPedidosProveedor', 'GenerarInformeEnWordResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvPedidosProveedor_Invoker.Invoke_GenerarInformeEnPDF(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerarInformeEnPDF(const ListaID: TIntegerArray; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; } +var + ListaID: FactuGES_Intf.TIntegerArray; + ImprimirPrecio: Boolean; + ImprimirRefProveedor: Boolean; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + ListaID := nil; + lResult := nil; + try + __Message.Read('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); + __Message.Read('ImprimirPrecio', TypeInfo(Boolean), ImprimirPrecio, []); + __Message.Read('ImprimirRefProveedor', TypeInfo(Boolean), ImprimirRefProveedor, []); + + lResult := (__Instance as IsrvPedidosProveedor).GenerarInformeEnPDF(ListaID, ImprimirPrecio, ImprimirRefProveedor); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvPedidosProveedor', 'GenerarInformeEnPDFResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(ListaID); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +{ TsrvAlbaranesCliente_Invoker } + +constructor TsrvAlbaranesCliente_Invoker.Create; +begin + inherited Create; + FAbstract := False; +end; + +procedure TsrvAlbaranesCliente_Invoker.Invoke_GenerarInforme(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerarInforme(const ListaID: TIntegerArray): Binary; } +var + ListaID: FactuGES_Intf.TIntegerArray; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + ListaID := nil; + lResult := nil; + try + __Message.Read('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); + + lResult := (__Instance as IsrvAlbaranesCliente).GenerarInforme(ListaID); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvAlbaranesCliente', 'GenerarInformeResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(ListaID); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvAlbaranesCliente_Invoker.Invoke_GenerarInformeEtiquetas(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerarInformeEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary; } +var + ID: Integer; + withRefCliente: Boolean; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('ID', TypeInfo(Integer), ID, []); + __Message.Read('withRefCliente', TypeInfo(Boolean), withRefCliente, []); + + lResult := (__Instance as IsrvAlbaranesCliente).GenerarInformeEtiquetas(ID, withRefCliente); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvAlbaranesCliente', 'GenerarInformeEtiquetasResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvAlbaranesCliente_Invoker.Invoke_GenerarInformeEnWord(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerarInformeEnWord(const ID: Integer): Binary; } +var + ID: Integer; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('ID', TypeInfo(Integer), ID, []); + + lResult := (__Instance as IsrvAlbaranesCliente).GenerarInformeEnWord(ID); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvAlbaranesCliente', 'GenerarInformeEnWordResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvAlbaranesCliente_Invoker.Invoke_GenerarInformeEnPDF(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerarInformeEnPDF(const ListaID: TIntegerArray): Binary; } +var + ListaID: FactuGES_Intf.TIntegerArray; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + ListaID := nil; + lResult := nil; + try + __Message.Read('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); + + lResult := (__Instance as IsrvAlbaranesCliente).GenerarInformeEnPDF(ListaID); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvAlbaranesCliente', 'GenerarInformeEnPDFResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(ListaID); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +{ TsrvAlbaranesProveedor_Invoker } + +constructor TsrvAlbaranesProveedor_Invoker.Create; +begin + inherited Create; + FAbstract := False; +end; + +procedure TsrvAlbaranesProveedor_Invoker.Invoke_GenerarInforme(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerarInforme(const ListaID: TIntegerArray; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; } +var + ListaID: FactuGES_Intf.TIntegerArray; + ImprimirPrecio: Boolean; + ImprimirRefProveedor: Boolean; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + ListaID := nil; + lResult := nil; + try + __Message.Read('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); + __Message.Read('ImprimirPrecio', TypeInfo(Boolean), ImprimirPrecio, []); + __Message.Read('ImprimirRefProveedor', TypeInfo(Boolean), ImprimirRefProveedor, []); + + lResult := (__Instance as IsrvAlbaranesProveedor).GenerarInforme(ListaID, ImprimirPrecio, ImprimirRefProveedor); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvAlbaranesProveedor', 'GenerarInformeResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(ListaID); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvAlbaranesProveedor_Invoker.Invoke_GenerarInformeEnWord(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerarInformeEnWord(const ID: Integer; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; } +var + ID: Integer; + ImprimirPrecio: Boolean; + ImprimirRefProveedor: Boolean; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('ID', TypeInfo(Integer), ID, []); + __Message.Read('ImprimirPrecio', TypeInfo(Boolean), ImprimirPrecio, []); + __Message.Read('ImprimirRefProveedor', TypeInfo(Boolean), ImprimirRefProveedor, []); + + lResult := (__Instance as IsrvAlbaranesProveedor).GenerarInformeEnWord(ID, ImprimirPrecio, ImprimirRefProveedor); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvAlbaranesProveedor', 'GenerarInformeEnWordResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvAlbaranesProveedor_Invoker.Invoke_GenerarInformeEnPDF(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerarInformeEnPDF(const ListaID: TIntegerArray; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary; } +var + ListaID: FactuGES_Intf.TIntegerArray; + ImprimirPrecio: Boolean; + ImprimirRefProveedor: Boolean; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + ListaID := nil; + lResult := nil; + try + __Message.Read('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); + __Message.Read('ImprimirPrecio', TypeInfo(Boolean), ImprimirPrecio, []); + __Message.Read('ImprimirRefProveedor', TypeInfo(Boolean), ImprimirRefProveedor, []); + + lResult := (__Instance as IsrvAlbaranesProveedor).GenerarInformeEnPDF(ListaID, ImprimirPrecio, ImprimirRefProveedor); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvAlbaranesProveedor', 'GenerarInformeEnPDFResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(ListaID); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +{ TsrvReferencias_Invoker } + +constructor TsrvReferencias_Invoker.Create; +begin + inherited Create; + FAbstract := False; +end; + +procedure TsrvReferencias_Invoker.Invoke_DarNuevaReferencia(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function DarNuevaReferencia(const NombreReferencia: AnsiString; const EmpresaID: Integer): AnsiString; } +var + NombreReferencia: AnsiString; + EmpresaID: Integer; + lResult: AnsiString; +begin + try + __Message.Read('NombreReferencia', TypeInfo(AnsiString), NombreReferencia, []); + __Message.Read('EmpresaID', TypeInfo(Integer), EmpresaID, []); + + lResult := (__Instance as IsrvReferencias).DarNuevaReferencia(NombreReferencia, EmpresaID); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvReferencias', 'DarNuevaReferenciaResponse'); + __Message.Write('Result', TypeInfo(AnsiString), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + end; +end; + +procedure TsrvReferencias_Invoker.Invoke_IncrementarValorReferencia(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function IncrementarValorReferencia(const NombreReferencia: AnsiString; const Valor: AnsiString; const EmpresaID: Integer): Boolean; } +var + NombreReferencia: AnsiString; + Valor: AnsiString; + EmpresaID: Integer; + lResult: Boolean; +begin + try + __Message.Read('NombreReferencia', TypeInfo(AnsiString), NombreReferencia, []); + __Message.Read('Valor', TypeInfo(AnsiString), Valor, []); + __Message.Read('EmpresaID', TypeInfo(Integer), EmpresaID, []); + + lResult := (__Instance as IsrvReferencias).IncrementarValorReferencia(NombreReferencia, Valor, EmpresaID); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvReferencias', 'IncrementarValorReferenciaResponse'); + __Message.Write('Result', TypeInfo(Boolean), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + end; +end; + +{ TsrvUnidadesMedida_Invoker } + +constructor TsrvUnidadesMedida_Invoker.Create; +begin + inherited Create; + FAbstract := False; +end; + +{ TsrvFabricantes_Invoker } + +constructor TsrvFabricantes_Invoker.Create; +begin + inherited Create; + FAbstract := False; +end; + +{ TsrvObras_Invoker } + +constructor TsrvObras_Invoker.Create; +begin + inherited Create; + FAbstract := False; +end; + +procedure TsrvObras_Invoker.Invoke_DarListaObras(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function DarListaObras(const IDEmpresa: Integer): Binary; } +var + IDEmpresa: Integer; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('IDEmpresa', TypeInfo(Integer), IDEmpresa, []); + + lResult := (__Instance as IsrvObras).DarListaObras(IDEmpresa); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvObras', 'DarListaObrasResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +{ TsrvProvinciasPoblaciones_Invoker } + +constructor TsrvProvinciasPoblaciones_Invoker.Create; +begin + inherited Create; + FAbstract := False; +end; + +procedure TsrvProvinciasPoblaciones_Invoker.Invoke_DarListaProvincias(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function DarListaProvincias: Binary; } +var + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + lResult := (__Instance as IsrvProvinciasPoblaciones).DarListaProvincias; + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvProvinciasPoblaciones', 'DarListaProvinciasResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvProvinciasPoblaciones_Invoker.Invoke_DarListaPoblaciones(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function DarListaPoblaciones(const ID_Provincia: Integer): Binary; } +var + ID_Provincia: Integer; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('ID_Provincia', TypeInfo(Integer), ID_Provincia, []); + + lResult := (__Instance as IsrvProvinciasPoblaciones).DarListaPoblaciones(ID_Provincia); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvProvinciasPoblaciones', 'DarListaPoblacionesResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +{ TsrvGestorDocumentos_Invoker } + +constructor TsrvGestorDocumentos_Invoker.Create; +begin + inherited Create; + FAbstract := False; +end; + +procedure TsrvGestorDocumentos_Invoker.Invoke_DarListaFicheros(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function DarListaFicheros(const Almacen: TRdxAlmacenes; const ID: Integer): StringArray; } +var + Almacen: FactuGES_Intf.TRdxAlmacenes; + ID: Integer; + lResult: DataAbstract4_Intf.StringArray; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('Almacen', TypeInfo(FactuGES_Intf.TRdxAlmacenes), Almacen, []); + __Message.Read('ID', TypeInfo(Integer), ID, []); + + lResult := (__Instance as IsrvGestorDocumentos).DarListaFicheros(Almacen, ID); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvGestorDocumentos', 'DarListaFicherosResponse'); + __Message.Write('Result', TypeInfo(DataAbstract4_Intf.StringArray), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvGestorDocumentos_Invoker.Invoke_DescargarFichero(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function DescargarFichero(const Almacen: TRdxAlmacenes; const ID: Integer; const NombreFichero: AnsiString): Binary; } +var + Almacen: FactuGES_Intf.TRdxAlmacenes; + ID: Integer; + NombreFichero: AnsiString; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('Almacen', TypeInfo(FactuGES_Intf.TRdxAlmacenes), Almacen, []); + __Message.Read('ID', TypeInfo(Integer), ID, []); + __Message.Read('NombreFichero', TypeInfo(AnsiString), NombreFichero, []); + + lResult := (__Instance as IsrvGestorDocumentos).DescargarFichero(Almacen, ID, NombreFichero); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvGestorDocumentos', 'DescargarFicheroResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvGestorDocumentos_Invoker.Invoke_SubirFichero(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function SubirFichero(const Almacen: TRdxAlmacenes; const ID: Integer; const NombreFichero: AnsiString; const Fichero: Binary): Boolean; } +var + Almacen: FactuGES_Intf.TRdxAlmacenes; + ID: Integer; + NombreFichero: AnsiString; + Fichero: Binary; + lResult: Boolean; + __lObjectDisposer: TROObjectDisposer; +begin + Fichero := nil; + try + __Message.Read('Almacen', TypeInfo(FactuGES_Intf.TRdxAlmacenes), Almacen, []); + __Message.Read('ID', TypeInfo(Integer), ID, []); + __Message.Read('NombreFichero', TypeInfo(AnsiString), NombreFichero, []); + __Message.Read('Fichero', TypeInfo(Binary), Fichero, []); + + lResult := (__Instance as IsrvGestorDocumentos).SubirFichero(Almacen, ID, NombreFichero, Fichero); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvGestorDocumentos', 'SubirFicheroResponse'); + __Message.Write('Result', TypeInfo(Boolean), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(Fichero); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvGestorDocumentos_Invoker.Invoke_EliminarFichero(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function EliminarFichero(const Almacen: TRdxAlmacenes; const ID: Integer; const NombreFichero: AnsiString): Boolean; } +var + Almacen: FactuGES_Intf.TRdxAlmacenes; + ID: Integer; + NombreFichero: AnsiString; + lResult: Boolean; +begin + try + __Message.Read('Almacen', TypeInfo(FactuGES_Intf.TRdxAlmacenes), Almacen, []); + __Message.Read('ID', TypeInfo(Integer), ID, []); + __Message.Read('NombreFichero', TypeInfo(AnsiString), NombreFichero, []); + + lResult := (__Instance as IsrvGestorDocumentos).EliminarFichero(Almacen, ID, NombreFichero); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvGestorDocumentos', 'EliminarFicheroResponse'); + __Message.Write('Result', TypeInfo(Boolean), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + end; +end; + +procedure TsrvGestorDocumentos_Invoker.Invoke_EliminarID(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function EliminarID(const Almacen: TRdxAlmacenes; const ID: Integer): Boolean; } +var + Almacen: FactuGES_Intf.TRdxAlmacenes; + ID: Integer; + lResult: Boolean; +begin + try + __Message.Read('Almacen', TypeInfo(FactuGES_Intf.TRdxAlmacenes), Almacen, []); + __Message.Read('ID', TypeInfo(Integer), ID, []); + + lResult := (__Instance as IsrvGestorDocumentos).EliminarID(Almacen, ID); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvGestorDocumentos', 'EliminarIDResponse'); + __Message.Write('Result', TypeInfo(Boolean), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + end; +end; + +{ TsrvGestorInformes_Invoker } + +constructor TsrvGestorInformes_Invoker.Create; +begin + inherited Create; + FAbstract := False; +end; + +procedure TsrvGestorInformes_Invoker.Invoke_GenerarInformeIVAClientes(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerarInformeIVAClientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; + const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; } +var + IdEmpresa: Integer; + FechaInicio: Variant; + FechaFin: Variant; + ListaIDClientes: FactuGES_Intf.TIntegerArray; + Desglosado: Boolean; + ImporteMinimo: Currency; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + ListaIDClientes := nil; + lResult := nil; + try + __Message.Read('IdEmpresa', TypeInfo(Integer), IdEmpresa, []); + __Message.Read('FechaInicio', TypeInfo(Variant), FechaInicio, []); + __Message.Read('FechaFin', TypeInfo(Variant), FechaFin, []); + __Message.Read('ListaIDClientes', TypeInfo(FactuGES_Intf.TIntegerArray), ListaIDClientes, []); + __Message.Read('Desglosado', TypeInfo(Boolean), Desglosado, []); + __Message.Read('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []); + + lResult := (__Instance as IsrvGestorInformes).GenerarInformeIVAClientes(IdEmpresa, FechaInicio, FechaFin, ListaIDClientes, Desglosado, ImporteMinimo); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvGestorInformes', 'GenerarInformeIVAClientesResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(ListaIDClientes); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvGestorInformes_Invoker.Invoke_GenerarInformeIVAProveedores(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerarInformeIVAProveedores(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDProveedores: TIntegerArray; + const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; } +var + IdEmpresa: Integer; + FechaInicio: Variant; + FechaFin: Variant; + ListaIDProveedores: FactuGES_Intf.TIntegerArray; + Desglosado: Boolean; + ImporteMinimo: Currency; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + ListaIDProveedores := nil; + lResult := nil; + try + __Message.Read('IdEmpresa', TypeInfo(Integer), IdEmpresa, []); + __Message.Read('FechaInicio', TypeInfo(Variant), FechaInicio, []); + __Message.Read('FechaFin', TypeInfo(Variant), FechaFin, []); + __Message.Read('ListaIDProveedores', TypeInfo(FactuGES_Intf.TIntegerArray), ListaIDProveedores, []); + __Message.Read('Desglosado', TypeInfo(Boolean), Desglosado, []); + __Message.Read('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []); + + lResult := (__Instance as IsrvGestorInformes).GenerarInformeIVAProveedores(IdEmpresa, FechaInicio, FechaFin, ListaIDProveedores, Desglosado, ImporteMinimo); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvGestorInformes', 'GenerarInformeIVAProveedoresResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(ListaIDProveedores); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvGestorInformes_Invoker.Invoke_GenerarInformeListadoFacturasCli(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerarInformeListadoFacturasCli(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; + const FechaVenFin: Variant; const ListadoIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; } +var + IdEmpresa: Integer; + FechaInicio: Variant; + FechaFin: Variant; + FechaVenInicio: Variant; + FechaVenFin: Variant; + ListadoIDClientes: FactuGES_Intf.TIntegerArray; + Desglosado: Boolean; + ImporteMinimo: Currency; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + ListadoIDClientes := nil; + lResult := nil; + try + __Message.Read('IdEmpresa', TypeInfo(Integer), IdEmpresa, []); + __Message.Read('FechaInicio', TypeInfo(Variant), FechaInicio, []); + __Message.Read('FechaFin', TypeInfo(Variant), FechaFin, []); + __Message.Read('FechaVenInicio', TypeInfo(Variant), FechaVenInicio, []); + __Message.Read('FechaVenFin', TypeInfo(Variant), FechaVenFin, []); + __Message.Read('ListadoIDClientes', TypeInfo(FactuGES_Intf.TIntegerArray), ListadoIDClientes, []); + __Message.Read('Desglosado', TypeInfo(Boolean), Desglosado, []); + __Message.Read('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []); + + lResult := (__Instance as IsrvGestorInformes).GenerarInformeListadoFacturasCli(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListadoIDClientes, Desglosado, ImporteMinimo); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvGestorInformes', 'GenerarInformeListadoFacturasCliResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(ListadoIDClientes); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvGestorInformes_Invoker.Invoke_GenerarInformeListadoFacturasProv(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerarInformeListadoFacturasProv(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; + const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; } +var + IdEmpresa: Integer; + FechaInicio: Variant; + FechaFin: Variant; + FechaVenInicio: Variant; + FechaVenFin: Variant; + ListaIDProveedores: FactuGES_Intf.TIntegerArray; + Desglosado: Boolean; + ImporteMinimo: Currency; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + ListaIDProveedores := nil; + lResult := nil; + try + __Message.Read('IdEmpresa', TypeInfo(Integer), IdEmpresa, []); + __Message.Read('FechaInicio', TypeInfo(Variant), FechaInicio, []); + __Message.Read('FechaFin', TypeInfo(Variant), FechaFin, []); + __Message.Read('FechaVenInicio', TypeInfo(Variant), FechaVenInicio, []); + __Message.Read('FechaVenFin', TypeInfo(Variant), FechaVenFin, []); + __Message.Read('ListaIDProveedores', TypeInfo(FactuGES_Intf.TIntegerArray), ListaIDProveedores, []); + __Message.Read('Desglosado', TypeInfo(Boolean), Desglosado, []); + __Message.Read('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []); + + lResult := (__Instance as IsrvGestorInformes).GenerarInformeListadoFacturasProv(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIDProveedores, Desglosado, ImporteMinimo); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvGestorInformes', 'GenerarInformeListadoFacturasProvResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(ListaIDProveedores); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvGestorInformes_Invoker.Invoke_GenerarInformeListadoFacturasCliPendientes(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerarInformeListadoFacturasCliPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; + const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; } +var + IdEmpresa: Integer; + FechaInicio: Variant; + FechaFin: Variant; + FechaVenInicio: Variant; + FechaVenFin: Variant; + ListaIDClientes: FactuGES_Intf.TIntegerArray; + Desglosado: Boolean; + ImporteMinimo: Currency; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + ListaIDClientes := nil; + lResult := nil; + try + __Message.Read('IdEmpresa', TypeInfo(Integer), IdEmpresa, []); + __Message.Read('FechaInicio', TypeInfo(Variant), FechaInicio, []); + __Message.Read('FechaFin', TypeInfo(Variant), FechaFin, []); + __Message.Read('FechaVenInicio', TypeInfo(Variant), FechaVenInicio, []); + __Message.Read('FechaVenFin', TypeInfo(Variant), FechaVenFin, []); + __Message.Read('ListaIDClientes', TypeInfo(FactuGES_Intf.TIntegerArray), ListaIDClientes, []); + __Message.Read('Desglosado', TypeInfo(Boolean), Desglosado, []); + __Message.Read('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []); + + lResult := (__Instance as IsrvGestorInformes).GenerarInformeListadoFacturasCliPendientes(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIDClientes, Desglosado, ImporteMinimo); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvGestorInformes', 'GenerarInformeListadoFacturasCliPendientesResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(ListaIDClientes); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvGestorInformes_Invoker.Invoke_GenerarInformeListadoFacturasProvPendientes(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerarInformeListadoFacturasProvPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; + const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; } +var + IdEmpresa: Integer; + FechaInicio: Variant; + FechaFin: Variant; + FechaVenInicio: Variant; + FechaVenFin: Variant; + ListaIDProveedores: FactuGES_Intf.TIntegerArray; + Desglosado: Boolean; + ImporteMinimo: Currency; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + ListaIDProveedores := nil; + lResult := nil; + try + __Message.Read('IdEmpresa', TypeInfo(Integer), IdEmpresa, []); + __Message.Read('FechaInicio', TypeInfo(Variant), FechaInicio, []); + __Message.Read('FechaFin', TypeInfo(Variant), FechaFin, []); + __Message.Read('FechaVenInicio', TypeInfo(Variant), FechaVenInicio, []); + __Message.Read('FechaVenFin', TypeInfo(Variant), FechaVenFin, []); + __Message.Read('ListaIDProveedores', TypeInfo(FactuGES_Intf.TIntegerArray), ListaIDProveedores, []); + __Message.Read('Desglosado', TypeInfo(Boolean), Desglosado, []); + __Message.Read('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []); + + lResult := (__Instance as IsrvGestorInformes).GenerarInformeListadoFacturasProvPendientes(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIDProveedores, Desglosado, ImporteMinimo); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvGestorInformes', 'GenerarInformeListadoFacturasProvPendientesResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(ListaIDProveedores); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvGestorInformes_Invoker.Invoke_GenerarInformeListadoRecibosCliente(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerarInformeListadoRecibosCliente(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; + const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; } +var + IdEmpresa: Integer; + FechaInicio: Variant; + FechaFin: Variant; + FechaVenInicio: Variant; + FechaVenFin: Variant; + ListaIDClientes: FactuGES_Intf.TIntegerArray; + Desglosado: Boolean; + ImporteMinimo: Currency; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + ListaIDClientes := nil; + lResult := nil; + try + __Message.Read('IdEmpresa', TypeInfo(Integer), IdEmpresa, []); + __Message.Read('FechaInicio', TypeInfo(Variant), FechaInicio, []); + __Message.Read('FechaFin', TypeInfo(Variant), FechaFin, []); + __Message.Read('FechaVenInicio', TypeInfo(Variant), FechaVenInicio, []); + __Message.Read('FechaVenFin', TypeInfo(Variant), FechaVenFin, []); + __Message.Read('ListaIDClientes', TypeInfo(FactuGES_Intf.TIntegerArray), ListaIDClientes, []); + __Message.Read('Desglosado', TypeInfo(Boolean), Desglosado, []); + __Message.Read('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []); + + lResult := (__Instance as IsrvGestorInformes).GenerarInformeListadoRecibosCliente(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIDClientes, Desglosado, ImporteMinimo); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvGestorInformes', 'GenerarInformeListadoRecibosClienteResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(ListaIDClientes); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvGestorInformes_Invoker.Invoke_GenerarInformeListadoRecibosProveedor(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerarInformeListadoRecibosProveedor(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; + const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; } +var + IdEmpresa: Integer; + FechaInicio: Variant; + FechaFin: Variant; + FechaVenInicio: Variant; + FechaVenFin: Variant; + ListaIDProveedores: FactuGES_Intf.TIntegerArray; + Desglosado: Boolean; + ImporteMinimo: Currency; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + ListaIDProveedores := nil; + lResult := nil; + try + __Message.Read('IdEmpresa', TypeInfo(Integer), IdEmpresa, []); + __Message.Read('FechaInicio', TypeInfo(Variant), FechaInicio, []); + __Message.Read('FechaFin', TypeInfo(Variant), FechaFin, []); + __Message.Read('FechaVenInicio', TypeInfo(Variant), FechaVenInicio, []); + __Message.Read('FechaVenFin', TypeInfo(Variant), FechaVenFin, []); + __Message.Read('ListaIDProveedores', TypeInfo(FactuGES_Intf.TIntegerArray), ListaIDProveedores, []); + __Message.Read('Desglosado', TypeInfo(Boolean), Desglosado, []); + __Message.Read('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []); + + lResult := (__Instance as IsrvGestorInformes).GenerarInformeListadoRecibosProveedor(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIDProveedores, Desglosado, ImporteMinimo); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvGestorInformes', 'GenerarInformeListadoRecibosProveedorResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(ListaIDProveedores); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvGestorInformes_Invoker.Invoke_GenerarInformeListadoRecibosCliPendientes(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerarInformeListadoRecibosCliPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; + const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; } +var + IdEmpresa: Integer; + FechaInicio: Variant; + FechaFin: Variant; + FechaVenInicio: Variant; + FechaVenFin: Variant; + ListaIDClientes: FactuGES_Intf.TIntegerArray; + Desglosado: Boolean; + ImporteMinimo: Currency; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + ListaIDClientes := nil; + lResult := nil; + try + __Message.Read('IdEmpresa', TypeInfo(Integer), IdEmpresa, []); + __Message.Read('FechaInicio', TypeInfo(Variant), FechaInicio, []); + __Message.Read('FechaFin', TypeInfo(Variant), FechaFin, []); + __Message.Read('FechaVenInicio', TypeInfo(Variant), FechaVenInicio, []); + __Message.Read('FechaVenFin', TypeInfo(Variant), FechaVenFin, []); + __Message.Read('ListaIDClientes', TypeInfo(FactuGES_Intf.TIntegerArray), ListaIDClientes, []); + __Message.Read('Desglosado', TypeInfo(Boolean), Desglosado, []); + __Message.Read('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []); + + lResult := (__Instance as IsrvGestorInformes).GenerarInformeListadoRecibosCliPendientes(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIDClientes, Desglosado, ImporteMinimo); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvGestorInformes', 'GenerarInformeListadoRecibosCliPendientesResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(ListaIDClientes); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvGestorInformes_Invoker.Invoke_GenerarInformeListadoRecibosProvPendientes(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerarInformeListadoRecibosProvPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; + const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; } +var + IdEmpresa: Integer; + FechaInicio: Variant; + FechaFin: Variant; + FechaVenInicio: Variant; + FechaVenFin: Variant; + ListaIDProveedores: FactuGES_Intf.TIntegerArray; + Desglosado: Boolean; + ImporteMinimo: Currency; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + ListaIDProveedores := nil; + lResult := nil; + try + __Message.Read('IdEmpresa', TypeInfo(Integer), IdEmpresa, []); + __Message.Read('FechaInicio', TypeInfo(Variant), FechaInicio, []); + __Message.Read('FechaFin', TypeInfo(Variant), FechaFin, []); + __Message.Read('FechaVenInicio', TypeInfo(Variant), FechaVenInicio, []); + __Message.Read('FechaVenFin', TypeInfo(Variant), FechaVenFin, []); + __Message.Read('ListaIDProveedores', TypeInfo(FactuGES_Intf.TIntegerArray), ListaIDProveedores, []); + __Message.Read('Desglosado', TypeInfo(Boolean), Desglosado, []); + __Message.Read('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []); + + lResult := (__Instance as IsrvGestorInformes).GenerarInformeListadoRecibosProvPendientes(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIDProveedores, Desglosado, ImporteMinimo); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvGestorInformes', 'GenerarInformeListadoRecibosProvPendientesResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(ListaIDProveedores); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvGestorInformes_Invoker.Invoke_GenerarInformeListadoPresupuestos(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerarInformeListadoPresupuestos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; + const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; } +var + IdEmpresa: Integer; + FechaInicio: Variant; + FechaFin: Variant; + ListaIDClientes: FactuGES_Intf.TIntegerArray; + Desglosado: Boolean; + ImporteMinimo: Currency; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + ListaIDClientes := nil; + lResult := nil; + try + __Message.Read('IdEmpresa', TypeInfo(Integer), IdEmpresa, []); + __Message.Read('FechaInicio', TypeInfo(Variant), FechaInicio, []); + __Message.Read('FechaFin', TypeInfo(Variant), FechaFin, []); + __Message.Read('ListaIDClientes', TypeInfo(FactuGES_Intf.TIntegerArray), ListaIDClientes, []); + __Message.Read('Desglosado', TypeInfo(Boolean), Desglosado, []); + __Message.Read('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []); + + lResult := (__Instance as IsrvGestorInformes).GenerarInformeListadoPresupuestos(IdEmpresa, FechaInicio, FechaFin, ListaIDClientes, Desglosado, ImporteMinimo); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvGestorInformes', 'GenerarInformeListadoPresupuestosResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(ListaIDClientes); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvGestorInformes_Invoker.Invoke_GenerarInformeListadoPedidos(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerarInformeListadoPedidos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDProveedores: TIntegerArray; + const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; } +var + IdEmpresa: Integer; + FechaInicio: Variant; + FechaFin: Variant; + ListaIDProveedores: FactuGES_Intf.TIntegerArray; + Desglosado: Boolean; + ImporteMinimo: Currency; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + ListaIDProveedores := nil; + lResult := nil; + try + __Message.Read('IdEmpresa', TypeInfo(Integer), IdEmpresa, []); + __Message.Read('FechaInicio', TypeInfo(Variant), FechaInicio, []); + __Message.Read('FechaFin', TypeInfo(Variant), FechaFin, []); + __Message.Read('ListaIDProveedores', TypeInfo(FactuGES_Intf.TIntegerArray), ListaIDProveedores, []); + __Message.Read('Desglosado', TypeInfo(Boolean), Desglosado, []); + __Message.Read('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []); + + lResult := (__Instance as IsrvGestorInformes).GenerarInformeListadoPedidos(IdEmpresa, FechaInicio, FechaFin, ListaIDProveedores, Desglosado, ImporteMinimo); + + __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvGestorInformes', 'GenerarInformeListadoPedidosResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(ListaIDProveedores); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +initialization +end. diff --git a/Source/Servicios/RODLFILE.res b/Source/Servicios/RODLFILE.res new file mode 100644 index 0000000..02ed795 Binary files /dev/null and b/Source/Servicios/RODLFILE.res differ diff --git a/Source/Servidor/AHWord97.dcu b/Source/Servidor/AHWord97.dcu new file mode 100644 index 0000000..23d0587 Binary files /dev/null and b/Source/Servidor/AHWord97.dcu differ diff --git a/Source/Servidor/Configuracion/srvConfiguracion_Impl.dcu b/Source/Servidor/Configuracion/srvConfiguracion_Impl.dcu new file mode 100644 index 0000000..711d7f5 Binary files /dev/null and b/Source/Servidor/Configuracion/srvConfiguracion_Impl.dcu differ diff --git a/Source/Servidor/Configuracion/srvConfiguracion_Impl.dfm b/Source/Servidor/Configuracion/srvConfiguracion_Impl.dfm new file mode 100644 index 0000000..4f24e05 --- /dev/null +++ b/Source/Servidor/Configuracion/srvConfiguracion_Impl.dfm @@ -0,0 +1,85 @@ +object srvConfiguracion: TsrvConfiguracion + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + ConnectionName = 'IBX' + ServiceSchema = schConfiguracion + ServiceDataStreamer = Bin2DataStreamer + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + Height = 160 + Width = 300 + object schConfiguracion: TDASchema + ConnectionManager = dmServer.ConnectionManager + Datasets = < + item + Params = < + item + Name = 'CODIGO' + DataType = datString + Size = 50 + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CONFIGURACION' + SQL = 'SELECT VALOR'#10'FROM CONFIGURACION'#10'WHERE CODIGO = :CODIGO' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'VALOR' + TableField = 'VALOR' + end> + end> + Name = 'darValor' + Fields = < + item + Name = 'VALOR' + DataType = datString + Size = 255 + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'CODIGO' + Value = '' + end + item + Name = 'VALOR' + Value = '' + end + item + Name = 'ID_EMPRESA' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'CONFIGURACION' + Name = 'IBX' + SQL = + 'insert into CONFIGURACION (ID, CODIGO, VALOR, ID_EMPRESA)'#10'values' + + '(GEN_ID(GEN_CONFIGURACION_ID, 1), :CODIGO, :VALOR, :ID_EMPRESA)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'InsertarValor' + end> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 40 + Top = 16 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 40 + Top = 80 + end +end diff --git a/Source/Servidor/Configuracion/srvConfiguracion_Impl.pas b/Source/Servidor/Configuracion/srvConfiguracion_Impl.pas new file mode 100644 index 0000000..a753c36 --- /dev/null +++ b/Source/Servidor/Configuracion/srvConfiguracion_Impl.pas @@ -0,0 +1,100 @@ +unit srvConfiguracion_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} uDABusinessProcessor, uDABin2DataStreamer, uDADataStreamer, + uDAScriptingProvider, uDAClasses, + FactuGES_Intf, uDAInterfaces; + +type + { TsrvConfiguracion } + TsrvConfiguracion = class(TDataAbstractService, IsrvConfiguracion) + Bin2DataStreamer: TDABin2DataStreamer; + schConfiguracion: TDASchema; + procedure DARemoteServiceCreate(Sender: TObject); + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; + var aConnectionName: string); + protected + { IsrvConfiguracion methods } + function DarValor(const CODIGO: String; const ValorPorDefecto: String = ''): String; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer, Variants, uROClasses; + + +procedure Create_srvConfiguracion(out anInstance : IUnknown); +begin + anInstance := TsrvConfiguracion.Create(NIL); +end; + +{ srvConfiguracion } +procedure TsrvConfiguracion.DARemoteServiceCreate(Sender: TObject); +begin + //SessionManager := dmServer.SessionManager; +end; + +function TsrvConfiguracion.DarValor(const CODIGO: String; const ValorPorDefecto: String = ''): String; +var + ADataSet : IDADataset; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + try + ADataSet := schConfiguracion.NewDataset(Connection, 'darValor', ['CODIGO'], [CODIGO]); + ADataSet.Open; + if ADataSet.Dataset.RecordCount > 0 then + Result := ADataSet.Dataset.Fields[0].AsVariant + else + begin + Result := ValorPorDefecto; + //Creamos la variable de configuracin con su valor por defecto + ACurrentConn := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionManager.GetDefaultConnectionName); + ACommand := schConfiguracion.NewCommand(ACurrentConn, 'InsertarValor'); + try + with ACommand do + begin + ParamByName('CODIGO').Value := CODIGO; + ParamByName('VALOR').Value := ValorPorDefecto; + ParamByName('ID_EMPRESA').Value := Null; + Execute; + ACurrentConn.CommitTransaction; + end; + except + ACurrentConn.RollbackTransaction; + end; + ACommand := NIL; +// RaiseError('Falta variable de configuracion: ' + CODIGO); + end; + finally + ADataSet.Close; + end; +end; + +procedure TsrvConfiguracion.DataAbstractServiceBeforeAcquireConnection( + aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +initialization + TROClassFactory.Create('srvConfiguracion', Create_srvConfiguracion, TsrvConfiguracion_Invoker); + +finalization + +end. diff --git a/Source/Servidor/Configuracion/uConexionBD.dcu b/Source/Servidor/Configuracion/uConexionBD.dcu new file mode 100644 index 0000000..c1f1ffb Binary files /dev/null and b/Source/Servidor/Configuracion/uConexionBD.dcu differ diff --git a/Source/Servidor/Configuracion/uConexionBD.dfm b/Source/Servidor/Configuracion/uConexionBD.dfm new file mode 100644 index 0000000..542f8b1 --- /dev/null +++ b/Source/Servidor/Configuracion/uConexionBD.dfm @@ -0,0 +1,139 @@ +inherited frConexionBD: TfrConexionBD + object GroupBox1: TGroupBox + Left = 8 + Top = 8 + Width = 375 + Height = 209 + Caption = 'Servidor de base de datos de FactuGES (Firebird)' + TabOrder = 0 + DesignSize = ( + 375 + 209) + object Label1: TLabel + Left = 18 + Top = 30 + Width = 100 + Height = 13 + Caption = 'Nombre del servidor:' + end + object Label2: TLabel + Left = 18 + Top = 60 + Width = 93 + Height = 13 + Caption = 'Puerto de escucha:' + end + object Label3: TLabel + Left = 18 + Top = 92 + Width = 72 + Height = 13 + Caption = 'Base de datos:' + end + object Label4: TLabel + Left = 18 + Top = 150 + Width = 36 + Height = 13 + Caption = 'Usuario' + end + object Label5: TLabel + Left = 18 + Top = 180 + Width = 60 + Height = 13 + Caption = 'Contrase'#241'a:' + end + object Bevel1: TBevel + Left = 16 + Top = 120 + Width = 343 + Height = 10 + Anchors = [akLeft, akTop, akRight] + Shape = bsBottomLine + end + object edtServer: TEdit + Left = 128 + Top = 24 + Width = 231 + Height = 21 + Anchors = [akLeft, akTop, akRight] + TabOrder = 0 + Text = 'localhost' + end + object edtPort: TEdit + Left = 128 + Top = 56 + Width = 116 + Height = 21 + Anchors = [akLeft, akTop, akRight] + TabOrder = 1 + Text = '3050' + OnExit = edtPortExit + end + object edtUser: TEdit + Left = 128 + Top = 144 + Width = 116 + Height = 21 + Anchors = [akLeft, akTop, akRight] + TabOrder = 3 + Text = 'sysdba' + end + object edtPassword: TEdit + Left = 128 + Top = 176 + Width = 116 + Height = 21 + Anchors = [akLeft, akTop, akRight] + PasswordChar = '*' + TabOrder = 4 + end + object edtPath: TcxButtonEdit + Left = 128 + Top = 88 + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = cxButtonEdit1PropertiesButtonClick + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 2 + Width = 231 + end + end + object bProbar: TButton + Left = 240 + Top = 224 + Width = 143 + Height = 25 + Caption = 'Probar la conexi'#243'n' + TabOrder = 1 + OnClick = bProbarClick + end + object OpenDialog: TOpenDialog + Filter = 'Base de datos Firebird (*.fdb)|*.FDB' + Options = [ofHideReadOnly, ofPathMustExist, ofFileMustExist, ofEnableSizing] + Title = 'Abrir base de datos Firebird' + Left = 264 + Top = 56 + end + object IBDatabase: TIBDatabase + DatabaseName = 'server:dasadsads' + Params.Strings = ( + 'user_name=sysdba' + 'password=masterkey' + 'lc_ctype=ISO8859_1') + LoginPrompt = False + Left = 176 + Top = 224 + end +end diff --git a/Source/Servidor/Configuracion/uConexionBD.pas b/Source/Servidor/Configuracion/uConexionBD.pas new file mode 100644 index 0000000..825734a --- /dev/null +++ b/Source/Servidor/Configuracion/uConexionBD.pas @@ -0,0 +1,106 @@ +unit uConexionBD; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, IBServices, + DB, IBDatabase, uFrameConfiguracion, cxControls, cxContainer, cxEdit, + cxTextEdit, cxMaskEdit, cxButtonEdit; + +type + TfrConexionBD = class(TFrameConfiguracion) + GroupBox1: TGroupBox; + edtServer: TEdit; + edtPort: TEdit; + Label1: TLabel; + Label2: TLabel; + Label3: TLabel; + bProbar: TButton; + Label4: TLabel; + edtUser: TEdit; + Label5: TLabel; + edtPassword: TEdit; + Bevel1: TBevel; + OpenDialog: TOpenDialog; + edtPath: TcxButtonEdit; + IBDatabase: TIBDatabase; + procedure cxButtonEdit1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure bProbarClick(Sender: TObject); + procedure edtPortExit(Sender: TObject); + protected + procedure Finalize; override; + public + procedure Init; override; + end; + +implementation + +uses uDataModuleServer; + +{$R *.dfm} + +procedure TfrConexionBD.cxButtonEdit1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + if OpenDialog.Execute then + edtPath.Text := OpenDialog.FileName; +end; + +procedure TfrConexionBD.bProbarClick(Sender: TObject); +var + Aux : string; +begin + with IBDatabase do + begin + Connected := False; + DatabaseName := edtServer.Text + '/' + edtPort.Text + ':' + edtPath.Text; + LoginPrompt := False; + + Params.Clear; + Params.Add('lc_ctype=ISO8859_1'); + Params.Add('user_name=' + edtUser.Text); + Params.Add('password=' + edtPassword.Text); + + try + Connected := True; + Application.MessageBox('Conexin vlida con la base de datos.', 'FactuGES', MB_OK); + Connected := False; + except + on E : Exception do + begin + Aux := 'No se ha podido establecer la conexin con la base de datos.' + + #13 + #10 + #13 + #10 + PChar(E.Message); + Application.MessageBox(PAnsiChar(Aux), 'Error', MB_OK); + end; + end; + end; +end; + +procedure TfrConexionBD.Init; +begin + edtServer.Text := dmServer.FDBServer; + edtPort.Text := dmServer.FDBPort; + edtPath.Text := dmServer.FDBPath; + edtUser.Text := dmServer.FDBUser; + edtPassword.Text := Decrypt(dmServer.FDBPass); +end; + +procedure TfrConexionBD.Finalize; +begin + dmServer.FDBServer := edtServer.Text; + dmServer.FDBPort := edtPort.Text; + dmServer.FDBPath := edtPath.Text; + dmServer.FDBUser := edtUser.Text; + dmServer.FDBPass := Encrypt(edtPassword.Text); +end; + +procedure TfrConexionBD.edtPortExit(Sender: TObject); +begin + inherited; + if Length(edtPort.Text) = 0 then + edtPort.Text := DBSERVER_PORT; +end; + +end. diff --git a/Source/Servidor/Configuracion/uConfGeneral.dcu b/Source/Servidor/Configuracion/uConfGeneral.dcu new file mode 100644 index 0000000..996dca1 Binary files /dev/null and b/Source/Servidor/Configuracion/uConfGeneral.dcu differ diff --git a/Source/Servidor/Configuracion/uConfGeneral.dfm b/Source/Servidor/Configuracion/uConfGeneral.dfm new file mode 100644 index 0000000..7e7f40f --- /dev/null +++ b/Source/Servidor/Configuracion/uConfGeneral.dfm @@ -0,0 +1,39 @@ +inherited frConfGeneral: TfrConfGeneral + Visible = True + object GroupBox1: TGroupBox + Left = 8 + Top = 8 + Width = 375 + Height = 105 + Caption = 'General' + TabOrder = 0 + DesignSize = ( + 375 + 105) + object Label2: TLabel + Left = 18 + Top = 60 + Width = 93 + Height = 13 + Caption = 'Puerto de escucha:' + end + object edtPort: TEdit + Left = 128 + Top = 56 + Width = 116 + Height = 21 + Anchors = [akLeft, akTop, akRight] + TabOrder = 0 + Text = '8099' + OnExit = edtPortExit + end + object cbInicioWin: TCheckBox + Left = 17 + Top = 27 + Width = 232 + Height = 17 + Caption = 'Iniciar con Windows' + TabOrder = 1 + end + end +end diff --git a/Source/Servidor/Configuracion/uConfGeneral.pas b/Source/Servidor/Configuracion/uConfGeneral.pas new file mode 100644 index 0000000..a81c5ee --- /dev/null +++ b/Source/Servidor/Configuracion/uConfGeneral.pas @@ -0,0 +1,55 @@ +unit uConfGeneral; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uFrameConfiguracion, StdCtrls, ExtCtrls; + +type + TfrConfGeneral = class(TFrameConfiguracion) + GroupBox1: TGroupBox; + Label2: TLabel; + edtPort: TEdit; + cbInicioWin: TCheckBox; + procedure edtPortExit(Sender: TObject); + private + { Private declarations } + protected + procedure Finalize; override; + public + procedure Init; override; + end; + +var + frConfGeneral: TfrConfGeneral; + +implementation + +uses uDataModuleServer; + +{$R *.dfm} + +{ TfrConfGeneral } + +procedure TfrConfGeneral.Finalize; +begin + inherited; + dmServer.FInicioWindows := cbInicioWin.Checked; + dmServer.FServerPort := edtPort.Text; +end; + +procedure TfrConfGeneral.Init; +begin + cbInicioWin.Checked := dmServer.FInicioWindows; + edtPort.Text := dmServer.FServerPort; +end; + +procedure TfrConfGeneral.edtPortExit(Sender: TObject); +begin + inherited; + if Length(edtPort.Text) = 0 then + edtPort.Text := '8099'; +end; + +end. diff --git a/Source/Servidor/Configuracion/uConfiguracion.dcu b/Source/Servidor/Configuracion/uConfiguracion.dcu new file mode 100644 index 0000000..946e280 Binary files /dev/null and b/Source/Servidor/Configuracion/uConfiguracion.dcu differ diff --git a/Source/Servidor/Configuracion/uConfiguracion.dfm b/Source/Servidor/Configuracion/uConfiguracion.dfm new file mode 100644 index 0000000..9120b1b --- /dev/null +++ b/Source/Servidor/Configuracion/uConfiguracion.dfm @@ -0,0 +1,160 @@ +object fConfiguracion: TfConfiguracion + Left = 303 + Top = 203 + BorderStyle = bsDialog + Caption = 'Configuraci'#243'n' + ClientHeight = 345 + ClientWidth = 414 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object Button1: TButton + Left = 251 + Top = 311 + Width = 75 + Height = 25 + Action = actAceptar + ModalResult = 1 + TabOrder = 0 + end + object Button2: TButton + Left = 332 + Top = 311 + Width = 75 + Height = 25 + Action = actCancelar + Cancel = True + ModalResult = 2 + TabOrder = 1 + end + object PageControl1: TPageControl + Left = 8 + Top = 8 + Width = 399 + Height = 289 + ActivePage = pagGeneral + Images = PngImageList1 + TabOrder = 2 + OnChange = PageControl1Change + object pagGeneral: TTabSheet + Caption = 'General' + ImageIndex = -1 + inline frConfGeneral1: TfrConfGeneral + Left = 0 + Top = 0 + Width = 391 + Height = 260 + Align = alClient + TabOrder = 0 + ExplicitWidth = 391 + ExplicitHeight = 260 + inherited GroupBox1: TGroupBox + Height = 97 + ExplicitHeight = 97 + end + end + end + object pagBD: TTabSheet + Caption = 'Base de datos' + ImageIndex = 1 + inline frConexionBD1: TfrConexionBD + Left = 0 + Top = 0 + Width = 391 + Height = 260 + Align = alClient + TabOrder = 0 + ExplicitWidth = 391 + ExplicitHeight = 260 + end + end + end + object ActionList1: TActionList + Left = 8 + Top = 304 + object actAceptar: TAction + Caption = '&Aceptar' + OnExecute = actAceptarExecute + end + object actCancelar: TAction + Caption = '&Cancelar' + OnExecute = actCancelarExecute + end + end + object JvAppRegistryStorage1: TJvAppRegistryStorage + StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' + StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' + Root = 'Software\%APPL_NAME%' + SubStorages = <> + Left = 40 + Top = 304 + end + object PngImageList1: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002554944415478DA + A5934D6813411CC5DFA64D9B365A0AA558ACB50D584AA4122D6A695044AC2D88 + 88908B01B137A5B64A7B912214BD79F083B6971C154544F1504F7A5204154405 + 45432818F2614C76B39B36D9EC477793DD71369124C58045E7326F8779BFFDBF + 07C31042C0300C162E37F56FDBEEF1F5F41FF1B6B675B99B5BDABB0D3DEF80A9 + 684A2E9E5473C9101BFFFA9EE5924F67037AC8F2598BB1C4939BDEF903E373F3 + BDEE31BBADC10EEB8C14F230D65914550E86CA52CDA1A824F133F2C90806BFDC + F25FE7E72A808F2F6E14F78F5D69B00E083161EA396AE24A8092B95653D0B760 + 888CCEC46D15C0F3C071E2DAEBC78E81636871384A97ACCBD5BF97218A984022 + F1039F433CA61745A63AC1B30BC47DF00C049E87228974822C485184A1ADA2A8 + E5B02EAF4191F3D0749D1A34C463314CDEC96C040C8E9C43E3963E304D1D5897 + D250F329A862AABCD76A91452C1AD90878F7F82C193A3AB949400AE170189716 + B355C0CBBBA74877FF61383BDC68EFF2C034340AE1A88185924B20BF1A852844 + 4ADF9A9C01971630B5B0F6670462EF84244925833585A664A0AB599805196651 + A63A533FC27F77F0FA818F0C8FCF52806B731D7CA71D2CD574F0E6919F74F60C + A1796B2FDA3A7783B13134AB40412CE46CB9837C260A55E6A1D3582C2760BA5E + 070DCE9D50140DD9F44A69544D11CA1DD0FC4641A2D074FD081F96CF9B7BBC13 + CC3F7710B8BAEFF6E8E98B33AEC113B6BF01F85404A195D8FD6BF7A4890AC07A + CE53271B473CC363BEBE8191438E56E72E43133B1886D0FC311A23B796156269 + 9E4BBD4AB2A9874BCB784B7EBFE75F55B52CFF98E5CC810000000049454E44AE + 426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002554944415478DA + A5934D6813411CC5DFA64D9B365A0AA558ACB50D584AA4122D6A695044AC2D88 + 88908B01B137A5B64A7B912214BD79F083B6971C154544F1504F7A5204154405 + 45432818F2614C76B39B36D9EC477793DD71369124C58045E7326F8779BFFDBF + 07C31042C0300C162E37F56FDBEEF1F5F41FF1B6B675B99B5BDABB0D3DEF80A9 + 684A2E9E5473C9101BFFFA9EE5924F67037AC8F2598BB1C4939BDEF903E373F3 + BDEE31BBADC10EEB8C14F230D65914550E86CA52CDA1A824F133F2C90806BFDC + F25FE7E72A808F2F6E14F78F5D69B00E083161EA396AE24A8092B95653D0B760 + 888CCEC46D15C0F3C071E2DAEBC78E81636871384A97ACCBD5BF97218A984022 + F1039F433CA61745A63AC1B30BC47DF00C049E87228974822C485184A1ADA2A8 + E5B02EAF4191F3D0749D1A34C463314CDEC96C040C8E9C43E3963E304D1D5897 + D250F329A862AABCD76A91452C1AD90878F7F82C193A3AB949400AE170189716 + B355C0CBBBA74877FF61383BDC68EFF2C034340AE1A88185924B20BF1A852844 + 4ADF9A9C01971630B5B0F6670462EF84244925833585A664A0AB599805196651 + A63A533FC27F77F0FA818F0C8FCF52806B731D7CA71D2CD574F0E6919F74F60C + A1796B2FDA3A7783B13134AB40412CE46CB9837C260A55E6A1D3582C2760BA5E + 070DCE9D50140DD9F44A69544D11CA1DD0FC4641A2D074FD081F96CF9B7BBC13 + CC3F7710B8BAEFF6E8E98B33AEC113B6BF01F85404A195D8FD6BF7A4890AC07A + CE53271B473CC363BEBE8191438E56E72E43133B1886D0FC311A23B796156269 + 9E4BBD4AB2A9874BCB784B7EBFE75F55B52CFF98E5CC810000000049454E44AE + 426082} + Name = 'PngImage1' + Background = clWindow + end> + Left = 80 + Top = 304 + Bitmap = {} + end +end diff --git a/Source/Servidor/Configuracion/uConfiguracion.pas b/Source/Servidor/Configuracion/uConfiguracion.pas new file mode 100644 index 0000000..9bbbf59 --- /dev/null +++ b/Source/Servidor/Configuracion/uConfiguracion.pas @@ -0,0 +1,104 @@ +unit uConfiguracion; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ComCtrls, ActnList, JvComponent, + JvAppStorage, JvAppRegistryStorage, Contnrs, ExtCtrls, ImgList, + PngImageList, JvExControls, JvGradientHeaderPanel, uFrameConfiguracion, + JvComponentBase, JvPageList, JvExComCtrls, JvPageListTreeView, + uConexionBD, uConfGeneral; + +type + TfConfiguracion = class(TForm) + Button1: TButton; + Button2: TButton; + ActionList1: TActionList; + actAceptar: TAction; + actCancelar: TAction; + JvAppRegistryStorage1: TJvAppRegistryStorage; + PngImageList1: TPngImageList; + frConfGeneral1: TfrConfGeneral; + PageControl1: TPageControl; + pagGeneral: TTabSheet; + pagBD: TTabSheet; + frConexionBD1: TfrConexionBD; + procedure actAceptarExecute(Sender: TObject); + procedure actCancelarExecute(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure PageControl1Change(Sender: TObject); + private + FPaginaActual : IConfiguracionFrame; + public + constructor Create(AOwner: TComponent); override; + end; + +var + fConfiguracion: TfConfiguracion; + +implementation + +uses uDataModuleServer; + +{$R *.dfm} + +{type + TFrameClass = class of TFrameConfiguracion; + +function CreateFrame(Parent: TWinControl; FrameClass: TFrameClass): IConfiguracionFrame; +var + aFrame : TFrameConfiguracion; +begin + aFrame := FrameClass.Create(NIL); + aFrame.Name:='Frame'+IntToStr(Random(10000)); + aFrame.Parent := Parent; + aFrame.Init; + aFrame.Show; + Result := aFrame; +end;} + +procedure TfConfiguracion.actAceptarExecute(Sender: TObject); +begin + if Assigned(FPaginaActual) then + FPaginaActual.Finalize; + + dmServer.SalvarConfiguracion; + Close; +end; + +procedure TfConfiguracion.actCancelarExecute(Sender: TObject); +begin + Close; +end; + +constructor TfConfiguracion.Create(AOwner: TComponent); +begin + inherited; + FPaginaActual := NIL; +end; + +procedure TfConfiguracion.FormShow(Sender: TObject); +begin + PageControl1.ActivePageIndex := 0; + //Se ha de llamar al evento ya que la asignacin anterior no lo lanza + PageControl1Change(PageControl1); +end; + +procedure TfConfiguracion.PageControl1Change(Sender: TObject); +begin + if Assigned(FPaginaActual) then + FPaginaActual.Finalize; + + case PageControl1.ActivePageIndex of + 0 : FPaginaActual := frConfGeneral1; + 1 : FPaginaActual := frConexionBD1; + end; + + if Assigned(FPaginaActual) then + FPaginaActual.Init; + + Self.Update; +end; + +end. diff --git a/Source/Servidor/Configuracion/uFrameConfiguracion.dcu b/Source/Servidor/Configuracion/uFrameConfiguracion.dcu new file mode 100644 index 0000000..4a4942f Binary files /dev/null and b/Source/Servidor/Configuracion/uFrameConfiguracion.dcu differ diff --git a/Source/Servidor/Configuracion/uFrameConfiguracion.dfm b/Source/Servidor/Configuracion/uFrameConfiguracion.dfm new file mode 100644 index 0000000..71b4e24 --- /dev/null +++ b/Source/Servidor/Configuracion/uFrameConfiguracion.dfm @@ -0,0 +1,8 @@ +object FrameConfiguracion: TFrameConfiguracion + Left = 0 + Top = 0 + Width = 451 + Height = 304 + Align = alClient + TabOrder = 0 +end diff --git a/Source/Servidor/Configuracion/uFrameConfiguracion.pas b/Source/Servidor/Configuracion/uFrameConfiguracion.pas new file mode 100644 index 0000000..c03ed29 --- /dev/null +++ b/Source/Servidor/Configuracion/uFrameConfiguracion.pas @@ -0,0 +1,30 @@ +unit uFrameConfiguracion; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ExtCtrls; + +type + IConfiguracionFrame = interface + ['{07F3EDBF-DFED-4B76-ADC7-0D3B83FB6F9B}'] + procedure Init; + procedure Finalize; + end; + + TFrameConfiguracion = class(TFrame, IConfiguracionFrame) + protected + procedure Finalize; virtual; abstract; + public + procedure Init; virtual; abstract; + end; + +implementation + +{$R *.dfm} + +{ TFrameConfiguracion } + + +end. diff --git a/Source/Servidor/FactuGES_Intf.dcu b/Source/Servidor/FactuGES_Intf.dcu new file mode 100644 index 0000000..dc7f445 Binary files /dev/null and b/Source/Servidor/FactuGES_Intf.dcu differ diff --git a/Source/Servidor/FactuGES_Invk.dcu b/Source/Servidor/FactuGES_Invk.dcu new file mode 100644 index 0000000..f75c81c Binary files /dev/null and b/Source/Servidor/FactuGES_Invk.dcu differ diff --git a/Source/Servidor/FactuGES_Server.RES b/Source/Servidor/FactuGES_Server.RES new file mode 100644 index 0000000..ee2de48 Binary files /dev/null and b/Source/Servidor/FactuGES_Server.RES differ diff --git a/Source/Servidor/FactuGES_Server.bdsproj b/Source/Servidor/FactuGES_Server.bdsproj new file mode 100644 index 0000000..d028710 --- /dev/null +++ b/Source/Servidor/FactuGES_Server.bdsproj @@ -0,0 +1,194 @@ + + + + + + + + + + + + FactuGES_Server.dpr + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + + True + True + True + True + True + True + True + True + True + + + 3 + 0 + 1 + False + False + False + 16384 + 1048576 + 4194304 + + False + + + ..\..\Output\Debug\Servidor + + + + + rtl;vclx;vcl;dbrtl;vcldb;dbxcds;dbexpress;vclib;ibxpress;indy;dclOfficeXP;VclSmp;dsnap;bdertl;teeui;teedb;tee;vcldbx;vclactnband;dxBarExtItemsD10;dxComnD10;dxBarD10;cxLibraryD10;cxEditorsD10;dxThemeD10;cxDataD10;cxExtEditorsD10;cxGridD10;cxPageControlD10;cxSchedulerD10;cxTreeListD10;cxVerticalGridD10;dxBarDBNavD10;dxBarExtDBItemsD10;tbx_d10;tb2k_d10;ccpack10;ccpack10dsg;cxExportD10;cxIntl5D10;adortl;DataAbstract_Core_D10;DataAbstract_DBXDriver_D10;DataAbstract_Scripting_D10;dxDockingD10;dxLayoutControlD10;dxNavBarD10;dxPSCoreD10;dxsbD10;fqb100;dxLayoutControlcxEditAdaptersD10;dxPScxCommonD10;dxPSLnksD10;vclshlctrls;dxPScxExtCommonD10;dxPScxGridLnkD10;dxPScxPCProdD10;dxPScxScheduler2LnkD10;dxPScxTLLnkD10;dxPSDBTeeChartD10;dxPSTeeChartD10;dxPSdxLCLnkD10;dxPsPrVwAdvD10;GUISDK_D10;JvAppFrmD10R;JvCoreD10R;Jcl;JclVcl;JvSystemD10R;JvStdCtrlsD10R;JvBandsD10R;JvDBD10R;JvDlgsD10R;JvBDED10R;JvCmpD10R;JvCryptD10R;JvCtrlsD10R;JvCustomD10R;JvDockingD10R;JvDotNetCtrlsD10R;JvEDID10R;JvGlobusD10R;JvHMID10R;JvInterpreterD10R;JvJansD10R;JvManagedThreadsD10R;JvMMD10R;JvNetD10R;JvPageCompsD10R;JvPluginD10R;JvPrintPreviewD10R;JvRuntimeDesignD10R;JvTimeFrameworkD10R;JvUIBD10R;JvValidatorsD10R;JvWizardD10R;JvXPCtrlsD10R;PluginSDK_D10R;PNG_D10;PngComponentsD10;inet;RemObjects_WebBroker_D10;RemObjects_RODX_D10;RemObjects_BPDX_D10;RemObjects_Indy_D10;PascalScript_RO_D10;IndyProtocols;IndyCore;IndySystem;DataAbstract_IDE_D10;fsTee10;fs10;frx10;frxADO10;frxBDE10;frxDB10;frxDBX10;frxe10;frxIBX10;frxTee10;fsADO10;fsBDE10;fsDB10;fsIBX10 + + + False + + + + + + False + + + + + + False + + True + False + + + True + False + 3 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 3.0.0.0 + + + + + + 3.0.0.0 + + domingo, 30 de septiembre de 2007 20:47 + + + + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + + + False + + + + False + diff --git a/Source/Servidor/FactuGES_Server.dpr b/Source/Servidor/FactuGES_Server.dpr new file mode 100644 index 0000000..31ba8ee --- /dev/null +++ b/Source/Servidor/FactuGES_Server.dpr @@ -0,0 +1,166 @@ +program FactuGES_Server; + +{#ROGEN:..\Servicios\FactuGES.rodl} // RemObjects: Careful, do not remove! + +uses + uROComInit, + uROComboService, + Forms, + uServerMainForm in 'uServerMainForm.pas' {fServerForm}, + uAcercaDe in 'uAcercaDe.pas' {fAcercaDe}, + uConexionBD in 'Configuracion\uConexionBD.pas' {frConexionBD: TFrame}, + uConfGeneral in 'Configuracion\uConfGeneral.pas' {frConfGeneral: TFrame}, + uConfiguracion in 'Configuracion\uConfiguracion.pas' {fConfiguracion: TForm}, + uFrameConfiguracion in 'Configuracion\uFrameConfiguracion.pas' {FrameConfiguracion: TFrame}, + uDataModuleServer in 'uDataModuleServer.pas' {dmServer: TDataModule}, + srvContactos_Impl in '..\Modulos\Contactos\Servidor\srvContactos_Impl.pas' {srvContactos: TDARemoteService}, + srvLogin_Impl in 'srvLogin_Impl.pas' {srvLogin: TDARemoteService}, + srvEmpresas_Impl in '..\ApplicationBase\Empresas\Servidor\srvEmpresas_Impl.pas' {srvEmpresas: TDARemoteService}, + srvConfiguracion_Impl in 'Configuracion\srvConfiguracion_Impl.pas' {srvConfiguracion: TDataAbstractService}, + srvFamilias_Impl in '..\Modulos\Familias\Servidor\srvFamilias_Impl.pas' {srvFamilias: TDataAbstractService}, + srvFormasPago_Impl in '..\Modulos\Formas de pago\Servidor\srvFormasPago_Impl.pas' {srvFormasPago: TDataAbstractService}, + srvTiposIVA_Impl in '..\Modulos\Tipos de IVA\Servidor\srvTiposIVA_Impl.pas' {srvTiposIVA: TDataAbstractService}, + srvUsuarios_Impl in '..\ApplicationBase\Usuarios\Servidor\srvUsuarios_Impl.pas' {srvUsuarios: TDataAbstractService}, + RegExpr in 'Utiles\RegExpr.pas', + uBusinessUtils in 'Utiles\uBusinessUtils.pas', + uDatabaseUtils in 'Utiles\uDatabaseUtils.pas', + uReferenciasUtils in 'Utiles\uReferenciasUtils.pas', + uRestriccionesUsuarioUtils in 'Utiles\uRestriccionesUsuarioUtils.pas', + uSchemaUtilsServer in 'Utiles\uSchemaUtilsServer.pas', + uServerAppUtils in 'Utiles\uServerAppUtils.pas', + uSesionesUtils in 'Utiles\uSesionesUtils.pas', + uBizProveedoresServer in '..\Modulos\Contactos\Model\uBizProveedoresServer.pas', + uBizClientesServer in '..\Modulos\Contactos\Model\uBizClientesServer.pas', + uBizContactosServer in '..\Modulos\Contactos\Model\uBizContactosServer.pas', + uBizEmpleadosServer in '..\Modulos\Contactos\Model\uBizEmpleadosServer.pas', + schFamiliasServer_Intf in '..\Modulos\Familias\Model\schFamiliasServer_Intf.pas', + schFamiliasClient_Intf in '..\Modulos\Familias\Model\schFamiliasClient_Intf.pas', + schTiposIVAServer_Intf in '..\Modulos\Tipos de IVA\Model\schTiposIVAServer_Intf.pas', + schTiposIVAClient_Intf in '..\Modulos\Tipos de IVA\Model\schTiposIVAClient_Intf.pas', + schBase_Intf in '..\Base\schBase_Intf.pas', + srvPresupuestosCliente_Impl in '..\Modulos\Presupuestos de cliente\Servidor\srvPresupuestosCliente_Impl.pas' {srvPresupuestosCliente: TDataAbstractService}, + uBizPresupuestosClienteServer in '..\Modulos\Presupuestos de cliente\Model\uBizPresupuestosClienteServer.pas', + srvArticulos_Impl in '..\Modulos\Articulos\Servidor\srvArticulos_Impl.pas' {srvArticulos: TDARemoteService}, + srvAlmacenes_Impl in '..\Modulos\Almacenes\Servidor\srvAlmacenes_Impl.pas' {srvAlmacenes: TDARemoteService}, + srvAlbaranesCliente_Impl in '..\Modulos\Albaranes de cliente\Servidor\srvAlbaranesCliente_Impl.pas' {srvAlbaranesCliente: TDataAbstractService}, + uBizAlbaranClienteServer in '..\Modulos\Albaranes de cliente\Model\uBizAlbaranClienteServer.pas', + srvRecibosCliente_Impl in '..\Modulos\Recibos de cliente\Servidor\srvRecibosCliente_Impl.pas' {srvRecibosCliente: TDataAbstractService}, + srvFacturasCliente_Impl in '..\Modulos\Facturas de cliente\Servidor\srvFacturasCliente_Impl.pas' {srvFacturasCliente: TDataAbstractService}, + schFormasPagoClient_Intf in '..\Modulos\Formas de pago\Model\schFormasPagoClient_Intf.pas', + schFormasPagoServer_Intf in '..\Modulos\Formas de pago\Model\schFormasPagoServer_Intf.pas', + srvRecibosProveedor_Impl in '..\Modulos\Recibos de proveedor\Servidor\srvRecibosProveedor_Impl.pas' {srvRecibosProveedor: TDataAbstractService}, + uBizFacturasClienteServer in '..\Modulos\Facturas de cliente\Model\uBizFacturasClienteServer.pas', + srvFacturasProveedor_Impl in '..\Modulos\Facturas de proveedor\Servidor\srvFacturasProveedor_Impl.pas' {srvFacturasProveedor: TDataAbstractService}, + srvAlbaranesProveedor_Impl in '..\Modulos\Albaranes de proveedor\Servidor\srvAlbaranesProveedor_Impl.pas' {srvAlbaranesProveedor: TDataAbstractService}, + srvPedidosProveedor_Impl in '..\Modulos\Pedidos a proveedor\Servidor\srvPedidosProveedor_Impl.pas' {srvPedidosProveedor: TDataAbstractService}, + uBizPedidosProveedorServer in '..\Modulos\Pedidos a proveedor\Model\uBizPedidosProveedorServer.pas', + uBizAlbaranProveedorServer in '..\Modulos\Albaranes de proveedor\Model\uBizAlbaranProveedorServer.PAS', + uBizFacturasProveedorServer in '..\Modulos\Facturas de proveedor\Model\uBizFacturasProveedorServer.pas', + srvRemesasCliente_Impl in '..\Modulos\Remesas de cliente\Servidor\srvRemesasCliente_Impl.pas' {srvRemesasCliente: TDataAbstractService}, + srvRemesasProveedor_Impl in '..\Modulos\Remesas de proveedor\Servidor\srvRemesasProveedor_Impl.pas' {srvRemesasProveedor: TDataAbstractService}, + srvInventario_Impl in '..\Modulos\Inventario\Servidor\srvInventario_Impl.pas' {srvInventario: TDataAbstractService}, + srvHistoricoMovimientos_Impl in '..\Modulos\Historico de movimientos\Servidor\srvHistoricoMovimientos_Impl.pas' {srvHistoricoMovimientos: TDataAbstractService}, + uRptFacturasCliente_Server in '..\Modulos\Facturas de cliente\Reports\uRptFacturasCliente_Server.pas' {RptFacturasCliente: TDataModule}, + uBizRemesasClienteServer in '..\Modulos\Remesas de cliente\Model\uBizRemesasClienteServer.pas', + uBizRemesasProveedorServer in '..\Modulos\Remesas de proveedor\Model\uBizRemesasProveedorServer.pas', + schRemesasClienteClient_Intf in '..\Modulos\Remesas de cliente\Model\schRemesasClienteClient_Intf.pas', + schRemesasClienteServer_Intf in '..\Modulos\Remesas de cliente\Model\schRemesasClienteServer_Intf.pas', + schRemesasProveedorClient_Intf in '..\Modulos\Remesas de proveedor\Model\schRemesasProveedorClient_Intf.pas', + schRemesasProveedorServer_Intf in '..\Modulos\Remesas de proveedor\Model\schRemesasProveedorServer_Intf.pas', + srvUnidadesMedida_Impl in '..\Modulos\Unidades de medida\Servidor\srvUnidadesMedida_Impl.pas' {srvUnidadesMedida: TDataAbstractService}, + schUnidadesMedidaClient_Intf in '..\Modulos\Unidades de medida\Model\schUnidadesMedidaClient_Intf.pas', + schUnidadesMedidaServer_Intf in '..\Modulos\Unidades de medida\Model\schUnidadesMedidaServer_Intf.pas', + uRptAlbaranesCliente_Server in '..\Modulos\Albaranes de cliente\Reports\uRptAlbaranesCliente_Server.pas' {RptAlbaranesCliente: TDataModule}, + uStringsUtils in '..\Base\Utiles\uStringsUtils.pas', + FactuGES_Intf in '..\Servicios\FactuGES_Intf.pas', + FactuGES_Invk in '..\Servicios\FactuGES_Invk.pas', + uRptWordCertificadoTrabajo_Server in '..\Modulos\Presupuestos de cliente\Reports\uRptWordCertificadoTrabajo_Server.pas' {RptWordCertificadoTrabajo: TDataModule}, + AHWord97 in 'Utiles\AHWord97.pas', + uSistemaFunc in '..\Base\Utiles\uSistemaFunc.pas', + uRptWordAlbaranCliente in '..\Modulos\Albaranes de cliente\Reports\uRptWordAlbaranCliente.pas' {RptWordAlbaranCliente: TDataModule}, + srvReferencias_Impl in '..\Modulos\Referencias\Servidor\srvReferencias_Impl.pas' {srvReferencias: TDataAbstractService}, + schReferenciasServer_Intf in '..\Modulos\Referencias\Model\schReferenciasServer_Intf.pas', + schReferenciasClient_Intf in '..\Modulos\Referencias\Model\schReferenciasClient_Intf.pas', + uRptFichasEmpleado_Server in '..\Modulos\Contactos\Reports\uRptFichasEmpleado_Server.pas' {RptFichasEmpleado: TDataModule}, + uRptEtiquetasContacto_Server in '..\Modulos\Contactos\Reports\uRptEtiquetasContacto_Server.pas' {RptEtiquetasContacto: TDataModule}, + uRptWordFacturaCliente in '..\Modulos\Facturas de cliente\Reports\uRptWordFacturaCliente.pas' {RptWordFacturaCliente: TDataModule}, + srvFabricantes_Impl in '..\Modulos\Fabricantes\Servidor\srvFabricantes_Impl.pas' {srvFabricantes: TDataAbstractService}, + schFabricantesClient_Intf in '..\Modulos\Fabricantes\Model\schFabricantesClient_Intf.pas', + schFabricantesServer_Intf in '..\Modulos\Fabricantes\Model\schFabricantesServer_Intf.pas', + uRptPedidosProveedor_Server in '..\Modulos\Pedidos a proveedor\Reports\uRptPedidosProveedor_Server.pas' {RptPedidosProveedor: TDataModule}, + uRptWordPedidoProveedor in '..\Modulos\Pedidos a proveedor\Reports\uRptWordPedidoProveedor.pas' {RptWordPedidoProveedor: TDataModule}, + srvObras_Impl in '..\Modulos\Obras\Servidor\srvObras_Impl.pas' {srvObras: TDataAbstractService}, + uBizObrasServer in '..\Modulos\Obras\Model\uBizObrasServer.pas', + uRptRecibosCliente_Server in '..\Modulos\Recibos de cliente\Reports\uRptRecibosCliente_Server.pas' {RptRecibosCliente: TDataModule}, + srvProvinciasPoblaciones_Impl in '..\ApplicationBase\ProvinciasPoblaciones\Servidor\srvProvinciasPoblaciones_Impl.pas' {srvProvinciasPoblaciones_Impl: TDataModule}, + uBizArticulosServer in '..\Modulos\Articulos\Model\uBizArticulosServer.pas', + uBizEmpresasServer in '..\ApplicationBase\Empresas\Model\uBizEmpresasServer.pas', + schAlmacenesClient_Intf in '..\Modulos\Almacenes\Model\schAlmacenesClient_Intf.pas', + schAlmacenesServer_Intf in '..\Modulos\Almacenes\Model\schAlmacenesServer_Intf.pas', + schArticulosClient_Intf in '..\Modulos\Articulos\Model\schArticulosClient_Intf.pas', + schArticulosServer_Intf in '..\Modulos\Articulos\Model\schArticulosServer_Intf.pas', + uRptPresupuestosCliente_Server in '..\Modulos\Presupuestos de cliente\Reports\uRptPresupuestosCliente_Server.pas' {RptPresupuestosCliente: TDataModule}, + uRptWordPresupuestoCliente in '..\Modulos\Presupuestos de cliente\Reports\uRptWordPresupuestoCliente.pas' {RptWordPresupuestoCliente: TDataModule}, + srvGestorDocumentos_Impl in '..\Modulos\Gestion de documentos\Servidor\srvGestorDocumentos_Impl.pas' {srvGestorDocumentos: TDataAbstractService}, + schHistoricoMovimientosClient_Intf in '..\Modulos\Historico de movimientos\Model\schHistoricoMovimientosClient_Intf.pas', + schHistoricoMovimientosServer_Intf in '..\Modulos\Historico de movimientos\Model\schHistoricoMovimientosServer_Intf.pas', + schAlbaranesClienteClient_Intf in '..\Modulos\Albaranes de cliente\Model\schAlbaranesClienteClient_Intf.pas', + schAlbaranesClienteServer_Intf in '..\Modulos\Albaranes de cliente\Model\schAlbaranesClienteServer_Intf.pas', + schUsuariosClient_Intf in '..\ApplicationBase\Usuarios\Model\schUsuariosClient_Intf.pas', + schUsuariosServer_Intf in '..\ApplicationBase\Usuarios\Model\schUsuariosServer_Intf.pas', + srvGestorInformes_Impl in '..\Modulos\Gestor de informes\Servidor\srvGestorInformes_Impl.pas' {srvGestorInformes: TDataAbstractService}, + schObrasClient_Intf in '..\Modulos\Obras\Model\schObrasClient_Intf.pas', + schObrasServer_Intf in '..\Modulos\Obras\Model\schObrasServer_Intf.pas', + schRecibosClienteClient_Intf in '..\Modulos\Recibos de cliente\Model\schRecibosClienteClient_Intf.pas', + schRecibosClienteServer_Intf in '..\Modulos\Recibos de cliente\Model\schRecibosClienteServer_Intf.pas', + schRecibosProveedorClient_Intf in '..\Modulos\Recibos de proveedor\Model\schRecibosProveedorClient_Intf.pas', + schRecibosProveedorServer_Intf in '..\Modulos\Recibos de proveedor\Model\schRecibosProveedorServer_Intf.pas', + uRptFacturasProveedor_Server in '..\Modulos\Facturas de proveedor\Reports\uRptFacturasProveedor_Server.pas' {RptFacturasProveedor: TDataModule}, + uRptRecibosProveedor_Server in '..\Modulos\Recibos de proveedor\Reports\uRptRecibosProveedor_Server.pas' {RptRecibosProveedor: TDataModule}, + schPresupuestosClienteClient_Intf in '..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteClient_Intf.pas', + schPresupuestosClienteServer_Intf in '..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteServer_Intf.pas', + schFacturasProveedorClient_Intf in '..\Modulos\Facturas de proveedor\Model\schFacturasProveedorClient_Intf.pas', + schFacturasProveedorServer_Intf in '..\Modulos\Facturas de proveedor\Model\schFacturasProveedorServer_Intf.pas', + schPedidosProveedorClient_Intf in '..\Modulos\Pedidos a proveedor\Model\schPedidosProveedorClient_Intf.pas', + schPedidosProveedorServer_Intf in '..\Modulos\Pedidos a proveedor\Model\schPedidosProveedorServer_Intf.pas', + schFacturasClienteClient_Intf in '..\Modulos\Facturas de cliente\Model\schFacturasClienteClient_Intf.pas', + schFacturasClienteServer_Intf in '..\Modulos\Facturas de cliente\Model\schFacturasClienteServer_Intf.pas', + uRptAlbaranesProveedor_Server in '..\Modulos\Albaranes de proveedor\Reports\uRptAlbaranesProveedor_Server.pas' {RptAlbaranesProveedor: TDataModule}, + uRptWordAlbaranProveedor in '..\Modulos\Albaranes de proveedor\Reports\uRptWordAlbaranProveedor.pas' {RptWordAlbaranProveedor: TDataModule}, + MidasSpeedFix in 'Utiles\MidasSpeedFix.pas', + schAlbaranesProveedorClient_Intf in '..\Modulos\Albaranes de proveedor\Model\schAlbaranesProveedorClient_Intf.pas', + schAlbaranesProveedorServer_Intf in '..\Modulos\Albaranes de proveedor\Model\schAlbaranesProveedorServer_Intf.pas', + schInventarioClient_Intf in '..\Modulos\Inventario\Model\schInventarioClient_Intf.pas', + schInventarioServer_Intf in '..\Modulos\Inventario\Model\schInventarioServer_Intf.pas', + schEmpresasClient_Intf in '..\ApplicationBase\Empresas\Model\schEmpresasClient_Intf.pas', + schEmpresasServer_Intf in '..\ApplicationBase\Empresas\Model\schEmpresasServer_Intf.pas', + uBizAgentesServer in '..\Modulos\Contactos\Model\uBizAgentesServer.pas', + schContactosClient_Intf in '..\Modulos\Contactos\Model\schContactosClient_Intf.pas', + schContactosServer_Intf in '..\Modulos\Contactos\Model\schContactosServer_Intf.pas'; + +{$R *.res} +{$R ..\Servicios\RODLFile.res} + +const + FACTUGES_NAME = 'FactuGES Servidor'; + +begin + if ROStartService(FACTUGES_NAME, FACTUGES_NAME) then + begin + // Aqui hay que comprobar antes si el servicio ya est en ejecucion + + ROService.CreateForm(TdmServer, dmServer); + ROService.Run; + Exit; + end; + + Application.Initialize; +// ReportMemoryLeaksOnShutdown := True; + Application.Title := FACTUGES_NAME; + + Application.ShowMainForm := False; + Application.CreateForm(TdmServer, dmServer); + Application.CreateForm(TfServerForm, fServerForm); + Application.Run; + Application.Terminate; +end. diff --git a/Source/Servidor/FactuGES_Server.dproj b/Source/Servidor/FactuGES_Server.dproj new file mode 100644 index 0000000..299e4db --- /dev/null +++ b/Source/Servidor/FactuGES_Server.dproj @@ -0,0 +1,825 @@ + + + + {ebdcd25d-40d7-4146-91ec-a0ea4aa1dcd1} + FactuGES_Server.dpr + Debug + AnyCPU + DCC32 + ..\..\Output\Debug\Servidor\FactuGES_Server.exe + vcl;rtl;vclx;vclactnband;dbrtl;vcldb;vcldbx;bdertl;dsnap;dsnapcon;teeUI;teedb;tee;adortl;vclib;ibxpress;dbxcds;dbexpress;DbxCommonDriver;IndyCore;IndySystem;IndyProtocols;VclSmp;vclie;webdsnap;xmlrtl;inet;inetdbbde;inetdbxpress;RemObjects_BPDX_D11;RemObjects_RODX_D11;RemObjects_Indy_D11;RemObjects_Synapse_D11;RemObjects_WebBroker_D11;DataAbstract_Core_D11;DataAbstract_DBXDriver_D11;DataAbstract_IDE_D11;DataAbstract_Scripting_D11;DataAbstract_SDACDriver_D11;sdac105;dac105;DataAbstract_SQLiteDriver_D11;cxEditorsD10;cxLibraryD10;dxThemeD10;cxDataD10;cxExtEditorsD10;cxGridD10;cxPageControlD10;cxSchedulerD10;cxTreeListD10;cxVerticalGridD10;dxBarD10;dxComnD10;dxBarDBNavD10;dxBarExtDBItemsD10;dxBarExtItemsD10;dxDockingD10;dxLayoutControlD10;dxNavBarD10;dxPSCoreD10;dxsbD10;dxPScxCommonD10;dxPSLnksD10;vclshlctrls;dxPScxExtCommonD10;dxPScxGridLnkD10;dxPScxPCProdD10;dxPScxScheduler2LnkD10;dxPScxTLLnkD10;dxPSdxLCLnkD10;dxPsPrVwAdvD10;pckMD5;pckUCDataConnector;pckUserControl_RT;PluginSDK_D10R;PNG_D10;PngComponentsD10;tb2k_d10;tbx_d10;JclVcl;Jcl;JvXPCtrlsD11R;JvCoreD11R;JvSystemD11R;JvStdCtrlsD11R;JvAppFrmD11R;JvBandsD11R;JvDBD11R;JvDlgsD11R;JvBDED11R;JvCmpD11R;JvCryptD11R;JvCtrlsD11R;JvCustomD11R;JvDockingD11R;JvDotNetCtrlsD11R;JvEDID11R;JvGlobusD11R;JvHMID11R;JvInterpreterD11R;JvJansD11R;JvManagedThreadsD11R;JvMMD11R;JvNetD11R;JvPageCompsD11R;JvPluginD11R;JvPrintPreviewD11R;JvRuntimeDesignD11R;JvTimeFrameworkD11R;JvUIBD11R;JvValidatorsD11R;JvWizardD11R;pckUCADOConn;pckUCBDEConn;pckUCIBXConn;pckUCMidasConn;cxIntlPrintSys3D10;cxExportD10;cxIntl5D10;GUISDK_D11R;ccpackD11;JSDialog100;fsTee11;fs11;frx11;frxADO11;frxBDE11;frxDB11;frxDBX11;frxe11;frxIBX11;frxTee11;fsADO11;fsBDE11;fsDB11;fsIBX11;websnap;soaprtl;IntrawebDB_90_100;Intraweb_90_100 + + + 7.0 + False + False + 0 + 3 + ..\..\Output\Release\Servidor + RELEASE + + + 7.0 + 3 + ..\..\Output\Debug\Servidor + DEBUG; + True + True + True + C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10 + C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10 + C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10 + C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10 + + + Delphi.Personality + + +FalseTrueFalse/standaloneTrueFalse1830FalseFalseFalseFalseFalse308212521.8.3.01.8.3.0jueves, 24 de junio de 2010 13:44 + + + + + + + + + + ExpressPrinting System by Developer Express Inc. + FactuGES_Server.dpr + + + + + MainSource + + + + + +
srvEmpresas
+ TDARemoteService +
+ +
srvProvinciasPoblaciones_Impl
+ TDataModule +
+ + + +
srvUsuarios
+ TDataAbstractService +
+ + + + + + + +
RptAlbaranesCliente
+ TDataModule +
+ +
RptWordAlbaranCliente
+ TDataModule +
+ +
srvAlbaranesCliente
+ TDataAbstractService +
+ + + + +
RptAlbaranesProveedor
+ TDataModule +
+ +
RptWordAlbaranProveedor
+ TDataModule +
+ +
srvAlbaranesProveedor
+ TDataAbstractService +
+ + + +
srvAlmacenes
+ TDARemoteService +
+ + + + +
srvArticulos
+ TDARemoteService +
+ + + + + + + + +
RptEtiquetasContacto
+ TDataModule +
+ +
RptFichasEmpleado
+ TDataModule +
+ +
srvContactos
+ TDARemoteService +
+ + + +
srvFabricantes
+ TDataAbstractService +
+ + + + +
RptFacturasCliente
+ TDataModule +
+ +
RptWordFacturaCliente
+ TDataModule +
+ +
srvFacturasCliente
+ TDataAbstractService +
+ + + + +
RptFacturasProveedor
+ TDataModule +
+ +
srvFacturasProveedor
+ TDataAbstractService +
+ + + +
srvFamilias
+ TDataAbstractService +
+ + + +
srvFormasPago
+ TDataAbstractService +
+ +
srvGestorDocumentos
+ TDataAbstractService +
+ +
srvGestorInformes
+ TDataAbstractService +
+ + + +
srvHistoricoMovimientos
+ TDataAbstractService +
+ + + +
srvInventario
+ TDataAbstractService +
+ + + + +
srvObras
+ TDataAbstractService +
+ + + + +
RptPedidosProveedor
+ TDataModule +
+ +
RptWordPedidoProveedor
+ TDataModule +
+ +
srvPedidosProveedor
+ TDataAbstractService +
+ + + + +
RptPresupuestosCliente
+ TDataModule +
+ +
RptWordCertificadoTrabajo
+ TDataModule +
+ +
RptWordPresupuestoCliente
+ TDataModule +
+ +
srvPresupuestosCliente
+ TDataAbstractService +
+ + + +
RptRecibosCliente
+ TDataModule +
+ +
srvRecibosCliente
+ TDataAbstractService +
+ + + +
RptRecibosProveedor
+ TDataModule +
+ +
srvRecibosProveedor
+ TDataAbstractService +
+ + + +
srvReferencias
+ TDataAbstractService +
+ + + + +
srvRemesasCliente
+ TDataAbstractService +
+ + + + +
srvRemesasProveedor
+ TDataAbstractService +
+ + + +
srvTiposIVA
+ TDataAbstractService +
+ + + +
srvUnidadesMedida
+ TDataAbstractService +
+ + + +
srvConfiguracion
+ TDataAbstractService +
+ +
frConexionBD
+ TFrame +
+ +
frConfGeneral
+ TFrame +
+ +
fConfiguracion
+ TForm +
+ +
FrameConfiguracion
+ TFrame +
+ +
srvLogin
+ TDARemoteService +
+ +
fAcercaDe
+
+ +
dmServer
+ TDataModule +
+ +
fServerForm
+
+ + + + + + + + + + +
+
+ diff --git a/Source/Servidor/FactuGES_Server.drc b/Source/Servidor/FactuGES_Server.drc new file mode 100644 index 0000000..f89f3ac --- /dev/null +++ b/Source/Servidor/FactuGES_Server.drc @@ -0,0 +1,2740 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +#define cxExtEditConsts_cxSEditRichEditPasteCaption 64224 +#define cxExtEditConsts_cxSEditRichEditDeleteCaption 64225 +#define cxExtEditConsts_cxSEditRichEditSelectAllCaption 64226 +#define VDBConsts_SFirstRecord 64227 +#define VDBConsts_SPriorRecord 64228 +#define VDBConsts_SNextRecord 64229 +#define VDBConsts_SLastRecord 64230 +#define VDBConsts_SInsertRecord 64231 +#define VDBConsts_SDeleteRecord 64232 +#define VDBConsts_SEditRecord 64233 +#define VDBConsts_SPostEdit 64234 +#define VDBConsts_SCancelEdit 64235 +#define VDBConsts_SRefreshRecord 64236 +#define VDBConsts_SRemoteLogin 64237 +#define cxExtEditConsts_cxSCheckComboBoxEmptySelectionText 64240 +#define cxExtEditConsts_cxSCheckControlIncorrectItemCount 64241 +#define cxExtEditConsts_cxSColorComboBoxDefaultDescription 64242 +#define cxExtEditConsts_cxSEditRichEditLibraryError 64243 +#define cxExtEditConsts_cxSEditRichEditLineInsertionError 64244 +#define cxExtEditConsts_cxSEditRichEditLoadFail 64245 +#define cxExtEditConsts_cxSEditRichEditSaveFail 64246 +#define cxExtEditConsts_cxSEditRichEditSelectionSaveFail 64247 +#define cxExtEditConsts_cxSEditRichEditOleInterfaceFail 64248 +#define cxExtEditConsts_cxSEditRichEditCallBackFail 64249 +#define cxExtEditConsts_cxSEditRichEditLinkFail 64250 +#define cxExtEditConsts_scxSEditRepositoryRichEditItem 64251 +#define cxExtEditConsts_cxSEditRichEditUndoCaption 64252 +#define cxExtEditConsts_cxSEditRichEditRedoCaption 64253 +#define cxExtEditConsts_cxSEditRichEditCutCaption 64254 +#define cxExtEditConsts_cxSEditRichEditCopyCaption 64255 +#define cxExtEditConsts_scxSEditRepositoryCheckComboBox 64256 +#define cxExtEditConsts_scxSEditRepositoryShellComboBoxItem 64257 +#define cxExtEditConsts_scxSEditRepositoryCheckGroupItem 64258 +#define cxExtEditConsts_scxUDAssociated 64259 +#define cxExtEditConsts_scxHotZoneStyleMediaPlayer9 64260 +#define cxExtEditConsts_scxHotZoneStyleMediaPlayer8 64261 +#define cxExtEditConsts_scxHotZoneStyleXPTaskBar 64262 +#define cxExtEditConsts_scxHotZoneStyleSimple 64263 +#define cxExtEditConsts_scxLoadingFonts 64264 +#define cxExtEditConsts_cxSEditCheckGroupCaptionStateDelimiter 64265 +#define cxExtEditConsts_cxSEditCheckGroupFilterColumnSeparator 64266 +#define cxExtEditConsts_cxSEditCheckGroupChecked 64267 +#define cxExtEditConsts_cxSEditCheckGroupGrayed 64268 +#define cxExtEditConsts_cxSEditCheckGroupUnchecked 64269 +#define cxExtEditConsts_cxSCheckComboBoxStatesItemsPropertyDlgCaption 64270 +#define cxExtEditConsts_cxSCheckGroupStatesItemsPropertyDlgCaption 64271 +#define OleConst_SLinkProperties 64272 +#define OleConst_SInvalidLinkSource 64273 +#define OleConst_SCannotBreakLink 64274 +#define OleConst_SEmptyContainer 64275 +#define OleConst_SInvalidVerb 64276 +#define OleConst_SPropDlgCaption 64277 +#define OleConst_SInvalidStreamFormat 64278 +#define OleConst_SInvalidLicense 64279 +#define OleConst_SNotLicensed 64280 +#define OleConst_sNoRunningObject 64281 +#define cxExtEditConsts_scxSEditRepositoryColorComboBoxItem 64282 +#define cxExtEditConsts_scxSEditRepositoryFontNameComboBoxItem 64283 +#define cxExtEditConsts_scxSEditRepositoryLabelItem 64284 +#define cxExtEditConsts_scxSEditRepositoryProgressBarItem 64285 +#define cxExtEditConsts_scxSEditRepositoryTrackBarItem 64286 +#define cxExtEditConsts_scxSEditRepositorySpinButtonItem 64287 +#define frxpnglang_EPNGInvalidFileHeaderText 64288 +#define frxpnglang_EPNGIHDRNotFirstText 64289 +#define frxpnglang_EPNGSizeExceedsText 64290 +#define frxpnglang_EPNGUnknownPalEntryText 64291 +#define frxpnglang_EPNGUnknownCriticalChunkText 64292 +#define frxpnglang_EPNGUnknownCompressionText 64293 +#define frxpnglang_EPNGUnknownInterlaceText 64294 +#define frxpnglang_EPNGCannotAssignChunkText 64295 +#define frxpnglang_EPNGUnexpectedEndText 64296 +#define frxpnglang_EPNGNoImageDataText 64297 +#define frxpnglang_EPNGOutMemoryText 64298 +#define frxpnglang_EPNGHeaderNotPresentText 64299 +#define frxpnglang_EInvalidNewSize 64300 +#define MidConst_SErrorLoadingMidas 64301 +#define OleConst_SCannotActivate 64302 +#define OleConst_SNoWindowHandle 64303 +#define cxFilterControlStrs_cxSFilterControlDialogCaption 64304 +#define cxFilterControlStrs_cxSFilterControlDialogNewFile 64305 +#define cxFilterControlStrs_cxSFilterControlDialogOpenDialogCaption 64306 +#define cxFilterControlStrs_cxSFilterControlDialogSaveDialogCaption 64307 +#define cxFilterControlStrs_cxSFilterControlDialogActionSaveCaption 64308 +#define cxFilterControlStrs_cxSFilterControlDialogActionOpenCaption 64309 +#define cxFilterControlStrs_cxSFilterControlDialogActionApplyCaption 64310 +#define cxFilterControlStrs_cxSFilterControlDialogActionOkCaption 64311 +#define cxFilterControlStrs_cxSFilterControlDialogActionCancelCaption 64312 +#define cxFilterControlStrs_cxSFilterControlDialogFileExt 64313 +#define cxFilterControlStrs_cxSFilterControlDialogFileFilter 64314 +#define frxpnglang_EPngInvalidCRCText 64315 +#define frxpnglang_EPNGInvalidIHDRText 64316 +#define frxpnglang_EPNGMissingMultipleIDATText 64317 +#define frxpnglang_EPNGZLIBErrorText 64318 +#define frxpnglang_EPNGInvalidPaletteText 64319 +#define cxFilterControlStrs_cxSFilterAddGroup 64320 +#define cxFilterControlStrs_cxSFilterRemoveRow 64321 +#define cxFilterControlStrs_cxSFilterClearAll 64322 +#define cxFilterControlStrs_cxSFilterFooterAddCondition 64323 +#define cxFilterControlStrs_cxSFilterGroupCaption 64324 +#define cxFilterControlStrs_cxSFilterRootGroupCaption 64325 +#define cxFilterControlStrs_cxSFilterControlNullString 64326 +#define cxFilterControlStrs_cxSFilterErrorBuilding 64327 +#define cxFilterControlStrs_cxSFilterDialogCaption 64328 +#define cxFilterControlStrs_cxSFilterDialogInvalidValue 64329 +#define cxFilterControlStrs_cxSFilterDialogUse 64330 +#define cxFilterControlStrs_cxSFilterDialogSingleCharacter 64331 +#define cxFilterControlStrs_cxSFilterDialogCharactersSeries 64332 +#define cxFilterControlStrs_cxSFilterDialogOperationAnd 64333 +#define cxFilterControlStrs_cxSFilterDialogOperationOr 64334 +#define cxFilterControlStrs_cxSFilterDialogRows 64335 +#define cxLibraryStrs_cxSDateFirst 64336 +#define cxLibraryStrs_cxSDateSecond 64337 +#define cxLibraryStrs_cxSDateThird 64338 +#define cxLibraryStrs_cxSDateFourth 64339 +#define cxLibraryStrs_cxSDateFifth 64340 +#define cxLibraryStrs_cxSDateSixth 64341 +#define cxLibraryStrs_cxSDateSeventh 64342 +#define cxLibraryStrs_cxSDateBOM 64343 +#define cxLibraryStrs_cxSDateEOM 64344 +#define cxLibraryStrs_cxSDateNow 64345 +#define cxFilterControlStrs_cxSFilterBoolOperatorAnd 64346 +#define cxFilterControlStrs_cxSFilterBoolOperatorOr 64347 +#define cxFilterControlStrs_cxSFilterBoolOperatorNotAnd 64348 +#define cxFilterControlStrs_cxSFilterBoolOperatorNotOr 64349 +#define cxFilterControlStrs_cxSFilterRootButtonCaption 64350 +#define cxFilterControlStrs_cxSFilterAddCondition 64351 +#define cxEditConsts_scxMaskEditMaskCollectionFiles 64352 +#define cxEditConsts_cxSSpinEditInvalidNumericValue 64353 +#define cxLibraryStrs_scxCantCreateRegistryKey 64354 +#define cxLibraryStrs_scxCantOpenRegistryKey 64355 +#define cxLibraryStrs_scxErrorStoreObject 64356 +#define cxLibraryStrs_scxConverterCantCreateStyleRepository 64357 +#define cxLibraryStrs_cxSDateToday 64358 +#define cxLibraryStrs_cxSDateYesterday 64359 +#define cxLibraryStrs_cxSDateTomorrow 64360 +#define cxLibraryStrs_cxSDateSunday 64361 +#define cxLibraryStrs_cxSDateMonday 64362 +#define cxLibraryStrs_cxSDateTuesday 64363 +#define cxLibraryStrs_cxSDateWednesday 64364 +#define cxLibraryStrs_cxSDateThursday 64365 +#define cxLibraryStrs_cxSDateFriday 64366 +#define cxLibraryStrs_cxSDateSaturday 64367 +#define cxEditConsts_scxRegExprTooBigReferenceNumber 64368 +#define cxEditConsts_scxRegExprCantCreateEmptyEnum 64369 +#define cxEditConsts_scxRegExprSubrangeOrder 64370 +#define cxEditConsts_scxRegExprHexNumberExpected0 64371 +#define cxEditConsts_scxRegExprHexNumberExpected 64372 +#define cxEditConsts_scxRegExprMissing 64373 +#define cxEditConsts_scxRegExprUnnecessary 64374 +#define cxEditConsts_scxRegExprIncorrectSpace 64375 +#define cxEditConsts_scxRegExprNotCompiled 64376 +#define cxEditConsts_scxRegExprIncorrectParameterQuantifier 64377 +#define cxEditConsts_scxRegExprCantUseParameterQuantifier 64378 +#define cxEditConsts_scxMaskEditRegExprError 64379 +#define cxEditConsts_scxMaskEditInvalidEditValue 64380 +#define cxEditConsts_scxMaskEditNoMask 64381 +#define cxEditConsts_scxMaskEditIllegalFileFormat 64382 +#define cxEditConsts_scxMaskEditEmptyMaskCollectionFile 64383 +#define cxEditConsts_scxSEditRepositorySpinItem 64384 +#define cxEditConsts_scxSEditRepositoryRadioGroupItem 64385 +#define cxEditConsts_scxSEditRepositoryTextItem 64386 +#define cxEditConsts_scxSEditRepositoryTimeItem 64387 +#define cxEditConsts_scxRegExprLine 64388 +#define cxEditConsts_scxRegExprChar 64389 +#define cxEditConsts_scxRegExprNotAssignedSourceStream 64390 +#define cxEditConsts_scxRegExprEmptySourceStream 64391 +#define cxEditConsts_scxRegExprCantUsePlusQuantifier 64392 +#define cxEditConsts_scxRegExprCantUseStarQuantifier 64393 +#define cxEditConsts_scxRegExprCantCreateEmptyAlt 64394 +#define cxEditConsts_scxRegExprCantCreateEmptyBlock 64395 +#define cxEditConsts_scxRegExprIllegalSymbol 64396 +#define cxEditConsts_scxRegExprIllegalQuantifier 64397 +#define cxEditConsts_scxRegExprNotSupportQuantifier 64398 +#define cxEditConsts_scxRegExprIllegalIntegerValue 64399 +#define cxEditConsts_cxNavigator_DeleteRecordQuestion 64400 +#define cxEditConsts_scxSEditRepositoryBlobItem 64401 +#define cxEditConsts_scxSEditRepositoryButtonItem 64402 +#define cxEditConsts_scxSEditRepositoryCalcItem 64403 +#define cxEditConsts_scxSEditRepositoryCheckBoxItem 64404 +#define cxEditConsts_scxSEditRepositoryComboBoxItem 64405 +#define cxEditConsts_scxSEditRepositoryCurrencyItem 64406 +#define cxEditConsts_scxSEditRepositoryDateItem 64407 +#define cxEditConsts_scxSEditRepositoryHyperLinkItem 64408 +#define cxEditConsts_scxSEditRepositoryImageComboBoxItem 64409 +#define cxEditConsts_scxSEditRepositoryImageItem 64410 +#define cxEditConsts_scxSEditRepositoryLookupComboBoxItem 64411 +#define cxEditConsts_scxSEditRepositoryMaskItem 64412 +#define cxEditConsts_scxSEditRepositoryMemoItem 64413 +#define cxEditConsts_scxSEditRepositoryMRUItem 64414 +#define cxEditConsts_scxSEditRepositoryPopupItem 64415 +#define cxEditConsts_cxNavigatorHint_First 64416 +#define cxEditConsts_cxNavigatorHint_Prior 64417 +#define cxEditConsts_cxNavigatorHint_PriorPage 64418 +#define cxEditConsts_cxNavigatorHint_Next 64419 +#define cxEditConsts_cxNavigatorHint_NextPage 64420 +#define cxEditConsts_cxNavigatorHint_Last 64421 +#define cxEditConsts_cxNavigatorHint_Insert 64422 +#define cxEditConsts_cxNavigatorHint_Append 64423 +#define cxEditConsts_cxNavigatorHint_Delete 64424 +#define cxEditConsts_cxNavigatorHint_Edit 64425 +#define cxEditConsts_cxNavigatorHint_Post 64426 +#define cxEditConsts_cxNavigatorHint_Cancel 64427 +#define cxEditConsts_cxNavigatorHint_Refresh 64428 +#define cxEditConsts_cxNavigatorHint_SaveBookmark 64429 +#define cxEditConsts_cxNavigatorHint_GotoBookmark 64430 +#define cxEditConsts_cxNavigatorHint_Filter 64431 +#define cxEditConsts_cxSBlobPicture 64432 +#define cxEditConsts_cxSBlobPictureEmpty 64433 +#define cxEditConsts_cxSMenuItemCaptionCut 64434 +#define cxEditConsts_cxSMenuItemCaptionCopy 64435 +#define cxEditConsts_cxSMenuItemCaptionPaste 64436 +#define cxEditConsts_cxSMenuItemCaptionDelete 64437 +#define cxEditConsts_cxSMenuItemCaptionLoad 64438 +#define cxEditConsts_cxSMenuItemCaptionSave 64439 +#define cxEditConsts_cxSDatePopupClear 64440 +#define cxEditConsts_cxSDatePopupNow 64441 +#define cxEditConsts_cxSDatePopupOK 64442 +#define cxEditConsts_cxSDatePopupToday 64443 +#define cxEditConsts_cxSDateError 64444 +#define cxEditConsts_scxSCalcError 64445 +#define cxEditConsts_scxSHyperLinkPrefix 64446 +#define cxEditConsts_scxSHyperLinkDoubleSlash 64447 +#define cxEditConsts_cxSEditPopupCircularReferencingError 64448 +#define cxEditConsts_cxSEditPostError 64449 +#define cxEditConsts_cxSEditTimeConvertError 64450 +#define cxEditConsts_cxSEditValidateErrorText 64451 +#define cxEditConsts_cxSEditValueOutOfBounds 64452 +#define cxEditConsts_cxSEditCheckBoxChecked 64453 +#define cxEditConsts_cxSEditCheckBoxGrayed 64454 +#define cxEditConsts_cxSEditCheckBoxUnchecked 64455 +#define cxEditConsts_cxSRadioGroupDefaultCaption 64456 +#define cxEditConsts_cxSTextTrue 64457 +#define cxEditConsts_cxSTextFalse 64458 +#define cxEditConsts_cxSBlobButtonOK 64459 +#define cxEditConsts_cxSBlobButtonCancel 64460 +#define cxEditConsts_cxSBlobButtonClose 64461 +#define cxEditConsts_cxSBlobMemo 64462 +#define cxEditConsts_cxSBlobMemoEmpty 64463 +#define cxFilterConsts_cxSFilterOperatorIsNotNull 64464 +#define cxFilterConsts_cxSFilterOperatorBeginsWith 64465 +#define cxFilterConsts_cxSFilterOperatorDoesNotBeginWith 64466 +#define cxFilterConsts_cxSFilterOperatorEndsWith 64467 +#define cxFilterConsts_cxSFilterOperatorDoesNotEndWith 64468 +#define cxFilterConsts_cxSFilterOperatorContains 64469 +#define cxFilterConsts_cxSFilterOperatorDoesNotContain 64470 +#define cxFilterConsts_cxSFilterBoxAllCaption 64471 +#define cxFilterConsts_cxSFilterBoxCustomCaption 64472 +#define cxFilterConsts_cxSFilterBoxBlanksCaption 64473 +#define cxFilterConsts_cxSFilterBoxNonBlanksCaption 64474 +#define cxEditConsts_cxSEditButtonCancel 64475 +#define cxEditConsts_cxSEditButtonOK 64476 +#define cxEditConsts_cxSEditDateConvertError 64477 +#define cxEditConsts_cxSEditInvalidRepositoryItem 64478 +#define cxEditConsts_cxSEditNumericValueConvertError 64479 +#define cxFilterConsts_cxSFilterOperatorThisWeek 64480 +#define cxFilterConsts_cxSFilterOperatorThisMonth 64481 +#define cxFilterConsts_cxSFilterOperatorThisYear 64482 +#define cxFilterConsts_cxSFilterOperatorNext7Days 64483 +#define cxFilterConsts_cxSFilterOperatorNextWeek 64484 +#define cxFilterConsts_cxSFilterOperatorNext14Days 64485 +#define cxFilterConsts_cxSFilterOperatorNextTwoWeeks 64486 +#define cxFilterConsts_cxSFilterOperatorNext30Days 64487 +#define cxFilterConsts_cxSFilterOperatorNextMonth 64488 +#define cxFilterConsts_cxSFilterOperatorNextYear 64489 +#define cxFilterConsts_cxSFilterOperatorFuture 64490 +#define cxFilterConsts_cxSFilterAndCaption 64491 +#define cxFilterConsts_cxSFilterOrCaption 64492 +#define cxFilterConsts_cxSFilterNotCaption 64493 +#define cxFilterConsts_cxSFilterBlankCaption 64494 +#define cxFilterConsts_cxSFilterOperatorIsNull 64495 +#define cxFilterConsts_cxSFilterOperatorNotLike 64496 +#define cxFilterConsts_cxSFilterOperatorBetween 64497 +#define cxFilterConsts_cxSFilterOperatorNotBetween 64498 +#define cxFilterConsts_cxSFilterOperatorInList 64499 +#define cxFilterConsts_cxSFilterOperatorNotInList 64500 +#define cxFilterConsts_cxSFilterOperatorYesterday 64501 +#define cxFilterConsts_cxSFilterOperatorToday 64502 +#define cxFilterConsts_cxSFilterOperatorTomorrow 64503 +#define cxFilterConsts_cxSFilterOperatorLast7Days 64504 +#define cxFilterConsts_cxSFilterOperatorLastWeek 64505 +#define cxFilterConsts_cxSFilterOperatorLast14Days 64506 +#define cxFilterConsts_cxSFilterOperatorLastTwoWeeks 64507 +#define cxFilterConsts_cxSFilterOperatorLast30Days 64508 +#define cxFilterConsts_cxSFilterOperatorLastMonth 64509 +#define cxFilterConsts_cxSFilterOperatorLastYear 64510 +#define cxFilterConsts_cxSFilterOperatorPast 64511 +#define cxDataConsts_cxSDataRecordIndexError 64512 +#define cxDataConsts_cxSDataItemIndexError 64513 +#define cxDataConsts_cxSDataProviderModeError 64514 +#define cxDataConsts_cxSDataInvalidStreamFormat 64515 +#define cxDataConsts_cxSDataRowIndexError 64516 +#define cxDataConsts_cxSDataCustomDataSourceInvalidCompare 64517 +#define cxDataConsts_cxSDBDetailFilterControllerNotFound 64518 +#define cxDataConsts_cxSDBNotInGridMode 64519 +#define cxDataConsts_cxSDBKeyFieldNotFound 64520 +#define cxFilterConsts_cxSFilterOperatorEqual 64521 +#define cxFilterConsts_cxSFilterOperatorNotEqual 64522 +#define cxFilterConsts_cxSFilterOperatorLess 64523 +#define cxFilterConsts_cxSFilterOperatorLessEqual 64524 +#define cxFilterConsts_cxSFilterOperatorGreater 64525 +#define cxFilterConsts_cxSFilterOperatorGreaterEqual 64526 +#define cxFilterConsts_cxSFilterOperatorLike 64527 +#define pnglang_EPNGSizeExceedsText 64528 +#define pnglang_EPNGUnknownPalEntryText 64529 +#define pnglang_EPNGUnknownCriticalChunkText 64530 +#define pnglang_EPNGUnknownCompressionText 64531 +#define pnglang_EPNGUnknownInterlaceText 64532 +#define pnglang_EPNGCannotAssignChunkText 64533 +#define pnglang_EPNGUnexpectedEndText 64534 +#define pnglang_EPNGNoImageDataText 64535 +#define pnglang_EPNGCannotChangeSizeText 64536 +#define pnglang_EPNGCannotAddChunkText 64537 +#define pnglang_EPNGCannotAddInvalidImageText 64538 +#define pnglang_EPNGOutMemoryText 64539 +#define pnglang_EPNGHeaderNotPresentText 64540 +#define cxDataConsts_cxSDataReadError 64541 +#define cxDataConsts_cxSDataWriteError 64542 +#define cxDataConsts_cxSDataItemExistError 64543 +#define IBSQLMonitor_StrPrepare 64544 +#define IBSQLMonitor_StrPlan 64545 +#define IBSQLMonitor_StrPlanCantRetrive 64546 +#define IBSQLMonitor_StrCommitHardComm 64547 +#define IBSQLMonitor_StrCommitRetaining 64548 +#define IBSQLMonitor_StrRollback 64549 +#define IBSQLMonitor_StrRollbackRetainin 64550 +#define IBSQLMonitor_StrStartTransaction 64551 +#define IBSQLMonitor_StrApplication 64552 +#define pnglang_EPngInvalidCRCText 64553 +#define pnglang_EPNGInvalidIHDRText 64554 +#define pnglang_EPNGMissingMultipleIDATText 64555 +#define pnglang_EPNGZLIBErrorText 64556 +#define pnglang_EPNGInvalidPaletteText 64557 +#define pnglang_EPNGInvalidFileHeaderText 64558 +#define pnglang_EPNGIHDRNotFirstText 64559 +#define IBXConst_SLoginPromptFailure 64560 +#define IBXConst_SIB70feature 64561 +#define IBXConst_SIB71feature 64562 +#define IBXConst_SIB80feature 64563 +#define IBSQLMonitor_StrConnect 64564 +#define IBSQLMonitor_StrDisconnect 64565 +#define IBSQLMonitor_StrMisc 64566 +#define IBSQLMonitor_StrError 64567 +#define IBSQLMonitor_StrAttach 64568 +#define IBSQLMonitor_StrDetach 64569 +#define IBSQLMonitor_StrQuery 64570 +#define IBSQLMonitor_StrStart 64571 +#define IBSQLMonitor_StrExecute 64572 +#define IBSQLMonitor_StrNULL 64573 +#define IBSQLMonitor_StrBLOB 64574 +#define IBSQLMonitor_StrFetch 64575 +#define IBXConst_SNoDestinationDirectory 64576 +#define IBXConst_SNosourceDirectory 64577 +#define IBXConst_SNoUninstallFile 64578 +#define IBXConst_SOptionNeedsClient 64579 +#define IBXConst_SOptionNeedsServer 64580 +#define IBXConst_SInvalidOption 64581 +#define IBXConst_SInvalidOnErrorResult 64582 +#define IBXConst_SInvalidOnStatusResult 64583 +#define IBXConst_SDPBConstantUnknownEx 64584 +#define IBXConst_STPBConstantUnknownEx 64585 +#define IBXConst_SUnknownPlan 64586 +#define IBXConst_SFieldSizeMismatch 64587 +#define IBXConst_SEventAlreadyRegistered 64588 +#define IBXConst_SStringTooLarge 64589 +#define IBXConst_SNoTimers 64590 +#define IBXConst_SIB65feature 64591 +#define IBXConst_SServiceActive 64592 +#define IBXConst_SServiceInActive 64593 +#define IBXConst_SServerNameMissing 64594 +#define IBXConst_SQueryParamsError 64595 +#define IBXConst_SStartParamsError 64596 +#define IBXConst_SOutputParsingError 64597 +#define IBXConst_SUseSpecificProcedures 64598 +#define IBXConst_SSQLMonitorAlreadyPresent 64599 +#define IBXConst_SCantPrintValue 64600 +#define IBXConst_SEOFReached 64601 +#define IBXConst_SEOFInComment 64602 +#define IBXConst_SEOFInString 64603 +#define IBXConst_SParamNameExpected 64604 +#define IBXConst_SSuccess 64605 +#define IBXConst_SDelphiException 64606 +#define IBXConst_SNoOptionsSet 64607 +#define IBXConst_SNoRecordsAffected 64608 +#define IBXConst_SNoTableName 64609 +#define IBXConst_SCannotCreatePrimaryIndex 64610 +#define IBXConst_SCannotDropSystemIndex 64611 +#define IBXConst_STableNameMismatch 64612 +#define IBXConst_SIndexFieldMissing 64613 +#define IBXConst_SInvalidCancellation 64614 +#define IBXConst_SInvalidEvent 64615 +#define IBXConst_SMaximumEvents 64616 +#define IBXConst_SNoEventsRegistered 64617 +#define IBXConst_SInvalidQueueing 64618 +#define IBXConst_SInvalidRegistration 64619 +#define IBXConst_SInvalidBatchMove 64620 +#define IBXConst_SSQLDialectInvalid 64621 +#define IBXConst_SSPBConstantNotSupported 64622 +#define IBXConst_SSPBConstantUnknown 64623 +#define IBXConst_SCannotCreateSharedResource 64624 +#define IBXConst_SWindowsAPIError 64625 +#define IBXConst_SColumnListsDontMatch 64626 +#define IBXConst_SColumnTypesDontMatch 64627 +#define IBXConst_SCantEndSharedTransaction 64628 +#define IBXConst_SFieldUnsupportedType 64629 +#define IBXConst_SCircularDataLink 64630 +#define IBXConst_SEmptySQLStatement 64631 +#define IBXConst_SIsASelectStatement 64632 +#define IBXConst_SRequiredParamNotSet 64633 +#define IBXConst_SNoStoredProcName 64634 +#define IBXConst_SIsAExecuteProcedure 64635 +#define IBXConst_SUpdateFailed 64636 +#define IBXConst_SNotCachedUpdates 64637 +#define IBXConst_SNotLiveRequest 64638 +#define IBXConst_SNoProvider 64639 +#define IBXConst_SEmptyQuery 64640 +#define IBXConst_SCannotOpenNonSQLSelect 64641 +#define IBXConst_SNoFieldAccess 64642 +#define IBXConst_SFieldReadOnly 64643 +#define IBXConst_SFieldNotFound 64644 +#define IBXConst_SNotEditing 64645 +#define IBXConst_SCannotInsert 64646 +#define IBXConst_SCannotPost 64647 +#define IBXConst_SCannotUpdate 64648 +#define IBXConst_SCannotDelete 64649 +#define IBXConst_SCannotRefresh 64650 +#define IBXConst_SBufferNotSet 64651 +#define IBXConst_SCircularReference 64652 +#define IBXConst_SSQLParseError 64653 +#define IBXConst_SUserAbort 64654 +#define IBXConst_SDataSetUniDirectional 64655 +#define IBXConst_SXSQLDAIndexOutOfRange 64656 +#define IBXConst_SXSQLDANameDoesNotExist 64657 +#define IBXConst_SEOF 64658 +#define IBXConst_SBOF 64659 +#define IBXConst_SInvalidStatementHandle 64660 +#define IBXConst_SSQLOpen 64661 +#define IBXConst_SSQLClosed 64662 +#define IBXConst_SDatasetOpen 64663 +#define IBXConst_SDatasetClosed 64664 +#define IBXConst_SUnknownSQLDataType 64665 +#define IBXConst_SInvalidColumnIndex 64666 +#define IBXConst_SInvalidParamColumnIndex 64667 +#define IBXConst_SInvalidDataConversion 64668 +#define IBXConst_SColumnIsNotNullable 64669 +#define IBXConst_SBlobCannotBeRead 64670 +#define IBXConst_SBlobCannotBeWritten 64671 +#define IBXConst_SOperationCancelled 64672 +#define IBXConst_SDPBConstantNotSupported 64673 +#define IBXConst_SDPBConstantUnknown 64674 +#define IBXConst_STPBConstantNotSupported 64675 +#define IBXConst_STPBConstantUnknown 64676 +#define IBXConst_SDatabaseClosed 64677 +#define IBXConst_SDatabaseOpen 64678 +#define IBXConst_SDatabaseNameMissing 64679 +#define IBXConst_SNotInTransaction 64680 +#define IBXConst_SInTransaction 64681 +#define IBXConst_STimeoutNegative 64682 +#define IBXConst_SNoDatabasesInTransaction 64683 +#define IBXConst_SUpdateWrongDB 64684 +#define IBXConst_SUpdateWrongTR 64685 +#define IBXConst_SDatabaseNotAssigned 64686 +#define IBXConst_STransactionNotAssigned 64687 +#define uDARes_err_NeedShareMem 64688 +#define uDARes_err_DatasetNotAccessible 64689 +#define uDARes_err_CommandNotAccessible 64690 +#define uDARes_err_SQLNotPermitted 64691 +#define uDARes_err_UTF8DecodeError 64692 +#define uDAMemDataset_SNoDetailFilter 64693 +#define IBXConst_SUnknownError 64694 +#define IBXConst_SInterBaseMissing 64695 +#define IBXConst_SInterBaseInstallMissing 64696 +#define IBXConst_SIB60feature 64697 +#define IBXConst_SNotSupported 64698 +#define IBXConst_SNotPermitted 64699 +#define IBXConst_SFileAccessError 64700 +#define IBXConst_SConnectionTimeout 64701 +#define IBXConst_SCannotSetDatabase 64702 +#define IBXConst_SCannotSetTransaction 64703 +#define uDARes_err_NotSupported 64704 +#define uDARes_err_InvalidDataset 64705 +#define uDARes_err_CannotFindItem 64706 +#define uDARes_err_DriverAlreadyLoaded 64707 +#define uDARes_err_InvalidDLL 64708 +#define uDARes_err_UnknownDriver 64709 +#define uDARes_err_FieldIsNotBound 64710 +#define uDARes_err_CannotFindField 64711 +#define uDARes_err_LoadPackageFailed 64712 +#define uDARes_err_InvalidDriverReference 64713 +#define uDARes_err_CannotFindStatement 64714 +#define uDARes_err_CannotFindDefaultItem 64715 +#define uDARes_err_PoolIsNotEmpty 64716 +#define uDARes_err_MaxPoolSizeReached 64717 +#define uDARes_err_DARDMInvalidSchema 64718 +#define uDARes_err_DARDMCannotFindProxessorForDelta 64719 +#define JclResources_RsIntelCacheDescrB1 64720 +#define JclResources_RsIntelCacheDescrB3 64721 +#define JclResources_RsIntelCacheDescrB4 64722 +#define JclResources_RsIntelCacheDescrBA 64723 +#define JclResources_RsIntelCacheDescrC0 64724 +#define JclResources_RsIntelCacheDescrF0 64725 +#define JclResources_RsIntelCacheDescrF1 64726 +#define JConsts_sChangeJPGSize 64727 +#define JConsts_sJPEGError 64728 +#define JConsts_sJPEGImageFile 64729 +#define uDARes_err_ChangeLogAlreadyStarted 64730 +#define uDARes_err_NotAttachedToDataTable 64731 +#define uDARes_err_DriverProcAlreadyRegistered 64732 +#define uDARes_err_DriverManagerAlreadyCreated 64733 +#define uDARes_err_DriverManagerNotAssigned 64734 +#define uDARes_err_FieldTypeNotSupported 64735 +#define JclResources_RsIntelCacheDescr73 64736 +#define JclResources_RsIntelCacheDescr78 64737 +#define JclResources_RsIntelCacheDescr79 64738 +#define JclResources_RsIntelCacheDescr7A 64739 +#define JclResources_RsIntelCacheDescr7B 64740 +#define JclResources_RsIntelCacheDescr7C 64741 +#define JclResources_RsIntelCacheDescr7D 64742 +#define JclResources_RsIntelCacheDescr7F 64743 +#define JclResources_RsIntelCacheDescr80 64744 +#define JclResources_RsIntelCacheDescr82 64745 +#define JclResources_RsIntelCacheDescr83 64746 +#define JclResources_RsIntelCacheDescr84 64747 +#define JclResources_RsIntelCacheDescr85 64748 +#define JclResources_RsIntelCacheDescr86 64749 +#define JclResources_RsIntelCacheDescr87 64750 +#define JclResources_RsIntelCacheDescrB0 64751 +#define JclResources_RsIntelCacheDescr50 64752 +#define JclResources_RsIntelCacheDescr51 64753 +#define JclResources_RsIntelCacheDescr52 64754 +#define JclResources_RsIntelCacheDescr56 64755 +#define JclResources_RsIntelCacheDescr57 64756 +#define JclResources_RsIntelCacheDescr59 64757 +#define JclResources_RsIntelCacheDescr5B 64758 +#define JclResources_RsIntelCacheDescr5C 64759 +#define JclResources_RsIntelCacheDescr5D 64760 +#define JclResources_RsIntelCacheDescr60 64761 +#define JclResources_RsIntelCacheDescr66 64762 +#define JclResources_RsIntelCacheDescr67 64763 +#define JclResources_RsIntelCacheDescr68 64764 +#define JclResources_RsIntelCacheDescr70 64765 +#define JclResources_RsIntelCacheDescr71 64766 +#define JclResources_RsIntelCacheDescr72 64767 +#define JclResources_RsIntelCacheDescr3E 64768 +#define JclResources_RsIntelCacheDescr40 64769 +#define JclResources_RsIntelCacheDescr41 64770 +#define JclResources_RsIntelCacheDescr42 64771 +#define JclResources_RsIntelCacheDescr43 64772 +#define JclResources_RsIntelCacheDescr44 64773 +#define JclResources_RsIntelCacheDescr45 64774 +#define JclResources_RsIntelCacheDescr46 64775 +#define JclResources_RsIntelCacheDescr47 64776 +#define JclResources_RsIntelCacheDescr48 64777 +#define JclResources_RsIntelCacheDescr49 64778 +#define JclResources_RsIntelCacheDescr4A 64779 +#define JclResources_RsIntelCacheDescr4B 64780 +#define JclResources_RsIntelCacheDescr4D 64781 +#define JclResources_RsIntelCacheDescr4E 64782 +#define JclResources_RsIntelCacheDescr4F 64783 +#define JclResources_RsIntelCacheDescr08 64784 +#define JclResources_RsIntelCacheDescr0A 64785 +#define JclResources_RsIntelCacheDescr0B 64786 +#define JclResources_RsIntelCacheDescr0C 64787 +#define JclResources_RsIntelCacheDescr0E 64788 +#define JclResources_RsIntelCacheDescr22 64789 +#define JclResources_RsIntelCacheDescr23 64790 +#define JclResources_RsIntelCacheDescr25 64791 +#define JclResources_RsIntelCacheDescr29 64792 +#define JclResources_RsIntelCacheDescr2C 64793 +#define JclResources_RsIntelCacheDescr30 64794 +#define JclResources_RsIntelCacheDescr39 64795 +#define JclResources_RsIntelCacheDescr3A 64796 +#define JclResources_RsIntelCacheDescr3B 64797 +#define JclResources_RsIntelCacheDescr3C 64798 +#define JclResources_RsIntelCacheDescr3D 64799 +#define JclResources_RsRTTIParamCount 64800 +#define JclResources_RsRTTIReturnType 64801 +#define JclResources_RsRTTIMaxLen 64802 +#define JclResources_RsRTTIElSize 64803 +#define JclResources_RsRTTIElType 64804 +#define JclResources_RsRTTIElNeedCleanup 64805 +#define JclResources_RsRTTIVarType 64806 +#define JclResources_RsDeclarationFormat 64807 +#define JclResources_RsSynchCreateEvent 64808 +#define JclResources_RsIntelCacheDescr00 64809 +#define JclResources_RsIntelCacheDescr01 64810 +#define JclResources_RsIntelCacheDescr02 64811 +#define JclResources_RsIntelCacheDescr03 64812 +#define JclResources_RsIntelCacheDescr04 64813 +#define JclResources_RsIntelCacheDescr05 64814 +#define JclResources_RsIntelCacheDescr06 64815 +#define JclResources_RsRTTIName 64816 +#define JclResources_RsRTTIType 64817 +#define JclResources_RsRTTIFlags 64818 +#define JclResources_RsRTTIGUID 64819 +#define JclResources_RsRTTITypeKind 64820 +#define JclResources_RsRTTIOrdinalType 64821 +#define JclResources_RsRTTIMinValue 64822 +#define JclResources_RsRTTIMaxValue 64823 +#define JclResources_RsRTTINameList 64824 +#define JclResources_RsRTTIClassName 64825 +#define JclResources_RsRTTIParent 64826 +#define JclResources_RsRTTIPropCount 64827 +#define JclResources_RsRTTIUnitName 64828 +#define JclResources_RsRTTIBasedOn 64829 +#define JclResources_RsRTTIFloatType 64830 +#define JclResources_RsRTTIMethodKind 64831 +#define JclResources_RsRTTIConst 64832 +#define JclResources_RsRTTIArrayOf 64833 +#define JclResources_RsRTTIOut 64834 +#define JclResources_RsRTTIOrdinal 64835 +#define JclResources_RsRTTITrue 64836 +#define JclResources_RsRTTIFalse 64837 +#define JclResources_RsRTTITypeError 64838 +#define JclResources_RsRTTITypeInfoAt 64839 +#define JclResources_RsRTTIPropRead 64840 +#define JclResources_RsRTTIPropWrite 64841 +#define JclResources_RsRTTIPropStored 64842 +#define JclResources_RsRTTIField 64843 +#define JclResources_RsRTTIStaticMethod 64844 +#define JclResources_RsRTTIVirtualMethod 64845 +#define JclResources_RsRTTIIndex 64846 +#define JclResources_RsRTTIDefault 64847 +#define JvResources_RsMenuHighlight 64848 +#define JclResources_RsWin32Prefix 64849 +#define JclResources_RsEReplacementChar 64850 +#define JclResources_RsFileUtilsNoVersionInfo 64851 +#define JclResources_RsCreateFileMapping 64852 +#define JclResources_RsCreateFileMappingView 64853 +#define JclResources_RsViewNeedsMapping 64854 +#define JclResources_RsFailedToObtainSize 64855 +#define JclResources_RsUnableToOpenKeyRead 64856 +#define JclResources_RsUnableToOpenKeyWrite 64857 +#define JclResources_RsUnableToAccessValue 64858 +#define JclResources_RsWrongDataType 64859 +#define JclResources_RsInconsistentPath 64860 +#define JclResources_RsRTTIValueOutOfRange 64861 +#define JclResources_RsRTTIUnknownIdentifier 64862 +#define JclResources_RsRTTIVar 64863 +#define JvResources_RsClHighlight 64864 +#define JvResources_RsClHighlightText 64865 +#define JvResources_RsClBtnFace 64866 +#define JvResources_RsClBtnShadow 64867 +#define JvResources_RsClGrayText 64868 +#define JvResources_RsClBtnText 64869 +#define JvResources_RsClInactiveCaptionText 64870 +#define JvResources_RsClBtnHighlight 64871 +#define JvResources_RsCl3DDkShadow 64872 +#define JvResources_RsCl3DLight 64873 +#define JvResources_RsClInfoText 64874 +#define JvResources_RsClInfoBk 64875 +#define JvResources_RsGradientActiveCaption 64876 +#define JvResources_RsGradientInactiveCaption 64877 +#define JvResources_RsHotLight 64878 +#define JvResources_RsMenuBar 64879 +#define JvResources_RsClLightTurquoise 64880 +#define JvResources_RsClPaleBlue 64881 +#define JvResources_RsClLavender 64882 +#define JvResources_RsClScrollBar 64883 +#define JvResources_RsClBackground 64884 +#define JvResources_RsClActiveCaption 64885 +#define JvResources_RsClInactiveCaption 64886 +#define JvResources_RsClMenu 64887 +#define JvResources_RsClWindow 64888 +#define JvResources_RsClWindowFrame 64889 +#define JvResources_RsClMenuText 64890 +#define JvResources_RsClWindowText 64891 +#define JvResources_RsClCaptionText 64892 +#define JvResources_RsClActiveBorder 64893 +#define JvResources_RsClInactiveBorder 64894 +#define JvResources_RsClAppWorkSpace 64895 +#define JvResources_RsClGray50 64896 +#define JvResources_RsClLightOrange 64897 +#define JvResources_RsClSeaGreen 64898 +#define JvResources_RsClLightBlue 64899 +#define JvResources_RsClViolet 64900 +#define JvResources_RsClGray40 64901 +#define JvResources_RsClPink 64902 +#define JvResources_RsClGold 64903 +#define JvResources_RsClBrightGreen 64904 +#define JvResources_RsClTurquoise 64905 +#define JvResources_RsClPlum 64906 +#define JvResources_RsClGray25 64907 +#define JvResources_RsClRose 64908 +#define JvResources_RsClTan 64909 +#define JvResources_RsClLightYellow 64910 +#define JvResources_RsClLightGreen 64911 +#define JvResources_RsClWhite 64912 +#define JvResources_RsClMoneyGreen 64913 +#define JvResources_RsClSkyBlue 64914 +#define JvResources_RsClCream 64915 +#define JvResources_RsClMedGray 64916 +#define JvResources_RsClBrown 64917 +#define JvResources_RsClOliveGreen 64918 +#define JvResources_RsClDarkGreen 64919 +#define JvResources_RsClDarkTeal 64920 +#define JvResources_RsClDarkBlue 64921 +#define JvResources_RsClIndigo 64922 +#define JvResources_RsClGray80 64923 +#define JvResources_RsClDarkRed 64924 +#define JvResources_RsClOrange 64925 +#define JvResources_RsClDarkYellow 64926 +#define JvResources_RsClBlueGray 64927 +#define JvResources_RsEBitCountNotImplemented 64928 +#define JvResources_RsClBlack 64929 +#define JvResources_RsClMaroon 64930 +#define JvResources_RsClGreen 64931 +#define JvResources_RsClOlive 64932 +#define JvResources_RsClNavy 64933 +#define JvResources_RsClPurple 64934 +#define JvResources_RsClTeal 64935 +#define JvResources_RsClGray 64936 +#define JvResources_RsClSilver 64937 +#define JvResources_RsClRed 64938 +#define JvResources_RsClLime 64939 +#define JvResources_RsClYellow 64940 +#define JvResources_RsClBlue 64941 +#define JvResources_RsClFuchsia 64942 +#define JvResources_RsClAqua 64943 +#define JvResources_RsEEnumeratingRegistry 64944 +#define JvResources_RsEInvalidType 64945 +#define JvResources_RsEUnknownBaseType 64946 +#define JvResources_RsEInvalidPath 64947 +#define JvResources_RsENotAUniqueRootPath 64948 +#define JvResources_RsECircularReferenceOfStorages 64949 +#define JvResources_RsGIFImage 64950 +#define JvResources_RsEChangeGIFSize 64951 +#define JvResources_RsENoGIFData 64952 +#define JvResources_RsEUnrecognizedGIFExt 64953 +#define JvResources_RsEWrongGIFColors 64954 +#define JvResources_RsEBadGIFCodeSize 64955 +#define JvResources_RsEGIFDecodeError 64956 +#define JvResources_RsEGIFEncodeError 64957 +#define JvResources_RsEGIFVersion 64958 +#define JvResources_RsEPixelFormatNotImplemented 64959 +#define ComStrs_sTabFailRetrieve 64960 +#define ComStrs_sTabFailGetObject 64961 +#define ComStrs_sTabFailSet 64962 +#define ComStrs_sTabFailSetObject 64963 +#define ComStrs_sTabMustBeMultiLine 64964 +#define ComStrs_sInvalidIndex 64965 +#define ComStrs_sInsertError 64966 +#define ComStrs_sRichEditInsertError 64967 +#define ComStrs_sRichEditLoadFail 64968 +#define ComStrs_sRichEditSaveFail 64969 +#define ComStrs_sUDAssociated 64970 +#define ComStrs_sPageIndexError 64971 +#define JvResources_RsAniExtension 64972 +#define JvResources_RsAniFilterName 64973 +#define JvResources_RsRootValueReplaceFmt 64974 +#define JvResources_RsEUnableToCreateKey 64975 +#define IdResourceStringsCore_RSReadLnMaxLineLengthExceeded 64976 +#define IdResourceStringsCore_RSConnectTimeout 64977 +#define IdResourceStringsCore_RSThreadTerminateAndWaitFor 64978 +#define IdResourceStringsCore_RSAlreadyConnected 64979 +#define IdResourceStringsCore_RSMaximumNumberOfCaptureLineExceeded 64980 +#define IdResourceStringsCore_RSchedMaxThreadEx 64981 +#define IdResourceStringsCore_RSTransparentProxyCannotBind 64982 +#define IdResourceStringsCore_RSTransparentProxyCanNotSupportUDP 64983 +#define IdResourceStringsCore_RSBufferMissingTerminator 64984 +#define IdResourceStringsCore_RSBufferInvalidStartPos 64985 +#define IdResourceStringsCore_RSReplyInvalidCode 64986 +#define IdResourceStringsCore_RSThreadSchedulerThreadRequired 64987 +#define IdResourceStringsCore_RSNoOnExecute 64988 +#define IdResourceStringsCore_RSTCPServerSchedulerAlreadyActive 64989 +#define ComStrs_sTabFailClear 64990 +#define ComStrs_sTabFailDelete 64991 +#define IdResourceStringsCore_RSSocksServerGeneralError 64992 +#define IdResourceStringsCore_RSSocksServerPermissionError 64993 +#define IdResourceStringsCore_RSSocksServerNetUnreachableError 64994 +#define IdResourceStringsCore_RSSocksServerHostUnreachableError 64995 +#define IdResourceStringsCore_RSSocksServerConnectionRefusedError 64996 +#define IdResourceStringsCore_RSSocksServerTTLExpiredError 64997 +#define IdResourceStringsCore_RSSocksServerCommandError 64998 +#define IdResourceStringsCore_RSSocksServerAddressError 64999 +#define IdResourceStringsCore_RSInterceptCircularLink 65000 +#define IdResourceStringsCore_RSNotEnoughDataInBuffer 65001 +#define IdResourceStringsCore_RSTooMuchDataInBuffer 65002 +#define IdResourceStringsCore_RSFileNotFound 65003 +#define IdResourceStringsCore_RSNotConnected 65004 +#define IdResourceStringsCore_RSObjectTypeNotSupported 65005 +#define IdResourceStringsCore_RSIdNoDataToRead 65006 +#define IdResourceStringsCore_RSReadTimeout 65007 +#define IdResourceStringsProtocols_RSHTTPGatewayTimeout 65008 +#define IdResourceStringsProtocols_RSHTTPHTTPVersionNotSupported 65009 +#define IdResourceStringsProtocols_RSHTTPUnknownResponseCode 65010 +#define IdResourceStringsProtocols_RSHTTPHeaderAlreadyWritten 65011 +#define IdResourceStringsProtocols_RSHTTPErrorParsingCommand 65012 +#define IdResourceStringsProtocols_RSHTTPUnsupportedAuthorisationScheme 65013 +#define IdResourceStringsProtocols_RSHTTPCannotSwitchSessionStateWhenActive 65014 +#define IdResourceStringsProtocols_RSHTTPAuthAlreadyRegistered 65015 +#define IdResourceStringsCore_RSSocksUDPNotSupported 65016 +#define IdResourceStringsCore_RSSocksRequestFailed 65017 +#define IdResourceStringsCore_RSSocksRequestServerFailed 65018 +#define IdResourceStringsCore_RSSocksRequestIdentFailed 65019 +#define IdResourceStringsCore_RSSocksUnknownError 65020 +#define IdResourceStringsCore_RSSocksServerRespondError 65021 +#define IdResourceStringsCore_RSSocksAuthMethodError 65022 +#define IdResourceStringsCore_RSSocksAuthError 65023 +#define IdResourceStringsProtocols_RSHTTPNotFound 65024 +#define IdResourceStringsProtocols_RSHTTPMethodNotAllowed 65025 +#define IdResourceStringsProtocols_RSHTTPNotAcceptable 65026 +#define IdResourceStringsProtocols_RSHTTPProxyAuthenticationRequired 65027 +#define IdResourceStringsProtocols_RSHTTPRequestTimeout 65028 +#define IdResourceStringsProtocols_RSHTTPConflict 65029 +#define IdResourceStringsProtocols_RSHTTPGone 65030 +#define IdResourceStringsProtocols_RSHTTPLengthRequired 65031 +#define IdResourceStringsProtocols_RSHTTPPreconditionFailed 65032 +#define IdResourceStringsProtocols_RSHTTPRequestEntityToLong 65033 +#define IdResourceStringsProtocols_RSHTTPRequestURITooLong 65034 +#define IdResourceStringsProtocols_RSHTTPUnsupportedMediaType 65035 +#define IdResourceStringsProtocols_RSHTTPInternalServerError 65036 +#define IdResourceStringsProtocols_RSHTTPNotImplemented 65037 +#define IdResourceStringsProtocols_RSHTTPBadGateway 65038 +#define IdResourceStringsProtocols_RSHTTPServiceUnavailable 65039 +#define IdResourceStringsProtocols_RSHTTPContinue 65040 +#define IdResourceStringsProtocols_RSHTTPOK 65041 +#define IdResourceStringsProtocols_RSHTTPCreated 65042 +#define IdResourceStringsProtocols_RSHTTPAccepted 65043 +#define IdResourceStringsProtocols_RSHTTPNonAuthoritativeInformation 65044 +#define IdResourceStringsProtocols_RSHTTPNoContent 65045 +#define IdResourceStringsProtocols_RSHTTPResetContent 65046 +#define IdResourceStringsProtocols_RSHTTPPartialContent 65047 +#define IdResourceStringsProtocols_RSHTTPMovedPermanently 65048 +#define IdResourceStringsProtocols_RSHTTPMovedTemporarily 65049 +#define IdResourceStringsProtocols_RSHTTPSeeOther 65050 +#define IdResourceStringsProtocols_RSHTTPNotModified 65051 +#define IdResourceStringsProtocols_RSHTTPUseProxy 65052 +#define IdResourceStringsProtocols_RSHTTPBadRequest 65053 +#define IdResourceStringsProtocols_RSHTTPUnauthorized 65054 +#define IdResourceStringsProtocols_RSHTTPForbidden 65055 +#define IdResourceStrings_RSAntiFreezeOnlyOne 65056 +#define IdResourceStrings_RSCannotSetIPVersionWhenConnected 65057 +#define IdResourceStrings_RSCannotBindRange 65058 +#define IdResourceStrings_RSConnectionClosedGracefully 65059 +#define IdResourceStrings_RSCouldNotBindSocket 65060 +#define IdResourceStrings_RSInvalidPortRange 65061 +#define IdResourceStrings_RSInvalidServiceName 65062 +#define IdResourceStrings_RSIPv6Unavailable 65063 +#define IdResourceStrings_RSInvalidIPv6Address 65064 +#define IdResourceStrings_RSIPVersionUnsupported 65065 +#define IdResourceStrings_RSNotAllBytesSent 65066 +#define IdResourceStrings_RSPackageSizeTooBig 65067 +#define IdResourceStrings_RSSetSizeExceeded 65068 +#define IdResourceStringsProtocols_RSMIMEExtensionEmpty 65069 +#define IdResourceStringsProtocols_RSMIMEMIMETypeEmpty 65070 +#define IdResourceStringsProtocols_RSMIMEMIMEExtAlreadyExists 65071 +#define IdResourceStrings_RSStackECONNRESET 65072 +#define IdResourceStrings_RSStackENOBUFS 65073 +#define IdResourceStrings_RSStackEISCONN 65074 +#define IdResourceStrings_RSStackENOTCONN 65075 +#define IdResourceStrings_RSStackESHUTDOWN 65076 +#define IdResourceStrings_RSStackETOOMANYREFS 65077 +#define IdResourceStrings_RSStackETIMEDOUT 65078 +#define IdResourceStrings_RSStackECONNREFUSED 65079 +#define IdResourceStrings_RSStackELOOP 65080 +#define IdResourceStrings_RSStackENAMETOOLONG 65081 +#define IdResourceStrings_RSStackEHOSTDOWN 65082 +#define IdResourceStrings_RSStackEHOSTUNREACH 65083 +#define IdResourceStrings_RSStackENOTEMPTY 65084 +#define IdResourceStrings_RSStackHOST_NOT_FOUND 65085 +#define IdResourceStrings_RSStackClassUndefined 65086 +#define IdResourceStrings_RSStackAlreadyCreated 65087 +#define IdResourceStrings_RSStackENOTSOCK 65088 +#define IdResourceStrings_RSStackEDESTADDRREQ 65089 +#define IdResourceStrings_RSStackEMSGSIZE 65090 +#define IdResourceStrings_RSStackEPROTOTYPE 65091 +#define IdResourceStrings_RSStackENOPROTOOPT 65092 +#define IdResourceStrings_RSStackEPROTONOSUPPORT 65093 +#define IdResourceStrings_RSStackESOCKTNOSUPPORT 65094 +#define IdResourceStrings_RSStackEOPNOTSUPP 65095 +#define IdResourceStrings_RSStackEPFNOSUPPORT 65096 +#define IdResourceStrings_RSStackEAFNOSUPPORT 65097 +#define IdResourceStrings_RSStackEADDRINUSE 65098 +#define IdResourceStrings_RSStackEADDRNOTAVAIL 65099 +#define IdResourceStrings_RSStackENETDOWN 65100 +#define IdResourceStrings_RSStackENETUNREACH 65101 +#define IdResourceStrings_RSStackENETRESET 65102 +#define IdResourceStrings_RSStackECONNABORTED 65103 +#define IdResourceStrings_RSStatusResolving 65104 +#define IdResourceStrings_RSStatusConnecting 65105 +#define IdResourceStrings_RSStatusConnected 65106 +#define IdResourceStrings_RSStatusDisconnecting 65107 +#define IdResourceStrings_RSStatusDisconnected 65108 +#define IdResourceStrings_RSStatusText 65109 +#define IdResourceStrings_RSStackError 65110 +#define IdResourceStrings_RSStackEINTR 65111 +#define IdResourceStrings_RSStackEBADF 65112 +#define IdResourceStrings_RSStackEACCES 65113 +#define IdResourceStrings_RSStackEFAULT 65114 +#define IdResourceStrings_RSStackEINVAL 65115 +#define IdResourceStrings_RSStackEMFILE 65116 +#define IdResourceStrings_RSStackEWOULDBLOCK 65117 +#define IdResourceStrings_RSStackEINPROGRESS 65118 +#define IdResourceStrings_RSStackEALREADY 65119 +#define DBConsts_SBadFieldType 65120 +#define DBConsts_SProviderSQLNotSupported 65121 +#define DBConsts_SProviderExecuteNotSupported 65122 +#define DBConsts_SDataSetUnidirectional 65123 +#define DBConsts_SUnassignedVar 65124 +#define DBConsts_SRecordNotFound 65125 +#define DBConsts_SBcdOverflow 65126 +#define DBConsts_SInvalidBcdValue 65127 +#define DBConsts_SInvalidFormatType 65128 +#define DBConsts_SCouldNotParseTimeStamp 65129 +#define DBConsts_SInvalidSqlTimeStamp 65130 +#define uROBinaryHelpers_SInvalidDecimal 65131 +#define IdResourceStrings_RSFailedTimeZoneInfo 65132 +#define IdResourceStrings_RSWinsockCallError 65133 +#define IdResourceStrings_RSWinsockLoadError 65134 +#define IdResourceStrings_RSWinsockInitializationError 65135 +#define DBConsts_SNoFieldIndexes 65136 +#define DBConsts_SNotIndexField 65137 +#define DBConsts_SIndexNotFound 65138 +#define DBConsts_SCircularDataLink 65139 +#define DBConsts_SLookupInfoError 65140 +#define DBConsts_SDataSourceChange 65141 +#define DBConsts_SDataSetOpen 65142 +#define DBConsts_SNotEditing 65143 +#define DBConsts_SDataSetClosed 65144 +#define DBConsts_SDataSetEmpty 65145 +#define DBConsts_SDataSetReadOnly 65146 +#define DBConsts_SNestedDataSetClass 65147 +#define DBConsts_STextFalse 65148 +#define DBConsts_STextTrue 65149 +#define DBConsts_SParameterNotFound 65150 +#define DBConsts_SInvalidVersion 65151 +#define DBConsts_SFieldNotFound 65152 +#define DBConsts_SFieldAccessError 65153 +#define DBConsts_SFieldValueError 65154 +#define DBConsts_SFieldRangeError 65155 +#define DBConsts_SBcdFieldRangeError 65156 +#define DBConsts_SInvalidIntegerValue 65157 +#define DBConsts_SInvalidBoolValue 65158 +#define DBConsts_SInvalidFloatValue 65159 +#define DBConsts_SFieldTypeMismatch 65160 +#define DBConsts_SFieldSizeMismatch 65161 +#define DBConsts_SInvalidVarByteArray 65162 +#define DBConsts_SFieldOutOfRange 65163 +#define DBConsts_SFieldRequired 65164 +#define DBConsts_SDataSetMissing 65165 +#define DBConsts_SInvalidCalcType 65166 +#define DBConsts_SFieldReadOnly 65167 +#define uRORes_err_IDispatchMarshalingNotSupported 65168 +#define uRORes_err_UnsupportedVariantType 65169 +#define uRORes_err_VariantIsNotArray 65170 +#define uRORes_err_InvalidVarArrayDimCount 65171 +#define uRORes_err_CannotFindParameter 65172 +#define uRORes_err_MessageNotAssigned 65173 +#define ComConst_SOleError 65174 +#define ComConst_SNoMethod 65175 +#define ComConst_SVarNotObject 65176 +#define ComConst_STooManyParams 65177 +#define ComConst_SDCOMNotInstalled 65178 +#define DBConsts_SInvalidFieldSize 65179 +#define DBConsts_SInvalidFieldKind 65180 +#define DBConsts_SUnknownFieldType 65181 +#define DBConsts_SFieldNameMissing 65182 +#define DBConsts_SDuplicateFieldName 65183 +#define uRORes_err_CannotFindMessageDispatcher 65184 +#define uRORes_err_ServerOnlySupportsOneDispatcher 65185 +#define uRORes_err_UnhandledException 65186 +#define uRORes_err_ChannelBusy 65187 +#define uRORes_err_ArrayIndexOutOfBounds 65188 +#define uRORes_err_InvalidHeader 65189 +#define uRORes_err_InvalidHeaderEncrypted 65190 +#define uRORes_err_UnknownClassInStream 65191 +#define uRORes_err_UnexpectedClassInStream 65192 +#define uRORes_err_SessionNotFound 65193 +#define uRORes_err_ChannelDoesntSupportIROMetadataReader 65194 +#define uRORes_err_TooManySessions 65195 +#define uRORes_err_DOMElementIsNIL 65196 +#define uRORes_err_CannotLoadXMLDocument 65197 +#define uRORes_err_ErrorCreatingMsXmlDoc 65198 +#define uRORes_err_NoXMLParsersAvailable 65199 +#define uRORes_str_ExceptionReraisedFromServer 65200 +#define uRORes_err_AssignError 65201 +#define uRORes_err_InvalidRequestStream 65202 +#define uRORes_err_NILMessage 65203 +#define uRORes_err_UnspecifiedInterface 65204 +#define uRORes_err_UnspecifiedMessage 65205 +#define uRORes_err_UnknownMethod 65206 +#define uRORes_err_ClassFactoryDidNotReturnInstance 65207 +#define uRORes_err_AbstractService 65208 +#define uRORes_err_TypeNotSupported 65209 +#define uRORes_err_ClassFactoryNotFound 65210 +#define uRORes_err_IROMessageNotSupported 65211 +#define uRORes_err_ClassAlreadyRegistered 65212 +#define uRORes_err_UnknownClass 65213 +#define uRORes_err_UnknownProxyInterface 65214 +#define uRORes_err_DispatcherAlreadyAssigned 65215 +#define uRORes_err_InvalidStringLength 65216 +#define uRORes_str_InvalidClassTypeInStream 65217 +#define uRORes_err_UnexpectedEndOfStream 65218 +#define uRORes_err_RodlDuplicateName 65219 +#define uRORes_err_RodlNoDataTypeSpecified 65220 +#define uRORes_err_RodlNoEnumValues 65221 +#define uRORes_err_RodlNoStructElementsDefined 65222 +#define uRORes_err_RodlNoOperationsDefined 65223 +#define uRORes_err_RodlUsedFileDoesNotExist 65224 +#define uRORes_err_RodlInvalidDataType 65225 +#define uRORes_err_RodlStructCannotBeNested 65226 +#define uRORes_err_RodlInvalidAncestorType 65227 +#define uRORes_err_RodlItemExistsInAnsector 65228 +#define uRORes_err_RodlCircularReference 65229 +#define uRORes_err_RodlCircularityWarning 65230 +#define uRORes_str_ExceptionOnServer 65231 +#define uRODECConst_sInvalidStringFormat 65232 +#define uRODECConst_sInvalidFormatString 65233 +#define uRODECConst_sFMT_COPY 65234 +#define uRODECConst_sFMT_HEX 65235 +#define uRODECConst_sFMT_HEXL 65236 +#define uRODECConst_sFMT_MIME64 65237 +#define uRODECConst_sFMT_UU 65238 +#define uRODECConst_sFMT_XX 65239 +#define uRODECConst_sInvalidKeySize 65240 +#define uRODECConst_sNotInitialized 65241 +#define uRORes_err_InvalidIndex 65242 +#define uRORes_err_InvalidType 65243 +#define uRORes_err_InvalidLibrary 65244 +#define uRORes_err_InvalidStream 65245 +#define uRORes_err_InvalidTargetEntity 65246 +#define uRORes_err_InvalidParamFlag 65247 +#define Consts_SASCIIEncoding 65248 +#define Consts_SUnicodeEncoding 65249 +#define Consts_SBigEndianEncoding 65250 +#define Consts_SUTF8Encoding 65251 +#define Consts_SUTF7Encoding 65252 +#define Consts_STrayIconRemoveError 65253 +#define Consts_STrayIconCreateError 65254 +#define Consts_SPageControlNotSet 65255 +#define Consts_SWindowsVistaRequired 65256 +#define HelpIntfs_hNoTableOfContents 65257 +#define HelpIntfs_hNothingFound 65258 +#define HelpIntfs_hNoContext 65259 +#define HelpIntfs_hNoContextFound 65260 +#define HelpIntfs_hNoTopics 65261 +#define uRODECConst_sProtectionCircular 65262 +#define uRODECConst_sStringFormatExists 65263 +#define Consts_SShutdown 65264 +#define Consts_SCustomError 65265 +#define Consts_SServiceInstallOK 65266 +#define Consts_SServiceInstallFailed 65267 +#define Consts_SServiceUninstallOK 65268 +#define Consts_SServiceUninstallFailed 65269 +#define Consts_SDockedCtlNeedsName 65270 +#define Consts_SDockTreeRemoveError 65271 +#define Consts_SDockZoneNotFound 65272 +#define Consts_SDockZoneHasNoCtl 65273 +#define Consts_SDockZoneVersionConflict 65274 +#define Consts_SMultiSelectRequired 65275 +#define Consts_SSeparator 65276 +#define Consts_SErrorSettingCount 65277 +#define Consts_SListBoxMustBeVirtual 65278 +#define Consts_SANSIEncoding 65279 +#define Consts_SOutOfRange 65280 +#define Consts_SInsertLineError 65281 +#define Consts_SInvalidClipFmt 65282 +#define Consts_SIconToClipboard 65283 +#define Consts_SCannotOpenClipboard 65284 +#define Consts_SInvalidMemoSize 65285 +#define Consts_SInvalidPrinterOp 65286 +#define Consts_SNoDefaultPrinter 65287 +#define Consts_SDuplicateMenus 65288 +#define Consts_SServiceFailed 65289 +#define Consts_SExecute 65290 +#define Consts_SStart 65291 +#define Consts_SStop 65292 +#define Consts_SPause 65293 +#define Consts_SContinue 65294 +#define Consts_SInterrogate 65295 +#define Consts_SmkcEnter 65296 +#define Consts_SmkcSpace 65297 +#define Consts_SmkcPgUp 65298 +#define Consts_SmkcPgDn 65299 +#define Consts_SmkcEnd 65300 +#define Consts_SmkcHome 65301 +#define Consts_SmkcLeft 65302 +#define Consts_SmkcUp 65303 +#define Consts_SmkcRight 65304 +#define Consts_SmkcDown 65305 +#define Consts_SmkcIns 65306 +#define Consts_SmkcDel 65307 +#define Consts_SmkcShift 65308 +#define Consts_SmkcCtrl 65309 +#define Consts_SmkcAlt 65310 +#define Consts_srNone 65311 +#define Consts_SMsgDlgInformation 65312 +#define Consts_SMsgDlgConfirm 65313 +#define Consts_SMsgDlgYes 65314 +#define Consts_SMsgDlgNo 65315 +#define Consts_SMsgDlgOK 65316 +#define Consts_SMsgDlgCancel 65317 +#define Consts_SMsgDlgHelp 65318 +#define Consts_SMsgDlgAbort 65319 +#define Consts_SMsgDlgRetry 65320 +#define Consts_SMsgDlgIgnore 65321 +#define Consts_SMsgDlgAll 65322 +#define Consts_SMsgDlgNoToAll 65323 +#define Consts_SMsgDlgYesToAll 65324 +#define Consts_SmkcBkSp 65325 +#define Consts_SmkcTab 65326 +#define Consts_SmkcEsc 65327 +#define Consts_SNoButton 65328 +#define Consts_SHelpButton 65329 +#define Consts_SCloseButton 65330 +#define Consts_SIgnoreButton 65331 +#define Consts_SRetryButton 65332 +#define Consts_SAbortButton 65333 +#define Consts_SAllButton 65334 +#define Consts_SCannotDragForm 65335 +#define Consts_SVMetafiles 65336 +#define Consts_SVEnhMetafiles 65337 +#define Consts_SVIcons 65338 +#define Consts_SVBitmaps 65339 +#define Consts_SMaskErr 65340 +#define Consts_SMaskEditErr 65341 +#define Consts_SMsgDlgWarning 65342 +#define Consts_SMsgDlgError 65343 +#define Consts_SScrollBarRange 65344 +#define Consts_SPropertyOutOfRange 65345 +#define Consts_SMenuIndexError 65346 +#define Consts_SMenuReinserted 65347 +#define Consts_SMenuNotFound 65348 +#define Consts_SNoTimers 65349 +#define Consts_SNotPrinting 65350 +#define Consts_SPrinting 65351 +#define Consts_SInvalidPrinter 65352 +#define Consts_SDeviceOnPort 65353 +#define Consts_SGroupIndexTooLow 65354 +#define Consts_SNoMDIForm 65355 +#define Consts_SControlParentSetToSelf 65356 +#define Consts_SOKButton 65357 +#define Consts_SCancelButton 65358 +#define Consts_SYesButton 65359 +#define Consts_SOutOfResources 65360 +#define Consts_SNoCanvasHandle 65361 +#define Consts_SInvalidImageSize 65362 +#define Consts_SInvalidImageList 65363 +#define Consts_SReplaceImage 65364 +#define Consts_SImageIndexError 65365 +#define Consts_SImageReadFail 65366 +#define Consts_SImageWriteFail 65367 +#define Consts_SWindowDCError 65368 +#define Consts_SWindowClass 65369 +#define Consts_SCannotFocus 65370 +#define Consts_SParentRequired 65371 +#define Consts_SParentGivenNotAParent 65372 +#define Consts_SMDIChildNotVisible 65373 +#define Consts_SVisibleChanged 65374 +#define Consts_SCannotShowModal 65375 +#define RTLConsts_SWriteError 65376 +#define RTLConsts_SThreadCreateError 65377 +#define RTLConsts_SThreadError 65378 +#define Consts_SInvalidTabIndex 65379 +#define Consts_SInvalidTabPosition 65380 +#define Consts_SInvalidTabStyle 65381 +#define Consts_SInvalidBitmap 65382 +#define Consts_SInvalidIcon 65383 +#define Consts_SInvalidMetafile 65384 +#define Consts_SInvalidPixelFormat 65385 +#define Consts_SInvalidImage 65386 +#define Consts_SScanLine 65387 +#define Consts_SChangeIconSize 65388 +#define Consts_SOleGraphic 65389 +#define Consts_SUnknownExtension 65390 +#define Consts_SUnknownClipboardFormat 65391 +#define RTLConsts_SInvalidRegType 65392 +#define RTLConsts_SListCapacityError 65393 +#define RTLConsts_SListCountError 65394 +#define RTLConsts_SListIndexError 65395 +#define RTLConsts_SMemoryStreamError 65396 +#define RTLConsts_SPropertyException 65397 +#define RTLConsts_SReadError 65398 +#define RTLConsts_SReadOnlyProperty 65399 +#define RTLConsts_SRegCreateFailed 65400 +#define RTLConsts_SRegGetDataFailed 65401 +#define RTLConsts_SRegSetDataFailed 65402 +#define RTLConsts_SResNotFound 65403 +#define RTLConsts_SSeekNotImplemented 65404 +#define RTLConsts_SSortedListError 65405 +#define RTLConsts_SUnknownGroup 65406 +#define RTLConsts_SUnknownProperty 65407 +#define RTLConsts_SCheckSynchronizeError 65408 +#define RTLConsts_SClassNotFound 65409 +#define RTLConsts_SDuplicateClass 65410 +#define RTLConsts_SDuplicateItem 65411 +#define RTLConsts_SDuplicateName 65412 +#define RTLConsts_SDuplicateString 65413 +#define RTLConsts_SFCreateErrorEx 65414 +#define RTLConsts_SFOpenErrorEx 65415 +#define RTLConsts_SIniFileWriteError 65416 +#define RTLConsts_SInvalidImage 65417 +#define RTLConsts_SInvalidName 65418 +#define RTLConsts_SInvalidProperty 65419 +#define RTLConsts_SInvalidPropertyElement 65420 +#define RTLConsts_SInvalidPropertyPath 65421 +#define RTLConsts_SInvalidPropertyType 65422 +#define RTLConsts_SInvalidPropertyValue 65423 +#define SysConst_SShortDayNameTue 65424 +#define SysConst_SShortDayNameWed 65425 +#define SysConst_SShortDayNameThu 65426 +#define SysConst_SShortDayNameFri 65427 +#define SysConst_SShortDayNameSat 65428 +#define SysConst_SLongDayNameSun 65429 +#define SysConst_SLongDayNameMon 65430 +#define SysConst_SLongDayNameTue 65431 +#define SysConst_SLongDayNameWed 65432 +#define SysConst_SLongDayNameThu 65433 +#define SysConst_SLongDayNameFri 65434 +#define SysConst_SLongDayNameSat 65435 +#define RTLConsts_SAncestorNotFound 65436 +#define RTLConsts_SAssignError 65437 +#define RTLConsts_SBitsIndexError 65438 +#define RTLConsts_SCantWriteResourceStreamError 65439 +#define SysConst_SShortMonthNameNov 65440 +#define SysConst_SShortMonthNameDec 65441 +#define SysConst_SLongMonthNameJan 65442 +#define SysConst_SLongMonthNameFeb 65443 +#define SysConst_SLongMonthNameMar 65444 +#define SysConst_SLongMonthNameApr 65445 +#define SysConst_SLongMonthNameMay 65446 +#define SysConst_SLongMonthNameJun 65447 +#define SysConst_SLongMonthNameJul 65448 +#define SysConst_SLongMonthNameAug 65449 +#define SysConst_SLongMonthNameSep 65450 +#define SysConst_SLongMonthNameOct 65451 +#define SysConst_SLongMonthNameNov 65452 +#define SysConst_SLongMonthNameDec 65453 +#define SysConst_SShortDayNameSun 65454 +#define SysConst_SShortDayNameMon 65455 +#define SysConst_SAssertError 65456 +#define SysConst_SAbstractError 65457 +#define SysConst_SModuleAccessViolation 65458 +#define SysConst_SOSError 65459 +#define SysConst_SUnkOSError 65460 +#define SysConst_SNL 65461 +#define SysConst_SShortMonthNameJan 65462 +#define SysConst_SShortMonthNameFeb 65463 +#define SysConst_SShortMonthNameMar 65464 +#define SysConst_SShortMonthNameApr 65465 +#define SysConst_SShortMonthNameMay 65466 +#define SysConst_SShortMonthNameJun 65467 +#define SysConst_SShortMonthNameJul 65468 +#define SysConst_SShortMonthNameAug 65469 +#define SysConst_SShortMonthNameSep 65470 +#define SysConst_SShortMonthNameOct 65471 +#define SysConst_SInvalidVarOpWithHResultWithPrefix 65472 +#define SysConst_SVarTypeOutOfRangeWithPrefix 65473 +#define SysConst_SVarTypeAlreadyUsedWithPrefix 65474 +#define SysConst_SVarTypeNotUsableWithPrefix 65475 +#define SysConst_SVarTypeTooManyCustom 65476 +#define SysConst_SVarTypeCouldNotConvert 65477 +#define SysConst_SVarTypeConvertOverflow 65478 +#define SysConst_SVarOverflow 65479 +#define SysConst_SVarInvalid 65480 +#define SysConst_SVarBadType 65481 +#define SysConst_SVarNotImplemented 65482 +#define SysConst_SVarUnexpected 65483 +#define SysConst_SExternalException 65484 +#define SysConst_SAssertionFailed 65485 +#define SysConst_SIntfCastError 65486 +#define SysConst_SSafecallException 65487 +#define SysConst_SPrivilege 65488 +#define SysConst_SOperationAborted 65489 +#define SysConst_SException 65490 +#define SysConst_SExceptTitle 65491 +#define SysConst_SInvalidFormat 65492 +#define SysConst_SArgumentMissing 65493 +#define SysConst_SDispatchError 65494 +#define SysConst_SReadAccess 65495 +#define SysConst_SWriteAccess 65496 +#define SysConst_SFormatTooLong 65497 +#define SysConst_SVarArrayCreate 65498 +#define SysConst_SVarArrayBounds 65499 +#define SysConst_SVarArrayLocked 65500 +#define SysConst_SInvalidVarCast 65501 +#define SysConst_SInvalidVarOp 65502 +#define SysConst_SInvalidVarNullOp 65503 +#define SysConst_SEndOfFile 65504 +#define SysConst_SDiskFull 65505 +#define SysConst_SInvalidInput 65506 +#define SysConst_SDivByZero 65507 +#define SysConst_SRangeError 65508 +#define SysConst_SIntOverflow 65509 +#define SysConst_SInvalidOp 65510 +#define SysConst_SZeroDivide 65511 +#define SysConst_SOverflow 65512 +#define SysConst_SUnderflow 65513 +#define SysConst_SInvalidPointer 65514 +#define SysConst_SInvalidCast 65515 +#define SysConst_SAccessViolationArg3 65516 +#define SysConst_SAccessViolationNoArg 65517 +#define SysConst_SStackOverflow 65518 +#define SysConst_SControlC 65519 +#define SysConst_SInvalidInteger 65520 +#define SysConst_SInvalidFloat 65521 +#define SysConst_SInvalidDate 65522 +#define SysConst_SInvalidTime 65523 +#define SysConst_SInvalidDateTime 65524 +#define SysConst_SInvalidTimeStamp 65525 +#define SysConst_SInvalidGUID 65526 +#define SysConst_SInvalidBoolean 65527 +#define SysConst_STimeEncodeError 65528 +#define SysConst_SDateEncodeError 65529 +#define SysConst_SOutOfMemory 65530 +#define SysConst_SInOutError 65531 +#define SysConst_SFileNotFound 65532 +#define SysConst_SInvalidFilename 65533 +#define SysConst_STooManyOpenFiles 65534 +#define SysConst_SAccessDenied 65535 +STRINGTABLE +BEGIN + cxExtEditConsts_cxSEditRichEditPasteCaption, "&Paste" + cxExtEditConsts_cxSEditRichEditDeleteCaption, "&Delete" + cxExtEditConsts_cxSEditRichEditSelectAllCaption, "Select &All" + VDBConsts_SFirstRecord, "First record" + VDBConsts_SPriorRecord, "Prior record" + VDBConsts_SNextRecord, "Next record" + VDBConsts_SLastRecord, "Last record" + VDBConsts_SInsertRecord, "Insert record" + VDBConsts_SDeleteRecord, "Delete record" + VDBConsts_SEditRecord, "Edit record" + VDBConsts_SPostEdit, "Post edit" + VDBConsts_SCancelEdit, "Cancel edit" + VDBConsts_SRefreshRecord, "Refresh data" + VDBConsts_SRemoteLogin, "Remote Login" + cxExtEditConsts_cxSCheckComboBoxEmptySelectionText, "None selected" + cxExtEditConsts_cxSCheckControlIncorrectItemCount, "The numberof items cannot be greater than 64, if the EditValueFormat is cvfInteger" + cxExtEditConsts_cxSColorComboBoxDefaultDescription, "Color not selected" + cxExtEditConsts_cxSEditRichEditLibraryError, "Cannot load a RichEdit library" + cxExtEditConsts_cxSEditRichEditLineInsertionError, "RichEdit line insertion error" + cxExtEditConsts_cxSEditRichEditLoadFail, "Failed to Load Stream" + cxExtEditConsts_cxSEditRichEditSaveFail, "Failed to Save Stream" + cxExtEditConsts_cxSEditRichEditSelectionSaveFail, "Failed to selection Save Stream" + cxExtEditConsts_cxSEditRichEditOleInterfaceFail, "RichEdit: failed to get IRichEditOle interface" + cxExtEditConsts_cxSEditRichEditCallBackFail, "RichEdit: failed to set callback" + cxExtEditConsts_cxSEditRichEditLinkFail, "RichEdit: cannot link to an invalid source" + cxExtEditConsts_scxSEditRepositoryRichEditItem, "RichEdit|RichEdit control" + cxExtEditConsts_cxSEditRichEditUndoCaption, "&Undo" + cxExtEditConsts_cxSEditRichEditRedoCaption, "&Redo" + cxExtEditConsts_cxSEditRichEditCutCaption, "Cu&t" + cxExtEditConsts_cxSEditRichEditCopyCaption, "&Copy" + cxExtEditConsts_scxSEditRepositoryCheckComboBox, "CheckComboBox|Represents a CheckComboBox" + cxExtEditConsts_scxSEditRepositoryShellComboBoxItem, "ShellComboBox|Represents a combo box with a dropdown shell tree view" + cxExtEditConsts_scxSEditRepositoryCheckGroupItem, "CheckGroup|Represents a group of check boxes" + cxExtEditConsts_scxUDAssociated, " is already associated with " + cxExtEditConsts_scxHotZoneStyleMediaPlayer9, "MediaPlayer9" + cxExtEditConsts_scxHotZoneStyleMediaPlayer8, "MediaPlayer8" + cxExtEditConsts_scxHotZoneStyleXPTaskBar, "XPTaskBar" + cxExtEditConsts_scxHotZoneStyleSimple, "Simple" + cxExtEditConsts_scxLoadingFonts, "Loading ..." + cxExtEditConsts_cxSEditCheckGroupCaptionStateDelimiter, ": " + cxExtEditConsts_cxSEditCheckGroupFilterColumnSeparator, "; " + cxExtEditConsts_cxSEditCheckGroupChecked, "Checked" + cxExtEditConsts_cxSEditCheckGroupGrayed, "Grayed" + cxExtEditConsts_cxSEditCheckGroupUnchecked, "Unchecked" + cxExtEditConsts_cxSCheckComboBoxStatesItemsPropertyDlgCaption, "cxCheckComboBox - CheckStates editor" + cxExtEditConsts_cxSCheckGroupStatesItemsPropertyDlgCaption, "cxCheckGroup - CheckStates editor" + OleConst_SLinkProperties, "Link Properties" + OleConst_SInvalidLinkSource, "Cannot link to an invalid source." + OleConst_SCannotBreakLink, "Break link operation is not supported." + OleConst_SEmptyContainer, "Operation not allowed on an empty OLE container" + OleConst_SInvalidVerb, "Invalid object verb" + OleConst_SPropDlgCaption, "%s Properties" + OleConst_SInvalidStreamFormat, "Invalid stream format" + OleConst_SInvalidLicense, "License information for %s is invalid" + OleConst_SNotLicensed, "License information for %s not found. You cannot use this control in design mode" + OleConst_sNoRunningObject, "Unable to retrieve a pointer to a running object registered with OLE for %s/%s" + cxExtEditConsts_scxSEditRepositoryColorComboBoxItem, "ColorComboBox |Represents a editor with color functionality" + cxExtEditConsts_scxSEditRepositoryFontNameComboBoxItem, "FontNameComboBox |Represents a editor with font functionality" + cxExtEditConsts_scxSEditRepositoryLabelItem, "Label|Represents a Label" + cxExtEditConsts_scxSEditRepositoryProgressBarItem, "ProgressBar|Represents a ProgressBar" + cxExtEditConsts_scxSEditRepositoryTrackBarItem, "TrackBar|Represents a TrackBar" + cxExtEditConsts_scxSEditRepositorySpinButtonItem, "SpinButton|Represents a SpinButton" + frxpnglang_EPNGInvalidFileHeaderText, "The file being readed is not a valid \"Portable Network Graphics\" image because it contains an invalid header. This file may be corruped, try obtaining it again." + frxpnglang_EPNGIHDRNotFirstText, "This \"Portable Network Graphics\" image is not supported or it might be invalid.\r\n(IHDR chunk is not the first)" + frxpnglang_EPNGSizeExceedsText, "This \"Portable Network Graphics\" image is not supported because either it's width or height exceeds the maximum size, which is 65535 pixels length." + frxpnglang_EPNGUnknownPalEntryText, "There is no such palette entry." + frxpnglang_EPNGUnknownCriticalChunkText, "This \"Portable Network Graphics\" image contains an unknown critical part which could not be decoded." + frxpnglang_EPNGUnknownCompressionText, "This \"Portable Network Graphics\" image is encoded with an unknown compression scheme which could not be decoded." + frxpnglang_EPNGUnknownInterlaceText, "This \"Portable Network Graphics\" image uses an unknown interlace scheme which could not be decoded." + frxpnglang_EPNGCannotAssignChunkText, "The chunks must be compatible to be assigned." + frxpnglang_EPNGUnexpectedEndText, "This \"Portable Network Graphics\" image is invalid because the decoder found an unexpected end of the file." + frxpnglang_EPNGNoImageDataText, "This \"Portable Network Graphics\" image contains no data." + frxpnglang_EPNGOutMemoryText, "Some operation could not be performed because the system is out of resources. Close some windows and try again." + frxpnglang_EPNGHeaderNotPresentText, "This operation is not valid because the current image contains no valid header." + frxpnglang_EInvalidNewSize, "The new size provided for image resizing is invalid." + MidConst_SErrorLoadingMidas, "Error loading MIDAS.DLL" + OleConst_SCannotActivate, "OLE control activation failed" + OleConst_SNoWindowHandle, "Could not obtain OLE control window handle" + cxFilterControlStrs_cxSFilterControlDialogCaption, "Filter builder" + cxFilterControlStrs_cxSFilterControlDialogNewFile, "untitled.flt" + cxFilterControlStrs_cxSFilterControlDialogOpenDialogCaption, "Open an existing filter" + cxFilterControlStrs_cxSFilterControlDialogSaveDialogCaption, "Save the active filter to file" + cxFilterControlStrs_cxSFilterControlDialogActionSaveCaption, "&Save As..." + cxFilterControlStrs_cxSFilterControlDialogActionOpenCaption, "&Open..." + cxFilterControlStrs_cxSFilterControlDialogActionApplyCaption, "&Apply" + cxFilterControlStrs_cxSFilterControlDialogActionOkCaption, "OK" + cxFilterControlStrs_cxSFilterControlDialogActionCancelCaption, "Cancel" + cxFilterControlStrs_cxSFilterControlDialogFileExt, "flt" + cxFilterControlStrs_cxSFilterControlDialogFileFilter, "Filters (*.flt)|*.flt" + frxpnglang_EPngInvalidCRCText, "This \"Portable Network Graphics\" image is not valid because it contains invalid pieces of data (crc error)" + frxpnglang_EPNGInvalidIHDRText, "The \"Portable Network Graphics\" image could not be loaded because one of its main piece of data (ihdr) might be corrupted" + frxpnglang_EPNGMissingMultipleIDATText, "This \"Portable Network Graphics\" image is invalid because it has missing image parts." + frxpnglang_EPNGZLIBErrorText, "Could not decompress the image because it contains invalid compressed data.\r\n Description: " + frxpnglang_EPNGInvalidPaletteText, "The \"Portable Network Graphics\" image contains an invalid palette." + cxFilterControlStrs_cxSFilterAddGroup, "Add &Group" + cxFilterControlStrs_cxSFilterRemoveRow, "&Remove Row" + cxFilterControlStrs_cxSFilterClearAll, "Clear &All" + cxFilterControlStrs_cxSFilterFooterAddCondition, "press the button to add a new condition" + cxFilterControlStrs_cxSFilterGroupCaption, "applies to the following conditions" + cxFilterControlStrs_cxSFilterRootGroupCaption, "" + cxFilterControlStrs_cxSFilterControlNullString, "" + cxFilterControlStrs_cxSFilterErrorBuilding, "Can't build filter from source" + cxFilterControlStrs_cxSFilterDialogCaption, "Custom Filter" + cxFilterControlStrs_cxSFilterDialogInvalidValue, "Invalid value" + cxFilterControlStrs_cxSFilterDialogUse, "Use" + cxFilterControlStrs_cxSFilterDialogSingleCharacter, "to represent any single character" + cxFilterControlStrs_cxSFilterDialogCharactersSeries, "to represent any series of characters" + cxFilterControlStrs_cxSFilterDialogOperationAnd, "AND" + cxFilterControlStrs_cxSFilterDialogOperationOr, "OR" + cxFilterControlStrs_cxSFilterDialogRows, "Show rows where:" + cxLibraryStrs_cxSDateFirst, "first" + cxLibraryStrs_cxSDateSecond, "second" + cxLibraryStrs_cxSDateThird, "third" + cxLibraryStrs_cxSDateFourth, "fourth" + cxLibraryStrs_cxSDateFifth, "fifth" + cxLibraryStrs_cxSDateSixth, "sixth" + cxLibraryStrs_cxSDateSeventh, "seventh" + cxLibraryStrs_cxSDateBOM, "bom" + cxLibraryStrs_cxSDateEOM, "eom" + cxLibraryStrs_cxSDateNow, "now" + cxFilterControlStrs_cxSFilterBoolOperatorAnd, "AND" + cxFilterControlStrs_cxSFilterBoolOperatorOr, "OR" + cxFilterControlStrs_cxSFilterBoolOperatorNotAnd, "NOT AND" + cxFilterControlStrs_cxSFilterBoolOperatorNotOr, "NOT OR" + cxFilterControlStrs_cxSFilterRootButtonCaption, "Filter" + cxFilterControlStrs_cxSFilterAddCondition, "Add &Condition" + cxEditConsts_scxMaskEditMaskCollectionFiles, "Mask collection files" + cxEditConsts_cxSSpinEditInvalidNumericValue, "Invalid numeric value" + cxLibraryStrs_scxCantCreateRegistryKey, "Can't create the registry key: \\%s" + cxLibraryStrs_scxCantOpenRegistryKey, "Can't open the registry key: \\%s" + cxLibraryStrs_scxErrorStoreObject, "Error store %s object" + cxLibraryStrs_scxConverterCantCreateStyleRepository, "Can't create the Style Repository" + cxLibraryStrs_cxSDateToday, "today" + cxLibraryStrs_cxSDateYesterday, "yesterday" + cxLibraryStrs_cxSDateTomorrow, "tomorrow" + cxLibraryStrs_cxSDateSunday, "Sunday" + cxLibraryStrs_cxSDateMonday, "Monday" + cxLibraryStrs_cxSDateTuesday, "Tuesday" + cxLibraryStrs_cxSDateWednesday, "Wednesday" + cxLibraryStrs_cxSDateThursday, "Thursday" + cxLibraryStrs_cxSDateFriday, "Friday" + cxLibraryStrs_cxSDateSaturday, "Saturday" + cxEditConsts_scxRegExprTooBigReferenceNumber, "Too big reference number" + cxEditConsts_scxRegExprCantCreateEmptyEnum, "Can't create empty enumeration" + cxEditConsts_scxRegExprSubrangeOrder, "The starting character of the subrange must be less than the finishing one" + cxEditConsts_scxRegExprHexNumberExpected0, "Hexadecimal number expected" + cxEditConsts_scxRegExprHexNumberExpected, "Hexadecimal number expected but '%s' found" + cxEditConsts_scxRegExprMissing, "Missing '%s'" + cxEditConsts_scxRegExprUnnecessary, "Unnecessary '%s'" + cxEditConsts_scxRegExprIncorrectSpace, "The space character is not allowed after '\\'" + cxEditConsts_scxRegExprNotCompiled, "Regular expression is not compiled" + cxEditConsts_scxRegExprIncorrectParameterQuantifier, "Incorrect parameter quantifier" + cxEditConsts_scxRegExprCantUseParameterQuantifier, "The parameter quantifier cannot be applied here" + cxEditConsts_scxMaskEditRegExprError, "Regular expression errors:" + cxEditConsts_scxMaskEditInvalidEditValue, "The edit value is invalid" + cxEditConsts_scxMaskEditNoMask, "None" + cxEditConsts_scxMaskEditIllegalFileFormat, "Illegal file format" + cxEditConsts_scxMaskEditEmptyMaskCollectionFile, "The mask collection file is empty" + cxEditConsts_scxSEditRepositorySpinItem, "SpinEdit|Represents a spin editor" + cxEditConsts_scxSEditRepositoryRadioGroupItem, "RadioGroup|Represents a group of radio buttons" + cxEditConsts_scxSEditRepositoryTextItem, "TextEdit|Represents a single line text editor" + cxEditConsts_scxSEditRepositoryTimeItem, "TimeEdit|Represents an editor displaying time values" + cxEditConsts_scxRegExprLine, "Line" + cxEditConsts_scxRegExprChar, "Char" + cxEditConsts_scxRegExprNotAssignedSourceStream, "The source stream is not assigned" + cxEditConsts_scxRegExprEmptySourceStream, "The source stream is empty" + cxEditConsts_scxRegExprCantUsePlusQuantifier, "The '+' quantifier cannot be applied here" + cxEditConsts_scxRegExprCantUseStarQuantifier, "The '*' quantifier cannot be applied here" + cxEditConsts_scxRegExprCantCreateEmptyAlt, "The alternative should not be empty" + cxEditConsts_scxRegExprCantCreateEmptyBlock, "The block should not be empty" + cxEditConsts_scxRegExprIllegalSymbol, "Illegal '%s'" + cxEditConsts_scxRegExprIllegalQuantifier, "Illegal quantifier '%s'" + cxEditConsts_scxRegExprNotSupportQuantifier, "The parameter quantifiers are not supported" + cxEditConsts_scxRegExprIllegalIntegerValue, "Illegal integer value" + cxEditConsts_cxNavigator_DeleteRecordQuestion, "Delete record?" + cxEditConsts_scxSEditRepositoryBlobItem, "BlobEdit|Represents the BLOB editor" + cxEditConsts_scxSEditRepositoryButtonItem, "ButtonEdit|Represents an edit control with embedded buttons" + cxEditConsts_scxSEditRepositoryCalcItem, "CalcEdit|Represents an edit control with a dropdown calculator window" + cxEditConsts_scxSEditRepositoryCheckBoxItem, "CheckBox|Represents a check box control that allows selecting an option" + cxEditConsts_scxSEditRepositoryComboBoxItem, "ComboBox|Represents the combo box editor" + cxEditConsts_scxSEditRepositoryCurrencyItem, "CurrencyEdit|Represents an editor enabling editing currency data" + cxEditConsts_scxSEditRepositoryDateItem, "DateEdit|Represents an edit control with a dropdown calendar" + cxEditConsts_scxSEditRepositoryHyperLinkItem, "HyperLink|Represents a text editor with hyperlink functionality" + cxEditConsts_scxSEditRepositoryImageComboBoxItem, "ImageComboBox|Represents an editor displaying the list of images and text strings within the dropdown window" + cxEditConsts_scxSEditRepositoryImageItem, "Image|Represents an image editor" + cxEditConsts_scxSEditRepositoryLookupComboBoxItem, "LookupComboBox|Represents a lookup combo box control" + cxEditConsts_scxSEditRepositoryMaskItem, "MaskEdit|Represents a generic masked edit control." + cxEditConsts_scxSEditRepositoryMemoItem, "Memo|Represents an edit control that allows editing memo data" + cxEditConsts_scxSEditRepositoryMRUItem, "MRUEdit|Represents a text editor displaying the list of most recently used items (MRU) within a dropdown window" + cxEditConsts_scxSEditRepositoryPopupItem, "PopupEdit|Represents an edit control with a dropdown list" + cxEditConsts_cxNavigatorHint_First, "First record" + cxEditConsts_cxNavigatorHint_Prior, "Prior record" + cxEditConsts_cxNavigatorHint_PriorPage, "Prior page" + cxEditConsts_cxNavigatorHint_Next, "Next record" + cxEditConsts_cxNavigatorHint_NextPage, "Next page" + cxEditConsts_cxNavigatorHint_Last, "Last record" + cxEditConsts_cxNavigatorHint_Insert, "Insert record" + cxEditConsts_cxNavigatorHint_Append, "Append record" + cxEditConsts_cxNavigatorHint_Delete, "Delete record" + cxEditConsts_cxNavigatorHint_Edit, "Edit record" + cxEditConsts_cxNavigatorHint_Post, "Post edit" + cxEditConsts_cxNavigatorHint_Cancel, "Cancel edit" + cxEditConsts_cxNavigatorHint_Refresh, "Refresh data" + cxEditConsts_cxNavigatorHint_SaveBookmark, "Save Bookmark" + cxEditConsts_cxNavigatorHint_GotoBookmark, "Goto Bookmark" + cxEditConsts_cxNavigatorHint_Filter, "Filter data" + cxEditConsts_cxSBlobPicture, "(PICTURE)" + cxEditConsts_cxSBlobPictureEmpty, "(picture)" + cxEditConsts_cxSMenuItemCaptionCut, "Cu&t" + cxEditConsts_cxSMenuItemCaptionCopy, "&Copy" + cxEditConsts_cxSMenuItemCaptionPaste, "&Paste" + cxEditConsts_cxSMenuItemCaptionDelete, "&Delete" + cxEditConsts_cxSMenuItemCaptionLoad, "&Load..." + cxEditConsts_cxSMenuItemCaptionSave, "Save &As..." + cxEditConsts_cxSDatePopupClear, "Clear" + cxEditConsts_cxSDatePopupNow, "Now" + cxEditConsts_cxSDatePopupOK, "OK" + cxEditConsts_cxSDatePopupToday, "Today" + cxEditConsts_cxSDateError, "Invalid Date" + cxEditConsts_scxSCalcError, "Error" + cxEditConsts_scxSHyperLinkPrefix, "http://" + cxEditConsts_scxSHyperLinkDoubleSlash, "//" + cxEditConsts_cxSEditPopupCircularReferencingError, "Circular referencing is not allowed" + cxEditConsts_cxSEditPostError, "An error occured during posting edit value" + cxEditConsts_cxSEditTimeConvertError, "Could not convert to time" + cxEditConsts_cxSEditValidateErrorText, "Invalid input value. Use escape key to abandon changes" + cxEditConsts_cxSEditValueOutOfBounds, "Value out of bounds" + cxEditConsts_cxSEditCheckBoxChecked, "True" + cxEditConsts_cxSEditCheckBoxGrayed, "" + cxEditConsts_cxSEditCheckBoxUnchecked, "False" + cxEditConsts_cxSRadioGroupDefaultCaption, "" + cxEditConsts_cxSTextTrue, "True" + cxEditConsts_cxSTextFalse, "False" + cxEditConsts_cxSBlobButtonOK, "&OK" + cxEditConsts_cxSBlobButtonCancel, "&Cancel" + cxEditConsts_cxSBlobButtonClose, "&Close" + cxEditConsts_cxSBlobMemo, "(MEMO)" + cxEditConsts_cxSBlobMemoEmpty, "(memo)" + cxFilterConsts_cxSFilterOperatorIsNotNull, "is not blank" + cxFilterConsts_cxSFilterOperatorBeginsWith, "begins with" + cxFilterConsts_cxSFilterOperatorDoesNotBeginWith, "does not begin with" + cxFilterConsts_cxSFilterOperatorEndsWith, "ends with" + cxFilterConsts_cxSFilterOperatorDoesNotEndWith, "does not end with" + cxFilterConsts_cxSFilterOperatorContains, "contains" + cxFilterConsts_cxSFilterOperatorDoesNotContain, "does not contain" + cxFilterConsts_cxSFilterBoxAllCaption, "(All)" + cxFilterConsts_cxSFilterBoxCustomCaption, "(Custom...)" + cxFilterConsts_cxSFilterBoxBlanksCaption, "(Blanks)" + cxFilterConsts_cxSFilterBoxNonBlanksCaption, "(NonBlanks)" + cxEditConsts_cxSEditButtonCancel, "Cancel" + cxEditConsts_cxSEditButtonOK, "OK" + cxEditConsts_cxSEditDateConvertError, "Could not convert to date" + cxEditConsts_cxSEditInvalidRepositoryItem, "The repository item is not acceptable" + cxEditConsts_cxSEditNumericValueConvertError, "Could not convert to numeric value" + cxFilterConsts_cxSFilterOperatorThisWeek, "is this week" + cxFilterConsts_cxSFilterOperatorThisMonth, "is this month" + cxFilterConsts_cxSFilterOperatorThisYear, "is this year" + cxFilterConsts_cxSFilterOperatorNext7Days, "is next 7 days" + cxFilterConsts_cxSFilterOperatorNextWeek, "is next week" + cxFilterConsts_cxSFilterOperatorNext14Days, "is next 14 days" + cxFilterConsts_cxSFilterOperatorNextTwoWeeks, "is next two weeks" + cxFilterConsts_cxSFilterOperatorNext30Days, "is next 30 days" + cxFilterConsts_cxSFilterOperatorNextMonth, "is next month" + cxFilterConsts_cxSFilterOperatorNextYear, "is next year" + cxFilterConsts_cxSFilterOperatorFuture, "is future" + cxFilterConsts_cxSFilterAndCaption, "and" + cxFilterConsts_cxSFilterOrCaption, "or" + cxFilterConsts_cxSFilterNotCaption, "not" + cxFilterConsts_cxSFilterBlankCaption, "blank" + cxFilterConsts_cxSFilterOperatorIsNull, "is blank" + cxFilterConsts_cxSFilterOperatorNotLike, "not like" + cxFilterConsts_cxSFilterOperatorBetween, "between" + cxFilterConsts_cxSFilterOperatorNotBetween, "not between" + cxFilterConsts_cxSFilterOperatorInList, "in" + cxFilterConsts_cxSFilterOperatorNotInList, "not in" + cxFilterConsts_cxSFilterOperatorYesterday, "is yesterday" + cxFilterConsts_cxSFilterOperatorToday, "is today" + cxFilterConsts_cxSFilterOperatorTomorrow, "is tomorrow" + cxFilterConsts_cxSFilterOperatorLast7Days, "is last 7 days" + cxFilterConsts_cxSFilterOperatorLastWeek, "is last week" + cxFilterConsts_cxSFilterOperatorLast14Days, "is last 14 days" + cxFilterConsts_cxSFilterOperatorLastTwoWeeks, "is last two weeks" + cxFilterConsts_cxSFilterOperatorLast30Days, "is last 30 days" + cxFilterConsts_cxSFilterOperatorLastMonth, "is last month" + cxFilterConsts_cxSFilterOperatorLastYear, "is last year" + cxFilterConsts_cxSFilterOperatorPast, "is past" + cxDataConsts_cxSDataRecordIndexError, "RecordIndex out of range" + cxDataConsts_cxSDataItemIndexError, "ItemIndex out of range" + cxDataConsts_cxSDataProviderModeError, "This operation is not supported in provider mode" + cxDataConsts_cxSDataInvalidStreamFormat, "Invalid stream format" + cxDataConsts_cxSDataRowIndexError, "RowIndex out of range" + cxDataConsts_cxSDataCustomDataSourceInvalidCompare, "GetInfoForCompare not implemented" + cxDataConsts_cxSDBDetailFilterControllerNotFound, "DetailFilterController not found" + cxDataConsts_cxSDBNotInGridMode, "DataController not in GridMode" + cxDataConsts_cxSDBKeyFieldNotFound, "Key Field not found" + cxFilterConsts_cxSFilterOperatorEqual, "equals" + cxFilterConsts_cxSFilterOperatorNotEqual, "does not equal" + cxFilterConsts_cxSFilterOperatorLess, "is less than" + cxFilterConsts_cxSFilterOperatorLessEqual, "is less than or equal to" + cxFilterConsts_cxSFilterOperatorGreater, "is greater than" + cxFilterConsts_cxSFilterOperatorGreaterEqual, "is greater than or equal to" + cxFilterConsts_cxSFilterOperatorLike, "like" + pnglang_EPNGSizeExceedsText, "This \"Portable Network Graphics\" image is not supported because either it's width or height exceeds the maximum size, which is 65535 pixels length." + pnglang_EPNGUnknownPalEntryText, "There is no such palette entry." + pnglang_EPNGUnknownCriticalChunkText, "This \"Portable Network Graphics\" image contains an unknown critical part which could not be decoded." + pnglang_EPNGUnknownCompressionText, "This \"Portable Network Graphics\" image is encoded with an unknown compression scheme which could not be decoded." + pnglang_EPNGUnknownInterlaceText, "This \"Portable Network Graphics\" image uses an unknown interlace scheme which could not be decoded." + pnglang_EPNGCannotAssignChunkText, "The chunks must be compatible to be assigned." + pnglang_EPNGUnexpectedEndText, "This \"Portable Network Graphics\" image is invalid because the decoder found an unexpected end of the file." + pnglang_EPNGNoImageDataText, "This \"Portable Network Graphics\" image contains no data." + pnglang_EPNGCannotChangeSizeText, "The \"Portable Network Graphics\" image can not be resize by changing width and height properties. Try assigning the image from a bitmap." + pnglang_EPNGCannotAddChunkText, "The program tried to add a existent critical chunk to the current image which is not allowed." + pnglang_EPNGCannotAddInvalidImageText, "It's not allowed to add a new chunk because the current image is invalid." + pnglang_EPNGOutMemoryText, "Some operation could not be performed because the system is out of resources. Close some windows and try again." + pnglang_EPNGHeaderNotPresentText, "This operation is not valid because the current image contains no valid header." + cxDataConsts_cxSDataReadError, "Stream read error" + cxDataConsts_cxSDataWriteError, "Stream write error" + cxDataConsts_cxSDataItemExistError, "Item already exists" + IBSQLMonitor_StrPrepare, ": [Prepare] " + IBSQLMonitor_StrPlan, " Plan: " + IBSQLMonitor_StrPlanCantRetrive, " Plan: Can't retrieve plan - too large" + IBSQLMonitor_StrCommitHardComm, ": [Commit (Hard commit)]" + IBSQLMonitor_StrCommitRetaining, ": [Commit retaining (Soft commit)]" + IBSQLMonitor_StrRollback, ": [Rollback]" + IBSQLMonitor_StrRollbackRetainin, ": [Rollback retaining (Soft rollback)]" + IBSQLMonitor_StrStartTransaction, ": [Start transaction]" + IBSQLMonitor_StrApplication, "[Application: " + pnglang_EPngInvalidCRCText, "This \"Portable Network Graphics\" image is not valid because it contains invalid pieces of data (crc error)" + pnglang_EPNGInvalidIHDRText, "The \"Portable Network Graphics\" image could not be loaded because one of its main piece of data (ihdr) might be corrupted" + pnglang_EPNGMissingMultipleIDATText, "This \"Portable Network Graphics\" image is invalid because it has missing image parts." + pnglang_EPNGZLIBErrorText, "Could not decompress the image because it contains invalid compressed data.\r\n Description: " + pnglang_EPNGInvalidPaletteText, "The \"Portable Network Graphics\" image contains an invalid palette." + pnglang_EPNGInvalidFileHeaderText, "The file being readed is not a valid \"Portable Network Graphics\" image because it contains an invalid header. This file may be corruped, try obtaining it again." + pnglang_EPNGIHDRNotFirstText, "This \"Portable Network Graphics\" image is not supported or it might be invalid.\r\n(IHDR chunk is not the first)" + IBXConst_SLoginPromptFailure, "Can not find default login prompt dialog. Please add DBLogDlg to the uses section of your main file." + IBXConst_SIB70feature, "%s is an InterBase 7.0 function. Please upgrade to InterBase 7.0 to use this functonality" + IBXConst_SIB71feature, "%s is an InterBase 7.1 function. Please upgrade to InterBase 7.1 to use this functonality" + IBXConst_SIB80feature, "%s is an InterBase 2007 function. Please upgrade to InterBase 2007 to use this functonality" + IBSQLMonitor_StrConnect, ": [Connect]" + IBSQLMonitor_StrDisconnect, ": [Disconnect]" + IBSQLMonitor_StrMisc, "[Misc] " + IBSQLMonitor_StrError, "[Error] " + IBSQLMonitor_StrAttach, ": [Attach]" + IBSQLMonitor_StrDetach, ": [Detach]" + IBSQLMonitor_StrQuery, ": [Query]" + IBSQLMonitor_StrStart, ": [Start]" + IBSQLMonitor_StrExecute, ": [Execute] " + IBSQLMonitor_StrNULL, "" + IBSQLMonitor_StrBLOB, "" + IBSQLMonitor_StrFetch, ": [Fetch] " + IBXConst_SNoDestinationDirectory, "DestinationDirectory is not set" + IBXConst_SNosourceDirectory, "SourceDirectory is not set" + IBXConst_SNoUninstallFile, "Uninstall File Name is not set" + IBXConst_SOptionNeedsClient, "%s component requires Client to function properly" + IBXConst_SOptionNeedsServer, "%s component requires Server to function properly" + IBXConst_SInvalidOption, "Invalid option specified" + IBXConst_SInvalidOnErrorResult, "Unexpected onError return value" + IBXConst_SInvalidOnStatusResult, "Unexpected onStatus return value" + IBXConst_SDPBConstantUnknownEx, "DPB Constant (%s) is unknown" + IBXConst_STPBConstantUnknownEx, "TPB Constant (%s) is unknown" + IBXConst_SUnknownPlan, "Unknown Error - Can't retrieve plan" + IBXConst_SFieldSizeMismatch, "Size Mismatch - Field %s size is too small for data" + IBXConst_SEventAlreadyRegistered, "Events already registered" + IBXConst_SStringTooLarge, "Trying to store a string of length %d into a field that can only contain %d" + IBXConst_SNoTimers, "Not enough timers available" + IBXConst_SIB65feature, "%s is an InterBase 6.5 function. Please upgrade to InterBase 6.5 to use this functonality" + IBXConst_SServiceActive, "Cannot perform operation -- service is not attached" + IBXConst_SServiceInActive, "Cannot perform operation -- service is attached" + IBXConst_SServerNameMissing, "Server Name Missing" + IBXConst_SQueryParamsError, "Query Parameters missing or incorrect" + IBXConst_SStartParamsError, "start Parameters missing or incorrect" + IBXConst_SOutputParsingError, "Unexpected Output buffer value" + IBXConst_SUseSpecificProcedures, "Generic ServiceStart not applicable: Use Specific Procedures to set configuration params" + IBXConst_SSQLMonitorAlreadyPresent, "SQL Monitor Instance is already present" + IBXConst_SCantPrintValue, "Cannot print value" + IBXConst_SEOFReached, "SEOFReached" + IBXConst_SEOFInComment, "EOF in comment detected" + IBXConst_SEOFInString, "EOF in string detected" + IBXConst_SParamNameExpected, "Parameter name expected" + IBXConst_SSuccess, "Successful execution" + IBXConst_SDelphiException, "DelphiException %s" + IBXConst_SNoOptionsSet, "No Install Options selected" + IBXConst_SNoRecordsAffected, "No Records Affected" + IBXConst_SNoTableName, "No Table Name assigned" + IBXConst_SCannotCreatePrimaryIndex, "Cannot Create Primary Index; are created automatically" + IBXConst_SCannotDropSystemIndex, "Cannot Drop System Index" + IBXConst_STableNameMismatch, "Table Name Mismatch" + IBXConst_SIndexFieldMissing, "Index Field Missing" + IBXConst_SInvalidCancellation, "Cannot Cancel events while processing" + IBXConst_SInvalidEvent, "Invalid Event" + IBXConst_SMaximumEvents, "Exceded Maximum Event limits" + IBXConst_SNoEventsRegistered, "No Events Registered" + IBXConst_SInvalidQueueing, "Invalid Queueing" + IBXConst_SInvalidRegistration, "Invalid Registration" + IBXConst_SInvalidBatchMove, "Invalid Batch Move" + IBXConst_SSQLDialectInvalid, "SQL Dialect Invalid" + IBXConst_SSPBConstantNotSupported, "SPB Constant Not supported" + IBXConst_SSPBConstantUnknown, "SPB Constant Unknown" + IBXConst_SCannotCreateSharedResource, "Cannot create shared resource. (Windows error %d)" + IBXConst_SWindowsAPIError, "Windows API error. (Windows error %d [$%.8x])" + IBXConst_SColumnListsDontMatch, "Column lists do not match" + IBXConst_SColumnTypesDontMatch, "Column types don't match. (From index: %d; To index: %d)" + IBXConst_SCantEndSharedTransaction, "Can't end a shared transaction unless it is forced and equal to the transaction's TimeoutAction" + IBXConst_SFieldUnsupportedType, "Unsupported Field Type" + IBXConst_SCircularDataLink, "Circular DataLink Reference" + IBXConst_SEmptySQLStatement, "Empty SQL Statement" + IBXConst_SIsASelectStatement, "use Open for a Select Statement" + IBXConst_SRequiredParamNotSet, "Required Param value not set" + IBXConst_SNoStoredProcName, "No Stored Procedure Name assigned" + IBXConst_SIsAExecuteProcedure, "use ExecProc for Procedure; use TQuery for Select procedures" + IBXConst_SUpdateFailed, "Update Failed" + IBXConst_SNotCachedUpdates, "CachedUpdates not enabled" + IBXConst_SNotLiveRequest, "Request is not live - cannot modify" + IBXConst_SNoProvider, "No Provider" + IBXConst_SEmptyQuery, "Empty query" + IBXConst_SCannotOpenNonSQLSelect, "Cannot \"open\" a non-select statement. Use ExecQuery" + IBXConst_SNoFieldAccess, "No access to field \"%s\"" + IBXConst_SFieldReadOnly, "Field \"%s\" is read-only" + IBXConst_SFieldNotFound, "Field \"%s\" not found" + IBXConst_SNotEditing, "Not in edit mode" + IBXConst_SCannotInsert, "Cannot insert into dataset. (No insert query)" + IBXConst_SCannotPost, "Cannot post. (No update/insert query)" + IBXConst_SCannotUpdate, "Cannot update. (No update query)" + IBXConst_SCannotDelete, "Cannot delete from dataset. (No delete query)" + IBXConst_SCannotRefresh, "Cannot refresh row. (No refresh query)" + IBXConst_SBufferNotSet, "Buffer not set" + IBXConst_SCircularReference, "Circular references not permitted" + IBXConst_SSQLParseError, "SQL Parse Error:\r\n\r\n%s" + IBXConst_SUserAbort, "User abort" + IBXConst_SDataSetUniDirectional, "Data set is uni-directional" + IBXConst_SXSQLDAIndexOutOfRange, "XSQLDA index out of range" + IBXConst_SXSQLDANameDoesNotExist, "XSQLDA name does not exist (%s)" + IBXConst_SEOF, "End of file" + IBXConst_SBOF, "Beginning of file" + IBXConst_SInvalidStatementHandle, "Invalid statement handle" + IBXConst_SSQLOpen, "IBSQL Open" + IBXConst_SSQLClosed, "IBSQL Closed" + IBXConst_SDatasetOpen, "Dataset open" + IBXConst_SDatasetClosed, "Dataset closed" + IBXConst_SUnknownSQLDataType, "Unknown SQL Data type (%d)" + IBXConst_SInvalidColumnIndex, "Invalid column index (index exceeds permitted range)" + IBXConst_SInvalidParamColumnIndex, "Invalid parameter index (index exceeds permitted range)" + IBXConst_SInvalidDataConversion, "Invalid data conversion" + IBXConst_SColumnIsNotNullable, "Column cannot be set to null (%s)" + IBXConst_SBlobCannotBeRead, "Blob stream cannot be read" + IBXConst_SBlobCannotBeWritten, "Blob stream cannot be written" + IBXConst_SOperationCancelled, "Operation cancelled at user's request" + IBXConst_SDPBConstantNotSupported, "DPB Constant (isc_dpb_%s) is unsupported" + IBXConst_SDPBConstantUnknown, "DPB Constant (%d) is unknown" + IBXConst_STPBConstantNotSupported, "TPB Constant (isc_tpb_%s) is unsupported" + IBXConst_STPBConstantUnknown, "TPB Constant (%d) is unknown" + IBXConst_SDatabaseClosed, "Cannot perform operation -- DB is not open" + IBXConst_SDatabaseOpen, "Cannot perform operation -- DB is currently open" + IBXConst_SDatabaseNameMissing, "Database name is missing" + IBXConst_SNotInTransaction, "Transaction is not active" + IBXConst_SInTransaction, "Transaction is active" + IBXConst_STimeoutNegative, "Timeout values cannot be negative" + IBXConst_SNoDatabasesInTransaction, "No databases are listed in transaction component" + IBXConst_SUpdateWrongDB, "Updating wrong database" + IBXConst_SUpdateWrongTR, "Updating wrong transaction. Unique transaction expected in set" + IBXConst_SDatabaseNotAssigned, "Database not assigned" + IBXConst_STransactionNotAssigned, "Transaction not assigned" + uDARes_err_NeedShareMem, "To use dynamically loaded drivers, you must build your application with ShareMem." + uDARes_err_DatasetNotAccessible, "Access to dataset %s has not been permitted." + uDARes_err_CommandNotAccessible, "executon of command %s has not been permitted." + uDARes_err_SQLNotPermitted, "Execution of the specified SQL statement has not been permitted." + uDARes_err_UTF8DecodeError, "Can't decode UTF8 string: \"%s\"" + uDAMemDataset_SNoDetailFilter, "Filter property cannot be used for detail tables" + IBXConst_SUnknownError, "Unknown error" + IBXConst_SInterBaseMissing, "InterBase library gds32.dll not found in the path. Please install InterBase to use this functionality" + IBXConst_SInterBaseInstallMissing, "InterBase Install DLL ibinstall.dll not found in the path. Please install InterBase 6 to use this functionality" + IBXConst_SIB60feature, "%s is an InterBase 6 function. Please upgrade to InterBase 6 to use this functonality" + IBXConst_SNotSupported, "Unsupported feature" + IBXConst_SNotPermitted, "Not permitted" + IBXConst_SFileAccessError, "Temporary file access error" + IBXConst_SConnectionTimeout, "Database connection timed out" + IBXConst_SCannotSetDatabase, "Cannot set database" + IBXConst_SCannotSetTransaction, "Cannot set transaction" + uDARes_err_NotSupported, "Not supported" + uDARes_err_InvalidDataset, "Invalid or NIL dataset" + uDARes_err_CannotFindItem, "Cannot find %s \"%s\" in collection of type %s" + uDARes_err_DriverAlreadyLoaded, "Driver %s is already loaded" + uDARes_err_InvalidDLL, "%s is not a valid Data Abstract driver" + uDARes_err_UnknownDriver, "Unknown driver %s" + uDARes_err_FieldIsNotBound, "Field is not bound" + uDARes_err_CannotFindField, "Cannot find field %s" + uDARes_err_LoadPackageFailed, "LoadPackage failed for file %s" + uDARes_err_InvalidDriverReference, "The driver in %s could not be loaded" + uDARes_err_CannotFindStatement, "Cannot find statement %s for connection %s" + uDARes_err_CannotFindDefaultItem, "Cannot find default %s" + uDARes_err_PoolIsNotEmpty, "Cannot perform this operation when connections are pooled" + uDARes_err_MaxPoolSizeReached, "Maximum pool size reached. Cannot create a new connection" + uDARes_err_DARDMInvalidSchema, "Schema must be assigned and must point to a ConnectionManager" + uDARes_err_DARDMCannotFindProxessorForDelta, "Cannot find a business processor for delta \"%s\"" + JclResources_RsIntelCacheDescrB1, "Instruction TLB: 2 MByte pages, 4-way, 8 entries or 4 MByte pages, 4-way, 4 entries" + JclResources_RsIntelCacheDescrB3, "Data TLB: 4 KByte pages, 4-way set associative, 128 entries" + JclResources_RsIntelCacheDescrB4, "Data TLB1: 4 KByte pages, 4-way set associative, 256 entries" + JclResources_RsIntelCacheDescrBA, "Data TLB1: 4 KByte pages, 4-way set associative, 64 entries" + JclResources_RsIntelCacheDescrC0, "Data TLB: 4 KByte and 4 MByte pages, 4-way set associative, 8 entries" + JclResources_RsIntelCacheDescrF0, "64-Byte Prefetching" + JclResources_RsIntelCacheDescrF1, "128-Byte Prefetching" + JConsts_sChangeJPGSize, "Cannot change the size of a JPEG image" + JConsts_sJPEGError, "JPEG error #%d" + JConsts_sJPEGImageFile, "JPEG Image File" + uDARes_err_ChangeLogAlreadyStarted, "StartChange has already been called; cannot log more than one change at a time." + uDARes_err_NotAttachedToDataTable, "Delta is not attached to a DataTable" + uDARes_err_DriverProcAlreadyRegistered, "DriverProc 0x%0.8x is already registered" + uDARes_err_DriverManagerAlreadyCreated, "An instance of a TDADriverManager was already initialized. Only one driver manager per module is allowed" + uDARes_err_DriverManagerNotAssigned, "Driver Manager is not assigned" + uDARes_err_FieldTypeNotSupported, "FieldType %s (%d) is not supported" + JclResources_RsIntelCacheDescr73, "Trace cache: 64 K-Ops, 8-way set associative" + JclResources_RsIntelCacheDescr78, "2nd-level cache: 1 MBytes, 4-way set associative, 64 bytes line size" + JclResources_RsIntelCacheDescr79, "2nd-level cache: 128 KBytes, 8-way set associative, 64 bytes line size, 2 lines per sector" + JclResources_RsIntelCacheDescr7A, "2nd-level cache: 256 KBytes, 8-way set associative, 64 bytes line size, 2 lines per sector" + JclResources_RsIntelCacheDescr7B, "2nd-level cache: 512 KBytes, 8-way set associative, 64 bytes line size, 2 lines per sector" + JclResources_RsIntelCacheDescr7C, "2nd-level cache: 1 MBytes, 8-way set associative, 64 bytes line size, 2 lines per sector" + JclResources_RsIntelCacheDescr7D, "2nd-level cache: 2 MBytes, 8-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr7F, "2nd-level cache: 512 KBytes, 2-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr80, "2nd-level cache: 512 KBytes, 8-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr82, "2nd-level cache: 256 KBytes, 8-way associative, 32 byte line size" + JclResources_RsIntelCacheDescr83, "2nd-level cache: 512 KBytes, 8-way associative, 32 byte line size" + JclResources_RsIntelCacheDescr84, "2nd-level cache: 1 MBytes, 8-way associative, 32 byte line size" + JclResources_RsIntelCacheDescr85, "2nd-level cache: 2 MBytes, 8-way associative, 32 byte line size" + JclResources_RsIntelCacheDescr86, "2nd-level cache: 512 KByte, 4-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr87, "2nd-level cache: 1 MByte, 8-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescrB0, "Instruction TLB: 4 KByte pages, 4-way set associative, 128 entries" + JclResources_RsIntelCacheDescr50, "Instruction TLB: 4 KByte and 2 MByte or 4 MByte pages, 64 Entries" + JclResources_RsIntelCacheDescr51, "Instruction TLB: 4 KByte and 2 MByte or 4 MByte pages, 128 Entries" + JclResources_RsIntelCacheDescr52, "Instruction TLB: 4 KByte and 2 MByte or 4 MByte pages, 256 Entries" + JclResources_RsIntelCacheDescr56, "Data TLB0: 4 MByte pages, 4-way set associative, 16 entries" + JclResources_RsIntelCacheDescr57, "Data TLB0: 4 KByte pages, 4-way associative, 16 entries" + JclResources_RsIntelCacheDescr59, "Data TLB0: 4 KByte pages, fully associative, 16 entries" + JclResources_RsIntelCacheDescr5B, "Data TLB: 4 KByte and 4 MByte pages, 64 Entries" + JclResources_RsIntelCacheDescr5C, "Data TLB: 4 KByte and 4 MByte pages, 128 Entries" + JclResources_RsIntelCacheDescr5D, "Data TLB: 4 KByte and 4 MByte pages, 256 Entries" + JclResources_RsIntelCacheDescr60, "1st-level data cache: 16 KByte, 8-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr66, "1st-level data cache: 8 KBytes, 4-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr67, "1st-level data cache: 16 KBytes, 4-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr68, "1st-level data cache: 32 KBytes, 4-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr70, "Trace cache: 12 K-Ops, 8-way set associative" + JclResources_RsIntelCacheDescr71, "Trace cache: 16 K-Ops, 8-way set associative" + JclResources_RsIntelCacheDescr72, "Trace cache: 32 K-Ops, 8-way set associative" + JclResources_RsIntelCacheDescr3E, "2nd-level cache: 512 KBytes, 4-way set associative, sectored cache, 64-byte line size" + JclResources_RsIntelCacheDescr40, "No 2nd-level cache or, if processor contains a valid 2nd-level cache, no 3rd-level cache" + JclResources_RsIntelCacheDescr41, "2nd-level cache: 128 KBytes, 4-way set associative, 32 byte line size" + JclResources_RsIntelCacheDescr42, "2nd-level cache: 256 KBytes, 4-way set associative, 32 byte line size" + JclResources_RsIntelCacheDescr43, "2nd-level cache: 512 KBytes, 4-way set associative, 32 byte line size" + JclResources_RsIntelCacheDescr44, "2nd-level cache: 1 MBytes, 4-way set associative, 32 byte line size" + JclResources_RsIntelCacheDescr45, "2nd-level cache: 2 MBytes, 4-way set associative, 32 byte line size" + JclResources_RsIntelCacheDescr46, "3rd-level cache: 4 MBytes, 4-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr47, "3rd-level cache: 8 MBytes, 4-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr48, "3rd-level cache: 8 MByte, 8-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr49, "2nd-level cache: 4 MBytes, 16-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr4A, "3rd-level cache: 6MByte, 12-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr4B, "3rd-level cache: 8MByte, 16-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr4D, "3rd-level cache: 16MByte, 16-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr4E, "2nd-level cache: 6MByte, 24-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr4F, "Instruction TLB: 4 KByte pages, 32 Entries" + JclResources_RsIntelCacheDescr08, "1st level instruction cache: 16 KBytes, 4-way set associative, 32 byte line size" + JclResources_RsIntelCacheDescr0A, "1st level data cache: 8 KBytes, 2-way set associative, 32 byte line size" + JclResources_RsIntelCacheDescr0B, "Instruction TLB: 4 MByte pages, 4-way set associative, 4 entries" + JclResources_RsIntelCacheDescr0C, "1st level data cache: 16 KBytes, 4-way set associative, 32 byte line size" + JclResources_RsIntelCacheDescr0E, "1st level data cache: 24 KBytes, 6-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr22, "3rd level cache: 512 KBytes, 4-way set associative, 64 byte line size, 2 lines per sector" + JclResources_RsIntelCacheDescr23, "3rd level cache: 1 MBytes, 8-way set associative, 64 byte line size, 2 lines per sector" + JclResources_RsIntelCacheDescr25, "3rd level cache: 2 MBytes, 8-way set associative, 64 byte line size, 2 lines per sector" + JclResources_RsIntelCacheDescr29, "3rd level cache: 4 MBytes, 8-way set associative, 64 byte line size, 2 lines per sector" + JclResources_RsIntelCacheDescr2C, "1st level data cache: 32 KBytes, 8-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr30, "1st level instruction cache: 32 KBytes, 8-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr39, "2nd-level cache: 128 KBytes, 4-way set associative, sectored cache, 64-byte line size" + JclResources_RsIntelCacheDescr3A, "2nd-level cache: 192 KBytes, 6-way set associative, sectored cache, 64-byte line size" + JclResources_RsIntelCacheDescr3B, "2nd-level cache: 128 KBytes, 2-way set associative, sectored cache, 64-byte line size" + JclResources_RsIntelCacheDescr3C, "2nd-level cache: 256 KBytes, 4-way set associative, sectored cache, 64-byte line size" + JclResources_RsIntelCacheDescr3D, "2nd-level cache: 384 KBytes, 6-way set associative, sectored cache, 64-byte line size" + JclResources_RsRTTIParamCount, "Parameter count: " + JclResources_RsRTTIReturnType, "Return type: " + JclResources_RsRTTIMaxLen, "Max length: " + JclResources_RsRTTIElSize, "Element size: " + JclResources_RsRTTIElType, "Element type: " + JclResources_RsRTTIElNeedCleanup, "Elements need clean up: " + JclResources_RsRTTIVarType, "Variant type: " + JclResources_RsDeclarationFormat, "// Declaration for '%s' not supported." + JclResources_RsSynchCreateEvent, "Failed to create event" + JclResources_RsIntelCacheDescr00, "Null descriptor" + JclResources_RsIntelCacheDescr01, "Instruction TLB: 4 KByte pages, 4-way set associative, 32 entries" + JclResources_RsIntelCacheDescr02, "Instruction TLB: 4 MByte pages, 4-way set associative, 2 entries" + JclResources_RsIntelCacheDescr03, "Data TLB: 4 KByte pages, 4-way set associative, 64 entries" + JclResources_RsIntelCacheDescr04, "Data TLB: 4 MByte pages, 4-way set associative, 8 entries" + JclResources_RsIntelCacheDescr05, "Data TLB1: 4 MByte pages, 4-way set associative, 32 entries" + JclResources_RsIntelCacheDescr06, "1st level instruction cache: 8 KBytes, 4-way set associative, 32 byte line size" + JclResources_RsRTTIName, "Name: " + JclResources_RsRTTIType, "Type: " + JclResources_RsRTTIFlags, "Flags: " + JclResources_RsRTTIGUID, "GUID: " + JclResources_RsRTTITypeKind, "Type kind: " + JclResources_RsRTTIOrdinalType, "Ordinal type: " + JclResources_RsRTTIMinValue, "Min value: " + JclResources_RsRTTIMaxValue, "Max value: " + JclResources_RsRTTINameList, "Names: " + JclResources_RsRTTIClassName, "Class name: " + JclResources_RsRTTIParent, "Parent: " + JclResources_RsRTTIPropCount, "Property count: " + JclResources_RsRTTIUnitName, "Unit name: " + JclResources_RsRTTIBasedOn, "Based on: " + JclResources_RsRTTIFloatType, "Float type: " + JclResources_RsRTTIMethodKind, "Method kind: " + JclResources_RsRTTIConst, "const " + JclResources_RsRTTIArrayOf, "array of " + JclResources_RsRTTIOut, "out " + JclResources_RsRTTIOrdinal, "ordinal=" + JclResources_RsRTTITrue, "True" + JclResources_RsRTTIFalse, "False" + JclResources_RsRTTITypeError, "???" + JclResources_RsRTTITypeInfoAt, "Type info: %p" + JclResources_RsRTTIPropRead, "read" + JclResources_RsRTTIPropWrite, "write" + JclResources_RsRTTIPropStored, "stored" + JclResources_RsRTTIField, "field" + JclResources_RsRTTIStaticMethod, "static method" + JclResources_RsRTTIVirtualMethod, "virtual method" + JclResources_RsRTTIIndex, "index" + JclResources_RsRTTIDefault, "default" + JvResources_RsMenuHighlight, "Menu Highlight" + JclResources_RsWin32Prefix, "Win32: %s (%u)" + JclResources_RsEReplacementChar, "Failed to get ANSI replacement character" + JclResources_RsFileUtilsNoVersionInfo, "File contains no version information" + JclResources_RsCreateFileMapping, "Failed to create FileMapping" + JclResources_RsCreateFileMappingView, "Failed to create FileMappingView" + JclResources_RsViewNeedsMapping, "FileMap argument of TJclFileMappingView constructor cannot be nil" + JclResources_RsFailedToObtainSize, "Failed to obtain size of file" + JclResources_RsUnableToOpenKeyRead, "Unable to open key \"%s\\%s\" for read" + JclResources_RsUnableToOpenKeyWrite, "Unable to open key \"%s\\%s\" for write" + JclResources_RsUnableToAccessValue, "Unable to open key \"%s\\%s\" and access value \"%s\"" + JclResources_RsWrongDataType, "\"%s\\%s\\%s\" is of wrong kind or size" + JclResources_RsInconsistentPath, "\"%s\" does not match RootKey" + JclResources_RsRTTIValueOutOfRange, "Value out of range (%s)." + JclResources_RsRTTIUnknownIdentifier, "Unknown identifier '%s'." + JclResources_RsRTTIVar, "var " + JvResources_RsClHighlight, "Selection background" + JvResources_RsClHighlightText, "Selection text" + JvResources_RsClBtnFace, "Button face" + JvResources_RsClBtnShadow, "Button shadow" + JvResources_RsClGrayText, "Dimmed text" + JvResources_RsClBtnText, "Button text" + JvResources_RsClInactiveCaptionText, "Inactive window title bar text" + JvResources_RsClBtnHighlight, "Button highlight" + JvResources_RsCl3DDkShadow, "Dark shadow 3D elements" + JvResources_RsCl3DLight, "Highlight 3D elements" + JvResources_RsClInfoText, "Tooltip text" + JvResources_RsClInfoBk, "Tooltip background" + JvResources_RsGradientActiveCaption, "Gradient Active Caption" + JvResources_RsGradientInactiveCaption, "Gradient Inactive Caption" + JvResources_RsHotLight, "Hot Light" + JvResources_RsMenuBar, "Menu Bar" + JvResources_RsClLightTurquoise, "Light Turquoise" + JvResources_RsClPaleBlue, "Pale Blue" + JvResources_RsClLavender, "Lavender" + JvResources_RsClScrollBar, "Scrollbar" + JvResources_RsClBackground, "Desktop background" + JvResources_RsClActiveCaption, "Active window title bar" + JvResources_RsClInactiveCaption, "Inactive window title bar" + JvResources_RsClMenu, "Menu background" + JvResources_RsClWindow, "Window background" + JvResources_RsClWindowFrame, "Window frame" + JvResources_RsClMenuText, "Menu text" + JvResources_RsClWindowText, "Window text" + JvResources_RsClCaptionText, "Active window title bar text" + JvResources_RsClActiveBorder, "Active window border" + JvResources_RsClInactiveBorder, "Inactive window border" + JvResources_RsClAppWorkSpace, "Application workspace" + JvResources_RsClGray50, "Gray 50%" + JvResources_RsClLightOrange, "Light Orange" + JvResources_RsClSeaGreen, "Sea Green" + JvResources_RsClLightBlue, "Light Blue" + JvResources_RsClViolet, "Violet" + JvResources_RsClGray40, "Gray 40%" + JvResources_RsClPink, "Pink" + JvResources_RsClGold, "Gold" + JvResources_RsClBrightGreen, "Bright Green" + JvResources_RsClTurquoise, "Turquoise" + JvResources_RsClPlum, "Plum" + JvResources_RsClGray25, "Gray 25%" + JvResources_RsClRose, "Rose" + JvResources_RsClTan, "Tan" + JvResources_RsClLightYellow, "Light Yellow" + JvResources_RsClLightGreen, "Light Green" + JvResources_RsClWhite, "White" + JvResources_RsClMoneyGreen, "Money green" + JvResources_RsClSkyBlue, "Sky blue" + JvResources_RsClCream, "Cream" + JvResources_RsClMedGray, "Medium gray" + JvResources_RsClBrown, "Brown" + JvResources_RsClOliveGreen, "Olive Green" + JvResources_RsClDarkGreen, "Dark Green" + JvResources_RsClDarkTeal, "Dark Teal" + JvResources_RsClDarkBlue, "Dark Blue" + JvResources_RsClIndigo, "Indigo" + JvResources_RsClGray80, "Gray 80%" + JvResources_RsClDarkRed, "Dark Red" + JvResources_RsClOrange, "Orange" + JvResources_RsClDarkYellow, "Dark Yellow" + JvResources_RsClBlueGray, "Blue Gray" + JvResources_RsEBitCountNotImplemented, "BitmapToMemoryStream: bit count not implemented" + JvResources_RsClBlack, "Black" + JvResources_RsClMaroon, "Maroon" + JvResources_RsClGreen, "Green" + JvResources_RsClOlive, "Olive green" + JvResources_RsClNavy, "Navy blue" + JvResources_RsClPurple, "Purple" + JvResources_RsClTeal, "Teal" + JvResources_RsClGray, "Gray" + JvResources_RsClSilver, "Silver" + JvResources_RsClRed, "Red" + JvResources_RsClLime, "Lime" + JvResources_RsClYellow, "Yellow" + JvResources_RsClBlue, "Blue" + JvResources_RsClFuchsia, "Fuchsia" + JvResources_RsClAqua, "Aqua" + JvResources_RsEEnumeratingRegistry, "Error enumerating registry" + JvResources_RsEInvalidType, "Invalid type" + JvResources_RsEUnknownBaseType, "Unknown base type for given set" + JvResources_RsEInvalidPath, "Invalid path" + JvResources_RsENotAUniqueRootPath, "'%s' is not a unique root path" + JvResources_RsECircularReferenceOfStorages, "Circular reference of storages" + JvResources_RsGIFImage, "CompuServe GIF Image" + JvResources_RsEChangeGIFSize, "Cannot change the Size of a GIF image" + JvResources_RsENoGIFData, "No GIF Data to write" + JvResources_RsEUnrecognizedGIFExt, "Unrecognized extension block: %.2x" + JvResources_RsEWrongGIFColors, "Wrong number of colors; must be a power of 2" + JvResources_RsEBadGIFCodeSize, "GIF code size not in range 2 to 9" + JvResources_RsEGIFDecodeError, "GIF encoded data is corrupt" + JvResources_RsEGIFEncodeError, "GIF image encoding error" + JvResources_RsEGIFVersion, "Unknown GIF version" + JvResources_RsEPixelFormatNotImplemented, "BitmapToMemoryStream: pixel format not implemented" + ComStrs_sTabFailRetrieve, "Failed to retrieve tab at index %d" + ComStrs_sTabFailGetObject, "Failed to get object at index %d" + ComStrs_sTabFailSet, "Failed to set tab \"%s\" at index %d" + ComStrs_sTabFailSetObject, "Failed to set object at index %d" + ComStrs_sTabMustBeMultiLine, "MultiLine must be True when TabPosition is tpLeft or tpRight" + ComStrs_sInvalidIndex, "Invalid index" + ComStrs_sInsertError, "Unable to insert an item" + ComStrs_sRichEditInsertError, "RichEdit line insertion error" + ComStrs_sRichEditLoadFail, "Failed to Load Stream" + ComStrs_sRichEditSaveFail, "Failed to Save Stream" + ComStrs_sUDAssociated, "%s is already associated with %s" + ComStrs_sPageIndexError, "%d is an invalid PageIndex value. PageIndex must be between 0 and %d" + JvResources_RsAniExtension, "ani" + JvResources_RsAniFilterName, "ANI Image" + JvResources_RsRootValueReplaceFmt, "The Default Root Value \"%0:s\" has been replaced with \"%1:s\".\r\nPlease change the value in the FileVersionInfo Project Properties." + JvResources_RsEUnableToCreateKey, "Unable to create key '%s'" + IdResourceStringsCore_RSReadLnMaxLineLengthExceeded, "Max line length exceeded." + IdResourceStringsCore_RSConnectTimeout, "Connect timed out." + IdResourceStringsCore_RSThreadTerminateAndWaitFor, "Cannot call TerminateAndWaitFor on FreeAndTerminate threads" + IdResourceStringsCore_RSAlreadyConnected, "Already connected." + IdResourceStringsCore_RSMaximumNumberOfCaptureLineExceeded, "Maximum number of line allowed exceeded" + IdResourceStringsCore_RSchedMaxThreadEx, "The maximum number of threads for this scheduler is exceeded." + IdResourceStringsCore_RSTransparentProxyCannotBind, "Transparent proxy cannot bind." + IdResourceStringsCore_RSTransparentProxyCanNotSupportUDP, "UDP Not supported by this proxy." + IdResourceStringsCore_RSBufferMissingTerminator, "Buffer terminator must be specified." + IdResourceStringsCore_RSBufferInvalidStartPos, "Buffer start position is invalid." + IdResourceStringsCore_RSReplyInvalidCode, "Reply Code is not valid: %s" + IdResourceStringsCore_RSThreadSchedulerThreadRequired, "Thread must be specified for the scheduler." + IdResourceStringsCore_RSNoOnExecute, "You must have an OnExecute event." + IdResourceStringsCore_RSTCPServerSchedulerAlreadyActive, "Cannot change the scheduler while the server is Active." + ComStrs_sTabFailClear, "Failed to clear tab control" + ComStrs_sTabFailDelete, "Failed to delete tab at index %d" + IdResourceStringsCore_RSSocksServerGeneralError, "General SOCKS server failure." + IdResourceStringsCore_RSSocksServerPermissionError, "Connection not allowed by ruleset." + IdResourceStringsCore_RSSocksServerNetUnreachableError, "Network unreachable." + IdResourceStringsCore_RSSocksServerHostUnreachableError, "Host unreachable." + IdResourceStringsCore_RSSocksServerConnectionRefusedError, "Connection refused." + IdResourceStringsCore_RSSocksServerTTLExpiredError, "TTL expired." + IdResourceStringsCore_RSSocksServerCommandError, "Command not supported." + IdResourceStringsCore_RSSocksServerAddressError, "Address type not supported." + IdResourceStringsCore_RSInterceptCircularLink, "%d: Circular links are not allowed" + IdResourceStringsCore_RSNotEnoughDataInBuffer, "Not enough data in buffer." + IdResourceStringsCore_RSTooMuchDataInBuffer, "Too much data in buffer." + IdResourceStringsCore_RSFileNotFound, "File \"%s\" not found" + IdResourceStringsCore_RSNotConnected, "Not Connected" + IdResourceStringsCore_RSObjectTypeNotSupported, "Object type not supported." + IdResourceStringsCore_RSIdNoDataToRead, "No data to read." + IdResourceStringsCore_RSReadTimeout, "Read Timeout" + IdResourceStringsProtocols_RSHTTPGatewayTimeout, "Gateway timeout" + IdResourceStringsProtocols_RSHTTPHTTPVersionNotSupported, "HTTP version not supported" + IdResourceStringsProtocols_RSHTTPUnknownResponseCode, "Unknown Response Code" + IdResourceStringsProtocols_RSHTTPHeaderAlreadyWritten, "Header has already been written." + IdResourceStringsProtocols_RSHTTPErrorParsingCommand, "Error in parsing command." + IdResourceStringsProtocols_RSHTTPUnsupportedAuthorisationScheme, "Unsupported authorization scheme." + IdResourceStringsProtocols_RSHTTPCannotSwitchSessionStateWhenActive, "Cannot change session state when the server is active." + IdResourceStringsProtocols_RSHTTPAuthAlreadyRegistered, "This authentication method is already registered with class name %s." + IdResourceStringsCore_RSSocksUDPNotSupported, "UDP is not support in this SOCKS version." + IdResourceStringsCore_RSSocksRequestFailed, "Request rejected or failed." + IdResourceStringsCore_RSSocksRequestServerFailed, "Request rejected because SOCKS server cannot connect." + IdResourceStringsCore_RSSocksRequestIdentFailed, "Request rejected because the client program and identd report different user-ids." + IdResourceStringsCore_RSSocksUnknownError, "Unknown socks error." + IdResourceStringsCore_RSSocksServerRespondError, "Socks server did not respond." + IdResourceStringsCore_RSSocksAuthMethodError, "Invalid socks authentication method." + IdResourceStringsCore_RSSocksAuthError, "Authentication error to socks server." + IdResourceStringsProtocols_RSHTTPNotFound, "Not Found" + IdResourceStringsProtocols_RSHTTPMethodNotAllowed, "Method not allowed" + IdResourceStringsProtocols_RSHTTPNotAcceptable, "Not Acceptable" + IdResourceStringsProtocols_RSHTTPProxyAuthenticationRequired, "Proxy Authentication Required" + IdResourceStringsProtocols_RSHTTPRequestTimeout, "Request Timeout" + IdResourceStringsProtocols_RSHTTPConflict, "Conflict" + IdResourceStringsProtocols_RSHTTPGone, "Gone" + IdResourceStringsProtocols_RSHTTPLengthRequired, "Length Required" + IdResourceStringsProtocols_RSHTTPPreconditionFailed, "Precondition Failed" + IdResourceStringsProtocols_RSHTTPRequestEntityToLong, "Request Entity To Long" + IdResourceStringsProtocols_RSHTTPRequestURITooLong, "Request-URI Too Long. 256 Chars max" + IdResourceStringsProtocols_RSHTTPUnsupportedMediaType, "Unsupported Media Type" + IdResourceStringsProtocols_RSHTTPInternalServerError, "Internal Server Error" + IdResourceStringsProtocols_RSHTTPNotImplemented, "Not Implemented" + IdResourceStringsProtocols_RSHTTPBadGateway, "Bad Gateway" + IdResourceStringsProtocols_RSHTTPServiceUnavailable, "Service Unavailable" + IdResourceStringsProtocols_RSHTTPContinue, "Continue" + IdResourceStringsProtocols_RSHTTPOK, "OK" + IdResourceStringsProtocols_RSHTTPCreated, "Created" + IdResourceStringsProtocols_RSHTTPAccepted, "Accepted" + IdResourceStringsProtocols_RSHTTPNonAuthoritativeInformation, "Non-authoritative Information" + IdResourceStringsProtocols_RSHTTPNoContent, "No Content" + IdResourceStringsProtocols_RSHTTPResetContent, "Reset Content" + IdResourceStringsProtocols_RSHTTPPartialContent, "Partial Content" + IdResourceStringsProtocols_RSHTTPMovedPermanently, "Moved Permanently" + IdResourceStringsProtocols_RSHTTPMovedTemporarily, "Moved Temporarily" + IdResourceStringsProtocols_RSHTTPSeeOther, "See Other" + IdResourceStringsProtocols_RSHTTPNotModified, "Not Modified" + IdResourceStringsProtocols_RSHTTPUseProxy, "Use Proxy" + IdResourceStringsProtocols_RSHTTPBadRequest, "Bad Request" + IdResourceStringsProtocols_RSHTTPUnauthorized, "Unauthorized" + IdResourceStringsProtocols_RSHTTPForbidden, "Forbidden" + IdResourceStrings_RSAntiFreezeOnlyOne, "Only one TIdAntiFreeze can exist per application." + IdResourceStrings_RSCannotSetIPVersionWhenConnected, "Cannot change IPVersion when connected" + IdResourceStrings_RSCannotBindRange, "Can not bind in port range (%d - %d)" + IdResourceStrings_RSConnectionClosedGracefully, "Connection Closed Gracefully." + IdResourceStrings_RSCouldNotBindSocket, "Could not bind socket. Address and port are already in use." + IdResourceStrings_RSInvalidPortRange, "Invalid Port Range (%d - %d)" + IdResourceStrings_RSInvalidServiceName, "%s is not a valid service." + IdResourceStrings_RSIPv6Unavailable, "IPv6 unavailable" + IdResourceStrings_RSInvalidIPv6Address, "%s is not a valid IPv6 address" + IdResourceStrings_RSIPVersionUnsupported, "The requested IPVersion / Address family is not supported." + IdResourceStrings_RSNotAllBytesSent, "Not all bytes sent." + IdResourceStrings_RSPackageSizeTooBig, "Package Size Too Big." + IdResourceStrings_RSSetSizeExceeded, "Set Size Exceeded." + IdResourceStringsProtocols_RSMIMEExtensionEmpty, "Extension is empty" + IdResourceStringsProtocols_RSMIMEMIMETypeEmpty, "Mimetype is empty" + IdResourceStringsProtocols_RSMIMEMIMEExtAlreadyExists, "Extension already exits" + IdResourceStrings_RSStackECONNRESET, "Connection reset by peer." + IdResourceStrings_RSStackENOBUFS, "No buffer space available." + IdResourceStrings_RSStackEISCONN, "Socket is already connected." + IdResourceStrings_RSStackENOTCONN, "Socket is not connected." + IdResourceStrings_RSStackESHUTDOWN, "Cannot send or receive after socket is closed." + IdResourceStrings_RSStackETOOMANYREFS, "Too many references, cannot splice." + IdResourceStrings_RSStackETIMEDOUT, "Connection timed out." + IdResourceStrings_RSStackECONNREFUSED, "Connection refused." + IdResourceStrings_RSStackELOOP, "Too many levels of symbolic links." + IdResourceStrings_RSStackENAMETOOLONG, "File name too long." + IdResourceStrings_RSStackEHOSTDOWN, "Host is down." + IdResourceStrings_RSStackEHOSTUNREACH, "No route to host." + IdResourceStrings_RSStackENOTEMPTY, "Directory not empty" + IdResourceStrings_RSStackHOST_NOT_FOUND, "Host not found." + IdResourceStrings_RSStackClassUndefined, "Stack Class is undefined." + IdResourceStrings_RSStackAlreadyCreated, "Stack already created." + IdResourceStrings_RSStackENOTSOCK, "Socket operation on non-socket." + IdResourceStrings_RSStackEDESTADDRREQ, "Destination address required." + IdResourceStrings_RSStackEMSGSIZE, "Message too long." + IdResourceStrings_RSStackEPROTOTYPE, "Protocol wrong type for socket." + IdResourceStrings_RSStackENOPROTOOPT, "Bad protocol option." + IdResourceStrings_RSStackEPROTONOSUPPORT, "Protocol not supported." + IdResourceStrings_RSStackESOCKTNOSUPPORT, "Socket type not supported." + IdResourceStrings_RSStackEOPNOTSUPP, "Operation not supported on socket." + IdResourceStrings_RSStackEPFNOSUPPORT, "Protocol family not supported." + IdResourceStrings_RSStackEAFNOSUPPORT, "Address family not supported by protocol family." + IdResourceStrings_RSStackEADDRINUSE, "Address already in use." + IdResourceStrings_RSStackEADDRNOTAVAIL, "Cannot assign requested address." + IdResourceStrings_RSStackENETDOWN, "Network is down." + IdResourceStrings_RSStackENETUNREACH, "Network is unreachable." + IdResourceStrings_RSStackENETRESET, "Net dropped connection or reset." + IdResourceStrings_RSStackECONNABORTED, "Software caused connection abort." + IdResourceStrings_RSStatusResolving, "Resolving hostname %s." + IdResourceStrings_RSStatusConnecting, "Connecting to %s." + IdResourceStrings_RSStatusConnected, "Connected." + IdResourceStrings_RSStatusDisconnecting, "Disconnecting." + IdResourceStrings_RSStatusDisconnected, "Disconnected." + IdResourceStrings_RSStatusText, "%s" + IdResourceStrings_RSStackError, "Socket Error # %d\r\n%s" + IdResourceStrings_RSStackEINTR, "Interrupted system call." + IdResourceStrings_RSStackEBADF, "Bad file number." + IdResourceStrings_RSStackEACCES, "Access denied." + IdResourceStrings_RSStackEFAULT, "Buffer fault." + IdResourceStrings_RSStackEINVAL, "Invalid argument." + IdResourceStrings_RSStackEMFILE, "Too many open files." + IdResourceStrings_RSStackEWOULDBLOCK, "Operation would block." + IdResourceStrings_RSStackEINPROGRESS, "Operation now in progress." + IdResourceStrings_RSStackEALREADY, "Operation already in progress." + DBConsts_SBadFieldType, "Field '%s' is of an unsupported type" + DBConsts_SProviderSQLNotSupported, "SQL not supported: %s" + DBConsts_SProviderExecuteNotSupported, "Execute not supported: %s" + DBConsts_SDataSetUnidirectional, "Operation not allowed on a unidirectional dataset" + DBConsts_SUnassignedVar, "Unassigned variant value" + DBConsts_SRecordNotFound, "Record not found" + DBConsts_SBcdOverflow, "BCD overflow" + DBConsts_SInvalidBcdValue, "%s is not a valid BCD value" + DBConsts_SInvalidFormatType, "Invalid format type for BCD" + DBConsts_SCouldNotParseTimeStamp, "Could not parse SQL TimeStamp string" + DBConsts_SInvalidSqlTimeStamp, "Invalid SQL date/time values" + uROBinaryHelpers_SInvalidDecimal, "Cannot convert empty string to decimal value" + IdResourceStrings_RSFailedTimeZoneInfo, "Failed attempting to retrieve time zone information." + IdResourceStrings_RSWinsockCallError, "Error on call Winsock2 library function %s" + IdResourceStrings_RSWinsockLoadError, "Error on loading Winsock2 library (%s)" + IdResourceStrings_RSWinsockInitializationError, "Winsock Initialization Error." + DBConsts_SNoFieldIndexes, "No index currently active" + DBConsts_SNotIndexField, "Field '%s' is not indexed and cannot be modified" + DBConsts_SIndexNotFound, "Index '%s' not found" + DBConsts_SCircularDataLink, "Circular datalinks are not allowed" + DBConsts_SLookupInfoError, "Lookup information for field '%s' is incomplete" + DBConsts_SDataSourceChange, "DataSource cannot be changed" + DBConsts_SDataSetOpen, "Cannot perform this operation on an open dataset" + DBConsts_SNotEditing, "Dataset not in edit or insert mode" + DBConsts_SDataSetClosed, "Cannot perform this operation on a closed dataset" + DBConsts_SDataSetEmpty, "Cannot perform this operation on an empty dataset" + DBConsts_SDataSetReadOnly, "Cannot modify a read-only dataset" + DBConsts_SNestedDataSetClass, "Nested dataset must inherit from %s" + DBConsts_STextFalse, "False" + DBConsts_STextTrue, "True" + DBConsts_SParameterNotFound, "Parameter '%s' not found" + DBConsts_SInvalidVersion, "Unable to load bind parameters" + DBConsts_SFieldNotFound, "Field '%s' not found" + DBConsts_SFieldAccessError, "Cannot access field '%s' as type %s" + DBConsts_SFieldValueError, "Invalid value for field '%s'" + DBConsts_SFieldRangeError, "%g is not a valid value for field '%s'. The allowed range is %g to %g" + DBConsts_SBcdFieldRangeError, "%s is not a valid value for field '%s'. The allowed range is %s to %s" + DBConsts_SInvalidIntegerValue, "'%s' is not a valid integer value for field '%s'" + DBConsts_SInvalidBoolValue, "'%s' is not a valid boolean value for field '%s'" + DBConsts_SInvalidFloatValue, "'%s' is not a valid floating point value for field '%s'" + DBConsts_SFieldTypeMismatch, "Type mismatch for field '%s', expecting: %s actual: %s" + DBConsts_SFieldSizeMismatch, "Size mismatch for field '%s', expecting: %d actual: %d" + DBConsts_SInvalidVarByteArray, "Invalid variant type or size for field '%s'" + DBConsts_SFieldOutOfRange, "Value of field '%s' is out of range" + DBConsts_SFieldRequired, "Field '%s' must have a value" + DBConsts_SDataSetMissing, "Field '%s' has no dataset" + DBConsts_SInvalidCalcType, "Field '%s' cannot be a calculated or lookup field" + DBConsts_SFieldReadOnly, "Field '%s' cannot be modified" + uRORes_err_IDispatchMarshalingNotSupported, "Marshaling of IDispatch (%d) type variants is not supported." + uRORes_err_UnsupportedVariantType, "Unsupported variant type \"%d\"" + uRORes_err_VariantIsNotArray, "Variant must be Array, but is %d" + uRORes_err_InvalidVarArrayDimCount, "Variant Array DimCount must be 1 but is %d" + uRORes_err_CannotFindParameter, "Cannot find parameter %s" + uRORes_err_MessageNotAssigned, "Message is NIL" + ComConst_SOleError, "OLE error %.8x" + ComConst_SNoMethod, "Method '%s' not supported by automation object" + ComConst_SVarNotObject, "Variant does not reference an automation object" + ComConst_STooManyParams, "Dispatch methods do not support more than 64 parameters" + ComConst_SDCOMNotInstalled, "DCOM not installed" + DBConsts_SInvalidFieldSize, "Invalid field size" + DBConsts_SInvalidFieldKind, "Invalid FieldKind" + DBConsts_SUnknownFieldType, "Field '%s' is of an unknown type" + DBConsts_SFieldNameMissing, "Field name missing" + DBConsts_SDuplicateFieldName, "Duplicate field name '%s'" + uRORes_err_CannotFindMessageDispatcher, "Cannot find message dispatcher. Maybe there is no message component configured for the requested path?" + uRORes_err_ServerOnlySupportsOneDispatcher, "%s servers only support one dispatcher" + uRORes_err_UnhandledException, "Unhandled exception" + uRORes_err_ChannelBusy, "Channel is busy. Try again later." + uRORes_err_ArrayIndexOutOfBounds, "Array index out of bounds (%d)." + uRORes_err_InvalidHeader, "Invalid binary header. Either incompatible or not a binary message." + uRORes_err_InvalidHeaderEncrypted, "Invalid binary header. It seems that encryption is active on the other side of the communication, but not locally?" + uRORes_err_UnknownClassInStream, "Unknown class \"%s\" found in stream." + uRORes_err_UnexpectedClassInStream, "Unexpected class found in stream; class \"%s\" does not descend from \"%s\"." + uRORes_err_SessionNotFound, "Session %s could not be found" + uRORes_err_ChannelDoesntSupportIROMetadataReader, "Channel does not support IROMetadataReader" + uRORes_err_TooManySessions, "Too many sessions. Try again in %d minute(s)" + uRORes_err_DOMElementIsNIL, "DOMElement is NIL" + uRORes_err_CannotLoadXMLDocument, "Cannot load XML document.\rReason: %s\rLine: %d\rPosition: %d" + uRORes_err_ErrorCreatingMsXmlDoc, "Error creating MSXML Document class\r\r%s: %s" + uRORes_err_NoXMLParsersAvailable, "MSXML is not installed" + uRORes_str_ExceptionReraisedFromServer, "An exception was raised on the server: %s" + uRORes_err_AssignError, "Cannot assign a \"%s\" to a \"%s\"." + uRORes_err_InvalidRequestStream, "Invalid request stream (%d bytes)" + uRORes_err_NILMessage, "Message is NIL" + uRORes_err_UnspecifiedInterface, "The message does not have an interface name" + uRORes_err_UnspecifiedMessage, "The message does not have a name" + uRORes_err_UnknownMethod, "Unknown method %s for interface %s" + uRORes_err_ClassFactoryDidNotReturnInstance, "Class factory did not return an instance of \"%s\"" + uRORes_err_AbstractService, "Interface \"%s\" is declared as an abstract service." + uRORes_err_TypeNotSupported, "Type \"%s\" not supported" + uRORes_err_ClassFactoryNotFound, "Class factory for interface %s not found" + uRORes_err_IROMessageNotSupported, "Class \"%s\" does not support IROMessage" + uRORes_err_ClassAlreadyRegistered, "Class \"%s\" is already registered" + uRORes_err_UnknownClass, "Unknown class \"%s\"" + uRORes_err_UnknownProxyInterface, "Unknown proxy interface \"%s\"" + uRORes_err_DispatcherAlreadyAssigned, "Dispatcher for %s already assigned" + uRORes_err_InvalidStringLength, "Stream read error: Invalid string length \"%d\"" + uRORes_str_InvalidClassTypeInStream, "Stream read error: Invalid class type encountered: \"%s\"" + uRORes_err_UnexpectedEndOfStream, "Unexpected end of stream." + uRORes_err_RodlDuplicateName, "Duplicate name." + uRORes_err_RodlNoDataTypeSpecified, "No data type specified." + uRORes_err_RodlNoEnumValues, "Enum does not contain any values." + uRORes_err_RodlNoStructElementsDefined, "Struct does not contain any elements." + uRORes_err_RodlNoOperationsDefined, "Service interface does not contain any elements." + uRORes_err_RodlUsedFileDoesNotExist, "The referenced RODL file \"%s\" could not be found." + uRORes_err_RodlInvalidDataType, "Invalid or undefined data type \"%s\"." + uRORes_err_RodlStructCannotBeNested, "Structs cannot recursively contain themselves." + uRORes_err_RodlInvalidAncestorType, "Invalid or undefined ancestor type \"%s\"." + uRORes_err_RodlItemExistsInAnsector, "An item named \"%s\" already exists in ancestor \"%s\"." + uRORes_err_RodlCircularReference, "Circular reference detected between %s and %s" + uRORes_err_RodlCircularityWarning, "Contained items have been not checked for name duplicates in ancestors because of the ancestors' circularity" + uRORes_str_ExceptionOnServer, "An exception of type %s was raised on the server: %s" + uRODECConst_sInvalidStringFormat, "Input is not a valid %s Format." + uRODECConst_sInvalidFormatString, "Input cannot be converted to %s Format." + uRODECConst_sFMT_COPY, "copy Input to Output" + uRODECConst_sFMT_HEX, "Hexadecimal" + uRODECConst_sFMT_HEXL, "Hexadecimal lowercase" + uRODECConst_sFMT_MIME64, "MIME Base 64" + uRODECConst_sFMT_UU, "UU Coding" + uRODECConst_sFMT_XX, "XX Coding" + uRODECConst_sInvalidKeySize, "Length from Encryptionkey is invalid.\r\nKeysize for %s must be within %d-%d bytes" + uRODECConst_sNotInitialized, "%s is not initialized, call Init() or InitKey() first." + uRORes_err_InvalidIndex, "Invalid index %d" + uRORes_err_InvalidType, "Invalid type \"%s. Expected \"%s\"\"" + uRORes_err_InvalidLibrary, "Invalid library" + uRORes_err_InvalidStream, "Invalid stream" + uRORes_err_InvalidTargetEntity, "Invalid TargetEntity \"%s\"" + uRORes_err_InvalidParamFlag, "Invalid Parameter Flag \"%s\"" + Consts_SASCIIEncoding, "ASCII" + Consts_SUnicodeEncoding, "Unicode" + Consts_SBigEndianEncoding, "Big Endian Unicode" + Consts_SUTF8Encoding, "UTF-8" + Consts_SUTF7Encoding, "UTF-7" + Consts_STrayIconRemoveError, "Cannot remove shell notification icon" + Consts_STrayIconCreateError, "Cannot create shell notification icon" + Consts_SPageControlNotSet, "PageControl must first be assigned" + Consts_SWindowsVistaRequired, "%s requires Windows Vista or later" + HelpIntfs_hNoTableOfContents, "Unable to find a Table of Contents" + HelpIntfs_hNothingFound, "No help found for %s" + HelpIntfs_hNoContext, "No context-sensitive help installed" + HelpIntfs_hNoContextFound, "No help found for context" + HelpIntfs_hNoTopics, "No topic-based help system installed" + uRODECConst_sProtectionCircular, "Circular Protection detected, Protection Object is invalid." + uRODECConst_sStringFormatExists, "String Format \"%d\" does not exist." + Consts_SShutdown, "shutdown" + Consts_SCustomError, "Service failed in custom message(%d): %s" + Consts_SServiceInstallOK, "Service installed successfully" + Consts_SServiceInstallFailed, "Service \"%s\" failed to install with error: \"%s\"" + Consts_SServiceUninstallOK, "Service uninstalled successfully" + Consts_SServiceUninstallFailed, "Service \"%s\" failed to uninstall with error: \"%s\"" + Consts_SDockedCtlNeedsName, "Docked control must have a name" + Consts_SDockTreeRemoveError, "Error removing control from dock tree" + Consts_SDockZoneNotFound, " - Dock zone not found" + Consts_SDockZoneHasNoCtl, " - Dock zone has no control" + Consts_SDockZoneVersionConflict, "Error loading dock zone from the stream. Expecting version %d, but found %d." + Consts_SMultiSelectRequired, "Multiselect mode must be on for this feature" + Consts_SSeparator, "Separator" + Consts_SErrorSettingCount, "Error setting %s.Count" + Consts_SListBoxMustBeVirtual, "Listbox (%s) style must be virtual in order to set Count" + Consts_SANSIEncoding, "ANSI" + Consts_SOutOfRange, "Value must be between %d and %d" + Consts_SInsertLineError, "Unable to insert a line" + Consts_SInvalidClipFmt, "Invalid clipboard format" + Consts_SIconToClipboard, "Clipboard does not support Icons" + Consts_SCannotOpenClipboard, "Cannot open clipboard" + Consts_SInvalidMemoSize, "Text exceeds memo capacity" + Consts_SInvalidPrinterOp, "Operation not supported on selected printer" + Consts_SNoDefaultPrinter, "There is no default printer currently selected" + Consts_SDuplicateMenus, "Menu '%s' is already being used by another form" + Consts_SServiceFailed, "Service failed on %s: %s" + Consts_SExecute, "execute" + Consts_SStart, "start" + Consts_SStop, "stop" + Consts_SPause, "pause" + Consts_SContinue, "continue" + Consts_SInterrogate, "interrogate" + Consts_SmkcEnter, "Enter" + Consts_SmkcSpace, "Space" + Consts_SmkcPgUp, "PgUp" + Consts_SmkcPgDn, "PgDn" + Consts_SmkcEnd, "End" + Consts_SmkcHome, "Home" + Consts_SmkcLeft, "Left" + Consts_SmkcUp, "Up" + Consts_SmkcRight, "Right" + Consts_SmkcDown, "Down" + Consts_SmkcIns, "Ins" + Consts_SmkcDel, "Del" + Consts_SmkcShift, "Shift+" + Consts_SmkcCtrl, "Ctrl+" + Consts_SmkcAlt, "Alt+" + Consts_srNone, "(None)" + Consts_SMsgDlgInformation, "Information" + Consts_SMsgDlgConfirm, "Confirm" + Consts_SMsgDlgYes, "&Yes" + Consts_SMsgDlgNo, "&No" + Consts_SMsgDlgOK, "OK" + Consts_SMsgDlgCancel, "Cancel" + Consts_SMsgDlgHelp, "&Help" + Consts_SMsgDlgAbort, "&Abort" + Consts_SMsgDlgRetry, "&Retry" + Consts_SMsgDlgIgnore, "&Ignore" + Consts_SMsgDlgAll, "&All" + Consts_SMsgDlgNoToAll, "N&o to All" + Consts_SMsgDlgYesToAll, "Yes to &All" + Consts_SmkcBkSp, "BkSp" + Consts_SmkcTab, "Tab" + Consts_SmkcEsc, "Esc" + Consts_SNoButton, "&No" + Consts_SHelpButton, "&Help" + Consts_SCloseButton, "&Close" + Consts_SIgnoreButton, "&Ignore" + Consts_SRetryButton, "&Retry" + Consts_SAbortButton, "Abort" + Consts_SAllButton, "&All" + Consts_SCannotDragForm, "Cannot drag a form" + Consts_SVMetafiles, "Metafiles" + Consts_SVEnhMetafiles, "Enhanced Metafiles" + Consts_SVIcons, "Icons" + Consts_SVBitmaps, "Bitmaps" + Consts_SMaskErr, "Invalid input value" + Consts_SMaskEditErr, "Invalid input value. Use escape key to abandon changes" + Consts_SMsgDlgWarning, "Warning" + Consts_SMsgDlgError, "Error" + Consts_SScrollBarRange, "Scrollbar property out of range" + Consts_SPropertyOutOfRange, "%s property out of range" + Consts_SMenuIndexError, "Menu index out of range" + Consts_SMenuReinserted, "Menu inserted twice" + Consts_SMenuNotFound, "Sub-menu is not in menu" + Consts_SNoTimers, "Not enough timers available" + Consts_SNotPrinting, "Printer is not currently printing" + Consts_SPrinting, "Printing in progress" + Consts_SInvalidPrinter, "Printer selected is not valid" + Consts_SDeviceOnPort, "%s on %s" + Consts_SGroupIndexTooLow, "GroupIndex cannot be less than a previous menu item's GroupIndex" + Consts_SNoMDIForm, "Cannot create form. No MDI forms are currently active" + Consts_SControlParentSetToSelf, "A control cannot have itself as its parent" + Consts_SOKButton, "OK" + Consts_SCancelButton, "Cancel" + Consts_SYesButton, "&Yes" + Consts_SOutOfResources, "Out of system resources" + Consts_SNoCanvasHandle, "Canvas does not allow drawing" + Consts_SInvalidImageSize, "Invalid image size" + Consts_SInvalidImageList, "Invalid ImageList" + Consts_SReplaceImage, "Unable to Replace Image" + Consts_SImageIndexError, "Invalid ImageList Index" + Consts_SImageReadFail, "Failed to read ImageList data from stream" + Consts_SImageWriteFail, "Failed to write ImageList data to stream" + Consts_SWindowDCError, "Error creating window device context" + Consts_SWindowClass, "Error creating window class" + Consts_SCannotFocus, "Cannot focus a disabled or invisible window" + Consts_SParentRequired, "Control '%s' has no parent window" + Consts_SParentGivenNotAParent, "Parent given is not a parent of '%s'" + Consts_SMDIChildNotVisible, "Cannot hide an MDI Child Form" + Consts_SVisibleChanged, "Cannot change Visible in OnShow or OnHide" + Consts_SCannotShowModal, "Cannot make a visible window modal" + RTLConsts_SWriteError, "Stream write error" + RTLConsts_SThreadCreateError, "Thread creation error: %s" + RTLConsts_SThreadError, "Thread Error: %s (%d)" + Consts_SInvalidTabIndex, "Tab index out of bounds" + Consts_SInvalidTabPosition, "Tab position incompatible with current tab style" + Consts_SInvalidTabStyle, "Tab style incompatible with current tab position" + Consts_SInvalidBitmap, "Bitmap image is not valid" + Consts_SInvalidIcon, "Icon image is not valid" + Consts_SInvalidMetafile, "Metafile is not valid" + Consts_SInvalidPixelFormat, "Invalid pixel format" + Consts_SInvalidImage, "Invalid image" + Consts_SScanLine, "Scan line index out of range" + Consts_SChangeIconSize, "Cannot change the size of an icon" + Consts_SOleGraphic, "Invalid operation on TOleGraphic" + Consts_SUnknownExtension, "Unknown picture file extension (.%s)" + Consts_SUnknownClipboardFormat, "Unsupported clipboard format" + RTLConsts_SInvalidRegType, "Invalid data type for '%s'" + RTLConsts_SListCapacityError, "List capacity out of bounds (%d)" + RTLConsts_SListCountError, "List count out of bounds (%d)" + RTLConsts_SListIndexError, "List index out of bounds (%d)" + RTLConsts_SMemoryStreamError, "Out of memory while expanding memory stream" + RTLConsts_SPropertyException, "Error reading %s%s%s: %s" + RTLConsts_SReadError, "Stream read error" + RTLConsts_SReadOnlyProperty, "Property is read-only" + RTLConsts_SRegCreateFailed, "Failed to create key %s" + RTLConsts_SRegGetDataFailed, "Failed to get data for '%s'" + RTLConsts_SRegSetDataFailed, "Failed to set data for '%s'" + RTLConsts_SResNotFound, "Resource %s not found" + RTLConsts_SSeekNotImplemented, "%s.Seek not implemented" + RTLConsts_SSortedListError, "Operation not allowed on sorted list" + RTLConsts_SUnknownGroup, "%s not in a class registration group" + RTLConsts_SUnknownProperty, "Property %s does not exist" + RTLConsts_SCheckSynchronizeError, "CheckSynchronize called from thread $%x, which is NOT the main thread" + RTLConsts_SClassNotFound, "Class %s not found" + RTLConsts_SDuplicateClass, "A class named %s already exists" + RTLConsts_SDuplicateItem, "List does not allow duplicates ($0%x)" + RTLConsts_SDuplicateName, "A component named %s already exists" + RTLConsts_SDuplicateString, "String list does not allow duplicates" + RTLConsts_SFCreateErrorEx, "Cannot create file \"%s\". %s" + RTLConsts_SFOpenErrorEx, "Cannot open file \"%s\". %s" + RTLConsts_SIniFileWriteError, "Unable to write to %s" + RTLConsts_SInvalidImage, "Invalid stream format" + RTLConsts_SInvalidName, "''%s'' is not a valid component name" + RTLConsts_SInvalidProperty, "Invalid property value" + RTLConsts_SInvalidPropertyElement, "Invalid property element: %s" + RTLConsts_SInvalidPropertyPath, "Invalid property path" + RTLConsts_SInvalidPropertyType, "Invalid property type: %s" + RTLConsts_SInvalidPropertyValue, "Invalid property value" + SysConst_SShortDayNameTue, "Tue" + SysConst_SShortDayNameWed, "Wed" + SysConst_SShortDayNameThu, "Thu" + SysConst_SShortDayNameFri, "Fri" + SysConst_SShortDayNameSat, "Sat" + SysConst_SLongDayNameSun, "Sunday" + SysConst_SLongDayNameMon, "Monday" + SysConst_SLongDayNameTue, "Tuesday" + SysConst_SLongDayNameWed, "Wednesday" + SysConst_SLongDayNameThu, "Thursday" + SysConst_SLongDayNameFri, "Friday" + SysConst_SLongDayNameSat, "Saturday" + RTLConsts_SAncestorNotFound, "Ancestor for '%s' not found" + RTLConsts_SAssignError, "Cannot assign a %s to a %s" + RTLConsts_SBitsIndexError, "Bits index out of range" + RTLConsts_SCantWriteResourceStreamError, "Can't write to a read-only resource stream" + SysConst_SShortMonthNameNov, "Nov" + SysConst_SShortMonthNameDec, "Dec" + SysConst_SLongMonthNameJan, "January" + SysConst_SLongMonthNameFeb, "February" + SysConst_SLongMonthNameMar, "March" + SysConst_SLongMonthNameApr, "April" + SysConst_SLongMonthNameMay, "May" + SysConst_SLongMonthNameJun, "June" + SysConst_SLongMonthNameJul, "July" + SysConst_SLongMonthNameAug, "August" + SysConst_SLongMonthNameSep, "September" + SysConst_SLongMonthNameOct, "October" + SysConst_SLongMonthNameNov, "November" + SysConst_SLongMonthNameDec, "December" + SysConst_SShortDayNameSun, "Sun" + SysConst_SShortDayNameMon, "Mon" + SysConst_SAssertError, "%s (%s, line %d)" + SysConst_SAbstractError, "Abstract Error" + SysConst_SModuleAccessViolation, "Access violation at address %p in module '%s'. %s of address %p" + SysConst_SOSError, "System Error. Code: %d.\r\n%s" + SysConst_SUnkOSError, "A call to an OS function failed" + SysConst_SNL, "Application is not licensed to use this feature" + SysConst_SShortMonthNameJan, "Jan" + SysConst_SShortMonthNameFeb, "Feb" + SysConst_SShortMonthNameMar, "Mar" + SysConst_SShortMonthNameApr, "Apr" + SysConst_SShortMonthNameMay, "May" + SysConst_SShortMonthNameJun, "Jun" + SysConst_SShortMonthNameJul, "Jul" + SysConst_SShortMonthNameAug, "Aug" + SysConst_SShortMonthNameSep, "Sep" + SysConst_SShortMonthNameOct, "Oct" + SysConst_SInvalidVarOpWithHResultWithPrefix, "Invalid variant operation (%s%.8x)\n%s" + SysConst_SVarTypeOutOfRangeWithPrefix, "Custom variant type (%s%.4x) is out of range" + SysConst_SVarTypeAlreadyUsedWithPrefix, "Custom variant type (%s%.4x) already used by %s" + SysConst_SVarTypeNotUsableWithPrefix, "Custom variant type (%s%.4x) is not usable" + SysConst_SVarTypeTooManyCustom, "Too many custom variant types have been registered" + SysConst_SVarTypeCouldNotConvert, "Could not convert variant of type (%s) into type (%s)" + SysConst_SVarTypeConvertOverflow, "Overflow while converting variant of type (%s) into type (%s)" + SysConst_SVarOverflow, "Variant overflow" + SysConst_SVarInvalid, "Invalid argument" + SysConst_SVarBadType, "Invalid variant type" + SysConst_SVarNotImplemented, "Operation not supported" + SysConst_SVarUnexpected, "Unexpected variant error" + SysConst_SExternalException, "External exception %x" + SysConst_SAssertionFailed, "Assertion failed" + SysConst_SIntfCastError, "Interface not supported" + SysConst_SSafecallException, "Exception in safecall method" + SysConst_SPrivilege, "Privileged instruction" + SysConst_SOperationAborted, "Operation aborted" + SysConst_SException, "Exception %s in module %s at %p.\r\n%s%s\r\n" + SysConst_SExceptTitle, "Application Error" + SysConst_SInvalidFormat, "Format '%s' invalid or incompatible with argument" + SysConst_SArgumentMissing, "No argument for format '%s'" + SysConst_SDispatchError, "Variant method calls not supported" + SysConst_SReadAccess, "Read" + SysConst_SWriteAccess, "Write" + SysConst_SFormatTooLong, "Format string too long" + SysConst_SVarArrayCreate, "Error creating variant or safe array" + SysConst_SVarArrayBounds, "Variant or safe array index out of bounds" + SysConst_SVarArrayLocked, "Variant or safe array is locked" + SysConst_SInvalidVarCast, "Invalid variant type conversion" + SysConst_SInvalidVarOp, "Invalid variant operation" + SysConst_SInvalidVarNullOp, "Invalid NULL variant operation" + SysConst_SEndOfFile, "Read beyond end of file" + SysConst_SDiskFull, "Disk full" + SysConst_SInvalidInput, "Invalid numeric input" + SysConst_SDivByZero, "Division by zero" + SysConst_SRangeError, "Range check error" + SysConst_SIntOverflow, "Integer overflow" + SysConst_SInvalidOp, "Invalid floating point operation" + SysConst_SZeroDivide, "Floating point division by zero" + SysConst_SOverflow, "Floating point overflow" + SysConst_SUnderflow, "Floating point underflow" + SysConst_SInvalidPointer, "Invalid pointer operation" + SysConst_SInvalidCast, "Invalid class typecast" + SysConst_SAccessViolationArg3, "Access violation at address %p. %s of address %p" + SysConst_SAccessViolationNoArg, "Access violation" + SysConst_SStackOverflow, "Stack overflow" + SysConst_SControlC, "Control-C hit" + SysConst_SInvalidInteger, "'%s' is not a valid integer value" + SysConst_SInvalidFloat, "'%s' is not a valid floating point value" + SysConst_SInvalidDate, "'%s' is not a valid date" + SysConst_SInvalidTime, "'%s' is not a valid time" + SysConst_SInvalidDateTime, "'%s' is not a valid date and time" + SysConst_SInvalidTimeStamp, "'%d.%d' is not a valid timestamp" + SysConst_SInvalidGUID, "'%s' is not a valid GUID value" + SysConst_SInvalidBoolean, "'%s' is not a valid boolean value" + SysConst_STimeEncodeError, "Invalid argument to time encode" + SysConst_SDateEncodeError, "Invalid argument to date encode" + SysConst_SOutOfMemory, "Out of memory" + SysConst_SInOutError, "I/O error %d" + SysConst_SFileNotFound, "File not found" + SysConst_SInvalidFilename, "Invalid filename" + SysConst_STooManyOpenFiles, "Too many open files" + SysConst_SAccessDenied, "File access denied" +END + +/* c:\archivos de programa\codegear\rad studio\5.0\lib\Controls.res */ +/* C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\uROPoweredByRemObjectsButton.res */ +/* C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\uROHtmlServerInfo.res */ +/* c:\archivos de programa\codegear\rad studio\5.0\lib\WindowsXP.res */ +/* c:\archivos de programa\codegear\rad studio\5.0\lib\Buttons.res */ +/* c:\archivos de programa\codegear\rad studio\5.0\lib\ExtDlgs.res */ +/* C:\Codigo\Lib\JVCL\JvConsts.res */ +/* C:\Codigo\Lib\JVCL\JvProgressForm.dfm */ +/* C:\Archivos de programa\RemObjects Software\Data Abstract for Delphi\Source\Drivers\DataAbstract_IBXDriver_Glyphs.res */ +/* C:\Codigo\Lib\JVCL\JvLogForm.dfm */ +/* C:\Codigo\Source\Servidor\uDataModuleServer.dfm */ +/* C:\Codigo\Source\Servidor\Configuracion\uFrameConfiguracion.dfm */ +/* C:\Codigo\Lib\DevExpressVCL\dxOffice11.res */ +/* C:\Codigo\Lib\DevExpressVCL\cxLookAndFeelPainters.res */ +/* C:\Codigo\Lib\DevExpressVCL\cxControls.res */ +/* C:\Codigo\Lib\DevExpressVCL\cxEdit.res */ +/* C:\Codigo\Lib\DevExpressVCL\cxScrollCursors.res */ +/* C:\Codigo\Source\Servidor\Configuracion\uConexionBD.dfm */ +/* C:\Codigo\Source\Servidor\Configuracion\uConfGeneral.dfm */ +/* C:\Codigo\Source\Servidor\Configuracion\uConfiguracion.dfm */ +/* C:\Codigo\Source\Servidor\uAcercaDe.dfm */ +/* C:\Codigo\Source\Servidor\uServerMainForm.dfm */ +/* C:\Codigo\Source\Servidor\srvLogin_Impl.dfm */ +/* c:\archivos de programa\codegear\rad studio\5.0\lib\FileCtrl.res */ +/* C:\Codigo\Lib\FastReport4\frxInheritError.dfm */ +/* C:\Codigo\Lib\FastReport4\frxCtrls.RES */ +/* C:\Codigo\Lib\FastReport4\frxPrintDialog.DFM */ +/* C:\Codigo\Lib\FastReport4\frxPreviewPageSettings.DFM */ +/* C:\Codigo\Lib\FastReport4\frxSearchDialog.DFM */ +/* C:\Codigo\Lib\FastReport4\frxPreview.DFM */ +/* C:\Codigo\Lib\FastReport4\frxPreview.RES */ +/* C:\Codigo\Lib\FastReport4\frxDialogForm.DFM */ +/* C:\Codigo\Lib\FastReport4\frxPassw.dfm */ +/* C:\Codigo\Lib\FastReport4\frxProgress.DFM */ +/* C:\Codigo\Lib\FastReport4\frxClass.RES */ +/* c:\archivos de programa\codegear\rad studio\5.0\lib\TeeResou.res */ +/* c:\archivos de programa\codegear\rad studio\5.0\lib\TeePenDlg.DFM */ +/* c:\archivos de programa\codegear\rad studio\5.0\lib\TeeBmps.res */ +/* c:\archivos de programa\codegear\rad studio\5.0\lib\TeeGalleryAlternate.DFM */ +/* c:\archivos de programa\codegear\rad studio\5.0\lib\Tabs.res */ +/* C:\Codigo\Lib\FastReport4\frxPopupForm.DFM */ +/* C:\Codigo\Lib\FastReport4\frxInsp.DFM */ +/* C:\Codigo\Lib\FastReport4\frxEditFormat.DFM */ +/* C:\Codigo\Lib\FastReport4\frxEditHighlight.DFM */ +/* C:\Codigo\Lib\FastReport4\frxEditSysMemo.DFM */ +/* C:\Codigo\Lib\FastReport4\frxEditMemo.DFM */ +/* C:\Codigo\Lib\FastReport4\frxChartEditor.DFM */ +/* C:\Codigo\Lib\FastReport4\frxEditFrame.DFM */ +/* C:\Codigo\Lib\FastReport4\frxCrossEditor.DFM */ +/* C:\Codigo\Lib\FastReport4\frxOLEEditor.DFM */ +/* C:\Codigo\Lib\FastReport4\frxBarcodeEditor.DFM */ +/* C:\Codigo\Lib\FastReport4\frxRichEditor.DFM */ +/* C:\Codigo\Lib\DevExpressVCL\cxShellBrowser.dfm */ +/* C:\Codigo\Source\Modulos\Contactos\Reports\uRptFichasEmpleado_Server.dfm */ +/* C:\Codigo\Source\Modulos\Contactos\Reports\uRptEtiquetasContacto_Server.dfm */ +/* C:\Codigo\Source\Modulos\Contactos\Servidor\srvContactos_Impl.dfm */ +/* C:\Codigo\Source\Modulos\Referencias\Servidor\srvReferencias_Impl.dfm */ +/* C:\Codigo\Source\Modulos\Formas de pago\Servidor\srvFormasPago_Impl.dfm */ +/* C:\Codigo\Source\Modulos\Tipos de IVA\Servidor\srvTiposIVA_Impl.dfm */ +/* C:\Codigo\Source\Modulos\Almacenes\Servidor\srvAlmacenes_Impl.dfm */ +/* C:\Codigo\Source\ApplicationBase\Empresas\Servidor\srvEmpresas_Impl.dfm */ +/* C:\Codigo\Source\Servidor\Configuracion\srvConfiguracion_Impl.dfm */ +/* C:\Codigo\Source\Modulos\Familias\Servidor\srvFamilias_Impl.dfm */ +/* C:\Codigo\Source\ApplicationBase\Usuarios\Servidor\srvUsuarios_Impl.dfm */ +/* C:\Codigo\Lib\FastReport4\frxExportPDF.dfm */ +/* C:\Codigo\Source\Modulos\Presupuestos de cliente\Reports\uRptPresupuestosCliente_Server.dfm */ +/* C:\Codigo\Source\Modulos\Presupuestos de cliente\Reports\uRptWordPresupuestoCliente.dfm */ +/* C:\Codigo\Source\Modulos\Presupuestos de cliente\Reports\uRptWordCertificadoTrabajo_Server.dfm */ +/* C:\Codigo\Source\Modulos\Presupuestos de cliente\Servidor\srvPresupuestosCliente_Impl.dfm */ +/* C:\Codigo\Source\Modulos\Articulos\Servidor\srvArticulos_Impl.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de cliente\Reports\uRptAlbaranesCliente_Server.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de cliente\Reports\uRptWordAlbaranCliente.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de cliente\Servidor\srvAlbaranesCliente_Impl.dfm */ +/* C:\Codigo\Source\Modulos\Recibos de cliente\Reports\uRptRecibosCliente_Server.dfm */ +/* C:\Codigo\Source\Modulos\Recibos de cliente\Servidor\srvRecibosCliente_Impl.dfm */ +/* C:\Codigo\Source\Modulos\Facturas de cliente\Reports\uRptWordFacturaCliente.dfm */ +/* C:\Codigo\Source\Modulos\Facturas de cliente\Reports\uRptFacturasCliente_Server.dfm */ +/* C:\Codigo\Source\Modulos\Facturas de cliente\Servidor\srvFacturasCliente_Impl.dfm */ +/* C:\Codigo\Source\Modulos\Recibos de proveedor\Servidor\srvRecibosProveedor_Impl.dfm */ +/* C:\Codigo\Source\Modulos\Facturas de proveedor\Servidor\srvFacturasProveedor_Impl.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de proveedor\Reports\uRptAlbaranesProveedor_Server.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de proveedor\Reports\uRptWordAlbaranProveedor.dfm */ +/* C:\Codigo\Source\Modulos\Albaranes de proveedor\Servidor\srvAlbaranesProveedor_Impl.dfm */ +/* C:\Codigo\Source\Modulos\Pedidos a proveedor\Reports\uRptPedidosProveedor_Server.dfm */ +/* C:\Codigo\Source\Modulos\Pedidos a proveedor\Reports\uRptWordPedidoProveedor.dfm */ +/* C:\Codigo\Source\Modulos\Pedidos a proveedor\Servidor\srvPedidosProveedor_Impl.dfm */ +/* C:\Codigo\Source\Modulos\Remesas de cliente\Servidor\srvRemesasCliente_Impl.dfm */ +/* C:\Codigo\Source\Modulos\Remesas de proveedor\Servidor\srvRemesasProveedor_Impl.dfm */ +/* C:\Codigo\Source\Modulos\Inventario\Servidor\srvInventario_Impl.dfm */ +/* C:\Codigo\Source\Modulos\Historico de movimientos\Servidor\srvHistoricoMovimientos_Impl.dfm */ +/* C:\Codigo\Source\Modulos\Unidades de medida\Servidor\srvUnidadesMedida_Impl.dfm */ +/* C:\Codigo\Source\Modulos\Fabricantes\Servidor\srvFabricantes_Impl.dfm */ +/* C:\Codigo\Source\Modulos\Obras\Servidor\srvObras_Impl.dfm */ +/* C:\Codigo\Source\ApplicationBase\ProvinciasPoblaciones\Servidor\srvProvinciasPoblaciones_Impl.dfm */ +/* C:\Codigo\Source\Modulos\Gestion de documentos\Servidor\srvGestorDocumentos_Impl.dfm */ +/* c:\archivos de programa\codegear\rad studio\5.0\lib\DBPWDlg.dfm */ +/* c:\archivos de programa\codegear\rad studio\5.0\lib\DBLogDlg.dfm */ +/* c:\archivos de programa\codegear\rad studio\5.0\lib\DBCtrls.res */ +/* C:\Archivos de programa\RemObjects Software\Data Abstract for Delphi\Source\uDAReconcileDialogDetails.dfm */ +/* C:\Archivos de programa\RemObjects Software\Data Abstract for Delphi\Source\uDAReconcileDialog.dfm */ +/* C:\Codigo\Source\Modulos\Facturas de proveedor\Reports\uRptFacturasProveedor_Server.dfm */ +/* C:\Codigo\Source\Modulos\Recibos de proveedor\Reports\uRptRecibosProveedor_Server.dfm */ +/* C:\Codigo\Source\Modulos\Gestor de informes\Servidor\srvGestorInformes_Impl.dfm */ +/* C:\Codigo\Source\Servidor\FactuGES_Server.res */ +/* C:\Codigo\Source\Servidor\..\Servicios\RODLFile.res */ +/* C:\Codigo\Source\Servidor\FactuGES_Server.drf */ diff --git a/Source/Servidor/FactuGES_Server.groupproj b/Source/Servidor/FactuGES_Server.groupproj new file mode 100644 index 0000000..d86d61e --- /dev/null +++ b/Source/Servidor/FactuGES_Server.groupproj @@ -0,0 +1,34 @@ + + + {5a4cf240-2ee5-443f-895d-3232f63ddec6} + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Servidor/FactuGES_Server.identcache b/Source/Servidor/FactuGES_Server.identcache new file mode 100644 index 0000000..785703c Binary files /dev/null and b/Source/Servidor/FactuGES_Server.identcache differ diff --git a/Source/Servidor/FactuGES_Server.rc b/Source/Servidor/FactuGES_Server.rc new file mode 100644 index 0000000..5d15db2 --- /dev/null +++ b/Source/Servidor/FactuGES_Server.rc @@ -0,0 +1,24 @@ +MAINICON ICON "C:\Codigo\Resources\Iconos\Servidor.ico" +1 VERSIONINFO +FILEVERSION 1,8,3,0 +PRODUCTVERSION 1,8,3,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.8.3.0\0" + VALUE "ProductVersion", "1.8.3.0\0" + VALUE "CompileDate", "viernes, 06 de agosto de 2010 12:54\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Servidor/MidasSpeedFix.dcu b/Source/Servidor/MidasSpeedFix.dcu new file mode 100644 index 0000000..3bdfceb Binary files /dev/null and b/Source/Servidor/MidasSpeedFix.dcu differ diff --git a/Source/Servidor/RegExpr.dcu b/Source/Servidor/RegExpr.dcu new file mode 100644 index 0000000..c90302f Binary files /dev/null and b/Source/Servidor/RegExpr.dcu differ diff --git a/Source/Servidor/Utiles/AHWord97.dcu b/Source/Servidor/Utiles/AHWord97.dcu new file mode 100644 index 0000000..f6b95cd Binary files /dev/null and b/Source/Servidor/Utiles/AHWord97.dcu differ diff --git a/Source/Servidor/Utiles/AHWord97.pas b/Source/Servidor/Utiles/AHWord97.pas new file mode 100644 index 0000000..440d668 --- /dev/null +++ b/Source/Servidor/Utiles/AHWord97.pas @@ -0,0 +1,2217 @@ +unit AHWord97; + +interface + +(* + These objects are based on the TWordObject demo in the directory + C:\Program Files\Borland\DelphiX\Demos\Activex\Oleauto\Word8 + + This is the Delphi 4/5 version (separate version for Delphi 3) + + Feel free to add to this unit. My only condition is that you e-mail me your additions + and put in small comments indicating updates/changes (eg '<- added by JB 1/3/99') + and large comments where things are not obvious. + + You are free to use this unit in any program, even commercial (although I'd like to know + about where it is being used). You are not allowed to sell this, or a variation on it, as + that would be dishonest. If you give away your source code in a program and use this unit, + please keep this header so bugs/bug-fixes come to me. + + Dr Allan Harkness + Scotland + e-mail Allan@capturebeat.com + + Latest version available from www.capturebeat.com + + + History: see Word97 Hx.txt + Version 2.2 + + NB Event sinking will not work "as advertised" in Word 2000. I think this is because + MS have finally implemented Word application events properly and my code goes out of its way + to get round the bugs in version 97. If someone want to test the Word 2000 events (eg using + the Delphi components) and tell me exactly what causes them to fire, I may be able to change + the event code to work in Word 2000. I don't have Word 2000 so it's rather hard to test... + + NB If you wish to use Word 2000, make a compiler define for USE_WORD2K + Either put the following in the interface of appropriate units or better still, + use Project.Options.Conditional Defines to set this compiler define globally + {$DEFINE USE_WORD2K} + + NB As far as I am aware, a program compiled "use"ing any of the type libraries + should be able to talk to Word 97 and Word 2000. + This is because Word 2000 continues to support the Word 97 interfaces. + However, I would suggest you compile your program with the new Word2000.pas + provided in the Delphi 5 update. + If you define USE_WORD2K then my code will call the old version of some of the Word + methods (eg AddOld rather than Add). This compiler directive simply tells my code which + type library you are using - it will not use any new features found in Word 2000. + If you wish to use the new features in Word 2000 (eg macro parameters), + you can do so and cover yourself with an $IFDEF to make sure your code works + for Word 97 users too (if you need to). + + If you make references to the following type libraries in other units, copy the series of $IFDEF's + +*) + +{$DEFINE USE_WORD2K} + +uses + {$IFDEF USE_WORD2K} Word2000, {$ELSE} Word97, {$ENDIF} + {$IFDEF USE_WORD2K} Office2000, {$ELSE} Office97, {$ENDIF} + Windows, Classes, SysUtils, ActiveX, OleCtrls, Forms; + + +const + wdTrue : Integer = -1; + wdFalse : Integer = 0; + +type + TWordDoc = class; + TWordApp = class; + + TWordDocEvent = procedure (WordApp: TWordApp; WordDoc : TWordDoc) of object; + + TWordEventSink = class(TInterfacedObject, IUnknown, IDispatch) + private + FWordApp : TWordApp; + FAppDispatch: IDispatch; + FDocDispatch: IDispatch; + FAppDispIntfIID: TGUID; + FDocDispIntfIID: TGUID; + FAppConnection: Integer; + FDocConnection: Integer; + protected + { IUnknown } + function QueryInterface(const IID: TGUID; out Obj): HRESULT; stdcall; + function _AddRef: Integer; stdcall; + function _Release: Integer; stdcall; + { IDispatch } + function GetTypeInfoCount(out Count: Integer): HRESULT; stdcall; + function GetTypeInfo(Index, LocaleID: Integer; out TypeInfo): HRESULT; stdcall; + function GetIDsOfNames(const IID: TGUID; Names: Pointer; + NameCount, LocaleID: Integer; DispIDs: Pointer): HRESULT; stdcall; + function Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer; + Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HRESULT; stdcall; + public + constructor Create(WordApp : TWordApp; AnAppDispatch: IDispatch; const AnAppDispIntfIID, ADocDispIntfIID: TGUID); + destructor Destroy; override; + end; + + TWordApp = class + private + FComApp : _Application; + FComGlobal : _Global; + FUsedExisting : Boolean; + FEventSink : TWordEventSink; + FOnQuit : TNotifyEvent; + FOnChangeDocument : TWordDocEvent; + FOnOpenDocument : TWordDocEvent; + FOnPreCloseDocument : TNotifyEvent; + FOnCloseDocument : TWordDocEvent; + function GetCaption : String; + procedure SetCaption(Value : String); + function GetZoomPerCent : Integer; + procedure SetZoomPerCent (Value : Integer); + function GetVisible : Boolean; + procedure SetVisible(Value : Boolean); + function GetScreenUpdating : Boolean; + procedure SetScreenUpdating (Value : Boolean); + function GetWindowState : TOleEnum; + procedure SetWindowState (Value : TOleEnum); + function GetDocument(Index : Integer) : TWordDoc; + function GetNoOfDocuments : Integer; + function GetOnQuit : TNotifyEvent; + procedure SetOnQuit(Value : TNotifyEvent); + function GetOnChangeDocument : TWordDocEvent; + procedure SetOnChangeDocument(Value : TWordDocEvent); + function GetOnOpenDocument: TWordDocEvent; + procedure SetOnOpenDocument(Value : TWordDocEvent); + function GetOnPreCloseDocument: TNotifyEvent; + procedure SetOnPreCloseDocument(Value : TNotifyEvent); + function GetOnCloseDocument: TWordDocEvent; + procedure SetOnCloseDocument(Value : TWordDocEvent); + procedure FreeDocumentsAndSink; + protected + FDocuments : TList; + procedure RemoveDoc(Index : Integer); + procedure QuitAppEvent; + procedure PreCloseDocEvent; + procedure SyncWithWord; + procedure ChangeDocEvent; + public + constructor Create(UseExisting : Boolean = True; Sink : Boolean = True); + constructor CreateFromOleObject(OleObject : OleVariant; Sink : Boolean = True); + destructor Destroy; override; + destructor CloseApp(oeSaveChanges: TOleEnum); + + procedure DisableSystemCloseBox; + function AddNewDoc(Template : String) : TWordDoc; + function AddOpenDoc(DocName : String) : TWordDoc; + function AddActiveDoc : TWordDoc; + procedure CloseActiveDoc(oeSaveChanges: TOleEnum); + procedure InsertFile(FileName : string); overload; + procedure InsertFile(FileName, Bookmark : string); overload; + procedure Move(oeUnit : TOleEnum = wdCharacter; Count : Integer = 1); + procedure MoveEnd(oeUnit : TOleEnum = wdCharacter; Count : Integer = 1); + procedure MoveStart(oeUnit : TOleEnum = wdCharacter; Count : Integer = 1); + procedure MoveRight(oeUnit : TOleEnum = wdCharacter; Count : Integer = 1; Extend : TOleEnum = wdMove); + procedure MoveLeft(oeUnit : TOleEnum = wdCharacter; Count : Integer = 1; Extend : TOleEnum = wdMove); + procedure MoveUp(oeUnit : TOleEnum = wdLine; Count : Integer = 1; Extend : TOleEnum = wdMove); + procedure MoveDown(oeUnit : TOleEnum = wdLine; Count : Integer = 1; Extend : TOleEnum = wdMove); + procedure GotoBookmark(Bookmark : String); + procedure GoTo_(oeWhat, oeWhich : TOleEnum; oeCount: Integer = 1; oeName: String = ''); + procedure GoToNext(oeWhat : TOleEnum); + procedure GoToPrevious(oeWhat : TOleEnum); + procedure UpdateActiveDocFields; + Procedure RunMacro(MacroName : string); + procedure ScreenRefresh; + procedure Cut; + procedure Copy; + procedure Paste; + procedure Activate; + procedure InsertText(Text : String); + procedure PrintActiveDoc; + procedure SaveActiveDocAs(Filename : String); + procedure ZoomFullPage; + procedure ZoomFullWidth; + property Global : _Global read FComGlobal; + property Application : _Application read FComApp; + property UsedExisting : Boolean read FUsedExisting; + property Caption : String read GetCaption write SetCaption; + property Visible : Boolean read GetVisible write SetVisible; + property ZoomPerCent : Integer read GetZoomPerCent write SetZoomPerCent; + property ScreenUpdating : Boolean read GetScreenUpdating write SetScreenUpdating; + property WindowState : TOleEnum read GetWindowState write SetWindowState; + property Document [Index: Integer] : TWordDoc read GetDocument; + property NoOfDocuments : Integer read GetNoOfDocuments; + property OnQuit : TNotifyEvent read GetOnQuit write SetOnQuit; + property OnChangeDocument : TWordDocEvent read GetOnChangeDocument write SetOnChangeDocument; + property OnOpenDocument : TWordDocEvent read GetOnOpenDocument write SetOnOpenDocument; + property OnPreCloseDocument : TNotifyEvent read GetOnPreCloseDocument write SetOnPreCloseDocument; + property OnCloseDocument : TWordDocEvent read GetOnCloseDocument write SetOnCloseDocument; + end; + + TWordRange = class; + + TWordDocMode = (wdmCreating, wdmExisting, wdmDestroying); + + TWordDoc = class + private + FComDoc : _Document; + FWordApp : TWordApp; + FFullname : String; + FItemIndex : Integer; + function GetActive : Boolean; + procedure SetActive(Value : Boolean); + function GetRange(Index : Integer) : TWordRange; + function GetNoOfRanges : Integer; + function GetNoOfBookMarks : Integer; + function GetBookmarkByName (BookmarkName: String) : {$IFDEF USE_WORD2K} Word2000.Bookmark {$ELSE} Word97.Bookmark {$ENDIF}; + function GetBookmarkByIndex(Index: Integer) : {$IFDEF USE_WORD2K} Word2000.Bookmark {$ELSE} Word97.Bookmark {$ENDIF}; + procedure SetBuiltInProperty(Index : TOleEnum; Const Value: Variant); + function GetBuiltInProperty(Index : TOleEnum) : Variant; + procedure SetCustomProperty(Index : String; Const Value : Variant); + function GetCustomProperty(Index : String) : Variant; + function GetRTF : String; + procedure SetRTF (sRTF : String); + procedure FreeRangesAndRemoveDoc; + function GetAutoTextEntries : OleVariant; + protected + FMode : TWordDocMode; + FRanges : TList; + procedure RemoveRange(Index : Integer); + public + constructor CreateNewDoc(WordApp : TWordApp; Template : String); + constructor CreateOpenDoc(WordApp : TWordApp; FileName : String); + constructor CreateFromComDoc(WordApp : TWordApp; ComDoc : _Document); + constructor CreateFromActiveDoc(WordApp : TWordApp); + destructor Destroy; override; + destructor CloseDoc(oeSaveChanges: TOleEnum); + procedure Print; + procedure PrintPreview; + function AddRangeFromBookMark(BookmarkName : String) : TWordRange; + function AddRangeFromSelection : TWordRange; + function AddRangeFromDoc(iStart : Integer = 1; iEnd : Integer = 1) : TWordRange; + function AddRangeFromRange(ComRange : Range) : TWordRange; + function GoTo_(oeWhat, oeWhich : TOleEnum; oeCount: Integer = 1; oeName: String = '') : {$IFDEF USE_WORD2K} Word2000.Range {$ELSE} Word97.Range {$ENDIF}; + function GoToNext(oeWhat : TOleEnum) : {$IFDEF USE_WORD2K} Word2000.Range {$ELSE} Word97.Range {$ENDIF}; + function GoToPrevious(oeWhat : TOleEnum) : {$IFDEF USE_WORD2K} Word2000.Range {$ELSE} Word97.Range {$ENDIF}; + function GoToSection(NumSec: Integer = 1) : {$IFDEF USE_WORD2K} Word2000.Range {$ELSE} Word97.Range {$ENDIF}; + function NoOfPages (IncludeFootnotesAndEndnotes : Boolean = False) : Integer; + function NoOfWords (IncludeFootnotesAndEndnotes : Boolean = False) : Integer; + procedure ReplaceBookmark (BookmarkName, ReplaceText : String; ReassignBookmark : Boolean = True); + function BookmarkExists(BookmarkName : String): Boolean; + procedure AddCustomProperty(Index: String; Value : Variant; oePropertyType : TOleEnum); overload; + procedure AddCustomProperty(Index: String; Value : String); overload; + procedure AddCustomProperty(Index: String; Value : Integer); overload; + procedure AddCustomProperty(Index: String; Value : Double); overload; + procedure AddCustomProperty(Index: String; Value : TDateTime); overload; + procedure AddCustomProperty(Index: String; Value : Boolean); overload; + procedure DeleteCustomProperty(Index: String); + procedure DeleteRange(Index : Integer); + function DocStillInWord : Boolean; + procedure UpdateFields; + procedure UpdateFullname; + procedure SaveAs(Filename : String); + property WordApp : TWordApp read FWordApp; + property Document : _Document read FComDoc write FComDoc; + property Fullname : String read FFullname; + property Active : Boolean read GetActive write SetActive; + property AutoTextEntries : OleVariant read GetAutoTextEntries; + property Range [Index: Integer] : TWordRange read GetRange; + property NoOfRanges : Integer read GetNoOfRanges; + property BookmarkByIndex [Index: Integer] : Bookmark read GetBookmarkByIndex; + property Bookmark [BookmarkName: String] : Bookmark read GetBookmarkByName; + property NoOfBookmarks : Integer read GetNoOfBookmarks; + property BuiltInProperty [Index : TOleEnum] : Variant read GetBuiltInProperty write SetBuiltInProperty; + property CustomProperty [Index : String] : Variant read GetCustomProperty write SetCustomProperty; + property ItemIndex : Integer read FItemIndex; + property Mode : TWordDocMode read FMode; + property RTF : String read GetRTF write SetRTF; + end; + + TWordRange = class + private + FComRange : {$IFDEF USE_WORD2K} Word2000.Range {$ELSE} Word97.Range {$ENDIF}; + FWordDoc : TWordDoc; + FItemIndex : Integer; + procedure SetStart(Value : Integer); + function GetStart : Integer; + procedure SetEnd(Value : Integer); + function GetEnd : Integer; + procedure SetText(Value : String); + function GetText : String; + procedure SetBold(Value : Boolean); + function GetBold : Boolean; + procedure SetItalic(Value : Boolean); + function GetItalic : Boolean; + procedure SetUnderline(Value : Boolean); + function GetUnderline : Boolean; + procedure SetCase(oeValue : TOleEnum); + function GetCase :TOleEnum; + procedure SetFont(fFont : _Font); + function GetFont : _Font; + procedure SetStyle(Style : Variant); + function GetStyle : Variant; + protected + public + constructor CreateFromBookMark(WordDoc : TWordDoc; BookmarkName : String); + constructor CreateFromSelection(WordDoc : TWordDoc); + constructor CreateFromDoc(WordDoc : TWordDoc; iStart : Integer = 1; iEnd : Integer = 1); + constructor CreateFromRange(WordDoc : TWordDoc; ComRange : {$IFDEF USE_WORD2K} Word2000.Range {$ELSE} Word97.Range {$ENDIF}); + destructor Destroy; override; + procedure Collapse(oeDirection : TOleEnum = wdCollapseStart); + function EndOf(oeUnit : TOleEnum = wdWord; oeExtend : TOleEnum = wdMove) : Integer; + function Expand(oeUnit : TOleEnum = wdWord) : Integer; + function GoTo_(oeWhat, oeWhich : TOleEnum; oeCount: Integer = 1; oeName: String = '') : {$IFDEF USE_WORD2K} Word2000.Range {$ELSE} Word97.Range {$ENDIF}; + function GotoBookmark(BookmarkName : string) : {$IFDEF USE_WORD2K} Word2000.Range {$ELSE} Word97.Range {$ENDIF}; + function GoToNext(oeWhat : TOleEnum) : {$IFDEF USE_WORD2K} Word2000.Range {$ELSE} Word97.Range {$ENDIF}; + function GoToPrevious(oeWhat : TOleEnum) : {$IFDEF USE_WORD2K} Word2000.Range {$ELSE} Word97.Range {$ENDIF}; + function NoOfWords : Integer; + procedure InsertAfter(Text : String); + procedure InsertAutoText; + procedure InsertGivenAutoText (AutoText : String; UseRichText : Boolean = True); + procedure InsertBefore(Text : String); + procedure InsertBreak(oeType : TOleEnum = wdPageBreak); + procedure InsertParagraph; + procedure InsertParagraphAfter; + procedure InsertParagraphBefore; + procedure InsertSymbol(CharacterNumber: Integer; Font: String; + Unicode: Boolean = False; oeBias : TOleEnum = wdFontBiasDefault); + function Move(oeUnit : TOleEnum = wdCharacter; oeCount : Integer = 1) : Integer; + function MoveWhile(Cset : String; Count : Integer = wdForward) : Integer; + function MoveUntil(Cset : String; Count : Integer = wdForward) : Integer; + function MoveStart(oeUnit : TOleEnum = wdCharacter; oeCount : Integer = 1) : Integer; + function MoveStartWhile(Cset : String; Count : Integer = wdForward) : Integer; + function MoveStartUntil(Cset : String; Count : Integer = wdForward) : Integer; + function MoveEnd(oeUnit : TOleEnum = wdCharacter; oeCount : Integer = 1) : Integer; + function MoveEndUntil(Cset : String; Count : Integer = wdForward) : Integer; + function MoveEndWhile(Cset : String; Count : Integer = wdForward) : Integer; + function Next(oeUnit : TOleEnum = wdCharacter; oeCount : Integer = 1) : {$IFDEF USE_WORD2K} Word2000.Range {$ELSE} Word97.Range {$ENDIF}; + function Previous(oeUnit : TOleEnum = wdCharacter; oeCount : Integer = 1) : {$IFDEF USE_WORD2K} Word2000.Range {$ELSE} Word97.Range {$ENDIF}; + function GetNextRange(oeUnit : TOleEnum = wdCharacter; oeCount : Integer = 1) : {$IFDEF USE_WORD2K} Word2000.Range {$ELSE} Word97.Range {$ENDIF}; + function GetPreviousRange(oeUnit : TOleEnum = wdCharacter; oeCount : Integer = 1) : {$IFDEF USE_WORD2K} Word2000.Range {$ELSE} Word97.Range {$ENDIF}; + procedure SetRange(iStart, iEnd : Integer); + function StartOf(oeUnit : TOleEnum = wdWord; oeExtend : TOleEnum = wdMove) : Integer; + procedure CreateBookMark(BookmarkName : String); + procedure Select; + procedure Cut; + procedure Copy; + procedure Paste; + + property Range : {$IFDEF USE_WORD2K} Word2000.Range {$ELSE} Word97.Range {$ENDIF} read FComRange write FComRange; + property WordDoc : TWordDoc read FWordDoc; + property Start : Integer read GetStart write SetStart; + property End_ : Integer read GetEnd write SetEnd; + property Text : String read GetText write SetText; + property Bold : Boolean read GetBold write SetBold; + property Italic : Boolean read GetItalic write SetItalic; + property Underline : Boolean read GetUnderline write SetUnderline; + property Case_ : TOleEnum read GetCase write SetCase; + property Font : _Font read GetFont write SetFont; + property Style : Variant read GetStyle write SetStyle; + property ItemIndex : Integer read FItemIndex; + end; + +function ImprimirDoc(Fichero : String) : Boolean; + +implementation + +uses + Variants, ComObj; + +{ General purpose routines } + +function GetRTFFormat(DataObject: IDataObject; var RTFFormat: TFormatEtc): Boolean; +var + Formats: IEnumFORMATETC; + TempFormat: TFormatEtc; + cfRTF: LongWord; + Found: Boolean; +begin + try + OleCheck(DataObject.EnumFormatEtc(DATADIR_GET, Formats)); + cfRTF := RegisterClipboardFormat('Rich Text Format'); + Found := False; + while (not Found) and (Formats.Next(1, TempFormat, nil) = S_OK) do + if (TempFormat.cfFormat = cfRTF) then begin + RTFFormat := TempFormat; + Found := True; + end; + Result := Found; + except + Result := False; + end; +end; + +{ TWordEventSink implementation } + +constructor TWordEventSink.Create(WordApp : TWordApp; AnAppDispatch: IDispatch; const AnAppDispIntfIID, ADocDispIntfIID: TGUID); +begin + inherited Create; + + FWordApp := WordApp; + FAppDispIntfIID := AnAppDispIntfIID; + FDocDispIntfIID := ADocDispIntfIID; + FAppDispatch := AnAppDispatch; + + // Hook the sink up to the automation server (Word97) + InterfaceConnect(FAppDispatch,FAppDispIntfIID,Self,FAppConnection); +end; + +destructor TWordEventSink.Destroy; +begin + // Unhook the sink from the automation server (Word97) + InterfaceDisconnect(FAppDispatch,FAppDispIntfIID,FAppConnection); + + inherited Destroy; +end; + +function TWordEventSink.QueryInterface(const IID: TGUID; out Obj): HRESULT; +begin + // We need to return the two event interfaces when they're asked for + Result := E_NOINTERFACE; + if GetInterface(IID,Obj) then + Result := S_OK; + if IsEqualGUID(IID,FAppDispIntfIID) and GetInterface(IDispatch,Obj) then + Result := S_OK; + if IsEqualGUID(IID,FDocDispIntfIID) and GetInterface(IDispatch,Obj) then + Result := S_OK; +end; + +function TWordEventSink._AddRef: Integer; +begin +// Skeleton implementation + Result := 2; +end; + +function TWordEventSink._Release: Integer; +begin +// Skeleton implementation + Result := 1; +end; + +function TWordEventSink.GetTypeInfoCount(out Count: Integer): HRESULT; +begin +// Skeleton implementation + Count := 0; + Result := S_OK; +end; + +function TWordEventSink.GetTypeInfo(Index, LocaleID: Integer; out TypeInfo): HRESULT; +begin +// Skeleton implementation + Result := E_NOTIMPL; +end; + +function TWordEventSink.GetIDsOfNames(const IID: TGUID; Names: Pointer; + NameCount, LocaleID: Integer; DispIDs: Pointer): HRESULT; +begin +// Skeleton implementation + Result := E_NOTIMPL; +end; + +function TWordEventSink.Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer; + Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HRESULT; +begin + // Fire the different event handlers when the different event methods are invoked + // Only do this if FDocuments has not been destroyed. + // Usually the "closing events" occur before FreeDocumentsAndSink when TWordApp is + // destroyed. This results in a clean clear-up. However occasionally the "closing events" + // occurs after FreeDocumentsAndSink where any reference to FDocuments will cause an + // exception. I cannot seem to predict/prevent this and may be due to message queues. + // Therefor in this situation, the event sink will not fire closing/quiting events. + if FWordApp.FDocuments <> nil then + case DispID of + 2 : FWordApp.QuitAppEvent; + 3 : begin + FWordApp.ChangeDocEvent; + // When we see a document change, we also need to disconnect the + // sink from the old document, and hook it up to the new document + InterfaceDisconnect(FDocDispatch,FDocDispIntfIID,FDocConnection); + try + // Added check for *any* document before trying to connect to it + // Otherwise closing the last document causes an exception here + // Note Word events are unreliable - in my demo:- + // Closing a document -> DispID 6 and then 3 !!! + // Opening a document -> DispID 3 but not 5 !!! + if _Application(FAppDispatch).Documents.Count > 0 then + begin + FDocDispatch := _Application(FAppDispatch).ActiveDocument; + InterfaceConnect(FDocDispatch,FDocDispIntfIID,Self,FDocConnection); + end; + except; + end; + end; + {4 : if Assigned(FWordApp.OnNewDocument) then // never seems to be called + FWordApp.OnNewDocument(FWordApp, nil);} + {5 : if Assigned(FWordApp.OnOpenDocument) then // never seems to be called + FWordApp.OnOpenDocument(FWordApp, nil);} + 6 : FWordApp.PreCloseDocEvent; + end; + Result := S_OK; +end; + +{ TWordApp implementation } + +constructor TWordApp.Create(UseExisting : Boolean = True; Sink : Boolean = True); +var + TempIUnknown : IUnknown; + Result: HResult; +begin + inherited Create; + FUsedExisting := False; + if UseExisting then + begin + Result := GetActiveObject(CLASS_WordApplication, nil, TempIUnknown); + if Result = MK_E_UNAVAILABLE then // Word application does not exist + FComApp := CoWordApplication.Create + else + begin // Word application exists + // make sure no other error occured while trying to get Application class + OleCheck(Result); + // get _Application interface from TempIUnknown + OleCheck(TempIUnknown.QueryInterface(_Application, FComApp)); + FUsedExisting := True; // actually got an existing instance + end; + end + else + FComApp := CoWordApplication.Create; + + //Now get global object + {$IFDEF USE_WORD2K} + FComGlobal := CoWordGlobal.Create; + {$ELSE} + FComGlobal := CoGlobal.Create; + {$ENDIF} + + if Sink then // Create the event sink if required + FEventSink := TWordEventSink.Create(Self,FComApp,ApplicationEvents,DocumentEvents) + else + FEventSink := nil; + FDocuments := TList.Create; + if FUsedExisting then SyncWithWord; +end; + +constructor TWordApp.CreateFromOleObject(OleObject : OleVariant; Sink : Boolean = True); +begin + inherited Create; + FUsedExisting := False; + try + FComApp := IDISPATCH (OleObject.Application) as WordApplication; + {$IFDEF USE_WORD2K} + FComGlobal := CoWordGlobal.Create; + {$ELSE} + FComGlobal := CoGlobal.Create; + {$ENDIF} + FUsedExisting := True; // actually got an existing instance + except + raise Exception.Create ('Word not active in OLE container'); + end; + if Sink then + FEventSink := TWordEventSink.Create(Self,FComApp,ApplicationEvents,DocumentEvents) + else + FEventSink := nil; + FDocuments := TList.Create; + if FUsedExisting then SyncWithWord; +end; + +procedure TWordApp.FreeDocumentsAndSink; +var + i : Integer; +begin + // faster to free if we go backward + // also when a document is destroyed it removes itself from this list + if FDocuments.Count > 0 then + for i := FDocuments.Count - 1 downto 0 do + if Assigned (FDocuments [i]) then + TWordDoc (FDocuments [i]).Free; + FEventSink := nil; + FDocuments.Free; + FDocuments := nil; +end; + +destructor TWordApp.Destroy; +begin + FreeDocumentsAndSink; + inherited Destroy; +end; + +destructor TWordApp.CloseApp(oeSaveChanges: TOleEnum); +var + ovSaveChanges, + OriginalFormat, + RouteDocument : OleVariant; +begin + ovSaveChanges := oeSaveChanges; //wdDoNotSaveChanges + OriginalFormat := EmptyParam; + RouteDocument := EmptyParam; + FComApp.Quit (ovSaveChanges, OriginalFormat, RouteDocument); + FreeDocumentsAndSink; + inherited Destroy; +end; + +procedure TWordApp.DisableSystemCloseBox; +var + hWordWIndow : HWND; + hSysMenu : HMENU; +begin + // Find the Word 97 handle + hWordWindow := FindWindow ('OpusApp', nil); + if hWordWindow <> 0 then + begin + hSysMenu := GetSystemMenu (hWordWindow, false); + EnableMenuItem (hSysMenu, SC_CLOSE, MF_BYCOMMAND or MF_GRAYED) + end; +end; + +procedure TWordApp.SetCaption(Value : String); +begin + FComApp.Caption := Value; +end; + +function TWordApp.GetCaption : String; +begin + Result := FComApp.Caption; +end; + +procedure TWordApp.ZoomFullPage; +begin + FComApp.ActiveWindow.View.Zoom.PageFit := wdPageFitFullPage; +end; + +procedure TWordApp.ZoomFullWidth; +begin + FComApp.ActiveWindow.View.Zoom.PageFit := wdPageFitBestFit; +end; + +procedure TWordApp.SetZoomPerCent (Value : Integer); +begin + FComApp.ActiveWindow.View.Zoom.Percentage := Value; +end; + +function TWordApp.GetZoomPerCent : Integer; +begin + Result := FComApp.ActiveWindow.View.Zoom.Percentage; +end; + +procedure TWordApp.SetVisible(Value : Boolean); +begin + FComApp.Visible := Value; +end; + +function TWordApp.GetVisible : Boolean; +begin + Result := FComApp.Visible; +end; + +function TWordApp.GetDocument(Index : Integer) : TWordDoc; +begin + Assert ((Index >= 0) and (Index < FDocuments.Count), + 'Index out of range for GetDocument (' + IntToStr (Index) + ')'); + GetDocument := TWordDoc (FDocuments [Index]); +end; + +function TWordApp.GetNoOfDocuments : Integer; +begin + GetNoOfDocuments := FDocuments.Count; +end; + +procedure TWordApp.RemoveDoc(Index : Integer); +// remove Document object from list (but do not free it) +// should rarely be used as onus then on developer to free this Document object +var + i : Integer; + wd : TWordDoc; +begin + Assert ((Index >= 0) and (Index < FDocuments.Count), + 'Index out of range for RemoveDocument (' + IntToStr (Index) + ')'); + FDocuments.Delete (Index); + i := Index; + while i < FDocuments.Count do + begin + wd := TWordDoc (FDocuments [i]); + if Assigned (wd) then wd.FItemIndex := i; + inc (i); + end; +end; + +function TWordApp.GetOnQuit : TNotifyEvent; +begin + Result := FOnQuit; +end; + +procedure TWordApp.SetOnQuit(Value : TNotifyEvent); +begin + FOnQuit := Value; +end; + +function TWordApp.GetOnChangeDocument : TWordDocEvent; +begin + Result := FOnChangeDocument; +end; + +procedure TWordApp.SetOnChangeDocument(Value : TWordDocEvent); +begin + FOnChangeDocument := Value; +end; + +function TWordApp.GetOnOpenDocument : TWordDocEvent; +begin + Result := FOnOpenDocument; +end; + +procedure TWordApp.SetOnOpenDocument(Value : TWordDocEvent); +begin + FOnOpenDocument := Value; +end; + +function TWordApp.GetOnPreCloseDocument : TNotifyEvent; +begin + Result := FOnPreCloseDocument; +end; + +procedure TWordApp.SetOnPreCloseDocument(Value : TNotifyEvent); +begin + FOnPreCloseDocument := Value; +end; + +function TWordApp.GetOnCloseDocument : TWordDocEvent; +begin + Result := FOnCloseDocument; +end; + +procedure TWordApp.SetOnCloseDocument(Value : TWordDocEvent); +begin + FOnCloseDocument := Value; +end; + +procedure TWordApp.InsertText(Text : String); +begin + FComApp.Selection.TypeText(Text); +end; + +function TWordApp.AddNewDoc(Template : String) : TWordDoc; +var + wd : TWordDoc; +begin + wd := TWordDoc.CreateNewDoc (Self, Template); + AddNewDoc := wd; +end; + +function TWordApp.AddOpenDoc (DocName : String) : TWordDoc; +var + wd : TWordDoc; +begin + wd := TWordDoc.CreateOpenDoc (Self, DocName); + AddOpenDoc := wd; +end; + +function TWordApp.AddActiveDoc : TWordDoc; +// tries to see if active doc in list & just return it +// else try to get active doc from Word +// if no active doc then return nil and leave list alone +var + wd : TWordDoc; + i : Integer; +begin + wd := nil; + i := 0; + while (i < FDocuments.Count) and (wd = nil) do + begin + wd := TWordDoc (FDocuments [i]); + if not wd.Active then wd := nil; + inc (i) + end; + if wd = nil then + begin + wd := TWordDoc.CreateFromActiveDoc (Self); + if wd.FComDoc = nil then + begin + wd.Destroy; + wd := nil + end + end; + AddActiveDoc := wd; +end; + +procedure TWordApp.CloseActiveDoc(oeSaveChanges: TOleEnum); +var + wd : TWordDoc; +begin + wd := AddActiveDoc; + if wd <> nil then wd.CloseDoc (oeSaveChanges); +end; + +procedure TWordApp.PrintActiveDoc; +begin + {$IFDEF USE_WORD2K} + FComApp.PrintOutOld (EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, + EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, + EmptyParam, EmptyParam, EmptyParam) + {$ELSE} + FComApp.PrintOut (EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, + EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, + EmptyParam, EmptyParam, EmptyParam) + {$ENDIF} +end; + +procedure TWordApp.SaveActiveDocAs(Filename : String); +var + wd : TWordDoc; +begin + wd := AddActiveDoc; + if wd <> nil then wd.SaveAs (Filename); +end; + +procedure TWordApp.QuitAppEvent; +var + MyDoc : TWordDoc; + iMyDocs : Integer; +begin + iMyDocs := FDocuments.Count; + while iMyDocs > 0 do + begin + MyDoc := TWordDoc (FDocuments [iMyDocs - 1]); + if Assigned (FOnCloseDocument) then FOnCloseDocument (Self, MyDoc); + if MyDoc.Mode <> wdmDestroying then MyDoc.Free; // will remove document too + Dec (iMyDocs); + end; + if Assigned (FOnQuit) then FOnQuit (Self); +end; + +procedure TWordApp.PreCloseDocEvent; +var + wd : TWordDoc; +begin + // The pre-close event is really what Word sends as a close event + // However, it occurs before the document closes. The document is still + // accessible using COM. If there a changes, Word may display the + // "Do you want Save ..." dialog + // If the user cancels, the document won't actually close + // There is no way to know which document is about to close but usually + // it is the active document (but not necessarily) + // If the user tries to quits Word and there are documents present, + // you will get just one pre-close event and no way to know that actually the + // whole shebang is about to disappear. Don't you just love Word? + // This is why no document is passes in this event + // (Note I update the active document's name here in case this is useful + // in the OnClose event, when you can no longer use COM) + // After such a pre-close event you will get a quit event, however, if + // there are no documents present when the user quits, you get no events! + wd := AddActiveDoc; + if wd <> nil then wd.UpdateFullname; + if Assigned (FOnPreCloseDocument) then FOnPreCloseDocument (Self); +end; + +procedure TWordApp.SyncWithWord; +var + MyDoc : TWordDoc; + WdDoc : _Document; + iWrdDocs, iMyDocs : OleVariant; +begin + // The change event occurs when many events occur. By looking to see what + // has actually changed, I can fire off sensible events. + // First lets see if there are any missing documents + // If there are, generate a close event for the document and free it + // NB the COM document is NOT accessible in the close event as Word has + // already destroyed it by now. To catch a closing document where you can + // still get at the COM document, see the pre-close event - but NB it is + // not reliably called by Word + iMyDocs := 0; + while iMyDocs < FDocuments.Count do + begin + MyDoc := TWordDoc (FDocuments [iMyDocs]); + iWrdDocs := 1; + WdDoc := nil; + while (iWrdDocs <= FComApp.Documents.Count) and (WdDoc = nil) do + begin + WdDoc := FComApp.Documents.Item (iWrdDocs); + if MyDoc.Document <> WdDoc then WdDoc := nil; + iWrdDocs := iWrdDocs + 1; + end; + if WdDoc = nil then + begin + if Assigned (FOnCloseDocument) then FOnCloseDocument (Self, MyDoc); + if MyDoc.Mode <> wdmDestroying then MyDoc.Free; + end; + iMyDocs := iMyDocs + 1; + end; + + // Now lets see if there are any new documents + // If there are, add them to my list and generate an open doc event + iWrdDocs := 1; + while iWrdDocs <= FComApp.Documents.Count do + begin + WdDoc := FComApp.Documents.Item (iWrdDocs); + iMyDocs := 0; + MyDoc := nil; + while (iMyDocs < FDocuments.Count) and (MyDoc = nil) do + begin + MyDoc := TWordDoc (FDocuments [iMyDocs]); + if MyDoc.Document <> WdDoc then MyDoc := nil; + iMyDocs := iMyDocs + 1; + end; + if MyDoc = nil then TWordDoc.CreateFromComDoc (Self, WdDoc); + iWrdDocs := iWrdDocs + 1; + end; +end; + +procedure TWordApp.ChangeDocEvent; +begin + SyncWithWord; + if (FComApp.Documents.Count > 0) and (Assigned (FOnChangeDocument)) then + FOnChangeDocument (Self, AddActiveDoc); +end; + +procedure TWordApp.Move(oeUnit : TOleEnum = wdCharacter; Count : Integer = 1); +var + ovUnit : OleVariant; + ovCount : OleVariant; +begin + ovUnit := oeUnit; + ovCount := Count; + + FComApp.selection.Move(ovUnit, ovCount); +end; + +procedure TWordApp.MoveEnd(oeUnit : TOleEnum = wdCharacter; Count : Integer = 1); +var + ovUnit : OleVariant; + ovCount : OleVariant; +begin + ovUnit := oeUnit; + ovCount := Count; + + FComApp.selection.MoveEnd(ovUnit, ovCount); +end; + +procedure TWordApp.MoveStart(oeUnit : TOleEnum = wdCharacter; Count : Integer = 1); +var + ovUnit : OleVariant; + ovCount : OleVariant; +begin + ovUnit := oeUnit; + ovCount := Count; + + FComApp.selection.MoveStart(ovUnit, ovCount); +end; + +procedure TWordApp.MoveLeft(oeUnit : TOleEnum = wdCharacter; Count : Integer = 1; Extend : TOleEnum = wdMove); +var + ovUnit : OleVariant; + ovCount : OleVariant; + ovExtend : OleVariant; +begin + ovUnit := oeUnit; + ovCount := Count; + ovExtend := Extend; + + FComApp.selection.MoveLeft(ovUnit, ovCount, ovExtend); +end; + +procedure TWordApp.MoveRight(oeUnit : TOleEnum = wdCharacter; Count : Integer = 1; Extend : TOleEnum = wdMove); +var + ovUnit : OleVariant; + ovCount : OleVariant; + ovExtend : OleVariant; +begin + ovUnit := oeUnit; + ovCount := Count; + ovExtend := Extend; + + FComApp.selection.MoveRight(ovUnit, ovCount, ovExtend); +end; + +procedure TWordApp.MoveUp(oeUnit : TOleEnum = wdLine; Count : Integer = 1; Extend : TOleEnum = wdMove); +var + ovUnit : OleVariant; + ovCount : OleVariant; + ovExtend : OleVariant; +begin + ovUnit := oeUnit; + ovCount := Count; + ovExtend := Extend; + + FComApp.selection.MoveUp(ovUnit, ovCount, ovExtend); +end; + +procedure TWordApp.MoveDown(oeUnit : TOleEnum = wdLine; Count : Integer = 1; Extend : TOleEnum = wdMove); +var + ovUnit : OleVariant; + ovCount : OleVariant; + ovExtend : OleVariant; +begin + ovUnit := oeUnit; + ovCount := Count; + ovExtend := Extend; + + FComApp.selection.MoveDown(ovUnit, ovCount, ovExtend); +end; + +procedure TWordApp.GoTo_(oeWhat, oeWhich: TOleEnum; oeCount: Integer = 1; oeName: String = ''); +var + ovWhat, ovWhich, ovCount, ovName : OleVariant; +begin + ovWhat := oeWhat; + ovWhich := oeWhich; + ovCount := oeCount; + if oeName = '' then + ovName := EmptyParam + else + ovName := oeName; + FComApp.Selection.GoTo_ (ovWhat, ovWhich, ovCount, ovName); +end; + +procedure TWordApp.GoToNext(oeWhat: TOleEnum); +var + ovWhat : OleVariant; +begin + ovWhat := oeWhat; + FComApp.Selection.GoToNext (ovWhat); +end; + +procedure TWordApp.GoToPrevious(oeWhat: TOleEnum); +var + ovWhat : OleVariant; +begin + ovWhat := oeWhat; + FComApp.Selection.GoToPrevious (ovWhat); +end; + +procedure TWordApp.GotoBookmark(Bookmark : string); +var + What : OLEVariant; + Which : OLEVariant; + Count : OLEVariant; + Name : OLEVariant; +begin + What := wdGoToBookmark; + Which := EmptyParam; + Count := EmptyParam; + Name := Bookmark; + + FComApp.Selection.GoTo_(What, Which, Count, Name); +end; + +procedure TWordApp.Cut; +begin + FComApp.Selection.Cut; +end; + +procedure TWordApp.Copy; +begin + FComApp.Selection.Copy; +end; + +procedure TWordApp.Paste; +begin + FComApp.Selection.Paste; +end; + +procedure TWordApp.Activate; +begin + FComApp.Activate; +end; + +procedure TWordApp.UpdateActiveDocFields; +begin + FComApp.ActiveDocument.Fields.Update; +end; + +procedure TWordApp.RunMacro(MacroName : string); +begin + {$IFDEF USE_WORD2K} + FComApp.RunOld(MacroName); + {$ELSE} + FComApp.Run(MacroName); + {$ENDIF} + + // NB in Word 2000, to run a macro with parameters use late binding, ie + // OleVariant(WordApp.Application).Run (MacroName, varg1, varg2..varg30) + // Where WordApp is the name of your TWordApp variable + // It is not worth using an early bound method call here because of all the + // optional parameters +end; + +procedure TWordApp.ScreenRefresh; +begin + FComApp.ScreenRefresh; +end; + +function TWordApp.GetScreenUpdating : Boolean; +begin + GetScreenUpdating := FComApp.ScreenUpdating; +end; + +procedure TWordApp.SetScreenUpdating (Value : Boolean); +begin + FComApp.ScreenUpdating := Value; +end; + +function TWordApp.GetWindowState : TOleEnum; +begin + GetWindowState := FComApp.WindowState; +end; + +procedure TWordApp.SetWindowState (Value : TOleEnum); +begin + FComApp.WindowState := Value; +end; + +procedure TWordApp.InsertFile(FileName : string); +var + oAttachment : OleVariant; +begin + oAttachment := False; + Application.Selection.InsertFile(FileName,EmptyParam, EmptyParam, + EmptyParam, oAttachment); +end; + +procedure TWordApp.InsertFile(FileName, Bookmark : string); +begin + GotoBookmark(Bookmark); + InsertFile(FileName); +end; + +{ TWordDoc } + +constructor TWordDoc.CreateNewDoc(WordApp : TWordApp; Template: String); +var + DocTemplate, + NewTemplate, + ovDocumentType, + ovVisible : OleVariant; +begin + Create; + FMode := wdmCreating; + FItemIndex := -1; + FRanges := TList.Create; + DocTemplate := Template; + NewTemplate := False; + FWordApp := WordApp; + ovDocumentType := 0; + ovVisible := True; + FComDoc := FWordApp.FComApp.Documents.Add (DocTemplate, NewTemplate, ovDocumentType, ovVisible); + FItemIndex := FWordApp.NoOfDocuments; + FWordApp.FDocuments.Add (self); + // The following gives Word the opportunity to send events (eg open/change doc) + // since it requests the document's Fullname. + // It is important that the document has been added to the WordApp list so that + // the event handler sees the document and doesn't try to create it again + UpdateFullname; + if Assigned (WordApp.OnOpenDocument) then WordApp.OnOpenDocument (WordApp, Self); + FMode := wdmExisting; +end; + +constructor TWordDoc.CreateOpenDoc(WordApp : TWordApp; FileName: String); +var + ovFileName : OleVariant; +begin + Create; + FMode := wdmCreating; + FItemIndex := -1; + FRanges := TList.Create; + ovFileName := FileName; + FWordApp := WordApp; + {$IFDEF USE_WORD2K} + FComDoc := FWordApp.FComApp.Documents.OpenOld (ovFileName, EmptyParam, EmptyParam, EmptyParam, EmptyParam, + EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam); + {$ELSE} + FComDoc := FWordApp.FComApp.Documents.Open (ovFileName, EmptyParam, EmptyParam, EmptyParam, EmptyParam, + EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam); + {$ENDIF} + FItemIndex := FWordApp.NoOfDocuments; + FWordApp.FDocuments.Add (self); + // The following gives Word the opportunity to send events (eg open/change doc) + // since it requests the document's Fullname. + // It is important that the document has been added to the WordApp list so that + // the event handler sees the document and doesn't try to create it again + UpdateFullname; + if Assigned (WordApp.OnOpenDocument) then WordApp.OnOpenDocument (WordApp, Self); + FMode := wdmExisting; +end; + +constructor TWordDoc.CreateFromComDoc(WordApp : TWordApp; ComDoc : _Document); +begin + Create; + FMode := wdmCreating; + FItemIndex := -1; + FWordApp := WordApp; + FComDoc := ComDoc; + FItemIndex := FWordApp.NoOfDocuments; + FRanges := TList.Create; + FWordApp.FDocuments.Add (self); + // The following gives Word the opportunity to send events (eg open/change doc) + // since it requests the document's Fullname. + // It is important that the document has been added to the WordApp list so that + // the event handler sees the document and doesn't try to create it again + UpdateFullname; + if Assigned (WordApp.OnOpenDocument) then WordApp.OnOpenDocument (WordApp, Self); + FMode := wdmExisting; +end; + +constructor TWordDoc.CreateFromActiveDoc(WordApp : TWordApp); +begin + Create; + FMode := wdmCreating; + FItemIndex := -1; + FWordApp := WordApp; + FRanges := TList.Create; + if WordApp.FComApp.Documents.Count = 0 then + FComDoc := nil // indicates that no valid document + else + begin + FComDoc := FWordApp.FComApp.ActiveDocument; + FItemIndex := FWordApp.NoOfDocuments; + FWordApp.FDocuments.Add (self); + // The following gives Word the opportunity to send events (eg open/change doc) + // since it requests the document's Fullname. + // It is important that the document has been added to the WordApp list so that + // the event handler sees the document and doesn't try to create it again + UpdateFullname; + if Assigned (WordApp.OnOpenDocument) then WordApp.OnOpenDocument (WordApp, Self); + end; + FMode := wdmExisting; +end; + +function TWordDoc.DocStillInWord : Boolean; +// New function to check if document is still loaded in Word +// If user were to close document himself, further calls to FComDoc would +// generate an error. Therefor, you should check for the presence of the +// document before using the object, if user intervention could have occurred +// since the document was first created. This is most likely to be useful if +// you have a button on your program that closes Word or the document. +// NB if the user closes the document while your code is actively filling in +// the document, exceptions will still occur. Unless you check the document before +// every use of TWordDoc, you cannot get round this - you should warn users to leave +// well alone while your program does its magic. +var + i : OleVariant; + bPresent : boolean; + docs : Documents; +begin + bPresent := False; + i := 1; + docs := FWordApp.FComApp.Documents; + while (not bPresent) and (i <= docs.Count) do + begin + if docs.Item (i) = FComDoc then bPresent := True; + inc (i); + end; + Result := bPresent; +end; + +procedure TWordDoc.FreeRangesAndRemoveDoc; +var + i : Integer; +begin + if Assigned (FRanges) and (FRanges.Count > 0) then + for i := FRanges.Count - 1 downto 0 do // faster to free if we go backward + if Assigned (FRanges [i]) then + TWordRange (FRanges [i]).Free; + FRanges.Free; + if FItemIndex <> -1 then FWordApp.RemoveDoc (FItemIndex); +end; + +destructor TWordDoc.Destroy; +begin + FMode := wdmDestroying; + FreeRangesAndRemoveDoc; + inherited; +end; + +destructor TWordDoc.CloseDoc(oeSaveChanges: TOleEnum); +var + ovSaveChanges, + OriginalFormat, + RouteDocument : OleVariant; +begin + FMode := wdmDestroying; + ovSaveChanges := oeSaveChanges; + OriginalFormat := EmptyParam; + RouteDocument := EmptyParam; + FComDoc.Close (ovSaveChanges, OriginalFormat, RouteDocument); + Application.ProcessMessages; + FreeRangesAndRemoveDoc; + inherited Destroy; +end; + +function TWordDoc.GetActive : Boolean; +begin + if FWordApp.FComApp.ActiveDocument = nil then + GetActive := False + else + GetActive := (FWordApp.FComApp.ActiveDocument = FComDoc); +end; + +procedure TWordDoc.SetActive(Value: Boolean); +begin + FComDoc.Activate; +end; + +procedure TWordDoc.Print; +begin + {$IFDEF USE_WORD2K} + FComDoc.PrintOutOld (EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, + EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, + EmptyParam, EmptyParam) + {$ELSE} + FComDoc.PrintOut (EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, + EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, + EmptyParam, EmptyParam) + {$ENDIF} +end; + +procedure TWordDoc.PrintPreview; +begin + FComDoc.PrintPreview +end; + +procedure TWordDoc.SaveAs(Filename: String); +var + DocName : OleVariant; +begin + DocName := FileName; + FComDoc.SaveAs (DocName, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, + EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam); + UpdateFullname; +end; + +function TWordDoc.GetRTF : String; +var + DataObject: IDataObject; + RTFFormat: TFormatEtc; + ReturnData: TStgMedium; + iLen : Integer; + Buffer: PChar; + sRTF : String; +begin + FComDoc.QueryInterface(IDataObject, DataObject); + if GetRTFFormat(DataObject, RTFFormat) then + begin + OleCheck(DataObject.GetData(RTFFormat, ReturnData)); + try + //RTF is passed through global memory + Buffer := GlobalLock(ReturnData.hglobal); + //Buffer is a pointer to the RTF text + iLen := StrLen (Buffer); + SetLength (sRTF, iLen); + StrLCopy(PChar(sRTF), Buffer, iLen); + GetRTF := sRTF; + OleCheck (DataObject.SetData (RTFFormat, ReturnData, True)); + finally + GlobalUnlock(ReturnData.hglobal); + end; + end; +end; + +procedure TWordDoc.SetRTF (sRTF : String); +var + DataObject: IDataObject; + RTFFormat: TFormatEtc; + Medium: TStgMedium; + iLen : Integer; + Release : BOOL; +begin + //get the data object + OleCheck(FComDoc.QueryInterface(IDataObject, DataObject)); + //get the RTF & MetaFile format + if GetRTFFormat(DataObject, RTFFormat) then + begin + Assert(RTFFormat.cfFormat <> 0); + //set the data in the Word document (RTF) + iLen := Length(sRTF) + 1; + ZeroMemory(@Medium, sizeof(TStgMedium)); + Medium.tymed := RTFFormat.tymed; + Medium.unkForRelease := nil; + Medium.hGlobal := GlobalAlloc(GPTR or GMEM_SHARE, iLen); + CopyMemory(Pointer(Medium.hGlobal), pchar(sRTF), iLen); + Release := False; + DataObject.SetData(RTFFormat, Medium, Release); + GlobalFree(Medium.hGlobal); + end; +end; + +procedure TWordDoc.UpdateFields; +begin + FComDoc.Fields.Update; +end; + +procedure TWordDoc.UpdateFullname; +begin + FFullname := FComDoc.FullName; +end; + +function TWordDoc.AddRangeFromBookMark(BookmarkName : String) : TWordRange; +var + wr : TWordRange; +begin + wr := TWordRange.CreateFromBookMark (Self, BookMarkName); + AddRangeFromBookMark := wr; +end; + +function TWordDoc.AddRangeFromSelection : TWordRange; +var + wr : TWordRange; +begin + wr := TWordRange.CreateFromSelection (Self); + AddRangeFromSelection := wr; +end; + +function TWordDoc.AddRangeFromDoc(iStart : Integer = 1; iEnd : Integer = 1) : TWordRange; +var + wr : TWordRange; +begin + wr := TWordRange.CreateFromDoc (Self, iStart, iEnd); + AddRangeFromDoc := wr; +end; + +function TWordDoc.AddRangeFromRange(ComRange : Range) : TWordRange; +var + wr : TWordRange; +begin + wr := TWordRange.CreateFromRange (Self, ComRange); + AddRangeFromRange := wr; +end; + +function TWordDoc.GetRange(Index : Integer) : TWordRange; +begin + Assert ((Index >= 0) and (Index < FRanges.Count), + 'Index out of range for GetRange (' + IntToStr (Index) + ')'); + GetRange := TWordRange (FRanges [Index]); +end; + +function TWordDoc.GetNoOfRanges : Integer; +begin + GetNoOfRanges := FRanges.Count; +end; + +procedure TWordDoc.DeleteRange(Index : Integer); +// remove and free range object +begin + Assert ((Index >= 0) and (Index < FRanges.Count), + 'Index out of range for DeleteRange (' + IntToStr (Index) + ')'); + TWordRange (FRanges [Index]).Free; +end; + +procedure TWordDoc.RemoveRange(Index : Integer); +// remove range object from list (but do not free it) +// should rarely be used as onus then on developer to free this range object +var + i : Integer; + wr : TWordRange; +begin + Assert ((Index >= 0) and (Index < FRanges.Count), + 'Index out of range for RemoveRange (' + IntToStr (Index) + ')'); + FRanges.Delete (Index); + i := Index; + while i < FRanges.Count do + begin + wr := TWordRange (FRanges [i]); + if Assigned (wr) then wr.FItemIndex := wr.FItemIndex - 1; + inc (i); + end; +end; + +function TWordDoc.GoTo_(oeWhat, oeWhich: TOleEnum; oeCount: Integer = 1; oeName: String = '') : range; +var + ovWhat, ovWhich, ovCount, ovName : OleVariant; +begin + ovWhat := oeWhat; + ovWhich := oeWhich; + ovCount := oeCount; + if oeName = '' then + ovName := EmptyParam + else + ovName := oeName; + GoTo_ := FComDoc.Range (EmptyParam, EmptyParam).GoTo_ (ovWhat, ovWhich, ovCount, ovName); +end; + +function TWordDoc.GoToNext(oeWhat: TOleEnum) : {$IFDEF USE_WORD2K} Word2000.Range {$ELSE} Word97.Range {$ENDIF}; +var + ovWhat : OleVariant; +begin + ovWhat := oeWhat; + GotoNext := FComDoc.Range (EmptyParam, EmptyParam).GoToNext (ovWhat); +end; + +function TWordDoc.GoToPrevious(oeWhat: TOleEnum) : {$IFDEF USE_WORD2K} Word2000.Range {$ELSE} Word97.Range {$ENDIF}; +var + ovWhat : OleVariant; +begin + ovWhat := oeWhat; + GotoPrevious := FComDoc.Range (EmptyParam, EmptyParam).GoToPrevious (ovWhat); +end; + +function TWordDoc.GoToSection(NumSec: Integer = 1) : {$IFDEF USE_WORD2K} Word2000.Range {$ELSE} Word97.Range {$ENDIF}; +var + ovWhat : OleVariant; + ovWhich : OleVariant; + ovCount : OleVariant; +begin + ovWhat := wdGoToSection; + ovWhich := wdGoToFirst; + ovCount := NumSec; + GoToSection := FComDoc.Range(EmptyParam, EmptyParam).GoTo_(ovWhat, ovWhich, ovCount, EmptyParam); +end; + +function TWordDoc.NoOfPages (IncludeFootnotesAndEndnotes : Boolean = False) : Integer; +var + ovIncudeHF : OleVariant; +begin + ovIncudeHF := IncludeFootnotesAndEndnotes; + NoOfPages := FComDoc.ComputeStatistics (wdStatisticPages, ovIncudeHF) +end; + +function TWordDoc.NoOfWords (IncludeFootnotesAndEndnotes : Boolean = False) : Integer; +var + ovIncudeHF : OleVariant; +begin + ovIncudeHF := IncludeFootnotesAndEndnotes; + NoOfWords := FComDoc.ComputeStatistics (wdStatisticWords, ovIncudeHF) +end; + +function TWordDoc.GetNoOfBookMarks : Integer; +begin + GetNoOfBookMarks := FComDoc.Bookmarks.Count; +end; + +function TWordDoc.GetBookmarkByIndex (Index: Integer) : {$IFDEF USE_WORD2K} Word2000.Bookmark {$ELSE} Word97.Bookmark {$ENDIF}; +var + ovBookMarkName : OleVariant; +begin + Result := nil; + try + ovBookMarkName := Index; + Result := FComDoc.Bookmarks.Item(ovBookMarkName); + except + raise Exception.CreateFmt ('Bookmark No %d not found in document "%s"', + [Index, FComDoc.Name]); + end; +end; + +function TWordDoc.GetBookmarkByName (BookmarkName: String) : {$IFDEF USE_WORD2K} Word2000.Bookmark {$ELSE} Word97.Bookmark {$ENDIF}; +var + ovBookMarkName : OleVariant; +begin + Result := nil; + try + ovBookMarkName := BookmarkName; + Result := FComDoc.Bookmarks.Item(ovBookMarkName); + except + raise Exception.CreateFmt ('Bookmark "%s" not found in document "%s"', + [BookmarkName, FComDoc.Name]); + end; +end; + +procedure TWordDoc.ReplaceBookmark (BookmarkName, ReplaceText : String; ReassignBookmark : Boolean = True); +var + ovBookMarkName : OleVariant; + TempRange : {$IFDEF USE_WORD2K} Word2000.Range {$ELSE} Word97.Range {$ENDIF}; + ovRange : OleVariant; +begin + ovBookMarkName := BookMarkName; + try + TempRange := FComDoc.Bookmarks.Item (ovBookMarkName).Range; + TempRange.Text := ReplaceText; + ovRange := TempRange; + if ReassignBookMark then FComDoc.Bookmarks.Add (BookmarkName, ovRange); + except + raise Exception.CreateFmt ('Bookmark "%s" not found in document "%s"', + [BookMarkName, FComDoc.Name]); + end; +end; + +//added by BDP 07/22/1999 +function TWordDoc.BookmarkExists(BookmarkName : String): Boolean; +begin + if FComDoc.Bookmarks.Exists(BookmarkName) then + Result := True + else + Result := False; +end; + +function TWordDoc.GetAutoTextEntries : OleVariant; +begin + GetAutoTextEntries := FComDoc.Get_AttachedTemplate.AutoTextEntries; +end; + +procedure TWordDoc.SetBuiltInProperty(Index : TOleEnum; Const Value: Variant); +//added by BDP 05/08/1999 amended by AH 26/11/99 +var + DocumentProperties : OLEVariant; + DocumentProperty : OLEVariant; + ovValue : OLEVariant; +begin + try + ovValue := Value; + DocumentProperties := FComDoc.BuiltInDocumentProperties; + DocumentProperty := DocumentProperties.Item [Index]; + DocumentProperty.Value := ovValue; + except + raise Exception.CreateFmt ('Error setting document property: "%d"', [Index]); + end; +end; + +function TWordDoc.GetBuiltInProperty(Index : TOleEnum) : Variant; +//added by BDP 05/08/1999 amended by AH 26/11/99 +var + DocumentProperties : OLEVariant; + DocumentProperty : OLEVariant; +begin + try + DocumentProperties := FComDoc.BuiltInDocumentProperties; + DocumentProperty := DocumentProperties.Item [Index]; + Result := DocumentProperty.Value; + except + raise Exception.CreateFmt ('Error getting document property: "%d"', [Index]); + end; +end; + +procedure TWordDoc.SetCustomProperty(Index : String; Const Value : Variant); +//added by BDP 05/08/1999 amended by AH, bug fix 7/2/00 +var + CustomProperties : OLEVariant; + CustomProperty : OLEVariant; + ovValue : OLEVariant; +begin + try + CustomProperties := FComDoc.CustomDocumentProperties; + CustomProperty := CustomProperties.Item [Index]; + ovValue := Value; + CustomProperty.Value := ovValue; + except + raise Exception.CreateFmt ('Error setting custom property: "%s"', [Index]); + end; +end; + +function TWordDoc.GetCustomProperty(Index : String) : Variant; +//added by BDP 05/08/1999 +var + CustomProperties : OLEVariant; + CustomProperty : OLEVariant; +begin + try + CustomProperties := FComDoc.CustomDocumentProperties; + CustomProperty := CustomProperties.Item [Index]; + Result := CustomProperty.Value; + except + raise Exception.CreateFmt ('Error getting custom property: "%s"', [Index]); + end; +end; + +procedure TWordDoc.AddCustomProperty(Index: String; Value : Variant; oePropertyType : TOleEnum); +var + CustomProperties : OLEVariant; + ovValue : OLEVariant; +begin + try + CustomProperties := FComDoc.CustomDocumentProperties; + ovValue := Value; + CustomProperties.Add(Index, wdFalse, oePropertyType, ovValue); + except + raise Exception.CreateFmt ('Error creating custom property: "%s"', [Index]); + end; +end; + +procedure TWordDoc.AddCustomProperty(Index: String; Value : String); +begin + AddCustomProperty (Index, Value, msoPropertyTypeString); +end; + +procedure TWordDoc.AddCustomProperty(Index: String; Value : Integer); +begin + AddCustomProperty (Index, Value, msoPropertyTypeNumber); +end; + +procedure TWordDoc.AddCustomProperty(Index: String; Value : Double); +begin + AddCustomProperty (Index, Value, msoPropertyTypeFloat); +end; + +procedure TWordDoc.AddCustomProperty(Index: String; Value : TDateTime); +begin + AddCustomProperty (Index, Value, msoPropertyTypeDate); +end; + +procedure TWordDoc.AddCustomProperty(Index: String; Value : Boolean); +begin + AddCustomProperty (Index, Value, msoPropertyTypeBoolean); +end; + +procedure TWordDoc.DeleteCustomProperty(Index: String); +var + CustomProperties : OLEVariant; + CustomProperty : OLEVariant; +begin + try + CustomProperties := FComDoc.CustomDocumentProperties; + CustomProperty := CustomProperties.Item [Index]; + if not VarIsNull (CustomProperty) then CustomProperty.Delete; + except + raise Exception.CreateFmt ('Error deleting custom property: "%s"', [Index]); + end; +end; + +{ TWordRange } + +procedure TWordRange.Collapse(oeDirection: TOleEnum = wdCollapseStart); +var + ovDirection : OleVariant; +begin + ovDirection := oeDirection; + FComRange.Collapse (ovDirection); +end; + +constructor TWordRange.CreateFromBookMark(WordDoc: TWordDoc; BookmarkName: String); +var + ovBookMarkName : OleVariant; +begin + Create; + FItemIndex := -1; + ovBookMarkName := BookMarkName; + FWordDoc := WordDoc; + try + FComRange := FWordDoc.FComDoc.Bookmarks.Item (ovBookMarkName).Range; + FItemIndex := FWordDoc.NoOfRanges; + FWordDoc.FRanges.Add (self); + except + FComRange := nil; + raise Exception.CreateFmt ('Bookmark "%s" not found in document "%s"', + [BookMarkName, FWordDoc.FComDoc.Name]); + // NB raising an exception here will cause TWordRange.Destroy to be called + // The exception will be from trying to get an invalid bookmark + // ie before ItemIndex is given a valid number, hence preset to -1 + // TWordRange.Destroy will only try to remove the range from the TWordDoc list + // if ItemIndex <> -1 + end +end; + +constructor TWordRange.CreateFromSelection(WordDoc : TWordDoc); +begin + Create; + FItemIndex := -1; + FWordDoc := WordDoc; + FComRange := FWordDoc.WordApp.Application.Selection.Range; + FItemIndex := FWordDoc.NoOfRanges; + FWordDoc.FRanges.Add (self); +end; + +constructor TWordRange.CreateFromDoc(WordDoc : TWordDoc; iStart : Integer = 1; iEnd : Integer = 1); +var + ovStart, ovEnd : OleVariant; +begin + Create; + FItemIndex := -1; + ovStart := iStart; + ovEnd := iEnd; + FWordDoc := WordDoc; + FComRange := FWordDoc.FComDoc.Range (ovStart, ovEnd); + FItemIndex := FWordDoc.NoOfRanges; + FWordDoc.FRanges.Add (self); +end; + +constructor TWordRange.CreateFromRange(WordDoc : TWordDoc; ComRange : {$IFDEF USE_WORD2K} Word2000.Range {$ELSE} Word97.Range {$ENDIF}); +begin + Create; + FItemIndex := -1; + FWordDoc := WordDoc; + FComRange := ComRange; + FItemIndex := FWordDoc.NoOfRanges; + FWordDoc.FRanges.Add (self); +end; + +destructor TWordRange.Destroy; +begin + if FItemIndex <> -1 then FWordDoc.RemoveRange (FItemIndex); + inherited; +end; + +function TWordRange.EndOf(oeUnit : TOleEnum = wdWord; oeExtend : TOleEnum = wdMove) : Integer; +var + ovUnit, + ovExtend : OleVariant; +begin + ovUnit := oeUnit; + ovExtend := oeExtend; + EndOf := FComRange.EndOf (ovUnit, ovExtend); +end; + +function TWordRange.Expand(oeUnit: TOleEnum = wdWord) : Integer; +var + ovUnit : OleVariant; +begin + ovUnit := oeUnit; + Expand := FComRange.Expand (ovUnit); +end; + +function TWordRange.GetBold: Boolean; +begin + GetBold := FComRange.Bold = wdTrue; +end; + +function TWordRange.GetCase: TOleEnum; +begin + GetCase := FComRange.Case_ +end; + +function TWordRange.GetEnd: Integer; +begin + GetEnd := FComRange.End_; +end; + +function TWordRange.GetFont: _Font; +begin + GetFont := FComRange.Font; +end; + +function TWordRange.GetItalic: Boolean; +begin + GetItalic := FComRange.Italic = wdTrue +end; + +function TWordRange.GetStart: Integer; +begin + GetStart := FComRange.Start; +end; + +function TWordRange.GetStyle: Variant; +begin + GetStyle := FComRange.Get_Style; +end; + +function TWordRange.GetText: String; +begin + GetText := FComRange.Text; +end; + +function TWordRange.GetUnderline: Boolean; +begin + GetUnderline := FComRange.Underline = wdTrue +end; + +function TWordRange.GoTo_(oeWhat, oeWhich: TOleEnum; oeCount: Integer = 1; oeName: String = '') : {$IFDEF USE_WORD2K} Word2000.Range {$ELSE} Word97.Range {$ENDIF}; +var + ovWhat, ovWhich, ovCount, ovName : OleVariant; +begin + ovWhat := oeWhat; + ovWhich := oeWhich; + ovCount := oeCount; + if oeName = '' then + ovName := EmptyParam + else + ovName := oeName; + FComRange := FComRange.GoTo_ (ovWhat, ovWhich, ovCount, ovName); + Goto_ := FComRange; +end; + +function TWordRange.GotoBookmark(BookmarkName : string) : {$IFDEF USE_WORD2K} Word2000.Range {$ELSE} Word97.Range {$ENDIF}; +var + What : OLEVariant; + Which : OLEVariant; + Count : OLEVariant; + Name : OLEVariant; +begin + What := wdGoToBookmark; + Which := EmptyParam; + Count := EmptyParam; + Name := BookmarkName; + try + FComRange := FComRange.GoTo_(What, Which, Count, Name); + except + FComRange := nil; + raise Exception.CreateFmt ('Bookmark "%s" not found in document "%s"', + [BookMarkName, FWordDoc.FComDoc.Name]); + end; + GotoBookmark := FComRange; +end; + +function TWordRange.GoToNext(oeWhat: TOleEnum) : {$IFDEF USE_WORD2K} Word2000.Range {$ELSE} Word97.Range {$ENDIF}; +// moves range to next +var + ovWhat : OleVariant; +begin + ovWhat := oeWhat; + FComRange := FComRange.GoToNext (ovWhat); + GotoNext := FComRange; +end; + +function TWordRange.GoToPrevious(oeWhat: TOleEnum) : {$IFDEF USE_WORD2K} Word2000.Range {$ELSE} Word97.Range {$ENDIF}; +// moves range to previous +var + ovWhat : OleVariant; +begin + ovWhat := oeWhat; + FComRange := FComRange.GoToPrevious (ovWhat); + GotoPrevious := FComRange; +end; + +function TWordRange.NoOfWords : Integer; +begin + NoOfWords := FComRange.ComputeStatistics (wdStatisticWords) +end; + +procedure TWordRange.InsertAfter(Text: String); +begin + FComRange.InsertAfter (Text); +end; + +procedure TWordRange.InsertAutoText; +begin + FComRange.InsertAutoText +end; + +procedure TWordRange.InsertGivenAutoText (AutoText : String; UseRichText : Boolean = True); +var + ATemplate : OleVariant; + AnAutoText : OleVariant; +begin + // NB Word_TLB import seems to fail with Get_AttachedTemplate and returns an OleVariant + // rather than a Template type. Therefor this bit of code is late bound and may not work in + // other languages - sorry + try + ATemplate := FWordDoc.FComDoc.Get_AttachedTemplate; + AnAutoText := ATemplate.AutoTextEntries.Item (AutoText); + AnAutoText.Insert (FComRange, UseRichText); + except + on E : EOleSysError do + if E.ErrorCode = 5941 then + raise Exception.CreateFmt ('Error Autotext "%s" not found in template "%s"', + [AutoText, ATemplate.Name]) + else + raise Exception.CreateFmt ('Error inserting Autotext "%s" from template "%s"', + [AutoText, ATemplate.Name]) + end; +end; + +procedure TWordRange.InsertBefore(Text: String); +begin + FComRange.InsertBefore (Text); +end; + +procedure TWordRange.InsertBreak(oeType: TOleEnum = wdPageBreak); +var + ovType : OleVariant; +begin + ovType := oeType; + FComRange.InsertBreak (ovType); +end; + +procedure TWordRange.InsertParagraph; +begin + FComRange.InsertParagraph +end; + +procedure TWordRange.InsertParagraphAfter; +begin + FComRange.InsertParagraphAfter +end; + +procedure TWordRange.InsertParagraphBefore; +begin + FComRange.InsertParagraphBefore +end; + +procedure TWordRange.InsertSymbol(CharacterNumber: Integer; Font: String; + Unicode: Boolean = False; oeBias : TOleEnum = wdFontBiasDefault); +var + ovFont, ovUnicode, ovBias : OleVariant; +begin + ovFont := Font; + ovUnicode := UniCode; + ovBias := oeBias; + FComRange.InsertSymbol (CharacterNumber, ovFont, ovUnicode, ovBias); +end; + +function TWordRange.Move(oeUnit: TOleEnum = wdCharacter; oeCount: Integer = 1) : Integer; +var + ovUnit, + ovCount : OleVariant; +begin + ovUnit := oeUnit; + ovCount := oeCount; + Move := FComRange.Move (ovUnit, ovCount); +end; + +function TWordRange.MoveEnd(oeUnit: TOleEnum = wdCharacter; oeCount: Integer = 1) : Integer; +var + ovUnit, + ovCount : OleVariant; +begin + ovUnit := oeUnit; + ovCount := oeCount; + MoveEnd := FComRange.MoveEnd (ovUnit, ovCount); +end; + +function TWordRange.MoveEndUntil(Cset: String; Count: Integer = wdForward) : Integer; +var + ovCset, ovCount : OleVariant; +begin + ovCset := Cset; + ovCount := Count; + MoveEndUntil := FComRange.MoveEndUntil (ovCset, ovCount); +end; + +function TWordRange.MoveEndWhile(Cset: String; Count: Integer = wdForward) : Integer; +var + ovCset, ovCount : OleVariant; +begin + ovCset := Cset; + ovCount := Count; + MoveEndWhile := FComRange.MoveEndWhile (ovCset, ovCount); +end; + +function TWordRange.MoveStart(oeUnit: TOleEnum = wdCharacter; oeCount: Integer = 1) : Integer; +var + ovUnit, + ovCount : OleVariant; +begin + ovUnit := oeUnit; + ovCount := oeCount; + MoveStart := FComRange.MoveStart (ovUnit, ovCount); +end; + +function TWordRange.MoveStartUntil(Cset: String; Count: Integer = wdForward) : Integer; +var + ovCset, ovCount : OleVariant; +begin + ovCset := Cset; + ovCount := Count; + MoveStartUntil := FComRange.MoveStartUntil (ovCset, ovCount); +end; + +function TWordRange.MoveStartWhile(Cset: String; Count: Integer = wdForward) : Integer; +var + ovCset, ovCount : OleVariant; +begin + ovCset := Cset; + ovCount := Count; + MoveStartWhile := FComRange.MoveStartWhile (ovCset, ovCount); +end; + +function TWordRange.MoveUntil(Cset: String; Count: Integer = wdForward) : Integer; +var + ovCset, ovCount : OleVariant; +begin + ovCset := Cset; + ovCount := Count; + MoveUntil := FComRange.MoveUntil (ovCset, ovCount); +end; + +function TWordRange.MoveWhile(Cset: String; Count: Integer = wdForward) : Integer; +var + ovCset, ovCount : OleVariant; +begin + ovCset := Cset; + ovCount := Count; + MoveWhile := FComRange.MoveWhile (ovCset, ovCount); +end; + +function TWordRange.Next(oeUnit: TOleEnum = wdCharacter; oeCount: Integer = 1) : {$IFDEF USE_WORD2K} Word2000.Range {$ELSE} Word97.Range {$ENDIF}; +// moves range to next +var + ovUnit, + ovCount : OleVariant; +begin + ovUnit := oeUnit; + ovCount := oeCount; + FComRange := FComRange.Next (ovUnit, ovCount); + Next := FComRange; +end; + +function TWordRange.Previous(oeUnit: TOleEnum = wdCharacter; oeCount: Integer = 1) : {$IFDEF USE_WORD2K} Word2000.Range {$ELSE} Word97.Range {$ENDIF}; +// moves range to previous +var + ovUnit, + ovCount : OleVariant; +begin + ovUnit := oeUnit; + ovCount := oeCount; + FComRange := FComRange.Previous (ovUnit, ovCount); + Previous := FComRange; +end; + +function TWordRange.GetNextRange(oeUnit: TOleEnum = wdCharacter; oeCount: Integer = 1) : {$IFDEF USE_WORD2K} Word2000.Range {$ELSE} Word97.Range {$ENDIF}; +// returns a range next to this one (does not alter this range) +var + ovUnit, + ovCount : OleVariant; +begin + ovUnit := oeUnit; + ovCount := oeCount; + GetNextRange := FComRange.Next (ovUnit, ovCount); +end; + +function TWordRange.GetPreviousRange(oeUnit: TOleEnum = wdCharacter; oeCount: Integer = 1) : {$IFDEF USE_WORD2K} Word2000.Range {$ELSE} Word97.Range {$ENDIF}; +// returns a range prior to this one (does not alter this range) +var + ovUnit, + ovCount : OleVariant; +begin + ovUnit := oeUnit; + ovCount := oeCount; + GetPreviousRange := FComRange.Previous (ovUnit, ovCount); +end; + +procedure TWordRange.SetBold(Value: Boolean); +begin + if Value then FComRange.Bold := wdTrue else FComRange.Bold := wdFalse; +end; + +procedure TWordRange.SetCase(oeValue: TOleEnum); +begin + FComRange.Case_ := oeValue; +end; + +procedure TWordRange.SetEnd(Value: Integer); +begin + FComRange.End_ := Value; +end; + +procedure TWordRange.SetFont(fFont: _Font); +begin + FComRange.Font := fFont; +end; + +procedure TWordRange.SetItalic(Value: Boolean); +begin + if Value then FComRange.Italic := wdTrue else FComRange.Italic := wdFalse; +end; + +procedure TWordRange.SetRange(iStart, iEnd: Integer); +begin + FComRange.SetRange (iStart, iEnd); +end; + +procedure TWordRange.SetStart(Value: Integer); +begin + FComRange.Start := Value; +end; + +procedure TWordRange.SetStyle(Style: Variant); +var + ovStyle : OleVariant; +begin + ovStyle := Style; + FComRange.Set_Style (ovStyle); +end; + +procedure TWordRange.SetText(Value: String); +begin + FComRange.Text := Value; +end; + +procedure TWordRange.SetUnderline(Value: Boolean); +begin + if Value then FComRange.Underline := wdTrue else FComRange.Underline := wdFalse; +end; + +function TWordRange.StartOf(oeUnit : TOleEnum = wdWord; oeExtend : TOleEnum = wdMove): Integer; +var + ovUnit, + ovExtend : OleVariant; +begin + ovUnit := oeUnit; + ovExtend := oeExtend; + StartOf := FComRange.StartOf (ovUnit, ovExtend); +end; + +procedure TWordRange.CreateBookMark(BookmarkName : String); +var + ovRange : OleVariant; +begin + ovRange := FComRange; + FWordDoc.FComDoc.Bookmarks.Add (BookmarkName, ovRange); +end; + +procedure TWordRange.Select; +begin + FComRange.Select; +end; + +procedure TWordRange.Cut; +begin + FComRange.Cut; +end; + +procedure TWordRange.Copy; +begin + FComRange.Copy; +end; +procedure TWordRange.Paste; +begin + FComRange.Paste; +end; + +function ImprimirDoc(Fichero : String) : Boolean; +var + FWordApp : TWordApp; + FWordDoc : TWordDoc; + Dialogo : Dialog; +begin + Result := False; + FWordApp := TWordApp.Create(False, True); + try + FWordDoc := TWordDoc.CreateOpenDoc(FWordApp, Fichero); + FWordApp.Visible := True; + FWordDoc.Active := True; + FWordApp.Application.Options.PrintBackground := False; + Dialogo := FWordApp.Application.Dialogs.Item(wdDialogFilePrint); + Dialogo.Show(EmptyParam); + // Esperamos a que Word termine de imprimir antes de cerrarlo. + while FWordApp.Application.BackgroundPrintingStatus = 1 do; + + FWordDoc.CloseDoc(wdDoNotSaveChanges); + FWordDoc := NIL; + finally + FWordApp.CloseApp (wdDoNotSaveChanges); + FWordApp := NIL; + end; + Result := True; +end; + +end. + + diff --git a/Source/Servidor/Utiles/MidasSpeedFix.dcu b/Source/Servidor/Utiles/MidasSpeedFix.dcu new file mode 100644 index 0000000..9c7b881 Binary files /dev/null and b/Source/Servidor/Utiles/MidasSpeedFix.dcu differ diff --git a/Source/Servidor/Utiles/MidasSpeedFix.pas b/Source/Servidor/Utiles/MidasSpeedFix.pas new file mode 100644 index 0000000..8d49500 --- /dev/null +++ b/Source/Servidor/Utiles/MidasSpeedFix.pas @@ -0,0 +1,420 @@ +{$A+,B-,C+,D+,E-,F-,G+,H+,I+,J+,K-,L+,M-,N+,O+,P+,Q-,R-,S-,T-,U-,V+,W-,X+,Y+,Z1} +{**************************************************************************************************} +{ } +{ MidasSpeedFix unit - Unoffical speed fix for Midas (Delphi/C++Builder 6 to 2009) } +{ Version 1.0 (2009-01-21) } +{ } +{ The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); } +{ you may not use this file except in compliance with the License. You may obtain a copy of the } +{ License at http://www.mozilla.org/MPL/ } +{ } +{ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF } +{ ANY KIND, either express or implied. See the License for the specific language governing rights } +{ and limitations under the License. } +{ } +{ The Original Code is MidasSpeedFix.pas. } +{ } +{ The Initial Developer of the Original Code is Andreas Hausladen (Andreas.Hausladen@gmx.de). } +{ Portions created by Andreas Hausladen are Copyright (C) 2009 Andreas Hausladen. } +{ All Rights Reserved. } +{ } +{**************************************************************************************************} + +{ History: + 2009-01-21: + Initial implementation + + How to use: + Add the MidasSpeedFix.pas unit to your Delphi or C++ Project (ProjectManager: Add Unit) +} + +unit MidasSpeedFix; + +interface + +{$IFDEF CONDITIONALEXPRESSIONS} + {$IF CompilerVersion >= 15.0} + {$WARN UNSAFE_TYPE OFF} + {$WARN UNSAFE_CODE OFF} + {$WARN UNSAFE_CAST OFF} + {$IFEND} +{$ENDIF} + +implementation + +uses + Windows, SysUtils, DSIntf; + +{------------------------------------------------------------------------------} + +function MidasMalloc(Size: LongWord): Pointer; stdcall; +begin + GetMem(Result, Size); +end; + +procedure MidasFree(P: Pointer); stdcall; +begin + FreeMem(P); +end; + +function MidasCalloc(Count, ElementSize: LongWord): Pointer; stdcall; +begin + Result := AllocMem(Count * ElementSize); +end; + +function MidasRealloc(P: Pointer; OldSize, NewSize: LongWord): Pointer; stdcall; +begin + ReallocMem(P, NewSize); + Result := P; + if (Result <> nil) and (OldSize < NewSize) then + FillChar(Pointer(PAnsiChar(Result) + OldSize)^, NewSize - OldSize, 0); +end; + +{------------------------------------------------------------------------------} + +{$UNDEF REQUIRE_NEW_MEMORY_MANAGER} + +{$IFDEF CONDITIONALEXPRESSIONS} + {$IF CompilerVersion < 18.0} // Delphi 2006 was the first shipped with FastMM + {$DEFINE REQUIRE_NEW_MEMORY_MANAGER} + {$IFEND} +{$ELSE} + {$DEFINE REQUIRE_NEW_MEMORY_MANAGER} +{$ENDIF CONDITIONALEXPRESSIONS} + +type + TJumpOfs = Integer; + PPointer = ^Pointer; + +type + PXRedirCode = ^TXRedirCode; + TXRedirCode = packed record + Jump: Byte; + Offset: TJumpOfs; + end; + +{ Hooking } + +procedure HookProc(Proc, Dest: Pointer; var BackupCode: TXRedirCode); +var + n: DWORD; + Code: TXRedirCode; +begin + Assert(Proc <> nil); + if ReadProcessMemory(GetCurrentProcess, Proc, @BackupCode, SizeOf(BackupCode), n) then + begin + Code.Jump := $E9; + Code.Offset := PAnsiChar(Dest) - PAnsiChar(Proc) - SizeOf(Code); + WriteProcessMemory(GetCurrentProcess, Proc, @Code, SizeOf(Code), n); + end; +end; + +procedure UnhookProc(Proc: Pointer; var BackupCode: TXRedirCode); +var + n: Cardinal; +begin + if (BackupCode.Jump <> 0) and (Proc <> nil) then + begin + WriteProcessMemory(GetCurrentProcess, Proc, @BackupCode, SizeOf(BackupCode), n); + BackupCode.Jump := 0; + end; +end; + +function FindMethodPtr(Start: THandle; const Bytes: array of Smallint): Pointer; +var + P, Address, BytePtr: PAnsiChar; + MemInfo: TMemoryBasicInformation; + I: Cardinal; + FirstByte: Byte; + StartOffset, Index: Integer; + BytesLen: Integer; + Found: Boolean; + AllocBase: Pointer; +begin + Result := nil; + BytesLen := Length(Bytes); + if (Start <> 0) and (BytesLen >= 8) then + begin + StartOffset := 0; + while (StartOffset < BytesLen) and (Bytes[StartOffset] = -1) do + Inc(StartOffset); + if StartOffset = BytesLen then + Exit; + FirstByte := Byte(Bytes[StartOffset]); + + try + Address := PAnsiChar(Start); + if not VirtualQuery(Address, MemInfo, SizeOf(MemInfo)) = SizeOf(MemInfo) then + Exit; + AllocBase := MemInfo.AllocationBase; + + while (VirtualQuery(Address, MemInfo, SizeOf(MemInfo)) = SizeOf(MemInfo)) and + (MemInfo.AllocationBase = AllocBase) do + begin + if MemInfo.Protect and $000000F0 <> 0 then // PAGE_EXECUTE | ... + begin + P := Address; + for I := 0 to MemInfo.RegionSize - 1 do + begin + if Byte(P[0]) = FirstByte then + begin + BytePtr := P + 1; + Found := True; + for Index := StartOffset + 1 to BytesLen - 1 do + begin + if (Bytes[Index] <> -1) and (Byte(Bytes[Index]) <> Byte(BytePtr^)) then + begin + Found := False; + Break; + end; + Inc(BytePtr); + end; + if Found then + begin + Result := P; + Exit; + end; + end; + Inc(P); + end; + end; + Inc(Address, MemInfo.RegionSize); + end; + except + on E: EAccessViolation do + ; + on E: EPrivilege do + ; + end; + end; +end; + +{------------------------------------------------------------------------------} +const + MidasMallocBytes: array[0..15] of SmallInt = ( + $55, // push ebp + $8B, $EC, // mov ebp,esp + $FF, $75, $08, // push dword ptr [ebp+$08] + $E8, -1, -1, -1, -1, // call _malloc + $59, // pop ecx + $5D, // pop ebp + $C2, $04, $00 // ret $0004 + ); + + MidasFreeBytes: array[0..20] of SmallInt = ( + $55, // push ebp + $8B, $EC, // mov ebp,esp + $8B, $45, $08, // mov eax,[ebp+$08] + $85, $C0, // test eax,eax + $74, $07, // jz +$07 + $50, // push eax + $E8, -1, -1, -1, -1, // call _free + $59, // pop ecx + $5D, // pop ebp + $C2, $04, $00 // ret $0004 + ); + + MidasMallocBytesGlobal: array[0..56] of SmallInt = ( + $55, // push ebp + $8B, $EC, // mov ebp,esp + $53, // push ebx + $56, // push esi + $57, // push edi + $33, $DB, // xor ebx, ebx + $66, $BE, $02, $00, // mov si, $0002 + $FF, $75, $08, // push dword ptr [ebp+$08] + $0F, $BF, $C6, // movsx eax,si + $50, // push eax + $E8, -1, -1, -1, -1, // call GlobalAlloc + $8B, $F8, // mov edi,eax + $85, $C0, // test eax,eax + $74, $12, // jz +$12 + $57, // push edi + $E8, -1, -1, -1, -1, // call GlobalLock + $8B, $D8, // mov ebx,eax + $85, $C0, // test eax,eax + $75, $06, // jnz +$06 + $57, // push edi + $E8, -1, -1, -1, -1, // call GlobalFree + $8B, $C3, // mov eax,ebx + $5F, // pop edi + $5E, // pop esi + $5B, // pop ebx + $5D, // pop ebp + $C2, $04, $00 // ret $0004 + ); + + MidasFreeBytesGlobal: array[0..39] of SmallInt = ( + $55, // push ebp + $8B, $EC, // mov ebp,esp + $53, // push ebx + $8B, $45, $08, // mov eax,[ebp+$08] + $85, $C0, // test eax,eax + $74, $18, // jz +$18 + $50, // push eax + $E8, -1, -1, -1, -1, // call GlobalHandle + $8B, $D8, // mov ebx,eax + $85, $DB, // test ebx,ebx + $74, $0C, // jz +$0c + $53, // puch ebx + $E8, -1, -1, -1, -1, // call GlobalUnlock + $53, // push ebx + $E8, -1, -1, -1, -1, // call GlobalFree + $5B, // pop ebx + $5D, // pop ebp + $C2, $04, $00 // ret $0004 + ); + + MidasCallocBytes: array[0..43] of SmallInt = ( + $55, // push ebp + $8B, $EC, // mov ebp,esp + $53, // push ebx + $56, // push esi + $8B, $75, $08, // mov esi,[ebp+$08] + $0F, $AF, $75, $0C, // imul esi,[ebp+$0c] + $56, // push esi + $E8, -1, -1, -1, -1, // call $004d2097 MidasMalloc + $8B, $D8, // mov ebx,eax + $85, $DB, // test ebx,ebx + $74, $0C, // jz +$0c + $56, // push esi + $6A, $00, // push $00 + $53, // push ebx + $E8, -1, -1, -1, -1, // call _memset + $83, $C4, $0C, // add esp,$0c + $8B, $C3, // mov eax,ebx + $5E, // pop esi + $5B, // pop ebx + $5D, // pop ebp + $C2, $08, $00 // ret $0008 + ); + + MidasReallocBytes: array[0..54] of SmallInt = ( + $55, // push ebp + $8B, $EC, // mov ebp,esp + $53, // push ebx + $56, // push esi + $8B, $75, $08, // mov esi,[ebp+$08] + $FF, $75, $10, // push dword ptr [ebp+$10] + $6A, $01, // push $01 + $E8, -1, -1, -1, -1, // call $004d20a7 MidasCalloc + $8B, $D8, // mov ebx,eax + $85, $DB, // test ebx,ebx + $74, $17, // jz +$17 + $85, $F6, // test esi,esi + $74, $13, // jz +$13 + $FF, $75, $0C, // push dword ptr [ebp+$0c] + $56, // push esi + $53, // push ebx + $E8, -1, -1, -1, -1, // call _memmove + $83, $C4, $0C, // add esp,$0c + $56, // push esi + $E8, -1, -1, -1, -1, // call $004d20d3 MidasFree + $8B, $C3, // mov eax,ebx + $5E, // pop esi + $5B, // pop ebx + $5D, // pop ebp + $C2, $0C, $00 // ret $000c + ); + +var + Org_MidasMalloc: Pointer; + Org_MidasFree: Pointer; + Org_MidasCalloc: Pointer; + Org_MidasRealloc: Pointer; + + MidasMallocHook: TXRedirCode; + MidasFreeHook: TXRedirCode; + MidasCallocHook: TXRedirCode; + MidasReallocHook: TXRedirCode; + +{$IFDEF REQUIRE_NEW_MEMORY_MANAGER} +function RequireNewerMemoryManager: Boolean; +var + MemMan: TMemoryManager; +begin + GetMemoryManager(MemMan); + if @MemMan.GetMem = @SysGetMem then + begin + MessageBox(0, 'You must install an alternative memory manager like FastMM4. FastMM4 must run in RELEASE mode to see an improved performance.', + 'Delphi - Midas Speed Fix', MB_OK or MB_ICONERROR); + Result := False; + end + else + Result := True; +end; +{$ENDIF REQUIRE_NEW_MEMORY_MANAGER} + +procedure Init; +var + DSBase: IDSBase; + IsCRTLMemMan: Boolean; +begin + {$IFDEF REQUIRE_NEW_MEMORY_MANAGER} + if not RequireNewerMemoryManager then + Exit; + {$ENDIF REQUIRE_NEW_MEMORY_MANAGER} + + IsCRTLMemMan := True; // C RTL memory manager + Org_MidasMalloc := FindMethodPtr(HInstance, MidasMallocBytes); + if Org_MidasMalloc = nil then + begin + Org_MidasMalloc := FindMethodPtr(HInstance, MidasMallocBytesGlobal); + if Org_MidasMalloc <> nil then + IsCRTLMemMan := False; + end; + + if Org_MidasMalloc = nil then + begin + CreateDbClientObject(CLSID_DSBase, IDSBase, DSBase); // load midas.dll + DSBase := nil; // release alloctated midas memory + + Org_MidasMalloc := FindMethodPtr(GetModuleHandle('midas.dll'), MidasMallocBytes); + if Org_MidasMalloc = nil then + begin + Org_MidasMalloc := FindMethodPtr(HInstance, MidasMallocBytesGlobal); + if Org_MidasMalloc <> nil then + IsCRTLMemMan := False; + end; + end; + + if Org_MidasMalloc = nil then + begin + OutputDebugString('Midas speed fix could not be installed.'); + Exit; + end; + Assert(Org_MidasMalloc <> nil); + + if IsCRTLMemMan then + Org_MidasFree := FindMethodPtr(HINST(Org_MidasMalloc), MidasFreeBytes) + else + Org_MidasFree := FindMethodPtr(HINST(Org_MidasMalloc), MidasFreeBytesGlobal); + + Org_MidasCalloc := FindMethodPtr(HINST(Org_MidasMalloc), MidasCallocBytes); + Org_MidasRealloc := FindMethodPtr(HINST(Org_MidasMalloc), MidasReallocBytes); + + Assert(Org_MidasFree <> nil); + Assert(Org_MidasCalloc <> nil); + Assert(Org_MidasRealloc <> nil); + + HookProc(Org_MidasMalloc, @MidasMalloc, MidasMallocHook); + HookProc(Org_MidasFree, @MidasFree, MidasFreeHook); + HookProc(Org_MidasCalloc, @MidasCalloc, MidasCallocHook); + HookProc(Org_MidasRealloc, @MidasRealloc, MidasReallocHook); +end; + +procedure Fini; +begin + UnhookProc(Org_MidasMalloc, MidasMallocHook); + UnhookProc(Org_MidasFree, MidasFreeHook); + UnhookProc(Org_MidasCalloc, MidasCallocHook); + UnhookProc(Org_MidasRealloc, MidasReallocHook); +end; + +initialization + Init; + +finalization + Fini; + +end. diff --git a/Source/Servidor/Utiles/RegExpr.dcu b/Source/Servidor/Utiles/RegExpr.dcu new file mode 100644 index 0000000..783cdf1 Binary files /dev/null and b/Source/Servidor/Utiles/RegExpr.dcu differ diff --git a/Source/Servidor/Utiles/RegExpr.pas b/Source/Servidor/Utiles/RegExpr.pas new file mode 100644 index 0000000..f17279a --- /dev/null +++ b/Source/Servidor/Utiles/RegExpr.pas @@ -0,0 +1,4042 @@ +unit RegExpr; + +{ + TRegExpr class library + Delphi Regular Expressions + + Copyright (c) 1999-2004 Andrey V. Sorokin, St.Petersburg, Russia + + You may use this software in any kind of development, + including comercial, redistribute, and modify it freely, + under the following restrictions : + 1. This software is provided as it is, without any kind of + warranty given. Use it at Your own risk.The author is not + responsible for any consequences of use of this software. + 2. The origin of this software may not be mispresented, You + must not claim that You wrote the original software. If + You use this software in any kind of product, it would be + appreciated that there in a information box, or in the + documentation would be an acknowledgement like + + Partial Copyright (c) 2004 Andrey V. Sorokin + http://RegExpStudio.com + mailto:anso@mail.ru + + 3. You may not have any income from distributing this source + (or altered version of it) to other developers. When You + use this product in a comercial package, the source may + not be charged seperatly. + 4. Altered versions must be plainly marked as such, and must + not be misrepresented as being the original software. + 5. RegExp Studio application and all the visual components as + well as documentation is not part of the TRegExpr library + and is not free for usage. + + mailto:anso@mail.ru + http://RegExpStudio.com + http://anso.da.ru/ +} + +interface + +// ======== Determine compiler +{$IFDEF VER80} Sorry, TRegExpr is for 32-bits Delphi only. Delphi 1 is not supported (and whos really care today?!). {$ENDIF} +{$IFDEF VER90} {$DEFINE D2} {$ENDIF} // D2 +{$IFDEF VER93} {$DEFINE D2} {$ENDIF} // CPPB 1 +{$IFDEF VER100} {$DEFINE D3} {$DEFINE D2} {$ENDIF} // D3 +{$IFDEF VER110} {$DEFINE D4} {$DEFINE D3} {$DEFINE D2} {$ENDIF} // CPPB 3 +{$IFDEF VER120} {$DEFINE D4} {$DEFINE D3} {$DEFINE D2} {$ENDIF} // D4 +{$IFDEF VER130} {$DEFINE D5} {$DEFINE D4} {$DEFINE D3} {$DEFINE D2} {$ENDIF} // D5 +{$IFDEF VER140} {$DEFINE D6} {$DEFINE D5} {$DEFINE D4} {$DEFINE D3} {$DEFINE D2} {$ENDIF} // D6 +{$IFDEF VER150} {$DEFINE D7} {$DEFINE D6} {$DEFINE D5} {$DEFINE D4} {$DEFINE D3} {$DEFINE D2} {$ENDIF} // D7 +{$IFDEF VER180} {$DEFINE D2007} {$DEFINE D10} {$DEFINE D7} {$DEFINE D6} {$DEFINE D5} {$DEFINE D4} {$DEFINE D3} {$DEFINE D2} {$ENDIF} // D10/D2007 + +// ======== Define base compiler options +{$BOOLEVAL OFF} +{$EXTENDEDSYNTAX ON} +{$LONGSTRINGS ON} +{$OPTIMIZATION ON} +{$IFDEF D6} + {$WARN SYMBOL_PLATFORM OFF} // Suppress .Net warnings +{$ENDIF} +{$IFDEF D7} + {$WARN UNSAFE_CAST OFF} // Suppress .Net warnings + {$WARN UNSAFE_TYPE OFF} // Suppress .Net warnings + {$WARN UNSAFE_CODE OFF} // Suppress .Net warnings +{$ENDIF} +{$IFDEF FPC} + {$MODE DELPHI} // Delphi-compatible mode in FreePascal +{$ENDIF} + +// ======== Define options for TRegExpr engine +{.$DEFINE UniCode} // Unicode support +{$DEFINE RegExpPCodeDump} // p-code dumping (see Dump method) +{$IFNDEF FPC} // the option is not supported in FreePascal + {$DEFINE reRealExceptionAddr} // exceptions will point to appropriate source line, not to Error procedure +{$ENDIF} +{$DEFINE ComplexBraces} // support braces in complex cases +{$IFNDEF UniCode} // the option applicable only for non-UniCode mode + {$DEFINE UseSetOfChar} // Significant optimization by using set of char +{$ENDIF} +{$IFDEF UseSetOfChar} + {$DEFINE UseFirstCharSet} // Fast skip between matches for r.e. that starts with determined set of chars +{$ENDIF} + +// ======== Define Pascal-language options +// Define 'UseAsserts' option (do not edit this definitions). +// Asserts used to catch 'strange bugs' in TRegExpr implementation (when something goes +// completely wrong). You can swith asserts on/off with help of {$C+}/{$C-} compiler options. +{$IFDEF D3} {$DEFINE UseAsserts} {$ENDIF} +{$IFDEF FPC} {$DEFINE UseAsserts} {$ENDIF} + +// Define 'use subroutine parameters default values' option (do not edit this definition). +{$IFDEF D4} {$DEFINE DefParam} {$ENDIF} + +// Define 'OverMeth' options, to use method overloading (do not edit this definitions). +{$IFDEF D5} {$DEFINE OverMeth} {$ENDIF} +{$IFDEF FPC} {$DEFINE OverMeth} {$ENDIF} + +uses + Classes, // TStrings in Split method + SysUtils; // Exception + +type + {$IFDEF UniCode} + PRegExprChar = PWideChar; + RegExprString = WideString; + REChar = WideChar; + {$ELSE} + PRegExprChar = PChar; + RegExprString = AnsiString; //###0.952 was string + REChar = Char; + {$ENDIF} + TREOp = REChar; // internal p-code type //###0.933 + PREOp = ^TREOp; + TRENextOff = integer; // internal Next "pointer" (offset to current p-code) //###0.933 + PRENextOff = ^TRENextOff; // used for extracting Next "pointers" from compiled r.e. //###0.933 + TREBracesArg = integer; // type of {m,n} arguments + PREBracesArg = ^TREBracesArg; + +const + REOpSz = SizeOf (TREOp) div SizeOf (REChar); // size of p-code in RegExprString units + RENextOffSz = SizeOf (TRENextOff) div SizeOf (REChar); // size of Next 'pointer' -"- + REBracesArgSz = SizeOf (TREBracesArg) div SizeOf (REChar); // size of BRACES arguments -"- + +type + TRegExprInvertCaseFunction = function (const Ch : REChar) : REChar + of object; + +const + EscChar = '\'; // 'Escape'-char ('\' in common r.e.) used for escaping metachars (\w, \d etc). + RegExprModifierI : boolean = False; // default value for ModifierI + RegExprModifierR : boolean = True; // default value for ModifierR + RegExprModifierS : boolean = True; // default value for ModifierS + RegExprModifierG : boolean = True; // default value for ModifierG + RegExprModifierM : boolean = False; // default value for ModifierM + RegExprModifierX : boolean = False; // default value for ModifierX + RegExprSpaceChars : RegExprString = // default value for SpaceChars + ' '#$9#$A#$D#$C; + RegExprWordChars : RegExprString = // default value for WordChars + '0123456789' //###0.940 + + 'abcdefghijklmnopqrstuvwxyz' + + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'; + RegExprLineSeparators : RegExprString =// default value for LineSeparators + #$d#$a{$IFDEF UniCode}+#$b#$c#$2028#$2029#$85{$ENDIF}; //###0.947 + RegExprLinePairedSeparator : RegExprString =// default value for LinePairedSeparator + #$d#$a; + { if You need Unix-styled line separators (only \n), then use: + RegExprLineSeparators = #$a; + RegExprLinePairedSeparator = ''; + } + + +const + NSUBEXP = 15; // max number of subexpression //###0.929 + // Cannot be more than NSUBEXPMAX + // Be carefull - don't use values which overflow CLOSE opcode + // (in this case you'll get compiler erorr). + // Big NSUBEXP will cause more slow work and more stack required + NSUBEXPMAX = 255; // Max possible value for NSUBEXP. //###0.945 + // Don't change it! It's defined by internal TRegExpr design. + + MaxBracesArg = $7FFFFFFF - 1; // max value for {n,m} arguments //###0.933 + + {$IFDEF ComplexBraces} + LoopStackMax = 10; // max depth of loops stack //###0.925 + {$ENDIF} + + TinySetLen = 3; + // if range includes more then TinySetLen chars, //###0.934 + // then use full (32 bytes) ANYOFFULL instead of ANYOF[BUT]TINYSET + // !!! Attension ! If you change TinySetLen, you must + // change code marked as "//!!!TinySet" + + +type + +{$IFDEF UseSetOfChar} + PSetOfREChar = ^TSetOfREChar; + TSetOfREChar = set of REChar; +{$ENDIF} + + TRegExpr = class; + + TRegExprReplaceFunction = function (ARegExpr : TRegExpr): string + of object; + + TRegExpr = class + private + startp : array [0 .. NSUBEXP - 1] of PRegExprChar; // founded expr starting points + endp : array [0 .. NSUBEXP - 1] of PRegExprChar; // founded expr end points + + {$IFDEF ComplexBraces} + LoopStack : array [1 .. LoopStackMax] of integer; // state before entering loop + LoopStackIdx : integer; // 0 - out of all loops + {$ENDIF} + + // The "internal use only" fields to pass info from compile + // to execute that permits the execute phase to run lots faster on + // simple cases. + regstart : REChar; // char that must begin a match; '\0' if none obvious + reganch : REChar; // is the match anchored (at beginning-of-line only)? + regmust : PRegExprChar; // string (pointer into program) that match must include, or nil + regmlen : integer; // length of regmust string + // Regstart and reganch permit very fast decisions on suitable starting points + // for a match, cutting down the work a lot. Regmust permits fast rejection + // of lines that cannot possibly match. The regmust tests are costly enough + // that regcomp() supplies a regmust only if the r.e. contains something + // potentially expensive (at present, the only such thing detected is * or + + // at the start of the r.e., which can involve a lot of backup). Regmlen is + // supplied because the test in regexec() needs it and regcomp() is computing + // it anyway. + {$IFDEF UseFirstCharSet} //###0.929 + FirstCharSet : TSetOfREChar; + {$ENDIF} + + // work variables for Exec's routins - save stack in recursion} + reginput : PRegExprChar; // String-input pointer. + fInputStart : PRegExprChar; // Pointer to first char of input string. + fInputEnd : PRegExprChar; // Pointer to char AFTER last char of input string + + // work variables for compiler's routines + regparse : PRegExprChar; // Input-scan pointer. + regnpar : integer; // count. + regdummy : char; + regcode : PRegExprChar; // Code-emit pointer; @regdummy = don't. + regsize : integer; // Code size. + + regexpbeg : PRegExprChar; // only for error handling. Contains + // pointer to beginning of r.e. while compiling + fExprIsCompiled : boolean; // true if r.e. successfully compiled + + // programm is essentially a linear encoding + // of a nondeterministic finite-state machine (aka syntax charts or + // "railroad normal form" in parsing technology). Each node is an opcode + // plus a "next" pointer, possibly plus an operand. "Next" pointers of + // all nodes except BRANCH implement concatenation; a "next" pointer with + // a BRANCH on both ends of it is connecting two alternatives. (Here we + // have one of the subtle syntax dependencies: an individual BRANCH (as + // opposed to a collection of them) is never concatenated with anything + // because of operator precedence.) The operand of some types of node is + // a literal string; for others, it is a node leading into a sub-FSM. In + // particular, the operand of a BRANCH node is the first node of the branch. + // (NB this is *not* a tree structure: the tail of the branch connects + // to the thing following the set of BRANCHes.) The opcodes are: + programm : PRegExprChar; // Unwarranted chumminess with compiler. + + fExpression : PRegExprChar; // source of compiled r.e. + fInputString : PRegExprChar; // input string + + fLastError : integer; // see Error, LastError + + fModifiers : integer; // modifiers + fCompModifiers : integer; // compiler's copy of modifiers + fProgModifiers : integer; // modifiers values from last programm compilation + + fSpaceChars : RegExprString; //###0.927 + fWordChars : RegExprString; //###0.929 + fInvertCase : TRegExprInvertCaseFunction; //###0.927 + + fLineSeparators : RegExprString; //###0.941 + fLinePairedSeparatorAssigned : boolean; + fLinePairedSeparatorHead, + fLinePairedSeparatorTail : REChar; + {$IFNDEF UniCode} + fLineSeparatorsSet : set of REChar; + {$ENDIF} + + procedure InvalidateProgramm; + // Mark programm as have to be [re]compiled + + function IsProgrammOk : boolean; //###0.941 + // Check if we can use precompiled r.e. or + // [re]compile it if something changed + + function GetExpression : RegExprString; + procedure SetExpression (const s : RegExprString); + + function GetModifierStr : RegExprString; + class function ParseModifiersStr (const AModifiers : RegExprString; + var AModifiersInt : integer) : boolean; //###0.941 class function now + // Parse AModifiers string and return true and set AModifiersInt + // if it's in format 'ismxrg-ismxrg'. + procedure SetModifierStr (const AModifiers : RegExprString); + + function GetModifier (AIndex : integer) : boolean; + procedure SetModifier (AIndex : integer; ASet : boolean); + + procedure Error (AErrorID : integer); virtual; // error handler. + // Default handler raise exception ERegExpr with + // Message = ErrorMsg (AErrorID), ErrorCode = AErrorID + // and CompilerErrorPos = value of property CompilerErrorPos. + + + {==================== Compiler section ===================} + function CompileRegExpr (exp : PRegExprChar) : boolean; + // compile a regular expression into internal code + + procedure Tail (p : PRegExprChar; val : PRegExprChar); + // set the next-pointer at the end of a node chain + + procedure OpTail (p : PRegExprChar; val : PRegExprChar); + // regoptail - regtail on operand of first argument; nop if operandless + + function EmitNode (op : TREOp) : PRegExprChar; + // regnode - emit a node, return location + + procedure EmitC (b : REChar); + // emit (if appropriate) a byte of code + + procedure InsertOperator (op : TREOp; opnd : PRegExprChar; sz : integer); //###0.90 + // insert an operator in front of already-emitted operand + // Means relocating the operand. + + function ParseReg (paren : integer; var flagp : integer) : PRegExprChar; + // regular expression, i.e. main body or parenthesized thing + + function ParseBranch (var flagp : integer) : PRegExprChar; + // one alternative of an | operator + + function ParsePiece (var flagp : integer) : PRegExprChar; + // something followed by possible [*+?] + + function ParseAtom (var flagp : integer) : PRegExprChar; + // the lowest level + + function GetCompilerErrorPos : integer; + // current pos in r.e. - for error hanling + + {$IFDEF UseFirstCharSet} //###0.929 + procedure FillFirstCharSet (prog : PRegExprChar); + {$ENDIF} + + {===================== Mathing section ===================} + function regrepeat (p : PRegExprChar; AMax : integer) : integer; + // repeatedly match something simple, report how many + + function regnext (p : PRegExprChar) : PRegExprChar; + // dig the "next" pointer out of a node + + function MatchPrim (prog : PRegExprChar) : boolean; + // recursively matching routine + + function ExecPrim (AOffset: integer) : boolean; + // Exec for stored InputString + + {$IFDEF RegExpPCodeDump} + function DumpOp (op : REChar) : RegExprString; + {$ENDIF} + + function GetSubExprMatchCount : integer; + function GetMatchPos (Idx : integer) : integer; + function GetMatchLen (Idx : integer) : integer; + function GetMatch (Idx : integer) : RegExprString; + + function GetInputString : RegExprString; + procedure SetInputString (const AInputString : RegExprString); + + {$IFNDEF UseSetOfChar} + function StrScanCI (s : PRegExprChar; ch : REChar) : PRegExprChar; //###0.928 + {$ENDIF} + + procedure SetLineSeparators (const AStr : RegExprString); + procedure SetLinePairedSeparator (const AStr : RegExprString); + function GetLinePairedSeparator : RegExprString; + + public + constructor Create; + destructor Destroy; override; + + class function VersionMajor : integer; //###0.944 + class function VersionMinor : integer; //###0.944 + + property Expression : RegExprString read GetExpression write SetExpression; + // Regular expression. + // For optimization, TRegExpr will automatically compiles it into 'P-code' + // (You can see it with help of Dump method) and stores in internal + // structures. Real [re]compilation occures only when it really needed - + // while calling Exec[Next], Substitute, Dump, etc + // and only if Expression or other P-code affected properties was changed + // after last [re]compilation. + // If any errors while [re]compilation occures, Error method is called + // (by default Error raises exception - see below) + + property ModifierStr : RegExprString read GetModifierStr write SetModifierStr; + // Set/get default values of r.e.syntax modifiers. Modifiers in + // r.e. (?ismx-ismx) will replace this default values. + // If you try to set unsupported modifier, Error will be called + // (by defaul Error raises exception ERegExpr). + + property ModifierI : boolean index 1 read GetModifier write SetModifier; + // Modifier /i - caseinsensitive, initialized from RegExprModifierI + + property ModifierR : boolean index 2 read GetModifier write SetModifier; + // Modifier /r - use r.e.syntax extended for russian, + // (was property ExtSyntaxEnabled in previous versions) + // If true, then - additional include russian letter '', + // - additional include '', and - include all russian symbols. + // You have to turn it off if it may interfere with you national alphabet. + // , initialized from RegExprModifierR + + property ModifierS : boolean index 3 read GetModifier write SetModifier; + // Modifier /s - '.' works as any char (else as [^\n]), + // , initialized from RegExprModifierS + + property ModifierG : boolean index 4 read GetModifier write SetModifier; + // Switching off modifier /g switchs all operators in + // non-greedy style, so if ModifierG = False, then + // all '*' works as '*?', all '+' as '+?' and so on. + // , initialized from RegExprModifierG + + property ModifierM : boolean index 5 read GetModifier write SetModifier; + // Treat string as multiple lines. That is, change `^' and `$' from + // matching at only the very start or end of the string to the start + // or end of any line anywhere within the string. + // , initialized from RegExprModifierM + + property ModifierX : boolean index 6 read GetModifier write SetModifier; + // Modifier /x - eXtended syntax, allow r.e. text formatting, + // see description in the help. Initialized from RegExprModifierX + + function Exec (const AInputString : RegExprString) : boolean; {$IFDEF OverMeth} overload; + {$IFNDEF FPC} // I do not know why FreePascal cannot overload methods with empty param list + function Exec : boolean; overload; //###0.949 + {$ENDIF} + function Exec (AOffset: integer) : boolean; overload; //###0.949 + {$ENDIF} + // match a programm against a string AInputString + // !!! Exec store AInputString into InputString property + // For Delphi 5 and higher available overloaded versions - first without + // parameter (uses already assigned to InputString property value) + // and second that has integer parameter and is same as ExecPos + + function ExecNext : boolean; + // find next match: + // ExecNext; + // works same as + // if MatchLen [0] = 0 then ExecPos (MatchPos [0] + 1) + // else ExecPos (MatchPos [0] + MatchLen [0]); + // but it's more simpler ! + // Raises exception if used without preceeding SUCCESSFUL call to + // Exec* (Exec, ExecPos, ExecNext). So You always must use something like + // if Exec (InputString) then repeat { proceed results} until not ExecNext; + + function ExecPos (AOffset: integer {$IFDEF DefParam}= 1{$ENDIF}) : boolean; + // find match for InputString starting from AOffset position + // (AOffset=1 - first char of InputString) + + property InputString : RegExprString read GetInputString write SetInputString; + // returns current input string (from last Exec call or last assign + // to this property). + // Any assignment to this property clear Match* properties ! + + function Substitute (const ATemplate : RegExprString) : RegExprString; + // Returns ATemplate with '$&' or '$0' replaced by whole r.e. + // occurence and '$n' replaced by occurence of subexpression #n. + // Since v.0.929 '$' used instead of '\' (for future extensions + // and for more Perl-compatibility) and accept more then one digit. + // If you want place into template raw '$' or '\', use prefix '\' + // Example: '1\$ is $2\\rub\\' -> '1$ is \rub\' + // If you want to place raw digit after '$n' you must delimit + // n with curly braces '{}'. + // Example: 'a$12bc' -> 'abc' + // 'a${1}2bc' -> 'a2bc'. + + procedure Split (AInputStr : RegExprString; APieces : TStrings); + // Split AInputStr into APieces by r.e. occurencies + // Internally calls Exec[Next] + + function Replace (AInputStr : RegExprString; + const AReplaceStr : RegExprString; + AUseSubstitution : boolean{$IFDEF DefParam}= False{$ENDIF}) //###0.946 + : RegExprString; {$IFDEF OverMeth} overload; + function Replace (AInputStr : RegExprString; + AReplaceFunc : TRegExprReplaceFunction) + : RegExprString; overload; + {$ENDIF} + function ReplaceEx (AInputStr : RegExprString; + AReplaceFunc : TRegExprReplaceFunction) + : RegExprString; + // Returns AInputStr with r.e. occurencies replaced by AReplaceStr + // If AUseSubstitution is true, then AReplaceStr will be used + // as template for Substitution methods. + // For example: + // Expression := '({-i}block|var)\s*\(\s*([^ ]*)\s*\)\s*'; + // Replace ('BLOCK( test1)', 'def "$1" value "$2"', True); + // will return: def 'BLOCK' value 'test1' + // Replace ('BLOCK( test1)', 'def "$1" value "$2"') + // will return: def "$1" value "$2" + // Internally calls Exec[Next] + // Overloaded version and ReplaceEx operate with call-back function, + // so You can implement really complex functionality. + + property SubExprMatchCount : integer read GetSubExprMatchCount; + // Number of subexpressions has been found in last Exec* call. + // If there are no subexpr. but whole expr was found (Exec* returned True), + // then SubExprMatchCount=0, if no subexpressions nor whole + // r.e. found (Exec* returned false) then SubExprMatchCount=-1. + // Note, that some subexpr. may be not found and for such + // subexpr. MathPos=MatchLen=-1 and Match=''. + // For example: Expression := '(1)?2(3)?'; + // Exec ('123'): SubExprMatchCount=2, Match[0]='123', [1]='1', [2]='3' + // Exec ('12'): SubExprMatchCount=1, Match[0]='12', [1]='1' + // Exec ('23'): SubExprMatchCount=2, Match[0]='23', [1]='', [2]='3' + // Exec ('2'): SubExprMatchCount=0, Match[0]='2' + // Exec ('7') - return False: SubExprMatchCount=-1 + + property MatchPos [Idx : integer] : integer read GetMatchPos; + // pos of entrance subexpr. #Idx into tested in last Exec* + // string. First subexpr. have Idx=1, last - MatchCount, + // whole r.e. have Idx=0. + // Returns -1 if in r.e. no such subexpr. or this subexpr. + // not found in input string. + + property MatchLen [Idx : integer] : integer read GetMatchLen; + // len of entrance subexpr. #Idx r.e. into tested in last Exec* + // string. First subexpr. have Idx=1, last - MatchCount, + // whole r.e. have Idx=0. + // Returns -1 if in r.e. no such subexpr. or this subexpr. + // not found in input string. + // Remember - MatchLen may be 0 (if r.e. match empty string) ! + + property Match [Idx : integer] : RegExprString read GetMatch; + // == copy (InputString, MatchPos [Idx], MatchLen [Idx]) + // Returns '' if in r.e. no such subexpr. or this subexpr. + // not found in input string. + + function LastError : integer; + // Returns ID of last error, 0 if no errors (unusable if + // Error method raises exception) and clear internal status + // into 0 (no errors). + + function ErrorMsg (AErrorID : integer) : RegExprString; virtual; + // Returns Error message for error with ID = AErrorID. + + property CompilerErrorPos : integer read GetCompilerErrorPos; + // Returns pos in r.e. there compiler stopped. + // Usefull for error diagnostics + + property SpaceChars : RegExprString read fSpaceChars write fSpaceChars; //###0.927 + // Contains chars, treated as /s (initially filled with RegExprSpaceChars + // global constant) + + property WordChars : RegExprString read fWordChars write fWordChars; //###0.929 + // Contains chars, treated as /w (initially filled with RegExprWordChars + // global constant) + + property LineSeparators : RegExprString read fLineSeparators write SetLineSeparators; //###0.941 + // line separators (like \n in Unix) + + property LinePairedSeparator : RegExprString read GetLinePairedSeparator write SetLinePairedSeparator; //###0.941 + // paired line separator (like \r\n in DOS and Windows). + // must contain exactly two chars or no chars at all + + class function InvertCaseFunction (const Ch : REChar) : REChar; + // Converts Ch into upper case if it in lower case or in lower + // if it in upper (uses current system local setings) + + property InvertCase : TRegExprInvertCaseFunction read fInvertCase write fInvertCase; //##0.935 + // Set this property if you want to override case-insensitive functionality. + // Create set it to RegExprInvertCaseFunction (InvertCaseFunction by default) + + procedure Compile; //###0.941 + // [Re]compile r.e. Usefull for example for GUI r.e. editors (to check + // all properties validity). + + {$IFDEF RegExpPCodeDump} + function Dump : RegExprString; + // dump a compiled regexp in vaguely comprehensible form + {$ENDIF} + end; + + ERegExpr = class (Exception) + public + ErrorCode : integer; + CompilerErrorPos : integer; + end; + +const + RegExprInvertCaseFunction : TRegExprInvertCaseFunction = {$IFDEF FPC} nil {$ELSE} TRegExpr.InvertCaseFunction{$ENDIF}; + // defaul for InvertCase property + +function ExecRegExpr (const ARegExpr, AInputStr : RegExprString) : boolean; +// true if string AInputString match regular expression ARegExpr +// ! will raise exeption if syntax errors in ARegExpr + +procedure SplitRegExpr (const ARegExpr, AInputStr : RegExprString; APieces : TStrings); +// Split AInputStr into APieces by r.e. ARegExpr occurencies + +function ReplaceRegExpr (const ARegExpr, AInputStr, AReplaceStr : RegExprString; + AUseSubstitution : boolean{$IFDEF DefParam}= False{$ENDIF}) : RegExprString; //###0.947 +// Returns AInputStr with r.e. occurencies replaced by AReplaceStr +// If AUseSubstitution is true, then AReplaceStr will be used +// as template for Substitution methods. +// For example: +// ReplaceRegExpr ('({-i}block|var)\s*\(\s*([^ ]*)\s*\)\s*', +// 'BLOCK( test1)', 'def "$1" value "$2"', True) +// will return: def 'BLOCK' value 'test1' +// ReplaceRegExpr ('({-i}block|var)\s*\(\s*([^ ]*)\s*\)\s*', +// 'BLOCK( test1)', 'def "$1" value "$2"') +// will return: def "$1" value "$2" + +function QuoteRegExprMetaChars (const AStr : RegExprString) : RegExprString; +// Replace all metachars with its safe representation, +// for example 'abc$cd.(' converts into 'abc\$cd\.\(' +// This function usefull for r.e. autogeneration from +// user input + +function RegExprSubExpressions (const ARegExpr : string; + ASubExprs : TStrings; AExtendedSyntax : boolean{$IFDEF DefParam}= False{$ENDIF}) : integer; +// Makes list of subexpressions found in ARegExpr r.e. +// In ASubExps every item represent subexpression, +// from first to last, in format: +// String - subexpression text (without '()') +// low word of Object - starting position in ARegExpr, including '(' +// if exists! (first position is 1) +// high word of Object - length, including starting '(' and ending ')' +// if exist! +// AExtendedSyntax - must be True if modifier /m will be On while +// using the r.e. +// Usefull for GUI editors of r.e. etc (You can find example of using +// in TestRExp.dpr project) +// Returns +// 0 Success. No unbalanced brackets was found; +// -1 There are not enough closing brackets ')'; +// -(n+1) At position n was found opening '[' without //###0.942 +// corresponding closing ']'; +// n At position n was found closing bracket ')' without +// corresponding opening '('. +// If Result <> 0, then ASubExpr can contain empty items or illegal ones + + +implementation + +uses + Windows; // CharUpper/Lower + +const + TRegExprVersionMajor : integer = 0; + TRegExprVersionMinor : integer = 952; + // TRegExpr.VersionMajor/Minor return values of this constants + + MaskModI = 1; // modifier /i bit in fModifiers + MaskModR = 2; // -"- /r + MaskModS = 4; // -"- /s + MaskModG = 8; // -"- /g + MaskModM = 16; // -"- /m + MaskModX = 32; // -"- /x + + {$IFDEF UniCode} + XIgnoredChars = ' '#9#$d#$a; + {$ELSE} + XIgnoredChars = [' ', #9, #$d, #$a]; + {$ENDIF} + +{=============================================================} +{=================== WideString functions ====================} +{=============================================================} + +{$IFDEF UniCode} + +function StrPCopy (Dest: PRegExprChar; const Source: RegExprString): PRegExprChar; + var + i, Len : Integer; + begin + Len := length (Source); //###0.932 + for i := 1 to Len do + Dest [i - 1] := Source [i]; + Dest [Len] := #0; + Result := Dest; + end; { of function StrPCopy +--------------------------------------------------------------} + +function StrLCopy (Dest, Source: PRegExprChar; MaxLen: Cardinal): PRegExprChar; + var i: Integer; + begin + for i := 0 to MaxLen - 1 do + Dest [i] := Source [i]; + Result := Dest; + end; { of function StrLCopy +--------------------------------------------------------------} + +function StrLen (Str: PRegExprChar): Cardinal; + begin + Result:=0; + while Str [result] <> #0 + do Inc (Result); + end; { of function StrLen +--------------------------------------------------------------} + +function StrPos (Str1, Str2: PRegExprChar): PRegExprChar; + var n: Integer; + begin + Result := nil; + n := Pos (RegExprString (Str2), RegExprString (Str1)); + if n = 0 + then EXIT; + Result := Str1 + n - 1; + end; { of function StrPos +--------------------------------------------------------------} + +function StrLComp (Str1, Str2: PRegExprChar; MaxLen: Cardinal): Integer; + var S1, S2: RegExprString; + begin + S1 := Str1; + S2 := Str2; + if Copy (S1, 1, MaxLen) > Copy (S2, 1, MaxLen) + then Result := 1 + else + if Copy (S1, 1, MaxLen) < Copy (S2, 1, MaxLen) + then Result := -1 + else Result := 0; + end; { function StrLComp +--------------------------------------------------------------} + +function StrScan (Str: PRegExprChar; Chr: WideChar): PRegExprChar; + begin + Result := nil; + while (Str^ <> #0) and (Str^ <> Chr) + do Inc (Str); + if (Str^ <> #0) + then Result := Str; + end; { of function StrScan +--------------------------------------------------------------} + +{$ENDIF} + + +{=============================================================} +{===================== Global functions ======================} +{=============================================================} + +function ExecRegExpr (const ARegExpr, AInputStr : RegExprString) : boolean; + var r : TRegExpr; + begin + r := TRegExpr.Create; + try + r.Expression := ARegExpr; + Result := r.Exec (AInputStr); + finally r.Free; + end; + end; { of function ExecRegExpr +--------------------------------------------------------------} + +procedure SplitRegExpr (const ARegExpr, AInputStr : RegExprString; APieces : TStrings); + var r : TRegExpr; + begin + APieces.Clear; + r := TRegExpr.Create; + try + r.Expression := ARegExpr; + r.Split (AInputStr, APieces); + finally r.Free; + end; + end; { of procedure SplitRegExpr +--------------------------------------------------------------} + +function ReplaceRegExpr (const ARegExpr, AInputStr, AReplaceStr : RegExprString; + AUseSubstitution : boolean{$IFDEF DefParam}= False{$ENDIF}) : RegExprString; + begin + with TRegExpr.Create do try + Expression := ARegExpr; + Result := Replace (AInputStr, AReplaceStr, AUseSubstitution); + finally Free; + end; + end; { of function ReplaceRegExpr +--------------------------------------------------------------} + +function QuoteRegExprMetaChars (const AStr : RegExprString) : RegExprString; + const + RegExprMetaSet : RegExprString = '^$.[()|?+*'+EscChar+'{' + + ']}'; // - this last are additional to META. + // Very similar to META array, but slighly changed. + // !Any changes in META array must be synchronized with this set. + var + i, i0, Len : integer; + begin + Result := ''; + Len := length (AStr); + i := 1; + i0 := i; + while i <= Len do begin + if Pos (AStr [i], RegExprMetaSet) > 0 then begin + Result := Result + System.Copy (AStr, i0, i - i0) + + EscChar + AStr [i]; + i0 := i + 1; + end; + inc (i); + end; + Result := Result + System.Copy (AStr, i0, MaxInt); // Tail + end; { of function QuoteRegExprMetaChars +--------------------------------------------------------------} + +function RegExprSubExpressions (const ARegExpr : string; + ASubExprs : TStrings; AExtendedSyntax : boolean{$IFDEF DefParam}= False{$ENDIF}) : integer; + type + TStackItemRec = record //###0.945 + SubExprIdx : integer; + StartPos : integer; + end; + TStackArray = packed array [0 .. NSUBEXPMAX - 1] of TStackItemRec; + var + Len, SubExprLen : integer; + i, i0 : integer; + Modif : integer; + Stack : ^TStackArray; //###0.945 + StackIdx, StackSz : integer; + begin + Result := 0; // no unbalanced brackets found at this very moment + + ASubExprs.Clear; // I don't think that adding to non empty list + // can be usefull, so I simplified algorithm to work only with empty list + + Len := length (ARegExpr); // some optimization tricks + + // first we have to calculate number of subexpression to reserve + // space in Stack array (may be we'll reserve more then need, but + // it's faster then memory reallocation during parsing) + StackSz := 1; // add 1 for entire r.e. + for i := 1 to Len do + if ARegExpr [i] = '(' + then inc (StackSz); +// SetLength (Stack, StackSz); //###0.945 + GetMem (Stack, SizeOf (TStackItemRec) * StackSz); + try + + StackIdx := 0; + i := 1; + while (i <= Len) do begin + case ARegExpr [i] of + '(': begin + if (i < Len) and (ARegExpr [i + 1] = '?') then begin + // this is not subexpression, but comment or other + // Perl extension. We must check is it (?ismxrg-ismxrg) + // and change AExtendedSyntax if /x is changed. + inc (i, 2); // skip '(?' + i0 := i; + while (i <= Len) and (ARegExpr [i] <> ')') + do inc (i); + if i > Len + then Result := -1 // unbalansed '(' + else + if TRegExpr.ParseModifiersStr (System.Copy (ARegExpr, i, i - i0), Modif) + then AExtendedSyntax := (Modif and MaskModX) <> 0; + end + else begin // subexpression starts + ASubExprs.Add (''); // just reserve space + with Stack [StackIdx] do begin + SubExprIdx := ASubExprs.Count - 1; + StartPos := i; + end; + inc (StackIdx); + end; + end; + ')': begin + if StackIdx = 0 + then Result := i // unbalanced ')' + else begin + dec (StackIdx); + with Stack [StackIdx] do begin + SubExprLen := i - StartPos + 1; + ASubExprs.Objects [SubExprIdx] := + TObject (StartPos or (SubExprLen ShL 16)); + ASubExprs [SubExprIdx] := System.Copy ( + ARegExpr, StartPos + 1, SubExprLen - 2); // add without brackets + end; + end; + end; + EscChar: inc (i); // skip quoted symbol + '[': begin + // we have to skip character ranges at once, because they can + // contain '#', and '#' in it must NOT be recognized as eXtended + // comment beginning! + i0 := i; + inc (i); + if ARegExpr [i] = ']' // cannot be 'emty' ranges - this interpretes + then inc (i); // as ']' by itself + while (i <= Len) and (ARegExpr [i] <> ']') do + if ARegExpr [i] = EscChar //###0.942 + then inc (i, 2) // skip 'escaped' char to prevent stopping at '\]' + else inc (i); + if (i > Len) or (ARegExpr [i] <> ']') //###0.942 + then Result := - (i0 + 1); // unbalansed '[' //###0.942 + end; + '#': if AExtendedSyntax then begin + // skip eXtended comments + while (i <= Len) and (ARegExpr [i] <> #$d) and (ARegExpr [i] <> #$a) + // do not use [#$d, #$a] due to UniCode compatibility + do inc (i); + while (i + 1 <= Len) and ((ARegExpr [i + 1] = #$d) or (ARegExpr [i + 1] = #$a)) + do inc (i); // attempt to work with different kinds of line separators + // now we are at the line separator that must be skipped. + end; + // here is no 'else' clause - we simply skip ordinary chars + end; // of case + inc (i); // skip scanned char + // ! can move after Len due to skipping quoted symbol + end; + + // check brackets balance + if StackIdx <> 0 + then Result := -1; // unbalansed '(' + + // check if entire r.e. added + if (ASubExprs.Count = 0) + or ((integer (ASubExprs.Objects [0]) and $FFFF) <> 1) + or (((integer (ASubExprs.Objects [0]) ShR 16) and $FFFF) <> Len) + // whole r.e. wasn't added because it isn't bracketed + // well, we add it now: + then ASubExprs.InsertObject (0, ARegExpr, TObject ((Len ShL 16) or 1)); + + finally FreeMem (Stack); + end; + end; { of function RegExprSubExpressions +--------------------------------------------------------------} + + + +const + MAGIC = TREOp (216);// programm signature + +// name opcode opnd? meaning + EEND = TREOp (0); // - End of program + BOL = TREOp (1); // - Match "" at beginning of line + EOL = TREOp (2); // - Match "" at end of line + ANY = TREOp (3); // - Match any one character + ANYOF = TREOp (4); // Str Match any character in string Str + ANYBUT = TREOp (5); // Str Match any char. not in string Str + BRANCH = TREOp (6); // Node Match this alternative, or the next + BACK = TREOp (7); // - Jump backward (Next < 0) + EXACTLY = TREOp (8); // Str Match string Str + NOTHING = TREOp (9); // - Match empty string + STAR = TREOp (10); // Node Match this (simple) thing 0 or more times + PLUS = TREOp (11); // Node Match this (simple) thing 1 or more times + ANYDIGIT = TREOp (12); // - Match any digit (equiv [0-9]) + NOTDIGIT = TREOp (13); // - Match not digit (equiv [0-9]) + ANYLETTER = TREOp (14); // - Match any letter from property WordChars + NOTLETTER = TREOp (15); // - Match not letter from property WordChars + ANYSPACE = TREOp (16); // - Match any space char (see property SpaceChars) + NOTSPACE = TREOp (17); // - Match not space char (see property SpaceChars) + BRACES = TREOp (18); // Node,Min,Max Match this (simple) thing from Min to Max times. + // Min and Max are TREBracesArg + COMMENT = TREOp (19); // - Comment ;) + EXACTLYCI = TREOp (20); // Str Match string Str case insensitive + ANYOFCI = TREOp (21); // Str Match any character in string Str, case insensitive + ANYBUTCI = TREOp (22); // Str Match any char. not in string Str, case insensitive + LOOPENTRY = TREOp (23); // Node Start of loop (Node - LOOP for this loop) + LOOP = TREOp (24); // Node,Min,Max,LoopEntryJmp - back jump for LOOPENTRY. + // Min and Max are TREBracesArg + // Node - next node in sequence, + // LoopEntryJmp - associated LOOPENTRY node addr + ANYOFTINYSET= TREOp (25); // Chrs Match any one char from Chrs (exactly TinySetLen chars) + ANYBUTTINYSET=TREOp (26); // Chrs Match any one char not in Chrs (exactly TinySetLen chars) + ANYOFFULLSET= TREOp (27); // Set Match any one char from set of char + // - very fast (one CPU instruction !) but takes 32 bytes of p-code + BSUBEXP = TREOp (28); // Idx Match previously matched subexpression #Idx (stored as REChar) //###0.936 + BSUBEXPCI = TREOp (29); // Idx -"- in case-insensitive mode + + // Non-Greedy Style Ops //###0.940 + STARNG = TREOp (30); // Same as START but in non-greedy mode + PLUSNG = TREOp (31); // Same as PLUS but in non-greedy mode + BRACESNG = TREOp (32); // Same as BRACES but in non-greedy mode + LOOPNG = TREOp (33); // Same as LOOP but in non-greedy mode + + // Multiline mode \m + BOLML = TREOp (34); // - Match "" at beginning of line + EOLML = TREOp (35); // - Match "" at end of line + ANYML = TREOp (36); // - Match any one character + + // Word boundary + BOUND = TREOp (37); // Match "" between words //###0.943 + NOTBOUND = TREOp (38); // Match "" not between words //###0.943 + + // !!! Change OPEN value if you add new opcodes !!! + + OPEN = TREOp (39); // - Mark this point in input as start of \n + // OPEN + 1 is \1, etc. + CLOSE = TREOp (ord (OPEN) + NSUBEXP); + // - Analogous to OPEN. + + // !!! Don't add new OpCodes after CLOSE !!! + +// We work with p-code thru pointers, compatible with PRegExprChar. +// Note: all code components (TRENextOff, TREOp, TREBracesArg, etc) +// must have lengths that can be divided by SizeOf (REChar) ! +// A node is TREOp of opcode followed Next "pointer" of TRENextOff type. +// The Next is a offset from the opcode of the node containing it. +// An operand, if any, simply follows the node. (Note that much of +// the code generation knows about this implicit relationship!) +// Using TRENextOff=integer speed up p-code processing. + +// Opcodes description: +// +// BRANCH The set of branches constituting a single choice are hooked +// together with their "next" pointers, since precedence prevents +// anything being concatenated to any individual branch. The +// "next" pointer of the last BRANCH in a choice points to the +// thing following the whole choice. This is also where the +// final "next" pointer of each individual branch points; each +// branch starts with the operand node of a BRANCH node. +// BACK Normal "next" pointers all implicitly point forward; BACK +// exists to make loop structures possible. +// STAR,PLUS,BRACES '?', and complex '*' and '+', are implemented as +// circular BRANCH structures using BACK. Complex '{min,max}' +// - as pair LOOPENTRY-LOOP (see below). Simple cases (one +// character per match) are implemented with STAR, PLUS and +// BRACES for speed and to minimize recursive plunges. +// LOOPENTRY,LOOP {min,max} are implemented as special pair +// LOOPENTRY-LOOP. Each LOOPENTRY initialize loopstack for +// current level. +// OPEN,CLOSE are numbered at compile time. + + +{=============================================================} +{================== Error handling section ===================} +{=============================================================} + +const + reeOk = 0; + reeCompNullArgument = 100; + reeCompRegexpTooBig = 101; + reeCompParseRegTooManyBrackets = 102; + reeCompParseRegUnmatchedBrackets = 103; + reeCompParseRegUnmatchedBrackets2 = 104; + reeCompParseRegJunkOnEnd = 105; + reePlusStarOperandCouldBeEmpty = 106; + reeNestedSQP = 107; + reeBadHexDigit = 108; + reeInvalidRange = 109; + reeParseAtomTrailingBackSlash = 110; + reeNoHexCodeAfterBSlashX = 111; + reeHexCodeAfterBSlashXTooBig = 112; + reeUnmatchedSqBrackets = 113; + reeInternalUrp = 114; + reeQPSBFollowsNothing = 115; + reeTrailingBackSlash = 116; + reeRarseAtomInternalDisaster = 119; + reeBRACESArgTooBig = 122; + reeBracesMinParamGreaterMax = 124; + reeUnclosedComment = 125; + reeComplexBracesNotImplemented = 126; + reeUrecognizedModifier = 127; + reeBadLinePairedSeparator = 128; + reeRegRepeatCalledInappropriately = 1000; + reeMatchPrimMemoryCorruption = 1001; + reeMatchPrimCorruptedPointers = 1002; + reeNoExpression = 1003; + reeCorruptedProgram = 1004; + reeNoInpitStringSpecified = 1005; + reeOffsetMustBeGreaterThen0 = 1006; + reeExecNextWithoutExec = 1007; + reeGetInputStringWithoutInputString = 1008; + reeDumpCorruptedOpcode = 1011; + reeModifierUnsupported = 1013; + reeLoopStackExceeded = 1014; + reeLoopWithoutEntry = 1015; + reeBadPCodeImported = 2000; + +function TRegExpr.ErrorMsg (AErrorID : integer) : RegExprString; + begin + case AErrorID of + reeOk: Result := 'No errors'; + reeCompNullArgument: Result := 'TRegExpr(comp): Null Argument'; + reeCompRegexpTooBig: Result := 'TRegExpr(comp): Regexp Too Big'; + reeCompParseRegTooManyBrackets: Result := 'TRegExpr(comp): ParseReg Too Many ()'; + reeCompParseRegUnmatchedBrackets: Result := 'TRegExpr(comp): ParseReg Unmatched ()'; + reeCompParseRegUnmatchedBrackets2: Result := 'TRegExpr(comp): ParseReg Unmatched ()'; + reeCompParseRegJunkOnEnd: Result := 'TRegExpr(comp): ParseReg Junk On End'; + reePlusStarOperandCouldBeEmpty: Result := 'TRegExpr(comp): *+ Operand Could Be Empty'; + reeNestedSQP: Result := 'TRegExpr(comp): Nested *?+'; + reeBadHexDigit: Result := 'TRegExpr(comp): Bad Hex Digit'; + reeInvalidRange: Result := 'TRegExpr(comp): Invalid [] Range'; + reeParseAtomTrailingBackSlash: Result := 'TRegExpr(comp): Parse Atom Trailing \'; + reeNoHexCodeAfterBSlashX: Result := 'TRegExpr(comp): No Hex Code After \x'; + reeHexCodeAfterBSlashXTooBig: Result := 'TRegExpr(comp): Hex Code After \x Is Too Big'; + reeUnmatchedSqBrackets: Result := 'TRegExpr(comp): Unmatched []'; + reeInternalUrp: Result := 'TRegExpr(comp): Internal Urp'; + reeQPSBFollowsNothing: Result := 'TRegExpr(comp): ?+*{ Follows Nothing'; + reeTrailingBackSlash: Result := 'TRegExpr(comp): Trailing \'; + reeRarseAtomInternalDisaster: Result := 'TRegExpr(comp): RarseAtom Internal Disaster'; + reeBRACESArgTooBig: Result := 'TRegExpr(comp): BRACES Argument Too Big'; + reeBracesMinParamGreaterMax: Result := 'TRegExpr(comp): BRACE Min Param Greater then Max'; + reeUnclosedComment: Result := 'TRegExpr(comp): Unclosed (?#Comment)'; + reeComplexBracesNotImplemented: Result := 'TRegExpr(comp): If you want take part in beta-testing BRACES ''{min,max}'' and non-greedy ops ''*?'', ''+?'', ''??'' for complex cases - remove ''.'' from {.$DEFINE ComplexBraces}'; + reeUrecognizedModifier: Result := 'TRegExpr(comp): Urecognized Modifier'; + reeBadLinePairedSeparator: Result := 'TRegExpr(comp): LinePairedSeparator must countain two different chars or no chars at all'; + + reeRegRepeatCalledInappropriately: Result := 'TRegExpr(exec): RegRepeat Called Inappropriately'; + reeMatchPrimMemoryCorruption: Result := 'TRegExpr(exec): MatchPrim Memory Corruption'; + reeMatchPrimCorruptedPointers: Result := 'TRegExpr(exec): MatchPrim Corrupted Pointers'; + reeNoExpression: Result := 'TRegExpr(exec): Not Assigned Expression Property'; + reeCorruptedProgram: Result := 'TRegExpr(exec): Corrupted Program'; + reeNoInpitStringSpecified: Result := 'TRegExpr(exec): No Input String Specified'; + reeOffsetMustBeGreaterThen0: Result := 'TRegExpr(exec): Offset Must Be Greater Then 0'; + reeExecNextWithoutExec: Result := 'TRegExpr(exec): ExecNext Without Exec[Pos]'; + reeGetInputStringWithoutInputString: Result := 'TRegExpr(exec): GetInputString Without InputString'; + reeDumpCorruptedOpcode: Result := 'TRegExpr(dump): Corrupted Opcode'; + reeLoopStackExceeded: Result := 'TRegExpr(exec): Loop Stack Exceeded'; + reeLoopWithoutEntry: Result := 'TRegExpr(exec): Loop Without LoopEntry !'; + + reeBadPCodeImported: Result := 'TRegExpr(misc): Bad p-code imported'; + else Result := 'Unknown error'; + end; + end; { of procedure TRegExpr.Error +--------------------------------------------------------------} + +function TRegExpr.LastError : integer; + begin + Result := fLastError; + fLastError := reeOk; + end; { of function TRegExpr.LastError +--------------------------------------------------------------} + + +{=============================================================} +{===================== Common section ========================} +{=============================================================} + +class function TRegExpr.VersionMajor : integer; //###0.944 + begin + Result := TRegExprVersionMajor; + end; { of class function TRegExpr.VersionMajor +--------------------------------------------------------------} + +class function TRegExpr.VersionMinor : integer; //###0.944 + begin + Result := TRegExprVersionMinor; + end; { of class function TRegExpr.VersionMinor +--------------------------------------------------------------} + +constructor TRegExpr.Create; + begin + inherited; + programm := nil; + fExpression := nil; + fInputString := nil; + + regexpbeg := nil; + fExprIsCompiled := false; + + ModifierI := RegExprModifierI; + ModifierR := RegExprModifierR; + ModifierS := RegExprModifierS; + ModifierG := RegExprModifierG; + ModifierM := RegExprModifierM; //###0.940 + + SpaceChars := RegExprSpaceChars; //###0.927 + WordChars := RegExprWordChars; //###0.929 + fInvertCase := RegExprInvertCaseFunction; //###0.927 + + fLineSeparators := RegExprLineSeparators; //###0.941 + LinePairedSeparator := RegExprLinePairedSeparator; //###0.941 + end; { of constructor TRegExpr.Create +--------------------------------------------------------------} + +destructor TRegExpr.Destroy; + begin + if programm <> nil + then FreeMem (programm); + if fExpression <> nil + then FreeMem (fExpression); + if fInputString <> nil + then FreeMem (fInputString); + end; { of destructor TRegExpr.Destroy +--------------------------------------------------------------} + +class function TRegExpr.InvertCaseFunction (const Ch : REChar) : REChar; + begin + {$IFDEF UniCode} + if Ch >= #128 + then Result := Ch + else + {$ENDIF} + begin + Result := {$IFDEF FPC}AnsiUpperCase (Ch) [1]{$ELSE} REChar (CharUpper (PChar (Ch))){$ENDIF}; + if Result = Ch + then Result := {$IFDEF FPC}AnsiLowerCase (Ch) [1]{$ELSE} REChar (CharLower (PChar (Ch))){$ENDIF}; + end; + end; { of function TRegExpr.InvertCaseFunction +--------------------------------------------------------------} + +function TRegExpr.GetExpression : RegExprString; + begin + if fExpression <> nil + then Result := fExpression + else Result := ''; + end; { of function TRegExpr.GetExpression +--------------------------------------------------------------} + +procedure TRegExpr.SetExpression (const s : RegExprString); + var + Len : integer; //###0.950 + begin + if (s <> fExpression) or not fExprIsCompiled then begin + fExprIsCompiled := false; + if fExpression <> nil then begin + FreeMem (fExpression); + fExpression := nil; + end; + if s <> '' then begin + Len := length (s); //###0.950 + GetMem (fExpression, (Len + 1) * SizeOf (REChar)); +// StrPCopy (fExpression, s); //###0.950 replaced due to StrPCopy limitation of 255 chars + {$IFDEF UniCode} + StrPCopy (fExpression, Copy (s, 1, Len)); //###0.950 + {$ELSE} + StrLCopy (fExpression, PRegExprChar (s), Len); //###0.950 + {$ENDIF UniCode} + + InvalidateProgramm; //###0.941 + end; + end; + end; { of procedure TRegExpr.SetExpression +--------------------------------------------------------------} + +function TRegExpr.GetSubExprMatchCount : integer; + begin + if Assigned (fInputString) then begin + Result := NSUBEXP - 1; + while (Result > 0) and ((startp [Result] = nil) + or (endp [Result] = nil)) + do dec (Result); + end + else Result := -1; + end; { of function TRegExpr.GetSubExprMatchCount +--------------------------------------------------------------} + +function TRegExpr.GetMatchPos (Idx : integer) : integer; + begin + if (Idx >= 0) and (Idx < NSUBEXP) and Assigned (fInputString) + and Assigned (startp [Idx]) and Assigned (endp [Idx]) then begin + Result := (startp [Idx] - fInputString) + 1; + end + else Result := -1; + end; { of function TRegExpr.GetMatchPos +--------------------------------------------------------------} + +function TRegExpr.GetMatchLen (Idx : integer) : integer; + begin + if (Idx >= 0) and (Idx < NSUBEXP) and Assigned (fInputString) + and Assigned (startp [Idx]) and Assigned (endp [Idx]) then begin + Result := endp [Idx] - startp [Idx]; + end + else Result := -1; + end; { of function TRegExpr.GetMatchLen +--------------------------------------------------------------} + +function TRegExpr.GetMatch (Idx : integer) : RegExprString; + begin + if (Idx >= 0) and (Idx < NSUBEXP) and Assigned (fInputString) + and Assigned (startp [Idx]) and Assigned (endp [Idx]) + //then Result := copy (fInputString, MatchPos [Idx], MatchLen [Idx]) //###0.929 + then SetString (Result, startp [idx], endp [idx] - startp [idx]) + else Result := ''; + end; { of function TRegExpr.GetMatch +--------------------------------------------------------------} + +function TRegExpr.GetModifierStr : RegExprString; + begin + Result := '-'; + + if ModifierI + then Result := 'i' + Result + else Result := Result + 'i'; + if ModifierR + then Result := 'r' + Result + else Result := Result + 'r'; + if ModifierS + then Result := 's' + Result + else Result := Result + 's'; + if ModifierG + then Result := 'g' + Result + else Result := Result + 'g'; + if ModifierM + then Result := 'm' + Result + else Result := Result + 'm'; + if ModifierX + then Result := 'x' + Result + else Result := Result + 'x'; + + if Result [length (Result)] = '-' // remove '-' if all modifiers are 'On' + then System.Delete (Result, length (Result), 1); + end; { of function TRegExpr.GetModifierStr +--------------------------------------------------------------} + +class function TRegExpr.ParseModifiersStr (const AModifiers : RegExprString; +var AModifiersInt : integer) : boolean; +// !!! Be carefull - this is class function and must not use object instance fields + var + i : integer; + IsOn : boolean; + Mask : integer; + begin + Result := true; + IsOn := true; + Mask := 0; // prevent compiler warning + for i := 1 to length (AModifiers) do + if AModifiers [i] = '-' + then IsOn := false + else begin + if Pos (AModifiers [i], 'iI') > 0 + then Mask := MaskModI + else if Pos (AModifiers [i], 'rR') > 0 + then Mask := MaskModR + else if Pos (AModifiers [i], 'sS') > 0 + then Mask := MaskModS + else if Pos (AModifiers [i], 'gG') > 0 + then Mask := MaskModG + else if Pos (AModifiers [i], 'mM') > 0 + then Mask := MaskModM + else if Pos (AModifiers [i], 'xX') > 0 + then Mask := MaskModX + else begin + Result := false; + EXIT; + end; + if IsOn + then AModifiersInt := AModifiersInt or Mask + else AModifiersInt := AModifiersInt and not Mask; + end; + end; { of function TRegExpr.ParseModifiersStr +--------------------------------------------------------------} + +procedure TRegExpr.SetModifierStr (const AModifiers : RegExprString); + begin + if not ParseModifiersStr (AModifiers, fModifiers) + then Error (reeModifierUnsupported); + end; { of procedure TRegExpr.SetModifierStr +--------------------------------------------------------------} + +function TRegExpr.GetModifier (AIndex : integer) : boolean; + var + Mask : integer; + begin + Result := false; + case AIndex of + 1: Mask := MaskModI; + 2: Mask := MaskModR; + 3: Mask := MaskModS; + 4: Mask := MaskModG; + 5: Mask := MaskModM; + 6: Mask := MaskModX; + else begin + Error (reeModifierUnsupported); + EXIT; + end; + end; + Result := (fModifiers and Mask) <> 0; + end; { of function TRegExpr.GetModifier +--------------------------------------------------------------} + +procedure TRegExpr.SetModifier (AIndex : integer; ASet : boolean); + var + Mask : integer; + begin + case AIndex of + 1: Mask := MaskModI; + 2: Mask := MaskModR; + 3: Mask := MaskModS; + 4: Mask := MaskModG; + 5: Mask := MaskModM; + 6: Mask := MaskModX; + else begin + Error (reeModifierUnsupported); + EXIT; + end; + end; + if ASet + then fModifiers := fModifiers or Mask + else fModifiers := fModifiers and not Mask; + end; { of procedure TRegExpr.SetModifier +--------------------------------------------------------------} + + +{=============================================================} +{==================== Compiler section =======================} +{=============================================================} + +procedure TRegExpr.InvalidateProgramm; + begin + if programm <> nil then begin + FreeMem (programm); + programm := nil; + end; + end; { of procedure TRegExpr.InvalidateProgramm +--------------------------------------------------------------} + +procedure TRegExpr.Compile; //###0.941 + begin + if fExpression = nil then begin // No Expression assigned + Error (reeNoExpression); + EXIT; + end; + CompileRegExpr (fExpression); + end; { of procedure TRegExpr.Compile +--------------------------------------------------------------} + +function TRegExpr.IsProgrammOk : boolean; + {$IFNDEF UniCode} + var + i : integer; + {$ENDIF} + begin + Result := false; + + // check modifiers + if fModifiers <> fProgModifiers //###0.941 + then InvalidateProgramm; + + // can we optimize line separators by using sets? + {$IFNDEF UniCode} + fLineSeparatorsSet := []; + for i := 1 to length (fLineSeparators) + do System.Include (fLineSeparatorsSet, fLineSeparators [i]); + {$ENDIF} + + // [Re]compile if needed + if programm = nil + then Compile; //###0.941 + + // check [re]compiled programm + if programm = nil + then EXIT // error was set/raised by Compile (was reeExecAfterCompErr) + else if programm [0] <> MAGIC // Program corrupted. + then Error (reeCorruptedProgram) + else Result := true; + end; { of function TRegExpr.IsProgrammOk +--------------------------------------------------------------} + +procedure TRegExpr.Tail (p : PRegExprChar; val : PRegExprChar); +// set the next-pointer at the end of a node chain + var + scan : PRegExprChar; + temp : PRegExprChar; +// i : int64; + begin + if p = @regdummy + then EXIT; + // Find last node. + scan := p; + REPEAT + temp := regnext (scan); + if temp = nil + then BREAK; + scan := temp; + UNTIL false; + // Set Next 'pointer' + if val < scan + then PRENextOff (scan + REOpSz)^ := - (scan - val) //###0.948 + // work around PWideChar subtraction bug (Delphi uses + // shr after subtraction to calculate widechar distance %-( ) + // so, if difference is negative we have .. the "feature" :( + // I could wrap it in $IFDEF UniCode, but I didn't because + // "P Q computes the difference between the address given + // by P (the higher address) and the address given by Q (the + // lower address)" - Delphi help quotation. + else PRENextOff (scan + REOpSz)^ := val - scan; //###0.933 + end; { of procedure TRegExpr.Tail +--------------------------------------------------------------} + +procedure TRegExpr.OpTail (p : PRegExprChar; val : PRegExprChar); +// regtail on operand of first argument; nop if operandless + begin + // "Operandless" and "op != BRANCH" are synonymous in practice. + if (p = nil) or (p = @regdummy) or (PREOp (p)^ <> BRANCH) + then EXIT; + Tail (p + REOpSz + RENextOffSz, val); //###0.933 + end; { of procedure TRegExpr.OpTail +--------------------------------------------------------------} + +function TRegExpr.EmitNode (op : TREOp) : PRegExprChar; //###0.933 +// emit a node, return location + begin + Result := regcode; + if Result <> @regdummy then begin + PREOp (regcode)^ := op; + inc (regcode, REOpSz); + PRENextOff (regcode)^ := 0; // Next "pointer" := nil + inc (regcode, RENextOffSz); + end + else inc (regsize, REOpSz + RENextOffSz); // compute code size without code generation + end; { of function TRegExpr.EmitNode +--------------------------------------------------------------} + +procedure TRegExpr.EmitC (b : REChar); +// emit a byte to code + begin + if regcode <> @regdummy then begin + regcode^ := b; + inc (regcode); + end + else inc (regsize); // Type of p-code pointer always is ^REChar + end; { of procedure TRegExpr.EmitC +--------------------------------------------------------------} + +procedure TRegExpr.InsertOperator (op : TREOp; opnd : PRegExprChar; sz : integer); +// insert an operator in front of already-emitted operand +// Means relocating the operand. + var + src, dst, place : PRegExprChar; + i : integer; + begin + if regcode = @regdummy then begin + inc (regsize, sz); + EXIT; + end; + src := regcode; + inc (regcode, sz); + dst := regcode; + while src > opnd do begin + dec (dst); + dec (src); + dst^ := src^; + end; + place := opnd; // Op node, where operand used to be. + PREOp (place)^ := op; + inc (place, REOpSz); + for i := 1 + REOpSz to sz do begin + place^ := #0; + inc (place); + end; + end; { of procedure TRegExpr.InsertOperator +--------------------------------------------------------------} + +function strcspn (s1 : PRegExprChar; s2 : PRegExprChar) : integer; +// find length of initial segment of s1 consisting +// entirely of characters not from s2 + var scan1, scan2 : PRegExprChar; + begin + Result := 0; + scan1 := s1; + while scan1^ <> #0 do begin + scan2 := s2; + while scan2^ <> #0 do + if scan1^ = scan2^ + then EXIT + else inc (scan2); + inc (Result); + inc (scan1) + end; + end; { of function strcspn +--------------------------------------------------------------} + +const +// Flags to be passed up and down. + HASWIDTH = 01; // Known never to match nil string. + SIMPLE = 02; // Simple enough to be STAR/PLUS/BRACES operand. + SPSTART = 04; // Starts with * or +. + WORST = 0; // Worst case. + META : array [0 .. 12] of REChar = ( + '^', '$', '.', '[', '(', ')', '|', '?', '+', '*', EscChar, '{', #0); + // Any modification must be synchronized with QuoteRegExprMetaChars !!! + +{$IFDEF UniCode} + RusRangeLo : array [0 .. 33] of REChar = + (#$430,#$431,#$432,#$433,#$434,#$435,#$451,#$436,#$437, + #$438,#$439,#$43A,#$43B,#$43C,#$43D,#$43E,#$43F, + #$440,#$441,#$442,#$443,#$444,#$445,#$446,#$447, + #$448,#$449,#$44A,#$44B,#$44C,#$44D,#$44E,#$44F,#0); + RusRangeHi : array [0 .. 33] of REChar = + (#$410,#$411,#$412,#$413,#$414,#$415,#$401,#$416,#$417, + #$418,#$419,#$41A,#$41B,#$41C,#$41D,#$41E,#$41F, + #$420,#$421,#$422,#$423,#$424,#$425,#$426,#$427, + #$428,#$429,#$42A,#$42B,#$42C,#$42D,#$42E,#$42F,#0); + RusRangeLoLow = #$430{''}; + RusRangeLoHigh = #$44F{''}; + RusRangeHiLow = #$410{''}; + RusRangeHiHigh = #$42F{''}; +{$ELSE} + RusRangeLo = ''; + RusRangeHi = 'Ũ'; + RusRangeLoLow = ''; + RusRangeLoHigh = ''; + RusRangeHiLow = ''; + RusRangeHiHigh = ''; +{$ENDIF} + +function TRegExpr.CompileRegExpr (exp : PRegExprChar) : boolean; +// compile a regular expression into internal code +// We can't allocate space until we know how big the compiled form will be, +// but we can't compile it (and thus know how big it is) until we've got a +// place to put the code. So we cheat: we compile it twice, once with code +// generation turned off and size counting turned on, and once "for real". +// This also means that we don't allocate space until we are sure that the +// thing really will compile successfully, and we never have to move the +// code and thus invalidate pointers into it. (Note that it has to be in +// one piece because free() must be able to free it all.) +// Beware that the optimization-preparation code in here knows about some +// of the structure of the compiled regexp. + var + scan, longest : PRegExprChar; + len : cardinal; + flags : integer; + begin + Result := false; // life too dark + + regparse := nil; // for correct error handling + regexpbeg := exp; + try + + if programm <> nil then begin + FreeMem (programm); + programm := nil; + end; + + if exp = nil then begin + Error (reeCompNullArgument); + EXIT; + end; + + fProgModifiers := fModifiers; + // well, may it's paranoia. I'll check it later... !!!!!!!! + + // First pass: determine size, legality. + fCompModifiers := fModifiers; + regparse := exp; + regnpar := 1; + regsize := 0; + regcode := @regdummy; + EmitC (MAGIC); + if ParseReg (0, flags) = nil + then EXIT; + + // Small enough for 2-bytes programm pointers ? + // ###0.933 no real p-code length limits now :))) +// if regsize >= 64 * 1024 then begin +// Error (reeCompRegexpTooBig); +// EXIT; +// end; + + // Allocate space. + GetMem (programm, regsize * SizeOf (REChar)); + + // Second pass: emit code. + fCompModifiers := fModifiers; + regparse := exp; + regnpar := 1; + regcode := programm; + EmitC (MAGIC); + if ParseReg (0, flags) = nil + then EXIT; + + // Dig out information for optimizations. + {$IFDEF UseFirstCharSet} //###0.929 + FirstCharSet := []; + FillFirstCharSet (programm + REOpSz); + {$ENDIF} + regstart := #0; // Worst-case defaults. + reganch := #0; + regmust := nil; + regmlen := 0; + scan := programm + REOpSz; // First BRANCH. + if PREOp (regnext (scan))^ = EEND then begin // Only one top-level choice. + scan := scan + REOpSz + RENextOffSz; + + // Starting-point info. + if PREOp (scan)^ = EXACTLY + then regstart := (scan + REOpSz + RENextOffSz)^ + else if PREOp (scan)^ = BOL + then inc (reganch); + + // If there's something expensive in the r.e., find the longest + // literal string that must appear and make it the regmust. Resolve + // ties in favor of later strings, since the regstart check works + // with the beginning of the r.e. and avoiding duplication + // strengthens checking. Not a strong reason, but sufficient in the + // absence of others. + if (flags and SPSTART) <> 0 then begin + longest := nil; + len := 0; + while scan <> nil do begin + if (PREOp (scan)^ = EXACTLY) + and (strlen (scan + REOpSz + RENextOffSz) >= len) then begin + longest := scan + REOpSz + RENextOffSz; + len := strlen (longest); + end; + scan := regnext (scan); + end; + regmust := longest; + regmlen := len; + end; + end; + + Result := true; + + finally begin + if not Result + then InvalidateProgramm; + regexpbeg := nil; + fExprIsCompiled := Result; //###0.944 + end; + end; + + end; { of function TRegExpr.CompileRegExpr +--------------------------------------------------------------} + +function TRegExpr.ParseReg (paren : integer; var flagp : integer) : PRegExprChar; +// regular expression, i.e. main body or parenthesized thing +// Caller must absorb opening parenthesis. +// Combining parenthesis handling with the base level of regular expression +// is a trifle forced, but the need to tie the tails of the branches to what +// follows makes it hard to avoid. + var + ret, br, ender : PRegExprChar; + parno : integer; + flags : integer; + SavedModifiers : integer; + begin + Result := nil; + flagp := HASWIDTH; // Tentatively. + parno := 0; // eliminate compiler stupid warning + SavedModifiers := fCompModifiers; + + // Make an OPEN node, if parenthesized. + if paren <> 0 then begin + if regnpar >= NSUBEXP then begin + Error (reeCompParseRegTooManyBrackets); + EXIT; + end; + parno := regnpar; + inc (regnpar); + ret := EmitNode (TREOp (ord (OPEN) + parno)); + end + else ret := nil; + + // Pick up the branches, linking them together. + br := ParseBranch (flags); + if br = nil then begin + Result := nil; + EXIT; + end; + if ret <> nil + then Tail (ret, br) // OPEN -> first. + else ret := br; + if (flags and HASWIDTH) = 0 + then flagp := flagp and not HASWIDTH; + flagp := flagp or flags and SPSTART; + while (regparse^ = '|') do begin + inc (regparse); + br := ParseBranch (flags); + if br = nil then begin + Result := nil; + EXIT; + end; + Tail (ret, br); // BRANCH -> BRANCH. + if (flags and HASWIDTH) = 0 + then flagp := flagp and not HASWIDTH; + flagp := flagp or flags and SPSTART; + end; + + // Make a closing node, and hook it on the end. + if paren <> 0 + then ender := EmitNode (TREOp (ord (CLOSE) + parno)) + else ender := EmitNode (EEND); + Tail (ret, ender); + + // Hook the tails of the branches to the closing node. + br := ret; + while br <> nil do begin + OpTail (br, ender); + br := regnext (br); + end; + + // Check for proper termination. + if paren <> 0 then + if regparse^ <> ')' then begin + Error (reeCompParseRegUnmatchedBrackets); + EXIT; + end + else inc (regparse); // skip trailing ')' + if (paren = 0) and (regparse^ <> #0) then begin + if regparse^ = ')' + then Error (reeCompParseRegUnmatchedBrackets2) + else Error (reeCompParseRegJunkOnEnd); + EXIT; + end; + fCompModifiers := SavedModifiers; // restore modifiers of parent + Result := ret; + end; { of function TRegExpr.ParseReg +--------------------------------------------------------------} + +function TRegExpr.ParseBranch (var flagp : integer) : PRegExprChar; +// one alternative of an | operator +// Implements the concatenation operator. + var + ret, chain, latest : PRegExprChar; + flags : integer; + begin + flagp := WORST; // Tentatively. + + ret := EmitNode (BRANCH); + chain := nil; + while (regparse^ <> #0) and (regparse^ <> '|') + and (regparse^ <> ')') do begin + latest := ParsePiece (flags); + if latest = nil then begin + Result := nil; + EXIT; + end; + flagp := flagp or flags and HASWIDTH; + if chain = nil // First piece. + then flagp := flagp or flags and SPSTART + else Tail (chain, latest); + chain := latest; + end; + if chain = nil // Loop ran zero times. + then EmitNode (NOTHING); + Result := ret; + end; { of function TRegExpr.ParseBranch +--------------------------------------------------------------} + +function TRegExpr.ParsePiece (var flagp : integer) : PRegExprChar; +// something followed by possible [*+?{] +// Note that the branching code sequences used for ? and the general cases +// of * and + and { are somewhat optimized: they use the same NOTHING node as +// both the endmarker for their branch list and the body of the last branch. +// It might seem that this node could be dispensed with entirely, but the +// endmarker role is not redundant. + function parsenum (AStart, AEnd : PRegExprChar) : TREBracesArg; + begin + Result := 0; + if AEnd - AStart + 1 > 8 then begin // prevent stupid scanning + Error (reeBRACESArgTooBig); + EXIT; + end; + while AStart <= AEnd do begin + Result := Result * 10 + (ord (AStart^) - ord ('0')); + inc (AStart); + end; + if (Result > MaxBracesArg) or (Result < 0) then begin + Error (reeBRACESArgTooBig); + EXIT; + end; + end; + + var + op : REChar; + NonGreedyOp, NonGreedyCh : boolean; //###0.940 + TheOp : TREOp; //###0.940 + NextNode : PRegExprChar; + flags : integer; + BracesMin, Bracesmax : TREBracesArg; + p, savedparse : PRegExprChar; + + procedure EmitComplexBraces (ABracesMin, ABracesMax : TREBracesArg; + ANonGreedyOp : boolean); //###0.940 + {$IFDEF ComplexBraces} + var + off : integer; + {$ENDIF} + begin + {$IFNDEF ComplexBraces} + Error (reeComplexBracesNotImplemented); + {$ELSE} + if ANonGreedyOp + then TheOp := LOOPNG + else TheOp := LOOP; + InsertOperator (LOOPENTRY, Result, REOpSz + RENextOffSz); + NextNode := EmitNode (TheOp); + if regcode <> @regdummy then begin + off := (Result + REOpSz + RENextOffSz) + - (regcode - REOpSz - RENextOffSz); // back to Atom after LOOPENTRY + PREBracesArg (regcode)^ := ABracesMin; + inc (regcode, REBracesArgSz); + PREBracesArg (regcode)^ := ABracesMax; + inc (regcode, REBracesArgSz); + PRENextOff (regcode)^ := off; + inc (regcode, RENextOffSz); + end + else inc (regsize, REBracesArgSz * 2 + RENextOffSz); + Tail (Result, NextNode); // LOOPENTRY -> LOOP + if regcode <> @regdummy then + Tail (Result + REOpSz + RENextOffSz, NextNode); // Atom -> LOOP + {$ENDIF} + end; + + procedure EmitSimpleBraces (ABracesMin, ABracesMax : TREBracesArg; + ANonGreedyOp : boolean); //###0.940 + begin + if ANonGreedyOp //###0.940 + then TheOp := BRACESNG + else TheOp := BRACES; + InsertOperator (TheOp, Result, REOpSz + RENextOffSz + REBracesArgSz * 2); + if regcode <> @regdummy then begin + PREBracesArg (Result + REOpSz + RENextOffSz)^ := ABracesMin; + PREBracesArg (Result + REOpSz + RENextOffSz + REBracesArgSz)^ := ABracesMax; + end; + end; + + begin + Result := ParseAtom (flags); + if Result = nil + then EXIT; + + op := regparse^; + if not ((op = '*') or (op = '+') or (op = '?') or (op = '{')) then begin + flagp := flags; + EXIT; + end; + if ((flags and HASWIDTH) = 0) and (op <> '?') then begin + Error (reePlusStarOperandCouldBeEmpty); + EXIT; + end; + + case op of + '*': begin + flagp := WORST or SPSTART; + NonGreedyCh := (regparse + 1)^ = '?'; //###0.940 + NonGreedyOp := NonGreedyCh or ((fCompModifiers and MaskModG) = 0); //###0.940 + if (flags and SIMPLE) = 0 then begin + if NonGreedyOp //###0.940 + then EmitComplexBraces (0, MaxBracesArg, NonGreedyOp) + else begin // Emit x* as (x&|), where & means "self". + InsertOperator (BRANCH, Result, REOpSz + RENextOffSz); // Either x + OpTail (Result, EmitNode (BACK)); // and loop + OpTail (Result, Result); // back + Tail (Result, EmitNode (BRANCH)); // or + Tail (Result, EmitNode (NOTHING)); // nil. + end + end + else begin // Simple + if NonGreedyOp //###0.940 + then TheOp := STARNG + else TheOp := STAR; + InsertOperator (TheOp, Result, REOpSz + RENextOffSz); + end; + if NonGreedyCh //###0.940 + then inc (regparse); // Skip extra char ('?') + end; { of case '*'} + '+': begin + flagp := WORST or SPSTART or HASWIDTH; + NonGreedyCh := (regparse + 1)^ = '?'; //###0.940 + NonGreedyOp := NonGreedyCh or ((fCompModifiers and MaskModG) = 0); //###0.940 + if (flags and SIMPLE) = 0 then begin + if NonGreedyOp //###0.940 + then EmitComplexBraces (1, MaxBracesArg, NonGreedyOp) + else begin // Emit x+ as x(&|), where & means "self". + NextNode := EmitNode (BRANCH); // Either + Tail (Result, NextNode); + Tail (EmitNode (BACK), Result); // loop back + Tail (NextNode, EmitNode (BRANCH)); // or + Tail (Result, EmitNode (NOTHING)); // nil. + end + end + else begin // Simple + if NonGreedyOp //###0.940 + then TheOp := PLUSNG + else TheOp := PLUS; + InsertOperator (TheOp, Result, REOpSz + RENextOffSz); + end; + if NonGreedyCh //###0.940 + then inc (regparse); // Skip extra char ('?') + end; { of case '+'} + '?': begin + flagp := WORST; + NonGreedyCh := (regparse + 1)^ = '?'; //###0.940 + NonGreedyOp := NonGreedyCh or ((fCompModifiers and MaskModG) = 0); //###0.940 + if NonGreedyOp then begin //###0.940 // We emit x?? as x{0,1}? + if (flags and SIMPLE) = 0 + then EmitComplexBraces (0, 1, NonGreedyOp) + else EmitSimpleBraces (0, 1, NonGreedyOp); + end + else begin // greedy '?' + InsertOperator (BRANCH, Result, REOpSz + RENextOffSz); // Either x + Tail (Result, EmitNode (BRANCH)); // or + NextNode := EmitNode (NOTHING); // nil. + Tail (Result, NextNode); + OpTail (Result, NextNode); + end; + if NonGreedyCh //###0.940 + then inc (regparse); // Skip extra char ('?') + end; { of case '?'} + '{': begin + savedparse := regparse; + // !!!!!!!!!!!! + // Filip Jirsak's note - what will happen, when we are at the end of regparse? + inc (regparse); + p := regparse; + while Pos (regparse^, '0123456789') > 0 // MUST appear + do inc (regparse); + if (regparse^ <> '}') and (regparse^ <> ',') or (p = regparse) then begin + regparse := savedparse; + flagp := flags; + EXIT; + end; + BracesMin := parsenum (p, regparse - 1); + if regparse^ = ',' then begin + inc (regparse); + p := regparse; + while Pos (regparse^, '0123456789') > 0 + do inc (regparse); + if regparse^ <> '}' then begin + regparse := savedparse; + EXIT; + end; + if p = regparse + then BracesMax := MaxBracesArg + else BracesMax := parsenum (p, regparse - 1); + end + else BracesMax := BracesMin; // {n} == {n,n} + if BracesMin > BracesMax then begin + Error (reeBracesMinParamGreaterMax); + EXIT; + end; + if BracesMin > 0 + then flagp := WORST; + if BracesMax > 0 + then flagp := flagp or HASWIDTH or SPSTART; + + NonGreedyCh := (regparse + 1)^ = '?'; //###0.940 + NonGreedyOp := NonGreedyCh or ((fCompModifiers and MaskModG) = 0); //###0.940 + if (flags and SIMPLE) <> 0 + then EmitSimpleBraces (BracesMin, BracesMax, NonGreedyOp) + else EmitComplexBraces (BracesMin, BracesMax, NonGreedyOp); + if NonGreedyCh //###0.940 + then inc (regparse); // Skip extra char '?' + end; { of case '{'} +// else // here we can't be + end; { of case op} + + inc (regparse); + if (regparse^ = '*') or (regparse^ = '+') or (regparse^ = '?') or (regparse^ = '{') then begin + Error (reeNestedSQP); + EXIT; + end; + end; { of function TRegExpr.ParsePiece +--------------------------------------------------------------} + +function TRegExpr.ParseAtom (var flagp : integer) : PRegExprChar; +// the lowest level +// Optimization: gobbles an entire sequence of ordinary characters so that +// it can turn them into a single node, which is smaller to store and +// faster to run. Backslashed characters are exceptions, each becoming a +// separate node; the code is simpler that way and it's not worth fixing. + var + ret : PRegExprChar; + flags : integer; + RangeBeg, RangeEnd : REChar; + CanBeRange : boolean; + len : integer; + ender : REChar; + begmodfs : PRegExprChar; + + {$IFDEF UseSetOfChar} //###0.930 + RangePCodeBeg : PRegExprChar; + RangePCodeIdx : integer; + RangeIsCI : boolean; + RangeSet : TSetOfREChar; + RangeLen : integer; + RangeChMin, RangeChMax : REChar; + {$ENDIF} + + procedure EmitExactly (ch : REChar); + begin + if (fCompModifiers and MaskModI) <> 0 + then ret := EmitNode (EXACTLYCI) + else ret := EmitNode (EXACTLY); + EmitC (ch); + EmitC (#0); + flagp := flagp or HASWIDTH or SIMPLE; + end; + + procedure EmitStr (const s : RegExprString); + var i : integer; + begin + for i := 1 to length (s) + do EmitC (s [i]); + end; + + function HexDig (ch : REChar) : integer; + begin + Result := 0; + if (ch >= 'a') and (ch <= 'f') + then ch := REChar (ord (ch) - (ord ('a') - ord ('A'))); + if (ch < '0') or (ch > 'F') or ((ch > '9') and (ch < 'A')) then begin + Error (reeBadHexDigit); + EXIT; + end; + Result := ord (ch) - ord ('0'); + if ch >= 'A' + then Result := Result - (ord ('A') - ord ('9') - 1); + end; + + function EmitRange (AOpCode : REChar) : PRegExprChar; + begin + {$IFDEF UseSetOfChar} + case AOpCode of + ANYBUTCI, ANYBUT: + Result := EmitNode (ANYBUTTINYSET); + else // ANYOFCI, ANYOF + Result := EmitNode (ANYOFTINYSET); + end; + case AOpCode of + ANYBUTCI, ANYOFCI: + RangeIsCI := True; + else // ANYBUT, ANYOF + RangeIsCI := False; + end; + RangePCodeBeg := regcode; + RangePCodeIdx := regsize; + RangeLen := 0; + RangeSet := []; + RangeChMin := #255; + RangeChMax := #0; + {$ELSE} + Result := EmitNode (AOpCode); + // ToDo: + // !!!!!!!!!!!!! Implement ANYOF[BUT]TINYSET generation for UniCode !!!!!!!!!! + {$ENDIF} + end; + +{$IFDEF UseSetOfChar} + procedure EmitRangeCPrim (b : REChar); //###0.930 + begin + if b in RangeSet + then EXIT; + inc (RangeLen); + if b < RangeChMin + then RangeChMin := b; + if b > RangeChMax + then RangeChMax := b; + Include (RangeSet, b); + end; + {$ENDIF} + + procedure EmitRangeC (b : REChar); + {$IFDEF UseSetOfChar} + var + Ch : REChar; + {$ENDIF} + begin + CanBeRange := false; + {$IFDEF UseSetOfChar} + if b <> #0 then begin + EmitRangeCPrim (b); //###0.930 + if RangeIsCI + then EmitRangeCPrim (InvertCase (b)); //###0.930 + end + else begin + {$IFDEF UseAsserts} + Assert (RangeLen > 0, 'TRegExpr.ParseAtom(subroutine EmitRangeC): empty range'); // impossible, but who knows.. + Assert (RangeChMin <= RangeChMax, 'TRegExpr.ParseAtom(subroutine EmitRangeC): RangeChMin > RangeChMax'); // impossible, but who knows.. + {$ENDIF} + if RangeLen <= TinySetLen then begin // emit "tiny set" + if regcode = @regdummy then begin + regsize := RangePCodeIdx + TinySetLen; // RangeChMin/Max !!! + EXIT; + end; + regcode := RangePCodeBeg; + for Ch := RangeChMin to RangeChMax do //###0.930 + if Ch in RangeSet then begin + regcode^ := Ch; + inc (regcode); + end; + // fill rest: + while regcode < RangePCodeBeg + TinySetLen do begin + regcode^ := RangeChMax; + inc (regcode); + end; + end + else begin + if regcode = @regdummy then begin + regsize := RangePCodeIdx + SizeOf (TSetOfREChar); + EXIT; + end; + if (RangePCodeBeg - REOpSz - RENextOffSz)^ = ANYBUTTINYSET + then RangeSet := [#0 .. #255] - RangeSet; + PREOp (RangePCodeBeg - REOpSz - RENextOffSz)^ := ANYOFFULLSET; + regcode := RangePCodeBeg; + Move (RangeSet, regcode^, SizeOf (TSetOfREChar)); + inc (regcode, SizeOf (TSetOfREChar)); + end; + end; + {$ELSE} + EmitC (b); + {$ENDIF} + end; + + procedure EmitSimpleRangeC (b : REChar); + begin + RangeBeg := b; + EmitRangeC (b); + CanBeRange := true; + end; + + procedure EmitRangeStr (const s : RegExprString); + var i : integer; + begin + for i := 1 to length (s) + do EmitRangeC (s [i]); + end; + + function UnQuoteChar (var APtr : PRegExprChar) : REChar; //###0.934 + begin + case APtr^ of + 't': Result := #$9; // tab (HT/TAB) + 'n': Result := #$a; // newline (NL) + 'r': Result := #$d; // car.return (CR) + 'f': Result := #$c; // form feed (FF) + 'a': Result := #$7; // alarm (bell) (BEL) + 'e': Result := #$1b; // escape (ESC) + 'x': begin // hex char + Result := #0; + inc (APtr); + if APtr^ = #0 then begin + Error (reeNoHexCodeAfterBSlashX); + EXIT; + end; + if APtr^ = '{' then begin // \x{nnnn} //###0.936 + REPEAT + inc (APtr); + if APtr^ = #0 then begin + Error (reeNoHexCodeAfterBSlashX); + EXIT; + end; + if APtr^ <> '}' then begin + if (Ord (Result) + ShR (SizeOf (REChar) * 8 - 4)) and $F <> 0 then begin + Error (reeHexCodeAfterBSlashXTooBig); + EXIT; + end; + Result := REChar ((Ord (Result) ShL 4) or HexDig (APtr^)); + // HexDig will cause Error if bad hex digit found + end + else BREAK; + UNTIL False; + end + else begin + Result := REChar (HexDig (APtr^)); + // HexDig will cause Error if bad hex digit found + inc (APtr); + if APtr^ = #0 then begin + Error (reeNoHexCodeAfterBSlashX); + EXIT; + end; + Result := REChar ((Ord (Result) ShL 4) or HexDig (APtr^)); + // HexDig will cause Error if bad hex digit found + end; + end; + else Result := APtr^; + end; + end; + + begin + Result := nil; + flagp := WORST; // Tentatively. + + inc (regparse); + case (regparse - 1)^ of + '^': if ((fCompModifiers and MaskModM) = 0) + or ((fLineSeparators = '') and not fLinePairedSeparatorAssigned) + then ret := EmitNode (BOL) + else ret := EmitNode (BOLML); + '$': if ((fCompModifiers and MaskModM) = 0) + or ((fLineSeparators = '') and not fLinePairedSeparatorAssigned) + then ret := EmitNode (EOL) + else ret := EmitNode (EOLML); + '.': + if (fCompModifiers and MaskModS) <> 0 then begin + ret := EmitNode (ANY); + flagp := flagp or HASWIDTH or SIMPLE; + end + else begin // not /s, so emit [^:LineSeparators:] + ret := EmitNode (ANYML); + flagp := flagp or HASWIDTH; // not so simple ;) +// ret := EmitRange (ANYBUT); +// EmitRangeStr (LineSeparators); //###0.941 +// EmitRangeStr (LinePairedSeparator); // !!! isn't correct if have to accept only paired +// EmitRangeC (#0); +// flagp := flagp or HASWIDTH or SIMPLE; + end; + '[': begin + if regparse^ = '^' then begin // Complement of range. + if (fCompModifiers and MaskModI) <> 0 + then ret := EmitRange (ANYBUTCI) + else ret := EmitRange (ANYBUT); + inc (regparse); + end + else + if (fCompModifiers and MaskModI) <> 0 + then ret := EmitRange (ANYOFCI) + else ret := EmitRange (ANYOF); + + CanBeRange := false; + + if (regparse^ = ']') then begin + EmitSimpleRangeC (regparse^); // []-a] -> ']' .. 'a' + inc (regparse); + end; + + while (regparse^ <> #0) and (regparse^ <> ']') do begin + if (regparse^ = '-') + and ((regparse + 1)^ <> #0) and ((regparse + 1)^ <> ']') + and CanBeRange then begin + inc (regparse); + RangeEnd := regparse^; + if RangeEnd = EscChar then begin + {$IFDEF UniCode} //###0.935 + if (ord ((regparse + 1)^) < 256) + and (char ((regparse + 1)^) + in ['d', 'D', 's', 'S', 'w', 'W']) then begin + {$ELSE} + if (regparse + 1)^ in ['d', 'D', 's', 'S', 'w', 'W'] then begin + {$ENDIF} + EmitRangeC ('-'); // or treat as error ?!! + CONTINUE; + end; + inc (regparse); + RangeEnd := UnQuoteChar (regparse); + end; + + // r.e.ranges extension for russian + if ((fCompModifiers and MaskModR) <> 0) + and (RangeBeg = RusRangeLoLow) and (RangeEnd = RusRangeLoHigh) then begin + EmitRangeStr (RusRangeLo); + end + else if ((fCompModifiers and MaskModR) <> 0) + and (RangeBeg = RusRangeHiLow) and (RangeEnd = RusRangeHiHigh) then begin + EmitRangeStr (RusRangeHi); + end + else if ((fCompModifiers and MaskModR) <> 0) + and (RangeBeg = RusRangeLoLow) and (RangeEnd = RusRangeHiHigh) then begin + EmitRangeStr (RusRangeLo); + EmitRangeStr (RusRangeHi); + end + else begin // standard r.e. handling + if RangeBeg > RangeEnd then begin + Error (reeInvalidRange); + EXIT; + end; + inc (RangeBeg); + EmitRangeC (RangeEnd); // prevent infinite loop if RangeEnd=$ff + while RangeBeg < RangeEnd do begin //###0.929 + EmitRangeC (RangeBeg); + inc (RangeBeg); + end; + end; + inc (regparse); + end + else begin + if regparse^ = EscChar then begin + inc (regparse); + if regparse^ = #0 then begin + Error (reeParseAtomTrailingBackSlash); + EXIT; + end; + case regparse^ of // r.e.extensions + 'd': EmitRangeStr ('0123456789'); + 'w': EmitRangeStr (WordChars); + 's': EmitRangeStr (SpaceChars); + else EmitSimpleRangeC (UnQuoteChar (regparse)); + end; { of case} + end + else EmitSimpleRangeC (regparse^); + inc (regparse); + end; + end; { of while} + EmitRangeC (#0); + if regparse^ <> ']' then begin + Error (reeUnmatchedSqBrackets); + EXIT; + end; + inc (regparse); + flagp := flagp or HASWIDTH or SIMPLE; + end; + '(': begin + if regparse^ = '?' then begin + // check for extended Perl syntax : (?..) + if (regparse + 1)^ = '#' then begin // (?#comment) + inc (regparse, 2); // find closing ')' + while (regparse^ <> #0) and (regparse^ <> ')') + do inc (regparse); + if regparse^ <> ')' then begin + Error (reeUnclosedComment); + EXIT; + end; + inc (regparse); // skip ')' + ret := EmitNode (COMMENT); // comment + end + else begin // modifiers ? + inc (regparse); // skip '?' + begmodfs := regparse; + while (regparse^ <> #0) and (regparse^ <> ')') + do inc (regparse); + if (regparse^ <> ')') + or not ParseModifiersStr (copy (begmodfs, 1, (regparse - begmodfs)), fCompModifiers) then begin + Error (reeUrecognizedModifier); + EXIT; + end; + inc (regparse); // skip ')' + ret := EmitNode (COMMENT); // comment +// Error (reeQPSBFollowsNothing); +// EXIT; + end; + end + else begin + ret := ParseReg (1, flags); + if ret = nil then begin + Result := nil; + EXIT; + end; + flagp := flagp or flags and (HASWIDTH or SPSTART); + end; + end; + #0, '|', ')': begin // Supposed to be caught earlier. + Error (reeInternalUrp); + EXIT; + end; + '?', '+', '*': begin + Error (reeQPSBFollowsNothing); + EXIT; + end; + EscChar: begin + if regparse^ = #0 then begin + Error (reeTrailingBackSlash); + EXIT; + end; + case regparse^ of // r.e.extensions + 'b': ret := EmitNode (BOUND); //###0.943 + 'B': ret := EmitNode (NOTBOUND); //###0.943 + 'A': ret := EmitNode (BOL); //###0.941 + 'Z': ret := EmitNode (EOL); //###0.941 + 'd': begin // r.e.extension - any digit ('0' .. '9') + ret := EmitNode (ANYDIGIT); + flagp := flagp or HASWIDTH or SIMPLE; + end; + 'D': begin // r.e.extension - not digit ('0' .. '9') + ret := EmitNode (NOTDIGIT); + flagp := flagp or HASWIDTH or SIMPLE; + end; + 's': begin // r.e.extension - any space char + {$IFDEF UseSetOfChar} + ret := EmitRange (ANYOF); + EmitRangeStr (SpaceChars); + EmitRangeC (#0); + {$ELSE} + ret := EmitNode (ANYSPACE); + {$ENDIF} + flagp := flagp or HASWIDTH or SIMPLE; + end; + 'S': begin // r.e.extension - not space char + {$IFDEF UseSetOfChar} + ret := EmitRange (ANYBUT); + EmitRangeStr (SpaceChars); + EmitRangeC (#0); + {$ELSE} + ret := EmitNode (NOTSPACE); + {$ENDIF} + flagp := flagp or HASWIDTH or SIMPLE; + end; + 'w': begin // r.e.extension - any english char / digit / '_' + {$IFDEF UseSetOfChar} + ret := EmitRange (ANYOF); + EmitRangeStr (WordChars); + EmitRangeC (#0); + {$ELSE} + ret := EmitNode (ANYLETTER); + {$ENDIF} + flagp := flagp or HASWIDTH or SIMPLE; + end; + 'W': begin // r.e.extension - not english char / digit / '_' + {$IFDEF UseSetOfChar} + ret := EmitRange (ANYBUT); + EmitRangeStr (WordChars); + EmitRangeC (#0); + {$ELSE} + ret := EmitNode (NOTLETTER); + {$ENDIF} + flagp := flagp or HASWIDTH or SIMPLE; + end; + '1' .. '9': begin //###0.936 + if (fCompModifiers and MaskModI) <> 0 + then ret := EmitNode (BSUBEXPCI) + else ret := EmitNode (BSUBEXP); + EmitC (REChar (ord (regparse^) - ord ('0'))); + flagp := flagp or HASWIDTH or SIMPLE; + end; + else EmitExactly (UnQuoteChar (regparse)); + end; { of case} + inc (regparse); + end; + else begin + dec (regparse); + if ((fCompModifiers and MaskModX) <> 0) and // check for eXtended syntax + ((regparse^ = '#') + or ({$IFDEF UniCode}StrScan (XIgnoredChars, regparse^) <> nil //###0.947 + {$ELSE}regparse^ in XIgnoredChars{$ENDIF})) then begin //###0.941 \x + if regparse^ = '#' then begin // Skip eXtended comment + // find comment terminator (group of \n and/or \r) + while (regparse^ <> #0) and (regparse^ <> #$d) and (regparse^ <> #$a) + do inc (regparse); + while (regparse^ = #$d) or (regparse^ = #$a) // skip comment terminator + do inc (regparse); // attempt to support different type of line separators + end + else begin // Skip the blanks! + while {$IFDEF UniCode}StrScan (XIgnoredChars, regparse^) <> nil //###0.947 + {$ELSE}regparse^ in XIgnoredChars{$ENDIF} + do inc (regparse); + end; + ret := EmitNode (COMMENT); // comment + end + else begin + len := strcspn (regparse, META); + if len <= 0 then + if regparse^ <> '{' then begin + Error (reeRarseAtomInternalDisaster); + EXIT; + end + else len := strcspn (regparse + 1, META) + 1; // bad {n,m} - compile as EXATLY + ender := (regparse + len)^; + if (len > 1) + and ((ender = '*') or (ender = '+') or (ender = '?') or (ender = '{')) + then dec (len); // Back off clear of ?+*{ operand. + flagp := flagp or HASWIDTH; + if len = 1 + then flagp := flagp or SIMPLE; + if (fCompModifiers and MaskModI) <> 0 + then ret := EmitNode (EXACTLYCI) + else ret := EmitNode (EXACTLY); + while (len > 0) + and (((fCompModifiers and MaskModX) = 0) or (regparse^ <> '#')) do begin + if ((fCompModifiers and MaskModX) = 0) or not ( //###0.941 + {$IFDEF UniCode}StrScan (XIgnoredChars, regparse^) <> nil //###0.947 + {$ELSE}regparse^ in XIgnoredChars{$ENDIF} ) + then EmitC (regparse^); + inc (regparse); + dec (len); + end; + EmitC (#0); + end; { of if not comment} + end; { of case else} + end; { of case} + + Result := ret; + end; { of function TRegExpr.ParseAtom +--------------------------------------------------------------} + +function TRegExpr.GetCompilerErrorPos : integer; + begin + Result := 0; + if (regexpbeg = nil) or (regparse = nil) + then EXIT; // not in compiling mode ? + Result := regparse - regexpbeg; + end; { of function TRegExpr.GetCompilerErrorPos +--------------------------------------------------------------} + + +{=============================================================} +{===================== Matching section ======================} +{=============================================================} + +{$IFNDEF UseSetOfChar} +function TRegExpr.StrScanCI (s : PRegExprChar; ch : REChar) : PRegExprChar; //###0.928 - now method of TRegExpr + begin + while (s^ <> #0) and (s^ <> ch) and (s^ <> InvertCase (ch)) + do inc (s); + if s^ <> #0 + then Result := s + else Result := nil; + end; { of function TRegExpr.StrScanCI +--------------------------------------------------------------} +{$ENDIF} + +function TRegExpr.regrepeat (p : PRegExprChar; AMax : integer) : integer; +// repeatedly match something simple, report how many + var + scan : PRegExprChar; + opnd : PRegExprChar; + TheMax : integer; + {Ch,} InvCh : REChar; //###0.931 + sestart, seend : PRegExprChar; //###0.936 + begin + Result := 0; + scan := reginput; + opnd := p + REOpSz + RENextOffSz; //OPERAND + TheMax := fInputEnd - scan; + if TheMax > AMax + then TheMax := AMax; + case PREOp (p)^ of + ANY: begin + // note - ANYML cannot be proceeded in regrepeat because can skip + // more than one char at once + Result := TheMax; + inc (scan, Result); + end; + EXACTLY: begin // in opnd can be only ONE char !!! +// Ch := opnd^; // store in register //###0.931 + while (Result < TheMax) and (opnd^ = scan^) do begin + inc (Result); + inc (scan); + end; + end; + EXACTLYCI: begin // in opnd can be only ONE char !!! +// Ch := opnd^; // store in register //###0.931 + while (Result < TheMax) and (opnd^ = scan^) do begin // prevent unneeded InvertCase //###0.931 + inc (Result); + inc (scan); + end; + if Result < TheMax then begin //###0.931 + InvCh := InvertCase (opnd^); // store in register + while (Result < TheMax) and + ((opnd^ = scan^) or (InvCh = scan^)) do begin + inc (Result); + inc (scan); + end; + end; + end; + BSUBEXP: begin //###0.936 + sestart := startp [ord (opnd^)]; + if sestart = nil + then EXIT; + seend := endp [ord (opnd^)]; + if seend = nil + then EXIT; + REPEAT + opnd := sestart; + while opnd < seend do begin + if (scan >= fInputEnd) or (scan^ <> opnd^) + then EXIT; + inc (scan); + inc (opnd); + end; + inc (Result); + reginput := scan; + UNTIL Result >= AMax; + end; + BSUBEXPCI: begin //###0.936 + sestart := startp [ord (opnd^)]; + if sestart = nil + then EXIT; + seend := endp [ord (opnd^)]; + if seend = nil + then EXIT; + REPEAT + opnd := sestart; + while opnd < seend do begin + if (scan >= fInputEnd) or + ((scan^ <> opnd^) and (scan^ <> InvertCase (opnd^))) + then EXIT; + inc (scan); + inc (opnd); + end; + inc (Result); + reginput := scan; + UNTIL Result >= AMax; + end; + ANYDIGIT: + while (Result < TheMax) and + (scan^ >= '0') and (scan^ <= '9') do begin + inc (Result); + inc (scan); + end; + NOTDIGIT: + while (Result < TheMax) and + ((scan^ < '0') or (scan^ > '9')) do begin + inc (Result); + inc (scan); + end; + {$IFNDEF UseSetOfChar} //###0.929 + ANYLETTER: + while (Result < TheMax) and + (Pos (scan^, fWordChars) > 0) //###0.940 + { ((scan^ >= 'a') and (scan^ <= 'z') !! I've forgotten (>='0') and (<='9') + or (scan^ >= 'A') and (scan^ <= 'Z') or (scan^ = '_'))} do begin + inc (Result); + inc (scan); + end; + NOTLETTER: + while (Result < TheMax) and + (Pos (scan^, fWordChars) <= 0) //###0.940 + { not ((scan^ >= 'a') and (scan^ <= 'z') !! I've forgotten (>='0') and (<='9') + or (scan^ >= 'A') and (scan^ <= 'Z') + or (scan^ = '_'))} do begin + inc (Result); + inc (scan); + end; + ANYSPACE: + while (Result < TheMax) and + (Pos (scan^, fSpaceChars) > 0) do begin + inc (Result); + inc (scan); + end; + NOTSPACE: + while (Result < TheMax) and + (Pos (scan^, fSpaceChars) <= 0) do begin + inc (Result); + inc (scan); + end; + {$ENDIF} + ANYOFTINYSET: begin + while (Result < TheMax) and //!!!TinySet + ((scan^ = opnd^) or (scan^ = (opnd + 1)^) + or (scan^ = (opnd + 2)^)) do begin + inc (Result); + inc (scan); + end; + end; + ANYBUTTINYSET: begin + while (Result < TheMax) and //!!!TinySet + (scan^ <> opnd^) and (scan^ <> (opnd + 1)^) + and (scan^ <> (opnd + 2)^) do begin + inc (Result); + inc (scan); + end; + end; + {$IFDEF UseSetOfChar} //###0.929 + ANYOFFULLSET: begin + while (Result < TheMax) and + (scan^ in PSetOfREChar (opnd)^) do begin + inc (Result); + inc (scan); + end; + end; + {$ELSE} + ANYOF: + while (Result < TheMax) and + (StrScan (opnd, scan^) <> nil) do begin + inc (Result); + inc (scan); + end; + ANYBUT: + while (Result < TheMax) and + (StrScan (opnd, scan^) = nil) do begin + inc (Result); + inc (scan); + end; + ANYOFCI: + while (Result < TheMax) and (StrScanCI (opnd, scan^) <> nil) do begin + inc (Result); + inc (scan); + end; + ANYBUTCI: + while (Result < TheMax) and (StrScanCI (opnd, scan^) = nil) do begin + inc (Result); + inc (scan); + end; + {$ENDIF} + else begin // Oh dear. Called inappropriately. + Result := 0; // Best compromise. + Error (reeRegRepeatCalledInappropriately); + EXIT; + end; + end; { of case} + reginput := scan; + end; { of function TRegExpr.regrepeat +--------------------------------------------------------------} + +function TRegExpr.regnext (p : PRegExprChar) : PRegExprChar; +// dig the "next" pointer out of a node + var offset : TRENextOff; + begin + if p = @regdummy then begin + Result := nil; + EXIT; + end; + offset := PRENextOff (p + REOpSz)^; //###0.933 inlined NEXT + if offset = 0 + then Result := nil + else Result := p + offset; + end; { of function TRegExpr.regnext +--------------------------------------------------------------} + +function TRegExpr.MatchPrim (prog : PRegExprChar) : boolean; +// recursively matching routine +// Conceptually the strategy is simple: check to see whether the current +// node matches, call self recursively to see whether the rest matches, +// and then act accordingly. In practice we make some effort to avoid +// recursion, in particular by going through "ordinary" nodes (that don't +// need to know whether the rest of the match failed) by a loop instead of +// by recursion. + var + scan : PRegExprChar; // Current node. + next : PRegExprChar; // Next node. + len : integer; + opnd : PRegExprChar; + no : integer; + save : PRegExprChar; + nextch : REChar; + BracesMin, BracesMax : integer; // we use integer instead of TREBracesArg for better support */+ + {$IFDEF ComplexBraces} + SavedLoopStack : array [1 .. LoopStackMax] of integer; // :(( very bad for recursion + SavedLoopStackIdx : integer; //###0.925 + {$ENDIF} + begin + Result := false; + scan := prog; + + while scan <> nil do begin + len := PRENextOff (scan + 1)^; //###0.932 inlined regnext + if len = 0 + then next := nil + else next := scan + len; + + case scan^ of + NOTBOUND, //###0.943 //!!! think about UseSetOfChar !!! + BOUND: + if (scan^ = BOUND) + xor ( + ((reginput = fInputStart) or (Pos ((reginput - 1)^, fWordChars) <= 0)) + and (reginput^ <> #0) and (Pos (reginput^, fWordChars) > 0) + or + (reginput <> fInputStart) and (Pos ((reginput - 1)^, fWordChars) > 0) + and ((reginput^ = #0) or (Pos (reginput^, fWordChars) <= 0))) + then EXIT; + + BOL: if reginput <> fInputStart + then EXIT; + EOL: if reginput^ <> #0 + then EXIT; + BOLML: if reginput > fInputStart then begin + nextch := (reginput - 1)^; + if (nextch <> fLinePairedSeparatorTail) + or ((reginput - 1) <= fInputStart) + or ((reginput - 2)^ <> fLinePairedSeparatorHead) + then begin + if (nextch = fLinePairedSeparatorHead) + and (reginput^ = fLinePairedSeparatorTail) + then EXIT; // don't stop between paired separator + if + {$IFNDEF UniCode} + not (nextch in fLineSeparatorsSet) + {$ELSE} + (pos (nextch, fLineSeparators) <= 0) + {$ENDIF} + then EXIT; + end; + end; + EOLML: if reginput^ <> #0 then begin + nextch := reginput^; + if (nextch <> fLinePairedSeparatorHead) + or ((reginput + 1)^ <> fLinePairedSeparatorTail) + then begin + if (nextch = fLinePairedSeparatorTail) + and (reginput > fInputStart) + and ((reginput - 1)^ = fLinePairedSeparatorHead) + then EXIT; // don't stop between paired separator + if + {$IFNDEF UniCode} + not (nextch in fLineSeparatorsSet) + {$ELSE} + (pos (nextch, fLineSeparators) <= 0) + {$ENDIF} + then EXIT; + end; + end; + ANY: begin + if reginput^ = #0 + then EXIT; + inc (reginput); + end; + ANYML: begin //###0.941 + if (reginput^ = #0) + or ((reginput^ = fLinePairedSeparatorHead) + and ((reginput + 1)^ = fLinePairedSeparatorTail)) + or {$IFNDEF UniCode} (reginput^ in fLineSeparatorsSet) + {$ELSE} (pos (reginput^, fLineSeparators) > 0) {$ENDIF} + then EXIT; + inc (reginput); + end; + ANYDIGIT: begin + if (reginput^ = #0) or (reginput^ < '0') or (reginput^ > '9') + then EXIT; + inc (reginput); + end; + NOTDIGIT: begin + if (reginput^ = #0) or ((reginput^ >= '0') and (reginput^ <= '9')) + then EXIT; + inc (reginput); + end; + {$IFNDEF UseSetOfChar} //###0.929 + ANYLETTER: begin + if (reginput^ = #0) or (Pos (reginput^, fWordChars) <= 0) //###0.943 + then EXIT; + inc (reginput); + end; + NOTLETTER: begin + if (reginput^ = #0) or (Pos (reginput^, fWordChars) > 0) //###0.943 + then EXIT; + inc (reginput); + end; + ANYSPACE: begin + if (reginput^ = #0) or not (Pos (reginput^, fSpaceChars) > 0) //###0.943 + then EXIT; + inc (reginput); + end; + NOTSPACE: begin + if (reginput^ = #0) or (Pos (reginput^, fSpaceChars) > 0) //###0.943 + then EXIT; + inc (reginput); + end; + {$ENDIF} + EXACTLYCI: begin + opnd := scan + REOpSz + RENextOffSz; // OPERAND + // Inline the first character, for speed. + if (opnd^ <> reginput^) + and (InvertCase (opnd^) <> reginput^) + then EXIT; + len := strlen (opnd); + //###0.929 begin + no := len; + save := reginput; + while no > 1 do begin + inc (save); + inc (opnd); + if (opnd^ <> save^) + and (InvertCase (opnd^) <> save^) + then EXIT; + dec (no); + end; + //###0.929 end + inc (reginput, len); + end; + EXACTLY: begin + opnd := scan + REOpSz + RENextOffSz; // OPERAND + // Inline the first character, for speed. + if opnd^ <> reginput^ + then EXIT; + len := strlen (opnd); + //###0.929 begin + no := len; + save := reginput; + while no > 1 do begin + inc (save); + inc (opnd); + if opnd^ <> save^ + then EXIT; + dec (no); + end; + //###0.929 end + inc (reginput, len); + end; + BSUBEXP: begin //###0.936 + no := ord ((scan + REOpSz + RENextOffSz)^); + if startp [no] = nil + then EXIT; + if endp [no] = nil + then EXIT; + save := reginput; + opnd := startp [no]; + while opnd < endp [no] do begin + if (save >= fInputEnd) or (save^ <> opnd^) + then EXIT; + inc (save); + inc (opnd); + end; + reginput := save; + end; + BSUBEXPCI: begin //###0.936 + no := ord ((scan + REOpSz + RENextOffSz)^); + if startp [no] = nil + then EXIT; + if endp [no] = nil + then EXIT; + save := reginput; + opnd := startp [no]; + while opnd < endp [no] do begin + if (save >= fInputEnd) or + ((save^ <> opnd^) and (save^ <> InvertCase (opnd^))) + then EXIT; + inc (save); + inc (opnd); + end; + reginput := save; + end; + ANYOFTINYSET: begin + if (reginput^ = #0) or //!!!TinySet + ((reginput^ <> (scan + REOpSz + RENextOffSz)^) + and (reginput^ <> (scan + REOpSz + RENextOffSz + 1)^) + and (reginput^ <> (scan + REOpSz + RENextOffSz + 2)^)) + then EXIT; + inc (reginput); + end; + ANYBUTTINYSET: begin + if (reginput^ = #0) or //!!!TinySet + (reginput^ = (scan + REOpSz + RENextOffSz)^) + or (reginput^ = (scan + REOpSz + RENextOffSz + 1)^) + or (reginput^ = (scan + REOpSz + RENextOffSz + 2)^) + then EXIT; + inc (reginput); + end; + {$IFDEF UseSetOfChar} //###0.929 + ANYOFFULLSET: begin + if (reginput^ = #0) + or not (reginput^ in PSetOfREChar (scan + REOpSz + RENextOffSz)^) + then EXIT; + inc (reginput); + end; + {$ELSE} + ANYOF: begin + if (reginput^ = #0) or (StrScan (scan + REOpSz + RENextOffSz, reginput^) = nil) + then EXIT; + inc (reginput); + end; + ANYBUT: begin + if (reginput^ = #0) or (StrScan (scan + REOpSz + RENextOffSz, reginput^) <> nil) + then EXIT; + inc (reginput); + end; + ANYOFCI: begin + if (reginput^ = #0) or (StrScanCI (scan + REOpSz + RENextOffSz, reginput^) = nil) + then EXIT; + inc (reginput); + end; + ANYBUTCI: begin + if (reginput^ = #0) or (StrScanCI (scan + REOpSz + RENextOffSz, reginput^) <> nil) + then EXIT; + inc (reginput); + end; + {$ENDIF} + NOTHING: ; + COMMENT: ; + BACK: ; + Succ (OPEN) .. TREOp (Ord (OPEN) + NSUBEXP - 1) : begin //###0.929 + no := ord (scan^) - ord (OPEN); +// save := reginput; + save := startp [no]; //###0.936 + startp [no] := reginput; //###0.936 + Result := MatchPrim (next); + if not Result //###0.936 + then startp [no] := save; +// if Result and (startp [no] = nil) +// then startp [no] := save; + // Don't set startp if some later invocation of the same + // parentheses already has. + EXIT; + end; + Succ (CLOSE) .. TREOp (Ord (CLOSE) + NSUBEXP - 1): begin //###0.929 + no := ord (scan^) - ord (CLOSE); +// save := reginput; + save := endp [no]; //###0.936 + endp [no] := reginput; //###0.936 + Result := MatchPrim (next); + if not Result //###0.936 + then endp [no] := save; +// if Result and (endp [no] = nil) +// then endp [no] := save; + // Don't set endp if some later invocation of the same + // parentheses already has. + EXIT; + end; + BRANCH: begin + if (next^ <> BRANCH) // No choice. + then next := scan + REOpSz + RENextOffSz // Avoid recursion + else begin + REPEAT + save := reginput; + Result := MatchPrim (scan + REOpSz + RENextOffSz); + if Result + then EXIT; + reginput := save; + scan := regnext (scan); + UNTIL (scan = nil) or (scan^ <> BRANCH); + EXIT; + end; + end; + {$IFDEF ComplexBraces} + LOOPENTRY: begin //###0.925 + no := LoopStackIdx; + inc (LoopStackIdx); + if LoopStackIdx > LoopStackMax then begin + Error (reeLoopStackExceeded); + EXIT; + end; + save := reginput; + LoopStack [LoopStackIdx] := 0; // init loop counter + Result := MatchPrim (next); // execute LOOP + LoopStackIdx := no; // cleanup + if Result + then EXIT; + reginput := save; + EXIT; + end; + LOOP, LOOPNG: begin //###0.940 + if LoopStackIdx <= 0 then begin + Error (reeLoopWithoutEntry); + EXIT; + end; + opnd := scan + PRENextOff (scan + REOpSz + RENextOffSz + 2 * REBracesArgSz)^; + BracesMin := PREBracesArg (scan + REOpSz + RENextOffSz)^; + BracesMax := PREBracesArg (scan + REOpSz + RENextOffSz + REBracesArgSz)^; + save := reginput; + if LoopStack [LoopStackIdx] >= BracesMin then begin // Min alredy matched - we can work + if scan^ = LOOP then begin + // greedy way - first try to max deep of greed ;) + if LoopStack [LoopStackIdx] < BracesMax then begin + inc (LoopStack [LoopStackIdx]); + no := LoopStackIdx; + Result := MatchPrim (opnd); + LoopStackIdx := no; + if Result + then EXIT; + reginput := save; + end; + dec (LoopStackIdx); // Fail. May be we are too greedy? ;) + Result := MatchPrim (next); + if not Result + then reginput := save; + EXIT; + end + else begin + // non-greedy - try just now + Result := MatchPrim (next); + if Result + then EXIT + else reginput := save; // failed - move next and try again + if LoopStack [LoopStackIdx] < BracesMax then begin + inc (LoopStack [LoopStackIdx]); + no := LoopStackIdx; + Result := MatchPrim (opnd); + LoopStackIdx := no; + if Result + then EXIT; + reginput := save; + end; + dec (LoopStackIdx); // Failed - back up + EXIT; + end + end + else begin // first match a min_cnt times + inc (LoopStack [LoopStackIdx]); + no := LoopStackIdx; + Result := MatchPrim (opnd); + LoopStackIdx := no; + if Result + then EXIT; + dec (LoopStack [LoopStackIdx]); + reginput := save; + EXIT; + end; + end; + {$ENDIF} + STAR, PLUS, BRACES, STARNG, PLUSNG, BRACESNG: begin + // Lookahead to avoid useless match attempts when we know + // what character comes next. + nextch := #0; + if next^ = EXACTLY + then nextch := (next + REOpSz + RENextOffSz)^; + BracesMax := MaxInt; // infinite loop for * and + //###0.92 + if (scan^ = STAR) or (scan^ = STARNG) + then BracesMin := 0 // STAR + else if (scan^ = PLUS) or (scan^ = PLUSNG) + then BracesMin := 1 // PLUS + else begin // BRACES + BracesMin := PREBracesArg (scan + REOpSz + RENextOffSz)^; + BracesMax := PREBracesArg (scan + REOpSz + RENextOffSz + REBracesArgSz)^; + end; + save := reginput; + opnd := scan + REOpSz + RENextOffSz; + if (scan^ = BRACES) or (scan^ = BRACESNG) + then inc (opnd, 2 * REBracesArgSz); + + if (scan^ = PLUSNG) or (scan^ = STARNG) or (scan^ = BRACESNG) then begin + // non-greedy mode + BracesMax := regrepeat (opnd, BracesMax); // don't repeat more than BracesMax + // Now we know real Max limit to move forward (for recursion 'back up') + // In some cases it can be faster to check only Min positions first, + // but after that we have to check every position separtely instead + // of fast scannig in loop. + no := BracesMin; + while no <= BracesMax do begin + reginput := save + no; + // If it could work, try it. + if (nextch = #0) or (reginput^ = nextch) then begin + {$IFDEF ComplexBraces} + System.Move (LoopStack, SavedLoopStack, SizeOf (LoopStack)); //###0.925 + SavedLoopStackIdx := LoopStackIdx; + {$ENDIF} + if MatchPrim (next) then begin + Result := true; + EXIT; + end; + {$IFDEF ComplexBraces} + System.Move (SavedLoopStack, LoopStack, SizeOf (LoopStack)); + LoopStackIdx := SavedLoopStackIdx; + {$ENDIF} + end; + inc (no); // Couldn't or didn't - move forward. + end; { of while} + EXIT; + end + else begin // greedy mode + no := regrepeat (opnd, BracesMax); // don't repeat more than max_cnt + while no >= BracesMin do begin + // If it could work, try it. + if (nextch = #0) or (reginput^ = nextch) then begin + {$IFDEF ComplexBraces} + System.Move (LoopStack, SavedLoopStack, SizeOf (LoopStack)); //###0.925 + SavedLoopStackIdx := LoopStackIdx; + {$ENDIF} + if MatchPrim (next) then begin + Result := true; + EXIT; + end; + {$IFDEF ComplexBraces} + System.Move (SavedLoopStack, LoopStack, SizeOf (LoopStack)); + LoopStackIdx := SavedLoopStackIdx; + {$ENDIF} + end; + dec (no); // Couldn't or didn't - back up. + reginput := save + no; + end; { of while} + EXIT; + end; + end; + EEND: begin + Result := true; // Success! + EXIT; + end; + else begin + Error (reeMatchPrimMemoryCorruption); + EXIT; + end; + end; { of case scan^} + scan := next; + end; { of while scan <> nil} + + // We get here only if there's trouble -- normally "case EEND" is the + // terminating point. + Error (reeMatchPrimCorruptedPointers); + end; { of function TRegExpr.MatchPrim +--------------------------------------------------------------} + +{$IFDEF UseFirstCharSet} //###0.929 +procedure TRegExpr.FillFirstCharSet (prog : PRegExprChar); + var + scan : PRegExprChar; // Current node. + next : PRegExprChar; // Next node. + opnd : PRegExprChar; + min_cnt : integer; + begin + scan := prog; + while scan <> nil do begin + next := regnext (scan); + case PREOp (scan)^ of + BSUBEXP, BSUBEXPCI: begin //###0.938 + FirstCharSet := [#0 .. #255]; // :((( we cannot + // optimize r.e. if it starts with back reference + EXIT; + end; + BOL, BOLML: ; // EXIT; //###0.937 + EOL, EOLML: begin //###0.948 was empty in 0.947, was EXIT in 0.937 + Include (FirstCharSet, #0); + if ModifierM + then begin + opnd := PRegExprChar (LineSeparators); + while opnd^ <> #0 do begin + Include (FirstCharSet, opnd^); + inc (opnd); + end; + end; + EXIT; + end; + BOUND, NOTBOUND: ; //###0.943 ?!! + ANY, ANYML: begin // we can better define ANYML !!! + FirstCharSet := [#0 .. #255]; //###0.930 + EXIT; + end; + ANYDIGIT: begin + FirstCharSet := FirstCharSet + ['0' .. '9']; + EXIT; + end; + NOTDIGIT: begin + FirstCharSet := FirstCharSet + ([#0 .. #255] - ['0' .. '9']); //###0.948 FirstCharSet was forgotten + EXIT; + end; + EXACTLYCI: begin + Include (FirstCharSet, (scan + REOpSz + RENextOffSz)^); + Include (FirstCharSet, InvertCase ((scan + REOpSz + RENextOffSz)^)); + EXIT; + end; + EXACTLY: begin + Include (FirstCharSet, (scan + REOpSz + RENextOffSz)^); + EXIT; + end; + ANYOFFULLSET: begin + FirstCharSet := FirstCharSet + PSetOfREChar (scan + REOpSz + RENextOffSz)^; + EXIT; + end; + ANYOFTINYSET: begin + //!!!TinySet + Include (FirstCharSet, (scan + REOpSz + RENextOffSz)^); + Include (FirstCharSet, (scan + REOpSz + RENextOffSz + 1)^); + Include (FirstCharSet, (scan + REOpSz + RENextOffSz + 2)^); + // ... // up to TinySetLen + EXIT; + end; + ANYBUTTINYSET: begin + //!!!TinySet + FirstCharSet := FirstCharSet + ([#0 .. #255] - [ //###0.948 FirstCharSet was forgotten + (scan + REOpSz + RENextOffSz)^, + (scan + REOpSz + RENextOffSz + 1)^, + (scan + REOpSz + RENextOffSz + 2)^]); + // ... // up to TinySetLen + EXIT; + end; + NOTHING: ; + COMMENT: ; + BACK: ; + Succ (OPEN) .. TREOp (Ord (OPEN) + NSUBEXP - 1) : begin //###0.929 + FillFirstCharSet (next); + EXIT; + end; + Succ (CLOSE) .. TREOp (Ord (CLOSE) + NSUBEXP - 1): begin //###0.929 + FillFirstCharSet (next); + EXIT; + end; + BRANCH: begin + if (PREOp (next)^ <> BRANCH) // No choice. + then next := scan + REOpSz + RENextOffSz // Avoid recursion. + else begin + REPEAT + FillFirstCharSet (scan + REOpSz + RENextOffSz); + scan := regnext (scan); + UNTIL (scan = nil) or (PREOp (scan)^ <> BRANCH); + EXIT; + end; + end; + {$IFDEF ComplexBraces} + LOOPENTRY: begin //###0.925 +// LoopStack [LoopStackIdx] := 0; //###0.940 line removed + FillFirstCharSet (next); // execute LOOP + EXIT; + end; + LOOP, LOOPNG: begin //###0.940 + opnd := scan + PRENextOff (scan + REOpSz + RENextOffSz + REBracesArgSz * 2)^; + min_cnt := PREBracesArg (scan + REOpSz + RENextOffSz)^; + FillFirstCharSet (opnd); + if min_cnt = 0 + then FillFirstCharSet (next); + EXIT; + end; + {$ENDIF} + STAR, STARNG: //###0.940 + FillFirstCharSet (scan + REOpSz + RENextOffSz); + PLUS, PLUSNG: begin //###0.940 + FillFirstCharSet (scan + REOpSz + RENextOffSz); + EXIT; + end; + BRACES, BRACESNG: begin //###0.940 + opnd := scan + REOpSz + RENextOffSz + REBracesArgSz * 2; + min_cnt := PREBracesArg (scan + REOpSz + RENextOffSz)^; // BRACES + FillFirstCharSet (opnd); + if min_cnt > 0 + then EXIT; + end; + EEND: begin + FirstCharSet := [#0 .. #255]; //###0.948 + EXIT; + end; + else begin + Error (reeMatchPrimMemoryCorruption); + EXIT; + end; + end; { of case scan^} + scan := next; + end; { of while scan <> nil} + end; { of procedure FillFirstCharSet +--------------------------------------------------------------} +{$ENDIF} + +function TRegExpr.Exec (const AInputString : RegExprString) : boolean; + begin + InputString := AInputString; + Result := ExecPrim (1); + end; { of function TRegExpr.Exec +--------------------------------------------------------------} + +{$IFDEF OverMeth} +{$IFNDEF FPC} +function TRegExpr.Exec : boolean; + begin + Result := ExecPrim (1); + end; { of function TRegExpr.Exec +--------------------------------------------------------------} +{$ENDIF} +function TRegExpr.Exec (AOffset: integer) : boolean; + begin + Result := ExecPrim (AOffset); + end; { of function TRegExpr.Exec +--------------------------------------------------------------} +{$ENDIF} + +function TRegExpr.ExecPos (AOffset: integer {$IFDEF DefParam}= 1{$ENDIF}) : boolean; + begin + Result := ExecPrim (AOffset); + end; { of function TRegExpr.ExecPos +--------------------------------------------------------------} + +function TRegExpr.ExecPrim (AOffset: integer) : boolean; + procedure ClearMatchs; + // Clears matchs array + var i : integer; + begin + for i := 0 to NSUBEXP - 1 do begin + startp [i] := nil; + endp [i] := nil; + end; + end; { of procedure ClearMatchs; +..............................................................} + function RegMatch (str : PRegExprChar) : boolean; + // try match at specific point + begin + //###0.949 removed clearing of start\endp + reginput := str; + Result := MatchPrim (programm + REOpSz); + if Result then begin + startp [0] := str; + endp [0] := reginput; + end; + end; { of function RegMatch +..............................................................} + var + s : PRegExprChar; + StartPtr: PRegExprChar; + InputLen : integer; + begin + Result := false; // Be paranoid... + + ClearMatchs; //###0.949 + // ensure that Match cleared either if optimization tricks or some error + // will lead to leaving ExecPrim without actual search. That is + // importent for ExecNext logic and so on. + + if not IsProgrammOk //###0.929 + then EXIT; + + // Check InputString presence + if not Assigned (fInputString) then begin + Error (reeNoInpitStringSpecified); + EXIT; + end; + + InputLen := length (fInputString); + + //Check that the start position is not negative + if AOffset < 1 then begin + Error (reeOffsetMustBeGreaterThen0); + EXIT; + end; + // Check that the start position is not longer than the line + // If so then exit with nothing found + if AOffset > (InputLen + 1) // for matching empty string after last char. + then EXIT; + + StartPtr := fInputString + AOffset - 1; + + // If there is a "must appear" string, look for it. + if regmust <> nil then begin + s := StartPtr; + REPEAT + s := StrScan (s, regmust [0]); + if s <> nil then begin + if StrLComp (s, regmust, regmlen) = 0 + then BREAK; // Found it. + inc (s); + end; + UNTIL s = nil; + if s = nil // Not present. + then EXIT; + end; + + // Mark beginning of line for ^ . + fInputStart := fInputString; + + // Pointer to end of input stream - for + // pascal-style string processing (may include #0) + fInputEnd := fInputString + InputLen; + + {$IFDEF ComplexBraces} + // no loops started + LoopStackIdx := 0; //###0.925 + {$ENDIF} + + // Simplest case: anchored match need be tried only once. + if reganch <> #0 then begin + Result := RegMatch (StartPtr); + EXIT; + end; + + // Messy cases: unanchored match. + s := StartPtr; + if regstart <> #0 then // We know what char it must start with. + REPEAT + s := StrScan (s, regstart); + if s <> nil then begin + Result := RegMatch (s); + if Result + then EXIT + else ClearMatchs; //###0.949 + inc (s); + end; + UNTIL s = nil + else begin // We don't - general case. + repeat //###0.948 + {$IFDEF UseFirstCharSet} + if s^ in FirstCharSet + then Result := RegMatch (s); + {$ELSE} + Result := RegMatch (s); + {$ENDIF} + if Result or (s^ = #0) // Exit on a match or after testing the end-of-string. + then EXIT + else ClearMatchs; //###0.949 + inc (s); + until false; +(* optimized and fixed by Martin Fuller - empty strings + were not allowed to pass thru in UseFirstCharSet mode + {$IFDEF UseFirstCharSet} //###0.929 + while s^ <> #0 do begin + if s^ in FirstCharSet + then Result := RegMatch (s); + if Result + then EXIT; + inc (s); + end; + {$ELSE} + REPEAT + Result := RegMatch (s); + if Result + then EXIT; + inc (s); + UNTIL s^ = #0; + {$ENDIF} +*) + end; + // Failure + end; { of function TRegExpr.ExecPrim +--------------------------------------------------------------} + +function TRegExpr.ExecNext : boolean; + var offset : integer; + begin + Result := false; + if not Assigned (startp[0]) or not Assigned (endp[0]) then begin + Error (reeExecNextWithoutExec); + EXIT; + end; +// Offset := MatchPos [0] + MatchLen [0]; +// if MatchLen [0] = 0 + Offset := endp [0] - fInputString + 1; //###0.929 + if endp [0] = startp [0] //###0.929 + then inc (Offset); // prevent infinite looping if empty string match r.e. + Result := ExecPrim (Offset); + end; { of function TRegExpr.ExecNext +--------------------------------------------------------------} + +function TRegExpr.GetInputString : RegExprString; + begin + if not Assigned (fInputString) then begin + Error (reeGetInputStringWithoutInputString); + EXIT; + end; + Result := fInputString; + end; { of function TRegExpr.GetInputString +--------------------------------------------------------------} + +procedure TRegExpr.SetInputString (const AInputString : RegExprString); + var + Len : integer; + i : integer; + begin + // clear Match* - before next Exec* call it's undefined + for i := 0 to NSUBEXP - 1 do begin + startp [i] := nil; + endp [i] := nil; + end; + + // need reallocation of input string buffer ? + Len := length (AInputString); + if Assigned (fInputString) and (Length (fInputString) <> Len) then begin + FreeMem (fInputString); + fInputString := nil; + end; + // buffer [re]allocation + if not Assigned (fInputString) + then GetMem (fInputString, (Len + 1) * SizeOf (REChar)); + + // copy input string into buffer + {$IFDEF UniCode} + StrPCopy (fInputString, Copy (AInputString, 1, Len)); //###0.927 + {$ELSE} + StrLCopy (fInputString, PRegExprChar (AInputString), Len); + {$ENDIF} + + { + fInputString : string; + fInputStart, fInputEnd : PRegExprChar; + + SetInputString: + fInputString := AInputString; + UniqueString (fInputString); + fInputStart := PChar (fInputString); + Len := length (fInputString); + fInputEnd := PRegExprChar (integer (fInputStart) + Len); ?? + !! startp/endp ? + } + end; { of procedure TRegExpr.SetInputString +--------------------------------------------------------------} + +procedure TRegExpr.SetLineSeparators (const AStr : RegExprString); + begin + if AStr <> fLineSeparators then begin + fLineSeparators := AStr; + InvalidateProgramm; + end; + end; { of procedure TRegExpr.SetLineSeparators +--------------------------------------------------------------} + +procedure TRegExpr.SetLinePairedSeparator (const AStr : RegExprString); + begin + if length (AStr) = 2 then begin + if AStr [1] = AStr [2] then begin + // it's impossible for our 'one-point' checking to support + // two chars separator for identical chars + Error (reeBadLinePairedSeparator); + EXIT; + end; + if not fLinePairedSeparatorAssigned + or (AStr [1] <> fLinePairedSeparatorHead) + or (AStr [2] <> fLinePairedSeparatorTail) then begin + fLinePairedSeparatorAssigned := true; + fLinePairedSeparatorHead := AStr [1]; + fLinePairedSeparatorTail := AStr [2]; + InvalidateProgramm; + end; + end + else if length (AStr) = 0 then begin + if fLinePairedSeparatorAssigned then begin + fLinePairedSeparatorAssigned := false; + InvalidateProgramm; + end; + end + else Error (reeBadLinePairedSeparator); + end; { of procedure TRegExpr.SetLinePairedSeparator +--------------------------------------------------------------} + +function TRegExpr.GetLinePairedSeparator : RegExprString; + begin + if fLinePairedSeparatorAssigned then begin + {$IFDEF UniCode} + // Here is some UniCode 'magic' + // If You do know better decision to concatenate + // two WideChars, please, let me know! + Result := fLinePairedSeparatorHead; //###0.947 + Result := Result + fLinePairedSeparatorTail; + {$ELSE} + Result := fLinePairedSeparatorHead + fLinePairedSeparatorTail; + {$ENDIF} + end + else Result := ''; + end; { of function TRegExpr.GetLinePairedSeparator +--------------------------------------------------------------} + +function TRegExpr.Substitute (const ATemplate : RegExprString) : RegExprString; +// perform substitutions after a regexp match +// completely rewritten in 0.929 + var + TemplateLen : integer; + TemplateBeg, TemplateEnd : PRegExprChar; + p, p0, ResultPtr : PRegExprChar; + ResultLen : integer; + n : integer; + Ch : REChar; + function ParseVarName (var APtr : PRegExprChar) : integer; + // extract name of variable (digits, may be enclosed with + // curly braces) from APtr^, uses TemplateEnd !!! + const + Digits = ['0' .. '9']; + var + p : PRegExprChar; + Delimited : boolean; + begin + Result := 0; + p := APtr; + Delimited := (p < TemplateEnd) and (p^ = '{'); + if Delimited + then inc (p); // skip left curly brace + if (p < TemplateEnd) and (p^ = '&') + then inc (p) // this is '$&' or '${&}' + else + while (p < TemplateEnd) and + {$IFDEF UniCode} //###0.935 + (ord (p^) < 256) and (char (p^) in Digits) + {$ELSE} + (p^ in Digits) + {$ENDIF} + do begin + Result := Result * 10 + (ord (p^) - ord ('0')); //###0.939 + inc (p); + end; + if Delimited then + if (p < TemplateEnd) and (p^ = '}') + then inc (p) // skip right curly brace + else p := APtr; // isn't properly terminated + if p = APtr + then Result := -1; // no valid digits found or no right curly brace + APtr := p; + end; + begin + // Check programm and input string + if not IsProgrammOk + then EXIT; + if not Assigned (fInputString) then begin + Error (reeNoInpitStringSpecified); + EXIT; + end; + // Prepare for working + TemplateLen := length (ATemplate); + if TemplateLen = 0 then begin // prevent nil pointers + Result := ''; + EXIT; + end; + TemplateBeg := pointer (ATemplate); + TemplateEnd := TemplateBeg + TemplateLen; + // Count result length for speed optimization. + ResultLen := 0; + p := TemplateBeg; + while p < TemplateEnd do begin + Ch := p^; + inc (p); + if Ch = '$' + then n := ParseVarName (p) + else n := -1; + if n >= 0 then begin + if (n < NSUBEXP) and Assigned (startp [n]) and Assigned (endp [n]) + then inc (ResultLen, endp [n] - startp [n]); + end + else begin + if (Ch = EscChar) and (p < TemplateEnd) + then inc (p); // quoted or special char followed + inc (ResultLen); + end; + end; + // Get memory. We do it once and it significant speed up work ! + if ResultLen = 0 then begin + Result := ''; + EXIT; + end; + SetString (Result, nil, ResultLen); + // Fill Result + ResultPtr := pointer (Result); + p := TemplateBeg; + while p < TemplateEnd do begin + Ch := p^; + inc (p); + if Ch = '$' + then n := ParseVarName (p) + else n := -1; + if n >= 0 then begin + p0 := startp [n]; + if (n < NSUBEXP) and Assigned (p0) and Assigned (endp [n]) then + while p0 < endp [n] do begin + ResultPtr^ := p0^; + inc (ResultPtr); + inc (p0); + end; + end + else begin + if (Ch = EscChar) and (p < TemplateEnd) then begin // quoted or special char followed + Ch := p^; + inc (p); + end; + ResultPtr^ := Ch; + inc (ResultPtr); + end; + end; + end; { of function TRegExpr.Substitute +--------------------------------------------------------------} + +procedure TRegExpr.Split (AInputStr : RegExprString; APieces : TStrings); + var PrevPos : integer; + begin + PrevPos := 1; + if Exec (AInputStr) then + REPEAT + APieces.Add (System.Copy (AInputStr, PrevPos, MatchPos [0] - PrevPos)); + PrevPos := MatchPos [0] + MatchLen [0]; + UNTIL not ExecNext; + APieces.Add (System.Copy (AInputStr, PrevPos, MaxInt)); // Tail + end; { of procedure TRegExpr.Split +--------------------------------------------------------------} + +function TRegExpr.Replace (AInputStr : RegExprString; const AReplaceStr : RegExprString; + AUseSubstitution : boolean{$IFDEF DefParam}= False{$ENDIF}) : RegExprString; + var + PrevPos : integer; + begin + Result := ''; + PrevPos := 1; + if Exec (AInputStr) then + REPEAT + Result := Result + System.Copy (AInputStr, PrevPos, + MatchPos [0] - PrevPos); + if AUseSubstitution //###0.946 + then Result := Result + Substitute (AReplaceStr) + else Result := Result + AReplaceStr; + PrevPos := MatchPos [0] + MatchLen [0]; + UNTIL not ExecNext; + Result := Result + System.Copy (AInputStr, PrevPos, MaxInt); // Tail + end; { of function TRegExpr.Replace +--------------------------------------------------------------} + +function TRegExpr.ReplaceEx (AInputStr : RegExprString; + AReplaceFunc : TRegExprReplaceFunction) + : RegExprString; + var + PrevPos : integer; + begin + Result := ''; + PrevPos := 1; + if Exec (AInputStr) then + REPEAT + Result := Result + System.Copy (AInputStr, PrevPos, + MatchPos [0] - PrevPos) + + AReplaceFunc (Self); + PrevPos := MatchPos [0] + MatchLen [0]; + UNTIL not ExecNext; + Result := Result + System.Copy (AInputStr, PrevPos, MaxInt); // Tail + end; { of function TRegExpr.ReplaceEx +--------------------------------------------------------------} + + +{$IFDEF OverMeth} +function TRegExpr.Replace (AInputStr : RegExprString; + AReplaceFunc : TRegExprReplaceFunction) + : RegExprString; + begin + ReplaceEx (AInputStr, AReplaceFunc); + end; { of function TRegExpr.Replace +--------------------------------------------------------------} +{$ENDIF} + +{=============================================================} +{====================== Debug section ========================} +{=============================================================} + +{$IFDEF RegExpPCodeDump} +function TRegExpr.DumpOp (op : TREOp) : RegExprString; +// printable representation of opcode + begin + case op of + BOL: Result := 'BOL'; + EOL: Result := 'EOL'; + BOLML: Result := 'BOLML'; + EOLML: Result := 'EOLML'; + BOUND: Result := 'BOUND'; //###0.943 + NOTBOUND: Result := 'NOTBOUND'; //###0.943 + ANY: Result := 'ANY'; + ANYML: Result := 'ANYML'; //###0.941 + ANYLETTER: Result := 'ANYLETTER'; + NOTLETTER: Result := 'NOTLETTER'; + ANYDIGIT: Result := 'ANYDIGIT'; + NOTDIGIT: Result := 'NOTDIGIT'; + ANYSPACE: Result := 'ANYSPACE'; + NOTSPACE: Result := 'NOTSPACE'; + ANYOF: Result := 'ANYOF'; + ANYBUT: Result := 'ANYBUT'; + ANYOFCI: Result := 'ANYOF/CI'; + ANYBUTCI: Result := 'ANYBUT/CI'; + BRANCH: Result := 'BRANCH'; + EXACTLY: Result := 'EXACTLY'; + EXACTLYCI: Result := 'EXACTLY/CI'; + NOTHING: Result := 'NOTHING'; + COMMENT: Result := 'COMMENT'; + BACK: Result := 'BACK'; + EEND: Result := 'END'; + BSUBEXP: Result := 'BSUBEXP'; + BSUBEXPCI: Result := 'BSUBEXP/CI'; + Succ (OPEN) .. TREOp (Ord (OPEN) + NSUBEXP - 1): //###0.929 + Result := Format ('OPEN[%d]', [ord (op) - ord (OPEN)]); + Succ (CLOSE) .. TREOp (Ord (CLOSE) + NSUBEXP - 1): //###0.929 + Result := Format ('CLOSE[%d]', [ord (op) - ord (CLOSE)]); + STAR: Result := 'STAR'; + PLUS: Result := 'PLUS'; + BRACES: Result := 'BRACES'; + {$IFDEF ComplexBraces} + LOOPENTRY: Result := 'LOOPENTRY'; //###0.925 + LOOP: Result := 'LOOP'; //###0.925 + LOOPNG: Result := 'LOOPNG'; //###0.940 + {$ENDIF} + ANYOFTINYSET: Result:= 'ANYOFTINYSET'; + ANYBUTTINYSET:Result:= 'ANYBUTTINYSET'; + {$IFDEF UseSetOfChar} //###0.929 + ANYOFFULLSET: Result:= 'ANYOFFULLSET'; + {$ENDIF} + STARNG: Result := 'STARNG'; //###0.940 + PLUSNG: Result := 'PLUSNG'; //###0.940 + BRACESNG: Result := 'BRACESNG'; //###0.940 + else Error (reeDumpCorruptedOpcode); + end; {of case op} + Result := ':' + Result; + end; { of function TRegExpr.DumpOp +--------------------------------------------------------------} + +function TRegExpr.Dump : RegExprString; +// dump a regexp in vaguely comprehensible form + var + s : PRegExprChar; + op : TREOp; // Arbitrary non-END op. + next : PRegExprChar; + i : integer; + Diff : integer; +{$IFDEF UseSetOfChar} //###0.929 + Ch : REChar; +{$ENDIF} + begin + if not IsProgrammOk //###0.929 + then EXIT; + + op := EXACTLY; + Result := ''; + s := programm + REOpSz; + while op <> EEND do begin // While that wasn't END last time... + op := s^; + Result := Result + Format ('%2d%s', [s - programm, DumpOp (s^)]); // Where, what. + next := regnext (s); + if next = nil // Next ptr. + then Result := Result + ' (0)' + else begin + if next > s //###0.948 PWideChar subtraction workaround (see comments in Tail method for details) + then Diff := next - s + else Diff := - (s - next); + Result := Result + Format (' (%d) ', [(s - programm) + Diff]); + end; + inc (s, REOpSz + RENextOffSz); + if (op = ANYOF) or (op = ANYOFCI) or (op = ANYBUT) or (op = ANYBUTCI) + or (op = EXACTLY) or (op = EXACTLYCI) then begin + // Literal string, where present. + while s^ <> #0 do begin + Result := Result + s^; + inc (s); + end; + inc (s); + end; + if (op = ANYOFTINYSET) or (op = ANYBUTTINYSET) then begin + for i := 1 to TinySetLen do begin + Result := Result + s^; + inc (s); + end; + end; + if (op = BSUBEXP) or (op = BSUBEXPCI) then begin + Result := Result + ' \' + IntToStr (Ord (s^)); + inc (s); + end; + {$IFDEF UseSetOfChar} //###0.929 + if op = ANYOFFULLSET then begin + for Ch := #0 to #255 do + if Ch in PSetOfREChar (s)^ then + if Ch < ' ' + then Result := Result + '#' + IntToStr (Ord (Ch)) //###0.936 + else Result := Result + Ch; + inc (s, SizeOf (TSetOfREChar)); + end; + {$ENDIF} + if (op = BRACES) or (op = BRACESNG) then begin //###0.941 + // show min/max argument of BRACES operator + Result := Result + Format ('{%d,%d}', [PREBracesArg (s)^, PREBracesArg (s + REBracesArgSz)^]); + inc (s, REBracesArgSz * 2); + end; + {$IFDEF ComplexBraces} + if (op = LOOP) or (op = LOOPNG) then begin //###0.940 + Result := Result + Format (' -> (%d) {%d,%d}', [ + (s - programm - (REOpSz + RENextOffSz)) + PRENextOff (s + 2 * REBracesArgSz)^, + PREBracesArg (s)^, PREBracesArg (s + REBracesArgSz)^]); + inc (s, 2 * REBracesArgSz + RENextOffSz); + end; + {$ENDIF} + Result := Result + #$d#$a; + end; { of while} + + // Header fields of interest. + + if regstart <> #0 + then Result := Result + 'start ' + regstart; + if reganch <> #0 + then Result := Result + 'anchored '; + if regmust <> nil + then Result := Result + 'must have ' + regmust; + {$IFDEF UseFirstCharSet} //###0.929 + Result := Result + #$d#$a'FirstCharSet:'; + for Ch := #0 to #255 do + if Ch in FirstCharSet + then begin + if Ch < ' ' + then Result := Result + '#' + IntToStr(Ord(Ch)) //###0.948 + else Result := Result + Ch; + end; + {$ENDIF} + Result := Result + #$d#$a; + end; { of function TRegExpr.Dump +--------------------------------------------------------------} +{$ENDIF} + +{$IFDEF reRealExceptionAddr} +{$OPTIMIZATION ON} +// ReturnAddr works correctly only if compiler optimization is ON +// I placed this method at very end of unit because there are no +// way to restore compiler optimization flag ... +{$ENDIF} +procedure TRegExpr.Error (AErrorID : integer); +{$IFDEF reRealExceptionAddr} + function ReturnAddr : pointer; //###0.938 + asm + mov eax,[ebp+4] + end; +{$ENDIF} + var + e : ERegExpr; + begin + fLastError := AErrorID; // dummy stub - useless because will raise exception + if AErrorID < 1000 // compilation error ? + then e := ERegExpr.Create (ErrorMsg (AErrorID) // yes - show error pos + + ' (pos ' + IntToStr (CompilerErrorPos) + ')') + else e := ERegExpr.Create (ErrorMsg (AErrorID)); + e.ErrorCode := AErrorID; + e.CompilerErrorPos := CompilerErrorPos; + raise e + {$IFDEF reRealExceptionAddr} + At ReturnAddr; //###0.938 + {$ENDIF} + end; { of procedure TRegExpr.Error +--------------------------------------------------------------} + +(* + PCode persistence: + FirstCharSet + programm, regsize + regstart // -> programm + reganch // -> programm + regmust, regmlen // -> programm + fExprIsCompiled +*) + +// be carefull - placed here code will be always compiled with +// compiler optimization flag + +{$IFDEF FPC} +initialization + RegExprInvertCaseFunction := TRegExpr.InvertCaseFunction; + +{$ENDIF} +end. + diff --git a/Source/Servidor/Utiles/uBusinessUtils.dcu b/Source/Servidor/Utiles/uBusinessUtils.dcu new file mode 100644 index 0000000..e6d8982 Binary files /dev/null and b/Source/Servidor/Utiles/uBusinessUtils.dcu differ diff --git a/Source/Servidor/Utiles/uBusinessUtils.pas b/Source/Servidor/Utiles/uBusinessUtils.pas new file mode 100644 index 0000000..bad38ae --- /dev/null +++ b/Source/Servidor/Utiles/uBusinessUtils.pas @@ -0,0 +1,27 @@ +unit uBusinessUtils; + +interface + +uses + uDAInterfaces, uDADataTable, uDABusinessProcessor; + +function GetBusinessProcessorConnection (ABusinessProcessor: TDABusinessProcessor): IDAConnection; + +implementation + +uses + DataAbstractService_Impl; + +{ Se utiliza en las reglas de negocio del servidor y + devuelve la conexin utilizada por el BusinessProcessor para + procesar los deltas. } +function GetBusinessProcessorConnection (ABusinessProcessor: TDABusinessProcessor): IDAConnection; +begin + if (ABusinessProcessor.Owner is TDataAbstractService) then + Result := (ABusinessProcessor.Owner as TDataAbstractService).Connection + else + Result := NIL; +end; + + +end. diff --git a/Source/Servidor/Utiles/uDatabaseUtils.dcu b/Source/Servidor/Utiles/uDatabaseUtils.dcu new file mode 100644 index 0000000..438eb9b Binary files /dev/null and b/Source/Servidor/Utiles/uDatabaseUtils.dcu differ diff --git a/Source/Servidor/Utiles/uDatabaseUtils.pas b/Source/Servidor/Utiles/uDatabaseUtils.pas new file mode 100644 index 0000000..bf1af02 --- /dev/null +++ b/Source/Servidor/Utiles/uDatabaseUtils.pas @@ -0,0 +1,39 @@ +unit uDatabaseUtils; + +interface + +function GetNextAutoInc(const GeneratorName: String): Integer; + +function HayClausulaWhere (aSQL: String): Boolean; + +implementation + +uses + SysUtils, + uDADataTable, uDAClasses, uDAInterfaces, + uDataModuleServer; + +function GetNextAutoInc(const GeneratorName: String): Integer; +var + vConn : IDAConnection; + ds: IDADataset; +begin + vConn := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionName); + vConn.BeginTransaction; + try + ds := vConn.NewDataset(Format('SELECT GEN_ID(%s,1) FROM RDB$Database', [GeneratorName])); + ds.Open; + Result := ds.Fields[0].AsInteger; + finally + vConn.CommitTransaction; + ds := NIL; + end; +end; + +function HayClausulaWhere (aSQL: String): Boolean; +begin + Result := (Pos('WHERE', UpperCase(aSQL)) > 0); +end; + + +end. diff --git a/Source/Servidor/Utiles/uReferenciasUtils.dcu b/Source/Servidor/Utiles/uReferenciasUtils.dcu new file mode 100644 index 0000000..f7d1d32 Binary files /dev/null and b/Source/Servidor/Utiles/uReferenciasUtils.dcu differ diff --git a/Source/Servidor/Utiles/uReferenciasUtils.pas b/Source/Servidor/Utiles/uReferenciasUtils.pas new file mode 100644 index 0000000..9aeadd2 --- /dev/null +++ b/Source/Servidor/Utiles/uReferenciasUtils.pas @@ -0,0 +1,66 @@ +unit uReferenciasUtils; + +interface + +uses + uDAInterfaces, uDADataTable, uDABusinessProcessor; + + function darReferenciaSiguiente(const Referencia: String): String; + +implementation + +uses + SysUtils; + +{ Se utiliza en las reglas de negocio del servidor y + devuelve la conexin utilizada por el BusinessProcessor para + procesar los deltas. } +function darReferenciaSiguiente(const Referencia: String): String; +var + ParteEntera, ParteCaracter: String; + Semaforo: Boolean; + i, LongitudParteEntera: Integer; +begin + //Por defecto la parte caracter ser todo + ParteCaracter := Copy(Referencia, 1, length(Referencia)); + Semaforo:= false; + for i := 0 to length(Referencia) do + begin + if (Referencia[i] in ['0','1','2','3','4','5','6','7','8','9']) then + begin + if not Semaforo then + begin + //Cogemos el resto de la cadena suponiendo que no hay ms caracter + ParteEntera := Copy(Referencia, i, length(Referencia)+1); + Semaforo := true; + end; + end + else + begin + //Volvemos a asignar la parte caracter ya que hemos encontrado otro + //e inicializamos el semforo para volver a coger la parte entera si encontramos + //algn nmero + ParteCaracter := Copy(Referencia, 1, i); + Semaforo := False; + end; + end; + + LongitudParteEntera := Length(ParteEntera); + //Si no tenemos ningn nmero en parte entera asignamos 1 por defecto + try + i := StrToInt(ParteEntera); + except + i := 1; + end; + + //Incrementamos y rellenamos con ceros, en el caso de ser necesario + Inc(i); + ParteEntera := IntToStr(i); + for i:=Length(ParteEntera) to LongitudParteEntera-1 do + ParteEntera := '0' + ParteEntera; + + Result := ParteCaracter + ParteEntera; +end; + + +end. diff --git a/Source/Servidor/Utiles/uRestriccionesUsuarioUtils.dcu b/Source/Servidor/Utiles/uRestriccionesUsuarioUtils.dcu new file mode 100644 index 0000000..9a20c5e Binary files /dev/null and b/Source/Servidor/Utiles/uRestriccionesUsuarioUtils.dcu differ diff --git a/Source/Servidor/Utiles/uRestriccionesUsuarioUtils.pas b/Source/Servidor/Utiles/uRestriccionesUsuarioUtils.pas new file mode 100644 index 0000000..1b15da0 --- /dev/null +++ b/Source/Servidor/Utiles/uRestriccionesUsuarioUtils.pas @@ -0,0 +1,112 @@ +unit uRestriccionesUsuarioUtils; + +interface + +uses + uDAInterfaces, uROSessions; + +{ 'FiltrarAccesoUsuario' sirve para filtrar un dataset a las empresas + que el usuario puede acceder } +procedure FiltrarAccesoUsuario (ASession: TROSession; + AConnection: IDAConnection; ASchema: IDASchema; ADataset: IDADataset; + const FieldNameID_EMPRESA : String = 'ID_EMPRESA'); + +procedure _FiltrarAccesoUsuario (ASession: TROSession; + AConnection: IDAConnection; ASchema: IDASchema; ADataset: IDADataset; + const FieldNameID_EMPRESA : String = 'ID_EMPRESA'); + + +implementation + +uses + Classes, SysUtils, uDatabaseUtils, uUsersManager, uDataModuleServer, + Dialogs; + + +procedure _FiltrarAccesoUsuario (ASession: TROSession; + AConnection: IDAConnection; ASchema: IDASchema; ADataset: IDADataset; + const FieldNameID_EMPRESA : String); +var + AUserInfo : TUserInfo; + WhereAnterior : String; +begin + + { + ATENCIN!!! MOVIDA MENTAL!!!!!!! + + En el caso de la tabla contactos hay definida en el + esquema una clusula where (p.e: where categoria = :categoria). + Si el cliente manda alguna clausula where, DA lo hace + mal y PISA la clausula where del esquema con el where + que le manda el cliente. Pero despus falla todo por + que trata de rellenar el parmetro :CATEGORIA que ya + no existe en el where por que lo ha pisado con el + where del cliente. + + SOLUCIN: si el cliente manda alguna clusula where, + anteponer AND para unirla al where definido en el esquema. + } + + { Antes de filtrar ADataset, hay que saber si el cliente manda + alguna clusula where en ADataset. Si hay where hay que + anteponer AND para unirla al where definido en el esquema. } + + // Mirar si hay WHERE en el ADataSet que viene desde el cliente + if ADataSet.Where.NotEmpty then + begin + // Hay where en el dataset del cliente + + // Hay WHERE en ese ADataSet definido en el esquema? + if HayClausulaWhere(ASchema.GetDatasetText(AConnection, ADataSet.Name)) then + begin + // Hay que juntar los dos WHERE en uno + WhereAnterior := ADataSet.Where.Clause; + ADataSet.Where.Clear; + ADataSet.Where.AddOperator(opAND); + ADataSet.Where.AddText(WhereAnterior); + end; + end; + + { Aqu se asegura que el usuario slo accede a las filas + de las empresas a las que tiene permiso para acceder } + + AUserInfo := TUserInfo.Create(ASession); + try + if not AUserInfo.EsAdministrador then + begin + if ADataSet.Where.NotEmpty then + ADataSet.Where.AddOperator(opAND); + ADataSet.Where.AddCondition(FieldNameID_EMPRESA, + cIn, '(' + AUserInfo.Empresas + ')'); + end; + finally + FreeAndNil(AUserInfo); + end; +end; + +procedure FiltrarAccesoUsuario (ASession: TROSession; + AConnection: IDAConnection; ASchema: IDASchema; ADataset: IDADataset; + const FieldNameID_EMPRESA : String); +var + AUserInfo : TUserInfo; +begin + { Aqu se asegura que el usuario slo accede a las filas + de las empresas a las que tiene permiso para acceder } + AUserInfo := TUserInfo.Create(ASession); + try + if not AUserInfo.EsAdministrador then + begin + with ADataSet.DynamicWhere do + Expression := NewBinaryExpression(NewField('', FieldNameID_EMPRESA), + NewConstant(AUserInfo.Empresas, datString), dboIn); + end; + finally + FreeAndNil(AUserInfo); + end; +end; + + + + + +end. diff --git a/Source/Servidor/Utiles/uSchemaUtilsServer.dcu b/Source/Servidor/Utiles/uSchemaUtilsServer.dcu new file mode 100644 index 0000000..1205096 Binary files /dev/null and b/Source/Servidor/Utiles/uSchemaUtilsServer.dcu differ diff --git a/Source/Servidor/Utiles/uSchemaUtilsServer.pas b/Source/Servidor/Utiles/uSchemaUtilsServer.pas new file mode 100644 index 0000000..01327bb --- /dev/null +++ b/Source/Servidor/Utiles/uSchemaUtilsServer.pas @@ -0,0 +1,165 @@ +unit uSchemaUtilsServer; + +interface + +uses + Classes, SysUtils, + uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + DataAbstract4_Intf, DataAbstractService_Impl, + uDAClasses, uDAInterfaces, uDADataTable; + +type + TReplicarDataSet = class + protected + function GenerateNewSQL : String; + public + Service : TDataAbstractService; + Columnas : String; + ColumnasQueSuman : String; + ColumnasQueAVG : String; + SourceDataSetName : String; + function GetNewDataSet : IDADataset; + end; + + +implementation + +{ TReplicaDataSet } + +uses + RegExpr, + Dialogs, JclStrings; + +function TReplicarDataSet.GenerateNewSQL: String; +var + AColumnList : TStringList; + ASQL: TStringList; + ds : IDADataset; + i : integer; + Separador : String; + bHayAgrupacion : Boolean; + + function GetTrueFieldName(AField : string; ConAlias : Boolean = True) : String; + var + ARegExpr : TRegExpr; + begin + Result := AField; // Por si el campo no tuviera alias + ARegExpr := TRegExpr.Create; + try + ARegExpr.ModifierI := True; // case insensitive + ARegExpr.InputString := ds.SQL; + ARegExpr.Expression := '[^ ,]+[ ]+AS[ ]+' + AField; // buscar (xxxx.xxxx AS AField) o (xxxx AS AField) + ARegExpr.Expression := ARegExpr.Expression + '|'; // o + ARegExpr.Expression := ARegExpr.Expression + '[^ ,]+\.' + AField; // buscar xxxx.AField + if ARegExpr.Exec then + Result := ARegExpr.Match[0]; + + if not ConAlias then + begin + ARegExpr.InputString := Result; + ARegExpr.Expression := '^[^ ,]+'; // Para quedarme con el campo sin alias + if ARegExpr.Exec then + Result := ARegExpr.Match[0] + end; + finally + FreeAndNil(ARegExpr); + end; + end; + +begin + AColumnList := TStringList.Create; + ASQL := TStringList.Create; + ds := Service.ServiceSchema.NewDataset(Service.Connection, SourceDataSetName); + bHayAgrupacion := False; + try + AColumnList.CommaText := Columnas; + + with ASQL do + begin + Insert(0, 'SELECT DISTINCT'); + Insert(1, ''); // Lista de campos + Insert(2, Copy(ds.SQL, Pos('FROM', ds.SQL), Length(ds.SQL))); + Insert(3, ''); // Group by + Separador := ''; + + for i := 0 to AColumnList.Count - 1 do + begin + if Assigned(ds.FindField(AColumnList[i])) then + begin + if i > 0 then + Separador := ','; + + if Pos('#'+AColumnList[i]+'#', ColumnasQueSuman) > 0 then + begin + Strings[1] := Strings[1] + Separador + 'SUM(' + GetTrueFieldName(AColumnList[i], False) + ') AS ' + AColumnList[i]; + bHayAgrupacion := True; + end + else if Pos('#'+AColumnList[i]+'#', ColumnasQueAVG) > 0 then + begin + Strings[1] := Strings[1] + Separador + 'AVG(' + GetTrueFieldName(AColumnList[i], False) + ') AS ' + AColumnList[i]; + bHayAgrupacion := True; + end + else begin + Strings[1] := Strings[1] + Separador + GetTrueFieldName(AColumnList[i]); + if Length(Strings[3]) = 0 then + Strings[3] := 'GROUP BY ' + else begin + if (Strings[3] <> 'GROUP BY ') then + Strings[3] := Strings[3] + Separador; + end; + Strings[3] := Strings[3] + GetTrueFieldName(AColumnList[i], False); + end; + end; + end; // for + + if not bHayAgrupacion then + Delete(3); + end; + Result := ASQL.Text; + + finally + AColumnList.Free; + ASQL.Free; + end; +end; + + + +function TReplicarDataSet.GetNewDataSet: IDADataset; +var + SQL: String; + ASchemaDataSet: TDADataSet; + AColumnList : TStringList; + i, j : Integer; +begin + SQL := GenerateNewSQL; + Result := Service.Connection.NewDataset(SQL, SourceDataSetName); + + ASchemaDataSet := Service.ServiceSchema.Datasets.DatasetByName(SourceDataSetName); + if Assigned(ASchemaDataSet) then + begin + Result.Params.AssignParamCollection(ASchemaDataSet.Params); + Result.Fields.AssignFieldCollection(ASchemaDataSet.Fields); + AColumnList := TStringList.Create; + try + AColumnList.CommaText := Columnas; + j := 0; + i := Result.Fields.Count; + while i > 0 do + begin + if AColumnList.IndexOf(Result.Fields[j].Name) = -1 then + Result.Fields.Delete(j) + else + j := j + 1; // Un campo que dejo + i := i - 1; // Un campo menos por revisar + end; + finally + AColumnList.Free; + end; + end; + + Result.Close; + Result.Where.Clear; +end; + +end. diff --git a/Source/Servidor/Utiles/uServerAppUtils.dcu b/Source/Servidor/Utiles/uServerAppUtils.dcu new file mode 100644 index 0000000..f7c46db Binary files /dev/null and b/Source/Servidor/Utiles/uServerAppUtils.dcu differ diff --git a/Source/Servidor/Utiles/uServerAppUtils.pas b/Source/Servidor/Utiles/uServerAppUtils.pas new file mode 100644 index 0000000..bb5f150 --- /dev/null +++ b/Source/Servidor/Utiles/uServerAppUtils.pas @@ -0,0 +1,32 @@ +unit uServerAppUtils; + +interface + +uses + ExtCtrls; + +procedure ShowBalloonHint(const AMensaje: String; ABalloonIcon: TBalloonFlags); + + +implementation + +uses + Dialogs, Forms, uServerMainForm, JvTrayIcon; + +procedure ShowBalloonHint(const AMensaje: String; ABalloonIcon: TBalloonFlags); +begin + if Assigned(fServerForm) then + with fServerForm.TrayIcon1 do + begin + BalloonTitle := 'FactuGES (Servidor)'; + BalloonHint := AMensaje; + BalloonTimeout := 2000; // 2000ms => 2seg + BalloonFlags := ABalloonIcon; + Hint := 'FactuGES (Servidor)' + #10#13 + AMensaje; + ShowBalloonHint; + end; +end; + + +end. + diff --git a/Source/Servidor/Utiles/uSesionesUtils.dcu b/Source/Servidor/Utiles/uSesionesUtils.dcu new file mode 100644 index 0000000..4f34e56 Binary files /dev/null and b/Source/Servidor/Utiles/uSesionesUtils.dcu differ diff --git a/Source/Servidor/Utiles/uSesionesUtils.pas b/Source/Servidor/Utiles/uSesionesUtils.pas new file mode 100644 index 0000000..28fc894 --- /dev/null +++ b/Source/Servidor/Utiles/uSesionesUtils.pas @@ -0,0 +1,135 @@ +unit uSesionesUtils; + +interface + +uses + {VCL:} SysUtils, Contnrs, SyncObjs, Variants, + {RemObjects} uROSessions; + +type + + TSesionesHelper = class + private + lObjects: TObjectList; + csObjects: TCriticalSection; + function AddObject( aObj: TObject ) : integer; + procedure DeleteObject( aObj: TObject ); + function GetObject (aIndex : Integer) : TObject; + public + constructor Create; + destructor Destroy; override; + function GetSessionObject(aSession: TROSession; aObjName: string): TObject; + procedure SaveSessionObject(aSession: TROSession; aObjName: string; aObj: TObject); + procedure DeleteSessionObject(aSession: TROSession; aObjName: string); + end; + +var + SesionesHelper: TSesionesHelper; + +implementation + +{ TSesionesHelper } + +function TSesionesHelper.AddObject(aObj: TObject) : integer; +begin + csObjects.Enter; + try + Result := lObjects.Add(aObj); + finally + csObjects.Leave; + end; +end; + +constructor TSesionesHelper.Create; +begin + csObjects := TCriticalSection.Create; + lObjects := TObjectList.Create; +end; + +procedure TSesionesHelper.DeleteObject(aObj: TObject); +var + idx: Integer; +begin + csObjects.Enter; + try + idx := lObjects.IndexOf( aObj ); + if idx > -1 then + begin + lObjects.Remove(aObj); + end; + finally + csObjects.Leave; + end; +end; + +procedure TSesionesHelper.DeleteSessionObject(aSession: TROSession; + aObjName: string); +var + oldObj: TObject; +begin + oldObj := GetSessionObject(aSession, aObjName); + if Assigned(oldObj) then + begin + DeleteObject( oldObj ); + aSession.Values[aObjName] := NULL; + end; +end; + +destructor TSesionesHelper.Destroy; +begin + // Free class members + FreeAndNil( lObjects ); + FreeAndNil( csObjects ); + inherited; +end; + +function TSesionesHelper.GetObject(aIndex: Integer): TObject; +begin + Result := NIL; + csObjects.Enter; + try + if (AIndex > -1) and (AIndex < lObjects.Count) then + Result := lObjects.Items[AIndex]; + finally + csObjects.Leave; + end; +end; + +function TSesionesHelper.GetSessionObject(aSession: TROSession; + aObjName: string): TObject; +var + aValue : Variant; +begin + Result := NIL; + aValue := aSession.Values[aObjName]; + + if VarIsType(aValue, varInteger) then + Result := GetObject(aValue); +end; + +// Saves a delhpi TObject to a session variable +procedure TSesionesHelper.SaveSessionObject(aSession: TROSession; + aObjName: string; aObj: TObject); +var + aIndex : Integer; +begin + // Free the existing object if it has already been assigned + DeleteSessionObject(aSession, aObjName); + + if Assigned( aObj ) then + begin + // Add the object name to the sessionobjectslist + AIndex := AddObject(aObj); + aSession.Values[aObjName] := AIndex; + end + else + aSession.Values[aObjName] := NULL; +end; + +initialization + SesionesHelper := TSesionesHelper.Create; + +finalization + FreeAndNil( SesionesHelper ); + +end. diff --git a/Source/Servidor/schAlbaranesClienteClient_Intf.dcu b/Source/Servidor/schAlbaranesClienteClient_Intf.dcu new file mode 100644 index 0000000..00a630e Binary files /dev/null and b/Source/Servidor/schAlbaranesClienteClient_Intf.dcu differ diff --git a/Source/Servidor/schAlbaranesClienteServer_Intf.dcu b/Source/Servidor/schAlbaranesClienteServer_Intf.dcu new file mode 100644 index 0000000..0ee4904 Binary files /dev/null and b/Source/Servidor/schAlbaranesClienteServer_Intf.dcu differ diff --git a/Source/Servidor/schAlbaranesProveedorClient_Intf.dcu b/Source/Servidor/schAlbaranesProveedorClient_Intf.dcu new file mode 100644 index 0000000..3ee4647 Binary files /dev/null and b/Source/Servidor/schAlbaranesProveedorClient_Intf.dcu differ diff --git a/Source/Servidor/schAlbaranesProveedorServer_Intf.dcu b/Source/Servidor/schAlbaranesProveedorServer_Intf.dcu new file mode 100644 index 0000000..6a968da Binary files /dev/null and b/Source/Servidor/schAlbaranesProveedorServer_Intf.dcu differ diff --git a/Source/Servidor/schAlmacenesClient_Intf.dcu b/Source/Servidor/schAlmacenesClient_Intf.dcu new file mode 100644 index 0000000..ad51416 Binary files /dev/null and b/Source/Servidor/schAlmacenesClient_Intf.dcu differ diff --git a/Source/Servidor/schAlmacenesServer_Intf.dcu b/Source/Servidor/schAlmacenesServer_Intf.dcu new file mode 100644 index 0000000..745e242 Binary files /dev/null and b/Source/Servidor/schAlmacenesServer_Intf.dcu differ diff --git a/Source/Servidor/schArticulosClient_Intf.dcu b/Source/Servidor/schArticulosClient_Intf.dcu new file mode 100644 index 0000000..18d6884 Binary files /dev/null and b/Source/Servidor/schArticulosClient_Intf.dcu differ diff --git a/Source/Servidor/schArticulosServer_Intf.dcu b/Source/Servidor/schArticulosServer_Intf.dcu new file mode 100644 index 0000000..f18e59e Binary files /dev/null and b/Source/Servidor/schArticulosServer_Intf.dcu differ diff --git a/Source/Servidor/schBase_Intf.dcu b/Source/Servidor/schBase_Intf.dcu new file mode 100644 index 0000000..e1c25d0 Binary files /dev/null and b/Source/Servidor/schBase_Intf.dcu differ diff --git a/Source/Servidor/schContactosClient_Intf.dcu b/Source/Servidor/schContactosClient_Intf.dcu new file mode 100644 index 0000000..035ce51 Binary files /dev/null and b/Source/Servidor/schContactosClient_Intf.dcu differ diff --git a/Source/Servidor/schContactosServer_Intf.dcu b/Source/Servidor/schContactosServer_Intf.dcu new file mode 100644 index 0000000..e1fce58 Binary files /dev/null and b/Source/Servidor/schContactosServer_Intf.dcu differ diff --git a/Source/Servidor/schEmpresasClient_Intf.dcu b/Source/Servidor/schEmpresasClient_Intf.dcu new file mode 100644 index 0000000..cccde4b Binary files /dev/null and b/Source/Servidor/schEmpresasClient_Intf.dcu differ diff --git a/Source/Servidor/schEmpresasServer_Intf.dcu b/Source/Servidor/schEmpresasServer_Intf.dcu new file mode 100644 index 0000000..cbb9f22 Binary files /dev/null and b/Source/Servidor/schEmpresasServer_Intf.dcu differ diff --git a/Source/Servidor/schFabricantesClient_Intf.dcu b/Source/Servidor/schFabricantesClient_Intf.dcu new file mode 100644 index 0000000..0933774 Binary files /dev/null and b/Source/Servidor/schFabricantesClient_Intf.dcu differ diff --git a/Source/Servidor/schFabricantesServer_Intf.dcu b/Source/Servidor/schFabricantesServer_Intf.dcu new file mode 100644 index 0000000..6f1ca13 Binary files /dev/null and b/Source/Servidor/schFabricantesServer_Intf.dcu differ diff --git a/Source/Servidor/schFacturasClienteClient_Intf.dcu b/Source/Servidor/schFacturasClienteClient_Intf.dcu new file mode 100644 index 0000000..95ca7f8 Binary files /dev/null and b/Source/Servidor/schFacturasClienteClient_Intf.dcu differ diff --git a/Source/Servidor/schFacturasClienteServer_Intf.dcu b/Source/Servidor/schFacturasClienteServer_Intf.dcu new file mode 100644 index 0000000..3e45c3b Binary files /dev/null and b/Source/Servidor/schFacturasClienteServer_Intf.dcu differ diff --git a/Source/Servidor/schFacturasProveedorClient_Intf.dcu b/Source/Servidor/schFacturasProveedorClient_Intf.dcu new file mode 100644 index 0000000..abe0059 Binary files /dev/null and b/Source/Servidor/schFacturasProveedorClient_Intf.dcu differ diff --git a/Source/Servidor/schFacturasProveedorServer_Intf.dcu b/Source/Servidor/schFacturasProveedorServer_Intf.dcu new file mode 100644 index 0000000..a8b8d85 Binary files /dev/null and b/Source/Servidor/schFacturasProveedorServer_Intf.dcu differ diff --git a/Source/Servidor/schFamiliasClient_Intf.dcu b/Source/Servidor/schFamiliasClient_Intf.dcu new file mode 100644 index 0000000..b6e8d96 Binary files /dev/null and b/Source/Servidor/schFamiliasClient_Intf.dcu differ diff --git a/Source/Servidor/schFamiliasServer_Intf.dcu b/Source/Servidor/schFamiliasServer_Intf.dcu new file mode 100644 index 0000000..c08d977 Binary files /dev/null and b/Source/Servidor/schFamiliasServer_Intf.dcu differ diff --git a/Source/Servidor/schFormasPagoClient_Intf.dcu b/Source/Servidor/schFormasPagoClient_Intf.dcu new file mode 100644 index 0000000..c36aa20 Binary files /dev/null and b/Source/Servidor/schFormasPagoClient_Intf.dcu differ diff --git a/Source/Servidor/schFormasPagoServer_Intf.dcu b/Source/Servidor/schFormasPagoServer_Intf.dcu new file mode 100644 index 0000000..a98b1d3 Binary files /dev/null and b/Source/Servidor/schFormasPagoServer_Intf.dcu differ diff --git a/Source/Servidor/schHistoricoMovimientosClient_Intf.dcu b/Source/Servidor/schHistoricoMovimientosClient_Intf.dcu new file mode 100644 index 0000000..57fbb62 Binary files /dev/null and b/Source/Servidor/schHistoricoMovimientosClient_Intf.dcu differ diff --git a/Source/Servidor/schHistoricoMovimientosServer_Intf.dcu b/Source/Servidor/schHistoricoMovimientosServer_Intf.dcu new file mode 100644 index 0000000..42d79b8 Binary files /dev/null and b/Source/Servidor/schHistoricoMovimientosServer_Intf.dcu differ diff --git a/Source/Servidor/schInventarioClient_Intf.dcu b/Source/Servidor/schInventarioClient_Intf.dcu new file mode 100644 index 0000000..f172632 Binary files /dev/null and b/Source/Servidor/schInventarioClient_Intf.dcu differ diff --git a/Source/Servidor/schInventarioServer_Intf.dcu b/Source/Servidor/schInventarioServer_Intf.dcu new file mode 100644 index 0000000..92935b2 Binary files /dev/null and b/Source/Servidor/schInventarioServer_Intf.dcu differ diff --git a/Source/Servidor/schObrasClient_Intf.dcu b/Source/Servidor/schObrasClient_Intf.dcu new file mode 100644 index 0000000..dc90de8 Binary files /dev/null and b/Source/Servidor/schObrasClient_Intf.dcu differ diff --git a/Source/Servidor/schObrasServer_Intf.dcu b/Source/Servidor/schObrasServer_Intf.dcu new file mode 100644 index 0000000..5cc6357 Binary files /dev/null and b/Source/Servidor/schObrasServer_Intf.dcu differ diff --git a/Source/Servidor/schPedidosProveedorClient_Intf.dcu b/Source/Servidor/schPedidosProveedorClient_Intf.dcu new file mode 100644 index 0000000..ccad865 Binary files /dev/null and b/Source/Servidor/schPedidosProveedorClient_Intf.dcu differ diff --git a/Source/Servidor/schPedidosProveedorServer_Intf.dcu b/Source/Servidor/schPedidosProveedorServer_Intf.dcu new file mode 100644 index 0000000..c3355bd Binary files /dev/null and b/Source/Servidor/schPedidosProveedorServer_Intf.dcu differ diff --git a/Source/Servidor/schPresupuestosClienteClient_Intf.dcu b/Source/Servidor/schPresupuestosClienteClient_Intf.dcu new file mode 100644 index 0000000..ad384d6 Binary files /dev/null and b/Source/Servidor/schPresupuestosClienteClient_Intf.dcu differ diff --git a/Source/Servidor/schPresupuestosClienteServer_Intf.dcu b/Source/Servidor/schPresupuestosClienteServer_Intf.dcu new file mode 100644 index 0000000..dd72652 Binary files /dev/null and b/Source/Servidor/schPresupuestosClienteServer_Intf.dcu differ diff --git a/Source/Servidor/schRecibosClienteClient_Intf.dcu b/Source/Servidor/schRecibosClienteClient_Intf.dcu new file mode 100644 index 0000000..0f5a717 Binary files /dev/null and b/Source/Servidor/schRecibosClienteClient_Intf.dcu differ diff --git a/Source/Servidor/schRecibosClienteServer_Intf.dcu b/Source/Servidor/schRecibosClienteServer_Intf.dcu new file mode 100644 index 0000000..04722ab Binary files /dev/null and b/Source/Servidor/schRecibosClienteServer_Intf.dcu differ diff --git a/Source/Servidor/schRecibosProveedorClient_Intf.dcu b/Source/Servidor/schRecibosProveedorClient_Intf.dcu new file mode 100644 index 0000000..039cdb8 Binary files /dev/null and b/Source/Servidor/schRecibosProveedorClient_Intf.dcu differ diff --git a/Source/Servidor/schRecibosProveedorServer_Intf.dcu b/Source/Servidor/schRecibosProveedorServer_Intf.dcu new file mode 100644 index 0000000..b50a0d8 Binary files /dev/null and b/Source/Servidor/schRecibosProveedorServer_Intf.dcu differ diff --git a/Source/Servidor/schReferenciasClient_Intf.dcu b/Source/Servidor/schReferenciasClient_Intf.dcu new file mode 100644 index 0000000..2cd6fe2 Binary files /dev/null and b/Source/Servidor/schReferenciasClient_Intf.dcu differ diff --git a/Source/Servidor/schReferenciasServer_Intf.dcu b/Source/Servidor/schReferenciasServer_Intf.dcu new file mode 100644 index 0000000..334436d Binary files /dev/null and b/Source/Servidor/schReferenciasServer_Intf.dcu differ diff --git a/Source/Servidor/schRemesasClienteClient_Intf.dcu b/Source/Servidor/schRemesasClienteClient_Intf.dcu new file mode 100644 index 0000000..4762b1d Binary files /dev/null and b/Source/Servidor/schRemesasClienteClient_Intf.dcu differ diff --git a/Source/Servidor/schRemesasClienteServer_Intf.dcu b/Source/Servidor/schRemesasClienteServer_Intf.dcu new file mode 100644 index 0000000..0e716d7 Binary files /dev/null and b/Source/Servidor/schRemesasClienteServer_Intf.dcu differ diff --git a/Source/Servidor/schRemesasProveedorClient_Intf.dcu b/Source/Servidor/schRemesasProveedorClient_Intf.dcu new file mode 100644 index 0000000..8f29d41 Binary files /dev/null and b/Source/Servidor/schRemesasProveedorClient_Intf.dcu differ diff --git a/Source/Servidor/schRemesasProveedorServer_Intf.dcu b/Source/Servidor/schRemesasProveedorServer_Intf.dcu new file mode 100644 index 0000000..834958a Binary files /dev/null and b/Source/Servidor/schRemesasProveedorServer_Intf.dcu differ diff --git a/Source/Servidor/schTiposIVAClient_Intf.dcu b/Source/Servidor/schTiposIVAClient_Intf.dcu new file mode 100644 index 0000000..fbc8787 Binary files /dev/null and b/Source/Servidor/schTiposIVAClient_Intf.dcu differ diff --git a/Source/Servidor/schTiposIVAServer_Intf.dcu b/Source/Servidor/schTiposIVAServer_Intf.dcu new file mode 100644 index 0000000..9a372e3 Binary files /dev/null and b/Source/Servidor/schTiposIVAServer_Intf.dcu differ diff --git a/Source/Servidor/schUnidadesMedidaClient_Intf.dcu b/Source/Servidor/schUnidadesMedidaClient_Intf.dcu new file mode 100644 index 0000000..64ede90 Binary files /dev/null and b/Source/Servidor/schUnidadesMedidaClient_Intf.dcu differ diff --git a/Source/Servidor/schUnidadesMedidaServer_Intf.dcu b/Source/Servidor/schUnidadesMedidaServer_Intf.dcu new file mode 100644 index 0000000..33b3fe0 Binary files /dev/null and b/Source/Servidor/schUnidadesMedidaServer_Intf.dcu differ diff --git a/Source/Servidor/schUsuariosClient_Intf.dcu b/Source/Servidor/schUsuariosClient_Intf.dcu new file mode 100644 index 0000000..cd244fd Binary files /dev/null and b/Source/Servidor/schUsuariosClient_Intf.dcu differ diff --git a/Source/Servidor/schUsuariosServer_Intf.dcu b/Source/Servidor/schUsuariosServer_Intf.dcu new file mode 100644 index 0000000..4b8bc2f Binary files /dev/null and b/Source/Servidor/schUsuariosServer_Intf.dcu differ diff --git a/Source/Servidor/srvAlbaranesCliente_Impl.dcu b/Source/Servidor/srvAlbaranesCliente_Impl.dcu new file mode 100644 index 0000000..9e54a3a Binary files /dev/null and b/Source/Servidor/srvAlbaranesCliente_Impl.dcu differ diff --git a/Source/Servidor/srvAlbaranesProveedor_Impl.dcu b/Source/Servidor/srvAlbaranesProveedor_Impl.dcu new file mode 100644 index 0000000..a20aaa8 Binary files /dev/null and b/Source/Servidor/srvAlbaranesProveedor_Impl.dcu differ diff --git a/Source/Servidor/srvAlmacenes_Impl.dcu b/Source/Servidor/srvAlmacenes_Impl.dcu new file mode 100644 index 0000000..932187c Binary files /dev/null and b/Source/Servidor/srvAlmacenes_Impl.dcu differ diff --git a/Source/Servidor/srvArticulos_Impl.dcu b/Source/Servidor/srvArticulos_Impl.dcu new file mode 100644 index 0000000..e9c76f2 Binary files /dev/null and b/Source/Servidor/srvArticulos_Impl.dcu differ diff --git a/Source/Servidor/srvConfiguracion_Impl.dcu b/Source/Servidor/srvConfiguracion_Impl.dcu new file mode 100644 index 0000000..daa8f27 Binary files /dev/null and b/Source/Servidor/srvConfiguracion_Impl.dcu differ diff --git a/Source/Servidor/srvContactos_Impl.dcu b/Source/Servidor/srvContactos_Impl.dcu new file mode 100644 index 0000000..7f3db37 Binary files /dev/null and b/Source/Servidor/srvContactos_Impl.dcu differ diff --git a/Source/Servidor/srvEmpresas_Impl.dcu b/Source/Servidor/srvEmpresas_Impl.dcu new file mode 100644 index 0000000..f8f5193 Binary files /dev/null and b/Source/Servidor/srvEmpresas_Impl.dcu differ diff --git a/Source/Servidor/srvEmpresas_Impl.dfm b/Source/Servidor/srvEmpresas_Impl.dfm new file mode 100644 index 0000000..ccd0c53 --- /dev/null +++ b/Source/Servidor/srvEmpresas_Impl.dfm @@ -0,0 +1,7 @@ +inherited srvEmpresas: TsrvEmpresas + OldCreateOrder = True + Left = 200 + Top = 200 + Height = 300 + Width = 300 +end diff --git a/Source/Servidor/srvEmpresas_Impl.pas b/Source/Servidor/srvEmpresas_Impl.pas new file mode 100644 index 0000000..14b5ca7 --- /dev/null +++ b/Source/Servidor/srvEmpresas_Impl.pas @@ -0,0 +1,47 @@ +unit srvEmpresas_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +{$I Remobjects.inc} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROXMLIntf, uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Required:} uRORemoteDataModule, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} FactuGES_Intf; + +type + { TsrvEmpresas } + TsrvEmpresas = class(TDataAbstractService, IsrvEmpresas) + private + protected + { IsrvEmpresas methods } + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk; + +procedure Create_srvEmpresas(out anInstance : IUnknown); +begin + anInstance := TsrvEmpresas.Create(nil); +end; + +{ srvEmpresas } +initialization + TROClassFactory.Create('srvEmpresas', Create_srvEmpresas, TsrvEmpresas_Invoker); + +finalization + +end. diff --git a/Source/Servidor/srvFabricantes_Impl.dcu b/Source/Servidor/srvFabricantes_Impl.dcu new file mode 100644 index 0000000..6ef58e8 Binary files /dev/null and b/Source/Servidor/srvFabricantes_Impl.dcu differ diff --git a/Source/Servidor/srvFacturasCliente_Impl.dcu b/Source/Servidor/srvFacturasCliente_Impl.dcu new file mode 100644 index 0000000..dca4e12 Binary files /dev/null and b/Source/Servidor/srvFacturasCliente_Impl.dcu differ diff --git a/Source/Servidor/srvFacturasProveedor_Impl.dcu b/Source/Servidor/srvFacturasProveedor_Impl.dcu new file mode 100644 index 0000000..d339c5d Binary files /dev/null and b/Source/Servidor/srvFacturasProveedor_Impl.dcu differ diff --git a/Source/Servidor/srvFamilias_Impl.dcu b/Source/Servidor/srvFamilias_Impl.dcu new file mode 100644 index 0000000..9fbd9a4 Binary files /dev/null and b/Source/Servidor/srvFamilias_Impl.dcu differ diff --git a/Source/Servidor/srvFormasPago_Impl.dcu b/Source/Servidor/srvFormasPago_Impl.dcu new file mode 100644 index 0000000..01b5d4f Binary files /dev/null and b/Source/Servidor/srvFormasPago_Impl.dcu differ diff --git a/Source/Servidor/srvGestorDocumentos_Impl.dcu b/Source/Servidor/srvGestorDocumentos_Impl.dcu new file mode 100644 index 0000000..9b05ea1 Binary files /dev/null and b/Source/Servidor/srvGestorDocumentos_Impl.dcu differ diff --git a/Source/Servidor/srvGestorInformes_Impl.dcu b/Source/Servidor/srvGestorInformes_Impl.dcu new file mode 100644 index 0000000..962819e Binary files /dev/null and b/Source/Servidor/srvGestorInformes_Impl.dcu differ diff --git a/Source/Servidor/srvHistoricoMovimientos_Impl.dcu b/Source/Servidor/srvHistoricoMovimientos_Impl.dcu new file mode 100644 index 0000000..c114057 Binary files /dev/null and b/Source/Servidor/srvHistoricoMovimientos_Impl.dcu differ diff --git a/Source/Servidor/srvInventario_Impl.dcu b/Source/Servidor/srvInventario_Impl.dcu new file mode 100644 index 0000000..2630546 Binary files /dev/null and b/Source/Servidor/srvInventario_Impl.dcu differ diff --git a/Source/Servidor/srvLogin_Impl.dcu b/Source/Servidor/srvLogin_Impl.dcu new file mode 100644 index 0000000..3f7d84b Binary files /dev/null and b/Source/Servidor/srvLogin_Impl.dcu differ diff --git a/Source/Servidor/srvLogin_Impl.dfm b/Source/Servidor/srvLogin_Impl.dfm new file mode 100644 index 0000000..dfe6364 --- /dev/null +++ b/Source/Servidor/srvLogin_Impl.dfm @@ -0,0 +1,149 @@ +object srvLogin: TsrvLogin + OldCreateOrder = True + OnCreate = DataAbstractServiceCreate + ConnectionName = 'IBX' + ServiceSchema = schLogin + ServiceDataStreamer = Bin2DataStreamer + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + Height = 300 + Width = 300 + object schLogin: TDASchema + ConnectionManager = dmServer.ConnectionManager + Datasets = < + item + Params = < + item + Name = 'ID_USUARIO' + DataType = datInteger + Value = '1' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'EMPRESAS_USUARIOS' + SQL = + 'SELECT '#10' ID_EMPRESA'#10' FROM'#10' EMPRESAS_USUARIOS'#10' WHERE ID_U' + + 'SUARIO = :ID_USUARIO' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end> + end> + Name = 'EmpresasUsuario' + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + InPrimaryKey = True + end> + end + item + Params = < + item + Name = 'ID_USUARIO' + DataType = datInteger + Value = '1' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'SELECT '#10' PERFILES.PERFIL'#10' FROM'#10' PERFILES, PERFILES_USUARI' + + 'OS'#10' WHERE PERFILES_USUARIOS.ID_USUARIO = :ID_USUARIO'#10' AND PERF' + + 'ILES.ID = PERFILES_USUARIOS.ID_PERFIL' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'PERFIL' + TableField = 'PERFIL' + end> + end> + Name = 'PerfilesUsuario' + Fields = < + item + Name = 'PERFIL' + DataType = datString + Size = 15 + end> + end + item + Params = < + item + Name = 'USUARIO' + DataType = datString + Value = '' + ParamType = daptInput + end + item + Name = 'PASS' + DataType = datString + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'USUARIOS' + SQL = + 'SELECT'#10' ID'#10' FROM'#10' USUARIOS'#10' WHERE USUARIO = :USUARIO AND' + + #10' PASS = :PASS AND'#10' ACTIVO = 1' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end> + end> + Name = 'UsuarioPermitido' + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'PASSWORD' + DataType = datString + Value = '' + ParamType = daptInput + end + item + Name = 'USERID' + DataType = datString + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'USUARIOS' + SQL = + 'UPDATE'#10' USUARIOS'#10' SET'#10' PASS = :PASSWORD'#10' WHERE'#10' ID = ' + + ':USERID' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'SetUserPassword' + end> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 40 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 40 + Top = 88 + end +end diff --git a/Source/Servidor/srvLogin_Impl.pas b/Source/Servidor/srvLogin_Impl.pas new file mode 100644 index 0000000..a73d90f --- /dev/null +++ b/Source/Servidor/srvLogin_Impl.pas @@ -0,0 +1,146 @@ +unit srvLogin_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROXMLIntf, uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Required:} uRORemoteDataModule, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} FactuGES_Intf, uDAClasses, uDAInterfaces, uDAEngine, + uDADataTable, uDABINAdapter, uROClient, uDADataStreamer, uDABin2DataStreamer; + +const + PERFIL_ADMINISTRADORES = 'Administradores'; + +type + { TsrvLogin } + TsrvLogin = class(TDataAbstractService, IsrvLogin) + Bin2DataStreamer: TDABin2DataStreamer; + schLogin: TDASchema; + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; + var aConnectionName: string); + procedure DataAbstractServiceCreate(Sender: TObject); + private + protected + function Login(const User: String; const Password: String; out LoginInfo: TRdxLoginInfo): Boolean; + procedure Logout; + function Ping: Boolean; + end; + +implementation + +{$R *.dfm} + +uses + {Generated:} FactuGES_Invk, uDataModuleServer, + Dialogs, IB, Variants, uSesionesUtils; + +procedure Create_srvLogin(out anInstance : IUnknown); +begin + anInstance := TsrvLogin.Create(NIL); +end; + +{ srvLogin } +{ TsrvLogin } + +procedure TsrvLogin.DataAbstractServiceBeforeAcquireConnection(aSender: TObject; + var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +procedure TsrvLogin.DataAbstractServiceCreate(Sender: TObject); +begin + SessionManager := dmServer.SessionManager; +end; + +function TsrvLogin.Login(const User, Password: String; out LoginInfo: TRdxLoginInfo): Boolean; +var + dsUser, + dsPerfiles, + dsEmpresas : IDADataset; + InternalLoginInfo : TRdxLoginInfo; +begin + LoginInfo := NIL; + Result := False; + + dsUser := schLogin.NewDataset(Connection, 'UsuarioPermitido', ['Usuario', 'Pass'], [User, Password]); + + if (dsUser.RecordCount = 1) then + begin + try + LoginInfo := TRdxLoginInfo.Create(); + with LoginInfo do + begin + UserID := dsUser.FieldValues[0]; + Usuario := User; + SessionID := GUIDToString(Session.SessionID); + Perfiles := StringArray.Create(); + Empresas := TRdxEmpresasArray.Create; + end; + + // Asigna los perfiles del usuario + LoginInfo.Perfiles.Clear; + dsPerfiles := schLogin.NewDataset(Connection, 'PerfilesUsuario', ['ID_USUARIO'], [LoginInfo.UserID]); + while not dsPerfiles.EOF do + begin + LoginInfo.Perfiles.Add(VarToStr(dsPerfiles.FieldValues[0])); + dsPerfiles.Next; + end; + + // Asigna las empresas del usuario + LoginInfo.Empresas.Clear; + dsEmpresas := schLogin.NewDataset(Connection, 'EmpresasUsuario', ['ID_USUARIO'], [LoginInfo.UserID]); + while not dsEmpresas.EOF do + begin + LoginInfo.Empresas.Add(dsEmpresas.FieldValues[0]); + dsEmpresas.Next; + end; + + // Guardamos una copia de LoginInfo en el servidor para usarlo + // en otros servicios + InternalLoginInfo := TRdxLoginInfo.Create; + InternalLoginInfo.Assign(LoginInfo); + SesionesHelper.SaveSessionObject(Session, SESION_LOGININFO, InternalLoginInfo); + + Result := True; + except + on e : exception do + begin + FreeAndNIL(LoginInfo); + ShowMessage(e.Message); + raise + end; + end; + end + else begin +// Invalid login. The temporary session is not to be kept. + DestroySession; + end; +end; + +procedure TsrvLogin.Logout; +begin + DestroySession; +end; + +function TsrvLogin.Ping: Boolean; +begin + Result := True; +end; + +initialization + TROClassFactory.Create('srvLogin', Create_srvLogin, TsrvLogin_Invoker); + +finalization + +end. diff --git a/Source/Servidor/srvObras_Impl.dcu b/Source/Servidor/srvObras_Impl.dcu new file mode 100644 index 0000000..a7bd58c Binary files /dev/null and b/Source/Servidor/srvObras_Impl.dcu differ diff --git a/Source/Servidor/srvPedidosProveedor_Impl.dcu b/Source/Servidor/srvPedidosProveedor_Impl.dcu new file mode 100644 index 0000000..1064622 Binary files /dev/null and b/Source/Servidor/srvPedidosProveedor_Impl.dcu differ diff --git a/Source/Servidor/srvPresupuestosCliente_Impl.dcu b/Source/Servidor/srvPresupuestosCliente_Impl.dcu new file mode 100644 index 0000000..077deee Binary files /dev/null and b/Source/Servidor/srvPresupuestosCliente_Impl.dcu differ diff --git a/Source/Servidor/srvProvinciasPoblaciones_Impl.dcu b/Source/Servidor/srvProvinciasPoblaciones_Impl.dcu new file mode 100644 index 0000000..edb1d69 Binary files /dev/null and b/Source/Servidor/srvProvinciasPoblaciones_Impl.dcu differ diff --git a/Source/Servidor/srvRecibosCliente_Impl.dcu b/Source/Servidor/srvRecibosCliente_Impl.dcu new file mode 100644 index 0000000..ea87903 Binary files /dev/null and b/Source/Servidor/srvRecibosCliente_Impl.dcu differ diff --git a/Source/Servidor/srvRecibosProveedor_Impl.dcu b/Source/Servidor/srvRecibosProveedor_Impl.dcu new file mode 100644 index 0000000..e84c68b Binary files /dev/null and b/Source/Servidor/srvRecibosProveedor_Impl.dcu differ diff --git a/Source/Servidor/srvReferencias_Impl.dcu b/Source/Servidor/srvReferencias_Impl.dcu new file mode 100644 index 0000000..1252d04 Binary files /dev/null and b/Source/Servidor/srvReferencias_Impl.dcu differ diff --git a/Source/Servidor/srvRemesasCliente_Impl.dcu b/Source/Servidor/srvRemesasCliente_Impl.dcu new file mode 100644 index 0000000..525c9da Binary files /dev/null and b/Source/Servidor/srvRemesasCliente_Impl.dcu differ diff --git a/Source/Servidor/srvRemesasProveedor_Impl.dcu b/Source/Servidor/srvRemesasProveedor_Impl.dcu new file mode 100644 index 0000000..ad6258c Binary files /dev/null and b/Source/Servidor/srvRemesasProveedor_Impl.dcu differ diff --git a/Source/Servidor/srvTiposIVA_Impl.dcu b/Source/Servidor/srvTiposIVA_Impl.dcu new file mode 100644 index 0000000..a28b474 Binary files /dev/null and b/Source/Servidor/srvTiposIVA_Impl.dcu differ diff --git a/Source/Servidor/srvUnidadesMedida_Impl.dcu b/Source/Servidor/srvUnidadesMedida_Impl.dcu new file mode 100644 index 0000000..8ec3f8a Binary files /dev/null and b/Source/Servidor/srvUnidadesMedida_Impl.dcu differ diff --git a/Source/Servidor/srvUsuarios_Impl.dcu b/Source/Servidor/srvUsuarios_Impl.dcu new file mode 100644 index 0000000..bf9b98c Binary files /dev/null and b/Source/Servidor/srvUsuarios_Impl.dcu differ diff --git a/Source/Servidor/uAcercaDe.dcu b/Source/Servidor/uAcercaDe.dcu new file mode 100644 index 0000000..552cbed Binary files /dev/null and b/Source/Servidor/uAcercaDe.dcu differ diff --git a/Source/Servidor/uAcercaDe.dfm b/Source/Servidor/uAcercaDe.dfm new file mode 100644 index 0000000..1a4bff3 --- /dev/null +++ b/Source/Servidor/uAcercaDe.dfm @@ -0,0 +1,67 @@ +object fAcercaDe: TfAcercaDe + Left = 531 + Top = 365 + ActiveControl = bAceptar + BorderStyle = bsDialog + Caption = 'Acerca de...' + ClientHeight = 401 + ClientWidth = 427 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object JvGradient1: TJvGradient + Left = 0 + Top = 88 + Width = 427 + Height = 4 + Align = alTop + StartColor = 2971346 + EndColor = 4828405 + end + object Bevel1: TBevel + Left = 128 + Top = 359 + Width = 290 + Height = 9 + Shape = bsTopLine + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 427 + Height = 88 + Align = alTop + BevelOuter = bvNone + TabOrder = 0 + end + object bAceptar: TButton + Left = 344 + Top = 367 + Width = 75 + Height = 25 + Cancel = True + Caption = '&Aceptar' + Default = True + ModalResult = 1 + TabOrder = 1 + end + object memModulos: TMemo + Left = 128 + Top = 112 + Width = 289 + Height = 233 + BevelInner = bvNone + BevelOuter = bvNone + BorderStyle = bsNone + ParentColor = True + TabOrder = 2 + end +end diff --git a/Source/Servidor/uAcercaDe.pas b/Source/Servidor/uAcercaDe.pas new file mode 100644 index 0000000..e10a87f --- /dev/null +++ b/Source/Servidor/uAcercaDe.pas @@ -0,0 +1,46 @@ +unit uAcercaDe; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, JvGIF, ExtCtrls, JvExControls, JvComponent, JvGradient, StdCtrls; + +type + TfAcercaDe = class(TForm) + JvGradient1: TJvGradient; + Panel1: TPanel; + Bevel1: TBevel; + bAceptar: TButton; + memModulos: TMemo; + procedure FormShow(Sender: TObject); + end; + +implementation + +{$R *.dfm} + +uses JclFileUtils; + +procedure TfAcercaDe.FormShow(Sender: TObject); +var + Obj : TJclFileVersionInfo; +begin + memModulos.Lines.Clear; + + Obj := TJclFileVersionInfo.Create(Application.ExeName); + try + with Obj do + begin + memModulos.Lines.Add(ProductName + ' - Versin ' + FileVersion); + memModulos.Lines.Add(CompanyName); + memModulos.Lines.Add(''); + memModulos.Lines.Add('Se autoriza el uso de este programa a:'); + memModulos.Lines.Add('TECSITEL S.L.'); + end; + finally + FreeAndNil(Obj); + end; +end; + +end. diff --git a/Source/Servidor/uBizAlbaranClienteServer.dcu b/Source/Servidor/uBizAlbaranClienteServer.dcu new file mode 100644 index 0000000..f76313e Binary files /dev/null and b/Source/Servidor/uBizAlbaranClienteServer.dcu differ diff --git a/Source/Servidor/uBizAlbaranProveedorServer.dcu b/Source/Servidor/uBizAlbaranProveedorServer.dcu new file mode 100644 index 0000000..97f7c15 Binary files /dev/null and b/Source/Servidor/uBizAlbaranProveedorServer.dcu differ diff --git a/Source/Servidor/uBizArticulosServer.dcu b/Source/Servidor/uBizArticulosServer.dcu new file mode 100644 index 0000000..ca8e433 Binary files /dev/null and b/Source/Servidor/uBizArticulosServer.dcu differ diff --git a/Source/Servidor/uBizClientesServer.dcu b/Source/Servidor/uBizClientesServer.dcu new file mode 100644 index 0000000..0c8eba5 Binary files /dev/null and b/Source/Servidor/uBizClientesServer.dcu differ diff --git a/Source/Servidor/uBizContactosServer.dcu b/Source/Servidor/uBizContactosServer.dcu new file mode 100644 index 0000000..fcca057 Binary files /dev/null and b/Source/Servidor/uBizContactosServer.dcu differ diff --git a/Source/Servidor/uBizEmpleadosServer.dcu b/Source/Servidor/uBizEmpleadosServer.dcu new file mode 100644 index 0000000..5370a67 Binary files /dev/null and b/Source/Servidor/uBizEmpleadosServer.dcu differ diff --git a/Source/Servidor/uBizEmpresasServer.dcu b/Source/Servidor/uBizEmpresasServer.dcu new file mode 100644 index 0000000..3e82275 Binary files /dev/null and b/Source/Servidor/uBizEmpresasServer.dcu differ diff --git a/Source/Servidor/uBizFacturasClienteServer.dcu b/Source/Servidor/uBizFacturasClienteServer.dcu new file mode 100644 index 0000000..e2d70d2 Binary files /dev/null and b/Source/Servidor/uBizFacturasClienteServer.dcu differ diff --git a/Source/Servidor/uBizFacturasProveedorServer.dcu b/Source/Servidor/uBizFacturasProveedorServer.dcu new file mode 100644 index 0000000..6fabfc3 Binary files /dev/null and b/Source/Servidor/uBizFacturasProveedorServer.dcu differ diff --git a/Source/Servidor/uBizObrasServer.dcu b/Source/Servidor/uBizObrasServer.dcu new file mode 100644 index 0000000..29df83c Binary files /dev/null and b/Source/Servidor/uBizObrasServer.dcu differ diff --git a/Source/Servidor/uBizPedidosProveedorServer.dcu b/Source/Servidor/uBizPedidosProveedorServer.dcu new file mode 100644 index 0000000..370719e Binary files /dev/null and b/Source/Servidor/uBizPedidosProveedorServer.dcu differ diff --git a/Source/Servidor/uBizPresupuestosClienteServer.dcu b/Source/Servidor/uBizPresupuestosClienteServer.dcu new file mode 100644 index 0000000..36dd09e Binary files /dev/null and b/Source/Servidor/uBizPresupuestosClienteServer.dcu differ diff --git a/Source/Servidor/uBizProveedoresServer.dcu b/Source/Servidor/uBizProveedoresServer.dcu new file mode 100644 index 0000000..721c761 Binary files /dev/null and b/Source/Servidor/uBizProveedoresServer.dcu differ diff --git a/Source/Servidor/uBizRemesasClienteServer.dcu b/Source/Servidor/uBizRemesasClienteServer.dcu new file mode 100644 index 0000000..6a5879a Binary files /dev/null and b/Source/Servidor/uBizRemesasClienteServer.dcu differ diff --git a/Source/Servidor/uBizRemesasProveedorServer.dcu b/Source/Servidor/uBizRemesasProveedorServer.dcu new file mode 100644 index 0000000..28eafc8 Binary files /dev/null and b/Source/Servidor/uBizRemesasProveedorServer.dcu differ diff --git a/Source/Servidor/uBusinessUtils.dcu b/Source/Servidor/uBusinessUtils.dcu new file mode 100644 index 0000000..e03c33c Binary files /dev/null and b/Source/Servidor/uBusinessUtils.dcu differ diff --git a/Source/Servidor/uConexionBD.dcu b/Source/Servidor/uConexionBD.dcu new file mode 100644 index 0000000..6a6d7ef Binary files /dev/null and b/Source/Servidor/uConexionBD.dcu differ diff --git a/Source/Servidor/uConfGeneral.dcu b/Source/Servidor/uConfGeneral.dcu new file mode 100644 index 0000000..cacf190 Binary files /dev/null and b/Source/Servidor/uConfGeneral.dcu differ diff --git a/Source/Servidor/uConfiguracion.dcu b/Source/Servidor/uConfiguracion.dcu new file mode 100644 index 0000000..d2ca8e6 Binary files /dev/null and b/Source/Servidor/uConfiguracion.dcu differ diff --git a/Source/Servidor/uDataModuleServer.dcu b/Source/Servidor/uDataModuleServer.dcu new file mode 100644 index 0000000..cb217fe Binary files /dev/null and b/Source/Servidor/uDataModuleServer.dcu differ diff --git a/Source/Servidor/uDataModuleServer.dfm b/Source/Servidor/uDataModuleServer.dfm new file mode 100644 index 0000000..172d123 --- /dev/null +++ b/Source/Servidor/uDataModuleServer.dfm @@ -0,0 +1,79 @@ +object dmServer: TdmServer + OldCreateOrder = False + OnCreate = DataModuleCreate + OnDestroy = DataModuleDestroy + Height = 285 + Width = 292 + object HTTPServer: TROIndyHTTPServer + Dispatchers = < + item + Name = 'BINMessage' + Message = BINMessage + Enabled = True + PathInfo = 'Bin' + end> + OnBeforeServerActivate = HTTPServerBeforeServerActivate + IndyServer.Bindings = <> + IndyServer.DefaultPort = 8099 + Port = 8099 + Left = 40 + Top = 16 + end + object BINMessage: TROBinMessage + Envelopes = <> + Left = 136 + Top = 16 + end + object DriverManager: TDADriverManager + DriverDirectory = '%SYSTEM%\' + AutoLoad = True + TraceActive = True + TraceFlags = [toExecute, toError, toStmt, toConnect, toTransact, toMisc] + OnTraceEvent = DriverManagerTraceEvent + Left = 136 + Top = 80 + end + object ConnectionManager: TDAConnectionManager + OnConnectionAcquired = ConnectionManagerConnectionAcquired + Connections = < + item + Name = 'IBX' + ConnectionString = + 'IBX?Server=localhost;Database=C:\Codigo\Output\Debug\Database\FA' + + 'CTUGES.FDB;UserID=sysdba;Password=masterkey;Dialect=3;Charset=IS' + + 'O8859_1;' + ConnectionType = 'Interbase' + Default = True + end> + DriverManager = DriverManager + PoolingEnabled = True + PoolTransactionBehaviour = ptRollback + Left = 40 + Top = 80 + end + object JvAppRegistryStorage: TJvAppRegistryStorage + StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' + StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' + RegRoot = hkLocalMachine + Root = 'Software\%APPL_NAME%' + SubStorages = <> + Left = 136 + Top = 208 + end + object SessionManager: TROInMemorySessionManager + OnSessionDeleted = SessionManagerSessionDeleted + SessionDuration = -1 + Left = 216 + Top = 16 + end + object JvLogFile1: TJvLogFile + FileName = 'ServerLog.txt' + Active = False + Left = 136 + Top = 144 + end + object DAIBXDriver: TDAIBXDriver + Left = 224 + Top = 80 + end +end diff --git a/Source/Servidor/uDataModuleServer.dfm.bak b/Source/Servidor/uDataModuleServer.dfm.bak new file mode 100644 index 0000000..ca1b8af --- /dev/null +++ b/Source/Servidor/uDataModuleServer.dfm.bak @@ -0,0 +1,79 @@ +object dmServer: TdmServer + OldCreateOrder = False + OnCreate = DataModuleCreate + OnDestroy = DataModuleDestroy + Height = 285 + Width = 292 + object HTTPServer: TROIndyHTTPServer + Dispatchers = < + item + Name = 'BINMessage' + Message = BINMessage + Enabled = True + PathInfo = 'Bin' + end> + OnBeforeServerActivate = HTTPServerBeforeServerActivate + IndyServer.Bindings = <> + IndyServer.DefaultPort = 8099 + Port = 8099 + Left = 40 + Top = 16 + end + object BINMessage: TROBinMessage + Envelopes = <> + Left = 136 + Top = 16 + end + object DriverManager: TDADriverManager + DriverDirectory = '%SYSTEM%\' + AutoLoad = True + TraceActive = True + TraceFlags = [toExecute, toError, toStmt, toConnect, toTransact, toMisc] + OnTraceEvent = DriverManagerTraceEvent + Left = 136 + Top = 80 + end + object ConnectionManager: TDAConnectionManager + OnConnectionAcquired = ConnectionManagerConnectionAcquired + Connections = < + item + Name = 'IBX' + ConnectionString = + 'IBX?Server=localhost;Database=C:\Codigo Tecsitel\Output\Debug\Da' + + 'tabase\FACTUGES.FDB;UserID=sysdba;Password=masterkey;Dialect=3;C' + + 'harset=ISO8859_1;' + ConnectionType = 'Interbase' + Default = True + end> + DriverManager = DriverManager + PoolingEnabled = True + PoolTransactionBehaviour = ptRollback + Left = 40 + Top = 80 + end + object JvAppRegistryStorage: TJvAppRegistryStorage + StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' + StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' + RegRoot = hkLocalMachine + Root = 'Software\%APPL_NAME%' + SubStorages = <> + Left = 136 + Top = 208 + end + object SessionManager: TROInMemorySessionManager + OnSessionDeleted = SessionManagerSessionDeleted + SessionDuration = -1 + Left = 216 + Top = 16 + end + object JvLogFile1: TJvLogFile + FileName = 'ServerLog.txt' + Active = False + Left = 136 + Top = 144 + end + object DAIBXDriver: TDAIBXDriver + Left = 224 + Top = 80 + end +end diff --git a/Source/Servidor/uDataModuleServer.pas b/Source/Servidor/uDataModuleServer.pas new file mode 100644 index 0000000..21de8c6 --- /dev/null +++ b/Source/Servidor/uDataModuleServer.pas @@ -0,0 +1,309 @@ +unit uDataModuleServer; + +interface + +uses + SysUtils, Classes, SyncObjs, uDAEngine, uDAIBXDriver, JvLogFile, uROSessions, + JvComponentBase, JvAppStorage, JvAppRegistryStorage, uDAClasses, + uDADriverManager, uROClient, uROBinMessage, uROServer, uROIndyTCPServer, + uROIndyHTTPServer, uDAInterfaces; + +const + SERVER_PORT = '8099'; // Puerto por defecto + DBSERVER_PORT = '3050'; // Puerto de la BD por defecto + + SESION_LOGININFO = 'LoginInfo'; + +type + TdmServer = class(TDataModule) + HTTPServer: TROIndyHTTPServer; + BINMessage: TROBinMessage; + DriverManager: TDADriverManager; + JvAppRegistryStorage: TJvAppRegistryStorage; + SessionManager: TROInMemorySessionManager; + JvLogFile1: TJvLogFile; + DAIBXDriver: TDAIBXDriver; + ConnectionManager: TDAConnectionManager; + procedure DataModuleCreate(Sender: TObject); + procedure DataModuleDestroy(Sender: TObject); + procedure HTTPServerBeforeServerActivate(Sender: TObject); + procedure DriverManagerTraceEvent(Sender: TObject; const Text: string; + Tag: Integer); + procedure SessionManagerSessionDeleted(const aSessionID: TGUID; + IsExpired: Boolean); + procedure ConnectionManagerConnectionAcquired(Sender: TDAConnectionManager; + const Connection: IDAConnection); + private + FEscribirLog : TCriticalSection; + FConnectionName : string; + function GetConnectionString: string; + procedure IniciarLog; + procedure DetenerLog; + public + FDBServer : string; + FDBPort : string; + FDBPath : string; + FDBUser : string; + FDBPass : string; + + FOSCServer : string; + + FInicioWindows : Boolean; + FServerPort : string; + procedure LeerConfiguracion; + procedure SalvarConfiguracion; + procedure RefrescarConexion; + procedure EscribirLog(const AMensaje : String); + function DarNuevaConexion : IDaConnection; + property ConnectionName : string read FConnectionName write FConnectionName; + end; + + +function DarRutaInformes : String; +function Encrypt (const Source : string) : String; +function Decrypt (const Source : string) : String; +function GetNextAutoinc(AConnection : IDAConnection; const GeneratorName: string): integer; + +var + dmServer: TdmServer; + +implementation + +{$R *.dfm} + +uses + uROComboService, uROEncryption, DateUtils, JclFileUtils, ActiveX, Forms, Registry, Windows, Dialogs, + ExtCtrls, uSesionesUtils, uServerAppUtils; + +function DarRutaInformes : String; +begin + Result := ExtractFilePath(Application.ExeName) + 'Informes' + PathDelim; +end; + +function GetNextAutoinc(AConnection : IDAConnection; const GeneratorName: string): integer; +var + ds: IDADataset; +begin + ds := AConnection.NewDataset(Format('SELECT Gen_id(%s,1) FROM RDB$Database', [GeneratorName])); + ds.Open; + result := ds.Fields[0].Value; + ds.Close; +end; + +procedure WriteAutoRun(Name, Value : String); +var + reg: TRegistry; +begin + reg := TRegistry.Create; + try + reg.RootKey := HKEY_LOCAL_MACHINE; + reg.LazyWrite := False; + reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', False); + reg.WriteString(Name, Value); + reg.CloseKey; + finally + reg.free; + end; +end; + +procedure DeleteAutoRun(Name : String); +var + reg: TRegistry; +begin + reg := TRegistry.Create; + try + reg.RootKey := HKEY_LOCAL_MACHINE; + reg.LazyWrite := False; + reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', False); + if reg.ValueExists(Name) then + reg.DeleteValue(Name); + reg.CloseKey; + finally + reg.free; + end; +end; + + +function Encrypt (const Source : string) : String; +var + i:integer; +begin + Randseed := 28; + Result := ''; + for i:=1 to length(Source) do + Result := Result + chr(ord(Source[i]) + Random(10) + 1); +end; + +function Decrypt (const Source : string) : String; +var + i : integer; +begin + Randseed:= 28; + Result := ''; + for i := 1 to length(Source) do + Result := Result + chr(ord(Source[i]) - Random(10) - 1); +end; + +procedure TdmServer.ConnectionManagerConnectionAcquired( + Sender: TDAConnectionManager; const Connection: IDAConnection); +begin + { Si se adquiere una conexin del spool de conexiones puede que + sea una conexin ya abierta. Aqu nos aseguramos de que est + cerrada y lista para usar. } + if Connection.InTransaction then + Connection.RollbackTransaction; +end; + +function TdmServer.DarNuevaConexion: IDAConnection; +begin + with ConnectionManager do + Result := NewConnection(GetDefaultConnectionName, False); + if not Result.isAlive then + Result.Open; +end; + +procedure TdmServer.IniciarLog; +begin + FEscribirLog := TCriticalSection.Create; + + JvLogFile1.Active := False; + JvLogFile1.FileName := ExtractFilePath(Application.ExeName) + 'ServerLog.txt'; + JvLogFile1.AutoSave := True; + JvLogFile1.Active := True; + JvLogFile1.Clear; +end; + +procedure TdmServer.DataModuleCreate(Sender: TObject); +begin + LeerConfiguracion; + RefrescarConexion; + IniciarLog; +end; + +function TdmServer.GetConnectionString: string; +begin + Result := 'IBX?Server=' + FDBServer + '/' + FDBPort + + ';Database=' + FDBPath + + ';UserID=' + FDBUser + + ';Password=' + Decrypt(FDBPass) + + ';Dialect=3;Charset=ISO8859_1;'; + +{ Result := 'FIB?Server=' + FDBServer + '/' + FDBPort + + ';Database=' + FDBPath + + ';UserID=' + FDBUser + + ';Password=' + Decrypt(FDBPass) + + ';Dialect=3;Charset=ISO8859_1;';} +end; + +procedure TdmServer.LeerConfiguracion; +begin + with JvAppRegistryStorage do + begin + FDBServer := ReadString('ServerDB', 'localhost'); + FDBPort := ReadString('PortDB', DBSERVER_PORT); + FDBPath := ReadString('PathDB'); + FDBUser := ReadString('UserDB', ''); + FDBPass := ReadString('PassDB', ''); + + FOSCServer := ReadString('ServerOSC'); + + FServerPort := ReadString('ServerPort', SERVER_PORT); + FInicioWindows := ReadBoolean('InicioWindows', False); + end; +end; + +procedure TdmServer.SalvarConfiguracion; +begin + with JvAppRegistryStorage do + begin + BeginUpdate; + try + WriteString('ServerDB', FDBServer); + WriteString('PortDB', FDBPort); + WriteString('PathDB', FDBPath); + WriteString('UserDB', FDBUser); + WriteString('PassDB', FDBPass); + WriteString('ServerPort', FServerPort); + + WriteString('ServerOSC', FOSCServer); + + WriteBoolean('InicioWindows', FInicioWindows); + if FInicioWindows then + WriteAutoRun('AdminPV_Server', Application.ExeName) + else + DeleteAutoRun('AdminPV_Server'); + finally + EndUpdate + end; + end; +end; + +procedure TdmServer.SessionManagerSessionDeleted(const aSessionID: TGUID; + IsExpired: Boolean); +var + aSession : TROSession; +begin + aSession := SessionManager.FindSession(aSessionID); + if Assigned(aSession) then + SesionesHelper.DeleteSessionObject(aSession, SESION_LOGININFO); +end; + +procedure TdmServer.DataModuleDestroy(Sender: TObject); +begin + SessionManager.ClearSessions(False); + ConnectionManager.ClearPool; + HTTPServer.Active := False; + DetenerLog; +end; + +procedure TdmServer.DetenerLog; +begin + FEscribirLog.Free; +end; + +procedure TdmServer.DriverManagerTraceEvent(Sender: TObject; const Text: string; + Tag: Integer); +begin + EscribirLog(Text + #10#13 + #10#13); +end; + +procedure TdmServer.EscribirLog(const AMensaje: String); +begin + FEscribirLog.Enter; + try + JvLogFile1.Add(AMensaje); + finally + FEscribirLog.Leave; + end; +end; + +procedure TdmServer.RefrescarConexion; +begin + HTTPServer.Active := False; + ConnectionManager.Connections.GetDefaultConnection.ConnectionString := ''; + + ConnectionName := ConnectionManager.GetDefaultConnectionName; + ConnectionManager.Connections.GetDefaultConnection.ConnectionString := GetConnectionString; + + if not ROIsService then + ShowBalloonHint('Conectado a ' + ConnectionName, bfInfo); + + CoInitialize(nil); + HTTPServer.Active := TRUE; +end; + +procedure TdmServer.HTTPServerBeforeServerActivate(Sender: TObject); +begin + HTTPServer.Port := StrToInt(FServerPort); + { + with HTTPServer.Encryption do + begin + EncryptionMethod := tetDES; + EncryptionSendKey := 'C793F1A04FFC8DF91FF9522951F6B6DF921C70B42D74166C6DF0B697797AAA6A243BEC35A9423A51'; + EncryptionRecvKey := '127C1A6A4D85F5EFE0A54E104BF7F695CD6C989C1808A57667EF1218E8ED93FC6CDC531631EB9750'; + UseCompression := True; + end; + } +end; + +end. diff --git a/Source/Servidor/uDatabaseUtils.dcu b/Source/Servidor/uDatabaseUtils.dcu new file mode 100644 index 0000000..36bb821 Binary files /dev/null and b/Source/Servidor/uDatabaseUtils.dcu differ diff --git a/Source/Servidor/uFrameConfiguracion.dcu b/Source/Servidor/uFrameConfiguracion.dcu new file mode 100644 index 0000000..325e210 Binary files /dev/null and b/Source/Servidor/uFrameConfiguracion.dcu differ diff --git a/Source/Servidor/uReferenciasUtils.dcu b/Source/Servidor/uReferenciasUtils.dcu new file mode 100644 index 0000000..26d9164 Binary files /dev/null and b/Source/Servidor/uReferenciasUtils.dcu differ diff --git a/Source/Servidor/uRestriccionesUsuarioUtils.dcu b/Source/Servidor/uRestriccionesUsuarioUtils.dcu new file mode 100644 index 0000000..a5675fe Binary files /dev/null and b/Source/Servidor/uRestriccionesUsuarioUtils.dcu differ diff --git a/Source/Servidor/uRptAlbaranesCliente_Server.dcu b/Source/Servidor/uRptAlbaranesCliente_Server.dcu new file mode 100644 index 0000000..d08a876 Binary files /dev/null and b/Source/Servidor/uRptAlbaranesCliente_Server.dcu differ diff --git a/Source/Servidor/uRptAlbaranesProveedor_Server.dcu b/Source/Servidor/uRptAlbaranesProveedor_Server.dcu new file mode 100644 index 0000000..7bfeb19 Binary files /dev/null and b/Source/Servidor/uRptAlbaranesProveedor_Server.dcu differ diff --git a/Source/Servidor/uRptEtiquetasContacto_Server.dcu b/Source/Servidor/uRptEtiquetasContacto_Server.dcu new file mode 100644 index 0000000..0ccc6f6 Binary files /dev/null and b/Source/Servidor/uRptEtiquetasContacto_Server.dcu differ diff --git a/Source/Servidor/uRptFacturasCliente_Server.dcu b/Source/Servidor/uRptFacturasCliente_Server.dcu new file mode 100644 index 0000000..1263761 Binary files /dev/null and b/Source/Servidor/uRptFacturasCliente_Server.dcu differ diff --git a/Source/Servidor/uRptFacturasProveedor_Server.dcu b/Source/Servidor/uRptFacturasProveedor_Server.dcu new file mode 100644 index 0000000..4d689d4 Binary files /dev/null and b/Source/Servidor/uRptFacturasProveedor_Server.dcu differ diff --git a/Source/Servidor/uRptFichasEmpleado_Server.dcu b/Source/Servidor/uRptFichasEmpleado_Server.dcu new file mode 100644 index 0000000..a30719f Binary files /dev/null and b/Source/Servidor/uRptFichasEmpleado_Server.dcu differ diff --git a/Source/Servidor/uRptPedidosProveedor_Server.dcu b/Source/Servidor/uRptPedidosProveedor_Server.dcu new file mode 100644 index 0000000..0ed3306 Binary files /dev/null and b/Source/Servidor/uRptPedidosProveedor_Server.dcu differ diff --git a/Source/Servidor/uRptPresupuestosCliente_Server.dcu b/Source/Servidor/uRptPresupuestosCliente_Server.dcu new file mode 100644 index 0000000..3e18204 Binary files /dev/null and b/Source/Servidor/uRptPresupuestosCliente_Server.dcu differ diff --git a/Source/Servidor/uRptRecibosCliente_Server.dcu b/Source/Servidor/uRptRecibosCliente_Server.dcu new file mode 100644 index 0000000..82a452c Binary files /dev/null and b/Source/Servidor/uRptRecibosCliente_Server.dcu differ diff --git a/Source/Servidor/uRptRecibosProveedor_Server.dcu b/Source/Servidor/uRptRecibosProveedor_Server.dcu new file mode 100644 index 0000000..44a1a7e Binary files /dev/null and b/Source/Servidor/uRptRecibosProveedor_Server.dcu differ diff --git a/Source/Servidor/uRptWordAlbaranCliente.dcu b/Source/Servidor/uRptWordAlbaranCliente.dcu new file mode 100644 index 0000000..522d281 Binary files /dev/null and b/Source/Servidor/uRptWordAlbaranCliente.dcu differ diff --git a/Source/Servidor/uRptWordAlbaranProveedor.dcu b/Source/Servidor/uRptWordAlbaranProveedor.dcu new file mode 100644 index 0000000..f20985e Binary files /dev/null and b/Source/Servidor/uRptWordAlbaranProveedor.dcu differ diff --git a/Source/Servidor/uRptWordCertificadoTrabajo_Server.dcu b/Source/Servidor/uRptWordCertificadoTrabajo_Server.dcu new file mode 100644 index 0000000..acee862 Binary files /dev/null and b/Source/Servidor/uRptWordCertificadoTrabajo_Server.dcu differ diff --git a/Source/Servidor/uRptWordFacturaCliente.dcu b/Source/Servidor/uRptWordFacturaCliente.dcu new file mode 100644 index 0000000..4f0e71b Binary files /dev/null and b/Source/Servidor/uRptWordFacturaCliente.dcu differ diff --git a/Source/Servidor/uRptWordPedidoProveedor.dcu b/Source/Servidor/uRptWordPedidoProveedor.dcu new file mode 100644 index 0000000..ef6f2a7 Binary files /dev/null and b/Source/Servidor/uRptWordPedidoProveedor.dcu differ diff --git a/Source/Servidor/uRptWordPresupuestoCliente.dcu b/Source/Servidor/uRptWordPresupuestoCliente.dcu new file mode 100644 index 0000000..b999d1a Binary files /dev/null and b/Source/Servidor/uRptWordPresupuestoCliente.dcu differ diff --git a/Source/Servidor/uSchemaUtilsServer.dcu b/Source/Servidor/uSchemaUtilsServer.dcu new file mode 100644 index 0000000..70a26f6 Binary files /dev/null and b/Source/Servidor/uSchemaUtilsServer.dcu differ diff --git a/Source/Servidor/uServerAppUtils.dcu b/Source/Servidor/uServerAppUtils.dcu new file mode 100644 index 0000000..b047f61 Binary files /dev/null and b/Source/Servidor/uServerAppUtils.dcu differ diff --git a/Source/Servidor/uServerMainForm.dcu b/Source/Servidor/uServerMainForm.dcu new file mode 100644 index 0000000..9f05af1 Binary files /dev/null and b/Source/Servidor/uServerMainForm.dcu differ diff --git a/Source/Servidor/uServerMainForm.dfm b/Source/Servidor/uServerMainForm.dfm new file mode 100644 index 0000000..967572d --- /dev/null +++ b/Source/Servidor/uServerMainForm.dfm @@ -0,0 +1,1063 @@ +object fServerForm: TfServerForm + Left = 806 + Top = 611 + BorderStyle = bsDialog + Caption = 'FactuGES Server' + ClientHeight = 159 + ClientWidth = 299 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnCloseQuery = FormCloseQuery + PixelsPerInch = 96 + TextHeight = 13 + object JvGradient1: TJvGradient + Left = 0 + Top = 57 + Width = 299 + Height = 4 + Align = alTop + StartColor = 2971346 + EndColor = 4828405 + ExplicitWidth = 371 + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 299 + Height = 57 + Align = alTop + BevelOuter = bvNone + TabOrder = 0 + object Image1: TImage + Left = 0 + Top = 0 + Width = 299 + Height = 57 + Align = alClient + Center = True + Picture.Data = { + 0B544A76474946496D616765F6750000474946383961C201FA00E60000FFFFFF + F5F5F5A92824ECECECEB743DF48545EF7B40DEDEDECD452DEAEAEAD0492EDC5A + 34FAFAFAF2F2F2BC2A26B02724E5E5E5E26236B95B55E1E1E1F8F8F8D95532FC + FCFCF5D6CAD4D4D4F5C8B5D1B5B0F0F0F0E66A39C23428D65131EEEEEEBCBABA + FEFEFEF7B192F49366CB938CD34D30C7726AC63A2AE96E3BC7564CD26958EEB5 + A5F9E9E3D7C5C2C93F2BE46638F8E1D8D2867AC9C5C4E05E35C03027B82725C7 + 453AE79A89B9322ECBA59EF7A47BFCF4F1FCF0EBB93A36D8D5D4B44741BF2D26 + EEE2E0A22925AB3934A7302CFEF8F5FEF9F8C33B33DB5D3DB52724B12E2AD251 + 3AD9CFCDE47D60FEFCFCBC7D75BD2C26EBE9E9D6D6D7FFFEFDF7F1F0FEFBFAFD + FDFDF3F0EFE8DDDCFBF8F7DFDFDFDED7D6D45A43F4F4F4E0E0E0DADADAC94E41 + F9F9F9DF6648EBEBEBF1EBEAE4E4E4D8D8D8EDEDEDD94E2FD95738C53729EFEF + EFFFFFFEF3F3F3E2E2E2EBECEDE8E8E8F7F7F7EFF0F0CDCCCCF1EEEDE7E7E7F1 + F2F3F1E8E5E76035E86B39D1D1D2F2F3F4EEEDEECF3F2AD2D0D0F1F1F12C0000 + 0000C201FA000007FF800582838485868788898A8322173C5300919293949596 + 9798999A9B9C9D9E9FA0A1A2A393560C717F6763670D710C56A4B1B2B3B4B5B1 + 8323B887B982BC05BEC0BABDBBC2BFBF3A193046B6CCCDCECFD0D1A50C011F70 + 1075636B6D71161621E0D2E2B4E02156E7E8E9EAE5E3968BEFF0F1883A8D3BED + F7F8F9FAA2A601677513DC9481A38D5B180BB0F629BC64C502030A7102489C48 + 31401C0A0713EA3336AC23C78FC10C8504590CD808643C16AA5CC9125AC30003 + CA68D1E265421908633E18D4D8529F290A5DFEAC3933A0A8D1A31FFE707BB54F + 9ED3A78B4624EB49B5AAD54DFD621ED8BAD58B9B6C6B5A85796525C4D567211C + 024D05A70E843270FFE3CA850067C0862EDDCAE283CAB76F2F1130CE0A1EDCF3 + A556AE5D05D649F0A141000A0C2C10B665254C805409EA947133C18BE7CF9E27 + 88BEC9F84F808366DBF95DFD54C785296C26CB9E2DAEDF3F2D880FCCD4127031 + ABC7DF688B4A4BA1CD87CC9BBDEC5ECE9CA6CD3A701ABB4A2D8EB5F577272F14 + 7122BCBB77592FCF40505ED38D4037CA0FD88490C02EDEC87ABF33B410A6CB86 + 319A95E35E0E9A79D7E78C75414170D22462006B072A9260010B1E825211B1C9 + 27E18498D8564768742590001C654C3053796580F51E4F1486704A030370881E + 6E5B3967DE8B9C75C6E287E6E1F44737D55DA7E32E52C1C00377140629E44B1F + 5CE8C5408DB5B1C6FF186FA597581DEE0D489D7CE05810C006097488988B37D5 + E1A59710BCB5998C5B0EB4018ED10CB2608387ACA9669B6F1AC2A6200D9E944C + 1542E639615A71AC0107676E24D0401861C4A1247E7079A8DB04741574DA2B53 + D26662351C7AC11588D02530C651638CA1615B6FADC8951603AD110042D0ECA8 + AA21F4C050849EB07AC7E7067FDA344617AF3864E8922A5ACA9B798B49170689 + B3595964194E6AE14686037CB0C6061BFCF107B46B7C4094A76D71C6E2015E45 + 776AA4B53028EE81E48E6B6EB9E89EAB6EBAECAA5B0032F6C42AAF6CE650F047 + 029C95716B59E09862E87DD7ACB8DBB28CB502293B839913C01A00EDC75B8839 + 6DD0461B5D54D445FF1B0D48BBC150F84140E6568C7E100003E0CE42679CE29E + AC72CA2C13E2A69C28BFFC4B062C4032EFCD67D57B6F876524D0C637E5985868 + 5067B4D5A1AF006E13471C631178D5A4D6B871E9570557BCF4D5584B74710319 + 7F304002A1A6A76C1D67E04AAC2CEBA6DDEEDA6AB7CDEE0880155132CE742B64 + 4E180D8CD161A07F8411B4390D3D74D97110B8B15F4D21367B1744929D654535 + 855BAADB57EE5D440146845E0ED1D25A6F3DED0763043CE3047588EC342D32A7 + 1EF3EA2BABDE7A21705FB083CD75D7BED0DD79EF0DC70614F0FB779510357046 + 669CE977A497496D70EA3973EB034E181B5CD8E29170B0C27464D833A03DA161 + 5C1E5144124DDCC0FF50C46F1B72006793E2F6FA6CB7CF3E8376C280A7EDF43B + 5F59DE80C2F147EFBF07AD56000D009D8A6612104611447990499FF318D005BD + 4DAD7AA6699A37B497BDED758F735A9B98508AE6B119B9010E6D600033DC47C2 + F795B05DBF004CBCEAC7C271E82C4B36D1DFB0FAF7B78614AA0DF7A983E166C2 + 2D0336E6348D5B8905FA0410AE7CE50C6D78943796C8C4EC656E7301B818C6A6 + 95A20ECDA80C1FA040F3426100727591415FECA217C70846328AB18C683CA31A + C3C8C60421830555D8620BE7188B17022A017DF31D0DFD770AE3802D39B8395E + 7BFE2020F8C8112DF6FAD37E488744A631511D4C748805A1D805298EAF8A8A52 + 8FA098823A137AF2FF84EF938AEC8044C752D6C28ED4CBE31EFB674343798D43 + 1EA2498D08B28611EDE3710340CFA26C3432F8A80392137448E6302845A1202A + 3D5E80C0194676484E88F199D08CA634A749CD6A5AF3406F7442334DC9CD4CD8 + 312078E4DF2A69D89038D80793DBF20A4E6A09996DD682017FA8038B8E84C791 + 2D9179BF4B47301930CCCE4D917002FBCA1AE2A0C04FACD18C6D7C661ADB5846 + 851E74A1647C1760E2D8CD8A0EE77E7A0BC8EEC4394E1AEAAA0D7F48D15BC8F4 + 1CBB180452D2A8D707CA60C4D201311DE18844D0F4E910615E302295C4D80686 + D7416EE9AB0B418CC535874AD4A256B309B1939B4597FA0913B5610085FBE099 + 80D651720AF3321CFFD4A52C43543057147416698189D474D3B31BF9D27792A8 + E1399648C10B4EA498A0D321D2E0D00092CD62A80DB5665EA3B9D7315ED34E3C + 981F5307EB4D6A14893375182842AADA51FA5C89A7C85A0EC174E2557E35E37E + 7FD28D17C8862B6FA023A6699DE95A9DE8D6286A7028D798408B20B0062DBAF3 + 12468DED350920DB2EC68E07AF252C37ADE4A70EB974B1E5680842F458557F01 + 10A05A7D4E4E4C33A0F8D462880CF350B74CA5BDE15A76126A156E5B6F6A5A9D + 2EA9702C2AC319BA91DB4AD4F6BCE8856613DE958C65E8F6BD941822AD6A643A + 3DD6D4908CED9724E320BC3F1A6F3D1004627931C140A87AC85666F52C5AB12B + 5AE14AB27B10C9A0FF7707A0C3F00E6079B230006D69DBC50D6B588C1CFEB087 + 3DDC611183F8C4252EF1884DCC61418820032B842F7CE5ABA2D2E5858FDD1BCB + 59F36B0E6AFCE1389A91116E7CE89883004D1661F843A5C666BDEA02371CF944 + 075BB7E73D9C8A6F5A458BEC017AD686616538BD6046EFCC5820E332D31858A6 + 7A725A0A15458B60E460F935EEF83A66B84591E60C84F4EA80654AC458226929 + 35C52739D7BA4F7E7A4FC219DB29D814C5B7016578C59066B1A4493CE94A47FA + D21A7E5760CA3CE385C132B1372E87430230C506546C2CC4EDE85A2D631CFCD4 + 994674B10B70F61C02C8E9E7834A73B2A0594968D26ECECA535474E494B5D1A0 + 8A42C5964671A59FFF19624C3B7BD9AED90EA7757B0A3F2156B17AFC09A9B996 + 448BE878B83C1EF5A13453BC992CAB2E7771A47339814B99F83401E9A6A08279 + 4DE8094E929853FCDC31790307C53E5AC3047836A4039E6C81175CD23D8AF1B4 + 2DCADB4F635BB4DB035F4EAD0619AA325698FFFA5A937AB82CB018ECAB94C065 + 9D9309EFF74466DED9AD3705F9595AD3664CDFB0E44D624F250B83DBFCE037C7 + B401EC54B3853315BAB59AB99A67EA0D88943A89154FB5AA1DCB96CDCCC82B8B + 61E7E932D1EE40B227DDDF4679BFA43CE57B5B248A9E839600AD48BA818A3016 + 014FBBDAD7CEF6B6BBFDED708F7BDA33AD0357F97CA90DF7ADC8E0CC4AFA00BB + 62DEAEAED2572938FFCC846DC8109398120BFAB8318CFCEA492494BC7FC9757B + 4F32C219E4DAB4381673D2EDBDE638C739C1731EFAB96F185E7767781CE67BBE + A1E7F3C114907012D5CDE3C059A6BF3A8CA55706D255D4540826EEA6A7D2DEAC + EB5F36F1C1C394F895A935BC20CBDCEC35DFB0DCA74FFDEA4FBF0934A35DEA4B + 69255AF9B66C9149F9EBD90CD23F985ADDBB2E2E35C6879C5806843461111055 + 430EFC4022C93197D3F1C969CA56E473B7BB2FB7316BF03572C56FFE86760067 + 7D6F97806AC780D5E7806EF72E8EA07DDBD74267B62C03D06516471F97835F7C + 14619504786EA63DE9B74A0D113C4BE2162FD2195F511711E40D911207671059 + A4024178917FD813FF49FB847C55F65657B6795E03362B22558E867628A08048 + 9884D6570037A01D15C87D57A222109081A8D12FAC766A7C07380F86535CD300 + 919785E3245C37948280541EECF11B45280914B006E3616E5072176E26793535 + 6592644110F63D60873189B606D522528C465707117D4A388884E8765291124F + 38471738851A185CF5C135155371E0564382536A9168649FC558FE72282AA27B + 93A53C19010EF6822FCAC128091016166139FA775F2BC7723DA87C9A472DD6E2 + 6AE9F1539C440A697784BA4800BB1870BBF88BB9188CC07884BEC88BC6588CC3 + 688CC4788CC6D8042BA00C7B9688F2D17D52380083627182D33912E14816D72F + 86063E60B78D4D33FF78ACC44FA4B60129927B047413E85648FD502407767FDB + 781192D78ADB75875783681AB331D6E25FBAA14CE4258885389085C85E3D278D + F473668C628DA8165C6A614E2FC70D151765B60791D2327B1E585CA660196C01 + 5E1F723CD6C83496315FDC423984348F98638FDC838F5F977989C68F44912D81 + 9458FC5373C97893CA989338B9933AD9933C8902B1333B08693B79B7906DD05C + 35E4585DC06D78713D5AA75F43833114231190B17FE4F83B82A368B9E719BCC1 + 1E1F102DA9504434C11EF13711AAB8924FF48AFE148B02E83588124B811242D1 + 28093FE99376599778799739B9732BC002EE35947BA209D4C0309CC18849874F + A3555A527489DD68FF0EC28479175349DEE67A7B143811114088821EE5E12570 + 902D92432A64A3148077359A539ABF068E79186C02C831FED595E305729C8002 + BA289BBC489BB2799BB6A98CB6899BBB398CBD599BB3199C3AF99B06904D8029 + 2169815296C05BB937850D7098BFE48DA7B094D2E218B4D777A7B06DE68717A1 + 587B9B0864A2F291FA712964A91466499A55C639E09853CBC787D51284CE3736 + BC339774099CF6799BC3299CF8B99FB9E99BFAD99F77999BA2F42AC759155562 + 68E1175FE6F41E30580AABF727CB320609E66043D74ADD6535172178BFF3908B + D994C437898D359214A64BB9911B63A30D5E2899DF9335A8C99E7A382D6D398B + A9B51F7C1306B580FF021C709B392A9B3B8AA3BCF9A33D1AA43FCA9B42CAA33A + 3AA448BAA34D7003198088055A1816B01677E16593C00028E228542A09780343 + 3D038A27F748BED36B6E254553994049F998C056A61919861CC9247556A28861 + 130970061233956679A76F65499AB779EE491442283603D137378AA4848A9B79 + 50A8889AA8B279A885CAA8F80937CA40814F7A0FFA959D21D599224322143083 + 54231D7016066DC024726A2A46765F73F894BA426AD5F985D6954F82439DE699 + 74C515A541E16ADB322A3C444067182D14238216C39E5D282D7CFA01C44A805A + D2225FB17708330A2870A839EAAC43CA017990A3D4EAA3D00AADD55AADD8EAA3 + DA6AADDEFAACDCFAFFAD28600037A04293EA137EB794AF5438FA823E94100709 + 508A5C956B0801AA06D6A58FA25D3785119EF537180776A3498FE1478985B2A0 + 53D990ABA42B44F396255A1E99A42C671816BD9AA72EFAA2FB18A3C31373A3D2 + 2DBFE17BA370A820DBAC3EBAA8221BB2210BAE272BB2E0BAB22A5BB22E6BB2DE + 0AB3204B004D8012E78A0F26B22BE9681E9EE10663E0AE9300AFBBB199DA2020 + 8592371ED3A5EA2649101199DCC82F34A53D11A68718D998A3F510E6346B093B + 9299F9315303266F0A75736A7EBD1A821373B6C17AB1EE692D22F5A61B7B6E9E + 0A9B9630AD79E0ACD3FAAD754BB7752BAD76BBB7758BA3772BADD41AB884EBB7 + 829BB7820BB886ABFFB777DB048DF09737DB0C8E89B5E3566E5C3101FB420901 + 900033627F6F282D5926A7CA137E81137B7A78834DB37F33C54F16E98581F794 + 5562195A3B7E00F40F6E8BABEBC11803F8279F79676B40B667AB87690B2DD4F2 + 9EAAB021E005A72D628ADB604FD7C5097B0BB8D92ABD2DCBB7E17AB8899BBD81 + CBAD843BB879FBB7897BAD742BB848957D91EB0C9B483E2AC8955CA91E991BB4 + 9CFB213CA44E9D89BCE8A1B42453A9B147A695B434B24A7458BB9E80F7BF0EC9 + 4F60080E0FD106CD47A25B22B694456AD63635B19614E6E785E2B3A7305ABC6E + 69349DA1BCA30220783622DBC401824BC2E36BC2D88BA3283CBED34AC22EFCC2 + 307CC2251CC32ECCFFC2D9FBC2742B064CE808F479BED370254C7234E41110E5 + E6B3402B0971300607661E42561E4CAC1CA5C24CAB4B7E2F676A8F6195C6C7BA + AABA9DD7195C30D53FF63A6CB73A39038167F6346AFF20393D341039F12CD539 + BCC5FB9E5F932D99A459EDBB255B856E40D409835BC3348CC37E4CBD33DCBD28 + 2CC8E3CBAD30DCC785ACBD0400A990EBC3A160999791223BE4C45F3252CAF2B3 + 24120703D0195D022A961BA7D91041F855BA10D985185A8F43F73F541B875669 + 82E6D027E361A29BD91E08848D5D10134E529299B20ACE42BC7C48ACD6722D1B + B2BE1F2C10712164251A43212CAB9800C32FE0C2D1FCC2D15CCD1C30CD892CCD + D98CCD896CCDD47CFFCDE0FCCDDC9CC852A17090EC0939DB6A01632900D6C63C + 851E46BCC99D6C8A67C087452357261AA14AD39D930B82C13B954E996D68EA83 + 033CB05EECC5D4201EB72A4B5E699D19690589842C88B17BD840100370066740 + AC185D149E52CC983CD1A4010799A18E25FA30B1868A817809355CCD748BCD2F + 90072F1DD332DCC2D23ACD2DFCD2248CD328ACCD83CCD22B7DCD341DD424EC8C + F273CEA0D00F58D2418BD433CD62C5C22357F1FCAE9D4C39D659BBB0B4CB0F83 + 6E5F18A613B4BF2F679E4E794F90648EF956B5509B898193CBEE7629F7A7675E + 0C347937C666481722AD219FD2166E312658AD5C191D84EBACBC0F132CDC3075 + 9100CED67CD82F70FFD886BDD88ADDD88CFDD88E1DD9906DD88DDC5E46AD09C9 + 197BC2C321CE0117D01131D60914BDE5159A2CD535027E3604C4A06245CBCB7B + 49C19D70B6911171C1002DB020DA63FB7BB6A95CCA95DA402C352A519CD232E5 + 984053195D600D1D52C78B621E7011266112173CABC69A756E110384045838CA + BC25BD911306D1AF9110D3860DD3300DD432CDD2E52DDEE61DDEE75DDE8C3DDE + EB4DDEE81DDF2F8D02632658975D0910DD05BC02480433006E4CB678416A5143 + DA471C099C5C9819787639DB001BE387DA4DDDB916A615E9724C99A193385A18 + 37DB67EB48FDD2DB50F574CAB43C910238CCA32B01C4C1632C9EA2D1195C29D7 + BD51175F099602E8FFA779DDC1B42C1067C85CF90B0089DDE33E5ECD3F1EE442 + 3EE4428E07441EE4467EE43E9EE489CD0162B0A4B273DF94D063A80055020375 + 63A078FE04784F8D2C511DB4B9444FCF6916C411997356800D9C78B06D5D6278 + 99C26AC51FAA6050AB942F277F1D0E38090D01A353077F7076534EE2BD664EE8 + F847CAEDC1266AD204F195C2BAE830BAC1E4369EF9FC6752C2E390EDE3938DD8 + 3D6ED84DDED896FEE38CBDE9950EE48D0DA9042AE5FDA0248B6667BBDA6D5B2E + 116109CFA50DE6F78B47DDF010F6E12C4AA1536DAB5A710A313FB478072ABBFF + 9CCA984874DDA3351C6E0E5B67250ABDBC7CEEE77FEEC5AD74EBF65B3C907EE8 + 5CC22C8ACEE88B2EFF8B03802DE466E313FD4148E465446EE411A0E43E9EEE4C + 9ED8E97EE4EFFE02ECAEEE45DEE3F1EEE36200376466EA96B106C4E37E7441A7 + 162CBCDCD66D61E9E5B18EC4B924BAE1E3EF6132CA6E765CFEB8B1A4E1DFDC09 + 5CDA157BDAB99D93C9E6146AC018DFDBCDBE28A056506F9DAE97143A5E021731 + 021A35F17E5DA22119FD2CC45BF3367FF3FDA882294E3D53C5E3F4FEF3ED6EEF + 4ACEE4F7FEF3F2FEE345FF026240004CBA03F67DBEE5F4D42BA24ED920315696 + 686FDCAB2105D5096FE0613E10FE1D573BB490CF1919470B6447B32D59EDDFF8 + 7756A69C6FAE2BB0BAF6D68829F27A3E3DCA0454F864094949C51B10841E2D26 + 71F1F0D04110190DFF96177BF3C44BB6130152710548131DE2221401949FEE96 + 4FF97860F9F24EF947AFF99EDFF99BFFF9A20FFAA35FFA9C7FF9957FFA2F6000 + 8D805B903C290EBF43E756CFD639DB19FCC6A61614234AE09A1AE61D770DC7DA + 158C6864E6784928FEC15C85672735E7D948A6B53D8E0D165C760FE2542878EB + 165AFA6B5A42E196D8B221F55BD79BD22C347FF3EE59FED0C2F859E3F8A1C3DA + AB7561937FF4E84EFAF21FFFF42FFFA31FFF9A8FFFF06FFFF30F082F11828483 + 2F4D23193046008D8E8F909192939495969798999A92210C011F756E135A5E6E + 75631B017161AC716D1B6B6B1B1B7FB50D0D6D6D7F03A1A563015690140313A5 + 6E65A25E5ACBCA07FF1310630D141656160C14715D7F6B6370651307E107A46E + 1009037F6D710C5621EED50C6171015D6D0DB56D5D01610C16FEFE5602B673F7 + CE5A973310B4842305ED4F1C0AFC0086A05430DE3C7B7F60ADF9F0E18C478F1C + 39C69235ABE4AC912669FDC1A5EA21056CF3B47DF0062EDC843A670230001021 + 029E9E83800A15FA7328D0A246870AFA895450D2A34F813AF549B5E9A11B1958 + 4CDCC4B5ABD7AF6031596170B0CE282F65CCAD51D70F9EAB35673E90ACB532D7 + 065E6E7C017314C2429704CABC286356AE4E9D325E0EA08D368DA0356C0DD60C + 800321AFC28513CAC019B3765F3F6AFEE2050860EF563E5510F97D1618B0E2C1 + 840B17FF6999BAADFFBB4915E58DAE77EB1EDDDFC06BA59C05DCB4BE380F5929 + D7DD6000849ACE20E4B4C0B350A19E53AD4B0D8A9DEA54A14BB907FDAE747CD2 + ECE6C3BF1053002B8F2961E3CB9F4FFF91A733A148693EE390C2E7D0714416D7 + 5CB6D88557290304F0880571AC019B385A9493C007198D5186425E40238D05EF + 30E0E1451B9C91C061A340E886291336A08A87A079A81B3DB9C4881A8BFF0814 + 42357E21741943633884DC8F10D9B61524EFC0130636BB95D61B5DBE05579C69 + A78D06646AAC20D9007E6E8873D3073AF1141550337C09E6984285696604613E + 75669A62AE19159B623471C3053BD467E79D78521407288369B64617FE59139A + 870108281781E9BCFF32462F6EFC124C2771FCE18D388AEDE7D0350D24E00686 + 1AC601DA3FFD30709164245E160E5AE69CB14117AB78F8998B17F9D600ABFE85 + 5A634006E9185B43AAF42A6590D4DCC6C98DA1C913533D31C6D8DBB2CBC6D8C5 + 712D21F7D2B42F2147DA95A168090197D419C566996D0EC5A69B6782DB53B962 + 9E8B6652E86237C20A2C54015F9EF4D61BD68D61487A969F3A718823A801C275 + 2881B770D3CB04094803D94C88693141399BADBACE8D1464BAA962100CD04018 + B70AE48F3C6D70E38D28A64608C16614D24AA30547C2888B3E41BA2A288E64E9 + 3A4E863DFEE82B6DA1B64611B1F1C0E4EBB344174DF46848CF3325B5D52A4DCF + 3D586A59C707EB78FFB9EE0C58839935D6E45E3D66D7E8A6C935D85E8F5B369A + 5B93198118EFC66BEFDB7067D249176324845602A944F40FA86114FAC1000392 + 444BC175E735011C6B34B0C1A21034FC0C1CFCB11A915B7F68AAD0963AFDB777 + B1A4DD35E237A67A91591D906FD0460081F23DCFAFAAC96C6B185D38B723CEB3 + 396DBB4B930F194941D65469ADEDBD02FFE3F0D2BE5425922E678497B6DC0200 + 76516B420F261E664AAF2EB9D2574FF60CD4A3097DF7D1878DE60B2824B28313 + 71A7AFFE820138378A66798726A8FCF234F077E07311DE4B86708C5813397540 + 876770B5390A54EE626E401CEA6CB51A8F89AA0B91E9C6371263A2930D2071AA + D05BEFA8E5AA0E5AFFC3456D90DDAE7236BCE0052F3912A9C48D681634A6C164 + 692E8409D3ACC59B8CC4627936995AD5C6C6C31EFA906B0BF821108548C4221A + D1888398539DD6C744B831E00F6611CCD432C7C25789C67E8013492C6641B8CA + 08E618DF50CC31EA9080CEF48320FF0A8827D600872C69017E0118D407A9E140 + DD6CA31B8D2BD1A9209680C8B50A541D0C64202910C207F1A876D69252D258C7 + 229FE166851F3C5E0C2739496B61A42437CC964DB61547E7F5106D66DA1A1141 + 89441F829294A62C222A45393602ACE0024568A22CE915860F34CC0D09F843EA + 04C5408BFCE16F0308C916556230CB086630285A4BAB3407AAD050A00BA000C7 + 1BC7D00506F2F29AFF4103D119E0D00B4A39CC1490FB833E34B8B750C5C35547 + 6A40DD66D710E2995078C00AD6CF08188F2335AD78337489F19A568F8CA48454 + 59CA21977632C4B105116B072DE80C126AD0853A3488101D22431DDA5084F230 + A2166DE844311AA715C0609620A5CF8D02009852D4610DFDB2E67F44F387338C + 218B0353C90712E0456FDE4463EBA06333551A8F10D621315A38E93A5824485B + 0DCA8E1FA81BE84227A10BAAA856D8FC203A03642176F6285AEFCCEA8F54132C + 611109922EB2E73D8987CF6A8DE6922839090EA3D33C2438D4AD191DA25B8308 + 578ACE60AE0FCDEB46EFCA35BCFE30A11855685C358A3502CC8911214DEC57AC + 90AF3AF0A8019E92FF1F4FE5D1D297C6458B321D515E2074B70D44D6633B2D6A + 002A77A103E012B22B15243683F6B4A4520674E2280504CC91B287341257E6AC + 5F5547E8239D094FABF16C8DEE1A81469A1D8FAC65155A3F35925658AC157304 + 8DA874F54A5D882E60BAD2BD6E7517AA5DEB6277BBDFF5EE7691202718F060B8 + 8A4D2F45EE038152283050AE23AA8B46EB52C05D7624B598694D17528E3354F3 + 5F922DAA6AB2C146706468006D9886548B2AE096E94244A1D02361C82897D34D + 8E9E165167696FC62B9D29F2C33B5B9DB41AE9D5AFE2369B649DE16EEE3192E6 + 3A57936CED6478C14BE319DB58AFDDAD6E8EC51BDE1DCF806D1E8DA57A874C09 + 2B18B08D111A431BFF22A2525EB2D4A563F888306731D36EF257A8D48187933B + B81CDFBD263119E2568019ECBA6265E3979FB34C6CD3B2190CFE51751AB66A6F + 7FA7D53AE34E48E8252E3DC5BAB4D5F106165A1CA65A61BCA5AA5DF7D0884EB4 + A217CDE8463BFAD1908EB4A27F7C0378A18FC8987E84153EF19C0C9D61A84D66 + 60DF2A6BD9CBCA651622AA4CC9CA70D238DEA897E8ECF2713780E4039421014B + 5E2D993DE8220AD0E38E3485EDCD463721D3AD02CEBBE5F0557D6B673B278746 + ED78E4892569D66BD9B0C52E0628F3645C631CDFF8DBDE7EA88FB34BEE70F778 + 011168820E32B0C44C67DA2F0340CC4DD6E0A9A2AE76D4501E807D43826A9A5E + ECCA2865405FB61CFF56E5B83040BC30B0503936E640CA9A155C065195857D33 + 700AB056194EF621DDF9DB8E9FF0D9B699A7719BE6B293607B382F0EA833A6B8 + 93485720D12F6774CC1B3D7345A7610133AFF9A2757E7344BF5CE78A8E799C44 + 004B77BF3B53C540982E172C5F733E790C2FD537480E95EA7F8FC31428F597D3 + EB69F0694D69B4BB3DED3AAAD8E02E37FD1ABF4E6A1DBCC8D4542112321AA71D + 5641BCBA102F5291D2E2EA40F20C80DC200982D76E31CA07ADF267344FD2397F + 34D0612E699C377EF190AE79BA5F2964A3ABF78951BCF5C6984E5427E31BEAFA + B66FE0B6F99C92615D27402B38B55F38BC2ED01AA8D2F92FCD38AFFAE538BC65 + F5904CB0A1438E93FF7D4045C889336F39DE6C8F2B2DEFFF89F6B0E0E16BB49E + 7CF029971AD55A7EDD9F3BBEFA8EB7BEF6B37FE8ED637FFBE0E7BEF7C54FFEF1 + 875FFBE9263A622DAF58066CC0B1CF4030C3ED2D6AFA823EF420B9214DF578F5 + 56FBEBA8AB4756C1134265601370B0010AA66B82F470CAB180BF06619B052137 + 710690552871D76174667CEF94816405715D352C2C431A81E76283A76D9BD43C + 89677DDF477E2B787EDD577EDCD782310883E64783E2D751305005ECA75861B0 + 0617620A1FD0051CB36BB9657F51877F973519A56722AD26705A564F5E477CC7 + F70966310E65A06450554EB4C78010175FD8F060BB4741B6964BFA207CCA3667 + 1AD871BF835CCF06FF1003F108F8F26BCC458225F85C3AB4131590873FA7877C + D8877E88737908887D28887E58887A48888768888A18888B388815D05117A083 + 3B08523DF8832C477BF1F574472875494819FC1721FE472C527524C87577BDB2 + 0109704B5323399A43665C6876BD267123F21CE1804B7F62811B764873677774 + 172D6C986231F381C4C520BA308782067D84B76DD491888CD88C7BF88C82188D + CC088DD3288DCE8888D7588DDA988D798883F332894D544B9B9240018789F1F5 + 799B28751CA1849F787A4E0848A4C86C4E8334A3F14B48162165A40EAD43845C + B71C4CD385B1385AFA951887B31610748124248FC5F78B0CD9861F6801CFB40D + 98858CC361822B37FF7D00D0881AB9911CD99179E8011E19927A485E59B17EE0 + A83EB58418706445F4E721BE466AA117931E8147D0D17F59278AC5F24226448F + 4803418B535A37254EC1032CB0D68F5D472D0D1856CDC746595290F96086BAA8 + 9069D890BF683CB7252AAFB011C7489198F45C9CB48C22199662399664C9876C + 931527C944E2D85929B56B1FF492F916939C884756078A01879339093C3CF92C + 30D25266E1306A810BB7A03245597B47394955828B0E8338A70395B423850B49 + 950C591B1F532873C89515698703050048F091150092A0F999A2199A208906A3 + 799AA4899AAA199AA6599AABF99AA9199BA7D99AAFF988319015DF98966F9392 + 77331BFC28557079FF7F72191767A08496B10C40E86A00E64C3B438F4613236C + 7421110207BF07412F831A49B980B2462D4B032BB1F38378A30F7F8090885477 + E6698AC7279993C90FF2A00DCF87995D49685F0900068004B4299B20E9999E89 + 9FB0599BFDC99F00FA9FAF9906727201EFA19B70B396B7E61043E8962E698431 + 197503E35AAAE6302C87976F59773D5934C9E27AA9A80C98E367CF920FC7C155 + B7E78FDCA94FEC491A55854B42399EB9F898259486BEA89E6CC89DBAF09EF019 + 7D02553524600262900615609AADE901466AA46870A44ABAA44A3A9A46FA994F + 1A9B1E90A44C8A9F557AA5589AA54BCA0505DA6E084A4BB6D49B9EC18F0F0A93 + C3290BBDB101FA85FF0C9AC12D18DA3B896434C8922CBA9070A42054B02282F8 + 90416587A231D40A01808AE3984BF5489E5845A3E969A3C0F8233E29783B1A9F + 85379F1A90034D4000421AA0982AA0991A9AFBA9A99E1AA0041A64B9F9A576A2 + A078B30FE6285FC17984F9B701D7590F9E030770800E63B739A0E26BF4403474 + DA1BB9D052DEB00C6590132CA21BA5112579D7800CF8A7EDC994D3A4226017A3 + ED34A3C557A38A3A3C24D7A8748899165968D4C104931A036280A45A9AA554BA + A4E5AAA4E77AA4E93AAEE2CAAE53AAA5EBEA015C10031EB503A34AAAF3C19BFC + B28F44089709107503323851B262FE244ED3B09C471513749A0BCCA20B49D55E + 63B864AF428A4962FF1CD8A91ADBE942ADD006D1F44608360F302A67BB789E1F + 56AD93A95C8AE3A88FCAA32B476FC1E003DE2A02E0FA91E65AA52550A5F17AA5 + E57AB3EDCAA450AAA43C8BA53B6BB3471AB4430B922AD0362689AFF9FA01E3A8 + 400D4A666F09A1015B17039B9E2D414E9BE392AEB0ABCC720BDBB04D9B72139E + C50EFF62117A9A0E25DA3A198B94A27225A557060856A8D09A9019E86C268B5C + 5128822AFBA8DB9A31D504005F60064CD0021A10030430A4497AB38BEB01416B + A4417BB392FBAE8CEBB8963BB990BBA48F4BB498ABAE96DBB8930BBA97ABB9A3 + EB016930AF1EB5B44C1B1695088A41C8AFAEB8AA558B0BB9C0974A4325F164AB + 7C03234AB22CBF41FF65BFEA69D5341160652C73AA0F7C6A9862F5121FD21C7F + 19ACACF2AC222B955A95B7374A72399AAD5C69912615840C20055FF0053ED002 + 2B30B343FAB9968BAEA43BB9A18BBE9B3BB49BABBEECBBBE94FBAEE25AB9959B + B9F97BA42A50692C7069AB1B1FAD6B0AFE3584B0EB70C1194C5B640BB46BBBB4 + 11332BA5BBEDC9B0BE0B1C54F6A177B3311341409144B1F48871C96A956FEB3E + 68E15FF5988A720699C263BDD78B3C2CA6BD14699100941318E00366E0035B60 + B8E09A068E5B023EFCC33EDCC3920BC4445CC4462CC4420CC4486CC44ACCC43F + 9CC4471CC53EBC04FDCB6E9218C060E17E09117F09E62244D83291211225C1C0 + 0D4C8FC817C1BA8BFF76A5E12474711275937453D40EBA9B9349837146793C5D + 88709D167B208BC2BC35B2E8C9C22DBC3A2FBC95F0699152330018B0C852100E + 3ADC045CB0C4685002933CC98E6BC94F4CC9928BC9419CC9979CC99CBCC9433C + CA92FCC3987CB9981CCA9FBCC469A002AF745E589CC550241857B821E704900B + 380F8A6372C4B1120D8CBCB7CB64D764AB6807784EF24FCEB1298BB131C9C71A + 38B2BCFCFA8ACD4BC2B177C2758B869129C8D65A6D852C387EBB564CC8C81810 + BE3E20031A40024D900668A0004EDCCEEEFCCEF01CCFF23CCF5CA00222C06EB1 + FC15168074A5904BA0C675AE182B3634C650C2975202723B25C11761C1FF9472 + CB306FA8736100B6FF757D6A760CD21CED55C2D18B8AD77CA878ABCDDB2C34DD + BCB2C94829B1B1C8286D06E130072D80CE5C50C94E0CC5F13CC9F37CB9ED4CD3 + F3ACC9335D025CFA4AF69ACF5CE11716F23007F8CFD929607F07B664EC2C7887 + D046B5B56A9C11FE6412282119BF3A0E38711C10BC325A58D1491929162218D5 + 1CA87E7C862ABC8120DD67A331D2248DC8268D017E00D78BFC0507F0057E70CE + 31C00525A0007CFDC3ECFCD7440CD8ED0CD8EC0CC484EDD77B9DD8869DD8828D + D88D7DD890ADD88E5DCF4447057C07D4926001ED831819426FCAEB8A1ECC1B0D + 6BD08C2447CCC439AF50918267D588310E9C742CC89B8550CD60B2F621A425D6 + 5C320F1C3DBD89C4FF8BD40AD25EB7D6DB00C3C8E8D69482D23E80D21800BEE3 + 4BA953FAD88C8DD83E5CD8921DD9D47DD8D31DDDD06DDDDAEDD8DD1DD9D9CDD3 + 4DE0D3008CD99560057B921F9C84ACB008DA7F47C1657CD0C1684DC4EC0AFF84 + 6D233119AD1D549E950DBA50170E99D0B4DD85FE1007B46638ADA6DB65BD71D2 + AA86698D4F843CDC86ACADE06CD25F00D771BDC87A00BE07E0073280CE2A8006 + 7DB0CEDADDD77CCDDD7F6DE2279EE22B0ED92B5EE22DBED72D7EE28C3DE3364E + D82BDED3179005E67D09217064177285090671B5EDA028B61B4653C7C2DC647B + 139126876D5A3400FB87D59E85AB739A347AC353DA49230DF29709940A0ADED1 + D47B3B0F0EE1BA2CFFE1DEBCA3884C0A97E10617AEDC8B6C065FB0057ED00239 + 30022AA0CEDFBDE728CEE77EDEE780FEE7825E0290F8D33D8E1B61D0062DEACF + 41C28064EA3BBD7D34F330DF51B5524E8EDF211112935185FC0DC289640FFA28 + E05BC8550CC227D3D9DF647DCD679DA865BEB7D93BE1DBBB56DF541367E0E6C9 + 1DD7192E0572BE054C900324A0022AB004327EE3C45EECC67EECC89EECCADEE2 + 3D8DCF87CE099EC0275BC28A8E4EA6E8546D664C944D27559C93B21B91E9E02E + E595E1DA08182CCC2782B3B24B99E8703253EA09F14670503B01B0060B2E771E + E6DB65DE670BDDB76A2EEBE5E045F30E0107200518A007CA2D05CC3D071A7003 + 31A002C3BEEC101FFFF1123FF136DED330E004F7FAEC63D1007020D657A5BC47 + CD609E774FB461A295BEBB290BEE1CF1112EC54D6E54071B1006CAD717A22125 + 0C27EA528BDEB6849CFE4C60F51EAD63FEDBC08DBD684ED22C8B16FD93007010 + 028D35F0058FD271CDDCDE7AB8C15E020860EC57CFD759DFE25B7FE35B7FF560 + 6FE35F2FF6271EF65D5FF6CA9EF55C6002AF4405CFBE3B9B5652E4E819AF78C0 + 5F0CE95679F24F0D321299E92C3F93FE46EE32BF15A9D7EE5B4B70AAA5F3D2A9 + 19B5D305D1C9DB5399EF7BCBD62BCBBD81D90000606492E2056650F0C99DDC08 + DFF9857BB8E9FCF061EFF5647FECA7AF0067AFF5588FEC673FF6C4AEE33CFEF6 + 901006B50E9808E6FF1F756FED81D4C149A9F780746670419C2C0F3803D00DD9 + 1254F4D65545E2CC69AC8032A3F83CEF10A4C13029DCE0D5DBEADC5CF46DBD56 + 07D6C58D30166D001852E007B88ED2BAEE03E37BB826F0D27DC0FA0830FF66CF + FAF65FFFF47FFFFA0FF6F30F080A08820883868288878A898C8A85898F8B8B0A + 5C262B1745009A9B9C9D9E9FA0A1A2A3A4A00C1B105E5E6E097F710C61B1B2B3 + 610CB6B7B8B9B916B6B1B7BCB6C00CC216C014010D6B67CBCC03CECE0970106E + 5A5A106701B621DB00DBDE5656C5E2E2BFBAC156716765D565090D71710D6770 + 655E07F75E10637F01F0710100FF0504D8CF9FC18308131AA4C05060833F6B22 + AED940B1A2C58B16FFD70CA8E3E6DE817C03DA5060B06393853803BC489182A1 + A54B295FBE1C6022E3460C1568FA3482246967CF9F3E83027534488150A15C54 + 5CCA52AAA9D3A75045596893C08D970975D6C4A140AB2B2D7360C3F21A3BAC2C + 5906C792395BF6AC6D348EEC06741969C18AB710E0F28EDB6B76D7B093EA0E68 + 2933E65D803F63EAD4F3986FDFC17E90FF299C4C1921430AF002B4812811A367 + 8C1A3932D6F78E018B4C9A2C0480A3E58B143F2E639BF9C2A4C58D265C0AE9DE + CDBBB7EFDFC009F116FE5B3871DFC7811F525042298C2A53A24A9F0E8A9B5374 + 1FE092DEDACBEBD7B0E0FB921DFF975718641ADB0E18C39E7DB469EC0AC3AB75 + 0E6F5E707BC99DFDFF552CC0808E8DFDD1853CD2943141355A4CA00F3FFE44E6 + 6065104E7659669B4934D167186E105A47F86CC740062C1861D21E70B8F10506 + 7AB4E403062BCE465B0B39DC94131ABA25179C728644A29C8DC52157238EC6F1 + C645132BC02022754852875708D785D14002EB9401C71A018C048B77DF85A7CB + 7EE491074B3C1FA8D75E7BEF753458615D00D44517718461817DF7E5A79F7865 + 053006350A8EB1C11F1FD053861B6E4C20A81B0B3E26596411267AD084FF54D8 + 59869F8536C168856523820830EC50456A01AC5186192862009B8A6694CA0413 + 1AC49042097DE0E8AA0BAEEAD6AA72B0CE8AA3ADBFC11AEB6E955CB203934906 + DB5408B030E05408FFAA7D908A820394762596596A295639C100735E03618EB1 + DE98EDC1510704935AD36C005D6CB6411B71BC799F5E721253AD2D5D54A5851B + 758CB10C94135C05A81B7F2E589040900DA4E8C05B35D4286711411AE9461C7E + E4E108226400C31D59301942181B94E1DAA82A62208519F7309103092A7061D4 + AE28A7ACF2CA29DB30E452C2C61C0A5E14B4B14103FD70F5A628C83600872A6E + 4C19402DD076252D785DD20926B76324E0F4D3101828581D1F14A4590373BD09 + 679CEDD2C90B55074AE9343DF608A62FA01024B0C1BF87B64DB0A28C6A86F085 + 0A5FB4A1161D56CA400123E820C2052C44D74D1872D4F1851F29C6E631C83ECC + A1410E2670D16AABFFB52200EBE596675E88AD946BEE79E59863CE79E6A2CBEA + 7921BA22606BE8A49B9E3A022F3F27B8CCB40FDE406275C091C0191BA43B4A08 + AB55039248456379F4B4493310471B1F8CF9F4F3DE5A35F51F6EF6A2B35DDBAC + 8B5FD76315630BD8F3C2117DD91E993D413B541A8AE8DB89C6FD908575833680 + 34933A2CDFDE23F0FD370CA8013095E12B5A51C71667862DC0E8264B50C0E458 + C6C0063AD055B12B49ED6466052741C923F3CA4A1CAC209536B0E61E41A31243 + 8A67B4E36DC96B65595EF312D034E88D0D3E1F4940173868B1BBDC457BE1E0DE + 3818E0C149110A86E5C3E02AE07006AC59AD6D6C631F65260490F73D2A7E15D1 + 4802A691379CEDADFF0058EC9BC48A60310BD8010E0790428A38E6310C98EA71 + 2468C21254D73AD6B9B18D707CA31CE348C739DA918E2E23D2058E3441245981 + 01878112DECA879533B4A14A0C005637D0D28601408052FCB012096561C26905 + 03172A6CA10B75A79803C53000D5B1210E73989F6184E37B0998D4F9A8810F41 + B9D20BD5381F116F4690242A31424C44C6DCA09891F981AB8AAFC022DFF8A603 + 89F16007D1B10205DE700033F8C007645C49A97CD002DBC4C0649DBBA336EBC8 + CD6D7AB39BAD831D91B0C0943E524735F3A8C72031C8AF7AF5CE029BB042A74A + 543FC1D0CB901430CF246751C91392074C9B8CC65B0285B7098C01949FB061F6 + 70D8AEBA14C34970FF085735F041A86F41206A9E1CE2183E60C45BBE2D6E8E4A + 182F29A291120D1224A511A64A21664C3668220E6F3810A812F792D96CA13631 + E2C21AFBE0829E5ACEA7A1E3294F81DA53A1F6F4A83FBDDC5091EA029E5ACEA9 + 4C251D50A17AD4A62AF5A84B2DAA55939A941C5CA09CE67C0AB20270865404F1 + AC07A0D7075EF1C73864679D8C6145EFBAB34F5FF4B31C5E42C61904AABBBE8A + 4F1A5661C719E2B009851A766BECCACF29E3B0818806D10B521AC0199C3186E8 + C5B20CB91BC01A8CB83E8F4AC8607283DF4835C4304806337F59CC623133A589 + 10C4810E3F73A61F02C8A2DA9A01A724CB4D37A11A47A8F2D68DBFAD6370E538 + 5CA0C6D1A7080083FF738CC0C1B096825801C84E3DD15A3E7A0D604F1BD8C874 + 315848E2D5959277F58BB5E2F08779F0F5AFE2FBD6811204813584A1B036EC86 + 61192A8EFBA0A50B652D9B165421258EB6A10DEF4B4CA05C5986B49DE10F87B4 + A5672DD39026EE526122FDC31F367006D1E0434A6BE8421854CAE102AC96629C + 0223A860434633DE1646245B421FB25AD516BBF8C5308EB18C674CE31ABB7809 + 96B880049D3B0A740291BAE54B5081A36620B872571F6B6BD377C11BDE4BF6E2 + 300338EF5FEBF0ADC5ACC21DC66A6D7CB57C43ED8D432FE769EC3AECC92F387C + 402498F94717CA5BA0F50E51B33853F082FDC1C40169E889917A9484295C2276 + D6A18801E83087FDFFB645C12D5363A0EAD88A3EF685C63D4E052A362A516D4C + E9AA26D5D295CEF4A431BD04157895074EE07142C3815FB302F9D4A716DEF9EA + 90800C2B79C94DC68531BAB081CAA237BD54862156B49265C3764294A3144718 + 5488AFFD8A6DA3E8EA0E6634B386CA1679BFF4DADD9E123C67062FDBCEA2C590 + 48F734E10D1D79770D103487B598A94D01E01475686689F5009346A3EA062648 + 41534FA0E97ADBFBDE9556800A6ED002502B52D4DD20EF143D495D23A3BA7C57 + C9D70408E598672D993E77B51605BAD06C6F798BCAB9AB72FD58D1807C7279CB + 1F472CD726FE878D1419B2AD7E08CE0AF698357F20011C59EFAA13006736557B + 21A075E2B6236591FF3DBFFC97F7107266C53DE862EAD8DC0C58C323A1F94CDA + 7ECC99D4D4800914C8E217D31BDF34BE3AD6EFADDC1B64800AE606F8B9375087 + 7C193CE80B27DFC1E3FA27B37BE1CF557A383FC36B1E6263FCEE55969E35B051 + 971AFA3AE422C7CFC45FAE4E63C321C999015840B6020F9BED1586ABC06C023E + C00F39DF12A40F8EDF849BA718F209F9A27520FAB8597A9AD478F00B66800D4D + 4725852D1810725CB0411FE84D7B17D4FEF6B6CF3DEE77AFFBDEF3FEF7BE0F3E + F0876F7B1BA4E0064C6041A8456D8130FCE167059F79D3A6A1F654471BB0780B + 219BE46ED77E8E9740DFC2FBB7027B8009C0817AD83BAC75E4AB7E70288F7926 + F50886E7128634ABFF294D019950B96A0D17B447F666F8576D97B16C21453710 + A60C30576442C42F98257AA31731A7C1245310006FA0127E803802E4313E807A + 3E20031A90462A7602B3277CB97704C1D753B88782BDA78226988224486F2DD8 + 7B3138832FE80231E802CA950319C003FF664E71B006FD87566F07689AD12763 + 866A0952079AF5739372656B3312DC4777681100D93545E2D7497873266D9048 + EA771780274ACDD7057D223DF8403536677FB5544B2DC7668B710FE7A30F1FB0 + 0101C87897C74405688019224551034B70157969E3801D466E3C80741FA005A1 + D2121CF33130511B24106F36700290687B91780247407B952889B407899A6889 + 99B87B974889BB37FF8993F889A3A8899F488A9D0889A8D8752D1022CE750A10 + 70764107016BA5351640017F2048A99627E7D2066BA08B83A13605237711C70B + C4E62D1080777F620FE1D33B34D485D0B850F73586EB242EE8927869988D8B47 + 806B403666B30A10000763B006086679036387DD8667DA363F0A1844D0168E67 + 008882E637170003E564016B30011C382A192805E5474D230369F35683C4377C + 23F87B0749900A5990BA677C37B0022C1076B5435ED08756195435F0144FF1B0 + 5758F858F4A22709D60615563601D20FC41871CA5372C8A88C64A820559348EC + 178DDEF06BBC800CD4E81179E20ACBA68D3C994414470FFC1228FA923B1B558E + E6884B0D612ED916FF29CD430F0417646FA83B1FC06106204C55894557B952AB + 851A0CF0078FC41225E61227F6812A00069B789668898968B9966B89896AC996 + 7019977279966A797C10F92B1334063FF6581AC400CDD55ABC40728E345DE173 + 5DFF95263FC921F302010310490FE770DD271635F98B57B88783E40663D0066E + 22937F575880C47F04157484517987D2933DE90FCCF3344E7959E1A859D43680 + 04D36077485278A821679018ED8841C69636DA3295F228685AA463AD950560B4 + 3117181B8C8601EF1639AAA30673298ACFB9896FF996D1599D72F9962EF39011 + 3941DB15645A90151430935EA8097F845F25A20A43746087542E69928B0D9384 + F8C47DD122166120FF92D2107E1755060A382FAD4001E9C799F1E50D9F493FAA + 202857E60AD8689AA6999414011153044B41176D94774875D8787373213BA721 + 9C477E417615927706096395BFB9522CC5035C040030054662A43826764631A2 + 020AE002CE699D345AA3367AA327600360402499D28349726AF4A21519C9659D + F04736190DBAC33B58532E09861847281884D171F5279F73071EE4B511181735 + 4219A187F70A000A7200704AF3B4188B4965AD667301A3A03C7910F8E78B7A59 + 4F42268E1C9526F0C02895818E7796A15114264EE98E97C56A0310875833A244 + C75230C0031C244F09D04C3EC0121DB31207D06832B0028D287B338AA36B397B + 98BAA9D609063150FF24C8243340F69DBCD65C87255F39742D0DDA000DF05F87 + 79187AE97951DA265C517FB57A9260517F149718C9A8A54F697EBCA6355F6A1D + DB708B54480F27058782EA206AAAA692B115E482184027186F286D145A3006A3 + 10B0B93CE9A8A71A1A659DD7A11E5A2F1F50AE9154005599AEE8BAAEEADAAEEC + 8A45F4C803E449225ED068A2829C1BB8222D902A5C70A99BE89C007B0297AA06 + 044BB0027BB0015BB0086BB09A68B0098BB0070B89012BB110FBB00C6BB1D209 + 06267003C2193316990F6B65313179AAF1A43C02B126AEBA268851076AD70EAE + 30A5B62A9FE0710C253745FAB98C5938445422ACD933ACC80248D8E28DECD00A + 6BA286CD7AB4D8BAFF6CD29A2F8C214BBB538EED83A74B79671F709BD8D7A1ED + 54941236175794952A9595602BA2C2E437875A05DBF0834B171B19582A33912A + 2A900236A0B0131BB115DBB0764BB1189BB775ABB7030BB114FBB77B9BA34DE0 + 5554303B488256F7940DF0058D9C8017E3452E00D6066B16AB83C49FEF00B303 + 78AB8FA90B4598808002A16E9836AEC085DF701F8C5BACC3B6B2D47059678A8D + 8A77B40A8A106B66729E078E7000670591B909C1284AB9731151AEB759264606 + 59F502A250EB26EFEAAECA9BBCEBEA61FB13AA16F0071A4362F74A2ACEB4AF24 + A02A7D50B0DCEBB005DB01DD0BB0DE4BB0E02BBEE41BBE028BBE72FBBDE39BBE + E6AB06E5EBBEE14BFFB047B0A31C8BA8C182566520176160AA3E1B2753C89E93 + 6B6A505A185C91B99721B3B940B3BE64764766486ED277A3148D62BA01038737 + 9095366B70ADA509BB1EFC2F7AE5947CB85FD53AA1B99B668B52A707B3946B50 + B5D050266AC75E9317113863250C10B65829B6CDBBC35E4B6E7869055DF0482C + 729C8BC622FEB805731023296096E17B04F3FBC44E3CBEDD5BBEDC1BC54F7CC5 + 567CC55A3CBF7DA0B11C4B05F97B56B4980D12ECB3DCE0B8689178B743C06722 + A5083C42B86A3DCB935D1CA15FAB903B1FD0053059BADA038D7F347850C28CB2 + 745D74BA6CAFFBC1CD4A6760828CCBE87F728A606C92446FCCADA2F5BB93E51E + E2B38742D40E07C6FFAA88040CCCBBBCA29CBC5A042289A4A807202A34D512EC + 9656480C028D98024E0C041D40C5E45BCBF09BCBB50CBE54CCCBB97CCBBE1CBE + B6ACCBDF8BCB4FECCBBBCCBEDC9BCCBE7C04FB76013C78B867B5BFE84217FF69 + C6A77425353306651064517AC06F9CC0FB640EC730207C82ACF6A4C138B3990B + 35C1BEE6B8714071819CCE6626205693A6888CC899C12767B0A1EB64BB1B752E + DB18CE7293A7544B59EE01C37E662FE5C8159734CA101DCAE83A0225BA034EE0 + 5AE9A638FDC822CFB4AF4F206FBF4CCCC82CD2213DD2E71BCC247DD2254DCCE7 + ABD2BDCCBE28EDCB36D004F76BB85081B8AD46A1117CCD66ECB8C9C2C6DF6CAB + E1ACB9E31C0B9861FFCE0D60C1ACD418A55117A3D4C7BED656D812C8D5605D1B + FC18F99CD504A166AD6A93F404A1EF288E9B45A7758AC0DC9AA71171C94D4326 + 364B3E58B1519B353465110C06A0BC752DD1115D95862A41555081ACAC07ABEC + 315FB00518200339F00465790434A0CBB8BCCB8E0DBF8D1DD9BC2CD9903DD996 + 2DD28E4DD9992DD98D5DD99D9DCC36F0CCF23A1DFA3B255DBD15B5500CE0D0D3 + DF503365554FEDE0C6434DD493B49376F6070FA18B6F27A45DF6D4797158AAA1 + BACC784F0282D55A9DD50D3210F20073759C850BD79A1B6C73657DC0D14AB52E + 9CD0DAB21E30A7770A52CF354C27798DD7E2EDBCD0BC29AA1105AEA107B0D18F + 30E14C8EA3C471DBFF07CCCCD8235DDF986DDF1D7004F85DD9248DCC9FCDDF97 + 6DD226B86F194006CB77D367C50A9B25B95B6D253C3DAC7F741E810142EE00CE + B34DDBD0726DE6B2270FC1CDB0647E1BE09F4BE2DBEBA250E140010D30988384 + 15E3D220877CDC1FEC36F1CC194C988542378E58F3ACA83D6CD856B56ADD1E6E + A1189775BB020D71E381AE775DD7E99AE44CBEE44E8EE44E4E6E54106A0C7027 + 2772AF64542A2F12231210B71D40039B1DE6623EE6645EE6667EE667EECC3100 + 2212D914A5BD59AD9AB226694ABF6DE24F7D43766215C363E1B35D3C0D462E0F + 71671CBEB4E1433DED4CE2A6AB17CA93E2A6C65E8D09C2301EE95B0DE9D16A72 + 04078ED2C6AA0C5EFFA7D19AD6080DE4CDE06C82028FE7D226D45216E19DEACC + DB0414FD37A8410172602219F81204845B2A6003684EE63850E6BB9EEBBECEEB + 65AEE6051E15380DE7FFA5E9F8E7D0A664E7777EC63C749B0C9D33491BCE197E + B20F918E1F3011B85D72E052E85C88E8A6FB0DCD07AB4097418D29DDF82CE9C7 + 8D445CDD27D37AE3CBA0EDD4562161F2E9CFD0CF555B59D3008FE598DA5ED3E4 + 501EF04A2EF0003FF04A5E957FC3023BD01F2AFA1A58DE122C7162B05C9627F0 + E5165FCB608EF1999DF116CFF18E0DE6201FE621FFF1227FE623DFF117BFD929 + F0A941D0E6A3F0E671EEAA87897F727DCDE0BEDAA784C2927CE1704C0BE5BC79 + E51AF40983602557FF7609727EFD7BF3758E17B040850F9A854103682EAEEE54 + 2F309121CF0662C715A53BF632D67676DDEA2159411FBC54268E7268EA97441E + AABEF6CC6BA8857B6E8BBA31C8E9312B712A8F63022A20A31E8FF21CCFF1BB7E + F21A1FF27BAFF124DFEBBB0CF8252FF87CBFF1F9AD02961004074E0AC5DEAA4C + 2AF3C8FEC94EADF4758EAACDC7F308EC1569A10CEC2159FD3CF49BA1E258B101 + 49AFF4D9638CF0778443C451945EF555DF360C21CF55C687677351728A5D2EDC + 16CC80EF69DD4201CD264EF6EF079FFCCABFFCCCDFFC598429AE48014A772263 + 34F731E1032070D82AF0032700043420F838A0F8E2BFF8E30FF2DF4FFEE85FFE + 1D7FFE82CFFEEB9FFFF136F0F8912F0A302FB9327FEC715EC8A9FD9FE00E0821 + 2100008256160C896114718D148F90916193946171017F1F0363630367671F6B + 6B1B7F6D0D0375135A13751B615687B0B2B3B3822116967F6770655E07075A6E + 70670D018D9701C9CACBCCCDCECFD0D1D0718C6D6B1F6709106E5E5ADE5E1365 + 657509A01FD867039E9FE6A1A2679C631F7F5D7161890C8889FAF91606FF000D + 140038F05F418104131A0CA8D0800E111960ECB060A54D1D337E30F8C0C07123 + 0633BF7CC8D04022C69213345276A0B1B225CB972E63C29CD90187CC9B3473E2 + DCA973A60D132B2E382144B468D15F487FB949B0A6419B2E6DA24A9D1AB54B32 + 0AF96869DDBAD582FF57068B1C451A0BA9D2A5066BD27532276A83D35310544D + 80E30A1645AEB442580913608336375A7E791176E68FB1C3C8A4295ECC58DA25 + 645D22EBE235C1173070E3E0AC65D7EE9CBB77EAE6D5BB87A874BED35EFD315C + CDBAB56BD64D46E8C870616296356ECC98F1E191A36F1F5230F86991E3099823 + 2973265FCEBC79F3952A5F3A9FEE1C3AF5EBD157DA48B1224815A3E00124455A + 064ED3A754D337706AD5DEBEBB78E3CB42B4681259B2663169E2E4E95CDBB767 + A4B24A2B14D8259F5DB874B14602654C8054307514664C23873566E185183E46 + A135DAF412183013B801011C09F4E7D967A2A488CD1AF46085DA8BA57DF5DA8C + 34CE58806CB4F160FF01000CBC919B1EC275E49B6E5F30415C0C2AD8909C4BD8 + 353953744E52C76494CCE1201D0D3FAD80C550E111359E524CB1971E55EB5595 + 0C35A45961C8815DF1031623D4DC470125717491C9266BF9B7815BA604C80D2B + 6B14184B7C7AE112C0821058261804096C500F85896128E9A4D34C7849171BA0 + D2CB8321D6A1195B29869A16284D8D06238CA931C0100100B1FA8FAB06C00AEB + 6BB3AE7623442C141102030D9461867019F9C6916EBBCDA1410E49AA41031054 + 360945B3CC3D0BEDB429657981115C86F7E501E59D07D598E04A7555566CCAF7 + D5228CC8F9C82475DEC91F5B7B0258C79F75AC1107457779D515031428A88D83 + BF68E14519097CD0FFC6999426ACB0638C341060191F8258DE18A48A3ACA359F + 3465CC3DFBE0C34FAA0CC451E3C8240744C0AD11F1E044165DC0718014C109C9 + 11CC071429430E26A4801CB3D452CB3373CCFE1CE5CF42370906505850614597 + DB2EE56DB863AEC75E23A4E95B2E57FA542227BBFAC1936728F19AF2012F5E78 + 01C107F75A6DF52C86FE31001CDC041C4E1D036CD0C631152EACF7A489510356 + 1C70A9F2E0381483DDD606A278A6B18BA6359E1A7D01B4D16AAC94B36A79E598 + CB3AF9E5AF6E4EF98D3AD4568513712470C046C10AEB83195FF8606471292C1B + 7472B3A7040510CC3E3B7BEECBD2A0BBEFBDEB8E3BCFBFDFCE7B4AC303CFFBF2 + 40141FFCF329E170FF74504630FD65B762420DB555C66005DFD5B43CAE089C63 + 718D96D7268EC267031F3058F6D971F483202C6B3280C918F3463C010463688C + 77A47B0B20DFECD385F671E343102AC707F6C440C4B1C37F1D6B1C6ACE1500B4 + 94EC821894CD0560C0030654A10110F842CCF4B091126AC40745D2400CB86003 + E4C86E3944EB5DCF902743A0D1AE77459B4E0E9D23B4A3E5E00259D0D6979C96 + 3DED69EF5155FB1EF810343EFC58A2826979979ED637B60699ED0C0148CDFC64 + 9188BE304870C07043841A80A6B03C468068CC903D16E1C5B85826188C3A83FA + F694B88C919171A78A11E4D03280CCF9F17280FCA32039E747038C600410E1C1 + 77BA603A29F8410FFF4012964676D30215E66C670E68DEF036B949E36912779E + 0CE5F03C993C4E9A5276A034E52739494A55D2000C29B8C116AA67946D610F3D + 460C5799DA33278FB1498B6CE3877D247196287E6D147F680054166445086051 + 7E6A430405BCB8A9030C861C0673CF9BF086B0347A331A7E63A35FB6D18D3092 + 438E0CBC063642510C1775EC9DE2E3CBF9C6B01ACDD57346B5AA556B5C558002 + E06A078C904319BE1049497EE40B66785D0C5260031CA83268B8C3A1447737D1 + 894614A218BD282A71A8518A7A74A33C3B420A7EB883A579698861C2652E8FD8 + 1EBF2911418F8B29BE62DA44485CA20D1B409F7F90A94C6B50E68A59D497DAF8 + 85A97F09866006DBFF183ED0F5BFBC7DF3A988B98725DA30B66D54C61B222AC7 + 1CD3E209BBF9CD6379A4201FD531C8B206F2AC66FDE3C91E72813B8421045D08 + 214752373322B92E0724B8A4EF36894ABE96F2A2A7FCEB4307EBD7C00216A37D + E564075210831550E128D7334F11570AB55D06A0973185A94C376B1745D4E789 + 3855CB00764A8A9E32B332CE0C80FC0EE1154B388C6C8B1AC31FE2671ACF3EA2 + A90084AA008F61536B8C010E1028831B54914074220E1D6BB81BC724E8B83DAE + 6113EAD01C5A3B47DDB2766EBA94ABAE21457001165481011B80C0CB4C485E0C + 48C175C7CA590F3A004A87368FA3B973A8F27CE75EE139EFA37FB5EFF34069D1 + DF7D140AF2854207FF6C7083DA9C743C4454296575E994A74CA86AE1DBAC4C59 + EBA6BF45CE98A375476997F9D3D402F32B80D314C0069600323200A69E45179C + 20A5DB34C6891101B0D3077E5B876D3408AB7174C7271678373C32577CD33C1F + 74FB4880221BF9C8483E72AC92BCE4241BB9C94A7E329211998120EC201F1B98 + 407032425798B5CE58C551C1098090492840A1CCEFBD9D9A9B0705256852CD6D + 7EB3261D606636C379CD66CEF39BF3ACE735D319CF727ED69D5FD9581E10C296 + 9255F0828D1899F684616D128E344DA579619D6A3899CBFC2250572B4D87CDAB + 9CC16854FCD4C45A7C8065982BEE668BF556C6695A630009006E8D857BD5FD0D + 23149A388357DD79FF9A77F6C3B9EA08F600D04AECB4165BCA952B7221717401 + 455A600D6538C0AF84151C9899410A66A8240954B0B340A779AF77DEF39FBD2D + E834DBD9CE75C6339FD34DEE76971BC03668EC0EB2D0B4947E6BD1B9949AA3DF + 23E97E3FEE890DF8C3A82AB6610EB9B10C0350ADD5C072285E70AA0E1F50AD2D + 0A55E153DB94C5B95DB585C4729619D7A1C61008B9380EB8BF12B5C3ABCB0D6B + AA2EE12E75A463D84886B29367DE6499CF5CD9373FF28D3290011650A10B5748 + 801BBE3057837EE117DA36C10F68904934A359CF746EBAB8A7BEEEAA5B5DDD57 + BFDDB8FBCCE6A7A71B07F16E010CB610D9A7E17BA596BD442FC945617FD3945F + 37E5EA6879BACC31FF1C7C0C5DE0345FC6E606A49078B616B045DB7B6DDBDB62 + 5CE3927A71BBB2010790873CB8C3F586AD3921C7526893B9BF6E6D1CDA20F097 + BB3CBA99C379B28F2D7ACBE1BCF43547B6E90542659FDB4F0E5A28EF46BCFCE5 + 231D61787F3E3399751FF5DDC3D9EB6676BA9C9DCEFBA9F7DECFBA07F4EF7D3F + 6791DE60054C40A9D9CF7EF6EEEDA3ED6E97293E363F2A6426332A99CADF52DA + 90262B1035400083D019EE96F9499B9A12863F63C6113F8D3935828F0970FCE3 + 836BC555308AF2F4707979F46B2183169A206CC296730AB8800CD88046D6046C + 750701100620740018A007741524C0B1054C80333FD05064E600517766243882 + 4D5782C9878226B8FF7B27B88226A8822C58822C1883BD678222150337D00264 + 471E89766FD48776BBE408CB957D9216329C974C01F707A5D000E10718E3F768 + F9D22FE8173004935C13686A9BF54EF0177FF3477FCDC071153463C0250E65F0 + 78B3365CDD20460AE428B40556F0F41546C8559DB00E09E8804E66737698874D + 003A11910521900563700018182CBDE1653E401C79153B22C88222D888357866 + 22C87B9058838BD8888C688951E7888D98678E28892DA88999F867DB610239C0 + 04470726D3F783F8C63D68C2694448537012634CE8167C247E09407EE4C2701F + 900A4715262D9544DA274C2A760CF2E7855FB846966027D9007264B87FFCC70D + 035307FD138029F7FF63F832551B708008588704800246E68D49068E37278E47 + 268EE4F88DE8188E315700B321115910077CE0051708245D2605ADC304E9A533 + 21088AFCD88FFEF88F001989A1289001098A67D6013F600224D0023EF00BB7E4 + 83AA487D4AF58AFD9608751270A6F05CB6888BF9B27770F30B25B740DF379112 + 46785B488C88618CCA2084C998298DC77FE2E08C90E7066E508605D34E60658D + 202664DB888079F893409973E0B8731740063BE00471151C91D41BE6F50B5B60 + 2C316002C7E18FFBE888558989A0B88F57999558D9749538895CC9956706760A + A98307906010199140C81EDD338414A97D4F940CBE952807300125E63DB0C070 + 6BF09175392297A6FF4CEE51914BC554B8A59262510D2E590764D88CCEB89871 + 849398A7479A670D9ED793C1D68D98E98D9A898E9B59649BF9999C999998E999 + A2D999A5799A10D87359005E13803A0625243E602C24F0043F700435E000B799 + 9BB8D988B72982BAD98FBA199CBBD99BC3B99BBEC99BFC289CCA699CBC09053D + A0020B69060FA9961119190FD67E6F0987E8D2176300317509070DE0229DD570 + 7D674D045331A370308C538483797114E254ABA67817F636B3E698321993D864 + 186BE76BFA205405988D96B98DA4099A043A9A060A9AA439A0079A8E0B9AA0A2 + E94F5A7205DF7506B9E1078F645030C38137B35047E088C4099C0519A222EA8F + 1F8A9CA0789B4760FF0231D00258606FD4A98A65723097558DD909329BC777E1 + 3006E1998B21B3017C3930709061D7C02207A34D1E138C29E69E67D4628F6153 + 32166B30598632B97F9E220F07C331031853AE2577019A8005FAA5A709A6621A + A6644AA006101BA1C302F6F3077520421788A1BAF13A2420014A529CCB79A776 + 9AA778BAA77ADAA77CDA0329F0043A480693F5A28B16A3ACD88AD8992A8CBAA8 + 7F8329BF550E6D80978710327F207482210C42EA1FA5D0525FA5458D7A6AC358 + 98DFC49288B98C8A699F530A0155BA38599A79FC524139D5A5021A9A605A8E65 + 4AA6B8EAA0B71AA688740158700757D005141A33BDB111AC738FF9C874BF99A7 + C7F9ACCC499CD26AFFA27E4AADC209ADD38AAD0E80038C151474D05386FAA2AC + 088C5F1199036891D6C0225D40A91679A9D1060CE5317789C3530D560FEBE97E + 491A7F29E94D65848D63907F221793AB1A7270A0191F500C581A9942D52FD9F8 + 09B4EA939F8902121BB1043AB1167BB1129B9919AB991BABB1183BB1DDF8B104 + 201BD07707F9F0015A705E453724C0C11BE9650364769B49E000495003367BB3 + 385B03339BB3344BB337BBB33A9BB3426BB3335BB3439BB3407BB447CBAD4011 + 048A16AED49776FBC96F84F73139991A7CA10C14305414D000630018E6347788 + A34EA1420A453A09FC063259A3622BD685097398AEB606F813A5523AB0E43000 + 56481A6E3841FAC0FFB0DB5899013AA6829BAB835BB861EA8D28C30271B0031B + 50072F438F32F3115AF0053793333FD0013C7BB3B869B39BAB9C38DBB97EFAB9 + 9A7BA7425BADA37BB34AC0582D10046909B5AA98A86E59AEAFAA47DB84594CD4 + 0603E09D1022B6C775229CAA4CD6C776A18A6A6D0B9F6F2B9FAF3686AA3AA59E + A2191AA3B70A5BA97502A00FDB931B8BB1217BB1D99BBD1FABBD202BB2DFDBBD + D80BB2ACC28E2B00036410320940747390815E96501A000279F5039DABB4F67B + BFF89BBFFA8BBFDCBAA24EEBBA50CB4B1134BBE70A16BF566A5D300010101810 + 220FEA9338E8F04066BB6FDF23BBA21A09A44A2942384D32F65B513AB08F4722 + F280B039892AA9D1FF2FA352BDD6BBBDE1CBB115EBC22C7CBD30FCBD1E1BC333 + ECB17BA803E7CB0259D0066FA005D3568FD87600AF439B1D5ABAA79B9B9C7BBF + A03BB44DBCC450ACC452FCC44AAB04CF190355560A405815004C266C2984036C + AED678A47DEBB5DED9970E4C47EAC419F082695758C1B525AA84D9547CF362F3 + 09B01FBCAA1F47227244C2620C870C0BB82A1C6CE25BC8867CC8889CC8DDCB01 + 286048B3110454100774000152D0BE1988015F2030724AA7F5BBBF44EBC9A01C + CA463BB480BAA249936F4AA84C8DD6C5E9619DD719AA55BBB756AB0897B020E5 + 89C66033B6BEEB193BB64080597ED83798A8C64D6E5B7FF601453416B075ABC7 + 095022791BCB1174FF17218329DA38C808A8C816CBBDD8BCCDDCACBDEC18113B + D00574A005917BACBCE107F8882C0D15CAECDCCEEEFCB9CF4902191005F98638 + DFC7CA47647D624CC0F4D1080A823F82B33F1473311603C19C219256E14E59B8 + B6C384924BBA18AD168600BB98CB2C931F572278CB7EB3FB38282CC8D6AC0E28 + 9007E22BD2164BD2217DB18C2CD22A7DD2129BD228E0D230CDD227BDD28C5CD2 + 337DD3138B3246C9007F500652004916EA1B7E606DF08B3329D00348ABB435BB + D441CBD44C8DB34FFDB34D3DD551FDC94E4DD553ADB9579C0164B03D9C971660 + 73CFABCCCA52E3606D59C2FB1CC770C279BB6819F1BA40635BD0E770D0443A21 + 6B87AF17ACAF0F0DFF4E73C246EC33D1CB6BD155CA636FAC72E732BD1EFDD103 + D0CD236DC826FDD8136BD2D80CD917DB04A9C9023B4081724588E6655EF64849 + 2461023DD0C9417BB4559DD5EFECCEA36CD53500A824700141A0C5ADCCD6F130 + 5A7C32D6F82C158DA6CFFC7C2A4B755B67F0AE9A0AD705AD22BCAC279DAA54ED + 6792277978E0B44641D63EF5C998764B2275A35C594A5317860D8A6DBD22CDC8 + 319D077990D2E37DD32BFDDDE26DDE27CD01E90DD3EDBDDEEAEDD2E27DDEE58D + DE8CEC10DC15047440058118C40665065B7088A17DB9B8B9D44970D5079EE007 + DED40A8ED508EEE00BFEE012AEB3114EE1095E0338009D2CDA6054011539156B + 053BD0F79CDB5E2CFFA353CB9FB2BCB787D0321320D0E859DCA1B2CB6003987D + 7DA4A6D69E5CB892CEC071CAD82181CDBC0930D01A3DCB7CCB70ECD3DD014AD3 + 370DDE2FFDD2E97DDE4BFEDE2B1DD2F21DD2F50DDF50FEDD560EE5ECADE4226D + 48371011B080B2D3A611BE616D2A2B03790506F42BD59FCCDAA31CE76E5EDA58 + FDE6747ED5762EE770DED44A90E1587C0763E2E18C57B09AD11FA55515AD1BAE + 9665D7D5D8DB7A44016E63DBEAB453300EC111CCA98FD28AB09CAFA9967168C2 + 0898B28C740BC27B5C302897DDA9224F5C8AE408D8DEF53DDEB0CEDEB2BEE5B4 + 3EDFE3CD01E0FDE4B03EDF56DEE5E28DEBBAAED2AFFEEBAE4EDEC28EEB2F30B2 + 55460538550729FBFFA65D061222511212000634E0E0165EE1138EE00DBEEDD9 + EEED067EE10A7EE0FDBBBAB3AD0B204EE8CD5C38DF1719243E15AE2C809877E3 + BE0D63C5D4CB956EDC119C31A5B092DEE3DB79DDE93A5E46D3FB36CA0CC266D8 + CC75530F5868D86B8A0EACDE93BE9EEB14FFD2C04EECBFEEE413AFF1F32DEBBB + 5EDE138FEB1AEFE4F61DEB23EFF1BF0EEC2870482BD0738DF001F2A83A9D4D2C + 7E7033464D034A00EED82EE1E3FEE0506DE13B7FE7DACEE7192ECF800EEF9C97 + 0D20FE71A52E0F87FEEE5221B5583AC0F45EF599274F7BF207BD8B221633D70E + 3B774808BCF24E7801EFD067CD176EA3BCD4ADC777BB400C8FEA6235637318F1 + 0888EBC0EEF1B26EFFF77ABFF7B17EF77BCFF779FFF7767FEB82AFF77D8FF785 + 9F076240004D0011C2DA066730014407B9C2C23AE865D43D000544DBF3DFDEF3 + 9EFFF9A0DFF9E32EFAA2EFF945CF0441C0E15081EE844EE8CD1BE49EC022EC81 + DBB9CD3D674DE4568F855F314DC9D0054C880E94DEF5BC0C2F87AEDCB8BF856D + CB928B40553EBEF6F7C9AA412E1A8129CB5A8A09AB4EF7C266F7270FF27F7FF8 + 847FF8776FF281FFF71AEFF783AFFD814FF8DD8FEC2B2F025A72073B4007BEF2 + A6C2E207AC53332231E034CBF9A00F084982493584838583898A8B8C8685888C + 8F87893D2A2417416D9A5D6D7F67090970A2A3A3A109031F1B0D9B9AADAEAFB0 + B1B2B15D01711461FF0C160CBCBDBEBFC0BD616114017F1F671F1F6BCCCDCECE + CAD1CA6B1B7F6DB6B9BADABBBB0CC3C314E1E2E371011B63751065EB10EDEEEF + EE750963677F0114BEDCDBBA16FD0CC61F06081C48B0A0C1830539285CC870E1 + 0B0E0F1F369CE810224585122B4E8C6831E3468D142312687243C4053201EA68 + 31230583CB97307D6CF1A38184891E881E30D2298867129F8D80EE1CDAA8E720 + A1917A98B891E10E2B4FA14891AA5347D4BC33D4FE345835ABABD7595CBBC4B9 + 352C985960FA18946BF0A7ED8635D39E3D93966C9A2AB1B8B6F9EBE6ED9B5F0A + 63396D180047DDBA32F012533DB5C61EBE7DFAFA49F616A041C03108336B2EF8 + 220F45CF10F3741EFF3D113407D3A14F2F342D5A616BD5AE4F8F16FD9A7567D5 + B457AF9648C040C90B777804B852C68C1E3F7E5CFAC0B0DCCC812F7364D80483 + 0352D1EB44B16B5F84B4E803253F4CE4C072A50D27A851A5AA0785799956F35D + 387D9D3FBF96AD5BBDF89EFDA58F58B9005D1C938C5C7249230D350DE0958B64 + 0CEE574E1B1B7C30061CE91C865862F1C833C6070DDCC34B647A4D56CC1F6B9C + B1D9899B75A422472CAEE8E20B30BE28634430C6D8E28D33E6D8190A05307552 + 171B40F0854BC9C184C11766F8E0470B3990F0437535E824E54F544E69659558 + 5EA965965C6EE965964A1CB1D4165150D1C927EAA549CA551FBC47DF9B6FD642 + D67E740213461C10FFC645203406D6D5581B7332E88F361FF2528C656324908E + 61182A764A9B1E122AA9A00C5010A08928668A5044AD714ADA6C9F762AAAA72B + 8E4A1B8BA7A61A2AA8A6AE9A2A07248990010C745001C70466C4F49214CE7DC1 + 444D1250A7445047156B1477C652795D77C41EABEC4FE089D7D499A0A8291555 + 55B1875535ABC4271F9CE0BA62DF2DB864536730DDDCD945036F19B8679F670C + 688D2D79F163811593ED420C408A1A7658A3F1C0718A2A9182C80D83EA463800 + 669A363C508D10472CF1C414576CF1C518675C711E06F8B6020B6AADE1851E18 + 140913AF5FF8300708364930EC9730772973CC34CF5C65B4375C400754D6F66C + 0A668D25E86DB844FF6F621F36E7D2094E65C8D4B5CC9ECD44136F2ADDD2FBA1 + 152184802F2F7732DDAFBFEC00BC182A1D3E66B0BDFEE0B901A60EB73D008E70 + EB38A38D72C76D374474DF4D230A3ACC7AC7151BA894AB72CC31C76B924C3EA1 + C29389F8E478B1533A7BA5E4C93E4EF99692473B1E1D9FA4D7B37A55098C8A2A + 5B156D7A2B72D69B34BA9491484DD450478D8C32D55893BA2E585B51E9836B53 + 0876D88D667B862A718471F6C192DDD9C61A0BBBEDB6C6D0472FFDF4D47746C0 + 084C051107031F1C80C17126632005AF4A6A00C21326FCD083510FB49FA5FB56 + C25FA5FC52C26F7FFDF8CF7CFF4FF0E3A094064140D3E7D44415ABB4272BDD8A + CFE9C035AE72AD0EFF2D6A09007C1A5022A741CD5DCCE0562DF061057C85A132 + C79850852C742180896E0380CA065F5688300996A879CE7358F56648C31A422F + 0F622840DF8240053A4401572E21D9AE306006C469A04912585FE5B0C43E9B5D + CE66316BE2E4A0F5831868000B021BE0E74C71953F0D6D81708A4F00E865AE07 + 0A231CFBF284052F68A068FCC94316B8D33106A0A845FD0B60ED18DB1A525828 + 8335084F2F8CE1F320868717446062878451220D59A34316F2909044E40B0A09 + 3147466C9130A2642323F6C84932529192ECA4239B30821530210864A043190E + D01221EEEA0B4862021390688397BD4F4BFB6B5FFEE2B7CB5CE6727EBBBC5978 + C6632D5368B18070FFA0472ADAC2153032905EE52AE303BBA1B60D589319072A + 90D4A686A06B006830BE031B1E03968054A4F078688B2320CF3006CCC44B909A + A218263F79494646F29E929C67242B29498BE1139FFCFCE7439AD00459D16A00 + 103840920AB79C868ACF0CB39C0E0EA048D19A59B4A25D52420F62D08220A409 + 14201D203205E6CE6E7ED1995E116339C825CDD5E9EB3F1214D01AB539BBA751 + E32DECF41D094B283681D5432C2A840C3FF0A54E089988616C83E7890C190148 + 36B5A9F684EA53997ACFA74E55A057B5271EEEB955AADAD3AB55B5AA58AD0A56 + AA5A15054DD0C10A30F1870DC0E10B7A2059F89893B23934C90412A84194F8A7 + CBBEFAF5AF800DACFF60074BD8C026E10724584119D2D4CE44794E8B06A49A02 + 511AA706B6F48165515E05F5442037466D61A1B0A385C6E98E64A602A8854A6D + 3A3F48C1A42AB561586564274529DBAFE273B6B6CDAD256FABDBDAC656A0B4BD + E7484A9281206C2501B034524BC617CB1668E00936A8C1B080D957BE5617B07C + B5AE2EB3BB5DEC76D797F8C301625B3052920AC4B159146901BBC8CC6652162C + 9B1823192F7B2E6E288F99EDCA2636399B53D19290B455D9D01F808ACEC954AA + 32256AE700DEF9DA4C3575AB0FBEEA56271C010857F8AA1196AA54BB8A61AE5E + 98AA160E71562F9C61129BD8C2207E6A575180BD0C60219575F042AE8EA35C58 + 1E804978ED010EF0FF57D81EFBF8C74056820472C00437AC89610B6B67B5445A + 0A36A9023E937DAF2CC4781FD599B11780B18504D7B660CEC2652E741CE16801 + 6CDA0117AF8F90B9D72EE210A04036B86D61DDB08A9D4A67437258CE510D6B6F + 3F3C56AC4638CF56BDF33FA56AC83CA075042EE60115A2E0BD2239747C664899 + 7349F0841F4C17C898CEB4A675191E531E395E6C432F643F1D342987918C5736 + 0B6BBFDCD9665C134DEDB82399C7D0186C1478326A0BC89B9DD7E75EFBFAD7C0 + 0EB6B0874DEC5FCF200233B8DE0A66150532243488467289737C9038F53960D3 + D8CE3661C3A3812D84EE2AA0C6949297AC5EF32E835B4633F52B9AD94007A65A + 1B87DA0ABBDAE86AFF9C8A9051A46D8769CB969F7E7F08D74012B7405CBB6BCD + CCB9D8084FB8C2175EEC421254042DC00215E2308003808F702D89B419E6C0A4 + E9F052DB20DFB41252F08415789BA4E12EC8B8476D156D510DCAEA9EB29CEE41 + DFD5F9672C4C9B9A9E5E3DA15803AFA702B6B5500FB6353CCDB1E0BC6EEAB197 + FE54A63BBDE95067BAD2914DF5A93FFDD8569F01D6A97E75AE437DEA56F7FAD3 + C33EF63C10E0377738031C14BA9C92C1842510FD550ED237D1C20A00B0776F5F + DE1FB0F7BEEBD2EF7FDD7B6001FF1D0970740B2867F082417DDEC71E93A4EE71 + 6FCCA73C46B294E5DD586E338178AED39F6328C06BE0F7ADD39627A4C790C452 + 8770D72B8C75D507FF5AE97858BAEBADDA7AD9B79EEC5C8F3DB2552FE2AA47BD + EABA1F7BEE59DC379DD1610CDE23D2A3A5F085036CA105E7BB8912424E7D6C8F + 9CA3580037A6C21DEA901EF3DB077C32CC27DF86B0547E2C5636E34B25A80912 + D9C5DE5FF33C3C02CC21380E1D77450FB8E94FAFF5FE8BFDFF5DE77F4ED77F01 + 886C5AC77507388004B8800948800028760EB88008C88048C062117705575007 + 2C116D43C4049376133840787737827FC7772648827A77822A488228B88225C8 + 822698827787031240022DE00651C0789BA1642CD764A39340DF427EE25279E9 + 7765C4100E6A132F379560E1247FEFB06F34A75A2CD44116906BFB174302D880 + 4BA7850678755C28FF815E08860938815DC8805FF8856408865DB886FD474AA6 + 645C01B07652801CD19624D4561395A65DDA26782A587D80A5143980093A6810 + 29075AD5E27804240AF48020A52384AE607E96777957665F6AF30CEC5447F8A6 + 18C9B44701B02043D7206A615457888566588AA6788AA8988AAAB88AACD88AFE + 875637B0023010075700075AD0121CC82B52E08194F62432E88230188CC0388C + C2588CC4C8771A251E4C908304377083B87288D833EE1479E3E788E6215F73F2 + 6EDD9065F3A60CFDE5733C95479B780DF850601D7460F3D68CA38822AED88EEE + F88EF0188F04880704D0373010047750076EF005B858382EC17C07406D39F004 + 499404D3E78731E8FF6307A969E01103E3A1789A9228E9356AA6F083F0618DAF + 903A35875900B10C974815FE327F9BD8219EE847FDE041000191EBD83033B000 + 2DF9922E199330399332599334799336999338B9933AD9933CF9933EB9007820 + 06C485059CE3062D31570FA524B354693D608C50798C51399552898C55D40203 + 100527C27D47855ED1782DEBB588A483919A503A72C25292786596226F6B137F + 3F571503C089E6B242FFE60F1FE4092B2948042893A7E8927BF9925AC7978039 + 98813993A528987E698A89998A36599882F9978BF99262D0622F7606CFE64AFE + 78245E80014824014340582D18782E98827D159A55298CBA448344560728C27D + 03316E5FA926F3B0FF60267552424865E8B7914AB3526CB60609E00E6F090771 + 498EF72719E738226E96976D03930B109440D992CDF99C31199DCE599DCC699D + 41499D34A99D31190162E0865B4006573006D021572713692A030203E9322F78 + 9AEE4995F0B9823D30644C004F2BD783903796649991A886791F12077FE096A5 + 358E67763C82F2416BA38ECA8922D8299D0EDAA010FAA0128A9D5BE586C04106 + 75905C6E5738CC654404890307D977211AA27F37A2A49990225882279AA2A4A9 + 142BE0060EE39A8638913D832D28776E6E126593677ED09496F5A50D008A0E8B + 1230C359A09F381977A96B0BEA3CD7D99CDC499D4EDA934F1AA53949A53539A5 + D7B99D4EDAA456BAFFA5D349A55C0AA5D39906CD3912100703E22924177732CF + F105CE853E96169F72FA9E743A823FF0043718A32A799F14399B58F11EB6799B + 6759844983A0842192B4C64752F86F547897C9B9A40EE3A5560A9D602AA95F4A + A95D7AA95D4AA99C6AA951DAA962FAA99B3AAA934AAA32C93719C0025D400632 + 6624CBD1120DB524BDA804735AAB755A954A7109ACE93C29C783B1F9518F826E + FB893A63844698B516CC134E10A0887BB43DC579A0C6A0A090CAA0996AA51550 + ADD87AADD81AA5DABAADDE9AADDFDA9CDD1AAED54A8FB178012C602910601C6B + FA8F3EF00534D18B3DF08BC528002368AF7C87AFF61A8CFADAAFF7FAAFF90AB0 + FB8A8C43201E58C0FFAB85D858E456A3EBC526A5568DB7797EC6BA9B08860CBF + B90E70B906A865A0220210D32A485F4AAE223BB2245BB2267BB243D923177005 + 0CF007C5D18F0DE5039136131D27013F40AFB76AAB3AFB005759075AF9663CC8 + 725CB4214F16A8824A841BA92E24026A8A82B1B4D60579C1B1A41721D2FAB19B + B100D74AA6598BB55C7BAD5EDBB560FBB562CBB55A0BB6653BB6681BB66A9BB6 + 637BB66B4BB670BBB56DABB664BA0024E16264C0078243246F57443E10514934 + 7D033BB8FEBAAF862BB0877BB8011BB089EBAF8C2B00AAD9513F1B43096B4C90 + 153AC9F4A76E32ACD78896D204180172190B36218AB801504B977D64608064B5 + F024AE4EDAAD63EBFFBAB2CBB5B30BBBAF7BBBB58BBBB4BBBBB1CBBBBA6BBB5F + 9BBBC2EBBBC38B046E8805787206B7F812CB5744BF4202368BB33B3BBDA7C96D + 5B7007F05488497688E56640C9500D46138411BB5256560C9D909C534330466A + 92FD702714A4A4ACEB366FCBB6F35BBFF47BBFF69BBFF8BBBFFA6BBF78D00419 + 700163F01642C2B7E1935C2C63B320DAB88F5BB884ABB80CFCC00DDCB8F84A04 + 771A7157E858BFBA1EECC5B9A8A391861207E958106DB24141C5BE6BD606F01B + BF6EC3BF2EDCBF2F1CC3303CC3329CB6765B4A4CC0023B10076A4A38AF6A065B + F0B747F40429D003B4BA828ECB8249BCC488DBC48B3BB84A50B04CB1ABAFE59A + D0F87D56313ACCE4FFC1830A18AD0543030129E5B81769866BCB03C62CDC3658 + 5B015ECBC66BDCC670CCC66E2CC76F5CC7747CC7729CC778ACC7763CC77E1CC7 + 7B9CC77D0CC76F2CC87AFCC787ECC60BF09D10770701C00765C08F6EE7683EC0 + 7C662003EB19A714BCC99CDCC99EFCC9051B886F26A3DBBBB0D682B97EFA72DE + 22BE93773495A13007B10C1DC20F93622F45B73C559BC69B51C376DCB5730CC3 + 7F1CB6BFECB56980B6C38CB5C54CC3C77CC734FCC6E62A8B77400772C8811870 + 005E7063431CA74FECC04CBCCD4E2CC1E0ACAF166C456540C5196CCA90D5C11E + 5C7EEE97194A78BA648C3CA4B7C2BADC36897CCFF89CCFFABCCFFCDCCFFEFCCF + 007DCF8B7CAE2C40FF0709B581D1A68B1C37909AFCC90EFDD010BDAF43508318 + 5C7032EA95DF972DED21ACE6618D6C41B59BF1018072A42F75C64856CFF61CD0 + 2ABDD22CDDD22E0DD048409426710761B00375E03DE65938332B903160B3FF1A + D1401DD486DB695B607ADA5BCA3DC81E5A0CB131F7D1C8A019F4D00071902FAB + 25C28F8AD20EA3C71E20C75B9DC75BDDD5158006892CD6F90CD6665D015B4DD6 + 689DC8602DD6607DC86DCDD56B7DD66C7CD65F2DD7753DD7727DD779DDD761BD + 001170B730B0037FF0562F6132322BB3186057D0FB034420D4900DD9DC76B0A3 + A878182DB48BB8B98EC82E574D10F4F007CE9A4EBB3022F48CD559FDD26BDDCF + 6F8DD7F8BCDA65CDFFD6FAECDAFCBC04AC7DD7749DDA797CB727710567E00543 + 92D0CCB70572F7A1B41AD9C6EDD04460782D000127BD6B17ADC1344A401ADD65 + C2AAA3EFD5564F9D1998B1019D28DA112420CD6DDA0DA3D7B64DDEE65DDEE87D + DEE4ED01E9DDDEEAEDDEF0FDDEF28DDE1E8006EC3DDF68ED016920066260123B + C0006B3001524063E79924C32D018F6DAF42B0AF0BAEE00CFEE00E1EE102D0E0 + 130EE1152EE1149EE10230D124C004C27985CD286A14696E45CBCA28C5D9D24A + 0F2854A0446501967274E21D43E5EDD7768DDBEE4DE37B2DDF38BEE3E69DD77C + 8DDF330EE47AEDE336BED71E40006B259E7470D3FD98993EF0E46FCA9EC73DE5 + 9CAC043860020094FF97176DB958CC5E8D686A28BE197F7A0F27B96601A76031 + EE3CECBDE66CCEE6F6DDE6701EE772BEE6F93DE76D6EDF62FDE671EED676DEE7 + 7EFEE7807EE76B8E063340942B1004571007DD036D4324054F8EC90499E015BE + E01A4EE9937EE996EEE0969EE917DEE9955EE188559F2B49CA57FC390D5B52E0 + BBCA278E5327B20C6DC041BAC3660A83E669DE36747EEBF7FDD56C5EE7409EEB + 73EDEBF41DECBC7EEBF39DEBC6AEEBC8FEDEC75EE7BB4EECC96EDB317D0317B8 + 0351B0BC98F9E41A2703E7E399C54DE5DE6EB8FF73BDE1BDA012899FA1A0E209 + 4459612EE66D32D5F862295C56EB8214E8F45EEFF67EEFF89EEFFA5EDF683099 + 817807543000CB9BFF1C075C57D1370409FEE99B8EE90CAFE99ECEF00BEFF002 + 30D993ABE53A08DD1B4C210524965A2179A6B3EE27B206DDFDE212E24EB92CEF + 06B1EF2ABFF22CDFF22CBF002A4012E84A0510B0120E75F3527000F16A0243D0 + ED92FEED869BF00F9DDC9750F1A33E88DB1BDD896840B459E2264E1F201FD280 + 22EBD93D7028EF301E500259BFF5F6ADF55E8F065EBFF5613FF6622FF625F0F5 + 649FF6653FF667BFF66EAFF670FFF6721FF75ADFF5737FF7FA6DBCD983816F35 + 871BFA3DCCF705DA4E699FE9F00B7FF8109FF888BFF8973E04786AF4D32A6E22 + 2EB416F9F450CFEAAD690DA278F5F3EEF6EC4DF69F2FF7A11FFA745FF670AEF5 + 6C1EF6A4EFF9AC8FFFFAADBFE6A0BFF5A32FFBB4AFE7AE1FFBAABFE67A9F686D + F006ADEAAA1AB72403D9F386AFF8C6CFF8C80FF1C96D72906FF1BD7AD9A61E96 + A8D04D4513F59AF1BDB36EF59C8FF55EDFF6630FF6737FF6DE0FFE69EFFD590F + F6E6FFFD6C5FFE2500F6E8BFFEE12FFE6FFFFE674FFE77DFFE709FFE72BFDF38 + 0C08645D036E5F18187E8888665F5F3E2D244F434A4202959796999742989D9A + 9F9EA1A09902124F1A5803AAABACADAEAFB0B167B3AD6363090970BABBBCBDBC + B8036B0D6DC4C5C6C7C70D1B6B67B1AE671F1FCDCED4D5D6D7D8B0251EDBDDDC + DFDEE1E0E3E2E5E4E7E6E9E8DC25EAEEECEFF1EBF215624D2B1759716B135289 + 7A3E0E613023C550FF8B1C4F7E0858288408C385A344617A288AA22587A0880C + 9140E2C2986C20B3CD9A762B97AF93BD12046BD005994B64CA98859C49B3A6CD + 55F0DAE9DCA93327CF9F3B7DB6130AB4A8D1A34089225D6A5429539D0AD2DC63 + 42264E17088E30E81198A8A09939087F1091688953D94D684199E5146AAD26B7 + 434CE42813E5A6DD91B406D8C26512651D5D093E7ED8C0B24BCB9788634EA3B6 + 785563BB9023AF0AD70E4DCF1296E171B35C19B367CEE5867ADEDC4D3468D33C + 2D671E7D79B56870AA75828E1D5BF3E7A4A55BA7060ADADE0D265400C41970C0 + DF568152186138F84482C288D0C94A8F9E51420E264124DBCCCBAA24CA5D63CE + 10EE12A07C80C388FF5D2AD6CEBE7DB6A7F0E3CB9F4FBFBEFDFA69C4FCE69185 + 0221337E249208063E980120130839E750276BB1C5D659103E286183694DC8D6 + 0F2668B0857B35E1D5CC5E70F40558786BFCD1451C148411471CE7A5F7D27A1C + C628E364A7C966E34FA0D9E6136CB97516946738DE98DB6CA1F104CE513BB206 + 0F9147EEE6A393A9E9D7020B6184B1070452084420065214F485063990608204 + 435037DD9911B9750911449840021375CC28125EABEC95CB9D2B918762952CB6 + E8224CCB3C26E7A09095A080A188B673E8A13B2D9A28543C395A94A394425AE9 + A59622CA68A49A72BAE94F923EAA68A79B621AEAA7A4768AC40D2D904181050D + B86186565A1E2205FF0820842981040B3AE8EBAFC0062BECB00DFD704A2A84DE + 5452606B9C48C18A1444DB277A7F160363B2D8DA5469A340853AAAA9A266EA6D + AA98723B6EA99D7E1BAEB9DDA6CBA9BAA8B20B2F1A52DE1186707548A1C7715A + E29A6B826556486184035B48B0C0976C745D1D1F655B8D87AAD812DE1F7130C0 + 4095613C3B6DB5C904EAF0C721912B32B8248F6C72C9289FAC72CA2CAF7CF212 + FAAD1004030074518621030AE4EFBFCD0D3116B140072DF40F12685817C8CED0 + C9CA070D0410C6C5D16ACC22B51C5F8BF4D5B12880C6A29C695D6EAAF08AACE8 + D68F6E5B36A4F38E3AF6A55D934B36BA6A9B1CB7D9E8B2CD76CC30EC90451751 + 14B765403BCB90EBFF13098D75968307276EF0E2BF0A40044717C489F535B308 + B367D41A974775B5564FEEB92A0A842EFAE8A4976EFAE9A8A7AEFAEAACB7EEFA + EBB0B38E061731A0B2030014D4F1853F3AEFCC3399870B2DFCF044FC503B1C9F + 3306CD1A6D049022E62B6ACEB1319D278FF42CB12F1ABAA6A593BABDF6A8738F + 72F7A68BFFFDEBE65F4AFEE8DE83CFBEE8E92BC0451322E43D45006F6861C671 + BE8320380891F0195A1007AC8311904207DC44F132842CEBC1A2720DB85CD4A2 + E7A7E9B5A17A0ECCD6484487000E9AAE83AD0321E944383A1192307BAF3B61E8 + 54A80016A2F0851F64DFFC6E70012A848001C4A155FF7616C0E00DEF87C26213 + 47E074B40CB20282FFCECBD804A3B7B93F61D08884A2050CA748C52A5A11755B + BBA2EA66D7041AF2C00914F880160EB14310CC4106609284E180C84661190F15 + 512003141D7306CB3D6F89D2B3E0053D36C76441CC831D0C24205B4848411AB2 + 90883CA42209793A419630918C1C212417F9C8455A7292923421264F78493074 + 31032CB0D81AB4F0851DCA40067368810C22219636BAF257C5AB5D1D54D24724 + DE515A1BD3E313FBE81E0F8D21759A5CA1072BB9C94C42B29191142627597749 + 625E5293941C66323149CC472EA18B176041161870860994F1946794014202F6 + CA720A81682B7043C3E6084109E2328F16DC252F2543A75BC061930878663E0B + B94F43E6F39FFE04FFA8402709507EFE9383FDC4A7400B1AC88532B485FD74E8 + 411B4A51832ED4A20145C035479081203821046D38E50ECF388733B2F267E66C + 63F14880857542D1964AC4E5D4F4B84799CC534623D10B1CEAE0064329F398C5 + 7464249F19D462FEF490472D2A5185BA54A53A95A830BB070CAAC000299CD177 + E09C831FCE08B094AA940824D8C21D78D9CE5B66AE82D393E74DEFF2213840C0 + 0D5A50C11214D00789DAF5AE19C5AB5E2F4A51896274AF800D2844034BD8C222 + 607E2BC0020F0C74D5C0A1720EFB5A654286E05536B6A9050D7C691D9B66560A + 36D1456A5DEB4CE8948BB76AE100311083A1F27A578CFEB5A28A4CA85D13D9DA + BE1A96B5B01DEC43FF6D7BDB81F25601F6C0C7160EF085C6FAEFB125C5C01CD2 + D8CACA12EF141728A211CB1AD3B37E363DA1152D48723A06B7BAC10B07388006 + 622057DDF6F6BCE84DAF7AD7CB5E892256033E68841EE6E02F703E560FA70C0B + 659D2BB4956AA00CB5DC6C12A1C7449A6657BBD8A045774D1BDE032C97044DE0 + C212F06ADE88EE75B0AFB5707BCF5BE1C27678C3B3B5470E348001E22AF794C8 + 2DA98AC549821FF037686C225A0E36C4CECDBAD3BA06E62382B793D3D2C2B5C1 + E17D3079278C001714F9C8F9347292FFA9E4231BF9C94866B240A1DC64805259 + CA576EF295ADECE42E6F39CA5AF63298A73C66282F39CB588EF299BB2C3F15DC + 40034CF8C2017C405B5254DAB9A4F31567E15E1C34633121C0C218301ED15A35 + 1DEF98267859F0774F0B64071F444C5CA82B88274DE94A5B3AB02E58829BE11C + 5E82E499A42A46048B79C567620DE1092D0074043B9BCB781AFAD02151B07719 + 0DE44000003B} + ExplicitWidth = 371 + end + end + object PopupMenu1: TPopupMenu + Left = 104 + Top = 16 + object Opciones1: TMenuItem + Action = actOpciones + end + object Refrescarconexin1: TMenuItem + Action = actRestart + end + object N2: TMenuItem + Caption = '-' + end + object Acercade1: TMenuItem + Action = actAcerca + end + object N1: TMenuItem + Caption = '-' + end + object Cerrar1: TMenuItem + Action = actCerrar + end + end + object ActionList: TActionList + Left = 72 + Top = 16 + object actCerrar: TAction + Caption = '&Cerrar' + OnExecute = actCerrarExecute + end + object actRestart: TAction + Caption = 'Refrescar conexi'#243'n' + OnExecute = actRestartExecute + end + object actOpciones: TAction + Caption = '&Configuraci'#243'n...' + OnExecute = actOpcionesExecute + end + object actConexiones: TAction + Caption = 'Lista de conexiones...' + end + object actAcerca: TAction + Caption = 'Acerca de...' + OnExecute = actAcercaExecute + end + end + object XPManifest1: TXPManifest + Left = 40 + Top = 16 + end + object JvAppInstances1: TJvAppInstances + AutoActivate = False + OnCmdLineReceived = JvAppInstances1CmdLineReceived + Left = 136 + Top = 16 + end + object TrayIcon1: TTrayIcon + BalloonFlags = bfInfo + PopupMenu = PopupMenu1 + Visible = True + Left = 184 + Top = 16 + end + object JvProgressDialog1: TJvProgressDialog + Interval = 10 + ShowCancel = False + Smooth = True + ScreenPosition = poDesktopCenter + Left = 224 + Top = 16 + end +end diff --git a/Source/Servidor/uServerMainForm.pas b/Source/Servidor/uServerMainForm.pas new file mode 100644 index 0000000..56d1d1b --- /dev/null +++ b/Source/Servidor/uServerMainForm.pas @@ -0,0 +1,119 @@ +unit uServerMainForm; + +interface + +uses + Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, + uROClient, uROPoweredByRemObjectsButton, uROClientIntf, uROServer, + uROBinMessage, uROIndyHTTPServer, uROIndyTCPServer, + ExtCtrls, XPMan, ActnList, Menus, AppEvnts, JvBaseDlg, JvProgressDialog, + JvAppInst, JvGIF, JvExControls, JvGradient; + +type + TfServerForm = class(TForm) + PopupMenu1: TPopupMenu; + ActionList: TActionList; + actCerrar: TAction; + Cerrar1: TMenuItem; + actRestart: TAction; + actOpciones: TAction; + actConexiones: TAction; + Opciones1: TMenuItem; + Refrescarconexin1: TMenuItem; + N2: TMenuItem; + XPManifest1: TXPManifest; + Panel1: TPanel; + Image1: TImage; + JvGradient1: TJvGradient; + actAcerca: TAction; + Acercade1: TMenuItem; + N1: TMenuItem; + JvAppInstances1: TJvAppInstances; + TrayIcon1: TTrayIcon; + JvProgressDialog1: TJvProgressDialog; + procedure actCerrarExecute(Sender: TObject); + procedure actRestartExecute(Sender: TObject); + procedure actOpcionesExecute(Sender: TObject); + procedure actAcercaExecute(Sender: TObject); + procedure JvAppInstances1CmdLineReceived(Sender: TObject; + CmdLine: TStrings); + procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); + private + { Private declarations } + public + { Public declarations } + end; + +var + fServerForm : TfServerForm; + +implementation + +uses + uROComboService, uDataModuleServer, uConfiguracion, uAcercaDe, uServerAppUtils; + +{$R *.dfm} + +procedure TfServerForm.actCerrarExecute(Sender: TObject); +begin + Application.Terminate; +end; + +procedure TfServerForm.actRestartExecute(Sender: TObject); +begin + dmServer.RefrescarConexion; +end; + +procedure TfServerForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean); +begin + if not ROIsService then + with JvProgressDialog1 do + begin + InitValues(0, 100, 10, 0, 'Cerrar FactuGES Server', 'Espere mientras FactuGES Server se cierra...'); + Show; + while Assigned(dmServer) do + begin + if (Position + Interval > Max) then + Position := Min + else + Position := Position + Interval; + Refresh; + FreeAndNIL(dmServer); + Sleep(500); + TrayIcon1.Visible := False; + end; + Hide; + end; + CanClose := True; +end; + +procedure TfServerForm.actOpcionesExecute(Sender: TObject); +var + AForm : TForm; +begin + AForm := TfConfiguracion.Create(Application); + try + AForm.ShowModal; + finally + AForm.Release; + actRestart.Execute; + end; +end; + +procedure TfServerForm.JvAppInstances1CmdLineReceived(Sender: TObject; + CmdLine: TStrings); +begin + dmServer.RefrescarConexion; +end; + +procedure TfServerForm.actAcercaExecute(Sender: TObject); +begin + with TfAcercaDe.Create(Application) do + try + ShowModal; + finally + Release; + end; +end; + +end. diff --git a/Source/Servidor/uSesionesUtils.dcu b/Source/Servidor/uSesionesUtils.dcu new file mode 100644 index 0000000..e5e48b9 Binary files /dev/null and b/Source/Servidor/uSesionesUtils.dcu differ diff --git a/Source/Servidor/uSistemaFunc.dcu b/Source/Servidor/uSistemaFunc.dcu new file mode 100644 index 0000000..5242fed Binary files /dev/null and b/Source/Servidor/uSistemaFunc.dcu differ diff --git a/Source/Servidor/uStringsUtils.dcu b/Source/Servidor/uStringsUtils.dcu new file mode 100644 index 0000000..7437cc1 Binary files /dev/null and b/Source/Servidor/uStringsUtils.dcu differ diff --git a/Source/Servidor/uUsersManager.dcu b/Source/Servidor/uUsersManager.dcu new file mode 100644 index 0000000..863db68 Binary files /dev/null and b/Source/Servidor/uUsersManager.dcu differ diff --git a/Source/Servidor/uUsersManager.pas b/Source/Servidor/uUsersManager.pas new file mode 100644 index 0000000..b039cf4 --- /dev/null +++ b/Source/Servidor/uUsersManager.pas @@ -0,0 +1,97 @@ +unit uUsersManager; + +interface + +uses + uROSessions, FactuGES_Intf, uSesionesUtils, uDataModuleServer; + +type + TUserInfo = class(TObject) + private + FSession : TROSession; + FLoginInfo : TRdxLoginInfo; + function GetLoginInfo: TRdxLoginInfo; + procedure SetLoginInfo(const Value: TRdxLoginInfo); + function GetEsAdministrador: Boolean; + function GetEmpresas: String; + public + constructor Create(ASession : TROSession); overload; + constructor Create(ASessionID : TGUID); overload; + destructor Destroy; override; + property LoginInfo : TRdxLoginInfo read GetLoginInfo write SetLoginInfo; + property EsAdministrador : Boolean read GetEsAdministrador; + property Empresas : String read GetEmpresas; + end; + + + + +implementation + +uses Classes, srvLogin_Impl, SysUtils; + +{ TUserInfo } + +constructor TUserInfo.Create(ASession: TROSession); +begin + FSession := ASession; + FLoginInfo := TRdxLoginInfo(SesionesHelper.GetSessionObject(FSession, SESION_LOGININFO)); +end; + +constructor TUserInfo.Create(ASessionID: TGUID); +begin + Create(dmServer.SessionManager.FindSession(ASessionID)); +end; + +destructor TUserInfo.Destroy; +begin + inherited; +end; + +function TUserInfo.GetEmpresas: String; +var + I: Integer; + AList : TStringList; +begin + Result := ''; + AList := TStringList.Create; + try + AList.Sorted := True; + AList.Delimiter := ','; + AList.Duplicates := dupIgnore; + + for I := 0 to FLoginInfo.Empresas.Count - 1 do + AList.Add(IntToStr(FLoginInfo.Empresas.Items[I])); + + Result := AList.DelimitedText; + finally + AList.Free; + end; +end; + +function TUserInfo.GetEsAdministrador: Boolean; +var + I: Integer; +begin + Result := False; + + for I := 0 to FLoginInfo.Perfiles.Count - 1 do + if FLoginInfo.Perfiles.Items[I] = PERFIL_ADMINISTRADORES then + begin + Result := True; + Break; + end; +end; + +function TUserInfo.GetLoginInfo: TRdxLoginInfo; +begin + Result := FLoginInfo; +end; + +procedure TUserInfo.SetLoginInfo(const Value: TRdxLoginInfo); +begin + FLoginInfo := Value; + SesionesHelper.SaveSessionObject(FSession, SESION_LOGININFO, FLoginInfo); +end; + +end.